@devtable/dashboard 5.1.0 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dashboard.es.js +392 -354
- package/dist/dashboard.umd.js +14 -14
- package/dist/plugins/viz-components/cartesian/type.d.ts +1 -0
- package/package.json +1 -1
package/dist/dashboard.umd.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(A,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("dayjs"),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","dayjs","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):(A=typeof globalThis<"u"?globalThis:A||self,a(A.dashboard={},A["@mantine/core"],A["@mantine/modals"],A.ahooks,A["mobx-react-lite"],A.React,A._,A["react-hook-form"],A["@mantine/dates"],A.dayjs,A["tabler-icons-react"],A.axios,A["@mantine/prism"],A["mobx-state-tree"],A["@mantine/hooks"],A["@mantine/rte"],A.mobx,A["@mantine/notifications"],A.eventemitter2,A["chroma-js"],A.numbro,A["d3-array"],A["react-virtual"],A["@mantine/form"],A["echarts-for-react/lib/core"],A["echarts/charts"],A["echarts/core"],A["echarts/renderers"],A["echarts-gl"],A["echarts/components"],A["echarts-stat"],A["d3-regression"],A.stickybits,A["react-grid-layout"],A.jszip))})(this,function(A,a,Se,U,V,
|
|
1
|
+
(function(A,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("dayjs"),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","dayjs","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):(A=typeof globalThis<"u"?globalThis:A||self,a(A.dashboard={},A["@mantine/core"],A["@mantine/modals"],A.ahooks,A["mobx-react-lite"],A.React,A._,A["react-hook-form"],A["@mantine/dates"],A.dayjs,A["tabler-icons-react"],A.axios,A["@mantine/prism"],A["mobx-state-tree"],A["@mantine/hooks"],A["@mantine/rte"],A.mobx,A["@mantine/notifications"],A.eventemitter2,A["chroma-js"],A.numbro,A["d3-array"],A["react-virtual"],A["@mantine/form"],A["echarts-for-react/lib/core"],A["echarts/charts"],A["echarts/core"],A["echarts/renderers"],A["echarts-gl"],A["echarts/components"],A["echarts-stat"],A["d3-regression"],A.stickybits,A["react-grid-layout"],A.jszip))})(this,function(A,a,Se,U,V,D,I,w,eo,to,$,no,ke,b,Z,_t,ee,Dt,ro,io,oo,ao,lo,It,so,xe,uo,Me,Rg,W,On,co,go,Mt,po){"use strict";var $g=Object.defineProperty;var Tg=(A,a,Se)=>a in A?$g(A,a,{enumerable:!0,configurable:!0,writable:!0,value:Se}):A[a]=Se;var P=(A,a,Se)=>(Tg(A,typeof a!="symbol"?a+"":a,Se),Se);const ue=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function Vt(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 x=ue(D),Pn=Vt(D),N=ue(I),Ve=ue(to),fo=ue(no),kn=ue(_t),zn=ue(ro),Ue=ue(io),de=ue(oo),Ae=ue(so),te=Vt(uo),Ee=Vt(co),ho=ue(go),Gn=ue(Mt),mo=ue(po);function Nn(e,t){D.useEffect(()=>{const n=r=>{console.log(r);const{viewID:i}=r.detail;if(!i){console.error(new Error("[Open View] Needs to pick a view first"));return}e.views.appendToVisibles(i),t&&e.views.setIDOfVIE(i)};return window.addEventListener("open-view",n),()=>{window.removeEventListener("open-view",n)}},[e,t]),D.useEffect(()=>{const n=r=>{console.log(r);const{dictionary:i,payload:l}=r.detail;if(!l||Object.keys(l).length===0){console.error(new Error("[Set Filter Values] payload is empty"));return}Object.entries(i).forEach(([s,u])=>{e.filters.setValueByKey(s,N.default.get(l,u))})};return window.addEventListener("set-filter-values",n),()=>{window.removeEventListener("set-filter-values",n)}},[e])}const vo={viewPanelInFullScreen:N.default.noop,inFullScreen:!1},At=x.default.createContext(vo),Ln=x.default.createContext(null),Et=Ln.Provider;function Y(){const e=x.default.useContext(Ln);if(!e)throw new Error("Please use ModelContextProvider");return e}var ze=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},nt={exports:{}},We={};/**
|
|
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 qn;function yo(){if(qn)return We;qn=1;var e=
|
|
9
|
+
*/var qn;function yo(){if(qn)return We;qn=1;var e=x.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,h={},f=null,v=null;p!==void 0&&(f=""+p),d.key!==void 0&&(f=""+d.key),d.ref!==void 0&&(v=d.ref);for(c in d)r.call(d,c)&&!l.hasOwnProperty(c)&&(h[c]=d[c]);if(u&&u.defaultProps)for(c in d=u.defaultProps,d)h[c]===void 0&&(h[c]=d[c]);return{$$typeof:t,type:u,key:f,ref:v,props:h,_owner:i.current}}return We.Fragment=n,We.jsx=s,We.jsxs=s,We}var Ye={};/**
|
|
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 Bn;function bo(){return Bn||(Bn=1,process.env.NODE_ENV!=="production"&&function(){var e=
|
|
18
|
-
`+Vn+m}}var An=!1,Ct;{var sg=typeof WeakMap=="function"?WeakMap:Map;Ct=new sg}function Ni(m,
|
|
17
|
+
*/var Bn;function bo(){return Bn||(Bn=1,process.env.NODE_ENV!=="production"&&function(){var e=x.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"),h=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),v=Symbol.for("react.offscreen"),C=Symbol.iterator,y="@@iterator";function S(m){if(m===null||typeof m!="object")return null;var _=C&&m[C]||m[y];return typeof _=="function"?_:null}var E=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function T(m){{for(var _=arguments.length,M=new Array(_>1?_-1:0),R=1;R<_;R++)M[R-1]=arguments[R];F("error",m,M)}}function F(m,_,M){{var R=E.ReactDebugCurrentFrame,L=R.getStackAddendum();L!==""&&(_+="%s",M=M.concat([L]));var j=M.map(function(G){return String(G)});j.unshift("Warning: "+_),Function.prototype.apply.call(console[m],console,j)}}var k=!1,q=!1,ne=!1,K=!1,he=!1,ae;ae=Symbol.for("react.module.reference");function be(m){return!!(typeof m=="string"||typeof m=="function"||m===r||m===l||he||m===i||m===p||m===c||K||m===v||k||q||ne||typeof m=="object"&&m!==null&&(m.$$typeof===f||m.$$typeof===h||m.$$typeof===s||m.$$typeof===u||m.$$typeof===d||m.$$typeof===ae||m.getModuleId!==void 0))}function re(m,_,M){var R=m.displayName;if(R)return R;var L=_.displayName||_.name||"";return L!==""?M+"("+L+")":M}function Ce(m){return m.displayName||"Context"}function le(m){if(m==null)return null;if(typeof m.tag=="number"&&T("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof m=="function")return m.displayName||m.name||null;if(typeof m=="string")return m;switch(m){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 m=="object")switch(m.$$typeof){case u:var _=m;return Ce(_)+".Consumer";case s:var M=m;return Ce(M._context)+".Provider";case d:return re(m,m.render,"ForwardRef");case h:var R=m.displayName||null;return R!==null?R:le(m.type)||"Memo";case f:{var L=m,j=L._payload,G=L._init;try{return le(G(j))}catch{return null}}}return null}var se=Object.assign,Pe=0,Ti,Ri,Fi,Oi,Pi,ki,zi;function Gi(){}Gi.__reactDisabledLog=!0;function ag(){{if(Pe===0){Ti=console.log,Ri=console.info,Fi=console.warn,Oi=console.error,Pi=console.group,ki=console.groupCollapsed,zi=console.groupEnd;var m={configurable:!0,enumerable:!0,value:Gi,writable:!0};Object.defineProperties(console,{info:m,log:m,warn:m,error:m,group:m,groupCollapsed:m,groupEnd:m})}Pe++}}function lg(){{if(Pe--,Pe===0){var m={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:se({},m,{value:Ti}),info:se({},m,{value:Ri}),warn:se({},m,{value:Fi}),error:se({},m,{value:Oi}),group:se({},m,{value:Pi}),groupCollapsed:se({},m,{value:ki}),groupEnd:se({},m,{value:zi})})}Pe<0&&T("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Mn=E.ReactCurrentDispatcher,Vn;function bt(m,_,M){{if(Vn===void 0)try{throw Error()}catch(L){var R=L.stack.trim().match(/\n( *(at )?)/);Vn=R&&R[1]||""}return`
|
|
18
|
+
`+Vn+m}}var An=!1,Ct;{var sg=typeof WeakMap=="function"?WeakMap:Map;Ct=new sg}function Ni(m,_){if(!m||An)return"";{var M=Ct.get(m);if(M!==void 0)return M}var R;An=!0;var L=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var j;j=Mn.current,Mn.current=null,ag();try{if(_){var G=function(){throw Error()};if(Object.defineProperty(G.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(G,[])}catch(Ie){R=Ie}Reflect.construct(m,[],G)}else{try{G.call()}catch(Ie){R=Ie}m.call(G.prototype)}}else{try{throw Error()}catch(Ie){R=Ie}m()}}catch(Ie){if(Ie&&R&&typeof Ie.stack=="string"){for(var z=Ie.stack.split(`
|
|
19
19
|
`),oe=R.stack.split(`
|
|
20
20
|
`),X=z.length-1,J=oe.length-1;X>=1&&J>=0&&z[X]!==oe[J];)J--;for(;X>=1&&J>=0;X--,J--)if(z[X]!==oe[J]){if(X!==1||J!==1)do if(X--,J--,J<0||z[X]!==oe[J]){var me=`
|
|
21
|
-
`+z[X].replace(" at new "," at ");return m.displayName&&me.includes("<anonymous>")&&(me=me.replace("<anonymous>",m.displayName)),typeof m=="function"&&Ct.set(m,me),me}while(X>=1&&J>=0);break}}}finally{An=!1,Mn.current=j,lg(),Error.prepareStackTrace=L}var je=m?m.displayName||m.name:"",Zi=je?bt(je):"";return typeof m=="function"&&Ct.set(m,Zi),Zi}function ug(m,
|
|
21
|
+
`+z[X].replace(" at new "," at ");return m.displayName&&me.includes("<anonymous>")&&(me=me.replace("<anonymous>",m.displayName)),typeof m=="function"&&Ct.set(m,me),me}while(X>=1&&J>=0);break}}}finally{An=!1,Mn.current=j,lg(),Error.prepareStackTrace=L}var je=m?m.displayName||m.name:"",Zi=je?bt(je):"";return typeof m=="function"&&Ct.set(m,Zi),Zi}function ug(m,_,M){return Ni(m,!1)}function dg(m){var _=m.prototype;return!!(_&&_.isReactComponent)}function xt(m,_,M){if(m==null)return"";if(typeof m=="function")return Ni(m,dg(m));if(typeof m=="string")return bt(m);switch(m){case p:return bt("Suspense");case c:return bt("SuspenseList")}if(typeof m=="object")switch(m.$$typeof){case d:return ug(m.render);case h:return xt(m.type,_,M);case f:{var R=m,L=R._payload,j=R._init;try{return xt(j(L),_,M)}catch{}}}return""}var wt=Object.prototype.hasOwnProperty,Li={},qi=E.ReactDebugCurrentFrame;function St(m){if(m){var _=m._owner,M=xt(m.type,m._source,_?_.type:null);qi.setExtraStackFrame(M)}else qi.setExtraStackFrame(null)}function cg(m,_,M,R,L){{var j=Function.call.bind(wt);for(var G in m)if(j(m,G)){var z=void 0;try{if(typeof m[G]!="function"){var oe=Error((R||"React class")+": "+M+" type `"+G+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof m[G]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw oe.name="Invariant Violation",oe}z=m[G](_,G,R,M,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(X){z=X}z&&!(z instanceof Error)&&(St(L),T("%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",M,G,typeof z),St(null)),z instanceof Error&&!(z.message in Li)&&(Li[z.message]=!0,St(L),T("Failed %s type: %s",M,z.message),St(null))}}}var gg=Array.isArray;function En(m){return gg(m)}function pg(m){{var _=typeof Symbol=="function"&&Symbol.toStringTag,M=_&&m[Symbol.toStringTag]||m.constructor.name||"Object";return M}}function fg(m){try{return Bi(m),!1}catch{return!0}}function Bi(m){return""+m}function ji(m){if(fg(m))return T("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",pg(m)),Bi(m)}var tt=E.ReactCurrentOwner,hg={key:!0,ref:!0,__self:!0,__source:!0},Ui,Wi,$n;$n={};function mg(m){if(wt.call(m,"ref")){var _=Object.getOwnPropertyDescriptor(m,"ref").get;if(_&&_.isReactWarning)return!1}return m.ref!==void 0}function vg(m){if(wt.call(m,"key")){var _=Object.getOwnPropertyDescriptor(m,"key").get;if(_&&_.isReactWarning)return!1}return m.key!==void 0}function yg(m,_){if(typeof m.ref=="string"&&tt.current&&_&&tt.current.stateNode!==_){var M=le(tt.current.type);$n[M]||(T('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',le(tt.current.type),m.ref),$n[M]=!0)}}function bg(m,_){{var M=function(){Ui||(Ui=!0,T("%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)",_))};M.isReactWarning=!0,Object.defineProperty(m,"key",{get:M,configurable:!0})}}function Cg(m,_){{var M=function(){Wi||(Wi=!0,T("%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)",_))};M.isReactWarning=!0,Object.defineProperty(m,"ref",{get:M,configurable:!0})}}var xg=function(m,_,M,R,L,j,G){var z={$$typeof:t,type:m,key:_,ref:M,props:G,_owner:j};return z._store={},Object.defineProperty(z._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(z,"_self",{configurable:!1,enumerable:!1,writable:!1,value:R}),Object.defineProperty(z,"_source",{configurable:!1,enumerable:!1,writable:!1,value:L}),Object.freeze&&(Object.freeze(z.props),Object.freeze(z)),z};function wg(m,_,M,R,L){{var j,G={},z=null,oe=null;M!==void 0&&(ji(M),z=""+M),vg(_)&&(ji(_.key),z=""+_.key),mg(_)&&(oe=_.ref,yg(_,L));for(j in _)wt.call(_,j)&&!hg.hasOwnProperty(j)&&(G[j]=_[j]);if(m&&m.defaultProps){var X=m.defaultProps;for(j in X)G[j]===void 0&&(G[j]=X[j])}if(z||oe){var J=typeof m=="function"?m.displayName||m.name||"Unknown":m;z&&bg(G,J),oe&&Cg(G,J)}return xg(m,z,oe,L,R,tt.current,G)}}var Tn=E.ReactCurrentOwner,Yi=E.ReactDebugCurrentFrame;function Be(m){if(m){var _=m._owner,M=xt(m.type,m._source,_?_.type:null);Yi.setExtraStackFrame(M)}else Yi.setExtraStackFrame(null)}var Rn;Rn=!1;function Fn(m){return typeof m=="object"&&m!==null&&m.$$typeof===t}function Hi(){{if(Tn.current){var m=le(Tn.current.type);if(m)return`
|
|
22
22
|
|
|
23
|
-
Check the render method of \``+m+"`."}return""}}function Sg(m){{if(m!==void 0){var
|
|
23
|
+
Check the render method of \``+m+"`."}return""}}function Sg(m){{if(m!==void 0){var _=m.fileName.replace(/^.*[\\\/]/,""),M=m.lineNumber;return`
|
|
24
24
|
|
|
25
|
-
Check your code at `+
|
|
25
|
+
Check your code at `+_+":"+M+"."}return""}}var Qi={};function _g(m){{var _=Hi();if(!_){var M=typeof m=="string"?m:m.displayName||m.name;M&&(_=`
|
|
26
26
|
|
|
27
|
-
Check the top-level render call using <`+M+">.")}return
|
|
27
|
+
Check the top-level render call using <`+M+">.")}return _}}function Xi(m,_){{if(!m._store||m._store.validated||m.key!=null)return;m._store.validated=!0;var M=_g(_);if(Qi[M])return;Qi[M]=!0;var R="";m&&m._owner&&m._owner!==Tn.current&&(R=" It was passed a child from "+le(m._owner.type)+"."),Be(m),T('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',M,R),Be(null)}}function Ji(m,_){{if(typeof m!="object")return;if(En(m))for(var M=0;M<m.length;M++){var R=m[M];Fn(R)&&Xi(R,_)}else if(Fn(m))m._store&&(m._store.validated=!0);else if(m){var L=S(m);if(typeof L=="function"&&L!==m.entries)for(var j=L.call(m),G;!(G=j.next()).done;)Fn(G.value)&&Xi(G.value,_)}}}function Dg(m){{var _=m.type;if(_==null||typeof _=="string")return;var M;if(typeof _=="function")M=_.propTypes;else if(typeof _=="object"&&(_.$$typeof===d||_.$$typeof===h))M=_.propTypes;else return;if(M){var R=le(_);cg(M,m.props,"prop",R,m)}else if(_.PropTypes!==void 0&&!Rn){Rn=!0;var L=le(_);T("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",L||"Unknown")}typeof _.getDefaultProps=="function"&&!_.getDefaultProps.isReactClassApproved&&T("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Ig(m){{for(var _=Object.keys(m.props),M=0;M<_.length;M++){var R=_[M];if(R!=="children"&&R!=="key"){Be(m),T("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",R),Be(null);break}}m.ref!==null&&(Be(m),T("Invalid attribute `ref` supplied to `React.Fragment`."),Be(null))}}function Ki(m,_,M,R,L,j){{var G=be(m);if(!G){var z="";(m===void 0||typeof m=="object"&&m!==null&&Object.keys(m).length===0)&&(z+=" 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 oe=Sg(L);oe?z+=oe:z+=Hi();var X;m===null?X="null":En(m)?X="array":m!==void 0&&m.$$typeof===t?(X="<"+(le(m.type)||"Unknown")+" />",z=" Did you accidentally export a JSX literal instead of a component?"):X=typeof m,T("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",X,z)}var J=wg(m,_,M,L,j);if(J==null)return J;if(G){var me=_.children;if(me!==void 0)if(R)if(En(me)){for(var je=0;je<me.length;je++)Ji(me[je],m);Object.freeze&&Object.freeze(me)}else T("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 Ji(me,m)}return m===r?Ig(J):Dg(J),J}}function Mg(m,_,M){return Ki(m,_,M,!0)}function Vg(m,_,M){return Ki(m,_,M,!1)}var Ag=Vg,Eg=Mg;Ye.Fragment=r,Ye.jsx=Ag,Ye.jsxs=Eg}()),Ye}(function(e){process.env.NODE_ENV==="production"?e.exports=yo():e.exports=bo()})(nt);const H=nt.exports.Fragment,o=nt.exports.jsx,g=nt.exports.jsxs;class Le extends x.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 Co({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 jn=V.observer(({label:e,config:t,value:n=[null,null],onChange:r})=>{const i=n.map(s=>s?Ve.default(s).toDate():null),l=s=>{r(s.map(u=>u&&Ve.default(u).format(t.inputFormat)))};return o(eo.DateRangePicker,{label:e,value:i,onChange:l,icon:o($.Calendar,{size:16}),sx:{minWidth:"16em"},...t})});function xo(e,t,n){const r=Tt(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 $t(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 Tt(e,t,n){const r={...e,filters:n},i=t.reduce((l,s)=>(l[s.key]=$t(s.value,r),l),{});return N.default.merge({},i,e,{filters:n})}function Un(e,t,n,r){try{const i=Tt(t,n,r);return $t(e,i)}catch(i){return console.error(i),i.message}}const Ge={baseURL:"http://localhost:31200",getRequest(e){return(t,n,r={})=>{const i=window.localStorage.getItem("token"),l={"X-Requested-With":"XMLHttpRequest","Content-Type":r.string?"application/x-www-form-urlencoded":"application/json",authorization:i?`bearer ${i}`:"",...r.headers},s={baseURL:this.baseURL,method:e,url:t,params:e==="GET"?n:r.params,headers:l};return["POST","PUT"].includes(e)&&(s.data=r.string?JSON.stringify(n):n),fo.default(s).then(u=>u.data).catch(u=>Promise.reject(u))}}},Rt=({type:e,key:t,sql:n})=>async()=>{if(!e||!t||!n)return[];try{return await Ge.getRequest("POST")("/query",{type:e,key:t,query:n})}catch(r){return console.error(r),[]}};async function wo({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=Tt(e,t,i),c=$t(u,p);return d&&(console.groupCollapsed(`Final SQL for: ${n}`),console.log(c),console.groupEnd()),await Ge.getRequest("POST")("/query",{type:l,key:s,query:c})}catch(p){return console.error(p),[]}}async function So(){try{return(await Ge.getRequest("POST")("/datasource/list",{filter:{},sort:{field:"create_time",order:"ASC"},pagination:{page:1,pagesize:100}})).data}catch(e){return console.error(e),[]}}function _o({label:e,config:t,value:n,onChange:r}){const i=!!t.options_query.sql,{data:l=[],loading:s}=U.useRequest(Rt(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 Do({label:e,config:t,value:n,onChange:r}){const i=!!t.options_query.sql,{data:l=[],loading:s}=U.useRequest(Rt(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 Io({label:e,config:t,value:n,onChange:r}){return o(a.TextInput,{label:e,value:n,onChange:r,...t})}const Mo=V.observer(({filter:{type:e,config:t,key:n,...r},formFieldProps:i})=>{switch(e){case"select":return o(Do,{...r,...i,config:t});case"multi-select":return o(_o,{...r,...i,config:t});case"text-input":return o(Io,{...r,...i,config:t});case"date-range":return o(jn,{...r,...i,config:t});case"checkbox":return o(Co,{...r,...i,config:t});default:return null}}),Wn=V.observer(x.default.forwardRef(({filter:e,...t},n)=>o("div",{className:"filter-root",ref:n,children:o(Le,{children:o(Mo,{filter:e,formFieldProps:t})})}))),Yn=V.observer(function({view:t}){const n=Y(),{control:r,handleSubmit:i}=w.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(w.Controller,{name:s.key,control:r,render:({field:u})=>o(Wn,{filter:s,...u})},s.id))}),o(a.Group,{sx:{alignSelf:"flex-end"},children:o(a.Button,{color:"blue",size:"sm",type:"submit",children:"Submit"})})]})})}),Vo={layoutFrozen:!1,freezeLayout:N.default.noop,inEditMode:!1,inUseMode:!0},ce=x.default.createContext(Vo),Hn=x.default.createContext({panel:null,data:[],loading:!1}),Qn=Hn.Provider;function ie(){const e=x.default.useContext(Hn);if(!e.panel)throw new Error("Please use PanelContextProvider");return e}const Ao=`
|
|
28
28
|
-- You may reference global variables in SQL or VizConfig.
|
|
29
29
|
SELECT *
|
|
30
30
|
FROM commit
|
|
@@ -36,8 +36,8 @@ WHERE
|
|
|
36
36
|
-- SQL snippets
|
|
37
37
|
AND \${sql_snippets.author_email_condition}
|
|
38
38
|
\${sql_snippets.order_by_clause}
|
|
39
|
-
`,Xn=V.observer(function({showSQLSnippets:t=!0,sx:n={}}){const r=Y(),i=r.context.current,l=w.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(ke.Prism,{language:"sql",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:Ao}),o(a.Text,{weight:500,sx:{flexGrow:0},children:"Current Values"}),o(ke.Prism,{language:"json",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:l})]})]})});function Eo({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 Jn=V.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(E.Refresh,{size:15})})]}),g(a.Box,{sx:{position:"relative"},children:[o(a.LoadingOverlay,{visible:l}),o(Eo,{data:r})]})]})}),$o=_.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})]})),Kn=V.observer(function({value:t,onChange:n}){const{data:r=[],loading:i}=U.useRequest(So,{refreshDeps:[]},[]),l=_.useMemo(()=>r.map(u=>({label:u.key,value:u.key,type:u.type})),[r]),s=_.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]})}})}),Zn=V.observer(({value:e})=>{const t=Y(),n=t.context.current,r=w.default.useMemo(()=>Un(e,n,t.sqlSnippets.current,t.filters.values),[e,n,t.sqlSnippets.current,t.filters.values]);return o(ke.Prism,{language:"sql",colorScheme:"light",children:r})}),To=V.observer(function({queryModel:t,setCurrentID:n}){const r=w.default.useRef(t.id),[i,l]=w.default.useState(r.current);w.default.useEffect(()=>{r.current!==t.id&&(l(t.id),r.current=t.id)},[r,t.id]);const[s,u]=w.default.useState(t.sql);w.default.useEffect(()=>{u(h=>h!==t.sql?t.sql:h)},[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:h=>{l(h.currentTarget.value)},rightSection:o(a.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:i===t.id,onClick:c,children:o(E.DeviceFloppy,{size:18})})}),o(Kn,{value:{type:t.type,key:t.key},onChange:({type:h,key:f})=>{t.setKey(f),t.setType(h)}})]}),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:h=>{u(h.currentTarget.value)}}),o(a.ActionIcon,{mr:5,variant:"filled",color:"blue",sx:{position:"absolute",right:10,top:10},disabled:!d,onClick:p,children:o(E.DeviceFloppy,{size:20})})]})}),o(a.Tabs.Panel,{value:"Preview",pt:"sm",children:o(Zn,{value:t.sql})})]})]})]})}),Ro=V.observer(function({id:t,setID:n}){const r=Y(),i=w.default.useMemo(()=>r.queries.findByID(t),[r.queries,t]);return t?i?o(To,{queryModel:i,setCurrentID:n}):o("span",{children:"Invalid Query ID"}):null});var we=(e=>(e.Postgresql="postgresql",e.MySQL="mysql",e.HTTP="http",e))(we||{});const Fo=V.observer(function({id:t,setID:n}){const r=Y(),i=()=>{var s;n((s=r.queries.firstID)!=null?s:"")};w.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=Z.randomId();r.queries.append(b.cast({id:s,type:we.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"})})]})})}),Oo=V.observer(function(){const[t,n]=w.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(Fo,{id:t,setID:n}),o(Ro,{id:t,setID:n})]}),o(Xn,{})]}),o(Jn,{id:t})]})}),Po=V.observer(({value:e})=>{const t=Y(),n=t.context.current,r=w.default.useMemo(()=>xo(e,n,t.filters.values),[e,n]);return g(a.Stack,{children:[o(a.Text,{children:"Preview"}),o(ke.Prism,{language:"sql",noCopy:!0,colorScheme:"dark",children:r})]})}),ko=V.observer(function(){const t=Y(),n=()=>t.sqlSnippets.append(b.cast({key:Z.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(Po,{value:r.value}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>t.sqlSnippets.remove(i),sx:{position:"absolute",top:15,right:5},children:o(E.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 zo(){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(ko,{}),o(Xn,{showSQLSnippets:!1})]})})}const Go=V.observer(function({opened:t,close:n}){const{freezeLayout:r}=w.default.useContext(ce);return w.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(zo,{})}),o(a.Tabs.Panel,{value:"Queries",pt:"sm",children:o(Oo,{})})]})})});var ge=(e=>(e.Select="select",e.MultiSelect="multi-select",e.TextInput="text-input",e.Checkbox="checkbox",e.DateRange="date-range",e))(ge||{});const er=b.types.model({type:b.types.enumeration("DataSourceType",[we.Postgresql,we.MySQL,we.HTTP]),key:b.types.string,sql:b.types.string}),tr=b.types.model("FilterConfigModel_TextInput",{required:b.types.boolean,default_value:b.types.string}).actions(e=>({setRequired(t){e.required=t},setDefaultValue(t){e.default_value=t}})),nr=()=>tr.create({required:!1,default_value:""}),No=V.observer(function({config:t}){return o(H,{children:o(a.Checkbox,{checked:t.default_value,onChange:n=>t.setDefaultValue(n.currentTarget.checked),label:"Default Checked"})})}),Lo=[{label:"2022",value:"YYYY"},{label:"202201",value:"YYYYMM"},{label:"20220101",value:"YYYYMMDD"},{label:"2022-01",value:"YYYY-MM"},{label:"2022-01-01",value:"YYYY-MM-DD"}],qo=V.observer(function({config:t}){return g(H,{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:Lo,label:"Display Format",value:t.inputFormat,onChange:t.setInputFormat}),o(jn,{label:"Default Value",config:t,value:t.default_value,onChange:t.setDefaultValue})]})});function Bo({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 jo=V.observer(function({query:t}){const{data:n=[],loading:r,refresh:i}=U.useRequest(Rt(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(Bo,{data:n})]})]})}),rr=V.observer(function({value:t,onChange:n}){return g(a.Stack,{my:0,children:[o(Kn,{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(Zn,{value:t.sql})}),o(a.Tabs.Panel,{value:"Data",pt:"sm",children:o(jo,{query:t})})]})]})}),Uo=V.observer(function({config:t}){const n=()=>{t.addStaticOption({label:"",value:""})},r=t.static_options,i=[...r];return g(H,{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(E.Trash,{size:16})})]})),o(a.Button,{size:"xs",color:"blue",leftIcon:o(E.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(rr,{value:t.options_query,onChange:t.setOptionsQuery})]})}),Wo=V.observer(function({config:t}){const n=()=>{t.addStaticOption({label:"",value:""})},r=t.static_options,i=[{label:"No default selection",value:""},...r];return g(H,{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(E.Trash,{size:16})})]},s)),o(a.Button,{size:"xs",color:"blue",leftIcon:o(E.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(rr,{value:t.options_query,onChange:t.setOptionsQuery})]})}),Yo=V.observer(function({config:t}){return g(H,{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"})]})}),Ho=V.observer(function({filter:t}){const n=t.plainDefaultValue,[r,i]=w.default.useState(n);return w.default.useEffect(()=>{i(n)},[n]),g(a.Box,{sx:{maxWidth:"30em"},children:[o(a.Text,{pb:"md",color:"gray",children:"Preview"}),o(Wn,{filter:t,value:r,onChange:i}),o(a.Text,{pt:"lg",pb:"md",color:"gray",children:"Config"}),o(ke.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(t,null,4)})]})}),Qo={select:Wo,"multi-select":Uo,"text-input":Yo,checkbox:No,"date-range":qo},Xo=[{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=V.observer(function({filter:t,index:n}){const r=Y(),i=w.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:Xo,required:!0,value:t.type,onChange:t.setType}),o(i,{config:t.config,index:n})]})]}),o(Ho,{filter:t})]})}),Fg="",Ko=V.observer(function(){const t=Y(),n=t.filters.current,r=()=>{const i=Z.randomId(),l={id:i,key:i,label:i,order:n.length+1,type:ge.TextInput,config:nr(),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(E.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(E.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(E.Trash,{size:20}),onClick:()=>t.filters.remove(l),children:"Delete this filter"})})]})},i.id))})]})})]})}),Zo=V.observer(function({opened:t,close:n}){const{freezeLayout:r}=w.default.useContext(ce);return w.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(Ko,{})})});var ir=(e=>(e.Use="use",e.Edit="edit",e))(ir||{}),pe=(e=>(e.Division="div",e.Modal="modal",e))(pe||{}),or=(e=>(e.Select="select",e.MultiSelect="multi-select",e.TextInput="text-input",e.Checkbox="checkbox",e.DateRange="date-range",e))(or||{});const ea=V.observer(()=>{const t=Y().views.VIE;return!t||t.type!==pe.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"})]})}),ta=V.observer(()=>{const t=Y().views.VIE;return!t||t.type!==pe.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"})]})]})}),na=V.observer(()=>g(H,{children:[o(ea,{}),o(ta,{})]})),ra=[{label:"Division",value:pe.Division},{label:"Modal",value:pe.Modal}],ia=V.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:ra}),o(na,{})]}):null}),oa=V.observer(({opened:e,close:t})=>{var i;const n=Y(),{freezeLayout:r}=w.default.useContext(ce);return w.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(E.Trash,{size:18})})]}),trapFocus:!0,onDragStart:l=>{l.stopPropagation()},children:o(ia,{})})}),aa=_.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})})})),ar="TRIGGER_TO_ADD",la=V.observer(({value:e,onChange:t,triggerAdd:n,triggerEdit:r,options:i})=>{const l=_.useMemo(()=>[...i,{label:"Add a View",value:ar,type:"TRIGGER_TO_ADD"}],[i,n]),s=u=>{u!==ar?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:aa,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(E.Settings,{size:20})})]})}),sa=V.observer(()=>{const e=Y(),[t,n]=_.useState(!1),r=()=>{n(!0)},i=()=>{n(!1)};return g(H,{children:[o(la,{value:e.views.idOfVIE,onChange:e.views.setIDOfVIE,triggerAdd:e.views.addARandomNewView,triggerEdit:r,options:e.views.options}),o(oa,{opened:t,close:i})]})});function ua({opened:e,close:t,getCurrentSchema:n}){const{freezeLayout:r}=w.default.useContext(ce);w.default.useEffect(()=>{r(e)},[e]);const i=w.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(ke.Prism,{language:"json",sx:{width:"100%"},colorScheme:"dark",children:i})})}const lr=V.observer(function({saveChanges:t}){const n=Y(),r=w.default.useCallback(()=>{const k=n.queries.current,q=n.views.current,ne=n.sqlSnippets.current;return{filters:n.filters.current,views:q,definition:{sqlSnippets:ne,queries:k}}},[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}=w.default.useContext(ce),[d,p]=w.default.useState(!1),c=()=>p(!0),h=()=>p(!1),[f,v]=w.default.useState(!1),C=()=>v(!0),y=()=>v(!1),[x,$]=w.default.useState(!1),T=()=>$(!0),F=()=>$(!1);return g(a.Group,{position:"apart",pt:0,px:10,pb:"xs",children:[o(a.Group,{position:"left",children:s&&o(sa,{})}),g(a.Group,{position:"right",children:[!u&&o(a.Button,{variant:"default",size:"xs",disabled:!n.views.VIE,onClick:n.views.addAPanelToVIE,leftIcon:o(E.PlaylistAdd,{size:20}),children:"Add a Panel"}),s&&o(a.Button,{variant:"default",size:"xs",onClick:C,leftIcon:o(E.Filter,{size:20}),children:"Filters"}),s&&o(a.Button,{variant:"default",size:"xs",onClick:c,leftIcon:o(E.Database,{size:20}),children:"Data Settings"}),!u&&o(a.Button,{variant:"default",size:"xs",onClick:t,disabled:!l,leftIcon:o(E.DeviceFloppy,{size:20}),children:"Save Changes"}),!u&&o(a.Button,{color:"red",size:"xs",disabled:!l,onClick:i,leftIcon:o(E.Recycle,{size:20}),children:"Revert Changes"}),!u&&g(a.Menu,{width:180,children:[o(a.Menu.Target,{children:o(a.Button,{variant:"default",size:"xs",leftIcon:o(E.Share,{size:20}),children:"Export"})}),g(a.Menu.Dropdown,{children:[o(a.Menu.Item,{icon:o(E.Download,{size:14}),onClick:n.queries.downloadAllData,children:"Download Data"}),o(a.Menu.Item,{icon:o(E.Code,{size:14}),onClick:T,children:"View Schema"})]})]})]}),o(Zo,{opened:f,close:y}),o(Go,{opened:d,close:h}),o(ua,{opened:x,close:F,getCurrentSchema:r})]})}),Og="",sr=V.observer(()=>{const{freezeLayout:e}=w.default.useContext(ce),[t,n]=w.default.useState(!1),{panel:r}=ie();return w.default.useEffect(()=>{e(t)},[t]),!r.description||r.description==="<p><br></p>"?null:g(H,{children:[o(a.Modal,{opened:t,onClose:()=>n(!1),title:r.title,withCloseButton:!1,children:o(kn.default,{readOnly:!0,value:r.description,onChange:N.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(E.InfoCircle,{size:20})})})]})}),ur=e=>{const{title:t="Variables",variables:n}=e,r=Z.useClipboard(),i=l=>{r.copy(l),Dt.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 da{constructor(t,n){P(this,"operationId");P(this,"operation");P(this,"operationSchema");P(this,"variables",[]);this.operationManager=t,this.instance=n,ee.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));ee.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 ca(e){return!!e.operationId}const ga=V.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})}),pa=V.observer(({model:e})=>{const t={operation:e.operation,instance:e.instance,variables:[]};return _.createElement(e.operationSchema.configRender,t)});function fa({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 ha=V.observer(e=>{const[t,{setTrue:n,setFalse:r}]=U.useBoolean(!1),{operationManager:i,operationId:l,instance:s,variables:u}=e,d=U.useCreation(()=>new da(i,s),[i,s]);return U.useAsyncEffect(async()=>{await d.configOperation(l,u)},[l,d]),ca(d)?g(H,{children:[o(ga,{model:d,onClick:n}),o(a.Modal,{opened:t,onClose:r,title:"Operation Settings",closeButtonLabel:"close",children:g(a.Stack,{children:[o(fa,{model:d}),o(pa,{model:d}),o(ur,{title:"Variables",variables:d.variables})]})})]}):null});class ma{constructor(t,n){P(this,"triggerId");P(this,"trigger");P(this,"triggerSchema");P(this,"sampleData");this.triggerManager=t,this.instance=n,ee.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));ee.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 va(this)}}function va(e){return!!e.triggerId&&!!e.triggerSchema}function ya(e,t){return U.useCreation(()=>new ma(e,t),[e,t])}const ba=V.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:_.createElement(n,r)})}),Ca=V.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})}),xa=V.observer(({model:e})=>{const t={trigger:e.trigger,instance:e.instance,sampleData:e.sampleData};return _.createElement(e.triggerSchema.configRender,t)}),wa=V.observer(e=>{const[t,{setTrue:n,setFalse:r}]=U.useBoolean(!1),i=e.model;return g(H,{children:[o(a.Modal,{opened:t,onClose:r,title:"Setup Trigger",closeButtonLabel:"close setup",children:g(a.Stack,{children:[o(Ca,{model:i}),o(xa,{model:i}),o(ur,{title:"Payload",variables:i.triggerSchema.payload})]})}),o(ba,{onClick:n,model:i})]})});class qe{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,I.omit(n,t))}async getItem(t){const n=await this.root.getItem(this.path);return t===null?n:I.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=I.get(i,t),u=I.get(l,t);s!==u&&n(s,u)},r)}}class Ft{constructor(t,n,r){P(this,"attachmentStorage");this.instance=t,this.attachmentKey=n,this.constructInstance=r,this.attachmentStorage=new qe(t.instanceData,n)}async getInstance(t){if(await this.attachmentStorage.getItem(t))return this.constructInstance(new qe(this.attachmentStorage,t))}async create(t,n){return await this.attachmentStorage.setItem(t,n),this.constructInstance(new qe(this.attachmentStorage,t))}async remove(t){await this.attachmentStorage.deleteItem(t)}async list(){const t=await this.attachmentStorage.getItem(null);return Promise.all(I.values(t).map(n=>this.constructInstance(new qe(this.attachmentStorage,n.id))))}}class dr{constructor(t){P(this,"rootRef");this.rootRef=ee.observable({current:t})}async deleteItem(t){ee.runInAction(()=>{I.unset(this.rootRef.current,[t])})}getItem(t){const n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?ee.toJS(this.rootRef.current):I.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(I.isObject(n))ee.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else ee.runInAction(()=>{I.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,r){return ee.reaction(()=>this.getValueFromRoot(t),(i,l)=>{n(i,l)},{requiresObservable:!0,fireImmediately:I.get(r,"fireImmediately",!1)})}}class Sa{constructor(){P(this,"channels",new Map);P(this,"globalChannel",new zn.default)}getChannel(t){const n=this.channels.get(t);if(n)return n;const r=new zn.default;return this.channels.set(t,r),r}}class _a{constructor(t){P(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 Sa,instanceData:new dr(t.viz.conf)};return this.instances.set(t.id,r),r}}function cr(e,t,n){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new dr({}),colorPalette:{getColor(){return()=>""}},data:t}}const Da=e=>{const{panel:t,vizManager:n,data:r}=e,i=n.resolveComponent(t.viz.type),l=n.getOrCreateInstance(t),s={...cr(l,r,n),viewport:{width:t.layout.w,height:t.layout.h}},u=i.viewRender;return o(u,{context:s,instance:l,...I.omit(e,["panel","vizManager","data"])})},Ia=e=>{const{vizManager:t,panel:n,panelInfoEditor:r,data:i}=e,l=t.resolveComponent(n.viz.type),s=t.getOrCreateInstance(n),u={...cr(s,i,t),panelInfoEditor:r},d=l.configRender;return o(d,{context:u,instance:s,...I.omit(e,["panel","vizManager","data","panelInfoEditor"])})},gr=(e,t)=>{const n=Ue.default.bezier(e),r=Ue.default.bezier(t);return function(i){return i<50?n(i*2/100).hex():r((i-50)*2/100).hex()}},rt=e=>{const t=Ue.default.bezier(e);return function(n){return t(n/100).hex()}},Ma={type:"interpolation",displayName:"Red / Green",getColor:gr(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},Va={type:"interpolation",displayName:"Yellow / Blue",getColor:gr(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},Aa={type:"interpolation",displayName:"Red",getColor:rt(["#fff7f1","darkred"]),name:"red",category:"sequential"},Ea={type:"interpolation",displayName:"Green",getColor:rt(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},$a={type:"interpolation",displayName:"Blue",getColor:rt(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},Ta={type:"interpolation",displayName:"Orange",getColor:rt(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"},Ra="5.1.0";class Fa{constructor(t){P(this,"staticColors",new Map);P(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 Oa{constructor(){P(this,"plugins",new Map);P(this,"vizComponents",new Map);P(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 Pa{constructor(){P(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=I.orderBy(r,"version","asc");if(((l=I.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 ve extends Pa{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=I.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 I.get(n,"version",0)<this.VERSION}}const Ot={content:""},B=(e,t)=>{const[n,{setFalse:r}]=U.useBoolean(!0),[i,l]=_.useState();_.useEffect(()=>(e.getItem(t).then(u=>{l(u),r()}),e.watchItem(t,u=>{l(u)})));const s=_.useCallback(async u=>{await e.setItem(t,u),l(u)},[e,t]);return{loading:n,value:i,set:s}};function pr(e){const t=_.useRef(null);return _.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 ka({context:e}){const{panel:t}=ie(),{value:n}=B(e.instanceData,"config"),r=n==null?void 0:n.content,i=pr(r);return n!=null&&n.content?o(_t.RichTextEditor,{id:t.id,ref:i,readOnly:!0,value:n.content,onChange:I.noop,sx:{border:"none",".ql-editor":{padding:0,"h1, h2, h3, h4, h5, p, ul, ol":{"&:last-child":{marginBottom:0}}}}}):null}function za({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),r=_.useMemo(()=>I.defaults({},t,Ot),[t]),{control:i,handleSubmit:l,watch:s,getValues:u}=D.useForm({defaultValues:r});s("content");const d=u(),p=_.useMemo(()=>!I.isEqual(d,t),[d,t]),c=pr(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(E.DeviceFloppy,{size:20})})]}),o(D.Controller,{name:"content",control:i,render:({field:h})=>o(kn.default,{ref:c,sx:{flex:1},...I.omit(h,"ref")})})]})})}class Ga extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}fixMalformedConfig(n){return I.defaults({},n,Ot)}configVersions(){this.version(1,n=>({version:1,config:this.fixMalformedConfig(n)}))}}const Na={displayName:"RichText",migrator:new Ga,name:"richText",viewRender:ka,configRender:za,createConfig:()=>Ot},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 La(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 qa extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({config:La(n)}))}}const kt=_.forwardRef(function({value:t,onChange:n,...r},i){return o(a.TextInput,{ref:i,value:t,onChange:n,...r})}),He={mantissa:0,output:"number",trimMantissa:!1,average:!1};function Ba({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(Le,{children:g(a.Group,{position:"apart",children:[g(a.Text,{size:12,color:"gray",children:["123456789 ",o(E.ArrowRight,{size:9})," ",de.default(123456789).format(e)]}),g(a.Text,{size:12,color:"gray",children:["1234 ",o(E.ArrowRight,{size:9})," ",de.default(1234).format(e)]}),g(a.Text,{size:12,color:"gray",children:["0.1234 ",o(E.ArrowRight,{size:9})," ",de.default(.1234).format(e)]})]})})]})]})}const zt=w.default.forwardRef(Ba);function it(){return{name:Z.randomId(),size:"20px",weight:"bold",color:{type:"static",staticColor:"blue"},data_field:"",aggregation:{type:"none",config:{}},formatter:He}}const ja=[{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 Ua({label:e,value:t,onChange:n},r){_.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:ja,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 Wa=w.default.forwardRef(Ua);function Ya({label:e,required:t,value:n,onChange:r,data:i,clearable:l=!1,sx:s,...u},d){const p=w.default.useMemo(()=>{if(!Array.isArray(i)||i.length===0)return[];const h=Object.keys(i[0]).map(f=>({label:f,value:f}));return l?h.concat([{label:"unset",value:""}]):h},[i]);return o(a.Select,{ref:d,label:e,data:p,value:n,onChange:r,required:t,sx:s,...u})}const Q=w.default.forwardRef(Ya);function Ha({label:e,value:t,onChange:n},r){const[i,l]=w.default.useState(Array.isArray(t)?[...t]:[]),s=w.default.useCallback(()=>{l(f=>[...f,""])},[l]),u=w.default.useCallback(f=>{l(v=>(v.splice(f,1),[...v]))},[l]),d=w.default.useMemo(()=>!N.default.isEqual(i,t),[i,t]),p=()=>{n(i.map(f=>f.toString()))},c=a.useMantineTheme(),h=w.default.useMemo(()=>Object.entries(c.colors).map(([f,v])=>v[6]),[c]);return g(H,{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(E.DeviceFloppy,{size:20})})]}),g(a.Group,{children:[i.map((f,v)=>o(a.ColorInput,{value:f,onChange:C=>{l(y=>(y.splice(v,1,C),[...y]))},swatches:h,rightSection:o(a.ActionIcon,{onClick:()=>u(v),color:"red",children:o(E.Trash,{size:14})}),sx:{width:"45%"}})),o(a.ActionIcon,{onClick:s,color:"blue",variant:"outline",children:o(E.PlaylistAdd,{size:20})})]})]})}const Qa=w.default.forwardRef(Ha);function Xa({value:e,onChange:t},n){const{colorManager:r}=_.useContext(De),i=w.default.useMemo(()=>r.getStaticColors().map(u=>({label:u.name,group:u.category,value:u.value})),[r]),l=w.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 $e=w.default.forwardRef(Xa),ot=[{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]=w.default.useState((u=(s=ot.find(d=>d.label===t))==null?void 0:s.value)!=null?u:ot[0].value);return w.default.useEffect(()=>{const d=ot.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:ot,value:i,onChange:l,step:25,placeholder:"Pick a font size",ref:r})]})}const Ka=w.default.forwardRef(Ja);function Za({label:e,value:t,onChange:n},r){const[i,l]=w.default.useState(Array.isArray(t)?[...t]:[]),s=w.default.useCallback(()=>{l(c=>[...c,""])},[l]),u=w.default.useCallback(c=>{l(h=>(h.splice(c,1),[...h]))},[l]),d=w.default.useMemo(()=>!N.default.isEqual(i,t),[i,t]),p=()=>{n(i.map(c=>c.toString()))};return g(H,{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(E.DeviceFloppy,{size:20})})]}),g(a.Group,{children:[i.map((c,h)=>o(a.TextInput,{value:c,onChange:f=>{const v=f.currentTarget.value;l(C=>(C.splice(h,1,v),[...C]))},rightSection:o(a.ActionIcon,{onClick:()=>u(h),color:"red",children:o(E.Trash,{size:14})}),sx:{width:"45%"}})),o(a.ActionIcon,{onClick:s,color:"blue",variant:"outline",children:o(E.PlaylistAdd,{size:20})})]})]})}const el=w.default.forwardRef(Za),tl=w.default.forwardRef(function({value:t,onChange:n},r){const i=t.color.type,l=(s,u)=>{const d=N.default.cloneDeep(t);N.default.set(d,s,u),n(d)};return g(H,{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(Ka,{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($e,{value:t.color.staticColor,onChange:s=>l("color.staticColor",s)}),i==="continuous"&&g(H,{children:[o(el,{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)})]})]})]})}),at=w.default.forwardRef(function({value:t,onChange:n,data:r,withStyle:i=!0},l){const s=(u,d)=>{const p=N.default.cloneDeep(t);N.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(Wa,{label:"Aggregation",value:t.aggregation,onChange:u=>s("aggregation",u)}),o(a.Divider,{my:"xs",label:"Format",labelPosition:"center"}),o(zt,{value:t.formatter,onChange:u=>s("formatter",u)}),i&&o(tl,{value:t,onChange:n})]})});function nl(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 Gt(e,t,n){var i,l,s,u;const r=e.map(d=>d[t]);switch(n.type){case"sum":return N.default.sum(r);case"mean":return N.default.mean(r);case"median":return nl(r);case"max":return(i=N.default.max(r))!=null?i:0;case"min":return(l=N.default.min(r))!=null?l:0;case"quantile":return(s=ao.quantile(r,n.config.p))!=null?s:0;default:return(u=e[0])==null?void 0:u[t]}}var fr=function(){},Qe=function(){};process.env.NODE_ENV!=="production"&&(fr=function(e,t){!e&&typeof console<"u"&&console.warn(t)},Qe=function(e,t){if(!e)throw new Error(t)});const rl=(e,t,n)=>Math.min(Math.max(n,e),t),hr=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},Nt=(e,t,n)=>-n*e+n*t+e,mr=(e,t)=>n=>Math.max(Math.min(n,t),e),Xe=e=>e%1?Number(e.toFixed(5)):e,lt=/(-)?([\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,il=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;function Je(e){return typeof e=="string"}const st={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},vr=Object.assign(Object.assign({},st),{transform:mr(0,1)});Object.assign(Object.assign({},st),{default:1});const Ke=(e=>({test:t=>Je(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}))("%");Object.assign(Object.assign({},Ke),{parse:e=>Ke.parse(e)/100,transform:e=>Ke.transform(e*100)});const qt=(e,t)=>n=>Boolean(Je(n)&&il.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),yr=(e,t,n)=>r=>{if(!Je(r))return r;const[i,l,s,u]=r.match(lt);return{[e]:parseFloat(i),[t]:parseFloat(l),[n]:parseFloat(s),alpha:u!==void 0?parseFloat(u):1}},Ne={test:qt("hsl","hue"),parse:yr("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Ke.transform(Xe(t))+", "+Ke.transform(Xe(n))+", "+Xe(vr.transform(r))+")"},ol=mr(0,255),Bt=Object.assign(Object.assign({},st),{transform:e=>Math.round(ol(e))}),Te={test:qt("rgb","red"),parse:yr("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+Bt.transform(e)+", "+Bt.transform(t)+", "+Bt.transform(n)+", "+Xe(vr.transform(r))+")"};function al(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 jt={test:qt("#"),parse:al,transform:Te.transform},ut={test:e=>Te.test(e)||jt.test(e)||Ne.test(e),parse:e=>Te.test(e)?Te.parse(e):Ne.test(e)?Ne.parse(e):jt.parse(e),transform:e=>Je(e)?e:e.hasOwnProperty("red")?Te.transform(e):Ne.transform(e)},br="${c}",Cr="${n}";function ll(e){var t,n,r,i;return isNaN(e)&&Je(e)&&((n=(t=e.match(lt))===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 xr(e){typeof e=="number"&&(e=`${e}`);const t=[];let n=0;const r=e.match(Lt);r&&(n=r.length,e=e.replace(Lt,br),t.push(...r.map(ut.parse)));const i=e.match(lt);return i&&(e=e.replace(lt,Cr),t.push(...i.map(st.parse))),{values:t,numColors:n,tokenised:e}}function wr(e){return xr(e).values}function Sr(e){const{values:t,numColors:n,tokenised:r}=xr(e),i=t.length;return l=>{let s=r;for(let u=0;u<i;u++)s=s.replace(u<n?br:Cr,u<n?ut.transform(l[u]):Xe(l[u]));return s}}const sl=e=>typeof e=="number"?0:e;function ul(e){const t=wr(e);return Sr(e)(t.map(sl))}const _r={test:ll,parse:wr,createTransformer:Sr,getAnimatableNone:ul};function Ut(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 Dr({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=Ut(d,u,e+1/3),l=Ut(d,u,e),s=Ut(d,u,e-1/3)}return{red:Math.round(i*255),green:Math.round(l*255),blue:Math.round(s*255),alpha:r}}const dl=(e,t,n)=>{const r=e*e,i=t*t;return Math.sqrt(Math.max(0,n*(i-r)+r))},cl=[jt,Te,Ne],Ir=e=>cl.find(t=>t.test(e)),Mr=e=>`'${e}' is not an animatable color. Use the equivalent color code instead.`,Vr=(e,t)=>{let n=Ir(e),r=Ir(t);Qe(!!n,Mr(e)),Qe(!!r,Mr(t));let i=n.parse(e),l=r.parse(t);n===Ne&&(i=Dr(i),n=Te),r===Ne&&(l=Dr(l),r=Te);const s=Object.assign({},i);return u=>{for(const d in s)d!=="alpha"&&(s[d]=dl(i[d],l[d],u));return s.alpha=Nt(i.alpha,l.alpha,u),n.transform(s)}},gl=e=>typeof e=="number",pl=(e,t)=>n=>t(e(n)),Ar=(...e)=>e.reduce(pl);function Er(e,t){return gl(e)?n=>Nt(e,t,n):ut.test(e)?Vr(e,t):Rr(e,t)}const $r=(e,t)=>{const n=[...e],r=n.length,i=e.map((l,s)=>Er(l,t[s]));return l=>{for(let s=0;s<r;s++)n[s]=i[s](l);return n}},fl=(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]=Er(e[i],t[i]));return i=>{for(const l in r)n[l]=r[l](i);return n}};function Tr(e){const t=_r.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=_r.createTransformer(t),r=Tr(e),i=Tr(t);return r.numHSL===i.numHSL&&r.numRGB===i.numRGB&&r.numNumbers>=i.numNumbers?Ar($r(r.parsed,i.parsed),n):(fr(!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}`)},hl=(e,t)=>n=>Nt(e,t,n);function ml(e){if(typeof e=="number")return hl;if(typeof e=="string")return ut.test(e)?Vr:Rr;if(Array.isArray(e))return $r;if(typeof e=="object")return fl}function vl(e,t,n){const r=[],i=n||ml(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 yl([e,t],[n]){return r=>n(hr(e,t,r))}function bl(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=hr(e[l],e[l+1],i);return t[l](u)}}function Cl(e,t,{clamp:n=!0,ease:r,mixer:i}={}){const l=e.length;Qe(l===t.length,"Both input and output ranges must be the same length"),Qe(!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=vl(t,r,i),u=l===2?yl(e,s):bl(e,s);return n?d=>u(rl(e[0],e[l-1],d)):u}class xl{constructor({valueRange:t,colorRange:n}){P(this,"mapper");this.mapper=Cl(t,n)}getColor(t){return this.mapper(t)}}function wl(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array(${e.length})`:e.toString()}function Fr({data_field:e,aggregation:t},n){return Gt(n,e,t)}function dt({formatter:e},t){return["string","number"].includes(typeof t)?de.default(t).format(e):wl(t)}function Sl(e,t){return e.type==="static"?e.staticColor:e.type==="continuous"?new xl(e).getColor(t):"black"}function _l(e,t){const n={};return e.forEach(r=>{const{name:i,color:l,data_field:s,aggregation:u,size:d,weight:p}=r,c=Gt(t,s,u),h=dt(r,c);n[i]=o(a.Text,{sx:{fontSize:d,display:"inline"},color:Sl(l,c),weight:p,children:h})}),n}function Dl(e){return e.split(" ").map(t=>g(H,{children:[t,"\xA0"]}))}function Il(e){const n=e.replaceAll("<br />","<br/>").replaceAll(`
|
|
40
|
-
`,"<br/>").split("<br/>");return n.map((i,l)=>{const s=[Dl(i)];return l!==n.length-1&&s.push(o("br",{})),s}).flat().filter(i=>i!==void 0)}function Wt(e){return Il(e)}function Yt(e,t,n){const r=_l(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(H,{children:[u,Wt(d)]})})}function Ml(e,t){const n={};return e.forEach(r=>{const{name:i,data_field:l,aggregation:s}=r,u=Gt(t,l,s);n[i]=dt(r,u)}),n}function Or(e,t,n){const r=Ml(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 Vl({context:e}){const{value:t=Pt}=B(e.instanceData,"config"),{template:n,variables:r,align:i}=t,l=
|
|
39
|
+
`,Xn=V.observer(function({showSQLSnippets:t=!0,sx:n={}}){const r=Y(),i=r.context.current,l=x.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(ke.Prism,{language:"sql",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:Ao}),o(a.Text,{weight:500,sx:{flexGrow:0},children:"Current Values"}),o(ke.Prism,{language:"json",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:l})]})]})});function Eo({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 Jn=V.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($.Refresh,{size:15})})]}),g(a.Box,{sx:{position:"relative"},children:[o(a.LoadingOverlay,{visible:l}),o(Eo,{data:r})]})]})}),$o=D.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})]})),Kn=V.observer(function({value:t,onChange:n}){const{data:r=[],loading:i}=U.useRequest(So,{refreshDeps:[]},[]),l=D.useMemo(()=>r.map(u=>({label:u.key,value:u.key,type:u.type})),[r]),s=D.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]})}})}),Zn=V.observer(({value:e})=>{const t=Y(),n=t.context.current,r=x.default.useMemo(()=>Un(e,n,t.sqlSnippets.current,t.filters.values),[e,n,t.sqlSnippets.current,t.filters.values]);return o(ke.Prism,{language:"sql",colorScheme:"light",children:r})}),To=V.observer(function({queryModel:t,setCurrentID:n}){const r=x.default.useRef(t.id),[i,l]=x.default.useState(r.current);x.default.useEffect(()=>{r.current!==t.id&&(l(t.id),r.current=t.id)},[r,t.id]);const[s,u]=x.default.useState(t.sql);x.default.useEffect(()=>{u(h=>h!==t.sql?t.sql:h)},[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:h=>{l(h.currentTarget.value)},rightSection:o(a.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:i===t.id,onClick:c,children:o($.DeviceFloppy,{size:18})})}),o(Kn,{value:{type:t.type,key:t.key},onChange:({type:h,key:f})=>{t.setKey(f),t.setType(h)}})]}),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:h=>{u(h.currentTarget.value)}}),o(a.ActionIcon,{mr:5,variant:"filled",color:"blue",sx:{position:"absolute",right:10,top:10},disabled:!d,onClick:p,children:o($.DeviceFloppy,{size:20})})]})}),o(a.Tabs.Panel,{value:"Preview",pt:"sm",children:o(Zn,{value:t.sql})})]})]})]})}),Ro=V.observer(function({id:t,setID:n}){const r=Y(),i=x.default.useMemo(()=>r.queries.findByID(t),[r.queries,t]);return t?i?o(To,{queryModel:i,setCurrentID:n}):o("span",{children:"Invalid Query ID"}):null});var we=(e=>(e.Postgresql="postgresql",e.MySQL="mysql",e.HTTP="http",e))(we||{});const Fo=V.observer(function({id:t,setID:n}){const r=Y(),i=()=>{var s;n((s=r.queries.firstID)!=null?s:"")};x.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=Z.randomId();r.queries.append(b.cast({id:s,type:we.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"})})]})})}),Oo=V.observer(function(){const[t,n]=x.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(Fo,{id:t,setID:n}),o(Ro,{id:t,setID:n})]}),o(Xn,{})]}),o(Jn,{id:t})]})}),Po=V.observer(({value:e})=>{const t=Y(),n=t.context.current,r=x.default.useMemo(()=>xo(e,n,t.filters.values),[e,n]);return g(a.Stack,{children:[o(a.Text,{children:"Preview"}),o(ke.Prism,{language:"sql",noCopy:!0,colorScheme:"dark",children:r})]})}),ko=V.observer(function(){const t=Y(),n=()=>t.sqlSnippets.append(b.cast({key:Z.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(Po,{value:r.value}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>t.sqlSnippets.remove(i),sx:{position:"absolute",top:15,right:5},children:o($.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 zo(){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(ko,{}),o(Xn,{showSQLSnippets:!1})]})})}const Go=V.observer(function({opened:t,close:n}){const{freezeLayout:r}=x.default.useContext(ce);return x.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(zo,{})}),o(a.Tabs.Panel,{value:"Queries",pt:"sm",children:o(Oo,{})})]})})});var ge=(e=>(e.Select="select",e.MultiSelect="multi-select",e.TextInput="text-input",e.Checkbox="checkbox",e.DateRange="date-range",e))(ge||{});const er=b.types.model({type:b.types.enumeration("DataSourceType",[we.Postgresql,we.MySQL,we.HTTP]),key:b.types.string,sql:b.types.string}),tr=b.types.model("FilterConfigModel_TextInput",{required:b.types.boolean,default_value:b.types.string}).actions(e=>({setRequired(t){e.required=t},setDefaultValue(t){e.default_value=t}})),nr=()=>tr.create({required:!1,default_value:""}),No=V.observer(function({config:t}){return o(H,{children:o(a.Checkbox,{checked:t.default_value,onChange:n=>t.setDefaultValue(n.currentTarget.checked),label:"Default Checked"})})}),Lo=[{label:"2022",value:"YYYY"},{label:"202201",value:"YYYYMM"},{label:"20220101",value:"YYYYMMDD"},{label:"2022-01",value:"YYYY-MM"},{label:"2022-01-01",value:"YYYY-MM-DD"}],qo=V.observer(function({config:t}){return g(H,{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:Lo,label:"Display Format",value:t.inputFormat,onChange:t.setInputFormat}),o(jn,{label:"Default Value",config:t,value:t.default_value,onChange:t.setDefaultValue})]})});function Bo({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 jo=V.observer(function({query:t}){const{data:n=[],loading:r,refresh:i}=U.useRequest(Rt(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(Bo,{data:n})]})]})}),rr=V.observer(function({value:t,onChange:n}){return g(a.Stack,{my:0,children:[o(Kn,{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(Zn,{value:t.sql})}),o(a.Tabs.Panel,{value:"Data",pt:"sm",children:o(jo,{query:t})})]})]})}),Uo=V.observer(function({config:t}){const n=()=>{t.addStaticOption({label:"",value:""})},r=t.static_options,i=[...r];return g(H,{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($.Trash,{size:16})})]})),o(a.Button,{size:"xs",color:"blue",leftIcon:o($.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(rr,{value:t.options_query,onChange:t.setOptionsQuery})]})}),Wo=V.observer(function({config:t}){const n=()=>{t.addStaticOption({label:"",value:""})},r=t.static_options,i=[{label:"No default selection",value:""},...r];return g(H,{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($.Trash,{size:16})})]},s)),o(a.Button,{size:"xs",color:"blue",leftIcon:o($.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(rr,{value:t.options_query,onChange:t.setOptionsQuery})]})}),Yo=V.observer(function({config:t}){return g(H,{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"})]})}),Ho=V.observer(function({filter:t}){const n=t.plainDefaultValue,[r,i]=x.default.useState(n);return x.default.useEffect(()=>{i(n)},[n]),g(a.Box,{sx:{maxWidth:"30em"},children:[o(a.Text,{pb:"md",color:"gray",children:"Preview"}),o(Wn,{filter:t,value:r,onChange:i}),o(a.Text,{pt:"lg",pb:"md",color:"gray",children:"Config"}),o(ke.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(t,null,4)})]})}),Qo={select:Wo,"multi-select":Uo,"text-input":Yo,checkbox:No,"date-range":qo},Xo=[{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=V.observer(function({filter:t,index:n}){const r=Y(),i=x.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:Xo,required:!0,value:t.type,onChange:t.setType}),o(i,{config:t.config,index:n})]})]}),o(Ho,{filter:t})]})}),Fg="",Ko=V.observer(function(){const t=Y(),n=t.filters.current,r=()=>{const i=Z.randomId(),l={id:i,key:i,label:i,order:n.length+1,type:ge.TextInput,config:nr(),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($.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($.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($.Trash,{size:20}),onClick:()=>t.filters.remove(l),children:"Delete this filter"})})]})},i.id))})]})})]})}),Zo=V.observer(function({opened:t,close:n}){const{freezeLayout:r}=x.default.useContext(ce);return x.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(Ko,{})})});var ir=(e=>(e.Use="use",e.Edit="edit",e))(ir||{}),pe=(e=>(e.Division="div",e.Modal="modal",e))(pe||{}),or=(e=>(e.Select="select",e.MultiSelect="multi-select",e.TextInput="text-input",e.Checkbox="checkbox",e.DateRange="date-range",e))(or||{});const ea=V.observer(()=>{const t=Y().views.VIE;return!t||t.type!==pe.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"})]})}),ta=V.observer(()=>{const t=Y().views.VIE;return!t||t.type!==pe.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"})]})]})}),na=V.observer(()=>g(H,{children:[o(ea,{}),o(ta,{})]})),ra=[{label:"Division",value:pe.Division},{label:"Modal",value:pe.Modal}],ia=V.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:ra}),o(na,{})]}):null}),oa=V.observer(({opened:e,close:t})=>{var i;const n=Y(),{freezeLayout:r}=x.default.useContext(ce);return x.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($.Trash,{size:18})})]}),trapFocus:!0,onDragStart:l=>{l.stopPropagation()},children:o(ia,{})})}),aa=D.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})})})),ar="TRIGGER_TO_ADD",la=V.observer(({value:e,onChange:t,triggerAdd:n,triggerEdit:r,options:i})=>{const l=D.useMemo(()=>[...i,{label:"Add a View",value:ar,type:"TRIGGER_TO_ADD"}],[i,n]),s=u=>{u!==ar?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:aa,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($.Settings,{size:20})})]})}),sa=V.observer(()=>{const e=Y(),[t,n]=D.useState(!1),r=()=>{n(!0)},i=()=>{n(!1)};return g(H,{children:[o(la,{value:e.views.idOfVIE,onChange:e.views.setIDOfVIE,triggerAdd:e.views.addARandomNewView,triggerEdit:r,options:e.views.options}),o(oa,{opened:t,close:i})]})});function ua({opened:e,close:t,getCurrentSchema:n}){const{freezeLayout:r}=x.default.useContext(ce);x.default.useEffect(()=>{r(e)},[e]);const i=x.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(ke.Prism,{language:"json",sx:{width:"100%"},colorScheme:"dark",children:i})})}const lr=V.observer(function({saveChanges:t}){const n=Y(),r=x.default.useCallback(()=>{const k=n.queries.current,q=n.views.current,ne=n.sqlSnippets.current;return{filters:n.filters.current,views:q,definition:{sqlSnippets:ne,queries:k}}},[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}=x.default.useContext(ce),[d,p]=x.default.useState(!1),c=()=>p(!0),h=()=>p(!1),[f,v]=x.default.useState(!1),C=()=>v(!0),y=()=>v(!1),[S,E]=x.default.useState(!1),T=()=>E(!0),F=()=>E(!1);return g(a.Group,{position:"apart",pt:0,px:10,pb:"xs",children:[o(a.Group,{position:"left",children:s&&o(sa,{})}),g(a.Group,{position:"right",children:[!u&&o(a.Button,{variant:"default",size:"xs",disabled:!n.views.VIE,onClick:n.views.addAPanelToVIE,leftIcon:o($.PlaylistAdd,{size:20}),children:"Add a Panel"}),s&&o(a.Button,{variant:"default",size:"xs",onClick:C,leftIcon:o($.Filter,{size:20}),children:"Filters"}),s&&o(a.Button,{variant:"default",size:"xs",onClick:c,leftIcon:o($.Database,{size:20}),children:"Data Settings"}),!u&&o(a.Button,{variant:"default",size:"xs",onClick:t,disabled:!l,leftIcon:o($.DeviceFloppy,{size:20}),children:"Save Changes"}),!u&&o(a.Button,{color:"red",size:"xs",disabled:!l,onClick:i,leftIcon:o($.Recycle,{size:20}),children:"Revert Changes"}),!u&&g(a.Menu,{width:180,children:[o(a.Menu.Target,{children:o(a.Button,{variant:"default",size:"xs",leftIcon:o($.Share,{size:20}),children:"Export"})}),g(a.Menu.Dropdown,{children:[o(a.Menu.Item,{icon:o($.Download,{size:14}),onClick:n.queries.downloadAllData,children:"Download Data"}),o(a.Menu.Item,{icon:o($.Code,{size:14}),onClick:T,children:"View Schema"})]})]})]}),o(Zo,{opened:f,close:y}),o(Go,{opened:d,close:h}),o(ua,{opened:S,close:F,getCurrentSchema:r})]})}),Og="",sr=V.observer(()=>{const{freezeLayout:e}=x.default.useContext(ce),[t,n]=x.default.useState(!1),{panel:r}=ie();return x.default.useEffect(()=>{e(t)},[t]),!r.description||r.description==="<p><br></p>"?null:g(H,{children:[o(a.Modal,{opened:t,onClose:()=>n(!1),title:r.title,withCloseButton:!1,children:o(kn.default,{readOnly:!0,value:r.description,onChange:N.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($.InfoCircle,{size:20})})})]})}),ur=e=>{const{title:t="Variables",variables:n}=e,r=Z.useClipboard(),i=l=>{r.copy(l),Dt.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 da{constructor(t,n){P(this,"operationId");P(this,"operation");P(this,"operationSchema");P(this,"variables",[]);this.operationManager=t,this.instance=n,ee.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));ee.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 ca(e){return!!e.operationId}const ga=V.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})}),pa=V.observer(({model:e})=>{const t={operation:e.operation,instance:e.instance,variables:[]};return D.createElement(e.operationSchema.configRender,t)});function fa({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 ha=V.observer(e=>{const[t,{setTrue:n,setFalse:r}]=U.useBoolean(!1),{operationManager:i,operationId:l,instance:s,variables:u}=e,d=U.useCreation(()=>new da(i,s),[i,s]);return U.useAsyncEffect(async()=>{await d.configOperation(l,u)},[l,d]),ca(d)?g(H,{children:[o(ga,{model:d,onClick:n}),o(a.Modal,{opened:t,onClose:r,title:"Operation Settings",closeButtonLabel:"close",children:g(a.Stack,{children:[o(fa,{model:d}),o(pa,{model:d}),o(ur,{title:"Variables",variables:d.variables})]})})]}):null});class ma{constructor(t,n){P(this,"triggerId");P(this,"trigger");P(this,"triggerSchema");P(this,"sampleData");this.triggerManager=t,this.instance=n,ee.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));ee.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 va(this)}}function va(e){return!!e.triggerId&&!!e.triggerSchema}function ya(e,t){return U.useCreation(()=>new ma(e,t),[e,t])}const ba=V.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:D.createElement(n,r)})}),Ca=V.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})}),xa=V.observer(({model:e})=>{const t={trigger:e.trigger,instance:e.instance,sampleData:e.sampleData};return D.createElement(e.triggerSchema.configRender,t)}),wa=V.observer(e=>{const[t,{setTrue:n,setFalse:r}]=U.useBoolean(!1),i=e.model;return g(H,{children:[o(a.Modal,{opened:t,onClose:r,title:"Setup Trigger",closeButtonLabel:"close setup",children:g(a.Stack,{children:[o(Ca,{model:i}),o(xa,{model:i}),o(ur,{title:"Payload",variables:i.triggerSchema.payload})]})}),o(ba,{onClick:n,model:i})]})});class qe{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,I.omit(n,t))}async getItem(t){const n=await this.root.getItem(this.path);return t===null?n:I.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=I.get(i,t),u=I.get(l,t);s!==u&&n(s,u)},r)}}class Ft{constructor(t,n,r){P(this,"attachmentStorage");this.instance=t,this.attachmentKey=n,this.constructInstance=r,this.attachmentStorage=new qe(t.instanceData,n)}async getInstance(t){if(await this.attachmentStorage.getItem(t))return this.constructInstance(new qe(this.attachmentStorage,t))}async create(t,n){return await this.attachmentStorage.setItem(t,n),this.constructInstance(new qe(this.attachmentStorage,t))}async remove(t){await this.attachmentStorage.deleteItem(t)}async list(){const t=await this.attachmentStorage.getItem(null);return Promise.all(I.values(t).map(n=>this.constructInstance(new qe(this.attachmentStorage,n.id))))}}class dr{constructor(t){P(this,"rootRef");this.rootRef=ee.observable({current:t})}async deleteItem(t){ee.runInAction(()=>{I.unset(this.rootRef.current,[t])})}getItem(t){const n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?ee.toJS(this.rootRef.current):I.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(I.isObject(n))ee.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else ee.runInAction(()=>{I.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,r){return ee.reaction(()=>this.getValueFromRoot(t),(i,l)=>{n(i,l)},{requiresObservable:!0,fireImmediately:I.get(r,"fireImmediately",!1)})}}class Sa{constructor(){P(this,"channels",new Map);P(this,"globalChannel",new zn.default)}getChannel(t){const n=this.channels.get(t);if(n)return n;const r=new zn.default;return this.channels.set(t,r),r}}class _a{constructor(t){P(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 Sa,instanceData:new dr(t.viz.conf)};return this.instances.set(t.id,r),r}}function cr(e,t,n){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new dr({}),colorPalette:{getColor(){return()=>""}},data:t}}const Da=e=>{const{panel:t,vizManager:n,data:r}=e,i=n.resolveComponent(t.viz.type),l=n.getOrCreateInstance(t),s={...cr(l,r,n),viewport:{width:t.layout.w,height:t.layout.h}},u=i.viewRender;return o(u,{context:s,instance:l,...I.omit(e,["panel","vizManager","data"])})},Ia=e=>{const{vizManager:t,panel:n,panelInfoEditor:r,data:i}=e,l=t.resolveComponent(n.viz.type),s=t.getOrCreateInstance(n),u={...cr(s,i,t),panelInfoEditor:r},d=l.configRender;return o(d,{context:u,instance:s,...I.omit(e,["panel","vizManager","data","panelInfoEditor"])})},gr=(e,t)=>{const n=Ue.default.bezier(e),r=Ue.default.bezier(t);return function(i){return i<50?n(i*2/100).hex():r((i-50)*2/100).hex()}},rt=e=>{const t=Ue.default.bezier(e);return function(n){return t(n/100).hex()}},Ma={type:"interpolation",displayName:"Red / Green",getColor:gr(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},Va={type:"interpolation",displayName:"Yellow / Blue",getColor:gr(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},Aa={type:"interpolation",displayName:"Red",getColor:rt(["#fff7f1","darkred"]),name:"red",category:"sequential"},Ea={type:"interpolation",displayName:"Green",getColor:rt(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},$a={type:"interpolation",displayName:"Blue",getColor:rt(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},Ta={type:"interpolation",displayName:"Orange",getColor:rt(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"},Ra="5.2.0";class Fa{constructor(t){P(this,"staticColors",new Map);P(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 Oa{constructor(){P(this,"plugins",new Map);P(this,"vizComponents",new Map);P(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 Pa{constructor(){P(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=I.orderBy(r,"version","asc");if(((l=I.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 ve extends Pa{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=I.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 I.get(n,"version",0)<this.VERSION}}const Ot={content:""},B=(e,t)=>{const[n,{setFalse:r}]=U.useBoolean(!0),[i,l]=D.useState();D.useEffect(()=>(e.getItem(t).then(u=>{l(u),r()}),e.watchItem(t,u=>{l(u)})));const s=D.useCallback(async u=>{await e.setItem(t,u),l(u)},[e,t]);return{loading:n,value:i,set:s}};function pr(e){const t=D.useRef(null);return D.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 ka({context:e}){const{panel:t}=ie(),{value:n}=B(e.instanceData,"config"),r=n==null?void 0:n.content,i=pr(r);return n!=null&&n.content?o(_t.RichTextEditor,{id:t.id,ref:i,readOnly:!0,value:n.content,onChange:I.noop,sx:{border:"none",".ql-editor":{padding:0,"h1, h2, h3, h4, h5, p, ul, ol":{"&:last-child":{marginBottom:0}}}}}):null}function za({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),r=D.useMemo(()=>I.defaults({},t,Ot),[t]),{control:i,handleSubmit:l,watch:s,getValues:u}=w.useForm({defaultValues:r});s("content");const d=u(),p=D.useMemo(()=>!I.isEqual(d,t),[d,t]),c=pr(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($.DeviceFloppy,{size:20})})]}),o(w.Controller,{name:"content",control:i,render:({field:h})=>o(kn.default,{ref:c,sx:{flex:1},...I.omit(h,"ref")})})]})})}class Ga extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}fixMalformedConfig(n){return I.defaults({},n,Ot)}configVersions(){this.version(1,n=>({version:1,config:this.fixMalformedConfig(n)}))}}const Na={displayName:"RichText",migrator:new Ga,name:"richText",viewRender:ka,configRender:za,createConfig:()=>Ot},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 La(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 qa extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({config:La(n)}))}}const kt=D.forwardRef(function({value:t,onChange:n,...r},i){return o(a.TextInput,{ref:i,value:t,onChange:n,...r})}),He={mantissa:0,output:"number",trimMantissa:!1,average:!1};function Ba({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(Le,{children:g(a.Group,{position:"apart",children:[g(a.Text,{size:12,color:"gray",children:["123456789 ",o($.ArrowRight,{size:9})," ",de.default(123456789).format(e)]}),g(a.Text,{size:12,color:"gray",children:["1234 ",o($.ArrowRight,{size:9})," ",de.default(1234).format(e)]}),g(a.Text,{size:12,color:"gray",children:["0.1234 ",o($.ArrowRight,{size:9})," ",de.default(.1234).format(e)]})]})})]})]})}const zt=x.default.forwardRef(Ba);function it(){return{name:Z.randomId(),size:"20px",weight:"bold",color:{type:"static",staticColor:"blue"},data_field:"",aggregation:{type:"none",config:{}},formatter:He}}const ja=[{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 Ua({label:e,value:t,onChange:n},r){D.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:ja,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 Wa=x.default.forwardRef(Ua);function Ya({label:e,required:t,value:n,onChange:r,data:i,clearable:l=!1,sx:s,...u},d){const p=x.default.useMemo(()=>{if(!Array.isArray(i)||i.length===0)return[];const h=Object.keys(i[0]).map(f=>({label:f,value:f}));return l?h.concat([{label:"unset",value:""}]):h},[i]);return o(a.Select,{ref:d,label:e,data:p,value:n,onChange:r,required:t,sx:s,...u})}const Q=x.default.forwardRef(Ya);function Ha({label:e,value:t,onChange:n},r){const[i,l]=x.default.useState(Array.isArray(t)?[...t]:[]),s=x.default.useCallback(()=>{l(f=>[...f,""])},[l]),u=x.default.useCallback(f=>{l(v=>(v.splice(f,1),[...v]))},[l]),d=x.default.useMemo(()=>!N.default.isEqual(i,t),[i,t]),p=()=>{n(i.map(f=>f.toString()))},c=a.useMantineTheme(),h=x.default.useMemo(()=>Object.entries(c.colors).map(([f,v])=>v[6]),[c]);return g(H,{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($.DeviceFloppy,{size:20})})]}),g(a.Group,{children:[i.map((f,v)=>o(a.ColorInput,{value:f,onChange:C=>{l(y=>(y.splice(v,1,C),[...y]))},swatches:h,rightSection:o(a.ActionIcon,{onClick:()=>u(v),color:"red",children:o($.Trash,{size:14})}),sx:{width:"45%"}})),o(a.ActionIcon,{onClick:s,color:"blue",variant:"outline",children:o($.PlaylistAdd,{size:20})})]})]})}const Qa=x.default.forwardRef(Ha);function Xa({value:e,onChange:t},n){const{colorManager:r}=D.useContext(De),i=x.default.useMemo(()=>r.getStaticColors().map(u=>({label:u.name,group:u.category,value:u.value})),[r]),l=x.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 $e=x.default.forwardRef(Xa),ot=[{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]=x.default.useState((u=(s=ot.find(d=>d.label===t))==null?void 0:s.value)!=null?u:ot[0].value);return x.default.useEffect(()=>{const d=ot.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:ot,value:i,onChange:l,step:25,placeholder:"Pick a font size",ref:r})]})}const Ka=x.default.forwardRef(Ja);function Za({label:e,value:t,onChange:n},r){const[i,l]=x.default.useState(Array.isArray(t)?[...t]:[]),s=x.default.useCallback(()=>{l(c=>[...c,""])},[l]),u=x.default.useCallback(c=>{l(h=>(h.splice(c,1),[...h]))},[l]),d=x.default.useMemo(()=>!N.default.isEqual(i,t),[i,t]),p=()=>{n(i.map(c=>c.toString()))};return g(H,{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($.DeviceFloppy,{size:20})})]}),g(a.Group,{children:[i.map((c,h)=>o(a.TextInput,{value:c,onChange:f=>{const v=f.currentTarget.value;l(C=>(C.splice(h,1,v),[...C]))},rightSection:o(a.ActionIcon,{onClick:()=>u(h),color:"red",children:o($.Trash,{size:14})}),sx:{width:"45%"}})),o(a.ActionIcon,{onClick:s,color:"blue",variant:"outline",children:o($.PlaylistAdd,{size:20})})]})]})}const el=x.default.forwardRef(Za),tl=x.default.forwardRef(function({value:t,onChange:n},r){const i=t.color.type,l=(s,u)=>{const d=N.default.cloneDeep(t);N.default.set(d,s,u),n(d)};return g(H,{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(Ka,{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($e,{value:t.color.staticColor,onChange:s=>l("color.staticColor",s)}),i==="continuous"&&g(H,{children:[o(el,{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)})]})]})]})}),at=x.default.forwardRef(function({value:t,onChange:n,data:r,withStyle:i=!0},l){const s=(u,d)=>{const p=N.default.cloneDeep(t);N.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(Wa,{label:"Aggregation",value:t.aggregation,onChange:u=>s("aggregation",u)}),o(a.Divider,{my:"xs",label:"Format",labelPosition:"center"}),o(zt,{value:t.formatter,onChange:u=>s("formatter",u)}),i&&o(tl,{value:t,onChange:n})]})});function nl(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 Gt(e,t,n){var i,l,s,u;const r=e.map(d=>d[t]);switch(n.type){case"sum":return N.default.sum(r);case"mean":return N.default.mean(r);case"median":return nl(r);case"max":return(i=N.default.max(r))!=null?i:0;case"min":return(l=N.default.min(r))!=null?l:0;case"quantile":return(s=ao.quantile(r,n.config.p))!=null?s:0;default:return(u=e[0])==null?void 0:u[t]}}var fr=function(){},Qe=function(){};process.env.NODE_ENV!=="production"&&(fr=function(e,t){!e&&typeof console<"u"&&console.warn(t)},Qe=function(e,t){if(!e)throw new Error(t)});const rl=(e,t,n)=>Math.min(Math.max(n,e),t),hr=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},Nt=(e,t,n)=>-n*e+n*t+e,mr=(e,t)=>n=>Math.max(Math.min(n,t),e),Xe=e=>e%1?Number(e.toFixed(5)):e,lt=/(-)?([\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,il=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;function Je(e){return typeof e=="string"}const st={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},vr=Object.assign(Object.assign({},st),{transform:mr(0,1)});Object.assign(Object.assign({},st),{default:1});const Ke=(e=>({test:t=>Je(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}))("%");Object.assign(Object.assign({},Ke),{parse:e=>Ke.parse(e)/100,transform:e=>Ke.transform(e*100)});const qt=(e,t)=>n=>Boolean(Je(n)&&il.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),yr=(e,t,n)=>r=>{if(!Je(r))return r;const[i,l,s,u]=r.match(lt);return{[e]:parseFloat(i),[t]:parseFloat(l),[n]:parseFloat(s),alpha:u!==void 0?parseFloat(u):1}},Ne={test:qt("hsl","hue"),parse:yr("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Ke.transform(Xe(t))+", "+Ke.transform(Xe(n))+", "+Xe(vr.transform(r))+")"},ol=mr(0,255),Bt=Object.assign(Object.assign({},st),{transform:e=>Math.round(ol(e))}),Te={test:qt("rgb","red"),parse:yr("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+Bt.transform(e)+", "+Bt.transform(t)+", "+Bt.transform(n)+", "+Xe(vr.transform(r))+")"};function al(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 jt={test:qt("#"),parse:al,transform:Te.transform},ut={test:e=>Te.test(e)||jt.test(e)||Ne.test(e),parse:e=>Te.test(e)?Te.parse(e):Ne.test(e)?Ne.parse(e):jt.parse(e),transform:e=>Je(e)?e:e.hasOwnProperty("red")?Te.transform(e):Ne.transform(e)},br="${c}",Cr="${n}";function ll(e){var t,n,r,i;return isNaN(e)&&Je(e)&&((n=(t=e.match(lt))===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 xr(e){typeof e=="number"&&(e=`${e}`);const t=[];let n=0;const r=e.match(Lt);r&&(n=r.length,e=e.replace(Lt,br),t.push(...r.map(ut.parse)));const i=e.match(lt);return i&&(e=e.replace(lt,Cr),t.push(...i.map(st.parse))),{values:t,numColors:n,tokenised:e}}function wr(e){return xr(e).values}function Sr(e){const{values:t,numColors:n,tokenised:r}=xr(e),i=t.length;return l=>{let s=r;for(let u=0;u<i;u++)s=s.replace(u<n?br:Cr,u<n?ut.transform(l[u]):Xe(l[u]));return s}}const sl=e=>typeof e=="number"?0:e;function ul(e){const t=wr(e);return Sr(e)(t.map(sl))}const _r={test:ll,parse:wr,createTransformer:Sr,getAnimatableNone:ul};function Ut(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 Dr({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=Ut(d,u,e+1/3),l=Ut(d,u,e),s=Ut(d,u,e-1/3)}return{red:Math.round(i*255),green:Math.round(l*255),blue:Math.round(s*255),alpha:r}}const dl=(e,t,n)=>{const r=e*e,i=t*t;return Math.sqrt(Math.max(0,n*(i-r)+r))},cl=[jt,Te,Ne],Ir=e=>cl.find(t=>t.test(e)),Mr=e=>`'${e}' is not an animatable color. Use the equivalent color code instead.`,Vr=(e,t)=>{let n=Ir(e),r=Ir(t);Qe(!!n,Mr(e)),Qe(!!r,Mr(t));let i=n.parse(e),l=r.parse(t);n===Ne&&(i=Dr(i),n=Te),r===Ne&&(l=Dr(l),r=Te);const s=Object.assign({},i);return u=>{for(const d in s)d!=="alpha"&&(s[d]=dl(i[d],l[d],u));return s.alpha=Nt(i.alpha,l.alpha,u),n.transform(s)}},gl=e=>typeof e=="number",pl=(e,t)=>n=>t(e(n)),Ar=(...e)=>e.reduce(pl);function Er(e,t){return gl(e)?n=>Nt(e,t,n):ut.test(e)?Vr(e,t):Rr(e,t)}const $r=(e,t)=>{const n=[...e],r=n.length,i=e.map((l,s)=>Er(l,t[s]));return l=>{for(let s=0;s<r;s++)n[s]=i[s](l);return n}},fl=(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]=Er(e[i],t[i]));return i=>{for(const l in r)n[l]=r[l](i);return n}};function Tr(e){const t=_r.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=_r.createTransformer(t),r=Tr(e),i=Tr(t);return r.numHSL===i.numHSL&&r.numRGB===i.numRGB&&r.numNumbers>=i.numNumbers?Ar($r(r.parsed,i.parsed),n):(fr(!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}`)},hl=(e,t)=>n=>Nt(e,t,n);function ml(e){if(typeof e=="number")return hl;if(typeof e=="string")return ut.test(e)?Vr:Rr;if(Array.isArray(e))return $r;if(typeof e=="object")return fl}function vl(e,t,n){const r=[],i=n||ml(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 yl([e,t],[n]){return r=>n(hr(e,t,r))}function bl(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=hr(e[l],e[l+1],i);return t[l](u)}}function Cl(e,t,{clamp:n=!0,ease:r,mixer:i}={}){const l=e.length;Qe(l===t.length,"Both input and output ranges must be the same length"),Qe(!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=vl(t,r,i),u=l===2?yl(e,s):bl(e,s);return n?d=>u(rl(e[0],e[l-1],d)):u}class xl{constructor({valueRange:t,colorRange:n}){P(this,"mapper");this.mapper=Cl(t,n)}getColor(t){return this.mapper(t)}}function wl(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array(${e.length})`:e.toString()}function Fr({data_field:e,aggregation:t},n){return Gt(n,e,t)}function dt({formatter:e},t){return["string","number"].includes(typeof t)?de.default(t).format(e):wl(t)}function Sl(e,t){return e.type==="static"?e.staticColor:e.type==="continuous"?new xl(e).getColor(t):"black"}function _l(e,t){const n={};return e.forEach(r=>{const{name:i,color:l,data_field:s,aggregation:u,size:d,weight:p}=r,c=Gt(t,s,u),h=dt(r,c);n[i]=o(a.Text,{sx:{fontSize:d,display:"inline"},color:Sl(l,c),weight:p,children:h})}),n}function Dl(e){return e.split(" ").map(t=>g(H,{children:[t,"\xA0"]}))}function Il(e){const n=e.replaceAll("<br />","<br/>").replaceAll(`
|
|
40
|
+
`,"<br/>").split("<br/>");return n.map((i,l)=>{const s=[Dl(i)];return l!==n.length-1&&s.push(o("br",{})),s}).flat().filter(i=>i!==void 0)}function Wt(e){return Il(e)}function Yt(e,t,n){const r=_l(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(H,{children:[u,Wt(d)]})})}function Ml(e,t){const n={};return e.forEach(r=>{const{name:i,data_field:l,aggregation:s}=r,u=Gt(t,l,s);n[i]=dt(r,u)}),n}function Or(e,t,n){const r=Ml(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 Vl({context:e}){const{value:t=Pt}=B(e.instanceData,"config"),{template:n,variables:r,align:i}=t,l=D.useMemo(()=>Yt(n,r,e.data),[n,r,e.data]);return o(a.Text,{align:i,children:Object.values(l).map(s=>s)})}function Al({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(w.Controller,{name:`variables.${t}`,control:e,render:({field:i})=>o(at,{data:r,...i})}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:o($.Trash,{size:16})})]},t)}function El({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=w.useFieldArray({control:e,name:"variables"}),s=t("variables"),u=r.map((p,c)=>({...p,...s[c]})),d=()=>i(it());return g(a.Stack,{children:[u.map((p,c)=>o(Al,{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}=B(e.instanceData,"config"),i=x.default.useMemo(()=>{const{align:f,template:v="",variables:C=[]}=I.defaultsDeep({},n,Pt);return{variables:C,template:v,align:f}},[n]),{control:l,handleSubmit:s,watch:u,getValues:d,reset:p}=w.useForm({defaultValues:i});x.default.useEffect(()=>{p(i)},[i]),u(["variables","template"]);const c=d(),h=x.default.useMemo(()=>!N.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:!h,children:o($.DeviceFloppy,{size:20})})]}),o(w.Controller,{name:"template",control:l,render:({field:f})=>o(kt,{label:"Template",py:"md",sx:{flexGrow:1},...f})}),o(a.Text,{pb:"sm",pt:"md",size:"sm",children:"Variables"}),o(El,{control:l,watch:u,data:t})]})})}const Tl={createConfig(){return{version:1,config:Pt}},displayName:"Stats",migrator:new qa,name:"stats",viewRender:Vl,configRender:$l};var Re=(e=>(e.string="string",e.number="number",e.eloc="eloc",e.percentage="percentage",e))(Re||{});const ct={columns:[],fontSize:"1rem",highlightOnHover:!1,horizontalSpacing:"1em",id_field:"",striped:!1,use_raw_columns:!1,verticalSpacing:"1em"};/**
|
|
41
41
|
* react-table
|
|
42
42
|
*
|
|
43
43
|
* Copyright (c) TanStack
|
|
@@ -49,8 +49,8 @@ WHERE
|
|
|
49
49
|
*/function Fe(e,t){return typeof e=="function"?e(t):e}function fe(e,t){return n=>{t.setState(r=>({...r,[e]:Fe(n,r[e])}))}}function gt(e){return e instanceof Function}function Rl(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 O(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,h=c/16,f=(v,C)=>{for(v=String(v);v.length<C;)v=" "+v;return v};console.info("%c\u23F1 "+f(c,5)+" /"+f(p,5)+" ms",`
|
|
50
50
|
font-size: .6rem;
|
|
51
51
|
font-weight: bold;
|
|
52
|
-
color: hsl(`+Math.max(0,Math.min(120-120*h,120))+"deg 100% 31%);",n==null?void 0:n.key)}return i}}function Fl(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=f=>{let v=f;for(const C of d.split("."))v=v[C];return v}:c=f=>f[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 h={id:""+String(p),accessorFn:c,parent:r,depth:n,columnDef:u,columns:[],getFlatColumns:O(()=>[!0],()=>{var f;return[h,...(f=h.columns)==null?void 0:f.flatMap(v=>v.getFlatColumns())]},{key:process.env.NODE_ENV==="production"&&"column.getFlatColumns",debug:()=>{var f;return(f=e.options.debugAll)!=null?f:e.options.debugColumns}}),getLeafColumns:O(()=>[e._getOrderColumnsFn()],f=>{var v;if((v=h.columns)!=null&&v.length){let C=h.columns.flatMap(y=>y.getLeafColumns());return f(C)}return[h]},{key:process.env.NODE_ENV==="production"&&"column.getLeafColumns",debug:()=>{var f;return(f=e.options.debugAll)!=null?f:e.options.debugColumns}})};return h=e._features.reduce((f,v)=>Object.assign(f,v.createColumn==null?void 0:v.createColumn(h,e)),h),h}function Pr(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 Ol={createTable:e=>({getHeaderGroups:O(()=>[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(h=>n.find(f=>f.id===h)).filter(Boolean))!=null?l:[],d=(s=i==null?void 0:i.map(h=>n.find(f=>f.id===h)).filter(Boolean))!=null?s:[],p=n.filter(h=>!(r!=null&&r.includes(h.id))&&!(i!=null&&i.includes(h.id)));return pt(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:O(()=>[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))),pt(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:O(()=>[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 pt(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:O(()=>[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 pt(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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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 pt(e,t,n,r){var i,l;let s=0;const u=function(f,v){v===void 0&&(v=1),s=Math.max(s,v),f.filter(C=>C.getIsVisible()).forEach(C=>{var y;(y=C.columns)!=null&&y.length&&u(C.columns,v+1)},0)};u(e);let d=[];const p=(f,v)=>{const C={depth:v,id:[r,""+v].filter(Boolean).join("_"),headers:[]},y=[];f.forEach(x=>{const $=[...y].reverse()[0],T=x.column.depth===C.depth;let F,k=!1;if(T&&x.column.parent?F=x.column.parent:(F=x.column,k=!0),$&&($==null?void 0:$.column)===F)$.subHeaders.push(x);else{const q=Pr(n,F,{id:[r,v,F.id,x==null?void 0:x.id].filter(Boolean).join("_"),isPlaceholder:k,placeholderId:k?""+y.filter(ne=>ne.column===F).length:void 0,depth:v,index:y.length});q.subHeaders.push(x),y.push(q)}C.headers.push(x),x.headerGroup=C}),d.push(C),v>0&&p(y,v-1)},c=t.map((f,v)=>Pr(n,f,{depth:s,index:v}));p(c,s-1),d.reverse();const h=f=>f.filter(C=>C.column.getIsVisible()).map(C=>{let y=0,x=0,$=[0];C.subHeaders&&C.subHeaders.length?($=[],h(C.subHeaders).forEach(F=>{let{colSpan:k,rowSpan:q}=F;y+=k,$.push(q)})):y=1;const T=Math.min(...$);return x=x+T,C.colSpan=y,C.rowSpan=x,{colSpan:y,rowSpan:x}});return h((i=(l=d[0])==null?void 0:l.headers)!=null?i:[]),d}const ft={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},Ht=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),Pl={getDefaultColumnDef:()=>ft,getInitialState:e=>({columnSizing:{},columnSizingInfo:Ht(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",onColumnSizingChange:fe("columnSizing",e),onColumnSizingInfoChange:fe("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:ft.minSize,(r=l!=null?l:e.columnDef.size)!=null?r:ft.size),(i=e.columnDef.maxSize)!=null?i:ft.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(),Qt(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=Qt(i)?Math.round(i.touches[0].clientX):i.clientX,d=(v,C)=>{if(typeof C!="number")return;let y={};t.setColumnSizingInfo(x=>{var $,T;const F=C-(($=x==null?void 0:x.startOffset)!=null?$:0),k=Math.max(F/((T=x==null?void 0:x.startSize)!=null?T:0),-.999999);return x.columnSizingStart.forEach(q=>{let[ne,K]=q;y[ne]=Math.round(Math.max(K+K*k,0)*100)/100}),{...x,deltaOffset:F,deltaPercentage:k}}),(t.options.columnResizeMode==="onChange"||v==="end")&&t.setColumnSizing(x=>({...x,...y}))},p=v=>d("move",v),c=v=>{d("end",v),t.setColumnSizingInfo(C=>({...C,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},h={moveHandler:v=>p(v.clientX),upHandler:v=>{document.removeEventListener("mousemove",h.moveHandler),document.removeEventListener("mouseup",h.upHandler),c(v.clientX)}},f=kl()?{passive:!1}:!1;Qt(i)||(document.addEventListener("mousemove",h.moveHandler,f),document.addEventListener("mouseup",h.upHandler,f)),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?Ht():(n=e.initialState.columnSizingInfo)!=null?n:Ht())},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 ht=null;function kl(){if(typeof ht=="boolean")return ht;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 ht=e,ht}function Qt(e){return e.type==="touchstart"}const zl={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:fe("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()}}})},kr=(e,t,n)=>{var r;const i=n.toLowerCase();return(r=e.getValue(t))==null?void 0:r.toLowerCase().includes(i)};kr.autoRemove=e=>ye(e);const zr=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};zr.autoRemove=e=>ye(e);const Gr=(e,t,n)=>{var r;return((r=e.getValue(t))==null?void 0:r.toLowerCase())===n.toLowerCase()};Gr.autoRemove=e=>ye(e);const Nr=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};Nr.autoRemove=e=>ye(e)||!(e!=null&&e.length);const Lr=(e,t,n)=>!n.some(r=>{var i;return!((i=e.getValue(t))!=null&&i.includes(r))});Lr.autoRemove=e=>ye(e)||!(e!=null&&e.length);const qr=(e,t,n)=>n.some(r=>{var i;return(i=e.getValue(t))==null?void 0:i.includes(r)});qr.autoRemove=e=>ye(e)||!(e!=null&&e.length);const Br=(e,t,n)=>e.getValue(t)===n;Br.autoRemove=e=>ye(e);const jr=(e,t,n)=>e.getValue(t)==n;jr.autoRemove=e=>ye(e);const Xt=(e,t,n)=>{let[r,i]=n;const l=e.getValue(t);return l>=r&&l<=i};Xt.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]},Xt.autoRemove=e=>ye(e)||ye(e[0])&&ye(e[1]);const _e={includesString:kr,includesStringSensitive:zr,equalsString:Gr,arrIncludes:Nr,arrIncludesAll:Lr,arrIncludesSome:qr,equals:Br,weakEquals:jr,inNumberRange:Xt};function ye(e){return e==null||e===""}const Gl={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],globalFilter:void 0,...e}),getDefaultOptions:e=>({onColumnFiltersChange:fe("columnFilters",e),onGlobalFilterChange:fe("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"?_e.includesString:typeof r=="number"?_e.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?_e.equals:Array.isArray(r)?_e.arrIncludes:_e.weakEquals},getFilterFn:()=>{var n,r;return gt(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:_e[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=Fe(n,l?l.value:void 0);if(Ur(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:()=>_e.includesString,getGlobalFilterFn:()=>{var t,n;const{globalFilterFn:r}=e.options;return gt(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:_e[r]},setColumnFilters:t=>{const n=e.getAllLeafColumns(),r=i=>{var l;return(l=Fe(t,i))==null?void 0:l.filter(s=>{const u=n.find(d=>d.id===s.id);if(u){const d=u.getFilterFn();if(Ur(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 Ur(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const Jt={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},Nl={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:fe("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 Jt.sum;if(Object.prototype.toString.call(r)==="[object Date]")return Jt.extent},getAggregationFn:()=>{var n,r;if(!e)throw new Error;return gt(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:Jt[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 Ll(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 ql={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:fe("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:O(()=>[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 Ll(l,n,r)},{key:process.env.NODE_ENV==="development"&&"getOrderColumnsFn"})})},Kt=0,Zt=10,en=()=>({pageIndex:Kt,pageSize:Zt}),Bl={getInitialState:e=>({...e,pagination:{...en(),...e==null?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:fe("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=>Fe(r,l);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(i)},resetPagination:r=>{var i;e.setPagination(r?en():(i=e.initialState.pagination)!=null?i:en())},setPageIndex:r=>{e.setPagination(i=>{let l=Fe(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?Kt:(i=(l=e.initialState)==null||(s=l.pagination)==null?void 0:s.pageIndex)!=null?i:Kt)},resetPageSize:r=>{var i,l,s;e.setPageSize(r?Zt:(i=(l=e.initialState)==null||(s=l.pagination)==null?void 0:s.pageSize)!=null?i:Zt)},setPageSize:r=>{e.setPagination(i=>{const l=Math.max(1,Fe(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=Fe(r,(l=e.options.pageCount)!=null?l:-1);return typeof s=="number"&&(s=Math.max(-1,s)),{...i,pageCount:s}}),getPageOptions:O(()=>[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)}}}},tn=()=>({left:[],right:[]}),jl={getInitialState:e=>({columnPinning:tn(),...e}),getDefaultOptions:e=>({onColumnPinningChange:fe("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(h=>!(r!=null&&r.includes(h))),right:[...((d=i==null?void 0:i.right)!=null?d:[]).filter(h=>!(r!=null&&r.includes(h))),...r]}}if(n==="left"){var p,c;return{left:[...((p=i==null?void 0:i.left)!=null?p:[]).filter(h=>!(r!=null&&r.includes(h))),...r],right:((c=i==null?void 0:i.right)!=null?c:[]).filter(h=>!(r!=null&&r.includes(h)))}}return{left:((l=i==null?void 0:i.left)!=null?l:[]).filter(h=>!(r!=null&&r.includes(h))),right:((s=i==null?void 0:i.right)!=null?s:[]).filter(h=>!(r!=null&&r.includes(h)))}})},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:O(()=>[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:O(()=>[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:O(()=>[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?tn():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:tn())},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:O(()=>[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:O(()=>[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:O(()=>[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}})})},Ul={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:fe("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=>{nn(i,l.id,r,e)}),i}),getPreSelectedRowModel:()=>e.getCoreRowModel(),getSelectedRowModel:O(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?rn(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:O(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?rn(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:O(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?rn(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 nn(l,e.id,n,t),l})},getIsSelected:()=>{const{rowSelection:n}=t.getState();return on(e,n)},getIsSomeSelected:()=>{const{rowSelection:n}=t.getState();return Wr(e,n)==="some"},getIsAllSubRowsSelected:()=>{const{rowSelection:n}=t.getState();return Wr(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)}}})},nn=(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=>nn(e,s.id,n,r))};function rn(e,t){const n=e.getState().rowSelection,r=[],i={},l=function(s,u){return s.map(d=>{var p;const c=on(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 on(e,t){var n;return(n=t[e.id])!=null?n:!1}function Wr(e,t,n){if(e.subRows&&e.subRows.length){let r=!0,i=!1;return e.subRows.forEach(l=>{i&&!r||(on(l,t)?i=!0:r=!1)}),r?"all":i?"some":!1}return!1}const an=/([0-9]+)/gm,Wl=(e,t,n)=>Yr(Oe(e.getValue(n)).toLowerCase(),Oe(t.getValue(n)).toLowerCase()),Yl=(e,t,n)=>Yr(Oe(e.getValue(n)),Oe(t.getValue(n))),Hl=(e,t,n)=>ln(Oe(e.getValue(n)).toLowerCase(),Oe(t.getValue(n)).toLowerCase()),Ql=(e,t,n)=>ln(Oe(e.getValue(n)),Oe(t.getValue(n))),Xl=(e,t,n)=>{const r=e.getValue(n),i=t.getValue(n);return r>i?1:r<i?-1:0},Jl=(e,t,n)=>ln(e.getValue(n),t.getValue(n));function ln(e,t){return e===t?0:e>t?1:-1}function Oe(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function Yr(e,t){const n=e.split(an).filter(Boolean),r=t.split(an).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 Ze={alphanumeric:Wl,alphanumericCaseSensitive:Yl,text:Hl,textCaseSensitive:Ql,datetime:Xl,basic:Jl},Hr=[Ol,{getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:fe("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:O(()=>[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:O(()=>[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)=>O(()=>[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)}}}},ql,jl,Gl,{getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto"}),getDefaultOptions:e=>({onSortingChange:fe("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 Ze.datetime;if(typeof l=="string"&&(r=!0,l.split(an).length>1))return Ze.alphanumeric}return r?Ze.text:Ze.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 gt(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:Ze[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,h=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 f;p=[...s,{id:e.id,desc:h}],p.splice(0,p.length-((f=t.options.maxMultiSortColCount)!=null?f:Number.MAX_SAFE_INTEGER))}else c==="toggle"?p=s.map(v=>v.id===e.id?{...v,desc:h}:v):c==="remove"?p=s.filter(v=>v.id!==e.id):p=[{id:e.id,desc:h}];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())})},Nl,zl,Bl,Ul,Pl];function Kl(e){var t;(e.debugAll||e.debugTable)&&console.info("Creating Table Instance...");let n={_features:Hr};const r=n._features.reduce((c,h)=>Object.assign(c,h.getDefaultOptions==null?void 0:h.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 h;s=(h=c.getInitialState==null?void 0:c.getInitialState(s))!=null?h:s});const u=[];let d=!1;const p={_features:Hr,options:{...r,...e},initialState:s,_queue:c=>{u.push(c),d||(d=!0,Promise.resolve().then(()=>{for(;u.length;)u.shift()();d=!1}).catch(h=>setTimeout(()=>{throw h})))},reset:()=>{n.setState(n.initialState)},setOptions:c=>{const h=Fe(c,n.options);n.options=i(h)},getState:()=>n.options.state,setState:c=>{n.options.onStateChange==null||n.options.onStateChange(c)},_getRowId:(c,h,f)=>{var v;return(v=n.options.getRowId==null?void 0:n.options.getRowId(c,h,f))!=null?v:""+(f?[f.id,h].join("."):h)},getCoreRowModel:()=>(n._getCoreRowModel||(n._getCoreRowModel=n.options.getCoreRowModel(n)),n._getCoreRowModel()),getRowModel:()=>n.getPaginationRowModel(),getRow:c=>{const h=n.getRowModel().rowsById[c];if(!h)throw process.env.NODE_ENV!=="production"?new Error("getRow expected an ID, but got "+c):new Error;return h},_getDefaultColumnDef:O(()=>[n.options.defaultColumn],c=>{var h;return c=(h=c)!=null?h:{},{header:f=>{const v=f.header.column.columnDef;return v.accessorKey?v.accessorKey:v.accessorFn?v.id:null},cell:f=>{var v,C;return(v=(C=f.renderValue())==null||C.toString==null?void 0:C.toString())!=null?v:null},...n._features.reduce((f,v)=>Object.assign(f,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:O(()=>[n._getColumnDefs()],c=>{const h=function(f,v,C){return C===void 0&&(C=0),f.map(y=>{const x=Fl(n,y,C,v),$=y;return x.columns=$.columns?h($.columns,x,C+1):[],x})};return h(c)},{key:process.env.NODE_ENV==="development"&&"getAllColumns",debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns}}),getAllFlatColumns:O(()=>[n.getAllColumns()],c=>c.flatMap(h=>h.getFlatColumns()),{key:process.env.NODE_ENV==="development"&&"getAllFlatColumns",debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns}}),_getAllFlatColumnsById:O(()=>[n.getAllFlatColumns()],c=>c.reduce((h,f)=>(h[f.id]=f,h),{}),{key:process.env.NODE_ENV==="development"&&"getAllFlatColumnsById",debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns}}),getAllLeafColumns:O(()=>[n.getAllColumns(),n._getOrderColumnsFn()],(c,h)=>{let f=c.flatMap(v=>v.getLeafColumns());return h(f)},{key:process.env.NODE_ENV==="development"&&"getAllLeafColumns",debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns}}),getColumn:c=>{const h=n._getAllFlatColumnsById()[c];if(!h)throw process.env.NODE_ENV!=="production"&&console.warn("[Table] Column with id "+c+" does not exist."),new Error;return h}};return Object.assign(n,p),n._features.forEach(c=>Object.assign(n,c.createTable==null?void 0:c.createTable(n))),n}function Zl(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:O(()=>[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 es=(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:()=>Rl(s.subRows,u=>u.subRows),getAllCells:O(()=>[e.getAllLeafColumns()],u=>u.map(d=>Zl(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:O(()=>[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 ts(){return{accessor:(e,t)=>typeof e=="function"?{...t,accessorFn:e}:{...t,accessorKey:e},display:e=>e,group:e=>e}}function ns(){return e=>O(()=>[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=es(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 rs(){return e=>O(()=>[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,h)=>{for(let v=0;v<l.length;v+=1){var f;const C=l[v],y=s[C.id],x=(f=C==null?void 0:C.desc)!=null?f:!1;if(y.sortUndefined){const T=c.getValue(C.id),F=h.getValue(C.id),k=typeof T>"u",q=typeof F>"u";if(k||q)return k&&q?0:k?y.sortUndefined:-y.sortUndefined}let $=y.sortingFn(c,h,C.id);if($!==0)return x&&($*=-1),y.invertSorting&&($*=-1),$}return c.index-h.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?is(e)?o(e,{...t}):e:null}function is(e){return os(e)||typeof e=="function"||as(e)}function os(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function as(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function ls(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=Pn.useState(()=>({current:Kl(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 ss=({vizManager:e,instance:t})=>U.useCreation(()=>new ai(t,e.resolveComponent(t.type),bn),[t,e]),us=(e,t)=>{const[n,r]=_.useState([]);return _.useEffect(()=>e.watchTriggerSnapshotList(i=>r(i.filter(l=>l.schemaRef===t))),[]),n};function Xr(e,t,n){return Math.min(Math.max(e,t),n)}class ds{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=I.findLastIndex(this.steps,r=>r.from<=t);return n=Xr(n,0,this.steps.length-2),this.getLinearFunction(this.steps[n],this.steps[n+1])}mapValue(t){return Xr(this.getStepFunctionForValue(t)(t),0,100)}}function cs(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 Jr(e,t){if(e==null)return{};var n=cs(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 gs=["size","color","stroke"];function ps(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=Jr(e,gs);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 fs=["size","color","stroke"];function hs(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=Jr(e,fs);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 ms=({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(vs,{direction:e.column.getIsSorted()})]}),vs=({direction:e})=>{switch(e){case"asc":return o(hs,{size:16});case"desc":return o(ps,{size:"1em"});default:return null}},sn={id:"builtin:table:click-cell-content",displayName:"Click Cell Content",nameRender:ws,configRender:Cs,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"}]},ys={column:""};function Kr(e){const{value:t}=B(e.instanceData,"config");return t?t.columns.map((n,r)=>({label:n.label,value:r.toString()})):[]}function bs(e){return I.isEmpty(e)?[]:Object.keys(e[0]).map(t=>({label:t,value:t}))}function Cs(e){const t=Kr(e.instance),n=bs(e.sampleData),r=t.length>0?t:n,{value:i,set:l}=B(e.trigger.triggerData,"config"),{column:s}=I.defaults({},i,ys),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 xs(e,t){return e?I.isNumber(e.column)?`Click cell of ${t[e.column].label}`:`Click cell of ${e.column}`:"Click cell content (click to config)"}function ws(e){const t=Kr(e.instance),{value:n}=B(e.trigger.triggerData,"config");return o(a.Text,{children:xs(n,t)})}const Ss=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}})),_s=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 Ds(e){return e?Ue.default(e).oklch()[0]>.7?"black":"white":"inherit"}function Is(e){const t=e.tableCellContext.bgColor;return{backgroundColor:t,color:Ds(t)}}function mt(e){const t=e.tableCellContext.isClickable(),n=_s({clickable:t});return o("div",{className:n.classes.content,style:{...Is(e)},children:o(a.Text,{className:"table-cell-text",onClick:e.tableCellContext.getClickHandler(),children:o("span",{children:e.children})})})}function Ms(e){return o(mt,{...e,children:e.value})}function Vs(e){return o(mt,{...e,children:e.value})}function As(e){const t=de.default(e.value).format({thousandSeparated:!0});return o(mt,{...e,children:t})}function Es(e){const t=de.default(e.value).format({output:"percent",mantissa:3});return o(mt,{...e,children:t})}function $s(e){switch(e.type){case Re.string:return o(Ms,{...e});case Re.eloc:return o(Vs,{...e});case Re.number:return o(As,{...e});case Re.percentage:return o(Es,{...e})}}const Ts=e=>{const t=ss(e),n=us(t.triggerManager,sn.id),{colorManager:r}=_.useContext(De);return _.useCallback(i=>new Fs(e.getColIndex,i,n,t,r),[n,t,e.getColIndex])};function Rs({context:e,instance:t}){var he,ae,be;const n=(he=e.data)!=null?he:[],{height:r,width:i}=e.viewport,{value:l=ct}=B(e.instanceData,"config"),{use_raw_columns:s,columns:u,...d}=l,{classes:p,cx:c}=Ss(),h=w.default.useMemo(()=>s?Object.keys(n[0]).map(re=>({label:re,value_field:re,value_type:Re.string})):u,[s,u,n]),f=Ts({getColIndex:_.useCallback(re=>h.indexOf(re.column.columnDef.meta),[h]),vizManager:e.vizManager,instance:t}),v=_.useMemo(()=>{const re=ts(),Ce=h.map(se=>re.accessor(se.value_field,{cell:Pe=>o($s,{tableCellContext:f(Pe.cell),value:Pe.getValue(),type:se.value_type}),header:se.label,enableSorting:!0,meta:se}));return[re.display({id:"#index",cell:se=>se.row.index+1,header:"#",size:10*(n.length.toString().length+1)}),...Ce]},[h,f]),[C,y]=_.useState([]),x=ls({data:n,state:{sorting:C},onSortingChange:y,columns:v,getCoreRowModel:ns(),getSortedRowModel:rs()}),{rows:$}=x.getRowModel(),T=w.default.useRef(null),F=lo.useVirtual({parentRef:T,size:$.length,estimateSize:_.useCallback(()=>28,[]),overscan:20}),{virtualItems:k,totalSize:q}=F,ne=k.length>0&&((ae=k==null?void 0:k[0])==null?void 0:ae.start)||0,K=k.length>0?q-(((be=k==null?void 0:k[k.length-1])==null?void 0:be.end)||0):0;return o("div",{ref:T,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:x.getHeaderGroups().map(re=>o("tr",{children:re.headers.map(Ce=>o("th",{style:{width:Ce.getSize()},children:o(ms,{header:Ce,cx:c})},Ce.id))},re.id))}),g("tbody",{children:[ne>0&&o("tr",{children:o("td",{style:{height:`${ne}px`}})}),k.map(re=>{const Ce=$[re.index];return o("tr",{children:Ce.getVisibleCells().map(le=>o("td",{children:Qr(le.column.columnDef.cell,le.getContext())},le.id))},Ce.id)}),K>0&&o("tr",{children:o("td",{style:{height:`${K}px`}})})]})]})})}class Fs{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===sn.id).filter(n=>{const r=this.getColIndex(this.cell),i=I.get(this.cell.column.columnDef.meta,"value_field"),l=I.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(I.isString(t))return t;const n=+this.cell.getValue();if(isFinite(n)){const r=this.colorManager.decodeInterpolation(t.interpolation),l=new ds(t.steps).mapValue(n);return r==null?void 0:r.getColor(l)}}}const Zr=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)"}}}})),Os=[{from:0,to:0},{from:100,to:100}];class Ps{constructor(){P(this,"steps",new Map);P(this,"interpolation");P(this,"onChange");ee.makeAutoObservable(this,{steps:ee.observable},{deep:!1}),ee.reaction(()=>ee.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(Os):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 ks(e){const{onChange:t,color:n,index:r,value:i}=e,{classes:l}=Zr(),[s,u]=_.useState(i),[d,{setTrue:p,setFalse:c}]=U.useBoolean(!1),h=r%2===1,f=h&&i!=null,v=!h&&i!=null,C=`map ${i} to color ${r}`,y=()=>{u(i),c()},x=()=>{c(),t==null||t(s)},$=de.default(i).format({average:!0});return g("div",{"data-testid":`palette-item-${r}`,className:l.paletteItem,children:[o(a.Text,{title:C,style:{opacity:f?1:0},color:"dimmed",size:"sm",className:"palette-value--up palette-value",children:$}),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":Ue.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:y,children:"Cancel"}),o(a.Button,{"data-testid":"palette-item-ok",size:"xs",onClick:x,children:"OK"})]})]})})]}),o(a.Text,{title:C,style:{opacity:v?1:0},color:"dimmed",size:"sm",className:"palette-value--bottom palette-value",children:$})]})}const zs=V.observer(({model:e})=>{const{classes:t}=Zr(),n=I.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(ks,{index:l,color:r,value:e.getStepFromValue(i),onChange:s=>e.changeStep(s,i)},r))})}),Gs=V.observer(function(t){const n=U.useCreation(()=>new Ps,[]);return _.useEffect(()=>{n.fromProps(t)}),n.interpolation==null?null:o(zs,{model:n})}),Ns=e=>{const{value:t,onChange:n,colorManager:r}=e,i=r.getColorInterpolations(),[l,s]=_.useState(t),u=r.decodeInterpolation(l.interpolation)||i[0],[d,{setTrue:p,setFalse:c}]=U.useBoolean(),h=i.map(x=>({label:x.displayName,value:r.encodeColor(x),group:x.category}));function f(x){x&&s($=>({...$,interpolation:x}))}const v=()=>{c(),n==null||n(ee.toJS(l))};function C(x){s($=>({...$,steps:x}))}const y=()=>{c(),s(t)};return g(H,{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:h,onChange:f}),o(Gs,{steps:l.steps,interpolation:u,onChange:C}),g(a.Group,{position:"right",children:[o(a.Button,{onClick:y,variant:"subtle",children:"Cancel"}),o(a.Button,{onClick:v,children:"OK"})]})]})})]})},Ls=["static","interpolation","none"],qs=[{from:0,to:0},{from:100,to:100}];function ei(e){return e?I.isString(e)?e==="none"?"none":"static":"interpolation":"none"}function Bs(e,t){var n;return ei(t)==="static"?t:(n=e.getStaticColors()[0])==null?void 0:n.value}function js(e,t){return I.isObject(t)?t:{steps:qs,interpolation:e.encodeColor(e.getColorInterpolations()[0])}}const Us=e=>{const{colorManager:t}=_.useContext(De),[n,r]=_.useState(ei(e.value)),[i,l]=_.useState(Bs(t,e.value)),s=U.useLatest(i),[u,d]=_.useState(js(t,e.value)),p=U.useLatest(u),c=v=>{var C,y,x;r(v||"none"),v==="static"?(C=e.onChange)==null||C.call(e,s.current):v==="none"||!v?(y=e.onChange)==null||y.call(e,"none"):(x=e.onChange)==null||x.call(e,p.current)},h=v=>{var C;l(v),(C=e.onChange)==null||C.call(e,v)},f=v=>{var C;d(v),(C=e.onChange)==null||C.call(e,v)};return g(a.Group,{align:"end",children:[o(a.Select,{label:"Cell background",value:n||"none",onChange:c,data:Ls}),n==="static"&&o($e,{value:i,onChange:h}),n==="interpolation"&&o(Ns,{colorManager:t,value:u,onChange:f})]})},Ws=Object.values(Re).map(e=>({label:e,value:e}));function Ys({label:e,value:t,onChange:n,sx:r}){return o(a.Select,{label:e,data:Ws,value:t,onChange:n,sx:r})}function Hs({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),r=It.useForm({initialValues:ct});_.useEffect(()=>{const s=I.defaults({},t,r.values,ct);t&&r.setValues(s)},[t]);const i=e.data||[],l=()=>r.insertListItem("columns",{label:Z.randomId(),value_field:"value",value_type:Re.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(E.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(Ys,{label:"Value Type",sx:{flex:1},...r.getInputProps(`columns.${u}.value_type`)}),o(Us,{...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(E.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(ke.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(r.values,null,2)})]})})}class Qs extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const un={createConfig(){return{version:1,config:I.cloneDeep(ct)}},displayName:"Table",migrator:new Qs,name:"table",viewRender:Rs,configRender:Hs,triggers:[sn]},dn={label_field:"",value_field:""};te.use([xe.SunburstChart,Me.CanvasRenderer]);const Xs={tooltip:{show:!0},series:{type:"sunburst",radius:[0,"90%"],emphasis:{focus:"ancestor"}}};function Js({context:e}){const{value:t}=B(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{label_field:l,value_field:s}=I.defaults({},t,dn),u=_.useMemo(()=>n.map(h=>({name:h[l],value:Number(h[s])})),[n,l,s]),d=_.useMemo(()=>{var h,f;return(f=(h=I.maxBy(u,v=>v.value))==null?void 0:h.value)!=null?f:1},[u]),p=_.useMemo(()=>({series:{label:{formatter:({name:h,value:f})=>f/d<.2?" ":h}}}),[d]),c=I.merge({},Xs,p,{series:{data:u}});return o(Ae.default,{echarts:te,option:c,style:{width:r,height:i}})}function Ks({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),{label_field:r,value_field:i}=I.defaults({},t,dn),l=e.data,s=It.useForm({initialValues:{label_field:r,value_field:i}});return _.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(E.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 Zs extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const eu={displayName:"Sunburst",migrator:new Zs,name:"sunburst",viewRender:Js,configRender:Ks,createConfig:()=>dn},cn={label_field:"",value_field:""};te.use([xe.PieChart,Me.CanvasRenderer]);const tu={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 nu({context:e}){const{value:t}=B(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{label_field:l,value_field:s}=I.defaults({},t,cn),u=_.useMemo(()=>n.map(c=>({name:c[l],value:Number(c[s])})),[n,l,s]),d=_.useMemo(()=>({series:{labelLayout:function(c){const h=c.labelRect.x<r/2,f=c.labelLinePoints;return I.set(f,[2,0],h?c.labelRect.x:c.labelRect.x+c.labelRect.width),{labelLinePoints:f}}}}),[r]),p=I.merge({},tu,d,{series:{data:u}});return o(Ae.default,{echarts:te,option:p,style:{width:r,height:i}})}function ru({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),{label_field:r,value_field:i}=I.defaults({},t,cn),l=e.data,s=It.useForm({initialValues:{label_field:r,value_field:i}});return _.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(E.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 iu extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const ou={displayName:"Pie Chart",migrator:new iu,name:"pie",viewRender:nu,configRender:ru,createConfig:()=>cn},gn={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"}};te.use([W.GridComponent,W.VisualMapComponent,W.LegendComponent,W.TooltipComponent,Me.CanvasRenderer]);function au({context:e}){const{value:t}=B(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}=I.defaults({},t,gn),h=_.useMemo(()=>{const C=I.minBy(n,y=>y[u]);return I.get(C,u)},[n,u]),f=_.useMemo(()=>{const C=I.maxBy(n,y=>y[u]);return I.get(C,u)},[n,u]),v={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:h,max:f,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(C=>[C[l],C[s],C[u]])}]};return t?o(Ae.default,{echarts:te,option:v,style:{width:r,height:i}}):null}function lu({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),r=e.data,i=I.defaults({},t,gn),{control:l,handleSubmit:s,reset:u}=D.useForm({defaultValues:i});return _.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(D.Controller,{name:"x_axis_data_key",control:l,render:({field:d})=>o(Q,{label:"Data Field",required:!0,data:r,...d})}),o(D.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(D.Controller,{name:"y_axis_data_key",control:l,render:({field:d})=>o(Q,{label:"Data Field",required:!0,data:r,...d})}),o(D.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(D.Controller,{name:"z_axis_data_key",control:l,render:({field:d})=>o(Q,{label:"Data Field",required:!0,data:r,...d})}),o(D.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(E.DeviceFloppy,{size:20}),o(a.Text,{ml:"md",children:"Save"})]})})]})}):null}class su extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const uu={displayName:"Bar Chart (3D)",migrator:new su,name:"bar-3d",viewRender:au,configRender:lu,createConfig:()=>gn},pn={x_axis:{name:"X Axis",data_key:""},y_axis:{name:"Y Axis",data_key:"value"},color:"#228be6",variables:[],reference_lines:[]};te.use([W.DataZoomComponent,xe.BoxplotChart,W.MarkLineComponent,W.GridComponent,W.LegendComponent,W.TooltipComponent,Me.CanvasRenderer]);function du(e,t,n){const r=t.reduce((i,l)=>{const s=Fr(l,n);return i[l.name]=dt(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 Or(i.template,t,n)},position:"insideEndTop"}}}))}function cu({context:e}){const{value:t}=B(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}=I.defaults({},t,pn),{xAxisData:c,boxplotData:h}=_.useMemo(()=>{const v=N.default.groupBy(n,l.data_key);return{xAxisData:Object.keys(v),boxplotData:Object.values(v).map(C=>C.map(y=>y[s.data_key]))}},[n,l.data_key,s.data_key]),f={dataset:[{source:h},{transform:{type:"boxplot",config:{itemNameFormatter:function(v){var C;return(C=c[v.value])!=null?C: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},...du(p,d,n)]};return!t||!r||!i?null:o(Ae.default,{echarts:te,option:f,style:{width:r,height:i}})}function gu({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(D.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(D.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(D.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(E.Trash,{size:16})})]},t)}function pu({control:e,watch:t}){const{fields:n,append:r,remove:i}=D.useFieldArray({control:e,name:"reference_lines"}),l=t("reference_lines"),s=n.map((c,h)=>({...c,...l[h]})),u=()=>r({name:"",template:"",variable_key:""}),d=t("variables"),p=_.useMemo(()=>d.map(c=>({label:c.name,value:c.name})),[d]);return g(a.Stack,{children:[s.map((c,h)=>o(gu,{control:e,index:h,remove:i,variableOptions:p})),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:u,children:"Add a Reference Line"})})]})}function fu({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(D.Controller,{name:`variables.${t}`,control:e,render:({field:i})=>o(at,{data:r,withStyle:!1,...i})}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:o(E.Trash,{size:16})})]},t)}function hu({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=D.useFieldArray({control:e,name:"variables"}),s=t("variables"),u=r.map((p,c)=>({...p,...s[c]})),d=()=>i(it());return g(a.Stack,{children:[u.map((p,c)=>o(fu,{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 mu({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),r=e.data,i=_.useMemo(()=>I.defaults({},t,pn),[t]),{control:l,handleSubmit:s,watch:u,getValues:d,reset:p}=D.useForm({defaultValues:i});_.useEffect(()=>{p(i)},[i]),u(["x_axis","y_axis","reference_lines","color"]);const c=d(),h=_.useMemo(()=>!I.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:!h,children:o(E.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(D.Controller,{name:"x_axis.name",control:l,render:({field:f})=>o(a.TextInput,{label:"X Axis Name",sx:{flex:1},...f})}),o(D.Controller,{name:"x_axis.data_key",control:l,render:({field:f})=>o(Q,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...f})})]}),g(a.Group,{grow:!0,noWrap:!0,children:[o(D.Controller,{name:"y_axis.name",control:l,render:({field:f})=>o(a.TextInput,{label:"Y Axis Name",sx:{flex:1},...f})}),o(D.Controller,{name:"y_axis.data_key",control:l,render:({field:f})=>o(Q,{label:"Y Axis Data Field",required:!0,data:r,sx:{flex:1},...f})})]})]})]}),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(D.Controller,{name:"color",control:l,render:({field:f})=>o($e,{...f})})]})})]}),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(hu,{control:l,watch:u,data:r})}),o(a.Tabs.Panel,{value:"reference_lines",pt:"xs",children:o(pu,{control:l,watch:u})})]})})]})]})]})})}class vu extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const yu={displayName:"Boxplot",migrator:new vu,name:"boxplot",viewRender:cu,configRender:mu,createConfig:()=>pn};function bu(e){const t=e.y_axes.some(n=>!!n.name);return{bottom:e.x_axis_name?40:25,top:t?30:10}}function Cu({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`,h=`dataset-for-${u}--transformed`;n.push({id:c,source:t.map((f,v)=>[v,Number(f[d])])}),n.push({transform:l,id:h,fromDatasetId:c}),r.push({...s,name:u,datasetId:h,xAxisId:p,showSymbol:!1,tooltip:{show:!1}}),i.push({type:"category",id:p,datasetId:h,show:!1})}),{regressionDataSets:n,regressionSeries:r,regressionXAxes:i})}function xu(e,t,n,r){const i=t.map(l=>[l[n],l[r]]);return N.default.unionBy(i,e,0)}function wu(e,t,n){const r=t.reduce((i,l)=>{const s=Fr(l,n);return i[l.name]=dt(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 Or(i.template,t,n)},position:"insideEndTop"}}}))}function Su({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,h){const f={label:{show:!!r,position:r,formatter:h[n!=null?n:"default"]},name:i,xAxisId:"main-x-axis",yAxisIndex:n,stack:s,color:u,...d};if(!l)return f.data=c.map(C=>C[t]),f;const v=I.groupBy(c,l);return Object.entries(v).map(([C,y])=>{const x=I.cloneDeep(f);return x.data=xu(p,y,e,t),x.name=C,x.color=void 0,x})}function _u(e,t,n,r){const i=t.map(s=>[s,0]);return e.series.map(s=>Su(e,s,i,n,r)).flat().concat(wu(e.reference_lines,e.variables,n))}function Du(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 Iu(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 Mu(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 Vu={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 Au(e,t){const n=e.y_axes.reduce((p,{label_formatter:c},h)=>(p[h]=function(v){let C=v;if(typeof v=="object"&&(Array.isArray(v.value)&&v.value.length===2?C=v.value[1]:C=v.value),!c)return C;try{return de.default(C).format(c)}catch(y){return console.error(y),C}},p),{default:({value:p})=>p}),r=N.default.uniq(t.map(p=>p[e.x_axis_data_key])),i=_u(e,r,t,n),{regressionDataSets:l,regressionSeries:s,regressionXAxes:u}=Cu(e,t),d={xAxis:Iu(e,r,u),yAxis:Mu(e,n),dataset:[...l],series:[...i,...s],tooltip:Du(e,n),grid:bu(e)};return I.defaultsDeep({},d,Vu)}const fn={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:He}],variables:[],reference_lines:[]};te.use([W.DataZoomComponent,xe.BarChart,xe.LineChart,xe.ScatterChart,W.GridComponent,W.LegendComponent,W.TooltipComponent,Me.CanvasRenderer]),te.registerTransform(On.transform.regression);function ti(e){return e.trim().length>0}function Eu({conf:e,data:t,width:n,height:r}){const i=w.default.useMemo(()=>Au(e,t),[e,t]);return!n||!r?null:o(Ae.default,{echarts:te,option:i,style:{width:n,height:r}})}function $u({context:e}){const{value:t}=B(e.instanceData,"config"),n=_.useMemo(()=>I.defaults({},t,fn),[t]),r=e.data,{width:i,height:l}=e.viewport,{ref:s,height:u}=Z.useElementSize(),{ref:d,height:p}=Z.useElementSize(),c=w.default.useMemo(()=>{const{stats:{templates:f,variables:v}}=n;return{top:Yt(f.top,v,r),bottom:Yt(f.bottom,v,r)}},[n,r]),h=Math.max(0,l-u-p);return g(a.Box,{children:[ti(n.stats.templates.top)&&o(a.Text,{ref:s,align:"left",size:"xs",pl:"sm",children:Object.values(c.top).map(f=>f)}),o(Eu,{width:i,height:h,data:r,conf:n}),ti(n.stats.templates.bottom)&&o(a.Text,{ref:d,align:"left",size:"xs",pl:"sm",children:Object.values(c.bottom).map(f=>f)})]})}function Tu({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(D.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(D.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(D.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(E.Trash,{size:16})})]},t)}function Ru({control:e,watch:t}){const{fields:n,append:r,remove:i}=D.useFieldArray({control:e,name:"reference_lines"}),l=t("reference_lines"),s=n.map((c,h)=>({...c,...l[h]})),u=()=>r({name:"",template:"",variable_key:""}),d=t("variables"),p=_.useMemo(()=>d.map(c=>({label:c.name,value:c.name})),[d]);return g(a.Stack,{children:[s.map((c,h)=>o(Tu,{control:e,index:h,remove:i,variableOptions:p})),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:u,children:"Add a Reference Line"})})]})}const Fu=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}],Ou=[{label:"solid",value:"solid"},{label:"dashed",value:"dashed"},{label:"dotted",value:"dotted"}];function Pu({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(D.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(D.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(D.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:h=>{if(!h){d(0);return}d(Number(h))},sx:{flex:1}})}})]}),g(a.Group,{grow:!0,noWrap:!0,children:[o(D.Controller,{name:`regressions.${n}.transform.config.method`,control:e,render:({field:u})=>o(a.Select,{label:"Method",data:Fu,sx:{flex:1},...u})}),s==="polynomial"&&o(D.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(D.Controller,{name:`regressions.${n}.plot.lineStyle.type`,control:e,render:({field:u})=>o(a.Select,{label:"Line Type",data:Ou,sx:{flexGrow:1},...u})}),o(D.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(D.Controller,{name:`regressions.${n}.plot.color`,control:e,render:({field:u})=>o($e,{...u})})]}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>r(n),sx:{position:"absolute",top:15,right:5},children:o(E.Trash,{size:16})})]},n)}function ku({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=D.useFieldArray({control:e,name:"regressions"}),s=t("regressions"),u=r.map((h,f)=>({...h,...s[f]})),d=t("y_axes"),p=w.default.useMemo(()=>d.map(({name:h},f)=>({label:h,value:f.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((h,f)=>o(Pu,{regressionItem:h,control:e,index:f,remove:l,yAxisOptions:p,data:n},f)),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:c,children:"Add a Regression Line"})})]})}const zu=[{label:"No gap between bars",value:"0%"},{label:"Bars overlapping on each other",value:"-100%"}];function Gu({control:e,index:t}){return g(H,{children:[g(a.Group,{grow:!0,align:"top",children:[o(D.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(D.Controller,{name:`series.${t}.barWidth`,control:e,render:({field:n})=>o(a.TextInput,{label:"Bar Width",sx:{flexGrow:1},...n})})]}),o(D.Controller,{name:`series.${t}.barGap`,control:e,render:({field:n})=>o(a.Select,{label:"Bar Gap",data:zu,sx:{flexGrow:1},...n})})]})}const Nu=[{label:"off",value:"false"},{label:"start",value:"start"},{label:"middle",value:"middle"},{label:"end",value:"end"}],Lu=[{label:"solid",value:"solid"},{label:"dashed",value:"dashed"},{label:"dotted",value:"dotted"}];function qu({control:e,index:t}){return g(H,{children:[o(a.Divider,{mb:-15,variant:"dashed",label:"Line Settings",labelPosition:"center"}),g(a.Group,{grow:!0,children:[o(D.Controller,{name:`series.${t}.lineStyle.type`,control:e,render:({field:n})=>o(a.Select,{label:"Line Type",data:Lu,sx:{flexGrow:1},...n})}),o(D.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(D.Controller,{name:`series.${t}.step`,control:e,render:({field:n})=>o(a.Select,{label:"Step",data:Nu,sx:{flexGrow:1,maxWidth:"48%"},...n,value:String(n.value),onChange:r=>{const i=r==="false"?!1:r;n.onChange(i)}})}),o(D.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 Bu=Array.from(new Array(9),(e,t)=>({label:String(t+1),value:t+1}));function ju({control:e,index:t}){return o(a.Group,{grow:!0,align:"center",children:o(D.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:Bu,...n,sx:{width:"100%"}})]})})})}const Uu=[{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 Wu({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(D.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(D.Controller,{name:`series.${t}.name`,control:e,render:({field:u})=>o(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...u})}),o(D.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(D.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:h=>{if(!h){d(0);return}d(Number(h))},sx:{flex:1}})}}),o(D.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(qu,{index:t,control:e}),s==="bar"&&o(Gu,{index:t,control:e}),s==="scatter"&&o(ju,{index:t,control:e}),o(D.Controller,{name:`series.${t}.label_position`,control:e,render:({field:u})=>o(a.Select,{label:"Label Position",data:Uu,...u})}),g(a.Stack,{spacing:4,children:[o(a.Text,{size:"sm",children:"Color"}),o(D.Controller,{name:`series.${t}.color`,control:e,render:({field:u})=>o($e,{...u})})]}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:o(E.Trash,{size:16})})]},t)}function Yu({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=D.useFieldArray({control:e,name:"series"}),s=t("series"),u=r.map((h,f)=>({...h,...s[f]})),d=()=>i({type:"bar",name:Z.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=w.default.useMemo(()=>p.map(({name:h},f)=>({label:h,value:f.toString()})),[p]);return g(a.Stack,{children:[u.map((h,f)=>o(Wu,{control:e,index:f,remove:l,seriesItem:h,yAxisOptions:c,data:n},h.id)),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:d,children:"Add a Series"})})]})}function Hu({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(D.Controller,{name:`stats.variables.${t}`,control:e,render:({field:i})=>o(at,{data:r,...i})}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:o(E.Trash,{size:16})})]},t)}function Qu({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=D.useFieldArray({control:e,name:"stats.variables"});t("stats.templates");const s=t("stats.variables"),u=r.map((p,c)=>({...p,...s[c]})),d=()=>i(it());return g(a.Stack,{children:[g(a.Stack,{spacing:0,children:[o(D.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(D.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(Hu,{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 Xu({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(D.Controller,{name:`variables.${t}`,control:e,render:({field:i})=>o(at,{data:r,withStyle:!1,...i})}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:o(E.Trash,{size:16})})]},t)}function Ju({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=D.useFieldArray({control:e,name:"variables"}),s=t("variables"),u=r.map((p,c)=>({...p,...s[c]})),d=()=>i(it());return g(a.Stack,{children:[u.map((p,c)=>o(Xu,{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 Ku({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(D.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(D.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(D.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 Zu=[{label:"left",value:"left"},{label:"center",value:"center"},{label:"right",value:"right"}],ed=[{label:"left",value:"left"},{label:"right",value:"right"}];function td({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(D.Controller,{name:`y_axes.${t}.name`,control:e,render:({field:r})=>o(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...r})}),o(D.Controller,{name:`y_axes.${t}.nameAlignment`,control:e,render:({field:r})=>o(a.Select,{label:"Align",required:!0,data:Zu,sx:{flex:1},...r})})]}),o(a.Divider,{mb:-15,variant:"dashed",label:"Layout",labelPosition:"center"}),o(a.Group,{grow:!0,noWrap:!0,children:o(D.Controller,{name:`y_axes.${t}.position`,control:e,render:({field:r})=>o(a.Select,{label:"Position",required:!0,data:ed,sx:{flex:1},...r})})}),g(a.Stack,{children:[o(a.Divider,{mb:-15,variant:"dashed",label:"Label Format",labelPosition:"center"}),o(D.Controller,{name:`y_axes.${t}.label_formatter`,control:e,render:({field:r})=>o(zt,{...r})})]}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},disabled:t===0,children:o(E.Trash,{size:16})})]})}function nd({control:e,watch:t}){const{fields:n,append:r,remove:i}=D.useFieldArray({control:e,name:"y_axes"}),l=t("y_axes"),s=n.map((d,p)=>({...d,...l[p]})),u=()=>r({name:"",label_formatter:He});return g(a.Stack,{children:[s.map((d,p)=>o(td,{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 rd(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:h="30",barGap:f="0%",smooth:v=!1,step:C=!1,group_by_key:y="",lineStyle:x={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:h,barGap:f,smooth:v,step:C,group_by_key:y,lineStyle:x}}return e.map(t)}function id(e){return e||{templates:{top:"",bottom:""},variables:[]}}function od({series:e,stats:t,...n}){return{series:rd(e!=null?e:[]),stats:id(t),...n}}function ad({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),r=e.data,i=_.useMemo(()=>I.defaultsDeep({},t,fn),[t]),l=_.useMemo(()=>od(i),[i]);_.useEffect(()=>{!I.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}=D.useForm({defaultValues:l});_.useEffect(()=>{c(l)},[l]);const h=p(),f=_.useMemo(()=>!I.isEqual(h,i),[h,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:!f,children:o(E.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(Ku,{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(nd,{control:s,watch:d})})]}),g(a.Accordion.Item,{value:"Series",children:[o(a.Accordion.Control,{children:"Series"}),o(a.Accordion.Panel,{children:o(Yu,{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(ku,{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(Ru,{control:s,watch:d})})]})})]})]})]})})}class ld extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const sd={displayName:"Cartesian Chart",migrator:new ld,name:"cartesian",viewRender:$u,configRender:ad,createConfig:()=>fn};function ni(e){return e?t=>{try{return de.default(t).format(e)}catch(n){return console.error(n),t}}:t=>t}function ud(e){return{show:!0,formatter:({dimensionIndex:t,value:n})=>ni(e.dimensions[t].formatter)(n)}}function dd(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=ni(u.formatter);return`
|
|
52
|
+
color: hsl(`+Math.max(0,Math.min(120-120*h,120))+"deg 100% 31%);",n==null?void 0:n.key)}return i}}function Fl(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=f=>{let v=f;for(const C of d.split("."))v=v[C];return v}:c=f=>f[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 h={id:""+String(p),accessorFn:c,parent:r,depth:n,columnDef:u,columns:[],getFlatColumns:O(()=>[!0],()=>{var f;return[h,...(f=h.columns)==null?void 0:f.flatMap(v=>v.getFlatColumns())]},{key:process.env.NODE_ENV==="production"&&"column.getFlatColumns",debug:()=>{var f;return(f=e.options.debugAll)!=null?f:e.options.debugColumns}}),getLeafColumns:O(()=>[e._getOrderColumnsFn()],f=>{var v;if((v=h.columns)!=null&&v.length){let C=h.columns.flatMap(y=>y.getLeafColumns());return f(C)}return[h]},{key:process.env.NODE_ENV==="production"&&"column.getLeafColumns",debug:()=>{var f;return(f=e.options.debugAll)!=null?f:e.options.debugColumns}})};return h=e._features.reduce((f,v)=>Object.assign(f,v.createColumn==null?void 0:v.createColumn(h,e)),h),h}function Pr(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 Ol={createTable:e=>({getHeaderGroups:O(()=>[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(h=>n.find(f=>f.id===h)).filter(Boolean))!=null?l:[],d=(s=i==null?void 0:i.map(h=>n.find(f=>f.id===h)).filter(Boolean))!=null?s:[],p=n.filter(h=>!(r!=null&&r.includes(h.id))&&!(i!=null&&i.includes(h.id)));return pt(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:O(()=>[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))),pt(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:O(()=>[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 pt(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:O(()=>[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 pt(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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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:O(()=>[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 pt(e,t,n,r){var i,l;let s=0;const u=function(f,v){v===void 0&&(v=1),s=Math.max(s,v),f.filter(C=>C.getIsVisible()).forEach(C=>{var y;(y=C.columns)!=null&&y.length&&u(C.columns,v+1)},0)};u(e);let d=[];const p=(f,v)=>{const C={depth:v,id:[r,""+v].filter(Boolean).join("_"),headers:[]},y=[];f.forEach(S=>{const E=[...y].reverse()[0],T=S.column.depth===C.depth;let F,k=!1;if(T&&S.column.parent?F=S.column.parent:(F=S.column,k=!0),E&&(E==null?void 0:E.column)===F)E.subHeaders.push(S);else{const q=Pr(n,F,{id:[r,v,F.id,S==null?void 0:S.id].filter(Boolean).join("_"),isPlaceholder:k,placeholderId:k?""+y.filter(ne=>ne.column===F).length:void 0,depth:v,index:y.length});q.subHeaders.push(S),y.push(q)}C.headers.push(S),S.headerGroup=C}),d.push(C),v>0&&p(y,v-1)},c=t.map((f,v)=>Pr(n,f,{depth:s,index:v}));p(c,s-1),d.reverse();const h=f=>f.filter(C=>C.column.getIsVisible()).map(C=>{let y=0,S=0,E=[0];C.subHeaders&&C.subHeaders.length?(E=[],h(C.subHeaders).forEach(F=>{let{colSpan:k,rowSpan:q}=F;y+=k,E.push(q)})):y=1;const T=Math.min(...E);return S=S+T,C.colSpan=y,C.rowSpan=S,{colSpan:y,rowSpan:S}});return h((i=(l=d[0])==null?void 0:l.headers)!=null?i:[]),d}const ft={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},Ht=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),Pl={getDefaultColumnDef:()=>ft,getInitialState:e=>({columnSizing:{},columnSizingInfo:Ht(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",onColumnSizingChange:fe("columnSizing",e),onColumnSizingInfoChange:fe("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:ft.minSize,(r=l!=null?l:e.columnDef.size)!=null?r:ft.size),(i=e.columnDef.maxSize)!=null?i:ft.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(),Qt(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=Qt(i)?Math.round(i.touches[0].clientX):i.clientX,d=(v,C)=>{if(typeof C!="number")return;let y={};t.setColumnSizingInfo(S=>{var E,T;const F=C-((E=S==null?void 0:S.startOffset)!=null?E:0),k=Math.max(F/((T=S==null?void 0:S.startSize)!=null?T:0),-.999999);return S.columnSizingStart.forEach(q=>{let[ne,K]=q;y[ne]=Math.round(Math.max(K+K*k,0)*100)/100}),{...S,deltaOffset:F,deltaPercentage:k}}),(t.options.columnResizeMode==="onChange"||v==="end")&&t.setColumnSizing(S=>({...S,...y}))},p=v=>d("move",v),c=v=>{d("end",v),t.setColumnSizingInfo(C=>({...C,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},h={moveHandler:v=>p(v.clientX),upHandler:v=>{document.removeEventListener("mousemove",h.moveHandler),document.removeEventListener("mouseup",h.upHandler),c(v.clientX)}},f=kl()?{passive:!1}:!1;Qt(i)||(document.addEventListener("mousemove",h.moveHandler,f),document.addEventListener("mouseup",h.upHandler,f)),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?Ht():(n=e.initialState.columnSizingInfo)!=null?n:Ht())},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 ht=null;function kl(){if(typeof ht=="boolean")return ht;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 ht=e,ht}function Qt(e){return e.type==="touchstart"}const zl={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:fe("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()}}})},kr=(e,t,n)=>{var r;const i=n.toLowerCase();return(r=e.getValue(t))==null?void 0:r.toLowerCase().includes(i)};kr.autoRemove=e=>ye(e);const zr=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};zr.autoRemove=e=>ye(e);const Gr=(e,t,n)=>{var r;return((r=e.getValue(t))==null?void 0:r.toLowerCase())===n.toLowerCase()};Gr.autoRemove=e=>ye(e);const Nr=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};Nr.autoRemove=e=>ye(e)||!(e!=null&&e.length);const Lr=(e,t,n)=>!n.some(r=>{var i;return!((i=e.getValue(t))!=null&&i.includes(r))});Lr.autoRemove=e=>ye(e)||!(e!=null&&e.length);const qr=(e,t,n)=>n.some(r=>{var i;return(i=e.getValue(t))==null?void 0:i.includes(r)});qr.autoRemove=e=>ye(e)||!(e!=null&&e.length);const Br=(e,t,n)=>e.getValue(t)===n;Br.autoRemove=e=>ye(e);const jr=(e,t,n)=>e.getValue(t)==n;jr.autoRemove=e=>ye(e);const Xt=(e,t,n)=>{let[r,i]=n;const l=e.getValue(t);return l>=r&&l<=i};Xt.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]},Xt.autoRemove=e=>ye(e)||ye(e[0])&&ye(e[1]);const _e={includesString:kr,includesStringSensitive:zr,equalsString:Gr,arrIncludes:Nr,arrIncludesAll:Lr,arrIncludesSome:qr,equals:Br,weakEquals:jr,inNumberRange:Xt};function ye(e){return e==null||e===""}const Gl={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],globalFilter:void 0,...e}),getDefaultOptions:e=>({onColumnFiltersChange:fe("columnFilters",e),onGlobalFilterChange:fe("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"?_e.includesString:typeof r=="number"?_e.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?_e.equals:Array.isArray(r)?_e.arrIncludes:_e.weakEquals},getFilterFn:()=>{var n,r;return gt(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:_e[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=Fe(n,l?l.value:void 0);if(Ur(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:()=>_e.includesString,getGlobalFilterFn:()=>{var t,n;const{globalFilterFn:r}=e.options;return gt(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:_e[r]},setColumnFilters:t=>{const n=e.getAllLeafColumns(),r=i=>{var l;return(l=Fe(t,i))==null?void 0:l.filter(s=>{const u=n.find(d=>d.id===s.id);if(u){const d=u.getFilterFn();if(Ur(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 Ur(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const Jt={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},Nl={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:fe("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 Jt.sum;if(Object.prototype.toString.call(r)==="[object Date]")return Jt.extent},getAggregationFn:()=>{var n,r;if(!e)throw new Error;return gt(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:Jt[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 Ll(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 ql={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:fe("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:O(()=>[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 Ll(l,n,r)},{key:process.env.NODE_ENV==="development"&&"getOrderColumnsFn"})})},Kt=0,Zt=10,en=()=>({pageIndex:Kt,pageSize:Zt}),Bl={getInitialState:e=>({...e,pagination:{...en(),...e==null?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:fe("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=>Fe(r,l);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(i)},resetPagination:r=>{var i;e.setPagination(r?en():(i=e.initialState.pagination)!=null?i:en())},setPageIndex:r=>{e.setPagination(i=>{let l=Fe(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?Kt:(i=(l=e.initialState)==null||(s=l.pagination)==null?void 0:s.pageIndex)!=null?i:Kt)},resetPageSize:r=>{var i,l,s;e.setPageSize(r?Zt:(i=(l=e.initialState)==null||(s=l.pagination)==null?void 0:s.pageSize)!=null?i:Zt)},setPageSize:r=>{e.setPagination(i=>{const l=Math.max(1,Fe(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=Fe(r,(l=e.options.pageCount)!=null?l:-1);return typeof s=="number"&&(s=Math.max(-1,s)),{...i,pageCount:s}}),getPageOptions:O(()=>[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)}}}},tn=()=>({left:[],right:[]}),jl={getInitialState:e=>({columnPinning:tn(),...e}),getDefaultOptions:e=>({onColumnPinningChange:fe("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(h=>!(r!=null&&r.includes(h))),right:[...((d=i==null?void 0:i.right)!=null?d:[]).filter(h=>!(r!=null&&r.includes(h))),...r]}}if(n==="left"){var p,c;return{left:[...((p=i==null?void 0:i.left)!=null?p:[]).filter(h=>!(r!=null&&r.includes(h))),...r],right:((c=i==null?void 0:i.right)!=null?c:[]).filter(h=>!(r!=null&&r.includes(h)))}}return{left:((l=i==null?void 0:i.left)!=null?l:[]).filter(h=>!(r!=null&&r.includes(h))),right:((s=i==null?void 0:i.right)!=null?s:[]).filter(h=>!(r!=null&&r.includes(h)))}})},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:O(()=>[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:O(()=>[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:O(()=>[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?tn():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:tn())},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:O(()=>[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:O(()=>[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:O(()=>[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}})})},Ul={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:fe("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=>{nn(i,l.id,r,e)}),i}),getPreSelectedRowModel:()=>e.getCoreRowModel(),getSelectedRowModel:O(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?rn(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:O(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?rn(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:O(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?rn(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 nn(l,e.id,n,t),l})},getIsSelected:()=>{const{rowSelection:n}=t.getState();return on(e,n)},getIsSomeSelected:()=>{const{rowSelection:n}=t.getState();return Wr(e,n)==="some"},getIsAllSubRowsSelected:()=>{const{rowSelection:n}=t.getState();return Wr(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)}}})},nn=(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=>nn(e,s.id,n,r))};function rn(e,t){const n=e.getState().rowSelection,r=[],i={},l=function(s,u){return s.map(d=>{var p;const c=on(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 on(e,t){var n;return(n=t[e.id])!=null?n:!1}function Wr(e,t,n){if(e.subRows&&e.subRows.length){let r=!0,i=!1;return e.subRows.forEach(l=>{i&&!r||(on(l,t)?i=!0:r=!1)}),r?"all":i?"some":!1}return!1}const an=/([0-9]+)/gm,Wl=(e,t,n)=>Yr(Oe(e.getValue(n)).toLowerCase(),Oe(t.getValue(n)).toLowerCase()),Yl=(e,t,n)=>Yr(Oe(e.getValue(n)),Oe(t.getValue(n))),Hl=(e,t,n)=>ln(Oe(e.getValue(n)).toLowerCase(),Oe(t.getValue(n)).toLowerCase()),Ql=(e,t,n)=>ln(Oe(e.getValue(n)),Oe(t.getValue(n))),Xl=(e,t,n)=>{const r=e.getValue(n),i=t.getValue(n);return r>i?1:r<i?-1:0},Jl=(e,t,n)=>ln(e.getValue(n),t.getValue(n));function ln(e,t){return e===t?0:e>t?1:-1}function Oe(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function Yr(e,t){const n=e.split(an).filter(Boolean),r=t.split(an).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 Ze={alphanumeric:Wl,alphanumericCaseSensitive:Yl,text:Hl,textCaseSensitive:Ql,datetime:Xl,basic:Jl},Hr=[Ol,{getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:fe("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:O(()=>[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:O(()=>[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)=>O(()=>[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)}}}},ql,jl,Gl,{getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto"}),getDefaultOptions:e=>({onSortingChange:fe("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 Ze.datetime;if(typeof l=="string"&&(r=!0,l.split(an).length>1))return Ze.alphanumeric}return r?Ze.text:Ze.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 gt(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:Ze[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,h=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 f;p=[...s,{id:e.id,desc:h}],p.splice(0,p.length-((f=t.options.maxMultiSortColCount)!=null?f:Number.MAX_SAFE_INTEGER))}else c==="toggle"?p=s.map(v=>v.id===e.id?{...v,desc:h}:v):c==="remove"?p=s.filter(v=>v.id!==e.id):p=[{id:e.id,desc:h}];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())})},Nl,zl,Bl,Ul,Pl];function Kl(e){var t;(e.debugAll||e.debugTable)&&console.info("Creating Table Instance...");let n={_features:Hr};const r=n._features.reduce((c,h)=>Object.assign(c,h.getDefaultOptions==null?void 0:h.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 h;s=(h=c.getInitialState==null?void 0:c.getInitialState(s))!=null?h:s});const u=[];let d=!1;const p={_features:Hr,options:{...r,...e},initialState:s,_queue:c=>{u.push(c),d||(d=!0,Promise.resolve().then(()=>{for(;u.length;)u.shift()();d=!1}).catch(h=>setTimeout(()=>{throw h})))},reset:()=>{n.setState(n.initialState)},setOptions:c=>{const h=Fe(c,n.options);n.options=i(h)},getState:()=>n.options.state,setState:c=>{n.options.onStateChange==null||n.options.onStateChange(c)},_getRowId:(c,h,f)=>{var v;return(v=n.options.getRowId==null?void 0:n.options.getRowId(c,h,f))!=null?v:""+(f?[f.id,h].join("."):h)},getCoreRowModel:()=>(n._getCoreRowModel||(n._getCoreRowModel=n.options.getCoreRowModel(n)),n._getCoreRowModel()),getRowModel:()=>n.getPaginationRowModel(),getRow:c=>{const h=n.getRowModel().rowsById[c];if(!h)throw process.env.NODE_ENV!=="production"?new Error("getRow expected an ID, but got "+c):new Error;return h},_getDefaultColumnDef:O(()=>[n.options.defaultColumn],c=>{var h;return c=(h=c)!=null?h:{},{header:f=>{const v=f.header.column.columnDef;return v.accessorKey?v.accessorKey:v.accessorFn?v.id:null},cell:f=>{var v,C;return(v=(C=f.renderValue())==null||C.toString==null?void 0:C.toString())!=null?v:null},...n._features.reduce((f,v)=>Object.assign(f,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:O(()=>[n._getColumnDefs()],c=>{const h=function(f,v,C){return C===void 0&&(C=0),f.map(y=>{const S=Fl(n,y,C,v),E=y;return S.columns=E.columns?h(E.columns,S,C+1):[],S})};return h(c)},{key:process.env.NODE_ENV==="development"&&"getAllColumns",debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns}}),getAllFlatColumns:O(()=>[n.getAllColumns()],c=>c.flatMap(h=>h.getFlatColumns()),{key:process.env.NODE_ENV==="development"&&"getAllFlatColumns",debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns}}),_getAllFlatColumnsById:O(()=>[n.getAllFlatColumns()],c=>c.reduce((h,f)=>(h[f.id]=f,h),{}),{key:process.env.NODE_ENV==="development"&&"getAllFlatColumnsById",debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns}}),getAllLeafColumns:O(()=>[n.getAllColumns(),n._getOrderColumnsFn()],(c,h)=>{let f=c.flatMap(v=>v.getLeafColumns());return h(f)},{key:process.env.NODE_ENV==="development"&&"getAllLeafColumns",debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns}}),getColumn:c=>{const h=n._getAllFlatColumnsById()[c];if(!h)throw process.env.NODE_ENV!=="production"&&console.warn("[Table] Column with id "+c+" does not exist."),new Error;return h}};return Object.assign(n,p),n._features.forEach(c=>Object.assign(n,c.createTable==null?void 0:c.createTable(n))),n}function Zl(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:O(()=>[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 es=(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:()=>Rl(s.subRows,u=>u.subRows),getAllCells:O(()=>[e.getAllLeafColumns()],u=>u.map(d=>Zl(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:O(()=>[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 ts(){return{accessor:(e,t)=>typeof e=="function"?{...t,accessorFn:e}:{...t,accessorKey:e},display:e=>e,group:e=>e}}function ns(){return e=>O(()=>[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=es(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 rs(){return e=>O(()=>[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,h)=>{for(let v=0;v<l.length;v+=1){var f;const C=l[v],y=s[C.id],S=(f=C==null?void 0:C.desc)!=null?f:!1;if(y.sortUndefined){const T=c.getValue(C.id),F=h.getValue(C.id),k=typeof T>"u",q=typeof F>"u";if(k||q)return k&&q?0:k?y.sortUndefined:-y.sortUndefined}let E=y.sortingFn(c,h,C.id);if(E!==0)return S&&(E*=-1),y.invertSorting&&(E*=-1),E}return c.index-h.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?is(e)?o(e,{...t}):e:null}function is(e){return os(e)||typeof e=="function"||as(e)}function os(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function as(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function ls(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=Pn.useState(()=>({current:Kl(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 ss=({vizManager:e,instance:t})=>U.useCreation(()=>new ai(t,e.resolveComponent(t.type),bn),[t,e]),us=(e,t)=>{const[n,r]=D.useState([]);return D.useEffect(()=>e.watchTriggerSnapshotList(i=>r(i.filter(l=>l.schemaRef===t))),[]),n};function Xr(e,t,n){return Math.min(Math.max(e,t),n)}class ds{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=I.findLastIndex(this.steps,r=>r.from<=t);return n=Xr(n,0,this.steps.length-2),this.getLinearFunction(this.steps[n],this.steps[n+1])}mapValue(t){return Xr(this.getStepFunctionForValue(t)(t),0,100)}}function cs(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 Jr(e,t){if(e==null)return{};var n=cs(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 gs=["size","color","stroke"];function ps(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=Jr(e,gs);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 fs=["size","color","stroke"];function hs(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=Jr(e,fs);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 ms=({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(vs,{direction:e.column.getIsSorted()})]}),vs=({direction:e})=>{switch(e){case"asc":return o(hs,{size:16});case"desc":return o(ps,{size:"1em"});default:return null}},sn={id:"builtin:table:click-cell-content",displayName:"Click Cell Content",nameRender:ws,configRender:Cs,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"}]},ys={column:""};function Kr(e){const{value:t}=B(e.instanceData,"config");return t?t.columns.map((n,r)=>({label:n.label,value:r.toString()})):[]}function bs(e){return I.isEmpty(e)?[]:Object.keys(e[0]).map(t=>({label:t,value:t}))}function Cs(e){const t=Kr(e.instance),n=bs(e.sampleData),r=t.length>0?t:n,{value:i,set:l}=B(e.trigger.triggerData,"config"),{column:s}=I.defaults({},i,ys),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 xs(e,t){return e?I.isNumber(e.column)?`Click cell of ${t[e.column].label}`:`Click cell of ${e.column}`:"Click cell content (click to config)"}function ws(e){const t=Kr(e.instance),{value:n}=B(e.trigger.triggerData,"config");return o(a.Text,{children:xs(n,t)})}const Ss=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}})),_s=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 Ds(e){return e?Ue.default(e).oklch()[0]>.7?"black":"white":"inherit"}function Is(e){const t=e.tableCellContext.bgColor;return{backgroundColor:t,color:Ds(t)}}function mt(e){const t=e.tableCellContext.isClickable(),n=_s({clickable:t});return o("div",{className:n.classes.content,style:{...Is(e)},children:o(a.Text,{className:"table-cell-text",onClick:e.tableCellContext.getClickHandler(),children:o("span",{children:e.children})})})}function Ms(e){return o(mt,{...e,children:e.value})}function Vs(e){return o(mt,{...e,children:e.value})}function As(e){const t=de.default(e.value).format({thousandSeparated:!0});return o(mt,{...e,children:t})}function Es(e){const t=de.default(e.value).format({output:"percent",mantissa:3});return o(mt,{...e,children:t})}function $s(e){switch(e.type){case Re.string:return o(Ms,{...e});case Re.eloc:return o(Vs,{...e});case Re.number:return o(As,{...e});case Re.percentage:return o(Es,{...e})}}const Ts=e=>{const t=ss(e),n=us(t.triggerManager,sn.id),{colorManager:r}=D.useContext(De);return D.useCallback(i=>new Fs(e.getColIndex,i,n,t,r),[n,t,e.getColIndex])};function Rs({context:e,instance:t}){var he,ae,be;const n=(he=e.data)!=null?he:[],{height:r,width:i}=e.viewport,{value:l=ct}=B(e.instanceData,"config"),{use_raw_columns:s,columns:u,...d}=l,{classes:p,cx:c}=Ss(),h=x.default.useMemo(()=>s?Object.keys(n[0]).map(re=>({label:re,value_field:re,value_type:Re.string})):u,[s,u,n]),f=Ts({getColIndex:D.useCallback(re=>h.indexOf(re.column.columnDef.meta),[h]),vizManager:e.vizManager,instance:t}),v=D.useMemo(()=>{const re=ts(),Ce=h.map(se=>re.accessor(se.value_field,{cell:Pe=>o($s,{tableCellContext:f(Pe.cell),value:Pe.getValue(),type:se.value_type}),header:se.label,enableSorting:!0,meta:se}));return[re.display({id:"#index",cell:se=>se.row.index+1,header:"#",size:10*(n.length.toString().length+1)}),...Ce]},[h,f]),[C,y]=D.useState([]),S=ls({data:n,state:{sorting:C},onSortingChange:y,columns:v,getCoreRowModel:ns(),getSortedRowModel:rs()}),{rows:E}=S.getRowModel(),T=x.default.useRef(null),F=lo.useVirtual({parentRef:T,size:E.length,estimateSize:D.useCallback(()=>28,[]),overscan:20}),{virtualItems:k,totalSize:q}=F,ne=k.length>0&&((ae=k==null?void 0:k[0])==null?void 0:ae.start)||0,K=k.length>0?q-(((be=k==null?void 0:k[k.length-1])==null?void 0:be.end)||0):0;return o("div",{ref:T,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:S.getHeaderGroups().map(re=>o("tr",{children:re.headers.map(Ce=>o("th",{style:{width:Ce.getSize()},children:o(ms,{header:Ce,cx:c})},Ce.id))},re.id))}),g("tbody",{children:[ne>0&&o("tr",{children:o("td",{style:{height:`${ne}px`}})}),k.map(re=>{const Ce=E[re.index];return o("tr",{children:Ce.getVisibleCells().map(le=>o("td",{children:Qr(le.column.columnDef.cell,le.getContext())},le.id))},Ce.id)}),K>0&&o("tr",{children:o("td",{style:{height:`${K}px`}})})]})]})})}class Fs{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===sn.id).filter(n=>{const r=this.getColIndex(this.cell),i=I.get(this.cell.column.columnDef.meta,"value_field"),l=I.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(I.isString(t))return t;const n=+this.cell.getValue();if(isFinite(n)){const r=this.colorManager.decodeInterpolation(t.interpolation),l=new ds(t.steps).mapValue(n);return r==null?void 0:r.getColor(l)}}}const Zr=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)"}}}})),Os=[{from:0,to:0},{from:100,to:100}];class Ps{constructor(){P(this,"steps",new Map);P(this,"interpolation");P(this,"onChange");ee.makeAutoObservable(this,{steps:ee.observable},{deep:!1}),ee.reaction(()=>ee.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(Os):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 ks(e){const{onChange:t,color:n,index:r,value:i}=e,{classes:l}=Zr(),[s,u]=D.useState(i),[d,{setTrue:p,setFalse:c}]=U.useBoolean(!1),h=r%2===1,f=h&&i!=null,v=!h&&i!=null,C=`map ${i} to color ${r}`,y=()=>{u(i),c()},S=()=>{c(),t==null||t(s)},E=de.default(i).format({average:!0});return g("div",{"data-testid":`palette-item-${r}`,className:l.paletteItem,children:[o(a.Text,{title:C,style:{opacity:f?1:0},color:"dimmed",size:"sm",className:"palette-value--up palette-value",children:E}),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":Ue.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:y,children:"Cancel"}),o(a.Button,{"data-testid":"palette-item-ok",size:"xs",onClick:S,children:"OK"})]})]})})]}),o(a.Text,{title:C,style:{opacity:v?1:0},color:"dimmed",size:"sm",className:"palette-value--bottom palette-value",children:E})]})}const zs=V.observer(({model:e})=>{const{classes:t}=Zr(),n=I.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(ks,{index:l,color:r,value:e.getStepFromValue(i),onChange:s=>e.changeStep(s,i)},r))})}),Gs=V.observer(function(t){const n=U.useCreation(()=>new Ps,[]);return D.useEffect(()=>{n.fromProps(t)}),n.interpolation==null?null:o(zs,{model:n})}),Ns=e=>{const{value:t,onChange:n,colorManager:r}=e,i=r.getColorInterpolations(),[l,s]=D.useState(t),u=r.decodeInterpolation(l.interpolation)||i[0],[d,{setTrue:p,setFalse:c}]=U.useBoolean(),h=i.map(S=>({label:S.displayName,value:r.encodeColor(S),group:S.category}));function f(S){S&&s(E=>({...E,interpolation:S}))}const v=()=>{c(),n==null||n(ee.toJS(l))};function C(S){s(E=>({...E,steps:S}))}const y=()=>{c(),s(t)};return g(H,{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:h,onChange:f}),o(Gs,{steps:l.steps,interpolation:u,onChange:C}),g(a.Group,{position:"right",children:[o(a.Button,{onClick:y,variant:"subtle",children:"Cancel"}),o(a.Button,{onClick:v,children:"OK"})]})]})})]})},Ls=["static","interpolation","none"],qs=[{from:0,to:0},{from:100,to:100}];function ei(e){return e?I.isString(e)?e==="none"?"none":"static":"interpolation":"none"}function Bs(e,t){var n;return ei(t)==="static"?t:(n=e.getStaticColors()[0])==null?void 0:n.value}function js(e,t){return I.isObject(t)?t:{steps:qs,interpolation:e.encodeColor(e.getColorInterpolations()[0])}}const Us=e=>{const{colorManager:t}=D.useContext(De),[n,r]=D.useState(ei(e.value)),[i,l]=D.useState(Bs(t,e.value)),s=U.useLatest(i),[u,d]=D.useState(js(t,e.value)),p=U.useLatest(u),c=v=>{var C,y,S;r(v||"none"),v==="static"?(C=e.onChange)==null||C.call(e,s.current):v==="none"||!v?(y=e.onChange)==null||y.call(e,"none"):(S=e.onChange)==null||S.call(e,p.current)},h=v=>{var C;l(v),(C=e.onChange)==null||C.call(e,v)},f=v=>{var C;d(v),(C=e.onChange)==null||C.call(e,v)};return g(a.Group,{align:"end",children:[o(a.Select,{label:"Cell background",value:n||"none",onChange:c,data:Ls}),n==="static"&&o($e,{value:i,onChange:h}),n==="interpolation"&&o(Ns,{colorManager:t,value:u,onChange:f})]})},Ws=Object.values(Re).map(e=>({label:e,value:e}));function Ys({label:e,value:t,onChange:n,sx:r}){return o(a.Select,{label:e,data:Ws,value:t,onChange:n,sx:r})}function Hs({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),r=It.useForm({initialValues:ct});D.useEffect(()=>{const s=I.defaults({},t,r.values,ct);t&&r.setValues(s)},[t]);const i=e.data||[],l=()=>r.insertListItem("columns",{label:Z.randomId(),value_field:"value",value_type:Re.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($.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(Ys,{label:"Value Type",sx:{flex:1},...r.getInputProps(`columns.${u}.value_type`)}),o(Us,{...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($.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(ke.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(r.values,null,2)})]})})}class Qs extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const un={createConfig(){return{version:1,config:I.cloneDeep(ct)}},displayName:"Table",migrator:new Qs,name:"table",viewRender:Rs,configRender:Hs,triggers:[sn]},dn={label_field:"",value_field:""};te.use([xe.SunburstChart,Me.CanvasRenderer]);const Xs={tooltip:{show:!0},series:{type:"sunburst",radius:[0,"90%"],emphasis:{focus:"ancestor"}}};function Js({context:e}){const{value:t}=B(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{label_field:l,value_field:s}=I.defaults({},t,dn),u=D.useMemo(()=>n.map(h=>({name:h[l],value:Number(h[s])})),[n,l,s]),d=D.useMemo(()=>{var h,f;return(f=(h=I.maxBy(u,v=>v.value))==null?void 0:h.value)!=null?f:1},[u]),p=D.useMemo(()=>({series:{label:{formatter:({name:h,value:f})=>f/d<.2?" ":h}}}),[d]),c=I.merge({},Xs,p,{series:{data:u}});return o(Ae.default,{echarts:te,option:c,style:{width:r,height:i}})}function Ks({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),{label_field:r,value_field:i}=I.defaults({},t,dn),l=e.data,s=It.useForm({initialValues:{label_field:r,value_field:i}});return D.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($.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 Zs extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const eu={displayName:"Sunburst",migrator:new Zs,name:"sunburst",viewRender:Js,configRender:Ks,createConfig:()=>dn},cn={label_field:"",value_field:""};te.use([xe.PieChart,Me.CanvasRenderer]);const tu={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 nu({context:e}){const{value:t}=B(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{label_field:l,value_field:s}=I.defaults({},t,cn),u=D.useMemo(()=>n.map(c=>({name:c[l],value:Number(c[s])})),[n,l,s]),d=D.useMemo(()=>({series:{labelLayout:function(c){const h=c.labelRect.x<r/2,f=c.labelLinePoints;return I.set(f,[2,0],h?c.labelRect.x:c.labelRect.x+c.labelRect.width),{labelLinePoints:f}}}}),[r]),p=I.merge({},tu,d,{series:{data:u}});return o(Ae.default,{echarts:te,option:p,style:{width:r,height:i}})}function ru({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),{label_field:r,value_field:i}=I.defaults({},t,cn),l=e.data,s=It.useForm({initialValues:{label_field:r,value_field:i}});return D.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($.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 iu extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const ou={displayName:"Pie Chart",migrator:new iu,name:"pie",viewRender:nu,configRender:ru,createConfig:()=>cn},gn={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"}};te.use([W.GridComponent,W.VisualMapComponent,W.LegendComponent,W.TooltipComponent,Me.CanvasRenderer]);function au({context:e}){const{value:t}=B(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}=I.defaults({},t,gn),h=D.useMemo(()=>{const C=I.minBy(n,y=>y[u]);return I.get(C,u)},[n,u]),f=D.useMemo(()=>{const C=I.maxBy(n,y=>y[u]);return I.get(C,u)},[n,u]),v={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:h,max:f,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(C=>[C[l],C[s],C[u]])}]};return t?o(Ae.default,{echarts:te,option:v,style:{width:r,height:i}}):null}function lu({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),r=e.data,i=I.defaults({},t,gn),{control:l,handleSubmit:s,reset:u}=w.useForm({defaultValues:i});return D.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(w.Controller,{name:"x_axis_data_key",control:l,render:({field:d})=>o(Q,{label:"Data Field",required:!0,data:r,...d})}),o(w.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(w.Controller,{name:"y_axis_data_key",control:l,render:({field:d})=>o(Q,{label:"Data Field",required:!0,data:r,...d})}),o(w.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(w.Controller,{name:"z_axis_data_key",control:l,render:({field:d})=>o(Q,{label:"Data Field",required:!0,data:r,...d})}),o(w.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($.DeviceFloppy,{size:20}),o(a.Text,{ml:"md",children:"Save"})]})})]})}):null}class su extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const uu={displayName:"Bar Chart (3D)",migrator:new su,name:"bar-3d",viewRender:au,configRender:lu,createConfig:()=>gn},pn={x_axis:{name:"X Axis",data_key:""},y_axis:{name:"Y Axis",data_key:"value"},color:"#228be6",variables:[],reference_lines:[]};te.use([W.DataZoomComponent,xe.BoxplotChart,W.MarkLineComponent,W.GridComponent,W.LegendComponent,W.TooltipComponent,Me.CanvasRenderer]);function du(e,t,n){const r=t.reduce((i,l)=>{const s=Fr(l,n);return i[l.name]=dt(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 Or(i.template,t,n)},position:"insideEndTop"}}}))}function cu({context:e}){const{value:t}=B(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}=I.defaults({},t,pn),{xAxisData:c,boxplotData:h}=D.useMemo(()=>{const v=N.default.groupBy(n,l.data_key);return{xAxisData:Object.keys(v),boxplotData:Object.values(v).map(C=>C.map(y=>y[s.data_key]))}},[n,l.data_key,s.data_key]),f={dataset:[{source:h},{transform:{type:"boxplot",config:{itemNameFormatter:function(v){var C;return(C=c[v.value])!=null?C: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},...du(p,d,n)]};return!t||!r||!i?null:o(Ae.default,{echarts:te,option:f,style:{width:r,height:i}})}function gu({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(w.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(w.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(w.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($.Trash,{size:16})})]},t)}function pu({control:e,watch:t}){const{fields:n,append:r,remove:i}=w.useFieldArray({control:e,name:"reference_lines"}),l=t("reference_lines"),s=n.map((c,h)=>({...c,...l[h]})),u=()=>r({name:"",template:"",variable_key:""}),d=t("variables"),p=D.useMemo(()=>d.map(c=>({label:c.name,value:c.name})),[d]);return g(a.Stack,{children:[s.map((c,h)=>o(gu,{control:e,index:h,remove:i,variableOptions:p})),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:u,children:"Add a Reference Line"})})]})}function fu({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(w.Controller,{name:`variables.${t}`,control:e,render:({field:i})=>o(at,{data:r,withStyle:!1,...i})}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:o($.Trash,{size:16})})]},t)}function hu({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=w.useFieldArray({control:e,name:"variables"}),s=t("variables"),u=r.map((p,c)=>({...p,...s[c]})),d=()=>i(it());return g(a.Stack,{children:[u.map((p,c)=>o(fu,{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 mu({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),r=e.data,i=D.useMemo(()=>I.defaults({},t,pn),[t]),{control:l,handleSubmit:s,watch:u,getValues:d,reset:p}=w.useForm({defaultValues:i});D.useEffect(()=>{p(i)},[i]),u(["x_axis","y_axis","reference_lines","color"]);const c=d(),h=D.useMemo(()=>!I.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:!h,children:o($.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(w.Controller,{name:"x_axis.name",control:l,render:({field:f})=>o(a.TextInput,{label:"X Axis Name",sx:{flex:1},...f})}),o(w.Controller,{name:"x_axis.data_key",control:l,render:({field:f})=>o(Q,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...f})})]}),g(a.Group,{grow:!0,noWrap:!0,children:[o(w.Controller,{name:"y_axis.name",control:l,render:({field:f})=>o(a.TextInput,{label:"Y Axis Name",sx:{flex:1},...f})}),o(w.Controller,{name:"y_axis.data_key",control:l,render:({field:f})=>o(Q,{label:"Y Axis Data Field",required:!0,data:r,sx:{flex:1},...f})})]})]})]}),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(w.Controller,{name:"color",control:l,render:({field:f})=>o($e,{...f})})]})})]}),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(hu,{control:l,watch:u,data:r})}),o(a.Tabs.Panel,{value:"reference_lines",pt:"xs",children:o(pu,{control:l,watch:u})})]})})]})]})]})})}class vu extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const yu={displayName:"Boxplot",migrator:new vu,name:"boxplot",viewRender:cu,configRender:mu,createConfig:()=>pn};function bu(e){const t=e.y_axes.some(n=>!!n.name);return{bottom:e.x_axis_name?40:25,top:t?30:10}}function Cu({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`,h=`dataset-for-${u}--transformed`;n.push({id:c,source:t.map((f,v)=>[v,Number(f[d])])}),n.push({transform:l,id:h,fromDatasetId:c}),r.push({...s,name:u,datasetId:h,xAxisId:p,showSymbol:!1,tooltip:{show:!1}}),i.push({type:"category",id:p,datasetId:h,show:!1})}),{regressionDataSets:n,regressionSeries:r,regressionXAxes:i})}function xu(e,t,n,r){const i=t.map(l=>[l[n],l[r]]);return N.default.unionBy(i,e,0)}function wu(e,t,n){const r=t.reduce((i,l)=>{const s=Fr(l,n);return i[l.name]=dt(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 Or(i.template,t,n)},position:"insideEndTop"}}}))}function Su({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,display_name_on_line:d,...p},c,h,f){const v={label:{show:!!r,position:r,formatter:f[n!=null?n:"default"]},name:i,xAxisId:"main-x-axis",yAxisIndex:n,stack:s,color:u,...p};if(d&&(v.endLabel={show:!0,formatter:i,offset:[-12,12],align:"right"}),!l)return v.data=h.map(y=>y[t]),v;const C=I.groupBy(h,l);return Object.entries(C).map(([y,S])=>{const E=I.cloneDeep(v);return E.data=xu(c,S,e,t),E.name=y,E.color=void 0,E})}function _u(e,t,n,r){const i=t.map(s=>[s,0]);return e.series.map(s=>Su(e,s,i,n,r)).flat().concat(wu(e.reference_lines,e.variables,n))}function Du(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 Iu(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 Mu(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 Vu={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 Au(e,t){const n=e.y_axes.reduce((p,{label_formatter:c},h)=>(p[h]=function(v){let C=v;if(typeof v=="object"&&(Array.isArray(v.value)&&v.value.length===2?C=v.value[1]:C=v.value),!c)return C;try{return de.default(C).format(c)}catch(y){return console.error(y),C}},p),{default:({value:p})=>p}),r=N.default.uniq(t.map(p=>p[e.x_axis_data_key])),i=_u(e,r,t,n),{regressionDataSets:l,regressionSeries:s,regressionXAxes:u}=Cu(e,t),d={xAxis:Iu(e,r,u),yAxis:Mu(e,n),dataset:[...l],series:[...i,...s],tooltip:Du(e,n),grid:bu(e)};return I.defaultsDeep({},d,Vu)}const fn={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:He}],variables:[],reference_lines:[]};te.use([W.DataZoomComponent,xe.BarChart,xe.LineChart,xe.ScatterChart,W.GridComponent,W.LegendComponent,W.TooltipComponent,Me.CanvasRenderer]),te.registerTransform(On.transform.regression);function ti(e){return e.trim().length>0}function Eu({conf:e,data:t,width:n,height:r}){const i=x.default.useMemo(()=>Au(e,t),[e,t]);return!n||!r?null:o(Ae.default,{echarts:te,option:i,style:{width:n,height:r}})}function $u({context:e}){const{value:t}=B(e.instanceData,"config"),n=D.useMemo(()=>I.defaults({},t,fn),[t]),r=e.data,{width:i,height:l}=e.viewport,{ref:s,height:u}=Z.useElementSize(),{ref:d,height:p}=Z.useElementSize(),c=x.default.useMemo(()=>{const{stats:{templates:f,variables:v}}=n;return{top:Yt(f.top,v,r),bottom:Yt(f.bottom,v,r)}},[n,r]),h=Math.max(0,l-u-p);return g(a.Box,{children:[ti(n.stats.templates.top)&&o(a.Text,{ref:s,align:"left",size:"xs",pl:"sm",children:Object.values(c.top).map(f=>f)}),o(Eu,{width:i,height:h,data:r,conf:n}),ti(n.stats.templates.bottom)&&o(a.Text,{ref:d,align:"left",size:"xs",pl:"sm",children:Object.values(c.bottom).map(f=>f)})]})}function Tu({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(w.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(w.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(w.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($.Trash,{size:16})})]},t)}function Ru({control:e,watch:t}){const{fields:n,append:r,remove:i}=w.useFieldArray({control:e,name:"reference_lines"}),l=t("reference_lines"),s=n.map((c,h)=>({...c,...l[h]})),u=()=>r({name:"",template:"",variable_key:""}),d=t("variables"),p=D.useMemo(()=>d.map(c=>({label:c.name,value:c.name})),[d]);return g(a.Stack,{children:[s.map((c,h)=>o(Tu,{control:e,index:h,remove:i,variableOptions:p})),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:u,children:"Add a Reference Line"})})]})}const Fu=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}],Ou=[{label:"solid",value:"solid"},{label:"dashed",value:"dashed"},{label:"dotted",value:"dotted"}];function Pu({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(w.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(w.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(w.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:h=>{if(!h){d(0);return}d(Number(h))},sx:{flex:1}})}})]}),g(a.Group,{grow:!0,noWrap:!0,children:[o(w.Controller,{name:`regressions.${n}.transform.config.method`,control:e,render:({field:u})=>o(a.Select,{label:"Method",data:Fu,sx:{flex:1},...u})}),s==="polynomial"&&o(w.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(w.Controller,{name:`regressions.${n}.plot.lineStyle.type`,control:e,render:({field:u})=>o(a.Select,{label:"Line Type",data:Ou,sx:{flexGrow:1},...u})}),o(w.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(w.Controller,{name:`regressions.${n}.plot.color`,control:e,render:({field:u})=>o($e,{...u})})]}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>r(n),sx:{position:"absolute",top:15,right:5},children:o($.Trash,{size:16})})]},n)}function ku({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=w.useFieldArray({control:e,name:"regressions"}),s=t("regressions"),u=r.map((h,f)=>({...h,...s[f]})),d=t("y_axes"),p=x.default.useMemo(()=>d.map(({name:h},f)=>({label:h,value:f.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((h,f)=>o(Pu,{regressionItem:h,control:e,index:f,remove:l,yAxisOptions:p,data:n},f)),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:c,children:"Add a Regression Line"})})]})}const zu=[{label:"No gap between bars",value:"0%"},{label:"Bars overlapping on each other",value:"-100%"}];function Gu({control:e,index:t}){return g(H,{children:[g(a.Group,{grow:!0,align:"top",children:[o(w.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(w.Controller,{name:`series.${t}.barWidth`,control:e,render:({field:n})=>o(a.TextInput,{label:"Bar Width",sx:{flexGrow:1},...n})})]}),o(w.Controller,{name:`series.${t}.barGap`,control:e,render:({field:n})=>o(a.Select,{label:"Bar Gap",data:zu,sx:{flexGrow:1},...n})})]})}const Nu=[{label:"off",value:"false"},{label:"start",value:"start"},{label:"middle",value:"middle"},{label:"end",value:"end"}],Lu=[{label:"solid",value:"solid"},{label:"dashed",value:"dashed"},{label:"dotted",value:"dotted"}];function qu({control:e,index:t}){return g(H,{children:[o(a.Divider,{mb:-15,variant:"dashed",label:"Line Settings",labelPosition:"center"}),g(a.Group,{grow:!0,children:[o(w.Controller,{name:`series.${t}.lineStyle.type`,control:e,render:({field:n})=>o(a.Select,{label:"Line Type",data:Lu,sx:{flexGrow:1},...n})}),o(w.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(w.Controller,{name:`series.${t}.step`,control:e,render:({field:n})=>o(a.Select,{label:"Step",data:Nu,sx:{flexGrow:1,maxWidth:"48%"},...n,value:String(n.value),onChange:r=>{const i=r==="false"?!1:r;n.onChange(i)}})}),g(a.Stack,{children:[o(w.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)})})}),o(w.Controller,{name:`series.${t}.display_name_on_line`,control:e,render:({field:n})=>{var r;return o(a.Box,{sx:{flexGrow:1},children:o(a.Switch,{label:"Display Name on Line",checked:(r=n.value)!=null?r:!1,onChange:i=>n.onChange(i.currentTarget.checked)})})}})]})]})]})}const Bu=Array.from(new Array(9),(e,t)=>({label:String(t+1),value:t+1}));function ju({control:e,index:t}){return o(a.Group,{grow:!0,align:"center",children:o(w.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:Bu,...n,sx:{width:"100%"}})]})})})}const Uu=[{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 Wu({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(w.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(w.Controller,{name:`series.${t}.name`,control:e,render:({field:u})=>o(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...u})}),o(w.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(w.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:h=>{if(!h){d(0);return}d(Number(h))},sx:{flex:1}})}}),o(w.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(qu,{index:t,control:e}),s==="bar"&&o(Gu,{index:t,control:e}),s==="scatter"&&o(ju,{index:t,control:e}),o(w.Controller,{name:`series.${t}.label_position`,control:e,render:({field:u})=>o(a.Select,{label:"Label Position",data:Uu,...u})}),g(a.Stack,{spacing:4,children:[o(a.Text,{size:"sm",children:"Color"}),o(w.Controller,{name:`series.${t}.color`,control:e,render:({field:u})=>o($e,{...u})})]}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:o($.Trash,{size:16})})]},t)}function Yu({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=w.useFieldArray({control:e,name:"series"}),s=t("series"),u=r.map((h,f)=>({...h,...s[f]})),d=()=>i({type:"bar",name:Z.randomId(),showSymbol:!1,symbolSize:5,y_axis_data_key:"value",yAxisIndex:0,label_position:"top",display_name_on_line:!1,stack:"",color:"#000",step:!1,smooth:!1,barWidth:"10",barGap:"0%",lineStyle:{type:"solid",width:1}}),p=t("y_axes"),c=x.default.useMemo(()=>p.map(({name:h},f)=>({label:h,value:f.toString()})),[p]);return g(a.Stack,{children:[u.map((h,f)=>o(Wu,{control:e,index:f,remove:l,seriesItem:h,yAxisOptions:c,data:n},h.id)),o(a.Group,{position:"center",mt:"xs",children:o(a.Button,{onClick:d,children:"Add a Series"})})]})}function Hu({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(w.Controller,{name:`stats.variables.${t}`,control:e,render:({field:i})=>o(at,{data:r,...i})}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:o($.Trash,{size:16})})]},t)}function Qu({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=w.useFieldArray({control:e,name:"stats.variables"});t("stats.templates");const s=t("stats.variables"),u=r.map((p,c)=>({...p,...s[c]})),d=()=>i(it());return g(a.Stack,{children:[g(a.Stack,{spacing:0,children:[o(w.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(w.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(Hu,{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 Xu({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(w.Controller,{name:`variables.${t}`,control:e,render:({field:i})=>o(at,{data:r,withStyle:!1,...i})}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:o($.Trash,{size:16})})]},t)}function Ju({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=w.useFieldArray({control:e,name:"variables"}),s=t("variables"),u=r.map((p,c)=>({...p,...s[c]})),d=()=>i(it());return g(a.Stack,{children:[u.map((p,c)=>o(Xu,{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 Ku({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(w.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(w.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(w.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 Zu=[{label:"left",value:"left"},{label:"center",value:"center"},{label:"right",value:"right"}],ed=[{label:"left",value:"left"},{label:"right",value:"right"}];function td({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(w.Controller,{name:`y_axes.${t}.name`,control:e,render:({field:r})=>o(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...r})}),o(w.Controller,{name:`y_axes.${t}.nameAlignment`,control:e,render:({field:r})=>o(a.Select,{label:"Align",required:!0,data:Zu,sx:{flex:1},...r})})]}),o(a.Divider,{mb:-15,variant:"dashed",label:"Layout",labelPosition:"center"}),o(a.Group,{grow:!0,noWrap:!0,children:o(w.Controller,{name:`y_axes.${t}.position`,control:e,render:({field:r})=>o(a.Select,{label:"Position",required:!0,data:ed,sx:{flex:1},...r})})}),g(a.Stack,{children:[o(a.Divider,{mb:-15,variant:"dashed",label:"Label Format",labelPosition:"center"}),o(w.Controller,{name:`y_axes.${t}.label_formatter`,control:e,render:({field:r})=>o(zt,{...r})})]}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},disabled:t===0,children:o($.Trash,{size:16})})]})}function nd({control:e,watch:t}){const{fields:n,append:r,remove:i}=w.useFieldArray({control:e,name:"y_axes"}),l=t("y_axes"),s=n.map((d,p)=>({...d,...l[p]})),u=()=>r({name:"",label_formatter:He});return g(a.Stack,{children:[s.map((d,p)=>o(td,{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 rd(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:h="30",barGap:f="0%",smooth:v=!1,step:C=!1,group_by_key:y="",display_name_on_line:S=!1,lineStyle:E={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:h,barGap:f,smooth:v,step:C,group_by_key:y,display_name_on_line:S,lineStyle:E}}return e.map(t)}function id(e){return e||{templates:{top:"",bottom:""},variables:[]}}function od({series:e,stats:t,...n}){return{series:rd(e!=null?e:[]),stats:id(t),...n}}function ad({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),r=e.data,i=D.useMemo(()=>I.defaultsDeep({},t,fn),[t]),l=D.useMemo(()=>od(i),[i]);D.useEffect(()=>{!I.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}=w.useForm({defaultValues:l});D.useEffect(()=>{c(l)},[l]);const h=p(),f=D.useMemo(()=>!I.isEqual(h,i),[h,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:!f,children:o($.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(Ku,{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(nd,{control:s,watch:d})})]}),g(a.Accordion.Item,{value:"Series",children:[o(a.Accordion.Control,{children:"Series"}),o(a.Accordion.Panel,{children:o(Yu,{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(ku,{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(Ru,{control:s,watch:d})})]})})]})]})]})})}class ld extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const sd={displayName:"Cartesian Chart",migrator:new ld,name:"cartesian",viewRender:$u,configRender:ad,createConfig:()=>fn};function ni(e){return e?t=>{try{return de.default(t).format(e)}catch(n){return console.error(n),t}}:t=>t}function ud(e){return{show:!0,formatter:({dimensionIndex:t,value:n})=>ni(e.dimensions[t].formatter)(n)}}function dd(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=ni(u.formatter);return`
|
|
54
54
|
<tr>
|
|
55
55
|
<td style="padding-left: 18px;">${u.name}</td>
|
|
56
56
|
<td style="text-align: right; "><strong>${d(l)}</strong></td>
|
|
@@ -78,5 +78,5 @@ WHERE
|
|
|
78
78
|
${i.join("")}
|
|
79
79
|
</tbody>
|
|
80
80
|
</table>
|
|
81
|
-
`}}const cd={legend:{show:!0,bottom:0,left:0},tooltip:{trigger:"item"}};function gd(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:dd(e)},legend:{show:!0,left:"center"},series:{type:"radar",data:i,symbolSize:4,lineStyle:{width:1},areaStyle:{opacity:.4},label:ud(e)},color:n};return N.default.merge({},cd,l)}const hn={series_name_key:"name",dimensions:[]};te.use([xe.RadarChart,W.GridComponent,W.LegendComponent,W.TooltipComponent,Me.CanvasRenderer]);function pd({context:e}){const{value:t}=B(e.instanceData,"config"),{width:n,height:r}=e.viewport,i=e.data,l=_.useMemo(()=>gd(I.defaultsDeep({},t,hn),i),[t,i]);return!n||!r||!t||I.isEmpty(t==null?void 0:t.dimensions)?null:o(a.Box,{children:o(Ae.default,{echarts:te,option:l,style:{width:n,height:r}})})}function fd({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(D.Controller,{name:`dimensions.${t}.name`,control:e,render:({field:i})=>o(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),o(D.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(D.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(D.Controller,{name:`dimensions.${t}.formatter`,control:e,render:({field:i})=>o(zt,{...i})})]}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},disabled:t===0,children:o(E.Trash,{size:16})})]},t)}function hd({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=D.useFieldArray({control:e,name:"dimensions"}),s=t("dimensions"),u=r.map((p,c)=>({...p,...s[c]})),d=()=>i({name:Z.randomId(),data_key:"",max:100,formatter:He});return g(a.Stack,{children:[u.map((p,c)=>o(fd,{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 md(e){function t({name:n="",data_key:r="",max:i=10,formatter:l=He}){return{name:n,data_key:r,max:i,formatter:l}}return e.map(t)}function vd({context:e}){const t=e.data,{value:n,set:r}=B(e.instanceData,"config"),i=_.useMemo(()=>I.defaultsDeep({},n,hn),[n]),{dimensions:l,series_name_key:s}=i,u=_.useMemo(()=>({dimensions:md(l!=null?l:[]),series_name_key:s}),[l,s]);_.useEffect(()=>{!I.isEqual(i,u)&&r(u)},[i,u]);const{control:d,handleSubmit:p,watch:c,getValues:h,reset:f}=D.useForm({defaultValues:u});_.useEffect(()=>{I.isEqual(h(),u)||f(u)},[i]),c(["series_name_key"]);const v=h(),C=_.useMemo(()=>!I.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:!C,children:o(E.DeviceFloppy,{size:20})})]}),o(a.Box,{py:"sm",children:o(D.Controller,{name:"series_name_key",control:d,render:({field:y})=>o(Q,{label:"Series Name Field",required:!0,data:t,sx:{flex:1},...y})})}),o(hd,{control:d,watch:c,data:t})]})})}class yd extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const bd={displayName:"Radar Chart",migrator:new yd,name:"radar",viewRender:pd,configRender:vd,createConfig:()=>hn};function Cd(e,t){switch(e.config.method){case"linear":return[...Ee.regressionLinear()(t)];case"exponential":return[...Ee.regressionExp()(t)];case"logarithmic":return[...Ee.regressionLog()(t)];case"polynomial":return[...Ee.regressionPoly().order(e.config.order)(t)];default:return[]}}function xd({regression:e},t){const n=[],r=[];if(t.length===0)return{regressionSeries:n,regressionXAxes:r};const{transform:i,plot:l,name:s}=e,u=Cd(i,t);return n.push({...l,name:s,data:u,showSymbol:!1,smooth:!0,tooltip:{show:!1}}),{regressionSeries:n,regressionXAxes:r}}const wd={tooltip:{trigger:"axis"},grid:{top:10,left:30,right:15,bottom:30,containLabel:!0},dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}]};function Sd(e,t){var l,s;const n=N.default.uniqBy(t.map(u=>[u[e.x_axis.data_key],u[e.regression.y_axis_data_key]]),0),{regressionSeries:r}=xd(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 I.defaultsDeep({},i,wd)}function vt(e,t,n){return 1-(1-e)*(t-1)/(t-n-1)}function _d(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=Ee.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:vt(p,e.length,1)}}if(n.transform.config.method==="exponential"){const{a:s,b:u,rSquared:d}=Ee.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:vt(d,e.length,1)}}if(n.transform.config.method==="logarithmic"){const{a:s,b:u,rSquared:d}=Ee.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:vt(d,e.length,1)}}if(n.transform.config.method==="polynomial"){const s=Ee.regressionPoly().order(n.transform.config.order)(l),{rSquared:u}=s;return console.log(s),{expression:"",rSquared:u,adjustedRSquared:vt(u,e.length,1)}}return{expression:"",rSquared:0}}const mn={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"}};te.use([W.DataZoomComponent,xe.ScatterChart,W.GridComponent,W.LegendComponent,W.TooltipComponent,Me.CanvasRenderer]),te.registerTransform(On.transform.regression);function Dd({context:e}){const{value:t}=B(e.instanceData,"config"),{width:n,height:r}=e.viewport,i=_.useMemo(()=>{var f;const c=e.data,h=(f=t==null?void 0:t.regression)==null?void 0:f.y_axis_data_key;return h?c.map(v=>typeof v[h]=="number"?v:{...v,[h]:Number(v[h])}):c},[e.data,t==null?void 0:t.regression.y_axis_data_key]),l=_.useMemo(()=>Sd(I.defaultsDeep({},t,mn),i),[t,i]),{expression:s,rSquared:u,adjustedRSquared:d}=_.useMemo(()=>_d(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(Ae.default,{echarts:te,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:de.default(u).format({output:"percent",mantissa:1})})]}),g("tr",{children:[o("td",{children:"R-Sq(Adjusted)"}),o("td",{style:{textAlign:"right"},children:de.default(d).format({output:"percent",mantissa:1})})]})]})})]})]})}const Id=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}];function Md({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(D.Controller,{name:"regression.name",control:e,render:({field:i})=>o(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),o(D.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(D.Controller,{name:"regression.transform.config.method",control:e,render:({field:i})=>o(a.Select,{label:"Method",data:Id,sx:{flex:1},...i})}),r==="polynomial"&&o(D.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(D.Controller,{name:"regression.plot.color",control:e,render:({field:i})=>o($e,{...i})})]})]})}function Vd({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),r=e.data,i=_.useMemo(()=>I.defaults({},t,mn),[t]),{control:l,handleSubmit:s,watch:u,getValues:d,reset:p}=D.useForm({defaultValues:i});_.useEffect(()=>{p(i)},[i]),u(["x_axis","y_axis","regression"]);const c=d(),h=_.useMemo(()=>!I.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:!h,children:o(E.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(D.Controller,{name:"x_axis.name",control:l,render:({field:f})=>o(a.TextInput,{label:"X Axis Name",sx:{flex:1},...f})}),o(D.Controller,{name:"x_axis.data_key",control:l,render:({field:f})=>o(Q,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...f})})]}),o(a.Group,{grow:!0,noWrap:!0,children:o(D.Controller,{name:"y_axis.name",control:l,render:({field:f})=>o(a.TextInput,{label:"Y Axis Name",sx:{flex:1},...f})})})]})]}),g(a.Accordion.Item,{value:"Regression",children:[o(a.Accordion.Control,{children:"Regression Line"}),o(a.Accordion.Panel,{children:o(Md,{control:l,watch:u,data:r})})]})]})]})})}class Ad extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Ed={displayName:"Regression Chart",migrator:new Ad,name:"regressionChart",viewRender:Dd,configRender:Vd,createConfig:()=>mn},vn={x_axis:{name:"X Axis",data_key:""},data_key:"value",bar:{name:"Value",color:"#228be6"},line:{name:"Value",color:"red"}};function yn(e){return de.default(e).format({output:"percent",mantissa:0})}function $d(e){const t=e.value[1];try{return yn(t)}catch(n){return console.error(n),t}}function Td(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:yn)(u)}</strong>`:u});return n.unshift(`<strong>${t[0].name}</strong>`),n.join("<br />")}te.use([xe.BarChart,xe.LineChart,W.DataZoomComponent,W.GridComponent,W.LegendComponent,W.TooltipComponent,Me.CanvasRenderer]);function Rd({context:e}){const{value:t}=B(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{x_axis:l,data_key:s,bar:u,line:d}=I.defaults({},t,vn),{barData:p,lineData:c}=_.useMemo(()=>{const f=n.map(y=>[y[l.data_key],Number(y[s])]).sort((y,x)=>x[1]-y[1]),v=f.reduce((y,x)=>y+x[1],0),C=f.reduce((y,x,$)=>{const T=$===0?0:y[$-1][1];return y.push([x[0],T+x[1]]),y},[]).map(y=>[y[0],y[1]/v]);return{barData:f,lineData:C}},[l.data_key,s,n]),h={dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}],tooltip:{trigger:"axis",formatter:Td},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:yn}}],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(Ae.default,{echarts:te,option:h,style:{width:r,height:i}})}function Fd({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),r=e.data,i=_.useMemo(()=>I.defaults({},t,vn),[t]),{control:l,handleSubmit:s,watch:u,getValues:d,reset:p}=D.useForm({defaultValues:i});_.useEffect(()=>{p(i)},[i]),u(["x_axis","data_key","bar","line"]);const c=d(),h=_.useMemo(()=>!I.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:!h,children:o(E.DeviceFloppy,{size:20})})]}),g(a.Group,{grow:!0,noWrap:!0,children:[o(D.Controller,{name:"x_axis.name",control:l,render:({field:f})=>o(a.TextInput,{label:"X Axis Name",sx:{flex:1},...f})}),o(D.Controller,{name:"x_axis.data_key",control:l,render:({field:f})=>o(Q,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...f})})]}),o(D.Controller,{name:"data_key",control:l,render:({field:f})=>o(Q,{label:"Y Axis Data Field",required:!0,data:r,sx:{flex:1},...f})}),o(a.Divider,{my:"md",label:"Bar",labelPosition:"center"}),g(a.Group,{grow:!0,noWrap:!0,children:[o(D.Controller,{name:"bar.name",control:l,render:({field:f})=>o(a.TextInput,{label:"Bar Name",sx:{flex:1},...f})}),g(a.Stack,{spacing:4,children:[o(a.Text,{size:"sm",children:"Bar's Color"}),o(D.Controller,{name:"bar.color",control:l,render:({field:f})=>o($e,{...f})})]})]}),o(a.Divider,{my:"md",label:"Line",labelPosition:"center"}),g(a.Group,{grow:!0,noWrap:!0,children:[o(D.Controller,{name:"line.name",control:l,render:({field:f})=>o(a.TextInput,{label:"Line Name",sx:{flex:1},...f})}),g(a.Stack,{spacing:4,children:[o(a.Text,{size:"sm",children:"Line's Color"}),o(D.Controller,{name:"line.color",control:l,render:({field:f})=>o($e,{...f})})]})]})]})})}class Od extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Pd={displayName:"Pareto Chart",migrator:new Od,name:"paretoChart",viewRender:Rd,configRender:Fd,createConfig:()=>vn},kd=[{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"})),zd=[Ma,Va,$a,Ea,Aa,Ta],ri={id:"dashboard",version:Ra,manifest:{viz:[un,Tl,Na,eu,ou,uu,yu,Pd,sd,bd,Ed],color:[...kd,...zd]}},et=new Oa,ii=()=>{try{et.install(ri)}catch{}const e=new _a(et),t=new Fa(et);return{pluginManager:et,vizManager:e,colorManager:t}},De=_.createContext(ii());try{et.install(ri)}catch{}function Gd(e,t){const{value:n,set:r}=B(e.operation.operationData,"config"),[i,l]=_.useState(I.defaults({},n,t)),s=async()=>{await r(i)};return _.useEffect(()=>{l(I.defaults({},n,t))},[n]),{config:i,setConfig:l,commit:s}}function Nd(e){const{config:t,setConfig:n,commit:r}=Gd(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 Ld(e){return I.cloneDeepWith(e,n=>{if(typeof n=="string")return encodeURIComponent(n)})}async function qd(e,t){const{urlTemplate:n,openInNewTab:r}=await t.operationData.getItem("config"),l=I.template(n||"")(Ld(e));window.open(l,r?"_blank":"_self","noopener")}const Bd={displayName:"Open Link",id:"builtin:op:open-link",configRender:Nd,run:qd};function jd(e){const{value:t,set:n}=B(e.operationData,"config"),r=i=>void n({template:i});return[(t==null?void 0:t.template)||"",r]}function Ud(e){const[t,n]=jd(e.operation);return o(a.TextInput,{defaultValue:t,onBlur:r=>n(r.currentTarget.value),label:"console.log"})}async function Wd(e,t){const n=await t.operationData.getItem("config"),r=I.template(n.template||"");console.log("run with payload",e),console.log(r(e))}const Yd={displayName:"console.log (debug)",id:"builtin:op:debug",configRender:Ud,run:Wd},Hd=V.observer(e=>{const t=Y(),{value:n,set:r}=B(e.operation.operationData,"config");console.log({value:n,viewID:n==null?void 0:n.viewID});const i=(n==null?void 0:n.viewID)||"",l=s=>void r({viewID:s});return o(a.Select,{defaultValue:i,value:i,onChange:l,label:"View",data:t.views.options})});async function Qd(e,t){const r=(await t.operationData.getItem("config")).viewID;window.dispatchEvent(new CustomEvent("open-view",{detail:{viewID:r}}))}const Xd={displayName:"Open View",id:"builtin:op:open_view",configRender:Hd,run:Qd},Jd={dictionary:{}},Kd=V.observer(e=>{const t=Y(),{value:n=Jd,set:r}=B(e.operation.operationData,"config"),{dictionary:i={}}=n,l=(u,d)=>{r({dictionary:{...i,[u]:d}})},s=()=>{l(t.filters.firstFilterValueKey,"")};return g(a.Stack,{spacing:10,children:[o(a.Text,{children:"Mapping Rules"}),Object.entries(i).map(([u,d],p)=>g(a.Group,{noWrap:!0,children:[o(a.TextInput,{label:"Payload key",value:d,onChange:c=>{l(u,c.currentTarget.value)}}),o(Q,{data:[t.filters.values],value:u,onChange:c=>{l(c,d)},label:"Filter key"})]},p)),o(a.Button,{size:"xs",onClick:s,children:"Add one mapping rule"})]})});async function Zd(e,t){const r=(await t.operationData.getItem("config")).dictionary;window.dispatchEvent(new CustomEvent("set-filter-values",{detail:{dictionary:r,payload:e}}))}const bn=[Yd,Bd,Xd,{displayName:"Set Filter Values",id:"builtin:op:set_filter_values",configRender:Kd,run:Zd}];class ec{constructor(t,n=bn){P(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 qe(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 oi="__TRIGGERS";class tc{constructor(t,n){P(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 qe(i,"data")}};this.attachments=new Ft(t,oi,r)}watchTriggerSnapshotList(t){return this.instance.instanceData.watchItem(oi,n=>{const r=I.values(n).map(i=>({id:I.get(i,"id"),schemaRef:I.get(i,"schemaRef"),config:ee.toJS(I.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 ai{constructor(t,n,r){P(this,"operationManager");P(this,"triggerManager");P(this,"attachments");this.operationManager=new ec(t,r),this.triggerManager=new tc(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 nc(e,t){const[n,r]=_.useState([]);return U.useAsyncEffect(async()=>{const i=await e.getInteractionList();r(i)},[t]),n}const rc=V.observer(({item:e,manager:t,instance:n,sampleData:r,variables:i,onRemove:l})=>{const{triggerRef:s,operationRef:u}=e,d=ya(t.triggerManager,n);if(U.useAsyncEffect(async()=>{await d.configTrigger(s,r)},[d,s,r]),d.isReady()){const p=[...d.triggerSchema.payload,...i];return g(a.Group,{children:[o(wa,{model:d}),o(ha,{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(E.Trash,{})})]})}return null}),ic=e=>{const[t,n]=_.useState(0),{interactionManager:r,instance:i,sampleData:l,variables:s}=e,u=nc(r,t),d=async()=>{const c=await r.triggerManager.createOrGetTrigger(Z.randomId(),r.triggerManager.getTriggerSchemaList()[0]),h=await r.operationManager.createOrGetOperation(Z.randomId(),r.operationManager.getOperationSchemaList()[0]);await r.addInteraction(c,h),n(f=>f+1)};async function p(c){await r.removeInteraction(c.id),n(h=>h+1)}return g(a.Stack,{children:[u.map(c=>o(rc,{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"})]})},oc=()=>{const{panel:e,data:t}=ie(),n=e.viz,{vizManager:r}=_.useContext(De),i=e.json,l=U.useCreation(()=>r.getOrCreateInstance(i),[r,n.type]),s=U.useCreation(()=>new ai(l,r.resolveComponent(n.type),bn),[l,n.type]);return _.useEffect(()=>l.instanceData.watchItem(null,I.throttle(u=>{e.viz.setConf(u)},100,{leading:!1,trailing:!0})),[l]),{instance:l,vizManager:r,interactionManager:s,sampleData:t,variables:[]}},ac=()=>{const e=oc();return o(ic,{...e})},lc=V.observer(()=>{const{panel:e}=ie(),[t,n]=w.default.useState(e.description),r=e.description!==t,i=w.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(E.DeviceFloppy,{size:20})})]}),o(_t.RichTextEditor,{value:t,onChange:n,sx:{flexGrow:1},sticky:!0,p:"0"})]})}),sc=V.observer(()=>{const{panel:e}=ie(),{style:t}=e;return o(H,{children:o(a.Switch,{label:"Border",checked:t.border.enabled,onChange:n=>t.border.setEnabled(n.currentTarget.checked)})})}),uc=V.observer(()=>{const{panel:{title:e,style:{border:t}}}=ie();return o(Le,{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(sr,{})}),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}})]})})}),dc=V.observer(()=>{const{panel:e}=ie(),{title:t,setTitle:n}=e,[r,i]=Z.useInputState(t),l=t!==r,s=w.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(E.DeviceFloppy,{size:20})})]}),styles:{label:{display:"block",paddingBottom:"4px"}}})});function cc(){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(sc,{}),o(a.Divider,{label:"Info",labelPosition:"center",variant:"dashed"}),o(dc,{}),o(lc,{})]}),o(a.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:o(uc,{})})]})}const gc=V.observer(function(){const t=Y(),{panel:{queryID:n,setQueryID:r}}=ie(),i=w.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(Jn,{id:n})]})});function li(e,t,n){const r=U.useCreation(()=>new Set,[]),i=e.resolveComponent(t.type),[l,s]=_.useState(!1);return U.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 pc({setVizConf:e,...t}){const{vizManager:n,panel:r}=t,i=n.getOrCreateInstance(r),l=li(n,i,()=>{Dt.showNotification({title:`${r.title} - Updated`,message:"Your plugin configuration has been migrated to the latest version"})});return U.useAsyncEffect(async()=>{await i.instanceData.setItem(null,r.viz.conf)},[i,r.viz.type]),_.useEffect(()=>i.instanceData.watchItem(null,s=>{e(s)}),[e,r.viz.type]),l?o(Ia,{...t}):o(a.Text,{children:"Checking update..."})}function fc(e){const{vizManager:t,panel:n}=e,r=t.getOrCreateInstance(n);return li(t,r,()=>{Dt.showNotification({title:`${n.title} - Updated`,message:"Your plugin configuration has been migrated to the latest version"})})?o(Da,{...e}):o(a.Text,{children:"Checking update"})}const Qg="";function hc(e,t){const{vizManager:n}=_.useContext(De),{panel:{viz:r,title:i,id:l,description:s,queryID:u,style:d}}=ie(),p={title:i,id:l,description:s,queryID:u,viz:r,layout:t,style:d.json};try{return n.resolveComponent(r.type),o(fc,{panel:p,data:e,vizManager:n})}catch(c){return console.info(I.get(c,"message")),null}}const mc=["richText"],si=V.observer(function({height:t,viz:n,data:r,loading:i}){const{ref:l,width:s,height:u}=Z.useElementSize(),d=w.default.useMemo(()=>!Array.isArray(r)||r.length===0,[r]),p=hc(r,{w:s,h:u});return mc.includes(n.type)?o("div",{className:"viz-root",style:{height:t},ref:l,children:o(Le,{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(Le,{children:p})]})}),vc=V.observer(()=>{const{data:e,loading:t,panel:{viz:n}}=ie();return o(si,{viz:n,data:e,loading:t,height:"100%"})}),Cn=[];function yc(){const{vizManager:e}=_.useContext(De);return _.useMemo(()=>e.availableVizList.map(t=>({value:t.name,label:t.displayName})).concat(Cn),[e])}function bc(e,t){try{return e.resolveComponent(t).createConfig()}catch{return null}}function Cc(){const{data:e,panel:{viz:t,title:n,queryID:r,description:i,setDescription:l,setTitle:s,setQueryID:u,id:d,style:p}}=ie(),{vizManager:c}=_.useContext(De),h={title:n,description:i,viz:t,queryID:r,id:d,style:p.json},f={setDescription:l,setQueryID:u,setTitle:s};try{return c.resolveComponent(h.viz.type),o(pc,{setVizConf:t.setConf,panel:h,panelInfoEditor:f,vizManager:c,data:e})}catch(v){return console.info(I.get(v,"message")),null}}const xc=V.observer(()=>{const{data:e,panel:{viz:t}}=ie(),[n,r]=Z.useInputState(t.type),i=t.type!==n,{vizManager:l}=_.useContext(De),s=w.default.useCallback(()=>{if(!i)return;const v=bc(l,n);t.setType(n),t.setConf(v||{})},[t,i,n]),u=v=>{try{t.setConf(JSON.parse(v))}catch(C){console.error(C)}},d=w.default.useMemo(()=>{var v;return(v=Cn.find(C=>C.value===n))==null?void 0:v.Panel},[n,Cn]),p=Cc(),c=d?_.createElement(d,{data:e,conf:t.conf,setConf:t.setConf}):null,h=p||c,f=yc();return g(H,{children:[o(a.Select,{label:"Visualization",value:n,onChange:r,data:f,rightSection:o(a.ActionIcon,{disabled:!i,onClick:s,children:o(E.DeviceFloppy,{size:20})})}),h,!h&&o(a.JsonInput,{minRows:20,label:"Config",value:JSON.stringify(t.conf,null,2),onChange:u})]})});function wc(){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(xc,{})}),o(a.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:o(vc,{})})]})}const Sc=V.observer(function({opened:t,close:n}){const{freezeLayout:r}=w.default.useContext(ce),[i,l]=_.useState("Visualization"),{panel:s,loading:u}=ie(),{id:d,title:p}=s;return w.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(gc,{})]}),o(a.Tabs.Panel,{value:"Panel",pt:"sm",children:i==="Panel"&&o(cc,{})}),o(a.Tabs.Panel,{value:"Visualization",pt:"sm",children:i==="Visualization"&&o(wc,{})}),o(a.Tabs.Panel,{value:"Interactions",pt:"sm",children:o(Le,{children:o(ac,{})})})]})})})}),_c=V.observer(({view:e})=>{const t=Y(),n=Se.useModals(),[r,i]=w.default.useState(!1),l=()=>i(!0),s=()=>i(!1),{panel:u}=ie(),{id:d,queryID:p}=u,{inEditMode:c}=w.default.useContext(ce),h=()=>t.queries.refetchDataByQueryID(p),{viewPanelInFullScreen:f,inFullScreen:v}=w.default.useContext(At),C=()=>{e.panels.duplicateByID(d)},y=()=>n.openConfirmModal({title:"Delete this panel?",labels:{confirm:"Confirm",cancel:"Cancel"},onCancel:()=>console.log("Cancel"),onConfirm:()=>e.panels.removeByID(d)}),x=w.default.useCallback(()=>{f(d)},[d,f]);return g(H,{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:h,icon:o(E.Refresh,{size:14}),children:"Refresh"}),o(a.Menu.Item,{onClick:()=>t.queries.downloadDataByQueryID(p),icon:o(E.Download,{size:14}),children:"Download Data"}),!v&&o(a.Menu.Item,{onClick:x,icon:o(E.ArrowsMaximize,{size:14}),children:"Full Screen"}),c&&g(H,{children:[o(a.Divider,{label:"Edit",labelPosition:"center"}),o(a.Menu.Item,{onClick:l,icon:o(E.Settings,{size:14}),children:"Settings"}),o(a.Menu.Item,{onClick:C,icon:o(E.Copy,{size:14}),children:"Duplicate"}),o(a.Menu.Item,{color:"red",onClick:y,icon:o(E.Trash,{size:14}),children:"Delete"})]})]})]})}),c&&o(Sc,{opened:r,close:s})]})}),Xg="",Dc=V.observer(function(){const{panel:t}=ie(),{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 Ic(e){return!["richText"].includes(e)}const Mc={border:"1px solid #ced4da"},ui={border:"1px dashed transparent",transition:"border-color 300ms ease","&:hover":{borderColor:"#ced4da"}};function Vc(e,t,n){return e.style.border.enabled?Mc:n||t?ui:{border:"1px dashed transparent"}}const yt=V.observer(function({panel:t,view:n}){const r=Y(),{inEditMode:i}=_.useContext(ce),{data:l,state:s}=r.getDataStuffByID(t.queryID),u=Ic(t.viz.type),d=u&&s==="loading",p=t.title?"calc(100% - 25px - 5px)":"100%",c=Vc(t,u,i),h=u||i;return o(Qn,{value:{panel:t,data:l,loading:d},children:g(a.Box,{className:"panel-root",p:5,pt:0,sx:{...c},children:[o(a.Box,{sx:{position:"absolute",left:0,top:0,height:28,zIndex:310},children:o(sr,{})}),h&&o(_c,{view:n}),o(Dc,{}),o(si,{viz:t.viz,data:l,loading:d,height:p})]})})}),di=V.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(E.ArrowLeft,{size:20}),children:"Exit fullscreen"})}),o(a.Group,{mx:"-5px",grow:!0,sx:{flexGrow:1,flexShrink:0},children:o(yt,{view:t,panel:n})})]})});function ci(e,t,n){const r=e.id==="Main",[i,l]=w.default.useState(()=>r&&e.panels.findByID(t)?t:null),s=w.default.useCallback(c=>{l(c),r&&n(c)},[r,n]),u=w.default.useCallback(()=>{l(null),r&&n("")},[r,n]),d=i?e.panels.findByID(i):null;return{viewPanelInFullScreen:s,exitFullScreen:u,inFullScreen:!!d,fullScreenPanel:d}}function gi(){w.default.useEffect(()=>{const e=ho.default(".dashboard-sticky-area",{useStickyClasses:!0,parentClass:"dashboard-sticky-parent"});return()=>{e==null||e.cleanup()}},[])}const Jg="",Ac=w.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(E.ArrowsMove,{size:16})})),Ec=w.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(E.ChevronDownRight,{size:16})})),$c=Mt.WidthProvider(Gn.default),Tc=V.observer(function({view:t,className:n="layout",rowHeight:r=10,isDraggable:i,isResizable:l}){const s=w.default.useCallback(u=>{u.forEach(({i:d,...p})=>{const c=t.panels.findByID(d);!c||c.layout.set(p)})},[t]);return o($c,{onLayoutChange:s,className:`dashboard-layout ${n}`,rowHeight:r,layout:t.panels.layouts,isDraggable:i,isResizable:l,draggableHandle:".react-grid-customDragHandle",resizeHandle:o(Ec,{}),children:t.panels.list.map((u,d)=>g("div",{"data-grid":{...u.layout},style:{position:"relative"},children:[i&&o(Ac,{}),o(yt,{view:t,panel:u})]},u.id))})}),Rc=Mt.WidthProvider(Gn.default),Fc=V.observer(function({view:t,className:n="layout",rowHeight:r=10}){return o(Rc,{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(yt,{view:t,panel:i})},i.id))})}),Oc=V.observer(({children:e})=>o(a.Box,{children:e})),Pc=V.observer(({children:e,view:t})=>o(a.Modal,{size:t.config.width,overflow:"inside",opened:!0,onClose:N.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})),kc=V.observer(({view:e,children:t})=>{switch(e.type){case pe.Modal:return o(Pc,{view:e,children:t});case pe.Division:default:return o(Oc,{children:t})}}),pi=V.observer(function({view:t,saveDashboardChanges:n,fullScreenPanelID:r,setFullScreenPanelID:i}){const{viewPanelInFullScreen:l,exitFullScreen:s,inFullScreen:u,fullScreenPanel:d}=ci(t,r,i);return gi(),o(At.Provider,{value:{viewPanelInFullScreen:l,inFullScreen:u},children:g(a.Box,{className:"dashboard-view",mx:-10,sx:{position:"relative",height:"100%"},children:[u&&o(di,{view:t,panel:d,exitFullScreen:s}),!u&&o(lr,{saveChanges:n}),o(kc,{view:t,children:g(a.Box,{className:"dashboard-sticky-parent",children:[o(a.Box,{className:"dashboard-sticky-area",children:o(Yn,{view:t})}),!u&&o(Tc,{view:t,isDraggable:!0,isResizable:!0})]})})]})})}),zc=V.observer(({children:e})=>o(a.Box,{children:e})),Gc=V.observer(({children:e,view:t})=>{const n=Y(),r=n.views.visibleViewIDs.includes(t.id),i=()=>n.views.rmVisibleViewID(t.id);return o(a.Modal,{size:t.config.width,centered:!0,overflow:"inside",opened:r,onClose:i,withCloseButton:!1,title:t.name,trapFocus:!0,onDragStart:l=>{l.stopPropagation()},styles:{modal:{border:"1px solid #efefef"},body:{maxHeight:t.config.height,overflow:"scroll"}},transitionDuration:0,children:e})}),Nc=V.observer(({view:e,children:t})=>{switch(e.type){case pe.Modal:return o(Gc,{view:e,children:t});case pe.Division:default:return o(zc,{children:t})}}),fi=V.observer(function({view:t,fullScreenPanelID:n,setFullScreenPanelID:r}){const{viewPanelInFullScreen:i,exitFullScreen:l,inFullScreen:s,fullScreenPanel:u}=ci(t,n,r);return gi(),o(At.Provider,{value:{viewPanelInFullScreen:i,inFullScreen:s},children:g(a.Box,{className:"dashboard-view",mx:-10,sx:{position:"relative",height:"100%"},children:[s&&o(di,{view:t,panel:u,exitFullScreen:l}),!s&&o(lr,{saveChanges:N.default.noop}),o(Nc,{view:t,children:g(a.Box,{className:"dashboard-sticky-parent",children:[o(a.Box,{className:"dashboard-sticky-area",children:o(Yn,{view:t})}),!s&&o(Fc,{view:t})]})})]})})}),hi=b.types.model({label:b.types.string,value:b.types.string}).actions(e=>({setLabel(t){e.label=t},setValue(t){e.value=t}})),mi=b.types.model("FilterConfigModel_Select",{required:b.types.boolean,default_value:b.types.string,static_options:b.types.optional(b.types.array(hi),[]),options_query:er}).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}})),Lc=()=>mi.create({required:!1,default_value:"",static_options:[],options_query:{type:we.Postgresql,key:"",sql:""}}),vi=b.types.model("FilterConfigModel_MultiSelect",{default_value:b.types.optional(b.types.array(b.types.string),[]),static_options:b.types.optional(b.types.array(hi),[]),options_query:er}).actions(e=>({addStaticOption(t){e.static_options.push(t)},removeStaticOption(t){e.static_options.splice(t,1)},setDefaultValue(t){e.default_value=b.cast(t)},setOptionsQuery(t){e.options_query=t}})),qc=()=>vi.create({default_value:[],static_options:[],options_query:{type:we.Postgresql,key:"",sql:""}}),yi=b.types.model("FilterConfigModel_Checkbox",{default_value:b.types.boolean}).actions(e=>({setDefaultValue(t){e.default_value=t}})),Bc=()=>yi.create({default_value:!1}),jc=b.types.model("FilterConfigModel_DateRange",{required:b.types.boolean,inputFormat:b.types.enumeration("DateRangeInputFormat",["YYYY","YYYYMM","YYYYMMDD","YYYY-MM","YYYY-MM-DD"]),default_value:b.types.optional(b.types.array(b.types.union(b.types.string,b.types.null)),[null,null]),clearable:b.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)}})),bi=b.types.snapshotProcessor(jc,{preProcessor({default_value:e,...t}){return{...t,default_value:e.map(n=>n===null?null:Ve.default.tz(n,"UTC").toISOString())}},postProcessor({default_value:e,...t}){return{...t,default_value:e.map(n=>{try{return n?Ve.default.tz(n,"UTC").format(t.inputFormat):null}catch{return console.log(`[date-range] failed parsing ${n}`),null}})}}}),Uc=()=>bi.create({required:!1,inputFormat:"YYYY-MM-DD",clearable:!1,default_value:[null,null]}),xn=b.types.model("FilterModel",{id:b.types.identifier,key:b.types.string,label:b.types.string,order:b.types.number,visibleInViewsIDs:b.types.array(b.types.string),type:b.types.enumeration("DashboardFilterType",[ge.Select,ge.MultiSelect,ge.TextInput,ge.Checkbox,ge.DateRange]),config:b.types.union(mi,vi,tr,yi,bi)}).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 ge.Select:e.config=Lc();break;case ge.MultiSelect:e.config=qc();break;case ge.TextInput:e.config=nr();break;case ge.Checkbox:e.config=Bc();break;case ge.DateRange:e.config=Uc();break}e.type=t},setVisibleInViewsIDs(t){e.visibleInViewsIDs.length=0,e.visibleInViewsIDs.push(...t)}}));function Wc(e,t){if(e===void 0)return e;if(Array.isArray(e))try{return e.map(n=>{const r=Ve.default.tz(n,"UTC").format(t.inputFormat);return r!=null?r:n})}catch(n){return console.error(n),e}return e}function Ci(e){return e.reduce((t,n)=>(t[n.key]=Wc(n.config.default_value,n.config),t),{})}const xi=b.types.model("FiltersModel",{original:b.types.optional(b.types.array(xn),[]),current:b.types.optional(b.types.array(xn),[]),values:b.types.optional(b.types.frozen(),{})}).views(e=>({get changed(){return!N.default.isEqual(e.original,e.current)},get firstID(){if(e.current.length!==0)return e.current[0].id},get inOrder(){return N.default.sortBy(e.current,"order")},get empty(){return e.current.length===0},visibleInView(t){return N.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("__")},get firstFilterValueKey(){var t;return(t=Object.keys(e.values)[0])!=null?t:""}})).actions(e=>({reset(){e.current=N.default.cloneDeep(e.original)},replace(t){e.current=b.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},setValues(t){e.values=t},setValueByKey(t,n){e.values={...e.values,[t]:n}},getValueByKey(t){return e.values[t]},refreshValues(){console.log("refreshing values");const t=Ci(e.current);e.values=t}})).actions(e=>({afterCreate(){b.addDisposer(e,ee.reaction(()=>e.triggerForRefreshValues,e.refreshValues,{fireImmediately:!0,delay:0}))}}));function wi(e){return{original:e,current:e,values:Ci(e)}}var wn={exports:{}};(function(e,t){(function(n,r){r()})(ze,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,h){var f=new XMLHttpRequest;f.open("GET",p),f.responseType="blob",f.onload=function(){d(f.response,c,h)},f.onerror=function(){console.error("could not download file")},f.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 ze=="object"&&ze.global===ze?ze: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,h){var f=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,h):l(v,v.target="_blank")):(v.href=f.createObjectURL(p),setTimeout(function(){f.revokeObjectURL(v.href)},4e4),setTimeout(function(){l(v)},0))}:"msSaveOrOpenBlob"in navigator?function(p,c,h){if(c=c||p.name||"download",typeof p!="string")navigator.msSaveOrOpenBlob(n(p,h),c);else if(i(p))r(p,c,h);else{var f=document.createElement("a");f.href=p,f.target="_blank",setTimeout(function(){l(f)})}}:function(p,c,h,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof p=="string")return r(p,c,h);var v=p.type==="application/octet-stream",C=/constructor/i.test(s.HTMLElement)||s.safari,y=/CriOS\/[\d]+/.test(navigator.userAgent);if((y||v&&C||u)&&typeof FileReader<"u"){var x=new FileReader;x.onloadend=function(){var F=x.result;F=y?F:F.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=F:location=F,f=null},x.readAsDataURL(p)}else{var $=s.URL||s.webkitURL,T=$.createObjectURL(p);f?f.location=T:location.href=T,f=null,setTimeout(function(){$.revokeObjectURL(T)},4e4)}});s.saveAs=d.saveAs=d,e.exports=d})})(wn);function Yc(e,t){const n=new Blob([t],{type:"text/csv"});wn.exports.saveAs(n,`${e}.csv`)}function Hc(e){const t=new mo.default;e.forEach(({id:n,data:r})=>{t.file(`${n}.csv`,Si(r))}),t.generateAsync({type:"blob"}).then(n=>{wn.exports.saveAs(n,"dashboard_data.zip")})}function Si(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 _i=b.types.model("QueryModel",{id:b.types.string,type:b.types.enumeration("DataSourceType",[we.Postgresql,we.MySQL,we.HTTP]),key:b.types.string,sql:b.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}}})),Di=b.types.compose("QueryModel",_i,b.types.model({state:b.types.optional(b.types.enumeration(["idle","loading","error"]),"idle"),data:b.types.optional(b.types.array(b.types.frozen()),[]),error:b.types.frozen()})).views(e=>({get formattedSQL(){const{context:t,sqlSnippets:n,filterValues:r}=b.getRoot(e).payloadForSQL;return Un(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:b.flow(function*(){if(!!e.valid){e.state="loading";try{const t=e.id,{context:n,sqlSnippets:r,filterValues:i}=b.getRoot(e).payloadForSQL;e.data=yield*b.toGenerator(wo({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(){b.addDisposer(e,ee.reaction(()=>`${e.id}--${e.key}--${e.type}--${e.formattedSQL}`,e.fetchData,{fireImmediately:!0,delay:500}))}})),Ii=b.types.model("QueriesModel",{original:b.types.optional(b.types.array(_i),[]),current:b.types.optional(b.types.array(Di),[])}).views(e=>({get changed(){return e.original.length!==e.current.length?!0:e.original.some((t,n)=>!N.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=b.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()}));Hc(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=Si(i);Yc(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=b.types.model("SQLSnippetModel",{key:b.types.string,value:b.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}})),Mi=b.types.model("SQLSnippetsModel",{original:b.types.optional(b.types.array(Sn),[]),current:b.types.optional(b.types.array(Sn),[])}).views(e=>({get changed(){return!N.default.isEqual(e.original,e.current)},get json(){return e.current.map(t=>t.json)}})).actions(e=>({reset(){e.current=N.default.cloneDeep(e.original)},replace(t){e.current=b.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},replaceByIndex(t,n){e.current.splice(t,1,n)}})),Vi=b.types.model("ContextModel",{current:b.types.optional(b.types.frozen(),{})}).views(e=>({get keys(){return Object.keys(e.current)},get entries(){return Object.entries(e.current)}})).actions(e=>({replace(t){e.current=t},get(t){return e.current[t]},set(t,n){e.current[t]=n}})),Qc=b.types.model("PanelLayoutModel",{x:b.types.number,y:b.types.number,w:b.types.number,h:b.types.number,moved:b.types.optional(b.types.boolean,!1),static:b.types.optional(b.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}})),Xc=b.types.model("PanelStyleBorderModel",{enabled:b.types.boolean}).views(e=>({get json(){const{enabled:t}=e;return{enabled:t}}})).actions(e=>({setEnabled(t){e.enabled=t}})),Jc=b.types.model("PanelStyleModel",{border:Xc}).views(e=>({get json(){const{border:t}=e;return{border:t.json}}})).actions(e=>({})),Kc=b.types.model("PanelVizModel",{type:b.types.string,conf:b.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}})),Zc=b.types.model({id:b.types.string,title:b.types.string,description:b.types.string,layout:Qc,queryID:b.types.string,viz:Kc,style:Jc}).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=>({})),eg=b.types.model("PanelsModel",{list:b.types.optional(b.types.array(Zc),[])}).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=b.cast(t)},addANewPanel(){const t=Z.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:un.name,conf:un.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:Z.randomId(),layout:{...n.layout,x:0,y:1/0,moved:!1}})},replaceByIndex(t,n){e.list.splice(t,1,n)}})),_n=b.types.model({id:b.types.identifier,name:b.types.string,type:b.types.string,config:b.types.frozen(),panels:eg}).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===pe.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=>({})),Dn=b.types.model("ViewsModel",{original:b.types.optional(b.types.array(_n),[]),current:b.types.optional(b.types.array(_n),[]),visibleViewIDs:b.types.array(b.types.string),idOfVIE:b.types.string}).views(e=>({get changed(){return e.original.length!==e.current.length?!0:e.original.some((t,n)=>!N.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=b.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()},appendToVisibles(t){new Set(e.visibleViewIDs.map(r=>r)).has(t)||e.visibleViewIDs.push(t)}})).actions(e=>({addARandomNewView(){const t=Z.randomId();e.addANewView(t,pe.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 Ai(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 Dn.create({original:r,current:r,visibleViewIDs:t,idOfVIE:n})}const tg=b.types.model({id:b.types.identifier,name:b.types.string,filters:xi,queries:Ii,sqlSnippets:Mi,views:Dn,context:Vi}).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 tg.create({id:e,name:t,filters:wi(n),queries:{original:i,current:i},sqlSnippets:{original:l,current:l},context:s,views:Ai(r)})}const Kg="",ng=V.observer(function({context:t,dashboard:n,update:r,className:i="dashboard",config:l,fullScreenPanelID:s,setFullScreenPanelID:u}){Ge.baseURL!==l.apiBaseURL&&(Ge.baseURL=l.apiBaseURL);const[d,p]=w.default.useState(!1),c=w.default.useMemo(()=>In(n,t),[n]);Nn(c,!0),w.default.useEffect(()=>{c.context.replace(t)},[t]);const h=async()=>{const v=[...c.queries.json],C=[...c.sqlSnippets.json],y=[...c.views.json],x={...n,filters:[...c.filters.current],views:y,definition:{sqlSnippets:C,queries:v}};await r(x)},f=U.useCreation(ii,[]);return o(Se.ModalsProvider,{children:o(Et,{value:c,children:o(ce.Provider,{value:{layoutFrozen:d,freezeLayout:p,inEditMode:!0,inUseMode:!1},children:o(a.Box,{className:`${i} dashboard-root`,sx:{position:"relative"},children:o(De.Provider,{value:f,children:c.views.visibleViews.map(v=>o(pi,{view:v,saveDashboardChanges:h,fullScreenPanelID:s,setFullScreenPanelID:u},v.id))})})})})})}),rg=V.observer(({context:e,dashboard:t,className:n="dashboard",config:r,fullScreenPanelID:i,setFullScreenPanelID:l})=>{Ge.baseURL!==r.apiBaseURL&&(Ge.baseURL=r.apiBaseURL);const s=w.default.useMemo(()=>In(t,e),[t]);return Nn(s,!1),w.default.useEffect(()=>{s.context.replace(e)},[e]),o(Se.ModalsProvider,{children:o(Et,{value:s,children:o(ce.Provider,{value:{layoutFrozen:!0,freezeLayout:N.default.noop,inEditMode:!1,inUseMode:!0},children:o(a.Box,{className:`${n} dashboard-root dashboard-sticky-parent`,children:s.views.visibleViews.map(u=>o(fi,{view:u,fullScreenPanelID:i,setFullScreenPanelID:l},u.id))})})})})});var Ei={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(ze,function(){var n={year:0,month:1,day:2,hour:3,minute:4,second:5},r={};return function(i,l,s){var u,d=function(f,v,C){C===void 0&&(C={});var y=new Date(f),x=function($,T){T===void 0&&(T={});var F=T.timeZoneName||"short",k=$+"|"+F,q=r[k];return q||(q=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:$,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:F}),r[k]=q),q}(v,C);return x.formatToParts(y)},p=function(f,v){for(var C=d(f,v),y=[],x=0;x<C.length;x+=1){var $=C[x],T=$.type,F=$.value,k=n[T];k>=0&&(y[k]=parseInt(F,10))}var q=y[3],ne=q===24?0:q,K=y[0]+"-"+y[1]+"-"+y[2]+" "+ne+":"+y[4]+":"+y[5]+":000",he=+f;return(s.utc(K).valueOf()-(he-=he%1e3))/6e4},c=l.prototype;c.tz=function(f,v){f===void 0&&(f=u);var C=this.utcOffset(),y=this.toDate(),x=y.toLocaleString("en-US",{timeZone:f}),$=Math.round((y-new Date(x))/1e3/60),T=s(x).$set("millisecond",this.$ms).utcOffset(15*-Math.round(y.getTimezoneOffset()/15)-$,!0);if(v){var F=T.utcOffset();T=T.add(C-F,"minute")}return T.$x.$timezone=f,T},c.offsetName=function(f){var v=this.$x.$timezone||s.tz.guess(),C=d(this.valueOf(),v,{timeZoneName:f}).find(function(y){return y.type.toLowerCase()==="timezonename"});return C&&C.value};var h=c.startOf;c.startOf=function(f,v){if(!this.$x||!this.$x.$timezone)return h.call(this,f,v);var C=s(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return h.call(C,f,v).tz(this.$x.$timezone,!0)},s.tz=function(f,v,C){var y=C&&v,x=C||v||u,$=p(+s(),x);if(typeof f!="string")return s(f).tz(x);var T=function(ne,K,he){var ae=ne-60*K*1e3,be=p(ae,he);if(K===be)return[ae,K];var re=p(ae-=60*(be-K)*1e3,he);return be===re?[ae,be]:[ne-60*Math.min(be,re)*1e3,Math.max(be,re)]}(s.utc(f,y).valueOf(),$,x),F=T[0],k=T[1],q=s(F).utcOffset(k);return q.$x.$timezone=x,q},s.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},s.tz.setDefault=function(f){u=f}}})})(Ei);const ig=Ei.exports;var $i={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(ze,function(){var n="minute",r=/[+-]\d\d(?::?\d\d)?/g,i=/([+-]|\d\d)/g;return function(l,s,u){var d=s.prototype;u.utc=function(y){var x={date:y,utc:!0,args:arguments};return new s(x)},d.utc=function(y){var x=u(this.toDate(),{locale:this.$L,utc:!0});return y?x.add(this.utcOffset(),n):x},d.local=function(){return u(this.toDate(),{locale:this.$L,utc:!1})};var p=d.parse;d.parse=function(y){y.utc&&(this.$u=!0),this.$utils().u(y.$offset)||(this.$offset=y.$offset),p.call(this,y)};var c=d.init;d.init=function(){if(this.$u){var y=this.$d;this.$y=y.getUTCFullYear(),this.$M=y.getUTCMonth(),this.$D=y.getUTCDate(),this.$W=y.getUTCDay(),this.$H=y.getUTCHours(),this.$m=y.getUTCMinutes(),this.$s=y.getUTCSeconds(),this.$ms=y.getUTCMilliseconds()}else c.call(this)};var h=d.utcOffset;d.utcOffset=function(y,x){var $=this.$utils().u;if($(y))return this.$u?0:$(this.$offset)?h.call(this):this.$offset;if(typeof y=="string"&&(y=function(q){q===void 0&&(q="");var ne=q.match(r);if(!ne)return null;var K=(""+ne[0]).match(i)||["-",0,0],he=K[0],ae=60*+K[1]+ +K[2];return ae===0?0:he==="+"?ae:-ae}(y),y===null))return this;var T=Math.abs(y)<=16?60*y:y,F=this;if(x)return F.$offset=T,F.$u=y===0,F;if(y!==0){var k=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(F=this.local().add(T+k,n)).$offset=T,F.$x.$localOffset=k}else F=this.utc();return F};var f=d.format;d.format=function(y){var x=y||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return f.call(this,x)},d.valueOf=function(){var y=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*y},d.isUTC=function(){return!!this.$u},d.toISOString=function(){return this.toDate().toISOString()},d.toString=function(){return this.toDate().toUTCString()};var v=d.toDate;d.toDate=function(y){return y==="s"&&this.$offset?u(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():v.call(this)};var C=d.diff;d.diff=function(y,x,$){if(y&&this.$u===y.$u)return C.call(this,y,x,$);var T=this.local(),F=u(y).local();return C.call(T,F,x,$)}}})})($i);const og=$i.exports;Ve.default.extend(og),Ve.default.extend(ig),Ve.default.tz.setDefault("UTC"),A.ContextModel=Vi,A.Dashboard=ng,A.DashboardFilterType=or,A.DashboardMode=ir,A.EViewComponentType=pe,A.FilterModel=xn,A.FiltersModel=xi,A.LayoutStateContext=ce,A.MainDashboardView=pi,A.ModelContextProvider=Et,A.Panel=yt,A.PanelContextProvider=Qn,A.QueriesModel=Ii,A.QueryModel=Di,A.ReadOnlyDashboard=rg,A.ReadOnlyDashboardView=fi,A.SQLSnippetModel=Sn,A.SQLSnippetsModel=Mi,A.ViewModel=_n,A.ViewsModel=Dn,A.createDashboardModel=In,A.createDashboardViewsModel=Ai,A.getInitialFiltersPayload=wi,A.useModelContext=Y,A.usePanelContext=ie,Object.defineProperties(A,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
81
|
+
`}}const cd={legend:{show:!0,bottom:0,left:0},tooltip:{trigger:"item"}};function gd(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:dd(e)},legend:{show:!0,left:"center"},series:{type:"radar",data:i,symbolSize:4,lineStyle:{width:1},areaStyle:{opacity:.4},label:ud(e)},color:n};return N.default.merge({},cd,l)}const hn={series_name_key:"name",dimensions:[]};te.use([xe.RadarChart,W.GridComponent,W.LegendComponent,W.TooltipComponent,Me.CanvasRenderer]);function pd({context:e}){const{value:t}=B(e.instanceData,"config"),{width:n,height:r}=e.viewport,i=e.data,l=D.useMemo(()=>gd(I.defaultsDeep({},t,hn),i),[t,i]);return!n||!r||!t||I.isEmpty(t==null?void 0:t.dimensions)?null:o(a.Box,{children:o(Ae.default,{echarts:te,option:l,style:{width:n,height:r}})})}function fd({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(w.Controller,{name:`dimensions.${t}.name`,control:e,render:({field:i})=>o(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),o(w.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(w.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(w.Controller,{name:`dimensions.${t}.formatter`,control:e,render:({field:i})=>o(zt,{...i})})]}),o(a.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},disabled:t===0,children:o($.Trash,{size:16})})]},t)}function hd({control:e,watch:t,data:n}){const{fields:r,append:i,remove:l}=w.useFieldArray({control:e,name:"dimensions"}),s=t("dimensions"),u=r.map((p,c)=>({...p,...s[c]})),d=()=>i({name:Z.randomId(),data_key:"",max:100,formatter:He});return g(a.Stack,{children:[u.map((p,c)=>o(fd,{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 md(e){function t({name:n="",data_key:r="",max:i=10,formatter:l=He}){return{name:n,data_key:r,max:i,formatter:l}}return e.map(t)}function vd({context:e}){const t=e.data,{value:n,set:r}=B(e.instanceData,"config"),i=D.useMemo(()=>I.defaultsDeep({},n,hn),[n]),{dimensions:l,series_name_key:s}=i,u=D.useMemo(()=>({dimensions:md(l!=null?l:[]),series_name_key:s}),[l,s]);D.useEffect(()=>{!I.isEqual(i,u)&&r(u)},[i,u]);const{control:d,handleSubmit:p,watch:c,getValues:h,reset:f}=w.useForm({defaultValues:u});D.useEffect(()=>{I.isEqual(h(),u)||f(u)},[i]),c(["series_name_key"]);const v=h(),C=D.useMemo(()=>!I.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:!C,children:o($.DeviceFloppy,{size:20})})]}),o(a.Box,{py:"sm",children:o(w.Controller,{name:"series_name_key",control:d,render:({field:y})=>o(Q,{label:"Series Name Field",required:!0,data:t,sx:{flex:1},...y})})}),o(hd,{control:d,watch:c,data:t})]})})}class yd extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const bd={displayName:"Radar Chart",migrator:new yd,name:"radar",viewRender:pd,configRender:vd,createConfig:()=>hn};function Cd(e,t){switch(e.config.method){case"linear":return[...Ee.regressionLinear()(t)];case"exponential":return[...Ee.regressionExp()(t)];case"logarithmic":return[...Ee.regressionLog()(t)];case"polynomial":return[...Ee.regressionPoly().order(e.config.order)(t)];default:return[]}}function xd({regression:e},t){const n=[],r=[];if(t.length===0)return{regressionSeries:n,regressionXAxes:r};const{transform:i,plot:l,name:s}=e,u=Cd(i,t);return n.push({...l,name:s,data:u,showSymbol:!1,smooth:!0,tooltip:{show:!1}}),{regressionSeries:n,regressionXAxes:r}}const wd={tooltip:{trigger:"axis"},grid:{top:10,left:30,right:15,bottom:30,containLabel:!0},dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}]};function Sd(e,t){var l,s;const n=N.default.uniqBy(t.map(u=>[u[e.x_axis.data_key],u[e.regression.y_axis_data_key]]),0),{regressionSeries:r}=xd(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 I.defaultsDeep({},i,wd)}function vt(e,t,n){return 1-(1-e)*(t-1)/(t-n-1)}function _d(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=Ee.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:vt(p,e.length,1)}}if(n.transform.config.method==="exponential"){const{a:s,b:u,rSquared:d}=Ee.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:vt(d,e.length,1)}}if(n.transform.config.method==="logarithmic"){const{a:s,b:u,rSquared:d}=Ee.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:vt(d,e.length,1)}}if(n.transform.config.method==="polynomial"){const s=Ee.regressionPoly().order(n.transform.config.order)(l),{rSquared:u}=s;return console.log(s),{expression:"",rSquared:u,adjustedRSquared:vt(u,e.length,1)}}return{expression:"",rSquared:0}}const mn={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"}};te.use([W.DataZoomComponent,xe.ScatterChart,W.GridComponent,W.LegendComponent,W.TooltipComponent,Me.CanvasRenderer]),te.registerTransform(On.transform.regression);function Dd({context:e}){const{value:t}=B(e.instanceData,"config"),{width:n,height:r}=e.viewport,i=D.useMemo(()=>{var f;const c=e.data,h=(f=t==null?void 0:t.regression)==null?void 0:f.y_axis_data_key;return h?c.map(v=>typeof v[h]=="number"?v:{...v,[h]:Number(v[h])}):c},[e.data,t==null?void 0:t.regression.y_axis_data_key]),l=D.useMemo(()=>Sd(I.defaultsDeep({},t,mn),i),[t,i]),{expression:s,rSquared:u,adjustedRSquared:d}=D.useMemo(()=>_d(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(Ae.default,{echarts:te,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:de.default(u).format({output:"percent",mantissa:1})})]}),g("tr",{children:[o("td",{children:"R-Sq(Adjusted)"}),o("td",{style:{textAlign:"right"},children:de.default(d).format({output:"percent",mantissa:1})})]})]})})]})]})}const Id=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}];function Md({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(w.Controller,{name:"regression.name",control:e,render:({field:i})=>o(a.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),o(w.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(w.Controller,{name:"regression.transform.config.method",control:e,render:({field:i})=>o(a.Select,{label:"Method",data:Id,sx:{flex:1},...i})}),r==="polynomial"&&o(w.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(w.Controller,{name:"regression.plot.color",control:e,render:({field:i})=>o($e,{...i})})]})]})}function Vd({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),r=e.data,i=D.useMemo(()=>I.defaults({},t,mn),[t]),{control:l,handleSubmit:s,watch:u,getValues:d,reset:p}=w.useForm({defaultValues:i});D.useEffect(()=>{p(i)},[i]),u(["x_axis","y_axis","regression"]);const c=d(),h=D.useMemo(()=>!I.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:!h,children:o($.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(w.Controller,{name:"x_axis.name",control:l,render:({field:f})=>o(a.TextInput,{label:"X Axis Name",sx:{flex:1},...f})}),o(w.Controller,{name:"x_axis.data_key",control:l,render:({field:f})=>o(Q,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...f})})]}),o(a.Group,{grow:!0,noWrap:!0,children:o(w.Controller,{name:"y_axis.name",control:l,render:({field:f})=>o(a.TextInput,{label:"Y Axis Name",sx:{flex:1},...f})})})]})]}),g(a.Accordion.Item,{value:"Regression",children:[o(a.Accordion.Control,{children:"Regression Line"}),o(a.Accordion.Panel,{children:o(Md,{control:l,watch:u,data:r})})]})]})]})})}class Ad extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Ed={displayName:"Regression Chart",migrator:new Ad,name:"regressionChart",viewRender:Dd,configRender:Vd,createConfig:()=>mn},vn={x_axis:{name:"X Axis",data_key:""},data_key:"value",bar:{name:"Value",color:"#228be6"},line:{name:"Value",color:"red"}};function yn(e){return de.default(e).format({output:"percent",mantissa:0})}function $d(e){const t=e.value[1];try{return yn(t)}catch(n){return console.error(n),t}}function Td(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:yn)(u)}</strong>`:u});return n.unshift(`<strong>${t[0].name}</strong>`),n.join("<br />")}te.use([xe.BarChart,xe.LineChart,W.DataZoomComponent,W.GridComponent,W.LegendComponent,W.TooltipComponent,Me.CanvasRenderer]);function Rd({context:e}){const{value:t}=B(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{x_axis:l,data_key:s,bar:u,line:d}=I.defaults({},t,vn),{barData:p,lineData:c}=D.useMemo(()=>{const f=n.map(y=>[y[l.data_key],Number(y[s])]).sort((y,S)=>S[1]-y[1]),v=f.reduce((y,S)=>y+S[1],0),C=f.reduce((y,S,E)=>{const T=E===0?0:y[E-1][1];return y.push([S[0],T+S[1]]),y},[]).map(y=>[y[0],y[1]/v]);return{barData:f,lineData:C}},[l.data_key,s,n]),h={dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}],tooltip:{trigger:"axis",formatter:Td},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:yn}}],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(Ae.default,{echarts:te,option:h,style:{width:r,height:i}})}function Fd({context:e}){const{value:t,set:n}=B(e.instanceData,"config"),r=e.data,i=D.useMemo(()=>I.defaults({},t,vn),[t]),{control:l,handleSubmit:s,watch:u,getValues:d,reset:p}=w.useForm({defaultValues:i});D.useEffect(()=>{p(i)},[i]),u(["x_axis","data_key","bar","line"]);const c=d(),h=D.useMemo(()=>!I.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:!h,children:o($.DeviceFloppy,{size:20})})]}),g(a.Group,{grow:!0,noWrap:!0,children:[o(w.Controller,{name:"x_axis.name",control:l,render:({field:f})=>o(a.TextInput,{label:"X Axis Name",sx:{flex:1},...f})}),o(w.Controller,{name:"x_axis.data_key",control:l,render:({field:f})=>o(Q,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...f})})]}),o(w.Controller,{name:"data_key",control:l,render:({field:f})=>o(Q,{label:"Y Axis Data Field",required:!0,data:r,sx:{flex:1},...f})}),o(a.Divider,{my:"md",label:"Bar",labelPosition:"center"}),g(a.Group,{grow:!0,noWrap:!0,children:[o(w.Controller,{name:"bar.name",control:l,render:({field:f})=>o(a.TextInput,{label:"Bar Name",sx:{flex:1},...f})}),g(a.Stack,{spacing:4,children:[o(a.Text,{size:"sm",children:"Bar's Color"}),o(w.Controller,{name:"bar.color",control:l,render:({field:f})=>o($e,{...f})})]})]}),o(a.Divider,{my:"md",label:"Line",labelPosition:"center"}),g(a.Group,{grow:!0,noWrap:!0,children:[o(w.Controller,{name:"line.name",control:l,render:({field:f})=>o(a.TextInput,{label:"Line Name",sx:{flex:1},...f})}),g(a.Stack,{spacing:4,children:[o(a.Text,{size:"sm",children:"Line's Color"}),o(w.Controller,{name:"line.color",control:l,render:({field:f})=>o($e,{...f})})]})]})]})})}class Od extends ve{constructor(){super(...arguments);P(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Pd={displayName:"Pareto Chart",migrator:new Od,name:"paretoChart",viewRender:Rd,configRender:Fd,createConfig:()=>vn},kd=[{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"})),zd=[Ma,Va,$a,Ea,Aa,Ta],ri={id:"dashboard",version:Ra,manifest:{viz:[un,Tl,Na,eu,ou,uu,yu,Pd,sd,bd,Ed],color:[...kd,...zd]}},et=new Oa,ii=()=>{try{et.install(ri)}catch{}const e=new _a(et),t=new Fa(et);return{pluginManager:et,vizManager:e,colorManager:t}},De=D.createContext(ii());try{et.install(ri)}catch{}function Gd(e,t){const{value:n,set:r}=B(e.operation.operationData,"config"),[i,l]=D.useState(I.defaults({},n,t)),s=async()=>{await r(i)};return D.useEffect(()=>{l(I.defaults({},n,t))},[n]),{config:i,setConfig:l,commit:s}}function Nd(e){const{config:t,setConfig:n,commit:r}=Gd(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 Ld(e){return I.cloneDeepWith(e,n=>{if(typeof n=="string")return encodeURIComponent(n)})}async function qd(e,t){const{urlTemplate:n,openInNewTab:r}=await t.operationData.getItem("config"),l=I.template(n||"")(Ld(e));window.open(l,r?"_blank":"_self","noopener")}const Bd={displayName:"Open Link",id:"builtin:op:open-link",configRender:Nd,run:qd};function jd(e){const{value:t,set:n}=B(e.operationData,"config"),r=i=>void n({template:i});return[(t==null?void 0:t.template)||"",r]}function Ud(e){const[t,n]=jd(e.operation);return o(a.TextInput,{defaultValue:t,onBlur:r=>n(r.currentTarget.value),label:"console.log"})}async function Wd(e,t){const n=await t.operationData.getItem("config"),r=I.template(n.template||"");console.log("run with payload",e),console.log(r(e))}const Yd={displayName:"console.log (debug)",id:"builtin:op:debug",configRender:Ud,run:Wd},Hd=V.observer(e=>{const t=Y(),{value:n,set:r}=B(e.operation.operationData,"config");console.log({value:n,viewID:n==null?void 0:n.viewID});const i=(n==null?void 0:n.viewID)||"",l=s=>void r({viewID:s});return o(a.Select,{defaultValue:i,value:i,onChange:l,label:"View",data:t.views.options})});async function Qd(e,t){const r=(await t.operationData.getItem("config")).viewID;window.dispatchEvent(new CustomEvent("open-view",{detail:{viewID:r}}))}const Xd={displayName:"Open View",id:"builtin:op:open_view",configRender:Hd,run:Qd},Jd={dictionary:{}},Kd=V.observer(e=>{const t=Y(),{value:n=Jd,set:r}=B(e.operation.operationData,"config"),{dictionary:i={}}=n,l=(u,d)=>{r({dictionary:{...i,[u]:d}})},s=()=>{l(t.filters.firstFilterValueKey,"")};return g(a.Stack,{spacing:10,children:[o(a.Text,{children:"Mapping Rules"}),Object.entries(i).map(([u,d],p)=>g(a.Group,{noWrap:!0,children:[o(a.TextInput,{label:"Payload key",value:d,onChange:c=>{l(u,c.currentTarget.value)}}),o(Q,{data:[t.filters.values],value:u,onChange:c=>{l(c,d)},label:"Filter key"})]},p)),o(a.Button,{size:"xs",onClick:s,children:"Add one mapping rule"})]})});async function Zd(e,t){const r=(await t.operationData.getItem("config")).dictionary;window.dispatchEvent(new CustomEvent("set-filter-values",{detail:{dictionary:r,payload:e}}))}const bn=[Yd,Bd,Xd,{displayName:"Set Filter Values",id:"builtin:op:set_filter_values",configRender:Kd,run:Zd}];class ec{constructor(t,n=bn){P(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 qe(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 oi="__TRIGGERS";class tc{constructor(t,n){P(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 qe(i,"data")}};this.attachments=new Ft(t,oi,r)}watchTriggerSnapshotList(t){return this.instance.instanceData.watchItem(oi,n=>{const r=I.values(n).map(i=>({id:I.get(i,"id"),schemaRef:I.get(i,"schemaRef"),config:ee.toJS(I.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 ai{constructor(t,n,r){P(this,"operationManager");P(this,"triggerManager");P(this,"attachments");this.operationManager=new ec(t,r),this.triggerManager=new tc(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 nc(e,t){const[n,r]=D.useState([]);return U.useAsyncEffect(async()=>{const i=await e.getInteractionList();r(i)},[t]),n}const rc=V.observer(({item:e,manager:t,instance:n,sampleData:r,variables:i,onRemove:l})=>{const{triggerRef:s,operationRef:u}=e,d=ya(t.triggerManager,n);if(U.useAsyncEffect(async()=>{await d.configTrigger(s,r)},[d,s,r]),d.isReady()){const p=[...d.triggerSchema.payload,...i];return g(a.Group,{children:[o(wa,{model:d}),o(ha,{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($.Trash,{})})]})}return null}),ic=e=>{const[t,n]=D.useState(0),{interactionManager:r,instance:i,sampleData:l,variables:s}=e,u=nc(r,t),d=async()=>{const c=await r.triggerManager.createOrGetTrigger(Z.randomId(),r.triggerManager.getTriggerSchemaList()[0]),h=await r.operationManager.createOrGetOperation(Z.randomId(),r.operationManager.getOperationSchemaList()[0]);await r.addInteraction(c,h),n(f=>f+1)};async function p(c){await r.removeInteraction(c.id),n(h=>h+1)}return g(a.Stack,{children:[u.map(c=>o(rc,{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"})]})},oc=()=>{const{panel:e,data:t}=ie(),n=e.viz,{vizManager:r}=D.useContext(De),i=e.json,l=U.useCreation(()=>r.getOrCreateInstance(i),[r,n.type]),s=U.useCreation(()=>new ai(l,r.resolveComponent(n.type),bn),[l,n.type]);return D.useEffect(()=>l.instanceData.watchItem(null,I.throttle(u=>{e.viz.setConf(u)},100,{leading:!1,trailing:!0})),[l]),{instance:l,vizManager:r,interactionManager:s,sampleData:t,variables:[]}},ac=()=>{const e=oc();return o(ic,{...e})},lc=V.observer(()=>{const{panel:e}=ie(),[t,n]=x.default.useState(e.description),r=e.description!==t,i=x.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($.DeviceFloppy,{size:20})})]}),o(_t.RichTextEditor,{value:t,onChange:n,sx:{flexGrow:1},sticky:!0,p:"0"})]})}),sc=V.observer(()=>{const{panel:e}=ie(),{style:t}=e;return o(H,{children:o(a.Switch,{label:"Border",checked:t.border.enabled,onChange:n=>t.border.setEnabled(n.currentTarget.checked)})})}),uc=V.observer(()=>{const{panel:{title:e,style:{border:t}}}=ie();return o(Le,{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(sr,{})}),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}})]})})}),dc=V.observer(()=>{const{panel:e}=ie(),{title:t,setTitle:n}=e,[r,i]=Z.useInputState(t),l=t!==r,s=x.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($.DeviceFloppy,{size:20})})]}),styles:{label:{display:"block",paddingBottom:"4px"}}})});function cc(){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(sc,{}),o(a.Divider,{label:"Info",labelPosition:"center",variant:"dashed"}),o(dc,{}),o(lc,{})]}),o(a.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:o(uc,{})})]})}const gc=V.observer(function(){const t=Y(),{panel:{queryID:n,setQueryID:r}}=ie(),i=x.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(Jn,{id:n})]})});function li(e,t,n){const r=U.useCreation(()=>new Set,[]),i=e.resolveComponent(t.type),[l,s]=D.useState(!1);return U.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 pc({setVizConf:e,...t}){const{vizManager:n,panel:r}=t,i=n.getOrCreateInstance(r),l=li(n,i,()=>{Dt.showNotification({title:`${r.title} - Updated`,message:"Your plugin configuration has been migrated to the latest version"})});return U.useAsyncEffect(async()=>{await i.instanceData.setItem(null,r.viz.conf)},[i,r.viz.type]),D.useEffect(()=>i.instanceData.watchItem(null,s=>{e(s)}),[e,r.viz.type]),l?o(Ia,{...t}):o(a.Text,{children:"Checking update..."})}function fc(e){const{vizManager:t,panel:n}=e,r=t.getOrCreateInstance(n);return li(t,r,()=>{Dt.showNotification({title:`${n.title} - Updated`,message:"Your plugin configuration has been migrated to the latest version"})})?o(Da,{...e}):o(a.Text,{children:"Checking update"})}const Qg="";function hc(e,t){const{vizManager:n}=D.useContext(De),{panel:{viz:r,title:i,id:l,description:s,queryID:u,style:d}}=ie(),p={title:i,id:l,description:s,queryID:u,viz:r,layout:t,style:d.json};try{return n.resolveComponent(r.type),o(fc,{panel:p,data:e,vizManager:n})}catch(c){return console.info(I.get(c,"message")),null}}const mc=["richText"],si=V.observer(function({height:t,viz:n,data:r,loading:i}){const{ref:l,width:s,height:u}=Z.useElementSize(),d=x.default.useMemo(()=>!Array.isArray(r)||r.length===0,[r]),p=hc(r,{w:s,h:u});return mc.includes(n.type)?o("div",{className:"viz-root",style:{height:t},ref:l,children:o(Le,{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(Le,{children:p})]})}),vc=V.observer(()=>{const{data:e,loading:t,panel:{viz:n}}=ie();return o(si,{viz:n,data:e,loading:t,height:"100%"})}),Cn=[];function yc(){const{vizManager:e}=D.useContext(De);return D.useMemo(()=>e.availableVizList.map(t=>({value:t.name,label:t.displayName})).concat(Cn),[e])}function bc(e,t){try{return e.resolveComponent(t).createConfig()}catch{return null}}function Cc(){const{data:e,panel:{viz:t,title:n,queryID:r,description:i,setDescription:l,setTitle:s,setQueryID:u,id:d,style:p}}=ie(),{vizManager:c}=D.useContext(De),h={title:n,description:i,viz:t,queryID:r,id:d,style:p.json},f={setDescription:l,setQueryID:u,setTitle:s};try{return c.resolveComponent(h.viz.type),o(pc,{setVizConf:t.setConf,panel:h,panelInfoEditor:f,vizManager:c,data:e})}catch(v){return console.info(I.get(v,"message")),null}}const xc=V.observer(()=>{const{data:e,panel:{viz:t}}=ie(),[n,r]=Z.useInputState(t.type),i=t.type!==n,{vizManager:l}=D.useContext(De),s=x.default.useCallback(()=>{if(!i)return;const v=bc(l,n);t.setType(n),t.setConf(v||{})},[t,i,n]),u=v=>{try{t.setConf(JSON.parse(v))}catch(C){console.error(C)}},d=x.default.useMemo(()=>{var v;return(v=Cn.find(C=>C.value===n))==null?void 0:v.Panel},[n,Cn]),p=Cc(),c=d?D.createElement(d,{data:e,conf:t.conf,setConf:t.setConf}):null,h=p||c,f=yc();return g(H,{children:[o(a.Select,{label:"Visualization",value:n,onChange:r,data:f,rightSection:o(a.ActionIcon,{disabled:!i,onClick:s,children:o($.DeviceFloppy,{size:20})})}),h,!h&&o(a.JsonInput,{minRows:20,label:"Config",value:JSON.stringify(t.conf,null,2),onChange:u})]})});function wc(){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(xc,{})}),o(a.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:o(vc,{})})]})}const Sc=V.observer(function({opened:t,close:n}){const{freezeLayout:r}=x.default.useContext(ce),[i,l]=D.useState("Visualization"),{panel:s,loading:u}=ie(),{id:d,title:p}=s;return x.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(gc,{})]}),o(a.Tabs.Panel,{value:"Panel",pt:"sm",children:i==="Panel"&&o(cc,{})}),o(a.Tabs.Panel,{value:"Visualization",pt:"sm",children:i==="Visualization"&&o(wc,{})}),o(a.Tabs.Panel,{value:"Interactions",pt:"sm",children:o(Le,{children:o(ac,{})})})]})})})}),_c=V.observer(({view:e})=>{const t=Y(),n=Se.useModals(),[r,i]=x.default.useState(!1),l=()=>i(!0),s=()=>i(!1),{panel:u}=ie(),{id:d,queryID:p}=u,{inEditMode:c}=x.default.useContext(ce),h=()=>t.queries.refetchDataByQueryID(p),{viewPanelInFullScreen:f,inFullScreen:v}=x.default.useContext(At),C=()=>{e.panels.duplicateByID(d)},y=()=>n.openConfirmModal({title:"Delete this panel?",labels:{confirm:"Confirm",cancel:"Cancel"},onCancel:()=>console.log("Cancel"),onConfirm:()=>e.panels.removeByID(d)}),S=x.default.useCallback(()=>{f(d)},[d,f]);return g(H,{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:h,icon:o($.Refresh,{size:14}),children:"Refresh"}),o(a.Menu.Item,{onClick:()=>t.queries.downloadDataByQueryID(p),icon:o($.Download,{size:14}),children:"Download Data"}),!v&&o(a.Menu.Item,{onClick:S,icon:o($.ArrowsMaximize,{size:14}),children:"Full Screen"}),c&&g(H,{children:[o(a.Divider,{label:"Edit",labelPosition:"center"}),o(a.Menu.Item,{onClick:l,icon:o($.Settings,{size:14}),children:"Settings"}),o(a.Menu.Item,{onClick:C,icon:o($.Copy,{size:14}),children:"Duplicate"}),o(a.Menu.Item,{color:"red",onClick:y,icon:o($.Trash,{size:14}),children:"Delete"})]})]})]})}),c&&o(Sc,{opened:r,close:s})]})}),Xg="",Dc=V.observer(function(){const{panel:t}=ie(),{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 Ic(e){return!["richText"].includes(e)}const Mc={border:"1px solid #ced4da"},ui={border:"1px dashed transparent",transition:"border-color 300ms ease","&:hover":{borderColor:"#ced4da"}};function Vc(e,t,n){return e.style.border.enabled?Mc:n||t?ui:{border:"1px dashed transparent"}}const yt=V.observer(function({panel:t,view:n}){const r=Y(),{inEditMode:i}=D.useContext(ce),{data:l,state:s}=r.getDataStuffByID(t.queryID),u=Ic(t.viz.type),d=u&&s==="loading",p=t.title?"calc(100% - 25px - 5px)":"100%",c=Vc(t,u,i),h=u||i;return o(Qn,{value:{panel:t,data:l,loading:d},children:g(a.Box,{className:"panel-root",p:5,pt:0,sx:{...c},children:[o(a.Box,{sx:{position:"absolute",left:0,top:0,height:28,zIndex:310},children:o(sr,{})}),h&&o(_c,{view:n}),o(Dc,{}),o(si,{viz:t.viz,data:l,loading:d,height:p})]})})}),di=V.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($.ArrowLeft,{size:20}),children:"Exit fullscreen"})}),o(a.Group,{mx:"-5px",grow:!0,sx:{flexGrow:1,flexShrink:0},children:o(yt,{view:t,panel:n})})]})});function ci(e,t,n){const r=e.id==="Main",[i,l]=x.default.useState(()=>r&&e.panels.findByID(t)?t:null),s=x.default.useCallback(c=>{l(c),r&&n(c)},[r,n]),u=x.default.useCallback(()=>{l(null),r&&n("")},[r,n]),d=i?e.panels.findByID(i):null;return{viewPanelInFullScreen:s,exitFullScreen:u,inFullScreen:!!d,fullScreenPanel:d}}function gi(){x.default.useEffect(()=>{const e=ho.default(".dashboard-sticky-area",{useStickyClasses:!0,parentClass:"dashboard-sticky-parent"});return()=>{e==null||e.cleanup()}},[])}const Jg="",Ac=x.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($.ArrowsMove,{size:16})})),Ec=x.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($.ChevronDownRight,{size:16})})),$c=Mt.WidthProvider(Gn.default),Tc=V.observer(function({view:t,className:n="layout",rowHeight:r=10,isDraggable:i,isResizable:l}){const s=x.default.useCallback(u=>{u.forEach(({i:d,...p})=>{const c=t.panels.findByID(d);!c||c.layout.set(p)})},[t]);return o($c,{onLayoutChange:s,className:`dashboard-layout ${n}`,rowHeight:r,layout:t.panels.layouts,isDraggable:i,isResizable:l,draggableHandle:".react-grid-customDragHandle",resizeHandle:o(Ec,{}),children:t.panels.list.map((u,d)=>g("div",{"data-grid":{...u.layout},style:{position:"relative"},children:[i&&o(Ac,{}),o(yt,{view:t,panel:u})]},u.id))})}),Rc=Mt.WidthProvider(Gn.default),Fc=V.observer(function({view:t,className:n="layout",rowHeight:r=10}){return o(Rc,{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(yt,{view:t,panel:i})},i.id))})}),Oc=V.observer(({children:e})=>o(a.Box,{children:e})),Pc=V.observer(({children:e,view:t})=>o(a.Modal,{size:t.config.width,overflow:"inside",opened:!0,onClose:N.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})),kc=V.observer(({view:e,children:t})=>{switch(e.type){case pe.Modal:return o(Pc,{view:e,children:t});case pe.Division:default:return o(Oc,{children:t})}}),pi=V.observer(function({view:t,saveDashboardChanges:n,fullScreenPanelID:r,setFullScreenPanelID:i}){const{viewPanelInFullScreen:l,exitFullScreen:s,inFullScreen:u,fullScreenPanel:d}=ci(t,r,i);return gi(),o(At.Provider,{value:{viewPanelInFullScreen:l,inFullScreen:u},children:g(a.Box,{className:"dashboard-view",mx:-10,sx:{position:"relative",height:"100%"},children:[u&&o(di,{view:t,panel:d,exitFullScreen:s}),!u&&o(lr,{saveChanges:n}),o(kc,{view:t,children:g(a.Box,{className:"dashboard-sticky-parent",children:[o(a.Box,{className:"dashboard-sticky-area",children:o(Yn,{view:t})}),!u&&o(Tc,{view:t,isDraggable:!0,isResizable:!0})]})})]})})}),zc=V.observer(({children:e})=>o(a.Box,{children:e})),Gc=V.observer(({children:e,view:t})=>{const n=Y(),r=n.views.visibleViewIDs.includes(t.id),i=()=>n.views.rmVisibleViewID(t.id);return o(a.Modal,{size:t.config.width,centered:!0,overflow:"inside",opened:r,onClose:i,withCloseButton:!1,title:t.name,trapFocus:!0,onDragStart:l=>{l.stopPropagation()},styles:{modal:{border:"1px solid #efefef"},body:{maxHeight:t.config.height,overflow:"scroll"}},transitionDuration:0,children:e})}),Nc=V.observer(({view:e,children:t})=>{switch(e.type){case pe.Modal:return o(Gc,{view:e,children:t});case pe.Division:default:return o(zc,{children:t})}}),fi=V.observer(function({view:t,fullScreenPanelID:n,setFullScreenPanelID:r}){const{viewPanelInFullScreen:i,exitFullScreen:l,inFullScreen:s,fullScreenPanel:u}=ci(t,n,r);return gi(),o(At.Provider,{value:{viewPanelInFullScreen:i,inFullScreen:s},children:g(a.Box,{className:"dashboard-view",mx:-10,sx:{position:"relative",height:"100%"},children:[s&&o(di,{view:t,panel:u,exitFullScreen:l}),!s&&o(lr,{saveChanges:N.default.noop}),o(Nc,{view:t,children:g(a.Box,{className:"dashboard-sticky-parent",children:[o(a.Box,{className:"dashboard-sticky-area",children:o(Yn,{view:t})}),!s&&o(Fc,{view:t})]})})]})})}),hi=b.types.model({label:b.types.string,value:b.types.string}).actions(e=>({setLabel(t){e.label=t},setValue(t){e.value=t}})),mi=b.types.model("FilterConfigModel_Select",{required:b.types.boolean,default_value:b.types.string,static_options:b.types.optional(b.types.array(hi),[]),options_query:er}).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}})),Lc=()=>mi.create({required:!1,default_value:"",static_options:[],options_query:{type:we.Postgresql,key:"",sql:""}}),vi=b.types.model("FilterConfigModel_MultiSelect",{default_value:b.types.optional(b.types.array(b.types.string),[]),static_options:b.types.optional(b.types.array(hi),[]),options_query:er}).actions(e=>({addStaticOption(t){e.static_options.push(t)},removeStaticOption(t){e.static_options.splice(t,1)},setDefaultValue(t){e.default_value=b.cast(t)},setOptionsQuery(t){e.options_query=t}})),qc=()=>vi.create({default_value:[],static_options:[],options_query:{type:we.Postgresql,key:"",sql:""}}),yi=b.types.model("FilterConfigModel_Checkbox",{default_value:b.types.boolean}).actions(e=>({setDefaultValue(t){e.default_value=t}})),Bc=()=>yi.create({default_value:!1}),jc=b.types.model("FilterConfigModel_DateRange",{required:b.types.boolean,inputFormat:b.types.enumeration("DateRangeInputFormat",["YYYY","YYYYMM","YYYYMMDD","YYYY-MM","YYYY-MM-DD"]),default_value:b.types.optional(b.types.array(b.types.union(b.types.string,b.types.null)),[null,null]),clearable:b.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)}})),bi=b.types.snapshotProcessor(jc,{preProcessor({default_value:e,...t}){return{...t,default_value:e.map(n=>n===null?null:Ve.default.tz(n,"UTC").toISOString())}},postProcessor({default_value:e,...t}){return{...t,default_value:e.map(n=>{try{return n?Ve.default.tz(n,"UTC").format(t.inputFormat):null}catch{return console.log(`[date-range] failed parsing ${n}`),null}})}}}),Uc=()=>bi.create({required:!1,inputFormat:"YYYY-MM-DD",clearable:!1,default_value:[null,null]}),xn=b.types.model("FilterModel",{id:b.types.identifier,key:b.types.string,label:b.types.string,order:b.types.number,visibleInViewsIDs:b.types.array(b.types.string),type:b.types.enumeration("DashboardFilterType",[ge.Select,ge.MultiSelect,ge.TextInput,ge.Checkbox,ge.DateRange]),config:b.types.union(mi,vi,tr,yi,bi)}).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 ge.Select:e.config=Lc();break;case ge.MultiSelect:e.config=qc();break;case ge.TextInput:e.config=nr();break;case ge.Checkbox:e.config=Bc();break;case ge.DateRange:e.config=Uc();break}e.type=t},setVisibleInViewsIDs(t){e.visibleInViewsIDs.length=0,e.visibleInViewsIDs.push(...t)}}));function Wc(e,t){if(e===void 0)return e;if(Array.isArray(e))try{return e.map(n=>{const r=Ve.default.tz(n,"UTC").format(t.inputFormat);return r!=null?r:n})}catch(n){return console.error(n),e}return e}function Ci(e){return e.reduce((t,n)=>(t[n.key]=Wc(n.config.default_value,n.config),t),{})}const xi=b.types.model("FiltersModel",{original:b.types.optional(b.types.array(xn),[]),current:b.types.optional(b.types.array(xn),[]),values:b.types.optional(b.types.frozen(),{})}).views(e=>({get changed(){return!N.default.isEqual(e.original,e.current)},get firstID(){if(e.current.length!==0)return e.current[0].id},get inOrder(){return N.default.sortBy(e.current,"order")},get empty(){return e.current.length===0},visibleInView(t){return N.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("__")},get firstFilterValueKey(){var t;return(t=Object.keys(e.values)[0])!=null?t:""}})).actions(e=>({reset(){e.current=N.default.cloneDeep(e.original)},replace(t){e.current=b.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},setValues(t){e.values=t},setValueByKey(t,n){e.values={...e.values,[t]:n}},getValueByKey(t){return e.values[t]},refreshValues(){console.log("refreshing values");const t=Ci(e.current);e.values=t}})).actions(e=>({afterCreate(){b.addDisposer(e,ee.reaction(()=>e.triggerForRefreshValues,e.refreshValues,{fireImmediately:!0,delay:0}))}}));function wi(e){return{original:e,current:e,values:Ci(e)}}var wn={exports:{}};(function(e,t){(function(n,r){r()})(ze,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,h){var f=new XMLHttpRequest;f.open("GET",p),f.responseType="blob",f.onload=function(){d(f.response,c,h)},f.onerror=function(){console.error("could not download file")},f.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 ze=="object"&&ze.global===ze?ze: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,h){var f=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,h):l(v,v.target="_blank")):(v.href=f.createObjectURL(p),setTimeout(function(){f.revokeObjectURL(v.href)},4e4),setTimeout(function(){l(v)},0))}:"msSaveOrOpenBlob"in navigator?function(p,c,h){if(c=c||p.name||"download",typeof p!="string")navigator.msSaveOrOpenBlob(n(p,h),c);else if(i(p))r(p,c,h);else{var f=document.createElement("a");f.href=p,f.target="_blank",setTimeout(function(){l(f)})}}:function(p,c,h,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof p=="string")return r(p,c,h);var v=p.type==="application/octet-stream",C=/constructor/i.test(s.HTMLElement)||s.safari,y=/CriOS\/[\d]+/.test(navigator.userAgent);if((y||v&&C||u)&&typeof FileReader<"u"){var S=new FileReader;S.onloadend=function(){var F=S.result;F=y?F:F.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=F:location=F,f=null},S.readAsDataURL(p)}else{var E=s.URL||s.webkitURL,T=E.createObjectURL(p);f?f.location=T:location.href=T,f=null,setTimeout(function(){E.revokeObjectURL(T)},4e4)}});s.saveAs=d.saveAs=d,e.exports=d})})(wn);function Yc(e,t){const n=new Blob([t],{type:"text/csv"});wn.exports.saveAs(n,`${e}.csv`)}function Hc(e){const t=new mo.default;e.forEach(({id:n,data:r})=>{t.file(`${n}.csv`,Si(r))}),t.generateAsync({type:"blob"}).then(n=>{wn.exports.saveAs(n,"dashboard_data.zip")})}function Si(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 _i=b.types.model("QueryModel",{id:b.types.string,type:b.types.enumeration("DataSourceType",[we.Postgresql,we.MySQL,we.HTTP]),key:b.types.string,sql:b.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}}})),Di=b.types.compose("QueryModel",_i,b.types.model({state:b.types.optional(b.types.enumeration(["idle","loading","error"]),"idle"),data:b.types.optional(b.types.array(b.types.frozen()),[]),error:b.types.frozen()})).views(e=>({get formattedSQL(){const{context:t,sqlSnippets:n,filterValues:r}=b.getRoot(e).payloadForSQL;return Un(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:b.flow(function*(){if(!!e.valid){e.state="loading";try{const t=e.id,{context:n,sqlSnippets:r,filterValues:i}=b.getRoot(e).payloadForSQL;e.data=yield*b.toGenerator(wo({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(){b.addDisposer(e,ee.reaction(()=>`${e.id}--${e.key}--${e.type}--${e.formattedSQL}`,e.fetchData,{fireImmediately:!0,delay:500}))}})),Ii=b.types.model("QueriesModel",{original:b.types.optional(b.types.array(_i),[]),current:b.types.optional(b.types.array(Di),[])}).views(e=>({get changed(){return e.original.length!==e.current.length?!0:e.original.some((t,n)=>!N.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=b.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()}));Hc(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=Si(i);Yc(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=b.types.model("SQLSnippetModel",{key:b.types.string,value:b.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}})),Mi=b.types.model("SQLSnippetsModel",{original:b.types.optional(b.types.array(Sn),[]),current:b.types.optional(b.types.array(Sn),[])}).views(e=>({get changed(){return!N.default.isEqual(e.original,e.current)},get json(){return e.current.map(t=>t.json)}})).actions(e=>({reset(){e.current=N.default.cloneDeep(e.original)},replace(t){e.current=b.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},replaceByIndex(t,n){e.current.splice(t,1,n)}})),Vi=b.types.model("ContextModel",{current:b.types.optional(b.types.frozen(),{})}).views(e=>({get keys(){return Object.keys(e.current)},get entries(){return Object.entries(e.current)}})).actions(e=>({replace(t){e.current=t},get(t){return e.current[t]},set(t,n){e.current[t]=n}})),Qc=b.types.model("PanelLayoutModel",{x:b.types.number,y:b.types.number,w:b.types.number,h:b.types.number,moved:b.types.optional(b.types.boolean,!1),static:b.types.optional(b.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}})),Xc=b.types.model("PanelStyleBorderModel",{enabled:b.types.boolean}).views(e=>({get json(){const{enabled:t}=e;return{enabled:t}}})).actions(e=>({setEnabled(t){e.enabled=t}})),Jc=b.types.model("PanelStyleModel",{border:Xc}).views(e=>({get json(){const{border:t}=e;return{border:t.json}}})).actions(e=>({})),Kc=b.types.model("PanelVizModel",{type:b.types.string,conf:b.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}})),Zc=b.types.model({id:b.types.string,title:b.types.string,description:b.types.string,layout:Qc,queryID:b.types.string,viz:Kc,style:Jc}).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=>({})),eg=b.types.model("PanelsModel",{list:b.types.optional(b.types.array(Zc),[])}).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=b.cast(t)},addANewPanel(){const t=Z.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:un.name,conf:un.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:Z.randomId(),layout:{...n.layout,x:0,y:1/0,moved:!1}})},replaceByIndex(t,n){e.list.splice(t,1,n)}})),_n=b.types.model({id:b.types.identifier,name:b.types.string,type:b.types.string,config:b.types.frozen(),panels:eg}).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===pe.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=>({})),Dn=b.types.model("ViewsModel",{original:b.types.optional(b.types.array(_n),[]),current:b.types.optional(b.types.array(_n),[]),visibleViewIDs:b.types.array(b.types.string),idOfVIE:b.types.string}).views(e=>({get changed(){return e.original.length!==e.current.length?!0:e.original.some((t,n)=>!N.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=b.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()},appendToVisibles(t){new Set(e.visibleViewIDs.map(r=>r)).has(t)||e.visibleViewIDs.push(t)}})).actions(e=>({addARandomNewView(){const t=Z.randomId();e.addANewView(t,pe.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 Ai(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 Dn.create({original:r,current:r,visibleViewIDs:t,idOfVIE:n})}const tg=b.types.model({id:b.types.identifier,name:b.types.string,filters:xi,queries:Ii,sqlSnippets:Mi,views:Dn,context:Vi}).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 tg.create({id:e,name:t,filters:wi(n),queries:{original:i,current:i},sqlSnippets:{original:l,current:l},context:s,views:Ai(r)})}const Kg="",ng=V.observer(function({context:t,dashboard:n,update:r,className:i="dashboard",config:l,fullScreenPanelID:s,setFullScreenPanelID:u}){Ge.baseURL!==l.apiBaseURL&&(Ge.baseURL=l.apiBaseURL);const[d,p]=x.default.useState(!1),c=x.default.useMemo(()=>In(n,t),[n]);Nn(c,!0),x.default.useEffect(()=>{c.context.replace(t)},[t]);const h=async()=>{const v=[...c.queries.json],C=[...c.sqlSnippets.json],y=[...c.views.json],S={...n,filters:[...c.filters.current],views:y,definition:{sqlSnippets:C,queries:v}};await r(S)},f=U.useCreation(ii,[]);return o(Se.ModalsProvider,{children:o(Et,{value:c,children:o(ce.Provider,{value:{layoutFrozen:d,freezeLayout:p,inEditMode:!0,inUseMode:!1},children:o(a.Box,{className:`${i} dashboard-root`,sx:{position:"relative"},children:o(De.Provider,{value:f,children:c.views.visibleViews.map(v=>o(pi,{view:v,saveDashboardChanges:h,fullScreenPanelID:s,setFullScreenPanelID:u},v.id))})})})})})}),rg=V.observer(({context:e,dashboard:t,className:n="dashboard",config:r,fullScreenPanelID:i,setFullScreenPanelID:l})=>{Ge.baseURL!==r.apiBaseURL&&(Ge.baseURL=r.apiBaseURL);const s=x.default.useMemo(()=>In(t,e),[t]);return Nn(s,!1),x.default.useEffect(()=>{s.context.replace(e)},[e]),o(Se.ModalsProvider,{children:o(Et,{value:s,children:o(ce.Provider,{value:{layoutFrozen:!0,freezeLayout:N.default.noop,inEditMode:!1,inUseMode:!0},children:o(a.Box,{className:`${n} dashboard-root dashboard-sticky-parent`,children:s.views.visibleViews.map(u=>o(fi,{view:u,fullScreenPanelID:i,setFullScreenPanelID:l},u.id))})})})})});var Ei={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(ze,function(){var n={year:0,month:1,day:2,hour:3,minute:4,second:5},r={};return function(i,l,s){var u,d=function(f,v,C){C===void 0&&(C={});var y=new Date(f),S=function(E,T){T===void 0&&(T={});var F=T.timeZoneName||"short",k=E+"|"+F,q=r[k];return q||(q=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:E,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:F}),r[k]=q),q}(v,C);return S.formatToParts(y)},p=function(f,v){for(var C=d(f,v),y=[],S=0;S<C.length;S+=1){var E=C[S],T=E.type,F=E.value,k=n[T];k>=0&&(y[k]=parseInt(F,10))}var q=y[3],ne=q===24?0:q,K=y[0]+"-"+y[1]+"-"+y[2]+" "+ne+":"+y[4]+":"+y[5]+":000",he=+f;return(s.utc(K).valueOf()-(he-=he%1e3))/6e4},c=l.prototype;c.tz=function(f,v){f===void 0&&(f=u);var C=this.utcOffset(),y=this.toDate(),S=y.toLocaleString("en-US",{timeZone:f}),E=Math.round((y-new Date(S))/1e3/60),T=s(S).$set("millisecond",this.$ms).utcOffset(15*-Math.round(y.getTimezoneOffset()/15)-E,!0);if(v){var F=T.utcOffset();T=T.add(C-F,"minute")}return T.$x.$timezone=f,T},c.offsetName=function(f){var v=this.$x.$timezone||s.tz.guess(),C=d(this.valueOf(),v,{timeZoneName:f}).find(function(y){return y.type.toLowerCase()==="timezonename"});return C&&C.value};var h=c.startOf;c.startOf=function(f,v){if(!this.$x||!this.$x.$timezone)return h.call(this,f,v);var C=s(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return h.call(C,f,v).tz(this.$x.$timezone,!0)},s.tz=function(f,v,C){var y=C&&v,S=C||v||u,E=p(+s(),S);if(typeof f!="string")return s(f).tz(S);var T=function(ne,K,he){var ae=ne-60*K*1e3,be=p(ae,he);if(K===be)return[ae,K];var re=p(ae-=60*(be-K)*1e3,he);return be===re?[ae,be]:[ne-60*Math.min(be,re)*1e3,Math.max(be,re)]}(s.utc(f,y).valueOf(),E,S),F=T[0],k=T[1],q=s(F).utcOffset(k);return q.$x.$timezone=S,q},s.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},s.tz.setDefault=function(f){u=f}}})})(Ei);const ig=Ei.exports;var $i={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(ze,function(){var n="minute",r=/[+-]\d\d(?::?\d\d)?/g,i=/([+-]|\d\d)/g;return function(l,s,u){var d=s.prototype;u.utc=function(y){var S={date:y,utc:!0,args:arguments};return new s(S)},d.utc=function(y){var S=u(this.toDate(),{locale:this.$L,utc:!0});return y?S.add(this.utcOffset(),n):S},d.local=function(){return u(this.toDate(),{locale:this.$L,utc:!1})};var p=d.parse;d.parse=function(y){y.utc&&(this.$u=!0),this.$utils().u(y.$offset)||(this.$offset=y.$offset),p.call(this,y)};var c=d.init;d.init=function(){if(this.$u){var y=this.$d;this.$y=y.getUTCFullYear(),this.$M=y.getUTCMonth(),this.$D=y.getUTCDate(),this.$W=y.getUTCDay(),this.$H=y.getUTCHours(),this.$m=y.getUTCMinutes(),this.$s=y.getUTCSeconds(),this.$ms=y.getUTCMilliseconds()}else c.call(this)};var h=d.utcOffset;d.utcOffset=function(y,S){var E=this.$utils().u;if(E(y))return this.$u?0:E(this.$offset)?h.call(this):this.$offset;if(typeof y=="string"&&(y=function(q){q===void 0&&(q="");var ne=q.match(r);if(!ne)return null;var K=(""+ne[0]).match(i)||["-",0,0],he=K[0],ae=60*+K[1]+ +K[2];return ae===0?0:he==="+"?ae:-ae}(y),y===null))return this;var T=Math.abs(y)<=16?60*y:y,F=this;if(S)return F.$offset=T,F.$u=y===0,F;if(y!==0){var k=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(F=this.local().add(T+k,n)).$offset=T,F.$x.$localOffset=k}else F=this.utc();return F};var f=d.format;d.format=function(y){var S=y||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return f.call(this,S)},d.valueOf=function(){var y=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*y},d.isUTC=function(){return!!this.$u},d.toISOString=function(){return this.toDate().toISOString()},d.toString=function(){return this.toDate().toUTCString()};var v=d.toDate;d.toDate=function(y){return y==="s"&&this.$offset?u(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():v.call(this)};var C=d.diff;d.diff=function(y,S,E){if(y&&this.$u===y.$u)return C.call(this,y,S,E);var T=this.local(),F=u(y).local();return C.call(T,F,S,E)}}})})($i);const og=$i.exports;Ve.default.extend(og),Ve.default.extend(ig),Ve.default.tz.setDefault("UTC"),A.ContextModel=Vi,A.Dashboard=ng,A.DashboardFilterType=or,A.DashboardMode=ir,A.EViewComponentType=pe,A.FilterModel=xn,A.FiltersModel=xi,A.LayoutStateContext=ce,A.MainDashboardView=pi,A.ModelContextProvider=Et,A.Panel=yt,A.PanelContextProvider=Qn,A.QueriesModel=Ii,A.QueryModel=Di,A.ReadOnlyDashboard=rg,A.ReadOnlyDashboardView=fi,A.SQLSnippetModel=Sn,A.SQLSnippetsModel=Mi,A.ViewModel=_n,A.ViewsModel=Dn,A.createDashboardModel=In,A.createDashboardViewsModel=Ai,A.getInitialFiltersPayload=wi,A.useModelContext=Y,A.usePanelContext=ie,Object.defineProperties(A,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|