@devtable/dashboard 7.20.1 → 7.20.2

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.
@@ -21372,7 +21372,7 @@ const Cz = (e) => {
21372
21372
  getColor: ll(["#fff7f1", "darkorange", "#b60000"]),
21373
21373
  name: "orange",
21374
21374
  category: "sequential"
21375
- }, i0 = "@devtable/dashboard", $d = "7.20.1", a0 = "Apache-2.0", s0 = {
21375
+ }, i0 = "@devtable/dashboard", $d = "7.20.2", a0 = "Apache-2.0", s0 = {
21376
21376
  access: "public",
21377
21377
  registry: "https://registry.npmjs.org/"
21378
21378
  }, l0 = [
@@ -22671,23 +22671,27 @@ function e3(e, t) {
22671
22671
  return isFinite(r) ? r : 0;
22672
22672
  }
22673
22673
  function Ld(e, t, n) {
22674
- var o, i, a, s;
22675
- const r = e.map((c) => e3(c, t));
22676
- switch (n.type) {
22677
- case "sum":
22678
- return xe.sum(r);
22679
- case "mean":
22680
- return xe.mean(r);
22681
- case "median":
22682
- return Jz(r);
22683
- case "max":
22684
- return (o = xe.max(r)) != null ? o : 0;
22685
- case "min":
22686
- return (i = xe.min(r)) != null ? i : 0;
22687
- case "quantile":
22688
- return (a = Za(r, n.config.p)) != null ? a : 0;
22689
- default:
22690
- return (s = e[0]) == null ? void 0 : s[t];
22674
+ var r, o, i;
22675
+ try {
22676
+ const a = e.map((s) => e3(s, t));
22677
+ switch (n.type) {
22678
+ case "sum":
22679
+ return xe.sum(a);
22680
+ case "mean":
22681
+ return xe.mean(a);
22682
+ case "median":
22683
+ return Jz(a);
22684
+ case "max":
22685
+ return (r = xe.max(a)) != null ? r : 0;
22686
+ case "min":
22687
+ return (o = xe.min(a)) != null ? o : 0;
22688
+ case "quantile":
22689
+ return (i = Za(a, n.config.p)) != null ? i : 0;
22690
+ default:
22691
+ return a;
22692
+ }
22693
+ } catch (a) {
22694
+ return console.error(a), null;
22691
22695
  }
22692
22696
  }
22693
22697
  var x0 = function() {
@@ -22919,9 +22923,11 @@ function x3(e, t) {
22919
22923
  return e.staticColor;
22920
22924
  if (e.type === "continuous")
22921
22925
  try {
22926
+ if (Array.isArray(t) || t === null)
22927
+ throw new Error(`[getColorByColorConf] Invalid type of aggregated value: ${t}`);
22922
22928
  return new b3(e).getColor(t);
22923
- } catch {
22924
- return "black";
22929
+ } catch (n) {
22930
+ return console.error(n), "black";
22925
22931
  }
22926
22932
  return "black";
22927
22933
  }
@@ -148,8 +148,8 @@ WHERE
148
148
  description?: string;
149
149
  }
150
150
  `,J2=()=>{const[e,t]=x.useState(!1);return b(De,{children:[l(d.Button,{variant:"subtle",compact:!0,onClick:()=>t(n=>!n),children:e?"Close":"Click to see expected data structure"}),l(d.Collapse,{in:e,children:l(Dr.Prism,{language:"typescript",noCopy:!0,colorScheme:"dark",children:Z2})})]})},eL=se.observer(function({config:t}){return b(De,{children:[l(d.TextInput,{label:"Min-width",value:t.min_width,onChange:n=>t.setMinWidth(n.currentTarget.value),placeholder:"200px"}),l(d.Divider,{label:"Fetch options from database",labelPosition:"center"}),l(d.NumberInput,{value:t.default_selection_count,onChange:t.setDefaultSelectionCount,label:"Select first N options by default"}),l(tc,{value:t.options_query_id,onChange:t.setOptionsQueryID}),l(J2,{})]})}),tL=se.observer(function({filter:t}){const n=t.plainDefaultValue,[r,i]=W.default.useState(n);return W.default.useEffect(()=>{!t.usingDefaultValue||i(n)},[n]),b(d.Box,{sx:{maxWidth:"30em"},children:[l(d.Text,{pb:"md",color:"gray",children:"Preview"}),l(Wh,{filter:t,value:r,onChange:i}),l(d.Text,{pt:"lg",pb:"md",color:"gray",children:"Config"}),l(Dr.Prism,{language:"json",colorScheme:"dark",noCopy:!0,children:JSON.stringify(t,null,4)})]})}),nL={select:X2,"multi-select":Y2,"tree-select":eL,"text-input":Q2,checkbox:H2,"date-range":W2},rL=[{label:"Select",value:"select"},{label:"Multi Select",value:"multi-select"},{label:"Tree Select",value:"tree-select"},{label:"Text Input",value:"text-input"},{label:"Checkbox",value:"checkbox"},{label:"Date Range",value:"date-range"}],iL=se.observer(function({filter:t,index:n}){const r=Ze(),i=W.default.useMemo(()=>nL[t.type],[t.type]);return b(d.SimpleGrid,{cols:2,children:[b(d.Box,{pl:"md",children:[l(d.Text,{pb:"md",color:"gray",children:"Edit"}),b(d.Stack,{sx:{maxWidth:"30em"},children:[b(d.Group,{noWrap:!0,children:[l(d.NumberInput,{label:"Placement Order",required:!0,value:t.order,onChange:t.setOrder,hideControls:!0,sx:{flexGrow:"1 !important"}}),t.auto_submit_supported&&l(d.Checkbox,{label:"Submit automatically",checked:t.auto_submit,onChange:o=>t.setAutoSubmit(o.currentTarget.checked),mt:22})]}),l(d.MultiSelect,{label:"Visible in...",data:r.views.options,value:[...t.visibleInViewsIDs],onChange:t.setVisibleInViewsIDs}),l(d.TextInput,{label:"Key",placeholder:"A unique key to refer",required:!0,value:t.key,onChange:o=>{t.setKey(o.currentTarget.value)}}),l(d.TextInput,{label:"Label",placeholder:"Label for this field",required:!0,value:t.label,onChange:o=>{t.setLabel(o.currentTarget.value)}}),l(d.Select,{label:"Widget",data:rL,required:!0,value:t.type,onChange:t.setType}),l(i,{config:t.config,index:n})]})]}),l(tL,{filter:t})]})}),qj="",oL=se.observer(function(){const t=Ze(),n=t.filters.current,r=()=>{const i=wt.randomId(),o={id:i,key:i,label:i,order:n.length+1,type:Ht.TextInput,config:Gm(),visibleInViewsIDs:["Main"],auto_submit:!1};t.filters.append(o)};return b(d.Box,{sx:{height:"90vh",maxHeight:"calc(100vh - 185px)"},p:0,children:[l(d.Group,{sx:{position:"absolute",top:"16px",right:"16px"},children:l(d.Button,{size:"xs",color:"red",leftIcon:l(te.Recycle,{size:20}),disabled:!t.filtersChanged,onClick:t.resetFilters,children:"Revert Changes"})}),l(d.Tabs,{className:"filter-settings-tabs",orientation:"vertical",defaultValue:t.filters.firstID,styles:{root:{display:"block"}},keepMounted:!1,children:b(d.Group,{sx:{height:"100%"},children:[b(d.Stack,{sx:{height:"100%"},children:[l(d.Button,{size:"xs",color:"blue",leftIcon:l(te.PlaylistAdd,{size:20}),onClick:r,children:"Add a Filter"}),l(d.Tabs.List,{position:"left",sx:{flexGrow:1,width:"200px"},children:t.filters.current.map(i=>l(d.Tabs.Tab,{value:i.id,sx:{maxWidth:"100%",overflow:"auto"},children:i.label},i.id))})]}),l(d.Box,{sx:{flexGrow:1,height:"100%"},children:t.filters.current.map((i,o)=>l(d.Tabs.Panel,{value:i.id,sx:{height:"100%"},children:b(d.Stack,{sx:{height:"100%"},spacing:"sm",children:[l(d.Box,{sx:{flexGrow:1,maxHeight:"calc(100% - 52px)",overflow:"auto"},children:l(iL,{filter:i,index:o})}),l(d.Group,{position:"right",pt:10,children:l(d.Button,{size:"xs",color:"red",leftIcon:l(te.Trash,{size:20}),onClick:()=>t.filters.remove(o),children:"Delete this filter"})})]})},i.id))})]})})]})}),aL=se.observer(function({opened:t,close:n}){const{freezeLayout:r}=W.default.useContext(_n);return W.default.useEffect(()=>{r(t)},[t]),l(d.Modal,{size:"96vw",overflow:"inside",opened:t,onClose:n,title:"Filters",trapFocus:!0,onDragStart:i=>{i.stopPropagation()},withCloseButton:!1,children:l(oL,{})})}),sL=se.observer(()=>{const t=Ze().views.VIE;return!t||t.type!==Ye.Division?null:b(d.Stack,{children:[l(d.Divider,{mt:8,mb:0,label:"Division settings",labelPosition:"center"}),l(d.Text,{align:"center",size:"xs",color:"dimmed",children:"Under construction"})]})}),lL=[{value:"default",label:"Default"},{value:"outline",label:"Outline"},{value:"pills",label:"Pills"}],uL=[{value:"horizontal",label:"Horizontal"},{value:"vertical",label:"Vertical"}],cL=se.observer(()=>{const t=Ze().views.VIE;if(!t||t.type!==Ye.Tabs)return null;const n=t.config;return b(d.Stack,{children:[l(d.Divider,{mt:8,mb:0,label:"Tabs settings",labelPosition:"center"}),l(d.Select,{label:"Variant",value:n.variant,onChange:n.setVariant,data:lL}),l(d.Select,{label:"Orientation",value:n.orientation,onChange:n.setOrientation,data:uL}),l(d.Switch,{label:"Grow Tabs",checked:n.grow,onChange:r=>n.setGrow(r.currentTarget.checked)})]})}),dL=({disabled:e,value:t,onChange:n})=>{const r=i=>{!i||n(i)};return b(d.Box,{sx:{position:"relative"},children:[e&&l(d.Overlay,{opacity:.6,color:"#fff",zIndex:5,blur:2}),l(Pn.default,{height:"500px",defaultLanguage:"javascript",value:t,onChange:r,theme:"vs-dark",options:{minimap:{enabled:!1,readOnly:e}}})]})},nc={enabled:!1,func_content:["function text({ filters, context}) {"," // your code goes here",' return "text"',"}"].join(`
151
- `)},fL=({value:e,onChange:t})=>{const[n,{setTrue:r,setFalse:i}]=nt.useBoolean(),[o,a]=x.useState(e!=null?e:nc),s=p=>{a({...o,enabled:p})},u=()=>{i();const{enabled:p,func_content:g}=o,v={enabled:p,func_content:g};a(v),t(v)},c=()=>{i(),a(e)},f=p=>{a(g=>({...g,func_content:p}))},h=()=>{f(nc.func_content)};return b(De,{children:[l(d.ActionIcon,{size:"lg",color:"blue",variant:"filled",mt:26,onClick:r,sx:{flexGrow:0},children:l(te.Settings,{size:14})}),l(d.Modal,{size:800,title:"Customize modal title",opened:n,onClose:i,closeOnClickOutside:!1,withCloseButton:!1,children:n&&b(d.Stack,{children:[l(d.Checkbox,{mt:10,label:"Enabled",checked:o.enabled,onChange:p=>s(p.currentTarget.checked)}),l(dL,{value:o.func_content,onChange:f,disabled:!o.enabled}),b(d.Group,{position:"apart",children:[l(d.Button,{onClick:h,color:"red",leftIcon:l(te.Recycle,{size:20}),children:"Rest"}),b(d.Group,{position:"right",children:[l(d.Button,{onClick:c,variant:"subtle",children:"Cancel"}),l(d.Button,{onClick:u,children:"OK"})]})]})]})})]})},pL=se.observer(()=>{const t=Ze().views.VIE;if(!t||t.type!==Ye.Modal)return null;const n=t.config,r=n.custom_modal_title.value;return b(d.Stack,{children:[l(d.Divider,{mt:8,label:"Modal settings",labelPosition:"center"}),b(d.Flex,{gap:10,children:[l(d.TextInput,{label:"Modal Title",value:r,onChange:ye.default.noop,disabled:!0,sx:{flexGrow:1}}),l(fL,{value:n.custom_modal_title,onChange:n.custom_modal_title.replace})]}),b(d.Group,{grow:!0,children:[l(d.TextInput,{label:"Width",value:n.width,onChange:i=>n.setWidth(i.currentTarget.value),placeholder:"600px / 50vw"}),l(d.TextInput,{label:"Height",value:n.height,onChange:i=>n.setHeight(i.currentTarget.value),placeholder:"600px / 50vw"})]})]})}),hL=se.observer(()=>b(De,{children:[l(sL,{}),l(pL,{}),l(cL,{})]})),gL=[{label:"Division",value:Ye.Division},{label:"Modal",value:Ye.Modal},{label:"Tabs",value:Ye.Tabs}],vL=se.observer(()=>{const t=Ze().views.VIE;return t?b(d.Stack,{sx:{position:"relative"},children:[l(d.TextInput,{label:"Name",value:t.name,onChange:n=>{t.setName(n.currentTarget.value)}}),l(d.Select,{label:"Type",withinPortal:!0,value:t.type,onChange:t.setType,data:gL}),l(hL,{})]}):null}),mL=se.observer(({opened:e,close:t})=>{var i;const n=Ze(),{freezeLayout:r}=W.default.useContext(_n);return W.default.useEffect(()=>{r(e)},[e]),l(d.Modal,{size:"500px",overflow:"inside",opened:e,onClose:t,withCloseButton:!1,styles:{header:{width:"100%"},title:{width:"100%"}},title:b(d.Group,{position:"apart",children:[b(d.Text,{sx:{flexGrow:1},children:["Editing ",(i=n.views.VIE)==null?void 0:i.name]}),l(d.ActionIcon,{size:18,color:"red",onClick:n.views.removeVIE,disabled:n.views.isVIETheFirstView,children:l(te.Trash,{size:18})})]}),trapFocus:!0,onDragStart:o=>{o.stopPropagation()},children:l(vL,{})})}),yL=x.forwardRef(({label:e,type:t,...n},r)=>t!=="TRIGGER_TO_ADD"?l("div",{ref:r,...n,children:b(d.Group,{noWrap:!0,position:"apart",children:[l(d.Text,{size:"sm","data-role":"label",children:e}),l(d.Text,{size:"xs",color:"dimmed","data-role":"description",children:t})]})}):l("div",{ref:r,...n,children:l(d.Group,{noWrap:!0,grow:!0,children:l(d.Text,{size:"sm",align:"center",color:"#228be6",children:e})})})),Km="TRIGGER_TO_ADD",bL=se.observer(({value:e,onChange:t,triggerAdd:n,triggerEdit:r,options:i})=>{const o=x.useMemo(()=>[...i,{label:"Add a View",value:Km,type:"TRIGGER_TO_ADD"}],[i,n]),a=s=>{s!==Km?t(s):n()};return b(d.Flex,{gap:0,sx:{minWidth:"400px"},children:[l(d.Select,{value:e,onChange:a,placeholder:"Pick a View",itemComponent:yL,data:o,nothingFound:"Empty",sx:{flexGrow:1,".mantine-Select-item[data-selected] .mantine-Text-root[data-role=description]":{color:"rgba(255,255,255,.7)"}},styles:{input:{borderTopRightRadius:0,borderBottomRightRadius:0}}}),l(d.ActionIcon,{onClick:r,variant:"default",size:36,sx:{borderLeft:0,borderTopLeftRadius:0,borderBottomLeftRadius:0,"&:active":{transform:"none",svg:{transform:"translateY(1px)"}}},children:l(te.Settings,{size:20})})]})}),wL=se.observer(()=>{const e=Ze(),[t,n]=x.useState(!1),r=()=>{n(!0)},i=()=>{n(!1)};return b(De,{children:[l(bL,{value:e.views.idOfVIE,onChange:e.views.setIDOfVIE,triggerAdd:e.views.addARandomNewView,triggerEdit:r,options:e.views.options}),l(mL,{opened:t,close:i})]})}),Hm={"> button":{"&:first-of-type":{borderTopRightRadius:0,borderBottomRightRadius:0,borderRightWidth:.5},":not(:first-of-type):not(:last-of-type)":{borderTopRightRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderBottomLeftRadius:0,borderLeftWidth:.5,borderRightWidth:.5},"&:last-of-type":{borderTopLeftRadius:0,borderBottomLeftRadius:0,borderLeftWidth:.5}}},qm=se.observer(function({saveChanges:t,inUseMode:n}){const r=Ze(),i=W.default.useCallback(()=>{const S=r.queries.json,E=r.views.json,M=r.sqlSnippets.json,A=r.filters.current,L=r.mock_context.current;return{filters:A,views:E,definition:{sqlSnippets:M,queries:S,mock_context:L},version:r.version}},[r]),o=()=>{r.reset()},a=r.changed,[s,u]=W.default.useState(!1),c=()=>u(!0),f=()=>u(!1),[h,p]=W.default.useState(!1),g=()=>p(!0),v=()=>p(!1),[m,w]=W.default.useState(!1),y=()=>w(!0),_=()=>w(!1),C=()=>{const S=JSON.stringify(i(),null,2);$$(r.name,S)};return n?null:b(d.Group,{position:"apart",pt:0,px:10,pb:"xs",children:[l(d.Group,{position:"left",children:l(wL,{})}),b(d.Group,{position:"right",sx:{button:{minWidth:"40px"}},children:[l(d.Button,{variant:"filled",size:"xs",disabled:!r.views.VIE,onClick:r.views.addAPanelToVIE,leftIcon:l(te.PlaylistAdd,{size:20}),children:"Add a Panel"}),b(d.Group,{spacing:0,sx:Hm,children:[l(d.Tooltip,{label:"Filters",children:l(d.ActionIcon,{variant:"default",size:"md",onClick:g,children:l(te.Filter,{size:20})})}),l(d.Tooltip,{label:"Data Settings",children:l(d.ActionIcon,{variant:"default",size:"md",onClick:c,children:l(te.Database,{size:20})})}),l(d.Tooltip,{label:"Interactions Viewer",children:l(d.ActionIcon,{variant:"default",size:"md",onClick:y,children:l(te.Link,{size:20})})})]}),b(d.Group,{spacing:0,sx:Hm,children:[l(d.Tooltip,{label:"Save Changes",children:l(d.ActionIcon,{variant:"default",size:"md",onClick:t,disabled:!a,children:l(te.DeviceFloppy,{size:20,color:"green"})})}),l(d.Tooltip,{label:"Revert Changes",children:l(d.ActionIcon,{variant:"default",size:"md",disabled:!a,onClick:o,children:l(te.Recycle,{size:20,color:"red"})})})]}),b(d.Menu,{width:180,trigger:"hover",children:[l(d.Menu.Target,{children:l(d.ActionIcon,{variant:"default",size:"md",children:l(te.Share,{size:20})})}),b(d.Menu.Dropdown,{children:[l(d.Menu.Item,{icon:l(te.Download,{size:14}),onClick:r.queries.downloadAllData,children:"Download Data"}),l(d.Menu.Item,{icon:l(te.Code,{size:14}),onClick:C,children:"Download Schema"})]})]})]}),l(aL,{opened:h,close:v}),l(K2,{opened:s,close:f}),l(N$,{opened:m,close:_})]})}),Wj="",Wm=Qt.Mark.create({name:"textStyle",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"span",getAttrs:e=>e.hasAttribute("style")?{}:!1}]},renderHTML({HTMLAttributes:e}){return["span",Qt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{removeEmptyTextStyle:()=>({state:e,commands:t})=>{const n=Qt.getMarkAttributes(e,this.type);return Object.entries(n).some(([,i])=>!!i)?!0:t.unsetMark(this.name)}}}}),Um=Qt.Extension.create({name:"color",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{color:{default:null,parseHTML:e=>{var t;return(t=e.style.color)===null||t===void 0?void 0:t.replace(/['"]+/g,"")},renderHTML:e=>e.color?{style:`color: ${e.color}`}:{}}}}]},addCommands(){return{setColor:e=>({chain:t})=>t().setMark("textStyle",{color:e}).run(),unsetColor:()=>({chain:e})=>e().setMark("textStyle",{color:null}).removeEmptyTextStyle().run()}}}),xL=/(?:^|\s)((?:==)((?:[^~=]+))(?:==))$/,SL=/(?:^|\s)((?:==)((?:[^~=]+))(?:==))/g,Ym=Qt.Mark.create({name:"highlight",addOptions(){return{multicolor:!1,HTMLAttributes:{}}},addAttributes(){return this.options.multicolor?{color:{default:null,parseHTML:e=>e.getAttribute("data-color")||e.style.backgroundColor,renderHTML:e=>e.color?{"data-color":e.color,style:`background-color: ${e.color}; color: inherit`}:{}}}:{}},parseHTML(){return[{tag:"mark"}]},renderHTML({HTMLAttributes:e}){return["mark",Qt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{setHighlight:e=>({commands:t})=>t.setMark(this.name,e),toggleHighlight:e=>({commands:t})=>t.toggleMark(this.name,e),unsetHighlight:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-h":()=>this.editor.commands.toggleHighlight()}},addInputRules(){return[Qt.markInputRule({find:xL,type:this.type})]},addPasteRules(){return[Qt.markPasteRule({find:SL,type:this.type})]}}),Xm=Qt.Extension.create({name:"placeholder",addOptions(){return{emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",placeholder:"Write something \u2026",showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[new r0.Plugin({props:{decorations:({doc:e,selection:t})=>{const n=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:r}=t,i=[];if(!n)return null;const o=e.type.createAndFill(),a=(o==null?void 0:o.sameMarkup(e))&&o.content.findDiffStart(e.content)===null;return e.descendants((s,u)=>{const c=r>=u&&r<=u+s.nodeSize,f=!s.isLeaf&&!s.childCount;if((c||!this.options.showOnlyCurrent)&&f){const h=[this.options.emptyNodeClass];a&&h.push(this.options.emptyEditorClass);const p=Wc.Decoration.node(u,u+s.nodeSize,{class:h.join(" "),"data-placeholder":typeof this.options.placeholder=="function"?this.options.placeholder({editor:this.editor,node:s,pos:u,hasAnchor:c}):this.options.placeholder});i.push(p)}return this.options.includeChildren}),Wc.DecorationSet.create(e,i)}}})]}}),Qm=Qt.Mark.create({name:"subscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sub"},{style:"vertical-align",getAttrs(e){return e!=="sub"?!1:null}}]},renderHTML({HTMLAttributes:e}){return["sub",Qt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{setSubscript:()=>({commands:e})=>e.setMark(this.name),toggleSubscript:()=>({commands:e})=>e.toggleMark(this.name),unsetSubscript:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-,":()=>this.editor.commands.toggleSubscript()}}}),Zm=Qt.Mark.create({name:"superscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sup"},{style:"vertical-align",getAttrs(e){return e!=="super"?!1:null}}]},renderHTML({HTMLAttributes:e}){return["sup",Qt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{setSuperscript:()=>({commands:e})=>e.setMark(this.name),toggleSuperscript:()=>({commands:e})=>e.toggleMark(this.name),unsetSuperscript:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-.":()=>this.editor.commands.toggleSuperscript()}}}),Jm=Qt.Extension.create({name:"textAlign",addOptions(){return{types:[],alignments:["left","center","right","justify"],defaultAlignment:"left"}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:e=>e.style.textAlign||this.options.defaultAlignment,renderHTML:e=>e.textAlign===this.options.defaultAlignment?{}:{style:`text-align: ${e.textAlign}`}}}}]},addCommands(){return{setTextAlign:e=>({commands:t})=>this.options.alignments.includes(e)?this.options.types.every(n=>t.updateAttributes(n,{textAlign:e})):!1,unsetTextAlign:()=>({commands:e})=>this.options.types.every(t=>e.resetAttributes(t,"textAlign"))}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign("left"),"Mod-Shift-e":()=>this.editor.commands.setTextAlign("center"),"Mod-Shift-r":()=>this.editor.commands.setTextAlign("right"),"Mod-Shift-j":()=>this.editor.commands.setTextAlign("justify")}}}),ey=Qt.Mark.create({name:"underline",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:e=>e.includes("underline")?{}:!1}]},renderHTML({HTMLAttributes:e}){return["u",Qt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{setUnderline:()=>({commands:e})=>e.setMark(this.name),toggleUnderline:()=>({commands:e})=>e.toggleMark(this.name),unsetUnderline:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),rc={fontSize:"14px",lineHeight:"32px",color:"#3D3E45",ul:{paddingLeft:"2em",margin:"6px 0 0"},p:{margin:0},a:{WebkitTapHighlightColor:"transparent",color:"rgb(34, 139, 230)",textDecoration:"none","&:hover":{textDecoration:"underline"},"&:active, &:hover":{outlineWidth:0}},table:{tr:{"th, td":{padding:"0 .5em"}}},details:{summary:{listStyle:"none",cursor:"pointer",transition:"color 300ms ease",userSelect:"none"},"summary::-webkit-details-marker":{display:"none"},"summary:hover":{color:"black","&::before":{opacity:1}},"summary::before":{content:'"\u25BA"',fontSize:"10px",margin:"0px 5px",opacity:.5,display:"inline-block",transition:"opacity 300ms ease, transform 300ms ease"}},"details[open] summary::before":{transform:"rotate(90deg)"},"details + details":{marginTop:"10px"}},ty=({value:e,styles:t={}})=>{const n=Uc.useEditor({extensions:[Xc.default,ey,rt.Link,Zm,Qm,Ym,Jm.configure({types:["heading","paragraph"]}),Xm.configure({placeholder:"This is placeholder"}),Wm,Um],content:e,editable:!1}),r=x.useMemo(()=>ye.default.defaultsDeep({},{content:rc},t),[t]);return l(rt.RichTextEditor,{editor:n,styles:r,children:l(rt.RichTextEditor.Content,{})})};function CL(e){return e?["<p><br></p>","<p></p>"].includes(e):!0}const ny=se.observer(()=>{const{freezeLayout:e}=W.default.useContext(_n),[t,n]=W.default.useState(!1),{panel:r}=jt();return W.default.useEffect(()=>{e(t)},[t]),CL(r.description)?null:b(De,{children:[l(d.Modal,{opened:t,onClose:()=>n(!1),title:r.title,withCloseButton:!1,children:l(ty,{value:r.description,styles:{root:{border:"none"},content:{padding:0}}})}),l(d.Tooltip,{label:"Click to see description",position:"top-start",withinPortal:!0,children:l(d.ActionIcon,{variant:"subtle",color:"blue",onClick:()=>n(i=>!i),sx:{verticalAlign:"baseline",cursor:"pointer"},children:l(te.InfoCircle,{size:20})})})]})}),ry=e=>{const{title:t="Variables",variables:n}=e,r=wt.useClipboard(),i=o=>{r.copy(o),Po.showNotification({color:"green",message:"Copied to clipboard"})};return b(d.Paper,{withBorder:!0,p:"sm",children:[l(d.Text,{size:"xs",color:"dimmed",mb:"sm",children:t}),l(d.Stack,{style:{maxHeight:"500px"},children:n.map(o=>b(d.Text,{size:"sm",children:[b(d.Code,{color:"teal",children:["// ",o.description]}),l("br",{}),b(d.Code,{onClick:()=>i(o.name),style:{cursor:"pointer"},children:[o.name," : ",o.valueType]})]},o.name))})]})};class _L{constructor(t,n){ke(this,"operationId");ke(this,"operation");ke(this,"operationSchema");ke(this,"variables",[]);this.operationManager=t,this.instance=n,zt.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));zt.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 EL(e){return!!e.operationId}const TL=se.observer(({model:e,onClick:t})=>{var r;const n=(r=e.operationSchema)==null?void 0:r.displayName;return l(d.Button,{variant:"outline",onClick:t,children:n})}),ML=se.observer(({model:e})=>{const t={operation:e.operation,instance:e.instance,variables:[]};return x.createElement(e.operationSchema.configRender,t)});function OL({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 l(d.Select,{label:"Operation",data:n,onChange:r,value:e.operationSchema.id})}const DL=se.observer(e=>{const[t,{setTrue:n,setFalse:r}]=nt.useBoolean(!1),{operationManager:i,operationId:o,instance:a,variables:s}=e,u=nt.useCreation(()=>new _L(i,a),[i,a]);return nt.useAsyncEffect(async()=>{await u.configOperation(o,s)},[o,u]),EL(u)?b(De,{children:[l(TL,{model:u,onClick:n}),l(d.Modal,{size:600,opened:t,onClose:r,title:"Operation Settings",closeButtonLabel:"close",children:b(d.Stack,{children:[l(OL,{model:u}),l(ML,{model:u}),l(ry,{title:"Variables",variables:u.variables})]})})]}):null});class RL{constructor(t,n){ke(this,"triggerId");ke(this,"trigger");ke(this,"triggerSchema");ke(this,"sampleData");this.triggerManager=t,this.instance=n,zt.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));zt.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 kL(this)}}function kL(e){return!!e.triggerId&&!!e.triggerSchema}function AL(e,t){return nt.useCreation(()=>new RL(e,t),[e,t])}const PL=se.observer(({model:e,onClick:t})=>{const n=e.triggerSchema.nameRender,r={trigger:e.trigger,instance:e.instance,sampleData:e.sampleData};return l(d.Button,{variant:"outline",onClick:t,children:x.createElement(n,r)})}),NL=se.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 l(d.Select,{label:"Trigger",data:n,value:e.triggerSchema.id,onChange:r})}),IL=se.observer(({model:e})=>{const t={trigger:e.trigger,instance:e.instance,sampleData:e.sampleData};return x.createElement(e.triggerSchema.configRender,t)}),$L=se.observer(e=>{const[t,{setTrue:n,setFalse:r}]=nt.useBoolean(!1),i=e.model;return b(De,{children:[l(d.Modal,{opened:t,onClose:r,title:"Setup Trigger",closeButtonLabel:"close setup",children:b(d.Stack,{children:[l(NL,{model:i}),l(IL,{model:i}),l(ry,{title:"Payload",variables:i.triggerSchema.payload})]})}),l(PL,{onClick:n,model:i})]})});class Mi{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,H.omit(n,t))}async getItem(t){const n=await this.root.getItem(this.path);return t===null?n:H.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 a=H.get(i,t),s=H.get(o,t);a!==s&&n(a,s)},r)}}class ic{constructor(t,n,r){ke(this,"attachmentStorage");this.instance=t,this.attachmentKey=n,this.constructInstance=r,this.attachmentStorage=new Mi(t.instanceData,n)}async getInstance(t){if(await this.attachmentStorage.getItem(t))return this.constructInstance(new Mi(this.attachmentStorage,t))}async create(t,n){return await this.attachmentStorage.setItem(t,n),this.constructInstance(new Mi(this.attachmentStorage,t))}async remove(t){await this.attachmentStorage.deleteItem(t)}async list(){const t=await this.attachmentStorage.getItem(null);return Promise.all(H.values(t).map(n=>this.constructInstance(new Mi(this.attachmentStorage,n.id))))}}class iy{constructor(t){ke(this,"rootRef");this.rootRef=zt.observable({current:t})}async deleteItem(t){zt.runInAction(()=>{H.unset(this.rootRef.current,[t])})}getItem(t){const n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?zt.toJS(this.rootRef.current):H.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(H.isObject(n))zt.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else zt.runInAction(()=>{H.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,r){return zt.reaction(()=>this.getValueFromRoot(t),(i,o)=>{n(i,o)},{requiresObservable:!0,fireImmediately:H.get(r,"fireImmediately",!1)})}}class LL{constructor(){ke(this,"channels",new Map);ke(this,"globalChannel",new Qc.default)}getChannel(t){const n=this.channels.get(t);if(n)return n;const r=new Qc.default;return this.channels.set(t,r),r}}class VL{constructor(t){ke(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 LL,instanceData:new iy(t.viz.conf)};return this.instances.set(t.id,r),r}}function oy(e,t,n,r){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new iy({}),colorPalette:{getColor(){return()=>""}},data:t,variables:r}}const zL=e=>{const{panel:t,vizManager:n,data:r,variables:i}=e,o=n.resolveComponent(t.viz.type),a=n.getOrCreateInstance(t),s={...oy(a,r,n,i),viewport:{width:t.layout.w,height:t.layout.h}},u=o.viewRender;return l(u,{context:s,instance:a,...H.omit(e,["panel","vizManager","data"])})},FL=e=>{const{vizManager:t,panel:n,panelInfoEditor:r,data:i,variables:o}=e,a=t.resolveComponent(n.viz.type),s=t.getOrCreateInstance(n),u={...oy(s,i,t,o),panelInfoEditor:r},c=a.configRender;return l(c,{context:u,instance:s,...H.omit(e,["panel","vizManager","data","panelInfoEditor"])})},ay=(e,t)=>{const n=Ni.default.bezier(e),r=Ni.default.bezier(t);return function(i){return i<50?n(i*2/100).hex():r((i-50)*2/100).hex()}},rs=e=>{const t=Ni.default.bezier(e);return function(n){return t(n/100).hex()}},BL={type:"interpolation",displayName:"Red / Green",getColor:ay(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},GL={type:"interpolation",displayName:"Yellow / Blue",getColor:ay(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},jL={type:"interpolation",displayName:"Red",getColor:rs(["#fff7f1","darkred"]),name:"red",category:"sequential"},KL={type:"interpolation",displayName:"Green",getColor:rs(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},HL={type:"interpolation",displayName:"Blue",getColor:rs(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},qL={type:"interpolation",displayName:"Orange",getColor:rs(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"},sy="@devtable/dashboard",oc="7.20.1",ly="Apache-2.0",uy={access:"public",registry:"https://registry.npmjs.org/"},cy=["dist"],dy="./dist/dashboard.umd.js",fy="./dist/dashboard.es.js",py="./dist/index.d.ts",hy={".":{import:"./dist/dashboard.es.js",require:"./dist/dashboard.umd.js"},"./dist/style.css":{import:"./dist/style.css",require:"./dist/style.css"}},gy={"dev-build":"tsc && vite build --watch",build:"tsc && vite build",preview:"vite preview",test:"vitest","test:ui":"vitest --ui",coverage:"vitest --coverage"},vy={"@monaco-editor/react":"4.4.6","@types/chroma-js":"^2.1.4","file-saver":"2.0.5","performant-array-to-tree":"1.11.0",popmotion:"^11.0.3","rc-tree-select":"5.5.5",reactflow:"^11.5.3"},my={"@mantine/core":"5.9.5","@mantine/dates":"5.9.5","@mantine/form":"5.9.5","@mantine/hooks":"5.9.5","@mantine/modals":"5.9.5","@mantine/notifications":"5.9.5","@mantine/prism":"5.9.5","@mantine/tiptap":"5.9.5","@tabler/icons":"^1.118.0","@testing-library/cypress":"^8.0.3","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/react-hooks":"^8.0.1","@testing-library/user-event":"^14.3.0","@tiptap/extension-code-block-lowlight":"^2.0.0-beta.209","@tiptap/extension-color":"^2.0.0-beta.209","@tiptap/extension-highlight":"^2.0.0-beta.209","@tiptap/extension-link":"^2.0.0-beta.209","@tiptap/extension-placeholder":"^2.0.0-beta.209","@tiptap/extension-subscript":"^2.0.0-beta.209","@tiptap/extension-superscript":"^2.0.0-beta.209","@tiptap/extension-text-align":"^2.0.0-beta.209","@tiptap/extension-text-style":"^2.0.0-beta.209","@tiptap/extension-underline":"^2.0.0-beta.209","@tiptap/react":"^2.0.0-beta.209","@tiptap/starter-kit":"^2.0.0-beta.209","@types/crypto-js":"v4.1.1","@types/d3-array":"3.0.3","@types/eventemitter2":"^4.1.0","@types/file-saver":"2.0.5","@types/lodash":"^4.14.182","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/react-grid-layout":"^1.3.2",ahooks:"^3.3.11",ajv:"8.11.0",axios:"^0.27.2","crypto-js":"^4.1.1",cypress:"^10.6.0","cypress-wait-until":"^1.7.2",echarts:"^5.3.2","echarts-for-react":"^3.0.2","echarts-gl":"^2.0.9","echarts-stat":"1.2.0",jsdom:"^20.0.0","jsdom-testing-mocks":"^1.5.0",lodash:"^4.17.21",lowlight:"^2.8.0",numbro:"^2.3.6","prosemirror-commands":"^1.5.0","prosemirror-dropcursor":"^1.6.1","prosemirror-gapcursor":"^1.3.1","prosemirror-history":"^1.3.0","prosemirror-keymap":"^1.2.0","prosemirror-schema-list":"^1.2.2","react-grid-layout":"^1.3.4","react-hook-form":"^7.31.2","rollup-plugin-visualizer":"5.6.0","tabler-icons-react":"^1.48.0",typescript:"^4.6.3"},yy={"@emotion/react":"11.10.0","@mantine/core":"5.9.5","@mantine/dates":"5.9.5","@mantine/form":"5.9.5","@mantine/hooks":"5.9.5","@mantine/modals":"5.9.5","@mantine/notifications":"5.9.5","@mantine/prism":"5.9.5","@mantine/tiptap":"5.9.5","@tabler/icons":"^1.118.0","@tanstack/react-table":"^8.5.13","@tiptap/extension-code-block-lowlight":"^2.0.0-beta.209","@tiptap/extension-color":"^2.0.0-beta.209","@tiptap/extension-highlight":"^2.0.0-beta.209","@tiptap/extension-link":"^2.0.0-beta.209","@tiptap/extension-placeholder":"^2.0.0-beta.209","@tiptap/extension-subscript":"^2.0.0-beta.209","@tiptap/extension-superscript":"^2.0.0-beta.209","@tiptap/extension-text-align":"^2.0.0-beta.209","@tiptap/extension-text-style":"^2.0.0-beta.209","@tiptap/extension-underline":"^2.0.0-beta.209","@tiptap/react":"^2.0.0-beta.209","@tiptap/starter-kit":"^2.0.0-beta.209",ahooks:"^3.3.11",axios:"^0.27.2","chroma-js":"^2.4.2","d3-array":"3.2.0","d3-regression":"1.2.8",dayjs:"1.11.6",echarts:"^5.3.2","echarts-for-react":"^3.0.2","echarts-gl":"^2.0.9","echarts-stat":"1.2.0",eventemitter2:"^6.4.6",jszip:"3.10.1",lodash:"^4.17.21",lowlight:"^2.8.0",mobx:"^6.6.1","mobx-react-lite":"^3.4.0","mobx-state-tree":"^5.1.5",numbro:"^2.3.6","prosemirror-commands":"^1.5.0","prosemirror-dropcursor":"^1.6.1","prosemirror-gapcursor":"^1.3.1","prosemirror-history":"^1.3.0","prosemirror-keymap":"^1.2.0","prosemirror-schema-list":"^1.2.2",react:"^16.8.0 || 17.x || 18.x","react-dom":"^16.8.0 || 17.x || 18.x","react-grid-layout":"^1.3.4","react-hook-form":"^7.31.2","react-virtual":"^2.10.4","tabler-icons-react":"^1.48.0"},WL=Object.freeze(Object.defineProperty({__proto__:null,name:sy,version:oc,license:ly,publishConfig:uy,files:cy,main:dy,module:fy,types:py,exports:hy,scripts:gy,dependencies:vy,devDependencies:my,peerDependencies:yy,default:{name:sy,version:oc,license:ly,publishConfig:uy,files:cy,main:dy,module:fy,types:py,exports:hy,scripts:gy,dependencies:vy,devDependencies:my,peerDependencies:yy}},Symbol.toStringTag,{value:"Module"}));class UL{constructor(t){ke(this,"staticColors",new Map);ke(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 YL{constructor(){ke(this,"plugins",new Map);ke(this,"vizComponents",new Map);ke(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 XL{constructor(){ke(this,"migrations",[])}version(t,n){return this.migrations.push({version:t,handler:n}),this}run(t,n,r){var a;if(t.from===t.to)return n;if(t.from>t.to)throw new Error(`Can not downgrade from version '${t.from}' to (${t.to})`);const i=this.migrations.filter(s=>s.version>t.from&&s.version<=t.to),o=H.orderBy(i,"version","asc");if(((a=H.last(o))==null?void 0:a.version)!==t.to)throw new Error(`Migration to version ${t.to} not found`);return o.reduce((s,u)=>u.handler(s,r),n)}}class en extends XL{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=H.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 H.get(n,"version",0)<this.VERSION}}const et=(e,t)=>{const[n,{setFalse:r}]=nt.useBoolean(!0),[i,o]=x.useState();x.useEffect(()=>(e.getItem(t).then(s=>{o(s),r()}),e.watchItem(t,s=>{o(s)})));const a=x.useCallback(async s=>{await e.setItem(t,s),o(s)},[e,t]);return{loading:n,value:i,set:a}},ac={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"}};Rt.use([ut.GridComponent,ut.VisualMapComponent,ut.LegendComponent,ut.TooltipComponent,Kn.CanvasRenderer]);function QL({context:e}){const{value:t}=et(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{x_axis_data_key:o,y_axis_data_key:a,z_axis_data_key:s,xAxis3D:u,yAxis3D:c,zAxis3D:f}=H.defaults({},t,ac),h=x.useMemo(()=>{const v=H.minBy(n,m=>m[s]);return H.get(v,s)},[n,s]),p=x.useMemo(()=>{const v=H.maxBy(n,m=>m[s]);return H.get(v,s)},[n,s]),g={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:h,max:p,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:u,yAxis3D:c,zAxis3D:f,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:n.map(v=>[v[o],v[a],v[s]])}]};return t?l(Hn.default,{echarts:Rt,option:g,style:{width:r,height:i}}):null}function ZL({label:e,required:t,value:n,onChange:r,data:i,clearable:o=!1,sx:a,...s},u){const c=W.default.useMemo(()=>{if(!Array.isArray(i)||i.length===0)return[];const h=Object.keys(i[0]).map(p=>({label:p,value:p}));return o?h.concat([{label:"unset",value:""}]):h},[i]);return l(d.Select,{ref:u,label:e,data:c,value:n,onChange:r,required:t,sx:a,...s})}const mt=W.default.forwardRef(ZL);function JL({context:e}){const{value:t,set:n}=et(e.instanceData,"config"),r=e.data,i=H.defaults({},t,ac),{control:o,handleSubmit:a,reset:s}=G.useForm({defaultValues:i});return x.useEffect(()=>{s(i)},[t]),t?l(d.Stack,{mt:"md",spacing:"xs",children:b("form",{onSubmit:a(n),children:[l(d.Text,{children:"X Axis"}),b(d.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[l(G.Controller,{name:"x_axis_data_key",control:o,render:({field:u})=>l(mt,{label:"Data Field",required:!0,data:r,...u})}),l(G.Controller,{name:"xAxis3D.name",control:o,render:({field:u})=>l(d.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),l(d.Text,{mt:"lg",children:"Y Axis"}),b(d.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[l(G.Controller,{name:"y_axis_data_key",control:o,render:({field:u})=>l(mt,{label:"Data Field",required:!0,data:r,...u})}),l(G.Controller,{name:"yAxis3D.name",control:o,render:({field:u})=>l(d.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),l(d.Text,{mt:"lg",children:"Z Axis"}),b(d.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[l(G.Controller,{name:"z_axis_data_key",control:o,render:({field:u})=>l(mt,{label:"Data Field",required:!0,data:r,...u})}),l(G.Controller,{name:"zAxis3D.name",control:o,render:({field:u})=>l(d.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),l(d.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:b(d.Button,{color:"blue",type:"submit",children:[l(te.DeviceFloppy,{size:20}),l(d.Text,{ml:"md",children:"Save"})]})})]})}):null}class eV extends en{constructor(){super(...arguments);ke(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const tV={displayName:"Bar Chart (3D)",migrator:new eV,name:"bar-3d",viewRender:QL,configRender:JL,createConfig(){return{version:1,config:H.cloneDeep(ac)}}},Fn={mantissa:0,output:"number",trimMantissa:!1,average:!1};function nV({value:e,onChange:t},n){const r=s=>{t({...e,output:s})},i=s=>{const u=s===0?!1:e.trimMantissa;t({...e,mantissa:s,trimMantissa:u})},o=s=>{t({...e,trimMantissa:s.currentTarget.checked})},a=s=>{t({...e,average:s.currentTarget.checked})};return b(d.Stack,{ref:n,children:[b(d.Group,{grow:!0,children:[l(d.Select,{label:"Format",data:[{label:"1234",value:"number"},{label:"99%",value:"percent"}],value:e.output,onChange:r,sx:{flexGrow:1}}),l(d.Switch,{label:b(d.Stack,{spacing:0,children:[l(d.Text,{children:"Average"}),l(d.Text,{size:12,color:"gray",children:"like 1.234k, 1.234m"})]}),checked:e.average,onChange:a,disabled:e.output!=="number",sx:{flexGrow:1},styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"},label:{display:"block"}}})]}),b(d.Group,{grow:!0,children:[l(d.NumberInput,{label:"Mantissa",defaultValue:0,min:0,step:1,max:4,value:e.mantissa,onChange:i}),l(d.Switch,{label:"Trim mantissa",checked:e.trimMantissa,onChange:o,disabled:e.mantissa===0,styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"}}})]}),b(d.Stack,{spacing:0,children:[l(d.Text,{weight:"bold",children:"Preview"}),l(Wr,{children:b(d.Group,{position:"apart",children:[b(d.Text,{size:12,color:"gray",children:["123456789 ",l(te.ArrowRight,{size:9})," ",Ft.default(123456789).format(e)]}),b(d.Text,{size:12,color:"gray",children:["1234 ",l(te.ArrowRight,{size:9})," ",Ft.default(1234).format(e)]}),b(d.Text,{size:12,color:"gray",children:["0.1234 ",l(te.ArrowRight,{size:9})," ",Ft.default(.1234).format(e)]})]})})]})]})}const jr=W.default.forwardRef(nV),Kr={enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
152
- `)},Er={x_axis:{width:80,overflow:"truncate",ellipsis:"..."},tooltip:{width:200,overflow:"break",ellipsis:"..."}},by={id:"builtin:echarts:click-echart:series",displayName:"Click Chart Series",nameRender:iV,configRender:rV,payload:[{name:"type",description:"Always 'click'",valueType:"string"},{name:"seriesType",description:"'boxplot'",valueType:"string"},{name:"name",description:"Name of the series clicked",valueType:"string"},{name:"color",description:"Color",valueType:"string"},{name:"value",description:"Record of 'name', 'min', 'q1', 'median', 'q3', 'max'",valueType:"object"},{name:"rowData",description:"Data of the row",valueType:"object"}]};function rV(e){return l(De,{})}function iV(e){return l(d.Text,{children:"Click chart's series"})}const sc={x_axis:{name:"X Axis",data_key:"",axisLabel:{rotate:0,formatter:{...Kr},overflow:Er}},y_axis:{name:"Y Axis",data_key:"value",label_formatter:Fn},color:"#228be6",reference_lines:[]},Oi=(e,t)=>{const[n,r]=x.useState([]);return x.useEffect(()=>e.watchTriggerSnapshotList(i=>r(i.filter(o=>o.schemaRef===t))),[]),n},Di=({vizManager:e,instance:t})=>nt.useCreation(()=>new zc(t,e.resolveComponent(t.type),ms),[t,e]),wy="__TRIGGERS";class oV{constructor(t,n){ke(this,"attachments");this.instance=t,this.component=n;const r=async i=>{const{id:o,schemaRef:a}=await i.getItem(null);return{id:o,schemaRef:a,triggerData:new Mi(i,"data")}};this.attachments=new ic(t,wy,r)}watchTriggerSnapshotList(t){return this.instance.instanceData.watchItem(wy,n=>{const r=H.values(n).map(i=>({id:H.get(i,"id"),schemaRef:H.get(i,"schemaRef"),config:zt.toJS(H.get(i,"data.config"))}));t(r)},{fireImmediately:!0})}async createOrGetTrigger(t,n,r={recreate:!1}){var s;if(!this.getTriggerSchemaList().some(u=>u.id===n.id))throw new Error(`Trigger schema '${n.id}' is not defined in component '${this.component.name}'`);const 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:((s=n==null?void 0:n.createDefaultConfig)==null?void 0:s.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(s=>s.id===r.schemaRef),o=i==null?void 0:i.migrator,a={configData:r.triggerData};return o&&await o.needMigration(a)?()=>o.migrate(a):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 So=x.forwardRef(function({value:t,onChange:n,...r},i){return l(d.TextInput,{ref:i,value:t,onChange:n,...r})}),aV=[{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 sV({label:e,value:t,onChange:n},r){x.useEffect(()=>{typeof t=="string"&&(console.log(t),n({type:t,config:{}}))},[t,n]);const i=a=>{n(a==="quantile"?{type:"quantile",config:{p:.99}}:{type:a,config:{}})},o=a=>{n({type:"quantile",config:{p:a}})};return b(d.Group,{grow:!0,noWrap:!0,pt:"sm",children:[l(d.Select,{ref:r,label:e,data:aV,value:t.type,onChange:i}),t.type==="quantile"&&l(d.NumberInput,{label:"p",value:t.config.p,onChange:o,precision:2,min:.05,step:.05,max:1})]})}const xy=W.default.forwardRef(sV);function lV({label:e,value:t,onChange:n},r){const[i,o]=W.default.useState(Array.isArray(t)?[...t]:[]),a=W.default.useCallback(()=>{o(p=>[...p,""])},[o]),s=W.default.useCallback(p=>{o(g=>(g.splice(p,1),[...g]))},[o]),u=W.default.useMemo(()=>!ye.default.isEqual(i,t),[i,t]),c=()=>{n(i.map(p=>p.toString()))},f=d.useMantineTheme(),h=W.default.useMemo(()=>Object.entries(f.colors).map(([p,g])=>g[6]),[f]);return b(De,{children:[b(d.Group,{position:"left",ref:r,children:[l(d.Text,{children:e}),l(d.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!u,onClick:c,children:l(te.DeviceFloppy,{size:20})})]}),b(d.Group,{children:[i.map((p,g)=>l(d.ColorInput,{value:p,onChange:v=>{o(m=>(m.splice(g,1,v),[...m]))},swatches:h,rightSection:l(d.ActionIcon,{onClick:()=>s(g),color:"red",children:l(te.Trash,{size:14})}),sx:{width:"45%"}})),l(d.ActionIcon,{onClick:a,color:"blue",variant:"outline",children:l(te.PlaylistAdd,{size:20})})]})]})}const uV=W.default.forwardRef(lV);function cV({value:e,onChange:t},n){const{colorManager:r}=x.useContext(Gn),i=W.default.useMemo(()=>r.getStaticColors().map(s=>({label:s.name,group:s.category,value:s.value})),[r]),o=W.default.useMemo(()=>i.some(a=>a.value===e),[e,i]);return b(d.Group,{position:"apart",spacing:4,ref:n,children:[l(d.TextInput,{placeholder:"Set any color",value:o?"":e,onChange:a=>t(a.currentTarget.value),rightSection:l(d.ColorSwatch,{color:o?"transparent":e,radius:4}),variant:o?"filled":"default",sx:{maxWidth:"46%",flexGrow:1}}),l(d.Text,{sx:{flexGrow:0},children:"or"}),l(d.Select,{data:i,value:e,onChange:t,variant:o?"default":"filled",placeholder:"Pick a theme color",icon:l(d.ColorSwatch,{color:o?e:"transparent",radius:4}),sx:{maxWidth:"46%",flexGrow:1}})]})}const kn=W.default.forwardRef(cV),is=[{label:"initial",value:0},{label:"500",value:25},{label:"700",value:50},{label:"semibold",value:75},{label:"bold",value:100}];function dV({label:e,value:t,onChange:n},r){var a,s;const[i,o]=W.default.useState((s=(a=is.find(u=>u.label===t))==null?void 0:a.value)!=null?s:is[0].value);return W.default.useEffect(()=>{const u=is.find(c=>c.value===i);u&&n(u.label)},[i]),b(d.Stack,{spacing:0,mt:"sm",mb:"lg",children:[l(d.Text,{size:"sm",children:e}),l(d.Slider,{label:null,marks:is,value:i,onChange:o,step:25,placeholder:"Pick a font size",px:"1em",ref:r})]})}const Sy=W.default.forwardRef(dV);function fV({label:e,value:t,onChange:n,type:r},i){const[o,a]=W.default.useState(Array.isArray(t)?[...t]:[]),s=W.default.useCallback(()=>{a(h=>[...h,""])},[a]),u=W.default.useCallback(h=>{a(p=>(p.splice(h,1),[...p]))},[a]),c=W.default.useMemo(()=>!ye.default.isEqual(o.map(String),t.map(String)),[o,t]),f=()=>{n(o.map(h=>r==="number"?Number(h):h.toString()))};return b(De,{children:[b(d.Group,{position:"left",ref:i,children:[l(d.Text,{children:e}),l(d.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!c,onClick:f,children:l(te.DeviceFloppy,{size:20})})]}),b(d.Group,{children:[o.map((h,p)=>l(d.TextInput,{type:r,value:h,onChange:g=>{const v=g.currentTarget.value;a(m=>(m.splice(p,1,v),[...m]))},rightSection:l(d.ActionIcon,{onClick:()=>u(p),color:"red",children:l(te.Trash,{size:14})}),sx:{width:"45%"}})),l(d.ActionIcon,{onClick:s,color:"blue",variant:"outline",children:l(te.PlaylistAdd,{size:20})})]})]})}const pV=W.default.forwardRef(fV),Cy=W.default.forwardRef(function({value:t,onChange:n},r){const i=t.color.type,o=(a,s)=>{const u=ye.default.cloneDeep(t);ye.default.set(u,a,s),n(u)};return b(De,{children:[l(d.Divider,{my:"xs",label:"Typography",labelPosition:"center"}),l(d.Stack,{children:l(d.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",sx:{flex:1},value:t.size,onChange:a=>o("size",a.currentTarget.value)})}),l(d.Group,{position:"apart",grow:!0,sx:{"> *":{flexGrow:1,maxWidth:"100%"}},children:l(Sy,{label:"Font Weight",value:t.weight,onChange:a=>o("weight",a)})}),l(d.Divider,{my:"xs",label:"Style",labelPosition:"center"}),b(d.Stack,{children:[l(d.Select,{label:"Color Type",data:[{label:"Static Color",value:"static"},{label:"Continuous Color",value:"continuous"}],value:t.color.type,onChange:a=>o("color.type",a)}),i==="static"&&l(kn,{value:t.color.staticColor,onChange:a=>o("color.staticColor",a)}),i==="continuous"&&b(De,{children:[l(pV,{label:"Value Range",value:t.color.valueRange,type:"number",onChange:a=>o("color.valueRange",a)}),l(uV,{label:"Color Range",value:t.color.colorRange,onChange:a=>o("color.colorRange",a)})]})]})]})});W.default.forwardRef(function({value:t,onChange:n,data:r,withStyle:i=!0},o){const a=(s,u)=>{const c=ye.default.cloneDeep(t);ye.default.set(c,s,u),n(c)};return b(d.Box,{px:"sm",py:"md",ref:o,children:[l(d.Text,{weight:"bold",pb:0,children:t.name}),l(d.Divider,{my:"xs",label:"Data",labelPosition:"center"}),b(d.Group,{grow:!0,noWrap:!0,children:[l(d.TextInput,{label:"Name",required:!0,value:t.name,onChange:s=>a("name",s.currentTarget.value)}),l(mt,{label:"Data Field",required:!0,data:r,value:t.data_field,onChange:s=>a("data_field",s)})]}),l(xy,{label:"Aggregation",value:t.aggregation,onChange:s=>a("aggregation",s)}),l(d.Divider,{my:"xs",label:"Format",labelPosition:"center"}),l(jr,{value:t.formatter,onChange:s=>a("formatter",s)}),i&&l(Cy,{value:t,onChange:n})]})});function hV(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 gV(e,t){const n=e[t],r=Number(n);return isFinite(r)?r:0}function lc(e,t,n){var i,o,a,s;const r=e.map(u=>gV(u,t));switch(n.type){case"sum":return ye.default.sum(r);case"mean":return ye.default.mean(r);case"median":return hV(r);case"max":return(i=ye.default.max(r))!=null?i:0;case"min":return(o=ye.default.min(r))!=null?o:0;case"quantile":return(a=No.quantile(r,n.config.p))!=null?a:0;default:return(s=e[0])==null?void 0:s[t]}}var _y=function(){},Co=function(){};process.env.NODE_ENV!=="production"&&(_y=function(e,t){!e&&typeof console<"u"&&console.warn(t)},Co=function(e,t){if(!e)throw new Error(t)});const vV=(e,t,n)=>Math.min(Math.max(n,e),t),Ey=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},uc=(e,t,n)=>-n*e+n*t+e,Ty=(e,t)=>n=>Math.max(Math.min(n,t),e),_o=e=>e%1?Number(e.toFixed(5)):e,os=/(-)?([\d]*\.?[\d])+/g,cc=/(#[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,mV=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;function Eo(e){return typeof e=="string"}const as={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},My=Object.assign(Object.assign({},as),{transform:Ty(0,1)});Object.assign(Object.assign({},as),{default:1});const To=(e=>({test:t=>Eo(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}))("%");Object.assign(Object.assign({},To),{parse:e=>To.parse(e)/100,transform:e=>To.transform(e*100)});const dc=(e,t)=>n=>Boolean(Eo(n)&&mV.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),Oy=(e,t,n)=>r=>{if(!Eo(r))return r;const[i,o,a,s]=r.match(os);return{[e]:parseFloat(i),[t]:parseFloat(o),[n]:parseFloat(a),alpha:s!==void 0?parseFloat(s):1}},Hr={test:dc("hsl","hue"),parse:Oy("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+To.transform(_o(t))+", "+To.transform(_o(n))+", "+_o(My.transform(r))+")"},yV=Ty(0,255),fc=Object.assign(Object.assign({},as),{transform:e=>Math.round(yV(e))}),Tr={test:dc("rgb","red"),parse:Oy("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+fc.transform(e)+", "+fc.transform(t)+", "+fc.transform(n)+", "+_o(My.transform(r))+")"};function bV(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 pc={test:dc("#"),parse:bV,transform:Tr.transform},ss={test:e=>Tr.test(e)||pc.test(e)||Hr.test(e),parse:e=>Tr.test(e)?Tr.parse(e):Hr.test(e)?Hr.parse(e):pc.parse(e),transform:e=>Eo(e)?e:e.hasOwnProperty("red")?Tr.transform(e):Hr.transform(e)},Dy="${c}",Ry="${n}";function wV(e){var t,n,r,i;return isNaN(e)&&Eo(e)&&((n=(t=e.match(os))===null||t===void 0?void 0:t.length)!==null&&n!==void 0?n:0)+((i=(r=e.match(cc))===null||r===void 0?void 0:r.length)!==null&&i!==void 0?i:0)>0}function ky(e){typeof e=="number"&&(e=`${e}`);const t=[];let n=0;const r=e.match(cc);r&&(n=r.length,e=e.replace(cc,Dy),t.push(...r.map(ss.parse)));const i=e.match(os);return i&&(e=e.replace(os,Ry),t.push(...i.map(as.parse))),{values:t,numColors:n,tokenised:e}}function Ay(e){return ky(e).values}function Py(e){const{values:t,numColors:n,tokenised:r}=ky(e),i=t.length;return o=>{let a=r;for(let s=0;s<i;s++)a=a.replace(s<n?Dy:Ry,s<n?ss.transform(o[s]):_o(o[s]));return a}}const xV=e=>typeof e=="number"?0:e;function SV(e){const t=Ay(e);return Py(e)(t.map(xV))}const Ny={test:wV,parse:Ay,createTransformer:Py,getAnimatableNone:SV};function hc(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 Iy({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,o=0,a=0;if(!t)i=o=a=n;else{const s=n<.5?n*(1+t):n+t-n*t,u=2*n-s;i=hc(u,s,e+1/3),o=hc(u,s,e),a=hc(u,s,e-1/3)}return{red:Math.round(i*255),green:Math.round(o*255),blue:Math.round(a*255),alpha:r}}const CV=(e,t,n)=>{const r=e*e,i=t*t;return Math.sqrt(Math.max(0,n*(i-r)+r))},_V=[pc,Tr,Hr],$y=e=>_V.find(t=>t.test(e)),Ly=e=>`'${e}' is not an animatable color. Use the equivalent color code instead.`,Vy=(e,t)=>{let n=$y(e),r=$y(t);Co(!!n,Ly(e)),Co(!!r,Ly(t));let i=n.parse(e),o=r.parse(t);n===Hr&&(i=Iy(i),n=Tr),r===Hr&&(o=Iy(o),r=Tr);const a=Object.assign({},i);return s=>{for(const u in a)u!=="alpha"&&(a[u]=CV(i[u],o[u],s));return a.alpha=uc(i.alpha,o.alpha,s),n.transform(a)}},EV=e=>typeof e=="number",TV=(e,t)=>n=>t(e(n)),zy=(...e)=>e.reduce(TV);function Fy(e,t){return EV(e)?n=>uc(e,t,n):ss.test(e)?Vy(e,t):jy(e,t)}const By=(e,t)=>{const n=[...e],r=n.length,i=e.map((o,a)=>Fy(o,t[a]));return o=>{for(let a=0;a<r;a++)n[a]=i[a](o);return n}},MV=(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]=Fy(e[i],t[i]));return i=>{for(const o in r)n[o]=r[o](i);return n}};function Gy(e){const t=Ny.parse(e),n=t.length;let r=0,i=0,o=0;for(let a=0;a<n;a++)r||typeof t[a]=="number"?r++:t[a].hue!==void 0?o++:i++;return{parsed:t,numNumbers:r,numRGB:i,numHSL:o}}const jy=(e,t)=>{const n=Ny.createTransformer(t),r=Gy(e),i=Gy(t);return r.numHSL===i.numHSL&&r.numRGB===i.numRGB&&r.numNumbers>=i.numNumbers?zy(By(r.parsed,i.parsed),n):(_y(!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.`),a=>`${a>0?t:e}`)},OV=(e,t)=>n=>uc(e,t,n);function DV(e){if(typeof e=="number")return OV;if(typeof e=="string")return ss.test(e)?Vy:jy;if(Array.isArray(e))return By;if(typeof e=="object")return MV}function RV(e,t,n){const r=[],i=n||DV(e[0]),o=e.length-1;for(let a=0;a<o;a++){let s=i(e[a],e[a+1]);if(t){const u=Array.isArray(t)?t[a]:t;s=zy(u,s)}r.push(s)}return r}function kV([e,t],[n]){return r=>n(Ey(e,t,r))}function AV(e,t){const n=e.length,r=n-1;return i=>{let o=0,a=!1;if(i<=e[0]?a=!0:i>=e[r]&&(o=r-1,a=!0),!a){let u=1;for(;u<n&&!(e[u]>i||u===r);u++);o=u-1}const s=Ey(e[o],e[o+1],i);return t[o](s)}}function ls(e,t,{clamp:n=!0,ease:r,mixer:i}={}){const o=e.length;Co(o===t.length,"Both input and output ranges must be the same length"),Co(!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 a=RV(t,r,i),s=o===2?kV(e,a):AV(e,a);return n?u=>s(vV(e[0],e[o-1],u)):s}class PV{constructor({valueRange:t,colorRange:n}){ke(this,"mapper");this.mapper=ls(t,n)}getColor(t){return this.mapper(t)}}function NV(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array(${e.length})`:e.toString()}function us({data_field:e,aggregation:t},n){return lc(n,e,t)}function Ri({formatter:e},t){return["string","number"].includes(typeof t)?Ft.default(t).format(e):NV(t)}function IV(e,t){if(e.type==="static")return e.staticColor;if(e.type==="continuous")try{return new PV(e).getColor(t)}catch{return"black"}return"black"}function Ky(e,t){const{color:n,data_field:r,aggregation:i,size:o,weight:a}=e,s=lc(t,r,i),u=Ri(e,s);return l(d.Text,{sx:{fontSize:o,display:"inline"},color:IV(n,s),weight:a,children:u})}function $V(e,t){const n={};return e.forEach(r=>{const i=r.name;n[i]=Ky(r,t)}),n}function LV(e){return e.split(" ").map((t,n)=>b(W.default.Fragment,{children:[t,"\xA0"]},n))}function VV(e){const n=e.replaceAll("<br />","<br/>").replaceAll(`
151
+ `)},fL=({value:e,onChange:t})=>{const[n,{setTrue:r,setFalse:i}]=nt.useBoolean(),[o,a]=x.useState(e!=null?e:nc),s=p=>{a({...o,enabled:p})},u=()=>{i();const{enabled:p,func_content:g}=o,v={enabled:p,func_content:g};a(v),t(v)},c=()=>{i(),a(e)},f=p=>{a(g=>({...g,func_content:p}))},h=()=>{f(nc.func_content)};return b(De,{children:[l(d.ActionIcon,{size:"lg",color:"blue",variant:"filled",mt:26,onClick:r,sx:{flexGrow:0},children:l(te.Settings,{size:14})}),l(d.Modal,{size:800,title:"Customize modal title",opened:n,onClose:i,closeOnClickOutside:!1,withCloseButton:!1,children:n&&b(d.Stack,{children:[l(d.Checkbox,{mt:10,label:"Enabled",checked:o.enabled,onChange:p=>s(p.currentTarget.checked)}),l(dL,{value:o.func_content,onChange:f,disabled:!o.enabled}),b(d.Group,{position:"apart",children:[l(d.Button,{onClick:h,color:"red",leftIcon:l(te.Recycle,{size:20}),children:"Rest"}),b(d.Group,{position:"right",children:[l(d.Button,{onClick:c,variant:"subtle",children:"Cancel"}),l(d.Button,{onClick:u,children:"OK"})]})]})]})})]})},pL=se.observer(()=>{const t=Ze().views.VIE;if(!t||t.type!==Ye.Modal)return null;const n=t.config,r=n.custom_modal_title.value;return b(d.Stack,{children:[l(d.Divider,{mt:8,label:"Modal settings",labelPosition:"center"}),b(d.Flex,{gap:10,children:[l(d.TextInput,{label:"Modal Title",value:r,onChange:ye.default.noop,disabled:!0,sx:{flexGrow:1}}),l(fL,{value:n.custom_modal_title,onChange:n.custom_modal_title.replace})]}),b(d.Group,{grow:!0,children:[l(d.TextInput,{label:"Width",value:n.width,onChange:i=>n.setWidth(i.currentTarget.value),placeholder:"600px / 50vw"}),l(d.TextInput,{label:"Height",value:n.height,onChange:i=>n.setHeight(i.currentTarget.value),placeholder:"600px / 50vw"})]})]})}),hL=se.observer(()=>b(De,{children:[l(sL,{}),l(pL,{}),l(cL,{})]})),gL=[{label:"Division",value:Ye.Division},{label:"Modal",value:Ye.Modal},{label:"Tabs",value:Ye.Tabs}],vL=se.observer(()=>{const t=Ze().views.VIE;return t?b(d.Stack,{sx:{position:"relative"},children:[l(d.TextInput,{label:"Name",value:t.name,onChange:n=>{t.setName(n.currentTarget.value)}}),l(d.Select,{label:"Type",withinPortal:!0,value:t.type,onChange:t.setType,data:gL}),l(hL,{})]}):null}),mL=se.observer(({opened:e,close:t})=>{var i;const n=Ze(),{freezeLayout:r}=W.default.useContext(_n);return W.default.useEffect(()=>{r(e)},[e]),l(d.Modal,{size:"500px",overflow:"inside",opened:e,onClose:t,withCloseButton:!1,styles:{header:{width:"100%"},title:{width:"100%"}},title:b(d.Group,{position:"apart",children:[b(d.Text,{sx:{flexGrow:1},children:["Editing ",(i=n.views.VIE)==null?void 0:i.name]}),l(d.ActionIcon,{size:18,color:"red",onClick:n.views.removeVIE,disabled:n.views.isVIETheFirstView,children:l(te.Trash,{size:18})})]}),trapFocus:!0,onDragStart:o=>{o.stopPropagation()},children:l(vL,{})})}),yL=x.forwardRef(({label:e,type:t,...n},r)=>t!=="TRIGGER_TO_ADD"?l("div",{ref:r,...n,children:b(d.Group,{noWrap:!0,position:"apart",children:[l(d.Text,{size:"sm","data-role":"label",children:e}),l(d.Text,{size:"xs",color:"dimmed","data-role":"description",children:t})]})}):l("div",{ref:r,...n,children:l(d.Group,{noWrap:!0,grow:!0,children:l(d.Text,{size:"sm",align:"center",color:"#228be6",children:e})})})),Km="TRIGGER_TO_ADD",bL=se.observer(({value:e,onChange:t,triggerAdd:n,triggerEdit:r,options:i})=>{const o=x.useMemo(()=>[...i,{label:"Add a View",value:Km,type:"TRIGGER_TO_ADD"}],[i,n]),a=s=>{s!==Km?t(s):n()};return b(d.Flex,{gap:0,sx:{minWidth:"400px"},children:[l(d.Select,{value:e,onChange:a,placeholder:"Pick a View",itemComponent:yL,data:o,nothingFound:"Empty",sx:{flexGrow:1,".mantine-Select-item[data-selected] .mantine-Text-root[data-role=description]":{color:"rgba(255,255,255,.7)"}},styles:{input:{borderTopRightRadius:0,borderBottomRightRadius:0}}}),l(d.ActionIcon,{onClick:r,variant:"default",size:36,sx:{borderLeft:0,borderTopLeftRadius:0,borderBottomLeftRadius:0,"&:active":{transform:"none",svg:{transform:"translateY(1px)"}}},children:l(te.Settings,{size:20})})]})}),wL=se.observer(()=>{const e=Ze(),[t,n]=x.useState(!1),r=()=>{n(!0)},i=()=>{n(!1)};return b(De,{children:[l(bL,{value:e.views.idOfVIE,onChange:e.views.setIDOfVIE,triggerAdd:e.views.addARandomNewView,triggerEdit:r,options:e.views.options}),l(mL,{opened:t,close:i})]})}),Hm={"> button":{"&:first-of-type":{borderTopRightRadius:0,borderBottomRightRadius:0,borderRightWidth:.5},":not(:first-of-type):not(:last-of-type)":{borderTopRightRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderBottomLeftRadius:0,borderLeftWidth:.5,borderRightWidth:.5},"&:last-of-type":{borderTopLeftRadius:0,borderBottomLeftRadius:0,borderLeftWidth:.5}}},qm=se.observer(function({saveChanges:t,inUseMode:n}){const r=Ze(),i=W.default.useCallback(()=>{const S=r.queries.json,E=r.views.json,M=r.sqlSnippets.json,A=r.filters.current,L=r.mock_context.current;return{filters:A,views:E,definition:{sqlSnippets:M,queries:S,mock_context:L},version:r.version}},[r]),o=()=>{r.reset()},a=r.changed,[s,u]=W.default.useState(!1),c=()=>u(!0),f=()=>u(!1),[h,p]=W.default.useState(!1),g=()=>p(!0),v=()=>p(!1),[m,w]=W.default.useState(!1),y=()=>w(!0),_=()=>w(!1),C=()=>{const S=JSON.stringify(i(),null,2);$$(r.name,S)};return n?null:b(d.Group,{position:"apart",pt:0,px:10,pb:"xs",children:[l(d.Group,{position:"left",children:l(wL,{})}),b(d.Group,{position:"right",sx:{button:{minWidth:"40px"}},children:[l(d.Button,{variant:"filled",size:"xs",disabled:!r.views.VIE,onClick:r.views.addAPanelToVIE,leftIcon:l(te.PlaylistAdd,{size:20}),children:"Add a Panel"}),b(d.Group,{spacing:0,sx:Hm,children:[l(d.Tooltip,{label:"Filters",children:l(d.ActionIcon,{variant:"default",size:"md",onClick:g,children:l(te.Filter,{size:20})})}),l(d.Tooltip,{label:"Data Settings",children:l(d.ActionIcon,{variant:"default",size:"md",onClick:c,children:l(te.Database,{size:20})})}),l(d.Tooltip,{label:"Interactions Viewer",children:l(d.ActionIcon,{variant:"default",size:"md",onClick:y,children:l(te.Link,{size:20})})})]}),b(d.Group,{spacing:0,sx:Hm,children:[l(d.Tooltip,{label:"Save Changes",children:l(d.ActionIcon,{variant:"default",size:"md",onClick:t,disabled:!a,children:l(te.DeviceFloppy,{size:20,color:"green"})})}),l(d.Tooltip,{label:"Revert Changes",children:l(d.ActionIcon,{variant:"default",size:"md",disabled:!a,onClick:o,children:l(te.Recycle,{size:20,color:"red"})})})]}),b(d.Menu,{width:180,trigger:"hover",children:[l(d.Menu.Target,{children:l(d.ActionIcon,{variant:"default",size:"md",children:l(te.Share,{size:20})})}),b(d.Menu.Dropdown,{children:[l(d.Menu.Item,{icon:l(te.Download,{size:14}),onClick:r.queries.downloadAllData,children:"Download Data"}),l(d.Menu.Item,{icon:l(te.Code,{size:14}),onClick:C,children:"Download Schema"})]})]})]}),l(aL,{opened:h,close:v}),l(K2,{opened:s,close:f}),l(N$,{opened:m,close:_})]})}),Wj="",Wm=Qt.Mark.create({name:"textStyle",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"span",getAttrs:e=>e.hasAttribute("style")?{}:!1}]},renderHTML({HTMLAttributes:e}){return["span",Qt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{removeEmptyTextStyle:()=>({state:e,commands:t})=>{const n=Qt.getMarkAttributes(e,this.type);return Object.entries(n).some(([,i])=>!!i)?!0:t.unsetMark(this.name)}}}}),Um=Qt.Extension.create({name:"color",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{color:{default:null,parseHTML:e=>{var t;return(t=e.style.color)===null||t===void 0?void 0:t.replace(/['"]+/g,"")},renderHTML:e=>e.color?{style:`color: ${e.color}`}:{}}}}]},addCommands(){return{setColor:e=>({chain:t})=>t().setMark("textStyle",{color:e}).run(),unsetColor:()=>({chain:e})=>e().setMark("textStyle",{color:null}).removeEmptyTextStyle().run()}}}),xL=/(?:^|\s)((?:==)((?:[^~=]+))(?:==))$/,SL=/(?:^|\s)((?:==)((?:[^~=]+))(?:==))/g,Ym=Qt.Mark.create({name:"highlight",addOptions(){return{multicolor:!1,HTMLAttributes:{}}},addAttributes(){return this.options.multicolor?{color:{default:null,parseHTML:e=>e.getAttribute("data-color")||e.style.backgroundColor,renderHTML:e=>e.color?{"data-color":e.color,style:`background-color: ${e.color}; color: inherit`}:{}}}:{}},parseHTML(){return[{tag:"mark"}]},renderHTML({HTMLAttributes:e}){return["mark",Qt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{setHighlight:e=>({commands:t})=>t.setMark(this.name,e),toggleHighlight:e=>({commands:t})=>t.toggleMark(this.name,e),unsetHighlight:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-h":()=>this.editor.commands.toggleHighlight()}},addInputRules(){return[Qt.markInputRule({find:xL,type:this.type})]},addPasteRules(){return[Qt.markPasteRule({find:SL,type:this.type})]}}),Xm=Qt.Extension.create({name:"placeholder",addOptions(){return{emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",placeholder:"Write something \u2026",showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[new r0.Plugin({props:{decorations:({doc:e,selection:t})=>{const n=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:r}=t,i=[];if(!n)return null;const o=e.type.createAndFill(),a=(o==null?void 0:o.sameMarkup(e))&&o.content.findDiffStart(e.content)===null;return e.descendants((s,u)=>{const c=r>=u&&r<=u+s.nodeSize,f=!s.isLeaf&&!s.childCount;if((c||!this.options.showOnlyCurrent)&&f){const h=[this.options.emptyNodeClass];a&&h.push(this.options.emptyEditorClass);const p=Wc.Decoration.node(u,u+s.nodeSize,{class:h.join(" "),"data-placeholder":typeof this.options.placeholder=="function"?this.options.placeholder({editor:this.editor,node:s,pos:u,hasAnchor:c}):this.options.placeholder});i.push(p)}return this.options.includeChildren}),Wc.DecorationSet.create(e,i)}}})]}}),Qm=Qt.Mark.create({name:"subscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sub"},{style:"vertical-align",getAttrs(e){return e!=="sub"?!1:null}}]},renderHTML({HTMLAttributes:e}){return["sub",Qt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{setSubscript:()=>({commands:e})=>e.setMark(this.name),toggleSubscript:()=>({commands:e})=>e.toggleMark(this.name),unsetSubscript:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-,":()=>this.editor.commands.toggleSubscript()}}}),Zm=Qt.Mark.create({name:"superscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sup"},{style:"vertical-align",getAttrs(e){return e!=="super"?!1:null}}]},renderHTML({HTMLAttributes:e}){return["sup",Qt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{setSuperscript:()=>({commands:e})=>e.setMark(this.name),toggleSuperscript:()=>({commands:e})=>e.toggleMark(this.name),unsetSuperscript:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-.":()=>this.editor.commands.toggleSuperscript()}}}),Jm=Qt.Extension.create({name:"textAlign",addOptions(){return{types:[],alignments:["left","center","right","justify"],defaultAlignment:"left"}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:e=>e.style.textAlign||this.options.defaultAlignment,renderHTML:e=>e.textAlign===this.options.defaultAlignment?{}:{style:`text-align: ${e.textAlign}`}}}}]},addCommands(){return{setTextAlign:e=>({commands:t})=>this.options.alignments.includes(e)?this.options.types.every(n=>t.updateAttributes(n,{textAlign:e})):!1,unsetTextAlign:()=>({commands:e})=>this.options.types.every(t=>e.resetAttributes(t,"textAlign"))}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign("left"),"Mod-Shift-e":()=>this.editor.commands.setTextAlign("center"),"Mod-Shift-r":()=>this.editor.commands.setTextAlign("right"),"Mod-Shift-j":()=>this.editor.commands.setTextAlign("justify")}}}),ey=Qt.Mark.create({name:"underline",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:e=>e.includes("underline")?{}:!1}]},renderHTML({HTMLAttributes:e}){return["u",Qt.mergeAttributes(this.options.HTMLAttributes,e),0]},addCommands(){return{setUnderline:()=>({commands:e})=>e.setMark(this.name),toggleUnderline:()=>({commands:e})=>e.toggleMark(this.name),unsetUnderline:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),rc={fontSize:"14px",lineHeight:"32px",color:"#3D3E45",ul:{paddingLeft:"2em",margin:"6px 0 0"},p:{margin:0},a:{WebkitTapHighlightColor:"transparent",color:"rgb(34, 139, 230)",textDecoration:"none","&:hover":{textDecoration:"underline"},"&:active, &:hover":{outlineWidth:0}},table:{tr:{"th, td":{padding:"0 .5em"}}},details:{summary:{listStyle:"none",cursor:"pointer",transition:"color 300ms ease",userSelect:"none"},"summary::-webkit-details-marker":{display:"none"},"summary:hover":{color:"black","&::before":{opacity:1}},"summary::before":{content:'"\u25BA"',fontSize:"10px",margin:"0px 5px",opacity:.5,display:"inline-block",transition:"opacity 300ms ease, transform 300ms ease"}},"details[open] summary::before":{transform:"rotate(90deg)"},"details + details":{marginTop:"10px"}},ty=({value:e,styles:t={}})=>{const n=Uc.useEditor({extensions:[Xc.default,ey,rt.Link,Zm,Qm,Ym,Jm.configure({types:["heading","paragraph"]}),Xm.configure({placeholder:"This is placeholder"}),Wm,Um],content:e,editable:!1}),r=x.useMemo(()=>ye.default.defaultsDeep({},{content:rc},t),[t]);return l(rt.RichTextEditor,{editor:n,styles:r,children:l(rt.RichTextEditor.Content,{})})};function CL(e){return e?["<p><br></p>","<p></p>"].includes(e):!0}const ny=se.observer(()=>{const{freezeLayout:e}=W.default.useContext(_n),[t,n]=W.default.useState(!1),{panel:r}=jt();return W.default.useEffect(()=>{e(t)},[t]),CL(r.description)?null:b(De,{children:[l(d.Modal,{opened:t,onClose:()=>n(!1),title:r.title,withCloseButton:!1,children:l(ty,{value:r.description,styles:{root:{border:"none"},content:{padding:0}}})}),l(d.Tooltip,{label:"Click to see description",position:"top-start",withinPortal:!0,children:l(d.ActionIcon,{variant:"subtle",color:"blue",onClick:()=>n(i=>!i),sx:{verticalAlign:"baseline",cursor:"pointer"},children:l(te.InfoCircle,{size:20})})})]})}),ry=e=>{const{title:t="Variables",variables:n}=e,r=wt.useClipboard(),i=o=>{r.copy(o),Po.showNotification({color:"green",message:"Copied to clipboard"})};return b(d.Paper,{withBorder:!0,p:"sm",children:[l(d.Text,{size:"xs",color:"dimmed",mb:"sm",children:t}),l(d.Stack,{style:{maxHeight:"500px"},children:n.map(o=>b(d.Text,{size:"sm",children:[b(d.Code,{color:"teal",children:["// ",o.description]}),l("br",{}),b(d.Code,{onClick:()=>i(o.name),style:{cursor:"pointer"},children:[o.name," : ",o.valueType]})]},o.name))})]})};class _L{constructor(t,n){ke(this,"operationId");ke(this,"operation");ke(this,"operationSchema");ke(this,"variables",[]);this.operationManager=t,this.instance=n,zt.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));zt.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 EL(e){return!!e.operationId}const TL=se.observer(({model:e,onClick:t})=>{var r;const n=(r=e.operationSchema)==null?void 0:r.displayName;return l(d.Button,{variant:"outline",onClick:t,children:n})}),ML=se.observer(({model:e})=>{const t={operation:e.operation,instance:e.instance,variables:[]};return x.createElement(e.operationSchema.configRender,t)});function OL({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 l(d.Select,{label:"Operation",data:n,onChange:r,value:e.operationSchema.id})}const DL=se.observer(e=>{const[t,{setTrue:n,setFalse:r}]=nt.useBoolean(!1),{operationManager:i,operationId:o,instance:a,variables:s}=e,u=nt.useCreation(()=>new _L(i,a),[i,a]);return nt.useAsyncEffect(async()=>{await u.configOperation(o,s)},[o,u]),EL(u)?b(De,{children:[l(TL,{model:u,onClick:n}),l(d.Modal,{size:600,opened:t,onClose:r,title:"Operation Settings",closeButtonLabel:"close",children:b(d.Stack,{children:[l(OL,{model:u}),l(ML,{model:u}),l(ry,{title:"Variables",variables:u.variables})]})})]}):null});class RL{constructor(t,n){ke(this,"triggerId");ke(this,"trigger");ke(this,"triggerSchema");ke(this,"sampleData");this.triggerManager=t,this.instance=n,zt.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));zt.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 kL(this)}}function kL(e){return!!e.triggerId&&!!e.triggerSchema}function AL(e,t){return nt.useCreation(()=>new RL(e,t),[e,t])}const PL=se.observer(({model:e,onClick:t})=>{const n=e.triggerSchema.nameRender,r={trigger:e.trigger,instance:e.instance,sampleData:e.sampleData};return l(d.Button,{variant:"outline",onClick:t,children:x.createElement(n,r)})}),NL=se.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 l(d.Select,{label:"Trigger",data:n,value:e.triggerSchema.id,onChange:r})}),IL=se.observer(({model:e})=>{const t={trigger:e.trigger,instance:e.instance,sampleData:e.sampleData};return x.createElement(e.triggerSchema.configRender,t)}),$L=se.observer(e=>{const[t,{setTrue:n,setFalse:r}]=nt.useBoolean(!1),i=e.model;return b(De,{children:[l(d.Modal,{opened:t,onClose:r,title:"Setup Trigger",closeButtonLabel:"close setup",children:b(d.Stack,{children:[l(NL,{model:i}),l(IL,{model:i}),l(ry,{title:"Payload",variables:i.triggerSchema.payload})]})}),l(PL,{onClick:n,model:i})]})});class Mi{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,H.omit(n,t))}async getItem(t){const n=await this.root.getItem(this.path);return t===null?n:H.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 a=H.get(i,t),s=H.get(o,t);a!==s&&n(a,s)},r)}}class ic{constructor(t,n,r){ke(this,"attachmentStorage");this.instance=t,this.attachmentKey=n,this.constructInstance=r,this.attachmentStorage=new Mi(t.instanceData,n)}async getInstance(t){if(await this.attachmentStorage.getItem(t))return this.constructInstance(new Mi(this.attachmentStorage,t))}async create(t,n){return await this.attachmentStorage.setItem(t,n),this.constructInstance(new Mi(this.attachmentStorage,t))}async remove(t){await this.attachmentStorage.deleteItem(t)}async list(){const t=await this.attachmentStorage.getItem(null);return Promise.all(H.values(t).map(n=>this.constructInstance(new Mi(this.attachmentStorage,n.id))))}}class iy{constructor(t){ke(this,"rootRef");this.rootRef=zt.observable({current:t})}async deleteItem(t){zt.runInAction(()=>{H.unset(this.rootRef.current,[t])})}getItem(t){const n=this.getValueFromRoot(t);return Promise.resolve(n)}getValueFromRoot(t){return t===null?zt.toJS(this.rootRef.current):H.get(this.rootRef.current,[t])}setItem(t,n){if(t===null)if(H.isObject(n))zt.runInAction(()=>{this.rootRef.current=n});else throw new Error("Cannot set root value to non-object");else zt.runInAction(()=>{H.set(this.rootRef.current,[t],n)});return Promise.resolve(this.getItem(t))}watchItem(t,n,r){return zt.reaction(()=>this.getValueFromRoot(t),(i,o)=>{n(i,o)},{requiresObservable:!0,fireImmediately:H.get(r,"fireImmediately",!1)})}}class LL{constructor(){ke(this,"channels",new Map);ke(this,"globalChannel",new Qc.default)}getChannel(t){const n=this.channels.get(t);if(n)return n;const r=new Qc.default;return this.channels.set(t,r),r}}class VL{constructor(t){ke(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 LL,instanceData:new iy(t.viz.conf)};return this.instances.set(t.id,r),r}}function oy(e,t,n,r){return{vizManager:n,locale:"zh",msgChannels:e.messageChannels,instanceData:e.instanceData,pluginData:new iy({}),colorPalette:{getColor(){return()=>""}},data:t,variables:r}}const zL=e=>{const{panel:t,vizManager:n,data:r,variables:i}=e,o=n.resolveComponent(t.viz.type),a=n.getOrCreateInstance(t),s={...oy(a,r,n,i),viewport:{width:t.layout.w,height:t.layout.h}},u=o.viewRender;return l(u,{context:s,instance:a,...H.omit(e,["panel","vizManager","data"])})},FL=e=>{const{vizManager:t,panel:n,panelInfoEditor:r,data:i,variables:o}=e,a=t.resolveComponent(n.viz.type),s=t.getOrCreateInstance(n),u={...oy(s,i,t,o),panelInfoEditor:r},c=a.configRender;return l(c,{context:u,instance:s,...H.omit(e,["panel","vizManager","data","panelInfoEditor"])})},ay=(e,t)=>{const n=Ni.default.bezier(e),r=Ni.default.bezier(t);return function(i){return i<50?n(i*2/100).hex():r((i-50)*2/100).hex()}},rs=e=>{const t=Ni.default.bezier(e);return function(n){return t(n/100).hex()}},BL={type:"interpolation",displayName:"Red / Green",getColor:ay(["darkred","deeppink","lightyellow"],["lightyellow","lightgreen","teal"]),name:"red-green",category:"diverging"},GL={type:"interpolation",displayName:"Yellow / Blue",getColor:ay(["#8f531d","#ffd347","#e3efe3"],["#eefaee","#4ecbbf","#003f94"]),name:"yellow-blue",category:"diverging"},jL={type:"interpolation",displayName:"Red",getColor:rs(["#fff7f1","darkred"]),name:"red",category:"sequential"},KL={type:"interpolation",displayName:"Green",getColor:rs(["#f0ffed","darkgreen"]),name:"green",category:"sequential"},HL={type:"interpolation",displayName:"Blue",getColor:rs(["#f9fcff","#48b3e9","darkblue"]),name:"blue",category:"sequential"},qL={type:"interpolation",displayName:"Orange",getColor:rs(["#fff7f1","darkorange","#b60000"]),name:"orange",category:"sequential"},sy="@devtable/dashboard",oc="7.20.2",ly="Apache-2.0",uy={access:"public",registry:"https://registry.npmjs.org/"},cy=["dist"],dy="./dist/dashboard.umd.js",fy="./dist/dashboard.es.js",py="./dist/index.d.ts",hy={".":{import:"./dist/dashboard.es.js",require:"./dist/dashboard.umd.js"},"./dist/style.css":{import:"./dist/style.css",require:"./dist/style.css"}},gy={"dev-build":"tsc && vite build --watch",build:"tsc && vite build",preview:"vite preview",test:"vitest","test:ui":"vitest --ui",coverage:"vitest --coverage"},vy={"@monaco-editor/react":"4.4.6","@types/chroma-js":"^2.1.4","file-saver":"2.0.5","performant-array-to-tree":"1.11.0",popmotion:"^11.0.3","rc-tree-select":"5.5.5",reactflow:"^11.5.3"},my={"@mantine/core":"5.9.5","@mantine/dates":"5.9.5","@mantine/form":"5.9.5","@mantine/hooks":"5.9.5","@mantine/modals":"5.9.5","@mantine/notifications":"5.9.5","@mantine/prism":"5.9.5","@mantine/tiptap":"5.9.5","@tabler/icons":"^1.118.0","@testing-library/cypress":"^8.0.3","@testing-library/jest-dom":"^5.16.4","@testing-library/react":"^13.3.0","@testing-library/react-hooks":"^8.0.1","@testing-library/user-event":"^14.3.0","@tiptap/extension-code-block-lowlight":"^2.0.0-beta.209","@tiptap/extension-color":"^2.0.0-beta.209","@tiptap/extension-highlight":"^2.0.0-beta.209","@tiptap/extension-link":"^2.0.0-beta.209","@tiptap/extension-placeholder":"^2.0.0-beta.209","@tiptap/extension-subscript":"^2.0.0-beta.209","@tiptap/extension-superscript":"^2.0.0-beta.209","@tiptap/extension-text-align":"^2.0.0-beta.209","@tiptap/extension-text-style":"^2.0.0-beta.209","@tiptap/extension-underline":"^2.0.0-beta.209","@tiptap/react":"^2.0.0-beta.209","@tiptap/starter-kit":"^2.0.0-beta.209","@types/crypto-js":"v4.1.1","@types/d3-array":"3.0.3","@types/eventemitter2":"^4.1.0","@types/file-saver":"2.0.5","@types/lodash":"^4.14.182","@types/react":"^18.0.0","@types/react-dom":"^18.0.0","@types/react-grid-layout":"^1.3.2",ahooks:"^3.3.11",ajv:"8.11.0",axios:"^0.27.2","crypto-js":"^4.1.1",cypress:"^10.6.0","cypress-wait-until":"^1.7.2",echarts:"^5.3.2","echarts-for-react":"^3.0.2","echarts-gl":"^2.0.9","echarts-stat":"1.2.0",jsdom:"^20.0.0","jsdom-testing-mocks":"^1.5.0",lodash:"^4.17.21",lowlight:"^2.8.0",numbro:"^2.3.6","prosemirror-commands":"^1.5.0","prosemirror-dropcursor":"^1.6.1","prosemirror-gapcursor":"^1.3.1","prosemirror-history":"^1.3.0","prosemirror-keymap":"^1.2.0","prosemirror-schema-list":"^1.2.2","react-grid-layout":"^1.3.4","react-hook-form":"^7.31.2","rollup-plugin-visualizer":"5.6.0","tabler-icons-react":"^1.48.0",typescript:"^4.6.3"},yy={"@emotion/react":"11.10.0","@mantine/core":"5.9.5","@mantine/dates":"5.9.5","@mantine/form":"5.9.5","@mantine/hooks":"5.9.5","@mantine/modals":"5.9.5","@mantine/notifications":"5.9.5","@mantine/prism":"5.9.5","@mantine/tiptap":"5.9.5","@tabler/icons":"^1.118.0","@tanstack/react-table":"^8.5.13","@tiptap/extension-code-block-lowlight":"^2.0.0-beta.209","@tiptap/extension-color":"^2.0.0-beta.209","@tiptap/extension-highlight":"^2.0.0-beta.209","@tiptap/extension-link":"^2.0.0-beta.209","@tiptap/extension-placeholder":"^2.0.0-beta.209","@tiptap/extension-subscript":"^2.0.0-beta.209","@tiptap/extension-superscript":"^2.0.0-beta.209","@tiptap/extension-text-align":"^2.0.0-beta.209","@tiptap/extension-text-style":"^2.0.0-beta.209","@tiptap/extension-underline":"^2.0.0-beta.209","@tiptap/react":"^2.0.0-beta.209","@tiptap/starter-kit":"^2.0.0-beta.209",ahooks:"^3.3.11",axios:"^0.27.2","chroma-js":"^2.4.2","d3-array":"3.2.0","d3-regression":"1.2.8",dayjs:"1.11.6",echarts:"^5.3.2","echarts-for-react":"^3.0.2","echarts-gl":"^2.0.9","echarts-stat":"1.2.0",eventemitter2:"^6.4.6",jszip:"3.10.1",lodash:"^4.17.21",lowlight:"^2.8.0",mobx:"^6.6.1","mobx-react-lite":"^3.4.0","mobx-state-tree":"^5.1.5",numbro:"^2.3.6","prosemirror-commands":"^1.5.0","prosemirror-dropcursor":"^1.6.1","prosemirror-gapcursor":"^1.3.1","prosemirror-history":"^1.3.0","prosemirror-keymap":"^1.2.0","prosemirror-schema-list":"^1.2.2",react:"^16.8.0 || 17.x || 18.x","react-dom":"^16.8.0 || 17.x || 18.x","react-grid-layout":"^1.3.4","react-hook-form":"^7.31.2","react-virtual":"^2.10.4","tabler-icons-react":"^1.48.0"},WL=Object.freeze(Object.defineProperty({__proto__:null,name:sy,version:oc,license:ly,publishConfig:uy,files:cy,main:dy,module:fy,types:py,exports:hy,scripts:gy,dependencies:vy,devDependencies:my,peerDependencies:yy,default:{name:sy,version:oc,license:ly,publishConfig:uy,files:cy,main:dy,module:fy,types:py,exports:hy,scripts:gy,dependencies:vy,devDependencies:my,peerDependencies:yy}},Symbol.toStringTag,{value:"Module"}));class UL{constructor(t){ke(this,"staticColors",new Map);ke(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 YL{constructor(){ke(this,"plugins",new Map);ke(this,"vizComponents",new Map);ke(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 XL{constructor(){ke(this,"migrations",[])}version(t,n){return this.migrations.push({version:t,handler:n}),this}run(t,n,r){var a;if(t.from===t.to)return n;if(t.from>t.to)throw new Error(`Can not downgrade from version '${t.from}' to (${t.to})`);const i=this.migrations.filter(s=>s.version>t.from&&s.version<=t.to),o=H.orderBy(i,"version","asc");if(((a=H.last(o))==null?void 0:a.version)!==t.to)throw new Error(`Migration to version ${t.to} not found`);return o.reduce((s,u)=>u.handler(s,r),n)}}class en extends XL{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=H.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 H.get(n,"version",0)<this.VERSION}}const et=(e,t)=>{const[n,{setFalse:r}]=nt.useBoolean(!0),[i,o]=x.useState();x.useEffect(()=>(e.getItem(t).then(s=>{o(s),r()}),e.watchItem(t,s=>{o(s)})));const a=x.useCallback(async s=>{await e.setItem(t,s),o(s)},[e,t]);return{loading:n,value:i,set:a}},ac={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"}};Rt.use([ut.GridComponent,ut.VisualMapComponent,ut.LegendComponent,ut.TooltipComponent,Kn.CanvasRenderer]);function QL({context:e}){const{value:t}=et(e.instanceData,"config"),n=e.data,{width:r,height:i}=e.viewport,{x_axis_data_key:o,y_axis_data_key:a,z_axis_data_key:s,xAxis3D:u,yAxis3D:c,zAxis3D:f}=H.defaults({},t,ac),h=x.useMemo(()=>{const v=H.minBy(n,m=>m[s]);return H.get(v,s)},[n,s]),p=x.useMemo(()=>{const v=H.maxBy(n,m=>m[s]);return H.get(v,s)},[n,s]),g={tooltip:{},backgroundColor:"#fff",visualMap:{show:!0,dimension:2,min:h,max:p,inRange:{color:["#313695","#4575b4","#74add1","#abd9e9","#e0f3f8","#ffffbf","#fee090","#fdae61","#f46d43","#d73027","#a50026"]}},xAxis3D:u,yAxis3D:c,zAxis3D:f,grid3D:{viewControl:{projection:"orthographic",autoRotate:!1},light:{main:{shadow:!0,quality:"ultra",intensity:1.5}}},series:[{type:"bar3D",wireframe:{},data:n.map(v=>[v[o],v[a],v[s]])}]};return t?l(Hn.default,{echarts:Rt,option:g,style:{width:r,height:i}}):null}function ZL({label:e,required:t,value:n,onChange:r,data:i,clearable:o=!1,sx:a,...s},u){const c=W.default.useMemo(()=>{if(!Array.isArray(i)||i.length===0)return[];const h=Object.keys(i[0]).map(p=>({label:p,value:p}));return o?h.concat([{label:"unset",value:""}]):h},[i]);return l(d.Select,{ref:u,label:e,data:c,value:n,onChange:r,required:t,sx:a,...s})}const mt=W.default.forwardRef(ZL);function JL({context:e}){const{value:t,set:n}=et(e.instanceData,"config"),r=e.data,i=H.defaults({},t,ac),{control:o,handleSubmit:a,reset:s}=G.useForm({defaultValues:i});return x.useEffect(()=>{s(i)},[t]),t?l(d.Stack,{mt:"md",spacing:"xs",children:b("form",{onSubmit:a(n),children:[l(d.Text,{children:"X Axis"}),b(d.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[l(G.Controller,{name:"x_axis_data_key",control:o,render:({field:u})=>l(mt,{label:"Data Field",required:!0,data:r,...u})}),l(G.Controller,{name:"xAxis3D.name",control:o,render:({field:u})=>l(d.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),l(d.Text,{mt:"lg",children:"Y Axis"}),b(d.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[l(G.Controller,{name:"y_axis_data_key",control:o,render:({field:u})=>l(mt,{label:"Data Field",required:!0,data:r,...u})}),l(G.Controller,{name:"yAxis3D.name",control:o,render:({field:u})=>l(d.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),l(d.Text,{mt:"lg",children:"Z Axis"}),b(d.Group,{position:"apart",grow:!0,p:"md",sx:{position:"relative",border:"1px solid #eee"},children:[l(G.Controller,{name:"z_axis_data_key",control:o,render:({field:u})=>l(mt,{label:"Data Field",required:!0,data:r,...u})}),l(G.Controller,{name:"zAxis3D.name",control:o,render:({field:u})=>l(d.TextInput,{sx:{flexGrow:1},size:"md",label:"Name",...u})})]}),l(d.Group,{position:"center",mt:"xl",grow:!0,sx:{width:"60%"},mx:"auto",children:b(d.Button,{color:"blue",type:"submit",children:[l(te.DeviceFloppy,{size:20}),l(d.Text,{ml:"md",children:"Save"})]})})]})}):null}class eV extends en{constructor(){super(...arguments);ke(this,"VERSION",1)}configVersions(){this.version(1,n=>({version:1,config:n}))}}const tV={displayName:"Bar Chart (3D)",migrator:new eV,name:"bar-3d",viewRender:QL,configRender:JL,createConfig(){return{version:1,config:H.cloneDeep(ac)}}},Fn={mantissa:0,output:"number",trimMantissa:!1,average:!1};function nV({value:e,onChange:t},n){const r=s=>{t({...e,output:s})},i=s=>{const u=s===0?!1:e.trimMantissa;t({...e,mantissa:s,trimMantissa:u})},o=s=>{t({...e,trimMantissa:s.currentTarget.checked})},a=s=>{t({...e,average:s.currentTarget.checked})};return b(d.Stack,{ref:n,children:[b(d.Group,{grow:!0,children:[l(d.Select,{label:"Format",data:[{label:"1234",value:"number"},{label:"99%",value:"percent"}],value:e.output,onChange:r,sx:{flexGrow:1}}),l(d.Switch,{label:b(d.Stack,{spacing:0,children:[l(d.Text,{children:"Average"}),l(d.Text,{size:12,color:"gray",children:"like 1.234k, 1.234m"})]}),checked:e.average,onChange:a,disabled:e.output!=="number",sx:{flexGrow:1},styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"},label:{display:"block"}}})]}),b(d.Group,{grow:!0,children:[l(d.NumberInput,{label:"Mantissa",defaultValue:0,min:0,step:1,max:4,value:e.mantissa,onChange:i}),l(d.Switch,{label:"Trim mantissa",checked:e.trimMantissa,onChange:o,disabled:e.mantissa===0,styles:{root:{alignSelf:"flex-end"},body:{alignItems:"center"}}})]}),b(d.Stack,{spacing:0,children:[l(d.Text,{weight:"bold",children:"Preview"}),l(Wr,{children:b(d.Group,{position:"apart",children:[b(d.Text,{size:12,color:"gray",children:["123456789 ",l(te.ArrowRight,{size:9})," ",Ft.default(123456789).format(e)]}),b(d.Text,{size:12,color:"gray",children:["1234 ",l(te.ArrowRight,{size:9})," ",Ft.default(1234).format(e)]}),b(d.Text,{size:12,color:"gray",children:["0.1234 ",l(te.ArrowRight,{size:9})," ",Ft.default(.1234).format(e)]})]})})]})]})}const jr=W.default.forwardRef(nV),Kr={enabled:!1,func_content:["function label(value, index) {"," // your code goes here"," // return value","}"].join(`
152
+ `)},Er={x_axis:{width:80,overflow:"truncate",ellipsis:"..."},tooltip:{width:200,overflow:"break",ellipsis:"..."}},by={id:"builtin:echarts:click-echart:series",displayName:"Click Chart Series",nameRender:iV,configRender:rV,payload:[{name:"type",description:"Always 'click'",valueType:"string"},{name:"seriesType",description:"'boxplot'",valueType:"string"},{name:"name",description:"Name of the series clicked",valueType:"string"},{name:"color",description:"Color",valueType:"string"},{name:"value",description:"Record of 'name', 'min', 'q1', 'median', 'q3', 'max'",valueType:"object"},{name:"rowData",description:"Data of the row",valueType:"object"}]};function rV(e){return l(De,{})}function iV(e){return l(d.Text,{children:"Click chart's series"})}const sc={x_axis:{name:"X Axis",data_key:"",axisLabel:{rotate:0,formatter:{...Kr},overflow:Er}},y_axis:{name:"Y Axis",data_key:"value",label_formatter:Fn},color:"#228be6",reference_lines:[]},Oi=(e,t)=>{const[n,r]=x.useState([]);return x.useEffect(()=>e.watchTriggerSnapshotList(i=>r(i.filter(o=>o.schemaRef===t))),[]),n},Di=({vizManager:e,instance:t})=>nt.useCreation(()=>new zc(t,e.resolveComponent(t.type),ms),[t,e]),wy="__TRIGGERS";class oV{constructor(t,n){ke(this,"attachments");this.instance=t,this.component=n;const r=async i=>{const{id:o,schemaRef:a}=await i.getItem(null);return{id:o,schemaRef:a,triggerData:new Mi(i,"data")}};this.attachments=new ic(t,wy,r)}watchTriggerSnapshotList(t){return this.instance.instanceData.watchItem(wy,n=>{const r=H.values(n).map(i=>({id:H.get(i,"id"),schemaRef:H.get(i,"schemaRef"),config:zt.toJS(H.get(i,"data.config"))}));t(r)},{fireImmediately:!0})}async createOrGetTrigger(t,n,r={recreate:!1}){var s;if(!this.getTriggerSchemaList().some(u=>u.id===n.id))throw new Error(`Trigger schema '${n.id}' is not defined in component '${this.component.name}'`);const 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:((s=n==null?void 0:n.createDefaultConfig)==null?void 0:s.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(s=>s.id===r.schemaRef),o=i==null?void 0:i.migrator,a={configData:r.triggerData};return o&&await o.needMigration(a)?()=>o.migrate(a):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 So=x.forwardRef(function({value:t,onChange:n,...r},i){return l(d.TextInput,{ref:i,value:t,onChange:n,...r})}),aV=[{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 sV({label:e,value:t,onChange:n},r){x.useEffect(()=>{typeof t=="string"&&(console.log(t),n({type:t,config:{}}))},[t,n]);const i=a=>{n(a==="quantile"?{type:"quantile",config:{p:.99}}:{type:a,config:{}})},o=a=>{n({type:"quantile",config:{p:a}})};return b(d.Group,{grow:!0,noWrap:!0,pt:"sm",children:[l(d.Select,{ref:r,label:e,data:aV,value:t.type,onChange:i}),t.type==="quantile"&&l(d.NumberInput,{label:"p",value:t.config.p,onChange:o,precision:2,min:.05,step:.05,max:1})]})}const xy=W.default.forwardRef(sV);function lV({label:e,value:t,onChange:n},r){const[i,o]=W.default.useState(Array.isArray(t)?[...t]:[]),a=W.default.useCallback(()=>{o(p=>[...p,""])},[o]),s=W.default.useCallback(p=>{o(g=>(g.splice(p,1),[...g]))},[o]),u=W.default.useMemo(()=>!ye.default.isEqual(i,t),[i,t]),c=()=>{n(i.map(p=>p.toString()))},f=d.useMantineTheme(),h=W.default.useMemo(()=>Object.entries(f.colors).map(([p,g])=>g[6]),[f]);return b(De,{children:[b(d.Group,{position:"left",ref:r,children:[l(d.Text,{children:e}),l(d.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!u,onClick:c,children:l(te.DeviceFloppy,{size:20})})]}),b(d.Group,{children:[i.map((p,g)=>l(d.ColorInput,{value:p,onChange:v=>{o(m=>(m.splice(g,1,v),[...m]))},swatches:h,rightSection:l(d.ActionIcon,{onClick:()=>s(g),color:"red",children:l(te.Trash,{size:14})}),sx:{width:"45%"}})),l(d.ActionIcon,{onClick:a,color:"blue",variant:"outline",children:l(te.PlaylistAdd,{size:20})})]})]})}const uV=W.default.forwardRef(lV);function cV({value:e,onChange:t},n){const{colorManager:r}=x.useContext(Gn),i=W.default.useMemo(()=>r.getStaticColors().map(s=>({label:s.name,group:s.category,value:s.value})),[r]),o=W.default.useMemo(()=>i.some(a=>a.value===e),[e,i]);return b(d.Group,{position:"apart",spacing:4,ref:n,children:[l(d.TextInput,{placeholder:"Set any color",value:o?"":e,onChange:a=>t(a.currentTarget.value),rightSection:l(d.ColorSwatch,{color:o?"transparent":e,radius:4}),variant:o?"filled":"default",sx:{maxWidth:"46%",flexGrow:1}}),l(d.Text,{sx:{flexGrow:0},children:"or"}),l(d.Select,{data:i,value:e,onChange:t,variant:o?"default":"filled",placeholder:"Pick a theme color",icon:l(d.ColorSwatch,{color:o?e:"transparent",radius:4}),sx:{maxWidth:"46%",flexGrow:1}})]})}const kn=W.default.forwardRef(cV),is=[{label:"initial",value:0},{label:"500",value:25},{label:"700",value:50},{label:"semibold",value:75},{label:"bold",value:100}];function dV({label:e,value:t,onChange:n},r){var a,s;const[i,o]=W.default.useState((s=(a=is.find(u=>u.label===t))==null?void 0:a.value)!=null?s:is[0].value);return W.default.useEffect(()=>{const u=is.find(c=>c.value===i);u&&n(u.label)},[i]),b(d.Stack,{spacing:0,mt:"sm",mb:"lg",children:[l(d.Text,{size:"sm",children:e}),l(d.Slider,{label:null,marks:is,value:i,onChange:o,step:25,placeholder:"Pick a font size",px:"1em",ref:r})]})}const Sy=W.default.forwardRef(dV);function fV({label:e,value:t,onChange:n,type:r},i){const[o,a]=W.default.useState(Array.isArray(t)?[...t]:[]),s=W.default.useCallback(()=>{a(h=>[...h,""])},[a]),u=W.default.useCallback(h=>{a(p=>(p.splice(h,1),[...p]))},[a]),c=W.default.useMemo(()=>!ye.default.isEqual(o.map(String),t.map(String)),[o,t]),f=()=>{n(o.map(h=>r==="number"?Number(h):h.toString()))};return b(De,{children:[b(d.Group,{position:"left",ref:i,children:[l(d.Text,{children:e}),l(d.ActionIcon,{mr:5,variant:"filled",color:"blue",disabled:!c,onClick:f,children:l(te.DeviceFloppy,{size:20})})]}),b(d.Group,{children:[o.map((h,p)=>l(d.TextInput,{type:r,value:h,onChange:g=>{const v=g.currentTarget.value;a(m=>(m.splice(p,1,v),[...m]))},rightSection:l(d.ActionIcon,{onClick:()=>u(p),color:"red",children:l(te.Trash,{size:14})}),sx:{width:"45%"}})),l(d.ActionIcon,{onClick:s,color:"blue",variant:"outline",children:l(te.PlaylistAdd,{size:20})})]})]})}const pV=W.default.forwardRef(fV),Cy=W.default.forwardRef(function({value:t,onChange:n},r){const i=t.color.type,o=(a,s)=>{const u=ye.default.cloneDeep(t);ye.default.set(u,a,s),n(u)};return b(De,{children:[l(d.Divider,{my:"xs",label:"Typography",labelPosition:"center"}),l(d.Stack,{children:l(d.TextInput,{label:"Font Size",placeholder:"10px, 1em, 1rem, 100%...",sx:{flex:1},value:t.size,onChange:a=>o("size",a.currentTarget.value)})}),l(d.Group,{position:"apart",grow:!0,sx:{"> *":{flexGrow:1,maxWidth:"100%"}},children:l(Sy,{label:"Font Weight",value:t.weight,onChange:a=>o("weight",a)})}),l(d.Divider,{my:"xs",label:"Style",labelPosition:"center"}),b(d.Stack,{children:[l(d.Select,{label:"Color Type",data:[{label:"Static Color",value:"static"},{label:"Continuous Color",value:"continuous"}],value:t.color.type,onChange:a=>o("color.type",a)}),i==="static"&&l(kn,{value:t.color.staticColor,onChange:a=>o("color.staticColor",a)}),i==="continuous"&&b(De,{children:[l(pV,{label:"Value Range",value:t.color.valueRange,type:"number",onChange:a=>o("color.valueRange",a)}),l(uV,{label:"Color Range",value:t.color.colorRange,onChange:a=>o("color.colorRange",a)})]})]})]})});W.default.forwardRef(function({value:t,onChange:n,data:r,withStyle:i=!0},o){const a=(s,u)=>{const c=ye.default.cloneDeep(t);ye.default.set(c,s,u),n(c)};return b(d.Box,{px:"sm",py:"md",ref:o,children:[l(d.Text,{weight:"bold",pb:0,children:t.name}),l(d.Divider,{my:"xs",label:"Data",labelPosition:"center"}),b(d.Group,{grow:!0,noWrap:!0,children:[l(d.TextInput,{label:"Name",required:!0,value:t.name,onChange:s=>a("name",s.currentTarget.value)}),l(mt,{label:"Data Field",required:!0,data:r,value:t.data_field,onChange:s=>a("data_field",s)})]}),l(xy,{label:"Aggregation",value:t.aggregation,onChange:s=>a("aggregation",s)}),l(d.Divider,{my:"xs",label:"Format",labelPosition:"center"}),l(jr,{value:t.formatter,onChange:s=>a("formatter",s)}),i&&l(Cy,{value:t,onChange:n})]})});function hV(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 gV(e,t){const n=e[t],r=Number(n);return isFinite(r)?r:0}function lc(e,t,n){var r,i,o;try{const a=e.map(s=>gV(s,t));switch(n.type){case"sum":return ye.default.sum(a);case"mean":return ye.default.mean(a);case"median":return hV(a);case"max":return(r=ye.default.max(a))!=null?r:0;case"min":return(i=ye.default.min(a))!=null?i:0;case"quantile":return(o=No.quantile(a,n.config.p))!=null?o:0;default:return a}}catch(a){return console.error(a),null}}var _y=function(){},Co=function(){};process.env.NODE_ENV!=="production"&&(_y=function(e,t){!e&&typeof console<"u"&&console.warn(t)},Co=function(e,t){if(!e)throw new Error(t)});const vV=(e,t,n)=>Math.min(Math.max(n,e),t),Ey=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r},uc=(e,t,n)=>-n*e+n*t+e,Ty=(e,t)=>n=>Math.max(Math.min(n,t),e),_o=e=>e%1?Number(e.toFixed(5)):e,os=/(-)?([\d]*\.?[\d])+/g,cc=/(#[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,mV=/^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\((-?[\d\.]+%?[,\s]+){2,3}\s*\/*\s*[\d\.]+%?\))$/i;function Eo(e){return typeof e=="string"}const as={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},My=Object.assign(Object.assign({},as),{transform:Ty(0,1)});Object.assign(Object.assign({},as),{default:1});const To=(e=>({test:t=>Eo(t)&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}))("%");Object.assign(Object.assign({},To),{parse:e=>To.parse(e)/100,transform:e=>To.transform(e*100)});const dc=(e,t)=>n=>Boolean(Eo(n)&&mV.test(n)&&n.startsWith(e)||t&&Object.prototype.hasOwnProperty.call(n,t)),Oy=(e,t,n)=>r=>{if(!Eo(r))return r;const[i,o,a,s]=r.match(os);return{[e]:parseFloat(i),[t]:parseFloat(o),[n]:parseFloat(a),alpha:s!==void 0?parseFloat(s):1}},Hr={test:dc("hsl","hue"),parse:Oy("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+To.transform(_o(t))+", "+To.transform(_o(n))+", "+_o(My.transform(r))+")"},yV=Ty(0,255),fc=Object.assign(Object.assign({},as),{transform:e=>Math.round(yV(e))}),Tr={test:dc("rgb","red"),parse:Oy("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+fc.transform(e)+", "+fc.transform(t)+", "+fc.transform(n)+", "+_o(My.transform(r))+")"};function bV(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 pc={test:dc("#"),parse:bV,transform:Tr.transform},ss={test:e=>Tr.test(e)||pc.test(e)||Hr.test(e),parse:e=>Tr.test(e)?Tr.parse(e):Hr.test(e)?Hr.parse(e):pc.parse(e),transform:e=>Eo(e)?e:e.hasOwnProperty("red")?Tr.transform(e):Hr.transform(e)},Dy="${c}",Ry="${n}";function wV(e){var t,n,r,i;return isNaN(e)&&Eo(e)&&((n=(t=e.match(os))===null||t===void 0?void 0:t.length)!==null&&n!==void 0?n:0)+((i=(r=e.match(cc))===null||r===void 0?void 0:r.length)!==null&&i!==void 0?i:0)>0}function ky(e){typeof e=="number"&&(e=`${e}`);const t=[];let n=0;const r=e.match(cc);r&&(n=r.length,e=e.replace(cc,Dy),t.push(...r.map(ss.parse)));const i=e.match(os);return i&&(e=e.replace(os,Ry),t.push(...i.map(as.parse))),{values:t,numColors:n,tokenised:e}}function Ay(e){return ky(e).values}function Py(e){const{values:t,numColors:n,tokenised:r}=ky(e),i=t.length;return o=>{let a=r;for(let s=0;s<i;s++)a=a.replace(s<n?Dy:Ry,s<n?ss.transform(o[s]):_o(o[s]));return a}}const xV=e=>typeof e=="number"?0:e;function SV(e){const t=Ay(e);return Py(e)(t.map(xV))}const Ny={test:wV,parse:Ay,createTransformer:Py,getAnimatableNone:SV};function hc(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 Iy({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,o=0,a=0;if(!t)i=o=a=n;else{const s=n<.5?n*(1+t):n+t-n*t,u=2*n-s;i=hc(u,s,e+1/3),o=hc(u,s,e),a=hc(u,s,e-1/3)}return{red:Math.round(i*255),green:Math.round(o*255),blue:Math.round(a*255),alpha:r}}const CV=(e,t,n)=>{const r=e*e,i=t*t;return Math.sqrt(Math.max(0,n*(i-r)+r))},_V=[pc,Tr,Hr],$y=e=>_V.find(t=>t.test(e)),Ly=e=>`'${e}' is not an animatable color. Use the equivalent color code instead.`,Vy=(e,t)=>{let n=$y(e),r=$y(t);Co(!!n,Ly(e)),Co(!!r,Ly(t));let i=n.parse(e),o=r.parse(t);n===Hr&&(i=Iy(i),n=Tr),r===Hr&&(o=Iy(o),r=Tr);const a=Object.assign({},i);return s=>{for(const u in a)u!=="alpha"&&(a[u]=CV(i[u],o[u],s));return a.alpha=uc(i.alpha,o.alpha,s),n.transform(a)}},EV=e=>typeof e=="number",TV=(e,t)=>n=>t(e(n)),zy=(...e)=>e.reduce(TV);function Fy(e,t){return EV(e)?n=>uc(e,t,n):ss.test(e)?Vy(e,t):jy(e,t)}const By=(e,t)=>{const n=[...e],r=n.length,i=e.map((o,a)=>Fy(o,t[a]));return o=>{for(let a=0;a<r;a++)n[a]=i[a](o);return n}},MV=(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]=Fy(e[i],t[i]));return i=>{for(const o in r)n[o]=r[o](i);return n}};function Gy(e){const t=Ny.parse(e),n=t.length;let r=0,i=0,o=0;for(let a=0;a<n;a++)r||typeof t[a]=="number"?r++:t[a].hue!==void 0?o++:i++;return{parsed:t,numNumbers:r,numRGB:i,numHSL:o}}const jy=(e,t)=>{const n=Ny.createTransformer(t),r=Gy(e),i=Gy(t);return r.numHSL===i.numHSL&&r.numRGB===i.numRGB&&r.numNumbers>=i.numNumbers?zy(By(r.parsed,i.parsed),n):(_y(!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.`),a=>`${a>0?t:e}`)},OV=(e,t)=>n=>uc(e,t,n);function DV(e){if(typeof e=="number")return OV;if(typeof e=="string")return ss.test(e)?Vy:jy;if(Array.isArray(e))return By;if(typeof e=="object")return MV}function RV(e,t,n){const r=[],i=n||DV(e[0]),o=e.length-1;for(let a=0;a<o;a++){let s=i(e[a],e[a+1]);if(t){const u=Array.isArray(t)?t[a]:t;s=zy(u,s)}r.push(s)}return r}function kV([e,t],[n]){return r=>n(Ey(e,t,r))}function AV(e,t){const n=e.length,r=n-1;return i=>{let o=0,a=!1;if(i<=e[0]?a=!0:i>=e[r]&&(o=r-1,a=!0),!a){let u=1;for(;u<n&&!(e[u]>i||u===r);u++);o=u-1}const s=Ey(e[o],e[o+1],i);return t[o](s)}}function ls(e,t,{clamp:n=!0,ease:r,mixer:i}={}){const o=e.length;Co(o===t.length,"Both input and output ranges must be the same length"),Co(!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 a=RV(t,r,i),s=o===2?kV(e,a):AV(e,a);return n?u=>s(vV(e[0],e[o-1],u)):s}class PV{constructor({valueRange:t,colorRange:n}){ke(this,"mapper");this.mapper=ls(t,n)}getColor(t){return this.mapper(t)}}function NV(e){return e===null?"null":e===void 0?"undefined":Array.isArray(e)?`Array(${e.length})`:e.toString()}function us({data_field:e,aggregation:t},n){return lc(n,e,t)}function Ri({formatter:e},t){return["string","number"].includes(typeof t)?Ft.default(t).format(e):NV(t)}function IV(e,t){if(e.type==="static")return e.staticColor;if(e.type==="continuous")try{if(Array.isArray(t)||t===null)throw new Error(`[getColorByColorConf] Invalid type of aggregated value: ${t}`);return new PV(e).getColor(t)}catch(n){return console.error(n),"black"}return"black"}function Ky(e,t){const{color:n,data_field:r,aggregation:i,size:o,weight:a}=e,s=lc(t,r,i),u=Ri(e,s);return l(d.Text,{sx:{fontSize:o,display:"inline"},color:IV(n,s),weight:a,children:u})}function $V(e,t){const n={};return e.forEach(r=>{const i=r.name;n[i]=Ky(r,t)}),n}function LV(e){return e.split(" ").map((t,n)=>b(W.default.Fragment,{children:[t,"\xA0"]},n))}function VV(e){const n=e.replaceAll("<br />","<br/>").replaceAll(`
153
153
  `,"<br/>").split("<br/>");return n.map((i,o)=>{const a=[LV(i)];return o!==n.length-1&&a.push(l("br",{})),a}).flat().filter(i=>i!==void 0)}function gc(e){return VV(e)}function Mo(e,t,n){const r=$V(t,n),i=/^\{(.+)\}(.*)$/;return e.split("$").map(o=>{var c;const a=i.exec(o);if(!a)return gc(o);const s=r[a[1]];if(!s)return gc(o);const u=(c=a[2])!=null?c:"";return b(De,{children:[s,gc(u)]})})}function zV(e,t){const n={};return e.forEach(r=>{const{name:i,data_field:o,aggregation:a}=r,s=lc(t,o,a);n[i]=Ri(r,s)}),n}function vc(e,t,n){const r=zV(t,n),i=/^\{(.+)\}(.*)$/;return e.split("$").map(o=>{var c;const a=i.exec(o);if(!a)return o;const s=r[a[1]];if(!s)return o;const u=(c=a[2])!=null?c:"";return`${s}${u}`}).join("")}function cs({enabled:e,func_content:t}){return(n,r)=>{if(!e)return n;try{return new Function(`return ${t}`)()(n,r)}catch(i){return console.error(`[getEchartsXAxisLabel] failed parsing custom function, error: ${i.message}`),n}}}function ds(e){return{width:e.width,overflow:e.overflow,ellipsis:e.ellipsis}}function Oo(e){const t={truncate:"initial",break:"break-all",breakAll:"break-word"}[e.overflow],n=e.overflow==="truncate"?"nowrap":"initial",r={truncate:"ellipsis",break:"clip",breakAll:"clip"}[e.overflow];return`
154
154
  max-width: ${e.width}px;
155
155
  word-break: ${t};
@@ -7,4 +7,4 @@ export declare type AggregationType = {
7
7
  p: number;
8
8
  };
9
9
  };
10
- export declare function aggregateValue(data: Record<string, number>[], data_field: string, aggregation: AggregationType): number;
10
+ export declare function aggregateValue(data: Record<string, number>[], data_field: string, aggregation: AggregationType): number | number[] | null;
@@ -1,4 +1,4 @@
1
1
  import { ITemplateVariable } from './types';
2
2
  export declare function getNonStatsDataText(data: $TSFixMe): any;
3
- export declare function getAggregatedValue({ data_field, aggregation }: ITemplateVariable, data: Record<string, number>[]): number;
4
- export declare function formatAggregatedValue({ formatter }: ITemplateVariable, value: number | string): any;
3
+ export declare function getAggregatedValue({ data_field, aggregation }: ITemplateVariable, data: Record<string, number>[]): number | number[] | null;
4
+ export declare function formatAggregatedValue({ formatter }: ITemplateVariable, value: number | string | number[] | null): any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devtable/dashboard",
3
- "version": "7.20.1",
3
+ "version": "7.20.2",
4
4
  "license": "Apache-2.0",
5
5
  "publishConfig": {
6
6
  "access": "public",