@devtable/dashboard 1.27.0 → 1.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dashboard.es.js
CHANGED
|
@@ -6998,12 +6998,47 @@ function DataEditorModal({
|
|
|
6998
6998
|
})
|
|
6999
6999
|
});
|
|
7000
7000
|
}
|
|
7001
|
+
function ViewSchemaModal({
|
|
7002
|
+
opened,
|
|
7003
|
+
close,
|
|
7004
|
+
getCurrentSchema
|
|
7005
|
+
}) {
|
|
7006
|
+
const {
|
|
7007
|
+
freezeLayout
|
|
7008
|
+
} = React.useContext(LayoutStateContext);
|
|
7009
|
+
React.useEffect(() => {
|
|
7010
|
+
freezeLayout(opened);
|
|
7011
|
+
}, [opened]);
|
|
7012
|
+
const schema = React.useMemo(() => {
|
|
7013
|
+
return JSON.stringify(getCurrentSchema(), null, 2);
|
|
7014
|
+
}, [opened]);
|
|
7015
|
+
return /* @__PURE__ */ jsx(Modal, {
|
|
7016
|
+
size: "96vw",
|
|
7017
|
+
overflow: "inside",
|
|
7018
|
+
opened,
|
|
7019
|
+
onClose: close,
|
|
7020
|
+
title: "This dashboard is described by this schema",
|
|
7021
|
+
trapFocus: true,
|
|
7022
|
+
onDragStart: (e) => {
|
|
7023
|
+
e.stopPropagation();
|
|
7024
|
+
},
|
|
7025
|
+
children: /* @__PURE__ */ jsx(Prism, {
|
|
7026
|
+
language: "json",
|
|
7027
|
+
sx: {
|
|
7028
|
+
width: "100%"
|
|
7029
|
+
},
|
|
7030
|
+
colorScheme: "dark",
|
|
7031
|
+
children: schema
|
|
7032
|
+
})
|
|
7033
|
+
});
|
|
7034
|
+
}
|
|
7001
7035
|
function DashboardActions({
|
|
7002
7036
|
mode,
|
|
7003
7037
|
setMode,
|
|
7004
7038
|
hasChanges,
|
|
7005
7039
|
saveChanges,
|
|
7006
|
-
revertChanges
|
|
7040
|
+
revertChanges,
|
|
7041
|
+
getCurrentSchema
|
|
7007
7042
|
}) {
|
|
7008
7043
|
const {
|
|
7009
7044
|
addPanel
|
|
@@ -7016,6 +7051,9 @@ function DashboardActions({
|
|
|
7016
7051
|
const [dataEditorOpened, setDataEditorOpened] = React.useState(false);
|
|
7017
7052
|
const openQueries = () => setDataEditorOpened(true);
|
|
7018
7053
|
const closeQueries = () => setDataEditorOpened(false);
|
|
7054
|
+
const [schemaOpened, setSchemaOpened] = React.useState(false);
|
|
7055
|
+
const openSchema = () => setSchemaOpened(true);
|
|
7056
|
+
const closeSchema = () => setSchemaOpened(false);
|
|
7019
7057
|
return /* @__PURE__ */ jsxs(Group, {
|
|
7020
7058
|
position: "apart",
|
|
7021
7059
|
pt: "sm",
|
|
@@ -7062,18 +7100,30 @@ function DashboardActions({
|
|
|
7062
7100
|
size: 20
|
|
7063
7101
|
}),
|
|
7064
7102
|
children: "Revert Changes"
|
|
7103
|
+
}), /* @__PURE__ */ jsxs(Menu, {
|
|
7104
|
+
control: /* @__PURE__ */ jsx(Button, {
|
|
7105
|
+
variant: "default",
|
|
7106
|
+
size: "sm",
|
|
7107
|
+
leftIcon: /* @__PURE__ */ jsx(Share, {
|
|
7108
|
+
size: 20
|
|
7109
|
+
}),
|
|
7110
|
+
children: "Export"
|
|
7111
|
+
}),
|
|
7112
|
+
children: [/* @__PURE__ */ jsx(Menu.Item, {
|
|
7113
|
+
disabled: true,
|
|
7114
|
+
children: "Download Data"
|
|
7115
|
+
}), /* @__PURE__ */ jsx(Menu.Item, {
|
|
7116
|
+
onClick: openSchema,
|
|
7117
|
+
children: "View Schema"
|
|
7118
|
+
})]
|
|
7065
7119
|
})]
|
|
7066
7120
|
}), /* @__PURE__ */ jsx(DataEditorModal, {
|
|
7067
7121
|
opened: dataEditorOpened,
|
|
7068
7122
|
close: closeQueries
|
|
7069
|
-
}),
|
|
7070
|
-
|
|
7071
|
-
|
|
7072
|
-
|
|
7073
|
-
leftIcon: /* @__PURE__ */ jsx(Share, {
|
|
7074
|
-
size: 20
|
|
7075
|
-
}),
|
|
7076
|
-
children: "Share"
|
|
7123
|
+
}), /* @__PURE__ */ jsx(ViewSchemaModal, {
|
|
7124
|
+
opened: schemaOpened,
|
|
7125
|
+
close: closeSchema,
|
|
7126
|
+
getCurrentSchema
|
|
7077
7127
|
})]
|
|
7078
7128
|
});
|
|
7079
7129
|
}
|
|
@@ -7172,6 +7222,15 @@ function Dashboard({
|
|
|
7172
7222
|
queries,
|
|
7173
7223
|
setQueries
|
|
7174
7224
|
}), [sqlSnippets, setSQLSnippets, queries, setQueries]);
|
|
7225
|
+
const getCurrentSchema = React.useCallback(() => {
|
|
7226
|
+
return {
|
|
7227
|
+
panels,
|
|
7228
|
+
definition: {
|
|
7229
|
+
sqlSnippets,
|
|
7230
|
+
queries
|
|
7231
|
+
}
|
|
7232
|
+
};
|
|
7233
|
+
}, [sqlSnippets, queries, panels]);
|
|
7175
7234
|
return /* @__PURE__ */ jsx(ModalsProvider, {
|
|
7176
7235
|
children: /* @__PURE__ */ jsx(ContextInfoContext.Provider, {
|
|
7177
7236
|
value: context,
|
|
@@ -7199,7 +7258,8 @@ function Dashboard({
|
|
|
7199
7258
|
setMode,
|
|
7200
7259
|
hasChanges,
|
|
7201
7260
|
saveChanges: saveDashboardChanges,
|
|
7202
|
-
revertChanges: revertDashboardChanges
|
|
7261
|
+
revertChanges: revertDashboardChanges,
|
|
7262
|
+
getCurrentSchema
|
|
7203
7263
|
}), /* @__PURE__ */ jsx(DashboardLayout, {
|
|
7204
7264
|
panels,
|
|
7205
7265
|
setPanels,
|
package/dist/dashboard.umd.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(z,U){typeof exports=="object"&&typeof module!="undefined"?U(exports,require("react"),require("lodash"),require("react-grid-layout"),require("@mantine/core"),require("ahooks"),require("axios"),require("tabler-icons-react"),require("@mantine/rte"),require("@mantine/hooks"),require("echarts-for-react/lib/core"),require("echarts/core"),require("echarts/charts"),require("echarts/renderers"),require("echarts/components"),require("numbro"),require("echarts-gl"),require("react-hook-form"),require("@mantine/form"),require("@mantine/prism")):typeof define=="function"&&define.amd?define(["exports","react","lodash","react-grid-layout","@mantine/core","ahooks","axios","tabler-icons-react","@mantine/rte","@mantine/hooks","echarts-for-react/lib/core","echarts/core","echarts/charts","echarts/renderers","echarts/components","numbro","echarts-gl","react-hook-form","@mantine/form","@mantine/prism"],U):(z=typeof globalThis!="undefined"?globalThis:z||self,U(z.dashboard={},z.React,z._,z["react-grid-layout"],z["@mantine/core"],z.ahooks,z.axios,z["tabler-icons-react"],z["@mantine/rte"],z["@mantine/hooks"],z["echarts-for-react/lib/core"],z["echarts/core"],z["echarts/charts"],z["echarts/renderers"],z["echarts/components"],z.numbro,z["echarts-gl"],z["react-hook-form"],z["@mantine/form"],z["@mantine/prism"]))})(this,function(z,U,X,te,a,Ue,vn,_,xt,H,bn,yn,Ee,Ge,ye,Cn,ho,F,de,oe){"use strict";var fo=Object.defineProperty,po=Object.defineProperties;var mo=Object.getOwnPropertyDescriptors;var We=Object.getOwnPropertySymbols;var hn=Object.prototype.hasOwnProperty,gn=Object.prototype.propertyIsEnumerable;var gt=(z,U,X)=>U in z?fo(z,U,{enumerable:!0,configurable:!0,writable:!0,value:X}):z[U]=X,C=(z,U)=>{for(var X in U||(U={}))hn.call(U,X)&>(z,X,U[X]);if(We)for(var X of We(U))gn.call(U,X)&>(z,X,U[X]);return z},k=(z,U)=>po(z,mo(U));var Z=(z,U)=>{var X={};for(var te in z)hn.call(z,te)&&U.indexOf(te)<0&&(X[te]=z[te]);if(z!=null&&We)for(var te of We(z))U.indexOf(te)<0&&gn.call(z,te)&&(X[te]=z[te]);return X};var xn=(z,U,X)=>(gt(z,typeof U!="symbol"?U+"":U,X),X);function Ce(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}function Sn(e){if(e&&e.__esModule)return e;var r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});return e&&Object.keys(e).forEach(function(n){if(n!=="default"){var o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,o.get?o:{enumerable:!0,get:function(){return e[n]}})}}),r.default=e,Object.freeze(r)}var x=Ce(U),W=Ce(X),vt=Ce(te),wn=Ce(vn),Qe=Ce(xt),ze=Ce(bn),ce=Sn(yn),Me=Ce(Cn),ae=(e=>(e.Use="use",e.Layout="layout",e.Edit="edit",e))(ae||{});const Dn={layoutFrozen:!1,freezeLayout:()=>{},mode:ae.Edit,inEditMode:!1,inLayoutMode:!1,inUseMode:!0},fe=x.default.createContext(Dn);function Tn(e,r){const n=Object.keys(r),o=Object.values(r);try{return new Function(...n,`return \`${e}\`;`)(...o)}catch(i){return console.error(i),i.message}}function ke(e,r){const n=Object.keys(r),o=Object.values(r);try{return new Function(...n,`return \`${e}\`;`)(...o)}catch(i){throw n.length===0&&e.includes("$")?new Error("[formatSQL] insufficient params"):i}}function bt(e,r){const n=r.sqlSnippets.reduce((o,i)=>(o[i.key]=ke(i.value,e),o),{});return W.default.merge({},n,e)}function En(e,r,n){try{const o=bt(r,n);return ke(e,o)}catch(o){return console.error(o),o.message}}const De={baseURL:"http://localhost:31200",getRequest(e){return(r,n,o={})=>{const i=C({"X-Requested-With":"XMLHttpRequest","Content-Type":o.string?"application/x-www-form-urlencoded":"application/json"},o.headers),l={baseURL:this.baseURL,method:e,url:r,params:e==="GET"?n:o.params,headers:i};return e==="POST"&&(l.data=o.string?JSON.stringify(n):n),wn.default(l).then(u=>u.data).catch(u=>Promise.reject(u))}}},yt=({context:e,definitions:r,title:n,query:o})=>async()=>{if(!o||!o.sql)return[];const{type:i,key:l,sql:u}=o,s=u.includes("$");try{const d=bt(e,r),p=ke(u,d);return s&&(console.groupCollapsed(`Final SQL for: ${n}`),console.log(p),console.groupEnd()),await De.getRequest("POST")("/query",{type:i,key:l,sql:p})}catch(d){return console.error(d),[]}};async function Mn(){try{return await De.getRequest("GET")("/query/sources",{})}catch(e){return console.error(e),{}}}const Ct={},Pn=Ct,pe=x.default.createContext(Ct),An={id:"",data:[],loading:!1,title:"",setTitle:()=>{},description:"",setDescription:()=>{},queryID:"",setQueryID:()=>{},viz:{type:"",conf:{}},setViz:()=>{},refreshData:()=>{}},le=x.default.createContext(An),je=U.createContext(null);je.displayName="@mantine/modals/ModalsContext";function St(){const e=U.useContext(je);if(!e)throw new Error("[@mantine/modals] useModals hook was called outside of context, wrap your app with ModalsProvider component");return e}var In=Object.defineProperty,Gn=Object.defineProperties,zn=Object.getOwnPropertyDescriptors,wt=Object.getOwnPropertySymbols,Ln=Object.prototype.hasOwnProperty,On=Object.prototype.propertyIsEnumerable,Dt=(e,r,n)=>r in e?In(e,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[r]=n,Ke=(e,r)=>{for(var n in r||(r={}))Ln.call(r,n)&&Dt(e,n,r[n]);if(wt)for(var n of wt(r))On.call(r,n)&&Dt(e,n,r[n]);return e},Tt=(e,r)=>Gn(e,zn(r));function Nn({id:e,cancelProps:r,confirmProps:n,labels:o={cancel:"",confirm:""},closeOnConfirm:i=!0,closeOnCancel:l=!0,groupProps:u,onCancel:s,onConfirm:d,children:p}){const{cancel:c,confirm:f}=o,g=St(),m=h=>{typeof(r==null?void 0:r.onClick)=="function"&&(r==null||r.onClick(h)),typeof s=="function"&&s(),l&&g.closeModal(e)},w=h=>{typeof(n==null?void 0:n.onClick)=="function"&&(n==null||n.onClick(h)),typeof d=="function"&&d(),i&&g.closeModal(e)};return x.default.createElement(x.default.Fragment,null,p&&x.default.createElement(a.Box,{mb:"md"},p),x.default.createElement(a.Group,Ke({position:"right"},u),x.default.createElement(a.Button,Tt(Ke({variant:"default"},r),{onClick:m}),(r==null?void 0:r.children)||c),x.default.createElement(a.Button,Tt(Ke({},n),{onClick:w}),(n==null?void 0:n.children)||f)))}function _n(e,r){switch(r.type){case"OPEN":return{current:r.payload,modals:[...e.modals,r.payload]};case"CLOSE":return{current:e.modals[e.modals.length-2]||null,modals:e.modals.filter(n=>n.id!==r.payload)};case"CLOSE_ALL":return{current:e.current,modals:[]};default:return e}}var Fn=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},Le={exports:{}},Oe={};/**
|
|
2
2
|
* @license React
|
|
3
3
|
* react-jsx-runtime.production.min.js
|
|
4
4
|
*
|
|
@@ -6,9 +6,9 @@
|
|
|
6
6
|
*
|
|
7
7
|
* This source code is licensed under the MIT license found in the
|
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var Rn=x.default,Bn=Symbol.for("react.element"),qn=Symbol.for("react.fragment"),$n=Object.prototype.hasOwnProperty,Wn=Rn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Vn={key:!0,ref:!0,__self:!0,__source:!0};function Et(e,r,n){var o,i={},l=null,u=null;n!==void 0&&(l=""+n),r.key!==void 0&&(l=""+r.key),r.ref!==void 0&&(u=r.ref);for(o in r)$n.call(r,o)&&!Vn.hasOwnProperty(o)&&(i[o]=r[o]);if(e&&e.defaultProps)for(o in r=e.defaultProps,r)i[o]===void 0&&(i[o]=r[o]);return{$$typeof:Bn,type:e,key:l,ref:u,props:i,_owner:Wn.current}}Oe.Fragment=qn,Oe.jsx=Et,Oe.jsxs=Et,Le.exports=Oe;const t=Le.exports.jsx,v=Le.exports.jsxs,xe=Le.exports.Fragment;var Un=Object.defineProperty,Qn=Object.defineProperties,kn=Object.getOwnPropertyDescriptors,Ne=Object.getOwnPropertySymbols,Mt=Object.prototype.hasOwnProperty,Pt=Object.prototype.propertyIsEnumerable,At=(e,r,n)=>r in e?Un(e,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[r]=n,_e=(e,r)=>{for(var n in r||(r={}))Mt.call(r,n)&&At(e,n,r[n]);if(Ne)for(var n of Ne(r))Pt.call(r,n)&&At(e,n,r[n]);return e},It=(e,r)=>Qn(e,kn(r)),Ye=(e,r)=>{var n={};for(var o in e)Mt.call(e,o)&&r.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&Ne)for(var o of Ne(e))r.indexOf(o)<0&&Pt.call(e,o)&&(n[o]=e[o]);return n};function jn(e){if(!e)return{confirmProps:{},modalProps:{}};const r=e,{id:n,children:o,onCancel:i,onConfirm:l,closeOnConfirm:u,closeOnCancel:s,cancelProps:d,confirmProps:p,groupProps:c,labels:f}=r,g=Ye(r,["id","children","onCancel","onConfirm","closeOnConfirm","closeOnCancel","cancelProps","confirmProps","groupProps","labels"]);return{confirmProps:{id:n,children:o,onCancel:i,onConfirm:l,closeOnConfirm:u,closeOnCancel:s,cancelProps:d,confirmProps:p,groupProps:c,labels:f},modalProps:_e({id:n},g)}}function Gt({children:e,modalProps:r,labels:n,modals:o}){const[i,l]=Q.useReducer(_n,{modals:[],current:null}),u=h=>{i.modals.forEach(b=>{var y,S,T,E;b.type==="confirm"&&h&&((S=(y=b.props)==null?void 0:y.onCancel)==null||S.call(y)),(E=(T=b.props)==null?void 0:T.onClose)==null||E.call(T)}),l({type:"CLOSE_ALL"})},s=h=>{const b=h.id||H.randomId();return l({type:"OPEN",payload:{id:b,type:"content",props:h}}),b},d=h=>{const b=h.id||H.randomId();return l({type:"OPEN",payload:{id:b,type:"confirm",props:h}}),b},p=(h,b)=>{const y=b.id||H.randomId();return l({type:"OPEN",payload:{id:y,type:"context",props:b,ctx:h}}),y},c=(h,b)=>{var y,S,T,E;if(i.modals.length<=1){u(b);return}const D=i.modals.find(M=>M.id===h);(D==null?void 0:D.type)==="confirm"&&b&&((S=(y=D.props)==null?void 0:y.onCancel)==null||S.call(y)),(E=(T=D==null?void 0:D.props)==null?void 0:T.onClose)==null||E.call(T),l({type:"CLOSE",payload:D.id})},f={modals:i.modals,openModal:s,openConfirmModal:d,openContextModal:p,closeModal:c,closeAll:u},g=()=>{var h;switch((h=i.current)==null?void 0:h.type){case"context":{const b=i.current.props,{innerProps:y}=b,S=Ye(b,["innerProps"]),T=o[i.current.ctx];return{modalProps:S,content:t(T,{innerProps:y,context:f,id:i.current.id})}}case"confirm":{const{modalProps:b,confirmProps:y}=jn(i.current.props);return{modalProps:b,content:t(Nn,C({},It(_e({},y),{id:i.current.id,labels:i.current.props.labels||n})))}}case"content":{const b=i.current.props,{children:y}=b;return{modalProps:Ye(b,["children"]),content:t(xe,{children:y})}}default:return{modalProps:{},content:null}}},{modalProps:m,content:w}=g();return v(je.Provider,{value:f,children:[t(a.Modal,j(C({},It(_e(_e({},r),m),{opened:i.modals.length>0,onClose:()=>c(i.current.id)})),{children:w})),e]})}const Kn={addPanel:U.default.noop,duplidatePanel:U.default.noop,removePanelByID:U.default.noop},Xe=x.default.createContext(Kn),Yn={sqlSnippets:[],setSQLSnippets:()=>{},queries:[],setQueries:()=>{}},le=x.default.createContext(Yn);function zt({position:e="bottom",trigger:r="hover"}){const{freezeLayout:n}=x.default.useContext(ge),[o,i]=x.default.useState(!1),{description:l}=x.default.useContext(ae);if(x.default.useEffect(()=>{n(o)},[o]),!l||l==="<p><br></p>")return null;const u=r==="click"?t(a.Tooltip,{label:"Click to see description",openDelay:500,children:t(_.InfoCircle,{size:20,onClick:()=>i(s=>!s),style:{verticalAlign:"baseline",cursor:"pointer"}})}):t(_.InfoCircle,{size:20,onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),style:{verticalAlign:"baseline",cursor:"pointer"}});return t(a.Popover,{opened:o,onClose:()=>i(!1),withCloseButton:r==="click",withArrow:!0,trapFocus:!0,closeOnEscape:!1,placement:"center",position:e,target:u,width:"40vw",children:t(Qe.default,{readOnly:!0,value:l,onChange:U.default.noop,sx:{border:"none"}})})}function Xn(){const{description:e,setDescription:r}=x.default.useContext(ae),[n,o]=x.default.useState(e),i=e!==n,l=x.default.useCallback(()=>{!i||r(n)},[i,n]);return v(a.Group,{direction:"column",sx:{flexGrow:1},children:[v(a.Group,{align:"end",children:[t(a.Text,{children:"Description"}),t(a.ActionIcon,{variant:"hover",color:"blue",disabled:!i,onClick:l,children:t(_.DeviceFloppy,{size:20})})]}),t(xt.RichTextEditor,{value:n,onChange:o,sx:{flexGrow:1},sticky:!0,p:"0"})]})}class Je extends x.default.Component{constructor(r){super(r),this.state={error:null}}componentDidCatch(r){this.setState({error:r})}render(){var r;if(this.state.error){const n=()=>{this.setState({error:null})};return v(a.Box,{children:[t(a.Text,{size:"xs",children:(r=this.state.error)==null?void 0:r.message}),t(a.Button,{variant:"subtle",size:"xs",mx:"auto",compact:!0,sx:{display:"block"},onClick:n,children:"Retry"})]})}return this.props.children}}function Jn(){const{title:e}=x.default.useContext(ae);return t(Je,{children:v(a.Group,{direction:"column",grow:!0,noWrap:!0,mx:"auto",mt:"xl",p:"5px",spacing:5,sx:{width:"600px",height:"450px",background:"transparent",borderRadius:"5px",boxShadow:"0px 0px 10px 0px rgba(0,0,0,.2)"},children:[v(a.Group,{position:"apart",noWrap:!0,sx:{flexGrow:0,flexShrink:0},children:[t(a.Group,{children:t(zt,{position:"bottom",trigger:"hover"})}),t(a.Group,{grow:!0,position:"center",children:t(a.Text,{lineClamp:1,weight:"bold",children:e})}),t(a.Group,{position:"right",spacing:0,sx:{height:"28px"}})]}),t(a.Group,{sx:{background:"#eee",flexGrow:1}})]})})}function Zn(){const{title:e,setTitle:r}=x.default.useContext(ae),[n,o]=H.useInputState(e),i=e!==n,l=x.default.useCallback(()=>{!i||r(n)},[i,n]);return t(a.TextInput,{value:n,onChange:o,label:v(a.Group,{align:"end",children:[t(a.Text,{children:"Panel Title"}),t(a.ActionIcon,{variant:"hover",color:"blue",disabled:!i,onClick:l,children:t(_.DeviceFloppy,{size:20})})]})})}function Hn({}){return v(a.Group,{direction:"row",grow:!0,noWrap:!0,align:"stretch",sx:{height:"100%"},children:[v(a.Group,{grow:!0,direction:"column",sx:{width:"40%",flexShrink:0,flexGrow:0,height:"100%"},children:[t(Zn,{}),t(Xn,{})]}),t(a.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:t(Jn,{})})]})}function Lt({id:e}){const r=x.default.useContext(le),n=x.default.useContext(fe),o=x.default.useMemo(()=>r.queries.find(s=>s.id===e),[r.queries,e]),{data:i=[],loading:l,refresh:u}=Ue.useRequest(yt({context:n,definitions:r,title:e,query:o}),{refreshDeps:[n,r,o]});return l?t(a.LoadingOverlay,{visible:l,exitTransitionDuration:0}):i.length===0?t(a.Table,{}):v(a.Group,{my:"xl",direction:"column",grow:!0,sx:{border:"1px solid #eee"},children:[v(a.Group,{position:"apart",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[v(a.Group,{position:"left",children:[t(a.Text,{weight:500,children:"Preview Data"}),i.length>10&&v(a.Text,{size:"sm",color:"gray",children:["Showing 10 rows of ",i.length]})]}),t(a.ActionIcon,{mr:15,variant:"hover",color:"blue",disabled:l,onClick:u,children:t(_.Refresh,{size:15})})]}),v(a.Table,{children:[t("thead",{children:t("tr",{children:Object.keys(i==null?void 0:i[0]).map(s=>t("th",{children:t(a.Text,{weight:700,color:"#000",children:s})},s))})}),t("tbody",{children:i.slice(0,10).map((s,d)=>t("tr",{children:Object.values(s).map((p,c)=>t("td",{children:t(a.Group,{sx:{"&, .mantine-Text-root":{fontFamily:"monospace"}},children:t(a.Text,{children:p})})},`${p}--${c}`))},`row-${d}`))})]})]})}function er({}){const{queries:e}=x.default.useContext(le),{queryID:r,setQueryID:n,data:o,loading:i}=x.default.useContext(ae),l=x.default.useMemo(()=>e.map(u=>({value:u.id,label:u.id})),[e]);return v(a.Group,{direction:"column",grow:!0,noWrap:!0,children:[v(a.Group,{position:"left",sx:{maxWidth:"600px",alignItems:"baseline"},children:[t(a.Text,{children:"Select a Query"}),t(a.Select,{data:l,value:r,onChange:n,allowDeselect:!1,clearable:!1,sx:{flexGrow:1}})]}),t(Lt,{id:r})]})}ce.use([Ee.SunburstChart,Ge.CanvasRenderer]);const tr={tooltip:{show:!0},series:{type:"sunburst",radius:[0,"90%"],emphasis:{focus:"ancestor"}}};function nr({conf:e,data:r,width:n,height:o}){const f=e,{label_field:i="name",value_field:l="value"}=f,u=Z(f,["label_field","value_field"]),s=x.default.useMemo(()=>r.map(g=>({name:g[i],value:Number(g[l])})),[r,i,l]),d=x.default.useMemo(()=>{var g,m;return(m=(g=U.default.maxBy(s,w=>w.value))==null?void 0:g.value)!=null?m:1},[s]),p=x.default.useMemo(()=>({series:{label:{formatter:({name:g,value:m})=>m/d<.2?" ":g}}}),[d]),c=U.default.merge({},tr,p,u,{series:{data:s}});return t(ze.default,{echarts:ce,option:c,style:{width:n,height:o}})}var Ot={exports:{}};(function(e,r){(function(o,i){e.exports=i()})(Fn,function(){return function(n){var o={};function i(l){if(o[l])return o[l].exports;var u=o[l]={exports:{},id:l,loaded:!1};return n[l].call(u.exports,u,u.exports,i),u.loaded=!0,u.exports}return i.m=n,i.c=o,i.p="",i(0)}([function(n,o,i){var l;l=function(u){return{clustering:i(1),regression:i(5),statistics:i(6),histogram:i(15),transform:{regression:i(18),histogram:i(21),clustering:i(22)}}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(2),d=s.dataPreprocess,p=s.normalizeDimensions,c=i(3),h=i(4),f=c.size,g=c.sumOfColumn,m=c.sum,w=c.zeros,h=i(4),b=h.isNumber,y=Math.pow,S={SINGLE:"single",MULTIPLE:"multiple"};function T(P,z,L){for(var q=w(P.length,2),B=A(z,W(P,L.dimensions)),O=!0,$,R,k,K;O;){O=!1;for(var N=0;N<P.length;N++){$=1/0,R=-1;for(var J=0;J<z;J++)k=I(P[N],B[J],L),k<$&&($=k,R=J);q[N][0]!==R&&(O=!0),q[N][0]=R,q[N][1]=$}for(var N=0;N<z;N++){K=[];for(var J=0;J<q.length;J++)q[J][0]===N&&K.push(P[J]);B[N]=E(K,L)}}var we={centroids:B,clusterAssigned:q};return we}function E(P,z){for(var L=[],q,B,O=0;O<z.dimensions.length;O++){var $=z.dimensions[O];q=0;for(var R=0;R<P.length;R++)q+=P[R][$];B=q/P.length,L.push(B)}return L}function D(P,z,L){var q=(b(z)?{clusterCount:z,stepByStep:L}:z)||{clusterCount:2},B=q.clusterCount;if(B<2)return;var O=V(P,q),$=O.outputType===S.SINGLE,R=d(P,{dimensions:O.dimensions}),k=w(R.length,2),K,N,J;function we(ee,me){k[ee][1]=me}function re(ee){return k[ee][1]}if($){K=[];var cn=O.outputClusterIndexDimension;N=function(ee,me){K[ee][cn]=me},J=function(ee){return K[ee][cn]};for(var ue=0;ue<R.length;ue++)K.push(R[ue].slice()),we(ue,0),N(ue,0)}else N=function(ee,me){k[ee][0]=me},J=function(ee){return k[ee][0]};for(var fn=E(R,O),Te=[fn],ue=0;ue<R.length;ue++){var uo=I(R[ue],fn,O);we(ue,uo)}var dt,ct,ft,We,pt,mt,pn=1,pe={data:K,centroids:Te,isEnd:!1};$||(pe.clusterAssment=k);function mn(){if(pn<B){dt=1/0;for(var ee,me,he,ie=0;ie<Te.length;ie++){ct=[],ft=[];for(var Y=0;Y<R.length;Y++)J(Y)===ie?ct.push(R[Y]):ft.push(re(Y));We=T(ct,2,O),pt=g(We.clusterAssigned,1),mt=m(ft),pt+mt<dt&&(dt=mt+pt,ee=ie,me=We.centroids,he=We.clusterAssigned)}for(var Y=0;Y<he.length;Y++)he[Y][0]===0?he[Y][0]=ee:he[Y][0]===1&&(he[Y][0]=Te.length);Te[ee]=me[0],Te.push(me[1]);for(var Y=0,ie=0;Y<R.length&&ie<he.length;Y++)J(Y)===ee&&(N(Y,he[ie][0]),we(Y,he[ie++][1]));var ht=[];if(!$){for(var Y=0;Y<Te.length;Y++){ht[Y]=[];for(var ie=0;ie<R.length;ie++)J(ie)===Y&&ht[Y].push(R[ie])}pe.pointsInCluster=ht}pn++}else pe.isEnd=!0}if(q.stepByStep)pe.next=function(){return mn(),M(pe,O),pe};else for(;mn(),!pe.isEnd;);return M(pe,O),pe}function M(P,z){var L=z.outputCentroidDimensions;if(!(z.outputType!==S.SINGLE||L==null))for(var q=P.data,B=P.centroids,O=0;O<q.length;O++)for(var $=q[O],R=$[z.outputClusterIndexDimension],k=B[R],K=Math.min(k.length,L.length),N=0;N<K;N++)$[L[N]]=k[N]}function A(P,z){for(var L=w(P,z.length),q=0;q<z.length;q++)for(var B=z[q],O=0;O<P;O++)L[O][q]=B.min+B.span*Math.random();return L}function I(P,z,L){for(var q=0,B=L.dimensions,O=L.rawExtents,$=0;$<B.length;$++){var R=O[$].span;if(R){var k=B[$],K=(P[k]-z[$])/R;q+=y(K,2)}}return q}function V(P,z){var L=f(P);if(L.length<1)throw new Error("The input data of clustering should be two-dimension array.");for(var q=L[1],B=[],O=0;O<q;O++)B.push(O);var $=p(z.dimensions,B),R=z.outputType||S.MULTIPLE,k=z.outputClusterIndexDimension;if(R===S.SINGLE&&!h.isNumber(k))throw new Error("outputClusterIndexDimension is required as a number.");var K=W(P,$);return{dimensions:$,rawExtents:K,outputType:R,outputClusterIndexDimension:k,outputCentroidDimensions:z.outputCentroidDimensions}}function W(P,z){for(var L=[],q=z.length,B=0;B<q;B++)L.push({min:1/0,max:-1/0});for(var B=0;B<P.length;B++)for(var O=P[B],$=0;$<q;$++){var R=L[$],k=O[z[$]];R.min>k&&(R.min=k),R.max<k&&(R.max=k)}for(var B=0;B<q;B++)L[B].span=L[B].max-L[B].min;return L}return{OutputType:S,hierarchicalKMeans:D}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(3),d=s.isArray,p=s.size,c=i(4),f=c.isNumber;function g(h,b){return typeof h=="number"?[h]:h==null?b:h}function m(h,b){b=b||{};var y=b.dimensions,S={};if(y!=null)for(var T=0;T<y.length;T++)S[y[T]]=!0;var E=b.toOneDimensionArray?y?y[0]:0:null;function D(P){return!y||S.hasOwnProperty(P)}if(!d(h))throw new Error("Invalid data type, you should input an array");var M=[],A=p(h);if(A.length===1)for(var T=0;T<A[0];T++){var I=h[T];f(I)&&M.push(I)}else if(A.length===2)for(var T=0;T<A[0];T++){for(var V=!0,I=h[T],W=0;W<A[1];W++)D(W)&&!f(I[W])&&(V=!1);V&&M.push(E!=null?I[E]:I)}return M}function w(h){var b=h.toString(),y=b.indexOf(".");return y<0?0:b.length-1-y}return{normalizeDimensions:g,dataPreprocess:m,getPrecision:w}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=Object.prototype.toString,d=Array.prototype,p=d.map;function c(S){for(var T=[];f(S);)T.push(S.length),S=S[0];return T}function f(S){return s.call(S)==="[object Array]"}function g(S,T){for(var E=[],D=0;D<S;D++){E[D]=[];for(var M=0;M<T;M++)E[D][M]=0}return E}function m(S){for(var T=0,E=0;E<S.length;E++)T+=S[E];return T}function w(S,T){for(var E=0,D=0;D<S.length;D++)E+=S[D][T];return E}function h(S,T){return S>T?1:S<T?-1:S===T?0:NaN}function b(S,T,E,D){for(E==null&&(E=0),D==null&&(D=S.length);E<D;){var M=Math.floor((E+D)/2),A=h(S[M],T);if(A>0)D=M;else if(A<0)E=M+1;else return M+1}return E}function y(S,T,E){if(!!(S&&T)){if(S.map&&S.map===p)return S.map(T,E);for(var D=[],M=0,A=S.length;M<A;M++)D.push(T.call(E,S[M],M,S));return D}}return{size:c,isArray:f,zeros:g,sum:m,sumOfColumn:w,ascending:h,bisect:b,map:y}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){function s(c){return c=c===null?NaN:+c,typeof c=="number"&&!isNaN(c)}function d(c){return isFinite(c)&&c===Math.round(c)}function p(c){if(c===0)return 0;var f=Math.floor(Math.log(c)/Math.LN10);return c/Math.pow(10,f)>=10&&f++,f}return{isNumber:s,isInteger:d,quantityExponent:p}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(2),d=s.dataPreprocess,p=s.normalizeDimensions,c={linear:function(m,w){for(var h=w.dimensions[0],b=w.dimensions[1],y=0,S=0,T=0,E=0,D=m.length,M=0;M<D;M++){var A=m[M];y+=A[h],S+=A[b],T+=A[h]*A[b],E+=A[h]*A[h]}for(var I=(D*T-y*S)/(D*E-y*y),V=S/D-I*y/D,W=[],P=0;P<m.length;P++){var A=m[P],z=A.slice();z[h]=A[h],z[b]=I*A[h]+V,W.push(z)}var L="y = "+Math.round(I*100)/100+"x + "+Math.round(V*100)/100;return{points:W,parameter:{gradient:I,intercept:V},expression:L}},linearThroughOrigin:function(m,w){for(var h=w.dimensions[0],b=w.dimensions[1],y=0,S=0,T=0;T<m.length;T++){var E=m[T];y+=E[h]*E[h],S+=E[h]*E[b]}for(var D=S/y,M=[],A=0;A<m.length;A++){var E=m[A],I=E.slice();I[h]=E[h],I[b]=E[h]*D,M.push(I)}var V="y = "+Math.round(D*100)/100+"x";return{points:M,parameter:{gradient:D},expression:V}},exponential:function(m,w){for(var h=w.dimensions[0],b=w.dimensions[1],y=0,S=0,T=0,E=0,D=0,M=0,A=0;A<m.length;A++){var I=m[A];y+=I[h],S+=I[b],M+=I[h]*I[b],T+=I[h]*I[h]*I[b],E+=I[b]*Math.log(I[b]),D+=I[h]*I[b]*Math.log(I[b])}for(var V=S*T-M*M,W=Math.pow(Math.E,(T*E-M*D)/V),P=(S*D-M*E)/V,z=[],L=0;L<m.length;L++){var I=m[L],q=I.slice();q[h]=I[h],q[b]=W*Math.pow(Math.E,P*I[h]),z.push(q)}var B="y = "+Math.round(W*100)/100+"e^("+Math.round(P*100)/100+"x)";return{points:z,parameter:{coefficient:W,index:P},expression:B}},logarithmic:function(m,w){for(var h=w.dimensions[0],b=w.dimensions[1],y=0,S=0,T=0,E=0,D=0;D<m.length;D++){var M=m[D];y+=Math.log(M[h]),S+=M[b]*Math.log(M[h]),T+=M[b],E+=Math.pow(Math.log(M[h]),2)}for(var A=(D*S-T*y)/(D*E-y*y),I=(T-A*y)/D,V=[],W=0;W<m.length;W++){var M=m[W],P=M.slice();P[h]=M[h],P[b]=A*Math.log(M[h])+I,V.push(P)}var z="y = "+Math.round(I*100)/100+" + "+Math.round(A*100)/100+"ln(x)";return{points:V,parameter:{gradient:A,intercept:I},expression:z}},polynomial:function(m,w){var h=w.dimensions[0],b=w.dimensions[1],y=w.order;y==null&&(y=2);for(var S=[],T=[],E=y+1,D=0;D<E;D++){for(var M=0,A=0;A<m.length;A++){var I=m[A];M+=I[b]*Math.pow(I[h],D)}T.push(M);for(var V=[],W=0;W<E;W++){for(var P=0,z=0;z<m.length;z++)P+=Math.pow(m[z][h],D+W);V.push(P)}S.push(V)}S.push(T);for(var L=f(S,E),q=[],D=0;D<m.length;D++){for(var B=0,I=m[D],A=0;A<L.length;A++)B+=L[A]*Math.pow(I[h],A);var O=I.slice();O[h]=I[h],O[b]=B,q.push(O)}for(var $="y = ",D=L.length-1;D>=0;D--)D>1?$+=Math.round(L[D]*Math.pow(10,D+1))/Math.pow(10,D+1)+"x^"+D+" + ":D===1?$+=Math.round(L[D]*100)/100+"x + ":$+=Math.round(L[D]*100)/100;return{points:q,parameter:L,expression:$}}};function f(m,w){for(var h=0;h<m.length-1;h++){for(var b=h,y=h+1;y<m.length-1;y++)Math.abs(m[h][y])>Math.abs(m[h][b])&&(b=y);for(var S=h;S<m.length;S++){var T=m[S][h];m[S][h]=m[S][b],m[S][b]=T}for(var E=h+1;E<m.length-1;E++)for(var D=m.length-1;D>=h;D--)m[D][E]-=m[D][h]/m[h][h]*m[h][E]}for(var M=new Array(w),A=m.length-1,y=m.length-2;y>=0;y--){for(var T=0,h=y+1;h<m.length-1;h++)T+=m[h][y]*M[h];M[y]=(m[A][y]-T)/m[y][y]}return M}var g=function(m,w,h){var b=typeof h=="number"?{order:h}:h||{},y=p(b.dimensions,[0,1]),S=d(w,{dimensions:y}),T=c[m](S,{order:b.order,dimensions:y}),E=y[0];return T.points.sort(function(D,M){return D[E]-M[E]}),T};return g}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s={};return s.max=i(7),s.deviation=i(8),s.mean=i(10),s.median=i(12),s.min=i(14),s.quantile=i(13),s.sampleVariance=i(9),s.sum=i(11),s}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(4),d=s.isNumber;function p(c){for(var f=-1/0,g=0;g<c.length;g++)d(c[g])&&c[g]>f&&(f=c[g]);return f}return p}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(9);return function(d){var p=s(d);return p&&Math.sqrt(p)}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(4),d=s.isNumber,p=i(10);function c(f){var g=f.length;if(!g||g<2)return 0;if(f.length>=2){for(var m=p(f),w=0,h,b=0;b<f.length;b++)d(f[b])&&(h=f[b]-m,w+=h*h);return w/(f.length-1)}}return c}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(11);function d(p){var c=p.length;return c?s(p)/p.length:0}return d}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(4),d=s.isNumber;function p(c){var f=c.length;if(!f)return 0;for(var g=0,m=0;m<f;m++)d(c[m])&&(g+=c[m]);return g}return p}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(13);function d(p){return s(p,.5)}return d}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){return function(s,d){var p=s.length;if(!p)return 0;if(d<=0||p<2)return s[0];if(d>=1)return s[p-1];var c=(p-1)*d,f=Math.floor(c),g=s[f],m=s[f+1];return g+(m-g)*(c-f)}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(4),d=s.isNumber;function p(c){for(var f=1/0,g=0;g<c.length;g++)d(c[g])&&c[g]<f&&(f=c[g]);return f}return p}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(7),d=i(14),p=i(13),c=i(8),f=i(2),g=f.dataPreprocess,m=f.normalizeDimensions,w=i(3),h=w.ascending,b=w.map,y=i(16),S=w.bisect,T=i(17);function E(J,A){for(var I=typeof A=="string"?{method:A}:A||{},V=I.method==null?D.squareRoot:D[I.method],W=m(I.dimensions),P=g(J,{dimensions:W,toOneDimensionArray:!0}),z=s(P),L=d(P),q=V(P,L,z),B=T(L,z,q),O=B.step,$=B.toFixedPrecision,R=y(+(Math.ceil(L/O)*O).toFixed($),+(Math.floor(z/O)*O).toFixed($),O,$),k=R.length,K=new Array(k+1),N=0;N<=k;N++)K[N]={},K[N].sample=[],K[N].x0=N>0?R[N-1]:R[N]-L===O?L:R[N]-O,K[N].x1=N<k?R[N]:z-R[N-1]===O?z:R[N-1]+O;for(var N=0;N<P.length;N++)L<=P[N]&&P[N]<=z&&K[S(R,P[N],0,k)].sample.push(P[N]);var J=b(K,function(re){return[+((re.x0+re.x1)/2).toFixed($),re.sample.length,re.x0,re.x1,re.x0+" - "+re.x1]}),we=b(K,function(re){return[re.x0,re.x1,re.sample.length]});return{bins:K,data:J,customData:we}}var D={squareRoot:function(M){var A=Math.ceil(Math.sqrt(M.length));return A>50?50:A},scott:function(M,A,I){return Math.ceil((I-A)/(3.5*c(M)*Math.pow(M.length,-1/3)))},freedmanDiaconis:function(M,A,I){return M.sort(h),Math.ceil((I-A)/(2*(p(M,.75)-p(M,.25))*Math.pow(M.length,-1/3)))},sturges:function(M){return Math.ceil(Math.log(M.length)/Math.LN2)+1}};return E}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(2),d=s.getPrecision;return function(p,c,f,g){var m=arguments.length;m<2?(c=p,p=0,f=1):m<3?f=1:m<4?(f=+f,g=d(f)):g=+g;for(var w=Math.ceil(((c-p)/f).toFixed(g)),h=new Array(w+1),b=0;b<w+1;b++)h[b]=+(p+b*f).toFixed(g);return h}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(4);return function(d,p,c){var f=Math.abs(p-d)/c,g=s.quantityExponent(f),m=Math.pow(10,g),w=f/m;w>=Math.sqrt(50)?m*=10:w>=Math.sqrt(10)?m*=5:w>=Math.sqrt(2)&&(m*=2);var h=g<0?-g:0,b=+(p>=d?m:-m).toFixed(h);return{step:b,toFixedPrecision:h}}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(5),d=i(19),p=2;return{type:"ecStat:regression",transform:function(f){var g=f.upstream,m=f.config||{},w=m.method||"linear",h=s(w,g.cloneRawData(),{order:m.order,dimensions:d.normalizeExistingDimensions(f,m.dimensions)}),b=h.points,y=m.formulaOn;y==null&&(y="end");var S;if(y!=="none"){for(var T=0;T<b.length;T++)b[T][p]=y==="start"&&T===0||y==="all"||y==="end"&&T===b.length-1?h.expression:"";S=g.cloneAllDimensionInfo(),S[p]={}}return[{dimensions:S,data:b}]}}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(3),d=i(4),p=i(20);function c(g,m){if(m==null)return;var w=g.upstream;if(s.isArray(m)){for(var h=[],b=0;b<m.length;b++){var y=w.getDimensionInfo(m[b]);S(y,m[b]),h[b]=y.index}return h}else{var y=w.getDimensionInfo(m);return S(y,m),y.index}function S(T,E){if(!T)throw new Error("Can not find dimension by "+E)}}function f(g){if(s.isArray(g)){for(var m=[],w=[],h=0;h<g.length;h++){var b=y(g[h]);m.push(b.name),w.push(b.index)}return{name:m,index:w}}else if(g!=null)return y(g);function y(S){if(d.isNumber(S))return{index:S};if(p.isObject(S)&&d.isNumber(S.index))return S;throw new Error("Illegle new dimensions config. Expect `{ name: string, index: number }`.")}}return{normalizeExistingDimensions:c,normalizeNewDimensions:f}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){function s(p,c){if(Object.assign)Object.assign(p,c);else for(var f in c)c.hasOwnProperty(f)&&(p[f]=c[f]);return p}function d(p){const c=typeof p;return c==="function"||!!p&&c==="object"}return{extend:s,isObject:d}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(15),d=i(19);return{type:"ecStat:histogram",transform:function(c){var f=c.upstream,g=c.config||{},m=s(f.cloneRawData(),{method:g.method,dimensions:d.normalizeExistingDimensions(c,g.dimensions)});return[{dimensions:["MeanOfV0V1","VCount","V0","V1","DisplayableName"],data:m.data},{data:m.customData}]}}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(1),d=i(4),p=i(19),c=d.isNumber;return{type:"ecStat:clustering",transform:function(g){var m=g.upstream,w=g.config||{},h=w.clusterCount;if(!c(h)||h<=0)throw new Error('config param "clusterCount" need to be specified as an interger greater than 1.');if(h===1)return[{},{data:[]}];var b=p.normalizeNewDimensions(w.outputClusterIndexDimension),y=p.normalizeNewDimensions(w.outputCentroidDimensions);if(b==null)throw new Error("outputClusterIndexDimension is required as a number.");for(var S=s.hierarchicalKMeans(m.cloneRawData(),{clusterCount:h,stepByStep:!1,dimensions:p.normalizeExistingDimensions(g,w.dimensions),outputType:s.OutputType.SINGLE,outputClusterIndexDimension:b.index,outputCentroidDimensions:(y||{}).index}),T=m.cloneAllDimensionInfo(),E=[],D=0;D<T.length;D++){var M=T[D];E.push(M.name)}if(E[b.index]=b.name,y)for(var D=0;D<y.index.length;D++)y.name[D]!=null&&(E[y.index[D]]=y.name[D]);return[{dimensions:E,data:S.data},{data:S.centroids}]}}}.call(o,i,o,n),l!==void 0&&(n.exports=l)}])})})(Ot);var rr=Ot.exports;function ir({regressions:e=[]},r){const n=[],o=[],i=[];return r.length===0?{regressionDataSets:n,regressionSeries:o,regressionXAxes:i}:(e.forEach(({transform:l,plot:u,name:s,y_axis_data_key:d})=>{const p=`x-axis-for-${s}`,c=`dataset-for-${s}--raw`,f=`dataset-for-${s}--transformed`;n.push({id:c,source:r.map((g,m)=>[m,g[d]])}),n.push({transform:l,id:f,fromDatasetId:c}),o.push(j(C({},u),{name:s,datasetId:f,xAxisId:p,showSymbol:!1,tooltip:{show:!1}})),i.push({type:"category",id:p,datasetId:f,show:!1})}),{regressionDataSets:n,regressionSeries:o,regressionXAxes:i})}const or={legend:{show:!0,bottom:0,left:0},tooltip:{trigger:"axis"},xAxis:{type:"category",nameGap:25,nameLocation:"center",nameTextStyle:{fontWeight:"bold"}},grid:{top:0,left:15,right:15,bottom:30,containLabel:!0}};function ar(e,r){var p;const n=e.y_axes.reduce((c,{label_formatter:f},g)=>(c[g]=function(w){const h=typeof w=="object"?w.value:w;if(!f)return h;try{return Me.default(h).format(f)}catch(b){return console.error(b),h}},c),{default:({value:c})=>c}),o=e.series.reduce((c,{yAxisIndex:f,name:g})=>(c[g]=f,c),{}),i=e.series.map(h=>{var b=h,{y_axis_data_key:c,yAxisIndex:f,label_position:g,name:m}=b,w=Z(b,["y_axis_data_key","yAxisIndex","label_position","name"]);return C({data:r.map(S=>S[c]),label:{show:!!g,position:g,formatter:n[f!=null?f:"default"]},name:m,xAxisId:"main-x-axis",yAxisIndex:f},w)}),{regressionDataSets:l,regressionSeries:u,regressionXAxes:s}=ir(e,r),d={xAxis:[{data:r.map(c=>c[e.x_axis_data_key]),name:(p=e.x_axis_name)!=null?p:"",id:"main-x-axis"},...s],yAxis:e.y_axes.map((m,g)=>{var w=m,{label_formatter:c}=w,f=Z(w,["label_formatter"]);var h;return j(C({},f),{axisLabel:{show:!0,formatter:(h=n[g])!=null?h:n.default}})}),dataset:[...l],series:[...i,...u],tooltip:{formatter:function(c){const f=Array.isArray(c)?c:[c];if(f.length===0)return"";const g=f.map(({seriesName:m,value:w})=>{var y;if(!m)return w;const h=o[m],b=(y=n[h])!=null?y:n.default;return`${m}: ${b({value:w})}`});return g.unshift(`<strong>${f[0].name}</strong>`),g.join("<br />")}}};return U.default.merge({},or,d)}function lr(e){const r=Array.from(e).sort((o,i)=>o-i),n=Math.floor(r.length/2);return r.length%2===0?(r[n-1]+r[n])/2:r[n]}function sr(e,r,n){var i,l,u;const o=e.map(s=>s[r]);switch(n){case"sum":return U.default.sum(o);case"mean":return U.default.mean(o);case"median":return lr(o);case"max":return(i=U.default.max(o))!=null?i:0;case"min":return(l=U.default.min(o))!=null?l:0;default:return(u=e[0])==null?void 0:u[r]}}var Nt=function(){};const ur=(e,r,n)=>Math.min(Math.max(n,e),r),_t=(e,r,n)=>{const o=r-e;return o===0?1:(n-e)/o},Ze=(e,r,n)=>-n*e+n*r+e,Ft=(e,r)=>n=>Math.max(Math.min(n,r),e),Pe=e=>e%1?Number(e.toFixed(5)):e,Fe=/(-)?([\d]*\.?[\d])+/g,He=/(#[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,dr=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;function Ae(e){return typeof e=="string"}const Re={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Rt=Object.assign(Object.assign({},Re),{transform:Ft(0,1)});Object.assign(Object.assign({},Re),{default:1});const Ie=(e=>({test:r=>Ae(r)&&r.endsWith(e)&&r.split(" ").length===1,parse:parseFloat,transform:r=>`${r}${e}`}))("%");Object.assign(Object.assign({},Ie),{parse:e=>Ie.parse(e)/100,transform:e=>Ie.transform(e*100)});const et=(e,r)=>n=>Boolean(Ae(n)&&dr.test(n)&&n.startsWith(e)||r&&Object.prototype.hasOwnProperty.call(n,r)),Bt=(e,r,n)=>o=>{if(!Ae(o))return o;const[i,l,u,s]=o.match(Fe);return{[e]:parseFloat(i),[r]:parseFloat(l),[n]:parseFloat(u),alpha:s!==void 0?parseFloat(s):1}},Se={test:et("hsl","hue"),parse:Bt("hue","saturation","lightness"),transform:({hue:e,saturation:r,lightness:n,alpha:o=1})=>"hsla("+Math.round(e)+", "+Ie.transform(Pe(r))+", "+Ie.transform(Pe(n))+", "+Pe(Rt.transform(o))+")"},cr=Ft(0,255),tt=Object.assign(Object.assign({},Re),{transform:e=>Math.round(cr(e))}),ve={test:et("rgb","red"),parse:Bt("red","green","blue"),transform:({red:e,green:r,blue:n,alpha:o=1})=>"rgba("+tt.transform(e)+", "+tt.transform(r)+", "+tt.transform(n)+", "+Pe(Rt.transform(o))+")"};function fr(e){let r="",n="",o="",i="";return e.length>5?(r=e.substr(1,2),n=e.substr(3,2),o=e.substr(5,2),i=e.substr(7,2)):(r=e.substr(1,1),n=e.substr(2,1),o=e.substr(3,1),i=e.substr(4,1),r+=r,n+=n,o+=o,i+=i),{red:parseInt(r,16),green:parseInt(n,16),blue:parseInt(o,16),alpha:i?parseInt(i,16)/255:1}}const nt={test:et("#"),parse:fr,transform:ve.transform},Be={test:e=>ve.test(e)||nt.test(e)||Se.test(e),parse:e=>ve.test(e)?ve.parse(e):Se.test(e)?Se.parse(e):nt.parse(e),transform:e=>Ae(e)?e:e.hasOwnProperty("red")?ve.transform(e):Se.transform(e)},qt="${c}",$t="${n}";function pr(e){var r,n,o,i;return isNaN(e)&&Ae(e)&&((n=(r=e.match(Fe))===null||r===void 0?void 0:r.length)!==null&&n!==void 0?n:0)+((i=(o=e.match(He))===null||o===void 0?void 0:o.length)!==null&&i!==void 0?i:0)>0}function Wt(e){typeof e=="number"&&(e=`${e}`);const r=[];let n=0;const o=e.match(He);o&&(n=o.length,e=e.replace(He,qt),r.push(...o.map(Be.parse)));const i=e.match(Fe);return i&&(e=e.replace(Fe,$t),r.push(...i.map(Re.parse))),{values:r,numColors:n,tokenised:e}}function Vt(e){return Wt(e).values}function Ut(e){const{values:r,numColors:n,tokenised:o}=Wt(e),i=r.length;return l=>{let u=o;for(let s=0;s<i;s++)u=u.replace(s<n?qt:$t,s<n?Be.transform(l[s]):Pe(l[s]));return u}}const mr=e=>typeof e=="number"?0:e;function hr(e){const r=Vt(e);return Ut(e)(r.map(mr))}const Qt={test:pr,parse:Vt,createTransformer:Ut,getAnimatableNone:hr};function rt(e,r,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(r-e)*6*n:n<1/2?r:n<2/3?e+(r-e)*(2/3-n)*6:e}function kt({hue:e,saturation:r,lightness:n,alpha:o}){e/=360,r/=100,n/=100;let i=0,l=0,u=0;if(!r)i=l=u=n;else{const s=n<.5?n*(1+r):n+r-n*r,d=2*n-s;i=rt(d,s,e+1/3),l=rt(d,s,e),u=rt(d,s,e-1/3)}return{red:Math.round(i*255),green:Math.round(l*255),blue:Math.round(u*255),alpha:o}}const gr=(e,r,n)=>{const o=e*e,i=r*r;return Math.sqrt(Math.max(0,n*(i-o)+o))},xr=[nt,ve,Se],jt=e=>xr.find(r=>r.test(e)),Kt=(e,r)=>{let n=jt(e),o=jt(r),i=n.parse(e),l=o.parse(r);n===Se&&(i=kt(i),n=ve),o===Se&&(l=kt(l),o=ve);const u=Object.assign({},i);return s=>{for(const d in u)d!=="alpha"&&(u[d]=gr(i[d],l[d],s));return u.alpha=Ze(i.alpha,l.alpha,s),n.transform(u)}},vr=e=>typeof e=="number",br=(e,r)=>n=>r(e(n)),Yt=(...e)=>e.reduce(br);function Xt(e,r){return vr(e)?n=>Ze(e,r,n):Be.test(e)?Kt(e,r):Ht(e,r)}const Jt=(e,r)=>{const n=[...e],o=n.length,i=e.map((l,u)=>Xt(l,r[u]));return l=>{for(let u=0;u<o;u++)n[u]=i[u](l);return n}},yr=(e,r)=>{const n=Object.assign(Object.assign({},e),r),o={};for(const i in n)e[i]!==void 0&&r[i]!==void 0&&(o[i]=Xt(e[i],r[i]));return i=>{for(const l in o)n[l]=o[l](i);return n}};function Zt(e){const r=Qt.parse(e),n=r.length;let o=0,i=0,l=0;for(let u=0;u<n;u++)o||typeof r[u]=="number"?o++:r[u].hue!==void 0?l++:i++;return{parsed:r,numNumbers:o,numRGB:i,numHSL:l}}const Ht=(e,r)=>{const n=Qt.createTransformer(r),o=Zt(e),i=Zt(r);return o.numHSL===i.numHSL&&o.numRGB===i.numRGB&&o.numNumbers>=i.numNumbers?Yt(Jt(o.parsed,i.parsed),n):u=>`${u>0?r:e}`},Cr=(e,r)=>n=>Ze(e,r,n);function Sr(e){if(typeof e=="number")return Cr;if(typeof e=="string")return Be.test(e)?Kt:Ht;if(Array.isArray(e))return Jt;if(typeof e=="object")return yr}function wr(e,r,n){const o=[],i=n||Sr(e[0]),l=e.length-1;for(let u=0;u<l;u++){let s=i(e[u],e[u+1]);if(r){const d=Array.isArray(r)?r[u]:r;s=Yt(d,s)}o.push(s)}return o}function Dr([e,r],[n]){return o=>n(_t(e,r,o))}function Tr(e,r){const n=e.length,o=n-1;return i=>{let l=0,u=!1;if(i<=e[0]?u=!0:i>=e[o]&&(l=o-1,u=!0),!u){let d=1;for(;d<n&&!(e[d]>i||d===o);d++);l=d-1}const s=_t(e[l],e[l+1],i);return r[l](s)}}function Er(e,r,{clamp:n=!0,ease:o,mixer:i}={}){const l=e.length;Nt(l===r.length),Nt(!o||!Array.isArray(o)||o.length===l-1),e[0]>e[l-1]&&(e=[].concat(e),r=[].concat(r),e.reverse(),r.reverse());const u=wr(r,o,i),s=l===2?Dr(e,u):Tr(e,u);return n?d=>s(ur(e[0],e[l-1],d)):s}class Mr{constructor({valueRange:r,colorRange:n}){xn(this,"mapper");this.mapper=Er(r,n)}getColor(r){return this.mapper(r)}}function Pr(e,r){return e.type==="static"?e.staticColor:e.type==="continuous"?new Mr(e).getColor(r):"black"}function Ar(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array(${e.length})`:e.toString()}function Ir(e,r){const n={};return e.forEach(({name:o,color:i,data_field:l,aggregation:u,size:s,weight:d,formatter:p})=>{const c=sr(r,l,u);let f="";["string","number"].includes(typeof c)?f=Me.default(c).format(p):f=Ar(c),n[o]=t(a.Text,{sx:{fontSize:s,display:"inline"},color:Pr(i,c),weight:d,children:f})}),n}function Gr(e){return e.split(" ").map(r=>v(xe,{children:[r,"\xA0"]}))}function zr(e){const n=e.replaceAll("<br />","<br/>").replaceAll(`
|
|
10
|
-
`,"<br/>").split("<br/>");return n.map((i,l)=>{const u=[Gr(i)];return l!==n.length-1&&u.push(t("br",{})),u}).flat().filter(i=>i!==void 0)}function it(e){return zr(e)}function ot(e,r,n){const o=Ir(r,n),i=/^\{(.+)\}(.*)$/;return e.split("$").map(l=>{var p;const u=i.exec(l);if(!u)return it(l);const s=o[u[1]];if(!s)return it(l);const d=(p=u[2])!=null?p:"";return v(xe,{children:[s,it(d)]})})}ce.use([Ee.BarChart,Ee.LineChart,Ee.ScatterChart,ye.GridComponent,ye.LegendComponent,ye.TooltipComponent,Ge.CanvasRenderer]),ce.registerTransform(rr.transform.regression);function en(e){return e.trim().length>0}function Lr({conf:e,data:r,width:n,height:o}){const i=x.default.useMemo(()=>ar(e,r),[e,r]);return!n||!o?null:t(ze.default,{echarts:ce,option:i,style:{width:n,height:o}})}function Or({conf:e,data:r,width:n,height:o}){const{ref:i,height:l}=H.useElementSize(),{ref:u,height:s}=H.useElementSize(),d=x.default.useMemo(()=>{const{stats:{templates:c,variables:f}}=e;return{top:ot(c.top,f,r),bottom:ot(c.bottom,f,r)}},[e,r]),p=Math.max(0,o-l-s);return v(a.Box,{children:[en(e.stats.templates.top)&&t(a.Text,{ref:i,align:"left",size:"xs",pl:"sm",children:Object.values(d.top).map(c=>c)}),t(Lr,{width:n,height:p,data:r,conf:e}),en(e.stats.templates.bottom)&&t(a.Text,{ref:u,align:"left",size:"xs",pl:"sm",children:Object.values(d.bottom).map(c=>c)})]})}var be=(e=>(e.string="string",e.number="number",e.eloc="eloc",e.percentage="percentage",e))(be||{});function Nr({value:e}){return t(a.Text,{component:"span",children:e})}function _r({value:e}){return t(a.Text,{component:"span",children:e})}function Fr({value:e}){const r=Me.default(e).format({thousandSeparated:!0});return t(a.Text,{component:"span",children:r})}function Rr({value:e}){const r=Me.default(e).format({output:"percent",mantissa:3});return t(a.Text,{component:"span",children:r})}function Br({value:e,type:r}){switch(r){case be.string:return t(Nr,{value:e});case be.eloc:return t(_r,{value:e});case be.number:return t(Fr,{value:e});case be.percentage:return t(Rr,{value:e})}}function qr({conf:e,data:r=[],width:n,height:o}){const c=e,{id_field:i,use_raw_columns:l,columns:u}=c,s=Z(c,["id_field","use_raw_columns","columns"]),d=x.default.useMemo(()=>l?Object.keys(r==null?void 0:r[0]):u.map(f=>f.label),[l,u,r]),p=x.default.useMemo(()=>l?Object.keys(r==null?void 0:r[0]).map(f=>({label:f,value_field:f,value_type:be.string})):u,[l,u,r]);return v(a.Table,
|
|
11
|
-
{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 Qr({conf:e,data:r,width:n,height:o}){const c=e,{label_field:i="name",value_field:l="value"}=c,u=Z(c,["label_field","value_field"]),s=x.default.useMemo(()=>r.map(f=>({name:f[i],value:Number(f[l])})),[r,i,l]),d=x.default.useMemo(()=>({series:{labelLayout:function(f){const g=f.labelRect.x<n/2,m=f.labelLinePoints;return m[2][0]=g?f.labelRect.x:f.labelRect.x+f.labelRect.width,{labelLinePoints:m}}}}),[n]),p=U.default.merge({},Ur,d,u,{series:{data:s}});return t(ze.default,{echarts:ce,option:p,style:{width:n,height:o}})}function kr({conf:{template:e,variables:r,align:n},data:o}){const i=x.default.useMemo(()=>ot(e,r,o),[e,r,o]);return t(a.Text,{align:n,children:Object.values(i).map(l=>l)})}function jr({conf:e,width:r,height:n}){return!r||!n?null:t(Qe.default,{readOnly:!0,value:e.content,onChange:U.default.noop,sx:{border:"none"}})}function tn(e,r,n,o){const i={width:e,height:r,data:n,conf:o.conf};switch(o.type){case"sunburst":return t(nr,C({},i));case"cartesian":return t(Or,C({},i));case"table":return t(qr,C({},i));case"text":return t(Wr,C({},i));case"stats":return t(kr,C({},i));case"rich-text":return t(jr,C({},i));case"bar-3d":return t(Vr,C({},i));case"pie":return t(Qr,C({},i));default:return null}}const Kr=["rich-text"];function nn({viz:e,data:r,loading:n}){const{ref:o,width:i,height:l}=H.useElementSize();if(!!Kr.includes(e.type))return t("div",{className:"viz-root",ref:o,children:t(Je,{children:tn(i,l,r,e)})});const s=x.default.useMemo(()=>!Array.isArray(r)||r.length===0,[r]);return n?t("div",{className:"viz-root",ref:o,children:t(a.LoadingOverlay,{visible:n,exitTransitionDuration:0})}):v("div",{className:"viz-root",ref:o,children:[s&&t(a.Text,{color:"gray",align:"center",children:"nothing to show"}),!s&&t(Je,{children:tn(i,l,r,e)})]})}function Yr({}){const{data:e,loading:r,viz:n}=x.default.useContext(ae);return t(nn,{viz:n,data:e,loading:r})}function Xr({label:e,required:r,value:n,onChange:o,data:i,sx:l},u){const s=x.default.useMemo(()=>!Array.isArray(i)||i.length===0?[]:Object.keys(i[0]).map(p=>({label:p,value:p})),[i]);return t(a.Select,{ref:u,label:e,data:s,value:n,onChange:o,required:r,sx:l})}const ne=x.default.forwardRef(Xr);function Jr({conf:e,setConf:r,data:n}){const o=U.default.assign({},{x_axis_data_key:"x",y_axis_data_key:"y",z_axis_data_key:"z",xAxis3D:{type:"value",name:"X Axis Name"},yAxis3D:{type:"value",name:"Y Axis Name"},zAxis3D:{type:"value",name:"Z Axis Name"}},e),{control:i,handleSubmit:l,formState:u}=F.useForm({defaultValues:o});return t(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,children:v("form",{onSubmit:l(r),children:[t(a.Text,{children:"X Axis"}),v(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[t(F.Controller,{name:"x_axis_data_key",control:i,render:({field:s})=>t(ne,C({label:"Data Field",required:!0,data:n},s))}),t(F.Controller,{name:"xAxis3D.name",control:i,render:({field:s})=>t(a.TextInput,C({sx:{flexGrow:1},size:"md",label:"Name"},s))})]}),t(a.Text,{mt:"lg",children:"Y Axis"}),v(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[t(F.Controller,{name:"y_axis_data_key",control:i,render:({field:s})=>t(ne,C({label:"Data Field",required:!0,data:n},s))}),t(F.Controller,{name:"yAxis3D.name",control:i,render:({field:s})=>t(a.TextInput,C({sx:{flexGrow:1},size:"md",label:"Name"},s))})]}),t(a.Text,{mt:"lg",children:"Z Axis"}),v(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[t(F.Controller,{name:"z_axis_data_key",control:i,render:({field:s})=>t(ne,C({label:"Data Field",required:!0,data:n},s))}),t(F.Controller,{name:"zAxis3D.name",control:i,render:({field:s})=>t(a.TextInput,C({sx:{flexGrow:1},size:"md",label:"Name"},s))})]}),t(a.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:v(a.Button,{color:"blue",type:"submit",children:[t(_.DeviceFloppy,{size:20}),t(a.Text,{ml:"md",children:"Save"})]})})]})})}function Zr({value:e,onChange:r},n){const o=a.useMantineTheme(),i=x.default.useMemo(()=>Object.entries(o.colors).map(([u,s])=>({label:u,value:s[6]})),[o]),l=x.default.useMemo(()=>i.some(u=>u.value===e),[e,i]);return v(a.Group,{position:"apart",spacing:4,children:[t(a.TextInput,{placeholder:"Set any color",value:l?"":e,onChange:u=>r(u.currentTarget.value),rightSection:t(a.ColorSwatch,{color:l?"transparent":e,radius:4}),variant:l?"filled":"default",sx:{maxWidth:"46%",flexGrow:1}}),t(a.Text,{sx:{flexGrow:0},children:"or"}),t(a.Select,{data:i,value:e,onChange:r,variant:l?"default":"filled",placeholder:"Pick a theme color",icon:t(a.ColorSwatch,{color:l?e:"transparent",radius:4}),sx:{maxWidth:"46%",flexGrow:1}})]})}const qe=x.default.forwardRef(Zr);function Hr({control:e,index:r}){return v(a.Group,{direction:"row",grow:!0,align:"top",children:[t(F.Controller,{name:`series.${r}.stack`,control:e,render:({field:n})=>t(a.TextInput,C({label:"Stack",placeholder:"Stack bars by this ID",sx:{flexGrow:1}},n))}),t(F.Controller,{name:`series.${r}.barWidth`,control:e,render:({field:n})=>t(a.TextInput,C({label:"Bar Width",sx:{flexGrow:1}},n))})]})}const ei=[{label:"off",value:"false"},{label:"start",value:"start"},{label:"middle",value:"middle"},{label:"end",value:"end"}];function ti({control:e,index:r}){return v(a.Group,{direction:"row",grow:!0,align:"center",children:[t(F.Controller,{name:`series.${r}.step`,control:e,render:({field:n})=>t(a.Select,j(C({label:"Step",data:ei,sx:{flexGrow:1,maxWidth:"48%"}},n),{value:String(n.value),onChange:o=>{const i=o==="false"?!1:o;n.onChange(i)}}))}),t(F.Controller,{name:`series.${r}.smooth`,control:e,render:({field:n})=>t(a.Box,{sx:{flexGrow:1},children:t(a.Switch,{label:"Smooth Line",checked:n.value,onChange:o=>n.onChange(o.currentTarget.checked)})})})]})}const ni=Array.from(new Array(9),(e,r)=>({label:String(r+1),value:r+1}));function ri({control:e,index:r}){return t(a.Group,{direction:"row",grow:!0,align:"center",children:t(F.Controller,{name:`series.${r}.symbolSize`,control:e,render:({field:n})=>v(a.Group,{direction:"column",noWrap:!0,sx:{flexGrow:1},pb:16,spacing:4,children:[t(a.Text,{size:"sm",children:"Size"}),t(a.Slider,j(C({min:1,max:10,marks:ni},n),{sx:{width:"100%"}}))]})})})}const ii=[{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 oi({control:e,index:r,remove:n,seriesItem:o,yAxisOptions:i,data:l}){const u=o.type;return v(a.Group,{direction:"column",grow:!0,my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[t(a.Group,{direction:"column",grow:!0,noWrap:!0,children:t(F.Controller,{name:`series.${r}.type`,control:e,render:({field:s})=>t(a.SegmentedControl,C({data:[{label:"Line",value:"line"},{label:"Bar",value:"bar"},{label:"Scatter",value:"scatter"},{label:"Boxplot",value:"boxplot",disabled:!0}]},s))})}),t(F.Controller,{name:`series.${r}.name`,control:e,render:({field:s})=>t(a.TextInput,C({label:"Name",required:!0,sx:{flex:1}},s))}),v(a.Group,{direction:"row",grow:!0,noWrap:!0,children:[t(F.Controller,{name:`series.${r}.y_axis_data_key`,control:e,render:({field:s})=>t(ne,C({label:"Value Field",required:!0,data:l,sx:{flex:1}},s))}),t(F.Controller,{name:`series.${r}.yAxisIndex`,control:e,render:c=>{var{field:f}=c,g=f,{value:s,onChange:d}=g,p=Z(g,["value","onChange"]);var m;return t(a.Select,j(C({label:"Y Axis",data:i,disabled:i.length===0},p),{value:(m=s==null?void 0:s.toString())!=null?m:"",onChange:w=>{if(!w){d(0);return}d(Number(w))},sx:{flex:1}}))}})]}),u==="line"&&t(ti,{index:r,control:e}),u==="bar"&&t(Hr,{index:r,control:e}),u==="scatter"&&t(ri,{index:r,control:e}),t(F.Controller,{name:`series.${r}.label_position`,control:e,render:({field:s})=>t(a.Select,C({label:"Label Position",data:ii},s))}),v(a.Group,{direction:"column",grow:!0,spacing:4,children:[t(a.Text,{size:"sm",children:"Color"}),t(F.Controller,{name:`series.${r}.color`,control:e,render:({field:s})=>t(qe,C({},s))})]}),t(a.ActionIcon,{color:"red",variant:"hover",onClick:()=>n(r),sx:{position:"absolute",top:15,right:5},children:t(_.Trash,{size:16})})]},r)}function ai({control:e,watch:r,getValues:n,data:o}){const{fields:i,append:l,remove:u}=F.useFieldArray({control:e,name:"series"}),s=r("series"),d=i.map((f,g)=>C(C({},f),s[g])),p=()=>l({type:"bar",name:H.randomId(),showSymbol:!1,symbolSize:5,y_axis_data_key:"value",yAxisIndex:0,label_position:"top",stack:"",color:"#000",step:!1,smooth:!1}),c=x.default.useMemo(()=>n().y_axes.map(({name:f},g)=>({label:f,value:g.toString()})),[n]);return v(a.Group,{direction:"column",grow:!0,children:[d.map((f,g)=>t(oi,{control:e,index:g,remove:u,seriesItem:f,yAxisOptions:c,data:o})),t(a.Group,{position:"center",mt:"xs",children:t(a.Button,{onClick:p,children:"Add a Series"})})]})}const rn={mantissa:0,output:"number"};function li({value:e,onChange:r},n){const o=u=>{r(j(C({},e),{output:u}))},i=u=>{const s=u===0?!1:e.trimMantissa;r(j(C({},e),{mantissa:u,trimMantissa:s}))},l=u=>{r(j(C({},e),{trimMantissa:u.currentTarget.checked}))};return t(a.Group,{direction:"column",grow:!0,noWrap:!0,ref:n,children:v(a.Group,{direction:"row",grow:!0,children:[t(a.Select,{label:"Format",data:[{label:"1234",value:"number"},{label:"99%",value:"percent"}],value:e.output,onChange:o}),t(a.NumberInput,{label:"Mantissa",defaultValue:0,min:0,step:1,max:4,value:e.mantissa,onChange:i}),t(a.Switch,{label:"Trim mantissa",checked:e.trimMantissa,onChange:l,disabled:e.mantissa===0})]})})}const on=x.default.forwardRef(li);function si({control:e,index:r,remove:n}){return v(a.Group,{direction:"column",grow:!0,my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[t(a.Group,{direction:"row",grow:!0,noWrap:!0,children:t(F.Controller,{name:`y_axes.${r}.name`,control:e,render:({field:o})=>t(a.TextInput,C({label:"Name",required:!0,sx:{flex:1}},o))})}),t(a.Group,{direction:"column",grow:!0,noWrap:!0,children:t(F.Controller,{name:`y_axes.${r}.label_formatter`,control:e,render:({field:o})=>t(on,C({},o))})}),t(a.ActionIcon,{color:"red",variant:"hover",onClick:()=>n(r),sx:{position:"absolute",top:15,right:5},disabled:r===0,children:t(_.Trash,{size:16})})]},r)}function ui({control:e,watch:r}){const{fields:n,append:o,remove:i}=F.useFieldArray({control:e,name:"y_axes"}),l=r("y_axes"),u=n.map((d,p)=>C(C({},d),l[p])),s=()=>o({name:"",label_formatter:rn});return v(a.Group,{direction:"column",grow:!0,children:[u.map((d,p)=>t(si,{control:e,index:p,remove:i})),t(a.Group,{position:"center",mt:"xs",children:t(a.Button,{onClick:s,children:"Add a Y Axis"})})]})}const di=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}];function ci({control:e,regressionItem:r,index:n,remove:o,yAxisOptions:i,data:l}){const u=r.transform.config.method;return v(a.Group,{direction:"column",grow:!0,my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[t(F.Controller,{name:`regressions.${n}.name`,control:e,render:({field:s})=>t(a.TextInput,C({label:"Name",required:!0,sx:{flex:1}},s))}),v(a.Group,{direction:"row",grow:!0,noWrap:!0,children:[t(F.Controller,{name:`regressions.${n}.y_axis_data_key`,control:e,render:({field:s})=>t(ne,C({label:"Value Field",required:!0,data:l,sx:{flex:1}},s))}),t(F.Controller,{name:`regressions.${n}.plot.yAxisIndex`,control:e,render:c=>{var{field:f}=c,g=f,{value:s,onChange:d}=g,p=Z(g,["value","onChange"]);var m;return t(a.Select,j(C({label:"Y Axis",data:i,disabled:i.length===0},p),{value:(m=s==null?void 0:s.toString())!=null?m:"",onChange:w=>{if(!w){d(0);return}d(Number(w))},sx:{flex:1}}))}})]}),v(a.Group,{direction:"row",grow:!0,noWrap:!0,children:[t(F.Controller,{name:`regressions.${n}.transform.config.method`,control:e,render:({field:s})=>t(a.Select,C({label:"Method",data:di,sx:{flex:1}},s))}),u==="polynomial"&&t(F.Controller,{name:`regressions.${n}.transform.config.order`,control:e,render:({field:s})=>t(a.NumberInput,C({label:"Order",sx:{flex:1}},s))})]}),v(a.Group,{direction:"column",grow:!0,spacing:4,children:[t(a.Text,{size:"sm",children:"Color"}),t(F.Controller,{name:`regressions.${n}.plot.color`,control:e,render:({field:s})=>t(qe,C({},s))})]}),t(a.ActionIcon,{color:"red",variant:"hover",onClick:()=>o(n),sx:{position:"absolute",top:15,right:5},children:t(_.Trash,{size:16})})]},n)}function fi({control:e,watch:r,getValues:n,data:o}){const{fields:i,append:l,remove:u}=F.useFieldArray({control:e,name:"regressions"}),s=r("regressions"),d=i.map((f,g)=>C(C({},f),s[g])),p=x.default.useMemo(()=>n().y_axes.map(({name:f},g)=>({label:f,value:g.toString()})),[n]),c=()=>l({transform:{type:"ecStat:regression",config:{method:"linear",order:1,formulaOn:"end"}},name:"",y_axis_data_key:"",plot:{type:"line",yAxisIndex:0,color:"#666666"}});return v(a.Group,{direction:"column",grow:!0,children:[d.map((f,g)=>t(ci,{regressionItem:f,control:e,index:g,remove:u,yAxisOptions:p,data:o})),t(a.Group,{position:"center",mt:"xs",children:t(a.Button,{onClick:c,children:"Add a Regression Line"})})]})}const pi=[{label:"None",value:"none"},{label:"Sum",value:"sum"},{label:"Mean",value:"mean"},{label:"Median",value:"median"},{label:"Max",value:"max"},{label:"Min",value:"min"}];function mi({label:e,value:r,onChange:n},o){return t(a.Select,{ref:o,label:e,data:pi,value:r,onChange:n})}const hi=x.default.forwardRef(mi);function gi({label:e,value:r,onChange:n},o){const[i,l]=x.default.useState(Array.isArray(r)?[...r]:[]),u=x.default.useCallback(()=>{l(g=>[...g,""])},[l]),s=x.default.useCallback(g=>{l(m=>(m.splice(g,1),[...m]))},[l]),d=x.default.useMemo(()=>!U.default.isEqual(i,r),[i,r]),p=()=>{n(i.map(g=>g.toString()))},c=a.useMantineTheme(),f=x.default.useMemo(()=>Object.entries(c.colors).map(([g,m])=>m[6]),[c]);return v(xe,{children:[v(a.Group,{position:"left",ref:o,children:[t(a.Text,{children:e}),t(a.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!d,onClick:p,children:t(_.DeviceFloppy,{size:20})})]}),v(a.Group,{children:[i.map((g,m)=>t(a.ColorInput,{value:g,onChange:w=>{l(h=>(h.splice(m,1,w),[...h]))},swatches:f,rightSection:t(a.ActionIcon,{onClick:()=>s(m),color:"red",children:t(_.Trash,{size:14})}),sx:{width:"45%"}})),t(a.ActionIcon,{onClick:u,color:"blue",variant:"outline",children:t(_.PlaylistAdd,{size:20})})]})]})}const xi=x.default.forwardRef(gi),$e=[{label:"initial",value:0},{label:"500",value:25},{label:"700",value:50},{label:"semibold",value:75},{label:"bold",value:100}];function vi({label:e,value:r,onChange:n},o){var u,s;const[i,l]=x.default.useState((s=(u=$e.find(d=>d.label===r))==null?void 0:u.value)!=null?s:$e[0].value);return x.default.useEffect(()=>{const d=$e.find(p=>p.value===i);d&&n(d.label)},[i]),v(a.Group,{direction:"column",grow:!0,spacing:0,mt:"sm",mb:"lg",children:[t(a.Text,{size:"sm",children:e}),t(a.Slider,{label:null,marks:$e,value:i,onChange:l,step:25,placeholder:"Pick a font size",ref:o})]})}const an=x.default.forwardRef(vi);function bi({label:e,value:r,onChange:n},o){const[i,l]=x.default.useState(Array.isArray(r)?[...r]:[]),u=x.default.useCallback(()=>{l(c=>[...c,""])},[l]),s=x.default.useCallback(c=>{l(f=>(f.splice(c,1),[...f]))},[l]),d=x.default.useMemo(()=>!U.default.isEqual(i,r),[i,r]),p=()=>{n(i.map(c=>c.toString()))};return v(xe,{children:[v(a.Group,{position:"left",ref:o,children:[t(a.Text,{children:e}),t(a.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!d,onClick:p,children:t(_.DeviceFloppy,{size:20})})]}),v(a.Group,{children:[i.map((c,f)=>t(a.TextInput,{value:c,onChange:g=>{const m=g.currentTarget.value;l(w=>(w.splice(f,1,m),[...w]))},rightSection:t(a.ActionIcon,{onClick:()=>s(f),color:"red",children:t(_.Trash,{size:14})}),sx:{width:"45%"}})),t(a.ActionIcon,{onClick:u,color:"blue",variant:"outline",children:t(_.PlaylistAdd,{size:20})})]})]})}const yi=x.default.forwardRef(bi);function ln(){return{name:H.randomId(),size:"20px",weight:"bold",color:{type:"static",staticColor:"blue"},data_field:"",aggregation:"none",formatter:{output:"number",mantissa:0}}}const at=x.default.forwardRef(function(l,i){var u=l,{value:r,onChange:n}=u,o=Z(u,["value","onChange"]);return t(a.TextInput,C({ref:i,value:r,onChange:n},o))});function sn({value:e,onChange:r,data:n}){const o=e.color.type,i=(l,u)=>{const s=U.default.cloneDeep(e);U.default.set(s,l,u),r(s)};return v(a.Box,{px:"sm",py:"md",children:[t(a.Text,{weight:"bold",pb:0,children:e.name}),t(a.Divider,{my:"xs",label:"Data",labelPosition:"center"}),v(a.Group,{direction:"row",grow:!0,noWrap:!0,children:[t(a.TextInput,{label:"Name",required:!0,value:e.name,onChange:l=>i("name",l.currentTarget.value)}),t(ne,{label:"Data Field",required:!0,data:n,value:e.data_field,onChange:l=>i("data_field",l)}),t(hi,{label:"Aggregation",value:e.aggregation,onChange:l=>i("aggregation",l)})]}),t(on,{value:e.formatter,onChange:l=>i("formatter",l)}),t(a.Divider,{my:"xs",label:"Typography",labelPosition:"center"}),t(a.Group,{direction:"column",grow:!0,children:t(a.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",sx:{flex:1},value:e.size,onChange:l=>i("size",l.currentTarget.value)})}),t(a.Group,{position:"apart",grow:!0,sx:{"> *":{flexGrow:1,maxWidth:"100%"}},children:t(an,{label:"Font Weight",value:e.weight,onChange:l=>i("weight",l)})}),t(a.Divider,{my:"xs",label:"Style",labelPosition:"center"}),v(a.Group,{direction:"column",grow:!0,children:[t(a.Select,{label:"Color Type",data:[{label:"Static Color",value:"static"},{label:"Continuous Color",value:"continuous"}],value:e.color.type,onChange:l=>i("color.type",l)}),o==="static"&&t(qe,{value:e.color.staticColor,onChange:l=>i("color.staticColor",l)}),o==="continuous"&&v(xe,{children:[t(yi,{label:"Value Range",value:e.color.valueRange,onChange:l=>i("color.valueRange",l)}),t(xi,{label:"Color Range",value:e.color.colorRange,onChange:l=>i("color.colorRange",l)})]})]})]})}function Ci({control:e,index:r,remove:n,data:o}){return v(a.Group,{direction:"column",grow:!0,my:"sm",p:0,sx:{border:"1px solid #eee",borderTopColor:"#333",borderTopWidth:2,position:"relative"},children:[t(F.Controller,{name:`stats.variables.${r}`,control:e,render:({field:i})=>t(sn,C({data:o},i))}),t(a.ActionIcon,{color:"red",variant:"hover",onClick:()=>n(r),sx:{position:"absolute",top:15,right:5},children:t(_.Trash,{size:16})})]},r)}function Si({control:e,watch:r,data:n}){const{fields:o,append:i,remove:l}=F.useFieldArray({control:e,name:"stats.variables"});r("stats.templates");const u=r("stats.variables"),s=o.map((p,c)=>C(C({},p),u[c])),d=()=>i(ln());return v(a.Group,{direction:"column",grow:!0,children:[v(a.Group,{direction:"column",grow:!0,noWrap:!0,spacing:0,children:[t(F.Controller,{name:"stats.templates.top",control:e,render:({field:p})=>t(at,C({label:"Template for stats above the chart",py:"md",sx:{flexGrow:1}},p))}),t(F.Controller,{name:"stats.templates.bottom",control:e,render:({field:p})=>t(at,C({label:"Template for stats under the chart",py:"md",sx:{flexGrow:1}},p))})]}),s.map((p,c)=>t(Ci,{control:e,index:c,remove:l,data:n})),t(a.Group,{position:"center",mt:"xs",children:t(a.Button,{onClick:d,children:"Add a Variable"})})]})}function wi(e){function r({type:n,name:o,showSymbol:i,symbolSize:l=5,y_axis_data_key:u="value",yAxisIndex:s=0,label_position:d="top",stack:p="1",color:c="black",barWidth:f="30",smooth:g=!1,step:m=!1}){return{type:n,name:o,showSymbol:i,symbolSize:l,y_axis_data_key:u,yAxisIndex:s,label_position:d,stack:p,color:c,barWidth:f,smooth:g,step:m}}return e.map(r)}function Di(e){return e||{templates:{top:"",bottom:""},variables:[]}}function Ti({conf:e,setConf:r,data:n}){const m=e,{series:o,y_axes:i}=m,l=Z(m,["series","y_axes"]),u=x.default.useMemo(()=>{const y=l,{x_axis_name:w="",stats:h}=y,b=Z(y,["x_axis_name","stats"]);return C({series:wi(o!=null?o:[]),x_axis_name:w,y_axes:i!=null?i:[{name:"Y Axis",label_formatter:rn}],stats:Di(h)},b)},[o,l]);x.default.useEffect(()=>{!U.default.isEqual(e,u)&&r(u)},[e,u]);const{control:s,handleSubmit:d,watch:p,getValues:c}=F.useForm({defaultValues:u});p(["x_axis_data_key","x_axis_name"]);const f=c(),g=x.default.useMemo(()=>!U.default.isEqual(f,e),[f,e]);return t(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,children:v("form",{onSubmit:d(r),children:[v(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[t(a.Text,{children:"Chart Config"}),t(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!g,children:t(_.DeviceFloppy,{size:20})})]}),v(a.Accordion,{offsetIcon:!1,multiple:!0,initialState:{0:!0,1:!0},children:[t(a.Accordion.Item,{label:"X Axis",children:v(a.Group,{direction:"row",grow:!0,noWrap:!0,children:[t(F.Controller,{name:"x_axis_data_key",control:s,render:({field:w})=>t(ne,C({label:"X Axis Data Field",required:!0,data:n,sx:{flex:1}},w))}),t(F.Controller,{name:"x_axis_name",control:s,render:({field:w})=>t(a.TextInput,C({label:"X Axis Name",sx:{flex:1}},w))})]})}),t(a.Accordion.Item,{label:"Y Axes",children:t(ui,{control:s,watch:p})}),t(a.Accordion.Item,{label:"Series",children:t(ai,{control:s,watch:p,getValues:c,data:n})}),t(a.Accordion.Item,{label:"Regression Lines",children:t(fi,{control:s,watch:p,getValues:c,data:n})}),t(a.Accordion.Item,{label:"Stats",children:t(Si,{control:s,watch:p,data:n})})]})]})})}function Ei({conf:{label_field:e,value_field:r},setConf:n,data:o}){const i=de.useForm({initialValues:{label_field:e,value_field:r}});return t(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,children:v("form",{onSubmit:i.onSubmit(n),children:[v(a.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[t(a.Text,{children:"Pie Config"}),t(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:t(_.DeviceFloppy,{size:20})})]}),v(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[t(ne,C({label:"Label Field",required:!0,data:o},i.getInputProps("label_field"))),t(ne,C({label:"Value Field",required:!0,data:o},i.getInputProps("value_field")))]})]})})}function Mi({conf:e,setConf:r}){const n=x.default.useMemo(()=>{const{content:p=""}=e;return{content:p}},[e]);x.default.useEffect(()=>{!U.default.isEqual(e,n)&&r(n)},[e,n]);const{control:o,handleSubmit:i,watch:l,getValues:u}=F.useForm({defaultValues:n});l("content");const s=u(),d=x.default.useMemo(()=>!U.default.isEqual(s,e),[s,e]);return t(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,children:v("form",{onSubmit:i(r),children:[v(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[t(a.Text,{children:"Content"}),t(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!d,children:t(_.DeviceFloppy,{size:20})})]}),t(F.Controller,{name:"content",control:o,render:({field:p})=>t(Qe.default,C({sx:{flex:1}},p))})]})})}function Pi(e){if("variables"in e)return e;const{align:r,size:n,weight:o,color:i,content:{prefix:l="",data_field:u="value",formatter:s={output:"number",mantissa:0},postfix:d=""}={}}=e;return{align:r,template:`${l} \${value} ${d}`,variables:[{name:"value",data_field:u,aggregation:"none",formatter:s,color:i,weight:o,size:n}]}}function Ai({control:e,index:r,remove:n,data:o}){return v(a.Group,{direction:"column",grow:!0,my:"sm",p:0,sx:{border:"1px solid #eee",borderTopColor:"#333",borderTopWidth:2,position:"relative"},children:[t(F.Controller,{name:`variables.${r}`,control:e,render:({field:i})=>t(sn,C({data:o},i))}),t(a.ActionIcon,{color:"red",variant:"hover",onClick:()=>n(r),sx:{position:"absolute",top:15,right:5},children:t(_.Trash,{size:16})})]},r)}function Ii({control:e,watch:r,data:n}){const{fields:o,append:i,remove:l}=F.useFieldArray({control:e,name:"variables"}),u=r("variables"),s=o.map((p,c)=>C(C({},p),u[c])),d=()=>i(ln());return v(a.Group,{direction:"column",grow:!0,children:[s.map((p,c)=>t(Ai,{control:e,index:c,remove:l,data:n})),t(a.Group,{position:"center",mt:"xs",children:t(a.Button,{onClick:d,children:"Add a Variable"})})]})}function Gi(){return{align:"center",template:"The variable ${value} is defined in Variables section",variables:[{name:"value",size:"20px",weight:"bold",color:{type:"static",staticColor:"blue"},data_field:"",aggregation:"none",formatter:{output:"number",mantissa:0}}]}}function zi({conf:e,setConf:r,data:n}){const o=x.default.useMemo(()=>{const{align:c,template:f="",variables:g=[]}=Pi(e);return c?{variables:g,template:f,align:c}:Gi()},[e]);x.default.useEffect(()=>{!U.default.isEqual(e,o)&&r(o)},[e,o]);const{control:i,handleSubmit:l,watch:u,getValues:s}=F.useForm({defaultValues:o});u(["variables","template"]);const d=s(),p=x.default.useMemo(()=>!U.default.isEqual(d,e),[d,e]);return t(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,noWrap:!0,children:v("form",{onSubmit:l(r),children:[v(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[t(a.Text,{weight:500,children:"Stats Configurations"}),t(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!p,children:t(_.DeviceFloppy,{size:20})})]}),t(F.Controller,{name:"template",control:i,render:({field:c})=>t(at,C({label:"Template",py:"md",sx:{flexGrow:1}},c))}),t(a.Text,{pb:"sm",pt:"md",size:"sm",children:"Variables"}),t(Ii,{control:i,watch:u,data:n})]})})}function Li({conf:{label_field:e,value_field:r},setConf:n,data:o}){const i=de.useForm({initialValues:{label_field:e,value_field:r}});return t(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,children:v("form",{onSubmit:i.onSubmit(n),children:[v(a.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[t(a.Text,{children:"Sunburst Config"}),t(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:t(_.DeviceFloppy,{size:20})})]}),v(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[t(ne,C({label:"Label Field",required:!0,data:o},i.getInputProps("label_field"))),t(ne,C({label:"Value Field",required:!0,data:o},i.getInputProps("value_field")))]})]})})}const Oi=Object.values(be).map(e=>({label:e,value:e}));function Ni({label:e,value:r,onChange:n,sx:o}){return t(a.Select,{label:e,data:Oi,value:r,onChange:n,sx:o})}function _i(i){var l=i,{conf:u}=l,s=u,{columns:e}=s,r=Z(s,["columns"]),{setConf:n,data:o}=l;const d=de.useForm({initialValues:C({id_field:"id",use_raw_columns:!0,columns:de.formList(e!=null?e:[]),fontSize:"sm",horizontalSpacing:"sm",verticalSpacing:"sm",striped:!1,highlightOnHover:!1},r)}),p=()=>d.addListItem("columns",{label:H.randomId(),value_field:"value",value_type:be.string});return t(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,children:v("form",{onSubmit:d.onSubmit(n),children:[v(a.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[t(a.Text,{children:"Table Config"}),t(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:t(_.DeviceFloppy,{size:20})})]}),v(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[t(ne,C({label:"ID Field",required:!0,data:o},d.getInputProps("id_field"))),v(a.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:[t(a.TextInput,C({label:"Horizontal Spacing",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1}},d.getInputProps("horizontalSpacing"))),t(a.TextInput,C({label:"Vertical Spacing",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1}},d.getInputProps("verticalSpacing")))]}),t(a.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:t(a.TextInput,C({label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1}},d.getInputProps("fontSize")))}),v(a.Group,{direction:"column",grow:!0,children:[t(a.Text,{children:"Other"}),v(a.Group,{position:"apart",grow:!0,children:[t(a.Switch,C({label:"Striped"},d.getInputProps("striped",{type:"checkbox"}))),t(a.Switch,C({label:"Highlight on hover"},d.getInputProps("highlightOnHover",{type:"checkbox"})))]})]})]}),v(a.Group,{direction:"column",mt:"xs",spacing:"xs",grow:!0,p:"md",mb:"xl",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[t(a.Switch,C({label:"Use Original Data Columns"},d.getInputProps("use_raw_columns",{type:"checkbox"}))),!d.values.use_raw_columns&&v(a.Group,{direction:"column",grow:!0,children:[t(a.Text,{mt:"xl",mb:0,children:"Custom Columns"}),d.values.columns.map((c,f)=>v(a.Group,{direction:"column",grow:!0,my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[v(a.Group,{position:"apart",grow:!0,children:[t(a.TextInput,C({label:"Label",required:!0,sx:{flex:1}},d.getListInputProps("columns",f,"label"))),t(ne,C({label:"Value Field",required:!0,data:o},d.getListInputProps("columns",f,"value_field"))),t(Ni,C({label:"Value Type",sx:{flex:1}},d.getListInputProps("columns",f,"value_type")))]}),t(a.ActionIcon,{color:"red",variant:"hover",onClick:()=>d.removeListItem("columns",f),sx:{position:"absolute",top:15,right:5},children:t(_.Trash,{size:16})})]},f)),t(a.Group,{position:"center",mt:"xs",children:t(a.Button,{onClick:p,children:"Add a Column"})})]})]}),t(a.Text,{weight:500,mb:"md",children:"Current Configuration:"}),t(se.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(d.values,null,2)})]})})}const un=[{align:"center",size:"xl",weight:"bold",color:"black",template:"Time: ${new Date().toISOString()}"},{align:"center",size:"md",weight:"bold",color:"red",template:"Platform: ${navigator.userAgentData.platform}."}];function Fi({conf:e,setConf:r}){var i;const n=de.useForm({initialValues:{paragraphs:de.formList((i=e.paragraphs)!=null?i:un)}}),o=()=>n.addListItem("paragraphs",j(C({},un[0]),{template:H.randomId()}));return t(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,children:v("form",{onSubmit:n.onSubmit(r),children:[n.values.paragraphs.length===0&&t(a.Text,{color:"dimmed",align:"center",children:"Empty"}),v(a.Group,{position:"apart",mb:"xs",sx:{" + .mantine-Group-root":{marginTop:0}},children:[t(a.Text,{children:"Paragraphs"}),t(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:t(_.DeviceFloppy,{size:20})})]}),n.values.paragraphs.map((l,u)=>v(a.Group,{direction:"column",grow:!0,my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[t(a.TextInput,C({placeholder:"Time: ${new Date().toISOString()}",label:"Content Template",required:!0,sx:{flex:1}},n.getListInputProps("paragraphs",u,"template"))),v(a.Group,{direction:"column",grow:!0,children:[t(a.Text,{children:"Color"}),t(qe,C({},n.getListInputProps("paragraphs",u,"color")))]}),t(a.Group,{direction:"column",grow:!0,children:t(a.TextInput,C({label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",sx:{flex:1}},n.getListInputProps("paragraphs",u,"size")))}),t(a.Group,{position:"apart",grow:!0,sx:{"> *":{flexGrow:1,maxWidth:"100%"}},children:t(an,C({label:"Font Weight"},n.getListInputProps("paragraphs",u,"weight")))}),t(a.ActionIcon,{color:"red",variant:"hover",onClick:()=>n.removeListItem("paragraphs",u),sx:{position:"absolute",top:15,right:5},children:t(_.Trash,{size:16})})]},u)),t(a.Group,{position:"center",mt:"md",children:t(a.Button,{onClick:o,children:"Add a Paragraph"})}),t(a.Text,{size:"sm",weight:500,mt:"md",children:"Current Configuration:"}),t(se.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(n.values,null,2)})]})})}const lt=[{value:"text",label:"Text",Panel:Fi},{value:"stats",label:"Stats",Panel:zi},{value:"rich-text",label:"Rich Text",Panel:Mi},{value:"table",label:"Table",Panel:_i},{value:"sunburst",label:"Sunburst",Panel:Li},{value:"bar-3d",label:"Bar Chart (3D)",Panel:Jr},{value:"cartesian",label:"Cartesian Chart",Panel:Ti},{value:"pie",label:"Pie Chart",Panel:Ei}];function Ri(){const{data:e,viz:r,setViz:n}=x.default.useContext(ae),[o,i]=H.useInputState(r.type),l=r.type!==o,u=x.default.useCallback(()=>{!l||n(c=>j(C({},c),{type:o}))},[l,o]),s=c=>{n(f=>j(C({},f),{conf:c}))},d=c=>{try{s(JSON.parse(c))}catch(f){console.error(f)}},p=x.default.useMemo(()=>{var c;return(c=lt.find(f=>f.value===o))==null?void 0:c.Panel},[o,lt]);return v(xe,{children:[t(a.Select,{label:"Visualization",value:o,onChange:i,data:lt,rightSection:t(a.ActionIcon,{disabled:!l,onClick:u,children:t(_.DeviceFloppy,{size:20})})}),p&&t(p,{conf:r.conf,setConf:s,data:e}),!p&&t(a.JsonInput,{minRows:20,label:"Config",value:JSON.stringify(r.conf,null,2),onChange:d})]})}function Bi({}){return v(a.Group,{direction:"row",grow:!0,noWrap:!0,align:"stretch",sx:{height:"100%"},children:[t(a.Group,{grow:!0,direction:"column",noWrap:!0,sx:{width:"40%",flexShrink:0,flexGrow:0},children:t(Ri,{})}),t(a.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:t(Yr,{})})]})}function qi({opened:e,close:r}){const{freezeLayout:n}=x.default.useContext(ge),{data:o,loading:i,viz:l,title:u}=x.default.useContext(ae);return x.default.useEffect(()=>{n(e)},[e]),t(a.Modal,{size:"96vw",overflow:"inside",opened:e,onClose:r,title:u,trapFocus:!0,onDragStart:s=>{s.stopPropagation()},children:t(a.AppShell,{sx:{height:"90vh",maxHeight:"calc(100vh - 185px)",".mantine-AppShell-body":{height:"100%"},main:{height:"100%",width:"100%"}},padding:"md",children:v(a.Tabs,{initialTab:2,children:[v(a.Tabs.Tab,{label:"Data",children:[t(a.LoadingOverlay,{visible:i,exitTransitionDuration:0}),t(er,{})]}),t(a.Tabs.Tab,{label:"Panel",children:t(Hn,{})}),t(a.Tabs.Tab,{label:"Visualization",children:t(Bi,{})})]})})})}var xo="";function $i({}){const e=St(),[r,n]=x.default.useState(!1),o=()=>n(!0),i=()=>n(!1),{id:l,title:u,refreshData:s}=x.default.useContext(ae),{inEditMode:d}=x.default.useContext(ge),{duplidatePanel:p,removePanelByID:c}=x.default.useContext(Xe),f=x.default.useCallback(()=>{p(l)},[p,l]),g=()=>e.openConfirmModal({title:"Delete this panel?",labels:{confirm:"Confirm",cancel:"Cancel"},onCancel:()=>console.log("Cancel"),onConfirm:()=>c(l)});return v(a.Box,{sx:{position:"relative"},children:[t(a.Box,{sx:{position:"absolute",left:0,top:0,height:28},children:t(zt,{})}),t(a.Group,{grow:!0,position:"center",px:20,className:"panel-title-wrapper",sx:{flexGrow:1},children:v(a.Menu,{control:t(a.Text,{lineClamp:1,weight:"bold",children:u}),placement:"center",children:[t(a.Menu.Item,{onClick:s,icon:t(_.Refresh,{size:14}),children:"Refresh"}),d&&t(a.Menu.Item,{onClick:o,icon:t(_.Settings,{size:14}),children:"Settings"}),t(a.Divider,{}),t(a.Menu.Item,{onClick:f,icon:t(_.Copy,{size:14}),children:"Duplicate"}),t(a.Menu.Item,{color:"red",onClick:g,icon:t(_.Trash,{size:14}),children:"Delete"})]})}),d&&t(qi,{opened:r,close:i})]})}var vo="";function st({viz:e,queryID:r,title:n,description:o,update:i,layout:l,id:u}){const s=x.default.useContext(fe),d=x.default.useContext(le),[p,c]=x.default.useState(n),[f,g]=x.default.useState(o),[m,w]=x.default.useState(r),[h,b]=x.default.useState(e),y=x.default.useMemo(()=>{if(!!m)return d.queries.find(M=>M.id===m)},[m,d.queries]);x.default.useEffect(()=>{i==null||i({id:u,layout:l,title:p,description:f,queryID:m,viz:h})},[p,f,y,h,u,l,m]);const{data:S=[],loading:T,refresh:E}=Ue.useRequest(yt({context:s,definitions:d,title:p,query:y}),{refreshDeps:[s,d,y]}),D=E;return t(ae.Provider,{value:{id:u,data:S,loading:T,title:p,setTitle:c,description:f,setDescription:g,queryID:m,setQueryID:w,viz:h,setViz:b,refreshData:D},children:v(a.Container,{className:"panel-root",children:[t($i,{}),t(nn,{viz:h,data:S,loading:T})]})})}var bo="";const Wi=te.WidthProvider(vt.default);function dn({panels:e,setPanels:r,className:n="layout",rowHeight:o=10,isDraggable:i,isResizable:l}){const u=x.default.useCallback(s=>{const d=new Map;s.forEach(g=>{var m=g,{i:c}=m,f=Z(m,["i"]);d.set(c,f)});const p=e.map(c=>j(C({},c),{layout:d.get(c.id)}));r(p)},[e,r]);return t(Wi,{onLayoutChange:u,className:n,rowHeight:o,isDraggable:i,isResizable:l,children:e.map((c,p)=>{var f=c,{id:s}=f,d=Z(f,["id"]);return t("div",{"data-grid":d.layout,children:t(st,j(C({id:s},d),{update:g=>{r(m=>(m.splice(p,1,g),[...m]))}}))},s)})})}function ut(e,r){return v(a.Text,{sx:{svg:{verticalAlign:"text-bottom"}},children:[e," ",r]})}function Vi({mode:e,setMode:r}){return t(a.SegmentedControl,{value:e,onChange:r,data:[{label:ut(t(_.PlayerPlay,{size:20}),"Use"),value:oe.Use},{label:ut(t(_.Resize,{size:20}),"Layout"),value:oe.Layout},{label:ut(t(_.Paint,{size:20}),"Content"),value:oe.Edit}]})}const Ui=`
|
|
9
|
+
*/var Rn=x.default,Bn=Symbol.for("react.element"),qn=Symbol.for("react.fragment"),$n=Object.prototype.hasOwnProperty,Vn=Rn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Wn={key:!0,ref:!0,__self:!0,__source:!0};function Et(e,r,n){var o,i={},l=null,u=null;n!==void 0&&(l=""+n),r.key!==void 0&&(l=""+r.key),r.ref!==void 0&&(u=r.ref);for(o in r)$n.call(r,o)&&!Wn.hasOwnProperty(o)&&(i[o]=r[o]);if(e&&e.defaultProps)for(o in r=e.defaultProps,r)i[o]===void 0&&(i[o]=r[o]);return{$$typeof:Bn,type:e,key:l,ref:u,props:i,_owner:Vn.current}}Oe.Fragment=qn,Oe.jsx=Et,Oe.jsxs=Et,Le.exports=Oe;const t=Le.exports.jsx,v=Le.exports.jsxs,xe=Le.exports.Fragment;var Un=Object.defineProperty,Qn=Object.defineProperties,kn=Object.getOwnPropertyDescriptors,Ne=Object.getOwnPropertySymbols,Mt=Object.prototype.hasOwnProperty,Pt=Object.prototype.propertyIsEnumerable,At=(e,r,n)=>r in e?Un(e,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[r]=n,_e=(e,r)=>{for(var n in r||(r={}))Mt.call(r,n)&&At(e,n,r[n]);if(Ne)for(var n of Ne(r))Pt.call(r,n)&&At(e,n,r[n]);return e},It=(e,r)=>Qn(e,kn(r)),Ye=(e,r)=>{var n={};for(var o in e)Mt.call(e,o)&&r.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&Ne)for(var o of Ne(e))r.indexOf(o)<0&&Pt.call(e,o)&&(n[o]=e[o]);return n};function jn(e){if(!e)return{confirmProps:{},modalProps:{}};const r=e,{id:n,children:o,onCancel:i,onConfirm:l,closeOnConfirm:u,closeOnCancel:s,cancelProps:d,confirmProps:p,groupProps:c,labels:f}=r,g=Ye(r,["id","children","onCancel","onConfirm","closeOnConfirm","closeOnCancel","cancelProps","confirmProps","groupProps","labels"]);return{confirmProps:{id:n,children:o,onCancel:i,onConfirm:l,closeOnConfirm:u,closeOnCancel:s,cancelProps:d,confirmProps:p,groupProps:c,labels:f},modalProps:_e({id:n},g)}}function Gt({children:e,modalProps:r,labels:n,modals:o}){const[i,l]=U.useReducer(_n,{modals:[],current:null}),u=h=>{i.modals.forEach(b=>{var y,S,T,E;b.type==="confirm"&&h&&((S=(y=b.props)==null?void 0:y.onCancel)==null||S.call(y)),(E=(T=b.props)==null?void 0:T.onClose)==null||E.call(T)}),l({type:"CLOSE_ALL"})},s=h=>{const b=h.id||H.randomId();return l({type:"OPEN",payload:{id:b,type:"content",props:h}}),b},d=h=>{const b=h.id||H.randomId();return l({type:"OPEN",payload:{id:b,type:"confirm",props:h}}),b},p=(h,b)=>{const y=b.id||H.randomId();return l({type:"OPEN",payload:{id:y,type:"context",props:b,ctx:h}}),y},c=(h,b)=>{var y,S,T,E;if(i.modals.length<=1){u(b);return}const D=i.modals.find(M=>M.id===h);(D==null?void 0:D.type)==="confirm"&&b&&((S=(y=D.props)==null?void 0:y.onCancel)==null||S.call(y)),(E=(T=D==null?void 0:D.props)==null?void 0:T.onClose)==null||E.call(T),l({type:"CLOSE",payload:D.id})},f={modals:i.modals,openModal:s,openConfirmModal:d,openContextModal:p,closeModal:c,closeAll:u},g=()=>{var h;switch((h=i.current)==null?void 0:h.type){case"context":{const b=i.current.props,{innerProps:y}=b,S=Ye(b,["innerProps"]),T=o[i.current.ctx];return{modalProps:S,content:t(T,{innerProps:y,context:f,id:i.current.id})}}case"confirm":{const{modalProps:b,confirmProps:y}=jn(i.current.props);return{modalProps:b,content:t(Nn,C({},It(_e({},y),{id:i.current.id,labels:i.current.props.labels||n})))}}case"content":{const b=i.current.props,{children:y}=b;return{modalProps:Ye(b,["children"]),content:t(xe,{children:y})}}default:return{modalProps:{},content:null}}},{modalProps:m,content:w}=g();return v(je.Provider,{value:f,children:[t(a.Modal,k(C({},It(_e(_e({},r),m),{opened:i.modals.length>0,onClose:()=>c(i.current.id)})),{children:w})),e]})}const Kn={addPanel:W.default.noop,duplidatePanel:W.default.noop,removePanelByID:W.default.noop},Xe=x.default.createContext(Kn),Yn={sqlSnippets:[],setSQLSnippets:()=>{},queries:[],setQueries:()=>{}},se=x.default.createContext(Yn);function zt({position:e="bottom",trigger:r="hover"}){const{freezeLayout:n}=x.default.useContext(fe),[o,i]=x.default.useState(!1),{description:l}=x.default.useContext(le);if(x.default.useEffect(()=>{n(o)},[o]),!l||l==="<p><br></p>")return null;const u=r==="click"?t(a.Tooltip,{label:"Click to see description",openDelay:500,children:t(_.InfoCircle,{size:20,onClick:()=>i(s=>!s),style:{verticalAlign:"baseline",cursor:"pointer"}})}):t(_.InfoCircle,{size:20,onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),style:{verticalAlign:"baseline",cursor:"pointer"}});return t(a.Popover,{opened:o,onClose:()=>i(!1),withCloseButton:r==="click",withArrow:!0,trapFocus:!0,closeOnEscape:!1,placement:"center",position:e,target:u,width:"40vw",children:t(Qe.default,{readOnly:!0,value:l,onChange:W.default.noop,sx:{border:"none"}})})}function Xn(){const{description:e,setDescription:r}=x.default.useContext(le),[n,o]=x.default.useState(e),i=e!==n,l=x.default.useCallback(()=>{!i||r(n)},[i,n]);return v(a.Group,{direction:"column",sx:{flexGrow:1},children:[v(a.Group,{align:"end",children:[t(a.Text,{children:"Description"}),t(a.ActionIcon,{variant:"hover",color:"blue",disabled:!i,onClick:l,children:t(_.DeviceFloppy,{size:20})})]}),t(xt.RichTextEditor,{value:n,onChange:o,sx:{flexGrow:1},sticky:!0,p:"0"})]})}class Je extends x.default.Component{constructor(r){super(r),this.state={error:null}}componentDidCatch(r){this.setState({error:r})}render(){var r;if(this.state.error){const n=()=>{this.setState({error:null})};return v(a.Box,{children:[t(a.Text,{size:"xs",children:(r=this.state.error)==null?void 0:r.message}),t(a.Button,{variant:"subtle",size:"xs",mx:"auto",compact:!0,sx:{display:"block"},onClick:n,children:"Retry"})]})}return this.props.children}}function Jn(){const{title:e}=x.default.useContext(le);return t(Je,{children:v(a.Group,{direction:"column",grow:!0,noWrap:!0,mx:"auto",mt:"xl",p:"5px",spacing:5,sx:{width:"600px",height:"450px",background:"transparent",borderRadius:"5px",boxShadow:"0px 0px 10px 0px rgba(0,0,0,.2)"},children:[v(a.Group,{position:"apart",noWrap:!0,sx:{flexGrow:0,flexShrink:0},children:[t(a.Group,{children:t(zt,{position:"bottom",trigger:"hover"})}),t(a.Group,{grow:!0,position:"center",children:t(a.Text,{lineClamp:1,weight:"bold",children:e})}),t(a.Group,{position:"right",spacing:0,sx:{height:"28px"}})]}),t(a.Group,{sx:{background:"#eee",flexGrow:1}})]})})}function Zn(){const{title:e,setTitle:r}=x.default.useContext(le),[n,o]=H.useInputState(e),i=e!==n,l=x.default.useCallback(()=>{!i||r(n)},[i,n]);return t(a.TextInput,{value:n,onChange:o,label:v(a.Group,{align:"end",children:[t(a.Text,{children:"Panel Title"}),t(a.ActionIcon,{variant:"hover",color:"blue",disabled:!i,onClick:l,children:t(_.DeviceFloppy,{size:20})})]})})}function Hn({}){return v(a.Group,{direction:"row",grow:!0,noWrap:!0,align:"stretch",sx:{height:"100%"},children:[v(a.Group,{grow:!0,direction:"column",sx:{width:"40%",flexShrink:0,flexGrow:0,height:"100%"},children:[t(Zn,{}),t(Xn,{})]}),t(a.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:t(Jn,{})})]})}function Lt({id:e}){const r=x.default.useContext(se),n=x.default.useContext(pe),o=x.default.useMemo(()=>r.queries.find(s=>s.id===e),[r.queries,e]),{data:i=[],loading:l,refresh:u}=Ue.useRequest(yt({context:n,definitions:r,title:e,query:o}),{refreshDeps:[n,r,o]});return l?t(a.LoadingOverlay,{visible:l,exitTransitionDuration:0}):i.length===0?t(a.Table,{}):v(a.Group,{my:"xl",direction:"column",grow:!0,sx:{border:"1px solid #eee"},children:[v(a.Group,{position:"apart",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[v(a.Group,{position:"left",children:[t(a.Text,{weight:500,children:"Preview Data"}),i.length>10&&v(a.Text,{size:"sm",color:"gray",children:["Showing 10 rows of ",i.length]})]}),t(a.ActionIcon,{mr:15,variant:"hover",color:"blue",disabled:l,onClick:u,children:t(_.Refresh,{size:15})})]}),v(a.Table,{children:[t("thead",{children:t("tr",{children:Object.keys(i==null?void 0:i[0]).map(s=>t("th",{children:t(a.Text,{weight:700,color:"#000",children:s})},s))})}),t("tbody",{children:i.slice(0,10).map((s,d)=>t("tr",{children:Object.values(s).map((p,c)=>t("td",{children:t(a.Group,{sx:{"&, .mantine-Text-root":{fontFamily:"monospace"}},children:t(a.Text,{children:p})})},`${p}--${c}`))},`row-${d}`))})]})]})}function er({}){const{queries:e}=x.default.useContext(se),{queryID:r,setQueryID:n,data:o,loading:i}=x.default.useContext(le),l=x.default.useMemo(()=>e.map(u=>({value:u.id,label:u.id})),[e]);return v(a.Group,{direction:"column",grow:!0,noWrap:!0,children:[v(a.Group,{position:"left",sx:{maxWidth:"600px",alignItems:"baseline"},children:[t(a.Text,{children:"Select a Query"}),t(a.Select,{data:l,value:r,onChange:n,allowDeselect:!1,clearable:!1,sx:{flexGrow:1}})]}),t(Lt,{id:r})]})}ce.use([Ee.SunburstChart,Ge.CanvasRenderer]);const tr={tooltip:{show:!0},series:{type:"sunburst",radius:[0,"90%"],emphasis:{focus:"ancestor"}}};function nr({conf:e,data:r,width:n,height:o}){const f=e,{label_field:i="name",value_field:l="value"}=f,u=Z(f,["label_field","value_field"]),s=x.default.useMemo(()=>r.map(g=>({name:g[i],value:Number(g[l])})),[r,i,l]),d=x.default.useMemo(()=>{var g,m;return(m=(g=W.default.maxBy(s,w=>w.value))==null?void 0:g.value)!=null?m:1},[s]),p=x.default.useMemo(()=>({series:{label:{formatter:({name:g,value:m})=>m/d<.2?" ":g}}}),[d]),c=W.default.merge({},tr,p,u,{series:{data:s}});return t(ze.default,{echarts:ce,option:c,style:{width:n,height:o}})}var Ot={exports:{}};(function(e,r){(function(o,i){e.exports=i()})(Fn,function(){return function(n){var o={};function i(l){if(o[l])return o[l].exports;var u=o[l]={exports:{},id:l,loaded:!1};return n[l].call(u.exports,u,u.exports,i),u.loaded=!0,u.exports}return i.m=n,i.c=o,i.p="",i(0)}([function(n,o,i){var l;l=function(u){return{clustering:i(1),regression:i(5),statistics:i(6),histogram:i(15),transform:{regression:i(18),histogram:i(21),clustering:i(22)}}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(2),d=s.dataPreprocess,p=s.normalizeDimensions,c=i(3),h=i(4),f=c.size,g=c.sumOfColumn,m=c.sum,w=c.zeros,h=i(4),b=h.isNumber,y=Math.pow,S={SINGLE:"single",MULTIPLE:"multiple"};function T(P,I,L){for(var q=w(P.length,2),B=A(I,$(P,L.dimensions)),O=!0,V,R,Q,j;O;){O=!1;for(var N=0;N<P.length;N++){V=1/0,R=-1;for(var J=0;J<I;J++)Q=G(P[N],B[J],L),Q<V&&(V=Q,R=J);q[N][0]!==R&&(O=!0),q[N][0]=R,q[N][1]=V}for(var N=0;N<I;N++){j=[];for(var J=0;J<q.length;J++)q[J][0]===N&&j.push(P[J]);B[N]=E(j,L)}}var we={centroids:B,clusterAssigned:q};return we}function E(P,I){for(var L=[],q,B,O=0;O<I.dimensions.length;O++){var V=I.dimensions[O];q=0;for(var R=0;R<P.length;R++)q+=P[R][V];B=q/P.length,L.push(B)}return L}function D(P,I,L){var q=(b(I)?{clusterCount:I,stepByStep:L}:I)||{clusterCount:2},B=q.clusterCount;if(B<2)return;var O=Y(P,q),V=O.outputType===S.SINGLE,R=d(P,{dimensions:O.dimensions}),Q=w(R.length,2),j,N,J;function we(ee,he){Q[ee][1]=he}function re(ee){return Q[ee][1]}if(V){j=[];var cn=O.outputClusterIndexDimension;N=function(ee,he){j[ee][cn]=he},J=function(ee){return j[ee][cn]};for(var ue=0;ue<R.length;ue++)j.push(R[ue].slice()),we(ue,0),N(ue,0)}else N=function(ee,he){Q[ee][0]=he},J=function(ee){return Q[ee][0]};for(var fn=E(R,O),Te=[fn],ue=0;ue<R.length;ue++){var co=G(R[ue],fn,O);we(ue,co)}var dt,ct,ft,Ve,pt,mt,pn=1,me={data:j,centroids:Te,isEnd:!1};V||(me.clusterAssment=Q);function mn(){if(pn<B){dt=1/0;for(var ee,he,ge,ie=0;ie<Te.length;ie++){ct=[],ft=[];for(var K=0;K<R.length;K++)J(K)===ie?ct.push(R[K]):ft.push(re(K));Ve=T(ct,2,O),pt=g(Ve.clusterAssigned,1),mt=m(ft),pt+mt<dt&&(dt=mt+pt,ee=ie,he=Ve.centroids,ge=Ve.clusterAssigned)}for(var K=0;K<ge.length;K++)ge[K][0]===0?ge[K][0]=ee:ge[K][0]===1&&(ge[K][0]=Te.length);Te[ee]=he[0],Te.push(he[1]);for(var K=0,ie=0;K<R.length&&ie<ge.length;K++)J(K)===ee&&(N(K,ge[ie][0]),we(K,ge[ie++][1]));var ht=[];if(!V){for(var K=0;K<Te.length;K++){ht[K]=[];for(var ie=0;ie<R.length;ie++)J(ie)===K&&ht[K].push(R[ie])}me.pointsInCluster=ht}pn++}else me.isEnd=!0}if(q.stepByStep)me.next=function(){return mn(),M(me,O),me};else for(;mn(),!me.isEnd;);return M(me,O),me}function M(P,I){var L=I.outputCentroidDimensions;if(!(I.outputType!==S.SINGLE||L==null))for(var q=P.data,B=P.centroids,O=0;O<q.length;O++)for(var V=q[O],R=V[I.outputClusterIndexDimension],Q=B[R],j=Math.min(Q.length,L.length),N=0;N<j;N++)V[L[N]]=Q[N]}function A(P,I){for(var L=w(P,I.length),q=0;q<I.length;q++)for(var B=I[q],O=0;O<P;O++)L[O][q]=B.min+B.span*Math.random();return L}function G(P,I,L){for(var q=0,B=L.dimensions,O=L.rawExtents,V=0;V<B.length;V++){var R=O[V].span;if(R){var Q=B[V],j=(P[Q]-I[V])/R;q+=y(j,2)}}return q}function Y(P,I){var L=f(P);if(L.length<1)throw new Error("The input data of clustering should be two-dimension array.");for(var q=L[1],B=[],O=0;O<q;O++)B.push(O);var V=p(I.dimensions,B),R=I.outputType||S.MULTIPLE,Q=I.outputClusterIndexDimension;if(R===S.SINGLE&&!h.isNumber(Q))throw new Error("outputClusterIndexDimension is required as a number.");var j=$(P,V);return{dimensions:V,rawExtents:j,outputType:R,outputClusterIndexDimension:Q,outputCentroidDimensions:I.outputCentroidDimensions}}function $(P,I){for(var L=[],q=I.length,B=0;B<q;B++)L.push({min:1/0,max:-1/0});for(var B=0;B<P.length;B++)for(var O=P[B],V=0;V<q;V++){var R=L[V],Q=O[I[V]];R.min>Q&&(R.min=Q),R.max<Q&&(R.max=Q)}for(var B=0;B<q;B++)L[B].span=L[B].max-L[B].min;return L}return{OutputType:S,hierarchicalKMeans:D}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(3),d=s.isArray,p=s.size,c=i(4),f=c.isNumber;function g(h,b){return typeof h=="number"?[h]:h==null?b:h}function m(h,b){b=b||{};var y=b.dimensions,S={};if(y!=null)for(var T=0;T<y.length;T++)S[y[T]]=!0;var E=b.toOneDimensionArray?y?y[0]:0:null;function D(P){return!y||S.hasOwnProperty(P)}if(!d(h))throw new Error("Invalid data type, you should input an array");var M=[],A=p(h);if(A.length===1)for(var T=0;T<A[0];T++){var G=h[T];f(G)&&M.push(G)}else if(A.length===2)for(var T=0;T<A[0];T++){for(var Y=!0,G=h[T],$=0;$<A[1];$++)D($)&&!f(G[$])&&(Y=!1);Y&&M.push(E!=null?G[E]:G)}return M}function w(h){var b=h.toString(),y=b.indexOf(".");return y<0?0:b.length-1-y}return{normalizeDimensions:g,dataPreprocess:m,getPrecision:w}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=Object.prototype.toString,d=Array.prototype,p=d.map;function c(S){for(var T=[];f(S);)T.push(S.length),S=S[0];return T}function f(S){return s.call(S)==="[object Array]"}function g(S,T){for(var E=[],D=0;D<S;D++){E[D]=[];for(var M=0;M<T;M++)E[D][M]=0}return E}function m(S){for(var T=0,E=0;E<S.length;E++)T+=S[E];return T}function w(S,T){for(var E=0,D=0;D<S.length;D++)E+=S[D][T];return E}function h(S,T){return S>T?1:S<T?-1:S===T?0:NaN}function b(S,T,E,D){for(E==null&&(E=0),D==null&&(D=S.length);E<D;){var M=Math.floor((E+D)/2),A=h(S[M],T);if(A>0)D=M;else if(A<0)E=M+1;else return M+1}return E}function y(S,T,E){if(!!(S&&T)){if(S.map&&S.map===p)return S.map(T,E);for(var D=[],M=0,A=S.length;M<A;M++)D.push(T.call(E,S[M],M,S));return D}}return{size:c,isArray:f,zeros:g,sum:m,sumOfColumn:w,ascending:h,bisect:b,map:y}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){function s(c){return c=c===null?NaN:+c,typeof c=="number"&&!isNaN(c)}function d(c){return isFinite(c)&&c===Math.round(c)}function p(c){if(c===0)return 0;var f=Math.floor(Math.log(c)/Math.LN10);return c/Math.pow(10,f)>=10&&f++,f}return{isNumber:s,isInteger:d,quantityExponent:p}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(2),d=s.dataPreprocess,p=s.normalizeDimensions,c={linear:function(m,w){for(var h=w.dimensions[0],b=w.dimensions[1],y=0,S=0,T=0,E=0,D=m.length,M=0;M<D;M++){var A=m[M];y+=A[h],S+=A[b],T+=A[h]*A[b],E+=A[h]*A[h]}for(var G=(D*T-y*S)/(D*E-y*y),Y=S/D-G*y/D,$=[],P=0;P<m.length;P++){var A=m[P],I=A.slice();I[h]=A[h],I[b]=G*A[h]+Y,$.push(I)}var L="y = "+Math.round(G*100)/100+"x + "+Math.round(Y*100)/100;return{points:$,parameter:{gradient:G,intercept:Y},expression:L}},linearThroughOrigin:function(m,w){for(var h=w.dimensions[0],b=w.dimensions[1],y=0,S=0,T=0;T<m.length;T++){var E=m[T];y+=E[h]*E[h],S+=E[h]*E[b]}for(var D=S/y,M=[],A=0;A<m.length;A++){var E=m[A],G=E.slice();G[h]=E[h],G[b]=E[h]*D,M.push(G)}var Y="y = "+Math.round(D*100)/100+"x";return{points:M,parameter:{gradient:D},expression:Y}},exponential:function(m,w){for(var h=w.dimensions[0],b=w.dimensions[1],y=0,S=0,T=0,E=0,D=0,M=0,A=0;A<m.length;A++){var G=m[A];y+=G[h],S+=G[b],M+=G[h]*G[b],T+=G[h]*G[h]*G[b],E+=G[b]*Math.log(G[b]),D+=G[h]*G[b]*Math.log(G[b])}for(var Y=S*T-M*M,$=Math.pow(Math.E,(T*E-M*D)/Y),P=(S*D-M*E)/Y,I=[],L=0;L<m.length;L++){var G=m[L],q=G.slice();q[h]=G[h],q[b]=$*Math.pow(Math.E,P*G[h]),I.push(q)}var B="y = "+Math.round($*100)/100+"e^("+Math.round(P*100)/100+"x)";return{points:I,parameter:{coefficient:$,index:P},expression:B}},logarithmic:function(m,w){for(var h=w.dimensions[0],b=w.dimensions[1],y=0,S=0,T=0,E=0,D=0;D<m.length;D++){var M=m[D];y+=Math.log(M[h]),S+=M[b]*Math.log(M[h]),T+=M[b],E+=Math.pow(Math.log(M[h]),2)}for(var A=(D*S-T*y)/(D*E-y*y),G=(T-A*y)/D,Y=[],$=0;$<m.length;$++){var M=m[$],P=M.slice();P[h]=M[h],P[b]=A*Math.log(M[h])+G,Y.push(P)}var I="y = "+Math.round(G*100)/100+" + "+Math.round(A*100)/100+"ln(x)";return{points:Y,parameter:{gradient:A,intercept:G},expression:I}},polynomial:function(m,w){var h=w.dimensions[0],b=w.dimensions[1],y=w.order;y==null&&(y=2);for(var S=[],T=[],E=y+1,D=0;D<E;D++){for(var M=0,A=0;A<m.length;A++){var G=m[A];M+=G[b]*Math.pow(G[h],D)}T.push(M);for(var Y=[],$=0;$<E;$++){for(var P=0,I=0;I<m.length;I++)P+=Math.pow(m[I][h],D+$);Y.push(P)}S.push(Y)}S.push(T);for(var L=f(S,E),q=[],D=0;D<m.length;D++){for(var B=0,G=m[D],A=0;A<L.length;A++)B+=L[A]*Math.pow(G[h],A);var O=G.slice();O[h]=G[h],O[b]=B,q.push(O)}for(var V="y = ",D=L.length-1;D>=0;D--)D>1?V+=Math.round(L[D]*Math.pow(10,D+1))/Math.pow(10,D+1)+"x^"+D+" + ":D===1?V+=Math.round(L[D]*100)/100+"x + ":V+=Math.round(L[D]*100)/100;return{points:q,parameter:L,expression:V}}};function f(m,w){for(var h=0;h<m.length-1;h++){for(var b=h,y=h+1;y<m.length-1;y++)Math.abs(m[h][y])>Math.abs(m[h][b])&&(b=y);for(var S=h;S<m.length;S++){var T=m[S][h];m[S][h]=m[S][b],m[S][b]=T}for(var E=h+1;E<m.length-1;E++)for(var D=m.length-1;D>=h;D--)m[D][E]-=m[D][h]/m[h][h]*m[h][E]}for(var M=new Array(w),A=m.length-1,y=m.length-2;y>=0;y--){for(var T=0,h=y+1;h<m.length-1;h++)T+=m[h][y]*M[h];M[y]=(m[A][y]-T)/m[y][y]}return M}var g=function(m,w,h){var b=typeof h=="number"?{order:h}:h||{},y=p(b.dimensions,[0,1]),S=d(w,{dimensions:y}),T=c[m](S,{order:b.order,dimensions:y}),E=y[0];return T.points.sort(function(D,M){return D[E]-M[E]}),T};return g}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s={};return s.max=i(7),s.deviation=i(8),s.mean=i(10),s.median=i(12),s.min=i(14),s.quantile=i(13),s.sampleVariance=i(9),s.sum=i(11),s}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(4),d=s.isNumber;function p(c){for(var f=-1/0,g=0;g<c.length;g++)d(c[g])&&c[g]>f&&(f=c[g]);return f}return p}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(9);return function(d){var p=s(d);return p&&Math.sqrt(p)}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(4),d=s.isNumber,p=i(10);function c(f){var g=f.length;if(!g||g<2)return 0;if(f.length>=2){for(var m=p(f),w=0,h,b=0;b<f.length;b++)d(f[b])&&(h=f[b]-m,w+=h*h);return w/(f.length-1)}}return c}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(11);function d(p){var c=p.length;return c?s(p)/p.length:0}return d}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(4),d=s.isNumber;function p(c){var f=c.length;if(!f)return 0;for(var g=0,m=0;m<f;m++)d(c[m])&&(g+=c[m]);return g}return p}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(13);function d(p){return s(p,.5)}return d}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){return function(s,d){var p=s.length;if(!p)return 0;if(d<=0||p<2)return s[0];if(d>=1)return s[p-1];var c=(p-1)*d,f=Math.floor(c),g=s[f],m=s[f+1];return g+(m-g)*(c-f)}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(4),d=s.isNumber;function p(c){for(var f=1/0,g=0;g<c.length;g++)d(c[g])&&c[g]<f&&(f=c[g]);return f}return p}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(7),d=i(14),p=i(13),c=i(8),f=i(2),g=f.dataPreprocess,m=f.normalizeDimensions,w=i(3),h=w.ascending,b=w.map,y=i(16),S=w.bisect,T=i(17);function E(J,A){for(var G=typeof A=="string"?{method:A}:A||{},Y=G.method==null?D.squareRoot:D[G.method],$=m(G.dimensions),P=g(J,{dimensions:$,toOneDimensionArray:!0}),I=s(P),L=d(P),q=Y(P,L,I),B=T(L,I,q),O=B.step,V=B.toFixedPrecision,R=y(+(Math.ceil(L/O)*O).toFixed(V),+(Math.floor(I/O)*O).toFixed(V),O,V),Q=R.length,j=new Array(Q+1),N=0;N<=Q;N++)j[N]={},j[N].sample=[],j[N].x0=N>0?R[N-1]:R[N]-L===O?L:R[N]-O,j[N].x1=N<Q?R[N]:I-R[N-1]===O?I:R[N-1]+O;for(var N=0;N<P.length;N++)L<=P[N]&&P[N]<=I&&j[S(R,P[N],0,Q)].sample.push(P[N]);var J=b(j,function(re){return[+((re.x0+re.x1)/2).toFixed(V),re.sample.length,re.x0,re.x1,re.x0+" - "+re.x1]}),we=b(j,function(re){return[re.x0,re.x1,re.sample.length]});return{bins:j,data:J,customData:we}}var D={squareRoot:function(M){var A=Math.ceil(Math.sqrt(M.length));return A>50?50:A},scott:function(M,A,G){return Math.ceil((G-A)/(3.5*c(M)*Math.pow(M.length,-1/3)))},freedmanDiaconis:function(M,A,G){return M.sort(h),Math.ceil((G-A)/(2*(p(M,.75)-p(M,.25))*Math.pow(M.length,-1/3)))},sturges:function(M){return Math.ceil(Math.log(M.length)/Math.LN2)+1}};return E}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(2),d=s.getPrecision;return function(p,c,f,g){var m=arguments.length;m<2?(c=p,p=0,f=1):m<3?f=1:m<4?(f=+f,g=d(f)):g=+g;for(var w=Math.ceil(((c-p)/f).toFixed(g)),h=new Array(w+1),b=0;b<w+1;b++)h[b]=+(p+b*f).toFixed(g);return h}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(4);return function(d,p,c){var f=Math.abs(p-d)/c,g=s.quantityExponent(f),m=Math.pow(10,g),w=f/m;w>=Math.sqrt(50)?m*=10:w>=Math.sqrt(10)?m*=5:w>=Math.sqrt(2)&&(m*=2);var h=g<0?-g:0,b=+(p>=d?m:-m).toFixed(h);return{step:b,toFixedPrecision:h}}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(5),d=i(19),p=2;return{type:"ecStat:regression",transform:function(f){var g=f.upstream,m=f.config||{},w=m.method||"linear",h=s(w,g.cloneRawData(),{order:m.order,dimensions:d.normalizeExistingDimensions(f,m.dimensions)}),b=h.points,y=m.formulaOn;y==null&&(y="end");var S;if(y!=="none"){for(var T=0;T<b.length;T++)b[T][p]=y==="start"&&T===0||y==="all"||y==="end"&&T===b.length-1?h.expression:"";S=g.cloneAllDimensionInfo(),S[p]={}}return[{dimensions:S,data:b}]}}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(3),d=i(4),p=i(20);function c(g,m){if(m==null)return;var w=g.upstream;if(s.isArray(m)){for(var h=[],b=0;b<m.length;b++){var y=w.getDimensionInfo(m[b]);S(y,m[b]),h[b]=y.index}return h}else{var y=w.getDimensionInfo(m);return S(y,m),y.index}function S(T,E){if(!T)throw new Error("Can not find dimension by "+E)}}function f(g){if(s.isArray(g)){for(var m=[],w=[],h=0;h<g.length;h++){var b=y(g[h]);m.push(b.name),w.push(b.index)}return{name:m,index:w}}else if(g!=null)return y(g);function y(S){if(d.isNumber(S))return{index:S};if(p.isObject(S)&&d.isNumber(S.index))return S;throw new Error("Illegle new dimensions config. Expect `{ name: string, index: number }`.")}}return{normalizeExistingDimensions:c,normalizeNewDimensions:f}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){function s(p,c){if(Object.assign)Object.assign(p,c);else for(var f in c)c.hasOwnProperty(f)&&(p[f]=c[f]);return p}function d(p){const c=typeof p;return c==="function"||!!p&&c==="object"}return{extend:s,isObject:d}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(15),d=i(19);return{type:"ecStat:histogram",transform:function(c){var f=c.upstream,g=c.config||{},m=s(f.cloneRawData(),{method:g.method,dimensions:d.normalizeExistingDimensions(c,g.dimensions)});return[{dimensions:["MeanOfV0V1","VCount","V0","V1","DisplayableName"],data:m.data},{data:m.customData}]}}}.call(o,i,o,n),l!==void 0&&(n.exports=l)},function(n,o,i){var l;l=function(u){var s=i(1),d=i(4),p=i(19),c=d.isNumber;return{type:"ecStat:clustering",transform:function(g){var m=g.upstream,w=g.config||{},h=w.clusterCount;if(!c(h)||h<=0)throw new Error('config param "clusterCount" need to be specified as an interger greater than 1.');if(h===1)return[{},{data:[]}];var b=p.normalizeNewDimensions(w.outputClusterIndexDimension),y=p.normalizeNewDimensions(w.outputCentroidDimensions);if(b==null)throw new Error("outputClusterIndexDimension is required as a number.");for(var S=s.hierarchicalKMeans(m.cloneRawData(),{clusterCount:h,stepByStep:!1,dimensions:p.normalizeExistingDimensions(g,w.dimensions),outputType:s.OutputType.SINGLE,outputClusterIndexDimension:b.index,outputCentroidDimensions:(y||{}).index}),T=m.cloneAllDimensionInfo(),E=[],D=0;D<T.length;D++){var M=T[D];E.push(M.name)}if(E[b.index]=b.name,y)for(var D=0;D<y.index.length;D++)y.name[D]!=null&&(E[y.index[D]]=y.name[D]);return[{dimensions:E,data:S.data},{data:S.centroids}]}}}.call(o,i,o,n),l!==void 0&&(n.exports=l)}])})})(Ot);var rr=Ot.exports;function ir({regressions:e=[]},r){const n=[],o=[],i=[];return r.length===0?{regressionDataSets:n,regressionSeries:o,regressionXAxes:i}:(e.forEach(({transform:l,plot:u,name:s,y_axis_data_key:d})=>{const p=`x-axis-for-${s}`,c=`dataset-for-${s}--raw`,f=`dataset-for-${s}--transformed`;n.push({id:c,source:r.map((g,m)=>[m,g[d]])}),n.push({transform:l,id:f,fromDatasetId:c}),o.push(k(C({},u),{name:s,datasetId:f,xAxisId:p,showSymbol:!1,tooltip:{show:!1}})),i.push({type:"category",id:p,datasetId:f,show:!1})}),{regressionDataSets:n,regressionSeries:o,regressionXAxes:i})}const or={legend:{show:!0,bottom:0,left:0},tooltip:{trigger:"axis"},xAxis:{type:"category",nameGap:25,nameLocation:"center",nameTextStyle:{fontWeight:"bold"}},grid:{top:0,left:15,right:15,bottom:30,containLabel:!0}};function ar(e,r){var p;const n=e.y_axes.reduce((c,{label_formatter:f},g)=>(c[g]=function(w){const h=typeof w=="object"?w.value:w;if(!f)return h;try{return Me.default(h).format(f)}catch(b){return console.error(b),h}},c),{default:({value:c})=>c}),o=e.series.reduce((c,{yAxisIndex:f,name:g})=>(c[g]=f,c),{}),i=e.series.map(h=>{var b=h,{y_axis_data_key:c,yAxisIndex:f,label_position:g,name:m}=b,w=Z(b,["y_axis_data_key","yAxisIndex","label_position","name"]);return C({data:r.map(S=>S[c]),label:{show:!!g,position:g,formatter:n[f!=null?f:"default"]},name:m,xAxisId:"main-x-axis",yAxisIndex:f},w)}),{regressionDataSets:l,regressionSeries:u,regressionXAxes:s}=ir(e,r),d={xAxis:[{data:r.map(c=>c[e.x_axis_data_key]),name:(p=e.x_axis_name)!=null?p:"",id:"main-x-axis"},...s],yAxis:e.y_axes.map((m,g)=>{var w=m,{label_formatter:c}=w,f=Z(w,["label_formatter"]);var h;return k(C({},f),{axisLabel:{show:!0,formatter:(h=n[g])!=null?h:n.default}})}),dataset:[...l],series:[...i,...u],tooltip:{formatter:function(c){const f=Array.isArray(c)?c:[c];if(f.length===0)return"";const g=f.map(({seriesName:m,value:w})=>{var y;if(!m)return w;const h=o[m],b=(y=n[h])!=null?y:n.default;return`${m}: ${b({value:w})}`});return g.unshift(`<strong>${f[0].name}</strong>`),g.join("<br />")}}};return W.default.merge({},or,d)}function lr(e){const r=Array.from(e).sort((o,i)=>o-i),n=Math.floor(r.length/2);return r.length%2===0?(r[n-1]+r[n])/2:r[n]}function sr(e,r,n){var i,l,u;const o=e.map(s=>s[r]);switch(n){case"sum":return W.default.sum(o);case"mean":return W.default.mean(o);case"median":return lr(o);case"max":return(i=W.default.max(o))!=null?i:0;case"min":return(l=W.default.min(o))!=null?l:0;default:return(u=e[0])==null?void 0:u[r]}}var Nt=function(){};const ur=(e,r,n)=>Math.min(Math.max(n,e),r),_t=(e,r,n)=>{const o=r-e;return o===0?1:(n-e)/o},Ze=(e,r,n)=>-n*e+n*r+e,Ft=(e,r)=>n=>Math.max(Math.min(n,r),e),Pe=e=>e%1?Number(e.toFixed(5)):e,Fe=/(-)?([\d]*\.?[\d])+/g,He=/(#[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,dr=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;function Ae(e){return typeof e=="string"}const Re={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Rt=Object.assign(Object.assign({},Re),{transform:Ft(0,1)});Object.assign(Object.assign({},Re),{default:1});const Ie=(e=>({test:r=>Ae(r)&&r.endsWith(e)&&r.split(" ").length===1,parse:parseFloat,transform:r=>`${r}${e}`}))("%");Object.assign(Object.assign({},Ie),{parse:e=>Ie.parse(e)/100,transform:e=>Ie.transform(e*100)});const et=(e,r)=>n=>Boolean(Ae(n)&&dr.test(n)&&n.startsWith(e)||r&&Object.prototype.hasOwnProperty.call(n,r)),Bt=(e,r,n)=>o=>{if(!Ae(o))return o;const[i,l,u,s]=o.match(Fe);return{[e]:parseFloat(i),[r]:parseFloat(l),[n]:parseFloat(u),alpha:s!==void 0?parseFloat(s):1}},Se={test:et("hsl","hue"),parse:Bt("hue","saturation","lightness"),transform:({hue:e,saturation:r,lightness:n,alpha:o=1})=>"hsla("+Math.round(e)+", "+Ie.transform(Pe(r))+", "+Ie.transform(Pe(n))+", "+Pe(Rt.transform(o))+")"},cr=Ft(0,255),tt=Object.assign(Object.assign({},Re),{transform:e=>Math.round(cr(e))}),ve={test:et("rgb","red"),parse:Bt("red","green","blue"),transform:({red:e,green:r,blue:n,alpha:o=1})=>"rgba("+tt.transform(e)+", "+tt.transform(r)+", "+tt.transform(n)+", "+Pe(Rt.transform(o))+")"};function fr(e){let r="",n="",o="",i="";return e.length>5?(r=e.substr(1,2),n=e.substr(3,2),o=e.substr(5,2),i=e.substr(7,2)):(r=e.substr(1,1),n=e.substr(2,1),o=e.substr(3,1),i=e.substr(4,1),r+=r,n+=n,o+=o,i+=i),{red:parseInt(r,16),green:parseInt(n,16),blue:parseInt(o,16),alpha:i?parseInt(i,16)/255:1}}const nt={test:et("#"),parse:fr,transform:ve.transform},Be={test:e=>ve.test(e)||nt.test(e)||Se.test(e),parse:e=>ve.test(e)?ve.parse(e):Se.test(e)?Se.parse(e):nt.parse(e),transform:e=>Ae(e)?e:e.hasOwnProperty("red")?ve.transform(e):Se.transform(e)},qt="${c}",$t="${n}";function pr(e){var r,n,o,i;return isNaN(e)&&Ae(e)&&((n=(r=e.match(Fe))===null||r===void 0?void 0:r.length)!==null&&n!==void 0?n:0)+((i=(o=e.match(He))===null||o===void 0?void 0:o.length)!==null&&i!==void 0?i:0)>0}function Vt(e){typeof e=="number"&&(e=`${e}`);const r=[];let n=0;const o=e.match(He);o&&(n=o.length,e=e.replace(He,qt),r.push(...o.map(Be.parse)));const i=e.match(Fe);return i&&(e=e.replace(Fe,$t),r.push(...i.map(Re.parse))),{values:r,numColors:n,tokenised:e}}function Wt(e){return Vt(e).values}function Ut(e){const{values:r,numColors:n,tokenised:o}=Vt(e),i=r.length;return l=>{let u=o;for(let s=0;s<i;s++)u=u.replace(s<n?qt:$t,s<n?Be.transform(l[s]):Pe(l[s]));return u}}const mr=e=>typeof e=="number"?0:e;function hr(e){const r=Wt(e);return Ut(e)(r.map(mr))}const Qt={test:pr,parse:Wt,createTransformer:Ut,getAnimatableNone:hr};function rt(e,r,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(r-e)*6*n:n<1/2?r:n<2/3?e+(r-e)*(2/3-n)*6:e}function kt({hue:e,saturation:r,lightness:n,alpha:o}){e/=360,r/=100,n/=100;let i=0,l=0,u=0;if(!r)i=l=u=n;else{const s=n<.5?n*(1+r):n+r-n*r,d=2*n-s;i=rt(d,s,e+1/3),l=rt(d,s,e),u=rt(d,s,e-1/3)}return{red:Math.round(i*255),green:Math.round(l*255),blue:Math.round(u*255),alpha:o}}const gr=(e,r,n)=>{const o=e*e,i=r*r;return Math.sqrt(Math.max(0,n*(i-o)+o))},xr=[nt,ve,Se],jt=e=>xr.find(r=>r.test(e)),Kt=(e,r)=>{let n=jt(e),o=jt(r),i=n.parse(e),l=o.parse(r);n===Se&&(i=kt(i),n=ve),o===Se&&(l=kt(l),o=ve);const u=Object.assign({},i);return s=>{for(const d in u)d!=="alpha"&&(u[d]=gr(i[d],l[d],s));return u.alpha=Ze(i.alpha,l.alpha,s),n.transform(u)}},vr=e=>typeof e=="number",br=(e,r)=>n=>r(e(n)),Yt=(...e)=>e.reduce(br);function Xt(e,r){return vr(e)?n=>Ze(e,r,n):Be.test(e)?Kt(e,r):Ht(e,r)}const Jt=(e,r)=>{const n=[...e],o=n.length,i=e.map((l,u)=>Xt(l,r[u]));return l=>{for(let u=0;u<o;u++)n[u]=i[u](l);return n}},yr=(e,r)=>{const n=Object.assign(Object.assign({},e),r),o={};for(const i in n)e[i]!==void 0&&r[i]!==void 0&&(o[i]=Xt(e[i],r[i]));return i=>{for(const l in o)n[l]=o[l](i);return n}};function Zt(e){const r=Qt.parse(e),n=r.length;let o=0,i=0,l=0;for(let u=0;u<n;u++)o||typeof r[u]=="number"?o++:r[u].hue!==void 0?l++:i++;return{parsed:r,numNumbers:o,numRGB:i,numHSL:l}}const Ht=(e,r)=>{const n=Qt.createTransformer(r),o=Zt(e),i=Zt(r);return o.numHSL===i.numHSL&&o.numRGB===i.numRGB&&o.numNumbers>=i.numNumbers?Yt(Jt(o.parsed,i.parsed),n):u=>`${u>0?r:e}`},Cr=(e,r)=>n=>Ze(e,r,n);function Sr(e){if(typeof e=="number")return Cr;if(typeof e=="string")return Be.test(e)?Kt:Ht;if(Array.isArray(e))return Jt;if(typeof e=="object")return yr}function wr(e,r,n){const o=[],i=n||Sr(e[0]),l=e.length-1;for(let u=0;u<l;u++){let s=i(e[u],e[u+1]);if(r){const d=Array.isArray(r)?r[u]:r;s=Yt(d,s)}o.push(s)}return o}function Dr([e,r],[n]){return o=>n(_t(e,r,o))}function Tr(e,r){const n=e.length,o=n-1;return i=>{let l=0,u=!1;if(i<=e[0]?u=!0:i>=e[o]&&(l=o-1,u=!0),!u){let d=1;for(;d<n&&!(e[d]>i||d===o);d++);l=d-1}const s=_t(e[l],e[l+1],i);return r[l](s)}}function Er(e,r,{clamp:n=!0,ease:o,mixer:i}={}){const l=e.length;Nt(l===r.length),Nt(!o||!Array.isArray(o)||o.length===l-1),e[0]>e[l-1]&&(e=[].concat(e),r=[].concat(r),e.reverse(),r.reverse());const u=wr(r,o,i),s=l===2?Dr(e,u):Tr(e,u);return n?d=>s(ur(e[0],e[l-1],d)):s}class Mr{constructor({valueRange:r,colorRange:n}){xn(this,"mapper");this.mapper=Er(r,n)}getColor(r){return this.mapper(r)}}function Pr(e,r){return e.type==="static"?e.staticColor:e.type==="continuous"?new Mr(e).getColor(r):"black"}function Ar(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array(${e.length})`:e.toString()}function Ir(e,r){const n={};return e.forEach(({name:o,color:i,data_field:l,aggregation:u,size:s,weight:d,formatter:p})=>{const c=sr(r,l,u);let f="";["string","number"].includes(typeof c)?f=Me.default(c).format(p):f=Ar(c),n[o]=t(a.Text,{sx:{fontSize:s,display:"inline"},color:Pr(i,c),weight:d,children:f})}),n}function Gr(e){return e.split(" ").map(r=>v(xe,{children:[r,"\xA0"]}))}function zr(e){const n=e.replaceAll("<br />","<br/>").replaceAll(`
|
|
10
|
+
`,"<br/>").split("<br/>");return n.map((i,l)=>{const u=[Gr(i)];return l!==n.length-1&&u.push(t("br",{})),u}).flat().filter(i=>i!==void 0)}function it(e){return zr(e)}function ot(e,r,n){const o=Ir(r,n),i=/^\{(.+)\}(.*)$/;return e.split("$").map(l=>{var p;const u=i.exec(l);if(!u)return it(l);const s=o[u[1]];if(!s)return it(l);const d=(p=u[2])!=null?p:"";return v(xe,{children:[s,it(d)]})})}ce.use([Ee.BarChart,Ee.LineChart,Ee.ScatterChart,ye.GridComponent,ye.LegendComponent,ye.TooltipComponent,Ge.CanvasRenderer]),ce.registerTransform(rr.transform.regression);function en(e){return e.trim().length>0}function Lr({conf:e,data:r,width:n,height:o}){const i=x.default.useMemo(()=>ar(e,r),[e,r]);return!n||!o?null:t(ze.default,{echarts:ce,option:i,style:{width:n,height:o}})}function Or({conf:e,data:r,width:n,height:o}){const{ref:i,height:l}=H.useElementSize(),{ref:u,height:s}=H.useElementSize(),d=x.default.useMemo(()=>{const{stats:{templates:c,variables:f}}=e;return{top:ot(c.top,f,r),bottom:ot(c.bottom,f,r)}},[e,r]),p=Math.max(0,o-l-s);return v(a.Box,{children:[en(e.stats.templates.top)&&t(a.Text,{ref:i,align:"left",size:"xs",pl:"sm",children:Object.values(d.top).map(c=>c)}),t(Lr,{width:n,height:p,data:r,conf:e}),en(e.stats.templates.bottom)&&t(a.Text,{ref:u,align:"left",size:"xs",pl:"sm",children:Object.values(d.bottom).map(c=>c)})]})}var be=(e=>(e.string="string",e.number="number",e.eloc="eloc",e.percentage="percentage",e))(be||{});function Nr({value:e}){return t(a.Text,{component:"span",children:e})}function _r({value:e}){return t(a.Text,{component:"span",children:e})}function Fr({value:e}){const r=Me.default(e).format({thousandSeparated:!0});return t(a.Text,{component:"span",children:r})}function Rr({value:e}){const r=Me.default(e).format({output:"percent",mantissa:3});return t(a.Text,{component:"span",children:r})}function Br({value:e,type:r}){switch(r){case be.string:return t(Nr,{value:e});case be.eloc:return t(_r,{value:e});case be.number:return t(Fr,{value:e});case be.percentage:return t(Rr,{value:e})}}function qr({conf:e,data:r=[],width:n,height:o}){const c=e,{id_field:i,use_raw_columns:l,columns:u}=c,s=Z(c,["id_field","use_raw_columns","columns"]),d=x.default.useMemo(()=>l?Object.keys(r==null?void 0:r[0]):u.map(f=>f.label),[l,u,r]),p=x.default.useMemo(()=>l?Object.keys(r==null?void 0:r[0]).map(f=>({label:f,value_field:f,value_type:be.string})):u,[l,u,r]);return v(a.Table,k(C({sx:{maxHeight:o}},s),{children:[t("thead",{children:t("tr",{children:d.map(f=>t("th",{children:f},f))})}),t("tbody",{children:r.slice(0,30).map((f,g)=>t("tr",{children:p.map(({value_field:m,value_type:w})=>t("td",{children:t(a.Group,{sx:{"&, .mantine-Text-root":{fontFamily:"monospace",fontSize:s.fontSize}},children:t(Br,{value:f[m],type:w})})},`${m}--${f[m]}`))},i?f[i]:`row-${g}`))}),r.length>100&&t("tfoot",{children:t("tr",{children:t("td",{colSpan:d.length,children:t(a.Text,{color:"red",size:"sm",children:"Showing only the first 30 rows to avoid causing slow performance"})})})})]}))}function $r(e,r={}){const n=k(C({},r),{numbro:Me.default}),o=Object.keys(n),i=Object.values(n);try{return new Function(...o,`return \`${e}\`;`)(...i)}catch(l){return l.message}}function Vr({conf:{paragraphs:e},data:r}){return t(xe,{children:e.map((u,l)=>{var s=u,{template:n,size:o}=s,i=Z(s,["template","size"]);return t(a.Text,k(C({},i),{sx:{fontSize:o},children:$r(n,r[0])}),`${n}---${l}`)})})}ce.use([ye.GridComponent,ye.VisualMapComponent,ye.LegendComponent,ye.TooltipComponent,Ge.CanvasRenderer]);function Wr({conf:e,data:r,width:n,height:o}){const f=e,{x_axis_data_key:i,y_axis_data_key:l,z_axis_data_key:u}=f,s=Z(f,["x_axis_data_key","y_axis_data_key","z_axis_data_key"]),d=x.default.useMemo(()=>W.default.minBy(r,g=>g[u])[u],[r,u]),p=x.default.useMemo(()=>W.default.maxBy(r,g=>g[u])[u],[r,u]),c=k(C({tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:d,max:p,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:{type:"value"},yAxis3D:{type:"value"},zAxis3D:{type:"value"},grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}}},s),{series:[{type:"bar3D",wireframe:{},data:r.map(g=>[g[i],g[l],g[u]])}]});return t(ze.default,{echarts:ce,option:c,style:{width:n,height:o}})}var xo="";ce.use([Ee.PieChart,Ge.CanvasRenderer]);const Ur={tooltip:{show:!0},series:{type:"pie",radius:["50%","80%"],label:{position:"outer",alignTo:"edge",formatter:`{name|{b}}
|
|
11
|
+
{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 Qr({conf:e,data:r,width:n,height:o}){const c=e,{label_field:i="name",value_field:l="value"}=c,u=Z(c,["label_field","value_field"]),s=x.default.useMemo(()=>r.map(f=>({name:f[i],value:Number(f[l])})),[r,i,l]),d=x.default.useMemo(()=>({series:{labelLayout:function(f){const g=f.labelRect.x<n/2,m=f.labelLinePoints;return m[2][0]=g?f.labelRect.x:f.labelRect.x+f.labelRect.width,{labelLinePoints:m}}}}),[n]),p=W.default.merge({},Ur,d,u,{series:{data:s}});return t(ze.default,{echarts:ce,option:p,style:{width:n,height:o}})}function kr({conf:{template:e,variables:r,align:n},data:o}){const i=x.default.useMemo(()=>ot(e,r,o),[e,r,o]);return t(a.Text,{align:n,children:Object.values(i).map(l=>l)})}function jr({conf:e,width:r,height:n}){return!r||!n?null:t(Qe.default,{readOnly:!0,value:e.content,onChange:W.default.noop,sx:{border:"none"}})}function tn(e,r,n,o){const i={width:e,height:r,data:n,conf:o.conf};switch(o.type){case"sunburst":return t(nr,C({},i));case"cartesian":return t(Or,C({},i));case"table":return t(qr,C({},i));case"text":return t(Vr,C({},i));case"stats":return t(kr,C({},i));case"rich-text":return t(jr,C({},i));case"bar-3d":return t(Wr,C({},i));case"pie":return t(Qr,C({},i));default:return null}}const Kr=["rich-text"];function nn({viz:e,data:r,loading:n}){const{ref:o,width:i,height:l}=H.useElementSize();if(!!Kr.includes(e.type))return t("div",{className:"viz-root",ref:o,children:t(Je,{children:tn(i,l,r,e)})});const s=x.default.useMemo(()=>!Array.isArray(r)||r.length===0,[r]);return n?t("div",{className:"viz-root",ref:o,children:t(a.LoadingOverlay,{visible:n,exitTransitionDuration:0})}):v("div",{className:"viz-root",ref:o,children:[s&&t(a.Text,{color:"gray",align:"center",children:"nothing to show"}),!s&&t(Je,{children:tn(i,l,r,e)})]})}function Yr({}){const{data:e,loading:r,viz:n}=x.default.useContext(le);return t(nn,{viz:n,data:e,loading:r})}function Xr({label:e,required:r,value:n,onChange:o,data:i,sx:l},u){const s=x.default.useMemo(()=>!Array.isArray(i)||i.length===0?[]:Object.keys(i[0]).map(p=>({label:p,value:p})),[i]);return t(a.Select,{ref:u,label:e,data:s,value:n,onChange:o,required:r,sx:l})}const ne=x.default.forwardRef(Xr);function Jr({conf:e,setConf:r,data:n}){const o=W.default.assign({},{x_axis_data_key:"x",y_axis_data_key:"y",z_axis_data_key:"z",xAxis3D:{type:"value",name:"X Axis Name"},yAxis3D:{type:"value",name:"Y Axis Name"},zAxis3D:{type:"value",name:"Z Axis Name"}},e),{control:i,handleSubmit:l,formState:u}=F.useForm({defaultValues:o});return t(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,children:v("form",{onSubmit:l(r),children:[t(a.Text,{children:"X Axis"}),v(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[t(F.Controller,{name:"x_axis_data_key",control:i,render:({field:s})=>t(ne,C({label:"Data Field",required:!0,data:n},s))}),t(F.Controller,{name:"xAxis3D.name",control:i,render:({field:s})=>t(a.TextInput,C({sx:{flexGrow:1},size:"md",label:"Name"},s))})]}),t(a.Text,{mt:"lg",children:"Y Axis"}),v(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[t(F.Controller,{name:"y_axis_data_key",control:i,render:({field:s})=>t(ne,C({label:"Data Field",required:!0,data:n},s))}),t(F.Controller,{name:"yAxis3D.name",control:i,render:({field:s})=>t(a.TextInput,C({sx:{flexGrow:1},size:"md",label:"Name"},s))})]}),t(a.Text,{mt:"lg",children:"Z Axis"}),v(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[t(F.Controller,{name:"z_axis_data_key",control:i,render:({field:s})=>t(ne,C({label:"Data Field",required:!0,data:n},s))}),t(F.Controller,{name:"zAxis3D.name",control:i,render:({field:s})=>t(a.TextInput,C({sx:{flexGrow:1},size:"md",label:"Name"},s))})]}),t(a.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:v(a.Button,{color:"blue",type:"submit",children:[t(_.DeviceFloppy,{size:20}),t(a.Text,{ml:"md",children:"Save"})]})})]})})}function Zr({value:e,onChange:r},n){const o=a.useMantineTheme(),i=x.default.useMemo(()=>Object.entries(o.colors).map(([u,s])=>({label:u,value:s[6]})),[o]),l=x.default.useMemo(()=>i.some(u=>u.value===e),[e,i]);return v(a.Group,{position:"apart",spacing:4,children:[t(a.TextInput,{placeholder:"Set any color",value:l?"":e,onChange:u=>r(u.currentTarget.value),rightSection:t(a.ColorSwatch,{color:l?"transparent":e,radius:4}),variant:l?"filled":"default",sx:{maxWidth:"46%",flexGrow:1}}),t(a.Text,{sx:{flexGrow:0},children:"or"}),t(a.Select,{data:i,value:e,onChange:r,variant:l?"default":"filled",placeholder:"Pick a theme color",icon:t(a.ColorSwatch,{color:l?e:"transparent",radius:4}),sx:{maxWidth:"46%",flexGrow:1}})]})}const qe=x.default.forwardRef(Zr);function Hr({control:e,index:r}){return v(a.Group,{direction:"row",grow:!0,align:"top",children:[t(F.Controller,{name:`series.${r}.stack`,control:e,render:({field:n})=>t(a.TextInput,C({label:"Stack",placeholder:"Stack bars by this ID",sx:{flexGrow:1}},n))}),t(F.Controller,{name:`series.${r}.barWidth`,control:e,render:({field:n})=>t(a.TextInput,C({label:"Bar Width",sx:{flexGrow:1}},n))})]})}const ei=[{label:"off",value:"false"},{label:"start",value:"start"},{label:"middle",value:"middle"},{label:"end",value:"end"}];function ti({control:e,index:r}){return v(a.Group,{direction:"row",grow:!0,align:"center",children:[t(F.Controller,{name:`series.${r}.step`,control:e,render:({field:n})=>t(a.Select,k(C({label:"Step",data:ei,sx:{flexGrow:1,maxWidth:"48%"}},n),{value:String(n.value),onChange:o=>{const i=o==="false"?!1:o;n.onChange(i)}}))}),t(F.Controller,{name:`series.${r}.smooth`,control:e,render:({field:n})=>t(a.Box,{sx:{flexGrow:1},children:t(a.Switch,{label:"Smooth Line",checked:n.value,onChange:o=>n.onChange(o.currentTarget.checked)})})})]})}const ni=Array.from(new Array(9),(e,r)=>({label:String(r+1),value:r+1}));function ri({control:e,index:r}){return t(a.Group,{direction:"row",grow:!0,align:"center",children:t(F.Controller,{name:`series.${r}.symbolSize`,control:e,render:({field:n})=>v(a.Group,{direction:"column",noWrap:!0,sx:{flexGrow:1},pb:16,spacing:4,children:[t(a.Text,{size:"sm",children:"Size"}),t(a.Slider,k(C({min:1,max:10,marks:ni},n),{sx:{width:"100%"}}))]})})})}const ii=[{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 oi({control:e,index:r,remove:n,seriesItem:o,yAxisOptions:i,data:l}){const u=o.type;return v(a.Group,{direction:"column",grow:!0,my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[t(a.Group,{direction:"column",grow:!0,noWrap:!0,children:t(F.Controller,{name:`series.${r}.type`,control:e,render:({field:s})=>t(a.SegmentedControl,C({data:[{label:"Line",value:"line"},{label:"Bar",value:"bar"},{label:"Scatter",value:"scatter"},{label:"Boxplot",value:"boxplot",disabled:!0}]},s))})}),t(F.Controller,{name:`series.${r}.name`,control:e,render:({field:s})=>t(a.TextInput,C({label:"Name",required:!0,sx:{flex:1}},s))}),v(a.Group,{direction:"row",grow:!0,noWrap:!0,children:[t(F.Controller,{name:`series.${r}.y_axis_data_key`,control:e,render:({field:s})=>t(ne,C({label:"Value Field",required:!0,data:l,sx:{flex:1}},s))}),t(F.Controller,{name:`series.${r}.yAxisIndex`,control:e,render:c=>{var{field:f}=c,g=f,{value:s,onChange:d}=g,p=Z(g,["value","onChange"]);var m;return t(a.Select,k(C({label:"Y Axis",data:i,disabled:i.length===0},p),{value:(m=s==null?void 0:s.toString())!=null?m:"",onChange:w=>{if(!w){d(0);return}d(Number(w))},sx:{flex:1}}))}})]}),u==="line"&&t(ti,{index:r,control:e}),u==="bar"&&t(Hr,{index:r,control:e}),u==="scatter"&&t(ri,{index:r,control:e}),t(F.Controller,{name:`series.${r}.label_position`,control:e,render:({field:s})=>t(a.Select,C({label:"Label Position",data:ii},s))}),v(a.Group,{direction:"column",grow:!0,spacing:4,children:[t(a.Text,{size:"sm",children:"Color"}),t(F.Controller,{name:`series.${r}.color`,control:e,render:({field:s})=>t(qe,C({},s))})]}),t(a.ActionIcon,{color:"red",variant:"hover",onClick:()=>n(r),sx:{position:"absolute",top:15,right:5},children:t(_.Trash,{size:16})})]},r)}function ai({control:e,watch:r,getValues:n,data:o}){const{fields:i,append:l,remove:u}=F.useFieldArray({control:e,name:"series"}),s=r("series"),d=i.map((f,g)=>C(C({},f),s[g])),p=()=>l({type:"bar",name:H.randomId(),showSymbol:!1,symbolSize:5,y_axis_data_key:"value",yAxisIndex:0,label_position:"top",stack:"",color:"#000",step:!1,smooth:!1}),c=x.default.useMemo(()=>n().y_axes.map(({name:f},g)=>({label:f,value:g.toString()})),[n]);return v(a.Group,{direction:"column",grow:!0,children:[d.map((f,g)=>t(oi,{control:e,index:g,remove:u,seriesItem:f,yAxisOptions:c,data:o})),t(a.Group,{position:"center",mt:"xs",children:t(a.Button,{onClick:p,children:"Add a Series"})})]})}const rn={mantissa:0,output:"number"};function li({value:e,onChange:r},n){const o=u=>{r(k(C({},e),{output:u}))},i=u=>{const s=u===0?!1:e.trimMantissa;r(k(C({},e),{mantissa:u,trimMantissa:s}))},l=u=>{r(k(C({},e),{trimMantissa:u.currentTarget.checked}))};return t(a.Group,{direction:"column",grow:!0,noWrap:!0,ref:n,children:v(a.Group,{direction:"row",grow:!0,children:[t(a.Select,{label:"Format",data:[{label:"1234",value:"number"},{label:"99%",value:"percent"}],value:e.output,onChange:o}),t(a.NumberInput,{label:"Mantissa",defaultValue:0,min:0,step:1,max:4,value:e.mantissa,onChange:i}),t(a.Switch,{label:"Trim mantissa",checked:e.trimMantissa,onChange:l,disabled:e.mantissa===0})]})})}const on=x.default.forwardRef(li);function si({control:e,index:r,remove:n}){return v(a.Group,{direction:"column",grow:!0,my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[t(a.Group,{direction:"row",grow:!0,noWrap:!0,children:t(F.Controller,{name:`y_axes.${r}.name`,control:e,render:({field:o})=>t(a.TextInput,C({label:"Name",required:!0,sx:{flex:1}},o))})}),t(a.Group,{direction:"column",grow:!0,noWrap:!0,children:t(F.Controller,{name:`y_axes.${r}.label_formatter`,control:e,render:({field:o})=>t(on,C({},o))})}),t(a.ActionIcon,{color:"red",variant:"hover",onClick:()=>n(r),sx:{position:"absolute",top:15,right:5},disabled:r===0,children:t(_.Trash,{size:16})})]},r)}function ui({control:e,watch:r}){const{fields:n,append:o,remove:i}=F.useFieldArray({control:e,name:"y_axes"}),l=r("y_axes"),u=n.map((d,p)=>C(C({},d),l[p])),s=()=>o({name:"",label_formatter:rn});return v(a.Group,{direction:"column",grow:!0,children:[u.map((d,p)=>t(si,{control:e,index:p,remove:i})),t(a.Group,{position:"center",mt:"xs",children:t(a.Button,{onClick:s,children:"Add a Y Axis"})})]})}const di=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}];function ci({control:e,regressionItem:r,index:n,remove:o,yAxisOptions:i,data:l}){const u=r.transform.config.method;return v(a.Group,{direction:"column",grow:!0,my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[t(F.Controller,{name:`regressions.${n}.name`,control:e,render:({field:s})=>t(a.TextInput,C({label:"Name",required:!0,sx:{flex:1}},s))}),v(a.Group,{direction:"row",grow:!0,noWrap:!0,children:[t(F.Controller,{name:`regressions.${n}.y_axis_data_key`,control:e,render:({field:s})=>t(ne,C({label:"Value Field",required:!0,data:l,sx:{flex:1}},s))}),t(F.Controller,{name:`regressions.${n}.plot.yAxisIndex`,control:e,render:c=>{var{field:f}=c,g=f,{value:s,onChange:d}=g,p=Z(g,["value","onChange"]);var m;return t(a.Select,k(C({label:"Y Axis",data:i,disabled:i.length===0},p),{value:(m=s==null?void 0:s.toString())!=null?m:"",onChange:w=>{if(!w){d(0);return}d(Number(w))},sx:{flex:1}}))}})]}),v(a.Group,{direction:"row",grow:!0,noWrap:!0,children:[t(F.Controller,{name:`regressions.${n}.transform.config.method`,control:e,render:({field:s})=>t(a.Select,C({label:"Method",data:di,sx:{flex:1}},s))}),u==="polynomial"&&t(F.Controller,{name:`regressions.${n}.transform.config.order`,control:e,render:({field:s})=>t(a.NumberInput,C({label:"Order",sx:{flex:1}},s))})]}),v(a.Group,{direction:"column",grow:!0,spacing:4,children:[t(a.Text,{size:"sm",children:"Color"}),t(F.Controller,{name:`regressions.${n}.plot.color`,control:e,render:({field:s})=>t(qe,C({},s))})]}),t(a.ActionIcon,{color:"red",variant:"hover",onClick:()=>o(n),sx:{position:"absolute",top:15,right:5},children:t(_.Trash,{size:16})})]},n)}function fi({control:e,watch:r,getValues:n,data:o}){const{fields:i,append:l,remove:u}=F.useFieldArray({control:e,name:"regressions"}),s=r("regressions"),d=i.map((f,g)=>C(C({},f),s[g])),p=x.default.useMemo(()=>n().y_axes.map(({name:f},g)=>({label:f,value:g.toString()})),[n]),c=()=>l({transform:{type:"ecStat:regression",config:{method:"linear",order:1,formulaOn:"end"}},name:"",y_axis_data_key:"",plot:{type:"line",yAxisIndex:0,color:"#666666"}});return v(a.Group,{direction:"column",grow:!0,children:[d.map((f,g)=>t(ci,{regressionItem:f,control:e,index:g,remove:u,yAxisOptions:p,data:o})),t(a.Group,{position:"center",mt:"xs",children:t(a.Button,{onClick:c,children:"Add a Regression Line"})})]})}const pi=[{label:"None",value:"none"},{label:"Sum",value:"sum"},{label:"Mean",value:"mean"},{label:"Median",value:"median"},{label:"Max",value:"max"},{label:"Min",value:"min"}];function mi({label:e,value:r,onChange:n},o){return t(a.Select,{ref:o,label:e,data:pi,value:r,onChange:n})}const hi=x.default.forwardRef(mi);function gi({label:e,value:r,onChange:n},o){const[i,l]=x.default.useState(Array.isArray(r)?[...r]:[]),u=x.default.useCallback(()=>{l(g=>[...g,""])},[l]),s=x.default.useCallback(g=>{l(m=>(m.splice(g,1),[...m]))},[l]),d=x.default.useMemo(()=>!W.default.isEqual(i,r),[i,r]),p=()=>{n(i.map(g=>g.toString()))},c=a.useMantineTheme(),f=x.default.useMemo(()=>Object.entries(c.colors).map(([g,m])=>m[6]),[c]);return v(xe,{children:[v(a.Group,{position:"left",ref:o,children:[t(a.Text,{children:e}),t(a.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!d,onClick:p,children:t(_.DeviceFloppy,{size:20})})]}),v(a.Group,{children:[i.map((g,m)=>t(a.ColorInput,{value:g,onChange:w=>{l(h=>(h.splice(m,1,w),[...h]))},swatches:f,rightSection:t(a.ActionIcon,{onClick:()=>s(m),color:"red",children:t(_.Trash,{size:14})}),sx:{width:"45%"}})),t(a.ActionIcon,{onClick:u,color:"blue",variant:"outline",children:t(_.PlaylistAdd,{size:20})})]})]})}const xi=x.default.forwardRef(gi),$e=[{label:"initial",value:0},{label:"500",value:25},{label:"700",value:50},{label:"semibold",value:75},{label:"bold",value:100}];function vi({label:e,value:r,onChange:n},o){var u,s;const[i,l]=x.default.useState((s=(u=$e.find(d=>d.label===r))==null?void 0:u.value)!=null?s:$e[0].value);return x.default.useEffect(()=>{const d=$e.find(p=>p.value===i);d&&n(d.label)},[i]),v(a.Group,{direction:"column",grow:!0,spacing:0,mt:"sm",mb:"lg",children:[t(a.Text,{size:"sm",children:e}),t(a.Slider,{label:null,marks:$e,value:i,onChange:l,step:25,placeholder:"Pick a font size",ref:o})]})}const an=x.default.forwardRef(vi);function bi({label:e,value:r,onChange:n},o){const[i,l]=x.default.useState(Array.isArray(r)?[...r]:[]),u=x.default.useCallback(()=>{l(c=>[...c,""])},[l]),s=x.default.useCallback(c=>{l(f=>(f.splice(c,1),[...f]))},[l]),d=x.default.useMemo(()=>!W.default.isEqual(i,r),[i,r]),p=()=>{n(i.map(c=>c.toString()))};return v(xe,{children:[v(a.Group,{position:"left",ref:o,children:[t(a.Text,{children:e}),t(a.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!d,onClick:p,children:t(_.DeviceFloppy,{size:20})})]}),v(a.Group,{children:[i.map((c,f)=>t(a.TextInput,{value:c,onChange:g=>{const m=g.currentTarget.value;l(w=>(w.splice(f,1,m),[...w]))},rightSection:t(a.ActionIcon,{onClick:()=>s(f),color:"red",children:t(_.Trash,{size:14})}),sx:{width:"45%"}})),t(a.ActionIcon,{onClick:u,color:"blue",variant:"outline",children:t(_.PlaylistAdd,{size:20})})]})]})}const yi=x.default.forwardRef(bi);function ln(){return{name:H.randomId(),size:"20px",weight:"bold",color:{type:"static",staticColor:"blue"},data_field:"",aggregation:"none",formatter:{output:"number",mantissa:0}}}const at=x.default.forwardRef(function(l,i){var u=l,{value:r,onChange:n}=u,o=Z(u,["value","onChange"]);return t(a.TextInput,C({ref:i,value:r,onChange:n},o))});function sn({value:e,onChange:r,data:n}){const o=e.color.type,i=(l,u)=>{const s=W.default.cloneDeep(e);W.default.set(s,l,u),r(s)};return v(a.Box,{px:"sm",py:"md",children:[t(a.Text,{weight:"bold",pb:0,children:e.name}),t(a.Divider,{my:"xs",label:"Data",labelPosition:"center"}),v(a.Group,{direction:"row",grow:!0,noWrap:!0,children:[t(a.TextInput,{label:"Name",required:!0,value:e.name,onChange:l=>i("name",l.currentTarget.value)}),t(ne,{label:"Data Field",required:!0,data:n,value:e.data_field,onChange:l=>i("data_field",l)}),t(hi,{label:"Aggregation",value:e.aggregation,onChange:l=>i("aggregation",l)})]}),t(on,{value:e.formatter,onChange:l=>i("formatter",l)}),t(a.Divider,{my:"xs",label:"Typography",labelPosition:"center"}),t(a.Group,{direction:"column",grow:!0,children:t(a.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",sx:{flex:1},value:e.size,onChange:l=>i("size",l.currentTarget.value)})}),t(a.Group,{position:"apart",grow:!0,sx:{"> *":{flexGrow:1,maxWidth:"100%"}},children:t(an,{label:"Font Weight",value:e.weight,onChange:l=>i("weight",l)})}),t(a.Divider,{my:"xs",label:"Style",labelPosition:"center"}),v(a.Group,{direction:"column",grow:!0,children:[t(a.Select,{label:"Color Type",data:[{label:"Static Color",value:"static"},{label:"Continuous Color",value:"continuous"}],value:e.color.type,onChange:l=>i("color.type",l)}),o==="static"&&t(qe,{value:e.color.staticColor,onChange:l=>i("color.staticColor",l)}),o==="continuous"&&v(xe,{children:[t(yi,{label:"Value Range",value:e.color.valueRange,onChange:l=>i("color.valueRange",l)}),t(xi,{label:"Color Range",value:e.color.colorRange,onChange:l=>i("color.colorRange",l)})]})]})]})}function Ci({control:e,index:r,remove:n,data:o}){return v(a.Group,{direction:"column",grow:!0,my:"sm",p:0,sx:{border:"1px solid #eee",borderTopColor:"#333",borderTopWidth:2,position:"relative"},children:[t(F.Controller,{name:`stats.variables.${r}`,control:e,render:({field:i})=>t(sn,C({data:o},i))}),t(a.ActionIcon,{color:"red",variant:"hover",onClick:()=>n(r),sx:{position:"absolute",top:15,right:5},children:t(_.Trash,{size:16})})]},r)}function Si({control:e,watch:r,data:n}){const{fields:o,append:i,remove:l}=F.useFieldArray({control:e,name:"stats.variables"});r("stats.templates");const u=r("stats.variables"),s=o.map((p,c)=>C(C({},p),u[c])),d=()=>i(ln());return v(a.Group,{direction:"column",grow:!0,children:[v(a.Group,{direction:"column",grow:!0,noWrap:!0,spacing:0,children:[t(F.Controller,{name:"stats.templates.top",control:e,render:({field:p})=>t(at,C({label:"Template for stats above the chart",py:"md",sx:{flexGrow:1}},p))}),t(F.Controller,{name:"stats.templates.bottom",control:e,render:({field:p})=>t(at,C({label:"Template for stats under the chart",py:"md",sx:{flexGrow:1}},p))})]}),s.map((p,c)=>t(Ci,{control:e,index:c,remove:l,data:n})),t(a.Group,{position:"center",mt:"xs",children:t(a.Button,{onClick:d,children:"Add a Variable"})})]})}function wi(e){function r({type:n,name:o,showSymbol:i,symbolSize:l=5,y_axis_data_key:u="value",yAxisIndex:s=0,label_position:d="top",stack:p="1",color:c="black",barWidth:f="30",smooth:g=!1,step:m=!1}){return{type:n,name:o,showSymbol:i,symbolSize:l,y_axis_data_key:u,yAxisIndex:s,label_position:d,stack:p,color:c,barWidth:f,smooth:g,step:m}}return e.map(r)}function Di(e){return e||{templates:{top:"",bottom:""},variables:[]}}function Ti({conf:e,setConf:r,data:n}){const m=e,{series:o,y_axes:i}=m,l=Z(m,["series","y_axes"]),u=x.default.useMemo(()=>{const y=l,{x_axis_name:w="",stats:h}=y,b=Z(y,["x_axis_name","stats"]);return C({series:wi(o!=null?o:[]),x_axis_name:w,y_axes:i!=null?i:[{name:"Y Axis",label_formatter:rn}],stats:Di(h)},b)},[o,l]);x.default.useEffect(()=>{!W.default.isEqual(e,u)&&r(u)},[e,u]);const{control:s,handleSubmit:d,watch:p,getValues:c}=F.useForm({defaultValues:u});p(["x_axis_data_key","x_axis_name"]);const f=c(),g=x.default.useMemo(()=>!W.default.isEqual(f,e),[f,e]);return t(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,children:v("form",{onSubmit:d(r),children:[v(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[t(a.Text,{children:"Chart Config"}),t(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!g,children:t(_.DeviceFloppy,{size:20})})]}),v(a.Accordion,{offsetIcon:!1,multiple:!0,initialState:{0:!0,1:!0},children:[t(a.Accordion.Item,{label:"X Axis",children:v(a.Group,{direction:"row",grow:!0,noWrap:!0,children:[t(F.Controller,{name:"x_axis_data_key",control:s,render:({field:w})=>t(ne,C({label:"X Axis Data Field",required:!0,data:n,sx:{flex:1}},w))}),t(F.Controller,{name:"x_axis_name",control:s,render:({field:w})=>t(a.TextInput,C({label:"X Axis Name",sx:{flex:1}},w))})]})}),t(a.Accordion.Item,{label:"Y Axes",children:t(ui,{control:s,watch:p})}),t(a.Accordion.Item,{label:"Series",children:t(ai,{control:s,watch:p,getValues:c,data:n})}),t(a.Accordion.Item,{label:"Regression Lines",children:t(fi,{control:s,watch:p,getValues:c,data:n})}),t(a.Accordion.Item,{label:"Stats",children:t(Si,{control:s,watch:p,data:n})})]})]})})}function Ei({conf:{label_field:e,value_field:r},setConf:n,data:o}){const i=de.useForm({initialValues:{label_field:e,value_field:r}});return t(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,children:v("form",{onSubmit:i.onSubmit(n),children:[v(a.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[t(a.Text,{children:"Pie Config"}),t(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:t(_.DeviceFloppy,{size:20})})]}),v(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[t(ne,C({label:"Label Field",required:!0,data:o},i.getInputProps("label_field"))),t(ne,C({label:"Value Field",required:!0,data:o},i.getInputProps("value_field")))]})]})})}function Mi({conf:e,setConf:r}){const n=x.default.useMemo(()=>{const{content:p=""}=e;return{content:p}},[e]);x.default.useEffect(()=>{!W.default.isEqual(e,n)&&r(n)},[e,n]);const{control:o,handleSubmit:i,watch:l,getValues:u}=F.useForm({defaultValues:n});l("content");const s=u(),d=x.default.useMemo(()=>!W.default.isEqual(s,e),[s,e]);return t(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,children:v("form",{onSubmit:i(r),children:[v(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[t(a.Text,{children:"Content"}),t(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!d,children:t(_.DeviceFloppy,{size:20})})]}),t(F.Controller,{name:"content",control:o,render:({field:p})=>t(Qe.default,C({sx:{flex:1}},p))})]})})}function Pi(e){if("variables"in e)return e;const{align:r,size:n,weight:o,color:i,content:{prefix:l="",data_field:u="value",formatter:s={output:"number",mantissa:0},postfix:d=""}={}}=e;return{align:r,template:`${l} \${value} ${d}`,variables:[{name:"value",data_field:u,aggregation:"none",formatter:s,color:i,weight:o,size:n}]}}function Ai({control:e,index:r,remove:n,data:o}){return v(a.Group,{direction:"column",grow:!0,my:"sm",p:0,sx:{border:"1px solid #eee",borderTopColor:"#333",borderTopWidth:2,position:"relative"},children:[t(F.Controller,{name:`variables.${r}`,control:e,render:({field:i})=>t(sn,C({data:o},i))}),t(a.ActionIcon,{color:"red",variant:"hover",onClick:()=>n(r),sx:{position:"absolute",top:15,right:5},children:t(_.Trash,{size:16})})]},r)}function Ii({control:e,watch:r,data:n}){const{fields:o,append:i,remove:l}=F.useFieldArray({control:e,name:"variables"}),u=r("variables"),s=o.map((p,c)=>C(C({},p),u[c])),d=()=>i(ln());return v(a.Group,{direction:"column",grow:!0,children:[s.map((p,c)=>t(Ai,{control:e,index:c,remove:l,data:n})),t(a.Group,{position:"center",mt:"xs",children:t(a.Button,{onClick:d,children:"Add a Variable"})})]})}function Gi(){return{align:"center",template:"The variable ${value} is defined in Variables section",variables:[{name:"value",size:"20px",weight:"bold",color:{type:"static",staticColor:"blue"},data_field:"",aggregation:"none",formatter:{output:"number",mantissa:0}}]}}function zi({conf:e,setConf:r,data:n}){const o=x.default.useMemo(()=>{const{align:c,template:f="",variables:g=[]}=Pi(e);return c?{variables:g,template:f,align:c}:Gi()},[e]);x.default.useEffect(()=>{!W.default.isEqual(e,o)&&r(o)},[e,o]);const{control:i,handleSubmit:l,watch:u,getValues:s}=F.useForm({defaultValues:o});u(["variables","template"]);const d=s(),p=x.default.useMemo(()=>!W.default.isEqual(d,e),[d,e]);return t(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,noWrap:!0,children:v("form",{onSubmit:l(r),children:[v(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[t(a.Text,{weight:500,children:"Stats Configurations"}),t(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!p,children:t(_.DeviceFloppy,{size:20})})]}),t(F.Controller,{name:"template",control:i,render:({field:c})=>t(at,C({label:"Template",py:"md",sx:{flexGrow:1}},c))}),t(a.Text,{pb:"sm",pt:"md",size:"sm",children:"Variables"}),t(Ii,{control:i,watch:u,data:n})]})})}function Li({conf:{label_field:e,value_field:r},setConf:n,data:o}){const i=de.useForm({initialValues:{label_field:e,value_field:r}});return t(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,children:v("form",{onSubmit:i.onSubmit(n),children:[v(a.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[t(a.Text,{children:"Sunburst Config"}),t(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:t(_.DeviceFloppy,{size:20})})]}),v(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[t(ne,C({label:"Label Field",required:!0,data:o},i.getInputProps("label_field"))),t(ne,C({label:"Value Field",required:!0,data:o},i.getInputProps("value_field")))]})]})})}const Oi=Object.values(be).map(e=>({label:e,value:e}));function Ni({label:e,value:r,onChange:n,sx:o}){return t(a.Select,{label:e,data:Oi,value:r,onChange:n,sx:o})}function _i(i){var l=i,{conf:u}=l,s=u,{columns:e}=s,r=Z(s,["columns"]),{setConf:n,data:o}=l;const d=de.useForm({initialValues:C({id_field:"id",use_raw_columns:!0,columns:de.formList(e!=null?e:[]),fontSize:"sm",horizontalSpacing:"sm",verticalSpacing:"sm",striped:!1,highlightOnHover:!1},r)}),p=()=>d.addListItem("columns",{label:H.randomId(),value_field:"value",value_type:be.string});return t(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,children:v("form",{onSubmit:d.onSubmit(n),children:[v(a.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[t(a.Text,{children:"Table Config"}),t(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:t(_.DeviceFloppy,{size:20})})]}),v(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[t(ne,C({label:"ID Field",required:!0,data:o},d.getInputProps("id_field"))),v(a.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:[t(a.TextInput,C({label:"Horizontal Spacing",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1}},d.getInputProps("horizontalSpacing"))),t(a.TextInput,C({label:"Vertical Spacing",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1}},d.getInputProps("verticalSpacing")))]}),t(a.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:t(a.TextInput,C({label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1}},d.getInputProps("fontSize")))}),v(a.Group,{direction:"column",grow:!0,children:[t(a.Text,{children:"Other"}),v(a.Group,{position:"apart",grow:!0,children:[t(a.Switch,C({label:"Striped"},d.getInputProps("striped",{type:"checkbox"}))),t(a.Switch,C({label:"Highlight on hover"},d.getInputProps("highlightOnHover",{type:"checkbox"})))]})]})]}),v(a.Group,{direction:"column",mt:"xs",spacing:"xs",grow:!0,p:"md",mb:"xl",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[t(a.Switch,C({label:"Use Original Data Columns"},d.getInputProps("use_raw_columns",{type:"checkbox"}))),!d.values.use_raw_columns&&v(a.Group,{direction:"column",grow:!0,children:[t(a.Text,{mt:"xl",mb:0,children:"Custom Columns"}),d.values.columns.map((c,f)=>v(a.Group,{direction:"column",grow:!0,my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[v(a.Group,{position:"apart",grow:!0,children:[t(a.TextInput,C({label:"Label",required:!0,sx:{flex:1}},d.getListInputProps("columns",f,"label"))),t(ne,C({label:"Value Field",required:!0,data:o},d.getListInputProps("columns",f,"value_field"))),t(Ni,C({label:"Value Type",sx:{flex:1}},d.getListInputProps("columns",f,"value_type")))]}),t(a.ActionIcon,{color:"red",variant:"hover",onClick:()=>d.removeListItem("columns",f),sx:{position:"absolute",top:15,right:5},children:t(_.Trash,{size:16})})]},f)),t(a.Group,{position:"center",mt:"xs",children:t(a.Button,{onClick:p,children:"Add a Column"})})]})]}),t(a.Text,{weight:500,mb:"md",children:"Current Configuration:"}),t(oe.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(d.values,null,2)})]})})}const un=[{align:"center",size:"xl",weight:"bold",color:"black",template:"Time: ${new Date().toISOString()}"},{align:"center",size:"md",weight:"bold",color:"red",template:"Platform: ${navigator.userAgentData.platform}."}];function Fi({conf:e,setConf:r}){var i;const n=de.useForm({initialValues:{paragraphs:de.formList((i=e.paragraphs)!=null?i:un)}}),o=()=>n.addListItem("paragraphs",k(C({},un[0]),{template:H.randomId()}));return t(a.Group,{direction:"column",mt:"md",spacing:"xs",grow:!0,children:v("form",{onSubmit:n.onSubmit(r),children:[n.values.paragraphs.length===0&&t(a.Text,{color:"dimmed",align:"center",children:"Empty"}),v(a.Group,{position:"apart",mb:"xs",sx:{" + .mantine-Group-root":{marginTop:0}},children:[t(a.Text,{children:"Paragraphs"}),t(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:t(_.DeviceFloppy,{size:20})})]}),n.values.paragraphs.map((l,u)=>v(a.Group,{direction:"column",grow:!0,my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[t(a.TextInput,C({placeholder:"Time: ${new Date().toISOString()}",label:"Content Template",required:!0,sx:{flex:1}},n.getListInputProps("paragraphs",u,"template"))),v(a.Group,{direction:"column",grow:!0,children:[t(a.Text,{children:"Color"}),t(qe,C({},n.getListInputProps("paragraphs",u,"color")))]}),t(a.Group,{direction:"column",grow:!0,children:t(a.TextInput,C({label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",sx:{flex:1}},n.getListInputProps("paragraphs",u,"size")))}),t(a.Group,{position:"apart",grow:!0,sx:{"> *":{flexGrow:1,maxWidth:"100%"}},children:t(an,C({label:"Font Weight"},n.getListInputProps("paragraphs",u,"weight")))}),t(a.ActionIcon,{color:"red",variant:"hover",onClick:()=>n.removeListItem("paragraphs",u),sx:{position:"absolute",top:15,right:5},children:t(_.Trash,{size:16})})]},u)),t(a.Group,{position:"center",mt:"md",children:t(a.Button,{onClick:o,children:"Add a Paragraph"})}),t(a.Text,{size:"sm",weight:500,mt:"md",children:"Current Configuration:"}),t(oe.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(n.values,null,2)})]})})}const lt=[{value:"text",label:"Text",Panel:Fi},{value:"stats",label:"Stats",Panel:zi},{value:"rich-text",label:"Rich Text",Panel:Mi},{value:"table",label:"Table",Panel:_i},{value:"sunburst",label:"Sunburst",Panel:Li},{value:"bar-3d",label:"Bar Chart (3D)",Panel:Jr},{value:"cartesian",label:"Cartesian Chart",Panel:Ti},{value:"pie",label:"Pie Chart",Panel:Ei}];function Ri(){const{data:e,viz:r,setViz:n}=x.default.useContext(le),[o,i]=H.useInputState(r.type),l=r.type!==o,u=x.default.useCallback(()=>{!l||n(c=>k(C({},c),{type:o}))},[l,o]),s=c=>{n(f=>k(C({},f),{conf:c}))},d=c=>{try{s(JSON.parse(c))}catch(f){console.error(f)}},p=x.default.useMemo(()=>{var c;return(c=lt.find(f=>f.value===o))==null?void 0:c.Panel},[o,lt]);return v(xe,{children:[t(a.Select,{label:"Visualization",value:o,onChange:i,data:lt,rightSection:t(a.ActionIcon,{disabled:!l,onClick:u,children:t(_.DeviceFloppy,{size:20})})}),p&&t(p,{conf:r.conf,setConf:s,data:e}),!p&&t(a.JsonInput,{minRows:20,label:"Config",value:JSON.stringify(r.conf,null,2),onChange:d})]})}function Bi({}){return v(a.Group,{direction:"row",grow:!0,noWrap:!0,align:"stretch",sx:{height:"100%"},children:[t(a.Group,{grow:!0,direction:"column",noWrap:!0,sx:{width:"40%",flexShrink:0,flexGrow:0},children:t(Ri,{})}),t(a.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:t(Yr,{})})]})}function qi({opened:e,close:r}){const{freezeLayout:n}=x.default.useContext(fe),{data:o,loading:i,viz:l,title:u}=x.default.useContext(le);return x.default.useEffect(()=>{n(e)},[e]),t(a.Modal,{size:"96vw",overflow:"inside",opened:e,onClose:r,title:u,trapFocus:!0,onDragStart:s=>{s.stopPropagation()},children:t(a.AppShell,{sx:{height:"90vh",maxHeight:"calc(100vh - 185px)",".mantine-AppShell-body":{height:"100%"},main:{height:"100%",width:"100%"}},padding:"md",children:v(a.Tabs,{initialTab:2,children:[v(a.Tabs.Tab,{label:"Data",children:[t(a.LoadingOverlay,{visible:i,exitTransitionDuration:0}),t(er,{})]}),t(a.Tabs.Tab,{label:"Panel",children:t(Hn,{})}),t(a.Tabs.Tab,{label:"Visualization",children:t(Bi,{})})]})})})}var vo="";function $i({}){const e=St(),[r,n]=x.default.useState(!1),o=()=>n(!0),i=()=>n(!1),{id:l,title:u,refreshData:s}=x.default.useContext(le),{inEditMode:d}=x.default.useContext(fe),{duplidatePanel:p,removePanelByID:c}=x.default.useContext(Xe),f=x.default.useCallback(()=>{p(l)},[p,l]),g=()=>e.openConfirmModal({title:"Delete this panel?",labels:{confirm:"Confirm",cancel:"Cancel"},onCancel:()=>console.log("Cancel"),onConfirm:()=>c(l)});return v(a.Box,{sx:{position:"relative"},children:[t(a.Box,{sx:{position:"absolute",left:0,top:0,height:28},children:t(zt,{})}),t(a.Group,{grow:!0,position:"center",px:20,className:"panel-title-wrapper",sx:{flexGrow:1},children:v(a.Menu,{control:t(a.Text,{lineClamp:1,weight:"bold",children:u}),placement:"center",children:[t(a.Menu.Item,{onClick:s,icon:t(_.Refresh,{size:14}),children:"Refresh"}),d&&t(a.Menu.Item,{onClick:o,icon:t(_.Settings,{size:14}),children:"Settings"}),t(a.Divider,{}),t(a.Menu.Item,{onClick:f,icon:t(_.Copy,{size:14}),children:"Duplicate"}),t(a.Menu.Item,{color:"red",onClick:g,icon:t(_.Trash,{size:14}),children:"Delete"})]})}),d&&t(qi,{opened:r,close:i})]})}var bo="";function st({viz:e,queryID:r,title:n,description:o,update:i,layout:l,id:u}){const s=x.default.useContext(pe),d=x.default.useContext(se),[p,c]=x.default.useState(n),[f,g]=x.default.useState(o),[m,w]=x.default.useState(r),[h,b]=x.default.useState(e),y=x.default.useMemo(()=>{if(!!m)return d.queries.find(M=>M.id===m)},[m,d.queries]);x.default.useEffect(()=>{i==null||i({id:u,layout:l,title:p,description:f,queryID:m,viz:h})},[p,f,y,h,u,l,m]);const{data:S=[],loading:T,refresh:E}=Ue.useRequest(yt({context:s,definitions:d,title:p,query:y}),{refreshDeps:[s,d,y]}),D=E;return t(le.Provider,{value:{id:u,data:S,loading:T,title:p,setTitle:c,description:f,setDescription:g,queryID:m,setQueryID:w,viz:h,setViz:b,refreshData:D},children:v(a.Container,{className:"panel-root",children:[t($i,{}),t(nn,{viz:h,data:S,loading:T})]})})}var yo="";const Vi=te.WidthProvider(vt.default);function dn({panels:e,setPanels:r,className:n="layout",rowHeight:o=10,isDraggable:i,isResizable:l}){const u=x.default.useCallback(s=>{const d=new Map;s.forEach(g=>{var m=g,{i:c}=m,f=Z(m,["i"]);d.set(c,f)});const p=e.map(c=>k(C({},c),{layout:d.get(c.id)}));r(p)},[e,r]);return t(Vi,{onLayoutChange:u,className:n,rowHeight:o,isDraggable:i,isResizable:l,children:e.map((c,p)=>{var f=c,{id:s}=f,d=Z(f,["id"]);return t("div",{"data-grid":d.layout,children:t(st,k(C({id:s},d),{update:g=>{r(m=>(m.splice(p,1,g),[...m]))}}))},s)})})}function ut(e,r){return v(a.Text,{sx:{svg:{verticalAlign:"text-bottom"}},children:[e," ",r]})}function Wi({mode:e,setMode:r}){return t(a.SegmentedControl,{value:e,onChange:r,data:[{label:ut(t(_.PlayerPlay,{size:20}),"Use"),value:ae.Use},{label:ut(t(_.Resize,{size:20}),"Layout"),value:ae.Layout},{label:ut(t(_.Paint,{size:20}),"Content"),value:ae.Edit}]})}const Ui=`
|
|
12
12
|
-- You may reference context data or SQL snippets *by name*
|
|
13
13
|
-- in SQL or VizConfig.
|
|
14
14
|
SELECT *
|
|
@@ -19,16 +19,16 @@ WHERE
|
|
|
19
19
|
-- SQL snippets
|
|
20
20
|
AND \${author_email_condition}
|
|
21
21
|
\${order_by_clause}
|
|
22
|
-
`;function Qi({}){const e=x.default.useContext(
|
|
22
|
+
`;function Qi({}){const e=x.default.useContext(pe),{sqlSnippets:r}=x.default.useContext(se),n=x.default.useMemo(()=>{const i=r.reduce((l,u)=>(l[u.key]=u.value,l),{});return JSON.stringify(i,null,2)},[r]),o=x.default.useMemo(()=>JSON.stringify(e,null,2),[e]);return v(a.Group,{direction:"column",grow:!0,sx:{border:"1px solid #eee",maxWidth:"40%",overflow:"hidden"},children:[t(a.Group,{position:"left",pl:"md",py:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef",flexGrow:0},children:t(a.Text,{weight:500,children:"Context"})}),v(a.Group,{direction:"column",px:"md",pb:"md",sx:{width:"100%"},children:[t(oe.Prism,{language:"sql",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:Ui}),t(a.Text,{weight:500,sx:{flexGrow:0},children:"Avaiable context"}),t(oe.Prism,{language:"json",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:o}),t(a.Text,{weight:500,sx:{flexGrow:0},children:"Avaiable SQL Snippets"}),t(oe.Prism,{language:"json",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:n})]})]})}function ki({value:e}){const r=x.default.useContext(pe),n=x.default.useContext(se),o=x.default.useMemo(()=>En(e,r,n),[e,r,n]);return t(oe.Prism,{language:"sql",colorScheme:"light",children:o})}function ji({value:e,onChange:r}){const n=de.useForm({initialValues:e}),o=x.default.useCallback(p=>{r(p)},[r]),i=x.default.useMemo(()=>!W.default.isEqual(e,n.values),[e,n.values]);x.default.useEffect(()=>{n.reset()},[e]);const{data:l={},loading:u}=Ue.useRequest(Mn,{refreshDeps:[]},[]),s=x.default.useMemo(()=>Object.keys(l).map(p=>({label:p,value:p})),[l]),d=x.default.useMemo(()=>{const p=l[n.values.type];return p?p.map(c=>({label:c,value:c})):[]},[l,n.values.type]);return t(a.Group,{direction:"column",grow:!0,sx:{border:"1px solid #eee",flexGrow:1},children:v("form",{onSubmit:n.onSubmit(o),children:[v(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[t(a.Text,{weight:500,children:"Edit Query"}),t(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!i||u,children:t(_.DeviceFloppy,{size:20})})]}),v(a.Group,{direction:"column",grow:!0,my:0,p:"md",pr:40,children:[v(a.Group,{grow:!0,children:[t(a.TextInput,C({placeholder:"An ID unique in this dashboard",label:"ID",required:!0,sx:{flex:1},disabled:u},n.getInputProps("id"))),t(a.Select,C({label:"Data Source Type",data:s,sx:{flex:1},disabled:u},n.getInputProps("type"))),t(a.Select,C({label:"Data Source Key",data:d,sx:{flex:1},disabled:u},n.getInputProps("key")))]}),v(a.Tabs,{children:[t(a.Tabs.Tab,{label:"SQL",children:t(a.Textarea,k(C({autosize:!0,minRows:12,maxRows:24},n.getInputProps("sql")),{className:"code-textarea"}))}),t(a.Tabs.Tab,{label:"Preview",children:t(ki,{value:n.values.sql})})]})]})]})})}function Ki({id:e,setID:r}){const{queries:n,setQueries:o}=x.default.useContext(se),i=x.default.useMemo(()=>n.find(u=>u.id===e),[n,e]),l=x.default.useCallback(u=>{if(n.findIndex(d=>d.id===e)===-1){console.error(new Error("Invalid data source id when updating by id"));return}o(d=>{const p=d.findIndex(c=>c.id===e);return d.splice(p,1,u),[...d]}),r(u.id)},[e,n,o,r]);return e?i?t(ji,{value:i,onChange:l}):t("span",{children:"Invalid Data Source ID"}):null}function Yi({id:e,setID:r}){const{queries:n,setQueries:o}=x.default.useContext(se),i=x.default.useCallback(()=>{var s,d;r((d=(s=n[0])==null?void 0:s.id)!=null?d:"")},[r,n]);x.default.useEffect(()=>{if(!e){i();return}n.findIndex(d=>d.id===e)===-1&&i()},[e,n,i]);const l=x.default.useMemo(()=>n.map(s=>({value:s.id,label:s.id})),[n]),u=x.default.useCallback(()=>{const s={id:H.randomId(),type:"postgresql",key:"",sql:""};o(d=>[...d,s]),r(s.id)},[o,r]);return t(a.Group,{pb:"xl",children:v(a.Group,{position:"left",sx:{maxWidth:"600px",alignItems:"baseline"},children:[t(a.Text,{children:"Select a Query"}),t(a.Select,{data:l,value:e,onChange:r,allowDeselect:!1,clearable:!1,sx:{flexGrow:1}}),t(a.Text,{children:"or"}),t(a.Group,{position:"center",mt:"md",children:t(a.Button,{onClick:u,children:"Add a Query"})})]})})}function Xi({}){const[e,r]=x.default.useState("");return v(a.AppShell,{sx:{height:"90vh",maxHeight:"calc(100vh - 225px)",".mantine-AppShell-body":{height:"100%"},main:{height:"100%",width:"100%",padding:0,margin:0}},padding:"md",children:[v(a.Group,{direction:"row",position:"apart",grow:!0,align:"stretch",noWrap:!0,children:[v(a.Group,{direction:"column",grow:!0,sx:{flexGrow:1,maxWidth:"calc(60% - 16px)"},children:[t(Yi,{id:e,setID:r}),t(Ki,{id:e,setID:r})]}),t(Qi,{})]}),t(Lt,{id:e})]})}function Ji({}){const e=x.default.useContext(pe),r="SELECT *\nFROM commit\nWHERE author_time BETWEEN '${timeRange?.[0].toISOString()}' AND '${timeRange?.[1].toISOString()}'";return v(a.Group,{direction:"column",grow:!0,sx:{border:"1px solid #eee",overflow:"hidden"},children:[t(a.Group,{position:"left",pl:"md",py:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef",flexGrow:0},children:t(a.Text,{weight:500,children:"Context"})}),v(a.Group,{direction:"column",px:"md",pb:"md",sx:{width:"100%"},children:[t(oe.Prism,{language:"sql",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:`-- You may refer context data *by name*
|
|
23
23
|
-- in SQL or VizConfig.
|
|
24
24
|
|
|
25
|
-
${r}`}),t(a.Text,{weight:500,sx:{flexGrow:0},children:"Avaiable context entries"}),t(
|
|
25
|
+
${r}`}),t(a.Text,{weight:500,sx:{flexGrow:0},children:"Avaiable context entries"}),t(oe.Prism,{language:"json",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:JSON.stringify(e,null,2)})]})]})}function Zi({value:e}){const r=x.default.useContext(pe),n=x.default.useMemo(()=>Tn(e,r),[e,r]);return v(a.Group,{direction:"column",noWrap:!0,grow:!0,children:[t(a.Text,{children:"Preview"}),t(oe.Prism,{language:"sql",noCopy:!0,colorScheme:"dark",children:n})]})}function Hi({}){const{sqlSnippets:e,setSQLSnippets:r}=x.default.useContext(se),n=x.default.useMemo(()=>({snippets:de.formList(e!=null?e:[])}),[e]),o=de.useForm({initialValues:n}),i=()=>o.addListItem("snippets",{key:H.randomId(),value:""}),l=x.default.useMemo(()=>!W.default.isEqual(o.values,n),[o.values,n]),u=({snippets:s})=>{r(s)};return t(a.Group,{direction:"column",grow:!0,sx:{border:"1px solid #eee",flexGrow:1},children:v("form",{onSubmit:o.onSubmit(u),children:[v(a.Group,{position:"left",pl:"md",py:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef",flexGrow:0},children:[t(a.Text,{weight:500,children:"SQL Snippets"}),t(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!l,children:t(_.DeviceFloppy,{size:20})})]}),t(a.Group,{px:"md",pb:"md",pt:"md",children:v(a.Group,{direction:"column",sx:{width:"100%",position:"relative"},grow:!0,children:[o.values.snippets.map((s,d)=>v(a.Group,{direction:"column",grow:!0,my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[t(a.TextInput,C({label:"Key",required:!0},o.getListInputProps("snippets",d,"key"))),t(a.Textarea,k(C({minRows:3,label:"Value",required:!0},o.getListInputProps("snippets",d,"value")),{className:"code-textarea"})),t(Zi,{value:o.values.snippets[d].value}),t(a.ActionIcon,{color:"red",variant:"hover",onClick:()=>o.removeListItem("snippets",d),sx:{position:"absolute",top:15,right:5},children:t(_.Trash,{size:16})})]},d)),t(a.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"40%"},mx:"auto",children:t(a.Button,{variant:"default",onClick:i,children:"Add a snippet"})})]})})]})})}const eo=`SELECT *
|
|
26
26
|
FROM commit
|
|
27
|
-
WHERE \${author_time_condition}`;function to(){return v(a.Group,{direction:"column",grow:!0,sx:{border:"1px solid #eee",overflow:"hidden"},children:[t(a.Group,{position:"left",pl:"md",py:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef",flexGrow:0},children:t(a.Text,{weight:500,children:"Guide"})}),t(a.Group,{direction:"column",px:"md",pb:"md",sx:{width:"100%"},children:t(
|
|
27
|
+
WHERE \${author_time_condition}`;function to(){return v(a.Group,{direction:"column",grow:!0,sx:{border:"1px solid #eee",overflow:"hidden"},children:[t(a.Group,{position:"left",pl:"md",py:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef",flexGrow:0},children:t(a.Text,{weight:500,children:"Guide"})}),t(a.Group,{direction:"column",px:"md",pb:"md",sx:{width:"100%"},children:t(oe.Prism,{language:"sql",sx:{width:"100%"},noCopy:!0,trim:!1,colorScheme:"dark",children:`-- You may refer context data *by name*
|
|
28
28
|
-- in SQL or VizConfig.
|
|
29
29
|
|
|
30
30
|
${eo}
|
|
31
31
|
|
|
32
32
|
-- where author_time_condition is:
|
|
33
33
|
author_time BETWEEN '\${timeRange?.[0].toISOString()}' AND '\${timeRange?.[1].toISOString()}'
|
|
34
|
-
`})})]})}function no({}){return t(a.AppShell,{sx:{height:"90vh",maxHeight:"calc(100vh - 225px)",".mantine-AppShell-body":{height:"100%"},main:{height:"100%",width:"100%",padding:0,margin:0}},padding:"md",children:v(a.Group,{direction:"row",position:"apart",grow:!0,align:"stretch",noWrap:!0,children:[t(Hi,{}),v(a.Group,{direction:"column",grow:!0,noWrap:!0,sx:{maxWidth:"40%"},children:[t(to,{}),t(Ji,{})]})]})})}function ro({opened:e,close:r}){const{freezeLayout:n}=x.default.useContext(
|
|
34
|
+
`})})]})}function no({}){return t(a.AppShell,{sx:{height:"90vh",maxHeight:"calc(100vh - 225px)",".mantine-AppShell-body":{height:"100%"},main:{height:"100%",width:"100%",padding:0,margin:0}},padding:"md",children:v(a.Group,{direction:"row",position:"apart",grow:!0,align:"stretch",noWrap:!0,children:[t(Hi,{}),v(a.Group,{direction:"column",grow:!0,noWrap:!0,sx:{maxWidth:"40%"},children:[t(to,{}),t(Ji,{})]})]})})}function ro({opened:e,close:r}){const{freezeLayout:n}=x.default.useContext(fe);return x.default.useEffect(()=>{n(e)},[e]),t(a.Modal,{size:"96vw",overflow:"inside",opened:e,onClose:r,title:"Data Settings",trapFocus:!0,onDragStart:o=>{o.stopPropagation()},children:v(a.Tabs,{children:[t(a.Tabs.Tab,{label:"SQL Snippet",children:t(no,{})}),t(a.Tabs.Tab,{label:"Queries",children:t(Xi,{})})]})})}function io({opened:e,close:r,getCurrentSchema:n}){const{freezeLayout:o}=x.default.useContext(fe);x.default.useEffect(()=>{o(e)},[e]);const i=x.default.useMemo(()=>JSON.stringify(n(),null,2),[e]);return t(a.Modal,{size:"96vw",overflow:"inside",opened:e,onClose:r,title:"This dashboard is described by this schema",trapFocus:!0,onDragStart:l=>{l.stopPropagation()},children:t(oe.Prism,{language:"json",sx:{width:"100%"},colorScheme:"dark",children:i})})}function oo({mode:e,setMode:r,hasChanges:n,saveChanges:o,revertChanges:i,getCurrentSchema:l}){const{addPanel:u}=x.default.useContext(Xe),{inLayoutMode:s,inEditMode:d,inUseMode:p}=x.default.useContext(fe),[c,f]=x.default.useState(!1),g=()=>f(!0),m=()=>f(!1),[w,h]=x.default.useState(!1),b=()=>h(!0),y=()=>h(!1);return v(a.Group,{position:"apart",pt:"sm",pb:"xs",children:[t(a.Group,{position:"left",children:t(Wi,{mode:e,setMode:r})}),v(a.Group,{position:"right",children:[!p&&t(a.Button,{variant:"default",size:"sm",onClick:u,leftIcon:t(_.PlaylistAdd,{size:20}),children:"Add a Panel"}),d&&t(a.Button,{variant:"default",size:"sm",onClick:g,leftIcon:t(_.Database,{size:20}),children:"Data Settings"}),!p&&t(a.Button,{variant:"default",size:"sm",onClick:o,disabled:!n,leftIcon:t(_.DeviceFloppy,{size:20}),children:"Save Changes"}),!p&&t(a.Button,{color:"red",size:"sm",disabled:!n,onClick:i,leftIcon:t(_.Recycle,{size:20}),children:"Revert Changes"}),v(a.Menu,{control:t(a.Button,{variant:"default",size:"sm",leftIcon:t(_.Share,{size:20}),children:"Export"}),children:[t(a.Menu.Item,{disabled:!0,children:"Download Data"}),t(a.Menu.Item,{onClick:b,children:"View Schema"})]})]}),t(ro,{opened:c,close:m}),t(io,{opened:w,close:y,getCurrentSchema:l})]})}function ao({context:e,dashboard:r,update:n,className:o="dashboard",config:i}){De.baseURL!==i.apiBaseURL&&(De.baseURL=i.apiBaseURL);const[l,u]=x.default.useState(!1),[s,d]=x.default.useState(r.panels),[p,c]=x.default.useState(r.definition.sqlSnippets),[f,g]=x.default.useState(r.definition.queries),[m,w]=x.default.useState(ae.Edit),h=x.default.useMemo(()=>{const $=I=>JSON.parse(JSON.stringify(I));return!W.default.isEqual($(s),$(r.panels))||!W.default.isEqual(p,r.definition.sqlSnippets)?!0:!W.default.isEqual(f,r.definition.queries)},[r,s,p,f]),b=async()=>{const $=k(C({},r),{panels:s,definition:{sqlSnippets:p,queries:f}});await n($)},y=()=>{d(r.panels),c(r.definition.sqlSnippets),g(r.definition.queries)},S=()=>{const $=H.randomId(),P={id:$,layout:{x:0,y:1/0,w:3,h:15},title:`Panel - ${$}`,description:"<p><br></p>",queryID:"",viz:{type:"text",conf:{}}};d(I=>[...I,P])},T=$=>{try{const P=s.find(L=>L.id===$);if(!P)throw new Error(`[duplicate panel] Can't find a panel by id[${$}]`);const I=k(C({},P),{id:H.randomId(),layout:k(C({},P.layout),{x:0,y:1/0})});d(L=>[...L,I])}catch(P){console.error(P)}},E=$=>{const P=s.findIndex(I=>I.id===$);d(I=>(I.splice(P,1),[...I]))},D=m===ae.Edit,M=m===ae.Layout,A=m===ae.Use,G=x.default.useMemo(()=>({sqlSnippets:p,setSQLSnippets:c,queries:f,setQueries:g}),[p,c,f,g]),Y=x.default.useCallback(()=>({panels:s,definition:{sqlSnippets:p,queries:f}}),[p,f,s]);return t(Gt,{children:t(pe.Provider,{value:e,children:t(Xe.Provider,{value:{addPanel:S,duplidatePanel:T,removePanelByID:E},children:t(se.Provider,{value:G,children:t(fe.Provider,{value:{layoutFrozen:l,freezeLayout:u,mode:m,inEditMode:D,inLayoutMode:M,inUseMode:A},children:v("div",{className:o,children:[t(oo,{mode:m,setMode:w,hasChanges:h,saveChanges:b,revertChanges:y,getCurrentSchema:Y}),t(dn,{panels:s,setPanels:d,isDraggable:M,isResizable:M})]})})})})})})}const lo=te.WidthProvider(vt.default);function so({panels:e,className:r="layout",rowHeight:n=10}){return t(lo,{className:r,rowHeight:n,isDraggable:!1,isResizable:!1,children:e.map(l=>{var u=l,{id:o}=u,i=Z(u,["id"]);return t("div",{"data-grid":i.layout,children:t(st,C({id:o},i))},o)})})}function uo({context:e,dashboard:r,className:n="dashboard",config:o}){De.baseURL!==o.apiBaseURL&&(De.baseURL=o.apiBaseURL);const i=x.default.useMemo(()=>k(C({},r.definition),{setSQLSnippets:()=>{},setQueries:()=>{}}),[r]);return t(Gt,{children:t(pe.Provider,{value:e,children:t("div",{className:n,children:t(se.Provider,{value:i,children:t(fe.Provider,{value:{layoutFrozen:!0,freezeLayout:()=>{},mode:ae.Use,inEditMode:!1,inLayoutMode:!1,inUseMode:!0},children:t(so,{panels:r.panels})})})})})})}z.ContextInfoContext=pe,z.Dashboard=ao,z.DashboardLayout=dn,z.DashboardMode=ae,z.DefinitionContext=se,z.LayoutStateContext=fe,z.Panel=st,z.PanelContext=le,z.ReadOnlyDashboard=uo,z.initialContextInfoContext=Pn,Object.defineProperties(z,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/dist/main/actions.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ interface IDashboardActions {
|
|
|
6
6
|
hasChanges: boolean;
|
|
7
7
|
saveChanges: () => void;
|
|
8
8
|
revertChanges: () => void;
|
|
9
|
+
getCurrentSchema: () => any;
|
|
9
10
|
}
|
|
10
|
-
export declare function DashboardActions({ mode, setMode, hasChanges, saveChanges, revertChanges, }: IDashboardActions): JSX.Element;
|
|
11
|
+
export declare function DashboardActions({ mode, setMode, hasChanges, saveChanges, revertChanges, getCurrentSchema, }: IDashboardActions): JSX.Element;
|
|
11
12
|
export {};
|