@devtable/dashboard 6.6.0 → 6.8.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 +4061 -3833
- package/dist/dashboard.umd.js +19 -18
- package/dist/definition-editor/minimal-monaco-editor.d.ts +9 -0
- package/dist/definition-editor/query-editor/editor.d.ts +0 -1
- package/dist/definition-editor/query-editor/form.d.ts +0 -1
- package/dist/definition-editor/sql-snippet-editor/item-editor.d.ts +11 -0
- package/dist/main/use-panel-full-screen.d.ts +16 -36
- package/dist/model/queries/index.d.ts +21 -45
- package/dist/model/queries/mute-query.d.ts +3 -1
- package/dist/model/queries/query.d.ts +6 -10
- package/dist/model/sql-snippets/index.d.ts +27 -0
- package/dist/model/sql-snippets/sql-snippet.d.ts +1 -0
- package/dist/model/sql-snippets/types.d.ts +3 -0
- package/dist/model/views/view/index.d.ts +72 -162
- package/dist/model/views/view/panels/index.d.ts +24 -54
- package/dist/model/views/view/panels/panel.d.ts +8 -18
- package/dist/plugins/plugin-context.d.ts +16 -36
- package/dist/plugins/viz-components/cartesian/panel/scatter-size-select/dynamic-size-function-editor.d.ts +8 -0
- package/dist/plugins/viz-components/cartesian/panel/scatter-size-select/dynamic.d.ts +9 -0
- package/dist/plugins/viz-components/cartesian/panel/scatter-size-select/get-echarts-symbol-size.d.ts +3 -0
- package/dist/plugins/viz-components/cartesian/panel/scatter-size-select/index.d.ts +11 -0
- package/dist/plugins/viz-components/cartesian/panel/scatter-size-select/static.d.ts +8 -0
- package/dist/plugins/viz-components/cartesian/panel/scatter-size-select/types.d.ts +13 -0
- package/dist/plugins/viz-components/cartesian/panel/series/fields.scatter.d.ts +3 -1
- package/dist/plugins/viz-components/cartesian/type.d.ts +2 -1
- package/dist/style.css +1 -1
- package/dist/types/dashboard.d.ts +2 -2
- package/package.json +2 -1
package/dist/dashboard.umd.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(E,s){typeof exports=="object"&&typeof module<"u"?s(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("jszip"),require("@mantine/prism"),require("@mantine/notifications"),require("axios"),require("crypto-js"),require("mobx-state-tree"),require("@mantine/hooks"),require("@monaco-editor/react"),require("@mantine/rte"),require("mobx"),require("eventemitter2"),require("chroma-js"),require("echarts-gl"),require("echarts/core"),require("echarts/components"),require("echarts/renderers"),require("echarts-for-react/lib/core"),require("echarts/charts"),require("numbro"),require("d3-array"),require("echarts-stat"),require("@mantine/form"),require("d3-regression"),require("react-virtual"),require("stickybits"),require("react-grid-layout")):typeof define=="function"&&define.amd?define(["exports","@mantine/core","@mantine/modals","ahooks","mobx-react-lite","react","lodash","react-hook-form","@mantine/dates","dayjs","tabler-icons-react","jszip","@mantine/prism","@mantine/notifications","axios","crypto-js","mobx-state-tree","@mantine/hooks","@monaco-editor/react","@mantine/rte","mobx","eventemitter2","chroma-js","echarts-gl","echarts/core","echarts/components","echarts/renderers","echarts-for-react/lib/core","echarts/charts","numbro","d3-array","echarts-stat","@mantine/form","d3-regression","react-virtual","stickybits","react-grid-layout"],s):(E=typeof globalThis<"u"?globalThis:E||self,s(E.dashboard={},E["@mantine/core"],E["@mantine/modals"],E.ahooks,E["mobx-react-lite"],E.React,E._,E["react-hook-form"],E["@mantine/dates"],E.dayjs,E["tabler-icons-react"],E.jszip,E["@mantine/prism"],E["@mantine/notifications"],E.axios,E["crypto-js"],E["mobx-state-tree"],E["@mantine/hooks"],E["@monaco-editor/react"],E["@mantine/rte"],E.mobx,E.eventemitter2,E["chroma-js"],E["echarts-gl"],E["echarts/core"],E["echarts/components"],E["echarts/renderers"],E["echarts-for-react/lib/core"],E["echarts/charts"],E.numbro,E["d3-array"],E["echarts-stat"],E["@mantine/form"],E["d3-regression"],E["react-virtual"],E.stickybits,E["react-grid-layout"]))})(this,function(E,s,_e,W,I,x,w,_,Da,Ia,V,Va,Le,at,Ea,ka,y,ie,Ta,Rt,Z,Aa,Ra,sf,$a,H,Ve,Fa,xe,za,Oa,Hn,$t,Pa,Na,Ga,Ft){"use strict";var af=Object.defineProperty;var of=(E,s,_e)=>s in E?af(E,s,{enumerable:!0,configurable:!0,writable:!0,value:_e}):E[s]=_e;var R=(E,s,_e)=>(of(E,typeof s!="symbol"?s+"":s,_e),_e);const se=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function zt(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 M=se(x),Qn=zt(x),U=se(w),Ee=se(Ia),La=se(Va),Jn=se(Ea),qa=se(ka),Xn=se(Ta),Kn=se(Rt),Zn=se(Aa),Ye=se(Ra),te=zt($a),ke=se(Fa),ge=se(za),Te=zt(Pa),Ba=se(Ga),er=se(Ft);function tr(e,t){x.useEffect(()=>{const n=r=>{console.log(r);const{viewID:a}=r.detail;if(!a){console.error(new Error("[Open View] Needs to pick a view first"));return}e.views.appendToVisibles(a),t&&e.views.setIDOfVIE(a)};return window.addEventListener("open-view",n),()=>{window.removeEventListener("open-view",n)}},[e,t]),x.useEffect(()=>{const n=r=>{console.log(r);const{dictionary:a,payload:o}=r.detail;if(!o||Object.keys(o).length===0){console.error(new Error("[Set Filter Values] payload is empty"));return}Object.entries(a).forEach(([l,u])=>{e.filters.setValueByKey(l,U.default.get(o,u))})};return window.addEventListener("set-filter-values",n),()=>{window.removeEventListener("set-filter-values",n)}},[e]),x.useEffect(()=>{const n=r=>{console.log(r);const{urlTemplate:a,openInNewTab:o,enableEncoding:l=!1,payload:u}=r.detail;if(!a){console.error(new Error("[Open Link] URL is empty"));return}function c(f){return w.cloneDeepWith(f,v=>{if(l&&typeof v=="string")return encodeURIComponent(v)})}const d=w.template(a||"")(c({...u,filters:e.filters.values,context:e.context.current}));window.open(d,o?"_blank":"_self","noopener")};return window.addEventListener("open-link",n),()=>{window.removeEventListener("open-link",n)}},[e])}class ja{constructor(t){R(this,"symbol");this.symbol=Symbol(t)}}function Me(e){return new ja(e)}class Ot{constructor(){R(this,"parent");R(this,"factoryRegistry",new Map);R(this,"instanceRegistry",new Map)}createScoped(){const t=new Ot;return t.parent=this,t}getRequired(t){return this.get(t)}get(t){if(this.instanceRegistry.has(t.symbol))return this.instanceRegistry.get(t.symbol);const n=this.factoryRegistry.get(t.symbol);if(n){const r=n(this);return this.instanceRegistry.set(t.symbol,r),r}if(this.parent)return this.parent.get(t)}provideFactory(t,n){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,n),this}provideValue(t,n){return this.factoryRegistry.has(t.symbol)?console.warn(`Token ${t.symbol.toString()} is already registered`):this.factoryRegistry.set(t.symbol,()=>n),this}dispose(){this.instanceRegistry.forEach(t=>{const n=w.get(t,"dispose");w.isFunction(n)&&n.bind(t)()}),this.instanceRegistry.clear(),this.factoryRegistry.clear()}}var Ne=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ot={exports:{}},He={};/**
|
|
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
|
|
9
|
+
*/var nr;function Wa(){if(nr)return He;nr=1;var e=M.default,t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,a=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function l(u,c,g){var d,f={},h=null,v=null;g!==void 0&&(h=""+g),c.key!==void 0&&(h=""+c.key),c.ref!==void 0&&(v=c.ref);for(d in c)r.call(c,d)&&!o.hasOwnProperty(d)&&(f[d]=c[d]);if(u&&u.defaultProps)for(d in c=u.defaultProps,c)f[d]===void 0&&(f[d]=c[d]);return{$$typeof:t,type:u,key:h,ref:v,props:f,_owner:a.current}}return He.Fragment=n,He.jsx=l,He.jsxs=l,He}var Qe={};/**
|
|
10
10
|
* @license React
|
|
11
11
|
* react-jsx-runtime.development.js
|
|
12
12
|
*
|
|
@@ -14,18 +14,18 @@
|
|
|
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
|
|
18
|
-
`+
|
|
17
|
+
*/var rr;function Ua(){return rr||(rr=1,process.env.NODE_ENV!=="production"&&function(){var e=M.default,t=Symbol.for("react.element"),n=Symbol.for("react.portal"),r=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),u=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),d=Symbol.for("react.suspense_list"),f=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),v=Symbol.for("react.offscreen"),C=Symbol.iterator,b="@@iterator";function S(m){if(m===null||typeof m!="object")return null;var D=C&&m[C]||m[b];return typeof D=="function"?D:null}var T=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function A(m){{for(var D=arguments.length,k=new Array(D>1?D-1:0),$=1;$<D;$++)k[$-1]=arguments[$];F("error",m,k)}}function F(m,D,k){{var $=T.ReactDebugCurrentFrame,L=$.getStackAddendum();L!==""&&(D+="%s",k=k.concat([L]));var Y=k.map(function(N){return String(N)});Y.unshift("Warning: "+D),Function.prototype.apply.call(console[m],console,Y)}}var O=!1,q=!1,ae=!1,ne=!1,me=!1,ue;ue=Symbol.for("react.module.reference");function Ce(m){return!!(typeof m=="string"||typeof m=="function"||m===r||m===o||me||m===a||m===g||m===d||ne||m===v||O||q||ae||typeof m=="object"&&m!==null&&(m.$$typeof===h||m.$$typeof===f||m.$$typeof===l||m.$$typeof===u||m.$$typeof===c||m.$$typeof===ue||m.getModuleId!==void 0))}function re(m,D,k){var $=m.displayName;if($)return $;var L=D.displayName||D.name||"";return L!==""?k+"("+L+")":k}function we(m){return m.displayName||"Context"}function ce(m){if(m==null)return null;if(typeof m.tag=="number"&&A("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 o:return"Profiler";case a:return"StrictMode";case g:return"Suspense";case d:return"SuspenseList"}if(typeof m=="object")switch(m.$$typeof){case u:var D=m;return we(D)+".Consumer";case l:var k=m;return we(k._context)+".Provider";case c:return re(m,m.render,"ForwardRef");case f:var $=m.displayName||null;return $!==null?$:ce(m.type)||"Memo";case h:{var L=m,Y=L._payload,N=L._init;try{return ce(N(Y))}catch{return null}}}return null}var de=Object.assign,Pe=0,ia,aa,oa,sa,la,ua,ca;function da(){}da.__reactDisabledLog=!0;function Rp(){{if(Pe===0){ia=console.log,aa=console.info,oa=console.warn,sa=console.error,la=console.group,ua=console.groupCollapsed,ca=console.groupEnd;var m={configurable:!0,enumerable:!0,value:da,writable:!0};Object.defineProperties(console,{info:m,log:m,warn:m,error:m,group:m,groupCollapsed:m,groupEnd:m})}Pe++}}function $p(){{if(Pe--,Pe===0){var m={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:de({},m,{value:ia}),info:de({},m,{value:aa}),warn:de({},m,{value:oa}),error:de({},m,{value:sa}),group:de({},m,{value:la}),groupCollapsed:de({},m,{value:ua}),groupEnd:de({},m,{value:ca})})}Pe<0&&A("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Gn=T.ReactCurrentDispatcher,Ln;function Vt(m,D,k){{if(Ln===void 0)try{throw Error()}catch(L){var $=L.stack.trim().match(/\n( *(at )?)/);Ln=$&&$[1]||""}return`
|
|
18
|
+
`+Ln+m}}var qn=!1,Et;{var Fp=typeof WeakMap=="function"?WeakMap:Map;Et=new Fp}function ga(m,D){if(!m||qn)return"";{var k=Et.get(m);if(k!==void 0)return k}var $;qn=!0;var L=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var Y;Y=Gn.current,Gn.current=null,Rp();try{if(D){var N=function(){throw Error()};if(Object.defineProperty(N.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(N,[])}catch(Ie){$=Ie}Reflect.construct(m,[],N)}else{try{N.call()}catch(Ie){$=Ie}m.call(N.prototype)}}else{try{throw Error()}catch(Ie){$=Ie}m()}}catch(Ie){if(Ie&&$&&typeof Ie.stack=="string"){for(var P=Ie.stack.split(`
|
|
19
19
|
`),oe=$.stack.split(`
|
|
20
20
|
`),J=P.length-1,K=oe.length-1;J>=1&&K>=0&&P[J]!==oe[K];)K--;for(;J>=1&&K>=0;J--,K--)if(P[J]!==oe[K]){if(J!==1||K!==1)do if(J--,K--,K<0||P[J]!==oe[K]){var ve=`
|
|
21
|
-
`+P[J].replace(" at new "," at ");return m.displayName&&ve.includes("<anonymous>")&&(ve=ve.replace("<anonymous>",m.displayName)),typeof m=="function"&&
|
|
21
|
+
`+P[J].replace(" at new "," at ");return m.displayName&&ve.includes("<anonymous>")&&(ve=ve.replace("<anonymous>",m.displayName)),typeof m=="function"&&Et.set(m,ve),ve}while(J>=1&&K>=0);break}}}finally{qn=!1,Gn.current=Y,$p(),Error.prepareStackTrace=L}var Ue=m?m.displayName||m.name:"",Ma=Ue?Vt(Ue):"";return typeof m=="function"&&Et.set(m,Ma),Ma}function zp(m,D,k){return ga(m,!1)}function Op(m){var D=m.prototype;return!!(D&&D.isReactComponent)}function kt(m,D,k){if(m==null)return"";if(typeof m=="function")return ga(m,Op(m));if(typeof m=="string")return Vt(m);switch(m){case g:return Vt("Suspense");case d:return Vt("SuspenseList")}if(typeof m=="object")switch(m.$$typeof){case c:return zp(m.render);case f:return kt(m.type,D,k);case h:{var $=m,L=$._payload,Y=$._init;try{return kt(Y(L),D,k)}catch{}}}return""}var Tt=Object.prototype.hasOwnProperty,pa={},fa=T.ReactDebugCurrentFrame;function At(m){if(m){var D=m._owner,k=kt(m.type,m._source,D?D.type:null);fa.setExtraStackFrame(k)}else fa.setExtraStackFrame(null)}function Pp(m,D,k,$,L){{var Y=Function.call.bind(Tt);for(var N in m)if(Y(m,N)){var P=void 0;try{if(typeof m[N]!="function"){var oe=Error(($||"React class")+": "+k+" type `"+N+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof m[N]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw oe.name="Invariant Violation",oe}P=m[N](D,N,$,k,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(J){P=J}P&&!(P instanceof Error)&&(At(L),A("%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).",$||"React class",k,N,typeof P),At(null)),P instanceof Error&&!(P.message in pa)&&(pa[P.message]=!0,At(L),A("Failed %s type: %s",k,P.message),At(null))}}}var Np=Array.isArray;function Bn(m){return Np(m)}function Gp(m){{var D=typeof Symbol=="function"&&Symbol.toStringTag,k=D&&m[Symbol.toStringTag]||m.constructor.name||"Object";return k}}function Lp(m){try{return ha(m),!1}catch{return!0}}function ha(m){return""+m}function ma(m){if(Lp(m))return A("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Gp(m)),ha(m)}var it=T.ReactCurrentOwner,qp={key:!0,ref:!0,__self:!0,__source:!0},va,ya,jn;jn={};function Bp(m){if(Tt.call(m,"ref")){var D=Object.getOwnPropertyDescriptor(m,"ref").get;if(D&&D.isReactWarning)return!1}return m.ref!==void 0}function jp(m){if(Tt.call(m,"key")){var D=Object.getOwnPropertyDescriptor(m,"key").get;if(D&&D.isReactWarning)return!1}return m.key!==void 0}function Wp(m,D){if(typeof m.ref=="string"&&it.current&&D&&it.current.stateNode!==D){var k=ce(it.current.type);jn[k]||(A('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',ce(it.current.type),m.ref),jn[k]=!0)}}function Up(m,D){{var k=function(){va||(va=!0,A("%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)",D))};k.isReactWarning=!0,Object.defineProperty(m,"key",{get:k,configurable:!0})}}function Yp(m,D){{var k=function(){ya||(ya=!0,A("%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)",D))};k.isReactWarning=!0,Object.defineProperty(m,"ref",{get:k,configurable:!0})}}var Hp=function(m,D,k,$,L,Y,N){var P={$$typeof:t,type:m,key:D,ref:k,props:N,_owner:Y};return P._store={},Object.defineProperty(P._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(P,"_self",{configurable:!1,enumerable:!1,writable:!1,value:$}),Object.defineProperty(P,"_source",{configurable:!1,enumerable:!1,writable:!1,value:L}),Object.freeze&&(Object.freeze(P.props),Object.freeze(P)),P};function Qp(m,D,k,$,L){{var Y,N={},P=null,oe=null;k!==void 0&&(ma(k),P=""+k),jp(D)&&(ma(D.key),P=""+D.key),Bp(D)&&(oe=D.ref,Wp(D,L));for(Y in D)Tt.call(D,Y)&&!qp.hasOwnProperty(Y)&&(N[Y]=D[Y]);if(m&&m.defaultProps){var J=m.defaultProps;for(Y in J)N[Y]===void 0&&(N[Y]=J[Y])}if(P||oe){var K=typeof m=="function"?m.displayName||m.name||"Unknown":m;P&&Up(N,K),oe&&Yp(N,K)}return Hp(m,P,oe,L,$,it.current,N)}}var Wn=T.ReactCurrentOwner,ba=T.ReactDebugCurrentFrame;function We(m){if(m){var D=m._owner,k=kt(m.type,m._source,D?D.type:null);ba.setExtraStackFrame(k)}else ba.setExtraStackFrame(null)}var Un;Un=!1;function Yn(m){return typeof m=="object"&&m!==null&&m.$$typeof===t}function Ca(){{if(Wn.current){var m=ce(Wn.current.type);if(m)return`
|
|
22
22
|
|
|
23
|
-
Check the render method of \``+m+"`."}return""}}function
|
|
23
|
+
Check the render method of \``+m+"`."}return""}}function Jp(m){{if(m!==void 0){var D=m.fileName.replace(/^.*[\\\/]/,""),k=m.lineNumber;return`
|
|
24
24
|
|
|
25
|
-
Check your code at `+D+":"+
|
|
25
|
+
Check your code at `+D+":"+k+"."}return""}}var wa={};function Xp(m){{var D=Ca();if(!D){var k=typeof m=="string"?m:m.displayName||m.name;k&&(D=`
|
|
26
26
|
|
|
27
|
-
Check the top-level render call using <`+E+">.")}return D}}function ba(m,D){{if(!m._store||m._store.validated||m.key!=null)return;m._store.validated=!0;var E=Np(D);if(ya[E])return;ya[E]=!0;var $="";m&&m._owner&&m._owner!==jn.current&&($=" It was passed a child from "+ue(m._owner.type)+"."),We(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.',E,$),We(null)}}function Ca(m,D){{if(typeof m!="object")return;if(qn(m))for(var E=0;E<m.length;E++){var $=m[E];Un($)&&ba($,D)}else if(Un(m))m._store&&(m._store.validated=!0);else if(m){var L=_(m);if(typeof L=="function"&&L!==m.entries)for(var Y=L.call(m),G;!(G=Y.next()).done;)Un(G.value)&&ba(G.value,D)}}}function Lp(m){{var D=m.type;if(D==null||typeof D=="string")return;var E;if(typeof D=="function")E=D.propTypes;else if(typeof D=="object"&&(D.$$typeof===d||D.$$typeof===f))E=D.propTypes;else return;if(E){var $=ue(D);Ip(E,m.props,"prop",$,m)}else if(D.PropTypes!==void 0&&!Wn){Wn=!0;var L=ue(D);T("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",L||"Unknown")}typeof D.getDefaultProps=="function"&&!D.getDefaultProps.isReactClassApproved&&T("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function qp(m){{for(var D=Object.keys(m.props),E=0;E<D.length;E++){var $=D[E];if($!=="children"&&$!=="key"){We(m),T("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",$),We(null);break}}m.ref!==null&&(We(m),T("Invalid attribute `ref` supplied to `React.Fragment`."),We(null))}}function wa(m,D,E,$,L,Y){{var G=Ce(m);if(!G){var P="";(m===void 0||typeof m=="object"&&m!==null&&Object.keys(m).length===0)&&(P+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var oe=Gp(L);oe?P+=oe:P+=va();var J;m===null?J="null":qn(m)?J="array":m!==void 0&&m.$$typeof===t?(J="<"+(ue(m.type)||"Unknown")+" />",P=" Did you accidentally export a JSX literal instead of a component?"):J=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",J,P)}var K=Pp(m,D,E,L,Y);if(K==null)return K;if(G){var ve=D.children;if(ve!==void 0)if($)if(qn(ve)){for(var Ue=0;Ue<ve.length;Ue++)Ca(ve[Ue],m);Object.freeze&&Object.freeze(ve)}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 Ca(ve,m)}return m===r?qp(K):Lp(K),K}}function Bp(m,D,E){return wa(m,D,E,!0)}function jp(m,D,E){return wa(m,D,E,!1)}var Wp=jp,Up=Bp;Qe.Fragment=r,Qe.jsx=Wp,Qe.jsxs=Up}()),Qe}(function(e){process.env.NODE_ENV==="production"?e.exports=La():e.exports=qa()})(at);const U=at.exports.Fragment,a=at.exports.jsx,p=at.exports.jsxs,Ot=x.createContext(null);function ot(e){const t=S.default.useContext(Ot),n=W.useCreation(()=>e.configure(t||new zt),[e.configure]),r=W.usePrevious(n);return r&&r!==n&&r.dispose(),a(Ot.Provider,{value:n,children:e.children})}function nr(){return S.default.useContext(Ot)}const Ba={viewPanelInFullScreen:j.default.noop,inFullScreen:!1},Pt=S.default.createContext(Ba),rr=S.default.createContext(null),Gt=rr.Provider;function B(){const e=S.default.useContext(rr);if(!e)throw new Error("Please use ModelContextProvider");return e}class qe extends S.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 p(s.Box,{children:[a(s.Text,{size:"xs",children:(t=this.state.error)==null?void 0:t.message}),a(s.Button,{variant:"subtle",size:"xs",mx:"auto",compact:!0,sx:{display:"block"},onClick:n,children:"Retry"})]})}return this.props.children}}function ja({label:e,config:{default_value:t,...n},value:r,onChange:i}){return p(s.Box,{children:[a(s.Text,{children:"\xA0"}),a(s.Checkbox,{label:e,checked:r||!1,onChange:o=>i(o.currentTarget.checked),...n,pt:".4em",styles:{input:{borderColor:"#e9ecef"}}})]})}const ir=I.observer(({label:e,config:t,value:n=[null,null],onChange:r})=>{const i=Array.isArray(n)?n.map(l=>l?Ee.default(l).toDate():null):[null,null],o=l=>{r(l.map(u=>u&&Ee.default(u).format(t.inputFormat)))};return a(Sa.DateRangePicker,{label:e,value:i,onChange:o,icon:a(k.Calendar,{size:16}),sx:{minWidth:"16em"},styles:{input:{borderColor:"#e9ecef"}},...t})}),Wa={layoutFrozen:!1,freezeLayout:j.default.noop,inEditMode:!1,inUseMode:!0},ye=S.default.createContext(Wa),ar=S.default.createContext({panel:null,data:[],loading:!1}),or=ar.Provider;function ee(){const e=S.default.useContext(ar);if(!e.panel)throw new Error("Please use PanelContextProvider");return e}const sr=x.forwardRef(({label:e,description:t,...n},r)=>a("div",{ref:r,...n,children:a(s.Group,{noWrap:!0,children:p("div",{children:[a(s.Text,{size:"sm","data-role":"label",children:e}),a(s.Text,{size:"xs",color:"dimmed","data-role":"description",children:t})]})})})),Ua=I.observer(({label:e,config:t,value:n,onChange:r})=>{const i=B(),o=!!t.options_query_id,{state:l}=i.getDataStuffByID(t.options_query_id),u=l==="loading";x.useEffect(()=>{var f;if(!t.select_first_by_default)return;const c=[(f=t.options[0])==null?void 0:f.value];console.log("Selecting the first option by default. New value: ",c),r(c)},[t.select_first_by_default,t.options,r]);const d=t.min_width?t.min_width:"200px",g=o?u:!1;return a(s.MultiSelect,{label:e,data:t.options,disabled:g,value:n,onChange:r,styles:{root:{minWidth:d,maxWidth:g?d:"unset"},input:{borderColor:"#e9ecef"}},itemComponent:sr})}),Ya=I.observer(({label:e,config:t,value:n,onChange:r})=>{const i=B(),o=!!t.options_query_id,{state:l}=i.getDataStuffByID(t.options_query_id),u=l==="loading";return x.useEffect(()=>{var g,c;if(!t.select_first_by_default)return;const d=(c=(g=t.options[0])==null?void 0:g.value)!=null?c:"";console.log("Selecting the first option by default. New value: ",d),r(d)},[t.select_first_by_default,t.options,r]),a(s.Select,{label:e,data:t.options,disabled:o?u:!1,value:n,onChange:r,styles:{root:{width:t.width?t.width:"200px"},input:{borderColor:"#e9ecef"}},sx:{".mantine-Select-item[data-selected] .mantine-Text-root[data-role=description]":{color:"rgba(255,255,255,.7)"}},itemComponent:sr})});function Ha({label:e,config:t,value:n,onChange:r}){return a(s.TextInput,{label:e,value:n||"",onChange:r,...t,styles:{input:{borderColor:"#e9ecef"}}})}const Qa=I.observer(({filter:{type:e,config:t,key:n,...r},formFieldProps:i})=>{switch(e){case"select":return a(Ya,{...r,...i,config:t});case"multi-select":return a(Ua,{...r,...i,config:t});case"text-input":return a(Ha,{...r,...i,config:t});case"date-range":return a(ir,{...r,...i,config:t});case"checkbox":return a(ja,{...r,...i,config:t});default:return null}}),lr=I.observer(S.default.forwardRef(({filter:e,...t},n)=>a("div",{className:"filter-root",ref:n,children:a(qe,{children:a(Qa,{filter:e,formFieldProps:t})})}))),ur=I.observer(function({view:t}){const n=B(),{control:r,handleSubmit:i,reset:o}=M.useForm({defaultValues:n.filters.values,reValidateMode:"onBlur"}),l=M.useWatch({control:r});x.useEffect(()=>{o(n.filters.values)},[n.filters.values,o]),x.useEffect(()=>{n.filters.updatePreviewValues(l)},[l]);const u=n.filters.visibleInView(t.id);return u.length===0?null:a("form",{onSubmit:i(n.filters.setValues),children:p(s.Group,{className:"dashboard-filters",position:"apart",p:"md",noWrap:!0,sx:{border:"1px solid #e9ecef",borderRadius:"4px"},children:[a(s.Group,{align:"flex-start",children:u.map(d=>a(M.Controller,{name:d.key,control:r,render:({field:g})=>a(lr,{filter:d,...g})},d.id))}),a(s.Group,{sx:{alignSelf:"flex-end"},children:a(s.Button,{color:"blue",size:"sm",type:"submit",children:"Submit"})})]})})});var st={exports:{}};(function(e,t){(function(n,r){r()})(Ne,function(){function n(g,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(g.type)?new Blob(["\uFEFF",g],{type:g.type}):g}function r(g,c,f){var h=new XMLHttpRequest;h.open("GET",g),h.responseType="blob",h.onload=function(){d(h.response,c,f)},h.onerror=function(){console.error("could not download file")},h.send()}function i(g){var c=new XMLHttpRequest;c.open("HEAD",g,!1);try{c.send()}catch{}return 200<=c.status&&299>=c.status}function o(g){try{g.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),g.dispatchEvent(c)}}var l=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof Ne=="object"&&Ne.global===Ne?Ne:void 0,u=l.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),d=l.saveAs||(typeof window!="object"||window!==l?function(){}:"download"in HTMLAnchorElement.prototype&&!u?function(g,c,f){var h=l.URL||l.webkitURL,v=document.createElement("a");c=c||g.name||"download",v.download=c,v.rel="noopener",typeof g=="string"?(v.href=g,v.origin===location.origin?o(v):i(v.href)?r(g,c,f):o(v,v.target="_blank")):(v.href=h.createObjectURL(g),setTimeout(function(){h.revokeObjectURL(v.href)},4e4),setTimeout(function(){o(v)},0))}:"msSaveOrOpenBlob"in navigator?function(g,c,f){if(c=c||g.name||"download",typeof g!="string")navigator.msSaveOrOpenBlob(n(g,f),c);else if(i(g))r(g,c,f);else{var h=document.createElement("a");h.href=g,h.target="_blank",setTimeout(function(){o(h)})}}:function(g,c,f,h){if(h=h||open("","_blank"),h&&(h.document.title=h.document.body.innerText="downloading..."),typeof g=="string")return r(g,c,f);var v=g.type==="application/octet-stream",C=/constructor/i.test(l.HTMLElement)||l.safari,b=/CriOS\/[\d]+/.test(navigator.userAgent);if((b||v&&C||u)&&typeof FileReader<"u"){var _=new FileReader;_.onloadend=function(){var F=_.result;F=b?F:F.replace(/^data:[^;]*;/,"data:attachment/file;"),h?h.location.href=F:location=F,h=null},_.readAsDataURL(g)}else{var A=l.URL||l.webkitURL,T=A.createObjectURL(g);h?h.location=T:location.href=T,h=null,setTimeout(function(){A.revokeObjectURL(T)},4e4)}});l.saveAs=d.saveAs=d,e.exports=d})})(st);function Ja(e,t){const n=new Blob([t],{type:"text/csv"});st.exports.saveAs(n,`${e}.csv`)}function Xa(e,t){const n=new Blob([t],{type:"application/json"});st.exports.saveAs(n,`${e}.json`)}function Ka(e){const t=new Oa.default;e.forEach(({id:n,data:r})=>{t.file(`${n}.csv`,dr(r))}),t.generateAsync({type:"blob"}).then(n=>{st.exports.saveAs(n,"dashboard_data.zip")})}function dr(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(`
|
|
28
|
-
`)}const
|
|
27
|
+
Check the top-level render call using <`+k+">.")}return D}}function xa(m,D){{if(!m._store||m._store.validated||m.key!=null)return;m._store.validated=!0;var k=Xp(D);if(wa[k])return;wa[k]=!0;var $="";m&&m._owner&&m._owner!==Wn.current&&($=" It was passed a child from "+ce(m._owner.type)+"."),We(m),A('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',k,$),We(null)}}function Sa(m,D){{if(typeof m!="object")return;if(Bn(m))for(var k=0;k<m.length;k++){var $=m[k];Yn($)&&xa($,D)}else if(Yn(m))m._store&&(m._store.validated=!0);else if(m){var L=S(m);if(typeof L=="function"&&L!==m.entries)for(var Y=L.call(m),N;!(N=Y.next()).done;)Yn(N.value)&&xa(N.value,D)}}}function Kp(m){{var D=m.type;if(D==null||typeof D=="string")return;var k;if(typeof D=="function")k=D.propTypes;else if(typeof D=="object"&&(D.$$typeof===c||D.$$typeof===f))k=D.propTypes;else return;if(k){var $=ce(D);Pp(k,m.props,"prop",$,m)}else if(D.PropTypes!==void 0&&!Un){Un=!0;var L=ce(D);A("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",L||"Unknown")}typeof D.getDefaultProps=="function"&&!D.getDefaultProps.isReactClassApproved&&A("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Zp(m){{for(var D=Object.keys(m.props),k=0;k<D.length;k++){var $=D[k];if($!=="children"&&$!=="key"){We(m),A("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",$),We(null);break}}m.ref!==null&&(We(m),A("Invalid attribute `ref` supplied to `React.Fragment`."),We(null))}}function _a(m,D,k,$,L,Y){{var N=Ce(m);if(!N){var P="";(m===void 0||typeof m=="object"&&m!==null&&Object.keys(m).length===0)&&(P+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var oe=Jp(L);oe?P+=oe:P+=Ca();var J;m===null?J="null":Bn(m)?J="array":m!==void 0&&m.$$typeof===t?(J="<"+(ce(m.type)||"Unknown")+" />",P=" Did you accidentally export a JSX literal instead of a component?"):J=typeof m,A("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",J,P)}var K=Qp(m,D,k,L,Y);if(K==null)return K;if(N){var ve=D.children;if(ve!==void 0)if($)if(Bn(ve)){for(var Ue=0;Ue<ve.length;Ue++)Sa(ve[Ue],m);Object.freeze&&Object.freeze(ve)}else A("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 Sa(ve,m)}return m===r?Zp(K):Kp(K),K}}function ef(m,D,k){return _a(m,D,k,!0)}function tf(m,D,k){return _a(m,D,k,!1)}var nf=tf,rf=ef;Qe.Fragment=r,Qe.jsx=nf,Qe.jsxs=rf}()),Qe}(function(e){process.env.NODE_ENV==="production"?e.exports=Wa():e.exports=Ua()})(ot);const B=ot.exports.Fragment,i=ot.exports.jsx,p=ot.exports.jsxs,Pt=x.createContext(null);function st(e){const t=M.default.useContext(Pt),n=W.useCreation(()=>e.configure(t||new Ot),[e.configure]),r=W.usePrevious(n);return r&&r!==n&&r.dispose(),i(Pt.Provider,{value:n,children:e.children})}function ir(){return M.default.useContext(Pt)}const Ya={viewPanelInFullScreen:U.default.noop,inFullScreen:!1},Nt=M.default.createContext(Ya),ar=M.default.createContext(null),Gt=ar.Provider;function j(){const e=M.default.useContext(ar);if(!e)throw new Error("Please use ModelContextProvider");return e}class qe extends M.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 p(s.Box,{children:[i(s.Text,{size:"xs",children:(t=this.state.error)==null?void 0:t.message}),i(s.Button,{variant:"subtle",size:"xs",mx:"auto",compact:!0,sx:{display:"block"},onClick:n,children:"Retry"})]})}return this.props.children}}function Ha({label:e,config:{default_value:t,...n},value:r,onChange:a}){return p(s.Box,{children:[i(s.Text,{children:"\xA0"}),i(s.Checkbox,{label:e,checked:r||!1,onChange:o=>a(o.currentTarget.checked),...n,pt:".4em",styles:{input:{borderColor:"#e9ecef"}}})]})}const or=I.observer(({label:e,config:t,value:n=[null,null],onChange:r})=>{const a=Array.isArray(n)?n.map(l=>l?Ee.default(l).toDate():null):[null,null],o=l=>{r(l.map(u=>u&&Ee.default(u).format(t.inputFormat)))};return i(Da.DateRangePicker,{label:e,value:a,onChange:o,icon:i(V.Calendar,{size:16}),sx:{minWidth:"16em"},styles:{input:{borderColor:"#e9ecef"}},...t})}),Qa={layoutFrozen:!1,freezeLayout:U.default.noop,inEditMode:!1,inUseMode:!0},ye=M.default.createContext(Qa),sr=M.default.createContext({panel:null,data:[],loading:!1}),lr=sr.Provider;function ee(){const e=M.default.useContext(sr);if(!e.panel)throw new Error("Please use PanelContextProvider");return e}const ur=x.forwardRef(({label:e,description:t,...n},r)=>i("div",{ref:r,...n,children:i(s.Group,{noWrap:!0,children:p("div",{children:[i(s.Text,{size:"sm","data-role":"label",children:e}),i(s.Text,{size:"xs",color:"dimmed","data-role":"description",children:t})]})})})),Ja=I.observer(({label:e,config:t,value:n,onChange:r})=>{const a=j(),o=!!t.options_query_id,{state:l}=a.getDataStuffByID(t.options_query_id),u=l==="loading";x.useEffect(()=>{var f;if(!t.select_first_by_default)return;const d=[(f=t.options[0])==null?void 0:f.value];console.log("Selecting the first option by default. New value: ",d),r(d)},[t.select_first_by_default,t.options,r]);const c=t.min_width?t.min_width:"200px",g=o?u:!1;return i(s.MultiSelect,{label:e,data:t.options,disabled:g,value:n,onChange:r,styles:{root:{minWidth:c,maxWidth:g?c:"unset"},input:{borderColor:"#e9ecef"}},itemComponent:ur})}),Xa=I.observer(({label:e,config:t,value:n,onChange:r})=>{const a=j(),o=!!t.options_query_id,{state:l}=a.getDataStuffByID(t.options_query_id),u=l==="loading";return x.useEffect(()=>{var g,d;if(!t.select_first_by_default)return;const c=(d=(g=t.options[0])==null?void 0:g.value)!=null?d:"";console.log("Selecting the first option by default. New value: ",c),r(c)},[t.select_first_by_default,t.options,r]),i(s.Select,{label:e,data:t.options,disabled:o?u:!1,value:n,onChange:r,styles:{root:{width:t.width?t.width:"200px"},input:{borderColor:"#e9ecef"}},sx:{".mantine-Select-item[data-selected] .mantine-Text-root[data-role=description]":{color:"rgba(255,255,255,.7)"}},itemComponent:ur})});function Ka({label:e,config:t,value:n,onChange:r}){return i(s.TextInput,{label:e,value:n||"",onChange:r,...t,styles:{input:{borderColor:"#e9ecef"}}})}const Za=I.observer(({filter:{type:e,config:t,key:n,...r},formFieldProps:a})=>{switch(e){case"select":return i(Xa,{...r,...a,config:t});case"multi-select":return i(Ja,{...r,...a,config:t});case"text-input":return i(Ka,{...r,...a,config:t});case"date-range":return i(or,{...r,...a,config:t});case"checkbox":return i(Ha,{...r,...a,config:t});default:return null}}),cr=I.observer(M.default.forwardRef(({filter:e,...t},n)=>i("div",{className:"filter-root",ref:n,children:i(qe,{children:i(Za,{filter:e,formFieldProps:t})})}))),dr=I.observer(function({view:t}){const n=j(),{control:r,handleSubmit:a,reset:o}=_.useForm({defaultValues:n.filters.values,reValidateMode:"onBlur"}),l=_.useWatch({control:r});x.useEffect(()=>{o(n.filters.values)},[n.filters.values,o]),x.useEffect(()=>{n.filters.updatePreviewValues(l)},[l]);const u=n.filters.visibleInView(t.id);return u.length===0?null:i("form",{onSubmit:a(n.filters.setValues),children:p(s.Group,{className:"dashboard-filters",position:"apart",p:"md",noWrap:!0,sx:{border:"1px solid #e9ecef",borderRadius:"4px"},children:[i(s.Group,{align:"flex-start",children:u.map(c=>i(_.Controller,{name:c.key,control:r,render:({field:g})=>i(cr,{filter:c,...g})},c.id))}),i(s.Group,{sx:{alignSelf:"flex-end"},children:i(s.Button,{color:"blue",size:"sm",type:"submit",children:"Submit"})})]})})});var lt={exports:{}};(function(e,t){(function(n,r){r()})(Ne,function(){function n(g,d){return typeof d>"u"?d={autoBom:!1}:typeof d!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),d={autoBom:!d}),d.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(g.type)?new Blob(["\uFEFF",g],{type:g.type}):g}function r(g,d,f){var h=new XMLHttpRequest;h.open("GET",g),h.responseType="blob",h.onload=function(){c(h.response,d,f)},h.onerror=function(){console.error("could not download file")},h.send()}function a(g){var d=new XMLHttpRequest;d.open("HEAD",g,!1);try{d.send()}catch{}return 200<=d.status&&299>=d.status}function o(g){try{g.dispatchEvent(new MouseEvent("click"))}catch{var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),g.dispatchEvent(d)}}var l=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof Ne=="object"&&Ne.global===Ne?Ne:void 0,u=l.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=l.saveAs||(typeof window!="object"||window!==l?function(){}:"download"in HTMLAnchorElement.prototype&&!u?function(g,d,f){var h=l.URL||l.webkitURL,v=document.createElement("a");d=d||g.name||"download",v.download=d,v.rel="noopener",typeof g=="string"?(v.href=g,v.origin===location.origin?o(v):a(v.href)?r(g,d,f):o(v,v.target="_blank")):(v.href=h.createObjectURL(g),setTimeout(function(){h.revokeObjectURL(v.href)},4e4),setTimeout(function(){o(v)},0))}:"msSaveOrOpenBlob"in navigator?function(g,d,f){if(d=d||g.name||"download",typeof g!="string")navigator.msSaveOrOpenBlob(n(g,f),d);else if(a(g))r(g,d,f);else{var h=document.createElement("a");h.href=g,h.target="_blank",setTimeout(function(){o(h)})}}:function(g,d,f,h){if(h=h||open("","_blank"),h&&(h.document.title=h.document.body.innerText="downloading..."),typeof g=="string")return r(g,d,f);var v=g.type==="application/octet-stream",C=/constructor/i.test(l.HTMLElement)||l.safari,b=/CriOS\/[\d]+/.test(navigator.userAgent);if((b||v&&C||u)&&typeof FileReader<"u"){var S=new FileReader;S.onloadend=function(){var F=S.result;F=b?F:F.replace(/^data:[^;]*;/,"data:attachment/file;"),h?h.location.href=F:location=F,h=null},S.readAsDataURL(g)}else{var T=l.URL||l.webkitURL,A=T.createObjectURL(g);h?h.location=A:location.href=A,h=null,setTimeout(function(){T.revokeObjectURL(A)},4e4)}});l.saveAs=c.saveAs=c,e.exports=c})})(lt);function eo(e,t){const n=new Blob([t],{type:"text/csv"});lt.exports.saveAs(n,`${e}.csv`)}function to(e,t){const n=new Blob([t],{type:"application/json"});lt.exports.saveAs(n,`${e}.json`)}function no(e){const t=new La.default;e.forEach(({id:n,data:r})=>{t.file(`${n}.csv`,gr(r))}),t.generateAsync({type:"blob"}).then(n=>{lt.exports.saveAs(n,"dashboard_data.zip")})}function gr(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 a=Object.values(r).join(",");t.push(a)}),t.join(`
|
|
28
|
+
`)}const ro=`
|
|
29
29
|
-- You may reference global variables in SQL or VizConfig.
|
|
30
30
|
SELECT *
|
|
31
31
|
FROM commit
|
|
@@ -37,19 +37,20 @@ WHERE
|
|
|
37
37
|
-- SQL snippets
|
|
38
38
|
AND \${sql_snippets.author_email_condition}
|
|
39
39
|
\${sql_snippets.order_by_clause}
|
|
40
|
-
`,Nt=I.observer(function({showSQLSnippets:t=!0,sx:n={}}){const r=B(),i=r.context.current,o=(()=>{const l={context:{...r.mock_context.current,...i},filters:r.filters.previewValues};return t&&(l.sql_snippets=r.sqlSnippets.record),JSON.stringify(l,null,2)})();return p(s.Stack,{sx:{border:"1px solid #eee",maxWidth:"40%",overflow:"hidden",...n},children:[a(s.Group,{position:"left",pl:"md",py:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef",flexGrow:0},children:a(s.Text,{weight:500,children:"Global Variables"})}),p(s.Stack,{px:"md",pb:"md",sx:{width:"100%"},children:[a(Ge.Prism,{language:"sql",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:Za}),a(s.Text,{weight:500,sx:{flexGrow:0},children:"Current Values"}),a(Ge.Prism,{language:"json",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:o})]})]})}),eo=I.observer(function(){const t=B(),[n,r]=x.useState(()=>JSON.stringify(t.mock_context.current,null,4)),i=()=>{try{t.mock_context.replace(JSON.parse(n))}catch(l){it.showNotification({title:"Failed",message:l.message,color:"red"})}},o=x.useMemo(()=>{try{return JSON.stringify(JSON.parse(n))!==JSON.stringify(t.mock_context.current)}catch{return!1}},[n,t.mock_context.current]);return p(s.Stack,{sx:{border:"1px solid #eee",flexGrow:1,maxWidth:"unset"},children:[a(s.Group,{position:"left",pl:"md",py:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef",flexGrow:0},children:a(s.Text,{weight:500,children:"Mock Context"})}),p(s.Group,{grow:!0,px:"md",pb:"md",pt:0,sx:{flexGrow:1,position:"relative"},children:[p(s.Stack,{spacing:10,sx:{maxWidth:"unset !important"},children:[a(s.Text,{children:"A valid json string is required"}),a(s.JsonInput,{validationError:"Invalid json",formatOnBlur:!0,autosize:!0,minRows:30,value:n,onChange:r,sx:{flexGrow:1}})]}),a(s.ActionIcon,{mr:5,variant:"filled",color:"blue",sx:{position:"absolute",right:12,top:0},disabled:!o,onClick:i,children:a(k.DeviceFloppy,{size:20})})]})]})});function to(){return a(s.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:p(s.Group,{position:"apart",grow:!0,align:"stretch",noWrap:!0,children:[a(eo,{}),a(Nt,{showSQLSnippets:!1})]})})}function no({data:e}){return e.length===0?a(s.Box,{sx:{height:"5em"}}):p(s.Table,{children:[a("thead",{children:a("tr",{children:Object.keys(e==null?void 0:e[0]).map(t=>a("th",{children:a(s.Text,{weight:700,color:"#000",children:t})},t))})}),a("tbody",{children:e.slice(0,10).map((t,n)=>a("tr",{children:Object.values(t).map((r,i)=>a("td",{children:a(s.Group,{sx:{"&, .mantine-Text-root":{fontFamily:"monospace"}},children:a(s.Text,{children:r})})},`${r}--${i}`))},`row-${n}`))})]})}const cr=I.observer(function({id:t}){const n=B(),{data:r,state:i}=n.getDataStuffByID(t),o=i==="loading",l=()=>{n.queries.refetchDataByQueryID(t)};return p(s.Stack,{my:"xl",sx:{border:"1px solid #eee"},children:[p(s.Group,{position:"apart",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[p(s.Group,{position:"left",children:[a(s.Text,{weight:500,children:"Preview Data"}),r.length>10&&p(s.Text,{size:"sm",color:"gray",children:["Showing 10 rows of ",r.length]})]}),a(s.ActionIcon,{mr:15,variant:"subtle",color:"blue",disabled:o,onClick:l,children:a(k.Refresh,{size:15})})]}),p(s.Box,{sx:{position:"relative"},children:[a(s.LoadingOverlay,{visible:o}),a(no,{data:r})]})]})});function ro(e,t,n,r){const i=qt(t,n,[],r),o=Object.keys(i),l=Object.values(i);try{return new Function(...o,`return \`${e}\`;`)(...l)}catch(u){return console.info(u),u.message}}function Lt(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 qt(e,t,n,r){const i={...t,...e},o={context:i,filters:r},l=n.reduce((u,d)=>(u[d.key]=Lt(d.value,o),u),{});return j.default.merge({},{context:i,filters:r,sql_snippets:l})}function gr(e,t,n,r,i){try{const o=qt(t,n,r,i);return Lt(e,o)}catch(o){return console.error(o),o.message}}function io(e){e=e||{};const t=Object.keys(e).sort(),n=[];for(let r=0;r<t.length;r++){const i=t[r];if(i!="authentication"&&e[i])n.push(t[r]+"="+(typeof e[i]=="object"?JSON.stringify(e[i]):e[i]));else{const o=Object.keys(e[i]).sort();for(let l=0;l<o.length;l++){const u=o[l];u!="sign"&&e[i][u]&&n.push(o[l]+"="+(typeof e[i][u]=="object"?JSON.stringify(e[i][u]):e[i][u]))}}}return n.sort().join("&")}function ao(e,t){let n=io(e);return n+="&key="+t,Pa.default.MD5(n).toString().toUpperCase()}const Be={baseURL:"http://localhost:31200",app_id:"",app_secret:"",getAuthentication(e){if(!this.app_id||!this.app_secret)return;const t=new Date().getTime().toString();return{app_id:this.app_id,nonce_str:t,sign:ao({app_id:this.app_id,nonce_str:t,...e},this.app_secret)}},getRequest(e){return(t,n,r={})=>{const i=window.localStorage.getItem("token"),o={"X-Requested-With":"XMLHttpRequest","Content-Type":r.string?"application/x-www-form-urlencoded":"application/json",authorization:i?`bearer ${i}`:"",...r.headers},l={baseURL:this.baseURL,method:e,url:t,params:e==="GET"?n:r.params,headers:o};return["POST","PUT"].includes(e)&&(l.data=r.string?JSON.stringify(n):n,l.data.authentication=this.getAuthentication(l.data)),Qn.default(l).then(u=>u.data).catch(u=>Promise.reject(u))}}};function pr(e){Be.baseURL!==e.apiBaseURL&&(Be.baseURL=e.apiBaseURL),e.app_id&&(Be.app_id=e.app_id),e.app_secret&&(Be.app_secret=e.app_secret)}async function oo({context:e,mock_context:t,sqlSnippets:n,title:r,query:i,filterValues:o}){if(!i.sql)return[];const{type:l,key:u,sql:d}=i,g=d.includes("$"),c=qt(e,t,n,o),f=Lt(d,c);return g&&(console.groupCollapsed(`Final SQL for: ${r}`),console.log(f),console.groupEnd()),await Be.getRequest("POST")("/query",{type:l,key:u,query:f})}async function so(){try{return(await Be.getRequest("POST")("/datasource/list",{filter:{},sort:{field:"create_time",order:"ASC"},pagination:{page:1,pagesize:100}})).data}catch(e){return console.error(e),[]}}const lo=x.forwardRef(({label:e,type:t,...n},r)=>p(s.Group,{position:"apart",ref:r,...n,children:[a(s.Text,{children:e}),a(s.Text,{children:t})]})),uo=I.observer(function({value:t,onChange:n}){const{data:r=[],loading:i}=W.useRequest(so,{refreshDeps:[]},[]),o=x.useMemo(()=>r.map(u=>({label:u.key,value:u.key,type:u.type})),[r]),l=x.useMemo(()=>o.reduce((u,d)=>(u[d.value]=d.type,u),{}),[o]);return a(s.Select,{label:"Data Source",data:o,itemComponent:lo,sx:{flex:1},disabled:i,value:t.key,onChange:u=>{u!==null&&n({key:u,type:l[u]})}})});function co(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,o;for(o=0;o<r.length;o++)i=r[o],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}function lt(e,t){if(e==null)return{};var n=co(e,t),r,i;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)r=o[i],!(t.indexOf(r)>=0)&&(!Object.prototype.propertyIsEnumerable.call(e,r)||(n[r]=e[r]))}return n}var go=["size","color","stroke"];function po(e){var t=e.size,n=t===void 0?24:t,r=e.color,i=r===void 0?"currentColor":r,o=e.stroke,l=o===void 0?2:o,u=lt(e,go);return p("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:l,stroke:i,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",...u,children:[a("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),a("line",{x1:12,y1:5,x2:12,y2:19}),a("line",{x1:18,y1:13,x2:12,y2:19}),a("line",{x1:6,y1:13,x2:12,y2:19})]})}var fo=["size","color","stroke"];function ho(e){var t=e.size,n=t===void 0?24:t,r=e.color,i=r===void 0?"currentColor":r,o=e.stroke,l=o===void 0?2:o,u=lt(e,fo);return p("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:l,stroke:i,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",...u,children:[a("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),a("line",{x1:12,y1:5,x2:12,y2:19}),a("line",{x1:18,y1:11,x2:12,y2:5}),a("line",{x1:6,y1:11,x2:12,y2:5})]})}var mo=["size","color","stroke"];function vo(e){var t=e.size,n=t===void 0?24:t,r=e.color,i=r===void 0?"currentColor":r,o=e.stroke,l=o===void 0?2:o,u=lt(e,mo);return p("svg",{xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-device-floppy",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:i,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",...u,children:[a("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),a("path",{d:"M6 4h10l4 4v10a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2"}),a("circle",{cx:12,cy:14,r:2}),a("polyline",{points:"14 4 14 8 8 8 8 4"})]})}var yo=["size","color","stroke"];function fr(e){var t=e.size,n=t===void 0?24:t,r=e.color,i=r===void 0?"currentColor":r,o=e.stroke,l=o===void 0?2:o,u=lt(e,yo);return p("svg",{xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-trash",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:i,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",...u,children:[a("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),a("line",{x1:4,y1:7,x2:20,y2:7}),a("line",{x1:10,y1:11,x2:10,y2:17}),a("line",{x1:14,y1:11,x2:14,y2:17}),a("path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12"}),a("path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3"})]})}const bo=e=>{const{queryModel:t}=e,n=B(),r=n.findDependingPanels(t.id),i=r.length>0,o=a(s.ActionIcon,{color:"red",size:"sm",disabled:i,onClick:()=>n.queries.removeQuery(t.id),children:a(fr,{})});return i?a(s.Tooltip,{label:`This query is used in the following panels: ${r.join(", ")}`,withArrow:!0,events:{hover:!0,focus:!1,touch:!1},children:a("span",{children:o})}):o},Co=I.observer(bo),wo=I.observer(({value:e})=>{const t=B(),n=t.context.current,r=S.default.useMemo(()=>gr(e,n,t.mock_context.current,t.sqlSnippets.current,t.filters.values),[e,n,t.mock_context.current,t.sqlSnippets.current,t.filters.values]);return a(Ge.Prism,{language:"sql",colorScheme:"light",children:r})}),xo=I.observer(function({queryModel:t,setCurrentID:n}){const r=S.default.useRef(t.id),[i,o]=S.default.useState(r.current);S.default.useEffect(()=>{r.current!==t.id&&(o(t.id),r.current=t.id)},[r,t.id]);const[l,u]=S.default.useState(t.sql);S.default.useEffect(()=>{u(f=>f!==t.sql?t.sql:f)},[t.sql]);const d=l!==t.sql,g=()=>{t.setSQL(l)},c=()=>{t.setID(i),n(i)};return p(s.Stack,{sx:{border:"1px solid #eee",flexGrow:1},children:[p(s.Group,{position:"apart",py:"md",px:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[a(s.Text,{weight:500,children:"Edit Query"}),a(Co,{queryModel:t})]}),p(s.Stack,{my:0,p:"md",pr:40,children:[p(s.Group,{grow:!0,children:[a(s.TextInput,{placeholder:"An ID unique in this dashboard",label:"ID",required:!0,sx:{flex:1},value:i,onChange:f=>{o(f.currentTarget.value)},rightSection:a(s.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:i===t.id,onClick:c,children:a(k.DeviceFloppy,{size:18})})}),a(uo,{value:{type:t.type,key:t.key},onChange:({type:f,key:h})=>{t.setKey(h),t.setType(f)}})]}),p(s.Tabs,{defaultValue:"SQL",children:[p(s.Tabs.List,{children:[a(s.Tabs.Tab,{value:"SQL",children:"SQL"}),a(s.Tabs.Tab,{value:"Preview",children:"Preview"})]}),a(s.Tabs.Panel,{value:"SQL",pt:"sm",children:p(s.Box,{sx:{position:"relative"},children:[a(s.Textarea,{autosize:!0,minRows:12,maxRows:24,className:"code-textarea",value:l,onChange:f=>{u(f.currentTarget.value)}}),a(s.ActionIcon,{mr:5,variant:"filled",color:"blue",sx:{position:"absolute",right:10,top:10},disabled:!d,onClick:g,children:a(k.DeviceFloppy,{size:20})})]})}),a(s.Tabs.Panel,{value:"Preview",pt:"sm",children:a(wo,{value:t.sql})})]})]})]})}),So=I.observer(function({id:t,setID:n}){const r=B(),i=S.default.useMemo(()=>r.queries.findByID(t),[r.queries,t]);return t?i?a(xo,{queryModel:i,setCurrentID:n}):a("span",{children:"Invalid Query ID"}):null});var Te=(e=>(e.Postgresql="postgresql",e.MySQL="mysql",e.HTTP="http",e))(Te||{});const _o=I.observer(function({id:t,setID:n}){const r=B(),i=()=>{var l;n((l=r.queries.firstID)!=null?l:"")};S.default.useEffect(()=>{if(!t){i();return}r.queries.current.findIndex(u=>u.id===t)===-1&&i()},[t,r.queries.current,i]);const o=()=>{const l=ie.randomId();r.queries.append(y.cast({id:l,type:Te.Postgresql,key:"",sql:""})),n(l)};return a(s.Group,{pb:"xl",grow:!0,sx:{width:"100%"},children:p(s.Group,{position:"left",sx:{flexGrow:1,maxWidth:"600px",alignItems:"baseline"},children:[a(s.Text,{children:"Select a Query"}),a(s.Select,{data:r.queries.options,value:t,onChange:n,allowDeselect:!1,clearable:!1,sx:{flexGrow:1,maxWidth:"300px"}}),a(s.Text,{children:"or"}),a(s.Group,{position:"center",mt:"md",children:a(s.Button,{onClick:o,children:"Add a Query"})})]})})}),Mo=I.observer(function(){const[t,n]=S.default.useState("");return p(s.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:[p(s.Group,{position:"apart",grow:!0,align:"stretch",noWrap:!0,children:[p(s.Stack,{sx:{flexGrow:1,maxWidth:"calc(60% - 16px)"},children:[a(_o,{id:t,setID:n}),a(So,{id:t,setID:n})]}),a(Nt,{})]}),a(cr,{id:t})]})}),Do=I.observer(({value:e})=>{const t=B(),n=t.context.current,r=ro(e,n,t.mock_context.current,t.filters.values);return p(s.Stack,{children:[a(s.Text,{children:"Preview"}),a(Ge.Prism,{language:"sql",noCopy:!0,colorScheme:"dark",children:r})]})}),Io=I.observer(function(){const t=B(),n=()=>t.sqlSnippets.append(y.cast({key:ie.randomId(),value:""}));return p(s.Stack,{sx:{border:"1px solid #eee",flexGrow:1},children:[a(s.Group,{position:"left",pl:"md",py:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef",flexGrow:0},children:a(s.Text,{weight:500,children:"SQL Snippets"})}),a(s.Group,{px:"md",pb:"md",pt:"md",children:p(s.Stack,{sx:{width:"100%",position:"relative"},children:[t.sqlSnippets.current.map((r,i)=>p(s.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[a(s.TextInput,{label:"Key",required:!0,value:r.key,onChange:o=>{r.setKey(o.currentTarget.value)}}),a(s.Textarea,{minRows:3,label:"Value",required:!0,value:r.value,onChange:o=>{r.setValue(o.currentTarget.value)},className:"code-textarea"}),a(Do,{value:r.value}),a(s.ActionIcon,{color:"red",variant:"subtle",onClick:()=>t.sqlSnippets.remove(i),sx:{position:"absolute",top:15,right:5},children:a(k.Trash,{size:16})})]},i)),a(s.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"40%"},mx:"auto",children:a(s.Button,{variant:"default",onClick:n,children:"Add a snippet"})})]})})]})});function Vo(){return a(s.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:p(s.Group,{position:"apart",grow:!0,align:"stretch",noWrap:!0,children:[a(Io,{}),a(Nt,{showSQLSnippets:!1})]})})}const Eo=I.observer(function({opened:t,close:n}){const{freezeLayout:r}=S.default.useContext(ye);return S.default.useEffect(()=>{r(t)},[t]),a(s.Modal,{size:"96vw",overflow:"inside",opened:t,onClose:n,title:"Data Settings",trapFocus:!0,onDragStart:i=>{i.stopPropagation()},children:p(s.Tabs,{defaultValue:"Queries",children:[p(s.Tabs.List,{children:[a(s.Tabs.Tab,{value:"Mock Context",children:"Mock Context"}),a(s.Tabs.Tab,{value:"SQL Snippets",children:"SQL Snippets"}),a(s.Tabs.Tab,{value:"Queries",children:"Queries"})]}),a(s.Tabs.Panel,{value:"Mock Context",pt:"sm",children:a(to,{})}),a(s.Tabs.Panel,{value:"SQL Snippets",pt:"sm",children:a(Vo,{})}),a(s.Tabs.Panel,{value:"Queries",pt:"sm",children:a(Mo,{})})]})})});var pe=(e=>(e.Select="select",e.MultiSelect="multi-select",e.TextInput="text-input",e.Checkbox="checkbox",e.DateRange="date-range",e))(pe||{});y.types.model({type:y.types.enumeration("DataSourceType",[Te.Postgresql,Te.MySQL,Te.HTTP]),key:y.types.string,sql:y.types.string});const hr=y.types.model("FilterConfigModel_TextInput",{_name:y.types.literal("text-input"),required:y.types.boolean,default_value:y.types.string}).actions(e=>({setRequired(t){e.required=t},setDefaultValue(t){e.default_value=t}})),mr=()=>hr.create({_name:"text-input",required:!1,default_value:""}),ko=I.observer(function({config:t}){return a(U,{children:a(s.Checkbox,{checked:t.default_value,onChange:n=>t.setDefaultValue(n.currentTarget.checked),label:"Default Checked"})})}),Ao=[{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"}],To=I.observer(function({config:t}){return p(U,{children:[p(s.Group,{children:[a(s.Checkbox,{checked:t.required,onChange:n=>t.setRequired(n.currentTarget.checked),label:"Required"}),a(s.Checkbox,{checked:t.clearable,onChange:n=>t.setClearable(n.currentTarget.checked),label:"Clearable"})]}),a(s.Select,{data:Ao,label:"Display Format",value:t.inputFormat,onChange:t.setInputFormat}),a(ir,{label:"Default Value",config:t,value:t.default_value,onChange:t.setDefaultValue})]})}),vr=I.observer(({value:e,onChange:t})=>{const n=B(),r=S.default.useMemo(()=>n.queries.current.map(o=>({value:o.id,label:o.id})),[n.queries.current]),i=r.length===0;return a(s.Select,{label:"Pick a query",data:r,value:e,onChange:t,allowDeselect:!1,clearable:!1,sx:{flexGrow:1},disabled:i,error:i?"You need to add a query in Data Settings":void 0})}),Ro=`
|
|
40
|
+
`,Lt=I.observer(function({showSQLSnippets:t=!0,sx:n={}}){const r=j(),a=r.context.current,o=(()=>{const l={context:{...r.mock_context.current,...a},filters:r.filters.previewValues};return t&&(l.sql_snippets=r.sqlSnippets.record),JSON.stringify(l,null,2)})();return p(s.Stack,{sx:{border:"1px solid #eee",maxWidth:"40%",overflow:"hidden",...n},children:[i(s.Group,{position:"left",pl:"md",py:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef",flexGrow:0},children:i(s.Text,{weight:500,children:"Global Variables"})}),p(s.Stack,{px:"md",pb:"md",sx:{width:"100%"},children:[i(Le.Prism,{language:"sql",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:ro}),i(s.Text,{weight:500,sx:{flexGrow:0},children:"Current Values"}),i(Le.Prism,{language:"json",sx:{width:"100%"},noCopy:!0,colorScheme:"dark",children:o})]})]})}),io=I.observer(function(){const t=j(),[n,r]=x.useState(()=>JSON.stringify(t.mock_context.current,null,4)),a=()=>{try{t.mock_context.replace(JSON.parse(n))}catch(l){at.showNotification({title:"Failed",message:l.message,color:"red"})}},o=x.useMemo(()=>{try{return JSON.stringify(JSON.parse(n))!==JSON.stringify(t.mock_context.current)}catch{return!1}},[n,t.mock_context.current]);return p(s.Stack,{sx:{border:"1px solid #eee",flexGrow:1,maxWidth:"unset"},children:[i(s.Group,{position:"left",pl:"md",py:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef",flexGrow:0},children:i(s.Text,{weight:500,children:"Mock Context"})}),p(s.Group,{grow:!0,px:"md",pb:"md",pt:0,sx:{flexGrow:1,position:"relative"},children:[p(s.Stack,{spacing:10,sx:{maxWidth:"unset !important"},children:[i(s.Text,{children:"A valid json string is required"}),i(s.JsonInput,{validationError:"Invalid json",formatOnBlur:!0,autosize:!0,minRows:30,value:n,onChange:r,sx:{flexGrow:1}})]}),i(s.ActionIcon,{mr:5,variant:"filled",color:"blue",sx:{position:"absolute",right:12,top:0},disabled:!o,onClick:a,children:i(V.DeviceFloppy,{size:20})})]})]})});function ao(){return i(s.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:p(s.Group,{position:"apart",grow:!0,align:"stretch",noWrap:!0,children:[i(io,{}),i(Lt,{showSQLSnippets:!1})]})})}function oo({data:e}){return e.length===0?i(s.Box,{sx:{height:"5em"}}):p(s.Table,{children:[i("thead",{children:i("tr",{children:Object.keys(e==null?void 0:e[0]).map(t=>i("th",{children:i(s.Text,{weight:700,color:"#000",children:t})},t))})}),i("tbody",{children:e.slice(0,10).map((t,n)=>i("tr",{children:Object.values(t).map((r,a)=>i("td",{children:i(s.Group,{sx:{"&, .mantine-Text-root":{fontFamily:"monospace"}},children:i(s.Text,{children:r})})},`${r}--${a}`))},`row-${n}`))})]})}const pr=I.observer(function({id:t}){const n=j(),{data:r,state:a}=n.getDataStuffByID(t),o=a==="loading",l=()=>{n.queries.refetchDataByQueryID(t)};return p(s.Stack,{my:"xl",sx:{border:"1px solid #eee"},children:[p(s.Group,{position:"apart",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[p(s.Group,{position:"left",children:[i(s.Text,{weight:500,children:"Preview Data"}),r.length>10&&p(s.Text,{size:"sm",color:"gray",children:["Showing 10 rows of ",r.length]})]}),i(s.ActionIcon,{mr:15,variant:"subtle",color:"blue",disabled:o,onClick:l,children:i(V.Refresh,{size:15})})]}),p(s.Box,{sx:{position:"relative"},children:[i(s.LoadingOverlay,{visible:o}),i(oo,{data:r})]})]})});function so(e,t,n,r){const a=Bt(t,n,[],r),o=Object.keys(a),l=Object.values(a);try{return new Function(...o,`return \`${e}\`;`)(...l)}catch(u){return console.info(u),u.message}}function qt(e,t={}){const n=Object.keys(t),r=Object.values(t);try{return new Function(...n,`return \`${e}\`;`)(...r)}catch(a){throw n.length===0&&e.includes("$")?new Error("[formatSQL] insufficient params"):a}}function Bt(e,t,n,r){const a={...t,...e},o={context:a,filters:r},l=n.reduce((u,c)=>(u[c.key]=qt(c.value,o),u),{});return U.default.merge({},{context:a,filters:r,sql_snippets:l})}function fr(e,t,n,r,a){try{const o=Bt(t,n,r,a);return qt(e,o)}catch(o){return console.error(o),o.message}}function lo(e){e=e||{};const t=Object.keys(e).sort(),n=[];for(let r=0;r<t.length;r++){const a=t[r];if(a!="authentication"&&e[a])n.push(t[r]+"="+(typeof e[a]=="object"?JSON.stringify(e[a]):e[a]));else{const o=Object.keys(e[a]).sort();for(let l=0;l<o.length;l++){const u=o[l];u!="sign"&&e[a][u]&&n.push(o[l]+"="+(typeof e[a][u]=="object"?JSON.stringify(e[a][u]):e[a][u]))}}}return n.sort().join("&")}function uo(e,t){let n=lo(e);return n+="&key="+t,qa.default.MD5(n).toString().toUpperCase()}const Be={baseURL:"http://localhost:31200",app_id:"",app_secret:"",getAuthentication(e){if(!this.app_id||!this.app_secret)return;const t=new Date().getTime().toString();return{app_id:this.app_id,nonce_str:t,sign:uo({app_id:this.app_id,nonce_str:t,...e},this.app_secret)}},getRequest(e){return(t,n,r={})=>{const a=window.localStorage.getItem("token"),o={"X-Requested-With":"XMLHttpRequest","Content-Type":r.string?"application/x-www-form-urlencoded":"application/json",authorization:a?`bearer ${a}`:"",...r.headers},l={baseURL:this.baseURL,method:e,url:t,params:e==="GET"?n:r.params,headers:o};return["POST","PUT"].includes(e)&&(l.data=r.string?JSON.stringify(n):n,l.data.authentication=this.getAuthentication(l.data)),Jn.default(l).then(u=>u.data).catch(u=>Promise.reject(u))}}};function hr(e){Be.baseURL!==e.apiBaseURL&&(Be.baseURL=e.apiBaseURL),e.app_id&&(Be.app_id=e.app_id),e.app_secret&&(Be.app_secret=e.app_secret)}async function co({context:e,mock_context:t,sqlSnippets:n,title:r,query:a,filterValues:o}){if(!a.sql)return[];const{type:l,key:u,sql:c}=a,g=c.includes("$"),d=Bt(e,t,n,o),f=qt(c,d);return g&&(console.groupCollapsed(`Final SQL for: ${r}`),console.log(f),console.groupEnd()),await Be.getRequest("POST")("/query",{type:l,key:u,query:f})}async function go(){try{return(await Be.getRequest("POST")("/datasource/list",{filter:{},sort:{field:"create_time",order:"ASC"},pagination:{page:1,pagesize:100}})).data}catch(e){return console.error(e),[]}}const po=x.forwardRef(({label:e,type:t,...n},r)=>p(s.Group,{position:"apart",ref:r,...n,children:[i(s.Text,{children:e}),i(s.Text,{children:t})]})),fo=I.observer(function({value:t,onChange:n}){const{data:r=[],loading:a}=W.useRequest(go,{refreshDeps:[]},[]),o=x.useMemo(()=>r.map(u=>({label:u.key,value:u.key,type:u.type})),[r]),l=x.useMemo(()=>o.reduce((u,c)=>(u[c.value]=c.type,u),{}),[o]);return i(s.Select,{label:"Data Source",data:o,itemComponent:po,sx:{flex:1},disabled:a,value:t.key,onChange:u=>{u!==null&&n({key:u,type:l[u]})}})});function ho(e,t){if(e==null)return{};var n={},r=Object.keys(e),a,o;for(o=0;o<r.length;o++)a=r[o],!(t.indexOf(a)>=0)&&(n[a]=e[a]);return n}function ut(e,t){if(e==null)return{};var n=ho(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)r=o[a],!(t.indexOf(r)>=0)&&(!Object.prototype.propertyIsEnumerable.call(e,r)||(n[r]=e[r]))}return n}var mo=["size","color","stroke"];function vo(e){var t=e.size,n=t===void 0?24:t,r=e.color,a=r===void 0?"currentColor":r,o=e.stroke,l=o===void 0?2:o,u=ut(e,mo);return p("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:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",...u,children:[i("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),i("line",{x1:12,y1:5,x2:12,y2:19}),i("line",{x1:18,y1:13,x2:12,y2:19}),i("line",{x1:6,y1:13,x2:12,y2:19})]})}var yo=["size","color","stroke"];function bo(e){var t=e.size,n=t===void 0?24:t,r=e.color,a=r===void 0?"currentColor":r,o=e.stroke,l=o===void 0?2:o,u=ut(e,yo);return p("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:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",...u,children:[i("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),i("line",{x1:12,y1:5,x2:12,y2:19}),i("line",{x1:18,y1:11,x2:12,y2:5}),i("line",{x1:6,y1:11,x2:12,y2:5})]})}var Co=["size","color","stroke"];function wo(e){var t=e.size,n=t===void 0?24:t,r=e.color,a=r===void 0?"currentColor":r,o=e.stroke,l=o===void 0?2:o,u=ut(e,Co);return p("svg",{xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-device-floppy",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",...u,children:[i("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),i("path",{d:"M6 4h10l4 4v10a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2"}),i("circle",{cx:12,cy:14,r:2}),i("polyline",{points:"14 4 14 8 8 8 8 4"})]})}var xo=["size","color","stroke"];function mr(e){var t=e.size,n=t===void 0?24:t,r=e.color,a=r===void 0?"currentColor":r,o=e.stroke,l=o===void 0?2:o,u=ut(e,xo);return p("svg",{xmlns:"http://www.w3.org/2000/svg",className:"icon icon-tabler icon-tabler-trash",width:n,height:n,viewBox:"0 0 24 24",strokeWidth:l,stroke:a,fill:"none",strokeLinecap:"round",strokeLinejoin:"round",...u,children:[i("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"}),i("line",{x1:4,y1:7,x2:20,y2:7}),i("line",{x1:10,y1:11,x2:10,y2:17}),i("line",{x1:14,y1:11,x2:14,y2:17}),i("path",{d:"M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12"}),i("path",{d:"M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3"})]})}const So=e=>{const{queryModel:t}=e,n=j(),r=n.findDependingPanels(t.id),a=r.length>0,o=i(s.ActionIcon,{color:"red",size:"sm",disabled:a,onClick:()=>n.queries.removeQuery(t.id),children:i(mr,{})});return a?i(s.Tooltip,{label:`This query is used in the following panels: ${r.join(", ")}`,withArrow:!0,events:{hover:!0,focus:!1,touch:!1},children:i("span",{children:o})}):o},_o=I.observer(So),Mo=I.observer(({value:e})=>{const t=j(),n=t.context.current,r=M.default.useMemo(()=>fr(e,n,t.mock_context.current,t.sqlSnippets.current,t.filters.values),[e,n,t.mock_context.current,t.sqlSnippets.current,t.filters.values]);return i(Le.Prism,{language:"sql",colorScheme:"light",children:r})}),Do=I.observer(function({queryModel:t}){const[n,r]=M.default.useState(t.sql);M.default.useEffect(()=>{r(l=>l!==t.sql?t.sql:l)},[t.sql]);const a=n!==t.sql,o=()=>{t.setSQL(n)};return p(s.Stack,{sx:{border:"1px solid #eee",flexGrow:1},children:[p(s.Group,{position:"apart",py:"md",px:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[i(s.Text,{weight:500,children:"Edit Query"}),i(_o,{queryModel:t})]}),p(s.Stack,{my:0,p:"md",pr:40,children:[p(s.Group,{grow:!0,children:[i(s.TextInput,{placeholder:"A unique name",label:"Name",required:!0,sx:{flex:1},value:t.name,onChange:l=>{t.setName(l.currentTarget.value)}}),i(fo,{value:{type:t.type,key:t.key},onChange:({type:l,key:u})=>{t.setKey(u),t.setType(l)}})]}),p(s.Tabs,{defaultValue:"SQL",children:[p(s.Tabs.List,{children:[i(s.Tabs.Tab,{value:"SQL",children:"SQL"}),i(s.Tabs.Tab,{value:"Preview",children:"Preview"})]}),i(s.Tabs.Panel,{value:"SQL",pt:"sm",children:p(s.Box,{sx:{position:"relative"},children:[i(s.Textarea,{autosize:!0,minRows:12,maxRows:24,className:"code-textarea",value:n,onChange:l=>{r(l.currentTarget.value)}}),i(s.ActionIcon,{mr:5,variant:"filled",color:"blue",sx:{position:"absolute",right:10,top:10},disabled:!a,onClick:o,children:i(V.DeviceFloppy,{size:20})})]})}),i(s.Tabs.Panel,{value:"Preview",pt:"sm",children:i(Mo,{value:t.sql})})]})]})]})}),Io=I.observer(function({id:t}){const n=j(),r=M.default.useMemo(()=>n.queries.findByID(t),[n.queries,t]);return t?r?i(Do,{queryModel:r}):i("span",{children:"Invalid Query ID"}):null});var Ae=(e=>(e.Postgresql="postgresql",e.MySQL="mysql",e.HTTP="http",e))(Ae||{});const Vo=I.observer(function({id:t,setID:n}){const r=j(),a=()=>{var l;n((l=r.queries.firstID)!=null?l:"")};M.default.useEffect(()=>{if(!t){a();return}r.queries.current.findIndex(u=>u.id===t)===-1&&a()},[t,r.queries.current,a]);const o=()=>{const l=ie.randomId();r.queries.append(y.cast({id:l,name:l,type:Ae.Postgresql,key:"",sql:""})),n(l)};return i(s.Group,{pb:"xl",grow:!0,sx:{width:"100%"},children:p(s.Group,{position:"left",sx:{flexGrow:1,maxWidth:"600px",alignItems:"baseline"},children:[i(s.Text,{children:"Select a Query"}),i(s.Select,{data:r.queries.options,value:t,onChange:n,allowDeselect:!1,clearable:!1,sx:{flexGrow:1,maxWidth:"300px"}}),i(s.Text,{children:"or"}),i(s.Group,{position:"center",mt:"md",children:i(s.Button,{onClick:o,children:"Add a Query"})})]})})}),Eo=I.observer(function(){const[t,n]=M.default.useState("");return p(s.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:[p(s.Group,{position:"apart",grow:!0,align:"stretch",noWrap:!0,children:[p(s.Stack,{sx:{flexGrow:1,maxWidth:"calc(60% - 16px)"},children:[i(Vo,{id:t,setID:n}),i(Io,{id:t})]}),i(Lt,{})]}),i(pr,{id:t})]})}),vr=({value:e,onChange:t,height:n="200px",defaultLanguage:r="sql"})=>{const a=l=>{console.log("changing"),t==null||t(l!=null?l:"")},o=!t;return i(Xn.default,{className:"minimal-monaco-editor",height:n,defaultLanguage:r,value:e,onChange:o?void 0:a,theme:"vs-dark",options:{lineNumbers:"off",folding:!1,lineDecorationsWidth:20,lineNumbersMinChars:0,wordWrap:"on",minimap:{enabled:!1},readOnly:o||!t}})},ko=I.observer(({value:e})=>{const t=j(),n=t.context.current,r=so(e,n,t.mock_context.current,t.filters.values);return i(vr,{height:"400px",value:r})}),To=I.observer(({item:e,remove:t,onKeyChanged:n})=>{const[r,a]=x.useState("SQL"),[o,l]=x.useState(e.key),u=()=>{e.setKey(o),n(o)},c=o!==e.key,g=e.isADuplicatedKey(o),[d,f]=x.useState(e.value),h=()=>{e.setValue(d)},v=d!==e.value;return p(s.Stack,{my:0,p:0,pt:"md",pr:20,children:[p(s.Group,{sx:{alignItems:"end"},spacing:40,children:[i(s.TextInput,{label:g?"This key is occupied by another snippet":"Key",value:o,onChange:C=>{l(C.currentTarget.value)},sx:{flexGrow:"1 !important"},rightSection:i(s.ActionIcon,{color:"blue",variant:"subtle",onClick:u,disabled:!c||g,children:i(V.DeviceFloppy,{size:16})}),error:g}),i(s.Button,{leftIcon:i(V.Trash,{size:16}),color:"red",variant:"light",onClick:t,children:"Delete this SQL Snippet"})]}),p(s.Tabs,{value:r,onTabChange:a,children:[p(s.Tabs.List,{sx:{position:"relative"},children:[i(s.Tabs.Tab,{value:"SQL",children:"SQL"}),i(s.Tabs.Tab,{value:"Preview",children:"Preview"}),i(s.ActionIcon,{color:"blue",variant:"filled",onClick:h,disabled:!v,sx:{position:"absolute",top:0,right:10},children:i(V.DeviceFloppy,{size:18})})]}),i(s.Tabs.Panel,{value:"SQL",pt:"sm",children:i(vr,{height:"400px",value:d,onChange:f})}),i(s.Tabs.Panel,{value:"Preview",pt:"sm",children:i(ko,{value:d})})]})]})}),Ao=I.observer(function(){var u;const t=j(),[n,r]=x.useState((u=t.sqlSnippets.firstKey)!=null?u:null),a=()=>{const c=ie.randomId();t.sqlSnippets.append(y.cast({key:c,value:""})),r(c)},o=c=>{r(c)},l=c=>()=>{var g;t.sqlSnippets.remove(c),r((g=t.sqlSnippets.firstKey)!=null?g:null)};return p(s.Tabs,{defaultValue:n,value:n,onTabChange:r,children:[p(s.Tabs.List,{children:[t.sqlSnippets.current.map(c=>i(s.Tabs.Tab,{value:c.key,children:c.key},c.key)),i(s.Tabs.Tab,{onClick:a,value:"add",children:i(s.ActionIcon,{children:i(V.Plus,{size:18,color:"#228be6"})})})]}),t.sqlSnippets.current.map((c,g)=>i(s.Tabs.Panel,{value:c.key,children:i(To,{item:c,remove:l(g),onKeyChanged:o})},c.key))]})});function Ro(){return i(s.Box,{p:0,sx:{height:"90vh",maxHeight:"calc(100vh - 225px)"},children:p(s.Group,{position:"apart",grow:!0,align:"stretch",children:[i(Ao,{}),i(Lt,{showSQLSnippets:!1})]})})}const $o=I.observer(function({opened:t,close:n}){const{freezeLayout:r}=M.default.useContext(ye);return M.default.useEffect(()=>{r(t)},[t]),i(s.Modal,{size:"96vw",overflow:"inside",opened:t,onClose:n,title:"Data Settings",trapFocus:!0,onDragStart:a=>{a.stopPropagation()},children:p(s.Tabs,{defaultValue:"Queries",children:[p(s.Tabs.List,{children:[i(s.Tabs.Tab,{value:"Mock Context",children:"Mock Context"}),i(s.Tabs.Tab,{value:"SQL Snippets",children:"SQL Snippets"}),i(s.Tabs.Tab,{value:"Queries",children:"Queries"})]}),i(s.Tabs.Panel,{value:"Mock Context",pt:"sm",children:i(ao,{})}),i(s.Tabs.Panel,{value:"SQL Snippets",pt:"sm",children:i(Ro,{})}),i(s.Tabs.Panel,{value:"Queries",pt:"sm",children:i(Eo,{})})]})})});var pe=(e=>(e.Select="select",e.MultiSelect="multi-select",e.TextInput="text-input",e.Checkbox="checkbox",e.DateRange="date-range",e))(pe||{});y.types.model({type:y.types.enumeration("DataSourceType",[Ae.Postgresql,Ae.MySQL,Ae.HTTP]),key:y.types.string,sql:y.types.string});const yr=y.types.model("FilterConfigModel_TextInput",{_name:y.types.literal("text-input"),required:y.types.boolean,default_value:y.types.string}).actions(e=>({setRequired(t){e.required=t},setDefaultValue(t){e.default_value=t}})),br=()=>yr.create({_name:"text-input",required:!1,default_value:""}),Fo=I.observer(function({config:t}){return i(B,{children:i(s.Checkbox,{checked:t.default_value,onChange:n=>t.setDefaultValue(n.currentTarget.checked),label:"Default Checked"})})}),zo=[{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"}],Oo=I.observer(function({config:t}){return p(B,{children:[p(s.Group,{children:[i(s.Checkbox,{checked:t.required,onChange:n=>t.setRequired(n.currentTarget.checked),label:"Required"}),i(s.Checkbox,{checked:t.clearable,onChange:n=>t.setClearable(n.currentTarget.checked),label:"Clearable"})]}),i(s.Select,{data:zo,label:"Display Format",value:t.inputFormat,onChange:t.setInputFormat}),i(or,{label:"Default Value",config:t,value:t.default_value,onChange:t.setDefaultValue})]})}),Cr=I.observer(({value:e,onChange:t})=>{const n=j(),r=M.default.useMemo(()=>n.queries.current.map(o=>({value:o.id,label:o.id})),[n.queries.current]),a=r.length===0;return i(s.Select,{label:"Pick a query",data:r,value:e,onChange:t,allowDeselect:!1,clearable:!1,sx:{flexGrow:1},disabled:a,error:a?"You need to add a query in Data Settings":void 0})}),Po=`
|
|
41
41
|
// row
|
|
42
42
|
{
|
|
43
43
|
label: string;
|
|
44
44
|
value: string;
|
|
45
45
|
description?: string; // optional
|
|
46
46
|
}
|
|
47
|
-
`,yr=()=>{const[e,t]=x.useState(!1);return p(U,{children:[a(s.Button,{variant:"subtle",compact:!0,onClick:()=>t(n=>!n),children:e?"Close":"Click to see expected data structure"}),a(s.Collapse,{in:e,children:a(Ge.Prism,{language:"typescript",noCopy:!0,colorScheme:"dark",children:Ro})})]})},$o=I.observer(function({config:t}){const n=()=>{t.addStaticOption({label:"",value:""})},r=t.static_options,i=[...r];return p(U,{children:[a(s.TextInput,{label:"Min-width",value:t.min_width,onChange:o=>t.setMinWidth(o.currentTarget.value),placeholder:"200px"}),a(s.Divider,{label:"Configure options",labelPosition:"center"}),r.length>0&&a(s.MultiSelect,{label:"Default Selection",data:i,value:t.default_value,onChange:t.setDefaultValue}),r.map((o,l)=>p(s.Group,{sx:{position:"relative"},pr:"40px",children:[a(s.TextInput,{label:"Label",required:!0,value:t.static_options[l].label,onChange:u=>{t.static_options[l].setLabel(u.currentTarget.value)},sx:{flexGrow:1}}),a(s.TextInput,{label:"Value",required:!0,value:t.static_options[l].value,onChange:u=>{t.static_options[l].setValue(u.currentTarget.value)},sx:{flexGrow:1}}),a(s.ActionIcon,{color:"red",variant:"subtle",onClick:()=>t.removeStaticOption(l),sx:{position:"absolute",top:28,right:5},children:a(k.Trash,{size:16})})]})),a(s.Button,{size:"xs",color:"blue",leftIcon:a(k.PlaylistAdd,{size:20}),onClick:n,sx:{width:"50%"},mx:"auto",children:"Add an Option"}),a(s.Divider,{label:"Or fetch options from database",labelPosition:"center"}),a(s.Checkbox,{checked:t.select_first_by_default,onChange:o=>t.setSelectFirstByDefault(o.currentTarget.checked),label:"Select the first option by default"}),a(vr,{value:t.options_query_id,onChange:t.setOptionsQueryID}),a(yr,{})]})}),Fo=I.observer(function({config:t}){const n=()=>{t.addStaticOption({label:"",value:""})},r=t.static_options,i=[{label:"No default selection",value:""},...r];return p(U,{children:[a(s.Checkbox,{checked:t.required,onChange:o=>t.setRequired(o.currentTarget.checked),label:"Required"}),a(s.TextInput,{label:"Width",value:t.width,onChange:o=>t.setWidth(o.currentTarget.value),placeholder:"200px"}),a(s.Divider,{label:"Configure options",labelPosition:"center"}),r.length>0&&a(s.Select,{label:"Default Selection",data:i,value:t.default_value,onChange:t.setDefaultValue}),r.map((o,l)=>p(s.Group,{sx:{position:"relative"},pr:"40px",children:[a(s.TextInput,{label:"Label",required:!0,value:t.static_options[l].label,onChange:u=>{t.static_options[l].setLabel(u.currentTarget.value)},sx:{flexGrow:1}}),a(s.TextInput,{label:"Value",required:!0,value:t.static_options[l].value,onChange:u=>{t.static_options[l].setValue(u.currentTarget.value)},sx:{flexGrow:1}}),a(s.ActionIcon,{color:"red",variant:"subtle",onClick:()=>t.removeStaticOption(l),sx:{position:"absolute",top:28,right:5},children:a(k.Trash,{size:16})})]},l)),a(s.Button,{size:"xs",color:"blue",leftIcon:a(k.PlaylistAdd,{size:20}),onClick:n,sx:{width:"50%"},mx:"auto",children:"Add an Option"}),a(s.Divider,{label:"Or fetch options from database",labelPosition:"center"}),a(s.Checkbox,{checked:t.select_first_by_default,onChange:o=>t.setSelectFirstByDefault(o.currentTarget.checked),label:"Select the first option by default"}),a(vr,{value:t.options_query_id,onChange:t.setOptionsQueryID}),a(yr,{})]})}),zo=I.observer(function({config:t}){return p(U,{children:[a(s.TextInput,{label:"Default Value",value:t.default_value,onChange:n=>{t.setDefaultValue(n.currentTarget.value)}}),a(s.Checkbox,{checked:t.required,onChange:n=>t.setRequired(n.currentTarget.checked),label:"Required"})]})}),Oo=I.observer(function({filter:t}){const n=t.plainDefaultValue,[r,i]=S.default.useState(n);return S.default.useEffect(()=>{i(n)},[n]),p(s.Box,{sx:{maxWidth:"30em"},children:[a(s.Text,{pb:"md",color:"gray",children:"Preview"}),a(lr,{filter:t,value:r,onChange:i}),a(s.Text,{pt:"lg",pb:"md",color:"gray",children:"Config"}),a(Ge.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(t,null,4)})]})}),Po={select:Fo,"multi-select":$o,"text-input":zo,checkbox:ko,"date-range":To},Go=[{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"}],No=I.observer(function({filter:t,index:n}){const r=B(),i=S.default.useMemo(()=>Po[t.type],[t.type]);return p(s.SimpleGrid,{cols:2,children:[p(s.Box,{pl:"md",children:[a(s.Text,{pb:"md",color:"gray",children:"Edit"}),p(s.Stack,{sx:{maxWidth:"30em"},children:[a(s.NumberInput,{label:"Placement Order",required:!0,value:t.order,onChange:t.setOrder,hideControls:!0}),a(s.MultiSelect,{label:"Visible in...",data:r.views.options,value:[...t.visibleInViewsIDs],onChange:t.setVisibleInViewsIDs}),a(s.TextInput,{label:"Key",placeholder:"A unique key to refer",required:!0,value:t.key,onChange:o=>{t.setKey(o.currentTarget.value)}}),a(s.TextInput,{label:"Label",placeholder:"Label for this field",required:!0,value:t.label,onChange:o=>{t.setLabel(o.currentTarget.value)}}),a(s.Select,{label:"Widget",data:Go,required:!0,value:t.type,onChange:t.setType}),a(i,{config:t.config,index:n})]})]}),a(Oo,{filter:t})]})}),Jp="",Lo=I.observer(function(){const t=B(),n=t.filters.current,r=()=>{const i=ie.randomId(),o={id:i,key:i,label:i,order:n.length+1,type:pe.TextInput,config:mr(),visibleInViewsIDs:["Main"]};t.filters.append(o)};return p(s.Box,{sx:{height:"90vh",maxHeight:"calc(100vh - 185px)"},p:0,children:[a(s.Group,{sx:{position:"absolute",top:"16px",right:"16px"},children:a(s.Button,{size:"xs",color:"red",leftIcon:a(k.Recycle,{size:20}),disabled:!t.filtersChanged,onClick:t.resetFilters,children:"Revert Changes"})}),a(s.Tabs,{className:"filter-settings-tabs",orientation:"vertical",defaultValue:t.filters.firstID,styles:{root:{display:"block"}},children:p(s.Group,{sx:{height:"100%"},children:[p(s.Stack,{sx:{height:"100%"},children:[a(s.Tabs.List,{position:"left",sx:{flexGrow:1,width:"200px"},children:t.filters.current.map(i=>a(s.Tabs.Tab,{value:i.id,sx:{maxWidth:"100%",overflow:"scroll"},children:i.label},i.id))}),a(s.Button,{size:"xs",color:"blue",leftIcon:a(k.PlaylistAdd,{size:20}),onClick:r,children:"Add a Filter"})]}),a(s.Box,{sx:{flexGrow:1,height:"100%"},children:t.filters.current.map((i,o)=>a(s.Tabs.Panel,{value:i.id,sx:{height:"100%"},children:p(s.Stack,{sx:{height:"100%"},spacing:"sm",children:[a(s.Box,{sx:{flexGrow:1,maxHeight:"calc(100% - 52px)",overflow:"scroll"},children:a(No,{filter:i,index:o})}),a(s.Group,{position:"right",pt:10,children:a(s.Button,{size:"xs",color:"red",leftIcon:a(k.Trash,{size:20}),onClick:()=>t.filters.remove(o),children:"Delete this filter"})})]})},i.id))})]})})]})}),qo=I.observer(function({opened:t,close:n}){const{freezeLayout:r}=S.default.useContext(ye);return S.default.useEffect(()=>{r(t)},[t]),a(s.Modal,{size:"96vw",overflow:"inside",opened:t,onClose:n,title:"Filters",trapFocus:!0,onDragStart:i=>{i.stopPropagation()},withCloseButton:!1,children:a(Lo,{})})});var br=(e=>(e.Use="use",e.Edit="edit",e))(br||{}),fe=(e=>(e.Division="div",e.Modal="modal",e))(fe||{}),Cr=(e=>(e.Select="select",e.MultiSelect="multi-select",e.TextInput="text-input",e.Checkbox="checkbox",e.DateRange="date-range",e))(Cr||{});const Bo=I.observer(()=>{const t=B().views.VIE;return!t||t.type!==fe.Division?null:p(s.Stack,{children:[a(s.Divider,{mt:8,mb:0,label:"Division settings",labelPosition:"center"}),a(s.Text,{align:"center",size:"xs",color:"dimmed",children:"Under construction"})]})}),jo=I.observer(()=>{const t=B().views.VIE;return!t||t.type!==fe.Modal?null:p(s.Stack,{children:[a(s.Divider,{mt:8,label:"Modal settings",labelPosition:"center"}),p(s.Group,{grow:!0,children:[a(s.TextInput,{label:"Width",value:t.config.width,onChange:n=>t.updateConfig("width",n.currentTarget.value),placeholder:"600px / 50vw"}),a(s.TextInput,{label:"Height",value:t.config.height,onChange:n=>t.updateConfig("height",n.currentTarget.value),placeholder:"600px / 50vw"})]})]})}),Wo=I.observer(()=>p(U,{children:[a(Bo,{}),a(jo,{})]})),Uo=[{label:"Division",value:fe.Division},{label:"Modal",value:fe.Modal}],Yo=I.observer(()=>{const t=B().views.VIE;return t?p(s.Stack,{sx:{position:"relative"},children:[a(s.TextInput,{label:"Name",value:t.name,onChange:n=>{t.setName(n.currentTarget.value)}}),a(s.Select,{label:"Type",value:t.type,onChange:t.setType,data:Uo}),a(Wo,{})]}):null}),Ho=I.observer(({opened:e,close:t})=>{var i;const n=B(),{freezeLayout:r}=S.default.useContext(ye);return S.default.useEffect(()=>{r(e)},[e]),a(s.Modal,{size:"500px",overflow:"inside",opened:e,onClose:t,withCloseButton:!1,styles:{header:{width:"100%"},title:{width:"100%"}},title:p(s.Group,{position:"apart",children:[p(s.Text,{sx:{flexGrow:1},children:["Editing ",(i=n.views.VIE)==null?void 0:i.name]}),a(s.ActionIcon,{size:18,color:"red",onClick:n.views.removeVIE,disabled:n.views.isVIETheFirstView,children:a(k.Trash,{size:18})})]}),trapFocus:!0,onDragStart:o=>{o.stopPropagation()},children:a(Yo,{})})}),Qo=x.forwardRef(({label:e,type:t,...n},r)=>t!=="TRIGGER_TO_ADD"?a("div",{ref:r,...n,children:p(s.Group,{noWrap:!0,position:"apart",children:[a(s.Text,{size:"sm",children:e}),a(s.Text,{size:"xs",color:"dimmed",children:t})]})}):a("div",{ref:r,...n,children:a(s.Group,{noWrap:!0,grow:!0,children:a(s.Text,{size:"sm",align:"center",color:"#228be6",children:e})})})),wr="TRIGGER_TO_ADD",Jo=I.observer(({value:e,onChange:t,triggerAdd:n,triggerEdit:r,options:i})=>{const o=x.useMemo(()=>[...i,{label:"Add a View",value:wr,type:"TRIGGER_TO_ADD"}],[i,n]),l=u=>{u!==wr?t(u):n()};return p(s.Group,{position:"left",spacing:0,sx:{minWidth:"260px"},children:[a(s.Select,{value:e,onChange:l,placeholder:"Pick a View",itemComponent:Qo,data:o,nothingFound:"Empty",sx:{flexGrow:1},styles:{input:{borderTopRightRadius:0,borderBottomRightRadius:0}}}),a(s.ActionIcon,{onClick:r,variant:"default",size:36,sx:{borderLeft:0,borderTopLeftRadius:0,borderBottomLeftRadius:0,"&:active":{transform:"none",svg:{transform:"translateY(1px)"}}},children:a(k.Settings,{size:20})})]})}),Xo=I.observer(()=>{const e=B(),[t,n]=x.useState(!1),r=()=>{n(!0)},i=()=>{n(!1)};return p(U,{children:[a(Jo,{value:e.views.idOfVIE,onChange:e.views.setIDOfVIE,triggerAdd:e.views.addARandomNewView,triggerEdit:r,options:e.views.options}),a(Ho,{opened:t,close:i})]})}),xr={"> button":{"&:first-of-type":{borderTopRightRadius:0,borderBottomRightRadius:0,borderRightWidth:.5},"&:last-of-type":{borderTopLeftRadius:0,borderBottomLeftRadius:0,borderLeftWidth:.5}}},Sr=I.observer(function({saveChanges:t}){const n=B(),r=S.default.useCallback(()=>{const A=n.queries.json,T=n.views.json,F=n.sqlSnippets.json,O=n.filters.current,q=n.mock_context.current;return{filters:O,views:T,definition:{sqlSnippets:F,queries:A,mock_context:q},version:n.version}},[n]),i=()=>{n.reset()},o=n.changed,{inEditMode:l,inUseMode:u}=S.default.useContext(ye),[d,g]=S.default.useState(!1),c=()=>g(!0),f=()=>g(!1),[h,v]=S.default.useState(!1),C=()=>v(!0),b=()=>v(!1),_=()=>{const A=JSON.stringify(r(),null,2);Xa(n.name,A)};return p(s.Group,{position:"apart",pt:0,px:10,pb:"xs",children:[a(s.Group,{position:"left",children:l&&a(Xo,{})}),p(s.Group,{position:"right",sx:{button:{minWidth:"40px"}},children:[l&&p(U,{children:[a(s.Button,{variant:"filled",size:"xs",disabled:!n.views.VIE,onClick:n.views.addAPanelToVIE,leftIcon:a(k.PlaylistAdd,{size:20}),children:"Add a Panel"}),p(s.Group,{spacing:0,sx:xr,children:[a(s.Tooltip,{label:"Filters",children:a(s.ActionIcon,{variant:"default",size:"md",onClick:C,children:a(k.Filter,{size:20})})}),a(s.Tooltip,{label:"Data Settings",children:a(s.ActionIcon,{variant:"default",size:"md",onClick:c,children:a(k.Database,{size:20})})})]}),p(s.Group,{spacing:0,sx:xr,children:[a(s.Tooltip,{label:"Save Changes",children:a(s.ActionIcon,{variant:"default",size:"md",onClick:t,disabled:!o,children:a(k.DeviceFloppy,{size:20,color:"green"})})}),a(s.Tooltip,{label:"Revert Changes",children:a(s.ActionIcon,{variant:"default",size:"md",disabled:!o,onClick:i,children:a(k.Recycle,{size:20,color:"red"})})})]})]}),!u&&p(s.Menu,{width:180,trigger:"hover",children:[a(s.Menu.Target,{children:a(s.ActionIcon,{variant:"default",size:"md",children:a(k.Share,{size:20})})}),p(s.Menu.Dropdown,{children:[a(s.Menu.Item,{icon:a(k.Download,{size:14}),onClick:n.queries.downloadAllData,children:"Download Data"}),a(s.Menu.Item,{icon:a(k.Code,{size:14}),onClick:_,children:"Download Schema"})]})]})]}),a(qo,{opened:h,close:b}),a(Eo,{opened:d,close:f})]})}),Xp="",_r=I.observer(()=>{const{freezeLayout:e}=S.default.useContext(ye),[t,n]=S.default.useState(!1),{panel:r}=ee();return S.default.useEffect(()=>{e(t)},[t]),!r.description||r.description==="<p><br></p>"?null:p(U,{children:[a(s.Modal,{opened:t,onClose:()=>n(!1),title:r.title,withCloseButton:!1,children:a(Jn.default,{readOnly:!0,value:r.description,onChange:j.default.noop,sx:{border:"none"}})}),a(s.Tooltip,{label:"Click to see description",position:"top-start",withinPortal:!0,children:a(s.ActionIcon,{variant:"subtle",color:"blue",onClick:()=>n(i=>!i),sx:{verticalAlign:"baseline",cursor:"pointer"},children:a(k.InfoCircle,{size:20})})})]})}),Mr=e=>{const{title:t="Variables",variables:n}=e,r=ie.useClipboard(),i=o=>{r.copy(o),it.showNotification({color:"green",message:"Copied to clipboard"})};return p(s.Paper,{withBorder:!0,p:"sm",children:[a(s.Text,{size:"xs",color:"dimmed",mb:"sm",children:t}),a(s.Stack,{style:{maxHeight:"500px"},children:n.map(o=>p(s.Text,{size:"sm",children:[p(s.Code,{color:"teal",children:["// ",o.description]}),a("br",{}),p(s.Code,{onClick:()=>i(o.name),style:{cursor:"pointer"},children:[o.name," : ",o.valueType]})]},o.name))})]})};class Ko{constructor(t,n){R(this,"operationId");R(this,"operation");R(this,"operationSchema");R(this,"variables",[]);this.operationManager=t,this.instance=n,Z.makeAutoObservable(this)}get schemaList(){return this.operationManager.getOperationSchemaList()}async configOperation(t,n){const r=await this.operationManager.retrieveTrigger(t),i=this.operationManager.getOperationSchemaList().find(o=>o.id===(r==null?void 0:r.schemaRef));Z.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 Zo(e){return!!e.operationId}const es=I.observer(({model:e,onClick:t})=>{var r;const n=(r=e.operationSchema)==null?void 0:r.displayName;return a(s.Button,{variant:"outline",onClick:t,children:n})}),ts=I.observer(({model:e})=>{const t={operation:e.operation,instance:e.instance,variables:[]};return x.createElement(e.operationSchema.configRender,t)});function ns({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(o=>o.id===i))}return a(s.Select,{label:"Operation",data:n,onChange:r,value:e.operationSchema.id})}const rs=I.observer(e=>{const[t,{setTrue:n,setFalse:r}]=W.useBoolean(!1),{operationManager:i,operationId:o,instance:l,variables:u}=e,d=W.useCreation(()=>new Ko(i,l),[i,l]);return W.useAsyncEffect(async()=>{await d.configOperation(o,u)},[o,d]),Zo(d)?p(U,{children:[a(es,{model:d,onClick:n}),a(s.Modal,{opened:t,onClose:r,title:"Operation Settings",closeButtonLabel:"close",children:p(s.Stack,{children:[a(ns,{model:d}),a(ts,{model:d}),a(Mr,{title:"Variables",variables:d.variables})]})})]}):null});class is{constructor(t,n){R(this,"triggerId");R(this,"trigger");R(this,"triggerSchema");R(this,"sampleData");this.triggerManager=t,this.instance=n,Z.makeAutoObservable(this)}get schemaList(){return this.triggerManager.getTriggerSchemaList()}async configTrigger(t,n){const r=await this.triggerManager.retrieveTrigger(t),i=this.triggerManager.getTriggerSchemaList().find(o=>o.id===(r==null?void 0:r.schemaRef));Z.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 as(this)}}function as(e){return!!e.triggerId&&!!e.triggerSchema}function os(e,t){return W.useCreation(()=>new is(e,t),[e,t])}const ss=I.observer(({model:e,onClick:t})=>{const n=e.triggerSchema.nameRender,r={trigger:e.trigger,instance:e.instance,sampleData:e.sampleData};return a(s.Button,{variant:"outline",onClick:t,children:x.createElement(n,r)})}),ls=I.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(o=>o.id===i))}return a(s.Select,{label:"Trigger",data:n,value:e.triggerSchema.id,onChange:r})}),us=I.observer(({model:e})=>{const t={trigger:e.trigger,instance:e.instance,sampleData:e.sampleData};return x.createElement(e.triggerSchema.configRender,t)}),ds=I.observer(e=>{const[t,{setTrue:n,setFalse:r}]=W.useBoolean(!1),i=e.model;return p(U,{children:[a(s.Modal,{opened:t,onClose:r,title:"Setup Trigger",closeButtonLabel:"close setup",children:p(s.Stack,{children:[a(ls,{model:i}),a(us,{model:i}),a(Mr,{title:"Payload",variables:i.triggerSchema.payload})]})}),a(ss,{onClick:n,model:i})]})});class je{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,w.omit(n,t))}async getItem(t){const n=await this.root.getItem(this.path);return t===null?n:w.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,o)=>{n(i,o)},r):this.root.watchItem(this.path,(i,o)=>{const l=w.get(i,t),u=w.get(o,t);l!==u&&n(l,u)},r)}}class Bt{constructor(t,n,r){R(this,"attachmentStorage");this.instance=t,this.attachmentKey=n,this.constructInstance=r,this.attachmentStorage=new je(t.instanceData,n)}async getInstance(t){if(await this.attachmentStorage.getItem(t))return this.constructInstance(new je(this.attachmentStorage,t))}async create(t,n){return await this.attachmentStorage.setItem(t,n),this.constructInstance(new je(this.attachmentStorage,t))}async remove(t){await this.attachmentStorage.deleteItem(t)}async list(){const t=await this.attachmentStorage.getItem(null);return Promise.all(w.values(t).map(n=>this.constructInstance(new je(this.attachmentStorage,n.id))))}}class Dr{constructor(t){R(this,"rootRef");this.rootRef=Z.observable({current:t})}async deleteItem(t){Z.runInAction(()=>{w.unset(this.rootRef.current,[t])})}getItem(t){const n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?Z.toJS(this.rootRef.current):w.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(w.isObject(n))Z.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else Z.runInAction(()=>{w.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,r){return Z.reaction(()=>this.getValueFromRoot(t),(i,o)=>{n(i,o)},{requiresObservable:!0,fireImmediately:w.get(r,"fireImmediately",!1)})}}class cs{constructor(){R(this,"channels",new Map);R(this,"globalChannel",new Xn.default)}getChannel(t){const n=this.channels.get(t);if(n)return n;const r=new Xn.default;return this.channels.set(t,r),r}}class gs{constructor(t){R(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 cs,instanceData:new Dr(t.viz.conf)};return this.instances.set(t.id,r),r}}function Ir(e,t,n,r){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new Dr({}),colorPalette:{getColor(){return()=>""}},data:t,variables:r}}const ps=e=>{const{panel:t,vizManager:n,data:r,variables:i}=e,o=n.resolveComponent(t.viz.type),l=n.getOrCreateInstance(t),u={...Ir(l,r,n,i),viewport:{width:t.layout.w,height:t.layout.h}},d=o.viewRender;return a(d,{context:u,instance:l,...w.omit(e,["panel","vizManager","data"])})},fs=e=>{const{vizManager:t,panel:n,panelInfoEditor:r,data:i,variables:o}=e,l=t.resolveComponent(n.viz.type),u=t.getOrCreateInstance(n),d={...Ir(u,i,t,o),panelInfoEditor:r},g=l.configRender;return a(g,{context:d,instance:u,...w.omit(e,["panel","vizManager","data","panelInfoEditor"])})},Vr=(e,t)=>{const n=Ye.default.bezier(e),r=Ye.default.bezier(t);return function(i){return i<50?n(i*2/100).hex():r((i-50)*2/100).hex()}},ut=e=>{const t=Ye.default.bezier(e);return function(n){return t(n/100).hex()}},hs={type:"interpolation",displayName:"Red / Green",getColor:Vr(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},ms={type:"interpolation",displayName:"Yellow / Blue",getColor:Vr(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},vs={type:"interpolation",displayName:"Red",getColor:ut(["#fff7f1","darkred"]),name:"red",category:"sequential"},ys={type:"interpolation",displayName:"Green",getColor:ut(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},bs={type:"interpolation",displayName:"Blue",getColor:ut(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},Cs={type:"interpolation",displayName:"Orange",getColor:ut(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"},ws="6.6.0";class xs{constructor(t){R(this,"staticColors",new Map);R(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 Ss{constructor(){R(this,"plugins",new Map);R(this,"vizComponents",new Map);R(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 _s{constructor(){R(this,"migrations",[])}version(t,n){return this.migrations.push({version:t,handler:n}),this}run(t,n,r){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 i=this.migrations.filter(u=>u.version>t.from&&u.version<=t.to),o=w.orderBy(i,"version","asc");if(((l=w.last(o))==null?void 0:l.version)!==t.to)throw new Error(`Migration to version ${t.to} not found`);return o.reduce((u,d)=>d.handler(u,r),n)}}class se extends _s{constructor(){super(),this.configVersions()}version(t,n){return super.version(t,(r,i)=>({version:t,...n(r,i)}))}async migrate({configData:t,panelModel:n}){const r=await t.getItem(null),i=w.get(r,"version",0),o=this.run({from:i,to:this.VERSION},r,{panelModel:n});await t.setItem(null,o)}async needMigration({configData:t}){const n=await t.getItem(null);return w.get(n,"version",0)<this.VERSION}}const N=(e,t)=>{const[n,{setFalse:r}]=W.useBoolean(!0),[i,o]=x.useState();x.useEffect(()=>(e.getItem(t).then(u=>{o(u),r()}),e.watchItem(t,u=>{o(u)})));const l=x.useCallback(async u=>{await e.setItem(t,u),o(u)},[e,t]);return{loading:n,value:i,set:l}},jt={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([H.GridComponent,H.VisualMapComponent,H.LegendComponent,H.TooltipComponent,Ve.CanvasRenderer]);function Ms({context:e}){const{value:t}=N(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{x_axis_data_key:o,y_axis_data_key:l,z_axis_data_key:u,xAxis3D:d,yAxis3D:g,zAxis3D:c}=w.defaults({},t,jt),f=x.useMemo(()=>{const C=w.minBy(n,b=>b[u]);return w.get(C,u)},[n,u]),h=x.useMemo(()=>{const C=w.maxBy(n,b=>b[u]);return w.get(C,u)},[n,u]),v={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:f,max:h,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:d,yAxis3D:g,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[o],C[l],C[u]])}]};return t?a(ke.default,{echarts:te,option:v,style:{width:r,height:i}}):null}function Ds({label:e,required:t,value:n,onChange:r,data:i,clearable:o=!1,sx:l,...u},d){const g=S.default.useMemo(()=>{if(!Array.isArray(i)||i.length===0)return[];const f=Object.keys(i[0]).map(h=>({label:h,value:h}));return o?f.concat([{label:"unset",value:""}]):f},[i]);return a(s.Select,{ref:d,label:e,data:g,value:n,onChange:r,required:t,sx:l,...u})}const Q=S.default.forwardRef(Ds);function Is({context:e}){const{value:t,set:n}=N(e.instanceData,"config"),r=e.data,i=w.defaults({},t,jt),{control:o,handleSubmit:l,reset:u}=M.useForm({defaultValues:i});return x.useEffect(()=>{u(i)},[t]),t?a(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:l(n),children:[a(s.Text,{children:"X Axis"}),p(s.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[a(M.Controller,{name:"x_axis_data_key",control:o,render:({field:d})=>a(Q,{label:"Data Field",required:!0,data:r,...d})}),a(M.Controller,{name:"xAxis3D.name",control:o,render:({field:d})=>a(s.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...d})})]}),a(s.Text,{mt:"lg",children:"Y Axis"}),p(s.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[a(M.Controller,{name:"y_axis_data_key",control:o,render:({field:d})=>a(Q,{label:"Data Field",required:!0,data:r,...d})}),a(M.Controller,{name:"yAxis3D.name",control:o,render:({field:d})=>a(s.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...d})})]}),a(s.Text,{mt:"lg",children:"Z Axis"}),p(s.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[a(M.Controller,{name:"z_axis_data_key",control:o,render:({field:d})=>a(Q,{label:"Data Field",required:!0,data:r,...d})}),a(M.Controller,{name:"zAxis3D.name",control:o,render:({field:d})=>a(s.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...d})})]}),a(s.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:p(s.Button,{color:"blue",type:"submit",children:[a(k.DeviceFloppy,{size:20}),a(s.Text,{ml:"md",children:"Save"})]})})]})}):null}class Vs extends se{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Es={displayName:"Bar Chart (3D)",migrator:new Vs,name:"bar-3d",viewRender:Ms,configRender:Is,createConfig:()=>jt},Wt=x.forwardRef(function({value:t,onChange:n,...r},i){return a(s.TextInput,{ref:i,value:t,onChange:n,...r})}),dt={mantissa:0,output:"number",trimMantissa:!1,average:!1};function ks({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})},o=u=>{t({...e,trimMantissa:u.currentTarget.checked})},l=u=>{t({...e,average:u.currentTarget.checked})};return p(s.Stack,{ref:n,children:[p(s.Group,{grow:!0,children:[a(s.Select,{label:"Format",data:[{label:"1234",value:"number"},{label:"99%",value:"percent"}],value:e.output,onChange:r,sx:{flexGrow:1}}),a(s.Switch,{label:p(s.Stack,{spacing:0,children:[a(s.Text,{children:"Average"}),a(s.Text,{size:12,color:"gray",children:"like 1.234k, 1.234m"})]}),checked:e.average,onChange:l,disabled:e.output!=="number",sx:{flexGrow:1},styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"},label:{display:"block"}}})]}),p(s.Group,{grow:!0,children:[a(s.NumberInput,{label:"Mantissa",defaultValue:0,min:0,step:1,max:4,value:e.mantissa,onChange:i}),a(s.Switch,{label:"Trim mantissa",checked:e.trimMantissa,onChange:o,disabled:e.mantissa===0,styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"}}})]}),p(s.Stack,{spacing:0,children:[a(s.Text,{weight:"bold",children:"Preview"}),a(qe,{children:p(s.Group,{position:"apart",children:[p(s.Text,{size:12,color:"gray",children:["123456789 ",a(k.ArrowRight,{size:9})," ",ge.default(123456789).format(e)]}),p(s.Text,{size:12,color:"gray",children:["1234 ",a(k.ArrowRight,{size:9})," ",ge.default(1234).format(e)]}),p(s.Text,{size:12,color:"gray",children:["0.1234 ",a(k.ArrowRight,{size:9})," ",ge.default(.1234).format(e)]})]})})]})]})}const ct=S.default.forwardRef(ks),As=[{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 Ts({label:e,value:t,onChange:n},r){x.useEffect(()=>{typeof t=="string"&&(console.log(t),n({type:t,config:{}}))},[t,n]);const i=l=>{n(l==="quantile"?{type:"quantile",config:{p:.99}}:{type:l,config:{}})},o=l=>{n({type:"quantile",config:{p:l}})};return p(s.Group,{grow:!0,noWrap:!0,pt:"sm",children:[a(s.Select,{ref:r,label:e,data:As,value:t.type,onChange:i}),t.type==="quantile"&&a(s.NumberInput,{label:"p",value:t.config.p,onChange:o,precision:2,min:.05,step:.05,max:1})]})}const Er=S.default.forwardRef(Ts);function Rs({label:e,value:t,onChange:n},r){const[i,o]=S.default.useState(Array.isArray(t)?[...t]:[]),l=S.default.useCallback(()=>{o(h=>[...h,""])},[o]),u=S.default.useCallback(h=>{o(v=>(v.splice(h,1),[...v]))},[o]),d=S.default.useMemo(()=>!j.default.isEqual(i,t),[i,t]),g=()=>{n(i.map(h=>h.toString()))},c=s.useMantineTheme(),f=S.default.useMemo(()=>Object.entries(c.colors).map(([h,v])=>v[6]),[c]);return p(U,{children:[p(s.Group,{position:"left",ref:r,children:[a(s.Text,{children:e}),a(s.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!d,onClick:g,children:a(k.DeviceFloppy,{size:20})})]}),p(s.Group,{children:[i.map((h,v)=>a(s.ColorInput,{value:h,onChange:C=>{o(b=>(b.splice(v,1,C),[...b]))},swatches:f,rightSection:a(s.ActionIcon,{onClick:()=>u(v),color:"red",children:a(k.Trash,{size:14})}),sx:{width:"45%"}})),a(s.ActionIcon,{onClick:l,color:"blue",variant:"outline",children:a(k.PlaylistAdd,{size:20})})]})]})}const $s=S.default.forwardRef(Rs);function Fs({value:e,onChange:t},n){const{colorManager:r}=x.useContext(Se),i=S.default.useMemo(()=>r.getStaticColors().map(u=>({label:u.name,group:u.category,value:u.value})),[r]),o=S.default.useMemo(()=>i.some(l=>l.value===e),[e,i]);return p(s.Group,{position:"apart",spacing:4,ref:n,children:[a(s.TextInput,{placeholder:"Set any color",value:o?"":e,onChange:l=>t(l.currentTarget.value),rightSection:a(s.ColorSwatch,{color:o?"transparent":e,radius:4}),variant:o?"filled":"default",sx:{maxWidth:"46%",flexGrow:1}}),a(s.Text,{sx:{flexGrow:0},children:"or"}),a(s.Select,{data:i,value:e,onChange:t,variant:o?"default":"filled",placeholder:"Pick a theme color",icon:a(s.ColorSwatch,{color:o?e:"transparent",radius:4}),sx:{maxWidth:"46%",flexGrow:1}})]})}const Re=S.default.forwardRef(Fs),gt=[{label:"initial",value:0},{label:"500",value:25},{label:"700",value:50},{label:"semibold",value:75},{label:"bold",value:100}];function zs({label:e,value:t,onChange:n},r){var l,u;const[i,o]=S.default.useState((u=(l=gt.find(d=>d.label===t))==null?void 0:l.value)!=null?u:gt[0].value);return S.default.useEffect(()=>{const d=gt.find(g=>g.value===i);d&&n(d.label)},[i]),p(s.Stack,{spacing:0,mt:"sm",mb:"lg",children:[a(s.Text,{size:"sm",children:e}),a(s.Slider,{label:null,marks:gt,value:i,onChange:o,step:25,placeholder:"Pick a font size",ref:r})]})}const Os=S.default.forwardRef(zs);function Ps({label:e,value:t,onChange:n,type:r},i){const[o,l]=S.default.useState(Array.isArray(t)?[...t]:[]),u=S.default.useCallback(()=>{l(f=>[...f,""])},[l]),d=S.default.useCallback(f=>{l(h=>(h.splice(f,1),[...h]))},[l]),g=S.default.useMemo(()=>!j.default.isEqual(o.map(String),t.map(String)),[o,t]),c=()=>{n(o.map(f=>r==="number"?Number(f):f.toString()))};return p(U,{children:[p(s.Group,{position:"left",ref:i,children:[a(s.Text,{children:e}),a(s.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!g,onClick:c,children:a(k.DeviceFloppy,{size:20})})]}),p(s.Group,{children:[o.map((f,h)=>a(s.TextInput,{type:r,value:f,onChange:v=>{const C=v.currentTarget.value;l(b=>(b.splice(h,1,C),[...b]))},rightSection:a(s.ActionIcon,{onClick:()=>d(h),color:"red",children:a(k.Trash,{size:14})}),sx:{width:"45%"}})),a(s.ActionIcon,{onClick:u,color:"blue",variant:"outline",children:a(k.PlaylistAdd,{size:20})})]})]})}const Gs=S.default.forwardRef(Ps),kr=S.default.forwardRef(function({value:t,onChange:n},r){const i=t.color.type,o=(l,u)=>{const d=j.default.cloneDeep(t);j.default.set(d,l,u),n(d)};return p(U,{children:[a(s.Divider,{my:"xs",label:"Typography",labelPosition:"center"}),a(s.Stack,{children:a(s.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",sx:{flex:1},value:t.size,onChange:l=>o("size",l.currentTarget.value)})}),a(s.Group,{position:"apart",grow:!0,sx:{"> *":{flexGrow:1,maxWidth:"100%"}},children:a(Os,{label:"Font Weight",value:t.weight,onChange:l=>o("weight",l)})}),a(s.Divider,{my:"xs",label:"Style",labelPosition:"center"}),p(s.Stack,{children:[a(s.Select,{label:"Color Type",data:[{label:"Static Color",value:"static"},{label:"Continuous Color",value:"continuous"}],value:t.color.type,onChange:l=>o("color.type",l)}),i==="static"&&a(Re,{value:t.color.staticColor,onChange:l=>o("color.staticColor",l)}),i==="continuous"&&p(U,{children:[a(Gs,{label:"Value Range",value:t.color.valueRange,type:"number",onChange:l=>o("color.valueRange",l)}),a($s,{label:"Color Range",value:t.color.colorRange,onChange:l=>o("color.colorRange",l)})]})]})]})});S.default.forwardRef(function({value:t,onChange:n,data:r,withStyle:i=!0},o){const l=(u,d)=>{const g=j.default.cloneDeep(t);j.default.set(g,u,d),n(g)};return p(s.Box,{px:"sm",py:"md",ref:o,children:[a(s.Text,{weight:"bold",pb:0,children:t.name}),a(s.Divider,{my:"xs",label:"Data",labelPosition:"center"}),p(s.Group,{grow:!0,noWrap:!0,children:[a(s.TextInput,{label:"Name",required:!0,value:t.name,onChange:u=>l("name",u.currentTarget.value)}),a(Q,{label:"Data Field",required:!0,data:r,value:t.data_field,onChange:u=>l("data_field",u)})]}),a(Er,{label:"Aggregation",value:t.aggregation,onChange:u=>l("aggregation",u)}),a(s.Divider,{my:"xs",label:"Format",labelPosition:"center"}),a(ct,{value:t.formatter,onChange:u=>l("formatter",u)}),i&&a(kr,{value:t,onChange:n})]})});function Ns(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 Ls(e,t){const n=e[t],r=Number(n);return isFinite(r)?r:0}function Ut(e,t,n){var i,o,l,u;const r=e.map(d=>Ls(d,t));switch(n.type){case"sum":return j.default.sum(r);case"mean":return j.default.mean(r);case"median":return Ns(r);case"max":return(i=j.default.max(r))!=null?i:0;case"min":return(o=j.default.min(r))!=null?o:0;case"quantile":return(l=Ra.quantile(r,n.config.p))!=null?l:0;default:return(u=e[0])==null?void 0:u[t]}}var Ar=function(){},Je=function(){};process.env.NODE_ENV!=="production"&&(Ar=function(e,t){!e&&typeof console<"u"&&console.warn(t)},Je=function(e,t){if(!e)throw new Error(t)});const qs=(e,t,n)=>Math.min(Math.max(n,e),t),Tr=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},Yt=(e,t,n)=>-n*e+n*t+e,Rr=(e,t)=>n=>Math.max(Math.min(n,t),e),Xe=e=>e%1?Number(e.toFixed(5)):e,pt=/(-)?([\d]*\.?[\d])+/g,Ht=/(#[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,Bs=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;function Ke(e){return typeof e=="string"}const ft={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},$r=Object.assign(Object.assign({},ft),{transform:Rr(0,1)});Object.assign(Object.assign({},ft),{default:1});const Ze=(e=>({test:t=>Ke(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}))("%");Object.assign(Object.assign({},Ze),{parse:e=>Ze.parse(e)/100,transform:e=>Ze.transform(e*100)});const Qt=(e,t)=>n=>Boolean(Ke(n)&&Bs.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),Fr=(e,t,n)=>r=>{if(!Ke(r))return r;const[i,o,l,u]=r.match(pt);return{[e]:parseFloat(i),[t]:parseFloat(o),[n]:parseFloat(l),alpha:u!==void 0?parseFloat(u):1}},Le={test:Qt("hsl","hue"),parse:Fr("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Ze.transform(Xe(t))+", "+Ze.transform(Xe(n))+", "+Xe($r.transform(r))+")"},js=Rr(0,255),Jt=Object.assign(Object.assign({},ft),{transform:e=>Math.round(js(e))}),$e={test:Qt("rgb","red"),parse:Fr("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+Jt.transform(e)+", "+Jt.transform(t)+", "+Jt.transform(n)+", "+Xe($r.transform(r))+")"};function Ws(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 Xt={test:Qt("#"),parse:Ws,transform:$e.transform},ht={test:e=>$e.test(e)||Xt.test(e)||Le.test(e),parse:e=>$e.test(e)?$e.parse(e):Le.test(e)?Le.parse(e):Xt.parse(e),transform:e=>Ke(e)?e:e.hasOwnProperty("red")?$e.transform(e):Le.transform(e)},zr="${c}",Or="${n}";function Us(e){var t,n,r,i;return isNaN(e)&&Ke(e)&&((n=(t=e.match(pt))===null||t===void 0?void 0:t.length)!==null&&n!==void 0?n:0)+((i=(r=e.match(Ht))===null||r===void 0?void 0:r.length)!==null&&i!==void 0?i:0)>0}function Pr(e){typeof e=="number"&&(e=`${e}`);const t=[];let n=0;const r=e.match(Ht);r&&(n=r.length,e=e.replace(Ht,zr),t.push(...r.map(ht.parse)));const i=e.match(pt);return i&&(e=e.replace(pt,Or),t.push(...i.map(ft.parse))),{values:t,numColors:n,tokenised:e}}function Gr(e){return Pr(e).values}function Nr(e){const{values:t,numColors:n,tokenised:r}=Pr(e),i=t.length;return o=>{let l=r;for(let u=0;u<i;u++)l=l.replace(u<n?zr:Or,u<n?ht.transform(o[u]):Xe(o[u]));return l}}const Ys=e=>typeof e=="number"?0:e;function Hs(e){const t=Gr(e);return Nr(e)(t.map(Ys))}const Lr={test:Us,parse:Gr,createTransformer:Nr,getAnimatableNone:Hs};function Kt(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 qr({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,o=0,l=0;if(!t)i=o=l=n;else{const u=n<.5?n*(1+t):n+t-n*t,d=2*n-u;i=Kt(d,u,e+1/3),o=Kt(d,u,e),l=Kt(d,u,e-1/3)}return{red:Math.round(i*255),green:Math.round(o*255),blue:Math.round(l*255),alpha:r}}const Qs=(e,t,n)=>{const r=e*e,i=t*t;return Math.sqrt(Math.max(0,n*(i-r)+r))},Js=[Xt,$e,Le],Br=e=>Js.find(t=>t.test(e)),jr=e=>`'${e}' is not an animatable color. Use the equivalent color code instead.`,Wr=(e,t)=>{let n=Br(e),r=Br(t);Je(!!n,jr(e)),Je(!!r,jr(t));let i=n.parse(e),o=r.parse(t);n===Le&&(i=qr(i),n=$e),r===Le&&(o=qr(o),r=$e);const l=Object.assign({},i);return u=>{for(const d in l)d!=="alpha"&&(l[d]=Qs(i[d],o[d],u));return l.alpha=Yt(i.alpha,o.alpha,u),n.transform(l)}},Xs=e=>typeof e=="number",Ks=(e,t)=>n=>t(e(n)),Ur=(...e)=>e.reduce(Ks);function Yr(e,t){return Xs(e)?n=>Yt(e,t,n):ht.test(e)?Wr(e,t):Jr(e,t)}const Hr=(e,t)=>{const n=[...e],r=n.length,i=e.map((o,l)=>Yr(o,t[l]));return o=>{for(let l=0;l<r;l++)n[l]=i[l](o);return n}},Zs=(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]=Yr(e[i],t[i]));return i=>{for(const o in r)n[o]=r[o](i);return n}};function Qr(e){const t=Lr.parse(e),n=t.length;let r=0,i=0,o=0;for(let l=0;l<n;l++)r||typeof t[l]=="number"?r++:t[l].hue!==void 0?o++:i++;return{parsed:t,numNumbers:r,numRGB:i,numHSL:o}}const Jr=(e,t)=>{const n=Lr.createTransformer(t),r=Qr(e),i=Qr(t);return r.numHSL===i.numHSL&&r.numRGB===i.numRGB&&r.numNumbers>=i.numNumbers?Ur(Hr(r.parsed,i.parsed),n):(Ar(!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.`),l=>`${l>0?t:e}`)},el=(e,t)=>n=>Yt(e,t,n);function tl(e){if(typeof e=="number")return el;if(typeof e=="string")return ht.test(e)?Wr:Jr;if(Array.isArray(e))return Hr;if(typeof e=="object")return Zs}function nl(e,t,n){const r=[],i=n||tl(e[0]),o=e.length-1;for(let l=0;l<o;l++){let u=i(e[l],e[l+1]);if(t){const d=Array.isArray(t)?t[l]:t;u=Ur(d,u)}r.push(u)}return r}function rl([e,t],[n]){return r=>n(Tr(e,t,r))}function il(e,t){const n=e.length,r=n-1;return i=>{let o=0,l=!1;if(i<=e[0]?l=!0:i>=e[r]&&(o=r-1,l=!0),!l){let d=1;for(;d<n&&!(e[d]>i||d===r);d++);o=d-1}const u=Tr(e[o],e[o+1],i);return t[o](u)}}function al(e,t,{clamp:n=!0,ease:r,mixer:i}={}){const o=e.length;Je(o===t.length,"Both input and output ranges must be the same length"),Je(!r||!Array.isArray(r)||r.length===o-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[o-1]&&(e=[].concat(e),t=[].concat(t),e.reverse(),t.reverse());const l=nl(t,r,i),u=o===2?rl(e,l):il(e,l);return n?d=>u(qs(e[0],e[o-1],d)):u}class ol{constructor({valueRange:t,colorRange:n}){R(this,"mapper");this.mapper=al(t,n)}getColor(t){return this.mapper(t)}}function sl(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array(${e.length})`:e.toString()}function Zt({data_field:e,aggregation:t},n){return Ut(n,e,t)}function et({formatter:e},t){return["string","number"].includes(typeof t)?ge.default(t).format(e):sl(t)}function ll(e,t){return e.type==="static"?e.staticColor:e.type==="continuous"?new ol(e).getColor(t):"black"}function Xr(e,t){const{color:n,data_field:r,aggregation:i,size:o,weight:l}=e,u=Ut(t,r,i),d=et(e,u);return a(s.Text,{sx:{fontSize:o,display:"inline"},color:ll(n,u),weight:l,children:d})}function ul(e,t){const n={};return e.forEach(r=>{const i=r.name;n[i]=Xr(r,t)}),n}function dl(e){return e.split(" ").map((t,n)=>p(S.default.Fragment,{children:[t,"\xA0"]},n))}function cl(e){const n=e.replaceAll("<br />","<br/>").replaceAll(`
|
|
48
|
-
`,"<br/>").split("<br/>");return n.map((i,o)=>{const l=[dl(i)];return o!==n.length-1&&l.push(a("br",{})),l}).flat().filter(i=>i!==void 0)}function en(e){return cl(e)}function tn(e,t,n){const r=ul(t,n),i=/^\{(.+)\}(.*)$/;return e.split("$").map(o=>{var g;const l=i.exec(o);if(!l)return en(o);const u=r[l[1]];if(!u)return en(o);const d=(g=l[2])!=null?g:"";return p(U,{children:[u,en(d)]})})}function gl(e,t){const n={};return e.forEach(r=>{const{name:i,data_field:o,aggregation:l}=r,u=Ut(t,o,l);n[i]=et(r,u)}),n}function Kr(e,t,n){const r=gl(t,n),i=/^\{(.+)\}(.*)$/;return e.split("$").map(o=>{var g;const l=i.exec(o);if(!l)return o;const u=r[l[1]];if(!u)return o;const d=(g=l[2])!=null?g:"";return`${u}${d}`}).join("")}const nn={x_axis:{name:"X Axis",data_key:""},y_axis:{name:"Y Axis",data_key:"value"},color:"#228be6",reference_lines:[]};te.use([H.DataZoomComponent,xe.BoxplotChart,H.MarkLineComponent,H.GridComponent,H.LegendComponent,H.TooltipComponent,Ve.CanvasRenderer]);function pl(e,t,n){const r=t.reduce((i,o)=>{const l=Zt(o,n);return i[o.name]=et(o,l),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 Kr(i.template,t,n)},position:"insideEndTop"}}}))}function fl({context:e}){const{value:t}=N(e.instanceData,"config"),{variables:n}=e,r=e.data,{width:i,height:o}=e.viewport,{x_axis:l,y_axis:u,color:d,reference_lines:g}=w.defaults({},t,nn),{xAxisData:c,boxplotData:f}=x.useMemo(()=>{const v=j.default.groupBy(r,l.data_key);return{xAxisData:Object.keys(v),boxplotData:Object.values(v).map(C=>C.map(b=>b[u.data_key]))}},[r,l.data_key,u.data_key]),h={dataset:[{source:f},{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,axisTick:{show:!0,alignWithLabel:!0}}],yAxis:[{name:u.name,axisLine:{show:!0}}],series:[{name:u.name,type:"boxplot",itemStyle:{color:d,borderColor:"#454545"},boxWidth:[10,40],datasetIndex:1},...pl(g,n,r)]};return!t||!i||!o?null:a(ke.default,{echarts:te,option:h,style:{width:i,height:o}})}function hl({control:e,index:t,remove:n,variableOptions:r}){return p(s.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:`reference_lines.${t}.name`,control:e,render:({field:i})=>a(s.TextInput,{label:"Name",placeholder:"Average Reference Line",required:!0,sx:{flex:1},...i})}),a(M.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:i})=>a(s.Select,{label:"Value",required:!0,data:r,sx:{flex:1},...i})})]}),a(M.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:i})=>a(s.TextInput,{label:"Content Template",placeholder:"Average: ${avg}",required:!0,sx:{flex:1},...i})}),a(s.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:a(k.Trash,{size:16})})]},t)}function ml({control:e,watch:t,variables:n}){const{fields:r,append:i,remove:o}=M.useFieldArray({control:e,name:"reference_lines"}),l=t("reference_lines"),u=r.map((c,f)=>({...c,...l[f]})),d=()=>i({name:"",template:"",variable_key:""}),g=x.useMemo(()=>n.map(c=>({label:c.name,value:c.name})),[n]);return p(s.Stack,{children:[u.map((c,f)=>a(hl,{control:e,index:f,remove:o,variableOptions:g})),a(s.Group,{position:"center",mt:"xs",children:a(s.Button,{onClick:d,children:"Add a Reference Line"})})]})}function vl({context:e}){const{value:t,set:n}=N(e.instanceData,"config"),r=e.data,{variables:i}=e,o=x.useMemo(()=>w.defaults({},t,nn),[t]),{control:l,handleSubmit:u,watch:d,getValues:g,reset:c}=M.useForm({defaultValues:o});x.useEffect(()=>{c(o)},[o]),d(["x_axis","y_axis","reference_lines","color"]);const f=g(),h=x.useMemo(()=>!w.isEqual(f,t),[f,t]);return a(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:u(n),children:[p(s.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[a(s.Text,{children:"Chart Config"}),a(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!h,children:a(k.DeviceFloppy,{size:20})})]}),p(s.Accordion,{defaultValue:"Axis",children:[p(s.Accordion.Item,{value:"Axis",children:[a(s.Accordion.Control,{children:"Axis"}),p(s.Accordion.Panel,{children:[p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:"x_axis.name",control:l,render:({field:v})=>a(s.TextInput,{label:"X Axis Name",sx:{flex:1},...v})}),a(M.Controller,{name:"x_axis.data_key",control:l,render:({field:v})=>a(Q,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...v})})]}),p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:"y_axis.name",control:l,render:({field:v})=>a(s.TextInput,{label:"Y Axis Name",sx:{flex:1},...v})}),a(M.Controller,{name:"y_axis.data_key",control:l,render:({field:v})=>a(Q,{label:"Y Axis Data Field",required:!0,data:r,sx:{flex:1},...v})})]})]})]}),p(s.Accordion.Item,{value:"Style",children:[a(s.Accordion.Control,{children:"Style"}),a(s.Accordion.Panel,{children:p(s.Stack,{spacing:4,children:[a(s.Text,{size:"sm",children:"Color"}),a(M.Controller,{name:"color",control:l,render:({field:v})=>a(Re,{...v})})]})})]}),p(s.Accordion.Item,{value:"Advanced",children:[a(s.Accordion.Control,{children:p(s.Group,{position:"apart",children:["Advanced",a(s.Text,{align:"right",size:12,color:"grey",children:"Use variables in reference lines"})]})}),a(s.Accordion.Panel,{children:p(s.Tabs,{defaultValue:"reference_lines",children:[a(s.Tabs.List,{children:a(s.Tabs.Tab,{value:"reference_lines",children:"Reference Lines"})}),a(s.Tabs.Panel,{value:"reference_lines",pt:"xs",children:a(ml,{variables:i,control:l,watch:d})})]})})]})]})]})})}function yl(e){return w.omit(e,"variables")}class bl extends se{constructor(){super(...arguments);R(this,"VERSION",2)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,{panelModel:r})=>{const{config:i}=n;return(i.variables||[]).forEach(l=>{r.variables.find(u=>u.name===l.name)||r.addVariable(l)}),{config:yl(i)}})}}const Cl={displayName:"Boxplot",migrator:new bl,name:"boxplot",viewRender:fl,configRender:vl,createConfig:()=>nn},rn=(e,t)=>{const[n,r]=x.useState([]);return x.useEffect(()=>e.watchTriggerSnapshotList(i=>r(i.filter(o=>o.schemaRef===t))),[]),n},an=({vizManager:e,instance:t})=>W.useCreation(()=>new Rn(t,e.resolveComponent(t.type),St),[t,e]),Zr="__TRIGGERS";class wl{constructor(t,n){R(this,"attachments");this.instance=t,this.component=n;const r=async i=>{const{id:o,schemaRef:l}=await i.getItem(null);return{id:o,schemaRef:l,triggerData:new je(i,"data")}};this.attachments=new Bt(t,Zr,r)}watchTriggerSnapshotList(t){return this.instance.instanceData.watchItem(Zr,n=>{const r=w.values(n).map(i=>({id:w.get(i,"id"),schemaRef:w.get(i,"schemaRef"),config:Z.toJS(w.get(i,"data.config"))}));t(r)},{fireImmediately:!0})}async createOrGetTrigger(t,n,r={recreate:!1}){var u;if(!this.getTriggerSchemaList().some(d=>d.id===n.id))throw new Error(`Trigger schema '${n.id}' is not defined in component '${this.component.name}'`);const o=await this.attachments.getInstance(t);return!o||r.recreate||o.schemaRef!==n.id?await this.attachments.create(t,{id:t,schemaRef:n.id,data:((u=n==null?void 0:n.createDefaultConfig)==null?void 0:u.call(n))||{}}):o}async getTriggerList(){return await this.attachments.list()}getTriggerSchemaList(){return this.component.triggers||[]}async removeTrigger(t){await this.attachments.remove(t)}async retrieveTrigger(t){return await this.attachments.getInstance(t)}async getMigrationTasks(){const n=(await this.getTriggerList()).map(async r=>{const i=this.getTriggerSchemaList().find(u=>u.id===r.schemaRef),o=i==null?void 0:i.migrator,l={configData:r.triggerData};return o&&await o.needMigration(l)?()=>o.migrate(l):null});return Promise.all(n).then(r=>r.filter(i=>i))}async needMigration(){return(await this.getMigrationTasks()).length>0}async runMigration(){const t=await this.getMigrationTasks();await Promise.all(t.map(n=>n()))}}const ei={id:"builtin:button:click-button",displayName:"Click Button",nameRender:Sl,configRender:xl,payload:[]};function xl(e){return a(U,{})}function Sl(e){return a(s.Text,{children:"Click this button"})}const on={content:"Button",variant:"filled",color:"blue",size:"xs",compact:!1},_l=I.observer(({context:e,instance:t})=>{const n=an({vizManager:e.vizManager,instance:t}),r=rn(n.triggerManager,ei.id),i=B(),{value:o}=N(e.instanceData,"config"),l=x.useMemo(()=>w.defaultsDeep({},o,on),[o]),{content:u,...d}=l,{width:g,height:c}=e.viewport,f={filters:i.filters.values,context:i.context.current},h=()=>{r.forEach(v=>{n.runInteraction(v.id,{})})};return a(s.Center,{sx:{width:g,height:c},children:a(s.Button,{...d,onClick:h,children:w.template(u)(f)})})}),Ml=({value:e,onChange:t,label:n})=>{const r=s.useMantineTheme(),i=x.useCallback(l=>()=>t(l),[t]),o=l=>e===l;return p(s.Stack,{spacing:2,children:[a(s.Text,{size:14,sx:{fontWeight:500},children:n}),a(s.Group,{position:"left",spacing:"xs",children:Object.keys(r.colors).map(l=>{const u=r.colors[l][6];return a(s.ColorSwatch,{color:u,onClick:i(l),radius:4,size:26,sx:{cursor:"pointer"},children:o(l)&&a(s.CheckIcon,{width:10,color:"white"})},l)})})]})},Dl=s.MANTINE_SIZES.map(e=>({label:e.toUpperCase(),value:e})),Il=({label:e,value:t,onChange:n})=>a(s.Select,{data:Dl,label:e,value:t,onChange:n}),Vl=[{label:"Filled",value:"filled"},{label:"Outline",value:"outline"},{label:"Light",value:"light"},{label:"White",value:"white"},{label:"Default",value:"default"},{label:"Subtle",value:"subtle"},{label:"Gradient",value:"gradient",disabled:!0}];function El({context:e}){const{value:t,set:n}=N(e.instanceData,"config"),r=x.useMemo(()=>w.defaultsDeep({},t,on),[t]),i=(o,l)=>{n({...r,[o]:l})};return p(s.Stack,{children:[a(s.TextInput,{label:"Content Template",description:"Filter values & context entries are supported",value:r.content,onChange:o=>i("content",o.currentTarget.value),required:!0}),a(s.Divider,{mt:"xs",mb:0,label:"Styles",labelPosition:"center",variant:"dashed"}),a(s.Select,{label:"Variant",data:Vl,value:r.variant,onChange:o=>i("variant",o)}),p(s.SimpleGrid,{cols:2,children:[a(Ml,{label:"Theme",value:r.color,onChange:o=>i("color",o)}),p(s.Stack,{children:[a(Il,{label:"Size",value:r.size,onChange:o=>i("size",o)}),a(s.Checkbox,{label:"Compact",checked:r.compact,onChange:o=>i("compact",o.currentTarget.checked)})]})]})]})}class kl extends se{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Al={displayName:"Button",migrator:new kl,name:"button",viewRender:_l,configRender:El,createConfig:()=>on,triggers:[ei]};function Tl(e){const t=e.y_axes.some(n=>!!n.name);return{bottom:e.x_axis_name?40:25,top:t?30:10}}function Rl({regressions:e=[]},t){const n=[],r=[],i=[];return t.length===0?{regressionDataSets:n,regressionSeries:r,regressionXAxes:i}:(e.forEach(({transform:o,plot:l,name:u,y_axis_data_key:d})=>{const g=`x-axis-for-${u}`,c=`dataset-for-${u}--raw`,f=`dataset-for-${u}--transformed`;n.push({id:c,source:t.map((h,v)=>[v,Number(h[d])])}),n.push({transform:o,id:f,fromDatasetId:c}),r.push({...l,name:u,datasetId:f,xAxisId:g,showSymbol:!1,tooltip:{show:!1}}),i.push({type:"category",id:g,datasetId:f,show:!1})}),{regressionDataSets:n,regressionSeries:r,regressionXAxes:i})}function $l(e,t,n,r){const i=t.map(o=>[o[n],o[r]]);return j.default.unionBy(i,e,0)}function Fl(e,t,n){const r=t.reduce((i,o)=>{const l=Zt(o,n);return i[o.name]=et(o,l),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 Kr(i.template,t,n)},position:"insideEndTop"}}}))}function zl(e,t,n){const r=t.reduce((i,o)=>{const l=Zt(o,n);return i[o.name]=et(o,l),i},{});return e.map(i=>({name:"",type:"line",data:[],markArea:{itemStyle:{color:i.color},data:[[{yAxis:r[i.y_keys.upper]},{yAxis:r[i.y_keys.lower]}]],silent:!0}}))}function Ol({x_axis_data_key:e},{y_axis_data_key:t,yAxisIndex:n,label_position:r,name:i,group_by_key:o,stack:l,color:u,display_name_on_line:d,...g},c,f,h){const v={label:{show:!!r,position:r,formatter:h[n!=null?n:"default"]},name:i,xAxisId:"main-x-axis",yAxisIndex:n,stack:l,color:u,...g};if(d&&(v.endLabel={show:!0,formatter:i,offset:[-12,12],align:"right"}),!o)return v.data=f.map(b=>b[t]),v;const C=w.groupBy(f,o);return Object.entries(C).map(([b,_])=>{const A=w.cloneDeep(v);return A.data=$l(c,_,e,t),A.name=b,A.color=void 0,A})}function Pl(e,t,n,r,i){const o=t.map(u=>[u,0]);return e.series.map(u=>Ol(e,u,o,n,r)).flat().concat(Fl(e.reference_lines,i,n)).concat(zl(e.reference_areas,i,n))}function Gl(e,t){const n=e.series.reduce((r,{yAxisIndex:i,name:o})=>(r[o]=i,r),{});return{formatter:function(r){const i=Array.isArray(r)?r:[r];if(i.length===0)return"";const o=i.map(({seriesName:l,value:u})=>{var c;if(Array.isArray(u)&&u.length===2&&(u=u[1]),!l)return u;const d=n[l],g=(c=t[d])!=null?c:t.default;return`${l}: <strong>${g({value:u})}</strong>`});return o.unshift(`<strong>${i[0].name}</strong>`),o.join("<br />")}}}function Nl(e,t,n){var r;return[{data:t,name:(r=e.x_axis_name)!=null?r:"",id:"main-x-axis",axisTick:{show:!0,alignWithLabel:!0},...e.x_axis},...n]}function Ll(e,t){return e.y_axes.map(({nameAlignment:n,...r},i)=>{var l;let o=r.position;return o||(o=i>0?"right":"left"),{...r,position:o,axisLabel:{show:!0,formatter:(l=t[i])!=null?l:t.default},axisLine:{show:!0},nameTextStyle:{fontWeight:"bold",align:n},nameLocation:"end",nameGap:15,splitLine:{show:!1}}})}const ql={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"},splitLine:{show:!1},axisTick:{show:!0,alignWithLabel:!0}}],grid:{top:10,left:30,right:15,bottom:25,containLabel:!0}};function Bl(e,t,n){const r=e.y_axes.reduce((c,{label_formatter:f},h)=>(c[h]=function(C){let b=C;if(typeof C=="object"&&(Array.isArray(C.value)&&C.value.length===2?b=C.value[1]:b=C.value),!f)return b;try{return ge.default(b).format(f)}catch(_){return console.error(_),b}},c),{default:({value:c})=>c}),i=j.default.uniq(t.map(c=>c[e.x_axis_data_key])),o=Pl(e,i,t,r,n),{regressionDataSets:l,regressionSeries:u,regressionXAxes:d}=Rl(e,t),g={xAxis:Nl(e,i,d),yAxis:Ll(e,r),dataset:[...l],series:[...o,...u],tooltip:Gl(e,r),grid:Tl(e)};return w.defaultsDeep({},g,ql)}const ti={id:"builtin:echarts:click-echart:series",displayName:"Click Chart Series",nameRender:Wl,configRender:jl,payload:[{name:"type",description:"Always 'click'",valueType:"string"},{name:"seriesType",description:"'line' | 'scatter' | 'bar'",valueType:"string"},{name:"componentSubType",description:"'line' | 'scatter' | 'bar'",valueType:"string"},{name:"componentType",description:"'series'",valueType:"string"},{name:"name",description:"Name of the series clicked",valueType:"string"},{name:"color",description:"Color",valueType:"string"},{name:"value",description:"String-typed number, or series' actual value",valueType:"string"}]};function jl(e){return a(U,{})}function Wl(e){return a(s.Text,{children:"Click chart's series"})}const sn={regressions:[],series:[],stats:{templates:{bottom:"",top:""}},x_axis:{axisLabel:{rotate:0}},x_axis_data_key:"",x_axis_name:"",y_axes:[{name:"Y Axis",position:"left",nameAlignment:"center",label_formatter:dt}],reference_lines:[],reference_areas:[]};te.use([H.DataZoomComponent,xe.BarChart,xe.LineChart,xe.ScatterChart,H.GridComponent,H.LegendComponent,H.TooltipComponent,Ve.CanvasRenderer,H.MarkLineComponent,H.MarkAreaComponent]),te.registerTransform(Yn.transform.regression);function ni(e){return e.trim().length>0}function Ul({conf:e,data:t,width:n,height:r,interactionManager:i,variables:o}){const l=rn(i.triggerManager,ti.id),u=g=>{l.forEach(c=>{i.runInteraction(c.id,{...g})})},d=S.default.useMemo(()=>Bl(e,t,o),[e,t]);return!n||!r?null:a(ke.default,{echarts:te,option:d,style:{width:n,height:r},onEvents:{click:u}})}function Yl({context:e,instance:t}){const n=an({vizManager:e.vizManager,instance:t}),{value:r}=N(e.instanceData,"config"),{variables:i}=e,o=x.useMemo(()=>w.defaults({},r,sn),[r]),l=e.data,{width:u,height:d}=e.viewport,{ref:g,height:c}=ie.useElementSize(),{ref:f,height:h}=ie.useElementSize(),v=S.default.useMemo(()=>{const{stats:{templates:b}}=o;return{top:tn(b.top,i,l),bottom:tn(b.bottom,i,l)}},[o,l]),C=Math.max(0,d-c-h);return p(s.Box,{children:[ni(o.stats.templates.top)&&a(s.Text,{ref:g,align:"left",size:"xs",pl:"sm",children:Object.values(v.top).map(b=>b)}),a(Ul,{variables:i,width:u,height:C,data:l,conf:o,interactionManager:n}),ni(o.stats.templates.bottom)&&a(s.Text,{ref:f,align:"left",size:"xs",pl:"sm",children:Object.values(v.bottom).map(b=>b)})]})}const Hl=[{label:"Rectangle",value:"rectangle"}],Ql=[{label:"Horizontal",value:"horizontal"}];function Jl({control:e,index:t,remove:n,variableOptions:r}){return p(s.Stack,{my:0,p:0,sx:{position:"relative"},children:[p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:`reference_areas.${t}.name`,control:e,render:({field:i})=>a(s.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),a(M.Controller,{name:`reference_areas.${t}.color`,control:e,render:({field:i})=>a(s.TextInput,{label:"Color",required:!0,sx:{flex:1},...i})})]}),p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:`reference_areas.${t}.type`,control:e,render:({field:i})=>a(s.Select,{label:"Type",required:!0,data:Hl,sx:{flex:1},...i})}),a(M.Controller,{name:`reference_areas.${t}.direction`,control:e,render:({field:i})=>a(s.Select,{label:"Direction",required:!0,data:Ql,sx:{flex:1},...i})})]}),a(s.Divider,{variant:"dashed",label:"Data",labelPosition:"center"}),p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:`reference_areas.${t}.y_keys.upper`,control:e,render:({field:i})=>a(s.Select,{label:"Upper Boundary",required:!0,data:r,sx:{flex:1},...i})}),a(M.Controller,{name:`reference_areas.${t}.y_keys.lower`,control:e,render:({field:i})=>a(s.Select,{label:"Lower Boundary",required:!0,data:r,sx:{flex:1},...i})})]}),a(s.Button,{leftIcon:a(k.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),sx:{top:15,right:5},children:"Delete this Reference Area"})]},t)}function Xl({control:e,watch:t,variables:n}){const{fields:r,append:i,remove:o}=M.useFieldArray({control:e,name:"reference_areas"}),l=t("reference_areas"),u=r.map((c,f)=>({...c,...l[f]})),d=()=>i({name:"",type:"rectangle",direction:"horizontal",y_keys:{upper:"",lower:""}}),g=x.useMemo(()=>n.map(c=>({label:c.name,value:c.name})),[n]);return p(s.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"6px 0px 0px"}},children:[p(s.Tabs.List,{children:[u.map((c,f)=>a(s.Tabs.Tab,{value:f.toString(),children:f+1},f)),a(s.Tabs.Tab,{onClick:d,value:"add",children:a(s.ActionIcon,{children:a(k.Plus,{size:18,color:"#228be6"})})})]}),u.map((c,f)=>a(s.Tabs.Panel,{value:f.toString(),children:a(Jl,{control:e,index:f,remove:o,variableOptions:g})},f))]})}function Kl({control:e,index:t,remove:n,variableOptions:r}){return p(s.Stack,{my:0,p:0,sx:{position:"relative"},children:[p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:`reference_lines.${t}.name`,control:e,render:({field:i})=>a(s.TextInput,{label:"Name",placeholder:"Average Reference Line",required:!0,sx:{flex:1},...i})}),a(M.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:i})=>a(s.Select,{label:"Value",required:!0,data:r,sx:{flex:1},...i})})]}),a(M.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:i})=>a(s.TextInput,{label:"Content Template",placeholder:"Average: ${avg}",required:!0,sx:{flex:1},...i})}),a(s.Button,{leftIcon:a(k.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),sx:{top:15,right:5},children:"Delete this Reference Line"})]},t)}function Zl({control:e,watch:t,variables:n}){const{fields:r,append:i,remove:o}=M.useFieldArray({control:e,name:"reference_lines"}),l=t("reference_lines"),u=r.map((c,f)=>({...c,...l[f]})),d=()=>i({name:"",template:"",variable_key:""}),g=x.useMemo(()=>n.map(c=>({label:c.name,value:c.name})),[n]);return p(s.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px"}},children:[p(s.Tabs.List,{children:[u.map((c,f)=>a(s.Tabs.Tab,{value:f.toString(),children:f+1},f)),a(s.Tabs.Tab,{onClick:d,value:"add",children:a(s.ActionIcon,{children:a(k.Plus,{size:18,color:"#228be6"})})})]}),u.map((c,f)=>a(s.Tabs.Panel,{value:f.toString(),children:a(Kl,{control:e,index:f,remove:o,variableOptions:g})},f))]})}const eu=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}],tu=[{label:"solid",value:"solid"},{label:"dashed",value:"dashed"},{label:"dotted",value:"dotted"}];function nu({control:e,regressionItem:t,index:n,remove:r,yAxisOptions:i,data:o}){const l=t.transform.config.method;return p(s.Stack,{my:0,p:0,sx:{position:"relative"},children:[a(M.Controller,{name:`regressions.${n}.name`,control:e,render:({field:u})=>a(s.TextInput,{label:"Name",required:!0,sx:{flex:1},...u})}),p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:`regressions.${n}.y_axis_data_key`,control:e,render:({field:u})=>a(Q,{label:"Value Field",required:!0,data:o,sx:{flex:1},...u})}),a(M.Controller,{name:`regressions.${n}.plot.yAxisIndex`,control:e,render:({field:{value:u,onChange:d,...g}})=>{var c;return a(s.Select,{label:"Y Axis",data:i,disabled:i.length===0,...g,value:(c=u==null?void 0:u.toString())!=null?c:"",onChange:f=>{if(!f){d(0);return}d(Number(f))},sx:{flex:1}})}})]}),p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:`regressions.${n}.transform.config.method`,control:e,render:({field:u})=>a(s.Select,{label:"Method",data:eu,sx:{flex:1},...u})}),l==="polynomial"&&a(M.Controller,{name:`regressions.${n}.transform.config.order`,control:e,render:({field:u})=>a(s.NumberInput,{label:"Order",sx:{flex:1},...u})})]}),a(s.Divider,{mb:-15,variant:"dashed",label:"Line Style",labelPosition:"center"}),p(s.Group,{grow:!0,children:[a(M.Controller,{name:`regressions.${n}.plot.lineStyle.type`,control:e,render:({field:u})=>a(s.Select,{label:"Line Type",data:tu,sx:{flexGrow:1},...u})}),a(M.Controller,{name:`regressions.${n}.plot.lineStyle.width`,control:e,render:({field:u})=>a(s.NumberInput,{label:"Line Width",min:1,max:10,sx:{flexGrow:1},...u})})]}),p(s.Stack,{spacing:4,children:[a(s.Text,{size:"sm",children:"Color"}),a(M.Controller,{name:`regressions.${n}.plot.color`,control:e,render:({field:u})=>a(Re,{...u})})]}),a(s.Button,{leftIcon:a(k.Trash,{size:16}),color:"red",variant:"light",onClick:()=>r(n),sx:{top:15,right:5},children:"Delete this Regression Line"})]},n)}function ru({control:e,watch:t,data:n}){const{fields:r,append:i,remove:o}=M.useFieldArray({control:e,name:"regressions"}),l=t("regressions"),u=r.map((f,h)=>({...f,...l[h]})),d=t("y_axes"),g=S.default.useMemo(()=>d.map(({name:f},h)=>({label:f,value:h.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 p(s.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px",paddingTop:"6px"}},children:[p(s.Tabs.List,{children:[u.map((f,h)=>a(s.Tabs.Tab,{value:h.toString(),children:h+1},h)),a(s.Tabs.Tab,{onClick:c,value:"add",children:a(s.ActionIcon,{children:a(k.Plus,{size:18,color:"#228be6"})})})]}),u.map((f,h)=>a(s.Tabs.Panel,{value:h.toString(),children:a(nu,{regressionItem:f,control:e,index:h,remove:o,yAxisOptions:g,data:n},h)},h))]})}const iu=[{label:"No gap between bars",value:"0%"},{label:"Bars overlapping on each other",value:"-100%"}];function au({control:e,index:t}){return p(U,{children:[p(s.Group,{grow:!0,align:"top",children:[a(M.Controller,{name:`series.${t}.stack`,control:e,render:({field:n})=>a(s.TextInput,{label:"Stack",placeholder:"Stack bars by this ID",sx:{flexGrow:1},...n})}),a(M.Controller,{name:`series.${t}.barWidth`,control:e,render:({field:n})=>a(s.TextInput,{label:"Bar Width",sx:{flexGrow:1},...n})})]}),a(M.Controller,{name:`series.${t}.barGap`,control:e,render:({field:n})=>a(s.Select,{label:"Bar Gap",data:iu,sx:{flexGrow:1},...n})})]})}const ou=[{label:"off",value:"false"},{label:"start",value:"start"},{label:"middle",value:"middle"},{label:"end",value:"end"}],su=[{label:"solid",value:"solid"},{label:"dashed",value:"dashed"},{label:"dotted",value:"dotted"}];function lu({control:e,index:t}){return p(U,{children:[a(s.Divider,{mb:-15,variant:"dashed",label:"Line Settings",labelPosition:"center"}),p(s.Group,{grow:!0,children:[a(M.Controller,{name:`series.${t}.lineStyle.type`,control:e,render:({field:n})=>a(s.Select,{label:"Line Type",data:su,sx:{flexGrow:1},...n})}),a(M.Controller,{name:`series.${t}.lineStyle.width`,control:e,render:({field:n})=>a(s.NumberInput,{label:"Line Width",min:1,max:10,sx:{flexGrow:1},...n})})]}),p(s.Group,{grow:!0,align:"center",children:[a(M.Controller,{name:`series.${t}.step`,control:e,render:({field:n})=>a(s.Select,{label:"Step",data:ou,sx:{flexGrow:1,maxWidth:"48%"},...n,value:String(n.value),onChange:r=>{const i=r==="false"?!1:r;n.onChange(i)}})}),p(s.Stack,{children:[a(M.Controller,{name:`series.${t}.smooth`,control:e,render:({field:n})=>a(s.Box,{sx:{flexGrow:1},children:a(s.Switch,{label:"Smooth Line",checked:n.value,onChange:r=>n.onChange(r.currentTarget.checked)})})}),a(M.Controller,{name:`series.${t}.display_name_on_line`,control:e,render:({field:n})=>{var r;return a(s.Box,{sx:{flexGrow:1},children:a(s.Switch,{label:"Display Name on Line",checked:(r=n.value)!=null?r:!1,onChange:i=>n.onChange(i.currentTarget.checked)})})}})]})]})]})}const uu=Array.from(new Array(9),(e,t)=>({label:String(t+1),value:t+1}));function du({control:e,index:t}){return a(s.Group,{grow:!0,align:"center",children:a(M.Controller,{name:`series.${t}.symbolSize`,control:e,render:({field:n})=>p(s.Stack,{sx:{flexGrow:1},pb:16,spacing:4,children:[a(s.Text,{size:"sm",children:"Size"}),a(s.Slider,{min:1,max:10,marks:uu,...n,sx:{width:"100%"}})]})})})}const cu=[{label:"off",value:""},{label:"top",value:"top"},{label:"left",value:"left"},{label:"right",value:"right"},{label:"bottom",value:"bottom"},{label:"inside",value:"inside"},{label:"insideLeft",value:"insideLeft"},{label:"insideRight",value:"insideRight"},{label:"insideTop",value:"insideTop"},{label:"insideBottom",value:"insideBottom"},{label:"insideTopLeft",value:"insideTopLeft"},{label:"insideBottomLeft",value:"insideBottomLeft"},{label:"insideTopRight",value:"insideTopRight"},{label:"insideBottomRight",value:"insideBottomRight"}];function gu({control:e,index:t,remove:n,seriesItem:r,yAxisOptions:i,data:o}){const l=r.type;return p(s.Stack,{my:0,p:0,sx:{position:"relative"},children:[a(s.Stack,{children:a(M.Controller,{name:`series.${t}.type`,control:e,render:({field:u})=>a(s.SegmentedControl,{data:[{label:"Line",value:"line"},{label:"Bar",value:"bar"},{label:"Scatter",value:"scatter"},{label:"Boxplot",value:"boxplot",disabled:!0}],...u})})}),p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:`series.${t}.name`,control:e,render:({field:u})=>a(s.TextInput,{label:"Name",required:!0,sx:{flex:1},...u})}),a(M.Controller,{name:`series.${t}.y_axis_data_key`,control:e,render:({field:u})=>a(Q,{label:"Value Field",required:!0,data:o,sx:{flex:1},...u})})]}),p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:`series.${t}.yAxisIndex`,control:e,render:({field:{value:u,onChange:d,...g}})=>{var c;return a(s.Select,{label:"Y Axis",data:i,disabled:i.length===0,...g,value:(c=u==null?void 0:u.toString())!=null?c:"",onChange:f=>{if(!f){d(0);return}d(Number(f))},sx:{flex:1}})}}),a(M.Controller,{name:`series.${t}.group_by_key`,control:e,render:({field:u})=>a(Q,{label:"Group By",data:o,clearable:!0,sx:{flex:1},...u})})]}),l==="line"&&a(lu,{index:t,control:e}),l==="bar"&&a(au,{index:t,control:e}),l==="scatter"&&a(du,{index:t,control:e}),a(M.Controller,{name:`series.${t}.label_position`,control:e,render:({field:u})=>a(s.Select,{label:"Label Position",data:cu,...u})}),p(s.Stack,{spacing:4,children:[a(s.Text,{size:"sm",children:"Color"}),a(M.Controller,{name:`series.${t}.color`,control:e,render:({field:u})=>a(Re,{...u})})]}),a(s.Button,{leftIcon:a(k.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),sx:{top:15,right:5},children:"Delete this Series"})]},t)}function pu({control:e,watch:t,data:n}){const{fields:r,append:i,remove:o}=M.useFieldArray({control:e,name:"series"}),l=t("series"),u=r.map((f,h)=>({...f,...l[h]})),d=()=>i({type:"bar",name:ie.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}}),g=t("y_axes"),c=S.default.useMemo(()=>g.map(({name:f},h)=>({label:f,value:h.toString()})),[g]);return p(s.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px",paddingTop:"6px"}},children:[p(s.Tabs.List,{children:[u.map((f,h)=>a(s.Tabs.Tab,{value:h.toString(),children:h+1},f.id)),a(s.Tabs.Tab,{onClick:d,value:"add",children:a(s.ActionIcon,{children:a(k.Plus,{size:18,color:"#228be6"})})})]}),u.map((f,h)=>a(s.Tabs.Panel,{value:h.toString(),children:a(gu,{control:e,index:h,remove:o,seriesItem:f,yAxisOptions:c,data:n},f.id)},f.id))]})}function fu({control:e}){return a(s.Stack,{children:p(s.Stack,{spacing:0,children:[a(M.Controller,{name:"stats.templates.top",control:e,render:({field:t})=>a(Wt,{label:"Template for stats above the chart",py:"md",sx:{flexGrow:1},...t})}),a(M.Controller,{name:"stats.templates.bottom",control:e,render:({field:t})=>a(Wt,{label:"Template for stats under the chart",py:"md",sx:{flexGrow:1},...t})})]})})}function hu({data:e,control:t,watch:n}){return n(["x_axis_data_key","x_axis_name","x_axis"]),p(s.Stack,{children:[p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:"x_axis_data_key",control:t,render:({field:r})=>a(Q,{label:"X Axis Data Field",required:!0,data:e,sx:{flex:1},...r})}),a(M.Controller,{name:"x_axis_name",control:t,render:({field:r})=>a(s.TextInput,{label:"X Axis Name",sx:{flex:1},...r})})]}),a(s.Divider,{mb:-15,label:"Tick Label",labelPosition:"center"}),a(s.Group,{children:a(M.Controller,{name:"x_axis.axisLabel.rotate",control:t,render:({field:r})=>a(s.NumberInput,{label:"Rotate",hideControls:!0,min:-90,max:90,rightSection:a(s.Text,{color:"dimmed",children:"degree"}),sx:{width:"48%"},styles:{rightSection:{width:"4em",justifyContent:"flex-end",paddingRight:"6px"}},...r})})})]})}const mu=[{label:"left",value:"left"},{label:"center",value:"center"},{label:"right",value:"right"}],vu=[{label:"left",value:"left"},{label:"right",value:"right"}];function yu({control:e,index:t,remove:n}){return p(s.Stack,{my:0,p:"0",sx:{position:"relative"},children:[a(s.Divider,{mb:-15,mt:15,variant:"dashed",label:"Name",labelPosition:"center"}),p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:`y_axes.${t}.name`,control:e,render:({field:r})=>a(s.TextInput,{label:"Name",required:!0,sx:{flex:1},...r})}),a(M.Controller,{name:`y_axes.${t}.nameAlignment`,control:e,render:({field:r})=>a(s.Select,{label:"Align",required:!0,data:mu,sx:{flex:1},...r})})]}),a(s.Divider,{mb:-15,variant:"dashed",label:"Layout",labelPosition:"center"}),a(s.Group,{grow:!0,noWrap:!0,children:a(M.Controller,{name:`y_axes.${t}.position`,control:e,render:({field:r})=>a(s.Select,{label:"Position",required:!0,data:vu,sx:{flex:1},...r})})}),p(s.Stack,{children:[a(s.Divider,{mb:-15,variant:"dashed",label:"Label Format",labelPosition:"center"}),a(M.Controller,{name:`y_axes.${t}.label_formatter`,control:e,render:({field:r})=>a(ct,{...r})})]}),a(s.Button,{mt:20,leftIcon:a(k.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),disabled:t===0,children:"Delete this YAxis"})]})}function bu({control:e,watch:t}){const{fields:n,append:r,remove:i}=M.useFieldArray({control:e,name:"y_axes"}),o=t("y_axes"),l=n.map((d,g)=>({...d,...o[g]})),u=()=>r({name:"",label_formatter:dt});return p(s.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px"}},children:[p(s.Tabs.List,{children:[l.map((d,g)=>a(s.Tabs.Tab,{value:g.toString(),children:g+1},g)),a(s.Tabs.Tab,{onClick:u,value:"add",children:a(s.ActionIcon,{children:a(k.Plus,{size:18,color:"#228be6"})})})]}),l.map((d,g)=>a(s.Tabs.Panel,{value:g.toString(),children:a(yu,{control:e,index:g,remove:i})},g))]})}function Cu(e){function t({type:n,name:r,showSymbol:i,symbolSize:o=5,y_axis_data_key:l="value",yAxisIndex:u=0,label_position:d="top",stack:g="1",color:c="black",barWidth:f="30",barGap:h="0%",smooth:v=!1,step:C=!1,group_by_key:b="",display_name_on_line:_=!1,lineStyle:A={type:"solid",width:1}}){return{type:n,name:r,showSymbol:i,symbolSize:o,y_axis_data_key:l,yAxisIndex:u,label_position:d,stack:g,color:c,barWidth:f,barGap:h,smooth:v,step:C,group_by_key:b,display_name_on_line:_,lineStyle:A}}return e.map(t)}function wu(e){return e||{templates:{top:"",bottom:""}}}function xu({series:e,stats:t,...n}){return{series:Cu(e!=null?e:[]),stats:wu(t),...n}}function Su({context:e}){const{value:t,set:n}=N(e.instanceData,"config"),{variables:r}=e,i=e.data,o=x.useMemo(()=>w.defaultsDeep({},t,sn),[t]),l=x.useMemo(()=>xu(o),[o]);x.useEffect(()=>{!w.isEqual(o,l)&&(console.log("config malformed, resetting to defaults",o,l),n(l))},[o,l]);const{control:u,handleSubmit:d,watch:g,getValues:c,reset:f}=M.useForm({defaultValues:l});x.useEffect(()=>{f(l)},[l]);const h=c(),v=x.useMemo(()=>!w.isEqual(h,o),[h,o]);return a(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:d(n),children:[p(s.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[a(s.Text,{children:"Chart Config"}),a(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!v,children:a(k.DeviceFloppy,{size:20})})]}),p(s.Tabs,{defaultValue:"Series",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[p(s.Tabs.List,{children:[a(s.Tabs.Tab,{value:"X Axis",children:"X Axis"}),a(s.Tabs.Tab,{value:"Y Axes",children:"Y Axes"}),a(s.Tabs.Tab,{value:"Series",children:"Series"}),a(s.Tabs.Tab,{value:"Regression Lines",children:"Regression Lines"}),a(s.Tabs.Tab,{value:"Stats",children:"Stats"}),a(s.Tabs.Tab,{value:"Reference Lines",children:"Reference Lines"}),a(s.Tabs.Tab,{value:"Reference Areas",children:"Reference Areas"})]}),a(s.Tabs.Panel,{value:"X Axis",children:a(hu,{control:u,watch:g,data:i})}),a(s.Tabs.Panel,{value:"Y Axes",children:a(bu,{control:u,watch:g})}),a(s.Tabs.Panel,{value:"Series",children:a(pu,{control:u,watch:g,data:i})}),a(s.Tabs.Panel,{value:"Regression Lines",children:a(ru,{control:u,watch:g,data:i})}),a(s.Tabs.Panel,{value:"Stats",children:a(fu,{control:u,watch:g,data:i})}),a(s.Tabs.Panel,{value:"Reference Lines",children:a(Zl,{variables:r,control:u,watch:g})}),a(s.Tabs.Panel,{value:"Reference Areas",children:a(Xl,{variables:r,control:u,watch:g})})]})]})})}function _u(e){const t=w.cloneDeep(w.omit(e,"variables"));return t.stats=w.omit(t.stats,"variables"),t}class Mu extends se{constructor(){super(...arguments);R(this,"VERSION",2)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,{panelModel:r})=>{const{config:i}=n;return(i.variables||[]).forEach(u=>{r.variables.find(d=>d.name===u.name)||r.addVariable(u)}),(w.get(i,"stats.variables")||[]).forEach(u=>{r.variables.find(d=>d.name===u.name)||r.addVariable(u)}),{config:_u(i)}})}}const Du={displayName:"Cartesian Chart",migrator:new Mu,name:"cartesian",viewRender:Yl,configRender:Su,createConfig:()=>sn,triggers:[ti]},ln={x_axis:{name:"X Axis",data_key:""},data_key:"value",bar:{name:"Value",color:"#228be6"},line:{name:"Value",color:"red"}};function un(e){return ge.default(e).format({output:"percent",mantissa:0})}function Iu(e){const t=e.value[1];try{return un(t)}catch(n){return console.error(n),t}}function Vu(e){const t=Array.isArray(e)?e:[e];if(t.length===0)return"";const n=t.map((r,i)=>{const o=r.seriesName,[l,u]=r.value;return o?`${o}: <strong>${(i===0?g=>g:un)(u)}</strong>`:u});return n.unshift(`<strong>${t[0].name}</strong>`),n.join("<br />")}te.use([xe.BarChart,xe.LineChart,H.DataZoomComponent,H.GridComponent,H.LegendComponent,H.TooltipComponent,Ve.CanvasRenderer]);function Eu({context:e}){const{value:t}=N(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{x_axis:o,data_key:l,bar:u,line:d}=w.defaults({},t,ln),{barData:g,lineData:c}=x.useMemo(()=>{const h=n.map(b=>[b[o.data_key],Number(b[l])]).sort((b,_)=>_[1]-b[1]),v=h.reduce((b,_)=>b+_[1],0),C=h.reduce((b,_,A)=>{const T=A===0?0:b[A-1][1];return b.push([_[0],T+_[1]]),b},[]).map(b=>[b[0],b[1]/v]);return{barData:h,lineData:C}},[o.data_key,l,n]),f={dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}],tooltip:{trigger:"axis",formatter:Vu},xAxis:[{type:"category",name:o.name,nameLocation:"middle",nameGap:30,nameTextStyle:{fontWeight:"bold",align:"right"},splitLine:{show:!1},axisTick:{show:!0,alignWithLabel:!0}}],yAxis:[{name:u.name,nameGap:30,nameTextStyle:{fontWeight:"bold",align:"right"},axisLine:{show:!0},splitLine:{show:!1}},{name:d.name,nameGap:30,nameTextStyle:{fontWeight:"bold",align:"center"},axisLabel:{show:!0,formatter:un},splitLine:{show:!1}}],series:[{name:u.name,type:"bar",itemStyle:{color:u.color},yAxisIndex:0,data:g},{name:d.name,type:"line",itemStyle:{color:d.color},symbolSize:2,lineStyle:{width:1},label:{show:!0,position:"top",formatter:Iu},yAxisIndex:1,data:c}]};return!t||!r||!i?null:a(ke.default,{echarts:te,option:f,style:{width:r,height:i}})}function ku({context:e}){const{value:t,set:n}=N(e.instanceData,"config"),r=e.data,i=x.useMemo(()=>w.defaults({},t,ln),[t]),{control:o,handleSubmit:l,watch:u,getValues:d,reset:g}=M.useForm({defaultValues:i});x.useEffect(()=>{g(i)},[i]),u(["x_axis","data_key","bar","line"]);const c=d(),f=x.useMemo(()=>!w.isEqual(c,t),[c,t]);return a(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:l(n),children:[p(s.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[a(s.Text,{children:"Chart Config"}),a(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!f,children:a(k.DeviceFloppy,{size:20})})]}),p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:"x_axis.name",control:o,render:({field:h})=>a(s.TextInput,{label:"X Axis Name",sx:{flex:1},...h})}),a(M.Controller,{name:"x_axis.data_key",control:o,render:({field:h})=>a(Q,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...h})})]}),a(M.Controller,{name:"data_key",control:o,render:({field:h})=>a(Q,{label:"Y Axis Data Field",required:!0,data:r,sx:{flex:1},...h})}),a(s.Divider,{my:"md",label:"Bar",labelPosition:"center"}),p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:"bar.name",control:o,render:({field:h})=>a(s.TextInput,{label:"Bar Name",sx:{flex:1},...h})}),p(s.Stack,{spacing:4,children:[a(s.Text,{size:"sm",children:"Bar's Color"}),a(M.Controller,{name:"bar.color",control:o,render:({field:h})=>a(Re,{...h})})]})]}),a(s.Divider,{my:"md",label:"Line",labelPosition:"center"}),p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:"line.name",control:o,render:({field:h})=>a(s.TextInput,{label:"Line Name",sx:{flex:1},...h})}),p(s.Stack,{spacing:4,children:[a(s.Text,{size:"sm",children:"Line's Color"}),a(M.Controller,{name:"line.color",control:o,render:({field:h})=>a(Re,{...h})})]})]})]})})}class Au extends se{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Tu={displayName:"Pareto Chart",migrator:new Au,name:"paretoChart",viewRender:Eu,configRender:ku,createConfig:()=>ln},dn={label_field:"",value_field:""};te.use([xe.PieChart,Ve.CanvasRenderer]);const Ru={tooltip:{show:!0},series:{type:"pie",radius:["50%","80%"],label:{position:"outer",alignTo:"edge",formatter:`{name|{b}}
|
|
49
|
-
{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 $u({context:e}){const{value:t}=N(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{label_field:o,value_field:l}=w.defaults({},t,dn),u=x.useMemo(()=>n.map(c=>({name:c[o],value:Number(c[l])})),[n,o,l]),d=x.useMemo(()=>({series:{labelLayout:function(c){const f=c.labelRect.x<r/2,h=c.labelLinePoints;return w.set(h,[2,0],f?c.labelRect.x:c.labelRect.x+c.labelRect.width),{labelLinePoints:h}}}}),[r]),g=w.merge({},Ru,d,{series:{data:u}});return a(ke.default,{echarts:te,option:g,style:{width:r,height:i}})}function Fu({context:e}){const{value:t,set:n}=N(e.instanceData,"config"),{label_field:r,value_field:i}=w.defaults({},t,dn),o=e.data,l=Rt.useForm({initialValues:{label_field:r,value_field:i}});return x.useEffect(()=>{l.setValues({label_field:r,value_field:i})},[r,i]),a(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:l.onSubmit(n),children:[p(s.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[a(s.Text,{children:"Pie Config"}),a(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:a(k.DeviceFloppy,{size:20})})]}),p(s.Stack,{mt:"md",spacing:"xs",p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[a(Q,{label:"Label Field",required:!0,data:o,...l.getInputProps("label_field")}),a(Q,{label:"Value Field",required:!0,data:o,...l.getInputProps("value_field")})]})]})})}class zu extends se{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Ou={displayName:"Pie Chart",migrator:new zu,name:"pie",viewRender:$u,configRender:Fu,createConfig:()=>dn};function ri(e){return e?t=>{try{return ge.default(t).format(e)}catch(n){return console.error(n),t}}:t=>t}function Pu(e){return{show:!0,formatter:({dimensionIndex:t,value:n})=>ri(e.dimensions[t].formatter)(n)}}function Gu(e){return({name:t,marker:n,value:r})=>{if(r.length===0)return"";const i=r.map((o,l)=>{const u=e.dimensions[l],d=ri(u.formatter);return`
|
|
47
|
+
`,wr=()=>{const[e,t]=x.useState(!1);return p(B,{children:[i(s.Button,{variant:"subtle",compact:!0,onClick:()=>t(n=>!n),children:e?"Close":"Click to see expected data structure"}),i(s.Collapse,{in:e,children:i(Le.Prism,{language:"typescript",noCopy:!0,colorScheme:"dark",children:Po})})]})},No=I.observer(function({config:t}){const n=()=>{t.addStaticOption({label:"",value:""})},r=t.static_options,a=[...r];return p(B,{children:[i(s.TextInput,{label:"Min-width",value:t.min_width,onChange:o=>t.setMinWidth(o.currentTarget.value),placeholder:"200px"}),i(s.Divider,{label:"Configure options",labelPosition:"center"}),r.length>0&&i(s.MultiSelect,{label:"Default Selection",data:a,value:t.default_value,onChange:t.setDefaultValue}),r.map((o,l)=>p(s.Group,{sx:{position:"relative"},pr:"40px",children:[i(s.TextInput,{label:"Label",required:!0,value:t.static_options[l].label,onChange:u=>{t.static_options[l].setLabel(u.currentTarget.value)},sx:{flexGrow:1}}),i(s.TextInput,{label:"Value",required:!0,value:t.static_options[l].value,onChange:u=>{t.static_options[l].setValue(u.currentTarget.value)},sx:{flexGrow:1}}),i(s.ActionIcon,{color:"red",variant:"subtle",onClick:()=>t.removeStaticOption(l),sx:{position:"absolute",top:28,right:5},children:i(V.Trash,{size:16})})]})),i(s.Button,{size:"xs",color:"blue",leftIcon:i(V.PlaylistAdd,{size:20}),onClick:n,sx:{width:"50%"},mx:"auto",children:"Add an Option"}),i(s.Divider,{label:"Or fetch options from database",labelPosition:"center"}),i(s.Checkbox,{checked:t.select_first_by_default,onChange:o=>t.setSelectFirstByDefault(o.currentTarget.checked),label:"Select the first option by default"}),i(Cr,{value:t.options_query_id,onChange:t.setOptionsQueryID}),i(wr,{})]})}),Go=I.observer(function({config:t}){const n=()=>{t.addStaticOption({label:"",value:""})},r=t.static_options,a=[{label:"No default selection",value:""},...r];return p(B,{children:[i(s.Checkbox,{checked:t.required,onChange:o=>t.setRequired(o.currentTarget.checked),label:"Required"}),i(s.TextInput,{label:"Width",value:t.width,onChange:o=>t.setWidth(o.currentTarget.value),placeholder:"200px"}),i(s.Divider,{label:"Configure options",labelPosition:"center"}),r.length>0&&i(s.Select,{label:"Default Selection",data:a,value:t.default_value,onChange:t.setDefaultValue}),r.map((o,l)=>p(s.Group,{sx:{position:"relative"},pr:"40px",children:[i(s.TextInput,{label:"Label",required:!0,value:t.static_options[l].label,onChange:u=>{t.static_options[l].setLabel(u.currentTarget.value)},sx:{flexGrow:1}}),i(s.TextInput,{label:"Value",required:!0,value:t.static_options[l].value,onChange:u=>{t.static_options[l].setValue(u.currentTarget.value)},sx:{flexGrow:1}}),i(s.ActionIcon,{color:"red",variant:"subtle",onClick:()=>t.removeStaticOption(l),sx:{position:"absolute",top:28,right:5},children:i(V.Trash,{size:16})})]},l)),i(s.Button,{size:"xs",color:"blue",leftIcon:i(V.PlaylistAdd,{size:20}),onClick:n,sx:{width:"50%"},mx:"auto",children:"Add an Option"}),i(s.Divider,{label:"Or fetch options from database",labelPosition:"center"}),i(s.Checkbox,{checked:t.select_first_by_default,onChange:o=>t.setSelectFirstByDefault(o.currentTarget.checked),label:"Select the first option by default"}),i(Cr,{value:t.options_query_id,onChange:t.setOptionsQueryID}),i(wr,{})]})}),Lo=I.observer(function({config:t}){return p(B,{children:[i(s.TextInput,{label:"Default Value",value:t.default_value,onChange:n=>{t.setDefaultValue(n.currentTarget.value)}}),i(s.Checkbox,{checked:t.required,onChange:n=>t.setRequired(n.currentTarget.checked),label:"Required"})]})}),qo=I.observer(function({filter:t}){const n=t.plainDefaultValue,[r,a]=M.default.useState(n);return M.default.useEffect(()=>{a(n)},[n]),p(s.Box,{sx:{maxWidth:"30em"},children:[i(s.Text,{pb:"md",color:"gray",children:"Preview"}),i(cr,{filter:t,value:r,onChange:a}),i(s.Text,{pt:"lg",pb:"md",color:"gray",children:"Config"}),i(Le.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(t,null,4)})]})}),Bo={select:Go,"multi-select":No,"text-input":Lo,checkbox:Fo,"date-range":Oo},jo=[{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"}],Wo=I.observer(function({filter:t,index:n}){const r=j(),a=M.default.useMemo(()=>Bo[t.type],[t.type]);return p(s.SimpleGrid,{cols:2,children:[p(s.Box,{pl:"md",children:[i(s.Text,{pb:"md",color:"gray",children:"Edit"}),p(s.Stack,{sx:{maxWidth:"30em"},children:[i(s.NumberInput,{label:"Placement Order",required:!0,value:t.order,onChange:t.setOrder,hideControls:!0}),i(s.MultiSelect,{label:"Visible in...",data:r.views.options,value:[...t.visibleInViewsIDs],onChange:t.setVisibleInViewsIDs}),i(s.TextInput,{label:"Key",placeholder:"A unique key to refer",required:!0,value:t.key,onChange:o=>{t.setKey(o.currentTarget.value)}}),i(s.TextInput,{label:"Label",placeholder:"Label for this field",required:!0,value:t.label,onChange:o=>{t.setLabel(o.currentTarget.value)}}),i(s.Select,{label:"Widget",data:jo,required:!0,value:t.type,onChange:t.setType}),i(a,{config:t.config,index:n})]})]}),i(qo,{filter:t})]})}),lf="",Uo=I.observer(function(){const t=j(),n=t.filters.current,r=()=>{const a=ie.randomId(),o={id:a,key:a,label:a,order:n.length+1,type:pe.TextInput,config:br(),visibleInViewsIDs:["Main"]};t.filters.append(o)};return p(s.Box,{sx:{height:"90vh",maxHeight:"calc(100vh - 185px)"},p:0,children:[i(s.Group,{sx:{position:"absolute",top:"16px",right:"16px"},children:i(s.Button,{size:"xs",color:"red",leftIcon:i(V.Recycle,{size:20}),disabled:!t.filtersChanged,onClick:t.resetFilters,children:"Revert Changes"})}),i(s.Tabs,{className:"filter-settings-tabs",orientation:"vertical",defaultValue:t.filters.firstID,styles:{root:{display:"block"}},children:p(s.Group,{sx:{height:"100%"},children:[p(s.Stack,{sx:{height:"100%"},children:[i(s.Tabs.List,{position:"left",sx:{flexGrow:1,width:"200px"},children:t.filters.current.map(a=>i(s.Tabs.Tab,{value:a.id,sx:{maxWidth:"100%",overflow:"scroll"},children:a.label},a.id))}),i(s.Button,{size:"xs",color:"blue",leftIcon:i(V.PlaylistAdd,{size:20}),onClick:r,children:"Add a Filter"})]}),i(s.Box,{sx:{flexGrow:1,height:"100%"},children:t.filters.current.map((a,o)=>i(s.Tabs.Panel,{value:a.id,sx:{height:"100%"},children:p(s.Stack,{sx:{height:"100%"},spacing:"sm",children:[i(s.Box,{sx:{flexGrow:1,maxHeight:"calc(100% - 52px)",overflow:"scroll"},children:i(Wo,{filter:a,index:o})}),i(s.Group,{position:"right",pt:10,children:i(s.Button,{size:"xs",color:"red",leftIcon:i(V.Trash,{size:20}),onClick:()=>t.filters.remove(o),children:"Delete this filter"})})]})},a.id))})]})})]})}),Yo=I.observer(function({opened:t,close:n}){const{freezeLayout:r}=M.default.useContext(ye);return M.default.useEffect(()=>{r(t)},[t]),i(s.Modal,{size:"96vw",overflow:"inside",opened:t,onClose:n,title:"Filters",trapFocus:!0,onDragStart:a=>{a.stopPropagation()},withCloseButton:!1,children:i(Uo,{})})});var xr=(e=>(e.Use="use",e.Edit="edit",e))(xr||{}),fe=(e=>(e.Division="div",e.Modal="modal",e))(fe||{}),Sr=(e=>(e.Select="select",e.MultiSelect="multi-select",e.TextInput="text-input",e.Checkbox="checkbox",e.DateRange="date-range",e))(Sr||{});const Ho=I.observer(()=>{const t=j().views.VIE;return!t||t.type!==fe.Division?null:p(s.Stack,{children:[i(s.Divider,{mt:8,mb:0,label:"Division settings",labelPosition:"center"}),i(s.Text,{align:"center",size:"xs",color:"dimmed",children:"Under construction"})]})}),Qo=I.observer(()=>{const t=j().views.VIE;return!t||t.type!==fe.Modal?null:p(s.Stack,{children:[i(s.Divider,{mt:8,label:"Modal settings",labelPosition:"center"}),p(s.Group,{grow:!0,children:[i(s.TextInput,{label:"Width",value:t.config.width,onChange:n=>t.updateConfig("width",n.currentTarget.value),placeholder:"600px / 50vw"}),i(s.TextInput,{label:"Height",value:t.config.height,onChange:n=>t.updateConfig("height",n.currentTarget.value),placeholder:"600px / 50vw"})]})]})}),Jo=I.observer(()=>p(B,{children:[i(Ho,{}),i(Qo,{})]})),Xo=[{label:"Division",value:fe.Division},{label:"Modal",value:fe.Modal}],Ko=I.observer(()=>{const t=j().views.VIE;return t?p(s.Stack,{sx:{position:"relative"},children:[i(s.TextInput,{label:"Name",value:t.name,onChange:n=>{t.setName(n.currentTarget.value)}}),i(s.Select,{label:"Type",value:t.type,onChange:t.setType,data:Xo}),i(Jo,{})]}):null}),Zo=I.observer(({opened:e,close:t})=>{var a;const n=j(),{freezeLayout:r}=M.default.useContext(ye);return M.default.useEffect(()=>{r(e)},[e]),i(s.Modal,{size:"500px",overflow:"inside",opened:e,onClose:t,withCloseButton:!1,styles:{header:{width:"100%"},title:{width:"100%"}},title:p(s.Group,{position:"apart",children:[p(s.Text,{sx:{flexGrow:1},children:["Editing ",(a=n.views.VIE)==null?void 0:a.name]}),i(s.ActionIcon,{size:18,color:"red",onClick:n.views.removeVIE,disabled:n.views.isVIETheFirstView,children:i(V.Trash,{size:18})})]}),trapFocus:!0,onDragStart:o=>{o.stopPropagation()},children:i(Ko,{})})}),es=x.forwardRef(({label:e,type:t,...n},r)=>t!=="TRIGGER_TO_ADD"?i("div",{ref:r,...n,children:p(s.Group,{noWrap:!0,position:"apart",children:[i(s.Text,{size:"sm",children:e}),i(s.Text,{size:"xs",color:"dimmed",children:t})]})}):i("div",{ref:r,...n,children:i(s.Group,{noWrap:!0,grow:!0,children:i(s.Text,{size:"sm",align:"center",color:"#228be6",children:e})})})),_r="TRIGGER_TO_ADD",ts=I.observer(({value:e,onChange:t,triggerAdd:n,triggerEdit:r,options:a})=>{const o=x.useMemo(()=>[...a,{label:"Add a View",value:_r,type:"TRIGGER_TO_ADD"}],[a,n]),l=u=>{u!==_r?t(u):n()};return p(s.Group,{position:"left",spacing:0,sx:{minWidth:"260px"},children:[i(s.Select,{value:e,onChange:l,placeholder:"Pick a View",itemComponent:es,data:o,nothingFound:"Empty",sx:{flexGrow:1},styles:{input:{borderTopRightRadius:0,borderBottomRightRadius:0}}}),i(s.ActionIcon,{onClick:r,variant:"default",size:36,sx:{borderLeft:0,borderTopLeftRadius:0,borderBottomLeftRadius:0,"&:active":{transform:"none",svg:{transform:"translateY(1px)"}}},children:i(V.Settings,{size:20})})]})}),ns=I.observer(()=>{const e=j(),[t,n]=x.useState(!1),r=()=>{n(!0)},a=()=>{n(!1)};return p(B,{children:[i(ts,{value:e.views.idOfVIE,onChange:e.views.setIDOfVIE,triggerAdd:e.views.addARandomNewView,triggerEdit:r,options:e.views.options}),i(Zo,{opened:t,close:a})]})}),Mr={"> button":{"&:first-of-type":{borderTopRightRadius:0,borderBottomRightRadius:0,borderRightWidth:.5},"&:last-of-type":{borderTopLeftRadius:0,borderBottomLeftRadius:0,borderLeftWidth:.5}}},Dr=I.observer(function({saveChanges:t}){const n=j(),r=M.default.useCallback(()=>{const T=n.queries.json,A=n.views.json,F=n.sqlSnippets.json,O=n.filters.current,q=n.mock_context.current;return{filters:O,views:A,definition:{sqlSnippets:F,queries:T,mock_context:q},version:n.version}},[n]),a=()=>{n.reset()},o=n.changed,{inEditMode:l,inUseMode:u}=M.default.useContext(ye),[c,g]=M.default.useState(!1),d=()=>g(!0),f=()=>g(!1),[h,v]=M.default.useState(!1),C=()=>v(!0),b=()=>v(!1),S=()=>{const T=JSON.stringify(r(),null,2);to(n.name,T)};return p(s.Group,{position:"apart",pt:0,px:10,pb:"xs",children:[i(s.Group,{position:"left",children:l&&i(ns,{})}),p(s.Group,{position:"right",sx:{button:{minWidth:"40px"}},children:[l&&p(B,{children:[i(s.Button,{variant:"filled",size:"xs",disabled:!n.views.VIE,onClick:n.views.addAPanelToVIE,leftIcon:i(V.PlaylistAdd,{size:20}),children:"Add a Panel"}),p(s.Group,{spacing:0,sx:Mr,children:[i(s.Tooltip,{label:"Filters",children:i(s.ActionIcon,{variant:"default",size:"md",onClick:C,children:i(V.Filter,{size:20})})}),i(s.Tooltip,{label:"Data Settings",children:i(s.ActionIcon,{variant:"default",size:"md",onClick:d,children:i(V.Database,{size:20})})})]}),p(s.Group,{spacing:0,sx:Mr,children:[i(s.Tooltip,{label:"Save Changes",children:i(s.ActionIcon,{variant:"default",size:"md",onClick:t,disabled:!o,children:i(V.DeviceFloppy,{size:20,color:"green"})})}),i(s.Tooltip,{label:"Revert Changes",children:i(s.ActionIcon,{variant:"default",size:"md",disabled:!o,onClick:a,children:i(V.Recycle,{size:20,color:"red"})})})]})]}),!u&&p(s.Menu,{width:180,trigger:"hover",children:[i(s.Menu.Target,{children:i(s.ActionIcon,{variant:"default",size:"md",children:i(V.Share,{size:20})})}),p(s.Menu.Dropdown,{children:[i(s.Menu.Item,{icon:i(V.Download,{size:14}),onClick:n.queries.downloadAllData,children:"Download Data"}),i(s.Menu.Item,{icon:i(V.Code,{size:14}),onClick:S,children:"Download Schema"})]})]})]}),i(Yo,{opened:h,close:b}),i($o,{opened:c,close:f})]})}),uf="",Ir=I.observer(()=>{const{freezeLayout:e}=M.default.useContext(ye),[t,n]=M.default.useState(!1),{panel:r}=ee();return M.default.useEffect(()=>{e(t)},[t]),!r.description||r.description==="<p><br></p>"?null:p(B,{children:[i(s.Modal,{opened:t,onClose:()=>n(!1),title:r.title,withCloseButton:!1,children:i(Kn.default,{readOnly:!0,value:r.description,onChange:U.default.noop,sx:{border:"none"}})}),i(s.Tooltip,{label:"Click to see description",position:"top-start",withinPortal:!0,children:i(s.ActionIcon,{variant:"subtle",color:"blue",onClick:()=>n(a=>!a),sx:{verticalAlign:"baseline",cursor:"pointer"},children:i(V.InfoCircle,{size:20})})})]})}),Vr=e=>{const{title:t="Variables",variables:n}=e,r=ie.useClipboard(),a=o=>{r.copy(o),at.showNotification({color:"green",message:"Copied to clipboard"})};return p(s.Paper,{withBorder:!0,p:"sm",children:[i(s.Text,{size:"xs",color:"dimmed",mb:"sm",children:t}),i(s.Stack,{style:{maxHeight:"500px"},children:n.map(o=>p(s.Text,{size:"sm",children:[p(s.Code,{color:"teal",children:["// ",o.description]}),i("br",{}),p(s.Code,{onClick:()=>a(o.name),style:{cursor:"pointer"},children:[o.name," : ",o.valueType]})]},o.name))})]})};class rs{constructor(t,n){R(this,"operationId");R(this,"operation");R(this,"operationSchema");R(this,"variables",[]);this.operationManager=t,this.instance=n,Z.makeAutoObservable(this)}get schemaList(){return this.operationManager.getOperationSchemaList()}async configOperation(t,n){const r=await this.operationManager.retrieveTrigger(t),a=this.operationManager.getOperationSchemaList().find(o=>o.id===(r==null?void 0:r.schemaRef));Z.runInAction(()=>{this.operationId=t,this.operation=r,this.operationSchema=a,this.variables=n})}async changeSchema(t){this.operationId&&(await this.operationManager.createOrGetOperation(this.operationId,t),await this.configOperation(this.operationId,this.variables))}}function is(e){return!!e.operationId}const as=I.observer(({model:e,onClick:t})=>{var r;const n=(r=e.operationSchema)==null?void 0:r.displayName;return i(s.Button,{variant:"outline",onClick:t,children:n})}),os=I.observer(({model:e})=>{const t={operation:e.operation,instance:e.instance,variables:[]};return x.createElement(e.operationSchema.configRender,t)});function ss({model:e}){const t=e.schemaList,n=t.map(a=>({label:a.displayName,value:a.id}));async function r(a){await e.changeSchema(t.find(o=>o.id===a))}return i(s.Select,{label:"Operation",data:n,onChange:r,value:e.operationSchema.id})}const ls=I.observer(e=>{const[t,{setTrue:n,setFalse:r}]=W.useBoolean(!1),{operationManager:a,operationId:o,instance:l,variables:u}=e,c=W.useCreation(()=>new rs(a,l),[a,l]);return W.useAsyncEffect(async()=>{await c.configOperation(o,u)},[o,c]),is(c)?p(B,{children:[i(as,{model:c,onClick:n}),i(s.Modal,{opened:t,onClose:r,title:"Operation Settings",closeButtonLabel:"close",children:p(s.Stack,{children:[i(ss,{model:c}),i(os,{model:c}),i(Vr,{title:"Variables",variables:c.variables})]})})]}):null});class us{constructor(t,n){R(this,"triggerId");R(this,"trigger");R(this,"triggerSchema");R(this,"sampleData");this.triggerManager=t,this.instance=n,Z.makeAutoObservable(this)}get schemaList(){return this.triggerManager.getTriggerSchemaList()}async configTrigger(t,n){const r=await this.triggerManager.retrieveTrigger(t),a=this.triggerManager.getTriggerSchemaList().find(o=>o.id===(r==null?void 0:r.schemaRef));Z.runInAction(()=>{this.triggerId=t,this.trigger=r,this.triggerSchema=a,this.sampleData=n})}async changeSchema(t){this.triggerId&&(await this.triggerManager.createOrGetTrigger(this.triggerId,t),await this.configTrigger(this.triggerId,this.sampleData))}isReady(){return cs(this)}}function cs(e){return!!e.triggerId&&!!e.triggerSchema}function ds(e,t){return W.useCreation(()=>new us(e,t),[e,t])}const gs=I.observer(({model:e,onClick:t})=>{const n=e.triggerSchema.nameRender,r={trigger:e.trigger,instance:e.instance,sampleData:e.sampleData};return i(s.Button,{variant:"outline",onClick:t,children:x.createElement(n,r)})}),ps=I.observer(({model:e})=>{const t=e.schemaList,n=t.map(a=>({label:a.displayName,value:a.id}));async function r(a){await e.changeSchema(t.find(o=>o.id===a))}return i(s.Select,{label:"Trigger",data:n,value:e.triggerSchema.id,onChange:r})}),fs=I.observer(({model:e})=>{const t={trigger:e.trigger,instance:e.instance,sampleData:e.sampleData};return x.createElement(e.triggerSchema.configRender,t)}),hs=I.observer(e=>{const[t,{setTrue:n,setFalse:r}]=W.useBoolean(!1),a=e.model;return p(B,{children:[i(s.Modal,{opened:t,onClose:r,title:"Setup Trigger",closeButtonLabel:"close setup",children:p(s.Stack,{children:[i(ps,{model:a}),i(fs,{model:a}),i(Vr,{title:"Payload",variables:a.triggerSchema.payload})]})}),i(gs,{onClick:n,model:a})]})});class je{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,w.omit(n,t))}async getItem(t){const n=await this.root.getItem(this.path);return t===null?n:w.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,(a,o)=>{n(a,o)},r):this.root.watchItem(this.path,(a,o)=>{const l=w.get(a,t),u=w.get(o,t);l!==u&&n(l,u)},r)}}class jt{constructor(t,n,r){R(this,"attachmentStorage");this.instance=t,this.attachmentKey=n,this.constructInstance=r,this.attachmentStorage=new je(t.instanceData,n)}async getInstance(t){if(await this.attachmentStorage.getItem(t))return this.constructInstance(new je(this.attachmentStorage,t))}async create(t,n){return await this.attachmentStorage.setItem(t,n),this.constructInstance(new je(this.attachmentStorage,t))}async remove(t){await this.attachmentStorage.deleteItem(t)}async list(){const t=await this.attachmentStorage.getItem(null);return Promise.all(w.values(t).map(n=>this.constructInstance(new je(this.attachmentStorage,n.id))))}}class Er{constructor(t){R(this,"rootRef");this.rootRef=Z.observable({current:t})}async deleteItem(t){Z.runInAction(()=>{w.unset(this.rootRef.current,[t])})}getItem(t){const n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?Z.toJS(this.rootRef.current):w.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(w.isObject(n))Z.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else Z.runInAction(()=>{w.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,r){return Z.reaction(()=>this.getValueFromRoot(t),(a,o)=>{n(a,o)},{requiresObservable:!0,fireImmediately:w.get(r,"fireImmediately",!1)})}}class ms{constructor(){R(this,"channels",new Map);R(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 vs{constructor(t){R(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 ms,instanceData:new Er(t.viz.conf)};return this.instances.set(t.id,r),r}}function kr(e,t,n,r){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new Er({}),colorPalette:{getColor(){return()=>""}},data:t,variables:r}}const ys=e=>{const{panel:t,vizManager:n,data:r,variables:a}=e,o=n.resolveComponent(t.viz.type),l=n.getOrCreateInstance(t),u={...kr(l,r,n,a),viewport:{width:t.layout.w,height:t.layout.h}},c=o.viewRender;return i(c,{context:u,instance:l,...w.omit(e,["panel","vizManager","data"])})},bs=e=>{const{vizManager:t,panel:n,panelInfoEditor:r,data:a,variables:o}=e,l=t.resolveComponent(n.viz.type),u=t.getOrCreateInstance(n),c={...kr(u,a,t,o),panelInfoEditor:r},g=l.configRender;return i(g,{context:c,instance:u,...w.omit(e,["panel","vizManager","data","panelInfoEditor"])})},Tr=(e,t)=>{const n=Ye.default.bezier(e),r=Ye.default.bezier(t);return function(a){return a<50?n(a*2/100).hex():r((a-50)*2/100).hex()}},ct=e=>{const t=Ye.default.bezier(e);return function(n){return t(n/100).hex()}},Cs={type:"interpolation",displayName:"Red / Green",getColor:Tr(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},ws={type:"interpolation",displayName:"Yellow / Blue",getColor:Tr(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},xs={type:"interpolation",displayName:"Red",getColor:ct(["#fff7f1","darkred"]),name:"red",category:"sequential"},Ss={type:"interpolation",displayName:"Green",getColor:ct(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},_s={type:"interpolation",displayName:"Blue",getColor:ct(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},Ms={type:"interpolation",displayName:"Orange",getColor:ct(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"},Ds="6.8.0";class Is{constructor(t){R(this,"staticColors",new Map);R(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 Vs{constructor(){R(this,"plugins",new Map);R(this,"vizComponents",new Map);R(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 Es{constructor(){R(this,"migrations",[])}version(t,n){return this.migrations.push({version:t,handler:n}),this}run(t,n,r){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 a=this.migrations.filter(u=>u.version>t.from&&u.version<=t.to),o=w.orderBy(a,"version","asc");if(((l=w.last(o))==null?void 0:l.version)!==t.to)throw new Error(`Migration to version ${t.to} not found`);return o.reduce((u,c)=>c.handler(u,r),n)}}class le extends Es{constructor(){super(),this.configVersions()}version(t,n){return super.version(t,(r,a)=>({version:t,...n(r,a)}))}async migrate({configData:t,panelModel:n}){const r=await t.getItem(null),a=w.get(r,"version",0),o=this.run({from:a,to:this.VERSION},r,{panelModel:n});await t.setItem(null,o)}async needMigration({configData:t}){const n=await t.getItem(null);return w.get(n,"version",0)<this.VERSION}}const G=(e,t)=>{const[n,{setFalse:r}]=W.useBoolean(!0),[a,o]=x.useState();x.useEffect(()=>(e.getItem(t).then(u=>{o(u),r()}),e.watchItem(t,u=>{o(u)})));const l=x.useCallback(async u=>{await e.setItem(t,u),o(u)},[e,t]);return{loading:n,value:a,set:l}},Wt={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([H.GridComponent,H.VisualMapComponent,H.LegendComponent,H.TooltipComponent,Ve.CanvasRenderer]);function ks({context:e}){const{value:t}=G(e.instanceData,"config"),n=e.data,{width:r,height:a}=e.viewport,{x_axis_data_key:o,y_axis_data_key:l,z_axis_data_key:u,xAxis3D:c,yAxis3D:g,zAxis3D:d}=w.defaults({},t,Wt),f=x.useMemo(()=>{const C=w.minBy(n,b=>b[u]);return w.get(C,u)},[n,u]),h=x.useMemo(()=>{const C=w.maxBy(n,b=>b[u]);return w.get(C,u)},[n,u]),v={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:f,max:h,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:c,yAxis3D:g,zAxis3D:d,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:n.map(C=>[C[o],C[l],C[u]])}]};return t?i(ke.default,{echarts:te,option:v,style:{width:r,height:a}}):null}function Ts({label:e,required:t,value:n,onChange:r,data:a,clearable:o=!1,sx:l,...u},c){const g=M.default.useMemo(()=>{if(!Array.isArray(a)||a.length===0)return[];const f=Object.keys(a[0]).map(h=>({label:h,value:h}));return o?f.concat([{label:"unset",value:""}]):f},[a]);return i(s.Select,{ref:c,label:e,data:g,value:n,onChange:r,required:t,sx:l,...u})}const Q=M.default.forwardRef(Ts);function As({context:e}){const{value:t,set:n}=G(e.instanceData,"config"),r=e.data,a=w.defaults({},t,Wt),{control:o,handleSubmit:l,reset:u}=_.useForm({defaultValues:a});return x.useEffect(()=>{u(a)},[t]),t?i(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:l(n),children:[i(s.Text,{children:"X Axis"}),p(s.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[i(_.Controller,{name:"x_axis_data_key",control:o,render:({field:c})=>i(Q,{label:"Data Field",required:!0,data:r,...c})}),i(_.Controller,{name:"xAxis3D.name",control:o,render:({field:c})=>i(s.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),i(s.Text,{mt:"lg",children:"Y Axis"}),p(s.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[i(_.Controller,{name:"y_axis_data_key",control:o,render:({field:c})=>i(Q,{label:"Data Field",required:!0,data:r,...c})}),i(_.Controller,{name:"yAxis3D.name",control:o,render:({field:c})=>i(s.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),i(s.Text,{mt:"lg",children:"Z Axis"}),p(s.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[i(_.Controller,{name:"z_axis_data_key",control:o,render:({field:c})=>i(Q,{label:"Data Field",required:!0,data:r,...c})}),i(_.Controller,{name:"zAxis3D.name",control:o,render:({field:c})=>i(s.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...c})})]}),i(s.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:p(s.Button,{color:"blue",type:"submit",children:[i(V.DeviceFloppy,{size:20}),i(s.Text,{ml:"md",children:"Save"})]})})]})}):null}class Rs extends le{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const $s={displayName:"Bar Chart (3D)",migrator:new Rs,name:"bar-3d",viewRender:ks,configRender:As,createConfig:()=>Wt},Ut=x.forwardRef(function({value:t,onChange:n,...r},a){return i(s.TextInput,{ref:a,value:t,onChange:n,...r})}),dt={mantissa:0,output:"number",trimMantissa:!1,average:!1};function Fs({value:e,onChange:t},n){const r=u=>{t({...e,output:u})},a=u=>{const c=u===0?!1:e.trimMantissa;t({...e,mantissa:u,trimMantissa:c})},o=u=>{t({...e,trimMantissa:u.currentTarget.checked})},l=u=>{t({...e,average:u.currentTarget.checked})};return p(s.Stack,{ref:n,children:[p(s.Group,{grow:!0,children:[i(s.Select,{label:"Format",data:[{label:"1234",value:"number"},{label:"99%",value:"percent"}],value:e.output,onChange:r,sx:{flexGrow:1}}),i(s.Switch,{label:p(s.Stack,{spacing:0,children:[i(s.Text,{children:"Average"}),i(s.Text,{size:12,color:"gray",children:"like 1.234k, 1.234m"})]}),checked:e.average,onChange:l,disabled:e.output!=="number",sx:{flexGrow:1},styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"},label:{display:"block"}}})]}),p(s.Group,{grow:!0,children:[i(s.NumberInput,{label:"Mantissa",defaultValue:0,min:0,step:1,max:4,value:e.mantissa,onChange:a}),i(s.Switch,{label:"Trim mantissa",checked:e.trimMantissa,onChange:o,disabled:e.mantissa===0,styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"}}})]}),p(s.Stack,{spacing:0,children:[i(s.Text,{weight:"bold",children:"Preview"}),i(qe,{children:p(s.Group,{position:"apart",children:[p(s.Text,{size:12,color:"gray",children:["123456789 ",i(V.ArrowRight,{size:9})," ",ge.default(123456789).format(e)]}),p(s.Text,{size:12,color:"gray",children:["1234 ",i(V.ArrowRight,{size:9})," ",ge.default(1234).format(e)]}),p(s.Text,{size:12,color:"gray",children:["0.1234 ",i(V.ArrowRight,{size:9})," ",ge.default(.1234).format(e)]})]})})]})]})}const gt=M.default.forwardRef(Fs),zs=[{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 Os({label:e,value:t,onChange:n},r){x.useEffect(()=>{typeof t=="string"&&(console.log(t),n({type:t,config:{}}))},[t,n]);const a=l=>{n(l==="quantile"?{type:"quantile",config:{p:.99}}:{type:l,config:{}})},o=l=>{n({type:"quantile",config:{p:l}})};return p(s.Group,{grow:!0,noWrap:!0,pt:"sm",children:[i(s.Select,{ref:r,label:e,data:zs,value:t.type,onChange:a}),t.type==="quantile"&&i(s.NumberInput,{label:"p",value:t.config.p,onChange:o,precision:2,min:.05,step:.05,max:1})]})}const Ar=M.default.forwardRef(Os);function Ps({label:e,value:t,onChange:n},r){const[a,o]=M.default.useState(Array.isArray(t)?[...t]:[]),l=M.default.useCallback(()=>{o(h=>[...h,""])},[o]),u=M.default.useCallback(h=>{o(v=>(v.splice(h,1),[...v]))},[o]),c=M.default.useMemo(()=>!U.default.isEqual(a,t),[a,t]),g=()=>{n(a.map(h=>h.toString()))},d=s.useMantineTheme(),f=M.default.useMemo(()=>Object.entries(d.colors).map(([h,v])=>v[6]),[d]);return p(B,{children:[p(s.Group,{position:"left",ref:r,children:[i(s.Text,{children:e}),i(s.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!c,onClick:g,children:i(V.DeviceFloppy,{size:20})})]}),p(s.Group,{children:[a.map((h,v)=>i(s.ColorInput,{value:h,onChange:C=>{o(b=>(b.splice(v,1,C),[...b]))},swatches:f,rightSection:i(s.ActionIcon,{onClick:()=>u(v),color:"red",children:i(V.Trash,{size:14})}),sx:{width:"45%"}})),i(s.ActionIcon,{onClick:l,color:"blue",variant:"outline",children:i(V.PlaylistAdd,{size:20})})]})]})}const Ns=M.default.forwardRef(Ps);function Gs({value:e,onChange:t},n){const{colorManager:r}=x.useContext(Se),a=M.default.useMemo(()=>r.getStaticColors().map(u=>({label:u.name,group:u.category,value:u.value})),[r]),o=M.default.useMemo(()=>a.some(l=>l.value===e),[e,a]);return p(s.Group,{position:"apart",spacing:4,ref:n,children:[i(s.TextInput,{placeholder:"Set any color",value:o?"":e,onChange:l=>t(l.currentTarget.value),rightSection:i(s.ColorSwatch,{color:o?"transparent":e,radius:4}),variant:o?"filled":"default",sx:{maxWidth:"46%",flexGrow:1}}),i(s.Text,{sx:{flexGrow:0},children:"or"}),i(s.Select,{data:a,value:e,onChange:t,variant:o?"default":"filled",placeholder:"Pick a theme color",icon:i(s.ColorSwatch,{color:o?e:"transparent",radius:4}),sx:{maxWidth:"46%",flexGrow:1}})]})}const Re=M.default.forwardRef(Gs),pt=[{label:"initial",value:0},{label:"500",value:25},{label:"700",value:50},{label:"semibold",value:75},{label:"bold",value:100}];function Ls({label:e,value:t,onChange:n},r){var l,u;const[a,o]=M.default.useState((u=(l=pt.find(c=>c.label===t))==null?void 0:l.value)!=null?u:pt[0].value);return M.default.useEffect(()=>{const c=pt.find(g=>g.value===a);c&&n(c.label)},[a]),p(s.Stack,{spacing:0,mt:"sm",mb:"lg",children:[i(s.Text,{size:"sm",children:e}),i(s.Slider,{label:null,marks:pt,value:a,onChange:o,step:25,placeholder:"Pick a font size",ref:r})]})}const qs=M.default.forwardRef(Ls);function Bs({label:e,value:t,onChange:n,type:r},a){const[o,l]=M.default.useState(Array.isArray(t)?[...t]:[]),u=M.default.useCallback(()=>{l(f=>[...f,""])},[l]),c=M.default.useCallback(f=>{l(h=>(h.splice(f,1),[...h]))},[l]),g=M.default.useMemo(()=>!U.default.isEqual(o.map(String),t.map(String)),[o,t]),d=()=>{n(o.map(f=>r==="number"?Number(f):f.toString()))};return p(B,{children:[p(s.Group,{position:"left",ref:a,children:[i(s.Text,{children:e}),i(s.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!g,onClick:d,children:i(V.DeviceFloppy,{size:20})})]}),p(s.Group,{children:[o.map((f,h)=>i(s.TextInput,{type:r,value:f,onChange:v=>{const C=v.currentTarget.value;l(b=>(b.splice(h,1,C),[...b]))},rightSection:i(s.ActionIcon,{onClick:()=>c(h),color:"red",children:i(V.Trash,{size:14})}),sx:{width:"45%"}})),i(s.ActionIcon,{onClick:u,color:"blue",variant:"outline",children:i(V.PlaylistAdd,{size:20})})]})]})}const js=M.default.forwardRef(Bs),Rr=M.default.forwardRef(function({value:t,onChange:n},r){const a=t.color.type,o=(l,u)=>{const c=U.default.cloneDeep(t);U.default.set(c,l,u),n(c)};return p(B,{children:[i(s.Divider,{my:"xs",label:"Typography",labelPosition:"center"}),i(s.Stack,{children:i(s.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",sx:{flex:1},value:t.size,onChange:l=>o("size",l.currentTarget.value)})}),i(s.Group,{position:"apart",grow:!0,sx:{"> *":{flexGrow:1,maxWidth:"100%"}},children:i(qs,{label:"Font Weight",value:t.weight,onChange:l=>o("weight",l)})}),i(s.Divider,{my:"xs",label:"Style",labelPosition:"center"}),p(s.Stack,{children:[i(s.Select,{label:"Color Type",data:[{label:"Static Color",value:"static"},{label:"Continuous Color",value:"continuous"}],value:t.color.type,onChange:l=>o("color.type",l)}),a==="static"&&i(Re,{value:t.color.staticColor,onChange:l=>o("color.staticColor",l)}),a==="continuous"&&p(B,{children:[i(js,{label:"Value Range",value:t.color.valueRange,type:"number",onChange:l=>o("color.valueRange",l)}),i(Ns,{label:"Color Range",value:t.color.colorRange,onChange:l=>o("color.colorRange",l)})]})]})]})});M.default.forwardRef(function({value:t,onChange:n,data:r,withStyle:a=!0},o){const l=(u,c)=>{const g=U.default.cloneDeep(t);U.default.set(g,u,c),n(g)};return p(s.Box,{px:"sm",py:"md",ref:o,children:[i(s.Text,{weight:"bold",pb:0,children:t.name}),i(s.Divider,{my:"xs",label:"Data",labelPosition:"center"}),p(s.Group,{grow:!0,noWrap:!0,children:[i(s.TextInput,{label:"Name",required:!0,value:t.name,onChange:u=>l("name",u.currentTarget.value)}),i(Q,{label:"Data Field",required:!0,data:r,value:t.data_field,onChange:u=>l("data_field",u)})]}),i(Ar,{label:"Aggregation",value:t.aggregation,onChange:u=>l("aggregation",u)}),i(s.Divider,{my:"xs",label:"Format",labelPosition:"center"}),i(gt,{value:t.formatter,onChange:u=>l("formatter",u)}),a&&i(Rr,{value:t,onChange:n})]})});function Ws(e){const t=Array.from(e).sort((r,a)=>r-a),n=Math.floor(t.length/2);return t.length%2===0?(t[n-1]+t[n])/2:t[n]}function Us(e,t){const n=e[t],r=Number(n);return isFinite(r)?r:0}function Yt(e,t,n){var a,o,l,u;const r=e.map(c=>Us(c,t));switch(n.type){case"sum":return U.default.sum(r);case"mean":return U.default.mean(r);case"median":return Ws(r);case"max":return(a=U.default.max(r))!=null?a:0;case"min":return(o=U.default.min(r))!=null?o:0;case"quantile":return(l=Oa.quantile(r,n.config.p))!=null?l:0;default:return(u=e[0])==null?void 0:u[t]}}var $r=function(){},Je=function(){};process.env.NODE_ENV!=="production"&&($r=function(e,t){!e&&typeof console<"u"&&console.warn(t)},Je=function(e,t){if(!e)throw new Error(t)});const Ys=(e,t,n)=>Math.min(Math.max(n,e),t),Fr=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},Ht=(e,t,n)=>-n*e+n*t+e,zr=(e,t)=>n=>Math.max(Math.min(n,t),e),Xe=e=>e%1?Number(e.toFixed(5)):e,ft=/(-)?([\d]*\.?[\d])+/g,Qt=/(#[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,Hs=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;function Ke(e){return typeof e=="string"}const ht={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Or=Object.assign(Object.assign({},ht),{transform:zr(0,1)});Object.assign(Object.assign({},ht),{default:1});const Ze=(e=>({test:t=>Ke(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}))("%");Object.assign(Object.assign({},Ze),{parse:e=>Ze.parse(e)/100,transform:e=>Ze.transform(e*100)});const Jt=(e,t)=>n=>Boolean(Ke(n)&&Hs.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),Pr=(e,t,n)=>r=>{if(!Ke(r))return r;const[a,o,l,u]=r.match(ft);return{[e]:parseFloat(a),[t]:parseFloat(o),[n]:parseFloat(l),alpha:u!==void 0?parseFloat(u):1}},Ge={test:Jt("hsl","hue"),parse:Pr("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Ze.transform(Xe(t))+", "+Ze.transform(Xe(n))+", "+Xe(Or.transform(r))+")"},Qs=zr(0,255),Xt=Object.assign(Object.assign({},ht),{transform:e=>Math.round(Qs(e))}),$e={test:Jt("rgb","red"),parse:Pr("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+Xt.transform(e)+", "+Xt.transform(t)+", "+Xt.transform(n)+", "+Xe(Or.transform(r))+")"};function Js(e){let t="",n="",r="",a="";return e.length>5?(t=e.substr(1,2),n=e.substr(3,2),r=e.substr(5,2),a=e.substr(7,2)):(t=e.substr(1,1),n=e.substr(2,1),r=e.substr(3,1),a=e.substr(4,1),t+=t,n+=n,r+=r,a+=a),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:a?parseInt(a,16)/255:1}}const Kt={test:Jt("#"),parse:Js,transform:$e.transform},mt={test:e=>$e.test(e)||Kt.test(e)||Ge.test(e),parse:e=>$e.test(e)?$e.parse(e):Ge.test(e)?Ge.parse(e):Kt.parse(e),transform:e=>Ke(e)?e:e.hasOwnProperty("red")?$e.transform(e):Ge.transform(e)},Nr="${c}",Gr="${n}";function Xs(e){var t,n,r,a;return isNaN(e)&&Ke(e)&&((n=(t=e.match(ft))===null||t===void 0?void 0:t.length)!==null&&n!==void 0?n:0)+((a=(r=e.match(Qt))===null||r===void 0?void 0:r.length)!==null&&a!==void 0?a:0)>0}function Lr(e){typeof e=="number"&&(e=`${e}`);const t=[];let n=0;const r=e.match(Qt);r&&(n=r.length,e=e.replace(Qt,Nr),t.push(...r.map(mt.parse)));const a=e.match(ft);return a&&(e=e.replace(ft,Gr),t.push(...a.map(ht.parse))),{values:t,numColors:n,tokenised:e}}function qr(e){return Lr(e).values}function Br(e){const{values:t,numColors:n,tokenised:r}=Lr(e),a=t.length;return o=>{let l=r;for(let u=0;u<a;u++)l=l.replace(u<n?Nr:Gr,u<n?mt.transform(o[u]):Xe(o[u]));return l}}const Ks=e=>typeof e=="number"?0:e;function Zs(e){const t=qr(e);return Br(e)(t.map(Ks))}const jr={test:Xs,parse:qr,createTransformer:Br,getAnimatableNone:Zs};function Zt(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function Wr({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let a=0,o=0,l=0;if(!t)a=o=l=n;else{const u=n<.5?n*(1+t):n+t-n*t,c=2*n-u;a=Zt(c,u,e+1/3),o=Zt(c,u,e),l=Zt(c,u,e-1/3)}return{red:Math.round(a*255),green:Math.round(o*255),blue:Math.round(l*255),alpha:r}}const el=(e,t,n)=>{const r=e*e,a=t*t;return Math.sqrt(Math.max(0,n*(a-r)+r))},tl=[Kt,$e,Ge],Ur=e=>tl.find(t=>t.test(e)),Yr=e=>`'${e}' is not an animatable color. Use the equivalent color code instead.`,Hr=(e,t)=>{let n=Ur(e),r=Ur(t);Je(!!n,Yr(e)),Je(!!r,Yr(t));let a=n.parse(e),o=r.parse(t);n===Ge&&(a=Wr(a),n=$e),r===Ge&&(o=Wr(o),r=$e);const l=Object.assign({},a);return u=>{for(const c in l)c!=="alpha"&&(l[c]=el(a[c],o[c],u));return l.alpha=Ht(a.alpha,o.alpha,u),n.transform(l)}},nl=e=>typeof e=="number",rl=(e,t)=>n=>t(e(n)),Qr=(...e)=>e.reduce(rl);function Jr(e,t){return nl(e)?n=>Ht(e,t,n):mt.test(e)?Hr(e,t):Zr(e,t)}const Xr=(e,t)=>{const n=[...e],r=n.length,a=e.map((o,l)=>Jr(o,t[l]));return o=>{for(let l=0;l<r;l++)n[l]=a[l](o);return n}},il=(e,t)=>{const n=Object.assign(Object.assign({},e),t),r={};for(const a in n)e[a]!==void 0&&t[a]!==void 0&&(r[a]=Jr(e[a],t[a]));return a=>{for(const o in r)n[o]=r[o](a);return n}};function Kr(e){const t=jr.parse(e),n=t.length;let r=0,a=0,o=0;for(let l=0;l<n;l++)r||typeof t[l]=="number"?r++:t[l].hue!==void 0?o++:a++;return{parsed:t,numNumbers:r,numRGB:a,numHSL:o}}const Zr=(e,t)=>{const n=jr.createTransformer(t),r=Kr(e),a=Kr(t);return r.numHSL===a.numHSL&&r.numRGB===a.numRGB&&r.numNumbers>=a.numNumbers?Qr(Xr(r.parsed,a.parsed),n):($r(!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.`),l=>`${l>0?t:e}`)},al=(e,t)=>n=>Ht(e,t,n);function ol(e){if(typeof e=="number")return al;if(typeof e=="string")return mt.test(e)?Hr:Zr;if(Array.isArray(e))return Xr;if(typeof e=="object")return il}function sl(e,t,n){const r=[],a=n||ol(e[0]),o=e.length-1;for(let l=0;l<o;l++){let u=a(e[l],e[l+1]);if(t){const c=Array.isArray(t)?t[l]:t;u=Qr(c,u)}r.push(u)}return r}function ll([e,t],[n]){return r=>n(Fr(e,t,r))}function ul(e,t){const n=e.length,r=n-1;return a=>{let o=0,l=!1;if(a<=e[0]?l=!0:a>=e[r]&&(o=r-1,l=!0),!l){let c=1;for(;c<n&&!(e[c]>a||c===r);c++);o=c-1}const u=Fr(e[o],e[o+1],a);return t[o](u)}}function cl(e,t,{clamp:n=!0,ease:r,mixer:a}={}){const o=e.length;Je(o===t.length,"Both input and output ranges must be the same length"),Je(!r||!Array.isArray(r)||r.length===o-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[o-1]&&(e=[].concat(e),t=[].concat(t),e.reverse(),t.reverse());const l=sl(t,r,a),u=o===2?ll(e,l):ul(e,l);return n?c=>u(Ys(e[0],e[o-1],c)):u}class dl{constructor({valueRange:t,colorRange:n}){R(this,"mapper");this.mapper=cl(t,n)}getColor(t){return this.mapper(t)}}function gl(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array(${e.length})`:e.toString()}function en({data_field:e,aggregation:t},n){return Yt(n,e,t)}function et({formatter:e},t){return["string","number"].includes(typeof t)?ge.default(t).format(e):gl(t)}function pl(e,t){if(e.type==="static")return e.staticColor;if(e.type==="continuous")try{return new dl(e).getColor(t)}catch{return"black"}return"black"}function ei(e,t){const{color:n,data_field:r,aggregation:a,size:o,weight:l}=e,u=Yt(t,r,a),c=et(e,u);return i(s.Text,{sx:{fontSize:o,display:"inline"},color:pl(n,u),weight:l,children:c})}function fl(e,t){const n={};return e.forEach(r=>{const a=r.name;n[a]=ei(r,t)}),n}function hl(e){return e.split(" ").map((t,n)=>p(M.default.Fragment,{children:[t,"\xA0"]},n))}function ml(e){const n=e.replaceAll("<br />","<br/>").replaceAll(`
|
|
48
|
+
`,"<br/>").split("<br/>");return n.map((a,o)=>{const l=[hl(a)];return o!==n.length-1&&l.push(i("br",{})),l}).flat().filter(a=>a!==void 0)}function tn(e){return ml(e)}function nn(e,t,n){const r=fl(t,n),a=/^\{(.+)\}(.*)$/;return e.split("$").map(o=>{var g;const l=a.exec(o);if(!l)return tn(o);const u=r[l[1]];if(!u)return tn(o);const c=(g=l[2])!=null?g:"";return p(B,{children:[u,tn(c)]})})}function vl(e,t){const n={};return e.forEach(r=>{const{name:a,data_field:o,aggregation:l}=r,u=Yt(t,o,l);n[a]=et(r,u)}),n}function ti(e,t,n){const r=vl(t,n),a=/^\{(.+)\}(.*)$/;return e.split("$").map(o=>{var g;const l=a.exec(o);if(!l)return o;const u=r[l[1]];if(!u)return o;const c=(g=l[2])!=null?g:"";return`${u}${c}`}).join("")}const rn={x_axis:{name:"X Axis",data_key:""},y_axis:{name:"Y Axis",data_key:"value"},color:"#228be6",reference_lines:[]};te.use([H.DataZoomComponent,xe.BoxplotChart,H.MarkLineComponent,H.GridComponent,H.LegendComponent,H.TooltipComponent,Ve.CanvasRenderer]);function yl(e,t,n){const r=t.reduce((a,o)=>{const l=en(o,n);return a[o.name]=et(o,l),a},{});return e.map(a=>({name:"refs",type:"scatter",data:[],markLine:{data:[{name:a.name,yAxis:Number(r[a.variable_key])}],silent:!0,symbol:["none","none"],label:{formatter:function(){return ti(a.template,t,n)},position:"insideEndTop"}}}))}function bl({context:e}){const{value:t}=G(e.instanceData,"config"),{variables:n}=e,r=e.data,{width:a,height:o}=e.viewport,{x_axis:l,y_axis:u,color:c,reference_lines:g}=w.defaults({},t,rn),{xAxisData:d,boxplotData:f}=x.useMemo(()=>{const v=U.default.groupBy(r,l.data_key);return{xAxisData:Object.keys(v),boxplotData:Object.values(v).map(C=>C.map(b=>b[u.data_key]))}},[r,l.data_key,u.data_key]),h={dataset:[{source:f},{transform:{type:"boxplot",config:{itemNameFormatter:function(v){var C;return(C=d[v.value])!=null?C:v.value}}}}],dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}],tooltip:{trigger:"axis"},xAxis:[{type:"category",name:l.name,axisTick:{show:!0,alignWithLabel:!0}}],yAxis:[{name:u.name,axisLine:{show:!0}}],series:[{name:u.name,type:"boxplot",itemStyle:{color:c,borderColor:"#454545"},boxWidth:[10,40],datasetIndex:1},...yl(g,n,r)]};return!t||!a||!o?null:i(ke.default,{echarts:te,option:h,style:{width:a,height:o}})}function Cl({control:e,index:t,remove:n,variableOptions:r}){return p(s.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:`reference_lines.${t}.name`,control:e,render:({field:a})=>i(s.TextInput,{label:"Name",placeholder:"Average Reference Line",required:!0,sx:{flex:1},...a})}),i(_.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:a})=>i(s.Select,{label:"Value",required:!0,data:r,sx:{flex:1},...a})})]}),i(_.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:a})=>i(s.TextInput,{label:"Content Template",placeholder:"Average: ${avg}",required:!0,sx:{flex:1},...a})}),i(s.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},children:i(V.Trash,{size:16})})]},t)}function wl({control:e,watch:t,variables:n}){const{fields:r,append:a,remove:o}=_.useFieldArray({control:e,name:"reference_lines"}),l=t("reference_lines"),u=r.map((d,f)=>({...d,...l[f]})),c=()=>a({name:"",template:"",variable_key:""}),g=x.useMemo(()=>n.map(d=>({label:d.name,value:d.name})),[n]);return p(s.Stack,{children:[u.map((d,f)=>i(Cl,{control:e,index:f,remove:o,variableOptions:g})),i(s.Group,{position:"center",mt:"xs",children:i(s.Button,{onClick:c,children:"Add a Reference Line"})})]})}function xl({context:e}){const{value:t,set:n}=G(e.instanceData,"config"),r=e.data,{variables:a}=e,o=x.useMemo(()=>w.defaults({},t,rn),[t]),{control:l,handleSubmit:u,watch:c,getValues:g,reset:d}=_.useForm({defaultValues:o});x.useEffect(()=>{d(o)},[o]),c(["x_axis","y_axis","reference_lines","color"]);const f=g(),h=x.useMemo(()=>!w.isEqual(f,t),[f,t]);return i(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:u(n),children:[p(s.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[i(s.Text,{children:"Chart Config"}),i(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!h,children:i(V.DeviceFloppy,{size:20})})]}),p(s.Accordion,{defaultValue:"Axis",children:[p(s.Accordion.Item,{value:"Axis",children:[i(s.Accordion.Control,{children:"Axis"}),p(s.Accordion.Panel,{children:[p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:"x_axis.name",control:l,render:({field:v})=>i(s.TextInput,{label:"X Axis Name",sx:{flex:1},...v})}),i(_.Controller,{name:"x_axis.data_key",control:l,render:({field:v})=>i(Q,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...v})})]}),p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:"y_axis.name",control:l,render:({field:v})=>i(s.TextInput,{label:"Y Axis Name",sx:{flex:1},...v})}),i(_.Controller,{name:"y_axis.data_key",control:l,render:({field:v})=>i(Q,{label:"Y Axis Data Field",required:!0,data:r,sx:{flex:1},...v})})]})]})]}),p(s.Accordion.Item,{value:"Style",children:[i(s.Accordion.Control,{children:"Style"}),i(s.Accordion.Panel,{children:p(s.Stack,{spacing:4,children:[i(s.Text,{size:"sm",children:"Color"}),i(_.Controller,{name:"color",control:l,render:({field:v})=>i(Re,{...v})})]})})]}),p(s.Accordion.Item,{value:"Advanced",children:[i(s.Accordion.Control,{children:p(s.Group,{position:"apart",children:["Advanced",i(s.Text,{align:"right",size:12,color:"grey",children:"Use variables in reference lines"})]})}),i(s.Accordion.Panel,{children:p(s.Tabs,{defaultValue:"reference_lines",children:[i(s.Tabs.List,{children:i(s.Tabs.Tab,{value:"reference_lines",children:"Reference Lines"})}),i(s.Tabs.Panel,{value:"reference_lines",pt:"xs",children:i(wl,{variables:a,control:l,watch:c})})]})})]})]})]})})}function Sl(e){return w.omit(e,"variables")}class _l extends le{constructor(){super(...arguments);R(this,"VERSION",2)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,{panelModel:r})=>{const{config:a}=n;return(a.variables||[]).forEach(l=>{r.variables.find(u=>u.name===l.name)||r.addVariable(l)}),{config:Sl(a)}})}}const Ml={displayName:"Boxplot",migrator:new _l,name:"boxplot",viewRender:bl,configRender:xl,createConfig:()=>rn},an=(e,t)=>{const[n,r]=x.useState([]);return x.useEffect(()=>e.watchTriggerSnapshotList(a=>r(a.filter(o=>o.schemaRef===t))),[]),n},on=({vizManager:e,instance:t})=>W.useCreation(()=>new $n(t,e.resolveComponent(t.type),_t),[t,e]),ni="__TRIGGERS";class Dl{constructor(t,n){R(this,"attachments");this.instance=t,this.component=n;const r=async a=>{const{id:o,schemaRef:l}=await a.getItem(null);return{id:o,schemaRef:l,triggerData:new je(a,"data")}};this.attachments=new jt(t,ni,r)}watchTriggerSnapshotList(t){return this.instance.instanceData.watchItem(ni,n=>{const r=w.values(n).map(a=>({id:w.get(a,"id"),schemaRef:w.get(a,"schemaRef"),config:Z.toJS(w.get(a,"data.config"))}));t(r)},{fireImmediately:!0})}async createOrGetTrigger(t,n,r={recreate:!1}){var u;if(!this.getTriggerSchemaList().some(c=>c.id===n.id))throw new Error(`Trigger schema '${n.id}' is not defined in component '${this.component.name}'`);const o=await this.attachments.getInstance(t);return!o||r.recreate||o.schemaRef!==n.id?await this.attachments.create(t,{id:t,schemaRef:n.id,data:((u=n==null?void 0:n.createDefaultConfig)==null?void 0:u.call(n))||{}}):o}async getTriggerList(){return await this.attachments.list()}getTriggerSchemaList(){return this.component.triggers||[]}async removeTrigger(t){await this.attachments.remove(t)}async retrieveTrigger(t){return await this.attachments.getInstance(t)}async getMigrationTasks(){const n=(await this.getTriggerList()).map(async r=>{const a=this.getTriggerSchemaList().find(u=>u.id===r.schemaRef),o=a==null?void 0:a.migrator,l={configData:r.triggerData};return o&&await o.needMigration(l)?()=>o.migrate(l):null});return Promise.all(n).then(r=>r.filter(a=>a))}async needMigration(){return(await this.getMigrationTasks()).length>0}async runMigration(){const t=await this.getMigrationTasks();await Promise.all(t.map(n=>n()))}}const ri={id:"builtin:button:click-button",displayName:"Click Button",nameRender:Vl,configRender:Il,payload:[]};function Il(e){return i(B,{})}function Vl(e){return i(s.Text,{children:"Click this button"})}const sn={content:"Button",variant:"filled",color:"blue",size:"xs",compact:!1},El=I.observer(({context:e,instance:t})=>{const n=on({vizManager:e.vizManager,instance:t}),r=an(n.triggerManager,ri.id),a=j(),{value:o}=G(e.instanceData,"config"),l=x.useMemo(()=>w.defaultsDeep({},o,sn),[o]),{content:u,...c}=l,{width:g,height:d}=e.viewport,f={filters:a.filters.values,context:a.context.current},h=()=>{r.forEach(v=>{n.runInteraction(v.id,{})})};return i(s.Center,{sx:{width:g,height:d},children:i(s.Button,{...c,onClick:h,children:w.template(u)(f)})})}),kl=({value:e,onChange:t,label:n})=>{const r=s.useMantineTheme(),a=x.useCallback(l=>()=>t(l),[t]),o=l=>e===l;return p(s.Stack,{spacing:2,children:[i(s.Text,{size:14,sx:{fontWeight:500},children:n}),i(s.Group,{position:"left",spacing:"xs",children:Object.keys(r.colors).map(l=>{const u=r.colors[l][6];return i(s.ColorSwatch,{color:u,onClick:a(l),radius:4,size:26,sx:{cursor:"pointer"},children:o(l)&&i(s.CheckIcon,{width:10,color:"white"})},l)})})]})},Tl=s.MANTINE_SIZES.map(e=>({label:e.toUpperCase(),value:e})),Al=({label:e,value:t,onChange:n})=>i(s.Select,{data:Tl,label:e,value:t,onChange:n}),Rl=[{label:"Filled",value:"filled"},{label:"Outline",value:"outline"},{label:"Light",value:"light"},{label:"White",value:"white"},{label:"Default",value:"default"},{label:"Subtle",value:"subtle"},{label:"Gradient",value:"gradient",disabled:!0}];function $l({context:e}){const{value:t,set:n}=G(e.instanceData,"config"),r=x.useMemo(()=>w.defaultsDeep({},t,sn),[t]),a=(o,l)=>{n({...r,[o]:l})};return p(s.Stack,{children:[i(s.TextInput,{label:"Content Template",description:"Filter values & context entries are supported",value:r.content,onChange:o=>a("content",o.currentTarget.value),required:!0}),i(s.Divider,{mt:"xs",mb:0,label:"Styles",labelPosition:"center",variant:"dashed"}),i(s.Select,{label:"Variant",data:Rl,value:r.variant,onChange:o=>a("variant",o)}),p(s.SimpleGrid,{cols:2,children:[i(kl,{label:"Theme",value:r.color,onChange:o=>a("color",o)}),p(s.Stack,{children:[i(Al,{label:"Size",value:r.size,onChange:o=>a("size",o)}),i(s.Checkbox,{label:"Compact",checked:r.compact,onChange:o=>a("compact",o.currentTarget.checked)})]})]})]})}class Fl extends le{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const zl={displayName:"Button",migrator:new Fl,name:"button",viewRender:El,configRender:$l,createConfig:()=>sn,triggers:[ri]};function Ol(e){const t=e.y_axes.some(n=>!!n.name);return{bottom:e.x_axis_name?40:25,top:t?30:10}}function Pl({regressions:e=[]},t){const n=[],r=[],a=[];return t.length===0?{regressionDataSets:n,regressionSeries:r,regressionXAxes:a}:(e.forEach(({transform:o,plot:l,name:u,y_axis_data_key:c})=>{const g=`x-axis-for-${u}`,d=`dataset-for-${u}--raw`,f=`dataset-for-${u}--transformed`;n.push({id:d,source:t.map((h,v)=>[v,Number(h[c])])}),n.push({transform:o,id:f,fromDatasetId:d}),r.push({...l,name:u,datasetId:f,xAxisId:g,showSymbol:!1,tooltip:{show:!1}}),a.push({type:"category",id:g,datasetId:f,show:!1})}),{regressionDataSets:n,regressionSeries:r,regressionXAxes:a})}function Nl({type:e,...t},n,r){if(!e)return 10;if(e==="static"){const{size:l}=t;return l}const{func_content:a}=t,o=w.keyBy(n,r);return(l,u)=>{const c=o[u.name];try{return new Function(`return ${a}`)()(c,u)}catch(g){return console.error(`[getEchartsSymbolSize] failed parsing custom function, error: ${g.message}`),10}}}function Gl(e,t,n,r){const a=t.map(o=>[o[n],o[r]]);return U.default.unionBy(a,e,0)}function Ll(e,t,n){const r=t.reduce((a,o)=>{const l=en(o,n);return a[o.name]=et(o,l),a},{});return e.map(a=>({name:"refs",type:"scatter",data:[],markLine:{data:[{name:a.name,yAxis:Number(r[a.variable_key])}],silent:!0,symbol:["none","none"],label:{formatter:function(){return ti(a.template,t,n)},position:"insideEndTop"}}}))}function ql(e,t,n){const r=t.reduce((a,o)=>{const l=en(o,n);return a[o.name]=et(o,l),a},{});return e.map(a=>({name:"",type:"line",data:[],markArea:{itemStyle:{color:a.color},data:[[{yAxis:r[a.y_keys.upper]},{yAxis:r[a.y_keys.lower]}]],silent:!0}}))}function Bl({x_axis_data_key:e},{y_axis_data_key:t,yAxisIndex:n,label_position:r,name:a,group_by_key:o,stack:l,color:u,display_name_on_line:c,symbolSize:g,...d},f,h,v){const C={label:{show:!!r,position:r,formatter:v[n!=null?n:"default"]},name:a,xAxisId:"main-x-axis",yAxisIndex:n,stack:l,color:u,symbolSize:Nl(g,h,e),...d};if(c&&(C.endLabel={show:!0,formatter:a,offset:[-12,12],align:"right"}),!o)return C.data=h.map(S=>S[t]),C;const b=w.groupBy(h,o);return Object.entries(b).map(([S,T])=>{const A=w.cloneDeep(C);return A.data=Gl(f,T,e,t),A.name=S,A.color=void 0,A})}function jl(e,t,n,r,a){const o=t.map(u=>[u,0]);return e.series.map(u=>Bl(e,u,o,n,r)).flat().concat(Ll(e.reference_lines,a,n)).concat(ql(e.reference_areas,a,n))}function Wl(e,t){const n=e.series.reduce((r,{yAxisIndex:a,name:o})=>(r[o]=a,r),{});return{formatter:function(r){const a=Array.isArray(r)?r:[r];if(a.length===0)return"";const o=a.map(({seriesName:l,value:u})=>{var d;if(Array.isArray(u)&&u.length===2&&(u=u[1]),!l)return u;const c=n[l],g=(d=t[c])!=null?d:t.default;return`${l}: <strong>${g({value:u})}</strong>`});return o.unshift(`<strong>${a[0].name}</strong>`),o.join("<br />")}}}function Ul(e,t,n){var r;return[{data:t,name:(r=e.x_axis_name)!=null?r:"",id:"main-x-axis",axisTick:{show:!0,alignWithLabel:!0},...e.x_axis},...n]}function Yl(e,t){return e.y_axes.map(({nameAlignment:n,...r},a)=>{var l;let o=r.position;return o||(o=a>0?"right":"left"),{...r,position:o,axisLabel:{show:!0,formatter:(l=t[a])!=null?l:t.default},axisLine:{show:!0},nameTextStyle:{fontWeight:"bold",align:n},nameLocation:"end",nameGap:15,splitLine:{show:!1}}})}const Hl={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"},splitLine:{show:!1},axisTick:{show:!0,alignWithLabel:!0}}],grid:{top:10,left:30,right:15,bottom:25,containLabel:!0}};function Ql(e,t,n){const r=e.y_axes.reduce((d,{label_formatter:f},h)=>(d[h]=function(C){let b=C;if(typeof C=="object"&&(Array.isArray(C.value)&&C.value.length===2?b=C.value[1]:b=C.value),!f)return b;try{return ge.default(b).format(f)}catch(S){return console.error(S),b}},d),{default:({value:d})=>d}),a=U.default.uniq(t.map(d=>d[e.x_axis_data_key])),o=jl(e,a,t,r,n),{regressionDataSets:l,regressionSeries:u,regressionXAxes:c}=Pl(e,t),g={xAxis:Ul(e,a,c),yAxis:Yl(e,r),dataset:[...l],series:[...o,...u],tooltip:Wl(e,r),grid:Ol(e)};return w.defaultsDeep({},g,Hl)}const ii={id:"builtin:echarts:click-echart:series",displayName:"Click Chart Series",nameRender:Xl,configRender:Jl,payload:[{name:"type",description:"Always 'click'",valueType:"string"},{name:"seriesType",description:"'line' | 'scatter' | 'bar'",valueType:"string"},{name:"componentSubType",description:"'line' | 'scatter' | 'bar'",valueType:"string"},{name:"componentType",description:"'series'",valueType:"string"},{name:"name",description:"Name of the series clicked",valueType:"string"},{name:"color",description:"Color",valueType:"string"},{name:"value",description:"String-typed number, or series' actual value",valueType:"string"}]};function Jl(e){return i(B,{})}function Xl(e){return i(s.Text,{children:"Click chart's series"})}const ln={regressions:[],series:[],stats:{templates:{bottom:"",top:""}},x_axis:{axisLabel:{rotate:0}},x_axis_data_key:"",x_axis_name:"",y_axes:[{name:"Y Axis",position:"left",nameAlignment:"center",label_formatter:dt}],reference_lines:[],reference_areas:[]};te.use([H.DataZoomComponent,xe.BarChart,xe.LineChart,xe.ScatterChart,H.GridComponent,H.LegendComponent,H.TooltipComponent,Ve.CanvasRenderer,H.MarkLineComponent,H.MarkAreaComponent]),te.registerTransform(Hn.transform.regression);function ai(e){return e.trim().length>0}function Kl({conf:e,data:t,width:n,height:r,interactionManager:a,variables:o}){const l=an(a.triggerManager,ii.id),u=g=>{l.forEach(d=>{a.runInteraction(d.id,{...g})})},c=M.default.useMemo(()=>Ql(e,t,o),[e,t]);return!n||!r?null:i(ke.default,{echarts:te,option:c,style:{width:n,height:r},onEvents:{click:u}})}function Zl({context:e,instance:t}){const n=on({vizManager:e.vizManager,instance:t}),{value:r}=G(e.instanceData,"config"),{variables:a}=e,o=x.useMemo(()=>w.defaults({},r,ln),[r]),l=e.data,{width:u,height:c}=e.viewport,{ref:g,height:d}=ie.useElementSize(),{ref:f,height:h}=ie.useElementSize(),v=M.default.useMemo(()=>{const{stats:{templates:b}}=o;return{top:nn(b.top,a,l),bottom:nn(b.bottom,a,l)}},[o,l]),C=Math.max(0,c-d-h);return p(s.Box,{children:[ai(o.stats.templates.top)&&i(s.Text,{ref:g,align:"left",size:"xs",pl:"sm",children:Object.values(v.top).map(b=>b)}),i(Kl,{variables:a,width:u,height:C,data:l,conf:o,interactionManager:n}),ai(o.stats.templates.bottom)&&i(s.Text,{ref:f,align:"left",size:"xs",pl:"sm",children:Object.values(v.bottom).map(b=>b)})]})}const eu=[{label:"Rectangle",value:"rectangle"}],tu=[{label:"Horizontal",value:"horizontal"}];function nu({control:e,index:t,remove:n,variableOptions:r}){return p(s.Stack,{my:0,p:0,sx:{position:"relative"},children:[p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:`reference_areas.${t}.name`,control:e,render:({field:a})=>i(s.TextInput,{label:"Name",required:!0,sx:{flex:1},...a})}),i(_.Controller,{name:`reference_areas.${t}.color`,control:e,render:({field:a})=>i(s.TextInput,{label:"Color",required:!0,sx:{flex:1},...a})})]}),p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:`reference_areas.${t}.type`,control:e,render:({field:a})=>i(s.Select,{label:"Type",required:!0,data:eu,sx:{flex:1},...a})}),i(_.Controller,{name:`reference_areas.${t}.direction`,control:e,render:({field:a})=>i(s.Select,{label:"Direction",required:!0,data:tu,sx:{flex:1},...a})})]}),i(s.Divider,{variant:"dashed",label:"Data",labelPosition:"center"}),p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:`reference_areas.${t}.y_keys.upper`,control:e,render:({field:a})=>i(s.Select,{label:"Upper Boundary",required:!0,data:r,sx:{flex:1},...a})}),i(_.Controller,{name:`reference_areas.${t}.y_keys.lower`,control:e,render:({field:a})=>i(s.Select,{label:"Lower Boundary",required:!0,data:r,sx:{flex:1},...a})})]}),i(s.Button,{leftIcon:i(V.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),sx:{top:15,right:5},children:"Delete this Reference Area"})]},t)}function ru({control:e,watch:t,variables:n}){const{fields:r,append:a,remove:o}=_.useFieldArray({control:e,name:"reference_areas"}),l=t("reference_areas"),u=r.map((d,f)=>({...d,...l[f]})),c=()=>a({name:"",type:"rectangle",direction:"horizontal",y_keys:{upper:"",lower:""}}),g=x.useMemo(()=>n.map(d=>({label:d.name,value:d.name})),[n]);return p(s.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"6px 0px 0px"}},children:[p(s.Tabs.List,{children:[u.map((d,f)=>i(s.Tabs.Tab,{value:f.toString(),children:f+1},f)),i(s.Tabs.Tab,{onClick:c,value:"add",children:i(s.ActionIcon,{children:i(V.Plus,{size:18,color:"#228be6"})})})]}),u.map((d,f)=>i(s.Tabs.Panel,{value:f.toString(),children:i(nu,{control:e,index:f,remove:o,variableOptions:g})},f))]})}function iu({control:e,index:t,remove:n,variableOptions:r}){return p(s.Stack,{my:0,p:0,sx:{position:"relative"},children:[p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:`reference_lines.${t}.name`,control:e,render:({field:a})=>i(s.TextInput,{label:"Name",placeholder:"Average Reference Line",required:!0,sx:{flex:1},...a})}),i(_.Controller,{name:`reference_lines.${t}.variable_key`,control:e,render:({field:a})=>i(s.Select,{label:"Value",required:!0,data:r,sx:{flex:1},...a})})]}),i(_.Controller,{name:`reference_lines.${t}.template`,control:e,render:({field:a})=>i(s.TextInput,{label:"Content Template",placeholder:"Average: ${avg}",required:!0,sx:{flex:1},...a})}),i(s.Button,{leftIcon:i(V.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),sx:{top:15,right:5},children:"Delete this Reference Line"})]},t)}function au({control:e,watch:t,variables:n}){const{fields:r,append:a,remove:o}=_.useFieldArray({control:e,name:"reference_lines"}),l=t("reference_lines"),u=r.map((d,f)=>({...d,...l[f]})),c=()=>a({name:"",template:"",variable_key:""}),g=x.useMemo(()=>n.map(d=>({label:d.name,value:d.name})),[n]);return p(s.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px"}},children:[p(s.Tabs.List,{children:[u.map((d,f)=>i(s.Tabs.Tab,{value:f.toString(),children:f+1},f)),i(s.Tabs.Tab,{onClick:c,value:"add",children:i(s.ActionIcon,{children:i(V.Plus,{size:18,color:"#228be6"})})})]}),u.map((d,f)=>i(s.Tabs.Panel,{value:f.toString(),children:i(iu,{control:e,index:f,remove:o,variableOptions:g})},f))]})}const ou=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}],su=[{label:"solid",value:"solid"},{label:"dashed",value:"dashed"},{label:"dotted",value:"dotted"}];function lu({control:e,regressionItem:t,index:n,remove:r,yAxisOptions:a,data:o}){const l=t.transform.config.method;return p(s.Stack,{my:0,p:0,sx:{position:"relative"},children:[i(_.Controller,{name:`regressions.${n}.name`,control:e,render:({field:u})=>i(s.TextInput,{label:"Name",required:!0,sx:{flex:1},...u})}),p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:`regressions.${n}.y_axis_data_key`,control:e,render:({field:u})=>i(Q,{label:"Value Field",required:!0,data:o,sx:{flex:1},...u})}),i(_.Controller,{name:`regressions.${n}.plot.yAxisIndex`,control:e,render:({field:{value:u,onChange:c,...g}})=>{var d;return i(s.Select,{label:"Y Axis",data:a,disabled:a.length===0,...g,value:(d=u==null?void 0:u.toString())!=null?d:"",onChange:f=>{if(!f){c(0);return}c(Number(f))},sx:{flex:1}})}})]}),p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:`regressions.${n}.transform.config.method`,control:e,render:({field:u})=>i(s.Select,{label:"Method",data:ou,sx:{flex:1},...u})}),l==="polynomial"&&i(_.Controller,{name:`regressions.${n}.transform.config.order`,control:e,render:({field:u})=>i(s.NumberInput,{label:"Order",sx:{flex:1},...u})})]}),i(s.Divider,{mb:-15,variant:"dashed",label:"Line Style",labelPosition:"center"}),p(s.Group,{grow:!0,children:[i(_.Controller,{name:`regressions.${n}.plot.lineStyle.type`,control:e,render:({field:u})=>i(s.Select,{label:"Line Type",data:su,sx:{flexGrow:1},...u})}),i(_.Controller,{name:`regressions.${n}.plot.lineStyle.width`,control:e,render:({field:u})=>i(s.NumberInput,{label:"Line Width",min:1,max:10,sx:{flexGrow:1},...u})})]}),p(s.Stack,{spacing:4,children:[i(s.Text,{size:"sm",children:"Color"}),i(_.Controller,{name:`regressions.${n}.plot.color`,control:e,render:({field:u})=>i(Re,{...u})})]}),i(s.Button,{leftIcon:i(V.Trash,{size:16}),color:"red",variant:"light",onClick:()=>r(n),sx:{top:15,right:5},children:"Delete this Regression Line"})]},n)}function uu({control:e,watch:t,data:n}){const{fields:r,append:a,remove:o}=_.useFieldArray({control:e,name:"regressions"}),l=t("regressions"),u=r.map((f,h)=>({...f,...l[h]})),c=t("y_axes"),g=M.default.useMemo(()=>c.map(({name:f},h)=>({label:f,value:h.toString()})),[c]),d=()=>a({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 p(s.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px",paddingTop:"6px"}},children:[p(s.Tabs.List,{children:[u.map((f,h)=>i(s.Tabs.Tab,{value:h.toString(),children:h+1},h)),i(s.Tabs.Tab,{onClick:d,value:"add",children:i(s.ActionIcon,{children:i(V.Plus,{size:18,color:"#228be6"})})})]}),u.map((f,h)=>i(s.Tabs.Panel,{value:h.toString(),children:i(lu,{regressionItem:f,control:e,index:h,remove:o,yAxisOptions:g,data:n},h)},h))]})}const tt={static:{type:"static",size:10},dynamic:{type:"dynamic",func_content:["function getSize(rowData, params) {"," // your code goes here"," // return 10","}"].join(`
|
|
49
|
+
`)}},cu=[{label:"No gap between bars",value:"0%"},{label:"Bars overlapping on each other",value:"-100%"}];function du({control:e,index:t}){return p(B,{children:[p(s.Group,{grow:!0,align:"top",children:[i(_.Controller,{name:`series.${t}.stack`,control:e,render:({field:n})=>i(s.TextInput,{label:"Stack",placeholder:"Stack bars by this ID",sx:{flexGrow:1},...n})}),i(_.Controller,{name:`series.${t}.barWidth`,control:e,render:({field:n})=>i(s.TextInput,{label:"Bar Width",sx:{flexGrow:1},...n})})]}),i(_.Controller,{name:`series.${t}.barGap`,control:e,render:({field:n})=>i(s.Select,{label:"Bar Gap",data:cu,sx:{flexGrow:1},...n})})]})}const gu=[{label:"off",value:"false"},{label:"start",value:"start"},{label:"middle",value:"middle"},{label:"end",value:"end"}],pu=[{label:"solid",value:"solid"},{label:"dashed",value:"dashed"},{label:"dotted",value:"dotted"}];function fu({control:e,index:t}){return p(B,{children:[i(s.Divider,{mb:-15,variant:"dashed",label:"Line Settings",labelPosition:"center"}),p(s.Group,{grow:!0,children:[i(_.Controller,{name:`series.${t}.lineStyle.type`,control:e,render:({field:n})=>i(s.Select,{label:"Line Type",data:pu,sx:{flexGrow:1},...n})}),i(_.Controller,{name:`series.${t}.lineStyle.width`,control:e,render:({field:n})=>i(s.NumberInput,{label:"Line Width",min:1,max:10,sx:{flexGrow:1},...n})})]}),p(s.Group,{grow:!0,align:"center",children:[i(_.Controller,{name:`series.${t}.step`,control:e,render:({field:n})=>i(s.Select,{label:"Step",data:gu,sx:{flexGrow:1,maxWidth:"48%"},...n,value:String(n.value),onChange:r=>{const a=r==="false"?!1:r;n.onChange(a)}})}),p(s.Stack,{children:[i(_.Controller,{name:`series.${t}.smooth`,control:e,render:({field:n})=>i(s.Box,{sx:{flexGrow:1},children:i(s.Switch,{label:"Smooth Line",checked:n.value,onChange:r=>n.onChange(r.currentTarget.checked)})})}),i(_.Controller,{name:`series.${t}.display_name_on_line`,control:e,render:({field:n})=>{var r;return i(s.Box,{sx:{flexGrow:1},children:i(s.Switch,{label:"Display Name on Line",checked:(r=n.value)!=null?r:!1,onChange:a=>n.onChange(a.currentTarget.checked)})})}})]})]})]})}const hu=({value:e,onChange:t})=>{const n=r=>{!r||t(r)};return i(s.Box,{children:i(Xn.default,{height:"500px",defaultLanguage:"javascript",value:e,onChange:n,theme:"vs-dark",options:{minimap:{enabled:!1}}})})},mu=({value:e,onChange:t,data:n})=>{const[r,{setTrue:a,setFalse:o}]=W.useBoolean(),[l,u]=x.useState(e),c=()=>{o();const{type:h,func_content:v}=l,C={type:h,func_content:v};u(C),t(C)},g=()=>{o(),u(e)},d=h=>{u(v=>({...v,func_content:h}))},f=()=>{d(tt.dynamic.func_content)};return p(B,{children:[i(s.Box,{sx:{width:"50%"},children:i(s.Button,{variant:"filled",mt:24,onClick:a,sx:{flexGrow:0},children:"Setup"})}),i(s.Modal,{size:800,title:"Setup dynamic size",opened:r,onClose:o,closeOnClickOutside:!1,withCloseButton:!1,children:r&&p(s.Stack,{children:[i(s.Divider,{mt:10,mb:-10,label:"Dynamic by a custom function",labelPosition:"center",variant:"dashed"}),i(hu,{value:l.func_content,onChange:d}),p(s.Group,{position:"apart",children:[i(s.Button,{onClick:f,color:"red",leftIcon:i(V.Recycle,{size:20}),children:"Rest"}),p(s.Group,{position:"right",children:[i(s.Button,{onClick:g,variant:"subtle",children:"Cancel"}),i(s.Button,{onClick:c,children:"OK"})]})]})]})})]})},vu=({value:e,onChange:t,data:n})=>e.type!=="dynamic"?null:i(mu,{value:e,onChange:t,data:n}),yu=({value:e,onChange:t})=>{if(e.type!=="static")return null;const n=r=>{t({...e,size:r})};return i(B,{children:i(s.NumberInput,{defaultValue:18,placeholder:"1 ~ 100",label:" ",hideControls:!0,value:e.size,onChange:n})})},bu=[{label:"Static",value:"static"},{label:"Dynamic",value:"dynamic"}],Cu=x.forwardRef(({label:e="Size",value:t,onChange:n,data:r},a)=>{const o=l=>{n({...tt[l]})};return p(s.SimpleGrid,{cols:2,children:[i(s.Select,{ref:a,label:e,data:bu,value:t.type,onChange:o,sx:{flexGrow:1}}),i(yu,{value:t,onChange:n}),i(vu,{value:t,onChange:n,data:r})]})});function wu({control:e,index:t,data:n}){return i(_.Controller,{name:`series.${t}.symbolSize`,control:e,render:({field:r})=>i(Cu,{label:"Size",data:n,...r})})}const xu=[{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 Su({control:e,index:t,remove:n,seriesItem:r,yAxisOptions:a,data:o}){const l=r.type;return p(s.Stack,{my:0,p:0,sx:{position:"relative"},children:[i(s.Stack,{children:i(_.Controller,{name:`series.${t}.type`,control:e,render:({field:u})=>i(s.SegmentedControl,{data:[{label:"Line",value:"line"},{label:"Bar",value:"bar"},{label:"Scatter",value:"scatter"},{label:"Boxplot",value:"boxplot",disabled:!0}],...u})})}),p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:`series.${t}.name`,control:e,render:({field:u})=>i(s.TextInput,{label:"Name",required:!0,sx:{flex:1},...u})}),i(_.Controller,{name:`series.${t}.y_axis_data_key`,control:e,render:({field:u})=>i(Q,{label:"Value Field",required:!0,data:o,sx:{flex:1},...u})})]}),p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:`series.${t}.yAxisIndex`,control:e,render:({field:{value:u,onChange:c,...g}})=>{var d;return i(s.Select,{label:"Y Axis",data:a,disabled:a.length===0,...g,value:(d=u==null?void 0:u.toString())!=null?d:"",onChange:f=>{if(!f){c(0);return}c(Number(f))},sx:{flex:1}})}}),i(_.Controller,{name:`series.${t}.group_by_key`,control:e,render:({field:u})=>i(Q,{label:"Group By",data:o,clearable:!0,sx:{flex:1},...u})})]}),l==="line"&&i(fu,{index:t,control:e}),l==="bar"&&i(du,{index:t,control:e}),l==="scatter"&&i(wu,{index:t,control:e,data:o}),i(_.Controller,{name:`series.${t}.label_position`,control:e,render:({field:u})=>i(s.Select,{label:"Label Position",data:xu,...u})}),p(s.Stack,{spacing:4,children:[i(s.Text,{size:"sm",children:"Color"}),i(_.Controller,{name:`series.${t}.color`,control:e,render:({field:u})=>i(Re,{...u})})]}),i(s.Button,{leftIcon:i(V.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),sx:{top:15,right:5},children:"Delete this Series"})]},t)}function _u({control:e,watch:t,data:n}){const{fields:r,append:a,remove:o}=_.useFieldArray({control:e,name:"series"}),l=t("series"),u=r.map((f,h)=>({...f,...l[h]})),c=()=>a({type:"bar",name:ie.randomId(),showSymbol:!1,symbolSize:tt.static,y_axis_data_key:"value",yAxisIndex:0,label_position:"top",display_name_on_line:!1,stack:"",color:"#000",step:!1,smooth:!1,barWidth:"10",barGap:"0%",lineStyle:{type:"solid",width:1}}),g=t("y_axes"),d=M.default.useMemo(()=>g.map(({name:f},h)=>({label:f,value:h.toString()})),[g]);return p(s.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px",paddingTop:"6px"}},children:[p(s.Tabs.List,{children:[u.map((f,h)=>i(s.Tabs.Tab,{value:h.toString(),children:h+1},f.id)),i(s.Tabs.Tab,{onClick:c,value:"add",children:i(s.ActionIcon,{children:i(V.Plus,{size:18,color:"#228be6"})})})]}),u.map((f,h)=>i(s.Tabs.Panel,{value:h.toString(),children:i(Su,{control:e,index:h,remove:o,seriesItem:f,yAxisOptions:d,data:n},f.id)},f.id))]})}function Mu({control:e}){return i(s.Stack,{children:p(s.Stack,{spacing:0,children:[i(_.Controller,{name:"stats.templates.top",control:e,render:({field:t})=>i(Ut,{label:"Template for stats above the chart",py:"md",sx:{flexGrow:1},...t})}),i(_.Controller,{name:"stats.templates.bottom",control:e,render:({field:t})=>i(Ut,{label:"Template for stats under the chart",py:"md",sx:{flexGrow:1},...t})})]})})}function Du({data:e,control:t,watch:n}){return n(["x_axis_data_key","x_axis_name","x_axis"]),p(s.Stack,{children:[p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:"x_axis_data_key",control:t,render:({field:r})=>i(Q,{label:"X Axis Data Field",required:!0,data:e,sx:{flex:1},...r})}),i(_.Controller,{name:"x_axis_name",control:t,render:({field:r})=>i(s.TextInput,{label:"X Axis Name",sx:{flex:1},...r})})]}),i(s.Divider,{mb:-15,label:"Tick Label",labelPosition:"center"}),i(s.Group,{children:i(_.Controller,{name:"x_axis.axisLabel.rotate",control:t,render:({field:r})=>i(s.NumberInput,{label:"Rotate",hideControls:!0,min:-90,max:90,rightSection:i(s.Text,{color:"dimmed",children:"degree"}),sx:{width:"48%"},styles:{rightSection:{width:"4em",justifyContent:"flex-end",paddingRight:"6px"}},...r})})})]})}const Iu=[{label:"left",value:"left"},{label:"center",value:"center"},{label:"right",value:"right"}],Vu=[{label:"left",value:"left"},{label:"right",value:"right"}];function Eu({control:e,index:t,remove:n}){return p(s.Stack,{my:0,p:"0",sx:{position:"relative"},children:[i(s.Divider,{mb:-15,mt:15,variant:"dashed",label:"Name",labelPosition:"center"}),p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:`y_axes.${t}.name`,control:e,render:({field:r})=>i(s.TextInput,{label:"Name",required:!0,sx:{flex:1},...r})}),i(_.Controller,{name:`y_axes.${t}.nameAlignment`,control:e,render:({field:r})=>i(s.Select,{label:"Align",required:!0,data:Iu,sx:{flex:1},...r})})]}),i(s.Divider,{mb:-15,variant:"dashed",label:"Layout",labelPosition:"center"}),i(s.Group,{grow:!0,noWrap:!0,children:i(_.Controller,{name:`y_axes.${t}.position`,control:e,render:({field:r})=>i(s.Select,{label:"Position",required:!0,data:Vu,sx:{flex:1},...r})})}),p(s.Stack,{children:[i(s.Divider,{mb:-15,variant:"dashed",label:"Label Format",labelPosition:"center"}),i(_.Controller,{name:`y_axes.${t}.label_formatter`,control:e,render:({field:r})=>i(gt,{...r})})]}),i(s.Button,{mt:20,leftIcon:i(V.Trash,{size:16}),color:"red",variant:"light",onClick:()=>n(t),disabled:t===0,children:"Delete this YAxis"})]})}function ku({control:e,watch:t}){const{fields:n,append:r,remove:a}=_.useFieldArray({control:e,name:"y_axes"}),o=t("y_axes"),l=n.map((c,g)=>({...c,...o[g]})),u=()=>r({name:"",label_formatter:dt});return p(s.Tabs,{defaultValue:"0",styles:{tab:{paddingTop:"0px",paddingBottom:"0px"},panel:{padding:"0px"}},children:[p(s.Tabs.List,{children:[l.map((c,g)=>i(s.Tabs.Tab,{value:g.toString(),children:g+1},g)),i(s.Tabs.Tab,{onClick:u,value:"add",children:i(s.ActionIcon,{children:i(V.Plus,{size:18,color:"#228be6"})})})]}),l.map((c,g)=>i(s.Tabs.Panel,{value:g.toString(),children:i(Eu,{control:e,index:g,remove:a})},g))]})}function Tu(e){function t({type:n,name:r,showSymbol:a,symbolSize:o=tt.static,y_axis_data_key:l="value",yAxisIndex:u=0,label_position:c="top",stack:g="1",color:d="black",barWidth:f="30",barGap:h="0%",smooth:v=!1,step:C=!1,group_by_key:b="",display_name_on_line:S=!1,lineStyle:T={type:"solid",width:1}}){const A={type:n,name:r,showSymbol:a,symbolSize:o,y_axis_data_key:l,yAxisIndex:u,label_position:c,stack:g,color:d,barWidth:f,barGap:h,smooth:v,step:C,group_by_key:b,display_name_on_line:S,lineStyle:T};return typeof o=="number"&&(A.symbolSize={...tt.static,size:o}),A}return e.map(t)}function Au(e){return e||{templates:{top:"",bottom:""}}}function Ru({series:e,stats:t,...n}){return{series:Tu(e!=null?e:[]),stats:Au(t),...n}}function $u({context:e}){const{value:t,set:n}=G(e.instanceData,"config"),{variables:r}=e,a=e.data,o=x.useMemo(()=>w.defaultsDeep({},t,ln),[t]),l=x.useMemo(()=>Ru(o),[o]);x.useEffect(()=>{!w.isEqual(o,l)&&(console.log("config malformed, resetting to defaults",o,l),n(l))},[o,l]);const{control:u,handleSubmit:c,watch:g,getValues:d,reset:f}=_.useForm({defaultValues:l});x.useEffect(()=>{f(l)},[l]);const h=d(),v=x.useMemo(()=>!w.isEqual(h,o),[h,o]);return i(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:c(n),children:[p(s.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[i(s.Text,{children:"Chart Config"}),i(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!v,children:i(V.DeviceFloppy,{size:20})})]}),p(s.Tabs,{defaultValue:"Series",orientation:"vertical",styles:{tab:{paddingLeft:"6px",paddingRight:"6px"},panel:{paddingTop:"6px",paddingLeft:"12px"}},children:[p(s.Tabs.List,{children:[i(s.Tabs.Tab,{value:"X Axis",children:"X Axis"}),i(s.Tabs.Tab,{value:"Y Axes",children:"Y Axes"}),i(s.Tabs.Tab,{value:"Series",children:"Series"}),i(s.Tabs.Tab,{value:"Regression Lines",children:"Regression Lines"}),i(s.Tabs.Tab,{value:"Stats",children:"Stats"}),i(s.Tabs.Tab,{value:"Reference Lines",children:"Reference Lines"}),i(s.Tabs.Tab,{value:"Reference Areas",children:"Reference Areas"})]}),i(s.Tabs.Panel,{value:"X Axis",children:i(Du,{control:u,watch:g,data:a})}),i(s.Tabs.Panel,{value:"Y Axes",children:i(ku,{control:u,watch:g})}),i(s.Tabs.Panel,{value:"Series",children:i(_u,{control:u,watch:g,data:a})}),i(s.Tabs.Panel,{value:"Regression Lines",children:i(uu,{control:u,watch:g,data:a})}),i(s.Tabs.Panel,{value:"Stats",children:i(Mu,{control:u,watch:g,data:a})}),i(s.Tabs.Panel,{value:"Reference Lines",children:i(au,{variables:r,control:u,watch:g})}),i(s.Tabs.Panel,{value:"Reference Areas",children:i(ru,{variables:r,control:u,watch:g})})]})]})})}function Fu(e){const t=w.cloneDeep(w.omit(e,"variables"));return t.stats=w.omit(t.stats,"variables"),t}class zu extends le{constructor(){super(...arguments);R(this,"VERSION",2)}configVersions(){this.version(1,n=>({version:1,config:n})),this.version(2,(n,{panelModel:r})=>{const{config:a}=n;return(a.variables||[]).forEach(u=>{r.variables.find(c=>c.name===u.name)||r.addVariable(u)}),(w.get(a,"stats.variables")||[]).forEach(u=>{r.variables.find(c=>c.name===u.name)||r.addVariable(u)}),{config:Fu(a)}})}}const Ou={displayName:"Cartesian Chart",migrator:new zu,name:"cartesian",viewRender:Zl,configRender:$u,createConfig:()=>ln,triggers:[ii]},un={x_axis:{name:"X Axis",data_key:""},data_key:"value",bar:{name:"Value",color:"#228be6"},line:{name:"Value",color:"red"}};function cn(e){return ge.default(e).format({output:"percent",mantissa:0})}function Pu(e){const t=e.value[1];try{return cn(t)}catch(n){return console.error(n),t}}function Nu(e){const t=Array.isArray(e)?e:[e];if(t.length===0)return"";const n=t.map((r,a)=>{const o=r.seriesName,[l,u]=r.value;return o?`${o}: <strong>${(a===0?g=>g:cn)(u)}</strong>`:u});return n.unshift(`<strong>${t[0].name}</strong>`),n.join("<br />")}te.use([xe.BarChart,xe.LineChart,H.DataZoomComponent,H.GridComponent,H.LegendComponent,H.TooltipComponent,Ve.CanvasRenderer]);function Gu({context:e}){const{value:t}=G(e.instanceData,"config"),n=e.data,{width:r,height:a}=e.viewport,{x_axis:o,data_key:l,bar:u,line:c}=w.defaults({},t,un),{barData:g,lineData:d}=x.useMemo(()=>{const h=n.map(b=>[b[o.data_key],Number(b[l])]).sort((b,S)=>S[1]-b[1]),v=h.reduce((b,S)=>b+S[1],0),C=h.reduce((b,S,T)=>{const A=T===0?0:b[T-1][1];return b.push([S[0],A+S[1]]),b},[]).map(b=>[b[0],b[1]/v]);return{barData:h,lineData:C}},[o.data_key,l,n]),f={dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}],tooltip:{trigger:"axis",formatter:Nu},xAxis:[{type:"category",name:o.name,nameLocation:"middle",nameGap:30,nameTextStyle:{fontWeight:"bold",align:"right"},splitLine:{show:!1},axisTick:{show:!0,alignWithLabel:!0}}],yAxis:[{name:u.name,nameGap:30,nameTextStyle:{fontWeight:"bold",align:"right"},axisLine:{show:!0},splitLine:{show:!1}},{name:c.name,nameGap:30,nameTextStyle:{fontWeight:"bold",align:"center"},axisLabel:{show:!0,formatter:cn},splitLine:{show:!1}}],series:[{name:u.name,type:"bar",itemStyle:{color:u.color},yAxisIndex:0,data:g},{name:c.name,type:"line",itemStyle:{color:c.color},symbolSize:2,lineStyle:{width:1},label:{show:!0,position:"top",formatter:Pu},yAxisIndex:1,data:d}]};return!t||!r||!a?null:i(ke.default,{echarts:te,option:f,style:{width:r,height:a}})}function Lu({context:e}){const{value:t,set:n}=G(e.instanceData,"config"),r=e.data,a=x.useMemo(()=>w.defaults({},t,un),[t]),{control:o,handleSubmit:l,watch:u,getValues:c,reset:g}=_.useForm({defaultValues:a});x.useEffect(()=>{g(a)},[a]),u(["x_axis","data_key","bar","line"]);const d=c(),f=x.useMemo(()=>!w.isEqual(d,t),[d,t]);return i(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:l(n),children:[p(s.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[i(s.Text,{children:"Chart Config"}),i(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!f,children:i(V.DeviceFloppy,{size:20})})]}),p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:"x_axis.name",control:o,render:({field:h})=>i(s.TextInput,{label:"X Axis Name",sx:{flex:1},...h})}),i(_.Controller,{name:"x_axis.data_key",control:o,render:({field:h})=>i(Q,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...h})})]}),i(_.Controller,{name:"data_key",control:o,render:({field:h})=>i(Q,{label:"Y Axis Data Field",required:!0,data:r,sx:{flex:1},...h})}),i(s.Divider,{my:"md",label:"Bar",labelPosition:"center"}),p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:"bar.name",control:o,render:({field:h})=>i(s.TextInput,{label:"Bar Name",sx:{flex:1},...h})}),p(s.Stack,{spacing:4,children:[i(s.Text,{size:"sm",children:"Bar's Color"}),i(_.Controller,{name:"bar.color",control:o,render:({field:h})=>i(Re,{...h})})]})]}),i(s.Divider,{my:"md",label:"Line",labelPosition:"center"}),p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:"line.name",control:o,render:({field:h})=>i(s.TextInput,{label:"Line Name",sx:{flex:1},...h})}),p(s.Stack,{spacing:4,children:[i(s.Text,{size:"sm",children:"Line's Color"}),i(_.Controller,{name:"line.color",control:o,render:({field:h})=>i(Re,{...h})})]})]})]})})}class qu extends le{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Bu={displayName:"Pareto Chart",migrator:new qu,name:"paretoChart",viewRender:Gu,configRender:Lu,createConfig:()=>un},dn={label_field:"",value_field:""};te.use([xe.PieChart,Ve.CanvasRenderer]);const ju={tooltip:{show:!0},series:{type:"pie",radius:["50%","80%"],label:{position:"outer",alignTo:"edge",formatter:`{name|{b}}
|
|
50
|
+
{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 Wu({context:e}){const{value:t}=G(e.instanceData,"config"),n=e.data,{width:r,height:a}=e.viewport,{label_field:o,value_field:l}=w.defaults({},t,dn),u=x.useMemo(()=>n.map(d=>({name:d[o],value:Number(d[l])})),[n,o,l]),c=x.useMemo(()=>({series:{labelLayout:function(d){const f=d.labelRect.x<r/2,h=d.labelLinePoints;return w.set(h,[2,0],f?d.labelRect.x:d.labelRect.x+d.labelRect.width),{labelLinePoints:h}}}}),[r]),g=w.merge({},ju,c,{series:{data:u}});return i(ke.default,{echarts:te,option:g,style:{width:r,height:a}})}function Uu({context:e}){const{value:t,set:n}=G(e.instanceData,"config"),{label_field:r,value_field:a}=w.defaults({},t,dn),o=e.data,l=$t.useForm({initialValues:{label_field:r,value_field:a}});return x.useEffect(()=>{l.setValues({label_field:r,value_field:a})},[r,a]),i(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:l.onSubmit(n),children:[p(s.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[i(s.Text,{children:"Pie Config"}),i(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:i(V.DeviceFloppy,{size:20})})]}),p(s.Stack,{mt:"md",spacing:"xs",p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[i(Q,{label:"Label Field",required:!0,data:o,...l.getInputProps("label_field")}),i(Q,{label:"Value Field",required:!0,data:o,...l.getInputProps("value_field")})]})]})})}class Yu extends le{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Hu={displayName:"Pie Chart",migrator:new Yu,name:"pie",viewRender:Wu,configRender:Uu,createConfig:()=>dn};function oi(e){return e?t=>{try{return ge.default(t).format(e)}catch(n){return console.error(n),t}}:t=>t}function Qu(e){return{show:!0,formatter:({dimensionIndex:t,value:n})=>oi(e.dimensions[t].formatter)(n)}}function Ju(e){return({name:t,marker:n,value:r})=>{if(r.length===0)return"";const a=r.map((o,l)=>{const u=e.dimensions[l],c=oi(u.formatter);return`
|
|
50
51
|
<tr>
|
|
51
52
|
<td style="padding-left: 18px;">${u.name}</td>
|
|
52
|
-
<td style="text-align: right; "><strong>${
|
|
53
|
+
<td style="text-align: right; "><strong>${c(o)}</strong></td>
|
|
53
54
|
</tr>
|
|
54
55
|
`});return`
|
|
55
56
|
<table>
|
|
@@ -71,10 +72,10 @@ WHERE
|
|
|
71
72
|
</tr>
|
|
72
73
|
</thead>
|
|
73
74
|
<tbody>
|
|
74
|
-
${
|
|
75
|
+
${a.join("")}
|
|
75
76
|
</tbody>
|
|
76
77
|
</table>
|
|
77
|
-
`}}const Nu={legend:{show:!0,bottom:0,left:0},tooltip:{trigger:"item"}};function Lu(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:l,max:u})=>({name:l,max:u})),i=t.map(l=>({value:e.dimensions.map(({data_key:u})=>l[u]),name:l[e.series_name_key]})),o={radar:{indicator:r,splitArea:{show:!1}},tooltip:{confine:!0,formatter:Gu(e)},legend:{show:!0,left:"center"},series:{type:"radar",data:i,symbolSize:4,lineStyle:{width:1},areaStyle:{opacity:.4},label:Pu(e)},color:n};return j.default.merge({},Nu,o)}const cn={series_name_key:"name",dimensions:[]};te.use([xe.RadarChart,H.GridComponent,H.LegendComponent,H.TooltipComponent,Ve.CanvasRenderer]);function qu({context:e}){const{value:t}=N(e.instanceData,"config"),{width:n,height:r}=e.viewport,i=e.data,o=x.useMemo(()=>Lu(w.defaultsDeep({},t,cn),i),[t,i]);return!n||!r||!t||w.isEmpty(t==null?void 0:t.dimensions)?null:a(s.Box,{children:a(ke.default,{echarts:te,option:o,style:{width:n,height:r}})})}function Bu({control:e,index:t,remove:n,data:r}){return p(s.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:`dimensions.${t}.name`,control:e,render:({field:i})=>a(s.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),a(M.Controller,{name:`dimensions.${t}.data_key`,control:e,render:({field:i})=>a(Q,{label:"Data Key",required:!0,data:r,sx:{flex:1},...i})}),a(M.Controller,{name:`dimensions.${t}.max`,control:e,render:({field:i})=>a(s.NumberInput,{label:"Max",hideControls:!0,required:!0,sx:{flex:1},...i})})]}),p(s.Stack,{children:[a(s.Divider,{mb:-15,variant:"dashed",label:"Value Formatter",labelPosition:"center"}),a(M.Controller,{name:`dimensions.${t}.formatter`,control:e,render:({field:i})=>a(ct,{...i})})]}),a(s.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},disabled:t===0,children:a(k.Trash,{size:16})})]},t)}function ju({control:e,watch:t,data:n}){const{fields:r,append:i,remove:o}=M.useFieldArray({control:e,name:"dimensions"}),l=t("dimensions"),u=r.map((g,c)=>({...g,...l[c]})),d=()=>i({name:ie.randomId(),data_key:"",max:100,formatter:dt});return p(s.Stack,{children:[u.map((g,c)=>a(Bu,{data:n,control:e,index:c,remove:o})),a(s.Group,{position:"center",mt:"xs",children:a(s.Button,{onClick:d,children:"Add a Dimension"})})]})}function Wu(e){function t({name:n="",data_key:r="",max:i=10,formatter:o=dt}){return{name:n,data_key:r,max:i,formatter:o}}return e.map(t)}function Uu({context:e}){const t=e.data,{value:n,set:r}=N(e.instanceData,"config"),i=x.useMemo(()=>w.defaultsDeep({},n,cn),[n]),{dimensions:o,series_name_key:l}=i,u=x.useMemo(()=>({dimensions:Wu(o!=null?o:[]),series_name_key:l}),[o,l]);x.useEffect(()=>{!w.isEqual(i,u)&&r(u)},[i,u]);const{control:d,handleSubmit:g,watch:c,getValues:f,reset:h}=M.useForm({defaultValues:u});x.useEffect(()=>{w.isEqual(f(),u)||h(u)},[i]),c(["series_name_key"]);const v=f(),C=x.useMemo(()=>!w.isEqual(v,i),[v,i]);return a(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:g(r),children:[p(s.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[a(s.Text,{children:"Chart Config"}),a(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!C,children:a(k.DeviceFloppy,{size:20})})]}),a(s.Box,{py:"sm",children:a(M.Controller,{name:"series_name_key",control:d,render:({field:b})=>a(Q,{label:"Series Name Field",required:!0,data:t,sx:{flex:1},...b})})}),a(ju,{control:d,watch:c,data:t})]})})}class Yu extends se{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Hu={displayName:"Radar Chart",migrator:new Yu,name:"radar",viewRender:qu,configRender:Uu,createConfig:()=>cn};function Qu(e,t){switch(e.config.method){case"linear":return[...Ae.regressionLinear()(t)];case"exponential":return[...Ae.regressionExp()(t)];case"logarithmic":return[...Ae.regressionLog()(t)];case"polynomial":return[...Ae.regressionPoly().order(e.config.order)(t)];default:return[]}}function Ju({regression:e},t){const n=[],r=[];if(t.length===0)return{regressionSeries:n,regressionXAxes:r};const{transform:i,plot:o,name:l}=e,u=Qu(i,t);return n.push({...o,name:l,data:u,showSymbol:!1,smooth:!0,tooltip:{show:!1}}),{regressionSeries:n,regressionXAxes:r}}const Xu={tooltip:{trigger:"axis"},grid:{top:10,left:30,right:15,bottom:30,containLabel:!0},dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}]};function Ku(e,t){var o,l;const n=j.default.uniqBy(t.map(u=>[u[e.x_axis.data_key],u[e.regression.y_axis_data_key]]),0),{regressionSeries:r}=Ju(e,n),i={xAxis:{type:"category",name:(o=e.x_axis.name)!=null?o:"",axisTick:{show:!0,alignWithLabel:!0}},yAxis:{name:(l=e.y_axis.name)!=null?l:"",axisLine:{show:!0}},series:[{data:n,name:e.y_axis.name,type:"scatter",symbolSize:4,color:"red"},...r]};return w.defaultsDeep({},i,Xu)}function mt(e,t,n){return 1-(1-e)*(t-1)/(t-n-1)}function Zu(e,t){if(!t)return{expression:"",rSquared:0,adjustedRSquared:0};const{regression:n,x_axis:r,y_axis:i}=t,o=e.map(l=>[l[r.data_key],l[n.y_axis_data_key]]);if(n.transform.config.method==="linear"){const l=Ae.regressionLinear()(o),{a:u,b:d,rSquared:g}=l;return{expression:p(s.Group,{position:"center",noWrap:!0,spacing:10,children:[a(s.Text,{children:i.name}),a(s.Text,{children:"="}),a(s.Text,{weight:"bold",color:"gray",children:d}),a(s.Text,{children:"+"}),a(s.Text,{weight:"bold",color:"gray",children:u}),a(s.Text,{children:"\xD7"}),a(s.Text,{children:r.name})]}),rSquared:g,adjustedRSquared:mt(g,e.length,1)}}if(n.transform.config.method==="exponential"){const{a:l,b:u,rSquared:d}=Ae.regressionExp()(o);return{expression:p(s.Group,{position:"center",noWrap:!0,spacing:10,children:[a(s.Text,{children:i.name}),a(s.Text,{children:"="}),a(s.Text,{weight:"bold",color:"gray",children:l}),a(s.Text,{children:"\xD7"}),p(s.Group,{position:"left",noWrap:!0,spacing:2,children:[a(s.Text,{children:"Math.exp("}),a(s.Text,{weight:"bold",color:"gray",children:u}),a(s.Text,{children:"\xD7"}),a(s.Text,{children:r.name}),a(s.Text,{children:")"})]})]}),rSquared:d,adjustedRSquared:mt(d,e.length,1)}}if(n.transform.config.method==="logarithmic"){const{a:l,b:u,rSquared:d}=Ae.regressionLog()(o);return{expression:p(s.Group,{position:"center",noWrap:!0,spacing:10,children:[a(s.Text,{children:i.name}),a(s.Text,{children:"="}),a(s.Text,{weight:"bold",color:"gray",children:l}),a(s.Text,{children:"\xD7"}),p(s.Group,{position:"left",noWrap:!0,spacing:2,children:[a(s.Text,{children:"Math.log("}),a(s.Text,{children:r.name}),a(s.Text,{children:")"}),a(s.Text,{children:"+"}),a(s.Text,{weight:"bold",color:"gray",children:u})]})]}),rSquared:d,adjustedRSquared:mt(d,e.length,1)}}if(n.transform.config.method==="polynomial"){const l=Ae.regressionPoly().order(n.transform.config.order)(o),{rSquared:u}=l;return console.log(l),{expression:"",rSquared:u,adjustedRSquared:mt(u,e.length,1)}}return{expression:"",rSquared:0}}const gn={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([H.DataZoomComponent,xe.ScatterChart,H.GridComponent,H.LegendComponent,H.TooltipComponent,Ve.CanvasRenderer]),te.registerTransform(Yn.transform.regression);function ed({context:e}){const{value:t}=N(e.instanceData,"config"),{width:n,height:r}=e.viewport,i=x.useMemo(()=>{var h;const c=e.data,f=(h=t==null?void 0:t.regression)==null?void 0:h.y_axis_data_key;return f?c.map(v=>typeof v[f]=="number"?v:{...v,[f]:Number(v[f])}):c},[e.data,t==null?void 0:t.regression.y_axis_data_key]),o=x.useMemo(()=>Ku(w.defaultsDeep({},t,gn),i),[t,i]),{expression:l,rSquared:u,adjustedRSquared:d}=x.useMemo(()=>Zu(i,t),[t,i]);if(!n||!r||!t)return null;let g=r;return l&&(g-=20),p(s.Box,{children:[l&&a(s.Text,{align:"center",size:12,children:l}),p(s.Group,{spacing:0,noWrap:!0,align:"start",sx:{"> *":{flexGrow:0,flexShrink:0}},children:[a(ke.default,{echarts:te,option:o,style:{width:n-190,height:g}}),u&&a(s.Table,{mt:20,fontSize:12,sx:{width:180,border:"1px solid #999",td:{padding:"3px 8px"}},children:p("tbody",{children:[p("tr",{children:[a("td",{children:"R-Sq"}),a("td",{style:{textAlign:"right"},children:ge.default(u).format({output:"percent",mantissa:1})})]}),p("tr",{children:[a("td",{children:"R-Sq(Adjusted)"}),a("td",{style:{textAlign:"right"},children:ge.default(d).format({output:"percent",mantissa:1})})]})]})})]})]})}const td=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}];function nd({control:e,watch:t,data:n}){const r=t("regression.transform.config.method");return p(s.Stack,{children:[p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:"regression.name",control:e,render:({field:i})=>a(s.TextInput,{label:"Name",required:!0,sx:{flex:1},...i})}),a(M.Controller,{name:"regression.y_axis_data_key",control:e,render:({field:i})=>a(Q,{label:"Value Field",required:!0,data:n,sx:{flex:1},...i})})]}),p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:"regression.transform.config.method",control:e,render:({field:i})=>a(s.Select,{label:"Method",data:td,sx:{flex:1},...i})}),r==="polynomial"&&a(M.Controller,{name:"regression.transform.config.order",control:e,render:({field:i})=>a(s.NumberInput,{label:"Order",sx:{flex:1},...i})})]}),p(s.Stack,{spacing:4,children:[a(s.Text,{size:"sm",children:"Color"}),a(M.Controller,{name:"regression.plot.color",control:e,render:({field:i})=>a(Re,{...i})})]})]})}function rd({context:e}){const{value:t,set:n}=N(e.instanceData,"config"),r=e.data,i=x.useMemo(()=>w.defaults({},t,gn),[t]),{control:o,handleSubmit:l,watch:u,getValues:d,reset:g}=M.useForm({defaultValues:i});x.useEffect(()=>{g(i)},[i]),u(["x_axis","y_axis","regression"]);const c=d(),f=x.useMemo(()=>!w.isEqual(c,t),[c,t]);return a(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:l(n),children:[p(s.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[a(s.Text,{children:"Chart Config"}),a(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!f,children:a(k.DeviceFloppy,{size:20})})]}),p(s.Accordion,{multiple:!0,defaultValue:["Axis","Regression"],children:[p(s.Accordion.Item,{value:"Axis",children:[a(s.Accordion.Control,{children:"Axis"}),p(s.Accordion.Panel,{children:[p(s.Group,{grow:!0,noWrap:!0,children:[a(M.Controller,{name:"x_axis.name",control:o,render:({field:h})=>a(s.TextInput,{label:"X Axis Name",sx:{flex:1},...h})}),a(M.Controller,{name:"x_axis.data_key",control:o,render:({field:h})=>a(Q,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...h})})]}),a(s.Group,{grow:!0,noWrap:!0,children:a(M.Controller,{name:"y_axis.name",control:o,render:({field:h})=>a(s.TextInput,{label:"Y Axis Name",sx:{flex:1},...h})})})]})]}),p(s.Accordion.Item,{value:"Regression",children:[a(s.Accordion.Control,{children:"Regression Line"}),a(s.Accordion.Panel,{children:a(nd,{control:o,watch:u,data:r})})]})]})]})})}class id extends se{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const ad={displayName:"Regression Chart",migrator:new id,name:"regressionChart",viewRender:ed,configRender:rd,createConfig:()=>gn},pn={content:""};function ii(e){const t=x.useRef(null);return x.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 od({context:e}){const{panel:t}=ee(),{value:n}=N(e.instanceData,"config"),r=n==null?void 0:n.content,i=ii(r);return n!=null&&n.content?a(Tt.RichTextEditor,{id:t.id,ref:i,readOnly:!0,value:n.content,onChange:w.noop,sx:{border:"none",".ql-editor":{padding:0,"h1, h2, h3, h4, h5, p, ul, ol":{"&:last-child":{marginBottom:0}}}}}):null}function sd({context:e}){const{value:t,set:n}=N(e.instanceData,"config"),r=x.useMemo(()=>w.defaults({},t,pn),[t]),{control:i,handleSubmit:o,watch:l,getValues:u}=M.useForm({defaultValues:r});l("content");const d=u(),g=x.useMemo(()=>!w.isEqual(d,t),[d,t]),c=ii(t==null?void 0:t.content);return a(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:o(n),children:[p(s.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[a(s.Text,{children:"Content"}),a(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!g,children:a(k.DeviceFloppy,{size:20})})]}),a(M.Controller,{name:"content",control:i,render:({field:f})=>a(Jn.default,{ref:c,sx:{flex:1},...w.omit(f,"ref")})})]})})}class ld extends se{constructor(){super(...arguments);R(this,"VERSION",1)}fixMalformedConfig(n){return w.defaults({},n,pn)}configVersions(){this.version(1,n=>({version:1,config:this.fixMalformedConfig(n)}))}}const ud={displayName:"RichText",migrator:new ld,name:"richText",viewRender:od,configRender:sd,createConfig:()=>pn},fn={align:"center",template:"The variable ${value} is defined in Variables section"};function dd(e){if("variables"in e)return e;const{align:t,size:n,weight:r,color:i,content:{prefix:o="",data_field:l="value",formatter:u={output:"number",mantissa:0},postfix:d=""}={}}=e;return{align:t,template:`${o} \${value} ${d}`,variables:[{name:"value",data_field:l,aggregation:{type:"none",config:{}},formatter:u,color:i,weight:r,size:n}]}}function cd(e){return w.omit(e,["variables"])}function gd(e){const t=w.cloneDeep(e),n=w.get(t,"color.valueRange");return n!==void 0&&w.set(t,"color.valueRange",n.map(r=>Number(r))),t}class pd extends se{constructor(){super(...arguments);R(this,"VERSION",2)}configVersions(){this.version(1,n=>({config:dd(n)})),this.version(2,(n,{panelModel:r})=>{const{config:i}=n;return(i.variables||[]).forEach(l=>{r.variables.find(u=>u.name===l.name)||r.addVariable(gd(l))}),{config:cd(i)}})}}function fd({context:e}){const{value:t=fn}=N(e.instanceData,"config"),{variables:n}=e,{template:r,align:i}=t,o=x.useMemo(()=>tn(r,n,e.data),[r,n,e.data]);return a(s.Text,{align:i,children:Object.values(o).map((l,u)=>a(S.default.Fragment,{children:l},u))})}function hd({context:e}){const{value:t,set:n}=N(e.instanceData,"config"),r=S.default.useMemo(()=>{const{align:f,template:h=""}=w.defaultsDeep({},t,fn);return{template:h,align:f}},[t]),{control:i,handleSubmit:o,watch:l,getValues:u,reset:d}=M.useForm({defaultValues:r});S.default.useEffect(()=>{d(r)},[r]),l(["template"]);const g=u(),c=S.default.useMemo(()=>!j.default.isEqual(g,t),[g,t]);return a(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:o(n),children:[p(s.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[a(s.Text,{weight:500,children:"Stats Configurations"}),a(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!c,children:a(k.DeviceFloppy,{size:20})})]}),a(M.Controller,{name:"template",control:i,render:({field:f})=>a(Wt,{label:"Template",py:"md",sx:{flexGrow:1},...f})})]})})}const md={createConfig(){return{version:1,config:fn}},displayName:"Stats",migrator:new pd,name:"stats",viewRender:fd,configRender:hd},hn={label_field:"",value_field:""};te.use([xe.SunburstChart,Ve.CanvasRenderer]);const vd={tooltip:{show:!0},series:{type:"sunburst",radius:[0,"90%"],emphasis:{focus:"ancestor"}}};function yd({context:e}){const{value:t}=N(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{label_field:o,value_field:l}=w.defaults({},t,hn),u=x.useMemo(()=>n.map(f=>({name:f[o],value:Number(f[l])})),[n,o,l]),d=x.useMemo(()=>{var f,h;return(h=(f=w.maxBy(u,v=>v.value))==null?void 0:f.value)!=null?h:1},[u]),g=x.useMemo(()=>({series:{label:{formatter:({name:f,value:h})=>h/d<.2?" ":f}}}),[d]),c=w.merge({},vd,g,{series:{data:u}});return a(ke.default,{echarts:te,option:c,style:{width:r,height:i}})}function bd({context:e}){const{value:t,set:n}=N(e.instanceData,"config"),{label_field:r,value_field:i}=w.defaults({},t,hn),o=e.data,l=Rt.useForm({initialValues:{label_field:r,value_field:i}});return x.useEffect(()=>{l.setValues({label_field:r,value_field:i})},[r,i]),a(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:l.onSubmit(n),children:[p(s.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[a(s.Text,{children:"Sunburst Config"}),a(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:a(k.DeviceFloppy,{size:20})})]}),p(s.Stack,{mt:"md",spacing:"xs",p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[a(Q,{label:"Label Field",required:!0,data:o,...l.getInputProps("label_field")}),a(Q,{label:"Value Field",required:!0,data:o,...l.getInputProps("value_field")})]})]})})}class Cd extends se{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const wd={displayName:"Sunburst",migrator:new Cd,name:"sunburst",viewRender:yd,configRender:bd,createConfig:()=>hn};var Fe=(e=>(e.string="string",e.number="number",e.eloc="eloc",e.percentage="percentage",e))(Fe||{});const vt={columns:[],fontSize:"1rem",highlightOnHover:!1,horizontalSpacing:"1em",id_field:"",striped:!1,use_raw_columns:!1,verticalSpacing:"1em"};/**
|
|
78
|
+
`}}const Xu={legend:{show:!0,bottom:0,left:0},tooltip:{trigger:"item"}};function Ku(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:l,max:u})=>({name:l,max:u})),a=t.map(l=>({value:e.dimensions.map(({data_key:u})=>l[u]),name:l[e.series_name_key]})),o={radar:{indicator:r,splitArea:{show:!1}},tooltip:{confine:!0,formatter:Ju(e)},legend:{show:!0,left:"center"},series:{type:"radar",data:a,symbolSize:4,lineStyle:{width:1},areaStyle:{opacity:.4},label:Qu(e)},color:n};return U.default.merge({},Xu,o)}const gn={series_name_key:"name",dimensions:[]};te.use([xe.RadarChart,H.GridComponent,H.LegendComponent,H.TooltipComponent,Ve.CanvasRenderer]);function Zu({context:e}){const{value:t}=G(e.instanceData,"config"),{width:n,height:r}=e.viewport,a=e.data,o=x.useMemo(()=>Ku(w.defaultsDeep({},t,gn),a),[t,a]);return!n||!r||!t||w.isEmpty(t==null?void 0:t.dimensions)?null:i(s.Box,{children:i(ke.default,{echarts:te,option:o,style:{width:n,height:r}})})}function ec({control:e,index:t,remove:n,data:r}){return p(s.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:`dimensions.${t}.name`,control:e,render:({field:a})=>i(s.TextInput,{label:"Name",required:!0,sx:{flex:1},...a})}),i(_.Controller,{name:`dimensions.${t}.data_key`,control:e,render:({field:a})=>i(Q,{label:"Data Key",required:!0,data:r,sx:{flex:1},...a})}),i(_.Controller,{name:`dimensions.${t}.max`,control:e,render:({field:a})=>i(s.NumberInput,{label:"Max",hideControls:!0,required:!0,sx:{flex:1},...a})})]}),p(s.Stack,{children:[i(s.Divider,{mb:-15,variant:"dashed",label:"Value Formatter",labelPosition:"center"}),i(_.Controller,{name:`dimensions.${t}.formatter`,control:e,render:({field:a})=>i(gt,{...a})})]}),i(s.ActionIcon,{color:"red",variant:"subtle",onClick:()=>n(t),sx:{position:"absolute",top:15,right:5},disabled:t===0,children:i(V.Trash,{size:16})})]},t)}function tc({control:e,watch:t,data:n}){const{fields:r,append:a,remove:o}=_.useFieldArray({control:e,name:"dimensions"}),l=t("dimensions"),u=r.map((g,d)=>({...g,...l[d]})),c=()=>a({name:ie.randomId(),data_key:"",max:100,formatter:dt});return p(s.Stack,{children:[u.map((g,d)=>i(ec,{data:n,control:e,index:d,remove:o})),i(s.Group,{position:"center",mt:"xs",children:i(s.Button,{onClick:c,children:"Add a Dimension"})})]})}function nc(e){function t({name:n="",data_key:r="",max:a=10,formatter:o=dt}){return{name:n,data_key:r,max:a,formatter:o}}return e.map(t)}function rc({context:e}){const t=e.data,{value:n,set:r}=G(e.instanceData,"config"),a=x.useMemo(()=>w.defaultsDeep({},n,gn),[n]),{dimensions:o,series_name_key:l}=a,u=x.useMemo(()=>({dimensions:nc(o!=null?o:[]),series_name_key:l}),[o,l]);x.useEffect(()=>{!w.isEqual(a,u)&&r(u)},[a,u]);const{control:c,handleSubmit:g,watch:d,getValues:f,reset:h}=_.useForm({defaultValues:u});x.useEffect(()=>{w.isEqual(f(),u)||h(u)},[a]),d(["series_name_key"]);const v=f(),C=x.useMemo(()=>!w.isEqual(v,a),[v,a]);return i(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:g(r),children:[p(s.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[i(s.Text,{children:"Chart Config"}),i(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!C,children:i(V.DeviceFloppy,{size:20})})]}),i(s.Box,{py:"sm",children:i(_.Controller,{name:"series_name_key",control:c,render:({field:b})=>i(Q,{label:"Series Name Field",required:!0,data:t,sx:{flex:1},...b})})}),i(tc,{control:c,watch:d,data:t})]})})}class ic extends le{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const ac={displayName:"Radar Chart",migrator:new ic,name:"radar",viewRender:Zu,configRender:rc,createConfig:()=>gn};function oc(e,t){switch(e.config.method){case"linear":return[...Te.regressionLinear()(t)];case"exponential":return[...Te.regressionExp()(t)];case"logarithmic":return[...Te.regressionLog()(t)];case"polynomial":return[...Te.regressionPoly().order(e.config.order)(t)];default:return[]}}function sc({regression:e},t){const n=[],r=[];if(t.length===0)return{regressionSeries:n,regressionXAxes:r};const{transform:a,plot:o,name:l}=e,u=oc(a,t);return n.push({...o,name:l,data:u,showSymbol:!1,smooth:!0,tooltip:{show:!1}}),{regressionSeries:n,regressionXAxes:r}}const lc={tooltip:{trigger:"axis"},grid:{top:10,left:30,right:15,bottom:30,containLabel:!0},dataZoom:[{type:"inside",xAxisIndex:[0]},{type:"inside",yAxisIndex:[0]}]};function uc(e,t){var o,l;const n=U.default.uniqBy(t.map(u=>[u[e.x_axis.data_key],u[e.regression.y_axis_data_key]]),0),{regressionSeries:r}=sc(e,n),a={xAxis:{type:"category",name:(o=e.x_axis.name)!=null?o:"",axisTick:{show:!0,alignWithLabel:!0}},yAxis:{name:(l=e.y_axis.name)!=null?l:"",axisLine:{show:!0}},series:[{data:n,name:e.y_axis.name,type:"scatter",symbolSize:4,color:"red"},...r]};return w.defaultsDeep({},a,lc)}function vt(e,t,n){return 1-(1-e)*(t-1)/(t-n-1)}function cc(e,t){if(!t)return{expression:"",rSquared:0,adjustedRSquared:0};const{regression:n,x_axis:r,y_axis:a}=t,o=e.map(l=>[l[r.data_key],l[n.y_axis_data_key]]);if(n.transform.config.method==="linear"){const l=Te.regressionLinear()(o),{a:u,b:c,rSquared:g}=l;return{expression:p(s.Group,{position:"center",noWrap:!0,spacing:10,children:[i(s.Text,{children:a.name}),i(s.Text,{children:"="}),i(s.Text,{weight:"bold",color:"gray",children:c}),i(s.Text,{children:"+"}),i(s.Text,{weight:"bold",color:"gray",children:u}),i(s.Text,{children:"\xD7"}),i(s.Text,{children:r.name})]}),rSquared:g,adjustedRSquared:vt(g,e.length,1)}}if(n.transform.config.method==="exponential"){const{a:l,b:u,rSquared:c}=Te.regressionExp()(o);return{expression:p(s.Group,{position:"center",noWrap:!0,spacing:10,children:[i(s.Text,{children:a.name}),i(s.Text,{children:"="}),i(s.Text,{weight:"bold",color:"gray",children:l}),i(s.Text,{children:"\xD7"}),p(s.Group,{position:"left",noWrap:!0,spacing:2,children:[i(s.Text,{children:"Math.exp("}),i(s.Text,{weight:"bold",color:"gray",children:u}),i(s.Text,{children:"\xD7"}),i(s.Text,{children:r.name}),i(s.Text,{children:")"})]})]}),rSquared:c,adjustedRSquared:vt(c,e.length,1)}}if(n.transform.config.method==="logarithmic"){const{a:l,b:u,rSquared:c}=Te.regressionLog()(o);return{expression:p(s.Group,{position:"center",noWrap:!0,spacing:10,children:[i(s.Text,{children:a.name}),i(s.Text,{children:"="}),i(s.Text,{weight:"bold",color:"gray",children:l}),i(s.Text,{children:"\xD7"}),p(s.Group,{position:"left",noWrap:!0,spacing:2,children:[i(s.Text,{children:"Math.log("}),i(s.Text,{children:r.name}),i(s.Text,{children:")"}),i(s.Text,{children:"+"}),i(s.Text,{weight:"bold",color:"gray",children:u})]})]}),rSquared:c,adjustedRSquared:vt(c,e.length,1)}}if(n.transform.config.method==="polynomial"){const l=Te.regressionPoly().order(n.transform.config.order)(o),{rSquared:u}=l;return console.log(l),{expression:"",rSquared:u,adjustedRSquared:vt(u,e.length,1)}}return{expression:"",rSquared:0}}const pn={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([H.DataZoomComponent,xe.ScatterChart,H.GridComponent,H.LegendComponent,H.TooltipComponent,Ve.CanvasRenderer]),te.registerTransform(Hn.transform.regression);function dc({context:e}){const{value:t}=G(e.instanceData,"config"),{width:n,height:r}=e.viewport,a=x.useMemo(()=>{var h;const d=e.data,f=(h=t==null?void 0:t.regression)==null?void 0:h.y_axis_data_key;return f?d.map(v=>typeof v[f]=="number"?v:{...v,[f]:Number(v[f])}):d},[e.data,t==null?void 0:t.regression.y_axis_data_key]),o=x.useMemo(()=>uc(w.defaultsDeep({},t,pn),a),[t,a]),{expression:l,rSquared:u,adjustedRSquared:c}=x.useMemo(()=>cc(a,t),[t,a]);if(!n||!r||!t)return null;let g=r;return l&&(g-=20),p(s.Box,{children:[l&&i(s.Text,{align:"center",size:12,children:l}),p(s.Group,{spacing:0,noWrap:!0,align:"start",sx:{"> *":{flexGrow:0,flexShrink:0}},children:[i(ke.default,{echarts:te,option:o,style:{width:n-190,height:g}}),u&&i(s.Table,{mt:20,fontSize:12,sx:{width:180,border:"1px solid #999",td:{padding:"3px 8px"}},children:p("tbody",{children:[p("tr",{children:[i("td",{children:"R-Sq"}),i("td",{style:{textAlign:"right"},children:ge.default(u).format({output:"percent",mantissa:1})})]}),p("tr",{children:[i("td",{children:"R-Sq(Adjusted)"}),i("td",{style:{textAlign:"right"},children:ge.default(c).format({output:"percent",mantissa:1})})]})]})})]})]})}const gc=[{label:"Linear",value:"linear"},{label:"Exponential",value:"exponential"},{label:"Logarithmic",value:"logarithmic"},{label:"Polynomial",value:"polynomial"}];function pc({control:e,watch:t,data:n}){const r=t("regression.transform.config.method");return p(s.Stack,{children:[p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:"regression.name",control:e,render:({field:a})=>i(s.TextInput,{label:"Name",required:!0,sx:{flex:1},...a})}),i(_.Controller,{name:"regression.y_axis_data_key",control:e,render:({field:a})=>i(Q,{label:"Value Field",required:!0,data:n,sx:{flex:1},...a})})]}),p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:"regression.transform.config.method",control:e,render:({field:a})=>i(s.Select,{label:"Method",data:gc,sx:{flex:1},...a})}),r==="polynomial"&&i(_.Controller,{name:"regression.transform.config.order",control:e,render:({field:a})=>i(s.NumberInput,{label:"Order",sx:{flex:1},...a})})]}),p(s.Stack,{spacing:4,children:[i(s.Text,{size:"sm",children:"Color"}),i(_.Controller,{name:"regression.plot.color",control:e,render:({field:a})=>i(Re,{...a})})]})]})}function fc({context:e}){const{value:t,set:n}=G(e.instanceData,"config"),r=e.data,a=x.useMemo(()=>w.defaults({},t,pn),[t]),{control:o,handleSubmit:l,watch:u,getValues:c,reset:g}=_.useForm({defaultValues:a});x.useEffect(()=>{g(a)},[a]),u(["x_axis","y_axis","regression"]);const d=c(),f=x.useMemo(()=>!w.isEqual(d,t),[d,t]);return i(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:l(n),children:[p(s.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[i(s.Text,{children:"Chart Config"}),i(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!f,children:i(V.DeviceFloppy,{size:20})})]}),p(s.Accordion,{multiple:!0,defaultValue:["Axis","Regression"],children:[p(s.Accordion.Item,{value:"Axis",children:[i(s.Accordion.Control,{children:"Axis"}),p(s.Accordion.Panel,{children:[p(s.Group,{grow:!0,noWrap:!0,children:[i(_.Controller,{name:"x_axis.name",control:o,render:({field:h})=>i(s.TextInput,{label:"X Axis Name",sx:{flex:1},...h})}),i(_.Controller,{name:"x_axis.data_key",control:o,render:({field:h})=>i(Q,{label:"X Axis Data Field",required:!0,data:r,sx:{flex:1},...h})})]}),i(s.Group,{grow:!0,noWrap:!0,children:i(_.Controller,{name:"y_axis.name",control:o,render:({field:h})=>i(s.TextInput,{label:"Y Axis Name",sx:{flex:1},...h})})})]})]}),p(s.Accordion.Item,{value:"Regression",children:[i(s.Accordion.Control,{children:"Regression Line"}),i(s.Accordion.Panel,{children:i(pc,{control:o,watch:u,data:r})})]})]})]})})}class hc extends le{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const mc={displayName:"Regression Chart",migrator:new hc,name:"regressionChart",viewRender:dc,configRender:fc,createConfig:()=>pn},fn={content:""};function si(e){const t=x.useRef(null);return x.useEffect(()=>{var n,r,a;e&&((a=(r=(n=t.current)==null?void 0:n.editor)==null?void 0:r.clipboard)==null||a.dangerouslyPasteHTML(e))},[e]),t}function vc({context:e}){const{panel:t}=ee(),{value:n}=G(e.instanceData,"config"),r=n==null?void 0:n.content,a=si(r);return n!=null&&n.content?i(Rt.RichTextEditor,{id:t.id,ref:a,readOnly:!0,value:n.content,onChange:w.noop,sx:{border:"none",".ql-editor":{padding:0,"h1, h2, h3, h4, h5, p, ul, ol":{"&:last-child":{marginBottom:0}}}}}):null}function yc({context:e}){const{value:t,set:n}=G(e.instanceData,"config"),r=x.useMemo(()=>w.defaults({},t,fn),[t]),{control:a,handleSubmit:o,watch:l,getValues:u}=_.useForm({defaultValues:r});l("content");const c=u(),g=x.useMemo(()=>!w.isEqual(c,t),[c,t]),d=si(t==null?void 0:t.content);return i(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:o(n),children:[p(s.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[i(s.Text,{children:"Content"}),i(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!g,children:i(V.DeviceFloppy,{size:20})})]}),i(_.Controller,{name:"content",control:a,render:({field:f})=>i(Kn.default,{ref:d,sx:{flex:1},...w.omit(f,"ref")})})]})})}class bc extends le{constructor(){super(...arguments);R(this,"VERSION",1)}fixMalformedConfig(n){return w.defaults({},n,fn)}configVersions(){this.version(1,n=>({version:1,config:this.fixMalformedConfig(n)}))}}const Cc={displayName:"RichText",migrator:new bc,name:"richText",viewRender:vc,configRender:yc,createConfig:()=>fn},hn={align:"center",template:"The variable ${value} is defined in Variables section"};function wc(e){if("variables"in e)return e;const{align:t,size:n,weight:r,color:a,content:{prefix:o="",data_field:l="value",formatter:u={output:"number",mantissa:0},postfix:c=""}={}}=e;return{align:t,template:`${o} \${value} ${c}`,variables:[{name:"value",data_field:l,aggregation:{type:"none",config:{}},formatter:u,color:a,weight:r,size:n}]}}function xc(e){return w.omit(e,["variables"])}function Sc(e){const t=w.cloneDeep(e),n=w.get(t,"color.valueRange");return n!==void 0&&w.set(t,"color.valueRange",n.map(r=>Number(r))),t}class _c extends le{constructor(){super(...arguments);R(this,"VERSION",2)}configVersions(){this.version(1,n=>({config:wc(n)})),this.version(2,(n,{panelModel:r})=>{const{config:a}=n;return(a.variables||[]).forEach(l=>{r.variables.find(u=>u.name===l.name)||r.addVariable(Sc(l))}),{config:xc(a)}})}}function Mc({context:e}){const{value:t=hn}=G(e.instanceData,"config"),{variables:n}=e,{template:r,align:a}=t,o=x.useMemo(()=>nn(r,n,e.data),[r,n,e.data]);return i(s.Text,{align:a,children:Object.values(o).map((l,u)=>i(M.default.Fragment,{children:l},u))})}function Dc({context:e}){const{value:t,set:n}=G(e.instanceData,"config"),r=M.default.useMemo(()=>{const{align:f,template:h=""}=w.defaultsDeep({},t,hn);return{template:h,align:f}},[t]),{control:a,handleSubmit:o,watch:l,getValues:u,reset:c}=_.useForm({defaultValues:r});M.default.useEffect(()=>{c(r)},[r]),l(["template"]);const g=u(),d=M.default.useMemo(()=>!U.default.isEqual(g,t),[g,t]);return i(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:o(n),children:[p(s.Group,{position:"left",py:"md",pl:"md",sx:{borderBottom:"1px solid #eee",background:"#efefef"},children:[i(s.Text,{weight:500,children:"Stats Configurations"}),i(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",disabled:!d,children:i(V.DeviceFloppy,{size:20})})]}),i(_.Controller,{name:"template",control:a,render:({field:f})=>i(Ut,{label:"Template",py:"md",sx:{flexGrow:1},...f})})]})})}const Ic={createConfig(){return{version:1,config:hn}},displayName:"Stats",migrator:new _c,name:"stats",viewRender:Mc,configRender:Dc},mn={label_field:"",value_field:""};te.use([xe.SunburstChart,Ve.CanvasRenderer]);const Vc={tooltip:{show:!0},series:{type:"sunburst",radius:[0,"90%"],emphasis:{focus:"ancestor"}}};function Ec({context:e}){const{value:t}=G(e.instanceData,"config"),n=e.data,{width:r,height:a}=e.viewport,{label_field:o,value_field:l}=w.defaults({},t,mn),u=x.useMemo(()=>n.map(f=>({name:f[o],value:Number(f[l])})),[n,o,l]),c=x.useMemo(()=>{var f,h;return(h=(f=w.maxBy(u,v=>v.value))==null?void 0:f.value)!=null?h:1},[u]),g=x.useMemo(()=>({series:{label:{formatter:({name:f,value:h})=>h/c<.2?" ":f}}}),[c]),d=w.merge({},Vc,g,{series:{data:u}});return i(ke.default,{echarts:te,option:d,style:{width:r,height:a}})}function kc({context:e}){const{value:t,set:n}=G(e.instanceData,"config"),{label_field:r,value_field:a}=w.defaults({},t,mn),o=e.data,l=$t.useForm({initialValues:{label_field:r,value_field:a}});return x.useEffect(()=>{l.setValues({label_field:r,value_field:a})},[r,a]),i(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:l.onSubmit(n),children:[p(s.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[i(s.Text,{children:"Sunburst Config"}),i(s.ActionIcon,{type:"submit",mr:5,variant:"filled",color:"blue",children:i(V.DeviceFloppy,{size:20})})]}),p(s.Stack,{mt:"md",spacing:"xs",p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[i(Q,{label:"Label Field",required:!0,data:o,...l.getInputProps("label_field")}),i(Q,{label:"Value Field",required:!0,data:o,...l.getInputProps("value_field")})]})]})})}class Tc extends le{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Ac={displayName:"Sunburst",migrator:new Tc,name:"sunburst",viewRender:Ec,configRender:kc,createConfig:()=>mn};var Fe=(e=>(e.string="string",e.number="number",e.eloc="eloc",e.percentage="percentage",e))(Fe||{});const yt={columns:[],fontSize:"1rem",highlightOnHover:!1,horizontalSpacing:"1em",id_field:"",striped:!1,use_raw_columns:!1,verticalSpacing:"1em"};/**
|
|
78
79
|
* react-table
|
|
79
80
|
*
|
|
80
81
|
* Copyright (c) TanStack
|
|
@@ -83,7 +84,7 @@ WHERE
|
|
|
83
84
|
* LICENSE.md file in the root directory of this source tree.
|
|
84
85
|
*
|
|
85
86
|
* @license MIT
|
|
86
|
-
*/function ze(e,t){return typeof e=="function"?e(t):e}function he(e,t){return n=>{t.setState(r=>({...r,[e]:ze(n,r[e])}))}}function
|
|
87
|
+
*/function ze(e,t){return typeof e=="function"?e(t):e}function he(e,t){return n=>{t.setState(r=>({...r,[e]:ze(n,r[e])}))}}function bt(e){return e instanceof Function}function Rc(e,t){const n=[],r=a=>{a.forEach(o=>{n.push(o);const l=t(o);l!=null&&l.length&&r(l)})};return r(e),n}function z(e,t,n){let r=[],a;return()=>{let o;n.key&&n.debug&&(o=Date.now());const l=e();if(!(l.length!==r.length||l.some((g,d)=>r[d]!==g)))return a;r=l;let c;if(n.key&&n.debug&&(c=Date.now()),a=t(...l),n==null||n.onChange==null||n.onChange(a),n.key&&n.debug&&n!=null&&n.debug()){const g=Math.round((Date.now()-o)*100)/100,d=Math.round((Date.now()-c)*100)/100,f=d/16,h=(v,C)=>{for(v=String(v);v.length<C;)v=" "+v;return v};console.info("%c\u23F1 "+h(d,5)+" /"+h(g,5)+" ms",`
|
|
87
88
|
font-size: .6rem;
|
|
88
89
|
font-weight: bold;
|
|
89
|
-
color: hsl(`+Math.max(0,Math.min(120-120*f,120))+"deg 100% 31%);",n==null?void 0:n.key)}return i}}function Sd(e,t,n,r){var i,o;const u={...e._getDefaultColumnDef(),...t},d=u.accessorKey;let g=(i=(o=u.id)!=null?o: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=h=>{let v=h;for(const C of d.split("."))v=v[C];return v}:c=h=>h[u.accessorKey]),!g)throw process.env.NODE_ENV!=="production"?new Error(u.accessorFn?"Columns require an id when using an accessorFn":"Columns require an id when using a non-string header"):new Error;let f={id:""+String(g),accessorFn:c,parent:r,depth:n,columnDef:u,columns:[],getFlatColumns:z(()=>[!0],()=>{var h;return[f,...(h=f.columns)==null?void 0:h.flatMap(v=>v.getFlatColumns())]},{key:process.env.NODE_ENV==="production"&&"column.getFlatColumns",debug:()=>{var h;return(h=e.options.debugAll)!=null?h:e.options.debugColumns}}),getLeafColumns:z(()=>[e._getOrderColumnsFn()],h=>{var v;if((v=f.columns)!=null&&v.length){let C=f.columns.flatMap(b=>b.getLeafColumns());return h(C)}return[f]},{key:process.env.NODE_ENV==="production"&&"column.getLeafColumns",debug:()=>{var h;return(h=e.options.debugAll)!=null?h:e.options.debugColumns}})};return f=e._features.reduce((h,v)=>Object.assign(h,v.createColumn==null?void 0:v.createColumn(f,e)),f),f}function ai(e,t,n){var r;let o={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 l=[],u=d=>{d.subHeaders&&d.subHeaders.length&&d.subHeaders.map(u),l.push(d)};return u(o),l},getContext:()=>({table:e,header:o,column:t})};return e._features.forEach(l=>{Object.assign(o,l.createHeader==null?void 0:l.createHeader(o,e))}),o}const _d={createTable:e=>({getHeaderGroups:z(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>{var o,l;const u=(o=r==null?void 0:r.map(f=>n.find(h=>h.id===f)).filter(Boolean))!=null?o:[],d=(l=i==null?void 0:i.map(f=>n.find(h=>h.id===f)).filter(Boolean))!=null?l:[],g=n.filter(f=>!(r!=null&&r.includes(f.id))&&!(i!=null&&i.includes(f.id)));return bt(t,[...u,...g,...d],e)},{key:process.env.NODE_ENV==="development"&&"getHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getCenterHeaderGroups:z(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,i)=>(n=n.filter(o=>!(r!=null&&r.includes(o.id))&&!(i!=null&&i.includes(o.id))),bt(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:z(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>{var i;const o=(i=r==null?void 0:r.map(l=>n.find(u=>u.id===l)).filter(Boolean))!=null?i:[];return bt(t,o,e,"left")},{key:process.env.NODE_ENV==="development"&&"getLeftHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getRightHeaderGroups:z(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>{var i;const o=(i=r==null?void 0:r.map(l=>n.find(u=>u.id===l)).filter(Boolean))!=null?i:[];return bt(t,o,e,"right")},{key:process.env.NODE_ENV==="development"&&"getRightHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getFooterGroups:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,r)=>{var i,o,l,u,d,g;return[...(i=(o=t[0])==null?void 0:o.headers)!=null?i:[],...(l=(u=n[0])==null?void 0:u.headers)!=null?l:[],...(d=(g=r[0])==null?void 0:g.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 bt(e,t,n,r){var i,o;let l=0;const u=function(h,v){v===void 0&&(v=1),l=Math.max(l,v),h.filter(C=>C.getIsVisible()).forEach(C=>{var b;(b=C.columns)!=null&&b.length&&u(C.columns,v+1)},0)};u(e);let d=[];const g=(h,v)=>{const C={depth:v,id:[r,""+v].filter(Boolean).join("_"),headers:[]},b=[];h.forEach(_=>{const A=[...b].reverse()[0],T=_.column.depth===C.depth;let F,O=!1;if(T&&_.column.parent?F=_.column.parent:(F=_.column,O=!0),A&&(A==null?void 0:A.column)===F)A.subHeaders.push(_);else{const q=ai(n,F,{id:[r,v,F.id,_==null?void 0:_.id].filter(Boolean).join("_"),isPlaceholder:O,placeholderId:O?""+b.filter(ae=>ae.column===F).length:void 0,depth:v,index:b.length});q.subHeaders.push(_),b.push(q)}C.headers.push(_),_.headerGroup=C}),d.push(C),v>0&&g(b,v-1)},c=t.map((h,v)=>ai(n,h,{depth:l,index:v}));g(c,l-1),d.reverse();const f=h=>h.filter(C=>C.column.getIsVisible()).map(C=>{let b=0,_=0,A=[0];C.subHeaders&&C.subHeaders.length?(A=[],f(C.subHeaders).forEach(F=>{let{colSpan:O,rowSpan:q}=F;b+=O,A.push(q)})):b=1;const T=Math.min(...A);return _=_+T,C.colSpan=b,C.rowSpan=_,{colSpan:b,rowSpan:_}});return f((i=(o=d[0])==null?void 0:o.headers)!=null?i:[]),d}const Ct={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},mn=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),Md={getDefaultColumnDef:()=>Ct,getInitialState:e=>({columnSizing:{},columnSizingInfo:mn(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",onColumnSizingChange:he("columnSizing",e),onColumnSizingInfoChange:he("columnSizingInfo",e)}),createColumn:(e,t)=>({getSize:()=>{var n,r,i;const o=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:Ct.minSize,(r=o!=null?o:e.columnDef.size)!=null?r:Ct.size),(i=e.columnDef.maxSize)!=null?i:Ct.maxSize)},getStart:n=>{const r=n?n==="left"?t.getLeftVisibleLeafColumns():t.getRightVisibleLeafColumns():t.getVisibleLeafColumns(),i=r.findIndex(o=>o.id===e.id);if(i>0){const o=r[i-1];return o.getStart(n)+o.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 o;n+=(o=i.column.getSize())!=null?o: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(),vn(i)&&i.touches&&i.touches.length>1))return;const o=e.getSize(),l=e?e.getLeafHeaders().map(v=>[v.column.id,v.column.getSize()]):[[n.id,n.getSize()]],u=vn(i)?Math.round(i.touches[0].clientX):i.clientX,d=(v,C)=>{if(typeof C!="number")return;let b={};t.setColumnSizingInfo(_=>{var A,T;const F=C-((A=_==null?void 0:_.startOffset)!=null?A:0),O=Math.max(F/((T=_==null?void 0:_.startSize)!=null?T:0),-.999999);return _.columnSizingStart.forEach(q=>{let[ae,ne]=q;b[ae]=Math.round(Math.max(ne+ne*O,0)*100)/100}),{..._,deltaOffset:F,deltaPercentage:O}}),(t.options.columnResizeMode==="onChange"||v==="end")&&t.setColumnSizing(_=>({..._,...b}))},g=v=>d("move",v),c=v=>{d("end",v),t.setColumnSizingInfo(C=>({...C,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},f={moveHandler:v=>g(v.clientX),upHandler:v=>{document.removeEventListener("mousemove",f.moveHandler),document.removeEventListener("mouseup",f.upHandler),c(v.clientX)}},h=Dd()?{passive:!1}:!1;vn(i)||(document.addEventListener("mousemove",f.moveHandler,h),document.addEventListener("mouseup",f.upHandler,h)),t.setColumnSizingInfo(v=>({...v,startOffset:u,startSize:o,deltaOffset:0,deltaPercentage:0,columnSizingStart:l,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?mn():(n=e.initialState.columnSizingInfo)!=null?n:mn())},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 wt=null;function Dd(){if(typeof wt=="boolean")return wt;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 wt=e,wt}function vn(e){return e.type==="touchstart"}const Id={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:he("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,o;e.setExpanded(r?{}:(i=(o=e.initialState)==null?void 0:o.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(o=>{const l=o.split(".");r=Math.max(r,l.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 o=r===!0?!0:!!(r!=null&&r[e.id]);let l={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(u=>{l[u]=!0}):l=r,n=(i=n)!=null?i:!o,!o&&n)return{...l,[e.id]:!0};if(o&&!n){const{[e.id]:u,...d}=l;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()}}})},oi=(e,t,n)=>{var r;const i=n.toLowerCase();return(r=e.getValue(t))==null?void 0:r.toLowerCase().includes(i)};oi.autoRemove=e=>be(e);const si=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};si.autoRemove=e=>be(e);const li=(e,t,n)=>{var r;return((r=e.getValue(t))==null?void 0:r.toLowerCase())===n.toLowerCase()};li.autoRemove=e=>be(e);const ui=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};ui.autoRemove=e=>be(e)||!(e!=null&&e.length);const di=(e,t,n)=>!n.some(r=>{var i;return!((i=e.getValue(t))!=null&&i.includes(r))});di.autoRemove=e=>be(e)||!(e!=null&&e.length);const ci=(e,t,n)=>n.some(r=>{var i;return(i=e.getValue(t))==null?void 0:i.includes(r)});ci.autoRemove=e=>be(e)||!(e!=null&&e.length);const gi=(e,t,n)=>e.getValue(t)===n;gi.autoRemove=e=>be(e);const pi=(e,t,n)=>e.getValue(t)==n;pi.autoRemove=e=>be(e);const yn=(e,t,n)=>{let[r,i]=n;const o=e.getValue(t);return o>=r&&o<=i};yn.resolveFilterValue=e=>{let[t,n]=e,r=typeof t!="number"?parseFloat(t):t,i=typeof n!="number"?parseFloat(n):n,o=t===null||Number.isNaN(r)?-1/0:r,l=n===null||Number.isNaN(i)?1/0:i;if(o>l){const u=o;o=l,l=u}return[o,l]},yn.autoRemove=e=>be(e)||be(e[0])&&be(e[1]);const De={includesString:oi,includesStringSensitive:si,equalsString:li,arrIncludes:ui,arrIncludesAll:di,arrIncludesSome:ci,equals:gi,weakEquals:pi,inNumberRange:yn};function be(e){return e==null||e===""}const Vd={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],globalFilter:void 0,...e}),getDefaultOptions:e=>({onColumnFiltersChange:he("columnFilters",e),onGlobalFilterChange:he("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"?De.includesString:typeof r=="number"?De.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?De.equals:Array.isArray(r)?De.arrIncludes:De.weakEquals},getFilterFn:()=>{var n,r;return yt(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:De[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,o;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((r=t.options.enableGlobalFilter)!=null?r:!0)&&((i=t.options.enableFilters)!=null?i:!0)&&((o=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?o:!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(),o=r==null?void 0:r.find(c=>c.id===e.id),l=ze(n,o?o.value:void 0);if(fi(i,l,e)){var u;return(u=r==null?void 0:r.filter(c=>c.id!==e.id))!=null?u:[]}const d={id:e.id,value:l};if(o){var g;return(g=r==null?void 0:r.map(c=>c.id===e.id?d:c))!=null?g:[]}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:()=>De.includesString,getGlobalFilterFn:()=>{var t,n;const{globalFilterFn:r}=e.options;return yt(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:De[r]},setColumnFilters:t=>{const n=e.getAllLeafColumns(),r=i=>{var o;return(o=ze(t,i))==null?void 0:o.filter(l=>{const u=n.find(d=>d.id===l.id);if(u){const d=u.getFilterFn();if(fi(d,l.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 fi(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const bn={sum:(e,t,n)=>n.reduce((r,i)=>{const o=i.getValue(e);return r+(typeof o=="number"?o:0)},0),min:(e,t,n)=>{let r;return n.forEach(i=>{const o=i.getValue(e);o!=null&&(r>o||r===void 0&&o>=o)&&(r=o)}),r},max:(e,t,n)=>{let r;return n.forEach(i=>{const o=i.getValue(e);o!=null&&(r<o||r===void 0&&o>=o)&&(r=o)}),r},extent:(e,t,n)=>{let r,i;return n.forEach(o=>{const l=o.getValue(e);l!=null&&(r===void 0?l>=l&&(r=i=l):(r>l&&(r=l),i<l&&(i=l)))}),[r,i]},mean:(e,t)=>{let n=0,r=0;if(t.forEach(i=>{let o=i.getValue(e);o!=null&&(o=+o)>=o&&(++n,r+=o)}),n)return r/n},median:(e,t)=>{if(!t.length)return;let n=0,r=0;return t.forEach(i=>{let o=i.getValue(e);typeof o=="number"&&(n=Math.min(n,o),r=Math.max(r,o))}),(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},Ed={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:he("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,o;return(n=(r=(i=(o=e.columnDef.enableGrouping)!=null?o:!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 bn.sum;if(Object.prototype.toString.call(r)==="[object Date]")return bn.extent},getAggregationFn:()=>{var n,r;if(!e)throw new Error;return yt(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:bn[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 kd(e,t,n){if(!(t!=null&&t.length)||!n)return e;const r=e.filter(o=>!t.includes(o.id));return n==="remove"?r:[...t.map(o=>e.find(l=>l.id===o)).filter(Boolean),...r]}const Ad={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:he("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:z(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,r)=>i=>{let o=[];if(!(t!=null&&t.length))o=i;else{const l=[...t],u=[...i];for(;u.length&&l.length;){const d=l.shift(),g=u.findIndex(c=>c.id===d);g>-1&&o.push(u.splice(g,1)[0])}o=[...o,...u]}return kd(o,n,r)},{key:process.env.NODE_ENV==="development"&&"getOrderColumnsFn"})})},Cn=0,wn=10,xn=()=>({pageIndex:Cn,pageSize:wn}),Td={getInitialState:e=>({...e,pagination:{...xn(),...e==null?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:he("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=o=>ze(r,o);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(i)},resetPagination:r=>{var i;e.setPagination(r?xn():(i=e.initialState.pagination)!=null?i:xn())},setPageIndex:r=>{e.setPagination(i=>{let o=ze(r,i.pageIndex);const l=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return o=Math.min(Math.max(0,o),l),{...i,pageIndex:o}})},resetPageIndex:r=>{var i,o,l;e.setPageIndex(r?Cn:(i=(o=e.initialState)==null||(l=o.pagination)==null?void 0:l.pageIndex)!=null?i:Cn)},resetPageSize:r=>{var i,o,l;e.setPageSize(r?wn:(i=(o=e.initialState)==null||(l=o.pagination)==null?void 0:l.pageSize)!=null?i:wn)},setPageSize:r=>{e.setPagination(i=>{const o=Math.max(1,ze(r,i.pageSize)),l=i.pageSize*i.pageIndex,u=Math.floor(l/o);return{...i,pageIndex:u,pageSize:o}})},setPageCount:r=>e.setPagination(i=>{var o;let l=ze(r,(o=e.options.pageCount)!=null?o:-1);return typeof l=="number"&&(l=Math.max(-1,l)),{...i,pageCount:l}}),getPageOptions:z(()=>[e.getPageCount()],r=>{let i=[];return r&&r>0&&(i=[...new Array(r)].fill(null).map((o,l)=>l)),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)}}}},Sn=()=>({left:[],right:[]}),Rd={getInitialState:e=>({columnPinning:Sn(),...e}),getDefaultOptions:e=>({onColumnPinningChange:he("columnPinning",e)}),createColumn:(e,t)=>({pin:n=>{const r=e.getLeafColumns().map(i=>i.id).filter(Boolean);t.setColumnPinning(i=>{var o,l;if(n==="right"){var u,d;return{left:((u=i==null?void 0:i.left)!=null?u:[]).filter(f=>!(r!=null&&r.includes(f))),right:[...((d=i==null?void 0:i.right)!=null?d:[]).filter(f=>!(r!=null&&r.includes(f))),...r]}}if(n==="left"){var g,c;return{left:[...((g=i==null?void 0:i.left)!=null?g:[]).filter(f=>!(r!=null&&r.includes(f))),...r],right:((c=i==null?void 0:i.right)!=null?c:[]).filter(f=>!(r!=null&&r.includes(f)))}}return{left:((o=i==null?void 0:i.left)!=null?o:[]).filter(f=>!(r!=null&&r.includes(f))),right:((l=i==null?void 0:i.right)!=null?l:[]).filter(f=>!(r!=null&&r.includes(f)))}})},getCanPin:()=>e.getLeafColumns().some(r=>{var i,o;return((i=r.columnDef.enablePinning)!=null?i:!0)&&((o=t.options.enablePinning)!=null?o:!0)}),getIsPinned:()=>{const n=e.getLeafColumns().map(u=>u.id),{left:r,right:i}=t.getState().columnPinning,o=n.some(u=>r==null?void 0:r.includes(u)),l=n.some(u=>i==null?void 0:i.includes(u));return o?"left":l?"right":!1},getPinnedIndex:()=>{var n,r,i;const o=e.getIsPinned();return o?(n=(r=t.getState().columnPinning)==null||(i=r[o])==null?void 0:i.indexOf(e.id))!=null?n:-1:0}}),createRow:(e,t)=>({getCenterVisibleCells:z(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,r,i)=>{const o=[...r!=null?r:[],...i!=null?i:[]];return n.filter(l=>!o.includes(l.column.id))},{key:process.env.NODE_ENV==="production"&&"row.getCenterVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}}),getLeftVisibleCells:z(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,,],(n,r)=>(r!=null?r:[]).map(o=>n.find(l=>l.column.id===o)).filter(Boolean).map(o=>({...o,position:"left"})),{key:process.env.NODE_ENV==="production"&&"row.getLeftVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}}),getRightVisibleCells:z(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,r)=>(r!=null?r:[]).map(o=>n.find(l=>l.column.id===o)).filter(Boolean).map(o=>({...o,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?Sn():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:Sn())},getIsSomeColumnsPinned:t=>{var n;const r=e.getState().columnPinning;if(!t){var i,o;return Boolean(((i=r.left)==null?void 0:i.length)||((o=r.right)==null?void 0:o.length))}return Boolean((n=r[t])==null?void 0:n.length)},getLeftLeafColumns:z(()=>[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:z(()=>[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:z(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r)=>{const i=[...n!=null?n:[],...r!=null?r:[]];return t.filter(o=>!i.includes(o.id))},{key:process.env.NODE_ENV==="development"&&"getCenterLeafColumns",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugColumns}})})},$d={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:he("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(o=>{!o.getCanSelect()||(r[o.id]=!0)}):i.forEach(o=>{delete r[o.id]}),r})},toggleAllPageRowsSelected:t=>e.setRowSelection(n=>{const r=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),i={...n};return e.getRowModel().rows.forEach(o=>{_n(i,o.id,r,e)}),i}),getPreSelectedRowModel:()=>e.getCoreRowModel(),getSelectedRowModel:z(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?Mn(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:z(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?Mn(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:z(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?Mn(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 o={...i};return _n(o,e.id,n,t),o})},getIsSelected:()=>{const{rowSelection:n}=t.getState();return Dn(e,n)},getIsSomeSelected:()=>{const{rowSelection:n}=t.getState();return hi(e,n)==="some"},getIsAllSubRowsSelected:()=>{const{rowSelection:n}=t.getState();return hi(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)}}})},_n=(e,t,n,r)=>{var i;const o=r.getRow(t);n?(o.getCanMultiSelect()||Object.keys(e).forEach(l=>delete e[l]),o.getCanSelect()&&(e[t]=!0)):delete e[t],(i=o.subRows)!=null&&i.length&&o.getCanSelectSubRows()&&o.subRows.forEach(l=>_n(e,l.id,n,r))};function Mn(e,t){const n=e.getState().rowSelection,r=[],i={},o=function(l,u){return l.map(d=>{var g;const c=Dn(d,n);if(c&&(r.push(d),i[d.id]=d),(g=d.subRows)!=null&&g.length&&(d={...d,subRows:o(d.subRows)}),c)return d}).filter(Boolean)};return{rows:o(t.rows),flatRows:r,rowsById:i}}function Dn(e,t){var n;return(n=t[e.id])!=null?n:!1}function hi(e,t,n){if(e.subRows&&e.subRows.length){let r=!0,i=!1;return e.subRows.forEach(o=>{i&&!r||(Dn(o,t)?i=!0:r=!1)}),r?"all":i?"some":!1}return!1}const In=/([0-9]+)/gm,Fd=(e,t,n)=>mi(Oe(e.getValue(n)).toLowerCase(),Oe(t.getValue(n)).toLowerCase()),zd=(e,t,n)=>mi(Oe(e.getValue(n)),Oe(t.getValue(n))),Od=(e,t,n)=>Vn(Oe(e.getValue(n)).toLowerCase(),Oe(t.getValue(n)).toLowerCase()),Pd=(e,t,n)=>Vn(Oe(e.getValue(n)),Oe(t.getValue(n))),Gd=(e,t,n)=>{const r=e.getValue(n),i=t.getValue(n);return r>i?1:r<i?-1:0},Nd=(e,t,n)=>Vn(e.getValue(n),t.getValue(n));function Vn(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 mi(e,t){const n=e.split(In).filter(Boolean),r=t.split(In).filter(Boolean);for(;n.length&&r.length;){const i=n.shift(),o=r.shift(),l=parseInt(i,10),u=parseInt(o,10),d=[l,u].sort();if(isNaN(d[0])){if(i>o)return 1;if(o>i)return-1;continue}if(isNaN(d[1]))return isNaN(l)?-1:1;if(l>u)return 1;if(u>l)return-1}return n.length-r.length}const tt={alphanumeric:Fd,alphanumericCaseSensitive:zd,text:Od,textCaseSensitive:Pd,datetime:Gd,basic:Nd},vi=[_d,{getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:he("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:z(()=>[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:z(()=>[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)=>z(()=>[r(),r().filter(i=>i.getIsVisible()).map(i=>i.id).join("_")],i=>i.filter(o=>o.getIsVisible==null?void 0:o.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,o)=>({...i,[o.id]:n||!(o.getCanHide!=null&&o.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)}}}},Ad,Rd,Vd,{getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto"}),getDefaultOptions:e=>({onSortingChange:he("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 o=i==null?void 0:i.getValue(e.id);if(Object.prototype.toString.call(o)==="[object Date]")return tt.datetime;if(typeof o=="string"&&(r=!0,o.split(In).length>1))return tt.alphanumeric}return r?tt.text:tt.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 yt(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:tt[e.columnDef.sortingFn]},toggleSorting:(n,r)=>{const i=e.getNextSortingOrder(),o=typeof n<"u"&&n!==null;t.setSorting(l=>{const u=l==null?void 0:l.find(v=>v.id===e.id),d=l==null?void 0:l.findIndex(v=>v.id===e.id);let g=[],c,f=o?n:i==="desc";if(l!=null&&l.length&&e.getCanMultiSort()&&r?u?c="toggle":c="add":l!=null&&l.length&&d!==l.length-1?c="replace":u?c="toggle":c="replace",c==="toggle"&&(o||i||(c="remove")),c==="add"){var h;g=[...l,{id:e.id,desc:f}],g.splice(0,g.length-((h=t.options.maxMultiSortColCount)!=null?h:Number.MAX_SAFE_INTEGER))}else c==="toggle"?g=l.map(v=>v.id===e.id?{...v,desc:f}:v):c==="remove"?g=l.filter(v=>v.id!==e.id):g=[{id:e.id,desc:f}];return g})},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 o=e.getFirstSortDir(),l=e.getIsSorted();return l?l!==o&&((r=t.options.enableSortingRemoval)!=null?r:!0)&&(n&&(i=t.options.enableMultiRemove)!=null?i:!0)?!1:l==="desc"?"asc":"desc":o},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())})},Ed,Id,Td,$d,Md];function Ld(e){var t;(e.debugAll||e.debugTable)&&console.info("Creating Table Instance...");let n={_features:vi};const r=n._features.reduce((c,f)=>Object.assign(c,f.getDefaultOptions==null?void 0:f.getDefaultOptions(n)),{}),i=c=>n.options.mergeOptions?n.options.mergeOptions(r,c):{...r,...c};let l={...{},...(t=e.initialState)!=null?t:{}};n._features.forEach(c=>{var f;l=(f=c.getInitialState==null?void 0:c.getInitialState(l))!=null?f:l});const u=[];let d=!1;const g={_features:vi,options:{...r,...e},initialState:l,_queue:c=>{u.push(c),d||(d=!0,Promise.resolve().then(()=>{for(;u.length;)u.shift()();d=!1}).catch(f=>setTimeout(()=>{throw f})))},reset:()=>{n.setState(n.initialState)},setOptions:c=>{const f=ze(c,n.options);n.options=i(f)},getState:()=>n.options.state,setState:c=>{n.options.onStateChange==null||n.options.onStateChange(c)},_getRowId:(c,f,h)=>{var v;return(v=n.options.getRowId==null?void 0:n.options.getRowId(c,f,h))!=null?v:""+(h?[h.id,f].join("."):f)},getCoreRowModel:()=>(n._getCoreRowModel||(n._getCoreRowModel=n.options.getCoreRowModel(n)),n._getCoreRowModel()),getRowModel:()=>n.getPaginationRowModel(),getRow:c=>{const f=n.getRowModel().rowsById[c];if(!f)throw process.env.NODE_ENV!=="production"?new Error("getRow expected an ID, but got "+c):new Error;return f},_getDefaultColumnDef:z(()=>[n.options.defaultColumn],c=>{var f;return c=(f=c)!=null?f:{},{header:h=>{const v=h.header.column.columnDef;return v.accessorKey?v.accessorKey:v.accessorFn?v.id:null},cell:h=>{var v,C;return(v=(C=h.renderValue())==null||C.toString==null?void 0:C.toString())!=null?v:null},...n._features.reduce((h,v)=>Object.assign(h,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:z(()=>[n._getColumnDefs()],c=>{const f=function(h,v,C){return C===void 0&&(C=0),h.map(b=>{const _=Sd(n,b,C,v),A=b;return _.columns=A.columns?f(A.columns,_,C+1):[],_})};return f(c)},{key:process.env.NODE_ENV==="development"&&"getAllColumns",debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns}}),getAllFlatColumns:z(()=>[n.getAllColumns()],c=>c.flatMap(f=>f.getFlatColumns()),{key:process.env.NODE_ENV==="development"&&"getAllFlatColumns",debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns}}),_getAllFlatColumnsById:z(()=>[n.getAllFlatColumns()],c=>c.reduce((f,h)=>(f[h.id]=h,f),{}),{key:process.env.NODE_ENV==="development"&&"getAllFlatColumnsById",debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns}}),getAllLeafColumns:z(()=>[n.getAllColumns(),n._getOrderColumnsFn()],(c,f)=>{let h=c.flatMap(v=>v.getLeafColumns());return f(h)},{key:process.env.NODE_ENV==="development"&&"getAllLeafColumns",debug:()=>{var c;return(c=n.options.debugAll)!=null?c:n.options.debugColumns}}),getColumn:c=>{const f=n._getAllFlatColumnsById()[c];if(!f)throw process.env.NODE_ENV!=="production"&&console.warn("[Table] Column with id "+c+" does not exist."),new Error;return f}};return Object.assign(n,g),n._features.forEach(c=>Object.assign(n,c.createTable==null?void 0:c.createTable(n))),n}function qd(e,t,n,r){const i=()=>{var l;return(l=o.getValue())!=null?l:e.options.renderFallbackValue},o={id:t.id+"_"+n.id,row:t,column:n,getValue:()=>t.getValue(r),renderValue:i,getContext:z(()=>[e,n,t,o],(l,u,d,g)=>({table:l,column:u,row:d,cell:g,getValue:g.getValue,renderValue:g.renderValue}),{key:process.env.NODE_ENV==="development"&&"cell.getContext",debug:()=>e.options.debugAll})};return e._features.forEach(l=>{Object.assign(o,l.createCell==null?void 0:l.createCell(o,n,t,e))},{}),o}const Bd=(e,t,n,r,i,o)=>{let l={id:t,index:r,original:n,depth:i,_valuesCache:{},getValue:u=>{if(l._valuesCache.hasOwnProperty(u))return l._valuesCache[u];const d=e.getColumn(u);if(!!d.accessorFn)return l._valuesCache[u]=d.accessorFn(l.original,r),l._valuesCache[u]},renderValue:u=>{var d;return(d=l.getValue(u))!=null?d:e.options.renderFallbackValue},subRows:o!=null?o:[],getLeafRows:()=>xd(l.subRows,u=>u.subRows),getAllCells:z(()=>[e.getAllLeafColumns()],u=>u.map(d=>qd(e,l,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:z(()=>[l.getAllCells()],u=>u.reduce((d,g)=>(d[g.column.id]=g,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(l,d==null||d.createRow==null?void 0:d.createRow(l,e))}return l};function jd(){return{accessor:(e,t)=>typeof e=="function"?{...t,accessorFn:e}:{...t,accessorKey:e},display:e=>e,group:e=>e}}function Wd(){return e=>z(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(i,o,l){o===void 0&&(o=0);const u=[];for(let g=0;g<i.length;g++){const c=Bd(e,e._getRowId(i[g],g,l),i[g],g,o);if(n.flatRows.push(c),n.rowsById[c.id]=c,u.push(c),e.options.getSubRows){var d;c.originalSubRows=e.options.getSubRows(i[g],g),(d=c.originalSubRows)!=null&&d.length&&(c.subRows=r(c.originalSubRows,o+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 Ud(){return e=>z(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const r=e.getState().sorting,i=[],o=r.filter(d=>e.getColumn(d.id).getCanSort()),l={};o.forEach(d=>{const g=e.getColumn(d.id);l[d.id]={sortUndefined:g.columnDef.sortUndefined,invertSorting:g.columnDef.invertSorting,sortingFn:g.getSortingFn()}});const u=d=>{const g=d.slice();return g.sort((c,f)=>{for(let v=0;v<o.length;v+=1){var h;const C=o[v],b=l[C.id],_=(h=C==null?void 0:C.desc)!=null?h:!1;if(b.sortUndefined){const T=c.getValue(C.id),F=f.getValue(C.id),O=typeof T>"u",q=typeof F>"u";if(O||q)return O&&q?0:O?b.sortUndefined:-b.sortUndefined}let A=b.sortingFn(c,f,C.id);if(A!==0)return _&&(A*=-1),b.invertSorting&&(A*=-1),A}return c.index-f.index}),g.forEach(c=>{i.push(c),!(!c.subRows||c.subRows.length<=1)&&(c.subRows=u(c.subRows))}),g};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 yi(e,t){return e?Yd(e)?a(e,{...t}):e:null}function Yd(e){return Hd(e)||typeof e=="function"||Qd(e)}function Hd(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function Qd(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function Jd(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=Hn.useState(()=>({current:Ld(t)})),[r,i]=Hn.useState(()=>n.current.initialState);return n.current.setOptions(o=>({...o,...e,state:{...r,...e.state},onStateChange:l=>{i(l),e.onStateChange==null||e.onStateChange(l)}})),n.current}function bi(e,t,n){return Math.min(Math.max(e,t),n)}class Xd{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,o)=>i.from-o.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 o=>r*o+i}getStepFunctionForValue(t){let n=w.findLastIndex(this.steps,r=>r.from<=t);return n=bi(n,0,this.steps.length-2),this.getLinearFunction(this.steps[n],this.steps[n+1])}mapValue(t){return bi(this.getStepFunctionForValue(t)(t),0,100)}}const Kd=({header:e,cx:t})=>p(s.Text,{className:t("table-head-cell",{"table-head-cell--sortable":e.column.getCanSort()}),onClick:e.column.getToggleSortingHandler(),children:[e.isPlaceholder?null:yi(e.column.columnDef.header,e.getContext()),a(Zd,{direction:e.column.getIsSorted()})]}),Zd=({direction:e})=>{switch(e){case"asc":return a(ho,{size:16});case"desc":return a(po,{size:"1em"});default:return null}},En={id:"builtin:table:click-cell-content",displayName:"Click Cell Content",nameRender:ic,configRender:nc,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"}]},ec={column:""};function Ci(e){const{value:t}=N(e.instanceData,"config");return t?t.columns.map((n,r)=>({label:n.label,value:r.toString()})):[]}function tc(e){return w.isEmpty(e)?[]:Object.keys(e[0]).map(t=>({label:t,value:t}))}function nc(e){const t=Ci(e.instance),n=tc(e.sampleData),r=t.length>0?t:n,{value:i,set:o}=N(e.trigger.triggerData,"config"),{column:l}=w.defaults({},i,ec),u=d=>{isNaN(+d)?o({column:d}):o({column:+d})};return a(s.Select,{clearable:!1,data:r,label:"Choose a column",value:l.toString(),onChange:u})}function rc(e,t){return e?w.isNumber(e.column)?`Click cell of ${t[e.column].label}`:`Click cell of ${e.column}`:"Click cell content (click to config)"}function ic(e){const t=Ci(e.instance),{value:n}=N(e.trigger.triggerData,"config");return a(s.Text,{children:rc(n,t)})}const ac=s.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}})),oc=s.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 sc(e){return e?Ye.default(e).oklch()[0]>.7?"black":"white":"inherit"}function lc(e){const t=e.tableCellContext.bgColor;return{backgroundColor:t,color:sc(t)}}function xt(e){const t=e.tableCellContext.isClickable(),n=oc({clickable:t});return a("div",{className:n.classes.content,style:{...lc(e)},children:a(s.Text,{className:"table-cell-text",onClick:e.tableCellContext.getClickHandler(),children:a("span",{children:e.children})})})}function uc(e){return a(xt,{...e,children:e.value})}function dc(e){return a(xt,{...e,children:e.value})}function cc(e){const t=ge.default(e.value).format({thousandSeparated:!0});return a(xt,{...e,children:t})}function gc(e){const t=ge.default(e.value).format({output:"percent",mantissa:3});return a(xt,{...e,children:t})}function pc(e){switch(e.type){case Fe.string:return a(uc,{...e});case Fe.eloc:return a(dc,{...e});case Fe.number:return a(cc,{...e});case Fe.percentage:return a(gc,{...e})}}const fc=e=>{const t=an(e),n=rn(t.triggerManager,En.id),{colorManager:r}=x.useContext(Se);return x.useCallback(i=>new mc(e.getColIndex,i,n,t,r),[n,t,e.getColIndex])};function hc({context:e,instance:t}){var me,le,Ce;const n=(me=e.data)!=null?me:[],{height:r,width:i}=e.viewport,{value:o=vt}=N(e.instanceData,"config"),{use_raw_columns:l,columns:u,...d}=o,{classes:g,cx:c}=ac(),f=S.default.useMemo(()=>l?Object.keys(n[0]).map(re=>({label:re,value_field:re,value_type:Fe.string})):u,[l,u,n]),h=fc({getColIndex:x.useCallback(re=>f.indexOf(re.column.columnDef.meta),[f]),vizManager:e.vizManager,instance:t}),v=x.useMemo(()=>{const re=jd(),we=f.map(de=>re.accessor(de.value_field,{cell:Pe=>a(pc,{tableCellContext:h(Pe.cell),value:Pe.getValue(),type:de.value_type}),header:de.label,enableSorting:!0,meta:de}));return[re.display({id:"#index",cell:de=>de.row.index+1,header:"#",size:10*(n.length.toString().length+1)}),...we]},[f,h]),[C,b]=x.useState([]),_=Jd({data:n,state:{sorting:C},onSortingChange:b,columns:v,getCoreRowModel:Wd(),getSortedRowModel:Ud()}),{rows:A}=_.getRowModel(),T=S.default.useRef(null),F=Fa.useVirtual({parentRef:T,size:A.length,estimateSize:x.useCallback(()=>28,[]),overscan:20}),{virtualItems:O,totalSize:q}=F,ae=O.length>0&&((le=O==null?void 0:O[0])==null?void 0:le.start)||0,ne=O.length>0?q-(((Ce=O==null?void 0:O[O.length-1])==null?void 0:Ce.end)||0):0;return a("div",{ref:T,style:{height:r,width:i},className:c(g.root,{"table-highlight-on-hover":o.highlightOnHover}),children:p(s.Table,{sx:{maxHeight:r},...d,striped:o.striped,children:[a("thead",{className:g.thead,children:_.getHeaderGroups().map(re=>a("tr",{children:re.headers.map(we=>a("th",{style:{width:we.getSize()},children:a(Kd,{header:we,cx:c})},we.id))},re.id))}),p("tbody",{children:[ae>0&&a("tr",{children:a("td",{style:{height:`${ae}px`}})}),O.map(re=>{const we=A[re.index];return a("tr",{children:we.getVisibleCells().map(ue=>a("td",{children:yi(ue.column.columnDef.cell,ue.getContext())},ue.id))},we.id)}),ne>0&&a("tr",{children:a("td",{style:{height:`${ne}px`}})})]})]})})}class mc{constructor(t,n,r,i,o){this.getColIndex=t,this.cell=n,this.triggers=r,this.interactionManager=i,this.colorManager=o}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===En.id).filter(n=>{const r=this.getColIndex(this.cell),i=w.get(this.cell.column.columnDef.meta,"value_field"),o=w.get(n.config,"column");return o==r||o==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(w.isString(t))return t;const n=+this.cell.getValue();if(isFinite(n)){const r=this.colorManager.decodeInterpolation(t.interpolation),o=new Xd(t.steps).mapValue(n);return r==null?void 0:r.getColor(o)}}}const wi=s.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)"}}}})),vc=[{from:0,to:0},{from:100,to:100}];class yc{constructor(){R(this,"steps",new Map);R(this,"interpolation");R(this,"onChange");Z.makeAutoObservable(this,{steps:Z.observable},{deep:!1}),Z.reaction(()=>Z.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(vc):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 bc(e){const{onChange:t,color:n,index:r,value:i}=e,{classes:o}=wi(),[l,u]=x.useState(i),[d,{setTrue:g,setFalse:c}]=W.useBoolean(!1),f=r%2===1,h=f&&i!=null,v=!f&&i!=null,C=`map ${i} to color ${r}`,b=()=>{u(i),c()},_=()=>{c(),t==null||t(l)},A=ge.default(i).format({average:!0});return p("div",{"data-testid":`palette-item-${r}`,className:o.paletteItem,children:[a(s.Text,{title:C,style:{opacity:h?1:0},color:"dimmed",size:"sm",className:"palette-value--up palette-value",children:A}),p(s.Popover,{width:200,trapFocus:!0,opened:d,onClose:c,children:[a(s.Popover.Target,{children:a("div",{"data-testid":"palette-item-target",className:"palette-item",onClick:g,style:{"--shadow-color":Ye.default(n).alpha(.5).hex(),backgroundColor:n}})}),a(s.Popover.Dropdown,{children:p(s.Stack,{children:[a(s.NumberInput,{size:"xs",label:"Map a value to this color",value:l,onChange:u}),p(s.Group,{position:"right",children:[a(s.Button,{variant:"subtle",size:"xs",onClick:b,children:"Cancel"}),a(s.Button,{"data-testid":"palette-item-ok",size:"xs",onClick:_,children:"OK"})]})]})})]}),a(s.Text,{title:C,style:{opacity:v?1:0},color:"dimmed",size:"sm",className:"palette-value--bottom palette-value",children:A})]})}const Cc=I.observer(({model:e})=>{const{classes:t}=wi(),n=w.range(0,13,1).map(r=>100/12*r).map(r=>[e.interpolation.getColor(r),r]);return a("div",{className:t.palette,children:n.map(([r,i],o)=>a(bc,{index:o,color:r,value:e.getStepFromValue(i),onChange:l=>e.changeStep(l,i)},r))})}),wc=I.observer(function(t){const n=W.useCreation(()=>new yc,[]);return x.useEffect(()=>{n.fromProps(t)}),n.interpolation==null?null:a(Cc,{model:n})}),xc=e=>{const{value:t,onChange:n,colorManager:r}=e,i=r.getColorInterpolations(),[o,l]=x.useState(t),u=r.decodeInterpolation(o.interpolation)||i[0],[d,{setTrue:g,setFalse:c}]=W.useBoolean(),f=i.map(_=>({label:_.displayName,value:r.encodeColor(_),group:_.category}));function h(_){_&&l(A=>({...A,interpolation:_}))}const v=()=>{c(),n==null||n(Z.toJS(o))};function C(_){l(A=>({...A,steps:_}))}const b=()=>{c(),l(t)};return p(U,{children:[a(s.Button,{variant:"outline",onClick:g,children:u==null?void 0:u.displayName}),a(s.Modal,{size:508,title:"Setup color interpolation",opened:d,onClose:c,children:d&&p(s.Stack,{"data-testid":"color-interpolation-modal",children:[a(s.Select,{label:"Color style",value:o.interpolation,data:f,onChange:h}),a(wc,{steps:o.steps,interpolation:u,onChange:C}),p(s.Group,{position:"right",children:[a(s.Button,{onClick:b,variant:"subtle",children:"Cancel"}),a(s.Button,{onClick:v,children:"OK"})]})]})})]})},Sc=["static","interpolation","none"],_c=[{from:0,to:0},{from:100,to:100}];function xi(e){return e?w.isString(e)?e==="none"?"none":"static":"interpolation":"none"}function Mc(e,t){var n;return xi(t)==="static"?t:(n=e.getStaticColors()[0])==null?void 0:n.value}function Dc(e,t){return w.isObject(t)?t:{steps:_c,interpolation:e.encodeColor(e.getColorInterpolations()[0])}}const Ic=e=>{const{colorManager:t}=x.useContext(Se),[n,r]=x.useState(xi(e.value)),[i,o]=x.useState(Mc(t,e.value)),l=W.useLatest(i),[u,d]=x.useState(Dc(t,e.value)),g=W.useLatest(u),c=v=>{var C,b,_;r(v||"none"),v==="static"?(C=e.onChange)==null||C.call(e,l.current):v==="none"||!v?(b=e.onChange)==null||b.call(e,"none"):(_=e.onChange)==null||_.call(e,g.current)},f=v=>{var C;o(v),(C=e.onChange)==null||C.call(e,v)},h=v=>{var C;d(v),(C=e.onChange)==null||C.call(e,v)};return p(s.Group,{align:"end",children:[a(s.Select,{label:"Cell background",value:n||"none",onChange:c,data:Sc}),n==="static"&&a(Re,{value:i,onChange:f}),n==="interpolation"&&a(xc,{colorManager:t,value:u,onChange:h})]})},Vc=Object.values(Fe).map(e=>({label:e,value:e}));function Ec({label:e,value:t,onChange:n,sx:r}){return a(s.Select,{label:e,data:Vc,value:t,onChange:n,sx:r})}function kc({context:e}){const{value:t,set:n}=N(e.instanceData,"config"),r=Rt.useForm({initialValues:vt});x.useEffect(()=>{const l=w.defaults({},t,r.values,vt);t&&r.setValues(l)},[t]);const i=e.data||[],o=()=>r.insertListItem("columns",{label:ie.randomId(),value_field:"value",value_type:Fe.string});return a(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:r.onSubmit(async l=>{await n(l)}),children:[p(s.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[a(s.Text,{children:"Table Config"}),a(s.ActionIcon,{type:"submit","aria-label":"save config",mr:5,variant:"filled",color:"blue",children:a(k.DeviceFloppy,{size:20})})]}),p(s.Stack,{mt:"md",spacing:"xs",p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[a(Q,{label:"ID Field",required:!0,data:i,...r.getInputProps("id_field")}),p(s.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:[a(s.TextInput,{label:"Horizontal Spacing",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...r.getInputProps("horizontalSpacing")}),a(s.TextInput,{label:"Vertical Spacing",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...r.getInputProps("verticalSpacing")})]}),a(s.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:a(s.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...r.getInputProps("fontSize")})}),p(s.Stack,{children:[a(s.Text,{children:"Other"}),p(s.Group,{position:"apart",grow:!0,children:[a(s.Switch,{label:"Striped",...r.getInputProps("striped",{type:"checkbox"})}),a(s.Switch,{label:"Highlight on hover",...r.getInputProps("highlightOnHover",{type:"checkbox"})})]})]})]}),p(s.Stack,{mt:"xs",spacing:"xs",p:"md",mb:"xl",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[a(s.Switch,{label:"Use Original Data Columns",...r.getInputProps("use_raw_columns",{type:"checkbox"})}),!r.values.use_raw_columns&&p(s.Stack,{children:[a(s.Text,{mt:"xl",mb:0,children:"Custom Columns"}),r.values.columns.map((l,u)=>p(s.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[p(s.Group,{position:"apart",grow:!0,children:[a(s.TextInput,{label:"Label",required:!0,id:`col-label-${u}`,sx:{flex:1},...r.getInputProps(`columns.${u}.label`)}),a(Q,{label:"Value Field",required:!0,data:i,...r.getInputProps(`columns.${u}.value_field`)}),a(Ec,{label:"Value Type",sx:{flex:1},...r.getInputProps(`columns.${u}.value_type`)}),a(Ic,{...r.getInputProps(`columns.${u}.cellBackgroundColor`)})]}),a(s.ActionIcon,{color:"red",variant:"subtle",onClick:()=>r.removeListItem("columns",u),sx:{position:"absolute",top:15,right:5},children:a(k.Trash,{size:16})})]},u)),a(s.Group,{position:"center",mt:"xs",children:a(s.Button,{onClick:o,children:"Add a Column"})})]})]}),a(s.Text,{weight:500,mb:"md",children:"Current Configuration:"}),a(Ge.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(r.values,null,2)})]})})}class Ac extends se{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const kn={createConfig(){return{version:1,config:w.cloneDeep(vt)}},displayName:"Table",migrator:new Ac,name:"table",viewRender:hc,configRender:kc,triggers:[En]};async function Tc(e,t,n,r={}){const i={"X-Requested-With":"XMLHttpRequest","Content-Type":r.string?"application/x-www-form-urlencoded":"application/json",...r.headers},o={baseURL:e,method:"POST",url:t,params:r.params,headers:i};return o.data=r.string?JSON.stringify(n):n,Qn.default(o).then(l=>l.data).catch(l=>Promise.reject(l))}const Rc=({conf:e,data:t})=>async()=>{const{expertSystemURL:n,goal:r,question:i}=e;return!n||!r||!i?void 0:await Tc(n,"/expert/v2/devtable",{dashboard:r,panels:[{name:i,data:t}]},{})},An={expertSystemURL:"",goal:"",question:""};function $c({context:e}){var g;const{value:t}=N(e.instanceData,"config"),n=x.useMemo(()=>w.defaultsDeep({},t,An),[t]),{width:r,height:i}=e.viewport,o=(g=e.data)!=null?g:[],{data:l,error:u,loading:d}=W.useRequest(Rc({conf:n,data:o}),{refreshDeps:[JSON.stringify(o),n==null?void 0:n.expertSystemURL]});return!r||!i||!n?null:d?a(s.Box,{sx:{position:"relative",height:i},children:a(s.LoadingOverlay,{visible:!0})}):!l||!Array.isArray(l.replies)||l.replies.length===0?null:a(s.Box,{children:l.replies.map((c,f)=>a("div",{dangerouslySetInnerHTML:{__html:c.interpretation.html}},f))})}function Fc({context:e}){const{value:t,set:n}=N(e.instanceData,"config"),r=x.useMemo(()=>w.defaultsDeep({},t,An),[t]),i=(o,l)=>{n({...r,[o]:l})};return p(s.Stack,{children:[a(s.TextInput,{value:r.expertSystemURL,onChange:o=>{i("expertSystemURL",o.currentTarget.value)},label:"Expert System URL",required:!0}),p(s.Group,{grow:!0,children:[a(s.TextInput,{label:"Goal",value:r.goal,onChange:o=>{i("goal",o.currentTarget.value)},required:!0}),a(s.TextInput,{label:"Question",value:r.question,onChange:o=>{i("question",o.currentTarget.value)},required:!0})]})]})}class zc extends se{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Oc={displayName:"Merico GQM",migrator:new zc,name:"mericoGQM",viewRender:$c,configRender:Fc,createConfig:()=>An},Pc=[{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"})),Gc=[hs,ms,bs,ys,vs,Cs],Si=()=>({id:"dashboard",version:ws,manifest:{viz:[kn,md,ud,wd,Ou,Es,Cl,Tu,Du,Hu,ad,Oc,Al],color:[...Pc,...Gc]}}),nt=new Ss,X={pluginManager:Me("pluginManager"),vizManager:Me("vizManager"),colorManager:Me("colorManager"),instanceScope:{panelModel:Me("panelModel"),vizInstance:Me("vizInstance"),interactionManager:Me("interactionManager"),migrator:Me("migrator"),operationManager:Me("operationManager"),triggerManager:Me("triggerManager")}},Tn=()=>{try{nt.install(Si())}catch{}const e=new gs(nt),t=new xs(nt);return{pluginManager:nt,vizManager:e,colorManager:t}},Se=x.createContext(Tn());try{nt.install(Si())}catch{}function Nc(e,t){const{value:n,set:r}=N(e.operation.operationData,"config"),[i,o]=x.useState(w.defaults({},n,t)),l=async()=>{await r(i)};return x.useEffect(()=>{o(w.defaults({},n,t))},[n]),{config:i,setConfig:o,commit:l}}function Lc(e){const{config:t,setConfig:n,commit:r}=Nc(e,{urlTemplate:"",openInNewTab:!0});async function i(){await r()}async function o(u){n({...t,openInNewTab:u}),await r()}const l=u=>n({...t,urlTemplate:u.currentTarget.value});return p(s.Stack,{children:[a(s.TextInput,{label:"Url",value:t.urlTemplate,onChange:l,onBlur:i}),a(s.Switch,{label:"Open in new Tab",checked:t.openInNewTab,onChange:u=>o(u.currentTarget.checked)})]})}async function qc(e,t){const{urlTemplate:n,openInNewTab:r}=await t.operationData.getItem("config");window.dispatchEvent(new CustomEvent("open-link",{detail:{urlTemplate:n,openInNewTab:r,payload:e}}))}class Bc extends se{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>n)}}const jc={displayName:"Open Link",id:"builtin:op:open-link",configRender:Lc,run:qc,migrator:new Bc,createDefaultConfig:()=>({version:1,config:{urlTemplate:"",openInNewTab:!0}})};function Wc(e){const{value:t,set:n}=N(e.operationData,"config"),r=i=>void n({template:i});return[(t==null?void 0:t.template)||"",r]}function Uc(e){const[t,n]=Wc(e.operation);return a(s.TextInput,{defaultValue:t,onBlur:r=>n(r.currentTarget.value),label:"console.log"})}async function Yc(e,t){const n=await t.operationData.getItem("config"),r=w.template(n.template||"");console.log("run with payload",e),console.log(r(e))}const Hc={displayName:"console.log (debug)",id:"builtin:op:debug",configRender:Uc,run:Yc},Qc=I.observer(e=>{const t=B(),{value:n,set:r}=N(e.operation.operationData,"config");console.log({value:n,viewID:n==null?void 0:n.viewID});const i=(n==null?void 0:n.viewID)||"",o=l=>void r({viewID:l});return a(s.Select,{defaultValue:i,value:i,onChange:o,label:"View",data:t.views.options})});async function Jc(e,t){const r=(await t.operationData.getItem("config")).viewID;window.dispatchEvent(new CustomEvent("open-view",{detail:{viewID:r}}))}const Xc={displayName:"Open View",id:"builtin:op:open_view",configRender:Qc,run:Jc},Kc={dictionary:{}},Zc=I.observer(e=>{const t=B(),{value:n=Kc,set:r}=N(e.operation.operationData,"config"),{dictionary:i={}}=n,o=(d,g)=>{r({dictionary:{...i,[d]:g}})},l=()=>{o(t.filters.firstFilterValueKey,"")},u=d=>{const g={...i};delete g[d],r({dictionary:g})};return console.log(t.filters.values),p(s.Stack,{spacing:10,children:[a(s.Text,{children:"Mapping Rules"}),Object.entries(i).map(([d,g],c)=>p(s.Group,{noWrap:!0,children:[a(s.TextInput,{label:"Payload key",value:g,onChange:f=>{o(d,f.currentTarget.value)}}),a(Q,{data:[t.filters.values],value:d,onChange:f=>{o(f,g)},label:"Filter key"}),a(s.ActionIcon,{onClick:()=>u(d),sx:{marginTop:"22px"},children:a(k.Trash,{size:14,color:"red"})})]},d)),a(s.Button,{size:"xs",onClick:l,children:"Add one mapping rule"})]})});async function eg(e,t){const r=(await t.operationData.getItem("config")).dictionary;window.dispatchEvent(new CustomEvent("set-filter-values",{detail:{dictionary:r,payload:e}}))}const St=[Hc,jc,Xc,{displayName:"Set Filter Values",id:"builtin:op:set_filter_values",configRender:Zc,run:eg}];class tg{constructor(t,n=St){R(this,"attachments");this.operations=n;const r=async i=>{const{id:o,schemaRef:l}=await i.getItem(null);return{id:o,schemaRef:l,operationData:new je(i,"data")}};this.attachments=new Bt(t,"__OPERATIONS",r)}async runOperation(t,n){const r=await this.attachments.getInstance(t);if(!r){console.warn(`Operation '${t}' is not defined`);return}const i=this.tryGetSchema(r.schemaRef);if(!i){console.warn(`Operation schema '${r.schemaRef}' is not defined`);return}await i.run(n,r)}tryGetSchema(t){return this.operations.find(n=>n.id===t)}async needMigration(){const n=(await this.attachments.list()).map(async r=>{const i={configData:r.operationData},o=this.tryGetSchema(r.schemaRef),l=o==null?void 0:o.migrator;return l&&await l.needMigration(i)});return(await Promise.all(n)).some(r=>r)}async runMigration(){const n=(await this.attachments.list()).map(async r=>{const i={configData:r.operationData},o=this.tryGetSchema(r.schemaRef),l=o==null?void 0:o.migrator;l&&await l.needMigration(i)&&await l.migrate(i)});await Promise.all(n)}async createOrGetOperation(t,n){var l,u;if(!this.getOperationSchemaList().some(d=>d.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:(u=(l=n.createDefaultConfig)==null?void 0:l.call(n))!=null?u:{}}):i}getOperationList(){return this.attachments.list()}getOperationSchemaList(){return this.operations}removeOperation(t){return this.attachments.remove(t)}async retrieveTrigger(t){return await this.attachments.getInstance(t)}}class Rn{constructor(t,n,r){R(this,"operationManager");R(this,"triggerManager");R(this,"attachments");this.operationManager=new tg(t,r),this.triggerManager=new wl(t,n);const i=async o=>{const{id:l,triggerRef:u,operationRef:d}=await o.getItem(null);return{id:l,triggerRef:u,operationRef:d}};this.attachments=new Bt(t,"__INTERACTIONS",i)}async addInteraction(t,n){const r=t.id,i=n.id,o=`[${r}]:[${i}]`;await this.attachments.create(o,{id:o,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(o=>o.triggerRef===t);await Promise.all(i.map(async o=>{try{return await this.operationManager.runOperation(o.operationRef,n)}catch(l){console.warn(`Failed to run operation '${o.operationRef}'`,l)}}))}}function ng(e,t){const[n,r]=x.useState([]);return W.useAsyncEffect(async()=>{const i=await e.getInteractionList();r(i)},[t]),n}const rg=I.observer(({item:e,manager:t,instance:n,sampleData:r,variables:i,onRemove:o})=>{const{triggerRef:l,operationRef:u}=e,d=os(t.triggerManager,n);if(W.useAsyncEffect(async()=>{await d.configTrigger(l,r)},[d,l,r]),d.isReady()){const g=[...d.triggerSchema.payload,...i];return p(s.Group,{children:[a(ds,{model:d}),a(rs,{instance:n,operationId:u,variables:g,operationManager:t.operationManager}),a(s.Button,{"aria-label":"delete-interaction",variant:"outline",color:"red",onClick:()=>o(e),children:a(k.Trash,{})})]})}return null}),ig=e=>{const[t,n]=x.useState(0),{interactionManager:r,instance:i,sampleData:o,variables:l}=e,u=ng(r,t),d=async()=>{const h=await r.triggerManager.createOrGetTrigger(ie.randomId(),r.triggerManager.getTriggerSchemaList()[0]),v=await r.operationManager.createOrGetOperation(ie.randomId(),r.operationManager.getOperationSchemaList()[0]);await r.addInteraction(h,v),n(C=>C+1)};async function g(h){await r.removeInteraction(h.id),n(v=>v+1)}const{data:c=0,loading:f}=W.useRequest(async()=>{try{return(await r.triggerManager.getTriggerSchemaList()).length}catch{return 0}});return p(s.Stack,{children:[a(s.LoadingOverlay,{visible:f}),c===0&&a(s.Alert,{icon:a(k.AlertCircle,{size:16}),title:"Unavailable",color:"gray",children:"This visualization does not have available interactions to choose from"}),u.map(h=>a(rg,{onRemove:g,instance:i,sampleData:o,variables:l,item:h,manager:e.interactionManager},h.id)),a(s.Button,{style:{width:"fit-content"},onClick:()=>d(),disabled:c===0,children:"Add interaction"})]})},ag=()=>{const{panel:e,data:t}=ee(),n=e.viz,{vizManager:r}=x.useContext(Se),i=e.json,o=W.useCreation(()=>r.getOrCreateInstance(i),[r,n.type]),l=W.useCreation(()=>new Rn(o,r.resolveComponent(n.type),St),[o,n.type]);return x.useEffect(()=>o.instanceData.watchItem(null,w.throttle(u=>{e.viz.setConf(u)},100,{leading:!1,trailing:!0})),[o]),{instance:o,vizManager:r,interactionManager:l,sampleData:t,variables:[]}},og=()=>{const e=ag();return a(ig,{...e})},sg=I.observer(()=>{const{panel:e}=ee(),[t,n]=S.default.useState(e.description),r=e.description!==t,i=S.default.useCallback(()=>{!r||e.setDescription(t)},[r,t]);return p(s.Stack,{spacing:4,sx:{flexGrow:1},children:[p(s.Group,{align:"end",children:[a(s.Text,{sx:{flexGrow:1},children:"Description"}),a(s.ActionIcon,{variant:"subtle",color:"blue",disabled:!r,onClick:i,children:a(k.DeviceFloppy,{size:20})})]}),a(Tt.RichTextEditor,{value:t,onChange:n,sx:{flexGrow:1},sticky:!0,p:"0"})]})}),lg=I.observer(()=>{const{panel:e}=ee(),{style:t}=e;return a(U,{children:a(s.Switch,{label:"Border",checked:t.border.enabled,onChange:n=>t.border.setEnabled(n.currentTarget.checked)})})}),ug=I.observer(()=>{const{panel:{title:e,style:{border:t}}}=ee();return a(qe,{children:p(s.Stack,{mx:"auto",mt:"xl",p:"5px",spacing:5,sx:{width:"600px",height:"450px",background:"transparent",borderRadius:"5px",border:"1px solid #e9ecef",borderWidth:t.enabled?"1px":"0px"},children:[p(s.Group,{position:"apart",noWrap:!0,sx:{flexGrow:0,flexShrink:0},children:[a(s.Group,{children:a(_r,{})}),a(s.Group,{grow:!0,position:"center",children:a(s.Text,{lineClamp:1,weight:"bold",children:e})}),a(s.Group,{position:"right",spacing:0,sx:{height:"28px"}})]}),a(s.Group,{sx:{background:"#eee",flexGrow:1}})]})})}),dg=I.observer(()=>{const{panel:e}=ee(),{title:t,setTitle:n}=e,[r,i]=ie.useInputState(t),o=t!==r,l=S.default.useCallback(()=>{!o||n(r)},[o,r]);return a(s.TextInput,{value:r,onChange:i,label:p(s.Group,{align:"apart",children:[a(s.Text,{sx:{flexGrow:1},children:"Panel Title"}),a(s.ActionIcon,{variant:"subtle",color:"blue",disabled:!o,onClick:l,children:a(k.DeviceFloppy,{size:20})})]}),styles:{label:{display:"block",paddingBottom:"4px"}}})});function cg(){return p(s.Group,{grow:!0,noWrap:!0,align:"stretch",sx:{height:"100%"},children:[p(s.Stack,{sx:{width:"40%",flexShrink:0,flexGrow:0,height:"100%"},children:[a(s.Divider,{label:"Style",labelPosition:"center",variant:"dashed"}),a(lg,{}),a(s.Divider,{label:"Info",labelPosition:"center",variant:"dashed"}),a(dg,{}),a(sg,{})]}),a(s.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:a(ug,{})})]})}const gg=I.observer(function(){const t=B(),{panel:{queryID:n,setQueryID:r}}=ee(),i=S.default.useMemo(()=>t.queries.current.map(o=>({value:o.id,label:o.id})),[t.queries.current]);return p(s.Stack,{children:[p(s.Group,{position:"left",sx:{maxWidth:"600px",alignItems:"baseline"},children:[a(s.Text,{children:"Select a Query"}),a(s.Select,{data:i,value:n,onChange:r,allowDeselect:!1,clearable:!1,sx:{flexGrow:1}})]}),a(cr,{id:n})]})});var _i=(e=>(e.migrated="migrated",e.nothingToMigrate="nothingToMigrate",e.checkFailed="checkFailed",e.migrationFailed="migrationFailed",e))(_i||{}),_t=(e=>(e.notStarted="notStarted",e.inProgress="inProgress",e.done="done",e))(_t||{});class pg{constructor(t){R(this,"vizInstance");R(this,"operationManager");R(this,"triggerManager");R(this,"vizManager");R(this,"runningMigration");R(this,"panelModel");R(this,"status","notStarted");this.panelModel=t.getRequired(X.instanceScope.panelModel),this.vizInstance=t.getRequired(X.instanceScope.vizInstance),this.operationManager=t.getRequired(X.instanceScope.operationManager),this.triggerManager=t.getRequired(X.instanceScope.triggerManager),this.vizManager=t.getRequired(X.vizManager)}async createMigrationTask(){const t=[];try{await this.instanceNeedMigration()&&t.push(()=>this.runInstanceMigration()),await this.interactionNeedMigration()&&t.push(()=>this.runInteractionMigration())}catch(n){return console.warn("check migration failed",n),"checkFailed"}if(t.length===0)return"nothingToMigrate";try{return await Promise.all(t.map(n=>n())),"migrated"}catch(n){return console.warn("migration failed",n),"migrationFailed"}}async runMigration(){return this.runningMigration||(this.status="inProgress",this.runningMigration=this.createMigrationTask().then(t=>(this.status="done",t))),this.runningMigration}async runInteractionMigration(){await this.operationManager.runMigration(),await this.triggerManager.runMigration()}async runInstanceMigration(){const t=this.vizManager.resolveComponent(this.vizInstance.type),n={configData:this.vizInstance.instanceData,panelModel:this.panelModel};await t.migrator.migrate(n)}async instanceNeedMigration(){const t=this.vizManager.resolveComponent(this.vizInstance.type),n={configData:this.vizInstance.instanceData};return t.migrator.needMigration(n)}async interactionNeedMigration(){return await this.operationManager.needMigration()||await this.triggerManager.needMigration()}}function Mi(e){const{panel:t}=ee();return x.useCallback(n=>{const r=n.getRequired(X.vizManager),i=r.resolveComponent(e.viz.type);return n.createScoped().provideFactory(X.instanceScope.vizInstance,()=>r.getOrCreateInstance(e)).provideFactory(X.instanceScope.interactionManager,o=>{const l=o.getRequired(X.instanceScope.vizInstance);return new Rn(l,i,St)}).provideFactory(X.instanceScope.operationManager,o=>o.getRequired(X.instanceScope.interactionManager).operationManager).provideFactory(X.instanceScope.triggerManager,o=>o.getRequired(X.instanceScope.interactionManager).triggerManager).provideValue(X.instanceScope.panelModel,t).provideFactory(X.instanceScope.migrator,o=>new pg(o))},[e.viz.type,e.viz.conf])}function Di(e){const[t,n]=x.useState(!1),r=nr().getRequired(X.instanceScope.migrator);return W.useAsyncEffect(async()=>{const i=r.status===_t.notStarted;n(r.status===_t.done),r.status===_t.notStarted&&r.runMigration().then(o=>{o===_i.migrated&&i&&(e==null||e())}).finally(()=>{n(!0)})},[r]),t}function Ii(e,t){const n=nr().getRequired(X.instanceScope.vizInstance);return x.useEffect(()=>n.instanceData.watchItem(null,r=>{e(r)}),[e,t.viz.type]),n}function fg({setVizConf:e,...t}){const{panel:n}=t,r=Ii(e,n),i=Di(()=>{it.showNotification({title:`${n.title} - Updated`,message:"Your plugin configuration has been migrated to the latest version"})});return W.useAsyncEffect(async()=>{await r.instanceData.setItem(null,n.viz.conf)},[r,n.viz.type]),i?a(fs,{...t}):a(s.Text,{children:"Checking update..."})}function hg(e){const{panel:t,setVizConf:n}=e;return Ii(n,t),Di(()=>{it.showNotification({title:`${t.title} - Updated`,message:"Your plugin configuration has been migrated to the latest version"})})?a(ps,{...e}):a(s.Text,{children:"Checking update"})}const gf="";function mg(e,t){const{vizManager:n}=x.useContext(Se),{panel:{viz:r,title:i,id:o,description:l,queryID:u,variables:d}}=ee(),g={title:i,id:o,description:l,queryID:u,viz:r,layout:t},c=Mi(g);try{return n.resolveComponent(r.type),a(ot,{configure:c,children:a(hg,{setVizConf:r.setConf,panel:g,data:e,variables:d,vizManager:n})})}catch(f){return console.info(w.get(f,"message")),null}}const vg=["richText","button"],Vi=I.observer(function({height:t,viz:n,data:r,loading:i,error:o}){const{ref:l,width:u,height:d}=ie.useElementSize(),g=S.default.useMemo(()=>!Array.isArray(r)||r.length===0,[r]),c=mg(r,{w:u,h:d});return vg.includes(n.type)?a("div",{className:"viz-root",style:{height:t},ref:l,children:a(qe,{children:c})}):i?a("div",{className:"viz-root",style:{height:t},ref:l,children:a(s.LoadingOverlay,{visible:i,exitTransitionDuration:0})}):p("div",{className:"viz-root",style:{height:t},ref:l,children:[o&&a(s.Text,{color:"red",size:"md",align:"center",sx:{fontFamily:"monospace"},children:o}),!o&&g&&a(s.Text,{color:"gray",align:"center",children:"Empty Data"}),!g&&a(qe,{children:c})]})}),yg=I.observer(()=>{const{data:e,loading:t,panel:{viz:n}}=ee();return a(Vi,{viz:n,data:e,loading:t,height:"100%"})}),$n=[];function bg(){const{vizManager:e}=x.useContext(Se);return x.useMemo(()=>e.availableVizList.map(t=>({value:t.name,label:t.displayName})).concat($n),[e])}function Cg(e,t){try{return e.resolveComponent(t).createConfig()}catch{return null}}function wg(){const{data:e,panel:{variables:t,viz:n,title:r,queryID:i,description:o,setDescription:l,setTitle:u,setQueryID:d,id:g}}=ee(),{vizManager:c}=x.useContext(Se),f={title:r,description:o,viz:n,queryID:i,id:g},h={setDescription:l,setQueryID:d,setTitle:u},v=Mi(f);try{return c.resolveComponent(f.viz.type),a(ot,{configure:v,children:a(fg,{variables:t,setVizConf:n.setConf,panel:f,panelInfoEditor:h,vizManager:c,data:e})})}catch(C){return console.info(w.get(C,"message")),null}}const xg=I.observer(()=>{const{data:e,panel:{viz:t}}=ee(),[n,r]=ie.useInputState(t.type),i=t.type!==n,{vizManager:o}=x.useContext(Se),l=S.default.useCallback(()=>{if(!i)return;const v=Cg(o,n);t.setType(n),t.setConf(v||{})},[t,i,n]),u=v=>{try{t.setConf(JSON.parse(v))}catch(C){console.error(C)}},d=S.default.useMemo(()=>{var v;return(v=$n.find(C=>C.value===n))==null?void 0:v.Panel},[n,$n]),g=wg(),c=d?x.createElement(d,{data:e,conf:t.conf,setConf:t.setConf}):null,f=g||c,h=bg();return p(U,{children:[a(s.Select,{label:"Visualization",value:n,onChange:r,data:h,rightSection:a(s.ActionIcon,{disabled:!i,onClick:l,children:a(k.DeviceFloppy,{size:20})})}),f,!f&&a(s.JsonInput,{minRows:20,label:"Config",value:JSON.stringify(t.conf,null,2),onChange:u})]})});function Sg(){return p(s.Group,{grow:!0,noWrap:!0,align:"stretch",sx:{height:"100%",overflow:"hidden"},children:[a(s.Stack,{sx:{width:"40%",flexShrink:0,flexGrow:0,overflow:"scroll",height:"100%"},children:a(xg,{})}),a(s.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:a(yg,{})})]})}const _g=y.types.model("VariableModel",{name:y.types.string,size:y.types.string,weight:y.types.string,color:y.types.union(y.types.model({type:y.types.literal("static"),staticColor:y.types.string}),y.types.model({type:y.types.literal("continuous"),valueRange:y.types.array(y.types.number),colorRange:y.types.array(y.types.string)}),y.types.model({type:y.types.literal("piecewise")})),formatter:y.types.model({output:y.types.enumeration("Output",["number","percent"]),mantissa:y.types.number,average:y.types.optional(y.types.boolean,!1),trimMantissa:y.types.optional(y.types.boolean,!1)}),data_field:y.types.string,aggregation:y.types.union(y.types.model({type:y.types.enumeration(["none","sum","mean","median","min","max"]),config:y.types.frozen()}),y.types.model({type:y.types.literal("quantile"),config:y.types.model({p:y.types.number})}))}).views(e=>({get json(){return y.getSnapshot(e)}}));class Mg{constructor(t){R(this,"origin");R(this,"copy");this.origin=t,this.copy=y.clone(t),Z.makeAutoObservable(this,{},{autoBind:!0,deep:!1})}get changed(){return!w.isEqual(y.getSnapshot(this.origin),y.getSnapshot(this.copy))}commit(){y.applySnapshot(this.origin,y.getSnapshot(this.copy))}update(t){y.applySnapshot(this.copy,t)}}const Dg=e=>new Mg(e),Fn={name:"new_var",size:"1rem",weight:"initial",color:{type:"static",staticColor:"Red"},data_field:"",aggregation:{type:"sum",config:{}},formatter:{output:"number",mantissa:0,trimMantissa:!1,average:!1}};class Ig{constructor(t){R(this,"panel");R(this,"selected");this.panel=t,Z.makeAutoObservable(this,{},{deep:!1,autoBind:!0})}get variables(){return this.panel.variables}addNew(){const t=this.panel.variables.filter(n=>n.name.startsWith(Fn.name)).length;this.panel.addVariable(w.cloneDeep({...Fn,name:`${Fn.name}${t||""}`})),this.selected=w.last(this.panel.variables)}select(t){this.selected=t}remove(t){this.selected===t&&(this.selected=void 0);const n=this.panel.variables.indexOf(t);if(this.panel.removeVariable(t),!this.selected&&!w.isEmpty(this.panel.variables)){const r=Math.min(this.panel.variables.length-1,n);this.selected=this.panel.variables[r]}}}function Vg(){const{panel:e}=ee();return W.useCreation(()=>new Ig(e),[e])}const Eg=S.default.forwardRef(function({value:t,onChange:n,data:r,withStyle:i=!0},o){const l=(u,d)=>{const g=j.default.cloneDeep(t);j.default.set(g,u,d),n(g)};return p(s.Box,{px:"sm",py:"md",ref:o,children:[p(s.Group,{grow:!0,noWrap:!0,children:[a(s.TextInput,{label:"Name",required:!0,value:t.name,onChange:u=>l("name",u.currentTarget.value)}),a(Q,{label:"Data Field",required:!0,data:r,value:t.data_field,onChange:u=>l("data_field",u)})]}),a(Er,{label:"Aggregation",value:t.aggregation,onChange:u=>l("aggregation",u)}),a(s.Divider,{my:"xs",label:"Format",labelPosition:"center"}),a(ct,{value:t.formatter,onChange:u=>l("formatter",u)}),i&&a(kr,{value:t,onChange:n})]})}),Ei=s.createStyles(e=>({root:{height:"100%",overflow:"hidden",".var-list-container":{"& > *":{height:"100%"},width:250,height:"100%"},".var-list-actions":{height:"fit-content",flexShrink:0,width:"100%"},".var-list":{flex:"1 1 auto",overflow:"auto",minHeight:0,"& > *":{flex:"0 0 auto"}}},config:{height:"100%",overflow:"auto",paddingRight:10}})),kg=e=>{const{uiModel:t}=e;return a(s.Stack,{className:"var-list",children:t.variables.map(n=>a(s.Button,{variant:t.selected===n?"filled":"subtle",color:"gray",onClick:()=>t.select(n),children:n.name},n.name))})},Ag=I.observer(kg),Tg=({variable:e,data:t})=>a(s.Group,{style:{minHeight:0,height:"calc(100% - 68px)"},children:a(s.Paper,{withBorder:!0,p:"md",children:Xr(e,t)})}),Rg=I.observer(Tg),$g=e=>{const t=W.useCreation(()=>Dg(e.variable),[e.variable]),{classes:n}=Ei(),{data:r}=ee();return p(s.Group,{style:{height:"100%"},align:"start",children:[p(s.Stack,{"data-testid":"variable-editor",align:"stretch",className:n.config,children:[p(s.Group,{position:"right",children:[a(s.ActionIcon,{variant:"filled",disabled:!t.changed,color:"primary",onClick:t.commit,children:a(vo,{})}),a(s.ActionIcon,{color:"red",onClick:()=>e.uiModel.remove(e.variable),children:a(fr,{})})]}),a(Eg,{value:y.getSnapshot(t.copy),onChange:t.update,data:r})]}),a(Rg,{variable:y.getSnapshot(t.copy),data:r})]})},Fg=I.observer($g),zg=()=>{const e=Vg(),{classes:t}=Ei();return p(s.Group,{className:t.root,noWrap:!0,align:"start",children:[a(s.Paper,{withBorder:!0,p:"md",className:"var-list-container",children:p(s.Stack,{justify:"space-between",children:[a(s.Box,{className:"var-list-actions",children:a(s.Button,{variant:"light",size:"sm",onClick:e.addNew,fullWidth:!0,children:"Add Variable"})}),a(Ag,{uiModel:e})]})}),e.selected?a(U,{children:a(Fg,{uiModel:e,variable:e.selected})}):a("span",{children:"Select or create a new variable on right side"})]})},Og=I.observer(zg),Pg=I.observer(function({opened:t,close:n}){const{freezeLayout:r}=S.default.useContext(ye),[i,o]=x.useState("Visualization"),{panel:l,loading:u}=ee(),{id:d,title:g}=l;return S.default.useEffect(()=>{r(t)},[t]),a(s.Modal,{size:"96vw",overflow:"inside",opened:t,onClose:n,title:`Editing Panel - ${g.trim()?g:d}`,trapFocus:!0,onDragStart:c=>{c.stopPropagation()},children:a(s.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:p(s.Tabs,{value:i,onTabChange:o,className:"panel-settings-tabs",children:[p(s.Tabs.List,{children:[a(s.Tabs.Tab,{value:"Data",children:"Data"}),a(s.Tabs.Tab,{value:"Panel",children:"Panel"}),a(s.Tabs.Tab,{value:"Variables",children:"Variables"}),a(s.Tabs.Tab,{value:"Visualization",children:"Visualization"}),a(s.Tabs.Tab,{value:"Interactions",children:"Interactions"})]}),p(s.Tabs.Panel,{value:"Data",pt:"sm",children:[a(s.LoadingOverlay,{visible:u,exitTransitionDuration:0}),a(gg,{})]}),a(s.Tabs.Panel,{value:"Panel",pt:"sm",children:i==="Panel"&&a(cg,{})}),a(s.Tabs.Panel,{value:"Variables",pt:"sm",children:i==="Variables"&&a(Og,{})}),a(s.Tabs.Panel,{value:"Visualization",pt:"sm",children:i==="Visualization"&&a(Sg,{})}),a(s.Tabs.Panel,{value:"Interactions",pt:"sm",children:a(qe,{children:a(og,{})})})]})})})}),Gg=I.observer(({view:e})=>{const t=B(),n=_e.useModals(),[r,i]=S.default.useState(!1),o=()=>i(!0),l=()=>i(!1),{panel:u}=ee(),{id:d,query:g}=u,{inEditMode:c}=S.default.useContext(ye),f=()=>g==null?void 0:g.fetchData(),{viewPanelInFullScreen:h,inFullScreen:v}=S.default.useContext(Pt),C=()=>{e.panels.duplicateByID(d)},b=()=>n.openConfirmModal({title:"Delete this panel?",labels:{confirm:"Confirm",cancel:"Cancel"},onCancel:()=>console.log("Cancel"),onConfirm:()=>e.panels.removeByID(d)}),_=S.default.useCallback(()=>{h(d)},[d,h]);return p(U,{children:[a(s.Box,{sx:{position:"absolute",top:0,left:0,right:0,zIndex:300},children:p(s.Menu,{withinPortal:!0,children:[a(s.Menu.Target,{children:a(s.Box,{className:"panel-dropdown-target",sx:{width:"100%",height:"25px"}})}),p(s.Menu.Dropdown,{children:[a(s.Menu.Item,{onClick:f,icon:a(k.Refresh,{size:14}),children:"Refresh"}),a(s.Menu.Item,{onClick:()=>t.queries.downloadDataByQueryID(g),icon:a(k.Download,{size:14}),children:"Download Data"}),!v&&a(s.Menu.Item,{onClick:_,icon:a(k.ArrowsMaximize,{size:14}),children:"Full Screen"}),c&&p(U,{children:[a(s.Divider,{label:"Edit",labelPosition:"center"}),a(s.Menu.Item,{onClick:o,icon:a(k.Settings,{size:14}),children:"Settings"}),a(s.Menu.Item,{onClick:C,icon:a(k.Copy,{size:14}),children:"Duplicate"}),a(s.Menu.Item,{color:"red",onClick:b,icon:a(k.Trash,{size:14}),children:"Delete"})]})]})]})}),c&&a(Pg,{opened:r,close:l})]})}),pf="",Ng=I.observer(function(){const{panel:t}=ee(),{title:n}=t;return n?a(s.Group,{grow:!0,position:"center",px:20,className:"panel-title-wrapper",sx:{flexGrow:1},children:a(s.Text,{align:"center",lineClamp:1,weight:"bold",children:n})}):null});function Lg(e){return!["richText","button"].includes(e)}const qg={border:"1px solid #e9ecef"},ki={border:"1px dashed transparent",transition:"border-color 300ms ease","&:hover":{borderColor:"#e9ecef"}};function Bg(e,t,n){return e.style.border.enabled?qg:n||t?ki:{border:"1px dashed transparent"}}const Mt=I.observer(function({panel:t,view:n}){const r=B(),{inEditMode:i}=x.useContext(ye),{data:o,state:l,error:u}=r.getDataStuffByID(t.queryID),d=Lg(t.viz.type),g=d&&l==="loading",c=t.title?"calc(100% - 25px - 5px)":"100%",f=Bg(t,d,i),h=d||i;return a(or,{value:{panel:t,data:o,loading:g},children:p(s.Box,{className:"panel-root",p:5,pt:0,sx:{...f},children:[a(s.Box,{sx:{position:"absolute",left:0,top:0,height:28,zIndex:310},children:a(_r,{})}),h&&a(Gg,{view:n}),a(Ng,{}),a(Vi,{viz:t.viz,data:o,loading:g,error:u,height:c})]})})}),Ai=I.observer(function({view:t,panel:n,exitFullScreen:r}){return p(s.Stack,{px:"10px",pb:"5px",sx:{height:"100%",flexGrow:1,justifyContent:"flex-start"},children:[a(s.Group,{mx:"-5px",sx:{flexGrow:0},children:a(s.Button,{variant:"default",size:"sm",onClick:r,leftIcon:a(k.ArrowLeft,{size:20}),children:"Exit fullscreen"})}),a(s.Group,{mx:"-5px",grow:!0,sx:{flexGrow:1,flexShrink:0},children:a(Mt,{view:t,panel:n})})]})});function Ti(e,t,n){const r=e.id==="Main",[i,o]=S.default.useState(()=>r&&e.panels.findByID(t)?t:null),l=S.default.useCallback(c=>{o(c),r&&n(c)},[r,n]),u=S.default.useCallback(()=>{o(null),r&&n("")},[r,n]),d=i?e.panels.findByID(i):null;return{viewPanelInFullScreen:l,exitFullScreen:u,inFullScreen:!!d,fullScreenPanel:d}}function Ri(){S.default.useEffect(()=>{const e=Ga.default(".dashboard-sticky-area",{useStickyClasses:!0,parentClass:"dashboard-sticky-parent"});return()=>{e==null||e.cleanup()}},[])}const ff="",jg=S.default.forwardRef(({handleAxis:e},t)=>a(s.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:a(k.ArrowsMove,{size:16})})),Wg=S.default.forwardRef(({handleAxis:e,...t},n)=>a(s.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:a(k.ChevronDownRight,{size:16})})),Ug=$t.WidthProvider(Kn.default),Yg=I.observer(function({view:t,className:n="layout",rowHeight:r=10,isDraggable:i,isResizable:o}){const l=S.default.useCallback(u=>{u.forEach(({i:d,...g})=>{const c=t.panels.findByID(d);!c||c.layout.set(g)})},[t]);return a(Ug,{onLayoutChange:l,className:`dashboard-layout ${n}`,rowHeight:r,layout:t.panels.layouts,isDraggable:i,isResizable:o,draggableHandle:".react-grid-customDragHandle",resizeHandle:a(Wg,{}),children:t.panels.list.map((u,d)=>p("div",{"data-grid":{...u.layout},style:{position:"relative"},children:[i&&a(jg,{}),a(Mt,{view:t,panel:u})]},u.id))})}),Hg=$t.WidthProvider(Kn.default),Qg=I.observer(function({view:t,className:n="layout",rowHeight:r=10}){return a(Hg,{className:`dashboard-layout ${n}`,rowHeight:r,isDraggable:!1,isResizable:!1,layout:t.panels.layouts,children:t.panels.list.map(i=>a("div",{"data-grid":i.layout,children:a(Mt,{view:t,panel:i})},i.id))})}),Jg=I.observer(({children:e})=>a(s.Box,{children:e})),Xg=I.observer(({children:e,view:t})=>a(s.Modal,{size:t.config.width,overflow:"inside",opened:!0,onClose:j.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})),Kg=I.observer(({view:e,children:t})=>{switch(e.type){case fe.Modal:return a(Xg,{view:e,children:t});case fe.Division:default:return a(Jg,{children:t})}}),$i=I.observer(function({view:t,saveDashboardChanges:n,fullScreenPanelID:r,setFullScreenPanelID:i}){const{viewPanelInFullScreen:o,exitFullScreen:l,inFullScreen:u,fullScreenPanel:d}=Ti(t,r,i);return Ri(),a(Pt.Provider,{value:{viewPanelInFullScreen:o,inFullScreen:u},children:p(s.Box,{className:"dashboard-view",mx:-10,sx:{position:"relative",height:"100%"},children:[u&&a(Ai,{view:t,panel:d,exitFullScreen:l}),!u&&a(Sr,{saveChanges:n}),a(Kg,{view:t,children:p(s.Box,{className:"dashboard-sticky-parent",children:[!u&&a(s.Box,{className:"dashboard-sticky-area",children:a(ur,{view:t})}),!u&&a(Yg,{view:t,isDraggable:!0,isResizable:!0})]})})]})})}),Zg=I.observer(({children:e})=>a(s.Box,{children:e})),ep=I.observer(({children:e,view:t})=>{const n=B(),r=n.views.visibleViewIDs.includes(t.id),i=()=>n.views.rmVisibleViewID(t.id);return a(s.Modal,{size:t.config.width,centered:!0,overflow:"inside",opened:r,onClose:i,withCloseButton:!1,title:t.name,trapFocus:!0,onDragStart:o=>{o.stopPropagation()},styles:{modal:{border:"1px solid #efefef"},body:{maxHeight:t.config.height,overflow:"scroll"}},transitionDuration:0,children:e})}),tp=I.observer(({view:e,children:t})=>{switch(e.type){case fe.Modal:return a(ep,{view:e,children:t});case fe.Division:default:return a(Zg,{children:t})}}),Fi=I.observer(function({view:t,fullScreenPanelID:n,setFullScreenPanelID:r}){const{viewPanelInFullScreen:i,exitFullScreen:o,inFullScreen:l,fullScreenPanel:u}=Ti(t,n,r);return Ri(),a(Pt.Provider,{value:{viewPanelInFullScreen:i,inFullScreen:l},children:p(s.Box,{className:"dashboard-view",mx:-10,sx:{position:"relative",height:"100%"},children:[l&&a(Ai,{view:t,panel:u,exitFullScreen:o}),!l&&a(Sr,{saveChanges:j.default.noop}),a(tp,{view:t,children:p(s.Box,{className:"dashboard-sticky-parent",children:[!l&&a(s.Box,{className:"dashboard-sticky-area",children:a(ur,{view:t})}),!l&&a(Qg,{view:t})]})})]})})}),zi=y.types.model("FilterConfigModel_Checkbox",{_name:y.types.literal("checkbox"),default_value:y.types.boolean}).actions(e=>({setDefaultValue(t){e.default_value=t}})),np=()=>zi.create({_name:"checkbox",default_value:!1}),rp=y.types.model("FilterConfigModel_DateRange",{_name:y.types.literal("date-range"),required:y.types.boolean,inputFormat:y.types.enumeration("DateRangeInputFormat",["YYYY","YYYYMM","YYYYMMDD","YYYY-MM","YYYY-MM-DD"]),default_value:y.types.optional(y.types.array(y.types.union(y.types.string,y.types.null)),[null,null]),clearable:y.types.boolean}).actions(e=>({setRequired(t){e.required=t},setClearable(t){e.clearable=t},setInputFormat(t){e.inputFormat=t},setDefaultValue(t){e.default_value.length=0,e.default_value.push(...t)}})),Oi=y.types.snapshotProcessor(rp,{preProcessor({default_value:e,...t}){return{...t,default_value:e.map(n=>n===null?null:Ee.default.tz(n,"UTC").toISOString())}},postProcessor({default_value:e,...t}){return{...t,default_value:e.map(n=>{try{return n?Ee.default.tz(n,"UTC").format(t.inputFormat):null}catch{return console.log(`[date-range] failed parsing ${n}`),null}})}}}),ip=()=>Oi.create({_name:"date-range",required:!1,inputFormat:"YYYY-MM-DD",clearable:!1,default_value:[null,null]}),ap=y.types.model({label:y.types.string,value:y.types.string}).actions(e=>({setLabel(t){e.label=t},setValue(t){e.value=t}})),Pi=y.types.model("FilterConfigModel_BaseSelect",{static_options:y.types.optional(y.types.array(ap),[]),options_query_id:y.types.optional(y.types.string,""),select_first_by_default:y.types.optional(y.types.boolean,!1)}).views(e=>({get options(){const{options_query_id:t,static_options:n}=e;if(!t)return n;const{data:r,state:i,error:o}=y.getRoot(e).getDataStuffByID(t);return i==="idle"?r:[]}})).actions(e=>({addStaticOption(t){e.static_options.push(t)},removeStaticOption(t){e.static_options.splice(t,1)},setSelectFirstByDefault(t){e.select_first_by_default=t},setOptionsQueryID(t){e.options_query_id=t}})),Gi=y.types.compose("FilterConfigModel_MultiSelect",y.types.model({_name:y.types.literal("multi-select"),default_value:y.types.optional(y.types.array(y.types.string),[]),min_width:y.types.optional(y.types.string,"")}),Pi).actions(e=>({setDefaultValue(t){e.default_value=y.cast(t)},setMinWidth(t){e.min_width=t}})),op=()=>Gi.create({_name:"multi-select",default_value:[],static_options:[],options_query_id:"",select_first_by_default:!1}),Ni=y.types.compose("FilterConfigModel_Select",y.types.model({_name:y.types.literal("select"),default_value:y.types.string,required:y.types.boolean,width:y.types.optional(y.types.string,"")}),Pi).actions(e=>({setRequired(t){e.required=t},setDefaultValue(t){e.default_value=t},setWidth(t){e.width=t}})),sp=()=>Ni.create({_name:"select",required:!1,default_value:"",static_options:[],options_query_id:"",select_first_by_default:!1}),zn=y.types.model("FilterModel",{id:y.types.identifier,key:y.types.string,label:y.types.string,order:y.types.number,visibleInViewsIDs:y.types.array(y.types.string),type:y.types.enumeration("DashboardFilterType",[pe.Select,pe.MultiSelect,pe.TextInput,pe.Checkbox,pe.DateRange]),config:y.types.union(Ni,Gi,hr,zi,Oi)}).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 pe.Select:e.config=sp();break;case pe.MultiSelect:e.config=op();break;case pe.TextInput:e.config=mr();break;case pe.Checkbox:e.config=np();break;case pe.DateRange:e.config=ip();break}e.type=t},setVisibleInViewsIDs(t){e.visibleInViewsIDs.length=0,e.visibleInViewsIDs.push(...t)}}));function Li(e,t){if(e===void 0)return e;if(Array.isArray(e))try{return e.map(n=>{const r=Ee.default.tz(n,"UTC").format(t.inputFormat);return r!=null?r:n})}catch(n){return console.error(n),e}return e}function qi(e){return e.reduce((t,n)=>(t[n.key]=Li(n.config.default_value,n.config),t),{})}function lp(e,t,n){y.addDisposer(e,y.addMiddleware(e,(r,i)=>{i(r,()=>{y.getType(r.context)===t&&r.type==="action"&&n(r.name,r.context)})}))}const Bi=y.types.model("FiltersModel",{current:y.types.optional(y.types.array(zn),[]),values:y.types.optional(y.types.frozen(),{}),previewValues:y.types.optional(y.types.frozen(),{})}).views(e=>({get firstID(){if(e.current.length!==0)return e.current[0].id},get inOrder(){return j.default.sortBy(e.current,"order")},get empty(){return e.current.length===0},visibleInView(t){return j.default.sortBy(e.current.filter(n=>n.visibleInViewsIDs.includes(t)),"order")},get firstFilterValueKey(){var t;return(t=Object.keys(e.values)[0])!=null?t:""}})).actions(e=>({replace(t){e.current=y.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},setValues(t){e.values=t},setValueByKey(t,n){e.values={...e.values,[t]:n}},getValueByKey(t){return e.values[t]},refreshValues(){console.log("refreshing values"),e.values=qi(e.current)},updatePreviewValues(t){e.previewValues=t}})).actions(e=>{function t(){lp(e.current,zn,(n,r)=>{if(n==="setType"){const i=Li(r.config.default_value,r.config);e.setValueByKey(r.key,i),e.updatePreviewValues({...e.previewValues,[r.key]:i})}})}return{afterCreate(){t()}}});function ji(e){return{current:e,values:qi(e)}}const up=y.types.model("QueryModel",{id:y.types.string,type:y.types.enumeration("DataSourceType",[Te.Postgresql,Te.MySQL,Te.HTTP]),key:y.types.string,sql:y.types.string}).views(e=>({get valid(){return e.id&&e.type&&e.key&&e.sql},get configurations(){const{id:t,type:n,key:r,sql:i}=e;return{id:t,type:n,key:r,sql:i}}})),Wi=y.types.compose("QueryModel",up,y.types.model({state:y.types.optional(y.types.enumeration(["idle","loading","error"]),"idle"),data:y.types.optional(y.types.array(y.types.frozen()),[]),error:y.types.frozen()})).views(e=>({get formattedSQL(){const{context:t,mock_context:n,sqlSnippets:r,filterValues:i}=y.getRoot(e).payloadForSQL;return gr(e.sql,t,n,r,i)}})).views(e=>({get json(){const{id:t,type:n,key:r,sql:i}=e;return{id:t,type:n,key:r,sql:i}}})).actions(e=>({setID(t){e.id=t},setKey(t){e.key=t},setType(t){e.type=t},setSQL(t){e.sql=t},fetchData:y.flow(function*(){if(!!e.valid){e.state="loading";try{const t=e.id,{context:n,mock_context:r,sqlSnippets:i,filterValues:o}=y.getRoot(e).payloadForSQL;e.data=yield*y.toGenerator(oo({context:n,mock_context:r,sqlSnippets:i,title:t,query:{type:e.type,key:e.key,sql:e.sql},filterValues:o})),e.state="idle",e.error=null}catch(t){e.data.length=0,e.error=w.get(t,"response.data.detail.message","unknown error"),e.state="error"}}})})).actions(e=>({afterCreate(){y.addDisposer(e,Z.reaction(()=>`${e.id}--${e.key}--${e.type}--${e.formattedSQL}`,e.fetchData,{fireImmediately:!0,delay:500}))}})),Ui=y.types.model("QueriesModel",{current:y.types.optional(y.types.array(Wi),[])}).views(e=>({get firstID(){if(e.current.length!==0)return e.current[0].id},findByID(t){return e.current.find(n=>n.id===t)},get options(){return e.current.filter(t=>t.id).map(t=>({value:t.id,label:t.id}))}})).views(e=>({get json(){return e.current.map(t=>t.json)}})).actions(e=>({replace(t){e.current=y.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},replaceByIndex(t,n){e.current.splice(t,1,n)},downloadAllData(){const t=e.current.map(({id:n,data:r})=>({id:n,data:r.toJSON()}));Ka(t)},downloadDataByQueryID(t){if(!t){console.log("[downloadDataByQueryID] query not found");return}const{id:n,data:r}=t,i=dr(r);Ja(n,i)},refetchDataByQueryID(t){const n=e.findByID(t);if(!n){console.error(new Error(`[downloadDataByQueryID] query by ID[${t}] not found`));return}return n.fetchData()},removeQuery(t){const n=e.current.find(r=>r.id===t);n&&(y.detach(n),e.current.remove(n))}})),Yi=y.types.model("SQLSnippetModel",{key:y.types.string,value:y.types.string}).views(e=>({get json(){const{key:t,value:n}=e;return{key:t,value:n}}})).actions(e=>({setKey(t){e.key=t},setValue(t){e.value=t}})),Hi=y.types.model("SQLSnippetsModel",{current:y.types.optional(y.types.array(Yi),[])}).views(e=>({get json(){return e.current.map(t=>t.json)},get record(){return e.current.reduce((t,n)=>(t[n.key]=n.value,t),{})}})).actions(e=>({replace(t){e.current=y.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},replaceByIndex(t,n){e.current.splice(t,1,n)}})),Qi=y.types.model("ContextModel",{current:y.types.optional(y.types.frozen(),{})}).views(e=>({get keys(){return Object.keys(e.current)},get entries(){return Object.entries(e.current)}})).actions(e=>({replace(t){e.current=t},get(t){return e.current[t]},set(t,n){e.current[t]=n}})),dp=y.types.model("MockContextModel",{current:y.types.optional(y.types.frozen(),{})}).views(e=>({get keys(){return Object.keys(e.current)},get entries(){return Object.entries(e.current)}})).actions(e=>({replace(t){e.current=t},get(t){return e.current[t]},set(t,n){e.current[t]=n}})),cp=y.types.model("PanelLayoutModel",{x:y.types.number,y:y.types.number,w:y.types.number,h:y.types.number,moved:y.types.optional(y.types.boolean,!1),static:y.types.optional(y.types.boolean,!1)}).views(e=>({get json(){const{x:t,y:n,w:r,h:i,moved:o}=e;return{x:t,y:n,w:r,h:i,moved:o,static:e.static}}})).actions(e=>({set(t){const{x:n,y:r,w:i,h:o,moved:l}=t;e.x=n,e.y=r,e.w=i,e.h=o,e.moved=!!l,e.static=!!t.static}})),gp=y.types.model("PanelStyleBorderModel",{enabled:y.types.boolean}).views(e=>({get json(){const{enabled:t}=e;return{enabled:t}}})).actions(e=>({setEnabled(t){e.enabled=t}})),pp=y.types.model("PanelStyleModel",{border:gp}).views(e=>({get json(){const{border:t}=e;return{border:t.json}}})).actions(e=>({})),fp=y.types.model("PanelVizModel",{type:y.types.string,conf:y.types.frozen()}).views(e=>({get json(){return{type:e.type,conf:e.conf}}})).actions(e=>({setType(t){e.type=t},setConf(t){e.conf=t}})),hp=y.types.model({id:y.types.string,title:y.types.string,description:y.types.string,layout:cp,queryID:y.types.string,viz:fp,style:pp,variables:y.types.optional(y.types.array(_g),[])}).views(e=>({get query(){return y.getParentOfType(e,Dt).queries.findByID(e.queryID)},get json(){const{id:t,title:n,description:r,queryID:i}=e;return{id:t,title:n,description:r,layout:e.layout.json,queryID:i,viz:e.viz.json,style:e.style.json,variables:e.variables.map(o=>o.json)}}})).actions(e=>({setID(t){e.id=t},setTitle(t){e.title=t},setDescription(t){e.description=t},setQueryID(t){if(y.getParentOfType(e,Dt).queries.findByID(t))e.queryID=t;else throw new Error(`Query with id ${t} does not exist`)},addVariable(t){e.variables.push(t)},removeVariable(t){e.variables.remove(t)}})),mp=y.types.model("PanelsModel",{list:y.types.optional(y.types.array(hp),[])}).views(e=>({get json(){return e.list.map(t=>t.json)},get layouts(){return e.list.map(t=>({...t.layout.json,i:t.id}))},findByID(t){return e.list.find(n=>n.id===t)}})).actions(e=>({replace(t){e.list=y.castToSnapshot(t)},addANewPanel(){const t=ie.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:kn.name,conf:kn.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:ie.randomId(),layout:{...n.layout,x:0,y:1/0,moved:!1}})},replaceByIndex(t,n){e.list.splice(t,1,n)}})),Ji=y.types.model({id:y.types.identifier,name:y.types.string,type:y.types.string,config:y.types.frozen(),panels:mp}).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===fe.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=>({})),Xi=y.types.model("ViewsModel",{current:y.types.optional(y.types.array(Ji),[]),visibleViewIDs:y.types.array(y.types.string),idOfVIE:y.types.string}).views(e=>({get json(){return e.current.map(t=>t.json)},findByID(t){return e.current.find(n=>n.id===t)},get isVIETheFirstView(){return e.current.length===0||!e.idOfVIE?!1:e.current[0].id===e.idOfVIE},get firstVisibleView(){const[t]=e.visibleViewIDs;return e.current.find(({id:n})=>n===t)},get visibleViews(){const t=new Set(e.visibleViewIDs);return e.current.filter(({id:n})=>t.has(n))},get VIE(){return e.current.find(({id:t})=>t===e.idOfVIE)},get options(){return e.current.map(t=>({label:t.name,value:t.id,type:t.type}))}})).actions(e=>({replace(t){e.current.replace(t)},addANewView(t,n,r){e.current.push({id:t,name:t,type:n,config:r,panels:{list:[]}})},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},removeByID(t){const n=e.current.findIndex(r=>r.id===t);n!==-1&&e.current.splice(n,1)},replaceByIndex(t,n){e.current.splice(t,1,n)},setIDOfVIE(t){e.idOfVIE=t,e.visibleViewIDs.length=0,e.visibleViewIDs.push(t)},addAPanelToVIE(){var t;(t=e.VIE)==null||t.panels.addANewPanel()},appendToVisibles(t){new Set(e.visibleViewIDs.map(r=>r)).has(t)||e.visibleViewIDs.push(t)}})).actions(e=>({addARandomNewView(){const t=ie.randomId();e.addANewView(t,fe.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 Ki(e){const t=e.length>0?[e[0].id]:[],n=e.length>0?e[0].id:"";return{current:e.map(i=>({...i,panels:{list:i.panels}})),visibleViewIDs:t,idOfVIE:n}}const vp=y.types.model({id:y.types.identifier,name:y.types.string,version:y.types.string,filters:Bi,queries:Ui,sqlSnippets:Hi,views:Xi,context:Qi,mock_context:dp,origin:y.types.maybe(y.types.frozen())}).views(e=>({get filtersChanged(){const t="filters.current";return!w.isEqual(y.getSnapshot(w.get(e,t)),w.get(e.origin,t))},get queriesChanged(){const t="queries.current",n=y.getSnapshot(w.get(e,t)).map(r=>w.pick(r,["id","key","type","sql"]));return!w.isEqual(n,w.get(e.origin,t))},get sqlSnippetsChanged(){const t="sqlSnippets.current";return!w.isEqual(y.getSnapshot(w.get(e,t)),w.get(e.origin,t))},get viewsChanged(){const t="views.current";return!w.isEqual(y.getSnapshot(w.get(e,t)),w.get(e.origin,t))},get mockContextChanged(){const t="mock_context.current";return!w.isEqual(w.get(e,t),w.get(e.origin,t))}})).views(e=>({get payloadForSQL(){return{context:e.context.current,mock_context:e.mock_context.current,sqlSnippets:e.sqlSnippets.current,filterValues:e.filters.values}},get changed(){return e.filtersChanged||e.queriesChanged||e.sqlSnippetsChanged||e.viewsChanged||e.mockContextChanged},get data(){return e.queries.current.map(({id:n,data:r})=>({id:n,data:r})).reduce((n,r)=>(n[r.id]=r.data,n),{})},getDataStuffByID(t){const n=e.queries.findByID(t);return n?{data:n.data.toJSON(),state:n.state,error:n.error}:{data:[],state:"idle",error:void 0}},getDataStateByID(t){var n,r;return(r=(n=e.queries.findByID(t))==null?void 0:n.state)!=null?r:[]},getDataErrorByID(t){var n,r;return(r=(n=e.queries.findByID(t))==null?void 0:n.error)!=null?r:[]}})).views(e=>({findDependingPanels(t){return e.views.current.flatMap(n=>n.panels.list.filter(r=>r.queryID===t).map(r=>r.title))}})).actions(e=>({reset(){y.applySnapshot(e.filters.current,e.origin.filters.current),y.applySnapshot(e.queries.current,e.origin.queries.current),y.applySnapshot(e.sqlSnippets.current,e.origin.sqlSnippets.current),y.applySnapshot(e.views.current,e.origin.views.current),e.mock_context.current=e.origin.mock_context.current},resetFilters(){y.applySnapshot(e.filters.current,e.origin.filters.current)}})),Dt=y.types.snapshotProcessor(vp,{preProcessor(e){return{...e,origin:e}},postProcessor(e){delete e.origin;const t=y.castToSnapshot(e.queries.current.map(n=>w.pick(n,["id","key","type","sql"])));return w.defaults({},{queries:{current:t}},e)}});function On({id:e,name:t,version:n,filters:r,views:i,definition:{queries:o,sqlSnippets:l,mock_context:u={}}},d){return Dt.create({id:e,name:t,version:n,filters:ji(r),queries:{current:o},sqlSnippets:{current:l},context:{current:d},mock_context:{current:u},views:Ki(i)})}function Pn(e){return S.default.useCallback(t=>t.provideValue(X.pluginManager,e.pluginManager).provideValue(X.vizManager,e.vizManager).provideValue(X.colorManager,e.colorManager),[])}const hf="",yp=I.observer(function({context:t,dashboard:n,update:r,className:i="dashboard",config:o,fullScreenPanelID:l,setFullScreenPanelID:u}){pr(o);const[d,g]=S.default.useState(!1),c=S.default.useMemo(()=>On(n,t),[n]);Zn(c,!0),S.default.useEffect(()=>{c.context.replace(t)},[t]);const f=async()=>{const C=[...c.queries.json],b=[...c.sqlSnippets.json],_=[...c.views.json],A={...c.mock_context.current},T={...n,filters:[...c.filters.current],views:_,definition:{sqlSnippets:b,queries:C,mock_context:A}};await r(T)},h=W.useCreation(Tn,[]),v=Pn(h);return a(_e.ModalsProvider,{children:a(Gt,{value:c,children:a(ye.Provider,{value:{layoutFrozen:d,freezeLayout:g,inEditMode:!0,inUseMode:!1},children:a(s.Box,{className:`${i} dashboard-root`,sx:{position:"relative"},children:a(Se.Provider,{value:h,children:a(ot,{configure:v,children:c.views.visibleViews.map(C=>a($i,{view:C,saveDashboardChanges:f,fullScreenPanelID:l,setFullScreenPanelID:u},C.id))})})})})})})}),bp=I.observer(({context:e,dashboard:t,className:n="dashboard",config:r,fullScreenPanelID:i,setFullScreenPanelID:o})=>{pr(r);const l=S.default.useMemo(()=>On(t,e),[t]);Zn(l,!1),S.default.useEffect(()=>{l.context.replace(e)},[e]);const u=W.useCreation(Tn,[]),d=Pn(u);return a(_e.ModalsProvider,{children:a(Gt,{value:l,children:a(ye.Provider,{value:{layoutFrozen:!0,freezeLayout:j.default.noop,inEditMode:!1,inUseMode:!0},children:a(s.Box,{className:`${n} dashboard-root dashboard-sticky-parent`,children:a(Se.Provider,{value:u,children:a(ot,{configure:d,children:l.views.visibleViews.map(g=>a(Fi,{view:g,fullScreenPanelID:i,setFullScreenPanelID:o},g.id))})})})})})})});var Zi={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(Ne,function(){var n={year:0,month:1,day:2,hour:3,minute:4,second:5},r={};return function(i,o,l){var u,d=function(h,v,C){C===void 0&&(C={});var b=new Date(h),_=function(A,T){T===void 0&&(T={});var F=T.timeZoneName||"short",O=A+"|"+F,q=r[O];return q||(q=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:A,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:F}),r[O]=q),q}(v,C);return _.formatToParts(b)},g=function(h,v){for(var C=d(h,v),b=[],_=0;_<C.length;_+=1){var A=C[_],T=A.type,F=A.value,O=n[T];O>=0&&(b[O]=parseInt(F,10))}var q=b[3],ae=q===24?0:q,ne=b[0]+"-"+b[1]+"-"+b[2]+" "+ae+":"+b[4]+":"+b[5]+":000",me=+h;return(l.utc(ne).valueOf()-(me-=me%1e3))/6e4},c=o.prototype;c.tz=function(h,v){h===void 0&&(h=u);var C=this.utcOffset(),b=this.toDate(),_=b.toLocaleString("en-US",{timeZone:h}),A=Math.round((b-new Date(_))/1e3/60),T=l(_).$set("millisecond",this.$ms).utcOffset(15*-Math.round(b.getTimezoneOffset()/15)-A,!0);if(v){var F=T.utcOffset();T=T.add(C-F,"minute")}return T.$x.$timezone=h,T},c.offsetName=function(h){var v=this.$x.$timezone||l.tz.guess(),C=d(this.valueOf(),v,{timeZoneName:h}).find(function(b){return b.type.toLowerCase()==="timezonename"});return C&&C.value};var f=c.startOf;c.startOf=function(h,v){if(!this.$x||!this.$x.$timezone)return f.call(this,h,v);var C=l(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return f.call(C,h,v).tz(this.$x.$timezone,!0)},l.tz=function(h,v,C){var b=C&&v,_=C||v||u,A=g(+l(),_);if(typeof h!="string")return l(h).tz(_);var T=function(ae,ne,me){var le=ae-60*ne*1e3,Ce=g(le,me);if(ne===Ce)return[le,ne];var re=g(le-=60*(Ce-ne)*1e3,me);return Ce===re?[le,Ce]:[ae-60*Math.min(Ce,re)*1e3,Math.max(Ce,re)]}(l.utc(h,b).valueOf(),A,_),F=T[0],O=T[1],q=l(F).utcOffset(O);return q.$x.$timezone=_,q},l.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},l.tz.setDefault=function(h){u=h}}})})(Zi);const Cp=Zi.exports;var ea={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(Ne,function(){var n="minute",r=/[+-]\d\d(?::?\d\d)?/g,i=/([+-]|\d\d)/g;return function(o,l,u){var d=l.prototype;u.utc=function(b){var _={date:b,utc:!0,args:arguments};return new l(_)},d.utc=function(b){var _=u(this.toDate(),{locale:this.$L,utc:!0});return b?_.add(this.utcOffset(),n):_},d.local=function(){return u(this.toDate(),{locale:this.$L,utc:!1})};var g=d.parse;d.parse=function(b){b.utc&&(this.$u=!0),this.$utils().u(b.$offset)||(this.$offset=b.$offset),g.call(this,b)};var c=d.init;d.init=function(){if(this.$u){var b=this.$d;this.$y=b.getUTCFullYear(),this.$M=b.getUTCMonth(),this.$D=b.getUTCDate(),this.$W=b.getUTCDay(),this.$H=b.getUTCHours(),this.$m=b.getUTCMinutes(),this.$s=b.getUTCSeconds(),this.$ms=b.getUTCMilliseconds()}else c.call(this)};var f=d.utcOffset;d.utcOffset=function(b,_){var A=this.$utils().u;if(A(b))return this.$u?0:A(this.$offset)?f.call(this):this.$offset;if(typeof b=="string"&&(b=function(q){q===void 0&&(q="");var ae=q.match(r);if(!ae)return null;var ne=(""+ae[0]).match(i)||["-",0,0],me=ne[0],le=60*+ne[1]+ +ne[2];return le===0?0:me==="+"?le:-le}(b),b===null))return this;var T=Math.abs(b)<=16?60*b:b,F=this;if(_)return F.$offset=T,F.$u=b===0,F;if(b!==0){var O=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(F=this.local().add(T+O,n)).$offset=T,F.$x.$localOffset=O}else F=this.utc();return F};var h=d.format;d.format=function(b){var _=b||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return h.call(this,_)},d.valueOf=function(){var b=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*b},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(b){return b==="s"&&this.$offset?u(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():v.call(this)};var C=d.diff;d.diff=function(b,_,A){if(b&&this.$u===b.$u)return C.call(this,b,_,A);var T=this.local(),F=u(b).local();return C.call(T,F,_,A)}}})})(ea);const wp=ea.exports;Ee.default.extend(wp),Ee.default.extend(Cp),Ee.default.tz.setDefault("UTC"),V.ContextModel=Qi,V.Dashboard=yp,V.DashboardFilterType=Cr,V.DashboardMode=br,V.DashboardModel=Dt,V.EViewComponentType=fe,V.FilterModel=zn,V.FiltersModel=Bi,V.LayoutStateContext=ye,V.MainDashboardView=$i,V.ModelContextProvider=Gt,V.Panel=Mt,V.PanelContextProvider=or,V.QueriesModel=Ui,V.QueryModel=Wi,V.ReadOnlyDashboard=bp,V.ReadOnlyDashboardView=Fi,V.SQLSnippetModel=Yi,V.SQLSnippetsModel=Hi,V.ViewModel=Ji,V.ViewsModel=Xi,V.createDashboardModel=On,V.createDashboardViewsModel=Ki,V.getInitialFiltersPayload=ji,V.useModelContext=B,V.usePanelContext=ee,V.useTopLevelServices=Pn,Object.defineProperties(V,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
90
|
+
color: hsl(`+Math.max(0,Math.min(120-120*f,120))+"deg 100% 31%);",n==null?void 0:n.key)}return a}}function $c(e,t,n,r){var a,o;const u={...e._getDefaultColumnDef(),...t},c=u.accessorKey;let g=(a=(o=u.id)!=null?o:c?c.replace(".","_"):void 0)!=null?a:typeof u.header=="string"?u.header:void 0,d;if(u.accessorFn?d=u.accessorFn:c&&(c.includes(".")?d=h=>{let v=h;for(const C of c.split("."))v=v[C];return v}:d=h=>h[u.accessorKey]),!g)throw process.env.NODE_ENV!=="production"?new Error(u.accessorFn?"Columns require an id when using an accessorFn":"Columns require an id when using a non-string header"):new Error;let f={id:""+String(g),accessorFn:d,parent:r,depth:n,columnDef:u,columns:[],getFlatColumns:z(()=>[!0],()=>{var h;return[f,...(h=f.columns)==null?void 0:h.flatMap(v=>v.getFlatColumns())]},{key:process.env.NODE_ENV==="production"&&"column.getFlatColumns",debug:()=>{var h;return(h=e.options.debugAll)!=null?h:e.options.debugColumns}}),getLeafColumns:z(()=>[e._getOrderColumnsFn()],h=>{var v;if((v=f.columns)!=null&&v.length){let C=f.columns.flatMap(b=>b.getLeafColumns());return h(C)}return[f]},{key:process.env.NODE_ENV==="production"&&"column.getLeafColumns",debug:()=>{var h;return(h=e.options.debugAll)!=null?h:e.options.debugColumns}})};return f=e._features.reduce((h,v)=>Object.assign(h,v.createColumn==null?void 0:v.createColumn(f,e)),f),f}function li(e,t,n){var r;let o={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 l=[],u=c=>{c.subHeaders&&c.subHeaders.length&&c.subHeaders.map(u),l.push(c)};return u(o),l},getContext:()=>({table:e,header:o,column:t})};return e._features.forEach(l=>{Object.assign(o,l.createHeader==null?void 0:l.createHeader(o,e))}),o}const Fc={createTable:e=>({getHeaderGroups:z(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,a)=>{var o,l;const u=(o=r==null?void 0:r.map(f=>n.find(h=>h.id===f)).filter(Boolean))!=null?o:[],c=(l=a==null?void 0:a.map(f=>n.find(h=>h.id===f)).filter(Boolean))!=null?l:[],g=n.filter(f=>!(r!=null&&r.includes(f.id))&&!(a!=null&&a.includes(f.id)));return Ct(t,[...u,...g,...c],e)},{key:process.env.NODE_ENV==="development"&&"getHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getCenterHeaderGroups:z(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r,a)=>(n=n.filter(o=>!(r!=null&&r.includes(o.id))&&!(a!=null&&a.includes(o.id))),Ct(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:z(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.left],(t,n,r)=>{var a;const o=(a=r==null?void 0:r.map(l=>n.find(u=>u.id===l)).filter(Boolean))!=null?a:[];return Ct(t,o,e,"left")},{key:process.env.NODE_ENV==="development"&&"getLeftHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getRightHeaderGroups:z(()=>[e.getAllColumns(),e.getVisibleLeafColumns(),e.getState().columnPinning.right],(t,n,r)=>{var a;const o=(a=r==null?void 0:r.map(l=>n.find(u=>u.id===l)).filter(Boolean))!=null?a:[];return Ct(t,o,e,"right")},{key:process.env.NODE_ENV==="development"&&"getRightHeaderGroups",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}}),getFooterGroups:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[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:z(()=>[e.getLeftHeaderGroups(),e.getCenterHeaderGroups(),e.getRightHeaderGroups()],(t,n,r)=>{var a,o,l,u,c,g;return[...(a=(o=t[0])==null?void 0:o.headers)!=null?a:[],...(l=(u=n[0])==null?void 0:u.headers)!=null?l:[],...(c=(g=r[0])==null?void 0:g.headers)!=null?c:[]].map(d=>d.getLeafHeaders()).flat()},{key:process.env.NODE_ENV==="development"&&"getLeafHeaders",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugHeaders}})})};function Ct(e,t,n,r){var a,o;let l=0;const u=function(h,v){v===void 0&&(v=1),l=Math.max(l,v),h.filter(C=>C.getIsVisible()).forEach(C=>{var b;(b=C.columns)!=null&&b.length&&u(C.columns,v+1)},0)};u(e);let c=[];const g=(h,v)=>{const C={depth:v,id:[r,""+v].filter(Boolean).join("_"),headers:[]},b=[];h.forEach(S=>{const T=[...b].reverse()[0],A=S.column.depth===C.depth;let F,O=!1;if(A&&S.column.parent?F=S.column.parent:(F=S.column,O=!0),T&&(T==null?void 0:T.column)===F)T.subHeaders.push(S);else{const q=li(n,F,{id:[r,v,F.id,S==null?void 0:S.id].filter(Boolean).join("_"),isPlaceholder:O,placeholderId:O?""+b.filter(ae=>ae.column===F).length:void 0,depth:v,index:b.length});q.subHeaders.push(S),b.push(q)}C.headers.push(S),S.headerGroup=C}),c.push(C),v>0&&g(b,v-1)},d=t.map((h,v)=>li(n,h,{depth:l,index:v}));g(d,l-1),c.reverse();const f=h=>h.filter(C=>C.column.getIsVisible()).map(C=>{let b=0,S=0,T=[0];C.subHeaders&&C.subHeaders.length?(T=[],f(C.subHeaders).forEach(F=>{let{colSpan:O,rowSpan:q}=F;b+=O,T.push(q)})):b=1;const A=Math.min(...T);return S=S+A,C.colSpan=b,C.rowSpan=S,{colSpan:b,rowSpan:S}});return f((a=(o=c[0])==null?void 0:o.headers)!=null?a:[]),c}const wt={size:150,minSize:20,maxSize:Number.MAX_SAFE_INTEGER},vn=()=>({startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,isResizingColumn:!1,columnSizingStart:[]}),zc={getDefaultColumnDef:()=>wt,getInitialState:e=>({columnSizing:{},columnSizingInfo:vn(),...e}),getDefaultOptions:e=>({columnResizeMode:"onEnd",onColumnSizingChange:he("columnSizing",e),onColumnSizingInfoChange:he("columnSizingInfo",e)}),createColumn:(e,t)=>({getSize:()=>{var n,r,a;const o=t.getState().columnSizing[e.id];return Math.min(Math.max((n=e.columnDef.minSize)!=null?n:wt.minSize,(r=o!=null?o:e.columnDef.size)!=null?r:wt.size),(a=e.columnDef.maxSize)!=null?a:wt.maxSize)},getStart:n=>{const r=n?n==="left"?t.getLeftVisibleLeafColumns():t.getRightVisibleLeafColumns():t.getVisibleLeafColumns(),a=r.findIndex(o=>o.id===e.id);if(a>0){const o=r[a-1];return o.getStart(n)+o.getSize()}return 0},resetSize:()=>{t.setColumnSizing(n=>{let{[e.id]:r,...a}=n;return a})},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=a=>{if(a.subHeaders.length)a.subHeaders.forEach(r);else{var o;n+=(o=a.column.getSize())!=null?o: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 a=>{if(!r||(a.persist==null||a.persist(),yn(a)&&a.touches&&a.touches.length>1))return;const o=e.getSize(),l=e?e.getLeafHeaders().map(v=>[v.column.id,v.column.getSize()]):[[n.id,n.getSize()]],u=yn(a)?Math.round(a.touches[0].clientX):a.clientX,c=(v,C)=>{if(typeof C!="number")return;let b={};t.setColumnSizingInfo(S=>{var T,A;const F=C-((T=S==null?void 0:S.startOffset)!=null?T:0),O=Math.max(F/((A=S==null?void 0:S.startSize)!=null?A:0),-.999999);return S.columnSizingStart.forEach(q=>{let[ae,ne]=q;b[ae]=Math.round(Math.max(ne+ne*O,0)*100)/100}),{...S,deltaOffset:F,deltaPercentage:O}}),(t.options.columnResizeMode==="onChange"||v==="end")&&t.setColumnSizing(S=>({...S,...b}))},g=v=>c("move",v),d=v=>{c("end",v),t.setColumnSizingInfo(C=>({...C,isResizingColumn:!1,startOffset:null,startSize:null,deltaOffset:null,deltaPercentage:null,columnSizingStart:[]}))},f={moveHandler:v=>g(v.clientX),upHandler:v=>{document.removeEventListener("mousemove",f.moveHandler),document.removeEventListener("mouseup",f.upHandler),d(v.clientX)}},h=Oc()?{passive:!1}:!1;yn(a)||(document.addEventListener("mousemove",f.moveHandler,h),document.addEventListener("mouseup",f.upHandler,h)),t.setColumnSizingInfo(v=>({...v,startOffset:u,startSize:o,deltaOffset:0,deltaPercentage:0,columnSizingStart:l,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?vn():(n=e.initialState.columnSizingInfo)!=null?n:vn())},getTotalSize:()=>{var t,n;return(t=(n=e.getHeaderGroups()[0])==null?void 0:n.headers.reduce((r,a)=>r+a.getSize(),0))!=null?t:0},getLeftTotalSize:()=>{var t,n;return(t=(n=e.getLeftHeaderGroups()[0])==null?void 0:n.headers.reduce((r,a)=>r+a.getSize(),0))!=null?t:0},getCenterTotalSize:()=>{var t,n;return(t=(n=e.getCenterHeaderGroups()[0])==null?void 0:n.headers.reduce((r,a)=>r+a.getSize(),0))!=null?t:0},getRightTotalSize:()=>{var t,n;return(t=(n=e.getRightHeaderGroups()[0])==null?void 0:n.headers.reduce((r,a)=>r+a.getSize(),0))!=null?t:0}})};let xt=null;function Oc(){if(typeof xt=="boolean")return xt;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 xt=e,xt}function yn(e){return e.type==="touchstart"}const Pc={getInitialState:e=>({expanded:{},...e}),getDefaultOptions:e=>({onExpandedChange:he("expanded",e),paginateExpandedRows:!0}),createTable:e=>{let t=!1,n=!1;return{_autoResetExpanded:()=>{var r,a;if(!t){e._queue(()=>{t=!0});return}if((r=(a=e.options.autoResetAll)!=null?a: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 a,o;e.setExpanded(r?{}:(a=(o=e.initialState)==null?void 0:o.expanded)!=null?a:{})},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(a=>a.getIsExpanded()))},getExpandedDepth:()=>{let r=0;return(e.getState().expanded===!0?Object.keys(e.getRowModel().rowsById):Object.keys(e.getState().expanded)).forEach(o=>{const l=o.split(".");r=Math.max(r,l.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 a;const o=r===!0?!0:!!(r!=null&&r[e.id]);let l={};if(r===!0?Object.keys(t.getRowModel().rowsById).forEach(u=>{l[u]=!0}):l=r,n=(a=n)!=null?a:!o,!o&&n)return{...l,[e.id]:!0};if(o&&!n){const{[e.id]:u,...c}=l;return c}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,a;return(n=t.options.getRowCanExpand==null?void 0:t.options.getRowCanExpand(e))!=null?n:((r=t.options.enableExpanding)!=null?r:!0)&&!!((a=e.subRows)!=null&&a.length)},getToggleExpandedHandler:()=>{const n=e.getCanExpand();return()=>{!n||e.toggleExpanded()}}})},ui=(e,t,n)=>{var r;const a=n.toLowerCase();return(r=e.getValue(t))==null?void 0:r.toLowerCase().includes(a)};ui.autoRemove=e=>be(e);const ci=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};ci.autoRemove=e=>be(e);const di=(e,t,n)=>{var r;return((r=e.getValue(t))==null?void 0:r.toLowerCase())===n.toLowerCase()};di.autoRemove=e=>be(e);const gi=(e,t,n)=>{var r;return(r=e.getValue(t))==null?void 0:r.includes(n)};gi.autoRemove=e=>be(e)||!(e!=null&&e.length);const pi=(e,t,n)=>!n.some(r=>{var a;return!((a=e.getValue(t))!=null&&a.includes(r))});pi.autoRemove=e=>be(e)||!(e!=null&&e.length);const fi=(e,t,n)=>n.some(r=>{var a;return(a=e.getValue(t))==null?void 0:a.includes(r)});fi.autoRemove=e=>be(e)||!(e!=null&&e.length);const hi=(e,t,n)=>e.getValue(t)===n;hi.autoRemove=e=>be(e);const mi=(e,t,n)=>e.getValue(t)==n;mi.autoRemove=e=>be(e);const bn=(e,t,n)=>{let[r,a]=n;const o=e.getValue(t);return o>=r&&o<=a};bn.resolveFilterValue=e=>{let[t,n]=e,r=typeof t!="number"?parseFloat(t):t,a=typeof n!="number"?parseFloat(n):n,o=t===null||Number.isNaN(r)?-1/0:r,l=n===null||Number.isNaN(a)?1/0:a;if(o>l){const u=o;o=l,l=u}return[o,l]},bn.autoRemove=e=>be(e)||be(e[0])&&be(e[1]);const De={includesString:ui,includesStringSensitive:ci,equalsString:di,arrIncludes:gi,arrIncludesAll:pi,arrIncludesSome:fi,equals:hi,weakEquals:mi,inNumberRange:bn};function be(e){return e==null||e===""}const Nc={getDefaultColumnDef:()=>({filterFn:"auto"}),getInitialState:e=>({columnFilters:[],globalFilter:void 0,...e}),getDefaultOptions:e=>({onColumnFiltersChange:he("columnFilters",e),onGlobalFilterChange:he("globalFilter",e),filterFromLeafRows:!1,globalFilterFn:"auto",getColumnCanGlobalFilter:t=>{var n,r;const a=(n=e.getCoreRowModel().flatRows[0])==null||(r=n._getAllCellsByColumnId()[t.id])==null?void 0:r.getValue();return typeof a=="string"||typeof a=="number"}}),createColumn:(e,t)=>({getAutoFilterFn:()=>{const n=t.getCoreRowModel().flatRows[0],r=n==null?void 0:n.getValue(e.id);return typeof r=="string"?De.includesString:typeof r=="number"?De.inNumberRange:typeof r=="boolean"||r!==null&&typeof r=="object"?De.equals:Array.isArray(r)?De.arrIncludes:De.weakEquals},getFilterFn:()=>{var n,r;return bt(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:De[e.columnDef.filterFn]},getCanFilter:()=>{var n,r,a;return((n=e.columnDef.enableColumnFilter)!=null?n:!0)&&((r=t.options.enableColumnFilters)!=null?r:!0)&&((a=t.options.enableFilters)!=null?a:!0)&&!!e.accessorFn},getCanGlobalFilter:()=>{var n,r,a,o;return((n=e.columnDef.enableGlobalFilter)!=null?n:!0)&&((r=t.options.enableGlobalFilter)!=null?r:!0)&&((a=t.options.enableFilters)!=null?a:!0)&&((o=t.options.getColumnCanGlobalFilter==null?void 0:t.options.getColumnCanGlobalFilter(e))!=null?o:!0)&&!!e.accessorFn},getIsFiltered:()=>e.getFilterIndex()>-1,getFilterValue:()=>{var n,r;return(n=t.getState().columnFilters)==null||(r=n.find(a=>a.id===e.id))==null?void 0:r.value},getFilterIndex:()=>{var n,r;return(n=(r=t.getState().columnFilters)==null?void 0:r.findIndex(a=>a.id===e.id))!=null?n:-1},setFilterValue:n=>{t.setColumnFilters(r=>{const a=e.getFilterFn(),o=r==null?void 0:r.find(d=>d.id===e.id),l=ze(n,o?o.value:void 0);if(vi(a,l,e)){var u;return(u=r==null?void 0:r.filter(d=>d.id!==e.id))!=null?u:[]}const c={id:e.id,value:l};if(o){var g;return(g=r==null?void 0:r.map(d=>d.id===e.id?c:d))!=null?g:[]}return r!=null&&r.length?[...r,c]:[c]})},_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:()=>De.includesString,getGlobalFilterFn:()=>{var t,n;const{globalFilterFn:r}=e.options;return bt(r)?r:r==="auto"?e.getGlobalAutoFilterFn():(t=(n=e.options.filterFns)==null?void 0:n[r])!=null?t:De[r]},setColumnFilters:t=>{const n=e.getAllLeafColumns(),r=a=>{var o;return(o=ze(t,a))==null?void 0:o.filter(l=>{const u=n.find(c=>c.id===l.id);if(u){const c=u.getFilterFn();if(vi(c,l.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 vi(e,t,n){return(e&&e.autoRemove?e.autoRemove(t,n):!1)||typeof t>"u"||typeof t=="string"&&!t}const Cn={sum:(e,t,n)=>n.reduce((r,a)=>{const o=a.getValue(e);return r+(typeof o=="number"?o:0)},0),min:(e,t,n)=>{let r;return n.forEach(a=>{const o=a.getValue(e);o!=null&&(r>o||r===void 0&&o>=o)&&(r=o)}),r},max:(e,t,n)=>{let r;return n.forEach(a=>{const o=a.getValue(e);o!=null&&(r<o||r===void 0&&o>=o)&&(r=o)}),r},extent:(e,t,n)=>{let r,a;return n.forEach(o=>{const l=o.getValue(e);l!=null&&(r===void 0?l>=l&&(r=a=l):(r>l&&(r=l),a<l&&(a=l)))}),[r,a]},mean:(e,t)=>{let n=0,r=0;if(t.forEach(a=>{let o=a.getValue(e);o!=null&&(o=+o)>=o&&(++n,r+=o)}),n)return r/n},median:(e,t)=>{if(!t.length)return;let n=0,r=0;return t.forEach(a=>{let o=a.getValue(e);typeof o=="number"&&(n=Math.min(n,o),r=Math.max(r,o))}),(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},Gc={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:he("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,a,o;return(n=(r=(a=(o=e.columnDef.enableGrouping)!=null?o:!0)!=null?a: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 Cn.sum;if(Object.prototype.toString.call(r)==="[object Date]")return Cn.extent},getAggregationFn:()=>{var n,r;if(!e)throw new Error;return bt(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:Cn[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 a;return!e.getIsGrouped()&&!e.getIsPlaceholder()&&!!((a=n.subRows)!=null&&a.length)}})};function Lc(e,t,n){if(!(t!=null&&t.length)||!n)return e;const r=e.filter(o=>!t.includes(o.id));return n==="remove"?r:[...t.map(o=>e.find(l=>l.id===o)).filter(Boolean),...r]}const qc={getInitialState:e=>({columnOrder:[],...e}),getDefaultOptions:e=>({onColumnOrderChange:he("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:z(()=>[e.getState().columnOrder,e.getState().grouping,e.options.groupedColumnMode],(t,n,r)=>a=>{let o=[];if(!(t!=null&&t.length))o=a;else{const l=[...t],u=[...a];for(;u.length&&l.length;){const c=l.shift(),g=u.findIndex(d=>d.id===c);g>-1&&o.push(u.splice(g,1)[0])}o=[...o,...u]}return Lc(o,n,r)},{key:process.env.NODE_ENV==="development"&&"getOrderColumnsFn"})})},wn=0,xn=10,Sn=()=>({pageIndex:wn,pageSize:xn}),Bc={getInitialState:e=>({...e,pagination:{...Sn(),...e==null?void 0:e.pagination}}),getDefaultOptions:e=>({onPaginationChange:he("pagination",e)}),createTable:e=>{let t=!1,n=!1;return{_autoResetPageIndex:()=>{var r,a;if(!t){e._queue(()=>{t=!0});return}if((r=(a=e.options.autoResetAll)!=null?a:e.options.autoResetPageIndex)!=null?r:!e.options.manualPagination){if(n)return;n=!0,e._queue(()=>{e.resetPageIndex(),n=!1})}},setPagination:r=>{const a=o=>ze(r,o);return e.options.onPaginationChange==null?void 0:e.options.onPaginationChange(a)},resetPagination:r=>{var a;e.setPagination(r?Sn():(a=e.initialState.pagination)!=null?a:Sn())},setPageIndex:r=>{e.setPagination(a=>{let o=ze(r,a.pageIndex);const l=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return o=Math.min(Math.max(0,o),l),{...a,pageIndex:o}})},resetPageIndex:r=>{var a,o,l;e.setPageIndex(r?wn:(a=(o=e.initialState)==null||(l=o.pagination)==null?void 0:l.pageIndex)!=null?a:wn)},resetPageSize:r=>{var a,o,l;e.setPageSize(r?xn:(a=(o=e.initialState)==null||(l=o.pagination)==null?void 0:l.pageSize)!=null?a:xn)},setPageSize:r=>{e.setPagination(a=>{const o=Math.max(1,ze(r,a.pageSize)),l=a.pageSize*a.pageIndex,u=Math.floor(l/o);return{...a,pageIndex:u,pageSize:o}})},setPageCount:r=>e.setPagination(a=>{var o;let l=ze(r,(o=e.options.pageCount)!=null?o:-1);return typeof l=="number"&&(l=Math.max(-1,l)),{...a,pageCount:l}}),getPageOptions:z(()=>[e.getPageCount()],r=>{let a=[];return r&&r>0&&(a=[...new Array(r)].fill(null).map((o,l)=>l)),a},{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,a=e.getPageCount();return a===-1?!0:a===0?!1:r<a-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)}}}},_n=()=>({left:[],right:[]}),jc={getInitialState:e=>({columnPinning:_n(),...e}),getDefaultOptions:e=>({onColumnPinningChange:he("columnPinning",e)}),createColumn:(e,t)=>({pin:n=>{const r=e.getLeafColumns().map(a=>a.id).filter(Boolean);t.setColumnPinning(a=>{var o,l;if(n==="right"){var u,c;return{left:((u=a==null?void 0:a.left)!=null?u:[]).filter(f=>!(r!=null&&r.includes(f))),right:[...((c=a==null?void 0:a.right)!=null?c:[]).filter(f=>!(r!=null&&r.includes(f))),...r]}}if(n==="left"){var g,d;return{left:[...((g=a==null?void 0:a.left)!=null?g:[]).filter(f=>!(r!=null&&r.includes(f))),...r],right:((d=a==null?void 0:a.right)!=null?d:[]).filter(f=>!(r!=null&&r.includes(f)))}}return{left:((o=a==null?void 0:a.left)!=null?o:[]).filter(f=>!(r!=null&&r.includes(f))),right:((l=a==null?void 0:a.right)!=null?l:[]).filter(f=>!(r!=null&&r.includes(f)))}})},getCanPin:()=>e.getLeafColumns().some(r=>{var a,o;return((a=r.columnDef.enablePinning)!=null?a:!0)&&((o=t.options.enablePinning)!=null?o:!0)}),getIsPinned:()=>{const n=e.getLeafColumns().map(u=>u.id),{left:r,right:a}=t.getState().columnPinning,o=n.some(u=>r==null?void 0:r.includes(u)),l=n.some(u=>a==null?void 0:a.includes(u));return o?"left":l?"right":!1},getPinnedIndex:()=>{var n,r,a;const o=e.getIsPinned();return o?(n=(r=t.getState().columnPinning)==null||(a=r[o])==null?void 0:a.indexOf(e.id))!=null?n:-1:0}}),createRow:(e,t)=>({getCenterVisibleCells:z(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,t.getState().columnPinning.right],(n,r,a)=>{const o=[...r!=null?r:[],...a!=null?a:[]];return n.filter(l=>!o.includes(l.column.id))},{key:process.env.NODE_ENV==="production"&&"row.getCenterVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}}),getLeftVisibleCells:z(()=>[e._getAllVisibleCells(),t.getState().columnPinning.left,,],(n,r)=>(r!=null?r:[]).map(o=>n.find(l=>l.column.id===o)).filter(Boolean).map(o=>({...o,position:"left"})),{key:process.env.NODE_ENV==="production"&&"row.getLeftVisibleCells",debug:()=>{var n;return(n=t.options.debugAll)!=null?n:t.options.debugRows}}),getRightVisibleCells:z(()=>[e._getAllVisibleCells(),t.getState().columnPinning.right],(n,r)=>(r!=null?r:[]).map(o=>n.find(l=>l.column.id===o)).filter(Boolean).map(o=>({...o,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?_n():(n=(r=e.initialState)==null?void 0:r.columnPinning)!=null?n:_n())},getIsSomeColumnsPinned:t=>{var n;const r=e.getState().columnPinning;if(!t){var a,o;return Boolean(((a=r.left)==null?void 0:a.length)||((o=r.right)==null?void 0:o.length))}return Boolean((n=r[t])==null?void 0:n.length)},getLeftLeafColumns:z(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left],(t,n)=>(n!=null?n:[]).map(r=>t.find(a=>a.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:z(()=>[e.getAllLeafColumns(),e.getState().columnPinning.right],(t,n)=>(n!=null?n:[]).map(r=>t.find(a=>a.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:z(()=>[e.getAllLeafColumns(),e.getState().columnPinning.left,e.getState().columnPinning.right],(t,n,r)=>{const a=[...n!=null?n:[],...r!=null?r:[]];return t.filter(o=>!a.includes(o.id))},{key:process.env.NODE_ENV==="development"&&"getCenterLeafColumns",debug:()=>{var t;return(t=e.options.debugAll)!=null?t:e.options.debugColumns}})})},Wc={getInitialState:e=>({rowSelection:{},...e}),getDefaultOptions:e=>({onRowSelectionChange:he("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},a=e.getPreGroupedRowModel().flatRows;return t?a.forEach(o=>{!o.getCanSelect()||(r[o.id]=!0)}):a.forEach(o=>{delete r[o.id]}),r})},toggleAllPageRowsSelected:t=>e.setRowSelection(n=>{const r=typeof t<"u"?t:!e.getIsAllPageRowsSelected(),a={...n};return e.getRowModel().rows.forEach(o=>{Mn(a,o.id,r,e)}),a}),getPreSelectedRowModel:()=>e.getCoreRowModel(),getSelectedRowModel:z(()=>[e.getState().rowSelection,e.getCoreRowModel()],(t,n)=>Object.keys(t).length?Dn(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:z(()=>[e.getState().rowSelection,e.getFilteredRowModel()],(t,n)=>Object.keys(t).length?Dn(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:z(()=>[e.getState().rowSelection,e.getSortedRowModel()],(t,n)=>Object.keys(t).length?Dn(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(a=>a.getCanSelect()&&!n[a.id])&&(r=!1),r},getIsAllPageRowsSelected:()=>{const t=e.getPaginationRowModel().flatRows,{rowSelection:n}=e.getState();let r=!!t.length;return r&&t.some(a=>!n[a.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(a=>{if(n=typeof n<"u"?n:!r,r===n)return a;const o={...a};return Mn(o,e.id,n,t),o})},getIsSelected:()=>{const{rowSelection:n}=t.getState();return In(e,n)},getIsSomeSelected:()=>{const{rowSelection:n}=t.getState();return yi(e,n)==="some"},getIsAllSubRowsSelected:()=>{const{rowSelection:n}=t.getState();return yi(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 a;!n||e.toggleSelected((a=r.target)==null?void 0:a.checked)}}})},Mn=(e,t,n,r)=>{var a;const o=r.getRow(t);n?(o.getCanMultiSelect()||Object.keys(e).forEach(l=>delete e[l]),o.getCanSelect()&&(e[t]=!0)):delete e[t],(a=o.subRows)!=null&&a.length&&o.getCanSelectSubRows()&&o.subRows.forEach(l=>Mn(e,l.id,n,r))};function Dn(e,t){const n=e.getState().rowSelection,r=[],a={},o=function(l,u){return l.map(c=>{var g;const d=In(c,n);if(d&&(r.push(c),a[c.id]=c),(g=c.subRows)!=null&&g.length&&(c={...c,subRows:o(c.subRows)}),d)return c}).filter(Boolean)};return{rows:o(t.rows),flatRows:r,rowsById:a}}function In(e,t){var n;return(n=t[e.id])!=null?n:!1}function yi(e,t,n){if(e.subRows&&e.subRows.length){let r=!0,a=!1;return e.subRows.forEach(o=>{a&&!r||(In(o,t)?a=!0:r=!1)}),r?"all":a?"some":!1}return!1}const Vn=/([0-9]+)/gm,Uc=(e,t,n)=>bi(Oe(e.getValue(n)).toLowerCase(),Oe(t.getValue(n)).toLowerCase()),Yc=(e,t,n)=>bi(Oe(e.getValue(n)),Oe(t.getValue(n))),Hc=(e,t,n)=>En(Oe(e.getValue(n)).toLowerCase(),Oe(t.getValue(n)).toLowerCase()),Qc=(e,t,n)=>En(Oe(e.getValue(n)),Oe(t.getValue(n))),Jc=(e,t,n)=>{const r=e.getValue(n),a=t.getValue(n);return r>a?1:r<a?-1:0},Xc=(e,t,n)=>En(e.getValue(n),t.getValue(n));function En(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 bi(e,t){const n=e.split(Vn).filter(Boolean),r=t.split(Vn).filter(Boolean);for(;n.length&&r.length;){const a=n.shift(),o=r.shift(),l=parseInt(a,10),u=parseInt(o,10),c=[l,u].sort();if(isNaN(c[0])){if(a>o)return 1;if(o>a)return-1;continue}if(isNaN(c[1]))return isNaN(l)?-1:1;if(l>u)return 1;if(u>l)return-1}return n.length-r.length}const nt={alphanumeric:Uc,alphanumericCaseSensitive:Yc,text:Hc,textCaseSensitive:Qc,datetime:Jc,basic:Xc},Ci=[Fc,{getInitialState:e=>({columnVisibility:{},...e}),getDefaultOptions:e=>({onColumnVisibilityChange:he("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:z(()=>[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:z(()=>[e.getLeftVisibleCells(),e.getCenterVisibleCells(),e.getRightVisibleCells()],(n,r,a)=>[...n,...r,...a],{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)=>z(()=>[r(),r().filter(a=>a.getIsVisible()).map(a=>a.id).join("_")],a=>a.filter(o=>o.getIsVisible==null?void 0:o.getIsVisible()),{key:n,debug:()=>{var a;return(a=e.options.debugAll)!=null?a: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((a,o)=>({...a,[o.id]:n||!(o.getCanHide!=null&&o.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)}}}},qc,jc,Nc,{getInitialState:e=>({sorting:[],...e}),getDefaultColumnDef:()=>({sortingFn:"auto"}),getDefaultOptions:e=>({onSortingChange:he("sorting",e),isMultiSortEvent:t=>t.shiftKey}),createColumn:(e,t)=>({getAutoSortingFn:()=>{const n=t.getFilteredRowModel().flatRows.slice(10);let r=!1;for(const a of n){const o=a==null?void 0:a.getValue(e.id);if(Object.prototype.toString.call(o)==="[object Date]")return nt.datetime;if(typeof o=="string"&&(r=!0,o.split(Vn).length>1))return nt.alphanumeric}return r?nt.text:nt.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 bt(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:nt[e.columnDef.sortingFn]},toggleSorting:(n,r)=>{const a=e.getNextSortingOrder(),o=typeof n<"u"&&n!==null;t.setSorting(l=>{const u=l==null?void 0:l.find(v=>v.id===e.id),c=l==null?void 0:l.findIndex(v=>v.id===e.id);let g=[],d,f=o?n:a==="desc";if(l!=null&&l.length&&e.getCanMultiSort()&&r?u?d="toggle":d="add":l!=null&&l.length&&c!==l.length-1?d="replace":u?d="toggle":d="replace",d==="toggle"&&(o||a||(d="remove")),d==="add"){var h;g=[...l,{id:e.id,desc:f}],g.splice(0,g.length-((h=t.options.maxMultiSortColCount)!=null?h:Number.MAX_SAFE_INTEGER))}else d==="toggle"?g=l.map(v=>v.id===e.id?{...v,desc:f}:v):d==="remove"?g=l.filter(v=>v.id!==e.id):g=[{id:e.id,desc:f}];return g})},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,a;const o=e.getFirstSortDir(),l=e.getIsSorted();return l?l!==o&&((r=t.options.enableSortingRemoval)!=null?r:!0)&&(n&&(a=t.options.enableMultiRemove)!=null?a:!0)?!1:l==="desc"?"asc":"desc":o},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(a=>a.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(a=>a.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())})},Gc,Pc,Bc,Wc,zc];function Kc(e){var t;(e.debugAll||e.debugTable)&&console.info("Creating Table Instance...");let n={_features:Ci};const r=n._features.reduce((d,f)=>Object.assign(d,f.getDefaultOptions==null?void 0:f.getDefaultOptions(n)),{}),a=d=>n.options.mergeOptions?n.options.mergeOptions(r,d):{...r,...d};let l={...{},...(t=e.initialState)!=null?t:{}};n._features.forEach(d=>{var f;l=(f=d.getInitialState==null?void 0:d.getInitialState(l))!=null?f:l});const u=[];let c=!1;const g={_features:Ci,options:{...r,...e},initialState:l,_queue:d=>{u.push(d),c||(c=!0,Promise.resolve().then(()=>{for(;u.length;)u.shift()();c=!1}).catch(f=>setTimeout(()=>{throw f})))},reset:()=>{n.setState(n.initialState)},setOptions:d=>{const f=ze(d,n.options);n.options=a(f)},getState:()=>n.options.state,setState:d=>{n.options.onStateChange==null||n.options.onStateChange(d)},_getRowId:(d,f,h)=>{var v;return(v=n.options.getRowId==null?void 0:n.options.getRowId(d,f,h))!=null?v:""+(h?[h.id,f].join("."):f)},getCoreRowModel:()=>(n._getCoreRowModel||(n._getCoreRowModel=n.options.getCoreRowModel(n)),n._getCoreRowModel()),getRowModel:()=>n.getPaginationRowModel(),getRow:d=>{const f=n.getRowModel().rowsById[d];if(!f)throw process.env.NODE_ENV!=="production"?new Error("getRow expected an ID, but got "+d):new Error;return f},_getDefaultColumnDef:z(()=>[n.options.defaultColumn],d=>{var f;return d=(f=d)!=null?f:{},{header:h=>{const v=h.header.column.columnDef;return v.accessorKey?v.accessorKey:v.accessorFn?v.id:null},cell:h=>{var v,C;return(v=(C=h.renderValue())==null||C.toString==null?void 0:C.toString())!=null?v:null},...n._features.reduce((h,v)=>Object.assign(h,v.getDefaultColumnDef==null?void 0:v.getDefaultColumnDef()),{}),...d}},{debug:()=>{var d;return(d=n.options.debugAll)!=null?d:n.options.debugColumns},key:process.env.NODE_ENV==="development"&&"getDefaultColumnDef"}),_getColumnDefs:()=>n.options.columns,getAllColumns:z(()=>[n._getColumnDefs()],d=>{const f=function(h,v,C){return C===void 0&&(C=0),h.map(b=>{const S=$c(n,b,C,v),T=b;return S.columns=T.columns?f(T.columns,S,C+1):[],S})};return f(d)},{key:process.env.NODE_ENV==="development"&&"getAllColumns",debug:()=>{var d;return(d=n.options.debugAll)!=null?d:n.options.debugColumns}}),getAllFlatColumns:z(()=>[n.getAllColumns()],d=>d.flatMap(f=>f.getFlatColumns()),{key:process.env.NODE_ENV==="development"&&"getAllFlatColumns",debug:()=>{var d;return(d=n.options.debugAll)!=null?d:n.options.debugColumns}}),_getAllFlatColumnsById:z(()=>[n.getAllFlatColumns()],d=>d.reduce((f,h)=>(f[h.id]=h,f),{}),{key:process.env.NODE_ENV==="development"&&"getAllFlatColumnsById",debug:()=>{var d;return(d=n.options.debugAll)!=null?d:n.options.debugColumns}}),getAllLeafColumns:z(()=>[n.getAllColumns(),n._getOrderColumnsFn()],(d,f)=>{let h=d.flatMap(v=>v.getLeafColumns());return f(h)},{key:process.env.NODE_ENV==="development"&&"getAllLeafColumns",debug:()=>{var d;return(d=n.options.debugAll)!=null?d:n.options.debugColumns}}),getColumn:d=>{const f=n._getAllFlatColumnsById()[d];if(!f)throw process.env.NODE_ENV!=="production"&&console.warn("[Table] Column with id "+d+" does not exist."),new Error;return f}};return Object.assign(n,g),n._features.forEach(d=>Object.assign(n,d.createTable==null?void 0:d.createTable(n))),n}function Zc(e,t,n,r){const a=()=>{var l;return(l=o.getValue())!=null?l:e.options.renderFallbackValue},o={id:t.id+"_"+n.id,row:t,column:n,getValue:()=>t.getValue(r),renderValue:a,getContext:z(()=>[e,n,t,o],(l,u,c,g)=>({table:l,column:u,row:c,cell:g,getValue:g.getValue,renderValue:g.renderValue}),{key:process.env.NODE_ENV==="development"&&"cell.getContext",debug:()=>e.options.debugAll})};return e._features.forEach(l=>{Object.assign(o,l.createCell==null?void 0:l.createCell(o,n,t,e))},{}),o}const ed=(e,t,n,r,a,o)=>{let l={id:t,index:r,original:n,depth:a,_valuesCache:{},getValue:u=>{if(l._valuesCache.hasOwnProperty(u))return l._valuesCache[u];const c=e.getColumn(u);if(!!c.accessorFn)return l._valuesCache[u]=c.accessorFn(l.original,r),l._valuesCache[u]},renderValue:u=>{var c;return(c=l.getValue(u))!=null?c:e.options.renderFallbackValue},subRows:o!=null?o:[],getLeafRows:()=>Rc(l.subRows,u=>u.subRows),getAllCells:z(()=>[e.getAllLeafColumns()],u=>u.map(c=>Zc(e,l,c,c.id)),{key:process.env.NODE_ENV==="development"&&"row.getAllCells",debug:()=>{var u;return(u=e.options.debugAll)!=null?u:e.options.debugRows}}),_getAllCellsByColumnId:z(()=>[l.getAllCells()],u=>u.reduce((c,g)=>(c[g.column.id]=g,c),{}),{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 c=e._features[u];Object.assign(l,c==null||c.createRow==null?void 0:c.createRow(l,e))}return l};function td(){return{accessor:(e,t)=>typeof e=="function"?{...t,accessorFn:e}:{...t,accessorKey:e},display:e=>e,group:e=>e}}function nd(){return e=>z(()=>[e.options.data],t=>{const n={rows:[],flatRows:[],rowsById:{}},r=function(a,o,l){o===void 0&&(o=0);const u=[];for(let g=0;g<a.length;g++){const d=ed(e,e._getRowId(a[g],g,l),a[g],g,o);if(n.flatRows.push(d),n.rowsById[d.id]=d,u.push(d),e.options.getSubRows){var c;d.originalSubRows=e.options.getSubRows(a[g],g),(c=d.originalSubRows)!=null&&c.length&&(d.subRows=r(d.originalSubRows,o+1,d))}}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 rd(){return e=>z(()=>[e.getState().sorting,e.getPreSortedRowModel()],(t,n)=>{if(!n.rows.length||!(t!=null&&t.length))return n;const r=e.getState().sorting,a=[],o=r.filter(c=>e.getColumn(c.id).getCanSort()),l={};o.forEach(c=>{const g=e.getColumn(c.id);l[c.id]={sortUndefined:g.columnDef.sortUndefined,invertSorting:g.columnDef.invertSorting,sortingFn:g.getSortingFn()}});const u=c=>{const g=c.slice();return g.sort((d,f)=>{for(let v=0;v<o.length;v+=1){var h;const C=o[v],b=l[C.id],S=(h=C==null?void 0:C.desc)!=null?h:!1;if(b.sortUndefined){const A=d.getValue(C.id),F=f.getValue(C.id),O=typeof A>"u",q=typeof F>"u";if(O||q)return O&&q?0:O?b.sortUndefined:-b.sortUndefined}let T=b.sortingFn(d,f,C.id);if(T!==0)return S&&(T*=-1),b.invertSorting&&(T*=-1),T}return d.index-f.index}),g.forEach(d=>{a.push(d),!(!d.subRows||d.subRows.length<=1)&&(d.subRows=u(d.subRows))}),g};return{rows:u(n.rows),flatRows:a,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 wi(e,t){return e?id(e)?i(e,{...t}):e:null}function id(e){return ad(e)||typeof e=="function"||od(e)}function ad(e){return typeof e=="function"&&(()=>{const t=Object.getPrototypeOf(e);return t.prototype&&t.prototype.isReactComponent})()}function od(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function sd(e){const t={state:{},onStateChange:()=>{},renderFallbackValue:null,...e},[n]=Qn.useState(()=>({current:Kc(t)})),[r,a]=Qn.useState(()=>n.current.initialState);return n.current.setOptions(o=>({...o,...e,state:{...r,...e.state},onStateChange:l=>{a(l),e.onStateChange==null||e.onStateChange(l)}})),n.current}function xi(e,t,n){return Math.min(Math.max(e,t),n)}class ld{constructor(t){this.steps=t;const n=[],r=new Set;for(const a of t)r.has(a.to)||(n.push(a),r.add(a.to));if(n.sort((a,o)=>a.from-o.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),a=t.to-r*t.from;return o=>r*o+a}getStepFunctionForValue(t){let n=w.findLastIndex(this.steps,r=>r.from<=t);return n=xi(n,0,this.steps.length-2),this.getLinearFunction(this.steps[n],this.steps[n+1])}mapValue(t){return xi(this.getStepFunctionForValue(t)(t),0,100)}}const ud=({header:e,cx:t})=>p(s.Text,{className:t("table-head-cell",{"table-head-cell--sortable":e.column.getCanSort()}),onClick:e.column.getToggleSortingHandler(),children:[e.isPlaceholder?null:wi(e.column.columnDef.header,e.getContext()),i(cd,{direction:e.column.getIsSorted()})]}),cd=({direction:e})=>{switch(e){case"asc":return i(bo,{size:16});case"desc":return i(vo,{size:"1em"});default:return null}},kn={id:"builtin:table:click-cell-content",displayName:"Click Cell Content",nameRender:hd,configRender:pd,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"}]},dd={column:""};function Si(e){const{value:t}=G(e.instanceData,"config");return t?t.columns.map((n,r)=>({label:n.label,value:r.toString()})):[]}function gd(e){return w.isEmpty(e)?[]:Object.keys(e[0]).map(t=>({label:t,value:t}))}function pd(e){const t=Si(e.instance),n=gd(e.sampleData),r=t.length>0?t:n,{value:a,set:o}=G(e.trigger.triggerData,"config"),{column:l}=w.defaults({},a,dd),u=c=>{isNaN(+c)?o({column:c}):o({column:+c})};return i(s.Select,{clearable:!1,data:r,label:"Choose a column",value:l.toString(),onChange:u})}function fd(e,t){return e?w.isNumber(e.column)?`Click cell of ${t[e.column].label}`:`Click cell of ${e.column}`:"Click cell content (click to config)"}function hd(e){const t=Si(e.instance),{value:n}=G(e.trigger.triggerData,"config");return i(s.Text,{children:fd(n,t)})}const md=s.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}})),vd=s.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 yd(e){return e?Ye.default(e).oklch()[0]>.7?"black":"white":"inherit"}function bd(e){const t=e.tableCellContext.bgColor;return{backgroundColor:t,color:yd(t)}}function St(e){const t=e.tableCellContext.isClickable(),n=vd({clickable:t});return i("div",{className:n.classes.content,style:{...bd(e)},children:i(s.Text,{className:"table-cell-text",onClick:e.tableCellContext.getClickHandler(),children:i("span",{children:e.children})})})}function Cd(e){return i(St,{...e,children:e.value})}function wd(e){return i(St,{...e,children:e.value})}function xd(e){const t=ge.default(e.value).format({thousandSeparated:!0});return i(St,{...e,children:t})}function Sd(e){const t=ge.default(e.value).format({output:"percent",mantissa:3});return i(St,{...e,children:t})}function _d(e){switch(e.type){case Fe.string:return i(Cd,{...e});case Fe.eloc:return i(wd,{...e});case Fe.number:return i(xd,{...e});case Fe.percentage:return i(Sd,{...e})}}const Md=e=>{const t=on(e),n=an(t.triggerManager,kn.id),{colorManager:r}=x.useContext(Se);return x.useCallback(a=>new Id(e.getColIndex,a,n,t,r),[n,t,e.getColIndex])};function Dd({context:e,instance:t}){var me,ue,Ce;const n=(me=e.data)!=null?me:[],{height:r,width:a}=e.viewport,{value:o=yt}=G(e.instanceData,"config"),{use_raw_columns:l,columns:u,...c}=o,{classes:g,cx:d}=md(),f=M.default.useMemo(()=>l?Object.keys(n[0]).map(re=>({label:re,value_field:re,value_type:Fe.string})):u,[l,u,n]),h=Md({getColIndex:x.useCallback(re=>f.indexOf(re.column.columnDef.meta),[f]),vizManager:e.vizManager,instance:t}),v=x.useMemo(()=>{const re=td(),we=f.map(de=>re.accessor(de.value_field,{cell:Pe=>i(_d,{tableCellContext:h(Pe.cell),value:Pe.getValue(),type:de.value_type}),header:de.label,enableSorting:!0,meta:de}));return[re.display({id:"#index",cell:de=>de.row.index+1,header:"#",size:10*(n.length.toString().length+1)}),...we]},[f,h]),[C,b]=x.useState([]),S=sd({data:n,state:{sorting:C},onSortingChange:b,columns:v,getCoreRowModel:nd(),getSortedRowModel:rd()}),{rows:T}=S.getRowModel(),A=M.default.useRef(null),F=Na.useVirtual({parentRef:A,size:T.length,estimateSize:x.useCallback(()=>28,[]),overscan:20}),{virtualItems:O,totalSize:q}=F,ae=O.length>0&&((ue=O==null?void 0:O[0])==null?void 0:ue.start)||0,ne=O.length>0?q-(((Ce=O==null?void 0:O[O.length-1])==null?void 0:Ce.end)||0):0;return i("div",{ref:A,style:{height:r,width:a},className:d(g.root,{"table-highlight-on-hover":o.highlightOnHover}),children:p(s.Table,{sx:{maxHeight:r},...c,striped:o.striped,children:[i("thead",{className:g.thead,children:S.getHeaderGroups().map(re=>i("tr",{children:re.headers.map(we=>i("th",{style:{width:we.getSize()},children:i(ud,{header:we,cx:d})},we.id))},re.id))}),p("tbody",{children:[ae>0&&i("tr",{children:i("td",{style:{height:`${ae}px`}})}),O.map(re=>{const we=T[re.index];return i("tr",{children:we.getVisibleCells().map(ce=>i("td",{children:wi(ce.column.columnDef.cell,ce.getContext())},ce.id))},we.id)}),ne>0&&i("tr",{children:i("td",{style:{height:`${ne}px`}})})]})]})})}class Id{constructor(t,n,r,a,o){this.getColIndex=t,this.cell=n,this.triggers=r,this.interactionManager=a,this.colorManager=o}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===kn.id).filter(n=>{const r=this.getColIndex(this.cell),a=w.get(this.cell.column.columnDef.meta,"value_field"),o=w.get(n.config,"column");return o==r||o==a})}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(w.isString(t))return t;const n=+this.cell.getValue();if(isFinite(n)){const r=this.colorManager.decodeInterpolation(t.interpolation),o=new ld(t.steps).mapValue(n);return r==null?void 0:r.getColor(o)}}}const _i=s.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)"}}}})),Vd=[{from:0,to:0},{from:100,to:100}];class Ed{constructor(){R(this,"steps",new Map);R(this,"interpolation");R(this,"onChange");Z.makeAutoObservable(this,{steps:Z.observable},{deep:!1}),Z.reaction(()=>Z.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(Vd):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 kd(e){const{onChange:t,color:n,index:r,value:a}=e,{classes:o}=_i(),[l,u]=x.useState(a),[c,{setTrue:g,setFalse:d}]=W.useBoolean(!1),f=r%2===1,h=f&&a!=null,v=!f&&a!=null,C=`map ${a} to color ${r}`,b=()=>{u(a),d()},S=()=>{d(),t==null||t(l)},T=ge.default(a).format({average:!0});return p("div",{"data-testid":`palette-item-${r}`,className:o.paletteItem,children:[i(s.Text,{title:C,style:{opacity:h?1:0},color:"dimmed",size:"sm",className:"palette-value--up palette-value",children:T}),p(s.Popover,{width:200,trapFocus:!0,opened:c,onClose:d,children:[i(s.Popover.Target,{children:i("div",{"data-testid":"palette-item-target",className:"palette-item",onClick:g,style:{"--shadow-color":Ye.default(n).alpha(.5).hex(),backgroundColor:n}})}),i(s.Popover.Dropdown,{children:p(s.Stack,{children:[i(s.NumberInput,{size:"xs",label:"Map a value to this color",value:l,onChange:u}),p(s.Group,{position:"right",children:[i(s.Button,{variant:"subtle",size:"xs",onClick:b,children:"Cancel"}),i(s.Button,{"data-testid":"palette-item-ok",size:"xs",onClick:S,children:"OK"})]})]})})]}),i(s.Text,{title:C,style:{opacity:v?1:0},color:"dimmed",size:"sm",className:"palette-value--bottom palette-value",children:T})]})}const Td=I.observer(({model:e})=>{const{classes:t}=_i(),n=w.range(0,13,1).map(r=>100/12*r).map(r=>[e.interpolation.getColor(r),r]);return i("div",{className:t.palette,children:n.map(([r,a],o)=>i(kd,{index:o,color:r,value:e.getStepFromValue(a),onChange:l=>e.changeStep(l,a)},r))})}),Ad=I.observer(function(t){const n=W.useCreation(()=>new Ed,[]);return x.useEffect(()=>{n.fromProps(t)}),n.interpolation==null?null:i(Td,{model:n})}),Rd=e=>{const{value:t,onChange:n,colorManager:r}=e,a=r.getColorInterpolations(),[o,l]=x.useState(t),u=r.decodeInterpolation(o.interpolation)||a[0],[c,{setTrue:g,setFalse:d}]=W.useBoolean(),f=a.map(S=>({label:S.displayName,value:r.encodeColor(S),group:S.category}));function h(S){S&&l(T=>({...T,interpolation:S}))}const v=()=>{d(),n==null||n(Z.toJS(o))};function C(S){l(T=>({...T,steps:S}))}const b=()=>{d(),l(t)};return p(B,{children:[i(s.Button,{variant:"outline",onClick:g,children:u==null?void 0:u.displayName}),i(s.Modal,{size:508,title:"Setup color interpolation",opened:c,onClose:d,children:c&&p(s.Stack,{"data-testid":"color-interpolation-modal",children:[i(s.Select,{label:"Color style",value:o.interpolation,data:f,onChange:h}),i(Ad,{steps:o.steps,interpolation:u,onChange:C}),p(s.Group,{position:"right",children:[i(s.Button,{onClick:b,variant:"subtle",children:"Cancel"}),i(s.Button,{onClick:v,children:"OK"})]})]})})]})},$d=["static","interpolation","none"],Fd=[{from:0,to:0},{from:100,to:100}];function Mi(e){return e?w.isString(e)?e==="none"?"none":"static":"interpolation":"none"}function zd(e,t){var n;return Mi(t)==="static"?t:(n=e.getStaticColors()[0])==null?void 0:n.value}function Od(e,t){return w.isObject(t)?t:{steps:Fd,interpolation:e.encodeColor(e.getColorInterpolations()[0])}}const Pd=e=>{const{colorManager:t}=x.useContext(Se),[n,r]=x.useState(Mi(e.value)),[a,o]=x.useState(zd(t,e.value)),l=W.useLatest(a),[u,c]=x.useState(Od(t,e.value)),g=W.useLatest(u),d=v=>{var C,b,S;r(v||"none"),v==="static"?(C=e.onChange)==null||C.call(e,l.current):v==="none"||!v?(b=e.onChange)==null||b.call(e,"none"):(S=e.onChange)==null||S.call(e,g.current)},f=v=>{var C;o(v),(C=e.onChange)==null||C.call(e,v)},h=v=>{var C;c(v),(C=e.onChange)==null||C.call(e,v)};return p(s.Group,{align:"end",children:[i(s.Select,{label:"Cell background",value:n||"none",onChange:d,data:$d}),n==="static"&&i(Re,{value:a,onChange:f}),n==="interpolation"&&i(Rd,{colorManager:t,value:u,onChange:h})]})},Nd=Object.values(Fe).map(e=>({label:e,value:e}));function Gd({label:e,value:t,onChange:n,sx:r}){return i(s.Select,{label:e,data:Nd,value:t,onChange:n,sx:r})}function Ld({context:e}){const{value:t,set:n}=G(e.instanceData,"config"),r=$t.useForm({initialValues:yt});x.useEffect(()=>{const l=w.defaults({},t,r.values,yt);t&&r.setValues(l)},[t]);const a=e.data||[],o=()=>r.insertListItem("columns",{label:ie.randomId(),value_field:"value",value_type:Fe.string});return i(s.Stack,{mt:"md",spacing:"xs",children:p("form",{onSubmit:r.onSubmit(async l=>{await n(l)}),children:[p(s.Group,{position:"apart",mb:"lg",sx:{position:"relative"},children:[i(s.Text,{children:"Table Config"}),i(s.ActionIcon,{type:"submit","aria-label":"save config",mr:5,variant:"filled",color:"blue",children:i(V.DeviceFloppy,{size:20})})]}),p(s.Stack,{mt:"md",spacing:"xs",p:"md",mb:"sm",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[i(Q,{label:"ID Field",required:!0,data:a,...r.getInputProps("id_field")}),p(s.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:[i(s.TextInput,{label:"Horizontal Spacing",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...r.getInputProps("horizontalSpacing")}),i(s.TextInput,{label:"Vertical Spacing",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...r.getInputProps("verticalSpacing")})]}),i(s.Group,{position:"apart",mb:"lg",grow:!0,sx:{"> *":{flexGrow:1}},children:i(s.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",required:!0,sx:{flex:1},...r.getInputProps("fontSize")})}),p(s.Stack,{children:[i(s.Text,{children:"Other"}),p(s.Group,{position:"apart",grow:!0,children:[i(s.Switch,{label:"Striped",...r.getInputProps("striped",{type:"checkbox"})}),i(s.Switch,{label:"Highlight on hover",...r.getInputProps("highlightOnHover",{type:"checkbox"})})]})]})]}),p(s.Stack,{mt:"xs",spacing:"xs",p:"md",mb:"xl",sx:{border:"1px solid #eee",borderRadius:"5px"},children:[i(s.Switch,{label:"Use Original Data Columns",...r.getInputProps("use_raw_columns",{type:"checkbox"})}),!r.values.use_raw_columns&&p(s.Stack,{children:[i(s.Text,{mt:"xl",mb:0,children:"Custom Columns"}),r.values.columns.map((l,u)=>p(s.Stack,{my:0,p:"md",pr:40,sx:{border:"1px solid #eee",position:"relative"},children:[p(s.Group,{position:"apart",grow:!0,children:[i(s.TextInput,{label:"Label",required:!0,id:`col-label-${u}`,sx:{flex:1},...r.getInputProps(`columns.${u}.label`)}),i(Q,{label:"Value Field",required:!0,data:a,...r.getInputProps(`columns.${u}.value_field`)}),i(Gd,{label:"Value Type",sx:{flex:1},...r.getInputProps(`columns.${u}.value_type`)}),i(Pd,{...r.getInputProps(`columns.${u}.cellBackgroundColor`)})]}),i(s.ActionIcon,{color:"red",variant:"subtle",onClick:()=>r.removeListItem("columns",u),sx:{position:"absolute",top:15,right:5},children:i(V.Trash,{size:16})})]},u)),i(s.Group,{position:"center",mt:"xs",children:i(s.Button,{onClick:o,children:"Add a Column"})})]})]}),i(s.Text,{weight:500,mb:"md",children:"Current Configuration:"}),i(Le.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(r.values,null,2)})]})})}class qd extends le{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Tn={createConfig(){return{version:1,config:w.cloneDeep(yt)}},displayName:"Table",migrator:new qd,name:"table",viewRender:Dd,configRender:Ld,triggers:[kn]};async function Bd(e,t,n,r={}){const a={"X-Requested-With":"XMLHttpRequest","Content-Type":r.string?"application/x-www-form-urlencoded":"application/json",...r.headers},o={baseURL:e,method:"POST",url:t,params:r.params,headers:a};return o.data=r.string?JSON.stringify(n):n,Jn.default(o).then(l=>l.data).catch(l=>Promise.reject(l))}const jd=({conf:e,data:t})=>async()=>{const{expertSystemURL:n,goal:r,question:a}=e;return!n||!r||!a?void 0:await Bd(n,"/expert/v2/devtable",{dashboard:r,panels:[{name:a,data:t}]},{})},An={expertSystemURL:"",goal:"",question:""};function Wd({context:e}){var g;const{value:t}=G(e.instanceData,"config"),n=x.useMemo(()=>w.defaultsDeep({},t,An),[t]),{width:r,height:a}=e.viewport,o=(g=e.data)!=null?g:[],{data:l,error:u,loading:c}=W.useRequest(jd({conf:n,data:o}),{refreshDeps:[JSON.stringify(o),n==null?void 0:n.expertSystemURL]});return!r||!a||!n?null:c?i(s.Box,{sx:{position:"relative",height:a},children:i(s.LoadingOverlay,{visible:!0})}):!l||!Array.isArray(l.replies)||l.replies.length===0?null:i(s.Box,{children:l.replies.map((d,f)=>i("div",{dangerouslySetInnerHTML:{__html:d.interpretation.html}},f))})}function Ud({context:e}){const{value:t,set:n}=G(e.instanceData,"config"),r=x.useMemo(()=>w.defaultsDeep({},t,An),[t]),a=(o,l)=>{n({...r,[o]:l})};return p(s.Stack,{children:[i(s.TextInput,{value:r.expertSystemURL,onChange:o=>{a("expertSystemURL",o.currentTarget.value)},label:"Expert System URL",required:!0}),p(s.Group,{grow:!0,children:[i(s.TextInput,{label:"Goal",value:r.goal,onChange:o=>{a("goal",o.currentTarget.value)},required:!0}),i(s.TextInput,{label:"Question",value:r.question,onChange:o=>{a("question",o.currentTarget.value)},required:!0})]})]})}class Yd extends le{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const Hd={displayName:"Merico GQM",migrator:new Yd,name:"mericoGQM",viewRender:Wd,configRender:Ud,createConfig:()=>An},Qd=[{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"})),Jd=[Cs,ws,_s,Ss,xs,Ms],Di=()=>({id:"dashboard",version:Ds,manifest:{viz:[Tn,Ic,Cc,Ac,Hu,$s,Ml,Bu,Ou,ac,mc,Hd,zl],color:[...Qd,...Jd]}}),rt=new Vs,X={pluginManager:Me("pluginManager"),vizManager:Me("vizManager"),colorManager:Me("colorManager"),instanceScope:{panelModel:Me("panelModel"),vizInstance:Me("vizInstance"),interactionManager:Me("interactionManager"),migrator:Me("migrator"),operationManager:Me("operationManager"),triggerManager:Me("triggerManager")}},Rn=()=>{try{rt.install(Di())}catch{}const e=new vs(rt),t=new Is(rt);return{pluginManager:rt,vizManager:e,colorManager:t}},Se=x.createContext(Rn());try{rt.install(Di())}catch{}function Xd(e,t){const{value:n,set:r}=G(e.operation.operationData,"config"),[a,o]=x.useState(w.defaults({},n,t)),l=async()=>{await r(a)};return x.useEffect(()=>{o(w.defaults({},n,t))},[n]),{config:a,setConfig:o,commit:l}}function Kd(e){const{config:t,setConfig:n,commit:r}=Xd(e,{urlTemplate:"",openInNewTab:!0});async function a(){await r()}async function o(u){n({...t,openInNewTab:u}),await r()}const l=u=>n({...t,urlTemplate:u.currentTarget.value});return p(s.Stack,{children:[i(s.TextInput,{label:"Url",value:t.urlTemplate,onChange:l,onBlur:a}),i(s.Switch,{label:"Open in new Tab",checked:t.openInNewTab,onChange:u=>o(u.currentTarget.checked)})]})}async function Zd(e,t){const{urlTemplate:n,openInNewTab:r}=await t.operationData.getItem("config");window.dispatchEvent(new CustomEvent("open-link",{detail:{urlTemplate:n,openInNewTab:r,payload:e}}))}class eg extends le{constructor(){super(...arguments);R(this,"VERSION",1)}configVersions(){this.version(1,n=>n)}}const tg={displayName:"Open Link",id:"builtin:op:open-link",configRender:Kd,run:Zd,migrator:new eg,createDefaultConfig:()=>({version:1,config:{urlTemplate:"",openInNewTab:!0}})};function ng(e){const{value:t,set:n}=G(e.operationData,"config"),r=a=>void n({template:a});return[(t==null?void 0:t.template)||"",r]}function rg(e){const[t,n]=ng(e.operation);return i(s.TextInput,{defaultValue:t,onBlur:r=>n(r.currentTarget.value),label:"console.log"})}async function ig(e,t){const n=await t.operationData.getItem("config"),r=w.template(n.template||"");console.log("run with payload",e),console.log(r(e))}const ag={displayName:"console.log (debug)",id:"builtin:op:debug",configRender:rg,run:ig},og=I.observer(e=>{const t=j(),{value:n,set:r}=G(e.operation.operationData,"config");console.log({value:n,viewID:n==null?void 0:n.viewID});const a=(n==null?void 0:n.viewID)||"",o=l=>void r({viewID:l});return i(s.Select,{defaultValue:a,value:a,onChange:o,label:"View",data:t.views.options})});async function sg(e,t){const r=(await t.operationData.getItem("config")).viewID;window.dispatchEvent(new CustomEvent("open-view",{detail:{viewID:r}}))}const lg={displayName:"Open View",id:"builtin:op:open_view",configRender:og,run:sg},ug={dictionary:{}},cg=I.observer(e=>{const t=j(),{value:n=ug,set:r}=G(e.operation.operationData,"config"),{dictionary:a={}}=n,o=(c,g)=>{r({dictionary:{...a,[c]:g}})},l=()=>{o(t.filters.firstFilterValueKey,"")},u=c=>{const g={...a};delete g[c],r({dictionary:g})};return console.log(t.filters.values),p(s.Stack,{spacing:10,children:[i(s.Text,{children:"Mapping Rules"}),Object.entries(a).map(([c,g],d)=>p(s.Group,{noWrap:!0,children:[i(s.TextInput,{label:"Payload key",value:g,onChange:f=>{o(c,f.currentTarget.value)}}),i(Q,{data:[t.filters.values],value:c,onChange:f=>{o(f,g)},label:"Filter key"}),i(s.ActionIcon,{onClick:()=>u(c),sx:{marginTop:"22px"},children:i(V.Trash,{size:14,color:"red"})})]},c)),i(s.Button,{size:"xs",onClick:l,children:"Add one mapping rule"})]})});async function dg(e,t){const r=(await t.operationData.getItem("config")).dictionary;window.dispatchEvent(new CustomEvent("set-filter-values",{detail:{dictionary:r,payload:e}}))}const _t=[ag,tg,lg,{displayName:"Set Filter Values",id:"builtin:op:set_filter_values",configRender:cg,run:dg}];class gg{constructor(t,n=_t){R(this,"attachments");this.operations=n;const r=async a=>{const{id:o,schemaRef:l}=await a.getItem(null);return{id:o,schemaRef:l,operationData:new je(a,"data")}};this.attachments=new jt(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 a=this.tryGetSchema(r.schemaRef);if(!a){console.warn(`Operation schema '${r.schemaRef}' is not defined`);return}await a.run(n,r)}tryGetSchema(t){return this.operations.find(n=>n.id===t)}async needMigration(){const n=(await this.attachments.list()).map(async r=>{const a={configData:r.operationData},o=this.tryGetSchema(r.schemaRef),l=o==null?void 0:o.migrator;return l&&await l.needMigration(a)});return(await Promise.all(n)).some(r=>r)}async runMigration(){const n=(await this.attachments.list()).map(async r=>{const a={configData:r.operationData},o=this.tryGetSchema(r.schemaRef),l=o==null?void 0:o.migrator;l&&await l.needMigration(a)&&await l.migrate(a)});await Promise.all(n)}async createOrGetOperation(t,n){var l,u;if(!this.getOperationSchemaList().some(c=>c.id===n.id))throw new Error(`Operation schema '${n.id}' is not defined`);const a=await this.attachments.getInstance(t);return!a||a.schemaRef!==n.id?await this.attachments.create(t,{id:t,schemaRef:n.id,data:(u=(l=n.createDefaultConfig)==null?void 0:l.call(n))!=null?u:{}}):a}getOperationList(){return this.attachments.list()}getOperationSchemaList(){return this.operations}removeOperation(t){return this.attachments.remove(t)}async retrieveTrigger(t){return await this.attachments.getInstance(t)}}class $n{constructor(t,n,r){R(this,"operationManager");R(this,"triggerManager");R(this,"attachments");this.operationManager=new gg(t,r),this.triggerManager=new Dl(t,n);const a=async o=>{const{id:l,triggerRef:u,operationRef:c}=await o.getItem(null);return{id:l,triggerRef:u,operationRef:c}};this.attachments=new jt(t,"__INTERACTIONS",a)}async addInteraction(t,n){const r=t.id,a=n.id,o=`[${r}]:[${a}]`;await this.attachments.create(o,{id:o,triggerRef:r,operationRef:a})}getInteractionList(){return this.attachments.list()}async removeInteraction(t){const n=await this.attachments.getInstance(t);if(!n)return;const{triggerRef:r,operationRef:a}=n;await this.getTriggerRefCount(r)<=1&&await this.triggerManager.removeTrigger(r),await this.getOperationRefCount(a)<=1&&await this.operationManager.removeOperation(a),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 a=(await this.getInteractionList()).filter(o=>o.triggerRef===t);await Promise.all(a.map(async o=>{try{return await this.operationManager.runOperation(o.operationRef,n)}catch(l){console.warn(`Failed to run operation '${o.operationRef}'`,l)}}))}}function pg(e,t){const[n,r]=x.useState([]);return W.useAsyncEffect(async()=>{const a=await e.getInteractionList();r(a)},[t]),n}const fg=I.observer(({item:e,manager:t,instance:n,sampleData:r,variables:a,onRemove:o})=>{const{triggerRef:l,operationRef:u}=e,c=ds(t.triggerManager,n);if(W.useAsyncEffect(async()=>{await c.configTrigger(l,r)},[c,l,r]),c.isReady()){const g=[...c.triggerSchema.payload,...a];return p(s.Group,{children:[i(hs,{model:c}),i(ls,{instance:n,operationId:u,variables:g,operationManager:t.operationManager}),i(s.Button,{"aria-label":"delete-interaction",variant:"outline",color:"red",onClick:()=>o(e),children:i(V.Trash,{})})]})}return null}),hg=e=>{const[t,n]=x.useState(0),{interactionManager:r,instance:a,sampleData:o,variables:l}=e,u=pg(r,t),c=async()=>{const h=await r.triggerManager.createOrGetTrigger(ie.randomId(),r.triggerManager.getTriggerSchemaList()[0]),v=await r.operationManager.createOrGetOperation(ie.randomId(),r.operationManager.getOperationSchemaList()[0]);await r.addInteraction(h,v),n(C=>C+1)};async function g(h){await r.removeInteraction(h.id),n(v=>v+1)}const{data:d=0,loading:f}=W.useRequest(async()=>{try{return(await r.triggerManager.getTriggerSchemaList()).length}catch{return 0}});return p(s.Stack,{children:[i(s.LoadingOverlay,{visible:f}),d===0&&i(s.Alert,{icon:i(V.AlertCircle,{size:16}),title:"Unavailable",color:"gray",children:"This visualization does not have available interactions to choose from"}),u.map(h=>i(fg,{onRemove:g,instance:a,sampleData:o,variables:l,item:h,manager:e.interactionManager},h.id)),i(s.Button,{style:{width:"fit-content"},onClick:()=>c(),disabled:d===0,children:"Add interaction"})]})},mg=()=>{const{panel:e,data:t}=ee(),n=e.viz,{vizManager:r}=x.useContext(Se),a=e.json,o=W.useCreation(()=>r.getOrCreateInstance(a),[r,n.type]),l=W.useCreation(()=>new $n(o,r.resolveComponent(n.type),_t),[o,n.type]);return x.useEffect(()=>o.instanceData.watchItem(null,w.throttle(u=>{e.viz.setConf(u)},100,{leading:!1,trailing:!0})),[o]),{instance:o,vizManager:r,interactionManager:l,sampleData:t,variables:[]}},vg=()=>{const e=mg();return i(hg,{...e})},yg=I.observer(()=>{const{panel:e}=ee(),[t,n]=M.default.useState(e.description),r=e.description!==t,a=M.default.useCallback(()=>{!r||e.setDescription(t)},[r,t]);return p(s.Stack,{spacing:4,sx:{flexGrow:1},children:[p(s.Group,{align:"end",children:[i(s.Text,{sx:{flexGrow:1},children:"Description"}),i(s.ActionIcon,{variant:"subtle",color:"blue",disabled:!r,onClick:a,children:i(V.DeviceFloppy,{size:20})})]}),i(Rt.RichTextEditor,{value:t,onChange:n,sx:{flexGrow:1},sticky:!0,p:"0"})]})}),bg=I.observer(()=>{const{panel:e}=ee(),{style:t}=e;return i(B,{children:i(s.Switch,{label:"Border",checked:t.border.enabled,onChange:n=>t.border.setEnabled(n.currentTarget.checked)})})}),Cg=I.observer(()=>{const{panel:{title:e,style:{border:t}}}=ee();return i(qe,{children:p(s.Stack,{mx:"auto",mt:"xl",p:"5px",spacing:5,sx:{width:"600px",height:"450px",background:"transparent",borderRadius:"5px",border:"1px solid #e9ecef",borderWidth:t.enabled?"1px":"0px"},children:[p(s.Group,{position:"apart",noWrap:!0,sx:{flexGrow:0,flexShrink:0},children:[i(s.Group,{children:i(Ir,{})}),i(s.Group,{grow:!0,position:"center",children:i(s.Text,{lineClamp:1,weight:"bold",children:e})}),i(s.Group,{position:"right",spacing:0,sx:{height:"28px"}})]}),i(s.Group,{sx:{background:"#eee",flexGrow:1}})]})})}),wg=I.observer(()=>{const{panel:e}=ee(),{title:t,setTitle:n}=e,[r,a]=ie.useInputState(t),o=t!==r,l=M.default.useCallback(()=>{!o||n(r)},[o,r]);return i(s.TextInput,{value:r,onChange:a,label:p(s.Group,{align:"apart",children:[i(s.Text,{sx:{flexGrow:1},children:"Panel Title"}),i(s.ActionIcon,{variant:"subtle",color:"blue",disabled:!o,onClick:l,children:i(V.DeviceFloppy,{size:20})})]}),styles:{label:{display:"block",paddingBottom:"4px"}}})});function xg(){return p(s.Group,{grow:!0,noWrap:!0,align:"stretch",sx:{height:"100%"},children:[p(s.Stack,{sx:{width:"40%",flexShrink:0,flexGrow:0,height:"100%"},children:[i(s.Divider,{label:"Style",labelPosition:"center",variant:"dashed"}),i(bg,{}),i(s.Divider,{label:"Info",labelPosition:"center",variant:"dashed"}),i(wg,{}),i(yg,{})]}),i(s.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:i(Cg,{})})]})}const Sg=I.observer(function(){const t=j(),{panel:{queryID:n,setQueryID:r}}=ee(),a=M.default.useMemo(()=>t.queries.current.map(o=>({value:o.id,label:o.id})),[t.queries.current]);return p(s.Stack,{children:[p(s.Group,{position:"left",sx:{maxWidth:"600px",alignItems:"baseline"},children:[i(s.Text,{children:"Select a Query"}),i(s.Select,{data:a,value:n,onChange:r,allowDeselect:!1,clearable:!1,sx:{flexGrow:"1 !important"}})]}),i(pr,{id:n})]})});var Ii=(e=>(e.migrated="migrated",e.nothingToMigrate="nothingToMigrate",e.checkFailed="checkFailed",e.migrationFailed="migrationFailed",e))(Ii||{}),Mt=(e=>(e.notStarted="notStarted",e.inProgress="inProgress",e.done="done",e))(Mt||{});class _g{constructor(t){R(this,"vizInstance");R(this,"operationManager");R(this,"triggerManager");R(this,"vizManager");R(this,"runningMigration");R(this,"panelModel");R(this,"status","notStarted");this.panelModel=t.getRequired(X.instanceScope.panelModel),this.vizInstance=t.getRequired(X.instanceScope.vizInstance),this.operationManager=t.getRequired(X.instanceScope.operationManager),this.triggerManager=t.getRequired(X.instanceScope.triggerManager),this.vizManager=t.getRequired(X.vizManager)}async createMigrationTask(){const t=[];try{await this.instanceNeedMigration()&&t.push(()=>this.runInstanceMigration()),await this.interactionNeedMigration()&&t.push(()=>this.runInteractionMigration())}catch(n){return console.warn("check migration failed",n),"checkFailed"}if(t.length===0)return"nothingToMigrate";try{return await Promise.all(t.map(n=>n())),"migrated"}catch(n){return console.warn("migration failed",n),"migrationFailed"}}async runMigration(){return this.runningMigration||(this.status="inProgress",this.runningMigration=this.createMigrationTask().then(t=>(this.status="done",t))),this.runningMigration}async runInteractionMigration(){await this.operationManager.runMigration(),await this.triggerManager.runMigration()}async runInstanceMigration(){const t=this.vizManager.resolveComponent(this.vizInstance.type),n={configData:this.vizInstance.instanceData,panelModel:this.panelModel};await t.migrator.migrate(n)}async instanceNeedMigration(){const t=this.vizManager.resolveComponent(this.vizInstance.type),n={configData:this.vizInstance.instanceData};return t.migrator.needMigration(n)}async interactionNeedMigration(){return await this.operationManager.needMigration()||await this.triggerManager.needMigration()}}function Vi(e){const{panel:t}=ee();return x.useCallback(n=>{const r=n.getRequired(X.vizManager),a=r.resolveComponent(e.viz.type);return n.createScoped().provideFactory(X.instanceScope.vizInstance,()=>r.getOrCreateInstance(e)).provideFactory(X.instanceScope.interactionManager,o=>{const l=o.getRequired(X.instanceScope.vizInstance);return new $n(l,a,_t)}).provideFactory(X.instanceScope.operationManager,o=>o.getRequired(X.instanceScope.interactionManager).operationManager).provideFactory(X.instanceScope.triggerManager,o=>o.getRequired(X.instanceScope.interactionManager).triggerManager).provideValue(X.instanceScope.panelModel,t).provideFactory(X.instanceScope.migrator,o=>new _g(o))},[e.viz.type,e.viz.conf])}function Ei(e){const[t,n]=x.useState(!1),r=ir().getRequired(X.instanceScope.migrator);return W.useAsyncEffect(async()=>{const a=r.status===Mt.notStarted;n(r.status===Mt.done),r.status===Mt.notStarted&&r.runMigration().then(o=>{o===Ii.migrated&&a&&(e==null||e())}).finally(()=>{n(!0)})},[r]),t}function ki(e,t){const n=ir().getRequired(X.instanceScope.vizInstance);return x.useEffect(()=>n.instanceData.watchItem(null,r=>{e(r)}),[e,t.viz.type]),n}function Mg({setVizConf:e,...t}){const{panel:n}=t,r=ki(e,n),a=Ei(()=>{at.showNotification({title:`${n.title} - Updated`,message:"Your plugin configuration has been migrated to the latest version"})});return W.useAsyncEffect(async()=>{await r.instanceData.setItem(null,n.viz.conf)},[r,n.viz.type]),a?i(bs,{...t}):i(s.Text,{children:"Checking update..."})}function Dg(e){const{panel:t,setVizConf:n}=e;return ki(n,t),Ei(()=>{at.showNotification({title:`${t.title} - Updated`,message:"Your plugin configuration has been migrated to the latest version"})})?i(ys,{...e}):i(s.Text,{children:"Checking update"})}const Sf="";function Ig(e,t){const{vizManager:n}=x.useContext(Se),{panel:{viz:r,title:a,id:o,description:l,queryID:u,variables:c}}=ee(),g={title:a,id:o,description:l,queryID:u,viz:r,layout:t},d=Vi(g);try{return n.resolveComponent(r.type),i(st,{configure:d,children:i(Dg,{setVizConf:r.setConf,panel:g,data:e,variables:c,vizManager:n})})}catch(f){return console.info(w.get(f,"message")),null}}const Vg=["richText","button"],Ti=I.observer(function({height:t,viz:n,data:r,loading:a,error:o}){const{ref:l,width:u,height:c}=ie.useElementSize(),g=M.default.useMemo(()=>!Array.isArray(r)||r.length===0,[r]),d=Ig(r,{w:u,h:c});return Vg.includes(n.type)?i("div",{className:"viz-root",style:{height:t},ref:l,children:i(qe,{children:d})}):a?i("div",{className:"viz-root",style:{height:t},ref:l,children:i(s.LoadingOverlay,{visible:a,exitTransitionDuration:0})}):p("div",{className:"viz-root",style:{height:t},ref:l,children:[o&&i(s.Text,{color:"red",size:"md",align:"center",sx:{fontFamily:"monospace"},children:o}),!o&&g&&i(s.Text,{color:"gray",align:"center",children:"Empty Data"}),!g&&i(qe,{children:d})]})}),Eg=I.observer(()=>{const{data:e,loading:t,panel:{viz:n}}=ee();return i(Ti,{viz:n,data:e,loading:t,height:"100%"})}),Fn=[];function kg(){const{vizManager:e}=x.useContext(Se);return x.useMemo(()=>e.availableVizList.map(t=>({value:t.name,label:t.displayName})).concat(Fn),[e])}function Tg(e,t){try{return e.resolveComponent(t).createConfig()}catch{return null}}function Ag(){const{data:e,panel:{variables:t,viz:n,title:r,queryID:a,description:o,setDescription:l,setTitle:u,setQueryID:c,id:g}}=ee(),{vizManager:d}=x.useContext(Se),f={title:r,description:o,viz:n,queryID:a,id:g},h={setDescription:l,setQueryID:c,setTitle:u},v=Vi(f);try{return d.resolveComponent(f.viz.type),i(st,{configure:v,children:i(Mg,{variables:t,setVizConf:n.setConf,panel:f,panelInfoEditor:h,vizManager:d,data:e})})}catch(C){return console.info(w.get(C,"message")),null}}const Rg=I.observer(()=>{const{data:e,panel:{viz:t}}=ee(),[n,r]=ie.useInputState(t.type),a=t.type!==n,{vizManager:o}=x.useContext(Se),l=M.default.useCallback(()=>{if(!a)return;const v=Tg(o,n);t.setType(n),t.setConf(v||{})},[t,a,n]),u=v=>{try{t.setConf(JSON.parse(v))}catch(C){console.error(C)}},c=M.default.useMemo(()=>{var v;return(v=Fn.find(C=>C.value===n))==null?void 0:v.Panel},[n,Fn]),g=Ag(),d=c?x.createElement(c,{data:e,conf:t.conf,setConf:t.setConf}):null,f=g||d,h=kg();return p(B,{children:[i(s.Select,{label:"Visualization",value:n,onChange:r,data:h,rightSection:i(s.ActionIcon,{disabled:!a,onClick:l,children:i(V.DeviceFloppy,{size:20})})}),f,!f&&i(s.JsonInput,{minRows:20,label:"Config",value:JSON.stringify(t.conf,null,2),onChange:u})]})});function $g(){return p(s.Group,{grow:!0,noWrap:!0,align:"stretch",sx:{height:"100%",overflow:"hidden"},children:[i(s.Stack,{sx:{width:"40%",flexShrink:0,flexGrow:0,overflow:"scroll",height:"100%"},children:i(Rg,{})}),i(s.Box,{sx:{height:"100%",flexGrow:1,maxWidth:"60%"},children:i(Eg,{})})]})}const Fg=y.types.model("VariableModel",{name:y.types.string,size:y.types.string,weight:y.types.string,color:y.types.union(y.types.model({type:y.types.literal("static"),staticColor:y.types.string}),y.types.model({type:y.types.literal("continuous"),valueRange:y.types.array(y.types.number),colorRange:y.types.array(y.types.string)}),y.types.model({type:y.types.literal("piecewise")})),formatter:y.types.model({output:y.types.enumeration("Output",["number","percent"]),mantissa:y.types.number,average:y.types.optional(y.types.boolean,!1),trimMantissa:y.types.optional(y.types.boolean,!1)}),data_field:y.types.string,aggregation:y.types.union(y.types.model({type:y.types.enumeration(["none","sum","mean","median","min","max"]),config:y.types.frozen()}),y.types.model({type:y.types.literal("quantile"),config:y.types.model({p:y.types.number})}))}).views(e=>({get json(){return y.getSnapshot(e)}}));class zg{constructor(t){R(this,"origin");R(this,"copy");this.origin=t,this.copy=y.clone(t),Z.makeAutoObservable(this,{},{autoBind:!0,deep:!1})}get changed(){return!w.isEqual(y.getSnapshot(this.origin),y.getSnapshot(this.copy))}commit(){y.applySnapshot(this.origin,y.getSnapshot(this.copy))}update(t){y.applySnapshot(this.copy,t)}}const Og=e=>new zg(e),zn={name:"new_var",size:"1rem",weight:"initial",color:{type:"static",staticColor:"Red"},data_field:"",aggregation:{type:"sum",config:{}},formatter:{output:"number",mantissa:0,trimMantissa:!1,average:!1}};class Pg{constructor(t){R(this,"panel");R(this,"selected");this.panel=t,Z.makeAutoObservable(this,{},{deep:!1,autoBind:!0})}get variables(){return this.panel.variables}addNew(){const t=this.panel.variables.filter(n=>n.name.startsWith(zn.name)).length;this.panel.addVariable(w.cloneDeep({...zn,name:`${zn.name}${t||""}`})),this.selected=w.last(this.panel.variables)}select(t){this.selected=t}remove(t){this.selected===t&&(this.selected=void 0);const n=this.panel.variables.indexOf(t);if(this.panel.removeVariable(t),!this.selected&&!w.isEmpty(this.panel.variables)){const r=Math.min(this.panel.variables.length-1,n);this.selected=this.panel.variables[r]}}}function Ng(){const{panel:e}=ee();return W.useCreation(()=>new Pg(e),[e])}const Gg=M.default.forwardRef(function({value:t,onChange:n,data:r,withStyle:a=!0},o){const l=(u,c)=>{const g=U.default.cloneDeep(t);U.default.set(g,u,c),n(g)};return p(s.Box,{px:"sm",py:"md",ref:o,children:[p(s.Group,{grow:!0,noWrap:!0,children:[i(s.TextInput,{label:"Name",required:!0,value:t.name,onChange:u=>l("name",u.currentTarget.value)}),i(Q,{label:"Data Field",required:!0,data:r,value:t.data_field,onChange:u=>l("data_field",u)})]}),i(Ar,{label:"Aggregation",value:t.aggregation,onChange:u=>l("aggregation",u)}),i(s.Divider,{my:"xs",label:"Format",labelPosition:"center"}),i(gt,{value:t.formatter,onChange:u=>l("formatter",u)}),a&&i(Rr,{value:t,onChange:n})]})}),Ai=s.createStyles(e=>({root:{height:"100%",overflow:"hidden",".var-list-container":{"& > *":{height:"100%"},width:250,height:"100%"},".var-list-actions":{height:"fit-content",flexShrink:0,width:"100%"},".var-list":{flex:"1 1 auto",overflow:"auto",minHeight:0,"& > *":{flex:"0 0 auto"}}},config:{height:"100%",overflow:"auto",paddingRight:10}})),Lg=e=>{const{uiModel:t}=e;return i(s.Stack,{className:"var-list",children:t.variables.map(n=>i(s.Button,{variant:t.selected===n?"filled":"subtle",color:"gray",onClick:()=>t.select(n),children:n.name},n.name))})},qg=I.observer(Lg),Bg=({variable:e,data:t})=>i(s.Group,{style:{minHeight:0,height:"calc(100% - 68px)"},children:i(s.Paper,{withBorder:!0,p:"md",children:ei(e,t)})}),jg=I.observer(Bg),Wg=e=>{const t=W.useCreation(()=>Og(e.variable),[e.variable]),{classes:n}=Ai(),{data:r}=ee();return p(s.Group,{style:{height:"100%"},align:"start",children:[p(s.Stack,{"data-testid":"variable-editor",align:"stretch",className:n.config,children:[p(s.Group,{position:"right",children:[i(s.ActionIcon,{variant:"filled",disabled:!t.changed,color:"primary",onClick:t.commit,children:i(wo,{})}),i(s.ActionIcon,{color:"red",onClick:()=>e.uiModel.remove(e.variable),children:i(mr,{})})]}),i(Gg,{value:y.getSnapshot(t.copy),onChange:t.update,data:r})]}),i(jg,{variable:y.getSnapshot(t.copy),data:r})]})},Ug=I.observer(Wg),Yg=()=>{const e=Ng(),{classes:t}=Ai();return p(s.Group,{className:t.root,noWrap:!0,align:"start",children:[i(s.Paper,{withBorder:!0,p:"md",className:"var-list-container",children:p(s.Stack,{justify:"space-between",children:[i(s.Box,{className:"var-list-actions",children:i(s.Button,{variant:"light",size:"sm",onClick:e.addNew,fullWidth:!0,children:"Add Variable"})}),i(qg,{uiModel:e})]})}),e.selected?i(B,{children:i(Ug,{uiModel:e,variable:e.selected})}):i("span",{children:"Select or create a new variable on right side"})]})},Hg=I.observer(Yg),Qg=I.observer(function({opened:t,close:n}){const{freezeLayout:r}=M.default.useContext(ye),[a,o]=x.useState("Visualization"),{panel:l,loading:u}=ee(),{id:c,title:g}=l;return M.default.useEffect(()=>{r(t)},[t]),i(s.Modal,{size:"96vw",overflow:"inside",opened:t,onClose:n,title:`Editing Panel - ${g.trim()?g:c}`,trapFocus:!0,onDragStart:d=>{d.stopPropagation()},children:i(s.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:p(s.Tabs,{value:a,onTabChange:o,className:"panel-settings-tabs",children:[p(s.Tabs.List,{children:[i(s.Tabs.Tab,{value:"Data",children:"Data"}),i(s.Tabs.Tab,{value:"Panel",children:"Panel"}),i(s.Tabs.Tab,{value:"Variables",children:"Variables"}),i(s.Tabs.Tab,{value:"Visualization",children:"Visualization"}),i(s.Tabs.Tab,{value:"Interactions",children:"Interactions"})]}),p(s.Tabs.Panel,{value:"Data",pt:"sm",children:[i(s.LoadingOverlay,{visible:u,exitTransitionDuration:0}),i(Sg,{})]}),i(s.Tabs.Panel,{value:"Panel",pt:"sm",children:a==="Panel"&&i(xg,{})}),i(s.Tabs.Panel,{value:"Variables",pt:"sm",children:a==="Variables"&&i(Hg,{})}),i(s.Tabs.Panel,{value:"Visualization",pt:"sm",children:a==="Visualization"&&i($g,{})}),i(s.Tabs.Panel,{value:"Interactions",pt:"sm",children:i(qe,{children:i(vg,{})})})]})})})}),Jg=I.observer(({view:e})=>{const t=j(),n=_e.useModals(),[r,a]=M.default.useState(!1),o=()=>a(!0),l=()=>a(!1),{panel:u}=ee(),{id:c,query:g}=u,{inEditMode:d}=M.default.useContext(ye),f=()=>g==null?void 0:g.fetchData(),{viewPanelInFullScreen:h,inFullScreen:v}=M.default.useContext(Nt),C=()=>{e.panels.duplicateByID(c)},b=()=>n.openConfirmModal({title:"Delete this panel?",labels:{confirm:"Confirm",cancel:"Cancel"},onCancel:()=>console.log("Cancel"),onConfirm:()=>e.panels.removeByID(c)}),S=M.default.useCallback(()=>{h(c)},[c,h]);return p(B,{children:[i(s.Box,{sx:{position:"absolute",top:0,left:0,right:0,zIndex:300},children:p(s.Menu,{withinPortal:!0,children:[i(s.Menu.Target,{children:i(s.Box,{className:"panel-dropdown-target",sx:{width:"100%",height:"25px"}})}),p(s.Menu.Dropdown,{children:[i(s.Menu.Item,{onClick:f,icon:i(V.Refresh,{size:14}),children:"Refresh"}),i(s.Menu.Item,{onClick:()=>t.queries.downloadDataByQueryID(g),icon:i(V.Download,{size:14}),children:"Download Data"}),!v&&i(s.Menu.Item,{onClick:S,icon:i(V.ArrowsMaximize,{size:14}),children:"Full Screen"}),d&&p(B,{children:[i(s.Divider,{label:"Edit",labelPosition:"center"}),i(s.Menu.Item,{onClick:o,icon:i(V.Settings,{size:14}),children:"Settings"}),i(s.Menu.Item,{onClick:C,icon:i(V.Copy,{size:14}),children:"Duplicate"}),i(s.Menu.Item,{color:"red",onClick:b,icon:i(V.Trash,{size:14}),children:"Delete"})]})]})]})}),d&&i(Qg,{opened:r,close:l})]})}),_f="",Xg=I.observer(function(){const{panel:t}=ee(),{title:n}=t;return n?i(s.Group,{grow:!0,position:"center",px:20,className:"panel-title-wrapper",sx:{flexGrow:1},children:i(s.Text,{align:"center",lineClamp:1,weight:"bold",children:n})}):null});function Kg(e){return!["richText","button"].includes(e)}const Zg={border:"1px solid #e9ecef"},Ri={border:"1px dashed transparent",transition:"border-color 300ms ease","&:hover":{borderColor:"#e9ecef"}};function ep(e,t,n){return e.style.border.enabled?Zg:n||t?Ri:{border:"1px dashed transparent"}}const Dt=I.observer(function({panel:t,view:n}){const r=j(),{inEditMode:a}=x.useContext(ye),{data:o,state:l,error:u}=r.getDataStuffByID(t.queryID),c=Kg(t.viz.type),g=c&&l==="loading",d=t.title?"calc(100% - 25px - 5px)":"100%",f=ep(t,c,a),h=c||a;return i(lr,{value:{panel:t,data:o,loading:g},children:p(s.Box,{className:"panel-root",p:5,pt:0,sx:{...f},children:[i(s.Box,{sx:{position:"absolute",left:0,top:0,height:28,zIndex:310},children:i(Ir,{})}),h&&i(Jg,{view:n}),i(Xg,{}),i(Ti,{viz:t.viz,data:o,loading:g,error:u,height:d})]})})}),$i=I.observer(function({view:t,panel:n,exitFullScreen:r}){return p(s.Stack,{px:"10px",pb:"5px",sx:{height:"100%",flexGrow:1,justifyContent:"flex-start"},children:[i(s.Group,{mx:"-5px",sx:{flexGrow:0},children:i(s.Button,{variant:"default",size:"sm",onClick:r,leftIcon:i(V.ArrowLeft,{size:20}),children:"Exit fullscreen"})}),i(s.Group,{mx:"-5px",grow:!0,sx:{flexGrow:1,flexShrink:0},children:i(Dt,{view:t,panel:n})})]})});function Fi(e,t,n){const r=e.id==="Main",[a,o]=M.default.useState(()=>r&&e.panels.findByID(t)?t:null),l=M.default.useCallback(d=>{o(d),r&&n(d)},[r,n]),u=M.default.useCallback(()=>{o(null),r&&n("")},[r,n]),c=a?e.panels.findByID(a):null;return{viewPanelInFullScreen:l,exitFullScreen:u,inFullScreen:!!c,fullScreenPanel:c}}function zi(){M.default.useEffect(()=>{const e=Ba.default(".dashboard-sticky-area",{useStickyClasses:!0,parentClass:"dashboard-sticky-parent"});return()=>{e==null||e.cleanup()}},[])}const Mf="",tp=M.default.forwardRef(({handleAxis:e},t)=>i(s.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:i(V.ArrowsMove,{size:16})})),np=M.default.forwardRef(({handleAxis:e,...t},n)=>i(s.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:i(V.ChevronDownRight,{size:16})})),rp=Ft.WidthProvider(er.default),ip=I.observer(function({view:t,className:n="layout",rowHeight:r=10,isDraggable:a,isResizable:o}){const l=M.default.useCallback(u=>{u.forEach(({i:c,...g})=>{const d=t.panels.findByID(c);!d||d.layout.set(g)})},[t]);return i(rp,{onLayoutChange:l,className:`dashboard-layout ${n}`,rowHeight:r,layout:t.panels.layouts,isDraggable:a,isResizable:o,draggableHandle:".react-grid-customDragHandle",resizeHandle:i(np,{}),children:t.panels.list.map((u,c)=>p("div",{"data-grid":{...u.layout},style:{position:"relative"},children:[a&&i(tp,{}),i(Dt,{view:t,panel:u})]},u.id))})}),ap=Ft.WidthProvider(er.default),op=I.observer(function({view:t,className:n="layout",rowHeight:r=10}){return i(ap,{className:`dashboard-layout ${n}`,rowHeight:r,isDraggable:!1,isResizable:!1,layout:t.panels.layouts,children:t.panels.list.map(a=>i("div",{"data-grid":a.layout,children:i(Dt,{view:t,panel:a})},a.id))})}),sp=I.observer(({children:e})=>i(s.Box,{children:e})),lp=I.observer(({children:e,view:t})=>i(s.Modal,{size:t.config.width,overflow:"inside",opened:!0,onClose:U.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})),up=I.observer(({view:e,children:t})=>{switch(e.type){case fe.Modal:return i(lp,{view:e,children:t});case fe.Division:default:return i(sp,{children:t})}}),Oi=I.observer(function({view:t,saveDashboardChanges:n,fullScreenPanelID:r,setFullScreenPanelID:a}){const{viewPanelInFullScreen:o,exitFullScreen:l,inFullScreen:u,fullScreenPanel:c}=Fi(t,r,a);return zi(),i(Nt.Provider,{value:{viewPanelInFullScreen:o,inFullScreen:u},children:p(s.Box,{className:"dashboard-view",mx:-10,sx:{position:"relative",height:"100%"},children:[u&&i($i,{view:t,panel:c,exitFullScreen:l}),!u&&i(Dr,{saveChanges:n}),i(up,{view:t,children:p(s.Box,{className:"dashboard-sticky-parent",children:[!u&&i(s.Box,{className:"dashboard-sticky-area",children:i(dr,{view:t})}),!u&&i(ip,{view:t,isDraggable:!0,isResizable:!0})]})})]})})}),cp=I.observer(({children:e})=>i(s.Box,{children:e})),dp=I.observer(({children:e,view:t})=>{const n=j(),r=n.views.visibleViewIDs.includes(t.id),a=()=>n.views.rmVisibleViewID(t.id);return i(s.Modal,{size:t.config.width,centered:!0,overflow:"inside",opened:r,onClose:a,withCloseButton:!1,title:t.name,trapFocus:!0,onDragStart:o=>{o.stopPropagation()},styles:{modal:{border:"1px solid #efefef"},body:{maxHeight:t.config.height,overflow:"scroll"}},transitionDuration:0,children:e})}),gp=I.observer(({view:e,children:t})=>{switch(e.type){case fe.Modal:return i(dp,{view:e,children:t});case fe.Division:default:return i(cp,{children:t})}}),Pi=I.observer(function({view:t,fullScreenPanelID:n,setFullScreenPanelID:r}){const{viewPanelInFullScreen:a,exitFullScreen:o,inFullScreen:l,fullScreenPanel:u}=Fi(t,n,r);return zi(),i(Nt.Provider,{value:{viewPanelInFullScreen:a,inFullScreen:l},children:p(s.Box,{className:"dashboard-view",mx:-10,sx:{position:"relative",height:"100%"},children:[l&&i($i,{view:t,panel:u,exitFullScreen:o}),!l&&i(Dr,{saveChanges:U.default.noop}),i(gp,{view:t,children:p(s.Box,{className:"dashboard-sticky-parent",children:[!l&&i(s.Box,{className:"dashboard-sticky-area",children:i(dr,{view:t})}),!l&&i(op,{view:t})]})})]})})}),Ni=y.types.model("FilterConfigModel_Checkbox",{_name:y.types.literal("checkbox"),default_value:y.types.boolean}).actions(e=>({setDefaultValue(t){e.default_value=t}})),pp=()=>Ni.create({_name:"checkbox",default_value:!1}),fp=y.types.model("FilterConfigModel_DateRange",{_name:y.types.literal("date-range"),required:y.types.boolean,inputFormat:y.types.enumeration("DateRangeInputFormat",["YYYY","YYYYMM","YYYYMMDD","YYYY-MM","YYYY-MM-DD"]),default_value:y.types.optional(y.types.array(y.types.union(y.types.string,y.types.null)),[null,null]),clearable:y.types.boolean}).actions(e=>({setRequired(t){e.required=t},setClearable(t){e.clearable=t},setInputFormat(t){e.inputFormat=t},setDefaultValue(t){e.default_value.length=0,e.default_value.push(...t)}})),Gi=y.types.snapshotProcessor(fp,{preProcessor({default_value:e,...t}){return{...t,default_value:e.map(n=>n===null?null:Ee.default.tz(n,"UTC").toISOString())}},postProcessor({default_value:e,...t}){return{...t,default_value:e.map(n=>{try{return n?Ee.default.tz(n,"UTC").format(t.inputFormat):null}catch{return console.log(`[date-range] failed parsing ${n}`),null}})}}}),hp=()=>Gi.create({_name:"date-range",required:!1,inputFormat:"YYYY-MM-DD",clearable:!1,default_value:[null,null]}),mp=y.types.model({label:y.types.string,value:y.types.string}).actions(e=>({setLabel(t){e.label=t},setValue(t){e.value=t}})),Li=y.types.model("FilterConfigModel_BaseSelect",{static_options:y.types.optional(y.types.array(mp),[]),options_query_id:y.types.optional(y.types.string,""),select_first_by_default:y.types.optional(y.types.boolean,!1)}).views(e=>({get options(){const{options_query_id:t,static_options:n}=e;if(!t)return n;const{data:r,state:a,error:o}=y.getRoot(e).getDataStuffByID(t);return a==="idle"?r:[]}})).actions(e=>({addStaticOption(t){e.static_options.push(t)},removeStaticOption(t){e.static_options.splice(t,1)},setSelectFirstByDefault(t){e.select_first_by_default=t},setOptionsQueryID(t){e.options_query_id=t}})),qi=y.types.compose("FilterConfigModel_MultiSelect",y.types.model({_name:y.types.literal("multi-select"),default_value:y.types.optional(y.types.array(y.types.string),[]),min_width:y.types.optional(y.types.string,"")}),Li).actions(e=>({setDefaultValue(t){e.default_value=y.cast(t)},setMinWidth(t){e.min_width=t}})),vp=()=>qi.create({_name:"multi-select",default_value:[],static_options:[],options_query_id:"",select_first_by_default:!1}),Bi=y.types.compose("FilterConfigModel_Select",y.types.model({_name:y.types.literal("select"),default_value:y.types.string,required:y.types.boolean,width:y.types.optional(y.types.string,"")}),Li).actions(e=>({setRequired(t){e.required=t},setDefaultValue(t){e.default_value=t},setWidth(t){e.width=t}})),yp=()=>Bi.create({_name:"select",required:!1,default_value:"",static_options:[],options_query_id:"",select_first_by_default:!1}),On=y.types.model("FilterModel",{id:y.types.identifier,key:y.types.string,label:y.types.string,order:y.types.number,visibleInViewsIDs:y.types.array(y.types.string),type:y.types.enumeration("DashboardFilterType",[pe.Select,pe.MultiSelect,pe.TextInput,pe.Checkbox,pe.DateRange]),config:y.types.union(Bi,qi,yr,Ni,Gi)}).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 pe.Select:e.config=yp();break;case pe.MultiSelect:e.config=vp();break;case pe.TextInput:e.config=br();break;case pe.Checkbox:e.config=pp();break;case pe.DateRange:e.config=hp();break}e.type=t},setVisibleInViewsIDs(t){e.visibleInViewsIDs.length=0,e.visibleInViewsIDs.push(...t)}}));function ji(e,t){if(e===void 0)return e;if(Array.isArray(e))try{return e.map(n=>{const r=Ee.default.tz(n,"UTC").format(t.inputFormat);return r!=null?r:n})}catch(n){return console.error(n),e}return e}function Wi(e){return e.reduce((t,n)=>(t[n.key]=ji(n.config.default_value,n.config),t),{})}function bp(e,t,n){y.addDisposer(e,y.addMiddleware(e,(r,a)=>{a(r,()=>{y.getType(r.context)===t&&r.type==="action"&&n(r.name,r.context)})}))}const Ui=y.types.model("FiltersModel",{current:y.types.optional(y.types.array(On),[]),values:y.types.optional(y.types.frozen(),{}),previewValues:y.types.optional(y.types.frozen(),{})}).views(e=>({get firstID(){if(e.current.length!==0)return e.current[0].id},get inOrder(){return U.default.sortBy(e.current,"order")},get empty(){return e.current.length===0},visibleInView(t){return U.default.sortBy(e.current.filter(n=>n.visibleInViewsIDs.includes(t)),"order")},get firstFilterValueKey(){var t;return(t=Object.keys(e.values)[0])!=null?t:""}})).actions(e=>({replace(t){e.current=y.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},setValues(t){e.values=t},setValueByKey(t,n){e.values={...e.values,[t]:n}},getValueByKey(t){return e.values[t]},refreshValues(){console.log("refreshing values"),e.values=Wi(e.current)},updatePreviewValues(t){e.previewValues=t}})).actions(e=>{function t(){bp(e.current,On,(n,r)=>{if(n==="setType"){const a=ji(r.config.default_value,r.config);e.setValueByKey(r.key,a),e.updatePreviewValues({...e.previewValues,[r.key]:a})}})}return{afterCreate(){t()}}});function Yi(e){return{current:e,values:Wi(e)}}const Cp=y.types.model("QueryModel",{id:y.types.string,name:y.types.string,type:y.types.enumeration("DataSourceType",[Ae.Postgresql,Ae.MySQL,Ae.HTTP]),key:y.types.string,sql:y.types.string}).views(e=>({get valid(){return e.id&&e.type&&e.key&&e.sql&&e.name},get json(){const{id:t,name:n,type:r,key:a,sql:o}=e;return{id:t,name:n,type:r,key:a,sql:o}}})),Hi=y.types.compose("QueryModel",Cp,y.types.model({state:y.types.optional(y.types.enumeration(["idle","loading","error"]),"idle"),data:y.types.optional(y.types.array(y.types.frozen()),[]),error:y.types.frozen()})).views(e=>({get formattedSQL(){const{context:t,mock_context:n,sqlSnippets:r,filterValues:a}=y.getRoot(e).payloadForSQL;return fr(e.sql,t,n,r,a)}})).actions(e=>({setName(t){e.name=t},setKey(t){e.key=t},setType(t){e.type=t},setSQL(t){e.sql=t},fetchData:y.flow(function*(){if(!!e.valid){e.state="loading";try{const t=e.id,{context:n,mock_context:r,sqlSnippets:a,filterValues:o}=y.getRoot(e).payloadForSQL;e.data=yield*y.toGenerator(co({context:n,mock_context:r,sqlSnippets:a,title:t,query:e.json,filterValues:o})),e.state="idle",e.error=null}catch(t){e.data.length=0,e.error=w.get(t,"response.data.detail.message","unknown error"),e.state="error"}}})})).actions(e=>({afterCreate(){y.addDisposer(e,Z.reaction(()=>`${e.id}--${e.key}--${e.type}--${e.formattedSQL}`,e.fetchData,{fireImmediately:!0,delay:500}))}})),Qi=y.types.model("QueriesModel",{current:y.types.optional(y.types.array(Hi),[])}).views(e=>({get firstID(){if(e.current.length!==0)return e.current[0].id},findByID(t){return e.current.find(n=>n.id===t)},get options(){return e.current.filter(t=>t.id).map(t=>({value:t.id,label:t.name}))}})).views(e=>({get json(){return e.current.map(t=>t.json)}})).actions(e=>({replace(t){e.current=y.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},replaceByIndex(t,n){e.current.splice(t,1,n)},downloadAllData(){const t=e.current.map(({name:n,data:r})=>({id:n,data:r.toJSON()}));no(t)},downloadDataByQueryID(t){if(!t){console.log("[downloadDataByQueryID] query not found");return}const{name:n,data:r}=t,a=gr(r);eo(n,a)},refetchDataByQueryID(t){const n=e.findByID(t);if(!n){console.error(new Error(`[downloadDataByQueryID] query by ID[${t}] not found`));return}return n.fetchData()},removeQuery(t){const n=e.current.find(r=>r.id===t);n&&(y.detach(n),e.current.remove(n))}})),Ji=y.types.model("SQLSnippetModel",{key:y.types.string,value:y.types.string}).views(e=>({get json(){const{key:t,value:n}=e;return{key:t,value:n}},isADuplicatedKey(t){return!t||t===e.key?!1:!!y.getParent(e,2).findByKey(t)}})).actions(e=>({setKey(t){e.key=t},setValue(t){e.value=t}})),Xi=y.types.model("SQLSnippetsModel",{current:y.types.optional(y.types.array(Ji),[])}).views(e=>({get json(){return e.current.map(t=>t.json)},get record(){return e.current.reduce((t,n)=>(t[n.key]=n.value,t),{})},get firstKey(){if(e.current.length!==0)return e.current[0].key},findByKey(t){return e.current.find(n=>n.key===t)}})).actions(e=>({replace(t){e.current=y.cast(t)},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},replaceByIndex(t,n){e.current.splice(t,1,n)}})),Ki=y.types.model("ContextModel",{current:y.types.optional(y.types.frozen(),{})}).views(e=>({get keys(){return Object.keys(e.current)},get entries(){return Object.entries(e.current)}})).actions(e=>({replace(t){e.current=t},get(t){return e.current[t]},set(t,n){e.current[t]=n}})),wp=y.types.model("MockContextModel",{current:y.types.optional(y.types.frozen(),{})}).views(e=>({get keys(){return Object.keys(e.current)},get entries(){return Object.entries(e.current)}})).actions(e=>({replace(t){e.current=t},get(t){return e.current[t]},set(t,n){e.current[t]=n}})),xp=y.types.model("PanelLayoutModel",{x:y.types.number,y:y.types.number,w:y.types.number,h:y.types.number,moved:y.types.optional(y.types.boolean,!1),static:y.types.optional(y.types.boolean,!1)}).views(e=>({get json(){const{x:t,y:n,w:r,h:a,moved:o}=e;return{x:t,y:n,w:r,h:a,moved:o,static:e.static}}})).actions(e=>({set(t){const{x:n,y:r,w:a,h:o,moved:l}=t;e.x=n,e.y=r,e.w=a,e.h=o,e.moved=!!l,e.static=!!t.static}})),Sp=y.types.model("PanelStyleBorderModel",{enabled:y.types.boolean}).views(e=>({get json(){const{enabled:t}=e;return{enabled:t}}})).actions(e=>({setEnabled(t){e.enabled=t}})),_p=y.types.model("PanelStyleModel",{border:Sp}).views(e=>({get json(){const{border:t}=e;return{border:t.json}}})).actions(e=>({})),Mp=y.types.model("PanelVizModel",{type:y.types.string,conf:y.types.frozen()}).views(e=>({get json(){return{type:e.type,conf:e.conf}}})).actions(e=>({setType(t){e.type=t},setConf(t){e.conf=t}})),Dp=y.types.model({id:y.types.string,title:y.types.string,description:y.types.string,layout:xp,queryID:y.types.string,viz:Mp,style:_p,variables:y.types.optional(y.types.array(Fg),[])}).views(e=>({get query(){return y.getParentOfType(e,It).queries.findByID(e.queryID)},get json(){const{id:t,title:n,description:r,queryID:a}=e;return{id:t,title:n,description:r,layout:e.layout.json,queryID:a,viz:e.viz.json,style:e.style.json,variables:e.variables.map(o=>o.json)}}})).actions(e=>({setID(t){e.id=t},setTitle(t){e.title=t},setDescription(t){e.description=t},setQueryID(t){if(y.getParentOfType(e,It).queries.findByID(t))e.queryID=t;else throw new Error(`Query with id ${t} does not exist`)},addVariable(t){e.variables.push(t)},removeVariable(t){e.variables.remove(t)}})),Ip=y.types.model("PanelsModel",{list:y.types.optional(y.types.array(Dp),[])}).views(e=>({get json(){return e.list.map(t=>t.json)},get layouts(){return e.list.map(t=>({...t.layout.json,i:t.id}))},findByID(t){return e.list.find(n=>n.id===t)}})).actions(e=>({replace(t){e.list=y.castToSnapshot(t)},addANewPanel(){const t=ie.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:Tn.name,conf:Tn.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:ie.randomId(),layout:{...n.layout,x:0,y:1/0,moved:!1}})},replaceByIndex(t,n){e.list.splice(t,1,n)}})),Zi=y.types.model({id:y.types.identifier,name:y.types.string,type:y.types.string,config:y.types.frozen(),panels:Ip}).views(e=>({get json(){const{id:t,name:n,type:r,config:a}=e;return{id:t,name:n,type:r,config:a,panels:e.panels.json}}})).actions(e=>({setName(t){e.name=t},setType(t){e.type!==t&&(t===fe.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=>({})),ea=y.types.model("ViewsModel",{current:y.types.optional(y.types.array(Zi),[]),visibleViewIDs:y.types.array(y.types.string),idOfVIE:y.types.string}).views(e=>({get json(){return e.current.map(t=>t.json)},findByID(t){return e.current.find(n=>n.id===t)},get isVIETheFirstView(){return e.current.length===0||!e.idOfVIE?!1:e.current[0].id===e.idOfVIE},get firstVisibleView(){const[t]=e.visibleViewIDs;return e.current.find(({id:n})=>n===t)},get visibleViews(){const t=new Set(e.visibleViewIDs);return e.current.filter(({id:n})=>t.has(n))},get VIE(){return e.current.find(({id:t})=>t===e.idOfVIE)},get options(){return e.current.map(t=>({label:t.name,value:t.id,type:t.type}))}})).actions(e=>({replace(t){e.current.replace(t)},addANewView(t,n,r){e.current.push({id:t,name:t,type:n,config:r,panels:{list:[]}})},append(t){e.current.push(t)},remove(t){e.current.splice(t,1)},removeByID(t){const n=e.current.findIndex(r=>r.id===t);n!==-1&&e.current.splice(n,1)},replaceByIndex(t,n){e.current.splice(t,1,n)},setIDOfVIE(t){e.idOfVIE=t,e.visibleViewIDs.length=0,e.visibleViewIDs.push(t)},addAPanelToVIE(){var t;(t=e.VIE)==null||t.panels.addANewPanel()},appendToVisibles(t){new Set(e.visibleViewIDs.map(r=>r)).has(t)||e.visibleViewIDs.push(t)}})).actions(e=>({addARandomNewView(){const t=ie.randomId();e.addANewView(t,fe.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 ta(e){const t=e.length>0?[e[0].id]:[],n=e.length>0?e[0].id:"";return{current:e.map(a=>({...a,panels:{list:a.panels}})),visibleViewIDs:t,idOfVIE:n}}const Vp=y.types.model({id:y.types.identifier,name:y.types.string,version:y.types.string,filters:Ui,queries:Qi,sqlSnippets:Xi,views:ea,context:Ki,mock_context:wp,origin:y.types.maybe(y.types.frozen())}).views(e=>({get filtersChanged(){const t="filters.current";return!w.isEqual(y.getSnapshot(w.get(e,t)),w.get(e.origin,t))},get queriesChanged(){const t="queries.current",n=y.getSnapshot(w.get(e,t)).map(r=>w.pick(r,["id","key","type","sql"]));return!w.isEqual(n,w.get(e.origin,t))},get sqlSnippetsChanged(){const t="sqlSnippets.current";return!w.isEqual(y.getSnapshot(w.get(e,t)),w.get(e.origin,t))},get viewsChanged(){const t="views.current";return!w.isEqual(y.getSnapshot(w.get(e,t)),w.get(e.origin,t))},get mockContextChanged(){const t="mock_context.current";return!w.isEqual(w.get(e,t),w.get(e.origin,t))}})).views(e=>({get payloadForSQL(){return{context:e.context.current,mock_context:e.mock_context.current,sqlSnippets:e.sqlSnippets.current,filterValues:e.filters.values}},get changed(){return e.filtersChanged||e.queriesChanged||e.sqlSnippetsChanged||e.viewsChanged||e.mockContextChanged},get data(){return e.queries.current.map(({id:n,data:r})=>({id:n,data:r})).reduce((n,r)=>(n[r.id]=r.data,n),{})},getDataStuffByID(t){const n=e.queries.findByID(t);return n?{data:n.data.toJSON(),state:n.state,error:n.error}:{data:[],state:"idle",error:void 0}},getDataStateByID(t){var n,r;return(r=(n=e.queries.findByID(t))==null?void 0:n.state)!=null?r:[]},getDataErrorByID(t){var n,r;return(r=(n=e.queries.findByID(t))==null?void 0:n.error)!=null?r:[]}})).views(e=>({findDependingPanels(t){return e.views.current.flatMap(n=>n.panels.list.filter(r=>r.queryID===t).map(r=>r.title))}})).actions(e=>({reset(){y.applySnapshot(e.filters.current,e.origin.filters.current),y.applySnapshot(e.queries.current,e.origin.queries.current),y.applySnapshot(e.sqlSnippets.current,e.origin.sqlSnippets.current),y.applySnapshot(e.views.current,e.origin.views.current),e.mock_context.current=e.origin.mock_context.current},resetFilters(){y.applySnapshot(e.filters.current,e.origin.filters.current)}})),It=y.types.snapshotProcessor(Vp,{preProcessor(e){return{...e,origin:e}},postProcessor(e){delete e.origin;const t=y.castToSnapshot(e.queries.current.map(n=>w.pick(n,["id","key","type","sql"])));return w.defaults({},{queries:{current:t}},e)}});function Pn({id:e,name:t,version:n,filters:r,views:a,definition:{queries:o,sqlSnippets:l,mock_context:u={}}},c){return It.create({id:e,name:t,version:n,filters:Yi(r),queries:{current:o},sqlSnippets:{current:l},context:{current:c},mock_context:{current:u},views:ta(a)})}function Nn(e){return M.default.useCallback(t=>t.provideValue(X.pluginManager,e.pluginManager).provideValue(X.vizManager,e.vizManager).provideValue(X.colorManager,e.colorManager),[])}const Df="",Ep=I.observer(function({context:t,dashboard:n,update:r,className:a="dashboard",config:o,fullScreenPanelID:l,setFullScreenPanelID:u}){hr(o);const[c,g]=M.default.useState(!1),d=M.default.useMemo(()=>Pn(n,t),[n]);tr(d,!0),M.default.useEffect(()=>{d.context.replace(t)},[t]);const f=async()=>{const C=[...d.queries.json],b=[...d.sqlSnippets.json],S=[...d.views.json],T={...d.mock_context.current},A={...n,filters:[...d.filters.current],views:S,definition:{sqlSnippets:b,queries:C,mock_context:T}};await r(A)},h=W.useCreation(Rn,[]),v=Nn(h);return i(_e.ModalsProvider,{children:i(Gt,{value:d,children:i(ye.Provider,{value:{layoutFrozen:c,freezeLayout:g,inEditMode:!0,inUseMode:!1},children:i(s.Box,{className:`${a} dashboard-root`,sx:{position:"relative"},children:i(Se.Provider,{value:h,children:i(st,{configure:v,children:d.views.visibleViews.map(C=>i(Oi,{view:C,saveDashboardChanges:f,fullScreenPanelID:l,setFullScreenPanelID:u},C.id))})})})})})})}),kp=I.observer(({context:e,dashboard:t,className:n="dashboard",config:r,fullScreenPanelID:a,setFullScreenPanelID:o})=>{hr(r);const l=M.default.useMemo(()=>Pn(t,e),[t]);tr(l,!1),M.default.useEffect(()=>{l.context.replace(e)},[e]);const u=W.useCreation(Rn,[]),c=Nn(u);return i(_e.ModalsProvider,{children:i(Gt,{value:l,children:i(ye.Provider,{value:{layoutFrozen:!0,freezeLayout:U.default.noop,inEditMode:!1,inUseMode:!0},children:i(s.Box,{className:`${n} dashboard-root dashboard-sticky-parent`,children:i(Se.Provider,{value:u,children:i(st,{configure:c,children:l.views.visibleViews.map(g=>i(Pi,{view:g,fullScreenPanelID:a,setFullScreenPanelID:o},g.id))})})})})})})});var na={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(Ne,function(){var n={year:0,month:1,day:2,hour:3,minute:4,second:5},r={};return function(a,o,l){var u,c=function(h,v,C){C===void 0&&(C={});var b=new Date(h),S=function(T,A){A===void 0&&(A={});var F=A.timeZoneName||"short",O=T+"|"+F,q=r[O];return q||(q=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:T,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:F}),r[O]=q),q}(v,C);return S.formatToParts(b)},g=function(h,v){for(var C=c(h,v),b=[],S=0;S<C.length;S+=1){var T=C[S],A=T.type,F=T.value,O=n[A];O>=0&&(b[O]=parseInt(F,10))}var q=b[3],ae=q===24?0:q,ne=b[0]+"-"+b[1]+"-"+b[2]+" "+ae+":"+b[4]+":"+b[5]+":000",me=+h;return(l.utc(ne).valueOf()-(me-=me%1e3))/6e4},d=o.prototype;d.tz=function(h,v){h===void 0&&(h=u);var C=this.utcOffset(),b=this.toDate(),S=b.toLocaleString("en-US",{timeZone:h}),T=Math.round((b-new Date(S))/1e3/60),A=l(S).$set("millisecond",this.$ms).utcOffset(15*-Math.round(b.getTimezoneOffset()/15)-T,!0);if(v){var F=A.utcOffset();A=A.add(C-F,"minute")}return A.$x.$timezone=h,A},d.offsetName=function(h){var v=this.$x.$timezone||l.tz.guess(),C=c(this.valueOf(),v,{timeZoneName:h}).find(function(b){return b.type.toLowerCase()==="timezonename"});return C&&C.value};var f=d.startOf;d.startOf=function(h,v){if(!this.$x||!this.$x.$timezone)return f.call(this,h,v);var C=l(this.format("YYYY-MM-DD HH:mm:ss:SSS"));return f.call(C,h,v).tz(this.$x.$timezone,!0)},l.tz=function(h,v,C){var b=C&&v,S=C||v||u,T=g(+l(),S);if(typeof h!="string")return l(h).tz(S);var A=function(ae,ne,me){var ue=ae-60*ne*1e3,Ce=g(ue,me);if(ne===Ce)return[ue,ne];var re=g(ue-=60*(Ce-ne)*1e3,me);return Ce===re?[ue,Ce]:[ae-60*Math.min(Ce,re)*1e3,Math.max(Ce,re)]}(l.utc(h,b).valueOf(),T,S),F=A[0],O=A[1],q=l(F).utcOffset(O);return q.$x.$timezone=S,q},l.tz.guess=function(){return Intl.DateTimeFormat().resolvedOptions().timeZone},l.tz.setDefault=function(h){u=h}}})})(na);const Tp=na.exports;var ra={exports:{}};(function(e,t){(function(n,r){e.exports=r()})(Ne,function(){var n="minute",r=/[+-]\d\d(?::?\d\d)?/g,a=/([+-]|\d\d)/g;return function(o,l,u){var c=l.prototype;u.utc=function(b){var S={date:b,utc:!0,args:arguments};return new l(S)},c.utc=function(b){var S=u(this.toDate(),{locale:this.$L,utc:!0});return b?S.add(this.utcOffset(),n):S},c.local=function(){return u(this.toDate(),{locale:this.$L,utc:!1})};var g=c.parse;c.parse=function(b){b.utc&&(this.$u=!0),this.$utils().u(b.$offset)||(this.$offset=b.$offset),g.call(this,b)};var d=c.init;c.init=function(){if(this.$u){var b=this.$d;this.$y=b.getUTCFullYear(),this.$M=b.getUTCMonth(),this.$D=b.getUTCDate(),this.$W=b.getUTCDay(),this.$H=b.getUTCHours(),this.$m=b.getUTCMinutes(),this.$s=b.getUTCSeconds(),this.$ms=b.getUTCMilliseconds()}else d.call(this)};var f=c.utcOffset;c.utcOffset=function(b,S){var T=this.$utils().u;if(T(b))return this.$u?0:T(this.$offset)?f.call(this):this.$offset;if(typeof b=="string"&&(b=function(q){q===void 0&&(q="");var ae=q.match(r);if(!ae)return null;var ne=(""+ae[0]).match(a)||["-",0,0],me=ne[0],ue=60*+ne[1]+ +ne[2];return ue===0?0:me==="+"?ue:-ue}(b),b===null))return this;var A=Math.abs(b)<=16?60*b:b,F=this;if(S)return F.$offset=A,F.$u=b===0,F;if(b!==0){var O=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();(F=this.local().add(A+O,n)).$offset=A,F.$x.$localOffset=O}else F=this.utc();return F};var h=c.format;c.format=function(b){var S=b||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return h.call(this,S)},c.valueOf=function(){var b=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*b},c.isUTC=function(){return!!this.$u},c.toISOString=function(){return this.toDate().toISOString()},c.toString=function(){return this.toDate().toUTCString()};var v=c.toDate;c.toDate=function(b){return b==="s"&&this.$offset?u(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():v.call(this)};var C=c.diff;c.diff=function(b,S,T){if(b&&this.$u===b.$u)return C.call(this,b,S,T);var A=this.local(),F=u(b).local();return C.call(A,F,S,T)}}})})(ra);const Ap=ra.exports;Ee.default.extend(Ap),Ee.default.extend(Tp),Ee.default.tz.setDefault("UTC"),E.ContextModel=Ki,E.Dashboard=Ep,E.DashboardFilterType=Sr,E.DashboardMode=xr,E.DashboardModel=It,E.EViewComponentType=fe,E.FilterModel=On,E.FiltersModel=Ui,E.LayoutStateContext=ye,E.MainDashboardView=Oi,E.ModelContextProvider=Gt,E.Panel=Dt,E.PanelContextProvider=lr,E.QueriesModel=Qi,E.QueryModel=Hi,E.ReadOnlyDashboard=kp,E.ReadOnlyDashboardView=Pi,E.SQLSnippetModel=Ji,E.SQLSnippetsModel=Xi,E.ViewModel=Zi,E.ViewsModel=ea,E.createDashboardModel=Pn,E.createDashboardViewsModel=ta,E.getInitialFiltersPayload=Yi,E.useModelContext=j,E.usePanelContext=ee,E.useTopLevelServices=Nn,Object.defineProperties(E,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|