@devtable/dashboard 4.16.5 → 4.16.7

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.
@@ -1,4 +1,4 @@
1
- (function(D,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("@mantine/core"),require("@mantine/modals"),require("ahooks"),require("mobx-react-lite"),require("react"),require("lodash"),require("react-hook-form"),require("@mantine/dates"),require("tabler-icons-react"),require("axios"),require("@mantine/prism"),require("mobx-state-tree"),require("@mantine/hooks"),require("@mantine/rte"),require("mobx"),require("@mantine/notifications"),require("eventemitter2"),require("chroma-js"),require("numbro"),require("d3-array"),require("@tanstack/react-table"),require("react-virtual"),require("@mantine/form"),require("echarts-for-react/lib/core"),require("echarts/charts"),require("echarts/core"),require("echarts/renderers"),require("echarts-gl"),require("echarts/components"),require("echarts-stat"),require("d3-regression"),require("stickybits"),require("react-grid-layout"),require("jszip")):typeof define=="function"&&define.amd?define(["exports","@mantine/core","@mantine/modals","ahooks","mobx-react-lite","react","lodash","react-hook-form","@mantine/dates","tabler-icons-react","axios","@mantine/prism","mobx-state-tree","@mantine/hooks","@mantine/rte","mobx","@mantine/notifications","eventemitter2","chroma-js","numbro","d3-array","@tanstack/react-table","react-virtual","@mantine/form","echarts-for-react/lib/core","echarts/charts","echarts/core","echarts/renderers","echarts-gl","echarts/components","echarts-stat","d3-regression","stickybits","react-grid-layout","jszip"],a):(D=typeof globalThis<"u"?globalThis:D||self,a(D.dashboard={},D["@mantine/core"],D["@mantine/modals"],D.ahooks,D["mobx-react-lite"],D.React,D._,D["react-hook-form"],D["@mantine/dates"],D["tabler-icons-react"],D.axios,D["@mantine/prism"],D["mobx-state-tree"],D["@mantine/hooks"],D["@mantine/rte"],D.mobx,D["@mantine/notifications"],D.eventemitter2,D["chroma-js"],D.numbro,D["d3-array"],D["@tanstack/react-table"],D["react-virtual"],D["@mantine/form"],D["echarts-for-react/lib/core"],D["echarts/charts"],D["echarts/core"],D["echarts/renderers"],D["echarts-gl"],D["echarts/components"],D["echarts-stat"],D["d3-regression"],D.stickybits,D["react-grid-layout"],D.jszip))})(this,function(D,a,he,L,A,w,S,C,ci,T,di,Ie,y,U,ft,X,ht,pi,fi,hi,gi,_e,mi,gt,yi,de,vi,ye,td,$,cn,bi,xi,mt,Ci){"use strict";var Hc=Object.defineProperty;var ed=(D,a,he)=>a in D?Hc(D,a,{enumerable:!0,configurable:!0,writable:!0,value:he}):D[a]=he;var V=(D,a,he)=>(ed(D,typeof a!="symbol"?a+"":a,he),he);const se=t=>t&&typeof t=="object"&&"default"in t?t:{default:t};function dn(t){if(t&&t.__esModule)return t;const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,i.get?i:{enumerable:!0,get:()=>t[n]})}}return e.default=t,Object.freeze(e)}const b=se(w),O=se(S),wi=se(di),pn=se(ft),fn=se(pi),Pe=se(fi),re=se(hi),ve=se(yi),J=dn(vi),be=dn(bi),Si=se(xi),hn=se(mt),Ii=se(Ci),Di={viewPanelInFullScreen:O.default.noop,inFullScreen:!1},yt=b.default.createContext(Di),gn=b.default.createContext(null),vt=gn.Provider;function Q(){const t=b.default.useContext(gn);if(!t)throw new Error("Please use ModelContextProvider");return t}var ze=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Ye={exports:{}},Oe={};/**
1
+ (function(M,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("@mantine/core"),require("@mantine/modals"),require("ahooks"),require("mobx-react-lite"),require("react"),require("lodash"),require("react-hook-form"),require("@mantine/dates"),require("tabler-icons-react"),require("axios"),require("@mantine/prism"),require("mobx-state-tree"),require("@mantine/hooks"),require("@mantine/rte"),require("mobx"),require("@mantine/notifications"),require("eventemitter2"),require("chroma-js"),require("numbro"),require("d3-array"),require("react-virtual"),require("@mantine/form"),require("echarts-for-react/lib/core"),require("echarts/charts"),require("echarts/core"),require("echarts/renderers"),require("echarts-gl"),require("echarts/components"),require("echarts-stat"),require("d3-regression"),require("stickybits"),require("react-grid-layout"),require("jszip")):typeof define=="function"&&define.amd?define(["exports","@mantine/core","@mantine/modals","ahooks","mobx-react-lite","react","lodash","react-hook-form","@mantine/dates","tabler-icons-react","axios","@mantine/prism","mobx-state-tree","@mantine/hooks","@mantine/rte","mobx","@mantine/notifications","eventemitter2","chroma-js","numbro","d3-array","react-virtual","@mantine/form","echarts-for-react/lib/core","echarts/charts","echarts/core","echarts/renderers","echarts-gl","echarts/components","echarts-stat","d3-regression","stickybits","react-grid-layout","jszip"],a):(M=typeof globalThis<"u"?globalThis:M||self,a(M.dashboard={},M["@mantine/core"],M["@mantine/modals"],M.ahooks,M["mobx-react-lite"],M.React,M._,M["react-hook-form"],M["@mantine/dates"],M["tabler-icons-react"],M.axios,M["@mantine/prism"],M["mobx-state-tree"],M["@mantine/hooks"],M["@mantine/rte"],M.mobx,M["@mantine/notifications"],M.eventemitter2,M["chroma-js"],M.numbro,M["d3-array"],M["react-virtual"],M["@mantine/form"],M["echarts-for-react/lib/core"],M["echarts/charts"],M["echarts/core"],M["echarts/renderers"],M["echarts-gl"],M["echarts/components"],M["echarts-stat"],M["d3-regression"],M.stickybits,M["react-grid-layout"],M.jszip))})(this,function(M,a,be,j,E,w,_,S,Hi,V,Yi,Fe,y,J,wt,K,_t,Xi,Ji,Ki,Zi,eo,It,to,he,no,we,fg,W,$n,ro,io,Dt,oo){"use strict";var gg=Object.defineProperty;var pg=(M,a,be)=>a in M?gg(M,a,{enumerable:!0,configurable:!0,writable:!0,value:be}):M[a]=be;var $=(M,a,be)=>(pg(M,typeof a!="symbol"?a+"":a,be),be);const de=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function At(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const C=de(w),Pn=At(w),z=de(_),ao=de(Yi),kn=de(wt),On=de(Xi),Le=de(Ji),ae=de(Ki),_e=de(to),Z=At(no),Ie=At(ro),lo=de(io),zn=de(Dt),so=de(oo),uo={viewPanelInFullScreen:z.default.noop,inFullScreen:!1},Mt=C.default.createContext(uo),Gn=C.default.createContext(null),Vt=Gn.Provider;function Y(){const e=C.default.useContext(Gn);if(!e)throw new Error("Please use ModelContextProvider");return e}var Ne=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Ze={exports:{}},qe={};/**
2
2
  * @license React
3
3
  * react-jsx-runtime.production.min.js
4
4
  *
@@ -6,7 +6,7 @@
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 mn;function Ti(){if(mn)return Oe;mn=1;var t=b.default,e=Symbol.for("react.element"),n=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,s=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function o(u,d,h){var f,m={},g=null,v=null;h!==void 0&&(g=""+h),d.key!==void 0&&(g=""+d.key),d.ref!==void 0&&(v=d.ref);for(f in d)i.call(d,f)&&!l.hasOwnProperty(f)&&(m[f]=d[f]);if(u&&u.defaultProps)for(f in d=u.defaultProps,d)m[f]===void 0&&(m[f]=d[f]);return{$$typeof:e,type:u,key:g,ref:v,props:m,_owner:s.current}}return Oe.Fragment=n,Oe.jsx=o,Oe.jsxs=o,Oe}var Fe={};/**
9
+ */var Ln;function co(){if(Ln)return qe;Ln=1;var e=C.default,t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,i=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function s(u,d,p){var c,f={},m=null,v=null;p!==void 0&&(m=""+p),d.key!==void 0&&(m=""+d.key),d.ref!==void 0&&(v=d.ref);for(c in d)r.call(d,c)&&!l.hasOwnProperty(c)&&(f[c]=d[c]);if(u&&u.defaultProps)for(c in d=u.defaultProps,d)f[c]===void 0&&(f[c]=d[c]);return{$$typeof:t,type:u,key:m,ref:v,props:f,_owner:i.current}}return qe.Fragment=n,qe.jsx=s,qe.jsxs=s,qe}var Be={};/**
10
10
  * @license React
11
11
  * react-jsx-runtime.development.js
12
12
  *
@@ -14,17 +14,17 @@
14
14
  *
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
- */var yn;function _i(){return yn||(yn=1,process.env.NODE_ENV!=="production"&&function(){var t=b.default,e=Symbol.for("react.element"),n=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),o=Symbol.for("react.provider"),u=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),f=Symbol.for("react.suspense_list"),m=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),v=Symbol.for("react.offscreen"),_=Symbol.iterator,k="@@iterator";function E(p){if(p===null||typeof p!="object")return null;var x=_&&p[_]||p[k];return typeof x=="function"?x:null}var R=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function B(p){{for(var x=arguments.length,I=new Array(x>1?x-1:0),M=1;M<x;M++)I[M-1]=arguments[M];ue("error",p,I)}}function ue(p,x,I){{var M=R.ReactDebugCurrentFrame,F=M.getStackAddendum();F!==""&&(x+="%s",I=I.concat([F]));var G=I.map(function(z){return String(z)});G.unshift("Warning: "+x),Function.prototype.apply.call(console[p],console,G)}}var H=!1,Ne=!1,Me=!1,je=!1,st=!1,We;We=Symbol.for("react.module.reference");function lt(p){return!!(typeof p=="string"||typeof p=="function"||p===i||p===l||st||p===s||p===h||p===f||je||p===v||H||Ne||Me||typeof p=="object"&&p!==null&&(p.$$typeof===g||p.$$typeof===m||p.$$typeof===o||p.$$typeof===u||p.$$typeof===d||p.$$typeof===We||p.getModuleId!==void 0))}function ee(p,x,I){var M=p.displayName;if(M)return M;var F=x.displayName||x.name||"";return F!==""?I+"("+F+")":I}function ce(p){return p.displayName||"Context"}function te(p){if(p==null)return null;if(typeof p.tag=="number"&&B("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof p=="function")return p.displayName||p.name||null;if(typeof p=="string")return p;switch(p){case i:return"Fragment";case n:return"Portal";case l:return"Profiler";case s:return"StrictMode";case h:return"Suspense";case f:return"SuspenseList"}if(typeof p=="object")switch(p.$$typeof){case u:var x=p;return ce(x)+".Consumer";case o:var I=p;return ce(I._context)+".Provider";case d:return ee(p,p.render,"ForwardRef");case m:var M=p.displayName||null;return M!==null?M:te(p.type)||"Memo";case g:{var F=p,G=F._payload,z=F._init;try{return te(z(G))}catch{return null}}}return null}var ne=Object.assign,Se=0,$r,Nr,jr,Wr,Qr,Yr,Ur;function Xr(){}Xr.__reactDisabledLog=!0;function Ac(){{if(Se===0){$r=console.log,Nr=console.info,jr=console.warn,Wr=console.error,Qr=console.group,Yr=console.groupCollapsed,Ur=console.groupEnd;var p={configurable:!0,enumerable:!0,value:Xr,writable:!0};Object.defineProperties(console,{info:p,log:p,warn:p,error:p,group:p,groupCollapsed:p,groupEnd:p})}Se++}}function kc(){{if(Se--,Se===0){var p={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:ne({},p,{value:$r}),info:ne({},p,{value:Nr}),warn:ne({},p,{value:jr}),error:ne({},p,{value:Wr}),group:ne({},p,{value:Qr}),groupCollapsed:ne({},p,{value:Yr}),groupEnd:ne({},p,{value:Ur})})}Se<0&&B("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var tn=R.ReactCurrentDispatcher,nn;function ot(p,x,I){{if(nn===void 0)try{throw Error()}catch(F){var M=F.stack.trim().match(/\n( *(at )?)/);nn=M&&M[1]||""}return`
18
- `+nn+p}}var rn=!1,ut;{var Mc=typeof WeakMap=="function"?WeakMap:Map;ut=new Mc}function Jr(p,x){if(!p||rn)return"";{var I=ut.get(p);if(I!==void 0)return I}var M;rn=!0;var F=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var G;G=tn.current,tn.current=null,Ac();try{if(x){var z=function(){throw Error()};if(Object.defineProperty(z.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(z,[])}catch(me){M=me}Reflect.construct(p,[],z)}else{try{z.call()}catch(me){M=me}p.call(z.prototype)}}else{try{throw Error()}catch(me){M=me}p()}}catch(me){if(me&&M&&typeof me.stack=="string"){for(var P=me.stack.split(`
19
- `),Z=M.stack.split(`
20
- `),W=P.length-1,Y=Z.length-1;W>=1&&Y>=0&&P[W]!==Z[Y];)Y--;for(;W>=1&&Y>=0;W--,Y--)if(P[W]!==Z[Y]){if(W!==1||Y!==1)do if(W--,Y--,Y<0||P[W]!==Z[Y]){var ae=`
21
- `+P[W].replace(" at new "," at ");return p.displayName&&ae.includes("<anonymous>")&&(ae=ae.replace("<anonymous>",p.displayName)),typeof p=="function"&&ut.set(p,ae),ae}while(W>=1&&Y>=0);break}}}finally{rn=!1,tn.current=G,kc(),Error.prepareStackTrace=F}var Ve=p?p.displayName||p.name:"",ui=Ve?ot(Ve):"";return typeof p=="function"&&ut.set(p,ui),ui}function Ec(p,x,I){return Jr(p,!1)}function Vc(p){var x=p.prototype;return!!(x&&x.isReactComponent)}function ct(p,x,I){if(p==null)return"";if(typeof p=="function")return Jr(p,Vc(p));if(typeof p=="string")return ot(p);switch(p){case h:return ot("Suspense");case f:return ot("SuspenseList")}if(typeof p=="object")switch(p.$$typeof){case d:return Ec(p.render);case m:return ct(p.type,x,I);case g:{var M=p,F=M._payload,G=M._init;try{return ct(G(F),x,I)}catch{}}}return""}var dt=Object.prototype.hasOwnProperty,Kr={},Zr=R.ReactDebugCurrentFrame;function pt(p){if(p){var x=p._owner,I=ct(p.type,p._source,x?x.type:null);Zr.setExtraStackFrame(I)}else Zr.setExtraStackFrame(null)}function Pc(p,x,I,M,F){{var G=Function.call.bind(dt);for(var z in p)if(G(p,z)){var P=void 0;try{if(typeof p[z]!="function"){var Z=Error((M||"React class")+": "+I+" type `"+z+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof p[z]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw Z.name="Invariant Violation",Z}P=p[z](x,z,M,I,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(W){P=W}P&&!(P instanceof Error)&&(pt(F),B("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",M||"React class",I,z,typeof P),pt(null)),P instanceof Error&&!(P.message in Kr)&&(Kr[P.message]=!0,pt(F),B("Failed %s type: %s",I,P.message),pt(null))}}}var zc=Array.isArray;function an(p){return zc(p)}function Oc(p){{var x=typeof Symbol=="function"&&Symbol.toStringTag,I=x&&p[Symbol.toStringTag]||p.constructor.name||"Object";return I}}function Fc(p){try{return Hr(p),!1}catch{return!0}}function Hr(p){return""+p}function ei(p){if(Fc(p))return B("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Oc(p)),Hr(p)}var Qe=R.ReactCurrentOwner,qc={key:!0,ref:!0,__self:!0,__source:!0},ti,ni,sn;sn={};function Gc(p){if(dt.call(p,"ref")){var x=Object.getOwnPropertyDescriptor(p,"ref").get;if(x&&x.isReactWarning)return!1}return p.ref!==void 0}function Bc(p){if(dt.call(p,"key")){var x=Object.getOwnPropertyDescriptor(p,"key").get;if(x&&x.isReactWarning)return!1}return p.key!==void 0}function Rc(p,x){if(typeof p.ref=="string"&&Qe.current&&x&&Qe.current.stateNode!==x){var I=te(Qe.current.type);sn[I]||(B('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',te(Qe.current.type),p.ref),sn[I]=!0)}}function Lc(p,x){{var I=function(){ti||(ti=!0,B("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",x))};I.isReactWarning=!0,Object.defineProperty(p,"key",{get:I,configurable:!0})}}function $c(p,x){{var I=function(){ni||(ni=!0,B("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",x))};I.isReactWarning=!0,Object.defineProperty(p,"ref",{get:I,configurable:!0})}}var Nc=function(p,x,I,M,F,G,z){var P={$$typeof:e,type:p,key:x,ref:I,props:z,_owner:G};return P._store={},Object.defineProperty(P._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(P,"_self",{configurable:!1,enumerable:!1,writable:!1,value:M}),Object.defineProperty(P,"_source",{configurable:!1,enumerable:!1,writable:!1,value:F}),Object.freeze&&(Object.freeze(P.props),Object.freeze(P)),P};function jc(p,x,I,M,F){{var G,z={},P=null,Z=null;I!==void 0&&(ei(I),P=""+I),Bc(x)&&(ei(x.key),P=""+x.key),Gc(x)&&(Z=x.ref,Rc(x,F));for(G in x)dt.call(x,G)&&!qc.hasOwnProperty(G)&&(z[G]=x[G]);if(p&&p.defaultProps){var W=p.defaultProps;for(G in W)z[G]===void 0&&(z[G]=W[G])}if(P||Z){var Y=typeof p=="function"?p.displayName||p.name||"Unknown":p;P&&Lc(z,Y),Z&&$c(z,Y)}return Nc(p,P,Z,F,M,Qe.current,z)}}var ln=R.ReactCurrentOwner,ri=R.ReactDebugCurrentFrame;function Ee(p){if(p){var x=p._owner,I=ct(p.type,p._source,x?x.type:null);ri.setExtraStackFrame(I)}else ri.setExtraStackFrame(null)}var on;on=!1;function un(p){return typeof p=="object"&&p!==null&&p.$$typeof===e}function ii(){{if(ln.current){var p=te(ln.current.type);if(p)return`
17
+ */var Nn;function go(){return Nn||(Nn=1,process.env.NODE_ENV!=="production"&&function(){var e=C.default,t=Symbol.for("react.element"),n=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),u=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),c=Symbol.for("react.suspense_list"),f=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),v=Symbol.for("react.offscreen"),b=Symbol.iterator,I="@@iterator";function A(h){if(h===null||typeof h!="object")return null;var x=b&&h[b]||h[I];return typeof x=="function"?x:null}var T=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function k(h){{for(var x=arguments.length,D=new Array(x>1?x-1:0),R=1;R<x;R++)D[R-1]=arguments[R];B("error",h,D)}}function B(h,x,D){{var R=T.ReactDebugCurrentFrame,G=R.getStackAddendum();G!==""&&(x+="%s",D=D.concat([G]));var q=D.map(function(O){return String(O)});q.unshift("Warning: "+x),Function.prototype.apply.call(console[h],console,q)}}var N=!1,te=!1,ye=!1,Re=!1,mt=!1,Je;Je=Symbol.for("react.module.reference");function vt(h){return!!(typeof h=="string"||typeof h=="function"||h===r||h===l||mt||h===i||h===p||h===c||Re||h===v||N||te||ye||typeof h=="object"&&h!==null&&(h.$$typeof===m||h.$$typeof===f||h.$$typeof===s||h.$$typeof===u||h.$$typeof===d||h.$$typeof===Je||h.getModuleId!==void 0))}function re(h,x,D){var R=h.displayName;if(R)return R;var G=x.displayName||x.name||"";return G!==""?D+"("+G+")":D}function fe(h){return h.displayName||"Context"}function ie(h){if(h==null)return null;if(typeof h.tag=="number"&&k("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof h=="function")return h.displayName||h.name||null;if(typeof h=="string")return h;switch(h){case r:return"Fragment";case n:return"Portal";case l:return"Profiler";case i:return"StrictMode";case p:return"Suspense";case c:return"SuspenseList"}if(typeof h=="object")switch(h.$$typeof){case u:var x=h;return fe(x)+".Consumer";case s:var D=h;return fe(D._context)+".Provider";case d:return re(h,h.render,"ForwardRef");case f:var R=h.displayName||null;return R!==null?R:ie(h.type)||"Memo";case m:{var G=h,q=G._payload,O=G._init;try{return ie(O(q))}catch{return null}}}return null}var oe=Object.assign,Te=0,Di,Ai,Mi,Vi,Ei,Ri,Ti;function Fi(){}Fi.__reactDisabledLog=!0;function Nc(){{if(Te===0){Di=console.log,Ai=console.info,Mi=console.warn,Vi=console.error,Ei=console.group,Ri=console.groupCollapsed,Ti=console.groupEnd;var h={configurable:!0,enumerable:!0,value:Fi,writable:!0};Object.defineProperties(console,{info:h,log:h,warn:h,error:h,group:h,groupCollapsed:h,groupEnd:h})}Te++}}function qc(){{if(Te--,Te===0){var h={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:oe({},h,{value:Di}),info:oe({},h,{value:Ai}),warn:oe({},h,{value:Mi}),error:oe({},h,{value:Vi}),group:oe({},h,{value:Ei}),groupCollapsed:oe({},h,{value:Ri}),groupEnd:oe({},h,{value:Ti})})}Te<0&&k("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Dn=T.ReactCurrentDispatcher,An;function yt(h,x,D){{if(An===void 0)try{throw Error()}catch(G){var R=G.stack.trim().match(/\n( *(at )?)/);An=R&&R[1]||""}return`
18
+ `+An+h}}var Mn=!1,bt;{var Bc=typeof WeakMap=="function"?WeakMap:Map;bt=new Bc}function $i(h,x){if(!h||Mn)return"";{var D=bt.get(h);if(D!==void 0)return D}var R;Mn=!0;var G=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var q;q=Dn.current,Dn.current=null,Nc();try{if(x){var O=function(){throw Error()};if(Object.defineProperty(O.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(O,[])}catch(Se){R=Se}Reflect.construct(h,[],O)}else{try{O.call()}catch(Se){R=Se}h.call(O.prototype)}}else{try{throw Error()}catch(Se){R=Se}h()}}catch(Se){if(Se&&R&&typeof Se.stack=="string"){for(var P=Se.stack.split(`
19
+ `),ne=R.stack.split(`
20
+ `),H=P.length-1,X=ne.length-1;H>=1&&X>=0&&P[H]!==ne[X];)X--;for(;H>=1&&X>=0;H--,X--)if(P[H]!==ne[X]){if(H!==1||X!==1)do if(H--,X--,X<0||P[H]!==ne[X]){var ue=`
21
+ `+P[H].replace(" at new "," at ");return h.displayName&&ue.includes("<anonymous>")&&(ue=ue.replace("<anonymous>",h.displayName)),typeof h=="function"&&bt.set(h,ue),ue}while(H>=1&&X>=0);break}}}finally{Mn=!1,Dn.current=q,qc(),Error.prepareStackTrace=G}var Ge=h?h.displayName||h.name:"",Qi=Ge?yt(Ge):"";return typeof h=="function"&&bt.set(h,Qi),Qi}function jc(h,x,D){return $i(h,!1)}function Wc(h){var x=h.prototype;return!!(x&&x.isReactComponent)}function Ct(h,x,D){if(h==null)return"";if(typeof h=="function")return $i(h,Wc(h));if(typeof h=="string")return yt(h);switch(h){case p:return yt("Suspense");case c:return yt("SuspenseList")}if(typeof h=="object")switch(h.$$typeof){case d:return jc(h.render);case f:return Ct(h.type,x,D);case m:{var R=h,G=R._payload,q=R._init;try{return Ct(q(G),x,D)}catch{}}}return""}var xt=Object.prototype.hasOwnProperty,Pi={},ki=T.ReactDebugCurrentFrame;function St(h){if(h){var x=h._owner,D=Ct(h.type,h._source,x?x.type:null);ki.setExtraStackFrame(D)}else ki.setExtraStackFrame(null)}function Uc(h,x,D,R,G){{var q=Function.call.bind(xt);for(var O in h)if(q(h,O)){var P=void 0;try{if(typeof h[O]!="function"){var ne=Error((R||"React class")+": "+D+" type `"+O+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof h[O]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw ne.name="Invariant Violation",ne}P=h[O](x,O,R,D,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(H){P=H}P&&!(P instanceof Error)&&(St(G),k("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",R||"React class",D,O,typeof P),St(null)),P instanceof Error&&!(P.message in Pi)&&(Pi[P.message]=!0,St(G),k("Failed %s type: %s",D,P.message),St(null))}}}var Qc=Array.isArray;function Vn(h){return Qc(h)}function Hc(h){{var x=typeof Symbol=="function"&&Symbol.toStringTag,D=x&&h[Symbol.toStringTag]||h.constructor.name||"Object";return D}}function Yc(h){try{return Oi(h),!1}catch{return!0}}function Oi(h){return""+h}function zi(h){if(Yc(h))return k("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Hc(h)),Oi(h)}var Ke=T.ReactCurrentOwner,Xc={key:!0,ref:!0,__self:!0,__source:!0},Gi,Li,En;En={};function Jc(h){if(xt.call(h,"ref")){var x=Object.getOwnPropertyDescriptor(h,"ref").get;if(x&&x.isReactWarning)return!1}return h.ref!==void 0}function Kc(h){if(xt.call(h,"key")){var x=Object.getOwnPropertyDescriptor(h,"key").get;if(x&&x.isReactWarning)return!1}return h.key!==void 0}function Zc(h,x){if(typeof h.ref=="string"&&Ke.current&&x&&Ke.current.stateNode!==x){var D=ie(Ke.current.type);En[D]||(k('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',ie(Ke.current.type),h.ref),En[D]=!0)}}function eg(h,x){{var D=function(){Gi||(Gi=!0,k("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",x))};D.isReactWarning=!0,Object.defineProperty(h,"key",{get:D,configurable:!0})}}function tg(h,x){{var D=function(){Li||(Li=!0,k("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",x))};D.isReactWarning=!0,Object.defineProperty(h,"ref",{get:D,configurable:!0})}}var ng=function(h,x,D,R,G,q,O){var P={$$typeof:t,type:h,key:x,ref:D,props:O,_owner:q};return P._store={},Object.defineProperty(P._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(P,"_self",{configurable:!1,enumerable:!1,writable:!1,value:R}),Object.defineProperty(P,"_source",{configurable:!1,enumerable:!1,writable:!1,value:G}),Object.freeze&&(Object.freeze(P.props),Object.freeze(P)),P};function rg(h,x,D,R,G){{var q,O={},P=null,ne=null;D!==void 0&&(zi(D),P=""+D),Kc(x)&&(zi(x.key),P=""+x.key),Jc(x)&&(ne=x.ref,Zc(x,G));for(q in x)xt.call(x,q)&&!Xc.hasOwnProperty(q)&&(O[q]=x[q]);if(h&&h.defaultProps){var H=h.defaultProps;for(q in H)O[q]===void 0&&(O[q]=H[q])}if(P||ne){var X=typeof h=="function"?h.displayName||h.name||"Unknown":h;P&&eg(O,X),ne&&tg(O,X)}return ng(h,P,ne,G,R,Ke.current,O)}}var Rn=T.ReactCurrentOwner,Ni=T.ReactDebugCurrentFrame;function ze(h){if(h){var x=h._owner,D=Ct(h.type,h._source,x?x.type:null);Ni.setExtraStackFrame(D)}else Ni.setExtraStackFrame(null)}var Tn;Tn=!1;function Fn(h){return typeof h=="object"&&h!==null&&h.$$typeof===t}function qi(){{if(Rn.current){var h=ie(Rn.current.type);if(h)return`
22
22
 
23
- Check the render method of \``+p+"`."}return""}}function Wc(p){{if(p!==void 0){var x=p.fileName.replace(/^.*[\\\/]/,""),I=p.lineNumber;return`
23
+ Check the render method of \``+h+"`."}return""}}function ig(h){{if(h!==void 0){var x=h.fileName.replace(/^.*[\\\/]/,""),D=h.lineNumber;return`
24
24
 
25
- Check your code at `+x+":"+I+"."}return""}}var ai={};function Qc(p){{var x=ii();if(!x){var I=typeof p=="string"?p:p.displayName||p.name;I&&(x=`
25
+ Check your code at `+x+":"+D+"."}return""}}var Bi={};function og(h){{var x=qi();if(!x){var D=typeof h=="string"?h:h.displayName||h.name;D&&(x=`
26
26
 
27
- Check the top-level render call using <`+I+">.")}return x}}function si(p,x){{if(!p._store||p._store.validated||p.key!=null)return;p._store.validated=!0;var I=Qc(x);if(ai[I])return;ai[I]=!0;var M="";p&&p._owner&&p._owner!==ln.current&&(M=" It was passed a child from "+te(p._owner.type)+"."),Ee(p),B('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',I,M),Ee(null)}}function li(p,x){{if(typeof p!="object")return;if(an(p))for(var I=0;I<p.length;I++){var M=p[I];un(M)&&si(M,x)}else if(un(p))p._store&&(p._store.validated=!0);else if(p){var F=E(p);if(typeof F=="function"&&F!==p.entries)for(var G=F.call(p),z;!(z=G.next()).done;)un(z.value)&&si(z.value,x)}}}function Yc(p){{var x=p.type;if(x==null||typeof x=="string")return;var I;if(typeof x=="function")I=x.propTypes;else if(typeof x=="object"&&(x.$$typeof===d||x.$$typeof===m))I=x.propTypes;else return;if(I){var M=te(x);Pc(I,p.props,"prop",M,p)}else if(x.PropTypes!==void 0&&!on){on=!0;var F=te(x);B("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",F||"Unknown")}typeof x.getDefaultProps=="function"&&!x.getDefaultProps.isReactClassApproved&&B("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Uc(p){{for(var x=Object.keys(p.props),I=0;I<x.length;I++){var M=x[I];if(M!=="children"&&M!=="key"){Ee(p),B("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",M),Ee(null);break}}p.ref!==null&&(Ee(p),B("Invalid attribute `ref` supplied to `React.Fragment`."),Ee(null))}}function oi(p,x,I,M,F,G){{var z=lt(p);if(!z){var P="";(p===void 0||typeof p=="object"&&p!==null&&Object.keys(p).length===0)&&(P+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var Z=Wc(F);Z?P+=Z:P+=ii();var W;p===null?W="null":an(p)?W="array":p!==void 0&&p.$$typeof===e?(W="<"+(te(p.type)||"Unknown")+" />",P=" Did you accidentally export a JSX literal instead of a component?"):W=typeof p,B("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",W,P)}var Y=jc(p,x,I,F,G);if(Y==null)return Y;if(z){var ae=x.children;if(ae!==void 0)if(M)if(an(ae)){for(var Ve=0;Ve<ae.length;Ve++)li(ae[Ve],p);Object.freeze&&Object.freeze(ae)}else B("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else li(ae,p)}return p===i?Uc(Y):Yc(Y),Y}}function Xc(p,x,I){return oi(p,x,I,!0)}function Jc(p,x,I){return oi(p,x,I,!1)}var Kc=Jc,Zc=Xc;Fe.Fragment=i,Fe.jsx=Kc,Fe.jsxs=Zc}()),Fe}(function(t){process.env.NODE_ENV==="production"?t.exports=Ti():t.exports=_i()})(Ye);const N=Ye.exports.Fragment,r=Ye.exports.jsx,c=Ye.exports.jsxs;class Ae extends b.default.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){this.setState({error:e})}render(){var e;if(this.state.error){const n=()=>{this.setState({error:null})};return c(a.Box,{children:[r(a.Text,{size:"xs",children:(e=this.state.error)==null?void 0:e.message}),r(a.Button,{variant:"subtle",size:"xs",mx:"auto",compact:!0,sx:{display:"block"},onClick:n,children:"Retry"})]})}return this.props.children}}function Ai({label:t,config:{default_value:e,...n},value:i,onChange:s}){return c(a.Box,{children:[r(a.Text,{children:"\xA0"}),r(a.Checkbox,{label:t,checked:i,onChange:l=>s(l.currentTarget.checked),...n})]})}const vn=A.observer(({label:t,config:e,value:n,onChange:i})=>r(ci.DateRangePicker,{label:t,value:n,onChange:i,icon:r(T.Calendar,{size:16}),sx:{minWidth:"16em"},...e}));function ki(t,e,n){const i=xt(e,[],n),s=Object.keys(i),l=Object.values(i);try{return new Function(...s,`return \`${t}\`;`)(...l)}catch(o){return console.error(o),o.message}}function bt(t,e={}){const n=Object.keys(e),i=Object.values(e);try{return new Function(...n,`return \`${t}\`;`)(...i)}catch(s){throw n.length===0&&t.includes("$")?new Error("[formatSQL] insufficient params"):s}}function xt(t,e,n){const i={...t,filters:n},s=e.reduce((l,o)=>(l[o.key]=bt(o.value,i),l),{});return O.default.merge({},s,t,{filters:n})}function bn(t,e,n,i){try{const s=xt(e,n,i);return bt(t,s)}catch(s){return console.error(s),s.message}}const De={baseURL:"http://localhost:31200",getRequest(t){return(e,n,i={})=>{const s={"X-Requested-With":"XMLHttpRequest","Content-Type":i.string?"application/x-www-form-urlencoded":"application/json",...i.headers},l={baseURL:this.baseURL,method:t,url:e,params:t==="GET"?n:i.params,headers:s};return t==="POST"&&(l.data=i.string?JSON.stringify(n):n),wi.default(l).then(o=>o.data).catch(o=>Promise.reject(o))}}},Ct=({type:t,key:e,sql:n})=>async()=>{if(!t||!e||!n)return[];try{return await De.getRequest("POST")("/query",{type:t,key:e,query:n})}catch(i){return console.error(i),[]}};async function Mi({context:t,sqlSnippets:e,title:n,query:i,filterValues:s}){if(!i.sql)return[];const{type:l,key:o,sql:u}=i,d=u.includes("$");try{const h=xt(t,e,s),f=bt(u,h);return d&&(console.groupCollapsed(`Final SQL for: ${n}`),console.log(f),console.groupEnd()),await De.getRequest("POST")("/query",{type:l,key:o,query:f})}catch(h){return console.error(h),[]}}async function Ei(){try{return(await De.getRequest("POST")("/datasource/list",{filter:{},sort:{field:"create_time",order:"ASC"},pagination:{page:1,pagesize:100}})).data}catch(t){return console.error(t),[]}}function Vi({label:t,config:e,value:n,onChange:i}){const s=!!e.options_query.sql,{data:l=[],loading:o}=L.useRequest(Ct(e.options_query),{refreshDeps:[e.options_query,s]});return r(a.MultiSelect,{label:t,data:s?l:e.static_options,disabled:s?o:!1,value:n,onChange:i,sx:{minWidth:"14em"}})}function Pi({label:t,config:e,value:n,onChange:i}){const s=!!e.options_query.sql,{data:l=[],loading:o}=L.useRequest(Ct(e.options_query),{refreshDeps:[e.options_query,s]});return r(a.Select,{label:t,data:s?l:e.static_options,disabled:s?o:!1,value:n,onChange:i})}function zi({label:t,config:e,value:n,onChange:i}){return r(a.TextInput,{label:t,value:n,onChange:i,...e})}const Oi=A.observer(({filter:{type:t,config:e,key:n,...i},formFieldProps:s})=>{switch(t){case"select":return r(Pi,{...i,...s,config:e});case"multi-select":return r(Vi,{...i,...s,config:e});case"text-input":return r(zi,{...i,...s,config:e});case"date-range":return r(vn,{...i,...s,config:e});case"checkbox":return r(Ai,{...i,...s,config:e});default:return null}}),xn=A.observer(b.default.forwardRef(({filter:t,...e},n)=>r("div",{className:"filter-root",ref:n,children:r(Ae,{children:r(Oi,{filter:t,formFieldProps:e})})}))),Cn=A.observer(function({view:e}){const n=Q(),{control:i,handleSubmit:s}=C.useForm({defaultValues:n.filters.values}),l=n.filters.visibleInView(e.id);return l.length===0?null:r("form",{onSubmit:s(n.filters.setValues),children:c(a.Group,{className:"dashboard-filters",position:"apart",p:"md",noWrap:!0,sx:{border:"1px solid #ced4da",borderRadius:"4px"},children:[r(a.Group,{align:"flex-start",children:l.map(o=>r(C.Controller,{name:o.key,control:i,render:({field:u})=>r(xn,{filter:o,...u})},o.id))}),r(a.Group,{sx:{alignSelf:"flex-end"},children:r(a.Button,{color:"blue",size:"sm",type:"submit",children:"Submit"})})]})})}),Fi={layoutFrozen:!1,freezeLayout:O.default.noop,inEditMode:!1,inUseMode:!0},le=b.default.createContext(Fi),wn=b.default.createContext({panel:null,data:[],loading:!1}),Sn=wn.Provider;function K(){const t=b.default.useContext(wn);if(!t.panel)throw new Error("Please use PanelContextProvider");return t}const qi=`
27
+ Check the top-level render call using <`+D+">.")}return x}}function ji(h,x){{if(!h._store||h._store.validated||h.key!=null)return;h._store.validated=!0;var D=og(x);if(Bi[D])return;Bi[D]=!0;var R="";h&&h._owner&&h._owner!==Rn.current&&(R=" It was passed a child from "+ie(h._owner.type)+"."),ze(h),k('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',D,R),ze(null)}}function Wi(h,x){{if(typeof h!="object")return;if(Vn(h))for(var D=0;D<h.length;D++){var R=h[D];Fn(R)&&ji(R,x)}else if(Fn(h))h._store&&(h._store.validated=!0);else if(h){var G=A(h);if(typeof G=="function"&&G!==h.entries)for(var q=G.call(h),O;!(O=q.next()).done;)Fn(O.value)&&ji(O.value,x)}}}function ag(h){{var x=h.type;if(x==null||typeof x=="string")return;var D;if(typeof x=="function")D=x.propTypes;else if(typeof x=="object"&&(x.$$typeof===d||x.$$typeof===f))D=x.propTypes;else return;if(D){var R=ie(x);Uc(D,h.props,"prop",R,h)}else if(x.PropTypes!==void 0&&!Tn){Tn=!0;var G=ie(x);k("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",G||"Unknown")}typeof x.getDefaultProps=="function"&&!x.getDefaultProps.isReactClassApproved&&k("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function lg(h){{for(var x=Object.keys(h.props),D=0;D<x.length;D++){var R=x[D];if(R!=="children"&&R!=="key"){ze(h),k("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",R),ze(null);break}}h.ref!==null&&(ze(h),k("Invalid attribute `ref` supplied to `React.Fragment`."),ze(null))}}function Ui(h,x,D,R,G,q){{var O=vt(h);if(!O){var P="";(h===void 0||typeof h=="object"&&h!==null&&Object.keys(h).length===0)&&(P+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var ne=ig(G);ne?P+=ne:P+=qi();var H;h===null?H="null":Vn(h)?H="array":h!==void 0&&h.$$typeof===t?(H="<"+(ie(h.type)||"Unknown")+" />",P=" Did you accidentally export a JSX literal instead of a component?"):H=typeof h,k("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",H,P)}var X=rg(h,x,D,G,q);if(X==null)return X;if(O){var ue=x.children;if(ue!==void 0)if(R)if(Vn(ue)){for(var Ge=0;Ge<ue.length;Ge++)Wi(ue[Ge],h);Object.freeze&&Object.freeze(ue)}else k("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Wi(ue,h)}return h===r?lg(X):ag(X),X}}function sg(h,x,D){return Ui(h,x,D,!0)}function ug(h,x,D){return Ui(h,x,D,!1)}var dg=ug,cg=sg;Be.Fragment=r,Be.jsx=dg,Be.jsxs=cg}()),Be}(function(e){process.env.NODE_ENV==="production"?e.exports=co():e.exports=go()})(Ze);const U=Ze.exports.Fragment,o=Ze.exports.jsx,g=Ze.exports.jsxs;class ke extends C.default.Component{constructor(t){super(t),this.state={error:null}}componentDidCatch(t){this.setState({error:t})}render(){var t;if(this.state.error){const n=()=>{this.setState({error:null})};return g(a.Box,{children:[o(a.Text,{size:"xs",children:(t=this.state.error)==null?void 0:t.message}),o(a.Button,{variant:"subtle",size:"xs",mx:"auto",compact:!0,sx:{display:"block"},onClick:n,children:"Retry"})]})}return this.props.children}}function po({label:e,config:{default_value:t,...n},value:r,onChange:i}){return g(a.Box,{children:[o(a.Text,{children:"\xA0"}),o(a.Checkbox,{label:e,checked:r,onChange:l=>i(l.currentTarget.checked),...n})]})}const qn=E.observer(({label:e,config:t,value:n,onChange:r})=>o(Hi.DateRangePicker,{label:e,value:n,onChange:r,icon:o(V.Calendar,{size:16}),sx:{minWidth:"16em"},...t}));function fo(e,t,n){const r=Rt(t,[],n),i=Object.keys(r),l=Object.values(r);try{return new Function(...i,`return \`${e}\`;`)(...l)}catch(s){return console.error(s),s.message}}function Et(e,t={}){const n=Object.keys(t),r=Object.values(t);try{return new Function(...n,`return \`${e}\`;`)(...r)}catch(i){throw n.length===0&&e.includes("$")?new Error("[formatSQL] insufficient params"):i}}function Rt(e,t,n){const r={...e,filters:n},i=t.reduce((l,s)=>(l[s.key]=Et(s.value,r),l),{});return z.default.merge({},i,e,{filters:n})}function Bn(e,t,n,r){try{const i=Rt(t,n,r);return Et(e,i)}catch(i){return console.error(i),i.message}}const $e={baseURL:"http://localhost:31200",getRequest(e){return(t,n,r={})=>{const i={"X-Requested-With":"XMLHttpRequest","Content-Type":r.string?"application/x-www-form-urlencoded":"application/json",...r.headers},l={baseURL:this.baseURL,method:e,url:t,params:e==="GET"?n:r.params,headers:i};return e==="POST"&&(l.data=r.string?JSON.stringify(n):n),ao.default(l).then(s=>s.data).catch(s=>Promise.reject(s))}}},Tt=({type:e,key:t,sql:n})=>async()=>{if(!e||!t||!n)return[];try{return await $e.getRequest("POST")("/query",{type:e,key:t,query:n})}catch(r){return console.error(r),[]}};async function ho({context:e,sqlSnippets:t,title:n,query:r,filterValues:i}){if(!r.sql)return[];const{type:l,key:s,sql:u}=r,d=u.includes("$");try{const p=Rt(e,t,i),c=Et(u,p);return d&&(console.groupCollapsed(`Final SQL for: ${n}`),console.log(c),console.groupEnd()),await $e.getRequest("POST")("/query",{type:l,key:s,query:c})}catch(p){return console.error(p),[]}}async function mo(){try{return(await $e.getRequest("POST")("/datasource/list",{filter:{},sort:{field:"create_time",order:"ASC"},pagination:{page:1,pagesize:100}})).data}catch(e){return console.error(e),[]}}function vo({label:e,config:t,value:n,onChange:r}){const i=!!t.options_query.sql,{data:l=[],loading:s}=j.useRequest(Tt(t.options_query),{refreshDeps:[t.options_query,i]});return o(a.MultiSelect,{label:e,data:i?l:t.static_options,disabled:i?s:!1,value:n,onChange:r,sx:{minWidth:"14em"}})}function yo({label:e,config:t,value:n,onChange:r}){const i=!!t.options_query.sql,{data:l=[],loading:s}=j.useRequest(Tt(t.options_query),{refreshDeps:[t.options_query,i]});return o(a.Select,{label:e,data:i?l:t.static_options,disabled:i?s:!1,value:n,onChange:r})}function bo({label:e,config:t,value:n,onChange:r}){return o(a.TextInput,{label:e,value:n,onChange:r,...t})}const Co=E.observer(({filter:{type:e,config:t,key:n,...r},formFieldProps:i})=>{switch(e){case"select":return o(yo,{...r,...i,config:t});case"multi-select":return o(vo,{...r,...i,config:t});case"text-input":return o(bo,{...r,...i,config:t});case"date-range":return o(qn,{...r,...i,config:t});case"checkbox":return o(po,{...r,...i,config:t});default:return null}}),jn=E.observer(C.default.forwardRef(({filter:e,...t},n)=>o("div",{className:"filter-root",ref:n,children:o(ke,{children:o(Co,{filter:e,formFieldProps:t})})}))),Wn=E.observer(function({view:t}){const n=Y(),{control:r,handleSubmit:i}=S.useForm({defaultValues:n.filters.values}),l=n.filters.visibleInView(t.id);return l.length===0?null:o("form",{onSubmit:i(n.filters.setValues),children:g(a.Group,{className:"dashboard-filters",position:"apart",p:"md",noWrap:!0,sx:{border:"1px solid #ced4da",borderRadius:"4px"},children:[o(a.Group,{align:"flex-start",children:l.map(s=>o(S.Controller,{name:s.key,control:r,render:({field:u})=>o(jn,{filter:s,...u})},s.id))}),o(a.Group,{sx:{alignSelf:"flex-end"},children:o(a.Button,{color:"blue",size:"sm",type:"submit",children:"Submit"})})]})})}),xo={layoutFrozen:!1,freezeLayout:z.default.noop,inEditMode:!1,inUseMode:!0},ce=C.default.createContext(xo),Un=C.default.createContext({panel:null,data:[],loading:!1}),Qn=Un.Provider;function ee(){const e=C.default.useContext(Un);if(!e.panel)throw new Error("Please use PanelContextProvider");return e}const So=`
28
28
  -- You may reference global variables in SQL or VizConfig.
29
29
  SELECT *
30
30
  FROM commit
@@ -36,9 +36,21 @@ WHERE
36
36
  -- SQL snippets
37
37
  AND \${sql_snippets.author_email_condition}
38
38
  \${sql_snippets.order_by_clause}
39
- `,In=A.observer(function({showSQLSnippets:e=!0,sx:n={}}){const i=Q(),s=i.context.current,l=b.default.useMemo(()=>{const o={context:s,filters:i.filters.values};if(e){const u=i.sqlSnippets.current.reduce((d,h)=>(d[h.key]=h.value,d),{});o.sql_snippets=u}return JSON.stringify(o,null,2)},[s,i.sqlSnippets.current,i.filters.values,e]);return c(a.Stack,{sx:{border:"1px solid #eee",maxWidth:"40%",overflow:"hidden",...n},children:[r(a.Group,{position:"left",pl:"md",py:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef",flexGrow:0},children:r(a.Text,{weight:500,children:"Global Variables"})}),c(a.Stack,{px:"md",pb:"md",sx:{width:"100%"},children:[r(Ie.Prism,{language:"sql",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:qi}),r(a.Text,{weight:500,sx:{flexGrow:0},children:"Current Values"}),r(Ie.Prism,{language:"json",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:l})]})]})});function Gi({data:t}){return t.length===0?r(a.Box,{sx:{height:"5em"}}):c(a.Table,{children:[r("thead",{children:r("tr",{children:Object.keys(t==null?void 0:t[0]).map(e=>r("th",{children:r(a.Text,{weight:700,color:"#000",children:e})},e))})}),r("tbody",{children:t.slice(0,10).map((e,n)=>r("tr",{children:Object.values(e).map((i,s)=>r("td",{children:r(a.Group,{sx:{"&, .mantine-Text-root":{fontFamily:"monospace"}},children:r(a.Text,{children:i})})},`${i}--${s}`))},`row-${n}`))})]})}const Dn=A.observer(function({id:e}){const n=Q(),{data:i,state:s}=n.getDataStuffByID(e),l=s==="loading",o=()=>{n.queries.refetchDataByQueryID(e)};return c(a.Stack,{my:"xl",sx:{border:"1px solid #eee"},children:[c(a.Group,{position:"apart",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[c(a.Group,{position:"left",children:[r(a.Text,{weight:500,children:"Preview Data"}),i.length>10&&c(a.Text,{size:"sm",color:"gray",children:["Showing 10 rows of ",i.length]})]}),r(a.ActionIcon,{mr:15,variant:"subtle",color:"blue",disabled:l,onClick:o,children:r(T.Refresh,{size:15})})]}),c(a.Box,{sx:{position:"relative"},children:[r(a.LoadingOverlay,{visible:l}),r(Gi,{data:i})]})]})}),Bi=w.forwardRef(({label:t,type:e,...n},i)=>c(a.Group,{position:"apart",ref:i,...n,children:[r(a.Text,{children:t}),r(a.Text,{children:e})]})),Tn=A.observer(function({value:e,onChange:n}){const{data:i=[],loading:s}=L.useRequest(Ei,{refreshDeps:[]},[]),l=w.useMemo(()=>i.map(u=>({label:u.key,value:u.key,type:u.type})),[i]),o=w.useMemo(()=>l.reduce((u,d)=>(u[d.value]=d.type,u),{}),[l]);return r(a.Select,{label:"Data Source",data:l,itemComponent:Bi,sx:{flex:1},disabled:s,value:e.key,onChange:u=>{u!==null&&n({key:u,type:o[u]})}})});function _n({value:t}){const e=Q(),n=e.context.current,i=b.default.useMemo(()=>bn(t,n,e.sqlSnippets.current,e.filters.values),[t,n,e.sqlSnippets.current,e.filters.values]);return r(Ie.Prism,{language:"sql",colorScheme:"light",children:i})}const Ri=A.observer(function({queryModel:e,setCurrentID:n}){const i=b.default.useRef(e.id),[s,l]=b.default.useState(i.current);b.default.useEffect(()=>{i.current!==e.id&&(l(e.id),i.current=e.id)},[i,e.id]);const[o,u]=b.default.useState(e.sql);b.default.useEffect(()=>{u(m=>m!==e.sql?e.sql:m)},[e.sql]);const d=o!==e.sql,h=()=>{e.setSQL(o)},f=()=>{n(s),e.setID(s)};return c(a.Stack,{sx:{border:"1px solid #eee",flexGrow:1},children:[r(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:r(a.Text,{weight:500,children:"Edit Query"})}),c(a.Stack,{my:0,p:"md",pr:40,children:[c(a.Group,{grow:!0,children:[r(a.TextInput,{placeholder:"An ID unique in this dashboard",label:"ID",required:!0,sx:{flex:1},value:s,onChange:m=>{l(m.currentTarget.value)},rightSection:r(a.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:s===e.id,onClick:f,children:r(T.DeviceFloppy,{size:18})})}),r(Tn,{value:{type:e.type,key:e.key},onChange:({type:m,key:g})=>{e.setKey(g),e.setType(m)}})]}),c(a.Tabs,{defaultValue:"SQL",children:[c(a.Tabs.List,{children:[r(a.Tabs.Tab,{value:"SQL",children:"SQL"}),r(a.Tabs.Tab,{value:"Preview",children:"Preview"})]}),r(a.Tabs.Panel,{value:"SQL",pt:"sm",children:c(a.Box,{sx:{position:"relative"},children:[r(a.Textarea,{autosize:!0,minRows:12,maxRows:24,className:"code-textarea",value:o,onChange:m=>{u(m.currentTarget.value)}}),r(a.ActionIcon,{mr:5,variant:"filled",color:"blue",sx:{position:"absolute",right:10,top:10},disabled:!d,onClick:h,children:r(T.DeviceFloppy,{size:20})})]})}),r(a.Tabs.Panel,{value:"Preview",pt:"sm",children:r(_n,{value:e.sql})})]})]})]})}),Li=A.observer(function({id:e,setID:n}){const i=Q(),s=b.default.useMemo(()=>i.queries.findByID(e),[i.queries,e]);return e?s?r(Ri,{queryModel:s,setCurrentID:n}):r("span",{children:"Invalid Query ID"}):null});var pe=(t=>(t.Postgresql="postgresql",t.MySQL="mysql",t.HTTP="http",t))(pe||{});const $i=A.observer(function({id:e,setID:n}){const i=Q(),s=()=>{var o;n((o=i.queries.firstID)!=null?o:"")};b.default.useEffect(()=>{if(!e){s();return}i.queries.current.findIndex(u=>u.id===e)===-1&&s()},[e,i.queries.current,s]);const l=()=>{const o=U.randomId();i.queries.append(y.cast({id:o,type:pe.Postgresql,key:"",sql:""})),n(o)};return r(a.Group,{pb:"xl",children:c(a.Group,{position:"left",sx:{maxWidth:"600px",alignItems:"baseline"},children:[r(a.Text,{children:"Select a Query"}),r(a.Select,{data:i.queries.options,value:e,onChange:n,allowDeselect:!1,clearable:!1,sx:{flexGrow:1}}),r(a.Text,{children:"or"}),r(a.Group,{position:"center",mt:"md",children:r(a.Button,{onClick:l,children:"Add a Query"})})]})})}),Ni=A.observer(function(){const[e,n]=b.default.useState("");return c(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:[c(a.Group,{position:"apart",grow:!0,align:"stretch",noWrap:!0,children:[c(a.Stack,{sx:{flexGrow:1,maxWidth:"calc(60% - 16px)"},children:[r($i,{id:e,setID:n}),r(Li,{id:e,setID:n})]}),r(In,{})]}),r(Dn,{id:e})]})}),ji=A.observer(({value:t})=>{const e=Q(),n=e.context.current,i=b.default.useMemo(()=>ki(t,n,e.filters.values),[t,n]);return c(a.Stack,{children:[r(a.Text,{children:"Preview"}),r(Ie.Prism,{language:"sql",noCopy:!0,colorScheme:"dark",children:i})]})}),Wi=A.observer(function(){const e=Q(),n=()=>e.sqlSnippets.append(y.cast({key:U.randomId(),value:""}));return c(a.Stack,{sx:{border:"1px solid #eee",flexGrow:1},children:[r(a.Group,{position:"left",pl:"md",py:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef",flexGrow:0},children:r(a.Text,{weight:500,children:"SQL Snippets"})}),r(a.Group,{px:"md",pb:"md",pt:"md",children:c(a.Stack,{sx:{width:"100%",position:"relative"},children:[e.sqlSnippets.current.map((i,s)=>c(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[r(a.TextInput,{label:"Key",required:!0,value:i.key,onChange:l=>{i.setKey(l.currentTarget.value)}}),r(a.Textarea,{minRows:3,label:"Value",required:!0,value:i.value,onChange:l=>{i.setValue(l.currentTarget.value)},className:"code-textarea"}),r(ji,{value:i.value}),r(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>e.sqlSnippets.remove(s),sx:{position:"absolute",top:15,right:5},children:r(T.Trash,{size:16})})]},s)),r(a.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"40%"},mx:"auto",children:r(a.Button,{variant:"default",onClick:n,children:"Add a snippet"})})]})})]})});function Qi(){return r(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:c(a.Group,{position:"apart",grow:!0,align:"stretch",noWrap:!0,children:[r(Wi,{}),r(In,{showSQLSnippets:!1})]})})}const Yi=A.observer(function({opened:e,close:n}){const{freezeLayout:i}=b.default.useContext(le);return b.default.useEffect(()=>{i(e)},[e]),r(a.Modal,{size:"96vw",overflow:"inside",opened:e,onClose:n,title:"Data Settings",trapFocus:!0,onDragStart:s=>{s.stopPropagation()},children:c(a.Tabs,{defaultValue:"Queries",children:[c(a.Tabs.List,{children:[r(a.Tabs.Tab,{value:"SQL Snippet",children:"SQL Snippet"}),r(a.Tabs.Tab,{value:"Queries",children:"Queries"})]}),r(a.Tabs.Panel,{value:"SQL Snippet",pt:"sm",children:r(Qi,{})}),r(a.Tabs.Panel,{value:"Queries",pt:"sm",children:r(Ni,{})})]})})});var ie=(t=>(t.Select="select",t.MultiSelect="multi-select",t.TextInput="text-input",t.Checkbox="checkbox",t.DateRange="date-range",t))(ie||{});const An=y.types.model({type:y.types.enumeration("DataSourceType",[pe.Postgresql,pe.MySQL,pe.HTTP]),key:y.types.string,sql:y.types.string}),kn=y.types.model("FilterConfigModel_TextInput",{required:y.types.boolean,default_value:y.types.string}).actions(t=>({setRequired(e){t.required=e},setDefaultValue(e){t.default_value=e}})),Mn=()=>kn.create({required:!1,default_value:""}),Ui=A.observer(function({config:e}){return r(N,{children:r(a.Checkbox,{checked:e.default_value,onChange:n=>e.setDefaultValue(n.currentTarget.checked),label:"Default Checked"})})}),Xi=[{label:"2022",value:"YYYY"},{label:"2022-01",value:"YYYY-MM"},{label:"2022-01-01",value:"YYYY-MM-DD"}],Ji=A.observer(function({config:e}){return c(N,{children:[c(a.Group,{children:[r(a.Checkbox,{checked:e.required,onChange:n=>e.setRequired(n.currentTarget.checked),label:"Required"}),r(a.Checkbox,{checked:e.clearable,onChange:n=>e.setClearable(n.currentTarget.checked),label:"Clearable"})]}),r(a.Select,{data:Xi,label:"Display Format",value:e.inputFormat,onChange:e.setInputFormat}),r(vn,{label:"Default Value",config:e,value:e.default_value,onChange:e.setDefaultValue})]})});function Ki({data:t}){return t.length===0?r(a.Box,{sx:{height:"5em"}}):c(a.Table,{children:[r("thead",{children:r("tr",{children:Object.keys(t==null?void 0:t[0]).map(e=>r("th",{children:r(a.Text,{weight:700,color:"#000",children:e})},e))})}),r("tbody",{children:t.slice(0,3).map((e,n)=>r("tr",{children:Object.values(e).map((i,s)=>r("td",{children:r(a.Group,{sx:{"&, .mantine-Text-root":{fontFamily:"monospace"}},children:r(a.Text,{children:i})})},`${i}--${s}`))},`row-${n}`))}),t.length>3&&r("tfoot",{children:r("tr",{children:r("td",{colSpan:Object.keys(t==null?void 0:t[0]).length,children:c(a.Text,{color:"gray",size:"sm",children:[t.length-3," more row(s) hidden"]})})})})]})}const Zi=A.observer(function({query:e}){const{data:n=[],loading:i,refresh:s}=L.useRequest(Ct(e),{refreshDeps:[e]});return c(a.Stack,{my:0,children:[c(a.Group,{position:"apart",children:[r(a.Text,{size:"md",pl:"sm",children:"Fetched Data"}),r(a.Button,{size:"xs",onClick:s,disabled:!e.sql||!e.key,children:"Retry"})]}),c(a.Box,{sx:{position:"relative"},children:[r(a.LoadingOverlay,{visible:i,exitTransitionDuration:0}),r(Ki,{data:n})]})]})}),En=A.observer(function({value:e,onChange:n}){return c(a.Stack,{my:0,children:[r(Tn,{value:e,onChange:({type:i,key:s})=>{n({...e,type:i,key:s})}}),c(a.Tabs,{defaultValue:"SQL",children:[c(a.Tabs.List,{children:[r(a.Tabs.Tab,{value:"SQL",children:"SQL"}),r(a.Tabs.Tab,{value:"Preview",children:"Preview"}),r(a.Tabs.Tab,{value:"Data",children:"Data"})]}),r(a.Tabs.Panel,{value:"SQL",pt:"sm",children:r(a.Textarea,{autosize:!0,minRows:12,maxRows:24,className:"code-textarea",value:e.sql,onChange:i=>{n({...e,sql:i.currentTarget.value})},placeholder:"SELECT name AS label, id AS value"})}),r(a.Tabs.Panel,{value:"Preview",pt:"sm",children:r(_n,{value:e.sql})}),r(a.Tabs.Panel,{value:"Data",pt:"sm",children:r(Zi,{query:e})})]})]})}),Hi=A.observer(function({config:e}){const n=()=>{e.addStaticOption({label:"",value:""})},i=e.static_options,s=[...i];return c(N,{children:[r(a.Divider,{label:"Configure options",labelPosition:"center"}),i.length>0&&r(a.MultiSelect,{label:"Default Selection",data:s,value:e.default_value,onChange:e.setDefaultValue}),i.map((l,o)=>c(a.Group,{sx:{position:"relative"},pr:"40px",children:[r(a.TextInput,{label:"Label",required:!0,value:e.static_options[o].label,onChange:u=>{e.static_options[o].setLabel(u.currentTarget.value)},sx:{flexGrow:1}}),r(a.TextInput,{label:"Value",required:!0,value:e.static_options[o].value,onChange:u=>{e.static_options[o].setValue(u.currentTarget.value)},sx:{flexGrow:1}}),r(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>e.removeStaticOption(o),sx:{position:"absolute",top:28,right:5},children:r(T.Trash,{size:16})})]})),r(a.Button,{size:"xs",color:"blue",leftIcon:r(T.PlaylistAdd,{size:20}),onClick:n,sx:{width:"50%"},mx:"auto",children:"Add an Option"}),r(a.Divider,{label:"Or fetch options from database",labelPosition:"center"}),r(En,{value:e.options_query,onChange:e.setOptionsQuery})]})}),ea=A.observer(function({config:e}){const n=()=>{e.addStaticOption({label:"",value:""})},i=e.static_options,s=[{label:"No default selection",value:""},...i];return c(N,{children:[r(a.Checkbox,{checked:e.required,onChange:l=>e.setRequired(l.currentTarget.checked),label:"Required"}),r(a.Divider,{label:"Configure options",labelPosition:"center"}),i.length>0&&r(a.Select,{label:"Default Selection",data:s,value:e.default_value,onChange:e.setDefaultValue}),i.map((l,o)=>c(a.Group,{sx:{position:"relative"},pr:"40px",children:[r(a.TextInput,{label:"Label",required:!0,value:e.static_options[o].label,onChange:u=>{e.static_options[o].setLabel(u.currentTarget.value)},sx:{flexGrow:1}}),r(a.TextInput,{label:"Value",required:!0,value:e.static_options[o].value,onChange:u=>{e.static_options[o].setValue(u.currentTarget.value)},sx:{flexGrow:1}}),r(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>e.removeStaticOption(o),sx:{position:"absolute",top:28,right:5},children:r(T.Trash,{size:16})})]},o)),r(a.Button,{size:"xs",color:"blue",leftIcon:r(T.PlaylistAdd,{size:20}),onClick:n,sx:{width:"50%"},mx:"auto",children:"Add an Option"}),r(a.Divider,{label:"Or fetch options from database",labelPosition:"center"}),r(En,{value:e.options_query,onChange:e.setOptionsQuery})]})}),ta=A.observer(function({config:e}){return c(N,{children:[r(a.TextInput,{label:"Default Value",value:e.default_value,onChange:n=>{e.setDefaultValue(n.currentTarget.value)}}),r(a.Checkbox,{checked:e.required,onChange:n=>e.setRequired(n.currentTarget.checked),label:"Required"})]})}),na=A.observer(function({filter:e}){const n=e.plainDefaultValue,[i,s]=b.default.useState(n);return b.default.useEffect(()=>{s(n)},[n]),c(a.Box,{sx:{maxWidth:"30em"},children:[r(a.Text,{pb:"md",color:"gray",children:"Preview"}),r(xn,{filter:e,value:i,onChange:s}),r(a.Text,{pt:"lg",pb:"md",color:"gray",children:"Config"}),r(Ie.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(e,null,4)})]})}),ra={select:ea,"multi-select":Hi,"text-input":ta,checkbox:Ui,"date-range":Ji},ia=[{label:"Select",value:"select"},{label:"Multi Select",value:"multi-select"},{label:"Text Input",value:"text-input"},{label:"Checkbox",value:"checkbox"},{label:"Date Range",value:"date-range"}],aa=A.observer(function({filter:e,index:n}){const i=Q(),s=b.default.useMemo(()=>ra[e.type],[e.type]);return c(a.SimpleGrid,{cols:2,children:[c(a.Box,{pl:"md",children:[r(a.Text,{pb:"md",color:"gray",children:"Edit"}),c(a.Stack,{sx:{maxWidth:"30em"},children:[r(a.NumberInput,{label:"Placement Order",required:!0,value:e.order,onChange:e.setOrder,hideControls:!0}),r(a.MultiSelect,{label:"Visible in...",data:i.views.options,value:e.visibleInViewsIDs,onChange:e.setVisibleInViewsIDs}),r(a.TextInput,{label:"Key",placeholder:"A unique key to refer",required:!0,value:e.key,onChange:l=>{e.setKey(l.currentTarget.value)}}),r(a.TextInput,{label:"Label",placeholder:"Label for this field",required:!0,value:e.label,onChange:l=>{e.setLabel(l.currentTarget.value)}}),r(a.Select,{label:"Widget",data:ia,required:!0,value:e.type,onChange:e.setType}),r(s,{config:e.config,index:n})]})]}),r(na,{filter:e})]})}),nd="",sa=A.observer(function(){const e=Q(),n=e.filters.current,i=()=>{const s=U.randomId(),l={id:s,key:s,label:s,order:n.length+1,type:ie.TextInput,config:Mn(),visibleInViewsIDs:["Main"]};e.filters.append(l)};return c(a.Box,{sx:{height:"90vh",maxHeight:"calc(100vh - 185px)"},p:0,children:[r(a.Group,{sx:{position:"absolute",top:"16px",right:"16px"},children:r(a.Button,{size:"xs",color:"red",leftIcon:r(T.Recycle,{size:20}),disabled:!e.filters.changed,onClick:e.filters.reset,children:"Revert Changes"})}),r(a.Tabs,{className:"filter-settings-tabs",orientation:"vertical",defaultValue:e.filters.firstID,styles:{root:{display:"block"}},children:c(a.Group,{sx:{height:"100%"},children:[c(a.Stack,{sx:{height:"100%"},children:[r(a.Tabs.List,{position:"left",sx:{flexGrow:1,width:"200px"},children:e.filters.current.map(s=>r(a.Tabs.Tab,{value:s.id,children:s.label},s.id))}),r(a.Button,{size:"xs",color:"blue",leftIcon:r(T.PlaylistAdd,{size:20}),onClick:i,children:"Add a Filter"})]}),r(a.Box,{sx:{flexGrow:1,height:"100%"},children:e.filters.current.map((s,l)=>r(a.Tabs.Panel,{value:s.id,sx:{height:"100%"},children:c(a.Stack,{sx:{height:"100%"},spacing:"sm",children:[r(a.Box,{sx:{flexGrow:1,maxHeight:"calc(100% - 52px)",overflow:"scroll"},children:r(aa,{filter:s,index:l})}),r(a.Group,{position:"right",pt:10,children:r(a.Button,{size:"xs",color:"red",leftIcon:r(T.Trash,{size:20}),onClick:()=>e.filters.remove(l),children:"Delete this filter"})})]})},s.id))})]})})]})}),la=A.observer(function({opened:e,close:n}){const{freezeLayout:i}=b.default.useContext(le);return b.default.useEffect(()=>{i(e)},[e]),r(a.Modal,{size:"96vw",overflow:"inside",opened:e,onClose:n,title:"Filters",trapFocus:!0,onDragStart:s=>{s.stopPropagation()},withCloseButton:!1,children:r(sa,{})})});var Vn=(t=>(t.Use="use",t.Edit="edit",t))(Vn||{}),fe=(t=>(t.Division="div",t.Modal="modal",t))(fe||{}),Pn=(t=>(t.Select="select",t.MultiSelect="multi-select",t.TextInput="text-input",t.Checkbox="checkbox",t.DateRange="date-range",t))(Pn||{});const oa=A.observer(()=>{const e=Q().views.VIE;return!e||e.type!==fe.Division?null:c(a.Stack,{children:[r(a.Divider,{mt:8,mb:0,label:"Division settings",labelPosition:"center"}),r(a.Text,{align:"center",size:"xs",color:"dimmed",children:"Under construction"})]})}),ua=A.observer(()=>{const e=Q().views.VIE;return!e||e.type!==fe.Modal?null:c(a.Stack,{children:[r(a.Divider,{mt:8,label:"Modal settings",labelPosition:"center"}),c(a.Group,{grow:!0,children:[r(a.TextInput,{label:"Width",value:e.config.width,onChange:n=>e.updateConfig("width",n.currentTarget.value),placeholder:"600px / 50vw"}),r(a.TextInput,{label:"Height",value:e.config.height,onChange:n=>e.updateConfig("height",n.currentTarget.value),placeholder:"600px / 50vw"})]})]})}),ca=A.observer(()=>c(N,{children:[r(oa,{}),r(ua,{})]})),da=[{label:"Division",value:fe.Division},{label:"Modal",value:fe.Modal}],pa=A.observer(()=>{const e=Q().views.VIE;return e?c(a.Stack,{sx:{position:"relative"},children:[r(a.TextInput,{label:"Name",value:e.name,onChange:n=>{e.setName(n.currentTarget.value)}}),r(a.Select,{label:"Type",value:e.type,onChange:e.setType,data:da}),r(ca,{})]}):null}),fa=A.observer(({opened:t,close:e})=>{var s;const n=Q(),{freezeLayout:i}=b.default.useContext(le);return b.default.useEffect(()=>{i(t)},[t]),r(a.Modal,{size:"500px",overflow:"inside",opened:t,onClose:e,withCloseButton:!1,styles:{header:{width:"100%"},title:{width:"100%"}},title:c(a.Group,{position:"apart",children:[c(a.Text,{sx:{flexGrow:1},children:["Editing ",(s=n.views.VIE)==null?void 0:s.name]}),r(a.ActionIcon,{size:18,color:"red",onClick:n.views.removeVIE,disabled:n.views.isVIETheFirstView,children:r(T.Trash,{size:18})})]}),trapFocus:!0,onDragStart:l=>{l.stopPropagation()},children:r(pa,{})})}),ha=w.forwardRef(({label:t,type:e,...n},i)=>e!=="TRIGGER_TO_ADD"?r("div",{ref:i,...n,children:c(a.Group,{noWrap:!0,position:"apart",children:[r(a.Text,{size:"sm",children:t}),r(a.Text,{size:"xs",color:"dimmed",children:e})]})}):r("div",{ref:i,...n,children:r(a.Group,{noWrap:!0,grow:!0,children:r(a.Text,{size:"sm",align:"center",color:"#228be6",children:t})})})),zn="TRIGGER_TO_ADD",ga=A.observer(({value:t,onChange:e,triggerAdd:n,triggerEdit:i,options:s})=>{const l=w.useMemo(()=>[...s,{label:"Add a View",value:zn,type:"TRIGGER_TO_ADD"}],[s,n]),o=u=>{u!==zn?e(u):n()};return c(a.Group,{position:"left",spacing:0,sx:{minWidth:"260px"},children:[r(a.Select,{value:t,onChange:o,placeholder:"Pick a View",itemComponent:ha,data:l,nothingFound:"Empty",sx:{flexGrow:1},styles:{input:{borderTopRightRadius:0,borderBottomRightRadius:0}}}),r(a.ActionIcon,{onClick:i,variant:"default",size:36,sx:{borderLeft:0,borderTopLeftRadius:0,borderBottomLeftRadius:0,"&:active":{transform:"none",svg:{transform:"translateY(1px)"}}},children:r(T.Settings,{size:20})})]})}),ma=A.observer(()=>{const t=Q(),[e,n]=w.useState(!1),i=()=>{n(!0)},s=()=>{n(!1)};return c(N,{children:[r(ga,{value:t.views.idOfVIE,onChange:t.views.setIDOfVIE,triggerAdd:t.views.addARandomNewView,triggerEdit:i,options:t.views.options}),r(fa,{opened:e,close:s})]})});function ya({opened:t,close:e,getCurrentSchema:n}){const{freezeLayout:i}=b.default.useContext(le);b.default.useEffect(()=>{i(t)},[t]);const s=b.default.useMemo(()=>JSON.stringify(n(),null,2),[t]);return r(a.Modal,{size:"96vw",overflow:"inside",opened:t,onClose:e,title:"This dashboard is described by this schema",trapFocus:!0,onDragStart:l=>{l.stopPropagation()},children:t&&r(Ie.Prism,{language:"json",sx:{width:"100%"},colorScheme:"dark",children:s})})}const On=A.observer(function({saveChanges:e}){const n=Q(),i=b.default.useCallback(()=>{const H=n.queries.current,Ne=n.views.current,Me=n.sqlSnippets.current;return{filters:n.filters.current,views:Ne,definition:{sqlSnippets:Me,queries:H}}},[n]),s=()=>{n.filters.reset(),n.views.reset(),n.sqlSnippets.reset(),n.queries.reset()},l=n.views.changed||n.sqlSnippets.changed||n.queries.changed||n.filters.changed,{inEditMode:o,inUseMode:u}=b.default.useContext(le),[d,h]=b.default.useState(!1),f=()=>h(!0),m=()=>h(!1),[g,v]=b.default.useState(!1),_=()=>v(!0),k=()=>v(!1),[E,R]=b.default.useState(!1),B=()=>R(!0),ue=()=>R(!1);return c(a.Group,{position:"apart",pt:0,px:10,pb:"xs",children:[r(a.Group,{position:"left",children:o&&r(ma,{})}),c(a.Group,{position:"right",children:[!u&&r(a.Button,{variant:"default",size:"xs",disabled:!n.views.VIE,onClick:n.views.addAPanelToVIE,leftIcon:r(T.PlaylistAdd,{size:20}),children:"Add a Panel"}),o&&r(a.Button,{variant:"default",size:"xs",onClick:_,leftIcon:r(T.Filter,{size:20}),children:"Filters"}),o&&r(a.Button,{variant:"default",size:"xs",onClick:f,leftIcon:r(T.Database,{size:20}),children:"Data Settings"}),!u&&r(a.Button,{variant:"default",size:"xs",onClick:e,disabled:!l,leftIcon:r(T.DeviceFloppy,{size:20}),children:"Save Changes"}),!u&&r(a.Button,{color:"red",size:"xs",disabled:!l,onClick:s,leftIcon:r(T.Recycle,{size:20}),children:"Revert Changes"}),c(a.Menu,{width:180,children:[r(a.Menu.Target,{children:r(a.Button,{variant:"default",size:"xs",leftIcon:r(T.Share,{size:20}),children:"Export"})}),c(a.Menu.Dropdown,{children:[r(a.Menu.Item,{icon:r(T.Download,{size:14}),onClick:n.queries.downloadAllData,children:"Download Data"}),r(a.Menu.Item,{icon:r(T.Code,{size:14}),onClick:B,children:"View Schema"})]})]})]}),r(la,{opened:g,close:k}),r(Yi,{opened:d,close:m}),r(ya,{opened:E,close:ue,getCurrentSchema:i})]})}),rd="",Fn=A.observer(()=>{const{freezeLayout:t}=b.default.useContext(le),[e,n]=b.default.useState(!1),{panel:i}=K();return b.default.useEffect(()=>{t(e)},[e]),!i.description||i.description==="<p><br></p>"?null:c(N,{children:[r(a.Modal,{opened:e,onClose:()=>n(!1),title:i.title,withCloseButton:!1,children:r(pn.default,{readOnly:!0,value:i.description,onChange:O.default.noop,sx:{border:"none"}})}),r(a.Tooltip,{label:"Click to see description",position:"top-start",withinPortal:!0,children:r(a.ActionIcon,{variant:"subtle",color:"blue",onClick:()=>n(s=>!s),sx:{verticalAlign:"baseline",cursor:"pointer"},children:r(T.InfoCircle,{size:20})})})]})}),qn=t=>{const{title:e="Variables",variables:n}=t,i=U.useClipboard(),s=l=>{i.copy(l),ht.showNotification({color:"green",message:"Copied to clipboard"})};return c(a.Paper,{withBorder:!0,p:"sm",children:[r(a.Text,{size:"xs",color:"dimmed",mb:"sm",children:e}),r(a.Stack,{style:{maxHeight:"300px"},children:n.map(l=>c(a.Text,{size:"sm",children:[c(a.Code,{color:"teal",children:["// ",l.description]}),r("br",{}),c(a.Code,{onClick:()=>s(l.name),style:{cursor:"pointer"},children:[l.name," : ",l.valueType]})]},l.name))})]})};class va{constructor(e,n){V(this,"operationId");V(this,"operation");V(this,"operationSchema");V(this,"variables",[]);this.operationManager=e,this.instance=n,X.makeAutoObservable(this)}get schemaList(){return this.operationManager.getOperationSchemaList()}async configOperation(e,n){const i=await this.operationManager.retrieveTrigger(e),s=this.operationManager.getOperationSchemaList().find(l=>l.id===(i==null?void 0:i.schemaRef));X.runInAction(()=>{this.operationId=e,this.operation=i,this.operationSchema=s,this.variables=n})}async changeSchema(e){this.operationId&&(await this.operationManager.createOrGetOperation(this.operationId,e),await this.configOperation(this.operationId,this.variables))}}function ba(t){return!!t.operationId}const xa=A.observer(({model:t,onClick:e})=>{var i;const n=(i=t.operationSchema)==null?void 0:i.displayName;return r(a.Button,{variant:"outline",onClick:e,children:n})}),Ca=A.observer(({model:t})=>{const e={operation:t.operation,instance:t.instance,variables:[]};return w.createElement(t.operationSchema.configRender,e)});function wa({model:t}){const e=t.schemaList,n=e.map(s=>({label:s.displayName,value:s.id}));async function i(s){await t.changeSchema(e.find(l=>l.id===s))}return r(a.Select,{label:"Operation",data:n,onChange:i,value:t.operationSchema.id})}const Sa=A.observer(t=>{const[e,{setTrue:n,setFalse:i}]=L.useBoolean(!1),{operationManager:s,operationId:l,instance:o,variables:u}=t,d=L.useCreation(()=>new va(s,o),[s,o]);return L.useAsyncEffect(async()=>{await d.configOperation(l,u)},[l,d]),ba(d)?c(N,{children:[r(xa,{model:d,onClick:n}),r(a.Modal,{opened:e,onClose:i,title:"Operation Settings",closeButtonLabel:"close",children:c(a.Stack,{children:[r(wa,{model:d}),r(Ca,{model:d}),r(qn,{title:"Variables",variables:d.variables})]})})]}):null});class Ia{constructor(e,n){V(this,"triggerId");V(this,"trigger");V(this,"triggerSchema");V(this,"sampleData");this.triggerManager=e,this.instance=n,X.makeAutoObservable(this)}get schemaList(){return this.triggerManager.getTriggerSchemaList()}async configTrigger(e,n){const i=await this.triggerManager.retrieveTrigger(e),s=this.triggerManager.getTriggerSchemaList().find(l=>l.id===(i==null?void 0:i.schemaRef));X.runInAction(()=>{this.triggerId=e,this.trigger=i,this.triggerSchema=s,this.sampleData=n})}async changeSchema(e){this.triggerId&&(await this.triggerManager.createOrGetTrigger(this.triggerId,e),await this.configTrigger(this.triggerId,this.sampleData))}isReady(){return Da(this)}}function Da(t){return!!t.triggerId&&!!t.triggerSchema}function Ta(t,e){return L.useCreation(()=>new Ia(t,e),[t,e])}const _a=A.observer(({model:t,onClick:e})=>{const n=t.triggerSchema.nameRender,i={trigger:t.trigger,instance:t.instance,sampleData:t.sampleData};return r(a.Button,{variant:"outline",onClick:e,children:w.createElement(n,i)})}),Aa=A.observer(({model:t})=>{const e=t.schemaList,n=e.map(s=>({label:s.displayName,value:s.id}));async function i(s){await t.changeSchema(e.find(l=>l.id===s))}return r(a.Select,{label:"Trigger",data:n,value:t.triggerSchema.id,onChange:i})}),ka=A.observer(({model:t})=>{const e={trigger:t.trigger,instance:t.instance,sampleData:t.sampleData};return w.createElement(t.triggerSchema.configRender,e)}),Ma=A.observer(t=>{const[e,{setTrue:n,setFalse:i}]=L.useBoolean(!1),s=t.model;return c(N,{children:[r(a.Modal,{opened:e,onClose:i,title:"Setup Trigger",closeButtonLabel:"close setup",children:c(a.Stack,{children:[r(Aa,{model:s}),r(ka,{model:s}),r(qn,{title:"Payload",variables:s.triggerSchema.payload})]})}),r(_a,{onClick:n,model:s})]})});class ke{constructor(e,n){this.root=e,this.path=n}async deleteItem(e){e===null&&await this.root.deleteItem(this.path);const n=await this.root.getItem(this.path)||{};await this.root.setItem(this.path,S.omit(n,e))}async getItem(e){const n=await this.root.getItem(this.path);return e===null?n:S.get(n,e)}async setItem(e,n){if(e===null)await this.root.setItem(this.path,n);else{const i=await this.root.getItem(this.path)||{};await this.root.setItem(this.path,{...i,[e]:n})}return await this.getItem(e)}watchItem(e,n,i){return e===null?this.root.watchItem(this.path,(s,l)=>{n(s,l)},i):this.root.watchItem(this.path,(s,l)=>{const o=S.get(s,e),u=S.get(l,e);o!==u&&n(o,u)},i)}}class wt{constructor(e,n,i){V(this,"attachmentStorage");this.instance=e,this.attachmentKey=n,this.constructInstance=i,this.attachmentStorage=new ke(e.instanceData,n)}async getInstance(e){if(await this.attachmentStorage.getItem(e))return this.constructInstance(new ke(this.attachmentStorage,e))}async create(e,n){return await this.attachmentStorage.setItem(e,n),this.constructInstance(new ke(this.attachmentStorage,e))}async remove(e){await this.attachmentStorage.deleteItem(e)}async list(){const e=await this.attachmentStorage.getItem(null);return Promise.all(S.values(e).map(n=>this.constructInstance(new ke(this.attachmentStorage,n.id))))}}class Gn{constructor(e){V(this,"rootRef");this.rootRef=X.observable({current:e})}async deleteItem(e){X.runInAction(()=>{S.unset(this.rootRef.current,[e])})}getItem(e){const n=this.getValueFromRoot(e);return Promise.resolve(n)}getValueFromRoot(e){return e===null?X.toJS(this.rootRef.current):S.get(this.rootRef.current,[e])}setItem(e,n){if(e===null)if(S.isObject(n))X.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else X.runInAction(()=>{S.set(this.rootRef.current,[e],n)});return Promise.resolve(this.getItem(e))}watchItem(e,n,i){return X.reaction(()=>this.getValueFromRoot(e),(s,l)=>{n(s,l)},{requiresObservable:!0,fireImmediately:S.get(i,"fireImmediately",!1)})}}class Ea{constructor(){V(this,"channels",new Map);V(this,"globalChannel",new fn.default)}getChannel(e){const n=this.channels.get(e);if(n)return n;const i=new fn.default;return this.channels.set(e,i),i}}class Va{constructor(e){V(this,"instances",new Map);this.pluginManager=e}get availableVizList(){return this.pluginManager.installedPlugins.flatMap(e=>e.manifest.viz)}resolveComponent(e){return this.pluginManager.factory.viz(e)}getOrCreateInstance(e){const n=this.instances.get(e.id);if(n)return n;const i={id:e.id,name:e.viz.type,type:e.viz.type,messageChannels:new Ea,instanceData:new Gn(e.viz.conf)};return this.instances.set(e.id,i),i}}function Bn(t,e,n){return{vizManager:n,locale:"zh",msgChannels:t.messageChannels,instanceData:t.instanceData,pluginData:new Gn({}),colorPalette:{getColor(){return()=>""}},data:e}}const Pa=t=>{const{panel:e,vizManager:n,data:i}=t,s=n.resolveComponent(e.viz.type),l=n.getOrCreateInstance(e),o={...Bn(l,i,n),viewport:{width:e.layout.w,height:e.layout.h}},u=s.viewRender;return r(u,{context:o,instance:l,...S.omit(t,["panel","vizManager","data"])})},za=t=>{const{vizManager:e,panel:n,panelInfoEditor:i,data:s}=t,l=e.resolveComponent(n.viz.type),o=e.getOrCreateInstance(n),u={...Bn(o,s,e),panelInfoEditor:i},d=l.configRender;return r(d,{context:u,instance:o,...S.omit(t,["panel","vizManager","data","panelInfoEditor"])})},Rn=(t,e)=>{const n=Pe.default.bezier(t),i=Pe.default.bezier(e);return function(s){return s<50?n(s*2/100).hex():i((s-50)*2/100).hex()}},Ue=t=>{const e=Pe.default.bezier(t);return function(n){return e(n/100).hex()}},Oa={type:"interpolation",displayName:"Red / Green",getColor:Rn(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},Fa={type:"interpolation",displayName:"Yellow / Blue",getColor:Rn(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},qa={type:"interpolation",displayName:"Red",getColor:Ue(["#fff7f1","darkred"]),name:"red",category:"sequential"},Ga={type:"interpolation",displayName:"Green",getColor:Ue(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},Ba={type:"interpolation",displayName:"Blue",getColor:Ue(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},Ra={type:"interpolation",displayName:"Orange",getColor:Ue(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"},La="4.16.5";class $a{constructor(e){V(this,"staticColors",new Map);V(this,"interpolations",new Map);e.installedPlugins.forEach(n=>{n.manifest.color.forEach(i=>{this.register(i)})})}getStaticColors(){return Array.from(this.staticColors.values())}register(e){const n=this.encodeColor(e);e.type==="single"?(this.staticColors.has(n)&&console.warn(`the color '${e.name}' has been registered under '${e.category}', previous registered value will be overridden`),this.staticColors.set(n,e)):e.type==="interpolation"&&(this.interpolations.has(n)&&console.warn(`the interpolation '${e.name}' has been registered under '${e.category}', previous registered value will be overridden`,`the interpolation '${e.name}' has been registered under '${e.category}', previous registered value will be overridden`),this.interpolations.set(n,e))}decodeStaticColor(e){return this.staticColors.get(e)}encodeColor(e){return`\${${e.category}}.{${e.name}}`}decodeInterpolation(e){return this.interpolations.get(e)}getColorInterpolations(){return Array.from(this.interpolations.values())}}class Na{constructor(){V(this,"plugins",new Map);V(this,"vizComponents",new Map);V(this,"factory",{viz:e=>{const n=this.vizComponents.get(e);if(n)return n;throw new Error(`Viz Component (${e}) not found`)}})}install(e){if(this.plugins.has(e.id))throw new Error(`Plugin (${e.id}) has been installed before`);this.plugins.set(e.id,e);for(const n of e.manifest.viz){if(this.vizComponents.has(n.name))throw new Error(`Viz Component (${n.name}) has been installed before`);this.vizComponents.set(n.name,n)}}get installedPlugins(){return Array.from(this.plugins.values())}}class ja{constructor(){V(this,"migrations",[])}version(e,n){return this.migrations.push({version:e,handler:n}),this}run(e,n){var l;if(e.from===e.to)return n;if(e.from>e.to)throw new Error(`Can not downgrade from version '${e.from}' to (${e.to})`);const i=this.migrations.filter(o=>o.version>e.from&&o.version<=e.to),s=S.orderBy(i,"version","asc");if(((l=S.last(s))==null?void 0:l.version)!==e.to)throw new Error(`Migration to version ${e.to} not found`);return s.reduce((o,u)=>u.handler(o),n)}}class oe extends ja{constructor(){super(),this.configVersions()}version(e,n){return super.version(e,i=>({version:e,...n(i)}))}async migrate({instanceData:e}){const n=await e.getItem(null),i=S.get(n,"version",0),s=this.run({from:i,to:this.VERSION},n);await e.setItem(null,s)}async needMigration({instanceData:e}){const n=await e.getItem(null);return S.get(n,"version",0)<this.VERSION}}const St={content:""},q=(t,e)=>{const[n,{setFalse:i}]=L.useBoolean(!0),[s,l]=w.useState();w.useEffect(()=>(t.getItem(e).then(u=>{l(u),i()}),t.watchItem(e,u=>{l(u)})));const o=w.useCallback(async u=>{await t.setItem(e,u),l(u)},[t,e]);return{loading:n,value:s,set:o}};function Ln(t){const e=w.useRef(null);return w.useEffect(()=>{var n,i,s;t&&((s=(i=(n=e.current)==null?void 0:n.editor)==null?void 0:i.clipboard)==null||s.dangerouslyPasteHTML(t))},[t]),e}function Wa({context:t}){const{value:e}=q(t.instanceData,"config"),n=e==null?void 0:e.content,i=Ln(n);return e!=null&&e.content?r(ft.RichTextEditor,{ref:i,readOnly:!0,value:e.content,onChange:S.noop,sx:{border:"none",".ql-editor":{padding:0,"h1, h2, h3, h4, h5, p, ul, ol":{"&:last-child":{marginBottom:0}}}}}):null}function Qa({context:t}){const{value:e,set:n}=q(t.instanceData,"config"),i=w.useMemo(()=>S.defaults({},e,St),[e]),{control:s,handleSubmit:l,watch:o,getValues:u}=C.useForm({defaultValues:i});o("content");const d=u(),h=w.useMemo(()=>!S.isEqual(d,e),[d,e]),f=Ln(e==null?void 0:e.content);return r(a.Stack,{mt:"md",spacing:"xs",children:c("form",{onSubmit:l(n),children:[c(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[r(a.Text,{children:"Content"}),r(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!h,children:r(T.DeviceFloppy,{size:20})})]}),r(C.Controller,{name:"content",control:s,render:({field:m})=>r(pn.default,{ref:f,sx:{flex:1},...S.omit(m,"ref")})})]})})}class Ya extends oe{constructor(){super(...arguments);V(this,"VERSION",1)}fixMalformedConfig(n){return S.defaults({},n,St)}configVersions(){this.version(1,n=>({version:1,config:this.fixMalformedConfig(n)}))}}const Ua={displayName:"RichText",migrator:new Ya,name:"richText",viewRender:Wa,configRender:Qa,createConfig:()=>St},It={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:{type:"none",config:{}},formatter:{output:"number",mantissa:0}}]};function Xa(t){if("variables"in t)return t;const{align:e,size:n,weight:i,color:s,content:{prefix:l="",data_field:o="value",formatter:u={output:"number",mantissa:0},postfix:d=""}={}}=t;return{align:e,template:`${l} \${value} ${d}`,variables:[{name:"value",data_field:o,aggregation:{type:"none",config:{}},formatter:u,color:s,weight:i,size:n}]}}class Ja extends oe{constructor(){super(...arguments);V(this,"VERSION",1)}configVersions(){this.version(1,n=>({config:Xa(n)}))}}const Dt=w.forwardRef(function({value:e,onChange:n,...i},s){return r(a.TextInput,{ref:s,value:e,onChange:n,...i})}),qe={mantissa:0,output:"number",trimMantissa:!1,average:!1};function Ka({value:t,onChange:e},n){const i=u=>{e({...t,output:u})},s=u=>{const d=u===0?!1:t.trimMantissa;e({...t,mantissa:u,trimMantissa:d})},l=u=>{e({...t,trimMantissa:u.currentTarget.checked})},o=u=>{e({...t,average:u.currentTarget.checked})};return c(a.Stack,{ref:n,children:[c(a.Group,{grow:!0,children:[r(a.Select,{label:"Format",data:[{label:"1234",value:"number"},{label:"99%",value:"percent"}],value:t.output,onChange:i,sx:{flexGrow:1}}),r(a.Switch,{label:c(a.Stack,{spacing:0,children:[r(a.Text,{children:"Average"}),r(a.Text,{size:12,color:"gray",children:"like 1.234k, 1.234m"})]}),checked:t.average,onChange:o,disabled:t.output!=="number",sx:{flexGrow:1},styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"},label:{display:"block"}}})]}),c(a.Group,{grow:!0,children:[r(a.NumberInput,{label:"Mantissa",defaultValue:0,min:0,step:1,max:4,value:t.mantissa,onChange:s}),r(a.Switch,{label:"Trim mantissa",checked:t.trimMantissa,onChange:l,disabled:t.mantissa===0,styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"}}})]}),c(a.Stack,{spacing:0,children:[r(a.Text,{weight:"bold",children:"Preview"}),r(Ae,{children:c(a.Group,{position:"apart",children:[c(a.Text,{size:12,color:"gray",children:["123456789 ",r(T.ArrowRight,{size:9})," ",re.default(123456789).format(t)]}),c(a.Text,{size:12,color:"gray",children:["1234 ",r(T.ArrowRight,{size:9})," ",re.default(1234).format(t)]}),c(a.Text,{size:12,color:"gray",children:["0.1234 ",r(T.ArrowRight,{size:9})," ",re.default(.1234).format(t)]})]})})]})]})}const Tt=b.default.forwardRef(Ka);function Xe(){return{name:U.randomId(),size:"20px",weight:"bold",color:{type:"static",staticColor:"blue"},data_field:"",aggregation:{type:"none",config:{}},formatter:qe}}const Za=[{label:"None",value:"none"},{label:"Sum",value:"sum"},{label:"Mean",value:"mean"},{label:"Median",value:"median"},{label:"Max",value:"max"},{label:"Min",value:"min"},{label:"Quantile(99%, 95%, ...)",value:"quantile"}];function Ha({label:t,value:e,onChange:n},i){w.useEffect(()=>{typeof e=="string"&&(console.log(e),n({type:e,config:{}}))},[e,n]);const s=o=>{n(o==="quantile"?{type:"quantile",config:{p:.99}}:{type:o,config:{}})},l=o=>{n({type:"quantile",config:{p:o}})};return c(a.Group,{grow:!0,noWrap:!0,pt:"sm",children:[r(a.Select,{ref:i,label:t,data:Za,value:e.type,onChange:s}),e.type==="quantile"&&r(a.NumberInput,{label:"p",value:e.config.p,onChange:l,precision:2,min:.05,step:.05,max:1})]})}const es=b.default.forwardRef(Ha);function ts({label:t,required:e,value:n,onChange:i,data:s,clearable:l=!1,sx:o,...u},d){const h=b.default.useMemo(()=>{if(!Array.isArray(s)||s.length===0)return[];const m=Object.keys(s[0]).map(g=>({label:g,value:g}));return l?m.concat([{label:"unset",value:""}]):m},[s]);return r(a.Select,{ref:d,label:t,data:h,value:n,onChange:i,required:e,sx:o,...u})}const j=b.default.forwardRef(ts);function ns({label:t,value:e,onChange:n},i){const[s,l]=b.default.useState(Array.isArray(e)?[...e]:[]),o=b.default.useCallback(()=>{l(g=>[...g,""])},[l]),u=b.default.useCallback(g=>{l(v=>(v.splice(g,1),[...v]))},[l]),d=b.default.useMemo(()=>!O.default.isEqual(s,e),[s,e]),h=()=>{n(s.map(g=>g.toString()))},f=a.useMantineTheme(),m=b.default.useMemo(()=>Object.entries(f.colors).map(([g,v])=>v[6]),[f]);return c(N,{children:[c(a.Group,{position:"left",ref:i,children:[r(a.Text,{children:t}),r(a.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!d,onClick:h,children:r(T.DeviceFloppy,{size:20})})]}),c(a.Group,{children:[s.map((g,v)=>r(a.ColorInput,{value:g,onChange:_=>{l(k=>(k.splice(v,1,_),[...k]))},swatches:m,rightSection:r(a.ActionIcon,{onClick:()=>u(v),color:"red",children:r(T.Trash,{size:14})}),sx:{width:"45%"}})),r(a.ActionIcon,{onClick:o,color:"blue",variant:"outline",children:r(T.PlaylistAdd,{size:20})})]})]})}const rs=b.default.forwardRef(ns);function is({value:t,onChange:e},n){const{colorManager:i}=w.useContext(ge),s=b.default.useMemo(()=>i.getStaticColors().map(u=>({label:u.name,group:u.category,value:u.value})),[i]),l=b.default.useMemo(()=>s.some(o=>o.value===t),[t,s]);return c(a.Group,{position:"apart",spacing:4,ref:n,children:[r(a.TextInput,{placeholder:"Set any color",value:l?"":t,onChange:o=>e(o.currentTarget.value),rightSection:r(a.ColorSwatch,{color:l?"transparent":t,radius:4}),variant:l?"filled":"default",sx:{maxWidth:"46%",flexGrow:1}}),r(a.Text,{sx:{flexGrow:0},children:"or"}),r(a.Select,{data:s,value:t,onChange:e,variant:l?"default":"filled",placeholder:"Pick a theme color",icon:r(a.ColorSwatch,{color:l?t:"transparent",radius:4}),sx:{maxWidth:"46%",flexGrow:1}})]})}const xe=b.default.forwardRef(is),Je=[{label:"initial",value:0},{label:"500",value:25},{label:"700",value:50},{label:"semibold",value:75},{label:"bold",value:100}];function as({label:t,value:e,onChange:n},i){var o,u;const[s,l]=b.default.useState((u=(o=Je.find(d=>d.label===e))==null?void 0:o.value)!=null?u:Je[0].value);return b.default.useEffect(()=>{const d=Je.find(h=>h.value===s);d&&n(d.label)},[s]),c(a.Stack,{spacing:0,mt:"sm",mb:"lg",children:[r(a.Text,{size:"sm",children:t}),r(a.Slider,{label:null,marks:Je,value:s,onChange:l,step:25,placeholder:"Pick a font size",ref:i})]})}const ss=b.default.forwardRef(as);function ls({label:t,value:e,onChange:n},i){const[s,l]=b.default.useState(Array.isArray(e)?[...e]:[]),o=b.default.useCallback(()=>{l(f=>[...f,""])},[l]),u=b.default.useCallback(f=>{l(m=>(m.splice(f,1),[...m]))},[l]),d=b.default.useMemo(()=>!O.default.isEqual(s,e),[s,e]),h=()=>{n(s.map(f=>f.toString()))};return c(N,{children:[c(a.Group,{position:"left",ref:i,children:[r(a.Text,{children:t}),r(a.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!d,onClick:h,children:r(T.DeviceFloppy,{size:20})})]}),c(a.Group,{children:[s.map((f,m)=>r(a.TextInput,{value:f,onChange:g=>{const v=g.currentTarget.value;l(_=>(_.splice(m,1,v),[..._]))},rightSection:r(a.ActionIcon,{onClick:()=>u(m),color:"red",children:r(T.Trash,{size:14})}),sx:{width:"45%"}})),r(a.ActionIcon,{onClick:o,color:"blue",variant:"outline",children:r(T.PlaylistAdd,{size:20})})]})]})}const os=b.default.forwardRef(ls),us=b.default.forwardRef(function({value:e,onChange:n},i){const s=e.color.type,l=(o,u)=>{const d=O.default.cloneDeep(e);O.default.set(d,o,u),n(d)};return c(N,{children:[r(a.Divider,{my:"xs",label:"Typography",labelPosition:"center"}),r(a.Stack,{children:r(a.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",sx:{flex:1},value:e.size,onChange:o=>l("size",o.currentTarget.value)})}),r(a.Group,{position:"apart",grow:!0,sx:{"> *":{flexGrow:1,maxWidth:"100%"}},children:r(ss,{label:"Font Weight",value:e.weight,onChange:o=>l("weight",o)})}),r(a.Divider,{my:"xs",label:"Style",labelPosition:"center"}),c(a.Stack,{children:[r(a.Select,{label:"Color Type",data:[{label:"Static Color",value:"static"},{label:"Continuous Color",value:"continuous"}],value:e.color.type,onChange:o=>l("color.type",o)}),s==="static"&&r(xe,{value:e.color.staticColor,onChange:o=>l("color.staticColor",o)}),s==="continuous"&&c(N,{children:[r(os,{label:"Value Range",value:e.color.valueRange,onChange:o=>l("color.valueRange",o)}),r(rs,{label:"Color Range",value:e.color.colorRange,onChange:o=>l("color.colorRange",o)})]})]})]})}),Ke=b.default.forwardRef(function({value:e,onChange:n,data:i,withStyle:s=!0},l){const o=(u,d)=>{const h=O.default.cloneDeep(e);O.default.set(h,u,d),n(h)};return c(a.Box,{px:"sm",py:"md",ref:l,children:[r(a.Text,{weight:"bold",pb:0,children:e.name}),r(a.Divider,{my:"xs",label:"Data",labelPosition:"center"}),c(a.Group,{grow:!0,noWrap:!0,children:[r(a.TextInput,{label:"Name",required:!0,value:e.name,onChange:u=>o("name",u.currentTarget.value)}),r(j,{label:"Data Field",required:!0,data:i,value:e.data_field,onChange:u=>o("data_field",u)})]}),r(es,{label:"Aggregation",value:e.aggregation,onChange:u=>o("aggregation",u)}),r(a.Divider,{my:"xs",label:"Format",labelPosition:"center"}),r(Tt,{value:e.formatter,onChange:u=>o("formatter",u)}),s&&r(us,{value:e,onChange:n})]})});function cs(t){const e=Array.from(t).sort((i,s)=>i-s),n=Math.floor(e.length/2);return e.length%2===0?(e[n-1]+e[n])/2:e[n]}function _t(t,e,n){var s,l,o,u;const i=t.map(d=>d[e]);switch(n.type){case"sum":return O.default.sum(i);case"mean":return O.default.mean(i);case"median":return cs(i);case"max":return(s=O.default.max(i))!=null?s:0;case"min":return(l=O.default.min(i))!=null?l:0;case"quantile":return(o=gi.quantile(i,n.config.p))!=null?o:0;default:return(u=t[0])==null?void 0:u[e]}}var $n=function(){},Ge=function(){};process.env.NODE_ENV!=="production"&&($n=function(t,e){!t&&typeof console<"u"&&console.warn(e)},Ge=function(t,e){if(!t)throw new Error(e)});const ds=(t,e,n)=>Math.min(Math.max(n,t),e),Nn=(t,e,n)=>{const i=e-t;return i===0?1:(n-t)/i},At=(t,e,n)=>-n*t+n*e+t,jn=(t,e)=>n=>Math.max(Math.min(n,e),t),Be=t=>t%1?Number(t.toFixed(5)):t,Ze=/(-)?([\d]*\.?[\d])+/g,kt=/(#[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,ps=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;function Re(t){return typeof t=="string"}const He={test:t=>typeof t=="number",parse:parseFloat,transform:t=>t},Wn=Object.assign(Object.assign({},He),{transform:jn(0,1)});Object.assign(Object.assign({},He),{default:1});const Le=(t=>({test:e=>Re(e)&&e.endsWith(t)&&e.split(" ").length===1,parse:parseFloat,transform:e=>`${e}${t}`}))("%");Object.assign(Object.assign({},Le),{parse:t=>Le.parse(t)/100,transform:t=>Le.transform(t*100)});const Mt=(t,e)=>n=>Boolean(Re(n)&&ps.test(n)&&n.startsWith(t)||e&&Object.prototype.hasOwnProperty.call(n,e)),Qn=(t,e,n)=>i=>{if(!Re(i))return i;const[s,l,o,u]=i.match(Ze);return{[t]:parseFloat(s),[e]:parseFloat(l),[n]:parseFloat(o),alpha:u!==void 0?parseFloat(u):1}},Te={test:Mt("hsl","hue"),parse:Qn("hue","saturation","lightness"),transform:({hue:t,saturation:e,lightness:n,alpha:i=1})=>"hsla("+Math.round(t)+", "+Le.transform(Be(e))+", "+Le.transform(Be(n))+", "+Be(Wn.transform(i))+")"},fs=jn(0,255),Et=Object.assign(Object.assign({},He),{transform:t=>Math.round(fs(t))}),Ce={test:Mt("rgb","red"),parse:Qn("red","green","blue"),transform:({red:t,green:e,blue:n,alpha:i=1})=>"rgba("+Et.transform(t)+", "+Et.transform(e)+", "+Et.transform(n)+", "+Be(Wn.transform(i))+")"};function hs(t){let e="",n="",i="",s="";return t.length>5?(e=t.substr(1,2),n=t.substr(3,2),i=t.substr(5,2),s=t.substr(7,2)):(e=t.substr(1,1),n=t.substr(2,1),i=t.substr(3,1),s=t.substr(4,1),e+=e,n+=n,i+=i,s+=s),{red:parseInt(e,16),green:parseInt(n,16),blue:parseInt(i,16),alpha:s?parseInt(s,16)/255:1}}const Vt={test:Mt("#"),parse:hs,transform:Ce.transform},et={test:t=>Ce.test(t)||Vt.test(t)||Te.test(t),parse:t=>Ce.test(t)?Ce.parse(t):Te.test(t)?Te.parse(t):Vt.parse(t),transform:t=>Re(t)?t:t.hasOwnProperty("red")?Ce.transform(t):Te.transform(t)},Yn="${c}",Un="${n}";function gs(t){var e,n,i,s;return isNaN(t)&&Re(t)&&((n=(e=t.match(Ze))===null||e===void 0?void 0:e.length)!==null&&n!==void 0?n:0)+((s=(i=t.match(kt))===null||i===void 0?void 0:i.length)!==null&&s!==void 0?s:0)>0}function Xn(t){typeof t=="number"&&(t=`${t}`);const e=[];let n=0;const i=t.match(kt);i&&(n=i.length,t=t.replace(kt,Yn),e.push(...i.map(et.parse)));const s=t.match(Ze);return s&&(t=t.replace(Ze,Un),e.push(...s.map(He.parse))),{values:e,numColors:n,tokenised:t}}function Jn(t){return Xn(t).values}function Kn(t){const{values:e,numColors:n,tokenised:i}=Xn(t),s=e.length;return l=>{let o=i;for(let u=0;u<s;u++)o=o.replace(u<n?Yn:Un,u<n?et.transform(l[u]):Be(l[u]));return o}}const ms=t=>typeof t=="number"?0:t;function ys(t){const e=Jn(t);return Kn(t)(e.map(ms))}const Zn={test:gs,parse:Jn,createTransformer:Kn,getAnimatableNone:ys};function Pt(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+(e-t)*6*n:n<1/2?e:n<2/3?t+(e-t)*(2/3-n)*6:t}function Hn({hue:t,saturation:e,lightness:n,alpha:i}){t/=360,e/=100,n/=100;let s=0,l=0,o=0;if(!e)s=l=o=n;else{const u=n<.5?n*(1+e):n+e-n*e,d=2*n-u;s=Pt(d,u,t+1/3),l=Pt(d,u,t),o=Pt(d,u,t-1/3)}return{red:Math.round(s*255),green:Math.round(l*255),blue:Math.round(o*255),alpha:i}}const vs=(t,e,n)=>{const i=t*t,s=e*e;return Math.sqrt(Math.max(0,n*(s-i)+i))},bs=[Vt,Ce,Te],er=t=>bs.find(e=>e.test(t)),tr=t=>`'${t}' is not an animatable color. Use the equivalent color code instead.`,nr=(t,e)=>{let n=er(t),i=er(e);Ge(!!n,tr(t)),Ge(!!i,tr(e));let s=n.parse(t),l=i.parse(e);n===Te&&(s=Hn(s),n=Ce),i===Te&&(l=Hn(l),i=Ce);const o=Object.assign({},s);return u=>{for(const d in o)d!=="alpha"&&(o[d]=vs(s[d],l[d],u));return o.alpha=At(s.alpha,l.alpha,u),n.transform(o)}},xs=t=>typeof t=="number",Cs=(t,e)=>n=>e(t(n)),rr=(...t)=>t.reduce(Cs);function ir(t,e){return xs(t)?n=>At(t,e,n):et.test(t)?nr(t,e):lr(t,e)}const ar=(t,e)=>{const n=[...t],i=n.length,s=t.map((l,o)=>ir(l,e[o]));return l=>{for(let o=0;o<i;o++)n[o]=s[o](l);return n}},ws=(t,e)=>{const n=Object.assign(Object.assign({},t),e),i={};for(const s in n)t[s]!==void 0&&e[s]!==void 0&&(i[s]=ir(t[s],e[s]));return s=>{for(const l in i)n[l]=i[l](s);return n}};function sr(t){const e=Zn.parse(t),n=e.length;let i=0,s=0,l=0;for(let o=0;o<n;o++)i||typeof e[o]=="number"?i++:e[o].hue!==void 0?l++:s++;return{parsed:e,numNumbers:i,numRGB:s,numHSL:l}}const lr=(t,e)=>{const n=Zn.createTransformer(e),i=sr(t),s=sr(e);return i.numHSL===s.numHSL&&i.numRGB===s.numRGB&&i.numNumbers>=s.numNumbers?rr(ar(i.parsed,s.parsed),n):($n(!0,`Complex values '${t}' and '${e}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`),o=>`${o>0?e:t}`)},Ss=(t,e)=>n=>At(t,e,n);function Is(t){if(typeof t=="number")return Ss;if(typeof t=="string")return et.test(t)?nr:lr;if(Array.isArray(t))return ar;if(typeof t=="object")return ws}function Ds(t,e,n){const i=[],s=n||Is(t[0]),l=t.length-1;for(let o=0;o<l;o++){let u=s(t[o],t[o+1]);if(e){const d=Array.isArray(e)?e[o]:e;u=rr(d,u)}i.push(u)}return i}function Ts([t,e],[n]){return i=>n(Nn(t,e,i))}function _s(t,e){const n=t.length,i=n-1;return s=>{let l=0,o=!1;if(s<=t[0]?o=!0:s>=t[i]&&(l=i-1,o=!0),!o){let d=1;for(;d<n&&!(t[d]>s||d===i);d++);l=d-1}const u=Nn(t[l],t[l+1],s);return e[l](u)}}function As(t,e,{clamp:n=!0,ease:i,mixer:s}={}){const l=t.length;Ge(l===e.length,"Both input and output ranges must be the same length"),Ge(!i||!Array.isArray(i)||i.length===l-1,"Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values."),t[0]>t[l-1]&&(t=[].concat(t),e=[].concat(e),t.reverse(),e.reverse());const o=Ds(e,i,s),u=l===2?Ts(t,o):_s(t,o);return n?d=>u(ds(t[0],t[l-1],d)):u}class ks{constructor({valueRange:e,colorRange:n}){V(this,"mapper");this.mapper=As(e,n)}getColor(e){return this.mapper(e)}}function Ms(t){return t===null?"null":t===void 0?"undefined":Array.isArray(t)?`Array(${t.length})`:t.toString()}function or({data_field:t,aggregation:e},n){return _t(n,t,e)}function tt({formatter:t},e){return["string","number"].includes(typeof e)?re.default(e).format(t):Ms(e)}function Es(t,e){return t.type==="static"?t.staticColor:t.type==="continuous"?new ks(t).getColor(e):"black"}function Vs(t,e){const n={};return t.forEach(i=>{const{name:s,color:l,data_field:o,aggregation:u,size:d,weight:h}=i,f=_t(e,o,u),m=tt(i,f);n[s]=r(a.Text,{sx:{fontSize:d,display:"inline"},color:Es(l,f),weight:h,children:m})}),n}function Ps(t){return t.split(" ").map(e=>c(N,{children:[e,"\xA0"]}))}function zs(t){const n=t.replaceAll("<br />","<br/>").replaceAll(`
40
- `,"<br/>").split("<br/>");return n.map((s,l)=>{const o=[Ps(s)];return l!==n.length-1&&o.push(r("br",{})),o}).flat().filter(s=>s!==void 0)}function zt(t){return zs(t)}function Ot(t,e,n){const i=Vs(e,n),s=/^\{(.+)\}(.*)$/;return t.split("$").map(l=>{var h;const o=s.exec(l);if(!o)return zt(l);const u=i[o[1]];if(!u)return zt(l);const d=(h=o[2])!=null?h:"";return c(N,{children:[u,zt(d)]})})}function Os(t,e){const n={};return t.forEach(i=>{const{name:s,data_field:l,aggregation:o}=i,u=_t(e,l,o);n[s]=tt(i,u)}),n}function ur(t,e,n){const i=Os(e,n),s=/^\{(.+)\}(.*)$/;return t.split("$").map(l=>{var h;const o=s.exec(l);if(!o)return l;const u=i[o[1]];if(!u)return l;const d=(h=o[2])!=null?h:"";return`${u}${d}`}).join("")}function Fs({context:t}){const{value:e=It}=q(t.instanceData,"config"),{template:n,variables:i,align:s}=e,l=w.useMemo(()=>Ot(n,i,t.data),[n,i,t.data]);return r(a.Text,{align:s,children:Object.values(l).map(o=>o)})}function qs({control:t,index:e,remove:n,data:i}){return c(a.Stack,{my:"sm",p:0,sx:{border:"1px solid #eee",borderTopColor:"#333",borderTopWidth:2,position:"relative"},children:[r(C.Controller,{name:`variables.${e}`,control:t,render:({field:s})=>r(Ke,{data:i,...s})}),r(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(e),sx:{position:"absolute",top:15,right:5},children:r(T.Trash,{size:16})})]},e)}function Gs({control:t,watch:e,data:n}){const{fields:i,append:s,remove:l}=C.useFieldArray({control:t,name:"variables"}),o=e("variables"),u=i.map((h,f)=>({...h,...o[f]})),d=()=>s(Xe());return c(a.Stack,{children:[u.map((h,f)=>r(qs,{control:t,index:f,remove:l,data:n},h.name)),r(a.Group,{position:"center",mt:"xs",children:r(a.Button,{onClick:d,children:"Add a Variable"})})]})}function Bs({context:t}){const e=t.data||[],{value:n,set:i}=q(t.instanceData,"config"),s=b.default.useMemo(()=>{const{align:g,template:v="",variables:_=[]}=S.defaultsDeep({},n,It);return{variables:_,template:v,align:g}},[n]),{control:l,handleSubmit:o,watch:u,getValues:d,reset:h}=C.useForm({defaultValues:s});b.default.useEffect(()=>{h(s)},[s]),u(["variables","template"]);const f=d(),m=b.default.useMemo(()=>!O.default.isEqual(f,n),[f,n]);return r(a.Stack,{mt:"md",spacing:"xs",children:c("form",{onSubmit:o(i),children:[c(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[r(a.Text,{weight:500,children:"Stats Configurations"}),r(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!m,children:r(T.DeviceFloppy,{size:20})})]}),r(C.Controller,{name:"template",control:l,render:({field:g})=>r(Dt,{label:"Template",py:"md",sx:{flexGrow:1},...g})}),r(a.Text,{pb:"sm",pt:"md",size:"sm",children:"Variables"}),r(Gs,{control:l,watch:u,data:e})]})})}const Rs={createConfig(){return{version:1,config:It}},displayName:"Stats",migrator:new Ja,name:"stats",viewRender:Fs,configRender:Bs};var we=(t=>(t.string="string",t.number="number",t.eloc="eloc",t.percentage="percentage",t))(we||{});const nt={columns:[],fontSize:"1rem",highlightOnHover:!1,horizontalSpacing:"1em",id_field:"",striped:!1,use_raw_columns:!1,verticalSpacing:"1em"},Ls=({vizManager:t,instance:e})=>L.useCreation(()=>new xr(e,t.resolveComponent(e.type),Yt),[e,t]),$s=(t,e)=>{const[n,i]=w.useState([]);return w.useEffect(()=>t.watchTriggerSnapshotList(s=>i(s.filter(l=>l.schemaRef===e))),[]),n};function cr(t,e,n){return Math.min(Math.max(t,e),n)}class Ns{constructor(e){this.steps=e;const n=[],i=new Set;for(const s of e)i.has(s.to)||(n.push(s),i.add(s.to));if(n.sort((s,l)=>s.from-l.from),n.length<2)throw new Error("MultiStepValueMapper requires at least 2 steps");this.steps=n}getLinearFunction(e,n){const i=(n.to-e.to)/(n.from-e.from),s=e.to-i*e.from;return l=>i*l+s}getStepFunctionForValue(e){let n=S.findLastIndex(this.steps,i=>i.from<=e);return n=cr(n,0,this.steps.length-2),this.getLinearFunction(this.steps[n],this.steps[n+1])}mapValue(e){return cr(this.getStepFunctionForValue(e)(e),0,100)}}function js(t,e){if(t==null)return{};var n={},i=Object.keys(t),s,l;for(l=0;l<i.length;l++)s=i[l],!(e.indexOf(s)>=0)&&(n[s]=t[s]);return n}function dr(t,e){if(t==null)return{};var n=js(t,e),i,s;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(s=0;s<l.length;s++)i=l[s],!(e.indexOf(i)>=0)&&(!Object.prototype.propertyIsEnumerable.call(t,i)||(n[i]=t[i]))}return n}var Ws=["size","color","stroke"];function Qs(t){var e=t.size,n=e===void 0?24:e,i=t.color,s=i===void 0?"currentColor":i,l=t.stroke,o=l===void 0?2:l,u=dr(t,Ws);return c("svg",{xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-arrow-down",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:o,stroke:s,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",...u,children:[r("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),r("line",{x1:12,y1:5,x2:12,y2:19}),r("line",{x1:18,y1:13,x2:12,y2:19}),r("line",{x1:6,y1:13,x2:12,y2:19})]})}var Ys=["size","color","stroke"];function Us(t){var e=t.size,n=e===void 0?24:e,i=t.color,s=i===void 0?"currentColor":i,l=t.stroke,o=l===void 0?2:l,u=dr(t,Ys);return c("svg",{xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-arrow-up",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:o,stroke:s,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",...u,children:[r("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),r("line",{x1:12,y1:5,x2:12,y2:19}),r("line",{x1:18,y1:11,x2:12,y2:5}),r("line",{x1:6,y1:11,x2:12,y2:5})]})}const Xs=({header:t,cx:e})=>c(a.Text,{className:e("table-head-cell",{"table-head-cell--sortable":t.column.getCanSort()}),onClick:t.column.getToggleSortingHandler(),children:[t.isPlaceholder?null:_e.flexRender(t.column.columnDef.header,t.getContext()),r(Js,{direction:t.column.getIsSorted()})]}),Js=({direction:t})=>{switch(t){case"asc":return r(Us,{size:16});case"desc":return r(Qs,{size:"1em"});default:return null}},Ft={id:"builtin:table:click-cell-content",displayName:"Click Cell Content",nameRender:tl,configRender:Hs,payload:[{name:"row_index",description:"Index of the row that the cell belongs to",valueType:"number"},{name:"col_index",description:"Index of the column that the cell belongs to",valueType:"number"},{name:"row_data",description:"Data of the row that the cell belongs to",valueType:"object"}]},Ks={column:""};function pr(t){const{value:e}=q(t.instanceData,"config");return e?e.columns.map((n,i)=>({label:n.label,value:i.toString()})):[]}function Zs(t){return S.isEmpty(t)?[]:Object.keys(t[0]).map(e=>({label:e,value:e}))}function Hs(t){const e=pr(t.instance),n=Zs(t.sampleData),i=e.length>0?e:n,{value:s,set:l}=q(t.trigger.triggerData,"config"),{column:o}=S.defaults({},s,Ks),u=d=>{isNaN(+d)?l({column:d}):l({column:+d})};return r(a.Select,{clearable:!1,data:i,label:"Choose a column",value:o.toString(),onChange:u})}function el(t,e){return t?S.isNumber(t.column)?`Click cell of ${e[t.column].label}`:`Click cell of ${t.column}`:"Click cell content (click to config)"}function tl(t){const e=pr(t.instance),{value:n}=q(t.trigger.triggerData,"config");return r(a.Text,{children:el(n,e)})}const nl=a.createStyles(t=>({root:{overflow:"auto","& .table-head-cell":{display:"flex",flexFlow:"row nowrap",alignItems:"center",whiteSpace:"nowrap","&.table-head-cell--sortable":{cursor:"pointer",userSelect:"none"}},"&.table-highlight-on-hover tr":{transition:"background-color 0.2s","&:hover":{backgroundColor:t.colorScheme==="dark"?t.colors.dark[5]:t.colors.gray[0]}}},thead:{background:t.colorScheme==="dark"?t.colors.dark[7]:t.white,position:"sticky",top:0}})),rl=a.createStyles((t,e)=>({content:{display:"flex",alignItems:"center",justifyContent:"flex-start",".table-cell-text":{whiteSpace:"nowrap",marginLeft:t.spacing.xs,cursor:e.clickable?"pointer":"default",textDecoration:e.clickable?"underline":"none"}}}));function il(t){return t?Pe.default(t).oklch()[0]>.7?"black":"white":"inherit"}function al(t){const e=t.tableCellContext.bgColor;return{backgroundColor:e,color:il(e)}}function rt(t){const e=t.tableCellContext.isClickable(),n=rl({clickable:e});return r("div",{className:n.classes.content,style:{...al(t)},children:r(a.Text,{className:"table-cell-text",onClick:t.tableCellContext.getClickHandler(),children:r("span",{children:t.children})})})}function sl(t){return r(rt,{...t,children:t.value})}function ll(t){return r(rt,{...t,children:t.value})}function ol(t){const e=re.default(t.value).format({thousandSeparated:!0});return r(rt,{...t,children:e})}function ul(t){const e=re.default(t.value).format({output:"percent",mantissa:3});return r(rt,{...t,children:e})}function cl(t){switch(t.type){case we.string:return r(sl,{...t});case we.eloc:return r(ll,{...t});case we.number:return r(ol,{...t});case we.percentage:return r(ul,{...t})}}const dl=t=>{const e=Ls(t),n=$s(e.triggerManager,Ft.id),{colorManager:i}=w.useContext(ge);return w.useCallback(s=>new fl(t.getColIndex,s,n,e,i),[n,e,t.getColIndex])};function pl({context:t,instance:e}){var st,We,lt;const n=(st=t.data)!=null?st:[],{height:i,width:s}=t.viewport,{value:l=nt}=q(t.instanceData,"config"),{use_raw_columns:o,columns:u,...d}=l,{classes:h,cx:f}=nl(),m=b.default.useMemo(()=>o?Object.keys(n[0]).map(ee=>({label:ee,value_field:ee,value_type:we.string})):u,[o,u,n]),g=dl({getColIndex:w.useCallback(ee=>m.indexOf(ee.column.columnDef.meta),[m]),vizManager:t.vizManager,instance:e}),v=w.useMemo(()=>{const ee=_e.createColumnHelper(),ce=m.map(ne=>ee.accessor(ne.value_field,{cell:Se=>r(cl,{tableCellContext:g(Se.cell),value:Se.getValue(),type:ne.value_type}),header:ne.label,enableSorting:!0,meta:ne}));return[ee.display({id:"#index",cell:ne=>ne.row.index+1,header:"#",size:10*(n.length.toString().length+1)}),...ce]},[m,g]),[_,k]=w.useState([]),E=_e.useReactTable({data:n,state:{sorting:_},onSortingChange:k,columns:v,getCoreRowModel:_e.getCoreRowModel(),getSortedRowModel:_e.getSortedRowModel()}),{rows:R}=E.getRowModel(),B=b.default.useRef(null),ue=mi.useVirtual({parentRef:B,size:R.length,estimateSize:w.useCallback(()=>28,[]),overscan:20}),{virtualItems:H,totalSize:Ne}=ue,Me=H.length>0&&((We=H==null?void 0:H[0])==null?void 0:We.start)||0,je=H.length>0?Ne-(((lt=H==null?void 0:H[H.length-1])==null?void 0:lt.end)||0):0;return r("div",{ref:B,style:{height:i,width:s},className:f(h.root,{"table-highlight-on-hover":l.highlightOnHover}),children:c(a.Table,{sx:{maxHeight:i},...d,striped:l.striped,children:[r("thead",{className:h.thead,children:E.getHeaderGroups().map(ee=>r("tr",{children:ee.headers.map(ce=>r("th",{style:{width:ce.getSize()},children:r(Xs,{header:ce,cx:f})},ce.id))},ee.id))}),c("tbody",{children:[Me>0&&r("tr",{children:r("td",{style:{height:`${Me}px`}})}),H.map(ee=>{const ce=R[ee.index];return r("tr",{children:ce.getVisibleCells().map(te=>r("td",{children:_e.flexRender(te.column.columnDef.cell,te.getContext())},te.id))},ce.id)}),je>0&&r("tr",{children:r("td",{style:{height:`${je}px`}})})]})]})})}class fl{constructor(e,n,i,s,l){this.getColIndex=e,this.cell=n,this.triggers=i,this.interactionManager=s,this.colorManager=l}getClickHandler(){const e=this.getRelatedTrigger();if(e.length!==0)return()=>{const n={row_data:this.cell.row.original,row_index:this.cell.row.index,col_index:this.getColIndex(this.cell)};for(const i of e)this.interactionManager.runInteraction(i.id,n)}}getRelatedTrigger(){return this.triggers.filter(n=>n.schemaRef===Ft.id).filter(n=>{const i=this.getColIndex(this.cell),s=S.get(this.cell.column.columnDef.meta,"value_field"),l=S.get(n.config,"column");return l==i||l==s})}isClickable(){return this.getRelatedTrigger().length>0}get columnConf(){return this.cell.column.columnDef.meta}get bgColor(){const e=this.columnConf.cellBackgroundColor;if(!e||e==="none")return;if(S.isString(e))return e;const n=+this.cell.getValue();if(isFinite(n)){const i=this.colorManager.decodeInterpolation(e.interpolation),l=new Ns(e.steps).mapValue(n);return i==null?void 0:i.getColor(l)}}}const fr=a.createStyles(()=>({palette:{display:"flex",flexFlow:"row nowrap"},paletteItem:{".palette-value":{height:24,overflow:"visible",width:36},".palette-item":{width:"36px",height:36*.618,cursor:"pointer",transition:"transform 100ms ease-in-out","&:hover":{boxShadow:"0 0 0 2px var(--shadow-color)",borderRadius:2,transform:"scale(1.2)"}}}})),hl=[{from:0,to:0},{from:100,to:100}];class gl{constructor(){V(this,"steps",new Map);V(this,"interpolation");V(this,"onChange");X.makeAutoObservable(this,{steps:X.observable},{deep:!1}),X.reaction(()=>X.toJS(this.steps),()=>{this.notifyStepChange()})}setSteps(e){for(const n of e)this.steps.set(n.to,n.from)}notifyStepChange(){var e;(e=this.onChange)==null||e.call(this,Array.from(this.steps.entries()).map(([n,i])=>({to:n,from:i})).sort((n,i)=>n.to-i.to||n.from-i.from))}fromProps(e){e.steps.length<2?this.setSteps(hl):this.setSteps(e.steps),this.interpolation=e.interpolation,this.onChange=e.onChange}changeStep(e,n){e==null?this.steps.delete(n):this.steps.set(n,e)}getStepFromValue(e){return this.steps.get(e)}}function ml(t){const{onChange:e,color:n,index:i,value:s}=t,{classes:l}=fr(),[o,u]=w.useState(s),[d,{setTrue:h,setFalse:f}]=L.useBoolean(!1),m=i%2===1,g=m&&s!=null,v=!m&&s!=null,_=`map ${s} to color ${i}`,k=()=>{u(s),f()},E=()=>{f(),e==null||e(o)},R=re.default(s).format({average:!0});return c("div",{"data-testid":`palette-item-${i}`,className:l.paletteItem,children:[r(a.Text,{title:_,style:{opacity:g?1:0},color:"dimmed",size:"sm",className:"palette-value--up palette-value",children:R}),c(a.Popover,{width:200,trapFocus:!0,opened:d,onClose:f,children:[r(a.Popover.Target,{children:r("div",{"data-testid":"palette-item-target",className:"palette-item",onClick:h,style:{"--shadow-color":Pe.default(n).alpha(.5).hex(),backgroundColor:n}})}),r(a.Popover.Dropdown,{children:c(a.Stack,{children:[r(a.NumberInput,{size:"xs",label:"Map a value to this color",value:o,onChange:u}),c(a.Group,{position:"right",children:[r(a.Button,{variant:"subtle",size:"xs",onClick:k,children:"Cancel"}),r(a.Button,{"data-testid":"palette-item-ok",size:"xs",onClick:E,children:"OK"})]})]})})]}),r(a.Text,{title:_,style:{opacity:v?1:0},color:"dimmed",size:"sm",className:"palette-value--bottom palette-value",children:R})]})}const yl=A.observer(({model:t})=>{const{classes:e}=fr(),n=S.range(0,13,1).map(i=>100/12*i).map(i=>[t.interpolation.getColor(i),i]);return r("div",{className:e.palette,children:n.map(([i,s],l)=>r(ml,{index:l,color:i,value:t.getStepFromValue(s),onChange:o=>t.changeStep(o,s)},i))})}),vl=A.observer(function(e){const n=L.useCreation(()=>new gl,[]);return w.useEffect(()=>{n.fromProps(e)}),n.interpolation==null?null:r(yl,{model:n})}),bl=t=>{const{value:e,onChange:n,colorManager:i}=t,s=i.getColorInterpolations(),[l,o]=w.useState(e),u=i.decodeInterpolation(l.interpolation)||s[0],[d,{setTrue:h,setFalse:f}]=L.useBoolean(),m=s.map(E=>({label:E.displayName,value:i.encodeColor(E),group:E.category}));function g(E){E&&o(R=>({...R,interpolation:E}))}const v=()=>{f(),n==null||n(X.toJS(l))};function _(E){o(R=>({...R,steps:E}))}const k=()=>{f(),o(e)};return c(N,{children:[r(a.Button,{variant:"outline",onClick:h,children:u==null?void 0:u.displayName}),r(a.Modal,{size:508,title:"Setup color interpolation",opened:d,onClose:f,children:d&&c(a.Stack,{"data-testid":"color-interpolation-modal",children:[r(a.Select,{label:"Color style",value:l.interpolation,data:m,onChange:g}),r(vl,{steps:l.steps,interpolation:u,onChange:_}),c(a.Group,{position:"right",children:[r(a.Button,{onClick:k,variant:"subtle",children:"Cancel"}),r(a.Button,{onClick:v,children:"OK"})]})]})})]})},xl=["static","interpolation","none"],Cl=[{from:0,to:0},{from:100,to:100}];function hr(t){return t?S.isString(t)?t==="none"?"none":"static":"interpolation":"none"}function wl(t,e){var n;return hr(e)==="static"?e:(n=t.getStaticColors()[0])==null?void 0:n.value}function Sl(t,e){return S.isObject(e)?e:{steps:Cl,interpolation:t.encodeColor(t.getColorInterpolations()[0])}}const Il=t=>{const{colorManager:e}=w.useContext(ge),[n,i]=w.useState(hr(t.value)),[s,l]=w.useState(wl(e,t.value)),o=L.useLatest(s),[u,d]=w.useState(Sl(e,t.value)),h=L.useLatest(u),f=v=>{var _,k,E;i(v||"none"),v==="static"?(_=t.onChange)==null||_.call(t,o.current):v==="none"||!v?(k=t.onChange)==null||k.call(t,"none"):(E=t.onChange)==null||E.call(t,h.current)},m=v=>{var _;l(v),(_=t.onChange)==null||_.call(t,v)},g=v=>{var _;d(v),(_=t.onChange)==null||_.call(t,v)};return c(a.Group,{align:"end",children:[r(a.Select,{label:"Cell background",value:n||"none",onChange:f,data:xl}),n==="static"&&r(xe,{value:s,onChange:m}),n==="interpolation"&&r(bl,{colorManager:e,value:u,onChange:g})]})},Dl=Object.values(we).map(t=>({label:t,value:t}));function Tl({label:t,value:e,onChange:n,sx:i}){return r(a.Select,{label:t,data:Dl,value:e,onChange:n,sx:i})}function _l({context:t}){const{value:e,set:n}=q(t.instanceData,"config"),i=gt.useForm({initialValues:nt});w.useEffect(()=>{const o=S.defaults({},e,i.values,nt);e&&i.setValues(o)},[e]);const s=t.data||[],l=()=>i.insertListItem("columns",{label:U.randomId(),value_field:"value",value_type:we.string});return r(a.Stack,{mt:"md",spacing:"xs",children:c("form",{onSubmit:i.onSubmit(async o=>{await n(o)}),children:[c(a.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[r(a.Text,{children:"Table Config"}),r(a.ActionIcon,{type:"submit","aria-label":"save config",mr:5,variant:"filled",color:"blue",children:r(T.DeviceFloppy,{size:20})})]}),c(a.Stack,{mt:"md",spacing:"xs",p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[r(j,{label:"ID Field",required:!0,data:s,...i.getInputProps("id_field")}),c(a.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:[r(a.TextInput,{label:"Horizontal Spacing",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...i.getInputProps("horizontalSpacing")}),r(a.TextInput,{label:"Vertical Spacing",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...i.getInputProps("verticalSpacing")})]}),r(a.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:r(a.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...i.getInputProps("fontSize")})}),c(a.Stack,{children:[r(a.Text,{children:"Other"}),c(a.Group,{position:"apart",grow:!0,children:[r(a.Switch,{label:"Striped",...i.getInputProps("striped",{type:"checkbox"})}),r(a.Switch,{label:"Highlight on hover",...i.getInputProps("highlightOnHover",{type:"checkbox"})})]})]})]}),c(a.Stack,{mt:"xs",spacing:"xs",p:"md",mb:"xl",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[r(a.Switch,{label:"Use Original Data Columns",...i.getInputProps("use_raw_columns",{type:"checkbox"})}),!i.values.use_raw_columns&&c(a.Stack,{children:[r(a.Text,{mt:"xl",mb:0,children:"Custom Columns"}),i.values.columns.map((o,u)=>c(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[c(a.Group,{position:"apart",grow:!0,children:[r(a.TextInput,{label:"Label",required:!0,id:`col-label-${u}`,sx:{flex:1},...i.getInputProps(`columns.${u}.label`)}),r(j,{label:"Value Field",required:!0,data:s,...i.getInputProps(`columns.${u}.value_field`)}),r(Tl,{label:"Value Type",sx:{flex:1},...i.getInputProps(`columns.${u}.value_type`)}),r(Il,{...i.getInputProps(`columns.${u}.cellBackgroundColor`)})]}),r(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>i.removeListItem("columns",u),sx:{position:"absolute",top:15,right:5},children:r(T.Trash,{size:16})})]},u)),r(a.Group,{position:"center",mt:"xs",children:r(a.Button,{onClick:l,children:"Add a Column"})})]})]}),r(a.Text,{weight:500,mb:"md",children:"Current Configuration:"}),r(Ie.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(i.values,null,2)})]})})}class Al extends oe{constructor(){super(...arguments);V(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const qt={createConfig(){return{version:1,config:S.cloneDeep(nt)}},displayName:"Table",migrator:new Al,name:"table",viewRender:pl,configRender:_l,triggers:[Ft]},Gt={label_field:"",value_field:""};J.use([de.SunburstChart,ye.CanvasRenderer]);const kl={tooltip:{show:!0},series:{type:"sunburst",radius:[0,"90%"],emphasis:{focus:"ancestor"}}};function Ml({context:t}){const{value:e}=q(t.instanceData,"config"),n=t.data,{width:i,height:s}=t.viewport,{label_field:l,value_field:o}=S.defaults({},e,Gt),u=w.useMemo(()=>n.map(m=>({name:m[l],value:Number(m[o])})),[n,l,o]),d=w.useMemo(()=>{var m,g;return(g=(m=S.maxBy(u,v=>v.value))==null?void 0:m.value)!=null?g:1},[u]),h=w.useMemo(()=>({series:{label:{formatter:({name:m,value:g})=>g/d<.2?" ":m}}}),[d]),f=S.merge({},kl,h,{series:{data:u}});return r(ve.default,{echarts:J,option:f,style:{width:i,height:s}})}function El({context:t}){const{value:e,set:n}=q(t.instanceData,"config"),{label_field:i,value_field:s}=S.defaults({},e,Gt),l=t.data,o=gt.useForm({initialValues:{label_field:i,value_field:s}});return w.useEffect(()=>{o.setValues({label_field:i,value_field:s})},[i,s]),r(a.Stack,{mt:"md",spacing:"xs",children:c("form",{onSubmit:o.onSubmit(n),children:[c(a.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[r(a.Text,{children:"Sunburst Config"}),r(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:r(T.DeviceFloppy,{size:20})})]}),c(a.Stack,{mt:"md",spacing:"xs",p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[r(j,{label:"Label Field",required:!0,data:l,...o.getInputProps("label_field")}),r(j,{label:"Value Field",required:!0,data:l,...o.getInputProps("value_field")})]})]})})}class Vl extends oe{constructor(){super(...arguments);V(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Pl={displayName:"Sunburst",migrator:new Vl,name:"sunburst",viewRender:Ml,configRender:El,createConfig:()=>Gt},Bt={label_field:"",value_field:""};J.use([de.PieChart,ye.CanvasRenderer]);const zl={tooltip:{show:!0},series:{type:"pie",radius:["50%","80%"],label:{position:"outer",alignTo:"edge",formatter:`{name|{b}}
41
- {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 Ol({context:t}){const{value:e}=q(t.instanceData,"config"),n=t.data,{width:i,height:s}=t.viewport,{label_field:l,value_field:o}=S.defaults({},e,Bt),u=w.useMemo(()=>n.map(f=>({name:f[l],value:Number(f[o])})),[n,l,o]),d=w.useMemo(()=>({series:{labelLayout:function(f){const m=f.labelRect.x<i/2,g=f.labelLinePoints;return S.set(g,[2,0],m?f.labelRect.x:f.labelRect.x+f.labelRect.width),{labelLinePoints:g}}}}),[i]),h=S.merge({},zl,d,{series:{data:u}});return r(ve.default,{echarts:J,option:h,style:{width:i,height:s}})}function Fl({context:t}){const{value:e,set:n}=q(t.instanceData,"config"),{label_field:i,value_field:s}=S.defaults({},e,Bt),l=t.data,o=gt.useForm({initialValues:{label_field:i,value_field:s}});return w.useEffect(()=>{o.setValues({label_field:i,value_field:s})},[i,s]),r(a.Stack,{mt:"md",spacing:"xs",children:c("form",{onSubmit:o.onSubmit(n),children:[c(a.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[r(a.Text,{children:"Pie Config"}),r(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:r(T.DeviceFloppy,{size:20})})]}),c(a.Stack,{mt:"md",spacing:"xs",p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[r(j,{label:"Label Field",required:!0,data:l,...o.getInputProps("label_field")}),r(j,{label:"Value Field",required:!0,data:l,...o.getInputProps("value_field")})]})]})})}class ql extends oe{constructor(){super(...arguments);V(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Gl={displayName:"Pie Chart",migrator:new ql,name:"pie",viewRender:Ol,configRender:Fl,createConfig:()=>Bt},Rt={x_axis_data_key:"",y_axis_data_key:"",z_axis_data_key:"",xAxis3D:{type:"value",name:"X Axis Name"},yAxis3D:{type:"value",name:"Y Axis Name"},zAxis3D:{type:"value",name:"Z Axis Name"}};J.use([$.GridComponent,$.VisualMapComponent,$.LegendComponent,$.TooltipComponent,ye.CanvasRenderer]);function Bl({context:t}){const{value:e}=q(t.instanceData,"config"),n=t.data,{width:i,height:s}=t.viewport,{x_axis_data_key:l,y_axis_data_key:o,z_axis_data_key:u,xAxis3D:d,yAxis3D:h,zAxis3D:f}=S.defaults({},e,Rt),m=w.useMemo(()=>{const _=S.minBy(n,k=>k[u]);return S.get(_,u)},[n,u]),g=w.useMemo(()=>{const _=S.maxBy(n,k=>k[u]);return S.get(_,u)},[n,u]),v={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:m,max:g,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:d,yAxis3D:h,zAxis3D:f,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:n.map(_=>[_[l],_[o],_[u]])}]};return e?r(ve.default,{echarts:J,option:v,style:{width:i,height:s}}):null}function Rl({context:t}){const{value:e,set:n}=q(t.instanceData,"config"),i=t.data,s=S.defaults({},e,Rt),{control:l,handleSubmit:o,reset:u}=C.useForm({defaultValues:s});return w.useEffect(()=>{u(s)},[e]),e?r(a.Stack,{mt:"md",spacing:"xs",children:c("form",{onSubmit:o(n),children:[r(a.Text,{children:"X Axis"}),c(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r(C.Controller,{name:"x_axis_data_key",control:l,render:({field:d})=>r(j,{label:"Data Field",required:!0,data:i,...d})}),r(C.Controller,{name:"xAxis3D.name",control:l,render:({field:d})=>r(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...d})})]}),r(a.Text,{mt:"lg",children:"Y Axis"}),c(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r(C.Controller,{name:"y_axis_data_key",control:l,render:({field:d})=>r(j,{label:"Data Field",required:!0,data:i,...d})}),r(C.Controller,{name:"yAxis3D.name",control:l,render:({field:d})=>r(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...d})})]}),r(a.Text,{mt:"lg",children:"Z Axis"}),c(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[r(C.Controller,{name:"z_axis_data_key",control:l,render:({field:d})=>r(j,{label:"Data Field",required:!0,data:i,...d})}),r(C.Controller,{name:"zAxis3D.name",control:l,render:({field:d})=>r(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...d})})]}),r(a.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:c(a.Button,{color:"blue",type:"submit",children:[r(T.DeviceFloppy,{size:20}),r(a.Text,{ml:"md",children:"Save"})]})})]})}):null}class Ll extends oe{constructor(){super(...arguments);V(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const $l={displayName:"Bar Chart (3D)",migrator:new Ll,name:"bar-3d",viewRender:Bl,configRender:Rl,createConfig:()=>Rt},Lt={x_axis:{name:"X Axis",data_key:""},y_axis:{name:"Y Axis",data_key:"value"},color:"#228be6",variables:[],reference_lines:[]};J.use([$.DataZoomComponent,de.BoxplotChart,$.MarkLineComponent,$.GridComponent,$.LegendComponent,$.TooltipComponent,ye.CanvasRenderer]);function Nl(t,e,n){const i=e.reduce((s,l)=>{const o=or(l,n);return s[l.name]=tt(l,o),s},{});return t.map(s=>({name:"refs",type:"scatter",data:[],markLine:{data:[{name:s.name,yAxis:Number(i[s.variable_key])}],silent:!0,symbol:["none","none"],label:{formatter:function(){return ur(s.template,e,n)},position:"insideEndTop"}}}))}function jl({context:t}){const{value:e}=q(t.instanceData,"config"),n=t.data,{width:i,height:s}=t.viewport,{x_axis:l,y_axis:o,color:u,variables:d,reference_lines:h}=S.defaults({},e,Lt),{xAxisData:f,boxplotData:m}=w.useMemo(()=>{const v=O.default.groupBy(n,l.data_key);return{xAxisData:Object.keys(v),boxplotData:Object.values(v).map(_=>_.map(k=>k[o.data_key]))}},[n,l.data_key,o.data_key]),g={dataset:[{source:m},{transform:{type:"boxplot",config:{itemNameFormatter:function(v){var _;return(_=f[v.value])!=null?_:v.value}}}}],dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}],tooltip:{trigger:"axis"},xAxis:[{type:"category",name:l.name}],yAxis:[{name:o.name}],series:[{name:o.name,type:"boxplot",itemStyle:{color:u,borderColor:"#454545"},boxWidth:[10,40],datasetIndex:1},...Nl(h,d,n)]};return!e||!i||!s?null:r(ve.default,{echarts:J,option:g,style:{width:i,height:s}})}function Wl({control:t,index:e,remove:n,variableOptions:i}){return c(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:`reference_lines.${e}.name`,control:t,render:({field:s})=>r(a.TextInput,{label:"Name",placeholder:"Average Reference Line",required:!0,sx:{flex:1},...s})}),r(C.Controller,{name:`reference_lines.${e}.variable_key`,control:t,render:({field:s})=>r(a.Select,{label:"Value",required:!0,data:i,sx:{flex:1},...s})})]}),r(C.Controller,{name:`reference_lines.${e}.template`,control:t,render:({field:s})=>r(a.TextInput,{label:"Content Template",placeholder:"Average: ${avg}",required:!0,sx:{flex:1},...s})}),r(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(e),sx:{position:"absolute",top:15,right:5},children:r(T.Trash,{size:16})})]},e)}function Ql({control:t,watch:e}){const{fields:n,append:i,remove:s}=C.useFieldArray({control:t,name:"reference_lines"}),l=e("reference_lines"),o=n.map((f,m)=>({...f,...l[m]})),u=()=>i({name:"",template:"",variable_key:""}),d=e("variables"),h=w.useMemo(()=>d.map(f=>({label:f.name,value:f.name})),[d]);return c(a.Stack,{children:[o.map((f,m)=>r(Wl,{control:t,index:m,remove:s,variableOptions:h})),r(a.Group,{position:"center",mt:"xs",children:r(a.Button,{onClick:u,children:"Add a Reference Line"})})]})}function Yl({control:t,index:e,remove:n,data:i}){return c(a.Stack,{my:"sm",p:0,sx:{border:"1px solid #eee",borderTopColor:"#333",borderTopWidth:2,position:"relative"},children:[r(C.Controller,{name:`variables.${e}`,control:t,render:({field:s})=>r(Ke,{data:i,withStyle:!1,...s})}),r(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(e),sx:{position:"absolute",top:15,right:5},children:r(T.Trash,{size:16})})]},e)}function Ul({control:t,watch:e,data:n}){const{fields:i,append:s,remove:l}=C.useFieldArray({control:t,name:"variables"}),o=e("variables"),u=i.map((h,f)=>({...h,...o[f]})),d=()=>s(Xe());return c(a.Stack,{children:[u.map((h,f)=>r(Yl,{control:t,index:f,remove:l,data:n})),r(a.Group,{position:"center",mt:"xs",children:r(a.Button,{onClick:d,children:"Add a Variable"})})]})}function Xl({context:t}){const{value:e,set:n}=q(t.instanceData,"config"),i=t.data,s=w.useMemo(()=>S.defaults({},e,Lt),[e]),{control:l,handleSubmit:o,watch:u,getValues:d,reset:h}=C.useForm({defaultValues:s});w.useEffect(()=>{h(s)},[s]),u(["x_axis","y_axis","reference_lines","color"]);const f=d(),m=w.useMemo(()=>!S.isEqual(f,e),[f,e]);return r(a.Stack,{mt:"md",spacing:"xs",children:c("form",{onSubmit:o(n),children:[c(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[r(a.Text,{children:"Chart Config"}),r(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!m,children:r(T.DeviceFloppy,{size:20})})]}),c(a.Accordion,{defaultValue:"Axis",children:[c(a.Accordion.Item,{value:"Axis",children:[r(a.Accordion.Control,{children:"Axis"}),c(a.Accordion.Panel,{children:[c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:"x_axis.name",control:l,render:({field:g})=>r(a.TextInput,{label:"X Axis Name",sx:{flex:1},...g})}),r(C.Controller,{name:"x_axis.data_key",control:l,render:({field:g})=>r(j,{label:"X Axis Data Field",required:!0,data:i,sx:{flex:1},...g})})]}),c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:"y_axis.name",control:l,render:({field:g})=>r(a.TextInput,{label:"Y Axis Name",sx:{flex:1},...g})}),r(C.Controller,{name:"y_axis.data_key",control:l,render:({field:g})=>r(j,{label:"Y Axis Data Field",required:!0,data:i,sx:{flex:1},...g})})]})]})]}),c(a.Accordion.Item,{value:"Style",children:[r(a.Accordion.Control,{children:"Style"}),r(a.Accordion.Panel,{children:c(a.Stack,{spacing:4,children:[r(a.Text,{size:"sm",children:"Color"}),r(C.Controller,{name:"color",control:l,render:({field:g})=>r(xe,{...g})})]})})]}),c(a.Accordion.Item,{value:"Advanced",children:[r(a.Accordion.Control,{children:c(a.Group,{position:"apart",children:["Advanced",r(a.Text,{align:"right",size:12,color:"grey",children:"Use variables in reference lines"})]})}),r(a.Accordion.Panel,{children:c(a.Tabs,{defaultValue:"variables",children:[c(a.Tabs.List,{children:[r(a.Tabs.Tab,{value:"variables",children:"Variables"}),r(a.Tabs.Tab,{value:"reference_lines",children:"Reference Lines"})]}),r(a.Tabs.Panel,{value:"variables",pt:"xs",children:r(Ul,{control:l,watch:u,data:i})}),r(a.Tabs.Panel,{value:"reference_lines",pt:"xs",children:r(Ql,{control:l,watch:u})})]})})]})]})]})})}class Jl extends oe{constructor(){super(...arguments);V(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Kl={displayName:"Boxplot",migrator:new Jl,name:"boxplot",viewRender:jl,configRender:Xl,createConfig:()=>Lt};function Zl(t){const e=t.y_axes.some(n=>!!n.name);return{bottom:t.x_axis_name?40:25,top:e?30:10}}function Hl({regressions:t=[]},e){const n=[],i=[],s=[];return e.length===0?{regressionDataSets:n,regressionSeries:i,regressionXAxes:s}:(t.forEach(({transform:l,plot:o,name:u,y_axis_data_key:d})=>{const h=`x-axis-for-${u}`,f=`dataset-for-${u}--raw`,m=`dataset-for-${u}--transformed`;n.push({id:f,source:e.map((g,v)=>[v,Number(g[d])])}),n.push({transform:l,id:m,fromDatasetId:f}),i.push({...o,name:u,datasetId:m,xAxisId:h,showSymbol:!1,tooltip:{show:!1}}),s.push({type:"category",id:h,datasetId:m,show:!1})}),{regressionDataSets:n,regressionSeries:i,regressionXAxes:s})}function eo(t,e,n,i){const s=e.map(l=>[l[n],l[i]]);return O.default.unionBy(s,t,0)}function to(t,e,n){const i=e.reduce((s,l)=>{const o=or(l,n);return s[l.name]=tt(l,o),s},{});return t.map(s=>({name:"refs",type:"scatter",data:[],markLine:{data:[{name:s.name,yAxis:Number(i[s.variable_key])}],silent:!0,symbol:["none","none"],label:{formatter:function(){return ur(s.template,e,n)},position:"insideEndTop"}}}))}function no({x_axis_data_key:t},{y_axis_data_key:e,yAxisIndex:n,label_position:i,name:s,group_by_key:l,stack:o,color:u,...d},h,f,m){const g={label:{show:!!i,position:i,formatter:m[n!=null?n:"default"]},name:s,xAxisId:"main-x-axis",yAxisIndex:n,stack:o,color:u,...d};if(!l)return g.data=f.map(_=>_[e]),g;const v=S.groupBy(f,l);return Object.entries(v).map(([_,k])=>{const E=S.cloneDeep(g);return E.data=eo(h,k,t,e),E.name=_,E.color=void 0,E})}function ro(t,e,n,i){const s=e.map(o=>[o,0]);return t.series.map(o=>no(t,o,s,n,i)).flat().concat(to(t.reference_lines,t.variables,n))}function io(t,e){const n=t.series.reduce((i,{yAxisIndex:s,name:l})=>(i[l]=s,i),{});return{formatter:function(i){const s=Array.isArray(i)?i:[i];if(s.length===0)return"";const l=s.map(({seriesName:o,value:u})=>{var f;if(Array.isArray(u)&&u.length===2&&(u=u[1]),!o)return u;const d=n[o],h=(f=e[d])!=null?f:e.default;return`${o}: <strong>${h({value:u})}</strong>`});return l.unshift(`<strong>${s[0].name}</strong>`),l.join("<br />")}}}function ao(t,e,n){var i;return[{data:e,name:(i=t.x_axis_name)!=null?i:"",id:"main-x-axis",...t.x_axis},...n]}function so(t,e){return t.y_axes.map(({nameAlignment:n,...i},s)=>{var o;let l=i.position;return l||(l=s>0?"right":"left"),{...i,position:l,axisLabel:{show:!0,formatter:(o=e[s])!=null?o:e.default},nameTextStyle:{fontWeight:"bold",align:n},nameLocation:"end",nameGap:15}})}const lo={legend:{show:!0,bottom:0,left:"center",type:"scroll"},dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}],tooltip:{trigger:"axis"},xAxis:[{type:"category",nameGap:25,nameLocation:"center",nameTextStyle:{fontWeight:"bold"}}],grid:{top:10,left:30,right:15,bottom:25,containLabel:!0}};function oo(t,e){const n=t.y_axes.reduce((h,{label_formatter:f},m)=>(h[m]=function(v){let _=v;if(typeof v=="object"&&(Array.isArray(v.value)&&v.value.length===2?_=v.value[1]:_=v.value),!f)return _;try{return re.default(_).format(f)}catch(k){return console.error(k),_}},h),{default:({value:h})=>h}),i=O.default.uniq(e.map(h=>h[t.x_axis_data_key])),s=ro(t,i,e,n),{regressionDataSets:l,regressionSeries:o,regressionXAxes:u}=Hl(t,e),d={xAxis:ao(t,i,u),yAxis:so(t,n),dataset:[...l],series:[...s,...o],tooltip:io(t,n),grid:Zl(t)};return S.defaultsDeep({},d,lo)}const $t={regressions:[],series:[],stats:{templates:{bottom:"",top:""},variables:[]},x_axis:{axisLabel:{rotate:0}},x_axis_data_key:"",x_axis_name:"",y_axes:[{name:"Y Axis",position:"left",nameAlignment:"center",label_formatter:qe}],variables:[],reference_lines:[]};J.use([$.DataZoomComponent,de.BarChart,de.LineChart,de.ScatterChart,$.GridComponent,$.LegendComponent,$.TooltipComponent,ye.CanvasRenderer]),J.registerTransform(cn.transform.regression);function gr(t){return t.trim().length>0}function uo({conf:t,data:e,width:n,height:i}){const s=b.default.useMemo(()=>oo(t,e),[t,e]);return!n||!i?null:r(ve.default,{echarts:J,option:s,style:{width:n,height:i}})}function co({context:t}){const{value:e}=q(t.instanceData,"config"),n=w.useMemo(()=>S.defaults({},e,$t),[e]),i=t.data,{width:s,height:l}=t.viewport,{ref:o,height:u}=U.useElementSize(),{ref:d,height:h}=U.useElementSize(),f=b.default.useMemo(()=>{const{stats:{templates:g,variables:v}}=n;return{top:Ot(g.top,v,i),bottom:Ot(g.bottom,v,i)}},[n,i]),m=Math.max(0,l-u-h);return c(a.Box,{children:[gr(n.stats.templates.top)&&r(a.Text,{ref:o,align:"left",size:"xs",pl:"sm",children:Object.values(f.top).map(g=>g)}),r(uo,{width:s,height:m,data:i,conf:n}),gr(n.stats.templates.bottom)&&r(a.Text,{ref:d,align:"left",size:"xs",pl:"sm",children:Object.values(f.bottom).map(g=>g)})]})}function po({control:t,index:e,remove:n,variableOptions:i}){return c(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:`reference_lines.${e}.name`,control:t,render:({field:s})=>r(a.TextInput,{label:"Name",placeholder:"Average Reference Line",required:!0,sx:{flex:1},...s})}),r(C.Controller,{name:`reference_lines.${e}.variable_key`,control:t,render:({field:s})=>r(a.Select,{label:"Value",required:!0,data:i,sx:{flex:1},...s})})]}),r(C.Controller,{name:`reference_lines.${e}.template`,control:t,render:({field:s})=>r(a.TextInput,{label:"Content Template",placeholder:"Average: ${avg}",required:!0,sx:{flex:1},...s})}),r(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(e),sx:{position:"absolute",top:15,right:5},children:r(T.Trash,{size:16})})]},e)}function fo({control:t,watch:e}){const{fields:n,append:i,remove:s}=C.useFieldArray({control:t,name:"reference_lines"}),l=e("reference_lines"),o=n.map((f,m)=>({...f,...l[m]})),u=()=>i({name:"",template:"",variable_key:""}),d=e("variables"),h=w.useMemo(()=>d.map(f=>({label:f.name,value:f.name})),[d]);return c(a.Stack,{children:[o.map((f,m)=>r(po,{control:t,index:m,remove:s,variableOptions:h})),r(a.Group,{position:"center",mt:"xs",children:r(a.Button,{onClick:u,children:"Add a Reference Line"})})]})}const ho=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}],go=[{label:"solid",value:"solid"},{label:"dashed",value:"dashed"},{label:"dotted",value:"dotted"}];function mo({control:t,regressionItem:e,index:n,remove:i,yAxisOptions:s,data:l}){const o=e.transform.config.method;return c(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[r(C.Controller,{name:`regressions.${n}.name`,control:t,render:({field:u})=>r(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...u})}),c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:`regressions.${n}.y_axis_data_key`,control:t,render:({field:u})=>r(j,{label:"Value Field",required:!0,data:l,sx:{flex:1},...u})}),r(C.Controller,{name:`regressions.${n}.plot.yAxisIndex`,control:t,render:({field:{value:u,onChange:d,...h}})=>{var f;return r(a.Select,{label:"Y Axis",data:s,disabled:s.length===0,...h,value:(f=u==null?void 0:u.toString())!=null?f:"",onChange:m=>{if(!m){d(0);return}d(Number(m))},sx:{flex:1}})}})]}),c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:`regressions.${n}.transform.config.method`,control:t,render:({field:u})=>r(a.Select,{label:"Method",data:ho,sx:{flex:1},...u})}),o==="polynomial"&&r(C.Controller,{name:`regressions.${n}.transform.config.order`,control:t,render:({field:u})=>r(a.NumberInput,{label:"Order",sx:{flex:1},...u})})]}),r(a.Divider,{mb:-15,variant:"dashed",label:"Line Style",labelPosition:"center"}),c(a.Group,{grow:!0,children:[r(C.Controller,{name:`regressions.${n}.plot.lineStyle.type`,control:t,render:({field:u})=>r(a.Select,{label:"Line Type",data:go,sx:{flexGrow:1},...u})}),r(C.Controller,{name:`regressions.${n}.plot.lineStyle.width`,control:t,render:({field:u})=>r(a.NumberInput,{label:"Line Width",min:1,max:10,sx:{flexGrow:1},...u})})]}),c(a.Stack,{spacing:4,children:[r(a.Text,{size:"sm",children:"Color"}),r(C.Controller,{name:`regressions.${n}.plot.color`,control:t,render:({field:u})=>r(xe,{...u})})]}),r(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>i(n),sx:{position:"absolute",top:15,right:5},children:r(T.Trash,{size:16})})]},n)}function yo({control:t,watch:e,data:n}){const{fields:i,append:s,remove:l}=C.useFieldArray({control:t,name:"regressions"}),o=e("regressions"),u=i.map((m,g)=>({...m,...o[g]})),d=e("y_axes"),h=b.default.useMemo(()=>d.map(({name:m},g)=>({label:m,value:g.toString()})),[d]),f=()=>s({transform:{type:"ecStat:regression",config:{method:"linear",order:1,formulaOn:"end"}},name:"",y_axis_data_key:"",plot:{type:"line",yAxisIndex:0,color:"#666666",lineStyle:{type:"solid",width:1}}});return c(a.Stack,{children:[u.map((m,g)=>r(mo,{regressionItem:m,control:t,index:g,remove:l,yAxisOptions:h,data:n},g)),r(a.Group,{position:"center",mt:"xs",children:r(a.Button,{onClick:f,children:"Add a Regression Line"})})]})}const vo=[{label:"No gap between bars",value:"0%"},{label:"Bars overlapping on each other",value:"-100%"}];function bo({control:t,index:e}){return c(N,{children:[c(a.Group,{grow:!0,align:"top",children:[r(C.Controller,{name:`series.${e}.stack`,control:t,render:({field:n})=>r(a.TextInput,{label:"Stack",placeholder:"Stack bars by this ID",sx:{flexGrow:1},...n})}),r(C.Controller,{name:`series.${e}.barWidth`,control:t,render:({field:n})=>r(a.TextInput,{label:"Bar Width",sx:{flexGrow:1},...n})})]}),r(C.Controller,{name:`series.${e}.barGap`,control:t,render:({field:n})=>r(a.Select,{label:"Bar Gap",data:vo,sx:{flexGrow:1},...n})})]})}const xo=[{label:"off",value:"false"},{label:"start",value:"start"},{label:"middle",value:"middle"},{label:"end",value:"end"}],Co=[{label:"solid",value:"solid"},{label:"dashed",value:"dashed"},{label:"dotted",value:"dotted"}];function wo({control:t,index:e}){return c(N,{children:[r(a.Divider,{mb:-15,variant:"dashed",label:"Line Settings",labelPosition:"center"}),c(a.Group,{grow:!0,children:[r(C.Controller,{name:`series.${e}.lineStyle.type`,control:t,render:({field:n})=>r(a.Select,{label:"Line Type",data:Co,sx:{flexGrow:1},...n})}),r(C.Controller,{name:`series.${e}.lineStyle.width`,control:t,render:({field:n})=>r(a.NumberInput,{label:"Line Width",min:1,max:10,sx:{flexGrow:1},...n})})]}),c(a.Group,{grow:!0,align:"center",children:[r(C.Controller,{name:`series.${e}.step`,control:t,render:({field:n})=>r(a.Select,{label:"Step",data:xo,sx:{flexGrow:1,maxWidth:"48%"},...n,value:String(n.value),onChange:i=>{const s=i==="false"?!1:i;n.onChange(s)}})}),r(C.Controller,{name:`series.${e}.smooth`,control:t,render:({field:n})=>r(a.Box,{sx:{flexGrow:1},children:r(a.Switch,{label:"Smooth Line",checked:n.value,onChange:i=>n.onChange(i.currentTarget.checked)})})})]})]})}const So=Array.from(new Array(9),(t,e)=>({label:String(e+1),value:e+1}));function Io({control:t,index:e}){return r(a.Group,{grow:!0,align:"center",children:r(C.Controller,{name:`series.${e}.symbolSize`,control:t,render:({field:n})=>c(a.Stack,{sx:{flexGrow:1},pb:16,spacing:4,children:[r(a.Text,{size:"sm",children:"Size"}),r(a.Slider,{min:1,max:10,marks:So,...n,sx:{width:"100%"}})]})})})}const Do=[{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 To({control:t,index:e,remove:n,seriesItem:i,yAxisOptions:s,data:l}){const o=i.type;return c(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[r(a.Stack,{children:r(C.Controller,{name:`series.${e}.type`,control:t,render:({field:u})=>r(a.SegmentedControl,{data:[{label:"Line",value:"line"},{label:"Bar",value:"bar"},{label:"Scatter",value:"scatter"},{label:"Boxplot",value:"boxplot",disabled:!0}],...u})})}),c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:`series.${e}.name`,control:t,render:({field:u})=>r(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...u})}),r(C.Controller,{name:`series.${e}.y_axis_data_key`,control:t,render:({field:u})=>r(j,{label:"Value Field",required:!0,data:l,sx:{flex:1},...u})})]}),c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:`series.${e}.yAxisIndex`,control:t,render:({field:{value:u,onChange:d,...h}})=>{var f;return r(a.Select,{label:"Y Axis",data:s,disabled:s.length===0,...h,value:(f=u==null?void 0:u.toString())!=null?f:"",onChange:m=>{if(!m){d(0);return}d(Number(m))},sx:{flex:1}})}}),r(C.Controller,{name:`series.${e}.group_by_key`,control:t,render:({field:u})=>r(j,{label:"Group By",data:l,clearable:!0,sx:{flex:1},...u})})]}),o==="line"&&r(wo,{index:e,control:t}),o==="bar"&&r(bo,{index:e,control:t}),o==="scatter"&&r(Io,{index:e,control:t}),r(C.Controller,{name:`series.${e}.label_position`,control:t,render:({field:u})=>r(a.Select,{label:"Label Position",data:Do,...u})}),c(a.Stack,{spacing:4,children:[r(a.Text,{size:"sm",children:"Color"}),r(C.Controller,{name:`series.${e}.color`,control:t,render:({field:u})=>r(xe,{...u})})]}),r(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(e),sx:{position:"absolute",top:15,right:5},children:r(T.Trash,{size:16})})]},e)}function _o({control:t,watch:e,data:n}){const{fields:i,append:s,remove:l}=C.useFieldArray({control:t,name:"series"}),o=e("series"),u=i.map((m,g)=>({...m,...o[g]})),d=()=>s({type:"bar",name:U.randomId(),showSymbol:!1,symbolSize:5,y_axis_data_key:"value",yAxisIndex:0,label_position:"top",stack:"",color:"#000",step:!1,smooth:!1,barWidth:"10",barGap:"0%",lineStyle:{type:"solid",width:1}}),h=e("y_axes"),f=b.default.useMemo(()=>h.map(({name:m},g)=>({label:m,value:g.toString()})),[h]);return c(a.Stack,{children:[u.map((m,g)=>r(To,{control:t,index:g,remove:l,seriesItem:m,yAxisOptions:f,data:n},m.id)),r(a.Group,{position:"center",mt:"xs",children:r(a.Button,{onClick:d,children:"Add a Series"})})]})}function Ao({control:t,index:e,remove:n,data:i}){return c(a.Stack,{my:"sm",p:0,sx:{border:"1px solid #eee",borderTopColor:"#333",borderTopWidth:2,position:"relative"},children:[r(C.Controller,{name:`stats.variables.${e}`,control:t,render:({field:s})=>r(Ke,{data:i,...s})}),r(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(e),sx:{position:"absolute",top:15,right:5},children:r(T.Trash,{size:16})})]},e)}function ko({control:t,watch:e,data:n}){const{fields:i,append:s,remove:l}=C.useFieldArray({control:t,name:"stats.variables"});e("stats.templates");const o=e("stats.variables"),u=i.map((h,f)=>({...h,...o[f]})),d=()=>s(Xe());return c(a.Stack,{children:[c(a.Stack,{spacing:0,children:[r(C.Controller,{name:"stats.templates.top",control:t,render:({field:h})=>r(Dt,{label:"Template for stats above the chart",py:"md",sx:{flexGrow:1},...h})}),r(C.Controller,{name:"stats.templates.bottom",control:t,render:({field:h})=>r(Dt,{label:"Template for stats under the chart",py:"md",sx:{flexGrow:1},...h})})]}),u.map((h,f)=>r(Ao,{control:t,index:f,remove:l,data:n})),r(a.Group,{position:"center",mt:"xs",children:r(a.Button,{onClick:d,children:"Add a Variable"})})]})}function Mo({control:t,index:e,remove:n,data:i}){return c(a.Stack,{my:"sm",p:0,sx:{border:"1px solid #eee",borderTopColor:"#333",borderTopWidth:2,position:"relative"},children:[r(C.Controller,{name:`variables.${e}`,control:t,render:({field:s})=>r(Ke,{data:i,withStyle:!1,...s})}),r(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(e),sx:{position:"absolute",top:15,right:5},children:r(T.Trash,{size:16})})]},e)}function Eo({control:t,watch:e,data:n}){const{fields:i,append:s,remove:l}=C.useFieldArray({control:t,name:"variables"}),o=e("variables"),u=i.map((h,f)=>({...h,...o[f]})),d=()=>s(Xe());return c(a.Stack,{children:[u.map((h,f)=>r(Mo,{control:t,index:f,remove:l,data:n})),r(a.Group,{position:"center",mt:"xs",children:r(a.Button,{onClick:d,children:"Add a Variable"})})]})}function Vo({data:t,control:e,watch:n}){return n(["x_axis_data_key","x_axis_name","x_axis"]),c(a.Stack,{children:[c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:"x_axis_data_key",control:e,render:({field:i})=>r(j,{label:"X Axis Data Field",required:!0,data:t,sx:{flex:1},...i})}),r(C.Controller,{name:"x_axis_name",control:e,render:({field:i})=>r(a.TextInput,{label:"X Axis Name",sx:{flex:1},...i})})]}),r(a.Divider,{mb:-15,label:"Tick Label",labelPosition:"center"}),r(a.Group,{children:r(C.Controller,{name:"x_axis.axisLabel.rotate",control:e,render:({field:i})=>r(a.NumberInput,{label:"Rotate",hideControls:!0,min:-90,max:90,rightSection:r(a.Text,{color:"dimmed",children:"degree"}),sx:{width:"48%"},styles:{rightSection:{width:"4em",justifyContent:"flex-end",paddingRight:"6px"}},...i})})})]})}const Po=[{label:"left",value:"left"},{label:"center",value:"center"},{label:"right",value:"right"}],zo=[{label:"left",value:"left"},{label:"right",value:"right"}];function Oo({control:t,index:e,remove:n}){return c(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[r(a.Divider,{mb:-15,variant:"dashed",label:"Name",labelPosition:"center"}),c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:`y_axes.${e}.name`,control:t,render:({field:i})=>r(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),r(C.Controller,{name:`y_axes.${e}.nameAlignment`,control:t,render:({field:i})=>r(a.Select,{label:"Align",required:!0,data:Po,sx:{flex:1},...i})})]}),r(a.Divider,{mb:-15,variant:"dashed",label:"Layout",labelPosition:"center"}),r(a.Group,{grow:!0,noWrap:!0,children:r(C.Controller,{name:`y_axes.${e}.position`,control:t,render:({field:i})=>r(a.Select,{label:"Position",required:!0,data:zo,sx:{flex:1},...i})})}),c(a.Stack,{children:[r(a.Divider,{mb:-15,variant:"dashed",label:"Label Format",labelPosition:"center"}),r(C.Controller,{name:`y_axes.${e}.label_formatter`,control:t,render:({field:i})=>r(Tt,{...i})})]}),r(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(e),sx:{position:"absolute",top:15,right:5},disabled:e===0,children:r(T.Trash,{size:16})})]})}function Fo({control:t,watch:e}){const{fields:n,append:i,remove:s}=C.useFieldArray({control:t,name:"y_axes"}),l=e("y_axes"),o=n.map((d,h)=>({...d,...l[h]})),u=()=>i({name:"",label_formatter:qe});return c(a.Stack,{children:[o.map((d,h)=>r(Oo,{control:t,index:h,remove:s},h)),r(a.Group,{position:"center",mt:"xs",children:r(a.Button,{onClick:u,children:"Add a Y Axis"})})]})}function qo(t){function e({type:n,name:i,showSymbol:s,symbolSize:l=5,y_axis_data_key:o="value",yAxisIndex:u=0,label_position:d="top",stack:h="1",color:f="black",barWidth:m="30",barGap:g="0%",smooth:v=!1,step:_=!1,group_by_key:k="",lineStyle:E={type:"solid",width:1}}){return{type:n,name:i,showSymbol:s,symbolSize:l,y_axis_data_key:o,yAxisIndex:u,label_position:d,stack:h,color:f,barWidth:m,barGap:g,smooth:v,step:_,group_by_key:k,lineStyle:E}}return t.map(e)}function Go(t){return t||{templates:{top:"",bottom:""},variables:[]}}function Bo({series:t,stats:e,...n}){return{series:qo(t!=null?t:[]),stats:Go(e),...n}}function Ro({context:t}){const{value:e,set:n}=q(t.instanceData,"config"),i=t.data,s=w.useMemo(()=>S.defaultsDeep({},e,$t),[e]),l=w.useMemo(()=>Bo(s),[s]);w.useEffect(()=>{!S.isEqual(s,l)&&(console.log("config malformed, resetting to defaults",s,l),n(l))},[s,l]);const{control:o,handleSubmit:u,watch:d,getValues:h,reset:f}=C.useForm({defaultValues:l});w.useEffect(()=>{f(l)},[l]);const m=h(),g=w.useMemo(()=>!S.isEqual(m,s),[m,s]);return r(a.Stack,{mt:"md",spacing:"xs",children:c("form",{onSubmit:u(n),children:[c(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[r(a.Text,{children:"Chart Config"}),r(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!g,children:r(T.DeviceFloppy,{size:20})})]}),c(a.Accordion,{multiple:!0,defaultValue:["X Axis","Y Axes"],children:[c(a.Accordion.Item,{value:"X Axis",children:[r(a.Accordion.Control,{children:"X Axis"}),r(a.Accordion.Panel,{children:r(Vo,{control:o,watch:d,data:i})})]}),c(a.Accordion.Item,{value:"Y Axes",children:[r(a.Accordion.Control,{children:"Y Axes"}),r(a.Accordion.Panel,{children:r(Fo,{control:o,watch:d})})]}),c(a.Accordion.Item,{value:"Series",children:[r(a.Accordion.Control,{children:"Series"}),r(a.Accordion.Panel,{children:r(_o,{control:o,watch:d,data:i})})]}),c(a.Accordion.Item,{value:"Regression Lines",children:[r(a.Accordion.Control,{children:"Regression Lines"}),r(a.Accordion.Panel,{children:r(yo,{control:o,watch:d,data:i})})]}),c(a.Accordion.Item,{value:"Stats",children:[r(a.Accordion.Control,{children:"Stats"}),r(a.Accordion.Panel,{children:r(ko,{control:o,watch:d,data:i})})]}),c(a.Accordion.Item,{value:"Advanced",children:[r(a.Accordion.Control,{children:c(a.Group,{position:"apart",children:["Advanced",r(a.Text,{align:"right",size:12,color:"grey",children:"Use variables in reference lines"})]})}),r(a.Accordion.Panel,{children:c(a.Tabs,{defaultValue:"variables",children:[c(a.Tabs.List,{children:[r(a.Tabs.Tab,{value:"variables",children:"Variables"}),r(a.Tabs.Tab,{value:"reference_lines",children:"Reference Lines"})]}),r(a.Tabs.Panel,{value:"variables",pt:"xs",children:r(Eo,{control:o,watch:d,data:i})}),r(a.Tabs.Panel,{value:"reference_lines",pt:"xs",children:r(fo,{control:o,watch:d})})]})})]})]})]})})}class Lo extends oe{constructor(){super(...arguments);V(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const $o={displayName:"Cartesian Chart",migrator:new Lo,name:"cartesian",viewRender:co,configRender:Ro,createConfig:()=>$t};function mr(t){return t?e=>{try{return re.default(e).format(t)}catch(n){return console.error(n),e}}:e=>e}function No(t){return{show:!0,formatter:({dimensionIndex:e,value:n})=>mr(t.dimensions[e].formatter)(n)}}function jo(t){return({name:e,marker:n,value:i})=>{if(i.length===0)return"";const s=i.map((l,o)=>{const u=t.dimensions[o],d=mr(u.formatter);return`
39
+ `,Hn=E.observer(function({showSQLSnippets:t=!0,sx:n={}}){const r=Y(),i=r.context.current,l=C.default.useMemo(()=>{const s={context:i,filters:r.filters.values};if(t){const u=r.sqlSnippets.current.reduce((d,p)=>(d[p.key]=p.value,d),{});s.sql_snippets=u}return JSON.stringify(s,null,2)},[i,r.sqlSnippets.current,r.filters.values,t]);return g(a.Stack,{sx:{border:"1px solid #eee",maxWidth:"40%",overflow:"hidden",...n},children:[o(a.Group,{position:"left",pl:"md",py:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef",flexGrow:0},children:o(a.Text,{weight:500,children:"Global Variables"})}),g(a.Stack,{px:"md",pb:"md",sx:{width:"100%"},children:[o(Fe.Prism,{language:"sql",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:So}),o(a.Text,{weight:500,sx:{flexGrow:0},children:"Current Values"}),o(Fe.Prism,{language:"json",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:l})]})]})});function wo({data:e}){return e.length===0?o(a.Box,{sx:{height:"5em"}}):g(a.Table,{children:[o("thead",{children:o("tr",{children:Object.keys(e==null?void 0:e[0]).map(t=>o("th",{children:o(a.Text,{weight:700,color:"#000",children:t})},t))})}),o("tbody",{children:e.slice(0,10).map((t,n)=>o("tr",{children:Object.values(t).map((r,i)=>o("td",{children:o(a.Group,{sx:{"&, .mantine-Text-root":{fontFamily:"monospace"}},children:o(a.Text,{children:r})})},`${r}--${i}`))},`row-${n}`))})]})}const Yn=E.observer(function({id:t}){const n=Y(),{data:r,state:i}=n.getDataStuffByID(t),l=i==="loading",s=()=>{n.queries.refetchDataByQueryID(t)};return g(a.Stack,{my:"xl",sx:{border:"1px solid #eee"},children:[g(a.Group,{position:"apart",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[g(a.Group,{position:"left",children:[o(a.Text,{weight:500,children:"Preview Data"}),r.length>10&&g(a.Text,{size:"sm",color:"gray",children:["Showing 10 rows of ",r.length]})]}),o(a.ActionIcon,{mr:15,variant:"subtle",color:"blue",disabled:l,onClick:s,children:o(V.Refresh,{size:15})})]}),g(a.Box,{sx:{position:"relative"},children:[o(a.LoadingOverlay,{visible:l}),o(wo,{data:r})]})]})}),_o=w.forwardRef(({label:e,type:t,...n},r)=>g(a.Group,{position:"apart",ref:r,...n,children:[o(a.Text,{children:e}),o(a.Text,{children:t})]})),Xn=E.observer(function({value:t,onChange:n}){const{data:r=[],loading:i}=j.useRequest(mo,{refreshDeps:[]},[]),l=w.useMemo(()=>r.map(u=>({label:u.key,value:u.key,type:u.type})),[r]),s=w.useMemo(()=>l.reduce((u,d)=>(u[d.value]=d.type,u),{}),[l]);return o(a.Select,{label:"Data Source",data:l,itemComponent:_o,sx:{flex:1},disabled:i,value:t.key,onChange:u=>{u!==null&&n({key:u,type:s[u]})}})});function Jn({value:e}){const t=Y(),n=t.context.current,r=C.default.useMemo(()=>Bn(e,n,t.sqlSnippets.current,t.filters.values),[e,n,t.sqlSnippets.current,t.filters.values]);return o(Fe.Prism,{language:"sql",colorScheme:"light",children:r})}const Io=E.observer(function({queryModel:t,setCurrentID:n}){const r=C.default.useRef(t.id),[i,l]=C.default.useState(r.current);C.default.useEffect(()=>{r.current!==t.id&&(l(t.id),r.current=t.id)},[r,t.id]);const[s,u]=C.default.useState(t.sql);C.default.useEffect(()=>{u(f=>f!==t.sql?t.sql:f)},[t.sql]);const d=s!==t.sql,p=()=>{t.setSQL(s)},c=()=>{n(i),t.setID(i)};return g(a.Stack,{sx:{border:"1px solid #eee",flexGrow:1},children:[o(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:o(a.Text,{weight:500,children:"Edit Query"})}),g(a.Stack,{my:0,p:"md",pr:40,children:[g(a.Group,{grow:!0,children:[o(a.TextInput,{placeholder:"An ID unique in this dashboard",label:"ID",required:!0,sx:{flex:1},value:i,onChange:f=>{l(f.currentTarget.value)},rightSection:o(a.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:i===t.id,onClick:c,children:o(V.DeviceFloppy,{size:18})})}),o(Xn,{value:{type:t.type,key:t.key},onChange:({type:f,key:m})=>{t.setKey(m),t.setType(f)}})]}),g(a.Tabs,{defaultValue:"SQL",children:[g(a.Tabs.List,{children:[o(a.Tabs.Tab,{value:"SQL",children:"SQL"}),o(a.Tabs.Tab,{value:"Preview",children:"Preview"})]}),o(a.Tabs.Panel,{value:"SQL",pt:"sm",children:g(a.Box,{sx:{position:"relative"},children:[o(a.Textarea,{autosize:!0,minRows:12,maxRows:24,className:"code-textarea",value:s,onChange:f=>{u(f.currentTarget.value)}}),o(a.ActionIcon,{mr:5,variant:"filled",color:"blue",sx:{position:"absolute",right:10,top:10},disabled:!d,onClick:p,children:o(V.DeviceFloppy,{size:20})})]})}),o(a.Tabs.Panel,{value:"Preview",pt:"sm",children:o(Jn,{value:t.sql})})]})]})]})}),Do=E.observer(function({id:t,setID:n}){const r=Y(),i=C.default.useMemo(()=>r.queries.findByID(t),[r.queries,t]);return t?i?o(Io,{queryModel:i,setCurrentID:n}):o("span",{children:"Invalid Query ID"}):null});var me=(e=>(e.Postgresql="postgresql",e.MySQL="mysql",e.HTTP="http",e))(me||{});const Ao=E.observer(function({id:t,setID:n}){const r=Y(),i=()=>{var s;n((s=r.queries.firstID)!=null?s:"")};C.default.useEffect(()=>{if(!t){i();return}r.queries.current.findIndex(u=>u.id===t)===-1&&i()},[t,r.queries.current,i]);const l=()=>{const s=J.randomId();r.queries.append(y.cast({id:s,type:me.Postgresql,key:"",sql:""})),n(s)};return o(a.Group,{pb:"xl",children:g(a.Group,{position:"left",sx:{maxWidth:"600px",alignItems:"baseline"},children:[o(a.Text,{children:"Select a Query"}),o(a.Select,{data:r.queries.options,value:t,onChange:n,allowDeselect:!1,clearable:!1,sx:{flexGrow:1}}),o(a.Text,{children:"or"}),o(a.Group,{position:"center",mt:"md",children:o(a.Button,{onClick:l,children:"Add a Query"})})]})})}),Mo=E.observer(function(){const[t,n]=C.default.useState("");return g(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:[g(a.Group,{position:"apart",grow:!0,align:"stretch",noWrap:!0,children:[g(a.Stack,{sx:{flexGrow:1,maxWidth:"calc(60% - 16px)"},children:[o(Ao,{id:t,setID:n}),o(Do,{id:t,setID:n})]}),o(Hn,{})]}),o(Yn,{id:t})]})}),Vo=E.observer(({value:e})=>{const t=Y(),n=t.context.current,r=C.default.useMemo(()=>fo(e,n,t.filters.values),[e,n]);return g(a.Stack,{children:[o(a.Text,{children:"Preview"}),o(Fe.Prism,{language:"sql",noCopy:!0,colorScheme:"dark",children:r})]})}),Eo=E.observer(function(){const t=Y(),n=()=>t.sqlSnippets.append(y.cast({key:J.randomId(),value:""}));return g(a.Stack,{sx:{border:"1px solid #eee",flexGrow:1},children:[o(a.Group,{position:"left",pl:"md",py:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef",flexGrow:0},children:o(a.Text,{weight:500,children:"SQL Snippets"})}),o(a.Group,{px:"md",pb:"md",pt:"md",children:g(a.Stack,{sx:{width:"100%",position:"relative"},children:[t.sqlSnippets.current.map((r,i)=>g(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[o(a.TextInput,{label:"Key",required:!0,value:r.key,onChange:l=>{r.setKey(l.currentTarget.value)}}),o(a.Textarea,{minRows:3,label:"Value",required:!0,value:r.value,onChange:l=>{r.setValue(l.currentTarget.value)},className:"code-textarea"}),o(Vo,{value:r.value}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>t.sqlSnippets.remove(i),sx:{position:"absolute",top:15,right:5},children:o(V.Trash,{size:16})})]},i)),o(a.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"40%"},mx:"auto",children:o(a.Button,{variant:"default",onClick:n,children:"Add a snippet"})})]})})]})});function Ro(){return o(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:g(a.Group,{position:"apart",grow:!0,align:"stretch",noWrap:!0,children:[o(Eo,{}),o(Hn,{showSQLSnippets:!1})]})})}const To=E.observer(function({opened:t,close:n}){const{freezeLayout:r}=C.default.useContext(ce);return C.default.useEffect(()=>{r(t)},[t]),o(a.Modal,{size:"96vw",overflow:"inside",opened:t,onClose:n,title:"Data Settings",trapFocus:!0,onDragStart:i=>{i.stopPropagation()},children:g(a.Tabs,{defaultValue:"Queries",children:[g(a.Tabs.List,{children:[o(a.Tabs.Tab,{value:"SQL Snippet",children:"SQL Snippet"}),o(a.Tabs.Tab,{value:"Queries",children:"Queries"})]}),o(a.Tabs.Panel,{value:"SQL Snippet",pt:"sm",children:o(Ro,{})}),o(a.Tabs.Panel,{value:"Queries",pt:"sm",children:o(Mo,{})})]})})});var le=(e=>(e.Select="select",e.MultiSelect="multi-select",e.TextInput="text-input",e.Checkbox="checkbox",e.DateRange="date-range",e))(le||{});const Kn=y.types.model({type:y.types.enumeration("DataSourceType",[me.Postgresql,me.MySQL,me.HTTP]),key:y.types.string,sql:y.types.string}),Zn=y.types.model("FilterConfigModel_TextInput",{required:y.types.boolean,default_value:y.types.string}).actions(e=>({setRequired(t){e.required=t},setDefaultValue(t){e.default_value=t}})),er=()=>Zn.create({required:!1,default_value:""}),Fo=E.observer(function({config:t}){return o(U,{children:o(a.Checkbox,{checked:t.default_value,onChange:n=>t.setDefaultValue(n.currentTarget.checked),label:"Default Checked"})})}),$o=[{label:"2022",value:"YYYY"},{label:"2022-01",value:"YYYY-MM"},{label:"2022-01-01",value:"YYYY-MM-DD"}],Po=E.observer(function({config:t}){return g(U,{children:[g(a.Group,{children:[o(a.Checkbox,{checked:t.required,onChange:n=>t.setRequired(n.currentTarget.checked),label:"Required"}),o(a.Checkbox,{checked:t.clearable,onChange:n=>t.setClearable(n.currentTarget.checked),label:"Clearable"})]}),o(a.Select,{data:$o,label:"Display Format",value:t.inputFormat,onChange:t.setInputFormat}),o(qn,{label:"Default Value",config:t,value:t.default_value,onChange:t.setDefaultValue})]})});function ko({data:e}){return e.length===0?o(a.Box,{sx:{height:"5em"}}):g(a.Table,{children:[o("thead",{children:o("tr",{children:Object.keys(e==null?void 0:e[0]).map(t=>o("th",{children:o(a.Text,{weight:700,color:"#000",children:t})},t))})}),o("tbody",{children:e.slice(0,3).map((t,n)=>o("tr",{children:Object.values(t).map((r,i)=>o("td",{children:o(a.Group,{sx:{"&, .mantine-Text-root":{fontFamily:"monospace"}},children:o(a.Text,{children:r})})},`${r}--${i}`))},`row-${n}`))}),e.length>3&&o("tfoot",{children:o("tr",{children:o("td",{colSpan:Object.keys(e==null?void 0:e[0]).length,children:g(a.Text,{color:"gray",size:"sm",children:[e.length-3," more row(s) hidden"]})})})})]})}const Oo=E.observer(function({query:t}){const{data:n=[],loading:r,refresh:i}=j.useRequest(Tt(t),{refreshDeps:[t]});return g(a.Stack,{my:0,children:[g(a.Group,{position:"apart",children:[o(a.Text,{size:"md",pl:"sm",children:"Fetched Data"}),o(a.Button,{size:"xs",onClick:i,disabled:!t.sql||!t.key,children:"Retry"})]}),g(a.Box,{sx:{position:"relative"},children:[o(a.LoadingOverlay,{visible:r,exitTransitionDuration:0}),o(ko,{data:n})]})]})}),tr=E.observer(function({value:t,onChange:n}){return g(a.Stack,{my:0,children:[o(Xn,{value:t,onChange:({type:r,key:i})=>{n({...t,type:r,key:i})}}),g(a.Tabs,{defaultValue:"SQL",children:[g(a.Tabs.List,{children:[o(a.Tabs.Tab,{value:"SQL",children:"SQL"}),o(a.Tabs.Tab,{value:"Preview",children:"Preview"}),o(a.Tabs.Tab,{value:"Data",children:"Data"})]}),o(a.Tabs.Panel,{value:"SQL",pt:"sm",children:o(a.Textarea,{autosize:!0,minRows:12,maxRows:24,className:"code-textarea",value:t.sql,onChange:r=>{n({...t,sql:r.currentTarget.value})},placeholder:"SELECT name AS label, id AS value"})}),o(a.Tabs.Panel,{value:"Preview",pt:"sm",children:o(Jn,{value:t.sql})}),o(a.Tabs.Panel,{value:"Data",pt:"sm",children:o(Oo,{query:t})})]})]})}),zo=E.observer(function({config:t}){const n=()=>{t.addStaticOption({label:"",value:""})},r=t.static_options,i=[...r];return g(U,{children:[o(a.Divider,{label:"Configure options",labelPosition:"center"}),r.length>0&&o(a.MultiSelect,{label:"Default Selection",data:i,value:t.default_value,onChange:t.setDefaultValue}),r.map((l,s)=>g(a.Group,{sx:{position:"relative"},pr:"40px",children:[o(a.TextInput,{label:"Label",required:!0,value:t.static_options[s].label,onChange:u=>{t.static_options[s].setLabel(u.currentTarget.value)},sx:{flexGrow:1}}),o(a.TextInput,{label:"Value",required:!0,value:t.static_options[s].value,onChange:u=>{t.static_options[s].setValue(u.currentTarget.value)},sx:{flexGrow:1}}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>t.removeStaticOption(s),sx:{position:"absolute",top:28,right:5},children:o(V.Trash,{size:16})})]})),o(a.Button,{size:"xs",color:"blue",leftIcon:o(V.PlaylistAdd,{size:20}),onClick:n,sx:{width:"50%"},mx:"auto",children:"Add an Option"}),o(a.Divider,{label:"Or fetch options from database",labelPosition:"center"}),o(tr,{value:t.options_query,onChange:t.setOptionsQuery})]})}),Go=E.observer(function({config:t}){const n=()=>{t.addStaticOption({label:"",value:""})},r=t.static_options,i=[{label:"No default selection",value:""},...r];return g(U,{children:[o(a.Checkbox,{checked:t.required,onChange:l=>t.setRequired(l.currentTarget.checked),label:"Required"}),o(a.Divider,{label:"Configure options",labelPosition:"center"}),r.length>0&&o(a.Select,{label:"Default Selection",data:i,value:t.default_value,onChange:t.setDefaultValue}),r.map((l,s)=>g(a.Group,{sx:{position:"relative"},pr:"40px",children:[o(a.TextInput,{label:"Label",required:!0,value:t.static_options[s].label,onChange:u=>{t.static_options[s].setLabel(u.currentTarget.value)},sx:{flexGrow:1}}),o(a.TextInput,{label:"Value",required:!0,value:t.static_options[s].value,onChange:u=>{t.static_options[s].setValue(u.currentTarget.value)},sx:{flexGrow:1}}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>t.removeStaticOption(s),sx:{position:"absolute",top:28,right:5},children:o(V.Trash,{size:16})})]},s)),o(a.Button,{size:"xs",color:"blue",leftIcon:o(V.PlaylistAdd,{size:20}),onClick:n,sx:{width:"50%"},mx:"auto",children:"Add an Option"}),o(a.Divider,{label:"Or fetch options from database",labelPosition:"center"}),o(tr,{value:t.options_query,onChange:t.setOptionsQuery})]})}),Lo=E.observer(function({config:t}){return g(U,{children:[o(a.TextInput,{label:"Default Value",value:t.default_value,onChange:n=>{t.setDefaultValue(n.currentTarget.value)}}),o(a.Checkbox,{checked:t.required,onChange:n=>t.setRequired(n.currentTarget.checked),label:"Required"})]})}),No=E.observer(function({filter:t}){const n=t.plainDefaultValue,[r,i]=C.default.useState(n);return C.default.useEffect(()=>{i(n)},[n]),g(a.Box,{sx:{maxWidth:"30em"},children:[o(a.Text,{pb:"md",color:"gray",children:"Preview"}),o(jn,{filter:t,value:r,onChange:i}),o(a.Text,{pt:"lg",pb:"md",color:"gray",children:"Config"}),o(Fe.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(t,null,4)})]})}),qo={select:Go,"multi-select":zo,"text-input":Lo,checkbox:Fo,"date-range":Po},Bo=[{label:"Select",value:"select"},{label:"Multi Select",value:"multi-select"},{label:"Text Input",value:"text-input"},{label:"Checkbox",value:"checkbox"},{label:"Date Range",value:"date-range"}],jo=E.observer(function({filter:t,index:n}){const r=Y(),i=C.default.useMemo(()=>qo[t.type],[t.type]);return g(a.SimpleGrid,{cols:2,children:[g(a.Box,{pl:"md",children:[o(a.Text,{pb:"md",color:"gray",children:"Edit"}),g(a.Stack,{sx:{maxWidth:"30em"},children:[o(a.NumberInput,{label:"Placement Order",required:!0,value:t.order,onChange:t.setOrder,hideControls:!0}),o(a.MultiSelect,{label:"Visible in...",data:r.views.options,value:t.visibleInViewsIDs,onChange:t.setVisibleInViewsIDs}),o(a.TextInput,{label:"Key",placeholder:"A unique key to refer",required:!0,value:t.key,onChange:l=>{t.setKey(l.currentTarget.value)}}),o(a.TextInput,{label:"Label",placeholder:"Label for this field",required:!0,value:t.label,onChange:l=>{t.setLabel(l.currentTarget.value)}}),o(a.Select,{label:"Widget",data:Bo,required:!0,value:t.type,onChange:t.setType}),o(i,{config:t.config,index:n})]})]}),o(No,{filter:t})]})}),hg="",Wo=E.observer(function(){const t=Y(),n=t.filters.current,r=()=>{const i=J.randomId(),l={id:i,key:i,label:i,order:n.length+1,type:le.TextInput,config:er(),visibleInViewsIDs:["Main"]};t.filters.append(l)};return g(a.Box,{sx:{height:"90vh",maxHeight:"calc(100vh - 185px)"},p:0,children:[o(a.Group,{sx:{position:"absolute",top:"16px",right:"16px"},children:o(a.Button,{size:"xs",color:"red",leftIcon:o(V.Recycle,{size:20}),disabled:!t.filters.changed,onClick:t.filters.reset,children:"Revert Changes"})}),o(a.Tabs,{className:"filter-settings-tabs",orientation:"vertical",defaultValue:t.filters.firstID,styles:{root:{display:"block"}},children:g(a.Group,{sx:{height:"100%"},children:[g(a.Stack,{sx:{height:"100%"},children:[o(a.Tabs.List,{position:"left",sx:{flexGrow:1,width:"200px"},children:t.filters.current.map(i=>o(a.Tabs.Tab,{value:i.id,children:i.label},i.id))}),o(a.Button,{size:"xs",color:"blue",leftIcon:o(V.PlaylistAdd,{size:20}),onClick:r,children:"Add a Filter"})]}),o(a.Box,{sx:{flexGrow:1,height:"100%"},children:t.filters.current.map((i,l)=>o(a.Tabs.Panel,{value:i.id,sx:{height:"100%"},children:g(a.Stack,{sx:{height:"100%"},spacing:"sm",children:[o(a.Box,{sx:{flexGrow:1,maxHeight:"calc(100% - 52px)",overflow:"scroll"},children:o(jo,{filter:i,index:l})}),o(a.Group,{position:"right",pt:10,children:o(a.Button,{size:"xs",color:"red",leftIcon:o(V.Trash,{size:20}),onClick:()=>t.filters.remove(l),children:"Delete this filter"})})]})},i.id))})]})})]})}),Uo=E.observer(function({opened:t,close:n}){const{freezeLayout:r}=C.default.useContext(ce);return C.default.useEffect(()=>{r(t)},[t]),o(a.Modal,{size:"96vw",overflow:"inside",opened:t,onClose:n,title:"Filters",trapFocus:!0,onDragStart:i=>{i.stopPropagation()},withCloseButton:!1,children:o(Wo,{})})});var nr=(e=>(e.Use="use",e.Edit="edit",e))(nr||{}),ve=(e=>(e.Division="div",e.Modal="modal",e))(ve||{}),rr=(e=>(e.Select="select",e.MultiSelect="multi-select",e.TextInput="text-input",e.Checkbox="checkbox",e.DateRange="date-range",e))(rr||{});const Qo=E.observer(()=>{const t=Y().views.VIE;return!t||t.type!==ve.Division?null:g(a.Stack,{children:[o(a.Divider,{mt:8,mb:0,label:"Division settings",labelPosition:"center"}),o(a.Text,{align:"center",size:"xs",color:"dimmed",children:"Under construction"})]})}),Ho=E.observer(()=>{const t=Y().views.VIE;return!t||t.type!==ve.Modal?null:g(a.Stack,{children:[o(a.Divider,{mt:8,label:"Modal settings",labelPosition:"center"}),g(a.Group,{grow:!0,children:[o(a.TextInput,{label:"Width",value:t.config.width,onChange:n=>t.updateConfig("width",n.currentTarget.value),placeholder:"600px / 50vw"}),o(a.TextInput,{label:"Height",value:t.config.height,onChange:n=>t.updateConfig("height",n.currentTarget.value),placeholder:"600px / 50vw"})]})]})}),Yo=E.observer(()=>g(U,{children:[o(Qo,{}),o(Ho,{})]})),Xo=[{label:"Division",value:ve.Division},{label:"Modal",value:ve.Modal}],Jo=E.observer(()=>{const t=Y().views.VIE;return t?g(a.Stack,{sx:{position:"relative"},children:[o(a.TextInput,{label:"Name",value:t.name,onChange:n=>{t.setName(n.currentTarget.value)}}),o(a.Select,{label:"Type",value:t.type,onChange:t.setType,data:Xo}),o(Yo,{})]}):null}),Ko=E.observer(({opened:e,close:t})=>{var i;const n=Y(),{freezeLayout:r}=C.default.useContext(ce);return C.default.useEffect(()=>{r(e)},[e]),o(a.Modal,{size:"500px",overflow:"inside",opened:e,onClose:t,withCloseButton:!1,styles:{header:{width:"100%"},title:{width:"100%"}},title:g(a.Group,{position:"apart",children:[g(a.Text,{sx:{flexGrow:1},children:["Editing ",(i=n.views.VIE)==null?void 0:i.name]}),o(a.ActionIcon,{size:18,color:"red",onClick:n.views.removeVIE,disabled:n.views.isVIETheFirstView,children:o(V.Trash,{size:18})})]}),trapFocus:!0,onDragStart:l=>{l.stopPropagation()},children:o(Jo,{})})}),Zo=w.forwardRef(({label:e,type:t,...n},r)=>t!=="TRIGGER_TO_ADD"?o("div",{ref:r,...n,children:g(a.Group,{noWrap:!0,position:"apart",children:[o(a.Text,{size:"sm",children:e}),o(a.Text,{size:"xs",color:"dimmed",children:t})]})}):o("div",{ref:r,...n,children:o(a.Group,{noWrap:!0,grow:!0,children:o(a.Text,{size:"sm",align:"center",color:"#228be6",children:e})})})),ir="TRIGGER_TO_ADD",ea=E.observer(({value:e,onChange:t,triggerAdd:n,triggerEdit:r,options:i})=>{const l=w.useMemo(()=>[...i,{label:"Add a View",value:ir,type:"TRIGGER_TO_ADD"}],[i,n]),s=u=>{u!==ir?t(u):n()};return g(a.Group,{position:"left",spacing:0,sx:{minWidth:"260px"},children:[o(a.Select,{value:e,onChange:s,placeholder:"Pick a View",itemComponent:Zo,data:l,nothingFound:"Empty",sx:{flexGrow:1},styles:{input:{borderTopRightRadius:0,borderBottomRightRadius:0}}}),o(a.ActionIcon,{onClick:r,variant:"default",size:36,sx:{borderLeft:0,borderTopLeftRadius:0,borderBottomLeftRadius:0,"&:active":{transform:"none",svg:{transform:"translateY(1px)"}}},children:o(V.Settings,{size:20})})]})}),ta=E.observer(()=>{const e=Y(),[t,n]=w.useState(!1),r=()=>{n(!0)},i=()=>{n(!1)};return g(U,{children:[o(ea,{value:e.views.idOfVIE,onChange:e.views.setIDOfVIE,triggerAdd:e.views.addARandomNewView,triggerEdit:r,options:e.views.options}),o(Ko,{opened:t,close:i})]})});function na({opened:e,close:t,getCurrentSchema:n}){const{freezeLayout:r}=C.default.useContext(ce);C.default.useEffect(()=>{r(e)},[e]);const i=C.default.useMemo(()=>JSON.stringify(n(),null,2),[e]);return o(a.Modal,{size:"96vw",overflow:"inside",opened:e,onClose:t,title:"This dashboard is described by this schema",trapFocus:!0,onDragStart:l=>{l.stopPropagation()},children:e&&o(Fe.Prism,{language:"json",sx:{width:"100%"},colorScheme:"dark",children:i})})}const or=E.observer(function({saveChanges:t}){const n=Y(),r=C.default.useCallback(()=>{const N=n.queries.current,te=n.views.current,ye=n.sqlSnippets.current;return{filters:n.filters.current,views:te,definition:{sqlSnippets:ye,queries:N}}},[n]),i=()=>{n.filters.reset(),n.views.reset(),n.sqlSnippets.reset(),n.queries.reset()},l=n.views.changed||n.sqlSnippets.changed||n.queries.changed||n.filters.changed,{inEditMode:s,inUseMode:u}=C.default.useContext(ce),[d,p]=C.default.useState(!1),c=()=>p(!0),f=()=>p(!1),[m,v]=C.default.useState(!1),b=()=>v(!0),I=()=>v(!1),[A,T]=C.default.useState(!1),k=()=>T(!0),B=()=>T(!1);return g(a.Group,{position:"apart",pt:0,px:10,pb:"xs",children:[o(a.Group,{position:"left",children:s&&o(ta,{})}),g(a.Group,{position:"right",children:[!u&&o(a.Button,{variant:"default",size:"xs",disabled:!n.views.VIE,onClick:n.views.addAPanelToVIE,leftIcon:o(V.PlaylistAdd,{size:20}),children:"Add a Panel"}),s&&o(a.Button,{variant:"default",size:"xs",onClick:b,leftIcon:o(V.Filter,{size:20}),children:"Filters"}),s&&o(a.Button,{variant:"default",size:"xs",onClick:c,leftIcon:o(V.Database,{size:20}),children:"Data Settings"}),!u&&o(a.Button,{variant:"default",size:"xs",onClick:t,disabled:!l,leftIcon:o(V.DeviceFloppy,{size:20}),children:"Save Changes"}),!u&&o(a.Button,{color:"red",size:"xs",disabled:!l,onClick:i,leftIcon:o(V.Recycle,{size:20}),children:"Revert Changes"}),g(a.Menu,{width:180,children:[o(a.Menu.Target,{children:o(a.Button,{variant:"default",size:"xs",leftIcon:o(V.Share,{size:20}),children:"Export"})}),g(a.Menu.Dropdown,{children:[o(a.Menu.Item,{icon:o(V.Download,{size:14}),onClick:n.queries.downloadAllData,children:"Download Data"}),o(a.Menu.Item,{icon:o(V.Code,{size:14}),onClick:k,children:"View Schema"})]})]})]}),o(Uo,{opened:m,close:I}),o(To,{opened:d,close:f}),o(na,{opened:A,close:B,getCurrentSchema:r})]})}),mg="",ar=E.observer(()=>{const{freezeLayout:e}=C.default.useContext(ce),[t,n]=C.default.useState(!1),{panel:r}=ee();return C.default.useEffect(()=>{e(t)},[t]),!r.description||r.description==="<p><br></p>"?null:g(U,{children:[o(a.Modal,{opened:t,onClose:()=>n(!1),title:r.title,withCloseButton:!1,children:o(kn.default,{readOnly:!0,value:r.description,onChange:z.default.noop,sx:{border:"none"}})}),o(a.Tooltip,{label:"Click to see description",position:"top-start",withinPortal:!0,children:o(a.ActionIcon,{variant:"subtle",color:"blue",onClick:()=>n(i=>!i),sx:{verticalAlign:"baseline",cursor:"pointer"},children:o(V.InfoCircle,{size:20})})})]})}),lr=e=>{const{title:t="Variables",variables:n}=e,r=J.useClipboard(),i=l=>{r.copy(l),_t.showNotification({color:"green",message:"Copied to clipboard"})};return g(a.Paper,{withBorder:!0,p:"sm",children:[o(a.Text,{size:"xs",color:"dimmed",mb:"sm",children:t}),o(a.Stack,{style:{maxHeight:"300px"},children:n.map(l=>g(a.Text,{size:"sm",children:[g(a.Code,{color:"teal",children:["// ",l.description]}),o("br",{}),g(a.Code,{onClick:()=>i(l.name),style:{cursor:"pointer"},children:[l.name," : ",l.valueType]})]},l.name))})]})};class ra{constructor(t,n){$(this,"operationId");$(this,"operation");$(this,"operationSchema");$(this,"variables",[]);this.operationManager=t,this.instance=n,K.makeAutoObservable(this)}get schemaList(){return this.operationManager.getOperationSchemaList()}async configOperation(t,n){const r=await this.operationManager.retrieveTrigger(t),i=this.operationManager.getOperationSchemaList().find(l=>l.id===(r==null?void 0:r.schemaRef));K.runInAction(()=>{this.operationId=t,this.operation=r,this.operationSchema=i,this.variables=n})}async changeSchema(t){this.operationId&&(await this.operationManager.createOrGetOperation(this.operationId,t),await this.configOperation(this.operationId,this.variables))}}function ia(e){return!!e.operationId}const oa=E.observer(({model:e,onClick:t})=>{var r;const n=(r=e.operationSchema)==null?void 0:r.displayName;return o(a.Button,{variant:"outline",onClick:t,children:n})}),aa=E.observer(({model:e})=>{const t={operation:e.operation,instance:e.instance,variables:[]};return w.createElement(e.operationSchema.configRender,t)});function la({model:e}){const t=e.schemaList,n=t.map(i=>({label:i.displayName,value:i.id}));async function r(i){await e.changeSchema(t.find(l=>l.id===i))}return o(a.Select,{label:"Operation",data:n,onChange:r,value:e.operationSchema.id})}const sa=E.observer(e=>{const[t,{setTrue:n,setFalse:r}]=j.useBoolean(!1),{operationManager:i,operationId:l,instance:s,variables:u}=e,d=j.useCreation(()=>new ra(i,s),[i,s]);return j.useAsyncEffect(async()=>{await d.configOperation(l,u)},[l,d]),ia(d)?g(U,{children:[o(oa,{model:d,onClick:n}),o(a.Modal,{opened:t,onClose:r,title:"Operation Settings",closeButtonLabel:"close",children:g(a.Stack,{children:[o(la,{model:d}),o(aa,{model:d}),o(lr,{title:"Variables",variables:d.variables})]})})]}):null});class ua{constructor(t,n){$(this,"triggerId");$(this,"trigger");$(this,"triggerSchema");$(this,"sampleData");this.triggerManager=t,this.instance=n,K.makeAutoObservable(this)}get schemaList(){return this.triggerManager.getTriggerSchemaList()}async configTrigger(t,n){const r=await this.triggerManager.retrieveTrigger(t),i=this.triggerManager.getTriggerSchemaList().find(l=>l.id===(r==null?void 0:r.schemaRef));K.runInAction(()=>{this.triggerId=t,this.trigger=r,this.triggerSchema=i,this.sampleData=n})}async changeSchema(t){this.triggerId&&(await this.triggerManager.createOrGetTrigger(this.triggerId,t),await this.configTrigger(this.triggerId,this.sampleData))}isReady(){return da(this)}}function da(e){return!!e.triggerId&&!!e.triggerSchema}function ca(e,t){return j.useCreation(()=>new ua(e,t),[e,t])}const ga=E.observer(({model:e,onClick:t})=>{const n=e.triggerSchema.nameRender,r={trigger:e.trigger,instance:e.instance,sampleData:e.sampleData};return o(a.Button,{variant:"outline",onClick:t,children:w.createElement(n,r)})}),pa=E.observer(({model:e})=>{const t=e.schemaList,n=t.map(i=>({label:i.displayName,value:i.id}));async function r(i){await e.changeSchema(t.find(l=>l.id===i))}return o(a.Select,{label:"Trigger",data:n,value:e.triggerSchema.id,onChange:r})}),fa=E.observer(({model:e})=>{const t={trigger:e.trigger,instance:e.instance,sampleData:e.sampleData};return w.createElement(e.triggerSchema.configRender,t)}),ha=E.observer(e=>{const[t,{setTrue:n,setFalse:r}]=j.useBoolean(!1),i=e.model;return g(U,{children:[o(a.Modal,{opened:t,onClose:r,title:"Setup Trigger",closeButtonLabel:"close setup",children:g(a.Stack,{children:[o(pa,{model:i}),o(fa,{model:i}),o(lr,{title:"Payload",variables:i.triggerSchema.payload})]})}),o(ga,{onClick:n,model:i})]})});class Oe{constructor(t,n){this.root=t,this.path=n}async deleteItem(t){t===null&&await this.root.deleteItem(this.path);const n=await this.root.getItem(this.path)||{};await this.root.setItem(this.path,_.omit(n,t))}async getItem(t){const n=await this.root.getItem(this.path);return t===null?n:_.get(n,t)}async setItem(t,n){if(t===null)await this.root.setItem(this.path,n);else{const r=await this.root.getItem(this.path)||{};await this.root.setItem(this.path,{...r,[t]:n})}return await this.getItem(t)}watchItem(t,n,r){return t===null?this.root.watchItem(this.path,(i,l)=>{n(i,l)},r):this.root.watchItem(this.path,(i,l)=>{const s=_.get(i,t),u=_.get(l,t);s!==u&&n(s,u)},r)}}class Ft{constructor(t,n,r){$(this,"attachmentStorage");this.instance=t,this.attachmentKey=n,this.constructInstance=r,this.attachmentStorage=new Oe(t.instanceData,n)}async getInstance(t){if(await this.attachmentStorage.getItem(t))return this.constructInstance(new Oe(this.attachmentStorage,t))}async create(t,n){return await this.attachmentStorage.setItem(t,n),this.constructInstance(new Oe(this.attachmentStorage,t))}async remove(t){await this.attachmentStorage.deleteItem(t)}async list(){const t=await this.attachmentStorage.getItem(null);return Promise.all(_.values(t).map(n=>this.constructInstance(new Oe(this.attachmentStorage,n.id))))}}class sr{constructor(t){$(this,"rootRef");this.rootRef=K.observable({current:t})}async deleteItem(t){K.runInAction(()=>{_.unset(this.rootRef.current,[t])})}getItem(t){const n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?K.toJS(this.rootRef.current):_.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(_.isObject(n))K.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else K.runInAction(()=>{_.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,r){return K.reaction(()=>this.getValueFromRoot(t),(i,l)=>{n(i,l)},{requiresObservable:!0,fireImmediately:_.get(r,"fireImmediately",!1)})}}class ma{constructor(){$(this,"channels",new Map);$(this,"globalChannel",new On.default)}getChannel(t){const n=this.channels.get(t);if(n)return n;const r=new On.default;return this.channels.set(t,r),r}}class va{constructor(t){$(this,"instances",new Map);this.pluginManager=t}get availableVizList(){return this.pluginManager.installedPlugins.flatMap(t=>t.manifest.viz)}resolveComponent(t){return this.pluginManager.factory.viz(t)}getOrCreateInstance(t){const n=this.instances.get(t.id);if(n)return n;const r={id:t.id,name:t.viz.type,type:t.viz.type,messageChannels:new ma,instanceData:new sr(t.viz.conf)};return this.instances.set(t.id,r),r}}function ur(e,t,n){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new sr({}),colorPalette:{getColor(){return()=>""}},data:t}}const ya=e=>{const{panel:t,vizManager:n,data:r}=e,i=n.resolveComponent(t.viz.type),l=n.getOrCreateInstance(t),s={...ur(l,r,n),viewport:{width:t.layout.w,height:t.layout.h}},u=i.viewRender;return o(u,{context:s,instance:l,..._.omit(e,["panel","vizManager","data"])})},ba=e=>{const{vizManager:t,panel:n,panelInfoEditor:r,data:i}=e,l=t.resolveComponent(n.viz.type),s=t.getOrCreateInstance(n),u={...ur(s,i,t),panelInfoEditor:r},d=l.configRender;return o(d,{context:u,instance:s,..._.omit(e,["panel","vizManager","data","panelInfoEditor"])})},dr=(e,t)=>{const n=Le.default.bezier(e),r=Le.default.bezier(t);return function(i){return i<50?n(i*2/100).hex():r((i-50)*2/100).hex()}},et=e=>{const t=Le.default.bezier(e);return function(n){return t(n/100).hex()}},Ca={type:"interpolation",displayName:"Red / Green",getColor:dr(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},xa={type:"interpolation",displayName:"Yellow / Blue",getColor:dr(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},Sa={type:"interpolation",displayName:"Red",getColor:et(["#fff7f1","darkred"]),name:"red",category:"sequential"},wa={type:"interpolation",displayName:"Green",getColor:et(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},_a={type:"interpolation",displayName:"Blue",getColor:et(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},Ia={type:"interpolation",displayName:"Orange",getColor:et(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"},Da="4.16.6";class Aa{constructor(t){$(this,"staticColors",new Map);$(this,"interpolations",new Map);t.installedPlugins.forEach(n=>{n.manifest.color.forEach(r=>{this.register(r)})})}getStaticColors(){return Array.from(this.staticColors.values())}register(t){const n=this.encodeColor(t);t.type==="single"?(this.staticColors.has(n)&&console.warn(`the color '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`),this.staticColors.set(n,t)):t.type==="interpolation"&&(this.interpolations.has(n)&&console.warn(`the interpolation '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`,`the interpolation '${t.name}' has been registered under '${t.category}', previous registered value will be overridden`),this.interpolations.set(n,t))}decodeStaticColor(t){return this.staticColors.get(t)}encodeColor(t){return`\${${t.category}}.{${t.name}}`}decodeInterpolation(t){return this.interpolations.get(t)}getColorInterpolations(){return Array.from(this.interpolations.values())}}class Ma{constructor(){$(this,"plugins",new Map);$(this,"vizComponents",new Map);$(this,"factory",{viz:t=>{const n=this.vizComponents.get(t);if(n)return n;throw new Error(`Viz Component (${t}) not found`)}})}install(t){if(this.plugins.has(t.id))throw new Error(`Plugin (${t.id}) has been installed before`);this.plugins.set(t.id,t);for(const n of t.manifest.viz){if(this.vizComponents.has(n.name))throw new Error(`Viz Component (${n.name}) has been installed before`);this.vizComponents.set(n.name,n)}}get installedPlugins(){return Array.from(this.plugins.values())}}class Va{constructor(){$(this,"migrations",[])}version(t,n){return this.migrations.push({version:t,handler:n}),this}run(t,n){var l;if(t.from===t.to)return n;if(t.from>t.to)throw new Error(`Can not downgrade from version '${t.from}' to (${t.to})`);const r=this.migrations.filter(s=>s.version>t.from&&s.version<=t.to),i=_.orderBy(r,"version","asc");if(((l=_.last(i))==null?void 0:l.version)!==t.to)throw new Error(`Migration to version ${t.to} not found`);return i.reduce((s,u)=>u.handler(s),n)}}class ge extends Va{constructor(){super(),this.configVersions()}version(t,n){return super.version(t,r=>({version:t,...n(r)}))}async migrate({instanceData:t}){const n=await t.getItem(null),r=_.get(n,"version",0),i=this.run({from:r,to:this.VERSION},n);await t.setItem(null,i)}async needMigration({instanceData:t}){const n=await t.getItem(null);return _.get(n,"version",0)<this.VERSION}}const $t={content:""},L=(e,t)=>{const[n,{setFalse:r}]=j.useBoolean(!0),[i,l]=w.useState();w.useEffect(()=>(e.getItem(t).then(u=>{l(u),r()}),e.watchItem(t,u=>{l(u)})));const s=w.useCallback(async u=>{await e.setItem(t,u),l(u)},[e,t]);return{loading:n,value:i,set:s}};function cr(e){const t=w.useRef(null);return w.useEffect(()=>{var n,r,i;e&&((i=(r=(n=t.current)==null?void 0:n.editor)==null?void 0:r.clipboard)==null||i.dangerouslyPasteHTML(e))},[e]),t}function Ea({context:e}){const{value:t}=L(e.instanceData,"config"),n=t==null?void 0:t.content,r=cr(n);return t!=null&&t.content?o(wt.RichTextEditor,{ref:r,readOnly:!0,value:t.content,onChange:_.noop,sx:{border:"none",".ql-editor":{padding:0,"h1, h2, h3, h4, h5, p, ul, ol":{"&:last-child":{marginBottom:0}}}}}):null}function Ra({context:e}){const{value:t,set:n}=L(e.instanceData,"config"),r=w.useMemo(()=>_.defaults({},t,$t),[t]),{control:i,handleSubmit:l,watch:s,getValues:u}=S.useForm({defaultValues:r});s("content");const d=u(),p=w.useMemo(()=>!_.isEqual(d,t),[d,t]),c=cr(t==null?void 0:t.content);return o(a.Stack,{mt:"md",spacing:"xs",children:g("form",{onSubmit:l(n),children:[g(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[o(a.Text,{children:"Content"}),o(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!p,children:o(V.DeviceFloppy,{size:20})})]}),o(S.Controller,{name:"content",control:i,render:({field:f})=>o(kn.default,{ref:c,sx:{flex:1},..._.omit(f,"ref")})})]})})}class Ta extends ge{constructor(){super(...arguments);$(this,"VERSION",1)}fixMalformedConfig(n){return _.defaults({},n,$t)}configVersions(){this.version(1,n=>({version:1,config:this.fixMalformedConfig(n)}))}}const Fa={displayName:"RichText",migrator:new Ta,name:"richText",viewRender:Ea,configRender:Ra,createConfig:()=>$t},Pt={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:{type:"none",config:{}},formatter:{output:"number",mantissa:0}}]};function $a(e){if("variables"in e)return e;const{align:t,size:n,weight:r,color:i,content:{prefix:l="",data_field:s="value",formatter:u={output:"number",mantissa:0},postfix:d=""}={}}=e;return{align:t,template:`${l} \${value} ${d}`,variables:[{name:"value",data_field:s,aggregation:{type:"none",config:{}},formatter:u,color:i,weight:r,size:n}]}}class Pa extends ge{constructor(){super(...arguments);$(this,"VERSION",1)}configVersions(){this.version(1,n=>({config:$a(n)}))}}const kt=w.forwardRef(function({value:t,onChange:n,...r},i){return o(a.TextInput,{ref:i,value:t,onChange:n,...r})}),je={mantissa:0,output:"number",trimMantissa:!1,average:!1};function ka({value:e,onChange:t},n){const r=u=>{t({...e,output:u})},i=u=>{const d=u===0?!1:e.trimMantissa;t({...e,mantissa:u,trimMantissa:d})},l=u=>{t({...e,trimMantissa:u.currentTarget.checked})},s=u=>{t({...e,average:u.currentTarget.checked})};return g(a.Stack,{ref:n,children:[g(a.Group,{grow:!0,children:[o(a.Select,{label:"Format",data:[{label:"1234",value:"number"},{label:"99%",value:"percent"}],value:e.output,onChange:r,sx:{flexGrow:1}}),o(a.Switch,{label:g(a.Stack,{spacing:0,children:[o(a.Text,{children:"Average"}),o(a.Text,{size:12,color:"gray",children:"like 1.234k, 1.234m"})]}),checked:e.average,onChange:s,disabled:e.output!=="number",sx:{flexGrow:1},styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"},label:{display:"block"}}})]}),g(a.Group,{grow:!0,children:[o(a.NumberInput,{label:"Mantissa",defaultValue:0,min:0,step:1,max:4,value:e.mantissa,onChange:i}),o(a.Switch,{label:"Trim mantissa",checked:e.trimMantissa,onChange:l,disabled:e.mantissa===0,styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"}}})]}),g(a.Stack,{spacing:0,children:[o(a.Text,{weight:"bold",children:"Preview"}),o(ke,{children:g(a.Group,{position:"apart",children:[g(a.Text,{size:12,color:"gray",children:["123456789 ",o(V.ArrowRight,{size:9})," ",ae.default(123456789).format(e)]}),g(a.Text,{size:12,color:"gray",children:["1234 ",o(V.ArrowRight,{size:9})," ",ae.default(1234).format(e)]}),g(a.Text,{size:12,color:"gray",children:["0.1234 ",o(V.ArrowRight,{size:9})," ",ae.default(.1234).format(e)]})]})})]})]})}const Ot=C.default.forwardRef(ka);function tt(){return{name:J.randomId(),size:"20px",weight:"bold",color:{type:"static",staticColor:"blue"},data_field:"",aggregation:{type:"none",config:{}},formatter:je}}const Oa=[{label:"None",value:"none"},{label:"Sum",value:"sum"},{label:"Mean",value:"mean"},{label:"Median",value:"median"},{label:"Max",value:"max"},{label:"Min",value:"min"},{label:"Quantile(99%, 95%, ...)",value:"quantile"}];function za({label:e,value:t,onChange:n},r){w.useEffect(()=>{typeof t=="string"&&(console.log(t),n({type:t,config:{}}))},[t,n]);const i=s=>{n(s==="quantile"?{type:"quantile",config:{p:.99}}:{type:s,config:{}})},l=s=>{n({type:"quantile",config:{p:s}})};return g(a.Group,{grow:!0,noWrap:!0,pt:"sm",children:[o(a.Select,{ref:r,label:e,data:Oa,value:t.type,onChange:i}),t.type==="quantile"&&o(a.NumberInput,{label:"p",value:t.config.p,onChange:l,precision:2,min:.05,step:.05,max:1})]})}const Ga=C.default.forwardRef(za);function La({label:e,required:t,value:n,onChange:r,data:i,clearable:l=!1,sx:s,...u},d){const p=C.default.useMemo(()=>{if(!Array.isArray(i)||i.length===0)return[];const f=Object.keys(i[0]).map(m=>({label:m,value:m}));return l?f.concat([{label:"unset",value:""}]):f},[i]);return o(a.Select,{ref:d,label:e,data:p,value:n,onChange:r,required:t,sx:s,...u})}const Q=C.default.forwardRef(La);function Na({label:e,value:t,onChange:n},r){const[i,l]=C.default.useState(Array.isArray(t)?[...t]:[]),s=C.default.useCallback(()=>{l(m=>[...m,""])},[l]),u=C.default.useCallback(m=>{l(v=>(v.splice(m,1),[...v]))},[l]),d=C.default.useMemo(()=>!z.default.isEqual(i,t),[i,t]),p=()=>{n(i.map(m=>m.toString()))},c=a.useMantineTheme(),f=C.default.useMemo(()=>Object.entries(c.colors).map(([m,v])=>v[6]),[c]);return g(U,{children:[g(a.Group,{position:"left",ref:r,children:[o(a.Text,{children:e}),o(a.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!d,onClick:p,children:o(V.DeviceFloppy,{size:20})})]}),g(a.Group,{children:[i.map((m,v)=>o(a.ColorInput,{value:m,onChange:b=>{l(I=>(I.splice(v,1,b),[...I]))},swatches:f,rightSection:o(a.ActionIcon,{onClick:()=>u(v),color:"red",children:o(V.Trash,{size:14})}),sx:{width:"45%"}})),o(a.ActionIcon,{onClick:s,color:"blue",variant:"outline",children:o(V.PlaylistAdd,{size:20})})]})]})}const qa=C.default.forwardRef(Na);function Ba({value:e,onChange:t},n){const{colorManager:r}=w.useContext(xe),i=C.default.useMemo(()=>r.getStaticColors().map(u=>({label:u.name,group:u.category,value:u.value})),[r]),l=C.default.useMemo(()=>i.some(s=>s.value===e),[e,i]);return g(a.Group,{position:"apart",spacing:4,ref:n,children:[o(a.TextInput,{placeholder:"Set any color",value:l?"":e,onChange:s=>t(s.currentTarget.value),rightSection:o(a.ColorSwatch,{color:l?"transparent":e,radius:4}),variant:l?"filled":"default",sx:{maxWidth:"46%",flexGrow:1}}),o(a.Text,{sx:{flexGrow:0},children:"or"}),o(a.Select,{data:i,value:e,onChange:t,variant:l?"default":"filled",placeholder:"Pick a theme color",icon:o(a.ColorSwatch,{color:l?e:"transparent",radius:4}),sx:{maxWidth:"46%",flexGrow:1}})]})}const De=C.default.forwardRef(Ba),nt=[{label:"initial",value:0},{label:"500",value:25},{label:"700",value:50},{label:"semibold",value:75},{label:"bold",value:100}];function ja({label:e,value:t,onChange:n},r){var s,u;const[i,l]=C.default.useState((u=(s=nt.find(d=>d.label===t))==null?void 0:s.value)!=null?u:nt[0].value);return C.default.useEffect(()=>{const d=nt.find(p=>p.value===i);d&&n(d.label)},[i]),g(a.Stack,{spacing:0,mt:"sm",mb:"lg",children:[o(a.Text,{size:"sm",children:e}),o(a.Slider,{label:null,marks:nt,value:i,onChange:l,step:25,placeholder:"Pick a font size",ref:r})]})}const Wa=C.default.forwardRef(ja);function Ua({label:e,value:t,onChange:n},r){const[i,l]=C.default.useState(Array.isArray(t)?[...t]:[]),s=C.default.useCallback(()=>{l(c=>[...c,""])},[l]),u=C.default.useCallback(c=>{l(f=>(f.splice(c,1),[...f]))},[l]),d=C.default.useMemo(()=>!z.default.isEqual(i,t),[i,t]),p=()=>{n(i.map(c=>c.toString()))};return g(U,{children:[g(a.Group,{position:"left",ref:r,children:[o(a.Text,{children:e}),o(a.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!d,onClick:p,children:o(V.DeviceFloppy,{size:20})})]}),g(a.Group,{children:[i.map((c,f)=>o(a.TextInput,{value:c,onChange:m=>{const v=m.currentTarget.value;l(b=>(b.splice(f,1,v),[...b]))},rightSection:o(a.ActionIcon,{onClick:()=>u(f),color:"red",children:o(V.Trash,{size:14})}),sx:{width:"45%"}})),o(a.ActionIcon,{onClick:s,color:"blue",variant:"outline",children:o(V.PlaylistAdd,{size:20})})]})]})}const Qa=C.default.forwardRef(Ua),Ha=C.default.forwardRef(function({value:t,onChange:n},r){const i=t.color.type,l=(s,u)=>{const d=z.default.cloneDeep(t);z.default.set(d,s,u),n(d)};return g(U,{children:[o(a.Divider,{my:"xs",label:"Typography",labelPosition:"center"}),o(a.Stack,{children:o(a.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",sx:{flex:1},value:t.size,onChange:s=>l("size",s.currentTarget.value)})}),o(a.Group,{position:"apart",grow:!0,sx:{"> *":{flexGrow:1,maxWidth:"100%"}},children:o(Wa,{label:"Font Weight",value:t.weight,onChange:s=>l("weight",s)})}),o(a.Divider,{my:"xs",label:"Style",labelPosition:"center"}),g(a.Stack,{children:[o(a.Select,{label:"Color Type",data:[{label:"Static Color",value:"static"},{label:"Continuous Color",value:"continuous"}],value:t.color.type,onChange:s=>l("color.type",s)}),i==="static"&&o(De,{value:t.color.staticColor,onChange:s=>l("color.staticColor",s)}),i==="continuous"&&g(U,{children:[o(Qa,{label:"Value Range",value:t.color.valueRange,onChange:s=>l("color.valueRange",s)}),o(qa,{label:"Color Range",value:t.color.colorRange,onChange:s=>l("color.colorRange",s)})]})]})]})}),rt=C.default.forwardRef(function({value:t,onChange:n,data:r,withStyle:i=!0},l){const s=(u,d)=>{const p=z.default.cloneDeep(t);z.default.set(p,u,d),n(p)};return g(a.Box,{px:"sm",py:"md",ref:l,children:[o(a.Text,{weight:"bold",pb:0,children:t.name}),o(a.Divider,{my:"xs",label:"Data",labelPosition:"center"}),g(a.Group,{grow:!0,noWrap:!0,children:[o(a.TextInput,{label:"Name",required:!0,value:t.name,onChange:u=>s("name",u.currentTarget.value)}),o(Q,{label:"Data Field",required:!0,data:r,value:t.data_field,onChange:u=>s("data_field",u)})]}),o(Ga,{label:"Aggregation",value:t.aggregation,onChange:u=>s("aggregation",u)}),o(a.Divider,{my:"xs",label:"Format",labelPosition:"center"}),o(Ot,{value:t.formatter,onChange:u=>s("formatter",u)}),i&&o(Ha,{value:t,onChange:n})]})});function Ya(e){const t=Array.from(e).sort((r,i)=>r-i),n=Math.floor(t.length/2);return t.length%2===0?(t[n-1]+t[n])/2:t[n]}function zt(e,t,n){var i,l,s,u;const r=e.map(d=>d[t]);switch(n.type){case"sum":return z.default.sum(r);case"mean":return z.default.mean(r);case"median":return Ya(r);case"max":return(i=z.default.max(r))!=null?i:0;case"min":return(l=z.default.min(r))!=null?l:0;case"quantile":return(s=Zi.quantile(r,n.config.p))!=null?s:0;default:return(u=e[0])==null?void 0:u[t]}}var gr=function(){},We=function(){};process.env.NODE_ENV!=="production"&&(gr=function(e,t){!e&&typeof console<"u"&&console.warn(t)},We=function(e,t){if(!e)throw new Error(t)});const Xa=(e,t,n)=>Math.min(Math.max(n,e),t),pr=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},Gt=(e,t,n)=>-n*e+n*t+e,fr=(e,t)=>n=>Math.max(Math.min(n,t),e),Ue=e=>e%1?Number(e.toFixed(5)):e,it=/(-)?([\d]*\.?[\d])+/g,Lt=/(#[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,Ja=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;function Qe(e){return typeof e=="string"}const ot={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},hr=Object.assign(Object.assign({},ot),{transform:fr(0,1)});Object.assign(Object.assign({},ot),{default:1});const He=(e=>({test:t=>Qe(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}))("%");Object.assign(Object.assign({},He),{parse:e=>He.parse(e)/100,transform:e=>He.transform(e*100)});const Nt=(e,t)=>n=>Boolean(Qe(n)&&Ja.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),mr=(e,t,n)=>r=>{if(!Qe(r))return r;const[i,l,s,u]=r.match(it);return{[e]:parseFloat(i),[t]:parseFloat(l),[n]:parseFloat(s),alpha:u!==void 0?parseFloat(u):1}},Pe={test:Nt("hsl","hue"),parse:mr("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+He.transform(Ue(t))+", "+He.transform(Ue(n))+", "+Ue(hr.transform(r))+")"},Ka=fr(0,255),qt=Object.assign(Object.assign({},ot),{transform:e=>Math.round(Ka(e))}),Ae={test:Nt("rgb","red"),parse:mr("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+qt.transform(e)+", "+qt.transform(t)+", "+qt.transform(n)+", "+Ue(hr.transform(r))+")"};function Za(e){let t="",n="",r="",i="";return e.length>5?(t=e.substr(1,2),n=e.substr(3,2),r=e.substr(5,2),i=e.substr(7,2)):(t=e.substr(1,1),n=e.substr(2,1),r=e.substr(3,1),i=e.substr(4,1),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const Bt={test:Nt("#"),parse:Za,transform:Ae.transform},at={test:e=>Ae.test(e)||Bt.test(e)||Pe.test(e),parse:e=>Ae.test(e)?Ae.parse(e):Pe.test(e)?Pe.parse(e):Bt.parse(e),transform:e=>Qe(e)?e:e.hasOwnProperty("red")?Ae.transform(e):Pe.transform(e)},vr="${c}",yr="${n}";function el(e){var t,n,r,i;return isNaN(e)&&Qe(e)&&((n=(t=e.match(it))===null||t===void 0?void 0:t.length)!==null&&n!==void 0?n:0)+((i=(r=e.match(Lt))===null||r===void 0?void 0:r.length)!==null&&i!==void 0?i:0)>0}function br(e){typeof e=="number"&&(e=`${e}`);const t=[];let n=0;const r=e.match(Lt);r&&(n=r.length,e=e.replace(Lt,vr),t.push(...r.map(at.parse)));const i=e.match(it);return i&&(e=e.replace(it,yr),t.push(...i.map(ot.parse))),{values:t,numColors:n,tokenised:e}}function Cr(e){return br(e).values}function xr(e){const{values:t,numColors:n,tokenised:r}=br(e),i=t.length;return l=>{let s=r;for(let u=0;u<i;u++)s=s.replace(u<n?vr:yr,u<n?at.transform(l[u]):Ue(l[u]));return s}}const tl=e=>typeof e=="number"?0:e;function nl(e){const t=Cr(e);return xr(e)(t.map(tl))}const Sr={test:el,parse:Cr,createTransformer:xr,getAnimatableNone:nl};function jt(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function wr({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,l=0,s=0;if(!t)i=l=s=n;else{const u=n<.5?n*(1+t):n+t-n*t,d=2*n-u;i=jt(d,u,e+1/3),l=jt(d,u,e),s=jt(d,u,e-1/3)}return{red:Math.round(i*255),green:Math.round(l*255),blue:Math.round(s*255),alpha:r}}const rl=(e,t,n)=>{const r=e*e,i=t*t;return Math.sqrt(Math.max(0,n*(i-r)+r))},il=[Bt,Ae,Pe],_r=e=>il.find(t=>t.test(e)),Ir=e=>`'${e}' is not an animatable color. Use the equivalent color code instead.`,Dr=(e,t)=>{let n=_r(e),r=_r(t);We(!!n,Ir(e)),We(!!r,Ir(t));let i=n.parse(e),l=r.parse(t);n===Pe&&(i=wr(i),n=Ae),r===Pe&&(l=wr(l),r=Ae);const s=Object.assign({},i);return u=>{for(const d in s)d!=="alpha"&&(s[d]=rl(i[d],l[d],u));return s.alpha=Gt(i.alpha,l.alpha,u),n.transform(s)}},ol=e=>typeof e=="number",al=(e,t)=>n=>t(e(n)),Ar=(...e)=>e.reduce(al);function Mr(e,t){return ol(e)?n=>Gt(e,t,n):at.test(e)?Dr(e,t):Rr(e,t)}const Vr=(e,t)=>{const n=[...e],r=n.length,i=e.map((l,s)=>Mr(l,t[s]));return l=>{for(let s=0;s<r;s++)n[s]=i[s](l);return n}},ll=(e,t)=>{const n=Object.assign(Object.assign({},e),t),r={};for(const i in n)e[i]!==void 0&&t[i]!==void 0&&(r[i]=Mr(e[i],t[i]));return i=>{for(const l in r)n[l]=r[l](i);return n}};function Er(e){const t=Sr.parse(e),n=t.length;let r=0,i=0,l=0;for(let s=0;s<n;s++)r||typeof t[s]=="number"?r++:t[s].hue!==void 0?l++:i++;return{parsed:t,numNumbers:r,numRGB:i,numHSL:l}}const Rr=(e,t)=>{const n=Sr.createTransformer(t),r=Er(e),i=Er(t);return r.numHSL===i.numHSL&&r.numRGB===i.numRGB&&r.numNumbers>=i.numNumbers?Ar(Vr(r.parsed,i.parsed),n):(gr(!0,`Complex values '${e}' and '${t}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`),s=>`${s>0?t:e}`)},sl=(e,t)=>n=>Gt(e,t,n);function ul(e){if(typeof e=="number")return sl;if(typeof e=="string")return at.test(e)?Dr:Rr;if(Array.isArray(e))return Vr;if(typeof e=="object")return ll}function dl(e,t,n){const r=[],i=n||ul(e[0]),l=e.length-1;for(let s=0;s<l;s++){let u=i(e[s],e[s+1]);if(t){const d=Array.isArray(t)?t[s]:t;u=Ar(d,u)}r.push(u)}return r}function cl([e,t],[n]){return r=>n(pr(e,t,r))}function gl(e,t){const n=e.length,r=n-1;return i=>{let l=0,s=!1;if(i<=e[0]?s=!0:i>=e[r]&&(l=r-1,s=!0),!s){let d=1;for(;d<n&&!(e[d]>i||d===r);d++);l=d-1}const u=pr(e[l],e[l+1],i);return t[l](u)}}function pl(e,t,{clamp:n=!0,ease:r,mixer:i}={}){const l=e.length;We(l===t.length,"Both input and output ranges must be the same length"),We(!r||!Array.isArray(r)||r.length===l-1,"Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values."),e[0]>e[l-1]&&(e=[].concat(e),t=[].concat(t),e.reverse(),t.reverse());const s=dl(t,r,i),u=l===2?cl(e,s):gl(e,s);return n?d=>u(Xa(e[0],e[l-1],d)):u}class fl{constructor({valueRange:t,colorRange:n}){$(this,"mapper");this.mapper=pl(t,n)}getColor(t){return this.mapper(t)}}function hl(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array(${e.length})`:e.toString()}function Tr({data_field:e,aggregation:t},n){return zt(n,e,t)}function lt({formatter:e},t){return["string","number"].includes(typeof t)?ae.default(t).format(e):hl(t)}function ml(e,t){return e.type==="static"?e.staticColor:e.type==="continuous"?new fl(e).getColor(t):"black"}function vl(e,t){const n={};return e.forEach(r=>{const{name:i,color:l,data_field:s,aggregation:u,size:d,weight:p}=r,c=zt(t,s,u),f=lt(r,c);n[i]=o(a.Text,{sx:{fontSize:d,display:"inline"},color:ml(l,c),weight:p,children:f})}),n}function yl(e){return e.split(" ").map(t=>g(U,{children:[t,"\xA0"]}))}function bl(e){const n=e.replaceAll("<br />","<br/>").replaceAll(`
40
+ `,"<br/>").split("<br/>");return n.map((i,l)=>{const s=[yl(i)];return l!==n.length-1&&s.push(o("br",{})),s}).flat().filter(i=>i!==void 0)}function Wt(e){return bl(e)}function Ut(e,t,n){const r=vl(t,n),i=/^\{(.+)\}(.*)$/;return e.split("$").map(l=>{var p;const s=i.exec(l);if(!s)return Wt(l);const u=r[s[1]];if(!u)return Wt(l);const d=(p=s[2])!=null?p:"";return g(U,{children:[u,Wt(d)]})})}function Cl(e,t){const n={};return e.forEach(r=>{const{name:i,data_field:l,aggregation:s}=r,u=zt(t,l,s);n[i]=lt(r,u)}),n}function Fr(e,t,n){const r=Cl(t,n),i=/^\{(.+)\}(.*)$/;return e.split("$").map(l=>{var p;const s=i.exec(l);if(!s)return l;const u=r[s[1]];if(!u)return l;const d=(p=s[2])!=null?p:"";return`${u}${d}`}).join("")}function xl({context:e}){const{value:t=Pt}=L(e.instanceData,"config"),{template:n,variables:r,align:i}=t,l=w.useMemo(()=>Ut(n,r,e.data),[n,r,e.data]);return o(a.Text,{align:i,children:Object.values(l).map(s=>s)})}function Sl({control:e,index:t,remove:n,data:r}){return g(a.Stack,{my:"sm",p:0,sx:{border:"1px solid #eee",borderTopColor:"#333",borderTopWidth:2,position:"relative"},children:[o(S.Controller,{name:`variables.${t}`,control:e,render:({field:i})=>o(rt,{data:r,...i})}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:o(V.Trash,{size:16})})]},t)}function wl({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=S.useFieldArray({control:e,name:"variables"}),s=t("variables"),u=r.map((p,c)=>({...p,...s[c]})),d=()=>i(tt());return g(a.Stack,{children:[u.map((p,c)=>o(Sl,{control:e,index:c,remove:l,data:n},p.name)),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:d,children:"Add a Variable"})})]})}function _l({context:e}){const t=e.data||[],{value:n,set:r}=L(e.instanceData,"config"),i=C.default.useMemo(()=>{const{align:m,template:v="",variables:b=[]}=_.defaultsDeep({},n,Pt);return{variables:b,template:v,align:m}},[n]),{control:l,handleSubmit:s,watch:u,getValues:d,reset:p}=S.useForm({defaultValues:i});C.default.useEffect(()=>{p(i)},[i]),u(["variables","template"]);const c=d(),f=C.default.useMemo(()=>!z.default.isEqual(c,n),[c,n]);return o(a.Stack,{mt:"md",spacing:"xs",children:g("form",{onSubmit:s(r),children:[g(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[o(a.Text,{weight:500,children:"Stats Configurations"}),o(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!f,children:o(V.DeviceFloppy,{size:20})})]}),o(S.Controller,{name:"template",control:l,render:({field:m})=>o(kt,{label:"Template",py:"md",sx:{flexGrow:1},...m})}),o(a.Text,{pb:"sm",pt:"md",size:"sm",children:"Variables"}),o(wl,{control:l,watch:u,data:t})]})})}const Il={createConfig(){return{version:1,config:Pt}},displayName:"Stats",migrator:new Pa,name:"stats",viewRender:xl,configRender:_l};var Me=(e=>(e.string="string",e.number="number",e.eloc="eloc",e.percentage="percentage",e))(Me||{});const st={columns:[],fontSize:"1rem",highlightOnHover:!1,horizontalSpacing:"1em",id_field:"",striped:!1,use_raw_columns:!1,verticalSpacing:"1em"};/**
41
+ * react-table
42
+ *
43
+ * Copyright (c) TanStack
44
+ *
45
+ * This source code is licensed under the MIT license found in the
46
+ * LICENSE.md file in the root directory of this source tree.
47
+ *
48
+ * @license MIT
49
+ */function Ve(e,t){return typeof e=="function"?e(t):e}function se(e,t){return n=>{t.setState(r=>({...r,[e]:Ve(n,r[e])}))}}function ut(e){return e instanceof Function}function Dl(e,t){const n=[],r=i=>{i.forEach(l=>{n.push(l);const s=t(l);s!=null&&s.length&&r(s)})};return r(e),n}function F(e,t,n){let r=[],i;return()=>{let l;n.key&&n.debug&&(l=Date.now());const s=e();if(!(s.length!==r.length||s.some((p,c)=>r[c]!==p)))return i;r=s;let d;if(n.key&&n.debug&&(d=Date.now()),i=t(...s),n==null||n.onChange==null||n.onChange(i),n.key&&n.debug&&n!=null&&n.debug()){const p=Math.round((Date.now()-l)*100)/100,c=Math.round((Date.now()-d)*100)/100,f=c/16,m=(v,b)=>{for(v=String(v);v.length<b;)v=" "+v;return v};console.info("%c\u23F1 "+m(c,5)+" /"+m(p,5)+" ms",`
50
+ font-size: .6rem;
51
+ font-weight: bold;
52
+ color: hsl(`+Math.max(0,Math.min(120-120*f,120))+"deg 100% 31%);",n==null?void 0:n.key)}return i}}function Al(e,t,n,r){var i,l;const u={...e._getDefaultColumnDef(),...t},d=u.accessorKey;let p=(i=(l=u.id)!=null?l:d?d.replace(".","_"):void 0)!=null?i:typeof u.header=="string"?u.header:void 0,c;if(u.accessorFn?c=u.accessorFn:d&&(d.includes(".")?c=m=>{let v=m;for(const b of d.split("."))v=v[b];return v}:c=m=>m[u.accessorKey]),!p)throw process.env.NODE_ENV!=="production"?new Error(u.accessorFn?"Columns require an id when using an accessorFn":"Columns require an id when using a non-string header"):new Error;let f={id:""+String(p),accessorFn:c,parent:r,depth:n,columnDef:u,columns:[],getFlatColumns:F(()=>[!0],()=>{var m;return[f,...(m=f.columns)==null?void 0:m.flatMap(v=>v.getFlatColumns())]},{key:process.env.NODE_ENV==="production"&&"column.getFlatColumns",debug:()=>{var m;return(m=e.options.debugAll)!=null?m:e.options.debugColumns}}),getLeafColumns:F(()=>[e._getOrderColumnsFn()],m=>{var v;if((v=f.columns)!=null&&v.length){let b=f.columns.flatMap(I=>I.getLeafColumns());return m(b)}return[f]},{key:process.env.NODE_ENV==="production"&&"column.getLeafColumns",debug:()=>{var m;return(m=e.options.debugAll)!=null?m:e.options.debugColumns}})};return f=e._features.reduce((m,v)=>Object.assign(m,v.createColumn==null?void 0:v.createColumn(f,e)),f),f}function $r(e,t,n){var r;let l={id:(r=n.id)!=null?r:t.id,column:t,index:n.index,isPlaceholder:!!n.isPlaceholder,placeholderId:n.placeholderId,depth:n.depth,subHeaders:[],colSpan:0,rowSpan:0,headerGroup:null,getLeafHeaders:()=>{const s=[],u=d=>{d.subHeaders&&d.subHeaders.length&&d.subHeaders.map(u),s.push(d)};return u(l),s},getContext:()=>({table:e,header:l,column:t})};return e._features.forEach(s=>{Object.assign(l,s.createHeader==null?void 0:s.createHeader(l,e))}),l}const Ml={createTable:e=>({getHeaderGroups:F(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>{var l,s;const u=(l=r==null?void 0:r.map(f=>n.find(m=>m.id===f)).filter(Boolean))!=null?l:[],d=(s=i==null?void 0:i.map(f=>n.find(m=>m.id===f)).filter(Boolean))!=null?s:[],p=n.filter(f=>!(r!=null&&r.includes(f.id))&&!(i!=null&&i.includes(f.id)));return dt(t,[...u,...p,...d],e)},{key:process.env.NODE_ENV==="development"&&"getHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getCenterHeaderGroups:F(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>(n=n.filter(l=>!(r!=null&&r.includes(l.id))&&!(i!=null&&i.includes(l.id))),dt(t,n,e,"center")),{key:process.env.NODE_ENV==="development"&&"getCenterHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getLeftHeaderGroups:F(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>{var i;const l=(i=r==null?void 0:r.map(s=>n.find(u=>u.id===s)).filter(Boolean))!=null?i:[];return dt(t,l,e,"left")},{key:process.env.NODE_ENV==="development"&&"getLeftHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getRightHeaderGroups:F(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>{var i;const l=(i=r==null?void 0:r.map(s=>n.find(u=>u.id===s)).filter(Boolean))!=null?i:[];return dt(t,l,e,"right")},{key:process.env.NODE_ENV==="development"&&"getRightHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getFooterGroups:F(()=>[e.getHeaderGroups()],t=>[...t].reverse(),{key:process.env.NODE_ENV==="development"&&"getFooterGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getLeftFooterGroups:F(()=>[e.getLeftHeaderGroups()],t=>[...t].reverse(),{key:process.env.NODE_ENV==="development"&&"getLeftFooterGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getCenterFooterGroups:F(()=>[e.getCenterHeaderGroups()],t=>[...t].reverse(),{key:process.env.NODE_ENV==="development"&&"getCenterFooterGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getRightFooterGroups:F(()=>[e.getRightHeaderGroups()],t=>[...t].reverse(),{key:process.env.NODE_ENV==="development"&&"getRightFooterGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getFlatHeaders:F(()=>[e.getHeaderGroups()],t=>t.map(n=>n.headers).flat(),{key:process.env.NODE_ENV==="development"&&"getFlatHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getLeftFlatHeaders:F(()=>[e.getLeftHeaderGroups()],t=>t.map(n=>n.headers).flat(),{key:process.env.NODE_ENV==="development"&&"getLeftFlatHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getCenterFlatHeaders:F(()=>[e.getCenterHeaderGroups()],t=>t.map(n=>n.headers).flat(),{key:process.env.NODE_ENV==="development"&&"getCenterFlatHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getRightFlatHeaders:F(()=>[e.getRightHeaderGroups()],t=>t.map(n=>n.headers).flat(),{key:process.env.NODE_ENV==="development"&&"getRightFlatHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getCenterLeafHeaders:F(()=>[e.getCenterFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),{key:process.env.NODE_ENV==="development"&&"getCenterLeafHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getLeftLeafHeaders:F(()=>[e.getLeftFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),{key:process.env.NODE_ENV==="development"&&"getLeftLeafHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getRightLeafHeaders:F(()=>[e.getRightFlatHeaders()],t=>t.filter(n=>{var r;return!((r=n.subHeaders)!=null&&r.length)}),{key:process.env.NODE_ENV==="development"&&"getRightLeafHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getLeafHeaders:F(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,r)=>{var i,l,s,u,d,p;return[...(i=(l=t[0])==null?void 0:l.headers)!=null?i:[],...(s=(u=n[0])==null?void 0:u.headers)!=null?s:[],...(d=(p=r[0])==null?void 0:p.headers)!=null?d:[]].map(c=>c.getLeafHeaders()).flat()},{key:process.env.NODE_ENV==="development"&&"getLeafHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}})})};function dt(e,t,n,r){var i,l;let s=0;const u=function(m,v){v===void 0&&(v=1),s=Math.max(s,v),m.filter(b=>b.getIsVisible()).forEach(b=>{var I;(I=b.columns)!=null&&I.length&&u(b.columns,v+1)},0)};u(e);let d=[];const p=(m,v)=>{const b={depth:v,id:[r,""+v].filter(Boolean).join("_"),headers:[]},I=[];m.forEach(A=>{const T=[...I].reverse()[0],k=A.column.depth===b.depth;let B,N=!1;if(k&&A.column.parent?B=A.column.parent:(B=A.column,N=!0),T&&(T==null?void 0:T.column)===B)T.subHeaders.push(A);else{const te=$r(n,B,{id:[r,v,B.id,A==null?void 0:A.id].filter(Boolean).join("_"),isPlaceholder:N,placeholderId:N?""+I.filter(ye=>ye.column===B).length:void 0,depth:v,index:I.length});te.subHeaders.push(A),I.push(te)}b.headers.push(A),A.headerGroup=b}),d.push(b),v>0&&p(I,v-1)},c=t.map((m,v)=>$r(n,m,{depth:s,index:v}));p(c,s-1),d.reverse();const f=m=>m.filter(b=>b.column.getIsVisible()).map(b=>{let I=0,A=0,T=[0];b.subHeaders&&b.subHeaders.length?(T=[],f(b.subHeaders).forEach(B=>{let{colSpan:N,rowSpan:te}=B;I+=N,T.push(te)})):I=1;const k=Math.min(...T);return A=A+k,b.colSpan=I,b.rowSpan=A,{colSpan:I,rowSpan:A}});return f((i=(l=d[0])==null?void 0:l.headers)!=null?i:[]),d}const ct={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},Qt=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),Vl={getDefaultColumnDef:()=>ct,getInitialState:e=>({columnSizing:{},columnSizingInfo:Qt(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",onColumnSizingChange:se("columnSizing",e),onColumnSizingInfoChange:se("columnSizingInfo",e)}),createColumn:(e,t)=>({getSize:()=>{var n,r,i;const l=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:ct.minSize,(r=l!=null?l:e.columnDef.size)!=null?r:ct.size),(i=e.columnDef.maxSize)!=null?i:ct.maxSize)},getStart:n=>{const r=n?n==="left"?t.getLeftVisibleLeafColumns():t.getRightVisibleLeafColumns():t.getVisibleLeafColumns(),i=r.findIndex(l=>l.id===e.id);if(i>0){const l=r[i-1];return l.getStart(n)+l.getSize()}return 0},resetSize:()=>{t.setColumnSizing(n=>{let{[e.id]:r,...i}=n;return i})},getCanResize:()=>{var n,r;return((n=e.columnDef.enableResizing)!=null?n:!0)&&((r=t.options.enableColumnResizing)!=null?r:!0)},getIsResizing:()=>t.getState().columnSizingInfo.isResizingColumn===e.id}),createHeader:(e,t)=>({getSize:()=>{let n=0;const r=i=>{if(i.subHeaders.length)i.subHeaders.forEach(r);else{var l;n+=(l=i.column.getSize())!=null?l:0}};return r(e),n},getStart:()=>{if(e.index>0){const n=e.headerGroup.headers[e.index-1];return n.getStart()+n.getSize()}return 0},getResizeHandler:()=>{const n=t.getColumn(e.column.id),r=n.getCanResize();return i=>{if(!r||(i.persist==null||i.persist(),Ht(i)&&i.touches&&i.touches.length>1))return;const l=e.getSize(),s=e?e.getLeafHeaders().map(v=>[v.column.id,v.column.getSize()]):[[n.id,n.getSize()]],u=Ht(i)?Math.round(i.touches[0].clientX):i.clientX,d=(v,b)=>{if(typeof b!="number")return;let I={};t.setColumnSizingInfo(A=>{var T,k;const B=b-((T=A==null?void 0:A.startOffset)!=null?T:0),N=Math.max(B/((k=A==null?void 0:A.startSize)!=null?k:0),-.999999);return A.columnSizingStart.forEach(te=>{let[ye,Re]=te;I[ye]=Math.round(Math.max(Re+Re*N,0)*100)/100}),{...A,deltaOffset:B,deltaPercentage:N}}),(t.options.columnResizeMode==="onChange"||v==="end")&&t.setColumnSizing(A=>({...A,...I}))},p=v=>d("move",v),c=v=>{d("end",v),t.setColumnSizingInfo(b=>({...b,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},f={moveHandler:v=>p(v.clientX),upHandler:v=>{document.removeEventListener("mousemove",f.moveHandler),document.removeEventListener("mouseup",f.upHandler),c(v.clientX)}},m=El()?{passive:!1}:!1;Ht(i)||(document.addEventListener("mousemove",f.moveHandler,m),document.addEventListener("mouseup",f.upHandler,m)),t.setColumnSizingInfo(v=>({...v,startOffset:u,startSize:l,deltaOffset:0,deltaPercentage:0,columnSizingStart:s,isResizingColumn:n.id}))}}}),createTable:e=>({setColumnSizing:t=>e.options.onColumnSizingChange==null?void 0:e.options.onColumnSizingChange(t),setColumnSizingInfo:t=>e.options.onColumnSizingInfoChange==null?void 0:e.options.onColumnSizingInfoChange(t),resetColumnSizing:t=>{var n;e.setColumnSizing(t?{}:(n=e.initialState.columnSizing)!=null?n:{})},resetHeaderSizeInfo:t=>{var n;e.setColumnSizingInfo(t?Qt():(n=e.initialState.columnSizingInfo)!=null?n:Qt())},getTotalSize:()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},getLeftTotalSize:()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},getCenterTotalSize:()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0},getRightTotalSize:()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((r,i)=>r+i.getSize(),0))!=null?t:0}})};let gt=null;function El(){if(typeof gt=="boolean")return gt;let e=!1;try{const t={get passive(){return e=!0,!1}},n=()=>{};window.addEventListener("test",n,t),window.removeEventListener("test",n)}catch{e=!1}return gt=e,gt}function Ht(e){return e.type==="touchstart"}const Rl={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:se("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;return{_autoResetExpanded:()=>{var r,i;if(!t){e._queue(()=>{t=!0});return}if((r=(i=e.options.autoResetAll)!=null?i:e.options.autoResetExpanded)!=null?r:!e.options.manualExpanding){if(n)return;n=!0,e._queue(()=>{e.resetExpanded(),n=!1})}},setExpanded:r=>e.options.onExpandedChange==null?void 0:e.options.onExpandedChange(r),toggleAllRowsExpanded:r=>{(r!=null?r:!e.getIsAllRowsExpanded())?e.setExpanded(!0):e.setExpanded({})},resetExpanded:r=>{var i,l;e.setExpanded(r?{}:(i=(l=e.initialState)==null?void 0:l.expanded)!=null?i:{})},getCanSomeRowsExpand:()=>e.getRowModel().flatRows.some(r=>r.getCanExpand()),getToggleAllRowsExpandedHandler:()=>r=>{r.persist==null||r.persist(),e.toggleAllRowsExpanded()},getIsSomeRowsExpanded:()=>{const r=e.getState().expanded;return r===!0||Object.values(r).some(Boolean)},getIsAllRowsExpanded:()=>{const r=e.getState().expanded;return typeof r=="boolean"?r===!0:!(!Object.keys(r).length||e.getRowModel().flatRows.some(i=>i.getIsExpanded()))},getExpandedDepth:()=>{let r=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(l=>{const s=l.split(".");r=Math.max(r,s.length)}),r},getPreExpandedRowModel:()=>e.getSortedRowModel(),getExpandedRowModel:()=>(!e._getExpandedRowModel&&e.options.getExpandedRowModel&&(e._getExpandedRowModel=e.options.getExpandedRowModel(e)),e.options.manualExpanding||!e._getExpandedRowModel?e.getPreExpandedRowModel():e._getExpandedRowModel())}},createRow:(e,t)=>({toggleExpanded:n=>{t.setExpanded(r=>{var i;const l=r===!0?!0:!!(r!=null&&r[e.id]);let s={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(u=>{s[u]=!0}):s=r,n=(i=n)!=null?i:!l,!l&&n)return{...s,[e.id]:!0};if(l&&!n){const{[e.id]:u,...d}=s;return d}return r})},getIsExpanded:()=>{var n;const r=t.getState().expanded;return!!((n=t.options.getIsRowExpanded==null?void 0:t.options.getIsRowExpanded(e))!=null?n:r===!0||(r==null?void 0:r[e.id]))},getCanExpand:()=>{var n,r,i;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((r=t.options.enableExpanding)!=null?r:!0)&&!!((i=e.subRows)!=null&&i.length)},getToggleExpandedHandler:()=>{const n=e.getCanExpand();return()=>{!n||e.toggleExpanded()}}})},Pr=(e,t,n)=>{var r;const i=n.toLowerCase();return(r=e.getValue(t))==null?void 0:r.toLowerCase().includes(i)};Pr.autoRemove=e=>pe(e);const kr=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};kr.autoRemove=e=>pe(e);const Or=(e,t,n)=>{var r;return((r=e.getValue(t))==null?void 0:r.toLowerCase())===n.toLowerCase()};Or.autoRemove=e=>pe(e);const zr=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};zr.autoRemove=e=>pe(e)||!(e!=null&&e.length);const Gr=(e,t,n)=>!n.some(r=>{var i;return!((i=e.getValue(t))!=null&&i.includes(r))});Gr.autoRemove=e=>pe(e)||!(e!=null&&e.length);const Lr=(e,t,n)=>n.some(r=>{var i;return(i=e.getValue(t))==null?void 0:i.includes(r)});Lr.autoRemove=e=>pe(e)||!(e!=null&&e.length);const Nr=(e,t,n)=>e.getValue(t)===n;Nr.autoRemove=e=>pe(e);const qr=(e,t,n)=>e.getValue(t)==n;qr.autoRemove=e=>pe(e);const Yt=(e,t,n)=>{let[r,i]=n;const l=e.getValue(t);return l>=r&&l<=i};Yt.resolveFilterValue=e=>{let[t,n]=e,r=typeof t!="number"?parseFloat(t):t,i=typeof n!="number"?parseFloat(n):n,l=t===null||Number.isNaN(r)?-1/0:r,s=n===null||Number.isNaN(i)?1/0:i;if(l>s){const u=l;l=s,s=u}return[l,s]},Yt.autoRemove=e=>pe(e)||pe(e[0])&&pe(e[1]);const Ce={includesString:Pr,includesStringSensitive:kr,equalsString:Or,arrIncludes:zr,arrIncludesAll:Gr,arrIncludesSome:Lr,equals:Nr,weakEquals:qr,inNumberRange:Yt};function pe(e){return e==null||e===""}const Tl={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],globalFilter:void 0,...e}),getDefaultOptions:e=>({onColumnFiltersChange:se("columnFilters",e),onGlobalFilterChange:se("globalFilter",e),filterFromLeafRows:!1,globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n,r;const i=(n=e.getCoreRowModel().flatRows[0])==null||(r=n._getAllCellsByColumnId()[t.id])==null?void 0:r.getValue();return typeof i=="string"||typeof i=="number"}}),createColumn:(e,t)=>({getAutoFilterFn:()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);return typeof r=="string"?Ce.includesString:typeof r=="number"?Ce.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?Ce.equals:Array.isArray(r)?Ce.arrIncludes:Ce.weakEquals},getFilterFn:()=>{var n,r;return ut(e.columnDef.filterFn)?e.columnDef.filterFn:e.columnDef.filterFn==="auto"?e.getAutoFilterFn():(n=(r=t.options.filterFns)==null?void 0:r[e.columnDef.filterFn])!=null?n:Ce[e.columnDef.filterFn]},getCanFilter:()=>{var n,r,i;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((r=t.options.enableColumnFilters)!=null?r:!0)&&((i=t.options.enableFilters)!=null?i:!0)&&!!e.accessorFn},getCanGlobalFilter:()=>{var n,r,i,l;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((r=t.options.enableGlobalFilter)!=null?r:!0)&&((i=t.options.enableFilters)!=null?i:!0)&&((l=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?l:!0)&&!!e.accessorFn},getIsFiltered:()=>e.getFilterIndex()>-1,getFilterValue:()=>{var n,r;return(n=t.getState().columnFilters)==null||(r=n.find(i=>i.id===e.id))==null?void 0:r.value},getFilterIndex:()=>{var n,r;return(n=(r=t.getState().columnFilters)==null?void 0:r.findIndex(i=>i.id===e.id))!=null?n:-1},setFilterValue:n=>{t.setColumnFilters(r=>{const i=e.getFilterFn(),l=r==null?void 0:r.find(c=>c.id===e.id),s=Ve(n,l?l.value:void 0);if(Br(i,s,e)){var u;return(u=r==null?void 0:r.filter(c=>c.id!==e.id))!=null?u:[]}const d={id:e.id,value:s};if(l){var p;return(p=r==null?void 0:r.map(c=>c.id===e.id?d:c))!=null?p:[]}return r!=null&&r.length?[...r,d]:[d]})},_getFacetedRowModel:t.options.getFacetedRowModel&&t.options.getFacetedRowModel(t,e.id),getFacetedRowModel:()=>e._getFacetedRowModel?e._getFacetedRowModel():t.getPreFilteredRowModel(),_getFacetedUniqueValues:t.options.getFacetedUniqueValues&&t.options.getFacetedUniqueValues(t,e.id),getFacetedUniqueValues:()=>e._getFacetedUniqueValues?e._getFacetedUniqueValues():new Map,_getFacetedMinMaxValues:t.options.getFacetedMinMaxValues&&t.options.getFacetedMinMaxValues(t,e.id),getFacetedMinMaxValues:()=>{if(!!e._getFacetedMinMaxValues)return e._getFacetedMinMaxValues()}}),createRow:(e,t)=>({columnFilters:{},columnFiltersMeta:{}}),createTable:e=>({getGlobalAutoFilterFn:()=>Ce.includesString,getGlobalFilterFn:()=>{var t,n;const{globalFilterFn:r}=e.options;return ut(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:Ce[r]},setColumnFilters:t=>{const n=e.getAllLeafColumns(),r=i=>{var l;return(l=Ve(t,i))==null?void 0:l.filter(s=>{const u=n.find(d=>d.id===s.id);if(u){const d=u.getFilterFn();if(Br(d,s.value,u))return!1}return!0})};e.options.onColumnFiltersChange==null||e.options.onColumnFiltersChange(r)},setGlobalFilter:t=>{e.options.onGlobalFilterChange==null||e.options.onGlobalFilterChange(t)},resetGlobalFilter:t=>{e.setGlobalFilter(t?void 0:e.initialState.globalFilter)},resetColumnFilters:t=>{var n,r;e.setColumnFilters(t?[]:(n=(r=e.initialState)==null?void 0:r.columnFilters)!=null?n:[])},getPreFilteredRowModel:()=>e.getCoreRowModel(),getFilteredRowModel:()=>(!e._getFilteredRowModel&&e.options.getFilteredRowModel&&(e._getFilteredRowModel=e.options.getFilteredRowModel(e)),e.options.manualFiltering||!e._getFilteredRowModel?e.getPreFilteredRowModel():e._getFilteredRowModel()),_getGlobalFacetedRowModel:e.options.getFacetedRowModel&&e.options.getFacetedRowModel(e,"__global__"),getGlobalFacetedRowModel:()=>e.options.manualFiltering||!e._getGlobalFacetedRowModel?e.getPreFilteredRowModel():e._getGlobalFacetedRowModel(),_getGlobalFacetedUniqueValues:e.options.getFacetedUniqueValues&&e.options.getFacetedUniqueValues(e,"__global__"),getGlobalFacetedUniqueValues:()=>e._getGlobalFacetedUniqueValues?e._getGlobalFacetedUniqueValues():new Map,_getGlobalFacetedMinMaxValues:e.options.getFacetedMinMaxValues&&e.options.getFacetedMinMaxValues(e,"__global__"),getGlobalFacetedMinMaxValues:()=>{if(!!e._getGlobalFacetedMinMaxValues)return e._getGlobalFacetedMinMaxValues()}})};function Br(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const Xt={sum:(e,t,n)=>n.reduce((r,i)=>{const l=i.getValue(e);return r+(typeof l=="number"?l:0)},0),min:(e,t,n)=>{let r;return n.forEach(i=>{const l=i.getValue(e);l!=null&&(r>l||r===void 0&&l>=l)&&(r=l)}),r},max:(e,t,n)=>{let r;return n.forEach(i=>{const l=i.getValue(e);l!=null&&(r<l||r===void 0&&l>=l)&&(r=l)}),r},extent:(e,t,n)=>{let r,i;return n.forEach(l=>{const s=l.getValue(e);s!=null&&(r===void 0?s>=s&&(r=i=s):(r>s&&(r=s),i<s&&(i=s)))}),[r,i]},mean:(e,t)=>{let n=0,r=0;if(t.forEach(i=>{let l=i.getValue(e);l!=null&&(l=+l)>=l&&(++n,r+=l)}),n)return r/n},median:(e,t)=>{if(!t.length)return;let n=0,r=0;return t.forEach(i=>{let l=i.getValue(e);typeof l=="number"&&(n=Math.min(n,l),r=Math.max(r,l))}),(n+r)/2},unique:(e,t)=>Array.from(new Set(t.map(n=>n.getValue(e))).values()),uniqueCount:(e,t)=>new Set(t.map(n=>n.getValue(e))).size,count:(e,t)=>t.length},Fl={getDefaultColumnDef:()=>({aggregatedCell:e=>{var t,n;return(t=(n=e.getValue())==null||n.toString==null?void 0:n.toString())!=null?t:null},aggregationFn:"auto"}),getInitialState:e=>({grouping:[],...e}),getDefaultOptions:e=>({onGroupingChange:se("grouping",e),groupedColumnMode:"reorder"}),createColumn:(e,t)=>({toggleGrouping:()=>{t.setGrouping(n=>n!=null&&n.includes(e.id)?n.filter(r=>r!==e.id):[...n!=null?n:[],e.id])},getCanGroup:()=>{var n,r,i,l;return(n=(r=(i=(l=e.columnDef.enableGrouping)!=null?l:!0)!=null?i:t.options.enableGrouping)!=null?r:!0)!=null?n:!!e.accessorFn},getIsGrouped:()=>{var n;return(n=t.getState().grouping)==null?void 0:n.includes(e.id)},getGroupedIndex:()=>{var n;return(n=t.getState().grouping)==null?void 0:n.indexOf(e.id)},getToggleGroupingHandler:()=>{const n=e.getCanGroup();return()=>{!n||e.toggleGrouping()}},getAutoAggregationFn:()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);if(typeof r=="number")return Xt.sum;if(Object.prototype.toString.call(r)==="[object Date]")return Xt.extent},getAggregationFn:()=>{var n,r;if(!e)throw new Error;return ut(e.columnDef.aggregationFn)?e.columnDef.aggregationFn:e.columnDef.aggregationFn==="auto"?e.getAutoAggregationFn():(n=(r=t.options.aggregationFns)==null?void 0:r[e.columnDef.aggregationFn])!=null?n:Xt[e.columnDef.aggregationFn]}}),createTable:e=>({setGrouping:t=>e.options.onGroupingChange==null?void 0:e.options.onGroupingChange(t),resetGrouping:t=>{var n,r;e.setGrouping(t?[]:(n=(r=e.initialState)==null?void 0:r.grouping)!=null?n:[])},getPreGroupedRowModel:()=>e.getFilteredRowModel(),getGroupedRowModel:()=>(!e._getGroupedRowModel&&e.options.getGroupedRowModel&&(e._getGroupedRowModel=e.options.getGroupedRowModel(e)),e.options.manualGrouping||!e._getGroupedRowModel?e.getPreGroupedRowModel():e._getGroupedRowModel())}),createRow:e=>({getIsGrouped:()=>!!e.groupingColumnId,_groupingValuesCache:{}}),createCell:(e,t,n,r)=>({getIsGrouped:()=>t.getIsGrouped()&&t.id===n.groupingColumnId,getIsPlaceholder:()=>!e.getIsGrouped()&&t.getIsGrouped(),getIsAggregated:()=>{var i;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((i=n.subRows)!=null&&i.length)}})};function $l(e,t,n){if(!(t!=null&&t.length)||!n)return e;const r=e.filter(l=>!t.includes(l.id));return n==="remove"?r:[...t.map(l=>e.find(s=>s.id===l)).filter(Boolean),...r]}const Pl={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:se("columnOrder",e)}),createTable:e=>({setColumnOrder:t=>e.options.onColumnOrderChange==null?void 0:e.options.onColumnOrderChange(t),resetColumnOrder:t=>{var n;e.setColumnOrder(t?[]:(n=e.initialState.columnOrder)!=null?n:[])},_getOrderColumnsFn:F(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,r)=>i=>{let l=[];if(!(t!=null&&t.length))l=i;else{const s=[...t],u=[...i];for(;u.length&&s.length;){const d=s.shift(),p=u.findIndex(c=>c.id===d);p>-1&&l.push(u.splice(p,1)[0])}l=[...l,...u]}return $l(l,n,r)},{key:process.env.NODE_ENV==="development"&&"getOrderColumnsFn"})})},Jt=0,Kt=10,Zt=()=>({pageIndex:Jt,pageSize:Kt}),kl={getInitialState:e=>({...e,pagination:{...Zt(),...e==null?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:se("pagination",e)}),createTable:e=>{let t=!1,n=!1;return{_autoResetPageIndex:()=>{var r,i;if(!t){e._queue(()=>{t=!0});return}if((r=(i=e.options.autoResetAll)!=null?i:e.options.autoResetPageIndex)!=null?r:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},setPagination:r=>{const i=l=>Ve(r,l);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(i)},resetPagination:r=>{var i;e.setPagination(r?Zt():(i=e.initialState.pagination)!=null?i:Zt())},setPageIndex:r=>{e.setPagination(i=>{let l=Ve(r,i.pageIndex);const s=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return l=Math.min(Math.max(0,l),s),{...i,pageIndex:l}})},resetPageIndex:r=>{var i,l,s;e.setPageIndex(r?Jt:(i=(l=e.initialState)==null||(s=l.pagination)==null?void 0:s.pageIndex)!=null?i:Jt)},resetPageSize:r=>{var i,l,s;e.setPageSize(r?Kt:(i=(l=e.initialState)==null||(s=l.pagination)==null?void 0:s.pageSize)!=null?i:Kt)},setPageSize:r=>{e.setPagination(i=>{const l=Math.max(1,Ve(r,i.pageSize)),s=i.pageSize*i.pageIndex,u=Math.floor(s/l);return{...i,pageIndex:u,pageSize:l}})},setPageCount:r=>e.setPagination(i=>{var l;let s=Ve(r,(l=e.options.pageCount)!=null?l:-1);return typeof s=="number"&&(s=Math.max(-1,s)),{...i,pageCount:s}}),getPageOptions:F(()=>[e.getPageCount()],r=>{let i=[];return r&&r>0&&(i=[...new Array(r)].fill(null).map((l,s)=>s)),i},{key:process.env.NODE_ENV==="development"&&"getPageOptions",debug:()=>{var r;return(r=e.options.debugAll)!=null?r:e.options.debugTable}}),getCanPreviousPage:()=>e.getState().pagination.pageIndex>0,getCanNextPage:()=>{const{pageIndex:r}=e.getState().pagination,i=e.getPageCount();return i===-1?!0:i===0?!1:r<i-1},previousPage:()=>e.setPageIndex(r=>r-1),nextPage:()=>e.setPageIndex(r=>r+1),getPrePaginationRowModel:()=>e.getExpandedRowModel(),getPaginationRowModel:()=>(!e._getPaginationRowModel&&e.options.getPaginationRowModel&&(e._getPaginationRowModel=e.options.getPaginationRowModel(e)),e.options.manualPagination||!e._getPaginationRowModel?e.getPrePaginationRowModel():e._getPaginationRowModel()),getPageCount:()=>{var r;return(r=e.options.pageCount)!=null?r:Math.ceil(e.getPrePaginationRowModel().rows.length/e.getState().pagination.pageSize)}}}},en=()=>({left:[],right:[]}),Ol={getInitialState:e=>({columnPinning:en(),...e}),getDefaultOptions:e=>({onColumnPinningChange:se("columnPinning",e)}),createColumn:(e,t)=>({pin:n=>{const r=e.getLeafColumns().map(i=>i.id).filter(Boolean);t.setColumnPinning(i=>{var l,s;if(n==="right"){var u,d;return{left:((u=i==null?void 0:i.left)!=null?u:[]).filter(f=>!(r!=null&&r.includes(f))),right:[...((d=i==null?void 0:i.right)!=null?d:[]).filter(f=>!(r!=null&&r.includes(f))),...r]}}if(n==="left"){var p,c;return{left:[...((p=i==null?void 0:i.left)!=null?p:[]).filter(f=>!(r!=null&&r.includes(f))),...r],right:((c=i==null?void 0:i.right)!=null?c:[]).filter(f=>!(r!=null&&r.includes(f)))}}return{left:((l=i==null?void 0:i.left)!=null?l:[]).filter(f=>!(r!=null&&r.includes(f))),right:((s=i==null?void 0:i.right)!=null?s:[]).filter(f=>!(r!=null&&r.includes(f)))}})},getCanPin:()=>e.getLeafColumns().some(r=>{var i,l;return((i=r.columnDef.enablePinning)!=null?i:!0)&&((l=t.options.enablePinning)!=null?l:!0)}),getIsPinned:()=>{const n=e.getLeafColumns().map(u=>u.id),{left:r,right:i}=t.getState().columnPinning,l=n.some(u=>r==null?void 0:r.includes(u)),s=n.some(u=>i==null?void 0:i.includes(u));return l?"left":s?"right":!1},getPinnedIndex:()=>{var n,r,i;const l=e.getIsPinned();return l?(n=(r=t.getState().columnPinning)==null||(i=r[l])==null?void 0:i.indexOf(e.id))!=null?n:-1:0}}),createRow:(e,t)=>({getCenterVisibleCells:F(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,r,i)=>{const l=[...r!=null?r:[],...i!=null?i:[]];return n.filter(s=>!l.includes(s.column.id))},{key:process.env.NODE_ENV==="production"&&"row.getCenterVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}}),getLeftVisibleCells:F(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,,],(n,r)=>(r!=null?r:[]).map(l=>n.find(s=>s.column.id===l)).filter(Boolean).map(l=>({...l,position:"left"})),{key:process.env.NODE_ENV==="production"&&"row.getLeftVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}}),getRightVisibleCells:F(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,r)=>(r!=null?r:[]).map(l=>n.find(s=>s.column.id===l)).filter(Boolean).map(l=>({...l,position:"right"})),{key:process.env.NODE_ENV==="production"&&"row.getRightVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}})}),createTable:e=>({setColumnPinning:t=>e.options.onColumnPinningChange==null?void 0:e.options.onColumnPinningChange(t),resetColumnPinning:t=>{var n,r;return e.setColumnPinning(t?en():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:en())},getIsSomeColumnsPinned:t=>{var n;const r=e.getState().columnPinning;if(!t){var i,l;return Boolean(((i=r.left)==null?void 0:i.length)||((l=r.right)==null?void 0:l.length))}return Boolean((n=r[t])==null?void 0:n.length)},getLeftLeafColumns:F(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n!=null?n:[]).map(r=>t.find(i=>i.id===r)).filter(Boolean),{key:process.env.NODE_ENV==="development"&&"getLeftLeafColumns",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugColumns}}),getRightLeafColumns:F(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n!=null?n:[]).map(r=>t.find(i=>i.id===r)).filter(Boolean),{key:process.env.NODE_ENV==="development"&&"getRightLeafColumns",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugColumns}}),getCenterLeafColumns:F(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r)=>{const i=[...n!=null?n:[],...r!=null?r:[]];return t.filter(l=>!i.includes(l.id))},{key:process.env.NODE_ENV==="development"&&"getCenterLeafColumns",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugColumns}})})},zl={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:se("rowSelection",e),enableRowSelection:!0,enableMultiRowSelection:!0,enableSubRowSelection:!0}),createTable:e=>({setRowSelection:t=>e.options.onRowSelectionChange==null?void 0:e.options.onRowSelectionChange(t),resetRowSelection:t=>{var n;return e.setRowSelection(t?{}:(n=e.initialState.rowSelection)!=null?n:{})},toggleAllRowsSelected:t=>{e.setRowSelection(n=>{t=typeof t<"u"?t:!e.getIsAllRowsSelected();const r={...n},i=e.getPreGroupedRowModel().flatRows;return t?i.forEach(l=>{!l.getCanSelect()||(r[l.id]=!0)}):i.forEach(l=>{delete r[l.id]}),r})},toggleAllPageRowsSelected:t=>e.setRowSelection(n=>{const r=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),i={...n};return e.getRowModel().rows.forEach(l=>{tn(i,l.id,r,e)}),i}),getPreSelectedRowModel:()=>e.getCoreRowModel(),getSelectedRowModel:F(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?nn(e,n):{rows:[],flatRows:[],rowsById:{}},{key:process.env.NODE_ENV==="development"&&"getSelectedRowModel",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugTable}}),getFilteredSelectedRowModel:F(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?nn(e,n):{rows:[],flatRows:[],rowsById:{}},{key:process.env.NODE_ENV==="production"&&"getFilteredSelectedRowModel",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugTable}}),getGroupedSelectedRowModel:F(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?nn(e,n):{rows:[],flatRows:[],rowsById:{}},{key:process.env.NODE_ENV==="production"&&"getGroupedSelectedRowModel",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugTable}}),getIsAllRowsSelected:()=>{const t=e.getFilteredRowModel().flatRows,{rowSelection:n}=e.getState();let r=Boolean(t.length&&Object.keys(n).length);return r&&t.some(i=>i.getCanSelect()&&!n[i.id])&&(r=!1),r},getIsAllPageRowsSelected:()=>{const t=e.getPaginationRowModel().flatRows,{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some(i=>!n[i.id])&&(r=!1),r},getIsSomeRowsSelected:()=>{var t;const n=Object.keys((t=e.getState().rowSelection)!=null?t:{}).length;return n>0&&n<e.getFilteredRowModel().flatRows.length},getIsSomePageRowsSelected:()=>{const t=e.getPaginationRowModel().flatRows;return e.getIsAllPageRowsSelected()?!1:t.some(n=>n.getIsSelected()||n.getIsSomeSelected())},getToggleAllRowsSelectedHandler:()=>t=>{e.toggleAllRowsSelected(t.target.checked)},getToggleAllPageRowsSelectedHandler:()=>t=>{e.toggleAllPageRowsSelected(t.target.checked)}}),createRow:(e,t)=>({toggleSelected:n=>{const r=e.getIsSelected();t.setRowSelection(i=>{if(n=typeof n<"u"?n:!r,r===n)return i;const l={...i};return tn(l,e.id,n,t),l})},getIsSelected:()=>{const{rowSelection:n}=t.getState();return rn(e,n)},getIsSomeSelected:()=>{const{rowSelection:n}=t.getState();return jr(e,n)==="some"},getIsAllSubRowsSelected:()=>{const{rowSelection:n}=t.getState();return jr(e,n)==="all"},getCanSelect:()=>{var n;return typeof t.options.enableRowSelection=="function"?t.options.enableRowSelection(e):(n=t.options.enableRowSelection)!=null?n:!0},getCanSelectSubRows:()=>{var n;return typeof t.options.enableSubRowSelection=="function"?t.options.enableSubRowSelection(e):(n=t.options.enableSubRowSelection)!=null?n:!0},getCanMultiSelect:()=>{var n;return typeof t.options.enableMultiRowSelection=="function"?t.options.enableMultiRowSelection(e):(n=t.options.enableMultiRowSelection)!=null?n:!0},getToggleSelectedHandler:()=>{const n=e.getCanSelect();return r=>{var i;!n||e.toggleSelected((i=r.target)==null?void 0:i.checked)}}})},tn=(e,t,n,r)=>{var i;const l=r.getRow(t);n?(l.getCanMultiSelect()||Object.keys(e).forEach(s=>delete e[s]),l.getCanSelect()&&(e[t]=!0)):delete e[t],(i=l.subRows)!=null&&i.length&&l.getCanSelectSubRows()&&l.subRows.forEach(s=>tn(e,s.id,n,r))};function nn(e,t){const n=e.getState().rowSelection,r=[],i={},l=function(s,u){return s.map(d=>{var p;const c=rn(d,n);if(c&&(r.push(d),i[d.id]=d),(p=d.subRows)!=null&&p.length&&(d={...d,subRows:l(d.subRows)}),c)return d}).filter(Boolean)};return{rows:l(t.rows),flatRows:r,rowsById:i}}function rn(e,t){var n;return(n=t[e.id])!=null?n:!1}function jr(e,t,n){if(e.subRows&&e.subRows.length){let r=!0,i=!1;return e.subRows.forEach(l=>{i&&!r||(rn(l,t)?i=!0:r=!1)}),r?"all":i?"some":!1}return!1}const on=/([0-9]+)/gm,Gl=(e,t,n)=>Wr(Ee(e.getValue(n)).toLowerCase(),Ee(t.getValue(n)).toLowerCase()),Ll=(e,t,n)=>Wr(Ee(e.getValue(n)),Ee(t.getValue(n))),Nl=(e,t,n)=>an(Ee(e.getValue(n)).toLowerCase(),Ee(t.getValue(n)).toLowerCase()),ql=(e,t,n)=>an(Ee(e.getValue(n)),Ee(t.getValue(n))),Bl=(e,t,n)=>{const r=e.getValue(n),i=t.getValue(n);return r>i?1:r<i?-1:0},jl=(e,t,n)=>an(e.getValue(n),t.getValue(n));function an(e,t){return e===t?0:e>t?1:-1}function Ee(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function Wr(e,t){const n=e.split(on).filter(Boolean),r=t.split(on).filter(Boolean);for(;n.length&&r.length;){const i=n.shift(),l=r.shift(),s=parseInt(i,10),u=parseInt(l,10),d=[s,u].sort();if(isNaN(d[0])){if(i>l)return 1;if(l>i)return-1;continue}if(isNaN(d[1]))return isNaN(s)?-1:1;if(s>u)return 1;if(u>s)return-1}return n.length-r.length}const Ye={alphanumeric:Gl,alphanumericCaseSensitive:Ll,text:Nl,textCaseSensitive:ql,datetime:Bl,basic:jl},Ur=[Ml,{getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:se("columnVisibility",e)}),createColumn:(e,t)=>({toggleVisibility:n=>{e.getCanHide()&&t.setColumnVisibility(r=>({...r,[e.id]:n!=null?n:!e.getIsVisible()}))},getIsVisible:()=>{var n,r;return(n=(r=t.getState().columnVisibility)==null?void 0:r[e.id])!=null?n:!0},getCanHide:()=>{var n,r;return((n=e.columnDef.enableHiding)!=null?n:!0)&&((r=t.options.enableHiding)!=null?r:!0)},getToggleVisibilityHandler:()=>n=>{e.toggleVisibility==null||e.toggleVisibility(n.target.checked)}}),createRow:(e,t)=>({_getAllVisibleCells:F(()=>[e.getAllCells(),t.getState().columnVisibility],n=>n.filter(r=>r.column.getIsVisible()),{key:process.env.NODE_ENV==="production"&&"row._getAllVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}}),getVisibleCells:F(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,r,i)=>[...n,...r,...i],{key:process.env.NODE_ENV==="development"&&"row.getVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}})}),createTable:e=>{const t=(n,r)=>F(()=>[r(),r().filter(i=>i.getIsVisible()).map(i=>i.id).join("_")],i=>i.filter(l=>l.getIsVisible==null?void 0:l.getIsVisible()),{key:n,debug:()=>{var i;return(i=e.options.debugAll)!=null?i:e.options.debugColumns}});return{getVisibleFlatColumns:t("getVisibleFlatColumns",()=>e.getAllFlatColumns()),getVisibleLeafColumns:t("getVisibleLeafColumns",()=>e.getAllLeafColumns()),getLeftVisibleLeafColumns:t("getLeftVisibleLeafColumns",()=>e.getLeftLeafColumns()),getRightVisibleLeafColumns:t("getRightVisibleLeafColumns",()=>e.getRightLeafColumns()),getCenterVisibleLeafColumns:t("getCenterVisibleLeafColumns",()=>e.getCenterLeafColumns()),setColumnVisibility:n=>e.options.onColumnVisibilityChange==null?void 0:e.options.onColumnVisibilityChange(n),resetColumnVisibility:n=>{var r;e.setColumnVisibility(n?{}:(r=e.initialState.columnVisibility)!=null?r:{})},toggleAllColumnsVisible:n=>{var r;n=(r=n)!=null?r:!e.getIsAllColumnsVisible(),e.setColumnVisibility(e.getAllLeafColumns().reduce((i,l)=>({...i,[l.id]:n||!(l.getCanHide!=null&&l.getCanHide())}),{}))},getIsAllColumnsVisible:()=>!e.getAllLeafColumns().some(n=>!(n.getIsVisible!=null&&n.getIsVisible())),getIsSomeColumnsVisible:()=>e.getAllLeafColumns().some(n=>n.getIsVisible==null?void 0:n.getIsVisible()),getToggleAllColumnsVisibilityHandler:()=>n=>{var r;e.toggleAllColumnsVisible((r=n.target)==null?void 0:r.checked)}}}},Pl,Ol,Tl,{getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto"}),getDefaultOptions:e=>({onSortingChange:se("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>({getAutoSortingFn:()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const i of n){const l=i==null?void 0:i.getValue(e.id);if(Object.prototype.toString.call(l)==="[object Date]")return Ye.datetime;if(typeof l=="string"&&(r=!0,l.split(on).length>1))return Ye.alphanumeric}return r?Ye.text:Ye.basic},getAutoSortDir:()=>{const n=t.getFilteredRowModel().flatRows[0];return typeof(n==null?void 0:n.getValue(e.id))=="string"?"asc":"desc"},getSortingFn:()=>{var n,r;if(!e)throw new Error;return ut(e.columnDef.sortingFn)?e.columnDef.sortingFn:e.columnDef.sortingFn==="auto"?e.getAutoSortingFn():(n=(r=t.options.sortingFns)==null?void 0:r[e.columnDef.sortingFn])!=null?n:Ye[e.columnDef.sortingFn]},toggleSorting:(n,r)=>{const i=e.getNextSortingOrder(),l=typeof n<"u"&&n!==null;t.setSorting(s=>{const u=s==null?void 0:s.find(v=>v.id===e.id),d=s==null?void 0:s.findIndex(v=>v.id===e.id);let p=[],c,f=l?n:i==="desc";if(s!=null&&s.length&&e.getCanMultiSort()&&r?u?c="toggle":c="add":s!=null&&s.length&&d!==s.length-1?c="replace":u?c="toggle":c="replace",c==="toggle"&&(l||i||(c="remove")),c==="add"){var m;p=[...s,{id:e.id,desc:f}],p.splice(0,p.length-((m=t.options.maxMultiSortColCount)!=null?m:Number.MAX_SAFE_INTEGER))}else c==="toggle"?p=s.map(v=>v.id===e.id?{...v,desc:f}:v):c==="remove"?p=s.filter(v=>v.id!==e.id):p=[{id:e.id,desc:f}];return p})},getFirstSortDir:()=>{var n,r;return((n=(r=e.columnDef.sortDescFirst)!=null?r:t.options.sortDescFirst)!=null?n:e.getAutoSortDir()==="desc")?"desc":"asc"},getNextSortingOrder:n=>{var r,i;const l=e.getFirstSortDir(),s=e.getIsSorted();return s?s!==l&&((r=t.options.enableSortingRemoval)!=null?r:!0)&&(n&&(i=t.options.enableMultiRemove)!=null?i:!0)?!1:s==="desc"?"asc":"desc":l},getCanSort:()=>{var n,r;return((n=e.columnDef.enableSorting)!=null?n:!0)&&((r=t.options.enableSorting)!=null?r:!0)&&!!e.accessorFn},getCanMultiSort:()=>{var n,r;return(n=(r=e.columnDef.enableMultiSort)!=null?r:t.options.enableMultiSort)!=null?n:!!e.accessorFn},getIsSorted:()=>{var n;const r=(n=t.getState().sorting)==null?void 0:n.find(i=>i.id===e.id);return r?r.desc?"desc":"asc":!1},getSortIndex:()=>{var n,r;return(n=(r=t.getState().sorting)==null?void 0:r.findIndex(i=>i.id===e.id))!=null?n:-1},clearSorting:()=>{t.setSorting(n=>n!=null&&n.length?n.filter(r=>r.id!==e.id):[])},getToggleSortingHandler:()=>{const n=e.getCanSort();return r=>{!n||(r.persist==null||r.persist(),e.toggleSorting==null||e.toggleSorting(void 0,e.getCanMultiSort()?t.options.isMultiSortEvent==null?void 0:t.options.isMultiSortEvent(r):!1))}}}),createTable:e=>({setSorting:t=>e.options.onSortingChange==null?void 0:e.options.onSortingChange(t),resetSorting:t=>{var n,r;e.setSorting(t?[]:(n=(r=e.initialState)==null?void 0:r.sorting)!=null?n:[])},getPreSortedRowModel:()=>e.getGroupedRowModel(),getSortedRowModel:()=>(!e._getSortedRowModel&&e.options.getSortedRowModel&&(e._getSortedRowModel=e.options.getSortedRowModel(e)),e.options.manualSorting||!e._getSortedRowModel?e.getPreSortedRowModel():e._getSortedRowModel())})},Fl,Rl,kl,zl,Vl];function Wl(e){var t;(e.debugAll||e.debugTable)&&console.info("Creating Table Instance...");let n={_features:Ur};const r=n._features.reduce((c,f)=>Object.assign(c,f.getDefaultOptions==null?void 0:f.getDefaultOptions(n)),{}),i=c=>n.options.mergeOptions?n.options.mergeOptions(r,c):{...r,...c};let s={...{},...(t=e.initialState)!=null?t:{}};n._features.forEach(c=>{var f;s=(f=c.getInitialState==null?void 0:c.getInitialState(s))!=null?f:s});const u=[];let d=!1;const p={_features:Ur,options:{...r,...e},initialState:s,_queue:c=>{u.push(c),d||(d=!0,Promise.resolve().then(()=>{for(;u.length;)u.shift()();d=!1}).catch(f=>setTimeout(()=>{throw f})))},reset:()=>{n.setState(n.initialState)},setOptions:c=>{const f=Ve(c,n.options);n.options=i(f)},getState:()=>n.options.state,setState:c=>{n.options.onStateChange==null||n.options.onStateChange(c)},_getRowId:(c,f,m)=>{var v;return(v=n.options.getRowId==null?void 0:n.options.getRowId(c,f,m))!=null?v:""+(m?[m.id,f].join("."):f)},getCoreRowModel:()=>(n._getCoreRowModel||(n._getCoreRowModel=n.options.getCoreRowModel(n)),n._getCoreRowModel()),getRowModel:()=>n.getPaginationRowModel(),getRow:c=>{const f=n.getRowModel().rowsById[c];if(!f)throw process.env.NODE_ENV!=="production"?new Error("getRow expected an ID, but got "+c):new Error;return f},_getDefaultColumnDef:F(()=>[n.options.defaultColumn],c=>{var f;return c=(f=c)!=null?f:{},{header:m=>{const v=m.header.column.columnDef;return v.accessorKey?v.accessorKey:v.accessorFn?v.id:null},cell:m=>{var v,b;return(v=(b=m.renderValue())==null||b.toString==null?void 0:b.toString())!=null?v:null},...n._features.reduce((m,v)=>Object.assign(m,v.getDefaultColumnDef==null?void 0:v.getDefaultColumnDef()),{}),...c}},{debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns},key:process.env.NODE_ENV==="development"&&"getDefaultColumnDef"}),_getColumnDefs:()=>n.options.columns,getAllColumns:F(()=>[n._getColumnDefs()],c=>{const f=function(m,v,b){return b===void 0&&(b=0),m.map(I=>{const A=Al(n,I,b,v),T=I;return A.columns=T.columns?f(T.columns,A,b+1):[],A})};return f(c)},{key:process.env.NODE_ENV==="development"&&"getAllColumns",debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns}}),getAllFlatColumns:F(()=>[n.getAllColumns()],c=>c.flatMap(f=>f.getFlatColumns()),{key:process.env.NODE_ENV==="development"&&"getAllFlatColumns",debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns}}),_getAllFlatColumnsById:F(()=>[n.getAllFlatColumns()],c=>c.reduce((f,m)=>(f[m.id]=m,f),{}),{key:process.env.NODE_ENV==="development"&&"getAllFlatColumnsById",debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns}}),getAllLeafColumns:F(()=>[n.getAllColumns(),n._getOrderColumnsFn()],(c,f)=>{let m=c.flatMap(v=>v.getLeafColumns());return f(m)},{key:process.env.NODE_ENV==="development"&&"getAllLeafColumns",debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns}}),getColumn:c=>{const f=n._getAllFlatColumnsById()[c];if(!f)throw process.env.NODE_ENV!=="production"&&console.warn("[Table] Column with id "+c+" does not exist."),new Error;return f}};return Object.assign(n,p),n._features.forEach(c=>Object.assign(n,c.createTable==null?void 0:c.createTable(n))),n}function Ul(e,t,n,r){const i=()=>{var s;return(s=l.getValue())!=null?s:e.options.renderFallbackValue},l={id:t.id+"_"+n.id,row:t,column:n,getValue:()=>t.getValue(r),renderValue:i,getContext:F(()=>[e,n,t,l],(s,u,d,p)=>({table:s,column:u,row:d,cell:p,getValue:p.getValue,renderValue:p.renderValue}),{key:process.env.NODE_ENV==="development"&&"cell.getContext",debug:()=>e.options.debugAll})};return e._features.forEach(s=>{Object.assign(l,s.createCell==null?void 0:s.createCell(l,n,t,e))},{}),l}const Ql=(e,t,n,r,i,l)=>{let s={id:t,index:r,original:n,depth:i,_valuesCache:{},getValue:u=>{if(s._valuesCache.hasOwnProperty(u))return s._valuesCache[u];const d=e.getColumn(u);if(!!d.accessorFn)return s._valuesCache[u]=d.accessorFn(s.original,r),s._valuesCache[u]},renderValue:u=>{var d;return(d=s.getValue(u))!=null?d:e.options.renderFallbackValue},subRows:l!=null?l:[],getLeafRows:()=>Dl(s.subRows,u=>u.subRows),getAllCells:F(()=>[e.getAllLeafColumns()],u=>u.map(d=>Ul(e,s,d,d.id)),{key:process.env.NODE_ENV==="development"&&"row.getAllCells",debug:()=>{var u;return(u=e.options.debugAll)!=null?u:e.options.debugRows}}),_getAllCellsByColumnId:F(()=>[s.getAllCells()],u=>u.reduce((d,p)=>(d[p.column.id]=p,d),{}),{key:process.env.NODE_ENV==="production"&&"row.getAllCellsByColumnId",debug:()=>{var u;return(u=e.options.debugAll)!=null?u:e.options.debugRows}})};for(let u=0;u<e._features.length;u++){const d=e._features[u];Object.assign(s,d==null||d.createRow==null?void 0:d.createRow(s,e))}return s};function Hl(){return{accessor:(e,t)=>typeof e=="function"?{...t,accessorFn:e}:{...t,accessorKey:e},display:e=>e,group:e=>e}}function Yl(){return e=>F(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(i,l,s){l===void 0&&(l=0);const u=[];for(let p=0;p<i.length;p++){const c=Ql(e,e._getRowId(i[p],p,s),i[p],p,l);if(n.flatRows.push(c),n.rowsById[c.id]=c,u.push(c),e.options.getSubRows){var d;c.originalSubRows=e.options.getSubRows(i[p],p),(d=c.originalSubRows)!=null&&d.length&&(c.subRows=r(c.originalSubRows,l+1,c))}}return u};return n.rows=r(t),n},{key:process.env.NODE_ENV==="development"&&"getRowModel",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugTable},onChange:()=>{e._autoResetPageIndex()}})}function Xl(){return e=>F(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const r=e.getState().sorting,i=[],l=r.filter(d=>e.getColumn(d.id).getCanSort()),s={};l.forEach(d=>{const p=e.getColumn(d.id);s[d.id]={sortUndefined:p.columnDef.sortUndefined,invertSorting:p.columnDef.invertSorting,sortingFn:p.getSortingFn()}});const u=d=>{const p=d.slice();return p.sort((c,f)=>{for(let v=0;v<l.length;v+=1){var m;const b=l[v],I=s[b.id],A=(m=b==null?void 0:b.desc)!=null?m:!1;if(I.sortUndefined){const k=c.getValue(b.id),B=f.getValue(b.id),N=typeof k>"u",te=typeof B>"u";if(N||te)return N&&te?0:N?I.sortUndefined:-I.sortUndefined}let T=I.sortingFn(c,f,b.id);if(T!==0)return A&&(T*=-1),I.invertSorting&&(T*=-1),T}return c.index-f.index}),p.forEach(c=>{i.push(c),!(!c.subRows||c.subRows.length<=1)&&(c.subRows=u(c.subRows))}),p};return{rows:u(n.rows),flatRows:i,rowsById:n.rowsById}},{key:process.env.NODE_ENV==="development"&&"getSortedRowModel",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugTable},onChange:()=>{e._autoResetPageIndex()}})}function Qr(e,t){return e?Jl(e)?o(e,{...t}):e:null}function Jl(e){return Kl(e)||typeof e=="function"||Zl(e)}function Kl(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function Zl(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function es(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=Pn.useState(()=>({current:Wl(t)})),[r,i]=Pn.useState(()=>n.current.initialState);return n.current.setOptions(l=>({...l,...e,state:{...r,...e.state},onStateChange:s=>{i(s),e.onStateChange==null||e.onStateChange(s)}})),n.current}const ts=({vizManager:e,instance:t})=>j.useCreation(()=>new ii(t,e.resolveComponent(t.type),yn),[t,e]),ns=(e,t)=>{const[n,r]=w.useState([]);return w.useEffect(()=>e.watchTriggerSnapshotList(i=>r(i.filter(l=>l.schemaRef===t))),[]),n};function Hr(e,t,n){return Math.min(Math.max(e,t),n)}class rs{constructor(t){this.steps=t;const n=[],r=new Set;for(const i of t)r.has(i.to)||(n.push(i),r.add(i.to));if(n.sort((i,l)=>i.from-l.from),n.length<2)throw new Error("MultiStepValueMapper requires at least 2 steps");this.steps=n}getLinearFunction(t,n){const r=(n.to-t.to)/(n.from-t.from),i=t.to-r*t.from;return l=>r*l+i}getStepFunctionForValue(t){let n=_.findLastIndex(this.steps,r=>r.from<=t);return n=Hr(n,0,this.steps.length-2),this.getLinearFunction(this.steps[n],this.steps[n+1])}mapValue(t){return Hr(this.getStepFunctionForValue(t)(t),0,100)}}function is(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,l;for(l=0;l<r.length;l++)i=r[l],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function Yr(e,t){if(e==null)return{};var n=is(e,t),r,i;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(i=0;i<l.length;i++)r=l[i],!(t.indexOf(r)>=0)&&(!Object.prototype.propertyIsEnumerable.call(e,r)||(n[r]=e[r]))}return n}var os=["size","color","stroke"];function as(e){var t=e.size,n=t===void 0?24:t,r=e.color,i=r===void 0?"currentColor":r,l=e.stroke,s=l===void 0?2:l,u=Yr(e,os);return g("svg",{xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-arrow-down",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:s,stroke:i,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",...u,children:[o("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),o("line",{x1:12,y1:5,x2:12,y2:19}),o("line",{x1:18,y1:13,x2:12,y2:19}),o("line",{x1:6,y1:13,x2:12,y2:19})]})}var ls=["size","color","stroke"];function ss(e){var t=e.size,n=t===void 0?24:t,r=e.color,i=r===void 0?"currentColor":r,l=e.stroke,s=l===void 0?2:l,u=Yr(e,ls);return g("svg",{xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-arrow-up",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:s,stroke:i,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",...u,children:[o("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),o("line",{x1:12,y1:5,x2:12,y2:19}),o("line",{x1:18,y1:11,x2:12,y2:5}),o("line",{x1:6,y1:11,x2:12,y2:5})]})}const us=({header:e,cx:t})=>g(a.Text,{className:t("table-head-cell",{"table-head-cell--sortable":e.column.getCanSort()}),onClick:e.column.getToggleSortingHandler(),children:[e.isPlaceholder?null:Qr(e.column.columnDef.header,e.getContext()),o(ds,{direction:e.column.getIsSorted()})]}),ds=({direction:e})=>{switch(e){case"asc":return o(ss,{size:16});case"desc":return o(as,{size:"1em"});default:return null}},ln={id:"builtin:table:click-cell-content",displayName:"Click Cell Content",nameRender:hs,configRender:ps,payload:[{name:"row_index",description:"Index of the row that the cell belongs to",valueType:"number"},{name:"col_index",description:"Index of the column that the cell belongs to",valueType:"number"},{name:"row_data",description:"Data of the row that the cell belongs to",valueType:"object"}]},cs={column:""};function Xr(e){const{value:t}=L(e.instanceData,"config");return t?t.columns.map((n,r)=>({label:n.label,value:r.toString()})):[]}function gs(e){return _.isEmpty(e)?[]:Object.keys(e[0]).map(t=>({label:t,value:t}))}function ps(e){const t=Xr(e.instance),n=gs(e.sampleData),r=t.length>0?t:n,{value:i,set:l}=L(e.trigger.triggerData,"config"),{column:s}=_.defaults({},i,cs),u=d=>{isNaN(+d)?l({column:d}):l({column:+d})};return o(a.Select,{clearable:!1,data:r,label:"Choose a column",value:s.toString(),onChange:u})}function fs(e,t){return e?_.isNumber(e.column)?`Click cell of ${t[e.column].label}`:`Click cell of ${e.column}`:"Click cell content (click to config)"}function hs(e){const t=Xr(e.instance),{value:n}=L(e.trigger.triggerData,"config");return o(a.Text,{children:fs(n,t)})}const ms=a.createStyles(e=>({root:{overflow:"auto","& .table-head-cell":{display:"flex",flexFlow:"row nowrap",alignItems:"center",whiteSpace:"nowrap","&.table-head-cell--sortable":{cursor:"pointer",userSelect:"none"}},"&.table-highlight-on-hover tr":{transition:"background-color 0.2s","&:hover":{backgroundColor:e.colorScheme==="dark"?e.colors.dark[5]:e.colors.gray[0]}}},thead:{background:e.colorScheme==="dark"?e.colors.dark[7]:e.white,position:"sticky",top:0}})),vs=a.createStyles((e,t)=>({content:{display:"flex",alignItems:"center",justifyContent:"flex-start",".table-cell-text":{whiteSpace:"nowrap",marginLeft:e.spacing.xs,cursor:t.clickable?"pointer":"default",textDecoration:t.clickable?"underline":"none"}}}));function ys(e){return e?Le.default(e).oklch()[0]>.7?"black":"white":"inherit"}function bs(e){const t=e.tableCellContext.bgColor;return{backgroundColor:t,color:ys(t)}}function pt(e){const t=e.tableCellContext.isClickable(),n=vs({clickable:t});return o("div",{className:n.classes.content,style:{...bs(e)},children:o(a.Text,{className:"table-cell-text",onClick:e.tableCellContext.getClickHandler(),children:o("span",{children:e.children})})})}function Cs(e){return o(pt,{...e,children:e.value})}function xs(e){return o(pt,{...e,children:e.value})}function Ss(e){const t=ae.default(e.value).format({thousandSeparated:!0});return o(pt,{...e,children:t})}function ws(e){const t=ae.default(e.value).format({output:"percent",mantissa:3});return o(pt,{...e,children:t})}function _s(e){switch(e.type){case Me.string:return o(Cs,{...e});case Me.eloc:return o(xs,{...e});case Me.number:return o(Ss,{...e});case Me.percentage:return o(ws,{...e})}}const Is=e=>{const t=ts(e),n=ns(t.triggerManager,ln.id),{colorManager:r}=w.useContext(xe);return w.useCallback(i=>new As(e.getColIndex,i,n,t,r),[n,t,e.getColIndex])};function Ds({context:e,instance:t}){var mt,Je,vt;const n=(mt=e.data)!=null?mt:[],{height:r,width:i}=e.viewport,{value:l=st}=L(e.instanceData,"config"),{use_raw_columns:s,columns:u,...d}=l,{classes:p,cx:c}=ms(),f=C.default.useMemo(()=>s?Object.keys(n[0]).map(re=>({label:re,value_field:re,value_type:Me.string})):u,[s,u,n]),m=Is({getColIndex:w.useCallback(re=>f.indexOf(re.column.columnDef.meta),[f]),vizManager:e.vizManager,instance:t}),v=w.useMemo(()=>{const re=Hl(),fe=f.map(oe=>re.accessor(oe.value_field,{cell:Te=>o(_s,{tableCellContext:m(Te.cell),value:Te.getValue(),type:oe.value_type}),header:oe.label,enableSorting:!0,meta:oe}));return[re.display({id:"#index",cell:oe=>oe.row.index+1,header:"#",size:10*(n.length.toString().length+1)}),...fe]},[f,m]),[b,I]=w.useState([]),A=es({data:n,state:{sorting:b},onSortingChange:I,columns:v,getCoreRowModel:Yl(),getSortedRowModel:Xl()}),{rows:T}=A.getRowModel(),k=C.default.useRef(null),B=eo.useVirtual({parentRef:k,size:T.length,estimateSize:w.useCallback(()=>28,[]),overscan:20}),{virtualItems:N,totalSize:te}=B,ye=N.length>0&&((Je=N==null?void 0:N[0])==null?void 0:Je.start)||0,Re=N.length>0?te-(((vt=N==null?void 0:N[N.length-1])==null?void 0:vt.end)||0):0;return o("div",{ref:k,style:{height:r,width:i},className:c(p.root,{"table-highlight-on-hover":l.highlightOnHover}),children:g(a.Table,{sx:{maxHeight:r},...d,striped:l.striped,children:[o("thead",{className:p.thead,children:A.getHeaderGroups().map(re=>o("tr",{children:re.headers.map(fe=>o("th",{style:{width:fe.getSize()},children:o(us,{header:fe,cx:c})},fe.id))},re.id))}),g("tbody",{children:[ye>0&&o("tr",{children:o("td",{style:{height:`${ye}px`}})}),N.map(re=>{const fe=T[re.index];return o("tr",{children:fe.getVisibleCells().map(ie=>o("td",{children:Qr(ie.column.columnDef.cell,ie.getContext())},ie.id))},fe.id)}),Re>0&&o("tr",{children:o("td",{style:{height:`${Re}px`}})})]})]})})}class As{constructor(t,n,r,i,l){this.getColIndex=t,this.cell=n,this.triggers=r,this.interactionManager=i,this.colorManager=l}getClickHandler(){const t=this.getRelatedTrigger();if(t.length!==0)return()=>{const n={row_data:this.cell.row.original,row_index:this.cell.row.index,col_index:this.getColIndex(this.cell)};for(const r of t)this.interactionManager.runInteraction(r.id,n)}}getRelatedTrigger(){return this.triggers.filter(n=>n.schemaRef===ln.id).filter(n=>{const r=this.getColIndex(this.cell),i=_.get(this.cell.column.columnDef.meta,"value_field"),l=_.get(n.config,"column");return l==r||l==i})}isClickable(){return this.getRelatedTrigger().length>0}get columnConf(){return this.cell.column.columnDef.meta}get bgColor(){const t=this.columnConf.cellBackgroundColor;if(!t||t==="none")return;if(_.isString(t))return t;const n=+this.cell.getValue();if(isFinite(n)){const r=this.colorManager.decodeInterpolation(t.interpolation),l=new rs(t.steps).mapValue(n);return r==null?void 0:r.getColor(l)}}}const Jr=a.createStyles(()=>({palette:{display:"flex",flexFlow:"row nowrap"},paletteItem:{".palette-value":{height:24,overflow:"visible",width:36},".palette-item":{width:"36px",height:36*.618,cursor:"pointer",transition:"transform 100ms ease-in-out","&:hover":{boxShadow:"0 0 0 2px var(--shadow-color)",borderRadius:2,transform:"scale(1.2)"}}}})),Ms=[{from:0,to:0},{from:100,to:100}];class Vs{constructor(){$(this,"steps",new Map);$(this,"interpolation");$(this,"onChange");K.makeAutoObservable(this,{steps:K.observable},{deep:!1}),K.reaction(()=>K.toJS(this.steps),()=>{this.notifyStepChange()})}setSteps(t){for(const n of t)this.steps.set(n.to,n.from)}notifyStepChange(){var t;(t=this.onChange)==null||t.call(this,Array.from(this.steps.entries()).map(([n,r])=>({to:n,from:r})).sort((n,r)=>n.to-r.to||n.from-r.from))}fromProps(t){t.steps.length<2?this.setSteps(Ms):this.setSteps(t.steps),this.interpolation=t.interpolation,this.onChange=t.onChange}changeStep(t,n){t==null?this.steps.delete(n):this.steps.set(n,t)}getStepFromValue(t){return this.steps.get(t)}}function Es(e){const{onChange:t,color:n,index:r,value:i}=e,{classes:l}=Jr(),[s,u]=w.useState(i),[d,{setTrue:p,setFalse:c}]=j.useBoolean(!1),f=r%2===1,m=f&&i!=null,v=!f&&i!=null,b=`map ${i} to color ${r}`,I=()=>{u(i),c()},A=()=>{c(),t==null||t(s)},T=ae.default(i).format({average:!0});return g("div",{"data-testid":`palette-item-${r}`,className:l.paletteItem,children:[o(a.Text,{title:b,style:{opacity:m?1:0},color:"dimmed",size:"sm",className:"palette-value--up palette-value",children:T}),g(a.Popover,{width:200,trapFocus:!0,opened:d,onClose:c,children:[o(a.Popover.Target,{children:o("div",{"data-testid":"palette-item-target",className:"palette-item",onClick:p,style:{"--shadow-color":Le.default(n).alpha(.5).hex(),backgroundColor:n}})}),o(a.Popover.Dropdown,{children:g(a.Stack,{children:[o(a.NumberInput,{size:"xs",label:"Map a value to this color",value:s,onChange:u}),g(a.Group,{position:"right",children:[o(a.Button,{variant:"subtle",size:"xs",onClick:I,children:"Cancel"}),o(a.Button,{"data-testid":"palette-item-ok",size:"xs",onClick:A,children:"OK"})]})]})})]}),o(a.Text,{title:b,style:{opacity:v?1:0},color:"dimmed",size:"sm",className:"palette-value--bottom palette-value",children:T})]})}const Rs=E.observer(({model:e})=>{const{classes:t}=Jr(),n=_.range(0,13,1).map(r=>100/12*r).map(r=>[e.interpolation.getColor(r),r]);return o("div",{className:t.palette,children:n.map(([r,i],l)=>o(Es,{index:l,color:r,value:e.getStepFromValue(i),onChange:s=>e.changeStep(s,i)},r))})}),Ts=E.observer(function(t){const n=j.useCreation(()=>new Vs,[]);return w.useEffect(()=>{n.fromProps(t)}),n.interpolation==null?null:o(Rs,{model:n})}),Fs=e=>{const{value:t,onChange:n,colorManager:r}=e,i=r.getColorInterpolations(),[l,s]=w.useState(t),u=r.decodeInterpolation(l.interpolation)||i[0],[d,{setTrue:p,setFalse:c}]=j.useBoolean(),f=i.map(A=>({label:A.displayName,value:r.encodeColor(A),group:A.category}));function m(A){A&&s(T=>({...T,interpolation:A}))}const v=()=>{c(),n==null||n(K.toJS(l))};function b(A){s(T=>({...T,steps:A}))}const I=()=>{c(),s(t)};return g(U,{children:[o(a.Button,{variant:"outline",onClick:p,children:u==null?void 0:u.displayName}),o(a.Modal,{size:508,title:"Setup color interpolation",opened:d,onClose:c,children:d&&g(a.Stack,{"data-testid":"color-interpolation-modal",children:[o(a.Select,{label:"Color style",value:l.interpolation,data:f,onChange:m}),o(Ts,{steps:l.steps,interpolation:u,onChange:b}),g(a.Group,{position:"right",children:[o(a.Button,{onClick:I,variant:"subtle",children:"Cancel"}),o(a.Button,{onClick:v,children:"OK"})]})]})})]})},$s=["static","interpolation","none"],Ps=[{from:0,to:0},{from:100,to:100}];function Kr(e){return e?_.isString(e)?e==="none"?"none":"static":"interpolation":"none"}function ks(e,t){var n;return Kr(t)==="static"?t:(n=e.getStaticColors()[0])==null?void 0:n.value}function Os(e,t){return _.isObject(t)?t:{steps:Ps,interpolation:e.encodeColor(e.getColorInterpolations()[0])}}const zs=e=>{const{colorManager:t}=w.useContext(xe),[n,r]=w.useState(Kr(e.value)),[i,l]=w.useState(ks(t,e.value)),s=j.useLatest(i),[u,d]=w.useState(Os(t,e.value)),p=j.useLatest(u),c=v=>{var b,I,A;r(v||"none"),v==="static"?(b=e.onChange)==null||b.call(e,s.current):v==="none"||!v?(I=e.onChange)==null||I.call(e,"none"):(A=e.onChange)==null||A.call(e,p.current)},f=v=>{var b;l(v),(b=e.onChange)==null||b.call(e,v)},m=v=>{var b;d(v),(b=e.onChange)==null||b.call(e,v)};return g(a.Group,{align:"end",children:[o(a.Select,{label:"Cell background",value:n||"none",onChange:c,data:$s}),n==="static"&&o(De,{value:i,onChange:f}),n==="interpolation"&&o(Fs,{colorManager:t,value:u,onChange:m})]})},Gs=Object.values(Me).map(e=>({label:e,value:e}));function Ls({label:e,value:t,onChange:n,sx:r}){return o(a.Select,{label:e,data:Gs,value:t,onChange:n,sx:r})}function Ns({context:e}){const{value:t,set:n}=L(e.instanceData,"config"),r=It.useForm({initialValues:st});w.useEffect(()=>{const s=_.defaults({},t,r.values,st);t&&r.setValues(s)},[t]);const i=e.data||[],l=()=>r.insertListItem("columns",{label:J.randomId(),value_field:"value",value_type:Me.string});return o(a.Stack,{mt:"md",spacing:"xs",children:g("form",{onSubmit:r.onSubmit(async s=>{await n(s)}),children:[g(a.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[o(a.Text,{children:"Table Config"}),o(a.ActionIcon,{type:"submit","aria-label":"save config",mr:5,variant:"filled",color:"blue",children:o(V.DeviceFloppy,{size:20})})]}),g(a.Stack,{mt:"md",spacing:"xs",p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[o(Q,{label:"ID Field",required:!0,data:i,...r.getInputProps("id_field")}),g(a.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:[o(a.TextInput,{label:"Horizontal Spacing",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...r.getInputProps("horizontalSpacing")}),o(a.TextInput,{label:"Vertical Spacing",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...r.getInputProps("verticalSpacing")})]}),o(a.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:o(a.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...r.getInputProps("fontSize")})}),g(a.Stack,{children:[o(a.Text,{children:"Other"}),g(a.Group,{position:"apart",grow:!0,children:[o(a.Switch,{label:"Striped",...r.getInputProps("striped",{type:"checkbox"})}),o(a.Switch,{label:"Highlight on hover",...r.getInputProps("highlightOnHover",{type:"checkbox"})})]})]})]}),g(a.Stack,{mt:"xs",spacing:"xs",p:"md",mb:"xl",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[o(a.Switch,{label:"Use Original Data Columns",...r.getInputProps("use_raw_columns",{type:"checkbox"})}),!r.values.use_raw_columns&&g(a.Stack,{children:[o(a.Text,{mt:"xl",mb:0,children:"Custom Columns"}),r.values.columns.map((s,u)=>g(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[g(a.Group,{position:"apart",grow:!0,children:[o(a.TextInput,{label:"Label",required:!0,id:`col-label-${u}`,sx:{flex:1},...r.getInputProps(`columns.${u}.label`)}),o(Q,{label:"Value Field",required:!0,data:i,...r.getInputProps(`columns.${u}.value_field`)}),o(Ls,{label:"Value Type",sx:{flex:1},...r.getInputProps(`columns.${u}.value_type`)}),o(zs,{...r.getInputProps(`columns.${u}.cellBackgroundColor`)})]}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>r.removeListItem("columns",u),sx:{position:"absolute",top:15,right:5},children:o(V.Trash,{size:16})})]},u)),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:l,children:"Add a Column"})})]})]}),o(a.Text,{weight:500,mb:"md",children:"Current Configuration:"}),o(Fe.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(r.values,null,2)})]})})}class qs extends ge{constructor(){super(...arguments);$(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const sn={createConfig(){return{version:1,config:_.cloneDeep(st)}},displayName:"Table",migrator:new qs,name:"table",viewRender:Ds,configRender:Ns,triggers:[ln]},un={label_field:"",value_field:""};Z.use([he.SunburstChart,we.CanvasRenderer]);const Bs={tooltip:{show:!0},series:{type:"sunburst",radius:[0,"90%"],emphasis:{focus:"ancestor"}}};function js({context:e}){const{value:t}=L(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{label_field:l,value_field:s}=_.defaults({},t,un),u=w.useMemo(()=>n.map(f=>({name:f[l],value:Number(f[s])})),[n,l,s]),d=w.useMemo(()=>{var f,m;return(m=(f=_.maxBy(u,v=>v.value))==null?void 0:f.value)!=null?m:1},[u]),p=w.useMemo(()=>({series:{label:{formatter:({name:f,value:m})=>m/d<.2?" ":f}}}),[d]),c=_.merge({},Bs,p,{series:{data:u}});return o(_e.default,{echarts:Z,option:c,style:{width:r,height:i}})}function Ws({context:e}){const{value:t,set:n}=L(e.instanceData,"config"),{label_field:r,value_field:i}=_.defaults({},t,un),l=e.data,s=It.useForm({initialValues:{label_field:r,value_field:i}});return w.useEffect(()=>{s.setValues({label_field:r,value_field:i})},[r,i]),o(a.Stack,{mt:"md",spacing:"xs",children:g("form",{onSubmit:s.onSubmit(n),children:[g(a.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[o(a.Text,{children:"Sunburst Config"}),o(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:o(V.DeviceFloppy,{size:20})})]}),g(a.Stack,{mt:"md",spacing:"xs",p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[o(Q,{label:"Label Field",required:!0,data:l,...s.getInputProps("label_field")}),o(Q,{label:"Value Field",required:!0,data:l,...s.getInputProps("value_field")})]})]})})}class Us extends ge{constructor(){super(...arguments);$(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Qs={displayName:"Sunburst",migrator:new Us,name:"sunburst",viewRender:js,configRender:Ws,createConfig:()=>un},dn={label_field:"",value_field:""};Z.use([he.PieChart,we.CanvasRenderer]);const Hs={tooltip:{show:!0},series:{type:"pie",radius:["50%","80%"],label:{position:"outer",alignTo:"edge",formatter:`{name|{b}}
53
+ {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 Ys({context:e}){const{value:t}=L(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{label_field:l,value_field:s}=_.defaults({},t,dn),u=w.useMemo(()=>n.map(c=>({name:c[l],value:Number(c[s])})),[n,l,s]),d=w.useMemo(()=>({series:{labelLayout:function(c){const f=c.labelRect.x<r/2,m=c.labelLinePoints;return _.set(m,[2,0],f?c.labelRect.x:c.labelRect.x+c.labelRect.width),{labelLinePoints:m}}}}),[r]),p=_.merge({},Hs,d,{series:{data:u}});return o(_e.default,{echarts:Z,option:p,style:{width:r,height:i}})}function Xs({context:e}){const{value:t,set:n}=L(e.instanceData,"config"),{label_field:r,value_field:i}=_.defaults({},t,dn),l=e.data,s=It.useForm({initialValues:{label_field:r,value_field:i}});return w.useEffect(()=>{s.setValues({label_field:r,value_field:i})},[r,i]),o(a.Stack,{mt:"md",spacing:"xs",children:g("form",{onSubmit:s.onSubmit(n),children:[g(a.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[o(a.Text,{children:"Pie Config"}),o(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:o(V.DeviceFloppy,{size:20})})]}),g(a.Stack,{mt:"md",spacing:"xs",p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[o(Q,{label:"Label Field",required:!0,data:l,...s.getInputProps("label_field")}),o(Q,{label:"Value Field",required:!0,data:l,...s.getInputProps("value_field")})]})]})})}class Js extends ge{constructor(){super(...arguments);$(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Ks={displayName:"Pie Chart",migrator:new Js,name:"pie",viewRender:Ys,configRender:Xs,createConfig:()=>dn},cn={x_axis_data_key:"",y_axis_data_key:"",z_axis_data_key:"",xAxis3D:{type:"value",name:"X Axis Name"},yAxis3D:{type:"value",name:"Y Axis Name"},zAxis3D:{type:"value",name:"Z Axis Name"}};Z.use([W.GridComponent,W.VisualMapComponent,W.LegendComponent,W.TooltipComponent,we.CanvasRenderer]);function Zs({context:e}){const{value:t}=L(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{x_axis_data_key:l,y_axis_data_key:s,z_axis_data_key:u,xAxis3D:d,yAxis3D:p,zAxis3D:c}=_.defaults({},t,cn),f=w.useMemo(()=>{const b=_.minBy(n,I=>I[u]);return _.get(b,u)},[n,u]),m=w.useMemo(()=>{const b=_.maxBy(n,I=>I[u]);return _.get(b,u)},[n,u]),v={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:f,max:m,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:d,yAxis3D:p,zAxis3D:c,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:n.map(b=>[b[l],b[s],b[u]])}]};return t?o(_e.default,{echarts:Z,option:v,style:{width:r,height:i}}):null}function eu({context:e}){const{value:t,set:n}=L(e.instanceData,"config"),r=e.data,i=_.defaults({},t,cn),{control:l,handleSubmit:s,reset:u}=S.useForm({defaultValues:i});return w.useEffect(()=>{u(i)},[t]),t?o(a.Stack,{mt:"md",spacing:"xs",children:g("form",{onSubmit:s(n),children:[o(a.Text,{children:"X Axis"}),g(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[o(S.Controller,{name:"x_axis_data_key",control:l,render:({field:d})=>o(Q,{label:"Data Field",required:!0,data:r,...d})}),o(S.Controller,{name:"xAxis3D.name",control:l,render:({field:d})=>o(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...d})})]}),o(a.Text,{mt:"lg",children:"Y Axis"}),g(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[o(S.Controller,{name:"y_axis_data_key",control:l,render:({field:d})=>o(Q,{label:"Data Field",required:!0,data:r,...d})}),o(S.Controller,{name:"yAxis3D.name",control:l,render:({field:d})=>o(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...d})})]}),o(a.Text,{mt:"lg",children:"Z Axis"}),g(a.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[o(S.Controller,{name:"z_axis_data_key",control:l,render:({field:d})=>o(Q,{label:"Data Field",required:!0,data:r,...d})}),o(S.Controller,{name:"zAxis3D.name",control:l,render:({field:d})=>o(a.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...d})})]}),o(a.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:g(a.Button,{color:"blue",type:"submit",children:[o(V.DeviceFloppy,{size:20}),o(a.Text,{ml:"md",children:"Save"})]})})]})}):null}class tu extends ge{constructor(){super(...arguments);$(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const nu={displayName:"Bar Chart (3D)",migrator:new tu,name:"bar-3d",viewRender:Zs,configRender:eu,createConfig:()=>cn},gn={x_axis:{name:"X Axis",data_key:""},y_axis:{name:"Y Axis",data_key:"value"},color:"#228be6",variables:[],reference_lines:[]};Z.use([W.DataZoomComponent,he.BoxplotChart,W.MarkLineComponent,W.GridComponent,W.LegendComponent,W.TooltipComponent,we.CanvasRenderer]);function ru(e,t,n){const r=t.reduce((i,l)=>{const s=Tr(l,n);return i[l.name]=lt(l,s),i},{});return e.map(i=>({name:"refs",type:"scatter",data:[],markLine:{data:[{name:i.name,yAxis:Number(r[i.variable_key])}],silent:!0,symbol:["none","none"],label:{formatter:function(){return Fr(i.template,t,n)},position:"insideEndTop"}}}))}function iu({context:e}){const{value:t}=L(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{x_axis:l,y_axis:s,color:u,variables:d,reference_lines:p}=_.defaults({},t,gn),{xAxisData:c,boxplotData:f}=w.useMemo(()=>{const v=z.default.groupBy(n,l.data_key);return{xAxisData:Object.keys(v),boxplotData:Object.values(v).map(b=>b.map(I=>I[s.data_key]))}},[n,l.data_key,s.data_key]),m={dataset:[{source:f},{transform:{type:"boxplot",config:{itemNameFormatter:function(v){var b;return(b=c[v.value])!=null?b:v.value}}}}],dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}],tooltip:{trigger:"axis"},xAxis:[{type:"category",name:l.name}],yAxis:[{name:s.name}],series:[{name:s.name,type:"boxplot",itemStyle:{color:u,borderColor:"#454545"},boxWidth:[10,40],datasetIndex:1},...ru(p,d,n)]};return!t||!r||!i?null:o(_e.default,{echarts:Z,option:m,style:{width:r,height:i}})}function ou({control:e,index:t,remove:n,variableOptions:r}){return g(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:`reference_lines.${t}.name`,control:e,render:({field:i})=>o(a.TextInput,{label:"Name",placeholder:"Average Reference Line",required:!0,sx:{flex:1},...i})}),o(S.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:i})=>o(a.Select,{label:"Value",required:!0,data:r,sx:{flex:1},...i})})]}),o(S.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:i})=>o(a.TextInput,{label:"Content Template",placeholder:"Average: ${avg}",required:!0,sx:{flex:1},...i})}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:o(V.Trash,{size:16})})]},t)}function au({control:e,watch:t}){const{fields:n,append:r,remove:i}=S.useFieldArray({control:e,name:"reference_lines"}),l=t("reference_lines"),s=n.map((c,f)=>({...c,...l[f]})),u=()=>r({name:"",template:"",variable_key:""}),d=t("variables"),p=w.useMemo(()=>d.map(c=>({label:c.name,value:c.name})),[d]);return g(a.Stack,{children:[s.map((c,f)=>o(ou,{control:e,index:f,remove:i,variableOptions:p})),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:u,children:"Add a Reference Line"})})]})}function lu({control:e,index:t,remove:n,data:r}){return g(a.Stack,{my:"sm",p:0,sx:{border:"1px solid #eee",borderTopColor:"#333",borderTopWidth:2,position:"relative"},children:[o(S.Controller,{name:`variables.${t}`,control:e,render:({field:i})=>o(rt,{data:r,withStyle:!1,...i})}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:o(V.Trash,{size:16})})]},t)}function su({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=S.useFieldArray({control:e,name:"variables"}),s=t("variables"),u=r.map((p,c)=>({...p,...s[c]})),d=()=>i(tt());return g(a.Stack,{children:[u.map((p,c)=>o(lu,{control:e,index:c,remove:l,data:n})),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:d,children:"Add a Variable"})})]})}function uu({context:e}){const{value:t,set:n}=L(e.instanceData,"config"),r=e.data,i=w.useMemo(()=>_.defaults({},t,gn),[t]),{control:l,handleSubmit:s,watch:u,getValues:d,reset:p}=S.useForm({defaultValues:i});w.useEffect(()=>{p(i)},[i]),u(["x_axis","y_axis","reference_lines","color"]);const c=d(),f=w.useMemo(()=>!_.isEqual(c,t),[c,t]);return o(a.Stack,{mt:"md",spacing:"xs",children:g("form",{onSubmit:s(n),children:[g(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[o(a.Text,{children:"Chart Config"}),o(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!f,children:o(V.DeviceFloppy,{size:20})})]}),g(a.Accordion,{defaultValue:"Axis",children:[g(a.Accordion.Item,{value:"Axis",children:[o(a.Accordion.Control,{children:"Axis"}),g(a.Accordion.Panel,{children:[g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:"x_axis.name",control:l,render:({field:m})=>o(a.TextInput,{label:"X Axis Name",sx:{flex:1},...m})}),o(S.Controller,{name:"x_axis.data_key",control:l,render:({field:m})=>o(Q,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...m})})]}),g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:"y_axis.name",control:l,render:({field:m})=>o(a.TextInput,{label:"Y Axis Name",sx:{flex:1},...m})}),o(S.Controller,{name:"y_axis.data_key",control:l,render:({field:m})=>o(Q,{label:"Y Axis Data Field",required:!0,data:r,sx:{flex:1},...m})})]})]})]}),g(a.Accordion.Item,{value:"Style",children:[o(a.Accordion.Control,{children:"Style"}),o(a.Accordion.Panel,{children:g(a.Stack,{spacing:4,children:[o(a.Text,{size:"sm",children:"Color"}),o(S.Controller,{name:"color",control:l,render:({field:m})=>o(De,{...m})})]})})]}),g(a.Accordion.Item,{value:"Advanced",children:[o(a.Accordion.Control,{children:g(a.Group,{position:"apart",children:["Advanced",o(a.Text,{align:"right",size:12,color:"grey",children:"Use variables in reference lines"})]})}),o(a.Accordion.Panel,{children:g(a.Tabs,{defaultValue:"variables",children:[g(a.Tabs.List,{children:[o(a.Tabs.Tab,{value:"variables",children:"Variables"}),o(a.Tabs.Tab,{value:"reference_lines",children:"Reference Lines"})]}),o(a.Tabs.Panel,{value:"variables",pt:"xs",children:o(su,{control:l,watch:u,data:r})}),o(a.Tabs.Panel,{value:"reference_lines",pt:"xs",children:o(au,{control:l,watch:u})})]})})]})]})]})})}class du extends ge{constructor(){super(...arguments);$(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const cu={displayName:"Boxplot",migrator:new du,name:"boxplot",viewRender:iu,configRender:uu,createConfig:()=>gn};function gu(e){const t=e.y_axes.some(n=>!!n.name);return{bottom:e.x_axis_name?40:25,top:t?30:10}}function pu({regressions:e=[]},t){const n=[],r=[],i=[];return t.length===0?{regressionDataSets:n,regressionSeries:r,regressionXAxes:i}:(e.forEach(({transform:l,plot:s,name:u,y_axis_data_key:d})=>{const p=`x-axis-for-${u}`,c=`dataset-for-${u}--raw`,f=`dataset-for-${u}--transformed`;n.push({id:c,source:t.map((m,v)=>[v,Number(m[d])])}),n.push({transform:l,id:f,fromDatasetId:c}),r.push({...s,name:u,datasetId:f,xAxisId:p,showSymbol:!1,tooltip:{show:!1}}),i.push({type:"category",id:p,datasetId:f,show:!1})}),{regressionDataSets:n,regressionSeries:r,regressionXAxes:i})}function fu(e,t,n,r){const i=t.map(l=>[l[n],l[r]]);return z.default.unionBy(i,e,0)}function hu(e,t,n){const r=t.reduce((i,l)=>{const s=Tr(l,n);return i[l.name]=lt(l,s),i},{});return e.map(i=>({name:"refs",type:"scatter",data:[],markLine:{data:[{name:i.name,yAxis:Number(r[i.variable_key])}],silent:!0,symbol:["none","none"],label:{formatter:function(){return Fr(i.template,t,n)},position:"insideEndTop"}}}))}function mu({x_axis_data_key:e},{y_axis_data_key:t,yAxisIndex:n,label_position:r,name:i,group_by_key:l,stack:s,color:u,...d},p,c,f){const m={label:{show:!!r,position:r,formatter:f[n!=null?n:"default"]},name:i,xAxisId:"main-x-axis",yAxisIndex:n,stack:s,color:u,...d};if(!l)return m.data=c.map(b=>b[t]),m;const v=_.groupBy(c,l);return Object.entries(v).map(([b,I])=>{const A=_.cloneDeep(m);return A.data=fu(p,I,e,t),A.name=b,A.color=void 0,A})}function vu(e,t,n,r){const i=t.map(s=>[s,0]);return e.series.map(s=>mu(e,s,i,n,r)).flat().concat(hu(e.reference_lines,e.variables,n))}function yu(e,t){const n=e.series.reduce((r,{yAxisIndex:i,name:l})=>(r[l]=i,r),{});return{formatter:function(r){const i=Array.isArray(r)?r:[r];if(i.length===0)return"";const l=i.map(({seriesName:s,value:u})=>{var c;if(Array.isArray(u)&&u.length===2&&(u=u[1]),!s)return u;const d=n[s],p=(c=t[d])!=null?c:t.default;return`${s}: <strong>${p({value:u})}</strong>`});return l.unshift(`<strong>${i[0].name}</strong>`),l.join("<br />")}}}function bu(e,t,n){var r;return[{data:t,name:(r=e.x_axis_name)!=null?r:"",id:"main-x-axis",...e.x_axis},...n]}function Cu(e,t){return e.y_axes.map(({nameAlignment:n,...r},i)=>{var s;let l=r.position;return l||(l=i>0?"right":"left"),{...r,position:l,axisLabel:{show:!0,formatter:(s=t[i])!=null?s:t.default},nameTextStyle:{fontWeight:"bold",align:n},nameLocation:"end",nameGap:15}})}const xu={legend:{show:!0,bottom:0,left:"center",type:"scroll"},dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}],tooltip:{trigger:"axis"},xAxis:[{type:"category",nameGap:25,nameLocation:"center",nameTextStyle:{fontWeight:"bold"}}],grid:{top:10,left:30,right:15,bottom:25,containLabel:!0}};function Su(e,t){const n=e.y_axes.reduce((p,{label_formatter:c},f)=>(p[f]=function(v){let b=v;if(typeof v=="object"&&(Array.isArray(v.value)&&v.value.length===2?b=v.value[1]:b=v.value),!c)return b;try{return ae.default(b).format(c)}catch(I){return console.error(I),b}},p),{default:({value:p})=>p}),r=z.default.uniq(t.map(p=>p[e.x_axis_data_key])),i=vu(e,r,t,n),{regressionDataSets:l,regressionSeries:s,regressionXAxes:u}=pu(e,t),d={xAxis:bu(e,r,u),yAxis:Cu(e,n),dataset:[...l],series:[...i,...s],tooltip:yu(e,n),grid:gu(e)};return _.defaultsDeep({},d,xu)}const pn={regressions:[],series:[],stats:{templates:{bottom:"",top:""},variables:[]},x_axis:{axisLabel:{rotate:0}},x_axis_data_key:"",x_axis_name:"",y_axes:[{name:"Y Axis",position:"left",nameAlignment:"center",label_formatter:je}],variables:[],reference_lines:[]};Z.use([W.DataZoomComponent,he.BarChart,he.LineChart,he.ScatterChart,W.GridComponent,W.LegendComponent,W.TooltipComponent,we.CanvasRenderer]),Z.registerTransform($n.transform.regression);function Zr(e){return e.trim().length>0}function wu({conf:e,data:t,width:n,height:r}){const i=C.default.useMemo(()=>Su(e,t),[e,t]);return!n||!r?null:o(_e.default,{echarts:Z,option:i,style:{width:n,height:r}})}function _u({context:e}){const{value:t}=L(e.instanceData,"config"),n=w.useMemo(()=>_.defaults({},t,pn),[t]),r=e.data,{width:i,height:l}=e.viewport,{ref:s,height:u}=J.useElementSize(),{ref:d,height:p}=J.useElementSize(),c=C.default.useMemo(()=>{const{stats:{templates:m,variables:v}}=n;return{top:Ut(m.top,v,r),bottom:Ut(m.bottom,v,r)}},[n,r]),f=Math.max(0,l-u-p);return g(a.Box,{children:[Zr(n.stats.templates.top)&&o(a.Text,{ref:s,align:"left",size:"xs",pl:"sm",children:Object.values(c.top).map(m=>m)}),o(wu,{width:i,height:f,data:r,conf:n}),Zr(n.stats.templates.bottom)&&o(a.Text,{ref:d,align:"left",size:"xs",pl:"sm",children:Object.values(c.bottom).map(m=>m)})]})}function Iu({control:e,index:t,remove:n,variableOptions:r}){return g(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:`reference_lines.${t}.name`,control:e,render:({field:i})=>o(a.TextInput,{label:"Name",placeholder:"Average Reference Line",required:!0,sx:{flex:1},...i})}),o(S.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:i})=>o(a.Select,{label:"Value",required:!0,data:r,sx:{flex:1},...i})})]}),o(S.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:i})=>o(a.TextInput,{label:"Content Template",placeholder:"Average: ${avg}",required:!0,sx:{flex:1},...i})}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:o(V.Trash,{size:16})})]},t)}function Du({control:e,watch:t}){const{fields:n,append:r,remove:i}=S.useFieldArray({control:e,name:"reference_lines"}),l=t("reference_lines"),s=n.map((c,f)=>({...c,...l[f]})),u=()=>r({name:"",template:"",variable_key:""}),d=t("variables"),p=w.useMemo(()=>d.map(c=>({label:c.name,value:c.name})),[d]);return g(a.Stack,{children:[s.map((c,f)=>o(Iu,{control:e,index:f,remove:i,variableOptions:p})),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:u,children:"Add a Reference Line"})})]})}const Au=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}],Mu=[{label:"solid",value:"solid"},{label:"dashed",value:"dashed"},{label:"dotted",value:"dotted"}];function Vu({control:e,regressionItem:t,index:n,remove:r,yAxisOptions:i,data:l}){const s=t.transform.config.method;return g(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[o(S.Controller,{name:`regressions.${n}.name`,control:e,render:({field:u})=>o(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...u})}),g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:`regressions.${n}.y_axis_data_key`,control:e,render:({field:u})=>o(Q,{label:"Value Field",required:!0,data:l,sx:{flex:1},...u})}),o(S.Controller,{name:`regressions.${n}.plot.yAxisIndex`,control:e,render:({field:{value:u,onChange:d,...p}})=>{var c;return o(a.Select,{label:"Y Axis",data:i,disabled:i.length===0,...p,value:(c=u==null?void 0:u.toString())!=null?c:"",onChange:f=>{if(!f){d(0);return}d(Number(f))},sx:{flex:1}})}})]}),g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:`regressions.${n}.transform.config.method`,control:e,render:({field:u})=>o(a.Select,{label:"Method",data:Au,sx:{flex:1},...u})}),s==="polynomial"&&o(S.Controller,{name:`regressions.${n}.transform.config.order`,control:e,render:({field:u})=>o(a.NumberInput,{label:"Order",sx:{flex:1},...u})})]}),o(a.Divider,{mb:-15,variant:"dashed",label:"Line Style",labelPosition:"center"}),g(a.Group,{grow:!0,children:[o(S.Controller,{name:`regressions.${n}.plot.lineStyle.type`,control:e,render:({field:u})=>o(a.Select,{label:"Line Type",data:Mu,sx:{flexGrow:1},...u})}),o(S.Controller,{name:`regressions.${n}.plot.lineStyle.width`,control:e,render:({field:u})=>o(a.NumberInput,{label:"Line Width",min:1,max:10,sx:{flexGrow:1},...u})})]}),g(a.Stack,{spacing:4,children:[o(a.Text,{size:"sm",children:"Color"}),o(S.Controller,{name:`regressions.${n}.plot.color`,control:e,render:({field:u})=>o(De,{...u})})]}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>r(n),sx:{position:"absolute",top:15,right:5},children:o(V.Trash,{size:16})})]},n)}function Eu({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=S.useFieldArray({control:e,name:"regressions"}),s=t("regressions"),u=r.map((f,m)=>({...f,...s[m]})),d=t("y_axes"),p=C.default.useMemo(()=>d.map(({name:f},m)=>({label:f,value:m.toString()})),[d]),c=()=>i({transform:{type:"ecStat:regression",config:{method:"linear",order:1,formulaOn:"end"}},name:"",y_axis_data_key:"",plot:{type:"line",yAxisIndex:0,color:"#666666",lineStyle:{type:"solid",width:1}}});return g(a.Stack,{children:[u.map((f,m)=>o(Vu,{regressionItem:f,control:e,index:m,remove:l,yAxisOptions:p,data:n},m)),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:c,children:"Add a Regression Line"})})]})}const Ru=[{label:"No gap between bars",value:"0%"},{label:"Bars overlapping on each other",value:"-100%"}];function Tu({control:e,index:t}){return g(U,{children:[g(a.Group,{grow:!0,align:"top",children:[o(S.Controller,{name:`series.${t}.stack`,control:e,render:({field:n})=>o(a.TextInput,{label:"Stack",placeholder:"Stack bars by this ID",sx:{flexGrow:1},...n})}),o(S.Controller,{name:`series.${t}.barWidth`,control:e,render:({field:n})=>o(a.TextInput,{label:"Bar Width",sx:{flexGrow:1},...n})})]}),o(S.Controller,{name:`series.${t}.barGap`,control:e,render:({field:n})=>o(a.Select,{label:"Bar Gap",data:Ru,sx:{flexGrow:1},...n})})]})}const Fu=[{label:"off",value:"false"},{label:"start",value:"start"},{label:"middle",value:"middle"},{label:"end",value:"end"}],$u=[{label:"solid",value:"solid"},{label:"dashed",value:"dashed"},{label:"dotted",value:"dotted"}];function Pu({control:e,index:t}){return g(U,{children:[o(a.Divider,{mb:-15,variant:"dashed",label:"Line Settings",labelPosition:"center"}),g(a.Group,{grow:!0,children:[o(S.Controller,{name:`series.${t}.lineStyle.type`,control:e,render:({field:n})=>o(a.Select,{label:"Line Type",data:$u,sx:{flexGrow:1},...n})}),o(S.Controller,{name:`series.${t}.lineStyle.width`,control:e,render:({field:n})=>o(a.NumberInput,{label:"Line Width",min:1,max:10,sx:{flexGrow:1},...n})})]}),g(a.Group,{grow:!0,align:"center",children:[o(S.Controller,{name:`series.${t}.step`,control:e,render:({field:n})=>o(a.Select,{label:"Step",data:Fu,sx:{flexGrow:1,maxWidth:"48%"},...n,value:String(n.value),onChange:r=>{const i=r==="false"?!1:r;n.onChange(i)}})}),o(S.Controller,{name:`series.${t}.smooth`,control:e,render:({field:n})=>o(a.Box,{sx:{flexGrow:1},children:o(a.Switch,{label:"Smooth Line",checked:n.value,onChange:r=>n.onChange(r.currentTarget.checked)})})})]})]})}const ku=Array.from(new Array(9),(e,t)=>({label:String(t+1),value:t+1}));function Ou({control:e,index:t}){return o(a.Group,{grow:!0,align:"center",children:o(S.Controller,{name:`series.${t}.symbolSize`,control:e,render:({field:n})=>g(a.Stack,{sx:{flexGrow:1},pb:16,spacing:4,children:[o(a.Text,{size:"sm",children:"Size"}),o(a.Slider,{min:1,max:10,marks:ku,...n,sx:{width:"100%"}})]})})})}const zu=[{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 Gu({control:e,index:t,remove:n,seriesItem:r,yAxisOptions:i,data:l}){const s=r.type;return g(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[o(a.Stack,{children:o(S.Controller,{name:`series.${t}.type`,control:e,render:({field:u})=>o(a.SegmentedControl,{data:[{label:"Line",value:"line"},{label:"Bar",value:"bar"},{label:"Scatter",value:"scatter"},{label:"Boxplot",value:"boxplot",disabled:!0}],...u})})}),g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:`series.${t}.name`,control:e,render:({field:u})=>o(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...u})}),o(S.Controller,{name:`series.${t}.y_axis_data_key`,control:e,render:({field:u})=>o(Q,{label:"Value Field",required:!0,data:l,sx:{flex:1},...u})})]}),g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:`series.${t}.yAxisIndex`,control:e,render:({field:{value:u,onChange:d,...p}})=>{var c;return o(a.Select,{label:"Y Axis",data:i,disabled:i.length===0,...p,value:(c=u==null?void 0:u.toString())!=null?c:"",onChange:f=>{if(!f){d(0);return}d(Number(f))},sx:{flex:1}})}}),o(S.Controller,{name:`series.${t}.group_by_key`,control:e,render:({field:u})=>o(Q,{label:"Group By",data:l,clearable:!0,sx:{flex:1},...u})})]}),s==="line"&&o(Pu,{index:t,control:e}),s==="bar"&&o(Tu,{index:t,control:e}),s==="scatter"&&o(Ou,{index:t,control:e}),o(S.Controller,{name:`series.${t}.label_position`,control:e,render:({field:u})=>o(a.Select,{label:"Label Position",data:zu,...u})}),g(a.Stack,{spacing:4,children:[o(a.Text,{size:"sm",children:"Color"}),o(S.Controller,{name:`series.${t}.color`,control:e,render:({field:u})=>o(De,{...u})})]}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:o(V.Trash,{size:16})})]},t)}function Lu({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=S.useFieldArray({control:e,name:"series"}),s=t("series"),u=r.map((f,m)=>({...f,...s[m]})),d=()=>i({type:"bar",name:J.randomId(),showSymbol:!1,symbolSize:5,y_axis_data_key:"value",yAxisIndex:0,label_position:"top",stack:"",color:"#000",step:!1,smooth:!1,barWidth:"10",barGap:"0%",lineStyle:{type:"solid",width:1}}),p=t("y_axes"),c=C.default.useMemo(()=>p.map(({name:f},m)=>({label:f,value:m.toString()})),[p]);return g(a.Stack,{children:[u.map((f,m)=>o(Gu,{control:e,index:m,remove:l,seriesItem:f,yAxisOptions:c,data:n},f.id)),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:d,children:"Add a Series"})})]})}function Nu({control:e,index:t,remove:n,data:r}){return g(a.Stack,{my:"sm",p:0,sx:{border:"1px solid #eee",borderTopColor:"#333",borderTopWidth:2,position:"relative"},children:[o(S.Controller,{name:`stats.variables.${t}`,control:e,render:({field:i})=>o(rt,{data:r,...i})}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:o(V.Trash,{size:16})})]},t)}function qu({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=S.useFieldArray({control:e,name:"stats.variables"});t("stats.templates");const s=t("stats.variables"),u=r.map((p,c)=>({...p,...s[c]})),d=()=>i(tt());return g(a.Stack,{children:[g(a.Stack,{spacing:0,children:[o(S.Controller,{name:"stats.templates.top",control:e,render:({field:p})=>o(kt,{label:"Template for stats above the chart",py:"md",sx:{flexGrow:1},...p})}),o(S.Controller,{name:"stats.templates.bottom",control:e,render:({field:p})=>o(kt,{label:"Template for stats under the chart",py:"md",sx:{flexGrow:1},...p})})]}),u.map((p,c)=>o(Nu,{control:e,index:c,remove:l,data:n})),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:d,children:"Add a Variable"})})]})}function Bu({control:e,index:t,remove:n,data:r}){return g(a.Stack,{my:"sm",p:0,sx:{border:"1px solid #eee",borderTopColor:"#333",borderTopWidth:2,position:"relative"},children:[o(S.Controller,{name:`variables.${t}`,control:e,render:({field:i})=>o(rt,{data:r,withStyle:!1,...i})}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:o(V.Trash,{size:16})})]},t)}function ju({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=S.useFieldArray({control:e,name:"variables"}),s=t("variables"),u=r.map((p,c)=>({...p,...s[c]})),d=()=>i(tt());return g(a.Stack,{children:[u.map((p,c)=>o(Bu,{control:e,index:c,remove:l,data:n})),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:d,children:"Add a Variable"})})]})}function Wu({data:e,control:t,watch:n}){return n(["x_axis_data_key","x_axis_name","x_axis"]),g(a.Stack,{children:[g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:"x_axis_data_key",control:t,render:({field:r})=>o(Q,{label:"X Axis Data Field",required:!0,data:e,sx:{flex:1},...r})}),o(S.Controller,{name:"x_axis_name",control:t,render:({field:r})=>o(a.TextInput,{label:"X Axis Name",sx:{flex:1},...r})})]}),o(a.Divider,{mb:-15,label:"Tick Label",labelPosition:"center"}),o(a.Group,{children:o(S.Controller,{name:"x_axis.axisLabel.rotate",control:t,render:({field:r})=>o(a.NumberInput,{label:"Rotate",hideControls:!0,min:-90,max:90,rightSection:o(a.Text,{color:"dimmed",children:"degree"}),sx:{width:"48%"},styles:{rightSection:{width:"4em",justifyContent:"flex-end",paddingRight:"6px"}},...r})})})]})}const Uu=[{label:"left",value:"left"},{label:"center",value:"center"},{label:"right",value:"right"}],Qu=[{label:"left",value:"left"},{label:"right",value:"right"}];function Hu({control:e,index:t,remove:n}){return g(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[o(a.Divider,{mb:-15,variant:"dashed",label:"Name",labelPosition:"center"}),g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:`y_axes.${t}.name`,control:e,render:({field:r})=>o(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...r})}),o(S.Controller,{name:`y_axes.${t}.nameAlignment`,control:e,render:({field:r})=>o(a.Select,{label:"Align",required:!0,data:Uu,sx:{flex:1},...r})})]}),o(a.Divider,{mb:-15,variant:"dashed",label:"Layout",labelPosition:"center"}),o(a.Group,{grow:!0,noWrap:!0,children:o(S.Controller,{name:`y_axes.${t}.position`,control:e,render:({field:r})=>o(a.Select,{label:"Position",required:!0,data:Qu,sx:{flex:1},...r})})}),g(a.Stack,{children:[o(a.Divider,{mb:-15,variant:"dashed",label:"Label Format",labelPosition:"center"}),o(S.Controller,{name:`y_axes.${t}.label_formatter`,control:e,render:({field:r})=>o(Ot,{...r})})]}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},disabled:t===0,children:o(V.Trash,{size:16})})]})}function Yu({control:e,watch:t}){const{fields:n,append:r,remove:i}=S.useFieldArray({control:e,name:"y_axes"}),l=t("y_axes"),s=n.map((d,p)=>({...d,...l[p]})),u=()=>r({name:"",label_formatter:je});return g(a.Stack,{children:[s.map((d,p)=>o(Hu,{control:e,index:p,remove:i},p)),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:u,children:"Add a Y Axis"})})]})}function Xu(e){function t({type:n,name:r,showSymbol:i,symbolSize:l=5,y_axis_data_key:s="value",yAxisIndex:u=0,label_position:d="top",stack:p="1",color:c="black",barWidth:f="30",barGap:m="0%",smooth:v=!1,step:b=!1,group_by_key:I="",lineStyle:A={type:"solid",width:1}}){return{type:n,name:r,showSymbol:i,symbolSize:l,y_axis_data_key:s,yAxisIndex:u,label_position:d,stack:p,color:c,barWidth:f,barGap:m,smooth:v,step:b,group_by_key:I,lineStyle:A}}return e.map(t)}function Ju(e){return e||{templates:{top:"",bottom:""},variables:[]}}function Ku({series:e,stats:t,...n}){return{series:Xu(e!=null?e:[]),stats:Ju(t),...n}}function Zu({context:e}){const{value:t,set:n}=L(e.instanceData,"config"),r=e.data,i=w.useMemo(()=>_.defaultsDeep({},t,pn),[t]),l=w.useMemo(()=>Ku(i),[i]);w.useEffect(()=>{!_.isEqual(i,l)&&(console.log("config malformed, resetting to defaults",i,l),n(l))},[i,l]);const{control:s,handleSubmit:u,watch:d,getValues:p,reset:c}=S.useForm({defaultValues:l});w.useEffect(()=>{c(l)},[l]);const f=p(),m=w.useMemo(()=>!_.isEqual(f,i),[f,i]);return o(a.Stack,{mt:"md",spacing:"xs",children:g("form",{onSubmit:u(n),children:[g(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[o(a.Text,{children:"Chart Config"}),o(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!m,children:o(V.DeviceFloppy,{size:20})})]}),g(a.Accordion,{multiple:!0,defaultValue:["X Axis","Y Axes"],children:[g(a.Accordion.Item,{value:"X Axis",children:[o(a.Accordion.Control,{children:"X Axis"}),o(a.Accordion.Panel,{children:o(Wu,{control:s,watch:d,data:r})})]}),g(a.Accordion.Item,{value:"Y Axes",children:[o(a.Accordion.Control,{children:"Y Axes"}),o(a.Accordion.Panel,{children:o(Yu,{control:s,watch:d})})]}),g(a.Accordion.Item,{value:"Series",children:[o(a.Accordion.Control,{children:"Series"}),o(a.Accordion.Panel,{children:o(Lu,{control:s,watch:d,data:r})})]}),g(a.Accordion.Item,{value:"Regression Lines",children:[o(a.Accordion.Control,{children:"Regression Lines"}),o(a.Accordion.Panel,{children:o(Eu,{control:s,watch:d,data:r})})]}),g(a.Accordion.Item,{value:"Stats",children:[o(a.Accordion.Control,{children:"Stats"}),o(a.Accordion.Panel,{children:o(qu,{control:s,watch:d,data:r})})]}),g(a.Accordion.Item,{value:"Advanced",children:[o(a.Accordion.Control,{children:g(a.Group,{position:"apart",children:["Advanced",o(a.Text,{align:"right",size:12,color:"grey",children:"Use variables in reference lines"})]})}),o(a.Accordion.Panel,{children:g(a.Tabs,{defaultValue:"variables",children:[g(a.Tabs.List,{children:[o(a.Tabs.Tab,{value:"variables",children:"Variables"}),o(a.Tabs.Tab,{value:"reference_lines",children:"Reference Lines"})]}),o(a.Tabs.Panel,{value:"variables",pt:"xs",children:o(ju,{control:s,watch:d,data:r})}),o(a.Tabs.Panel,{value:"reference_lines",pt:"xs",children:o(Du,{control:s,watch:d})})]})})]})]})]})})}class ed extends ge{constructor(){super(...arguments);$(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const td={displayName:"Cartesian Chart",migrator:new ed,name:"cartesian",viewRender:_u,configRender:Zu,createConfig:()=>pn};function ei(e){return e?t=>{try{return ae.default(t).format(e)}catch(n){return console.error(n),t}}:t=>t}function nd(e){return{show:!0,formatter:({dimensionIndex:t,value:n})=>ei(e.dimensions[t].formatter)(n)}}function rd(e){return({name:t,marker:n,value:r})=>{if(r.length===0)return"";const i=r.map((l,s)=>{const u=e.dimensions[s],d=ei(u.formatter);return`
42
54
  <tr>
43
55
  <td style="padding-left: 18px;">${u.name}</td>
44
56
  <td style="text-align: right; "><strong>${d(l)}</strong></td>
@@ -58,13 +70,13 @@ WHERE
58
70
  text-align: left;
59
71
  vertical-align: top;
60
72
  "
61
- >${e}</strong>
73
+ >${t}</strong>
62
74
  </th>
63
75
  </tr>
64
76
  </thead>
65
77
  <tbody>
66
- ${s.join("")}
78
+ ${i.join("")}
67
79
  </tbody>
68
80
  </table>
69
- `}}const Wo={legend:{show:!0,bottom:0,left:0},tooltip:{trigger:"item"}};function Qo(t,e){const n=["#66B4DB","#39BFA2","#E46464","#33A678","#EEBA00","#9D88CB","#939943","#E49792","#09A2B8","#AF5F6B","#6CA157","#09A2B8","#6398C7","#E692BA","#97B566","#8CACE2","#CA79AC","#6DBC80","#B08F4B","#826BAF"],i=t.dimensions.map(({name:o,max:u})=>({name:o,max:u})),s=e.map(o=>({value:t.dimensions.map(({data_key:u})=>o[u]),name:o[t.series_name_key]})),l={radar:{indicator:i,splitArea:{show:!1}},tooltip:{formatter:jo(t)},legend:{show:!0,left:"center"},series:{type:"radar",data:s,symbolSize:4,lineStyle:{width:1},areaStyle:{opacity:.4},label:No(t)},color:n};return O.default.merge({},Wo,l)}const Nt={series_name_key:"name",dimensions:[]};J.use([de.RadarChart,$.GridComponent,$.LegendComponent,$.TooltipComponent,ye.CanvasRenderer]);function Yo({context:t}){const{value:e}=q(t.instanceData,"config"),{width:n,height:i}=t.viewport,s=t.data,l=w.useMemo(()=>Qo(S.defaultsDeep({},e,Nt),s),[e,s]);return!n||!i||!e||S.isEmpty(e==null?void 0:e.dimensions)?null:r(a.Box,{children:r(ve.default,{echarts:J,option:l,style:{width:n,height:i}})})}function Uo({control:t,index:e,remove:n,data:i}){return c(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:`dimensions.${e}.name`,control:t,render:({field:s})=>r(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...s})}),r(C.Controller,{name:`dimensions.${e}.data_key`,control:t,render:({field:s})=>r(j,{label:"Data Key",required:!0,data:i,sx:{flex:1},...s})}),r(C.Controller,{name:`dimensions.${e}.max`,control:t,render:({field:s})=>r(a.NumberInput,{label:"Max",hideControls:!0,required:!0,sx:{flex:1},...s})})]}),c(a.Stack,{children:[r(a.Divider,{mb:-15,variant:"dashed",label:"Value Formatter",labelPosition:"center"}),r(C.Controller,{name:`dimensions.${e}.formatter`,control:t,render:({field:s})=>r(Tt,{...s})})]}),r(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(e),sx:{position:"absolute",top:15,right:5},disabled:e===0,children:r(T.Trash,{size:16})})]},e)}function Xo({control:t,watch:e,data:n}){const{fields:i,append:s,remove:l}=C.useFieldArray({control:t,name:"dimensions"}),o=e("dimensions"),u=i.map((h,f)=>({...h,...o[f]})),d=()=>s({name:U.randomId(),data_key:"",max:100,formatter:qe});return c(a.Stack,{children:[u.map((h,f)=>r(Uo,{data:n,control:t,index:f,remove:l})),r(a.Group,{position:"center",mt:"xs",children:r(a.Button,{onClick:d,children:"Add a Dimension"})})]})}function Jo(t){function e({name:n="",data_key:i="",max:s=10,formatter:l=qe}){return{name:n,data_key:i,max:s,formatter:l}}return t.map(e)}function Ko({context:t}){const e=t.data,{value:n,set:i}=q(t.instanceData,"config"),s=w.useMemo(()=>S.defaultsDeep({},n,Nt),[n]),{dimensions:l,series_name_key:o}=s,u=w.useMemo(()=>({dimensions:Jo(l!=null?l:[]),series_name_key:o}),[l,o]);w.useEffect(()=>{!S.isEqual(s,u)&&i(u)},[s,u]);const{control:d,handleSubmit:h,watch:f,getValues:m,reset:g}=C.useForm({defaultValues:u});w.useEffect(()=>{S.isEqual(m(),u)||g(u)},[s]),f(["series_name_key"]);const v=m(),_=w.useMemo(()=>!S.isEqual(v,s),[v,s]);return r(a.Stack,{mt:"md",spacing:"xs",children:c("form",{onSubmit:h(i),children:[c(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[r(a.Text,{children:"Chart Config"}),r(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!_,children:r(T.DeviceFloppy,{size:20})})]}),r(a.Box,{py:"sm",children:r(C.Controller,{name:"series_name_key",control:d,render:({field:k})=>r(j,{label:"Series Name Field",required:!0,data:e,sx:{flex:1},...k})})}),r(Xo,{control:d,watch:f,data:e})]})})}class Zo extends oe{constructor(){super(...arguments);V(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Ho={displayName:"Radar Chart",migrator:new Zo,name:"radar",viewRender:Yo,configRender:Ko,createConfig:()=>Nt};function eu(t,e){switch(t.config.method){case"linear":return[...be.regressionLinear()(e)];case"exponential":return[...be.regressionExp()(e)];case"logarithmic":return[...be.regressionLog()(e)];case"polynomial":return[...be.regressionPoly().order(t.config.order)(e)];default:return[]}}function tu({regression:t},e){const n=[],i=[];if(e.length===0)return{regressionSeries:n,regressionXAxes:i};const{transform:s,plot:l,name:o}=t,u=eu(s,e);return n.push({...l,name:o,data:u,showSymbol:!1,smooth:!0,tooltip:{show:!1}}),{regressionSeries:n,regressionXAxes:i}}const nu={tooltip:{trigger:"axis"},grid:{top:10,left:30,right:15,bottom:30,containLabel:!0},dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}]};function ru(t,e){var l,o;const n=O.default.uniqBy(e.map(u=>[u[t.x_axis.data_key],u[t.regression.y_axis_data_key]]),0),{regressionSeries:i}=tu(t,n),s={xAxis:{type:"category",name:(l=t.x_axis.name)!=null?l:""},yAxis:{name:(o=t.y_axis.name)!=null?o:""},series:[{data:n,name:t.y_axis.name,type:"scatter",symbolSize:4,color:"red"},...i]};return S.defaultsDeep({},s,nu)}function it(t,e,n){return 1-(1-t)*(e-1)/(e-n-1)}function iu(t,e){if(!e)return{expression:"",rSquared:0,adjustedRSquared:0};const{regression:n,x_axis:i,y_axis:s}=e,l=t.map(o=>[o[i.data_key],o[n.y_axis_data_key]]);if(n.transform.config.method==="linear"){const o=be.regressionLinear()(l),{a:u,b:d,rSquared:h}=o;return{expression:c(a.Group,{position:"center",noWrap:!0,spacing:10,children:[r(a.Text,{children:s.name}),r(a.Text,{children:"="}),r(a.Text,{weight:"bold",color:"gray",children:d}),r(a.Text,{children:"+"}),r(a.Text,{weight:"bold",color:"gray",children:u}),r(a.Text,{children:"\xD7"}),r(a.Text,{children:i.name})]}),rSquared:h,adjustedRSquared:it(h,t.length,1)}}if(n.transform.config.method==="exponential"){const{a:o,b:u,rSquared:d}=be.regressionExp()(l);return{expression:c(a.Group,{position:"center",noWrap:!0,spacing:10,children:[r(a.Text,{children:s.name}),r(a.Text,{children:"="}),r(a.Text,{weight:"bold",color:"gray",children:o}),r(a.Text,{children:"\xD7"}),c(a.Group,{position:"left",noWrap:!0,spacing:2,children:[r(a.Text,{children:"Math.exp("}),r(a.Text,{weight:"bold",color:"gray",children:u}),r(a.Text,{children:"\xD7"}),r(a.Text,{children:i.name}),r(a.Text,{children:")"})]})]}),rSquared:d,adjustedRSquared:it(d,t.length,1)}}if(n.transform.config.method==="logarithmic"){const{a:o,b:u,rSquared:d}=be.regressionLog()(l);return{expression:c(a.Group,{position:"center",noWrap:!0,spacing:10,children:[r(a.Text,{children:s.name}),r(a.Text,{children:"="}),r(a.Text,{weight:"bold",color:"gray",children:o}),r(a.Text,{children:"\xD7"}),c(a.Group,{position:"left",noWrap:!0,spacing:2,children:[r(a.Text,{children:"Math.log("}),r(a.Text,{children:i.name}),r(a.Text,{children:")"}),r(a.Text,{children:"+"}),r(a.Text,{weight:"bold",color:"gray",children:u})]})]}),rSquared:d,adjustedRSquared:it(d,t.length,1)}}if(n.transform.config.method==="polynomial"){const o=be.regressionPoly().order(n.transform.config.order)(l),{rSquared:u}=o;return console.log(o),{expression:"",rSquared:u,adjustedRSquared:it(u,t.length,1)}}return{expression:"",rSquared:0}}const jt={x_axis:{name:"X Axis",data_key:""},y_axis:{name:"Y Axis"},regression:{transform:{type:"ecStat:regression",config:{method:"linear",order:1,formulaOn:"end"}},plot:{type:"line",yAxisIndex:0,color:"#228be6",lineStyle:{type:"solid",width:1}},name:"regression",y_axis_data_key:"value"}};J.use([$.DataZoomComponent,de.ScatterChart,$.GridComponent,$.LegendComponent,$.TooltipComponent,ye.CanvasRenderer]),J.registerTransform(cn.transform.regression);function au({context:t}){const{value:e}=q(t.instanceData,"config"),{width:n,height:i}=t.viewport,s=w.useMemo(()=>{var g;const f=t.data,m=(g=e==null?void 0:e.regression)==null?void 0:g.y_axis_data_key;return m?f.map(v=>typeof v[m]=="number"?v:{...v,[m]:Number(v[m])}):f},[t.data,e==null?void 0:e.regression.y_axis_data_key]),l=w.useMemo(()=>ru(S.defaultsDeep({},e,jt),s),[e,s]),{expression:o,rSquared:u,adjustedRSquared:d}=w.useMemo(()=>iu(s,e),[e,s]);if(!n||!i||!e)return null;let h=i;return o&&(h-=20),c(a.Box,{children:[o&&r(a.Text,{align:"center",size:12,children:o}),c(a.Group,{spacing:0,noWrap:!0,align:"start",sx:{"> *":{flexGrow:0,flexShrink:0}},children:[r(ve.default,{echarts:J,option:l,style:{width:n-190,height:h}}),u&&r(a.Table,{mt:20,fontSize:12,sx:{width:180,border:"1px solid #999",td:{padding:"3px 8px"}},children:c("tbody",{children:[c("tr",{children:[r("td",{children:"R-Sq"}),r("td",{style:{textAlign:"right"},children:re.default(u).format({output:"percent",mantissa:1})})]}),c("tr",{children:[r("td",{children:"R-Sq(Adjusted)"}),r("td",{style:{textAlign:"right"},children:re.default(d).format({output:"percent",mantissa:1})})]})]})})]})]})}const su=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}];function lu({control:t,watch:e,data:n}){const i=e("regression.transform.config.method");return c(a.Stack,{children:[c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:"regression.name",control:t,render:({field:s})=>r(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...s})}),r(C.Controller,{name:"regression.y_axis_data_key",control:t,render:({field:s})=>r(j,{label:"Value Field",required:!0,data:n,sx:{flex:1},...s})})]}),c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:"regression.transform.config.method",control:t,render:({field:s})=>r(a.Select,{label:"Method",data:su,sx:{flex:1},...s})}),i==="polynomial"&&r(C.Controller,{name:"regression.transform.config.order",control:t,render:({field:s})=>r(a.NumberInput,{label:"Order",sx:{flex:1},...s})})]}),c(a.Stack,{spacing:4,children:[r(a.Text,{size:"sm",children:"Color"}),r(C.Controller,{name:"regression.plot.color",control:t,render:({field:s})=>r(xe,{...s})})]})]})}function ou({context:t}){const{value:e,set:n}=q(t.instanceData,"config"),i=t.data,s=w.useMemo(()=>S.defaults({},e,jt),[e]),{control:l,handleSubmit:o,watch:u,getValues:d,reset:h}=C.useForm({defaultValues:s});w.useEffect(()=>{h(s)},[s]),u(["x_axis","y_axis","regression"]);const f=d(),m=w.useMemo(()=>!S.isEqual(f,e),[f,e]);return r(a.Stack,{mt:"md",spacing:"xs",children:c("form",{onSubmit:o(n),children:[c(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[r(a.Text,{children:"Chart Config"}),r(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!m,children:r(T.DeviceFloppy,{size:20})})]}),c(a.Accordion,{multiple:!0,defaultValue:["Axis","Regression"],children:[c(a.Accordion.Item,{value:"Axis",children:[r(a.Accordion.Control,{children:"Axis"}),c(a.Accordion.Panel,{children:[c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:"x_axis.name",control:l,render:({field:g})=>r(a.TextInput,{label:"X Axis Name",sx:{flex:1},...g})}),r(C.Controller,{name:"x_axis.data_key",control:l,render:({field:g})=>r(j,{label:"X Axis Data Field",required:!0,data:i,sx:{flex:1},...g})})]}),r(a.Group,{grow:!0,noWrap:!0,children:r(C.Controller,{name:"y_axis.name",control:l,render:({field:g})=>r(a.TextInput,{label:"Y Axis Name",sx:{flex:1},...g})})})]})]}),c(a.Accordion.Item,{value:"Regression",children:[r(a.Accordion.Control,{children:"Regression Line"}),r(a.Accordion.Panel,{children:r(lu,{control:l,watch:u,data:i})})]})]})]})})}class uu extends oe{constructor(){super(...arguments);V(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const cu={displayName:"Regression Chart",migrator:new uu,name:"regressionChart",viewRender:au,configRender:ou,createConfig:()=>jt},Wt={x_axis:{name:"X Axis",data_key:""},data_key:"value",bar:{name:"Value",color:"#228be6"},line:{name:"Value",color:"red"}};function Qt(t){return re.default(t).format({output:"percent",mantissa:0})}function du(t){const e=t.value[1];try{return Qt(e)}catch(n){return console.error(n),e}}function pu(t){const e=Array.isArray(t)?t:[t];if(e.length===0)return"";const n=e.map((i,s)=>{const l=i.seriesName,[o,u]=i.value;return l?`${l}: <strong>${(s===0?h=>h:Qt)(u)}</strong>`:u});return n.unshift(`<strong>${e[0].name}</strong>`),n.join("<br />")}J.use([de.BarChart,de.LineChart,$.DataZoomComponent,$.GridComponent,$.LegendComponent,$.TooltipComponent,ye.CanvasRenderer]);function fu({context:t}){const{value:e}=q(t.instanceData,"config"),n=t.data,{width:i,height:s}=t.viewport,{x_axis:l,data_key:o,bar:u,line:d}=S.defaults({},e,Wt),{barData:h,lineData:f}=w.useMemo(()=>{const g=n.map(k=>[k[l.data_key],Number(k[o])]).sort((k,E)=>E[1]-k[1]),v=g.reduce((k,E)=>k+E[1],0),_=g.reduce((k,E,R)=>{const B=R===0?0:k[R-1][1];return k.push([E[0],B+E[1]]),k},[]).map(k=>[k[0],k[1]/v]);return{barData:g,lineData:_}},[l.data_key,o,n]),m={dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}],tooltip:{trigger:"axis",formatter:pu},xAxis:[{type:"category",name:l.name,nameLocation:"middle",nameGap:30,nameTextStyle:{fontWeight:"bold",align:"right"}}],yAxis:[{name:u.name,nameGap:30,nameTextStyle:{fontWeight:"bold",align:"right"}},{name:d.name,nameGap:30,nameTextStyle:{fontWeight:"bold",align:"center"},axisLabel:{show:!0,formatter:Qt}}],series:[{name:u.name,type:"bar",itemStyle:{color:u.color},yAxisIndex:0,data:h},{name:d.name,type:"line",itemStyle:{color:d.color},symbolSize:2,lineStyle:{width:1},label:{show:!0,position:"top",formatter:du},yAxisIndex:1,data:f}]};return!e||!i||!s?null:r(ve.default,{echarts:J,option:m,style:{width:i,height:s}})}function hu({context:t}){const{value:e,set:n}=q(t.instanceData,"config"),i=t.data,s=w.useMemo(()=>S.defaults({},e,Wt),[e]),{control:l,handleSubmit:o,watch:u,getValues:d,reset:h}=C.useForm({defaultValues:s});w.useEffect(()=>{h(s)},[s]),u(["x_axis","data_key","bar","line"]);const f=d(),m=w.useMemo(()=>!S.isEqual(f,e),[f,e]);return r(a.Stack,{mt:"md",spacing:"xs",children:c("form",{onSubmit:o(n),children:[c(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[r(a.Text,{children:"Chart Config"}),r(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!m,children:r(T.DeviceFloppy,{size:20})})]}),c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:"x_axis.name",control:l,render:({field:g})=>r(a.TextInput,{label:"X Axis Name",sx:{flex:1},...g})}),r(C.Controller,{name:"x_axis.data_key",control:l,render:({field:g})=>r(j,{label:"X Axis Data Field",required:!0,data:i,sx:{flex:1},...g})})]}),r(C.Controller,{name:"data_key",control:l,render:({field:g})=>r(j,{label:"Y Axis Data Field",required:!0,data:i,sx:{flex:1},...g})}),r(a.Divider,{my:"md",label:"Bar",labelPosition:"center"}),c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:"bar.name",control:l,render:({field:g})=>r(a.TextInput,{label:"Bar Name",sx:{flex:1},...g})}),c(a.Stack,{spacing:4,children:[r(a.Text,{size:"sm",children:"Bar's Color"}),r(C.Controller,{name:"bar.color",control:l,render:({field:g})=>r(xe,{...g})})]})]}),r(a.Divider,{my:"md",label:"Line",labelPosition:"center"}),c(a.Group,{grow:!0,noWrap:!0,children:[r(C.Controller,{name:"line.name",control:l,render:({field:g})=>r(a.TextInput,{label:"Line Name",sx:{flex:1},...g})}),c(a.Stack,{spacing:4,children:[r(a.Text,{size:"sm",children:"Line's Color"}),r(C.Controller,{name:"line.color",control:l,render:({field:g})=>r(xe,{...g})})]})]})]})})}class gu extends oe{constructor(){super(...arguments);V(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const mu={displayName:"Pareto Chart",migrator:new gu,name:"paretoChart",viewRender:fu,configRender:hu,createConfig:()=>Wt},yu=[{value:"#25262B",name:"Dark"},{value:"#868E96",name:"Gray"},{value:"#FA5252",name:"Red"},{value:"#E64980",name:"Pink"},{value:"#BE4BDB",name:"Grape"},{value:"#7950F2",name:"Violet"},{value:"#4C6EF5",name:"Indigo"},{value:"#228BE6",name:"Blue"},{value:"#15AABF",name:"Cyan"},{value:"#12B886",name:"Teal"},{value:"#40C057",name:"Green"},{value:"#82C91E",name:"Lime"},{value:"#FAB005",name:"Yellow"},{value:"#FD7E14",name:"Orange"}].map(t=>({name:t.name,value:t.value,type:"single",category:"basic"})),vu=[Oa,Fa,Ba,Ga,qa,Ra],yr={id:"dashboard",version:La,manifest:{viz:[qt,Rs,Ua,Pl,Gl,$l,Kl,mu,$o,Ho,cu],color:[...yu,...vu]}},$e=new Na,vr=()=>{try{$e.install(yr)}catch{}const t=new Va($e),e=new $a($e);return{pluginManager:$e,vizManager:t,colorManager:e}},ge=w.createContext(vr());try{$e.install(yr)}catch{}function bu(t,e){const{value:n,set:i}=q(t.operation.operationData,"config"),[s,l]=w.useState(S.defaults({},n,e)),o=async()=>{await i(s)};return w.useEffect(()=>{l(S.defaults({},n,e))},[n]),{config:s,setConfig:l,commit:o}}function xu(t){const{config:e,setConfig:n,commit:i}=bu(t,{urlTemplate:"",openInNewTab:!0});async function s(){await i()}async function l(u){n({...e,openInNewTab:u}),await i()}const o=u=>n({...e,urlTemplate:u.currentTarget.value});return c(a.Stack,{children:[r(a.TextInput,{label:"Url",value:e.urlTemplate,onChange:o,onBlur:s}),r(a.Switch,{label:"Open in new Tab",checked:e.openInNewTab,onChange:u=>l(u.currentTarget.checked)})]})}function Cu(t){return S.cloneDeepWith(t,n=>{if(typeof n=="string")return encodeURIComponent(n)})}async function wu(t,e){const{urlTemplate:n,openInNewTab:i}=await e.operationData.getItem("config"),l=S.template(n||"")(Cu(t));window.open(l,i?"_blank":"_self","noopener")}const Su={displayName:"Open Link",id:"builtin:op:open-link",configRender:xu,run:wu};function Iu(t){const{value:e,set:n}=q(t.operationData,"config"),i=s=>void n({template:s});return[(e==null?void 0:e.template)||"",i]}function Du(t){const[e,n]=Iu(t.operation);return r(a.TextInput,{defaultValue:e,onBlur:i=>n(i.currentTarget.value),label:"console.log"})}async function Tu(t,e){const n=await e.operationData.getItem("config"),i=S.template(n.template||"");console.log("run with payload",t),console.log(i(t))}const Yt=[{displayName:"console.log (debug)",id:"builtin:op:debug",configRender:Du,run:Tu},Su];class _u{constructor(e,n=Yt){V(this,"attachments");this.operations=n;const i=async s=>{const{id:l,schemaRef:o}=await s.getItem(null);return{id:l,schemaRef:o,operationData:new ke(s,"data")}};this.attachments=new wt(e,"__OPERATIONS",i)}async runOperation(e,n){const i=await this.attachments.getInstance(e);if(!i){console.warn(`Operation '${e}' is not defined`);return}const s=this.operations.find(l=>l.id===i.schemaRef);if(!s){console.warn(`Operation schema '${i.schemaRef}' is not defined`);return}await s.run(n,i)}async createOrGetOperation(e,n){if(!this.getOperationSchemaList().some(o=>o.id===n.id))throw new Error(`Operation schema '${n.id}' is not defined`);const s=await this.attachments.getInstance(e);return!s||s.schemaRef!==n.id?await this.attachments.create(e,{id:e,schemaRef:n.id,data:{}}):s}getOperationList(){return this.attachments.list()}getOperationSchemaList(){return this.operations}removeOperation(e){return this.attachments.remove(e)}async retrieveTrigger(e){return await this.attachments.getInstance(e)}}const br="__TRIGGERS";class Au{constructor(e,n){V(this,"attachments");this.instance=e,this.component=n;const i=async s=>{const{id:l,schemaRef:o}=await s.getItem(null);return{id:l,schemaRef:o,triggerData:new ke(s,"data")}};this.attachments=new wt(e,br,i)}watchTriggerSnapshotList(e){return this.instance.instanceData.watchItem(br,n=>{const i=S.values(n).map(s=>({id:S.get(s,"id"),schemaRef:S.get(s,"schemaRef"),config:X.toJS(S.get(s,"data.config"))}));e(i)},{fireImmediately:!0})}async createOrGetTrigger(e,n,i={recreate:!1}){if(!this.getTriggerSchemaList().some(u=>u.id===n.id))throw new Error(`Trigger schema '${n.id}' is not defined in component '${this.component.name}'`);const l=await this.attachments.getInstance(e);return!l||i.recreate||l.schemaRef!==n.id?await this.attachments.create(e,{id:e,schemaRef:n.id,data:{}}):l}async getTriggerList(){return await this.attachments.list()}getTriggerSchemaList(){return this.component.triggers||[]}async removeTrigger(e){await this.attachments.remove(e)}async retrieveTrigger(e){return await this.attachments.getInstance(e)}}class xr{constructor(e,n,i){V(this,"operationManager");V(this,"triggerManager");V(this,"attachments");this.operationManager=new _u(e,i),this.triggerManager=new Au(e,n);const s=async l=>{const{id:o,triggerRef:u,operationRef:d}=await l.getItem(null);return{id:o,triggerRef:u,operationRef:d}};this.attachments=new wt(e,"__INTERACTIONS",s)}async addInteraction(e,n){const i=e.id,s=n.id,l=`[${i}]:[${s}]`;await this.attachments.create(l,{id:l,triggerRef:i,operationRef:s})}getInteractionList(){return this.attachments.list()}async removeInteraction(e){const n=await this.attachments.getInstance(e);if(!n)return;const{triggerRef:i,operationRef:s}=n;await this.getTriggerRefCount(i)<=1&&await this.triggerManager.removeTrigger(i),await this.getOperationRefCount(s)<=1&&await this.operationManager.removeOperation(s),await this.attachments.remove(e)}async getOperationRefCount(e){return(await this.getInteractionList()).filter(i=>i.operationRef===e).length}async getTriggerRefCount(e){return(await this.getInteractionList()).filter(i=>i.triggerRef===e).length}async runInteraction(e,n){const s=(await this.getInteractionList()).filter(l=>l.triggerRef===e);await Promise.all(s.map(async l=>{try{return await this.operationManager.runOperation(l.operationRef,n)}catch(o){console.warn(`Failed to run operation '${l.operationRef}'`,o)}}))}}function ku(t,e){const[n,i]=w.useState([]);return L.useAsyncEffect(async()=>{const s=await t.getInteractionList();i(s)},[e]),n}const Mu=A.observer(({item:t,manager:e,instance:n,sampleData:i,variables:s,onRemove:l})=>{const{triggerRef:o,operationRef:u}=t,d=Ta(e.triggerManager,n);if(L.useAsyncEffect(async()=>{await d.configTrigger(o,i)},[d,o,i]),d.isReady()){const h=[...d.triggerSchema.payload,...s];return c(a.Group,{children:[r(Ma,{model:d}),r(Sa,{instance:n,operationId:u,variables:h,operationManager:e.operationManager}),r(a.Button,{"aria-label":"delete-interaction",variant:"outline",color:"red",onClick:()=>l(t),children:r(T.Trash,{})})]})}return null}),Eu=t=>{const[e,n]=w.useState(0),{interactionManager:i,instance:s,sampleData:l,variables:o}=t,u=ku(i,e),d=async()=>{const f=await i.triggerManager.createOrGetTrigger(U.randomId(),i.triggerManager.getTriggerSchemaList()[0]),m=await i.operationManager.createOrGetOperation(U.randomId(),i.operationManager.getOperationSchemaList()[0]);await i.addInteraction(f,m),n(g=>g+1)};async function h(f){await i.removeInteraction(f.id),n(m=>m+1)}return c(a.Stack,{children:[u.map(f=>r(Mu,{onRemove:h,instance:s,sampleData:l,variables:o,item:f,manager:t.interactionManager},f.id)),r(a.Button,{style:{width:"fit-content"},onClick:()=>d(),children:"Add interaction"})]})},Vu=()=>{const{panel:t,data:e}=K(),n=t.viz,{vizManager:i}=w.useContext(ge),s=t.json,l=L.useCreation(()=>i.getOrCreateInstance(s),[i,n.type]),o=L.useCreation(()=>new xr(l,i.resolveComponent(n.type),Yt),[l,n.type]);return w.useEffect(()=>l.instanceData.watchItem(null,S.throttle(u=>{t.viz.setConf(u)},100,{leading:!1,trailing:!0})),[l]),{instance:l,vizManager:i,interactionManager:o,sampleData:e,variables:[]}},Pu=()=>{const t=Vu();return r(Eu,{...t})},zu=A.observer(()=>{const{panel:t}=K(),[e,n]=b.default.useState(t.description),i=t.description!==e,s=b.default.useCallback(()=>{!i||t.setDescription(e)},[i,e]);return c(a.Stack,{spacing:4,sx:{flexGrow:1},children:[c(a.Group,{align:"end",children:[r(a.Text,{sx:{flexGrow:1},children:"Description"}),r(a.ActionIcon,{variant:"subtle",color:"blue",disabled:!i,onClick:s,children:r(T.DeviceFloppy,{size:20})})]}),r(ft.RichTextEditor,{value:e,onChange:n,sx:{flexGrow:1},sticky:!0,p:"0"})]})}),Ou=A.observer(()=>{const{panel:t}=K(),{style:e}=t;return r(N,{children:r(a.Switch,{label:"Border",checked:e.border.enabled,onChange:n=>e.border.setEnabled(n.currentTarget.checked)})})}),Fu=A.observer(()=>{const{panel:{title:t,style:{border:e}}}=K();return r(Ae,{children:c(a.Stack,{mx:"auto",mt:"xl",p:"5px",spacing:5,sx:{width:"600px",height:"450px",background:"transparent",borderRadius:"5px",border:"1px solid #ced4da",borderWidth:e.enabled?"1px":"0px"},children:[c(a.Group,{position:"apart",noWrap:!0,sx:{flexGrow:0,flexShrink:0},children:[r(a.Group,{children:r(Fn,{})}),r(a.Group,{grow:!0,position:"center",children:r(a.Text,{lineClamp:1,weight:"bold",children:t})}),r(a.Group,{position:"right",spacing:0,sx:{height:"28px"}})]}),r(a.Group,{sx:{background:"#eee",flexGrow:1}})]})})}),qu=A.observer(()=>{const{panel:t}=K(),{title:e,setTitle:n}=t,[i,s]=U.useInputState(e),l=e!==i,o=b.default.useCallback(()=>{!l||n(i)},[l,i]);return r(a.TextInput,{value:i,onChange:s,label:c(a.Group,{align:"apart",children:[r(a.Text,{sx:{flexGrow:1},children:"Panel Title"}),r(a.ActionIcon,{variant:"subtle",color:"blue",disabled:!l,onClick:o,children:r(T.DeviceFloppy,{size:20})})]}),styles:{label:{display:"block",paddingBottom:"4px"}}})});function Gu(){return c(a.Group,{grow:!0,noWrap:!0,align:"stretch",sx:{height:"100%"},children:[c(a.Stack,{sx:{width:"40%",flexShrink:0,flexGrow:0,height:"100%"},children:[r(a.Divider,{label:"Style",labelPosition:"center",variant:"dashed"}),r(Ou,{}),r(a.Divider,{label:"Info",labelPosition:"center",variant:"dashed"}),r(qu,{}),r(zu,{})]}),r(a.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:r(Fu,{})})]})}const Bu=A.observer(function(){const e=Q(),{panel:{queryID:n,setQueryID:i}}=K(),s=b.default.useMemo(()=>e.queries.current.map(l=>({value:l.id,label:l.id})),[e.queries.current]);return c(a.Stack,{children:[c(a.Group,{position:"left",sx:{maxWidth:"600px",alignItems:"baseline"},children:[r(a.Text,{children:"Select a Query"}),r(a.Select,{data:s,value:n,onChange:i,allowDeselect:!1,clearable:!1,sx:{flexGrow:1}})]}),r(Dn,{id:n})]})});function Cr(t,e,n){const i=L.useCreation(()=>new Set,[]),s=t.resolveComponent(e.type),[l,o]=w.useState(!1);return L.useAsyncEffect(async()=>{if(await s.migrator.needMigration(e)&&!i.has(e.id))try{i.add(e.id),await s.migrator.migrate(e),n==null||n()}finally{i.delete(e.id),o(!0)}else o(!0)},[e]),l}function Ru({setVizConf:t,...e}){const{vizManager:n,panel:i}=e,s=n.getOrCreateInstance(i),l=Cr(n,s,()=>{ht.showNotification({title:`${i.title} - Updated`,message:"Your plugin configuration has been migrated to the latest version"})});return L.useAsyncEffect(async()=>{await s.instanceData.setItem(null,i.viz.conf)},[s,i.viz.type]),w.useEffect(()=>s.instanceData.watchItem(null,o=>{t(o)}),[t,i.viz.type]),l?r(za,{...e}):r(a.Text,{children:"Checking update..."})}function Lu(t){const{vizManager:e,panel:n}=t,i=e.getOrCreateInstance(n);return Cr(e,i,()=>{ht.showNotification({title:`${n.title} - Updated`,message:"Your plugin configuration has been migrated to the latest version"})})?r(Pa,{...t}):r(a.Text,{children:"Checking update"})}const sd="";function $u(t,e){const{vizManager:n}=w.useContext(ge),{panel:{viz:i,title:s,id:l,description:o,queryID:u,style:d}}=K(),h={title:s,id:l,description:o,queryID:u,viz:i,layout:e,style:d.json};try{return n.resolveComponent(i.type),r(Lu,{panel:h,data:t,vizManager:n})}catch(f){return console.info(S.get(f,"message")),null}}const Nu=["richText"],wr=A.observer(function({height:e,viz:n,data:i,loading:s}){const{ref:l,width:o,height:u}=U.useElementSize(),d=b.default.useMemo(()=>!Array.isArray(i)||i.length===0,[i]),h=$u(i,{w:o,h:u});return Nu.includes(n.type)?r("div",{className:"viz-root",style:{height:e},ref:l,children:r(Ae,{children:h})}):s?r("div",{className:"viz-root",style:{height:e},ref:l,children:r(a.LoadingOverlay,{visible:s,exitTransitionDuration:0})}):c("div",{className:"viz-root",style:{height:e},ref:l,children:[d&&r(a.Text,{color:"gray",align:"center",children:"Empty Data"}),!d&&r(Ae,{children:h})]})}),ju=A.observer(()=>{const{data:t,loading:e,panel:{viz:n}}=K();return r(wr,{viz:n,data:t,loading:e,height:"100%"})}),Ut=[];function Wu(){const{vizManager:t}=w.useContext(ge);return w.useMemo(()=>t.availableVizList.map(e=>({value:e.name,label:e.displayName})).concat(Ut),[t])}function Qu(t,e){try{return t.resolveComponent(e).createConfig()}catch{return null}}function Yu(){const{data:t,panel:{viz:e,title:n,queryID:i,description:s,setDescription:l,setTitle:o,setQueryID:u,id:d,style:h}}=K(),{vizManager:f}=w.useContext(ge),m={title:n,description:s,viz:e,queryID:i,id:d,style:h.json},g={setDescription:l,setQueryID:u,setTitle:o};try{return f.resolveComponent(m.viz.type),r(Ru,{setVizConf:e.setConf,panel:m,panelInfoEditor:g,vizManager:f,data:t})}catch(v){return console.info(S.get(v,"message")),null}}const Uu=A.observer(()=>{const{data:t,panel:{viz:e}}=K(),[n,i]=U.useInputState(e.type),s=e.type!==n,{vizManager:l}=w.useContext(ge),o=b.default.useCallback(()=>{if(!s)return;const v=Qu(l,n);e.setType(n),e.setConf(v||{})},[e,s,n]),u=v=>{try{e.setConf(JSON.parse(v))}catch(_){console.error(_)}},d=b.default.useMemo(()=>{var v;return(v=Ut.find(_=>_.value===n))==null?void 0:v.Panel},[n,Ut]),h=Yu(),f=d?w.createElement(d,{data:t,conf:e.conf,setConf:e.setConf}):null,m=h||f,g=Wu();return c(N,{children:[r(a.Select,{label:"Visualization",value:n,onChange:i,data:g,rightSection:r(a.ActionIcon,{disabled:!s,onClick:o,children:r(T.DeviceFloppy,{size:20})})}),m,!m&&r(a.JsonInput,{minRows:20,label:"Config",value:JSON.stringify(e.conf,null,2),onChange:u})]})});function Xu(){return c(a.Group,{grow:!0,noWrap:!0,align:"stretch",sx:{height:"100%",overflow:"hidden"},children:[r(a.Stack,{sx:{width:"40%",flexShrink:0,flexGrow:0,overflow:"scroll",height:"100%"},children:r(Uu,{})}),r(a.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:r(ju,{})})]})}const Ju=A.observer(function({opened:e,close:n}){const{freezeLayout:i}=b.default.useContext(le),[s,l]=w.useState("Visualization"),{panel:o,loading:u}=K(),{id:d,title:h}=o;return b.default.useEffect(()=>{i(e)},[e]),r(a.Modal,{size:"96vw",overflow:"inside",opened:e,onClose:n,title:`Editing Panel - ${h.trim()?h:d}`,trapFocus:!0,onDragStart:f=>{f.stopPropagation()},children:r(a.AppShell,{sx:{height:"90vh",maxHeight:"calc(100vh - 185px)",".mantine-AppShell-body":{height:"100%"},main:{height:"100%",minHeight:"unset",maxHeight:"100%",width:"100%",padding:"16px"}},padding:"md",children:c(a.Tabs,{value:s,onTabChange:l,className:"panel-settings-tabs",children:[c(a.Tabs.List,{children:[r(a.Tabs.Tab,{value:"Data",children:"Data"}),r(a.Tabs.Tab,{value:"Panel",children:"Panel"}),r(a.Tabs.Tab,{value:"Visualization",children:"Visualization"}),r(a.Tabs.Tab,{value:"Interactions",children:"Interactions"})]}),c(a.Tabs.Panel,{value:"Data",pt:"sm",children:[r(a.LoadingOverlay,{visible:u,exitTransitionDuration:0}),r(Bu,{})]}),r(a.Tabs.Panel,{value:"Panel",pt:"sm",children:s==="Panel"&&r(Gu,{})}),r(a.Tabs.Panel,{value:"Visualization",pt:"sm",children:s==="Visualization"&&r(Xu,{})}),r(a.Tabs.Panel,{value:"Interactions",pt:"sm",children:r(Ae,{children:r(Pu,{})})})]})})})}),Ku=A.observer(({view:t})=>{const e=Q(),n=he.useModals(),[i,s]=b.default.useState(!1),l=()=>s(!0),o=()=>s(!1),{panel:u}=K(),{id:d,queryID:h}=u,{inEditMode:f}=b.default.useContext(le),m=()=>e.queries.refetchDataByQueryID(h),{viewPanelInFullScreen:g,inFullScreen:v}=b.default.useContext(yt),_=()=>{t.panels.duplicateByID(d)},k=()=>n.openConfirmModal({title:"Delete this panel?",labels:{confirm:"Confirm",cancel:"Cancel"},onCancel:()=>console.log("Cancel"),onConfirm:()=>t.panels.removeByID(d)}),E=b.default.useCallback(()=>{g(d)},[d,g]);return c(N,{children:[r(a.Box,{sx:{position:"absolute",top:0,left:0,right:0,zIndex:300},children:c(a.Menu,{withinPortal:!0,children:[r(a.Menu.Target,{children:r(a.Box,{className:"panel-dropdown-target",sx:{width:"100%",height:"25px"}})}),c(a.Menu.Dropdown,{children:[r(a.Menu.Item,{onClick:m,icon:r(T.Refresh,{size:14}),children:"Refresh"}),r(a.Menu.Item,{onClick:()=>e.queries.downloadDataByQueryID(h),icon:r(T.Download,{size:14}),children:"Download Data"}),!v&&r(a.Menu.Item,{onClick:E,icon:r(T.ArrowsMaximize,{size:14}),children:"Full Screen"}),f&&c(N,{children:[r(a.Divider,{label:"Edit",labelPosition:"center"}),r(a.Menu.Item,{onClick:l,icon:r(T.Settings,{size:14}),children:"Settings"}),r(a.Menu.Item,{onClick:_,icon:r(T.Copy,{size:14}),children:"Duplicate"}),r(a.Menu.Item,{color:"red",onClick:k,icon:r(T.Trash,{size:14}),children:"Delete"})]})]})]})}),f&&r(Ju,{opened:i,close:o})]})}),ld="",Zu=A.observer(function(){const{panel:e}=K(),{title:n}=e;return n?r(a.Group,{grow:!0,position:"center",px:20,className:"panel-title-wrapper",sx:{flexGrow:1},children:r(a.Text,{align:"center",lineClamp:1,weight:"bold",children:n})}):null});function Hu(t){return!["richText"].includes(t)}const ec={border:"1px solid #ced4da"},tc={border:"1px dashed transparent",transition:"border-color 300ms ease","&:hover":{borderColor:"#ced4da"}},at=A.observer(function({panel:e,view:n}){const i=Q(),{data:s,state:l}=i.getDataStuffByID(e.queryID),o=Hu(e.viz.type)&&l==="loading",u=e.title?"calc(100% - 25px - 5px)":"100%",d=e.style.border.enabled?ec:tc;return r(Sn,{value:{panel:e,data:s,loading:o},children:c(a.Box,{className:"panel-root",p:5,pt:0,sx:{...d},children:[r(a.Box,{sx:{position:"absolute",left:0,top:0,height:28,zIndex:310},children:r(Fn,{})}),r(Ku,{view:n}),r(Zu,{}),r(wr,{viz:e.viz,data:s,loading:o,height:u})]})})}),Sr=A.observer(function({view:e,panel:n,exitFullScreen:i}){return c(a.Stack,{px:"10px",pb:"5px",sx:{height:"100%",flexGrow:1,justifyContent:"flex-start"},children:[r(a.Group,{mx:"-5px",sx:{flexGrow:0},children:r(a.Button,{variant:"default",size:"sm",onClick:i,leftIcon:r(T.ArrowLeft,{size:20}),children:"Exit fullscreen"})}),r(a.Group,{mx:"-5px",grow:!0,sx:{flexGrow:1,flexShrink:0},children:r(at,{view:e,panel:n})})]})});function Ir(t){const[e,n]=b.default.useState(null),i=b.default.useCallback(u=>{n(u)},[]),s=b.default.useCallback(()=>{n(null)},[]),l=e?t.panels.findByID(e):null;return{viewPanelInFullScreen:i,exitFullScreen:s,inFullScreen:!!l,fullScreenPanel:l}}function Dr(){b.default.useEffect(()=>{const t=Si.default(".dashboard-sticky-area",{useStickyClasses:!0,parentClass:"dashboard-sticky-parent"});return()=>{t==null||t.cleanup()}},[])}const od="",nc=b.default.forwardRef(({handleAxis:t},e)=>r(a.ActionIcon,{ref:e,className:"react-grid-customDragHandle",sx:{userSelect:"none",cursor:"grab",position:"absolute",top:0,right:0,zIndex:400,"&:hover":{color:"#228be6"}},variant:"transparent",children:r(T.ArrowsMove,{size:16})})),rc=b.default.forwardRef(({handleAxis:t,...e},n)=>r(a.ActionIcon,{ref:n,className:"react-grid-customResizeHandle",sx:{userSelect:"none",cursor:"nwse-resize",position:"absolute",bottom:-5,right:-5,zIndex:400,"&:hover":{color:"#228be6"}},variant:"transparent",...e,children:r(T.ChevronDownRight,{size:16})})),ic=mt.WidthProvider(hn.default),ac=A.observer(function({view:e,className:n="layout",rowHeight:i=10,isDraggable:s,isResizable:l}){const o=b.default.useCallback(u=>{u.forEach(({i:d,...h})=>{const f=e.panels.findByID(d);!f||f.layout.set(h)})},[e]);return r(ic,{onLayoutChange:o,className:`dashboard-layout ${n}`,rowHeight:i,layout:e.panels.layouts,isDraggable:s,isResizable:l,draggableHandle:".react-grid-customDragHandle",resizeHandle:r(rc,{}),children:e.panels.list.map((u,d)=>c("div",{"data-grid":{...u.layout},style:{position:"relative"},children:[s&&r(nc,{}),r(at,{view:e,panel:u})]},u.id))})}),sc=mt.WidthProvider(hn.default),lc=A.observer(function({view:e,className:n="layout",rowHeight:i=10}){return r(sc,{className:`dashboard-layout ${n}`,rowHeight:i,isDraggable:!1,isResizable:!1,layout:e.panels.layouts,children:e.panels.list.map(s=>r("div",{"data-grid":s.layout,children:r(at,{view:e,panel:s})},s.id))})}),oc=A.observer(({children:t})=>r(a.Box,{children:t})),uc=A.observer(({children:t,view:e})=>r(a.Modal,{size:e.config.width,overflow:"inside",opened:!0,onClose:O.default.noop,withCloseButton:!1,title:e.name,trapFocus:!0,onDragStart:n=>{n.stopPropagation()},styles:{root:{position:"relative",height:"calc(100% - 46px)"},overlay:{position:"absolute !important"},modal:{border:"1px solid #efefef"},body:{"> div":{maxHeight:e.config.height,overflow:"scroll"}}},withinPortal:!1,transitionDuration:0,children:t})),cc=A.observer(({view:t,children:e})=>{switch(t.type){case fe.Modal:return r(uc,{view:t,children:e});case fe.Division:default:return r(oc,{children:e})}}),Tr=A.observer(function({view:e,saveDashboardChanges:n}){const{viewPanelInFullScreen:i,exitFullScreen:s,inFullScreen:l,fullScreenPanel:o}=Ir(e);return Dr(),r(yt.Provider,{value:{viewPanelInFullScreen:i,inFullScreen:l},children:c(a.Box,{className:"dashboard-view",mx:-10,sx:{position:"relative",height:"100%"},children:[l&&r(Sr,{view:e,panel:o,exitFullScreen:s}),!l&&r(On,{saveChanges:n}),r(cc,{view:e,children:c(a.Box,{className:"dashboard-sticky-parent",children:[r(a.Box,{className:"dashboard-sticky-area",children:r(Cn,{view:e})}),r(a.Box,{sx:{display:l?"none":"block"},children:r(ac,{view:e,isDraggable:!0,isResizable:!0})})]})})]})})}),_r=A.observer(function({view:e}){const{viewPanelInFullScreen:n,exitFullScreen:i,inFullScreen:s,fullScreenPanel:l}=Ir(e);return Dr(),r(yt.Provider,{value:{viewPanelInFullScreen:n,inFullScreen:s},children:c(a.Box,{className:"dashboard-view",sx:{position:"relative",height:"100%"},children:[s&&r(Sr,{view:e,panel:l,exitFullScreen:i}),!s&&c(a.Box,{className:"dashboard-sticky-area",children:[r(On,{saveChanges:O.default.noop}),r(Cn,{view:e})]}),r(lc,{view:e})]})})}),Ar=y.types.model({label:y.types.string,value:y.types.string}).actions(t=>({setLabel(e){t.label=e},setValue(e){t.value=e}})),kr=y.types.model("FilterConfigModel_Select",{required:y.types.boolean,default_value:y.types.string,static_options:y.types.optional(y.types.array(Ar),[]),options_query:An}).actions(t=>({addStaticOption(e){t.static_options.push(e)},removeStaticOption(e){t.static_options.splice(e,1)},setRequired(e){t.required=e},setDefaultValue(e){t.default_value=e},setOptionsQuery(e){t.options_query=e}})),dc=()=>kr.create({required:!1,default_value:"",static_options:[],options_query:{type:pe.Postgresql,key:"",sql:""}}),Mr=y.types.model("FilterConfigModel_MultiSelect",{default_value:y.types.optional(y.types.array(y.types.string),[]),static_options:y.types.optional(y.types.array(Ar),[]),options_query:An}).actions(t=>({addStaticOption(e){t.static_options.push(e)},removeStaticOption(e){t.static_options.splice(e,1)},setDefaultValue(e){t.default_value=y.cast(e)},setOptionsQuery(e){t.options_query=e}})),pc=()=>Mr.create({default_value:[],static_options:[],options_query:{type:pe.Postgresql,key:"",sql:""}}),Er=y.types.model("FilterConfigModel_Checkbox",{default_value:y.types.boolean}).actions(t=>({setDefaultValue(e){t.default_value=e}})),fc=()=>Er.create({default_value:!1}),hc=y.types.model("FilterConfigModel_DateRange",{required:y.types.boolean,inputFormat:y.types.enumeration("DateRangeInputFormat",["YYYY","YYYY-MM","YYYY-MM-DD"]),default_value:y.types.optional(y.types.array(y.types.union(y.types.Date,y.types.null)),[null,null]),clearable:y.types.boolean}).actions(t=>({setRequired(e){t.required=e},setClearable(e){t.clearable=e},setInputFormat(e){t.inputFormat=e},setDefaultValue(e){t.default_value.length=0,t.default_value.push(...e)}})),Vr=y.types.snapshotProcessor(hc,{preProcessor({default_value:t,...e}){return{...e,default_value:t.map(n=>n===null?null:new Date(n))}},postProcessor({default_value:t,...e}){return{...e,default_value:t.map(n=>{try{return typeof n=="number"?new Date(n).toISOString():null}catch{return console.log(`[date-range] failed parsing ${n}`),null}})}}}),gc=()=>Vr.create({required:!1,inputFormat:"YYYY-MM-DD",clearable:!1,default_value:[null,null]}),Xt=y.types.model("FilterModel",{id:y.types.identifier,key:y.types.string,label:y.types.string,order:y.types.number,visibleInViewsIDs:y.types.array(y.types.string),type:y.types.enumeration("DashboardFilterType",[ie.Select,ie.MultiSelect,ie.TextInput,ie.Checkbox,ie.DateRange]),config:y.types.union(kr,Mr,kn,Er,Vr)}).views(t=>({get plainDefaultValue(){const e=t.config.default_value;return Array.isArray(e)?[...e]:e}})).actions(t=>({setKey(e){t.key=e},setLabel(e){t.label=e},setOrder(e){t.order=e},setType(e){switch(e){case ie.Select:t.config=dc();break;case ie.MultiSelect:t.config=pc();break;case ie.TextInput:t.config=Mn();break;case ie.Checkbox:t.config=fc();break;case ie.DateRange:t.config=gc();break}t.type=e},setVisibleInViewsIDs(e){t.visibleInViewsIDs.length=0,t.visibleInViewsIDs.push(...e)}}));function mc(t){return t===void 0?t:Array.isArray(t)?t.map(e=>{const n=new Date(e);return n!=null?n:e}):t}const Pr=y.types.model("FiltersModel",{original:y.types.optional(y.types.array(Xt),[]),current:y.types.optional(y.types.array(Xt),[]),values:y.types.optional(y.types.frozen(),{})}).views(t=>({get changed(){return!O.default.isEqual(t.original,t.current)},get firstID(){if(t.current.length!==0)return t.current[0].id},get inOrder(){return O.default.sortBy(t.current,"order")},get empty(){return t.current.length===0},visibleInView(e){return O.default.sortBy(t.current.filter(n=>n.visibleInViewsIDs.includes(e)),"order")},get triggerForRefreshValues(){return t.current.map(n=>{var i;return(i=n.config.default_value)==null?void 0:i.toString()}).join("__")}})).actions(t=>({reset(){t.current=O.default.cloneDeep(t.original)},replace(e){t.current=y.cast(e)},append(e){t.current.push(e)},remove(e){t.current.splice(e,1)},setValues(e){t.values=e},setValueByKey(e,n){t.values[e]=n},getValueByKey(e){return t.values[e]},refreshValues(){console.log("refreshing values");const e=t.current.reduce((n,i)=>(n[i.key]=mc(i.config.default_value),n),{});t.values=e}})).actions(t=>({afterCreate(){y.addDisposer(t,X.reaction(()=>t.triggerForRefreshValues,t.refreshValues,{fireImmediately:!0,delay:0}))}}));function zr(t){return{original:t,current:t,values:{}}}var Jt={exports:{}};(function(t,e){(function(n,i){i()})(ze,function(){function n(h,f){return typeof f>"u"?f={autoBom:!1}:typeof f!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),f={autoBom:!f}),f.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(h.type)?new Blob(["\uFEFF",h],{type:h.type}):h}function i(h,f,m){var g=new XMLHttpRequest;g.open("GET",h),g.responseType="blob",g.onload=function(){d(g.response,f,m)},g.onerror=function(){console.error("could not download file")},g.send()}function s(h){var f=new XMLHttpRequest;f.open("HEAD",h,!1);try{f.send()}catch{}return 200<=f.status&&299>=f.status}function l(h){try{h.dispatchEvent(new MouseEvent("click"))}catch{var f=document.createEvent("MouseEvents");f.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),h.dispatchEvent(f)}}var o=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof ze=="object"&&ze.global===ze?ze:void 0,u=o.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),d=o.saveAs||(typeof window!="object"||window!==o?function(){}:"download"in HTMLAnchorElement.prototype&&!u?function(h,f,m){var g=o.URL||o.webkitURL,v=document.createElement("a");f=f||h.name||"download",v.download=f,v.rel="noopener",typeof h=="string"?(v.href=h,v.origin===location.origin?l(v):s(v.href)?i(h,f,m):l(v,v.target="_blank")):(v.href=g.createObjectURL(h),setTimeout(function(){g.revokeObjectURL(v.href)},4e4),setTimeout(function(){l(v)},0))}:"msSaveOrOpenBlob"in navigator?function(h,f,m){if(f=f||h.name||"download",typeof h!="string")navigator.msSaveOrOpenBlob(n(h,m),f);else if(s(h))i(h,f,m);else{var g=document.createElement("a");g.href=h,g.target="_blank",setTimeout(function(){l(g)})}}:function(h,f,m,g){if(g=g||open("","_blank"),g&&(g.document.title=g.document.body.innerText="downloading..."),typeof h=="string")return i(h,f,m);var v=h.type==="application/octet-stream",_=/constructor/i.test(o.HTMLElement)||o.safari,k=/CriOS\/[\d]+/.test(navigator.userAgent);if((k||v&&_||u)&&typeof FileReader<"u"){var E=new FileReader;E.onloadend=function(){var ue=E.result;ue=k?ue:ue.replace(/^data:[^;]*;/,"data:attachment/file;"),g?g.location.href=ue:location=ue,g=null},E.readAsDataURL(h)}else{var R=o.URL||o.webkitURL,B=R.createObjectURL(h);g?g.location=B:location.href=B,g=null,setTimeout(function(){R.revokeObjectURL(B)},4e4)}});o.saveAs=d.saveAs=d,t.exports=d})})(Jt);function yc(t,e){const n=new Blob([e],{type:"text/csv"});Jt.exports.saveAs(n,`${t}.csv`)}function vc(t){const e=new Ii.default;t.forEach(({id:n,data:i})=>{e.file(`${n}.csv`,Or(i))}),e.generateAsync({type:"blob"}).then(n=>{Jt.exports.saveAs(n,"dashboard_data.zip")})}function Or(t){if(!Array.isArray(t)||t.length===0)return"";const e=[],n=Object.keys(t[0]);return e.push(n.join(",")),t.forEach(i=>{const s=Object.values(i).join(",");e.push(s)}),e.join(`
70
- `)}const Fr=y.types.model("QueryModel",{id:y.types.string,type:y.types.enumeration("DataSourceType",[pe.Postgresql,pe.MySQL,pe.HTTP]),key:y.types.string,sql:y.types.string}).views(t=>({get valid(){return t.id&&t.type&&t.key&&t.sql},get configurations(){const{id:e,type:n,key:i,sql:s}=t;return{id:e,type:n,key:i,sql:s}}})),qr=y.types.compose("QueryModel",Fr,y.types.model({state:y.types.optional(y.types.enumeration(["idle","loading","error"]),"idle"),data:y.types.optional(y.types.array(y.types.frozen()),[]),error:y.types.frozen()})).views(t=>({get formattedSQL(){const{context:e,sqlSnippets:n,filterValues:i}=y.getRoot(t).payloadForSQL;return bn(t.sql,e,n,i)}})).actions(t=>({setID(e){t.id=e},setKey(e){t.key=e},setType(e){t.type=e},setSQL(e){t.sql=e},fetchData:y.flow(function*(){if(!!t.valid){t.state="loading";try{const e=t.id,{context:n,sqlSnippets:i,filterValues:s}=y.getRoot(t).payloadForSQL;t.data=yield*y.toGenerator(Mi({context:n,sqlSnippets:i,title:e,query:{type:t.type,key:t.key,sql:t.sql},filterValues:s})),t.state="idle"}catch(e){console.error(e),t.error=e,t.state="error"}}})})).actions(t=>({afterCreate(){y.addDisposer(t,X.reaction(()=>`${t.id}--${t.key}--${t.type}--${t.formattedSQL}`,t.fetchData,{fireImmediately:!0,delay:500}))}})),Gr=y.types.model("QueriesModel",{original:y.types.optional(y.types.array(Fr),[]),current:y.types.optional(y.types.array(qr),[])}).views(t=>({get changed(){return t.original.length!==t.current.length?!0:t.original.some((e,n)=>!O.default.isEqual(e.configurations,t.current[n].configurations))},get firstID(){if(t.current.length!==0)return t.current[0].id},findByID(e){return t.current.find(n=>n.id===e)},get options(){return t.current.map(e=>({value:e.id,label:e.id}))}})).actions(t=>({reset(){const e=t.original.map(n=>({...n,state:"idle",data:[],error:null}));t.current.length=0,t.current.unshift(...e)},replace(e){t.current=y.cast(e)},append(e){t.current.push(e)},remove(e){t.current.splice(e,1)},replaceByIndex(e,n){t.current.splice(e,1,n)},downloadAllData(){const e=t.current.map(({id:n,data:i})=>({id:n,data:i.toJSON()}));vc(e)},downloadDataByQueryID(e){const n=t.findByID(e);if(!n){console.log(`[downloadDataByQueryID] query by ID[${e}] not found`);return}const{id:i,data:s}=n,l=Or(s);yc(i,l)},refetchDataByQueryID(e){const n=t.findByID(e);if(!n){console.error(new Error(`[downloadDataByQueryID] query by ID[${e}] not found`));return}return n.fetchData()}})),Kt=y.types.model("SQLSnippetModel",{key:y.types.string,value:y.types.string}).actions(t=>({setKey(e){t.key=e},setValue(e){t.value=e}})),Br=y.types.model("SQLSnippetsModel",{original:y.types.optional(y.types.array(Kt),[]),current:y.types.optional(y.types.array(Kt),[])}).views(t=>({get changed(){return!O.default.isEqual(t.original,t.current)}})).actions(t=>({reset(){t.current=O.default.cloneDeep(t.original)},replace(e){t.current=y.cast(e)},append(e){t.current.push(e)},remove(e){t.current.splice(e,1)},replaceByIndex(e,n){t.current.splice(e,1,n)}})),Rr=y.types.model("ContextModel",{current:y.types.optional(y.types.frozen(),{})}).views(t=>({get keys(){return Object.keys(t.current)},get entries(){return Object.entries(t.current)}})).actions(t=>({replace(e){t.current=e},get(e){return t.current[e]},set(e,n){t.current[e]=n}})),bc=y.types.model("PanelLayoutModel",{x:y.types.number,y:y.types.number,w:y.types.number,h:y.types.number,moved:y.types.optional(y.types.boolean,!1),static:y.types.optional(y.types.boolean,!1)}).views(t=>({get json(){const{x:e,y:n,w:i,h:s,moved:l}=t;return{x:e,y:n,w:i,h:s,moved:l,static:t.static}}})).actions(t=>({set(e){const{x:n,y:i,w:s,h:l,moved:o}=e;t.x=n,t.y=i,t.w=s,t.h=l,t.moved=!!o,t.static=!!e.static}})),xc=y.types.model("PanelStyleBorderModel",{enabled:y.types.boolean}).views(t=>({get json(){const{enabled:e}=t;return{enabled:e}}})).actions(t=>({setEnabled(e){t.enabled=e}})),Cc=y.types.model("PanelStyleModel",{border:xc}).views(t=>({get json(){const{border:e}=t;return{border:e.json}}})).actions(t=>({})),wc=y.types.model("PanelVizModel",{type:y.types.string,conf:y.types.frozen()}).views(t=>({get json(){return{type:t.type,conf:t.conf}}})).actions(t=>({setType(e){t.type=e},setConf(e){t.conf=e}})),Sc=y.types.model({id:y.types.string,title:y.types.string,description:y.types.string,layout:bc,queryID:y.types.string,viz:wc,style:Cc}).views(t=>({get json(){const{id:e,title:n,description:i,queryID:s}=t;return{id:e,title:n,description:i,layout:t.layout.json,queryID:s,viz:t.viz.json,style:t.style.json}}})).actions(t=>({setID(e){t.id=e},setTitle(e){t.title=e},setDescription(e){t.description=e},setQueryID(e){t.queryID=e}})).actions(t=>({})),Ic=y.types.model("PanelsModel",{list:y.types.optional(y.types.array(Sc),[])}).views(t=>({get json(){return t.list.map(e=>e.json)},get layouts(){return t.list.map(e=>({...e.layout.json,i:e.id}))},findByID(e){return t.list.find(n=>n.id===e)}})).actions(t=>({replace(e){t.list=y.cast(e)},addANewPanel(){const e=U.randomId();t.list.push({id:e,layout:{x:0,y:1/0,w:3,h:15},title:`Panel - ${e}`,description:"<p><br></p>",queryID:"",viz:{type:qt.name,conf:qt.createConfig()},style:{border:{enabled:!0}}})},append(e){t.list.push(e)},remove(e){t.list.splice(e,1)},removeByID(e){const n=t.list.findIndex(i=>i.id===e);n!==-1&&t.list.splice(n,1)},duplicateByID(e){const n=t.list.find(i=>i.id===e);if(!n){console.error(new Error(`[duplicate panel] Can't find a panel by id[${e}]`));return}t.list.push({...n.json,id:U.randomId(),layout:{...n.layout,x:0,y:1/0,moved:!1}})},replaceByIndex(e,n){t.list.splice(e,1,n)}})),Zt=y.types.model({id:y.types.identifier,name:y.types.string,type:y.types.string,config:y.types.frozen(),panels:Ic}).views(t=>({get json(){const{id:e,name:n,type:i,config:s}=t;return{id:e,name:n,type:i,config:s,panels:t.panels.json}}})).actions(t=>({setName(e){t.name=e},setType(e){t.type!==e&&(e===fe.Modal?t.config={width:"600px",height:"400px"}:t.config={},t.type=e)},setConfig(e){t.config=e},updateConfig(e,n){t.config={...t.config,[e]:n}}})).actions(t=>({})),Ht=y.types.model("ViewsModel",{original:y.types.optional(y.types.array(Zt),[]),current:y.types.optional(y.types.array(Zt),[]),visibleViewIDs:y.types.array(y.types.string),idOfVIE:y.types.string}).views(t=>({get changed(){return t.original.length!==t.current.length?!0:t.original.some((e,n)=>!O.default.isEqual(e.json,t.current[n].json))},get json(){return t.current.map(e=>e.json)},findByID(e){return t.current.find(n=>n.id===e)},get isVIETheFirstView(){return t.current.length===0||!t.idOfVIE?!1:t.current[0].id===t.idOfVIE},get firstVisibleView(){const[e]=t.visibleViewIDs;return t.current.find(({id:n})=>n===e)},get visibleViews(){const e=new Set(t.visibleViewIDs);return t.current.filter(({id:n})=>e.has(n))},get VIE(){return t.current.find(({id:e})=>e===t.idOfVIE)},get options(){return t.current.map(e=>({label:e.name,value:e.id,type:e.type}))}})).actions(t=>({reset(){const e=t.original.map(n=>({...n.json,panels:{list:n.panels.json}}));t.current.length=0,t.current.unshift(...e)},replace(e){t.current=y.cast(e)},addANewView(e,n,i){t.current.push({id:e,name:e,type:n,config:i,panels:{list:[]}})},append(e){t.current.push(e)},remove(e){t.current.splice(e,1)},removeByID(e){const n=t.current.findIndex(i=>i.id===e);n!==-1&&t.current.splice(n,1)},replaceByIndex(e,n){t.current.splice(e,1,n)},setIDOfVIE(e){t.idOfVIE=e,t.visibleViewIDs.length=0,t.visibleViewIDs.push(e)},addAPanelToVIE(){var e;(e=t.VIE)==null||e.panels.addANewPanel()}})).actions(t=>({addARandomNewView(){const e=U.randomId();t.addANewView(e,fe.Division,{}),t.setIDOfVIE(e)},removeVIE(){t.current.length!==1&&(t.removeByID(t.idOfVIE),t.setIDOfVIE(t.current[0].id))},rmVisibleViewID(e){const n=t.visibleViewIDs.findIndex(i=>i===e);n!==-1&&t.visibleViewIDs.splice(n,1)}}));function Lr(t){const e=t.length>0?[t[0].id]:[],n=t.length>0?t[0].id:"",i=t.map(s=>({...s,panels:{list:s.panels}}));return Ht.create({original:i,current:i,visibleViewIDs:e,idOfVIE:n})}const Dc=y.types.model({id:y.types.identifier,name:y.types.string,filters:Pr,queries:Gr,sqlSnippets:Br,views:Ht,context:Rr}).views(t=>({get payloadForSQL(){return{context:t.context.current,sqlSnippets:t.sqlSnippets.current,filterValues:t.filters.values}},get data(){return t.queries.current.map(({id:n,data:i})=>({id:n,data:i})).reduce((n,i)=>(n[i.id]=i.data,n),{})},getDataStuffByID(e){const n=t.queries.findByID(e);return n?{data:n.data.toJSON(),state:n.state,error:void 0}:{data:[],state:"idle",error:void 0}},getDataStateByID(e){var n,i;return(i=(n=t.queries.findByID(e))==null?void 0:n.state)!=null?i:[]},getDataErrorByID(e){var n,i;return(i=(n=t.queries.findByID(e))==null?void 0:n.error)!=null?i:[]}}));function en({id:t,name:e,filters:n,views:i,definition:{queries:s,sqlSnippets:l}},o){return Dc.create({id:t,name:e,filters:zr(n),queries:{original:s,current:s},sqlSnippets:{original:l,current:l},context:o,views:Lr(i)})}const ud="",Tc=A.observer(function({context:e,dashboard:n,update:i,className:s="dashboard",config:l}){De.baseURL!==l.apiBaseURL&&(De.baseURL=l.apiBaseURL);const[o,u]=b.default.useState(!1),d=b.default.useMemo(()=>en(n,e),[n]);b.default.useEffect(()=>{d.context.replace(e)},[e]);const h=async()=>{const m=[...d.queries.current],g=[...d.sqlSnippets.current],v=[...d.views.json],_={...n,filters:[...d.filters.current],views:v,definition:{sqlSnippets:g,queries:m}};await i(_)},f=L.useCreation(vr,[]);return r(he.ModalsProvider,{children:r(vt,{value:d,children:r(le.Provider,{value:{layoutFrozen:o,freezeLayout:u,inEditMode:!0,inUseMode:!1},children:r(a.Box,{className:`${s} dashboard-root`,sx:{position:"relative"},children:r(ge.Provider,{value:f,children:d.views.visibleViews.map(m=>r(Tr,{view:m,saveDashboardChanges:h},m.id))})})})})})});function _c({context:t,dashboard:e,className:n="dashboard",config:i}){De.baseURL!==i.apiBaseURL&&(De.baseURL=i.apiBaseURL);const s=b.default.useMemo(()=>en(e,t),[e]);return b.default.useEffect(()=>{s.context.replace(t)},[t]),r(he.ModalsProvider,{children:r(vt,{value:s,children:r(le.Provider,{value:{layoutFrozen:!0,freezeLayout:O.default.noop,inEditMode:!1,inUseMode:!0},children:r(a.Box,{className:`${n} dashboard-root dashboard-sticky-parent`,children:s.views.visibleViews.map(l=>r(_r,{view:l},l.id))})})})})}D.ContextModel=Rr,D.Dashboard=Tc,D.DashboardFilterType=Pn,D.DashboardMode=Vn,D.EViewComponentType=fe,D.FilterModel=Xt,D.FiltersModel=Pr,D.LayoutStateContext=le,D.MainDashboardView=Tr,D.ModelContextProvider=vt,D.Panel=at,D.PanelContextProvider=Sn,D.QueriesModel=Gr,D.QueryModel=qr,D.ReadOnlyDashboard=_c,D.ReadOnlyDashboardView=_r,D.SQLSnippetModel=Kt,D.SQLSnippetsModel=Br,D.ViewModel=Zt,D.ViewsModel=Ht,D.createDashboardModel=en,D.createDashboardViewsModel=Lr,D.getInitialFiltersPayload=zr,D.useModelContext=Q,D.usePanelContext=K,Object.defineProperties(D,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
81
+ `}}const id={legend:{show:!0,bottom:0,left:0},tooltip:{trigger:"item"}};function od(e,t){const n=["#66B4DB","#39BFA2","#E46464","#33A678","#EEBA00","#9D88CB","#939943","#E49792","#09A2B8","#AF5F6B","#6CA157","#09A2B8","#6398C7","#E692BA","#97B566","#8CACE2","#CA79AC","#6DBC80","#B08F4B","#826BAF"],r=e.dimensions.map(({name:s,max:u})=>({name:s,max:u})),i=t.map(s=>({value:e.dimensions.map(({data_key:u})=>s[u]),name:s[e.series_name_key]})),l={radar:{indicator:r,splitArea:{show:!1}},tooltip:{formatter:rd(e)},legend:{show:!0,left:"center"},series:{type:"radar",data:i,symbolSize:4,lineStyle:{width:1},areaStyle:{opacity:.4},label:nd(e)},color:n};return z.default.merge({},id,l)}const fn={series_name_key:"name",dimensions:[]};Z.use([he.RadarChart,W.GridComponent,W.LegendComponent,W.TooltipComponent,we.CanvasRenderer]);function ad({context:e}){const{value:t}=L(e.instanceData,"config"),{width:n,height:r}=e.viewport,i=e.data,l=w.useMemo(()=>od(_.defaultsDeep({},t,fn),i),[t,i]);return!n||!r||!t||_.isEmpty(t==null?void 0:t.dimensions)?null:o(a.Box,{children:o(_e.default,{echarts:Z,option:l,style:{width:n,height:r}})})}function ld({control:e,index:t,remove:n,data:r}){return g(a.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:`dimensions.${t}.name`,control:e,render:({field:i})=>o(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),o(S.Controller,{name:`dimensions.${t}.data_key`,control:e,render:({field:i})=>o(Q,{label:"Data Key",required:!0,data:r,sx:{flex:1},...i})}),o(S.Controller,{name:`dimensions.${t}.max`,control:e,render:({field:i})=>o(a.NumberInput,{label:"Max",hideControls:!0,required:!0,sx:{flex:1},...i})})]}),g(a.Stack,{children:[o(a.Divider,{mb:-15,variant:"dashed",label:"Value Formatter",labelPosition:"center"}),o(S.Controller,{name:`dimensions.${t}.formatter`,control:e,render:({field:i})=>o(Ot,{...i})})]}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},disabled:t===0,children:o(V.Trash,{size:16})})]},t)}function sd({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=S.useFieldArray({control:e,name:"dimensions"}),s=t("dimensions"),u=r.map((p,c)=>({...p,...s[c]})),d=()=>i({name:J.randomId(),data_key:"",max:100,formatter:je});return g(a.Stack,{children:[u.map((p,c)=>o(ld,{data:n,control:e,index:c,remove:l})),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:d,children:"Add a Dimension"})})]})}function ud(e){function t({name:n="",data_key:r="",max:i=10,formatter:l=je}){return{name:n,data_key:r,max:i,formatter:l}}return e.map(t)}function dd({context:e}){const t=e.data,{value:n,set:r}=L(e.instanceData,"config"),i=w.useMemo(()=>_.defaultsDeep({},n,fn),[n]),{dimensions:l,series_name_key:s}=i,u=w.useMemo(()=>({dimensions:ud(l!=null?l:[]),series_name_key:s}),[l,s]);w.useEffect(()=>{!_.isEqual(i,u)&&r(u)},[i,u]);const{control:d,handleSubmit:p,watch:c,getValues:f,reset:m}=S.useForm({defaultValues:u});w.useEffect(()=>{_.isEqual(f(),u)||m(u)},[i]),c(["series_name_key"]);const v=f(),b=w.useMemo(()=>!_.isEqual(v,i),[v,i]);return o(a.Stack,{mt:"md",spacing:"xs",children:g("form",{onSubmit:p(r),children:[g(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[o(a.Text,{children:"Chart Config"}),o(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!b,children:o(V.DeviceFloppy,{size:20})})]}),o(a.Box,{py:"sm",children:o(S.Controller,{name:"series_name_key",control:d,render:({field:I})=>o(Q,{label:"Series Name Field",required:!0,data:t,sx:{flex:1},...I})})}),o(sd,{control:d,watch:c,data:t})]})})}class cd extends ge{constructor(){super(...arguments);$(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const gd={displayName:"Radar Chart",migrator:new cd,name:"radar",viewRender:ad,configRender:dd,createConfig:()=>fn};function pd(e,t){switch(e.config.method){case"linear":return[...Ie.regressionLinear()(t)];case"exponential":return[...Ie.regressionExp()(t)];case"logarithmic":return[...Ie.regressionLog()(t)];case"polynomial":return[...Ie.regressionPoly().order(e.config.order)(t)];default:return[]}}function fd({regression:e},t){const n=[],r=[];if(t.length===0)return{regressionSeries:n,regressionXAxes:r};const{transform:i,plot:l,name:s}=e,u=pd(i,t);return n.push({...l,name:s,data:u,showSymbol:!1,smooth:!0,tooltip:{show:!1}}),{regressionSeries:n,regressionXAxes:r}}const hd={tooltip:{trigger:"axis"},grid:{top:10,left:30,right:15,bottom:30,containLabel:!0},dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}]};function md(e,t){var l,s;const n=z.default.uniqBy(t.map(u=>[u[e.x_axis.data_key],u[e.regression.y_axis_data_key]]),0),{regressionSeries:r}=fd(e,n),i={xAxis:{type:"category",name:(l=e.x_axis.name)!=null?l:""},yAxis:{name:(s=e.y_axis.name)!=null?s:""},series:[{data:n,name:e.y_axis.name,type:"scatter",symbolSize:4,color:"red"},...r]};return _.defaultsDeep({},i,hd)}function ft(e,t,n){return 1-(1-e)*(t-1)/(t-n-1)}function vd(e,t){if(!t)return{expression:"",rSquared:0,adjustedRSquared:0};const{regression:n,x_axis:r,y_axis:i}=t,l=e.map(s=>[s[r.data_key],s[n.y_axis_data_key]]);if(n.transform.config.method==="linear"){const s=Ie.regressionLinear()(l),{a:u,b:d,rSquared:p}=s;return{expression:g(a.Group,{position:"center",noWrap:!0,spacing:10,children:[o(a.Text,{children:i.name}),o(a.Text,{children:"="}),o(a.Text,{weight:"bold",color:"gray",children:d}),o(a.Text,{children:"+"}),o(a.Text,{weight:"bold",color:"gray",children:u}),o(a.Text,{children:"\xD7"}),o(a.Text,{children:r.name})]}),rSquared:p,adjustedRSquared:ft(p,e.length,1)}}if(n.transform.config.method==="exponential"){const{a:s,b:u,rSquared:d}=Ie.regressionExp()(l);return{expression:g(a.Group,{position:"center",noWrap:!0,spacing:10,children:[o(a.Text,{children:i.name}),o(a.Text,{children:"="}),o(a.Text,{weight:"bold",color:"gray",children:s}),o(a.Text,{children:"\xD7"}),g(a.Group,{position:"left",noWrap:!0,spacing:2,children:[o(a.Text,{children:"Math.exp("}),o(a.Text,{weight:"bold",color:"gray",children:u}),o(a.Text,{children:"\xD7"}),o(a.Text,{children:r.name}),o(a.Text,{children:")"})]})]}),rSquared:d,adjustedRSquared:ft(d,e.length,1)}}if(n.transform.config.method==="logarithmic"){const{a:s,b:u,rSquared:d}=Ie.regressionLog()(l);return{expression:g(a.Group,{position:"center",noWrap:!0,spacing:10,children:[o(a.Text,{children:i.name}),o(a.Text,{children:"="}),o(a.Text,{weight:"bold",color:"gray",children:s}),o(a.Text,{children:"\xD7"}),g(a.Group,{position:"left",noWrap:!0,spacing:2,children:[o(a.Text,{children:"Math.log("}),o(a.Text,{children:r.name}),o(a.Text,{children:")"}),o(a.Text,{children:"+"}),o(a.Text,{weight:"bold",color:"gray",children:u})]})]}),rSquared:d,adjustedRSquared:ft(d,e.length,1)}}if(n.transform.config.method==="polynomial"){const s=Ie.regressionPoly().order(n.transform.config.order)(l),{rSquared:u}=s;return console.log(s),{expression:"",rSquared:u,adjustedRSquared:ft(u,e.length,1)}}return{expression:"",rSquared:0}}const hn={x_axis:{name:"X Axis",data_key:""},y_axis:{name:"Y Axis"},regression:{transform:{type:"ecStat:regression",config:{method:"linear",order:1,formulaOn:"end"}},plot:{type:"line",yAxisIndex:0,color:"#228be6",lineStyle:{type:"solid",width:1}},name:"regression",y_axis_data_key:"value"}};Z.use([W.DataZoomComponent,he.ScatterChart,W.GridComponent,W.LegendComponent,W.TooltipComponent,we.CanvasRenderer]),Z.registerTransform($n.transform.regression);function yd({context:e}){const{value:t}=L(e.instanceData,"config"),{width:n,height:r}=e.viewport,i=w.useMemo(()=>{var m;const c=e.data,f=(m=t==null?void 0:t.regression)==null?void 0:m.y_axis_data_key;return f?c.map(v=>typeof v[f]=="number"?v:{...v,[f]:Number(v[f])}):c},[e.data,t==null?void 0:t.regression.y_axis_data_key]),l=w.useMemo(()=>md(_.defaultsDeep({},t,hn),i),[t,i]),{expression:s,rSquared:u,adjustedRSquared:d}=w.useMemo(()=>vd(i,t),[t,i]);if(!n||!r||!t)return null;let p=r;return s&&(p-=20),g(a.Box,{children:[s&&o(a.Text,{align:"center",size:12,children:s}),g(a.Group,{spacing:0,noWrap:!0,align:"start",sx:{"> *":{flexGrow:0,flexShrink:0}},children:[o(_e.default,{echarts:Z,option:l,style:{width:n-190,height:p}}),u&&o(a.Table,{mt:20,fontSize:12,sx:{width:180,border:"1px solid #999",td:{padding:"3px 8px"}},children:g("tbody",{children:[g("tr",{children:[o("td",{children:"R-Sq"}),o("td",{style:{textAlign:"right"},children:ae.default(u).format({output:"percent",mantissa:1})})]}),g("tr",{children:[o("td",{children:"R-Sq(Adjusted)"}),o("td",{style:{textAlign:"right"},children:ae.default(d).format({output:"percent",mantissa:1})})]})]})})]})]})}const bd=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}];function Cd({control:e,watch:t,data:n}){const r=t("regression.transform.config.method");return g(a.Stack,{children:[g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:"regression.name",control:e,render:({field:i})=>o(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),o(S.Controller,{name:"regression.y_axis_data_key",control:e,render:({field:i})=>o(Q,{label:"Value Field",required:!0,data:n,sx:{flex:1},...i})})]}),g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:"regression.transform.config.method",control:e,render:({field:i})=>o(a.Select,{label:"Method",data:bd,sx:{flex:1},...i})}),r==="polynomial"&&o(S.Controller,{name:"regression.transform.config.order",control:e,render:({field:i})=>o(a.NumberInput,{label:"Order",sx:{flex:1},...i})})]}),g(a.Stack,{spacing:4,children:[o(a.Text,{size:"sm",children:"Color"}),o(S.Controller,{name:"regression.plot.color",control:e,render:({field:i})=>o(De,{...i})})]})]})}function xd({context:e}){const{value:t,set:n}=L(e.instanceData,"config"),r=e.data,i=w.useMemo(()=>_.defaults({},t,hn),[t]),{control:l,handleSubmit:s,watch:u,getValues:d,reset:p}=S.useForm({defaultValues:i});w.useEffect(()=>{p(i)},[i]),u(["x_axis","y_axis","regression"]);const c=d(),f=w.useMemo(()=>!_.isEqual(c,t),[c,t]);return o(a.Stack,{mt:"md",spacing:"xs",children:g("form",{onSubmit:s(n),children:[g(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[o(a.Text,{children:"Chart Config"}),o(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!f,children:o(V.DeviceFloppy,{size:20})})]}),g(a.Accordion,{multiple:!0,defaultValue:["Axis","Regression"],children:[g(a.Accordion.Item,{value:"Axis",children:[o(a.Accordion.Control,{children:"Axis"}),g(a.Accordion.Panel,{children:[g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:"x_axis.name",control:l,render:({field:m})=>o(a.TextInput,{label:"X Axis Name",sx:{flex:1},...m})}),o(S.Controller,{name:"x_axis.data_key",control:l,render:({field:m})=>o(Q,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...m})})]}),o(a.Group,{grow:!0,noWrap:!0,children:o(S.Controller,{name:"y_axis.name",control:l,render:({field:m})=>o(a.TextInput,{label:"Y Axis Name",sx:{flex:1},...m})})})]})]}),g(a.Accordion.Item,{value:"Regression",children:[o(a.Accordion.Control,{children:"Regression Line"}),o(a.Accordion.Panel,{children:o(Cd,{control:l,watch:u,data:r})})]})]})]})})}class Sd extends ge{constructor(){super(...arguments);$(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const wd={displayName:"Regression Chart",migrator:new Sd,name:"regressionChart",viewRender:yd,configRender:xd,createConfig:()=>hn},mn={x_axis:{name:"X Axis",data_key:""},data_key:"value",bar:{name:"Value",color:"#228be6"},line:{name:"Value",color:"red"}};function vn(e){return ae.default(e).format({output:"percent",mantissa:0})}function _d(e){const t=e.value[1];try{return vn(t)}catch(n){return console.error(n),t}}function Id(e){const t=Array.isArray(e)?e:[e];if(t.length===0)return"";const n=t.map((r,i)=>{const l=r.seriesName,[s,u]=r.value;return l?`${l}: <strong>${(i===0?p=>p:vn)(u)}</strong>`:u});return n.unshift(`<strong>${t[0].name}</strong>`),n.join("<br />")}Z.use([he.BarChart,he.LineChart,W.DataZoomComponent,W.GridComponent,W.LegendComponent,W.TooltipComponent,we.CanvasRenderer]);function Dd({context:e}){const{value:t}=L(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{x_axis:l,data_key:s,bar:u,line:d}=_.defaults({},t,mn),{barData:p,lineData:c}=w.useMemo(()=>{const m=n.map(I=>[I[l.data_key],Number(I[s])]).sort((I,A)=>A[1]-I[1]),v=m.reduce((I,A)=>I+A[1],0),b=m.reduce((I,A,T)=>{const k=T===0?0:I[T-1][1];return I.push([A[0],k+A[1]]),I},[]).map(I=>[I[0],I[1]/v]);return{barData:m,lineData:b}},[l.data_key,s,n]),f={dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}],tooltip:{trigger:"axis",formatter:Id},xAxis:[{type:"category",name:l.name,nameLocation:"middle",nameGap:30,nameTextStyle:{fontWeight:"bold",align:"right"}}],yAxis:[{name:u.name,nameGap:30,nameTextStyle:{fontWeight:"bold",align:"right"}},{name:d.name,nameGap:30,nameTextStyle:{fontWeight:"bold",align:"center"},axisLabel:{show:!0,formatter:vn}}],series:[{name:u.name,type:"bar",itemStyle:{color:u.color},yAxisIndex:0,data:p},{name:d.name,type:"line",itemStyle:{color:d.color},symbolSize:2,lineStyle:{width:1},label:{show:!0,position:"top",formatter:_d},yAxisIndex:1,data:c}]};return!t||!r||!i?null:o(_e.default,{echarts:Z,option:f,style:{width:r,height:i}})}function Ad({context:e}){const{value:t,set:n}=L(e.instanceData,"config"),r=e.data,i=w.useMemo(()=>_.defaults({},t,mn),[t]),{control:l,handleSubmit:s,watch:u,getValues:d,reset:p}=S.useForm({defaultValues:i});w.useEffect(()=>{p(i)},[i]),u(["x_axis","data_key","bar","line"]);const c=d(),f=w.useMemo(()=>!_.isEqual(c,t),[c,t]);return o(a.Stack,{mt:"md",spacing:"xs",children:g("form",{onSubmit:s(n),children:[g(a.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[o(a.Text,{children:"Chart Config"}),o(a.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!f,children:o(V.DeviceFloppy,{size:20})})]}),g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:"x_axis.name",control:l,render:({field:m})=>o(a.TextInput,{label:"X Axis Name",sx:{flex:1},...m})}),o(S.Controller,{name:"x_axis.data_key",control:l,render:({field:m})=>o(Q,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...m})})]}),o(S.Controller,{name:"data_key",control:l,render:({field:m})=>o(Q,{label:"Y Axis Data Field",required:!0,data:r,sx:{flex:1},...m})}),o(a.Divider,{my:"md",label:"Bar",labelPosition:"center"}),g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:"bar.name",control:l,render:({field:m})=>o(a.TextInput,{label:"Bar Name",sx:{flex:1},...m})}),g(a.Stack,{spacing:4,children:[o(a.Text,{size:"sm",children:"Bar's Color"}),o(S.Controller,{name:"bar.color",control:l,render:({field:m})=>o(De,{...m})})]})]}),o(a.Divider,{my:"md",label:"Line",labelPosition:"center"}),g(a.Group,{grow:!0,noWrap:!0,children:[o(S.Controller,{name:"line.name",control:l,render:({field:m})=>o(a.TextInput,{label:"Line Name",sx:{flex:1},...m})}),g(a.Stack,{spacing:4,children:[o(a.Text,{size:"sm",children:"Line's Color"}),o(S.Controller,{name:"line.color",control:l,render:({field:m})=>o(De,{...m})})]})]})]})})}class Md extends ge{constructor(){super(...arguments);$(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Vd={displayName:"Pareto Chart",migrator:new Md,name:"paretoChart",viewRender:Dd,configRender:Ad,createConfig:()=>mn},Ed=[{value:"#25262B",name:"Dark"},{value:"#868E96",name:"Gray"},{value:"#FA5252",name:"Red"},{value:"#E64980",name:"Pink"},{value:"#BE4BDB",name:"Grape"},{value:"#7950F2",name:"Violet"},{value:"#4C6EF5",name:"Indigo"},{value:"#228BE6",name:"Blue"},{value:"#15AABF",name:"Cyan"},{value:"#12B886",name:"Teal"},{value:"#40C057",name:"Green"},{value:"#82C91E",name:"Lime"},{value:"#FAB005",name:"Yellow"},{value:"#FD7E14",name:"Orange"}].map(e=>({name:e.name,value:e.value,type:"single",category:"basic"})),Rd=[Ca,xa,_a,wa,Sa,Ia],ti={id:"dashboard",version:Da,manifest:{viz:[sn,Il,Fa,Qs,Ks,nu,cu,Vd,td,gd,wd],color:[...Ed,...Rd]}},Xe=new Ma,ni=()=>{try{Xe.install(ti)}catch{}const e=new va(Xe),t=new Aa(Xe);return{pluginManager:Xe,vizManager:e,colorManager:t}},xe=w.createContext(ni());try{Xe.install(ti)}catch{}function Td(e,t){const{value:n,set:r}=L(e.operation.operationData,"config"),[i,l]=w.useState(_.defaults({},n,t)),s=async()=>{await r(i)};return w.useEffect(()=>{l(_.defaults({},n,t))},[n]),{config:i,setConfig:l,commit:s}}function Fd(e){const{config:t,setConfig:n,commit:r}=Td(e,{urlTemplate:"",openInNewTab:!0});async function i(){await r()}async function l(u){n({...t,openInNewTab:u}),await r()}const s=u=>n({...t,urlTemplate:u.currentTarget.value});return g(a.Stack,{children:[o(a.TextInput,{label:"Url",value:t.urlTemplate,onChange:s,onBlur:i}),o(a.Switch,{label:"Open in new Tab",checked:t.openInNewTab,onChange:u=>l(u.currentTarget.checked)})]})}function $d(e){return _.cloneDeepWith(e,n=>{if(typeof n=="string")return encodeURIComponent(n)})}async function Pd(e,t){const{urlTemplate:n,openInNewTab:r}=await t.operationData.getItem("config"),l=_.template(n||"")($d(e));window.open(l,r?"_blank":"_self","noopener")}const kd={displayName:"Open Link",id:"builtin:op:open-link",configRender:Fd,run:Pd};function Od(e){const{value:t,set:n}=L(e.operationData,"config"),r=i=>void n({template:i});return[(t==null?void 0:t.template)||"",r]}function zd(e){const[t,n]=Od(e.operation);return o(a.TextInput,{defaultValue:t,onBlur:r=>n(r.currentTarget.value),label:"console.log"})}async function Gd(e,t){const n=await t.operationData.getItem("config"),r=_.template(n.template||"");console.log("run with payload",e),console.log(r(e))}const yn=[{displayName:"console.log (debug)",id:"builtin:op:debug",configRender:zd,run:Gd},kd];class Ld{constructor(t,n=yn){$(this,"attachments");this.operations=n;const r=async i=>{const{id:l,schemaRef:s}=await i.getItem(null);return{id:l,schemaRef:s,operationData:new Oe(i,"data")}};this.attachments=new Ft(t,"__OPERATIONS",r)}async runOperation(t,n){const r=await this.attachments.getInstance(t);if(!r){console.warn(`Operation '${t}' is not defined`);return}const i=this.operations.find(l=>l.id===r.schemaRef);if(!i){console.warn(`Operation schema '${r.schemaRef}' is not defined`);return}await i.run(n,r)}async createOrGetOperation(t,n){if(!this.getOperationSchemaList().some(s=>s.id===n.id))throw new Error(`Operation schema '${n.id}' is not defined`);const i=await this.attachments.getInstance(t);return!i||i.schemaRef!==n.id?await this.attachments.create(t,{id:t,schemaRef:n.id,data:{}}):i}getOperationList(){return this.attachments.list()}getOperationSchemaList(){return this.operations}removeOperation(t){return this.attachments.remove(t)}async retrieveTrigger(t){return await this.attachments.getInstance(t)}}const ri="__TRIGGERS";class Nd{constructor(t,n){$(this,"attachments");this.instance=t,this.component=n;const r=async i=>{const{id:l,schemaRef:s}=await i.getItem(null);return{id:l,schemaRef:s,triggerData:new Oe(i,"data")}};this.attachments=new Ft(t,ri,r)}watchTriggerSnapshotList(t){return this.instance.instanceData.watchItem(ri,n=>{const r=_.values(n).map(i=>({id:_.get(i,"id"),schemaRef:_.get(i,"schemaRef"),config:K.toJS(_.get(i,"data.config"))}));t(r)},{fireImmediately:!0})}async createOrGetTrigger(t,n,r={recreate:!1}){if(!this.getTriggerSchemaList().some(u=>u.id===n.id))throw new Error(`Trigger schema '${n.id}' is not defined in component '${this.component.name}'`);const l=await this.attachments.getInstance(t);return!l||r.recreate||l.schemaRef!==n.id?await this.attachments.create(t,{id:t,schemaRef:n.id,data:{}}):l}async getTriggerList(){return await this.attachments.list()}getTriggerSchemaList(){return this.component.triggers||[]}async removeTrigger(t){await this.attachments.remove(t)}async retrieveTrigger(t){return await this.attachments.getInstance(t)}}class ii{constructor(t,n,r){$(this,"operationManager");$(this,"triggerManager");$(this,"attachments");this.operationManager=new Ld(t,r),this.triggerManager=new Nd(t,n);const i=async l=>{const{id:s,triggerRef:u,operationRef:d}=await l.getItem(null);return{id:s,triggerRef:u,operationRef:d}};this.attachments=new Ft(t,"__INTERACTIONS",i)}async addInteraction(t,n){const r=t.id,i=n.id,l=`[${r}]:[${i}]`;await this.attachments.create(l,{id:l,triggerRef:r,operationRef:i})}getInteractionList(){return this.attachments.list()}async removeInteraction(t){const n=await this.attachments.getInstance(t);if(!n)return;const{triggerRef:r,operationRef:i}=n;await this.getTriggerRefCount(r)<=1&&await this.triggerManager.removeTrigger(r),await this.getOperationRefCount(i)<=1&&await this.operationManager.removeOperation(i),await this.attachments.remove(t)}async getOperationRefCount(t){return(await this.getInteractionList()).filter(r=>r.operationRef===t).length}async getTriggerRefCount(t){return(await this.getInteractionList()).filter(r=>r.triggerRef===t).length}async runInteraction(t,n){const i=(await this.getInteractionList()).filter(l=>l.triggerRef===t);await Promise.all(i.map(async l=>{try{return await this.operationManager.runOperation(l.operationRef,n)}catch(s){console.warn(`Failed to run operation '${l.operationRef}'`,s)}}))}}function qd(e,t){const[n,r]=w.useState([]);return j.useAsyncEffect(async()=>{const i=await e.getInteractionList();r(i)},[t]),n}const Bd=E.observer(({item:e,manager:t,instance:n,sampleData:r,variables:i,onRemove:l})=>{const{triggerRef:s,operationRef:u}=e,d=ca(t.triggerManager,n);if(j.useAsyncEffect(async()=>{await d.configTrigger(s,r)},[d,s,r]),d.isReady()){const p=[...d.triggerSchema.payload,...i];return g(a.Group,{children:[o(ha,{model:d}),o(sa,{instance:n,operationId:u,variables:p,operationManager:t.operationManager}),o(a.Button,{"aria-label":"delete-interaction",variant:"outline",color:"red",onClick:()=>l(e),children:o(V.Trash,{})})]})}return null}),jd=e=>{const[t,n]=w.useState(0),{interactionManager:r,instance:i,sampleData:l,variables:s}=e,u=qd(r,t),d=async()=>{const c=await r.triggerManager.createOrGetTrigger(J.randomId(),r.triggerManager.getTriggerSchemaList()[0]),f=await r.operationManager.createOrGetOperation(J.randomId(),r.operationManager.getOperationSchemaList()[0]);await r.addInteraction(c,f),n(m=>m+1)};async function p(c){await r.removeInteraction(c.id),n(f=>f+1)}return g(a.Stack,{children:[u.map(c=>o(Bd,{onRemove:p,instance:i,sampleData:l,variables:s,item:c,manager:e.interactionManager},c.id)),o(a.Button,{style:{width:"fit-content"},onClick:()=>d(),children:"Add interaction"})]})},Wd=()=>{const{panel:e,data:t}=ee(),n=e.viz,{vizManager:r}=w.useContext(xe),i=e.json,l=j.useCreation(()=>r.getOrCreateInstance(i),[r,n.type]),s=j.useCreation(()=>new ii(l,r.resolveComponent(n.type),yn),[l,n.type]);return w.useEffect(()=>l.instanceData.watchItem(null,_.throttle(u=>{e.viz.setConf(u)},100,{leading:!1,trailing:!0})),[l]),{instance:l,vizManager:r,interactionManager:s,sampleData:t,variables:[]}},Ud=()=>{const e=Wd();return o(jd,{...e})},Qd=E.observer(()=>{const{panel:e}=ee(),[t,n]=C.default.useState(e.description),r=e.description!==t,i=C.default.useCallback(()=>{!r||e.setDescription(t)},[r,t]);return g(a.Stack,{spacing:4,sx:{flexGrow:1},children:[g(a.Group,{align:"end",children:[o(a.Text,{sx:{flexGrow:1},children:"Description"}),o(a.ActionIcon,{variant:"subtle",color:"blue",disabled:!r,onClick:i,children:o(V.DeviceFloppy,{size:20})})]}),o(wt.RichTextEditor,{value:t,onChange:n,sx:{flexGrow:1},sticky:!0,p:"0"})]})}),Hd=E.observer(()=>{const{panel:e}=ee(),{style:t}=e;return o(U,{children:o(a.Switch,{label:"Border",checked:t.border.enabled,onChange:n=>t.border.setEnabled(n.currentTarget.checked)})})}),Yd=E.observer(()=>{const{panel:{title:e,style:{border:t}}}=ee();return o(ke,{children:g(a.Stack,{mx:"auto",mt:"xl",p:"5px",spacing:5,sx:{width:"600px",height:"450px",background:"transparent",borderRadius:"5px",border:"1px solid #ced4da",borderWidth:t.enabled?"1px":"0px"},children:[g(a.Group,{position:"apart",noWrap:!0,sx:{flexGrow:0,flexShrink:0},children:[o(a.Group,{children:o(ar,{})}),o(a.Group,{grow:!0,position:"center",children:o(a.Text,{lineClamp:1,weight:"bold",children:e})}),o(a.Group,{position:"right",spacing:0,sx:{height:"28px"}})]}),o(a.Group,{sx:{background:"#eee",flexGrow:1}})]})})}),Xd=E.observer(()=>{const{panel:e}=ee(),{title:t,setTitle:n}=e,[r,i]=J.useInputState(t),l=t!==r,s=C.default.useCallback(()=>{!l||n(r)},[l,r]);return o(a.TextInput,{value:r,onChange:i,label:g(a.Group,{align:"apart",children:[o(a.Text,{sx:{flexGrow:1},children:"Panel Title"}),o(a.ActionIcon,{variant:"subtle",color:"blue",disabled:!l,onClick:s,children:o(V.DeviceFloppy,{size:20})})]}),styles:{label:{display:"block",paddingBottom:"4px"}}})});function Jd(){return g(a.Group,{grow:!0,noWrap:!0,align:"stretch",sx:{height:"100%"},children:[g(a.Stack,{sx:{width:"40%",flexShrink:0,flexGrow:0,height:"100%"},children:[o(a.Divider,{label:"Style",labelPosition:"center",variant:"dashed"}),o(Hd,{}),o(a.Divider,{label:"Info",labelPosition:"center",variant:"dashed"}),o(Xd,{}),o(Qd,{})]}),o(a.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:o(Yd,{})})]})}const Kd=E.observer(function(){const t=Y(),{panel:{queryID:n,setQueryID:r}}=ee(),i=C.default.useMemo(()=>t.queries.current.map(l=>({value:l.id,label:l.id})),[t.queries.current]);return g(a.Stack,{children:[g(a.Group,{position:"left",sx:{maxWidth:"600px",alignItems:"baseline"},children:[o(a.Text,{children:"Select a Query"}),o(a.Select,{data:i,value:n,onChange:r,allowDeselect:!1,clearable:!1,sx:{flexGrow:1}})]}),o(Yn,{id:n})]})});function oi(e,t,n){const r=j.useCreation(()=>new Set,[]),i=e.resolveComponent(t.type),[l,s]=w.useState(!1);return j.useAsyncEffect(async()=>{if(await i.migrator.needMigration(t)&&!r.has(t.id))try{r.add(t.id),await i.migrator.migrate(t),n==null||n()}finally{r.delete(t.id),s(!0)}else s(!0)},[t]),l}function Zd({setVizConf:e,...t}){const{vizManager:n,panel:r}=t,i=n.getOrCreateInstance(r),l=oi(n,i,()=>{_t.showNotification({title:`${r.title} - Updated`,message:"Your plugin configuration has been migrated to the latest version"})});return j.useAsyncEffect(async()=>{await i.instanceData.setItem(null,r.viz.conf)},[i,r.viz.type]),w.useEffect(()=>i.instanceData.watchItem(null,s=>{e(s)}),[e,r.viz.type]),l?o(ba,{...t}):o(a.Text,{children:"Checking update..."})}function ec(e){const{vizManager:t,panel:n}=e,r=t.getOrCreateInstance(n);return oi(t,r,()=>{_t.showNotification({title:`${n.title} - Updated`,message:"Your plugin configuration has been migrated to the latest version"})})?o(ya,{...e}):o(a.Text,{children:"Checking update"})}const Eg="";function tc(e,t){const{vizManager:n}=w.useContext(xe),{panel:{viz:r,title:i,id:l,description:s,queryID:u,style:d}}=ee(),p={title:i,id:l,description:s,queryID:u,viz:r,layout:t,style:d.json};try{return n.resolveComponent(r.type),o(ec,{panel:p,data:e,vizManager:n})}catch(c){return console.info(_.get(c,"message")),null}}const nc=["richText"],ai=E.observer(function({height:t,viz:n,data:r,loading:i}){const{ref:l,width:s,height:u}=J.useElementSize(),d=C.default.useMemo(()=>!Array.isArray(r)||r.length===0,[r]),p=tc(r,{w:s,h:u});return nc.includes(n.type)?o("div",{className:"viz-root",style:{height:t},ref:l,children:o(ke,{children:p})}):i?o("div",{className:"viz-root",style:{height:t},ref:l,children:o(a.LoadingOverlay,{visible:i,exitTransitionDuration:0})}):g("div",{className:"viz-root",style:{height:t},ref:l,children:[d&&o(a.Text,{color:"gray",align:"center",children:"Empty Data"}),!d&&o(ke,{children:p})]})}),rc=E.observer(()=>{const{data:e,loading:t,panel:{viz:n}}=ee();return o(ai,{viz:n,data:e,loading:t,height:"100%"})}),bn=[];function ic(){const{vizManager:e}=w.useContext(xe);return w.useMemo(()=>e.availableVizList.map(t=>({value:t.name,label:t.displayName})).concat(bn),[e])}function oc(e,t){try{return e.resolveComponent(t).createConfig()}catch{return null}}function ac(){const{data:e,panel:{viz:t,title:n,queryID:r,description:i,setDescription:l,setTitle:s,setQueryID:u,id:d,style:p}}=ee(),{vizManager:c}=w.useContext(xe),f={title:n,description:i,viz:t,queryID:r,id:d,style:p.json},m={setDescription:l,setQueryID:u,setTitle:s};try{return c.resolveComponent(f.viz.type),o(Zd,{setVizConf:t.setConf,panel:f,panelInfoEditor:m,vizManager:c,data:e})}catch(v){return console.info(_.get(v,"message")),null}}const lc=E.observer(()=>{const{data:e,panel:{viz:t}}=ee(),[n,r]=J.useInputState(t.type),i=t.type!==n,{vizManager:l}=w.useContext(xe),s=C.default.useCallback(()=>{if(!i)return;const v=oc(l,n);t.setType(n),t.setConf(v||{})},[t,i,n]),u=v=>{try{t.setConf(JSON.parse(v))}catch(b){console.error(b)}},d=C.default.useMemo(()=>{var v;return(v=bn.find(b=>b.value===n))==null?void 0:v.Panel},[n,bn]),p=ac(),c=d?w.createElement(d,{data:e,conf:t.conf,setConf:t.setConf}):null,f=p||c,m=ic();return g(U,{children:[o(a.Select,{label:"Visualization",value:n,onChange:r,data:m,rightSection:o(a.ActionIcon,{disabled:!i,onClick:s,children:o(V.DeviceFloppy,{size:20})})}),f,!f&&o(a.JsonInput,{minRows:20,label:"Config",value:JSON.stringify(t.conf,null,2),onChange:u})]})});function sc(){return g(a.Group,{grow:!0,noWrap:!0,align:"stretch",sx:{height:"100%",overflow:"hidden"},children:[o(a.Stack,{sx:{width:"40%",flexShrink:0,flexGrow:0,overflow:"scroll",height:"100%"},children:o(lc,{})}),o(a.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:o(rc,{})})]})}const uc=E.observer(function({opened:t,close:n}){const{freezeLayout:r}=C.default.useContext(ce),[i,l]=w.useState("Visualization"),{panel:s,loading:u}=ee(),{id:d,title:p}=s;return C.default.useEffect(()=>{r(t)},[t]),o(a.Modal,{size:"96vw",overflow:"inside",opened:t,onClose:n,title:`Editing Panel - ${p.trim()?p:d}`,trapFocus:!0,onDragStart:c=>{c.stopPropagation()},children:o(a.AppShell,{sx:{height:"90vh",maxHeight:"calc(100vh - 185px)",".mantine-AppShell-body":{height:"100%"},main:{height:"100%",minHeight:"unset",maxHeight:"100%",width:"100%",padding:"16px"}},padding:"md",children:g(a.Tabs,{value:i,onTabChange:l,className:"panel-settings-tabs",children:[g(a.Tabs.List,{children:[o(a.Tabs.Tab,{value:"Data",children:"Data"}),o(a.Tabs.Tab,{value:"Panel",children:"Panel"}),o(a.Tabs.Tab,{value:"Visualization",children:"Visualization"}),o(a.Tabs.Tab,{value:"Interactions",children:"Interactions"})]}),g(a.Tabs.Panel,{value:"Data",pt:"sm",children:[o(a.LoadingOverlay,{visible:u,exitTransitionDuration:0}),o(Kd,{})]}),o(a.Tabs.Panel,{value:"Panel",pt:"sm",children:i==="Panel"&&o(Jd,{})}),o(a.Tabs.Panel,{value:"Visualization",pt:"sm",children:i==="Visualization"&&o(sc,{})}),o(a.Tabs.Panel,{value:"Interactions",pt:"sm",children:o(ke,{children:o(Ud,{})})})]})})})}),dc=E.observer(({view:e})=>{const t=Y(),n=be.useModals(),[r,i]=C.default.useState(!1),l=()=>i(!0),s=()=>i(!1),{panel:u}=ee(),{id:d,queryID:p}=u,{inEditMode:c}=C.default.useContext(ce),f=()=>t.queries.refetchDataByQueryID(p),{viewPanelInFullScreen:m,inFullScreen:v}=C.default.useContext(Mt),b=()=>{e.panels.duplicateByID(d)},I=()=>n.openConfirmModal({title:"Delete this panel?",labels:{confirm:"Confirm",cancel:"Cancel"},onCancel:()=>console.log("Cancel"),onConfirm:()=>e.panels.removeByID(d)}),A=C.default.useCallback(()=>{m(d)},[d,m]);return g(U,{children:[o(a.Box,{sx:{position:"absolute",top:0,left:0,right:0,zIndex:300},children:g(a.Menu,{withinPortal:!0,children:[o(a.Menu.Target,{children:o(a.Box,{className:"panel-dropdown-target",sx:{width:"100%",height:"25px"}})}),g(a.Menu.Dropdown,{children:[o(a.Menu.Item,{onClick:f,icon:o(V.Refresh,{size:14}),children:"Refresh"}),o(a.Menu.Item,{onClick:()=>t.queries.downloadDataByQueryID(p),icon:o(V.Download,{size:14}),children:"Download Data"}),!v&&o(a.Menu.Item,{onClick:A,icon:o(V.ArrowsMaximize,{size:14}),children:"Full Screen"}),c&&g(U,{children:[o(a.Divider,{label:"Edit",labelPosition:"center"}),o(a.Menu.Item,{onClick:l,icon:o(V.Settings,{size:14}),children:"Settings"}),o(a.Menu.Item,{onClick:b,icon:o(V.Copy,{size:14}),children:"Duplicate"}),o(a.Menu.Item,{color:"red",onClick:I,icon:o(V.Trash,{size:14}),children:"Delete"})]})]})]})}),c&&o(uc,{opened:r,close:s})]})}),Rg="",cc=E.observer(function(){const{panel:t}=ee(),{title:n}=t;return n?o(a.Group,{grow:!0,position:"center",px:20,className:"panel-title-wrapper",sx:{flexGrow:1},children:o(a.Text,{align:"center",lineClamp:1,weight:"bold",children:n})}):null});function gc(e){return!["richText"].includes(e)}const pc={border:"1px solid #ced4da"},fc={border:"1px dashed transparent",transition:"border-color 300ms ease","&:hover":{borderColor:"#ced4da"}},ht=E.observer(function({panel:t,view:n}){const r=Y(),{data:i,state:l}=r.getDataStuffByID(t.queryID),s=gc(t.viz.type)&&l==="loading",u=t.title?"calc(100% - 25px - 5px)":"100%",d=t.style.border.enabled?pc:fc;return o(Qn,{value:{panel:t,data:i,loading:s},children:g(a.Box,{className:"panel-root",p:5,pt:0,sx:{...d},children:[o(a.Box,{sx:{position:"absolute",left:0,top:0,height:28,zIndex:310},children:o(ar,{})}),o(dc,{view:n}),o(cc,{}),o(ai,{viz:t.viz,data:i,loading:s,height:u})]})})}),li=E.observer(function({view:t,panel:n,exitFullScreen:r}){return g(a.Stack,{px:"10px",pb:"5px",sx:{height:"100%",flexGrow:1,justifyContent:"flex-start"},children:[o(a.Group,{mx:"-5px",sx:{flexGrow:0},children:o(a.Button,{variant:"default",size:"sm",onClick:r,leftIcon:o(V.ArrowLeft,{size:20}),children:"Exit fullscreen"})}),o(a.Group,{mx:"-5px",grow:!0,sx:{flexGrow:1,flexShrink:0},children:o(ht,{view:t,panel:n})})]})});function si(e){const[t,n]=C.default.useState(null),r=C.default.useCallback(u=>{n(u)},[]),i=C.default.useCallback(()=>{n(null)},[]),l=t?e.panels.findByID(t):null;return{viewPanelInFullScreen:r,exitFullScreen:i,inFullScreen:!!l,fullScreenPanel:l}}function ui(){C.default.useEffect(()=>{const e=lo.default(".dashboard-sticky-area",{useStickyClasses:!0,parentClass:"dashboard-sticky-parent"});return()=>{e==null||e.cleanup()}},[])}const Tg="",hc=C.default.forwardRef(({handleAxis:e},t)=>o(a.ActionIcon,{ref:t,className:"react-grid-customDragHandle",sx:{userSelect:"none",cursor:"grab",position:"absolute",top:0,right:0,zIndex:400,"&:hover":{color:"#228be6"}},variant:"transparent",children:o(V.ArrowsMove,{size:16})})),mc=C.default.forwardRef(({handleAxis:e,...t},n)=>o(a.ActionIcon,{ref:n,className:"react-grid-customResizeHandle",sx:{userSelect:"none",cursor:"nwse-resize",position:"absolute",bottom:-5,right:-5,zIndex:400,"&:hover":{color:"#228be6"}},variant:"transparent",...t,children:o(V.ChevronDownRight,{size:16})})),vc=Dt.WidthProvider(zn.default),yc=E.observer(function({view:t,className:n="layout",rowHeight:r=10,isDraggable:i,isResizable:l}){const s=C.default.useCallback(u=>{u.forEach(({i:d,...p})=>{const c=t.panels.findByID(d);!c||c.layout.set(p)})},[t]);return o(vc,{onLayoutChange:s,className:`dashboard-layout ${n}`,rowHeight:r,layout:t.panels.layouts,isDraggable:i,isResizable:l,draggableHandle:".react-grid-customDragHandle",resizeHandle:o(mc,{}),children:t.panels.list.map((u,d)=>g("div",{"data-grid":{...u.layout},style:{position:"relative"},children:[i&&o(hc,{}),o(ht,{view:t,panel:u})]},u.id))})}),bc=Dt.WidthProvider(zn.default),Cc=E.observer(function({view:t,className:n="layout",rowHeight:r=10}){return o(bc,{className:`dashboard-layout ${n}`,rowHeight:r,isDraggable:!1,isResizable:!1,layout:t.panels.layouts,children:t.panels.list.map(i=>o("div",{"data-grid":i.layout,children:o(ht,{view:t,panel:i})},i.id))})}),xc=E.observer(({children:e})=>o(a.Box,{children:e})),Sc=E.observer(({children:e,view:t})=>o(a.Modal,{size:t.config.width,overflow:"inside",opened:!0,onClose:z.default.noop,withCloseButton:!1,title:t.name,trapFocus:!0,onDragStart:n=>{n.stopPropagation()},styles:{root:{position:"relative",height:"calc(100% - 46px)"},overlay:{position:"absolute !important"},modal:{border:"1px solid #efefef"},body:{"> div":{maxHeight:t.config.height,overflow:"scroll"}}},withinPortal:!1,transitionDuration:0,children:e})),wc=E.observer(({view:e,children:t})=>{switch(e.type){case ve.Modal:return o(Sc,{view:e,children:t});case ve.Division:default:return o(xc,{children:t})}}),di=E.observer(function({view:t,saveDashboardChanges:n}){const{viewPanelInFullScreen:r,exitFullScreen:i,inFullScreen:l,fullScreenPanel:s}=si(t);return ui(),o(Mt.Provider,{value:{viewPanelInFullScreen:r,inFullScreen:l},children:g(a.Box,{className:"dashboard-view",mx:-10,sx:{position:"relative",height:"100%"},children:[l&&o(li,{view:t,panel:s,exitFullScreen:i}),!l&&o(or,{saveChanges:n}),o(wc,{view:t,children:g(a.Box,{className:"dashboard-sticky-parent",children:[o(a.Box,{className:"dashboard-sticky-area",children:o(Wn,{view:t})}),o(a.Box,{sx:{display:l?"none":"block"},children:o(yc,{view:t,isDraggable:!0,isResizable:!0})})]})})]})})}),ci=E.observer(function({view:t}){const{viewPanelInFullScreen:n,exitFullScreen:r,inFullScreen:i,fullScreenPanel:l}=si(t);return ui(),o(Mt.Provider,{value:{viewPanelInFullScreen:n,inFullScreen:i},children:g(a.Box,{className:"dashboard-view",sx:{position:"relative",height:"100%"},children:[i&&o(li,{view:t,panel:l,exitFullScreen:r}),!i&&g(a.Box,{className:"dashboard-sticky-area",children:[o(or,{saveChanges:z.default.noop}),o(Wn,{view:t})]}),o(Cc,{view:t})]})})}),gi=y.types.model({label:y.types.string,value:y.types.string}).actions(e=>({setLabel(t){e.label=t},setValue(t){e.value=t}})),pi=y.types.model("FilterConfigModel_Select",{required:y.types.boolean,default_value:y.types.string,static_options:y.types.optional(y.types.array(gi),[]),options_query:Kn}).actions(e=>({addStaticOption(t){e.static_options.push(t)},removeStaticOption(t){e.static_options.splice(t,1)},setRequired(t){e.required=t},setDefaultValue(t){e.default_value=t},setOptionsQuery(t){e.options_query=t}})),_c=()=>pi.create({required:!1,default_value:"",static_options:[],options_query:{type:me.Postgresql,key:"",sql:""}}),fi=y.types.model("FilterConfigModel_MultiSelect",{default_value:y.types.optional(y.types.array(y.types.string),[]),static_options:y.types.optional(y.types.array(gi),[]),options_query:Kn}).actions(e=>({addStaticOption(t){e.static_options.push(t)},removeStaticOption(t){e.static_options.splice(t,1)},setDefaultValue(t){e.default_value=y.cast(t)},setOptionsQuery(t){e.options_query=t}})),Ic=()=>fi.create({default_value:[],static_options:[],options_query:{type:me.Postgresql,key:"",sql:""}}),hi=y.types.model("FilterConfigModel_Checkbox",{default_value:y.types.boolean}).actions(e=>({setDefaultValue(t){e.default_value=t}})),Dc=()=>hi.create({default_value:!1}),Ac=y.types.model("FilterConfigModel_DateRange",{required:y.types.boolean,inputFormat:y.types.enumeration("DateRangeInputFormat",["YYYY","YYYY-MM","YYYY-MM-DD"]),default_value:y.types.optional(y.types.array(y.types.union(y.types.Date,y.types.null)),[null,null]),clearable:y.types.boolean}).actions(e=>({setRequired(t){e.required=t},setClearable(t){e.clearable=t},setInputFormat(t){e.inputFormat=t},setDefaultValue(t){e.default_value.length=0,e.default_value.push(...t)}})),mi=y.types.snapshotProcessor(Ac,{preProcessor({default_value:e,...t}){return{...t,default_value:e.map(n=>n===null?null:new Date(n))}},postProcessor({default_value:e,...t}){return{...t,default_value:e.map(n=>{try{return typeof n=="number"?new Date(n).toISOString():null}catch{return console.log(`[date-range] failed parsing ${n}`),null}})}}}),Mc=()=>mi.create({required:!1,inputFormat:"YYYY-MM-DD",clearable:!1,default_value:[null,null]}),Cn=y.types.model("FilterModel",{id:y.types.identifier,key:y.types.string,label:y.types.string,order:y.types.number,visibleInViewsIDs:y.types.array(y.types.string),type:y.types.enumeration("DashboardFilterType",[le.Select,le.MultiSelect,le.TextInput,le.Checkbox,le.DateRange]),config:y.types.union(pi,fi,Zn,hi,mi)}).views(e=>({get plainDefaultValue(){const t=e.config.default_value;return Array.isArray(t)?[...t]:t}})).actions(e=>({setKey(t){e.key=t},setLabel(t){e.label=t},setOrder(t){e.order=t},setType(t){switch(t){case le.Select:e.config=_c();break;case le.MultiSelect:e.config=Ic();break;case le.TextInput:e.config=er();break;case le.Checkbox:e.config=Dc();break;case le.DateRange:e.config=Mc();break}e.type=t},setVisibleInViewsIDs(t){e.visibleInViewsIDs.length=0,e.visibleInViewsIDs.push(...t)}}));function Vc(e){return e===void 0?e:Array.isArray(e)?e.map(t=>{const n=new Date(t);return n!=null?n:t}):e}const vi=y.types.model("FiltersModel",{original:y.types.optional(y.types.array(Cn),[]),current:y.types.optional(y.types.array(Cn),[]),values:y.types.optional(y.types.frozen(),{})}).views(e=>({get changed(){return!z.default.isEqual(e.original,e.current)},get firstID(){if(e.current.length!==0)return e.current[0].id},get inOrder(){return z.default.sortBy(e.current,"order")},get empty(){return e.current.length===0},visibleInView(t){return z.default.sortBy(e.current.filter(n=>n.visibleInViewsIDs.includes(t)),"order")},get triggerForRefreshValues(){return e.current.map(n=>{var r;return(r=n.config.default_value)==null?void 0:r.toString()}).join("__")}})).actions(e=>({reset(){e.current=z.default.cloneDeep(e.original)},replace(t){e.current=y.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},setValues(t){e.values=t},setValueByKey(t,n){e.values[t]=n},getValueByKey(t){return e.values[t]},refreshValues(){console.log("refreshing values");const t=e.current.reduce((n,r)=>(n[r.key]=Vc(r.config.default_value),n),{});e.values=t}})).actions(e=>({afterCreate(){y.addDisposer(e,K.reaction(()=>e.triggerForRefreshValues,e.refreshValues,{fireImmediately:!0,delay:0}))}}));function yi(e){return{original:e,current:e,values:{}}}var xn={exports:{}};(function(e,t){(function(n,r){r()})(Ne,function(){function n(p,c){return typeof c>"u"?c={autoBom:!1}:typeof c!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),c={autoBom:!c}),c.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(p.type)?new Blob(["\uFEFF",p],{type:p.type}):p}function r(p,c,f){var m=new XMLHttpRequest;m.open("GET",p),m.responseType="blob",m.onload=function(){d(m.response,c,f)},m.onerror=function(){console.error("could not download file")},m.send()}function i(p){var c=new XMLHttpRequest;c.open("HEAD",p,!1);try{c.send()}catch{}return 200<=c.status&&299>=c.status}function l(p){try{p.dispatchEvent(new MouseEvent("click"))}catch{var c=document.createEvent("MouseEvents");c.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),p.dispatchEvent(c)}}var s=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof Ne=="object"&&Ne.global===Ne?Ne:void 0,u=s.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),d=s.saveAs||(typeof window!="object"||window!==s?function(){}:"download"in HTMLAnchorElement.prototype&&!u?function(p,c,f){var m=s.URL||s.webkitURL,v=document.createElement("a");c=c||p.name||"download",v.download=c,v.rel="noopener",typeof p=="string"?(v.href=p,v.origin===location.origin?l(v):i(v.href)?r(p,c,f):l(v,v.target="_blank")):(v.href=m.createObjectURL(p),setTimeout(function(){m.revokeObjectURL(v.href)},4e4),setTimeout(function(){l(v)},0))}:"msSaveOrOpenBlob"in navigator?function(p,c,f){if(c=c||p.name||"download",typeof p!="string")navigator.msSaveOrOpenBlob(n(p,f),c);else if(i(p))r(p,c,f);else{var m=document.createElement("a");m.href=p,m.target="_blank",setTimeout(function(){l(m)})}}:function(p,c,f,m){if(m=m||open("","_blank"),m&&(m.document.title=m.document.body.innerText="downloading..."),typeof p=="string")return r(p,c,f);var v=p.type==="application/octet-stream",b=/constructor/i.test(s.HTMLElement)||s.safari,I=/CriOS\/[\d]+/.test(navigator.userAgent);if((I||v&&b||u)&&typeof FileReader<"u"){var A=new FileReader;A.onloadend=function(){var B=A.result;B=I?B:B.replace(/^data:[^;]*;/,"data:attachment/file;"),m?m.location.href=B:location=B,m=null},A.readAsDataURL(p)}else{var T=s.URL||s.webkitURL,k=T.createObjectURL(p);m?m.location=k:location.href=k,m=null,setTimeout(function(){T.revokeObjectURL(k)},4e4)}});s.saveAs=d.saveAs=d,e.exports=d})})(xn);function Ec(e,t){const n=new Blob([t],{type:"text/csv"});xn.exports.saveAs(n,`${e}.csv`)}function Rc(e){const t=new so.default;e.forEach(({id:n,data:r})=>{t.file(`${n}.csv`,bi(r))}),t.generateAsync({type:"blob"}).then(n=>{xn.exports.saveAs(n,"dashboard_data.zip")})}function bi(e){if(!Array.isArray(e)||e.length===0)return"";const t=[],n=Object.keys(e[0]);return t.push(n.join(",")),e.forEach(r=>{const i=Object.values(r).join(",");t.push(i)}),t.join(`
82
+ `)}const Ci=y.types.model("QueryModel",{id:y.types.string,type:y.types.enumeration("DataSourceType",[me.Postgresql,me.MySQL,me.HTTP]),key:y.types.string,sql:y.types.string}).views(e=>({get valid(){return e.id&&e.type&&e.key&&e.sql},get configurations(){const{id:t,type:n,key:r,sql:i}=e;return{id:t,type:n,key:r,sql:i}}})),xi=y.types.compose("QueryModel",Ci,y.types.model({state:y.types.optional(y.types.enumeration(["idle","loading","error"]),"idle"),data:y.types.optional(y.types.array(y.types.frozen()),[]),error:y.types.frozen()})).views(e=>({get formattedSQL(){const{context:t,sqlSnippets:n,filterValues:r}=y.getRoot(e).payloadForSQL;return Bn(e.sql,t,n,r)}})).views(e=>({get json(){const{id:t,type:n,key:r,sql:i}=e;return{id:t,type:n,key:r,sql:i}}})).actions(e=>({setID(t){e.id=t},setKey(t){e.key=t},setType(t){e.type=t},setSQL(t){e.sql=t},fetchData:y.flow(function*(){if(!!e.valid){e.state="loading";try{const t=e.id,{context:n,sqlSnippets:r,filterValues:i}=y.getRoot(e).payloadForSQL;e.data=yield*y.toGenerator(ho({context:n,sqlSnippets:r,title:t,query:{type:e.type,key:e.key,sql:e.sql},filterValues:i})),e.state="idle"}catch(t){console.error(t),e.error=t,e.state="error"}}})})).actions(e=>({afterCreate(){y.addDisposer(e,K.reaction(()=>`${e.id}--${e.key}--${e.type}--${e.formattedSQL}`,e.fetchData,{fireImmediately:!0,delay:500}))}})),Si=y.types.model("QueriesModel",{original:y.types.optional(y.types.array(Ci),[]),current:y.types.optional(y.types.array(xi),[])}).views(e=>({get changed(){return e.original.length!==e.current.length?!0:e.original.some((t,n)=>!z.default.isEqual(t.configurations,e.current[n].configurations))},get firstID(){if(e.current.length!==0)return e.current[0].id},findByID(t){return e.current.find(n=>n.id===t)},get options(){return e.current.map(t=>({value:t.id,label:t.id}))}})).views(e=>({get json(){return e.current.map(t=>t.json)}})).actions(e=>({reset(){const t=e.original.map(n=>({...n,state:"idle",data:[],error:null}));e.current.length=0,e.current.unshift(...t)},replace(t){e.current=y.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},replaceByIndex(t,n){e.current.splice(t,1,n)},downloadAllData(){const t=e.current.map(({id:n,data:r})=>({id:n,data:r.toJSON()}));Rc(t)},downloadDataByQueryID(t){const n=e.findByID(t);if(!n){console.log(`[downloadDataByQueryID] query by ID[${t}] not found`);return}const{id:r,data:i}=n,l=bi(i);Ec(r,l)},refetchDataByQueryID(t){const n=e.findByID(t);if(!n){console.error(new Error(`[downloadDataByQueryID] query by ID[${t}] not found`));return}return n.fetchData()}})),Sn=y.types.model("SQLSnippetModel",{key:y.types.string,value:y.types.string}).views(e=>({get json(){const{key:t,value:n}=e;return{key:t,value:n}}})).actions(e=>({setKey(t){e.key=t},setValue(t){e.value=t}})),wi=y.types.model("SQLSnippetsModel",{original:y.types.optional(y.types.array(Sn),[]),current:y.types.optional(y.types.array(Sn),[])}).views(e=>({get changed(){return!z.default.isEqual(e.original,e.current)},get json(){return e.current.map(t=>t.json)}})).actions(e=>({reset(){e.current=z.default.cloneDeep(e.original)},replace(t){e.current=y.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},replaceByIndex(t,n){e.current.splice(t,1,n)}})),_i=y.types.model("ContextModel",{current:y.types.optional(y.types.frozen(),{})}).views(e=>({get keys(){return Object.keys(e.current)},get entries(){return Object.entries(e.current)}})).actions(e=>({replace(t){e.current=t},get(t){return e.current[t]},set(t,n){e.current[t]=n}})),Tc=y.types.model("PanelLayoutModel",{x:y.types.number,y:y.types.number,w:y.types.number,h:y.types.number,moved:y.types.optional(y.types.boolean,!1),static:y.types.optional(y.types.boolean,!1)}).views(e=>({get json(){const{x:t,y:n,w:r,h:i,moved:l}=e;return{x:t,y:n,w:r,h:i,moved:l,static:e.static}}})).actions(e=>({set(t){const{x:n,y:r,w:i,h:l,moved:s}=t;e.x=n,e.y=r,e.w=i,e.h=l,e.moved=!!s,e.static=!!t.static}})),Fc=y.types.model("PanelStyleBorderModel",{enabled:y.types.boolean}).views(e=>({get json(){const{enabled:t}=e;return{enabled:t}}})).actions(e=>({setEnabled(t){e.enabled=t}})),$c=y.types.model("PanelStyleModel",{border:Fc}).views(e=>({get json(){const{border:t}=e;return{border:t.json}}})).actions(e=>({})),Pc=y.types.model("PanelVizModel",{type:y.types.string,conf:y.types.frozen()}).views(e=>({get json(){return{type:e.type,conf:e.conf}}})).actions(e=>({setType(t){e.type=t},setConf(t){e.conf=t}})),kc=y.types.model({id:y.types.string,title:y.types.string,description:y.types.string,layout:Tc,queryID:y.types.string,viz:Pc,style:$c}).views(e=>({get json(){const{id:t,title:n,description:r,queryID:i}=e;return{id:t,title:n,description:r,layout:e.layout.json,queryID:i,viz:e.viz.json,style:e.style.json}}})).actions(e=>({setID(t){e.id=t},setTitle(t){e.title=t},setDescription(t){e.description=t},setQueryID(t){e.queryID=t}})).actions(e=>({})),Oc=y.types.model("PanelsModel",{list:y.types.optional(y.types.array(kc),[])}).views(e=>({get json(){return e.list.map(t=>t.json)},get layouts(){return e.list.map(t=>({...t.layout.json,i:t.id}))},findByID(t){return e.list.find(n=>n.id===t)}})).actions(e=>({replace(t){e.list=y.cast(t)},addANewPanel(){const t=J.randomId();e.list.push({id:t,layout:{x:0,y:1/0,w:3,h:15},title:`Panel - ${t}`,description:"<p><br></p>",queryID:"",viz:{type:sn.name,conf:sn.createConfig()},style:{border:{enabled:!0}}})},append(t){e.list.push(t)},remove(t){e.list.splice(t,1)},removeByID(t){const n=e.list.findIndex(r=>r.id===t);n!==-1&&e.list.splice(n,1)},duplicateByID(t){const n=e.list.find(r=>r.id===t);if(!n){console.error(new Error(`[duplicate panel] Can't find a panel by id[${t}]`));return}e.list.push({...n.json,id:J.randomId(),layout:{...n.layout,x:0,y:1/0,moved:!1}})},replaceByIndex(t,n){e.list.splice(t,1,n)}})),wn=y.types.model({id:y.types.identifier,name:y.types.string,type:y.types.string,config:y.types.frozen(),panels:Oc}).views(e=>({get json(){const{id:t,name:n,type:r,config:i}=e;return{id:t,name:n,type:r,config:i,panels:e.panels.json}}})).actions(e=>({setName(t){e.name=t},setType(t){e.type!==t&&(t===ve.Modal?e.config={width:"600px",height:"400px"}:e.config={},e.type=t)},setConfig(t){e.config=t},updateConfig(t,n){e.config={...e.config,[t]:n}}})).actions(e=>({})),_n=y.types.model("ViewsModel",{original:y.types.optional(y.types.array(wn),[]),current:y.types.optional(y.types.array(wn),[]),visibleViewIDs:y.types.array(y.types.string),idOfVIE:y.types.string}).views(e=>({get changed(){return e.original.length!==e.current.length?!0:e.original.some((t,n)=>!z.default.isEqual(t.json,e.current[n].json))},get json(){return e.current.map(t=>t.json)},findByID(t){return e.current.find(n=>n.id===t)},get isVIETheFirstView(){return e.current.length===0||!e.idOfVIE?!1:e.current[0].id===e.idOfVIE},get firstVisibleView(){const[t]=e.visibleViewIDs;return e.current.find(({id:n})=>n===t)},get visibleViews(){const t=new Set(e.visibleViewIDs);return e.current.filter(({id:n})=>t.has(n))},get VIE(){return e.current.find(({id:t})=>t===e.idOfVIE)},get options(){return e.current.map(t=>({label:t.name,value:t.id,type:t.type}))}})).actions(e=>({reset(){const t=e.original.map(n=>({...n.json,panels:{list:n.panels.json}}));e.current.length=0,e.current.unshift(...t)},replace(t){e.current=y.cast(t)},addANewView(t,n,r){e.current.push({id:t,name:t,type:n,config:r,panels:{list:[]}})},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},removeByID(t){const n=e.current.findIndex(r=>r.id===t);n!==-1&&e.current.splice(n,1)},replaceByIndex(t,n){e.current.splice(t,1,n)},setIDOfVIE(t){e.idOfVIE=t,e.visibleViewIDs.length=0,e.visibleViewIDs.push(t)},addAPanelToVIE(){var t;(t=e.VIE)==null||t.panels.addANewPanel()}})).actions(e=>({addARandomNewView(){const t=J.randomId();e.addANewView(t,ve.Division,{}),e.setIDOfVIE(t)},removeVIE(){e.current.length!==1&&(e.removeByID(e.idOfVIE),e.setIDOfVIE(e.current[0].id))},rmVisibleViewID(t){const n=e.visibleViewIDs.findIndex(r=>r===t);n!==-1&&e.visibleViewIDs.splice(n,1)}}));function Ii(e){const t=e.length>0?[e[0].id]:[],n=e.length>0?e[0].id:"",r=e.map(i=>({...i,panels:{list:i.panels}}));return _n.create({original:r,current:r,visibleViewIDs:t,idOfVIE:n})}const zc=y.types.model({id:y.types.identifier,name:y.types.string,filters:vi,queries:Si,sqlSnippets:wi,views:_n,context:_i}).views(e=>({get payloadForSQL(){return{context:e.context.current,sqlSnippets:e.sqlSnippets.current,filterValues:e.filters.values}},get data(){return e.queries.current.map(({id:n,data:r})=>({id:n,data:r})).reduce((n,r)=>(n[r.id]=r.data,n),{})},getDataStuffByID(t){const n=e.queries.findByID(t);return n?{data:n.data.toJSON(),state:n.state,error:void 0}:{data:[],state:"idle",error:void 0}},getDataStateByID(t){var n,r;return(r=(n=e.queries.findByID(t))==null?void 0:n.state)!=null?r:[]},getDataErrorByID(t){var n,r;return(r=(n=e.queries.findByID(t))==null?void 0:n.error)!=null?r:[]}}));function In({id:e,name:t,filters:n,views:r,definition:{queries:i,sqlSnippets:l}},s){return zc.create({id:e,name:t,filters:yi(n),queries:{original:i,current:i},sqlSnippets:{original:l,current:l},context:s,views:Ii(r)})}const Fg="",Gc=E.observer(function({context:t,dashboard:n,update:r,className:i="dashboard",config:l}){$e.baseURL!==l.apiBaseURL&&($e.baseURL=l.apiBaseURL);const[s,u]=C.default.useState(!1),d=C.default.useMemo(()=>In(n,t),[n]);C.default.useEffect(()=>{d.context.replace(t)},[t]);const p=async()=>{const f=[...d.queries.json],m=[...d.sqlSnippets.json],v=[...d.views.json],b={...n,filters:[...d.filters.current],views:v,definition:{sqlSnippets:m,queries:f}};await r(b)},c=j.useCreation(ni,[]);return o(be.ModalsProvider,{children:o(Vt,{value:d,children:o(ce.Provider,{value:{layoutFrozen:s,freezeLayout:u,inEditMode:!0,inUseMode:!1},children:o(a.Box,{className:`${i} dashboard-root`,sx:{position:"relative"},children:o(xe.Provider,{value:c,children:d.views.visibleViews.map(f=>o(di,{view:f,saveDashboardChanges:p},f.id))})})})})})});function Lc({context:e,dashboard:t,className:n="dashboard",config:r}){$e.baseURL!==r.apiBaseURL&&($e.baseURL=r.apiBaseURL);const i=C.default.useMemo(()=>In(t,e),[t]);return C.default.useEffect(()=>{i.context.replace(e)},[e]),o(be.ModalsProvider,{children:o(Vt,{value:i,children:o(ce.Provider,{value:{layoutFrozen:!0,freezeLayout:z.default.noop,inEditMode:!1,inUseMode:!0},children:o(a.Box,{className:`${n} dashboard-root dashboard-sticky-parent`,children:i.views.visibleViews.map(l=>o(ci,{view:l},l.id))})})})})}M.ContextModel=_i,M.Dashboard=Gc,M.DashboardFilterType=rr,M.DashboardMode=nr,M.EViewComponentType=ve,M.FilterModel=Cn,M.FiltersModel=vi,M.LayoutStateContext=ce,M.MainDashboardView=di,M.ModelContextProvider=Vt,M.Panel=ht,M.PanelContextProvider=Qn,M.QueriesModel=Si,M.QueryModel=xi,M.ReadOnlyDashboard=Lc,M.ReadOnlyDashboardView=ci,M.SQLSnippetModel=Sn,M.SQLSnippetsModel=wi,M.ViewModel=wn,M.ViewsModel=_n,M.createDashboardModel=In,M.createDashboardViewsModel=Ii,M.getInitialFiltersPayload=yi,M.useModelContext=Y,M.usePanelContext=ee,Object.defineProperties(M,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});