PageSourceSearch

https://app.basepairtech.com/static/react-app/js/index.DWMmCG8X.chunk.js

js basepairtech.com collected 2026-09-25 14:36:26 UTC 12,264 bytes, 1 lines download raw bytes

1import{r as I,R as n,P as D,w as k,c as C,W as y,S as x,F as R,s as d,a as _,A as m,T as w}from"./main.DhFVGIMO.js";import{s as M}from"./index.io0RWo6-.chunk.js";import{E as T,t as N}from"./index.IJ8gu99V.chunk.js";import{L}from"./index.BY3fSO3l.chunk.js";import{M as G}from"./Delete.BRvZpA1P.chunk.js";import{M as K}from"./Invite.DvOr8csx.chunk.js";import{M as W}from"./Move.hLMAW6lg.chunk.js";import{U as B}from"./UnifiedSharing.DbKINYtV.chunk.js";/* empty css                    */import"./index.B1wvjpSa.chunk.js";import"./index.D3Bk_aT5.chunk.js";import"./index.1X4WYLfO.chunk.js";import"./AppButton.DRCZTUTZ.chunk.js";import"./index.FIUT9Q0V.chunk.js";/* empty css                    */import"./index.DR4zYwkq.chunk.js";import"./index.D36cniQW.chunk.js";const $=E=>{const s=I.useCallback(e=>{const{onPipelineChange:a}=E;a&&typeof a=="function"&&a(e)},[E]);return n.createElement("div",{className:"select-pipeline"},n.createElement("h3",null,"Pipeline:"),n.createElement(D,{mode:"multiple",onChange:s}))};class U extends L{constructor(s){super(s);const e={gblActiveProjectId:null,...C.getState().config.meta};this.endpoint="Analysis",this.tableId=`${this.endpoint}-table-id`,this.state={...this.state,filters:{...this.getSession("filters"),projects:[e.gblActiveProjectId]},isGlobalOrPublicProject:!0,loading:!0,modals:{},pagination:{current:1,pageSize:20},selectedProjectId:Number(e.gblActiveProjectId),sorter:this.getSession("sorter")||{field:"last_updated",order:"descend"},tableSelectedRowsDetails:{},tableSelectedRowsKeys:[]},this._handleDelete=this._handleDelete.bind(this),this._handleInvite=this._handleInvite.bind(this),this._handleMoveAnalyses=this._handleMoveAnalyses.bind(this),this._handlePipelineChange=this._handlePipelineChange.bind(this),this._handleProjectChange=this._handleProjectChange.bind(this),this._handleShare=this._handleShare.bind(this)}async componentDidMount(){const e=new URLSearchParams(window.location.search).get("status");await this.fetchProjectDetails(),e?this.setState({filters:{...this.state.filters,status:[e]}},async()=>await this._loadPage({...this.state})):await this._loadPage({...this.state}),document.title="Analyses"}async componentDidUpdate(s,e){e.selectedProjectId!==this.state.selectedProjectId&&await this.fetchProjectDetails()}async fetchProjectDetails(){const{selectedProjectId:s}=this.state,e=await y.Project.getDetail(s),a=["global","public"].includes(e==null?void 0:e.visibility);this.setState({isGlobalOrPublicProject:a})}render(){const{error:s,isGlobalOrPublicProject:e,loading:a,objects:t,pagination:l,selectedProjectId:i,tableSelectedRowsDetails:o}=this.state,c={id:null,...C.getState().config.user},p=()=>{var j,f;const u=Object.values(o),h=u.length;if(h===0)return!0;const r=u[0],A=u.filter(b=>{var v,S,O;return["edit","admin"].includes((O=(S=(v=b==null?void 0:b.info)==null?void 0:v.shared_with)==null?void 0:S[c.id])==null?void 0:O.permission)}).length===h;return(r==null?void 0:r.is_team_member)||A||((j=r==null?void 0:r.project_permissions)==null?void 0:j.edit)||((f=r==null?void 0:r.project_permissions)==null?void 0:f.admin)},g=()=>{const u=Object.values(o),h=u.length;if(h===0)return!0;const r=u[0],A=u.filter(f=>f.owner===c.id).length===h,j=u.filter(f=>{var b,v,S;return((S=(v=(b=f==null?void 0:f.info)==null?void 0:b.shared_with)==null?void 0:v[c.id])==null?void 0:S.permission)==="admin"}).length===h;return(r==null?void 0:r.is_team_admin)||A||j||(r==null?void 0:r.project_permissions.admin)},P=()=>n.createElement(_.Group,{value:"new"},n.createElement(_.Button,{value:"new",onClick:()=>this.props.router.navigate("/analyses/new")},n.createElement(m,{type:"plus"})," New"),n.createElement(_.Button,{disabled:!g(),value:"share",onClick:()=>this._modal({names:["share"],show:!0})},n.createElement(m,{type:"share-alt"})," Share"),n.createElement(_.Button,{disabled:!g(),value:"move",onClick:()=>this._modal({names:["move"],show:!0})},n.createElement(m,{type:"swap"})," Move"),n.createElement(_.Button,{disabled:!p(),value:"invite",onClick:()=>this._modal({names:["invite"],show:!0})},n.createElement(m,{type:"sound"})," Invite"),n.createElement(_.Button,{disabled:!g(),value:"delete",onClick:()=>this._modal({names:["delete"],show:!0})},n.createElement(m,{type:"delete"})," Delete"));return s?n.createElement(T,{message:s}):n.createElement("div",{className:"analysis"},n.createElement("h2",null,"Analyses"),n.createElement("div",{className:"actions-buttons"},n.createElement("div",{className:"filters"},n.createElement(x,{showLabel:!0,value:i,onProjectChange:this._handleProjectChange}),n.createElement($,{onPipelineChange:this._handlePipelineChange})),M(e,c,P)),n.createElement(R,{columns:this._tableColumns(),dataSource:t,locale:{emptyText:N("No anal
1yses yet")},loading:a,pagination:l,rowKey:"id",scroll:{x:900},size:"small",tableLayout:"fixed",onChange:this._handleTableChange,rowSelection:this._tableRowSelection()}),this._getModal())}_getModal(){var o;const{modals:s,tableSelectedRowsDetails:e}=this.state,a=Object.keys(s).find(c=>s[c].show),t=Object.values(e),l=t.length,i=l===1?t[0]:null;return a&&{delete:n.createElement(G,{name:`analys${l<=1?"is":"es"}`,objects:e,onCancel:()=>this._modal({names:["delete"],show:!1}),onOk:this._handleDelete}),invite:n.createElement(K,{name:`analys${l<=1?"is":"es"}`,objects:e,onCancel:()=>this._modal({names:["invite"],show:!1}),onOk:this._handleInvite}),move:n.createElement(W,{name:`analys${l<=1?"is":"es"}`,objects:e,onCancel:()=>this._modal({names:["move"],show:!1}),onOk:this._handleMoveAnalyses}),share:n.createElement(B,{emptySelection:l===0,name:l<=1?"analysis":"analyses",objectId:i==null?void 0:i.id,objectTitle:i?i.name:l>0?`${l} selected`:void 0,sharedWith:((o=i==null?void 0:i.info)==null?void 0:o.shared_with)||{},showPeople:!!i,helpAdmin:"Can move this analysis to other projects, share it with others, and delete it.",helpEdit:"Can edit analysis info.",helpSharing:"Sharing gives access to this analysis at the permission you choose.",helpView:"Can view this analysis and download associated files.",onCancel:()=>this._modal({names:["share"],show:!1}),onOk:this._handleShare})}[a]||null}async _handleDelete(){const{tableSelectedRowsDetails:s}=this.state,e=Object.keys(s);if(e.length===0)return this._modal({names:["delete"],show:!1});const a=e.reduce((i,o)=>(i.push(y.Analysis.delete(o)),i),[]),l=(await Promise.all(a)).find(i=>i.error);l&&l.error?d.error(l.msg):(d.success("Analyses deleted successfully."),this._modal({names:["delete"],show:!1}),this.setState({tableSelectedRowsDetails:{},tableSelectedRowsKeys:[]},async()=>{await this._loadPage({...this.state})}))}async _handleInvite(s){const{tableSelectedRowsDetails:e}=this.state,a=Object.keys(e);if(a.length===0)return this._modal({names:["invite"],show:!1});if(s.length===0)return d.error("Please add at least one valid user email.");const t=await y.Share.invite({emails:s,ids:a,type:"analyses"});t.error?d.error(t.msg):(d.success("Invitations sent successfully."),this._modal({names:["invite"],show:!1}))}async _handleMoveAnalyses({newProject:s,oldProject:e}){const{tableSelectedRowsDetails:a}=this.state,t=Object.keys(a);if(t.length===0)return this._modal({names:["move"],show:!1});const l=t.reduce((c,p)=>(c.push(y.Analysis.save({id:p,moveAnalyses:!0,params:{new_project_id:s.id,old_project_id:e.id}})),c),[]),o=(await Promise.all(l)).find(c=>c.error);o&&o.error?d.error(o.msg):(d.success("Analyses moved successfully."),this._modal({names:["move"],show:!1}),this.setState({tableSelectedRowsDetails:{},tableSelectedRowsKeys:[]},async()=>{await this._loadPage({...this.state})}))}_handlePipelineChange(s){const{filters:e}=this.state;clearTimeout(this.updateProjectTO),this.updateProjectTO=setTimeout(()=>{this.setState({filters:{...e,workflow:s}},async()=>{await this._loadPage({...this.state})})},500)}_handleProjectChange(s){const{filters:e,selectedProjectId:a}=this.state;s.id!==a&&(clearTimeout(this.updateProjectTO),this.updateProjectTO=setTimeout(()=>{this.setState({filters:{...e,projects:[s.id]},selectedProjectId:s.id},async()=>{await this._loadPage({...this.state})})},500))}_handleSaveAnalysis(s){s.validateFields(async(e,a)=>{if(!e){const t=await y.Analysis.save(Object.keys(a).reduce((l,i)=>(a[i]&&(l[i]=a[i]),l),{}));t.error?d.error(t.msg):(d.success("Analysis saved successfully."),await this._loadPage({...this.state}))}})}_handleTableChange(s,e,a){e&&Object.prototype.hasOwnProperty.call(e,"icon")&&(e.status=e.icon);const t={...this.props.filters,...this.state.filters,...e};Object.keys(t).forEach(o=>{const c=t[o];(c==null||Array.isArray(c)&&c.length===0)&&delete t[o]});const l={...this.state.pagination,...s},i={...this.state.sorter,...a};this.setSession({filters:{...t},sorter:{field:i.field,order:i.order}}),this._loadPage({filters:t,pagination:l,sorter:i})}async _handleShare({parsedEmails:s,permissionLevel:e,sharedWith:a,hasInvite:t,hasAccessChanges:l}){const{tableSelectedRowsDetails:i}=this.state,o=Object.keys(i);if(o.length===0)return this._modal({names:["share"],show:!1});if(!t&&!l)return d.warning("Add people to invite or change an existing permission."),Promise.reject();if(l&&o.length===1){const p=await y.Analysis.save({id:o[0],info:{...i[o[0]].info||{},shared_with:a}});if(p.error)return d.error(p.msg),Promise.reject()}if(t){if(s.length===0)return d.error("Please add at least one valid user email."),Promise.reject();const p=o.reduce((h,r)=>(h.push(y.Analysis.share(r,s,e)),h),[]),g=await Promise.all(p),P=g.find(h=>h.error);if(P&&P.error)return d.error(P.msg),Promise.reject();const u=g.map((h,r)=>
1h.error?null:o[r]).filter(Boolean);await y.Share.notify({emails:s,ids:u,type:"analyses"})}t&&l?d.success("Sharing updated and invites sent."):t?d.success("Analyses shared successfully."):d.success("Sharing permissions updated."),this._modal({names:["share"],show:!1});const c=o;this.setState({tableSelectedRowsDetails:{},tableSelectedRowsKeys:[]}),await this._loadPage({...this.state}),await this._restoreSelectedRows(c)}_modal({names:s,show:e,extra:a={}}){const{modals:t}=this.state;s.forEach(l=>t[l]={extra:a,show:e}),this.setState({modals:t})}_tableColumns(){const s=a=>{const t={abort:n.createElement(w,{placement:"topLeft",title:"Analysis aborted."},n.createElement(m,{className:"failed",type:"close-circle"})),completed:n.createElement(w,{placement:"topLeft",title:"Analysis complete."},n.createElement(m,{className:"completed",type:"check-circle"})),error:n.createElement(w,{placement:"topLeft",title:"Analysis error."},n.createElement(m,{className:"failed",type:"warning"})),failed:n.createElement(w,{placement:"topLeft",title:"Analysis failed."},n.createElement(m,{className:"failed",type:"exclamation-circle"})),running:n.createElement(w,{placement:"topLeft",title:"Analysis running."},n.createElement(m,{className:"progress",type:"sync",spin:!0})),waiting:n.createElement(w,{placement:"topLeft",title:"Analysis waiting to start."},n.createElement(m,{className:"waiting",type:"clock-circle"}))},l=new RegExp(/([A-Za-z]+)/).exec(a);let i="";return l&&(i=l[0],i==="started"?i="running":i==="error_code"&&(i="error")),t[i]||t.running},e=[{dataIndex:"icon",title:"",width:36,filters:[{text:"Aborted",value:"abort"},{text:"Completed",value:"completed"},{text:"Error",value:"error|error_code"},{text:"Failed",value:"failed"},{text:"Running",value:"started|running"},{text:"Waiting",value:"waiting"}],render:(a,t)=>s(t.status),filterIcon:a=>this._tableGetFilteredIcon(a,"filter")},this._tableColumnId({width:80}),this._tableColumnName({basePath:"/analyses",width:220,getLabel:(a,t)=>a||`Analysis-${t.id}`}),this._tableColumnOwner(),this._tableColumnWithTimestamp({dataIndex:"date_created",title:"Created",width:100}),this._tableColumnWithTimestamp({dataIndex:"last_updated",title:"Updated",width:100})];return this._applySessionedData(e)}_tableRowSelection(){const s={...C.getState().config.user},{isGlobalOrPublicProject:e}=this.state;function a(t,l){return l&&!s.isSuperuser?!0:["none","view"].includes(t.permission.toLowerCase())&&!t.is_team_member}return{columnWidth:40,onChange:(t,l)=>{this.setState({tableSelectedRowsDetails:l.reduce((i,o)=>(i[o.id]=o,i),{}),tableSelectedRowsKeys:t})},getCheckboxProps:t=>{const l=a(t,e);return{disabled:l,title:l?"You don't have permission.":void 0}}}}}const oe=k(U);export{oe 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.