1import{a as Q,P as Z,u as ee,a2 as ae,r as d,R as m,G as te,S as se,c as y,h as o,j as n,g as s,$ as oe,k as l,X as le,az as ne,o as _,O as g,T as N,b as c,al as re,p as f,F as de,l as ie,e as j,t as b,n as O,f as ce,a1 as ue,q as V,aD as pe,N as me}from"./index-J9uV3pCC.js";import{_ as fe}from"./SearchBar.vue_vue_type_script_setup_true_lang-MLXZk4-S.js";import{_ as ve}from"./InplaceInputText.vue_vue_type_script_setup_true_lang-P-CTRt8r.js";import{a as we,f as he}from"./formatters-Drz99XJm.js";import{u as ye}from"./project-artifacts-8diak1JY.js";import{s as _e}from"./checkbox.esm-xT0Xq3TC.js";import{s as i}from"./index.esm-DmqqLByx.js";import{s as T}from"./datatable.esm-D7P27Int.js";import"./inputgroup.esm-1bQLg7mg.js";import"./dropdown.esm-C0mWJ69B.js";import"./virtualscroller.esm-C7mgkUR9.js";import"./radiobutton.esm-CCkUqPFy.js";const ge="/v3/assets/logo_datasets-BoD3vWAx.png",be={key:0,class:"p-6"},De=l("div",{class:"text-lg"},"Are you sure you want to delete this dataset?",-1),xe={class:"flex flex-wrap gap-8"},ke={class:"self-center"},Ce=l("label",{for:"show-debug-datasets",class:"ml-1"}," Show debug datasets ",-1),Se=l("div",{class:"flex-1"},null,-1),Re={href:"https://docs.giskard.ai/en/latest/giskard_hub/upload/index.html#upload-your-object",target:"_blank",rel:"noopener"},Ne={key:1},je=["onClick"],Ve={key:1,class:"flex flex-col gap-4 items-center mt-6"},Ie=l("div",{class:"text-2xl mb-4"},[l("span",null,"There are no datasets in this project yet."),l("br"),l("span",null,"Click the button below to learn how to upload a dataset.")],-1),Ae={href:"https://docs.giskard.ai/en/latest/giskard_hub/upload/index.html#upload-your-object",target:"_blank",rel:"noopener"},I="_GISKARD_INDEX_",Ge=Q({__name:"DatasetsView",props:{projectKey:{}},setup(E){const B=E,D=le(),F=Z(),q=ee(),u=ye(),z=ae(),x=d(!0),M=d(!1),k=d(!1),C=d(!1),A=d(null),p=d([]),S=d([]),v=d({}),w=d({name:{value:null,matchMode:ne.CONTAINS}}),h=m(()=>q.project(B.projectKey)),$=m(()=>u.datasets),L=m(()=>$.value.filter(a=>x.value||!a.name.startsWith("Debug: "))),R=m(()=>F.userProfile),P=m(()=>{var a,t;return G.value||((t=(a=R.value)==null?void 0:a.roles)==null?void 0:t.includes(ue.ADMIN))}),G=m(()=>{var a,t;return h.value&&R.value?((a=h.value.owner)==null?void 0:a.id)==((t=R.value)==null?void 0:t.id):!1});async function K({data:a}){v.value={[a.id]:!0},await U(a.id)}async function X({id:a,name:t}){V.track("Download dataset file",{id:a}),_.download.downloadDataset({id:a}).then(e=>pe(e,`giskard_dataset_${t||a}.zip`))}async function W(a){z.require({group:"delete-dataset",header:"Delete dataset",acceptClass:"bg-red-500 hover:bg-red-600 border-red-500 hover:border-red-600 focus:ring-red-300 confirm-delete-button",message:`Are you sure you want to delete dataset '${a.name}'?`,accept:async()=>{V.track("Delete dataset",{data:a.id});try{const t=await _.datasets.deleteDataset({datasetId:a.id});g().addNotification({content:t.message})}catch(t){g().addNotification({content:t.response.statusText,color:N.ERROR})}finally{u.loadDatasets()}}})}async function H({id:a,name:t}){V.track("Update dataset name",{id:a});const e=await _.datasets.renameDataset({datasetId:a,name:t});u.updateDataset(e)}async function U(a){if(k.value=!0,A.value!=a){A.value=a;try{const t=await _.datasets.getRows({datasetId:a,offset:0,size:10,rowFilterDTO:{},shuffle:!1,sample:!0}),e=Object.keys(t.content[0]);p.value=e.filter(r=>r!=I).map(r=>({text:r.trim(),value:r,sortable:!1})),e.includes(I)&&(p.value=[{text:"#",value:I,sortable:!1}].concat(p.value)),S.value=t.content}catch(t){g().addNotification({content:t.response.statusText,color:N.ERROR}),p.value=[],S.value=[]}}k.value=!1}function Y(a){me(a),g().addNotification({content:"Dataset ID copied to clipboard",color:N.SUCCESS})}async function J(){C.value=!0,await u.loadDatasets(),C.value=!1}return te(()=>h.value,async()=>{await u.setProjectId(h.value.id,!1)}),se(async()=>{D.query.dataset&&(v.value={[D.query.dataset]:!0},await U(D.query.dataset))}),(a,t)=>$.value.length?(c(),y("div",be,[o(s(re),{group:"delete-dataset"},{message:n(()=>[De]),_:1}),o(s(T),{filters:w.value,"onUpdate:filters":t[2]||(t[2]=e=>w.value=e),value:L.value,loading:M.value,paginator:!0,rows:10,rowClass:()=>["dataset-item"],expandedRows:v.value,"onUpdate:expandedRows":t[3]||(t[3]=e=>v.value=e),onRowExpand:K,"data-key":"id","data-qa":"dataset-list"},{header:n(()=>[l("div",xe,[o(fe,{class:"font-normal",modelValue:w.value.name.value,"onUpdate:modelValue":t[0]||(t[0]=e=>w.value.name.value=e),placeholder:"Search datasets"},null,8,["modelValue"]),l("div",ke,[o(s(_e),{modelValue:x.value,"onUpdate:modelValue":t[1]||(t[1]=e=>x.value=e),inputId:"show-debug-datasets",binary:!0},null,8,["modelValue"]),Ce]),Se,l("a",Re,[o(s(f),{icon:"mdi mdi-open-in-new",label:"Add a dataset",severity:"secondary"})]),o(s(f),{type:"button",icon:"pi pi-refresh",text:"",onClick:s(u).loadDatasets},null,8,["onClick"])])]),expansion:n(()=>[o(s(T),{stripedRows:"",showGridlines:"",value:S.value,rows:10,header:p.value,rowClass:()=>["dataset-item-preview-row"],loading:k.value,"data-qa":"dataset-item-preview"},{default:n(()=>[(c(!0),y(de,null,ie(p.value,e=>(c(),j(s(i),{field:e.value,header:e.text,key:e.value},null,8,["field","header"]))),128))]),_:1},8,["value","header","loading"])]),default:n(()=>[o(s(i),{expander:"",class:"w-[5%]",bodyClass:"dataset-item-expander"}),o(s(i),{field:"name",header:"Name",class:"w-[25%]"},{body:n(({data:e})=>
1[P.value?(c(),j(ve,{key:0,modelValue:e.name,"onUpdate:modelValue":r=>e.name=r,onSave:r=>H(e)},null,8,["modelValue","onUpdate:modelValue","onSave"])):(c(),y("span",Ne,b(e.name),1))]),_:1}),o(s(i),{field:"originalSizeBytes",header:"Size",class:"w-[10%]"},{body:n(({data:e})=>[O(b(s(we)(e.originalSizeBytes)),1)]),_:1}),o(s(i),{field:"createdDate",header:"Uploaded on",class:"w-[10%]"},{body:n(({data:e})=>[O(b(s(he)(e.createdDate)),1)]),_:1}),o(s(i),{field:"target",header:"Target",class:"w-[20%]"}),o(s(i),{field:"id",header:"ID",class:"w-[15%]"},{body:n(({data:e})=>[l("span",{onClick:r=>Y(e.id),class:"cursor-pointer"},b(e.id),9,je)]),_:1}),o(s(i),{field:"actions",header:"Actions",class:"w-[15%]"},{body:n(({data:e})=>[o(s(f),{icon:"pi pi-download",class:"mr-2",severity:"secondary",text:"",rounded:"","aria-label":"Download",onClick:r=>X(e)},null,8,["onClick"]),P.value?(c(),j(s(f),{key:0,icon:"pi pi-trash",severity:"danger",text:"",rounded:"","aria-label":"Delete",class:"mr-2",onClick:r=>W(e)},null,8,["onClick"])):ce("",!0)]),_:1})]),_:1},8,["filters","value","loading","expandedRows"])])):(c(),y("div",Ve,[o(oe,{image:s(ge),"image-class":"max-w-[50%] "},{text:n(()=>[Ie]),_:1},8,["image"]),l("div",null,[l("a",Ae,[o(s(f),{icon:"mdi mdi-open-in-new",label:"Add a new dataset",severity:"secondary"})]),o(s(f),{class:"ml-4",text:"",label:"Refresh",icon:"pi pi-refresh",severity:"secondary","icon-pos":"right",onClick:J,loading:C.value},null,8,["loading"])])]))}});export{Ge as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.