@devtable/dashboard 6.36.0 → 6.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dashboard.umd.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(J,x){typeof exports=="object"&&typeof module<"u"?x(exports,require("react"),require("@mantine/core"),require("@mantine/modals"),require("ahooks"),require("mobx-react-lite"),require("lodash"),require("react-hook-form"),require("@mantine/dates"),require("dayjs"),require("tabler-icons-react"),require("react-dom"),require("jszip"),require("@mantine/prism"),require("@mantine/notifications"),require("@mantine/hooks"),require("@monaco-editor/react"),require("axios"),require("crypto-js"),require("mobx-state-tree"),require("@mantine/tiptap"),require("@tiptap/core"),require("prosemirror-state"),require("prosemirror-view"),require("@tiptap/react"),require("@tiptap/starter-kit"),require("mobx"),require("eventemitter2"),require("chroma-js"),require("echarts-gl"),require("echarts/core"),require("echarts/components"),require("echarts/renderers"),require("echarts-for-react/lib/core"),require("echarts/charts"),require("d3-array"),require("
|
|
1
|
+
(function(J,x){typeof exports=="object"&&typeof module<"u"?x(exports,require("react"),require("@mantine/core"),require("@mantine/modals"),require("ahooks"),require("mobx-react-lite"),require("lodash"),require("react-hook-form"),require("@mantine/dates"),require("dayjs"),require("tabler-icons-react"),require("react-dom"),require("jszip"),require("@mantine/prism"),require("@mantine/notifications"),require("@mantine/hooks"),require("@monaco-editor/react"),require("axios"),require("crypto-js"),require("mobx-state-tree"),require("@mantine/tiptap"),require("@tiptap/core"),require("prosemirror-state"),require("prosemirror-view"),require("@tiptap/react"),require("@tiptap/starter-kit"),require("mobx"),require("eventemitter2"),require("chroma-js"),require("echarts-gl"),require("echarts/core"),require("echarts/components"),require("echarts/renderers"),require("echarts-for-react/lib/core"),require("numbro"),require("echarts/charts"),require("d3-array"),require("echarts-stat"),require("@mantine/form"),require("d3-regression"),require("react-virtual"),require("stickybits"),require("react-grid-layout")):typeof define=="function"&&define.amd?define(["exports","react","@mantine/core","@mantine/modals","ahooks","mobx-react-lite","lodash","react-hook-form","@mantine/dates","dayjs","tabler-icons-react","react-dom","jszip","@mantine/prism","@mantine/notifications","@mantine/hooks","@monaco-editor/react","axios","crypto-js","mobx-state-tree","@mantine/tiptap","@tiptap/core","prosemirror-state","prosemirror-view","@tiptap/react","@tiptap/starter-kit","mobx","eventemitter2","chroma-js","echarts-gl","echarts/core","echarts/components","echarts/renderers","echarts-for-react/lib/core","numbro","echarts/charts","d3-array","echarts-stat","@mantine/form","d3-regression","react-virtual","stickybits","react-grid-layout"],x):(J=typeof globalThis<"u"?globalThis:J||self,x(J.dashboard={},J.React,J["@mantine/core"],J["@mantine/modals"],J.ahooks,J["mobx-react-lite"],J._,J["react-hook-form"],J["@mantine/dates"],J.dayjs,J["tabler-icons-react"],J.ReactDOM,J.jszip,J["@mantine/prism"],J["@mantine/notifications"],J["@mantine/hooks"],J["@monaco-editor/react"],J.axios,J["crypto-js"],J["mobx-state-tree"],J["@mantine/tiptap"],J["@tiptap/core"],J["prosemirror-state"],J["prosemirror-view"],J["@tiptap/react"],J["@tiptap/starter-kit"],J.mobx,J.eventemitter2,J["chroma-js"],J["echarts-gl"],J["echarts/core"],J["echarts/components"],J["echarts/renderers"],J["echarts-for-react/lib/core"],J.numbro,J["echarts/charts"],J["d3-array"],J["echarts-stat"],J["@mantine/form"],J["d3-regression"],J["react-virtual"],J.stickybits,J["react-grid-layout"]))})(this,function(J,x,c,xa,Ze,X,L,k,_h,Eh,W,Th,Oh,In,mi,bt,Mh,Dh,Rh,O,We,Lt,kh,Yl,Xl,Ph,kt,Ah,Ih,TI,$h,Je,Sn,Nh,Lh,Qt,yi,_a,Ql,Vh,Fh,zh,Ea){"use strict";var _I=Object.defineProperty;var EI=(J,x,c)=>x in J?_I(J,x,{enumerable:!0,configurable:!0,writable:!0,value:c}):J[x]=c;var pe=(J,x,c)=>(EI(J,typeof x!="symbol"?x+"":x,c),c);const Ht=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function Ta(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const j=Ht(x),E=Ta(x),De=Ht(L),$n=Ht(Eh),Lr=Ht(Th),jh=Ht(Oh),Jn=Ht(Mh),Oa=Ht(Dh),Bh=Ht(Rh),Zl=Ht(Ph),Jl=Ht(Ah),Vr=Ht(Ih),wt=Ta($h),wn=Ht(Nh),$t=Ht(Lh),Nn=Ta(Vh),Gh=Ht(zh),es=Ht(Ea);function ts(e,t){x.useEffect(()=>{const n=r=>{console.log(r);const{viewID:i}=r.detail;if(!i){console.error(new Error("[Open View] Needs to pick a view first"));return}e.views.appendToVisibles(i),t&&e.views.setIDOfVIE(i)};return window.addEventListener("open-view",n),()=>{window.removeEventListener("open-view",n)}},[e,t]),x.useEffect(()=>{const n=r=>{console.log(r);const{dictionary:i,payload:a}=r.detail;if(!a||Object.keys(a).length===0){console.error(new Error("[Set Filter Values] payload is empty"));return}Object.entries(i).forEach(([o,s])=>{e.filters.setValueByKey(o,De.default.get(a,s))})};return window.addEventListener("set-filter-values",n),()=>{window.removeEventListener("set-filter-values",n)}},[e]),x.useEffect(()=>{const n=r=>{console.log(r);const{urlTemplate:i,openInNewTab:a,enableEncoding:o=!1,payload:s}=r.detail;if(!i){console.error(new Error("[Open Link] URL is empty"));return}function u(p){return L.cloneDeepWith(p,g=>{if(o&&typeof g=="string")return encodeURIComponent(g)})}const f=L.template(i||"")(u({...s,filters:e.filters.values,context:e.context.current}));window.open(f,a?"_blank":"_self","noopener")};return window.addEventListener("open-link",n),()=>{window.removeEventListener("open-link",n)}},[e])}class Kh{constructor(t){pe(this,"symbol");this.symbol=Symbol(t)}}function xn(e){return new Kh(e)}class Ma{constructor(){pe(this,"parent");pe(this,"factoryRegistry",new Map);pe(this,"instanceRegistry",new Map)}createScoped(){const t=new Ma;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 r=n(this);return this.instanceRegistry.set(t.symbol,r),r}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=L.get(t,"dispose");L.isFunction(n)&&n.bind(t)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}var Zt=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},bi={exports:{}},Fr={};/**
|
|
2
2
|
* @license React
|
|
3
3
|
* react-jsx-runtime.production.min.js
|
|
4
4
|
*
|
|
@@ -99,8 +99,9 @@ WHERE
|
|
|
99
99
|
value: string;
|
|
100
100
|
parent_value: string;
|
|
101
101
|
}
|
|
102
|
-
`,TE=()=>{const[e,t]=x.useState(!1);return y(Oe,{children:[l(c.Button,{variant:"subtle",compact:!0,onClick:()=>t(n=>!n),children:e?"Close":"Click to see expected data structure"}),l(c.Collapse,{in:e,children:l(In.Prism,{language:"typescript",noCopy:!0,colorScheme:"dark",children:EE})})]})},OE=X.observer(function({config:t}){return y(Oe,{children:[l(c.TextInput,{label:"Min-width",value:t.min_width,onChange:n=>t.setMinWidth(n.currentTarget.value),placeholder:"200px"}),l(c.Divider,{label:"Fetch options from database",labelPosition:"center"}),l(c.Checkbox,{checked:t.select_first_by_default,onChange:n=>t.setSelectFirstByDefault(n.currentTarget.checked),label:"Select the first option by default"}),l(Ho,{value:t.options_query_id,onChange:t.setOptionsQueryID}),l(TE,{})]})}),ME=X.observer(function({filter:t}){const n=t.plainDefaultValue,[r,i]=j.default.useState(n);return j.default.useEffect(()=>{i(n)},[n]),y(c.Box,{sx:{maxWidth:"30em"},children:[l(c.Text,{pb:"md",color:"gray",children:"Preview"}),l(Ud,{filter:t,value:r,onChange:i}),l(c.Text,{pt:"lg",pb:"md",color:"gray",children:"Config"}),l(In.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(t,null,4)})]})}),DE={select:xE,"multi-select":wE,"tree-select":OE,"text-input":_E,checkbox:yE,"date-range":CE},RE=[{label:"Select",value:"select"},{label:"Multi Select",value:"multi-select"},{label:"Tree Select",value:"tree-select"},{label:"Text Input",value:"text-input"},{label:"Checkbox",value:"checkbox"},{label:"Date Range",value:"date-range"}],kE=X.observer(function({filter:t,index:n}){const r=et(),i=j.default.useMemo(()=>DE[t.type],[t.type]);return y(c.SimpleGrid,{cols:2,children:[y(c.Box,{pl:"md",children:[l(c.Text,{pb:"md",color:"gray",children:"Edit"}),y(c.Stack,{sx:{maxWidth:"30em"},children:[y(c.Group,{noWrap:!0,children:[l(c.NumberInput,{label:"Placement Order",required:!0,value:t.order,onChange:t.setOrder,hideControls:!0,sx:{flexGrow:"1 !important"}}),l(c.Checkbox,{label:"Submit automatically",checked:t.auto_submit,onChange:a=>t.setAutoSubmit(a.currentTarget.checked),mt:22})]}),l(c.MultiSelect,{label:"Visible in...",data:r.views.options,value:[...t.visibleInViewsIDs],onChange:t.setVisibleInViewsIDs}),l(c.TextInput,{label:"Key",placeholder:"A unique key to refer",required:!0,value:t.key,onChange:a=>{t.setKey(a.currentTarget.value)}}),l(c.TextInput,{label:"Label",placeholder:"Label for this field",required:!0,value:t.label,onChange:a=>{t.setLabel(a.currentTarget.value)}}),l(c.Select,{label:"Widget",data:RE,required:!0,value:t.type,onChange:t.setType}),l(i,{config:t.config,index:n})]})]}),l(ME,{filter:t})]})}),OI="",PE=X.observer(function(){const t=et(),n=t.filters.current,r=()=>{const i=bt.randomId(),a={id:i,key:i,label:i,order:n.length+1,type:Wt.TextInput,config:nf(),visibleInViewsIDs:["Main"],auto_submit:!1};t.filters.append(a)};return y(c.Box,{sx:{height:"90vh",maxHeight:"calc(100vh - 185px)"},p:0,children:[l(c.Group,{sx:{position:"absolute",top:"16px",right:"16px"},children:l(c.Button,{size:"xs",color:"red",leftIcon:l(W.Recycle,{size:20}),disabled:!t.filtersChanged,onClick:t.resetFilters,children:"Revert Changes"})}),l(c.Tabs,{className:"filter-settings-tabs",orientation:"vertical",defaultValue:t.filters.firstID,styles:{root:{display:"block"}},children:y(c.Group,{sx:{height:"100%"},children:[y(c.Stack,{sx:{height:"100%"},children:[l(c.Tabs.List,{position:"left",sx:{flexGrow:1,width:"200px"},children:t.filters.current.map(i=>l(c.Tabs.Tab,{value:i.id,sx:{maxWidth:"100%",overflow:"scroll"},children:i.label},i.id))}),l(c.Button,{size:"xs",color:"blue",leftIcon:l(W.PlaylistAdd,{size:20}),onClick:r,children:"Add a Filter"})]}),l(c.Box,{sx:{flexGrow:1,height:"100%"},children:t.filters.current.map((i,a)=>l(c.Tabs.Panel,{value:i.id,sx:{height:"100%"},children:y(c.Stack,{sx:{height:"100%"},spacing:"sm",children:[l(c.Box,{sx:{flexGrow:1,maxHeight:"calc(100% - 52px)",overflow:"scroll"},children:l(kE,{filter:i,index:a})}),l(c.Group,{position:"right",pt:10,children:l(c.Button,{size:"xs",color:"red",leftIcon:l(W.Trash,{size:20}),onClick:()=>t.filters.remove(a),children:"Delete this filter"})})]})},i.id))})]})})]})}),AE=X.observer(function({opened:t,close:n}){const{freezeLayout:r}=j.default.useContext(sn);return j.default.useEffect(()=>{r(t)},[t]),l(c.Modal,{size:"96vw",overflow:"inside",opened:t,onClose:n,title:"Filters",trapFocus:!0,onDragStart:i=>{i.stopPropagation()},withCloseButton:!1,children:l(PE,{})})});var af=(e=>(e.Use="use",e.Edit="edit",e))(af||{}),an=(e=>(e.Division="div",e.Modal="modal",e))(an||{}),of=(e=>(e.Select="select",e.MultiSelect="multi-select",e.TextInput="text-input",e.Checkbox="checkbox",e.DateRange="date-range",e))(of||{});const IE=X.observer(()=>{const t=et().views.VIE;return!t||t.type!==an.Division?null:y(c.Stack,{children:[l(c.Divider,{mt:8,mb:0,label:"Division settings",labelPosition:"center"}),l(c.Text,{align:"center",size:"xs",color:"dimmed",children:"Under construction"})]})}),$E=X.observer(()=>{const t=et().views.VIE;return!t||t.type!==an.Modal?null:y(c.Stack,{children:[l(c.Divider,{mt:8,label:"Modal settings",labelPosition:"center"}),y(c.Group,{grow:!0,children:[l(c.TextInput,{label:"Width",value:t.config.width,onChange:n=>t.updateConfig("width",n.currentTarget.value),placeholder:"600px / 50vw"}),l(c.TextInput,{label:"Height",value:t.config.height,onChange:n=>t.updateConfig("height",n.currentTarget.value),placeholder:"600px / 50vw"})]})]})}),NE=X.observer(()=>y(Oe,{children:[l(IE,{}),l($E,{})]})),LE=[{label:"Division",value:an.Division},{label:"Modal",value:an.Modal}],VE=X.observer(()=>{const t=et().views.VIE;return t?y(c.Stack,{sx:{position:"relative"},children:[l(c.TextInput,{label:"Name",value:t.name,onChange:n=>{t.setName(n.currentTarget.value)}}),l(c.Select,{label:"Type",value:t.type,onChange:t.setType,data:LE}),l(NE,{})]}):null}),FE=X.observer(({opened:e,close:t})=>{var i;const n=et(),{freezeLayout:r}=j.default.useContext(sn);return j.default.useEffect(()=>{r(e)},[e]),l(c.Modal,{size:"500px",overflow:"inside",opened:e,onClose:t,withCloseButton:!1,styles:{header:{width:"100%"},title:{width:"100%"}},title:y(c.Group,{position:"apart",children:[y(c.Text,{sx:{flexGrow:1},children:["Editing ",(i=n.views.VIE)==null?void 0:i.name]}),l(c.ActionIcon,{size:18,color:"red",onClick:n.views.removeVIE,disabled:n.views.isVIETheFirstView,children:l(W.Trash,{size:18})})]}),trapFocus:!0,onDragStart:a=>{a.stopPropagation()},children:l(VE,{})})}),zE=x.forwardRef(({label:e,type:t,...n},r)=>t!=="TRIGGER_TO_ADD"?l("div",{ref:r,...n,children:y(c.Group,{noWrap:!0,position:"apart",children:[l(c.Text,{size:"sm",children:e}),l(c.Text,{size:"xs",color:"dimmed",children:t})]})}):l("div",{ref:r,...n,children:l(c.Group,{noWrap:!0,grow:!0,children:l(c.Text,{size:"sm",align:"center",color:"#228be6",children:e})})})),lf="TRIGGER_TO_ADD",jE=X.observer(({value:e,onChange:t,triggerAdd:n,triggerEdit:r,options:i})=>{const a=x.useMemo(()=>[...i,{label:"Add a View",value:lf,type:"TRIGGER_TO_ADD"}],[i,n]),o=s=>{s!==lf?t(s):n()};return y(c.Group,{position:"left",spacing:0,sx:{minWidth:"260px"},children:[l(c.Select,{value:e,onChange:o,placeholder:"Pick a View",itemComponent:zE,data:a,nothingFound:"Empty",sx:{flexGrow:1},styles:{input:{borderTopRightRadius:0,borderBottomRightRadius:0}}}),l(c.ActionIcon,{onClick:r,variant:"default",size:36,sx:{borderLeft:0,borderTopLeftRadius:0,borderBottomLeftRadius:0,"&:active":{transform:"none",svg:{transform:"translateY(1px)"}}},children:l(W.Settings,{size:20})})]})}),BE=X.observer(()=>{const e=et(),[t,n]=x.useState(!1),r=()=>{n(!0)},i=()=>{n(!1)};return y(Oe,{children:[l(jE,{value:e.views.idOfVIE,onChange:e.views.setIDOfVIE,triggerAdd:e.views.addARandomNewView,triggerEdit:r,options:e.views.options}),l(FE,{opened:t,close:i})]})}),sf={"> button":{"&:first-of-type":{borderTopRightRadius:0,borderBottomRightRadius:0,borderRightWidth:.5},"&:last-of-type":{borderTopLeftRadius:0,borderBottomLeftRadius:0,borderLeftWidth:.5}}},uf=X.observer(function({saveChanges:t}){const n=et(),r=j.default.useCallback(()=>{const b=n.queries.json,w=n.views.json,S=n.sqlSnippets.json,D=n.filters.current,_=n.mock_context.current;return{filters:D,views:w,definition:{sqlSnippets:S,queries:b,mock_context:_},version:n.version}},[n]),i=()=>{n.reset()},a=n.changed,{inEditMode:o,inUseMode:s}=j.default.useContext(sn),[u,d]=j.default.useState(!1),f=()=>d(!0),p=()=>d(!1),[h,g]=j.default.useState(!1),v=()=>g(!0),m=()=>g(!1),C=()=>{const b=JSON.stringify(r(),null,2);F1(n.name,b)};return y(c.Group,{position:"apart",pt:0,px:10,pb:"xs",children:[l(c.Group,{position:"left",children:o&&l(BE,{})}),y(c.Group,{position:"right",sx:{button:{minWidth:"40px"}},children:[o&&y(Oe,{children:[l(c.Button,{variant:"filled",size:"xs",disabled:!n.views.VIE,onClick:n.views.addAPanelToVIE,leftIcon:l(W.PlaylistAdd,{size:20}),children:"Add a Panel"}),y(c.Group,{spacing:0,sx:sf,children:[l(c.Tooltip,{label:"Filters",children:l(c.ActionIcon,{variant:"default",size:"md",onClick:v,children:l(W.Filter,{size:20})})}),l(c.Tooltip,{label:"Data Settings",children:l(c.ActionIcon,{variant:"default",size:"md",onClick:f,children:l(W.Database,{size:20})})})]}),y(c.Group,{spacing:0,sx:sf,children:[l(c.Tooltip,{label:"Save Changes",children:l(c.ActionIcon,{variant:"default",size:"md",onClick:t,disabled:!a,children:l(W.DeviceFloppy,{size:20,color:"green"})})}),l(c.Tooltip,{label:"Revert Changes",children:l(c.ActionIcon,{variant:"default",size:"md",disabled:!a,onClick:i,children:l(W.Recycle,{size:20,color:"red"})})})]})]}),!s&&y(c.Menu,{width:180,trigger:"hover",children:[l(c.Menu.Target,{children:l(c.ActionIcon,{variant:"default",size:"md",children:l(W.Share,{size:20})})}),y(c.Menu.Dropdown,{children:[l(c.Menu.Item,{icon:l(W.Download,{size:14}),onClick:n.queries.downloadAllData,children:"Download Data"}),l(c.Menu.Item,{icon:l(W.Code,{size:14}),onClick:C,children:"Download Schema"})]})]})]}),l(AE,{opened:h,close:m}),l(mE,{opened:u,close:p})]})}),MI="",cf=Lt.Mark.create({name:"textStyle",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"span",getAttrs:e=>e.hasAttribute("style")?{}:!1}]},renderHTML({HTMLAttributes:e}){return["span",Lt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{removeEmptyTextStyle:()=>({state:e,commands:t})=>{const n=Lt.getMarkAttributes(e,this.type);return Object.entries(n).some(([,i])=>!!i)?!0:t.unsetMark(this.name)}}}}),df=Lt.Extension.create({name:"color",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{color:{default:null,parseHTML:e=>{var t;return(t=e.style.color)===null||t===void 0?void 0:t.replace(/['"]+/g,"")},renderHTML:e=>e.color?{style:`color: ${e.color}`}:{}}}}]},addCommands(){return{setColor:e=>({chain:t})=>t().setMark("textStyle",{color:e}).run(),unsetColor:()=>({chain:e})=>e().setMark("textStyle",{color:null}).removeEmptyTextStyle().run()}}}),GE=/(?:^|\s)((?:==)((?:[^~=]+))(?:==))$/,KE=/(?:^|\s)((?:==)((?:[^~=]+))(?:==))/g,ff=Lt.Mark.create({name:"highlight",addOptions(){return{multicolor:!1,HTMLAttributes:{}}},addAttributes(){return this.options.multicolor?{color:{default:null,parseHTML:e=>e.getAttribute("data-color")||e.style.backgroundColor,renderHTML:e=>e.color?{"data-color":e.color,style:`background-color: ${e.color}; color: inherit`}:{}}}:{}},parseHTML(){return[{tag:"mark"}]},renderHTML({HTMLAttributes:e}){return["mark",Lt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{setHighlight:e=>({commands:t})=>t.setMark(this.name,e),toggleHighlight:e=>({commands:t})=>t.toggleMark(this.name,e),unsetHighlight:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-h":()=>this.editor.commands.toggleHighlight()}},addInputRules(){return[Lt.markInputRule({find:GE,type:this.type})]},addPasteRules(){return[Lt.markPasteRule({find:KE,type:this.type})]}}),pf=Lt.Extension.create({name:"placeholder",addOptions(){return{emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",placeholder:"Write something \u2026",showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[new kh.Plugin({props:{decorations:({doc:e,selection:t})=>{const n=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:r}=t,i=[];if(!n)return null;const a=e.type.createAndFill(),o=(a==null?void 0:a.sameMarkup(e))&&a.content.findDiffStart(e.content)===null;return e.descendants((s,u)=>{const d=r>=u&&r<=u+s.nodeSize,f=!s.isLeaf&&!s.childCount;if((d||!this.options.showOnlyCurrent)&&f){const p=[this.options.emptyNodeClass];o&&p.push(this.options.emptyEditorClass);const h=Yl.Decoration.node(u,u+s.nodeSize,{class:p.join(" "),"data-placeholder":typeof this.options.placeholder=="function"?this.options.placeholder({editor:this.editor,node:s,pos:u,hasAnchor:d}):this.options.placeholder});i.push(h)}return this.options.includeChildren}),Yl.DecorationSet.create(e,i)}}})]}}),hf=Lt.Mark.create({name:"subscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sub"},{style:"vertical-align",getAttrs(e){return e!=="sub"?!1:null}}]},renderHTML({HTMLAttributes:e}){return["sub",Lt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{setSubscript:()=>({commands:e})=>e.setMark(this.name),toggleSubscript:()=>({commands:e})=>e.toggleMark(this.name),unsetSubscript:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-,":()=>this.editor.commands.toggleSubscript()}}}),gf=Lt.Mark.create({name:"superscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sup"},{style:"vertical-align",getAttrs(e){return e!=="super"?!1:null}}]},renderHTML({HTMLAttributes:e}){return["sup",Lt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{setSuperscript:()=>({commands:e})=>e.setMark(this.name),toggleSuperscript:()=>({commands:e})=>e.toggleMark(this.name),unsetSuperscript:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-.":()=>this.editor.commands.toggleSuperscript()}}}),vf=Lt.Extension.create({name:"textAlign",addOptions(){return{types:[],alignments:["left","center","right","justify"],defaultAlignment:"left"}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:e=>e.style.textAlign||this.options.defaultAlignment,renderHTML:e=>e.textAlign===this.options.defaultAlignment?{}:{style:`text-align: ${e.textAlign}`}}}}]},addCommands(){return{setTextAlign:e=>({commands:t})=>this.options.alignments.includes(e)?this.options.types.every(n=>t.updateAttributes(n,{textAlign:e})):!1,unsetTextAlign:()=>({commands:e})=>this.options.types.every(t=>e.resetAttributes(t,"textAlign"))}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign("left"),"Mod-Shift-e":()=>this.editor.commands.setTextAlign("center"),"Mod-Shift-r":()=>this.editor.commands.setTextAlign("right"),"Mod-Shift-j":()=>this.editor.commands.setTextAlign("justify")}}}),mf=Lt.Mark.create({name:"underline",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:e=>e.includes("underline")?{}:!1}]},renderHTML({HTMLAttributes:e}){return["u",Lt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{setUnderline:()=>({commands:e})=>e.setMark(this.name),toggleUnderline:()=>({commands:e})=>e.toggleMark(this.name),unsetUnderline:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),yf=({value:e,styles:t={}})=>{const n=Xl.useEditor({extensions:[Zl.default,mf,We.Link,gf,hf,ff,vf.configure({types:["heading","paragraph"]}),pf.configure({placeholder:"This is placeholder"}),cf,df],content:e,editable:!1});return l(We.RichTextEditor,{editor:n,styles:t,children:l(We.RichTextEditor.Content,{})})},bf=X.observer(()=>{const{freezeLayout:e}=j.default.useContext(sn),[t,n]=j.default.useState(!1),{panel:r}=Pt();return j.default.useEffect(()=>{e(t)},[t]),!r.description||r.description==="<p><br></p>"?null:y(Oe,{children:[l(c.Modal,{opened:t,onClose:()=>n(!1),title:r.title,withCloseButton:!1,children:l(yf,{value:r.description,styles:{root:{border:"none"},content:{padding:0}}})}),l(c.Tooltip,{label:"Click to see description",position:"top-start",withinPortal:!0,children:l(c.ActionIcon,{variant:"subtle",color:"blue",onClick:()=>n(i=>!i),sx:{verticalAlign:"baseline",cursor:"pointer"},children:l(W.InfoCircle,{size:20})})})]})}),Cf=e=>{const{title:t="Variables",variables:n}=e,r=bt.useClipboard(),i=a=>{r.copy(a),mi.showNotification({color:"green",message:"Copied to clipboard"})};return y(c.Paper,{withBorder:!0,p:"sm",children:[l(c.Text,{size:"xs",color:"dimmed",mb:"sm",children:t}),l(c.Stack,{style:{maxHeight:"500px"},children:n.map(a=>y(c.Text,{size:"sm",children:[y(c.Code,{color:"teal",children:["// ",a.description]}),l("br",{}),y(c.Code,{onClick:()=>i(a.name),style:{cursor:"pointer"},children:[a.name," : ",a.valueType]})]},a.name))})]})};class qE{constructor(t,n){pe(this,"operationId");pe(this,"operation");pe(this,"operationSchema");pe(this,"variables",[]);this.operationManager=t,this.instance=n,kt.makeAutoObservable(this)}get schemaList(){return this.operationManager.getOperationSchemaList()}async configOperation(t,n){const r=await this.operationManager.retrieveTrigger(t),i=this.operationManager.getOperationSchemaList().find(a=>a.id===(r==null?void 0:r.schemaRef));kt.runInAction(()=>{this.operationId=t,this.operation=r,this.operationSchema=i,this.variables=n})}async changeSchema(t){this.operationId&&(await this.operationManager.createOrGetOperation(this.operationId,t),await this.configOperation(this.operationId,this.variables))}}function HE(e){return!!e.operationId}const WE=X.observer(({model:e,onClick:t})=>{var r;const n=(r=e.operationSchema)==null?void 0:r.displayName;return l(c.Button,{variant:"outline",onClick:t,children:n})}),UE=X.observer(({model:e})=>{const t={operation:e.operation,instance:e.instance,variables:[]};return x.createElement(e.operationSchema.configRender,t)});function YE({model:e}){const t=e.schemaList,n=t.map(i=>({label:i.displayName,value:i.id}));async function r(i){await e.changeSchema(t.find(a=>a.id===i))}return l(c.Select,{label:"Operation",data:n,onChange:r,value:e.operationSchema.id})}const XE=X.observer(e=>{const[t,{setTrue:n,setFalse:r}]=Ze.useBoolean(!1),{operationManager:i,operationId:a,instance:o,variables:s}=e,u=Ze.useCreation(()=>new qE(i,o),[i,o]);return Ze.useAsyncEffect(async()=>{await u.configOperation(a,s)},[a,u]),HE(u)?y(Oe,{children:[l(WE,{model:u,onClick:n}),l(c.Modal,{opened:t,onClose:r,title:"Operation Settings",closeButtonLabel:"close",children:y(c.Stack,{children:[l(YE,{model:u}),l(UE,{model:u}),l(Cf,{title:"Variables",variables:u.variables})]})})]}):null});class QE{constructor(t,n){pe(this,"triggerId");pe(this,"trigger");pe(this,"triggerSchema");pe(this,"sampleData");this.triggerManager=t,this.instance=n,kt.makeAutoObservable(this)}get schemaList(){return this.triggerManager.getTriggerSchemaList()}async configTrigger(t,n){const r=await this.triggerManager.retrieveTrigger(t),i=this.triggerManager.getTriggerSchemaList().find(a=>a.id===(r==null?void 0:r.schemaRef));kt.runInAction(()=>{this.triggerId=t,this.trigger=r,this.triggerSchema=i,this.sampleData=n})}async changeSchema(t){this.triggerId&&(await this.triggerManager.createOrGetTrigger(this.triggerId,t),await this.configTrigger(this.triggerId,this.sampleData))}isReady(){return ZE(this)}}function ZE(e){return!!e.triggerId&&!!e.triggerSchema}function JE(e,t){return Ze.useCreation(()=>new QE(e,t),[e,t])}const eT=X.observer(({model:e,onClick:t})=>{const n=e.triggerSchema.nameRender,r={trigger:e.trigger,instance:e.instance,sampleData:e.sampleData};return l(c.Button,{variant:"outline",onClick:t,children:x.createElement(n,r)})}),tT=X.observer(({model:e})=>{const t=e.schemaList,n=t.map(i=>({label:i.displayName,value:i.id}));async function r(i){await e.changeSchema(t.find(a=>a.id===i))}return l(c.Select,{label:"Trigger",data:n,value:e.triggerSchema.id,onChange:r})}),nT=X.observer(({model:e})=>{const t={trigger:e.trigger,instance:e.instance,sampleData:e.sampleData};return x.createElement(e.triggerSchema.configRender,t)}),rT=X.observer(e=>{const[t,{setTrue:n,setFalse:r}]=Ze.useBoolean(!1),i=e.model;return y(Oe,{children:[l(c.Modal,{opened:t,onClose:r,title:"Setup Trigger",closeButtonLabel:"close setup",children:y(c.Stack,{children:[l(tT,{model:i}),l(nT,{model:i}),l(Cf,{title:"Payload",variables:i.triggerSchema.payload})]})}),l(eT,{onClick:n,model:i})]})});class Pr{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,L.omit(n,t))}async getItem(t){const n=await this.root.getItem(this.path);return t===null?n:L.get(n,t)}async setItem(t,n){if(t===null)await this.root.setItem(this.path,n);else{const r=await this.root.getItem(this.path)||{};await this.root.setItem(this.path,{...r,[t]:n})}return await this.getItem(t)}watchItem(t,n,r){return t===null?this.root.watchItem(this.path,(i,a)=>{n(i,a)},r):this.root.watchItem(this.path,(i,a)=>{const o=L.get(i,t),s=L.get(a,t);o!==s&&n(o,s)},r)}}class Wo{constructor(t,n,r){pe(this,"attachmentStorage");this.instance=t,this.attachmentKey=n,this.constructInstance=r,this.attachmentStorage=new Pr(t.instanceData,n)}async getInstance(t){if(await this.attachmentStorage.getItem(t))return this.constructInstance(new Pr(this.attachmentStorage,t))}async create(t,n){return await this.attachmentStorage.setItem(t,n),this.constructInstance(new Pr(this.attachmentStorage,t))}async remove(t){await this.attachmentStorage.deleteItem(t)}async list(){const t=await this.attachmentStorage.getItem(null);return Promise.all(L.values(t).map(n=>this.constructInstance(new Pr(this.attachmentStorage,n.id))))}}class Sf{constructor(t){pe(this,"rootRef");this.rootRef=kt.observable({current:t})}async deleteItem(t){kt.runInAction(()=>{L.unset(this.rootRef.current,[t])})}getItem(t){const n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?kt.toJS(this.rootRef.current):L.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(L.isObject(n))kt.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else kt.runInAction(()=>{L.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,r){return kt.reaction(()=>this.getValueFromRoot(t),(i,a)=>{n(i,a)},{requiresObservable:!0,fireImmediately:L.get(r,"fireImmediately",!1)})}}class iT{constructor(){pe(this,"channels",new Map);pe(this,"globalChannel",new Jl.default)}getChannel(t){const n=this.channels.get(t);if(n)return n;const r=new Jl.default;return this.channels.set(t,r),r}}class aT{constructor(t){pe(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 r={id:t.id,name:t.viz.type,type:t.viz.type,messageChannels:new iT,instanceData:new Sf(t.viz.conf)};return this.instances.set(t.id,r),r}}function wf(e,t,n,r){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new Sf({}),colorPalette:{getColor(){return()=>""}},data:t,variables:r}}const oT=e=>{const{panel:t,vizManager:n,data:r,variables:i}=e,a=n.resolveComponent(t.viz.type),o=n.getOrCreateInstance(t),s={...wf(o,r,n,i),viewport:{width:t.layout.w,height:t.layout.h}},u=a.viewRender;return l(u,{context:s,instance:o,...L.omit(e,["panel","vizManager","data"])})},lT=e=>{const{vizManager:t,panel:n,panelInfoEditor:r,data:i,variables:a}=e,o=t.resolveComponent(n.viz.type),s=t.getOrCreateInstance(n),u={...wf(s,i,t,a),panelInfoEditor:r},d=o.configRender;return l(d,{context:u,instance:s,...L.omit(e,["panel","vizManager","data","panelInfoEditor"])})},xf=(e,t)=>{const n=Vr.default.bezier(e),r=Vr.default.bezier(t);return function(i){return i<50?n(i*2/100).hex():r((i-50)*2/100).hex()}},oa=e=>{const t=Vr.default.bezier(e);return function(n){return t(n/100).hex()}},sT={type:"interpolation",displayName:"Red / Green",getColor:xf(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},uT={type:"interpolation",displayName:"Yellow / Blue",getColor:xf(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},cT={type:"interpolation",displayName:"Red",getColor:oa(["#fff7f1","darkred"]),name:"red",category:"sequential"},dT={type:"interpolation",displayName:"Green",getColor:oa(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},fT={type:"interpolation",displayName:"Blue",getColor:oa(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},pT={type:"interpolation",displayName:"Orange",getColor:oa(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"},_f="@devtable/dashboard",Uo="6.36.0",Ef="Apache-2.0",Tf={access:"public",registry:"https://registry.npmjs.org/"},Of=["dist"],Mf="./dist/dashboard.umd.js",Df="./dist/dashboard.es.js",Rf="./dist/index.d.ts",kf={".":{import:"./dist/dashboard.es.js",require:"./dist/dashboard.umd.js"},"./dist/style.css":{import:"./dist/style.css",require:"./dist/style.css"}},Pf={"dev-build":"tsc && vite build --watch",build:"tsc && vite build",preview:"vite preview",test:"vitest","test:ui":"vitest --ui",coverage:"vitest --coverage"},Af={"@monaco-editor/react":"4.4.6","@types/chroma-js":"^2.1.4","file-saver":"2.0.5","performant-array-to-tree":"1.11.0",popmotion:"^11.0.3","rc-tree-select":"5.5.5",stickybits:"3.7.11"},If={"@mantine/core":"5.9.5","@mantine/dates":"5.9.5","@mantine/form":"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.118.0","@testing-library/cypress":"^8.0.3","@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.0-beta.209","@tiptap/extension-color":"^2.0.0-beta.209","@tiptap/extension-highlight":"^2.0.0-beta.209","@tiptap/extension-link":"^2.0.0-beta.209","@tiptap/extension-placeholder":"^2.0.0-beta.209","@tiptap/extension-subscript":"^2.0.0-beta.209","@tiptap/extension-superscript":"^2.0.0-beta.209","@tiptap/extension-text-align":"^2.0.0-beta.209","@tiptap/extension-text-style":"^2.0.0-beta.209","@tiptap/extension-underline":"^2.0.0-beta.209","@tiptap/react":"^2.0.0-beta.209","@tiptap/starter-kit":"^2.0.0-beta.209","@types/crypto-js":"v4.1.1","@types/d3-array":"3.0.3","@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.11.0",axios:"^0.27.2","crypto-js":"^4.1.1",cypress:"^10.6.0","cypress-wait-until":"^1.7.2",echarts:"^5.3.2","echarts-for-react":"^3.0.2","echarts-gl":"^2.0.9","echarts-stat":"1.2.0",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.6.0","tabler-icons-react":"^1.48.0",typescript:"^4.6.3"},$f={"@emotion/react":"11.10.0","@mantine/core":"5.9.5","@mantine/dates":"5.9.5","@mantine/form":"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.118.0","@tanstack/react-table":"^8.5.13","@tiptap/extension-code-block-lowlight":"^2.0.0-beta.209","@tiptap/extension-color":"^2.0.0-beta.209","@tiptap/extension-highlight":"^2.0.0-beta.209","@tiptap/extension-link":"^2.0.0-beta.209","@tiptap/extension-placeholder":"^2.0.0-beta.209","@tiptap/extension-subscript":"^2.0.0-beta.209","@tiptap/extension-superscript":"^2.0.0-beta.209","@tiptap/extension-text-align":"^2.0.0-beta.209","@tiptap/extension-text-style":"^2.0.0-beta.209","@tiptap/extension-underline":"^2.0.0-beta.209","@tiptap/react":"^2.0.0-beta.209","@tiptap/starter-kit":"^2.0.0-beta.209",ahooks:"^3.3.11",axios:"^0.27.2","chroma-js":"^2.4.2","d3-array":"3.2.0","d3-regression":"1.2.8",dayjs:"1.11.6",echarts:"^5.3.2","echarts-for-react":"^3.0.2","echarts-gl":"^2.0.9","echarts-stat":"1.2.0",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-virtual":"^2.10.4","tabler-icons-react":"^1.48.0"},hT=Object.freeze(Object.defineProperty({__proto__:null,name:_f,version:Uo,license:Ef,publishConfig:Tf,files:Of,main:Mf,module:Df,types:Rf,exports:kf,scripts:Pf,dependencies:Af,devDependencies:If,peerDependencies:$f,default:{name:_f,version:Uo,license:Ef,publishConfig:Tf,files:Of,main:Mf,module:Df,types:Rf,exports:kf,scripts:Pf,dependencies:Af,devDependencies:If,peerDependencies:$f}},Symbol.toStringTag,{value:"Module"}));class gT{constructor(t){pe(this,"staticColors",new Map);pe(this,"interpolations",new Map);t.installedPlugins.forEach(n=>{n.manifest.color.forEach(r=>{this.register(r)})})}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 vT{constructor(){pe(this,"plugins",new Map);pe(this,"vizComponents",new Map);pe(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())}}class mT{constructor(){pe(this,"migrations",[])}version(t,n){return this.migrations.push({version:t,handler:n}),this}run(t,n,r){var o;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 i=this.migrations.filter(s=>s.version>t.from&&s.version<=t.to),a=L.orderBy(i,"version","asc");if(((o=L.last(a))==null?void 0:o.version)!==t.to)throw new Error(`Migration to version ${t.to} not found`);return a.reduce((s,u)=>u.handler(s,r),n)}}class Ft extends mT{constructor(){super(),this.configVersions()}version(t,n){return super.version(t,(r,i)=>({version:t,...n(r,i)}))}async migrate({configData:t,panelModel:n}){const r=await t.getItem(null),i=L.get(r,"version",0),a=this.run({from:i,to:this.VERSION},r,{panelModel:n});await t.setItem(null,a)}async needMigration({configData:t}){const n=await t.getItem(null);return L.get(n,"version",0)<this.VERSION}}const Ue=(e,t)=>{const[n,{setFalse:r}]=Ze.useBoolean(!0),[i,a]=x.useState();x.useEffect(()=>(e.getItem(t).then(s=>{a(s),r()}),e.watchItem(t,s=>{a(s)})));const o=x.useCallback(async s=>{await e.setItem(t,s),a(s)},[e,t]);return{loading:n,value:i,set:o}},Yo={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"}};wt.use([Je.GridComponent,Je.VisualMapComponent,Je.LegendComponent,Je.TooltipComponent,Sn.CanvasRenderer]);function yT({context:e}){const{value:t}=Ue(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{x_axis_data_key:a,y_axis_data_key:o,z_axis_data_key:s,xAxis3D:u,yAxis3D:d,zAxis3D:f}=L.defaults({},t,Yo),p=x.useMemo(()=>{const v=L.minBy(n,m=>m[s]);return L.get(v,s)},[n,s]),h=x.useMemo(()=>{const v=L.maxBy(n,m=>m[s]);return L.get(v,s)},[n,s]),g={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:p,max:h,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:u,yAxis3D:d,zAxis3D:f,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:n.map(v=>[v[a],v[o],v[s]])}]};return t?l(wn.default,{echarts:wt,option:g,style:{width:r,height:i}}):null}function bT({label:e,required:t,value:n,onChange:r,data:i,clearable:a=!1,sx:o,...s},u){const d=j.default.useMemo(()=>{if(!Array.isArray(i)||i.length===0)return[];const p=Object.keys(i[0]).map(h=>({label:h,value:h}));return a?p.concat([{label:"unset",value:""}]):p},[i]);return l(c.Select,{ref:u,label:e,data:d,value:n,onChange:r,required:t,sx:o,...s})}const ot=j.default.forwardRef(bT);function CT({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=e.data,i=L.defaults({},t,Yo),{control:a,handleSubmit:o,reset:s}=k.useForm({defaultValues:i});return x.useEffect(()=>{s(i)},[t]),t?l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:o(n),children:[l(c.Text,{children:"X Axis"}),y(c.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[l(k.Controller,{name:"x_axis_data_key",control:a,render:({field:u})=>l(ot,{label:"Data Field",required:!0,data:r,...u})}),l(k.Controller,{name:"xAxis3D.name",control:a,render:({field:u})=>l(c.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),l(c.Text,{mt:"lg",children:"Y Axis"}),y(c.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[l(k.Controller,{name:"y_axis_data_key",control:a,render:({field:u})=>l(ot,{label:"Data Field",required:!0,data:r,...u})}),l(k.Controller,{name:"yAxis3D.name",control:a,render:({field:u})=>l(c.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),l(c.Text,{mt:"lg",children:"Z Axis"}),y(c.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[l(k.Controller,{name:"z_axis_data_key",control:a,render:({field:u})=>l(ot,{label:"Data Field",required:!0,data:r,...u})}),l(k.Controller,{name:"zAxis3D.name",control:a,render:({field:u})=>l(c.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),l(c.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:y(c.Button,{color:"blue",type:"submit",children:[l(W.DeviceFloppy,{size:20}),l(c.Text,{ml:"md",children:"Save"})]})})]})}):null}class ST extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const wT={displayName:"Bar Chart (3D)",migrator:new ST,name:"bar-3d",viewRender:yT,configRender:CT,createConfig:()=>Yo},Ar=(e,t)=>{const[n,r]=x.useState([]);return x.useEffect(()=>e.watchTriggerSnapshotList(i=>r(i.filter(a=>a.schemaRef===t))),[]),n},Ir=({vizManager:e,instance:t})=>Ze.useCreation(()=>new jl(t,e.resolveComponent(t.type),ba),[t,e]),Nf="__TRIGGERS";class xT{constructor(t,n){pe(this,"attachments");this.instance=t,this.component=n;const r=async i=>{const{id:a,schemaRef:o}=await i.getItem(null);return{id:a,schemaRef:o,triggerData:new Pr(i,"data")}};this.attachments=new Wo(t,Nf,r)}watchTriggerSnapshotList(t){return this.instance.instanceData.watchItem(Nf,n=>{const r=L.values(n).map(i=>({id:L.get(i,"id"),schemaRef:L.get(i,"schemaRef"),config:kt.toJS(L.get(i,"data.config"))}));t(r)},{fireImmediately:!0})}async createOrGetTrigger(t,n,r={recreate:!1}){var s;if(!this.getTriggerSchemaList().some(u=>u.id===n.id))throw new Error(`Trigger schema '${n.id}' is not defined in component '${this.component.name}'`);const a=await this.attachments.getInstance(t);return!a||r.recreate||a.schemaRef!==n.id?await this.attachments.create(t,{id:t,schemaRef:n.id,data:((s=n==null?void 0:n.createDefaultConfig)==null?void 0:s.call(n))||{}}):a}async getTriggerList(){return await this.attachments.list()}getTriggerSchemaList(){return this.component.triggers||[]}async removeTrigger(t){await this.attachments.remove(t)}async retrieveTrigger(t){return await this.attachments.getInstance(t)}async getMigrationTasks(){const n=(await this.getTriggerList()).map(async r=>{const i=this.getTriggerSchemaList().find(s=>s.id===r.schemaRef),a=i==null?void 0:i.migrator,o={configData:r.triggerData};return a&&await a.needMigration(o)?()=>a.migrate(o):null});return Promise.all(n).then(r=>r.filter(i=>i))}async needMigration(){return(await this.getMigrationTasks()).length>0}async runMigration(){const t=await this.getMigrationTasks();await Promise.all(t.map(n=>n()))}}const oi=x.forwardRef(function({value:t,onChange:n,...r},i){return l(c.TextInput,{ref:i,value:t,onChange:n,...r})}),vn={mantissa:0,output:"number",trimMantissa:!1,average:!1};function _T({value:e,onChange:t},n){const r=s=>{t({...e,output:s})},i=s=>{const u=s===0?!1:e.trimMantissa;t({...e,mantissa:s,trimMantissa:u})},a=s=>{t({...e,trimMantissa:s.currentTarget.checked})},o=s=>{t({...e,average:s.currentTarget.checked})};return y(c.Stack,{ref:n,children:[y(c.Group,{grow:!0,children:[l(c.Select,{label:"Format",data:[{label:"1234",value:"number"},{label:"99%",value:"percent"}],value:e.output,onChange:r,sx:{flexGrow:1}}),l(c.Switch,{label:y(c.Stack,{spacing:0,children:[l(c.Text,{children:"Average"}),l(c.Text,{size:12,color:"gray",children:"like 1.234k, 1.234m"})]}),checked:e.average,onChange:o,disabled:e.output!=="number",sx:{flexGrow:1},styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"},label:{display:"block"}}})]}),y(c.Group,{grow:!0,children:[l(c.NumberInput,{label:"Mantissa",defaultValue:0,min:0,step:1,max:4,value:e.mantissa,onChange:i}),l(c.Switch,{label:"Trim mantissa",checked:e.trimMantissa,onChange:a,disabled:e.mantissa===0,styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"}}})]}),y(c.Stack,{spacing:0,children:[l(c.Text,{weight:"bold",children:"Preview"}),l(ur,{children:y(c.Group,{position:"apart",children:[y(c.Text,{size:12,color:"gray",children:["123456789 ",l(W.ArrowRight,{size:9})," ",$t.default(123456789).format(e)]}),y(c.Text,{size:12,color:"gray",children:["1234 ",l(W.ArrowRight,{size:9})," ",$t.default(1234).format(e)]}),y(c.Text,{size:12,color:"gray",children:["0.1234 ",l(W.ArrowRight,{size:9})," ",$t.default(.1234).format(e)]})]})})]})]})}const ar=j.default.forwardRef(_T),ET=[{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:"Quantile(99%, 95%, ...)",value:"quantile"}];function TT({label:e,value:t,onChange:n},r){x.useEffect(()=>{typeof t=="string"&&(console.log(t),n({type:t,config:{}}))},[t,n]);const i=o=>{n(o==="quantile"?{type:"quantile",config:{p:.99}}:{type:o,config:{}})},a=o=>{n({type:"quantile",config:{p:o}})};return y(c.Group,{grow:!0,noWrap:!0,pt:"sm",children:[l(c.Select,{ref:r,label:e,data:ET,value:t.type,onChange:i}),t.type==="quantile"&&l(c.NumberInput,{label:"p",value:t.config.p,onChange:a,precision:2,min:.05,step:.05,max:1})]})}const Lf=j.default.forwardRef(TT);function OT({label:e,value:t,onChange:n},r){const[i,a]=j.default.useState(Array.isArray(t)?[...t]:[]),o=j.default.useCallback(()=>{a(h=>[...h,""])},[a]),s=j.default.useCallback(h=>{a(g=>(g.splice(h,1),[...g]))},[a]),u=j.default.useMemo(()=>!De.default.isEqual(i,t),[i,t]),d=()=>{n(i.map(h=>h.toString()))},f=c.useMantineTheme(),p=j.default.useMemo(()=>Object.entries(f.colors).map(([h,g])=>g[6]),[f]);return y(Oe,{children:[y(c.Group,{position:"left",ref:r,children:[l(c.Text,{children:e}),l(c.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!u,onClick:d,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Group,{children:[i.map((h,g)=>l(c.ColorInput,{value:h,onChange:v=>{a(m=>(m.splice(g,1,v),[...m]))},swatches:p,rightSection:l(c.ActionIcon,{onClick:()=>s(g),color:"red",children:l(W.Trash,{size:14})}),sx:{width:"45%"}})),l(c.ActionIcon,{onClick:o,color:"blue",variant:"outline",children:l(W.PlaylistAdd,{size:20})})]})]})}const MT=j.default.forwardRef(OT);function DT({value:e,onChange:t},n){const{colorManager:r}=x.useContext(bn),i=j.default.useMemo(()=>r.getStaticColors().map(s=>({label:s.name,group:s.category,value:s.value})),[r]),a=j.default.useMemo(()=>i.some(o=>o.value===e),[e,i]);return y(c.Group,{position:"apart",spacing:4,ref:n,children:[l(c.TextInput,{placeholder:"Set any color",value:a?"":e,onChange:o=>t(o.currentTarget.value),rightSection:l(c.ColorSwatch,{color:a?"transparent":e,radius:4}),variant:a?"filled":"default",sx:{maxWidth:"46%",flexGrow:1}}),l(c.Text,{sx:{flexGrow:0},children:"or"}),l(c.Select,{data:i,value:e,onChange:t,variant:a?"default":"filled",placeholder:"Pick a theme color",icon:l(c.ColorSwatch,{color:a?e:"transparent",radius:4}),sx:{maxWidth:"46%",flexGrow:1}})]})}const mn=j.default.forwardRef(DT),la=[{label:"initial",value:0},{label:"500",value:25},{label:"700",value:50},{label:"semibold",value:75},{label:"bold",value:100}];function RT({label:e,value:t,onChange:n},r){var o,s;const[i,a]=j.default.useState((s=(o=la.find(u=>u.label===t))==null?void 0:o.value)!=null?s:la[0].value);return j.default.useEffect(()=>{const u=la.find(d=>d.value===i);u&&n(u.label)},[i]),y(c.Stack,{spacing:0,mt:"sm",mb:"lg",children:[l(c.Text,{size:"sm",children:e}),l(c.Slider,{label:null,marks:la,value:i,onChange:a,step:25,placeholder:"Pick a font size",px:"1em",ref:r})]})}const Vf=j.default.forwardRef(RT);function kT({label:e,value:t,onChange:n,type:r},i){const[a,o]=j.default.useState(Array.isArray(t)?[...t]:[]),s=j.default.useCallback(()=>{o(p=>[...p,""])},[o]),u=j.default.useCallback(p=>{o(h=>(h.splice(p,1),[...h]))},[o]),d=j.default.useMemo(()=>!De.default.isEqual(a.map(String),t.map(String)),[a,t]),f=()=>{n(a.map(p=>r==="number"?Number(p):p.toString()))};return y(Oe,{children:[y(c.Group,{position:"left",ref:i,children:[l(c.Text,{children:e}),l(c.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!d,onClick:f,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Group,{children:[a.map((p,h)=>l(c.TextInput,{type:r,value:p,onChange:g=>{const v=g.currentTarget.value;o(m=>(m.splice(h,1,v),[...m]))},rightSection:l(c.ActionIcon,{onClick:()=>u(h),color:"red",children:l(W.Trash,{size:14})}),sx:{width:"45%"}})),l(c.ActionIcon,{onClick:s,color:"blue",variant:"outline",children:l(W.PlaylistAdd,{size:20})})]})]})}const PT=j.default.forwardRef(kT),Ff=j.default.forwardRef(function({value:t,onChange:n},r){const i=t.color.type,a=(o,s)=>{const u=De.default.cloneDeep(t);De.default.set(u,o,s),n(u)};return y(Oe,{children:[l(c.Divider,{my:"xs",label:"Typography",labelPosition:"center"}),l(c.Stack,{children:l(c.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",sx:{flex:1},value:t.size,onChange:o=>a("size",o.currentTarget.value)})}),l(c.Group,{position:"apart",grow:!0,sx:{"> *":{flexGrow:1,maxWidth:"100%"}},children:l(Vf,{label:"Font Weight",value:t.weight,onChange:o=>a("weight",o)})}),l(c.Divider,{my:"xs",label:"Style",labelPosition:"center"}),y(c.Stack,{children:[l(c.Select,{label:"Color Type",data:[{label:"Static Color",value:"static"},{label:"Continuous Color",value:"continuous"}],value:t.color.type,onChange:o=>a("color.type",o)}),i==="static"&&l(mn,{value:t.color.staticColor,onChange:o=>a("color.staticColor",o)}),i==="continuous"&&y(Oe,{children:[l(PT,{label:"Value Range",value:t.color.valueRange,type:"number",onChange:o=>a("color.valueRange",o)}),l(MT,{label:"Color Range",value:t.color.colorRange,onChange:o=>a("color.colorRange",o)})]})]})]})});j.default.forwardRef(function({value:t,onChange:n,data:r,withStyle:i=!0},a){const o=(s,u)=>{const d=De.default.cloneDeep(t);De.default.set(d,s,u),n(d)};return y(c.Box,{px:"sm",py:"md",ref:a,children:[l(c.Text,{weight:"bold",pb:0,children:t.name}),l(c.Divider,{my:"xs",label:"Data",labelPosition:"center"}),y(c.Group,{grow:!0,noWrap:!0,children:[l(c.TextInput,{label:"Name",required:!0,value:t.name,onChange:s=>o("name",s.currentTarget.value)}),l(ot,{label:"Data Field",required:!0,data:r,value:t.data_field,onChange:s=>o("data_field",s)})]}),l(Lf,{label:"Aggregation",value:t.aggregation,onChange:s=>o("aggregation",s)}),l(c.Divider,{my:"xs",label:"Format",labelPosition:"center"}),l(ar,{value:t.formatter,onChange:s=>o("formatter",s)}),i&&l(Ff,{value:t,onChange:n})]})});function AT(e){const t=Array.from(e).sort((r,i)=>r-i),n=Math.floor(t.length/2);return t.length%2===0?(t[n-1]+t[n])/2:t[n]}function IT(e,t){const n=e[t],r=Number(n);return isFinite(r)?r:0}function Xo(e,t,n){var i,a,o,s;const r=e.map(u=>IT(u,t));switch(n.type){case"sum":return De.default.sum(r);case"mean":return De.default.mean(r);case"median":return AT(r);case"max":return(i=De.default.max(r))!=null?i:0;case"min":return(a=De.default.min(r))!=null?a:0;case"quantile":return(o=yi.quantile(r,n.config.p))!=null?o:0;default:return(s=e[0])==null?void 0:s[t]}}var zf=function(){},li=function(){};process.env.NODE_ENV!=="production"&&(zf=function(e,t){!e&&typeof console<"u"&&console.warn(t)},li=function(e,t){if(!e)throw new Error(t)});const $T=(e,t,n)=>Math.min(Math.max(n,e),t),jf=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},Qo=(e,t,n)=>-n*e+n*t+e,Bf=(e,t)=>n=>Math.max(Math.min(n,t),e),si=e=>e%1?Number(e.toFixed(5)):e,sa=/(-)?([\d]*\.?[\d])+/g,Zo=/(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))/gi,NT=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;function ui(e){return typeof e=="string"}const ua={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Gf=Object.assign(Object.assign({},ua),{transform:Bf(0,1)});Object.assign(Object.assign({},ua),{default:1});const ci=(e=>({test:t=>ui(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}))("%");Object.assign(Object.assign({},ci),{parse:e=>ci.parse(e)/100,transform:e=>ci.transform(e*100)});const Jo=(e,t)=>n=>Boolean(ui(n)&&NT.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),Kf=(e,t,n)=>r=>{if(!ui(r))return r;const[i,a,o,s]=r.match(sa);return{[e]:parseFloat(i),[t]:parseFloat(a),[n]:parseFloat(o),alpha:s!==void 0?parseFloat(s):1}},or={test:Jo("hsl","hue"),parse:Kf("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+ci.transform(si(t))+", "+ci.transform(si(n))+", "+si(Gf.transform(r))+")"},LT=Bf(0,255),el=Object.assign(Object.assign({},ua),{transform:e=>Math.round(LT(e))}),Wn={test:Jo("rgb","red"),parse:Kf("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+el.transform(e)+", "+el.transform(t)+", "+el.transform(n)+", "+si(Gf.transform(r))+")"};function VT(e){let t="",n="",r="",i="";return e.length>5?(t=e.substr(1,2),n=e.substr(3,2),r=e.substr(5,2),i=e.substr(7,2)):(t=e.substr(1,1),n=e.substr(2,1),r=e.substr(3,1),i=e.substr(4,1),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const tl={test:Jo("#"),parse:VT,transform:Wn.transform},ca={test:e=>Wn.test(e)||tl.test(e)||or.test(e),parse:e=>Wn.test(e)?Wn.parse(e):or.test(e)?or.parse(e):tl.parse(e),transform:e=>ui(e)?e:e.hasOwnProperty("red")?Wn.transform(e):or.transform(e)},qf="${c}",Hf="${n}";function FT(e){var t,n,r,i;return isNaN(e)&&ui(e)&&((n=(t=e.match(sa))===null||t===void 0?void 0:t.length)!==null&&n!==void 0?n:0)+((i=(r=e.match(Zo))===null||r===void 0?void 0:r.length)!==null&&i!==void 0?i:0)>0}function Wf(e){typeof e=="number"&&(e=`${e}`);const t=[];let n=0;const r=e.match(Zo);r&&(n=r.length,e=e.replace(Zo,qf),t.push(...r.map(ca.parse)));const i=e.match(sa);return i&&(e=e.replace(sa,Hf),t.push(...i.map(ua.parse))),{values:t,numColors:n,tokenised:e}}function Uf(e){return Wf(e).values}function Yf(e){const{values:t,numColors:n,tokenised:r}=Wf(e),i=t.length;return a=>{let o=r;for(let s=0;s<i;s++)o=o.replace(s<n?qf:Hf,s<n?ca.transform(a[s]):si(a[s]));return o}}const zT=e=>typeof e=="number"?0:e;function jT(e){const t=Uf(e);return Yf(e)(t.map(zT))}const Xf={test:FT,parse:Uf,createTransformer:Yf,getAnimatableNone:jT};function nl(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Qf({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,a=0,o=0;if(!t)i=a=o=n;else{const s=n<.5?n*(1+t):n+t-n*t,u=2*n-s;i=nl(u,s,e+1/3),a=nl(u,s,e),o=nl(u,s,e-1/3)}return{red:Math.round(i*255),green:Math.round(a*255),blue:Math.round(o*255),alpha:r}}const BT=(e,t,n)=>{const r=e*e,i=t*t;return Math.sqrt(Math.max(0,n*(i-r)+r))},GT=[tl,Wn,or],Zf=e=>GT.find(t=>t.test(e)),Jf=e=>`'${e}' is not an animatable color. Use the equivalent color code instead.`,ep=(e,t)=>{let n=Zf(e),r=Zf(t);li(!!n,Jf(e)),li(!!r,Jf(t));let i=n.parse(e),a=r.parse(t);n===or&&(i=Qf(i),n=Wn),r===or&&(a=Qf(a),r=Wn);const o=Object.assign({},i);return s=>{for(const u in o)u!=="alpha"&&(o[u]=BT(i[u],a[u],s));return o.alpha=Qo(i.alpha,a.alpha,s),n.transform(o)}},KT=e=>typeof e=="number",qT=(e,t)=>n=>t(e(n)),tp=(...e)=>e.reduce(qT);function np(e,t){return KT(e)?n=>Qo(e,t,n):ca.test(e)?ep(e,t):ap(e,t)}const rp=(e,t)=>{const n=[...e],r=n.length,i=e.map((a,o)=>np(a,t[o]));return a=>{for(let o=0;o<r;o++)n[o]=i[o](a);return n}},HT=(e,t)=>{const n=Object.assign(Object.assign({},e),t),r={};for(const i in n)e[i]!==void 0&&t[i]!==void 0&&(r[i]=np(e[i],t[i]));return i=>{for(const a in r)n[a]=r[a](i);return n}};function ip(e){const t=Xf.parse(e),n=t.length;let r=0,i=0,a=0;for(let o=0;o<n;o++)r||typeof t[o]=="number"?r++:t[o].hue!==void 0?a++:i++;return{parsed:t,numNumbers:r,numRGB:i,numHSL:a}}const ap=(e,t)=>{const n=Xf.createTransformer(t),r=ip(e),i=ip(t);return r.numHSL===i.numHSL&&r.numRGB===i.numRGB&&r.numNumbers>=i.numNumbers?tp(rp(r.parsed,i.parsed),n):(zf(!0,`Complex values '${e}' and '${t}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`),o=>`${o>0?t:e}`)},WT=(e,t)=>n=>Qo(e,t,n);function UT(e){if(typeof e=="number")return WT;if(typeof e=="string")return ca.test(e)?ep:ap;if(Array.isArray(e))return rp;if(typeof e=="object")return HT}function YT(e,t,n){const r=[],i=n||UT(e[0]),a=e.length-1;for(let o=0;o<a;o++){let s=i(e[o],e[o+1]);if(t){const u=Array.isArray(t)?t[o]:t;s=tp(u,s)}r.push(s)}return r}function XT([e,t],[n]){return r=>n(jf(e,t,r))}function QT(e,t){const n=e.length,r=n-1;return i=>{let a=0,o=!1;if(i<=e[0]?o=!0:i>=e[r]&&(a=r-1,o=!0),!o){let u=1;for(;u<n&&!(e[u]>i||u===r);u++);a=u-1}const s=jf(e[a],e[a+1],i);return t[a](s)}}function rl(e,t,{clamp:n=!0,ease:r,mixer:i}={}){const a=e.length;li(a===t.length,"Both input and output ranges must be the same length"),li(!r||!Array.isArray(r)||r.length===a-1,"Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values."),e[0]>e[a-1]&&(e=[].concat(e),t=[].concat(t),e.reverse(),t.reverse());const o=YT(t,r,i),s=a===2?XT(e,o):QT(e,o);return n?u=>s($T(e[0],e[a-1],u)):s}class ZT{constructor({valueRange:t,colorRange:n}){pe(this,"mapper");this.mapper=rl(t,n)}getColor(t){return this.mapper(t)}}function JT(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array(${e.length})`:e.toString()}function il({data_field:e,aggregation:t},n){return Xo(n,e,t)}function di({formatter:e},t){return["string","number"].includes(typeof t)?$t.default(t).format(e):JT(t)}function eO(e,t){if(e.type==="static")return e.staticColor;if(e.type==="continuous")try{return new ZT(e).getColor(t)}catch{return"black"}return"black"}function op(e,t){const{color:n,data_field:r,aggregation:i,size:a,weight:o}=e,s=Xo(t,r,i),u=di(e,s);return l(c.Text,{sx:{fontSize:a,display:"inline"},color:eO(n,s),weight:o,children:u})}function tO(e,t){const n={};return e.forEach(r=>{const i=r.name;n[i]=op(r,t)}),n}function nO(e){return e.split(" ").map((t,n)=>y(j.default.Fragment,{children:[t,"\xA0"]},n))}function rO(e){const n=e.replaceAll("<br />","<br/>").replaceAll(`
|
|
103
|
-
`,"<br/>").split("<br/>");return n.map((i,a)=>{const o=[nO(i)];return a!==n.length-1&&o.push(l("br",{})),o}).flat().filter(i=>i!==void 0)}function al(e){return rO(e)}function fi(e,t,n){const r=tO(t,n),i=/^\{(.+)\}(.*)$/;return e.split("$").map(a=>{var d;const o=i.exec(a);if(!o)return al(a);const s=r[o[1]];if(!s)return al(a);const u=(d=o[2])!=null?d:"";return y(Oe,{children:[s,al(u)]})})}function iO(e,t){const n={};return e.forEach(r=>{const{name:i,data_field:a,aggregation:o}=r,s=Xo(t,a,o);n[i]=di(r,s)}),n}function ol(e,t,n){const r=iO(t,n),i=/^\{(.+)\}(.*)$/;return e.split("$").map(a=>{var d;const o=i.exec(a);if(!o)return a;const s=r[o[1]];if(!s)return a;const u=(d=o[2])!=null?d:"";return`${s}${u}`}).join("")}function da({enabled:e,func_content:t}){return(n,r)=>{if(!e)return n;try{return new Function(`return ${t}`)()(n,r)}catch(i){return console.error(`[getEchartsXAxisLabel] failed parsing custom function, error: ${i.message}`),n}}}const ll=["max","q3","median","q1","min"];function aO({config:e}){return{show:!0,bottom:0,left:"center",type:"scroll",data:[{name:"Box",icon:"roundRect",itemStyle:{color:e.color}},{name:"Outlier",icon:"circle",itemStyle:{color:"#2F8CC0"}}]}}function oO(e){return`
|
|
102
|
+
`,TE=()=>{const[e,t]=x.useState(!1);return y(Oe,{children:[l(c.Button,{variant:"subtle",compact:!0,onClick:()=>t(n=>!n),children:e?"Close":"Click to see expected data structure"}),l(c.Collapse,{in:e,children:l(In.Prism,{language:"typescript",noCopy:!0,colorScheme:"dark",children:EE})})]})},OE=X.observer(function({config:t}){return y(Oe,{children:[l(c.TextInput,{label:"Min-width",value:t.min_width,onChange:n=>t.setMinWidth(n.currentTarget.value),placeholder:"200px"}),l(c.Divider,{label:"Fetch options from database",labelPosition:"center"}),l(c.Checkbox,{checked:t.select_first_by_default,onChange:n=>t.setSelectFirstByDefault(n.currentTarget.checked),label:"Select the first option by default"}),l(Ho,{value:t.options_query_id,onChange:t.setOptionsQueryID}),l(TE,{})]})}),ME=X.observer(function({filter:t}){const n=t.plainDefaultValue,[r,i]=j.default.useState(n);return j.default.useEffect(()=>{i(n)},[n]),y(c.Box,{sx:{maxWidth:"30em"},children:[l(c.Text,{pb:"md",color:"gray",children:"Preview"}),l(Ud,{filter:t,value:r,onChange:i}),l(c.Text,{pt:"lg",pb:"md",color:"gray",children:"Config"}),l(In.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(t,null,4)})]})}),DE={select:xE,"multi-select":wE,"tree-select":OE,"text-input":_E,checkbox:yE,"date-range":CE},RE=[{label:"Select",value:"select"},{label:"Multi Select",value:"multi-select"},{label:"Tree Select",value:"tree-select"},{label:"Text Input",value:"text-input"},{label:"Checkbox",value:"checkbox"},{label:"Date Range",value:"date-range"}],kE=X.observer(function({filter:t,index:n}){const r=et(),i=j.default.useMemo(()=>DE[t.type],[t.type]);return y(c.SimpleGrid,{cols:2,children:[y(c.Box,{pl:"md",children:[l(c.Text,{pb:"md",color:"gray",children:"Edit"}),y(c.Stack,{sx:{maxWidth:"30em"},children:[y(c.Group,{noWrap:!0,children:[l(c.NumberInput,{label:"Placement Order",required:!0,value:t.order,onChange:t.setOrder,hideControls:!0,sx:{flexGrow:"1 !important"}}),l(c.Checkbox,{label:"Submit automatically",checked:t.auto_submit,onChange:a=>t.setAutoSubmit(a.currentTarget.checked),mt:22})]}),l(c.MultiSelect,{label:"Visible in...",data:r.views.options,value:[...t.visibleInViewsIDs],onChange:t.setVisibleInViewsIDs}),l(c.TextInput,{label:"Key",placeholder:"A unique key to refer",required:!0,value:t.key,onChange:a=>{t.setKey(a.currentTarget.value)}}),l(c.TextInput,{label:"Label",placeholder:"Label for this field",required:!0,value:t.label,onChange:a=>{t.setLabel(a.currentTarget.value)}}),l(c.Select,{label:"Widget",data:RE,required:!0,value:t.type,onChange:t.setType}),l(i,{config:t.config,index:n})]})]}),l(ME,{filter:t})]})}),OI="",PE=X.observer(function(){const t=et(),n=t.filters.current,r=()=>{const i=bt.randomId(),a={id:i,key:i,label:i,order:n.length+1,type:Wt.TextInput,config:nf(),visibleInViewsIDs:["Main"],auto_submit:!1};t.filters.append(a)};return y(c.Box,{sx:{height:"90vh",maxHeight:"calc(100vh - 185px)"},p:0,children:[l(c.Group,{sx:{position:"absolute",top:"16px",right:"16px"},children:l(c.Button,{size:"xs",color:"red",leftIcon:l(W.Recycle,{size:20}),disabled:!t.filtersChanged,onClick:t.resetFilters,children:"Revert Changes"})}),l(c.Tabs,{className:"filter-settings-tabs",orientation:"vertical",defaultValue:t.filters.firstID,styles:{root:{display:"block"}},children:y(c.Group,{sx:{height:"100%"},children:[y(c.Stack,{sx:{height:"100%"},children:[l(c.Tabs.List,{position:"left",sx:{flexGrow:1,width:"200px"},children:t.filters.current.map(i=>l(c.Tabs.Tab,{value:i.id,sx:{maxWidth:"100%",overflow:"scroll"},children:i.label},i.id))}),l(c.Button,{size:"xs",color:"blue",leftIcon:l(W.PlaylistAdd,{size:20}),onClick:r,children:"Add a Filter"})]}),l(c.Box,{sx:{flexGrow:1,height:"100%"},children:t.filters.current.map((i,a)=>l(c.Tabs.Panel,{value:i.id,sx:{height:"100%"},children:y(c.Stack,{sx:{height:"100%"},spacing:"sm",children:[l(c.Box,{sx:{flexGrow:1,maxHeight:"calc(100% - 52px)",overflow:"scroll"},children:l(kE,{filter:i,index:a})}),l(c.Group,{position:"right",pt:10,children:l(c.Button,{size:"xs",color:"red",leftIcon:l(W.Trash,{size:20}),onClick:()=>t.filters.remove(a),children:"Delete this filter"})})]})},i.id))})]})})]})}),AE=X.observer(function({opened:t,close:n}){const{freezeLayout:r}=j.default.useContext(sn);return j.default.useEffect(()=>{r(t)},[t]),l(c.Modal,{size:"96vw",overflow:"inside",opened:t,onClose:n,title:"Filters",trapFocus:!0,onDragStart:i=>{i.stopPropagation()},withCloseButton:!1,children:l(PE,{})})});var af=(e=>(e.Use="use",e.Edit="edit",e))(af||{}),an=(e=>(e.Division="div",e.Modal="modal",e))(an||{}),of=(e=>(e.Select="select",e.MultiSelect="multi-select",e.TextInput="text-input",e.Checkbox="checkbox",e.DateRange="date-range",e))(of||{});const IE=X.observer(()=>{const t=et().views.VIE;return!t||t.type!==an.Division?null:y(c.Stack,{children:[l(c.Divider,{mt:8,mb:0,label:"Division settings",labelPosition:"center"}),l(c.Text,{align:"center",size:"xs",color:"dimmed",children:"Under construction"})]})}),$E=X.observer(()=>{const t=et().views.VIE;return!t||t.type!==an.Modal?null:y(c.Stack,{children:[l(c.Divider,{mt:8,label:"Modal settings",labelPosition:"center"}),y(c.Group,{grow:!0,children:[l(c.TextInput,{label:"Width",value:t.config.width,onChange:n=>t.updateConfig("width",n.currentTarget.value),placeholder:"600px / 50vw"}),l(c.TextInput,{label:"Height",value:t.config.height,onChange:n=>t.updateConfig("height",n.currentTarget.value),placeholder:"600px / 50vw"})]})]})}),NE=X.observer(()=>y(Oe,{children:[l(IE,{}),l($E,{})]})),LE=[{label:"Division",value:an.Division},{label:"Modal",value:an.Modal}],VE=X.observer(()=>{const t=et().views.VIE;return t?y(c.Stack,{sx:{position:"relative"},children:[l(c.TextInput,{label:"Name",value:t.name,onChange:n=>{t.setName(n.currentTarget.value)}}),l(c.Select,{label:"Type",value:t.type,onChange:t.setType,data:LE}),l(NE,{})]}):null}),FE=X.observer(({opened:e,close:t})=>{var i;const n=et(),{freezeLayout:r}=j.default.useContext(sn);return j.default.useEffect(()=>{r(e)},[e]),l(c.Modal,{size:"500px",overflow:"inside",opened:e,onClose:t,withCloseButton:!1,styles:{header:{width:"100%"},title:{width:"100%"}},title:y(c.Group,{position:"apart",children:[y(c.Text,{sx:{flexGrow:1},children:["Editing ",(i=n.views.VIE)==null?void 0:i.name]}),l(c.ActionIcon,{size:18,color:"red",onClick:n.views.removeVIE,disabled:n.views.isVIETheFirstView,children:l(W.Trash,{size:18})})]}),trapFocus:!0,onDragStart:a=>{a.stopPropagation()},children:l(VE,{})})}),zE=x.forwardRef(({label:e,type:t,...n},r)=>t!=="TRIGGER_TO_ADD"?l("div",{ref:r,...n,children:y(c.Group,{noWrap:!0,position:"apart",children:[l(c.Text,{size:"sm",children:e}),l(c.Text,{size:"xs",color:"dimmed",children:t})]})}):l("div",{ref:r,...n,children:l(c.Group,{noWrap:!0,grow:!0,children:l(c.Text,{size:"sm",align:"center",color:"#228be6",children:e})})})),lf="TRIGGER_TO_ADD",jE=X.observer(({value:e,onChange:t,triggerAdd:n,triggerEdit:r,options:i})=>{const a=x.useMemo(()=>[...i,{label:"Add a View",value:lf,type:"TRIGGER_TO_ADD"}],[i,n]),o=s=>{s!==lf?t(s):n()};return y(c.Group,{position:"left",spacing:0,sx:{minWidth:"260px"},children:[l(c.Select,{value:e,onChange:o,placeholder:"Pick a View",itemComponent:zE,data:a,nothingFound:"Empty",sx:{flexGrow:1},styles:{input:{borderTopRightRadius:0,borderBottomRightRadius:0}}}),l(c.ActionIcon,{onClick:r,variant:"default",size:36,sx:{borderLeft:0,borderTopLeftRadius:0,borderBottomLeftRadius:0,"&:active":{transform:"none",svg:{transform:"translateY(1px)"}}},children:l(W.Settings,{size:20})})]})}),BE=X.observer(()=>{const e=et(),[t,n]=x.useState(!1),r=()=>{n(!0)},i=()=>{n(!1)};return y(Oe,{children:[l(jE,{value:e.views.idOfVIE,onChange:e.views.setIDOfVIE,triggerAdd:e.views.addARandomNewView,triggerEdit:r,options:e.views.options}),l(FE,{opened:t,close:i})]})}),sf={"> button":{"&:first-of-type":{borderTopRightRadius:0,borderBottomRightRadius:0,borderRightWidth:.5},"&:last-of-type":{borderTopLeftRadius:0,borderBottomLeftRadius:0,borderLeftWidth:.5}}},uf=X.observer(function({saveChanges:t}){const n=et(),r=j.default.useCallback(()=>{const b=n.queries.json,w=n.views.json,S=n.sqlSnippets.json,D=n.filters.current,_=n.mock_context.current;return{filters:D,views:w,definition:{sqlSnippets:S,queries:b,mock_context:_},version:n.version}},[n]),i=()=>{n.reset()},a=n.changed,{inEditMode:o,inUseMode:s}=j.default.useContext(sn),[u,d]=j.default.useState(!1),f=()=>d(!0),p=()=>d(!1),[h,g]=j.default.useState(!1),v=()=>g(!0),m=()=>g(!1),C=()=>{const b=JSON.stringify(r(),null,2);F1(n.name,b)};return y(c.Group,{position:"apart",pt:0,px:10,pb:"xs",children:[l(c.Group,{position:"left",children:o&&l(BE,{})}),y(c.Group,{position:"right",sx:{button:{minWidth:"40px"}},children:[o&&y(Oe,{children:[l(c.Button,{variant:"filled",size:"xs",disabled:!n.views.VIE,onClick:n.views.addAPanelToVIE,leftIcon:l(W.PlaylistAdd,{size:20}),children:"Add a Panel"}),y(c.Group,{spacing:0,sx:sf,children:[l(c.Tooltip,{label:"Filters",children:l(c.ActionIcon,{variant:"default",size:"md",onClick:v,children:l(W.Filter,{size:20})})}),l(c.Tooltip,{label:"Data Settings",children:l(c.ActionIcon,{variant:"default",size:"md",onClick:f,children:l(W.Database,{size:20})})})]}),y(c.Group,{spacing:0,sx:sf,children:[l(c.Tooltip,{label:"Save Changes",children:l(c.ActionIcon,{variant:"default",size:"md",onClick:t,disabled:!a,children:l(W.DeviceFloppy,{size:20,color:"green"})})}),l(c.Tooltip,{label:"Revert Changes",children:l(c.ActionIcon,{variant:"default",size:"md",disabled:!a,onClick:i,children:l(W.Recycle,{size:20,color:"red"})})})]})]}),!s&&y(c.Menu,{width:180,trigger:"hover",children:[l(c.Menu.Target,{children:l(c.ActionIcon,{variant:"default",size:"md",children:l(W.Share,{size:20})})}),y(c.Menu.Dropdown,{children:[l(c.Menu.Item,{icon:l(W.Download,{size:14}),onClick:n.queries.downloadAllData,children:"Download Data"}),l(c.Menu.Item,{icon:l(W.Code,{size:14}),onClick:C,children:"Download Schema"})]})]})]}),l(AE,{opened:h,close:m}),l(mE,{opened:u,close:p})]})}),MI="",cf=Lt.Mark.create({name:"textStyle",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"span",getAttrs:e=>e.hasAttribute("style")?{}:!1}]},renderHTML({HTMLAttributes:e}){return["span",Lt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{removeEmptyTextStyle:()=>({state:e,commands:t})=>{const n=Lt.getMarkAttributes(e,this.type);return Object.entries(n).some(([,i])=>!!i)?!0:t.unsetMark(this.name)}}}}),df=Lt.Extension.create({name:"color",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{color:{default:null,parseHTML:e=>{var t;return(t=e.style.color)===null||t===void 0?void 0:t.replace(/['"]+/g,"")},renderHTML:e=>e.color?{style:`color: ${e.color}`}:{}}}}]},addCommands(){return{setColor:e=>({chain:t})=>t().setMark("textStyle",{color:e}).run(),unsetColor:()=>({chain:e})=>e().setMark("textStyle",{color:null}).removeEmptyTextStyle().run()}}}),GE=/(?:^|\s)((?:==)((?:[^~=]+))(?:==))$/,KE=/(?:^|\s)((?:==)((?:[^~=]+))(?:==))/g,ff=Lt.Mark.create({name:"highlight",addOptions(){return{multicolor:!1,HTMLAttributes:{}}},addAttributes(){return this.options.multicolor?{color:{default:null,parseHTML:e=>e.getAttribute("data-color")||e.style.backgroundColor,renderHTML:e=>e.color?{"data-color":e.color,style:`background-color: ${e.color}; color: inherit`}:{}}}:{}},parseHTML(){return[{tag:"mark"}]},renderHTML({HTMLAttributes:e}){return["mark",Lt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{setHighlight:e=>({commands:t})=>t.setMark(this.name,e),toggleHighlight:e=>({commands:t})=>t.toggleMark(this.name,e),unsetHighlight:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-h":()=>this.editor.commands.toggleHighlight()}},addInputRules(){return[Lt.markInputRule({find:GE,type:this.type})]},addPasteRules(){return[Lt.markPasteRule({find:KE,type:this.type})]}}),pf=Lt.Extension.create({name:"placeholder",addOptions(){return{emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",placeholder:"Write something \u2026",showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[new kh.Plugin({props:{decorations:({doc:e,selection:t})=>{const n=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:r}=t,i=[];if(!n)return null;const a=e.type.createAndFill(),o=(a==null?void 0:a.sameMarkup(e))&&a.content.findDiffStart(e.content)===null;return e.descendants((s,u)=>{const d=r>=u&&r<=u+s.nodeSize,f=!s.isLeaf&&!s.childCount;if((d||!this.options.showOnlyCurrent)&&f){const p=[this.options.emptyNodeClass];o&&p.push(this.options.emptyEditorClass);const h=Yl.Decoration.node(u,u+s.nodeSize,{class:p.join(" "),"data-placeholder":typeof this.options.placeholder=="function"?this.options.placeholder({editor:this.editor,node:s,pos:u,hasAnchor:d}):this.options.placeholder});i.push(h)}return this.options.includeChildren}),Yl.DecorationSet.create(e,i)}}})]}}),hf=Lt.Mark.create({name:"subscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sub"},{style:"vertical-align",getAttrs(e){return e!=="sub"?!1:null}}]},renderHTML({HTMLAttributes:e}){return["sub",Lt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{setSubscript:()=>({commands:e})=>e.setMark(this.name),toggleSubscript:()=>({commands:e})=>e.toggleMark(this.name),unsetSubscript:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-,":()=>this.editor.commands.toggleSubscript()}}}),gf=Lt.Mark.create({name:"superscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sup"},{style:"vertical-align",getAttrs(e){return e!=="super"?!1:null}}]},renderHTML({HTMLAttributes:e}){return["sup",Lt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{setSuperscript:()=>({commands:e})=>e.setMark(this.name),toggleSuperscript:()=>({commands:e})=>e.toggleMark(this.name),unsetSuperscript:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-.":()=>this.editor.commands.toggleSuperscript()}}}),vf=Lt.Extension.create({name:"textAlign",addOptions(){return{types:[],alignments:["left","center","right","justify"],defaultAlignment:"left"}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:e=>e.style.textAlign||this.options.defaultAlignment,renderHTML:e=>e.textAlign===this.options.defaultAlignment?{}:{style:`text-align: ${e.textAlign}`}}}}]},addCommands(){return{setTextAlign:e=>({commands:t})=>this.options.alignments.includes(e)?this.options.types.every(n=>t.updateAttributes(n,{textAlign:e})):!1,unsetTextAlign:()=>({commands:e})=>this.options.types.every(t=>e.resetAttributes(t,"textAlign"))}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign("left"),"Mod-Shift-e":()=>this.editor.commands.setTextAlign("center"),"Mod-Shift-r":()=>this.editor.commands.setTextAlign("right"),"Mod-Shift-j":()=>this.editor.commands.setTextAlign("justify")}}}),mf=Lt.Mark.create({name:"underline",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:e=>e.includes("underline")?{}:!1}]},renderHTML({HTMLAttributes:e}){return["u",Lt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{setUnderline:()=>({commands:e})=>e.setMark(this.name),toggleUnderline:()=>({commands:e})=>e.toggleMark(this.name),unsetUnderline:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),yf=({value:e,styles:t={}})=>{const n=Xl.useEditor({extensions:[Zl.default,mf,We.Link,gf,hf,ff,vf.configure({types:["heading","paragraph"]}),pf.configure({placeholder:"This is placeholder"}),cf,df],content:e,editable:!1});return l(We.RichTextEditor,{editor:n,styles:t,children:l(We.RichTextEditor.Content,{})})},bf=X.observer(()=>{const{freezeLayout:e}=j.default.useContext(sn),[t,n]=j.default.useState(!1),{panel:r}=Pt();return j.default.useEffect(()=>{e(t)},[t]),!r.description||r.description==="<p><br></p>"?null:y(Oe,{children:[l(c.Modal,{opened:t,onClose:()=>n(!1),title:r.title,withCloseButton:!1,children:l(yf,{value:r.description,styles:{root:{border:"none"},content:{padding:0}}})}),l(c.Tooltip,{label:"Click to see description",position:"top-start",withinPortal:!0,children:l(c.ActionIcon,{variant:"subtle",color:"blue",onClick:()=>n(i=>!i),sx:{verticalAlign:"baseline",cursor:"pointer"},children:l(W.InfoCircle,{size:20})})})]})}),Cf=e=>{const{title:t="Variables",variables:n}=e,r=bt.useClipboard(),i=a=>{r.copy(a),mi.showNotification({color:"green",message:"Copied to clipboard"})};return y(c.Paper,{withBorder:!0,p:"sm",children:[l(c.Text,{size:"xs",color:"dimmed",mb:"sm",children:t}),l(c.Stack,{style:{maxHeight:"500px"},children:n.map(a=>y(c.Text,{size:"sm",children:[y(c.Code,{color:"teal",children:["// ",a.description]}),l("br",{}),y(c.Code,{onClick:()=>i(a.name),style:{cursor:"pointer"},children:[a.name," : ",a.valueType]})]},a.name))})]})};class qE{constructor(t,n){pe(this,"operationId");pe(this,"operation");pe(this,"operationSchema");pe(this,"variables",[]);this.operationManager=t,this.instance=n,kt.makeAutoObservable(this)}get schemaList(){return this.operationManager.getOperationSchemaList()}async configOperation(t,n){const r=await this.operationManager.retrieveTrigger(t),i=this.operationManager.getOperationSchemaList().find(a=>a.id===(r==null?void 0:r.schemaRef));kt.runInAction(()=>{this.operationId=t,this.operation=r,this.operationSchema=i,this.variables=n})}async changeSchema(t){this.operationId&&(await this.operationManager.createOrGetOperation(this.operationId,t),await this.configOperation(this.operationId,this.variables))}}function HE(e){return!!e.operationId}const WE=X.observer(({model:e,onClick:t})=>{var r;const n=(r=e.operationSchema)==null?void 0:r.displayName;return l(c.Button,{variant:"outline",onClick:t,children:n})}),UE=X.observer(({model:e})=>{const t={operation:e.operation,instance:e.instance,variables:[]};return x.createElement(e.operationSchema.configRender,t)});function YE({model:e}){const t=e.schemaList,n=t.map(i=>({label:i.displayName,value:i.id}));async function r(i){await e.changeSchema(t.find(a=>a.id===i))}return l(c.Select,{label:"Operation",data:n,onChange:r,value:e.operationSchema.id})}const XE=X.observer(e=>{const[t,{setTrue:n,setFalse:r}]=Ze.useBoolean(!1),{operationManager:i,operationId:a,instance:o,variables:s}=e,u=Ze.useCreation(()=>new qE(i,o),[i,o]);return Ze.useAsyncEffect(async()=>{await u.configOperation(a,s)},[a,u]),HE(u)?y(Oe,{children:[l(WE,{model:u,onClick:n}),l(c.Modal,{opened:t,onClose:r,title:"Operation Settings",closeButtonLabel:"close",children:y(c.Stack,{children:[l(YE,{model:u}),l(UE,{model:u}),l(Cf,{title:"Variables",variables:u.variables})]})})]}):null});class QE{constructor(t,n){pe(this,"triggerId");pe(this,"trigger");pe(this,"triggerSchema");pe(this,"sampleData");this.triggerManager=t,this.instance=n,kt.makeAutoObservable(this)}get schemaList(){return this.triggerManager.getTriggerSchemaList()}async configTrigger(t,n){const r=await this.triggerManager.retrieveTrigger(t),i=this.triggerManager.getTriggerSchemaList().find(a=>a.id===(r==null?void 0:r.schemaRef));kt.runInAction(()=>{this.triggerId=t,this.trigger=r,this.triggerSchema=i,this.sampleData=n})}async changeSchema(t){this.triggerId&&(await this.triggerManager.createOrGetTrigger(this.triggerId,t),await this.configTrigger(this.triggerId,this.sampleData))}isReady(){return ZE(this)}}function ZE(e){return!!e.triggerId&&!!e.triggerSchema}function JE(e,t){return Ze.useCreation(()=>new QE(e,t),[e,t])}const eT=X.observer(({model:e,onClick:t})=>{const n=e.triggerSchema.nameRender,r={trigger:e.trigger,instance:e.instance,sampleData:e.sampleData};return l(c.Button,{variant:"outline",onClick:t,children:x.createElement(n,r)})}),tT=X.observer(({model:e})=>{const t=e.schemaList,n=t.map(i=>({label:i.displayName,value:i.id}));async function r(i){await e.changeSchema(t.find(a=>a.id===i))}return l(c.Select,{label:"Trigger",data:n,value:e.triggerSchema.id,onChange:r})}),nT=X.observer(({model:e})=>{const t={trigger:e.trigger,instance:e.instance,sampleData:e.sampleData};return x.createElement(e.triggerSchema.configRender,t)}),rT=X.observer(e=>{const[t,{setTrue:n,setFalse:r}]=Ze.useBoolean(!1),i=e.model;return y(Oe,{children:[l(c.Modal,{opened:t,onClose:r,title:"Setup Trigger",closeButtonLabel:"close setup",children:y(c.Stack,{children:[l(tT,{model:i}),l(nT,{model:i}),l(Cf,{title:"Payload",variables:i.triggerSchema.payload})]})}),l(eT,{onClick:n,model:i})]})});class Pr{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,L.omit(n,t))}async getItem(t){const n=await this.root.getItem(this.path);return t===null?n:L.get(n,t)}async setItem(t,n){if(t===null)await this.root.setItem(this.path,n);else{const r=await this.root.getItem(this.path)||{};await this.root.setItem(this.path,{...r,[t]:n})}return await this.getItem(t)}watchItem(t,n,r){return t===null?this.root.watchItem(this.path,(i,a)=>{n(i,a)},r):this.root.watchItem(this.path,(i,a)=>{const o=L.get(i,t),s=L.get(a,t);o!==s&&n(o,s)},r)}}class Wo{constructor(t,n,r){pe(this,"attachmentStorage");this.instance=t,this.attachmentKey=n,this.constructInstance=r,this.attachmentStorage=new Pr(t.instanceData,n)}async getInstance(t){if(await this.attachmentStorage.getItem(t))return this.constructInstance(new Pr(this.attachmentStorage,t))}async create(t,n){return await this.attachmentStorage.setItem(t,n),this.constructInstance(new Pr(this.attachmentStorage,t))}async remove(t){await this.attachmentStorage.deleteItem(t)}async list(){const t=await this.attachmentStorage.getItem(null);return Promise.all(L.values(t).map(n=>this.constructInstance(new Pr(this.attachmentStorage,n.id))))}}class Sf{constructor(t){pe(this,"rootRef");this.rootRef=kt.observable({current:t})}async deleteItem(t){kt.runInAction(()=>{L.unset(this.rootRef.current,[t])})}getItem(t){const n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?kt.toJS(this.rootRef.current):L.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(L.isObject(n))kt.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else kt.runInAction(()=>{L.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,r){return kt.reaction(()=>this.getValueFromRoot(t),(i,a)=>{n(i,a)},{requiresObservable:!0,fireImmediately:L.get(r,"fireImmediately",!1)})}}class iT{constructor(){pe(this,"channels",new Map);pe(this,"globalChannel",new Jl.default)}getChannel(t){const n=this.channels.get(t);if(n)return n;const r=new Jl.default;return this.channels.set(t,r),r}}class aT{constructor(t){pe(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 r={id:t.id,name:t.viz.type,type:t.viz.type,messageChannels:new iT,instanceData:new Sf(t.viz.conf)};return this.instances.set(t.id,r),r}}function wf(e,t,n,r){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new Sf({}),colorPalette:{getColor(){return()=>""}},data:t,variables:r}}const oT=e=>{const{panel:t,vizManager:n,data:r,variables:i}=e,a=n.resolveComponent(t.viz.type),o=n.getOrCreateInstance(t),s={...wf(o,r,n,i),viewport:{width:t.layout.w,height:t.layout.h}},u=a.viewRender;return l(u,{context:s,instance:o,...L.omit(e,["panel","vizManager","data"])})},lT=e=>{const{vizManager:t,panel:n,panelInfoEditor:r,data:i,variables:a}=e,o=t.resolveComponent(n.viz.type),s=t.getOrCreateInstance(n),u={...wf(s,i,t,a),panelInfoEditor:r},d=o.configRender;return l(d,{context:u,instance:s,...L.omit(e,["panel","vizManager","data","panelInfoEditor"])})},xf=(e,t)=>{const n=Vr.default.bezier(e),r=Vr.default.bezier(t);return function(i){return i<50?n(i*2/100).hex():r((i-50)*2/100).hex()}},oa=e=>{const t=Vr.default.bezier(e);return function(n){return t(n/100).hex()}},sT={type:"interpolation",displayName:"Red / Green",getColor:xf(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},uT={type:"interpolation",displayName:"Yellow / Blue",getColor:xf(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},cT={type:"interpolation",displayName:"Red",getColor:oa(["#fff7f1","darkred"]),name:"red",category:"sequential"},dT={type:"interpolation",displayName:"Green",getColor:oa(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},fT={type:"interpolation",displayName:"Blue",getColor:oa(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},pT={type:"interpolation",displayName:"Orange",getColor:oa(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"},_f="@devtable/dashboard",Uo="6.37.0",Ef="Apache-2.0",Tf={access:"public",registry:"https://registry.npmjs.org/"},Of=["dist"],Mf="./dist/dashboard.umd.js",Df="./dist/dashboard.es.js",Rf="./dist/index.d.ts",kf={".":{import:"./dist/dashboard.es.js",require:"./dist/dashboard.umd.js"},"./dist/style.css":{import:"./dist/style.css",require:"./dist/style.css"}},Pf={"dev-build":"tsc && vite build --watch",build:"tsc && vite build",preview:"vite preview",test:"vitest","test:ui":"vitest --ui",coverage:"vitest --coverage"},Af={"@monaco-editor/react":"4.4.6","@types/chroma-js":"^2.1.4","file-saver":"2.0.5","performant-array-to-tree":"1.11.0",popmotion:"^11.0.3","rc-tree-select":"5.5.5",stickybits:"3.7.11"},If={"@mantine/core":"5.9.5","@mantine/dates":"5.9.5","@mantine/form":"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.118.0","@testing-library/cypress":"^8.0.3","@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.0-beta.209","@tiptap/extension-color":"^2.0.0-beta.209","@tiptap/extension-highlight":"^2.0.0-beta.209","@tiptap/extension-link":"^2.0.0-beta.209","@tiptap/extension-placeholder":"^2.0.0-beta.209","@tiptap/extension-subscript":"^2.0.0-beta.209","@tiptap/extension-superscript":"^2.0.0-beta.209","@tiptap/extension-text-align":"^2.0.0-beta.209","@tiptap/extension-text-style":"^2.0.0-beta.209","@tiptap/extension-underline":"^2.0.0-beta.209","@tiptap/react":"^2.0.0-beta.209","@tiptap/starter-kit":"^2.0.0-beta.209","@types/crypto-js":"v4.1.1","@types/d3-array":"3.0.3","@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.11.0",axios:"^0.27.2","crypto-js":"^4.1.1",cypress:"^10.6.0","cypress-wait-until":"^1.7.2",echarts:"^5.3.2","echarts-for-react":"^3.0.2","echarts-gl":"^2.0.9","echarts-stat":"1.2.0",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.6.0","tabler-icons-react":"^1.48.0",typescript:"^4.6.3"},$f={"@emotion/react":"11.10.0","@mantine/core":"5.9.5","@mantine/dates":"5.9.5","@mantine/form":"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.118.0","@tanstack/react-table":"^8.5.13","@tiptap/extension-code-block-lowlight":"^2.0.0-beta.209","@tiptap/extension-color":"^2.0.0-beta.209","@tiptap/extension-highlight":"^2.0.0-beta.209","@tiptap/extension-link":"^2.0.0-beta.209","@tiptap/extension-placeholder":"^2.0.0-beta.209","@tiptap/extension-subscript":"^2.0.0-beta.209","@tiptap/extension-superscript":"^2.0.0-beta.209","@tiptap/extension-text-align":"^2.0.0-beta.209","@tiptap/extension-text-style":"^2.0.0-beta.209","@tiptap/extension-underline":"^2.0.0-beta.209","@tiptap/react":"^2.0.0-beta.209","@tiptap/starter-kit":"^2.0.0-beta.209",ahooks:"^3.3.11",axios:"^0.27.2","chroma-js":"^2.4.2","d3-array":"3.2.0","d3-regression":"1.2.8",dayjs:"1.11.6",echarts:"^5.3.2","echarts-for-react":"^3.0.2","echarts-gl":"^2.0.9","echarts-stat":"1.2.0",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-virtual":"^2.10.4","tabler-icons-react":"^1.48.0"},hT=Object.freeze(Object.defineProperty({__proto__:null,name:_f,version:Uo,license:Ef,publishConfig:Tf,files:Of,main:Mf,module:Df,types:Rf,exports:kf,scripts:Pf,dependencies:Af,devDependencies:If,peerDependencies:$f,default:{name:_f,version:Uo,license:Ef,publishConfig:Tf,files:Of,main:Mf,module:Df,types:Rf,exports:kf,scripts:Pf,dependencies:Af,devDependencies:If,peerDependencies:$f}},Symbol.toStringTag,{value:"Module"}));class gT{constructor(t){pe(this,"staticColors",new Map);pe(this,"interpolations",new Map);t.installedPlugins.forEach(n=>{n.manifest.color.forEach(r=>{this.register(r)})})}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 vT{constructor(){pe(this,"plugins",new Map);pe(this,"vizComponents",new Map);pe(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())}}class mT{constructor(){pe(this,"migrations",[])}version(t,n){return this.migrations.push({version:t,handler:n}),this}run(t,n,r){var o;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 i=this.migrations.filter(s=>s.version>t.from&&s.version<=t.to),a=L.orderBy(i,"version","asc");if(((o=L.last(a))==null?void 0:o.version)!==t.to)throw new Error(`Migration to version ${t.to} not found`);return a.reduce((s,u)=>u.handler(s,r),n)}}class Ft extends mT{constructor(){super(),this.configVersions()}version(t,n){return super.version(t,(r,i)=>({version:t,...n(r,i)}))}async migrate({configData:t,panelModel:n}){const r=await t.getItem(null),i=L.get(r,"version",0),a=this.run({from:i,to:this.VERSION},r,{panelModel:n});await t.setItem(null,a)}async needMigration({configData:t}){const n=await t.getItem(null);return L.get(n,"version",0)<this.VERSION}}const Ue=(e,t)=>{const[n,{setFalse:r}]=Ze.useBoolean(!0),[i,a]=x.useState();x.useEffect(()=>(e.getItem(t).then(s=>{a(s),r()}),e.watchItem(t,s=>{a(s)})));const o=x.useCallback(async s=>{await e.setItem(t,s),a(s)},[e,t]);return{loading:n,value:i,set:o}},Yo={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"}};wt.use([Je.GridComponent,Je.VisualMapComponent,Je.LegendComponent,Je.TooltipComponent,Sn.CanvasRenderer]);function yT({context:e}){const{value:t}=Ue(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{x_axis_data_key:a,y_axis_data_key:o,z_axis_data_key:s,xAxis3D:u,yAxis3D:d,zAxis3D:f}=L.defaults({},t,Yo),p=x.useMemo(()=>{const v=L.minBy(n,m=>m[s]);return L.get(v,s)},[n,s]),h=x.useMemo(()=>{const v=L.maxBy(n,m=>m[s]);return L.get(v,s)},[n,s]),g={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:p,max:h,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:u,yAxis3D:d,zAxis3D:f,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:n.map(v=>[v[a],v[o],v[s]])}]};return t?l(wn.default,{echarts:wt,option:g,style:{width:r,height:i}}):null}function bT({label:e,required:t,value:n,onChange:r,data:i,clearable:a=!1,sx:o,...s},u){const d=j.default.useMemo(()=>{if(!Array.isArray(i)||i.length===0)return[];const p=Object.keys(i[0]).map(h=>({label:h,value:h}));return a?p.concat([{label:"unset",value:""}]):p},[i]);return l(c.Select,{ref:u,label:e,data:d,value:n,onChange:r,required:t,sx:o,...s})}const ot=j.default.forwardRef(bT);function CT({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=e.data,i=L.defaults({},t,Yo),{control:a,handleSubmit:o,reset:s}=k.useForm({defaultValues:i});return x.useEffect(()=>{s(i)},[t]),t?l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:o(n),children:[l(c.Text,{children:"X Axis"}),y(c.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[l(k.Controller,{name:"x_axis_data_key",control:a,render:({field:u})=>l(ot,{label:"Data Field",required:!0,data:r,...u})}),l(k.Controller,{name:"xAxis3D.name",control:a,render:({field:u})=>l(c.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),l(c.Text,{mt:"lg",children:"Y Axis"}),y(c.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[l(k.Controller,{name:"y_axis_data_key",control:a,render:({field:u})=>l(ot,{label:"Data Field",required:!0,data:r,...u})}),l(k.Controller,{name:"yAxis3D.name",control:a,render:({field:u})=>l(c.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),l(c.Text,{mt:"lg",children:"Z Axis"}),y(c.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[l(k.Controller,{name:"z_axis_data_key",control:a,render:({field:u})=>l(ot,{label:"Data Field",required:!0,data:r,...u})}),l(k.Controller,{name:"zAxis3D.name",control:a,render:({field:u})=>l(c.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),l(c.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:y(c.Button,{color:"blue",type:"submit",children:[l(W.DeviceFloppy,{size:20}),l(c.Text,{ml:"md",children:"Save"})]})})]})}):null}class ST extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const wT={displayName:"Bar Chart (3D)",migrator:new ST,name:"bar-3d",viewRender:yT,configRender:CT,createConfig:()=>Yo},vn={mantissa:0,output:"number",trimMantissa:!1,average:!1};function xT({value:e,onChange:t},n){const r=s=>{t({...e,output:s})},i=s=>{const u=s===0?!1:e.trimMantissa;t({...e,mantissa:s,trimMantissa:u})},a=s=>{t({...e,trimMantissa:s.currentTarget.checked})},o=s=>{t({...e,average:s.currentTarget.checked})};return y(c.Stack,{ref:n,children:[y(c.Group,{grow:!0,children:[l(c.Select,{label:"Format",data:[{label:"1234",value:"number"},{label:"99%",value:"percent"}],value:e.output,onChange:r,sx:{flexGrow:1}}),l(c.Switch,{label:y(c.Stack,{spacing:0,children:[l(c.Text,{children:"Average"}),l(c.Text,{size:12,color:"gray",children:"like 1.234k, 1.234m"})]}),checked:e.average,onChange:o,disabled:e.output!=="number",sx:{flexGrow:1},styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"},label:{display:"block"}}})]}),y(c.Group,{grow:!0,children:[l(c.NumberInput,{label:"Mantissa",defaultValue:0,min:0,step:1,max:4,value:e.mantissa,onChange:i}),l(c.Switch,{label:"Trim mantissa",checked:e.trimMantissa,onChange:a,disabled:e.mantissa===0,styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"}}})]}),y(c.Stack,{spacing:0,children:[l(c.Text,{weight:"bold",children:"Preview"}),l(ur,{children:y(c.Group,{position:"apart",children:[y(c.Text,{size:12,color:"gray",children:["123456789 ",l(W.ArrowRight,{size:9})," ",$t.default(123456789).format(e)]}),y(c.Text,{size:12,color:"gray",children:["1234 ",l(W.ArrowRight,{size:9})," ",$t.default(1234).format(e)]}),y(c.Text,{size:12,color:"gray",children:["0.1234 ",l(W.ArrowRight,{size:9})," ",$t.default(.1234).format(e)]})]})})]})]})}const ar=j.default.forwardRef(xT),or={enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
|
|
103
|
+
`)},Nf={id:"builtin:echarts:click-echart:series",displayName:"Click Chart Series",nameRender:ET,configRender:_T,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 _T(e){return l(Oe,{})}function ET(e){return l(c.Text,{children:"Click chart's series"})}const Xo={x_axis:{name:"X Axis",data_key:"",axisLabel:{rotate:0,formatter:{...or}}},y_axis:{name:"Y Axis",data_key:"value",label_formatter:vn},color:"#228be6",reference_lines:[]},Ar=(e,t)=>{const[n,r]=x.useState([]);return x.useEffect(()=>e.watchTriggerSnapshotList(i=>r(i.filter(a=>a.schemaRef===t))),[]),n},Ir=({vizManager:e,instance:t})=>Ze.useCreation(()=>new jl(t,e.resolveComponent(t.type),ba),[t,e]),Lf="__TRIGGERS";class TT{constructor(t,n){pe(this,"attachments");this.instance=t,this.component=n;const r=async i=>{const{id:a,schemaRef:o}=await i.getItem(null);return{id:a,schemaRef:o,triggerData:new Pr(i,"data")}};this.attachments=new Wo(t,Lf,r)}watchTriggerSnapshotList(t){return this.instance.instanceData.watchItem(Lf,n=>{const r=L.values(n).map(i=>({id:L.get(i,"id"),schemaRef:L.get(i,"schemaRef"),config:kt.toJS(L.get(i,"data.config"))}));t(r)},{fireImmediately:!0})}async createOrGetTrigger(t,n,r={recreate:!1}){var s;if(!this.getTriggerSchemaList().some(u=>u.id===n.id))throw new Error(`Trigger schema '${n.id}' is not defined in component '${this.component.name}'`);const a=await this.attachments.getInstance(t);return!a||r.recreate||a.schemaRef!==n.id?await this.attachments.create(t,{id:t,schemaRef:n.id,data:((s=n==null?void 0:n.createDefaultConfig)==null?void 0:s.call(n))||{}}):a}async getTriggerList(){return await this.attachments.list()}getTriggerSchemaList(){return this.component.triggers||[]}async removeTrigger(t){await this.attachments.remove(t)}async retrieveTrigger(t){return await this.attachments.getInstance(t)}async getMigrationTasks(){const n=(await this.getTriggerList()).map(async r=>{const i=this.getTriggerSchemaList().find(s=>s.id===r.schemaRef),a=i==null?void 0:i.migrator,o={configData:r.triggerData};return a&&await a.needMigration(o)?()=>a.migrate(o):null});return Promise.all(n).then(r=>r.filter(i=>i))}async needMigration(){return(await this.getMigrationTasks()).length>0}async runMigration(){const t=await this.getMigrationTasks();await Promise.all(t.map(n=>n()))}}const oi=x.forwardRef(function({value:t,onChange:n,...r},i){return l(c.TextInput,{ref:i,value:t,onChange:n,...r})}),OT=[{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:"Quantile(99%, 95%, ...)",value:"quantile"}];function MT({label:e,value:t,onChange:n},r){x.useEffect(()=>{typeof t=="string"&&(console.log(t),n({type:t,config:{}}))},[t,n]);const i=o=>{n(o==="quantile"?{type:"quantile",config:{p:.99}}:{type:o,config:{}})},a=o=>{n({type:"quantile",config:{p:o}})};return y(c.Group,{grow:!0,noWrap:!0,pt:"sm",children:[l(c.Select,{ref:r,label:e,data:OT,value:t.type,onChange:i}),t.type==="quantile"&&l(c.NumberInput,{label:"p",value:t.config.p,onChange:a,precision:2,min:.05,step:.05,max:1})]})}const Vf=j.default.forwardRef(MT);function DT({label:e,value:t,onChange:n},r){const[i,a]=j.default.useState(Array.isArray(t)?[...t]:[]),o=j.default.useCallback(()=>{a(h=>[...h,""])},[a]),s=j.default.useCallback(h=>{a(g=>(g.splice(h,1),[...g]))},[a]),u=j.default.useMemo(()=>!De.default.isEqual(i,t),[i,t]),d=()=>{n(i.map(h=>h.toString()))},f=c.useMantineTheme(),p=j.default.useMemo(()=>Object.entries(f.colors).map(([h,g])=>g[6]),[f]);return y(Oe,{children:[y(c.Group,{position:"left",ref:r,children:[l(c.Text,{children:e}),l(c.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!u,onClick:d,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Group,{children:[i.map((h,g)=>l(c.ColorInput,{value:h,onChange:v=>{a(m=>(m.splice(g,1,v),[...m]))},swatches:p,rightSection:l(c.ActionIcon,{onClick:()=>s(g),color:"red",children:l(W.Trash,{size:14})}),sx:{width:"45%"}})),l(c.ActionIcon,{onClick:o,color:"blue",variant:"outline",children:l(W.PlaylistAdd,{size:20})})]})]})}const RT=j.default.forwardRef(DT);function kT({value:e,onChange:t},n){const{colorManager:r}=x.useContext(bn),i=j.default.useMemo(()=>r.getStaticColors().map(s=>({label:s.name,group:s.category,value:s.value})),[r]),a=j.default.useMemo(()=>i.some(o=>o.value===e),[e,i]);return y(c.Group,{position:"apart",spacing:4,ref:n,children:[l(c.TextInput,{placeholder:"Set any color",value:a?"":e,onChange:o=>t(o.currentTarget.value),rightSection:l(c.ColorSwatch,{color:a?"transparent":e,radius:4}),variant:a?"filled":"default",sx:{maxWidth:"46%",flexGrow:1}}),l(c.Text,{sx:{flexGrow:0},children:"or"}),l(c.Select,{data:i,value:e,onChange:t,variant:a?"default":"filled",placeholder:"Pick a theme color",icon:l(c.ColorSwatch,{color:a?e:"transparent",radius:4}),sx:{maxWidth:"46%",flexGrow:1}})]})}const mn=j.default.forwardRef(kT),la=[{label:"initial",value:0},{label:"500",value:25},{label:"700",value:50},{label:"semibold",value:75},{label:"bold",value:100}];function PT({label:e,value:t,onChange:n},r){var o,s;const[i,a]=j.default.useState((s=(o=la.find(u=>u.label===t))==null?void 0:o.value)!=null?s:la[0].value);return j.default.useEffect(()=>{const u=la.find(d=>d.value===i);u&&n(u.label)},[i]),y(c.Stack,{spacing:0,mt:"sm",mb:"lg",children:[l(c.Text,{size:"sm",children:e}),l(c.Slider,{label:null,marks:la,value:i,onChange:a,step:25,placeholder:"Pick a font size",px:"1em",ref:r})]})}const Ff=j.default.forwardRef(PT);function AT({label:e,value:t,onChange:n,type:r},i){const[a,o]=j.default.useState(Array.isArray(t)?[...t]:[]),s=j.default.useCallback(()=>{o(p=>[...p,""])},[o]),u=j.default.useCallback(p=>{o(h=>(h.splice(p,1),[...h]))},[o]),d=j.default.useMemo(()=>!De.default.isEqual(a.map(String),t.map(String)),[a,t]),f=()=>{n(a.map(p=>r==="number"?Number(p):p.toString()))};return y(Oe,{children:[y(c.Group,{position:"left",ref:i,children:[l(c.Text,{children:e}),l(c.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!d,onClick:f,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Group,{children:[a.map((p,h)=>l(c.TextInput,{type:r,value:p,onChange:g=>{const v=g.currentTarget.value;o(m=>(m.splice(h,1,v),[...m]))},rightSection:l(c.ActionIcon,{onClick:()=>u(h),color:"red",children:l(W.Trash,{size:14})}),sx:{width:"45%"}})),l(c.ActionIcon,{onClick:s,color:"blue",variant:"outline",children:l(W.PlaylistAdd,{size:20})})]})]})}const IT=j.default.forwardRef(AT),zf=j.default.forwardRef(function({value:t,onChange:n},r){const i=t.color.type,a=(o,s)=>{const u=De.default.cloneDeep(t);De.default.set(u,o,s),n(u)};return y(Oe,{children:[l(c.Divider,{my:"xs",label:"Typography",labelPosition:"center"}),l(c.Stack,{children:l(c.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",sx:{flex:1},value:t.size,onChange:o=>a("size",o.currentTarget.value)})}),l(c.Group,{position:"apart",grow:!0,sx:{"> *":{flexGrow:1,maxWidth:"100%"}},children:l(Ff,{label:"Font Weight",value:t.weight,onChange:o=>a("weight",o)})}),l(c.Divider,{my:"xs",label:"Style",labelPosition:"center"}),y(c.Stack,{children:[l(c.Select,{label:"Color Type",data:[{label:"Static Color",value:"static"},{label:"Continuous Color",value:"continuous"}],value:t.color.type,onChange:o=>a("color.type",o)}),i==="static"&&l(mn,{value:t.color.staticColor,onChange:o=>a("color.staticColor",o)}),i==="continuous"&&y(Oe,{children:[l(IT,{label:"Value Range",value:t.color.valueRange,type:"number",onChange:o=>a("color.valueRange",o)}),l(RT,{label:"Color Range",value:t.color.colorRange,onChange:o=>a("color.colorRange",o)})]})]})]})});j.default.forwardRef(function({value:t,onChange:n,data:r,withStyle:i=!0},a){const o=(s,u)=>{const d=De.default.cloneDeep(t);De.default.set(d,s,u),n(d)};return y(c.Box,{px:"sm",py:"md",ref:a,children:[l(c.Text,{weight:"bold",pb:0,children:t.name}),l(c.Divider,{my:"xs",label:"Data",labelPosition:"center"}),y(c.Group,{grow:!0,noWrap:!0,children:[l(c.TextInput,{label:"Name",required:!0,value:t.name,onChange:s=>o("name",s.currentTarget.value)}),l(ot,{label:"Data Field",required:!0,data:r,value:t.data_field,onChange:s=>o("data_field",s)})]}),l(Vf,{label:"Aggregation",value:t.aggregation,onChange:s=>o("aggregation",s)}),l(c.Divider,{my:"xs",label:"Format",labelPosition:"center"}),l(ar,{value:t.formatter,onChange:s=>o("formatter",s)}),i&&l(zf,{value:t,onChange:n})]})});function $T(e){const t=Array.from(e).sort((r,i)=>r-i),n=Math.floor(t.length/2);return t.length%2===0?(t[n-1]+t[n])/2:t[n]}function NT(e,t){const n=e[t],r=Number(n);return isFinite(r)?r:0}function Qo(e,t,n){var i,a,o,s;const r=e.map(u=>NT(u,t));switch(n.type){case"sum":return De.default.sum(r);case"mean":return De.default.mean(r);case"median":return $T(r);case"max":return(i=De.default.max(r))!=null?i:0;case"min":return(a=De.default.min(r))!=null?a:0;case"quantile":return(o=yi.quantile(r,n.config.p))!=null?o:0;default:return(s=e[0])==null?void 0:s[t]}}var jf=function(){},li=function(){};process.env.NODE_ENV!=="production"&&(jf=function(e,t){!e&&typeof console<"u"&&console.warn(t)},li=function(e,t){if(!e)throw new Error(t)});const LT=(e,t,n)=>Math.min(Math.max(n,e),t),Bf=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},Zo=(e,t,n)=>-n*e+n*t+e,Gf=(e,t)=>n=>Math.max(Math.min(n,t),e),si=e=>e%1?Number(e.toFixed(5)):e,sa=/(-)?([\d]*\.?[\d])+/g,Jo=/(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))/gi,VT=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;function ui(e){return typeof e=="string"}const ua={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Kf=Object.assign(Object.assign({},ua),{transform:Gf(0,1)});Object.assign(Object.assign({},ua),{default:1});const ci=(e=>({test:t=>ui(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}))("%");Object.assign(Object.assign({},ci),{parse:e=>ci.parse(e)/100,transform:e=>ci.transform(e*100)});const el=(e,t)=>n=>Boolean(ui(n)&&VT.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),qf=(e,t,n)=>r=>{if(!ui(r))return r;const[i,a,o,s]=r.match(sa);return{[e]:parseFloat(i),[t]:parseFloat(a),[n]:parseFloat(o),alpha:s!==void 0?parseFloat(s):1}},lr={test:el("hsl","hue"),parse:qf("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+ci.transform(si(t))+", "+ci.transform(si(n))+", "+si(Kf.transform(r))+")"},FT=Gf(0,255),tl=Object.assign(Object.assign({},ua),{transform:e=>Math.round(FT(e))}),Wn={test:el("rgb","red"),parse:qf("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+tl.transform(e)+", "+tl.transform(t)+", "+tl.transform(n)+", "+si(Kf.transform(r))+")"};function zT(e){let t="",n="",r="",i="";return e.length>5?(t=e.substr(1,2),n=e.substr(3,2),r=e.substr(5,2),i=e.substr(7,2)):(t=e.substr(1,1),n=e.substr(2,1),r=e.substr(3,1),i=e.substr(4,1),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const nl={test:el("#"),parse:zT,transform:Wn.transform},ca={test:e=>Wn.test(e)||nl.test(e)||lr.test(e),parse:e=>Wn.test(e)?Wn.parse(e):lr.test(e)?lr.parse(e):nl.parse(e),transform:e=>ui(e)?e:e.hasOwnProperty("red")?Wn.transform(e):lr.transform(e)},Hf="${c}",Wf="${n}";function jT(e){var t,n,r,i;return isNaN(e)&&ui(e)&&((n=(t=e.match(sa))===null||t===void 0?void 0:t.length)!==null&&n!==void 0?n:0)+((i=(r=e.match(Jo))===null||r===void 0?void 0:r.length)!==null&&i!==void 0?i:0)>0}function Uf(e){typeof e=="number"&&(e=`${e}`);const t=[];let n=0;const r=e.match(Jo);r&&(n=r.length,e=e.replace(Jo,Hf),t.push(...r.map(ca.parse)));const i=e.match(sa);return i&&(e=e.replace(sa,Wf),t.push(...i.map(ua.parse))),{values:t,numColors:n,tokenised:e}}function Yf(e){return Uf(e).values}function Xf(e){const{values:t,numColors:n,tokenised:r}=Uf(e),i=t.length;return a=>{let o=r;for(let s=0;s<i;s++)o=o.replace(s<n?Hf:Wf,s<n?ca.transform(a[s]):si(a[s]));return o}}const BT=e=>typeof e=="number"?0:e;function GT(e){const t=Yf(e);return Xf(e)(t.map(BT))}const Qf={test:jT,parse:Yf,createTransformer:Xf,getAnimatableNone:GT};function rl(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Zf({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,a=0,o=0;if(!t)i=a=o=n;else{const s=n<.5?n*(1+t):n+t-n*t,u=2*n-s;i=rl(u,s,e+1/3),a=rl(u,s,e),o=rl(u,s,e-1/3)}return{red:Math.round(i*255),green:Math.round(a*255),blue:Math.round(o*255),alpha:r}}const KT=(e,t,n)=>{const r=e*e,i=t*t;return Math.sqrt(Math.max(0,n*(i-r)+r))},qT=[nl,Wn,lr],Jf=e=>qT.find(t=>t.test(e)),ep=e=>`'${e}' is not an animatable color. Use the equivalent color code instead.`,tp=(e,t)=>{let n=Jf(e),r=Jf(t);li(!!n,ep(e)),li(!!r,ep(t));let i=n.parse(e),a=r.parse(t);n===lr&&(i=Zf(i),n=Wn),r===lr&&(a=Zf(a),r=Wn);const o=Object.assign({},i);return s=>{for(const u in o)u!=="alpha"&&(o[u]=KT(i[u],a[u],s));return o.alpha=Zo(i.alpha,a.alpha,s),n.transform(o)}},HT=e=>typeof e=="number",WT=(e,t)=>n=>t(e(n)),np=(...e)=>e.reduce(WT);function rp(e,t){return HT(e)?n=>Zo(e,t,n):ca.test(e)?tp(e,t):op(e,t)}const ip=(e,t)=>{const n=[...e],r=n.length,i=e.map((a,o)=>rp(a,t[o]));return a=>{for(let o=0;o<r;o++)n[o]=i[o](a);return n}},UT=(e,t)=>{const n=Object.assign(Object.assign({},e),t),r={};for(const i in n)e[i]!==void 0&&t[i]!==void 0&&(r[i]=rp(e[i],t[i]));return i=>{for(const a in r)n[a]=r[a](i);return n}};function ap(e){const t=Qf.parse(e),n=t.length;let r=0,i=0,a=0;for(let o=0;o<n;o++)r||typeof t[o]=="number"?r++:t[o].hue!==void 0?a++:i++;return{parsed:t,numNumbers:r,numRGB:i,numHSL:a}}const op=(e,t)=>{const n=Qf.createTransformer(t),r=ap(e),i=ap(t);return r.numHSL===i.numHSL&&r.numRGB===i.numRGB&&r.numNumbers>=i.numNumbers?np(ip(r.parsed,i.parsed),n):(jf(!0,`Complex values '${e}' and '${t}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`),o=>`${o>0?t:e}`)},YT=(e,t)=>n=>Zo(e,t,n);function XT(e){if(typeof e=="number")return YT;if(typeof e=="string")return ca.test(e)?tp:op;if(Array.isArray(e))return ip;if(typeof e=="object")return UT}function QT(e,t,n){const r=[],i=n||XT(e[0]),a=e.length-1;for(let o=0;o<a;o++){let s=i(e[o],e[o+1]);if(t){const u=Array.isArray(t)?t[o]:t;s=np(u,s)}r.push(s)}return r}function ZT([e,t],[n]){return r=>n(Bf(e,t,r))}function JT(e,t){const n=e.length,r=n-1;return i=>{let a=0,o=!1;if(i<=e[0]?o=!0:i>=e[r]&&(a=r-1,o=!0),!o){let u=1;for(;u<n&&!(e[u]>i||u===r);u++);a=u-1}const s=Bf(e[a],e[a+1],i);return t[a](s)}}function il(e,t,{clamp:n=!0,ease:r,mixer:i}={}){const a=e.length;li(a===t.length,"Both input and output ranges must be the same length"),li(!r||!Array.isArray(r)||r.length===a-1,"Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values."),e[0]>e[a-1]&&(e=[].concat(e),t=[].concat(t),e.reverse(),t.reverse());const o=QT(t,r,i),s=a===2?ZT(e,o):JT(e,o);return n?u=>s(LT(e[0],e[a-1],u)):s}class eO{constructor({valueRange:t,colorRange:n}){pe(this,"mapper");this.mapper=il(t,n)}getColor(t){return this.mapper(t)}}function tO(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array(${e.length})`:e.toString()}function al({data_field:e,aggregation:t},n){return Qo(n,e,t)}function di({formatter:e},t){return["string","number"].includes(typeof t)?$t.default(t).format(e):tO(t)}function nO(e,t){if(e.type==="static")return e.staticColor;if(e.type==="continuous")try{return new eO(e).getColor(t)}catch{return"black"}return"black"}function lp(e,t){const{color:n,data_field:r,aggregation:i,size:a,weight:o}=e,s=Qo(t,r,i),u=di(e,s);return l(c.Text,{sx:{fontSize:a,display:"inline"},color:nO(n,s),weight:o,children:u})}function rO(e,t){const n={};return e.forEach(r=>{const i=r.name;n[i]=lp(r,t)}),n}function iO(e){return e.split(" ").map((t,n)=>y(j.default.Fragment,{children:[t,"\xA0"]},n))}function aO(e){const n=e.replaceAll("<br />","<br/>").replaceAll(`
|
|
104
|
+
`,"<br/>").split("<br/>");return n.map((i,a)=>{const o=[iO(i)];return a!==n.length-1&&o.push(l("br",{})),o}).flat().filter(i=>i!==void 0)}function ol(e){return aO(e)}function fi(e,t,n){const r=rO(t,n),i=/^\{(.+)\}(.*)$/;return e.split("$").map(a=>{var d;const o=i.exec(a);if(!o)return ol(a);const s=r[o[1]];if(!s)return ol(a);const u=(d=o[2])!=null?d:"";return y(Oe,{children:[s,ol(u)]})})}function oO(e,t){const n={};return e.forEach(r=>{const{name:i,data_field:a,aggregation:o}=r,s=Qo(t,a,o);n[i]=di(r,s)}),n}function ll(e,t,n){const r=oO(t,n),i=/^\{(.+)\}(.*)$/;return e.split("$").map(a=>{var d;const o=i.exec(a);if(!o)return a;const s=r[o[1]];if(!s)return a;const u=(d=o[2])!=null?d:"";return`${s}${u}`}).join("")}function da({enabled:e,func_content:t}){return(n,r)=>{if(!e)return n;try{return new Function(`return ${t}`)()(n,r)}catch(i){return console.error(`[getEchartsXAxisLabel] failed parsing custom function, error: ${i.message}`),n}}}const sl=["max","q3","median","q1","min"];function lO({config:e}){return{show:!0,bottom:0,left:"center",type:"scroll",data:[{name:"Box",icon:"roundRect",itemStyle:{color:e.color}},{name:"Outlier",icon:"circle",itemStyle:{color:"#2F8CC0"}}]}}function sO(e){return`
|
|
104
105
|
<table>
|
|
105
106
|
<thead>
|
|
106
107
|
<th colspan="2" style="text-align: left;">${e[0]}</th>
|
|
@@ -112,7 +113,7 @@ WHERE
|
|
|
112
113
|
</tr>
|
|
113
114
|
</tbody>
|
|
114
115
|
</table>
|
|
115
|
-
`}const
|
|
116
|
+
`}const uO=e=>t=>{const{componentSubType:n,value:r}=t;if(n==="scatter")return sO(r);const i=sl.map(o=>`
|
|
116
117
|
<tr>
|
|
117
118
|
<th style="text-align: left;">${De.default.capitalize(o)}</th>
|
|
118
119
|
<td style="text-align: right;">
|
|
@@ -129,8 +130,7 @@ WHERE
|
|
|
129
130
|
${i.join("")}
|
|
130
131
|
</tbody>
|
|
131
132
|
</table>
|
|
132
|
-
`};function sO({config:e}){return{trigger:"item",confine:!0,formatter:lO(e)}}function uO(e,t){return Object.entries(e).map(([r,i])=>{var m,C,b,w;const a=i.map(S=>S[t]).sort((S,D)=>S-D),o=(m=yi.quantile(a,.25))!=null?m:0,s=(C=yi.quantile(a,.5))!=null?C:0,u=(b=yi.quantile(a,.75))!=null?b:0,d=u-o,f=o-1.5*d,p=u+1.5*d,h=Math.max(a[0],f),g=Math.min((w=De.default.last(a))!=null?w:0,p),v=a.filter(S=>S<h||S>g).map(S=>[r,S]);return{name:r,min:h,q1:o,median:s,q3:u,max:g,outliers:v}})}function cO(e,t,n){const r=t.reduce((i,a)=>{const o=il(a,n);return i[a.name]=di(a,o),i},{});return e.map(i=>({name:"refs",type:"scatter",data:[],markLine:{data:[{name:i.name,yAxis:Number(r[i.variable_key])}],silent:!0,symbol:["none","none"],label:{formatter:function(){return ol(i.template,t,n)},position:"insideEndTop"}}}))}function dO({config:e,data:t,variables:n}){const{x_axis:r,y_axis:i,color:a,reference_lines:o}=e,s=De.default.groupBy(t,r.data_key),u=uO(s,i.data_key),d=u.map(f=>f.outliers).flat();return{dataset:[{source:u},{source:d}],legend:aO({config:e}),tooltip:sO({config:e}),xAxis:[{type:"category",name:r.name,axisTick:{show:!0,alignWithLabel:!0},axisLabel:{...r.axisLabel,formatter:da(r.axisLabel.formatter)}}],yAxis:[{name:i.name,axisLine:{show:!0},axisLabel:{formatter:function(f){return $t.default(f).format(i.label_formatter)}}}],series:[{name:"Box",type:"boxplot",itemStyle:{color:a,borderColor:"#2F8CC0",borderWidth:2},emphasis:{disabled:!0},boxWidth:[10,40],datasetIndex:0,encode:{y:ll,x:"name",itemName:["name"],tooltip:ll}},{name:"Outlier",type:"scatter",symbolSize:5,itemStyle:{color:"#2F8CC0"},emphasis:{scale:2},datasetIndex:1},...cO(o,n,t)]}}const lp={id:"builtin:echarts:click-echart:series",displayName:"Click Chart Series",nameRender:pO,configRender:fO,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 fO(e){return l(Oe,{})}function pO(e){return l(c.Text,{children:"Click chart's series"})}const lr={enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
|
|
133
|
-
`)},sl={x_axis:{name:"X Axis",data_key:"",axisLabel:{rotate:0,formatter:{...lr}}},y_axis:{name:"Y Axis",data_key:"value",label_formatter:vn},color:"#228be6",reference_lines:[]};wt.use([Je.DataZoomComponent,Qt.BoxplotChart,Je.MarkLineComponent,Je.GridComponent,Je.LegendComponent,Je.TooltipComponent,Sn.CanvasRenderer]);function hO({context:e,instance:t}){const{value:n}=Ue(e.instanceData,"config"),{variables:r}=e,i=e.data,{width:a,height:o}=e.viewport,s=L.defaults({},n,sl),u=Ir({vizManager:e.vizManager,instance:t}),d=Ar(u.triggerManager,lp.id),f=x.useMemo(()=>De.default.keyBy(i,s.x_axis.data_key),[i,s.x_axis.data_key]),p=g=>{const v=De.default.get(f,g.name,{error:"rowData is not found"});d.forEach(m=>{u.runInteraction(m.id,{...g,rowData:v})})},h=x.useMemo(()=>dO({config:s,data:i,variables:r}),[s,i,r]);return!n||!a||!o?null:l(wn.default,{echarts:wt,option:h,style:{width:a,height:o},onEvents:{click:p}})}function gO({control:e,index:t,remove:n,variableOptions:r}){return y(c.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`reference_lines.${t}.name`,control:e,render:({field:i})=>l(c.TextInput,{label:"Name",placeholder:"Average Reference Line",required:!0,sx:{flex:1},...i})}),l(k.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:i})=>l(c.Select,{label:"Value",required:!0,data:r,sx:{flex:1},...i})})]}),l(k.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:i})=>l(c.TextInput,{label:"Content Template",placeholder:"Average: ${avg}",required:!0,sx:{flex:1},...i})}),l(c.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:l(W.Trash,{size:16})})]},t)}function vO({control:e,watch:t,variables:n}){const{fields:r,append:i,remove:a}=k.useFieldArray({control:e,name:"reference_lines"}),o=t("reference_lines"),s=r.map((f,p)=>({...f,...o[p]})),u=()=>i({name:"",template:"",variable_key:""}),d=x.useMemo(()=>n.map(f=>({label:f.name,value:f.name})),[n]);return y(c.Stack,{children:[s.map((f,p)=>l(gO,{control:e,index:p,remove:a,variableOptions:d})),l(c.Group,{position:"center",mt:"xs",children:l(c.Button,{onClick:u,children:"Add a Reference Line"})})]})}const mO=({disabled:e,value:t,onChange:n})=>{const r=i=>{!i||n(i)};return y(c.Box,{sx:{position:"relative"},children:[e&&l(c.Overlay,{opacity:.6,color:"#fff",zIndex:5,blur:2}),l(Jn.default,{height:"500px",defaultLanguage:"javascript",value:t,onChange:r,theme:"vs-dark",options:{minimap:{enabled:!1,readOnly:e}}})]})},ul=({value:e,onChange:t,data:n})=>{const[r,{setTrue:i,setFalse:a}]=Ze.useBoolean(),[o,s]=x.useState(e),u=g=>{s({...o,enabled:g})},d=()=>{a();const{enabled:g,func_content:v}=o,m={enabled:g,func_content:v};s(m),t(m)},f=()=>{a(),s(e)},p=g=>{s(v=>({...v,func_content:g}))},h=()=>{p(lr.func_content)};return y(Oe,{children:[l(c.Button,{variant:"filled",mt:24,onClick:i,sx:{flexGrow:0},children:"Customize Label"}),l(c.Modal,{size:800,title:"Customize label content",opened:r,onClose:a,closeOnClickOutside:!1,withCloseButton:!1,children:r&&y(c.Stack,{children:[l(c.Checkbox,{mt:10,label:"Enabled",checked:o.enabled,onChange:g=>u(g.currentTarget.checked)}),l(mO,{value:o.func_content,onChange:p,disabled:!o.enabled}),y(c.Group,{position:"apart",children:[l(c.Button,{onClick:h,color:"red",leftIcon:l(W.Recycle,{size:20}),children:"Rest"}),y(c.Group,{position:"right",children:[l(c.Button,{onClick:f,variant:"subtle",children:"Cancel"}),l(c.Button,{onClick:d,children:"OK"})]})]})]})})]})},yO=({control:e,data:t,watch:n})=>(n(["x_axis"]),y(c.Stack,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis.name",control:e,render:({field:r})=>l(c.TextInput,{label:"X Axis Name",sx:{flex:1},...r})}),l(k.Controller,{name:"x_axis.data_key",control:e,render:({field:r})=>l(ot,{label:"X Axis Data Field",required:!0,data:t,sx:{flex:1},...r})})]}),l(c.Divider,{mb:-15,label:"Tick Label",labelPosition:"center"}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis.axisLabel.rotate",control:e,render:({field:r})=>l(c.NumberInput,{label:"Rotate",hideControls:!0,min:-90,max:90,rightSection:l(c.Text,{color:"dimmed",children:"degree"}),sx:{width:"48%"},styles:{rightSection:{width:"4em",justifyContent:"flex-end",paddingRight:"6px"}},...r})}),l(k.Controller,{name:"x_axis.axisLabel.formatter",control:e,render:({field:r})=>l(ul,{data:t,...r})})]})]})),bO=({control:e,data:t,watch:n})=>(n(["y_axis"]),y(Oe,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"y_axis.name",control:e,render:({field:r})=>l(c.TextInput,{label:"Y Axis Name",sx:{flex:1},...r})}),l(k.Controller,{name:"y_axis.data_key",control:e,render:({field:r})=>l(ot,{label:"Y Axis Data Field",required:!0,data:t,sx:{flex:1},...r})})]}),y(c.Stack,{children:[l(c.Divider,{mb:-15,variant:"dashed",label:"Label Format",labelPosition:"center"}),l(k.Controller,{name:"y_axis.label_formatter",control:e,render:({field:r})=>l(ar,{...r})})]})]}));function CO({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=e.data,{variables:i}=e,a=x.useMemo(()=>L.defaults({},t,sl),[t]),{control:o,handleSubmit:s,watch:u,getValues:d,reset:f}=k.useForm({defaultValues:a});x.useEffect(()=>{f(a)},[a]),u(["x_axis","y_axis","reference_lines","color"]);const p=d(),h=x.useMemo(()=>!L.isEqual(p,t),[p,t]);return l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:s(n),children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{children:"Chart Config"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!h,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Tabs,{defaultValue:"X Axis",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[y(c.Tabs.List,{children:[l(c.Tabs.Tab,{value:"X Axis",children:"X Axis"}),l(c.Tabs.Tab,{value:"Y Axis",children:"Y Axis"}),l(c.Tabs.Tab,{value:"Style",children:"Style"}),l(c.Tabs.Tab,{value:"Reference Lines",children:"Reference Lines"})]}),l(c.Tabs.Panel,{value:"X Axis",children:l(yO,{control:o,data:r,watch:u})}),l(c.Tabs.Panel,{value:"Y Axis",children:l(bO,{control:o,data:r,watch:u})}),l(c.Tabs.Panel,{value:"Style",children:y(c.Stack,{spacing:4,children:[l(c.Text,{size:"sm",children:"Color"}),l(k.Controller,{name:"color",control:o,render:({field:g})=>l(mn,{...g})})]})}),l(c.Tabs.Panel,{value:"Reference Lines",children:l(vO,{variables:i,control:o,watch:u})})]})]})})}function SO(e){return L.omit(e,"variables")}function wO(e){const{label_formatter:t=vn,...n}=e.y_axis;return{...e,y_axis:{...n,label_formatter:t}}}function xO(e){const t={rotate:0,formatter:{...lr}},{axisLabel:n=t,...r}=e.x_axis;return{...e,x_axis:{...r,axisLabel:n}}}class _O extends Ft{constructor(){super(...arguments);pe(this,"VERSION",4)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,{panelModel:r})=>{const{config:i}=n;return(i.variables||[]).forEach(o=>{r.variables.find(s=>s.name===o.name)||r.addVariable(o)}),{config:SO(i)}}),this.version(3,n=>{const{config:r}=n;return{version:3,config:wO(r)}}),this.version(4,n=>{const{config:r}=n;return{version:4,config:xO(r)}})}}const EO={displayName:"Boxplot",migrator:new _O,name:"boxplot",viewRender:hO,configRender:CO,createConfig:()=>sl,triggers:[lp]},sp={id:"builtin:button:click-button",displayName:"Click Button",nameRender:OO,configRender:TO,payload:[]};function TO(e){return l(Oe,{})}function OO(e){return l(c.Text,{children:"Click this button"})}const cl={content:"Button",variant:"filled",color:"blue",size:"xs",compact:!1,horizontal_align:"left",vertical_align:"center"},MO={left:"flex-start",center:"center",right:"flex-end"},DO={top:"flex-start",center:"center",bottom:"flex-end"},RO=X.observer(({context:e,instance:t})=>{const n=Ir({vizManager:e.vizManager,instance:t}),r=Ar(n.triggerManager,sp.id),i=et(),{value:a}=Ue(e.instanceData,"config"),o=x.useMemo(()=>L.defaultsDeep({},a,cl),[a]),{content:s,horizontal_align:u,vertical_align:d,...f}=o,{width:p,height:h}=e.viewport,g={filters:i.filters.values,context:i.context.current},v=()=>{r.forEach(m=>{n.runInteraction(m.id,{})})};return l(c.Center,{sx:{width:p,height:h,justifyContent:MO[u],alignItems:DO[d]},children:l(c.Button,{...f,onClick:v,children:L.template(s)(g)})})}),kO=({value:e,onChange:t,label:n})=>{const r=c.useMantineTheme(),i=x.useCallback(o=>()=>t(o),[t]),a=o=>e===o;return y(c.Stack,{spacing:2,children:[l(c.Text,{size:14,sx:{fontWeight:500},children:n}),l(c.Group,{position:"left",spacing:"xs",children:Object.keys(r.colors).map(o=>{const s=r.colors[o][6];return l(c.ColorSwatch,{color:s,onClick:i(o),radius:4,size:26,sx:{cursor:"pointer"},children:a(o)&&l(c.CheckIcon,{width:10,color:"white"})},o)})})]})},PO=c.MANTINE_SIZES.map(e=>({label:e.toUpperCase(),value:e})),AO=({label:e,value:t,onChange:n})=>l(c.Select,{data:PO,label:e,value:t,onChange:n}),IO=[{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}],$O=[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}],NO=[{label:"Top",value:"top"},{label:"Center",value:"center"},{label:"Bottom",value:"bottom"}];function LO({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=x.useMemo(()=>L.defaultsDeep({},t,cl),[t]),i=(a,o)=>{n({...r,[a]:o})};return y(c.Stack,{children:[l(c.TextInput,{label:"Content Template",description:"Filter values & context entries are supported",value:r.content,onChange:a=>i("content",a.currentTarget.value),required:!0}),l(c.Divider,{mt:"xs",mb:0,label:"Styles",labelPosition:"center",variant:"dashed"}),y(c.SimpleGrid,{cols:2,children:[l(c.Select,{label:"Variant",data:IO,value:r.variant,onChange:a=>i("variant",a)}),l(kO,{label:"Theme",value:r.color,onChange:a=>i("color",a)})]}),y(c.SimpleGrid,{cols:2,children:[l(AO,{label:"Size",value:r.size,onChange:a=>i("size",a)}),l(c.Checkbox,{label:"Compact",checked:r.compact,onChange:a=>i("compact",a.currentTarget.checked),mt:26})]}),y(c.SimpleGrid,{cols:2,children:[l(c.Select,{label:"Horizontal Alignment",data:$O,value:r.horizontal_align,onChange:a=>i("horizontal_align",a)}),l(c.Select,{label:"Vertical Alignment",data:NO,value:r.vertical_align,onChange:a=>i("vertical_align",a)})]})]})}class VO extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,({horizontal_align:n="left",vertical_align:r="center",...i})=>({version:2,config:{...i,horizontal_align:n,vertical_align:r}}))}}const FO={displayName:"Button",migrator:new VO,name:"button",viewRender:RO,configRender:LO,createConfig:()=>cl,triggers:[sp]};function dl(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 zO(e){const t=e.y_axes.some(i=>!!i.name);let n=10;t&&(n+=20),e.dataZoom.x_axis_slider&&(n+=20);let r=25;return e.x_axis_name&&(r+=15),{top:n,bottom:r}}function jO(e){return e!=="line"?{}:{itemStyle:{opacity:0}}}function BO(e){switch(e){case"line":return;case"bar":return"roundRect";case"scatter":return"circle"}}function GO(e){const t={show:!0,bottom:0,left:"center",type:"scroll"};return t.data=e.filter(n=>!n.hide_in_legend).map(({name:n,type:r})=>({name:n,icon:BO(r),...jO(r)})),t}function KO({regressions:e=[]},t){const n=[],r=[],i=[];return t.length===0?{regressionDataSets:n,regressionSeries:r,regressionXAxes:i}:(e.forEach(({transform:a,plot:o,name:s,y_axis_data_key:u})=>{const d=`x-axis-for-${s}`,f=`dataset-for-${s}--raw`,p=`dataset-for-${s}--transformed`;n.push({id:f,source:t.map((h,g)=>[g,Number(h[u])])}),n.push({transform:a,id:p,fromDatasetId:f}),r.push({...o,name:s,datasetId:p,xAxisId:d,showSymbol:!1,tooltip:{show:!1}}),i.push({type:"category",id:d,datasetId:p,show:!1})}),{regressionDataSets:n,regressionSeries:r,regressionXAxes:i})}function qO({type:e,...t},n,r,i){if(!e)return 10;if(e==="static"){const{size:s}=t;return s}const{func_content:a}=t,o=L.keyBy(n,r);return(s,u)=>{let d;u.name?d=o[u.name]:d=n[u.dataIndex];try{return new Function(`return ${a}`)()({rowData:d,params:u,variables:i},{lodash:De.default,interpolate:rl})}catch(f){return console.error(`[getEchartsSymbolSize] failed parsing custom function, error: ${f.message}`),10}}}function up(e,t,n,r){const i=t.map(a=>[a[n],a[r]]);return De.default.unionBy(i,e,0)}function HO(e,t,n,r){return e.map(i=>{const a=i.orientation==="horizontal",o=a?"yAxis":"xAxis",s=a?"insideEndTop":"end";return{name:"refs",type:"scatter",hide_in_legend:!0,data:[],markLine:{data:[{name:i.name,[o]:Number(n[i.variable_key])}],silent:!0,symbol:["none","none"],label:{formatter:function(){return ol(i.template,t,r)},position:s}}}})}function WO(e,t){return e.map(n=>({name:"",type:"line",hide_in_legend:!0,data:[],markArea:{itemStyle:{color:n.color},data:[[{yAxis:t[n.y_keys.upper]},{yAxis:t[n.y_keys.lower]}]],silent:!0}}))}function UO({x_axis_data_key:e},{y_axis_data_key:t,yAxisIndex:n,label_position:r,name:i,group_by_key:a,stack:o,color:s,display_name_on_line:u,symbolSize:d,hide_in_legend:f,...p},h,g,v,m,C){const b={label:{show:!!r,position:r,formatter:C[n!=null?n:"default"]},name:i,xAxisId:"main-x-axis",yAxisIndex:n,stack:o,color:s,symbolSize:qO(d,v,e,m),hide_in_legend:f,...p};if(u&&(b.endLabel={show:!0,formatter:i,offset:[-12,12],align:"right"}),!a)return g?b.data=up(h,v,e,t):b.data=v.map(S=>S[t]),b;const w=L.groupBy(v,a);return Object.entries(w).map(([S,D])=>{const _=L.cloneDeep(b);return _.data=up(h,D,e,t),_.name=S,_.color=void 0,_})}function YO(e,t,n,r,i,a,o){const s=t.map(d=>[d,0]);return e.series.map(d=>UO(e,d,s,n,r,o,i)).flat().concat(HO(e.reference_lines,a,o,r)).concat(WO(e.reference_areas,o))}function XO(e,t){const n=e.find(s=>s.axisDim==="x"&&s.axisId==="main-x-axis");if(!n)return"";const{name:r,axisType:i,axisValue:a,axisIndex:o}=n;return i==="xAxis.category"?r:da(t.x_axis.axisLabel.formatter)(a,o)}function QO(e,t,n){const r=t.reduce((i,{yAxisIndex:a,name:o})=>(i[o]=a,i),{});return{formatter:function(i){const a=Array.isArray(i)?i:[i];if(a.length===0)return"";const o=XO(a,e),s=a.map(({seriesName:u,value:d})=>{var h;if(Array.isArray(d)&&d.length===2&&(d=d[1]),!u)return d;const f=r[u],p=(h=n[f])!=null?h:n.default;return`
|
|
133
|
+
`};function cO({config:e}){return{trigger:"item",confine:!0,formatter:uO(e)}}function dO(e,t){return Object.entries(e).map(([r,i])=>{var m,C,b,w;const a=i.map(S=>S[t]).sort((S,D)=>S-D),o=(m=yi.quantile(a,.25))!=null?m:0,s=(C=yi.quantile(a,.5))!=null?C:0,u=(b=yi.quantile(a,.75))!=null?b:0,d=u-o,f=o-1.5*d,p=u+1.5*d,h=Math.max(a[0],f),g=Math.min((w=De.default.last(a))!=null?w:0,p),v=a.filter(S=>S<h||S>g).map(S=>[r,S]);return{name:r,min:h,q1:o,median:s,q3:u,max:g,outliers:v}})}function fO(e,t,n){const r=t.reduce((i,a)=>{const o=al(a,n);return i[a.name]=di(a,o),i},{});return e.map(i=>({name:"refs",type:"scatter",data:[],markLine:{data:[{name:i.name,yAxis:Number(r[i.variable_key])}],silent:!0,symbol:["none","none"],label:{formatter:function(){return ll(i.template,t,n)},position:"insideEndTop"}}}))}function pO({config:e,data:t,variables:n}){const{x_axis:r,y_axis:i,color:a,reference_lines:o}=e,s=De.default.groupBy(t,r.data_key),u=dO(s,i.data_key),d=u.map(f=>f.outliers).flat();return{dataset:[{source:u},{source:d}],legend:lO({config:e}),tooltip:cO({config:e}),xAxis:[{type:"category",name:r.name,axisTick:{show:!0,alignWithLabel:!0},axisLabel:{...r.axisLabel,formatter:da(r.axisLabel.formatter)}}],yAxis:[{name:i.name,axisLine:{show:!0},axisLabel:{formatter:function(f){return $t.default(f).format(i.label_formatter)}}}],series:[{name:"Box",type:"boxplot",itemStyle:{color:a,borderColor:"#2F8CC0",borderWidth:2},emphasis:{disabled:!0},boxWidth:[10,40],datasetIndex:0,encode:{y:sl,x:"name",itemName:["name"],tooltip:sl}},{name:"Outlier",type:"scatter",symbolSize:5,itemStyle:{color:"#2F8CC0"},emphasis:{scale:2},datasetIndex:1},...fO(o,n,t)]}}wt.use([Je.DataZoomComponent,Qt.BoxplotChart,Je.MarkLineComponent,Je.GridComponent,Je.LegendComponent,Je.TooltipComponent,Sn.CanvasRenderer]);function hO({context:e,instance:t}){const{value:n}=Ue(e.instanceData,"config"),{variables:r}=e,i=e.data,{width:a,height:o}=e.viewport,s=L.defaults({},n,Xo),u=Ir({vizManager:e.vizManager,instance:t}),d=Ar(u.triggerManager,Nf.id),f=x.useMemo(()=>De.default.keyBy(i,s.x_axis.data_key),[i,s.x_axis.data_key]),p=g=>{const v=De.default.get(f,g.name,{error:"rowData is not found"});d.forEach(m=>{u.runInteraction(m.id,{...g,rowData:v})})},h=x.useMemo(()=>pO({config:s,data:i,variables:r}),[s,i,r]);return!n||!a||!o?null:l(wn.default,{echarts:wt,option:h,style:{width:a,height:o},onEvents:{click:p}})}function gO({control:e,index:t,remove:n,variableOptions:r}){return y(c.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`reference_lines.${t}.name`,control:e,render:({field:i})=>l(c.TextInput,{label:"Name",placeholder:"Average Reference Line",required:!0,sx:{flex:1},...i})}),l(k.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:i})=>l(c.Select,{label:"Value",required:!0,data:r,sx:{flex:1},...i})})]}),l(k.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:i})=>l(c.TextInput,{label:"Content Template",placeholder:"Average: ${avg}",required:!0,sx:{flex:1},...i})}),l(c.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:l(W.Trash,{size:16})})]},t)}function vO({control:e,watch:t,variables:n}){const{fields:r,append:i,remove:a}=k.useFieldArray({control:e,name:"reference_lines"}),o=t("reference_lines"),s=r.map((f,p)=>({...f,...o[p]})),u=()=>i({name:"",template:"",variable_key:""}),d=x.useMemo(()=>n.map(f=>({label:f.name,value:f.name})),[n]);return y(c.Stack,{children:[s.map((f,p)=>l(gO,{control:e,index:p,remove:a,variableOptions:d})),l(c.Group,{position:"center",mt:"xs",children:l(c.Button,{onClick:u,children:"Add a Reference Line"})})]})}const mO=({disabled:e,value:t,onChange:n})=>{const r=i=>{!i||n(i)};return y(c.Box,{sx:{position:"relative"},children:[e&&l(c.Overlay,{opacity:.6,color:"#fff",zIndex:5,blur:2}),l(Jn.default,{height:"500px",defaultLanguage:"javascript",value:t,onChange:r,theme:"vs-dark",options:{minimap:{enabled:!1,readOnly:e}}})]})},ul=({value:e,onChange:t,data:n})=>{const[r,{setTrue:i,setFalse:a}]=Ze.useBoolean(),[o,s]=x.useState(e),u=g=>{s({...o,enabled:g})},d=()=>{a();const{enabled:g,func_content:v}=o,m={enabled:g,func_content:v};s(m),t(m)},f=()=>{a(),s(e)},p=g=>{s(v=>({...v,func_content:g}))},h=()=>{p(or.func_content)};return y(Oe,{children:[l(c.Button,{variant:"filled",mt:24,onClick:i,sx:{flexGrow:0},children:"Customize Label"}),l(c.Modal,{size:800,title:"Customize label content",opened:r,onClose:a,closeOnClickOutside:!1,withCloseButton:!1,children:r&&y(c.Stack,{children:[l(c.Checkbox,{mt:10,label:"Enabled",checked:o.enabled,onChange:g=>u(g.currentTarget.checked)}),l(mO,{value:o.func_content,onChange:p,disabled:!o.enabled}),y(c.Group,{position:"apart",children:[l(c.Button,{onClick:h,color:"red",leftIcon:l(W.Recycle,{size:20}),children:"Rest"}),y(c.Group,{position:"right",children:[l(c.Button,{onClick:f,variant:"subtle",children:"Cancel"}),l(c.Button,{onClick:d,children:"OK"})]})]})]})})]})},yO=({control:e,data:t,watch:n})=>(n(["x_axis"]),y(c.Stack,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis.name",control:e,render:({field:r})=>l(c.TextInput,{label:"X Axis Name",sx:{flex:1},...r})}),l(k.Controller,{name:"x_axis.data_key",control:e,render:({field:r})=>l(ot,{label:"X Axis Data Field",required:!0,data:t,sx:{flex:1},...r})})]}),l(c.Divider,{mb:-15,label:"Tick Label",labelPosition:"center"}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis.axisLabel.rotate",control:e,render:({field:r})=>l(c.NumberInput,{label:"Rotate",hideControls:!0,min:-90,max:90,rightSection:l(c.Text,{color:"dimmed",children:"degree"}),sx:{width:"48%"},styles:{rightSection:{width:"4em",justifyContent:"flex-end",paddingRight:"6px"}},...r})}),l(k.Controller,{name:"x_axis.axisLabel.formatter",control:e,render:({field:r})=>l(ul,{data:t,...r})})]})]})),bO=({control:e,data:t,watch:n})=>(n(["y_axis"]),y(Oe,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"y_axis.name",control:e,render:({field:r})=>l(c.TextInput,{label:"Y Axis Name",sx:{flex:1},...r})}),l(k.Controller,{name:"y_axis.data_key",control:e,render:({field:r})=>l(ot,{label:"Y Axis Data Field",required:!0,data:t,sx:{flex:1},...r})})]}),y(c.Stack,{children:[l(c.Divider,{mb:-15,variant:"dashed",label:"Label Format",labelPosition:"center"}),l(k.Controller,{name:"y_axis.label_formatter",control:e,render:({field:r})=>l(ar,{...r})})]})]}));function CO({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=e.data,{variables:i}=e,a=x.useMemo(()=>L.defaults({},t,Xo),[t]),{control:o,handleSubmit:s,watch:u,getValues:d,reset:f}=k.useForm({defaultValues:a});x.useEffect(()=>{f(a)},[a]),u(["x_axis","y_axis","reference_lines","color"]);const p=d(),h=x.useMemo(()=>!L.isEqual(p,t),[p,t]);return l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:s(n),children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{children:"Chart Config"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!h,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Tabs,{defaultValue:"X Axis",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[y(c.Tabs.List,{children:[l(c.Tabs.Tab,{value:"X Axis",children:"X Axis"}),l(c.Tabs.Tab,{value:"Y Axis",children:"Y Axis"}),l(c.Tabs.Tab,{value:"Style",children:"Style"}),l(c.Tabs.Tab,{value:"Reference Lines",children:"Reference Lines"})]}),l(c.Tabs.Panel,{value:"X Axis",children:l(yO,{control:o,data:r,watch:u})}),l(c.Tabs.Panel,{value:"Y Axis",children:l(bO,{control:o,data:r,watch:u})}),l(c.Tabs.Panel,{value:"Style",children:y(c.Stack,{spacing:4,children:[l(c.Text,{size:"sm",children:"Color"}),l(k.Controller,{name:"color",control:o,render:({field:g})=>l(mn,{...g})})]})}),l(c.Tabs.Panel,{value:"Reference Lines",children:l(vO,{variables:i,control:o,watch:u})})]})]})})}function SO(e){return L.omit(e,"variables")}function wO(e){const{label_formatter:t=vn,...n}=e.y_axis;return{...e,y_axis:{...n,label_formatter:t}}}function xO(e){const t={rotate:0,formatter:{...or}},{axisLabel:n=t,...r}=e.x_axis;return{...e,x_axis:{...r,axisLabel:n}}}class _O extends Ft{constructor(){super(...arguments);pe(this,"VERSION",4)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,{panelModel:r})=>{const{config:i}=n;return(i.variables||[]).forEach(o=>{r.variables.find(s=>s.name===o.name)||r.addVariable(o)}),{...n,version:2,config:SO(i)}}),this.version(3,n=>{const{config:r}=n;return{...n,version:3,config:wO(r)}}),this.version(4,n=>{const{config:r}=n;return{...n,version:4,config:xO(r)}})}}const EO={displayName:"Boxplot",migrator:new _O,name:"boxplot",viewRender:hO,configRender:CO,createConfig:()=>Xo,triggers:[Nf]},sp={id:"builtin:button:click-button",displayName:"Click Button",nameRender:OO,configRender:TO,payload:[]};function TO(e){return l(Oe,{})}function OO(e){return l(c.Text,{children:"Click this button"})}const cl={content:"Button",variant:"filled",color:"blue",size:"xs",compact:!1,horizontal_align:"left",vertical_align:"center"},MO={left:"flex-start",center:"center",right:"flex-end"},DO={top:"flex-start",center:"center",bottom:"flex-end"},RO=X.observer(({context:e,instance:t})=>{const n=Ir({vizManager:e.vizManager,instance:t}),r=Ar(n.triggerManager,sp.id),i=et(),{value:a}=Ue(e.instanceData,"config"),o=x.useMemo(()=>L.defaultsDeep({},a,cl),[a]),{content:s,horizontal_align:u,vertical_align:d,...f}=o,{width:p,height:h}=e.viewport,g={filters:i.filters.values,context:i.context.current},v=()=>{r.forEach(m=>{n.runInteraction(m.id,{})})};return l(c.Center,{sx:{width:p,height:h,justifyContent:MO[u],alignItems:DO[d]},children:l(c.Button,{...f,onClick:v,children:L.template(s)(g)})})}),kO=({value:e,onChange:t,label:n})=>{const r=c.useMantineTheme(),i=x.useCallback(o=>()=>t(o),[t]),a=o=>e===o;return y(c.Stack,{spacing:2,children:[l(c.Text,{size:14,sx:{fontWeight:500},children:n}),l(c.Group,{position:"left",spacing:"xs",children:Object.keys(r.colors).map(o=>{const s=r.colors[o][6];return l(c.ColorSwatch,{color:s,onClick:i(o),radius:4,size:26,sx:{cursor:"pointer"},children:a(o)&&l(c.CheckIcon,{width:10,color:"white"})},o)})})]})},PO=c.MANTINE_SIZES.map(e=>({label:e.toUpperCase(),value:e})),AO=({label:e,value:t,onChange:n})=>l(c.Select,{data:PO,label:e,value:t,onChange:n}),IO=[{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}],$O=[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}],NO=[{label:"Top",value:"top"},{label:"Center",value:"center"},{label:"Bottom",value:"bottom"}];function LO({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=x.useMemo(()=>L.defaultsDeep({},t,cl),[t]),i=(a,o)=>{n({...r,[a]:o})};return y(c.Stack,{children:[l(c.TextInput,{label:"Content Template",description:"Filter values & context entries are supported",value:r.content,onChange:a=>i("content",a.currentTarget.value),required:!0}),l(c.Divider,{mt:"xs",mb:0,label:"Styles",labelPosition:"center",variant:"dashed"}),y(c.SimpleGrid,{cols:2,children:[l(c.Select,{label:"Variant",data:IO,value:r.variant,onChange:a=>i("variant",a)}),l(kO,{label:"Theme",value:r.color,onChange:a=>i("color",a)})]}),y(c.SimpleGrid,{cols:2,children:[l(AO,{label:"Size",value:r.size,onChange:a=>i("size",a)}),l(c.Checkbox,{label:"Compact",checked:r.compact,onChange:a=>i("compact",a.currentTarget.checked),mt:26})]}),y(c.SimpleGrid,{cols:2,children:[l(c.Select,{label:"Horizontal Alignment",data:$O,value:r.horizontal_align,onChange:a=>i("horizontal_align",a)}),l(c.Select,{label:"Vertical Alignment",data:NO,value:r.vertical_align,onChange:a=>i("vertical_align",a)})]})]})}class VO extends Ft{constructor(){super(...arguments);pe(this,"VERSION",2)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,n=>{const{horizontal_align:r="left",vertical_align:i="center",...a}=n.config;return{...n,version:2,config:{...a,horizontal_align:r,vertical_align:i}}})}}const FO={displayName:"Button",migrator:new VO,name:"button",viewRender:RO,configRender:LO,createConfig:()=>cl,triggers:[sp]};function dl(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 zO(e){const t=e.y_axes.some(i=>!!i.name);let n=10;t&&(n+=20),e.dataZoom.x_axis_slider&&(n+=20);let r=25;return e.x_axis_name&&(r+=15),{top:n,bottom:r}}function jO(e){return e!=="line"?{}:{itemStyle:{opacity:0}}}function BO(e){switch(e){case"line":return;case"bar":return"roundRect";case"scatter":return"circle"}}function GO(e){const t={show:!0,bottom:0,left:"center",type:"scroll"};return t.data=e.filter(n=>!n.hide_in_legend).map(({name:n,type:r})=>({name:n,icon:BO(r),...jO(r)})),t}function KO({regressions:e=[]},t){const n=[],r=[],i=[];return t.length===0?{regressionDataSets:n,regressionSeries:r,regressionXAxes:i}:(e.forEach(({transform:a,plot:o,name:s,y_axis_data_key:u})=>{const d=`x-axis-for-${s}`,f=`dataset-for-${s}--raw`,p=`dataset-for-${s}--transformed`;n.push({id:f,source:t.map((h,g)=>[g,Number(h[u])])}),n.push({transform:a,id:p,fromDatasetId:f}),r.push({...o,name:s,datasetId:p,xAxisId:d,showSymbol:!1,tooltip:{show:!1}}),i.push({type:"category",id:d,datasetId:p,show:!1})}),{regressionDataSets:n,regressionSeries:r,regressionXAxes:i})}function qO({type:e,...t},n,r,i){if(!e)return 10;if(e==="static"){const{size:s}=t;return s}const{func_content:a}=t,o=L.keyBy(n,r);return(s,u)=>{let d;u.name?d=o[u.name]:d=n[u.dataIndex];try{return new Function(`return ${a}`)()({rowData:d,params:u,variables:i},{lodash:De.default,interpolate:il})}catch(f){return console.error(`[getEchartsSymbolSize] failed parsing custom function, error: ${f.message}`),10}}}function up(e,t,n,r){const i=t.map(a=>[a[n],a[r]]);return De.default.unionBy(i,e,0)}function HO(e,t,n,r){return e.map(i=>{const a=i.orientation==="horizontal",o=a?"yAxis":"xAxis",s=a?"insideEndTop":"end";return{name:"refs",type:"scatter",hide_in_legend:!0,data:[],markLine:{data:[{name:i.name,[o]:Number(n[i.variable_key])}],silent:!0,symbol:["none","none"],label:{formatter:function(){return ll(i.template,t,r)},position:s}}}})}function WO(e,t){return e.map(n=>({name:"",type:"line",hide_in_legend:!0,data:[],markArea:{itemStyle:{color:n.color},data:[[{yAxis:t[n.y_keys.upper]},{yAxis:t[n.y_keys.lower]}]],silent:!0}}))}function UO({x_axis_data_key:e},{y_axis_data_key:t,yAxisIndex:n,label_position:r,name:i,group_by_key:a,stack:o,color:s,display_name_on_line:u,symbolSize:d,hide_in_legend:f,...p},h,g,v,m,C){const b={label:{show:!!r,position:r,formatter:C[n!=null?n:"default"]},name:i,xAxisId:"main-x-axis",yAxisIndex:n,stack:o,color:s,symbolSize:qO(d,v,e,m),hide_in_legend:f,...p};if(u&&(b.endLabel={show:!0,formatter:i,offset:[-12,12],align:"right"}),!a)return g?b.data=up(h,v,e,t):b.data=v.map(S=>S[t]),b;const w=L.groupBy(v,a);return Object.entries(w).map(([S,D])=>{const _=L.cloneDeep(b);return _.data=up(h,D,e,t),_.name=S,_.color=void 0,_})}function YO(e,t,n,r,i,a,o){const s=t.map(d=>[d,0]);return e.series.map(d=>UO(e,d,s,n,r,o,i)).flat().concat(HO(e.reference_lines,a,o,r)).concat(WO(e.reference_areas,o))}function XO(e,t){const n=e.find(s=>s.axisDim==="x"&&s.axisId==="main-x-axis");if(!n)return"";const{name:r,axisType:i,axisValue:a,axisIndex:o}=n;return i==="xAxis.category"?r:da(t.x_axis.axisLabel.formatter)(a,o)}function QO(e,t,n){const r=t.reduce((i,{yAxisIndex:a,name:o})=>(i[o]=a,i),{});return{formatter:function(i){const a=Array.isArray(i)?i:[i];if(a.length===0)return"";const o=XO(a,e),s=a.map(({seriesName:u,value:d})=>{var h;if(Array.isArray(d)&&d.length===2&&(d=d[1]),!u)return d;const f=r[u],p=(h=n[f])!=null?h:n.default;return`
|
|
134
134
|
<tr>
|
|
135
135
|
<th style="text-align: right; padding: 0 1em;">${u}</th>
|
|
136
136
|
<td style="text-align: left; padding: 0 1em;">${p({value:d})}</td>
|
|
@@ -142,8 +142,8 @@ WHERE
|
|
|
142
142
|
${s.join("")}
|
|
143
143
|
</tbody>
|
|
144
144
|
</table>
|
|
145
|
-
`}}}function ZO(e){return e.y_axes.reduce((n,{label_formatter:r},i)=>(n[i]=function(o){let s=o;if(typeof o=="object"&&(Array.isArray(o.value)&&o.value.length===2?s=o.value[1]:s=o.value),!r)return s;try{return $t.default(s).format(r)}catch(u){return console.error(u),s}},n),{default:({value:n})=>n})}function JO(e,t){const n={};return t.map(r=>{const i=il(r,e);n[r.name]=di(r,i)}),n}function eM(e,t,n){var a;const r=t.every(o=>!Number.isNaN(Number(o))),{axisLabel:i}=e.x_axis;return[{data:t,name:(a=e.x_axis_name)!=null?a:"",id:"main-x-axis",axisTick:{show:!0,alignWithLabel:!0},type:r?"value":"category",axisLabel:{...i,formatter:da(i.formatter)}},...n]}function tM(e,t){return e.y_axes.map(({nameAlignment:n,...r},i)=>{var o;let a=r.position;return a||(a=i>0?"right":"left"),{...r,position:a,axisLabel:{show:!0,formatter:(o=t[i])!=null?o:t.default},axisLine:{show:!0},nameTextStyle:{fontWeight:"bold",align:n},nameLocation:"end",nameGap:15,splitLine:{show:!1}}})}const nM={tooltip:{trigger:"axis"},xAxis:[{type:"category",nameGap:25,nameLocation:"center",nameTextStyle:{fontWeight:"bold"},splitLine:{show:!1},axisTick:{show:!0,alignWithLabel:!0}}],grid:{top:10,left:30,right:15,bottom:25,containLabel:!0}};function rM(e,t,n){const r=JO(t,n),i=ZO(e),a=De.default.uniq(t.map(h=>h[e.x_axis_data_key])),o=a.every(h=>!Number.isNaN(Number(h))),s=YO(e,a,o,t,i,n,r),{regressionDataSets:u,regressionSeries:d,regressionXAxes:f}=KO(e,t),p={xAxis:eM(e,a,f),yAxis:tM(e,i),dataset:[...u],series:[...s,...d],tooltip:QO(e,s,i),grid:zO(e),legend:GO(s),dataZoom:dl(e.dataZoom)};return L.defaultsDeep({},p,nM)}const cp={id:"builtin:echarts:click-echart:series",displayName:"Click Chart Series",nameRender:aM,configRender:iM,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 iM(e){return l(Oe,{})}function aM(e){return l(c.Text,{children:"Click chart's series"})}const $r={x_axis_scroll:!1,y_axis_scroll:!1,x_axis_slider:!1,y_axis_slider:!1},fl={regressions:[],series:[],stats:{templates:{bottom:"",top:""}},x_axis:{axisLabel:{rotate:0,formatter:{...lr}}},x_axis_data_key:"",x_axis_name:"",y_axes:[{name:"Y Axis",position:"left",nameAlignment:"center",label_formatter:vn}],reference_lines:[],reference_areas:[],dataZoom:$r};wt.use([Je.DataZoomComponent,Qt.BarChart,Qt.LineChart,Qt.ScatterChart,Je.GridComponent,Je.LegendComponent,Je.TooltipComponent,Sn.CanvasRenderer,Je.MarkLineComponent,Je.MarkAreaComponent]),wt.registerTransform(_a.transform.regression);function dp(e){return e.trim().length>0}function oM({conf:e,data:t,width:n,height:r,interactionManager:i,variables:a}){const o=x.useMemo(()=>De.default.keyBy(t,e.x_axis_data_key),[t,e.x_axis_data_key]),s=Ar(i.triggerManager,cp.id),u=f=>{const p=De.default.get(o,f.name,{error:"rowData is not found"});s.forEach(h=>{i.runInteraction(h.id,{...f,rowData:p})})},d=j.default.useMemo(()=>rM(e,t,a),[e,t]);return!n||!r?null:l(wn.default,{echarts:wt,option:d,style:{width:n,height:r},onEvents:{click:u}})}function lM({context:e,instance:t}){const n=Ir({vizManager:e.vizManager,instance:t}),{value:r}=Ue(e.instanceData,"config"),{variables:i}=e,a=x.useMemo(()=>L.defaults({},r,fl),[r]),o=e.data,{width:s,height:u}=e.viewport,{ref:d,height:f}=bt.useElementSize(),{ref:p,height:h}=bt.useElementSize(),g=j.default.useMemo(()=>{const{stats:{templates:m}}=a;return{top:fi(m.top,i,o),bottom:fi(m.bottom,i,o)}},[a,o]),v=Math.max(0,u-f-h);return y(c.Box,{children:[dp(a.stats.templates.top)&&l(c.Text,{ref:d,align:"left",size:"xs",pl:"sm",children:Object.values(g.top).map(m=>m)}),l(oM,{variables:i,width:s,height:v,data:o,conf:a,interactionManager:n}),dp(a.stats.templates.bottom)&&l(c.Text,{ref:p,align:"left",size:"xs",pl:"sm",children:Object.values(g.bottom).map(m=>m)})]})}const pl=x.forwardRef(({value:e,onChange:t},n)=>{const r=i=>a=>{t({...e,[i]:a})};return y(c.Stack,{children:[l(c.Divider,{variant:"dashed",label:"Scroll to Zoom",labelPosition:"center"}),y(c.Group,{children:[l(c.Box,{sx:{flexGrow:1},children:l(c.Switch,{label:"Enable on X Axis",checked:e.x_axis_scroll,onChange:i=>r("x_axis_scroll")(i.currentTarget.checked)})}),l(c.Box,{sx:{flexGrow:1},children:l(c.Switch,{label:"Enable on Y Axis",checked:e.y_axis_scroll,onChange:i=>r("y_axis_scroll")(i.currentTarget.checked)})})]}),l(c.Divider,{variant:"dashed",label:"Slider for Zooming",labelPosition:"center"}),y(c.Group,{children:[l(c.Box,{sx:{flexGrow:1},children:l(c.Switch,{label:"Slider for X Axis",checked:e.x_axis_slider,onChange:i=>r("x_axis_slider")(i.currentTarget.checked)})}),l(c.Tooltip,{label:"Not available for now, will overlap y-axis's label",children:l(c.Box,{sx:{flexGrow:1},children:l(c.Switch,{label:"Slider for Y Axis",disabled:!e.y_axis_slider,checked:e.y_axis_slider,onChange:i=>r("y_axis_slider")(i.currentTarget.checked)})})})]})]})}),sM=[{label:"Rectangle",value:"rectangle"}],uM=[{label:"Horizontal",value:"horizontal"}];function cM({control:e,index:t,remove:n,variableOptions:r}){return y(c.Stack,{my:0,p:0,sx:{position:"relative"},children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`reference_areas.${t}.name`,control:e,render:({field:i})=>l(c.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),l(k.Controller,{name:`reference_areas.${t}.color`,control:e,render:({field:i})=>l(c.TextInput,{label:"Color",required:!0,sx:{flex:1},...i})})]}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`reference_areas.${t}.type`,control:e,render:({field:i})=>l(c.Select,{label:"Type",required:!0,data:sM,sx:{flex:1},...i})}),l(k.Controller,{name:`reference_areas.${t}.direction`,control:e,render:({field:i})=>l(c.Select,{label:"Direction",required:!0,data:uM,sx:{flex:1},...i})})]}),l(c.Divider,{variant:"dashed",label:"Data",labelPosition:"center"}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`reference_areas.${t}.y_keys.upper`,control:e,render:({field:i})=>l(c.Select,{label:"Upper Boundary",required:!0,data:r,sx:{flex:1},...i})}),l(k.Controller,{name:`reference_areas.${t}.y_keys.lower`,control:e,render:({field:i})=>l(c.Select,{label:"Lower Boundary",required:!0,data:r,sx:{flex:1},...i})})]}),l(c.Button,{leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),sx:{top:15,right:5},children:"Delete this Reference Area"})]},t)}function dM({control:e,watch:t,variables:n}){const{fields:r,append:i,remove:a}=k.useFieldArray({control:e,name:"reference_areas"}),o=t("reference_areas"),s=r.map((f,p)=>({...f,...o[p]})),u=()=>i({name:"",type:"rectangle",direction:"horizontal",y_keys:{upper:"",lower:""}}),d=x.useMemo(()=>n.map(f=>({label:f.name,value:f.name})),[n]);return y(c.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"6px 0px 0px"}},children:[y(c.Tabs.List,{children:[s.map((f,p)=>l(c.Tabs.Tab,{value:p.toString(),children:p+1},p)),l(c.Tabs.Tab,{onClick:u,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),s.map((f,p)=>l(c.Tabs.Panel,{value:p.toString(),children:l(cM,{control:e,index:p,remove:a,variableOptions:d})},p))]})}const fM=[{label:"Horizontal",value:"horizontal"},{label:"Vertical",value:"vertical"}];function pM({control:e,index:t,remove:n,watch:r,variableOptions:i}){const a=r(`reference_lines.${t}.orientation`);return y(c.Stack,{my:0,p:0,sx:{position:"relative"},children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`reference_lines.${t}.name`,control:e,render:({field:o})=>l(c.TextInput,{label:"Name",placeholder:"Average Reference Line",required:!0,sx:{flex:1},...o})}),l(k.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:o})=>l(c.Select,{label:"Value",required:!0,data:i,sx:{flex:1},...o})})]}),l(k.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:o})=>l(c.TextInput,{label:"Content Template",placeholder:"Average: ${avg}",required:!0,sx:{flex:1},...o})}),l(k.Controller,{name:`reference_lines.${t}.orientation`,control:e,render:({field:o})=>l(c.Select,{label:"Orientation",data:fM,required:!0,sx:{flex:1},...o})}),a==="vertical"&&l(c.Text,{mt:-10,color:"dimmed",size:12,children:"Works only when xAxis values are numbers"}),l(c.Button,{leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),sx:{top:15,right:5},children:"Delete this Reference Line"})]},t)}function hM({control:e,watch:t,variables:n}){const{fields:r,append:i,remove:a}=k.useFieldArray({control:e,name:"reference_lines"}),o=t("reference_lines"),s=r.map((f,p)=>({...f,...o[p]})),u=()=>i({name:"",template:"",variable_key:"",orientation:"horizontal"}),d=x.useMemo(()=>n.map(f=>({label:f.name,value:f.name})),[n]);return y(c.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px"}},children:[y(c.Tabs.List,{children:[s.map((f,p)=>l(c.Tabs.Tab,{value:p.toString(),children:p+1},p)),l(c.Tabs.Tab,{onClick:u,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),s.map((f,p)=>l(c.Tabs.Panel,{value:p.toString(),children:l(pM,{control:e,index:p,remove:a,watch:t,variableOptions:d})},p))]})}const gM=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}],vM=[{label:"solid",value:"solid"},{label:"dashed",value:"dashed"},{label:"dotted",value:"dotted"}];function mM({control:e,regressionItem:t,index:n,remove:r,yAxisOptions:i,data:a}){const o=t.transform.config.method;return y(c.Stack,{my:0,p:0,sx:{position:"relative"},children:[l(k.Controller,{name:`regressions.${n}.name`,control:e,render:({field:s})=>l(c.TextInput,{label:"Name",required:!0,sx:{flex:1},...s})}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`regressions.${n}.y_axis_data_key`,control:e,render:({field:s})=>l(ot,{label:"Value Field",required:!0,data:a,sx:{flex:1},...s})}),l(k.Controller,{name:`regressions.${n}.plot.yAxisIndex`,control:e,render:({field:{value:s,onChange:u,...d}})=>{var f;return l(c.Select,{label:"Y Axis",data:i,disabled:i.length===0,...d,value:(f=s==null?void 0:s.toString())!=null?f:"",onChange:p=>{if(!p){u(0);return}u(Number(p))},sx:{flex:1}})}})]}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`regressions.${n}.transform.config.method`,control:e,render:({field:s})=>l(c.Select,{label:"Method",data:gM,sx:{flex:1},...s})}),o==="polynomial"&&l(k.Controller,{name:`regressions.${n}.transform.config.order`,control:e,render:({field:s})=>l(c.NumberInput,{label:"Order",sx:{flex:1},...s})})]}),l(c.Divider,{mb:-15,variant:"dashed",label:"Line Style",labelPosition:"center"}),y(c.Group,{grow:!0,children:[l(k.Controller,{name:`regressions.${n}.plot.lineStyle.type`,control:e,render:({field:s})=>l(c.Select,{label:"Line Type",data:vM,sx:{flexGrow:1},...s})}),l(k.Controller,{name:`regressions.${n}.plot.lineStyle.width`,control:e,render:({field:s})=>l(c.NumberInput,{label:"Line Width",min:1,max:10,sx:{flexGrow:1},...s})})]}),y(c.Stack,{spacing:4,children:[l(c.Text,{size:"sm",children:"Color"}),l(k.Controller,{name:`regressions.${n}.plot.color`,control:e,render:({field:s})=>l(mn,{...s})})]}),l(c.Button,{leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>r(n),sx:{top:15,right:5},children:"Delete this Regression Line"})]},n)}function yM({control:e,watch:t,data:n}){const{fields:r,append:i,remove:a}=k.useFieldArray({control:e,name:"regressions"}),o=t("regressions"),s=r.map((p,h)=>({...p,...o[h]})),u=t("y_axes"),d=j.default.useMemo(()=>u.map(({name:p},h)=>({label:p,value:h.toString()})),[u]),f=()=>i({transform:{type:"ecStat:regression",config:{method:"linear",order:1,formulaOn:"end"}},name:"",y_axis_data_key:"",plot:{type:"line",yAxisIndex:0,color:"#666666",lineStyle:{type:"solid",width:1}}});return y(c.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px",paddingTop:"6px"}},children:[y(c.Tabs.List,{children:[s.map((p,h)=>l(c.Tabs.Tab,{value:h.toString(),children:h+1},h)),l(c.Tabs.Tab,{onClick:f,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),s.map((p,h)=>l(c.Tabs.Panel,{value:h.toString(),children:l(mM,{regressionItem:p,control:e,index:h,remove:a,yAxisOptions:d,data:n},h)},h))]})}const pi={static:{type:"static",size:10},dynamic:{type:"dynamic",func_content:["function getSize({ rowData, params, variables }, { lodash, interpolate }) {"," // your code goes here"," // return 10","}"].join(`
|
|
146
|
-
`)}},bM=[{label:"No gap between bars",value:"0%"},{label:"Bars overlapping on each other",value:"-100%"}];function CM({control:e,index:t}){return y(Oe,{children:[y(c.Group,{grow:!0,align:"top",children:[l(k.Controller,{name:`series.${t}.stack`,control:e,render:({field:n})=>l(c.TextInput,{label:"Stack",placeholder:"Stack bars by this ID",sx:{flexGrow:1},...n})}),l(k.Controller,{name:`series.${t}.barWidth`,control:e,render:({field:n})=>l(c.TextInput,{label:"Bar Width",sx:{flexGrow:1},...n})})]}),l(k.Controller,{name:`series.${t}.barGap`,control:e,render:({field:n})=>l(c.Select,{label:"Bar Gap",data:bM,sx:{flexGrow:1},...n})})]})}const SM=({value:e,onChange:t})=>{const n=r=>{!r||t(r)};return l(c.Box,{children:l(Jn.default,{height:"500px",defaultLanguage:"javascript",value:e,onChange:n,theme:"vs-dark",options:{minimap:{enabled:!1}}})})},wM=({value:e,onChange:t,data:n})=>{const[r,{setTrue:i,setFalse:a}]=Ze.useBoolean(),[o,s]=x.useState(e),u=()=>{a();const{type:h,func_content:g}=o,v={type:h,func_content:g};s(v),t(v)},d=()=>{a(),s(e)},f=h=>{s(g=>({...g,func_content:h}))},p=()=>{f(pi.dynamic.func_content)};return y(Oe,{children:[l(c.Box,{sx:{width:"50%"},children:l(c.Button,{variant:"filled",mt:24,onClick:i,sx:{flexGrow:0},children:"Setup"})}),l(c.Modal,{size:800,title:"Setup dynamic size",opened:r,onClose:a,closeOnClickOutside:!1,withCloseButton:!1,children:r&&y(c.Stack,{children:[l(c.Divider,{mt:10,mb:-10,label:"Dynamic by a custom function",labelPosition:"center",variant:"dashed"}),l(SM,{value:o.func_content,onChange:f}),y(c.Group,{position:"apart",children:[l(c.Button,{onClick:p,color:"red",leftIcon:l(W.Recycle,{size:20}),children:"Rest"}),y(c.Group,{position:"right",children:[l(c.Button,{onClick:d,variant:"subtle",children:"Cancel"}),l(c.Button,{onClick:u,children:"OK"})]})]})]})})]})},xM=({value:e,onChange:t,data:n})=>e.type!=="dynamic"?null:l(wM,{value:e,onChange:t,data:n}),_M=({value:e,onChange:t})=>{if(e.type!=="static")return null;const n=r=>{t({...e,size:r})};return l(Oe,{children:l(c.NumberInput,{defaultValue:18,placeholder:"1 ~ 100",label:" ",hideControls:!0,value:e.size,onChange:n})})},EM=[{label:"Static",value:"static"},{label:"Dynamic",value:"dynamic"}],fp=x.forwardRef(({label:e="Size",value:t,onChange:n,data:r},i)=>{const a=o=>{n({...pi[o]})};return y(c.SimpleGrid,{cols:2,children:[l(c.Select,{ref:i,label:e,data:EM,value:t.type,onChange:a,sx:{flexGrow:1}}),l(_M,{value:t,onChange:n}),l(xM,{value:t,onChange:n,data:r})]})}),TM=[{label:"off",value:"false"},{label:"start",value:"start"},{label:"middle",value:"middle"},{label:"end",value:"end"}],OM=[{label:"solid",value:"solid"},{label:"dashed",value:"dashed"},{label:"dotted",value:"dotted"}];function MM({control:e,index:t,seriesItem:n,data:r}){const i=n.showSymbol;return y(Oe,{children:[l(c.Divider,{mb:-15,variant:"dashed",label:"Line Settings",labelPosition:"center"}),y(c.Group,{grow:!0,children:[l(k.Controller,{name:`series.${t}.lineStyle.type`,control:e,render:({field:a})=>l(c.Select,{label:"Line Type",data:OM,sx:{flexGrow:1},...a})}),l(k.Controller,{name:`series.${t}.lineStyle.width`,control:e,render:({field:a})=>l(c.NumberInput,{label:"Line Width",min:1,max:10,sx:{flexGrow:1},...a})})]}),y(c.Group,{grow:!0,align:"center",children:[l(k.Controller,{name:`series.${t}.step`,control:e,render:({field:a})=>l(c.Select,{label:"Step",data:TM,sx:{flexGrow:1,maxWidth:"48%"},...a,value:String(a.value),onChange:o=>{const s=o==="false"?!1:o;a.onChange(s)}})}),y(c.Stack,{children:[l(k.Controller,{name:`series.${t}.smooth`,control:e,render:({field:a})=>l(c.Box,{sx:{flexGrow:1},children:l(c.Switch,{label:"Smooth Line",checked:a.value,onChange:o=>a.onChange(o.currentTarget.checked)})})}),l(k.Controller,{name:`series.${t}.display_name_on_line`,control:e,render:({field:a})=>{var o;return l(c.Box,{sx:{flexGrow:1},children:l(c.Switch,{label:"Display Name on Line",checked:(o=a.value)!=null?o:!1,onChange:s=>a.onChange(s.currentTarget.checked)})})}})]})]}),y(c.Stack,{children:[l(k.Controller,{name:`series.${t}.showSymbol`,control:e,render:({field:a})=>l(c.Box,{mt:10,mb:-10,sx:{flexGrow:1},children:l(c.Switch,{label:"Show Symbol on Line",checked:a.value,onChange:o=>a.onChange(o.currentTarget.checked)})})}),i&&l(k.Controller,{name:`series.${t}.symbolSize`,control:e,render:({field:a})=>l(fp,{label:"Symbol Size",data:r,...a})})]})]})}function DM({control:e,index:t,data:n}){return l(k.Controller,{name:`series.${t}.symbolSize`,control:e,render:({field:r})=>l(fp,{label:"Size",data:n,...r})})}const RM=[{label:"off",value:""},{label:"top",value:"top"},{label:"left",value:"left"},{label:"right",value:"right"},{label:"bottom",value:"bottom"},{label:"inside",value:"inside"},{label:"insideLeft",value:"insideLeft"},{label:"insideRight",value:"insideRight"},{label:"insideTop",value:"insideTop"},{label:"insideBottom",value:"insideBottom"},{label:"insideTopLeft",value:"insideTopLeft"},{label:"insideBottomLeft",value:"insideBottomLeft"},{label:"insideTopRight",value:"insideTopRight"},{label:"insideBottomRight",value:"insideBottomRight"}];function kM({control:e,index:t,remove:n,seriesItem:r,yAxisOptions:i,data:a}){const o=r.type;return y(c.Stack,{my:0,p:0,sx:{position:"relative"},children:[l(c.Stack,{children:l(k.Controller,{name:`series.${t}.type`,control:e,render:({field:s})=>l(c.SegmentedControl,{data:[{label:"Line",value:"line"},{label:"Bar",value:"bar"},{label:"Scatter",value:"scatter"},{label:"Boxplot",value:"boxplot",disabled:!0}],...s})})}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`series.${t}.name`,control:e,render:({field:s})=>l(c.TextInput,{label:"Name",required:!0,sx:{flex:1},...s})}),l(k.Controller,{name:`series.${t}.y_axis_data_key`,control:e,render:({field:s})=>l(ot,{label:"Value Field",required:!0,data:a,sx:{flex:1},...s})})]}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`series.${t}.yAxisIndex`,control:e,render:({field:{value:s,onChange:u,...d}})=>{var f;return l(c.Select,{label:"Y Axis",data:i,disabled:i.length===0,...d,value:(f=s==null?void 0:s.toString())!=null?f:"",onChange:p=>{if(!p){u(0);return}u(Number(p))},sx:{flex:1}})}}),l(k.Controller,{name:`series.${t}.group_by_key`,control:e,render:({field:s})=>l(ot,{label:"Group By",data:a,clearable:!0,sx:{flex:1},...s})})]}),o==="line"&&l(MM,{index:t,control:e,seriesItem:r,data:a}),o==="bar"&&l(CM,{index:t,control:e}),o==="scatter"&&l(DM,{index:t,control:e,data:a}),l(c.Divider,{mb:-10,mt:10,variant:"dashed",label:"Style",labelPosition:"center"}),l(k.Controller,{name:`series.${t}.label_position`,control:e,render:({field:s})=>l(c.Select,{label:"Label Position",data:RM,...s})}),y(c.Stack,{spacing:4,children:[l(c.Text,{size:"sm",children:"Color"}),l(k.Controller,{name:`series.${t}.color`,control:e,render:({field:s})=>l(mn,{...s})})]}),l(c.Divider,{mb:-10,mt:10,variant:"dashed",label:"Behavior",labelPosition:"center"}),l(k.Controller,{name:`series.${t}.hide_in_legend`,control:e,render:({field:s})=>l(c.Checkbox,{label:"Hide in legend",checked:s.value,onChange:u=>s.onChange(u.currentTarget.checked)})}),l(c.Divider,{mb:-10,mt:10,variant:"dashed"}),l(c.Button,{leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),sx:{top:15,right:5},children:"Delete this Series"})]},t)}function PM({control:e,watch:t,data:n}){const{fields:r,append:i,remove:a}=k.useFieldArray({control:e,name:"series"}),o=t("series"),s=r.map((p,h)=>({...p,...o[h]})),u=()=>i({type:"bar",name:bt.randomId(),showSymbol:!1,symbolSize:pi.static,y_axis_data_key:"value",yAxisIndex:0,label_position:"top",display_name_on_line:!1,stack:"",color:"#000",step:!1,smooth:!1,barWidth:"10",barGap:"0%",lineStyle:{type:"solid",width:1},hide_in_legend:!1}),d=t("y_axes"),f=j.default.useMemo(()=>d.map(({name:p},h)=>({label:p,value:h.toString()})),[d]);return y(c.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px",paddingTop:"6px"}},children:[y(c.Tabs.List,{children:[s.map((p,h)=>l(c.Tabs.Tab,{value:h.toString(),children:h+1},p.id)),l(c.Tabs.Tab,{onClick:u,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),s.map((p,h)=>l(c.Tabs.Panel,{value:h.toString(),children:l(kM,{control:e,index:h,remove:a,seriesItem:p,yAxisOptions:f,data:n},p.id)},p.id))]})}function AM({control:e,watch:t}){return t("stats"),l(c.Stack,{children:y(c.Stack,{spacing:0,children:[l(k.Controller,{name:"stats.templates.top",control:e,render:({field:n})=>l(oi,{label:"Template for stats above the chart",py:"md",sx:{flexGrow:1},...n})}),l(k.Controller,{name:"stats.templates.bottom",control:e,render:({field:n})=>l(oi,{label:"Template for stats under the chart",py:"md",sx:{flexGrow:1},...n})})]})})}function IM({data:e,control:t,watch:n}){return n(["x_axis_data_key","x_axis_name","x_axis"]),y(c.Stack,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis_data_key",control:t,render:({field:r})=>l(ot,{label:"X Axis Data Field",required:!0,data:e,sx:{flex:1},...r})}),l(k.Controller,{name:"x_axis_name",control:t,render:({field:r})=>l(c.TextInput,{label:"X Axis Name",sx:{flex:1},...r})})]}),l(c.Divider,{mb:-15,label:"Tick Label",labelPosition:"center"}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis.axisLabel.rotate",control:t,render:({field:r})=>l(c.NumberInput,{label:"Rotate",hideControls:!0,min:-90,max:90,rightSection:l(c.Text,{color:"dimmed",children:"degree"}),sx:{width:"48%"},styles:{rightSection:{width:"4em",justifyContent:"flex-end",paddingRight:"6px"}},...r})}),l(k.Controller,{name:"x_axis.axisLabel.formatter",control:t,render:({field:r})=>l(ul,{data:e,...r})})]})]})}const $M=[{label:"left",value:"left"},{label:"center",value:"center"},{label:"right",value:"right"}],NM=[{label:"left",value:"left"},{label:"right",value:"right"}];function LM({control:e,index:t,remove:n}){return y(c.Stack,{my:0,p:"0",sx:{position:"relative"},children:[l(c.Divider,{mb:-15,mt:15,variant:"dashed",label:"Name",labelPosition:"center"}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`y_axes.${t}.name`,control:e,render:({field:r})=>l(c.TextInput,{label:"Name",required:!0,sx:{flex:1},...r})}),l(k.Controller,{name:`y_axes.${t}.nameAlignment`,control:e,render:({field:r})=>l(c.Select,{label:"Align",required:!0,data:$M,sx:{flex:1},...r})})]}),l(c.Divider,{mb:-15,variant:"dashed",label:"Layout",labelPosition:"center"}),l(c.Group,{grow:!0,noWrap:!0,children:l(k.Controller,{name:`y_axes.${t}.position`,control:e,render:({field:r})=>l(c.Select,{label:"Position",required:!0,data:NM,sx:{flex:1},...r})})}),y(c.Stack,{children:[l(c.Divider,{mb:-15,variant:"dashed",label:"Label Format",labelPosition:"center"}),l(k.Controller,{name:`y_axes.${t}.label_formatter`,control:e,render:({field:r})=>l(ar,{...r})})]}),l(c.Button,{mt:20,leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),disabled:t===0,children:"Delete this YAxis"})]})}function VM({control:e,watch:t}){const{fields:n,append:r,remove:i}=k.useFieldArray({control:e,name:"y_axes"}),a=t("y_axes"),o=n.map((u,d)=>({...u,...a[d]})),s=()=>r({name:"",label_formatter:vn});return y(c.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px"}},children:[y(c.Tabs.List,{children:[o.map((u,d)=>l(c.Tabs.Tab,{value:d.toString(),children:d+1},d)),l(c.Tabs.Tab,{onClick:s,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),o.map((u,d)=>l(c.Tabs.Panel,{value:d.toString(),children:l(LM,{control:e,index:d,remove:i})},d))]})}function FM(e){function t({name:n="",template:r="",variable_key:i="",orientation:a="horizontal"}){return{name:n,template:r,variable_key:i,orientation:a}}return e.map(t)}function zM(e){function t({type:n,name:r,showSymbol:i,symbolSize:a=pi.static,y_axis_data_key:o="value",yAxisIndex:s=0,label_position:u="top",stack:d="1",color:f="black",barWidth:p="30",barGap:h="0%",smooth:g=!1,step:v=!1,group_by_key:m="",display_name_on_line:C=!1,lineStyle:b={type:"solid",width:1},hide_in_legend:w=!1}){const S={type:n,name:r,showSymbol:i,symbolSize:a,y_axis_data_key:o,yAxisIndex:s,label_position:u,stack:d,color:f,barWidth:p,barGap:h,smooth:g,step:v,group_by_key:m,display_name_on_line:C,lineStyle:b,hide_in_legend:w};return typeof a=="number"&&(S.symbolSize={...pi.static,size:a}),S}return e.map(t)}function jM(e){return e||{templates:{top:"",bottom:""}}}function BM({series:e,stats:t,reference_lines:n,...r}){return{series:zM(e!=null?e:[]),stats:jM(t),reference_lines:FM(n!=null?n:[]),...r}}function GM({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),{variables:r}=e,i=e.data,a=x.useMemo(()=>L.defaultsDeep({},t,fl),[t]),o=x.useMemo(()=>BM(a),[a]);x.useEffect(()=>{!L.isEqual(a,o)&&(console.log("config malformed, resetting to defaults",a,o),n(o))},[a,o]);const{control:s,handleSubmit:u,watch:d,getValues:f,reset:p}=k.useForm({defaultValues:o});x.useEffect(()=>{p(o)},[o]);const h=f(),g=x.useMemo(()=>!L.isEqual(h,a),[h,a]);return d(["dataZoom"]),l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:u(n),children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{children:"Chart Config"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!g,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Tabs,{defaultValue:"Series",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[y(c.Tabs.List,{children:[l(c.Tabs.Tab,{value:"X Axis",children:"X Axis"}),l(c.Tabs.Tab,{value:"Y Axes",children:"Y Axes"}),l(c.Tabs.Tab,{value:"Series",children:"Series"}),l(c.Tabs.Tab,{value:"Regression Lines",children:"Regression Lines"}),l(c.Tabs.Tab,{value:"Stats",children:"Stats"}),l(c.Tabs.Tab,{value:"Reference Lines",children:"Reference Lines"}),l(c.Tabs.Tab,{value:"Reference Areas",children:"Reference Areas"}),l(c.Tabs.Tab,{value:"Zooming",children:"Zooming"})]}),l(c.Tabs.Panel,{value:"X Axis",children:l(IM,{control:s,watch:d,data:i})}),l(c.Tabs.Panel,{value:"Y Axes",children:l(VM,{control:s,watch:d})}),l(c.Tabs.Panel,{value:"Series",children:l(PM,{control:s,watch:d,data:i})}),l(c.Tabs.Panel,{value:"Regression Lines",children:l(yM,{control:s,watch:d,data:i})}),l(c.Tabs.Panel,{value:"Stats",children:l(AM,{control:s,watch:d,data:i})}),l(c.Tabs.Panel,{value:"Reference Lines",children:l(hM,{variables:r,control:s,watch:d})}),l(c.Tabs.Panel,{value:"Reference Areas",children:l(dM,{variables:r,control:s,watch:d})}),l(c.Tabs.Panel,{value:"Zooming",children:l(k.Controller,{name:"dataZoom",control:s,render:({field:v})=>l(pl,{...v})})})]})]})})}function KM(e){const t=L.cloneDeep(L.omit(e,"variables"));return t.stats=L.omit(t.stats,"variables"),t}function qM(e){const{rotate:t,formatter:n=lr}=e.x_axis.axisLabel;return{...e,x_axis:{...e.x_axis,axisLabel:{rotate:t,formatter:n}}}}function HM(e){const{dataZoom:t=$r,...n}=e;return{...n,dataZoom:t}}class WM extends Ft{constructor(){super(...arguments);pe(this,"VERSION",4)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,{panelModel:r})=>{const{config:i}=n;return(i.variables||[]).forEach(s=>{r.variables.find(u=>u.name===s.name)||r.addVariable(s)}),(L.get(i,"stats.variables")||[]).forEach(s=>{r.variables.find(u=>u.name===s.name)||r.addVariable(s)}),{config:KM(i)}}),this.version(3,n=>({version:3,config:qM(n.config)})),this.version(4,n=>({version:4,config:HM(n.config)}))}}const UM={displayName:"Cartesian Chart",migrator:new WM,name:"cartesian",viewRender:lM,configRender:GM,createConfig:()=>fl,triggers:[cp]},pp={id:"builtin:echarts:click-echart:series",displayName:"Click Chart Series",nameRender:XM,configRender:YM,payload:[{name:"type",description:"Always 'click'",valueType:"string"},{name:"seriesType",description:"'line' | 'bar'",valueType:"string"},{name:"name",description:"Name of the series clicked",valueType:"string"},{name:"color",description:"Color",valueType:"string"},{name:"rowData",description:"Data of the row",valueType:"object"}]};function YM(e){return l(Oe,{})}function XM(e){return l(c.Text,{children:"Click chart's series"})}const hp={label_template:"${percentage.x} of ${x_axis.name} causes ${percentage.y} of ${bar.name}",color:"rgba(0,0,0,0.3)"},hl={x_axis:{name:"X Axis",data_key:"",axisLabel:{rotate:0,formatter:{...lr}}},data_key:"value",bar:{name:"Value",color:"#228be6",label_formatter:vn},line:{name:"Value",color:"red"},dataZoom:$r,markLine:hp};function fa(e){return $t.default(e).format({output:"percent",mantissa:0})}function QM(e){const t=e.value[1];try{return fa(t)}catch(n){return console.error(n),t}}function ZM(e){function t(n){let r=n;if(typeof n=="object"&&(Array.isArray(n.value)&&n.value.length===2?r=n.value[1]:r=n.value),!e.bar.label_formatter)return r;try{return $t.default(r).format(e.bar.label_formatter)}catch(i){return console.error(i),r}}return{bar:t,line:QM,lineValue:fa}}function JM(e,t,n){const{label_template:r}=e.markLine;if(!r)return"";const i={...e,percentage:t,count:n},a=Object.keys(i),o=Object.values(i);return new Function(...a,`return \`${r}\`;`)(...o)}function eD(e,t){if(t.length===0)return{};const n=t.findIndex(s=>s[1]>=.8);if(n===-1)return{};const r=t[n],i={x:fa((n+1)/t.length),y:fa(r[1])},a={left:n+1,right:t.length-n-1},o=r[0];return o?{name:"",silent:!0,symbol:"triangle",symbolRotate:180,symbolSize:[10,8],data:[{name:"",symbol:"none",xAxis:o,lineStyle:{color:e.markLine.color},label:{formatter:JM(e,i,a)}}]}:{}}function tD(e,t,n){const r=t.map(s=>[s[e.x_axis.data_key],Number(s[e.data_key])]).sort((s,u)=>u[1]-s[1]),i=r.reduce((s,u)=>s+u[1],0),a=r.reduce((s,u,d)=>{const f=d===0?0:s[d-1][1];return s.push([u[0],f+u[1]]),s},[]).map(s=>[s[0],s[1]/i]),o=eD(e,a);return[{name:e.bar.name,type:"bar",itemStyle:{color:e.bar.color},label:{show:!1,position:"top",formatter:n.bar},yAxisIndex:0,data:r},{name:e.line.name,type:"line",itemStyle:{color:e.line.color},symbolSize:2,lineStyle:{width:1},label:{show:!1,position:"top",formatter:n.line},yAxisIndex:1,data:a,markLine:o}]}const nD=e=>t=>{const n=Array.isArray(t)?t:[t];if(n.length===0)return"";const r=n.map((i,a)=>{const o=i.seriesName,[s,u]=i.value;if(!o)return u;const d=a===0?e.bar:e.lineValue;return`
|
|
145
|
+
`}}}function ZO(e){return e.y_axes.reduce((n,{label_formatter:r},i)=>(n[i]=function(o){let s=o;if(typeof o=="object"&&(Array.isArray(o.value)&&o.value.length===2?s=o.value[1]:s=o.value),!r)return s;try{return $t.default(s).format(r)}catch(u){return console.error(u),s}},n),{default:({value:n})=>n})}function JO(e,t){const n={};return t.map(r=>{const i=al(r,e);n[r.name]=di(r,i)}),n}function eM(e,t,n){var a;const r=t.every(o=>!Number.isNaN(Number(o))),{axisLabel:i}=e.x_axis;return[{data:t,name:(a=e.x_axis_name)!=null?a:"",id:"main-x-axis",axisTick:{show:!0,alignWithLabel:!0},type:r?"value":"category",axisLabel:{...i,formatter:da(i.formatter)}},...n]}function tM(e,t){return e.y_axes.map(({nameAlignment:n,...r},i)=>{var o;let a=r.position;return a||(a=i>0?"right":"left"),{...r,position:a,axisLabel:{show:!0,formatter:(o=t[i])!=null?o:t.default},axisLine:{show:!0},nameTextStyle:{fontWeight:"bold",align:n},nameLocation:"end",nameGap:15,splitLine:{show:!1}}})}const nM={tooltip:{trigger:"axis"},xAxis:[{type:"category",nameGap:25,nameLocation:"center",nameTextStyle:{fontWeight:"bold"},splitLine:{show:!1},axisTick:{show:!0,alignWithLabel:!0}}],grid:{top:10,left:30,right:15,bottom:25,containLabel:!0}};function rM(e,t,n){const r=JO(t,n),i=ZO(e),a=De.default.uniq(t.map(h=>h[e.x_axis_data_key])),o=a.every(h=>!Number.isNaN(Number(h))),s=YO(e,a,o,t,i,n,r),{regressionDataSets:u,regressionSeries:d,regressionXAxes:f}=KO(e,t),p={xAxis:eM(e,a,f),yAxis:tM(e,i),dataset:[...u],series:[...s,...d],tooltip:QO(e,s,i),grid:zO(e),legend:GO(s),dataZoom:dl(e.dataZoom)};return L.defaultsDeep({},p,nM)}const cp={id:"builtin:echarts:click-echart:series",displayName:"Click Chart Series",nameRender:aM,configRender:iM,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 iM(e){return l(Oe,{})}function aM(e){return l(c.Text,{children:"Click chart's series"})}const $r={x_axis_scroll:!1,y_axis_scroll:!1,x_axis_slider:!1,y_axis_slider:!1},fl={regressions:[],series:[],stats:{templates:{bottom:"",top:""}},x_axis:{axisLabel:{rotate:0,formatter:{...or}}},x_axis_data_key:"",x_axis_name:"",y_axes:[{name:"Y Axis",position:"left",nameAlignment:"center",label_formatter:vn}],reference_lines:[],reference_areas:[],dataZoom:$r};wt.use([Je.DataZoomComponent,Qt.BarChart,Qt.LineChart,Qt.ScatterChart,Je.GridComponent,Je.LegendComponent,Je.TooltipComponent,Sn.CanvasRenderer,Je.MarkLineComponent,Je.MarkAreaComponent]),wt.registerTransform(_a.transform.regression);function dp(e){return e.trim().length>0}function oM({conf:e,data:t,width:n,height:r,interactionManager:i,variables:a}){const o=x.useMemo(()=>De.default.keyBy(t,e.x_axis_data_key),[t,e.x_axis_data_key]),s=Ar(i.triggerManager,cp.id),u=f=>{const p=De.default.get(o,f.name,{error:"rowData is not found"});s.forEach(h=>{i.runInteraction(h.id,{...f,rowData:p})})},d=j.default.useMemo(()=>rM(e,t,a),[e,t]);return!n||!r?null:l(wn.default,{echarts:wt,option:d,style:{width:n,height:r},onEvents:{click:u}})}function lM({context:e,instance:t}){const n=Ir({vizManager:e.vizManager,instance:t}),{value:r}=Ue(e.instanceData,"config"),{variables:i}=e,a=x.useMemo(()=>L.defaults({},r,fl),[r]),o=e.data,{width:s,height:u}=e.viewport,{ref:d,height:f}=bt.useElementSize(),{ref:p,height:h}=bt.useElementSize(),g=j.default.useMemo(()=>{const{stats:{templates:m}}=a;return{top:fi(m.top,i,o),bottom:fi(m.bottom,i,o)}},[a,o]),v=Math.max(0,u-f-h);return y(c.Box,{children:[dp(a.stats.templates.top)&&l(c.Text,{ref:d,align:"left",size:"xs",pl:"sm",children:Object.values(g.top).map(m=>m)}),l(oM,{variables:i,width:s,height:v,data:o,conf:a,interactionManager:n}),dp(a.stats.templates.bottom)&&l(c.Text,{ref:p,align:"left",size:"xs",pl:"sm",children:Object.values(g.bottom).map(m=>m)})]})}const pl=x.forwardRef(({value:e,onChange:t},n)=>{const r=i=>a=>{t({...e,[i]:a})};return y(c.Stack,{children:[l(c.Divider,{variant:"dashed",label:"Scroll to Zoom",labelPosition:"center"}),y(c.Group,{children:[l(c.Box,{sx:{flexGrow:1},children:l(c.Switch,{label:"Enable on X Axis",checked:e.x_axis_scroll,onChange:i=>r("x_axis_scroll")(i.currentTarget.checked)})}),l(c.Box,{sx:{flexGrow:1},children:l(c.Switch,{label:"Enable on Y Axis",checked:e.y_axis_scroll,onChange:i=>r("y_axis_scroll")(i.currentTarget.checked)})})]}),l(c.Divider,{variant:"dashed",label:"Slider for Zooming",labelPosition:"center"}),y(c.Group,{children:[l(c.Box,{sx:{flexGrow:1},children:l(c.Switch,{label:"Slider for X Axis",checked:e.x_axis_slider,onChange:i=>r("x_axis_slider")(i.currentTarget.checked)})}),l(c.Tooltip,{label:"Not available for now, will overlap y-axis's label",children:l(c.Box,{sx:{flexGrow:1},children:l(c.Switch,{label:"Slider for Y Axis",disabled:!e.y_axis_slider,checked:e.y_axis_slider,onChange:i=>r("y_axis_slider")(i.currentTarget.checked)})})})]})]})}),sM=[{label:"Rectangle",value:"rectangle"}],uM=[{label:"Horizontal",value:"horizontal"}];function cM({control:e,index:t,remove:n,variableOptions:r}){return y(c.Stack,{my:0,p:0,sx:{position:"relative"},children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`reference_areas.${t}.name`,control:e,render:({field:i})=>l(c.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),l(k.Controller,{name:`reference_areas.${t}.color`,control:e,render:({field:i})=>l(c.TextInput,{label:"Color",required:!0,sx:{flex:1},...i})})]}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`reference_areas.${t}.type`,control:e,render:({field:i})=>l(c.Select,{label:"Type",required:!0,data:sM,sx:{flex:1},...i})}),l(k.Controller,{name:`reference_areas.${t}.direction`,control:e,render:({field:i})=>l(c.Select,{label:"Direction",required:!0,data:uM,sx:{flex:1},...i})})]}),l(c.Divider,{variant:"dashed",label:"Data",labelPosition:"center"}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`reference_areas.${t}.y_keys.upper`,control:e,render:({field:i})=>l(c.Select,{label:"Upper Boundary",required:!0,data:r,sx:{flex:1},...i})}),l(k.Controller,{name:`reference_areas.${t}.y_keys.lower`,control:e,render:({field:i})=>l(c.Select,{label:"Lower Boundary",required:!0,data:r,sx:{flex:1},...i})})]}),l(c.Button,{leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),sx:{top:15,right:5},children:"Delete this Reference Area"})]},t)}function dM({control:e,watch:t,variables:n}){const{fields:r,append:i,remove:a}=k.useFieldArray({control:e,name:"reference_areas"}),o=t("reference_areas"),s=r.map((f,p)=>({...f,...o[p]})),u=()=>i({name:"",type:"rectangle",direction:"horizontal",y_keys:{upper:"",lower:""}}),d=x.useMemo(()=>n.map(f=>({label:f.name,value:f.name})),[n]);return y(c.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"6px 0px 0px"}},children:[y(c.Tabs.List,{children:[s.map((f,p)=>l(c.Tabs.Tab,{value:p.toString(),children:p+1},p)),l(c.Tabs.Tab,{onClick:u,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),s.map((f,p)=>l(c.Tabs.Panel,{value:p.toString(),children:l(cM,{control:e,index:p,remove:a,variableOptions:d})},p))]})}const fM=[{label:"Horizontal",value:"horizontal"},{label:"Vertical",value:"vertical"}];function pM({control:e,index:t,remove:n,watch:r,variableOptions:i}){const a=r(`reference_lines.${t}.orientation`);return y(c.Stack,{my:0,p:0,sx:{position:"relative"},children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`reference_lines.${t}.name`,control:e,render:({field:o})=>l(c.TextInput,{label:"Name",placeholder:"Average Reference Line",required:!0,sx:{flex:1},...o})}),l(k.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:o})=>l(c.Select,{label:"Value",required:!0,data:i,sx:{flex:1},...o})})]}),l(k.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:o})=>l(c.TextInput,{label:"Content Template",placeholder:"Average: ${avg}",required:!0,sx:{flex:1},...o})}),l(k.Controller,{name:`reference_lines.${t}.orientation`,control:e,render:({field:o})=>l(c.Select,{label:"Orientation",data:fM,required:!0,sx:{flex:1},...o})}),a==="vertical"&&l(c.Text,{mt:-10,color:"dimmed",size:12,children:"Works only when xAxis values are numbers"}),l(c.Button,{leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),sx:{top:15,right:5},children:"Delete this Reference Line"})]},t)}function hM({control:e,watch:t,variables:n}){const{fields:r,append:i,remove:a}=k.useFieldArray({control:e,name:"reference_lines"}),o=t("reference_lines"),s=r.map((f,p)=>({...f,...o[p]})),u=()=>i({name:"",template:"",variable_key:"",orientation:"horizontal"}),d=x.useMemo(()=>n.map(f=>({label:f.name,value:f.name})),[n]);return y(c.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px"}},children:[y(c.Tabs.List,{children:[s.map((f,p)=>l(c.Tabs.Tab,{value:p.toString(),children:p+1},p)),l(c.Tabs.Tab,{onClick:u,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),s.map((f,p)=>l(c.Tabs.Panel,{value:p.toString(),children:l(pM,{control:e,index:p,remove:a,watch:t,variableOptions:d})},p))]})}const gM=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}],vM=[{label:"solid",value:"solid"},{label:"dashed",value:"dashed"},{label:"dotted",value:"dotted"}];function mM({control:e,regressionItem:t,index:n,remove:r,yAxisOptions:i,data:a}){const o=t.transform.config.method;return y(c.Stack,{my:0,p:0,sx:{position:"relative"},children:[l(k.Controller,{name:`regressions.${n}.name`,control:e,render:({field:s})=>l(c.TextInput,{label:"Name",required:!0,sx:{flex:1},...s})}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`regressions.${n}.y_axis_data_key`,control:e,render:({field:s})=>l(ot,{label:"Value Field",required:!0,data:a,sx:{flex:1},...s})}),l(k.Controller,{name:`regressions.${n}.plot.yAxisIndex`,control:e,render:({field:{value:s,onChange:u,...d}})=>{var f;return l(c.Select,{label:"Y Axis",data:i,disabled:i.length===0,...d,value:(f=s==null?void 0:s.toString())!=null?f:"",onChange:p=>{if(!p){u(0);return}u(Number(p))},sx:{flex:1}})}})]}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`regressions.${n}.transform.config.method`,control:e,render:({field:s})=>l(c.Select,{label:"Method",data:gM,sx:{flex:1},...s})}),o==="polynomial"&&l(k.Controller,{name:`regressions.${n}.transform.config.order`,control:e,render:({field:s})=>l(c.NumberInput,{label:"Order",sx:{flex:1},...s})})]}),l(c.Divider,{mb:-15,variant:"dashed",label:"Line Style",labelPosition:"center"}),y(c.Group,{grow:!0,children:[l(k.Controller,{name:`regressions.${n}.plot.lineStyle.type`,control:e,render:({field:s})=>l(c.Select,{label:"Line Type",data:vM,sx:{flexGrow:1},...s})}),l(k.Controller,{name:`regressions.${n}.plot.lineStyle.width`,control:e,render:({field:s})=>l(c.NumberInput,{label:"Line Width",min:1,max:10,sx:{flexGrow:1},...s})})]}),y(c.Stack,{spacing:4,children:[l(c.Text,{size:"sm",children:"Color"}),l(k.Controller,{name:`regressions.${n}.plot.color`,control:e,render:({field:s})=>l(mn,{...s})})]}),l(c.Button,{leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>r(n),sx:{top:15,right:5},children:"Delete this Regression Line"})]},n)}function yM({control:e,watch:t,data:n}){const{fields:r,append:i,remove:a}=k.useFieldArray({control:e,name:"regressions"}),o=t("regressions"),s=r.map((p,h)=>({...p,...o[h]})),u=t("y_axes"),d=j.default.useMemo(()=>u.map(({name:p},h)=>({label:p,value:h.toString()})),[u]),f=()=>i({transform:{type:"ecStat:regression",config:{method:"linear",order:1,formulaOn:"end"}},name:"",y_axis_data_key:"",plot:{type:"line",yAxisIndex:0,color:"#666666",lineStyle:{type:"solid",width:1}}});return y(c.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px",paddingTop:"6px"}},children:[y(c.Tabs.List,{children:[s.map((p,h)=>l(c.Tabs.Tab,{value:h.toString(),children:h+1},h)),l(c.Tabs.Tab,{onClick:f,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),s.map((p,h)=>l(c.Tabs.Panel,{value:h.toString(),children:l(mM,{regressionItem:p,control:e,index:h,remove:a,yAxisOptions:d,data:n},h)},h))]})}const pi={static:{type:"static",size:10},dynamic:{type:"dynamic",func_content:["function getSize({ rowData, params, variables }, { lodash, interpolate }) {"," // your code goes here"," // return 10","}"].join(`
|
|
146
|
+
`)}},bM=[{label:"No gap between bars",value:"0%"},{label:"Bars overlapping on each other",value:"-100%"}];function CM({control:e,index:t}){return y(Oe,{children:[y(c.Group,{grow:!0,align:"top",children:[l(k.Controller,{name:`series.${t}.stack`,control:e,render:({field:n})=>l(c.TextInput,{label:"Stack",placeholder:"Stack bars by this ID",sx:{flexGrow:1},...n})}),l(k.Controller,{name:`series.${t}.barWidth`,control:e,render:({field:n})=>l(c.TextInput,{label:"Bar Width",sx:{flexGrow:1},...n})})]}),l(k.Controller,{name:`series.${t}.barGap`,control:e,render:({field:n})=>l(c.Select,{label:"Bar Gap",data:bM,sx:{flexGrow:1},...n})})]})}const SM=({value:e,onChange:t})=>{const n=r=>{!r||t(r)};return l(c.Box,{children:l(Jn.default,{height:"500px",defaultLanguage:"javascript",value:e,onChange:n,theme:"vs-dark",options:{minimap:{enabled:!1}}})})},wM=({value:e,onChange:t,data:n})=>{const[r,{setTrue:i,setFalse:a}]=Ze.useBoolean(),[o,s]=x.useState(e),u=()=>{a();const{type:h,func_content:g}=o,v={type:h,func_content:g};s(v),t(v)},d=()=>{a(),s(e)},f=h=>{s(g=>({...g,func_content:h}))},p=()=>{f(pi.dynamic.func_content)};return y(Oe,{children:[l(c.Box,{sx:{width:"50%"},children:l(c.Button,{variant:"filled",mt:24,onClick:i,sx:{flexGrow:0},children:"Setup"})}),l(c.Modal,{size:800,title:"Setup dynamic size",opened:r,onClose:a,closeOnClickOutside:!1,withCloseButton:!1,children:r&&y(c.Stack,{children:[l(c.Divider,{mt:10,mb:-10,label:"Dynamic by a custom function",labelPosition:"center",variant:"dashed"}),l(SM,{value:o.func_content,onChange:f}),y(c.Group,{position:"apart",children:[l(c.Button,{onClick:p,color:"red",leftIcon:l(W.Recycle,{size:20}),children:"Rest"}),y(c.Group,{position:"right",children:[l(c.Button,{onClick:d,variant:"subtle",children:"Cancel"}),l(c.Button,{onClick:u,children:"OK"})]})]})]})})]})},xM=({value:e,onChange:t,data:n})=>e.type!=="dynamic"?null:l(wM,{value:e,onChange:t,data:n}),_M=({value:e,onChange:t})=>{if(e.type!=="static")return null;const n=r=>{t({...e,size:r})};return l(Oe,{children:l(c.NumberInput,{defaultValue:18,placeholder:"1 ~ 100",label:" ",hideControls:!0,value:e.size,onChange:n})})},EM=[{label:"Static",value:"static"},{label:"Dynamic",value:"dynamic"}],fp=x.forwardRef(({label:e="Size",value:t,onChange:n,data:r},i)=>{const a=o=>{n({...pi[o]})};return y(c.SimpleGrid,{cols:2,children:[l(c.Select,{ref:i,label:e,data:EM,value:t.type,onChange:a,sx:{flexGrow:1}}),l(_M,{value:t,onChange:n}),l(xM,{value:t,onChange:n,data:r})]})}),TM=[{label:"off",value:"false"},{label:"start",value:"start"},{label:"middle",value:"middle"},{label:"end",value:"end"}],OM=[{label:"solid",value:"solid"},{label:"dashed",value:"dashed"},{label:"dotted",value:"dotted"}];function MM({control:e,index:t,seriesItem:n,data:r}){const i=n.showSymbol;return y(Oe,{children:[l(c.Divider,{mb:-15,variant:"dashed",label:"Line Settings",labelPosition:"center"}),y(c.Group,{grow:!0,children:[l(k.Controller,{name:`series.${t}.lineStyle.type`,control:e,render:({field:a})=>l(c.Select,{label:"Line Type",data:OM,sx:{flexGrow:1},...a})}),l(k.Controller,{name:`series.${t}.lineStyle.width`,control:e,render:({field:a})=>l(c.NumberInput,{label:"Line Width",min:1,max:10,sx:{flexGrow:1},...a})})]}),y(c.Group,{grow:!0,align:"center",children:[l(k.Controller,{name:`series.${t}.step`,control:e,render:({field:a})=>l(c.Select,{label:"Step",data:TM,sx:{flexGrow:1,maxWidth:"48%"},...a,value:String(a.value),onChange:o=>{const s=o==="false"?!1:o;a.onChange(s)}})}),y(c.Stack,{children:[l(k.Controller,{name:`series.${t}.smooth`,control:e,render:({field:a})=>l(c.Box,{sx:{flexGrow:1},children:l(c.Switch,{label:"Smooth Line",checked:a.value,onChange:o=>a.onChange(o.currentTarget.checked)})})}),l(k.Controller,{name:`series.${t}.display_name_on_line`,control:e,render:({field:a})=>{var o;return l(c.Box,{sx:{flexGrow:1},children:l(c.Switch,{label:"Display Name on Line",checked:(o=a.value)!=null?o:!1,onChange:s=>a.onChange(s.currentTarget.checked)})})}})]})]}),y(c.Stack,{children:[l(k.Controller,{name:`series.${t}.showSymbol`,control:e,render:({field:a})=>l(c.Box,{mt:10,mb:-10,sx:{flexGrow:1},children:l(c.Switch,{label:"Show Symbol on Line",checked:a.value,onChange:o=>a.onChange(o.currentTarget.checked)})})}),i&&l(k.Controller,{name:`series.${t}.symbolSize`,control:e,render:({field:a})=>l(fp,{label:"Symbol Size",data:r,...a})})]})]})}function DM({control:e,index:t,data:n}){return l(k.Controller,{name:`series.${t}.symbolSize`,control:e,render:({field:r})=>l(fp,{label:"Size",data:n,...r})})}const RM=[{label:"off",value:""},{label:"top",value:"top"},{label:"left",value:"left"},{label:"right",value:"right"},{label:"bottom",value:"bottom"},{label:"inside",value:"inside"},{label:"insideLeft",value:"insideLeft"},{label:"insideRight",value:"insideRight"},{label:"insideTop",value:"insideTop"},{label:"insideBottom",value:"insideBottom"},{label:"insideTopLeft",value:"insideTopLeft"},{label:"insideBottomLeft",value:"insideBottomLeft"},{label:"insideTopRight",value:"insideTopRight"},{label:"insideBottomRight",value:"insideBottomRight"}];function kM({control:e,index:t,remove:n,seriesItem:r,yAxisOptions:i,data:a}){const o=r.type;return y(c.Stack,{my:0,p:0,sx:{position:"relative"},children:[l(c.Stack,{children:l(k.Controller,{name:`series.${t}.type`,control:e,render:({field:s})=>l(c.SegmentedControl,{data:[{label:"Line",value:"line"},{label:"Bar",value:"bar"},{label:"Scatter",value:"scatter"},{label:"Boxplot",value:"boxplot",disabled:!0}],...s})})}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`series.${t}.name`,control:e,render:({field:s})=>l(c.TextInput,{label:"Name",required:!0,sx:{flex:1},...s})}),l(k.Controller,{name:`series.${t}.y_axis_data_key`,control:e,render:({field:s})=>l(ot,{label:"Value Field",required:!0,data:a,sx:{flex:1},...s})})]}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`series.${t}.yAxisIndex`,control:e,render:({field:{value:s,onChange:u,...d}})=>{var f;return l(c.Select,{label:"Y Axis",data:i,disabled:i.length===0,...d,value:(f=s==null?void 0:s.toString())!=null?f:"",onChange:p=>{if(!p){u(0);return}u(Number(p))},sx:{flex:1}})}}),l(k.Controller,{name:`series.${t}.group_by_key`,control:e,render:({field:s})=>l(ot,{label:"Group By",data:a,clearable:!0,sx:{flex:1},...s})})]}),o==="line"&&l(MM,{index:t,control:e,seriesItem:r,data:a}),o==="bar"&&l(CM,{index:t,control:e}),o==="scatter"&&l(DM,{index:t,control:e,data:a}),l(c.Divider,{mb:-10,mt:10,variant:"dashed",label:"Style",labelPosition:"center"}),l(k.Controller,{name:`series.${t}.label_position`,control:e,render:({field:s})=>l(c.Select,{label:"Label Position",data:RM,...s})}),y(c.Stack,{spacing:4,children:[l(c.Text,{size:"sm",children:"Color"}),l(k.Controller,{name:`series.${t}.color`,control:e,render:({field:s})=>l(mn,{...s})})]}),l(c.Divider,{mb:-10,mt:10,variant:"dashed",label:"Behavior",labelPosition:"center"}),l(k.Controller,{name:`series.${t}.hide_in_legend`,control:e,render:({field:s})=>l(c.Checkbox,{label:"Hide in legend",checked:s.value,onChange:u=>s.onChange(u.currentTarget.checked)})}),l(c.Divider,{mb:-10,mt:10,variant:"dashed"}),l(c.Button,{leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),sx:{top:15,right:5},children:"Delete this Series"})]},t)}function PM({control:e,watch:t,data:n}){const{fields:r,append:i,remove:a}=k.useFieldArray({control:e,name:"series"}),o=t("series"),s=r.map((p,h)=>({...p,...o[h]})),u=()=>i({type:"bar",name:bt.randomId(),showSymbol:!1,symbolSize:pi.static,y_axis_data_key:"value",yAxisIndex:0,label_position:"top",display_name_on_line:!1,stack:"",color:"#000",step:!1,smooth:!1,barWidth:"10",barGap:"0%",lineStyle:{type:"solid",width:1},hide_in_legend:!1}),d=t("y_axes"),f=j.default.useMemo(()=>d.map(({name:p},h)=>({label:p,value:h.toString()})),[d]);return y(c.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px",paddingTop:"6px"}},children:[y(c.Tabs.List,{children:[s.map((p,h)=>l(c.Tabs.Tab,{value:h.toString(),children:h+1},p.id)),l(c.Tabs.Tab,{onClick:u,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),s.map((p,h)=>l(c.Tabs.Panel,{value:h.toString(),children:l(kM,{control:e,index:h,remove:a,seriesItem:p,yAxisOptions:f,data:n},p.id)},p.id))]})}function AM({control:e,watch:t}){return t("stats"),l(c.Stack,{children:y(c.Stack,{spacing:0,children:[l(k.Controller,{name:"stats.templates.top",control:e,render:({field:n})=>l(oi,{label:"Template for stats above the chart",py:"md",sx:{flexGrow:1},...n})}),l(k.Controller,{name:"stats.templates.bottom",control:e,render:({field:n})=>l(oi,{label:"Template for stats under the chart",py:"md",sx:{flexGrow:1},...n})})]})})}function IM({data:e,control:t,watch:n}){return n(["x_axis_data_key","x_axis_name","x_axis"]),y(c.Stack,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis_data_key",control:t,render:({field:r})=>l(ot,{label:"X Axis Data Field",required:!0,data:e,sx:{flex:1},...r})}),l(k.Controller,{name:"x_axis_name",control:t,render:({field:r})=>l(c.TextInput,{label:"X Axis Name",sx:{flex:1},...r})})]}),l(c.Divider,{mb:-15,label:"Tick Label",labelPosition:"center"}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis.axisLabel.rotate",control:t,render:({field:r})=>l(c.NumberInput,{label:"Rotate",hideControls:!0,min:-90,max:90,rightSection:l(c.Text,{color:"dimmed",children:"degree"}),sx:{width:"48%"},styles:{rightSection:{width:"4em",justifyContent:"flex-end",paddingRight:"6px"}},...r})}),l(k.Controller,{name:"x_axis.axisLabel.formatter",control:t,render:({field:r})=>l(ul,{data:e,...r})})]})]})}const $M=[{label:"left",value:"left"},{label:"center",value:"center"},{label:"right",value:"right"}],NM=[{label:"left",value:"left"},{label:"right",value:"right"}];function LM({control:e,index:t,remove:n}){return y(c.Stack,{my:0,p:"0",sx:{position:"relative"},children:[l(c.Divider,{mb:-15,mt:15,variant:"dashed",label:"Name",labelPosition:"center"}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`y_axes.${t}.name`,control:e,render:({field:r})=>l(c.TextInput,{label:"Name",required:!0,sx:{flex:1},...r})}),l(k.Controller,{name:`y_axes.${t}.nameAlignment`,control:e,render:({field:r})=>l(c.Select,{label:"Align",required:!0,data:$M,sx:{flex:1},...r})})]}),l(c.Divider,{mb:-15,variant:"dashed",label:"Layout",labelPosition:"center"}),l(c.Group,{grow:!0,noWrap:!0,children:l(k.Controller,{name:`y_axes.${t}.position`,control:e,render:({field:r})=>l(c.Select,{label:"Position",required:!0,data:NM,sx:{flex:1},...r})})}),y(c.Stack,{children:[l(c.Divider,{mb:-15,variant:"dashed",label:"Label Format",labelPosition:"center"}),l(k.Controller,{name:`y_axes.${t}.label_formatter`,control:e,render:({field:r})=>l(ar,{...r})})]}),l(c.Button,{mt:20,leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),disabled:t===0,children:"Delete this YAxis"})]})}function VM({control:e,watch:t}){const{fields:n,append:r,remove:i}=k.useFieldArray({control:e,name:"y_axes"}),a=t("y_axes"),o=n.map((u,d)=>({...u,...a[d]})),s=()=>r({name:"",label_formatter:vn});return y(c.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px"}},children:[y(c.Tabs.List,{children:[o.map((u,d)=>l(c.Tabs.Tab,{value:d.toString(),children:d+1},d)),l(c.Tabs.Tab,{onClick:s,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),o.map((u,d)=>l(c.Tabs.Panel,{value:d.toString(),children:l(LM,{control:e,index:d,remove:i})},d))]})}function FM(e){function t({name:n="",template:r="",variable_key:i="",orientation:a="horizontal"}){return{name:n,template:r,variable_key:i,orientation:a}}return e.map(t)}function zM(e){function t({type:n,name:r,showSymbol:i,symbolSize:a=pi.static,y_axis_data_key:o="value",yAxisIndex:s=0,label_position:u="top",stack:d="1",color:f="black",barWidth:p="30",barGap:h="0%",smooth:g=!1,step:v=!1,group_by_key:m="",display_name_on_line:C=!1,lineStyle:b={type:"solid",width:1},hide_in_legend:w=!1}){const S={type:n,name:r,showSymbol:i,symbolSize:a,y_axis_data_key:o,yAxisIndex:s,label_position:u,stack:d,color:f,barWidth:p,barGap:h,smooth:g,step:v,group_by_key:m,display_name_on_line:C,lineStyle:b,hide_in_legend:w};return typeof a=="number"&&(S.symbolSize={...pi.static,size:a}),S}return e.map(t)}function jM(e){return e||{templates:{top:"",bottom:""}}}function BM({series:e,stats:t,reference_lines:n,...r}){return{series:zM(e!=null?e:[]),stats:jM(t),reference_lines:FM(n!=null?n:[]),...r}}function GM({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),{variables:r}=e,i=e.data,a=x.useMemo(()=>L.defaultsDeep({},t,fl),[t]),o=x.useMemo(()=>BM(a),[a]);x.useEffect(()=>{!L.isEqual(a,o)&&(console.log("config malformed, resetting to defaults",a,o),n(o))},[a,o]);const{control:s,handleSubmit:u,watch:d,getValues:f,reset:p}=k.useForm({defaultValues:o});x.useEffect(()=>{p(o)},[o]);const h=f(),g=x.useMemo(()=>!L.isEqual(h,a),[h,a]);return d(["dataZoom"]),l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:u(n),children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{children:"Chart Config"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!g,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Tabs,{defaultValue:"Series",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[y(c.Tabs.List,{children:[l(c.Tabs.Tab,{value:"X Axis",children:"X Axis"}),l(c.Tabs.Tab,{value:"Y Axes",children:"Y Axes"}),l(c.Tabs.Tab,{value:"Series",children:"Series"}),l(c.Tabs.Tab,{value:"Regression Lines",children:"Regression Lines"}),l(c.Tabs.Tab,{value:"Stats",children:"Stats"}),l(c.Tabs.Tab,{value:"Reference Lines",children:"Reference Lines"}),l(c.Tabs.Tab,{value:"Reference Areas",children:"Reference Areas"}),l(c.Tabs.Tab,{value:"Zooming",children:"Zooming"})]}),l(c.Tabs.Panel,{value:"X Axis",children:l(IM,{control:s,watch:d,data:i})}),l(c.Tabs.Panel,{value:"Y Axes",children:l(VM,{control:s,watch:d})}),l(c.Tabs.Panel,{value:"Series",children:l(PM,{control:s,watch:d,data:i})}),l(c.Tabs.Panel,{value:"Regression Lines",children:l(yM,{control:s,watch:d,data:i})}),l(c.Tabs.Panel,{value:"Stats",children:l(AM,{control:s,watch:d,data:i})}),l(c.Tabs.Panel,{value:"Reference Lines",children:l(hM,{variables:r,control:s,watch:d})}),l(c.Tabs.Panel,{value:"Reference Areas",children:l(dM,{variables:r,control:s,watch:d})}),l(c.Tabs.Panel,{value:"Zooming",children:l(k.Controller,{name:"dataZoom",control:s,render:({field:v})=>l(pl,{...v})})})]})]})})}function KM(e){const t=L.cloneDeep(L.omit(e,"variables"));return t.stats=L.omit(t.stats,"variables"),t}function qM(e){const{rotate:t,formatter:n=or}=e.x_axis.axisLabel;return{...e,x_axis:{...e.x_axis,axisLabel:{rotate:t,formatter:n}}}}function HM(e){const{dataZoom:t=$r,...n}=e;return{...n,dataZoom:t}}class WM extends Ft{constructor(){super(...arguments);pe(this,"VERSION",4)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,{panelModel:r})=>{const{config:i}=n;return(i.variables||[]).forEach(s=>{r.variables.find(u=>u.name===s.name)||r.addVariable(s)}),(L.get(i,"stats.variables")||[]).forEach(s=>{r.variables.find(u=>u.name===s.name)||r.addVariable(s)}),{...n,version:2,config:KM(i)}}),this.version(3,n=>({...n,version:3,config:qM(n.config)})),this.version(4,n=>({...n,version:4,config:HM(n.config)}))}}const UM={displayName:"Cartesian Chart",migrator:new WM,name:"cartesian",viewRender:lM,configRender:GM,createConfig:()=>fl,triggers:[cp]},pp={id:"builtin:echarts:click-echart:series",displayName:"Click Chart Series",nameRender:XM,configRender:YM,payload:[{name:"type",description:"Always 'click'",valueType:"string"},{name:"seriesType",description:"'line' | 'bar'",valueType:"string"},{name:"name",description:"Name of the series clicked",valueType:"string"},{name:"color",description:"Color",valueType:"string"},{name:"rowData",description:"Data of the row",valueType:"object"}]};function YM(e){return l(Oe,{})}function XM(e){return l(c.Text,{children:"Click chart's series"})}const hp={label_template:"${percentage.x} of ${x_axis.name} causes ${percentage.y} of ${bar.name}",color:"rgba(0,0,0,0.3)"},hl={x_axis:{name:"X Axis",data_key:"",axisLabel:{rotate:0,formatter:{...or}}},data_key:"value",bar:{name:"Value",color:"#228be6",label_formatter:vn},line:{name:"Value",color:"red"},dataZoom:$r,markLine:hp};function fa(e){return $t.default(e).format({output:"percent",mantissa:0})}function QM(e){const t=e.value[1];try{return fa(t)}catch(n){return console.error(n),t}}function ZM(e){function t(n){let r=n;if(typeof n=="object"&&(Array.isArray(n.value)&&n.value.length===2?r=n.value[1]:r=n.value),!e.bar.label_formatter)return r;try{return $t.default(r).format(e.bar.label_formatter)}catch(i){return console.error(i),r}}return{bar:t,line:QM,lineValue:fa}}function JM(e,t,n){const{label_template:r}=e.markLine;if(!r)return"";const i={...e,percentage:t,count:n},a=Object.keys(i),o=Object.values(i);return new Function(...a,`return \`${r}\`;`)(...o)}function eD(e,t){if(t.length===0)return{};const n=t.findIndex(s=>s[1]>=.8);if(n===-1)return{};const r=t[n],i={x:fa((n+1)/t.length),y:fa(r[1])},a={left:n+1,right:t.length-n-1},o=r[0];return o?{name:"",silent:!0,symbol:"triangle",symbolRotate:180,symbolSize:[10,8],data:[{name:"",symbol:"none",xAxis:o,lineStyle:{color:e.markLine.color},label:{formatter:JM(e,i,a)}}]}:{}}function tD(e,t,n){const r=t.map(s=>[s[e.x_axis.data_key],Number(s[e.data_key])]).sort((s,u)=>u[1]-s[1]),i=r.reduce((s,u)=>s+u[1],0),a=r.reduce((s,u,d)=>{const f=d===0?0:s[d-1][1];return s.push([u[0],f+u[1]]),s},[]).map(s=>[s[0],s[1]/i]),o=eD(e,a);return[{name:e.bar.name,type:"bar",itemStyle:{color:e.bar.color},label:{show:!1,position:"top",formatter:n.bar},yAxisIndex:0,data:r},{name:e.line.name,type:"line",itemStyle:{color:e.line.color},symbolSize:2,lineStyle:{width:1},label:{show:!1,position:"top",formatter:n.line},yAxisIndex:1,data:a,markLine:o}]}const nD=e=>t=>{const n=Array.isArray(t)?t:[t];if(n.length===0)return"";const r=n.map((i,a)=>{const o=i.seriesName,[s,u]=i.value;if(!o)return u;const d=a===0?e.bar:e.lineValue;return`
|
|
147
147
|
<tr>
|
|
148
148
|
<th style="text-align: right; padding: 0 1em;">${o}</th>
|
|
149
149
|
<td style="text-align: left; padding: 0 1em;">${d(u)}</td>
|
|
@@ -180,7 +180,7 @@ WHERE
|
|
|
180
180
|
name: string;
|
|
181
181
|
};
|
|
182
182
|
}
|
|
183
|
-
`,dD=()=>{const[e,t]=x.useState(!1);return y(Oe,{children:[l(c.Button,{variant:"subtle",compact:!0,onClick:()=>t(n=>!n),children:e?"Close":"Click to see params for Label Template"}),l(c.Collapse,{in:e,children:l(In.Prism,{language:"typescript",noCopy:!0,colorScheme:"dark",children:cD})})]})};function fD({data:e,control:t,watch:n}){return n(["markLine"]),y(c.Stack,{children:[y(c.Stack,{spacing:2,children:[l(c.Text,{size:"sm",children:"Color"}),l(k.Controller,{name:"markLine.color",control:t,render:({field:r})=>l(mn,{...r})})]}),y(c.Stack,{spacing:4,children:[l(k.Controller,{name:"markLine.label_template",control:t,render:({field:r})=>l(c.Textarea,{autosize:!0,minRows:2,maxRows:4,label:"Label Template",sx:{flex:1},...r})}),l(dD,{})]})]})}function pD({data:e,control:t,watch:n}){return n(["x_axis"]),y(c.Stack,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis.data_key",control:t,render:({field:r})=>l(ot,{label:"Data Field",required:!0,data:e,sx:{flex:1},...r})}),l(k.Controller,{name:"x_axis.name",control:t,render:({field:r})=>l(c.TextInput,{label:"Name",sx:{flex:1},...r})})]}),l(c.Divider,{mb:-15,label:"Tick Label",labelPosition:"center"}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis.axisLabel.rotate",control:t,render:({field:r})=>l(c.NumberInput,{label:"Rotate",hideControls:!0,min:-90,max:90,rightSection:l(c.Text,{color:"dimmed",children:"degree"}),sx:{width:"48%"},styles:{rightSection:{width:"4em",justifyContent:"flex-end",paddingRight:"6px"}},...r})}),l(k.Controller,{name:"x_axis.axisLabel.formatter",control:t,render:({field:r})=>l(ul,{data:e,...r})})]})]})}function hD({data:e,control:t,watch:n}){return n(["data_key"]),l(c.Stack,{children:l(k.Controller,{name:"data_key",control:t,render:({field:r})=>l(ot,{label:"Y Axis Data Field",required:!0,data:e,sx:{flex:1},...r})})})}function gD({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=e.data,i=x.useMemo(()=>L.defaults({},t,hl),[t]),{control:a,handleSubmit:o,watch:s,getValues:u,reset:d}=k.useForm({defaultValues:i});x.useEffect(()=>{d(i)},[i]),s(["x_axis","data_key","bar","line","dataZoom"]);const f=u(),p=x.useMemo(()=>!L.isEqual(f,t),[f,t]);return y("form",{onSubmit:o(n),children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{children:"Chart Config"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!p,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Tabs,{defaultValue:"X Axis",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[y(c.Tabs.List,{children:[l(c.Tabs.Tab,{value:"X Axis",children:"X Axis"}),l(c.Tabs.Tab,{value:"Y Axis",children:"Y Axis"}),l(c.Tabs.Tab,{value:"Bar",children:"Bar"}),l(c.Tabs.Tab,{value:"Line",children:"Line"}),l(c.Tabs.Tab,{value:"80-20 Line",children:"80-20 Line"}),l(c.Tabs.Tab,{value:"Zooming",children:"Zooming"})]}),l(c.Tabs.Panel,{value:"X Axis",children:l(pD,{control:a,watch:s,data:r})}),l(c.Tabs.Panel,{value:"Y Axis",children:l(hD,{control:a,watch:s,data:r})}),l(c.Tabs.Panel,{value:"Bar",children:l(sD,{control:a,watch:s,data:r})}),l(c.Tabs.Panel,{value:"Line",children:l(uD,{control:a,watch:s,data:r})}),l(c.Tabs.Panel,{value:"80-20 Line",children:l(fD,{control:a,watch:s,data:r})}),l(c.Tabs.Panel,{value:"Zooming",children:l(k.Controller,{name:"dataZoom",control:a,render:({field:h})=>l(pl,{...h})})})]})]})}function vD(e){const{dataZoom:t=$r,...n}=e;return{...n,dataZoom:t}}function mD(e){const{markLine:t=hp,...n}=e;return{...n,markLine:t}}function yD(e){const t=De.default.defaultsDeep({},e.x_axis.axisLabel,{rotate:0,formatter:{...
|
|
183
|
+
`,dD=()=>{const[e,t]=x.useState(!1);return y(Oe,{children:[l(c.Button,{variant:"subtle",compact:!0,onClick:()=>t(n=>!n),children:e?"Close":"Click to see params for Label Template"}),l(c.Collapse,{in:e,children:l(In.Prism,{language:"typescript",noCopy:!0,colorScheme:"dark",children:cD})})]})};function fD({data:e,control:t,watch:n}){return n(["markLine"]),y(c.Stack,{children:[y(c.Stack,{spacing:2,children:[l(c.Text,{size:"sm",children:"Color"}),l(k.Controller,{name:"markLine.color",control:t,render:({field:r})=>l(mn,{...r})})]}),y(c.Stack,{spacing:4,children:[l(k.Controller,{name:"markLine.label_template",control:t,render:({field:r})=>l(c.Textarea,{autosize:!0,minRows:2,maxRows:4,label:"Label Template",sx:{flex:1},...r})}),l(dD,{})]})]})}function pD({data:e,control:t,watch:n}){return n(["x_axis"]),y(c.Stack,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis.data_key",control:t,render:({field:r})=>l(ot,{label:"Data Field",required:!0,data:e,sx:{flex:1},...r})}),l(k.Controller,{name:"x_axis.name",control:t,render:({field:r})=>l(c.TextInput,{label:"Name",sx:{flex:1},...r})})]}),l(c.Divider,{mb:-15,label:"Tick Label",labelPosition:"center"}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis.axisLabel.rotate",control:t,render:({field:r})=>l(c.NumberInput,{label:"Rotate",hideControls:!0,min:-90,max:90,rightSection:l(c.Text,{color:"dimmed",children:"degree"}),sx:{width:"48%"},styles:{rightSection:{width:"4em",justifyContent:"flex-end",paddingRight:"6px"}},...r})}),l(k.Controller,{name:"x_axis.axisLabel.formatter",control:t,render:({field:r})=>l(ul,{data:e,...r})})]})]})}function hD({data:e,control:t,watch:n}){return n(["data_key"]),l(c.Stack,{children:l(k.Controller,{name:"data_key",control:t,render:({field:r})=>l(ot,{label:"Y Axis Data Field",required:!0,data:e,sx:{flex:1},...r})})})}function gD({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=e.data,i=x.useMemo(()=>L.defaults({},t,hl),[t]),{control:a,handleSubmit:o,watch:s,getValues:u,reset:d}=k.useForm({defaultValues:i});x.useEffect(()=>{d(i)},[i]),s(["x_axis","data_key","bar","line","dataZoom"]);const f=u(),p=x.useMemo(()=>!L.isEqual(f,t),[f,t]);return y("form",{onSubmit:o(n),children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{children:"Chart Config"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!p,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Tabs,{defaultValue:"X Axis",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[y(c.Tabs.List,{children:[l(c.Tabs.Tab,{value:"X Axis",children:"X Axis"}),l(c.Tabs.Tab,{value:"Y Axis",children:"Y Axis"}),l(c.Tabs.Tab,{value:"Bar",children:"Bar"}),l(c.Tabs.Tab,{value:"Line",children:"Line"}),l(c.Tabs.Tab,{value:"80-20 Line",children:"80-20 Line"}),l(c.Tabs.Tab,{value:"Zooming",children:"Zooming"})]}),l(c.Tabs.Panel,{value:"X Axis",children:l(pD,{control:a,watch:s,data:r})}),l(c.Tabs.Panel,{value:"Y Axis",children:l(hD,{control:a,watch:s,data:r})}),l(c.Tabs.Panel,{value:"Bar",children:l(sD,{control:a,watch:s,data:r})}),l(c.Tabs.Panel,{value:"Line",children:l(uD,{control:a,watch:s,data:r})}),l(c.Tabs.Panel,{value:"80-20 Line",children:l(fD,{control:a,watch:s,data:r})}),l(c.Tabs.Panel,{value:"Zooming",children:l(k.Controller,{name:"dataZoom",control:a,render:({field:h})=>l(pl,{...h})})})]})]})}function vD(e){const{dataZoom:t=$r,...n}=e;return{...n,dataZoom:t}}function mD(e){const{markLine:t=hp,...n}=e;return{...n,markLine:t}}function yD(e){const t=De.default.defaultsDeep({},e.x_axis.axisLabel,{rotate:0,formatter:{...or}});return{...e,x_axis:{...e.x_axis,axisLabel:t}}}function bD(e){const{label_formatter:t=vn}=e.bar;return{...e,bar:{...e.bar,label_formatter:t}}}class CD extends Ft{constructor(){super(...arguments);pe(this,"VERSION",5)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,n=>({...n,version:2,config:vD(n.config)})),this.version(3,n=>({...n,version:3,config:mD(n.config)})),this.version(4,n=>({...n,version:4,config:yD(n.config)})),this.version(5,n=>({...n,version:5,config:bD(n.config)}))}}const SD={displayName:"Pareto Chart",migrator:new CD,name:"paretoChart",viewRender:lD,configRender:gD,createConfig:()=>hl,triggers:[pp]},gl={label_field:"",value_field:""};wt.use([Qt.PieChart,Sn.CanvasRenderer]);const wD={tooltip:{show:!0},series:{type:"pie",radius:["50%","80%"],label:{position:"outer",alignTo:"edge",formatter:`{name|{b}}
|
|
184
184
|
{percentage|{d}%}`,minMargin:5,edgeDistance:10,lineHeight:15,rich:{percentage:{color:"#999"}},margin:20},labelLine:{length:15,length2:0,maxSurfaceAngle:80,showAbove:!0},top:10,bottom:10,left:10,right:10}};function xD({context:e}){const{value:t}=Ue(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{label_field:a,value_field:o}=L.defaults({},t,gl),s=x.useMemo(()=>n.map(f=>({name:f[a],value:Number(f[o])})),[n,a,o]),u=x.useMemo(()=>({series:{labelLayout:function(f){const p=f.labelRect.x<r/2,h=f.labelLinePoints;return L.set(h,[2,0],p?f.labelRect.x:f.labelRect.x+f.labelRect.width),{labelLinePoints:h}}}}),[r]),d=L.merge({},wD,u,{series:{data:s}});return l(wn.default,{echarts:wt,option:d,style:{width:r,height:i}})}function _D({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),{label_field:r,value_field:i}=L.defaults({},t,gl),a=e.data,o=Ql.useForm({initialValues:{label_field:r,value_field:i}});return x.useEffect(()=>{o.setValues({label_field:r,value_field:i})},[r,i]),l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:o.onSubmit(n),children:[y(c.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[l(c.Text,{children:"Pie Config"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:l(W.DeviceFloppy,{size:20})})]}),y(c.Stack,{mt:"md",spacing:"xs",p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[l(ot,{label:"Label Field",required:!0,data:a,...o.getInputProps("label_field")}),l(ot,{label:"Value Field",required:!0,data:a,...o.getInputProps("value_field")})]})]})})}class ED extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const TD={displayName:"Pie Chart",migrator:new ED,name:"pie",viewRender:xD,configRender:_D,createConfig:()=>gl};function gp(e){return e?t=>{try{return $t.default(t).format(e)}catch(n){return console.error(n),t}}:t=>t}function OD(e){return{show:!0,formatter:({dimensionIndex:t,value:n})=>gp(e.dimensions[t].formatter)(n)}}function MD(e){return({name:t,marker:n,value:r})=>{if(r.length===0)return"";const i=r.map((a,o)=>{const s=e.dimensions[o],u=gp(s.formatter);return`
|
|
185
185
|
<tr>
|
|
186
186
|
<td style="padding-left: 18px;">${s.name}</td>
|
|
@@ -209,7 +209,7 @@ WHERE
|
|
|
209
209
|
${i.join("")}
|
|
210
210
|
</tbody>
|
|
211
211
|
</table>
|
|
212
|
-
`}}const DD={legend:{show:!0,bottom:0,left:0},tooltip:{trigger:"item"}};function RD(e,t){const n=["#66B4DB","#39BFA2","#E46464","#33A678","#EEBA00","#9D88CB","#939943","#E49792","#09A2B8","#AF5F6B","#6CA157","#09A2B8","#6398C7","#E692BA","#97B566","#8CACE2","#CA79AC","#6DBC80","#B08F4B","#826BAF"],r=e.dimensions.map(({name:o,max:s})=>({name:o,max:s})),i=t.map(o=>({value:e.dimensions.map(({data_key:s})=>o[s]),name:o[e.series_name_key]})),a={radar:{indicator:r,splitArea:{show:!1}},tooltip:{confine:!0,formatter:MD(e)},legend:{show:!0,left:"center"},series:{type:"radar",data:i,symbolSize:4,lineStyle:{width:1},areaStyle:{opacity:.4},label:OD(e)},color:n};return De.default.merge({},DD,a)}const vl={series_name_key:"name",dimensions:[]};wt.use([Qt.RadarChart,Je.GridComponent,Je.LegendComponent,Je.TooltipComponent,Sn.CanvasRenderer]);function kD({context:e}){const{value:t}=Ue(e.instanceData,"config"),{width:n,height:r}=e.viewport,i=e.data,a=x.useMemo(()=>RD(L.defaultsDeep({},t,vl),i),[t,i]);return!n||!r||!t||L.isEmpty(t==null?void 0:t.dimensions)?null:l(c.Box,{children:l(wn.default,{echarts:wt,option:a,style:{width:n,height:r}})})}function PD({control:e,index:t,remove:n,data:r}){return y(c.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`dimensions.${t}.name`,control:e,render:({field:i})=>l(c.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),l(k.Controller,{name:`dimensions.${t}.data_key`,control:e,render:({field:i})=>l(ot,{label:"Data Key",required:!0,data:r,sx:{flex:1},...i})}),l(k.Controller,{name:`dimensions.${t}.max`,control:e,render:({field:i})=>l(c.NumberInput,{label:"Max",hideControls:!0,required:!0,sx:{flex:1},...i})})]}),y(c.Stack,{children:[l(c.Divider,{mb:-15,variant:"dashed",label:"Value Formatter",labelPosition:"center"}),l(k.Controller,{name:`dimensions.${t}.formatter`,control:e,render:({field:i})=>l(ar,{...i})})]}),l(c.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},disabled:t===0,children:l(W.Trash,{size:16})})]},t)}function AD({control:e,watch:t,data:n}){const{fields:r,append:i,remove:a}=k.useFieldArray({control:e,name:"dimensions"}),o=t("dimensions"),s=r.map((d,f)=>({...d,...o[f]})),u=()=>i({name:bt.randomId(),data_key:"",max:100,formatter:vn});return y(c.Stack,{children:[s.map((d,f)=>l(PD,{data:n,control:e,index:f,remove:a})),l(c.Group,{position:"center",mt:"xs",children:l(c.Button,{onClick:u,children:"Add a Dimension"})})]})}function ID(e){function t({name:n="",data_key:r="",max:i=10,formatter:a=vn}){return{name:n,data_key:r,max:i,formatter:a}}return e.map(t)}function $D({context:e}){const t=e.data,{value:n,set:r}=Ue(e.instanceData,"config"),i=x.useMemo(()=>L.defaultsDeep({},n,vl),[n]),{dimensions:a,series_name_key:o}=i,s=x.useMemo(()=>({dimensions:ID(a!=null?a:[]),series_name_key:o}),[a,o]);x.useEffect(()=>{!L.isEqual(i,s)&&r(s)},[i,s]);const{control:u,handleSubmit:d,watch:f,getValues:p,reset:h}=k.useForm({defaultValues:s});x.useEffect(()=>{L.isEqual(p(),s)||h(s)},[i]),f(["series_name_key"]);const g=p(),v=x.useMemo(()=>!L.isEqual(g,i),[g,i]);return l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:d(r),children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{children:"Chart Config"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!v,children:l(W.DeviceFloppy,{size:20})})]}),l(c.Box,{py:"sm",children:l(k.Controller,{name:"series_name_key",control:u,render:({field:m})=>l(ot,{label:"Series Name Field",required:!0,data:t,sx:{flex:1},...m})})}),l(AD,{control:u,watch:f,data:t})]})})}class ND extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const LD={displayName:"Radar Chart",migrator:new ND,name:"radar",viewRender:kD,configRender:$D,createConfig:()=>vl};function VD(e,t){switch(e.config.method){case"linear":return[...Nn.regressionLinear()(t)];case"exponential":return[...Nn.regressionExp()(t)];case"logarithmic":return[...Nn.regressionLog()(t)];case"polynomial":return[...Nn.regressionPoly().order(e.config.order)(t)];default:return[]}}function FD({regression:e},t){const n=[],r=[];if(t.length===0)return{regressionSeries:n,regressionXAxes:r};const{transform:i,plot:a,name:o}=e,s=VD(i,t);return n.push({...a,name:o,data:s,showSymbol:!1,smooth:!0,tooltip:{show:!1}}),{regressionSeries:n,regressionXAxes:r}}const zD={tooltip:{trigger:"axis"},grid:{top:10,left:30,right:15,bottom:30,containLabel:!0},dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}]};function jD(e,t){var a,o;const n=De.default.uniqBy(t.map(s=>[s[e.x_axis.data_key],s[e.regression.y_axis_data_key]]),0),{regressionSeries:r}=FD(e,n),i={xAxis:{type:"category",name:(a=e.x_axis.name)!=null?a:"",axisTick:{show:!0,alignWithLabel:!0}},yAxis:{name:(o=e.y_axis.name)!=null?o:"",axisLine:{show:!0}},series:[{data:n,name:e.y_axis.name,type:"scatter",symbolSize:4,color:"red"},...r]};return L.defaultsDeep({},i,zD)}function pa(e,t,n){return 1-(1-e)*(t-1)/(t-n-1)}function BD(e,t){if(!t)return{expression:"",rSquared:0,adjustedRSquared:0};const{regression:n,x_axis:r,y_axis:i}=t,a=e.map(o=>[o[r.data_key],o[n.y_axis_data_key]]);if(n.transform.config.method==="linear"){const o=Nn.regressionLinear()(a),{a:s,b:u,rSquared:d}=o;return{expression:y(c.Group,{position:"center",noWrap:!0,spacing:10,children:[l(c.Text,{children:i.name}),l(c.Text,{children:"="}),l(c.Text,{weight:"bold",color:"gray",children:u}),l(c.Text,{children:"+"}),l(c.Text,{weight:"bold",color:"gray",children:s}),l(c.Text,{children:"\xD7"}),l(c.Text,{children:r.name})]}),rSquared:d,adjustedRSquared:pa(d,e.length,1)}}if(n.transform.config.method==="exponential"){const{a:o,b:s,rSquared:u}=Nn.regressionExp()(a);return{expression:y(c.Group,{position:"center",noWrap:!0,spacing:10,children:[l(c.Text,{children:i.name}),l(c.Text,{children:"="}),l(c.Text,{weight:"bold",color:"gray",children:o}),l(c.Text,{children:"\xD7"}),y(c.Group,{position:"left",noWrap:!0,spacing:2,children:[l(c.Text,{children:"Math.exp("}),l(c.Text,{weight:"bold",color:"gray",children:s}),l(c.Text,{children:"\xD7"}),l(c.Text,{children:r.name}),l(c.Text,{children:")"})]})]}),rSquared:u,adjustedRSquared:pa(u,e.length,1)}}if(n.transform.config.method==="logarithmic"){const{a:o,b:s,rSquared:u}=Nn.regressionLog()(a);return{expression:y(c.Group,{position:"center",noWrap:!0,spacing:10,children:[l(c.Text,{children:i.name}),l(c.Text,{children:"="}),l(c.Text,{weight:"bold",color:"gray",children:o}),l(c.Text,{children:"\xD7"}),y(c.Group,{position:"left",noWrap:!0,spacing:2,children:[l(c.Text,{children:"Math.log("}),l(c.Text,{children:r.name}),l(c.Text,{children:")"}),l(c.Text,{children:"+"}),l(c.Text,{weight:"bold",color:"gray",children:s})]})]}),rSquared:u,adjustedRSquared:pa(u,e.length,1)}}if(n.transform.config.method==="polynomial"){const o=Nn.regressionPoly().order(n.transform.config.order)(a),{rSquared:s}=o;return console.log(o),{expression:"",rSquared:s,adjustedRSquared:pa(s,e.length,1)}}return{expression:"",rSquared:0}}const ml={x_axis:{name:"X Axis",data_key:""},y_axis:{name:"Y Axis"},regression:{transform:{type:"ecStat:regression",config:{method:"linear",order:1,formulaOn:"end"}},plot:{type:"line",yAxisIndex:0,color:"#228be6",lineStyle:{type:"solid",width:1}},name:"regression",y_axis_data_key:"value"}};wt.use([Je.DataZoomComponent,Qt.ScatterChart,Je.GridComponent,Je.LegendComponent,Je.TooltipComponent,Sn.CanvasRenderer]),wt.registerTransform(_a.transform.regression);function GD({context:e}){const{value:t}=Ue(e.instanceData,"config"),{width:n,height:r}=e.viewport,i=x.useMemo(()=>{var h;const f=e.data,p=(h=t==null?void 0:t.regression)==null?void 0:h.y_axis_data_key;return p?f.map(g=>typeof g[p]=="number"?g:{...g,[p]:Number(g[p])}):f},[e.data,t==null?void 0:t.regression.y_axis_data_key]),a=x.useMemo(()=>jD(L.defaultsDeep({},t,ml),i),[t,i]),{expression:o,rSquared:s,adjustedRSquared:u}=x.useMemo(()=>BD(i,t),[t,i]);if(!n||!r||!t)return null;let d=r;return o&&(d-=20),y(c.Box,{children:[o&&l(c.Text,{align:"center",size:12,children:o}),y(c.Group,{spacing:0,noWrap:!0,align:"start",sx:{"> *":{flexGrow:0,flexShrink:0}},children:[l(wn.default,{echarts:wt,option:a,style:{width:n-190,height:d}}),s&&l(c.Table,{mt:20,fontSize:12,sx:{width:180,border:"1px solid #999",td:{padding:"3px 8px"}},children:y("tbody",{children:[y("tr",{children:[l("td",{children:"R-Sq"}),l("td",{style:{textAlign:"right"},children:$t.default(s).format({output:"percent",mantissa:1})})]}),y("tr",{children:[l("td",{children:"R-Sq(Adjusted)"}),l("td",{style:{textAlign:"right"},children:$t.default(u).format({output:"percent",mantissa:1})})]})]})})]})]})}const KD=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}];function qD({control:e,watch:t,data:n}){const r=t("regression.transform.config.method");return y(c.Stack,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"regression.name",control:e,render:({field:i})=>l(c.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),l(k.Controller,{name:"regression.y_axis_data_key",control:e,render:({field:i})=>l(ot,{label:"Value Field",required:!0,data:n,sx:{flex:1},...i})})]}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"regression.transform.config.method",control:e,render:({field:i})=>l(c.Select,{label:"Method",data:KD,sx:{flex:1},...i})}),r==="polynomial"&&l(k.Controller,{name:"regression.transform.config.order",control:e,render:({field:i})=>l(c.NumberInput,{label:"Order",sx:{flex:1},...i})})]}),y(c.Stack,{spacing:4,children:[l(c.Text,{size:"sm",children:"Color"}),l(k.Controller,{name:"regression.plot.color",control:e,render:({field:i})=>l(mn,{...i})})]})]})}function HD({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=e.data,i=x.useMemo(()=>L.defaults({},t,ml),[t]),{control:a,handleSubmit:o,watch:s,getValues:u,reset:d}=k.useForm({defaultValues:i});x.useEffect(()=>{d(i)},[i]),s(["x_axis","y_axis","regression"]);const f=u(),p=x.useMemo(()=>!L.isEqual(f,t),[f,t]);return l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:o(n),children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{children:"Chart Config"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!p,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Accordion,{multiple:!0,defaultValue:["Axis","Regression"],children:[y(c.Accordion.Item,{value:"Axis",children:[l(c.Accordion.Control,{children:"Axis"}),y(c.Accordion.Panel,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis.name",control:a,render:({field:h})=>l(c.TextInput,{label:"X Axis Name",sx:{flex:1},...h})}),l(k.Controller,{name:"x_axis.data_key",control:a,render:({field:h})=>l(ot,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...h})})]}),l(c.Group,{grow:!0,noWrap:!0,children:l(k.Controller,{name:"y_axis.name",control:a,render:({field:h})=>l(c.TextInput,{label:"Y Axis Name",sx:{flex:1},...h})})})]})]}),y(c.Accordion.Item,{value:"Regression",children:[l(c.Accordion.Control,{children:"Regression Line"}),l(c.Accordion.Panel,{children:l(qD,{control:a,watch:s,data:r})})]})]})]})})}class WD extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const UD={displayName:"Regression Chart",migrator:new WD,name:"regressionChart",viewRender:GD,configRender:HD,createConfig:()=>ml},yl={content:""};function YD({context:e}){const{value:t}=Ue(e.instanceData,"config");return t!=null&&t.content?l(yf,{value:t.content,styles:{root:{border:"none"},content:{padding:0}}}):null}const vp=x.forwardRef(({value:e,onChange:t,styles:n={}},r)=>{const i=Xl.useEditor({extensions:[Zl.default,mf,We.Link,gf,hf,ff,vf.configure({types:["heading","paragraph"]}),pf.configure({placeholder:"This is placeholder"}),cf,df],content:e,onUpdate:({editor:a})=>{t==null||t(a.getHTML())}});return x.useEffect(()=>{i==null||i.commands.setContent(e)},[e,i]),y(We.RichTextEditor,{editor:i,styles:n,children:[y(We.RichTextEditor.Toolbar,{sticky:!0,stickyOffset:60,children:[l(We.RichTextEditor.ControlsGroup,{children:l(We.RichTextEditor.ColorPicker,{colors:["#25262b","#868e96","#fa5252","#e64980","#be4bdb","#7950f2","#4c6ef5","#228be6","#15aabf","#12b886","#40c057","#82c91e","#fab005","#fd7e14"]})}),y(We.RichTextEditor.ControlsGroup,{children:[l(We.RichTextEditor.Bold,{}),l(We.RichTextEditor.Italic,{}),l(We.RichTextEditor.Underline,{}),l(We.RichTextEditor.Strikethrough,{}),l(We.RichTextEditor.ClearFormatting,{}),l(We.RichTextEditor.Highlight,{}),l(We.RichTextEditor.Code,{})]}),y(We.RichTextEditor.ControlsGroup,{children:[l(We.RichTextEditor.H1,{}),l(We.RichTextEditor.H2,{}),l(We.RichTextEditor.H3,{}),l(We.RichTextEditor.H4,{})]}),y(We.RichTextEditor.ControlsGroup,{children:[l(We.RichTextEditor.Blockquote,{}),l(We.RichTextEditor.Hr,{}),l(We.RichTextEditor.BulletList,{}),l(We.RichTextEditor.OrderedList,{}),l(We.RichTextEditor.Subscript,{}),l(We.RichTextEditor.Superscript,{})]}),y(We.RichTextEditor.ControlsGroup,{children:[l(We.RichTextEditor.Link,{}),l(We.RichTextEditor.Unlink,{})]}),y(We.RichTextEditor.ControlsGroup,{children:[l(We.RichTextEditor.AlignLeft,{}),l(We.RichTextEditor.AlignCenter,{}),l(We.RichTextEditor.AlignJustify,{}),l(We.RichTextEditor.AlignRight,{})]})]}),l(We.RichTextEditor.Content,{})]})});function XD({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=x.useMemo(()=>L.defaults({},t,yl),[t]),{control:i,handleSubmit:a,watch:o,getValues:s,reset:u}=k.useForm({defaultValues:r});o("content");const d=s(),f=x.useMemo(()=>!L.isEqual(d.content,r.content),[d,r]);return x.useEffect(()=>{u(r)},[r]),l("form",{onSubmit:a(n),style:{flexGrow:1,display:"flex",flexDirection:"column"},children:y(c.Stack,{mt:"md",spacing:"xs",sx:{flexGrow:1},children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{children:"Content"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!f,children:l(W.DeviceFloppy,{size:20})})]}),l(k.Controller,{name:"content",control:i,render:({field:p})=>l(vp,{...p,styles:{root:{flexGrow:1}}})})]})})}class QD extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}fixMalformedConfig(n){return L.defaults({},n,yl)}configVersions(){this.version(1,n=>({version:1,config:this.fixMalformedConfig(n)}))}}const ZD={displayName:"RichText",migrator:new QD,name:"richText",viewRender:YD,configRender:XD,createConfig:()=>yl},bl={align:"center",template:"The variable ${value} is defined in Variables section"};function JD(e){if("variables"in e)return e;const{align:t,size:n,weight:r,color:i,content:{prefix:a="",data_field:o="value",formatter:s={output:"number",mantissa:0},postfix:u=""}={}}=e;return{align:t,template:`${a} \${value} ${u}`,variables:[{name:"value",data_field:o,aggregation:{type:"none",config:{}},formatter:s,color:i,weight:r,size:n}]}}function eR(e){return L.omit(e,["variables"])}function tR(e){const t=L.cloneDeep(e),n=L.get(t,"color.valueRange");return n!==void 0&&L.set(t,"color.valueRange",n.map(r=>Number(r))),t}class nR extends Ft{constructor(){super(...arguments);pe(this,"VERSION",2)}configVersions(){this.version(1,n=>({config:JD(n)})),this.version(2,(n,{panelModel:r})=>{const{config:i}=n;return(i.variables||[]).forEach(o=>{r.variables.find(s=>s.name===o.name)||r.addVariable(tR(o))}),{config:eR(i)}})}}const rR=X.observer(({context:e})=>{const t=et(),{value:n=bl}=Ue(e.instanceData,"config"),{variables:r}=e,{template:i,align:a}=n,o=x.useMemo(()=>{try{const u={filters:t.filters.values,context:t.context.current};return De.default.template(i)(u)}catch{return i}},[t.filters.values,t.context.current,i]),s=x.useMemo(()=>fi(o,r,e.data),[o,r,e.data,e]);return l(c.Text,{align:a,children:Object.values(s).map((u,d)=>l(j.default.Fragment,{children:u},d))})}),iR=[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}];function aR({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=j.default.useMemo(()=>{const{align:p,template:h=""}=L.defaultsDeep({},t,bl);return{template:h,align:p}},[t]),{control:i,handleSubmit:a,watch:o,getValues:s,reset:u}=k.useForm({defaultValues:r});j.default.useEffect(()=>{u(r)},[r]),o(["template","align"]);const d=s(),f=j.default.useMemo(()=>!De.default.isEqual(d,t),[d,t]);return l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:a(n),children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{weight:500,children:"Stats Configurations"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!f,children:l(W.DeviceFloppy,{size:20})})]}),l(k.Controller,{name:"template",control:i,render:({field:p})=>l(oi,{label:"Template",py:"md",sx:{flexGrow:1},...p})}),l(k.Controller,{name:"align",control:i,render:({field:p})=>l(c.Select,{label:"Horizontal Alignment",data:iR,...p})})]})})}const oR={createConfig(){return{version:1,config:bl}},displayName:"Stats",migrator:new nR,name:"stats",viewRender:rR,configRender:aR},Cl={label_field:"",value_field:""};wt.use([Qt.SunburstChart,Sn.CanvasRenderer]);const lR={tooltip:{show:!0},series:{type:"sunburst",radius:[0,"90%"],emphasis:{focus:"ancestor"}}};function sR({context:e}){const{value:t}=Ue(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{label_field:a,value_field:o}=L.defaults({},t,Cl),s=x.useMemo(()=>n.map(p=>({name:p[a],value:Number(p[o])})),[n,a,o]),u=x.useMemo(()=>{var p,h;return(h=(p=L.maxBy(s,g=>g.value))==null?void 0:p.value)!=null?h:1},[s]),d=x.useMemo(()=>({series:{label:{formatter:({name:p,value:h})=>h/u<.2?" ":p}}}),[u]),f=L.merge({},lR,d,{series:{data:s}});return l(wn.default,{echarts:wt,option:f,style:{width:r,height:i}})}function uR({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),{label_field:r,value_field:i}=L.defaults({},t,Cl),a=e.data,o=Ql.useForm({initialValues:{label_field:r,value_field:i}});return x.useEffect(()=>{o.setValues({label_field:r,value_field:i})},[r,i]),l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:o.onSubmit(n),children:[y(c.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[l(c.Text,{children:"Sunburst Config"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:l(W.DeviceFloppy,{size:20})})]}),y(c.Stack,{mt:"md",spacing:"xs",p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[l(ot,{label:"Label Field",required:!0,data:a,...o.getInputProps("label_field")}),l(ot,{label:"Value Field",required:!0,data:a,...o.getInputProps("value_field")})]})]})})}class cR extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const dR={displayName:"Sunburst",migrator:new cR,name:"sunburst",viewRender:sR,configRender:uR,createConfig:()=>Cl};var yn=(e=>(e.string="string",e.number="number",e.eloc="eloc",e.percentage="percentage",e.custom="custom",e))(yn||{});const mp=["function text({ value }) {"," // your code goes here"," return value","}"].join(`
|
|
212
|
+
`}}const DD={legend:{show:!0,bottom:0,left:0},tooltip:{trigger:"item"}};function RD(e,t){const n=["#66B4DB","#39BFA2","#E46464","#33A678","#EEBA00","#9D88CB","#939943","#E49792","#09A2B8","#AF5F6B","#6CA157","#09A2B8","#6398C7","#E692BA","#97B566","#8CACE2","#CA79AC","#6DBC80","#B08F4B","#826BAF"],r=e.dimensions.map(({name:o,max:s})=>({name:o,max:s})),i=t.map(o=>({value:e.dimensions.map(({data_key:s})=>o[s]),name:o[e.series_name_key]})),a={radar:{indicator:r,splitArea:{show:!1}},tooltip:{confine:!0,formatter:MD(e)},legend:{show:!0,left:"center"},series:{type:"radar",data:i,symbolSize:4,lineStyle:{width:1},areaStyle:{opacity:.4},label:OD(e)},color:n};return De.default.merge({},DD,a)}const vl={series_name_key:"name",dimensions:[]};wt.use([Qt.RadarChart,Je.GridComponent,Je.LegendComponent,Je.TooltipComponent,Sn.CanvasRenderer]);function kD({context:e}){const{value:t}=Ue(e.instanceData,"config"),{width:n,height:r}=e.viewport,i=e.data,a=x.useMemo(()=>RD(L.defaultsDeep({},t,vl),i),[t,i]);return!n||!r||!t||L.isEmpty(t==null?void 0:t.dimensions)?null:l(c.Box,{children:l(wn.default,{echarts:wt,option:a,style:{width:n,height:r}})})}function PD({control:e,index:t,remove:n,data:r}){return y(c.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`dimensions.${t}.name`,control:e,render:({field:i})=>l(c.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),l(k.Controller,{name:`dimensions.${t}.data_key`,control:e,render:({field:i})=>l(ot,{label:"Data Key",required:!0,data:r,sx:{flex:1},...i})}),l(k.Controller,{name:`dimensions.${t}.max`,control:e,render:({field:i})=>l(c.NumberInput,{label:"Max",hideControls:!0,required:!0,sx:{flex:1},...i})})]}),y(c.Stack,{children:[l(c.Divider,{mb:-15,variant:"dashed",label:"Value Formatter",labelPosition:"center"}),l(k.Controller,{name:`dimensions.${t}.formatter`,control:e,render:({field:i})=>l(ar,{...i})})]}),l(c.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},disabled:t===0,children:l(W.Trash,{size:16})})]},t)}function AD({control:e,watch:t,data:n}){const{fields:r,append:i,remove:a}=k.useFieldArray({control:e,name:"dimensions"}),o=t("dimensions"),s=r.map((d,f)=>({...d,...o[f]})),u=()=>i({name:bt.randomId(),data_key:"",max:100,formatter:vn});return y(c.Stack,{children:[s.map((d,f)=>l(PD,{data:n,control:e,index:f,remove:a})),l(c.Group,{position:"center",mt:"xs",children:l(c.Button,{onClick:u,children:"Add a Dimension"})})]})}function ID(e){function t({name:n="",data_key:r="",max:i=10,formatter:a=vn}){return{name:n,data_key:r,max:i,formatter:a}}return e.map(t)}function $D({context:e}){const t=e.data,{value:n,set:r}=Ue(e.instanceData,"config"),i=x.useMemo(()=>L.defaultsDeep({},n,vl),[n]),{dimensions:a,series_name_key:o}=i,s=x.useMemo(()=>({dimensions:ID(a!=null?a:[]),series_name_key:o}),[a,o]);x.useEffect(()=>{!L.isEqual(i,s)&&r(s)},[i,s]);const{control:u,handleSubmit:d,watch:f,getValues:p,reset:h}=k.useForm({defaultValues:s});x.useEffect(()=>{L.isEqual(p(),s)||h(s)},[i]),f(["series_name_key"]);const g=p(),v=x.useMemo(()=>!L.isEqual(g,i),[g,i]);return l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:d(r),children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{children:"Chart Config"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!v,children:l(W.DeviceFloppy,{size:20})})]}),l(c.Box,{py:"sm",children:l(k.Controller,{name:"series_name_key",control:u,render:({field:m})=>l(ot,{label:"Series Name Field",required:!0,data:t,sx:{flex:1},...m})})}),l(AD,{control:u,watch:f,data:t})]})})}class ND extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const LD={displayName:"Radar Chart",migrator:new ND,name:"radar",viewRender:kD,configRender:$D,createConfig:()=>vl};function VD(e,t){switch(e.config.method){case"linear":return[...Nn.regressionLinear()(t)];case"exponential":return[...Nn.regressionExp()(t)];case"logarithmic":return[...Nn.regressionLog()(t)];case"polynomial":return[...Nn.regressionPoly().order(e.config.order)(t)];default:return[]}}function FD({regression:e},t){const n=[],r=[];if(t.length===0)return{regressionSeries:n,regressionXAxes:r};const{transform:i,plot:a,name:o}=e,s=VD(i,t);return n.push({...a,name:o,data:s,showSymbol:!1,smooth:!0,tooltip:{show:!1}}),{regressionSeries:n,regressionXAxes:r}}const zD={tooltip:{trigger:"axis"},grid:{top:10,left:30,right:15,bottom:30,containLabel:!0},dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}]};function jD(e,t){var a,o;const n=De.default.uniqBy(t.map(s=>[s[e.x_axis.data_key],s[e.regression.y_axis_data_key]]),0),{regressionSeries:r}=FD(e,n),i={xAxis:{type:"category",name:(a=e.x_axis.name)!=null?a:"",axisTick:{show:!0,alignWithLabel:!0}},yAxis:{name:(o=e.y_axis.name)!=null?o:"",axisLine:{show:!0}},series:[{data:n,name:e.y_axis.name,type:"scatter",symbolSize:4,color:"red"},...r]};return L.defaultsDeep({},i,zD)}function pa(e,t,n){return 1-(1-e)*(t-1)/(t-n-1)}function BD(e,t){if(!t)return{expression:"",rSquared:0,adjustedRSquared:0};const{regression:n,x_axis:r,y_axis:i}=t,a=e.map(o=>[o[r.data_key],o[n.y_axis_data_key]]);if(n.transform.config.method==="linear"){const o=Nn.regressionLinear()(a),{a:s,b:u,rSquared:d}=o;return{expression:y(c.Group,{position:"center",noWrap:!0,spacing:10,children:[l(c.Text,{children:i.name}),l(c.Text,{children:"="}),l(c.Text,{weight:"bold",color:"gray",children:u}),l(c.Text,{children:"+"}),l(c.Text,{weight:"bold",color:"gray",children:s}),l(c.Text,{children:"\xD7"}),l(c.Text,{children:r.name})]}),rSquared:d,adjustedRSquared:pa(d,e.length,1)}}if(n.transform.config.method==="exponential"){const{a:o,b:s,rSquared:u}=Nn.regressionExp()(a);return{expression:y(c.Group,{position:"center",noWrap:!0,spacing:10,children:[l(c.Text,{children:i.name}),l(c.Text,{children:"="}),l(c.Text,{weight:"bold",color:"gray",children:o}),l(c.Text,{children:"\xD7"}),y(c.Group,{position:"left",noWrap:!0,spacing:2,children:[l(c.Text,{children:"Math.exp("}),l(c.Text,{weight:"bold",color:"gray",children:s}),l(c.Text,{children:"\xD7"}),l(c.Text,{children:r.name}),l(c.Text,{children:")"})]})]}),rSquared:u,adjustedRSquared:pa(u,e.length,1)}}if(n.transform.config.method==="logarithmic"){const{a:o,b:s,rSquared:u}=Nn.regressionLog()(a);return{expression:y(c.Group,{position:"center",noWrap:!0,spacing:10,children:[l(c.Text,{children:i.name}),l(c.Text,{children:"="}),l(c.Text,{weight:"bold",color:"gray",children:o}),l(c.Text,{children:"\xD7"}),y(c.Group,{position:"left",noWrap:!0,spacing:2,children:[l(c.Text,{children:"Math.log("}),l(c.Text,{children:r.name}),l(c.Text,{children:")"}),l(c.Text,{children:"+"}),l(c.Text,{weight:"bold",color:"gray",children:s})]})]}),rSquared:u,adjustedRSquared:pa(u,e.length,1)}}if(n.transform.config.method==="polynomial"){const o=Nn.regressionPoly().order(n.transform.config.order)(a),{rSquared:s}=o;return console.log(o),{expression:"",rSquared:s,adjustedRSquared:pa(s,e.length,1)}}return{expression:"",rSquared:0}}const ml={x_axis:{name:"X Axis",data_key:""},y_axis:{name:"Y Axis"},regression:{transform:{type:"ecStat:regression",config:{method:"linear",order:1,formulaOn:"end"}},plot:{type:"line",yAxisIndex:0,color:"#228be6",lineStyle:{type:"solid",width:1}},name:"regression",y_axis_data_key:"value"}};wt.use([Je.DataZoomComponent,Qt.ScatterChart,Je.GridComponent,Je.LegendComponent,Je.TooltipComponent,Sn.CanvasRenderer]),wt.registerTransform(_a.transform.regression);function GD({context:e}){const{value:t}=Ue(e.instanceData,"config"),{width:n,height:r}=e.viewport,i=x.useMemo(()=>{var h;const f=e.data,p=(h=t==null?void 0:t.regression)==null?void 0:h.y_axis_data_key;return p?f.map(g=>typeof g[p]=="number"?g:{...g,[p]:Number(g[p])}):f},[e.data,t==null?void 0:t.regression.y_axis_data_key]),a=x.useMemo(()=>jD(L.defaultsDeep({},t,ml),i),[t,i]),{expression:o,rSquared:s,adjustedRSquared:u}=x.useMemo(()=>BD(i,t),[t,i]);if(!n||!r||!t)return null;let d=r;return o&&(d-=20),y(c.Box,{children:[o&&l(c.Text,{align:"center",size:12,children:o}),y(c.Group,{spacing:0,noWrap:!0,align:"start",sx:{"> *":{flexGrow:0,flexShrink:0}},children:[l(wn.default,{echarts:wt,option:a,style:{width:n-190,height:d}}),s&&l(c.Table,{mt:20,fontSize:12,sx:{width:180,border:"1px solid #999",td:{padding:"3px 8px"}},children:y("tbody",{children:[y("tr",{children:[l("td",{children:"R-Sq"}),l("td",{style:{textAlign:"right"},children:$t.default(s).format({output:"percent",mantissa:1})})]}),y("tr",{children:[l("td",{children:"R-Sq(Adjusted)"}),l("td",{style:{textAlign:"right"},children:$t.default(u).format({output:"percent",mantissa:1})})]})]})})]})]})}const KD=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}];function qD({control:e,watch:t,data:n}){const r=t("regression.transform.config.method");return y(c.Stack,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"regression.name",control:e,render:({field:i})=>l(c.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),l(k.Controller,{name:"regression.y_axis_data_key",control:e,render:({field:i})=>l(ot,{label:"Value Field",required:!0,data:n,sx:{flex:1},...i})})]}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"regression.transform.config.method",control:e,render:({field:i})=>l(c.Select,{label:"Method",data:KD,sx:{flex:1},...i})}),r==="polynomial"&&l(k.Controller,{name:"regression.transform.config.order",control:e,render:({field:i})=>l(c.NumberInput,{label:"Order",sx:{flex:1},...i})})]}),y(c.Stack,{spacing:4,children:[l(c.Text,{size:"sm",children:"Color"}),l(k.Controller,{name:"regression.plot.color",control:e,render:({field:i})=>l(mn,{...i})})]})]})}function HD({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=e.data,i=x.useMemo(()=>L.defaults({},t,ml),[t]),{control:a,handleSubmit:o,watch:s,getValues:u,reset:d}=k.useForm({defaultValues:i});x.useEffect(()=>{d(i)},[i]),s(["x_axis","y_axis","regression"]);const f=u(),p=x.useMemo(()=>!L.isEqual(f,t),[f,t]);return l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:o(n),children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{children:"Chart Config"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!p,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Accordion,{multiple:!0,defaultValue:["Axis","Regression"],children:[y(c.Accordion.Item,{value:"Axis",children:[l(c.Accordion.Control,{children:"Axis"}),y(c.Accordion.Panel,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis.name",control:a,render:({field:h})=>l(c.TextInput,{label:"X Axis Name",sx:{flex:1},...h})}),l(k.Controller,{name:"x_axis.data_key",control:a,render:({field:h})=>l(ot,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...h})})]}),l(c.Group,{grow:!0,noWrap:!0,children:l(k.Controller,{name:"y_axis.name",control:a,render:({field:h})=>l(c.TextInput,{label:"Y Axis Name",sx:{flex:1},...h})})})]})]}),y(c.Accordion.Item,{value:"Regression",children:[l(c.Accordion.Control,{children:"Regression Line"}),l(c.Accordion.Panel,{children:l(qD,{control:a,watch:s,data:r})})]})]})]})})}class WD extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const UD={displayName:"Regression Chart",migrator:new WD,name:"regressionChart",viewRender:GD,configRender:HD,createConfig:()=>ml},yl={content:""};function YD({context:e}){const{value:t}=Ue(e.instanceData,"config");return t!=null&&t.content?l(yf,{value:t.content,styles:{root:{border:"none"},content:{padding:0}}}):null}const vp=x.forwardRef(({value:e,onChange:t,styles:n={}},r)=>{const i=Xl.useEditor({extensions:[Zl.default,mf,We.Link,gf,hf,ff,vf.configure({types:["heading","paragraph"]}),pf.configure({placeholder:"This is placeholder"}),cf,df],content:e,onUpdate:({editor:a})=>{t==null||t(a.getHTML())}});return x.useEffect(()=>{i==null||i.commands.setContent(e)},[e,i]),y(We.RichTextEditor,{editor:i,styles:n,children:[y(We.RichTextEditor.Toolbar,{sticky:!0,stickyOffset:60,children:[l(We.RichTextEditor.ControlsGroup,{children:l(We.RichTextEditor.ColorPicker,{colors:["#25262b","#868e96","#fa5252","#e64980","#be4bdb","#7950f2","#4c6ef5","#228be6","#15aabf","#12b886","#40c057","#82c91e","#fab005","#fd7e14"]})}),y(We.RichTextEditor.ControlsGroup,{children:[l(We.RichTextEditor.Bold,{}),l(We.RichTextEditor.Italic,{}),l(We.RichTextEditor.Underline,{}),l(We.RichTextEditor.Strikethrough,{}),l(We.RichTextEditor.ClearFormatting,{}),l(We.RichTextEditor.Highlight,{}),l(We.RichTextEditor.Code,{})]}),y(We.RichTextEditor.ControlsGroup,{children:[l(We.RichTextEditor.H1,{}),l(We.RichTextEditor.H2,{}),l(We.RichTextEditor.H3,{}),l(We.RichTextEditor.H4,{})]}),y(We.RichTextEditor.ControlsGroup,{children:[l(We.RichTextEditor.Blockquote,{}),l(We.RichTextEditor.Hr,{}),l(We.RichTextEditor.BulletList,{}),l(We.RichTextEditor.OrderedList,{}),l(We.RichTextEditor.Subscript,{}),l(We.RichTextEditor.Superscript,{})]}),y(We.RichTextEditor.ControlsGroup,{children:[l(We.RichTextEditor.Link,{}),l(We.RichTextEditor.Unlink,{})]}),y(We.RichTextEditor.ControlsGroup,{children:[l(We.RichTextEditor.AlignLeft,{}),l(We.RichTextEditor.AlignCenter,{}),l(We.RichTextEditor.AlignJustify,{}),l(We.RichTextEditor.AlignRight,{})]})]}),l(We.RichTextEditor.Content,{})]})});function XD({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=x.useMemo(()=>L.defaults({},t,yl),[t]),{control:i,handleSubmit:a,watch:o,getValues:s,reset:u}=k.useForm({defaultValues:r});o("content");const d=s(),f=x.useMemo(()=>!L.isEqual(d.content,r.content),[d,r]);return x.useEffect(()=>{u(r)},[r]),l("form",{onSubmit:a(n),style:{flexGrow:1,display:"flex",flexDirection:"column"},children:y(c.Stack,{mt:"md",spacing:"xs",sx:{flexGrow:1},children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{children:"Content"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!f,children:l(W.DeviceFloppy,{size:20})})]}),l(k.Controller,{name:"content",control:i,render:({field:p})=>l(vp,{...p,styles:{root:{flexGrow:1}}})})]})})}class QD extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}fixMalformedConfig(n){return L.defaults({},n,yl)}configVersions(){this.version(1,n=>({version:1,config:this.fixMalformedConfig(n)}))}}const ZD={displayName:"RichText",migrator:new QD,name:"richText",viewRender:YD,configRender:XD,createConfig:()=>yl},bl={align:"center",template:"The variable ${value} is defined in Variables section"};function JD(e){if("variables"in e)return e;const{align:t,size:n,weight:r,color:i,content:{prefix:a="",data_field:o="value",formatter:s={output:"number",mantissa:0},postfix:u=""}={}}=e;return{align:t,template:`${a} \${value} ${u}`,variables:[{name:"value",data_field:o,aggregation:{type:"none",config:{}},formatter:s,color:i,weight:r,size:n}]}}function eR(e){return L.omit(e,["variables"])}function tR(e){const t=L.cloneDeep(e),n=L.get(t,"color.valueRange");return n!==void 0&&L.set(t,"color.valueRange",n.map(r=>Number(r))),t}class nR extends Ft{constructor(){super(...arguments);pe(this,"VERSION",2)}configVersions(){this.version(1,n=>({version:1,config:JD(n)})),this.version(2,(n,{panelModel:r})=>{const{config:i}=n;return(i.variables||[]).forEach(o=>{r.variables.find(s=>s.name===o.name)||r.addVariable(tR(o))}),{...n,version:2,config:eR(i)}})}}const rR=X.observer(({context:e})=>{const t=et(),{value:n=bl}=Ue(e.instanceData,"config"),{variables:r}=e,{template:i,align:a}=n,o=x.useMemo(()=>{try{const u={filters:t.filters.values,context:t.context.current};return De.default.template(i)(u)}catch{return i}},[t.filters.values,t.context.current,i]),s=x.useMemo(()=>fi(o,r,e.data),[o,r,e.data,e]);return l(c.Text,{align:a,children:Object.values(s).map((u,d)=>l(j.default.Fragment,{children:u},d))})}),iR=[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}];function aR({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=j.default.useMemo(()=>{const{align:p,template:h=""}=L.defaultsDeep({},t,bl);return{template:h,align:p}},[t]),{control:i,handleSubmit:a,watch:o,getValues:s,reset:u}=k.useForm({defaultValues:r});j.default.useEffect(()=>{u(r)},[r]),o(["template","align"]);const d=s(),f=j.default.useMemo(()=>!De.default.isEqual(d,t),[d,t]);return l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:a(n),children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{weight:500,children:"Stats Configurations"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!f,children:l(W.DeviceFloppy,{size:20})})]}),l(k.Controller,{name:"template",control:i,render:({field:p})=>l(oi,{label:"Template",py:"md",sx:{flexGrow:1},...p})}),l(k.Controller,{name:"align",control:i,render:({field:p})=>l(c.Select,{label:"Horizontal Alignment",data:iR,...p})})]})})}const oR={createConfig(){return{version:1,config:bl}},displayName:"Stats",migrator:new nR,name:"stats",viewRender:rR,configRender:aR},Cl={label_field:"",value_field:""};wt.use([Qt.SunburstChart,Sn.CanvasRenderer]);const lR={tooltip:{show:!0},series:{type:"sunburst",radius:[0,"90%"],emphasis:{focus:"ancestor"}}};function sR({context:e}){const{value:t}=Ue(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{label_field:a,value_field:o}=L.defaults({},t,Cl),s=x.useMemo(()=>n.map(p=>({name:p[a],value:Number(p[o])})),[n,a,o]),u=x.useMemo(()=>{var p,h;return(h=(p=L.maxBy(s,g=>g.value))==null?void 0:p.value)!=null?h:1},[s]),d=x.useMemo(()=>({series:{label:{formatter:({name:p,value:h})=>h/u<.2?" ":p}}}),[u]),f=L.merge({},lR,d,{series:{data:s}});return l(wn.default,{echarts:wt,option:f,style:{width:r,height:i}})}function uR({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),{label_field:r,value_field:i}=L.defaults({},t,Cl),a=e.data,o=Ql.useForm({initialValues:{label_field:r,value_field:i}});return x.useEffect(()=>{o.setValues({label_field:r,value_field:i})},[r,i]),l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:o.onSubmit(n),children:[y(c.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[l(c.Text,{children:"Sunburst Config"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:l(W.DeviceFloppy,{size:20})})]}),y(c.Stack,{mt:"md",spacing:"xs",p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[l(ot,{label:"Label Field",required:!0,data:a,...o.getInputProps("label_field")}),l(ot,{label:"Value Field",required:!0,data:a,...o.getInputProps("value_field")})]})]})})}class cR extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const dR={displayName:"Sunburst",migrator:new cR,name:"sunburst",viewRender:sR,configRender:uR,createConfig:()=>Cl};var yn=(e=>(e.string="string",e.number="number",e.eloc="eloc",e.percentage="percentage",e.custom="custom",e))(yn||{});const mp=["function text({ value }) {"," // your code goes here"," return value","}"].join(`
|
|
213
213
|
`),Sl={columns:[],fontSize:"1rem",highlightOnHover:!1,horizontalSpacing:"1em",id_field:"",striped:!1,use_raw_columns:!1,verticalSpacing:"1em"};/**
|
|
214
214
|
* react-table
|
|
215
215
|
*
|
|
@@ -222,7 +222,7 @@ WHERE
|
|
|
222
222
|
*/function Un(e,t){return typeof e=="function"?e(t):e}function on(e,t){return n=>{t.setState(r=>({...r,[e]:Un(n,r[e])}))}}function ha(e){return e instanceof Function}function fR(e,t){const n=[],r=i=>{i.forEach(a=>{n.push(a);const o=t(a);o!=null&&o.length&&r(o)})};return r(e),n}function Le(e,t,n){let r=[],i;return()=>{let a;n.key&&n.debug&&(a=Date.now());const o=e();if(!(o.length!==r.length||o.some((d,f)=>r[f]!==d)))return i;r=o;let u;if(n.key&&n.debug&&(u=Date.now()),i=t(...o),n==null||n.onChange==null||n.onChange(i),n.key&&n.debug&&n!=null&&n.debug()){const d=Math.round((Date.now()-a)*100)/100,f=Math.round((Date.now()-u)*100)/100,p=f/16,h=(g,v)=>{for(g=String(g);g.length<v;)g=" "+g;return g};console.info("%c\u23F1 "+h(f,5)+" /"+h(d,5)+" ms",`
|
|
223
223
|
font-size: .6rem;
|
|
224
224
|
font-weight: bold;
|
|
225
|
-
color: hsl(`+Math.max(0,Math.min(120-120*p,120))+"deg 100% 31%);",n==null?void 0:n.key)}return i}}function pR(e,t,n,r){var i,a;const s={...e._getDefaultColumnDef(),...t},u=s.accessorKey;let d=(i=(a=s.id)!=null?a:u?u.replace(".","_"):void 0)!=null?i:typeof s.header=="string"?s.header:void 0,f;if(s.accessorFn?f=s.accessorFn:u&&(u.includes(".")?f=h=>{let g=h;for(const v of u.split("."))g=g[v];return g}:f=h=>h[s.accessorKey]),!d)throw process.env.NODE_ENV!=="production"?new Error(s.accessorFn?"Columns require an id when using an accessorFn":"Columns require an id when using a non-string header"):new Error;let p={id:""+String(d),accessorFn:f,parent:r,depth:n,columnDef:s,columns:[],getFlatColumns:Le(()=>[!0],()=>{var h;return[p,...(h=p.columns)==null?void 0:h.flatMap(g=>g.getFlatColumns())]},{key:process.env.NODE_ENV==="production"&&"column.getFlatColumns",debug:()=>{var h;return(h=e.options.debugAll)!=null?h:e.options.debugColumns}}),getLeafColumns:Le(()=>[e._getOrderColumnsFn()],h=>{var g;if((g=p.columns)!=null&&g.length){let v=p.columns.flatMap(m=>m.getLeafColumns());return h(v)}return[p]},{key:process.env.NODE_ENV==="production"&&"column.getLeafColumns",debug:()=>{var h;return(h=e.options.debugAll)!=null?h:e.options.debugColumns}})};return p=e._features.reduce((h,g)=>Object.assign(h,g.createColumn==null?void 0:g.createColumn(p,e)),p),p}function yp(e,t,n){var r;let a={id:(r=n.id)!=null?r:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const o=[],s=u=>{u.subHeaders&&u.subHeaders.length&&u.subHeaders.map(s),o.push(u)};return s(a),o},getContext:()=>({table:e,header:a,column:t})};return e._features.forEach(o=>{Object.assign(a,o.createHeader==null?void 0:o.createHeader(a,e))}),a}const hR={createTable:e=>({getHeaderGroups:Le(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>{var a,o;const s=(a=r==null?void 0:r.map(p=>n.find(h=>h.id===p)).filter(Boolean))!=null?a:[],u=(o=i==null?void 0:i.map(p=>n.find(h=>h.id===p)).filter(Boolean))!=null?o:[],d=n.filter(p=>!(r!=null&&r.includes(p.id))&&!(i!=null&&i.includes(p.id)));return ga(t,[...s,...d,...u],e)},{key:process.env.NODE_ENV==="development"&&"getHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getCenterHeaderGroups:Le(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>(n=n.filter(a=>!(r!=null&&r.includes(a.id))&&!(i!=null&&i.includes(a.id))),ga(t,n,e,"center")),{key:process.env.NODE_ENV==="development"&&"getCenterHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getLeftHeaderGroups:Le(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>{var i;const a=(i=r==null?void 0:r.map(o=>n.find(s=>s.id===o)).filter(Boolean))!=null?i:[];return ga(t,a,e,"left")},{key:process.env.NODE_ENV==="development"&&"getLeftHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getRightHeaderGroups:Le(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>{var i;const a=(i=r==null?void 0:r.map(o=>n.find(s=>s.id===o)).filter(Boolean))!=null?i:[];return ga(t,a,e,"right")},{key:process.env.NODE_ENV==="development"&&"getRightHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getFooterGroups:Le(()=>[e.getHeaderGroups()],t=>[...t].reverse(),{key:process.env.NODE_ENV==="development"&&"getFooterGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getLeftFooterGroups:Le(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),{key:process.env.NODE_ENV==="development"&&"getLeftFooterGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getCenterFooterGroups:Le(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),{key:process.env.NODE_ENV==="development"&&"getCenterFooterGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getRightFooterGroups:Le(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),{key:process.env.NODE_ENV==="development"&&"getRightFooterGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getFlatHeaders:Le(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),{key:process.env.NODE_ENV==="development"&&"getFlatHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getLeftFlatHeaders:Le(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),{key:process.env.NODE_ENV==="development"&&"getLeftFlatHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getCenterFlatHeaders:Le(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),{key:process.env.NODE_ENV==="development"&&"getCenterFlatHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getRightFlatHeaders:Le(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),{key:process.env.NODE_ENV==="development"&&"getRightFlatHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getCenterLeafHeaders:Le(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),{key:process.env.NODE_ENV==="development"&&"getCenterLeafHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getLeftLeafHeaders:Le(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),{key:process.env.NODE_ENV==="development"&&"getLeftLeafHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getRightLeafHeaders:Le(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),{key:process.env.NODE_ENV==="development"&&"getRightLeafHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getLeafHeaders:Le(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,r)=>{var i,a,o,s,u,d;return[...(i=(a=t[0])==null?void 0:a.headers)!=null?i:[],...(o=(s=n[0])==null?void 0:s.headers)!=null?o:[],...(u=(d=r[0])==null?void 0:d.headers)!=null?u:[]].map(f=>f.getLeafHeaders()).flat()},{key:process.env.NODE_ENV==="development"&&"getLeafHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}})})};function ga(e,t,n,r){var i,a;let o=0;const s=function(h,g){g===void 0&&(g=1),o=Math.max(o,g),h.filter(v=>v.getIsVisible()).forEach(v=>{var m;(m=v.columns)!=null&&m.length&&s(v.columns,g+1)},0)};s(e);let u=[];const d=(h,g)=>{const v={depth:g,id:[r,""+g].filter(Boolean).join("_"),headers:[]},m=[];h.forEach(C=>{const b=[...m].reverse()[0],w=C.column.depth===v.depth;let S,D=!1;if(w&&C.column.parent?S=C.column.parent:(S=C.column,D=!0),b&&(b==null?void 0:b.column)===S)b.subHeaders.push(C);else{const _=yp(n,S,{id:[r,g,S.id,C==null?void 0:C.id].filter(Boolean).join("_"),isPlaceholder:D,placeholderId:D?""+m.filter(P=>P.column===S).length:void 0,depth:g,index:m.length});_.subHeaders.push(C),m.push(_)}v.headers.push(C),C.headerGroup=v}),u.push(v),g>0&&d(m,g-1)},f=t.map((h,g)=>yp(n,h,{depth:o,index:g}));d(f,o-1),u.reverse();const p=h=>h.filter(v=>v.column.getIsVisible()).map(v=>{let m=0,C=0,b=[0];v.subHeaders&&v.subHeaders.length?(b=[],p(v.subHeaders).forEach(S=>{let{colSpan:D,rowSpan:_}=S;m+=D,b.push(_)})):m=1;const w=Math.min(...b);return C=C+w,v.colSpan=m,v.rowSpan=C,{colSpan:m,rowSpan:C}});return p((i=(a=u[0])==null?void 0:a.headers)!=null?i:[]),u}const va={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},wl=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),gR={getDefaultColumnDef:()=>va,getInitialState:e=>({columnSizing:{},columnSizingInfo:wl(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",onColumnSizingChange:on("columnSizing",e),onColumnSizingInfoChange:on("columnSizingInfo",e)}),createColumn:(e,t)=>({getSize:()=>{var n,r,i;const a=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:va.minSize,(r=a!=null?a:e.columnDef.size)!=null?r:va.size),(i=e.columnDef.maxSize)!=null?i:va.maxSize)},getStart:n=>{const r=n?n==="left"?t.getLeftVisibleLeafColumns():t.getRightVisibleLeafColumns():t.getVisibleLeafColumns(),i=r.findIndex(a=>a.id===e.id);if(i>0){const a=r[i-1];return a.getStart(n)+a.getSize()}return 0},resetSize:()=>{t.setColumnSizing(n=>{let{[e.id]:r,...i}=n;return i})},getCanResize:()=>{var n,r;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((r=t.options.enableColumnResizing)!=null?r:!0)},getIsResizing:()=>t.getState().columnSizingInfo.isResizingColumn===e.id}),createHeader:(e,t)=>({getSize:()=>{let n=0;const r=i=>{if(i.subHeaders.length)i.subHeaders.forEach(r);else{var a;n+=(a=i.column.getSize())!=null?a:0}};return r(e),n},getStart:()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},getResizeHandler:()=>{const n=t.getColumn(e.column.id),r=n.getCanResize();return i=>{if(!r||(i.persist==null||i.persist(),xl(i)&&i.touches&&i.touches.length>1))return;const a=e.getSize(),o=e?e.getLeafHeaders().map(g=>[g.column.id,g.column.getSize()]):[[n.id,n.getSize()]],s=xl(i)?Math.round(i.touches[0].clientX):i.clientX,u=(g,v)=>{if(typeof v!="number")return;let m={};t.setColumnSizingInfo(C=>{var b,w;const S=v-((b=C==null?void 0:C.startOffset)!=null?b:0),D=Math.max(S/((w=C==null?void 0:C.startSize)!=null?w:0),-.999999);return C.columnSizingStart.forEach(_=>{let[P,N]=_;m[P]=Math.round(Math.max(N+N*D,0)*100)/100}),{...C,deltaOffset:S,deltaPercentage:D}}),(t.options.columnResizeMode==="onChange"||g==="end")&&t.setColumnSizing(C=>({...C,...m}))},d=g=>u("move",g),f=g=>{u("end",g),t.setColumnSizingInfo(v=>({...v,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},p={moveHandler:g=>d(g.clientX),upHandler:g=>{document.removeEventListener("mousemove",p.moveHandler),document.removeEventListener("mouseup",p.upHandler),f(g.clientX)}},h=vR()?{passive:!1}:!1;xl(i)||(document.addEventListener("mousemove",p.moveHandler,h),document.addEventListener("mouseup",p.upHandler,h)),t.setColumnSizingInfo(g=>({...g,startOffset:s,startSize:a,deltaOffset:0,deltaPercentage:0,columnSizingStart:o,isResizingColumn:n.id}))}}}),createTable:e=>({setColumnSizing:t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),setColumnSizingInfo:t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),resetColumnSizing:t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},resetHeaderSizeInfo:t=>{var n;e.setColumnSizingInfo(t?wl():(n=e.initialState.columnSizingInfo)!=null?n:wl())},getTotalSize:()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},getLeftTotalSize:()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},getCenterTotalSize:()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},getRightTotalSize:()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0}})};let ma=null;function vR(){if(typeof ma=="boolean")return ma;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch{e=!1}return ma=e,ma}function xl(e){return e.type==="touchstart"}const mR={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:on("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;return{_autoResetExpanded:()=>{var r,i;if(!t){e._queue(()=>{t=!0});return}if((r=(i=e.options.autoResetAll)!=null?i:e.options.autoResetExpanded)!=null?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},setExpanded:r=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(r),toggleAllRowsExpanded:r=>{(r!=null?r:!e.getIsAllRowsExpanded())?e.setExpanded(!0):e.setExpanded({})},resetExpanded:r=>{var i,a;e.setExpanded(r?{}:(i=(a=e.initialState)==null?void 0:a.expanded)!=null?i:{})},getCanSomeRowsExpand:()=>e.getRowModel().flatRows.some(r=>r.getCanExpand()),getToggleAllRowsExpandedHandler:()=>r=>{r.persist==null||r.persist(),e.toggleAllRowsExpanded()},getIsSomeRowsExpanded:()=>{const r=e.getState().expanded;return r===!0||Object.values(r).some(Boolean)},getIsAllRowsExpanded:()=>{const r=e.getState().expanded;return typeof r=="boolean"?r===!0:!(!Object.keys(r).length||e.getRowModel().flatRows.some(i=>i.getIsExpanded()))},getExpandedDepth:()=>{let r=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(a=>{const o=a.split(".");r=Math.max(r,o.length)}),r},getPreExpandedRowModel:()=>e.getSortedRowModel(),getExpandedRowModel:()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())}},createRow:(e,t)=>({toggleExpanded:n=>{t.setExpanded(r=>{var i;const a=r===!0?!0:!!(r!=null&&r[e.id]);let o={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(s=>{o[s]=!0}):o=r,n=(i=n)!=null?i:!a,!a&&n)return{...o,[e.id]:!0};if(a&&!n){const{[e.id]:s,...u}=o;return u}return r})},getIsExpanded:()=>{var n;const r=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:r===!0||(r==null?void 0:r[e.id]))},getCanExpand:()=>{var n,r,i;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((r=t.options.enableExpanding)!=null?r:!0)&&!!((i=e.subRows)!=null&&i.length)},getToggleExpandedHandler:()=>{const n=e.getCanExpand();return()=>{!n||e.toggleExpanded()}}})},bp=(e,t,n)=>{var r;const i=n.toLowerCase();return(r=e.getValue(t))==null?void 0:r.toLowerCase().includes(i)};bp.autoRemove=e=>cn(e);const Cp=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};Cp.autoRemove=e=>cn(e);const Sp=(e,t,n)=>{var r;return((r=e.getValue(t))==null?void 0:r.toLowerCase())===n.toLowerCase()};Sp.autoRemove=e=>cn(e);const wp=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};wp.autoRemove=e=>cn(e)||!(e!=null&&e.length);const xp=(e,t,n)=>!n.some(r=>{var i;return!((i=e.getValue(t))!=null&&i.includes(r))});xp.autoRemove=e=>cn(e)||!(e!=null&&e.length);const _p=(e,t,n)=>n.some(r=>{var i;return(i=e.getValue(t))==null?void 0:i.includes(r)});_p.autoRemove=e=>cn(e)||!(e!=null&&e.length);const Ep=(e,t,n)=>e.getValue(t)===n;Ep.autoRemove=e=>cn(e);const Tp=(e,t,n)=>e.getValue(t)==n;Tp.autoRemove=e=>cn(e);const _l=(e,t,n)=>{let[r,i]=n;const a=e.getValue(t);return a>=r&&a<=i};_l.resolveFilterValue=e=>{let[t,n]=e,r=typeof t!="number"?parseFloat(t):t,i=typeof n!="number"?parseFloat(n):n,a=t===null||Number.isNaN(r)?-1/0:r,o=n===null||Number.isNaN(i)?1/0:i;if(a>o){const s=a;a=o,o=s}return[a,o]},_l.autoRemove=e=>cn(e)||cn(e[0])&&cn(e[1]);const An={includesString:bp,includesStringSensitive:Cp,equalsString:Sp,arrIncludes:wp,arrIncludesAll:xp,arrIncludesSome:_p,equals:Ep,weakEquals:Tp,inNumberRange:_l};function cn(e){return e==null||e===""}const yR={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],globalFilter:void 0,...e}),getDefaultOptions:e=>({onColumnFiltersChange:on("columnFilters",e),onGlobalFilterChange:on("globalFilter",e),filterFromLeafRows:!1,globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n,r;const i=(n=e.getCoreRowModel().flatRows[0])==null||(r=n._getAllCellsByColumnId()[t.id])==null?void 0:r.getValue();return typeof i=="string"||typeof i=="number"}}),createColumn:(e,t)=>({getAutoFilterFn:()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);return typeof r=="string"?An.includesString:typeof r=="number"?An.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?An.equals:Array.isArray(r)?An.arrIncludes:An.weakEquals},getFilterFn:()=>{var n,r;return ha(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(r=t.options.filterFns)==null?void 0:r[e.columnDef.filterFn])!=null?n:An[e.columnDef.filterFn]},getCanFilter:()=>{var n,r,i;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((r=t.options.enableColumnFilters)!=null?r:!0)&&((i=t.options.enableFilters)!=null?i:!0)&&!!e.accessorFn},getCanGlobalFilter:()=>{var n,r,i,a;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((r=t.options.enableGlobalFilter)!=null?r:!0)&&((i=t.options.enableFilters)!=null?i:!0)&&((a=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?a:!0)&&!!e.accessorFn},getIsFiltered:()=>e.getFilterIndex()>-1,getFilterValue:()=>{var n,r;return(n=t.getState().columnFilters)==null||(r=n.find(i=>i.id===e.id))==null?void 0:r.value},getFilterIndex:()=>{var n,r;return(n=(r=t.getState().columnFilters)==null?void 0:r.findIndex(i=>i.id===e.id))!=null?n:-1},setFilterValue:n=>{t.setColumnFilters(r=>{const i=e.getFilterFn(),a=r==null?void 0:r.find(f=>f.id===e.id),o=Un(n,a?a.value:void 0);if(Op(i,o,e)){var s;return(s=r==null?void 0:r.filter(f=>f.id!==e.id))!=null?s:[]}const u={id:e.id,value:o};if(a){var d;return(d=r==null?void 0:r.map(f=>f.id===e.id?u:f))!=null?d:[]}return r!=null&&r.length?[...r,u]:[u]})},_getFacetedRowModel:t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),getFacetedRowModel:()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),_getFacetedUniqueValues:t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),getFacetedUniqueValues:()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,_getFacetedMinMaxValues:t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),getFacetedMinMaxValues:()=>{if(!!e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}),createRow:(e,t)=>({columnFilters:{},columnFiltersMeta:{}}),createTable:e=>({getGlobalAutoFilterFn:()=>An.includesString,getGlobalFilterFn:()=>{var t,n;const{globalFilterFn:r}=e.options;return ha(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:An[r]},setColumnFilters:t=>{const n=e.getAllLeafColumns(),r=i=>{var a;return(a=Un(t,i))==null?void 0:a.filter(o=>{const s=n.find(u=>u.id===o.id);if(s){const u=s.getFilterFn();if(Op(u,o.value,s))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(r)},setGlobalFilter:t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},resetGlobalFilter:t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)},resetColumnFilters:t=>{var n,r;e.setColumnFilters(t?[]:(n=(r=e.initialState)==null?void 0:r.columnFilters)!=null?n:[])},getPreFilteredRowModel:()=>e.getCoreRowModel(),getFilteredRowModel:()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel()),_getGlobalFacetedRowModel:e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),getGlobalFacetedRowModel:()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),_getGlobalFacetedUniqueValues:e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),getGlobalFacetedUniqueValues:()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,_getGlobalFacetedMinMaxValues:e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),getGlobalFacetedMinMaxValues:()=>{if(!!e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}})};function Op(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const El={sum:(e,t,n)=>n.reduce((r,i)=>{const a=i.getValue(e);return r+(typeof a=="number"?a:0)},0),min:(e,t,n)=>{let r;return n.forEach(i=>{const a=i.getValue(e);a!=null&&(r>a||r===void 0&&a>=a)&&(r=a)}),r},max:(e,t,n)=>{let r;return n.forEach(i=>{const a=i.getValue(e);a!=null&&(r<a||r===void 0&&a>=a)&&(r=a)}),r},extent:(e,t,n)=>{let r,i;return n.forEach(a=>{const o=a.getValue(e);o!=null&&(r===void 0?o>=o&&(r=i=o):(r>o&&(r=o),i<o&&(i=o)))}),[r,i]},mean:(e,t)=>{let n=0,r=0;if(t.forEach(i=>{let a=i.getValue(e);a!=null&&(a=+a)>=a&&(++n,r+=a)}),n)return r/n},median:(e,t)=>{if(!t.length)return;let n=0,r=0;return t.forEach(i=>{let a=i.getValue(e);typeof a=="number"&&(n=Math.min(n,a),r=Math.max(r,a))}),(n+r)/2},unique:(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),uniqueCount:(e,t)=>new Set(t.map(n=>n.getValue(e))).size,count:(e,t)=>t.length},bR={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return(t=(n=e.getValue())==null||n.toString==null?void 0:n.toString())!=null?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:on("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>({toggleGrouping:()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(r=>r!==e.id):[...n!=null?n:[],e.id])},getCanGroup:()=>{var n,r,i,a;return(n=(r=(i=(a=e.columnDef.enableGrouping)!=null?a:!0)!=null?i:t.options.enableGrouping)!=null?r:!0)!=null?n:!!e.accessorFn},getIsGrouped:()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},getGroupedIndex:()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},getToggleGroupingHandler:()=>{const n=e.getCanGroup();return()=>{!n||e.toggleGrouping()}},getAutoAggregationFn:()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);if(typeof r=="number")return El.sum;if(Object.prototype.toString.call(r)==="[object Date]")return El.extent},getAggregationFn:()=>{var n,r;if(!e)throw new Error;return ha(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(r=t.options.aggregationFns)==null?void 0:r[e.columnDef.aggregationFn])!=null?n:El[e.columnDef.aggregationFn]}}),createTable:e=>({setGrouping:t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),resetGrouping:t=>{var n,r;e.setGrouping(t?[]:(n=(r=e.initialState)==null?void 0:r.grouping)!=null?n:[])},getPreGroupedRowModel:()=>e.getFilteredRowModel(),getGroupedRowModel:()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())}),createRow:e=>({getIsGrouped:()=>!!e.groupingColumnId,_groupingValuesCache:{}}),createCell:(e,t,n,r)=>({getIsGrouped:()=>t.getIsGrouped()&&t.id===n.groupingColumnId,getIsPlaceholder:()=>!e.getIsGrouped()&&t.getIsGrouped(),getIsAggregated:()=>{var i;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((i=n.subRows)!=null&&i.length)}})};function CR(e,t,n){if(!(t!=null&&t.length)||!n)return e;const r=e.filter(a=>!t.includes(a.id));return n==="remove"?r:[...t.map(a=>e.find(o=>o.id===a)).filter(Boolean),...r]}const SR={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:on("columnOrder",e)}),createTable:e=>({setColumnOrder:t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),resetColumnOrder:t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},_getOrderColumnsFn:Le(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,r)=>i=>{let a=[];if(!(t!=null&&t.length))a=i;else{const o=[...t],s=[...i];for(;s.length&&o.length;){const u=o.shift(),d=s.findIndex(f=>f.id===u);d>-1&&a.push(s.splice(d,1)[0])}a=[...a,...s]}return CR(a,n,r)},{key:process.env.NODE_ENV==="development"&&"getOrderColumnsFn"})})},Tl=0,Ol=10,Ml=()=>({pageIndex:Tl,pageSize:Ol}),wR={getInitialState:e=>({...e,pagination:{...Ml(),...e==null?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:on("pagination",e)}),createTable:e=>{let t=!1,n=!1;return{_autoResetPageIndex:()=>{var r,i;if(!t){e._queue(()=>{t=!0});return}if((r=(i=e.options.autoResetAll)!=null?i:e.options.autoResetPageIndex)!=null?r:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},setPagination:r=>{const i=a=>Un(r,a);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(i)},resetPagination:r=>{var i;e.setPagination(r?Ml():(i=e.initialState.pagination)!=null?i:Ml())},setPageIndex:r=>{e.setPagination(i=>{let a=Un(r,i.pageIndex);const o=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return a=Math.min(Math.max(0,a),o),{...i,pageIndex:a}})},resetPageIndex:r=>{var i,a,o;e.setPageIndex(r?Tl:(i=(a=e.initialState)==null||(o=a.pagination)==null?void 0:o.pageIndex)!=null?i:Tl)},resetPageSize:r=>{var i,a,o;e.setPageSize(r?Ol:(i=(a=e.initialState)==null||(o=a.pagination)==null?void 0:o.pageSize)!=null?i:Ol)},setPageSize:r=>{e.setPagination(i=>{const a=Math.max(1,Un(r,i.pageSize)),o=i.pageSize*i.pageIndex,s=Math.floor(o/a);return{...i,pageIndex:s,pageSize:a}})},setPageCount:r=>e.setPagination(i=>{var a;let o=Un(r,(a=e.options.pageCount)!=null?a:-1);return typeof o=="number"&&(o=Math.max(-1,o)),{...i,pageCount:o}}),getPageOptions:Le(()=>[e.getPageCount()],r=>{let i=[];return r&&r>0&&(i=[...new Array(r)].fill(null).map((a,o)=>o)),i},{key:process.env.NODE_ENV==="development"&&"getPageOptions",debug:()=>{var r;return(r=e.options.debugAll)!=null?r:e.options.debugTable}}),getCanPreviousPage:()=>e.getState().pagination.pageIndex>0,getCanNextPage:()=>{const{pageIndex:r}=e.getState().pagination,i=e.getPageCount();return i===-1?!0:i===0?!1:r<i-1},previousPage:()=>e.setPageIndex(r=>r-1),nextPage:()=>e.setPageIndex(r=>r+1),getPrePaginationRowModel:()=>e.getExpandedRowModel(),getPaginationRowModel:()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),getPageCount:()=>{var r;return(r=e.options.pageCount)!=null?r:Math.ceil(e.getPrePaginationRowModel().rows.length/e.getState().pagination.pageSize)}}}},Dl=()=>({left:[],right:[]}),xR={getInitialState:e=>({columnPinning:Dl(),...e}),getDefaultOptions:e=>({onColumnPinningChange:on("columnPinning",e)}),createColumn:(e,t)=>({pin:n=>{const r=e.getLeafColumns().map(i=>i.id).filter(Boolean);t.setColumnPinning(i=>{var a,o;if(n==="right"){var s,u;return{left:((s=i==null?void 0:i.left)!=null?s:[]).filter(p=>!(r!=null&&r.includes(p))),right:[...((u=i==null?void 0:i.right)!=null?u:[]).filter(p=>!(r!=null&&r.includes(p))),...r]}}if(n==="left"){var d,f;return{left:[...((d=i==null?void 0:i.left)!=null?d:[]).filter(p=>!(r!=null&&r.includes(p))),...r],right:((f=i==null?void 0:i.right)!=null?f:[]).filter(p=>!(r!=null&&r.includes(p)))}}return{left:((a=i==null?void 0:i.left)!=null?a:[]).filter(p=>!(r!=null&&r.includes(p))),right:((o=i==null?void 0:i.right)!=null?o:[]).filter(p=>!(r!=null&&r.includes(p)))}})},getCanPin:()=>e.getLeafColumns().some(r=>{var i,a;return((i=r.columnDef.enablePinning)!=null?i:!0)&&((a=t.options.enablePinning)!=null?a:!0)}),getIsPinned:()=>{const n=e.getLeafColumns().map(s=>s.id),{left:r,right:i}=t.getState().columnPinning,a=n.some(s=>r==null?void 0:r.includes(s)),o=n.some(s=>i==null?void 0:i.includes(s));return a?"left":o?"right":!1},getPinnedIndex:()=>{var n,r,i;const a=e.getIsPinned();return a?(n=(r=t.getState().columnPinning)==null||(i=r[a])==null?void 0:i.indexOf(e.id))!=null?n:-1:0}}),createRow:(e,t)=>({getCenterVisibleCells:Le(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,r,i)=>{const a=[...r!=null?r:[],...i!=null?i:[]];return n.filter(o=>!a.includes(o.column.id))},{key:process.env.NODE_ENV==="production"&&"row.getCenterVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}}),getLeftVisibleCells:Le(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,,],(n,r)=>(r!=null?r:[]).map(a=>n.find(o=>o.column.id===a)).filter(Boolean).map(a=>({...a,position:"left"})),{key:process.env.NODE_ENV==="production"&&"row.getLeftVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}}),getRightVisibleCells:Le(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,r)=>(r!=null?r:[]).map(a=>n.find(o=>o.column.id===a)).filter(Boolean).map(a=>({...a,position:"right"})),{key:process.env.NODE_ENV==="production"&&"row.getRightVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}})}),createTable:e=>({setColumnPinning:t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),resetColumnPinning:t=>{var n,r;return e.setColumnPinning(t?Dl():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:Dl())},getIsSomeColumnsPinned:t=>{var n;const r=e.getState().columnPinning;if(!t){var i,a;return Boolean(((i=r.left)==null?void 0:i.length)||((a=r.right)==null?void 0:a.length))}return Boolean((n=r[t])==null?void 0:n.length)},getLeftLeafColumns:Le(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n!=null?n:[]).map(r=>t.find(i=>i.id===r)).filter(Boolean),{key:process.env.NODE_ENV==="development"&&"getLeftLeafColumns",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugColumns}}),getRightLeafColumns:Le(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n!=null?n:[]).map(r=>t.find(i=>i.id===r)).filter(Boolean),{key:process.env.NODE_ENV==="development"&&"getRightLeafColumns",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugColumns}}),getCenterLeafColumns:Le(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r)=>{const i=[...n!=null?n:[],...r!=null?r:[]];return t.filter(a=>!i.includes(a.id))},{key:process.env.NODE_ENV==="development"&&"getCenterLeafColumns",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugColumns}})})},_R={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:on("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>({setRowSelection:t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),resetRowSelection:t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},toggleAllRowsSelected:t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const r={...n},i=e.getPreGroupedRowModel().flatRows;return t?i.forEach(a=>{!a.getCanSelect()||(r[a.id]=!0)}):i.forEach(a=>{delete r[a.id]}),r})},toggleAllPageRowsSelected:t=>e.setRowSelection(n=>{const r=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),i={...n};return e.getRowModel().rows.forEach(a=>{Rl(i,a.id,r,e)}),i}),getPreSelectedRowModel:()=>e.getCoreRowModel(),getSelectedRowModel:Le(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?kl(e,n):{rows:[],flatRows:[],rowsById:{}},{key:process.env.NODE_ENV==="development"&&"getSelectedRowModel",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugTable}}),getFilteredSelectedRowModel:Le(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?kl(e,n):{rows:[],flatRows:[],rowsById:{}},{key:process.env.NODE_ENV==="production"&&"getFilteredSelectedRowModel",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugTable}}),getGroupedSelectedRowModel:Le(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?kl(e,n):{rows:[],flatRows:[],rowsById:{}},{key:process.env.NODE_ENV==="production"&&"getGroupedSelectedRowModel",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugTable}}),getIsAllRowsSelected:()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=Boolean(t.length&&Object.keys(n).length);return r&&t.some(i=>i.getCanSelect()&&!n[i.id])&&(r=!1),r},getIsAllPageRowsSelected:()=>{const t=e.getPaginationRowModel().flatRows,{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some(i=>!n[i.id])&&(r=!1),r},getIsSomeRowsSelected:()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n<e.getFilteredRowModel().flatRows.length},getIsSomePageRowsSelected:()=>{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.some(n=>n.getIsSelected()||n.getIsSomeSelected())},getToggleAllRowsSelectedHandler:()=>t=>{e.toggleAllRowsSelected(t.target.checked)},getToggleAllPageRowsSelectedHandler:()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}}),createRow:(e,t)=>({toggleSelected:n=>{const r=e.getIsSelected();t.setRowSelection(i=>{if(n=typeof n<"u"?n:!r,r===n)return i;const a={...i};return Rl(a,e.id,n,t),a})},getIsSelected:()=>{const{rowSelection:n}=t.getState();return Pl(e,n)},getIsSomeSelected:()=>{const{rowSelection:n}=t.getState();return Mp(e,n)==="some"},getIsAllSubRowsSelected:()=>{const{rowSelection:n}=t.getState();return Mp(e,n)==="all"},getCanSelect:()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},getCanSelectSubRows:()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},getCanMultiSelect:()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},getToggleSelectedHandler:()=>{const n=e.getCanSelect();return r=>{var i;!n||e.toggleSelected((i=r.target)==null?void 0:i.checked)}}})},Rl=(e,t,n,r)=>{var i;const a=r.getRow(t);n?(a.getCanMultiSelect()||Object.keys(e).forEach(o=>delete e[o]),a.getCanSelect()&&(e[t]=!0)):delete e[t],(i=a.subRows)!=null&&i.length&&a.getCanSelectSubRows()&&a.subRows.forEach(o=>Rl(e,o.id,n,r))};function kl(e,t){const n=e.getState().rowSelection,r=[],i={},a=function(o,s){return o.map(u=>{var d;const f=Pl(u,n);if(f&&(r.push(u),i[u.id]=u),(d=u.subRows)!=null&&d.length&&(u={...u,subRows:a(u.subRows)}),f)return u}).filter(Boolean)};return{rows:a(t.rows),flatRows:r,rowsById:i}}function Pl(e,t){var n;return(n=t[e.id])!=null?n:!1}function Mp(e,t,n){if(e.subRows&&e.subRows.length){let r=!0,i=!1;return e.subRows.forEach(a=>{i&&!r||(Pl(a,t)?i=!0:r=!1)}),r?"all":i?"some":!1}return!1}const Al=/([0-9]+)/gm,ER=(e,t,n)=>Dp(Yn(e.getValue(n)).toLowerCase(),Yn(t.getValue(n)).toLowerCase()),TR=(e,t,n)=>Dp(Yn(e.getValue(n)),Yn(t.getValue(n))),OR=(e,t,n)=>Il(Yn(e.getValue(n)).toLowerCase(),Yn(t.getValue(n)).toLowerCase()),MR=(e,t,n)=>Il(Yn(e.getValue(n)),Yn(t.getValue(n))),DR=(e,t,n)=>{const r=e.getValue(n),i=t.getValue(n);return r>i?1:r<i?-1:0},RR=(e,t,n)=>Il(e.getValue(n),t.getValue(n));function Il(e,t){return e===t?0:e>t?1:-1}function Yn(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function Dp(e,t){const n=e.split(Al).filter(Boolean),r=t.split(Al).filter(Boolean);for(;n.length&&r.length;){const i=n.shift(),a=r.shift(),o=parseInt(i,10),s=parseInt(a,10),u=[o,s].sort();if(isNaN(u[0])){if(i>a)return 1;if(a>i)return-1;continue}if(isNaN(u[1]))return isNaN(o)?-1:1;if(o>s)return 1;if(s>o)return-1}return n.length-r.length}const hi={alphanumeric:ER,alphanumericCaseSensitive:TR,text:OR,textCaseSensitive:MR,datetime:DR,basic:RR},Rp=[hR,{getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:on("columnVisibility",e)}),createColumn:(e,t)=>({toggleVisibility:n=>{e.getCanHide()&&t.setColumnVisibility(r=>({...r,[e.id]:n!=null?n:!e.getIsVisible()}))},getIsVisible:()=>{var n,r;return(n=(r=t.getState().columnVisibility)==null?void 0:r[e.id])!=null?n:!0},getCanHide:()=>{var n,r;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((r=t.options.enableHiding)!=null?r:!0)},getToggleVisibilityHandler:()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}}),createRow:(e,t)=>({_getAllVisibleCells:Le(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(r=>r.column.getIsVisible()),{key:process.env.NODE_ENV==="production"&&"row._getAllVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}}),getVisibleCells:Le(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,r,i)=>[...n,...r,...i],{key:process.env.NODE_ENV==="development"&&"row.getVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}})}),createTable:e=>{const t=(n,r)=>Le(()=>[r(),r().filter(i=>i.getIsVisible()).map(i=>i.id).join("_")],i=>i.filter(a=>a.getIsVisible==null?void 0:a.getIsVisible()),{key:n,debug:()=>{var i;return(i=e.options.debugAll)!=null?i:e.options.debugColumns}});return{getVisibleFlatColumns:t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),getVisibleLeafColumns:t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),getLeftVisibleLeafColumns:t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),getRightVisibleLeafColumns:t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),getCenterVisibleLeafColumns:t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),setColumnVisibility:n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),resetColumnVisibility:n=>{var r;e.setColumnVisibility(n?{}:(r=e.initialState.columnVisibility)!=null?r:{})},toggleAllColumnsVisible:n=>{var r;n=(r=n)!=null?r:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((i,a)=>({...i,[a.id]:n||!(a.getCanHide!=null&&a.getCanHide())}),{}))},getIsAllColumnsVisible:()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),getIsSomeColumnsVisible:()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),getToggleAllColumnsVisibilityHandler:()=>n=>{var r;e.toggleAllColumnsVisible((r=n.target)==null?void 0:r.checked)}}}},SR,xR,yR,{getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto"}),getDefaultOptions:e=>({onSortingChange:on("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>({getAutoSortingFn:()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const i of n){const a=i==null?void 0:i.getValue(e.id);if(Object.prototype.toString.call(a)==="[object Date]")return hi.datetime;if(typeof a=="string"&&(r=!0,a.split(Al).length>1))return hi.alphanumeric}return r?hi.text:hi.basic},getAutoSortDir:()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof(n==null?void 0:n.getValue(e.id))=="string"?"asc":"desc"},getSortingFn:()=>{var n,r;if(!e)throw new Error;return ha(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(r=t.options.sortingFns)==null?void 0:r[e.columnDef.sortingFn])!=null?n:hi[e.columnDef.sortingFn]},toggleSorting:(n,r)=>{const i=e.getNextSortingOrder(),a=typeof n<"u"&&n!==null;t.setSorting(o=>{const s=o==null?void 0:o.find(g=>g.id===e.id),u=o==null?void 0:o.findIndex(g=>g.id===e.id);let d=[],f,p=a?n:i==="desc";if(o!=null&&o.length&&e.getCanMultiSort()&&r?s?f="toggle":f="add":o!=null&&o.length&&u!==o.length-1?f="replace":s?f="toggle":f="replace",f==="toggle"&&(a||i||(f="remove")),f==="add"){var h;d=[...o,{id:e.id,desc:p}],d.splice(0,d.length-((h=t.options.maxMultiSortColCount)!=null?h:Number.MAX_SAFE_INTEGER))}else f==="toggle"?d=o.map(g=>g.id===e.id?{...g,desc:p}:g):f==="remove"?d=o.filter(g=>g.id!==e.id):d=[{id:e.id,desc:p}];return d})},getFirstSortDir:()=>{var n,r;return((n=(r=e.columnDef.sortDescFirst)!=null?r:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},getNextSortingOrder:n=>{var r,i;const a=e.getFirstSortDir(),o=e.getIsSorted();return o?o!==a&&((r=t.options.enableSortingRemoval)!=null?r:!0)&&(n&&(i=t.options.enableMultiRemove)!=null?i:!0)?!1:o==="desc"?"asc":"desc":a},getCanSort:()=>{var n,r;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((r=t.options.enableSorting)!=null?r:!0)&&!!e.accessorFn},getCanMultiSort:()=>{var n,r;return(n=(r=e.columnDef.enableMultiSort)!=null?r:t.options.enableMultiSort)!=null?n:!!e.accessorFn},getIsSorted:()=>{var n;const r=(n=t.getState().sorting)==null?void 0:n.find(i=>i.id===e.id);return r?r.desc?"desc":"asc":!1},getSortIndex:()=>{var n,r;return(n=(r=t.getState().sorting)==null?void 0:r.findIndex(i=>i.id===e.id))!=null?n:-1},clearSorting:()=>{t.setSorting(n=>n!=null&&n.length?n.filter(r=>r.id!==e.id):[])},getToggleSortingHandler:()=>{const n=e.getCanSort();return r=>{!n||(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}}),createTable:e=>({setSorting:t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),resetSorting:t=>{var n,r;e.setSorting(t?[]:(n=(r=e.initialState)==null?void 0:r.sorting)!=null?n:[])},getPreSortedRowModel:()=>e.getGroupedRowModel(),getSortedRowModel:()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())})},bR,mR,wR,_R,gR];function kR(e){var t;(e.debugAll||e.debugTable)&&console.info("Creating Table Instance...");let n={_features:Rp};const r=n._features.reduce((f,p)=>Object.assign(f,p.getDefaultOptions==null?void 0:p.getDefaultOptions(n)),{}),i=f=>n.options.mergeOptions?n.options.mergeOptions(r,f):{...r,...f};let o={...{},...(t=e.initialState)!=null?t:{}};n._features.forEach(f=>{var p;o=(p=f.getInitialState==null?void 0:f.getInitialState(o))!=null?p:o});const s=[];let u=!1;const d={_features:Rp,options:{...r,...e},initialState:o,_queue:f=>{s.push(f),u||(u=!0,Promise.resolve().then(()=>{for(;s.length;)s.shift()();u=!1}).catch(p=>setTimeout(()=>{throw p})))},reset:()=>{n.setState(n.initialState)},setOptions:f=>{const p=Un(f,n.options);n.options=i(p)},getState:()=>n.options.state,setState:f=>{n.options.onStateChange==null||n.options.onStateChange(f)},_getRowId:(f,p,h)=>{var g;return(g=n.options.getRowId==null?void 0:n.options.getRowId(f,p,h))!=null?g:""+(h?[h.id,p].join("."):p)},getCoreRowModel:()=>(n._getCoreRowModel||(n._getCoreRowModel=n.options.getCoreRowModel(n)),n._getCoreRowModel()),getRowModel:()=>n.getPaginationRowModel(),getRow:f=>{const p=n.getRowModel().rowsById[f];if(!p)throw process.env.NODE_ENV!=="production"?new Error("getRow expected an ID, but got "+f):new Error;return p},_getDefaultColumnDef:Le(()=>[n.options.defaultColumn],f=>{var p;return f=(p=f)!=null?p:{},{header:h=>{const g=h.header.column.columnDef;return g.accessorKey?g.accessorKey:g.accessorFn?g.id:null},cell:h=>{var g,v;return(g=(v=h.renderValue())==null||v.toString==null?void 0:v.toString())!=null?g:null},...n._features.reduce((h,g)=>Object.assign(h,g.getDefaultColumnDef==null?void 0:g.getDefaultColumnDef()),{}),...f}},{debug:()=>{var f;return(f=n.options.debugAll)!=null?f:n.options.debugColumns},key:process.env.NODE_ENV==="development"&&"getDefaultColumnDef"}),_getColumnDefs:()=>n.options.columns,getAllColumns:Le(()=>[n._getColumnDefs()],f=>{const p=function(h,g,v){return v===void 0&&(v=0),h.map(m=>{const C=pR(n,m,v,g),b=m;return C.columns=b.columns?p(b.columns,C,v+1):[],C})};return p(f)},{key:process.env.NODE_ENV==="development"&&"getAllColumns",debug:()=>{var f;return(f=n.options.debugAll)!=null?f:n.options.debugColumns}}),getAllFlatColumns:Le(()=>[n.getAllColumns()],f=>f.flatMap(p=>p.getFlatColumns()),{key:process.env.NODE_ENV==="development"&&"getAllFlatColumns",debug:()=>{var f;return(f=n.options.debugAll)!=null?f:n.options.debugColumns}}),_getAllFlatColumnsById:Le(()=>[n.getAllFlatColumns()],f=>f.reduce((p,h)=>(p[h.id]=h,p),{}),{key:process.env.NODE_ENV==="development"&&"getAllFlatColumnsById",debug:()=>{var f;return(f=n.options.debugAll)!=null?f:n.options.debugColumns}}),getAllLeafColumns:Le(()=>[n.getAllColumns(),n._getOrderColumnsFn()],(f,p)=>{let h=f.flatMap(g=>g.getLeafColumns());return p(h)},{key:process.env.NODE_ENV==="development"&&"getAllLeafColumns",debug:()=>{var f;return(f=n.options.debugAll)!=null?f:n.options.debugColumns}}),getColumn:f=>{const p=n._getAllFlatColumnsById()[f];if(!p)throw process.env.NODE_ENV!=="production"&&console.warn("[Table] Column with id "+f+" does not exist."),new Error;return p}};return Object.assign(n,d),n._features.forEach(f=>Object.assign(n,f.createTable==null?void 0:f.createTable(n))),n}function PR(e,t,n,r){const i=()=>{var o;return(o=a.getValue())!=null?o:e.options.renderFallbackValue},a={id:t.id+"_"+n.id,row:t,column:n,getValue:()=>t.getValue(r),renderValue:i,getContext:Le(()=>[e,n,t,a],(o,s,u,d)=>({table:o,column:s,row:u,cell:d,getValue:d.getValue,renderValue:d.renderValue}),{key:process.env.NODE_ENV==="development"&&"cell.getContext",debug:()=>e.options.debugAll})};return e._features.forEach(o=>{Object.assign(a,o.createCell==null?void 0:o.createCell(a,n,t,e))},{}),a}const AR=(e,t,n,r,i,a)=>{let o={id:t,index:r,original:n,depth:i,_valuesCache:{},getValue:s=>{if(o._valuesCache.hasOwnProperty(s))return o._valuesCache[s];const u=e.getColumn(s);if(!!u.accessorFn)return o._valuesCache[s]=u.accessorFn(o.original,r),o._valuesCache[s]},renderValue:s=>{var u;return(u=o.getValue(s))!=null?u:e.options.renderFallbackValue},subRows:a!=null?a:[],getLeafRows:()=>fR(o.subRows,s=>s.subRows),getAllCells:Le(()=>[e.getAllLeafColumns()],s=>s.map(u=>PR(e,o,u,u.id)),{key:process.env.NODE_ENV==="development"&&"row.getAllCells",debug:()=>{var s;return(s=e.options.debugAll)!=null?s:e.options.debugRows}}),_getAllCellsByColumnId:Le(()=>[o.getAllCells()],s=>s.reduce((u,d)=>(u[d.column.id]=d,u),{}),{key:process.env.NODE_ENV==="production"&&"row.getAllCellsByColumnId",debug:()=>{var s;return(s=e.options.debugAll)!=null?s:e.options.debugRows}})};for(let s=0;s<e._features.length;s++){const u=e._features[s];Object.assign(o,u==null||u.createRow==null?void 0:u.createRow(o,e))}return o};function IR(){return{accessor:(e,t)=>typeof e=="function"?{...t,accessorFn:e}:{...t,accessorKey:e},display:e=>e,group:e=>e}}function $R(){return e=>Le(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(i,a,o){a===void 0&&(a=0);const s=[];for(let d=0;d<i.length;d++){const f=AR(e,e._getRowId(i[d],d,o),i[d],d,a);if(n.flatRows.push(f),n.rowsById[f.id]=f,s.push(f),e.options.getSubRows){var u;f.originalSubRows=e.options.getSubRows(i[d],d),(u=f.originalSubRows)!=null&&u.length&&(f.subRows=r(f.originalSubRows,a+1,f))}}return s};return n.rows=r(t),n},{key:process.env.NODE_ENV==="development"&&"getRowModel",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugTable},onChange:()=>{e._autoResetPageIndex()}})}function NR(){return e=>Le(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const r=e.getState().sorting,i=[],a=r.filter(u=>e.getColumn(u.id).getCanSort()),o={};a.forEach(u=>{const d=e.getColumn(u.id);o[u.id]={sortUndefined:d.columnDef.sortUndefined,invertSorting:d.columnDef.invertSorting,sortingFn:d.getSortingFn()}});const s=u=>{const d=u.slice();return d.sort((f,p)=>{for(let g=0;g<a.length;g+=1){var h;const v=a[g],m=o[v.id],C=(h=v==null?void 0:v.desc)!=null?h:!1;if(m.sortUndefined){const w=f.getValue(v.id),S=p.getValue(v.id),D=typeof w>"u",_=typeof S>"u";if(D||_)return D&&_?0:D?m.sortUndefined:-m.sortUndefined}let b=m.sortingFn(f,p,v.id);if(b!==0)return C&&(b*=-1),m.invertSorting&&(b*=-1),b}return f.index-p.index}),d.forEach(f=>{i.push(f),!(!f.subRows||f.subRows.length<=1)&&(f.subRows=s(f.subRows))}),d};return{rows:s(n.rows),flatRows:i,rowsById:n.rowsById}},{key:process.env.NODE_ENV==="development"&&"getSortedRowModel",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugTable},onChange:()=>{e._autoResetPageIndex()}})}function kp(e,t){return e?LR(e)?l(e,{...t}):e:null}function LR(e){return VR(e)||typeof e=="function"||FR(e)}function VR(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function FR(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function zR(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=E.useState(()=>({current:kR(t)})),[r,i]=E.useState(()=>n.current.initialState);return n.current.setOptions(a=>({...a,...e,state:{...r,...e.state},onStateChange:o=>{i(o),e.onStateChange==null||e.onStateChange(o)}})),n.current}function Pp(e,t,n){return Math.min(Math.max(e,t),n)}class jR{constructor(t){this.steps=t;const n=[],r=new Set;for(const i of t)r.has(i.to)||(n.push(i),r.add(i.to));if(n.sort((i,a)=>i.from-a.from),n.length<2)throw new Error("MultiStepValueMapper requires at least 2 steps");this.steps=n}getLinearFunction(t,n){const r=(n.to-t.to)/(n.from-t.from),i=t.to-r*t.from;return a=>r*a+i}getStepFunctionForValue(t){let n=L.findLastIndex(this.steps,r=>r.from<=t);return n=Pp(n,0,this.steps.length-2),this.getLinearFunction(this.steps[n],this.steps[n+1])}mapValue(t){return Pp(this.getStepFunctionForValue(t)(t),0,100)}}const BR=({header:e,cx:t})=>y(c.Text,{className:t("table-head-cell",{"table-head-cell--sortable":e.column.getCanSort()}),onClick:e.column.getToggleSortingHandler(),children:[e.isPlaceholder?null:kp(e.column.columnDef.header,e.getContext()),l(GR,{direction:e.column.getIsSorted()})]}),GR=({direction:e})=>{switch(e){case"asc":return l(eE,{size:16});case"desc":return l(Z1,{size:"1em"});default:return null}},$l={id:"builtin:table:click-cell-content",displayName:"Click Cell Content",nameRender:UR,configRender:HR,payload:[{name:"row_index",description:"Index of the row that the cell belongs to",valueType:"number"},{name:"col_index",description:"Index of the column that the cell belongs to",valueType:"number"},{name:"row_data",description:"Data of the row that the cell belongs to",valueType:"object"}]},KR={column:""};function Ap(e){const{value:t}=Ue(e.instanceData,"config");return t?t.columns.map((n,r)=>({label:n.label,value:r.toString()})):[]}function qR(e){return L.isEmpty(e)?[]:Object.keys(e[0]).map(t=>({label:t,value:t}))}function HR(e){const t=Ap(e.instance),n=qR(e.sampleData),r=t.length>0?t:n,{value:i,set:a}=Ue(e.trigger.triggerData,"config"),{column:o}=L.defaults({},i,KR),s=u=>{isNaN(+u)?a({column:u}):a({column:+u})};return l(c.Select,{clearable:!1,data:r,label:"Choose a column",value:o.toString(),onChange:s})}function WR(e,t){return e?L.isNumber(e.column)?`Click cell of ${t[e.column].label}`:`Click cell of ${e.column}`:"Click cell content (click to config)"}function UR(e){const t=Ap(e.instance),{value:n}=Ue(e.trigger.triggerData,"config");return l(c.Text,{children:WR(n,t)})}const YR=c.createStyles(e=>({root:{overflow:"auto","& .table-head-cell":{display:"flex",flexFlow:"row nowrap",alignItems:"center",whiteSpace:"nowrap","&.table-head-cell--sortable":{cursor:"pointer",userSelect:"none"}},"&.table-highlight-on-hover tr":{transition:"background-color 0.2s","&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[5]:e.colors.gray[0]}}},thead:{background:e.colorScheme==="dark"?e.colors.dark[7]:e.white,position:"sticky",top:0}})),XR=c.createStyles((e,t)=>({content:{display:"flex",alignItems:"center",justifyContent:"flex-start",".table-cell-text":{whiteSpace:"nowrap",marginLeft:e.spacing.xs,cursor:t.clickable?"pointer":"default",textDecoration:t.clickable?"underline":"none"}}}));function QR(e){return e?Vr.default(e).oklch()[0]>.7?"black":"white":"inherit"}function ZR(e){const t=e.tableCellContext.bgColor;return{backgroundColor:t,color:QR(t)}}function ya(e){const t=e.tableCellContext.isClickable(),n=XR({clickable:t});return l("div",{className:n.classes.content,style:{...ZR(e)},children:l(c.Text,{className:"table-cell-text",onClick:e.tableCellContext.getClickHandler(),children:l("span",{children:e.children})})})}function JR(e){return l(ya,{...e,children:e.value})}function ek(e){return l(ya,{...e,children:e.value})}function tk(e){const t=$t.default(e.value).format({thousandSeparated:!0});return l(ya,{...e,children:t})}function nk(e){const t=$t.default(e.value).format({output:"percent",mantissa:3});return l(ya,{...e,children:t})}function rk(e){const t=e.value,n=e.func_content;return n?new Function(`return ${n}`)()({value:t}):t}function ik(e){switch(e.type){case yn.string:return l(JR,{...e});case yn.eloc:return l(ek,{...e});case yn.number:return l(tk,{...e});case yn.percentage:return l(nk,{...e});case yn.custom:return l(rk,{...e})}}const ak=e=>{const t=Ir(e),n=Ar(t.triggerManager,$l.id),{colorManager:r}=x.useContext(bn);return x.useCallback(i=>new lk(e.getColIndex,i,n,t,r),[n,t,e.getColIndex])};function ok({context:e,instance:t}){var V,F,R;const n=(V=e.data)!=null?V:[],{height:r,width:i}=e.viewport,{value:a=Sl}=Ue(e.instanceData,"config"),{use_raw_columns:o,columns:s,...u}=a,{classes:d,cx:f}=YR(),p=j.default.useMemo(()=>o?Object.keys(n[0]).map(M=>({id:M,label:M,value_field:M,value_type:yn.string})):s,[o,s,n]),h=ak({getColIndex:x.useCallback(M=>p.indexOf(M.column.columnDef.meta),[p]),vizManager:e.vizManager,instance:t}),g=x.useMemo(()=>{const M=IR(),I=p.map($=>M.accessor($.value_field,{cell:z=>l(ik,{tableCellContext:h(z.cell),value:z.getValue(),type:$.value_type,func_content:$.func_content}),header:$.label,enableSorting:!0,meta:$}));return[M.display({id:"#index",cell:$=>$.row.index+1,header:"#",size:10*(n.length.toString().length+1)}),...I]},[p,h]),[v,m]=x.useState([]),C=zR({data:n,state:{sorting:v},onSortingChange:m,columns:g,getCoreRowModel:$R(),getSortedRowModel:NR()}),{rows:b}=C.getRowModel(),w=j.default.useRef(null),S=Fh.useVirtual({parentRef:w,size:b.length,estimateSize:x.useCallback(()=>28,[]),overscan:20}),{virtualItems:D,totalSize:_}=S,P=D.length>0&&((F=D==null?void 0:D[0])==null?void 0:F.start)||0,N=D.length>0?_-(((R=D==null?void 0:D[D.length-1])==null?void 0:R.end)||0):0;return l("div",{ref:w,style:{height:r,width:i},className:f(d.root,{"table-highlight-on-hover":a.highlightOnHover}),children:y(c.Table,{sx:{maxHeight:r},...u,striped:a.striped,children:[l("thead",{className:d.thead,children:C.getHeaderGroups().map(M=>l("tr",{children:M.headers.map(I=>l("th",{style:{width:I.getSize()},children:l(BR,{header:I,cx:f})},I.id))},M.id))}),y("tbody",{children:[P>0&&l("tr",{children:l("td",{style:{height:`${P}px`}})}),D.map(M=>{const I=b[M.index];return l("tr",{children:I.getVisibleCells().map(A=>l("td",{children:kp(A.column.columnDef.cell,A.getContext())},A.id))},I.id)}),N>0&&l("tr",{children:l("td",{style:{height:`${N}px`}})})]})]})})}class lk{constructor(t,n,r,i,a){this.getColIndex=t,this.cell=n,this.triggers=r,this.interactionManager=i,this.colorManager=a}getClickHandler(){const t=this.getRelatedTrigger();if(t.length!==0)return()=>{const n={row_data:this.cell.row.original,row_index:this.cell.row.index,col_index:this.getColIndex(this.cell)};for(const r of t)this.interactionManager.runInteraction(r.id,n)}}getRelatedTrigger(){return this.triggers.filter(n=>n.schemaRef===$l.id).filter(n=>{const r=this.getColIndex(this.cell),i=L.get(this.cell.column.columnDef.meta,"value_field"),a=L.get(n.config,"column");return a==r||a==i})}isClickable(){return this.getRelatedTrigger().length>0}get columnConf(){return this.cell.column.columnDef.meta}get bgColor(){const t=this.columnConf.cellBackgroundColor;if(!t||t==="none")return;if(L.isString(t))return t;const n=+this.cell.getValue();if(isFinite(n)){const r=this.colorManager.decodeInterpolation(t.interpolation),a=new jR(t.steps).mapValue(n);return r==null?void 0:r.getColor(a)}}}const Ip=c.createStyles(()=>({palette:{display:"flex",flexFlow:"row nowrap"},paletteItem:{".palette-value":{height:24,overflow:"visible",width:36},".palette-item":{width:"36px",height:36*.618,cursor:"pointer",transition:"transform 100ms ease-in-out","&:hover":{boxShadow:"0 0 0 2px var(--shadow-color)",borderRadius:2,transform:"scale(1.2)"}}}})),sk=[{from:0,to:0},{from:100,to:100}];class uk{constructor(){pe(this,"steps",new Map);pe(this,"interpolation");pe(this,"onChange");kt.makeAutoObservable(this,{steps:kt.observable},{deep:!1}),kt.reaction(()=>kt.toJS(this.steps),()=>{this.notifyStepChange()})}setSteps(t){for(const n of t)this.steps.set(n.to,n.from)}notifyStepChange(){var t;(t=this.onChange)==null||t.call(this,Array.from(this.steps.entries()).map(([n,r])=>({to:n,from:r})).sort((n,r)=>n.to-r.to||n.from-r.from))}fromProps(t){t.steps.length<2?this.setSteps(sk):this.setSteps(t.steps),this.interpolation=t.interpolation,this.onChange=t.onChange}changeStep(t,n){t==null?this.steps.delete(n):this.steps.set(n,t)}getStepFromValue(t){return this.steps.get(t)}}function ck(e){const{onChange:t,color:n,index:r,value:i}=e,{classes:a}=Ip(),[o,s]=x.useState(i),[u,{setTrue:d,setFalse:f}]=Ze.useBoolean(!1),p=r%2===1,h=p&&i!=null,g=!p&&i!=null,v=`map ${i} to color ${r}`,m=()=>{s(i),f()},C=()=>{f(),t==null||t(o)},b=$t.default(i).format({average:!0});return y("div",{"data-testid":`palette-item-${r}`,className:a.paletteItem,children:[l(c.Text,{title:v,style:{opacity:h?1:0},color:"dimmed",size:"sm",className:"palette-value--up palette-value",children:b}),y(c.Popover,{width:200,trapFocus:!0,opened:u,onClose:f,children:[l(c.Popover.Target,{children:l("div",{"data-testid":"palette-item-target",className:"palette-item",onClick:d,style:{"--shadow-color":Vr.default(n).alpha(.5).hex(),backgroundColor:n}})}),l(c.Popover.Dropdown,{children:y(c.Stack,{children:[l(c.NumberInput,{size:"xs",label:"Map a value to this color",value:o,onChange:s}),y(c.Group,{position:"right",children:[l(c.Button,{variant:"subtle",size:"xs",onClick:m,children:"Cancel"}),l(c.Button,{"data-testid":"palette-item-ok",size:"xs",onClick:C,children:"OK"})]})]})})]}),l(c.Text,{title:v,style:{opacity:g?1:0},color:"dimmed",size:"sm",className:"palette-value--bottom palette-value",children:b})]})}const dk=X.observer(({model:e})=>{const{classes:t}=Ip(),n=L.range(0,13,1).map(r=>100/12*r).map(r=>[e.interpolation.getColor(r),r]);return l("div",{className:t.palette,children:n.map(([r,i],a)=>l(ck,{index:a,color:r,value:e.getStepFromValue(i),onChange:o=>e.changeStep(o,i)},r))})}),fk=X.observer(function(t){const n=Ze.useCreation(()=>new uk,[]);return x.useEffect(()=>{n.fromProps(t)}),n.interpolation==null?null:l(dk,{model:n})}),pk=e=>{const{value:t,onChange:n,colorManager:r}=e,i=r.getColorInterpolations(),[a,o]=x.useState(t),s=r.decodeInterpolation(a.interpolation)||i[0],[u,{setTrue:d,setFalse:f}]=Ze.useBoolean(),p=i.map(C=>({label:C.displayName,value:r.encodeColor(C),group:C.category}));function h(C){C&&o(b=>({...b,interpolation:C}))}const g=()=>{f(),n==null||n(kt.toJS(a))};function v(C){o(b=>({...b,steps:C}))}const m=()=>{f(),o(t)};return y(Oe,{children:[l(c.Button,{variant:"outline",onClick:d,children:s==null?void 0:s.displayName}),l(c.Modal,{size:508,title:"Setup color interpolation",opened:u,onClose:f,children:u&&y(c.Stack,{"data-testid":"color-interpolation-modal",children:[l(c.Select,{label:"Color style",value:a.interpolation,data:p,onChange:h}),l(fk,{steps:a.steps,interpolation:s,onChange:v}),y(c.Group,{position:"right",children:[l(c.Button,{onClick:m,variant:"subtle",children:"Cancel"}),l(c.Button,{onClick:g,children:"OK"})]})]})})]})},hk=["static","interpolation","none"],gk=[{from:0,to:0},{from:100,to:100}];function $p(e){return e?L.isString(e)?e==="none"?"none":"static":"interpolation":"none"}function vk(e,t){var n;return $p(t)==="static"?t:(n=e.getStaticColors()[0])==null?void 0:n.value}function mk(e,t){return L.isObject(t)?t:{steps:gk,interpolation:e.encodeColor(e.getColorInterpolations()[0])}}const yk=e=>{const{colorManager:t}=x.useContext(bn),[n,r]=x.useState($p(e.value)),[i,a]=x.useState(vk(t,e.value)),o=Ze.useLatest(i),[s,u]=x.useState(mk(t,e.value)),d=Ze.useLatest(s),f=g=>{var v,m,C;r(g||"none"),g==="static"?(v=e.onChange)==null||v.call(e,o.current):g==="none"||!g?(m=e.onChange)==null||m.call(e,"none"):(C=e.onChange)==null||C.call(e,d.current)},p=g=>{var v;a(g),(v=e.onChange)==null||v.call(e,g)},h=g=>{var v;u(g),(v=e.onChange)==null||v.call(e,g)};return y(c.Stack,{align:"stretch",children:[l(c.Select,{label:"Cell background",value:n||"none",onChange:f,data:hk}),n==="static"&&l(mn,{value:i,onChange:p}),n==="interpolation"&&l(pk,{colorManager:t,value:s,onChange:h})]})},bk=Object.values(yn).map(e=>({label:e,value:e}));function Ck({label:e,value:t,onChange:n,sx:r}){return l(c.Select,{label:e,data:bk,value:t,onChange:n,sx:r})}const Sk=x.forwardRef(({value:e,onChange:t},n)=>{const[r,{setTrue:i,setFalse:a}]=Ze.useBoolean(),[o,s]=x.useState(e),u=()=>{a(),t(o)},d=()=>{a(),s(e)},f=()=>{s(mp)};return x.useEffect(()=>{s(e)},[e]),y(Oe,{children:[l(c.Button,{variant:"filled",mt:24,onClick:i,sx:{flexGrow:0},children:"Custom Cell Content"}),l(c.Modal,{size:800,title:"Custom cell content",opened:r,onClose:a,closeOnClickOutside:!1,withCloseButton:!1,children:r&&y(c.Stack,{children:[l(c.Box,{sx:{position:"relative"},children:l(Jn.default,{height:"500px",defaultLanguage:"javascript",value:o,onChange:p=>s(p!=null?p:""),theme:"vs-dark",options:{minimap:{enabled:!1}}})}),y(c.Group,{position:"apart",children:[l(c.Button,{onClick:f,color:"red",leftIcon:l(W.Recycle,{size:20}),children:"Rest"}),y(c.Group,{position:"right",children:[l(c.Button,{onClick:d,variant:"subtle",children:"Cancel"}),l(c.Button,{onClick:u,children:"OK"})]})]})]})})]})}),wk=({control:e,index:t,watch:n,remove:r,column:i,data:a})=>{const o=n(`columns.${t}.value_type`);return y(c.Stack,{my:0,sx:{position:"relative"},children:[y(c.Group,{grow:!0,children:[l(k.Controller,{name:`columns.${t}.label`,control:e,render:({field:s})=>l(c.TextInput,{label:"Label",required:!0,id:`col-label-${t}`,sx:{flex:1},...s})}),l(k.Controller,{name:`columns.${t}.value_field`,control:e,render:({field:s})=>l(ot,{label:"Value Field",required:!0,data:a,...s})})]}),y(c.Group,{grow:!0,children:[l(k.Controller,{name:`columns.${t}.value_type`,control:e,render:({field:s})=>l(Ck,{label:"Value Type",sx:{flex:1},...s})}),o===yn.custom&&l(k.Controller,{name:`columns.${t}.func_content`,control:e,render:({field:s})=>{var u;return l(Sk,{value:(u=s.value)!=null?u:mp,onChange:d=>s.onChange(d!=null?d:"")})}})]}),l(k.Controller,{name:`columns.${t}.cellBackgroundColor`,control:e,render:({field:s})=>l(yk,{...s})}),l(c.Divider,{mb:4,mt:12,variant:"dashed"}),l(c.Button,{leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>r(t),children:"Delete this column"})]})},xk=({control:e,watch:t,data:n})=>{const{fields:r,append:i,remove:a,update:o}=k.useFieldArray({control:e,name:"columns"}),s=()=>{const d=bt.randomId();i({id:d,label:d,value_field:"value",value_type:yn.string})};t("columns");const u=t("use_raw_columns");return y(Oe,{children:[l(k.Controller,{name:"use_raw_columns",control:e,render:({field:d})=>l(c.Switch,{mt:20,label:"Use Original Data Columns",checked:d.value,onChange:f=>d.onChange(f.currentTarget.checked)})}),l(c.Divider,{mt:20,mb:10,variant:"dashed"}),!u&&y(c.Stack,{children:[l(c.Text,{my:0,children:"Custom Columns"}),y(c.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px",paddingTop:"6px"}},children:[y(c.Tabs.List,{children:[r.map((d,f)=>l(c.Tabs.Tab,{value:f.toString(),children:f+1},d.id)),l(c.Tabs.Tab,{onClick:s,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),r.map((d,f)=>l(c.Tabs.Panel,{value:f.toString(),children:l(wk,{control:e,watch:t,index:f,column:d,data:n,remove:a},f)},d.id))]})]})]})};function _k({control:e,watch:t,data:n}){return y(c.Stack,{spacing:"xs",children:[y(c.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:[l(k.Controller,{name:"horizontalSpacing",control:e,render:({field:r})=>l(c.TextInput,{label:"Horizontal Spacing",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...r})}),l(k.Controller,{name:"verticalSpacing",control:e,render:({field:r})=>l(c.TextInput,{label:"Vertical Spacing",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...r})})]}),l(c.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:l(k.Controller,{name:"fontSize",control:e,render:({field:r})=>l(c.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...r})})}),y(c.Group,{position:"apart",grow:!0,children:[l(k.Controller,{name:"striped",control:e,render:({field:r})=>l(c.Switch,{label:"Striped",checked:r.value,onChange:i=>r.onChange(i.currentTarget.checked)})}),l(k.Controller,{name:"highlightOnHover",control:e,render:({field:r})=>l(c.Switch,{label:"Highlight on hover",checked:r.value,onChange:i=>r.onChange(i.currentTarget.checked)})})]})]})}function Ek({columns:e,...t}){return{...t,columns:e.map(({id:n,...r})=>({id:n!=null?n:bt.randomId(),...r}))}}function Tk({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=e.data,i=x.useMemo(()=>L.defaultsDeep({},t,Sl),[t]),a=x.useMemo(()=>Ek(i),[i]);x.useEffect(()=>{!L.isEqual(i,a)&&(console.log("config malformed, resetting to defaults",i,a),n(a))},[i,a]);const{control:o,handleSubmit:s,watch:u,getValues:d,reset:f}=k.useForm({defaultValues:a});x.useEffect(()=>{f(a)},[a]);const p=d(),h=x.useMemo(()=>!L.isEqual(p,i),[p,i]);return y("form",{onSubmit:s(n),children:[y(c.Group,{position:"apart",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{children:"Table Config"}),l(c.ActionIcon,{type:"submit","aria-label":"save config",mr:5,variant:"filled",color:"blue",disabled:!h,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Tabs,{defaultValue:"Columns",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[y(c.Tabs.List,{children:[l(c.Tabs.Tab,{value:"Data",children:"Data"}),l(c.Tabs.Tab,{value:"Style",children:"Style"}),l(c.Tabs.Tab,{value:"Columns",children:"Columns"}),l(c.Tabs.Tab,{value:"Config JSON",children:"Config JSON"})]}),l(c.Tabs.Panel,{value:"Data",children:l(k.Controller,{name:"id_field",control:o,render:({field:g})=>l(ot,{label:"ID Field",required:!0,data:r,...g})})}),l(c.Tabs.Panel,{value:"Style",children:l(_k,{control:o,watch:u,data:r})}),l(c.Tabs.Panel,{value:"Columns",children:l(xk,{control:o,watch:u,data:r})}),y(c.Tabs.Panel,{value:"Config JSON",children:[l(c.Text,{weight:500,mb:"md",children:"Current Configuration:"}),l(In.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(d(),null,2)})]})]})]})}class Ok extends Ft{constructor(){super(...arguments);pe(this,"VERSION",2)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,n=>{const{columns:r,...i}=n;return{version:2,config:{...i,columns:r.map(({id:a,...o})=>({id:a!=null?a:bt.randomId(),...o}))}}})}}const Nl={createConfig(){return{version:2,config:L.cloneDeep(Sl)}},displayName:"Table",migrator:new Ok,name:"table",viewRender:ok,configRender:Tk,triggers:[$l]},Mk=()=>y("svg",{width:"64",height:"64",viewBox:"0 0 64 64",fill:"none",children:[l("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M22.49 27.79H14.47C13.55 27.79 12.81 28.53 12.81 29.45C12.81 30.37 13.55 31.11 14.47 31.11H22.49C23.41 31.11 24.15 30.37 24.15 29.45C24.15 28.54 23.41 27.79 22.49 27.79ZM34.32 31.28C35.22 31.32 35.7 31.82 35.74 32.76C35.78 33.54 35.37 34.3 34.51 35.04C33.52 35.9 33.03 36.95 33.03 38.19V38.81H34.82V38.25C34.78 37.59 35.07 37.02 35.68 36.52C37.12 35.41 37.82 34.15 37.78 32.75C37.66 30.53 36.5 29.35 34.32 29.23C32.3 29.23 31.05 30.46 30.55 32.93L32.53 33.55C32.82 32.04 33.42 31.28 34.32 31.28ZM35 39.93H32.84V42.21H35V39.93ZM14.83 36.42H18.54C19.46 36.42 20.2 37.17 20.2 38.08C20.2 39 19.46 39.74 18.54 39.74H10.52C9.6 39.74 8.86 39 8.86 38.08C8.86 37.61 9.06 37.19 9.37 36.89H5.66C4.74 36.89 4 36.15 4 35.23C4 34.31 4.74 33.57 5.66 33.57H13.68C14.6 33.57 15.34 34.31 15.34 35.23C15.34 35.7 15.14 36.12 14.83 36.42ZM50.94 36.85H58.74C59.66 36.85 60.4 37.59 60.41 38.51C60.41 39.43 59.67 40.17 58.75 40.17H54.26C54.56 40.47 54.74 40.88 54.74 41.34C54.74 42.26 54 43 53.08 43H50.94V36.85Z",fill:"#B8C0CC"}),l("path",{d:"M18.39 32.28H16.51V35.02H18.39V32.28Z",fill:"#9399A5"}),l("path",{d:"M46.87 15H20.69C18.38 15 16.5 16.88 16.5 19.19V26.22H18.38V23.45H49.18V47.68H18.38V41.07H16.5V49.55H51.05V19.19C51.06 16.88 49.18 15 46.87 15ZM39.46 20.73C38.81 20.73 38.29 20.2 38.29 19.56C38.29 18.92 38.82 18.39 39.46 18.39C40.11 18.39 40.63 18.92 40.63 19.56C40.63 20.2 40.11 20.73 39.46 20.73ZM43.22 20.73C42.57 20.73 42.05 20.2 42.05 19.56C42.05 18.92 42.58 18.39 43.22 18.39C43.87 18.39 44.39 18.92 44.39 19.56C44.39 20.2 43.87 20.73 43.22 20.73ZM46.97 20.73C46.32 20.73 45.8 20.2 45.8 19.56C45.8 18.92 46.33 18.39 46.97 18.39C47.62 18.39 48.14 18.92 48.14 19.56C48.14 20.2 47.62 20.73 46.97 20.73Z",fill:"#9399A5"})]});function Np(e,t){const n=De.default.get(e,t,"");if(n)throw new Error(n)}async function Dk(e,t,n,r={}){const i={"X-Requested-With":"XMLHttpRequest","Content-Type":r.string?"application/x-www-form-urlencoded":"application/json",...r.headers},a={baseURL:e,method:"POST",url:t,params:r.params,headers:i};return a.data=r.string?JSON.stringify(n):n,Oa.default(a).then(o=>o.data).catch(o=>Promise.reject(o))}const Rk=({conf:e,data:t})=>async()=>{const{expertSystemURL:n,path:r,goal:i,question:a}=e;if(!r||!i||!a)return;const o={dashboard:i,panel:a,data:t};try{const s=n.startsWith("http")?n:window.location.origin;return await Dk(s,`/expert/v3/devtable/${r}`,o,{})}catch(s){throw Np(s,"response.data.detail"),Np(s,"response.data.error"),console.error(s),s}},Ll={expertSystemURL:"",path:"",goal:"",question:""},Lp={ul:{paddingLeft:"2em",margin:"6px 0 0"},p:{margin:0}},Vp=({message:e})=>l(c.Box,{sx:Lp,children:l("div",{dangerouslySetInnerHTML:{__html:e},style:{fontSize:"14px",lineHeight:"32px",color:"#3D3E45"}})}),kk=({error:e,width:t,height:n})=>{const r=e.message;return r.startsWith("<")?l(Vp,{message:r}):l(c.Center,{sx:{width:t,height:n-25-20},children:y(c.Stack,{align:"center",spacing:20,children:[l(Mk,{}),l(Vp,{message:r})]})})};function Pk({context:e}){var d;const{value:t}=Ue(e.instanceData,"config"),n=x.useMemo(()=>L.defaultsDeep({},t,Ll),[t]),{width:r,height:i}=e.viewport,a=(d=e.data)!=null?d:[],{data:o,error:s,loading:u}=Ze.useRequest(Rk({conf:n,data:a}),{refreshDeps:[a,n]});return!r||!i||!n?null:u?l(c.Box,{sx:{position:"relative",height:i},children:l(c.LoadingOverlay,{visible:!0})}):s?l(kk,{error:s,width:r,height:i}):!o||!Array.isArray(o.replies)||o.replies.length===0?null:l(c.Box,{sx:Lp,children:o.replies.map((f,p)=>l("div",{dangerouslySetInnerHTML:{__html:f.interpretation.html},style:{fontSize:"14px",lineHeight:"32px",color:"#3D3E45"}},p))})}function Ak({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=x.useMemo(()=>L.defaultsDeep({},t,Ll),[t]),{control:i,handleSubmit:a,watch:o,getValues:s,reset:u}=k.useForm({defaultValues:r});x.useEffect(()=>{u(r)},[r]),o(["expertSystemURL","goal","path","question"]);const d=s(),f=x.useMemo(()=>!L.isEqual(d,r),[d,r]);return l("form",{onSubmit:a(n),children:y(c.Stack,{children:[y(c.Group,{grow:!0,children:[l(k.Controller,{name:"expertSystemURL",control:i,render:({field:p})=>l(c.TextInput,{label:"Expert System URL",...p})}),l(k.Controller,{name:"path",control:i,render:({field:p})=>l(c.TextInput,{label:"Path",required:!0,...p})})]}),y(c.Group,{grow:!0,children:[l(k.Controller,{name:"goal",control:i,render:({field:p})=>l(c.TextInput,{label:"Goal",required:!0,...p})}),l(k.Controller,{name:"question",control:i,render:({field:p})=>l(c.TextInput,{label:"Question",required:!0,...p})})]}),l(c.Divider,{variant:"dashed",mt:16,mb:8}),l(c.Button,{type:"submit",variant:"filled",color:"blue",leftIcon:l(W.DeviceFloppy,{size:20}),disabled:!f,sx:{alignSelf:"flex-end"},children:"Submit Changes"})]})})}class Ik extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const $k={displayName:"Merico GQM",migrator:new Ik,name:"mericoGQM",viewRender:Pk,configRender:Ak,createConfig:()=>Ll};function Nk(e){const t=e.y_axes.some(i=>!!i.name);let n=10;t&&(n+=20),e.dataZoom.x_axis_slider&&(n+=20);let r=25;return e.x_axis.name&&(r+=15),{top:n,bottom:r}}function Lk({type:e,...t},n,r,i){if(!e)return 10;if(e==="static"){const{size:s}=t;return s}const{func_content:a}=t,o=L.keyBy(n,r);return(s,u)=>{let d;u.name?d=o[u.name]:d=n[u.dataIndex];try{return new Function(`return ${a}`)()({rowData:d,params:u,variables:i},{lodash:De.default,interpolate:rl})}catch(f){return console.error(`[getEchartsSymbolSize] failed parsing custom function, error: ${f.message}`),10}}}function Vk(e,t,n,r){return e.map(i=>{const a=i.orientation==="horizontal",o=a?"yAxis":"xAxis",s=a?"insideEndTop":"end";return{name:"refs",type:"scatter",data:[],markLine:{data:[{name:i.name,[o]:Number(n[i.variable_key])}],silent:!0,symbol:["none","none"],label:{formatter:function(){return ol(i.template,t,r)},position:s}}}})}function Fk(e,t){return e.map(n=>({name:"",type:"line",data:[],markArea:{itemStyle:{color:n.color},data:[[{yAxis:t[n.y_keys.upper]},{yAxis:t[n.y_keys.lower]}]],silent:!0}}))}function zk({x_axis:e,scatter:t},n,r,i){return{label:{show:!!t.label_position,position:t.label_position,formatter:({value:a})=>a[t.name_data_key]},type:"scatter",name:"",xAxisId:"main-x-axis",yAxisIndex:0,datasetIndex:0,color:t.color,symbolSize:Lk(t.symbolSize,n,e.data_key,r),encode:{x:e.data_key,y:t.y_data_key}}}function jk(e,t,n,r,i,a,o){return[zk(e,r,o)].concat(Vk(e.reference_lines,a,o,r)).concat(Fk(e.reference_areas,o))}function Fp({enabled:e,func_content:t}){return(n,r)=>{if(!e)return n;try{return new Function(`return ${t}`)()(n,r)}catch(i){return console.error(`[getEchartsXAxisLabel] failed parsing custom function, error: ${i.message}`),n}}}function Bk(e,t){const n=e.find(o=>o.axisDim==="x"&&o.axisId==="main-x-axis");if(!n)return"";const{name:r,axisValue:i,axisIndex:a}=n;return t.x_axis.axisLabel.formatter.enabled?Fp(t.x_axis.axisLabel.formatter)(i,a):i}const Gk=e=>{try{return $t.default(e).format({trimMantissa:!0,mantissa:2})}catch{return e}};function Kk(e,t){const{scatter:n}=e;return{confine:!0,formatter:function(r){var p;const i=(p=t[0])!=null?p:t.default,a=Array.isArray(r)?r:[r];if(a.length===0)return"";const o=Bk(a,e),s=a.map(({value:h})=>`<th style="text-align: right; padding-right: 1em">${h[n.name_data_key]}</th>`);s.unshift("<th></th>");const u=[`<tr>
|
|
225
|
+
color: hsl(`+Math.max(0,Math.min(120-120*p,120))+"deg 100% 31%);",n==null?void 0:n.key)}return i}}function pR(e,t,n,r){var i,a;const s={...e._getDefaultColumnDef(),...t},u=s.accessorKey;let d=(i=(a=s.id)!=null?a:u?u.replace(".","_"):void 0)!=null?i:typeof s.header=="string"?s.header:void 0,f;if(s.accessorFn?f=s.accessorFn:u&&(u.includes(".")?f=h=>{let g=h;for(const v of u.split("."))g=g[v];return g}:f=h=>h[s.accessorKey]),!d)throw process.env.NODE_ENV!=="production"?new Error(s.accessorFn?"Columns require an id when using an accessorFn":"Columns require an id when using a non-string header"):new Error;let p={id:""+String(d),accessorFn:f,parent:r,depth:n,columnDef:s,columns:[],getFlatColumns:Le(()=>[!0],()=>{var h;return[p,...(h=p.columns)==null?void 0:h.flatMap(g=>g.getFlatColumns())]},{key:process.env.NODE_ENV==="production"&&"column.getFlatColumns",debug:()=>{var h;return(h=e.options.debugAll)!=null?h:e.options.debugColumns}}),getLeafColumns:Le(()=>[e._getOrderColumnsFn()],h=>{var g;if((g=p.columns)!=null&&g.length){let v=p.columns.flatMap(m=>m.getLeafColumns());return h(v)}return[p]},{key:process.env.NODE_ENV==="production"&&"column.getLeafColumns",debug:()=>{var h;return(h=e.options.debugAll)!=null?h:e.options.debugColumns}})};return p=e._features.reduce((h,g)=>Object.assign(h,g.createColumn==null?void 0:g.createColumn(p,e)),p),p}function yp(e,t,n){var r;let a={id:(r=n.id)!=null?r:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const o=[],s=u=>{u.subHeaders&&u.subHeaders.length&&u.subHeaders.map(s),o.push(u)};return s(a),o},getContext:()=>({table:e,header:a,column:t})};return e._features.forEach(o=>{Object.assign(a,o.createHeader==null?void 0:o.createHeader(a,e))}),a}const hR={createTable:e=>({getHeaderGroups:Le(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>{var a,o;const s=(a=r==null?void 0:r.map(p=>n.find(h=>h.id===p)).filter(Boolean))!=null?a:[],u=(o=i==null?void 0:i.map(p=>n.find(h=>h.id===p)).filter(Boolean))!=null?o:[],d=n.filter(p=>!(r!=null&&r.includes(p.id))&&!(i!=null&&i.includes(p.id)));return ga(t,[...s,...d,...u],e)},{key:process.env.NODE_ENV==="development"&&"getHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getCenterHeaderGroups:Le(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>(n=n.filter(a=>!(r!=null&&r.includes(a.id))&&!(i!=null&&i.includes(a.id))),ga(t,n,e,"center")),{key:process.env.NODE_ENV==="development"&&"getCenterHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getLeftHeaderGroups:Le(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>{var i;const a=(i=r==null?void 0:r.map(o=>n.find(s=>s.id===o)).filter(Boolean))!=null?i:[];return ga(t,a,e,"left")},{key:process.env.NODE_ENV==="development"&&"getLeftHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getRightHeaderGroups:Le(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>{var i;const a=(i=r==null?void 0:r.map(o=>n.find(s=>s.id===o)).filter(Boolean))!=null?i:[];return ga(t,a,e,"right")},{key:process.env.NODE_ENV==="development"&&"getRightHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getFooterGroups:Le(()=>[e.getHeaderGroups()],t=>[...t].reverse(),{key:process.env.NODE_ENV==="development"&&"getFooterGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getLeftFooterGroups:Le(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),{key:process.env.NODE_ENV==="development"&&"getLeftFooterGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getCenterFooterGroups:Le(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),{key:process.env.NODE_ENV==="development"&&"getCenterFooterGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getRightFooterGroups:Le(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),{key:process.env.NODE_ENV==="development"&&"getRightFooterGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getFlatHeaders:Le(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),{key:process.env.NODE_ENV==="development"&&"getFlatHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getLeftFlatHeaders:Le(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),{key:process.env.NODE_ENV==="development"&&"getLeftFlatHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getCenterFlatHeaders:Le(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),{key:process.env.NODE_ENV==="development"&&"getCenterFlatHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getRightFlatHeaders:Le(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),{key:process.env.NODE_ENV==="development"&&"getRightFlatHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getCenterLeafHeaders:Le(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),{key:process.env.NODE_ENV==="development"&&"getCenterLeafHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getLeftLeafHeaders:Le(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),{key:process.env.NODE_ENV==="development"&&"getLeftLeafHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getRightLeafHeaders:Le(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),{key:process.env.NODE_ENV==="development"&&"getRightLeafHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getLeafHeaders:Le(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,r)=>{var i,a,o,s,u,d;return[...(i=(a=t[0])==null?void 0:a.headers)!=null?i:[],...(o=(s=n[0])==null?void 0:s.headers)!=null?o:[],...(u=(d=r[0])==null?void 0:d.headers)!=null?u:[]].map(f=>f.getLeafHeaders()).flat()},{key:process.env.NODE_ENV==="development"&&"getLeafHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}})})};function ga(e,t,n,r){var i,a;let o=0;const s=function(h,g){g===void 0&&(g=1),o=Math.max(o,g),h.filter(v=>v.getIsVisible()).forEach(v=>{var m;(m=v.columns)!=null&&m.length&&s(v.columns,g+1)},0)};s(e);let u=[];const d=(h,g)=>{const v={depth:g,id:[r,""+g].filter(Boolean).join("_"),headers:[]},m=[];h.forEach(C=>{const b=[...m].reverse()[0],w=C.column.depth===v.depth;let S,D=!1;if(w&&C.column.parent?S=C.column.parent:(S=C.column,D=!0),b&&(b==null?void 0:b.column)===S)b.subHeaders.push(C);else{const _=yp(n,S,{id:[r,g,S.id,C==null?void 0:C.id].filter(Boolean).join("_"),isPlaceholder:D,placeholderId:D?""+m.filter(P=>P.column===S).length:void 0,depth:g,index:m.length});_.subHeaders.push(C),m.push(_)}v.headers.push(C),C.headerGroup=v}),u.push(v),g>0&&d(m,g-1)},f=t.map((h,g)=>yp(n,h,{depth:o,index:g}));d(f,o-1),u.reverse();const p=h=>h.filter(v=>v.column.getIsVisible()).map(v=>{let m=0,C=0,b=[0];v.subHeaders&&v.subHeaders.length?(b=[],p(v.subHeaders).forEach(S=>{let{colSpan:D,rowSpan:_}=S;m+=D,b.push(_)})):m=1;const w=Math.min(...b);return C=C+w,v.colSpan=m,v.rowSpan=C,{colSpan:m,rowSpan:C}});return p((i=(a=u[0])==null?void 0:a.headers)!=null?i:[]),u}const va={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},wl=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),gR={getDefaultColumnDef:()=>va,getInitialState:e=>({columnSizing:{},columnSizingInfo:wl(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",onColumnSizingChange:on("columnSizing",e),onColumnSizingInfoChange:on("columnSizingInfo",e)}),createColumn:(e,t)=>({getSize:()=>{var n,r,i;const a=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:va.minSize,(r=a!=null?a:e.columnDef.size)!=null?r:va.size),(i=e.columnDef.maxSize)!=null?i:va.maxSize)},getStart:n=>{const r=n?n==="left"?t.getLeftVisibleLeafColumns():t.getRightVisibleLeafColumns():t.getVisibleLeafColumns(),i=r.findIndex(a=>a.id===e.id);if(i>0){const a=r[i-1];return a.getStart(n)+a.getSize()}return 0},resetSize:()=>{t.setColumnSizing(n=>{let{[e.id]:r,...i}=n;return i})},getCanResize:()=>{var n,r;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((r=t.options.enableColumnResizing)!=null?r:!0)},getIsResizing:()=>t.getState().columnSizingInfo.isResizingColumn===e.id}),createHeader:(e,t)=>({getSize:()=>{let n=0;const r=i=>{if(i.subHeaders.length)i.subHeaders.forEach(r);else{var a;n+=(a=i.column.getSize())!=null?a:0}};return r(e),n},getStart:()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},getResizeHandler:()=>{const n=t.getColumn(e.column.id),r=n.getCanResize();return i=>{if(!r||(i.persist==null||i.persist(),xl(i)&&i.touches&&i.touches.length>1))return;const a=e.getSize(),o=e?e.getLeafHeaders().map(g=>[g.column.id,g.column.getSize()]):[[n.id,n.getSize()]],s=xl(i)?Math.round(i.touches[0].clientX):i.clientX,u=(g,v)=>{if(typeof v!="number")return;let m={};t.setColumnSizingInfo(C=>{var b,w;const S=v-((b=C==null?void 0:C.startOffset)!=null?b:0),D=Math.max(S/((w=C==null?void 0:C.startSize)!=null?w:0),-.999999);return C.columnSizingStart.forEach(_=>{let[P,N]=_;m[P]=Math.round(Math.max(N+N*D,0)*100)/100}),{...C,deltaOffset:S,deltaPercentage:D}}),(t.options.columnResizeMode==="onChange"||g==="end")&&t.setColumnSizing(C=>({...C,...m}))},d=g=>u("move",g),f=g=>{u("end",g),t.setColumnSizingInfo(v=>({...v,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},p={moveHandler:g=>d(g.clientX),upHandler:g=>{document.removeEventListener("mousemove",p.moveHandler),document.removeEventListener("mouseup",p.upHandler),f(g.clientX)}},h=vR()?{passive:!1}:!1;xl(i)||(document.addEventListener("mousemove",p.moveHandler,h),document.addEventListener("mouseup",p.upHandler,h)),t.setColumnSizingInfo(g=>({...g,startOffset:s,startSize:a,deltaOffset:0,deltaPercentage:0,columnSizingStart:o,isResizingColumn:n.id}))}}}),createTable:e=>({setColumnSizing:t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),setColumnSizingInfo:t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),resetColumnSizing:t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},resetHeaderSizeInfo:t=>{var n;e.setColumnSizingInfo(t?wl():(n=e.initialState.columnSizingInfo)!=null?n:wl())},getTotalSize:()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},getLeftTotalSize:()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},getCenterTotalSize:()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},getRightTotalSize:()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0}})};let ma=null;function vR(){if(typeof ma=="boolean")return ma;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch{e=!1}return ma=e,ma}function xl(e){return e.type==="touchstart"}const mR={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:on("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;return{_autoResetExpanded:()=>{var r,i;if(!t){e._queue(()=>{t=!0});return}if((r=(i=e.options.autoResetAll)!=null?i:e.options.autoResetExpanded)!=null?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},setExpanded:r=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(r),toggleAllRowsExpanded:r=>{(r!=null?r:!e.getIsAllRowsExpanded())?e.setExpanded(!0):e.setExpanded({})},resetExpanded:r=>{var i,a;e.setExpanded(r?{}:(i=(a=e.initialState)==null?void 0:a.expanded)!=null?i:{})},getCanSomeRowsExpand:()=>e.getRowModel().flatRows.some(r=>r.getCanExpand()),getToggleAllRowsExpandedHandler:()=>r=>{r.persist==null||r.persist(),e.toggleAllRowsExpanded()},getIsSomeRowsExpanded:()=>{const r=e.getState().expanded;return r===!0||Object.values(r).some(Boolean)},getIsAllRowsExpanded:()=>{const r=e.getState().expanded;return typeof r=="boolean"?r===!0:!(!Object.keys(r).length||e.getRowModel().flatRows.some(i=>i.getIsExpanded()))},getExpandedDepth:()=>{let r=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(a=>{const o=a.split(".");r=Math.max(r,o.length)}),r},getPreExpandedRowModel:()=>e.getSortedRowModel(),getExpandedRowModel:()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())}},createRow:(e,t)=>({toggleExpanded:n=>{t.setExpanded(r=>{var i;const a=r===!0?!0:!!(r!=null&&r[e.id]);let o={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(s=>{o[s]=!0}):o=r,n=(i=n)!=null?i:!a,!a&&n)return{...o,[e.id]:!0};if(a&&!n){const{[e.id]:s,...u}=o;return u}return r})},getIsExpanded:()=>{var n;const r=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:r===!0||(r==null?void 0:r[e.id]))},getCanExpand:()=>{var n,r,i;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((r=t.options.enableExpanding)!=null?r:!0)&&!!((i=e.subRows)!=null&&i.length)},getToggleExpandedHandler:()=>{const n=e.getCanExpand();return()=>{!n||e.toggleExpanded()}}})},bp=(e,t,n)=>{var r;const i=n.toLowerCase();return(r=e.getValue(t))==null?void 0:r.toLowerCase().includes(i)};bp.autoRemove=e=>cn(e);const Cp=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};Cp.autoRemove=e=>cn(e);const Sp=(e,t,n)=>{var r;return((r=e.getValue(t))==null?void 0:r.toLowerCase())===n.toLowerCase()};Sp.autoRemove=e=>cn(e);const wp=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};wp.autoRemove=e=>cn(e)||!(e!=null&&e.length);const xp=(e,t,n)=>!n.some(r=>{var i;return!((i=e.getValue(t))!=null&&i.includes(r))});xp.autoRemove=e=>cn(e)||!(e!=null&&e.length);const _p=(e,t,n)=>n.some(r=>{var i;return(i=e.getValue(t))==null?void 0:i.includes(r)});_p.autoRemove=e=>cn(e)||!(e!=null&&e.length);const Ep=(e,t,n)=>e.getValue(t)===n;Ep.autoRemove=e=>cn(e);const Tp=(e,t,n)=>e.getValue(t)==n;Tp.autoRemove=e=>cn(e);const _l=(e,t,n)=>{let[r,i]=n;const a=e.getValue(t);return a>=r&&a<=i};_l.resolveFilterValue=e=>{let[t,n]=e,r=typeof t!="number"?parseFloat(t):t,i=typeof n!="number"?parseFloat(n):n,a=t===null||Number.isNaN(r)?-1/0:r,o=n===null||Number.isNaN(i)?1/0:i;if(a>o){const s=a;a=o,o=s}return[a,o]},_l.autoRemove=e=>cn(e)||cn(e[0])&&cn(e[1]);const An={includesString:bp,includesStringSensitive:Cp,equalsString:Sp,arrIncludes:wp,arrIncludesAll:xp,arrIncludesSome:_p,equals:Ep,weakEquals:Tp,inNumberRange:_l};function cn(e){return e==null||e===""}const yR={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],globalFilter:void 0,...e}),getDefaultOptions:e=>({onColumnFiltersChange:on("columnFilters",e),onGlobalFilterChange:on("globalFilter",e),filterFromLeafRows:!1,globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n,r;const i=(n=e.getCoreRowModel().flatRows[0])==null||(r=n._getAllCellsByColumnId()[t.id])==null?void 0:r.getValue();return typeof i=="string"||typeof i=="number"}}),createColumn:(e,t)=>({getAutoFilterFn:()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);return typeof r=="string"?An.includesString:typeof r=="number"?An.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?An.equals:Array.isArray(r)?An.arrIncludes:An.weakEquals},getFilterFn:()=>{var n,r;return ha(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(r=t.options.filterFns)==null?void 0:r[e.columnDef.filterFn])!=null?n:An[e.columnDef.filterFn]},getCanFilter:()=>{var n,r,i;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((r=t.options.enableColumnFilters)!=null?r:!0)&&((i=t.options.enableFilters)!=null?i:!0)&&!!e.accessorFn},getCanGlobalFilter:()=>{var n,r,i,a;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((r=t.options.enableGlobalFilter)!=null?r:!0)&&((i=t.options.enableFilters)!=null?i:!0)&&((a=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?a:!0)&&!!e.accessorFn},getIsFiltered:()=>e.getFilterIndex()>-1,getFilterValue:()=>{var n,r;return(n=t.getState().columnFilters)==null||(r=n.find(i=>i.id===e.id))==null?void 0:r.value},getFilterIndex:()=>{var n,r;return(n=(r=t.getState().columnFilters)==null?void 0:r.findIndex(i=>i.id===e.id))!=null?n:-1},setFilterValue:n=>{t.setColumnFilters(r=>{const i=e.getFilterFn(),a=r==null?void 0:r.find(f=>f.id===e.id),o=Un(n,a?a.value:void 0);if(Op(i,o,e)){var s;return(s=r==null?void 0:r.filter(f=>f.id!==e.id))!=null?s:[]}const u={id:e.id,value:o};if(a){var d;return(d=r==null?void 0:r.map(f=>f.id===e.id?u:f))!=null?d:[]}return r!=null&&r.length?[...r,u]:[u]})},_getFacetedRowModel:t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),getFacetedRowModel:()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),_getFacetedUniqueValues:t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),getFacetedUniqueValues:()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,_getFacetedMinMaxValues:t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),getFacetedMinMaxValues:()=>{if(!!e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}),createRow:(e,t)=>({columnFilters:{},columnFiltersMeta:{}}),createTable:e=>({getGlobalAutoFilterFn:()=>An.includesString,getGlobalFilterFn:()=>{var t,n;const{globalFilterFn:r}=e.options;return ha(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:An[r]},setColumnFilters:t=>{const n=e.getAllLeafColumns(),r=i=>{var a;return(a=Un(t,i))==null?void 0:a.filter(o=>{const s=n.find(u=>u.id===o.id);if(s){const u=s.getFilterFn();if(Op(u,o.value,s))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(r)},setGlobalFilter:t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},resetGlobalFilter:t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)},resetColumnFilters:t=>{var n,r;e.setColumnFilters(t?[]:(n=(r=e.initialState)==null?void 0:r.columnFilters)!=null?n:[])},getPreFilteredRowModel:()=>e.getCoreRowModel(),getFilteredRowModel:()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel()),_getGlobalFacetedRowModel:e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),getGlobalFacetedRowModel:()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),_getGlobalFacetedUniqueValues:e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),getGlobalFacetedUniqueValues:()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,_getGlobalFacetedMinMaxValues:e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),getGlobalFacetedMinMaxValues:()=>{if(!!e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}})};function Op(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const El={sum:(e,t,n)=>n.reduce((r,i)=>{const a=i.getValue(e);return r+(typeof a=="number"?a:0)},0),min:(e,t,n)=>{let r;return n.forEach(i=>{const a=i.getValue(e);a!=null&&(r>a||r===void 0&&a>=a)&&(r=a)}),r},max:(e,t,n)=>{let r;return n.forEach(i=>{const a=i.getValue(e);a!=null&&(r<a||r===void 0&&a>=a)&&(r=a)}),r},extent:(e,t,n)=>{let r,i;return n.forEach(a=>{const o=a.getValue(e);o!=null&&(r===void 0?o>=o&&(r=i=o):(r>o&&(r=o),i<o&&(i=o)))}),[r,i]},mean:(e,t)=>{let n=0,r=0;if(t.forEach(i=>{let a=i.getValue(e);a!=null&&(a=+a)>=a&&(++n,r+=a)}),n)return r/n},median:(e,t)=>{if(!t.length)return;let n=0,r=0;return t.forEach(i=>{let a=i.getValue(e);typeof a=="number"&&(n=Math.min(n,a),r=Math.max(r,a))}),(n+r)/2},unique:(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),uniqueCount:(e,t)=>new Set(t.map(n=>n.getValue(e))).size,count:(e,t)=>t.length},bR={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return(t=(n=e.getValue())==null||n.toString==null?void 0:n.toString())!=null?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:on("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>({toggleGrouping:()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(r=>r!==e.id):[...n!=null?n:[],e.id])},getCanGroup:()=>{var n,r,i,a;return(n=(r=(i=(a=e.columnDef.enableGrouping)!=null?a:!0)!=null?i:t.options.enableGrouping)!=null?r:!0)!=null?n:!!e.accessorFn},getIsGrouped:()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},getGroupedIndex:()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},getToggleGroupingHandler:()=>{const n=e.getCanGroup();return()=>{!n||e.toggleGrouping()}},getAutoAggregationFn:()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);if(typeof r=="number")return El.sum;if(Object.prototype.toString.call(r)==="[object Date]")return El.extent},getAggregationFn:()=>{var n,r;if(!e)throw new Error;return ha(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(r=t.options.aggregationFns)==null?void 0:r[e.columnDef.aggregationFn])!=null?n:El[e.columnDef.aggregationFn]}}),createTable:e=>({setGrouping:t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),resetGrouping:t=>{var n,r;e.setGrouping(t?[]:(n=(r=e.initialState)==null?void 0:r.grouping)!=null?n:[])},getPreGroupedRowModel:()=>e.getFilteredRowModel(),getGroupedRowModel:()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())}),createRow:e=>({getIsGrouped:()=>!!e.groupingColumnId,_groupingValuesCache:{}}),createCell:(e,t,n,r)=>({getIsGrouped:()=>t.getIsGrouped()&&t.id===n.groupingColumnId,getIsPlaceholder:()=>!e.getIsGrouped()&&t.getIsGrouped(),getIsAggregated:()=>{var i;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((i=n.subRows)!=null&&i.length)}})};function CR(e,t,n){if(!(t!=null&&t.length)||!n)return e;const r=e.filter(a=>!t.includes(a.id));return n==="remove"?r:[...t.map(a=>e.find(o=>o.id===a)).filter(Boolean),...r]}const SR={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:on("columnOrder",e)}),createTable:e=>({setColumnOrder:t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),resetColumnOrder:t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},_getOrderColumnsFn:Le(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,r)=>i=>{let a=[];if(!(t!=null&&t.length))a=i;else{const o=[...t],s=[...i];for(;s.length&&o.length;){const u=o.shift(),d=s.findIndex(f=>f.id===u);d>-1&&a.push(s.splice(d,1)[0])}a=[...a,...s]}return CR(a,n,r)},{key:process.env.NODE_ENV==="development"&&"getOrderColumnsFn"})})},Tl=0,Ol=10,Ml=()=>({pageIndex:Tl,pageSize:Ol}),wR={getInitialState:e=>({...e,pagination:{...Ml(),...e==null?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:on("pagination",e)}),createTable:e=>{let t=!1,n=!1;return{_autoResetPageIndex:()=>{var r,i;if(!t){e._queue(()=>{t=!0});return}if((r=(i=e.options.autoResetAll)!=null?i:e.options.autoResetPageIndex)!=null?r:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},setPagination:r=>{const i=a=>Un(r,a);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(i)},resetPagination:r=>{var i;e.setPagination(r?Ml():(i=e.initialState.pagination)!=null?i:Ml())},setPageIndex:r=>{e.setPagination(i=>{let a=Un(r,i.pageIndex);const o=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return a=Math.min(Math.max(0,a),o),{...i,pageIndex:a}})},resetPageIndex:r=>{var i,a,o;e.setPageIndex(r?Tl:(i=(a=e.initialState)==null||(o=a.pagination)==null?void 0:o.pageIndex)!=null?i:Tl)},resetPageSize:r=>{var i,a,o;e.setPageSize(r?Ol:(i=(a=e.initialState)==null||(o=a.pagination)==null?void 0:o.pageSize)!=null?i:Ol)},setPageSize:r=>{e.setPagination(i=>{const a=Math.max(1,Un(r,i.pageSize)),o=i.pageSize*i.pageIndex,s=Math.floor(o/a);return{...i,pageIndex:s,pageSize:a}})},setPageCount:r=>e.setPagination(i=>{var a;let o=Un(r,(a=e.options.pageCount)!=null?a:-1);return typeof o=="number"&&(o=Math.max(-1,o)),{...i,pageCount:o}}),getPageOptions:Le(()=>[e.getPageCount()],r=>{let i=[];return r&&r>0&&(i=[...new Array(r)].fill(null).map((a,o)=>o)),i},{key:process.env.NODE_ENV==="development"&&"getPageOptions",debug:()=>{var r;return(r=e.options.debugAll)!=null?r:e.options.debugTable}}),getCanPreviousPage:()=>e.getState().pagination.pageIndex>0,getCanNextPage:()=>{const{pageIndex:r}=e.getState().pagination,i=e.getPageCount();return i===-1?!0:i===0?!1:r<i-1},previousPage:()=>e.setPageIndex(r=>r-1),nextPage:()=>e.setPageIndex(r=>r+1),getPrePaginationRowModel:()=>e.getExpandedRowModel(),getPaginationRowModel:()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),getPageCount:()=>{var r;return(r=e.options.pageCount)!=null?r:Math.ceil(e.getPrePaginationRowModel().rows.length/e.getState().pagination.pageSize)}}}},Dl=()=>({left:[],right:[]}),xR={getInitialState:e=>({columnPinning:Dl(),...e}),getDefaultOptions:e=>({onColumnPinningChange:on("columnPinning",e)}),createColumn:(e,t)=>({pin:n=>{const r=e.getLeafColumns().map(i=>i.id).filter(Boolean);t.setColumnPinning(i=>{var a,o;if(n==="right"){var s,u;return{left:((s=i==null?void 0:i.left)!=null?s:[]).filter(p=>!(r!=null&&r.includes(p))),right:[...((u=i==null?void 0:i.right)!=null?u:[]).filter(p=>!(r!=null&&r.includes(p))),...r]}}if(n==="left"){var d,f;return{left:[...((d=i==null?void 0:i.left)!=null?d:[]).filter(p=>!(r!=null&&r.includes(p))),...r],right:((f=i==null?void 0:i.right)!=null?f:[]).filter(p=>!(r!=null&&r.includes(p)))}}return{left:((a=i==null?void 0:i.left)!=null?a:[]).filter(p=>!(r!=null&&r.includes(p))),right:((o=i==null?void 0:i.right)!=null?o:[]).filter(p=>!(r!=null&&r.includes(p)))}})},getCanPin:()=>e.getLeafColumns().some(r=>{var i,a;return((i=r.columnDef.enablePinning)!=null?i:!0)&&((a=t.options.enablePinning)!=null?a:!0)}),getIsPinned:()=>{const n=e.getLeafColumns().map(s=>s.id),{left:r,right:i}=t.getState().columnPinning,a=n.some(s=>r==null?void 0:r.includes(s)),o=n.some(s=>i==null?void 0:i.includes(s));return a?"left":o?"right":!1},getPinnedIndex:()=>{var n,r,i;const a=e.getIsPinned();return a?(n=(r=t.getState().columnPinning)==null||(i=r[a])==null?void 0:i.indexOf(e.id))!=null?n:-1:0}}),createRow:(e,t)=>({getCenterVisibleCells:Le(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,r,i)=>{const a=[...r!=null?r:[],...i!=null?i:[]];return n.filter(o=>!a.includes(o.column.id))},{key:process.env.NODE_ENV==="production"&&"row.getCenterVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}}),getLeftVisibleCells:Le(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,,],(n,r)=>(r!=null?r:[]).map(a=>n.find(o=>o.column.id===a)).filter(Boolean).map(a=>({...a,position:"left"})),{key:process.env.NODE_ENV==="production"&&"row.getLeftVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}}),getRightVisibleCells:Le(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,r)=>(r!=null?r:[]).map(a=>n.find(o=>o.column.id===a)).filter(Boolean).map(a=>({...a,position:"right"})),{key:process.env.NODE_ENV==="production"&&"row.getRightVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}})}),createTable:e=>({setColumnPinning:t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),resetColumnPinning:t=>{var n,r;return e.setColumnPinning(t?Dl():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:Dl())},getIsSomeColumnsPinned:t=>{var n;const r=e.getState().columnPinning;if(!t){var i,a;return Boolean(((i=r.left)==null?void 0:i.length)||((a=r.right)==null?void 0:a.length))}return Boolean((n=r[t])==null?void 0:n.length)},getLeftLeafColumns:Le(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n!=null?n:[]).map(r=>t.find(i=>i.id===r)).filter(Boolean),{key:process.env.NODE_ENV==="development"&&"getLeftLeafColumns",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugColumns}}),getRightLeafColumns:Le(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n!=null?n:[]).map(r=>t.find(i=>i.id===r)).filter(Boolean),{key:process.env.NODE_ENV==="development"&&"getRightLeafColumns",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugColumns}}),getCenterLeafColumns:Le(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r)=>{const i=[...n!=null?n:[],...r!=null?r:[]];return t.filter(a=>!i.includes(a.id))},{key:process.env.NODE_ENV==="development"&&"getCenterLeafColumns",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugColumns}})})},_R={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:on("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>({setRowSelection:t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),resetRowSelection:t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},toggleAllRowsSelected:t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const r={...n},i=e.getPreGroupedRowModel().flatRows;return t?i.forEach(a=>{!a.getCanSelect()||(r[a.id]=!0)}):i.forEach(a=>{delete r[a.id]}),r})},toggleAllPageRowsSelected:t=>e.setRowSelection(n=>{const r=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),i={...n};return e.getRowModel().rows.forEach(a=>{Rl(i,a.id,r,e)}),i}),getPreSelectedRowModel:()=>e.getCoreRowModel(),getSelectedRowModel:Le(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?kl(e,n):{rows:[],flatRows:[],rowsById:{}},{key:process.env.NODE_ENV==="development"&&"getSelectedRowModel",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugTable}}),getFilteredSelectedRowModel:Le(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?kl(e,n):{rows:[],flatRows:[],rowsById:{}},{key:process.env.NODE_ENV==="production"&&"getFilteredSelectedRowModel",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugTable}}),getGroupedSelectedRowModel:Le(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?kl(e,n):{rows:[],flatRows:[],rowsById:{}},{key:process.env.NODE_ENV==="production"&&"getGroupedSelectedRowModel",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugTable}}),getIsAllRowsSelected:()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=Boolean(t.length&&Object.keys(n).length);return r&&t.some(i=>i.getCanSelect()&&!n[i.id])&&(r=!1),r},getIsAllPageRowsSelected:()=>{const t=e.getPaginationRowModel().flatRows,{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some(i=>!n[i.id])&&(r=!1),r},getIsSomeRowsSelected:()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n<e.getFilteredRowModel().flatRows.length},getIsSomePageRowsSelected:()=>{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.some(n=>n.getIsSelected()||n.getIsSomeSelected())},getToggleAllRowsSelectedHandler:()=>t=>{e.toggleAllRowsSelected(t.target.checked)},getToggleAllPageRowsSelectedHandler:()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}}),createRow:(e,t)=>({toggleSelected:n=>{const r=e.getIsSelected();t.setRowSelection(i=>{if(n=typeof n<"u"?n:!r,r===n)return i;const a={...i};return Rl(a,e.id,n,t),a})},getIsSelected:()=>{const{rowSelection:n}=t.getState();return Pl(e,n)},getIsSomeSelected:()=>{const{rowSelection:n}=t.getState();return Mp(e,n)==="some"},getIsAllSubRowsSelected:()=>{const{rowSelection:n}=t.getState();return Mp(e,n)==="all"},getCanSelect:()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},getCanSelectSubRows:()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},getCanMultiSelect:()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},getToggleSelectedHandler:()=>{const n=e.getCanSelect();return r=>{var i;!n||e.toggleSelected((i=r.target)==null?void 0:i.checked)}}})},Rl=(e,t,n,r)=>{var i;const a=r.getRow(t);n?(a.getCanMultiSelect()||Object.keys(e).forEach(o=>delete e[o]),a.getCanSelect()&&(e[t]=!0)):delete e[t],(i=a.subRows)!=null&&i.length&&a.getCanSelectSubRows()&&a.subRows.forEach(o=>Rl(e,o.id,n,r))};function kl(e,t){const n=e.getState().rowSelection,r=[],i={},a=function(o,s){return o.map(u=>{var d;const f=Pl(u,n);if(f&&(r.push(u),i[u.id]=u),(d=u.subRows)!=null&&d.length&&(u={...u,subRows:a(u.subRows)}),f)return u}).filter(Boolean)};return{rows:a(t.rows),flatRows:r,rowsById:i}}function Pl(e,t){var n;return(n=t[e.id])!=null?n:!1}function Mp(e,t,n){if(e.subRows&&e.subRows.length){let r=!0,i=!1;return e.subRows.forEach(a=>{i&&!r||(Pl(a,t)?i=!0:r=!1)}),r?"all":i?"some":!1}return!1}const Al=/([0-9]+)/gm,ER=(e,t,n)=>Dp(Yn(e.getValue(n)).toLowerCase(),Yn(t.getValue(n)).toLowerCase()),TR=(e,t,n)=>Dp(Yn(e.getValue(n)),Yn(t.getValue(n))),OR=(e,t,n)=>Il(Yn(e.getValue(n)).toLowerCase(),Yn(t.getValue(n)).toLowerCase()),MR=(e,t,n)=>Il(Yn(e.getValue(n)),Yn(t.getValue(n))),DR=(e,t,n)=>{const r=e.getValue(n),i=t.getValue(n);return r>i?1:r<i?-1:0},RR=(e,t,n)=>Il(e.getValue(n),t.getValue(n));function Il(e,t){return e===t?0:e>t?1:-1}function Yn(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function Dp(e,t){const n=e.split(Al).filter(Boolean),r=t.split(Al).filter(Boolean);for(;n.length&&r.length;){const i=n.shift(),a=r.shift(),o=parseInt(i,10),s=parseInt(a,10),u=[o,s].sort();if(isNaN(u[0])){if(i>a)return 1;if(a>i)return-1;continue}if(isNaN(u[1]))return isNaN(o)?-1:1;if(o>s)return 1;if(s>o)return-1}return n.length-r.length}const hi={alphanumeric:ER,alphanumericCaseSensitive:TR,text:OR,textCaseSensitive:MR,datetime:DR,basic:RR},Rp=[hR,{getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:on("columnVisibility",e)}),createColumn:(e,t)=>({toggleVisibility:n=>{e.getCanHide()&&t.setColumnVisibility(r=>({...r,[e.id]:n!=null?n:!e.getIsVisible()}))},getIsVisible:()=>{var n,r;return(n=(r=t.getState().columnVisibility)==null?void 0:r[e.id])!=null?n:!0},getCanHide:()=>{var n,r;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((r=t.options.enableHiding)!=null?r:!0)},getToggleVisibilityHandler:()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}}),createRow:(e,t)=>({_getAllVisibleCells:Le(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(r=>r.column.getIsVisible()),{key:process.env.NODE_ENV==="production"&&"row._getAllVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}}),getVisibleCells:Le(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,r,i)=>[...n,...r,...i],{key:process.env.NODE_ENV==="development"&&"row.getVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}})}),createTable:e=>{const t=(n,r)=>Le(()=>[r(),r().filter(i=>i.getIsVisible()).map(i=>i.id).join("_")],i=>i.filter(a=>a.getIsVisible==null?void 0:a.getIsVisible()),{key:n,debug:()=>{var i;return(i=e.options.debugAll)!=null?i:e.options.debugColumns}});return{getVisibleFlatColumns:t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),getVisibleLeafColumns:t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),getLeftVisibleLeafColumns:t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),getRightVisibleLeafColumns:t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),getCenterVisibleLeafColumns:t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),setColumnVisibility:n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),resetColumnVisibility:n=>{var r;e.setColumnVisibility(n?{}:(r=e.initialState.columnVisibility)!=null?r:{})},toggleAllColumnsVisible:n=>{var r;n=(r=n)!=null?r:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((i,a)=>({...i,[a.id]:n||!(a.getCanHide!=null&&a.getCanHide())}),{}))},getIsAllColumnsVisible:()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),getIsSomeColumnsVisible:()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),getToggleAllColumnsVisibilityHandler:()=>n=>{var r;e.toggleAllColumnsVisible((r=n.target)==null?void 0:r.checked)}}}},SR,xR,yR,{getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto"}),getDefaultOptions:e=>({onSortingChange:on("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>({getAutoSortingFn:()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const i of n){const a=i==null?void 0:i.getValue(e.id);if(Object.prototype.toString.call(a)==="[object Date]")return hi.datetime;if(typeof a=="string"&&(r=!0,a.split(Al).length>1))return hi.alphanumeric}return r?hi.text:hi.basic},getAutoSortDir:()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof(n==null?void 0:n.getValue(e.id))=="string"?"asc":"desc"},getSortingFn:()=>{var n,r;if(!e)throw new Error;return ha(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(r=t.options.sortingFns)==null?void 0:r[e.columnDef.sortingFn])!=null?n:hi[e.columnDef.sortingFn]},toggleSorting:(n,r)=>{const i=e.getNextSortingOrder(),a=typeof n<"u"&&n!==null;t.setSorting(o=>{const s=o==null?void 0:o.find(g=>g.id===e.id),u=o==null?void 0:o.findIndex(g=>g.id===e.id);let d=[],f,p=a?n:i==="desc";if(o!=null&&o.length&&e.getCanMultiSort()&&r?s?f="toggle":f="add":o!=null&&o.length&&u!==o.length-1?f="replace":s?f="toggle":f="replace",f==="toggle"&&(a||i||(f="remove")),f==="add"){var h;d=[...o,{id:e.id,desc:p}],d.splice(0,d.length-((h=t.options.maxMultiSortColCount)!=null?h:Number.MAX_SAFE_INTEGER))}else f==="toggle"?d=o.map(g=>g.id===e.id?{...g,desc:p}:g):f==="remove"?d=o.filter(g=>g.id!==e.id):d=[{id:e.id,desc:p}];return d})},getFirstSortDir:()=>{var n,r;return((n=(r=e.columnDef.sortDescFirst)!=null?r:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},getNextSortingOrder:n=>{var r,i;const a=e.getFirstSortDir(),o=e.getIsSorted();return o?o!==a&&((r=t.options.enableSortingRemoval)!=null?r:!0)&&(n&&(i=t.options.enableMultiRemove)!=null?i:!0)?!1:o==="desc"?"asc":"desc":a},getCanSort:()=>{var n,r;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((r=t.options.enableSorting)!=null?r:!0)&&!!e.accessorFn},getCanMultiSort:()=>{var n,r;return(n=(r=e.columnDef.enableMultiSort)!=null?r:t.options.enableMultiSort)!=null?n:!!e.accessorFn},getIsSorted:()=>{var n;const r=(n=t.getState().sorting)==null?void 0:n.find(i=>i.id===e.id);return r?r.desc?"desc":"asc":!1},getSortIndex:()=>{var n,r;return(n=(r=t.getState().sorting)==null?void 0:r.findIndex(i=>i.id===e.id))!=null?n:-1},clearSorting:()=>{t.setSorting(n=>n!=null&&n.length?n.filter(r=>r.id!==e.id):[])},getToggleSortingHandler:()=>{const n=e.getCanSort();return r=>{!n||(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}}),createTable:e=>({setSorting:t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),resetSorting:t=>{var n,r;e.setSorting(t?[]:(n=(r=e.initialState)==null?void 0:r.sorting)!=null?n:[])},getPreSortedRowModel:()=>e.getGroupedRowModel(),getSortedRowModel:()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())})},bR,mR,wR,_R,gR];function kR(e){var t;(e.debugAll||e.debugTable)&&console.info("Creating Table Instance...");let n={_features:Rp};const r=n._features.reduce((f,p)=>Object.assign(f,p.getDefaultOptions==null?void 0:p.getDefaultOptions(n)),{}),i=f=>n.options.mergeOptions?n.options.mergeOptions(r,f):{...r,...f};let o={...{},...(t=e.initialState)!=null?t:{}};n._features.forEach(f=>{var p;o=(p=f.getInitialState==null?void 0:f.getInitialState(o))!=null?p:o});const s=[];let u=!1;const d={_features:Rp,options:{...r,...e},initialState:o,_queue:f=>{s.push(f),u||(u=!0,Promise.resolve().then(()=>{for(;s.length;)s.shift()();u=!1}).catch(p=>setTimeout(()=>{throw p})))},reset:()=>{n.setState(n.initialState)},setOptions:f=>{const p=Un(f,n.options);n.options=i(p)},getState:()=>n.options.state,setState:f=>{n.options.onStateChange==null||n.options.onStateChange(f)},_getRowId:(f,p,h)=>{var g;return(g=n.options.getRowId==null?void 0:n.options.getRowId(f,p,h))!=null?g:""+(h?[h.id,p].join("."):p)},getCoreRowModel:()=>(n._getCoreRowModel||(n._getCoreRowModel=n.options.getCoreRowModel(n)),n._getCoreRowModel()),getRowModel:()=>n.getPaginationRowModel(),getRow:f=>{const p=n.getRowModel().rowsById[f];if(!p)throw process.env.NODE_ENV!=="production"?new Error("getRow expected an ID, but got "+f):new Error;return p},_getDefaultColumnDef:Le(()=>[n.options.defaultColumn],f=>{var p;return f=(p=f)!=null?p:{},{header:h=>{const g=h.header.column.columnDef;return g.accessorKey?g.accessorKey:g.accessorFn?g.id:null},cell:h=>{var g,v;return(g=(v=h.renderValue())==null||v.toString==null?void 0:v.toString())!=null?g:null},...n._features.reduce((h,g)=>Object.assign(h,g.getDefaultColumnDef==null?void 0:g.getDefaultColumnDef()),{}),...f}},{debug:()=>{var f;return(f=n.options.debugAll)!=null?f:n.options.debugColumns},key:process.env.NODE_ENV==="development"&&"getDefaultColumnDef"}),_getColumnDefs:()=>n.options.columns,getAllColumns:Le(()=>[n._getColumnDefs()],f=>{const p=function(h,g,v){return v===void 0&&(v=0),h.map(m=>{const C=pR(n,m,v,g),b=m;return C.columns=b.columns?p(b.columns,C,v+1):[],C})};return p(f)},{key:process.env.NODE_ENV==="development"&&"getAllColumns",debug:()=>{var f;return(f=n.options.debugAll)!=null?f:n.options.debugColumns}}),getAllFlatColumns:Le(()=>[n.getAllColumns()],f=>f.flatMap(p=>p.getFlatColumns()),{key:process.env.NODE_ENV==="development"&&"getAllFlatColumns",debug:()=>{var f;return(f=n.options.debugAll)!=null?f:n.options.debugColumns}}),_getAllFlatColumnsById:Le(()=>[n.getAllFlatColumns()],f=>f.reduce((p,h)=>(p[h.id]=h,p),{}),{key:process.env.NODE_ENV==="development"&&"getAllFlatColumnsById",debug:()=>{var f;return(f=n.options.debugAll)!=null?f:n.options.debugColumns}}),getAllLeafColumns:Le(()=>[n.getAllColumns(),n._getOrderColumnsFn()],(f,p)=>{let h=f.flatMap(g=>g.getLeafColumns());return p(h)},{key:process.env.NODE_ENV==="development"&&"getAllLeafColumns",debug:()=>{var f;return(f=n.options.debugAll)!=null?f:n.options.debugColumns}}),getColumn:f=>{const p=n._getAllFlatColumnsById()[f];if(!p)throw process.env.NODE_ENV!=="production"&&console.warn("[Table] Column with id "+f+" does not exist."),new Error;return p}};return Object.assign(n,d),n._features.forEach(f=>Object.assign(n,f.createTable==null?void 0:f.createTable(n))),n}function PR(e,t,n,r){const i=()=>{var o;return(o=a.getValue())!=null?o:e.options.renderFallbackValue},a={id:t.id+"_"+n.id,row:t,column:n,getValue:()=>t.getValue(r),renderValue:i,getContext:Le(()=>[e,n,t,a],(o,s,u,d)=>({table:o,column:s,row:u,cell:d,getValue:d.getValue,renderValue:d.renderValue}),{key:process.env.NODE_ENV==="development"&&"cell.getContext",debug:()=>e.options.debugAll})};return e._features.forEach(o=>{Object.assign(a,o.createCell==null?void 0:o.createCell(a,n,t,e))},{}),a}const AR=(e,t,n,r,i,a)=>{let o={id:t,index:r,original:n,depth:i,_valuesCache:{},getValue:s=>{if(o._valuesCache.hasOwnProperty(s))return o._valuesCache[s];const u=e.getColumn(s);if(!!u.accessorFn)return o._valuesCache[s]=u.accessorFn(o.original,r),o._valuesCache[s]},renderValue:s=>{var u;return(u=o.getValue(s))!=null?u:e.options.renderFallbackValue},subRows:a!=null?a:[],getLeafRows:()=>fR(o.subRows,s=>s.subRows),getAllCells:Le(()=>[e.getAllLeafColumns()],s=>s.map(u=>PR(e,o,u,u.id)),{key:process.env.NODE_ENV==="development"&&"row.getAllCells",debug:()=>{var s;return(s=e.options.debugAll)!=null?s:e.options.debugRows}}),_getAllCellsByColumnId:Le(()=>[o.getAllCells()],s=>s.reduce((u,d)=>(u[d.column.id]=d,u),{}),{key:process.env.NODE_ENV==="production"&&"row.getAllCellsByColumnId",debug:()=>{var s;return(s=e.options.debugAll)!=null?s:e.options.debugRows}})};for(let s=0;s<e._features.length;s++){const u=e._features[s];Object.assign(o,u==null||u.createRow==null?void 0:u.createRow(o,e))}return o};function IR(){return{accessor:(e,t)=>typeof e=="function"?{...t,accessorFn:e}:{...t,accessorKey:e},display:e=>e,group:e=>e}}function $R(){return e=>Le(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(i,a,o){a===void 0&&(a=0);const s=[];for(let d=0;d<i.length;d++){const f=AR(e,e._getRowId(i[d],d,o),i[d],d,a);if(n.flatRows.push(f),n.rowsById[f.id]=f,s.push(f),e.options.getSubRows){var u;f.originalSubRows=e.options.getSubRows(i[d],d),(u=f.originalSubRows)!=null&&u.length&&(f.subRows=r(f.originalSubRows,a+1,f))}}return s};return n.rows=r(t),n},{key:process.env.NODE_ENV==="development"&&"getRowModel",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugTable},onChange:()=>{e._autoResetPageIndex()}})}function NR(){return e=>Le(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const r=e.getState().sorting,i=[],a=r.filter(u=>e.getColumn(u.id).getCanSort()),o={};a.forEach(u=>{const d=e.getColumn(u.id);o[u.id]={sortUndefined:d.columnDef.sortUndefined,invertSorting:d.columnDef.invertSorting,sortingFn:d.getSortingFn()}});const s=u=>{const d=u.slice();return d.sort((f,p)=>{for(let g=0;g<a.length;g+=1){var h;const v=a[g],m=o[v.id],C=(h=v==null?void 0:v.desc)!=null?h:!1;if(m.sortUndefined){const w=f.getValue(v.id),S=p.getValue(v.id),D=typeof w>"u",_=typeof S>"u";if(D||_)return D&&_?0:D?m.sortUndefined:-m.sortUndefined}let b=m.sortingFn(f,p,v.id);if(b!==0)return C&&(b*=-1),m.invertSorting&&(b*=-1),b}return f.index-p.index}),d.forEach(f=>{i.push(f),!(!f.subRows||f.subRows.length<=1)&&(f.subRows=s(f.subRows))}),d};return{rows:s(n.rows),flatRows:i,rowsById:n.rowsById}},{key:process.env.NODE_ENV==="development"&&"getSortedRowModel",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugTable},onChange:()=>{e._autoResetPageIndex()}})}function kp(e,t){return e?LR(e)?l(e,{...t}):e:null}function LR(e){return VR(e)||typeof e=="function"||FR(e)}function VR(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function FR(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function zR(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=E.useState(()=>({current:kR(t)})),[r,i]=E.useState(()=>n.current.initialState);return n.current.setOptions(a=>({...a,...e,state:{...r,...e.state},onStateChange:o=>{i(o),e.onStateChange==null||e.onStateChange(o)}})),n.current}function Pp(e,t,n){return Math.min(Math.max(e,t),n)}class jR{constructor(t){this.steps=t;const n=[],r=new Set;for(const i of t)r.has(i.to)||(n.push(i),r.add(i.to));if(n.sort((i,a)=>i.from-a.from),n.length<2)throw new Error("MultiStepValueMapper requires at least 2 steps");this.steps=n}getLinearFunction(t,n){const r=(n.to-t.to)/(n.from-t.from),i=t.to-r*t.from;return a=>r*a+i}getStepFunctionForValue(t){let n=L.findLastIndex(this.steps,r=>r.from<=t);return n=Pp(n,0,this.steps.length-2),this.getLinearFunction(this.steps[n],this.steps[n+1])}mapValue(t){return Pp(this.getStepFunctionForValue(t)(t),0,100)}}const BR=({header:e,cx:t})=>y(c.Text,{className:t("table-head-cell",{"table-head-cell--sortable":e.column.getCanSort()}),onClick:e.column.getToggleSortingHandler(),children:[e.isPlaceholder?null:kp(e.column.columnDef.header,e.getContext()),l(GR,{direction:e.column.getIsSorted()})]}),GR=({direction:e})=>{switch(e){case"asc":return l(eE,{size:16});case"desc":return l(Z1,{size:"1em"});default:return null}},$l={id:"builtin:table:click-cell-content",displayName:"Click Cell Content",nameRender:UR,configRender:HR,payload:[{name:"row_index",description:"Index of the row that the cell belongs to",valueType:"number"},{name:"col_index",description:"Index of the column that the cell belongs to",valueType:"number"},{name:"row_data",description:"Data of the row that the cell belongs to",valueType:"object"}]},KR={column:""};function Ap(e){const{value:t}=Ue(e.instanceData,"config");return t?t.columns.map((n,r)=>({label:n.label,value:r.toString()})):[]}function qR(e){return L.isEmpty(e)?[]:Object.keys(e[0]).map(t=>({label:t,value:t}))}function HR(e){const t=Ap(e.instance),n=qR(e.sampleData),r=t.length>0?t:n,{value:i,set:a}=Ue(e.trigger.triggerData,"config"),{column:o}=L.defaults({},i,KR),s=u=>{isNaN(+u)?a({column:u}):a({column:+u})};return l(c.Select,{clearable:!1,data:r,label:"Choose a column",value:o.toString(),onChange:s})}function WR(e,t){return e?L.isNumber(e.column)?`Click cell of ${t[e.column].label}`:`Click cell of ${e.column}`:"Click cell content (click to config)"}function UR(e){const t=Ap(e.instance),{value:n}=Ue(e.trigger.triggerData,"config");return l(c.Text,{children:WR(n,t)})}const YR=c.createStyles(e=>({root:{overflow:"auto","& .table-head-cell":{display:"flex",flexFlow:"row nowrap",alignItems:"center",whiteSpace:"nowrap","&.table-head-cell--sortable":{cursor:"pointer",userSelect:"none"}},"&.table-highlight-on-hover tr":{transition:"background-color 0.2s","&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[5]:e.colors.gray[0]}}},thead:{background:e.colorScheme==="dark"?e.colors.dark[7]:e.white,position:"sticky",top:0}})),XR=c.createStyles((e,t)=>({content:{display:"flex",alignItems:"center",justifyContent:"flex-start",".table-cell-text":{whiteSpace:"nowrap",marginLeft:e.spacing.xs,cursor:t.clickable?"pointer":"default",textDecoration:t.clickable?"underline":"none"}}}));function QR(e){return e?Vr.default(e).oklch()[0]>.7?"black":"white":"inherit"}function ZR(e){const t=e.tableCellContext.bgColor;return{backgroundColor:t,color:QR(t)}}function ya(e){const t=e.tableCellContext.isClickable(),n=XR({clickable:t});return l("div",{className:n.classes.content,style:{...ZR(e)},children:l(c.Text,{className:"table-cell-text",onClick:e.tableCellContext.getClickHandler(),children:l("span",{children:e.children})})})}function JR(e){return l(ya,{...e,children:e.value})}function ek(e){return l(ya,{...e,children:e.value})}function tk(e){const t=$t.default(e.value).format({thousandSeparated:!0});return l(ya,{...e,children:t})}function nk(e){const t=$t.default(e.value).format({output:"percent",mantissa:3});return l(ya,{...e,children:t})}function rk(e){const t=e.value,n=e.func_content;return n?new Function(`return ${n}`)()({value:t}):t}function ik(e){switch(e.type){case yn.string:return l(JR,{...e});case yn.eloc:return l(ek,{...e});case yn.number:return l(tk,{...e});case yn.percentage:return l(nk,{...e});case yn.custom:return l(rk,{...e})}}const ak=e=>{const t=Ir(e),n=Ar(t.triggerManager,$l.id),{colorManager:r}=x.useContext(bn);return x.useCallback(i=>new lk(e.getColIndex,i,n,t,r),[n,t,e.getColIndex])};function ok({context:e,instance:t}){var V,F,R;const n=(V=e.data)!=null?V:[],{height:r,width:i}=e.viewport,{value:a=Sl}=Ue(e.instanceData,"config"),{use_raw_columns:o,columns:s,...u}=a,{classes:d,cx:f}=YR(),p=j.default.useMemo(()=>o?Object.keys(n[0]).map(M=>({id:M,label:M,value_field:M,value_type:yn.string})):s,[o,s,n]),h=ak({getColIndex:x.useCallback(M=>p.indexOf(M.column.columnDef.meta),[p]),vizManager:e.vizManager,instance:t}),g=x.useMemo(()=>{const M=IR(),I=p.map($=>M.accessor($.value_field,{cell:z=>l(ik,{tableCellContext:h(z.cell),value:z.getValue(),type:$.value_type,func_content:$.func_content}),header:$.label,enableSorting:!0,meta:$}));return[M.display({id:"#index",cell:$=>$.row.index+1,header:"#",size:10*(n.length.toString().length+1)}),...I]},[p,h]),[v,m]=x.useState([]),C=zR({data:n,state:{sorting:v},onSortingChange:m,columns:g,getCoreRowModel:$R(),getSortedRowModel:NR()}),{rows:b}=C.getRowModel(),w=j.default.useRef(null),S=Fh.useVirtual({parentRef:w,size:b.length,estimateSize:x.useCallback(()=>28,[]),overscan:20}),{virtualItems:D,totalSize:_}=S,P=D.length>0&&((F=D==null?void 0:D[0])==null?void 0:F.start)||0,N=D.length>0?_-(((R=D==null?void 0:D[D.length-1])==null?void 0:R.end)||0):0;return l("div",{ref:w,style:{height:r,width:i},className:f(d.root,{"table-highlight-on-hover":a.highlightOnHover}),children:y(c.Table,{sx:{maxHeight:r},...u,striped:a.striped,children:[l("thead",{className:d.thead,children:C.getHeaderGroups().map(M=>l("tr",{children:M.headers.map(I=>l("th",{style:{width:I.getSize()},children:l(BR,{header:I,cx:f})},I.id))},M.id))}),y("tbody",{children:[P>0&&l("tr",{children:l("td",{style:{height:`${P}px`}})}),D.map(M=>{const I=b[M.index];return l("tr",{children:I.getVisibleCells().map(A=>l("td",{children:kp(A.column.columnDef.cell,A.getContext())},A.id))},I.id)}),N>0&&l("tr",{children:l("td",{style:{height:`${N}px`}})})]})]})})}class lk{constructor(t,n,r,i,a){this.getColIndex=t,this.cell=n,this.triggers=r,this.interactionManager=i,this.colorManager=a}getClickHandler(){const t=this.getRelatedTrigger();if(t.length!==0)return()=>{const n={row_data:this.cell.row.original,row_index:this.cell.row.index,col_index:this.getColIndex(this.cell)};for(const r of t)this.interactionManager.runInteraction(r.id,n)}}getRelatedTrigger(){return this.triggers.filter(n=>n.schemaRef===$l.id).filter(n=>{const r=this.getColIndex(this.cell),i=L.get(this.cell.column.columnDef.meta,"value_field"),a=L.get(n.config,"column");return a==r||a==i})}isClickable(){return this.getRelatedTrigger().length>0}get columnConf(){return this.cell.column.columnDef.meta}get bgColor(){const t=this.columnConf.cellBackgroundColor;if(!t||t==="none")return;if(L.isString(t))return t;const n=+this.cell.getValue();if(isFinite(n)){const r=this.colorManager.decodeInterpolation(t.interpolation),a=new jR(t.steps).mapValue(n);return r==null?void 0:r.getColor(a)}}}const Ip=c.createStyles(()=>({palette:{display:"flex",flexFlow:"row nowrap"},paletteItem:{".palette-value":{height:24,overflow:"visible",width:36},".palette-item":{width:"36px",height:36*.618,cursor:"pointer",transition:"transform 100ms ease-in-out","&:hover":{boxShadow:"0 0 0 2px var(--shadow-color)",borderRadius:2,transform:"scale(1.2)"}}}})),sk=[{from:0,to:0},{from:100,to:100}];class uk{constructor(){pe(this,"steps",new Map);pe(this,"interpolation");pe(this,"onChange");kt.makeAutoObservable(this,{steps:kt.observable},{deep:!1}),kt.reaction(()=>kt.toJS(this.steps),()=>{this.notifyStepChange()})}setSteps(t){for(const n of t)this.steps.set(n.to,n.from)}notifyStepChange(){var t;(t=this.onChange)==null||t.call(this,Array.from(this.steps.entries()).map(([n,r])=>({to:n,from:r})).sort((n,r)=>n.to-r.to||n.from-r.from))}fromProps(t){t.steps.length<2?this.setSteps(sk):this.setSteps(t.steps),this.interpolation=t.interpolation,this.onChange=t.onChange}changeStep(t,n){t==null?this.steps.delete(n):this.steps.set(n,t)}getStepFromValue(t){return this.steps.get(t)}}function ck(e){const{onChange:t,color:n,index:r,value:i}=e,{classes:a}=Ip(),[o,s]=x.useState(i),[u,{setTrue:d,setFalse:f}]=Ze.useBoolean(!1),p=r%2===1,h=p&&i!=null,g=!p&&i!=null,v=`map ${i} to color ${r}`,m=()=>{s(i),f()},C=()=>{f(),t==null||t(o)},b=$t.default(i).format({average:!0});return y("div",{"data-testid":`palette-item-${r}`,className:a.paletteItem,children:[l(c.Text,{title:v,style:{opacity:h?1:0},color:"dimmed",size:"sm",className:"palette-value--up palette-value",children:b}),y(c.Popover,{width:200,trapFocus:!0,opened:u,onClose:f,children:[l(c.Popover.Target,{children:l("div",{"data-testid":"palette-item-target",className:"palette-item",onClick:d,style:{"--shadow-color":Vr.default(n).alpha(.5).hex(),backgroundColor:n}})}),l(c.Popover.Dropdown,{children:y(c.Stack,{children:[l(c.NumberInput,{size:"xs",label:"Map a value to this color",value:o,onChange:s}),y(c.Group,{position:"right",children:[l(c.Button,{variant:"subtle",size:"xs",onClick:m,children:"Cancel"}),l(c.Button,{"data-testid":"palette-item-ok",size:"xs",onClick:C,children:"OK"})]})]})})]}),l(c.Text,{title:v,style:{opacity:g?1:0},color:"dimmed",size:"sm",className:"palette-value--bottom palette-value",children:b})]})}const dk=X.observer(({model:e})=>{const{classes:t}=Ip(),n=L.range(0,13,1).map(r=>100/12*r).map(r=>[e.interpolation.getColor(r),r]);return l("div",{className:t.palette,children:n.map(([r,i],a)=>l(ck,{index:a,color:r,value:e.getStepFromValue(i),onChange:o=>e.changeStep(o,i)},r))})}),fk=X.observer(function(t){const n=Ze.useCreation(()=>new uk,[]);return x.useEffect(()=>{n.fromProps(t)}),n.interpolation==null?null:l(dk,{model:n})}),pk=e=>{const{value:t,onChange:n,colorManager:r}=e,i=r.getColorInterpolations(),[a,o]=x.useState(t),s=r.decodeInterpolation(a.interpolation)||i[0],[u,{setTrue:d,setFalse:f}]=Ze.useBoolean(),p=i.map(C=>({label:C.displayName,value:r.encodeColor(C),group:C.category}));function h(C){C&&o(b=>({...b,interpolation:C}))}const g=()=>{f(),n==null||n(kt.toJS(a))};function v(C){o(b=>({...b,steps:C}))}const m=()=>{f(),o(t)};return y(Oe,{children:[l(c.Button,{variant:"outline",onClick:d,children:s==null?void 0:s.displayName}),l(c.Modal,{size:508,title:"Setup color interpolation",opened:u,onClose:f,children:u&&y(c.Stack,{"data-testid":"color-interpolation-modal",children:[l(c.Select,{label:"Color style",value:a.interpolation,data:p,onChange:h}),l(fk,{steps:a.steps,interpolation:s,onChange:v}),y(c.Group,{position:"right",children:[l(c.Button,{onClick:m,variant:"subtle",children:"Cancel"}),l(c.Button,{onClick:g,children:"OK"})]})]})})]})},hk=["static","interpolation","none"],gk=[{from:0,to:0},{from:100,to:100}];function $p(e){return e?L.isString(e)?e==="none"?"none":"static":"interpolation":"none"}function vk(e,t){var n;return $p(t)==="static"?t:(n=e.getStaticColors()[0])==null?void 0:n.value}function mk(e,t){return L.isObject(t)?t:{steps:gk,interpolation:e.encodeColor(e.getColorInterpolations()[0])}}const yk=e=>{const{colorManager:t}=x.useContext(bn),[n,r]=x.useState($p(e.value)),[i,a]=x.useState(vk(t,e.value)),o=Ze.useLatest(i),[s,u]=x.useState(mk(t,e.value)),d=Ze.useLatest(s),f=g=>{var v,m,C;r(g||"none"),g==="static"?(v=e.onChange)==null||v.call(e,o.current):g==="none"||!g?(m=e.onChange)==null||m.call(e,"none"):(C=e.onChange)==null||C.call(e,d.current)},p=g=>{var v;a(g),(v=e.onChange)==null||v.call(e,g)},h=g=>{var v;u(g),(v=e.onChange)==null||v.call(e,g)};return y(c.Stack,{align:"stretch",children:[l(c.Select,{label:"Cell background",value:n||"none",onChange:f,data:hk}),n==="static"&&l(mn,{value:i,onChange:p}),n==="interpolation"&&l(pk,{colorManager:t,value:s,onChange:h})]})},bk=Object.values(yn).map(e=>({label:e,value:e}));function Ck({label:e,value:t,onChange:n,sx:r}){return l(c.Select,{label:e,data:bk,value:t,onChange:n,sx:r})}const Sk=x.forwardRef(({value:e,onChange:t},n)=>{const[r,{setTrue:i,setFalse:a}]=Ze.useBoolean(),[o,s]=x.useState(e),u=()=>{a(),t(o)},d=()=>{a(),s(e)},f=()=>{s(mp)};return x.useEffect(()=>{s(e)},[e]),y(Oe,{children:[l(c.Button,{variant:"filled",mt:24,onClick:i,sx:{flexGrow:0},children:"Custom Cell Content"}),l(c.Modal,{size:800,title:"Custom cell content",opened:r,onClose:a,closeOnClickOutside:!1,withCloseButton:!1,children:r&&y(c.Stack,{children:[l(c.Box,{sx:{position:"relative"},children:l(Jn.default,{height:"500px",defaultLanguage:"javascript",value:o,onChange:p=>s(p!=null?p:""),theme:"vs-dark",options:{minimap:{enabled:!1}}})}),y(c.Group,{position:"apart",children:[l(c.Button,{onClick:f,color:"red",leftIcon:l(W.Recycle,{size:20}),children:"Rest"}),y(c.Group,{position:"right",children:[l(c.Button,{onClick:d,variant:"subtle",children:"Cancel"}),l(c.Button,{onClick:u,children:"OK"})]})]})]})})]})}),wk=({control:e,index:t,watch:n,remove:r,column:i,data:a})=>{const o=n(`columns.${t}.value_type`);return y(c.Stack,{my:0,sx:{position:"relative"},children:[y(c.Group,{grow:!0,children:[l(k.Controller,{name:`columns.${t}.label`,control:e,render:({field:s})=>l(c.TextInput,{label:"Label",required:!0,id:`col-label-${t}`,sx:{flex:1},...s})}),l(k.Controller,{name:`columns.${t}.value_field`,control:e,render:({field:s})=>l(ot,{label:"Value Field",required:!0,data:a,...s})})]}),y(c.Group,{grow:!0,children:[l(k.Controller,{name:`columns.${t}.value_type`,control:e,render:({field:s})=>l(Ck,{label:"Value Type",sx:{flex:1},...s})}),o===yn.custom&&l(k.Controller,{name:`columns.${t}.func_content`,control:e,render:({field:s})=>{var u;return l(Sk,{value:(u=s.value)!=null?u:mp,onChange:d=>s.onChange(d!=null?d:"")})}})]}),l(k.Controller,{name:`columns.${t}.cellBackgroundColor`,control:e,render:({field:s})=>l(yk,{...s})}),l(c.Divider,{mb:4,mt:12,variant:"dashed"}),l(c.Button,{leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>r(t),children:"Delete this column"})]})},xk=({control:e,watch:t,data:n})=>{const{fields:r,append:i,remove:a,update:o}=k.useFieldArray({control:e,name:"columns"}),s=()=>{const d=bt.randomId();i({id:d,label:d,value_field:"value",value_type:yn.string})};t("columns");const u=t("use_raw_columns");return y(Oe,{children:[l(k.Controller,{name:"use_raw_columns",control:e,render:({field:d})=>l(c.Switch,{mt:20,label:"Use Original Data Columns",checked:d.value,onChange:f=>d.onChange(f.currentTarget.checked)})}),l(c.Divider,{mt:20,mb:10,variant:"dashed"}),!u&&y(c.Stack,{children:[l(c.Text,{my:0,children:"Custom Columns"}),y(c.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px",paddingTop:"6px"}},children:[y(c.Tabs.List,{children:[r.map((d,f)=>l(c.Tabs.Tab,{value:f.toString(),children:f+1},d.id)),l(c.Tabs.Tab,{onClick:s,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),r.map((d,f)=>l(c.Tabs.Panel,{value:f.toString(),children:l(wk,{control:e,watch:t,index:f,column:d,data:n,remove:a},f)},d.id))]})]})]})};function _k({control:e,watch:t,data:n}){return y(c.Stack,{spacing:"xs",children:[y(c.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:[l(k.Controller,{name:"horizontalSpacing",control:e,render:({field:r})=>l(c.TextInput,{label:"Horizontal Spacing",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...r})}),l(k.Controller,{name:"verticalSpacing",control:e,render:({field:r})=>l(c.TextInput,{label:"Vertical Spacing",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...r})})]}),l(c.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:l(k.Controller,{name:"fontSize",control:e,render:({field:r})=>l(c.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...r})})}),y(c.Group,{position:"apart",grow:!0,children:[l(k.Controller,{name:"striped",control:e,render:({field:r})=>l(c.Switch,{label:"Striped",checked:r.value,onChange:i=>r.onChange(i.currentTarget.checked)})}),l(k.Controller,{name:"highlightOnHover",control:e,render:({field:r})=>l(c.Switch,{label:"Highlight on hover",checked:r.value,onChange:i=>r.onChange(i.currentTarget.checked)})})]})]})}function Ek({columns:e,...t}){return{...t,columns:e.map(({id:n,...r})=>({id:n!=null?n:bt.randomId(),...r}))}}function Tk({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=e.data,i=x.useMemo(()=>L.defaultsDeep({},t,Sl),[t]),a=x.useMemo(()=>Ek(i),[i]);x.useEffect(()=>{!L.isEqual(i,a)&&(console.log("config malformed, resetting to defaults",i,a),n(a))},[i,a]);const{control:o,handleSubmit:s,watch:u,getValues:d,reset:f}=k.useForm({defaultValues:a});x.useEffect(()=>{f(a)},[a]);const p=d(),h=x.useMemo(()=>!L.isEqual(p,i),[p,i]);return y("form",{onSubmit:s(n),children:[y(c.Group,{position:"apart",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{children:"Table Config"}),l(c.ActionIcon,{type:"submit","aria-label":"save config",mr:5,variant:"filled",color:"blue",disabled:!h,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Tabs,{defaultValue:"Columns",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[y(c.Tabs.List,{children:[l(c.Tabs.Tab,{value:"Data",children:"Data"}),l(c.Tabs.Tab,{value:"Style",children:"Style"}),l(c.Tabs.Tab,{value:"Columns",children:"Columns"}),l(c.Tabs.Tab,{value:"Config JSON",children:"Config JSON"})]}),l(c.Tabs.Panel,{value:"Data",children:l(k.Controller,{name:"id_field",control:o,render:({field:g})=>l(ot,{label:"ID Field",required:!0,data:r,...g})})}),l(c.Tabs.Panel,{value:"Style",children:l(_k,{control:o,watch:u,data:r})}),l(c.Tabs.Panel,{value:"Columns",children:l(xk,{control:o,watch:u,data:r})}),y(c.Tabs.Panel,{value:"Config JSON",children:[l(c.Text,{weight:500,mb:"md",children:"Current Configuration:"}),l(In.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(d(),null,2)})]})]})]})}class Ok extends Ft{constructor(){super(...arguments);pe(this,"VERSION",2)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,n=>{const{columns:r,...i}=n.config;return{...n,version:2,config:{...i,columns:r.map(({id:a,...o})=>({id:a!=null?a:bt.randomId(),...o}))}}})}}const Nl={createConfig(){return{version:2,config:L.cloneDeep(Sl)}},displayName:"Table",migrator:new Ok,name:"table",viewRender:ok,configRender:Tk,triggers:[$l]},Mk=()=>y("svg",{width:"64",height:"64",viewBox:"0 0 64 64",fill:"none",children:[l("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M22.49 27.79H14.47C13.55 27.79 12.81 28.53 12.81 29.45C12.81 30.37 13.55 31.11 14.47 31.11H22.49C23.41 31.11 24.15 30.37 24.15 29.45C24.15 28.54 23.41 27.79 22.49 27.79ZM34.32 31.28C35.22 31.32 35.7 31.82 35.74 32.76C35.78 33.54 35.37 34.3 34.51 35.04C33.52 35.9 33.03 36.95 33.03 38.19V38.81H34.82V38.25C34.78 37.59 35.07 37.02 35.68 36.52C37.12 35.41 37.82 34.15 37.78 32.75C37.66 30.53 36.5 29.35 34.32 29.23C32.3 29.23 31.05 30.46 30.55 32.93L32.53 33.55C32.82 32.04 33.42 31.28 34.32 31.28ZM35 39.93H32.84V42.21H35V39.93ZM14.83 36.42H18.54C19.46 36.42 20.2 37.17 20.2 38.08C20.2 39 19.46 39.74 18.54 39.74H10.52C9.6 39.74 8.86 39 8.86 38.08C8.86 37.61 9.06 37.19 9.37 36.89H5.66C4.74 36.89 4 36.15 4 35.23C4 34.31 4.74 33.57 5.66 33.57H13.68C14.6 33.57 15.34 34.31 15.34 35.23C15.34 35.7 15.14 36.12 14.83 36.42ZM50.94 36.85H58.74C59.66 36.85 60.4 37.59 60.41 38.51C60.41 39.43 59.67 40.17 58.75 40.17H54.26C54.56 40.47 54.74 40.88 54.74 41.34C54.74 42.26 54 43 53.08 43H50.94V36.85Z",fill:"#B8C0CC"}),l("path",{d:"M18.39 32.28H16.51V35.02H18.39V32.28Z",fill:"#9399A5"}),l("path",{d:"M46.87 15H20.69C18.38 15 16.5 16.88 16.5 19.19V26.22H18.38V23.45H49.18V47.68H18.38V41.07H16.5V49.55H51.05V19.19C51.06 16.88 49.18 15 46.87 15ZM39.46 20.73C38.81 20.73 38.29 20.2 38.29 19.56C38.29 18.92 38.82 18.39 39.46 18.39C40.11 18.39 40.63 18.92 40.63 19.56C40.63 20.2 40.11 20.73 39.46 20.73ZM43.22 20.73C42.57 20.73 42.05 20.2 42.05 19.56C42.05 18.92 42.58 18.39 43.22 18.39C43.87 18.39 44.39 18.92 44.39 19.56C44.39 20.2 43.87 20.73 43.22 20.73ZM46.97 20.73C46.32 20.73 45.8 20.2 45.8 19.56C45.8 18.92 46.33 18.39 46.97 18.39C47.62 18.39 48.14 18.92 48.14 19.56C48.14 20.2 47.62 20.73 46.97 20.73Z",fill:"#9399A5"})]});function Np(e,t){const n=De.default.get(e,t,"");if(n)throw new Error(n)}async function Dk(e,t,n,r={}){const i={"X-Requested-With":"XMLHttpRequest","Content-Type":r.string?"application/x-www-form-urlencoded":"application/json",...r.headers},a={baseURL:e,method:"POST",url:t,params:r.params,headers:i};return a.data=r.string?JSON.stringify(n):n,Oa.default(a).then(o=>o.data).catch(o=>Promise.reject(o))}const Rk=({conf:e,data:t})=>async()=>{const{expertSystemURL:n,path:r,goal:i,question:a}=e;if(!r||!i||!a)return;const o={dashboard:i,panel:a,data:t};try{const s=n.startsWith("http")?n:window.location.origin;return await Dk(s,`/expert/v3/devtable/${r}`,o,{})}catch(s){throw Np(s,"response.data.detail"),Np(s,"response.data.error"),console.error(s),s}},Ll={expertSystemURL:"",path:"",goal:"",question:""},Lp={height:"100%",overflowY:"scroll",ul:{paddingLeft:"2em",margin:"6px 0 0"},p:{margin:0},a:{WebkitTapHighlightColor:"transparent",color:"rgb(34, 139, 230)",textDecoration:"none","&:hover":{textDecoration:"underline"},"&:active, &:hover":{outlineWidth:0}}},Vp=({message:e})=>l(c.Box,{sx:Lp,children:l("div",{dangerouslySetInnerHTML:{__html:e},style:{fontSize:"14px",lineHeight:"32px",color:"#3D3E45"}})}),kk=({error:e,width:t,height:n})=>{const r=e.message;return r.startsWith("<")?l(Vp,{message:r}):l(c.Center,{sx:{width:t,height:n-25-20},children:y(c.Stack,{align:"center",spacing:20,children:[l(Mk,{}),l(Vp,{message:r})]})})};function Pk({context:e}){var d;const{value:t}=Ue(e.instanceData,"config"),n=x.useMemo(()=>L.defaultsDeep({},t,Ll),[t]),{width:r,height:i}=e.viewport,a=(d=e.data)!=null?d:[],{data:o,error:s,loading:u}=Ze.useRequest(Rk({conf:n,data:a}),{refreshDeps:[a,n]});return!r||!i||!n?null:u?l(c.Box,{sx:{position:"relative",height:i},children:l(c.LoadingOverlay,{visible:!0})}):s?l(kk,{error:s,width:r,height:i}):!o||!Array.isArray(o.replies)||o.replies.length===0?null:l(c.Box,{sx:Lp,"data-enable-scrollbar":!0,children:o.replies.map((f,p)=>l("div",{dangerouslySetInnerHTML:{__html:f.interpretation.html},style:{fontSize:"14px",lineHeight:"32px",color:"#3D3E45"}},p))})}function Ak({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=x.useMemo(()=>L.defaultsDeep({},t,Ll),[t]),{control:i,handleSubmit:a,watch:o,getValues:s,reset:u}=k.useForm({defaultValues:r});x.useEffect(()=>{u(r)},[r]),o(["expertSystemURL","goal","path","question"]);const d=s(),f=x.useMemo(()=>!L.isEqual(d,r),[d,r]);return l("form",{onSubmit:a(n),children:y(c.Stack,{children:[y(c.Group,{grow:!0,children:[l(k.Controller,{name:"expertSystemURL",control:i,render:({field:p})=>l(c.TextInput,{label:"Expert System URL",...p})}),l(k.Controller,{name:"path",control:i,render:({field:p})=>l(c.TextInput,{label:"Path",required:!0,...p})})]}),y(c.Group,{grow:!0,children:[l(k.Controller,{name:"goal",control:i,render:({field:p})=>l(c.TextInput,{label:"Goal",required:!0,...p})}),l(k.Controller,{name:"question",control:i,render:({field:p})=>l(c.TextInput,{label:"Question",required:!0,...p})})]}),l(c.Divider,{variant:"dashed",mt:16,mb:8}),l(c.Button,{type:"submit",variant:"filled",color:"blue",leftIcon:l(W.DeviceFloppy,{size:20}),disabled:!f,sx:{alignSelf:"flex-end"},children:"Submit Changes"})]})})}class Ik extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const $k={displayName:"Merico GQM",migrator:new Ik,name:"mericoGQM",viewRender:Pk,configRender:Ak,createConfig:()=>Ll};function Nk(e){const t=e.y_axes.some(i=>!!i.name);let n=10;t&&(n+=20),e.dataZoom.x_axis_slider&&(n+=20);let r=25;return e.x_axis.name&&(r+=15),{top:n,bottom:r}}function Lk({type:e,...t},n,r,i){if(!e)return 10;if(e==="static"){const{size:s}=t;return s}const{func_content:a}=t,o=L.keyBy(n,r);return(s,u)=>{let d;u.name?d=o[u.name]:d=n[u.dataIndex];try{return new Function(`return ${a}`)()({rowData:d,params:u,variables:i},{lodash:De.default,interpolate:il})}catch(f){return console.error(`[getEchartsSymbolSize] failed parsing custom function, error: ${f.message}`),10}}}function Vk(e,t,n,r){return e.map(i=>{const a=i.orientation==="horizontal",o=a?"yAxis":"xAxis",s=a?"insideEndTop":"end";return{name:"refs",type:"scatter",data:[],markLine:{data:[{name:i.name,[o]:Number(n[i.variable_key])}],silent:!0,symbol:["none","none"],label:{formatter:function(){return ll(i.template,t,r)},position:s}}}})}function Fk(e,t){return e.map(n=>({name:"",type:"line",data:[],markArea:{itemStyle:{color:n.color},data:[[{yAxis:t[n.y_keys.upper]},{yAxis:t[n.y_keys.lower]}]],silent:!0}}))}function zk({x_axis:e,scatter:t},n,r,i){return{label:{show:!!t.label_position,position:t.label_position,formatter:({value:a})=>a[t.name_data_key]},type:"scatter",name:"",xAxisId:"main-x-axis",yAxisIndex:0,datasetIndex:0,color:t.color,symbolSize:Lk(t.symbolSize,n,e.data_key,r),encode:{x:e.data_key,y:t.y_data_key}}}function jk(e,t,n,r,i,a,o){return[zk(e,r,o)].concat(Vk(e.reference_lines,a,o,r)).concat(Fk(e.reference_areas,o))}function Fp({enabled:e,func_content:t}){return(n,r)=>{if(!e)return n;try{return new Function(`return ${t}`)()(n,r)}catch(i){return console.error(`[getEchartsXAxisLabel] failed parsing custom function, error: ${i.message}`),n}}}function Bk(e,t){const n=e.find(o=>o.axisDim==="x"&&o.axisId==="main-x-axis");if(!n)return"";const{name:r,axisValue:i,axisIndex:a}=n;return t.x_axis.axisLabel.formatter.enabled?Fp(t.x_axis.axisLabel.formatter)(i,a):i}const Gk=e=>{try{return $t.default(e).format({trimMantissa:!0,mantissa:2})}catch{return e}};function Kk(e,t){const{scatter:n}=e;return{confine:!0,formatter:function(r){var p;const i=(p=t[0])!=null?p:t.default,a=Array.isArray(r)?r:[r];if(a.length===0)return"";const o=Bk(a,e),s=a.map(({value:h})=>`<th style="text-align: right; padding-right: 1em">${h[n.name_data_key]}</th>`);s.unshift("<th></th>");const u=[`<tr>
|
|
226
226
|
<th style="text-align: right;">${e.x_axis.name}</th>
|
|
227
227
|
${a.map(h=>`<td style="text-align: right; padding: 0 1em;">${o}</td>`).join("")}
|
|
228
228
|
</tr>`,`<tr>
|
|
@@ -236,7 +236,7 @@ WHERE
|
|
|
236
236
|
<thead><tr>${s.join("")}</tr></thead>
|
|
237
237
|
<tbody>${u.join("")}</tbody>
|
|
238
238
|
</table>
|
|
239
|
-
`}}}function qk(e,t){var i;const n=t.every(a=>!Number.isNaN(Number(a))),{axisLabel:r}=e.x_axis;return[{data:t,name:(i=e.x_axis.name)!=null?i:"",id:"main-x-axis",axisTick:{show:!0,alignWithLabel:!0},type:n?"value":"category",axisLabel:{...r,formatter:Fp(r.formatter)}}]}function Hk(e,t){return e.y_axes.map(({nameAlignment:n,...r},i)=>{var o;let a=r.position;return a||(a=i>0?"right":"left"),{...r,position:a,axisLabel:{show:!0,formatter:(o=t[i])!=null?o:t.default},axisLine:{show:!0},nameTextStyle:{fontWeight:"bold",align:n},nameLocation:"end",nameGap:15,splitLine:{show:!1}}})}function Wk(){return{show:!1,bottom:0,left:"center",type:"scroll"}}const Uk={tooltip:{trigger:"axis"},xAxis:[{type:"category",nameGap:25,nameLocation:"center",nameTextStyle:{fontWeight:"bold"},splitLine:{show:!1},axisTick:{show:!0,alignWithLabel:!0}}],grid:{top:10,left:30,right:15,bottom:25,containLabel:!0}};function Yk(e,t,n){const r=n.reduce((d,f)=>{const p=
|
|
239
|
+
`}}}function qk(e,t){var i;const n=t.every(a=>!Number.isNaN(Number(a))),{axisLabel:r}=e.x_axis;return[{data:t,name:(i=e.x_axis.name)!=null?i:"",id:"main-x-axis",axisTick:{show:!0,alignWithLabel:!0},type:n?"value":"category",axisLabel:{...r,formatter:Fp(r.formatter)}}]}function Hk(e,t){return e.y_axes.map(({nameAlignment:n,...r},i)=>{var o;let a=r.position;return a||(a=i>0?"right":"left"),{...r,position:a,axisLabel:{show:!0,formatter:(o=t[i])!=null?o:t.default},axisLine:{show:!0},nameTextStyle:{fontWeight:"bold",align:n},nameLocation:"end",nameGap:15,splitLine:{show:!1}}})}function Wk(){return{show:!1,bottom:0,left:"center",type:"scroll"}}const Uk={tooltip:{trigger:"axis"},xAxis:[{type:"category",nameGap:25,nameLocation:"center",nameTextStyle:{fontWeight:"bold"},splitLine:{show:!1},axisTick:{show:!0,alignWithLabel:!0}}],grid:{top:10,left:30,right:15,bottom:25,containLabel:!0}};function Yk(e,t,n){const r=n.reduce((d,f)=>{const p=al(f,t);return d[f.name]=di(f,p),d},{}),i=e.y_axes.reduce((d,{label_formatter:f},p)=>(d[p]=function(g){let v=g;if(typeof g=="object"&&(Array.isArray(g.value)&&g.value.length===2?v=g.value[1]:v=g.value),!f)return v;try{return $t.default(v).format(f)}catch(m){return console.error(m),v}},d),{default:({value:d})=>d}),a=De.default.uniq(t.map(d=>d[e.x_axis.data_key])),o=a.every(d=>!Number.isNaN(Number(d))),s=jk(e,a,o,t,i,n,r),u={xAxis:qk(e,a),yAxis:Hk(e,i),series:s,dataset:[{source:t}],tooltip:Kk(e,i),grid:Nk(e),legend:Wk(),dataZoom:dl(e.dataZoom)};return L.defaultsDeep({},u,Uk)}const zp={id:"builtin:echarts:click-scatter-chart:series",displayName:"Click Scatter",nameRender:Qk,configRender:Xk,payload:[{name:"seriesType",description:"'scatter'",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 Xk(e){return l(Oe,{})}function Qk(e){return l(c.Text,{children:"Click scatter"})}const jp={enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
|
|
240
240
|
`)},Vl={scatter:{y_data_key:"",name_data_key:"",symbolSize:{type:"static",size:10},color:"#000000",label_position:"right"},stats:{templates:{top:"",bottom:""}},x_axis:{name:"",data_key:"",axisLabel:{rotate:0,formatter:{...jp}}},y_axes:[{name:"Y Axis",position:"left",nameAlignment:"center",label_formatter:vn}],tooltip:{metrics:[]},reference_lines:[],reference_areas:[],dataZoom:$r};wt.use([Je.DataZoomComponent,Qt.BarChart,Qt.LineChart,Qt.ScatterChart,Je.GridComponent,Je.LegendComponent,Je.TooltipComponent,Sn.CanvasRenderer,Je.MarkLineComponent,Je.MarkAreaComponent]),wt.registerTransform(_a.transform.regression);function Zk({conf:e,data:t,width:n,height:r,interactionManager:i,variables:a}){const o=x.useMemo(()=>De.default.keyBy(t,e.x_axis.data_key),[t,e.x_axis.data_key]),s=Ar(i.triggerManager,zp.id),u=f=>{const p=f.value[0],h=De.default.get(o,p,{error:"rowData is not found"});s.forEach(g=>{i.runInteraction(g.id,{...f,rowData:h})})},d=j.default.useMemo(()=>Yk(e,t,a),[e,t]);return!n||!r?null:l(wn.default,{echarts:wt,option:d,style:{width:n,height:r},onEvents:{click:u}})}function Jk({context:e,instance:t}){const n=Ir({vizManager:e.vizManager,instance:t}),{value:r}=Ue(e.instanceData,"config"),{variables:i}=e,a=x.useMemo(()=>L.defaults({},r,Vl),[r]),o=e.data,{width:s,height:u}=e.viewport,{ref:d,height:f}=bt.useElementSize(),{ref:p,height:h}=bt.useElementSize(),g=j.default.useMemo(()=>{const{stats:{templates:m}}=a;return{top:fi(m.top,i,o),bottom:fi(m.bottom,i,o)}},[a,o]),v=Math.max(0,u-f-h);return y(c.Box,{children:[l(c.Text,{ref:d,align:"left",size:"xs",pl:"sm",children:Object.values(g.top).map(m=>m)}),l(Zk,{variables:i,width:s,height:v,data:o,conf:a,interactionManager:n}),l(c.Text,{ref:p,align:"left",size:"xs",pl:"sm",children:Object.values(g.bottom).map(m=>m)})]})}const eP=[{label:"Horizontal",value:"horizontal"},{label:"Vertical",value:"vertical"}];function tP({control:e,index:t,remove:n,watch:r,variableOptions:i}){const a=r(`reference_lines.${t}.orientation`);return y(c.Stack,{my:0,p:0,sx:{position:"relative"},children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`reference_lines.${t}.name`,control:e,render:({field:o})=>l(c.TextInput,{label:"Name",placeholder:"Average Reference Line",required:!0,sx:{flex:1},...o})}),l(k.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:o})=>l(c.Select,{label:"Value",required:!0,data:i,sx:{flex:1},...o})})]}),l(k.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:o})=>l(c.TextInput,{label:"Content Template",placeholder:"Average: ${avg}",required:!0,sx:{flex:1},...o})}),l(k.Controller,{name:`reference_lines.${t}.orientation`,control:e,render:({field:o})=>l(c.Select,{label:"Orientation",data:eP,required:!0,sx:{flex:1},...o})}),a==="vertical"&&l(c.Text,{mt:-10,color:"dimmed",size:12,children:"Works only when xAxis values are numbers"}),l(c.Button,{leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),sx:{top:15,right:5},children:"Delete this Reference Line"})]},t)}function nP({control:e,watch:t,variables:n}){const{fields:r,append:i,remove:a}=k.useFieldArray({control:e,name:"reference_lines"}),o=t("reference_lines"),s=r.map((f,p)=>({...f,...o[p]})),u=()=>i({name:"",template:"",variable_key:"",orientation:"horizontal"}),d=x.useMemo(()=>n.map(f=>({label:f.name,value:f.name})),[n]);return y(c.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px"}},children:[y(c.Tabs.List,{children:[s.map((f,p)=>l(c.Tabs.Tab,{value:p.toString(),children:p+1},p)),l(c.Tabs.Tab,{onClick:u,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),s.map((f,p)=>l(c.Tabs.Panel,{value:p.toString(),children:l(tP,{control:e,index:p,remove:a,watch:t,variableOptions:d})},p))]})}const rP=({value:e,onChange:t})=>{const n=r=>{!r||t(r)};return l(c.Box,{children:l(Jn.default,{height:"500px",defaultLanguage:"javascript",value:e,onChange:n,theme:"vs-dark",options:{minimap:{enabled:!1}}})})},Bp={static:{type:"static",size:10},dynamic:{type:"dynamic",func_content:["function getSize({ rowData, params, variables }, { lodash, interpolate }) {"," // your code goes here"," // return 10","}"].join(`
|
|
241
|
-
`)}},iP=({value:e,onChange:t,data:n})=>{const[r,{setTrue:i,setFalse:a}]=Ze.useBoolean(),[o,s]=x.useState(e),u=()=>{a();const{type:h,func_content:g}=o,v={type:h,func_content:g};s(v),t(v)},d=()=>{a(),s(e)},f=h=>{s(g=>({...g,func_content:h}))},p=()=>{f(Bp.dynamic.func_content)};return y(Oe,{children:[l(c.Box,{sx:{width:"50%"},children:l(c.Button,{variant:"filled",mt:24,onClick:i,sx:{flexGrow:0},children:"Setup"})}),l(c.Modal,{size:800,title:"Setup dynamic size",opened:r,onClose:a,closeOnClickOutside:!1,withCloseButton:!1,children:r&&y(c.Stack,{children:[l(c.Divider,{mt:10,mb:-10,label:"Dynamic by a custom function",labelPosition:"center",variant:"dashed"}),l(rP,{value:o.func_content,onChange:f}),y(c.Group,{position:"apart",children:[l(c.Button,{onClick:p,color:"red",leftIcon:l(W.Recycle,{size:20}),children:"Rest"}),y(c.Group,{position:"right",children:[l(c.Button,{onClick:d,variant:"subtle",children:"Cancel"}),l(c.Button,{onClick:u,children:"OK"})]})]})]})})]})},aP=({value:e,onChange:t,data:n})=>e.type!=="dynamic"?null:l(iP,{value:e,onChange:t,data:n}),oP=({value:e,onChange:t})=>{if(e.type!=="static")return null;const n=r=>{t({...e,size:r})};return l(Oe,{children:l(c.NumberInput,{defaultValue:18,placeholder:"1 ~ 100",label:" ",hideControls:!0,value:e.size,onChange:n})})},lP=[{label:"Static",value:"static"},{label:"Dynamic",value:"dynamic"}],sP=x.forwardRef(({label:e="Size",value:t,onChange:n,data:r},i)=>{const a=o=>{n({...Bp[o]})};return y(c.SimpleGrid,{cols:2,children:[l(c.Select,{ref:i,label:e,data:lP,value:t.type,onChange:a,sx:{flexGrow:1}}),l(oP,{value:t,onChange:n}),l(aP,{value:t,onChange:n,data:r})]})}),uP=[{label:"off",value:""},{label:"top",value:"top"},{label:"left",value:"left"},{label:"right",value:"right"},{label:"bottom",value:"bottom"},{label:"inside",value:"inside"},{label:"insideLeft",value:"insideLeft"},{label:"insideRight",value:"insideRight"},{label:"insideTop",value:"insideTop"},{label:"insideBottom",value:"insideBottom"},{label:"insideTopLeft",value:"insideTopLeft"},{label:"insideBottomLeft",value:"insideBottomLeft"},{label:"insideTopRight",value:"insideTopRight"},{label:"insideBottomRight",value:"insideBottomRight"}];function cP({data:e,control:t,watch:n}){return n(["scatter"]),y(c.Stack,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"scatter.name_data_key",control:t,render:({field:r})=>l(ot,{label:"Name Data Field",required:!0,data:e,sx:{flex:1},...r})}),l(k.Controller,{name:"scatter.y_data_key",control:t,render:({field:r})=>l(ot,{label:"Value Data Field",required:!0,data:e,sx:{flex:1},...r})})]}),l(c.Divider,{mb:-15,label:"Style",labelPosition:"center"}),l(k.Controller,{name:"scatter.symbolSize",control:t,render:({field:r})=>l(sP,{label:"Size",data:e,...r})}),y(c.Stack,{spacing:4,children:[l(c.Text,{size:"sm",children:"Color"}),l(k.Controller,{name:"scatter.color",control:t,render:({field:r})=>l(mn,{...r})})]}),l(c.Divider,{mb:-15,label:"Label",labelPosition:"center"}),l(c.Group,{grow:!0,noWrap:!0,children:l(k.Controller,{name:"scatter.label_position",control:t,render:({field:r})=>l(c.Select,{label:"Label Position",data:uP,...r})})})]})}function dP({control:e,watch:t}){return t("stats"),l(c.Stack,{children:y(c.Stack,{spacing:0,children:[l(k.Controller,{name:"stats.templates.top",control:e,render:({field:n})=>l(oi,{label:"Template for stats above the chart",py:"md",sx:{flexGrow:1},...n})}),l(k.Controller,{name:"stats.templates.bottom",control:e,render:({field:n})=>l(oi,{label:"Template for stats under the chart",py:"md",sx:{flexGrow:1},...n})})]})})}const fP=({control:e,data:t,index:n,remove:r})=>y(c.Stack,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`tooltip.metrics.${n}.name`,control:e,render:({field:i})=>l(c.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),l(k.Controller,{name:`tooltip.metrics.${n}.data_key`,control:e,render:({field:i})=>l(ot,{label:"Value Field",required:!0,data:t,sx:{flex:1},...i})})]}),l(c.Divider,{mb:-10,mt:10,variant:"dashed"}),l(c.Button,{leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>r(n),sx:{top:15,right:5},children:"Delete this Metric"})]}),pP=({control:e,watch:t,data:n})=>{const{fields:r,append:i,remove:a}=k.useFieldArray({control:e,name:"tooltip.metrics"}),o=t("tooltip.metrics"),s=r.map((h,g)=>({...h,...o[g]})),u=()=>i({id:Date.now().toString(),data_key:"",name:""}),d=t("tooltip.metrics.0.id"),[f,p]=x.useState(()=>d!=null?d:null);return x.useEffect(()=>{d&&p(h=>h!==null?h:d)},[d]),y(Oe,{children:[y(c.Group,{spacing:2,sx:{cursor:"default",userSelect:"none"},children:[l(W.InfoCircle,{size:14,color:"#888"}),l(c.Text,{size:14,color:"#888",children:"Condigure additional metrics to show in tooltip"})]}),l(c.Divider,{variant:"dashed",my:10}),y(c.Tabs,{value:f,onTabChange:h=>p(h),styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px",paddingTop:"6px"}},children:[y(c.Tabs.List,{children:[s.map((h,g)=>l(c.Tabs.Tab,{value:h.id,children:h.name?h.name:g},h.id)),l(c.Tabs.Tab,{onClick:u,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),s.map((h,g)=>l(c.Tabs.Panel,{value:h.id,children:l(fP,{control:e,index:g,remove:a,data:n},h.id)},h.id))]})]})};function hP({data:e,control:t,watch:n}){return l(pP,{control:t,watch:n,data:e})}const gP=({disabled:e,value:t,onChange:n})=>{const r=i=>{!i||n(i)};return y(c.Box,{sx:{position:"relative"},children:[e&&l(c.Overlay,{opacity:.6,color:"#fff",zIndex:5,blur:2}),l(Jn.default,{height:"500px",defaultLanguage:"javascript",value:t,onChange:r,theme:"vs-dark",options:{minimap:{enabled:!1,readOnly:e}}})]})},vP=({value:e,onChange:t,data:n})=>{const[r,{setTrue:i,setFalse:a}]=Ze.useBoolean(),[o,s]=x.useState(e),u=g=>{s({...o,enabled:g})},d=()=>{a();const{enabled:g,func_content:v}=o,m={enabled:g,func_content:v};s(m),t(m)},f=()=>{a(),s(e)},p=g=>{s(v=>({...v,func_content:g}))},h=()=>{p(jp.func_content)};return y(Oe,{children:[l(c.Button,{variant:"filled",mt:24,onClick:i,sx:{flexGrow:0},children:"Customize Label"}),l(c.Modal,{size:800,title:"Customize label content",opened:r,onClose:a,closeOnClickOutside:!1,withCloseButton:!1,children:r&&y(c.Stack,{children:[l(c.Checkbox,{mt:10,label:"Enabled",checked:o.enabled,onChange:g=>u(g.currentTarget.checked)}),l(gP,{value:o.func_content,onChange:p,disabled:!o.enabled}),y(c.Group,{position:"apart",children:[l(c.Button,{onClick:h,color:"red",leftIcon:l(W.Recycle,{size:20}),children:"Rest"}),y(c.Group,{position:"right",children:[l(c.Button,{onClick:f,variant:"subtle",children:"Cancel"}),l(c.Button,{onClick:d,children:"OK"})]})]})]})})]})};function mP({data:e,control:t,watch:n}){return n(["x_axis"]),y(c.Stack,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis.data_key",control:t,render:({field:r})=>l(ot,{label:"Data Field",required:!0,data:e,sx:{flex:1},...r})}),l(k.Controller,{name:"x_axis.name",control:t,render:({field:r})=>l(c.TextInput,{label:"Name",sx:{flex:1},...r})})]}),l(c.Divider,{mb:-15,label:"Tick Label",labelPosition:"center"}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis.axisLabel.rotate",control:t,render:({field:r})=>l(c.NumberInput,{label:"Rotate",hideControls:!0,min:-90,max:90,rightSection:l(c.Text,{color:"dimmed",children:"degree"}),sx:{width:"48%"},styles:{rightSection:{width:"4em",justifyContent:"flex-end",paddingRight:"6px"}},...r})}),l(k.Controller,{name:"x_axis.axisLabel.formatter",control:t,render:({field:r})=>l(vP,{data:e,...r})})]})]})}const yP=[{label:"left",value:"left"},{label:"center",value:"center"},{label:"right",value:"right"}],bP=[{label:"left",value:"left"},{label:"right",value:"right"}];function CP({control:e,index:t,remove:n}){return y(c.Stack,{my:0,p:"0",sx:{position:"relative"},children:[l(c.Divider,{mb:-15,mt:15,variant:"dashed",label:"Name",labelPosition:"center"}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`y_axes.${t}.name`,control:e,render:({field:r})=>l(c.TextInput,{label:"Name",required:!0,sx:{flex:1},...r})}),l(k.Controller,{name:`y_axes.${t}.nameAlignment`,control:e,render:({field:r})=>l(c.Select,{label:"Align",required:!0,data:yP,sx:{flex:1},...r})})]}),l(c.Divider,{mb:-15,variant:"dashed",label:"Layout",labelPosition:"center"}),l(c.Group,{grow:!0,noWrap:!0,children:l(k.Controller,{name:`y_axes.${t}.position`,control:e,render:({field:r})=>l(c.Select,{label:"Position",required:!0,data:bP,sx:{flex:1},...r})})}),y(c.Stack,{children:[l(c.Divider,{mb:-15,variant:"dashed",label:"Label Format",labelPosition:"center"}),l(k.Controller,{name:`y_axes.${t}.label_formatter`,control:e,render:({field:r})=>l(ar,{...r})})]}),l(c.Button,{mt:20,leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),disabled:t===0,children:"Delete this YAxis"})]})}function SP({control:e,watch:t}){const{fields:n,append:r,remove:i}=k.useFieldArray({control:e,name:"y_axes"}),a=t("y_axes"),o=n.map((u,d)=>({...u,...a[d]})),s=()=>r({name:"",label_formatter:vn});return y(c.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px"}},children:[y(c.Tabs.List,{children:[o.map((u,d)=>l(c.Tabs.Tab,{value:d.toString(),children:d+1},d)),l(c.Tabs.Tab,{onClick:s,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),o.map((u,d)=>l(c.Tabs.Panel,{value:d.toString(),children:l(CP,{control:e,index:d,remove:i})},d))]})}function wP(e){return e||{templates:{top:"",bottom:""}}}function xP({reference_lines:e=[],stats:t,...n}){return{reference_lines:e,stats:wP(t),...n}}function _P({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),{variables:r}=e,i=e.data,a=x.useMemo(()=>L.defaultsDeep({},t,Vl),[t]),o=x.useMemo(()=>xP(a),[a]);x.useEffect(()=>{!L.isEqual(a,o)&&(console.log("config malformed, resetting to defaults",a,o),n(o))},[a,o]);const{control:s,handleSubmit:u,watch:d,getValues:f,reset:p}=k.useForm({defaultValues:o});x.useEffect(()=>{p(o)},[o]);const h=f(),g=x.useMemo(()=>!L.isEqual(h,a),[h,a]);return d(["dataZoom"]),l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:u(n),children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{children:"Chart Config"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!g,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Tabs,{defaultValue:"X Axis",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[y(c.Tabs.List,{children:[l(c.Tabs.Tab,{value:"X Axis",children:"X Axis"}),l(c.Tabs.Tab,{value:"Y Axes",children:"Y Axes"}),l(c.Tabs.Tab,{value:"Scatter",children:"Scatter"}),l(c.Tabs.Tab,{value:"Tooltip",children:"Tooltip"}),l(c.Tabs.Tab,{value:"Stats",children:"Stats"}),l(c.Tabs.Tab,{value:"Reference Lines",children:"Reference Lines"}),l(c.Tabs.Tab,{value:"Zooming",children:"Zooming"})]}),l(c.Tabs.Panel,{value:"X Axis",children:l(mP,{control:s,watch:d,data:i})}),l(c.Tabs.Panel,{value:"Y Axes",children:l(SP,{control:s,watch:d})}),l(c.Tabs.Panel,{value:"Scatter",children:l(cP,{control:s,watch:d,data:i})}),l(c.Tabs.Panel,{value:"Tooltip",children:l(hP,{control:s,watch:d,data:i})}),l(c.Tabs.Panel,{value:"Stats",children:l(dP,{control:s,watch:d,data:i})}),l(c.Tabs.Panel,{value:"Reference Lines",children:l(nP,{variables:r,control:s,watch:d})}),l(c.Tabs.Panel,{value:"Zooming",children:l(k.Controller,{name:"dataZoom",control:s,render:({field:v})=>l(pl,{...v})})})]})]})})}function EP(e){const{dataZoom:t=$r,...n}=e;return{...n,dataZoom:t}}class TP extends Ft{constructor(){super(...arguments);pe(this,"VERSION",3)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,n=>{const{tooltip:r={metrics:[]},...i}=n;return{version:2,config:{...i,tooltip:r}}}),this.version(3,n=>({version:3,config:EP(n)}))}}const OP={displayName:"Scatter Chart",migrator:new TP,name:"scatterChart",viewRender:Jk,configRender:_P,createConfig:()=>Vl,triggers:[zp]},Gp=["function text({ data, variables, filters, context}) {"," // your code goes here",' return "text"',"}"].join(`
|
|
242
|
-
`),Fl={func_content:Gp,horizontal_align:"left",font_size:"14px",font_weight:"normal"},MP=X.observer(({context:e})=>{const t=et(),{value:n=Fl}=Ue(e.instanceData,"config"),{variables:r}=e,{func_content:i,horizontal_align:a,font_size:o,font_weight:s}=n,u=x.useMemo(()=>new Function(`return ${i}`)()({data:e.data,variables:r,filters:t.filters.values,context:t.context.current}),[i,e.data,r,t.filters.values,t.context.current]);return l(c.Text,{align:a,weight:s,sx:{fontSize:o},children:u})}),DP=({value:e,onChange:t})=>{const n=r=>{!r||t(r)};return l(c.Box,{sx:{position:"relative"},children:l(Jn.default,{height:"500px",defaultLanguage:"javascript",value:e,onChange:n,theme:"vs-dark",options:{minimap:{enabled:!1}}})})},RP=x.forwardRef(({value:e,onChange:t},n)=>{const[r,{setTrue:i,setFalse:a}]=Ze.useBoolean(),[o,s]=x.useState(e),u=()=>{a(),t(o)},d=()=>{a(),s(e)},f=()=>{s(Gp)};return x.useEffect(()=>{s(e)},[e]),y(Oe,{children:[l(c.Button,{variant:"filled",mt:24,onClick:i,sx:{flexGrow:0},children:"Edit Content"}),l(c.Modal,{size:800,title:"Text content",opened:r,onClose:a,closeOnClickOutside:!1,withCloseButton:!1,children:r&&y(c.Stack,{children:[l(DP,{value:o,onChange:s}),y(c.Group,{position:"apart",children:[l(c.Button,{onClick:f,color:"red",leftIcon:l(W.Recycle,{size:20}),children:"Rest"}),y(c.Group,{position:"right",children:[l(c.Button,{onClick:d,variant:"subtle",children:"Cancel"}),l(c.Button,{onClick:u,children:"OK"})]})]})]})})]})}),kP=[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}];function PP({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=x.useMemo(()=>L.defaultsDeep({},t,Fl),[t]),i=x.useMemo(()=>{const{func_content:h,horizontal_align:g,font_size:v,font_weight:m}=r;return{func_content:h,horizontal_align:g,font_size:v,font_weight:m}},[r]);x.useEffect(()=>{!L.isEqual(r,i)&&(console.log("config malformed, resetting to defaults",r,i),n(i))},[r,i]);const{control:a,handleSubmit:o,watch:s,getValues:u,reset:d}=k.useForm({defaultValues:i});j.default.useEffect(()=>{d(i)},[i]),s(["func_content","horizontal_align","font_size","font_weight"]);const f=u(),p=j.default.useMemo(()=>!De.default.isEqual(f,r),[f,r]);return l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:o(n),children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{weight:500,children:"Configurations"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!p,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Stack,{spacing:10,children:[l(k.Controller,{name:"func_content",control:a,render:({field:h})=>l(RP,{...h})}),l(c.Divider,{mt:10,mb:-10,variant:"dashed",label:"Style",labelPosition:"center"}),l(k.Controller,{name:"horizontal_align",control:a,render:({field:h})=>l(c.Select,{label:"Horizontal Alignment",data:kP,...h})}),l(k.Controller,{name:"font_size",control:a,render:({field:h})=>l(c.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",sx:{flex:1},...h})}),l(c.Group,{position:"apart",grow:!0,sx:{"> *":{flexGrow:1,maxWidth:"100%"}},children:l(k.Controller,{name:"font_weight",control:a,render:({field:h})=>l(Vf,{label:"Font Weight",...h})})})]})]})})}class AP extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const IP={displayName:"Text",migrator:new AP,name:"text",viewRender:MP,configRender:PP,createConfig:()=>Fl},$P=[{value:"#25262B",name:"Dark"},{value:"#868E96",name:"Gray"},{value:"#FA5252",name:"Red"},{value:"#E64980",name:"Pink"},{value:"#BE4BDB",name:"Grape"},{value:"#7950F2",name:"Violet"},{value:"#4C6EF5",name:"Indigo"},{value:"#228BE6",name:"Blue"},{value:"#15AABF",name:"Cyan"},{value:"#12B886",name:"Teal"},{value:"#40C057",name:"Green"},{value:"#82C91E",name:"Lime"},{value:"#FAB005",name:"Yellow"},{value:"#FD7E14",name:"Orange"}].map(e=>({name:e.name,value:e.value,type:"single",category:"basic"})),NP=[sT,uT,fT,dT,cT,pT],Kp=()=>({id:"dashboard",version:Uo,manifest:{viz:[Nl,oR,IP,ZD,dR,TD,wT,EO,SD,UM,OP,LD,UD,$k,FO],color:[...$P,...NP]}}),gi=new vT,Mt={pluginManager:xn("pluginManager"),vizManager:xn("vizManager"),colorManager:xn("colorManager"),instanceScope:{panelModel:xn("panelModel"),vizInstance:xn("vizInstance"),interactionManager:xn("interactionManager"),migrator:xn("migrator"),operationManager:xn("operationManager"),triggerManager:xn("triggerManager")}},zl=()=>{try{gi.install(Kp())}catch{}const e=new aT(gi),t=new gT(gi);return{pluginManager:gi,vizManager:e,colorManager:t}},bn=x.createContext(zl());try{gi.install(Kp())}catch{}function LP(e,t){const{value:n,set:r}=Ue(e.operation.operationData,"config"),[i,a]=x.useState(L.defaults({},n,t)),o=async()=>{await r(i)};return x.useEffect(()=>{a(L.defaults({},n,t))},[n]),{config:i,setConfig:a,commit:o}}function VP(e){const{config:t,setConfig:n,commit:r}=LP(e,{urlTemplate:"",openInNewTab:!0});async function i(){await r()}async function a(s){n({...t,openInNewTab:s}),await r()}const o=s=>n({...t,urlTemplate:s.currentTarget.value});return y(c.Stack,{children:[l(c.TextInput,{label:"Url",value:t.urlTemplate,onChange:o,onBlur:i}),l(c.Switch,{label:"Open in new Tab",checked:t.openInNewTab,onChange:s=>a(s.currentTarget.checked)})]})}async function FP(e,t){const{urlTemplate:n,openInNewTab:r}=await t.operationData.getItem("config");window.dispatchEvent(new CustomEvent("open-link",{detail:{urlTemplate:n,openInNewTab:r,payload:e}}))}class zP extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}configVersions(){this.version(1,n=>n)}}const jP={displayName:"Open Link",id:"builtin:op:open-link",configRender:VP,run:FP,migrator:new zP,createDefaultConfig:()=>({version:1,config:{urlTemplate:"",openInNewTab:!0}})};function BP(e){const{value:t,set:n}=Ue(e.operationData,"config"),r=i=>void n({template:i});return[(t==null?void 0:t.template)||"",r]}function GP(e){const[t,n]=BP(e.operation);return l(c.TextInput,{defaultValue:t,onBlur:r=>n(r.currentTarget.value),label:"console.log"})}async function KP(e,t){const n=await t.operationData.getItem("config"),r=L.template(n.template||"");console.log("run with payload",e),console.log(r(e))}const qP={displayName:"console.log (debug)",id:"builtin:op:debug",configRender:GP,run:KP},HP=X.observer(e=>{const t=et(),{value:n,set:r}=Ue(e.operation.operationData,"config");console.log({value:n,viewID:n==null?void 0:n.viewID});const i=(n==null?void 0:n.viewID)||"",a=o=>void r({viewID:o});return l(c.Select,{defaultValue:i,value:i,onChange:a,label:"View",data:t.views.options})});async function WP(e,t){const r=(await t.operationData.getItem("config")).viewID;window.dispatchEvent(new CustomEvent("open-view",{detail:{viewID:r}}))}const UP={displayName:"Open View",id:"builtin:op:open_view",configRender:HP,run:WP},YP={dictionary:{}},XP=X.observer(e=>{const t=et(),{value:n=YP,set:r}=Ue(e.operation.operationData,"config"),{dictionary:i={}}=n,a=(u,d)=>{r({dictionary:{...i,[u]:d}})},o=()=>{a(t.filters.firstFilterValueKey,"")},s=u=>{const d={...i};delete d[u],r({dictionary:d})};return console.log(t.filters.values),y(c.Stack,{spacing:10,children:[l(c.Text,{children:"Mapping Rules"}),Object.entries(i).map(([u,d],f)=>y(c.Group,{noWrap:!0,children:[l(c.TextInput,{label:"Payload key",value:d,onChange:p=>{a(u,p.currentTarget.value)}}),l(ot,{data:[t.filters.values],value:u,onChange:p=>{a(p,d)},label:"Filter key"}),l(c.ActionIcon,{onClick:()=>s(u),sx:{marginTop:"22px"},children:l(W.Trash,{size:14,color:"red"})})]},u)),l(c.Button,{size:"xs",onClick:o,children:"Add one mapping rule"})]})});async function QP(e,t){const r=(await t.operationData.getItem("config")).dictionary;window.dispatchEvent(new CustomEvent("set-filter-values",{detail:{dictionary:r,payload:e}}))}const ba=[qP,jP,UP,{displayName:"Set Filter Values",id:"builtin:op:set_filter_values",configRender:XP,run:QP}];class ZP{constructor(t,n=ba){pe(this,"attachments");this.operations=n;const r=async i=>{const{id:a,schemaRef:o}=await i.getItem(null);return{id:a,schemaRef:o,operationData:new Pr(i,"data")}};this.attachments=new Wo(t,"__OPERATIONS",r)}async runOperation(t,n){const r=await this.attachments.getInstance(t);if(!r){console.warn(`Operation '${t}' is not defined`);return}const i=this.tryGetSchema(r.schemaRef);if(!i){console.warn(`Operation schema '${r.schemaRef}' is not defined`);return}await i.run(n,r)}tryGetSchema(t){return this.operations.find(n=>n.id===t)}async needMigration(){const n=(await this.attachments.list()).map(async r=>{const i={configData:r.operationData},a=this.tryGetSchema(r.schemaRef),o=a==null?void 0:a.migrator;return o&&await o.needMigration(i)});return(await Promise.all(n)).some(r=>r)}async runMigration(){const n=(await this.attachments.list()).map(async r=>{const i={configData:r.operationData},a=this.tryGetSchema(r.schemaRef),o=a==null?void 0:a.migrator;o&&await o.needMigration(i)&&await o.migrate(i)});await Promise.all(n)}async createOrGetOperation(t,n){var o,s;if(!this.getOperationSchemaList().some(u=>u.id===n.id))throw new Error(`Operation schema '${n.id}' is not defined`);const i=await this.attachments.getInstance(t);return!i||i.schemaRef!==n.id?await this.attachments.create(t,{id:t,schemaRef:n.id,data:(s=(o=n.createDefaultConfig)==null?void 0:o.call(n))!=null?s:{}}):i}getOperationList(){return this.attachments.list()}getOperationSchemaList(){return this.operations}removeOperation(t){return this.attachments.remove(t)}async retrieveTrigger(t){return await this.attachments.getInstance(t)}}class jl{constructor(t,n,r){pe(this,"operationManager");pe(this,"triggerManager");pe(this,"attachments");this.operationManager=new ZP(t,r),this.triggerManager=new xT(t,n);const i=async a=>{const{id:o,triggerRef:s,operationRef:u}=await a.getItem(null);return{id:o,triggerRef:s,operationRef:u}};this.attachments=new Wo(t,"__INTERACTIONS",i)}async addInteraction(t,n){const r=t.id,i=n.id,a=`[${r}]:[${i}]`;await this.attachments.create(a,{id:a,triggerRef:r,operationRef:i})}getInteractionList(){return this.attachments.list()}async removeInteraction(t){const n=await this.attachments.getInstance(t);if(!n)return;const{triggerRef:r,operationRef:i}=n;await this.getTriggerRefCount(r)<=1&&await this.triggerManager.removeTrigger(r),await this.getOperationRefCount(i)<=1&&await this.operationManager.removeOperation(i),await this.attachments.remove(t)}async getOperationRefCount(t){return(await this.getInteractionList()).filter(r=>r.operationRef===t).length}async getTriggerRefCount(t){return(await this.getInteractionList()).filter(r=>r.triggerRef===t).length}async runInteraction(t,n){const i=(await this.getInteractionList()).filter(a=>a.triggerRef===t);await Promise.all(i.map(async a=>{try{return await this.operationManager.runOperation(a.operationRef,n)}catch(o){console.warn(`Failed to run operation '${a.operationRef}'`,o)}}))}}function JP(e,t){const[n,r]=x.useState([]);return Ze.useAsyncEffect(async()=>{const i=await e.getInteractionList();r(i)},[t]),n}const eA=X.observer(({item:e,manager:t,instance:n,sampleData:r,variables:i,onRemove:a})=>{const{triggerRef:o,operationRef:s}=e,u=JE(t.triggerManager,n);if(Ze.useAsyncEffect(async()=>{await u.configTrigger(o,r)},[u,o,r]),u.isReady()){const d=[...u.triggerSchema.payload,...i];return y(c.Group,{children:[l(rT,{model:u}),l(XE,{instance:n,operationId:s,variables:d,operationManager:t.operationManager}),l(c.Button,{"aria-label":"delete-interaction",variant:"outline",color:"red",onClick:()=>a(e),children:l(W.Trash,{})})]})}return null}),tA=e=>{const[t,n]=x.useState(0),{interactionManager:r,instance:i,sampleData:a,variables:o}=e,s=JP(r,t),u=async()=>{const h=await r.triggerManager.createOrGetTrigger(bt.randomId(),r.triggerManager.getTriggerSchemaList()[0]),g=await r.operationManager.createOrGetOperation(bt.randomId(),r.operationManager.getOperationSchemaList()[0]);await r.addInteraction(h,g),n(v=>v+1)};async function d(h){await r.removeInteraction(h.id),n(g=>g+1)}const{data:f=0,loading:p}=Ze.useRequest(async()=>{try{return(await r.triggerManager.getTriggerSchemaList()).length}catch{return 0}});return y(c.Stack,{children:[l(c.LoadingOverlay,{visible:p}),f===0&&l(c.Alert,{icon:l(W.AlertCircle,{size:16}),title:"Unavailable",color:"gray",children:"This visualization does not have available interactions to choose from"}),s.map(h=>l(eA,{onRemove:d,instance:i,sampleData:a,variables:o,item:h,manager:e.interactionManager},h.id)),l(c.Button,{style:{width:"fit-content"},onClick:()=>u(),disabled:f===0,children:"Add interaction"})]})},nA=()=>{const{panel:e,data:t}=Pt(),n=e.viz,{vizManager:r}=x.useContext(bn),i=e.json,a=Ze.useCreation(()=>r.getOrCreateInstance(i),[r,n.type]),o=Ze.useCreation(()=>new jl(a,r.resolveComponent(n.type),ba),[a,n.type]);return x.useEffect(()=>a.instanceData.watchItem(null,L.throttle(s=>{e.viz.setConf(s)},100,{leading:!1,trailing:!0})),[a]),{instance:a,vizManager:r,interactionManager:o,sampleData:t,variables:[]}},rA=()=>{const e=nA();return l(tA,{...e})},iA=X.observer(()=>{const{panel:e}=Pt(),[t,n]=j.default.useState(e.description),r=e.description!==t,i=j.default.useCallback(()=>{!r||e.setDescription(t)},[r,t]);return y(c.Stack,{spacing:4,sx:{flexGrow:1},children:[y(c.Group,{align:"end",children:[l(c.Text,{sx:{flexGrow:1},children:"Description"}),l(c.ActionIcon,{variant:"subtle",color:"blue",disabled:!r,onClick:i,children:l(W.DeviceFloppy,{size:20})})]}),l(vp,{value:t,onChange:n,styles:{root:{flexGrow:1}}})]})}),aA=X.observer(()=>{const{panel:e}=Pt(),{style:t}=e;return l(Oe,{children:l(c.Switch,{label:"Border",checked:t.border.enabled,onChange:n=>t.border.setEnabled(n.currentTarget.checked)})})}),oA=X.observer(()=>{const{panel:{title:e,style:{border:t}}}=Pt();return l(ur,{children:y(c.Stack,{mx:"auto",mt:"xl",p:"5px",spacing:5,sx:{width:"600px",height:"450px",background:"transparent",borderRadius:"5px",border:"1px solid #e9ecef",borderWidth:t.enabled?"1px":"0px"},children:[y(c.Group,{position:"apart",noWrap:!0,sx:{flexGrow:0,flexShrink:0},children:[l(c.Group,{children:l(bf,{})}),l(c.Group,{grow:!0,position:"center",children:l(c.Text,{lineClamp:1,weight:"bold",children:e})}),l(c.Group,{position:"right",spacing:0,sx:{height:"28px"}})]}),l(c.Group,{sx:{background:"#eee",flexGrow:1}})]})})}),lA=X.observer(()=>{const{panel:e}=Pt(),{title:t,setTitle:n}=e,[r,i]=bt.useInputState(t),a=t!==r,o=j.default.useCallback(()=>{!a||n(r)},[a,r]);return l(c.TextInput,{value:r,onChange:i,label:y(c.Group,{align:"apart",children:[l(c.Text,{sx:{flexGrow:1},children:"Panel Title"}),l(c.ActionIcon,{variant:"subtle",color:"blue",disabled:!a,onClick:o,children:l(W.DeviceFloppy,{size:20})})]}),styles:{label:{display:"block",paddingBottom:"4px"}}})});function sA(){return y(c.Group,{grow:!0,noWrap:!0,align:"stretch",sx:{height:"100%"},children:[y(c.Stack,{sx:{width:"40%",flexShrink:0,flexGrow:0,height:"100%"},children:[l(c.Divider,{label:"Style",labelPosition:"center",variant:"dashed"}),l(aA,{}),l(c.Divider,{label:"Info",labelPosition:"center",variant:"dashed"}),l(lA,{}),l(iA,{})]}),l(c.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:l(oA,{})})]})}const uA=X.observer(function(){const t=et(),{panel:{queryID:n,setQueryID:r}}=Pt(),i=j.default.useMemo(()=>t.queries.current.map(a=>({value:a.id,label:a.name})),[t.queries.current]);return y(c.Stack,{children:[y(c.Group,{position:"left",sx:{maxWidth:"600px",alignItems:"baseline"},children:[l(c.Text,{children:"Select a Query"}),l(c.Select,{data:i,value:n,onChange:r,allowDeselect:!1,clearable:!1,sx:{flexGrow:"1 !important"}})]}),l(ef,{id:n})]})});var qp=(e=>(e.migrated="migrated",e.nothingToMigrate="nothingToMigrate",e.checkFailed="checkFailed",e.migrationFailed="migrationFailed",e))(qp||{}),Ca=(e=>(e.notStarted="notStarted",e.inProgress="inProgress",e.done="done",e))(Ca||{});class cA{constructor(t){pe(this,"vizInstance");pe(this,"operationManager");pe(this,"triggerManager");pe(this,"vizManager");pe(this,"runningMigration");pe(this,"panelModel");pe(this,"status","notStarted");this.panelModel=t.getRequired(Mt.instanceScope.panelModel),this.vizInstance=t.getRequired(Mt.instanceScope.vizInstance),this.operationManager=t.getRequired(Mt.instanceScope.operationManager),this.triggerManager=t.getRequired(Mt.instanceScope.triggerManager),this.vizManager=t.getRequired(Mt.vizManager)}async createMigrationTask(){const t=[];try{await this.instanceNeedMigration()&&t.push(()=>this.runInstanceMigration()),await this.interactionNeedMigration()&&t.push(()=>this.runInteractionMigration())}catch(n){return console.warn("check migration failed",n),"checkFailed"}if(t.length===0)return"nothingToMigrate";try{return await Promise.all(t.map(n=>n())),"migrated"}catch(n){return console.warn("migration failed",n),"migrationFailed"}}async runMigration(){return this.runningMigration||(this.status="inProgress",this.runningMigration=this.createMigrationTask().then(t=>(this.status="done",t))),this.runningMigration}async runInteractionMigration(){await this.operationManager.runMigration(),await this.triggerManager.runMigration()}async runInstanceMigration(){const t=this.vizManager.resolveComponent(this.vizInstance.type),n={configData:this.vizInstance.instanceData,panelModel:this.panelModel};await t.migrator.migrate(n)}async instanceNeedMigration(){const t=this.vizManager.resolveComponent(this.vizInstance.type),n={configData:this.vizInstance.instanceData};return t.migrator.needMigration(n)}async interactionNeedMigration(){return await this.operationManager.needMigration()||await this.triggerManager.needMigration()}}function Hp(e){const{panel:t}=Pt();return x.useCallback(n=>{const r=n.getRequired(Mt.vizManager),i=r.resolveComponent(e.viz.type);return n.createScoped().provideFactory(Mt.instanceScope.vizInstance,()=>r.getOrCreateInstance(e)).provideFactory(Mt.instanceScope.interactionManager,a=>{const o=a.getRequired(Mt.instanceScope.vizInstance);return new jl(o,i,ba)}).provideFactory(Mt.instanceScope.operationManager,a=>a.getRequired(Mt.instanceScope.interactionManager).operationManager).provideFactory(Mt.instanceScope.triggerManager,a=>a.getRequired(Mt.instanceScope.interactionManager).triggerManager).provideValue(Mt.instanceScope.panelModel,t).provideFactory(Mt.instanceScope.migrator,a=>new cA(a))},[e.viz.type,e.viz.conf])}function Wp(e){const[t,n]=x.useState(!1),r=is().getRequired(Mt.instanceScope.migrator);return Ze.useAsyncEffect(async()=>{const i=r.status===Ca.notStarted;n(r.status===Ca.done),r.status===Ca.notStarted&&r.runMigration().then(a=>{a===qp.migrated&&i&&(e==null||e())}).finally(()=>{n(!0)})},[r]),t}function Up(e,t){const n=is().getRequired(Mt.instanceScope.vizInstance);return x.useEffect(()=>n.instanceData.watchItem(null,r=>{e(r)}),[e,t.viz.type]),n}function dA({setVizConf:e,...t}){const{panel:n}=t,r=Up(e,n),i=Wp(()=>{mi.showNotification({title:`${n.title} - Updated`,message:"Your plugin configuration has been migrated to the latest version"})});return Ze.useAsyncEffect(async()=>{await r.instanceData.setItem(null,n.viz.conf)},[r,n.viz.type]),i?l(lT,{...t}):l(c.Text,{children:"Checking update..."})}function fA(e){const{panel:t,setVizConf:n}=e;return Up(n,t),Wp(()=>{mi.showNotification({title:`${t.title} - Updated`,message:"Your plugin configuration has been migrated to the latest version"})})?l(oT,{...e}):l(c.Text,{children:"Checking update"})}const GI="";function pA(e,t){const{vizManager:n}=x.useContext(bn),{panel:{viz:r,title:i,id:a,description:o,queryID:s,variables:u}}=Pt(),d={title:i,id:a,description:o,queryID:s,viz:r,layout:t},f=Hp(d);try{return n.resolveComponent(r.type),l(Ci,{configure:f,children:l(fA,{setVizConf:r.setConf,panel:d,data:e,variables:u,vizManager:n})})}catch(p){return console.info(L.get(p,"message")),null}}const hA=["richText","button"],Yp=X.observer(function({height:t,viz:n,data:r,loading:i,error:a,query:o}){const{ref:s,width:u,height:d}=bt.useElementSize(),f=pA(r,{w:u,h:d});if(hA.includes(n.type))return l("div",{className:"viz-root",style:{height:t},ref:s,children:l(ur,{children:f})});if(i)return l("div",{className:"viz-root",style:{height:t},ref:s,children:l(c.LoadingOverlay,{visible:i,exitTransitionDuration:0})});const h=!!a,g=!h&&!!(o!=null&&o.stateMessage),v=!h&&!g;return y("div",{className:"viz-root",style:{height:t},ref:s,children:[h&&l(c.Text,{color:"red",size:"md",align:"center",sx:{fontFamily:"monospace"},children:a}),g&&l(c.Text,{color:"gray",align:"center",children:o.stateMessage}),v&&l(ur,{children:f})]})}),gA=X.observer(()=>{const{data:e,loading:t,panel:{viz:n}}=Pt();return l(Yp,{viz:n,data:e,loading:t,height:"100%"})}),Bl=[];function vA(){const{vizManager:e}=x.useContext(bn);return x.useMemo(()=>e.availableVizList.map(t=>({value:t.name,label:t.displayName})).concat(Bl),[e])}function mA(e,t){try{return e.resolveComponent(t).createConfig()}catch{return null}}function yA(){const{data:e,panel:{variables:t,viz:n,title:r,queryID:i,description:a,setDescription:o,setTitle:s,setQueryID:u,id:d}}=Pt(),{vizManager:f}=x.useContext(bn),p={title:r,description:a,viz:n,queryID:i,id:d},h={setDescription:o,setQueryID:u,setTitle:s},g=Hp(p);try{return f.resolveComponent(p.viz.type),l(Ci,{configure:g,children:l(dA,{variables:t,setVizConf:n.setConf,panel:p,panelInfoEditor:h,vizManager:f,data:e})})}catch(v){return console.info(L.get(v,"message")),null}}const bA=X.observer(()=>{const{data:e,panel:{viz:t}}=Pt(),[n,r]=bt.useInputState(t.type),i=t.type!==n,{vizManager:a}=x.useContext(bn),o=j.default.useCallback(()=>{if(!i)return;const g=mA(a,n);t.setType(n),t.setConf(g||{})},[t,i,n]),s=g=>{try{t.setConf(JSON.parse(g))}catch(v){console.error(v)}},u=j.default.useMemo(()=>{var g;return(g=Bl.find(v=>v.value===n))==null?void 0:g.Panel},[n,Bl]),d=yA(),f=u?x.createElement(u,{data:e,conf:t.conf,setConf:t.setConf}):null,p=d||f,h=vA();return y(Oe,{children:[l(c.Select,{label:"Visualization",value:n,onChange:r,data:h,rightSection:l(c.ActionIcon,{disabled:!i,onClick:o,children:l(W.DeviceFloppy,{size:20})})}),p,!p&&l(c.JsonInput,{minRows:20,label:"Config",value:JSON.stringify(t.conf,null,2),onChange:s})]})});function CA(){return y(c.Group,{grow:!0,noWrap:!0,align:"stretch",sx:{height:"100%",overflow:"hidden"},children:[l(c.Stack,{sx:{width:"40%",flexShrink:0,flexGrow:0,overflow:"scroll",height:"100%"},children:l(bA,{})}),l(c.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:l(gA,{})})]})}const SA=O.types.model("VariableModel",{name:O.types.string,size:O.types.string,weight:O.types.string,color:O.types.union(O.types.model({type:O.types.literal("static"),staticColor:O.types.string}),O.types.model({type:O.types.literal("continuous"),valueRange:O.types.array(O.types.number),colorRange:O.types.array(O.types.string)}),O.types.model({type:O.types.literal("piecewise")})),formatter:O.types.model({output:O.types.enumeration("Output",["number","percent"]),mantissa:O.types.number,average:O.types.optional(O.types.boolean,!1),trimMantissa:O.types.optional(O.types.boolean,!1)}),data_field:O.types.string,aggregation:O.types.union(O.types.model({type:O.types.enumeration(["none","sum","mean","median","min","max"]),config:O.types.frozen()}),O.types.model({type:O.types.literal("quantile"),config:O.types.model({p:O.types.number})}))}).views(e=>({get json(){return O.getSnapshot(e)}}));class wA{constructor(t){pe(this,"origin");pe(this,"copy");this.origin=t,this.copy=O.clone(t),kt.makeAutoObservable(this,{},{autoBind:!0,deep:!1})}get changed(){return!L.isEqual(O.getSnapshot(this.origin),O.getSnapshot(this.copy))}commit(){O.applySnapshot(this.origin,O.getSnapshot(this.copy))}update(t){O.applySnapshot(this.copy,t)}}const xA=e=>new wA(e),Gl={name:"new_var",size:"1rem",weight:"initial",color:{type:"static",staticColor:"Red"},data_field:"",aggregation:{type:"sum",config:{}},formatter:{output:"number",mantissa:0,trimMantissa:!1,average:!1}};class _A{constructor(t){pe(this,"panel");pe(this,"selected");this.panel=t,kt.makeAutoObservable(this,{},{deep:!1,autoBind:!0})}get variables(){return this.panel.variables}addNew(){const t=this.panel.variables.filter(n=>n.name.startsWith(Gl.name)).length;this.panel.addVariable(L.cloneDeep({...Gl,name:`${Gl.name}${t||""}`})),this.selected=L.last(this.panel.variables)}select(t){this.selected=t}remove(t){this.selected===t&&(this.selected=void 0);const n=this.panel.variables.indexOf(t);if(this.panel.removeVariable(t),!this.selected&&!L.isEmpty(this.panel.variables)){const r=Math.min(this.panel.variables.length-1,n);this.selected=this.panel.variables[r]}}}function EA(){const{panel:e}=Pt();return Ze.useCreation(()=>new _A(e),[e])}const TA=j.default.forwardRef(function({value:t,onChange:n,data:r,withStyle:i=!0},a){const o=(s,u)=>{const d=De.default.cloneDeep(t);De.default.set(d,s,u),n(d)};return y(c.Box,{px:"sm",py:"md",ref:a,children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(c.TextInput,{label:"Name",required:!0,value:t.name,onChange:s=>o("name",s.currentTarget.value)}),l(ot,{label:"Data Field",required:!0,data:r,value:t.data_field,onChange:s=>o("data_field",s)})]}),l(Lf,{label:"Aggregation",value:t.aggregation,onChange:s=>o("aggregation",s)}),l(c.Divider,{my:"xs",label:"Format",labelPosition:"center"}),l(ar,{value:t.formatter,onChange:s=>o("formatter",s)}),i&&l(Ff,{value:t,onChange:n})]})}),Xp=c.createStyles(e=>({root:{height:"100%",overflow:"hidden",".var-list-container":{"& > *":{height:"100%"},width:250,height:"100%"},".var-list-actions":{height:"fit-content",flexShrink:0,width:"100%"},".var-list":{flex:"1 1 auto",overflow:"auto",minHeight:0,"& > *":{flex:"0 0 auto"}}},config:{height:"100%",overflow:"auto",paddingRight:10}})),OA=e=>{const{uiModel:t}=e;return l(c.Stack,{className:"var-list",children:t.variables.map(n=>l(c.Button,{variant:t.selected===n?"filled":"subtle",color:"gray",onClick:()=>t.select(n),children:n.name},n.name))})},MA=X.observer(OA),DA=({variable:e,data:t})=>l(c.Group,{style:{minHeight:0,height:"calc(100% - 68px)"},children:l(c.Paper,{withBorder:!0,p:"md",children:op(e,t)})}),RA=X.observer(DA),kA=e=>{const t=Ze.useCreation(()=>xA(e.variable),[e.variable]),{classes:n}=Xp(),{data:r}=Pt();return y(c.Group,{style:{height:"100%"},align:"start",children:[y(c.Stack,{"data-testid":"variable-editor",align:"stretch",className:n.config,children:[y(c.Group,{position:"right",children:[l(c.ActionIcon,{variant:"filled",disabled:!t.changed,color:"primary",onClick:t.commit,children:l(nE,{})}),l(c.ActionIcon,{color:"red",onClick:()=>e.uiModel.remove(e.variable),children:l(Jd,{})})]}),l(TA,{value:O.getSnapshot(t.copy),onChange:t.update,data:r})]}),l(RA,{variable:O.getSnapshot(t.copy),data:r})]})},PA=X.observer(kA),AA=()=>{const e=EA(),{classes:t}=Xp();return y(c.Group,{className:t.root,noWrap:!0,align:"start",children:[l(c.Paper,{withBorder:!0,p:"md",className:"var-list-container",children:y(c.Stack,{justify:"space-between",children:[l(c.Box,{className:"var-list-actions",children:l(c.Button,{variant:"light",size:"sm",onClick:e.addNew,fullWidth:!0,children:"Add Variable"})}),l(MA,{uiModel:e})]})}),e.selected?l(Oe,{children:l(PA,{uiModel:e,variable:e.selected})}):l("span",{children:"Select or create a new variable on right side"})]})},IA=X.observer(AA),$A=X.observer(function({opened:t,close:n}){const{freezeLayout:r}=j.default.useContext(sn),[i,a]=x.useState("Visualization"),{panel:o,loading:s}=Pt(),{id:u,title:d}=o;return j.default.useEffect(()=>{r(t)},[t]),l(c.Modal,{size:"96vw",overflow:"inside",opened:t,onClose:n,title:`Editing Panel - ${d.trim()?d:u}`,trapFocus:!0,onDragStart:f=>{f.stopPropagation()},children:l(c.AppShell,{sx:{height:"90vh",maxHeight:"calc(100vh - 185px)",".mantine-AppShell-body":{height:"100%"},main:{height:"100%",minHeight:"unset",maxHeight:"100%",width:"100%",padding:"16px"}},padding:"md",children:y(c.Tabs,{value:i,onTabChange:a,className:"panel-settings-tabs",children:[y(c.Tabs.List,{children:[l(c.Tabs.Tab,{value:"Data",children:"Data"}),l(c.Tabs.Tab,{value:"Panel",children:"Panel"}),l(c.Tabs.Tab,{value:"Variables",children:"Variables"}),l(c.Tabs.Tab,{value:"Visualization",children:"Visualization"}),l(c.Tabs.Tab,{value:"Interactions",children:"Interactions"})]}),y(c.Tabs.Panel,{value:"Data",pt:"sm",children:[l(c.LoadingOverlay,{visible:s,exitTransitionDuration:0}),l(uA,{})]}),l(c.Tabs.Panel,{value:"Panel",pt:"sm",children:i==="Panel"&&l(sA,{})}),l(c.Tabs.Panel,{value:"Variables",pt:"sm",children:i==="Variables"&&l(IA,{})}),l(c.Tabs.Panel,{value:"Visualization",pt:"sm",children:i==="Visualization"&&l(CA,{})}),l(c.Tabs.Panel,{value:"Interactions",pt:"sm",children:l(ur,{children:l(rA,{})})})]})})})}),NA=X.observer(({view:e})=>{const t=et(),n=xa.useModals(),[r,i]=j.default.useState(!1),a=()=>i(!0),o=()=>i(!1),{panel:s}=Pt(),{id:u,query:d}=s,{inEditMode:f}=j.default.useContext(sn),p=()=>d==null?void 0:d.fetchData(),{viewPanelInFullScreen:h,inFullScreen:g}=j.default.useContext(Ra),v=()=>{e.panels.duplicateByID(u)},m=()=>n.openConfirmModal({title:"Delete this panel?",labels:{confirm:"Confirm",cancel:"Cancel"},onCancel:()=>console.log("Cancel"),onConfirm:()=>e.panels.removeByID(u)}),C=j.default.useCallback(()=>{h(u)},[u,h]);return y(Oe,{children:[l(c.Box,{sx:{position:"absolute",top:0,left:0,right:0,zIndex:300},children:y(c.Menu,{withinPortal:!0,children:[l(c.Menu.Target,{children:l(c.Box,{className:"panel-dropdown-target",sx:{width:"100%",height:"25px"}})}),y(c.Menu.Dropdown,{children:[l(c.Menu.Item,{onClick:p,icon:l(W.Refresh,{size:14}),children:"Refresh"}),l(c.Menu.Item,{onClick:()=>t.queries.downloadDataByQueryID(d),icon:l(W.Download,{size:14}),children:"Download Data"}),!g&&l(c.Menu.Item,{onClick:C,icon:l(W.ArrowsMaximize,{size:14}),children:"Full Screen"}),f&&y(Oe,{children:[l(c.Divider,{label:"Edit",labelPosition:"center"}),l(c.Menu.Item,{onClick:a,icon:l(W.Settings,{size:14}),children:"Settings"}),l(c.Menu.Item,{onClick:v,icon:l(W.Copy,{size:14}),children:"Duplicate"}),l(c.Menu.Item,{color:"red",onClick:m,icon:l(W.Trash,{size:14}),children:"Delete"})]})]})]})}),f&&l($A,{opened:r,close:o})]})}),KI="",LA=X.observer(function(){const{panel:t}=Pt(),{title:n}=t;return n?l(c.Group,{grow:!0,position:"center",px:20,className:"panel-title-wrapper",sx:{flexGrow:1},children:l(c.Text,{align:"center",lineClamp:1,weight:"bold",children:n})}):null});function VA(e){return!["richText","button"].includes(e)}const FA={border:"1px solid #e9ecef"},Qp={border:"1px dashed transparent",transition:"border-color 300ms ease","&:hover":{borderColor:"#e9ecef"}};function zA(e,t,n){return e.style.border.enabled?FA:n||t?Qp:{border:"1px dashed transparent"}}const Sa=X.observer(function({panel:t,view:n}){const r=et(),{inEditMode:i}=x.useContext(sn),{data:a,state:o,error:s}=r.getDataStuffByID(t.queryID),u=r.queries.findByID(t.queryID),d=VA(t.viz.type),f=d&&o==="loading",p=t.title?"calc(100% - 25px - 5px)":"100%",h=zA(t,d,i),g=d||i;return l(ss,{value:{panel:t,data:a,loading:f},children:y(c.Box,{className:"panel-root",p:5,pt:0,sx:{...h},children:[l(c.Box,{sx:{position:"absolute",left:0,top:0,height:28,zIndex:310},children:l(bf,{})}),g&&l(NA,{view:n}),l(LA,{}),l(Yp,{viz:t.viz,data:a,loading:f,error:s,height:p,query:u})]})})}),Zp=X.observer(function({view:t,panel:n,exitFullScreen:r}){return y(c.Stack,{px:"10px",pb:"5px",sx:{height:"100%",flexGrow:1,justifyContent:"flex-start"},children:[l(c.Group,{mx:"-5px",sx:{flexGrow:0},children:l(c.Button,{variant:"default",size:"sm",onClick:r,leftIcon:l(W.ArrowLeft,{size:20}),children:"Exit fullscreen"})}),l(c.Group,{mx:"-5px",grow:!0,sx:{flexGrow:1,flexShrink:0},children:l(Sa,{view:t,panel:n})})]})});function Jp(e,t,n){const r=e.id==="Main",[i,a]=j.default.useState(()=>r&&e.panels.findByID(t)?t:null),o=j.default.useCallback(f=>{a(f),r&&n(f)},[r,n]),s=j.default.useCallback(()=>{a(null),r&&n("")},[r,n]),u=i?e.panels.findByID(i):null;return{viewPanelInFullScreen:o,exitFullScreen:s,inFullScreen:!!u,fullScreenPanel:u}}function eh(){j.default.useEffect(()=>{const e=Gh.default(".dashboard-sticky-area",{useStickyClasses:!0,parentClass:"dashboard-sticky-parent"});return()=>{e==null||e.cleanup()}},[])}const qI="",jA=j.default.forwardRef(({handleAxis:e},t)=>l(c.ActionIcon,{ref:t,className:"react-grid-customDragHandle",sx:{userSelect:"none",cursor:"grab",position:"absolute",top:0,right:0,zIndex:400,"&:hover":{color:"#228be6"}},variant:"transparent",children:l(W.ArrowsMove,{size:16})})),BA=j.default.forwardRef(({handleAxis:e,...t},n)=>l(c.ActionIcon,{ref:n,className:"react-grid-customResizeHandle",sx:{userSelect:"none",cursor:"nwse-resize",position:"absolute",bottom:-5,right:-5,zIndex:400,"&:hover":{color:"#228be6"}},variant:"transparent",...t,children:l(W.ChevronDownRight,{size:16})})),GA=Ea.WidthProvider(es.default),KA=X.observer(function({view:t,className:n="layout",rowHeight:r=10,isDraggable:i,isResizable:a}){const o=j.default.useCallback(s=>{s.forEach(({i:u,...d})=>{const f=t.panels.findByID(u);!f||f.layout.set(d)})},[t]);return l(GA,{onLayoutChange:o,className:`dashboard-layout ${n}`,rowHeight:r,layout:t.panels.layouts,isDraggable:i,isResizable:a,draggableHandle:".react-grid-customDragHandle",resizeHandle:l(BA,{}),children:t.panels.list.map((s,u)=>y("div",{"data-grid":{...s.layout},style:{position:"relative"},children:[i&&l(jA,{}),l(Sa,{view:t,panel:s})]},s.id))})}),qA=Ea.WidthProvider(es.default),HA=X.observer(function({view:t,className:n="layout",rowHeight:r=10}){return l(qA,{className:`dashboard-layout ${n}`,rowHeight:r,isDraggable:!1,isResizable:!1,layout:t.panels.layouts,children:t.panels.list.map(i=>l("div",{"data-grid":i.layout,children:l(Sa,{view:t,panel:i})},i.id))})}),WA=X.observer(({children:e})=>l(c.Box,{children:e})),UA=X.observer(({children:e,view:t})=>l(c.Modal,{size:t.config.width,overflow:"inside",opened:!0,onClose:De.default.noop,withCloseButton:!1,title:t.name,trapFocus:!0,onDragStart:n=>{n.stopPropagation()},styles:{root:{position:"relative",height:"calc(100% - 46px)"},overlay:{position:"absolute !important"},modal:{border:"1px solid #efefef"},body:{"> div":{maxHeight:t.config.height,overflow:"scroll"}}},withinPortal:!1,transitionDuration:0,children:e})),YA=X.observer(({view:e,children:t})=>{switch(e.type){case an.Modal:return l(UA,{view:e,children:t});case an.Division:default:return l(WA,{children:t})}}),th=X.observer(function({view:t,saveDashboardChanges:n,fullScreenPanelID:r,setFullScreenPanelID:i}){const{viewPanelInFullScreen:a,exitFullScreen:o,inFullScreen:s,fullScreenPanel:u}=Jp(t,r,i);return eh(),l(Ra.Provider,{value:{viewPanelInFullScreen:a,inFullScreen:s},children:y(c.Box,{className:"dashboard-view",mx:-10,sx:{position:"relative",height:"100%"},children:[s&&l(Zp,{view:t,panel:u,exitFullScreen:o}),!s&&l(uf,{saveChanges:n}),l(YA,{view:t,children:y(c.Box,{className:"dashboard-sticky-parent",children:[!s&&l(c.Box,{className:"dashboard-sticky-area",children:l(Yd,{view:t})}),!s&&l(KA,{view:t,isDraggable:!0,isResizable:!0})]})})]})})}),XA=X.observer(({children:e})=>l(c.Box,{children:e})),QA=X.observer(({children:e,view:t})=>{const n=et(),r=n.views.visibleViewIDs.includes(t.id),i=()=>n.views.rmVisibleViewID(t.id);return l(c.Modal,{size:t.config.width,centered:!0,overflow:"inside",opened:r,onClose:i,withCloseButton:!1,title:t.name,trapFocus:!0,onDragStart:a=>{a.stopPropagation()},styles:{modal:{border:"1px solid #efefef"},body:{maxHeight:t.config.height,overflow:"scroll"}},transitionDuration:0,children:e})}),ZA=X.observer(({view:e,children:t})=>{switch(e.type){case an.Modal:return l(QA,{view:e,children:t});case an.Division:default:return l(XA,{children:t})}}),nh=X.observer(function({view:t,fullScreenPanelID:n,setFullScreenPanelID:r}){const{viewPanelInFullScreen:i,exitFullScreen:a,inFullScreen:o,fullScreenPanel:s}=Jp(t,n,r);return eh(),l(Ra.Provider,{value:{viewPanelInFullScreen:i,inFullScreen:o},children:y(c.Box,{className:"dashboard-view",mx:-10,sx:{position:"relative",height:"100%"},children:[o&&l(Zp,{view:t,panel:s,exitFullScreen:a}),!o&&l(uf,{saveChanges:De.default.noop}),l(ZA,{view:t,children:y(c.Box,{className:"dashboard-sticky-parent",children:[!o&&l(c.Box,{className:"dashboard-sticky-area",children:l(Yd,{view:t})}),!o&&l(HA,{view:t})]})})]})})}),rh=O.types.model("FilterConfigModel_Checkbox",{_name:O.types.literal("checkbox"),default_value:O.types.boolean}).actions(e=>({setDefaultValue(t){e.default_value=t}})),JA=()=>rh.create({_name:"checkbox",default_value:!1}),eI=O.types.model("FilterConfigModel_DateRange",{_name:O.types.literal("date-range"),required:O.types.boolean,inputFormat:O.types.enumeration("DateRangeInputFormat",["YYYY","YYYYMM","YYYYMMDD","YYYY-MM","YYYY-MM-DD"]),default_value:O.types.optional(O.types.array(O.types.union(O.types.string,O.types.null)),[null,null]),clearable:O.types.boolean}).actions(e=>({setRequired(t){e.required=t},setClearable(t){e.clearable=t},setInputFormat(t){e.inputFormat=t},setDefaultValue(t){e.default_value.length=0,e.default_value.push(...t)}})),ih=O.types.snapshotProcessor(eI,{preProcessor({default_value:e,...t}){return{...t,default_value:e.map(n=>n===null?null:$n.default.tz(n,"UTC").toISOString())}},postProcessor({default_value:e,...t}){return{...t,default_value:e.map(n=>{try{return n?$n.default.tz(n,"UTC").format(t.inputFormat):null}catch{return console.log(`[date-range] failed parsing ${n}`),null}})}}}),tI=()=>ih.create({_name:"date-range",required:!1,inputFormat:"YYYY-MM-DD",clearable:!1,default_value:[null,null]}),nI=O.types.model({label:O.types.string,value:O.types.string}).actions(e=>({setLabel(t){e.label=t},setValue(t){e.value=t}})),Kl=O.types.model("FilterConfigModel_BaseSelect",{static_options:O.types.optional(O.types.array(nI),[]),options_query_id:O.types.optional(O.types.string,""),select_first_by_default:O.types.optional(O.types.boolean,!1)}).views(e=>({get options(){const{options_query_id:t,static_options:n}=e;if(!t)return n;const{data:r,state:i,error:a}=O.getRoot(e).getDataStuffByID(t);return i==="idle"?r:[]}})).actions(e=>({addStaticOption(t){e.static_options.push(t)},removeStaticOption(t){e.static_options.splice(t,1)},setSelectFirstByDefault(t){e.select_first_by_default=t},setOptionsQueryID(t){e.options_query_id=t}})),ah=O.types.compose("FilterConfigModel_MultiSelect",O.types.model({_name:O.types.literal("multi-select"),default_value:O.types.optional(O.types.array(O.types.string),[]),min_width:O.types.optional(O.types.string,"")}),Kl).actions(e=>({setDefaultValue(t){e.default_value=O.cast(t)},setMinWidth(t){e.min_width=t}})),rI=()=>ah.create({_name:"multi-select",default_value:[],static_options:[],options_query_id:"",select_first_by_default:!1}),oh=O.types.compose("FilterConfigModel_TreeSelect",O.types.model({_name:O.types.literal("tree-select"),default_value:O.types.optional(O.types.array(O.types.string),[]),min_width:O.types.optional(O.types.string,"")}),Kl).actions(e=>({setDefaultValue(t){e.default_value=O.cast(t)},setMinWidth(t){e.min_width=t}})),iI=()=>oh.create({_name:"tree-select",default_value:[],static_options:[],options_query_id:"",select_first_by_default:!1}),lh=O.types.compose("FilterConfigModel_Select",O.types.model({_name:O.types.literal("select"),default_value:O.types.string,required:O.types.boolean,width:O.types.optional(O.types.string,"")}),Kl).actions(e=>({setRequired(t){e.required=t},setDefaultValue(t){e.default_value=t},setWidth(t){e.width=t}})),aI=()=>lh.create({_name:"select",required:!1,default_value:"",static_options:[],options_query_id:"",select_first_by_default:!1}),ql=O.types.model("FilterModel",{id:O.types.identifier,key:O.types.string,label:O.types.string,order:O.types.number,visibleInViewsIDs:O.types.array(O.types.string),auto_submit:O.types.optional(O.types.boolean,!1),type:O.types.enumeration("DashboardFilterType",[Wt.Select,Wt.MultiSelect,Wt.TreeSelect,Wt.TextInput,Wt.Checkbox,Wt.DateRange]),config:O.types.union(lh,ah,oh,tf,rh,ih)}).views(e=>({get plainDefaultValue(){const t=e.config.default_value;return Array.isArray(t)?[...t]:t}})).actions(e=>({setKey(t){e.key=t},setLabel(t){e.label=t},setOrder(t){e.order=t},setType(t){switch(t){case Wt.Select:e.config=aI();break;case Wt.MultiSelect:e.config=rI();break;case Wt.TreeSelect:e.config=iI();break;case Wt.TextInput:e.config=nf();break;case Wt.Checkbox:e.config=JA();break;case Wt.DateRange:e.config=tI();break}e.type=t},setVisibleInViewsIDs(t){e.visibleInViewsIDs.length=0,e.visibleInViewsIDs.push(...t)},setAutoSubmit(t){e.auto_submit=t}}));function sh(e,t){if(e===void 0)return e;if(t._name==="date-range")try{return e.map(r=>{const i=$n.default.tz(r,"UTC").format(t.inputFormat);return i!=null?i:r})}catch(n){return console.error(n),e}return e}function uh(e){return e.reduce((t,n)=>(t[n.key]=sh(n.config.default_value,n.config),t),{})}function oI(e,t,n){O.addDisposer(e,O.addMiddleware(e,(r,i)=>{i(r,()=>{O.getType(r.context)===t&&r.type==="action"&&n(r.name,r.context)})}))}const ch=O.types.model("FiltersModel",{current:O.types.optional(O.types.array(ql),[]),values:O.types.optional(O.types.frozen(),{}),previewValues:O.types.optional(O.types.frozen(),{})}).views(e=>({get firstID(){if(e.current.length!==0)return e.current[0].id},get inOrder(){return De.default.sortBy(e.current,"order")},get empty(){return e.current.length===0},visibleInView(t){return De.default.sortBy(e.current.filter(n=>n.visibleInViewsIDs.includes(t)),"order")},get firstFilterValueKey(){var t;return(t=Object.keys(e.values)[0])!=null?t:""},get keyLabelMap(){return e.current.reduce((t,n)=>(t[n.key]=n.label,t),{})}})).actions(e=>({replace(t){e.current=O.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},setValues(t){e.values=t},setValueByKey(t,n){e.values={...e.values,[t]:n}},getValueByKey(t){return e.values[t]},refreshValues(){console.log("refreshing values"),e.values=uh(e.current)},updatePreviewValues(t){e.previewValues=t}})).actions(e=>{function t(){oI(e.current,ql,(n,r)=>{if(n==="setType"){const i=sh(r.config.default_value,r.config);e.setValueByKey(r.key,i),e.updatePreviewValues({...e.previewValues,[r.key]:i})}})}return{afterCreate(){t()}}});function dh(e){return{current:e,values:uh(e)}}const lI=O.types.model("QueryModel",{id:O.types.string,name:O.types.string,type:O.types.enumeration("DataSourceType",[Hn.Postgresql,Hn.MySQL,Hn.HTTP]),key:O.types.string,sql:O.types.string,run_by:O.types.optional(O.types.array(O.types.string),[])}).views(e=>({get valid(){return e.id&&e.type&&e.key&&e.sql&&e.name},get json(){const{id:t,name:n,type:r,key:i,sql:a,run_by:o}=e;return{id:t,name:n,type:r,key:i,sql:a,run_by:o}},get conditionOptions(){const{context:t,mock_context:n,filterValues:r}=O.getRoot(e).payloadForSQL,i=Object.keys({...n,...t}).map(s=>`context.${s}`),a=Object.keys(r).map(s=>`filters.${s}`);return[...i,...a].map(s=>({label:s.split(".")[1],value:s,group:De.default.capitalize(s.split(".")[0])}))},get unmetRunByConditions(){const{run_by:t}=e;if(t.length===0)return[];const{context:n,mock_context:r,filterValues:i}=O.getRoot(e).payloadForSQL,a={context:{...r,...n},filters:i};return t.filter(o=>{const s=De.default.get(a,o);return Array.isArray(s)?s.length===0:!s})}})).views(e=>({get runByConditionsMet(){return e.unmetRunByConditions.length===0},get conditionNames(){if(e.unmetRunByConditions.length===0)return{context:[],filters:[]};const{keyLabelMap:t}=O.getRoot(e).filters,n=e.unmetRunByConditions.filter(i=>i.startsWith("context.")).map(i=>i.split("context.")[0]),r=e.unmetRunByConditions.filter(i=>i.startsWith("filters.")).map(i=>De.default.get({filters:t},i)).filter(i=>!!i);return{context:n,filters:r}}})),fh=O.types.compose("QueryModel",lI,O.types.model({state:O.types.optional(O.types.enumeration(["idle","loading","error"]),"idle"),data:O.types.optional(O.types.array(O.types.frozen()),[]),error:O.types.frozen()})).views(e=>({get formattedSQL(){const{context:t,mock_context:n,sqlSnippets:r,filterValues:i}=O.getRoot(e).payloadForSQL;return Qd(e.sql,t,n,r,i)}})).views(e=>({get stateMessage(){if(e.state!=="idle")return"";if(!e.runByConditionsMet){const{context:t,filters:n}=e.conditionNames;if(t.length===0&&n.length===0)return"Waiting";const r=[];return t.length>0&&r.push(`context: ${t.join(", ")}`),n.length>0&&r.push(`filter${n.length>1?"s":""}: ${n.join(", ")}`),r.length===2&&r.splice(1,0,"and"),r.unshift("Waiting for"),r.join(" ")}return e.data.length>0?"":"Empty Data"}})).volatile(()=>({controller:new AbortController})).actions(e=>({setName(t){e.name=t},setKey(t){e.key=t},setType(t){e.type=t},setSQL(t){e.sql=t},setRunBy(t){e.run_by.length=0,e.run_by.push(...t)},fetchData:O.flow(function*(){var t;if(!!e.valid&&((t=e.controller)==null||t.abort(),!!e.runByConditionsMet)){e.controller=new AbortController,e.state="loading";try{const n=e.id,{context:r,mock_context:i,sqlSnippets:a,filterValues:o}=O.getRoot(e).payloadForSQL;e.data=yield*O.toGenerator(W1({context:r,mock_context:i,sqlSnippets:a,title:n,query:e.json,filterValues:o},e.controller.signal)),e.state="idle",e.error=null}catch(n){Oa.default.isCancel(n)||(e.data.length=0,e.error=L.get(n,"response.data.detail.message","unknown error"),e.state="error")}}}),beforeDestroy(){var t;(t=e.controller)==null||t.abort()}})).actions(e=>({afterCreate(){O.addDisposer(e,kt.reaction(()=>`${e.id}--${e.key}--${e.type}--${e.formattedSQL}`,e.fetchData,{fireImmediately:!0,delay:0}))}})),ph=O.types.model("QueriesModel",{current:O.types.optional(O.types.array(fh),[])}).views(e=>({get firstID(){if(e.current.length!==0)return e.current[0].id},findByID(t){return e.current.find(n=>n.id===t)},get options(){return e.current.filter(t=>t.id).map(t=>({value:t.id,label:t.name}))}})).views(e=>({get json(){return e.current.map(t=>t.json)}})).actions(e=>({replace(t){e.current=O.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},replaceByIndex(t,n){e.current.splice(t,1,n)},downloadAllData(){const t=e.current.map(({name:n,data:r})=>({id:n,data:r.toJSON()}));z1(t)},downloadDataByQueryID(t){if(!t){console.log("[downloadDataByQueryID] query not found");return}const{name:n,data:r}=t,i=Xd(r);V1(n,i)},refetchDataByQueryID(t){const n=e.findByID(t);if(!n){console.error(new Error(`[downloadDataByQueryID] query by ID[${t}] not found`));return}return n.fetchData()},removeQuery(t){const n=e.current.find(r=>r.id===t);n&&(O.detach(n),e.current.remove(n))}})),hh=O.types.model("SQLSnippetModel",{key:O.types.string,value:O.types.string}).views(e=>({get json(){const{key:t,value:n}=e;return{key:t,value:n}},isADuplicatedKey(t){return!t||t===e.key?!1:!!O.getParent(e,2).findByKey(t)}})).actions(e=>({setKey(t){e.key=t},setValue(t){e.value=t}})),gh=O.types.model("SQLSnippetsModel",{current:O.types.optional(O.types.array(hh),[])}).views(e=>({get json(){return e.current.map(t=>t.json)},get record(){return e.current.reduce((t,n)=>(t[n.key]=n.value,t),{})},get firstKey(){if(e.current.length!==0)return e.current[0].key},findByKey(t){return e.current.find(n=>n.key===t)}})).actions(e=>({replace(t){e.current=O.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},replaceByIndex(t,n){e.current.splice(t,1,n)}})),vh=O.types.model("ContextModel",{current:O.types.optional(O.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}})),sI=O.types.model("MockContextModel",{current:O.types.optional(O.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}})),uI=O.types.model("PanelLayoutModel",{x:O.types.number,y:O.types.number,w:O.types.number,h:O.types.number,moved:O.types.optional(O.types.boolean,!1),static:O.types.optional(O.types.boolean,!1)}).views(e=>({get json(){const{x:t,y:n,w:r,h:i,moved:a}=e;return{x:t,y:n,w:r,h:i,moved:a,static:e.static}}})).actions(e=>({set(t){const{x:n,y:r,w:i,h:a,moved:o}=t;e.x=n,e.y=r,e.w=i,e.h=a,e.moved=!!o,e.static=!!t.static}})),cI=O.types.model("PanelStyleBorderModel",{enabled:O.types.boolean}).views(e=>({get json(){const{enabled:t}=e;return{enabled:t}}})).actions(e=>({setEnabled(t){e.enabled=t}})),dI=O.types.model("PanelStyleModel",{border:cI}).views(e=>({get json(){const{border:t}=e;return{border:t.json}}})).actions(e=>({})),fI=O.types.model("PanelVizModel",{type:O.types.string,conf:O.types.frozen()}).views(e=>({get json(){return{type:e.type,conf:e.conf}}})).actions(e=>({setType(t){e.type=t},setConf(t){e.conf=t}})),pI=O.types.model({id:O.types.string,title:O.types.string,description:O.types.string,layout:uI,queryID:O.types.string,viz:fI,style:dI,variables:O.types.optional(O.types.array(SA),[])}).views(e=>({get query(){return O.getParentOfType(e,wa).queries.findByID(e.queryID)},get json(){const{id:t,title:n,description:r,queryID:i}=e;return{id:t,title:n,description:r,layout:e.layout.json,queryID:i,viz:e.viz.json,style:e.style.json,variables:e.variables.map(a=>a.json)}}})).actions(e=>({setID(t){e.id=t},setTitle(t){e.title=t},setDescription(t){e.description=t},setQueryID(t){if(O.getParentOfType(e,wa).queries.findByID(t))e.queryID=t;else throw new Error(`Query with id ${t} does not exist`)},addVariable(t){e.variables.push(t)},removeVariable(t){e.variables.remove(t)}})),hI=O.types.model("PanelsModel",{list:O.types.optional(O.types.array(pI),[])}).views(e=>({get json(){return e.list.map(t=>t.json)},get layouts(){return e.list.map(t=>({...t.layout.json,i:t.id}))},findByID(t){return e.list.find(n=>n.id===t)}})).actions(e=>({replace(t){e.list=O.castToSnapshot(t)},addANewPanel(){const t=bt.randomId();e.list.push({id:t,layout:{x:0,y:1/0,w:3,h:15},title:`Panel - ${t}`,description:"<p><br></p>",queryID:"",viz:{type:Nl.name,conf:Nl.createConfig()},style:{border:{enabled:!0}}})},append(t){e.list.push(t)},remove(t){e.list.splice(t,1)},removeByID(t){const n=e.list.findIndex(r=>r.id===t);n!==-1&&e.list.splice(n,1)},duplicateByID(t){const n=e.list.find(r=>r.id===t);if(!n){console.error(new Error(`[duplicate panel] Can't find a panel by id[${t}]`));return}e.list.push({...n.json,id:bt.randomId(),layout:{...n.layout,x:0,y:1/0,moved:!1}})},replaceByIndex(t,n){e.list.splice(t,1,n)}})),mh=O.types.model({id:O.types.identifier,name:O.types.string,type:O.types.string,config:O.types.frozen(),panels:hI}).views(e=>({get json(){const{id:t,name:n,type:r,config:i}=e;return{id:t,name:n,type:r,config:i,panels:e.panels.json}}})).actions(e=>({setName(t){e.name=t},setType(t){e.type!==t&&(t===an.Modal?e.config={width:"600px",height:"400px"}:e.config={},e.type=t)},setConfig(t){e.config=t},updateConfig(t,n){e.config={...e.config,[t]:n}}})).actions(e=>({})),yh=O.types.model("ViewsModel",{current:O.types.optional(O.types.array(mh),[]),visibleViewIDs:O.types.array(O.types.string),idOfVIE:O.types.string}).views(e=>({get json(){return e.current.map(t=>t.json)},findByID(t){return e.current.find(n=>n.id===t)},get isVIETheFirstView(){return e.current.length===0||!e.idOfVIE?!1:e.current[0].id===e.idOfVIE},get firstVisibleView(){const[t]=e.visibleViewIDs;return e.current.find(({id:n})=>n===t)},get visibleViews(){const t=new Set(e.visibleViewIDs);return e.current.filter(({id:n})=>t.has(n))},get VIE(){return e.current.find(({id:t})=>t===e.idOfVIE)},get options(){return e.current.map(t=>({label:t.name,value:t.id,type:t.type}))}})).actions(e=>({replace(t){e.current.replace(t)},addANewView(t,n,r){e.current.push({id:t,name:t,type:n,config:r,panels:{list:[]}})},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},removeByID(t){const n=e.current.findIndex(r=>r.id===t);n!==-1&&e.current.splice(n,1)},replaceByIndex(t,n){e.current.splice(t,1,n)},setIDOfVIE(t){e.idOfVIE=t,e.visibleViewIDs.length=0,e.visibleViewIDs.push(t)},addAPanelToVIE(){var t;(t=e.VIE)==null||t.panels.addANewPanel()},appendToVisibles(t){new Set(e.visibleViewIDs.map(r=>r)).has(t)||e.visibleViewIDs.push(t)}})).actions(e=>({addARandomNewView(){const t=bt.randomId();e.addANewView(t,an.Division,{}),e.setIDOfVIE(t)},removeVIE(){e.current.length!==1&&(e.removeByID(e.idOfVIE),e.setIDOfVIE(e.current[0].id))},rmVisibleViewID(t){const n=e.visibleViewIDs.findIndex(r=>r===t);n!==-1&&e.visibleViewIDs.splice(n,1)}}));function bh(e){const t=e.length>0?[e[0].id]:[],n=e.length>0?e[0].id:"";return{current:e.map(i=>({...i,panels:{list:i.panels}})),visibleViewIDs:t,idOfVIE:n}}const gI=O.types.model({id:O.types.identifier,name:O.types.string,version:O.types.string,filters:ch,queries:ph,sqlSnippets:gh,views:yh,context:vh,mock_context:sI,origin:O.types.maybe(O.types.frozen())}).views(e=>({get filtersChanged(){const t="filters.current";return!L.isEqual(O.getSnapshot(L.get(e,t)),L.get(e.origin,t))},get queriesChanged(){const t="queries.current",n=O.getSnapshot(L.get(e,t)).map(r=>L.pick(r,["id","name","key","type","sql","run_by"]));return!L.isEqual(n,L.get(e.origin,t))},get sqlSnippetsChanged(){const t="sqlSnippets.current";return!L.isEqual(O.getSnapshot(L.get(e,t)),L.get(e.origin,t))},get viewsChanged(){const t="views.current";return!L.isEqual(O.getSnapshot(L.get(e,t)),L.get(e.origin,t))},get mockContextChanged(){const t="mock_context.current";return!L.isEqual(L.get(e,t),L.get(e.origin,t))}})).views(e=>({get payloadForSQL(){return{context:e.context.current,mock_context:e.mock_context.current,sqlSnippets:e.sqlSnippets.current,filterValues:e.filters.values}},get changed(){return e.filtersChanged||e.queriesChanged||e.sqlSnippetsChanged||e.viewsChanged||e.mockContextChanged},get data(){return e.queries.current.map(({id:n,data:r})=>({id:n,data:r})).reduce((n,r)=>(n[r.id]=r.data,n),{})},getDataStuffByID(t){const n=e.queries.findByID(t);return n?{data:n.data.toJSON(),state:n.state,error:n.error}:{data:[],state:"idle",error:void 0}},getDataStateByID(t){var n,r;return(r=(n=e.queries.findByID(t))==null?void 0:n.state)!=null?r:[]},getDataErrorByID(t){var n,r;return(r=(n=e.queries.findByID(t))==null?void 0:n.error)!=null?r:[]}})).views(e=>({findDependingPanels(t){return e.views.current.flatMap(n=>n.panels.list.filter(r=>r.queryID===t).map(r=>r.title))}})).actions(e=>({reset(){O.applySnapshot(e.filters.current,e.origin.filters.current),O.applySnapshot(e.queries.current,e.origin.queries.current),O.applySnapshot(e.sqlSnippets.current,e.origin.sqlSnippets.current),O.applySnapshot(e.views.current,e.origin.views.current),e.mock_context.current=e.origin.mock_context.current},resetFilters(){O.applySnapshot(e.filters.current,e.origin.filters.current)}})),wa=O.types.snapshotProcessor(gI,{preProcessor(e){return{...e,origin:e}},postProcessor(e){delete e.origin;const t=O.castToSnapshot(e.queries.current.map(n=>L.pick(n,["id","key","type","sql"])));return L.defaults({},{queries:{current:t}},e)}});function Hl({id:e,name:t,version:n,filters:r,views:i,definition:{queries:a,sqlSnippets:o,mock_context:s={}}},u){return wa.create({id:e,name:t,version:n,filters:dh(r),queries:{current:a},sqlSnippets:{current:o},context:{current:u},mock_context:{current:s},views:bh(i)})}function Wl(e){return j.default.useCallback(t=>t.provideValue(Mt.pluginManager,e.pluginManager).provideValue(Mt.vizManager,e.vizManager).provideValue(Mt.colorManager,e.colorManager),[])}const HI="",vI=X.observer(function({context:t,dashboard:n,update:r,className:i="dashboard",config:a,fullScreenPanelID:o,setFullScreenPanelID:s}){Zd(a);const[u,d]=j.default.useState(!1),f=j.default.useMemo(()=>Hl(n,t),[n]);ts(f,!0),j.default.useEffect(()=>{f.context.replace(t)},[t]);const p=async()=>{const v=[...f.queries.json],m=[...f.sqlSnippets.json],C=[...f.views.json],b={...f.mock_context.current},w={...n,filters:[...f.filters.current],views:C,definition:{sqlSnippets:m,queries:v,mock_context:b}};await r(w)},h=Ze.useCreation(zl,[]),g=Wl(h);return l(xa.ModalsProvider,{children:l(ka,{value:f,children:l(sn.Provider,{value:{layoutFrozen:u,freezeLayout:d,inEditMode:!0,inUseMode:!1},children:l(c.Box,{className:`${i} dashboard-root`,sx:{position:"relative"},children:l(bn.Provider,{value:h,children:l(Ci,{configure:g,children:f.views.visibleViews.map(v=>l(th,{view:v,saveDashboardChanges:p,fullScreenPanelID:o,setFullScreenPanelID:s},v.id))})})})})})})}),mI=X.observer(({context:e,dashboard:t,className:n="dashboard",config:r,fullScreenPanelID:i,setFullScreenPanelID:a})=>{Zd(r);const o=j.default.useMemo(()=>Hl(t,e),[t]);ts(o,!1),j.default.useEffect(()=>{o.context.replace(e)},[e]);const s=Ze.useCreation(zl,[]),u=Wl(s);return l(xa.ModalsProvider,{children:l(ka,{value:o,children:l(sn.Provider,{value:{layoutFrozen:!0,freezeLayout:De.default.noop,inEditMode:!1,inUseMode:!0},children:l(c.Box,{className:`${n} dashboard-root dashboard-sticky-parent`,children:l(bn.Provider,{value:s,children:l(Ci,{configure:u,children:o.views.visibleViews.map(d=>l(nh,{view:d,fullScreenPanelID:i,setFullScreenPanelID:a},d.id))})})})})})})});var Ch={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(Zt,function(){var n={year:0,month:1,day:2,hour:3,minute:4,second:5},r={};return function(i,a,o){var s,u=function(h,g,v){v===void 0&&(v={});var m=new Date(h),C=function(b,w){w===void 0&&(w={});var S=w.timeZoneName||"short",D=b+"|"+S,_=r[D];return _||(_=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:b,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:S}),r[D]=_),_}(g,v);return C.formatToParts(m)},d=function(h,g){for(var v=u(h,g),m=[],C=0;C<v.length;C+=1){var b=v[C],w=b.type,S=b.value,D=n[w];D>=0&&(m[D]=parseInt(S,10))}var _=m[3],P=_===24?0:_,N=m[0]+"-"+m[1]+"-"+m[2]+" "+P+":"+m[4]+":"+m[5]+":000",V=+h;return(o.utc(N).valueOf()-(V-=V%1e3))/6e4},f=a.prototype;f.tz=function(h,g){h===void 0&&(h=s);var v=this.utcOffset(),m=this.toDate(),C=m.toLocaleString("en-US",{timeZone:h}),b=Math.round((m-new Date(C))/1e3/60),w=o(C).$set("millisecond",this.$ms).utcOffset(15*-Math.round(m.getTimezoneOffset()/15)-b,!0);if(g){var S=w.utcOffset();w=w.add(v-S,"minute")}return w.$x.$timezone=h,w},f.offsetName=function(h){var g=this.$x.$timezone||o.tz.guess(),v=u(this.valueOf(),g,{timeZoneName:h}).find(function(m){return m.type.toLowerCase()==="timezonename"});return v&&v.value};var p=f.startOf;f.startOf=function(h,g){if(!this.$x||!this.$x.$timezone)return p.call(this,h,g);var v=o(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return p.call(v,h,g).tz(this.$x.$timezone,!0)},o.tz=function(h,g,v){var m=v&&g,C=v||g||s,b=d(+o(),C);if(typeof h!="string")return o(h).tz(C);var w=function(P,N,V){var F=P-60*N*1e3,R=d(F,V);if(N===R)return[F,N];var M=d(F-=60*(R-N)*1e3,V);return R===M?[F,R]:[P-60*Math.min(R,M)*1e3,Math.max(R,M)]}(o.utc(h,m).valueOf(),b,C),S=w[0],D=w[1],_=o(S).utcOffset(D);return _.$x.$timezone=C,_},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(h){s=h}}})})(Ch);const yI=Ch.exports;var Sh={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(Zt,function(){var n="minute",r=/[+-]\d\d(?::?\d\d)?/g,i=/([+-]|\d\d)/g;return function(a,o,s){var u=o.prototype;s.utc=function(m){var C={date:m,utc:!0,args:arguments};return new o(C)},u.utc=function(m){var C=s(this.toDate(),{locale:this.$L,utc:!0});return m?C.add(this.utcOffset(),n):C},u.local=function(){return s(this.toDate(),{locale:this.$L,utc:!1})};var d=u.parse;u.parse=function(m){m.utc&&(this.$u=!0),this.$utils().u(m.$offset)||(this.$offset=m.$offset),d.call(this,m)};var f=u.init;u.init=function(){if(this.$u){var m=this.$d;this.$y=m.getUTCFullYear(),this.$M=m.getUTCMonth(),this.$D=m.getUTCDate(),this.$W=m.getUTCDay(),this.$H=m.getUTCHours(),this.$m=m.getUTCMinutes(),this.$s=m.getUTCSeconds(),this.$ms=m.getUTCMilliseconds()}else f.call(this)};var p=u.utcOffset;u.utcOffset=function(m,C){var b=this.$utils().u;if(b(m))return this.$u?0:b(this.$offset)?p.call(this):this.$offset;if(typeof m=="string"&&(m=function(_){_===void 0&&(_="");var P=_.match(r);if(!P)return null;var N=(""+P[0]).match(i)||["-",0,0],V=N[0],F=60*+N[1]+ +N[2];return F===0?0:V==="+"?F:-F}(m),m===null))return this;var w=Math.abs(m)<=16?60*m:m,S=this;if(C)return S.$offset=w,S.$u=m===0,S;if(m!==0){var D=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(S=this.local().add(w+D,n)).$offset=w,S.$x.$localOffset=D}else S=this.utc();return S};var h=u.format;u.format=function(m){var C=m||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return h.call(this,C)},u.valueOf=function(){var m=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*m},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var g=u.toDate;u.toDate=function(m){return m==="s"&&this.$offset?s(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():g.call(this)};var v=u.diff;u.diff=function(m,C,b){if(m&&this.$u===m.$u)return v.call(this,m,C,b);var w=this.local(),S=s(m).local();return v.call(w,S,C,b)}}})})(Sh);const bI=Sh.exports,CI=()=>Promise.resolve().then(()=>hT).then(({version:e})=>(console.log(`[@devtable/dashboard] version: ${e}`),e));$n.default.extend(bI),$n.default.extend(yI),$n.default.tz.setDefault("UTC"),J.ContextModel=vh,J.Dashboard=vI,J.DashboardFilterType=of,J.DashboardMode=af,J.DashboardModel=wa,J.EViewComponentType=an,J.FilterModel=ql,J.FiltersModel=ch,J.LayoutStateContext=sn,J.MainDashboardView=th,J.ModelContextProvider=ka,J.Panel=Sa,J.PanelContextProvider=ss,J.QueriesModel=ph,J.QueryModel=fh,J.ReadOnlyDashboard=mI,J.ReadOnlyDashboardView=nh,J.SQLSnippetModel=hh,J.SQLSnippetsModel=gh,J.ViewModel=mh,J.ViewsModel=yh,J.createDashboardModel=Hl,J.createDashboardViewsModel=bh,J.getInitialFiltersPayload=dh,J.getVersion=CI,J.useModelContext=et,J.usePanelContext=Pt,J.useTopLevelServices=Wl,Object.defineProperties(J,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
241
|
+
`)}},iP=({value:e,onChange:t,data:n})=>{const[r,{setTrue:i,setFalse:a}]=Ze.useBoolean(),[o,s]=x.useState(e),u=()=>{a();const{type:h,func_content:g}=o,v={type:h,func_content:g};s(v),t(v)},d=()=>{a(),s(e)},f=h=>{s(g=>({...g,func_content:h}))},p=()=>{f(Bp.dynamic.func_content)};return y(Oe,{children:[l(c.Box,{sx:{width:"50%"},children:l(c.Button,{variant:"filled",mt:24,onClick:i,sx:{flexGrow:0},children:"Setup"})}),l(c.Modal,{size:800,title:"Setup dynamic size",opened:r,onClose:a,closeOnClickOutside:!1,withCloseButton:!1,children:r&&y(c.Stack,{children:[l(c.Divider,{mt:10,mb:-10,label:"Dynamic by a custom function",labelPosition:"center",variant:"dashed"}),l(rP,{value:o.func_content,onChange:f}),y(c.Group,{position:"apart",children:[l(c.Button,{onClick:p,color:"red",leftIcon:l(W.Recycle,{size:20}),children:"Rest"}),y(c.Group,{position:"right",children:[l(c.Button,{onClick:d,variant:"subtle",children:"Cancel"}),l(c.Button,{onClick:u,children:"OK"})]})]})]})})]})},aP=({value:e,onChange:t,data:n})=>e.type!=="dynamic"?null:l(iP,{value:e,onChange:t,data:n}),oP=({value:e,onChange:t})=>{if(e.type!=="static")return null;const n=r=>{t({...e,size:r})};return l(Oe,{children:l(c.NumberInput,{defaultValue:18,placeholder:"1 ~ 100",label:" ",hideControls:!0,value:e.size,onChange:n})})},lP=[{label:"Static",value:"static"},{label:"Dynamic",value:"dynamic"}],sP=x.forwardRef(({label:e="Size",value:t,onChange:n,data:r},i)=>{const a=o=>{n({...Bp[o]})};return y(c.SimpleGrid,{cols:2,children:[l(c.Select,{ref:i,label:e,data:lP,value:t.type,onChange:a,sx:{flexGrow:1}}),l(oP,{value:t,onChange:n}),l(aP,{value:t,onChange:n,data:r})]})}),uP=[{label:"off",value:""},{label:"top",value:"top"},{label:"left",value:"left"},{label:"right",value:"right"},{label:"bottom",value:"bottom"},{label:"inside",value:"inside"},{label:"insideLeft",value:"insideLeft"},{label:"insideRight",value:"insideRight"},{label:"insideTop",value:"insideTop"},{label:"insideBottom",value:"insideBottom"},{label:"insideTopLeft",value:"insideTopLeft"},{label:"insideBottomLeft",value:"insideBottomLeft"},{label:"insideTopRight",value:"insideTopRight"},{label:"insideBottomRight",value:"insideBottomRight"}];function cP({data:e,control:t,watch:n}){return n(["scatter"]),y(c.Stack,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"scatter.name_data_key",control:t,render:({field:r})=>l(ot,{label:"Name Data Field",required:!0,data:e,sx:{flex:1},...r})}),l(k.Controller,{name:"scatter.y_data_key",control:t,render:({field:r})=>l(ot,{label:"Value Data Field",required:!0,data:e,sx:{flex:1},...r})})]}),l(c.Divider,{mb:-15,label:"Style",labelPosition:"center"}),l(k.Controller,{name:"scatter.symbolSize",control:t,render:({field:r})=>l(sP,{label:"Size",data:e,...r})}),y(c.Stack,{spacing:4,children:[l(c.Text,{size:"sm",children:"Color"}),l(k.Controller,{name:"scatter.color",control:t,render:({field:r})=>l(mn,{...r})})]}),l(c.Divider,{mb:-15,label:"Label",labelPosition:"center"}),l(c.Group,{grow:!0,noWrap:!0,children:l(k.Controller,{name:"scatter.label_position",control:t,render:({field:r})=>l(c.Select,{label:"Label Position",data:uP,...r})})})]})}function dP({control:e,watch:t}){return t("stats"),l(c.Stack,{children:y(c.Stack,{spacing:0,children:[l(k.Controller,{name:"stats.templates.top",control:e,render:({field:n})=>l(oi,{label:"Template for stats above the chart",py:"md",sx:{flexGrow:1},...n})}),l(k.Controller,{name:"stats.templates.bottom",control:e,render:({field:n})=>l(oi,{label:"Template for stats under the chart",py:"md",sx:{flexGrow:1},...n})})]})})}const fP=({control:e,data:t,index:n,remove:r})=>y(c.Stack,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`tooltip.metrics.${n}.name`,control:e,render:({field:i})=>l(c.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),l(k.Controller,{name:`tooltip.metrics.${n}.data_key`,control:e,render:({field:i})=>l(ot,{label:"Value Field",required:!0,data:t,sx:{flex:1},...i})})]}),l(c.Divider,{mb:-10,mt:10,variant:"dashed"}),l(c.Button,{leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>r(n),sx:{top:15,right:5},children:"Delete this Metric"})]}),pP=({control:e,watch:t,data:n})=>{const{fields:r,append:i,remove:a}=k.useFieldArray({control:e,name:"tooltip.metrics"}),o=t("tooltip.metrics"),s=r.map((h,g)=>({...h,...o[g]})),u=()=>i({id:Date.now().toString(),data_key:"",name:""}),d=t("tooltip.metrics.0.id"),[f,p]=x.useState(()=>d!=null?d:null);return x.useEffect(()=>{d&&p(h=>h!==null?h:d)},[d]),y(Oe,{children:[y(c.Group,{spacing:2,sx:{cursor:"default",userSelect:"none"},children:[l(W.InfoCircle,{size:14,color:"#888"}),l(c.Text,{size:14,color:"#888",children:"Condigure additional metrics to show in tooltip"})]}),l(c.Divider,{variant:"dashed",my:10}),y(c.Tabs,{value:f,onTabChange:h=>p(h),styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px",paddingTop:"6px"}},children:[y(c.Tabs.List,{children:[s.map((h,g)=>l(c.Tabs.Tab,{value:h.id,children:h.name?h.name:g},h.id)),l(c.Tabs.Tab,{onClick:u,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),s.map((h,g)=>l(c.Tabs.Panel,{value:h.id,children:l(fP,{control:e,index:g,remove:a,data:n},h.id)},h.id))]})]})};function hP({data:e,control:t,watch:n}){return l(pP,{control:t,watch:n,data:e})}const gP=({disabled:e,value:t,onChange:n})=>{const r=i=>{!i||n(i)};return y(c.Box,{sx:{position:"relative"},children:[e&&l(c.Overlay,{opacity:.6,color:"#fff",zIndex:5,blur:2}),l(Jn.default,{height:"500px",defaultLanguage:"javascript",value:t,onChange:r,theme:"vs-dark",options:{minimap:{enabled:!1,readOnly:e}}})]})},vP=({value:e,onChange:t,data:n})=>{const[r,{setTrue:i,setFalse:a}]=Ze.useBoolean(),[o,s]=x.useState(e),u=g=>{s({...o,enabled:g})},d=()=>{a();const{enabled:g,func_content:v}=o,m={enabled:g,func_content:v};s(m),t(m)},f=()=>{a(),s(e)},p=g=>{s(v=>({...v,func_content:g}))},h=()=>{p(jp.func_content)};return y(Oe,{children:[l(c.Button,{variant:"filled",mt:24,onClick:i,sx:{flexGrow:0},children:"Customize Label"}),l(c.Modal,{size:800,title:"Customize label content",opened:r,onClose:a,closeOnClickOutside:!1,withCloseButton:!1,children:r&&y(c.Stack,{children:[l(c.Checkbox,{mt:10,label:"Enabled",checked:o.enabled,onChange:g=>u(g.currentTarget.checked)}),l(gP,{value:o.func_content,onChange:p,disabled:!o.enabled}),y(c.Group,{position:"apart",children:[l(c.Button,{onClick:h,color:"red",leftIcon:l(W.Recycle,{size:20}),children:"Rest"}),y(c.Group,{position:"right",children:[l(c.Button,{onClick:f,variant:"subtle",children:"Cancel"}),l(c.Button,{onClick:d,children:"OK"})]})]})]})})]})};function mP({data:e,control:t,watch:n}){return n(["x_axis"]),y(c.Stack,{children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis.data_key",control:t,render:({field:r})=>l(ot,{label:"Data Field",required:!0,data:e,sx:{flex:1},...r})}),l(k.Controller,{name:"x_axis.name",control:t,render:({field:r})=>l(c.TextInput,{label:"Name",sx:{flex:1},...r})})]}),l(c.Divider,{mb:-15,label:"Tick Label",labelPosition:"center"}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:"x_axis.axisLabel.rotate",control:t,render:({field:r})=>l(c.NumberInput,{label:"Rotate",hideControls:!0,min:-90,max:90,rightSection:l(c.Text,{color:"dimmed",children:"degree"}),sx:{width:"48%"},styles:{rightSection:{width:"4em",justifyContent:"flex-end",paddingRight:"6px"}},...r})}),l(k.Controller,{name:"x_axis.axisLabel.formatter",control:t,render:({field:r})=>l(vP,{data:e,...r})})]})]})}const yP=[{label:"left",value:"left"},{label:"center",value:"center"},{label:"right",value:"right"}],bP=[{label:"left",value:"left"},{label:"right",value:"right"}];function CP({control:e,index:t,remove:n}){return y(c.Stack,{my:0,p:"0",sx:{position:"relative"},children:[l(c.Divider,{mb:-15,mt:15,variant:"dashed",label:"Name",labelPosition:"center"}),y(c.Group,{grow:!0,noWrap:!0,children:[l(k.Controller,{name:`y_axes.${t}.name`,control:e,render:({field:r})=>l(c.TextInput,{label:"Name",required:!0,sx:{flex:1},...r})}),l(k.Controller,{name:`y_axes.${t}.nameAlignment`,control:e,render:({field:r})=>l(c.Select,{label:"Align",required:!0,data:yP,sx:{flex:1},...r})})]}),l(c.Divider,{mb:-15,variant:"dashed",label:"Layout",labelPosition:"center"}),l(c.Group,{grow:!0,noWrap:!0,children:l(k.Controller,{name:`y_axes.${t}.position`,control:e,render:({field:r})=>l(c.Select,{label:"Position",required:!0,data:bP,sx:{flex:1},...r})})}),y(c.Stack,{children:[l(c.Divider,{mb:-15,variant:"dashed",label:"Label Format",labelPosition:"center"}),l(k.Controller,{name:`y_axes.${t}.label_formatter`,control:e,render:({field:r})=>l(ar,{...r})})]}),l(c.Button,{mt:20,leftIcon:l(W.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),disabled:t===0,children:"Delete this YAxis"})]})}function SP({control:e,watch:t}){const{fields:n,append:r,remove:i}=k.useFieldArray({control:e,name:"y_axes"}),a=t("y_axes"),o=n.map((u,d)=>({...u,...a[d]})),s=()=>r({name:"",label_formatter:vn});return y(c.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px"}},children:[y(c.Tabs.List,{children:[o.map((u,d)=>l(c.Tabs.Tab,{value:d.toString(),children:d+1},d)),l(c.Tabs.Tab,{onClick:s,value:"add",children:l(c.ActionIcon,{children:l(W.Plus,{size:18,color:"#228be6"})})})]}),o.map((u,d)=>l(c.Tabs.Panel,{value:d.toString(),children:l(CP,{control:e,index:d,remove:i})},d))]})}function wP(e){return e||{templates:{top:"",bottom:""}}}function xP({reference_lines:e=[],stats:t,...n}){return{reference_lines:e,stats:wP(t),...n}}function _P({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),{variables:r}=e,i=e.data,a=x.useMemo(()=>L.defaultsDeep({},t,Vl),[t]),o=x.useMemo(()=>xP(a),[a]);x.useEffect(()=>{!L.isEqual(a,o)&&(console.log("config malformed, resetting to defaults",a,o),n(o))},[a,o]);const{control:s,handleSubmit:u,watch:d,getValues:f,reset:p}=k.useForm({defaultValues:o});x.useEffect(()=>{p(o)},[o]);const h=f(),g=x.useMemo(()=>!L.isEqual(h,a),[h,a]);return d(["dataZoom"]),l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:u(n),children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{children:"Chart Config"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!g,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Tabs,{defaultValue:"X Axis",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[y(c.Tabs.List,{children:[l(c.Tabs.Tab,{value:"X Axis",children:"X Axis"}),l(c.Tabs.Tab,{value:"Y Axes",children:"Y Axes"}),l(c.Tabs.Tab,{value:"Scatter",children:"Scatter"}),l(c.Tabs.Tab,{value:"Tooltip",children:"Tooltip"}),l(c.Tabs.Tab,{value:"Stats",children:"Stats"}),l(c.Tabs.Tab,{value:"Reference Lines",children:"Reference Lines"}),l(c.Tabs.Tab,{value:"Zooming",children:"Zooming"})]}),l(c.Tabs.Panel,{value:"X Axis",children:l(mP,{control:s,watch:d,data:i})}),l(c.Tabs.Panel,{value:"Y Axes",children:l(SP,{control:s,watch:d})}),l(c.Tabs.Panel,{value:"Scatter",children:l(cP,{control:s,watch:d,data:i})}),l(c.Tabs.Panel,{value:"Tooltip",children:l(hP,{control:s,watch:d,data:i})}),l(c.Tabs.Panel,{value:"Stats",children:l(dP,{control:s,watch:d,data:i})}),l(c.Tabs.Panel,{value:"Reference Lines",children:l(nP,{variables:r,control:s,watch:d})}),l(c.Tabs.Panel,{value:"Zooming",children:l(k.Controller,{name:"dataZoom",control:s,render:({field:v})=>l(pl,{...v})})})]})]})})}function EP(e){const{dataZoom:t=$r,...n}=e;return{...n,dataZoom:t}}class TP extends Ft{constructor(){super(...arguments);pe(this,"VERSION",3)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,n=>{const{tooltip:r={metrics:[]},...i}=n.config;return{...n,version:2,config:{...i,tooltip:r}}}),this.version(3,n=>({...n,version:3,config:EP(n.config)}))}}const OP={displayName:"Scatter Chart",migrator:new TP,name:"scatterChart",viewRender:Jk,configRender:_P,createConfig:()=>Vl,triggers:[zp]},Gp=["function text({ data, variables, filters, context}) {"," // your code goes here",' return "text"',"}"].join(`
|
|
242
|
+
`),Fl={func_content:Gp,horizontal_align:"left",font_size:"14px",font_weight:"normal"},MP=X.observer(({context:e})=>{const t=et(),{value:n=Fl}=Ue(e.instanceData,"config"),{variables:r}=e,{func_content:i,horizontal_align:a,font_size:o,font_weight:s}=n,u=x.useMemo(()=>new Function(`return ${i}`)()({data:e.data,variables:r,filters:t.filters.values,context:t.context.current}),[i,e.data,r,t.filters.values,t.context.current]);return l(c.Text,{align:a,weight:s,sx:{fontSize:o},children:u})}),DP=({value:e,onChange:t})=>{const n=r=>{!r||t(r)};return l(c.Box,{sx:{position:"relative"},children:l(Jn.default,{height:"500px",defaultLanguage:"javascript",value:e,onChange:n,theme:"vs-dark",options:{minimap:{enabled:!1}}})})},RP=x.forwardRef(({value:e,onChange:t},n)=>{const[r,{setTrue:i,setFalse:a}]=Ze.useBoolean(),[o,s]=x.useState(e),u=()=>{a(),t(o)},d=()=>{a(),s(e)},f=()=>{s(Gp)};return x.useEffect(()=>{s(e)},[e]),y(Oe,{children:[l(c.Button,{variant:"filled",mt:24,onClick:i,sx:{flexGrow:0},children:"Edit Content"}),l(c.Modal,{size:800,title:"Text content",opened:r,onClose:a,closeOnClickOutside:!1,withCloseButton:!1,children:r&&y(c.Stack,{children:[l(DP,{value:o,onChange:s}),y(c.Group,{position:"apart",children:[l(c.Button,{onClick:f,color:"red",leftIcon:l(W.Recycle,{size:20}),children:"Rest"}),y(c.Group,{position:"right",children:[l(c.Button,{onClick:d,variant:"subtle",children:"Cancel"}),l(c.Button,{onClick:u,children:"OK"})]})]})]})})]})}),kP=[{label:"Left",value:"left"},{label:"Center",value:"center"},{label:"Right",value:"right"}];function PP({context:e}){const{value:t,set:n}=Ue(e.instanceData,"config"),r=x.useMemo(()=>L.defaultsDeep({},t,Fl),[t]),i=x.useMemo(()=>{const{func_content:h,horizontal_align:g,font_size:v,font_weight:m}=r;return{func_content:h,horizontal_align:g,font_size:v,font_weight:m}},[r]);x.useEffect(()=>{!L.isEqual(r,i)&&(console.log("config malformed, resetting to defaults",r,i),n(i))},[r,i]);const{control:a,handleSubmit:o,watch:s,getValues:u,reset:d}=k.useForm({defaultValues:i});j.default.useEffect(()=>{d(i)},[i]),s(["func_content","horizontal_align","font_size","font_weight"]);const f=u(),p=j.default.useMemo(()=>!De.default.isEqual(f,r),[f,r]);return l(c.Stack,{mt:"md",spacing:"xs",children:y("form",{onSubmit:o(n),children:[y(c.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[l(c.Text,{weight:500,children:"Configurations"}),l(c.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!p,children:l(W.DeviceFloppy,{size:20})})]}),y(c.Stack,{spacing:10,children:[l(k.Controller,{name:"func_content",control:a,render:({field:h})=>l(RP,{...h})}),l(c.Divider,{mt:10,mb:-10,variant:"dashed",label:"Style",labelPosition:"center"}),l(k.Controller,{name:"horizontal_align",control:a,render:({field:h})=>l(c.Select,{label:"Horizontal Alignment",data:kP,...h})}),l(k.Controller,{name:"font_size",control:a,render:({field:h})=>l(c.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",sx:{flex:1},...h})}),l(c.Group,{position:"apart",grow:!0,sx:{"> *":{flexGrow:1,maxWidth:"100%"}},children:l(k.Controller,{name:"font_weight",control:a,render:({field:h})=>l(Ff,{label:"Font Weight",...h})})})]})]})})}class AP extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const IP={displayName:"Text",migrator:new AP,name:"text",viewRender:MP,configRender:PP,createConfig:()=>Fl},$P=[{value:"#25262B",name:"Dark"},{value:"#868E96",name:"Gray"},{value:"#FA5252",name:"Red"},{value:"#E64980",name:"Pink"},{value:"#BE4BDB",name:"Grape"},{value:"#7950F2",name:"Violet"},{value:"#4C6EF5",name:"Indigo"},{value:"#228BE6",name:"Blue"},{value:"#15AABF",name:"Cyan"},{value:"#12B886",name:"Teal"},{value:"#40C057",name:"Green"},{value:"#82C91E",name:"Lime"},{value:"#FAB005",name:"Yellow"},{value:"#FD7E14",name:"Orange"}].map(e=>({name:e.name,value:e.value,type:"single",category:"basic"})),NP=[sT,uT,fT,dT,cT,pT],Kp=()=>({id:"dashboard",version:Uo,manifest:{viz:[Nl,oR,IP,ZD,dR,TD,wT,EO,SD,UM,OP,LD,UD,$k,FO],color:[...$P,...NP]}}),gi=new vT,Mt={pluginManager:xn("pluginManager"),vizManager:xn("vizManager"),colorManager:xn("colorManager"),instanceScope:{panelModel:xn("panelModel"),vizInstance:xn("vizInstance"),interactionManager:xn("interactionManager"),migrator:xn("migrator"),operationManager:xn("operationManager"),triggerManager:xn("triggerManager")}},zl=()=>{try{gi.install(Kp())}catch{}const e=new aT(gi),t=new gT(gi);return{pluginManager:gi,vizManager:e,colorManager:t}},bn=x.createContext(zl());try{gi.install(Kp())}catch{}function LP(e,t){const{value:n,set:r}=Ue(e.operation.operationData,"config"),[i,a]=x.useState(L.defaults({},n,t)),o=async()=>{await r(i)};return x.useEffect(()=>{a(L.defaults({},n,t))},[n]),{config:i,setConfig:a,commit:o}}function VP(e){const{config:t,setConfig:n,commit:r}=LP(e,{urlTemplate:"",openInNewTab:!0});async function i(){await r()}async function a(s){n({...t,openInNewTab:s}),await r()}const o=s=>n({...t,urlTemplate:s.currentTarget.value});return y(c.Stack,{children:[l(c.TextInput,{label:"Url",value:t.urlTemplate,onChange:o,onBlur:i}),l(c.Switch,{label:"Open in new Tab",checked:t.openInNewTab,onChange:s=>a(s.currentTarget.checked)})]})}async function FP(e,t){const{urlTemplate:n,openInNewTab:r}=await t.operationData.getItem("config");window.dispatchEvent(new CustomEvent("open-link",{detail:{urlTemplate:n,openInNewTab:r,payload:e}}))}class zP extends Ft{constructor(){super(...arguments);pe(this,"VERSION",1)}configVersions(){this.version(1,n=>n)}}const jP={displayName:"Open Link",id:"builtin:op:open-link",configRender:VP,run:FP,migrator:new zP,createDefaultConfig:()=>({version:1,config:{urlTemplate:"",openInNewTab:!0}})};function BP(e){const{value:t,set:n}=Ue(e.operationData,"config"),r=i=>void n({template:i});return[(t==null?void 0:t.template)||"",r]}function GP(e){const[t,n]=BP(e.operation);return l(c.TextInput,{defaultValue:t,onBlur:r=>n(r.currentTarget.value),label:"console.log"})}async function KP(e,t){const n=await t.operationData.getItem("config"),r=L.template(n.template||"");console.log("run with payload",e),console.log(r(e))}const qP={displayName:"console.log (debug)",id:"builtin:op:debug",configRender:GP,run:KP},HP=X.observer(e=>{const t=et(),{value:n,set:r}=Ue(e.operation.operationData,"config");console.log({value:n,viewID:n==null?void 0:n.viewID});const i=(n==null?void 0:n.viewID)||"",a=o=>void r({viewID:o});return l(c.Select,{defaultValue:i,value:i,onChange:a,label:"View",data:t.views.options})});async function WP(e,t){const r=(await t.operationData.getItem("config")).viewID;window.dispatchEvent(new CustomEvent("open-view",{detail:{viewID:r}}))}const UP={displayName:"Open View",id:"builtin:op:open_view",configRender:HP,run:WP},YP={dictionary:{}},XP=X.observer(e=>{const t=et(),{value:n=YP,set:r}=Ue(e.operation.operationData,"config"),{dictionary:i={}}=n,a=(u,d)=>{r({dictionary:{...i,[u]:d}})},o=()=>{a(t.filters.firstFilterValueKey,"")},s=u=>{const d={...i};delete d[u],r({dictionary:d})};return console.log(t.filters.values),y(c.Stack,{spacing:10,children:[l(c.Text,{children:"Mapping Rules"}),Object.entries(i).map(([u,d],f)=>y(c.Group,{noWrap:!0,children:[l(c.TextInput,{label:"Payload key",value:d,onChange:p=>{a(u,p.currentTarget.value)}}),l(ot,{data:[t.filters.values],value:u,onChange:p=>{a(p,d)},label:"Filter key"}),l(c.ActionIcon,{onClick:()=>s(u),sx:{marginTop:"22px"},children:l(W.Trash,{size:14,color:"red"})})]},u)),l(c.Button,{size:"xs",onClick:o,children:"Add one mapping rule"})]})});async function QP(e,t){const r=(await t.operationData.getItem("config")).dictionary;window.dispatchEvent(new CustomEvent("set-filter-values",{detail:{dictionary:r,payload:e}}))}const ba=[qP,jP,UP,{displayName:"Set Filter Values",id:"builtin:op:set_filter_values",configRender:XP,run:QP}];class ZP{constructor(t,n=ba){pe(this,"attachments");this.operations=n;const r=async i=>{const{id:a,schemaRef:o}=await i.getItem(null);return{id:a,schemaRef:o,operationData:new Pr(i,"data")}};this.attachments=new Wo(t,"__OPERATIONS",r)}async runOperation(t,n){const r=await this.attachments.getInstance(t);if(!r){console.warn(`Operation '${t}' is not defined`);return}const i=this.tryGetSchema(r.schemaRef);if(!i){console.warn(`Operation schema '${r.schemaRef}' is not defined`);return}await i.run(n,r)}tryGetSchema(t){return this.operations.find(n=>n.id===t)}async needMigration(){const n=(await this.attachments.list()).map(async r=>{const i={configData:r.operationData},a=this.tryGetSchema(r.schemaRef),o=a==null?void 0:a.migrator;return o&&await o.needMigration(i)});return(await Promise.all(n)).some(r=>r)}async runMigration(){const n=(await this.attachments.list()).map(async r=>{const i={configData:r.operationData},a=this.tryGetSchema(r.schemaRef),o=a==null?void 0:a.migrator;o&&await o.needMigration(i)&&await o.migrate(i)});await Promise.all(n)}async createOrGetOperation(t,n){var o,s;if(!this.getOperationSchemaList().some(u=>u.id===n.id))throw new Error(`Operation schema '${n.id}' is not defined`);const i=await this.attachments.getInstance(t);return!i||i.schemaRef!==n.id?await this.attachments.create(t,{id:t,schemaRef:n.id,data:(s=(o=n.createDefaultConfig)==null?void 0:o.call(n))!=null?s:{}}):i}getOperationList(){return this.attachments.list()}getOperationSchemaList(){return this.operations}removeOperation(t){return this.attachments.remove(t)}async retrieveTrigger(t){return await this.attachments.getInstance(t)}}class jl{constructor(t,n,r){pe(this,"operationManager");pe(this,"triggerManager");pe(this,"attachments");this.operationManager=new ZP(t,r),this.triggerManager=new TT(t,n);const i=async a=>{const{id:o,triggerRef:s,operationRef:u}=await a.getItem(null);return{id:o,triggerRef:s,operationRef:u}};this.attachments=new Wo(t,"__INTERACTIONS",i)}async addInteraction(t,n){const r=t.id,i=n.id,a=`[${r}]:[${i}]`;await this.attachments.create(a,{id:a,triggerRef:r,operationRef:i})}getInteractionList(){return this.attachments.list()}async removeInteraction(t){const n=await this.attachments.getInstance(t);if(!n)return;const{triggerRef:r,operationRef:i}=n;await this.getTriggerRefCount(r)<=1&&await this.triggerManager.removeTrigger(r),await this.getOperationRefCount(i)<=1&&await this.operationManager.removeOperation(i),await this.attachments.remove(t)}async getOperationRefCount(t){return(await this.getInteractionList()).filter(r=>r.operationRef===t).length}async getTriggerRefCount(t){return(await this.getInteractionList()).filter(r=>r.triggerRef===t).length}async runInteraction(t,n){const i=(await this.getInteractionList()).filter(a=>a.triggerRef===t);await Promise.all(i.map(async a=>{try{return await this.operationManager.runOperation(a.operationRef,n)}catch(o){console.warn(`Failed to run operation '${a.operationRef}'`,o)}}))}}function JP(e,t){const[n,r]=x.useState([]);return Ze.useAsyncEffect(async()=>{const i=await e.getInteractionList();r(i)},[t]),n}const eA=X.observer(({item:e,manager:t,instance:n,sampleData:r,variables:i,onRemove:a})=>{const{triggerRef:o,operationRef:s}=e,u=JE(t.triggerManager,n);if(Ze.useAsyncEffect(async()=>{await u.configTrigger(o,r)},[u,o,r]),u.isReady()){const d=[...u.triggerSchema.payload,...i];return y(c.Group,{children:[l(rT,{model:u}),l(XE,{instance:n,operationId:s,variables:d,operationManager:t.operationManager}),l(c.Button,{"aria-label":"delete-interaction",variant:"outline",color:"red",onClick:()=>a(e),children:l(W.Trash,{})})]})}return null}),tA=e=>{const[t,n]=x.useState(0),{interactionManager:r,instance:i,sampleData:a,variables:o}=e,s=JP(r,t),u=async()=>{const h=await r.triggerManager.createOrGetTrigger(bt.randomId(),r.triggerManager.getTriggerSchemaList()[0]),g=await r.operationManager.createOrGetOperation(bt.randomId(),r.operationManager.getOperationSchemaList()[0]);await r.addInteraction(h,g),n(v=>v+1)};async function d(h){await r.removeInteraction(h.id),n(g=>g+1)}const{data:f=0,loading:p}=Ze.useRequest(async()=>{try{return(await r.triggerManager.getTriggerSchemaList()).length}catch{return 0}});return y(c.Stack,{children:[l(c.LoadingOverlay,{visible:p}),f===0&&l(c.Alert,{icon:l(W.AlertCircle,{size:16}),title:"Unavailable",color:"gray",children:"This visualization does not have available interactions to choose from"}),s.map(h=>l(eA,{onRemove:d,instance:i,sampleData:a,variables:o,item:h,manager:e.interactionManager},h.id)),l(c.Button,{style:{width:"fit-content"},onClick:()=>u(),disabled:f===0,children:"Add interaction"})]})},nA=()=>{const{panel:e,data:t}=Pt(),n=e.viz,{vizManager:r}=x.useContext(bn),i=e.json,a=Ze.useCreation(()=>r.getOrCreateInstance(i),[r,n.type]),o=Ze.useCreation(()=>new jl(a,r.resolveComponent(n.type),ba),[a,n.type]);return x.useEffect(()=>a.instanceData.watchItem(null,L.throttle(s=>{e.viz.setConf(s)},100,{leading:!1,trailing:!0})),[a]),{instance:a,vizManager:r,interactionManager:o,sampleData:t,variables:[]}},rA=()=>{const e=nA();return l(tA,{...e})},iA=X.observer(()=>{const{panel:e}=Pt(),[t,n]=j.default.useState(e.description),r=e.description!==t,i=j.default.useCallback(()=>{!r||e.setDescription(t)},[r,t]);return y(c.Stack,{spacing:4,sx:{flexGrow:1},children:[y(c.Group,{align:"end",children:[l(c.Text,{sx:{flexGrow:1},children:"Description"}),l(c.ActionIcon,{variant:"subtle",color:"blue",disabled:!r,onClick:i,children:l(W.DeviceFloppy,{size:20})})]}),l(vp,{value:t,onChange:n,styles:{root:{flexGrow:1}}})]})}),aA=X.observer(()=>{const{panel:e}=Pt(),{style:t}=e;return l(Oe,{children:l(c.Switch,{label:"Border",checked:t.border.enabled,onChange:n=>t.border.setEnabled(n.currentTarget.checked)})})}),oA=X.observer(()=>{const{panel:{title:e,style:{border:t}}}=Pt();return l(ur,{children:y(c.Stack,{mx:"auto",mt:"xl",p:"5px",spacing:5,sx:{width:"600px",height:"450px",background:"transparent",borderRadius:"5px",border:"1px solid #e9ecef",borderWidth:t.enabled?"1px":"0px"},children:[y(c.Group,{position:"apart",noWrap:!0,sx:{flexGrow:0,flexShrink:0},children:[l(c.Group,{children:l(bf,{})}),l(c.Group,{grow:!0,position:"center",children:l(c.Text,{lineClamp:1,weight:"bold",children:e})}),l(c.Group,{position:"right",spacing:0,sx:{height:"28px"}})]}),l(c.Group,{sx:{background:"#eee",flexGrow:1}})]})})}),lA=X.observer(()=>{const{panel:e}=Pt(),{title:t,setTitle:n}=e,[r,i]=bt.useInputState(t),a=t!==r,o=j.default.useCallback(()=>{!a||n(r)},[a,r]);return l(c.TextInput,{value:r,onChange:i,label:y(c.Group,{align:"apart",children:[l(c.Text,{sx:{flexGrow:1},children:"Panel Title"}),l(c.ActionIcon,{variant:"subtle",color:"blue",disabled:!a,onClick:o,children:l(W.DeviceFloppy,{size:20})})]}),styles:{label:{display:"block",paddingBottom:"4px"}}})});function sA(){return y(c.Group,{grow:!0,noWrap:!0,align:"stretch",sx:{height:"100%"},children:[y(c.Stack,{sx:{width:"40%",flexShrink:0,flexGrow:0,height:"100%"},children:[l(c.Divider,{label:"Style",labelPosition:"center",variant:"dashed"}),l(aA,{}),l(c.Divider,{label:"Info",labelPosition:"center",variant:"dashed"}),l(lA,{}),l(iA,{})]}),l(c.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:l(oA,{})})]})}const uA=X.observer(function(){const t=et(),{panel:{queryID:n,setQueryID:r}}=Pt(),i=j.default.useMemo(()=>t.queries.current.map(a=>({value:a.id,label:a.name})),[t.queries.current]);return y(c.Stack,{children:[y(c.Group,{position:"left",sx:{maxWidth:"600px",alignItems:"baseline"},children:[l(c.Text,{children:"Select a Query"}),l(c.Select,{data:i,value:n,onChange:r,allowDeselect:!1,clearable:!1,sx:{flexGrow:"1 !important"}})]}),l(ef,{id:n})]})});var qp=(e=>(e.migrated="migrated",e.nothingToMigrate="nothingToMigrate",e.checkFailed="checkFailed",e.migrationFailed="migrationFailed",e))(qp||{}),Ca=(e=>(e.notStarted="notStarted",e.inProgress="inProgress",e.done="done",e))(Ca||{});class cA{constructor(t){pe(this,"vizInstance");pe(this,"operationManager");pe(this,"triggerManager");pe(this,"vizManager");pe(this,"runningMigration");pe(this,"panelModel");pe(this,"status","notStarted");this.panelModel=t.getRequired(Mt.instanceScope.panelModel),this.vizInstance=t.getRequired(Mt.instanceScope.vizInstance),this.operationManager=t.getRequired(Mt.instanceScope.operationManager),this.triggerManager=t.getRequired(Mt.instanceScope.triggerManager),this.vizManager=t.getRequired(Mt.vizManager)}async createMigrationTask(){const t=[];try{await this.instanceNeedMigration()&&t.push(()=>this.runInstanceMigration()),await this.interactionNeedMigration()&&t.push(()=>this.runInteractionMigration())}catch(n){return console.warn("check migration failed",n),"checkFailed"}if(t.length===0)return"nothingToMigrate";try{return await Promise.all(t.map(n=>n())),"migrated"}catch(n){return console.warn("migration failed",n),"migrationFailed"}}async runMigration(){return this.runningMigration||(this.status="inProgress",this.runningMigration=this.createMigrationTask().then(t=>(this.status="done",t))),this.runningMigration}async runInteractionMigration(){await this.operationManager.runMigration(),await this.triggerManager.runMigration()}async runInstanceMigration(){const t=this.vizManager.resolveComponent(this.vizInstance.type),n={configData:this.vizInstance.instanceData,panelModel:this.panelModel};await t.migrator.migrate(n)}async instanceNeedMigration(){const t=this.vizManager.resolveComponent(this.vizInstance.type),n={configData:this.vizInstance.instanceData};return t.migrator.needMigration(n)}async interactionNeedMigration(){return await this.operationManager.needMigration()||await this.triggerManager.needMigration()}}function Hp(e){const{panel:t}=Pt();return x.useCallback(n=>{const r=n.getRequired(Mt.vizManager),i=r.resolveComponent(e.viz.type);return n.createScoped().provideFactory(Mt.instanceScope.vizInstance,()=>r.getOrCreateInstance(e)).provideFactory(Mt.instanceScope.interactionManager,a=>{const o=a.getRequired(Mt.instanceScope.vizInstance);return new jl(o,i,ba)}).provideFactory(Mt.instanceScope.operationManager,a=>a.getRequired(Mt.instanceScope.interactionManager).operationManager).provideFactory(Mt.instanceScope.triggerManager,a=>a.getRequired(Mt.instanceScope.interactionManager).triggerManager).provideValue(Mt.instanceScope.panelModel,t).provideFactory(Mt.instanceScope.migrator,a=>new cA(a))},[e.viz.type,e.viz.conf])}function Wp(e){const[t,n]=x.useState(!1),r=is().getRequired(Mt.instanceScope.migrator);return Ze.useAsyncEffect(async()=>{const i=r.status===Ca.notStarted;n(r.status===Ca.done),r.status===Ca.notStarted&&r.runMigration().then(a=>{a===qp.migrated&&i&&(e==null||e())}).finally(()=>{n(!0)})},[r]),t}function Up(e,t){const n=is().getRequired(Mt.instanceScope.vizInstance);return x.useEffect(()=>n.instanceData.watchItem(null,r=>{e(r)}),[e,t.viz.type]),n}function dA({setVizConf:e,...t}){const{panel:n}=t,r=Up(e,n),i=Wp(()=>{mi.showNotification({title:`${n.title} - Updated`,message:"Your plugin configuration has been migrated to the latest version"})});return Ze.useAsyncEffect(async()=>{await r.instanceData.setItem(null,n.viz.conf)},[r,n.viz.type]),i?l(lT,{...t}):l(c.Text,{children:"Checking update..."})}function fA(e){const{panel:t,setVizConf:n}=e;return Up(n,t),Wp(()=>{mi.showNotification({title:`${t.title} - Updated`,message:"Your plugin configuration has been migrated to the latest version"})})?l(oT,{...e}):l(c.Text,{children:"Checking update"})}const GI="";function pA(e,t){const{vizManager:n}=x.useContext(bn),{panel:{viz:r,title:i,id:a,description:o,queryID:s,variables:u}}=Pt(),d={title:i,id:a,description:o,queryID:s,viz:r,layout:t},f=Hp(d);try{return n.resolveComponent(r.type),l(Ci,{configure:f,children:l(fA,{setVizConf:r.setConf,panel:d,data:e,variables:u,vizManager:n})})}catch(p){return console.info(L.get(p,"message")),null}}const hA=["richText","button"],Yp=X.observer(function({height:t,viz:n,data:r,loading:i,error:a,query:o}){const{ref:s,width:u,height:d}=bt.useElementSize(),f=pA(r,{w:u,h:d});if(hA.includes(n.type))return l("div",{className:"viz-root",style:{height:t},ref:s,children:l(ur,{children:f})});if(i)return l("div",{className:"viz-root",style:{height:t},ref:s,children:l(c.LoadingOverlay,{visible:i,exitTransitionDuration:0})});const h=!!a,g=!h&&!!(o!=null&&o.stateMessage),v=!h&&!g;return y("div",{className:"viz-root",style:{height:t},ref:s,children:[h&&l(c.Text,{color:"red",size:"md",align:"center",sx:{fontFamily:"monospace"},children:a}),g&&l(c.Text,{color:"gray",align:"center",children:o.stateMessage}),v&&l(ur,{children:f})]})}),gA=X.observer(()=>{const{data:e,loading:t,panel:{viz:n}}=Pt();return l(Yp,{viz:n,data:e,loading:t,height:"100%"})}),Bl=[];function vA(){const{vizManager:e}=x.useContext(bn);return x.useMemo(()=>e.availableVizList.map(t=>({value:t.name,label:t.displayName})).concat(Bl),[e])}function mA(e,t){try{return e.resolveComponent(t).createConfig()}catch{return null}}function yA(){const{data:e,panel:{variables:t,viz:n,title:r,queryID:i,description:a,setDescription:o,setTitle:s,setQueryID:u,id:d}}=Pt(),{vizManager:f}=x.useContext(bn),p={title:r,description:a,viz:n,queryID:i,id:d},h={setDescription:o,setQueryID:u,setTitle:s},g=Hp(p);try{return f.resolveComponent(p.viz.type),l(Ci,{configure:g,children:l(dA,{variables:t,setVizConf:n.setConf,panel:p,panelInfoEditor:h,vizManager:f,data:e})})}catch(v){return console.info(L.get(v,"message")),null}}const bA=X.observer(()=>{const{data:e,panel:{viz:t}}=Pt(),[n,r]=bt.useInputState(t.type),i=t.type!==n,{vizManager:a}=x.useContext(bn),o=j.default.useCallback(()=>{if(!i)return;const g=mA(a,n);t.setType(n),t.setConf(g||{})},[t,i,n]),s=g=>{try{t.setConf(JSON.parse(g))}catch(v){console.error(v)}},u=j.default.useMemo(()=>{var g;return(g=Bl.find(v=>v.value===n))==null?void 0:g.Panel},[n,Bl]),d=yA(),f=u?x.createElement(u,{data:e,conf:t.conf,setConf:t.setConf}):null,p=d||f,h=vA();return y(Oe,{children:[l(c.Select,{label:"Visualization",value:n,onChange:r,data:h,rightSection:l(c.ActionIcon,{disabled:!i,onClick:o,children:l(W.DeviceFloppy,{size:20})})}),p,!p&&l(c.JsonInput,{minRows:20,label:"Config",value:JSON.stringify(t.conf,null,2),onChange:s})]})});function CA(){return y(c.Group,{grow:!0,noWrap:!0,align:"stretch",sx:{height:"100%",overflow:"hidden"},children:[l(c.Stack,{sx:{width:"40%",flexShrink:0,flexGrow:0,overflow:"scroll",height:"100%"},children:l(bA,{})}),l(c.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:l(gA,{})})]})}const SA=O.types.model("VariableModel",{name:O.types.string,size:O.types.string,weight:O.types.string,color:O.types.union(O.types.model({type:O.types.literal("static"),staticColor:O.types.string}),O.types.model({type:O.types.literal("continuous"),valueRange:O.types.array(O.types.number),colorRange:O.types.array(O.types.string)}),O.types.model({type:O.types.literal("piecewise")})),formatter:O.types.model({output:O.types.enumeration("Output",["number","percent"]),mantissa:O.types.number,average:O.types.optional(O.types.boolean,!1),trimMantissa:O.types.optional(O.types.boolean,!1)}),data_field:O.types.string,aggregation:O.types.union(O.types.model({type:O.types.enumeration(["none","sum","mean","median","min","max"]),config:O.types.frozen()}),O.types.model({type:O.types.literal("quantile"),config:O.types.model({p:O.types.number})}))}).views(e=>({get json(){return O.getSnapshot(e)}}));class wA{constructor(t){pe(this,"origin");pe(this,"copy");this.origin=t,this.copy=O.clone(t),kt.makeAutoObservable(this,{},{autoBind:!0,deep:!1})}get changed(){return!L.isEqual(O.getSnapshot(this.origin),O.getSnapshot(this.copy))}commit(){O.applySnapshot(this.origin,O.getSnapshot(this.copy))}update(t){O.applySnapshot(this.copy,t)}}const xA=e=>new wA(e),Gl={name:"new_var",size:"1rem",weight:"initial",color:{type:"static",staticColor:"Red"},data_field:"",aggregation:{type:"sum",config:{}},formatter:{output:"number",mantissa:0,trimMantissa:!1,average:!1}};class _A{constructor(t){pe(this,"panel");pe(this,"selected");this.panel=t,kt.makeAutoObservable(this,{},{deep:!1,autoBind:!0})}get variables(){return this.panel.variables}addNew(){const t=this.panel.variables.filter(n=>n.name.startsWith(Gl.name)).length;this.panel.addVariable(L.cloneDeep({...Gl,name:`${Gl.name}${t||""}`})),this.selected=L.last(this.panel.variables)}select(t){this.selected=t}remove(t){this.selected===t&&(this.selected=void 0);const n=this.panel.variables.indexOf(t);if(this.panel.removeVariable(t),!this.selected&&!L.isEmpty(this.panel.variables)){const r=Math.min(this.panel.variables.length-1,n);this.selected=this.panel.variables[r]}}}function EA(){const{panel:e}=Pt();return Ze.useCreation(()=>new _A(e),[e])}const TA=j.default.forwardRef(function({value:t,onChange:n,data:r,withStyle:i=!0},a){const o=(s,u)=>{const d=De.default.cloneDeep(t);De.default.set(d,s,u),n(d)};return y(c.Box,{px:"sm",py:"md",ref:a,children:[y(c.Group,{grow:!0,noWrap:!0,children:[l(c.TextInput,{label:"Name",required:!0,value:t.name,onChange:s=>o("name",s.currentTarget.value)}),l(ot,{label:"Data Field",required:!0,data:r,value:t.data_field,onChange:s=>o("data_field",s)})]}),l(Vf,{label:"Aggregation",value:t.aggregation,onChange:s=>o("aggregation",s)}),l(c.Divider,{my:"xs",label:"Format",labelPosition:"center"}),l(ar,{value:t.formatter,onChange:s=>o("formatter",s)}),i&&l(zf,{value:t,onChange:n})]})}),Xp=c.createStyles(e=>({root:{height:"100%",overflow:"hidden",".var-list-container":{"& > *":{height:"100%"},width:250,height:"100%"},".var-list-actions":{height:"fit-content",flexShrink:0,width:"100%"},".var-list":{flex:"1 1 auto",overflow:"auto",minHeight:0,"& > *":{flex:"0 0 auto"}}},config:{height:"100%",overflow:"auto",paddingRight:10}})),OA=e=>{const{uiModel:t}=e;return l(c.Stack,{className:"var-list",children:t.variables.map(n=>l(c.Button,{variant:t.selected===n?"filled":"subtle",color:"gray",onClick:()=>t.select(n),children:n.name},n.name))})},MA=X.observer(OA),DA=({variable:e,data:t})=>l(c.Group,{style:{minHeight:0,height:"calc(100% - 68px)"},children:l(c.Paper,{withBorder:!0,p:"md",children:lp(e,t)})}),RA=X.observer(DA),kA=e=>{const t=Ze.useCreation(()=>xA(e.variable),[e.variable]),{classes:n}=Xp(),{data:r}=Pt();return y(c.Group,{style:{height:"100%"},align:"start",children:[y(c.Stack,{"data-testid":"variable-editor",align:"stretch",className:n.config,children:[y(c.Group,{position:"right",children:[l(c.ActionIcon,{variant:"filled",disabled:!t.changed,color:"primary",onClick:t.commit,children:l(nE,{})}),l(c.ActionIcon,{color:"red",onClick:()=>e.uiModel.remove(e.variable),children:l(Jd,{})})]}),l(TA,{value:O.getSnapshot(t.copy),onChange:t.update,data:r})]}),l(RA,{variable:O.getSnapshot(t.copy),data:r})]})},PA=X.observer(kA),AA=()=>{const e=EA(),{classes:t}=Xp();return y(c.Group,{className:t.root,noWrap:!0,align:"start",children:[l(c.Paper,{withBorder:!0,p:"md",className:"var-list-container",children:y(c.Stack,{justify:"space-between",children:[l(c.Box,{className:"var-list-actions",children:l(c.Button,{variant:"light",size:"sm",onClick:e.addNew,fullWidth:!0,children:"Add Variable"})}),l(MA,{uiModel:e})]})}),e.selected?l(Oe,{children:l(PA,{uiModel:e,variable:e.selected})}):l("span",{children:"Select or create a new variable on right side"})]})},IA=X.observer(AA),$A=X.observer(function({opened:t,close:n}){const{freezeLayout:r}=j.default.useContext(sn),[i,a]=x.useState("Visualization"),{panel:o,loading:s}=Pt(),{id:u,title:d}=o;return j.default.useEffect(()=>{r(t)},[t]),l(c.Modal,{size:"96vw",overflow:"inside",opened:t,onClose:n,title:`Editing Panel - ${d.trim()?d:u}`,trapFocus:!0,onDragStart:f=>{f.stopPropagation()},children:l(c.AppShell,{sx:{height:"90vh",maxHeight:"calc(100vh - 185px)",".mantine-AppShell-body":{height:"100%"},main:{height:"100%",minHeight:"unset",maxHeight:"100%",width:"100%",padding:"16px"}},padding:"md",children:y(c.Tabs,{value:i,onTabChange:a,className:"panel-settings-tabs",children:[y(c.Tabs.List,{children:[l(c.Tabs.Tab,{value:"Data",children:"Data"}),l(c.Tabs.Tab,{value:"Panel",children:"Panel"}),l(c.Tabs.Tab,{value:"Variables",children:"Variables"}),l(c.Tabs.Tab,{value:"Visualization",children:"Visualization"}),l(c.Tabs.Tab,{value:"Interactions",children:"Interactions"})]}),y(c.Tabs.Panel,{value:"Data",pt:"sm",children:[l(c.LoadingOverlay,{visible:s,exitTransitionDuration:0}),l(uA,{})]}),l(c.Tabs.Panel,{value:"Panel",pt:"sm",children:i==="Panel"&&l(sA,{})}),l(c.Tabs.Panel,{value:"Variables",pt:"sm",children:i==="Variables"&&l(IA,{})}),l(c.Tabs.Panel,{value:"Visualization",pt:"sm",children:i==="Visualization"&&l(CA,{})}),l(c.Tabs.Panel,{value:"Interactions",pt:"sm",children:l(ur,{children:l(rA,{})})})]})})})}),NA=X.observer(({view:e})=>{const t=et(),n=xa.useModals(),[r,i]=j.default.useState(!1),a=()=>i(!0),o=()=>i(!1),{panel:s}=Pt(),{id:u,query:d}=s,{inEditMode:f}=j.default.useContext(sn),p=()=>d==null?void 0:d.fetchData(),{viewPanelInFullScreen:h,inFullScreen:g}=j.default.useContext(Ra),v=()=>{e.panels.duplicateByID(u)},m=()=>n.openConfirmModal({title:"Delete this panel?",labels:{confirm:"Confirm",cancel:"Cancel"},onCancel:()=>console.log("Cancel"),onConfirm:()=>e.panels.removeByID(u)}),C=j.default.useCallback(()=>{h(u)},[u,h]);return y(Oe,{children:[l(c.Box,{sx:{position:"absolute",top:0,left:0,right:0,zIndex:300},children:y(c.Menu,{withinPortal:!0,children:[l(c.Menu.Target,{children:l(c.Box,{className:"panel-dropdown-target",sx:{width:"100%",height:"25px"}})}),y(c.Menu.Dropdown,{children:[l(c.Menu.Item,{onClick:p,icon:l(W.Refresh,{size:14}),children:"Refresh"}),l(c.Menu.Item,{onClick:()=>t.queries.downloadDataByQueryID(d),icon:l(W.Download,{size:14}),children:"Download Data"}),!g&&l(c.Menu.Item,{onClick:C,icon:l(W.ArrowsMaximize,{size:14}),children:"Full Screen"}),f&&y(Oe,{children:[l(c.Divider,{label:"Edit",labelPosition:"center"}),l(c.Menu.Item,{onClick:a,icon:l(W.Settings,{size:14}),children:"Settings"}),l(c.Menu.Item,{onClick:v,icon:l(W.Copy,{size:14}),children:"Duplicate"}),l(c.Menu.Item,{color:"red",onClick:m,icon:l(W.Trash,{size:14}),children:"Delete"})]})]})]})}),f&&l($A,{opened:r,close:o})]})}),KI="",LA=X.observer(function(){const{panel:t}=Pt(),{title:n}=t;return n?l(c.Group,{grow:!0,position:"center",px:20,className:"panel-title-wrapper",sx:{flexGrow:1},children:l(c.Text,{align:"center",lineClamp:1,weight:"bold",children:n})}):null});function VA(e){return!["richText","button"].includes(e)}const FA={border:"1px solid #e9ecef"},Qp={border:"1px dashed transparent",transition:"border-color 300ms ease","&:hover":{borderColor:"#e9ecef"}};function zA(e,t,n){return e.style.border.enabled?FA:n||t?Qp:{border:"1px dashed transparent"}}const Sa=X.observer(function({panel:t,view:n}){const r=et(),{inEditMode:i}=x.useContext(sn),{data:a,state:o,error:s}=r.getDataStuffByID(t.queryID),u=r.queries.findByID(t.queryID),d=VA(t.viz.type),f=d&&o==="loading",p=t.title?"calc(100% - 25px - 5px)":"100%",h=zA(t,d,i),g=d||i;return l(ss,{value:{panel:t,data:a,loading:f},children:y(c.Box,{className:"panel-root",p:5,pt:0,sx:{...h},children:[l(c.Box,{sx:{position:"absolute",left:0,top:0,height:28,zIndex:310},children:l(bf,{})}),g&&l(NA,{view:n}),l(LA,{}),l(Yp,{viz:t.viz,data:a,loading:f,error:s,height:p,query:u})]})})}),Zp=X.observer(function({view:t,panel:n,exitFullScreen:r}){return y(c.Stack,{px:"10px",pb:"5px",sx:{height:"100%",flexGrow:1,justifyContent:"flex-start"},children:[l(c.Group,{mx:"-5px",sx:{flexGrow:0},children:l(c.Button,{variant:"default",size:"sm",onClick:r,leftIcon:l(W.ArrowLeft,{size:20}),children:"Exit fullscreen"})}),l(c.Group,{mx:"-5px",grow:!0,sx:{flexGrow:1,flexShrink:0},children:l(Sa,{view:t,panel:n})})]})});function Jp(e,t,n){const r=e.id==="Main",[i,a]=j.default.useState(()=>r&&e.panels.findByID(t)?t:null),o=j.default.useCallback(f=>{a(f),r&&n(f)},[r,n]),s=j.default.useCallback(()=>{a(null),r&&n("")},[r,n]),u=i?e.panels.findByID(i):null;return{viewPanelInFullScreen:o,exitFullScreen:s,inFullScreen:!!u,fullScreenPanel:u}}function eh(){j.default.useEffect(()=>{const e=Gh.default(".dashboard-sticky-area",{useStickyClasses:!0,parentClass:"dashboard-sticky-parent"});return()=>{e==null||e.cleanup()}},[])}const qI="",jA=j.default.forwardRef(({handleAxis:e},t)=>l(c.ActionIcon,{ref:t,className:"react-grid-customDragHandle",sx:{userSelect:"none",cursor:"grab",position:"absolute",top:0,right:0,zIndex:400,"&:hover":{color:"#228be6"}},variant:"transparent",children:l(W.ArrowsMove,{size:16})})),BA=j.default.forwardRef(({handleAxis:e,...t},n)=>l(c.ActionIcon,{ref:n,className:"react-grid-customResizeHandle",sx:{userSelect:"none",cursor:"nwse-resize",position:"absolute",bottom:-5,right:-5,zIndex:400,"&:hover":{color:"#228be6"}},variant:"transparent",...t,children:l(W.ChevronDownRight,{size:16})})),GA=Ea.WidthProvider(es.default),KA=X.observer(function({view:t,className:n="layout",rowHeight:r=10,isDraggable:i,isResizable:a}){const o=j.default.useCallback(s=>{s.forEach(({i:u,...d})=>{const f=t.panels.findByID(u);!f||f.layout.set(d)})},[t]);return l(GA,{onLayoutChange:o,className:`dashboard-layout ${n}`,rowHeight:r,layout:t.panels.layouts,isDraggable:i,isResizable:a,draggableHandle:".react-grid-customDragHandle",resizeHandle:l(BA,{}),children:t.panels.list.map((s,u)=>y("div",{"data-grid":{...s.layout},style:{position:"relative"},children:[i&&l(jA,{}),l(Sa,{view:t,panel:s})]},s.id))})}),qA=Ea.WidthProvider(es.default),HA=X.observer(function({view:t,className:n="layout",rowHeight:r=10}){return l(qA,{className:`dashboard-layout ${n}`,rowHeight:r,isDraggable:!1,isResizable:!1,layout:t.panels.layouts,children:t.panels.list.map(i=>l("div",{"data-grid":i.layout,children:l(Sa,{view:t,panel:i})},i.id))})}),WA=X.observer(({children:e})=>l(c.Box,{children:e})),UA=X.observer(({children:e,view:t})=>l(c.Modal,{size:t.config.width,overflow:"inside",opened:!0,onClose:De.default.noop,withCloseButton:!1,title:t.name,trapFocus:!0,onDragStart:n=>{n.stopPropagation()},styles:{root:{position:"relative",height:"calc(100% - 46px)"},overlay:{position:"absolute !important"},modal:{border:"1px solid #efefef"},body:{"> div":{maxHeight:t.config.height,overflow:"scroll"}}},withinPortal:!1,transitionDuration:0,children:e})),YA=X.observer(({view:e,children:t})=>{switch(e.type){case an.Modal:return l(UA,{view:e,children:t});case an.Division:default:return l(WA,{children:t})}}),th=X.observer(function({view:t,saveDashboardChanges:n,fullScreenPanelID:r,setFullScreenPanelID:i}){const{viewPanelInFullScreen:a,exitFullScreen:o,inFullScreen:s,fullScreenPanel:u}=Jp(t,r,i);return eh(),l(Ra.Provider,{value:{viewPanelInFullScreen:a,inFullScreen:s},children:y(c.Box,{className:"dashboard-view",mx:-10,sx:{position:"relative",height:"100%"},children:[s&&l(Zp,{view:t,panel:u,exitFullScreen:o}),!s&&l(uf,{saveChanges:n}),l(YA,{view:t,children:y(c.Box,{className:"dashboard-sticky-parent",children:[!s&&l(c.Box,{className:"dashboard-sticky-area",children:l(Yd,{view:t})}),!s&&l(KA,{view:t,isDraggable:!0,isResizable:!0})]})})]})})}),XA=X.observer(({children:e})=>l(c.Box,{children:e})),QA=X.observer(({children:e,view:t})=>{const n=et(),r=n.views.visibleViewIDs.includes(t.id),i=()=>n.views.rmVisibleViewID(t.id);return l(c.Modal,{size:t.config.width,centered:!0,overflow:"inside",opened:r,onClose:i,withCloseButton:!1,title:t.name,trapFocus:!0,onDragStart:a=>{a.stopPropagation()},styles:{modal:{border:"1px solid #efefef"},body:{maxHeight:t.config.height,overflow:"scroll"}},transitionDuration:0,children:e})}),ZA=X.observer(({view:e,children:t})=>{switch(e.type){case an.Modal:return l(QA,{view:e,children:t});case an.Division:default:return l(XA,{children:t})}}),nh=X.observer(function({view:t,fullScreenPanelID:n,setFullScreenPanelID:r}){const{viewPanelInFullScreen:i,exitFullScreen:a,inFullScreen:o,fullScreenPanel:s}=Jp(t,n,r);return eh(),l(Ra.Provider,{value:{viewPanelInFullScreen:i,inFullScreen:o},children:y(c.Box,{className:"dashboard-view",mx:-10,sx:{position:"relative",height:"100%"},children:[o&&l(Zp,{view:t,panel:s,exitFullScreen:a}),!o&&l(uf,{saveChanges:De.default.noop}),l(ZA,{view:t,children:y(c.Box,{className:"dashboard-sticky-parent",children:[!o&&l(c.Box,{className:"dashboard-sticky-area",children:l(Yd,{view:t})}),!o&&l(HA,{view:t})]})})]})})}),rh=O.types.model("FilterConfigModel_Checkbox",{_name:O.types.literal("checkbox"),default_value:O.types.boolean}).actions(e=>({setDefaultValue(t){e.default_value=t}})),JA=()=>rh.create({_name:"checkbox",default_value:!1}),eI=O.types.model("FilterConfigModel_DateRange",{_name:O.types.literal("date-range"),required:O.types.boolean,inputFormat:O.types.enumeration("DateRangeInputFormat",["YYYY","YYYYMM","YYYYMMDD","YYYY-MM","YYYY-MM-DD"]),default_value:O.types.optional(O.types.array(O.types.union(O.types.string,O.types.null)),[null,null]),clearable:O.types.boolean}).actions(e=>({setRequired(t){e.required=t},setClearable(t){e.clearable=t},setInputFormat(t){e.inputFormat=t},setDefaultValue(t){e.default_value.length=0,e.default_value.push(...t)}})),ih=O.types.snapshotProcessor(eI,{preProcessor({default_value:e,...t}){return{...t,default_value:e.map(n=>n===null?null:$n.default.tz(n,"UTC").toISOString())}},postProcessor({default_value:e,...t}){return{...t,default_value:e.map(n=>{try{return n?$n.default.tz(n,"UTC").format(t.inputFormat):null}catch{return console.log(`[date-range] failed parsing ${n}`),null}})}}}),tI=()=>ih.create({_name:"date-range",required:!1,inputFormat:"YYYY-MM-DD",clearable:!1,default_value:[null,null]}),nI=O.types.model({label:O.types.string,value:O.types.string}).actions(e=>({setLabel(t){e.label=t},setValue(t){e.value=t}})),Kl=O.types.model("FilterConfigModel_BaseSelect",{static_options:O.types.optional(O.types.array(nI),[]),options_query_id:O.types.optional(O.types.string,""),select_first_by_default:O.types.optional(O.types.boolean,!1)}).views(e=>({get options(){const{options_query_id:t,static_options:n}=e;if(!t)return n;const{data:r,state:i,error:a}=O.getRoot(e).getDataStuffByID(t);return i==="idle"?r:[]}})).actions(e=>({addStaticOption(t){e.static_options.push(t)},removeStaticOption(t){e.static_options.splice(t,1)},setSelectFirstByDefault(t){e.select_first_by_default=t},setOptionsQueryID(t){e.options_query_id=t}})),ah=O.types.compose("FilterConfigModel_MultiSelect",O.types.model({_name:O.types.literal("multi-select"),default_value:O.types.optional(O.types.array(O.types.string),[]),min_width:O.types.optional(O.types.string,"")}),Kl).actions(e=>({setDefaultValue(t){e.default_value=O.cast(t)},setMinWidth(t){e.min_width=t}})),rI=()=>ah.create({_name:"multi-select",default_value:[],static_options:[],options_query_id:"",select_first_by_default:!1}),oh=O.types.compose("FilterConfigModel_TreeSelect",O.types.model({_name:O.types.literal("tree-select"),default_value:O.types.optional(O.types.array(O.types.string),[]),min_width:O.types.optional(O.types.string,"")}),Kl).actions(e=>({setDefaultValue(t){e.default_value=O.cast(t)},setMinWidth(t){e.min_width=t}})),iI=()=>oh.create({_name:"tree-select",default_value:[],static_options:[],options_query_id:"",select_first_by_default:!1}),lh=O.types.compose("FilterConfigModel_Select",O.types.model({_name:O.types.literal("select"),default_value:O.types.string,required:O.types.boolean,width:O.types.optional(O.types.string,"")}),Kl).actions(e=>({setRequired(t){e.required=t},setDefaultValue(t){e.default_value=t},setWidth(t){e.width=t}})),aI=()=>lh.create({_name:"select",required:!1,default_value:"",static_options:[],options_query_id:"",select_first_by_default:!1}),ql=O.types.model("FilterModel",{id:O.types.identifier,key:O.types.string,label:O.types.string,order:O.types.number,visibleInViewsIDs:O.types.array(O.types.string),auto_submit:O.types.optional(O.types.boolean,!1),type:O.types.enumeration("DashboardFilterType",[Wt.Select,Wt.MultiSelect,Wt.TreeSelect,Wt.TextInput,Wt.Checkbox,Wt.DateRange]),config:O.types.union(lh,ah,oh,tf,rh,ih)}).views(e=>({get plainDefaultValue(){const t=e.config.default_value;return Array.isArray(t)?[...t]:t}})).actions(e=>({setKey(t){e.key=t},setLabel(t){e.label=t},setOrder(t){e.order=t},setType(t){switch(t){case Wt.Select:e.config=aI();break;case Wt.MultiSelect:e.config=rI();break;case Wt.TreeSelect:e.config=iI();break;case Wt.TextInput:e.config=nf();break;case Wt.Checkbox:e.config=JA();break;case Wt.DateRange:e.config=tI();break}e.type=t},setVisibleInViewsIDs(t){e.visibleInViewsIDs.length=0,e.visibleInViewsIDs.push(...t)},setAutoSubmit(t){e.auto_submit=t}}));function sh(e,t){if(e===void 0)return e;if(t._name==="date-range")try{return e.map(r=>{const i=$n.default.tz(r,"UTC").format(t.inputFormat);return i!=null?i:r})}catch(n){return console.error(n),e}return e}function uh(e){return e.reduce((t,n)=>(t[n.key]=sh(n.config.default_value,n.config),t),{})}function oI(e,t,n){O.addDisposer(e,O.addMiddleware(e,(r,i)=>{i(r,()=>{O.getType(r.context)===t&&r.type==="action"&&n(r.name,r.context)})}))}const ch=O.types.model("FiltersModel",{current:O.types.optional(O.types.array(ql),[]),values:O.types.optional(O.types.frozen(),{}),previewValues:O.types.optional(O.types.frozen(),{})}).views(e=>({get firstID(){if(e.current.length!==0)return e.current[0].id},get inOrder(){return De.default.sortBy(e.current,"order")},get empty(){return e.current.length===0},visibleInView(t){return De.default.sortBy(e.current.filter(n=>n.visibleInViewsIDs.includes(t)),"order")},get firstFilterValueKey(){var t;return(t=Object.keys(e.values)[0])!=null?t:""},get keyLabelMap(){return e.current.reduce((t,n)=>(t[n.key]=n.label,t),{})}})).actions(e=>({replace(t){e.current=O.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},setValues(t){e.values=t},setValueByKey(t,n){e.values={...e.values,[t]:n}},getValueByKey(t){return e.values[t]},refreshValues(){console.log("refreshing values"),e.values=uh(e.current)},updatePreviewValues(t){e.previewValues=t}})).actions(e=>{function t(){oI(e.current,ql,(n,r)=>{if(n==="setType"){const i=sh(r.config.default_value,r.config);e.setValueByKey(r.key,i),e.updatePreviewValues({...e.previewValues,[r.key]:i})}})}return{afterCreate(){t()}}});function dh(e){return{current:e,values:uh(e)}}const lI=O.types.model("QueryModel",{id:O.types.string,name:O.types.string,type:O.types.enumeration("DataSourceType",[Hn.Postgresql,Hn.MySQL,Hn.HTTP]),key:O.types.string,sql:O.types.string,run_by:O.types.optional(O.types.array(O.types.string),[])}).views(e=>({get valid(){return e.id&&e.type&&e.key&&e.sql&&e.name},get json(){const{id:t,name:n,type:r,key:i,sql:a,run_by:o}=e;return{id:t,name:n,type:r,key:i,sql:a,run_by:o}},get conditionOptions(){const{context:t,mock_context:n,filterValues:r}=O.getRoot(e).payloadForSQL,i=Object.keys({...n,...t}).map(s=>`context.${s}`),a=Object.keys(r).map(s=>`filters.${s}`);return[...i,...a].map(s=>({label:s.split(".")[1],value:s,group:De.default.capitalize(s.split(".")[0])}))},get unmetRunByConditions(){const{run_by:t}=e;if(t.length===0)return[];const{context:n,mock_context:r,filterValues:i}=O.getRoot(e).payloadForSQL,a={context:{...r,...n},filters:i};return t.filter(o=>{const s=De.default.get(a,o);return Array.isArray(s)?s.length===0:!s})}})).views(e=>({get runByConditionsMet(){return e.unmetRunByConditions.length===0},get conditionNames(){if(e.unmetRunByConditions.length===0)return{context:[],filters:[]};const{keyLabelMap:t}=O.getRoot(e).filters,n=e.unmetRunByConditions.filter(i=>i.startsWith("context.")).map(i=>i.split("context.")[0]),r=e.unmetRunByConditions.filter(i=>i.startsWith("filters.")).map(i=>De.default.get({filters:t},i)).filter(i=>!!i);return{context:n,filters:r}}})),fh=O.types.compose("QueryModel",lI,O.types.model({state:O.types.optional(O.types.enumeration(["idle","loading","error"]),"idle"),data:O.types.optional(O.types.array(O.types.frozen()),[]),error:O.types.frozen()})).views(e=>({get formattedSQL(){const{context:t,mock_context:n,sqlSnippets:r,filterValues:i}=O.getRoot(e).payloadForSQL;return Qd(e.sql,t,n,r,i)}})).views(e=>({get stateMessage(){if(e.state!=="idle")return"";if(!e.runByConditionsMet){const{context:t,filters:n}=e.conditionNames;if(t.length===0&&n.length===0)return"Waiting";const r=[];return t.length>0&&r.push(`context: ${t.join(", ")}`),n.length>0&&r.push(`filter${n.length>1?"s":""}: ${n.join(", ")}`),r.length===2&&r.splice(1,0,"and"),r.unshift("Waiting for"),r.join(" ")}return e.data.length>0?"":"Empty Data"}})).volatile(()=>({controller:new AbortController})).actions(e=>({setName(t){e.name=t},setKey(t){e.key=t},setType(t){e.type=t},setSQL(t){e.sql=t},setRunBy(t){e.run_by.length=0,e.run_by.push(...t)},fetchData:O.flow(function*(){var t;if(!!e.valid&&((t=e.controller)==null||t.abort(),!!e.runByConditionsMet)){e.controller=new AbortController,e.state="loading";try{const n=e.id,{context:r,mock_context:i,sqlSnippets:a,filterValues:o}=O.getRoot(e).payloadForSQL;e.data=yield*O.toGenerator(W1({context:r,mock_context:i,sqlSnippets:a,title:n,query:e.json,filterValues:o},e.controller.signal)),e.state="idle",e.error=null}catch(n){Oa.default.isCancel(n)||(e.data.length=0,e.error=L.get(n,"response.data.detail.message","unknown error"),e.state="error")}}}),beforeDestroy(){var t;(t=e.controller)==null||t.abort()}})).actions(e=>({afterCreate(){O.addDisposer(e,kt.reaction(()=>`${e.id}--${e.key}--${e.type}--${e.formattedSQL}`,e.fetchData,{fireImmediately:!0,delay:0}))}})),ph=O.types.model("QueriesModel",{current:O.types.optional(O.types.array(fh),[])}).views(e=>({get firstID(){if(e.current.length!==0)return e.current[0].id},findByID(t){return e.current.find(n=>n.id===t)},get options(){return e.current.filter(t=>t.id).map(t=>({value:t.id,label:t.name}))}})).views(e=>({get json(){return e.current.map(t=>t.json)}})).actions(e=>({replace(t){e.current=O.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},replaceByIndex(t,n){e.current.splice(t,1,n)},downloadAllData(){const t=e.current.map(({name:n,data:r})=>({id:n,data:r.toJSON()}));z1(t)},downloadDataByQueryID(t){if(!t){console.log("[downloadDataByQueryID] query not found");return}const{name:n,data:r}=t,i=Xd(r);V1(n,i)},refetchDataByQueryID(t){const n=e.findByID(t);if(!n){console.error(new Error(`[downloadDataByQueryID] query by ID[${t}] not found`));return}return n.fetchData()},removeQuery(t){const n=e.current.find(r=>r.id===t);n&&(O.detach(n),e.current.remove(n))}})),hh=O.types.model("SQLSnippetModel",{key:O.types.string,value:O.types.string}).views(e=>({get json(){const{key:t,value:n}=e;return{key:t,value:n}},isADuplicatedKey(t){return!t||t===e.key?!1:!!O.getParent(e,2).findByKey(t)}})).actions(e=>({setKey(t){e.key=t},setValue(t){e.value=t}})),gh=O.types.model("SQLSnippetsModel",{current:O.types.optional(O.types.array(hh),[])}).views(e=>({get json(){return e.current.map(t=>t.json)},get record(){return e.current.reduce((t,n)=>(t[n.key]=n.value,t),{})},get firstKey(){if(e.current.length!==0)return e.current[0].key},findByKey(t){return e.current.find(n=>n.key===t)}})).actions(e=>({replace(t){e.current=O.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},replaceByIndex(t,n){e.current.splice(t,1,n)}})),vh=O.types.model("ContextModel",{current:O.types.optional(O.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}})),sI=O.types.model("MockContextModel",{current:O.types.optional(O.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}})),uI=O.types.model("PanelLayoutModel",{x:O.types.number,y:O.types.number,w:O.types.number,h:O.types.number,moved:O.types.optional(O.types.boolean,!1),static:O.types.optional(O.types.boolean,!1)}).views(e=>({get json(){const{x:t,y:n,w:r,h:i,moved:a}=e;return{x:t,y:n,w:r,h:i,moved:a,static:e.static}}})).actions(e=>({set(t){const{x:n,y:r,w:i,h:a,moved:o}=t;e.x=n,e.y=r,e.w=i,e.h=a,e.moved=!!o,e.static=!!t.static}})),cI=O.types.model("PanelStyleBorderModel",{enabled:O.types.boolean}).views(e=>({get json(){const{enabled:t}=e;return{enabled:t}}})).actions(e=>({setEnabled(t){e.enabled=t}})),dI=O.types.model("PanelStyleModel",{border:cI}).views(e=>({get json(){const{border:t}=e;return{border:t.json}}})).actions(e=>({})),fI=O.types.model("PanelVizModel",{type:O.types.string,conf:O.types.frozen()}).views(e=>({get json(){return{type:e.type,conf:e.conf}}})).actions(e=>({setType(t){e.type=t},setConf(t){e.conf=t}})),pI=O.types.model({id:O.types.string,title:O.types.string,description:O.types.string,layout:uI,queryID:O.types.string,viz:fI,style:dI,variables:O.types.optional(O.types.array(SA),[])}).views(e=>({get query(){return O.getParentOfType(e,wa).queries.findByID(e.queryID)},get json(){const{id:t,title:n,description:r,queryID:i}=e;return{id:t,title:n,description:r,layout:e.layout.json,queryID:i,viz:e.viz.json,style:e.style.json,variables:e.variables.map(a=>a.json)}}})).actions(e=>({setID(t){e.id=t},setTitle(t){e.title=t},setDescription(t){e.description=t},setQueryID(t){if(O.getParentOfType(e,wa).queries.findByID(t))e.queryID=t;else throw new Error(`Query with id ${t} does not exist`)},addVariable(t){e.variables.push(t)},removeVariable(t){e.variables.remove(t)}})),hI=O.types.model("PanelsModel",{list:O.types.optional(O.types.array(pI),[])}).views(e=>({get json(){return e.list.map(t=>t.json)},get layouts(){return e.list.map(t=>({...t.layout.json,i:t.id}))},findByID(t){return e.list.find(n=>n.id===t)}})).actions(e=>({replace(t){e.list=O.castToSnapshot(t)},addANewPanel(){const t=bt.randomId();e.list.push({id:t,layout:{x:0,y:1/0,w:3,h:15},title:`Panel - ${t}`,description:"<p><br></p>",queryID:"",viz:{type:Nl.name,conf:Nl.createConfig()},style:{border:{enabled:!0}}})},append(t){e.list.push(t)},remove(t){e.list.splice(t,1)},removeByID(t){const n=e.list.findIndex(r=>r.id===t);n!==-1&&e.list.splice(n,1)},duplicateByID(t){const n=e.list.find(r=>r.id===t);if(!n){console.error(new Error(`[duplicate panel] Can't find a panel by id[${t}]`));return}e.list.push({...n.json,id:bt.randomId(),layout:{...n.layout,x:0,y:1/0,moved:!1}})},replaceByIndex(t,n){e.list.splice(t,1,n)}})),mh=O.types.model({id:O.types.identifier,name:O.types.string,type:O.types.string,config:O.types.frozen(),panels:hI}).views(e=>({get json(){const{id:t,name:n,type:r,config:i}=e;return{id:t,name:n,type:r,config:i,panels:e.panels.json}}})).actions(e=>({setName(t){e.name=t},setType(t){e.type!==t&&(t===an.Modal?e.config={width:"600px",height:"400px"}:e.config={},e.type=t)},setConfig(t){e.config=t},updateConfig(t,n){e.config={...e.config,[t]:n}}})).actions(e=>({})),yh=O.types.model("ViewsModel",{current:O.types.optional(O.types.array(mh),[]),visibleViewIDs:O.types.array(O.types.string),idOfVIE:O.types.string}).views(e=>({get json(){return e.current.map(t=>t.json)},findByID(t){return e.current.find(n=>n.id===t)},get isVIETheFirstView(){return e.current.length===0||!e.idOfVIE?!1:e.current[0].id===e.idOfVIE},get firstVisibleView(){const[t]=e.visibleViewIDs;return e.current.find(({id:n})=>n===t)},get visibleViews(){const t=new Set(e.visibleViewIDs);return e.current.filter(({id:n})=>t.has(n))},get VIE(){return e.current.find(({id:t})=>t===e.idOfVIE)},get options(){return e.current.map(t=>({label:t.name,value:t.id,type:t.type}))}})).actions(e=>({replace(t){e.current.replace(t)},addANewView(t,n,r){e.current.push({id:t,name:t,type:n,config:r,panels:{list:[]}})},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},removeByID(t){const n=e.current.findIndex(r=>r.id===t);n!==-1&&e.current.splice(n,1)},replaceByIndex(t,n){e.current.splice(t,1,n)},setIDOfVIE(t){e.idOfVIE=t,e.visibleViewIDs.length=0,e.visibleViewIDs.push(t)},addAPanelToVIE(){var t;(t=e.VIE)==null||t.panels.addANewPanel()},appendToVisibles(t){new Set(e.visibleViewIDs.map(r=>r)).has(t)||e.visibleViewIDs.push(t)}})).actions(e=>({addARandomNewView(){const t=bt.randomId();e.addANewView(t,an.Division,{}),e.setIDOfVIE(t)},removeVIE(){e.current.length!==1&&(e.removeByID(e.idOfVIE),e.setIDOfVIE(e.current[0].id))},rmVisibleViewID(t){const n=e.visibleViewIDs.findIndex(r=>r===t);n!==-1&&e.visibleViewIDs.splice(n,1)}}));function bh(e){const t=e.length>0?[e[0].id]:[],n=e.length>0?e[0].id:"";return{current:e.map(i=>({...i,panels:{list:i.panels}})),visibleViewIDs:t,idOfVIE:n}}const gI=O.types.model({id:O.types.identifier,name:O.types.string,version:O.types.string,filters:ch,queries:ph,sqlSnippets:gh,views:yh,context:vh,mock_context:sI,origin:O.types.maybe(O.types.frozen())}).views(e=>({get filtersChanged(){const t="filters.current";return!L.isEqual(O.getSnapshot(L.get(e,t)),L.get(e.origin,t))},get queriesChanged(){const t="queries.current",n=O.getSnapshot(L.get(e,t)).map(r=>L.pick(r,["id","name","key","type","sql","run_by"]));return!L.isEqual(n,L.get(e.origin,t))},get sqlSnippetsChanged(){const t="sqlSnippets.current";return!L.isEqual(O.getSnapshot(L.get(e,t)),L.get(e.origin,t))},get viewsChanged(){const t="views.current";return!L.isEqual(O.getSnapshot(L.get(e,t)),L.get(e.origin,t))},get mockContextChanged(){const t="mock_context.current";return!L.isEqual(L.get(e,t),L.get(e.origin,t))}})).views(e=>({get payloadForSQL(){return{context:e.context.current,mock_context:e.mock_context.current,sqlSnippets:e.sqlSnippets.current,filterValues:e.filters.values}},get changed(){return e.filtersChanged||e.queriesChanged||e.sqlSnippetsChanged||e.viewsChanged||e.mockContextChanged},get data(){return e.queries.current.map(({id:n,data:r})=>({id:n,data:r})).reduce((n,r)=>(n[r.id]=r.data,n),{})},getDataStuffByID(t){const n=e.queries.findByID(t);return n?{data:n.data.toJSON(),state:n.state,error:n.error}:{data:[],state:"idle",error:void 0}},getDataStateByID(t){var n,r;return(r=(n=e.queries.findByID(t))==null?void 0:n.state)!=null?r:[]},getDataErrorByID(t){var n,r;return(r=(n=e.queries.findByID(t))==null?void 0:n.error)!=null?r:[]}})).views(e=>({findDependingPanels(t){return e.views.current.flatMap(n=>n.panels.list.filter(r=>r.queryID===t).map(r=>r.title))}})).actions(e=>({reset(){O.applySnapshot(e.filters.current,e.origin.filters.current),O.applySnapshot(e.queries.current,e.origin.queries.current),O.applySnapshot(e.sqlSnippets.current,e.origin.sqlSnippets.current),O.applySnapshot(e.views.current,e.origin.views.current),e.mock_context.current=e.origin.mock_context.current},resetFilters(){O.applySnapshot(e.filters.current,e.origin.filters.current)}})),wa=O.types.snapshotProcessor(gI,{preProcessor(e){return{...e,origin:e}},postProcessor(e){delete e.origin;const t=O.castToSnapshot(e.queries.current.map(n=>L.pick(n,["id","key","type","sql"])));return L.defaults({},{queries:{current:t}},e)}});function Hl({id:e,name:t,version:n,filters:r,views:i,definition:{queries:a,sqlSnippets:o,mock_context:s={}}},u){return wa.create({id:e,name:t,version:n,filters:dh(r),queries:{current:a},sqlSnippets:{current:o},context:{current:u},mock_context:{current:s},views:bh(i)})}function Wl(e){return j.default.useCallback(t=>t.provideValue(Mt.pluginManager,e.pluginManager).provideValue(Mt.vizManager,e.vizManager).provideValue(Mt.colorManager,e.colorManager),[])}const HI="",vI=X.observer(function({context:t,dashboard:n,update:r,className:i="dashboard",config:a,fullScreenPanelID:o,setFullScreenPanelID:s}){Zd(a);const[u,d]=j.default.useState(!1),f=j.default.useMemo(()=>Hl(n,t),[n]);ts(f,!0),j.default.useEffect(()=>{f.context.replace(t)},[t]);const p=async()=>{const v=[...f.queries.json],m=[...f.sqlSnippets.json],C=[...f.views.json],b={...f.mock_context.current},w={...n,filters:[...f.filters.current],views:C,definition:{sqlSnippets:m,queries:v,mock_context:b}};await r(w)},h=Ze.useCreation(zl,[]),g=Wl(h);return l(xa.ModalsProvider,{children:l(ka,{value:f,children:l(sn.Provider,{value:{layoutFrozen:u,freezeLayout:d,inEditMode:!0,inUseMode:!1},children:l(c.Box,{className:`${i} dashboard-root`,sx:{position:"relative"},children:l(bn.Provider,{value:h,children:l(Ci,{configure:g,children:f.views.visibleViews.map(v=>l(th,{view:v,saveDashboardChanges:p,fullScreenPanelID:o,setFullScreenPanelID:s},v.id))})})})})})})}),mI=X.observer(({context:e,dashboard:t,className:n="dashboard",config:r,fullScreenPanelID:i,setFullScreenPanelID:a})=>{Zd(r);const o=j.default.useMemo(()=>Hl(t,e),[t]);ts(o,!1),j.default.useEffect(()=>{o.context.replace(e)},[e]);const s=Ze.useCreation(zl,[]),u=Wl(s);return l(xa.ModalsProvider,{children:l(ka,{value:o,children:l(sn.Provider,{value:{layoutFrozen:!0,freezeLayout:De.default.noop,inEditMode:!1,inUseMode:!0},children:l(c.Box,{className:`${n} dashboard-root dashboard-sticky-parent`,children:l(bn.Provider,{value:s,children:l(Ci,{configure:u,children:o.views.visibleViews.map(d=>l(nh,{view:d,fullScreenPanelID:i,setFullScreenPanelID:a},d.id))})})})})})})});var Ch={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(Zt,function(){var n={year:0,month:1,day:2,hour:3,minute:4,second:5},r={};return function(i,a,o){var s,u=function(h,g,v){v===void 0&&(v={});var m=new Date(h),C=function(b,w){w===void 0&&(w={});var S=w.timeZoneName||"short",D=b+"|"+S,_=r[D];return _||(_=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:b,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:S}),r[D]=_),_}(g,v);return C.formatToParts(m)},d=function(h,g){for(var v=u(h,g),m=[],C=0;C<v.length;C+=1){var b=v[C],w=b.type,S=b.value,D=n[w];D>=0&&(m[D]=parseInt(S,10))}var _=m[3],P=_===24?0:_,N=m[0]+"-"+m[1]+"-"+m[2]+" "+P+":"+m[4]+":"+m[5]+":000",V=+h;return(o.utc(N).valueOf()-(V-=V%1e3))/6e4},f=a.prototype;f.tz=function(h,g){h===void 0&&(h=s);var v=this.utcOffset(),m=this.toDate(),C=m.toLocaleString("en-US",{timeZone:h}),b=Math.round((m-new Date(C))/1e3/60),w=o(C).$set("millisecond",this.$ms).utcOffset(15*-Math.round(m.getTimezoneOffset()/15)-b,!0);if(g){var S=w.utcOffset();w=w.add(v-S,"minute")}return w.$x.$timezone=h,w},f.offsetName=function(h){var g=this.$x.$timezone||o.tz.guess(),v=u(this.valueOf(),g,{timeZoneName:h}).find(function(m){return m.type.toLowerCase()==="timezonename"});return v&&v.value};var p=f.startOf;f.startOf=function(h,g){if(!this.$x||!this.$x.$timezone)return p.call(this,h,g);var v=o(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return p.call(v,h,g).tz(this.$x.$timezone,!0)},o.tz=function(h,g,v){var m=v&&g,C=v||g||s,b=d(+o(),C);if(typeof h!="string")return o(h).tz(C);var w=function(P,N,V){var F=P-60*N*1e3,R=d(F,V);if(N===R)return[F,N];var M=d(F-=60*(R-N)*1e3,V);return R===M?[F,R]:[P-60*Math.min(R,M)*1e3,Math.max(R,M)]}(o.utc(h,m).valueOf(),b,C),S=w[0],D=w[1],_=o(S).utcOffset(D);return _.$x.$timezone=C,_},o.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},o.tz.setDefault=function(h){s=h}}})})(Ch);const yI=Ch.exports;var Sh={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(Zt,function(){var n="minute",r=/[+-]\d\d(?::?\d\d)?/g,i=/([+-]|\d\d)/g;return function(a,o,s){var u=o.prototype;s.utc=function(m){var C={date:m,utc:!0,args:arguments};return new o(C)},u.utc=function(m){var C=s(this.toDate(),{locale:this.$L,utc:!0});return m?C.add(this.utcOffset(),n):C},u.local=function(){return s(this.toDate(),{locale:this.$L,utc:!1})};var d=u.parse;u.parse=function(m){m.utc&&(this.$u=!0),this.$utils().u(m.$offset)||(this.$offset=m.$offset),d.call(this,m)};var f=u.init;u.init=function(){if(this.$u){var m=this.$d;this.$y=m.getUTCFullYear(),this.$M=m.getUTCMonth(),this.$D=m.getUTCDate(),this.$W=m.getUTCDay(),this.$H=m.getUTCHours(),this.$m=m.getUTCMinutes(),this.$s=m.getUTCSeconds(),this.$ms=m.getUTCMilliseconds()}else f.call(this)};var p=u.utcOffset;u.utcOffset=function(m,C){var b=this.$utils().u;if(b(m))return this.$u?0:b(this.$offset)?p.call(this):this.$offset;if(typeof m=="string"&&(m=function(_){_===void 0&&(_="");var P=_.match(r);if(!P)return null;var N=(""+P[0]).match(i)||["-",0,0],V=N[0],F=60*+N[1]+ +N[2];return F===0?0:V==="+"?F:-F}(m),m===null))return this;var w=Math.abs(m)<=16?60*m:m,S=this;if(C)return S.$offset=w,S.$u=m===0,S;if(m!==0){var D=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(S=this.local().add(w+D,n)).$offset=w,S.$x.$localOffset=D}else S=this.utc();return S};var h=u.format;u.format=function(m){var C=m||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return h.call(this,C)},u.valueOf=function(){var m=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*m},u.isUTC=function(){return!!this.$u},u.toISOString=function(){return this.toDate().toISOString()},u.toString=function(){return this.toDate().toUTCString()};var g=u.toDate;u.toDate=function(m){return m==="s"&&this.$offset?s(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():g.call(this)};var v=u.diff;u.diff=function(m,C,b){if(m&&this.$u===m.$u)return v.call(this,m,C,b);var w=this.local(),S=s(m).local();return v.call(w,S,C,b)}}})})(Sh);const bI=Sh.exports,CI=()=>Promise.resolve().then(()=>hT).then(({version:e})=>(console.log(`[@devtable/dashboard] version: ${e}`),e));$n.default.extend(bI),$n.default.extend(yI),$n.default.tz.setDefault("UTC"),J.ContextModel=vh,J.Dashboard=vI,J.DashboardFilterType=of,J.DashboardMode=af,J.DashboardModel=wa,J.EViewComponentType=an,J.FilterModel=ql,J.FiltersModel=ch,J.LayoutStateContext=sn,J.MainDashboardView=th,J.ModelContextProvider=ka,J.Panel=Sa,J.PanelContextProvider=ss,J.QueriesModel=ph,J.QueryModel=fh,J.ReadOnlyDashboard=mI,J.ReadOnlyDashboardView=nh,J.SQLSnippetModel=hh,J.SQLSnippetsModel=gh,J.ViewModel=mh,J.ViewsModel=yh,J.createDashboardModel=Hl,J.createDashboardViewsModel=bh,J.getInitialFiltersPayload=dh,J.getVersion=CI,J.useModelContext=et,J.usePanelContext=Pt,J.useTopLevelServices=Wl,Object.defineProperties(J,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|