@devtable/dashboard 9.19.0 → 9.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3018,7 +3018,7 @@ class ea {
3018
3018
  }), this.instanceRegistry.clear(), this.factoryRegistry.clear();
3019
3019
  }
3020
3020
  }
3021
- const el = "@devtable/dashboard", ta = "9.19.0", tl = "Apache-2.0", nl = {
3021
+ const el = "@devtable/dashboard", ta = "9.19.2", tl = "Apache-2.0", nl = {
3022
3022
  access: "public",
3023
3023
  registry: "https://registry.npmjs.org/"
3024
3024
  }, rl = [
@@ -116,7 +116,7 @@ Check the top-level render call using <`+E+">.")}return M}}function fo(w,M){{if(
116
116
  SELECT count(*) AS total
117
117
  FROM ${n}.${t}
118
118
  `}})).actions(e=>({setPage(t){e.page=t},resetPage(){e.page=1},setLimit(t){e.limit=t}})).actions(e=>({afterCreate(){y.addDisposer(e,ie.reaction(()=>e.keywordString,e.resetPage,{fireImmediately:!1,delay:0})),y.addDisposer(e,ie.reaction(()=>e.limit,e.resetPage,{fireImmediately:!1,delay:0}))}})),cl=y.types.model("DataSourceModel",{id:y.types.string,type:y.types.enumeration("DataSourceType",[he.HTTP,he.MySQL,he.Postgresql]),key:y.types.string,config:y.types.frozen(),tables:y.types.optional(ll,{}),columns:y.types.optional(sl,{}),tableData:y.types.optional(ul,{}),indexes:y.types.optional(ol,{}),table_schema:y.types.optional(y.types.string,""),table_name:y.types.optional(y.types.string,"")}).volatile(()=>({controllers:{tables:new AbortController,columns:new AbortController,indexes:new AbortController,tableData:new AbortController}})).actions(e=>({setKeywords(t,n){e.table_schema=t,e.table_name=n}})).actions(e=>({initKeywords(){if(e.tables.empty)return;const t=Object.keys(e.tables.data)[0],n=e.tables.data[t][0].table_name;e.setKeywords(t,n)}})).actions(e=>{const t=y.flow(function*(){var n;(n=e.controllers.tables)==null||n.abort(),e.controllers.tables=new AbortController,e.tables.state="loading";try{const i=yield*y.toGenerator(Ee.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(!Ze.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:y.flow(function*(){var n;(n=e.controllers.columns)==null||n.abort(),e.controllers.columns=new AbortController,e.columns.state="loading";try{e.columns.data=yield*y.toGenerator(Ee.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(Ze.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:y.flow(function*(){var n;(n=e.controllers.indexes)==null||n.abort(),e.controllers.indexes=new AbortController,e.indexes.state="loading";try{e.indexes.data=yield*y.toGenerator(Ee.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(Ze.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:y.flow(function*(){var i;(i=e.controllers.tableData)==null||i.abort(),e.controllers.tableData=new AbortController;const n=e.tableData;n.state="loading";try{n.data=yield*y.toGenerator(Ee.query(e.controllers.tableData.signal)({type:e.type,key:e.key,query:n.sql},{}));const[{total:s}]=yield*y.toGenerator(Ee.query(e.controllers.tableData.signal)({type:e.type,key:e.key,query:n.countSql},{}));n.total=Number(s),n.state="idle",n.error=null}catch(s){if(Ze.isCancel(s))n.state="idle",n.error=null;else{n.data=[];const o=v.get(s,"message","unkown error");n.error=v.get(s,"response.data.detail.message",o),n.state="error"}}})}}).actions(e=>({afterCreate(){y.addDisposer(e,ie.reaction(()=>e.columns.sql,e.loadColumns,{fireImmediately:!1,delay:500}))}})).actions(e=>({afterCreate(){y.addDisposer(e,ie.reaction(()=>e.indexes.sql,e.loadIndexes,{fireImmediately:!1,delay:500})),y.addDisposer(e,ie.reaction(()=>e.tableData.sql,e.loadTableData,{fireImmediately:!1,delay:0}))}})),dl=y.types.model("DataSourcesModel",{list:y.types.optional(y.types.array(cl),[])}).views(e=>({find({type:t,key:n}){return e.list.find(i=>i.key===n&&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 jt(e){return{label:e,value:e,_type:"ACTION",_action_type:e,Icon:null,children:null}}function pl(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 hl=y.types.model("EditorModel",{path:y.types.optional(y.types.frozen(),[]),settings_open:y.types.optional(y.types.boolean,!1)}).views(e=>({get navOptions(){const{content:t}=y.getRoot(e),{filters:n,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:[...n.options,jt("_Add_A_Filter_")],_type:"GROUP"},{label:"SQL Snippets",value:"_SQL_SNIPPETS_",Icon:L.IconCopy,children:[...s.options,jt("_Add_A_SQL_SNIPPET_")],_type:"GROUP"},{label:"Queries",value:"_QUERIES_",Icon:L.IconDatabase,children:[...o.options,jt("_Add_A_QUERY_")],_type:"GROUP"},{label:"Views",value:"_VIEWS_",Icon:L.IconBoxMultiple,children:[...i.editorOptions,jt("_Add_A_VIEW_")],_type:"GROUP"}]},isOptionActive(t,n){return t.length===0?!1:t[t.length-1]===n.value},isOptionOpened(t){const{path:n}=e;return n.length===0||!t.children||t.children.length===0?!1:n.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 n=pl(t);n&&e.setPath(n)}})),fl=y.types.model("MockContextModel",{current:y.types.optional(y.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,n){e.current[t]=n}})),gl=y.types.model("VariableModel",{name:y.types.string,size:y.types.string,weight:y.types.string,color:y.types.union(y.types.model({type:y.types.literal("static"),staticColor:y.types.string}),y.types.model({type:y.types.literal("continuous"),valueRange:y.types.array(y.types.number),colorRange:y.types.array(y.types.string)}),y.types.model({type:y.types.literal("piecewise")})),formatter:y.types.model({output:y.types.enumeration("Output",["number","percent"]),average:y.types.optional(y.types.boolean,!1),mantissa:y.types.number,trimMantissa:y.types.optional(y.types.boolean,!1)}),data_field:y.types.string,aggregation:y.types.union(y.types.model({type:y.types.enumeration(["none","sum","mean","median","min","max","CV","std"]),config:y.types.frozen()}),y.types.model({type:y.types.literal("quantile"),config:y.types.model({p:y.types.number})}))}).views(e=>({get json(){const{name:t,size:n,weight:i,color:s,formatter:o,data_field:l,aggregation:u}=e;return v.cloneDeep({name:t,size:n,color:s,weight:i,formatter:o,data_field:l,aggregation:u})}}));class ml{constructor(t){V(this,"origin");V(this,"copy");this.origin=t,this.copy=y.clone(t),ie.makeAutoObservable(this,{},{autoBind:!0,deep:!1})}get changed(){return!v.isEqual(y.getSnapshot(this.origin),y.getSnapshot(this.copy))}commit(){y.applySnapshot(this.origin,y.getSnapshot(this.copy))}update(t){y.applySnapshot(this.copy,t)}}const yl=e=>new ml(e);class bl{constructor(){V(this,"migrations",[])}version(t,n){return this.migrations.push({version:t,handler:n}),this}run(t,n,i){var l;if(t.from===t.to)return n;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,c)=>c.handler(u,i),n)}}class me extends bl{constructor(){super(),this.configVersions()}version(t,n){return super.version(t,(i,s)=>({version:t,...n(i,s)}))}async migrate({configData:t,panelModel:n}){const i=await t.getItem(null),s=v.get(i,"version",0),o=this.run({from:s,to:this.VERSION},i,{panelModel:n});await t.setItem(null,o)}async needMigration({configData:t}){const n=await t.getItem(null);return v.get(n,"version",0)<this.VERSION}}var qe=(e=>(e.string="string",e.number="number",e.eloc="eloc",e.percentage="percentage",e.custom="custom",e))(qe||{});const ca=["function text({ value }) {"," // your code goes here"," return value","}"].join(`
119
- `),In={columns:[],fontSize:"14px",highlightOnHover:!0,horizontalSpacing:"14px",id_field:"",striped:!0,use_raw_columns:!0,verticalSpacing:"14px"};class pt{constructor(t,n){this.root=t,this.path=n}async deleteItem(t){t===null&&await this.root.deleteItem(this.path);const n=await this.root.getItem(this.path)||{};await this.root.setItem(this.path,v.omit(n,t))}async getItem(t){const n=await this.root.getItem(this.path);return t===null?n:v.get(n,t)}async setItem(t,n){if(t===null)await this.root.setItem(this.path,n);else{const i=await this.root.getItem(this.path)||{};await this.root.setItem(this.path,{...i,[t]:n})}return await this.getItem(t)}watchItem(t,n,i){return t===null?this.root.watchItem(this.path,(s,o)=>{n(s,o)},i):this.root.watchItem(this.path,(s,o)=>{const l=v.get(s,t),u=v.get(o,t);l!==u&&n(l,u)},i)}}class Mn{constructor(t,n,i){V(this,"attachmentStorage");this.instance=t,this.attachmentKey=n,this.constructInstance=i,this.attachmentStorage=new pt(t.instanceData,n)}async getInstance(t){if(await this.attachmentStorage.getItem(t))return this.constructInstance(new pt(this.attachmentStorage,t))}async create(t,n){return await this.attachmentStorage.setItem(t,n),this.constructInstance(new pt(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(n=>this.constructInstance(new pt(this.attachmentStorage,n.id))))}}class da{constructor(t){V(this,"rootRef");this.rootRef=ie.observable({current:t})}async deleteItem(t){ie.runInAction(()=>{v.unset(this.rootRef.current,[t])})}getItem(t){const n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?ie.toJS(this.rootRef.current):v.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(v.isObject(n))ie.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else ie.runInAction(()=>{v.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,i){return ie.reaction(()=>this.getValueFromRoot(t),(s,o)=>{n(s,o)},{requiresObservable:!0,fireImmediately:v.get(i,"fireImmediately",!1)})}}class vl{constructor(){V(this,"channels",new Map);V(this,"globalChannel",new xi)}getChannel(t){const n=this.channels.get(t);if(n)return n;const i=new xi;return this.channels.set(t,i),i}}class xl{constructor(t){V(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 n=this.instances.get(t.id);if(n)return n;const i={id:t.id,name:t.viz.type,type:t.viz.type,messageChannels:new vl,instanceData:new da(t.viz.conf)};return this.instances.set(t.id,i),i}}function pa(e,t,n,i){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new da({}),colorPalette:{getColor(){return()=>""}},data:t,variables:i}}const Cl=e=>{const{panel:t,vizManager:n,data:i,variables:s}=e,o=n.resolveComponent(t.viz.type),l=n.getOrCreateInstance(t),u={...pa(l,i,n,s),viewport:{width:t.layout.w,height:t.layout.h}},c=o.viewRender;return r(c,{context:u,instance:l,...v.omit(e,["panel","vizManager","data"])})},wl=e=>{const{vizManager:t,panel:n,panelInfoEditor:i,data:s,variables:o}=e,l=t.resolveComponent(n.viz.type),u=t.getOrCreateInstance(n),c={...pa(u,s,t,o),panelInfoEditor:i},p=l.configRender;return r(p,{context:c,instance:u,...v.omit(e,["panel","vizManager","data","panelInfoEditor"])})},ha=(e,t)=>{const n=Re.bezier(e),i=Re.bezier(t);return function(s){return s<50?n(s*2/100).hex():i((s-50)*2/100).hex()}},Yt=e=>{const t=Re.bezier(e);return function(n){return t(n/100).hex()}},_l={type:"interpolation",displayName:"Red / Green",getColor:ha(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},Sl={type:"interpolation",displayName:"Yellow / Blue",getColor:ha(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},Tl={type:"interpolation",displayName:"Red",getColor:Yt(["#fff7f1","darkred"]),name:"red",category:"sequential"},Dl={type:"interpolation",displayName:"Green",getColor:Yt(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},kl={type:"interpolation",displayName:"Blue",getColor:Yt(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},Il={type:"interpolation",displayName:"Orange",getColor:Yt(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class Ml{constructor(t){V(this,"symbol");this.symbol=Symbol(t)}}function Qe(e){return new Ml(e)}class $n{constructor(){V(this,"parent");V(this,"factoryRegistry",new Map);V(this,"instanceRegistry",new Map)}createScoped(){const t=new $n;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 n=this.factoryRegistry.get(t.symbol);if(n){const i=n(this);return this.instanceRegistry.set(t.symbol,i),i}if(this.parent)return this.parent.get(t)}provideFactory(t,n){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,n),this}provideValue(t,n){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,()=>n),this}dispose(){this.instanceRegistry.forEach(t=>{const n=v.get(t,"dispose");v.isFunction(n)&&n.bind(t)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}const fa="@devtable/dashboard",An="9.19.0",ga="Apache-2.0",ma={access:"public",registry:"https://registry.npmjs.org/"},ya=["dist"],ba="./dist/dashboard.umd.js",va="./dist/dashboard.es.js",xa="./dist/index.d.ts",Ca={".":{import:"./dist/dashboard.es.js",require:"./dist/dashboard.umd.js"},"./dist/style.css":{import:"./dist/style.css",require:"./dist/style.css"}},wa={"dev-build":"tsc && vite build --watch",build:"tsc && vite build",preview:"vite preview",test:"vitest","test:ui":"vitest --ui",coverage:"vitest --coverage"},_a={"@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"},Sa={"@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"},Ta={"@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"},$l=Object.freeze(Object.defineProperty({__proto__:null,default:{name:fa,version:An,license:ga,publishConfig:ma,files:ya,main:ba,module:va,types:xa,exports:Ca,scripts:wa,dependencies:_a,devDependencies:Sa,peerDependencies:Ta},dependencies:_a,devDependencies:Sa,exports:Ca,files:ya,license:ga,main:ba,module:va,name:fa,peerDependencies:Ta,publishConfig:ma,scripts:wa,types:xa,version:An},Symbol.toStringTag,{value:"Module"}));class Al{constructor(t){V(this,"staticColors",new Map);V(this,"interpolations",new Map);t.installedPlugins.forEach(n=>{n.manifest.color.forEach(i=>{this.register(i)})})}getStaticColors(){return Array.from(this.staticColors.values())}register(t){const n=this.encodeColor(t);t.type==="single"?(this.staticColors.has(n)&&console.warn(`the color '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`),this.staticColors.set(n,t)):t.type==="interpolation"&&(this.interpolations.has(n)&&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(n,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 zl{constructor(){V(this,"plugins",new Map);V(this,"vizComponents",new Map);V(this,"factory",{viz:t=>{const n=this.vizComponents.get(t);if(n)return n;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 n of t.manifest.viz){if(this.vizComponents.has(n.name))throw new Error(`Viz Component (${n.name}) has been installed before`);this.vizComponents.set(n.name,n)}}get installedPlugins(){return Array.from(this.plugins.values())}}const W=(e,t)=>{const[n,{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:n,value:s,set:l}},zn={x_axis_data_key:"",y_axis_data_key:"",z_axis_data_key:"",xAxis3D:{type:"value",name:"X Axis Name"},yAxis3D:{type:"value",name:"Y Axis Name"},zAxis3D:{type:"value",name:"Z Axis Name"}};function O(e){const[t,n]=e.split(".");return{queryID:t,columnKey:n}}function Ue(e,t){var s;const{queryID:n,columnKey:i}=O(t);return n?i?((s=e[n])==null?void 0:s.map(o=>o[i]))??[]:e[n]:[]}function kt(e,t){const{queryID:n}=O(t);return n?e[n]:[]}function El(e){return Object.values(e)[0]}function Rt(e,t){const{queryID:n,columnKey:i}=O(t);return e[i]}oe.use([G.GridComponent,G.VisualMapComponent,G.LegendComponent,G.TooltipComponent,Ae.CanvasRenderer]);function Ll({context:e}){const{value:t}=W(e.instanceData,"config"),n=e.data,{width:i,height:s}=e.viewport,{x_axis_data_key:o,y_axis_data_key:l,z_axis_data_key:u,xAxis3D:c,yAxis3D:p,zAxis3D:f}=v.defaults({},t,zn),h=m.useMemo(()=>kt(n,o),[n,o]),{x:g,y:b,z:_}=m.useMemo(()=>({x:O(o),y:O(l),z:O(u)}),[o,l,u]),{min:C,max:S}=m.useMemo(()=>{const $=v.minBy(h,N=>N[_.columnKey]),q=v.maxBy(h,N=>N[_.columnKey]);return{min:v.get($,_.columnKey),max:v.get(q,_.columnKey)}},[h,_]),I={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:C,max:S,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:c,yAxis3D:p,zAxis3D:f,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:h.map($=>[$[g.columnKey],$[b.columnKey],$[_.columnKey]])}]};return t?r(ze,{echarts:oe,option:I,style:{width:i,height:s},notMerge:!0,theme:"merico-light"}):null}const Da=m.createContext({panel:null,data:{},loading:!1,errors:[]}),En=Da.Provider;function Te(){const e=m.useContext(Da);if(!e.panel)throw new Error("Please use PanelContextProvider");return e}const Pl={fullScreenPanelID:"",setFullScreenPanelID:v.noop},Ln=m.createContext(Pl);function ka(){const e=m.useContext(Ln);if(!e)throw new Error("Please use FullScreenPanelContext.Provider");return e}const j=T.observer(m.forwardRef(({label:e,required:t,value:n,onChange:i,clearable:s=!1,sx:o,...l},u)=>{const{panel:c}=Te(),p=m.useMemo(()=>{const f=[...c.dataFieldOptions];return s&&f.unshift({label:"unset",value:"",group:""}),f},[c.dataFieldOptions]);return r(a.Select,{ref:u,label:e,data:p,value:n,onChange:i,required:t,sx:o,...l})}));function Ol({context:e}){const{value:t,set:n}=W(e.instanceData,"config"),i=v.defaults({},t,zn),{control:s,handleSubmit:o,reset:l}=x.useForm({defaultValues:i});return m.useEffect(()=>{l(i)},[t]),t?r(a.Stack,{spacing:"xs",children:d("form",{onSubmit:o(n),children:[r(a.Text,{children:"X Axis"}),d(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r(x.Controller,{name:"x_axis_data_key",control:s,render:({field:u})=>r(j,{label:"Data Field",required:!0,...u})}),r(x.Controller,{name:"xAxis3D.name",control:s,render:({field:u})=>r(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),r(a.Text,{mt:"lg",children:"Y Axis"}),d(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r(x.Controller,{name:"y_axis_data_key",control:s,render:({field:u})=>r(j,{label:"Data Field",required:!0,...u})}),r(x.Controller,{name:"yAxis3D.name",control:s,render:({field:u})=>r(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),r(a.Text,{mt:"lg",children:"Z Axis"}),d(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r(x.Controller,{name:"z_axis_data_key",control:s,render:({field:u})=>r(j,{label:"Data Field",required:!0,...u})}),r(x.Controller,{name:"zAxis3D.name",control:s,render:({field:u})=>r(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),r(a.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:d(a.Button,{color:"blue",type:"submit",children:[r(D.DeviceFloppy,{size:20}),r(a.Text,{ml:"md",children:"Save"})]})})]})}):null}function Vl(e,{panelModel:t}){try{const n=t.queryIDs[0];if(!n)throw new Error("cannot migrate when queryID is empty");const i=c=>c&&`${n}.${c}`,{x_axis_data_key:s,y_axis_data_key:o,z_axis_data_key:l,...u}=e;return{...u,x_axis_data_key:i(s),y_axis_data_key:i(o),z_axis_data_key:i(l)}}catch(n){throw console.error("[Migration failed]",n),n}}class Bl extends me{constructor(){super(...arguments);V(this,"VERSION",2)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,i)=>{const{config:s}=n;return{...n,version:2,config:Vl(s,i)}})}}const ql={displayName:"Bar Chart (3D)",displayGroup:"ECharts-based charts",migrator:new Bl,name:"bar-3d",viewRender:Ll,configRender:Ol,createConfig(){return{version:2,config:v.cloneDeep(zn)}}};class Le 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 n=()=>{this.setState({error:null})};return d(a.Box,{children:[r(a.Text,{size:"xs",children:(t=this.state.error)==null?void 0:t.message}),r(a.Button,{variant:"subtle",size:"xs",mx:"auto",compact:!0,sx:{display:"block"},onClick:n,children:"Retry"})]})}return this.props.children}}const ke={mantissa:0,output:"number",trimMantissa:!1,average:!1};function Nl({value:e,onChange:t},n){const i=u=>{t({...e,output:u})},s=u=>{const c=u===0?!1:e.trimMantissa;t({...e,mantissa:u,trimMantissa:c})},o=u=>{t({...e,trimMantissa:u.currentTarget.checked})},l=u=>{t({...e,average:u.currentTarget.checked})};return d(a.Stack,{ref:n,children:[d(a.Group,{grow:!0,children:[r(a.Select,{label:"Format",data:[{label:"1234",value:"number"},{label:"99%",value:"percent"}],value:e.output,onChange:i,sx:{flexGrow:1}}),r(a.Switch,{label:d(a.Stack,{spacing:0,children:[r(a.Text,{children:"Average"}),r(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"}}})]}),d(a.Group,{grow:!0,children:[r(a.NumberInput,{label:"Mantissa",defaultValue:0,min:0,step:1,max:4,value:e.mantissa,onChange:s}),r(a.Switch,{label:"Trim mantissa",checked:e.trimMantissa,onChange:o,disabled:e.mantissa===0,styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"}}})]}),d(a.Stack,{spacing:0,children:[r(a.Text,{weight:"bold",children:"Preview"}),r(Le,{children:d(a.Group,{position:"apart",children:[d(a.Text,{size:12,color:"gray",children:["123456789 ",r(D.ArrowRight,{size:9})," ",ee(123456789).format(e)]}),d(a.Text,{size:12,color:"gray",children:["1234 ",r(D.ArrowRight,{size:9})," ",ee(1234).format(e)]}),d(a.Text,{size:12,color:"gray",children:["0.1234 ",r(D.ArrowRight,{size:9})," ",ee(.1234).format(e)]})]})})]})]})}const Ne=m.forwardRef(Nl),Fe={enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
119
+ `),In={columns:[],fontSize:"14px",highlightOnHover:!0,horizontalSpacing:"14px",id_field:"",striped:!0,use_raw_columns:!0,verticalSpacing:"14px"};class pt{constructor(t,n){this.root=t,this.path=n}async deleteItem(t){t===null&&await this.root.deleteItem(this.path);const n=await this.root.getItem(this.path)||{};await this.root.setItem(this.path,v.omit(n,t))}async getItem(t){const n=await this.root.getItem(this.path);return t===null?n:v.get(n,t)}async setItem(t,n){if(t===null)await this.root.setItem(this.path,n);else{const i=await this.root.getItem(this.path)||{};await this.root.setItem(this.path,{...i,[t]:n})}return await this.getItem(t)}watchItem(t,n,i){return t===null?this.root.watchItem(this.path,(s,o)=>{n(s,o)},i):this.root.watchItem(this.path,(s,o)=>{const l=v.get(s,t),u=v.get(o,t);l!==u&&n(l,u)},i)}}class Mn{constructor(t,n,i){V(this,"attachmentStorage");this.instance=t,this.attachmentKey=n,this.constructInstance=i,this.attachmentStorage=new pt(t.instanceData,n)}async getInstance(t){if(await this.attachmentStorage.getItem(t))return this.constructInstance(new pt(this.attachmentStorage,t))}async create(t,n){return await this.attachmentStorage.setItem(t,n),this.constructInstance(new pt(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(n=>this.constructInstance(new pt(this.attachmentStorage,n.id))))}}class da{constructor(t){V(this,"rootRef");this.rootRef=ie.observable({current:t})}async deleteItem(t){ie.runInAction(()=>{v.unset(this.rootRef.current,[t])})}getItem(t){const n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?ie.toJS(this.rootRef.current):v.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(v.isObject(n))ie.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else ie.runInAction(()=>{v.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,i){return ie.reaction(()=>this.getValueFromRoot(t),(s,o)=>{n(s,o)},{requiresObservable:!0,fireImmediately:v.get(i,"fireImmediately",!1)})}}class vl{constructor(){V(this,"channels",new Map);V(this,"globalChannel",new xi)}getChannel(t){const n=this.channels.get(t);if(n)return n;const i=new xi;return this.channels.set(t,i),i}}class xl{constructor(t){V(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 n=this.instances.get(t.id);if(n)return n;const i={id:t.id,name:t.viz.type,type:t.viz.type,messageChannels:new vl,instanceData:new da(t.viz.conf)};return this.instances.set(t.id,i),i}}function pa(e,t,n,i){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new da({}),colorPalette:{getColor(){return()=>""}},data:t,variables:i}}const Cl=e=>{const{panel:t,vizManager:n,data:i,variables:s}=e,o=n.resolveComponent(t.viz.type),l=n.getOrCreateInstance(t),u={...pa(l,i,n,s),viewport:{width:t.layout.w,height:t.layout.h}},c=o.viewRender;return r(c,{context:u,instance:l,...v.omit(e,["panel","vizManager","data"])})},wl=e=>{const{vizManager:t,panel:n,panelInfoEditor:i,data:s,variables:o}=e,l=t.resolveComponent(n.viz.type),u=t.getOrCreateInstance(n),c={...pa(u,s,t,o),panelInfoEditor:i},p=l.configRender;return r(p,{context:c,instance:u,...v.omit(e,["panel","vizManager","data","panelInfoEditor"])})},ha=(e,t)=>{const n=Re.bezier(e),i=Re.bezier(t);return function(s){return s<50?n(s*2/100).hex():i((s-50)*2/100).hex()}},Yt=e=>{const t=Re.bezier(e);return function(n){return t(n/100).hex()}},_l={type:"interpolation",displayName:"Red / Green",getColor:ha(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},Sl={type:"interpolation",displayName:"Yellow / Blue",getColor:ha(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},Tl={type:"interpolation",displayName:"Red",getColor:Yt(["#fff7f1","darkred"]),name:"red",category:"sequential"},Dl={type:"interpolation",displayName:"Green",getColor:Yt(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},kl={type:"interpolation",displayName:"Blue",getColor:Yt(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},Il={type:"interpolation",displayName:"Orange",getColor:Yt(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"};class Ml{constructor(t){V(this,"symbol");this.symbol=Symbol(t)}}function Qe(e){return new Ml(e)}class $n{constructor(){V(this,"parent");V(this,"factoryRegistry",new Map);V(this,"instanceRegistry",new Map)}createScoped(){const t=new $n;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 n=this.factoryRegistry.get(t.symbol);if(n){const i=n(this);return this.instanceRegistry.set(t.symbol,i),i}if(this.parent)return this.parent.get(t)}provideFactory(t,n){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,n),this}provideValue(t,n){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,()=>n),this}dispose(){this.instanceRegistry.forEach(t=>{const n=v.get(t,"dispose");v.isFunction(n)&&n.bind(t)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}const fa="@devtable/dashboard",An="9.19.2",ga="Apache-2.0",ma={access:"public",registry:"https://registry.npmjs.org/"},ya=["dist"],ba="./dist/dashboard.umd.js",va="./dist/dashboard.es.js",xa="./dist/index.d.ts",Ca={".":{import:"./dist/dashboard.es.js",require:"./dist/dashboard.umd.js"},"./dist/style.css":{import:"./dist/style.css",require:"./dist/style.css"}},wa={"dev-build":"tsc && vite build --watch",build:"tsc && vite build",preview:"vite preview",test:"vitest","test:ui":"vitest --ui",coverage:"vitest --coverage"},_a={"@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"},Sa={"@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"},Ta={"@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"},$l=Object.freeze(Object.defineProperty({__proto__:null,default:{name:fa,version:An,license:ga,publishConfig:ma,files:ya,main:ba,module:va,types:xa,exports:Ca,scripts:wa,dependencies:_a,devDependencies:Sa,peerDependencies:Ta},dependencies:_a,devDependencies:Sa,exports:Ca,files:ya,license:ga,main:ba,module:va,name:fa,peerDependencies:Ta,publishConfig:ma,scripts:wa,types:xa,version:An},Symbol.toStringTag,{value:"Module"}));class Al{constructor(t){V(this,"staticColors",new Map);V(this,"interpolations",new Map);t.installedPlugins.forEach(n=>{n.manifest.color.forEach(i=>{this.register(i)})})}getStaticColors(){return Array.from(this.staticColors.values())}register(t){const n=this.encodeColor(t);t.type==="single"?(this.staticColors.has(n)&&console.warn(`the color '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`),this.staticColors.set(n,t)):t.type==="interpolation"&&(this.interpolations.has(n)&&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(n,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 zl{constructor(){V(this,"plugins",new Map);V(this,"vizComponents",new Map);V(this,"factory",{viz:t=>{const n=this.vizComponents.get(t);if(n)return n;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 n of t.manifest.viz){if(this.vizComponents.has(n.name))throw new Error(`Viz Component (${n.name}) has been installed before`);this.vizComponents.set(n.name,n)}}get installedPlugins(){return Array.from(this.plugins.values())}}const W=(e,t)=>{const[n,{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:n,value:s,set:l}},zn={x_axis_data_key:"",y_axis_data_key:"",z_axis_data_key:"",xAxis3D:{type:"value",name:"X Axis Name"},yAxis3D:{type:"value",name:"Y Axis Name"},zAxis3D:{type:"value",name:"Z Axis Name"}};function O(e){const[t,n]=e.split(".");return{queryID:t,columnKey:n}}function Ue(e,t){var s;const{queryID:n,columnKey:i}=O(t);return n?i?((s=e[n])==null?void 0:s.map(o=>o[i]))??[]:e[n]:[]}function kt(e,t){const{queryID:n}=O(t);return n?e[n]:[]}function El(e){return Object.values(e)[0]}function Rt(e,t){const{queryID:n,columnKey:i}=O(t);return e[i]}oe.use([G.GridComponent,G.VisualMapComponent,G.LegendComponent,G.TooltipComponent,Ae.CanvasRenderer]);function Ll({context:e}){const{value:t}=W(e.instanceData,"config"),n=e.data,{width:i,height:s}=e.viewport,{x_axis_data_key:o,y_axis_data_key:l,z_axis_data_key:u,xAxis3D:c,yAxis3D:p,zAxis3D:f}=v.defaults({},t,zn),h=m.useMemo(()=>kt(n,o),[n,o]),{x:g,y:b,z:_}=m.useMemo(()=>({x:O(o),y:O(l),z:O(u)}),[o,l,u]),{min:C,max:S}=m.useMemo(()=>{const $=v.minBy(h,N=>N[_.columnKey]),q=v.maxBy(h,N=>N[_.columnKey]);return{min:v.get($,_.columnKey),max:v.get(q,_.columnKey)}},[h,_]),I={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:C,max:S,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:c,yAxis3D:p,zAxis3D:f,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:h.map($=>[$[g.columnKey],$[b.columnKey],$[_.columnKey]])}]};return t?r(ze,{echarts:oe,option:I,style:{width:i,height:s},notMerge:!0,theme:"merico-light"}):null}const Da=m.createContext({panel:null,data:{},loading:!1,errors:[]}),En=Da.Provider;function Te(){const e=m.useContext(Da);if(!e.panel)throw new Error("Please use PanelContextProvider");return e}const Pl={fullScreenPanelID:"",setFullScreenPanelID:v.noop},Ln=m.createContext(Pl);function ka(){const e=m.useContext(Ln);if(!e)throw new Error("Please use FullScreenPanelContext.Provider");return e}const j=T.observer(m.forwardRef(({label:e,required:t,value:n,onChange:i,clearable:s=!1,sx:o,...l},u)=>{const{panel:c}=Te(),p=m.useMemo(()=>{const f=[...c.dataFieldOptions];return s&&f.unshift({label:"unset",value:"",group:""}),f},[c.dataFieldOptions]);return r(a.Select,{ref:u,label:e,data:p,value:n,onChange:i,required:t,sx:o,...l})}));function Ol({context:e}){const{value:t,set:n}=W(e.instanceData,"config"),i=v.defaults({},t,zn),{control:s,handleSubmit:o,reset:l}=x.useForm({defaultValues:i});return m.useEffect(()=>{l(i)},[t]),t?r(a.Stack,{spacing:"xs",children:d("form",{onSubmit:o(n),children:[r(a.Text,{children:"X Axis"}),d(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r(x.Controller,{name:"x_axis_data_key",control:s,render:({field:u})=>r(j,{label:"Data Field",required:!0,...u})}),r(x.Controller,{name:"xAxis3D.name",control:s,render:({field:u})=>r(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),r(a.Text,{mt:"lg",children:"Y Axis"}),d(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r(x.Controller,{name:"y_axis_data_key",control:s,render:({field:u})=>r(j,{label:"Data Field",required:!0,...u})}),r(x.Controller,{name:"yAxis3D.name",control:s,render:({field:u})=>r(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),r(a.Text,{mt:"lg",children:"Z Axis"}),d(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r(x.Controller,{name:"z_axis_data_key",control:s,render:({field:u})=>r(j,{label:"Data Field",required:!0,...u})}),r(x.Controller,{name:"zAxis3D.name",control:s,render:({field:u})=>r(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),r(a.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:d(a.Button,{color:"blue",type:"submit",children:[r(D.DeviceFloppy,{size:20}),r(a.Text,{ml:"md",children:"Save"})]})})]})}):null}function Vl(e,{panelModel:t}){try{const n=t.queryIDs[0];if(!n)throw new Error("cannot migrate when queryID is empty");const i=c=>c&&`${n}.${c}`,{x_axis_data_key:s,y_axis_data_key:o,z_axis_data_key:l,...u}=e;return{...u,x_axis_data_key:i(s),y_axis_data_key:i(o),z_axis_data_key:i(l)}}catch(n){throw console.error("[Migration failed]",n),n}}class Bl extends me{constructor(){super(...arguments);V(this,"VERSION",2)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,i)=>{const{config:s}=n;return{...n,version:2,config:Vl(s,i)}})}}const ql={displayName:"Bar Chart (3D)",displayGroup:"ECharts-based charts",migrator:new Bl,name:"bar-3d",viewRender:Ll,configRender:Ol,createConfig(){return{version:2,config:v.cloneDeep(zn)}}};class Le 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 n=()=>{this.setState({error:null})};return d(a.Box,{children:[r(a.Text,{size:"xs",children:(t=this.state.error)==null?void 0:t.message}),r(a.Button,{variant:"subtle",size:"xs",mx:"auto",compact:!0,sx:{display:"block"},onClick:n,children:"Retry"})]})}return this.props.children}}const ke={mantissa:0,output:"number",trimMantissa:!1,average:!1};function Nl({value:e,onChange:t},n){const i=u=>{t({...e,output:u})},s=u=>{const c=u===0?!1:e.trimMantissa;t({...e,mantissa:u,trimMantissa:c})},o=u=>{t({...e,trimMantissa:u.currentTarget.checked})},l=u=>{t({...e,average:u.currentTarget.checked})};return d(a.Stack,{ref:n,children:[d(a.Group,{grow:!0,children:[r(a.Select,{label:"Format",data:[{label:"1234",value:"number"},{label:"99%",value:"percent"}],value:e.output,onChange:i,sx:{flexGrow:1}}),r(a.Switch,{label:d(a.Stack,{spacing:0,children:[r(a.Text,{children:"Average"}),r(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"}}})]}),d(a.Group,{grow:!0,children:[r(a.NumberInput,{label:"Mantissa",defaultValue:0,min:0,step:1,max:4,value:e.mantissa,onChange:s}),r(a.Switch,{label:"Trim mantissa",checked:e.trimMantissa,onChange:o,disabled:e.mantissa===0,styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"}}})]}),d(a.Stack,{spacing:0,children:[r(a.Text,{weight:"bold",children:"Preview"}),r(Le,{children:d(a.Group,{position:"apart",children:[d(a.Text,{size:12,color:"gray",children:["123456789 ",r(D.ArrowRight,{size:9})," ",ee(123456789).format(e)]}),d(a.Text,{size:12,color:"gray",children:["1234 ",r(D.ArrowRight,{size:9})," ",ee(1234).format(e)]}),d(a.Text,{size:12,color:"gray",children:["0.1234 ",r(D.ArrowRight,{size:9})," ",ee(.1234).format(e)]})]})})]})]})}const Ne=m.forwardRef(Nl),Fe={enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
120
120
  `)},Ia={id:"builtin:echarts:click-echart:series",displayName:"Click Chart Series",nameRender:Fl,configRender:Gl,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 Gl(e){return r(B,{})}function Fl(e){return r(a.Text,{children:"Click chart's series"})}const Wl=[{label:"Truncate",value:"truncate"},{label:"Break Line",value:"break"},{label:"Break Word",value:"breakAll"}],Qt=m.forwardRef(({sectionTitle:e,value:t,onChange:n},i)=>{const s=o=>l=>{const u=v.cloneDeep(t);v.set(u,o,l),n(u)};return d(a.Stack,{spacing:0,children:[e&&r(a.Divider,{mb:-5,mt:5,variant:"dotted",label:e,labelPosition:"right",labelProps:{color:"dimmed"}}),d(a.Group,{grow:!0,noWrap:!0,children:[r(a.NumberInput,{label:"Max Width",hideControls:!0,value:t.width,onChange:s("width")}),r(a.Select,{label:"Overflow",data:Wl,value:t.overflow,onChange:s("overflow")}),r(a.TextInput,{label:"Ellipsis",value:t.ellipsis,disabled:!0})]})]})}),et=m.forwardRef(({value:e,onChange:t},n)=>{const i=o=>{t({...e,on_axis:o})},s=o=>{t({...e,in_tooltip:o})};return d(a.Stack,{ref:n,spacing:0,children:[r(Qt,{sectionTitle:"Overflow on Axis",value:e.on_axis,onChange:i}),r(Qt,{sectionTitle:"Overflow in Tooltip",value:e.in_tooltip,onChange:s})]})}),Ge={on_axis:{width:80,overflow:"truncate",ellipsis:"..."},in_tooltip:{width:200,overflow:"break",ellipsis:"..."}};function tt({overflow:e,width:t}){const n={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: ${n};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devtable/dashboard",
3
- "version": "9.19.0",
3
+ "version": "9.19.2",
4
4
  "license": "Apache-2.0",
5
5
  "publishConfig": {
6
6
  "access": "public",