galaxy-charts 0.0.46 → 0.0.47

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.
@@ -19476,7 +19476,7 @@ const Zy = {
19476
19476
  {
19477
19477
  container: t.container,
19478
19478
  content: JSON.parse(JSON.stringify(L())),
19479
- from: "galaxy-charts"
19479
+ from: "galaxy-visualization"
19480
19480
  },
19481
19481
  "*"
19482
19482
  );
@@ -2065,4 +2065,4 @@ ${t}
2065
2065
  border-top: 1px solid var(--n-tab-border-color);
2066
2066
  `),y("tabs-pad",`
2067
2067
  border-top: 1px solid var(--n-tab-border-color);
2068
- `)])])])]),B0=Object.assign(Object.assign({},ye.props),{value:[String,Number],defaultValue:[String,Number],trigger:{type:String,default:"click"},type:{type:String,default:"bar"},closable:Boolean,justifyContent:String,size:{type:String,default:"medium"},placement:{type:String,default:"top"},tabStyle:[String,Object],tabClass:String,addTabStyle:[String,Object],addTabClass:String,barWidth:Number,paneClass:String,paneStyle:[String,Object],paneWrapperClass:String,paneWrapperStyle:[String,Object],addable:[Boolean,Object],tabsPadding:{type:Number,default:0},animated:Boolean,onBeforeLeave:Function,onAdd:Function,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onClose:[Function,Array],labelSize:String,activeName:[String,Number],onActiveNameChange:[Function,Array]}),_0=o.defineComponent({name:"Tabs",props:B0,setup(e,{slots:t}){var n,r,i,a;process.env.NODE_ENV!=="production"&&o.watchEffect(()=>{e.labelSize!==void 0&&tt("tabs","`label-size` is deprecated, please use `size` instead."),e.activeName!==void 0&&tt("tabs","`active-name` is deprecated, please use `value` instead."),e.onActiveNameChange!==void 0&&tt("tabs","`on-active-name-change` is deprecated, please use `on-update:value` instead.")});const{mergedClsPrefixRef:l,inlineThemeDisabled:s}=Ke(e),d=ye("Tabs","-tabs",R0,l0,e,l),c=o.ref(null),f=o.ref(null),u=o.ref(null),p=o.ref(null),m=o.ref(null),h=o.ref(null),v=o.ref(!0),w=o.ref(!0),g=To(e,["labelSize","size"]),P=To(e,["activeName","value"]),H=o.ref((r=(n=P.value)!==null&&n!==void 0?n:e.defaultValue)!==null&&r!==void 0?r:t.default?(a=(i=Tn(t.default())[0])===null||i===void 0?void 0:i.props)===null||a===void 0?void 0:a.name:null),$=vt(P,H),k={id:0},M=o.computed(()=>{if(!(!e.justifyContent||e.type==="card"))return{display:"flex",justifyContent:e.justifyContent}});o.watch($,()=>{k.id=0,O(),V()});function b(){var _;const{value:F}=$;return F===null?null:(_=c.value)===null||_===void 0?void 0:_.querySelector(`[data-name="${F}"]`)}function S(_){if(e.type==="card")return;const{value:F}=f;if(!F)return;const K=F.style.opacity==="0";if(_){const z=`${l.value}-tabs-bar--disabled`,{barWidth:C,placement:B}=e;if(_.dataset.disabled==="true"?F.classList.add(z):F.classList.remove(z),["top","bottom"].includes(B)){if(D(["top","maxHeight","height"]),typeof C=="number"&&_.offsetWidth>=C){const oe=Math.floor((_.offsetWidth-C)/2)+_.offsetLeft;F.style.left=`${oe}px`,F.style.maxWidth=`${C}px`}else F.style.left=`${_.offsetLeft}px`,F.style.maxWidth=`${_.offsetWidth}px`;F.style.width="8192px",K&&(F.style.transition="none"),F.offsetWidth,K&&(F.style.transition="",F.style.opacity="1")}else{if(D(["left","maxWidth","width"]),typeof C=="number"&&_.offsetHeight>=C){const oe=Math.floor((_.offsetHeight-C)/2)+_.offsetTop;F.style.top=`${oe}px`,F.style.maxHeight=`${C}px`}else F.style.top=`${_.offsetTop}px`,F.style.maxHeight=`${_.offsetHeight}px`;F.style.height="8192px",K&&(F.style.transition="none"),F.offsetHeight,K&&(F.style.transition="",F.style.opacity="1")}}}function E(){if(e.type==="card")return;const{value:_}=f;_&&(_.style.opacity="0")}function D(_){const{value:F}=f;if(F)for(const K of _)F.style[K]=""}function O(){if(e.type==="card")return;const _=b();_?S(_):E()}function V(){var _;const F=(_=m.value)===null||_===void 0?void 0:_.$el;if(!F)return;const K=b();if(!K)return;const{scrollLeft:z,offsetWidth:C}=F,{offsetLeft:B,offsetWidth:oe}=K;z>B?F.scrollTo({top:0,left:B,behavior:"smooth"}):B+oe>z+C&&F.scrollTo({top:0,left:B+oe-C,behavior:"smooth"})}const j=o.ref(null);let Q=0,N=null;function Z(_){const F=j.value;if(F){Q=_.getBoundingClientRect().height;const K=`${Q}px`,z=()=>{F.style.height=K,F.style.maxHeight=K};N?(z(),N(),N=null):N=z}}function X(_){const F=j.value;if(F){const K=_.getBoundingClientRect().height,z=()=>{document.body.offsetHeight,F.style.maxHeight=`${K}px`,F.style.height=`${Math.max(Q,K)}px`};N?(N(),N=null,z()):N=z}}function Y(){const _=j.value;if(_){_.style.maxHeight="",_.style.height="";const{paneWrapperStyle:F}=e;if(typeof F=="string")_.style.cssText=F;else if(F){const{maxHeight:K,height:z}=F;K!==void 0&&(_.style.maxHeight=K),z!==void 0&&(_.style.height=z)}}}const de={value:[]},ie=o.ref("next");function ue(_){const F=$.value;let K="next";for(const z of de.value){if(z===F)break;if(z===_){K="prev";break}}ie.value=K,U(_)}function U(_){const{onActiveNameChange:F,onUpdateValue:K,"onUpdate:value":z}=e;F&&ce(F,_),K&&ce(K,_),z&&ce(z,_),H.value=_}function te(_){const{onClose:F}=e;F&&ce(F,_)}function ve(){const{value:_}=f;if(!_)return;const F="transition-disabled";_.classList.add(F),O(),_.classList.remove(F)}const we=o.ref(null);function re({transitionDisabled:_}){const F=c.value;if(!F)return;_&&F.classList.add("transition-disabled");const K=b();K&&we.value&&(we.value.style.width=`${K.offsetWidth}px`,we.value.style.height=`${K.offsetHeight}px`,we.value.style.transform=`translateX(${K.offsetLeft-ot(getComputedStyle(F).paddingLeft)}px)`,_&&we.value.offsetWidth),_&&F.classList.remove("transition-disabled")}o.watch([$],()=>{e.type==="segment"&&o.nextTick(()=>{re({transitionDisabled:!1})})}),o.onMounted(()=>{e.type==="segment"&&re({transitionDisabled:!0})});let Se=0;function Ce(_){var F;if(_.contentRect.width===0&&_.contentRect.height===0||Se===_.contentRect.width)return;Se=_.contentRect.width;const{type:K}=e;if((K==="line"||K==="bar")&&ve(),K!=="segment"){const{placement:z}=e;De((z==="top"||z==="bottom"?(F=m.value)===null||F===void 0?void 0:F.$el:h.value)||null)}}const le=ri(Ce,64);o.watch([()=>e.justifyContent,()=>e.size],()=>{o.nextTick(()=>{const{type:_}=e;(_==="line"||_==="bar")&&ve()})});const Me=o.ref(!1);function Re(_){var F;const{target:K,contentRect:{width:z}}=_,C=K.parentElement.offsetWidth;if(!Me.value)C<z&&(Me.value=!0);else{const{value:B}=p;if(!B)return;C-z>B.$el.offsetWidth&&(Me.value=!1)}De(((F=m.value)===null||F===void 0?void 0:F.$el)||null)}const Le=ri(Re,64);function Ie(){const{onAdd:_}=e;_&&_(),o.nextTick(()=>{const F=b(),{value:K}=m;!F||!K||K.scrollTo({left:F.offsetLeft,top:0,behavior:"smooth"})})}function De(_){if(!_)return;const{placement:F}=e;if(F==="top"||F==="bottom"){const{scrollLeft:K,scrollWidth:z,offsetWidth:C}=_;v.value=K<=0,w.value=K+C>=z}else{const{scrollTop:K,scrollHeight:z,offsetHeight:C}=_;v.value=K<=0,w.value=K+C>=z}}const Ue=ri(_=>{De(_.target)},64);o.provide(ki,{triggerRef:o.toRef(e,"trigger"),tabStyleRef:o.toRef(e,"tabStyle"),tabClassRef:o.toRef(e,"tabClass"),addTabStyleRef:o.toRef(e,"addTabStyle"),addTabClassRef:o.toRef(e,"addTabClass"),paneClassRef:o.toRef(e,"paneClass"),paneStyleRef:o.toRef(e,"paneStyle"),mergedClsPrefixRef:l,typeRef:o.toRef(e,"type"),closableRef:o.toRef(e,"closable"),valueRef:$,tabChangeIdRef:k,onBeforeLeaveRef:o.toRef(e,"onBeforeLeave"),activateTab:ue,handleClose:te,handleAdd:Ie}),ia(()=>{O(),V()}),o.watchEffect(()=>{const{value:_}=u;if(!_)return;const{value:F}=l,K=`${F}-tabs-nav-scroll-wrapper--shadow-start`,z=`${F}-tabs-nav-scroll-wrapper--shadow-end`;v.value?_.classList.remove(K):_.classList.add(K),w.value?_.classList.remove(z):_.classList.add(z)});const ke={syncBarPosition:()=>{O()}},q=()=>{re({transitionDisabled:!0})},A=o.computed(()=>{const{value:_}=g,{type:F}=e,K={card:"Card",bar:"Bar",line:"Line",segment:"Segment"}[F],z=`${_}${K}`,{self:{barColor:C,closeIconColor:B,closeIconColorHover:oe,closeIconColorPressed:xe,tabColor:ze,tabBorderColor:Ne,paneTextColor:Ae,tabFontWeight:_e,tabBorderRadius:qe,tabFontWeightActive:st,colorSegment:Je,fontWeightStrong:it,tabColorSegment:x,closeSize:L,closeIconSize:J,closeColorHover:ae,closeColorPressed:se,closeBorderRadius:fe,[ee("panePadding",_)]:he,[ee("tabPadding",z)]:ge,[ee("tabPaddingVertical",z)]:Te,[ee("tabGap",z)]:ut,[ee("tabGap",`${z}Vertical`)]:Yt,[ee("tabTextColor",F)]:wn,[ee("tabTextColorActive",F)]:Zt,[ee("tabTextColorHover",F)]:Jt,[ee("tabTextColorDisabled",F)]:po,[ee("tabFontSize",_)]:bo},common:{cubicBezierEaseInOut:Hn}}=d.value;return{"--n-bezier":Hn,"--n-color-segment":Je,"--n-bar-color":C,"--n-tab-font-size":bo,"--n-tab-text-color":wn,"--n-tab-text-color-active":Zt,"--n-tab-text-color-disabled":po,"--n-tab-text-color-hover":Jt,"--n-pane-text-color":Ae,"--n-tab-border-color":Ne,"--n-tab-border-radius":qe,"--n-close-size":L,"--n-close-icon-size":J,"--n-close-color-hover":ae,"--n-close-color-pressed":se,"--n-close-border-radius":fe,"--n-close-icon-color":B,"--n-close-icon-color-hover":oe,"--n-close-icon-color-pressed":xe,"--n-tab-color":ze,"--n-tab-font-weight":_e,"--n-tab-font-weight-active":st,"--n-tab-padding":ge,"--n-tab-padding-vertical":Te,"--n-tab-gap":ut,"--n-tab-gap-vertical":Yt,"--n-pane-padding-left":dt(he,"left"),"--n-pane-padding-right":dt(he,"right"),"--n-pane-padding-top":dt(he,"top"),"--n-pane-padding-bottom":dt(he,"bottom"),"--n-font-weight-strong":it,"--n-tab-color-segment":x}}),ne=s?et("tabs",o.computed(()=>`${g.value[0]}${e.type[0]}`),A,e):void 0;return Object.assign({mergedClsPrefix:l,mergedValue:$,renderedNames:new Set,segmentCapsuleElRef:we,tabsPaneWrapperRef:j,tabsElRef:c,barElRef:f,addTabInstRef:p,xScrollInstRef:m,scrollWrapperElRef:u,addTabFixed:Me,tabWrapperStyle:M,handleNavResize:le,mergedSize:g,handleScroll:Ue,handleTabsResize:Le,cssVars:s?void 0:A,themeClass:ne==null?void 0:ne.themeClass,animationDirection:ie,renderNameListRef:de,yScrollElRef:h,handleSegmentResize:q,onAnimationBeforeLeave:Z,onAnimationEnter:X,onAnimationAfterEnter:Y,onRender:ne==null?void 0:ne.onRender},ke)},render(){const{mergedClsPrefix:e,type:t,placement:n,addTabFixed:r,addable:i,mergedSize:a,renderNameListRef:l,onRender:s,paneWrapperClass:d,paneWrapperStyle:c,$slots:{default:f,prefix:u,suffix:p}}=this;s==null||s();const m=f?Tn(f()).filter(k=>k.type.__TAB_PANE__===!0):[],h=f?Tn(f()).filter(k=>k.type.__TAB__===!0):[],v=!h.length,w=t==="card",g=t==="segment",P=!w&&!g&&this.justifyContent;l.value=[];const H=()=>{const k=o.h("div",{style:this.tabWrapperStyle,class:[`${e}-tabs-wrapper`]},P?null:o.h("div",{class:`${e}-tabs-scroll-padding`,style:{width:`${this.tabsPadding}px`}}),v?m.map((M,b)=>(l.value.push(M.props.name),Ti(o.h(zi,Object.assign({},M.props,{internalCreatedByPane:!0,internalLeftPadded:b!==0&&(!P||P==="center"||P==="start"||P==="end")}),M.children?{default:M.children.tab}:void 0)))):h.map((M,b)=>(l.value.push(M.props.name),Ti(b!==0&&!P?Is(M):M))),!r&&i&&w?Ms(i,(v?m.length:h.length)!==0):null,P?null:o.h("div",{class:`${e}-tabs-scroll-padding`,style:{width:`${this.tabsPadding}px`}}));return o.h("div",{ref:"tabsElRef",class:`${e}-tabs-nav-scroll-content`},w&&i?o.h(jt,{onResize:this.handleTabsResize},{default:()=>k}):k,w?o.h("div",{class:`${e}-tabs-pad`}):null,w?null:o.h("div",{ref:"barElRef",class:`${e}-tabs-bar`}))},$=g?"top":n;return o.h("div",{class:[`${e}-tabs`,this.themeClass,`${e}-tabs--${t}-type`,`${e}-tabs--${a}-size`,P&&`${e}-tabs--flex`,`${e}-tabs--${$}`],style:this.cssVars},o.h("div",{class:[`${e}-tabs-nav--${t}-type`,`${e}-tabs-nav--${$}`,`${e}-tabs-nav`]},Oe(u,k=>k&&o.h("div",{class:`${e}-tabs-nav__prefix`},k)),g?o.h(jt,{onResize:this.handleSegmentResize},{default:()=>o.h("div",{class:`${e}-tabs-rail`,ref:"tabsElRef"},o.h("div",{class:`${e}-tabs-capsule`,ref:"segmentCapsuleElRef"},o.h("div",{class:`${e}-tabs-wrapper`},o.h("div",{class:`${e}-tabs-tab`}))),v?m.map((k,M)=>(l.value.push(k.props.name),o.h(zi,Object.assign({},k.props,{internalCreatedByPane:!0,internalLeftPadded:M!==0}),k.children?{default:k.children.tab}:void 0))):h.map((k,M)=>(l.value.push(k.props.name),M===0?k:Is(k))))}):o.h(jt,{onResize:this.handleNavResize},{default:()=>o.h("div",{class:`${e}-tabs-nav-scroll-wrapper`,ref:"scrollWrapperElRef"},["top","bottom"].includes($)?o.h(Oc,{ref:"xScrollInstRef",onScroll:this.handleScroll},{default:H}):o.h("div",{class:`${e}-tabs-nav-y-scroll`,onScroll:this.handleScroll,ref:"yScrollElRef"},H()))}),r&&i&&w?Ms(i,!0):null,Oe(p,k=>k&&o.h("div",{class:`${e}-tabs-nav__suffix`},k))),v&&(this.animated&&($==="top"||$==="bottom")?o.h("div",{ref:"tabsPaneWrapperRef",style:c,class:[`${e}-tabs-pane-wrapper`,d]},Es(m,this.mergedValue,this.renderedNames,this.onAnimationBeforeLeave,this.onAnimationEnter,this.onAnimationAfterEnter,this.animationDirection)):Es(m,this.mergedValue,this.renderedNames)))}});function Es(e,t,n,r,i,a,l){const s=[];return e.forEach(d=>{const{name:c,displayDirective:f,"display-directive":u}=d.props,p=h=>f===h||u===h,m=t===c;if(d.key!==void 0&&(d.key=c),m||p("show")||p("show:lazy")&&n.has(c)){n.has(c)||n.add(c);const h=!p("if");s.push(h?o.withDirectives(d,[[o.vShow,m]]):d)}}),l?o.h(o.TransitionGroup,{name:`${l}-transition`,onBeforeLeave:r,onEnter:i,onAfterEnter:a},{default:()=>s}):s}function Ms(e,t){return o.h(zi,{ref:"addTabInstRef",key:"__addable",name:"__addable",internalCreatedByPane:!0,internalAddable:!0,internalLeftPadded:t,disabled:typeof e=="object"&&e.disabled})}function Is(e){const t=o.cloneVNode(e);return t.props?t.props.internalLeftPadded=!0:t.props={internalLeftPadded:!0},t}function Ti(e){return Array.isArray(e.dynamicProps)?e.dynamicProps.includes("internalLeftPadded")||e.dynamicProps.push("internalLeftPadded"):e.dynamicProps=["internalLeftPadded"],e}async function Os(e,t,n){try{const{data:r}=await en().POST("/api/visualizations",{type:e,title:t,config:n});return r.id}catch(r){$n(r)}}async function E0(e,t,n,r){try{if(t)await As(t,n,r);else return await Os(e,n,r)}catch(i){$n(i)}}async function As(e,t,n){try{await en().PUT(`/api/visualizations/${e}`,{title:t,config:n})}catch(r){$n(r)}}function Fs(e){const t={};return e&&e.forEach(n=>{n.name?t[n.name]=n.value??null:console.debug("Warning: Detected input element with no name.")}),t}const M0={key:2,class:"border border-dotted border-green-600 rounded mt-2 p-2"},I0=o.defineComponent({__name:"InputConditional",props:o.mergeModels({datasetId:{},input:{}},{value:{},valueModifiers:{}}),emits:o.mergeModels(["update:value"],["update:value"]),setup(e,{emit:t}){const n=e,r=t;if(!n.input.test_param)throw`The conditional '${n.input.name}' is missing a test parameter.`;if(!n.input.cases||n.input.cases.length===0)throw`The conditional '${n.input.name}' is missing a cases.`;const i=o.ref(n.input.test_param),a=i.value.name;a||console.error(`Test parameter has no name: ${n.input.name}.`);const l=o.useModel(e,"value");(!l.value||!(a in l.value))&&console.error(`Test parameter of conditional not available: ${n.input.name}.`,l.value);const s=o.ref(p()),d=o.computed(()=>{const h={};if(n.input.cases&&n.input.cases.length>0)for(const v of n.input.cases)h[v.value]=Fs(v.inputs),h[v.value][a]=v.value;return h}),c=o.computed(()=>{const h={};if(n.input.cases&&n.input.cases.length>0)for(const v of n.input.cases)h[v.value]=v.inputs;return h}),f=o.computed(()=>c.value[s.value]),u=o.computed({get(){return s.value==="true"},set(h){s.value=String(h)}});function p(){return l.value&&l.value[a]}function m(h){let v={...d.value[s.value]};if(h){const w={};f.value.forEach(g=>{w[g.name]=h[g.name]}),v={...v,...h}}r("update:value",v)}return o.watch(()=>l.value,()=>{s.value=p()}),o.watch(()=>s.value,()=>{m()}),(h,v)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[i.value.type==="boolean"?(o.openBlock(),o.createBlock(o.unref(Rs),{key:0,value:u.value,"onUpdate:value":v[0]||(v[0]=w=>u.value=w)},null,8,["value"])):(o.openBlock(),o.createBlock(o.unref(rr),{key:1,value:s.value,"onUpdate:value":v[1]||(v[1]=w=>s.value=w),options:i.value.data},null,8,["value","options"])),f.value?(o.openBlock(),o.createElementBlock("div",M0,[o.createVNode(Pi,{"dataset-id":h.datasetId,inputs:f.value,values:l.value,"onUpdate:values":m},null,8,["dataset-id","inputs","values"])])):o.createCommentVNode("",!0)],64))}}),O0={key:0,class:"mb-1"},A0={key:1,class:"text-red-600 mb-1"},F0=o.createElementVNode("span",null,"Please select a dataset.",-1),D0=100,V0=o.defineComponent({__name:"InputData",props:o.mergeModels({extension:{},optional:{type:Boolean}},{value:{},valueModifiers:{}}),emits:["update:value"],setup(e){const t=e,n=o.ref([]),r=o.useModel(e,"value"),i=o.ref(!1),a=o.ref(null);async function l(d){i.value=!0;try{const c=t.extension?`q=extension-eq&qv=${t.extension}`:"",f=d?`q=name-contains&qv=${d}`:"",{data:u}=await en().GET(`/api/datasets?limit=${D0}&${c}&${f}`);if(u&&u.length>0){const p=u.map(m=>({label:m.name,value:{id:m.id,name:m.name}}));p.push({label:"...filter for more",value:null,disabled:!0}),t.optional&&p.unshift({label:"-- Clear Selection --",value:null}),n.value=p}}catch(c){console.log(c)}finally{i.value=!1}}function s(){r.value=a.value,a.value=null}return l(),(d,c)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[r.value?(o.openBlock(),o.createElementBlock("div",O0,[o.createVNode(o.unref(yt),{class:"size-3 mr-1"},{default:o.withCtx(()=>[o.createVNode(o.unref(Hi))]),_:1}),o.createElementVNode("span",null,"Selected: "+o.toDisplayString(r.value.name),1)])):d.optional?o.createCommentVNode("",!0):(o.openBlock(),o.createElementBlock("div",A0,[o.createVNode(o.unref(yt),{class:"size-3 mr-1"},{default:o.withCtx(()=>[o.createVNode(o.unref(Li))]),_:1}),F0])),o.createVNode(o.unref(rr),{value:a.value,"onUpdate:value":[c[0]||(c[0]=f=>a.value=f),s],filterable:"",placeholder:"Select a Dataset",loading:i.value,options:n.value,onSearch:l},null,8,["value","loading","options"])],64))}});function H0(e,t,n,r){const i=[];t&&i.push({label:"Column: Default",value:"auto"});const a=e.metadata_column_types;for(const l in a)(r&&["int","float"].includes(a[l])||n&&a[l]==="str"||!r&&!n)&&i.push({label:"Column: "+(parseInt(l)+1),value:l});return i}const L0=o.defineComponent({__name:"InputDataColumn",props:o.mergeModels({datasetId:{},isAuto:{type:Boolean},isText:{type:Boolean},isNumber:{type:Boolean}},{value:{},valueModifiers:{}}),emits:["update:value"],setup(e){const t=e,n=o.ref([]),r=o.useModel(e,"value");async function i(){if(t.datasetId)try{const{data:l}=await en().GET(`/api/datasets/${t.datasetId}`),s=H0(l,t.isAuto,t.isText,t.isNumber);n.value=s,a()}catch(l){console.log(l)}else console.log("Data column selector disabled, since `datasetId` is unavailable.")}function a(){n.value.length>0&&r.value===null&&(r.value=n.value[0].value)}return i(),o.watch(()=>r.value,()=>a()),(l,s)=>l.datasetId?(o.openBlock(),o.createBlock(o.unref(rr),{key:0,value:r.value,"onUpdate:value":s[0]||(s[0]=d=>r.value=d),options:n.value},null,8,["value","options"])):(o.openBlock(),o.createBlock(o.unref(Dn),{key:1,value:r.value,"onUpdate:value":s[1]||(s[1]=d=>r.value=d)},null,8,["value"]))}});function ho(e){return String(e).toLowerCase()==="true"}const N0={class:"overflow-auto select-none"},W0={class:"font-bold pb-1"},j0={key:0,class:"text-xs pb-1"},U0={key:5},Ds=.01,Pi=o.defineComponent({__name:"InputForm",props:{datasetId:{},inputs:{},values:{}},emits:["update:values"],setup(e,{emit:t}){const n=e,r=t,i=o.ref(a());function a(){const s={...n.values};return n.inputs.forEach(d=>{s[d.name]===void 0&&(s[d.name]=null)}),s}function l(){r("update:values",i.value)}return o.watch(()=>n.values,()=>{i.value=a()}),(s,d)=>(o.openBlock(),o.createElementBlock("div",N0,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(s.inputs,(c,f)=>(o.openBlock(),o.createElementBlock("div",{key:f,class:"pb-2"},[o.createElementVNode("div",W0,o.toDisplayString(c.label||c.name),1),c.help?(o.openBlock(),o.createElementBlock("div",j0,o.toDisplayString(c.help),1)):o.createCommentVNode("",!0),o.createElementVNode("div",null,[c.type==="boolean"?(o.openBlock(),o.createBlock(o.unref(Rs),{key:0,value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[0]||(d[0]=u=>l())]},null,8,["value","onUpdate:value"])):c.type==="color"?(o.openBlock(),o.createBlock(o.unref(Dv),{key:1,value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[1]||(d[1]=u=>l())],modes:["hex"],"show-alpha":!1},null,8,["value","onUpdate:value"])):c.type==="conditional"?(o.openBlock(),o.createBlock(I0,{key:2,value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[2]||(d[2]=u=>l())],"dataset-id":s.datasetId,input:c},null,8,["value","onUpdate:value","dataset-id","input"])):c.type==="data"?(o.openBlock(),o.createBlock(V0,{key:3,value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[3]||(d[3]=u=>l())],extension:c.extension,optional:o.unref(ho)(c.optional)},null,8,["value","onUpdate:value","extension","optional"])):c.type==="data_column"?(o.openBlock(),o.createBlock(L0,{key:4,value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[4]||(d[4]=u=>l())],"dataset-id":s.datasetId,"is-auto":o.unref(ho)(c.is_auto),"is-text":o.unref(ho)(c.is_text),"is-number":o.unref(ho)(c.is_number)},null,8,["value","onUpdate:value","dataset-id","is-auto","is-text","is-number"])):c.type==="float"?(o.openBlock(),o.createElementBlock("div",U0,[c.min!==void 0&&c.max!==void 0?(o.openBlock(),o.createBlock(o.unref(k0),{key:0,class:"mb-2",value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[5]||(d[5]=u=>l())],min:Number(c.min),max:Number(c.max),step:Ds},null,8,["value","onUpdate:value","min","max"])):o.createCommentVNode("",!0),o.createVNode(o.unref(w0),{value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[6]||(d[6]=u=>l())],size:"small",min:Number(c.min),max:Number(c.max),step:Ds},null,8,["value","onUpdate:value","min","max"])])):c.type==="select"?(o.openBlock(),o.createBlock(o.unref(rr),{key:6,value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[7]||(d[7]=u=>l())],options:c.data},null,8,["value","onUpdate:value","options"])):c.type==="textarea"?(o.openBlock(),o.createBlock(o.unref(Dn),{key:7,value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[8]||(d[8]=u=>l())],rows:Number(c.rows),type:"textarea"},null,8,["value","onUpdate:value","rows"])):(o.openBlock(),o.createBlock(o.unref(Dn),{key:8,value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[9]||(d[9]=u=>l())]},null,8,["value","onUpdate:value"]))])]))),128))]))}}),G0=o.createElementVNode("span",{class:"mx-1"},"Add New Track",-1),K0={class:"border border-dotted border-green-600 rounded p-2"},q0={class:"flex text-green-600 my-1"},X0={class:"mx-1"},Y0=o.defineComponent({__name:"InputRepeats",props:{datasetId:{},inputs:{},valuesArray:{}},emits:["update:values-array"],setup(e,{emit:t}){const n=e,r=t,i=o.computed(()=>Fs(n.inputs));function a(){const d=[...n.valuesArray];d.unshift(i.value),r("update:values-array",d)}function l(d){const c=[...n.valuesArray];c.splice(d,1),r("update:values-array",c)}function s(d,c){const f=[...n.valuesArray];f[d]={...c},r("update:values-array",f)}return(d,c)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createVNode(o.unref(It),{size:"tiny",type:"primary",class:"mb-2",onClick:a},{default:o.withCtx(()=>[o.createVNode(o.unref(yt),null,{default:o.withCtx(()=>[o.createVNode(o.unref(Ks))]),_:1}),G0]),_:1}),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(d.valuesArray,(f,u)=>(o.openBlock(),o.createElementBlock("div",{key:u,class:"my-2"},[o.createElementVNode("div",K0,[o.createVNode(Pi,{"dataset-id":d.datasetId,inputs:d.inputs,values:f,"onUpdate:values":p=>s(u,p)},null,8,["dataset-id","inputs","values","onUpdate:values"]),o.createElementVNode("div",q0,[o.createVNode(o.unref(It),{class:"text-green-600 w-full",size:"tiny",round:"",disabled:d.valuesArray.length<=1,onClick:p=>l(u)},{default:o.withCtx(()=>[o.createVNode(o.unref(yt),null,{default:o.withCtx(()=>[o.createVNode(o.unref(Xs))]),_:1}),o.createElementVNode("span",X0,"Remove Track "+o.toDisplayString(d.valuesArray.length-u),1)]),_:2},1032,["disabled","onClick"])])])]))),128))],64))}}),Z0=2e3,J0=o.defineComponent({__name:"AlertNotify",props:{message:{},messageType:{default:"info"}},emits:["timeout"],setup(e,{emit:t}){const n=e,r=t;let i=null;return o.watch(()=>n.message,()=>{i&&clearTimeout(i),i=setTimeout(()=>r("timeout"),Z0)}),(a,l)=>a.message?(o.openBlock(),o.createBlock(o.unref(vi),{key:0,type:a.messageType,class:"m-4"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(a.message),1)]),_:1},8,["type"])):o.createCommentVNode("",!0)}}),Q0={class:"text-xs"},ex=o.createElementVNode("span",{class:"text-xs"},"Galaxy is not accessible!",-1),tx=o.defineComponent({__name:"ApiStatus",setup(e){const t=o.ref("...");async function n(){try{const{data:r}=await en().GET("/api/version");t.value=r.version_major}catch{console.log("Unable to connect to Galaxy. Verify Galaxy is running and refer to docs."),t.value=""}}return n(),(r,i)=>t.value?(o.openBlock(),o.createBlock(o.unref(Cs),{key:0,class:"mx-1",trigger:"hover"},{trigger:o.withCtx(()=>[o.createVNode(o.unref(yt),{class:"mx-1"},{default:o.withCtx(()=>[o.createVNode(o.unref(Hi),{class:"text-green-600"})]),_:1})]),default:o.withCtx(()=>[o.createElementVNode("span",Q0,"Connected to Galaxy Version "+o.toDisplayString(t.value)+".",1)]),_:1})):(o.openBlock(),o.createBlock(o.unref(Cs),{key:1,class:"mx-1",trigger:"hover"},{trigger:o.withCtx(()=>[o.createVNode(o.unref(yt),{class:"mx-1"},{default:o.withCtx(()=>[o.createVNode(o.unref(Li),{class:"text-red-600"})]),_:1})]),default:o.withCtx(()=>[ex]),_:1}))}}),nx={class:"overflow-auto select-none bg-white z-10"},ox={class:"flex p-2"},rx={class:"flex-1 font-thin text-lg p-1 p-2"},ix=o.createElementVNode("span",null,"Charts",-1),ax={key:0},lx={class:"m-4 mt-0 p-2 bg-sky-50 text-sky-900 rounded"},sx={class:"md:flex"},dx={class:"flex justify-center center-items"},cx={class:"m-2"},ux=["src"],fx={key:1,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 100 100",class:"size-14"},hx=[o.createElementVNode("circle",{cx:"50",cy:"50",r:"45",stroke:"#E30A17","stroke-width":"5"},null,-1),o.createElementVNode("path",{d:"M 50,5 A 45,45 0 0,1 95,50 L 50,50 Z",fill:"#E30A17"},null,-1)],px={class:"overflow-hidden break-words p-1"},bx={class:"font-bold"},gx=["innerHTML"],mx={class:"px-4 pb-2"},vx=o.createElementVNode("div",{class:"font-bold"},"Title",-1),xx=o.createElementVNode("div",{class:"text-xs py-1"},"Specify a visualization title.",-1),yx=o.createElementVNode("span",{class:"mx-1"},"Tracks",-1),wx=o.createElementVNode("span",{class:"mx-1"},"Settings",-1),Cx=o.defineComponent({__name:"SidePanel",props:{datasetId:{},description:{},logoUrl:{},html:{},name:{},settingInputs:{},settingValues:{},trackInputs:{},trackValues:{},visualizationId:{},visualizationTitle:{}},emits:["update:tracks","update:settings","update:visualization-id","update:visualization-title","toggle"],setup(e,{emit:t}){const n=e,r=t,i=o.ref(""),a=o.ref("info"),l=o.computed(()=>n.settingInputs.length===0||n.trackInputs.length===0);async function s(){try{if(n.visualizationId)await As(n.visualizationId,n.visualizationTitle,{dataset_id:n.datasetId,settings:n.settingValues,tracks:n.trackValues}),i.value="Successfully saved.",a.value="success";else{const u=await Os(n.name,n.visualizationTitle,{dataset_id:n.datasetId,settings:n.settingValues,tracks:n.trackValues});u?(i.value="Successfully created.",a.value="success",r("update:visualization-id",u)):(i.value="Something went wrong.",a.value="error")}}catch(u){i.value=Oi(u),a.value="error"}}function d(u){r("update:settings",u)}function c(u){r("update:tracks",u)}function f(u){r("update:visualization-title",u)}return(u,p)=>(o.openBlock(),o.createElementBlock("div",nx,[o.createElementVNode("div",ox,[o.createElementVNode("div",rx,[ix,o.createVNode(tx)]),u.datasetId?(o.openBlock(),o.createElementBlock("div",ax,[o.createVNode(o.unref(It),{strong:"",secondary:"",circle:"",class:"bg-sky-100 m-1",onClick:s},{icon:o.withCtx(()=>[o.createVNode(o.unref(yt),null,{default:o.withCtx(()=>[o.createVNode(o.unref(Gs))]),_:1})]),_:1}),o.createVNode(o.unref(It),{strong:"",secondary:"",circle:"",class:"bg-sky-100 m-1",onClick:p[0]||(p[0]=m=>r("toggle"))},{icon:o.withCtx(()=>[o.createVNode(o.unref(yt),null,{default:o.withCtx(()=>[o.createVNode(o.unref(Us))]),_:1})]),_:1})])):o.createCommentVNode("",!0)]),o.createVNode(J0,{message:i.value,"message-type":a.value,onTimeout:p[1]||(p[1]=m=>i.value=""),class:"m-4"},null,8,["message","message-type"]),o.createElementVNode("div",lx,[o.createElementVNode("div",sx,[o.createElementVNode("div",dx,[o.createElementVNode("div",cx,[n.logoUrl?(o.openBlock(),o.createElementBlock("img",{key:0,src:n.logoUrl,class:"min-w-14 max-w-14 object-contain"},null,8,ux)):(o.openBlock(),o.createElementBlock("svg",fx,hx))])]),o.createElementVNode("div",px,[o.createElementVNode("span",bx,o.toDisplayString(u.html),1),o.createElementVNode("div",{class:"text-xs",innerHTML:u.description},null,8,gx)])])]),o.createElementVNode("div",mx,[vx,xx,o.createVNode(o.unref(Dn),{value:u.visualizationTitle,onInput:f},null,8,["value"])]),o.createVNode(o.unref(_0),{type:"line",animated:"",class:"px-4","tab-class":l.value?"!hidden":""},{default:o.withCtx(()=>[u.trackInputs.length>0?(o.openBlock(),o.createBlock(o.unref(_s),{key:0,name:"tracks"},{tab:o.withCtx(()=>[o.createVNode(o.unref(yt),null,{default:o.withCtx(()=>[o.createVNode(o.unref(qs))]),_:1}),yx]),default:o.withCtx(()=>[o.createVNode(Y0,{"dataset-id":u.datasetId,inputs:u.trackInputs,"values-array":u.trackValues,"onUpdate:valuesArray":c},null,8,["dataset-id","inputs","values-array"])]),_:1})):o.createCommentVNode("",!0),u.settingInputs.length>0?(o.openBlock(),o.createBlock(o.unref(_s),{key:1,name:"settings"},{tab:o.withCtx(()=>[o.createVNode(o.unref(yt),null,{default:o.withCtx(()=>[o.createVNode(o.unref(Ns))]),_:1}),wx]),default:o.withCtx(()=>[o.createVNode(Pi,{"dataset-id":u.datasetId,inputs:u.settingInputs,values:u.settingValues,"onUpdate:values":d},null,8,["dataset-id","inputs","values"])]),_:1})):o.createCommentVNode("",!0)]),_:1},8,["tab-class"])]))}});async function Sx(e,t={}){const n=Ri(e.settings,t.settings),r=e.specs,i=zx(e.tracks,t.tracks);return{plugin:e,settings:n,specs:r,tracks:i}}function $x(e,t){let n=t??e.value;return e.type==="float"?n=Number(n):e.type==="boolean"&&(n=ho(n)),n}function kx(e,t={}){var i,a,l;const n=t,r=(i=e.test_param)==null?void 0:i.name;if(!r)console.error(`Test parameter has no name: ${e.name}.`);else{const s=n[r]??((a=e.test_param)==null?void 0:a.value);for(const d of e.cases||[])d.value===s&&(n[r]=s,(l=d.inputs)!=null&&l.length&&Ri(d.inputs,n))}return n}function Ri(e,t){const n=t||{};return e==null||e.forEach(r=>{r.type==="conditional"?n[r.name]=kx(r,n[r.name]):n[r.name]=$x(r,n[r.name])}),n}function zx(e,t){const n=t||[];return e&&(n.length===0&&n.push({}),n.forEach((r,i)=>{n[i]=Ri(e,r)})),n}function Tx(e,t="app"){if(e===void 0){const s=document.getElementById(t);if(!s)throw new Error(`Container element '${t}' not found.`);e=JSON.parse((s==null?void 0:s.getAttribute("data-incoming"))||"{}")}const n=(e==null?void 0:e.root)??"/",r=(e==null?void 0:e.visualization_config)??{},i=(e==null?void 0:e.visualization_id)??null,a=(e==null?void 0:e.visualization_plugin)??{},l=(e==null?void 0:e.visualization_title)??"Unnamed Visualization";return{root:n,visualizationConfig:r,visualizationId:i,visualizationPlugin:a,visualizationTitle:l}}const Px={key:2,class:"m-2"},Rx=o.createElementVNode("span",{class:"text-xs"},"Please wait...",-1),Bx={key:1},_x=o.defineComponent({__name:"GalaxyCharts",props:{container:{},credentials:{},incoming:{}},setup(e){const t=e,{root:n,visualizationConfig:r,visualizationId:i,visualizationPlugin:a,visualizationTitle:l}=Tx(t.incoming,t.container),s=o.ref(!1),d=o.ref(""),c=o.ref(""),f=o.ref(""),u=o.ref(!0),p=o.ref(""),m=o.ref(""),h=o.ref([]),v=o.ref({}),w=o.ref({}),g=o.ref([]),P=o.ref([]),H=o.ref(i),$=o.ref(l),k=Di();k.setCredentials(t.credentials||"include"),k.setRoot(n||"/"),Sx(a,r).then(({plugin:Y,settings:de,specs:ie,tracks:ue})=>{d.value=Y.description||"",f.value=Y.html||"",u.value=!1,p.value=Y.logo||"",m.value=Y.name||"",h.value=Y.settings||[],v.value=de,w.value=ie||{},g.value=Y.tracks||[],P.value=ue});const M=o.computed(()=>r.dataset_id||""),b=o.computed(()=>r.dataset_url?(console.debug(`GalaxyCharts: Evaluating dataset url: ${r.dataset_url}.`),r.dataset_url):M.value?(console.debug(`GalaxyCharts: Built dataset url from dataset id: ${M.value}.`),Hs(n,M.value)):null),S=o.computed(()=>p.value&&`${n}${p.value}`),E=o.computed(()=>h.value.length===0&&g.value.length===0);async function D(){s.value=!s.value,await o.nextTick(),window?window.dispatchEvent(new Event("resize")):console.warn("window unavailable.")}function O(){try{window.postMessage({container:t.container,content:JSON.parse(JSON.stringify(V())),from:"galaxy-charts"},"*")}catch(Y){c.value=`Failed to postMessage: ${Y}`}}function V(){return{dataset_id:M.value,settings:v.value,tracks:P.value}}function j(Y){v.value={...Y},O()}function Q(Y){P.value=[...Y],O()}function N(Y){H.value=Y}function Z(Y){$.value=Y}async function X(Y){j({...v.value,...Y});try{const de=await E0(m.value,i,l,V());de&&N(de)}catch(de){c.value=`Failed to save: ${de}.`}}return(Y,de)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[c.value?(o.openBlock(),o.createBlock(o.unref(vi),{key:0,type:"error",class:"m-2"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(c.value),1)]),_:1})):o.createCommentVNode("",!0),b.value?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(o.unref(vi),{key:1,type:"info",class:"m-2"},{default:o.withCtx(()=>[o.createTextVNode(" Only displaying available visualization inputs. Rendering requires `dataset_id` or `dataset_url`. ")]),_:1})),u.value?(o.openBlock(),o.createElementBlock("div",Px,[o.createElementVNode("span",null,[o.createVNode(o.unref(Ws),{class:"animate-spin size-4 inline mx-1"})]),Rx])):(o.openBlock(),o.createElementBlock("div",{key:3,class:o.normalizeClass(["grid h-screen",{"grid-cols-[70%_30%]":!s.value&&b.value&&!E.value}])},[b.value?o.renderSlot(Y.$slots,"default",{key:0,datasetId:M.value,datasetUrl:b.value,root:o.unref(n),settings:v.value,specs:w.value,tracks:P.value,save:X}):o.createCommentVNode("",!0),s.value&&b.value&&!E.value?(o.openBlock(),o.createElementBlock("div",Bx,[o.createVNode(o.unref(g0),{strong:"",secondary:"",circle:"",class:"bg-sky-100 m-2",top:0,right:0,onClick:D},{default:o.withCtx(()=>[o.createVNode(o.unref(yt),null,{default:o.withCtx(()=>[o.createVNode(o.unref(js))]),_:1})]),_:1})])):E.value?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(Cx,{key:2,"dataset-id":M.value,description:d.value,html:f.value,"logo-url":S.value,name:m.value,"setting-inputs":h.value,"setting-values":v.value,"track-inputs":g.value,"track-values":P.value,"visualization-id":H.value,"visualization-title":$.value,"onUpdate:settings":j,"onUpdate:tracks":Q,"onUpdate:visualizationId":N,"onUpdate:visualizationTitle":Z,onToggle:D},null,8,["dataset-id","description","html","logo-url","name","setting-inputs","setting-values","track-inputs","track-values","visualization-id","visualization-title"]))],2))],64))}});We.GalaxyApi=en,We.GalaxyCharts=_x,We.useColumnsStore=Ls,Object.defineProperty(We,Symbol.toStringTag,{value:"Module"})});
2068
+ `)])])])]),B0=Object.assign(Object.assign({},ye.props),{value:[String,Number],defaultValue:[String,Number],trigger:{type:String,default:"click"},type:{type:String,default:"bar"},closable:Boolean,justifyContent:String,size:{type:String,default:"medium"},placement:{type:String,default:"top"},tabStyle:[String,Object],tabClass:String,addTabStyle:[String,Object],addTabClass:String,barWidth:Number,paneClass:String,paneStyle:[String,Object],paneWrapperClass:String,paneWrapperStyle:[String,Object],addable:[Boolean,Object],tabsPadding:{type:Number,default:0},animated:Boolean,onBeforeLeave:Function,onAdd:Function,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array],onClose:[Function,Array],labelSize:String,activeName:[String,Number],onActiveNameChange:[Function,Array]}),_0=o.defineComponent({name:"Tabs",props:B0,setup(e,{slots:t}){var n,r,i,a;process.env.NODE_ENV!=="production"&&o.watchEffect(()=>{e.labelSize!==void 0&&tt("tabs","`label-size` is deprecated, please use `size` instead."),e.activeName!==void 0&&tt("tabs","`active-name` is deprecated, please use `value` instead."),e.onActiveNameChange!==void 0&&tt("tabs","`on-active-name-change` is deprecated, please use `on-update:value` instead.")});const{mergedClsPrefixRef:l,inlineThemeDisabled:s}=Ke(e),d=ye("Tabs","-tabs",R0,l0,e,l),c=o.ref(null),f=o.ref(null),u=o.ref(null),p=o.ref(null),m=o.ref(null),h=o.ref(null),v=o.ref(!0),w=o.ref(!0),g=To(e,["labelSize","size"]),P=To(e,["activeName","value"]),H=o.ref((r=(n=P.value)!==null&&n!==void 0?n:e.defaultValue)!==null&&r!==void 0?r:t.default?(a=(i=Tn(t.default())[0])===null||i===void 0?void 0:i.props)===null||a===void 0?void 0:a.name:null),$=vt(P,H),k={id:0},M=o.computed(()=>{if(!(!e.justifyContent||e.type==="card"))return{display:"flex",justifyContent:e.justifyContent}});o.watch($,()=>{k.id=0,O(),V()});function b(){var _;const{value:F}=$;return F===null?null:(_=c.value)===null||_===void 0?void 0:_.querySelector(`[data-name="${F}"]`)}function S(_){if(e.type==="card")return;const{value:F}=f;if(!F)return;const K=F.style.opacity==="0";if(_){const z=`${l.value}-tabs-bar--disabled`,{barWidth:C,placement:B}=e;if(_.dataset.disabled==="true"?F.classList.add(z):F.classList.remove(z),["top","bottom"].includes(B)){if(D(["top","maxHeight","height"]),typeof C=="number"&&_.offsetWidth>=C){const oe=Math.floor((_.offsetWidth-C)/2)+_.offsetLeft;F.style.left=`${oe}px`,F.style.maxWidth=`${C}px`}else F.style.left=`${_.offsetLeft}px`,F.style.maxWidth=`${_.offsetWidth}px`;F.style.width="8192px",K&&(F.style.transition="none"),F.offsetWidth,K&&(F.style.transition="",F.style.opacity="1")}else{if(D(["left","maxWidth","width"]),typeof C=="number"&&_.offsetHeight>=C){const oe=Math.floor((_.offsetHeight-C)/2)+_.offsetTop;F.style.top=`${oe}px`,F.style.maxHeight=`${C}px`}else F.style.top=`${_.offsetTop}px`,F.style.maxHeight=`${_.offsetHeight}px`;F.style.height="8192px",K&&(F.style.transition="none"),F.offsetHeight,K&&(F.style.transition="",F.style.opacity="1")}}}function E(){if(e.type==="card")return;const{value:_}=f;_&&(_.style.opacity="0")}function D(_){const{value:F}=f;if(F)for(const K of _)F.style[K]=""}function O(){if(e.type==="card")return;const _=b();_?S(_):E()}function V(){var _;const F=(_=m.value)===null||_===void 0?void 0:_.$el;if(!F)return;const K=b();if(!K)return;const{scrollLeft:z,offsetWidth:C}=F,{offsetLeft:B,offsetWidth:oe}=K;z>B?F.scrollTo({top:0,left:B,behavior:"smooth"}):B+oe>z+C&&F.scrollTo({top:0,left:B+oe-C,behavior:"smooth"})}const j=o.ref(null);let Q=0,N=null;function Z(_){const F=j.value;if(F){Q=_.getBoundingClientRect().height;const K=`${Q}px`,z=()=>{F.style.height=K,F.style.maxHeight=K};N?(z(),N(),N=null):N=z}}function X(_){const F=j.value;if(F){const K=_.getBoundingClientRect().height,z=()=>{document.body.offsetHeight,F.style.maxHeight=`${K}px`,F.style.height=`${Math.max(Q,K)}px`};N?(N(),N=null,z()):N=z}}function Y(){const _=j.value;if(_){_.style.maxHeight="",_.style.height="";const{paneWrapperStyle:F}=e;if(typeof F=="string")_.style.cssText=F;else if(F){const{maxHeight:K,height:z}=F;K!==void 0&&(_.style.maxHeight=K),z!==void 0&&(_.style.height=z)}}}const de={value:[]},ie=o.ref("next");function ue(_){const F=$.value;let K="next";for(const z of de.value){if(z===F)break;if(z===_){K="prev";break}}ie.value=K,U(_)}function U(_){const{onActiveNameChange:F,onUpdateValue:K,"onUpdate:value":z}=e;F&&ce(F,_),K&&ce(K,_),z&&ce(z,_),H.value=_}function te(_){const{onClose:F}=e;F&&ce(F,_)}function ve(){const{value:_}=f;if(!_)return;const F="transition-disabled";_.classList.add(F),O(),_.classList.remove(F)}const we=o.ref(null);function re({transitionDisabled:_}){const F=c.value;if(!F)return;_&&F.classList.add("transition-disabled");const K=b();K&&we.value&&(we.value.style.width=`${K.offsetWidth}px`,we.value.style.height=`${K.offsetHeight}px`,we.value.style.transform=`translateX(${K.offsetLeft-ot(getComputedStyle(F).paddingLeft)}px)`,_&&we.value.offsetWidth),_&&F.classList.remove("transition-disabled")}o.watch([$],()=>{e.type==="segment"&&o.nextTick(()=>{re({transitionDisabled:!1})})}),o.onMounted(()=>{e.type==="segment"&&re({transitionDisabled:!0})});let Se=0;function Ce(_){var F;if(_.contentRect.width===0&&_.contentRect.height===0||Se===_.contentRect.width)return;Se=_.contentRect.width;const{type:K}=e;if((K==="line"||K==="bar")&&ve(),K!=="segment"){const{placement:z}=e;De((z==="top"||z==="bottom"?(F=m.value)===null||F===void 0?void 0:F.$el:h.value)||null)}}const le=ri(Ce,64);o.watch([()=>e.justifyContent,()=>e.size],()=>{o.nextTick(()=>{const{type:_}=e;(_==="line"||_==="bar")&&ve()})});const Me=o.ref(!1);function Re(_){var F;const{target:K,contentRect:{width:z}}=_,C=K.parentElement.offsetWidth;if(!Me.value)C<z&&(Me.value=!0);else{const{value:B}=p;if(!B)return;C-z>B.$el.offsetWidth&&(Me.value=!1)}De(((F=m.value)===null||F===void 0?void 0:F.$el)||null)}const Le=ri(Re,64);function Ie(){const{onAdd:_}=e;_&&_(),o.nextTick(()=>{const F=b(),{value:K}=m;!F||!K||K.scrollTo({left:F.offsetLeft,top:0,behavior:"smooth"})})}function De(_){if(!_)return;const{placement:F}=e;if(F==="top"||F==="bottom"){const{scrollLeft:K,scrollWidth:z,offsetWidth:C}=_;v.value=K<=0,w.value=K+C>=z}else{const{scrollTop:K,scrollHeight:z,offsetHeight:C}=_;v.value=K<=0,w.value=K+C>=z}}const Ue=ri(_=>{De(_.target)},64);o.provide(ki,{triggerRef:o.toRef(e,"trigger"),tabStyleRef:o.toRef(e,"tabStyle"),tabClassRef:o.toRef(e,"tabClass"),addTabStyleRef:o.toRef(e,"addTabStyle"),addTabClassRef:o.toRef(e,"addTabClass"),paneClassRef:o.toRef(e,"paneClass"),paneStyleRef:o.toRef(e,"paneStyle"),mergedClsPrefixRef:l,typeRef:o.toRef(e,"type"),closableRef:o.toRef(e,"closable"),valueRef:$,tabChangeIdRef:k,onBeforeLeaveRef:o.toRef(e,"onBeforeLeave"),activateTab:ue,handleClose:te,handleAdd:Ie}),ia(()=>{O(),V()}),o.watchEffect(()=>{const{value:_}=u;if(!_)return;const{value:F}=l,K=`${F}-tabs-nav-scroll-wrapper--shadow-start`,z=`${F}-tabs-nav-scroll-wrapper--shadow-end`;v.value?_.classList.remove(K):_.classList.add(K),w.value?_.classList.remove(z):_.classList.add(z)});const ke={syncBarPosition:()=>{O()}},q=()=>{re({transitionDisabled:!0})},A=o.computed(()=>{const{value:_}=g,{type:F}=e,K={card:"Card",bar:"Bar",line:"Line",segment:"Segment"}[F],z=`${_}${K}`,{self:{barColor:C,closeIconColor:B,closeIconColorHover:oe,closeIconColorPressed:xe,tabColor:ze,tabBorderColor:Ne,paneTextColor:Ae,tabFontWeight:_e,tabBorderRadius:qe,tabFontWeightActive:st,colorSegment:Je,fontWeightStrong:it,tabColorSegment:x,closeSize:L,closeIconSize:J,closeColorHover:ae,closeColorPressed:se,closeBorderRadius:fe,[ee("panePadding",_)]:he,[ee("tabPadding",z)]:ge,[ee("tabPaddingVertical",z)]:Te,[ee("tabGap",z)]:ut,[ee("tabGap",`${z}Vertical`)]:Yt,[ee("tabTextColor",F)]:wn,[ee("tabTextColorActive",F)]:Zt,[ee("tabTextColorHover",F)]:Jt,[ee("tabTextColorDisabled",F)]:po,[ee("tabFontSize",_)]:bo},common:{cubicBezierEaseInOut:Hn}}=d.value;return{"--n-bezier":Hn,"--n-color-segment":Je,"--n-bar-color":C,"--n-tab-font-size":bo,"--n-tab-text-color":wn,"--n-tab-text-color-active":Zt,"--n-tab-text-color-disabled":po,"--n-tab-text-color-hover":Jt,"--n-pane-text-color":Ae,"--n-tab-border-color":Ne,"--n-tab-border-radius":qe,"--n-close-size":L,"--n-close-icon-size":J,"--n-close-color-hover":ae,"--n-close-color-pressed":se,"--n-close-border-radius":fe,"--n-close-icon-color":B,"--n-close-icon-color-hover":oe,"--n-close-icon-color-pressed":xe,"--n-tab-color":ze,"--n-tab-font-weight":_e,"--n-tab-font-weight-active":st,"--n-tab-padding":ge,"--n-tab-padding-vertical":Te,"--n-tab-gap":ut,"--n-tab-gap-vertical":Yt,"--n-pane-padding-left":dt(he,"left"),"--n-pane-padding-right":dt(he,"right"),"--n-pane-padding-top":dt(he,"top"),"--n-pane-padding-bottom":dt(he,"bottom"),"--n-font-weight-strong":it,"--n-tab-color-segment":x}}),ne=s?et("tabs",o.computed(()=>`${g.value[0]}${e.type[0]}`),A,e):void 0;return Object.assign({mergedClsPrefix:l,mergedValue:$,renderedNames:new Set,segmentCapsuleElRef:we,tabsPaneWrapperRef:j,tabsElRef:c,barElRef:f,addTabInstRef:p,xScrollInstRef:m,scrollWrapperElRef:u,addTabFixed:Me,tabWrapperStyle:M,handleNavResize:le,mergedSize:g,handleScroll:Ue,handleTabsResize:Le,cssVars:s?void 0:A,themeClass:ne==null?void 0:ne.themeClass,animationDirection:ie,renderNameListRef:de,yScrollElRef:h,handleSegmentResize:q,onAnimationBeforeLeave:Z,onAnimationEnter:X,onAnimationAfterEnter:Y,onRender:ne==null?void 0:ne.onRender},ke)},render(){const{mergedClsPrefix:e,type:t,placement:n,addTabFixed:r,addable:i,mergedSize:a,renderNameListRef:l,onRender:s,paneWrapperClass:d,paneWrapperStyle:c,$slots:{default:f,prefix:u,suffix:p}}=this;s==null||s();const m=f?Tn(f()).filter(k=>k.type.__TAB_PANE__===!0):[],h=f?Tn(f()).filter(k=>k.type.__TAB__===!0):[],v=!h.length,w=t==="card",g=t==="segment",P=!w&&!g&&this.justifyContent;l.value=[];const H=()=>{const k=o.h("div",{style:this.tabWrapperStyle,class:[`${e}-tabs-wrapper`]},P?null:o.h("div",{class:`${e}-tabs-scroll-padding`,style:{width:`${this.tabsPadding}px`}}),v?m.map((M,b)=>(l.value.push(M.props.name),Ti(o.h(zi,Object.assign({},M.props,{internalCreatedByPane:!0,internalLeftPadded:b!==0&&(!P||P==="center"||P==="start"||P==="end")}),M.children?{default:M.children.tab}:void 0)))):h.map((M,b)=>(l.value.push(M.props.name),Ti(b!==0&&!P?Is(M):M))),!r&&i&&w?Ms(i,(v?m.length:h.length)!==0):null,P?null:o.h("div",{class:`${e}-tabs-scroll-padding`,style:{width:`${this.tabsPadding}px`}}));return o.h("div",{ref:"tabsElRef",class:`${e}-tabs-nav-scroll-content`},w&&i?o.h(jt,{onResize:this.handleTabsResize},{default:()=>k}):k,w?o.h("div",{class:`${e}-tabs-pad`}):null,w?null:o.h("div",{ref:"barElRef",class:`${e}-tabs-bar`}))},$=g?"top":n;return o.h("div",{class:[`${e}-tabs`,this.themeClass,`${e}-tabs--${t}-type`,`${e}-tabs--${a}-size`,P&&`${e}-tabs--flex`,`${e}-tabs--${$}`],style:this.cssVars},o.h("div",{class:[`${e}-tabs-nav--${t}-type`,`${e}-tabs-nav--${$}`,`${e}-tabs-nav`]},Oe(u,k=>k&&o.h("div",{class:`${e}-tabs-nav__prefix`},k)),g?o.h(jt,{onResize:this.handleSegmentResize},{default:()=>o.h("div",{class:`${e}-tabs-rail`,ref:"tabsElRef"},o.h("div",{class:`${e}-tabs-capsule`,ref:"segmentCapsuleElRef"},o.h("div",{class:`${e}-tabs-wrapper`},o.h("div",{class:`${e}-tabs-tab`}))),v?m.map((k,M)=>(l.value.push(k.props.name),o.h(zi,Object.assign({},k.props,{internalCreatedByPane:!0,internalLeftPadded:M!==0}),k.children?{default:k.children.tab}:void 0))):h.map((k,M)=>(l.value.push(k.props.name),M===0?k:Is(k))))}):o.h(jt,{onResize:this.handleNavResize},{default:()=>o.h("div",{class:`${e}-tabs-nav-scroll-wrapper`,ref:"scrollWrapperElRef"},["top","bottom"].includes($)?o.h(Oc,{ref:"xScrollInstRef",onScroll:this.handleScroll},{default:H}):o.h("div",{class:`${e}-tabs-nav-y-scroll`,onScroll:this.handleScroll,ref:"yScrollElRef"},H()))}),r&&i&&w?Ms(i,!0):null,Oe(p,k=>k&&o.h("div",{class:`${e}-tabs-nav__suffix`},k))),v&&(this.animated&&($==="top"||$==="bottom")?o.h("div",{ref:"tabsPaneWrapperRef",style:c,class:[`${e}-tabs-pane-wrapper`,d]},Es(m,this.mergedValue,this.renderedNames,this.onAnimationBeforeLeave,this.onAnimationEnter,this.onAnimationAfterEnter,this.animationDirection)):Es(m,this.mergedValue,this.renderedNames)))}});function Es(e,t,n,r,i,a,l){const s=[];return e.forEach(d=>{const{name:c,displayDirective:f,"display-directive":u}=d.props,p=h=>f===h||u===h,m=t===c;if(d.key!==void 0&&(d.key=c),m||p("show")||p("show:lazy")&&n.has(c)){n.has(c)||n.add(c);const h=!p("if");s.push(h?o.withDirectives(d,[[o.vShow,m]]):d)}}),l?o.h(o.TransitionGroup,{name:`${l}-transition`,onBeforeLeave:r,onEnter:i,onAfterEnter:a},{default:()=>s}):s}function Ms(e,t){return o.h(zi,{ref:"addTabInstRef",key:"__addable",name:"__addable",internalCreatedByPane:!0,internalAddable:!0,internalLeftPadded:t,disabled:typeof e=="object"&&e.disabled})}function Is(e){const t=o.cloneVNode(e);return t.props?t.props.internalLeftPadded=!0:t.props={internalLeftPadded:!0},t}function Ti(e){return Array.isArray(e.dynamicProps)?e.dynamicProps.includes("internalLeftPadded")||e.dynamicProps.push("internalLeftPadded"):e.dynamicProps=["internalLeftPadded"],e}async function Os(e,t,n){try{const{data:r}=await en().POST("/api/visualizations",{type:e,title:t,config:n});return r.id}catch(r){$n(r)}}async function E0(e,t,n,r){try{if(t)await As(t,n,r);else return await Os(e,n,r)}catch(i){$n(i)}}async function As(e,t,n){try{await en().PUT(`/api/visualizations/${e}`,{title:t,config:n})}catch(r){$n(r)}}function Fs(e){const t={};return e&&e.forEach(n=>{n.name?t[n.name]=n.value??null:console.debug("Warning: Detected input element with no name.")}),t}const M0={key:2,class:"border border-dotted border-green-600 rounded mt-2 p-2"},I0=o.defineComponent({__name:"InputConditional",props:o.mergeModels({datasetId:{},input:{}},{value:{},valueModifiers:{}}),emits:o.mergeModels(["update:value"],["update:value"]),setup(e,{emit:t}){const n=e,r=t;if(!n.input.test_param)throw`The conditional '${n.input.name}' is missing a test parameter.`;if(!n.input.cases||n.input.cases.length===0)throw`The conditional '${n.input.name}' is missing a cases.`;const i=o.ref(n.input.test_param),a=i.value.name;a||console.error(`Test parameter has no name: ${n.input.name}.`);const l=o.useModel(e,"value");(!l.value||!(a in l.value))&&console.error(`Test parameter of conditional not available: ${n.input.name}.`,l.value);const s=o.ref(p()),d=o.computed(()=>{const h={};if(n.input.cases&&n.input.cases.length>0)for(const v of n.input.cases)h[v.value]=Fs(v.inputs),h[v.value][a]=v.value;return h}),c=o.computed(()=>{const h={};if(n.input.cases&&n.input.cases.length>0)for(const v of n.input.cases)h[v.value]=v.inputs;return h}),f=o.computed(()=>c.value[s.value]),u=o.computed({get(){return s.value==="true"},set(h){s.value=String(h)}});function p(){return l.value&&l.value[a]}function m(h){let v={...d.value[s.value]};if(h){const w={};f.value.forEach(g=>{w[g.name]=h[g.name]}),v={...v,...h}}r("update:value",v)}return o.watch(()=>l.value,()=>{s.value=p()}),o.watch(()=>s.value,()=>{m()}),(h,v)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[i.value.type==="boolean"?(o.openBlock(),o.createBlock(o.unref(Rs),{key:0,value:u.value,"onUpdate:value":v[0]||(v[0]=w=>u.value=w)},null,8,["value"])):(o.openBlock(),o.createBlock(o.unref(rr),{key:1,value:s.value,"onUpdate:value":v[1]||(v[1]=w=>s.value=w),options:i.value.data},null,8,["value","options"])),f.value?(o.openBlock(),o.createElementBlock("div",M0,[o.createVNode(Pi,{"dataset-id":h.datasetId,inputs:f.value,values:l.value,"onUpdate:values":m},null,8,["dataset-id","inputs","values"])])):o.createCommentVNode("",!0)],64))}}),O0={key:0,class:"mb-1"},A0={key:1,class:"text-red-600 mb-1"},F0=o.createElementVNode("span",null,"Please select a dataset.",-1),D0=100,V0=o.defineComponent({__name:"InputData",props:o.mergeModels({extension:{},optional:{type:Boolean}},{value:{},valueModifiers:{}}),emits:["update:value"],setup(e){const t=e,n=o.ref([]),r=o.useModel(e,"value"),i=o.ref(!1),a=o.ref(null);async function l(d){i.value=!0;try{const c=t.extension?`q=extension-eq&qv=${t.extension}`:"",f=d?`q=name-contains&qv=${d}`:"",{data:u}=await en().GET(`/api/datasets?limit=${D0}&${c}&${f}`);if(u&&u.length>0){const p=u.map(m=>({label:m.name,value:{id:m.id,name:m.name}}));p.push({label:"...filter for more",value:null,disabled:!0}),t.optional&&p.unshift({label:"-- Clear Selection --",value:null}),n.value=p}}catch(c){console.log(c)}finally{i.value=!1}}function s(){r.value=a.value,a.value=null}return l(),(d,c)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[r.value?(o.openBlock(),o.createElementBlock("div",O0,[o.createVNode(o.unref(yt),{class:"size-3 mr-1"},{default:o.withCtx(()=>[o.createVNode(o.unref(Hi))]),_:1}),o.createElementVNode("span",null,"Selected: "+o.toDisplayString(r.value.name),1)])):d.optional?o.createCommentVNode("",!0):(o.openBlock(),o.createElementBlock("div",A0,[o.createVNode(o.unref(yt),{class:"size-3 mr-1"},{default:o.withCtx(()=>[o.createVNode(o.unref(Li))]),_:1}),F0])),o.createVNode(o.unref(rr),{value:a.value,"onUpdate:value":[c[0]||(c[0]=f=>a.value=f),s],filterable:"",placeholder:"Select a Dataset",loading:i.value,options:n.value,onSearch:l},null,8,["value","loading","options"])],64))}});function H0(e,t,n,r){const i=[];t&&i.push({label:"Column: Default",value:"auto"});const a=e.metadata_column_types;for(const l in a)(r&&["int","float"].includes(a[l])||n&&a[l]==="str"||!r&&!n)&&i.push({label:"Column: "+(parseInt(l)+1),value:l});return i}const L0=o.defineComponent({__name:"InputDataColumn",props:o.mergeModels({datasetId:{},isAuto:{type:Boolean},isText:{type:Boolean},isNumber:{type:Boolean}},{value:{},valueModifiers:{}}),emits:["update:value"],setup(e){const t=e,n=o.ref([]),r=o.useModel(e,"value");async function i(){if(t.datasetId)try{const{data:l}=await en().GET(`/api/datasets/${t.datasetId}`),s=H0(l,t.isAuto,t.isText,t.isNumber);n.value=s,a()}catch(l){console.log(l)}else console.log("Data column selector disabled, since `datasetId` is unavailable.")}function a(){n.value.length>0&&r.value===null&&(r.value=n.value[0].value)}return i(),o.watch(()=>r.value,()=>a()),(l,s)=>l.datasetId?(o.openBlock(),o.createBlock(o.unref(rr),{key:0,value:r.value,"onUpdate:value":s[0]||(s[0]=d=>r.value=d),options:n.value},null,8,["value","options"])):(o.openBlock(),o.createBlock(o.unref(Dn),{key:1,value:r.value,"onUpdate:value":s[1]||(s[1]=d=>r.value=d)},null,8,["value"]))}});function ho(e){return String(e).toLowerCase()==="true"}const N0={class:"overflow-auto select-none"},W0={class:"font-bold pb-1"},j0={key:0,class:"text-xs pb-1"},U0={key:5},Ds=.01,Pi=o.defineComponent({__name:"InputForm",props:{datasetId:{},inputs:{},values:{}},emits:["update:values"],setup(e,{emit:t}){const n=e,r=t,i=o.ref(a());function a(){const s={...n.values};return n.inputs.forEach(d=>{s[d.name]===void 0&&(s[d.name]=null)}),s}function l(){r("update:values",i.value)}return o.watch(()=>n.values,()=>{i.value=a()}),(s,d)=>(o.openBlock(),o.createElementBlock("div",N0,[(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(s.inputs,(c,f)=>(o.openBlock(),o.createElementBlock("div",{key:f,class:"pb-2"},[o.createElementVNode("div",W0,o.toDisplayString(c.label||c.name),1),c.help?(o.openBlock(),o.createElementBlock("div",j0,o.toDisplayString(c.help),1)):o.createCommentVNode("",!0),o.createElementVNode("div",null,[c.type==="boolean"?(o.openBlock(),o.createBlock(o.unref(Rs),{key:0,value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[0]||(d[0]=u=>l())]},null,8,["value","onUpdate:value"])):c.type==="color"?(o.openBlock(),o.createBlock(o.unref(Dv),{key:1,value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[1]||(d[1]=u=>l())],modes:["hex"],"show-alpha":!1},null,8,["value","onUpdate:value"])):c.type==="conditional"?(o.openBlock(),o.createBlock(I0,{key:2,value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[2]||(d[2]=u=>l())],"dataset-id":s.datasetId,input:c},null,8,["value","onUpdate:value","dataset-id","input"])):c.type==="data"?(o.openBlock(),o.createBlock(V0,{key:3,value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[3]||(d[3]=u=>l())],extension:c.extension,optional:o.unref(ho)(c.optional)},null,8,["value","onUpdate:value","extension","optional"])):c.type==="data_column"?(o.openBlock(),o.createBlock(L0,{key:4,value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[4]||(d[4]=u=>l())],"dataset-id":s.datasetId,"is-auto":o.unref(ho)(c.is_auto),"is-text":o.unref(ho)(c.is_text),"is-number":o.unref(ho)(c.is_number)},null,8,["value","onUpdate:value","dataset-id","is-auto","is-text","is-number"])):c.type==="float"?(o.openBlock(),o.createElementBlock("div",U0,[c.min!==void 0&&c.max!==void 0?(o.openBlock(),o.createBlock(o.unref(k0),{key:0,class:"mb-2",value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[5]||(d[5]=u=>l())],min:Number(c.min),max:Number(c.max),step:Ds},null,8,["value","onUpdate:value","min","max"])):o.createCommentVNode("",!0),o.createVNode(o.unref(w0),{value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[6]||(d[6]=u=>l())],size:"small",min:Number(c.min),max:Number(c.max),step:Ds},null,8,["value","onUpdate:value","min","max"])])):c.type==="select"?(o.openBlock(),o.createBlock(o.unref(rr),{key:6,value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[7]||(d[7]=u=>l())],options:c.data},null,8,["value","onUpdate:value","options"])):c.type==="textarea"?(o.openBlock(),o.createBlock(o.unref(Dn),{key:7,value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[8]||(d[8]=u=>l())],rows:Number(c.rows),type:"textarea"},null,8,["value","onUpdate:value","rows"])):(o.openBlock(),o.createBlock(o.unref(Dn),{key:8,value:i.value[c.name],"onUpdate:value":[u=>i.value[c.name]=u,d[9]||(d[9]=u=>l())]},null,8,["value","onUpdate:value"]))])]))),128))]))}}),G0=o.createElementVNode("span",{class:"mx-1"},"Add New Track",-1),K0={class:"border border-dotted border-green-600 rounded p-2"},q0={class:"flex text-green-600 my-1"},X0={class:"mx-1"},Y0=o.defineComponent({__name:"InputRepeats",props:{datasetId:{},inputs:{},valuesArray:{}},emits:["update:values-array"],setup(e,{emit:t}){const n=e,r=t,i=o.computed(()=>Fs(n.inputs));function a(){const d=[...n.valuesArray];d.unshift(i.value),r("update:values-array",d)}function l(d){const c=[...n.valuesArray];c.splice(d,1),r("update:values-array",c)}function s(d,c){const f=[...n.valuesArray];f[d]={...c},r("update:values-array",f)}return(d,c)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[o.createVNode(o.unref(It),{size:"tiny",type:"primary",class:"mb-2",onClick:a},{default:o.withCtx(()=>[o.createVNode(o.unref(yt),null,{default:o.withCtx(()=>[o.createVNode(o.unref(Ks))]),_:1}),G0]),_:1}),(o.openBlock(!0),o.createElementBlock(o.Fragment,null,o.renderList(d.valuesArray,(f,u)=>(o.openBlock(),o.createElementBlock("div",{key:u,class:"my-2"},[o.createElementVNode("div",K0,[o.createVNode(Pi,{"dataset-id":d.datasetId,inputs:d.inputs,values:f,"onUpdate:values":p=>s(u,p)},null,8,["dataset-id","inputs","values","onUpdate:values"]),o.createElementVNode("div",q0,[o.createVNode(o.unref(It),{class:"text-green-600 w-full",size:"tiny",round:"",disabled:d.valuesArray.length<=1,onClick:p=>l(u)},{default:o.withCtx(()=>[o.createVNode(o.unref(yt),null,{default:o.withCtx(()=>[o.createVNode(o.unref(Xs))]),_:1}),o.createElementVNode("span",X0,"Remove Track "+o.toDisplayString(d.valuesArray.length-u),1)]),_:2},1032,["disabled","onClick"])])])]))),128))],64))}}),Z0=2e3,J0=o.defineComponent({__name:"AlertNotify",props:{message:{},messageType:{default:"info"}},emits:["timeout"],setup(e,{emit:t}){const n=e,r=t;let i=null;return o.watch(()=>n.message,()=>{i&&clearTimeout(i),i=setTimeout(()=>r("timeout"),Z0)}),(a,l)=>a.message?(o.openBlock(),o.createBlock(o.unref(vi),{key:0,type:a.messageType,class:"m-4"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(a.message),1)]),_:1},8,["type"])):o.createCommentVNode("",!0)}}),Q0={class:"text-xs"},ex=o.createElementVNode("span",{class:"text-xs"},"Galaxy is not accessible!",-1),tx=o.defineComponent({__name:"ApiStatus",setup(e){const t=o.ref("...");async function n(){try{const{data:r}=await en().GET("/api/version");t.value=r.version_major}catch{console.log("Unable to connect to Galaxy. Verify Galaxy is running and refer to docs."),t.value=""}}return n(),(r,i)=>t.value?(o.openBlock(),o.createBlock(o.unref(Cs),{key:0,class:"mx-1",trigger:"hover"},{trigger:o.withCtx(()=>[o.createVNode(o.unref(yt),{class:"mx-1"},{default:o.withCtx(()=>[o.createVNode(o.unref(Hi),{class:"text-green-600"})]),_:1})]),default:o.withCtx(()=>[o.createElementVNode("span",Q0,"Connected to Galaxy Version "+o.toDisplayString(t.value)+".",1)]),_:1})):(o.openBlock(),o.createBlock(o.unref(Cs),{key:1,class:"mx-1",trigger:"hover"},{trigger:o.withCtx(()=>[o.createVNode(o.unref(yt),{class:"mx-1"},{default:o.withCtx(()=>[o.createVNode(o.unref(Li),{class:"text-red-600"})]),_:1})]),default:o.withCtx(()=>[ex]),_:1}))}}),nx={class:"overflow-auto select-none bg-white z-10"},ox={class:"flex p-2"},rx={class:"flex-1 font-thin text-lg p-1 p-2"},ix=o.createElementVNode("span",null,"Charts",-1),ax={key:0},lx={class:"m-4 mt-0 p-2 bg-sky-50 text-sky-900 rounded"},sx={class:"md:flex"},dx={class:"flex justify-center center-items"},cx={class:"m-2"},ux=["src"],fx={key:1,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 100 100",class:"size-14"},hx=[o.createElementVNode("circle",{cx:"50",cy:"50",r:"45",stroke:"#E30A17","stroke-width":"5"},null,-1),o.createElementVNode("path",{d:"M 50,5 A 45,45 0 0,1 95,50 L 50,50 Z",fill:"#E30A17"},null,-1)],px={class:"overflow-hidden break-words p-1"},bx={class:"font-bold"},gx=["innerHTML"],mx={class:"px-4 pb-2"},vx=o.createElementVNode("div",{class:"font-bold"},"Title",-1),xx=o.createElementVNode("div",{class:"text-xs py-1"},"Specify a visualization title.",-1),yx=o.createElementVNode("span",{class:"mx-1"},"Tracks",-1),wx=o.createElementVNode("span",{class:"mx-1"},"Settings",-1),Cx=o.defineComponent({__name:"SidePanel",props:{datasetId:{},description:{},logoUrl:{},html:{},name:{},settingInputs:{},settingValues:{},trackInputs:{},trackValues:{},visualizationId:{},visualizationTitle:{}},emits:["update:tracks","update:settings","update:visualization-id","update:visualization-title","toggle"],setup(e,{emit:t}){const n=e,r=t,i=o.ref(""),a=o.ref("info"),l=o.computed(()=>n.settingInputs.length===0||n.trackInputs.length===0);async function s(){try{if(n.visualizationId)await As(n.visualizationId,n.visualizationTitle,{dataset_id:n.datasetId,settings:n.settingValues,tracks:n.trackValues}),i.value="Successfully saved.",a.value="success";else{const u=await Os(n.name,n.visualizationTitle,{dataset_id:n.datasetId,settings:n.settingValues,tracks:n.trackValues});u?(i.value="Successfully created.",a.value="success",r("update:visualization-id",u)):(i.value="Something went wrong.",a.value="error")}}catch(u){i.value=Oi(u),a.value="error"}}function d(u){r("update:settings",u)}function c(u){r("update:tracks",u)}function f(u){r("update:visualization-title",u)}return(u,p)=>(o.openBlock(),o.createElementBlock("div",nx,[o.createElementVNode("div",ox,[o.createElementVNode("div",rx,[ix,o.createVNode(tx)]),u.datasetId?(o.openBlock(),o.createElementBlock("div",ax,[o.createVNode(o.unref(It),{strong:"",secondary:"",circle:"",class:"bg-sky-100 m-1",onClick:s},{icon:o.withCtx(()=>[o.createVNode(o.unref(yt),null,{default:o.withCtx(()=>[o.createVNode(o.unref(Gs))]),_:1})]),_:1}),o.createVNode(o.unref(It),{strong:"",secondary:"",circle:"",class:"bg-sky-100 m-1",onClick:p[0]||(p[0]=m=>r("toggle"))},{icon:o.withCtx(()=>[o.createVNode(o.unref(yt),null,{default:o.withCtx(()=>[o.createVNode(o.unref(Us))]),_:1})]),_:1})])):o.createCommentVNode("",!0)]),o.createVNode(J0,{message:i.value,"message-type":a.value,onTimeout:p[1]||(p[1]=m=>i.value=""),class:"m-4"},null,8,["message","message-type"]),o.createElementVNode("div",lx,[o.createElementVNode("div",sx,[o.createElementVNode("div",dx,[o.createElementVNode("div",cx,[n.logoUrl?(o.openBlock(),o.createElementBlock("img",{key:0,src:n.logoUrl,class:"min-w-14 max-w-14 object-contain"},null,8,ux)):(o.openBlock(),o.createElementBlock("svg",fx,hx))])]),o.createElementVNode("div",px,[o.createElementVNode("span",bx,o.toDisplayString(u.html),1),o.createElementVNode("div",{class:"text-xs",innerHTML:u.description},null,8,gx)])])]),o.createElementVNode("div",mx,[vx,xx,o.createVNode(o.unref(Dn),{value:u.visualizationTitle,onInput:f},null,8,["value"])]),o.createVNode(o.unref(_0),{type:"line",animated:"",class:"px-4","tab-class":l.value?"!hidden":""},{default:o.withCtx(()=>[u.trackInputs.length>0?(o.openBlock(),o.createBlock(o.unref(_s),{key:0,name:"tracks"},{tab:o.withCtx(()=>[o.createVNode(o.unref(yt),null,{default:o.withCtx(()=>[o.createVNode(o.unref(qs))]),_:1}),yx]),default:o.withCtx(()=>[o.createVNode(Y0,{"dataset-id":u.datasetId,inputs:u.trackInputs,"values-array":u.trackValues,"onUpdate:valuesArray":c},null,8,["dataset-id","inputs","values-array"])]),_:1})):o.createCommentVNode("",!0),u.settingInputs.length>0?(o.openBlock(),o.createBlock(o.unref(_s),{key:1,name:"settings"},{tab:o.withCtx(()=>[o.createVNode(o.unref(yt),null,{default:o.withCtx(()=>[o.createVNode(o.unref(Ns))]),_:1}),wx]),default:o.withCtx(()=>[o.createVNode(Pi,{"dataset-id":u.datasetId,inputs:u.settingInputs,values:u.settingValues,"onUpdate:values":d},null,8,["dataset-id","inputs","values"])]),_:1})):o.createCommentVNode("",!0)]),_:1},8,["tab-class"])]))}});async function Sx(e,t={}){const n=Ri(e.settings,t.settings),r=e.specs,i=zx(e.tracks,t.tracks);return{plugin:e,settings:n,specs:r,tracks:i}}function $x(e,t){let n=t??e.value;return e.type==="float"?n=Number(n):e.type==="boolean"&&(n=ho(n)),n}function kx(e,t={}){var i,a,l;const n=t,r=(i=e.test_param)==null?void 0:i.name;if(!r)console.error(`Test parameter has no name: ${e.name}.`);else{const s=n[r]??((a=e.test_param)==null?void 0:a.value);for(const d of e.cases||[])d.value===s&&(n[r]=s,(l=d.inputs)!=null&&l.length&&Ri(d.inputs,n))}return n}function Ri(e,t){const n=t||{};return e==null||e.forEach(r=>{r.type==="conditional"?n[r.name]=kx(r,n[r.name]):n[r.name]=$x(r,n[r.name])}),n}function zx(e,t){const n=t||[];return e&&(n.length===0&&n.push({}),n.forEach((r,i)=>{n[i]=Ri(e,r)})),n}function Tx(e,t="app"){if(e===void 0){const s=document.getElementById(t);if(!s)throw new Error(`Container element '${t}' not found.`);e=JSON.parse((s==null?void 0:s.getAttribute("data-incoming"))||"{}")}const n=(e==null?void 0:e.root)??"/",r=(e==null?void 0:e.visualization_config)??{},i=(e==null?void 0:e.visualization_id)??null,a=(e==null?void 0:e.visualization_plugin)??{},l=(e==null?void 0:e.visualization_title)??"Unnamed Visualization";return{root:n,visualizationConfig:r,visualizationId:i,visualizationPlugin:a,visualizationTitle:l}}const Px={key:2,class:"m-2"},Rx=o.createElementVNode("span",{class:"text-xs"},"Please wait...",-1),Bx={key:1},_x=o.defineComponent({__name:"GalaxyCharts",props:{container:{},credentials:{},incoming:{}},setup(e){const t=e,{root:n,visualizationConfig:r,visualizationId:i,visualizationPlugin:a,visualizationTitle:l}=Tx(t.incoming,t.container),s=o.ref(!1),d=o.ref(""),c=o.ref(""),f=o.ref(""),u=o.ref(!0),p=o.ref(""),m=o.ref(""),h=o.ref([]),v=o.ref({}),w=o.ref({}),g=o.ref([]),P=o.ref([]),H=o.ref(i),$=o.ref(l),k=Di();k.setCredentials(t.credentials||"include"),k.setRoot(n||"/"),Sx(a,r).then(({plugin:Y,settings:de,specs:ie,tracks:ue})=>{d.value=Y.description||"",f.value=Y.html||"",u.value=!1,p.value=Y.logo||"",m.value=Y.name||"",h.value=Y.settings||[],v.value=de,w.value=ie||{},g.value=Y.tracks||[],P.value=ue});const M=o.computed(()=>r.dataset_id||""),b=o.computed(()=>r.dataset_url?(console.debug(`GalaxyCharts: Evaluating dataset url: ${r.dataset_url}.`),r.dataset_url):M.value?(console.debug(`GalaxyCharts: Built dataset url from dataset id: ${M.value}.`),Hs(n,M.value)):null),S=o.computed(()=>p.value&&`${n}${p.value}`),E=o.computed(()=>h.value.length===0&&g.value.length===0);async function D(){s.value=!s.value,await o.nextTick(),window?window.dispatchEvent(new Event("resize")):console.warn("window unavailable.")}function O(){try{window.postMessage({container:t.container,content:JSON.parse(JSON.stringify(V())),from:"galaxy-visualization"},"*")}catch(Y){c.value=`Failed to postMessage: ${Y}`}}function V(){return{dataset_id:M.value,settings:v.value,tracks:P.value}}function j(Y){v.value={...Y},O()}function Q(Y){P.value=[...Y],O()}function N(Y){H.value=Y}function Z(Y){$.value=Y}async function X(Y){j({...v.value,...Y});try{const de=await E0(m.value,i,l,V());de&&N(de)}catch(de){c.value=`Failed to save: ${de}.`}}return(Y,de)=>(o.openBlock(),o.createElementBlock(o.Fragment,null,[c.value?(o.openBlock(),o.createBlock(o.unref(vi),{key:0,type:"error",class:"m-2"},{default:o.withCtx(()=>[o.createTextVNode(o.toDisplayString(c.value),1)]),_:1})):o.createCommentVNode("",!0),b.value?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(o.unref(vi),{key:1,type:"info",class:"m-2"},{default:o.withCtx(()=>[o.createTextVNode(" Only displaying available visualization inputs. Rendering requires `dataset_id` or `dataset_url`. ")]),_:1})),u.value?(o.openBlock(),o.createElementBlock("div",Px,[o.createElementVNode("span",null,[o.createVNode(o.unref(Ws),{class:"animate-spin size-4 inline mx-1"})]),Rx])):(o.openBlock(),o.createElementBlock("div",{key:3,class:o.normalizeClass(["grid h-screen",{"grid-cols-[70%_30%]":!s.value&&b.value&&!E.value}])},[b.value?o.renderSlot(Y.$slots,"default",{key:0,datasetId:M.value,datasetUrl:b.value,root:o.unref(n),settings:v.value,specs:w.value,tracks:P.value,save:X}):o.createCommentVNode("",!0),s.value&&b.value&&!E.value?(o.openBlock(),o.createElementBlock("div",Bx,[o.createVNode(o.unref(g0),{strong:"",secondary:"",circle:"",class:"bg-sky-100 m-2",top:0,right:0,onClick:D},{default:o.withCtx(()=>[o.createVNode(o.unref(yt),null,{default:o.withCtx(()=>[o.createVNode(o.unref(js))]),_:1})]),_:1})])):E.value?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(Cx,{key:2,"dataset-id":M.value,description:d.value,html:f.value,"logo-url":S.value,name:m.value,"setting-inputs":h.value,"setting-values":v.value,"track-inputs":g.value,"track-values":P.value,"visualization-id":H.value,"visualization-title":$.value,"onUpdate:settings":j,"onUpdate:tracks":Q,"onUpdate:visualizationId":N,"onUpdate:visualizationTitle":Z,onToggle:D},null,8,["dataset-id","description","html","logo-url","name","setting-inputs","setting-values","track-inputs","track-values","visualization-id","visualization-title"]))],2))],64))}});We.GalaxyApi=en,We.GalaxyCharts=_x,We.useColumnsStore=Ls,Object.defineProperty(We,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "charts"
7
7
  ],
8
8
  "license": "MIT",
9
- "version": "0.0.46",
9
+ "version": "0.0.47",
10
10
  "type": "module",
11
11
  "main": "./dist/galaxy-charts.umd.cjs",
12
12
  "module": "./dist/galaxy-charts.js",