@devtable/dashboard 13.5.0 → 13.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dashboard.es.js +2 -2
- package/dist/dashboard.umd.js +2 -2
- package/dist/stats.html +1 -1
- package/package.json +1 -1
package/dist/dashboard.es.js
CHANGED
|
@@ -1731,7 +1731,7 @@ class Pi {
|
|
|
1731
1731
|
}), this.instanceRegistry.clear(), this.factoryRegistry.clear();
|
|
1732
1732
|
}
|
|
1733
1733
|
}
|
|
1734
|
-
const lc = "13.5.
|
|
1734
|
+
const lc = "13.5.1", ng = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1735
1735
|
__proto__: null,
|
|
1736
1736
|
version: lc
|
|
1737
1737
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -17638,7 +17638,7 @@ const Gk = {
|
|
|
17638
17638
|
translation: Fk
|
|
17639
17639
|
};
|
|
17640
17640
|
var Tt = /* @__PURE__ */ ((t) => (t.string = "string", t.number = "number", t.eloc = "eloc", t.percentage = "percentage", t.custom = "custom", t))(Tt || {});
|
|
17641
|
-
const xd = ["function text({ value }, utils) {", " return value", "}"].join(`
|
|
17641
|
+
const xd = ["function text({ value, row_data }, utils) {", " return value", "}"].join(`
|
|
17642
17642
|
`), gd = {
|
|
17643
17643
|
columns: [],
|
|
17644
17644
|
fontSize: "14px",
|
package/dist/dashboard.umd.js
CHANGED
|
@@ -53,7 +53,7 @@ Check the top-level render call using <`+A+">.")}return z}}function fu(w,z){{if(
|
|
|
53
53
|
</table>
|
|
54
54
|
`;function ws(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 Cs(t,e){try{return ws(t,e)}catch(n){return console.error(n),n.message}}function md({sql:t,pre_process:e}){if(!e.trim())return t;try{return new Function(`return ${e}`)()({sql:t},et)}catch(n){return console.error(n),t}}function fd(t,e,n){if(!t.trim())return e;try{return new Function(`return ${t}`)()(e,et,n)}catch(r){return console.error(r),e}}function gd(t){t=t||{};const e=Object.keys(t).sort(),n=[];for(let r=0;r<e.length;r++){const i=e[r];if(i!="authentication"&&t[i])n.push(e[r]+"="+(typeof t[i]=="object"?JSON.stringify(t[i]):t[i]));else{const a=Object.keys(t[i]).sort();for(let l=0;l<a.length;l++){const c=a[l];c!="sign"&&t[i][c]&&n.push(a[l]+"="+(typeof t[i][c]=="object"?JSON.stringify(t[i][c]):t[i][c]))}}}return n.sort().join("&")}function xd(t,e){let n=gd(t);return n+="&key="+e,od.MD5(n).toString().toUpperCase()}class da{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:xd({app_id:this.app_id,nonce_str:n,...e},this.app_secret)}}getRequest(e,n){return(r,i,a,l)=>{const c=this.buildHeader(a),u=this.buildAxiosConfig(e,r,i,a,c,n);return ot(u).then(d=>l?d:d.data).catch(d=>{const p=x.get(d,"response.data.detail.message",d.message);return Promise.reject(new Error(p))})}}get(e){return this.getRequest("GET",e)}post(e){return this.getRequest("POST",e)}put(e){return this.getRequest("PUT",e)}buildAxiosConfig(e,n,r,i,a,l){const c={baseURL:this.baseURL,method:e,url:n,params:e==="GET"?r:i.params,headers:a,signal:l};return["POST","PUT"].includes(e)&&(c.data=i.string?JSON.stringify(r):r,c.data.authentication=this.getAuthentication(c.data)),c}buildHeader(e){const n=window.localStorage.getItem("token");return{"X-Requested-With":"XMLHttpRequest","Content-Type":e.string?"application/x-www-form-urlencoded":"application/json",authorization:n?`bearer ${n}`:"",...e.headers}}}class yd{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 pa extends da{constructor(){super(...arguments);$(this,"makeQueryENV",null)}query(n){return async(r,i={})=>{var a;return r.env||(r.env=((a=this.makeQueryENV)==null?void 0:a.call(this))??{error:"failed to run makeQueryENV"}),this.post(n)("/query",r,i)}}httpDataSourceQuery(n){return async(r,i={})=>{var a;return r.env||(r.env=((a=this.makeQueryENV)==null?void 0:a.call(this))??{error:"failed to run makeQueryENV"}),this.getRequest("POST",n)("/query",r,i,!0)}}structure(n){return async(r,i={})=>this.post(n)("/query/structure",r,i)}}class ha{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 qt=new pa;function Ss(t){qt.baseURL!==t.apiBaseURL&&(qt.baseURL=t.apiBaseURL),t.app_id&&(qt.app_id=t.app_id),t.app_secret&&(qt.app_secret=t.app_secret),t.makeQueryENV&&(qt.makeQueryENV=t.makeQueryENV)}const ma=new ha(qt),tt=ma,an=m.forwardRef(function({value:e,onChange:n,...r},i){return s.jsx(o.TextInput,{ref:i,value:e,onChange:n,...r})});function E(t){const[e,n]=t.split(".");return{queryID:e,columnKey:n}}function bd(t){return t.includes(".")?E(t):{queryID:"",columnKey:t}}function nt(t,e){var i;const{queryID:n,columnKey:r}=E(e);return n?r?((i=t[n])==null?void 0:i.map(a=>a[r]))??[]:t[n]:[]}function kn(t,e){const{queryID:n}=E(e);return n?t[n]:[]}function vd(t){return Object.values(t)[0]}function Tn(t,e){const{queryID:n,columnKey:r}=E(e);return t[r]}const fa=["function aggregation({ queryData }, utils) {",' return "Aggregation Result";',"}"].join(`
|
|
55
55
|
`),Ot={type:"none",config:{},fallback:"0"};function _d(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 jd(t,e){switch(e.type){case"sum":return x.sum(t);case"mean":return x.mean(t);case"median":return _d(t);case"max":return x.max(t);case"min":return x.min(t);case"quantile":return tn.quantile(t,e.config.p);case"CV":const n=Lt.std(...t),r=Lt.mean(...t);return r?n/r:Number.NaN;case"std":return Lt.std(...t);default:return t}}function ks(t,e){const n=t.map(Number),r=jd(n,e);return typeof r=="number"?Number.isFinite(r)?r:e.fallback:r??e.fallback}function wd(t,e,n){try{const r=kn(t,e);return new Function(`return ${n.config.func}`)()({queryData:r},et)}catch(r){return console.error(r),r.message}}function Dn(t,e,n){try{return n.type==="custom"?wd(t,e,n):ks(nt(t,e),n)}catch(r){return console.error(r),null}}class Cd{constructor({valueRange:e,colorRange:n}){$(this,"mapper");this.mapper=St.interpolate(e,n)}getColor(e){return this.mapper(e)}}const be={mantissa:0,output:"number",trimMantissa:!1,average:!1,absolute:!1};function R(t,{absolute:e,...n}){if(t===null)return String(t);try{let r=wn(t).value();if(r===void 0||Number.isNaN(r))throw new Error(`[formatNumber]Not a number: ${t}`);return e&&(r=Math.abs(r)),wn(r).format(n)}catch(r){return console.debug(r),String(t)}}function Sd(t){return t===null?"null":t===void 0?"undefined":Array.isArray(t)?`Array(${t.length})`:t.toString()}function ut({data_field:t,aggregation:e},n){return Dn(n,t,e)}function Oe({formatter:t,aggregation:e},n){if(typeof n!="string"&&typeof n!="number")return Sd(n);if(e.type==="custom")return n;try{return R(n,t)}catch(r){return console.error(r),n}}function kd(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 Cd(t).getColor(e)}catch(n){return console.error(n),"black"}return"black"}function Td(t,e){const{color:n,data_field:r,aggregation:i,size:a,weight:l}=t,c=Dn(e,r,i),u=Oe(t,c);return s.jsx(o.Text,{sx:{fontSize:a,display:"inline"},color:kd(n,c),weight:l,children:u})}function Dd(t,e){const n={};return t.forEach(r=>{const i=r.name;n[i]=Td(r,e)}),n}function zd(t){return t.split(" ").map((e,n)=>s.jsxs(m.Fragment,{children:[e," "]},n))}function Md(t){const n=t.replaceAll("<br />","<br/>").replaceAll(`
|
|
56
|
-
`,"<br/>").split("<br/>");return n.map((i,a)=>{const l=[zd(i)];return a!==n.length-1&&l.push(s.jsx("br",{},`br-${a}`)),l}).flat().filter(i=>i!==void 0)}function Ts(t){return Md(t)}function on(t,e,n){const r=Dd(e,n),i=/^\{(.+)\}(.*)$/;return t.split("$").map((a,l)=>{const c=i.exec(a);if(!c)return Ts(a);const u=r[c[1]];if(!u)return Ts(a);const d=c[2]??"";return s.jsxs(m.Fragment,{children:[u,Ts(d)]},`${a}-${l}`)})}function Id(t,e){const{data_field:n,aggregation:r}=t,i=Dn(e,n,r);return Oe(t,i)}function ga(t,e){const n={};return t.forEach(r=>{n[r.name]=Id(r,e)}),n}function zn(t,e,n){const r=ga(e,n),i=/^\{(.+)\}(.*)$/;return t.split("$").map(a=>{const l=i.exec(a);if(!l)return a;const c=r[l[1]];if(!c)return a;const u=l[2]??"";return`${c}${u}`}).join("")}const kt={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 Ed(){je.registerTheme("merico-light",{color:Object.values(kt.graphics.multiple),visualMap:{color:Object.values(kt.graphics.depth).reverse()},axes:[{type:"all",name:"通用坐标轴",axisLineColor:"#97999D",axisTickColor:"#97999D",axisLabelShow:!0,axisLabelColor:"#818388",splitLineShow:!0,splitLineColor:["#E0E6F1"]}]})}function xa(){Ed()}function*Ad(t){const e=kt.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 ya(){return{filters:{},context:{}}}function Ds(t){const e=ya();if(!t)return ya();const{filters:n=e.filters,context:r=e.context}=t;return{filters:n,context:r}}class we extends m.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){this.setState({error:e})}render(){var e;if(this.state.error){const n=()=>{this.setState({error:null})};return s.jsxs(o.Box,{children:[s.jsx(o.Text,{size:"xs",children:(e=this.state.error)==null?void 0:e.message}),s.jsx(o.Button,{variant:"subtle",size:"xs",mx:"auto",compact:!0,sx:{display:"block"},onClick:n,children:"Retry"})]})}return this.props.children}}function Pd(t,e={handleError:!0}){return n=>s.jsx(we,{...e,children:s.jsx(t,{...n})})}function $d(t,e){return new Function(`return ${t}`)()(e,et)}function Bd(t,e,n){return $d(t,{context:e,filters:n})}function Ld(t,e){try{return new Function(`return ${t.config.processing.pre}`)()(e,et)}catch(n){return console.error(n),e}}function qd(t,e){return new Function(`return ${t.config.processing.post}`)()(e,et)}function Od(t,e,n){return t?new Function(`return ${t}`)()(e,et,n):e}function ba(){Ni.use([_u.CanvasRenderer,He.BarChart,He.BoxplotChart,He.CustomChart,He.FunnelChart,He.HeatmapChart,He.LineChart,He.PieChart,He.RadarChart,He.ScatterChart,He.SunburstChart,yt.CalendarComponent,yt.DataZoomComponent,yt.GridComponent,yt.LegendComponent,yt.TooltipComponent,yt.MarkLineComponent,yt.MarkAreaComponent,yt.VisualMapComponent])}const Vt=t=>x.cloneDeepWith(t,(e,n)=>{if(n!==void 0&&e)return K.toJS(e)}),Mn={sqlSnippet:new RegExp("(?<=sql_snippets\\.)([^\\?}.]+)","gm"),context:new RegExp("(?<=context\\.)([^\\?}.]+)","gm"),filter:new RegExp("(?<=filters\\.)([^\\?}.]+)","gm")};function Vd(t,e){const n=Gi.decode(e);n!==t&&(console.error("Inconsistent sql"),console.groupCollapsed("Inconsistent sql"),console.table({before:t,after:e,v:n}),console.groupEnd())}async function Nd({query:t,name:e,payload:n,additionals:r},i){if(!t.sql)return[];const{type:a,key:l,sql:c,pre_process:u,post_process:d}=t,p=ws(c,n),h=md({sql:p,pre_process:u}),g=Gi.encode(h);Vd(h,g);let y=await tt.query(i)({type:a,key:l,query:g,...r},{params:{name:e}});return y=fd(d,y,Ds(n)),y}async function Gd({type:t,key:e,configString:n,name:r,additionals:i},a){try{return await tt.httpDataSourceQuery(a)({type:t,key:e,query:n,...i},{params:{name:r}})}catch(l){if(ot.isCancel(l))throw l;return console.error(l),l}}async function zs(){try{return(await tt.post()("/datasource/list",{filter:{},sort:[{field:"create_time",order:"ASC"}],pagination:{page:1,pagesize:100}},{})).data}catch(t){return console.error(t),[]}}async function va(){try{return(await tt.post()("/sql_snippet/list",{filter:{},sort:[{field:"id",order:"ASC"}],pagination:{page:1,pagesize:1e3}},{})).data}catch(t){return console.error(t),[]}}class _a{constructor(e){$(this,"rootRef");this.rootRef=K.observable({current:e})}async deleteItem(e){K.runInAction(()=>{x.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):x.get(this.rootRef.current,[e])}setItem(e,n){if(e===null)if(x.isObject(n))K.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else K.runInAction(()=>{x.set(this.rootRef.current,[e],n)});return Promise.resolve(this.getItem(e))}watchItem(e,n,r){return K.reaction(()=>this.getValueFromRoot(e),(i,a)=>{n(i,a)},{requiresObservable:!0,fireImmediately:x.get(r,"fireImmediately",!1)})}}class Fd{constructor(){$(this,"channels",new Map);$(this,"globalChannel",new Fi)}getChannel(e){const n=this.channels.get(e);if(n)return n;const r=new Fi;return this.channels.set(e,r),r}}class Wd{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 Fd,instanceData:new _a(e.viz.conf)};return this.instances.set(e.id,r),r}}function ja(t,e,n,r){return{vizManager:n,locale:"zh",msgChannels:t.messageChannels,instanceData:t.instanceData,pluginData:new _a({}),colorPalette:{getColor(){return()=>""}},data:e,variables:r}}const Qd=t=>{const{panel:e,measure:n,vizManager:r,data:i,variables:a}=t,l=r.resolveComponent(e.viz.type),c=r.getOrCreateInstance(e),u={...ja(c,i,r,a),viewport:{width:n.w,height:n.h}},d=l.viewRender;return s.jsx(d,{context:u,instance:c,...x.omit(t,["panel","vizManager","data"])})},Rd=t=>{const{vizManager:e,panel:n,data:r,variables:i}=t,a=e.resolveComponent(n.viz.type),l=e.getOrCreateInstance(n),c={...ja(l,r,e,i)},u=a.configRender;return s.jsx(u,{context:c,instance:l,...x.omit(t,["panel","vizManager","data"])})},wa=(t,e)=>{const n=lt.bezier(t),r=lt.bezier(e);return function(i){return i<50?n(i*2/100).hex():r((i-50)*2/100).hex()}},In=t=>{const e=lt.bezier(t);return function(n){return e(n/100).hex()}},Ud={type:"interpolation",displayName:"style.color.interpolation.palette.red_green",getColor:wa(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},Yd={type:"interpolation",displayName:"style.color.interpolation.palette.yellow_blue",getColor:wa(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},Kd={type:"interpolation",displayName:"style.color.interpolation.palette.red",getColor:In(["#fff7f1","darkred"]),name:"red",category:"sequential"},Jd={type:"interpolation",displayName:"style.color.interpolation.palette.green",getColor:In(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},Xd={type:"interpolation",displayName:"style.color.interpolation.palette.blue",getColor:In(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},Zd={type:"interpolation",displayName:"style.color.interpolation.palette.orange",getColor:In(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class Hd{constructor(e){$(this,"symbol");this.symbol=Symbol(e)}}function dt(t){return new Hd(t)}class Ms{constructor(){$(this,"parent");$(this,"factoryRegistry",new Map);$(this,"instanceRegistry",new Map)}createScoped(){const e=new Ms;return e.parent=this,e}getRequired(e){return this.get(e)}get(e){if(this.instanceRegistry.has(e.symbol))return this.instanceRegistry.get(e.symbol);const n=this.factoryRegistry.get(e.symbol);if(n){const r=n(this);return this.instanceRegistry.set(e.symbol,r),r}if(this.parent)return this.parent.get(e)}provideFactory(e,n){return this.factoryRegistry.has(e.symbol)?console.warn(`Token ${e.symbol.toString()} is already registered`):this.factoryRegistry.set(e.symbol,n),this}provideValue(e,n){return this.factoryRegistry.has(e.symbol)?console.warn(`Token ${e.symbol.toString()} is already registered`):this.factoryRegistry.set(e.symbol,()=>n),this}dispose(){this.instanceRegistry.forEach(e=>{const n=x.get(e,"dispose");x.isFunction(n)&&n.bind(e)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}const Ca="13.5.0",ep=Object.freeze(Object.defineProperty({__proto__:null,version:Ca},Symbol.toStringTag,{value:"Module"}));class tp{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 np{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 sp{constructor(){$(this,"migrations",[])}version(e,n){return this.migrations.push({version:e,handler:n}),this}run(e,n,r){var l;if(e.from===e.to)return n;if(e.from>e.to)throw new Error(`Can not downgrade from version '${e.from}' to (${e.to})`);const i=this.migrations.filter(c=>c.version>e.from&&c.version<=e.to),a=x.orderBy(i,"version","asc");if(((l=x.last(a))==null?void 0:l.version)!==e.to)throw new Error(`Migration to version ${e.to} not found`);return a.reduce((c,u)=>u.handler(c,r),n)}}class oe extends sp{constructor(){super(),this.configVersions()}version(e,n){return super.version(e,(r,i)=>({version:e,...n(r,i)}))}async migrate({configData:e,panelModel:n}){const r=await e.getItem(null),i=x.get(r,"version",0),a=this.run({from:i,to:this.VERSION},r,{panelModel:n});await e.setItem(null,a)}async needMigration({configData:e}){const n=await e.getItem(null);return x.get(n,"version",0)<this.VERSION}}const O=(t,e)=>{const[n,{setFalse:r}]=N.useBoolean(!0),[i,a]=m.useState();m.useEffect(()=>(t.getItem(e).then(c=>{a(c),r()}),t.watchItem(e,c=>{a(c)})));const l=m.useCallback(async c=>{await t.setItem(e,c),a(c)},[t,e]);return{loading:n,value:i,set:l}},ze={top:16,right:16,bottom:16,left:16},Ye=t=>Math.max(0,t-ze.left-ze.right),Ke=t=>Math.max(0,t-ze.top-ze.bottom),ln=(t,e)=>({width:Ye(t),height:Ke(e)}),Me=({width:t,height:e,children:n})=>s.jsx(o.Box,{pt:ze.top,pr:ze.right,pb:ze.bottom,pl:ze.left,sx:{width:t,height:e,overflow:"hidden",position:"relative"},children:n}),Is={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 rp({context:t}){const{value:e}=O(t.instanceData,"config"),n=t.data,{width:r,height:i}=t.viewport,{x_axis_data_key:a,y_axis_data_key:l,z_axis_data_key:c,xAxis3D:u,yAxis3D:d,zAxis3D:p}=x.defaults({},e,Is),h=m.useMemo(()=>kn(n,a),[n,a]),{x:g,y,z:v}=m.useMemo(()=>({x:E(a),y:E(l),z:E(c)}),[a,l,c]),{min:C,max:T}=m.useMemo(()=>{const I=x.minBy(h,W=>W[v.columnKey]),P=x.maxBy(h,W=>W[v.columnKey]);return{min:x.get(I,v.columnKey),max:x.get(P,v.columnKey)}},[h,v]),D={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:C,max:T,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:u,yAxis3D:d,zAxis3D:p,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:h.map(I=>[I[g.columnKey],I[y.columnKey],I[v.columnKey]])}]};return e?s.jsx(Me,{width:r,height:i,children:s.jsx(ke,{echarts:je,option:D,style:ln(r,i),notMerge:!0,theme:"merico-light"})}):null}const Sa=m.createContext(null),Es=Sa.Provider;function As(){const t=m.useContext(Sa);if(!t)throw new Error("Please use DashboardModelContextProvider");return t}const H=()=>As(),ka=()=>As(),Ta=m.createContext({searchButtonProps:{}}),Ps=Ta.Provider;function Da(){return m.useContext(Ta)}const za=m.createContext(null),$s=za.Provider;function Ma(){const t=m.useContext(za);if(!t)throw new Error("Please use ContentModelContextProvider");return t}const U=()=>Ma(),de=()=>Ma(),ip={inEditMode:!1},En=m.createContext(ip),Ia=m.createContext({panel:null,data:{},loading:!1,errors:[],downloadPanelScreenshot:()=>{}}),Bs=Ia.Provider;function Ea(){const t=m.useContext(Ia);if(!t.panel)throw new Error("Please use PanelContextProvider");return t}const pt=()=>Ea(),$e=()=>Ea(),ap={fullScreenPanelID:"",setFullScreenPanelID:x.noop},Ls=m.createContext(ap);function Aa(){const t=m.useContext(Ls);if(!t)throw new Error("Please use FullScreenPanelContext.Provider");return t}const op={en:"en",zh:"zh-cn"};function qs({children:t}){const{i18n:e}=_.useTranslation(),n=m.useMemo(()=>{const r=e.language;return op[r]??"en"},[e.language]);return s.jsx(Wi.DatesProvider,{settings:{locale:n,firstDayOfWeek:1},children:t})}const q=S.observer(m.forwardRef(({label:t,required:e,description:n,value:r,onChange:i,queryID:a,clearable:l=!1,sx:c,...u},d)=>{const{panel:p}=$e(),h=m.useMemo(()=>p.dataFieldOptions(r,l,a),[r,l,a]);if(h.length===0){const g=p.explainDataKey(r);return s.jsxs(o.HoverCard,{shadow:"md",position:"bottom-start",withinPortal:!0,zIndex:320,children:[s.jsx(o.HoverCard.Target,{children:s.jsx(o.Box,{children:s.jsx(o.TextInput,{label:t,required:e,defaultValue:g.columnKey,readOnly:!0,disabled:!0})})}),s.jsx(o.HoverCard.Dropdown,{children:s.jsxs(o.Group,{position:"left",spacing:0,children:[s.jsx(o.Text,{size:"xs",color:g.queryName?"black":"red",sx:{fontFamily:"monospace"},children:g.queryName??g.queryID}),s.jsx(o.Text,{size:"xs",color:"black",sx:{fontFamily:"monospace"},children:"."}),s.jsx(o.Text,{size:"xs",color:"red",sx:{fontFamily:"monospace"},children:g.columnKey})]})})]})}return s.jsx(o.Select,{ref:d,label:t,description:n,data:h,value:r,onChange:i,required:e,sx:c,maxDropdownHeight:500,...u})}));function lp({context:t}){const{value:e,set:n}=O(t.instanceData,"config"),r=x.defaults({},e,Is),{control:i,handleSubmit:a,reset:l}=b.useForm({defaultValues:r});return m.useEffect(()=>{l(r)},[e]),e?s.jsx(o.Stack,{spacing:"xs",children:s.jsxs("form",{onSubmit:a(n),children:[s.jsx(o.Text,{children:"X Axis"}),s.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(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(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),s.jsx(o.Text,{mt:"lg",children:"Y Axis"}),s.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(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(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),s.jsx(o.Text,{mt:"lg",children:"Z Axis"}),s.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(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(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),s.jsx(o.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:s.jsxs(o.Button,{color:"blue",type:"submit",children:[s.jsx(B.DeviceFloppy,{size:20}),s.jsx(o.Text,{ml:"md",children:"Save"})]})})]})}):null}const cp=[{lang:"en",resources:{bar_chart_3d:{viz_name:"Bar Chart(3D)"}}},{lang:"zh",resources:{bar_chart_3d:{viz_name:"柱图(3D)"}}}];function up(t,{panelModel:e}){try{const n=e.queryIDs[0];if(!n)throw new Error("cannot migrate when queryID is empty");const r=u=>u&&`${n}.${u}`,{x_axis_data_key:i,y_axis_data_key:a,z_axis_data_key:l,...c}=t;return{...c,x_axis_data_key:r(i),y_axis_data_key:r(a),z_axis_data_key:r(l)}}catch(n){throw console.error("[Migration failed]",n),n}}class dp 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:up(i,r)}})}}const pp={displayName:"viz.bar_chart_3d.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new dp,name:"bar-3d",viewRender:rp,configRender:lp,createConfig(){return{version:2,config:x.cloneDeep(Is)}},translation:cp},hp=({disabled:t,value:e,onChange:n})=>{const r=i=>{i&&n(i)};return s.jsxs(o.Box,{sx:{position:"relative"},children:[t&&s.jsx(o.Overlay,{opacity:.6,color:"#fff",zIndex:5,blur:2}),s.jsx(Pe,{height:"500px",defaultLanguage:"javascript",value:e,onChange:r,theme:"vs-dark",options:{minimap:{enabled:!1},readOnly:t}})]})};function Ie({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 Ce(){return{enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
|
|
56
|
+
`,"<br/>").split("<br/>");return n.map((i,a)=>{const l=[zd(i)];return a!==n.length-1&&l.push(s.jsx("br",{},`br-${a}`)),l}).flat().filter(i=>i!==void 0)}function Ts(t){return Md(t)}function on(t,e,n){const r=Dd(e,n),i=/^\{(.+)\}(.*)$/;return t.split("$").map((a,l)=>{const c=i.exec(a);if(!c)return Ts(a);const u=r[c[1]];if(!u)return Ts(a);const d=c[2]??"";return s.jsxs(m.Fragment,{children:[u,Ts(d)]},`${a}-${l}`)})}function Id(t,e){const{data_field:n,aggregation:r}=t,i=Dn(e,n,r);return Oe(t,i)}function ga(t,e){const n={};return t.forEach(r=>{n[r.name]=Id(r,e)}),n}function zn(t,e,n){const r=ga(e,n),i=/^\{(.+)\}(.*)$/;return t.split("$").map(a=>{const l=i.exec(a);if(!l)return a;const c=r[l[1]];if(!c)return a;const u=l[2]??"";return`${c}${u}`}).join("")}const kt={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 Ed(){je.registerTheme("merico-light",{color:Object.values(kt.graphics.multiple),visualMap:{color:Object.values(kt.graphics.depth).reverse()},axes:[{type:"all",name:"通用坐标轴",axisLineColor:"#97999D",axisTickColor:"#97999D",axisLabelShow:!0,axisLabelColor:"#818388",splitLineShow:!0,splitLineColor:["#E0E6F1"]}]})}function xa(){Ed()}function*Ad(t){const e=kt.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 ya(){return{filters:{},context:{}}}function Ds(t){const e=ya();if(!t)return ya();const{filters:n=e.filters,context:r=e.context}=t;return{filters:n,context:r}}class we extends m.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){this.setState({error:e})}render(){var e;if(this.state.error){const n=()=>{this.setState({error:null})};return s.jsxs(o.Box,{children:[s.jsx(o.Text,{size:"xs",children:(e=this.state.error)==null?void 0:e.message}),s.jsx(o.Button,{variant:"subtle",size:"xs",mx:"auto",compact:!0,sx:{display:"block"},onClick:n,children:"Retry"})]})}return this.props.children}}function Pd(t,e={handleError:!0}){return n=>s.jsx(we,{...e,children:s.jsx(t,{...n})})}function $d(t,e){return new Function(`return ${t}`)()(e,et)}function Bd(t,e,n){return $d(t,{context:e,filters:n})}function Ld(t,e){try{return new Function(`return ${t.config.processing.pre}`)()(e,et)}catch(n){return console.error(n),e}}function qd(t,e){return new Function(`return ${t.config.processing.post}`)()(e,et)}function Od(t,e,n){return t?new Function(`return ${t}`)()(e,et,n):e}function ba(){Ni.use([_u.CanvasRenderer,He.BarChart,He.BoxplotChart,He.CustomChart,He.FunnelChart,He.HeatmapChart,He.LineChart,He.PieChart,He.RadarChart,He.ScatterChart,He.SunburstChart,yt.CalendarComponent,yt.DataZoomComponent,yt.GridComponent,yt.LegendComponent,yt.TooltipComponent,yt.MarkLineComponent,yt.MarkAreaComponent,yt.VisualMapComponent])}const Vt=t=>x.cloneDeepWith(t,(e,n)=>{if(n!==void 0&&e)return K.toJS(e)}),Mn={sqlSnippet:new RegExp("(?<=sql_snippets\\.)([^\\?}.]+)","gm"),context:new RegExp("(?<=context\\.)([^\\?}.]+)","gm"),filter:new RegExp("(?<=filters\\.)([^\\?}.]+)","gm")};function Vd(t,e){const n=Gi.decode(e);n!==t&&(console.error("Inconsistent sql"),console.groupCollapsed("Inconsistent sql"),console.table({before:t,after:e,v:n}),console.groupEnd())}async function Nd({query:t,name:e,payload:n,additionals:r},i){if(!t.sql)return[];const{type:a,key:l,sql:c,pre_process:u,post_process:d}=t,p=ws(c,n),h=md({sql:p,pre_process:u}),g=Gi.encode(h);Vd(h,g);let y=await tt.query(i)({type:a,key:l,query:g,...r},{params:{name:e}});return y=fd(d,y,Ds(n)),y}async function Gd({type:t,key:e,configString:n,name:r,additionals:i},a){try{return await tt.httpDataSourceQuery(a)({type:t,key:e,query:n,...i},{params:{name:r}})}catch(l){if(ot.isCancel(l))throw l;return console.error(l),l}}async function zs(){try{return(await tt.post()("/datasource/list",{filter:{},sort:[{field:"create_time",order:"ASC"}],pagination:{page:1,pagesize:100}},{})).data}catch(t){return console.error(t),[]}}async function va(){try{return(await tt.post()("/sql_snippet/list",{filter:{},sort:[{field:"id",order:"ASC"}],pagination:{page:1,pagesize:1e3}},{})).data}catch(t){return console.error(t),[]}}class _a{constructor(e){$(this,"rootRef");this.rootRef=K.observable({current:e})}async deleteItem(e){K.runInAction(()=>{x.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):x.get(this.rootRef.current,[e])}setItem(e,n){if(e===null)if(x.isObject(n))K.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else K.runInAction(()=>{x.set(this.rootRef.current,[e],n)});return Promise.resolve(this.getItem(e))}watchItem(e,n,r){return K.reaction(()=>this.getValueFromRoot(e),(i,a)=>{n(i,a)},{requiresObservable:!0,fireImmediately:x.get(r,"fireImmediately",!1)})}}class Fd{constructor(){$(this,"channels",new Map);$(this,"globalChannel",new Fi)}getChannel(e){const n=this.channels.get(e);if(n)return n;const r=new Fi;return this.channels.set(e,r),r}}class Wd{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 Fd,instanceData:new _a(e.viz.conf)};return this.instances.set(e.id,r),r}}function ja(t,e,n,r){return{vizManager:n,locale:"zh",msgChannels:t.messageChannels,instanceData:t.instanceData,pluginData:new _a({}),colorPalette:{getColor(){return()=>""}},data:e,variables:r}}const Qd=t=>{const{panel:e,measure:n,vizManager:r,data:i,variables:a}=t,l=r.resolveComponent(e.viz.type),c=r.getOrCreateInstance(e),u={...ja(c,i,r,a),viewport:{width:n.w,height:n.h}},d=l.viewRender;return s.jsx(d,{context:u,instance:c,...x.omit(t,["panel","vizManager","data"])})},Rd=t=>{const{vizManager:e,panel:n,data:r,variables:i}=t,a=e.resolveComponent(n.viz.type),l=e.getOrCreateInstance(n),c={...ja(l,r,e,i)},u=a.configRender;return s.jsx(u,{context:c,instance:l,...x.omit(t,["panel","vizManager","data"])})},wa=(t,e)=>{const n=lt.bezier(t),r=lt.bezier(e);return function(i){return i<50?n(i*2/100).hex():r((i-50)*2/100).hex()}},In=t=>{const e=lt.bezier(t);return function(n){return e(n/100).hex()}},Ud={type:"interpolation",displayName:"style.color.interpolation.palette.red_green",getColor:wa(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},Yd={type:"interpolation",displayName:"style.color.interpolation.palette.yellow_blue",getColor:wa(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},Kd={type:"interpolation",displayName:"style.color.interpolation.palette.red",getColor:In(["#fff7f1","darkred"]),name:"red",category:"sequential"},Jd={type:"interpolation",displayName:"style.color.interpolation.palette.green",getColor:In(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},Xd={type:"interpolation",displayName:"style.color.interpolation.palette.blue",getColor:In(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},Zd={type:"interpolation",displayName:"style.color.interpolation.palette.orange",getColor:In(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class Hd{constructor(e){$(this,"symbol");this.symbol=Symbol(e)}}function dt(t){return new Hd(t)}class Ms{constructor(){$(this,"parent");$(this,"factoryRegistry",new Map);$(this,"instanceRegistry",new Map)}createScoped(){const e=new Ms;return e.parent=this,e}getRequired(e){return this.get(e)}get(e){if(this.instanceRegistry.has(e.symbol))return this.instanceRegistry.get(e.symbol);const n=this.factoryRegistry.get(e.symbol);if(n){const r=n(this);return this.instanceRegistry.set(e.symbol,r),r}if(this.parent)return this.parent.get(e)}provideFactory(e,n){return this.factoryRegistry.has(e.symbol)?console.warn(`Token ${e.symbol.toString()} is already registered`):this.factoryRegistry.set(e.symbol,n),this}provideValue(e,n){return this.factoryRegistry.has(e.symbol)?console.warn(`Token ${e.symbol.toString()} is already registered`):this.factoryRegistry.set(e.symbol,()=>n),this}dispose(){this.instanceRegistry.forEach(e=>{const n=x.get(e,"dispose");x.isFunction(n)&&n.bind(e)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}const Ca="13.5.1",ep=Object.freeze(Object.defineProperty({__proto__:null,version:Ca},Symbol.toStringTag,{value:"Module"}));class tp{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 np{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 sp{constructor(){$(this,"migrations",[])}version(e,n){return this.migrations.push({version:e,handler:n}),this}run(e,n,r){var l;if(e.from===e.to)return n;if(e.from>e.to)throw new Error(`Can not downgrade from version '${e.from}' to (${e.to})`);const i=this.migrations.filter(c=>c.version>e.from&&c.version<=e.to),a=x.orderBy(i,"version","asc");if(((l=x.last(a))==null?void 0:l.version)!==e.to)throw new Error(`Migration to version ${e.to} not found`);return a.reduce((c,u)=>u.handler(c,r),n)}}class oe extends sp{constructor(){super(),this.configVersions()}version(e,n){return super.version(e,(r,i)=>({version:e,...n(r,i)}))}async migrate({configData:e,panelModel:n}){const r=await e.getItem(null),i=x.get(r,"version",0),a=this.run({from:i,to:this.VERSION},r,{panelModel:n});await e.setItem(null,a)}async needMigration({configData:e}){const n=await e.getItem(null);return x.get(n,"version",0)<this.VERSION}}const O=(t,e)=>{const[n,{setFalse:r}]=N.useBoolean(!0),[i,a]=m.useState();m.useEffect(()=>(t.getItem(e).then(c=>{a(c),r()}),t.watchItem(e,c=>{a(c)})));const l=m.useCallback(async c=>{await t.setItem(e,c),a(c)},[t,e]);return{loading:n,value:i,set:l}},ze={top:16,right:16,bottom:16,left:16},Ye=t=>Math.max(0,t-ze.left-ze.right),Ke=t=>Math.max(0,t-ze.top-ze.bottom),ln=(t,e)=>({width:Ye(t),height:Ke(e)}),Me=({width:t,height:e,children:n})=>s.jsx(o.Box,{pt:ze.top,pr:ze.right,pb:ze.bottom,pl:ze.left,sx:{width:t,height:e,overflow:"hidden",position:"relative"},children:n}),Is={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 rp({context:t}){const{value:e}=O(t.instanceData,"config"),n=t.data,{width:r,height:i}=t.viewport,{x_axis_data_key:a,y_axis_data_key:l,z_axis_data_key:c,xAxis3D:u,yAxis3D:d,zAxis3D:p}=x.defaults({},e,Is),h=m.useMemo(()=>kn(n,a),[n,a]),{x:g,y,z:v}=m.useMemo(()=>({x:E(a),y:E(l),z:E(c)}),[a,l,c]),{min:C,max:T}=m.useMemo(()=>{const I=x.minBy(h,W=>W[v.columnKey]),P=x.maxBy(h,W=>W[v.columnKey]);return{min:x.get(I,v.columnKey),max:x.get(P,v.columnKey)}},[h,v]),D={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:C,max:T,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:u,yAxis3D:d,zAxis3D:p,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:h.map(I=>[I[g.columnKey],I[y.columnKey],I[v.columnKey]])}]};return e?s.jsx(Me,{width:r,height:i,children:s.jsx(ke,{echarts:je,option:D,style:ln(r,i),notMerge:!0,theme:"merico-light"})}):null}const Sa=m.createContext(null),Es=Sa.Provider;function As(){const t=m.useContext(Sa);if(!t)throw new Error("Please use DashboardModelContextProvider");return t}const H=()=>As(),ka=()=>As(),Ta=m.createContext({searchButtonProps:{}}),Ps=Ta.Provider;function Da(){return m.useContext(Ta)}const za=m.createContext(null),$s=za.Provider;function Ma(){const t=m.useContext(za);if(!t)throw new Error("Please use ContentModelContextProvider");return t}const U=()=>Ma(),de=()=>Ma(),ip={inEditMode:!1},En=m.createContext(ip),Ia=m.createContext({panel:null,data:{},loading:!1,errors:[],downloadPanelScreenshot:()=>{}}),Bs=Ia.Provider;function Ea(){const t=m.useContext(Ia);if(!t.panel)throw new Error("Please use PanelContextProvider");return t}const pt=()=>Ea(),$e=()=>Ea(),ap={fullScreenPanelID:"",setFullScreenPanelID:x.noop},Ls=m.createContext(ap);function Aa(){const t=m.useContext(Ls);if(!t)throw new Error("Please use FullScreenPanelContext.Provider");return t}const op={en:"en",zh:"zh-cn"};function qs({children:t}){const{i18n:e}=_.useTranslation(),n=m.useMemo(()=>{const r=e.language;return op[r]??"en"},[e.language]);return s.jsx(Wi.DatesProvider,{settings:{locale:n,firstDayOfWeek:1},children:t})}const q=S.observer(m.forwardRef(({label:t,required:e,description:n,value:r,onChange:i,queryID:a,clearable:l=!1,sx:c,...u},d)=>{const{panel:p}=$e(),h=m.useMemo(()=>p.dataFieldOptions(r,l,a),[r,l,a]);if(h.length===0){const g=p.explainDataKey(r);return s.jsxs(o.HoverCard,{shadow:"md",position:"bottom-start",withinPortal:!0,zIndex:320,children:[s.jsx(o.HoverCard.Target,{children:s.jsx(o.Box,{children:s.jsx(o.TextInput,{label:t,required:e,defaultValue:g.columnKey,readOnly:!0,disabled:!0})})}),s.jsx(o.HoverCard.Dropdown,{children:s.jsxs(o.Group,{position:"left",spacing:0,children:[s.jsx(o.Text,{size:"xs",color:g.queryName?"black":"red",sx:{fontFamily:"monospace"},children:g.queryName??g.queryID}),s.jsx(o.Text,{size:"xs",color:"black",sx:{fontFamily:"monospace"},children:"."}),s.jsx(o.Text,{size:"xs",color:"red",sx:{fontFamily:"monospace"},children:g.columnKey})]})})]})}return s.jsx(o.Select,{ref:d,label:t,description:n,data:h,value:r,onChange:i,required:e,sx:c,maxDropdownHeight:500,...u})}));function lp({context:t}){const{value:e,set:n}=O(t.instanceData,"config"),r=x.defaults({},e,Is),{control:i,handleSubmit:a,reset:l}=b.useForm({defaultValues:r});return m.useEffect(()=>{l(r)},[e]),e?s.jsx(o.Stack,{spacing:"xs",children:s.jsxs("form",{onSubmit:a(n),children:[s.jsx(o.Text,{children:"X Axis"}),s.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(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(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),s.jsx(o.Text,{mt:"lg",children:"Y Axis"}),s.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(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(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),s.jsx(o.Text,{mt:"lg",children:"Z Axis"}),s.jsxs(o.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[s.jsx(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(o.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),s.jsx(o.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:s.jsxs(o.Button,{color:"blue",type:"submit",children:[s.jsx(B.DeviceFloppy,{size:20}),s.jsx(o.Text,{ml:"md",children:"Save"})]})})]})}):null}const cp=[{lang:"en",resources:{bar_chart_3d:{viz_name:"Bar Chart(3D)"}}},{lang:"zh",resources:{bar_chart_3d:{viz_name:"柱图(3D)"}}}];function up(t,{panelModel:e}){try{const n=e.queryIDs[0];if(!n)throw new Error("cannot migrate when queryID is empty");const r=u=>u&&`${n}.${u}`,{x_axis_data_key:i,y_axis_data_key:a,z_axis_data_key:l,...c}=t;return{...c,x_axis_data_key:r(i),y_axis_data_key:r(a),z_axis_data_key:r(l)}}catch(n){throw console.error("[Migration failed]",n),n}}class dp 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:up(i,r)}})}}const pp={displayName:"viz.bar_chart_3d.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new dp,name:"bar-3d",viewRender:rp,configRender:lp,createConfig(){return{version:2,config:x.cloneDeep(Is)}},translation:cp},hp=({disabled:t,value:e,onChange:n})=>{const r=i=>{i&&n(i)};return s.jsxs(o.Box,{sx:{position:"relative"},children:[t&&s.jsx(o.Overlay,{opacity:.6,color:"#fff",zIndex:5,blur:2}),s.jsx(Pe,{height:"500px",defaultLanguage:"javascript",value:e,onChange:r,theme:"vs-dark",options:{minimap:{enabled:!1},readOnly:t}})]})};function Ie({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 Ce(){return{enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
|
|
57
57
|
`)}}const Je=m.forwardRef(({value:t,onChange:e,triggerButtonText:n},r)=>{const{t:i}=_.useTranslation(),[a,{setTrue:l,setFalse:c}]=N.useBoolean(),[u,d]=m.useState(t);m.useEffect(()=>{d(t)},[t]);const p=T=>{d({...u,enabled:T})},h=()=>{c();const{enabled:T,func_content:D}=u,I={enabled:T,func_content:D};d(I),e(I)},g=()=>{c(),d(t)},y=T=>{d(D=>({...D,func_content:T}))},v=()=>{y(Ce().func_content)},C=n??i("chart.axis.customize_label");return s.jsxs(s.Fragment,{children:[s.jsx(o.Button,{variant:"filled",color:"grape",leftIcon:s.jsx(k.IconMathFunction,{size:16}),mt:24,onClick:l,sx:{flexGrow:0},children:C}),s.jsx(o.Modal,{size:800,title:C,opened:a,onClose:c,closeOnClickOutside:!1,withCloseButton:!1,zIndex:320,children:a&&s.jsxs(o.Stack,{children:[s.jsx(o.Checkbox,{mt:10,label:i("common.enabled"),checked:u.enabled,onChange:T=>p(T.currentTarget.checked)}),s.jsx(hp,{value:u.func_content,onChange:y,disabled:!u.enabled}),s.jsxs(o.Group,{position:"apart",children:[s.jsx(o.Button,{onClick:v,color:"red",leftIcon:s.jsx(B.Recycle,{size:20}),children:i("common.actions.reset_to_default")}),s.jsxs(o.Group,{position:"right",children:[s.jsx(o.Button,{onClick:g,variant:"subtle",children:i("common.actions.cancel")}),s.jsx(o.Button,{color:"green",leftIcon:s.jsx(k.IconDeviceFloppy,{size:16}),onClick:h,children:i("common.actions.save")})]})]})]})})]})}),Tt={x_axis_scroll:!1,y_axis_scroll:!1,x_axis_slider:!1,y_axis_slider:!1};function Pa(){return x.cloneDeep(Tt)}const mp=[{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:"点击箱体、散点或异常点"}}}}],$a={id:"builtin:echarts:click-echart:series",displayName:"viz.boxplot.click_series.label",nameRender:gp,configRender:fp,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 fp(t){return s.jsx(s.Fragment,{})}function gp(t){const{t:e}=_.useTranslation();return s.jsx(o.Text,{children:e("viz.boxplot.click_series.label")})}const An=m.forwardRef(({sectionTitle:t,value:e,onChange:n},r)=>{const{t:i,i18n:a}=_.useTranslation(),l=u=>d=>{const p=x.cloneDeep(e);x.set(p,u,d),n(p)},c=m.useMemo(()=>[{label:i("chart.axis.overflow.truncate"),value:"truncate"},{label:i("chart.axis.overflow.break_line"),value:"break"},{label:i("chart.axis.overflow.break_word"),value:"breakAll"}],[a.language]);return s.jsxs(o.Stack,{spacing:0,children:[t&&s.jsx(o.Divider,{mb:-5,mt:5,variant:"dotted",label:t,labelPosition:"right",labelProps:{color:"dimmed"}}),s.jsxs(o.Group,{grow:!0,noWrap:!0,children:[s.jsx(o.NumberInput,{label:i("chart.axis.overflow.max_width"),hideControls:!0,value:e.width,onChange:l("width")}),s.jsx(o.Select,{label:i("chart.axis.overflow.label"),data:c,value:e.overflow,onChange:l("overflow")}),s.jsx(o.TextInput,{label:i("chart.axis.overflow.ellipsis"),value:e.ellipsis,disabled:!0})]})]})}),Xe=m.forwardRef(({value:t,onChange:e},n)=>{const{t:r}=_.useTranslation(),i=l=>{e({...t,on_axis:l})},a=l=>{e({...t,in_tooltip:l})};return s.jsxs(o.Stack,{ref:n,spacing:0,children:[s.jsx(An,{sectionTitle:r("chart.axis.overflow.section_title.on_axis"),value:t.on_axis,onChange:i}),s.jsx(An,{sectionTitle:r("chart.axis.overflow.section_title.in_tooltip"),value:t.in_tooltip,onChange:a})]})});function Ee(){return{on_axis:{width:80,overflow:"truncate",ellipsis:"..."},in_tooltip:{width:200,overflow:"break",ellipsis:"..."}}}function Ve({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};
|
|
@@ -298,7 +298,7 @@ Check the top-level render call using <`+A+">.")}return z}}function fu(w,z){{if(
|
|
|
298
298
|
<table style="width: auto">
|
|
299
299
|
<tbody>${c.join("")}</tbody>
|
|
300
300
|
</table>
|
|
301
|
-
`}}function V_(){return ne.getTooltip({trigger:"item",formatter:O_()})}const N_={tooltip:{show:!0},series:{type:"sunburst",radius:[0,"90%"],emphasis:{focus:"ancestor"}}};function G_(t,e,n){n.reduce((a,l)=>{const c=ut(l,e);return a[l.name]=Oe(l,c),a},{});const i={series:{data:B_(t,e),levels:q_(t)},tooltip:V_()};return x.defaultsDeep({},i,N_)}function F_({context:t}){const{variables:e}=t,{value:n}=O(t.instanceData,"config"),r=m.useMemo(()=>x.defaults({},n,Sr),[n]),i=t.data,{width:a,height:l}=t.viewport,c=m.useMemo(()=>G_(r,i,e),[r,i,e]);return!a||!l?null:s.jsx(Me,{width:a,height:l,children:s.jsx(ke,{echarts:je,option:c,style:ln(a,l),notMerge:!0,theme:"merico-light"})})}function W_({control:t,watch:e}){const{t:n}=_.useTranslation();return e(["label_key","value_key","group_key"]),s.jsxs(o.Stack,{children:[s.jsx(b.Controller,{name:"label_key",control:t,render:({field:r})=>s.jsx(q,{label:n("common.name_data_field"),required:!0,...r})}),s.jsx(b.Controller,{name:"value_key",control:t,render:({field:r})=>s.jsx(q,{label:n("common.value_data_field"),required:!0,...r})}),s.jsx(b.Controller,{name:"group_key",control:t,render:({field:r})=>s.jsx(q,{label:n("viz.sunburst_chart.group_key"),clearable:!0,...r})})]})}const Q_=({control:t,index:e})=>{const{t:n,i18n:r}=_.useTranslation(),i=m.useMemo(()=>[{label:n("viz.sunburst_chart.label.rotate.radial"),value:"radial"},{label:n("viz.sunburst_chart.label.rotate.tangential"),value:"tangential"},{label:n("viz.sunburst_chart.label.rotate.none"),value:"0"}],[r.language]);return s.jsxs(o.Stack,{children:[s.jsxs(o.Group,{grow:!0,noWrap:!0,children:[s.jsx(b.Controller,{name:`levels.${e}.r0`,control:t,render:({field:a})=>s.jsx(o.TextInput,{label:n("viz.sunburst_chart.level.inside_radius"),placeholder:"0%",...a})}),s.jsx(b.Controller,{name:`levels.${e}.r`,control:t,render:({field:a})=>s.jsx(o.TextInput,{label:n("viz.sunburst_chart.level.outside_radius"),placeholder:"50%",...a})})]}),s.jsx(o.Divider,{mb:-10,mt:10,variant:"dashed",label:n("chart.label.label_full"),labelPosition:"center"}),s.jsx(b.Controller,{name:`levels.${e}.label.show_label_tolerance`,control:t,render:({field:a})=>s.jsx(o.NumberInput,{label:n("viz.sunburst_chart.label.show_label_tolerance"),precision:4,step:5e-4,min:0,max:1,...a})}),s.jsxs(o.Group,{grow:!0,noWrap:!0,children:[s.jsx(b.Controller,{name:`levels.${e}.label.rotate`,control:t,render:({field:a})=>s.jsx(o.Select,{label:n("viz.sunburst_chart.label.rotate.label"),data:i,...a})}),s.jsx(b.Controller,{name:`levels.${e}.label.align`,control:t,render:({field:a})=>s.jsx(Ct,{...a})})]}),s.jsxs(o.Group,{grow:!0,noWrap:!0,children:[s.jsx(b.Controller,{name:`levels.${e}.label.position`,control:t,render:({field:a})=>s.jsx(Rt,{label:n("chart.label_position.label"),...a,onChange:l=>{l&&a.onChange(l)}})}),s.jsx(b.Controller,{name:`levels.${e}.label.padding`,control:t,render:({field:a})=>s.jsx(o.NumberInput,{label:n("chart.padding"),min:0,hideControls:!0,...a})})]})]})},R_=({control:t,watch:e})=>{const{t:n}=_.useTranslation(),r=()=>({id:Date.now().toString(),r0:"",r:"",label:{show_label_tolerance:.001,rotate:"0",align:"center",position:"inside",padding:0}}),i=(a,l)=>l+1;return s.jsxs(s.Fragment,{children:[s.jsxs(o.Group,{spacing:2,sx:{cursor:"default",userSelect:"none"},children:[s.jsx(B.InfoCircle,{size:14,color:"#888"}),s.jsx(o.Text,{size:14,color:"#888",children:n("viz.sunburst_chart.level.hint")})]}),s.jsx(o.Divider,{variant:"dashed",my:10}),s.jsx(le,{control:t,watch:e,name:"levels",getItem:r,addButtonText:n("viz.sunburst_chart.level.add"),deleteButtonText:n("viz.sunburst_chart.level.delete"),renderTabName:i,children:({field:a,index:l})=>s.jsx(Q_,{control:t,index:l})})]})};function U_({context:t}){const{t:e}=_.useTranslation(),{value:n,set:r}=O(t.instanceData,"config"),i=m.useMemo(()=>x.defaultsDeep({},n,Sr),[n]),a=m.useMemo(()=>x.clone(i),[i]),{control:l,handleSubmit:c,watch:u,getValues:d,reset:p}=b.useForm({defaultValues:a});m.useEffect(()=>{p(a)},[a]);const h=d(),g=m.useMemo(()=>!x.isEqual(h,i),[h,i]);u(["label_key","value_key","group_key","levels"]);const[y,v]=m.useState("Data");return s.jsx("form",{onSubmit:c(r),children:s.jsxs(o.Stack,{spacing:"xs",children:[s.jsx(fe,{canSubmit:g}),s.jsxs(o.Tabs,{value:y,onTabChange:v,orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[s.jsxs(o.Tabs.List,{children:[s.jsx(o.Tabs.Tab,{value:"Data",children:e("data.label")}),s.jsx(o.Tabs.Tab,{value:"Levels",children:e("viz.sunburst_chart.level.labels")})]}),s.jsx(o.Tabs.Panel,{value:"Data",children:s.jsx(W_,{control:l,watch:u})}),s.jsx(o.Tabs.Panel,{value:"Levels",children:s.jsx(R_,{control:l,watch:u})})]})]})})}const Y_=[{lang:"en",resources:{sunburst_chart:{viz_name:"Sunburst Chart",level:{labels:"Levels",hint:"Configure ring style on each level",inside_radius:"Inside Radius",outside_radius:"Outside Radius",add:"Add a level",delete:"Delete this level"},label:{show_label_tolerance:"Hide label when its percentage is less than...",rotate:{label:"Rotate",radial:"Radial",tangential:"Tangential",none:"None"}},group_key:"Group Key"}}},{lang:"zh",resources:{sunburst_chart:{viz_name:"旭日图",level:{labels:"层级",hint:"为每层配置圆环样式",inside_radius:"内径",outside_radius:"外径",add:"增加一层",delete:"删除这一层"},label:{show_label_tolerance:"当百分比低于此值时,隐藏文案",rotate:{label:"旋转",radial:"径向旋转",tangential:"切向旋转",none:"不旋转"}},group_key:"分组字段"}}}];function K_(t){const{label_field:e,value_field:n,...r}=t;return{...r,label_key:e,value_key:n}}function J_(t){const{group_key:e="",...n}=t;return{...n,group_key:e}}function X_(t){const{levels:e=[],...n}=t;return{...n,levels:e}}function Z_(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}`,{label_key:i,value_key:a,group_key:l,...c}=t;return{...c,label_key:r(i),value_key:r(a),group_key:r(l)}}catch(n){throw console.error("[Migration failed]",n),n}}class H_ extends oe{constructor(){super(...arguments);$(this,"VERSION",5)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,n=>({...n,version:2,config:K_(n.config)})),this.version(3,n=>({...n,version:3,config:J_(n.config)})),this.version(4,n=>({...n,version:4,config:X_(n.config)})),this.version(5,(n,r)=>({...n,version:5,config:Z_(n.config,r)}))}}const ej={displayName:"viz.sunburst_chart.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new H_,name:"sunburst",viewRender:F_,configRender:U_,createConfig(){return{version:5,config:x.cloneDeep(Sr)}},translation:Y_};var it=(t=>(t.string="string",t.number="number",t.eloc="eloc",t.percentage="percentage",t.custom="custom",t))(it||{});const Ko=["function text({ value }, utils) {"," return value","}"].join(`
|
|
301
|
+
`}}function V_(){return ne.getTooltip({trigger:"item",formatter:O_()})}const N_={tooltip:{show:!0},series:{type:"sunburst",radius:[0,"90%"],emphasis:{focus:"ancestor"}}};function G_(t,e,n){n.reduce((a,l)=>{const c=ut(l,e);return a[l.name]=Oe(l,c),a},{});const i={series:{data:B_(t,e),levels:q_(t)},tooltip:V_()};return x.defaultsDeep({},i,N_)}function F_({context:t}){const{variables:e}=t,{value:n}=O(t.instanceData,"config"),r=m.useMemo(()=>x.defaults({},n,Sr),[n]),i=t.data,{width:a,height:l}=t.viewport,c=m.useMemo(()=>G_(r,i,e),[r,i,e]);return!a||!l?null:s.jsx(Me,{width:a,height:l,children:s.jsx(ke,{echarts:je,option:c,style:ln(a,l),notMerge:!0,theme:"merico-light"})})}function W_({control:t,watch:e}){const{t:n}=_.useTranslation();return e(["label_key","value_key","group_key"]),s.jsxs(o.Stack,{children:[s.jsx(b.Controller,{name:"label_key",control:t,render:({field:r})=>s.jsx(q,{label:n("common.name_data_field"),required:!0,...r})}),s.jsx(b.Controller,{name:"value_key",control:t,render:({field:r})=>s.jsx(q,{label:n("common.value_data_field"),required:!0,...r})}),s.jsx(b.Controller,{name:"group_key",control:t,render:({field:r})=>s.jsx(q,{label:n("viz.sunburst_chart.group_key"),clearable:!0,...r})})]})}const Q_=({control:t,index:e})=>{const{t:n,i18n:r}=_.useTranslation(),i=m.useMemo(()=>[{label:n("viz.sunburst_chart.label.rotate.radial"),value:"radial"},{label:n("viz.sunburst_chart.label.rotate.tangential"),value:"tangential"},{label:n("viz.sunburst_chart.label.rotate.none"),value:"0"}],[r.language]);return s.jsxs(o.Stack,{children:[s.jsxs(o.Group,{grow:!0,noWrap:!0,children:[s.jsx(b.Controller,{name:`levels.${e}.r0`,control:t,render:({field:a})=>s.jsx(o.TextInput,{label:n("viz.sunburst_chart.level.inside_radius"),placeholder:"0%",...a})}),s.jsx(b.Controller,{name:`levels.${e}.r`,control:t,render:({field:a})=>s.jsx(o.TextInput,{label:n("viz.sunburst_chart.level.outside_radius"),placeholder:"50%",...a})})]}),s.jsx(o.Divider,{mb:-10,mt:10,variant:"dashed",label:n("chart.label.label_full"),labelPosition:"center"}),s.jsx(b.Controller,{name:`levels.${e}.label.show_label_tolerance`,control:t,render:({field:a})=>s.jsx(o.NumberInput,{label:n("viz.sunburst_chart.label.show_label_tolerance"),precision:4,step:5e-4,min:0,max:1,...a})}),s.jsxs(o.Group,{grow:!0,noWrap:!0,children:[s.jsx(b.Controller,{name:`levels.${e}.label.rotate`,control:t,render:({field:a})=>s.jsx(o.Select,{label:n("viz.sunburst_chart.label.rotate.label"),data:i,...a})}),s.jsx(b.Controller,{name:`levels.${e}.label.align`,control:t,render:({field:a})=>s.jsx(Ct,{...a})})]}),s.jsxs(o.Group,{grow:!0,noWrap:!0,children:[s.jsx(b.Controller,{name:`levels.${e}.label.position`,control:t,render:({field:a})=>s.jsx(Rt,{label:n("chart.label_position.label"),...a,onChange:l=>{l&&a.onChange(l)}})}),s.jsx(b.Controller,{name:`levels.${e}.label.padding`,control:t,render:({field:a})=>s.jsx(o.NumberInput,{label:n("chart.padding"),min:0,hideControls:!0,...a})})]})]})},R_=({control:t,watch:e})=>{const{t:n}=_.useTranslation(),r=()=>({id:Date.now().toString(),r0:"",r:"",label:{show_label_tolerance:.001,rotate:"0",align:"center",position:"inside",padding:0}}),i=(a,l)=>l+1;return s.jsxs(s.Fragment,{children:[s.jsxs(o.Group,{spacing:2,sx:{cursor:"default",userSelect:"none"},children:[s.jsx(B.InfoCircle,{size:14,color:"#888"}),s.jsx(o.Text,{size:14,color:"#888",children:n("viz.sunburst_chart.level.hint")})]}),s.jsx(o.Divider,{variant:"dashed",my:10}),s.jsx(le,{control:t,watch:e,name:"levels",getItem:r,addButtonText:n("viz.sunburst_chart.level.add"),deleteButtonText:n("viz.sunburst_chart.level.delete"),renderTabName:i,children:({field:a,index:l})=>s.jsx(Q_,{control:t,index:l})})]})};function U_({context:t}){const{t:e}=_.useTranslation(),{value:n,set:r}=O(t.instanceData,"config"),i=m.useMemo(()=>x.defaultsDeep({},n,Sr),[n]),a=m.useMemo(()=>x.clone(i),[i]),{control:l,handleSubmit:c,watch:u,getValues:d,reset:p}=b.useForm({defaultValues:a});m.useEffect(()=>{p(a)},[a]);const h=d(),g=m.useMemo(()=>!x.isEqual(h,i),[h,i]);u(["label_key","value_key","group_key","levels"]);const[y,v]=m.useState("Data");return s.jsx("form",{onSubmit:c(r),children:s.jsxs(o.Stack,{spacing:"xs",children:[s.jsx(fe,{canSubmit:g}),s.jsxs(o.Tabs,{value:y,onTabChange:v,orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[s.jsxs(o.Tabs.List,{children:[s.jsx(o.Tabs.Tab,{value:"Data",children:e("data.label")}),s.jsx(o.Tabs.Tab,{value:"Levels",children:e("viz.sunburst_chart.level.labels")})]}),s.jsx(o.Tabs.Panel,{value:"Data",children:s.jsx(W_,{control:l,watch:u})}),s.jsx(o.Tabs.Panel,{value:"Levels",children:s.jsx(R_,{control:l,watch:u})})]})]})})}const Y_=[{lang:"en",resources:{sunburst_chart:{viz_name:"Sunburst Chart",level:{labels:"Levels",hint:"Configure ring style on each level",inside_radius:"Inside Radius",outside_radius:"Outside Radius",add:"Add a level",delete:"Delete this level"},label:{show_label_tolerance:"Hide label when its percentage is less than...",rotate:{label:"Rotate",radial:"Radial",tangential:"Tangential",none:"None"}},group_key:"Group Key"}}},{lang:"zh",resources:{sunburst_chart:{viz_name:"旭日图",level:{labels:"层级",hint:"为每层配置圆环样式",inside_radius:"内径",outside_radius:"外径",add:"增加一层",delete:"删除这一层"},label:{show_label_tolerance:"当百分比低于此值时,隐藏文案",rotate:{label:"旋转",radial:"径向旋转",tangential:"切向旋转",none:"不旋转"}},group_key:"分组字段"}}}];function K_(t){const{label_field:e,value_field:n,...r}=t;return{...r,label_key:e,value_key:n}}function J_(t){const{group_key:e="",...n}=t;return{...n,group_key:e}}function X_(t){const{levels:e=[],...n}=t;return{...n,levels:e}}function Z_(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}`,{label_key:i,value_key:a,group_key:l,...c}=t;return{...c,label_key:r(i),value_key:r(a),group_key:r(l)}}catch(n){throw console.error("[Migration failed]",n),n}}class H_ extends oe{constructor(){super(...arguments);$(this,"VERSION",5)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,n=>({...n,version:2,config:K_(n.config)})),this.version(3,n=>({...n,version:3,config:J_(n.config)})),this.version(4,n=>({...n,version:4,config:X_(n.config)})),this.version(5,(n,r)=>({...n,version:5,config:Z_(n.config,r)}))}}const ej={displayName:"viz.sunburst_chart.viz_name",displayGroup:"chart.groups.echarts_based_charts",migrator:new H_,name:"sunburst",viewRender:F_,configRender:U_,createConfig(){return{version:5,config:x.cloneDeep(Sr)}},translation:Y_};var it=(t=>(t.string="string",t.number="number",t.eloc="eloc",t.percentage="percentage",t.custom="custom",t))(it||{});const Ko=["function text({ value, row_data }, utils) {"," return value","}"].join(`
|
|
302
302
|
`),Jo={columns:[],fontSize:"14px",highlightOnHover:!0,horizontalSpacing:"14px",query_id:"",striped:!0,use_raw_columns:!0,verticalSpacing:"14px"},Xo={left:"flex-start",center:"center",right:"flex-end"},tj=({header:t,cx:e})=>{const n=x.get(t.column.columnDef.meta,"align","left");return s.jsxs(o.Text,{className:e("table-head-cell",{"table-head-cell--sortable":t.column.getCanSort()}),onClick:t.column.getToggleSortingHandler(),align:n,sx:{justifyContent:Xo[n]},children:[t.isPlaceholder?null:Ue.flexRender(t.column.columnDef.header,t.getContext()),s.jsx(nj,{direction:t.column.getIsSorted()})]})},nj=({direction:t})=>{switch(t){case"asc":return s.jsx(k.IconArrowUp,{size:16});case"desc":return s.jsx(k.IconArrowDown,{size:"1em"});default:return null}},sj=o.createStyles(t=>({root:{overflow:"auto",position:"relative","& .table-head-cell":{display:"flex",flexFlow:"row nowrap",alignItems:"center",whiteSpace:"nowrap","&.table-head-cell--sortable":{cursor:"pointer",userSelect:"none"}},"&.table-highlight-on-hover tr":{transition:"background-color 0.2s","&:hover":{backgroundColor:t.colorScheme==="dark"?t.colors.dark[5]:t.colors.gray[0]}}},thead:{background:t.colorScheme==="dark"?t.colors.dark[7]:t.white,position:"sticky",top:24,transform:"translateY(-1px)",zIndex:10},info_bar:{position:"sticky",top:0,left:0,right:0,zIndex:10,background:"white"}})),rj={tableLayout:"fixed","thead, tbody":{tr:{"th, td":{padding:"2px 10px",div:{overflow:"hidden",textOverflow:"ellipsis"},"&:first-of-type":{paddingLeft:2,paddingRight:2}}}}},ij=o.createStyles((t,e)=>({content:{display:"flex",alignItems:"center",justifyContent:Xo[e.align],".table-cell-text":{whiteSpace:"nowrap",cursor:e.clickable?"pointer":"default",textDecoration:e.clickable?"underline":"none"}}}));function aj(t){return t?lt(t).oklch()[0]>.7?"black":"white":"inherit"}function oj(t){const e=t.tableCellContext.bgColor;return{backgroundColor:e,color:aj(e)}}function Kt(t){const e=t.tableCellContext.isClickable(),n=ij({clickable:e,align:t.align});return s.jsx("div",{className:n.classes.content,style:{...oj(t)},children:s.jsx(o.Text,{className:"table-cell-text",onClick:t.tableCellContext.getClickHandler(),children:s.jsx("span",{title:t.children,children:t.children})})})}function lj(t){return s.jsx(Kt,{...t,children:t.value})}function cj(t){const e=R(t.value,{output:"number",average:!0,mantissa:2,trimMantissa:!0,absolute:!1});return s.jsx(Kt,{...t,children:e})}function uj(t){const e=R(t.value,{output:"number",mantissa:0,thousandSeparated:!0,absolute:!1});return s.jsx(Kt,{...t,children:e})}function dj(t){const e=R(t.value,{output:"percent",mantissa:3,trimMantissa:!0,absolute:!1});return s.jsx(Kt,{...t,children:e})}function pj(t){const{value:e,row_data:n,func_content:r}=t;if(!r)return s.jsx(Kt,{...t,children:e});const i=new Function(`return ${r}`)()({value:e,row_data:n},et);return s.jsx(Kt,{...t,children:i})}function hj(t){switch(t.type){case it.string:return s.jsx(lj,{...t});case it.eloc:return s.jsx(cj,{...t});case it.number:return s.jsx(uj,{...t});case it.percentage:return s.jsx(dj,{...t});case it.custom:return s.jsx(pj,{...t})}}function mj({tableContainerRef:t,rows:e}){var c,u;const n=wu.useVirtual({parentRef:t,size:e.length,estimateSize:m.useCallback(()=>28,[]),overscan:20}),{virtualItems:r,totalSize:i}=n,a=r.length>0&&((c=r==null?void 0:r[0])==null?void 0:c.start)||0,l=r.length>0?i-(((u=r==null?void 0:r[r.length-1])==null?void 0:u.end)||0):0;return s.jsxs("tbody",{children:[a>0&&s.jsx("tr",{children:s.jsx("td",{style:{height:`${a}px`}})}),r.map(d=>{const p=e[d.index];return s.jsx("tr",{children:p.getVisibleCells().map(h=>s.jsx("td",{children:Ue.flexRender(h.column.columnDef.cell,h.getContext())},h.id))},p.id)}),l>0&&s.jsx("tr",{children:s.jsx("td",{style:{height:`${l}px`}})})]})}const kr={id:"builtin:table:click-cell-content",displayName:"viz.table.click_cell.click_cell_content",nameRender:yj,configRender:gj,payload:[{name:"row_index",description:"Index of the row that the cell belongs to",valueType:"number"},{name:"col_index",description:"Index of the column that the cell belongs to",valueType:"number"},{name:"row_data",description:"Data of the row that the cell belongs to",valueType:"object"}]},fj={column:""};function Zo(t,e){const{value:n}=O(t.instanceData,"config"),r={columnsFromConfig:[],columnsFromData:[]};if(n&&(r.columnsFromConfig=n.columns.map((i,a)=>({label:i.label,value:a.toString()}))),!e)return r;if(n!=null&&n.query_id){const i=e[n.query_id];(i==null?void 0:i.length)>0&&(r.columnsFromData=Object.keys(i[0]).map(a=>({label:a,value:a})))}return r}function gj(t){const{t:e}=_.useTranslation(),{columnsFromConfig:n,columnsFromData:r}=Zo(t.instance,t.sampleData),i=n.length>0?n:r,{value:a,set:l}=O(t.trigger.triggerData,"config"),{column:c}=x.defaults({},a,fj),u=d=>{isNaN(+d)?l({column:d}):l({column:+d})};return s.jsx(o.Select,{clearable:!1,data:i,label:e("viz.table.click_cell.choose_a_column"),value:c.toString(),onChange:u})}function xj(t,e){const{t:n}=_.useTranslation();return t?x.isNumber(t.column)?n("viz.table.click_cell.click_cell_of_x",{x:e[t.column].label}):n("viz.table.click_cell.click_cell_of_x",{x:t.column}):n("viz.table.click_cell.click_cell_content")}function yj(t){const{columnsFromConfig:e}=Zo(t.instance),{value:n}=O(t.trigger.triggerData,"config");return s.jsx(o.Text,{children:xj(n,e)})}function Ho(t,e,n){return Math.min(Math.max(t,e),n)}class bj{constructor(e){this.steps=e;const n=[],r=new Set;for(const i of e)r.has(i.to)||(n.push(i),r.add(i.to));if(n.sort((i,a)=>i.from-a.from),n.length<2)throw new Error("MultiStepValueMapper requires at least 2 steps");this.steps=n}getLinearFunction(e,n){const r=(n.to-e.to)/(n.from-e.from),i=e.to-r*e.from;return a=>r*a+i}getStepFunctionForValue(e){let n=x.findLastIndex(this.steps,r=>r.from<=e);return n=Ho(n,0,this.steps.length-2),this.getLinearFunction(this.steps[n],this.steps[n+1])}mapValue(e){return Ho(this.getStepFunctionForValue(e)(e),0,100)}}class vj{constructor(e,n,r,i,a){this.getColIndex=e,this.cell=n,this.triggers=r,this.interactionManager=i,this.colorManager=a}getClickHandler(){const e=this.getRelatedTrigger();if(e.length!==0)return()=>{const n={row_data:this.cell.row.original,row_index:this.cell.row.index,col_index:this.getColIndex(this.cell)};for(const r of e)this.interactionManager.runInteraction(r.id,n)}}getRelatedTrigger(){return this.triggers.filter(n=>n.schemaRef===kr.id).filter(n=>{const r=this.getColIndex(this.cell),i=x.get(this.cell.column.columnDef.meta,"value_field"),a=x.get(n.config,"column");return a==r||a==i})}isClickable(){return this.getRelatedTrigger().length>0}get columnConf(){return this.cell.column.columnDef.meta}get bgColor(){const e=this.columnConf.cellBackgroundColor;if(!e||e==="none")return;if(x.isString(e))return e;const n=+this.cell.getValue();if(isFinite(n)){const r=this.colorManager.decodeInterpolation(e.interpolation),a=new bj(e.steps).mapValue(n);return r==null?void 0:r.getColor(a)}}}const _j=t=>{const e=Fe(t),n=Ge(e.triggerManager,kr.id),{colorManager:r}=m.useContext(at);return m.useCallback(i=>new vj(t.getColIndex,i,n,e,r),[n,e,t.getColIndex])};function el({queryData:t,width:e,height:n,conf:r,context:i,instance:a}){const{t:l}=_.useTranslation(),{use_raw_columns:c,columns:u,...d}=r,{classes:p,cx:h}=sj(),g=m.useMemo(()=>c?!Array.isArray(t)||t.length===0?[]:Object.keys(t[0]).map(Z=>({id:Z,label:Z,value_field:Z,value_type:it.string,align:"left",width:"",cellBackgroundColor:""})):u,[c,u,t]),y=_j({getColIndex:m.useCallback(Z=>g.indexOf(Z.column.columnDef.meta),[g]),vizManager:i.vizManager,instance:a}),v=m.useMemo(()=>{const Z=Ue.createColumnHelper();return g.map(Ze=>{const Ii=bd(Ze.value_field);return Z.accessor(Ii.columnKey,{cell:Zt=>s.jsx(hj,{tableCellContext:y(Zt.cell),value:Zt.getValue(),type:Ze.value_type,row_data:Zt.row.original,...Ze}),header:Ze.label,enableSorting:!0,meta:Ze,size:typeof Ze.width=="number"?Ze.width:void 0,minSize:typeof Ze.width=="number"?Ze.width:void 0})})},[g,y]),[C,T]=m.useState([]),D=Ue.useReactTable({data:t,state:{sorting:C},onSortingChange:T,columns:v,getCoreRowModel:Ue.getCoreRowModel(),getSortedRowModel:Ue.getSortedRowModel()}),{rows:I}=D.getRowModel(),P=m.useRef(null),W=I.length,J=W>0,Q=J?n-22:n,F=J?22:0;return s.jsxs("div",{ref:P,style:{height:n,width:e,padding:"0 5px"},"data-enable-scrollbar":!0,className:h(p.root,{"table-highlight-on-hover":r.highlightOnHover}),children:[W>0&&s.jsx(o.Box,{className:p.info_bar,sx:{height:22},children:s.jsx(o.Text,{align:"right",pr:6,size:14,color:"dimmed",fw:"normal",children:l("common.pagination.total_rows",{total:W})})}),s.jsxs(o.Table,{sx:{...rj,maxHeight:Q},...d,striped:r.striped,children:[s.jsx("thead",{className:p.thead,style:{top:F},children:D.getHeaderGroups().map(Z=>s.jsx("tr",{children:Z.headers.map(ve=>s.jsx("th",{style:{width:ve.getSize()},children:s.jsx(tj,{header:ve,cx:h})},ve.id))},Z.id))}),s.jsx(mj,{tableContainerRef:P,rows:I})]})]})}function tl(){const{t}=_.useTranslation();return s.jsx(o.Text,{color:"gray",align:"center",children:t("data.empty_data")})}function jj({data:t,width:e,height:n,conf:r,context:i,instance:a}){const{t:l}=_.useTranslation(),{panel:c}=pt(),u=c.firstQueryData??[];if(c.queryIDs.length===0)return s.jsx(o.Text,{color:"gray",align:"center",children:l("panel.settings.need_to_choose_queries")});const{query_id:d}=r;if(!d)return u.length===0?s.jsx(tl,{}):s.jsx(el,{queryData:u,width:e,height:n,conf:{...r,use_raw_columns:!0,columns:[]},context:i,instance:a});const p=t[d];return!Array.isArray(p)||p.length===0?s.jsx(tl,{}):s.jsx(el,{queryData:p,width:e,height:n,conf:r,context:i,instance:a})}function wj({context:t,instance:e}){const n=t.data,{height:r,width:i}=t.viewport,{value:a}=O(t.instanceData,"config");return a?s.jsx(jj,{data:n,width:i,height:r,conf:a,context:t,instance:e}):null}const Cj=S.observer(m.forwardRef(({label:t,required:e,description:n,value:r,onChange:i,clearable:a=!1,sx:l,...c},u)=>{const{panel:d}=$e(),p=m.useMemo(()=>d.queryOptions(r,a),[r,a]);return p.length===0?s.jsx(o.Box,{children:s.jsx(o.TextInput,{label:t,required:e,defaultValue:r,readOnly:!0,disabled:!0})}):s.jsx(o.Select,{ref:u,label:t,description:n,data:p,value:r,onChange:i,required:e,sx:l,maxDropdownHeight:500,...c})})),Sj=[{from:0,to:0},{from:100,to:100}];function nl(t){return t?x.isString(t)?t==="none"?"none":"static":"interpolation":"none"}function kj(t,e){var n;return nl(e)==="static"?e:(n=t.getStaticColors()[0])==null?void 0:n.value}function Tj(t,e){return x.isObject(e)?e:{steps:Sj,interpolation:t.encodeColor(t.getColorInterpolations()[0])}}const Dj=m.forwardRef((t,e)=>{const{t:n}=_.useTranslation(),{colorManager:r}=m.useContext(at),[i,a]=m.useState(nl(t.value)),[l,c]=m.useState(kj(r,t.value)),u=N.useLatest(l),[d,p]=m.useState(Tj(r,t.value)),h=N.useLatest(d),g=C=>{var T,D,I;a(C||"none"),C==="static"?(T=t.onChange)==null||T.call(t,u.current):C==="none"||!C?(D=t.onChange)==null||D.call(t,"none"):(I=t.onChange)==null||I.call(t,h.current)},y=C=>{var T;c(C),(T=t.onChange)==null||T.call(t,C)},v=C=>{var T;p(C),(T=t.onChange)==null||T.call(t,C)};return s.jsxs(o.Stack,{align:"stretch",children:[s.jsx(qh,{label:n("viz.table.column.cell_background"),value:i||"none",onChange:g}),i==="static"&&s.jsx(Te,{value:l,onChange:y}),i==="interpolation"&&s.jsx(Lh,{colorManager:r,value:d,onChange:v})]})}),zj=m.forwardRef(({value:t,onChange:e,sx:n},r)=>{const{t:i,i18n:a}=_.useTranslation(),l=m.useMemo(()=>Object.values(it).map(c=>({label:i(`viz.table.column.value_type.${c}`),value:c})),[a.language]);return s.jsx(o.Select,{ref:r,label:i("viz.table.column.value_type.label"),data:l,value:t,onChange:e,sx:n})}),Mj=m.forwardRef(({value:t,onChange:e},n)=>{const{t:r}=_.useTranslation(),[i,{setTrue:a,setFalse:l}]=N.useBoolean(),[c,u]=m.useState(t),d=()=>{l(),e(c)},p=()=>{l(),u(t)},h=()=>{u(Ko)};return m.useEffect(()=>{u(t)},[t]),s.jsxs(s.Fragment,{children:[s.jsx(o.Button,{color:"grape",variant:"filled",leftIcon:s.jsx(k.IconMathFunction,{size:16}),mt:24,onClick:a,sx:{flexGrow:0},children:r("viz.table.column.custom_cell_content")}),s.jsx(o.Modal,{size:800,title:r("viz.table.column.custom_cell_content"),opened:i,onClose:l,closeOnClickOutside:!1,withCloseButton:!1,zIndex:320,children:i&&s.jsxs(o.Stack,{children:[s.jsx(o.Group,{position:"left",children:s.jsx(zo,{})}),s.jsx(o.Box,{sx:{position:"relative"},children:s.jsx(Pe,{height:"500px",defaultLanguage:"javascript",value:c,onChange:g=>u(g??""),theme:"vs-dark",options:{minimap:{enabled:!1}}})}),s.jsxs(o.Group,{position:"apart",children:[s.jsx(o.Button,{onClick:h,color:"red",leftIcon:s.jsx(B.Recycle,{size:20}),children:r("common.actions.reset_to_default")}),s.jsxs(o.Group,{position:"right",children:[s.jsx(o.Button,{onClick:p,variant:"subtle",children:r("common.actions.cancel")}),s.jsx(o.Button,{color:"green",leftIcon:s.jsx(k.IconDeviceFloppy,{size:16}),onClick:d,children:r("common.actions.save")})]})]})]})})]})}),Tr=()=>s.jsx(o.Text,{color:"dimmed",size:12,children:"px"}),Ij=({control:t,index:e,watch:n,remove:r,column:i})=>{const{t:a}=_.useTranslation(),l=n(`columns.${e}.value_type`),c=n("query_id");return s.jsxs(o.Stack,{my:0,sx:{position:"relative"},children:[s.jsxs(o.Group,{grow:!0,children:[s.jsx(b.Controller,{name:`columns.${e}.label`,control:t,render:({field:u})=>s.jsx(o.TextInput,{label:a("chart.label.label"),required:!0,id:`col-label-${e}`,sx:{flex:1},...u})}),s.jsx(b.Controller,{name:`columns.${e}.value_field`,control:t,render:({field:u})=>s.jsx(q,{label:a("common.data_field"),required:!0,queryID:c,...u})})]}),s.jsxs(o.Group,{grow:!0,children:[s.jsx(b.Controller,{name:`columns.${e}.value_type`,control:t,render:({field:u})=>s.jsx(zj,{sx:{flex:1},...u})}),l===it.custom&&s.jsx(b.Controller,{name:`columns.${e}.func_content`,control:t,render:({field:u})=>s.jsx(Mj,{value:u.value??Ko,onChange:d=>u.onChange(d??"")})})]}),s.jsx(o.Divider,{mb:-10,variant:"dashed",label:a("style.label"),labelPosition:"center"}),s.jsxs(o.Group,{grow:!0,children:[s.jsx(o.NumberInput,{hideControls:!0,label:a("viz.table.column.min_width"),rightSection:s.jsx(Tr,{}),disabled:!0}),s.jsx(b.Controller,{name:`columns.${e}.width`,control:t,render:({field:u})=>s.jsx(o.NumberInput,{hideControls:!0,label:a("viz.table.column.width"),rightSection:s.jsx(Tr,{}),...u})}),s.jsx(o.NumberInput,{hideControls:!0,label:a("viz.table.column.max_width"),rightSection:s.jsx(Tr,{}),disabled:!0})]}),s.jsx(o.Group,{grow:!0,noWrap:!0,children:s.jsx(b.Controller,{name:`columns.${e}.align`,control:t,render:({field:u})=>s.jsx(Bn,{...u})})}),s.jsx(b.Controller,{name:`columns.${e}.cellBackgroundColor`,control:t,render:({field:u})=>s.jsx(Dj,{...u})}),s.jsx(o.Divider,{mb:4,mt:12,variant:"dashed"}),s.jsx(o.Button,{leftIcon:s.jsx(B.Trash,{size:16}),color:"red",variant:"light",onClick:()=>r(e),children:a("viz.table.column.delete")})]})},Ej=({control:t,watch:e})=>{const{t:n}=_.useTranslation(),{fields:r,append:i,remove:a,update:l}=b.useFieldArray({control:t,name:"columns"}),c=()=>{const d=ie.randomId();i({id:d,label:d,align:"center",value_field:"",value_type:it.string,width:""})};e("columns");const u=e("use_raw_columns");return s.jsxs(s.Fragment,{children:[s.jsx(b.Controller,{name:"use_raw_columns",control:t,render:({field:d})=>s.jsx(o.Switch,{mt:20,mb:20,label:n("viz.table.column.use_original_data_columns"),checked:d.value,onChange:p=>d.onChange(p.currentTarget.checked)})}),!u&&s.jsx(o.Stack,{children:s.jsxs(o.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px",paddingTop:"6px"}},children:[s.jsxs(o.Tabs.List,{children:[r.map((d,p)=>s.jsx(o.Tabs.Tab,{value:p.toString(),children:p+1},d.id)),s.jsx(o.Tabs.Tab,{onClick:c,value:"add",children:s.jsx(B.Plus,{size:18,color:"#228be6"})})]}),r.map((d,p)=>s.jsx(o.Tabs.Panel,{value:p.toString(),children:s.jsx(Ij,{control:t,watch:e,index:p,column:d,remove:a})},d.id))]})})]})};function Aj({control:t,watch:e}){const{t:n}=_.useTranslation();return e(["horizontalSpacing","verticalSpacing","fontSize","striped","highlightOnHover"]),s.jsxs(o.Stack,{spacing:"xs",children:[s.jsxs(o.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:[s.jsx(b.Controller,{name:"horizontalSpacing",control:t,render:({field:r})=>s.jsx(Us,{disabled:!0,label:n("viz.table.style.horizontal_spacing"),sx:{flex:1},...r})}),s.jsx(b.Controller,{name:"verticalSpacing",control:t,render:({field:r})=>s.jsx(Us,{disabled:!0,label:n("viz.table.style.vertical_spacing"),sx:{flex:1},...r})})]}),s.jsx(o.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:s.jsx(b.Controller,{name:"fontSize",control:t,render:({field:r})=>s.jsx(o.TextInput,{label:n("style.font_size.label"),placeholder:n("style.font_size.placeholder"),required:!0,sx:{flex:1},...r})})}),s.jsxs(o.Group,{position:"apart",grow:!0,children:[s.jsx(b.Controller,{name:"striped",control:t,render:({field:r})=>s.jsx(o.Switch,{label:n("viz.table.style.striped"),checked:r.value,onChange:i=>r.onChange(i.currentTarget.checked)})}),s.jsx(b.Controller,{name:"highlightOnHover",control:t,render:({field:r})=>s.jsx(o.Switch,{label:n("viz.table.style.highlight_on_hover"),checked:r.value,onChange:i=>r.onChange(i.currentTarget.checked)})})]})]})}function Pj({columns:t,...e}){return{...e,columns:t.map(({id:n,...r})=>({id:n??ie.randomId(),...r}))}}function $j({context:t}){const{t:e}=_.useTranslation(),{value:n,set:r}=O(t.instanceData,"config"),i=m.useMemo(()=>x.defaultsDeep({},n,Jo),[n]),a=m.useMemo(()=>Pj(i),[i]);m.useEffect(()=>{!x.isEqual(i,a)&&(console.log("config malformed, resetting to defaults",i,a),r(a))},[i,a]);const{control:l,handleSubmit:c,watch:u,getValues:d,reset:p}=b.useForm({defaultValues:a});m.useEffect(()=>{p(a)},[a]);const h=d(),g=m.useMemo(()=>!x.isEqual(h,i),[h,i]);return u(["query_id"]),s.jsxs("form",{onSubmit:c(r),children:[s.jsx(fe,{canSubmit:g}),s.jsxs(o.Tabs,{defaultValue:"Columns",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[s.jsxs(o.Tabs.List,{children:[s.jsx(o.Tabs.Tab,{value:"Columns",children:e("viz.table.column.labels")}),s.jsx(o.Tabs.Tab,{value:"Style",children:e("style.label")})]}),s.jsxs(o.Tabs.Panel,{value:"Columns",children:[s.jsx(b.Controller,{name:"query_id",control:l,render:({field:y})=>s.jsx(Cj,{label:e("viz.table.column.query_id"),description:e("viz.table.column.query_id_hint"),required:!0,...y})}),s.jsx(o.Divider,{mt:20,mb:10,variant:"dashed"}),s.jsx(Ej,{control:l,watch:u})]}),s.jsx(o.Tabs.Panel,{value:"Style",children:s.jsx(Aj,{control:l,watch:u})})]})]})}const Bj=[{lang:"en",resources:{table:{viz_name:"Table",column:{labels:"Columns",delete:"Delete this column",query_id:"Query",query_id_hint:"Load table data from this query",use_original_data_columns:"Use original data columns",width:"Width",min_width:"Min Width",max_width:"Max Width",cell_background:"Cell background",custom_cell_content:"Custom cell content",value_type:{label:"Value Type",string:"String",number:"Number",percentage:"Percentage",eloc:"ELOC",custom:"Custom"}},style:{horizontal_spacing:"Horizontal Spacing",vertical_spacing:"Vertical Spacing",striped:"Striped",highlight_on_hover:"Hightlight on hover"},click_cell:{label:"Click cell content",click_cell_content:"Click cell content (click to config)",click_cell_of_x:"Click cell of {{ x }}",choose_a_column:"Choose a column"}}}},{lang:"zh",resources:{table:{viz_name:"表格",column:{labels:"列设置",delete:"删除这个列",query_id:"表格数据来源",query_id_hint:"通过所选的查询获取表格数据",use_original_data_columns:"使用数据本身的列",width:"宽度",min_width:"最小宽度",max_width:"最大宽度",cell_background:"单元格背景",custom_cell_content:"自定义单元格内容",value_type:{label:"数据类型",string:"文本",number:"数字",percentage:"百分比",eloc:"ELOC",custom:"自定义"}},style:{horizontal_spacing:"水平间距",vertical_spacing:"垂直间距",striped:"隔行变色",highlight_on_hover:"鼠标悬停时高亮整行"},click_cell:{label:"点击单元格",click_cell_content:"点击单元格内容",click_cell_of_x:"点击 {{ x }} 列单元格",choose_a_column:"选择列"}}}}];function Lj(t){const{columns:e,...n}=t;return{...t,columns:e.map(r=>({...r,align:r.align??"left"}))}}function qj(t,{panelModel:e}){try{const n=e.queryIDs[0];if(!n)throw new Error("cannot migrate when queryID is empty");const r=c=>c&&`${n}.${c}`,{id_field:i,columns:a,...l}=t;return{...l,id_field:r(i),columns:a.map(c=>({...c,value_field:r(c.value_field)}))}}catch(n){throw console.error("[Migration failed]",n),n}}function Oj(t){const{columns:e,...n}=t;return{...n,columns:e.map(r=>({...r,align:r.align??"left",cellBackgroundColor:r.cellBackgroundColor??"",width:r.width??""}))}}function Vj(t){const{id_field:e,...n}=t,{queryID:r}=E(e);return{...n,query_id:r??""}}class Nj extends oe{constructor(){super(...arguments);$(this,"VERSION",6)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,n=>{const{columns:r,...i}=n.config;return{...n,version:2,config:{...i,columns:r.map(({id:a,...l})=>({id:a??ie.randomId(),...l}))}}}),this.version(3,n=>({...n,version:3,config:Lj(n.config)})),this.version(4,(n,r)=>({...n,version:4,config:qj(n.config,r)})),this.version(5,n=>({...n,version:5,config:Oj(n.config)})),this.version(6,n=>({...n,version:6,config:Vj(n.config)}))}}const Dr={createConfig(){return{version:6,config:x.cloneDeep(Jo)}},displayName:"viz.table.viz_name",displayGroup:"chart.groups.others",migrator:new Nj,name:"table",viewRender:wj,configRender:$j,triggers:[kr],translation:Bj},sl=["function text({ data, variables, filters, context}) {"," // your code goes here",' return "text"',"}"].join(`
|
|
303
303
|
`),zr={func_content:sl,horizontal_align:"left",font_size:"14px",font_weight:"normal"},Gj=S.observer(({context:t})=>{const e=de(),{value:n=zr}=O(t.instanceData,"config"),{variables:r}=t,i=t.data,{func_content:a,horizontal_align:l,font_size:c,font_weight:u}=n,d=m.useMemo(()=>r.reduce((h,g)=>{const y=ut(g,i);return h[g.name]=Oe(g,y),h},{}),[r,i]),p=m.useMemo(()=>new Function(`return ${a}`)()({data:i,variables:d,filters:e.payloadForSQL.filters,context:e.payloadForSQL.context}),[a,i,d,e.payloadForSQL]);return s.jsx(o.Text,{align:l,weight:u,sx:{fontSize:c},children:p})}),rs=[{label:"initial",value:0},{label:"500",value:25},{label:"700",value:50},{label:"semibold",value:75},{label:"bold",value:100}];function Fj({label:t,value:e,onChange:n},r){var l;const[i,a]=m.useState(((l=rs.find(c=>c.label===e))==null?void 0:l.value)??rs[0].value);return m.useEffect(()=>{const c=rs.find(u=>u.value===i);c&&n(c.label)},[i]),s.jsxs(o.Stack,{spacing:0,mt:"sm",mb:"lg",children:[s.jsx(o.Text,{size:"sm",children:t}),s.jsx(o.Box,{px:"1.5em",children:s.jsx(o.Slider,{label:null,marks:rs,value:i,onChange:a,step:25,ref:r})})]})}const rl=m.forwardRef(Fj),Wj=({value:t,onChange:e})=>{const n=r=>{r&&e(r)};return s.jsx(o.Box,{sx:{position:"relative"},children:s.jsx(Pe,{height:"500px",defaultLanguage:"javascript",value:t,onChange:n,theme:"vs-dark",options:{minimap:{enabled:!1}}})})},Qj=m.forwardRef(({value:t,onChange:e},n)=>{const{t:r}=_.useTranslation(),[i,{setTrue:a,setFalse:l}]=N.useBoolean(),[c,u]=m.useState(t),d=()=>{l(),e(c)},p=()=>{l(),u(t)},h=()=>{u(sl)};return m.useEffect(()=>{u(t)},[t]),s.jsxs(s.Fragment,{children:[s.jsx(o.Button,{color:"grape",variant:"filled",leftIcon:s.jsx(k.IconMathFunction,{size:16}),mt:24,onClick:a,sx:{flexGrow:0},children:r("viz.text.content.edit")}),s.jsx(o.Modal,{size:800,title:r("viz.text.content.label"),opened:i,onClose:l,closeOnClickOutside:!1,withCloseButton:!1,zIndex:320,children:i&&s.jsxs(o.Stack,{children:[s.jsx(Wj,{value:c,onChange:u}),s.jsxs(o.Group,{position:"apart",children:[s.jsx(o.Button,{onClick:h,color:"red",leftIcon:s.jsx(B.Recycle,{size:20}),children:r("common.actions.reset_to_default")}),s.jsxs(o.Group,{position:"right",children:[s.jsx(o.Button,{onClick:p,variant:"subtle",children:r("common.actions.cancel")}),s.jsx(o.Button,{color:"green",leftIcon:s.jsx(k.IconDeviceFloppy,{size:16}),onClick:d,children:r("common.actions.save_changes")})]})]})]})})]})});function Rj({context:t}){const{t:e}=_.useTranslation(),{value:n,set:r}=O(t.instanceData,"config"),i=m.useMemo(()=>x.defaultsDeep({},n,zr),[n]),a=m.useMemo(()=>{const{func_content:y,horizontal_align:v,font_size:C,font_weight:T}=i;return{func_content:y,horizontal_align:v,font_size:C,font_weight:T}},[i]);m.useEffect(()=>{!x.isEqual(i,a)&&(console.log("config malformed, resetting to defaults",i,a),r(a))},[i,a]);const{control:l,handleSubmit:c,watch:u,getValues:d,reset:p}=b.useForm({defaultValues:a});m.useEffect(()=>{p(a)},[a]),u(["func_content","horizontal_align","font_size","font_weight"]);const h=d(),g=m.useMemo(()=>!x.isEqual(h,i),[h,i]);return s.jsx(o.Stack,{spacing:"xs",children:s.jsxs("form",{onSubmit:c(r),children:[s.jsx(fe,{canSubmit:g}),s.jsxs(o.Stack,{spacing:10,children:[s.jsx(b.Controller,{name:"func_content",control:l,render:({field:y})=>s.jsx(Qj,{...y})}),s.jsx(o.Divider,{mt:10,mb:-10,variant:"dashed",label:e("chart.style.label"),labelPosition:"center"}),s.jsx(b.Controller,{name:"horizontal_align",control:l,render:({field:y})=>s.jsx(Bn,{...y})}),s.jsx(b.Controller,{name:"font_size",control:l,render:({field:y})=>s.jsx(o.TextInput,{label:e("style.font_size.label"),placeholder:e("style.font_size.placeholder"),sx:{flex:1},...y})}),s.jsx(o.Group,{position:"apart",grow:!0,sx:{"> *":{flexGrow:1,maxWidth:"100%"}},children:s.jsx(b.Controller,{name:"font_weight",control:l,render:({field:y})=>s.jsx(rl,{label:e("style.font_weight.label"),...y})})})]})]})})}const Uj=[{lang:"en",resources:{text:{viz_name:"Text",content:{label:"Text content",edit:"Edit Content"}}}},{lang:"zh",resources:{text:{viz_name:"文本",content:{label:"文本内容",edit:"编辑文本内容"}}}}];class Yj extends oe{constructor(){super(...arguments);$(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Kj={displayName:"viz.text.viz_name",displayGroup:"chart.groups.others",migrator:new Yj,name:"text",viewRender:Gj,configRender:Rj,createConfig(){return{version:1,config:x.cloneDeep(zr)}},translation:Uj},Jj=()=>s.jsxs("svg",{width:"64",height:"64",viewBox:"0 0 64 64",fill:"none",children:[s.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M22.49 27.79H14.47C13.55 27.79 12.81 28.53 12.81 29.45C12.81 30.37 13.55 31.11 14.47 31.11H22.49C23.41 31.11 24.15 30.37 24.15 29.45C24.15 28.54 23.41 27.79 22.49 27.79ZM34.32 31.28C35.22 31.32 35.7 31.82 35.74 32.76C35.78 33.54 35.37 34.3 34.51 35.04C33.52 35.9 33.03 36.95 33.03 38.19V38.81H34.82V38.25C34.78 37.59 35.07 37.02 35.68 36.52C37.12 35.41 37.82 34.15 37.78 32.75C37.66 30.53 36.5 29.35 34.32 29.23C32.3 29.23 31.05 30.46 30.55 32.93L32.53 33.55C32.82 32.04 33.42 31.28 34.32 31.28ZM35 39.93H32.84V42.21H35V39.93ZM14.83 36.42H18.54C19.46 36.42 20.2 37.17 20.2 38.08C20.2 39 19.46 39.74 18.54 39.74H10.52C9.6 39.74 8.86 39 8.86 38.08C8.86 37.61 9.06 37.19 9.37 36.89H5.66C4.74 36.89 4 36.15 4 35.23C4 34.31 4.74 33.57 5.66 33.57H13.68C14.6 33.57 15.34 34.31 15.34 35.23C15.34 35.7 15.14 36.12 14.83 36.42ZM50.94 36.85H58.74C59.66 36.85 60.4 37.59 60.41 38.51C60.41 39.43 59.67 40.17 58.75 40.17H54.26C54.56 40.47 54.74 40.88 54.74 41.34C54.74 42.26 54 43 53.08 43H50.94V36.85Z",fill:"#B8C0CC"}),s.jsx("path",{d:"M18.39 32.28H16.51V35.02H18.39V32.28Z",fill:"#9399A5"}),s.jsx("path",{d:"M46.87 15H20.69C18.38 15 16.5 16.88 16.5 19.19V26.22H18.38V23.45H49.18V47.68H18.38V41.07H16.5V49.55H51.05V19.19C51.06 16.88 49.18 15 46.87 15ZM39.46 20.73C38.81 20.73 38.29 20.2 38.29 19.56C38.29 18.92 38.82 18.39 39.46 18.39C40.11 18.39 40.63 18.92 40.63 19.56C40.63 20.2 40.11 20.73 39.46 20.73ZM43.22 20.73C42.57 20.73 42.05 20.2 42.05 19.56C42.05 18.92 42.58 18.39 43.22 18.39C43.87 18.39 44.39 18.92 44.39 19.56C44.39 20.2 43.87 20.73 43.22 20.73ZM46.97 20.73C46.32 20.73 45.8 20.2 45.8 19.56C45.8 18.92 46.33 18.39 46.97 18.39C47.62 18.39 48.14 18.92 48.14 19.56C48.14 20.2 47.62 20.73 46.97 20.73Z",fill:"#9399A5"})]});function il(t,e){const n=x.get(t,e,"");if(n)throw new Error(n)}async function Xj(t,e,n,r={}){const i={"X-Requested-With":"XMLHttpRequest","Content-Type":r.string?"application/x-www-form-urlencoded":"application/json",...r.headers},a={baseURL:t,method:"POST",url:e,params:r.params,headers:i};return a.data=r.string?JSON.stringify(n):n,ot(a).then(l=>l.data).catch(l=>Promise.reject(l))}const Zj=({conf:t,panelData:e})=>async()=>{const{expertSystemURL:n,path:r,goal:i,question:a}=t;if(!r||!i||!a)return;const l=vd(e);if(!l)return;const c={dashboard:i,panel:a,data:l};try{const u=n.startsWith("http")?n:window.location.origin;return await Xj(u,`/expert/v3/devtable/${r}`,c,{})}catch(u){throw il(u,"response.data.detail"),il(u,"response.data.error"),console.error(u),u}},Mr={expertSystemURL:"",path:"",goal:"",question:""},Ir={height:"100%",overflowY:"auto",...Hs},al=({message:t})=>s.jsx(o.Box,{sx:Ir,children:s.jsx("div",{dangerouslySetInnerHTML:{__html:t},style:{fontSize:"14px",lineHeight:"32px",color:"#3D3E45"}})}),Hj=({error:t,width:e,height:n})=>{const r=t.message;if(r.startsWith("<"))return s.jsx(al,{message:r});const a=n-25-20-30;return s.jsx(o.Center,{sx:{width:"100%",height:a},children:s.jsxs(o.Stack,{align:"center",spacing:20,children:[s.jsx(Jj,{}),s.jsx(al,{message:r})]})})};function ew({context:t}){const{value:e}=O(t.instanceData,"config"),n=m.useMemo(()=>x.defaultsDeep({},e,Mr),[e]),{width:r,height:i}=t.viewport,a=t.data,{data:l,error:c,loading:u}=N.useRequest(Zj({conf:n,panelData:a}),{refreshDeps:[a,n]});return!r||!i||!n?null:u?s.jsx(o.Box,{sx:{position:"relative",height:i},children:s.jsx(o.LoadingOverlay,{visible:!0})}):c?s.jsx(o.Box,{sx:Ir,"data-enable-scrollbar":!0,children:s.jsx(Hj,{error:c,width:r,height:i})}):!l||!Array.isArray(l.replies)||l.replies.length===0?null:s.jsx(o.Box,{sx:Ir,"data-enable-scrollbar":!0,children:l.replies.map((d,p)=>s.jsx("div",{dangerouslySetInnerHTML:{__html:d.interpretation.html}},p))})}function tw({context:t}){const{value:e,set:n}=O(t.instanceData,"config"),r=m.useMemo(()=>x.defaultsDeep({},e,Mr),[e]),{control:i,handleSubmit:a,watch:l,getValues:c,reset:u}=b.useForm({defaultValues:r});m.useEffect(()=>{u(r)},[r]),l(["expertSystemURL","goal","path","question"]);const d=c(),p=m.useMemo(()=>!x.isEqual(d,r),[d,r]);return s.jsx("form",{onSubmit:a(n),children:s.jsxs(o.Stack,{children:[s.jsxs(o.Group,{grow:!0,children:[s.jsx(b.Controller,{name:"expertSystemURL",control:i,render:({field:h})=>s.jsx(o.TextInput,{label:"Expert System URL",...h})}),s.jsx(b.Controller,{name:"path",control:i,render:({field:h})=>s.jsx(o.TextInput,{label:"Path",required:!0,...h})})]}),s.jsxs(o.Group,{grow:!0,children:[s.jsx(b.Controller,{name:"goal",control:i,render:({field:h})=>s.jsx(o.TextInput,{label:"Goal",required:!0,...h})}),s.jsx(b.Controller,{name:"question",control:i,render:({field:h})=>s.jsx(o.TextInput,{label:"Question",required:!0,...h})})]}),s.jsx(o.Divider,{variant:"dashed",mt:16,mb:8}),s.jsx(o.Button,{type:"submit",variant:"filled",color:"blue",leftIcon:s.jsx(B.DeviceFloppy,{size:20}),disabled:!p,sx:{alignSelf:"flex-end"},children:"Submit Changes"})]})})}const nw=[{lang:"en",resources:{merico_gqm:{viz_name:"Merico GQM"}}},{lang:"zh",resources:{merico_gqm:{viz_name:"思码逸GQM组件"}}}];class sw extends oe{constructor(){super(...arguments);$(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const rw={displayName:"viz.merico_gqm.viz_name",displayGroup:"chart.groups.merico_suite",migrator:new sw,name:"mericoGQM",viewRender:ew,configRender:tw,createConfig(){return{version:1,config:x.cloneDeep(Mr)}},translation:nw};function iw(t,e,n){if(!t)return n[0];try{return[e,M(e).add(1,"year").subtract(1,"day").valueOf()]}catch(r){return console.error(r),n[0]}}function aw(t,e,n){const r=iw(t,e,n);return{top:50,left:25,right:5,cellSize:["auto",13],range:r,itemStyle:{borderColor:"#eee"},splitLine:{show:!0},dayLabel:{firstDay:1},monthLabel:{position:"end"},yearLabel:{show:!0}}}function ow(t){return{heat_block:function(r){if(!t.heat_block.value_formatter)return r;try{return R(r,t.heat_block.value_formatter)}catch(i){return console.error(i),r}}}}function lw(t,e){return{show:!t,selectedMode:"single",top:5,right:5,data:e.map(n=>({name:n,icon:"circle"}))}}function cw(t,e,n,r){const{calendar:i,heat_block:a}=t,l=E(i.data_key),c=E(a.data_key);return e?{type:"heatmap",name:"heatmap",coordinateSystem:"calendar",calendarIndex:0,data:r[l.queryID].map(u=>[x.get(u,l.columnKey),x.get(u,c.columnKey)])}:Object.entries(n).map(([u,d])=>({type:"heatmap",name:u,coordinateSystem:"calendar",calendarIndex:0,data:d.map(p=>[x.get(p,l.columnKey),x.get(p,c.columnKey)])}))}const uw=t=>R(t,{output:"number",trimMantissa:!0,mantissa:2,absolute:!1});function dw({conf:t,valueFormatters:e,dataDict:n,params:r}){const{value:i}=r,[a,l]=i,u=[{label:t.heat_block.name,value:e.heat_block(l),style:{label:"",value:""}}],d=n[a];return d&&t.tooltip.metrics.forEach(p=>{const h=E(p.data_key);u.push({label:p.name,value:uw(x.get(d,h.columnKey,"")),style:{label:"",value:""}})}),u}function pw(t,e,n){const r=E(t.calendar.data_key),i=x.keyBy(e[r.queryID],r.columnKey);return ne.getTooltip({formatter:function(a){const c=dw({conf:t,valueFormatters:n,dataDict:i,params:a}).map(p=>`
|
|
304
304
|
<tr>
|