@devtable/dashboard 9.18.2 → 9.18.3
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 +3 -3
- package/dist/dashboard.umd.js +2 -2
- package/package.json +1 -1
package/dist/dashboard.es.js
CHANGED
|
@@ -3008,7 +3008,7 @@ class Ui {
|
|
|
3008
3008
|
}), this.instanceRegistry.clear(), this.factoryRegistry.clear();
|
|
3009
3009
|
}
|
|
3010
3010
|
}
|
|
3011
|
-
const Gs = "@devtable/dashboard", Xi = "9.18.
|
|
3011
|
+
const Gs = "@devtable/dashboard", Xi = "9.18.3", Hs = "Apache-2.0", Qs = {
|
|
3012
3012
|
access: "public",
|
|
3013
3013
|
registry: "https://registry.npmjs.org/"
|
|
3014
3014
|
}, Us = [
|
|
@@ -5901,8 +5901,8 @@ function xm({
|
|
|
5901
5901
|
valueTypedXAxis: o
|
|
5902
5902
|
});
|
|
5903
5903
|
const s = ra(t, i, a), l = k.groupBy(s, "0");
|
|
5904
|
-
return
|
|
5905
|
-
const m = Wn(p, "1", r);
|
|
5904
|
+
return e.map(([u]) => {
|
|
5905
|
+
const p = l[u], m = Wn(p, "1", r);
|
|
5906
5906
|
return [u, m];
|
|
5907
5907
|
});
|
|
5908
5908
|
}
|
package/dist/dashboard.umd.js
CHANGED
|
@@ -116,7 +116,7 @@ Check the top-level render call using <`+E+">.")}return M}}function oo(_,M){{if(
|
|
|
116
116
|
SELECT count(*) AS total
|
|
117
117
|
FROM ${r}.${t}
|
|
118
118
|
`}})).actions(e=>({setPage(t){e.page=t},resetPage(){e.page=1},setLimit(t){e.limit=t}})).actions(e=>({afterCreate(){b.addDisposer(e,ie.reaction(()=>e.keywordString,e.resetPage,{fireImmediately:!1,delay:0})),b.addDisposer(e,ie.reaction(()=>e.limit,e.resetPage,{fireImmediately:!1,delay:0}))}})),al=b.types.model("DataSourceModel",{id:b.types.string,type:b.types.enumeration("DataSourceType",[pe.HTTP,pe.MySQL,pe.Postgresql]),key:b.types.string,config:b.types.frozen(),tables:b.types.optional(rl,{}),columns:b.types.optional(tl,{}),tableData:b.types.optional(il,{}),indexes:b.types.optional(nl,{}),table_schema:b.types.optional(b.types.string,""),table_name:b.types.optional(b.types.string,"")}).volatile(()=>({controllers:{tables:new AbortController,columns:new AbortController,indexes:new AbortController,tableData:new AbortController}})).actions(e=>({setKeywords(t,r){e.table_schema=t,e.table_name=r}})).actions(e=>({initKeywords(){if(e.tables.empty)return;const t=Object.keys(e.tables.data)[0],r=e.tables.data[t][0].table_name;e.setKeywords(t,r)}})).actions(e=>{const t=b.flow(function*(){var r;(r=e.controllers.tables)==null||r.abort(),e.controllers.tables=new AbortController,e.tables.state="loading";try{const i=yield*b.toGenerator($e.query(e.controllers.tables.signal)({type:e.type,key:e.key,query:e.tables.sql},{}));e.tables.data=v.groupBy(i,"table_schema"),e.tables.state="idle",e.tables.error=null,e.initKeywords()}catch(i){if(!Xe.isCancel(i)){e.tables.data={};const s=v.get(i,"message","unkown error");e.tables.error=v.get(i,"response.data.detail.message",s),e.tables.state="error"}}});return{loadTables:t,loadTablesIfEmpty(){e.tables.empty&&t()},loadColumns:b.flow(function*(){var r;(r=e.controllers.columns)==null||r.abort(),e.controllers.columns=new AbortController,e.columns.state="loading";try{e.columns.data=yield*b.toGenerator($e.query(e.controllers.columns.signal)({type:e.type,key:e.key,query:e.columns.sql},{})),e.columns.state="idle",e.columns.error=null}catch(i){if(Xe.isCancel(i))e.columns.state="idle",e.columns.error=null;else{e.columns.data=[];const s=v.get(i,"message","unkown error");e.columns.error=v.get(i,"response.data.detail.message",s),e.columns.state="error"}}}),loadIndexes:b.flow(function*(){var r;(r=e.controllers.indexes)==null||r.abort(),e.controllers.indexes=new AbortController,e.indexes.state="loading";try{e.indexes.data=yield*b.toGenerator($e.query(e.controllers.indexes.signal)({type:e.type,key:e.key,query:e.indexes.sql},{})),e.indexes.state="idle",e.indexes.error=null}catch(i){if(Xe.isCancel(i))e.indexes.state="idle",e.indexes.error=null;else{e.indexes.data=[];const s=v.get(i,"message","unkown error");e.indexes.error=v.get(i,"response.data.detail.message",s),e.indexes.state="error"}}}),loadTableData:b.flow(function*(){var i;(i=e.controllers.tableData)==null||i.abort(),e.controllers.tableData=new AbortController;const r=e.tableData;r.state="loading";try{r.data=yield*b.toGenerator($e.query(e.controllers.tableData.signal)({type:e.type,key:e.key,query:r.sql},{}));const[{total:s}]=yield*b.toGenerator($e.query(e.controllers.tableData.signal)({type:e.type,key:e.key,query:r.countSql},{}));r.total=Number(s),r.state="idle",r.error=null}catch(s){if(Xe.isCancel(s))r.state="idle",r.error=null;else{r.data=[];const o=v.get(s,"message","unkown error");r.error=v.get(s,"response.data.detail.message",o),r.state="error"}}})}}).actions(e=>({afterCreate(){b.addDisposer(e,ie.reaction(()=>e.columns.sql,e.loadColumns,{fireImmediately:!1,delay:500}))}})).actions(e=>({afterCreate(){b.addDisposer(e,ie.reaction(()=>e.indexes.sql,e.loadIndexes,{fireImmediately:!1,delay:500})),b.addDisposer(e,ie.reaction(()=>e.tableData.sql,e.loadTableData,{fireImmediately:!1,delay:0}))}})),sl=b.types.model("DataSourcesModel",{list:b.types.optional(b.types.array(al),[])}).views(e=>({find({type:t,key:r}){return e.list.find(i=>i.key===r&&i.type===t)},get options(){return e.list.map(t=>({value:t.key,label:t.key}))}})).actions(e=>({replace(t){e.list.length=0,e.list.push(...t)}}));function qt(e){return{label:e,value:e,_type:"ACTION",_action_type:e,Icon:null,children:null}}function ol(e){switch(e._type){case"GROUP":case"ACTION":return null;case"query_variables":return["_QUERY_VARS_"];case"mock_context":return["_MOCK_CONTEXT_"];case"filter":return["_FILTERS_",e.value];case"sql_snippet":return["_SQL_SNIPPETS_",e.value];case"query":return["_QUERIES_",e.value];case"view":return["_VIEWS_",e.value];case"panel":return e.parentID?["_VIEWS_",e.parentID,"_PANELS_",e.value]:(console.error("[getPathFromOption] parentID is required"),null)}}const ll=b.types.model("EditorModel",{path:b.types.optional(b.types.frozen(),[]),settings_open:b.types.optional(b.types.boolean,!1)}).views(e=>({get navOptions(){const{content:t}=b.getRoot(e),{filters:r,views:i,sqlSnippets:s,queries:o}=t;return[{label:"Query Variables",value:"_QUERY_VARS_",_type:"query_variables",Icon:L.IconVariable},{label:"Mock Context",value:"_MOCK_CONTEXT_",Icon:L.IconCodeDots,_type:"mock_context"},{label:"Filters",value:"_FILTERS_",Icon:L.IconFilter,children:[...r.options,qt("_Add_A_Filter_")],_type:"GROUP"},{label:"SQL Snippets",value:"_SQL_SNIPPETS_",Icon:L.IconCopy,children:[...s.options,qt("_Add_A_SQL_SNIPPET_")],_type:"GROUP"},{label:"Queries",value:"_QUERIES_",Icon:L.IconDatabase,children:[...o.options,qt("_Add_A_QUERY_")],_type:"GROUP"},{label:"Views",value:"_VIEWS_",Icon:L.IconBoxMultiple,children:[...i.editorOptions,qt("_Add_A_VIEW_")],_type:"GROUP"}]},isOptionActive(t,r){return t.length===0?!1:t[t.length-1]===r.value},isOptionOpened(t){const{path:r}=e;return r.length===0||!t.children||t.children.length===0?!1:r.includes(t.value)}})).actions(e=>({setPath(t){e.path=t},setSettingsOpen(t){e.settings_open=t}})).actions(e=>({open(t){e.setPath(t),e.setSettingsOpen(!0)},close(){e.setSettingsOpen(!1)},navigate(t){const r=ol(t);r&&e.setPath(r)}})),ul=b.types.model("MockContextModel",{current:b.types.optional(b.types.frozen(),{})}).views(e=>({get keys(){return Object.keys(e.current)},get entries(){return Object.entries(e.current)}})).actions(e=>({replace(t){e.current=t},get(t){return e.current[t]},set(t,r){e.current[t]=r}})),dl=b.types.model("VariableModel",{name:b.types.string,size:b.types.string,weight:b.types.string,color:b.types.union(b.types.model({type:b.types.literal("static"),staticColor:b.types.string}),b.types.model({type:b.types.literal("continuous"),valueRange:b.types.array(b.types.number),colorRange:b.types.array(b.types.string)}),b.types.model({type:b.types.literal("piecewise")})),formatter:b.types.model({output:b.types.enumeration("Output",["number","percent"]),average:b.types.optional(b.types.boolean,!1),mantissa:b.types.number,trimMantissa:b.types.optional(b.types.boolean,!1)}),data_field:b.types.string,aggregation:b.types.union(b.types.model({type:b.types.enumeration(["none","sum","mean","median","min","max","CV","std"]),config:b.types.frozen()}),b.types.model({type:b.types.literal("quantile"),config:b.types.model({p:b.types.number})}))}).views(e=>({get json(){const{name:t,size:r,weight:i,color:s,formatter:o,data_field:l,aggregation:u}=e;return v.cloneDeep({name:t,size:r,color:s,weight:i,formatter:o,data_field:l,aggregation:u})}}));class cl{constructor(t){O(this,"origin");O(this,"copy");this.origin=t,this.copy=b.clone(t),ie.makeAutoObservable(this,{},{autoBind:!0,deep:!1})}get changed(){return!v.isEqual(b.getSnapshot(this.origin),b.getSnapshot(this.copy))}commit(){b.applySnapshot(this.origin,b.getSnapshot(this.copy))}update(t){b.applySnapshot(this.copy,t)}}const pl=e=>new cl(e);class hl{constructor(){O(this,"migrations",[])}version(t,r){return this.migrations.push({version:t,handler:r}),this}run(t,r,i){var l;if(t.from===t.to)return r;if(t.from>t.to)throw new Error(`Can not downgrade from version '${t.from}' to (${t.to})`);const s=this.migrations.filter(u=>u.version>t.from&&u.version<=t.to),o=v.orderBy(s,"version","asc");if(((l=v.last(o))==null?void 0:l.version)!==t.to)throw new Error(`Migration to version ${t.to} not found`);return o.reduce((u,d)=>d.handler(u,i),r)}}class fe extends hl{constructor(){super(),this.configVersions()}version(t,r){return super.version(t,(i,s)=>({version:t,...r(i,s)}))}async migrate({configData:t,panelModel:r}){const i=await t.getItem(null),s=v.get(i,"version",0),o=this.run({from:s,to:this.VERSION},i,{panelModel:r});await t.setItem(null,o)}async needMigration({configData:t}){const r=await t.getItem(null);return v.get(r,"version",0)<this.VERSION}}var Oe=(e=>(e.string="string",e.number="number",e.eloc="eloc",e.percentage="percentage",e.custom="custom",e))(Oe||{});const na=["function text({ value }) {"," // your code goes here"," return value","}"].join(`
|
|
119
|
-
`),_n={columns:[],fontSize:"1rem",highlightOnHover:!1,horizontalSpacing:"1em",id_field:"",striped:!1,use_raw_columns:!0,verticalSpacing:"1em"};class ut{constructor(t,r){this.root=t,this.path=r}async deleteItem(t){t===null&&await this.root.deleteItem(this.path);const r=await this.root.getItem(this.path)||{};await this.root.setItem(this.path,v.omit(r,t))}async getItem(t){const r=await this.root.getItem(this.path);return t===null?r:v.get(r,t)}async setItem(t,r){if(t===null)await this.root.setItem(this.path,r);else{const i=await this.root.getItem(this.path)||{};await this.root.setItem(this.path,{...i,[t]:r})}return await this.getItem(t)}watchItem(t,r,i){return t===null?this.root.watchItem(this.path,(s,o)=>{r(s,o)},i):this.root.watchItem(this.path,(s,o)=>{const l=v.get(s,t),u=v.get(o,t);l!==u&&r(l,u)},i)}}class Sn{constructor(t,r,i){O(this,"attachmentStorage");this.instance=t,this.attachmentKey=r,this.constructInstance=i,this.attachmentStorage=new ut(t.instanceData,r)}async getInstance(t){if(await this.attachmentStorage.getItem(t))return this.constructInstance(new ut(this.attachmentStorage,t))}async create(t,r){return await this.attachmentStorage.setItem(t,r),this.constructInstance(new ut(this.attachmentStorage,t))}async remove(t){await this.attachmentStorage.deleteItem(t)}async list(){const t=await this.attachmentStorage.getItem(null);return Promise.all(v.values(t).map(r=>this.constructInstance(new ut(this.attachmentStorage,r.id))))}}class ra{constructor(t){O(this,"rootRef");this.rootRef=ie.observable({current:t})}async deleteItem(t){ie.runInAction(()=>{v.unset(this.rootRef.current,[t])})}getItem(t){const r=this.getValueFromRoot(t);return Promise.resolve(r)}getValueFromRoot(t){return t===null?ie.toJS(this.rootRef.current):v.get(this.rootRef.current,[t])}setItem(t,r){if(t===null)if(v.isObject(r))ie.runInAction(()=>{this.rootRef.current=r});else throw new Error("Cannot set root value to non-object");else ie.runInAction(()=>{v.set(this.rootRef.current,[t],r)});return Promise.resolve(this.getItem(t))}watchItem(t,r,i){return ie.reaction(()=>this.getValueFromRoot(t),(s,o)=>{r(s,o)},{requiresObservable:!0,fireImmediately:v.get(i,"fireImmediately",!1)})}}class fl{constructor(){O(this,"channels",new Map);O(this,"globalChannel",new hi)}getChannel(t){const r=this.channels.get(t);if(r)return r;const i=new hi;return this.channels.set(t,i),i}}class gl{constructor(t){O(this,"instances",new Map);this.pluginManager=t}get availableVizList(){return this.pluginManager.installedPlugins.flatMap(t=>t.manifest.viz)}resolveComponent(t){return this.pluginManager.factory.viz(t)}getOrCreateInstance(t){const r=this.instances.get(t.id);if(r)return r;const i={id:t.id,name:t.viz.type,type:t.viz.type,messageChannels:new fl,instanceData:new ra(t.viz.conf)};return this.instances.set(t.id,i),i}}function ia(e,t,r,i){return{vizManager:r,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new ra({}),colorPalette:{getColor(){return()=>""}},data:t,variables:i}}const ml=e=>{const{panel:t,vizManager:r,data:i,variables:s}=e,o=r.resolveComponent(t.viz.type),l=r.getOrCreateInstance(t),u={...ia(l,i,r,s),viewport:{width:t.layout.w,height:t.layout.h}},d=o.viewRender;return n(d,{context:u,instance:l,...v.omit(e,["panel","vizManager","data"])})},bl=e=>{const{vizManager:t,panel:r,panelInfoEditor:i,data:s,variables:o}=e,l=t.resolveComponent(r.viz.type),u=t.getOrCreateInstance(r),d={...ia(u,s,t,o),panelInfoEditor:i},p=l.configRender;return n(p,{context:d,instance:u,...v.omit(e,["panel","vizManager","data","panelInfoEditor"])})},aa=(e,t)=>{const r=je.bezier(e),i=je.bezier(t);return function(s){return s<50?r(s*2/100).hex():i((s-50)*2/100).hex()}},Ft=e=>{const t=je.bezier(e);return function(r){return t(r/100).hex()}},yl={type:"interpolation",displayName:"Red / Green",getColor:aa(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},vl={type:"interpolation",displayName:"Yellow / Blue",getColor:aa(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},xl={type:"interpolation",displayName:"Red",getColor:Ft(["#fff7f1","darkred"]),name:"red",category:"sequential"},Cl={type:"interpolation",displayName:"Green",getColor:Ft(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},wl={type:"interpolation",displayName:"Blue",getColor:Ft(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},_l={type:"interpolation",displayName:"Orange",getColor:Ft(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class Sl{constructor(t){O(this,"symbol");this.symbol=Symbol(t)}}function Ye(e){return new Sl(e)}class Tn{constructor(){O(this,"parent");O(this,"factoryRegistry",new Map);O(this,"instanceRegistry",new Map)}createScoped(){const t=new Tn;return t.parent=this,t}getRequired(t){return this.get(t)}get(t){if(this.instanceRegistry.has(t.symbol))return this.instanceRegistry.get(t.symbol);const r=this.factoryRegistry.get(t.symbol);if(r){const i=r(this);return this.instanceRegistry.set(t.symbol,i),i}if(this.parent)return this.parent.get(t)}provideFactory(t,r){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,r),this}provideValue(t,r){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,()=>r),this}dispose(){this.instanceRegistry.forEach(t=>{const r=v.get(t,"dispose");v.isFunction(r)&&r.bind(t)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}const sa="@devtable/dashboard",kn="9.18.2",oa="Apache-2.0",la={access:"public",registry:"https://registry.npmjs.org/"},ua=["dist"],da="./dist/dashboard.umd.js",ca="./dist/dashboard.es.js",pa="./dist/index.d.ts",ha={".":{import:"./dist/dashboard.es.js",require:"./dist/dashboard.umd.js"},"./dist/style.css":{import:"./dist/style.css",require:"./dist/style.css"}},fa={"dev-build":"tsc && vite build --watch",build:"tsc && vite build",preview:"vite preview",test:"vitest","test:ui":"vitest --ui",coverage:"vitest --coverage"},ga={"@monaco-editor/react":"4.4.6","@types/chroma-js":"^2.1.4","file-saver":"2.0.5",mathjs:"11.8.0","monaco-editor":"0.36.0","performant-array-to-tree":"1.11.0",popmotion:"^11.0.3","rc-select":"14.1.0","rc-tree-select":"5.5.5",reactflow:"^11.5.3"},ma={"@emotion/babel-plugin":"11.11.0","@faker-js/faker":"7.6.0","@mantine/core":"5.9.5","@mantine/dates":"5.9.5","@mantine/hooks":"5.9.5","@mantine/modals":"5.9.5","@mantine/notifications":"5.9.5","@mantine/prism":"5.9.5","@mantine/tiptap":"5.9.5","@tabler/icons":"1.119.0","@testing-library/cypress":"^9.0.0","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/react-hooks":"^8.0.1","@testing-library/user-event":"^14.3.0","@tiptap/extension-code-block-lowlight":"2.0.3","@tiptap/extension-color":"2.0.3","@tiptap/extension-highlight":"2.0.3","@tiptap/extension-link":"2.0.3","@tiptap/extension-placeholder":"2.0.3","@tiptap/extension-subscript":"2.0.3","@tiptap/extension-superscript":"2.0.3","@tiptap/extension-table":"2.0.3","@tiptap/extension-table-cell":"2.0.3","@tiptap/extension-table-header":"2.0.3","@tiptap/extension-table-row":"2.0.3","@tiptap/extension-text-align":"2.0.3","@tiptap/extension-text-style":"2.0.3","@tiptap/extension-underline":"2.0.3","@tiptap/pm":"2.0.3","@tiptap/react":"2.0.3","@tiptap/starter-kit":"2.0.3","@types/crypto-js":"v4.1.1","@types/d3-array":"3.0.4","@types/eventemitter2":"^4.1.0","@types/file-saver":"2.0.5","@types/lodash":"^4.14.182","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/react-grid-layout":"^1.3.2",ahooks:"^3.3.11",ajv:"8.12.0",axios:"^0.27.2","crypto-js":"^4.1.1",cypress:"^12.9.0","cypress-wait-until":"^1.7.2",echarts:"^5.3.2","echarts-for-react":"^3.0.2","echarts-gl":"^2.0.9",jsdom:"^20.0.0","jsdom-testing-mocks":"^1.5.0",lodash:"^4.17.21",lowlight:"^2.8.0",numbro:"^2.3.6","prosemirror-commands":"^1.5.0","prosemirror-dropcursor":"^1.6.1","prosemirror-gapcursor":"^1.3.1","prosemirror-history":"^1.3.0","prosemirror-keymap":"^1.2.0","prosemirror-schema-list":"^1.2.2","react-grid-layout":"^1.3.4","react-hook-form":"^7.31.2","rollup-plugin-visualizer":"5.9.0","tabler-icons-react":"^1.48.0",typescript:"^4.6.3","vite-plugin-static-copy":"0.13.1"},ba={"@emotion/react":"11.10.6","@faker-js/faker":"7.6.0","@mantine/core":"5.9.5","@mantine/dates":"5.9.5","@mantine/hooks":"5.9.5","@mantine/modals":"5.9.5","@mantine/notifications":"5.9.5","@mantine/prism":"5.9.5","@mantine/tiptap":"5.9.5","@tabler/icons":"1.119.0","@tanstack/react-table":"^8.5.13","@tiptap/extension-code-block-lowlight":"2.0.3","@tiptap/extension-color":"2.0.3","@tiptap/extension-highlight":"2.0.3","@tiptap/extension-link":"2.0.3","@tiptap/extension-placeholder":"2.0.3","@tiptap/extension-subscript":"2.0.3","@tiptap/extension-superscript":"2.0.3","@tiptap/extension-table":"2.0.3","@tiptap/extension-table-cell":"2.0.3","@tiptap/extension-table-header":"2.0.3","@tiptap/extension-table-row":"2.0.3","@tiptap/extension-text-align":"2.0.3","@tiptap/extension-text-style":"2.0.3","@tiptap/extension-underline":"2.0.3","@tiptap/pm":"2.0.3","@tiptap/react":"2.0.3","@tiptap/starter-kit":"2.0.3",ahooks:"^3.3.11",axios:"^0.27.2","chroma-js":"^2.4.2","crypto-js":"^4.1.1","d3-array":"3.2.3","d3-regression":"1.3.10",dayjs:"1.11.7",echarts:"^5.3.2","echarts-for-react":"^3.0.2","echarts-gl":"^2.0.9",eventemitter2:"^6.4.6",jszip:"3.10.1",lodash:"^4.17.21",lowlight:"^2.8.0",mobx:"^6.6.1","mobx-react-lite":"^3.4.0","mobx-state-tree":"^5.1.5",numbro:"^2.3.6","prosemirror-commands":"^1.5.0","prosemirror-dropcursor":"^1.6.1","prosemirror-gapcursor":"^1.3.1","prosemirror-history":"^1.3.0","prosemirror-keymap":"^1.2.0","prosemirror-schema-list":"^1.2.2",react:"^16.8.0 || 17.x || 18.x","react-dom":"^16.8.0 || 17.x || 18.x","react-grid-layout":"^1.3.4","react-hook-form":"^7.31.2","react-router-dom":"^6.3.0","react-virtual":"^2.10.4","tabler-icons-react":"^1.48.0"},Tl=Object.freeze(Object.defineProperty({__proto__:null,default:{name:sa,version:kn,license:oa,publishConfig:la,files:ua,main:da,module:ca,types:pa,exports:ha,scripts:fa,dependencies:ga,devDependencies:ma,peerDependencies:ba},dependencies:ga,devDependencies:ma,exports:ha,files:ua,license:oa,main:da,module:ca,name:sa,peerDependencies:ba,publishConfig:la,scripts:fa,types:pa,version:kn},Symbol.toStringTag,{value:"Module"}));class kl{constructor(t){O(this,"staticColors",new Map);O(this,"interpolations",new Map);t.installedPlugins.forEach(r=>{r.manifest.color.forEach(i=>{this.register(i)})})}getStaticColors(){return Array.from(this.staticColors.values())}register(t){const r=this.encodeColor(t);t.type==="single"?(this.staticColors.has(r)&&console.warn(`the color '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`),this.staticColors.set(r,t)):t.type==="interpolation"&&(this.interpolations.has(r)&&console.warn(`the interpolation '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`,`the interpolation '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`),this.interpolations.set(r,t))}decodeStaticColor(t){return this.staticColors.get(t)}encodeColor(t){return`\${${t.category}}.{${t.name}}`}decodeInterpolation(t){return this.interpolations.get(t)}getColorInterpolations(){return Array.from(this.interpolations.values())}}class Dl{constructor(){O(this,"plugins",new Map);O(this,"vizComponents",new Map);O(this,"factory",{viz:t=>{const r=this.vizComponents.get(t);if(r)return r;throw new Error(`Viz Component (${t}) not found`)}})}install(t){if(this.plugins.has(t.id))throw new Error(`Plugin (${t.id}) has been installed before`);this.plugins.set(t.id,t);for(const r of t.manifest.viz){if(this.vizComponents.has(r.name))throw new Error(`Viz Component (${r.name}) has been installed before`);this.vizComponents.set(r.name,r)}}get installedPlugins(){return Array.from(this.plugins.values())}}const F=(e,t)=>{const[r,{setFalse:i}]=X.useBoolean(!0),[s,o]=m.useState();m.useEffect(()=>(e.getItem(t).then(u=>{o(u),i()}),e.watchItem(t,u=>{o(u)})));const l=m.useCallback(async u=>{await e.setItem(t,u),o(u)},[e,t]);return{loading:r,value:s,set:l}},Dn={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"}};le.use([G.GridComponent,G.VisualMapComponent,G.LegendComponent,G.TooltipComponent,Me.CanvasRenderer]);function Il({context:e}){const{value:t}=F(e.instanceData,"config"),r=e.data,{width:i,height:s}=e.viewport,{x_axis_data_key:o,y_axis_data_key:l,z_axis_data_key:u,xAxis3D:d,yAxis3D:p,zAxis3D:f}=v.defaults({},t,Dn),g=m.useMemo(()=>{const C=v.minBy(r,w=>w[u]);return v.get(C,u)},[r,u]),h=m.useMemo(()=>{const C=v.maxBy(r,w=>w[u]);return v.get(C,u)},[r,u]),y={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:g,max:h,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:d,yAxis3D:p,zAxis3D:f,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:r.map(C=>[C[o],C[l],C[u]])}]};return t?n(Ae,{echarts:le,option:y,style:{width:i,height:s},notMerge:!0,theme:"merico-light"}):null}function Ml({label:e,required:t,value:r,onChange:i,data:s,clearable:o=!1,sx:l,...u},d){const p=m.useMemo(()=>{if(!Array.isArray(s)||s.length===0)return[];const g=Object.keys(s[0]).map(h=>({label:h,value:h}));return o?g.concat([{label:"unset",value:""}]):g},[s]);return n(a.Select,{ref:d,label:e,data:p,value:r,onChange:i,required:t,sx:l,...u})}const W=m.forwardRef(Ml);function Al({context:e}){const{value:t,set:r}=F(e.instanceData,"config"),i=e.data,s=v.defaults({},t,Dn),{control:o,handleSubmit:l,reset:u}=x.useForm({defaultValues:s});return m.useEffect(()=>{u(s)},[t]),t?n(a.Stack,{spacing:"xs",children:c("form",{onSubmit:l(r),children:[n(a.Text,{children:"X Axis"}),c(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[n(x.Controller,{name:"x_axis_data_key",control:o,render:({field:d})=>n(W,{label:"Data Field",required:!0,data:i,...d})}),n(x.Controller,{name:"xAxis3D.name",control:o,render:({field:d})=>n(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...d})})]}),n(a.Text,{mt:"lg",children:"Y Axis"}),c(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[n(x.Controller,{name:"y_axis_data_key",control:o,render:({field:d})=>n(W,{label:"Data Field",required:!0,data:i,...d})}),n(x.Controller,{name:"yAxis3D.name",control:o,render:({field:d})=>n(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...d})})]}),n(a.Text,{mt:"lg",children:"Z Axis"}),c(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[n(x.Controller,{name:"z_axis_data_key",control:o,render:({field:d})=>n(W,{label:"Data Field",required:!0,data:i,...d})}),n(x.Controller,{name:"zAxis3D.name",control:o,render:({field:d})=>n(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...d})})]}),n(a.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:c(a.Button,{color:"blue",type:"submit",children:[n(k.DeviceFloppy,{size:20}),n(a.Text,{ml:"md",children:"Save"})]})})]})}):null}class $l extends fe{constructor(){super(...arguments);O(this,"VERSION",1)}configVersions(){this.version(1,r=>({version:1,config:r}))}}const zl={displayName:"Bar Chart (3D)",displayGroup:"ECharts-based charts",migrator:new $l,name:"bar-3d",viewRender:Il,configRender:Al,createConfig(){return{version:1,config:v.cloneDeep(Dn)}}};class ke extends m.Component{constructor(t){super(t),this.state={error:null}}componentDidCatch(t){this.setState({error:t})}render(){var t;if(this.state.error){const r=()=>{this.setState({error:null})};return c(a.Box,{children:[n(a.Text,{size:"xs",children:(t=this.state.error)==null?void 0:t.message}),n(a.Button,{variant:"subtle",size:"xs",mx:"auto",compact:!0,sx:{display:"block"},onClick:r,children:"Retry"})]})}return this.props.children}}const Se={mantissa:0,output:"number",trimMantissa:!1,average:!1};function El({value:e,onChange:t},r){const i=u=>{t({...e,output:u})},s=u=>{const d=u===0?!1:e.trimMantissa;t({...e,mantissa:u,trimMantissa:d})},o=u=>{t({...e,trimMantissa:u.currentTarget.checked})},l=u=>{t({...e,average:u.currentTarget.checked})};return c(a.Stack,{ref:r,children:[c(a.Group,{grow:!0,children:[n(a.Select,{label:"Format",data:[{label:"1234",value:"number"},{label:"99%",value:"percent"}],value:e.output,onChange:i,sx:{flexGrow:1}}),n(a.Switch,{label:c(a.Stack,{spacing:0,children:[n(a.Text,{children:"Average"}),n(a.Text,{size:12,color:"gray",children:"like 1.234k, 1.234m"})]}),checked:e.average,onChange:l,disabled:e.output!=="number",sx:{flexGrow:1},styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"},label:{display:"block"}}})]}),c(a.Group,{grow:!0,children:[n(a.NumberInput,{label:"Mantissa",defaultValue:0,min:0,step:1,max:4,value:e.mantissa,onChange:s}),n(a.Switch,{label:"Trim mantissa",checked:e.trimMantissa,onChange:o,disabled:e.mantissa===0,styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"}}})]}),c(a.Stack,{spacing:0,children:[n(a.Text,{weight:"bold",children:"Preview"}),n(ke,{children:c(a.Group,{position:"apart",children:[c(a.Text,{size:12,color:"gray",children:["123456789 ",n(k.ArrowRight,{size:9})," ",H(123456789).format(e)]}),c(a.Text,{size:12,color:"gray",children:["1234 ",n(k.ArrowRight,{size:9})," ",H(1234).format(e)]}),c(a.Text,{size:12,color:"gray",children:["0.1234 ",n(k.ArrowRight,{size:9})," ",H(.1234).format(e)]})]})})]})]})}const Ve=m.forwardRef(El),Ne={enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
|
|
119
|
+
`),_n={columns:[],fontSize:"1rem",highlightOnHover:!1,horizontalSpacing:"1em",id_field:"",striped:!1,use_raw_columns:!0,verticalSpacing:"1em"};class ut{constructor(t,r){this.root=t,this.path=r}async deleteItem(t){t===null&&await this.root.deleteItem(this.path);const r=await this.root.getItem(this.path)||{};await this.root.setItem(this.path,v.omit(r,t))}async getItem(t){const r=await this.root.getItem(this.path);return t===null?r:v.get(r,t)}async setItem(t,r){if(t===null)await this.root.setItem(this.path,r);else{const i=await this.root.getItem(this.path)||{};await this.root.setItem(this.path,{...i,[t]:r})}return await this.getItem(t)}watchItem(t,r,i){return t===null?this.root.watchItem(this.path,(s,o)=>{r(s,o)},i):this.root.watchItem(this.path,(s,o)=>{const l=v.get(s,t),u=v.get(o,t);l!==u&&r(l,u)},i)}}class Sn{constructor(t,r,i){O(this,"attachmentStorage");this.instance=t,this.attachmentKey=r,this.constructInstance=i,this.attachmentStorage=new ut(t.instanceData,r)}async getInstance(t){if(await this.attachmentStorage.getItem(t))return this.constructInstance(new ut(this.attachmentStorage,t))}async create(t,r){return await this.attachmentStorage.setItem(t,r),this.constructInstance(new ut(this.attachmentStorage,t))}async remove(t){await this.attachmentStorage.deleteItem(t)}async list(){const t=await this.attachmentStorage.getItem(null);return Promise.all(v.values(t).map(r=>this.constructInstance(new ut(this.attachmentStorage,r.id))))}}class ra{constructor(t){O(this,"rootRef");this.rootRef=ie.observable({current:t})}async deleteItem(t){ie.runInAction(()=>{v.unset(this.rootRef.current,[t])})}getItem(t){const r=this.getValueFromRoot(t);return Promise.resolve(r)}getValueFromRoot(t){return t===null?ie.toJS(this.rootRef.current):v.get(this.rootRef.current,[t])}setItem(t,r){if(t===null)if(v.isObject(r))ie.runInAction(()=>{this.rootRef.current=r});else throw new Error("Cannot set root value to non-object");else ie.runInAction(()=>{v.set(this.rootRef.current,[t],r)});return Promise.resolve(this.getItem(t))}watchItem(t,r,i){return ie.reaction(()=>this.getValueFromRoot(t),(s,o)=>{r(s,o)},{requiresObservable:!0,fireImmediately:v.get(i,"fireImmediately",!1)})}}class fl{constructor(){O(this,"channels",new Map);O(this,"globalChannel",new hi)}getChannel(t){const r=this.channels.get(t);if(r)return r;const i=new hi;return this.channels.set(t,i),i}}class gl{constructor(t){O(this,"instances",new Map);this.pluginManager=t}get availableVizList(){return this.pluginManager.installedPlugins.flatMap(t=>t.manifest.viz)}resolveComponent(t){return this.pluginManager.factory.viz(t)}getOrCreateInstance(t){const r=this.instances.get(t.id);if(r)return r;const i={id:t.id,name:t.viz.type,type:t.viz.type,messageChannels:new fl,instanceData:new ra(t.viz.conf)};return this.instances.set(t.id,i),i}}function ia(e,t,r,i){return{vizManager:r,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new ra({}),colorPalette:{getColor(){return()=>""}},data:t,variables:i}}const ml=e=>{const{panel:t,vizManager:r,data:i,variables:s}=e,o=r.resolveComponent(t.viz.type),l=r.getOrCreateInstance(t),u={...ia(l,i,r,s),viewport:{width:t.layout.w,height:t.layout.h}},d=o.viewRender;return n(d,{context:u,instance:l,...v.omit(e,["panel","vizManager","data"])})},bl=e=>{const{vizManager:t,panel:r,panelInfoEditor:i,data:s,variables:o}=e,l=t.resolveComponent(r.viz.type),u=t.getOrCreateInstance(r),d={...ia(u,s,t,o),panelInfoEditor:i},p=l.configRender;return n(p,{context:d,instance:u,...v.omit(e,["panel","vizManager","data","panelInfoEditor"])})},aa=(e,t)=>{const r=je.bezier(e),i=je.bezier(t);return function(s){return s<50?r(s*2/100).hex():i((s-50)*2/100).hex()}},Ft=e=>{const t=je.bezier(e);return function(r){return t(r/100).hex()}},yl={type:"interpolation",displayName:"Red / Green",getColor:aa(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},vl={type:"interpolation",displayName:"Yellow / Blue",getColor:aa(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},xl={type:"interpolation",displayName:"Red",getColor:Ft(["#fff7f1","darkred"]),name:"red",category:"sequential"},Cl={type:"interpolation",displayName:"Green",getColor:Ft(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},wl={type:"interpolation",displayName:"Blue",getColor:Ft(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},_l={type:"interpolation",displayName:"Orange",getColor:Ft(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class Sl{constructor(t){O(this,"symbol");this.symbol=Symbol(t)}}function Ye(e){return new Sl(e)}class Tn{constructor(){O(this,"parent");O(this,"factoryRegistry",new Map);O(this,"instanceRegistry",new Map)}createScoped(){const t=new Tn;return t.parent=this,t}getRequired(t){return this.get(t)}get(t){if(this.instanceRegistry.has(t.symbol))return this.instanceRegistry.get(t.symbol);const r=this.factoryRegistry.get(t.symbol);if(r){const i=r(this);return this.instanceRegistry.set(t.symbol,i),i}if(this.parent)return this.parent.get(t)}provideFactory(t,r){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,r),this}provideValue(t,r){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,()=>r),this}dispose(){this.instanceRegistry.forEach(t=>{const r=v.get(t,"dispose");v.isFunction(r)&&r.bind(t)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}const sa="@devtable/dashboard",kn="9.18.3",oa="Apache-2.0",la={access:"public",registry:"https://registry.npmjs.org/"},ua=["dist"],da="./dist/dashboard.umd.js",ca="./dist/dashboard.es.js",pa="./dist/index.d.ts",ha={".":{import:"./dist/dashboard.es.js",require:"./dist/dashboard.umd.js"},"./dist/style.css":{import:"./dist/style.css",require:"./dist/style.css"}},fa={"dev-build":"tsc && vite build --watch",build:"tsc && vite build",preview:"vite preview",test:"vitest","test:ui":"vitest --ui",coverage:"vitest --coverage"},ga={"@monaco-editor/react":"4.4.6","@types/chroma-js":"^2.1.4","file-saver":"2.0.5",mathjs:"11.8.0","monaco-editor":"0.36.0","performant-array-to-tree":"1.11.0",popmotion:"^11.0.3","rc-select":"14.1.0","rc-tree-select":"5.5.5",reactflow:"^11.5.3"},ma={"@emotion/babel-plugin":"11.11.0","@faker-js/faker":"7.6.0","@mantine/core":"5.9.5","@mantine/dates":"5.9.5","@mantine/hooks":"5.9.5","@mantine/modals":"5.9.5","@mantine/notifications":"5.9.5","@mantine/prism":"5.9.5","@mantine/tiptap":"5.9.5","@tabler/icons":"1.119.0","@testing-library/cypress":"^9.0.0","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/react-hooks":"^8.0.1","@testing-library/user-event":"^14.3.0","@tiptap/extension-code-block-lowlight":"2.0.3","@tiptap/extension-color":"2.0.3","@tiptap/extension-highlight":"2.0.3","@tiptap/extension-link":"2.0.3","@tiptap/extension-placeholder":"2.0.3","@tiptap/extension-subscript":"2.0.3","@tiptap/extension-superscript":"2.0.3","@tiptap/extension-table":"2.0.3","@tiptap/extension-table-cell":"2.0.3","@tiptap/extension-table-header":"2.0.3","@tiptap/extension-table-row":"2.0.3","@tiptap/extension-text-align":"2.0.3","@tiptap/extension-text-style":"2.0.3","@tiptap/extension-underline":"2.0.3","@tiptap/pm":"2.0.3","@tiptap/react":"2.0.3","@tiptap/starter-kit":"2.0.3","@types/crypto-js":"v4.1.1","@types/d3-array":"3.0.4","@types/eventemitter2":"^4.1.0","@types/file-saver":"2.0.5","@types/lodash":"^4.14.182","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/react-grid-layout":"^1.3.2",ahooks:"^3.3.11",ajv:"8.12.0",axios:"^0.27.2","crypto-js":"^4.1.1",cypress:"^12.9.0","cypress-wait-until":"^1.7.2",echarts:"^5.3.2","echarts-for-react":"^3.0.2","echarts-gl":"^2.0.9",jsdom:"^20.0.0","jsdom-testing-mocks":"^1.5.0",lodash:"^4.17.21",lowlight:"^2.8.0",numbro:"^2.3.6","prosemirror-commands":"^1.5.0","prosemirror-dropcursor":"^1.6.1","prosemirror-gapcursor":"^1.3.1","prosemirror-history":"^1.3.0","prosemirror-keymap":"^1.2.0","prosemirror-schema-list":"^1.2.2","react-grid-layout":"^1.3.4","react-hook-form":"^7.31.2","rollup-plugin-visualizer":"5.9.0","tabler-icons-react":"^1.48.0",typescript:"^4.6.3","vite-plugin-static-copy":"0.13.1"},ba={"@emotion/react":"11.10.6","@faker-js/faker":"7.6.0","@mantine/core":"5.9.5","@mantine/dates":"5.9.5","@mantine/hooks":"5.9.5","@mantine/modals":"5.9.5","@mantine/notifications":"5.9.5","@mantine/prism":"5.9.5","@mantine/tiptap":"5.9.5","@tabler/icons":"1.119.0","@tanstack/react-table":"^8.5.13","@tiptap/extension-code-block-lowlight":"2.0.3","@tiptap/extension-color":"2.0.3","@tiptap/extension-highlight":"2.0.3","@tiptap/extension-link":"2.0.3","@tiptap/extension-placeholder":"2.0.3","@tiptap/extension-subscript":"2.0.3","@tiptap/extension-superscript":"2.0.3","@tiptap/extension-table":"2.0.3","@tiptap/extension-table-cell":"2.0.3","@tiptap/extension-table-header":"2.0.3","@tiptap/extension-table-row":"2.0.3","@tiptap/extension-text-align":"2.0.3","@tiptap/extension-text-style":"2.0.3","@tiptap/extension-underline":"2.0.3","@tiptap/pm":"2.0.3","@tiptap/react":"2.0.3","@tiptap/starter-kit":"2.0.3",ahooks:"^3.3.11",axios:"^0.27.2","chroma-js":"^2.4.2","crypto-js":"^4.1.1","d3-array":"3.2.3","d3-regression":"1.3.10",dayjs:"1.11.7",echarts:"^5.3.2","echarts-for-react":"^3.0.2","echarts-gl":"^2.0.9",eventemitter2:"^6.4.6",jszip:"3.10.1",lodash:"^4.17.21",lowlight:"^2.8.0",mobx:"^6.6.1","mobx-react-lite":"^3.4.0","mobx-state-tree":"^5.1.5",numbro:"^2.3.6","prosemirror-commands":"^1.5.0","prosemirror-dropcursor":"^1.6.1","prosemirror-gapcursor":"^1.3.1","prosemirror-history":"^1.3.0","prosemirror-keymap":"^1.2.0","prosemirror-schema-list":"^1.2.2",react:"^16.8.0 || 17.x || 18.x","react-dom":"^16.8.0 || 17.x || 18.x","react-grid-layout":"^1.3.4","react-hook-form":"^7.31.2","react-router-dom":"^6.3.0","react-virtual":"^2.10.4","tabler-icons-react":"^1.48.0"},Tl=Object.freeze(Object.defineProperty({__proto__:null,default:{name:sa,version:kn,license:oa,publishConfig:la,files:ua,main:da,module:ca,types:pa,exports:ha,scripts:fa,dependencies:ga,devDependencies:ma,peerDependencies:ba},dependencies:ga,devDependencies:ma,exports:ha,files:ua,license:oa,main:da,module:ca,name:sa,peerDependencies:ba,publishConfig:la,scripts:fa,types:pa,version:kn},Symbol.toStringTag,{value:"Module"}));class kl{constructor(t){O(this,"staticColors",new Map);O(this,"interpolations",new Map);t.installedPlugins.forEach(r=>{r.manifest.color.forEach(i=>{this.register(i)})})}getStaticColors(){return Array.from(this.staticColors.values())}register(t){const r=this.encodeColor(t);t.type==="single"?(this.staticColors.has(r)&&console.warn(`the color '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`),this.staticColors.set(r,t)):t.type==="interpolation"&&(this.interpolations.has(r)&&console.warn(`the interpolation '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`,`the interpolation '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`),this.interpolations.set(r,t))}decodeStaticColor(t){return this.staticColors.get(t)}encodeColor(t){return`\${${t.category}}.{${t.name}}`}decodeInterpolation(t){return this.interpolations.get(t)}getColorInterpolations(){return Array.from(this.interpolations.values())}}class Dl{constructor(){O(this,"plugins",new Map);O(this,"vizComponents",new Map);O(this,"factory",{viz:t=>{const r=this.vizComponents.get(t);if(r)return r;throw new Error(`Viz Component (${t}) not found`)}})}install(t){if(this.plugins.has(t.id))throw new Error(`Plugin (${t.id}) has been installed before`);this.plugins.set(t.id,t);for(const r of t.manifest.viz){if(this.vizComponents.has(r.name))throw new Error(`Viz Component (${r.name}) has been installed before`);this.vizComponents.set(r.name,r)}}get installedPlugins(){return Array.from(this.plugins.values())}}const F=(e,t)=>{const[r,{setFalse:i}]=X.useBoolean(!0),[s,o]=m.useState();m.useEffect(()=>(e.getItem(t).then(u=>{o(u),i()}),e.watchItem(t,u=>{o(u)})));const l=m.useCallback(async u=>{await e.setItem(t,u),o(u)},[e,t]);return{loading:r,value:s,set:l}},Dn={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"}};le.use([G.GridComponent,G.VisualMapComponent,G.LegendComponent,G.TooltipComponent,Me.CanvasRenderer]);function Il({context:e}){const{value:t}=F(e.instanceData,"config"),r=e.data,{width:i,height:s}=e.viewport,{x_axis_data_key:o,y_axis_data_key:l,z_axis_data_key:u,xAxis3D:d,yAxis3D:p,zAxis3D:f}=v.defaults({},t,Dn),g=m.useMemo(()=>{const C=v.minBy(r,w=>w[u]);return v.get(C,u)},[r,u]),h=m.useMemo(()=>{const C=v.maxBy(r,w=>w[u]);return v.get(C,u)},[r,u]),y={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:g,max:h,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:d,yAxis3D:p,zAxis3D:f,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:r.map(C=>[C[o],C[l],C[u]])}]};return t?n(Ae,{echarts:le,option:y,style:{width:i,height:s},notMerge:!0,theme:"merico-light"}):null}function Ml({label:e,required:t,value:r,onChange:i,data:s,clearable:o=!1,sx:l,...u},d){const p=m.useMemo(()=>{if(!Array.isArray(s)||s.length===0)return[];const g=Object.keys(s[0]).map(h=>({label:h,value:h}));return o?g.concat([{label:"unset",value:""}]):g},[s]);return n(a.Select,{ref:d,label:e,data:p,value:r,onChange:i,required:t,sx:l,...u})}const W=m.forwardRef(Ml);function Al({context:e}){const{value:t,set:r}=F(e.instanceData,"config"),i=e.data,s=v.defaults({},t,Dn),{control:o,handleSubmit:l,reset:u}=x.useForm({defaultValues:s});return m.useEffect(()=>{u(s)},[t]),t?n(a.Stack,{spacing:"xs",children:c("form",{onSubmit:l(r),children:[n(a.Text,{children:"X Axis"}),c(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[n(x.Controller,{name:"x_axis_data_key",control:o,render:({field:d})=>n(W,{label:"Data Field",required:!0,data:i,...d})}),n(x.Controller,{name:"xAxis3D.name",control:o,render:({field:d})=>n(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...d})})]}),n(a.Text,{mt:"lg",children:"Y Axis"}),c(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[n(x.Controller,{name:"y_axis_data_key",control:o,render:({field:d})=>n(W,{label:"Data Field",required:!0,data:i,...d})}),n(x.Controller,{name:"yAxis3D.name",control:o,render:({field:d})=>n(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...d})})]}),n(a.Text,{mt:"lg",children:"Z Axis"}),c(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[n(x.Controller,{name:"z_axis_data_key",control:o,render:({field:d})=>n(W,{label:"Data Field",required:!0,data:i,...d})}),n(x.Controller,{name:"zAxis3D.name",control:o,render:({field:d})=>n(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...d})})]}),n(a.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:c(a.Button,{color:"blue",type:"submit",children:[n(k.DeviceFloppy,{size:20}),n(a.Text,{ml:"md",children:"Save"})]})})]})}):null}class $l extends fe{constructor(){super(...arguments);O(this,"VERSION",1)}configVersions(){this.version(1,r=>({version:1,config:r}))}}const zl={displayName:"Bar Chart (3D)",displayGroup:"ECharts-based charts",migrator:new $l,name:"bar-3d",viewRender:Il,configRender:Al,createConfig(){return{version:1,config:v.cloneDeep(Dn)}}};class ke extends m.Component{constructor(t){super(t),this.state={error:null}}componentDidCatch(t){this.setState({error:t})}render(){var t;if(this.state.error){const r=()=>{this.setState({error:null})};return c(a.Box,{children:[n(a.Text,{size:"xs",children:(t=this.state.error)==null?void 0:t.message}),n(a.Button,{variant:"subtle",size:"xs",mx:"auto",compact:!0,sx:{display:"block"},onClick:r,children:"Retry"})]})}return this.props.children}}const Se={mantissa:0,output:"number",trimMantissa:!1,average:!1};function El({value:e,onChange:t},r){const i=u=>{t({...e,output:u})},s=u=>{const d=u===0?!1:e.trimMantissa;t({...e,mantissa:u,trimMantissa:d})},o=u=>{t({...e,trimMantissa:u.currentTarget.checked})},l=u=>{t({...e,average:u.currentTarget.checked})};return c(a.Stack,{ref:r,children:[c(a.Group,{grow:!0,children:[n(a.Select,{label:"Format",data:[{label:"1234",value:"number"},{label:"99%",value:"percent"}],value:e.output,onChange:i,sx:{flexGrow:1}}),n(a.Switch,{label:c(a.Stack,{spacing:0,children:[n(a.Text,{children:"Average"}),n(a.Text,{size:12,color:"gray",children:"like 1.234k, 1.234m"})]}),checked:e.average,onChange:l,disabled:e.output!=="number",sx:{flexGrow:1},styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"},label:{display:"block"}}})]}),c(a.Group,{grow:!0,children:[n(a.NumberInput,{label:"Mantissa",defaultValue:0,min:0,step:1,max:4,value:e.mantissa,onChange:s}),n(a.Switch,{label:"Trim mantissa",checked:e.trimMantissa,onChange:o,disabled:e.mantissa===0,styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"}}})]}),c(a.Stack,{spacing:0,children:[n(a.Text,{weight:"bold",children:"Preview"}),n(ke,{children:c(a.Group,{position:"apart",children:[c(a.Text,{size:12,color:"gray",children:["123456789 ",n(k.ArrowRight,{size:9})," ",H(123456789).format(e)]}),c(a.Text,{size:12,color:"gray",children:["1234 ",n(k.ArrowRight,{size:9})," ",H(1234).format(e)]}),c(a.Text,{size:12,color:"gray",children:["0.1234 ",n(k.ArrowRight,{size:9})," ",H(.1234).format(e)]})]})})]})]})}const Ve=m.forwardRef(El),Ne={enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
|
|
120
120
|
`)},ya={id:"builtin:echarts:click-echart:series",displayName:"Click Chart Series",nameRender:Pl,configRender:Ll,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 Ll(e){return n(V,{})}function Pl(e){return n(a.Text,{children:"Click chart's series"})}const Ol=[{label:"Truncate",value:"truncate"},{label:"Break Line",value:"break"},{label:"Break Word",value:"breakAll"}],Wt=m.forwardRef(({sectionTitle:e,value:t,onChange:r},i)=>{const s=o=>l=>{const u=v.cloneDeep(t);v.set(u,o,l),r(u)};return c(a.Stack,{spacing:0,children:[e&&n(a.Divider,{mb:-5,mt:5,variant:"dotted",label:e,labelPosition:"right",labelProps:{color:"dimmed"}}),c(a.Group,{grow:!0,noWrap:!0,children:[n(a.NumberInput,{label:"Max Width",hideControls:!0,value:t.width,onChange:s("width")}),n(a.Select,{label:"Overflow",data:Ol,value:t.overflow,onChange:s("overflow")}),n(a.TextInput,{label:"Ellipsis",value:t.ellipsis,disabled:!0})]})]})}),Je=m.forwardRef(({value:e,onChange:t},r)=>{const i=o=>{t({...e,on_axis:o})},s=o=>{t({...e,in_tooltip:o})};return c(a.Stack,{ref:r,spacing:0,children:[n(Wt,{sectionTitle:"Overflow on Axis",value:e.on_axis,onChange:i}),n(Wt,{sectionTitle:"Overflow in Tooltip",value:e.in_tooltip,onChange:s})]})}),Be={on_axis:{width:80,overflow:"truncate",ellipsis:"..."},in_tooltip:{width:200,overflow:"break",ellipsis:"..."}};function He({overflow:e,width:t}){const r={truncate:"initial",break:"break-all",breakAll:"break-word"}[e],i=e==="truncate"?"nowrap":"initial",s={truncate:"ellipsis",break:"clip",breakAll:"clip"}[e];return`
|
|
121
121
|
max-width: ${t}px;
|
|
122
122
|
word-break: ${r};
|
|
@@ -163,7 +163,7 @@ Check the top-level render call using <`+E+">.")}return M}}function oo(_,M){{if(
|
|
|
163
163
|
</tbody>
|
|
164
164
|
</table>
|
|
165
165
|
`}const cu=e=>t=>{const{componentSubType:r,value:i}=t;return r==="scatter"?du(e,i):lu(e,i)};function pu({config:e}){return{trigger:"item",confine:!0,formatter:cu(e)}}const St=m.forwardRef(function({value:t,onChange:r,...i},s){return n(a.TextInput,{ref:s,value:t,onChange:r,...i})}),hu=[{label:"None",value:"none"},{label:"Sum",value:"sum"},{label:"Mean",value:"mean"},{label:"Median",value:"median"},{label:"Max",value:"max"},{label:"Min",value:"min"},{label:"Coefficient of Variation",value:"CV"},{label:"Standard Variation",value:"std"},{label:"Quantile(99%, 95%, ...)",value:"quantile"}];function fu({label:e,value:t,onChange:r,pt:i="sm"},s){m.useEffect(()=>{typeof t=="string"&&(console.log(t),r({type:t,config:{}}))},[t,r]);const o=u=>{r(u==="quantile"?{type:"quantile",config:{p:.99}}:{type:u,config:{}})},l=u=>{r({type:"quantile",config:{p:u}})};return c(a.Group,{grow:!0,noWrap:!0,pt:i,children:[n(a.Select,{ref:s,label:e,data:hu,value:t.type,onChange:o}),t.type==="quantile"&&n(a.NumberInput,{label:"p",value:t.config.p,onChange:l,precision:2,min:.05,step:.05,max:1})]})}const jt=m.forwardRef(fu);function gu({label:e,value:t,onChange:r},i){const[s,o]=m.useState(Array.isArray(t)?[...t]:[]),l=m.useCallback(()=>{o(h=>[...h,""])},[o]),u=m.useCallback(h=>{o(y=>(y.splice(h,1),[...y]))},[o]),d=m.useMemo(()=>!v.isEqual(s,t),[s,t]),p=()=>{r(s.map(h=>h.toString()))},f=a.useMantineTheme(),g=m.useMemo(()=>Object.entries(f.colors).map(([h,y])=>y[6]),[f]);return c(V,{children:[c(a.Group,{position:"left",ref:i,children:[n(a.Text,{children:e}),n(a.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!d,onClick:p,children:n(k.DeviceFloppy,{size:20})})]}),c(a.Group,{children:[s.map((h,y)=>n(a.ColorInput,{value:h,onChange:C=>{o(w=>(w.splice(y,1,C),[...w]))},swatches:g,rightSection:n(a.ActionIcon,{onClick:()=>u(y),color:"red",children:n(k.Trash,{size:14})}),sx:{width:"45%"}})),n(a.ActionIcon,{onClick:l,color:"blue",variant:"outline",children:n(k.PlaylistAdd,{size:20})})]})]})}const mu=m.forwardRef(gu);function bu({value:e,onChange:t},r){const{colorManager:i}=m.useContext(qe),s=m.useMemo(()=>i.getStaticColors().map(u=>({label:u.name,group:u.category,value:u.value})),[i]),o=m.useMemo(()=>s.some(l=>l.value===e),[e,s]);return c(a.Group,{position:"apart",spacing:4,ref:r,children:[n(a.TextInput,{placeholder:"Set any color",value:o?"":e,onChange:l=>t(l.currentTarget.value),rightSection:n(a.ColorSwatch,{color:o?"transparent":e,radius:4}),variant:o?"filled":"default",sx:{maxWidth:"46%",flexGrow:1}}),n(a.Text,{sx:{flexGrow:0},children:"or"}),n(a.Select,{data:s,value:e,onChange:t,variant:o?"default":"filled",placeholder:"Pick a theme color",icon:n(a.ColorSwatch,{color:o?e:"transparent",radius:4}),sx:{maxWidth:"46%",flexGrow:1}})]})}const De=m.forwardRef(bu),Yt=[{label:"initial",value:0},{label:"500",value:25},{label:"700",value:50},{label:"semibold",value:75},{label:"bold",value:100}];function yu({label:e,value:t,onChange:r},i){var l;const[s,o]=m.useState(((l=Yt.find(u=>u.label===t))==null?void 0:l.value)??Yt[0].value);return m.useEffect(()=>{const u=Yt.find(d=>d.value===s);u&&r(u.label)},[s]),c(a.Stack,{spacing:0,mt:"sm",mb:"lg",children:[n(a.Text,{size:"sm",children:e}),n(a.Slider,{label:null,marks:Yt,value:s,onChange:o,step:25,placeholder:"Pick a font size",px:"1em",ref:i})]})}const _a=m.forwardRef(yu);function vu({label:e,value:t,onChange:r,type:i},s){const[o,l]=m.useState(Array.isArray(t)?[...t]:[]),u=m.useCallback(()=>{l(g=>[...g,""])},[l]),d=m.useCallback(g=>{l(h=>(h.splice(g,1),[...h]))},[l]),p=m.useMemo(()=>!v.isEqual(o.map(String),t.map(String)),[o,t]),f=()=>{r(o.map(g=>i==="number"?Number(g):g.toString()))};return c(V,{children:[c(a.Group,{position:"left",ref:s,children:[n(a.Text,{children:e}),n(a.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!p,onClick:f,children:n(k.DeviceFloppy,{size:20})})]}),c(a.Group,{children:[o.map((g,h)=>n(a.TextInput,{type:i,value:g,onChange:y=>{const C=y.currentTarget.value;l(w=>(w.splice(h,1,C),[...w]))},rightSection:n(a.ActionIcon,{onClick:()=>d(h),color:"red",children:n(k.Trash,{size:14})}),sx:{width:"45%"}})),n(a.ActionIcon,{onClick:u,color:"blue",variant:"outline",children:n(k.PlaylistAdd,{size:20})})]})]})}const xu=m.forwardRef(vu),Sa=m.forwardRef(function({value:t,onChange:r},i){const s=t.color.type,o=(l,u)=>{const d=v.cloneDeep(t);v.set(d,l,u),r(d)};return c(V,{children:[n(a.Divider,{my:"xs",label:"Typography",labelPosition:"center"}),n(a.Stack,{children:n(a.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",sx:{flex:1},value:t.size,onChange:l=>o("size",l.currentTarget.value)})}),n(a.Group,{position:"apart",grow:!0,sx:{"> *":{flexGrow:1,maxWidth:"100%"}},children:n(_a,{label:"Font Weight",value:t.weight,onChange:l=>o("weight",l)})}),n(a.Divider,{my:"xs",label:"Style",labelPosition:"center"}),c(a.Stack,{children:[n(a.Select,{label:"Color Type",data:[{label:"Static Color",value:"static"},{label:"Continuous Color",value:"continuous"}],value:t.color.type,onChange:l=>o("color.type",l)}),s==="static"&&n(De,{value:t.color.staticColor,onChange:l=>o("color.staticColor",l)}),s==="continuous"&&c(V,{children:[n(xu,{label:"Value Range",value:t.color.valueRange,type:"number",onChange:l=>o("color.valueRange",l)}),n(mu,{label:"Color Range",value:t.color.colorRange,onChange:l=>o("color.colorRange",l)})]})]})]})});m.forwardRef(function({value:t,onChange:r,data:i,withStyle:s=!0},o){const l=(u,d)=>{const p=v.cloneDeep(t);v.set(p,u,d),r(p)};return c(a.Box,{px:"sm",py:"md",ref:o,children:[n(a.Text,{weight:"bold",pb:0,children:t.name}),n(a.Divider,{my:"xs",label:"Data",labelPosition:"center"}),c(a.Group,{grow:!0,noWrap:!0,children:[n(a.TextInput,{label:"Name",required:!0,value:t.name,onChange:u=>l("name",u.currentTarget.value)}),n(W,{label:"Data Field",required:!0,data:i,value:t.data_field,onChange:u=>l("data_field",u)})]}),n(jt,{label:"Aggregation",value:t.aggregation,onChange:u=>l("aggregation",u)}),n(a.Divider,{my:"xs",label:"Format",labelPosition:"center"}),n(Ve,{value:t.formatter,onChange:u=>l("formatter",u)}),s&&n(Sa,{value:t,onChange:r})]})});const ct={type:"none",config:{}};function Cu(e){const t=Array.from(e).sort((i,s)=>i-s),r=Math.floor(t.length/2);return t.length%2===0?(t[r-1]+t[r])/2:t[r]}function wu(e,t){const r=e[t],i=Number(r);return isFinite(i)?i:0}function Tt(e,t,r){try{const i=e.map(s=>wu(s,t));switch(r.type){case"sum":return v.sum(i);case"mean":return v.mean(i);case"median":return Cu(i);case"max":return v.max(i)??0;case"min":return v.min(i)??0;case"quantile":return xt.quantile(i,r.config.p)??0;case"CV":const s=Nt.std(...i),o=Nt.mean(...i);return o?s/o:"N/A";case"std":return Nt.std(...i);default:return i}}catch(i){return console.error(i),null}}class _u{constructor({valueRange:t,colorRange:r}){O(this,"mapper");this.mapper=ot.interpolate(t,r)}getColor(t){return this.mapper(t)}}function Su(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array(${e.length})`:e.toString()}function pt({data_field:e,aggregation:t},r){return Tt(r,e,t)}function et({formatter:e},t){if(!["string","number"].includes(typeof t))return Su(t);try{return H(t).format(e)}catch(r){return console.error(r),t}}function Tu(e,t){if(e.type==="static")return e.staticColor;if(e.type==="continuous")try{if(typeof t!="number")throw new Error(`[getColorByColorConf] Invalid type of aggregated value: ${t}`);return new _u(e).getColor(t)}catch(r){return console.error(r),"black"}return"black"}function Ta(e,t){const{color:r,data_field:i,aggregation:s,size:o,weight:l}=e,u=Tt(t,i,s),d=et(e,u);return n(a.Text,{sx:{fontSize:o,display:"inline"},color:Tu(r,u),weight:l,children:d})}function ku(e,t){const r={};return e.forEach(i=>{const s=i.name;r[s]=Ta(i,t)}),r}function Du(e){return e.split(" ").map((t,r)=>c(m.Fragment,{children:[t," "]},r))}function Iu(e){const r=e.replaceAll("<br />","<br/>").replaceAll(`
|
|
166
|
-
`,"<br/>").split("<br/>");return r.map((s,o)=>{const l=[Du(s)];return o!==r.length-1&&l.push(n("br",{})),l}).flat().filter(s=>s!==void 0)}function zn(e){return Iu(e)}function kt(e,t,r){const i=ku(t,r),s=/^\{(.+)\}(.*)$/;return e.split("$").map(o=>{const l=s.exec(o);if(!l)return zn(o);const u=i[l[1]];if(!u)return zn(o);const d=l[2]??"";return c(m.Fragment,{children:[u,zn(d)]},o)})}function Mu(e,t){const r={};return e.forEach(i=>{const{name:s,data_field:o,aggregation:l}=i,u=Tt(t,o,l);r[s]=et(i,u)}),r}function Rt(e,t,r){const i=Mu(t,r),s=/^\{(.+)\}(.*)$/;return e.split("$").map(o=>{const l=s.exec(o);if(!l)return o;const u=i[l[1]];if(!u)return o;const d=l[2]??"";return`${u}${d}`}).join("")}function Au(e,t,r){const i=t.reduce((s,o)=>{const l=pt(o,r);return s[o.name]=et(o,l),s},{});return e.map(s=>({name:"refs",type:"scatter",data:[],markLine:{data:[{name:s.name,yAxis:Number(i[s.variable_key])}],silent:!0,symbol:["none","none"],label:{formatter:function(){return Rt(s.template,t,r)},position:"insideEndTop"}}}))}function $u({config:e,data:t,variables:r}){const{x_axis:i,y_axis:s,reference_lines:o}=e,l=iu(e,t),u=Re(i.axisLabel.overflow.on_axis),d=su(e);return{grid:{top:30,left:20,right:15,bottom:25,containLabel:!0},dataset:l,legend:au({config:e}),tooltip:pu({config:e}),xAxis:[{type:"category",name:i.name,nameGap:25,nameLocation:"center",nameTextStyle:{fontWeight:"bold",align:"center"},axisTick:{show:!0,alignWithLabel:!0},axisLabel:{...i.axisLabel,...u,formatter:dt(i.axisLabel.formatter)}}],yAxis:[{name:s.name,nameTextStyle:{fontWeight:"bold"},axisLine:{show:!0},axisLabel:{formatter:function(p){return H(p).format(s.label_formatter)}}}],series:[...d,...Au(o,r,t)]}}le.use([G.DataZoomComponent,de.BoxplotChart,G.MarkLineComponent,G.GridComponent,G.LegendComponent,G.TooltipComponent,Me.CanvasRenderer]);function zu({context:e,instance:t}){const{value:r}=F(e.instanceData,"config"),{variables:i}=e,s=e.data,{width:o,height:l}=e.viewport,u=v.defaults({},r,In),d=Fe({vizManager:e.vizManager,instance:t}),p=Ge(d.triggerManager,ya.id),f=m.useMemo(()=>v.keyBy(s,u.x_axis.data_key),[s,u.x_axis.data_key]),g=m.useCallback(C=>{const w=v.get(f,C.name,{error:"rowData is not found"});p.forEach(S=>{d.runInteraction(S.id,{...C,rowData:w})})},[f,p,d]),h=m.useMemo(()=>({click:g}),[g]),y=m.useMemo(()=>$u({config:u,data:s,variables:i}),[u,s,i]);return!r||!o||!l?null:n(Ae,{echarts:le,option:y,style:{width:o,height:l},onEvents:h,notMerge:!0,theme:"merico-light"})}function Eu({control:e,index:t,remove:r,variableOptions:i}){return c(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[c(a.Group,{grow:!0,noWrap:!0,children:[n(x.Controller,{name:`reference_lines.${t}.name`,control:e,render:({field:s})=>n(a.TextInput,{label:"Name",placeholder:"Average Reference Line",required:!0,sx:{flex:1},...s})}),n(x.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:s})=>n(a.Select,{label:"Value",required:!0,data:i,sx:{flex:1},...s})})]}),n(x.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:s})=>n(a.TextInput,{label:"Content Template",placeholder:"Average: ${avg}",required:!0,sx:{flex:1},...s})}),n(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>r(t),sx:{position:"absolute",top:15,right:5},children:n(k.Trash,{size:16})})]},t)}function Lu({control:e,watch:t,variables:r}){const{fields:i,append:s,remove:o}=x.useFieldArray({control:e,name:"reference_lines"}),l=t("reference_lines"),u=i.map((f,g)=>({...f,...l[g]})),d=()=>s({name:"",template:"",variable_key:""}),p=m.useMemo(()=>r.map(f=>({label:f.name,value:f.name})),[r]);return c(a.Stack,{children:[u.map((f,g)=>n(Eu,{control:e,index:g,remove:o,variableOptions:p},f.id)),n(a.Group,{position:"center",mt:"xs",children:n(a.Button,{onClick:d,children:"Add a Reference Line"})})]})}const Pu=({disabled:e,value:t,onChange:r})=>{const i=s=>{s&&r(s)};return c(a.Box,{sx:{position:"relative"},children:[e&&n(a.Overlay,{opacity:.6,color:"#fff",zIndex:5,blur:2}),n(_e,{height:"500px",defaultLanguage:"javascript",value:t,onChange:i,theme:"vs-dark",options:{minimap:{enabled:!1},readOnly:e}})]})},Qt=m.forwardRef(({value:e,onChange:t},r)=>{const[i,{setTrue:s,setFalse:o}]=X.useBoolean(),[l,u]=m.useState(e);m.useEffect(()=>{u(e)},[e]);const d=y=>{u({...l,enabled:y})},p=()=>{o();const{enabled:y,func_content:C}=l,w={enabled:y,func_content:C};u(w),t(w)},f=()=>{o(),u(e)},g=y=>{u(C=>({...C,func_content:y}))},h=()=>{g(Ne.func_content)};return c(V,{children:[n(a.Button,{variant:"filled",mt:24,onClick:s,sx:{flexGrow:0},children:"Customize Label"}),n(a.Modal,{size:800,title:"Customize label content",opened:i,onClose:o,closeOnClickOutside:!1,withCloseButton:!1,zIndex:320,children:i&&c(a.Stack,{children:[n(a.Checkbox,{mt:10,label:"Enabled",checked:l.enabled,onChange:y=>d(y.currentTarget.checked)}),n(Pu,{value:l.func_content,onChange:g,disabled:!l.enabled}),c(a.Group,{position:"apart",children:[n(a.Button,{onClick:h,color:"red",leftIcon:n(k.Recycle,{size:20}),children:"Rest"}),c(a.Group,{position:"right",children:[n(a.Button,{onClick:f,variant:"subtle",children:"Cancel"}),n(a.Button,{onClick:p,children:"OK"})]})]})]})})]})}),Ou=({control:e,data:t,watch:r})=>(r(["x_axis"]),c(a.Stack,{children:[c(a.Group,{grow:!0,noWrap:!0,children:[n(x.Controller,{name:"x_axis.name",control:e,render:({field:i})=>n(a.TextInput,{label:"X Axis Name",sx:{flex:1},...i})}),n(x.Controller,{name:"x_axis.data_key",control:e,render:({field:i})=>n(W,{label:"X Axis Data Field",required:!0,data:t,sx:{flex:1},...i})})]}),n(a.Divider,{mb:-15,label:"Tick Label",labelPosition:"center"}),c(a.Group,{grow:!0,noWrap:!0,children:[n(x.Controller,{name:"x_axis.axisLabel.rotate",control:e,render:({field:i})=>n(a.NumberInput,{label:"Rotate",hideControls:!0,min:-90,max:90,rightSection:n(a.Text,{color:"dimmed",children:"degree"}),sx:{width:"48%"},styles:{rightSection:{width:"4em",justifyContent:"flex-end",paddingRight:"6px"}},...i})}),n(x.Controller,{name:"x_axis.axisLabel.formatter",control:e,render:({field:i})=>n(Qt,{data:t,...i})})]}),n(x.Controller,{name:"x_axis.axisLabel.overflow",control:e,render:({field:i})=>n(Je,{...i})})]})),Vu=({control:e,data:t,watch:r})=>(r(["y_axis"]),c(V,{children:[c(a.Group,{grow:!0,noWrap:!0,children:[n(x.Controller,{name:"y_axis.name",control:e,render:({field:i})=>n(a.TextInput,{label:"Y Axis Name",sx:{flex:1},...i})}),n(x.Controller,{name:"y_axis.data_key",control:e,render:({field:i})=>n(W,{label:"Y Axis Data Field",required:!0,data:t,sx:{flex:1},...i})})]}),c(a.Stack,{children:[n(a.Divider,{mb:-15,variant:"dashed",label:"Label Format",labelPosition:"center"}),n(x.Controller,{name:"y_axis.label_formatter",control:e,render:({field:i})=>n(Ve,{...i})})]})]})),Bu=({control:e,data:t,index:r,remove:i})=>c(a.Stack,{children:[c(a.Group,{grow:!0,noWrap:!0,children:[n(x.Controller,{name:`tooltip.metrics.${r}.name`,control:e,render:({field:s})=>n(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...s})}),n(x.Controller,{name:`tooltip.metrics.${r}.data_key`,control:e,render:({field:s})=>n(W,{label:"Value Field",required:!0,data:t,sx:{flex:1},...s})})]}),n(a.Divider,{mb:-10,mt:10,variant:"dashed"}),n(a.Button,{leftIcon:n(k.Trash,{size:16}),color:"red",variant:"light",onClick:()=>i(r),sx:{top:15,right:5},children:"Delete this Metric"})]}),Nu=({control:e,watch:t,data:r})=>{const{fields:i,append:s,remove:o}=x.useFieldArray({control:e,name:"tooltip.metrics"}),l=t("tooltip.metrics"),u=i.map((h,y)=>({...h,...l[y]})),d=()=>s({id:Date.now().toString(),data_key:"",name:""}),p=t("tooltip.metrics.0.id"),[f,g]=m.useState(()=>p??null);return m.useEffect(()=>{p&&g(h=>h!==null?h:p)},[p]),c(V,{children:[c(a.Group,{spacing:2,sx:{cursor:"default",userSelect:"none"},children:[n(k.InfoCircle,{size:14,color:"#888"}),n(a.Text,{size:14,color:"#888",children:"Set additional metrics to show in scatter's tooltip"})]}),c(a.Tabs,{value:f,onTabChange:h=>g(h),styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px",paddingTop:"6px"}},children:[c(a.Tabs.List,{children:[u.map((h,y)=>n(a.Tabs.Tab,{value:h.id,children:h.name?h.name:y},h.id)),n(a.Tabs.Tab,{onClick:d,value:"add",children:n(k.Plus,{size:18,color:"#228be6"})})]}),u.map((h,y)=>n(a.Tabs.Panel,{value:h.id,children:n(Bu,{control:e,index:y,remove:o,data:r},h.id)},h.id))]})]})};function Gu({data:e,control:t,watch:r}){return n(a.Stack,{children:n(Nu,{control:t,watch:r,data:e})})}function qu({context:e}){const{value:t,set:r}=F(e.instanceData,"config"),i=e.data,{variables:s}=e,o=m.useMemo(()=>v.defaults({},t,In),[t]),{control:l,handleSubmit:u,watch:d,getValues:p,reset:f}=x.useForm({defaultValues:o});m.useEffect(()=>{f(o)},[o]),d(["x_axis","y_axis","reference_lines","color"]);const g=p(),h=m.useMemo(()=>!v.isEqual(g,t),[g,t]);return n(a.Stack,{spacing:"xs",children:c("form",{onSubmit:u(r),children:[c(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[n(a.Text,{children:"Chart Config"}),n(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!h,children:n(k.DeviceFloppy,{size:20})})]}),c(a.Tabs,{defaultValue:"X Axis",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[c(a.Tabs.List,{children:[n(a.Tabs.Tab,{value:"X Axis",children:"X Axis"}),n(a.Tabs.Tab,{value:"Y Axis",children:"Y Axis"}),n(a.Tabs.Tab,{value:"Tooltip",children:"Tooltip"}),n(a.Tabs.Tab,{value:"Style",children:"Style"}),n(a.Tabs.Tab,{value:"Reference Lines",children:"Reference Lines"})]}),n(a.Tabs.Panel,{value:"X Axis",children:n(Ou,{control:l,data:i,watch:d})}),n(a.Tabs.Panel,{value:"Y Axis",children:n(Vu,{control:l,data:i,watch:d})}),n(a.Tabs.Panel,{value:"Tooltip",children:n(Gu,{control:l,data:i,watch:d})}),n(a.Tabs.Panel,{value:"Style",children:c(a.Stack,{spacing:4,children:[n(a.Text,{size:"sm",children:"Color"}),n(x.Controller,{name:"color",control:l,render:({field:y})=>n(De,{...y})})]})}),n(a.Tabs.Panel,{value:"Reference Lines",children:n(Lu,{variables:s,control:l,watch:d})})]})]})})}function Fu(e){return v.omit(e,"variables")}function Wu(e){const{label_formatter:t=Se,...r}=e.y_axis;return{...e,y_axis:{...r,label_formatter:t}}}function ju(e){const t={rotate:0,formatter:{...Ne}},{axisLabel:r=t,...i}=e.x_axis;return{...e,x_axis:{...i,axisLabel:r}}}function Yu(e){const t={x_axis:{axisLabel:{overflow:{x_axis:{width:80,overflow:"truncate",ellipsis:"..."},tooltip:{width:200,overflow:"break",ellipsis:"..."}}}}};return v.defaultsDeep(t,e)}function Ru(e){delete e.config;const{x_axis:t,tooltip:r}=e.x_axis.axisLabel.overflow,i={x_axis:{axisLabel:{overflow:{on_axis:t,in_tooltip:r}}}};return v.defaultsDeep(i,e)}function Qu(e){const t={tooltip:{metrics:[]}};return v.defaultsDeep(t,e)}class Uu extends fe{constructor(){super(...arguments);O(this,"VERSION",7)}configVersions(){this.version(1,r=>({version:1,config:r})),this.version(2,(r,{panelModel:i})=>{const{config:s}=r;return(s.variables||[]).forEach(l=>{i.variables.find(u=>u.name===l.name)||i.addVariable(l)}),{...r,version:2,config:Fu(s)}}),this.version(3,r=>{const{config:i}=r;return{...r,version:3,config:Wu(i)}}),this.version(4,r=>{const{config:i}=r;return{...r,version:4,config:ju(i)}}),this.version(5,r=>{const{config:i}=r;return{...r,version:5,config:Yu(i)}}),this.version(6,r=>{const{config:i}=r;return{...r,version:6,config:Ru(i)}}),this.version(7,r=>{const{config:i}=r;return{...r,version:7,config:Qu(i)}})}}const Xu={displayName:"Boxplot Chart",displayGroup:"ECharts-based charts",migrator:new Uu,name:"boxplot",viewRender:zu,configRender:qu,createConfig(){return{version:7,config:v.cloneDeep(In)}},triggers:[ya]},ka={id:"builtin:button:click-button",displayName:"Click Button",nameRender:Ku,configRender:Zu,payload:[]};function Zu(e){return n(V,{})}function Ku(e){return n(a.Text,{children:"Click this button"})}const En={content:"Button",variant:"filled",color:"blue",size:"xs",compact:!1,horizontal_align:"left",vertical_align:"center"},Ju={left:"flex-start",center:"center",right:"flex-end"},Hu={top:"flex-start",center:"center",bottom:"flex-end"},ed=T.observer(({context:e,instance:t})=>{const r=Fe({vizManager:e.vizManager,instance:t}),i=Ge(r.triggerManager,ka.id),s=Y(),{value:o}=F(e.instanceData,"config"),l=m.useMemo(()=>v.defaultsDeep({},o,En),[o]),{content:u,horizontal_align:d,vertical_align:p,...f}=l,{width:g,height:h}=e.viewport,y=s.payloadForSQL,C=()=>{i.forEach(w=>{r.runInteraction(w.id,{})})};return n(a.Center,{sx:{width:g,height:h,justifyContent:Ju[d],alignItems:Hu[p]},children:n(a.Button,{...f,onClick:C,children:v.template(u)(y)})})}),td=({value:e,onChange:t,label:r})=>{const i=a.useMantineTheme(),s=m.useCallback(l=>()=>t(l),[t]),o=l=>e===l;return c(a.Stack,{spacing:2,children:[n(a.Text,{size:14,sx:{fontWeight:500},children:r}),n(a.Group,{position:"left",spacing:"xs",children:Object.keys(i.colors).map(l=>{const u=i.colors[l][6];return n(a.ColorSwatch,{color:u,onClick:s(l),radius:4,size:26,sx:{cursor:"pointer"},children:o(l)&&n(a.CheckIcon,{width:10,color:"white"})},l)})})]})},nd=a.MANTINE_SIZES.map(e=>({label:e.toUpperCase(),value:e})),rd=({label:e,value:t,onChange:r})=>n(a.Select,{data:nd,label:e,value:t,onChange:r}),id=[{label:"Filled",value:"filled"},{label:"Outline",value:"outline"},{label:"Light",value:"light"},{label:"White",value:"white"},{label:"Default",value:"default"},{label:"Subtle",value:"subtle"},{label:"Gradient",value:"gradient",disabled:!0}],ad=[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}],sd=[{label:"Top",value:"top"},{label:"Center",value:"center"},{label:"Bottom",value:"bottom"}];function od({context:e}){const{value:t,set:r}=F(e.instanceData,"config");e.data;const i=m.useMemo(()=>v.defaultsDeep({},t,En),[t]),s=i;m.useEffect(()=>{!v.isEqual(i,s)&&(console.log("config malformed, resetting to defaults",i,s),r(s))},[i,s]);const{control:o,handleSubmit:l,watch:u,getValues:d,reset:p}=x.useForm({defaultValues:s});m.useEffect(()=>{p(s)},[s]);const f=d(),g=m.useMemo(()=>!v.isEqual(f,i),[f,i]);return u(["content","variant","color","size","compact","horizontal_align","vertical_align"]),c("form",{onSubmit:l(r),children:[c(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[n(a.Text,{children:"Chart Config"}),n(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!g,children:n(k.DeviceFloppy,{size:20})})]}),c(a.Stack,{children:[n(x.Controller,{control:o,name:"content",render:({field:h})=>n(a.TextInput,{label:"Content Template",description:"Filter values & context entries are supported",...h,required:!0})}),n(a.Divider,{mt:"xs",mb:0,label:"Styles",labelPosition:"center",variant:"dashed"}),c(a.SimpleGrid,{cols:2,children:[n(x.Controller,{control:o,name:"variant",render:({field:h})=>n(a.Select,{label:"Variant",data:id,...h})}),n(x.Controller,{control:o,name:"color",render:({field:h})=>n(td,{label:"Theme",...h})})]}),c(a.SimpleGrid,{cols:2,children:[n(x.Controller,{control:o,name:"size",render:({field:h})=>n(rd,{label:"Size",...h})}),n(x.Controller,{control:o,name:"compact",render:({field:h})=>n(a.Checkbox,{label:"Compact",checked:h.value,onChange:y=>h.onChange(y.currentTarget.checked),mt:26})})]}),c(a.SimpleGrid,{cols:2,children:[n(x.Controller,{control:o,name:"horizontal_align",render:({field:h})=>n(a.Select,{label:"Horizontal Alignment",data:ad,...h})}),n(x.Controller,{control:o,name:"vertical_align",render:({field:h})=>n(a.Select,{label:"Vertical Alignment",data:sd,...h})})]})]})]})}class ld extends fe{constructor(){super(...arguments);O(this,"VERSION",2)}configVersions(){this.version(1,r=>({version:1,config:r})),this.version(2,r=>{const{horizontal_align:i="left",vertical_align:s="center",...o}=r.config;return{...r,version:2,config:{...o,horizontal_align:i,vertical_align:s}}})}}const ud={displayName:"Button",displayGroup:"Others",migrator:new ld,name:"button",viewRender:ed,configRender:od,createConfig(){return{version:2,config:v.cloneDeep(En)}},triggers:[ka]},Ln={id:"builtin:echarts:click-echart:series",displayName:"Click Chart Series",nameRender:cd,configRender:dd,payload:[{name:"seriesType",description:"'line' | 'scatter' | 'bar'",valueType:"string"},{name:"componentType",description:"'series'",valueType:"string"},{name:"name",description:"Name of the series clicked",valueType:"string"},{name:"color",description:"Color",valueType:"string"},{name:"value",description:"String-typed number, or series' actual value",valueType:"string"},{name:"rowData",description:"Data of the row",valueType:"object"}]};function dd(e){return n(V,{})}function cd(e){return n(a.Text,{children:"Click chart's series"})}const ht={x_axis_scroll:!1,y_axis_scroll:!1,x_axis_slider:!1,y_axis_slider:!1},Pn={regressions:[],series:[],stats:{templates:{bottom:"",top:""}},x_axis:{type:"category",axisLabel:{rotate:0,formatter:{...Ne},overflow:Be}},x_axis_data_key:"",x_axis_name:"",y_axes:[{min:"",max:"",name:"Y Axis",show:!0,position:"left",nameAlignment:"center",label_formatter:Se}],reference_lines:[],reference_areas:[],dataZoom:ht};function On(e){const t=[];return e.x_axis_scroll&&t.push({type:"inside",xAxisIndex:[0],filterMode:"none",minSpan:1}),e.y_axis_scroll&&t.push({type:"inside",yAxisIndex:[0],filterMode:"none",minSpan:1}),e.x_axis_slider&&t.push({type:"slider",xAxisIndex:[0],filterMode:"none",bottom:"auto",top:0,height:15,moveHandleSize:0,showDataShadow:!1,minSpan:1}),t}function pd(e){const t=e.y_axes.some(s=>!!s.name);let r=15;t&&(r+=20),e.dataZoom.x_axis_slider&&(r+=20);let i=5;return e.x_axis_name&&(i+=15),e.series.some(s=>!s.hide_in_legend)&&(i+=20),{top:r,right:15,bottom:i,left:20,containLabel:!0}}function hd(e){return e!=="line"?{}:{itemStyle:{opacity:0}}}function fd(e){switch(e){case"line":return;case"bar":return"roundRect";case"scatter":return"circle"}}function gd(e){const t={show:!0,bottom:0,left:"center",type:"scroll"};return t.data=e.filter(r=>!r.hide_in_legend).map(({name:r,type:i})=>({name:r,icon:fd(i),...hd(i)})),t}function Ut(e,t){switch(e.config.method){case"linear":return[...Ze.regressionLinear()(t)];case"exponential":return[...Ze.regressionExp()(t)];case"logarithmic":return[...Ze.regressionLog()(t)];case"polynomial":return[...Ze.regressionPoly().order(e.config.order)(t)];default:return[]}}function md(e,t,r,i){const{transform:s,plot:o}=e,l={...o,name:t,data:Ut(s,i),showSymbol:!1,tooltip:{show:!1},smooth:!1,custom:{}};return r&&(l.custom={type:"regression-line",targetSeries:r}),l}function bd({regressions:e=[],x_axis_data_key:t},r){const i=[];if(r.length===0)return i;function s(o,l,u,d){const p=md(o,l,u,d);i.push(p)}return e.forEach(o=>{const{name:l,group_by_key:u}=o;if(!u||u===t){const p=r.map((f,g)=>[g,Number(f[o.y_axis_data_key])]);s(o,l,"",p);return}const d=v.groupBy(r,u);Object.entries(d).forEach(([p,f])=>{const g=f.map((y,C)=>[C,Number(y[o.y_axis_data_key])]);s(o,p,p,g)})}),i}function yd(e,t){return e.map(r=>({name:"",type:"line",hide_in_legend:!0,data:[],markArea:{itemStyle:{color:r.color},data:[[{yAxis:t[r.y_keys.upper]},{yAxis:t[r.y_keys.lower]}]],silent:!0}}))}function vd(e,t,r,i){return e.map(s=>{const o=s.orientation==="horizontal",l=o?"yAxis":"xAxis",u=o?"insideEndTop":"end";return{name:s.name,type:"line",hide_in_legend:!s.show_in_legend,yAxisIndex:s.yAxisIndex,data:[],lineStyle:s.lineStyle,markLine:{data:[{name:s.name,[l]:Number(r[s.variable_key])}],silent:!0,symbol:["none","none"],lineStyle:s.lineStyle,label:{formatter:function(){return s.template?Rt(s.template,t,i):""},position:u}}}})}function xd({type:e,...t},r,i,s){if(!e)return 10;if(e==="static"){const{size:u}=t;return u}const{func_content:o}=t,l=v.keyBy(r,i);return(u,d)=>{let p;d.name?p=l[d.name]:p=r[d.dataIndex];try{return new Function(`return ${o}`)()({rowData:p,params:d,variables:s},{lodash:v,interpolate:ot.interpolate})}catch(f){return console.error(`[getEchartsSymbolSize] failed parsing custom function, error: ${f.message}`),10}}}function Vn(e,t,r){return e.map(i=>[i[t],i[r]])}function Cd(e,t,r,i){const s=Vn(t,r,i);return v.unionBy(s,e,0)}function wd({dataTemplate:e,data:t,x_axis_data_key:r,y_axis_data_key:i,valueTypedXAxis:s}){return s?Cd(e,t,r,i):t.map(o=>o[i])}function _d({dataTemplate:e,data:t,aggregation_on_value:r,x_axis_data_key:i,y_axis_data_key:s,valueTypedXAxis:o}){if(!r||r.type==="none")return wd({dataTemplate:e,data:t,x_axis_data_key:i,y_axis_data_key:s,valueTypedXAxis:o});const l=Vn(t,i,s),u=v.groupBy(l,"0");return Object.entries(u).map(([p,f])=>{const g=Tt(f,"1",r);return[p,g]})}function Sd({group_by_key:e,data:t,x_axis_data_key:r,y_axis_data_key:i}){const s=v.groupBy(t,e);return Object.entries(s).forEach(([o,l])=>{s[o]=Vn(l,r,i)}),s}function Td({x_axis_data_key:e,x_axis:t},{y_axis_data_key:r,yAxisIndex:i,label_position:s,name:o,group_by_key:l,aggregation_on_value:u,stack:d,color:p,display_name_on_line:f,symbolSize:g,hide_in_legend:h,...y},C,w,S,I){const $=t.type!=="category",N={label:{show:!!s,position:s,formatter:I[i??"default"]},name:o,xAxisId:"main-x-axis",yAxisIndex:i,stack:d,color:p,symbolSize:xd(g,w,e,S),hide_in_legend:h,labelLayout:{hideOverlap:!0},...y};if(f&&(N.endLabel={show:!0,formatter:o,offset:[-12,12],align:"right"}),!l||l===e)return N.data=_d({dataTemplate:C,data:w,aggregation_on_value:u,x_axis_data_key:e,y_axis_data_key:r,valueTypedXAxis:$}),N;const B=Sd({group_by_key:l,data:w,x_axis_data_key:e,y_axis_data_key:r});return Object.entries(B).map(([P,z])=>{const A=v.cloneDeep(N);return A.name=P,A.color=void 0,A.data=z,A})}function kd(e,t,r,i,s,o){const l=t.map(d=>[d,0]);return e.series.map(d=>Td(e,d,l,r,o,i)).flat().concat(vd(e.reference_lines,s,o,r)).concat(yd(e.reference_areas,o))}function Dd(e,t){const r=e.find(o=>o.axisDim==="x"&&o.axisId==="main-x-axis");if(!r)return"";const{axisValue:i,axisIndex:s}=r;return dt(t.x_axis.axisLabel.formatter)(i,s)}function Id(e,t,r){const i=t.reduce((s,{yAxisIndex:o,name:l})=>(s[l]=o,s),{});return{trigger:"axis",confine:!0,formatter:function(s){const o=Array.isArray(s)?s:[s];if(o.length===0)return"";const l=o.map(({seriesName:p,marker:f,value:g})=>{if(Array.isArray(g)&&g.length===2&&(g=g[1]),!p)return g;const h=i[p],y=r[h]??r.default;return`
|
|
166
|
+
`,"<br/>").split("<br/>");return r.map((s,o)=>{const l=[Du(s)];return o!==r.length-1&&l.push(n("br",{})),l}).flat().filter(s=>s!==void 0)}function zn(e){return Iu(e)}function kt(e,t,r){const i=ku(t,r),s=/^\{(.+)\}(.*)$/;return e.split("$").map(o=>{const l=s.exec(o);if(!l)return zn(o);const u=i[l[1]];if(!u)return zn(o);const d=l[2]??"";return c(m.Fragment,{children:[u,zn(d)]},o)})}function Mu(e,t){const r={};return e.forEach(i=>{const{name:s,data_field:o,aggregation:l}=i,u=Tt(t,o,l);r[s]=et(i,u)}),r}function Rt(e,t,r){const i=Mu(t,r),s=/^\{(.+)\}(.*)$/;return e.split("$").map(o=>{const l=s.exec(o);if(!l)return o;const u=i[l[1]];if(!u)return o;const d=l[2]??"";return`${u}${d}`}).join("")}function Au(e,t,r){const i=t.reduce((s,o)=>{const l=pt(o,r);return s[o.name]=et(o,l),s},{});return e.map(s=>({name:"refs",type:"scatter",data:[],markLine:{data:[{name:s.name,yAxis:Number(i[s.variable_key])}],silent:!0,symbol:["none","none"],label:{formatter:function(){return Rt(s.template,t,r)},position:"insideEndTop"}}}))}function $u({config:e,data:t,variables:r}){const{x_axis:i,y_axis:s,reference_lines:o}=e,l=iu(e,t),u=Re(i.axisLabel.overflow.on_axis),d=su(e);return{grid:{top:30,left:20,right:15,bottom:25,containLabel:!0},dataset:l,legend:au({config:e}),tooltip:pu({config:e}),xAxis:[{type:"category",name:i.name,nameGap:25,nameLocation:"center",nameTextStyle:{fontWeight:"bold",align:"center"},axisTick:{show:!0,alignWithLabel:!0},axisLabel:{...i.axisLabel,...u,formatter:dt(i.axisLabel.formatter)}}],yAxis:[{name:s.name,nameTextStyle:{fontWeight:"bold"},axisLine:{show:!0},axisLabel:{formatter:function(p){return H(p).format(s.label_formatter)}}}],series:[...d,...Au(o,r,t)]}}le.use([G.DataZoomComponent,de.BoxplotChart,G.MarkLineComponent,G.GridComponent,G.LegendComponent,G.TooltipComponent,Me.CanvasRenderer]);function zu({context:e,instance:t}){const{value:r}=F(e.instanceData,"config"),{variables:i}=e,s=e.data,{width:o,height:l}=e.viewport,u=v.defaults({},r,In),d=Fe({vizManager:e.vizManager,instance:t}),p=Ge(d.triggerManager,ya.id),f=m.useMemo(()=>v.keyBy(s,u.x_axis.data_key),[s,u.x_axis.data_key]),g=m.useCallback(C=>{const w=v.get(f,C.name,{error:"rowData is not found"});p.forEach(S=>{d.runInteraction(S.id,{...C,rowData:w})})},[f,p,d]),h=m.useMemo(()=>({click:g}),[g]),y=m.useMemo(()=>$u({config:u,data:s,variables:i}),[u,s,i]);return!r||!o||!l?null:n(Ae,{echarts:le,option:y,style:{width:o,height:l},onEvents:h,notMerge:!0,theme:"merico-light"})}function Eu({control:e,index:t,remove:r,variableOptions:i}){return c(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[c(a.Group,{grow:!0,noWrap:!0,children:[n(x.Controller,{name:`reference_lines.${t}.name`,control:e,render:({field:s})=>n(a.TextInput,{label:"Name",placeholder:"Average Reference Line",required:!0,sx:{flex:1},...s})}),n(x.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:s})=>n(a.Select,{label:"Value",required:!0,data:i,sx:{flex:1},...s})})]}),n(x.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:s})=>n(a.TextInput,{label:"Content Template",placeholder:"Average: ${avg}",required:!0,sx:{flex:1},...s})}),n(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>r(t),sx:{position:"absolute",top:15,right:5},children:n(k.Trash,{size:16})})]},t)}function Lu({control:e,watch:t,variables:r}){const{fields:i,append:s,remove:o}=x.useFieldArray({control:e,name:"reference_lines"}),l=t("reference_lines"),u=i.map((f,g)=>({...f,...l[g]})),d=()=>s({name:"",template:"",variable_key:""}),p=m.useMemo(()=>r.map(f=>({label:f.name,value:f.name})),[r]);return c(a.Stack,{children:[u.map((f,g)=>n(Eu,{control:e,index:g,remove:o,variableOptions:p},f.id)),n(a.Group,{position:"center",mt:"xs",children:n(a.Button,{onClick:d,children:"Add a Reference Line"})})]})}const Pu=({disabled:e,value:t,onChange:r})=>{const i=s=>{s&&r(s)};return c(a.Box,{sx:{position:"relative"},children:[e&&n(a.Overlay,{opacity:.6,color:"#fff",zIndex:5,blur:2}),n(_e,{height:"500px",defaultLanguage:"javascript",value:t,onChange:i,theme:"vs-dark",options:{minimap:{enabled:!1},readOnly:e}})]})},Qt=m.forwardRef(({value:e,onChange:t},r)=>{const[i,{setTrue:s,setFalse:o}]=X.useBoolean(),[l,u]=m.useState(e);m.useEffect(()=>{u(e)},[e]);const d=y=>{u({...l,enabled:y})},p=()=>{o();const{enabled:y,func_content:C}=l,w={enabled:y,func_content:C};u(w),t(w)},f=()=>{o(),u(e)},g=y=>{u(C=>({...C,func_content:y}))},h=()=>{g(Ne.func_content)};return c(V,{children:[n(a.Button,{variant:"filled",mt:24,onClick:s,sx:{flexGrow:0},children:"Customize Label"}),n(a.Modal,{size:800,title:"Customize label content",opened:i,onClose:o,closeOnClickOutside:!1,withCloseButton:!1,zIndex:320,children:i&&c(a.Stack,{children:[n(a.Checkbox,{mt:10,label:"Enabled",checked:l.enabled,onChange:y=>d(y.currentTarget.checked)}),n(Pu,{value:l.func_content,onChange:g,disabled:!l.enabled}),c(a.Group,{position:"apart",children:[n(a.Button,{onClick:h,color:"red",leftIcon:n(k.Recycle,{size:20}),children:"Rest"}),c(a.Group,{position:"right",children:[n(a.Button,{onClick:f,variant:"subtle",children:"Cancel"}),n(a.Button,{onClick:p,children:"OK"})]})]})]})})]})}),Ou=({control:e,data:t,watch:r})=>(r(["x_axis"]),c(a.Stack,{children:[c(a.Group,{grow:!0,noWrap:!0,children:[n(x.Controller,{name:"x_axis.name",control:e,render:({field:i})=>n(a.TextInput,{label:"X Axis Name",sx:{flex:1},...i})}),n(x.Controller,{name:"x_axis.data_key",control:e,render:({field:i})=>n(W,{label:"X Axis Data Field",required:!0,data:t,sx:{flex:1},...i})})]}),n(a.Divider,{mb:-15,label:"Tick Label",labelPosition:"center"}),c(a.Group,{grow:!0,noWrap:!0,children:[n(x.Controller,{name:"x_axis.axisLabel.rotate",control:e,render:({field:i})=>n(a.NumberInput,{label:"Rotate",hideControls:!0,min:-90,max:90,rightSection:n(a.Text,{color:"dimmed",children:"degree"}),sx:{width:"48%"},styles:{rightSection:{width:"4em",justifyContent:"flex-end",paddingRight:"6px"}},...i})}),n(x.Controller,{name:"x_axis.axisLabel.formatter",control:e,render:({field:i})=>n(Qt,{data:t,...i})})]}),n(x.Controller,{name:"x_axis.axisLabel.overflow",control:e,render:({field:i})=>n(Je,{...i})})]})),Vu=({control:e,data:t,watch:r})=>(r(["y_axis"]),c(V,{children:[c(a.Group,{grow:!0,noWrap:!0,children:[n(x.Controller,{name:"y_axis.name",control:e,render:({field:i})=>n(a.TextInput,{label:"Y Axis Name",sx:{flex:1},...i})}),n(x.Controller,{name:"y_axis.data_key",control:e,render:({field:i})=>n(W,{label:"Y Axis Data Field",required:!0,data:t,sx:{flex:1},...i})})]}),c(a.Stack,{children:[n(a.Divider,{mb:-15,variant:"dashed",label:"Label Format",labelPosition:"center"}),n(x.Controller,{name:"y_axis.label_formatter",control:e,render:({field:i})=>n(Ve,{...i})})]})]})),Bu=({control:e,data:t,index:r,remove:i})=>c(a.Stack,{children:[c(a.Group,{grow:!0,noWrap:!0,children:[n(x.Controller,{name:`tooltip.metrics.${r}.name`,control:e,render:({field:s})=>n(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...s})}),n(x.Controller,{name:`tooltip.metrics.${r}.data_key`,control:e,render:({field:s})=>n(W,{label:"Value Field",required:!0,data:t,sx:{flex:1},...s})})]}),n(a.Divider,{mb:-10,mt:10,variant:"dashed"}),n(a.Button,{leftIcon:n(k.Trash,{size:16}),color:"red",variant:"light",onClick:()=>i(r),sx:{top:15,right:5},children:"Delete this Metric"})]}),Nu=({control:e,watch:t,data:r})=>{const{fields:i,append:s,remove:o}=x.useFieldArray({control:e,name:"tooltip.metrics"}),l=t("tooltip.metrics"),u=i.map((h,y)=>({...h,...l[y]})),d=()=>s({id:Date.now().toString(),data_key:"",name:""}),p=t("tooltip.metrics.0.id"),[f,g]=m.useState(()=>p??null);return m.useEffect(()=>{p&&g(h=>h!==null?h:p)},[p]),c(V,{children:[c(a.Group,{spacing:2,sx:{cursor:"default",userSelect:"none"},children:[n(k.InfoCircle,{size:14,color:"#888"}),n(a.Text,{size:14,color:"#888",children:"Set additional metrics to show in scatter's tooltip"})]}),c(a.Tabs,{value:f,onTabChange:h=>g(h),styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px",paddingTop:"6px"}},children:[c(a.Tabs.List,{children:[u.map((h,y)=>n(a.Tabs.Tab,{value:h.id,children:h.name?h.name:y},h.id)),n(a.Tabs.Tab,{onClick:d,value:"add",children:n(k.Plus,{size:18,color:"#228be6"})})]}),u.map((h,y)=>n(a.Tabs.Panel,{value:h.id,children:n(Bu,{control:e,index:y,remove:o,data:r},h.id)},h.id))]})]})};function Gu({data:e,control:t,watch:r}){return n(a.Stack,{children:n(Nu,{control:t,watch:r,data:e})})}function qu({context:e}){const{value:t,set:r}=F(e.instanceData,"config"),i=e.data,{variables:s}=e,o=m.useMemo(()=>v.defaults({},t,In),[t]),{control:l,handleSubmit:u,watch:d,getValues:p,reset:f}=x.useForm({defaultValues:o});m.useEffect(()=>{f(o)},[o]),d(["x_axis","y_axis","reference_lines","color"]);const g=p(),h=m.useMemo(()=>!v.isEqual(g,t),[g,t]);return n(a.Stack,{spacing:"xs",children:c("form",{onSubmit:u(r),children:[c(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[n(a.Text,{children:"Chart Config"}),n(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!h,children:n(k.DeviceFloppy,{size:20})})]}),c(a.Tabs,{defaultValue:"X Axis",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[c(a.Tabs.List,{children:[n(a.Tabs.Tab,{value:"X Axis",children:"X Axis"}),n(a.Tabs.Tab,{value:"Y Axis",children:"Y Axis"}),n(a.Tabs.Tab,{value:"Tooltip",children:"Tooltip"}),n(a.Tabs.Tab,{value:"Style",children:"Style"}),n(a.Tabs.Tab,{value:"Reference Lines",children:"Reference Lines"})]}),n(a.Tabs.Panel,{value:"X Axis",children:n(Ou,{control:l,data:i,watch:d})}),n(a.Tabs.Panel,{value:"Y Axis",children:n(Vu,{control:l,data:i,watch:d})}),n(a.Tabs.Panel,{value:"Tooltip",children:n(Gu,{control:l,data:i,watch:d})}),n(a.Tabs.Panel,{value:"Style",children:c(a.Stack,{spacing:4,children:[n(a.Text,{size:"sm",children:"Color"}),n(x.Controller,{name:"color",control:l,render:({field:y})=>n(De,{...y})})]})}),n(a.Tabs.Panel,{value:"Reference Lines",children:n(Lu,{variables:s,control:l,watch:d})})]})]})})}function Fu(e){return v.omit(e,"variables")}function Wu(e){const{label_formatter:t=Se,...r}=e.y_axis;return{...e,y_axis:{...r,label_formatter:t}}}function ju(e){const t={rotate:0,formatter:{...Ne}},{axisLabel:r=t,...i}=e.x_axis;return{...e,x_axis:{...i,axisLabel:r}}}function Yu(e){const t={x_axis:{axisLabel:{overflow:{x_axis:{width:80,overflow:"truncate",ellipsis:"..."},tooltip:{width:200,overflow:"break",ellipsis:"..."}}}}};return v.defaultsDeep(t,e)}function Ru(e){delete e.config;const{x_axis:t,tooltip:r}=e.x_axis.axisLabel.overflow,i={x_axis:{axisLabel:{overflow:{on_axis:t,in_tooltip:r}}}};return v.defaultsDeep(i,e)}function Qu(e){const t={tooltip:{metrics:[]}};return v.defaultsDeep(t,e)}class Uu extends fe{constructor(){super(...arguments);O(this,"VERSION",7)}configVersions(){this.version(1,r=>({version:1,config:r})),this.version(2,(r,{panelModel:i})=>{const{config:s}=r;return(s.variables||[]).forEach(l=>{i.variables.find(u=>u.name===l.name)||i.addVariable(l)}),{...r,version:2,config:Fu(s)}}),this.version(3,r=>{const{config:i}=r;return{...r,version:3,config:Wu(i)}}),this.version(4,r=>{const{config:i}=r;return{...r,version:4,config:ju(i)}}),this.version(5,r=>{const{config:i}=r;return{...r,version:5,config:Yu(i)}}),this.version(6,r=>{const{config:i}=r;return{...r,version:6,config:Ru(i)}}),this.version(7,r=>{const{config:i}=r;return{...r,version:7,config:Qu(i)}})}}const Xu={displayName:"Boxplot Chart",displayGroup:"ECharts-based charts",migrator:new Uu,name:"boxplot",viewRender:zu,configRender:qu,createConfig(){return{version:7,config:v.cloneDeep(In)}},triggers:[ya]},ka={id:"builtin:button:click-button",displayName:"Click Button",nameRender:Ku,configRender:Zu,payload:[]};function Zu(e){return n(V,{})}function Ku(e){return n(a.Text,{children:"Click this button"})}const En={content:"Button",variant:"filled",color:"blue",size:"xs",compact:!1,horizontal_align:"left",vertical_align:"center"},Ju={left:"flex-start",center:"center",right:"flex-end"},Hu={top:"flex-start",center:"center",bottom:"flex-end"},ed=T.observer(({context:e,instance:t})=>{const r=Fe({vizManager:e.vizManager,instance:t}),i=Ge(r.triggerManager,ka.id),s=Y(),{value:o}=F(e.instanceData,"config"),l=m.useMemo(()=>v.defaultsDeep({},o,En),[o]),{content:u,horizontal_align:d,vertical_align:p,...f}=l,{width:g,height:h}=e.viewport,y=s.payloadForSQL,C=()=>{i.forEach(w=>{r.runInteraction(w.id,{})})};return n(a.Center,{sx:{width:g,height:h,justifyContent:Ju[d],alignItems:Hu[p]},children:n(a.Button,{...f,onClick:C,children:v.template(u)(y)})})}),td=({value:e,onChange:t,label:r})=>{const i=a.useMantineTheme(),s=m.useCallback(l=>()=>t(l),[t]),o=l=>e===l;return c(a.Stack,{spacing:2,children:[n(a.Text,{size:14,sx:{fontWeight:500},children:r}),n(a.Group,{position:"left",spacing:"xs",children:Object.keys(i.colors).map(l=>{const u=i.colors[l][6];return n(a.ColorSwatch,{color:u,onClick:s(l),radius:4,size:26,sx:{cursor:"pointer"},children:o(l)&&n(a.CheckIcon,{width:10,color:"white"})},l)})})]})},nd=a.MANTINE_SIZES.map(e=>({label:e.toUpperCase(),value:e})),rd=({label:e,value:t,onChange:r})=>n(a.Select,{data:nd,label:e,value:t,onChange:r}),id=[{label:"Filled",value:"filled"},{label:"Outline",value:"outline"},{label:"Light",value:"light"},{label:"White",value:"white"},{label:"Default",value:"default"},{label:"Subtle",value:"subtle"},{label:"Gradient",value:"gradient",disabled:!0}],ad=[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}],sd=[{label:"Top",value:"top"},{label:"Center",value:"center"},{label:"Bottom",value:"bottom"}];function od({context:e}){const{value:t,set:r}=F(e.instanceData,"config");e.data;const i=m.useMemo(()=>v.defaultsDeep({},t,En),[t]),s=i;m.useEffect(()=>{!v.isEqual(i,s)&&(console.log("config malformed, resetting to defaults",i,s),r(s))},[i,s]);const{control:o,handleSubmit:l,watch:u,getValues:d,reset:p}=x.useForm({defaultValues:s});m.useEffect(()=>{p(s)},[s]);const f=d(),g=m.useMemo(()=>!v.isEqual(f,i),[f,i]);return u(["content","variant","color","size","compact","horizontal_align","vertical_align"]),c("form",{onSubmit:l(r),children:[c(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[n(a.Text,{children:"Chart Config"}),n(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!g,children:n(k.DeviceFloppy,{size:20})})]}),c(a.Stack,{children:[n(x.Controller,{control:o,name:"content",render:({field:h})=>n(a.TextInput,{label:"Content Template",description:"Filter values & context entries are supported",...h,required:!0})}),n(a.Divider,{mt:"xs",mb:0,label:"Styles",labelPosition:"center",variant:"dashed"}),c(a.SimpleGrid,{cols:2,children:[n(x.Controller,{control:o,name:"variant",render:({field:h})=>n(a.Select,{label:"Variant",data:id,...h})}),n(x.Controller,{control:o,name:"color",render:({field:h})=>n(td,{label:"Theme",...h})})]}),c(a.SimpleGrid,{cols:2,children:[n(x.Controller,{control:o,name:"size",render:({field:h})=>n(rd,{label:"Size",...h})}),n(x.Controller,{control:o,name:"compact",render:({field:h})=>n(a.Checkbox,{label:"Compact",checked:h.value,onChange:y=>h.onChange(y.currentTarget.checked),mt:26})})]}),c(a.SimpleGrid,{cols:2,children:[n(x.Controller,{control:o,name:"horizontal_align",render:({field:h})=>n(a.Select,{label:"Horizontal Alignment",data:ad,...h})}),n(x.Controller,{control:o,name:"vertical_align",render:({field:h})=>n(a.Select,{label:"Vertical Alignment",data:sd,...h})})]})]})]})}class ld extends fe{constructor(){super(...arguments);O(this,"VERSION",2)}configVersions(){this.version(1,r=>({version:1,config:r})),this.version(2,r=>{const{horizontal_align:i="left",vertical_align:s="center",...o}=r.config;return{...r,version:2,config:{...o,horizontal_align:i,vertical_align:s}}})}}const ud={displayName:"Button",displayGroup:"Others",migrator:new ld,name:"button",viewRender:ed,configRender:od,createConfig(){return{version:2,config:v.cloneDeep(En)}},triggers:[ka]},Ln={id:"builtin:echarts:click-echart:series",displayName:"Click Chart Series",nameRender:cd,configRender:dd,payload:[{name:"seriesType",description:"'line' | 'scatter' | 'bar'",valueType:"string"},{name:"componentType",description:"'series'",valueType:"string"},{name:"name",description:"Name of the series clicked",valueType:"string"},{name:"color",description:"Color",valueType:"string"},{name:"value",description:"String-typed number, or series' actual value",valueType:"string"},{name:"rowData",description:"Data of the row",valueType:"object"}]};function dd(e){return n(V,{})}function cd(e){return n(a.Text,{children:"Click chart's series"})}const ht={x_axis_scroll:!1,y_axis_scroll:!1,x_axis_slider:!1,y_axis_slider:!1},Pn={regressions:[],series:[],stats:{templates:{bottom:"",top:""}},x_axis:{type:"category",axisLabel:{rotate:0,formatter:{...Ne},overflow:Be}},x_axis_data_key:"",x_axis_name:"",y_axes:[{min:"",max:"",name:"Y Axis",show:!0,position:"left",nameAlignment:"center",label_formatter:Se}],reference_lines:[],reference_areas:[],dataZoom:ht};function On(e){const t=[];return e.x_axis_scroll&&t.push({type:"inside",xAxisIndex:[0],filterMode:"none",minSpan:1}),e.y_axis_scroll&&t.push({type:"inside",yAxisIndex:[0],filterMode:"none",minSpan:1}),e.x_axis_slider&&t.push({type:"slider",xAxisIndex:[0],filterMode:"none",bottom:"auto",top:0,height:15,moveHandleSize:0,showDataShadow:!1,minSpan:1}),t}function pd(e){const t=e.y_axes.some(s=>!!s.name);let r=15;t&&(r+=20),e.dataZoom.x_axis_slider&&(r+=20);let i=5;return e.x_axis_name&&(i+=15),e.series.some(s=>!s.hide_in_legend)&&(i+=20),{top:r,right:15,bottom:i,left:20,containLabel:!0}}function hd(e){return e!=="line"?{}:{itemStyle:{opacity:0}}}function fd(e){switch(e){case"line":return;case"bar":return"roundRect";case"scatter":return"circle"}}function gd(e){const t={show:!0,bottom:0,left:"center",type:"scroll"};return t.data=e.filter(r=>!r.hide_in_legend).map(({name:r,type:i})=>({name:r,icon:fd(i),...hd(i)})),t}function Ut(e,t){switch(e.config.method){case"linear":return[...Ze.regressionLinear()(t)];case"exponential":return[...Ze.regressionExp()(t)];case"logarithmic":return[...Ze.regressionLog()(t)];case"polynomial":return[...Ze.regressionPoly().order(e.config.order)(t)];default:return[]}}function md(e,t,r,i){const{transform:s,plot:o}=e,l={...o,name:t,data:Ut(s,i),showSymbol:!1,tooltip:{show:!1},smooth:!1,custom:{}};return r&&(l.custom={type:"regression-line",targetSeries:r}),l}function bd({regressions:e=[],x_axis_data_key:t},r){const i=[];if(r.length===0)return i;function s(o,l,u,d){const p=md(o,l,u,d);i.push(p)}return e.forEach(o=>{const{name:l,group_by_key:u}=o;if(!u||u===t){const p=r.map((f,g)=>[g,Number(f[o.y_axis_data_key])]);s(o,l,"",p);return}const d=v.groupBy(r,u);Object.entries(d).forEach(([p,f])=>{const g=f.map((y,C)=>[C,Number(y[o.y_axis_data_key])]);s(o,p,p,g)})}),i}function yd(e,t){return e.map(r=>({name:"",type:"line",hide_in_legend:!0,data:[],markArea:{itemStyle:{color:r.color},data:[[{yAxis:t[r.y_keys.upper]},{yAxis:t[r.y_keys.lower]}]],silent:!0}}))}function vd(e,t,r,i){return e.map(s=>{const o=s.orientation==="horizontal",l=o?"yAxis":"xAxis",u=o?"insideEndTop":"end";return{name:s.name,type:"line",hide_in_legend:!s.show_in_legend,yAxisIndex:s.yAxisIndex,data:[],lineStyle:s.lineStyle,markLine:{data:[{name:s.name,[l]:Number(r[s.variable_key])}],silent:!0,symbol:["none","none"],lineStyle:s.lineStyle,label:{formatter:function(){return s.template?Rt(s.template,t,i):""},position:u}}}})}function xd({type:e,...t},r,i,s){if(!e)return 10;if(e==="static"){const{size:u}=t;return u}const{func_content:o}=t,l=v.keyBy(r,i);return(u,d)=>{let p;d.name?p=l[d.name]:p=r[d.dataIndex];try{return new Function(`return ${o}`)()({rowData:p,params:d,variables:s},{lodash:v,interpolate:ot.interpolate})}catch(f){return console.error(`[getEchartsSymbolSize] failed parsing custom function, error: ${f.message}`),10}}}function Vn(e,t,r){return e.map(i=>[i[t],i[r]])}function Cd(e,t,r,i){const s=Vn(t,r,i);return v.unionBy(s,e,0)}function wd({dataTemplate:e,data:t,x_axis_data_key:r,y_axis_data_key:i,valueTypedXAxis:s}){return s?Cd(e,t,r,i):t.map(o=>o[i])}function _d({dataTemplate:e,data:t,aggregation_on_value:r,x_axis_data_key:i,y_axis_data_key:s,valueTypedXAxis:o}){if(!r||r.type==="none")return wd({dataTemplate:e,data:t,x_axis_data_key:i,y_axis_data_key:s,valueTypedXAxis:o});const l=Vn(t,i,s),u=v.groupBy(l,"0");return e.map(([p])=>{const f=u[p],g=Tt(f,"1",r);return[p,g]})}function Sd({group_by_key:e,data:t,x_axis_data_key:r,y_axis_data_key:i}){const s=v.groupBy(t,e);return Object.entries(s).forEach(([o,l])=>{s[o]=Vn(l,r,i)}),s}function Td({x_axis_data_key:e,x_axis:t},{y_axis_data_key:r,yAxisIndex:i,label_position:s,name:o,group_by_key:l,aggregation_on_value:u,stack:d,color:p,display_name_on_line:f,symbolSize:g,hide_in_legend:h,...y},C,w,S,I){const $=t.type!=="category",N={label:{show:!!s,position:s,formatter:I[i??"default"]},name:o,xAxisId:"main-x-axis",yAxisIndex:i,stack:d,color:p,symbolSize:xd(g,w,e,S),hide_in_legend:h,labelLayout:{hideOverlap:!0},...y};if(f&&(N.endLabel={show:!0,formatter:o,offset:[-12,12],align:"right"}),!l||l===e)return N.data=_d({dataTemplate:C,data:w,aggregation_on_value:u,x_axis_data_key:e,y_axis_data_key:r,valueTypedXAxis:$}),N;const B=Sd({group_by_key:l,data:w,x_axis_data_key:e,y_axis_data_key:r});return Object.entries(B).map(([P,z])=>{const A=v.cloneDeep(N);return A.name=P,A.color=void 0,A.data=z,A})}function kd(e,t,r,i,s,o){const l=t.map(d=>[d,0]);return e.series.map(d=>Td(e,d,l,r,o,i)).flat().concat(vd(e.reference_lines,s,o,r)).concat(yd(e.reference_areas,o))}function Dd(e,t){const r=e.find(o=>o.axisDim==="x"&&o.axisId==="main-x-axis");if(!r)return"";const{axisValue:i,axisIndex:s}=r;return dt(t.x_axis.axisLabel.formatter)(i,s)}function Id(e,t,r){const i=t.reduce((s,{yAxisIndex:o,name:l})=>(s[l]=o,s),{});return{trigger:"axis",confine:!0,formatter:function(s){const o=Array.isArray(s)?s:[s];if(o.length===0)return"";const l=o.map(({seriesName:p,marker:f,value:g})=>{if(Array.isArray(g)&&g.length===2&&(g=g[1]),!p)return g;const h=i[p],y=r[h]??r.default;return`
|
|
167
167
|
<tr>
|
|
168
168
|
<td>${f}</td>
|
|
169
169
|
<th style="text-align: right; padding: 0 1em;">${p}</th>
|