1"use strict";(globalThis.webpackChunkdeepedge_platform||=[]).push([[7828],{99449(e,t,a){a.r(t),a.d(t,{default:()=>Ts});var s=a(65043);var l=a(14704),n=a(70715),i=a(9475),o=a(86995),r=a(11332);class d{static createImageDataFromFileData(e){return{image_id:e.name,fileData:e,loadStatus:!1,annotationLoaded:!1,annotationLoadState:"unloaded",labelRects:[],labelPoints:[],labelLines:[],labelPolygons:[],labelPolylines:[],labelTags:[],flags:[],seen:!1,saved:!1,isVisitedByObjectDetector:!1,isVisitedByPoseDetector:!1}}static createImageDataFromRemoteSource(e,t){const a=new File([],e);return{...d.createImageDataFromFileData(a),sourceUrl:t}}static cleanAnnotations(e){return{...e,labelRects:[],labelPoints:[],labelLines:[],labelPolygons:[],labelPolylines:[],labelTags:[],flags:[]}}static arrange(e,t){return e.sort((e,a)=>t.indexOf(e.image_id)-t.indexOf(a.image_id))}static loadMissingImages(e){return r.y.hydrate(e)}}var c=a(91964),u=a(73216),g=a(35475),h=a(3615),m=a(42406),p=a(96060),b=a(62953);const v=["labelRects","labelPoints","labelPolygons","labelPolylines","labelTags","labelLines","flags"];var x=a(70579);const f=(0,c.getCokkie)("jwtToken");var y=new Headers;y.append("Authorization",`Bearer ${f}`),y.append("accept","application/json"),y.append("Content-Type","application/json");var w={method:"GET",headers:y};const j={updateActiveImageIndexAction:n.n5,updateProjectDataAction:o.nv,UpdateImageDataAction:n.VM,updateActivePopupTypeAction:o.IX,updateLabelNamesAction:n.qN,updateTagNamesAction:n.yQ},N=(0,l.Ng)(e=>({projectData:e.general.projectData}),j)(e=>{var t;const[a,o]=(0,s.useState)(""),[f,y]=(0,s.useState)([]),[j,N]=(0,s.useState)([]),[I,L]=(0,s.useState)(!0),[S,A]=(0,s.useState)(!1),[C,k]=(0,s.useState)([]),[P,E]=(0,s.useState)({}
1),[T,R]=(0,s.useState)([]),[_,D]=(0,s.useState)(""),[O,M]=(0,s.useState)(""),[B,V]=(0,s.useState)(null),[H,F]=(0,s.useState)(null),[U,z]=(0,s.useState)(!1),G=(0,u.zy)(),[$]=(0,g.ok)(),W=$.get("id"),Y=null===(t=G.state)||void 0===t?void 0:t.taskStatus,q=()=>{W&&((0,h.q0)(),V(null),F(null),L(!0),A(!0),z(!1),X(W,1))};(0,s.useEffect)(()=>{W&&((0,h.q0)(),localStorage.setItem("validator","validation"===Y?"true":"false"),o(""),y([]),N([]),k([]),E({}),R([]),D(""),M(""),V(null),F(null),L(!0),A(!0),z(!1),e.updateProjectDataAction({...e.projectData,type:null,id:"",name:"",task:""}),e.UpdateImageDataAction([]),J((0,n.Zj)(null)),e.updateActiveImageIndexAction(0),e.updateLabelNamesAction([]),X(W,1))},[W,Y]);const J=(0,l.wA)(),X=async(t,a)=>{const s=t;console.log("params",t),o(t),L(!0),A(!0),V(null),F(null);try{var l;const[i,o]=await Promise.all([fetch(window.ENV.API_URL+`/tasks/annotate/${t}/${a}/1`,w),fetch(window.ENV.API_URL+"/tasks/images/"+t,w)]);if(401===i.status||401===o.status)return void(0,c.logout)();if(!i.ok)throw Object.assign(new Error(`Annotate API failed with ${i.status}`),{status:i.status});if(!o.ok)throw Object.assign(new Error(`Images API failed with ${o.status}`),{status:o.status});const[u,g]=await Promise.all([i.json(),o.json()]);if(s!==new URLSearchParams(window.location.search).get("id"))return;const h=Array.isArray(u.labels)?u.labels.filter(e=>e&&null!=e.id&&"string"===typeof e.name).map(e=>({...e,id:String(e.id),color:e.color||e.colour})):[],m=(0,b.Os)((0,b.sm)((null===u||void 0===u?void 0:u.hot_keys)||{}),h);m["Hide Selected"]=["h"],p.v.setHotkeysConfig(m),R((null===u||void 0===u?void 0:u.saved_status)||[]),k(h),e.updateLabelNamesAction(h),localStorage.setItem("flags",u.flag_types),localStorage.setItem("time",u.time_spent),D(u.task_set_name),M(u.task_type),localStorage.setItem("validator","validation"===u.task_status?"true":"false"),localStorage.setItem("annotation_types",u.annotation_types),localStorage.setItem("task_image_path",u.task_image_path),J((0,n.Wu)(null===u||void 0===u?void 0:u.annotation_count)),J((0,n.dN)(null===u||void 0===u||null===(l=u.download_info)||void 0===l?void 0:l.audio_url)),J((0,n.Rf)(null===u||void 0===u?void 0:u.saved_status));const{download_info:v,...x}=u.annotations,f="object_tracking"===u.task_type?await(async(e,t)=>{const a=Object.values(t.image||{}).map(e=>null===e||void 0===e?void 0:e.image_name).filter(e=>Boolean(e)),s=await fetch(`${window.ENV.API_URL}/tasks/annotate/${e}/sequence`,{headers:{Authorization:`Bearer ${(0,c.getCokkie)("jwtToken")}`,Accept:"application/json"}});if(!s.ok)throw new Error(`Unable to load tracking annotations (${s.status})`);const l=(await s.json()).annotations;if(!Array.isArray(l))throw new Error("Tracking annotation response is invalid");if(l.some(e=>!e||"object"!==typeof e||!e.image_id||null!=e.labelRects&&!Array.isArray(e.labelRects)||(e.labelRects||[]).some(e=>!e||"object"!==typeof e)))throw new Error("Tracking annotation response contains an invalid frame");const n=Object.fromEntries(l.map(e=>[e.image_id,{...e,labelRects:(e.labelRects||[]).map(e=>({...e,id:null==e.id?e.id:String(e.id),labelId:null==e.labelId?e.labelId:String(e.labelId)}))}]));if(a.some(e=>!n[e]))throw new Error("Tracking annotation response is missing frames");return n})(s,g):x;if(s!==new URLSearchParams(window.location.search).get("id"))return;E(f),J((0,n.iN)(f)),await async function(e,t,a){const s=/\.(jpg|png|gif|ps|jpeg|bmp|tif|wav|webp)$/;try{const l=Object.entries(e.image||{});if("audio_classification"!==t){const e=l.map(e=>{let[,t]=e;const a=t.image_name,l=t.image_url;return a&&l&&s.test(a.toLowerCase())?d.createImageDataFromRemoteSource(a,l):null}).filter(e=>Boolean(e));if(r.y.configure(a,e),e[0]&&await r.y.load(e[0],"foreground").catch(()=>{}),a!==new URLSearchParams(window.location.search).get("id"))return;return N(e),L(!1),void A(!1)}const n=l.map(async e=>{var t;let[,a]=e;const l=a.image_name?"image_name":"audio_name",n=a.image_url?"image_url":"waveform_url";if(!s.test((null===(t=a[l])||void 0===t?void 0:t.toLowerCase())||""))return null;try{const e=await fetch(a[n]);if(!e.ok)throw new Error(`Failed to fetch ${a[l]}`);const t=await e.blob();return new File([t],a[l],{type:"image/png"})}catch(B){return console.error(`Error downloading ${a[l]}:`,B),null}}),i=(await Promise.all(n)).filter(e=>Boolean(e));if(a!==new URLSearchParams(window.location.search).get("id"))return;N(i.map(e=>d.createImageDataFromFileData(e))),L(!1),A(!1)}catch(B){throw console.error("Error downloading images:",B),B}}(g,u.task_type,s),V(null),F(null),z(!0)}catch(i){console.log(i),V(!0),F(i.status||500),L(!1),A(!1),z(!0)}};(0,s.useEffect)(()=>
1{if(j.length){const t=j;console.log("files",t),e.updateProjectDataAction({...e.projectData,type:"audio_classification"===O?i.g.AUDIO_CLASSIFICATION:i.g.OBJECT_DETECTION,id:a,name:_,task:O}),e.updateActiveImageIndexAction(0);const s=p.v.getHotkeysConfig()||{};p.v.setHotkeysConfig((0,b.Os)((0,b.sm)(s),C||[]));const l=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return e.map((e,s)=>{var l,n,i,o,r,d,c,u,g,h;const m=t[e.image_id],p=null!==(l=null!==(n=null===m||void 0===m?void 0:m.saved)&&void 0!==n?n:a[s])&&void 0!==l&&l,b={...e,saved:p,seen:0===s||(null!==(i=null===m||void 0===m?void 0:m.seen)&&void 0!==i?i:p),annotationLoaded:Boolean(m),annotationLoadState:m?"loaded":"unloaded",labelRects:null!==(o=null===m||void 0===m?void 0:m.labelRects)&&void 0!==o?o:[],labelPoints:null!==(r=null===m||void 0===m?void 0:m.labelPoints)&&void 0!==r?r:[],labelPolygons:null!==(d=null===m||void 0===m?void 0:m.labelPolygons)&&void 0!==d?d:[],labelPolylines:null!==(c=null===m||void 0===m?void 0:m.labelPolylines)&&void 0!==c?c:[],labelTags:null!==(u=null===m||void 0===m?void 0:m.labelTags)&&void 0!==u?u:[],labelLines:null!==(g=null===m||void 0===m?void 0:m.labelLines)&&void 0!==g?g:[],flags:null!==(h=null===m||void 0===m?void 0:m.flags)&&void 0!==h?h:[]};return v.forEach(e=>{Array.isArray(b[e])||(b[e]=[])}),b})}(t,P,T);e.UpdateImageDataAction(l),r.y.prefetch(l,0),"object_tracking"!==O&&(0,h.dU)(a),localStorage.setItem("aipreditions",JSON.stringify("")),localStorage.setItem("predictionspath",JSON.stringify(""))}},[j]);
1const[K,Z]=(0,s.useState)(()=>{const e=JSON.parse(localStorage.getItem("model"))||[];return e.length>0?e[0].status:null});return(0,s.useEffect)(()=>{const e=setInterval(()=>{(()=>{const e=JSON.parse(localStorage.getItem("model"))||[],t=e.length>0?e[0].status:null;K!==t&&Z(t)})()},5e3);return()=>clearInterval(e)},[K]),I||S?(0,x.jsxs)("div",{className:"d-flex flex-column align-items-center justify-content-center",style:{minHeight:"75vh"},children:[(0,x.jsx)(m.A,{}),(0,x.jsx)("h5",{className:"fw-semibold mb-2",children:"Loading editor..."}),(0,x.jsx)("p",{className:"text-secondary text-center",children:"Please wait while we load task details and images."})]}):!I&&B?(0,x.jsxs)("div",{className:"d-flex flex-column align-items-center justify-content-center",style:{minHeight:"75vh"},children:[(0,x.jsx)("div",{style:{backgroundColor:"#fff8d5",border:"1px solid #ffe7a3",borderRadius:"4px",padding:"14px 24px",maxWidth:"600px",textAlign:"center",fontSize:"0.95rem",color:"black"},children:404===H?"Task data not found (404).":403===H?"You don\u2019t have permission to access this task.":500===H?"Server error (500). Please try again.":"Unable to load task data right now."}),(0,x.jsx)("div",{className:"mt-3",children:(0,x.jsx)("button",{className:"btn btn-primary",onClick:q,children:"Retry"})})]}):!I&&U&&0===j.length?(0,x.jsxs)("div",{className:"d-flex flex-column align-items-center justify-content-center",style:{minHeight:"75vh"},children:[(0,x.jsx)("div",{style:{fontSize:"3rem"},className:"mb-3",children:"\ud83d\uddbc\ufe0f"}),(0,x.jsx)("h5",{className:"fw-semibold mb-2",children:"No images available"}),(0,x.jsx)("p",{className:"text-secondary text-center",style:{maxWidth:"450px"},children:"This task does not contain any images or audio files to annotate."}),(0,x.jsx)("button",{className:"btn btn-primary",onClick:q,children:"Retry"})]}):(0,x.jsx)("div",{className:"top-navbar2-view p-0"})}),I=()=>((0,s.useEffect)(()=>{["check","mousePositionPoints","imageIds","redoPoints","aiMode"].forEach(e=>localStorage.removeItem(e)),Object.keys(localStorage).forEach(e=>e.startsWith("undoRedo")&&localStorage.removeItem(e)),Object.keys(localStorage).forEach(e=>e.startsWith("undoindex")&&localStorage.removeItem(e))},[]),(0,x.jsx)("div",{children:(0,x.jsx)(N,{})}));var L=a(89248);var S=a(98139),A=a.n(S);const C=e=>{const{key:t,label:a,onClick:s,style:l,isActive:n,isDisabled:i,externalClassName:o}=e;return(0,x.jsx)("div",{className:A()("TextButton",o,{active:n,disabled:i}),onClick:e=>{e.stopPropagation(),s&&s()},style:l,children:a},t)};var k=a(61921);const P=e=>{let{title:t,renderContent:a,acceptLabel:l,onAccept:n,skipAcceptButton:i,disableAcceptButton:o,rejectLabel:r,onReject:d,skipRejectButton:c,disableRejectButton:u}=e;const[g,h]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{g||(p.v.switchCtx(k.E.POPUP),h(!0))},[g]),(0,x.jsxs)("div",{className:"GenericYesNoPopup",children:[(0,x.jsx)("div",{className:"Header",children:t}),(0,x.jsx)("div",{className:"Content",children:a()}),(0,x.jsxs)("div",{className:"Footer",children:[!i&&(0,x.jsx)(C,{label:l||"YES",onClick:n,externalClassName:"accept",isDisabled:o}),!c&&(0,x.jsx)(C,{label:r||"NO, THANKS",onClick:d,externalClassName:"reject",isDisabled:u})]})]})};var E=a(25413);let T=function(e){return e.IMAGE="image/jpeg, image/png",e.TEXT="text/plain",e.JSON="application/json",e}({});var R=a(81158);class _ extends Error{constructor(e){super(e),this.name="YOLOAnnotationsLoadingError"}}class D extends _{constructor(){super("For YOLO labels to be loaded correctly, labels.txt file is required"),this.name="NoLabelNamesFileProvidedError"}}class O extends _{constructor(){super("Label names listed in labels.txt file should be unique"),this.name="LabelNamesNotUniqueError"}}class M extends _{constructor(e){super(`Unexpected error occurred during parsing of ${e} annotations file`),this.name="AnnotationsParsingError"}}var B=a(53536);class V{static parseLabelsNamesFromString(e){const t=e.split(/[\r\n]/).filter(Boolean).map(e=>e.replace(/\s/g,""));if((0,B.uniq)(t).length!==t.length)throw new O;return t.map(e=>R.Z.createLabelName(e))}static loadLabelsList(e,t,a){const s=new FileReader;s.onloadend=function(e){const a=e.target.result,s=V.parseLabelsNamesFromString(a);t(s)},s.onerror=()=>a(),s.readAsText(e)}static parseYOLOAnnotationsFromString(e,t,a,s){return e.split(/[\r\n]/).filter(
1Boolean).map(e=>V.parseYOLOAnnotationFromString(e,t,a,s))}static parseYOLOAnnotationFromString(e,t,a,s){const l=e.split(" ");if(!V.validateYOLOAnnotationComponents(l,t.length))throw new M(s);const n=t[parseInt(l[0])].id,i=parseFloat(l[1]),o=parseFloat(l[2]),r=parseFloat(l[3]),d=parseFloat(l[4]),c={x:(i-r/2)*a.width,y:(o-d/2)*a.height,width:r*a.width,height:d*a.height};return R.Z.createLabelRect(n,c)}static validateYOLOAnnotationComponents(e,t){const a=e=>{const t=Number(e);return!isNaN(t)&&0<=t&&t<=1};return[5===e.length,(e=>{const a=parseInt(e);return!isNaN(a)&&0<=a&&a<t})(e[0]),a(e[1]),a(e[2]),a(e[3]),a(e[4])].every(Boolean)}}const H={updateActivePopupType:o.IX,updateLabels:n.qN},F=(0,l.Ng)(e=>({}),H)(e=>{let{updateActivePopupType:t,updateLabels:a}=e;const[l,n]=(0,s.useState)([]),[i,o]=(0,s.useState)(!1),{acceptedFiles:r,getRootProps:d,getInputProps:c}=(0,E.V)({accept:{TEXT:[T.TEXT]},multiple:!1,onDrop:e=>{1===e.length&&V.loadLabelsList(e[0],u,g)}}),u=e=>{n(e),o(!1)},g=()=>{o(!0)};return(0,x.jsx)(P,{title:"Load file with labels description",renderContent:()=>(0,x.jsxs)("div",{className:"LoadLabelsPopupContent",children:[(0,x.jsx)("div",{className:"Message",children:"Load a text file with a list of labels you are planning to use. The names of each label should be separated by new line. If you don't have a prepared file, no problem. You can create your own list now."}),(0,x.jsx)("div",{...d({className:"DropZone"}),children:i?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("input",{...c()}),(0,x.jsx)("img",{draggable:!1,alt:"upload",src:"ico/box-opened.png"}),(0,x.jsx)("p",{className:"extraBold",children:"Loading of labels file was unsuccessful"}),(0,x.jsx)("p",{className:"extraBold",children:"Try again"})]}):0===r.length?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("input",{...c()}),(0,x.jsx)("img",{draggable:!1,alt:"upload",src:"ico/box-opened.png"}),(0,x.jsx)("p",{className:"extraBold",children:"Drop labels file"}),(0,x.jsx)("p",{children:"or"}),(0,x.jsx)("p",{className:"extraBold",children:"Click here to select it"})]}):1===l.length?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("img",{draggable:!1,alt:"uploaded",src:"ico/box-closed.png"}),(0,x.jsx)("p",{className:"extraBold",children:"only 1 label found"})]}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("img",{draggable:!1,alt:"uploaded",src:"ico/box-closed.png"}),(0,x.jsxs)("p",{className:"extraBold",children:[l.length," labels found"]})]})})]}),acceptLabel:"Start project",onAccept:()=>{l.length>0&&a(l)},disableAcceptButton:0===l.length,rejectLabel:"Create labels list",onReject:()=>{t(L.R.INSERT_LABEL_NAMES)}})});var U=a(76483),z=a(32781),G=a(50875),$=a(59970);const W=e=>{let{color:t,onClick:a}=e;return(0,x.jsx)("div",{className:"ColorSelectorView",style:{backgroundColor:t},onClick:a,children:(0,x.jsx)("img",{draggable:!1,alt:"Refetch",src:"/ico/refresh.png"})})};var Y=a(5246),q=a(7577),J=a(71745),X=a(40975);var K=a(51238);let Z=function(e){return e.ERROR="ERROR",e.SUCCESS="SUCCESS",e.MESSAGE="MESSAGE",e.WARNING="WARNING",e}({});class Q{static createErrorNotification(e){return{id:(0,K.A)(),type:Z.ERROR,header:e.header,description:e.description}}static createMessageNotification(e){return{id:(0,K.A)(),type:Z.MESSAGE,header:e.header,description:e.description}}static createWarningNotification(e){return{id:(0,K.A)(),type:Z.WARNING,header:e.header,description:e.description}}}let ee=function(e){return e[e.EMPTY_LABEL_NAME_ERROR=0]="EMPTY_LABEL_NAME_ERROR",e[e.NON_UNIQUE_LABEL_NAMES_ERROR=1]="NON_UNIQUE_LABEL_NAMES_ERROR",e}({});const te={[ee.EMPTY_LABEL_NAME_ERROR]:{header:"Empty label name",description:"Looks like you didn't assign name to one of your labels. Unfortunately it is mandatory for every label to have unique name value. Insert correct name or delete empty label and try again."},[ee.NON_UNIQUE_LABEL_NAMES_ERROR]:{header:"Non unique label names",description:"Looks like not all your label names are unique. Unique names are necessary to guarantee correct data export when you complete your work. Make your names unique and try again."}},ae=(0,J.A)({root:{"& .MuiInputBase-root":{color:"black"},"& label":{color:"black"},"& .MuiInput-underline:before":{borderBottomColor:"black"},"& .MuiInput-underline:hover:before":{borderBottomColor:"black"},"& label.Mui-focused":{color:q.w.SECONDARY_COLOR},"& .MuiInput-underline:after":{borderBottomColor:q.w.SECONDARY_COLOR}}})(Y.A),se={updateActivePopupTypeAction:o.IX,updateLabelNamesAction:n.qN,updatePerClassColorationStatusAction:o.zc,submitNewNotificationAction:function(e){return{type:X.r.SUBMIT_NEW_NOTIFICATION,payload:{notification:e}}}},le=(0,l.Ng)(e=>({projectType:e.general.projectData.type,enablePerClassColoration:e.general.enablePerClassColoration}),se)(e=>{let{updateActivePopupTypeAction:t,updateLabelNamesAction:a,updatePerClassColorationStatusAction:l,submitNewNotificationAction:n,isUpdate:o,projectType:r,enablePerClassColoration:d}=e;
1const[c,u]=(0,s.useState)(()=>G.R.getLabelNames()),g=e=>()=>{e(),0===(0,B.filter)(c,e=>""===e.name).length?(0,B.uniq)(c.map(e=>e.name)).length===c.length?e():n(Q.createErrorNotification(te[ee.NON_UNIQUE_LABEL_NAMES_ERROR])):n(Q.createErrorNotification(te[ee.EMPTY_LABEL_NAME_ERROR]))},h=()=>{const e=[...c,R.Z.createLabelName("")];u(e)},m=()=>g(h)(),p=()=>{l(!d)},b=e=>{"Enter"===e.key&&m()},v=c.map(e=>(0,x.jsxs)("div",{className:"LabelEntry",children:[(0,x.jsx)(ae,{id:"key",autoComplete:"off",autoFocus:!0,type:"text",margin:"dense",label:"Insert label",onKeyUp:b,value:e.name,onChange:t=>f(e.id,t.target.value),style:{width:280},InputLabelProps:{shrink:!0}}),r===i.g.OBJECT_DETECTION&&d&&(0,x.jsx)(W,{color:e.color,onClick:()=>(e=>{const t=c.map(t=>t.id===e?{...t,color:(0,B.sample)(q.w.LABEL_COLORS_PALETTE)}:t);u(t)})(e.id)}),(0,x.jsx)(z.c,{image:"/ico/trash.png",imageAlt:"remove_label",buttonSize:{width:30,height:30},onClick:()=>(e=>{const t=(0,B.reject)(c,{id:e});u(t)})(e.id)})]},e.id)),f=(e,t)=>{const a=c.map(a=>a.id===e?{...a,name:t}:a);u(a)},y=()=>{const e=(0,B.reject)(c,e=>0===e.name.length);c.length>0&&a(e),t(null)};return(0,x.jsx)(P,{title:o?"Edit labels":"Create labels",renderContent:()=>(0,x.jsxs)("div",{className:"InsertLabelNamesPopup",children:[(0,x.jsxs)("div",{className:"LeftContainer",children:[(0,x.jsx)(z.c,{image:"/ico/plus.png",imageAlt:"plus",buttonSize:{width:40,height:40},padding:25,onClick:m,externalClassName:"monochrome"}),c.length>0&&(0,x.jsx)(z.c,{image:d?"/ico/colors-on.png":"/ico/colors-off.png",imageAlt:"per-class-coloration",buttonSize:{width:40,height:40},padding:15,onClick:p,isActive:d,externalClassName:d?"":"monochrome"})]}),(0,x.jsxs)("div",{className:"RightContainer",children:[(0,x.jsx)("div",{className:"Message",children:o?"You can now edit the label names you use to describe the objects in the photos. Use the + button to add a new empty text field.":"Before you start, you can create a list of labels you plan to assign to objects in your project. You can also choose to skip that part for now and define label names as you go."}),(0,x.jsx)("div",{className:"LabelsContainer",children:0!==Object.keys(c).length?(0,x.jsx)(U.Ay,{children:(0,x.jsx)("div",{className:"InsertLabelNamesPopupContent",children:v})}):(0,x.jsxs)("div",{className:"EmptyList",onClick:h,children:[(0,x.jsx)("img",{draggable:!1,alt:"upload",src:"/ico/type-writer.png"}),(0,x.jsx)("p",{className:"extraBold",children:"Your label list is empty"})]})})]})]}),acceptLabel:o?"Accept":"Start project",onAccept:()=>g(y)(),rejectLabel:o?"Cancel":"Load labels from file",onReject:o?()=>{t(null)}:()=>{t(L.R.LOAD_LABEL_NAMES)}})});var ne=a(61902);const ie={updateActiveLabelNameId:n.A2,updateLabelNames:n.qN,updateProjectData:o.nv,updateActiveImageIndex:n.n5,updateImageData:n.VM,updateFirstLabelCreatedFlag:n.q5},oe=(0,l.Ng)(e=>({}),ie)(e=>{const{updateActiveLabelNameId:t,updateLabelNames:a,updateActiveImageIndex:s,updateImageData:l,updateFirstLabelCreatedFlag:n,updateProjectData:i}=e;return(0,x.jsx)(P,{title:"Exit project",renderContent:()=>(0,x.jsx)("div",{className:"ExitProjectPopupContent",children:(0,x.jsx)("div",{className:"Message",children:"Are you sure you want to leave the editor? You will permanently lose all your progress."})}),acceptLabel:"Exit",onAccept:()=>{t(null),a([]),i({type:null,id:null,name:"my-project-name"}),s(null),l([]),n(!1),ne.w.close()},rejectLabel:"Back",onReject:()=>{ne.w.close()}})}),re={addImageData:n.T5},de=(0,l.Ng)(e=>({}),re)(e=>{let{addImageData:t}=e;const{acceptedFiles:a,getRootProps:s,getInputProps:l}=(0,E.V)({accept:{IMAGE:[T.IMAGE]}});return(0,x.jsx)(P,{title:"Load more images",renderContent:()=>(0,x.jsx)("div",{className:"LoadMoreImagesPopupContent",children:(0,x.jsx)("div",{...s({className:"DropZone"}),children:0===a.length?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("input",{...l()}),(0,x.jsx)("img",{draggable:!1,alt:"upload",src:"ico/box-opened.png"}),(0,x.jsx)("p",{className:"extraBold",children:"Add new images"}),(0,x.jsx)("p",{children:"or"}),(0,x.jsx)("p",{className:"extraBold",children:"Click here to select them"})]}):1===a.length?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("img",{draggable:!1,alt:"uploaded",src:"ico/box-closed.png"}),(0,x.jsx)("p",{className:"extraBold",children:"1 new image loaded"})]}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("img",{draggable:!1,alt:"uploaded",src:"ico/box-closed.png"},1),(0,x.jsxs)("p",{className:"extraBold",children:[a.length," new images loaded"]},2)]})})}),acceptLabel:"Load",disableAcceptButton:a.length<1,onAccept:()=>{a.length>0&&(t(a.map(e=>d.createImageDataFromFileData(e))),ne.w.close())},rejectLabel:"Cancel",onReject:()=>{ne.w.close()}})});var ce=a(3351);
1class ue{static getSuggestedLabelList(){return ce.M.getState().ai.suggestedLabelList}static getRejectedSuggestedLabelList(){return ce.M.getState().ai.rejectedSuggestedLabelList}static isAIObjectDetectorModelLoaded(){return ce.M.getState().ai.isObjectDetectorLoaded}static isAIPoseDetectorModelLoaded(){return ce.M.getState().ai.isPoseDetectorLoaded}static isAIDisabled(){return ce.M.getState().ai.isAIDisabled}}class ge extends Error{constructor(){super("Given predicate results in more than one value being matched."),this.name="ArrayUtilAmbiguousMatchError"}}class he extends Error{constructor(){super("Given array is empty."),this.name="EmptyArrayError"}}class me extends Error{constructor(){super("Index can not be negative."),this.name="NegativeIndexError"}}class pe{static partition(e,t){return e.reduce((e,a)=>(t(a)?e.pass.push(a):e.fail.push(a),e),{pass:[],fail:[]})}static match(e,t,a){return e.reduce((e,s)=>{const l=t.filter(e=>a(s,e));if(1===l.length)e.push([s,l[0]]);else if(l.length>1)throw new ge;return e},[])}static unzip(e){return e.reduce((e,t)=>(e[0].push(t[0]),e[1].push(t[1]),e),[[],[]])}static getByInfiniteIndex(e,t){if(0===e.length)throw new he;if(t<0)throw new me;return e[t%e.length]}}const be={updateLabelNames:n.qN,updateSuggestedLabelList:function(e){return{type:X.r.UPDATE_SUGGESTED_LABEL_LIST,payload:{labelList:e}}},updateRejectedSuggestedLabelList:function(e){return{type:X.r.UPDATE_REJECTED_SUGGESTED_LABEL_LIST,payload:{labelList:e}}}},ve=(0,l.Ng)(e=>({}),be)(e=>{let{updateLabelNames:t,updateSuggestedLabelList:a,updateRejectedSuggestedLabelList:l}=e;const[n,i]=(0,s.useState)(!1),[o,r]=(0,s.useState)(ue.getSuggestedLabelList().map(e=>({name:e,flag:!1})));const d=()=>o.reduce((e,t)=>(t.flag&&e.push(t.name),e),[]),c=()=>o.reduce((e,t)=>(t.flag||e.push(t.name),e),[]),u=()=>o.map(e=>e.name),g=()=>o.map((e,t)=>(0,x.jsxs)("div",{className:"OptionsItem",onClick:()=>(e=>{const t=o.map((t,a)=>e===a?{...t,flag:!t.flag}:t);r(t);const a=t.reduce((e,t)=>e&&t.flag,!0);i(a)})(t),children:[e.flag?(0,x.jsx)("img",{draggable:!1,src:"/ico/checkbox-checked.png",alt:"checked"}):(0,x.jsx)("img",{draggable:!1,src:"/ico/checkbox-unchecked.png",alt:"unchecked"}),e.name]},t));return(0,x.jsx)(P,{title:"New classes found",renderContent:()=>(0,x.jsxs)("div",{className:"SuggestLabelNamesPopupContent",children:[(0,x.jsx)("div",{className:"Message",children:"We found objects of classes that are not yet included in the list of labels. Select the names you would like to add. This will help to speed up the labeling process."}),(0,x.jsx)("div",{className:"AllToggle",children:(0,x.jsxs)("div",{className:"OptionsItem",onClick:()=>n?(i(!1),void r(o.map(e=>({...e,flag:!1})))):(i(!0),void r(o.map(e=>({...e,flag:!0})))),children:[n?(0,x.jsx)("img",{draggable:!1,src:"/ico/checkbox-checked.png",alt:"checked"}):(0,x.jsx)("img",{draggable:!1,src:"/ico/checkbox-unchecked.png",alt:"unchecked"}),n?"Deselect all":"Select all"]})}),(0,x.jsx)("div",{className:"LabelNamesContainer",children:(0,x.jsx)(U.Ay,{autoHeight:!0,children:(0,x.jsx)("div",{className:"LabelNamesContent",children:g()})})})]}),acceptLabel:"Accept",onAccept:()=>{t(d().reduce((e,t,a)=>(e.push({name:t,id:(0,K.A)(),color:pe.getByInfiniteIndex(q.w.LABEL_COLORS_PALETTE,a)}),e),G.R.getLabelNames())),l(ue.getRejectedSuggestedLabelList().concat(c())),a([]),ne.w.close()},rejectLabel:"Reject",onReject:()=>{l(ue.getRejectedSuggestedLabelList().concat(u())),a([]),ne.w.close()}})});class xe{static getLeadingColor(){return ue.isAIObjectDetectorModelLoaded()||ue.isAIPoseDetectorModelLoaded()?q.w.PRIMARY_COLOR:q.w.SECONDARY_COLOR}}var fe=a(30710);var ye=a(8904);const we=[{labelType:ye.H.IMAGE_RECOGNITION,headerText:"Image recognition",imageSrc:"/ico/object.png",imageAlt:"object",projectType:i.g.IMAGE_RECOGNITION},{labelType:ye.H.RECT,headerText:"Rect",imageSrc:"/ico/rectangle.png",imageAlt:"rectangle",projectType:i.g.OBJECT_DETECTION},{labelType:ye.H.POINT,headerText:"Point",imageSrc:"/ico/point.png",imageAlt:"point",projectType:i.g.OBJECT_DETECTION},{labelType:ye.H.TAG,headerText:"Tag",imageSrc:"/ico/tags.png",imageAlt:"tags",projectType:i.g.OBJECT_DETECTION},{labelType:ye.H.LINE,headerText:"Line",imageSrc:"/ico/line.png",imageAlt:"lines",projectType:i.g.OBJECT_DETECTION},{labelType:ye.H.POLYGON,headerText:"Polygon",imageSrc:"/ico/polygon.png",imageAlt:"polygon",projectType:i.g.OBJECT_DETECTION},{labelType:ye.H.POLYLINE,headerText:"Polyline",imageSrc:"/ico/polyline.png",imageAlt:"polyline",projectType:i.g.OBJECT_DETECTION}],je=(0,l.Ng)(e=>({projectType:e.general.projectData.type}),{})(e=>{let{title:t,activeLabelType:a,projectType:l,onLabelTypeChange:n,acceptLabel:i,onAccept:o,skipAcceptButton:r,disableAcceptButton:d,rejectLabel:c,onReject:u,renderInternalContent:g}=e;
1const[h,m]=(0,s.useState)(a);return(0,x.jsx)(P,{title:t,renderContent:()=>(0,x.jsxs)("div",{className:"GenericLabelTypePopupContent",children:[(0,x.jsx)("div",{className:"LeftContainer",children:we.filter(e=>e.projectType===l).map(e=>(0,x.jsx)(z.c,{image:e.imageSrc,imageAlt:e.imageAlt,buttonSize:{width:40,height:40},padding:20,onClick:()=>{m(e.labelType),n(e.labelType)},isActive:h===e.labelType}))}),(0,x.jsx)("div",{className:"RightContainer",children:g(h)})]}),acceptLabel:i,onAccept:()=>o(h),skipAcceptButton:r,disableAcceptButton:d,rejectLabel:c,onReject:()=>u(h)})});let Ne=function(e){return e.YOLO="YOLO",e.COCO="COCO",e.CSV="CSV",e.JSON="JSON",e.VOC="VOC",e.VGG="VGG",e}({});const Ie={[ye.H.RECT]:[{type:Ne.COCO,label:"Single file in COCO JSON format."},{type:Ne.YOLO,label:"Multiple files in YOLO format along with labels names definition - labels.txt file."}],[ye.H.POINT]:[],[ye.H.LINE]:[],[ye.H.POLYGON]:[{type:Ne.COCO,label:"Single file in COCO JSON format."}],[ye.H.IMAGE_RECOGNITION]:[],[ye.H.TAG]:[],[ye.H.POLYLINE]:[{type:Ne.COCO,label:"Single file in COCO JSON format."}]},Le=()=>(0,x.jsxs)("div",{className:"FeatureInProgress",children:[(0,x.jsx)("img",{draggable:!1,alt:"take_off",src:"ico/take-off.png"}),(0,x.jsxs)("p",{className:"extraBold",children:["new feature ",(0,x.jsx)("br",{})," coming soon..."]})]});class Se extends Error{constructor(e){super(e),this.name="COCOAnnotationsLoadingError"}}class Ae extends Se{constructor(e){super(e),this.name="COCOFormatValidationError"}}class Ce extends Se{constructor(){super("Unexpected error occurred during reading annotations from file"),this.name="COCOAnnotationReadingError"}}class ke extends Se{constructor(){super("COCO annotation file need to be in JSON format"),this.name="COCOAnnotationDeserializationError"}}class Pe extends Se{constructor(){super("COCO annotation requires single file but multiple were given"),this.name="COCOAnnotationFileCountError"}}class Ee{constructor(e){this.labelType=void 0,this.labelType=e}import(e,t,a){throw new Error("Method not implemented.")}}class Te{static bbox2rect(e){return{x:e[0],y:e[1],width:e[2],height:e[3]}}static segmentation2vertices(e){return e.map(e=>(0,B.chunk)(e,2).map(e=>({x:e[0],y:e[1]})))}}class Re extends Ee{import(e,t,a){e.length>1&&a(new Pe);const s=new FileReader;s.readAsText(e[0]),s.onloadend=e=>{try{const a=G.R.getImagesData(),s=Re.deserialize(e.target.result),{imagesData:l,labelNames:n}=this.applyLabels(a,s);t(l,n)}catch(s){a(s)}},s.onerror=()=>a(new Ce)}static deserialize(e){try{return JSON.parse(e)}catch(t){throw new ke}}applyLabels(e,t){Re.validateCocoFormat(t);const{images:a,categories:s,annotations:l}=t,n=Re.mapCOCOCategories(s),i=e.map(e=>d.cleanAnnotations(e)),o=Re.partitionImageData(i,a),r=Re.mapImageData(o.pass,a);for(const d of l)if(r[d.image_id]&&1!==d.iscrowd&&(this.labelType.includes(ye.H.RECT)&&r[d.image_id].labelRects.push(R.Z.createLabelRect(n[d.category_id].id,Te.bbox2rect(d.bbox))),this.labelType.includes(ye.H.POLYGON))){const e=Te.segmentation2vertices(d.segmentation);for(const t of e)r[d.image_id].labelPolygons.push(R.Z.createLabelPolygon(n[d.category_id].id,t))}const c=Object.values(r).concat(o.fail);return{imagesData:d.arrange(c,e.map(e=>e.image_id)),labelNames:Object.values(n)}}static partitionImageData(e,t){const a=t.map(e=>e.file_name);return pe.partition(e,e=>a.includes(e.fileData.name))}static mapCOCOCategories(e){return e.reduce((e,t,a)=>(e[t.id]={id:(0,K.A)(),name:t.name,color:pe.getByInfiniteIndex(q.w.LABEL_COLORS_PALETTE,a)},e),{})}static mapImageData(e,t){const a=t.reduce((e,t)=>(e[t.file_name]=t.id,e),{});return e.reduce((e,t)=>(e[a[t.fileData.name]]=t,e),{})}static validateCocoFormat(e){const t=Re.requiredKeys.filter(t=>!e.hasOwnProperty(t));if(0!==t.length)throw new Ae(`Uploaded file does not contain all required keys: ${t}`)}}Re.requiredKeys=["images","annotations","categories"];var _e=a(40344),De=a(86203);class Oe extends Ee{import(e,t,a){try{const s=G.R.getImagesData().map(e=>d.cleanAnnotations(e)),{labelNameFile:l,annotationFiles:n}=Oe.filterFilesData(e,s),[i,o]=Oe.matchImagesWithAnnotations(s,n),r=_e.f.readFile(l).then(e=>V.parseLabelsNamesFromString(e)),c=d.loadMissingImages(i),u=_e.f.readFiles(o);Promise.all([r,c,u]).then(e=>{const[a,,l]=e,n=(0,B.zip)(i,l).map(e=>Oe.applyAnnotations(e[0],e[1],a));t(Oe.injectImageDataWithAnnotations(s,n),a)}).catch(e=>a(e))}catch(s){a(s)}}static filterFilesData(e,t){const a=pe.partition(e,e=>e.name===Oe.labelsFileName);if(1!==a.pass.length)throw new D;const s=t.map(e=>e.fileData.name).map(e=>_e.f.extractFileName(e)),l=pe.partition(e,e=>s.includes(_e.f.extractFileName(e.name)));return{labelNameFile:a.pass[0],annotationFiles:l.pass}}static matchImagesWithAnnotations(e,t){return pe.unzip(pe.match(e,t,(e,t)=>_e.f.extractFileName(e.fileData.name)===_e.f.extractFileName(t.name)))}static applyAnnotations(e,t,a){const s=De.U.getById(e.image_id);return e.labelRects=V.parseYOLOAnnotationsFromString(t,a,{width:s.width,height:s.height},e.fileData.name),e}static injectImageDataWithAnnotations(e,t){return e.map(e=>{const a=(0,B.find)(t,{image_id:e.image_id});return a||e})}}Oe.labelsFileName="labels.txt";const Me={[Ne.COCO]:Re,[Ne.CSV]:void 0,[Ne.JSON]:void 0,[Ne.VGG]:void 0,[Ne.VOC]:void 0,[Ne.YOLO]:Oe},Be={updateImageDataAction:n.VM,updateLabelNamesAction:n.qN,updateActiveLabelTypeAction:n.sh},Ve=(0,l.Ng)(e=>({activeLabelType:e.labels.activeLabelType}),Be)(e=>{let{activeLabelType:t,updateImageDataAction:a,updateLabelNamesAction:l,updateActiveLabelTypeAction:n}=e;const i=e=>{const t=Ie[e];return 1===t.length?t[0].type:null}
1,[o,r]=(0,s.useState)(t),[d,c]=(0,s.useState)(i(t)),[u,g]=(0,s.useState)([]),[h,m]=(0,s.useState)([]),[p,b]=(0,s.useState)(null),{getRootProps:v,getInputProps:f}=(0,E.V)({accept:{JSON:[T.JSON],TEXT:[T.TEXT]},multiple:!0,onDrop:e=>{new Me[d]([o]).import(e,y,w)}}),y=(e,t)=>{g(t),m(e),b(null)},w=e=>{g([]),m([]),b(e)},j=e=>e.map(e=>(0,x.jsxs)("div",{className:"OptionsItem",onClick:()=>{return t=e.type,void c(t);var t},children:[e.type===d?(0,x.jsx)("img",{draggable:!1,src:"/ico/checkbox-checked.png",alt:"checked"}):(0,x.jsx)("img",{draggable:!1,src:"/ico/checkbox-unchecked.png",alt:"unchecked"}),e.label]},e.type));return(0,x.jsx)(je,{activeLabelType:o,title:`Import ${o.toLowerCase()} annotations`,onLabelTypeChange:e=>{r(e),c(i(e)),g([]),m([]),b(null)},acceptLabel:"Import",onAccept:e=>{0!==u.length&&0!==h.length&&(a(h),l(u),n(e),ne.w.close())},skipAcceptButton:0===Ie[o].length,disableAcceptButton:0===h.length||0===u.length||!!p,rejectLabel:"Cancel",onReject:e=>{ne.w.close()},renderInternalContent:e=>{if(!d&&0!==Ie[e].length)return[(0,x.jsx)("div",{className:"Message",children:"Select file format you would like to use to import labels."}),(0,x.jsx)("div",{className:"Options",children:j(Ie[e])})];return 0===Ie[e].length?(0,x.jsx)(Le,{}):(0,x.jsx)("div",{...v({className:"DropZone"}),children:p?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("input",{...f()}),(0,x.jsx)("img",{draggable:!1,alt:"upload",src:"/ico/box-opened.png"}),(0,x.jsx)("p",{className:"extraBold",children:"Annotation import was unsuccessful"}),p.message,(0,x.jsx)("p",{className:"extraBold",children:"Try again"})]}):0!==h.length&&0!==u.length?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("img",{draggable:!1,alt:"uploaded",src:"/ico/box-closed.png"}),(0,x.jsx)("p",{className:"extraBold",children:"Annotation ready for import"}),"After import you will lose all your current annotations"]}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("input",{...f()}),(0,x.jsx)("img",{draggable:!1,alt:"upload",src:"/ico/box-opened.png"}),(0,x.jsx)("p",{className:"extraBold",children:`Drop ${d} annotations`}),(0,x.jsx)("p",{children:"or"}),(0,x.jsx)("p",{className:"extraBold",children:"Click here to select them"})]})})}})});var He=a(26159),Fe=a.n(He),Ue=a(72450);class ze{static sanitize(e){return e.replace("<","<").replace(">",">").replace("&","&").replace("'","'").replace("/","/")}}var Ge=a(86178),$e=a.n(Ge),We=a(88384);class Ye{static getExportFileName(){return`labels_${We.o.getProjectName()}_${$e()().format("YYYY-MM-DD-hh-mm-ss")}`}static saveAs(e,t){const a=new Blob([e],{type:"text/plain;charset=utf-8"});try{(0,Ue.saveAs)(a,t)}catch(s){throw new Error(s)}}}var qe=a(74799),Je=a(42912);class Xe{static export(e){switch(e){case Ne.YOLO:Xe.exportAsYOLO();break;case Ne.VOC:Xe.exportAsVOC();break;case Ne.CSV:Xe.exportAsCSV();break;default:return}}static exportAsYOLO(){const e=new(Fe());G.R.getImagesData().forEach(t=>{const a=Xe.wrapRectLabelsIntoYOLO(t);if(a){const l=t.fileData.name.replace(/\.[^/.]+$/,".txt");try{e.file(l,a)}catch(s){throw new Error(s)}}});try{e.generateAsync({type:"blob"}).then(e=>{(0,Ue.saveAs)(e,`${Ye.getExportFileName()}.zip`)})}catch(t){throw new Error(t)}}static wrapRectLabelIntoYOLO(e,t,a){const s=e=>qe.S.snapValueToRange(e,0,1).toFixed(6),l=(0,B.findIndex)(t,{id:e.labelId}).toString(),n=Je.v.getCenter(e.rect),i=Je.v.getSize(e.rect),o=[n.x/a.width,n.y/a.height,i.width/a.width,i.height/a.height];let[r,d,c,u]=o.map(e=>parseFloat(s(e)));r+c/2>1&&(c=2*(1-r)),r-c/2<0&&(c=2*r),d+u/2>1&&(u=2*(1-d)),d-u/2<0&&(u=2*d);return[l,...[r,d,c,u].map(e=>s(e))].join(" ")}static wrapRectLabelsIntoYOLO(e){if(0===e.labelRects.length||!e.loadStatus)return null;const t=G.R.getLabelNames(),a=De.U.getById(e.image_id),s={width:a.width,height:a.height};return e.labelRects.map(e=>Xe.wrapRectLabelIntoYOLO(e,t,s)).join("\n")}static exportAsVOC(){const e=new(Fe());G.R.getImagesData().forEach(t=>{const a=Xe.wrapImageIntoVOC(t);if(a){const l=t.fileData.name.replace(/\.[^/.]+$/,".xml");try{e.file(l,a)}catch(s){throw new Error(s)}}});try{e.generateAsync({type:"blob"}).then(function(e){(0,Ue.saveAs)(e,`${Ye.getExportFileName()}.zip`)})}catch(t){throw new Error(t)}}static wrapRectLabelsIntoVOC(e){if(0===e.labelRects.length||!e.loadStatus)return null;const t=G.R.getLabelNames();return e.labelRects.map(e=>{const a=(0,B.findLast)(t,{id:e.labelId});return(a?["\t<object>",`\t\t<name>${a.name}</name>`,"\t\t<pose>Unspecified</pose>","\t\t<truncated>Unspecified</truncated>","\t\t<difficult>Unspecified</difficult>","\t\t<bndbox>",`\t\t\t<xmin>${Math.round(e.rect.x)}</xmin>`,`\t\t\t<ymin>
1${Math.round(e.rect.y)}</ymin>`,`\t\t\t<xmax>${Math.round(e.rect.x+e.rect.width)}</xmax>`,`\t\t\t<ymax>${Math.round(e.rect.y+e.rect.height)}</ymax>`,"\t\t</bndbox>","\t</object>"]:[]).join("\n")}).join("\n")}static wrapImageIntoVOC(e){const t=Xe.wrapRectLabelsIntoVOC(e),a=ze.sanitize(We.o.getProjectName());if(t){const s=De.U.getById(e.image_id);return["<annotation>",`\t<folder>${a}</folder>`,`\t<filename>${e.fileData.name}</filename>`,`\t<path>/${a}/${e.fileData.name}</path>`,"\t<source>","\t\t<database>Unspecified</database>","\t</source>","\t<size>",`\t\t<width>${s.width}</width>`,`\t\t<height>${s.height}</height>`,"\t\t<depth>3</depth>","\t</size>",t,"</annotation>"].join("\n")}return null}static exportAsCSV(){const e=G.R.getImagesData().map(e=>Xe.wrapRectLabelsIntoCSV(e)).filter(e=>!!e).join("\n"),t=`${Ye.getExportFileName()}.csv`;Ye.saveAs(e,t)}static wrapRectLabelsIntoCSV(e){if(0===e.labelRects.length||!e.loadStatus)return null;const t=De.U.getById(e.image_id),a=G.R.getLabelNames();return e.labelRects.map(s=>{const l=(0,B.findLast)(a,{id:s.labelId});return(l?[l.name,Math.round(s.rect.x).toString(),Math.round(s.rect.y).toString(),Math.round(s.rect.width).toString(),Math.round(s.rect.height).toString(),e.fileData.name,t.width.toString(),t.height.toString()]:[]).join(",")}).join("\n")}}class Ke{static export(e){e===Ne.CSV&&Ke.exportAsCSV()}static exportAsCSV(){const e=G.R.getImagesData().map(e=>Ke.wrapRectLabelsIntoCSV(e)).filter(e=>!!e).join("\n"),t=`${Ye.getExportFileName()}.csv`;Ye.saveAs(e,t)}static wrapRectLabelsIntoCSV(e){if(0===e.labelPoints.length||!e.loadStatus)return null;const t=De.U.getById(e.image_id),a=G.R.getLabelNames();return e.labelPoints.map(s=>{const l=(0,B.findLast)(a,{id:s.labelId});return(l?[l.name,Math.round(s.point.x).toString(),Math.round(s.point.y).toString(),e.fileData.name,t.width.toString(),t.height.toString()]:[]).join(",")}).join("\n")}}class Ze{static export(){const e=G.R.getImagesData(),t=G.R.getLabelNames(),a=JSON.stringify(Ze.mapImagesDataToVGGObject(e,t)),s=`${Ye.getExportFileName()}.json`;Ye.saveAs(a,s)}static mapImagesDataToVGGObject(e,t){return e.reduce((e,a)=>{const s=Ze.mapImageDataToVGGFileData(a,t);return s&&(e[a.fileData.name]=s),e},{})}static mapImageDataToVGGFileData(e,t){const a=Ze.mapImageDataToVGG(e,t);return a?{fileref:"",size:e.fileData.size,filename:e.fileData.name,base64_img_data:"",file_attributes:{},regions:a}:null}static mapImageDataToVGG(e,t){if(!e.loadStatus||!e.labelPolygons||!e.labelPolygons.length||!t||!t.length)return null;const a=Ze.getValidPolygonLabels(e);return a.length?a.reduce((e,a,s)=>{const l=(0,B.findLast)(t,{id:a.labelId});return l&&(e[s.toString()]={shape_attributes:Ze.mapPolygonToVGG(a.vertices),region_attributes:{label:l.name}}),e},{}):null}static getValidPolygonLabels(e){return e.labelPolygons.filter(e=>null!==e.labelId&&!!e.vertices.length)}static mapPolygonToVGG(e){if(!e||!e.length)return null;return{name:"polygon",all_points_x:e.map(e=>e.x).concat(e[0].x),all_points_y:e.map(e=>e.y).concat(e[0].y)}}}class Qe{static export(){const e=G.R.getImagesData(),t=G.R.getLabelNames(),a=We.o.getProjectName(),s=Qe.mapImagesDataToCOCOObject(e,t,a),l=JSON.stringify(s),n=`${Ye.getExportFileName()}.json`;Ye.saveAs(l,n)}static mapImagesDataToCOCOObject(e,t,a){return{info:Qe.getInfoComponent(a),images:Qe.getImagesComponent(e),annotations:Qe.getAnnotationsComponent(e,t),categories:Qe.getCategoriesComponent(t)}}static getInfoComponent(e){return{description:e}}static getCategoriesComponent(e){return e.map((e,t)=>({id:t+1,name:e.name}))}static getImagesComponent(e){return e.filter(e=>e.loadStatus).filter(e=>0!==e.labelPolygons.length).map((e,t)=>{const a=De.U.getById(e.image_id);return{id:t+1,width:a.width,height:a.height,file_name:e.fileData.name}})}static getAnnotationsComponent(e,t){const a=Qe.mapLabelsData(t);let s=0;const l=e.filter(e=>e.loadStatus).filter(e=>0!==e.labelPolygons.length).map((e,t)=>e.labelPolygons.map(e=>({id:s++,iscrowd:0,image_id:t+1,category_id:a[e.labelId],segmentation:Qe.getCOCOSegmentation(e.vertices),bbox:Qe.getCOCOBbox(e.vertices),area:Qe.getCOCOArea(e.vertices)})));return(0,B.flatten)(l)}static mapLabelsData(e){return e.reduce((e,t,a)=>(e[t.id]=a+1,e),{})}static getCOCOSegmentation(e){const t=e.map(e=>[e.x,e.y]);return[(0,B.flatten)(t)]}static getCOCOBbox(e){let t=e[0].x,a=e[0].x,s=e[0].y,l=e[0].y;for(const n of e)t>n.x&&(t=n.x),a<n.x&&(a=n.x),s>n.y&&(s=n.y),l<n.y&&(l=n.y);return[t,s,a-t,l-s]}static getCOCOArea(e){let t=0,a=e.length-1;for(let s=0;s<e.length;s++)t+=(e[a].x+e[s].x)*(e[a].y-e[s].y),a=s;return Math.abs(t/2)}}class et{static export(e){switch(e){case Ne.VGG:Ze.export();break;case Ne.COCO:Qe.export();break;default:return}}}class tt{static export(e){e===Ne.CSV&&tt.exportAsCSV()}static exportAsCSV(){const e=G.R.getImagesData().map(e=>tt.wrapLineLabelsIntoCSV(e)).filter(e=>!!e).join("\n"),t=`${Ye.getExportFileName()}.csv`;Ye.saveAs(e,t)}static wrapLineLabelsIntoCSV(e){if(0===e.labelLines.length||!e.loadStatus)return null;const t=De.U.getById(e.image_id),a=G.R.getLabelNames();return e.labelLines.map(s=>{const l=(0,B.findLast)(a,{id:s.labelId});return(l?[l.name,Math.round(s.line.start.x).toString(),Math.round(s.line.start.y).toString(),Math.round(s.line.end.x).toString(),Math.round(s.line.end.y).toString(),e.fileData.name,t.width.toString(),t.height.toString()]:[]).join(",")}).join("\n")}}class at{static export(e){switch(e){case Ne.CSV:at.exportAsCSV();break;case Ne.JSON:at.exportAsJSON();break;default:return}}static exportAsCSV(){const e=G.R.getImagesData().filter(e=>e.labelTags.length>0).map(e=>at.wrapLabelNamesIntoCSV(e)).join("\n"),t=`${Ye.getExportFileName()}.csv`;Ye.saveAs(e,t)}static exportAsJSON(){const e=G.R.getImagesData().filter(e=>e.labelTags.length>0).map(e=>({image:e.fileData.name,annotations:at.wrapLabelNamesIntoJSON(e)})),t=JSON.stringify(e),a=`${Ye.getExportFileName()}.json`;Ye.saveAs(t,a)}static wrapLabelNamesIntoCSV(e){if(0===e.labelTags.length||!e.loadStatus)return null;const t=G.R.getLabelNames(),a=e.labelTags.map(e=>(0,B.findLast)(t,{id:e}).name);return(0!==a.length?[e.fileData.name,`"[${a.toString()}]"`]:[]).join(",")}static wrapLabelNamesIntoJSON(e){if(0===e.labelTags.length||!e.loadStatus)return[];const t=G.R.getLabelNames();return e.labelTags.map(e=>(0,B.findLast)(t,{id:e}).name)}}const st={[ye.H.RECT]:[{type:Ne.YOLO,label:"A .zip package containing files in YOLO format."},{type:Ne.VOC,label:"A .zip package containing files in VOC XML format."},{type:Ne.CSV,label:"Single CSV file."}],[ye.H.POINT]:[{type:Ne.CSV,label:"Single CSV file."}],[ye.H.LINE]:[{type:Ne.CSV,label:"Single CSV file."}],[ye.H.POLYGON]:[{type:Ne.VGG,label:"Single file in VGG JSON format."},{type:Ne.COCO,label:"Single file in COCO JSON format."}],[ye.H.POLYLINE]:[{type:Ne.VGG,label:"Single file in VGG JSON format."},{type:Ne.COCO,label:"Single file in COCO JSON format."}],[ye.H.TAG]:[{type:Ne.CSV,label:"Single CSV file."},{type:Ne.JSON,label:"Single JSON file."}],[ye.H.IMAGE_RECOGNITION]:[{type:Ne.CSV,label:"Single CSV file."},{type:Ne.JSON,label:"Single JSON file."}]},lt=(0,l.Ng)(e=>({activeLabelType:e.labels.activeLabelType,imagesData:e.labels.imagesData}),{})(e=>{let{activeLabelType:t,imagesData:a}=e;
1const[l,n]=(0,s.useState)(t),[i,o]=(0,s.useState)(null),[d,c]=(0,s.useState)(null),[u,g]=(0,s.useState)(null),h=e=>e.map(e=>(0,x.jsxs)("div",{className:"OptionsItem",onClick:()=>(e=>{o(e)})(e.type),children:[e.type===i?(0,x.jsx)("img",{draggable:!1,src:"/ico/checkbox-checked.png",alt:"checked"}):(0,x.jsx)("img",{draggable:!1,src:"/ico/checkbox-unchecked.png",alt:"unchecked"}),e.label]},e.type));return(0,x.jsx)(je,{activeLabelType:l,title:`Export ${l.toLowerCase()} annotations`,onLabelTypeChange:e=>{n(e),o(null)},acceptLabel:"Export",onAccept:async e=>{g(null);try{switch(await r.y.hydrate(a,(e,t)=>{c(t>0?`Preparing images ${e}/${t}\u2026`:"Preparing export\u2026")}),e){case ye.H.RECT:Xe.export(i);break;case ye.H.POINT:Ke.export(i);break;case ye.H.LINE:tt.export(i);break;case ye.H.POLYGON:et.export(i);break;case ye.H.IMAGE_RECOGNITION:at.export(i)}ne.w.close()}catch(t){c(null),g("Some images could not be loaded. Retry the export.")}},disableAcceptButton:!i||Boolean(d),rejectLabel:"Cancel",onReject:e=>{ne.w.close()},renderInternalContent:e=>[(0,x.jsx)("div",{className:"Message",children:"Select label type and the file format you would like to use to export labels."}),d?(0,x.jsx)("div",{className:"Message",children:d}):null,u?(0,x.jsx)("div",{className:"Message text-danger",children:u}):null,(0,x.jsx)("div",{className:"Options",children:h(st[e])})]})}),nt=(0,l.Ng)(e=>({activePopupType:e.general.activePopupType}))(e=>{let{activePopupType:t}=e;return t&&(0,x.jsx)("div",{className:"PopupView",children:(()=>{switch(t){case L.R.LOAD_LABEL_NAMES:return(0,x.jsx)(F,{});case L.R.EXPORT_ANNOTATIONS:return(0,x.jsx)(lt,{});case L.R.IMPORT_ANNOTATIONS:return(0,x.jsx)(Ve,{});case L.R.INSERT_LABEL_NAMES:return(0,x.jsx)(le,{isUpdate:!1});case L.R.UPDATE_LABEL:return(0,x.jsx)(le,{isUpdate:!0});case L.R.EXIT_PROJECT:return(0,x.jsx)(oe,{});case L.R.IMPORT_IMAGES:return(0,x.jsx)(de,{});case L.R.SUGGEST_LABEL_NAMES:return(0,x.jsx)(ve,{});case L.R.LOADER:return(0,x.jsx)(fe.A,{size:50,color:xe.getLeadingColor(),loading:!0});default:return null}})()})}),it=()=>(0,x.jsxs)("div",{className:"SizeItUpView",children:[(0,x.jsx)("p",{className:"extraBold",children:"Ops... This window is to tight for me!"}
1),(0,x.jsx)("img",{draggable:!1,alt:"small_window",src:"ico/small_window.png"}),(0,x.jsxs)("p",{className:"extraBold",children:["Please... make it at least ",q.w.EDITOR_MIN_WIDTH," x ",q.w.EDITOR_MIN_HEIGHT," px."]})]});var ot=function(e){return e.IN="IN",e.DISPLAY="DISPLAY",e.OUT="OUT",e.IDLE="IDLE",e}(ot||{}),rt=function(e){return e.IN="animation-in",e.DISPLAY="animation-display",e.OUT="animation-out",e}(rt||{});const dt={deleteNotificationByIdAction:function(e){return{type:X.r.DELETE_NOTIFICATION_BY_ID,payload:{id:e}}}},ct=(0,l.Ng)(e=>({queue:e.notifications.queue}),dt)(e=>{const[t,a]=(0,s.useState)(ot.IDLE);e.queue.length>0&&t===ot.IDLE&&a(ot.IN);const l=e.queue[0],n=()=>{a(ot.OUT)},i=t=>{switch(t.animationName){case rt.IN:a(ot.DISPLAY);break;case rt.DISPLAY:a(ot.OUT);break;case rt.OUT:e.deleteNotificationByIdAction(l.id),a(ot.IDLE)}};return t!==ot.IDLE?(0,x.jsx)("div",{className:A()("notification-wrapper",{in:t===ot.IN,display:t===ot.DISPLAY,out:t===ot.OUT}),onAnimationEnd:i,onClick:n,children:(0,x.jsxs)("div",{className:A()("notification",{error:l.type===Z.ERROR,success:l.type===Z.SUCCESS,message:l.type===Z.MESSAGE,warning:l.type===Z.WARNING}),children:[(0,x.jsx)("div",{className:"header",children:l.header}),(0,x.jsx)("div",{className:"content",children:l.description}),(0,x.jsx)("div",{className:"loader"})]})},l.id):null});a(65645),a(28611);var ut=a(97950);class gt extends s.Component{constructor(e){super(e),this.isLoading=!1,this.imageRef=s.createRef(),this.containerRef=s.createRef(),this.observer=null,this.loadImage=async e=>{const t=De.U.getById(e.image_id);if(e.loadStatus&&t){const e=t;this.state.image!==e&&this.setState({image:e,loadError:!1})}else this.isLoading||(this.isLoading=!0,r.y.load(e,"background").then(t=>{let{image:a}=t;return this.saveLoadedImage(a,e)}).catch(e=>this.handleLoadImageError(e)))},this.saveLoadedImage=(e,t)=>{t.loadStatus=!0,this.props.updateImageDataById(t.image_id,t),De.U.storeImage(t.image_id,e),t.image_id===this.props.imageData.image_id&&(this.setState({image:e}),this.isLoading=!1)}
1,this.getStyle=()=>{const{size:e}=this.props,t={x:.15*e.width,y:.15*e.height,width:.7*e.width,height:.7*e.height},a={x:0,y:0,width:this.state.image.width,height:this.state.image.height},s=Je.v.getRatio(a),l=Je.v.fitInsideRectWithRatio(t,s);return{width:l.width,height:l.height,left:l.x,top:l.y}},this.handleLoadImageError=e=>{this.isLoading=!1,"AbortError"!==(null===e||void 0===e?void 0:e.name)&&this.setState({loadError:!0})},this.getClassName=()=>A()("ImagePreview",{selected:this.props.isSelected}),this.scrollIntoView=()=>{const e=this.imageRef.current;e&&e.scrollIntoView({behavior:"smooth",block:"nearest"})},this.state={image:null,loadError:!1}}componentDidMount(){this.props.isSelected&&this.loadImage(this.props.imageData),"IntersectionObserver"in window?(this.observer=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&this.loadImage(this.props.imageData)},{rootMargin:"250px"}),this.containerRef.current&&this.observer.observe(this.containerRef.current)):this.loadImage(this.props.imageData)}componentWillUnmount(){var e;null===(e=this.observer)||void 0===e||e.disconnect()}componentDidUpdate(e){this.props.imageData.image_id!==e.imageData.image_id&&(this.props.imageData.loadStatus?this.loadImage(this.props.imageData):this.setState({image:null})),this.props.isScrolling&&!e.isScrolling&&this.loadImage(this.props.imageData),this.props.isSelected&&!e.isSelected&&(this.scrollIntoView(),this.loadImage(this.props.imageData))}shouldComponentUpdate(e,t,a){var s,l;const n=null===(s=this.props.annotationCounts)||void 0===s?void 0:s[this.props.index],i=null===(l=e.annotationCounts)||void 0===l?void 0:l[e.index];return this.props.imageData.image_id!==e.imageData.image_id||this.state.image!==t.image||this.props.isSelected!==e.isSelected||this.props.isChecked!==e.isChecked||n!==i||this.props.imageData.flags.length>=0}render(){const{isChecked:e,style:t,onClick:a,imageData:s,annotationCounts:l,index:n}=this.props,i=l&&void 0!==l[n]?l[n]:0,o=s.labelRects.length+s.labelPoints.length+s.labelPolygons.length+s.labelPolylines.length+s.labelLines.length+s.labelTags.length,r=!0===s.seen&&o>0?o:i;var d=!1;const c=["labelRects","labelPoints","labelPolygons","labelPolylines","labelTags","labelLines","flags"];for(let g=0;g<c.length;g++){var u;null===(u=s[c[g]])||void 0===u||u.map(e=>{var t;(null===(t=e.comments)||void 0===t?void 0:t.length)>0&&(d=!0)})}return(0,x.jsx)("div",{className:this.getClassName(),style:{width:"150px",height:"150px"},onClick:a||void 0,ref:this.containerRef,children:this.state.image?[(0,x.jsxs)("div",{className:"Foreground",style:this.getStyle(),children:[(0,x.jsx)("img",{className:"Image",draggable:!1,src:this.state.image.src,alt:this.state.image.alt,style:{...this.getStyle(),left:0,top:0},ref:this.imageRef}),!0===s.seen?(0,x.jsx)("span",{className:"CheckBox rounded bg-primary text-white fw-bold p-1",style:{filter:s.seen?"none":"grayscale(1)"},children:r}):(0,x.jsx)("span",{className:"CheckBox rounded bg-primary text-white fw-bold p-1",style:{filter:!1===s.seen?"grayscale(1)":"none"},children:r}),(s.flags.length>0||d)&&(0,x.jsx)("img",{className:"Flags",draggable:!1,src:"/ico/Flag.png",alt:"checkbox"})]},"Foreground"),(0,x.jsx)("div",{className:"Background",style:this.getStyle()},"Background")]:this.state.loadError?(0,x.jsx)("button",{type:"button",className:"btn btn-sm btn-link",onClick:e=>{e.stopPropagation(),this.setState({loadError:!1},()=>this.loadImage(s))},children:"Retry"}):(0,x.jsx)(fe.A,{size:30,color:xe.getLeadingColor(),loading:!0})})}}const ht={updateImageDataById:n.jj},mt=(0,l.Ng)(e=>({annotationCounts:e.labels.annotationCounts||[]}),ht)(gt);var pt=a(84642);const bt=(0,l.Ng)(e=>({imagesData:e.labels.imagesData,activeLabelType:e.labels.activeLabelType}),{})(e=>{let{imagesData:t,activeLabelType:a}=e;const s=t.reduce((e,t)=>e+(t.labelPoints.length>0||0!==t.flags.length?1:0),.01),l=t.reduce((e,t)=>e+(t.labelRects.length>0||0!==t.flags.length?1:0),.01),n=t.reduce((e,t)=>e+(t.labelPolygons.length>0?1:0),.01),i=t.reduce((e,t)=>e+(t.labelPolylines.length>0?1:0),.01),o=t.reduce((e,t)=>e+(t.labelLines.length>0?1:0),.01),r=t.reduce((e,t)=>
1e+(0!==t.labelTags.length?1:0),.01),d=()=>{switch(a){case ye.H.POINT:return 100*s/t.length;case ye.H.RECT:return 100*l/t.length;case ye.H.POLYGON:return 100*n/t.length;case ye.H.POLYLINE:return 100*i/t.length;case ye.H.LINE:return 100*o/t.length;case ye.H.IMAGE_RECOGNITION:return 100*r/t.length;default:return.1}};return(0,x.jsxs)("div",{style:{width:"100%",display:"flex",alignItems:"center",gap:"5%"},children:[(0,B.round)(d())+"%",(0,x.jsx)("span",{className:"StateBar",children:(0,x.jsx)("div",{style:{width:d()+"%"},className:"done"})})]})});class vt extends s.Component{constructor(){super(...arguments),this.isImageChecked=e=>{const t=this.props.imagesData[e];switch(this.props.activeLabelType){case ye.H.LINE:return t.labelLines.length>0;case ye.H.IMAGE_RECOGNITION:return t.labelTags.length>0;case ye.H.POINT:return t.labelPoints.filter(e=>e.status===pt.$.ACCEPTED).length>0;case ye.H.POLYGON:return t.labelPolygons.length>0;case ye.H.POLYLINE:return t.labelPolylines.length>0;case ye.H.RECT:return t.labelRects.filter(e=>e.status===pt.$.ACCEPTED).length>0}return!1},this.onClickHandler=e=>{(0,h.bP)(e)}}render(){return(0,x.jsxs)("div",{className:"ImagesList",onClick:()=>p.v.switchCtx(k.E.LEFT_NAVBAR),children:[(0,x.jsxs)("div",{className:"ImagesList__header",children:[(0,x.jsxs)("div",{className:"d-a justify-content-between mb-3",children:[(0,x.jsx)("div",{children:" Images"}),(0,x.jsx)("h6",{className:"text-primary fw-bold m-0",children:this.props.imagesData.length})]}),(0,x.jsxs)("div",{className:"container-card my-2 py-1 px-3",children:[(0,x.jsx)(bt,{}),(0,x.jsx)("small",{className:"d-flex",style:{color:"gray",marginTop:"-4px"},children:"Percentage of Images Labeled "})]})]}),(0,x.jsx)("div",{className:"ImagesList__grid",children:this.props.imagesData.map((e,t)=>(0,x.jsx)(mt,{style:{width:"100%",height:150},size:{width:150,height:150},isChecked:this.isImageChecked(t),imageData:e,onClick:()=>this.onClickHandler(t),isSelected:this.props.activeImageIndex===t,index:t},e.id||t))})]})}}const xt=(0,l.Ng)(e=>({activeImageIndex:e.labels.activeImageIndex,imagesData:e.labels.imagesData,activeLabelType:e.labels.activeLabelType}),{})(vt);var ft=a(79690),yt=a(48117),wt=a(94412),jt=a(97929),Nt=a(37118),It=a(70626),Lt=a(57971),St=a(26259),At=a(6221);function Ct(e){var t;let{id:a,labelCollection:l}=e;const[i,o]=s.useState(""),[r,d]=s.useState(!1),c=l||G.R.getActiveLabelTypeName(),u=G.R.getActiveImageData(),g=null===u||void 0===u||null===(t=u[c])||void 0===t?void 0:t.find(e=>String(null===e||void 0===e?void 0:e.id)===String(a)),h=(0,s.useMemo)(()=>{var e;return null!==(e=null===g||void 0===g?void 0:g.comments)&&void 0!==e?e:[]},[null===g||void 0===g?void 0:g.comments]),m=r?h:h.slice(0,2),p=(0,s.useMemo)(()=>{var e,t;const a=(null!==(e=null===(t=localStorage.getItem("flags"))||void 0===t?void 0:t.split(","))&&void 0!==e?e:[]).map((e,t)=>({id:t,name:e})).filter(e=>!!e.name);return h.length?a.filter(e=>!h.find(t=>t.comment===e.name)):a},[h]),b=e=>{if(!g||!u)return;const t={...u,[c]:u[c].map(t=>String(t.id)===String(a)?{...t,comments:e}:t)};ce.M.dispatch((0,n.PD)(u.image_id,t)),o("")},v=e=>{if(e.preventDefault(),!i.replace(/\s{2,}/g," ").trim())return void window.alert("comment should not be empty");const t=new Date,a=t.toLocaleDateString(),s=t.toLocaleTimeString(),l=window.localStorage.getItem("name")||"default user";b([...h,{comment:i,timestamp:a+" || "+s,user_name:l,type:"comment"}])};return u&&g?(0,x.jsxs)("div",{className:"w-100 pb-0 mt-1 rounded",style:{background:"var(--bg-color8)"},children:[!!h.length&&(0,x.jsxs)("div",{className:"comment-list-container",style:{maxHeight:"320px",overflowY:"auto"},children:[(0,x.jsx)("ul",{className:"pl-0 mb-0",children:m.map((e,t)=>(0,x.jsxs)("li",{className:window.localStorage.getItem("name")===e.user_name?"current-user p-1 pt-2 px-3 mt-1 container-card w-100":"p-1 px-3 mt-1 container-card w-100",style:{listStyle:"none"},children:[(0,x.jsxs)("div",{className:"d-flex justify-content-between w-100",children:[(0,x.jsxs)("span",{style:{fontSize:14},children:[e.user_name," ","flag"===e.type&&(0,x.jsx)(wt.g,{icon:jt.s6x,color:"rgb(105, 199, 255)"})]}),(0,x.jsx)("span",{className:"text-right",style:{fontSize:12},children:e.timestamp})]}),(0,x.jsxs)("div",{className:"d-flex align-items-start justify-content-between w-100",children:[(0,x.jsx)("h6",{className:window.localStorage.getItem("name")===e.user_name?"text-break m-0":"text-primary text-break m-0",style:{wordBreak:"break-word",overflowWrap:"break-word",whiteSpace:"normal"},children:e.comment}),window.localStorage.getItem("name")===e.user_name&&(0,x.jsx)("button",{className:"cursor-pointer plain-button2 text-danger p-1",onClick:t=>{var a,s;t.preventDefault(),a=e.comment,s=e.timestamp,b(h.filter(e=>e.comment!==a||e.timestamp!==s))},children:(0,x.jsx)(Lt.d7,{className:"text-danger wf-icon"})})]})]},t))}),h.length>2&&(0,x.jsx)("div",{className:"text-center m-1 grey-card10 rounded cursor-pointer",onClick:()=>d(e=>!e),children:(0,x.jsx)(St.A,{color:"link",className:"p-0",style:{fontSize:"90%",textDecoration:"none"},children:r?"View less":"View more"})})]}),(0,x.jsxs)("div",{className:"grey-card10 p-2 w-100 mt-2 rounded",children:[(0,x.jsxs)("div",{className:"TagLabelsListContent",children:[p.length>0&&(0,x.jsx)("div",{className:"ps-1 mx-0 w-100 fw-bold mb-2",children:"Default flags"}),p.map(e=>(0,x.jsx)("div",{className:"TagItem badge border text-primary m-1 py-2 px-3 cursor-pointer",onClickCapture:t=>{t.preventDefault(),(e=>{const t=new Date,a=t.toLocaleDateString(),s=t.toLocaleTimeString(),l=window.localStorage.getItem("name")||"default user";b([...h,{comment:e,timestamp:a+" || "+s,user_name:l,type:"flag"}])})(e.name)},children:e.name},e.id))]},"label-comments-flags"),(0,x.jsxs)(At.A,{className:"pt-3 w-100 pb-0",onSubmit:v,children:[(0,x.jsx)("textarea",{className:"container-card p-2",style:{width:"100%",height:120},placeholder:"Enter the comment",onKeyDown:e=>{"Enter"===e.key&&!1===e.shiftKey&&i&&(e.preventDefault(),v(e))},onChange:e=>{e.preventDefault(),o(e.target.value)},value:i}),(0,x.jsx)(St.A,{type:"submit",className:"d-j-a rounded border p-1 px-3 mt-2 w-100",color:"primary",children:"Add Flag"})]})]})]}):null}const kt=(e,t)=>
1{const a=t.trim().toLowerCase();return a?e.filter((e,t)=>e.name.toLowerCase().includes(a)||String(t).includes(a)):e},Pt=function(e,t,a){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"start",l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:window.innerWidth,n=arguments.length>5&&void 0!==arguments[5]?arguments[5]:window.innerHeight;const i=Math.max(0,Math.min(t,l-16)),o=Math.max(0,Math.min(a,n-16)),r="end"===s?e.right-i:e.left,d=Math.max(8,Math.min(r,l-i-8));return{top:e.bottom+o+4<=n-8?e.bottom+4:Math.max(8,Math.min(e.top-o-4,n-o-8)),left:d,width:i,height:o}};class Et extends s.Component{constructor(e){super(e),this.dropdownOptionHeight=30,this.dropdownOptionCount=6,this.dropdown=null,this.dropdownLabel=null,this.flagButton=null,this.flagPanel=null,this.openDropdown=e=>{e.stopPropagation(),0!==this.props.options.length&&this.setState({isOpen:!0,searchQuery:""},()=>{this.dropdown&&(this.updateDropdownPosition(),window.addEventListener(ft.B.MOUSE_DOWN,this.closeDropdown,!0),window.addEventListener("resize",this.updateDropdownPosition),window.addEventListener("scroll",this.updateDropdownPosition,!0))})},this.closeDropdown=e=>{var t,a;null!==(t=this.dropdown)&&void 0!==t&&t.contains(e.target)||null!==(a=this.dropdownLabel)&&void 0!==a&&a.contains(e.target)||this.closeLabelDropdown()},this.getDropdownStyle=()=>{var e;const t=Math.max(1,Math.min(this.getFilteredOptions().length,this.dropdownOptionCount))*this.dropdownOptionHeight,a=null===(e=this.dropdownLabel)||void 0===e?void 0:e.getBoundingClientRect(),s=t+42;return{position:"fixed",...Pt(a||{top:8,bottom:8,left:8,right:8,width:0},Math.max((null===a||void 0===a?void 0:a.width)||0,220),s),zIndex:9999,overflow:"hidden"}},this.updateDropdownPosition=()=>{if(!this.dropdown)return;const e=this.getDropdownStyle();this.dropdown.style.top=`${e.top}px`,this.dropdown.style.left=`${e.left}px`,this.dropdown.style.width=`${e.width}px`,this.dropdown.style.height=`${e.height}px`},this.getFilteredOptions=()=>kt(this.props.options,this.state.searchQuery),this.closeLabelDropdown=()=>{this.setState({isOpen:!1,searchQuery:""}),window.removeEventListener(ft.B.MOUSE_DOWN,this.closeDropdown,!0),window.removeEventListener("resize",this.updateDropdownPosition),window.removeEventListener("scroll",this.updateDropdownPosition,!0)},this.handleSearchKeyDown=e=>{if(e.stopPropagation(),"Escape"===e.key)return e.preventDefault(),e.stopPropagation(),void this.closeLabelDropdown();if("Enter"!==e.key)return;const[t]=this.getFilteredOptions();t&&(e.preventDefault(),e.stopPropagation(),this.selectLabel(t.id))},this.selectLabel=e=>{this.setState({isOpen:!1,searchQuery:""}),window.removeEventListener(ft.B.MOUSE_DOWN,this.closeDropdown,!0),window.removeEventListener("resize",this.updateDropdownPosition),window.removeEventListener("scroll",this.updateDropdownPosition,!0),this.props.onSelectLabel(this.props.id,e),this.props.updateHighlightedLabelId(null),this.props.updateActiveLabelId(this.props.id),It.j.requestRender()},this.getDropdownOptions=()=>this.getFilteredOptions().map(e=>{const t=this.props.options.findIndex(t=>t.id===e.id);return(0,x.jsxs)("span",{className:"DropdownOption text w-100 d-a gap-2",style:{height:this.dropdownOptionHeight},onClick:t=>{this.selectLabel(e.id),t.stopPropagation()},children:[(0,x.jsx)("span",{id:"label-index",style:{color:e.color,display:"inline-block",minWidth:32,textAlign:"right"},children:t}),(0,x.jsxs)("span",{id:"label-name mx-2",children:[" ",e.name]})]},e.id)}),this.mouseEnterHandler=()=>{this.props.updateHighlightedLabelId(this.props.id),It.j.requestRender()},this.mouseLeaveHandler=()=>{this.props.updateHighlightedLabelId(null),It.j.requestRender()},this.onClickHandler=()=>{this.props.updateActiveLabelId(this.props.id),It.j.requestRender()},this.toggleComments=e=>{e.stopPropagation(),this.setState(e=>({isCommentsOpen:!e.isCommentsOpen}),()=>{this.state.isCommentsOpen?(this.updateFlagPanelPosition(),window.addEventListener(ft.B.MOUSE_DOWN,this.closeFlagPanelOnOutsideClick),window.addEventListener("keydown",this.closeFlagPanelOnEscape),window.addEventListener("resize",this.updateFlagPanelPosition),window.addEventListener("scroll",this.updateFlagPanelPosition,!0)):this.removeFlagPanelListeners()})},this.removeFlagPanelListeners=()=>{window.removeEventListener(ft.B.MOUSE_DOWN,this.closeFlagPanelOnOutsideClick),window.removeEventListener("keydown",this.closeFlagPanelOnEscape),window.removeEventListener("resize",this.updateFlagPanelPosition),window.removeEventListener("scroll",this.updateFlagPanelPosition,!0)},this.closeFlagPanel=()=>{this.setState({isCommentsOpen:!1}),this.removeFlagPanelListeners()},this.closeFlagPanelOnOutsideClick=e=>{var t,a;null!==(t=this.flagPanel)&&void 0!==t&&t.contains(e.target)||null!==(a=this.flagButton)&&void 0!==a&&a.contains(e.target)||this.closeFlagPanel()},this.closeFlagPanelOnEscape=e=>{"Escape"===e.key&&this.closeFlagPanel()},this.getFlagPanelStyle=()=>{var e;const t=null===(e=this.flagButton)||void 0===e?void 0:e.getBoundingClientRect(),a=Math.min(420,Math.max(120,window.innerHeight-24)),s=Pt(t||{top:8,bottom:8,left:8,right:8,width:0},340,a,"end");
1return{position:"fixed",top:s.top,left:s.left,width:s.width,maxHeight:s.height,zIndex:1e4}},this.updateFlagPanelPosition=()=>{if(!this.flagPanel)return;const e=this.getFlagPanelStyle();this.flagPanel.style.top=`${e.top}px`,this.flagPanel.style.left=`${e.left}px`,this.flagPanel.style.width=`${e.width}px`,this.flagPanel.style.maxHeight=`${e.maxHeight}px`},this.state={animate:!1,isOpen:!1,searchQuery:"",isCommentsOpen:!1,tooltipKey:0}}componentDidMount(){requestAnimationFrame(()=>{this.setState({animate:!0})})}componentWillUnmount(){window.removeEventListener(ft.B.MOUSE_DOWN,this.closeDropdown,!0),window.removeEventListener("resize",this.updateDropdownPosition),window.removeEventListener("scroll",this.updateDropdownPosition,!0),window.removeEventListener(ft.B.MOUSE_DOWN,this.closeFlagPanelOnOutsideClick),window.removeEventListener("keydown",this.closeFlagPanelOnEscape),window.removeEventListener("resize",this.updateFlagPanelPosition),window.removeEventListener("scroll",this.updateFlagPanelPosition,!0)}getClassName(){return A()("LabelInputField container-card p-3 mb-2 w-100",{loaded:this.state.animate,active:this.props.isActive,highlighted:this.props.isHighlighted})}render(){var e,t,a;const{size:s,id:l,value:n,onDelete:i,onHide:o,show:r,onChecked:d}=this.props,c=this.props.options.length>0,u=this.getDropdownOptions();var g,h=this.props.labelCollection||G.R.getActiveLabelTypeName();this.props.checked;return g=[...G.R.getActiveImageData()[h]].filter(e=>String(e.id)===String(l)),g=null===(e=g[0])||void 0===e?void 0:e.comments,!this.props.checked&&this.props.selectAll&&d(l,!1),(0,x.jsx)("div",{className:this.getClassName(),style:{width:s.width},onMouseEnter:this.mouseEnterHandler,onMouseLeave:this.mouseLeaveHandler,onClick:this.onClickHandler,children:(0,x.jsxs)("div",{className:"",style:{width:"100%"},children:[(0,x.jsxs)("div",{className:"label-input-row d-a gap-2",children:["RECT"==G.R.getActiveLabelType()&&(0,x.jsxs)(x.Fragment,{children:[this.props.checked&&this.props.selectAll&&(0,x.jsx)("input",{type:"checkbox",checked:!0,className:"mx-1 cursor-pointer",onClick:e=>{d(l,!1)}}),this.props.checked&&!this.props.selectAll&&(0,x.jsx)("input",{type:"checkbox",checked:!0,className:"mx-1 cursor-pointer",onClick:e=>{d(l,!1)}}),!this.props.checked&&!this.props.selectAll&&(0,x.jsx)("input",{type:"checkbox",checked:!1,className:"mx-1 cursor-pointer",onClick:e=>{d(l,!0)}}),!this.props.checked&&this.props.selectAll&&(0,x.jsx)("input",{type:"checkbox",checked:!0,className:"mx-1 cursor-pointer",onClick:e=>{d(l,!1)}})]}),"POLYGON"==G.R.getActiveLabelType()&&(0,x.jsxs)(x.Fragment,{children:[this.props.checked&&this.props.selectAll&&(0,x.jsx)("input",{type:"checkbox",checked:!0,className:"mx-1 cursor-pointer",onClick:e=>{d(l,!1)}}),this.props.checked&&!this.props.selectAll&&(0,x.jsx)("input",{type:"checkbox",checked:!0,className:"mx-1 cursor-pointer",onClick:e=>{d(l,!1)}}),!this.props.checked&&!this.props.selectAll&&(0,x.jsx)("input",{type:"checkbox",checked:!1,className:"mx-1 cursor-pointer",onClick:e=>{d(l,!0)}}),!this.props.checked&&this.props.selectAll&&(0,x.jsx)("input",{type:"checkbox",checked:!0,className:"mx-1 cursor-pointer",onClick:e=>{d(l,!1)}})]}),"POLYLINE"==G.R.getActiveLabelType()&&(0,x.jsxs)(x.Fragment,{children:[this.props.checked&&this.props.selectAll&&(0,x.jsx)("input",{type:"checkbox",checked:!0,className:"mx-1 cursor-pointer",onClick:e=>{d(l,!1)}}),this.props.checked&&!this.props.selectAll&&(0,x.jsx)("input",{type:"checkbox",checked:!0,className:"mx-1 cursor-pointer",onClick:e=>{d(l,!1)}}),!this.props.checked&&!this.props.selectAll&&(0,x.jsx)("input",{type:"checkbox",checked:!1,className:"mx-1 cursor-pointer",onClick:e=>{d(l,!0)}}),!this.props.checked&&this.props.selectAll&&(0,x.jsx)("input",{type:"checkbox",checked:!0,className:"mx-1 cursor-pointer",onClick:e=>{d(l,!1)}})]}),n&&(0,x.jsx)(Nt.FS,{title:"change color",children:(0,x.jsx)("div",{className:"border rounded-img",children:(0,x.jsx)(yt.A,{color:n.color,close:e=>{$.o.onChangeColor(n.id,n.name,e)}})})}),(0,x.jsxs)("div",{className:"ContentWrapper text input rounded m-0 px-2 py-0 bg-transparent dropdown-wrapper label-input-dropdown",style:{background:"var(--card-color)"},children:[(0,x.jsx)("div",{className:"text w-100 p-0 bg-transparent cursor-pointer btn-click d-a",ref:e=>this.dropdownLabel=e,onClick:this.openDropdown,children:(0,x.jsxs)("div",{className:"d-a justify-content-between w-100 p-0",children:[(0,x.jsxs)("span",{className:"d-flex flex-column align-items-start",children:[(0,x.jsx)("span",{children:n?n.name:c?"Select label":"No labels available"}),this.props.trackDisplayNumber&&(0,x.jsxs)("small",{style:{color:"var(--text-color, #333)",fontSize:13,fontWeight:700},children:["#",this.props.trackDisplayNumber]})]}),c&&(0,x.jsx)(wt.g,{icon:jt.tdl,className:"text-secondary"})]})}),this.state.isOpen&&(0,ut.createPortal)((0,x.jsxs)("div",{className:"custom-dropdown-menu",style:this.getDropdownStyle(),ref:e=>this.dropdown=e,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:[(0,x.jsx)("input",{type:"search",className:"label-search-input",value:this.state.searchQuery,placeholder:"Search labels...","aria-label":"Search labels",autoF
1ocus:!0,onChange:e=>this.setState({searchQuery:e.target.value}),onKeyDown:this.handleSearchKeyDown,onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation()}),(0,x.jsx)("div",{className:"label-options-scroll",children:(0,x.jsx)(U.Ay,{className:"cursor-pointer btn-click",renderTrackHorizontal:e=>(0,x.jsx)("div",{...e,className:"track-horizontal cursor-pointer btn-click"}),children:(0,x.jsx)("div",{children:u.length>0?u:(0,x.jsx)("div",{className:"label-search-empty",children:"No labels found"})})})})]}),document.body)]}),(0,x.jsx)("button",{className:"plain-button2 p-0 label-input-visibility",onClick:()=>o(l),title:r?"hide":"show",children:r?(0,x.jsx)(Lt.bM,{className:"wf-icon-small text"}):(0,x.jsx)(Lt.aR,{className:"wf-icon-small text"})}),(0,x.jsx)("div",{className:"ContentWrapper label-input-flag",children:(0,x.jsx)(Nt.FS,{title:"Add Flag for label",children:(0,x.jsxs)("button",{type:"button",className:"plain-button2 p-0 position-relative d-a gap-1",onClick:this.toggleComments,ref:e=>this.flagButton=e,"aria-expanded":this.state.isCommentsOpen,children:[(null===(t=g)||void 0===t?void 0:t.length)>0&&(0,x.jsx)("span",{style:{position:"absolute",top:-7,right:8,background:"#1a73e8",padding:"1px 5px",borderRadius:15,fontSize:9,zIndex:8,color:"white",fontWeight:"600"},children:null===(a=g)||void 0===a?void 0:a.length}),(0,x.jsx)("img",{src:"/ico/Flag.png",alt:"Flags",className:"wf-flag-icon",style:{width:"12px"}}),(0,x.jsx)(wt.g,{icon:jt.tdl,className:"text-secondary",style:{transform:this.state.isCommentsOpen?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.2s ease"}})]})})}),(0,x.jsx)("button",{className:"plain-button2 p-0 btn-click label-input-delete",onClick:()=>i(l),title:"delete",children:(0,x.jsx)(Lt.d7,{className:"wf-icon text"})})]}),this.props.isCreatedbyAI&&(0,x.jsx)("div",{className:"label-input-ai",title:"AI Generated","aria-label":"AI Generated",children:(0,x.jsx)(Lt.v8,{className:"text-primary"})}),this.state.isCommentsOpen&&(0,ut.createPortal)((0,x.jsx)("div",{className:"label-flag-popover",style:this.getFlagPanelStyle(),ref:e=>this.flagPanel=e,onClick:e=>e.stopPropagation(),children:(0,x.jsx)(Ct,{id:l,labelCollection:this.props.labelCollection})}),document.body)]})},l)}}const Tt={updateHighlightedLabelId:n.Sg,updateActiveLabelId:n.vD,updateActivePopupType:o.IX},Rt=(0,l.Ng)(e=>({}),Tt)(Et),_t=(0,l.Ng)(e=>({firstLabelCreatedFlag:e.labels.firstLabelCreatedFlag}),{})(e=>{let{firstLabelCreatedFlag:t,labelBefore:a,labelAfter:s}=e;const l=(0,x.jsx)(x.Fragment,{children:(0,x.jsxs)("p",{className:"extraBold",children:[a," ",(0,x.jsx)("img",{draggable:!1,style:{width:"30px",height:"30px",marginTop:"-5px",borderRadius:"50%"},alt:"lets_start",src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAAAclBMVEX///9VVVVSUlJFRUVOTk5LS0tDQ0NISEhBQUH39/f7+/vy8vL5+flqamrs7Ozm5ubg4OBlZWWGhobR0dFaWlqbm5uysrKVlZV/f3+Pj4+9vb2rq6vW1tbOzs7CwsJeXl5xcXF3d3eBgYGsrKyioqI3NzdAt++bAAAJ5klEQVR4nO2c6XqqOhSGSwaiUhVbtc5D67n/WzwCZg4Q2hB0P+v9d47dkJBkDd9a8PYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9Mj8tN9+3XaHydAD6YndGTNyhzL8fRx6MD1wODOUcBA774YeUGhWqZxfNcfkc+gxBeXKEhOUfg09qoBsqTXBO/Q69LiC8Zm6Jnif4sfQIwvEBCH3DBO8H3psYdiSmgnepzgfenAhOODaCSbonziKy7o9WpDmQw/v79ycdpRDbkOP78/MG/ZosU0XQw/wz1ya9mgxxfehR/hHTs1LeLem2dBD/BuTpGUJX36Gq0YzU+7S104W56PWCU6HHuPfuLbt0Vf3Fsc2M3P3+K8dtrWamQRthh7jn2iOZkrwSyf6s/Y9Gj6iGefH03E+Dn1ZN9+tezTBYTW3/LagmDGG6XQdYZJNSRNfwkvIG56mKeEPFVH21XsocfZYwkO42x0WTL8hwT0LlmtbXbOWMKAhNdXK8gFuw13f5r1euZAjmIW62/zsFvP69EWr9hmSVaibfbKaE8H6i5hmNfqhtoShzN2uPvod9SaSbNrNDF0Hutd6CKXLx1MsA91r3Zi/pMHOuo6Ppwjk7E/N5yHYTtHZeXiKS5hb5S0HHvVSOJi0r2CCw5iAjLQJXecg9zHwyClIIGe8cExQr5KgMDfS8MgpQulPX/azJPSyococSQ860Ee7s6c/Qe50sA8h/rgbz5li6XpYQ8dtTUJ5Crsi8oi2j8LU9XEOp9E8hR3cj07VL+/iKfcgk5zieQpLBhqJfEnMsActr119CuUprMAJn/hP0tgx93aZHXe74+9kvnU8T2GkLyiVqtZJjMIV3uerJGWUMpzcupv0cfsEExZIXtAPPEqUJfkQaoYdeecXLB4NSTs3EnikhYE8xdtEv+pUWaxM2AJqKhnjrS4GsGm36p5HWhgspxirDxNr3Uc38RM2xn9k5hKQboUTD2cfTgNWntpIW6qxsDPmkb85VoB2sba5R1oYzj+Jx8kWulX8kkuo/7B1ji/tYBc8nP0oXEY6XhbxJ6LMsBbSVRiP89ttBjsYBo9SEw2mPt2ZrJYYbXZmaC2Piq7SbGrsfIcAxJXKmFcLHOk7LiePCtGy349aR0Z97+YRr7EIfbNSBKPqAbvVj877ILbb0RjNMzKWk0HcnWODXuUbRe49qoUB6xR1TJ3hTNb0+D3bBz3iNRKhnVRaO22P6iaCMKSq5J679Kt9k4YKSJsQ2T1TZURd7UhXs8ns0lUG8BBnaIR2WaFjai5gp4UyVVT1LmboqYu3x2vBAtImRHaq1rX05kFeVhR9vX5Pvk2YTYJXtJ2I7FTdoxNNzqFb82/9TGlbB2KcvpIJH7TWabVRt5f8hScgfnvr+B+lLepzuHJoPUKKVvuQ9qqrR0hYO+5W/Cob+fG0/roSTGtn2SlH+SUZn6B6snRxU0aqIrijXcqY+c8Cuy0OSiK0IHKHpYZOuqvHcr34uepcic63qWuOWgTVEzMemKkpxdRpZZTO3rR7JTr7wtZejdJjyR2Wuiqaq1fXlkcGvzs9+dSM4wMppM135QdOCZ12qidUrIyUy4mXELVd7XL9mN30ZSQx3lLjvazKfplrViaVcb9wK575fUooRtcfNUI/aL6DRujHF1mTfJy6q1esjHQrfiFpVj4pRNPlXvq87CwNToy8V5oUeQy1Sq36npzQUz1HdhDRLmUbEZpNLnyKUczM0Z
1aftHBUS755SOpbetspjwrhhZjj9HGdGK82qa0Dj8RwrIejSuYm8iBfH6Yr+QhfH3t1UqWdMfJeTWCosqFMS3pTVV34cEQGjZgN+YgH9lnZMxDllRHddJ93hz2tszLSrXjL73Z7EG97LGI/1k/Ljs6n7oDvBkHbV+Rb/WPhVi6eVx87ZDr6+Mdr1k8/i0lzyUvfjZ8iXlPtQ5bVR2/OYgW5VD9eRlGa8ZvLCWzm+lskFza7nRmm51vNJE/u5tXKvszivAXb+JqqLi4ItyJzyNuojE/uHt2tZ9zcO6TvLmuNphkahRtuYoWJH0/lErGLK/qqe+mgU2b5Rxp6IYmunojSg9AcFuoKkaXD8tdeOmSZqYWP2hmali4xE9+L0e+wtFL199qKR8RF3NUK7kxX7IWeyhNfq6aoe5aC+jeZRxHy+gfvdYNIDVOeGInvj70+qVlcqaupIRzD1XNqGj5HhkYrNNJH4qvJvKYJ4tSUnMgy7qcEXLYGmWGZTHyrp6++pUzRlFZHEhuXdh/yfl9XcTC3X7kgxHzIfKXRI/FVPtiB95O3cRWSm83vrnACRXWGFbk5RXw1LZ2Z+B7lHn1Ez+VOMMuJjk1KFxH0bYt5ojk2qxtKRq8PD6LsUX72yr8wyokOU4ojOkKVyQeXau+5xcp2VWIJH2GcUvHkGV4ZnxmNC0fTlCI63JfK8i3CxfuVF6sDpUBI4pWqosj9QnErEiuzj8rstmSXYb+RMPs85O5IIxPaRWVhpfUVcU9ZqTebDfTvB6HR875eL5awSncULyfmVPw/SzfTTClBEZotfok4hVXim8k9Klx8WbsamVNQJ8gs+/xEiCWs5qO8XMf4qIvVstrSZtLQIByoNbYXROdrlfgqLXhCSCpKqbboItTguzN66i8+icJUZSmlKxQiTj5KXNquSFvwc39cTrjtSrNRzAxPJcoih6PW9tjdQ4Rpndhoia9ytoSZKRbZJRFX2uMwYVoHpAhcZk3f0sWRh5kpD6arwa36Z0//EUsuAlctDJ+2mSnb4l3ideFVUM1rKU+EqC1WDbxL28wUj8Cpgd9N6dBhmg9iCctFutnRTCnfMNdR27EnDtME3JCiRP0v6Toqy+M2liv6vGGahOeF1RIqcSZXA4veGuJW5x1Z2BPC3Xu5DZX3zHmNu2zMIM9/2GoRpaPilWDlXSKeRZQxeYyWpt5YS4VtMlMqwzxCK6KBKIXq3pApLCVKZZh3pRS+HiVaReb9xXZsTe8rfSgdhXfUhNXsG49ea0ndr/Jw51Bo9lqnd14Iw+mTx9k6zgKxcA7F/NWo7Fg2rFnFi6fG9a0cxBvRyoBO+e7CT9nCSZ8+0tZwFamF+FREA0pAWr2h2PG90sFxfA5IFv4KOyO+8DK5lo6FLF7tm6qWqUlFmlS2ynDXP6+6DV9vgm8H/b01lMr4pQrDK0uzr5pieS/QS7FWC6GEKHbyEdGx7c8WVaEPs6rcL8FJtNejdKMGLDyVIrzj9/n1ihqyLWWUEIavhqMzGuLSmKX5wIyPP6v9yUrjtbrLk2u+vyOTpWOUxi7Nx+HAm9rw9R9cwJLsdiYkua5f+6PUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcfgfziBnvF/xUNcAAAAASUVORK5CYII="})]})}),n=(0,x.jsx)(x.Fragment,{children:(0,x.jsxs)("p",{className:"extraBold",children:[s,"!"]})});return(0,x.jsx)("div",{className:"EmptyLabelList",children:t?n:l})});var Dt=a(67069);var Ot=a(72679);function Mt(e){let{min:t,max:a,value:l,step:n,onChange:i}=e;const[o,r]=s.useState(l?l.min:t),[d,c]=s.useState(l?l.max:a);s.useEffect(()=>{l&&(r(l.min),c(l.max))},[l]);const u=(o-t)/(a-t)*100,g=(d-t)/(a-t)*100;return(0,x.jsxs)("div",{class:"range-slider",children:[(0,x.jsxs)("div",{class:"control-wrapper",children:[(0,x.jsx)("div",{class:"control",style:{width:`${g}%`,background:"#3755d3"}}),(0,x.jsx)("div",{class:"control",style:{width:`${u}%`,background:"#eee"}})]}),(0,x.jsxs)("div",{class:"",children:[(0,x.jsx)(Ot.A,{type:"range",value:o,minLength:t,maxLength:a,step:n,onChange:e=>{e.preventDefault();const t=Math.min(+e.target.value,d-n);l||r(t),i({min:t,max:d})}}),(0,x.jsx)(Ot.A,{type:"range",value:d,minLength:o,maxLength:a,step:n,onChange:e=>{e.preventDefault();const t=Math.max(+e.target.value,o+n);l||c(t),i({min:o,max:t})}})]})]})}var Bt=a(34265);const Vt={updateVideoTrackingEnabled:n.n4,updatePendingTrackId:n.Zj},Ht=(0,l.Ng)(e=>{var t;return{videoTrackingEnabled:e.labels.videoTrackingEnabled,pendingTrackId:e.labels.pendingTrackId,activeLabelId:e.labels.activeLabelId,activeImageIndex:e.labels.activeImageIndex,imagesData:e.labels.imagesData,labelNames:e.labels.labels,taskId:String((null===(t=e.general.projectData)||void 0===t?void 0:t.id)||"")}},Vt)(e=>{let{videoTrackingEnabled:t,pendingTrackId:a,activeLabelId:l,activeImageIndex:n,taskId:i,updateVideoTrackingEnabled:o,updatePendingTrackId:r,labelRects:d=[],toggleOnly:c=!1,actionsOnly:u=!1}=e;const[g,h]=(0,s.useState)([]),m=(0,s.useRef)(null),[p,b]=(0,s.useState)(null),v=t?Bt.d.listTracks():[],f=(0,s.useMemo)(()=>l&&d.find(e=>String(e.id)===String(l))||null,[l,d]),y=new Set(v.map(e=>e.trackId)),w=g.filter(e=>y.has(e));(0,s.useEffect)(()=>{h([]),b(null)},[i]),(0,s.useEffect)(()=>{b(null)},[n]),(0,s.useEffect)(()=>{if(!p)return;const e=e=>{var t;null!==(t=m.current)&&void 0!==t&&t.contains(e.target)||b(null)},t=window.setTimeout(()=>b(null),"success"===p.kind?6e3:1e4);return document.addEventListener("pointerdown",e,!0),()=>{window.clearTimeout(t),document.removeEventListener("pointerdown",e,!0)}},[p]),(0,s.useEffect)(()=>{t&&Bt.d.isSequenceReady()&&Bt.d.ensureTrackIdReservation().catch(e=>{console.error("Unable to prepare track IDs",e)})},[t,i,v.length]);return c?(0,x.jsxs)("label",{className:"d-flex align-items-center gap-2 mb-0 text-nowrap",style:{cursor:"pointer",userSelect:"none",fontSize:12},onClick:e=>e.stopPropagation(),title:"Create and manage object tracks across frames",children:[(0,x.jsx)(Ot.A,{type:"checkbox",checked:t,onChange:e=>{!e.target.checked||Bt.d.isSequenceReady()?o(e.target.checked):window.alert("Load every frame's annotations before enabling video tracking.")},style:{margin:0}}),(0,x.jsx)("span",{className:"text-secondary",children:"Video tracking"})]}):u&&!t?null:t||u?(0,x.jsx)("div",{ref:m,className:"video-tracking-toolbar",style:{width:"100%",padding:"6px 8px",borderBottom:"1px solid var(--border-gray, #e5e7eb)",marginBottom:8,fontSize:12},onClick:e=>e.stopPropagation(),onPointerDownCapture:e=>{e.target.closest(".video-tracking-toolbar__message")||b(null)},children:(0,x.jsxs)("div",{className:"d-flex flex-column gap-2",children:[(0,x.jsxs)("div",{className:"d-flex align-items-center gap-2 flex-wrap",children:[(0,x.jsx)("span",{className:"video-tracking-toolbar__field-label text-nowrap",children:"Next box"}),(0,x.jsxs)("select",{className:"form-select form-select-sm video-tracking-toolbar__next-box",value:a||"",onChange:e=>r(e.target.value||null),"aria-label":"Next box track",children:[(0,x.jsx)("option",{value:"",children:"New track"}),v.map(e=>(0,x.jsxs)("option",{value:e.trackId,children:["Continue ",e.labelName," #",e.displayNumber]},e.trackId))]})]}),v.length>0&&(0,x.jsxs)("div",{className:"video-tracking-toolbar__tracks",children:[(0,x.jsx)("span",{className:"video-tracking-toolbar__tracks-title",children:"Tracks in this task"}),(0,x.jsxs)("span",{className:"video-tracking-toolbar__selection-count","aria-live":"polite",children:[w.length," selected \u2014 check track boxes for actions"]}),(0,x.jsx)("div",{className:"video-tracking-toolbar__track-list",role:"group","aria-label":"Tracks in this task",children:v.map(e=>(0,x.jsxs)("label",{className:"video-tracking-toolbar__track-row",children:[(0,x.jsx)("input",{type:"checkbox",className:"video-tracking-toolbar__track-checkbox",checked:g.includes(e.trackId),onChange:t=>{b(null),h(a=>t.target.checked?[...new Set([...a,e.trackId])]:a.filter(t=>t!==e.trackId))}}),(0,x.jsx)("span",{className:"video-tracking-toolbar__track-name",children:e.labelName}),(0,x.jsxs)("strong",{className:"video-tracking-toolbar__track-number",children:["#",e.displayNumber]})]},e.trackId))})]}),(0,x.jsxs)("div",{className:"d-flex flex-wrap gap-1",children:[(0,x.jsx)(Nt.FS,{title:0===w.length?"Check one or more tracks above. Delete forward removes their boxes from this frame onward.":"Delete every checked track from the current frame through the last frame. Boxes on earlier frames stay.",arrow:!0,children:(0,x.jsx)("span",{className:"video-tracking-toolbar__tooltip-target",tabIndex:0,"aria-label":"Delete forward: remove checked tracks from this frame onward",children:(0,x.jsx)("button",{type:"button",className:"btn btn-outline-primary2 btn-sm",disabled:0===w.length,onClick:()=>
1{if(0===w.length)return void b({kind:"error",text:"Check at least one track in the task list first."});if(!Bt.d.isSequenceReady())return void b({kind:"error",text:"Wait for every frame to load before deleting a track."});const e=Bt.d.deleteTracksForward(w);e.error?b({kind:"error",text:e.error}):(h([]),b({kind:"success",text:`Deleted ${e.deletedTracks} of ${w.length} checked track${1===w.length?"":"s"} from ${e.deletedFrames} frame${1===e.deletedFrames?"":"s"}. ${e.earlierTracks>0?"Tracks with boxes on earlier frames remain in this task list.":"Save to keep this change."}`}))},children:"Delete forward"})})}),(0,x.jsx)(Nt.FS,{title:w.length<2?"Check at least two tracks above. They must have the same class and never share a frame.":"Merge checked tracks of the same class when they never share a frame. The earliest track ID is kept.",arrow:!0,children:(0,x.jsx)("span",{className:"video-tracking-toolbar__tooltip-target",tabIndex:0,"aria-label":"Merge tracks: combine non-overlapping tracks of the same class",children:(0,x.jsxs)("button",{type:"button",className:"btn btn-outline-primary2 btn-sm",disabled:w.length<2,onClick:()=>{if(w.length<2)return void b({kind:"error",text:"Check at least two tracks in the task list first."});const e=Bt.d.mergeTracks(w);e.error?b({kind:"error",text:e.error}):(h([e.trackId]),b({kind:"success",text:`Merged ${w.length} tracks as ${Bt.d.displayName(e.trackId)}.`}))},children:["Merge tracks",w.length>1?` (${w.length})`:""]})})})]}),p&&(0,x.jsx)("div",{className:`video-tracking-toolbar__message video-tracking-toolbar__message--${p.kind}`,role:"error"===p.kind?"alert":"status","aria-live":"polite",children:p.text}),(null===f||void 0===f?void 0:f.trackId)&&(0,x.jsxs)("div",{className:"text-secondary",children:["Active track:"," ",(0,x.jsx)("code",{children:Bt.d.displayName(f.trackId)})]})]})}):(0,x.jsxs)("label",{className:"d-flex align-items-center gap-2 mb-0",style:{cursor:"pointer",userSelect:"none",fontSize:12},onClick:e=>e.stopPropagation(),children:[(0,x.jsx)(Ot.A,{type:"checkbox",checked:t,onChange:e=>{!e.target.checked||Bt.d.isSequenceReady()?o(e.target.checked):window.alert("Load every frame's annotations before enabling video tracking.")},style:{margin:0}}),(0,x.jsx)("span",{className:"text-secondary",children:"Video tracking"})]})});var Ft=a(88896);function Ut(e){const t=(0,s.useRef)(null),[a,l]=(0,s.useState)({width:1,height:1});return(0,s.useLayoutEffect)(()=>{const a=t.current;if(!e||!a)return;const s=()=>{const e=Math.max(1,Math.floor(a.clientWidth)),t=Math.max(1,Math.floor(a.clientHeight));l(a=>a.width===e&&a.height===t?a:{width:e,height:t})};s();const n=new ResizeObserver(s);return n.observe(a),()=>n.disconnect()},[e]),{containerRef:t,size:a}}const zt=e=>{let{index:t,style:a,data:s}=e;return(0,x.jsx)(x.Fragment,{children:s.renderRow(s.labels[t],a)})};var Gt=!1;const $t={updateImageDataById:n.PD,updateActiveLabelNameId:n.A2,updateActiveLabelId:n.vD},Wt=(0,l.Ng)(e=>({activeLabelId:e.labels.activeLabelId,highlightedLabelId:e.labels.highlightedLabelId,labelNames:e.labels.labels,videoTrackingEnabled:e.labels.videoTrackingEnabled}),$t)(e=>{var t;let{size:a,imageData:l,updateImageDataById:n,labelNames:i,updateActiveLabelNameId:o,activeLabelId:r,highlightedLabelId:d,updateActiveLabelId:c,videoTrackingEnabled:u}=e;const g=(0,s.useRef)(null),h=(0,s.useRef)(0),{containerRef:m,size:p}=Ut((l.labelRects||[]).some(e=>e.status===pt.$.ACCEPTED)),[b,v]=(a.width,a.width,(0,s.useState)([])),[f,y]=(0,s.useState)("Label"),[w,j]=(0,s.useState)([]),[N,I]=(0,s.useState)([]),[L,S]=s.useState({min:0,max:100}),[A,C]=(0,s.useState)(!1),k=(0,s.useMemo)(()=>(l.labelRects||[]).filter(e=>e.status===pt.$.ACCEPTED),[l.labelRects,l.labelRects.length]),P=e=>{requestAnimationFrame(()=>{var t;const a=k.findIndex(t=>t.id===e);a>=0&&(null===(t=g.current)||void 0===t||t.scrollToItem(a,"smart"))})};(0,s.useEffect)(()=>{y("Label")},[l.image_id,i]),(0,s.useEffect)(()=>{j([]),I([]),Gt=!1},[l.image_id,f]),(0,s.useEffect)(()=>{r&&P(r)},[r,k.length]),(0,s.useEffect)(()=>{h.current=k.length},[l.image_id]),(0,s.useEffect)(()=>{const e=k.length,t=h.current,a=k[e-1];e>t&&null!==a&&void 0!==a&&a.id&&P(a.id),h.current=e},[k.length,null===(t=k[k.length-1])||void 0===t?void 0:t.id]),(0,s.useEffect)(()=>
1{if("AI"===f){v([]),j([]);const e=l.labelRects.filter(e=>e.isCreatedByAI).map(e=>e.id);j(R(e))}"Label"===f&&D(N)},[f,l.labelRects.length,N]),(0,s.useEffect)(()=>{"Confidence"===f&&O()},[f,L,l.labelRects.length]);const E=e=>{$.o.deleteRectLabelById(l.image_id,e)},T=e=>{$.o.hideunhideRectLabelById(l.image_id,e)};function R(e){return[...new Set(e)]}const _=(e,t)=>{t?j(t=>R([...t,e])):(j(t=>t.filter(t=>t!==e)),Gt=!1)},D=e=>{const t=l.labelRects.filter(t=>e.includes(t.labelId)).map(e=>e.id);j(t);const a=l.labelRects.map(a=>({...a,show:0===e.length||t.includes(a.id)}));n(l.image_id,{...l,labelRects:a})},O=()=>{const e=l.labelRects.filter(e=>e.isCreatedByAI&&L.min/100<=e.confidence&&L.max/100>=e.confidence).map(e=>e.id);j(e);const t=l.labelRects.map(t=>({...t,show:e.includes(t.id)})),a={...l,labelRects:t};n(l.image_id,a)},M=(0,s.useMemo)(()=>i.map(e=>({label:e.name,value:e.id})),[i]),V=(e,t)=>{const a=String(e),s=l.labelRects.find(e=>String(e.id)===a);if(u&&null!==s&&void 0!==s&&s.trackId)return Bt.d.updateTrackLabel(s.trackId,t),void o(t);const i={...l,labelRects:l.labelRects.map(e=>String(e.id)===a?{...e,labelId:t,status:pt.$.ACCEPTED}:e)};n(l.image_id,i),o(t)};return(0,x.jsxs)("div",{className:"RectLabelsList",onClickCapture:e=>{e.currentTarget.contains(e.target)&&!e.target.closest("[data-label-row-id], .video-tracking-toolbar")&&c(null)},children:[(0,x.jsx)(Ht,{actionsOnly:!0,labelRects:l.labelRects||[]}),0===k.length?(0,x.jsx)("div",{className:"RectLabelsList__empty",children:(0,x.jsx)(_t,{labelBefore:"Draw your first bounding box",labelAfter:"No labels created for this image yet"})}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("div",{className:"d-flex mb-2 flex-wrap w-100 mt-3",children:[(0,x.jsxs)("div",{className:"d-a justify-content-between w-100",children:[(0,x.jsx)("div",{className:"fw-bold",children:"Filter by"}),(0,x.jsx)("div",{className:"d-a gap-2",children:[{label:"Label",values:"Label"},{label:"AI Generated",values:"Confidence"}].map(e=>(0,x.jsxs)("label",{className:"radio-label d-a text-secondary gap-1",style:{cursor:"pointer"},children:[(0,x.jsx)("input",{type:"radio",name:"options",value:e.values,checked:f===e.values,style:{cursor:"pointer",height:"12px"},onClick:e=>{const t=e.target;f===t.value?y("Label"):y(t.value),j([])}}),e.label]},e.values))})]}),"Label"===f&&(0,x.jsx)("div",{className:"container-card w-100 px-2 py-0 m-0",style:{height:"40px"},children:(0,x.jsx)(Dt.Ay,{isMulti:!0,name:"labels",className:"basic-multi-select w-100 d-block p-0 outline-none border-0",classNamePrefix:"select",options:M,value:M.filter(e=>N.includes(e.value)),placeholder:"select Label",onChange:e=>{const t=e?e.map(e=>e.value):[];D(t),I(t)}})}),"Confidence"===f&&(0,x.jsxs)("div",{className:"aiRangeslider m-0",style:{height:"40px"},children:[(0,x.jsxs)("span",{className:"text-primary fw-bold",children:[L.min,"%"]}),(0,x.jsx)(Mt,{min:0,max:100,step:1,value:L,onChange:S}),(0,x.jsxs)("span",{className:"text-primary fw-bold text-right float-right",children:[L.max,"%"]})]})]}),(0,x.jsxs)("div",{className:"d-a justify-content-between w-100 mb-2 py-2",style:{background:"var(--bg-color3)",borderTop:"1px solid var(--card-color)"},children:[(0,x.jsxs)(At.A,{className:"d-a",children:[(0,x.jsx)("input",{type:"checkbox",id:"labelRect",checked:Gt,style:{height:"10px"},className:"mx-1 cursor-pointer",onChange:e=>(e=>{Gt=e,e?j(R(l.labelRects.map(e=>e.id))):(j([]),Gt=!1)})(e.target.checked)}),(0,x.jsx)("label",{className:"cursor-pointer small-font",htmlFor:"labelRect",children:"Select All"})]}),w.length>0&&(0,x.jsxs)("button",{className:"text-danger d-a gap-1 plain-button2",onClick:()=>{const e=l.labelRects.filter(e=>w.includes(e.id)),t={...l,labelRects:e};n(l.image_id,t),j([]),Gt=!1},title:"Delete Unselected",children:[(0,x.jsx)(Lt.d7,{className:"wf-icon-small"}),(0,x.jsx)("small",{className:"text-danger",children:" Delete Unselected"})]})]}),w.length>0&&(0,x.jsx)("div",{className:"selection-toolbar-wrapper w-100",children:(0,x.jsx)("div",{className:"selection-toolbar w-100",onClick:e=>e.stopPropagation(),children:(0,x.jsxs)("div",{className:"d-a justify-content-between w-100",children:[(0,x.jsxs)("div",{className:"flex-fill d-a gap-3",children:[(0,x.jsxs)("div",{className:"selection-toolbar__info d-a gap-1",children:[(0,x.jsx)("span",{className:"selection-toolbar__label",children:"SELECTED"}),(0,x.jsx)("span",{className:"selection-toolbar__count",children:w.length})]}),(0,x.jsx)("div",{className:"selection-toolbar__divider"}),(0,x.jsx)("button",{className:"toolbar-btn",onClickCapture:()=>{$.o.hideselected(l.image_id,w),C(e=>!e)},title:A?"Unhide":"Hide",children:A?(0,x.jsx)(Lt.aR,{className:"wf-icon-small text-white"}):(0,x.jsx)(Lt.bM,{className:"wf-icon-small text-white"})}),(0,x.jsx)("button",{className:"toolbar-btn text-danger",onClickCapture:()=>{$.o.deleteSelectRectLabelById(l.image_id,w),j([]),Gt=!1},title:"Delete Selected",children:(0,x.jsx)(Lt.d7,{className:"wf-icon"})})]}),(0,x.jsx)("button",{className:"toolbar-btn",onClick:()=>{j([]),C(!1),Gt=!1},title:"Close selection toolbar",children:(0,x.jsx)(Lt.US,{className:"wf-icon text-secondary text-secondary"})})]})})}),(0,x.jsx)("div",{className:"w-100 overflow-auto h-100",ref:m,children:(0,x.jsx)(Ft.Y1,{ref:g,height:p.height,width:p.width,itemCount:k.length,itemSize:88,overscanCount:5,itemKey:e=>{var t;return String((null===(t=k[e])||void 0===t?void 0:t.id)||e)},itemData:{labels:k,renderRow:(e,t)=>{const s=String(e.id);return(0,x.jsx)("div",{style:t,"data-label-row-id":s,className:"d-flex align-items-center",children:(0,x.jsx)(Rt,{labelCollection:"labelRects",trackDisplayNumber:u&&e.trackId?Number(Bt.d.shortTrackId(e.trackId)):void 0,size:{
1width:a.width,height:40},isActive:s===String(null!==r&&void 0!==r?r:""),isHighlighted:s===String(null!==d&&void 0!==d?d:""),isCreatedbyAI:e.isCreatedByAI,id:s,onDelete:E,onHide:T,show:!1!==e.show,onChecked:_,checked:w.some(e=>String(e)===s),selectAll:Gt,value:null!==e.labelId?(0,B.findLast)(i,{id:e.labelId}):null,options:i,onSelectLabel:V})})}},children:zt})})]})]})}),Yt={updateImageDataById:n.PD,updateActiveLabelNameId:n.A2,updateActiveLabelId:n.vD},qt=(0,l.Ng)(e=>({activeLabelId:e.labels.activeLabelId,highlightedLabelId:e.labels.highlightedLabelId,labelNames:e.labels.labels}),Yt)(e=>{let{size:t,imageData:a,updateImageDataById:s,labelNames:l,updateActiveLabelNameId:n,activeLabelId:i,highlightedLabelId:o,updateActiveLabelId:r}=e;const d={width:t.width,height:t.height},c={width:t.width,height:40*a.labelPoints.length},u=e=>{$.o.deletePointLabelById(a.image_id,e)},g=e=>{$.o.hidePointLabelById(a.image_id,e)},h=(e,t)=>{const l=String(e),i={...a,labelPoints:a.labelPoints.map(e=>String(e.id)===l?{...e,labelId:t}:e)};s(a.image_id,i),n(t)};return(0,x.jsx)("div",{className:"PointLabelsList",style:d,onClickCapture:()=>{r(null)},children:0===a.labelPoints.filter(e=>e.status===pt.$.ACCEPTED).length?(0,x.jsx)(_t,{labelBefore:"Mark your first point",labelAfter:"No labels created for this image yet"}):(0,x.jsx)(U.Ay,{children:(0,x.jsx)("div",{className:"PointLabelsListContent",style:c,children:a.labelPoints.filter(e=>e.status===pt.$.ACCEPTED).map(e=>(0,x.jsx)(Rt,{labelCollection:"labelPoints",size:{width:t.width,height:40},isActive:e.id===i,isHighlighted:e.id===o,isCreatedbyAI:e.isCreatedByAI,id:e.id,show:!1!==e.show,onDelete:u,onHide:g,value:null!==e.labelId?(0,B.findLast)(l,{id:e.labelId}):null,options:l,onSelectLabel:h,checked:!1,onChecked:function(e){throw new Error("Function not implemented.")},selectAll:!1},e.id))})})})});var Jt=!1;const Xt={updateImageDataById:n.PD,updateActiveLabelNameId:n.A2,updateActiveLabelId:n.vD},Kt=(0,l.Ng)(e=>({activeLabelId:e.labels.activeLabelId,highlightedLabelId:e.labels.highlightedLabelId,labelNames:e.labels.labels}),Xt)(e=>{var t;let{size:a,imageData:l,updateImageDataById:n,labelNames:i,updateActiveLabelNameId:o,activeLabelId:r,highlightedLabelId:d,updateActiveLabelId:c}=e;const u=(0,s.useRef)(null),g=(0,s.useRef)(0),[h,m]=(0,s.useState)([]),[p,b]=(0,s.useState)("Label"),[v,f]=(0,s.useState)([]),[y,w]=(0,s.useState)([]),[j,N]=s.useState({min:0,max:100}),I=(0,s.useMemo)(()=>l.labelPolygons||[],[l.labelPolygons,l.labelPolygons.length]),L=e=>{requestAnimationFrame(()=>{const t=u.current;if(!t)return;const a=Array.from(t.querySelectorAll("[data-label-row-id]")).find(t=>t.getAttribute("data-label-row-id")===e);null===a||void 0===a||a.scrollIntoView({block:"nearest",behavior:"smooth"})})};s.useEffect(()=>{b("Label")},[l.image_id]),s.useEffect(()=>{f([]),w([]),Jt=!1},[l.image_id,p]),(0,s.useEffect)(()=>{r&&L(r)},[r,I.length]),(0,s.useEffect)(()=>{g.current=I.length},[l.image_id]),(0,s.useEffect)(()=>{const e=I.length,t=g.current,a=I[e-1];e>t&&null!==a&&void 0!==a&&a.id&&L(a.id),g.current=e},[I.length,null===(t=I[I.length-1])||void 0===t?void 0:t.id]),(0,s.useEffect)(()=>{"AI"==p&&(m([]),f([]),l.labelPolygons.map(e=>{1==e.isCreatedByAI&&(console.log(e.id),v.push(e.id),f(C(v)))})),"Label"==p&&P(y)},[p,l.labelPolygons.length,y]),(0,s.useEffect)(()=>{"Confidence"==p&&E()},[p,j,l.labelPolygons.length]);const S=e=>{$.o.deletePolygonLabelById(l.image_id,e)},A=e=>{$.o.hideunhidePolygonLabelById(l.image_id,e)};function C(e){return[...new Set(e)]}const k=(e,t)=>{t?(v.push(e),f(C(v))):(f(v.filter(t=>t!==e)),Jt=!1)},P=e=>{const t=l.labelPolygons.filter(t=>e.includes(t.labelId)).map(e=>e.id);f(t);const a=l.labelPolygons.map(a=>({...a,show:0===e.length||t.includes(a.id)}));n(l.image_id,{...l,labelPolygons:a})},E=()=>{const e=l.labelPolygons.filter(e=>e.isCreatedByAI&&j.min/100<=e.confidence&&j.max/100>=e.confidence).map(e=>e.id);f(e);const t=l.labelPolygons.map(t=>({...t,show:e.includes(t.id)})),a={...l,labelPolygons:t};n(l.image_id,a)},T=(0,s.useMemo)(()=>i.map(e=>({label:e.name,value:e.id})),[i]),[R,_]=(0,s.useState)(!1),D=(e,t)=>{const a=String(e),s={...l,labelPolygons:l.labelPolygons.map(e=>String(e.id)===a?{...e,labelId:t,status:pt.$.ACCEPTED}:e)};n(l.image_id,s),o(t)};return(0,x.jsx)("div",{className:"PolygonLabelsList",style:{width:"100%",height:"",justifyContent:"flex-start"},onClickCapture:()=>{c(null)},children:0===I.length?(0,x.jsx)("div",{style:{height:"100%",display:"flex",justifyContent:"center"},children:(0,x.jsx)(_t,{labelBefore:"Draw your first polygon",labelAfter:"No labels created for this image yet"})}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("div",{className:"d-flex mb-2 flex-wrap w-100 mt-3",children:[(0,x.jsxs)("div",{className:"d-a justify-content-between w-100",children:[(0,x.jsx)("div",{className:"fw-bold",children:"Filter by"}),(0,x.jsx)("div",{className:"d-a gap-2",children:[{label:"Label",values:"Label"},{label:"AI Generated",values:"Confidence"}].map(e=>(0,x.jsxs)("label",{className:"radio-label d-a text-secondary gap-1",
1style:{cursor:"pointer"},children:[(0,x.jsx)("input",{type:"radio",name:"options",value:e.values,checked:p===e.values,style:{cursor:"pointer",height:"12px"},onClick:e=>{const t=e.target;p===t.value?b("Label"):b(t.value),f([])}}),e.label]},e.values))})]}),"Label"===p&&(0,x.jsx)("div",{className:"container-card w-100 px-2 py-0 m-0",style:{height:"40px"},children:(0,x.jsx)(Dt.Ay,{isMulti:!0,name:"labels",className:"basic-multi-select w-100 d-block p-0 outline-none border-0",classNamePrefix:"select",options:T,value:T.filter(e=>y.includes(e.value)),placeholder:"select Label",onChange:e=>{const t=e?e.map(e=>e.value):[];P(t),w(t)}})}),"Confidence"===p&&(0,x.jsxs)("div",{className:"aiRangeslider m-0",style:{height:"40px"},children:[(0,x.jsxs)("span",{className:"text-primary fw-bold",children:[j.min,"%"]}),(0,x.jsx)(Mt,{min:0,max:100,step:1,value:j,onChange:N}),(0,x.jsxs)("span",{className:"text-primary fw-bold text-right float-right",children:[j.max,"%"]})]})]}),(0,x.jsxs)("div",{className:"d-a justify-content-between w-100 mb-2 py-2",style:{background:"var(--bg-color3)",borderTop:"1px solid var(--card-color)"},children:[(0,x.jsxs)(At.A,{className:"d-a",children:[(0,x.jsx)("input",{type:"checkbox",id:"labelRect",checked:Jt,style:{height:"10px"},className:"mx-1 cursor-pointer",onChange:e=>(e=>{Jt=e,e?l.labelPolygons.map(e=>{v.push(e.id),f(C(v))}):(f([]),Jt=!1)})(e.target.checked)}),(0,x.jsx)("label",{className:"cursor-pointer small-font",htmlFor:"labelRect",children:"Select All"})]}),v.length>0&&(0,x.jsxs)("button",{className:"text-danger d-a gap-1 plain-button2",onClick:()=>{const e=l.labelPolygons.filter(e=>v.includes(e.id)),t={...l,labelPolygon:e};n(l.image_id,t),f([]),Jt=!1},title:"Delete Unselected",children:[(0,x.jsx)(Lt.d7,{className:"wf-icon-small"}),(0,x.jsx)("small",{className:"text-danger",children:" Delete Unselected"})]})]}),v.length>0&&(0,x.jsx)("div",{className:"selection-toolbar-wrapper w-100",children:(0,x.jsx)("div",{className:"selection-toolbar w-100",onClick:e=>e.stopPropagation(),children:(0,x.jsxs)("div",{className:"d-a justify-content-between w-100",children:[(0,x.jsxs)("div",{className:"flex-fill d-a gap-3",children:[(0,x.jsxs)("div",{className:"selection-toolbar__info d-a gap-1",children:[(0,x.jsx)("span",{className:"selection-toolbar__label",children:"SELECTED"}),(0,x.jsx)("span",{className:"selection-toolbar__count",children:v.length})]}),(0,x.jsx)("div",{className:"selection-toolbar__divider"}),(0,x.jsx)("button",{className:"toolbar-btn",onClickCapture:()=>{$.o.hideselected(l.image_id,v),_(!R)},title:R?"Unhide":"Hide",children:R?(0,x.jsx)(Lt.aR,{className:"wf-icon-small text-white"}):(0,x.jsx)(Lt.bM,{className:"wf-icon-small text-white"})}),(0,x.jsx)("button",{className:"toolbar-btn text-danger",onClickCapture:()=>{$.o.deleteSelectPolygonsLabelById(l.image_id,v),f([]),Jt=!1,b("Label")},title:"Delete Selected",children:(0,x.jsx)(Lt.d7,{className:"wf-icon"})})]}),(0,x.jsx)("button",{className:"toolbar-btn",onClick:()=>{f([]),_(!1),Jt=!1},title:"Close selection toolbar",children:(0,x.jsx)(Lt.US,{className:"wf-icon text-secondary text-secondary"})})]})})}),(0,x.jsx)("div",{ref:u,className:"w-100 overflow-auto h-100",children:I.map(e=>(0,x.jsx)("div",{"data-label-row-id":e.id,children:(0,x.jsx)(Rt,{labelCollection:"labelPolygons",size:{height:40},isActive:e.id===r,isHighlighted:e.id===d,isCreatedbyAI:e.isCreatedByAI,id:e.id,onDelete:S,onHide:A,show:!1!==e.show,onChecked:k,checked:v.some(t=>t==e.id),selectAll:Jt,value:null!==e.labelId?(0,B.findLast)(i,{id:e.labelId}):null,options:i,onSelectLabel:D})},e.id))})]})})});var Zt=!1;const Qt={updateImageDataById:n.PD,updateActiveLabelNameId:n.A2,updateActiveLabelId:n.vD},ea=(0,l.Ng)(e=>({activeLabelId:e.labels.activeLabelId,highlightedLabelId:e.labels.highlightedLabelId,labelNames:e.labels.labels}),Qt)(e=>{var t;let{size:a,imageData:l,updateImageDataById:n,labelNames:i,updateActiveLabelNameId:o,activeLabelId:r,highlightedLabelId:d,updateActiveLabelId:c}=e;const u=(0,s.useRef)(null),g=(0,s.useRef)(0),[h,m]=(a.width,(0,s.useState)("Label")),[p,b]=(0,s.useState)([]),[v,f]=(0,s.use
1State)([]),[y,w]=(0,s.useState)({min:0,max:100}),[j,N]=(0,s.useState)(!1),I=(0,s.useMemo)(()=>l.labelPolylines||[],[l.labelPolylines,l.labelPolylines.length]),L=e=>{requestAnimationFrame(()=>{const t=u.current;if(!t)return;const a=Array.from(t.querySelectorAll("[data-label-row-id]")).find(t=>t.getAttribute("data-label-row-id")===e);null===a||void 0===a||a.scrollIntoView({block:"nearest",behavior:"smooth"})})};(0,s.useEffect)(()=>{m("Label")},[l.image_id]),(0,s.useEffect)(()=>{b([]),f([]),Zt=!1},[l.image_id,h]),(0,s.useEffect)(()=>{r&&L(r)},[r,I.length]),(0,s.useEffect)(()=>{g.current=I.length},[l.image_id]),(0,s.useEffect)(()=>{const e=I.length,t=g.current,a=I[e-1];e>t&&null!==a&&void 0!==a&&a.id&&L(a.id),g.current=e},[I.length,null===(t=I[I.length-1])||void 0===t?void 0:t.id]),(0,s.useEffect)(()=>{if("AI"===h){const e=l.labelPolylines.filter(e=>e.isCreatedByAI).map(e=>e.id);b(C(e))}"Label"===h&&P(v)},[h,l.labelPolylines.length,v]);const S=e=>{$.o.deletePolylineLabelById(l.image_id,e)},A=e=>{$.o.hideunhidePolylineLabelById(l.image_id,e)};function C(e){return[...new Set(e)]}const k=(e,t)=>{t?b(t=>C([...t,e])):(b(t=>t.filter(t=>t!==e)),Zt=!1)},P=e=>{const t=l.labelPolylines.filter(t=>e.includes(t.labelId)).map(e=>e.id);b(t);const a=l.labelPolylines.map(a=>({...a,show:0===e.length||t.includes(a.id)}));n(l.image_id,{...l,labelPolylines:a})},E=(e,t)=>{const a=String(e),s={...l,labelPolylines:l.labelPolylines.map(e=>String(e.id)===a?{...e,labelId:t}:e)};n(l.image_id,s),o(t)},T=(0,s.useMemo)(()=>i.map(e=>({label:e.name,value:e.id})),[i]);return(0,x.jsx)("div",{className:"PolylineLabelsList",style:{height:"",justifyContent:"flex-start"},onClickCapture:()=>{c(null)},children:0===I.length?(0,x.jsx)(_t,{labelBefore:"Draw your first polyline",labelAfter:"No labels created for this image yet"}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("div",{className:"d-flex mb-2 flex-wrap w-100 mt-3",children:[(0,x.jsxs)("div",{className:"d-a justify-content-between w-100",children:[(0,x.jsx)("div",{className:"fw-bold",children:"Filter by"}),(0,x.jsx)("div",{className:"d-a gap-2",children:[{label:"Label",values:"Label"},{label:"AI Generated",values:"Confidence"}].map(e=>(0,x.jsxs)("label",{className:"radio-label d-a text-secondary gap-1",style:{cursor:"pointer"},children:[(0,x.jsx)("input",{type:"radio",name:"options",value:e.values,checked:h===e.values,style:{cursor:"pointer",height:"12px"},onClick:e=>{const t=e.target;h===t.value?m("Label"):m(t.value),b([])}}),e.label]},e.values))})]}),"Label"===h&&(0,x.jsx)("div",{className:"container-card w-100 px-2 py-0 m-0",style:{height:"40px"},children:(0,x.jsx)(Dt.Ay,{isMulti:!0,name:"labels",className:"basic-multi-select w-100 d-block p-0 outline-none border-0",classNamePrefix:"select",options:T,value:T.filter(e=>v.includes(e.value)),placeholder:"select Label",onChange:e=>{const t=e?e.map(e=>e.value):[];P(t),f(t)}})}),"Confidence"===h&&(0,x.jsxs)("div",{className:"aiRangeslider m-0",style:{height:"40px"},children:[(0,x.jsxs)("span",{className:"text-primary fw-bold",children:[y.min,"%"]}),(0,x.jsx)(Mt,{min:0,max:100,step:1,value:y,onChange:w}),(0,x.jsxs)("span",{className:"text-primary fw-bold text-right float-right",children:[y.max,"%"]})]})]}),(0,x.jsxs)("div",{className:"d-a justify-content-between w-100 mb-2 py-2",style:{background:"var(--bg-color3)",borderTop:"1px solid var(--card-color)"},children:[(0,x.jsxs)(At.A,{className:"d-a",children:[(0,x.jsx)("input",{type:"checkbox",id:"labelRect",checked:Zt,style:{height:"10px"},className:"mx-1 cursor-pointer",onChange:e=>{return t=e.target.checked,Zt=t,void(t?b(C(l.labelPolylines.map(e=>e.id))):(b([]),Zt=!1));var t}}),(0,x.jsx)("label",{className:"cursor-pointer small-font",htmlFor:"labelRect",children:"Select All"})]}),p.length>0&&(0,x.jsxs)("button",{className:"text-danger d-a gap-1 plain-button2",onClick:()=>{const e=l.labelPolylines.filter(e=>p.includes(e.id)),t={...l,labelPolylines:e};n(l.image_id,t),b([]),Zt=!1},title:"Delete Unselected",children:[(0,x.jsx)(Lt.d7,{className:"wf-icon-small"}),(0,x.jsx)("small",{className:"text-danger",children:" Delete Unselected"})]})]}),p.length>0&&(0,x.jsx)("div",{className:"selection-toolbar-wrapper w-100",children:(0,x.jsx)("div",{className:"selection-toolbar w-100",onClick:e=>e.stopPropagation(),children:(0,x.jsxs)("div",{className:"d-a justify-content-between w-100",children:[(0,x.jsxs)("div",{className:"flex-fill d-a gap-3",children:[(0,x.jsxs)("div",{className:"selection-toolbar__info d-a gap-1",children:[(0,x.jsx)("span",{className:"selection-toolbar__label",children:"SELECTED"}),(0,x.jsx)("span",{className:"selection-toolbar__count",children:p.length})]}),(0,x.jsx)("div",{className:"selection-toolbar__divider"}),(0,x.jsx)("button",{className:"toolbar-btn",onClickCapture:()=>{$.o.hideselected(l.image_id,p),N(e=>!e)},title:j?"Unhide":"Hide",children:j?(0,x.jsx)(Lt.aR,{className:"wf-icon-small text-white"}):(0,x.jsx)(Lt.bM,{className:"wf-icon-small text-white"})}),(0,x.jsx)("button",{className:"toolbar-btn text-danger",onClickCapture:()=>{$.o.deleteSelectPolylinesLabelById?$.o.deleteSelectPolylinesLabelById(l.image_id,p):p.forEac
1h(e=>$.o.deletePolylineLabelById(l.image_id,e)),b([]),Zt=!1,m("Label")},title:"Delete Selected",children:(0,x.jsx)(Lt.d7,{className:"wf-icon"})})]}),(0,x.jsx)("button",{className:"toolbar-btn",onClick:()=>{b([]),N(!1),Zt=!1},title:"Close selection toolbar",children:(0,x.jsx)(Lt.US,{className:"wf-icon text-secondary text-secondary"})})]})})}),(0,x.jsx)("div",{ref:u,className:"w-100 overflow-auto h-100",children:I.map(e=>(0,x.jsx)("div",{"data-label-row-id":e.id,children:(0,x.jsx)(Rt,{labelCollection:"labelPolylines",size:{width:a.width,height:40},isActive:e.id===r,isHighlighted:e.id===d,isCreatedbyAI:e.isCreatedByAI,id:e.id,onDelete:S,onHide:A,show:!1!==e.show,onChecked:k,checked:p.some(t=>t===e.id),selectAll:Zt,value:null!==e.labelId?(0,B.findLast)(i,{id:e.labelId}):null,options:i,onSelectLabel:E})},e.id))})]})})}),ta={updateImageDataById:n.PD,updateActiveLabelNameId:n.A2,updateActiveLabelId:n.vD},aa=(0,l.Ng)(e=>({activeLabelId:e.labels.activeLabelId,highlightedLabelId:e.labels.highlightedLabelId,labelNames:e.labels.labels}),ta)(e=>{let{size:t,imageData:a,updateImageDataById:s,labelNames:l,updateActiveLabelNameId:n,activeLabelId:i,highlightedLabelId:o,updateActiveLabelId:r}=e;const d={width:t.width,height:t.height},c={width:t.width,height:40*a.labelLines.length},u=e=>{$.o.deleteLineLabelById(a.image_id,e)},g=e=>{$.o.hideLineLabelById(a.image_id,e)},h=(e,t)=>{const l=String(e),i={...a,labelLines:a.labelLines.map(e=>String(e.id)===l?{...e,labelId:t}:e)};s(a.image_id,i),n(t)};return(0,x.jsx)("div",{className:"LineLabelsList",style:d,onClickCapture:()=>{r(null)},children:0===a.labelLines.length?(0,x.jsx)(_t,{labelBefore:"Draw your first line",labelAfter:"No labels created for this image yet"}):(0,x.jsx)(U.Ay,{children:(0,x.jsx)("div",{className:"LineLabelsListContent",style:c,children:a.labelLines.map(e=>(0,x.jsx)(Rt,{labelCollection:"labelLines",size:{width:t.width,height:40},isActive:e.id===i,isHighlighted:e.id===o,isCreatedbyAI:!1,id:e.id,show:!1!==e.show,onDelete:u,onHide:g,value:null!==e.labelId?(0,B.findLast)(l,{id:e.labelId}):null,options:l,onSelectLabel:h,checked:!1,onChecked:function(e){throw new Error("Function not implemented.")},selectAll:!1},e.id))})})})}),sa={updateImageDataById:n.PD,updateActivePopupType:o.IX},la=(0,l.Ng)(e=>({labelNames:e.labels.labels}),sa)(e=>{let{size:t,imageData:a,updateImageDataById:s,labelNames:l,updateActivePopupType:n}=e;const i={width:t.width,height:t.height},o={width:t.width,height:40*a.labelPolygons.length},r=e=>{var t=!1,s=!1;return a.labelTags.forEach((a,l)=>{a.labelId==e&&(t=!0),a.labelId==e&&1==a.isCreatedByAI&&(s=!0)}),t&&s?A()("TagItem",{"active ai":t}):t?A()("TagItem",{active:t}):A()("TagItem",{active:!1})};return(0,x.jsx)("div",{className:"TagLabelsList",style:i,children:0===l.length?(0,x.jsxs)("div",{className:"EmptyLabelList",onClick:()=>{n(L.R.UPDATE_LABEL)},children:[(0,x.jsx)("img",{draggable:!1,alt:"upload",src:"ico/type-writer.png"}),(0,x.jsx)("p",{className:"extraBold",children:"Your label list is empty"})]},"empty-label-list"):(0,x.jsxs)(U.Ay,{children:[(0,x.jsx)("h5",{className:"my-3",children:"Add tags"}),(0,x.jsx)("div",{className:"TagLabelsListContent",style:o,children:[...l.map(e=>(0,x.jsxs)("div",{className:r(e.id),onClickCapture:()=>(e=>{var t,l=[];l=[{id:(0,K.A)(),labelId:e,isCreatedByAI:!1,status:"ACCEPTED",show:!0,confidence:1}];var n=!1;a.labelTags.forEach((a,s)=>{a.labelId===e&&(n=!0,t=s)}),n?(l=a.labelTags.filter((e,a)=>t==a?null:e),s(a.image_id,{...a,labelTags:l})):s(a.image_id,{...a,labelTags:l})})(e.id),children:["TagItem active ai"==r(e.id)?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(wt.g,{icon:jt.UBk})," "]}):(0,x.jsx)(x.Fragment,{})," ",e.name]},e.id))]},"tag-labels-list-content")]})},"tag-labels-list")}),na=e=>{let{index:t,style:a,data:s}=e;return(0,x.jsx)(x.Fragment,{children:s.renderRow(s.labels[t],a)})},ia={updateImageDataById:n.PD,updateActiveLabelNameId:n.A2,updateActiveLabelId:n.vD},oa=(0,l.Ng)(e=>({activeLabelId:e.labels.activeLabelId,highlightedLabelId:e.labels.highlightedLabelId,labelNames:e.labels.labels,videoTrackingEnabled:e.labels.videoTrackingEnabled}
1),ia)(e=>{var t,a,l,n,i,o,r,d,c,u,g,h,m;let{size:p,imageData:b,updateImageDataById:v,labelNames:f,updateActiveLabelNameId:y,activeLabelId:w,highlightedLabelId:j,updateActiveLabelId:N,videoTrackingEnabled:I}=e;const[L,S]=(0,s.useState)("None"),[A,C]=(0,s.useState)([]),[k,P]=(0,s.useState)([]),[E,T]=(0,s.useState)({min:0,max:100}),[R,_]=(0,s.useState)(!1),[D,O]=(0,s.useState)(!1),M=(0,s.useRef)(new Map),B=(0,s.useRef)(null),V=(0,s.useRef)(null),H=(0,s.useRef)(0),{containerRef:F,size:U}=Ut(Boolean((null===(t=b.labelRects)||void 0===t?void 0:t.length)||(null===(a=b.labelPolygons)||void 0===a?void 0:a.length)||(null===(l=b.labelPolylines)||void 0===l?void 0:l.length)||(null===(n=b.labelPoints)||void 0===n?void 0:n.length)||(null===(i=b.labelLines)||void 0===i?void 0:i.length)||(null===(o=b.labelTags)||void 0===o?void 0:o.length)));(0,s.useEffect)(()=>{S("None")},[b.image_id]),(0,s.useEffect)(()=>{C([]),P([]),O(!1),_(!1)},[b.image_id,L]),(0,s.useEffect)(()=>{B.current!==b.image_id&&(M.current=new Map,B.current=b.image_id)},[b.image_id]);const z=()=>M.current.size+1,W=e=>{switch(e){case ye.H.RECT:return jt.Nfw;case ye.H.POLYGON:return jt.mSI;case ye.H.POLYLINE:return jt.G$1;case ye.H.POINT:return jt.RVf;case ye.H.LINE:return jt.EZy;case ye.H.TAG:return jt.DX_;default:return jt.Nfw}},Y=(0,s.useMemo)(()=>f.map(e=>({label:e.name,value:e.id})),[f]),q=e=>e===ye.H.RECT?"labelRects":e===ye.H.POLYGON?"labelPolygons":e===ye.H.POLYLINE?"labelPolylines":e===ye.H.POINT?"labelPoints":e===ye.H.LINE?"labelLines":e===ye.H.TAG?"labelTags":null,J=[...(b.labelRects||[]).map(e=>({...e,type:ye.H.RECT})),...(b.labelPolygons||[]).map(e=>({...e,type:ye.H.POLYGON})),...(b.labelPolylines||[]).map(e=>({...e,type:ye.H.POLYLINE})),...(b.labelPoints||[]).map(e=>({...e,type:ye.H.POINT})),...(b.labelLines||[]).map(e=>({...e,type:ye.H.LINE})),...(b.labelTags||[]).map(e=>({...e,type:ye.H.TAG}))];J.sort((e,t)=>e.orderNumber&&t.orderNumber?e.orderNumber-t.orderNumber:e.createdAt&&t.createdAt?e.createdAt-t.createdAt:e.timestamp&&t.timestamp?e.timestamp-t.timestamp:0);for(const s of J)M.current.has(s.id)||M.current.set(s.id,z());const X=J.map(e=>({...e,_order:M.current.get(e.id)})).sort((e,t)=>e._order-t._order),K=e=>{const t=[...e].sort((e,t)=>{var a,s;const l=null!==(a=M.current.get(e.id))&&void 0!==a?a:1/0,n=null!==(s=M.current.get(t.id))&&void 0!==s?s:1/0;return l!==n?l-n:e.orderNumber&&t.orderNumber?e.orderNumber-t.orderNumber:e.createdAt&&t.createdAt?e.createdAt-t.createdAt:e.timestamp&&t.timestamp?e.timestamp-t.timestamp:0}),a=new Map;t.forEach((e,t)=>a.set(e.id,t+1)),M.current=a};(0,s.useEffect)(()=>{const e=[...(b.labelRects||[]).map(e=>({...e,type:ye.H.RECT})),...(b.labelPolygons||[]).map(e=>({...e,type:ye.H.POLYGON})),...(b.labelPolylines||[]).map(e=>({...e,type:ye.H.POLYLINE})),...(b.labelPoints||[]).map(e=>({...e,type:ye.H.POINT})),...(b.labelLines||[]).map(e=>({...e,type:ye.H.LINE})),...(b.labelTags||[]).map(e=>({...e,type:ye.H.TAG}))];K(e)},[b.image_id,null===(r=b.labelRects)||void 0===r?void 0:r.length,null===(d=b.labelPolygons)||void 0===d?void 0:d.length,null===(c=b.labelPolylines)||void 0===c?void 0:c.length,null===(u=b.labelPoints)||void 0===u?void 0:u.length,null===(g=b.labelLines)||void 0===g?void 0:g.length,null===(h=b.labelTags)||void 0===h?void 0:h.length]);const Z=e=>{requestAnimationFrame(()=>{var t;const a=X.findIndex(t=>t.id===e);a>=0&&(null===(t=V.current)||void 0===t||t.scrollToItem(a,"smart"))})};(0,s.useEffect)(()=>{w&&Z(w)},[w,X.length]),(0,s.useEffect)(()=>{H.current=X.length},[b.image_id]),(0,s.useEffect)(()=>{const e=X.length,t=H.current,a=X[e-1];e>t&&null!==a&&void 0!==a&&a.id&&Z(a.id),H.current=e},[X.length,null===(m=X[X.length-1])||void 0===m?void 0:m.id]);(0,s.useEffect)(()=>{if("Label"!==L)return;const e=X.filter(e=>k.includes(e.labelId)).map(e=>e.id);C(e);const t={...b,labelRects:(b.labelRects||[]).map(t=>({...t,show:e.includes(t.id)})),labelPolygons:(b.labelPolygons||[]).map(t=>({...t,show:e.includes(t.id)})),labelPolylines:(b.labelPolylines||[]).map(t=>({...t,show:e.includes(t.id)})),labelPoints:(b.labelPoints||[]).map(t=>({...t,show:e.includes(t.id)})),labelLines:(b.labelLines||[]).map(t=>({...t,show:e.includes(t.id)})),labelTags:(b.labelTags||[]).map(t=>({...t,show:e.includes(t.id)}))};v(b.image_id,t)},[L,k,X.length]),(0,s.useEffect)(()=>
1{if("Confidence"!==L)return;const e=X.filter(e=>e.isCreatedByAI&&"number"===typeof e.confidence&&E.min/100<=e.confidence&&E.max/100>=e.confidence).map(e=>e.id);C(e);const t={...b,labelRects:(b.labelRects||[]).map(t=>({...t,show:e.includes(t.id)})),labelPolygons:(b.labelPolygons||[]).map(t=>({...t,show:e.includes(t.id)})),labelPolylines:(b.labelPolylines||[]).map(t=>({...t,show:e.includes(t.id)})),labelPoints:(b.labelPoints||[]).map(t=>({...t,show:e.includes(t.id)})),labelLines:(b.labelLines||[]).map(t=>({...t,show:e.includes(t.id)})),labelTags:(b.labelTags||[]).map(t=>({...t,show:e.includes(t.id)}))};v(b.image_id,t)},[L,E,X.length]);let Q=X.filter(e=>{const t=null===e||void 0===e?void 0:e.status;if(null==t)return!0;if("string"===typeof t){return!["REJECTED","Rejected","DELETED","Deleted"].includes(t)}return!0});0===Q.length&&X.length>0&&(Q=X);const ee=Q.length;return(0,x.jsxs)("div",{className:"CombinedLabelsList",style:{width:p.width,height:"100%",display:"flex",flexDirection:"column",minHeight:0,overflow:"hidden"},onClickCapture:e=>{e.currentTarget.contains(e.target)&&!e.target.closest("[data-label-row-id], .video-tracking-toolbar")&&N(null)},children:[(0,x.jsx)(Ht,{actionsOnly:!0,labelRects:b.labelRects||[]}),0===ee?(0,x.jsx)("div",{style:{flex:1,display:"flex",flexDirection:"column",minHeight:0},children:(0,x.jsx)("div",{style:{flex:1,display:"flex",justifyContent:"center"},children:(0,x.jsx)(_t,{labelBefore:"Start labeling your image",labelAfter:"No labels created for this image yet"})})}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)("div",{className:"CombinedLabelsList__chrome",children:[(0,x.jsxs)("div",{className:"d-flex p-2 border-btm pb-3 mb-3 flex-wrap w-100",children:[(0,x.jsxs)("div",{className:"radio-group px-1 label-multiselect pt-0 d-flex align-items-center justify-content-between",style:{gap:"7%",flex:"auto"},children:[(0,x.jsx)("h6",{className:"m-0",children:" Filter by "}),(0,x.jsx)("div",{className:"radio-group px-1 label-multiselect pt-0 d-flex align-items-center",style:{flex:"auto",gap:"25px"},children:[{label:"Label",values:"Label"},{label:"AI Generated",values:"Confidence"}].map(e=>(0,x.jsxs)("label",{className:"radio-label",style:{cursor:"pointer"},children:[(0,x.jsx)("input",{type:"radio",name:"options",value:e.values,checked:L===e.values,style:{cursor:"pointer"},onChange:e=>{const t=e.target.value;S(t),C([]),O(!1)}}),e.label]},e.values))}),"None"!==L&&(0,x.jsx)(wt.g,{icon:jt.s0Q,className:"ms-auto text-danger cursor-pointer",title:"Clear filter",onClick:()=>{S("None"),P([]),T({min:0,max:100}),C([]),O(!1);const e={...b,labelRects:(b.labelRects||[]).map(e=>({...e,show:!0})),labelPolygons:(b.labelPolygons||[]).map(e=>({...e,show:!0})),labelPolylines:(b.labelPolylines||[]).map(e=>({...e,show:!0})),labelPoints:(b.labelPoints||[]).map(e=>({...e,show:!0})),labelLines:(b.labelLines||[]).map(e=>({...e,show:!0})),labelTags:(b.labelTags||[]).map(e=>({...e,show:!0}))};v(b.image_id,e)}})]}),"Label"===L&&(0,x.jsx)(Dt.Ay,{isMulti:!0,name:"labels",className:"basic-multi-select w-100 d-block p-1 mt-3",classNamePrefix:"select",menuPortalTarget:document.body,menuPosition:"fixed",menuShouldScrollIntoView:!1,styles:{menuPortal:e=>({...e,zIndex:1e4})},options:Y,placeholder:"Select Label",onChange:e=>{const t=(e||[]).map(e=>e.value);P(t)}}),"Confidence"===L&&(0,x.jsxs)("div",{className:"aiRangeslider",children:[(0,x.jsxs)("span",{className:"text-primary fw-bold",children:[E.min,"%"]}),(0,x.jsx)(Mt,{min:0,max:100,step:1,value:E,onChange:T}),(0,x.jsxs)("span",{className:"text-primary fw-bold text-right float-right",children:[E.max,"%"]})]})]}),(0,x.jsxs)("div",{className:"p-2 ms-1 d-flex flex-row w-100 align-items-center flex-wrap",children:[(0,x.jsxs)(At.A,{style:{display:"flex"},children:[(0,x.jsx)("input",{type:"checkbox",id:"combinedSelectAll",className:"mx-1 cursor-pointer",checked:D,onChange:e=>{return t=e.target.checked,O(t),void C(t?X.map(e=>e.id):[]);var t}}),(0,x.jsx)("label",{className:"cursor-pointer",htmlFor:"combinedSelectAll",children:"Select All"})]}),A.length>0&&(0,x.jsxs)("div",{className:"py-2",children:[(0,x.jsx)("button",{className:"btn btn-outline-primary2",onClick:()=>{const e=new Set(A.map(String)),t={...b,labelRects:(b.labelRects||[]).map(t=>e.has(String(t.id))?{...t,show:!1===t.show}:t),labelPolygons:(b.labelPolygons||[]).map(t=>e.has(String(t.id))?{...t,show:!1===t.show}:t),labelPolylines:(b.labelPolylines||[]).map(t=>e.has(String(t.id))?{...t,show:!1===t.show}:t),labelPoints:(b.labelPoints||[]).map(t=>e.has(String(t.id))?{...t,show:!1===t.show}:t),labelLines:(b.labelLines||[]).map(t=>e.has(String(t.id))?{...t,show:!1===t.show}:t),labelTags:(b.labelTags||[]).map(t=>e.has(String(t.id))?{...t,show:!1===t.show}:t)};v(b.image_id,t),_(e=>!e)},children:R?"Unhide":"Hide"})," ",(0,x.jsx)("button",{className:"btn btn-outline-primary2",onClick:()=>{const e=new Set(A.map(String));
1if(I){(b.labelRects||[]).filter(t=>e.has(String(t.id))).map(e=>e.id).forEach(e=>{$.o.deleteRectLabelById(b.image_id,e)});const t=G.R.getImageDataById(b.image_id)||b,a={...t,labelPolygons:(t.labelPolygons||[]).filter(t=>!e.has(String(t.id))),labelPolylines:(t.labelPolylines||[]).filter(t=>!e.has(String(t.id))),labelPoints:(t.labelPoints||[]).filter(t=>!e.has(String(t.id))),labelLines:(t.labelLines||[]).filter(t=>!e.has(String(t.id))),labelTags:(t.labelTags||[]).filter(t=>!e.has(String(t.id)))};return v(b.image_id,a),C([]),void O(!1)}const t={...b,labelRects:(b.labelRects||[]).filter(t=>!e.has(String(t.id))),labelPolygons:(b.labelPolygons||[]).filter(t=>!e.has(String(t.id))),labelPolylines:(b.labelPolylines||[]).filter(t=>!e.has(String(t.id))),labelPoints:(b.labelPoints||[]).filter(t=>!e.has(String(t.id))),labelLines:(b.labelLines||[]).filter(t=>!e.has(String(t.id))),labelTags:(b.labelTags||[]).filter(t=>!e.has(String(t.id)))};v(b.image_id,t),C([]),O(!1);const a=[...(t.labelRects||[]).map(e=>({...e,type:ye.H.RECT})),...(t.labelPolygons||[]).map(e=>({...e,type:ye.H.POLYGON})),...(t.labelPolylines||[]).map(e=>({...e,type:ye.H.POLYLINE})),...(t.labelPoints||[]).map(e=>({...e,type:ye.H.POINT})),...(t.labelLines||[]).map(e=>({...e,type:ye.H.LINE})),...(t.labelTags||[]).map(e=>({...e,type:ye.H.TAG}))];K(a)},children:"Delete Selected"})," ",(0,x.jsx)("button",{className:"btn btn-outline-primary2",onClick:()=>{const e=new Set(A),t={...b,labelRects:(b.labelRects||[]).filter(t=>e.has(t.id)),labelPolygons:(b.labelPolygons||[]).filter(t=>e.has(t.id)),labelPolylines:(b.labelPolylines||[]).filter(t=>e.has(t.id)),labelPoints:(b.labelPoints||[]).filter(t=>e.has(t.id)),labelLines:(b.labelLines||[]).filter(t=>e.has(t.id)),labelTags:(b.labelTags||[]).filter(t=>e.has(t.id))};v(b.image_id,t),C([]),O(!1);const a=[...(t.labelRects||[]).map(e=>({...e,type:ye.H.RECT})),...(t.labelPolygons||[]).map(e=>({...e,type:ye.H.POLYGON})),...(t.labelPolylines||[]).map(e=>({...e,type:ye.H.POLYLINE})),...(t.labelPoints||[]).map(e=>({...e,type:ye.H.POINT})),...(t.labelLines||[]).map(e=>({...e,type:ye.H.LINE})),...(t.labelTags||[]).map(e=>({...e,type:ye.H.TAG}))];K(a)},children:"Delete Unselected"})]})]})]}),(0,x.jsx)("div",{className:"CombinedLabelsListContent",ref:F,style:{width:p.width},children:(0,x.jsx)(Ft.Y1,{ref:V,height:U.height,width:U.width,itemCount:Q.length,itemSize:88,overscanCount:5,itemKey:e=>{var t;return String((null===(t=Q[e])||void 0===t?void 0:t.id)||e)},itemData:{labels:Q,renderRow:(e,t)=>{const a=String(e.id),s=null!=e.labelId&&f.find(t=>t.id===e.labelId)||null;return(0,x.jsxs)("div",{style:t,className:"d-flex align-items-center","data-label-row-id":a,children:[!(I&&e.type===ye.H.RECT&&e.trackId)&&(0,x.jsxs)("div",{className:"text-secondary me-2",style:{width:30,textAlign:"right"},children:["#",M.current.get(a)]}),(0,x.jsx)(wt.g,{icon:W(e.type),className:"me-2 text-secondary"}),(0,x.jsx)(Rt,{labelCollection:key,trackDisplayNumber:I&&e.type===ye.H.RECT&&e.trackId?Number(Bt.d.shortTrackId(e.trackId)):void 0,size:{width:p.width,height:40},isActive:a===String(null!==w&&void 0!==w?w:""),isHighlighted:a===String(null!==j&&void 0!==j?j:""),isCreatedbyAI:!!e.isCreatedByAI,id:a,onDelete:()=>(e=>{const t=q(e.type);if(!t)return;let a=null;try{var s;e.type===ye.H.RECT?$.o.deleteRectLabelById(b.image_id,e.id):(a={...b,[t]:null===(s=b[t])||void 0===s?void 0:s.filter(t=>t.id!==e.id)},v(b.image_id,a))}finally{C(t=>t.filter(t=>t!==e.id));const t=a?[...(a.labelRects||[]).map(e=>({...e,type:ye.H.RECT})),...(a.labelPolygons||[]).map(e=>({...e,type:ye.H.POLYGON})),...(a.labelPolylines||[]).map(e=>({...e,type:ye.H.POLYLINE})),...(a.labelPoints||[]).map(e=>({...e,type:ye.H.POINT})),...(a.labelLines||[]).map(e=>({...e,type:ye.H.LINE})),...(a.labelTags||[]).map(e=>({...e,type:ye.H.TAG}))]:X.filter(t=>t.id!==e.id);K(t)}})(e),onHide:()=>(e=>{const t=q(e.type);if(t)try{if(e.type===ye.H.RECT)$.o.hideunhideRectLabelById(b.image_id,e.id);else{var a;const s={...b,[t]:null===(a=b[t])||void 0===a?void 0:a.map(t=>String(t.id)===String(e.id)?{...t,show:!1===t.show}:t)};v(b.image_id,s)}}catch{}})(e),show:e.show,onChecked:(e,t)=>((e,t)=>{C(a=>t?Array.from(new Set([...a,e])):a.filter(t=>t!==e)),t||O(!1)})(e,t),checked:A.includes(a),selectAll:D,value:s,options:f,onSelectLabel:(t,a)=>((e,t)=>{var a;const s=q(e.type);if(!s)return;if(I&&e.type===ye.H.RECT&&e.trackId)return Bt.d.updateTrackLabel(e.trackId,t),void y(t);const l=String(e.id),n={...b,[s]:null===(a=b[s])||void 0===a?void 0:a.map(e=>String(e.id)===l?{...e,labelId:t,status:pt.$.ACCEPTED}:e)};v(b.image_id,n),y(t)})(e,a)})]})}},children:na})})]})]})});var ra=a(11797),da=a(89804);function ca(){const[e,t]=s.useState(""),[a,l]=s.useState(!1),i=G.R.getActiveImageData(),o=a?i.flags:i.flags.slice(0,2);function r(){ce.M.dispatch((0,n.PD)(i.image_id,i)),t("")}const d=(0,s.useMemo)(()=>{var e=localStorage.getItem("flags").split(",");let t=[];for(var a=0;a<e.length;a++)t[a]={},t[a].id=a,t[a].name=e[a];return i.flags.length?t.filter((e,t)=>
1!i.flags.find(t=>t.comment===e.name)):t},[i.flags]);function c(t){if(t.preventDefault(),e.replace(/\s{2,}/g," ").trim()){var a=new Date,s=a.toLocaleDateString(),l=a.toLocaleTimeString(),n=window.localStorage.getItem("name")?window.localStorage.getItem("name"):"default user";i.flags.push({comment:e,timestamp:s+" || "+l,user_name:n,type:"comment"}),r()}else window.alert("comment should not be empty")}return(0,x.jsxs)("div",{className:"w-100 pb-0",children:[(0,x.jsxs)("div",{className:"comment-list-container",style:{maxHeight:"400px",overflowY:"auto"},children:[(0,x.jsx)("ul",{className:"pl-0 mb-0",children:o.map((e,t)=>(0,x.jsxs)("li",{className:window.localStorage.getItem("name")===e.user_name?"current-user p-1 pt-2 px-3 mt-1 container-card w-100":"p-1 px-3 mb-1 container-card w-100",children:[(0,x.jsxs)("div",{className:"d-flex justify-content-between w-100",children:[(0,x.jsxs)("span",{style:{fontSize:14},children:[e.user_name," ","flag"===e.type&&(0,x.jsx)(wt.g,{icon:jt.s6x,color:"rgb(105, 199, 255)"})]}),(0,x.jsx)("span",{className:"text-right",style:{fontSize:12},children:e.timestamp})]}),(0,x.jsxs)("div",{className:"d-flex align-items-start justify-content-between w-100",children:[(0,x.jsx)("h6",{className:window.localStorage.getItem("name")===e.user_name?"text-break m-0":"text-primary text-break m-0",style:{wordBreak:"break-word",overflowWrap:"break-word",whiteSpace:"normal"},children:e.comment}),window.localStorage.getItem("name")===e.user_name&&(0,x.jsx)("button",{className:"cursor-pointer plain-button2 text-danger p-1",onClick:t=>{t.preventDefault(),function(e,t){i.flags=i.flags.filter(function(a){return a.comment!=e||a.timestamp!=t}),r()}(e.comment,e.timestamp)},children:(0,x.jsx)(Lt.d7,{className:"text-danger wf-icon"})})]})]},t))}),i.flags.length>2&&(0,x.jsx)("div",{className:"text-center m-1 grey-card10 rounded",onClick:()=>l(e=>!e),children:(0,x.jsx)(St.A,{color:"link p-0",style:{fontSize:"90%",textDecoration:"none"},children:a?"View less":"View more"})})]}),(0,x.jsxs)("div",{className:"container-card p-2 w-100",children:[(0,x.jsxs)("div",{className:"TagLabelsListContent",children:[d.length>0&&(0,x.jsx)("div",{className:"ps-1 mx-0 w-100",children:"Default flags"}),d.map(e=>(0,x.jsx)("div",{className:"TagItem badge border text-primary m-1 py-2 px-3 cursor-pointer",onClickCapture:t=>{t.preventDefault(),function(e){var t=new Date,a=t.toLocaleDateString(),s=t.toLocaleTimeString(),l=window.localStorage.getItem("name")?window.localStorage.getItem("name"):"default user";i.flags=[...i.flags,{comment:e,timestamp:a+" || "+s,user_name:l,type:"flag"}],r()}(e.name)},children:e.name},e.id))]},"taTagLabelsListContent g-labels-list-content "),(0,x.jsxs)(At.A,{className:"pt-3 w-100 pb-0",onSubmit:c,children:[(0,x.jsx)("textarea",{className:"container-card p-2",style:{width:"100%",height:120},placeholder:"Enter the comment",onKeyDown:t=>{"Enter"==t.key&&0==t.shiftKey&&e&&(t.preventDefault(),c(t))},onChange:e=>{e.preventDefault(),t(e.target.value)},value:e}),(0,x.jsx)(St.A,{type:"submit",className:"d-j-a rounded border p-1 px-3 mt-2 w-100",color:"primary",children:"Add Flag"})]})]})]})}class ua extends s.Component{constructor(e){super(e),this.labelsToolkitRef=null,this.groupedContainerRef=null,this.sortable=null,this.tabs=void 0,this.initSortable=()=>{this.groupedContainerRef&&(this.destroySortable(),this.sortable=ra.Ay.create(this.groupedContainerRef,{animation:150,handle:".drag-handle",draggable:".LabelSection",ghostClass:"drag-ghost",onEnd:()=>{const e=Array.from(this.groupedContainerRef.querySelectorAll(".LabelSection")).map(e=>Number(e.dataset.labelType)).filter(e=>!Number.isNaN(e));if(e.length){this.setState({order:e});try{localStorage.setItem("annotation_types_order",JSON.stringify(e))}catch{}}}}))},this.destroySortable=()=>{this.sortable&&(this.sortable.destroy(),this.sortable=null)},this.updateToolkitSize=()=>{if(!this.labelsToolkitRef)return;const e=this.labelsToolkitRef.getBoundingClientRect();this.setState({size:{width:e.width,height:e.height||300}})},this.toggleSection=e=>{this.setState(t=>{const a=t.expandedSections[e],s=Object.keys(t.expandedSections).reduce((e,t)=>
1(e[t]=!1,e),{});return s[e]=!a||Object.values(t.expandedSections).every(e=>!e),{expandedSections:s}})},this.setOverlayOpacity=e=>{const t=Math.max(0,Math.min(1,e));this.setState({overlayOpacity:t});try{localStorage.setItem("opacityValue",String(t))}catch{}},this.headerClickHandler=e=>{this.props.updateActiveLabelType(e),this.props.updateActiveLabelId(null)},this.getAnnotationCount=()=>{var e,t,a,s,l,n;const{activeImageIndex:i,activeLabelType:o,imagesData:r}=this.props,d=r[i],c=It.j.getTaskType();if(!d)return 0;var u,g,h,m,p,b;if("ALL"===c)return((null===(u=d.labelRects)||void 0===u?void 0:u.length)||0)+((null===(g=d.labelPolygons)||void 0===g?void 0:g.length)||0)+((null===(h=d.labelPolylines)||void 0===h?void 0:h.length)||0)+((null===(m=d.labelPoints)||void 0===m?void 0:m.length)||0)+((null===(p=d.labelLines)||void 0===p?void 0:p.length)||0)+((null===(b=d.labelTags)||void 0===b?void 0:b.length)||0);switch(o){case ye.H.RECT:return(null===(e=d.labelRects)||void 0===e?void 0:e.length)||0;case ye.H.POINT:return(null===(t=d.labelPoints)||void 0===t?void 0:t.length)||0;case ye.H.POLYGON:return(null===(a=d.labelPolygons)||void 0===a?void 0:a.length)||0;case ye.H.POLYLINE:return(null===(s=d.labelPolylines)||void 0===s?void 0:s.length)||0;case ye.H.LINE:return(null===(l=d.labelLines)||void 0===l?void 0:l.length)||0;case ye.H.TAG:return(null===(n=d.labelTags)||void 0===n?void 0:n.length)||0;default:return 0}},this.renderChildren=()=>{const{size:e}=this.state,{activeImageIndex:t,imagesData:a,activeLabelType:s}=this.props;return this.tabs.reduce((l,n,i)=>{const o=n===s,r=((0,B.find)(we,{labelType:n}),e.height-this.tabs.length*q.w.TOOLKIT_TAB_HEIGHT_PX),d=(0,x.jsxs)("div",{className:(c="Content",A()(c,{active:o})),style:{height:o?r:0},children:[n===ye.H.RECT&&(0,x.jsx)(Wt,{size:{width:e.width-20,height:r-20},imageData:a[t]}),n===ye.H.POINT&&(0,x.jsx)(qt,{size:{width:e.width-20,height:r-20},imageData:a[t]}),n===ye.H.TAG&&(0,x.jsx)(la,{size:{width:e.width-20,height:r-20},imageData:a[t]}),n===ye.H.LINE&&(0,x.jsx)(aa,{size:{width:e.width-20,height:r-20},imageData:a[t]}),n===ye.H.POLYGON&&(0,x.jsx)(Kt,{size:{width:e.width-20,height:r-20},imageData:a[t]}),n===ye.H.POLYLINE&&(0,x.jsx)(ea,{size:{width:e.width-20,height:r-20},imageData:a[t]}),n===ye.H.AUDIO&&(0,x.jsx)(Wt,{size:{width:e.width-20},imageData:a[t]})]},"Content_"+i);var c;return l.push([d]),l},[])},this.renderGroupedChildren=()=>{const{size:e,expandedSections:t,order:a}=this.state,{activeImageIndex:s,imagesData:l}=this.props;if(!e)return null;const n=e.height-this.tabs.length*q.w.TOOLKIT_TAB_HEIGHT_PX;return(0,x.jsx)("div",{className:"AllLabelsContainer w-100 labels-panel__scroll",ref:e=>this.groupedContainerRef=e,children:a.map((a,i)=>{var o,r;const d=(0,B.find)(we,{labelType:a}),c=t[a];return(0,x.jsxs)("div",{className:"LabelSection grey-card p-2 mb-3","data-label-type":a,style:{maxHeight:"calc(100vh - 420px)"},children:[(0,x.jsxs)("div",{className:"d-a justify-content-between ",style:{cursor:"pointer"},onClick:()=>this.toggleSection(a),children:[(0,x.jsxs)("div",{className:"d-a",children:[(0,x.jsx)("span",{className:"drag-handle me-2",title:"Drag to reorder",style:{cursor:"grab",userSelect:"none"},onMouseDown:e=>e.stopPropagation(),children:"\u22ee\u22ee"}),(null===d||void 0===d?void 0:d.imageSrc)&&(0,x.jsx)("img",{draggable:!1,className:"Ico me-2",src:d.imageSrc,alt:(null===d||void 0===d?void 0:d.imageAlt)||"",style:{width:20,height:20}}),(0,x.jsx)("strong",{children:(null===d||void 0===d?void 0:d.headerText)||ye.H[a]}),(0,x.jsx)("span",{className:"ms-2 badge bg-info text-dark",children:(null===(o=l[s])||void 0===o||null===(r=o["label"+((null===d||void 0===d?void 0:d.headerText)||ye.H[a])+"s"])||void 0===r?void 0:r.length)||0})]}),(0,x.jsx)(wt.g,{icon:c?jt.w2A:jt.Jt$,style:{fontSize:"14px"}})]}),c&&(0,x.jsxs)("div",{className:"Content w-100",children:[a===ye.H.RECT&&(0,x.jsx)(Wt,{size:{width:e.width-20,height:n/this.tabs.length-20},imageData:l[s]}),a===ye.H.POINT&&(0,x.jsx)(qt,{size:{width:e.width-20,height:n/this.tabs.length-20},imageData:l[s]}),a===ye.H.TAG&&(0,x.jsx)(la,{size:{width:e.width-20,height:n/this.tabs.length-20},imageData:l[s]}),a===ye.H.LINE&&(0,x.jsx)(aa,{size:{width:e.width-20,height:n/this.tabs.length-20},imageData:l[s]}
1),a===ye.H.POLYGON&&(0,x.jsx)(Kt,{size:{width:e.width,height:n/this.tabs.length-20},imageData:l[s]}),a===ye.H.POLYLINE&&(0,x.jsx)(ea,{size:{width:e.width-20,height:n/this.tabs.length-20},imageData:l[s]})]})]},a)})})};let t=[];try{var a;t=(null===(a=localStorage.getItem("annotation_types"))||void 0===a?void 0:a.split(","))||[]}catch(r){console.log(r)}this.tabs=(t||[]).map(e=>ye.H[e]).filter(Boolean);const s=this.tabs.length?this.tabs[0]:ye.H.RECT,l=e.activeLabelType||s;e.updateActiveLabelType(l);const n=this.tabs.reduce((e,t,a)=>(e[t]=0===a,e),{});let i=.2;try{const e=localStorage.getItem("opacityValue");if(null!=e){const t=parseFloat(e);Number.isNaN(t)||(i=Math.max(0,Math.min(1,t)))}}catch{}let o=[...this.tabs];try{const e=localStorage.getItem("annotation_types_order");if(e){const t=JSON.parse(e).filter(e=>this.tabs.includes(e)),a=this.tabs.filter(e=>!t.includes(e));o=[...t,...a]}}catch{}this.state={size:null,expandedSections:n,useCombinedView:!0,order:o,overlayOpacity:i,showFlagPanel:!1}}componentDidMount(){this.updateToolkitSize(),window.addEventListener(ft.B.RESIZE,this.updateToolkitSize),setTimeout(this.initSortable,0)}componentDidUpdate(e,t){this.state.useCombinedView===t.useCombinedView||this.state.useCombinedView||setTimeout(this.initSortable,0)}componentWillUnmount(){window.removeEventListener(ft.B.RESIZE,this.updateToolkitSize),this.destroySortable()}render(){var e;const{activeImageIndex:t,imagesData:a}=this.props,{size:s,useCombinedView:l,overlayOpacity:n,showFlagPanel:i}=this.state,o=It.j.getTaskType(),r=this.getAnnotationCount(),d=a[t],c=(null===d||void 0===d||null===(e=d.flags)||void 0===e?void 0:e.length)||0;return console.log("taskType",o),(0,x.jsxs)("div",{className:"labels-panel",children:[(0,x.jsxs)("div",{className:"labels-panel__chrome",children:[(0,x.jsxs)("div",{className:"d-a justify-content-between mb-3",children:[(0,x.jsxs)("div",{className:"d-a gap-2",children:[(0,x.jsx)("div",{children:"Annotations"}),(0,x.jsxs)("button",{type:"button",className:"labelsToolkit__flagButton plain-button2 position-relative d-a",title:"Add image flag","aria-label":"Add image flag","aria-expanded":i,onClick:e=>{e.stopPropagation(),this.setState(e=>({showFlagPanel:!e.showFlagPanel}),this.updateToolkitSize)},children:[(0,x.jsx)("img",{src:"/ico/Flag.png",className:"wf-flag-icon",style:{width:"15px"},alt:""}),(0,x.jsx)(da.A,{color:"danger",className:"labelsToolkit__flagBadge",children:c})]})]}),(0,x.jsx)("h6",{className:"text-primary fw-bold m-0",children:r})]}),i&&d&&(0,x.jsx)("div",{className:"labelsToolkit__flagPanel mb-3 w-100",onClick:e=>e.stopPropagation(),children:(0,x.jsx)(ca,{})})]}),"ALL"!==o?(0,x.jsxs)("div",{className:"LabelsToolkit labels-panel__main",ref:e=>this.labelsToolkitRef=e,onClick:()=>p.v.switchCtx(k.E.RIGHT_NAVBAR),children:[(0,x.jsxs)("div",{className:"container-card mb-2 p-2 w-100 labels-panel__chrome",children:[(0,x.jsxs)("div",{className:"d-a justify-content-between",children:[(0,x.jsxs)("div",{className:"d-a gap-1",children:[(0,x.jsx)(Lt.bM,{className:"wf-icon-small"}),(0,x.jsx)("small",{className:"text-secondary fw-bold",children:"Layer Opacity"})]}),(0,x.jsxs)("label",{className:"text-primary fw-bold",children:[Math.round(100*n),"%"]})]}),(0,x.jsx)(Ot.A,{type:"range",min:0,max:1,step:.01,value:n,onChange:e=>this.setOverlayOpacity(parseFloat(e.target.value)),className:"mt-2"})]}),(0,x.jsx)("div",{className:"labels-panel__main",children:this.state.size&&this.renderChildren()})]}):(0,x.jsxs)("div",{className:"LabelsToolkit labels-panel__main",ref:e=>this.labelsToolkitRef=e,onClick:()=>p.v.switchCtx(k.E.RIGHT_NAVBAR),children:[(0,x.jsxs)("div",{className:"labels-panel__chrome w-100",children:[(0,x.jsxs)("div",{className:"d-a container-card rounded p-1 w-100",style:{background:"var(--card-color)"},children:[(0,x.jsx)("button",{className:"small-font "+(this.state.useCombinedView?" container-card p-0 rounded w-50 border-0 text-primary py-1 fw-bold":"w-50 plain-button2 text-secondary fw-bold"),style:{opacity:"unset"},"aria-pressed":this.state.useCombinedView,disabled:this.state.useCombinedView,onClick:()=>{this.state.useCombinedView||this.setState({useCombinedView:!0})}
1,children:"Combined View"}),(0,x.jsx)("button",{className:"small-font "+(this.state.useCombinedView?"w-50 plain-button2 text-secondary fw-bold":" container-card p-0 rounded w-50 border-0 text-primary py-1 fw-bold"),style:{opacity:"unset"},"aria-pressed":!this.state.useCombinedView,disabled:!this.state.useCombinedView,onClick:()=>{this.state.useCombinedView&&this.setState({useCombinedView:!1},()=>{this.initSortable()})},children:"Grouped View"})]}),(0,x.jsxs)("div",{className:"mb-2 w-100 mt-2 container-card p-2",children:[(0,x.jsxs)("div",{className:"d-a justify-content-between",children:[(0,x.jsxs)("div",{className:"d-a gap-1",children:[(0,x.jsx)(Lt.bM,{className:"wf-icon-small"}),(0,x.jsx)("small",{className:"text-secondary fw-bold",children:"Layer Opacity"})]}),(0,x.jsxs)("label",{className:"text-primary fw-bold",children:[Math.round(100*n),"%"]})]}),(0,x.jsx)(Ot.A,{type:"range",min:0,max:1,step:.01,value:n,onChange:e=>this.setOverlayOpacity(parseFloat(e.target.value)),className:"mt-2"})]})]}),(0,x.jsx)("div",{className:"labels-panel__main",children:s&&(l?(0,x.jsx)(oa,{imageData:a[t],size:s}):this.renderGroupedChildren())})]})]})}}const ga={updateImageDataById:n.PD,updateActiveLabelType:n.sh,updateActiveLabelId:n.vD},ha=(0,l.Ng)(e=>({activeImageIndex:e.labels.activeImageIndex,activeLabelType:e.labels.activeLabelType,imagesData:e.labels.imagesData,tagName:e.labels.Tags,projectType:e.general.projectData.type}),ga)(ua);var ma=a(9778),pa=a(16877),ba=a(93783);const va=(e,t)=>({...e||t,fileData:t.fileData,loadStatus:!0,seen:!0});var xa=a(23033);class fa{}fa.getIndicator=e=>{switch(e){case ba.$.ADD:return"/ico/plus.png";case ba.$.RESIZE:return"/ico/resize.png";case ba.$.CLOSE:return"/ico/close.png";case ba.$.MOVE:return"/ico/move.png";case ba.$.CANCEL:return"/ico/cancel.png";case ba.$.GRAB:return"/ico/hand-fill.png";case ba.$.GRABBING:return"/ico/hand-fill-grab.png";case ba.$.WAIT:default:return null}},fa.getCursorStyle=e=>A()("Cursor",{move:e===ba.$.MOVE,add:e===ba.$.ADD,resize:e===ba.$.RESIZE,close:e===ba.$.CLOSE,cancel:e===ba.$.CANCEL,grab:e===ba.$.GRAB,grabbing:e===ba.$.GRABBING,wait:e===ba.$.WAIT});var ya=a(36088);const wa={updatePreventCustomCursorStatus:o.Fo,updateImageDataById:n.PD},ja=(0,l.Ng)(e=>({activeLabelId:e.labels.activeLabelId,highlightedLabelId:e.labels.highlightedLabelId}),wa)(e=>{let{position:t,updatePreventCustomCursorStatus:a,activeLabelId:l,highlightedLabelId:n,labelData:i,imageData:o,updateImageDataById:r}=e;const[d,c]=(0,s.useState)(!1),u=()=>d||i.id===l||i.id===n;return(0,x.jsx)("div",{className:A()("LabelControlPanel",{"is-active":u()}),style:{top:t.y,left:t.x},onMouseEnter:()=>{a(!0),c(!0)},onMouseLeave:()=>{a(!1),c(!1)},children:u()&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(z.c,{image:"ico/plus.png",imageAlt:"plus",buttonSize:{width:30,height:30},padding:15,onClick:()=>{const e={...o,labelRects:o.labelRects.map(e=>{if(e.id===i.id){const t=(0,B.findLast)(G.R.getLabelNames(),{name:e.suggestedLabel});return{...e,status:pt.$.ACCEPTED,labelId:t?t.id:e.labelId}}return e}),labelPoints:o.labelPoints.map(e=>{if(e.id===i.id){const t=(0,B.findLast)(G.R.getLabelNames(),{name:e.suggestedLabel});return{...e,status:pt.$.ACCEPTED,labelId:t?t.id:e.labelId}}return e})};r(o.image_id,e),a(!1)}}),(0,x.jsx)(z.c,{image:"/ico/trash.png",imageAlt:"trash",buttonSize:{width:30,height:30},padding:15,onClick:()=>{$.o.deleteImageLabelById(o.image_id,i.id),a(!1)}}),i.suggestedLabel&&$.o.labelExistsInLabelNames(i.suggestedLabel)?(0,x.jsx)("div",{className:"SuggestedLabel",children:i.suggestedLabel}):null]})})});var Na=a(4028),Ia=a(13530);function La(){var e,t,a;
1const i=(0,l.wA)(),[r,d]=(0,s.useState)(!1),[c,u]=(0,s.useState)(!1),[g,h]=(0,s.useState)(""),[m,p]=(0,s.useState)(72),b=(0,l.d4)(e=>e.general.inlineLabelPicker),v=(0,l.d4)(e=>e.labels.labels),f=(0,l.d4)(e=>e.labels.activeImageIndex),y=(0,l.d4)(e=>e.labels.imagesData),w=(0,s.useRef)(null),j=(0,s.useMemo)(()=>{var e;return null===f||void 0===f?null:null!==(e=null===y||void 0===y?void 0:y[f])&&void 0!==e?e:null},[f,y]),N=(0,s.useMemo)(()=>{var e;if(b.open&&j&&null!=b.shapeId&&"rect"===b.shapeType)return null===(e=j.labelRects)||void 0===e?void 0:e.find(e=>String(e.id)===String(b.shapeId))},[b.open,b.shapeId,b.shapeType,j]),I=(0,s.useMemo)(()=>{var e;if(b.open&&j&&null!=b.shapeId&&"polygon"===b.shapeType)return null===(e=j.labelPolygons)||void 0===e?void 0:e.find(e=>String(e.id)===String(b.shapeId))},[b.open,b.shapeId,b.shapeType,j]),L=(0,s.useMemo)(()=>{var e;if(b.open&&j&&null!=b.shapeId&&"polyline"===b.shapeType)return null===(e=j.labelPolylines)||void 0===e?void 0:e.find(e=>String(e.id)===String(b.shapeId))},[b.open,b.shapeId,b.shapeType,j]),S=(0,s.useMemo)(()=>{switch(b.shapeType){case"rect":return null!==N&&void 0!==N?N:null;case"polygon":return null!==I&&void 0!==I?I:null;case"polyline":return null!==L&&void 0!==L?L:null;default:return null}},[b.shapeType,N,I,L]),A=(0,s.useMemo)(()=>{var e;return null!==(e=v.find(e=>e.id===(null===S||void 0===S?void 0:S.labelId)))&&void 0!==e?e:null},[v,S]),C=(0,s.useMemo)(()=>v.findIndex(e=>e.id===(null===S||void 0===S?void 0:S.labelId)),[v,S]),k=(0,s.useMemo)(()=>kt(v,g),[v,g]),P=()=>{u(!1),h(""),i((0,o.z0)({open:!1,clientX:null,clientY:null,shapeId:null,shapeType:null}))};if((0,s.useLayoutEffect)(()=>{b.open&&(d(!1),u(!1),h(""))},[b.open,b.shapeId,b.shapeType]),(0,s.useEffect)(()=>{if(!b.open)return;const e=e=>{w.current&&(w.current.contains(e.target)||P())},t=e=>{"Escape"===e.key&&(c?(u(!1),h("")):P())};return window.addEventListener("mousedown",e),window.addEventListener("keydown",t),()=>{window.removeEventListener("mousedown",e),window.removeEventListener("keydown",t)}},[b.open,c]),(0,s.useLayoutEffect)(()=>{if(!b.open)return;const e=()=>{w.current&&p(w.current.offsetHeight||72)};return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}},[b.open,r,c,null===S||void 0===S||null===(e=S.comments)||void 0===e?void 0:e.length]),(0,s.useEffect)(()=>{b.open&&(j||P(),"rect"===b.shapeType&&j&&null!=b.shapeId&&!N&&P(),"polygon"===b.shapeType&&j&&null!=b.shapeId&&!I&&P(),"polyline"===b.shapeType&&j&&null!=b.shapeId&&!L&&P())},[b.open,b.shapeId,b.shapeType,j,N,I,L]),!b.open)return null;if(null==b.shapeId||!b.shapeType||null===b.clientX||null===b.clientY)return null;if(!j)return null;if("rect"===b.shapeType&&!N)return null;if("polygon"===b.shapeType&&!I)return null;if("polyline"===b.shapeType&&!L)return null;const E=Math.max(8,Math.min(b.clientX+8,window.innerWidth-320-8)),T=Math.max(8,Math.min(b.clientY+8,window.innerHeight-Math.min(m,520)-8)),R=e=>{if("rect"===b.shapeType&&G.R.isVideoTrackingEnabled()&&null!==N&&void 0!==N&&N.trackId)return Bt.d.updateTrackLabel(N.trackId,e),i((0,n.vD)(b.shapeId)),i((0,n.A2)(e)),u(!1),void h("");const t={...j,labelRects:"rect"===b.shapeType?j.labelRects.map(t=>String(t.id)===String(b.shapeId)?{...t,labelId:e,status:pt.$.ACCEPTED}:t):j.labelRects,labelPolygons:"polygon"===b.shapeType?j.labelPolygons.map(t=>String(t.id)===String(b.shapeId)?{...t,labelId:e,status:pt.$.ACCEPTED}:t):j.labelPolygons,labelPolylines:"polyline"===b.shapeType?j.labelPolylines.map(t=>String(t.id)===String(b.shapeId)?{...t,labelId:e}:t):j.labelPolylines};i((0,n.PD)(j.image_id,t)),i((0,n.vD)(b.shapeId)),i((0,n.A2)(e)),u(!1),h("")},_=null!==(t=null===S||void 0===S||null===(a=S.comments)||void 0===a?void 0:a.length)&&void 0!==t?t:0,D=!1!==(null===S||void 0===S?void 0:S.show);return(0,x.jsx)("div",{ref:w,className:"InlineRectLabelPicker",onMouseDown:e=>e.stopPropagation(),style:{position:"fixed",left:E,top:T,width:320,maxHeight:c?"none":520,zIndex:1e6,overflow:"visible"},children:(0,x.jsxs)("div",{className:"InlineRectLabelPicker__Card",children:[(0,x.jsxs)("div",{className:"InlineRectLabelPicker__Toolbar",children:[(0,x.jsx)("div",{className:"InlineRectLabelPicker__SelectWrap",children:v.length>0?(0,x.jsxs)("div",{className:"InlineRectLabelPicker__Dropdown",children:[(0,x.jsxs)("button",{type:"button",className:"InlineRectLabelPicker__Select",onClick:e=>{e.stopPropagation(),h(""),u(e=>!e)},children:[(0,x.jsxs)("span",{className:"InlineRectLabelPicker__SelectValue",children:[C>-1&&(0,x.jsx)("span",{className:"InlineRectLabelPicker__Index",style:{color:(null===A||void 0===A?void 0:A.color)||"#ff7a1a"},children:C}),A?A.name:"Select label"]}),(0,x.jsx)("span",{className:"InlineRectLabelPicker__Caret",children:"\u25be"})]}),c&&(0,x.jsxs)("div",{className:"InlineRectLabelPicker__Menu",children:[(0,x.jsx)("input",{type:"search",className:"InlineRectLabelPicker__Search",value:g,placeholder:"Search labels...","aria-label":"Search labels",autoF
1ocus:!0,onChange:e=>h(e.target.value),onKeyDown:e=>{e.stopPropagation(),"Escape"===e.key?(e.preventDefault(),u(!1),h("")):"Enter"===e.key&&k.length>0&&(e.preventDefault(),R(k[0].id))}}),(0,x.jsx)("div",{className:"InlineRectLabelPicker__Options",children:k.length>0?k.map(e=>(0,x.jsxs)("button",{type:"button",className:"InlineRectLabelPicker__Option"+(String(null===S||void 0===S?void 0:S.labelId)===String(e.id)?" InlineRectLabelPicker__Option--active":""),onClick:()=>R(e.id),children:[(0,x.jsx)("span",{className:"InlineRectLabelPicker__Index",style:{color:e.color||"#ff7a1a"},children:v.findIndex(t=>t.id===e.id)}),(0,x.jsx)("span",{className:"InlineRectLabelPicker__OptionName",children:e.name})]},e.id)):(0,x.jsx)("div",{className:"InlineRectLabelPicker__Empty",children:"No matching labels"})})]})]}):(0,x.jsx)("small",{className:"InlineRectLabelPicker__Select InlineRectLabelPicker__AddLabels flex-fill",children:"No labels available"})}),(0,x.jsx)("button",{className:"InlineRectLabelPicker__IconButton",type:"button",onClick:()=>{if(null!=b.shapeId&&("rect"===b.shapeType&&$.o.hideunhideRectLabelById(j.image_id,b.shapeId),"polygon"===b.shapeType&&$.o.hideunhidePolygonLabelById(j.image_id,b.shapeId),"polyline"===b.shapeType)){const e={...j,labelPolylines:j.labelPolylines.map(e=>String(e.id)===String(b.shapeId)?{...e,show:!1===e.show}:e)};i((0,n.PD)(j.image_id,e))}},title:D?"hide":"show",children:D?(0,x.jsx)(Lt.bM,{className:"wf-icon-small text-white"}):(0,x.jsx)(Lt.aR,{className:"wf-icon-small text-white"})}),(0,x.jsxs)("button",{className:"InlineRectLabelPicker__IconButton InlineRectLabelPicker__FlagButton",type:"button",onClick:()=>{d(e=>!e)},title:"flags and comments",children:[_>0&&(0,x.jsx)("span",{className:"InlineRectLabelPicker__Badge",children:_}),(0,x.jsx)("img",{src:"/ico/Flag.png",alt:"Flags",style:{width:"12px"}})]}),(0,x.jsx)("button",{className:"InlineRectLabelPicker__IconButton",type:"button",onClick:()=>{null!=b.shapeId&&("rect"===b.shapeType&&$.o.deleteRectLabelById(j.image_id,b.shapeId),"polygon"===b.shapeType&&$.o.deletePolygonLabelById(j.image_id,b.shapeId),"polyline"===b.shapeType&&$.o.deletePolylineLabelById(j.image_id,b.shapeId),P())},title:"delete",children:(0,x.jsx)(Lt.d7,{className:"wf-icon text-white"})}),(0,x.jsx)("button",{className:"InlineRectLabelPicker__IconButton",type:"button",onClick:P,title:"close",children:(0,x.jsx)(Lt.US,{className:"wf-icon text-secondary-small text-white"})})]}),r&&null!=b.shapeId&&(0,x.jsx)("div",{className:"InlineRectLabelPicker__Comments",children:(0,x.jsx)(Ct,{id:b.shapeId})})]})})}var Sa=a(81447);class Aa extends s.Component{constructor(e){super(e),this.previewAnimationFrame=null,this.pendingPreviewPoint=null,this.aiInferenceController=null,this.leftMouseDownPickerTarget=null,this.cancelPendingAiInference=()=>{this.aiInferenceController&&(this.aiInferenceController.abort(),this.aiInferenceController=null,ce.M.dispatch((0,o.FX)(null)),It.j.setViewPortActionsDisabledStatus(!1))},this.fetchAiInference=async(e,t)=>{var a,s,l,n;const i=await fetch(`${e}?compat_sync=false`,t),o=await i.json();if(202!==i.status)return{status:i.status,result:o};const r=(null===o||void 0===o||null===(a=o.job)||void 0===a?void 0:a.inference_id)||(null===o||void 0===o||null===(s=o.job)||void 0===s||null===(l=s.data)||void 0===l?void 0:l.inference_id)||(null===o||void 0===o||null===(n=o.data)||void 0===n?void 0:n.inference_id);if(!r)return{status:500,result:o};const d=`${e}/jobs/${encodeURIComponent(r)}`,c={method:"get",headers:t.headers,signal:t.signal};for(let u=0;u<180;u+=1){await new Promise((e,a)=>{const s=window.setTimeout(e,350);t.signal&&t.signal.addEventListener("abort",()=>{window.clearTimeout(s),a(new DOMException("Aborted","AbortError"))},{once:!0})});const e=await fetch(d,c),a=await e.json(),s=(null===a||void 0===a?void 0:a.job)||(null===a||void 0===a?void 0:a.data)||{};if("completed"===s.status)return{status:200,result:s.result||{}};if("failed"===s.status)return{status:400,result:{detail:{message:s.error||"Inference failed."}}}}return{status:408,result:{detail:{message:"AI assist inference timed out."}}}},this.hotKeysCounter=0,this.haveAnnotationsChanged=(e,t)=>(null===e||void 0===e?void 0:e.annotationLoaded)!==(null===t||void 0===t?void 0:t.annotationLoaded)||(null===e||void 0===e?void 0:e.labelRects)!==(null===t||void 0===t?void 0:t.labelRects)||(null===e||void 0===e?void 0:e.labelPoints)!==(null===t||void 0===t?void 0:t.labelPoints)||(null===e||void 0===e?void 0:e.labelPolygons)!==(null===t||void 0===t?void 0:t.labelPolygons)||(null===e||void 0===e?void 0:e.labelPolylines)!==(null===t||void 0===t?void 0:t.labelPolylines)||(null===e||void 0===e?void 0:e.labelLines)!==(null===t||void 0===t?void 0:t.labelLines)||(null===e||void 0===e?void 0:e.labelTags)!==(null===t||void 0===t?void 0:t.labelTags)||(null===e||void 0===e?void 0:e.flags)!==(null===t||void 0===t?void 0:t.flags),this.getLatestImageData=e=>ce.M.getState().labels.imagesData.find(t=>t.image_id===e.image_id)||e,this.loadImage=async e=>{const t=De.U.getById(e.image_id);if(e.loadStatus&&t){const a=this.getLatestImageData(e),s=va(a,e);
1this.props.updateImageDataById(e.image_id,s),It.j.setActiveImage(t),this.setState({imageLoading:!1,imageLoadError:!1}),It.j.mountRenderEnginesAndHelpers(this.props.activeLabelType),this.updateModelAndRender(),this.hotKeysCounter<1&&(p.v.updateHotkeys(),this.hotKeysCounter++)}else It.j.setLoadingStatus(!0),this.setState({imageLoading:!0,imageLoadError:!1}),r.y.load(e,"foreground").then(t=>{let{image:a}=t;return this.saveLoadedImage(a,e)}).catch(e=>this.handleLoadImageError(e))},this.saveLoadedImage=(e,t)=>{const a=this.getLatestImageData(t),s=va(a,t);this.props.updateImageDataById(t.image_id,s),De.U.storeImage(t.image_id,e),It.j.setActiveImage(e),It.j.setLoadingStatus(!1),this.setState({imageLoading:!1,imageLoadError:!1}),It.j.mountRenderEnginesAndHelpers(this.props.activeLabelType),this.updateModelAndRender()},this.handleLoadImageError=e=>{"AbortError"!==(null===e||void 0===e?void 0:e.name)&&(It.j.setLoadingStatus(!1),this.setState({imageLoading:!1,imageLoadError:!0}))},this.updateModelAndRender=()=>{ya._.updateViewPortSize(),ya._.updateDefaultViewPortImageRect(),ya._.resizeViewPortContent(),It.j.fullRender()},this.closeInlineLabelPicker=()=>{ce.M.dispatch((0,o.z0)({open:!1,clientX:null,clientY:null,shapeId:null,shapeType:null}))},this.openInlineLabelPicker=(e,t)=>{ce.M.dispatch((0,n.vD)(e.shapeId)),ce.M.dispatch((0,o.z0)({open:!0,clientX:t.clientX,clientY:t.clientY,shapeId:e.shapeId,shapeType:e.shapeType})),It.j.requestRender()},this.update=e=>{var t,a,s;xa.V.lastMouseClientPosition={x:e.clientX,y:e.clientY};const l=ma.t.getMousePositionOnCanvasFromEvent(e,xa.V.canvas);xa.V.mousePositionOnViewPortContent=l;const n=It.j.getEditorData(e);if(xa.V.viewPortActionsDisabled)return this.leftMouseDownPickerTarget=null,this.props.activePopupType||It.j.updateMousePositionIndicator(e),void It.j.requestRender();if(e.type===ft.B.MOUSE_DOWN&&e.target===xa.V.canvas&&(this.closeInlineLabelPicker(),0===e.button)){var i,o;const t=null!==(i=xa.V.supportRenderingEngine)&&void 0!==i&&null!==(o=i.isInProgress)&&void 0!==o&&o.call(i)?null:this.getInlinePickerTarget({...n,mousePositionOnViewPortContent:xa.V.mousePositionOnViewPortContent});this.leftMouseDownPickerTarget=t?{...t,clientX:e.clientX,clientY:e.clientY}:null}const r=e.type===ft.B.MOUSE_DOWN&&2===e.button&&e.target===xa.V.canvas,d=null!==(t=null===(a=xa.V.supportRenderingEngine)||void 0===a||null===(s=a.isInProgress)||void 0===s?void 0:s.call(a))&&void 0!==t&&t;if(r&&!d)return this.props.activePopupType||It.j.updateMousePositionIndicator(e),void It.j.fullRender();var c;(xa.V.primaryRenderingEngine&&xa.V.primaryRenderingEngine.update(n),this.props.imageDragMode)?null===(c=xa.V.viewPortHelper)||void 0===c||c.update(n):(this.previousPoint=null,xa.V.supportRenderingEngine&&xa.V.supportRenderingEngine.update(n));if(this.props.activePopupType||It.j.updateMousePositionIndicator(e),e.type===ft.B.MOUSE_UP&&this.leftMouseDownPickerTarget){const t=this.leftMouseDownPickerTarget;this.leftMouseDownPickerTarget=null;const a=0===e.button,s=Math.abs(e.clientX-t.clientX)<=4&&Math.abs(e.clientY-t.clientY)<=4;a&&s&&e.target===xa.V.canvas&&this.openInlineLabelPicker(t,e)}It.j.requestRender()},this.getInlinePickerTargetAtEvent=e=>{const t=It.j.getEditorData(e);return this.getInlinePickerTarget({...t,mousePositionOnViewPortContent:ma.t.getMousePositionOnCanvasFromEvent(e,xa.V.canvas)})},this.handleViewPortMouseDownCapture=e=>{if(2!==e.button||this.props.imageDragMode||this.props.activeLabelType!==ye.H.RECT||xa.V.viewPortActionsDisabled||e.target.closest(".InlineRectLabelPicker"))return;const t=xa.V.supportRenderingEngine;t instanceof Ia.n&&t.isInProgress()&&this.getInlinePickerTargetAtEvent(e.nativeEvent)&&t.dispose()},this.handleViewPortContextMenu=e=>{var t;if(e.target.closest(".InlineRectLabelPicker"))return;if(e.target===xa.V.canvas&&e.preventDefault(),xa.V.viewPortActionsDisabled)return;const a=!this.props.imageDragMode&&!!this.props.activeLabelType,s="rects"===this.props.aiAssistMode||"points"===this.props.aiAssistMode;if(!a&&!s)return;const l=e.nativeEvent,n=this.getInlinePickerTargetAtEvent(l);if(n){if(e.preventDefault(),xa.V.supportRenderingEngine instanceof Ia.n&&xa.V.supportRenderingEngine.isInProgress())xa.V.supportRenderingEngine.dispose();else if(null!==(t=xa.V.supportRenderingEngine)&&void 0!==t&&t.isInProgress())return;this.openInlineLabelPicker(n,l)}},this.handleMouseClick=e=>{if(this.aiInferenceController)return;if(It.j.requestRender(),e.target!==xa.V.canvas)return void e.stopPropagation();const t=It.j.getEditorData(e),a=ma.t.getMousePositionOnCanvasFromEvent(e,xa.V.canvas),s=t.viewPortContentImageRect,l=s.x,n=s.y,i=s.x+s.width,o=s.y+s.height,r={x:Math.max(l,Math.min(a.x,i)),y:Math.max(n,Math.min(a.y,o))},d=JSON.parse(localStorage.getItem("aiMode")||'""');if(this.state.isDrawing){const s={x:Math.max(l,Math.min(a.x,i)),y:Math.max(n,Math.min(a.y,o))}
1,r=Na.T.transferPointFromViewPortContentToImage(s,t);this.setState(e=>({isDrawing:!1,currentPoint:null,rectanglePoints:[...e.rectanglePoints,[e.startPoint.x,e.startPoint.y,r.x,r.y]],allPoints:[...e.allPoints,r.x,r.y]}),()=>{this.aipridiction(e),this.drawFinalRectangle()})}else if(Je.v.isPointInside(s,a)){const a=Na.T.transferPointFromViewPortContentToImage(r,t);this.setState(e=>({isDrawing:"rects"===d,startPoint:a,currentPoint:r,allPoints:[...e.allPoints,a.x,a.y]}),()=>{this.aipridiction(e)})}},this.handleMouseMove=e=>{if(!this.state.isDrawing)return;this.props.customCursorStyle!==ba.$.ADD&&ce.M.dispatch((0,o.UY)(ba.$.ADD));const t=It.j.getEditorData(e),a=ma.t.getMousePositionOnCanvasFromEvent(e,xa.V.canvas),s=t.viewPortContentImageRect,l={x:Math.max(s.x,Math.min(a.x,s.x+s.width)),y:Math.max(s.y,Math.min(a.y,s.y+s.height))};if("rects"===this.props.aiAssistMode){if(this.pendingPreviewPoint=l,null!==this.previewAnimationFrame)return;this.previewAnimationFrame=window.requestAnimationFrame(()=>{const e=this.pendingPreviewPoint;this.previewAnimationFrame=null,e&&this.state.isDrawing&&this.setState({currentPoint:e},()=>{It.j.requestRender(()=>this.drawRectangle())})})}},this.drawRectangle=()=>{const{startPoint:e,currentPoint:t}=this.state;if(!e||!t)return;const a=xa.V.canvas;if(!a)return;const s=It.j.getEditorData(),l=Na.T.transferPointFromImageToViewPortContent(e,s);pa.F.drawRect(a,"",{x:l.x,y:l.y,width:t.x-l.x,height:t.y-l.y},"#ffffff",2.5)},this.drawFinalRectangle=()=>{const{startPoint:e,currentPoint:t}=this.state;if(!e||!t)return;const a=xa.V.canvas;if(!a)return;const s=It.j.getEditorData(),l=Na.T.transferPointFromImageToViewPortContent(e,s);pa.F.drawRect(a,"",{x:l.x,y:l.y,width:t.x-l.x,height:t.y-l.y},"#ffffff",2)},this.previousPoint=null,this.aipridiction=async e=>{if(!this.aiInferenceController)if("rects"===JSON.parse(localStorage.getItem("aiMode"))){It.j.setViewPortActionsDisabledStatus(!1);const m=It.j.getEditorData(e),p=Na.T.transferPointFromViewPortContentToImage(ma.t.getMousePositionOnCanvasFromEvent(e,xa.V.canvas),m);let b=this.props.aiMode;Na.T.setPointBetweenPixels(p);const x=p.x,f=p.y;if(this.previousPoint){let e=[x,f],m=this.previousPoint,p=[Math.min(m[0],e[0]),Math.min(m[1],e[1])],w=[Math.max(m[0],e[0]),Math.max(m[1],e[1])];const N=[[p[0],p[1],w[0],w[1]]];if(console.log([this.previousPoint,[x,f]]),console.log(b),1==b){var t,a,s;this.previousPoint=null;const e=(v=G.R.getActiveImageData()).image_id;var l=localStorage.getItem("task_image_path"),n=null===(t=JSON.parse(localStorage.getItem("model")))||void 0===t||null===(a=t[0])||void 0===a?void 0:a.id;const m=(0,c.getCokkie)("jwtToken");var i=`${window.ENV.API_URL}/tasks/models/inference/${n}`;const p=new Headers;let b={image_id:v.image_id,task_image_path:l,task_type:G.R.getActiveLabelType(),boxes:N,confidence:.8,label_id:G.R.getActiveLabelNameId(),label_name:(null===(s=G.R.getLabelNameById(G.R.getActiveLabelNameId()))||void 0===s?void 0:s.name)||null,label_names:G.R.getLabelNames().map(e=>e.name),label_id_map:G.R.getLabelNames().reduce((e,t)=>(e[t.name]=t.id,e),{})};p.append("accept","application/json"),p.append("Authorization",`Bearer ${m}`);var r=JSON.stringify(b);const x=new AbortController;this.aiInferenceController=x,ce.M.dispatch((0,o.FX)("pending")),It.j.setViewPortActionsDisabledStatus(!0);var d={method:"post",headers:p,body:r,signal:x.signal};try{const t=await this.fetchAiInference(i,d),a=t.result;if(200==t.status){var u,g;if((y=G.R.getActiveImageData()).image_id!==e)return;let t=a;null===t||void 0===t||null===(u=t.labelPolygons)||void 0===u||u.map(e=>{e.id=(0,K.A)(),e.show=!0}),null===t||void 0===t||null===(g=t.labelRects)||void 0===g||g.map(e=>{e.id=(0,K.A)(),e.show=!0}),y.labelPolygons=y.labelPolygons.concat(null===t||void 0===t?void 0:t.labelPolygons),y.labelRects=y.labelRects.concat(null===t||void 0===t?void 0:t.labelRects),ce.M.dispatch(updateImageDataById(y.image_id,y))}else if(400==t.status){var h;this.setState({alert:(null===a||void 0===a||null===(h=a.detail)||void 0===h?void 0:h.message)||"AI assist request was rejected."}),setTimeout(()=>{this.setState({alert:""})},3e3)}else this.setState({alert:"AI assist inference failed. Please try again."}),setTimeout(()=>{this.setState({alert:""})},3e3)}catch(j){"AbortError"!==(null===j||void 0===j?void 0:j.name)&&(this.setState({alert:"AI assist request failed. Please check your connection and try again."}),setTimeout(()=>{this.setState({alert:""})},3e3))}finally{this.aiInferenceController===x&&(this.aiInferenceController=null,ce.M.dispatch((0,o.FX)(null)),It.j.setVie
1wPortActionsDisabledStatus(!1))}}}else this.previousPoint=[x,f]}else if("points"===JSON.parse(localStorage.getItem("aiMode"))){this.previousPoint=null;const t=It.j.getEditorData(e),a=Na.T.transferPointFromViewPortContentToImage(ma.t.getMousePositionOnCanvasFromEvent(e,xa.V.canvas),t);let s=this.props.aiMode;Na.T.setPointBetweenPixels(a);const u=a.x,g=a.y;if(1==s){var m,p,b,v;const e=(v=G.R.getActiveImageData()).image_id;l=localStorage.getItem("task_image_path"),n=null===(m=JSON.parse(localStorage.getItem("model")))||void 0===m||null===(p=m[0])||void 0===p?void 0:p.id;const t=(0,c.getCokkie)("jwtToken");i=`${window.ENV.API_URL}/tasks/models/inference/${n}`;const a=new Headers;let s={image_id:v.image_id,task_image_path:l,task_type:G.R.getActiveLabelType(),points:[[u,g]],confidence:.8,label_id:G.R.getActiveLabelNameId(),label_name:(null===(b=G.R.getLabelNameById(G.R.getActiveLabelNameId()))||void 0===b?void 0:b.name)||null,label_names:G.R.getLabelNames().map(e=>e.name),label_id_map:G.R.getLabelNames().reduce((e,t)=>(e[t.name]=t.id,e),{})};a.append("accept","application/json"),a.append("Authorization",`Bearer ${t}`);r=JSON.stringify(s);const h=new AbortController;this.aiInferenceController=h,ce.M.dispatch((0,o.FX)("pending")),It.j.setViewPortActionsDisabledStatus(!0);d={method:"post",headers:a,body:r,signal:h.signal};try{const t=await this.fetchAiInference(i,d),a=t.result;if(200==t.status){var x,f,y;if((y=G.R.getActiveImageData()).image_id!==e)return;let t=a;null===t||void 0===t||null===(x=t.labelPolygons)||void 0===x||x.map(e=>{e.id=(0,K.A)(),e.show=!0}),null===t||void 0===t||null===(f=t.labelRects)||void 0===f||f.map(e=>{e.id=(0,K.A)(),e.show=!0}),y.labelPolygons=y.labelPolygons.concat(null===t||void 0===t?void 0:t.labelPolygons),y.labelRects=y.labelRects.concat(null===t||void 0===t?void 0:t.labelRects),ce.M.dispatch(updateImageDataById(y.image_id,y))}else if(400==t.status){var w;this.setState({alert:(null===a||void 0===a||null===(w=a.detail)||void 0===w?void 0:w.message)||"AI assist request was rejected."}),setTimeout(()=>{this.setState({alert:""})},3e3)}else this.setState({alert:"AI assist inference failed. Please try again."}),setTimeout(()=>{this.setState({alert:""})},3e3)}catch(j){"AbortError"!==(null===j||void 0===j?void 0:j.name)&&(this.setState({alert:"AI assist request failed. Please check your connection and try again."}),setTimeout(()=>{this.setState({alert:""})},3e3))}finally{this.aiInferenceController===h&&(this.aiInferenceController=null,ce.M.dispatch((0,o.FX)(null)),It.j.setViewPortActionsDisabledStatus(!1))}}}},this.handleZoom=e=>{e.preventDefault(),xa.V.lastMouseClientPosition={x:e.clientX,y:e.clientY},xa.V.mousePositionOnViewPortContent=ma.t.getMousePositionOnCanvasFromEvent(e,xa.V.canvas);1===Math.sign(e.deltaY)?ya._.zoomOut():ya._.zoomIn()},this.getOptionsPanels=()=>{const e=It.j.getEditorData();var t;return this.props.activeLabelType===ye.H.RECT?null===(t=this.props.imageData)||void 0===t?void 0:t.labelRects.filter(e=>e.isCreatedByAI&&e.status!==pt.$.ACCEPTED).map(t=>{const a={x:t.rect.x,y:t.rect.y},s=Na.T.transferPointFromImageToViewPortContent(a,e);return(0,x.jsx)(ja,{position:s,labelData:t,imageData:this.props.imageData},t.id)}):this.props.activeLabelType===ye.H.POINT?this.props.imageData.labelPoints.filter(e=>e.isCreatedByAI&&e.status!==pt.$.ACCEPTED).map(t=>{const a={x:t.point.x,y:t.point.y},s=Na.T.transferPointFromImageToViewPortContent(a,e);return(0,x.jsx)(ja,{position:s,labelData:t,imageData:this.props.imageData},t.id)}):null},this.onScrollbarsUpdate=e=>{const t={width:e.scrollWidth,height:e.scrollHeight};(0,B.isEqual)(t,this.state.viewPortSize)||this.setState({viewPortSize:t})},this.state={viewPortSize:{width:0,height:0},alert:"",isDrawing:!1,startPoint:null,currentPoint:null,rectanglePoints:[],allPoints:[],imageLoading:!1,imageLoadError:!1}}getTaskLike(e){return(null===e||void 0===e?void 0:e.task)||(null===e||void 0===e?void 0:e.task_type)||localStorage.getItem("tasktype")||localStorage.getItem("task_type")}componentDidMount(){this.mountEventListeners();const{imageData:e,activeLabelType:t,projectData:a}=this.props;p.v.switchCtx(k.E.EDITOR);const s=It.j.fromProjectTask(this.getTaskLike(a));It.j.setTaskType(s),It.j.mountRenderEnginesAndHelpers(t),this.loadImage(e),ya._.resizeCanvas(this.props.size),setTimeout(()=>{this.updateModelAndRender()},100)}componentWillUnmount(){null!==this.previewAnimationFrame&&(window.cancelAnimationFrame(this.previewAnimationFrame),this.previewAnimationFrame=null),this.cancelPendingAiInference(),xa.V.supportRenderingEngine instanceof Ia.n&&xa.V.supportRenderingEngine.dispose(),this.unmountEventListeners()}componentDidUpdate(e){var t,a;const{imageData:s,activeLabelType:l,projectData:n,size:i}=this.props;let o=!1;if(e.imageData.image_id!==s.image_id)return this.cancelPendingAiInference(),void this.loadImage(s);if(this.haveAnnotationsChanged(e.imageData,s)&&(o=!0),e.activeLabelType!==l&&(It.j.swapSupportRenderingEngine(l),o=!0),this.getTaskLike(e.projectData)!==this.getTaskLike(n)){const e=It.j.fromProjectTask(this.getTaskLike(n));It.j.setTaskType(e),this.props.updateTaskType(e),It.j.mountRenderEnginesAndHelpers(l),o=!0}
1(null===(t=e.size)||void 0===t?void 0:t.width)!==(null===i||void 0===i?void 0:i.width)||(null===(a=e.size)||void 0===a?void 0:a.height)!==(null===i||void 0===i?void 0:i.height)?this.updateModelAndRender():o&&It.j.requestRender()}mountEventListeners(){window.addEventListener(ft.B.MOUSE_MOVE,this.update),window.addEventListener(ft.B.MOUSE_UP,this.update),xa.V.canvas.addEventListener(ft.B.MOUSE_DOWN,this.update),window.addEventListener("mousemove",this.handleMouseMove),window.addEventListener("click",this.handleMouseClick),xa.V.canvas.addEventListener(ft.B.MOUSE_WHEEL,this.handleZoom)}unmountEventListeners(){window.removeEventListener(ft.B.MOUSE_MOVE,this.update),window.removeEventListener(ft.B.MOUSE_UP,this.update),xa.V.canvas.removeEventListener(ft.B.MOUSE_DOWN,this.update),xa.V.canvas.removeEventListener(ft.B.MOUSE_WHEEL,this.handleZoom),window.removeEventListener("mousemove",this.handleMouseMove),window.removeEventListener("click",this.handleMouseClick)}getInlinePickerTarget(e){const t=G.R.getActiveImageData();if(!t)return null;switch(this.props.activeLabelType){case ye.H.RECT:{const a=this.getRectUnderMouse(t,e);return a?{shapeId:a.id,shapeType:"rect"}:null}case ye.H.POLYGON:{const a=this.getPolygonUnderMouse(t,e);return a?{shapeId:a.id,shapeType:"polygon"}:null}case ye.H.POLYLINE:{const a=this.getPolylineUnderMouse(t,e);return a?{shapeId:a.id,shapeType:"polyline"}:null}default:return null}}getRectUnderMouse(e,t){var a;if(null===(a=e.labelRects)||void 0===a||!a.length)return null;const s=this.props.activeLabelId,l=e.labelRects.filter(e=>!1!==e.show).map((e,a)=>{const l=this.getRectHitMatch(e.rect,t);return l?{rect:e,index:a,isActive:e.id===s,...l}:null}).filter(Boolean);return l.length?(l.sort((e,t)=>e.isActive!==t.isActive?e.isActive?-1:1:e.priority!==t.priority?e.priority-t.priority:e.area!==t.area?e.area-t.area:t.index-e.index),l[0].rect):null}getRectHitMatch(e,t){const a=Na.T.transferRectFromImageToViewPortContent(e,t),s=t.mousePositionOnViewPortContent,l=Je.v.mapRectToAnchors(a);for(const i of l){const e=Je.v.getRectWithCenterAndSize(i.position,Sa.k.anchorHoverSize);if(Je.v.isPointInside(e,s))return{priority:0,area:e.width*e.height}}if(Je.v.isPointInside(a,s))return{priority:1,area:a.width*a.height};const n=Je.v.expand(a,{x:Sa.k.anchorHoverSize.width/2,y:Sa.k.anchorHoverSize.height/2});return Je.v.isPointInside(n,s)?{priority:2,area:n.width*n.height}:null}getPolygonUnderMouse(e,t){var a,s;return null!==(a=null===(s=e.labelPolygons)||void 0===s?void 0:s.find(e=>{const a=Na.T.transferPolygonFromImageToViewPortContent(e.vertices,t);return this.isMouseOverPath(a,t,!0)}))&&void 0!==a?a:null}getPolylineUnderMouse(e,t){var a,s;return null!==(a=null===(s=e.labelPolylines)||void 0===s?void 0:s.find(e=>{const a=Na.T.transferPolylineFromImageToViewPortContent(e.vertices,t);return this.isMouseOverPath(a,t,!0)}))&&void 0!==a?a:null}isMouseOverPath(e,t,a){const s=a?e.concat(e[0]):e,l=this.mapPointsToLines(s);for(const n of l)if(Na.T.isMouseOverLine(t.mousePositionOnViewPortContent,n,Sa.k.anchorHoverSize.width/2))return!0;for(const n of e)if(Na.T.isMouseOverAnchor(t.mousePositionOnViewPortContent,n,Sa.k.anchorSize))return!0;return!1}mapPointsToLines(e){const t=[];for(let a=0;a<e.length-1;a++)t.push({start:e[a],end:e[a+1]});return t}render(){var e;const t=this.state.alert,a="pending"===this.props.aiAssistStatus,s=null!==(e=this.props.aiAssistMode)&&void 0!==e?e:JSON.parse(localStorage.getItem("aiMode")||'""'),l="rects"===s,n="points"===s,i=a?"Cursor wait":l?"Cursor add":n?"Cursor grab":fa.getCursorStyle(this.props.customCursorStyle),o=a?null:l?"/ico/plus.png":n?"/ico/hand-fill.png":fa.getIndicator(this.props.customCursorStyle)||(this.props.imageDragMode?"/ico/cursor.png":"/ico/plus.png");return(0,x.jsxs)("div",{className:"Editor",ref:e=>xa.V.editor=e,draggable:!1,children:[(0,x.jsx)(U.Ay,{ref:e=>xa.V.viewPortScrollbars=e,renderTrackHorizontal:e=>(0,x.jsx)("div",{...e,className:"track-horizontal"}),renderTrackVertical:e=>(0,x.jsx)("div",{...e,className:"track-vertical"}),onUpdate:this.onScrollbarsUpdate,children:(0,x.jsxs)("div",{className:"ViewPortContent",onMouseDownCapture:this.handleViewPortMouseDownCapture,onContextMenu:this.handleViewPortContextMenu,children:[(0,x.jsx)("canvas",{className:"ImageCanvas",id:"canvas",ref:e=>xa.V.canvas=e,draggable:!1,style:{pointerEvents:t?"none":"auto"}}),this.getOptionsPanels(),(0,x.jsx)(La,{})]})}),(this.state.imageLoading||this.state.imageLoadError)&&(0,x.jsx)("div",{className:"Editor__image-status",role:"status",children:this.state.imageLoadError?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("span",{children:"Unable to load this image."}),(0,x.jsx)("button",{type:"button",onClick:()=>this.loadImage(this.props.imageData),children:"Retry"})]}):(0,x.jsx)("span",{children:"Loading image\u2026"})}),(0,x.jsx)("div",{className:"MousePositionIndicator",ref:e=>xa.V.mousePositionIndicator=e,draggable:!1}),(0,x.jsx)("div",{className:i,ref:e=>
1xa.V.cursor=e,draggable:!1,children:(0,x.jsx)("img",{draggable:!1,alt:"indicator",src:o,style:"/ico/plus.png"===o?{position:"relative",left:"-7px",top:"-8px"}:void 0})})]})}}const Ca={updateImageDataById:n.jj,updateTaskType:o.t0},ka=(0,l.Ng)(e=>({activeLabelType:e.labels.activeLabelType,activePopupType:e.general.activePopupType,activeLabelId:e.labels.activeLabelId,aiMode:e.general.aiMode,aiAssistMode:e.general.aiAssist.mode,aiAssistStatus:e.general.aiAssist.status,customCursorStyle:e.general.customCursorStyle,imageDragMode:e.general.imageDragMode,zoom:e.general.zoom}),Ca)(Aa);var Pa=a(55998);const Ea=(0,l.Ng)(e=>({activeImageIndex:e.labels.activeImageIndex,activeContext:e.general.activeContext}),{})(e=>{let{imageData:t,imagesData:a,totalImageCount:l,activeImageIndex:i,activeContext:o}=e;const d=(0,s.useRef)(null),[c,u]=(0,s.useState)(""),[g,m]=(0,s.useState)(!1),[p,b]=(0,s.useState)({}),v=e=>{e<0||e>=l||e===i||(ce.M.dispatch((0,n.vD)(null)),(0,h.bP)(e),u(""))};(0,s.useEffect)(()=>{if(!g||l<=1)return;const e=window.setInterval(()=>{const e=i+1;e>=l?m(!1):v(e)},2e3);return()=>window.clearInterval(e)},[i,g,l]);const f=(0,s.useMemo)(()=>{if(null===a||void 0===a||!a.length)return[];const e=Math.max(0,i-1),t=Math.min(a.length-1,i+2),s=[];for(let a=e;a<=t;a+=1)s.push(a);return s},[i,a]);(0,s.useEffect)(()=>{let e=!1;return f.forEach(t=>{const s=a[t];if(!s||p[s.image_id])return;const l=De.U.getById(s.image_id);null!==l&&void 0!==l&&l.src?b(e=>({...e,[s.image_id]:l.src})):r.y.load(s,"background").then(t=>{let{image:a}=t;e||(De.U.storeImage(s.image_id,a),b(e=>({...e,[s.image_id]:a.src})))}).catch(()=>{})}),()=>{e=!0}},[a,p,f]);return(0,s.useEffect)(()=>{d.current&&(d.current.value="")},[i]),(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:A()("EditorBottomNavigationBar",{"with-context":o===k.E.EDITOR}),children:(0,x.jsx)("div",{className:"EditorBottomNavigationBar__content",children:(0,x.jsxs)("div",{className:"EditorBottomNavigationBar__navigation",children:[(0,x.jsx)("button",{className:"data-arrow fw-bold bg-transparent border-0",onClick:()=>v(i-1),disabled:0===i,children:"<"}),(0,x.jsxs)("div",{className:"EditorBottomNavigationBar__counter",children:[(0,x.jsx)("form",{className:"container-card p-0",onSubmit:e=>{if(e.preventDefault(),d.current&&d.current.value&&parseInt(d.current.value)!==i+1){const e=parseInt(d.current.value)-1;e>=0&&e<l&&v(e)}},children:(0,x.jsx)("input",{min:1,className:"input-spin plain-button2 EditorBottomNavigationBar__index-input",placeholder:(i+1).toString(),type:"number",ref:d,onChange:e=>{const t=e.target.value;if(""===t)return void u("");const a=parseInt(t);u(a<1||a>l?` Switch between 1 - ${l}.`:"")},onKeyDown:e=>{e.key>="0"&&e.key<="9"||"Backspace"===e.key||"Delete"===e.key||"ArrowLeft"===e.key||"ArrowRight"===e.key||"Enter"===e.key||e.preventDefault()}})}),(0,x.jsxs)("span",{className:"EditorBottomNavigationBar__total-count",children:["/ ",l]})]}),(0,x.jsx)("button",{className:"data-arrow fw-bold bg-transparent border-0",onClick:()=>v(i+1),disabled:i===l-1,children:">"})]})})}),c&&(0,x.jsx)("div",{className:"EditorBottomNavigationBar__warning",children:c})]})});var Ta=a(23222),Ra=a(10591),_a=a(20782),Da=a(97877),Oa=a(84229),Ma=a(77447),Ba=a(81509),Va=a(52640),Ha=a(52973),Fa=a(62557);function Ua(e){var t;const[a,l]=(0,s.useState)({}),[n,i]=(0,s.useState)(),o=`${window.ENV.API_URL}/tasks/models/start/${e.id}`,r=Ha.Wp.getDefaultRegistry().widgets.FileWidget;Fa.Sx.widgets.FileWidget=r;const d=(0,Ha.SL)(Fa.Sx);return(0,s.useEffect)(()=>{(0,Ma.A)(o,"get").then(e=>{if("Contact your organisation admin to add a new user"!==e){const t={...e};t.json_schema.title="",i(t)}}).catch(()=>{})},[o]),(0,x.jsx)(x.Fragment,{children:n&&(0,x.jsx)(d,{schema:null===n||void 0===n?void 0:n.json_schema,uiSchema:{...null!==(t=null===n||void 0===n?void 0:n.ui_schema)&&void 0!==t?t:{},"ui:submitButtonOptions":{norender:!1,submitText:e.submitLabel||"Submit",props:{className:"btn btn-primary w-100 mt-2"}}},formData:a,onSubmit:(t,a)=>{let{formData:s}=t;a.preventDefault(),l(s),function(t){var a;if(e.isBlocked)return void(null===(a=e.collpase)||void 0===a||a.call(e,{status:"danger",message:`${e.runningModelName||"Another model"} is already running. Stop it before starting a new model.`}));const s=(0,c.getCokkie)("jwtToken"),l=new Headers;l.append("Authorization",`Bearer ${s}`),l.append("Content-Type","application/json");const n={method:"post",headers:l,body:JSON.stringify(t)};l.append("Authorization",`Bearer ${s}`),fetch(`${window.ENV.API_URL}
1/tasks/models/start/${e.id}`,n).then(e=>e.json()).then(t=>{var a,s,l;null===(a=e.collpase)||void 0===a||a.call(e,{status:(null===t||void 0===t||null===(s=t.detail)||void 0===s?void 0:s.status)||"success",message:(null===t||void 0===t||null===(l=t.detail)||void 0===l?void 0:l.message)||"Model started successfully."})}).catch(t=>{var a;null===(a=e.collpase)||void 0===a||a.call(e,{status:"danger",message:(null===t||void 0===t?void 0:t.message)||"Unable to start model."})})}(s)}})})}const za={updateAiAssistModelsAction:o.TY},Ga=(0,l.Ng)(null,za)(function(e){var t,a,l;let{updateAiAssistModelsAction:n}=e;const i=localStorage.getItem("tasktype"),o=`${window.ENV.API_URL}/tasks/models?task_type=${i}`,[r,d]=(0,s.useState)([]),[u,g]=(0,s.useState)(!0),[h,p]=(0,s.useState)(null),[b,v]=(0,s.useState)(null),[f,y]=(0,s.useState)(null),[w,j]=(0,s.useState)(0),N=(0,s.useCallback)(()=>{g(!0),y(null),(0,Ma.A)(o,"get").then(e=>{const t=Array.isArray(null===e||void 0===e?void 0:e.model_cards)?e.model_cards:[];d(t),n(t);t.find(e=>"running"===e.status);g(!1)}).catch(e=>{n([]),console.log(null===e||void 0===e?void 0:e.message),y(e),g(!1)})},[o]);function I(e){switch(typeof e){case"number":break;case"string":e=+new Date(e);break;case"object":e.constructor===Date&&(e=e.getTime());break;default:e=+new Date}const t=[[60,"s",1],[3600,"M",60],[86400,"H",3600],[604800,"D",86400],[2419200,"W",604800],[29030400,"M",2419200],[290304e4,"Y",29030400],[580608e4,"Last century","Next century"],[580608e5,"centuries",290304e4]];let a=(+new Date-e)/1e3,s="",l=1;if(0===a)return"Just now";a<0&&(a=Math.abs(a),s="from now",l=2);let n,i=0;for(;n=t[i++];)if(a<n[0])return"string"===typeof n[2]?n[l]:Math.floor(a/n[2])+" "+n[1]+" "+s;return e}(0,s.useEffect)(()=>{N()},[N,w]),(0,s.useEffect)(()=>{if(b){const e=setTimeout(()=>{v(null)},3e3);return()=>{clearTimeout(e)}}},[b]);const L=r.find(e=>"running"===e.status),S=!!L,A=(null===f||void 0===f?void 0:f.status)||(null===f||void 0===f||null===(t=f.response)||void 0===t?void 0:t.status)||(null===f||void 0===f||null===(a=f.response)||void 0===a||null===(l=a.data)||void 0===l?void 0:l.status)||500;return u?(0,x.jsx)(m.A,{}):f?(0,x.jsxs)("div",{className:"d-flex flex-column align-items-center justify-content-center py-5",style:{minHeight:"300px"},children:[(0,x.jsx)("div",{style:{backgroundColor:"#fff8d5",border:"1px solid #ffe7a3",borderRadius:"4px",padding:"14px 24px",maxWidth:"600px",textAlign:"center",fontSize:"0.95rem",color:"black"},children:404===A?"Models not found (404).":403===A?"You don\u2019t have permission to view these models.":500===A?"Server error (500). Please try again.":"Unable to load models right now."}),(0,x.jsx)("div",{className:"mt-3",children:(0,x.jsx)(St.A,{color:"primary",onClick:()=>j(e=>e+1),children:"Retry"})})]}):u||0!==r.length?(0,x.jsxs)("div",{className:"h-100",style:{position:"relative"},children:[(null===r||void 0===r?void 0:r.length)>0&&(0,x.jsxs)("div",{className:"d-a justify-content-between mb-3",children:[(0,x.jsx)("div",{children:" Models"}),(0,x.jsx)("h6",{className:"text-primary fw-bold m-0",children:null===r||void 0===r?void 0:r.length})]}),(0,x.jsx)("div",{style:{position:"absolute",top:"30px",zIndex:999},children:b&&(0,x.jsx)(Ba.A,{color:"success"===(null===b||void 0===b?void 0:b.status)?"success":"danger",className:"mb-2 shadow d-flex",isOpen:!(null===b||void 0===b||!b.message),style:{width:"100%",borderRadius:10},children:null===b||void 0===b?void 0:b.message})}),(0,x.jsx)("div",{className:"overflow-auto flex-fill",style:{height:"calc(100% - 45px)"},children:r.map(e=>(0,x.jsxs)("div",{className:"p-3 container-card mb-2",children:[(0,x.jsx)("div",{className:"fw-bold",children:e.model_name}),(0,x.jsxs)("div",{className:"d-a flex-wrap mb-2",children:[(0,x.jsx)("div",{className:"queue-icon-status-wrapper",children:(0,x.jsx)("span",{style:{width:10,height:10,display:"inline-block",borderRadius:8,position:"unset",bottom:"unset"},className:" "+("running"===e.status?"bg-success queue-status-dot":"bg-danger")})}),(0,x.jsxs)("small",{className:" mb-0 ms-2",children:[I(e.last_used)," ago"]})]}),(0,x.jsx)("span",{className:"text-secondary",children:e.description}),(0,x.jsx)("div",{className:"mt-2 d-a justify-content-between",children:"running"!==e.status?(0,x.jsxs)("div",{className:"d-a w-100",children:[(0,x.jsxs)(St.A,{color:"primary",className:"p-2 text-white w-75",onClick:()=>function(e){if(S&&(null===L||void 0===L?void 0:L._id)!==e)return void v({status:"danger",message:`${(null===L||void 0===L?void 0:L.model_name)||"Another model"} is already running. Stop it before starting a new model.`});const t=(0,c.getCokkie)("jwtToken"),a=new Headers;a.append("Authorization",`Bearer ${t}`),a.append("Content-Type","application/json");const s={method:"post",headers:a,body:JSON.stringify({})};fetch(`${window.ENV.API_URL}
1/tasks/models/start/${e}`,s).then(e=>e.json()).then(t=>{var a,s;v({status:(null===t||void 0===t||null===(a=t.detail)||void 0===a?void 0:a.status)||"success",message:(null===t||void 0===t||null===(s=t.detail)||void 0===s?void 0:s.message)||"Model is starting."}),"running"===(null===t||void 0===t?void 0:t.model_state)&&d(t=>t.map(t=>({...t,status:t._id===e?"running":"stopped"}))),j(e=>e+1)}).catch(e=>{v({status:"danger",message:(null===e||void 0===e?void 0:e.message)||"Unable to run model."})})}(e._id),children:[(0,x.jsx)(wt.g,{icon:jt.ijD,className:"text-white"})," \xa0Run"]}),(0,x.jsx)("button",{type:"button",className:"d-j-a flex-fill plain-button w-25",onClick:()=>{S&&(null===L||void 0===L?void 0:L._id)!==e._id?v({status:"danger",message:`${(null===L||void 0===L?void 0:L.model_name)||"Another model"} is already running. Stop it before configuring a new model.`}):p(h===e._id?null:e._id)},children:(0,x.jsx)(Lt.YG,{className:"wf-icon text-secondary"})})]}):(0,x.jsxs)("button",{className:"p-2 wf-icon-red w-100",disabled:"running"!==e.status,onClick:()=>function(e){const t=(0,c.getCokkie)("jwtToken"),a=new Headers;a.append("Authorization",`Bearer ${t}`);const s={method:"delete",headers:a};a.append("Authorization",`Bearer ${t}`),fetch(`${window.ENV.API_URL}/tasks/models/stop/${e}`,s).then(e=>e.json()).then(t=>{t&&v({status:"success",message:`${e} is Aborting`})}).catch(e=>{v({status:"danger",message:(null===e||void 0===e?void 0:e.message)||"Unable to stop model."})})}(e._id),children:[(0,x.jsx)(wt.g,{icon:jt.APi,className:"text-danger pt-1"})," \xa0Stop"]})}),(0,x.jsx)(Va.A,{isOpen:h===e._id,className:"mt-4",children:(0,x.jsx)(Ua,{id:e._id,submitLabel:"Run Model",isBlocked:S&&(null===L||void 0===L?void 0:L._id)!==e._id,runningModelName:null===L||void 0===L?void 0:L.model_name,collpase:e=>{p(null),v(e),j(e=>e+1)}})})]},e._id))})]}):(0,x.jsxs)("div",{className:"d-j-a flex-column h-100 text-secondary",children:[(0,x.jsx)(Lt.v8,{className:"wf-icon-large text-primary mb-4"}),(0,x.jsx)("h6",{className:"fw-semibold mb-2",children:"No models available"}),(0,x.jsx)("small",{className:"text-center text-secondary",style:{maxWidth:"450px"},children:"No AI models were found for this task type."})]})});var $a=a(58213),Wa=a(3405);const Ya=["labelRects","labelPoints","labelLines","labelPolygons","labelPolylines","labelTags","labelWindows"],qa=e=>Ya.reduce((t,a)=>{return t+(s=e[a],Array.isArray(s)?s.length:0);var s},0),Ja=e=>{var t;let{imagesData:a,activeImageIndex:s,updateSaveStatus:l}=e;const n=Array.isArray(l)?l:[],i=a.map((e,t)=>({...e,saved:e.saved||Boolean(n[t])})).filter(e=>!0===e.annotationLoaded&&"loading"!==e.annotationLoadState&&!0!==e.annotationPrefetched);return{annotations:i,time_spent:localStorage.getItem("final-time"),last_image_id:(null===(t=a[s])||void 0===t?void 0:t.image_id)||"",annotation_count:i.map(qa),ai_label_count:i.reduce((e,t)=>e+(e=>Ya.reduce((t,a)=>{const s=e[a];return Array.isArray(s)?t+s.filter(e=>!0===(null===e||void 0===e?void 0:e.isCreatedByAI)).length:t},0))(t),0),last_active:(new Date).toISOString()}},Xa=(new URLSearchParams(window.location.search).get("id"),(0,c.getCokkie)("jwtToken"));var Ka;const Za=[{label:"auto save",value:null},{label:"30s",value:3e4},{label:"1m",value:6e4},{label:"5m",value:3e5}];var Qa=new Headers;Qa.append("Authorization",`Bearer ${Xa}`),Qa.append("Content-Type","application/json"),Qa.append("Content-Type","application/json");const es=e=>{let{hr:t,min:a,sec:s}=e;return(0,x.jsx)(Pa.A,{seconds:s,minutes:a,hours:t,onChange:e=>{let{hours:t,minutes:a,seconds:s}=e;localStorage.setItem("final-time",t+":"+a+":"+s)},render:e=>{let{formatted:t}=e;return(0,x.jsx)("span",{children:t})}})},ts=(e,t)=>{if(!e)return t;if("string"===typeof e)return e;const a=e.detail;if("string"===typeof a)return a;if(Array.isArray(a)&&a.length>0){return a.some(e=>(Array.isArray(null===e||void 0===e?void 0:e.loc)?e.loc:[]).includes("labelId"))?"Select a class for every annotation before saving.":a.some(e=>Array.isArray(null===e||void 0===e?void 0:e.loc)&&e.loc.includes("id"))?"An annotation has an invalid ID. Reload the task and try again.":a.slice(0,3).map(e=>"string"===typeof e?e:(null===e||void 0===e?void 0:e.message)||(null===e||void 0===e?void 0:e.msg)||JSON.stringify(e)).join(", ")}return(null===a||void 0===a?void 0:a.message)||e.message||e.error||t},as=e=>{const t=e.trim().replace(/^HTTP\s+\d+:\s*/i,"");try{return JSON.parse(t)}catch{const e=t.search(/[\[{]/);if(e>=0)return JSON.parse(t.slice(e));throw new Error("Response is not JSON")}},ss=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Something went wrong";if(!e)return t;if("string"!==typeof e)return ts(e,t);const a=e.trim();if(!a)return t;try{const e=as(a);return"string"===typeof e&&e!==a?ss(e,t):ts(e,t)}catch{const e=a.replace(/^HTTP\s+\d+:\s*/i,"");return e.includes("labelId")&&(e.includes("Input should be a valid string")||e.includes("string_type"))?t
1:e}},ls=function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return t.find(e=>void 0!==e&&null!==e&&""!==e)},ns=e=>void 0!==e&&null!==e&&""!==e,is=(e,t,a)=>{ns(a)&&e.set(t,String(a))},os=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return JSON.stringify(e.map(e=>({image_id:null===e||void 0===e?void 0:e.image_id,labelRects:(null===e||void 0===e?void 0:e.labelRects)||[],labelPoints:(null===e||void 0===e?void 0:e.labelPoints)||[],labelPolygons:(null===e||void 0===e?void 0:e.labelPolygons)||[],labelPolylines:(null===e||void 0===e?void 0:e.labelPolylines)||[],labelLines:(null===e||void 0===e?void 0:e.labelLines)||[],labelTags:(null===e||void 0===e?void 0:e.labelTags)||[],flags:(null===e||void 0===e?void 0:e.flags)||[]})))},rs=e=>os(e?[e]:[]),ds={updateBrightnessAction:o.Fl,updateContrastAction:o.WJ,updateGammaAction:o.vN,updateGrayscaleAction:o.$g,updateAiAssistModeAction:o.gS,updateAiAssistStatusAction:o.FX,toggleAiAssistFormAction:o.yz,toggleAiAssistButtonsAction:o.jV,updateImageDragModeStatusAction:o.MK,updateActiveLabelType:n.sh,updateActiveLabelId:n.vD,updateActiveLabelNameId:n.A2,updateVideoTrackingEnabled:n.n4},cs=(0,l.Ng)(e=>({windowSize:e.general.windowSize,activeImageIndex:e.labels.activeImageIndex,imagesData:e.labels.imagesData,activeContext:e.general.activeContext,projectData:e.general.projectData,projectType:e.general.projectData.type,UpdateSaveStatus:e.labels.UpdateSaveStatus,brightness:e.general.brightness,contrast:e.general.contrast,gamma:e.general.gamma,grayscale:e.general.grayscale,aiAssist:e.general.aiAssist,activeLabelType:e.labels.activeLabelType,labelNames:e.labels.labels,annotations:e.labels.annotations}),ds)(e=>{var t,a,l,n,i,o,r,d;let{windowSize:c,activeImageIndex:g,imagesData:h,activeContext:m,projectData:v,projectType:f,UpdateSaveStatus:y,brightness:w,contrast:j,gamma:N,grayscale:I,updateBrightnessAction:L,updateContrastAction:S,updateGammaAction:A,updateGrayscaleAction:C,aiAssist:P,updateAiAssistModeAction:E,updateAiAssistStatusAction:T,toggleAiAssistFormAction:R,toggleAiAssistButtonsAction:_,updateImageDragModeStatusAction:D,updateActiveLabelType:O,updateActiveLabelId:M,updateActiveLabelNameId:V,updateVideoTrackingEnabled:H,activeLabelType:F,labelNames:U,annotations:z}=e;const{mode:G,status:$,openForm:W,showButtons:Y}
1=P,[J,X]=(0,s.useState)(!1),[K,Z]=(0,s.useState)(!1),[Q,ee]=(0,s.useState)(!0),[te,ae]=(0,s.useState)(),[se,le]=(0,s.useState)(null),[ne,ie]=(0,s.useState)(void 0),[oe,re]=(0,s.useState)(void 0),de="true"==localStorage.getItem("validator"),ue=(null===v||void 0===v?void 0:v.task)||(null===v||void 0===v?void 0:v.task_type)||localStorage.getItem("tasktype")||localStorage.getItem("task_type"),ge=localStorage.getItem("annotation_types")||"",he=(0,s.useMemo)(()=>ge.split(",").filter(Boolean),[ge]),me=(0,s.useMemo)(()=>he.map(e=>ye.H[e]).filter(Boolean),[he]),[pe,be]=(0,s.useState)(null),[ve,xe]=(0,s.useState)(""),fe=(0,s.useRef)(null),je=(0,s.useRef)(null),[Ne,Ie]=(0,s.useState)(!1),[Le,Se]=(0,s.useState)(!1),Ae=(0,s.useRef)(null),Ce=(0,s.useRef)(null),[ke,Pe]=(0,s.useState)({top:0,left:0}),[Ee,Te]=(0,s.useState)("labels"),[Re,_e]=s.useState(null),[De,Oe]=(0,s.useState)(0),[Me,Be]=(0,s.useState)(!1),[Ve,He]=(0,s.useState)({}),[Fe,Ue]=(0,s.useState)(null),[ze,Ge]=(0,s.useState)(null),$e=(0,s.useRef)(!1),We=(0,s.useRef)(!1),Ye=(0,s.useRef)(null),qe=(0,s.useRef)({}),Je=(0,s.useCallback)(()=>{var e;const t=null===(e=Ae.current)||void 0===e?void 0:e.getBoundingClientRect();if(!t)return;const a=Pt(t,340,Math.min(520,window.innerHeight-90),"end");Pe({top:a.top,left:a.left})},[]);(0,s.useEffect)(()=>{if(!Le)return;const e=e=>{var t,a;null!==(t=Ce.current)&&void 0!==t&&t.contains(e.target)||null!==(a=Ae.current)&&void 0!==a&&a.contains(e.target)||Se(!1)},t=e=>{"Escape"===e.key&&Se(!1)};return window.addEventListener("mousedown",e),window.addEventListener("keydown",t),window.addEventListener("resize",Je),window.addEventListener("scroll",Je,!0),()=>{window.removeEventListener("mousedown",e),window.removeEventListener("keydown",t),window.removeEventListener("resize",Je),window.removeEventListener("scroll",Je,!0)}},[Le,Je]),(0,s.useEffect)(()=>Se(!1),[g,Ee]),(0,s.useEffect)(()=>{qe.current={},Ye.current=null},[v.id]);const Xe=(0,s.useRef)(!1),Ke=(0,s.useRef)(null),Ze=(0,s.useRef)(!1),[Qe,et]=(0,s.useState)(!1),tt=(null===P||void 0===P||null===(t=P.models)||void 0===t?void 0:t.find(e=>"running"===e.status))||null,at=(0,u.Zp)(),st=(0,u.zy)(),lt=st.state||{},nt=v,it=new URLSearchParams(st.search),ot=ls(lt.task_set_id,lt.taskSetId,lt.task_collection_id,lt.taskCollectionId,it.get("task_set_id"),it.get("taskSetId"),it.get("task_collection_id"),null===nt||void 0===nt?void 0:nt.task_set_id,null===nt||void 0===nt?void 0:nt.taskSetId),rt=ls(lt.dataset_id,lt.datasetId,lt.data_set_id,lt.dataSetId,it.get("dataset_id"),it.get("datasetId"),it.get("data_set_id"),null===nt||void 0===nt?void 0:nt.dataset_id,null===nt||void 0===nt?void 0:nt.datasetId,null===nt||void 0===nt?void 0:nt.data_set_id);console.log("projectData",v);const dt=It.j.getEditorData(),ct=It.j.isObjectTrackingTask(ue);(0,s.useEffect)(()=>{const e=`${(null===v||void 0===v?void 0:v.id)||""}:${ue||""}:${ge}`;if(!e||je.current===e)return;const t=It.j.fromProjectTask(ue),a=It.j.getDefaultLabelTypeForTask(ue,me);It.j.setTaskType(t),O(a),M(null),V(null),H(It.j.isObjectTrackingTask(t)),je.current=e},[null===v||void 0===v?void 0:v.id,ue,ge,me,O,M,V,H]);const gt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:w,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:j,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:N,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:I;const l=document.querySelector(".image-canvas");l&&(l.style.filter=`\n brightness(${e})\n contrast(${t})\n saturate(${a})\n grayscale(${s})\n `)},ht=e=>{fe.current&&!fe.current.contains(e.target)&&xe("")};(0,s.useEffect)(()=>(""!==ve?document.addEventListener("mousedown",ht):document.removeEventListener("mousedown",ht),()=>document.removeEventListener("mousedown",ht)),[ve]);const mt=()=>{const e=Array.isArray(U)?U:[],t=(0,b.sm)((()=>{const e=p.v.getHotkeysConfig();return e&&"object"===typeof e&&!Array.isArray(e)?e:{}})()),a=e.length>0?(0,b.Os)(t,e):(0,b.cV)(t);e.length>0&&p.v.setHotkeysConfig(a);const s=Object.fromEntries(Object.entries(a).map(e=>{let[t,a]=e;return[t,Array.isArray(a)?a.join(" + "):String(null!==a&&void 0!==a?a:"")]}));He(s)};(0,s.useEffect)(()=>{mt()},[U]);console.log("projectdata",v);const pt=(0,s.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h;
1Ye.current=os(e),e.forEach(e=>{!0===e.annotationLoaded&&(qe.current[e.image_id]=rs(e))})},[h]);(0,s.useEffect)(()=>{h.forEach(e=>{!0===e.annotationLoaded&&null==qe.current[e.image_id]&&(qe.current[e.image_id]=rs(e))}),null!==h&&void 0!==h&&h.length&&null==Ye.current&&(Ye.current=os(h))},[h]),(0,s.useEffect)(()=>{It.j.isObjectTrackingTask(v.task)&&0!==h.length&&!h.some(e=>"loaded"!==e.annotationLoadState)&&Bt.d.ensureTrackIdReservation().catch(e=>{console.error("Unable to prepare track IDs",e)})},[h,v.id,v.task]);const bt=(0,s.useCallback)(async function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(We.current)return!1;We.current=!0,a&&Ue(a),ae(null);const s=ce.M.getState(),l=s.labels.imagesData,n=null!==(e=s.labels.activeImageIndex)&&void 0!==e?e:0,i=l[n],o=It.j.isObjectTrackingTask(s.general.projectData.task)&&l.some(e=>"loaded"!==e.annotationLoadState);if(!i||"loaded"!==i.annotationLoadState||o)return ae("Wait for the active image annotations to finish loading before saving."),We.current=!1,a&&Ue(null),!1;const r=Ja({imagesData:l,activeImageIndex:n,updateSaveStatus:s.labels.UpdateSaveStatus}),d=["labelRects","labelPoints","labelLines","labelPolygons","labelPolylines","labelTags"],c=e=>"string"===typeof e&&e.trim().length>0||"number"===typeof e&&Number.isSafeInteger(e),u=r.annotations.find(e=>d.some(t=>(e[t]||[]).some(e=>!e||!c(e.labelId)))),g=r.annotations.find(e=>d.some(t=>(e[t]||[]).some(e=>!e||!c(e.id))));if(u||g)return ae(u?`Select a class for every annotation in ${u.image_id} before saving.`:`An annotation in ${g.image_id} has an invalid ID. Reload the task and try again.`),We.current=!1,a&&Ue(null),!1;const h=new Set(r.annotations.map(e=>e.image_id)),m=JSON.stringify(r),p={method:"POST",headers:Qa,body:m};try{const e=await fetch(`${window.ENV.API_URL}/tasks/annotate/${v.id}${t}`,p),s=t.includes("reject=true"),n=422===e.status||502===e.status?`Please select a label for every annotation before ${a?s?"rejecting":"completing":"saving"}.`:e.ok?a?"Finishing...":"Saved successfully":`Unable to ${a?s?"reject":"complete":"save"} annotations. Please try again.`,i=await(async(e,t)=>{try{const a=await e.text();if(!a)return t;try{return ts(as(a),t)}catch{return ss(a,t)}}catch{return t}})(e,n);return ae(i),!!e.ok&&(pt(l.filter(e=>h.has(e.image_id))),a&&(Xe.current=!0,Ge(a),Oe(5)),!0)}catch(b){return console.error("Error saving annotations:",b),ae(`Unable to ${a?t.includes("reject=true")?"reject":"complete":"save"} annotations. Please try again.`),!1}finally{We.current=!1,a&&Ue(null)}},[g,h,pt,v.id,y]),vt=(0,s.useCallback)(()=>bt(),[bt]),ft=(0,s.useRef)(vt);(0,s.useEffect)(()=>{ft.current=vt},[vt]),(0,s.useEffect)(()=>{if(te&&De<=0){const e=setTimeout(()=>ae(null),3e3);return()=>clearTimeout(e)}},[te,De]),s.useEffect(()=>{if(null!==se&&void 0!==se&&se.time){const e=setInterval(function(){ft.current()},se.time);return()=>clearInterval(e)}return()=>null},[null===se||void 0===se?void 0:se.time]);const yt=async(e,t)=>{if(!$e.current&&!ze){if("complete"===t){const e=ce.M.getState().labels.imagesData;if(0===e.length||e.some(e=>!e.seen))return void ae("Visit every frame before completing this task.")}$e.current=!0;try{await bt(e,t)||Oe(0)}finally{$e.current=!1}}};try{var At=localStorage.getItem("time").split(":")}catch($t){console.log($t),ae("Something went wrong"),Oe(5)}s.useEffect(()=>{const e=e=>{e.ctrlKey&&"s"===e.key.toLocaleLowerCase()&&(e.preventDefault(),vt())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[vt]),s.useEffect(()=>{Ka=(0,x.jsx)(es,{hr:(0,B.round)((0,B.toNumber)(At[0])),min:(0,B.round)((0,B.toNumber)(At[1])),sec:(0,B.round)((0,B.toNumber)(At[2]))})},[]);const Ct=()=>c?{width:c.width-(Ee?360:0),height:c.height-q.w.TOP_NAVIGATION_BAR_HEIGHT_PX-q.w.EDITOR_BOTTOM_NAVIGATION_BAR_HEIGHT_PX-q.w.EDITOR_TOP_NAVIGATION_BAR_HEIGHT_PX}:null,kt=e=>{const t=Ee===e?null:e;Te(t),Ie("info"===t),ee("labels"===t),X(!1),"ai"!==e&&W&&R(!1),"ai"===e&&(D(!0),R("ai"===t)),"hotkeys"===e&&"hotkeys"===t&&(mt(),Be(!1))},Et=(h.reduce((e,t)=>
1e+(t.labelPoints.length>0||0!==t.flags.length?1:0),0),h.reduce((e,t)=>e+(t.labelRects.length>0||0!==t.flags.length?1:0),0),h.reduce((e,t)=>e+(t.labelPolygons.length>0||t.flags.length?1:0),0),h.reduce((e,t)=>e+(t.labelPolylines.length>0||t.flags.length?1:0),0),h.reduce((e,t)=>e+(t.labelLines.length>0||t.flags.length?1:0),0),h.reduce((e,t)=>e+(0!==t.labelTags.length||t.labelPolygons.length>0||t.labelPoints.length>0?1:0),0),h.reduce((e,t)=>e+(0!==t.flags.length?1:0),0),h.reduce((e,t)=>e+(0!==t.labelRects.length||0!==t.labelPoints.length||0!==t.flags.length||0!==t.labelPolygons.length||0!==t.labelPolylines.length||0!==t.labelLines.length||0!==t.labelTags.length?1:0),0),(0,s.useCallback)(()=>{Xe.current=!0;const e=Ke.current;if(Ke.current=null,e)return void(/^https?:\/\//i.test(e)?window.location.href=e:at(e));const t=new URLSearchParams(st.search).get("project")||lt.projectId||lt.project_id||null;at(t?`/projects/${t}/deeplabel`:"/projects",{replace:!0})},[st.search,at,lt.projectId,lt.project_id])),Tt=(0,s.useCallback)(()=>{Ze.current=!1,et(!1),Ke.current=null},[]),Rt=(0,s.useCallback)(()=>{Xe.current?Et():(Ze.current=!0,et(!0))},[Et]),_t=(0,s.useRef)(Rt);_t.current=Rt;const Ot=(0,s.useCallback)(()=>{Ke.current=null,Rt()},[Rt]);(0,s.useEffect)(()=>{const e=e=>{Xe.current||(e.preventDefault(),e.returnValue="")};return window.addEventListener("beforeunload",e),()=>window.removeEventListener("beforeunload",e)},[]),(0,s.useEffect)(()=>{const e=e=>{var t;if(Xe.current)return;if(e.defaultPrevented)return;if(0!==e.button)return;if(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey)return;const a=e.target,s=null===a||void 0===a||null===(t=a.closest)||void 0===t?void 0:t.call(a,"a[href]");if(!s)return;if("_blank"===s.target||s.hasAttribute("download"))return;const l=s.getAttribute("href");if(!l||l.startsWith("#")||l.startsWith("javascript:"))return;const n=new URL(l,window.location.origin);n.origin===window.location.origin&&`${n.pathname}${n.search}${n.hash}`!==`${window.location.pathname}${window.location.search}${window.location.hash}`&&(e.preventDefault(),e.stopPropagation(),Ke.current=`${n.pathname}${n.search}${n.hash}`,_t.current())};return document.addEventListener("click",e,!0),()=>document.removeEventListener("click",e,!0)},[]),(0,s.useEffect)(()=>{window.history.pushState({annotationLeaveGuard:!0},"",window.location.href);const e=()=>{Xe.current||(window.history.pushState({annotationLeaveGuard:!0},"",window.location.href),Ze.current||(Ke.current=null,_t.current()))};return window.addEventListener("popstate",e),()=>window.removeEventListener("popstate",e)},[]);a=null===(l=v.task)||void 0===l?void 0:l.toLowerCase();const Mt=(e,t)=>
1{if(!e)return[];const a={};return[{key:"labelRects",name:"Rect"},{key:"labelPolygons",name:"Polygon"},{key:"labelPolylines",name:"Polyline"},{key:"labelPoints",name:"Point"},{key:"labelLines",name:"Line"},{key:"labelTags",name:"Tag"}].forEach(s=>{let{key:l,name:n}=s;(e[l]||[]).forEach(e=>{const s=(e=>{if(!e)return"Unlabeled";const a=t.find(t=>String(t.id)===String(e));if(a)return a.name;const s=t.find(t=>t.name===e);return s?s.name:"string"===typeof e&&e.length>1?e:"Unlabeled"})(e.labelId);a[s]||(a[s]={label:s,total:0,manual:0,ai:0,categories:{}}),a[s].categories[n]||(a[s].categories[n]={manual:0,ai:0,total:0}),a[s].total+=1,a[s].categories[n].total+=1,e.isCreatedByAI?(a[s].ai+=1,a[s].categories[n].ai+=1):(a[s].manual+=1,a[s].categories[n].manual+=1)})}),Object.values(a).sort((e,t)=>t.total-e.total)},Vt=(0,b.hO)(Object.entries(Ve||{}).filter(e=>{let[t]=e;if(!(0,b.T9)(String(t)))return!0;const a=parseInt(String(t).split(" ")[1],10);return Number.isFinite(a)&&a<((null===U||void 0===U?void 0:U.length)||0)}));(0,s.useEffect)(()=>{if(De<=0)return;const e=setInterval(()=>{Oe(t=>t<=1?(clearInterval(e),ae(null),Et(),0):t-1)},1e3);return()=>clearInterval(e)},[De,Et]);const Ft="loaded"===(null===(n=h[g])||void 0===n?void 0:n.annotationLoadState),Ut=Boolean(We.current||!Ft||ct&&h.some(e=>"loaded"!==e.annotationLoadState)),zt=Boolean(Ut||Fe||ze),Gt=h.length>0&&h.every(e=>e.seen);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(Ta.A,{isOpen:Qe,toggle:Tt,centered:!0,children:[(0,x.jsx)(Ra.A,{toggle:Tt,children:"Leave annotation task?"}),(0,x.jsx)(_a.A,{children:"Unsaved annotations may be lost."}),(0,x.jsxs)(Da.A,{children:[(0,x.jsx)(St.A,{color:"secondary",onClick:Tt,children:"Stay"}),(0,x.jsx)(St.A,{color:"primary",onClick:()=>{Ze.current=!1,et(!1),Et()},children:"Leave editor"})]})]}),te&&"string"!==typeof te&&(0,x.jsx)(Oa.A,{alert:te,time:2e3,close:void 0,topright:"normal"}),(0,x.jsxs)(Ta.A,{size:"xl",scrollable:!0,isOpen:void 0!==ne,children:[(0,x.jsx)(Ra.A,{className:"m-0 px-3",toggle:()=>{ie(void 0)},style:{borderBottom:"none"}}),(0,x.jsx)(_a.A,{style:{height:"93vh"},children:ne&&null!==oe&&void 0!==oe&&oe.preview?(0,x.jsx)("iframe",{title:"Guidelines",width:"100%",height:"100%",src:ne}):ne?(0,x.jsxs)("div",{className:"d-flex flex-column align-items-center gap-3 p-5",children:[(0,x.jsx)("p",{children:(null===oe||void 0===oe?void 0:oe.filename)||"Guideline file"}),(0,x.jsx)("a",{href:ne,download:(null===oe||void 0===oe?void 0:oe.filename)||"guidelines",children:"Download guideline"})]}):null})]}),(0,x.jsxs)("div",{className:"mt-3 d-flex justify-content-between align-items-center gap-2 px-4 w-100",children:[(0,x.jsxs)("div",{className:"header-left d-a",children:[(0,x.jsx)("img",{height:26,className:"cursor-pointer",src:null===(i=window.ENV)||void 0===i?void 0:i.LOGO,alt:"partner_logo",onClick:Ot,title:"Back"}),(0,x.jsx)("div",{className:"d-a px-2 py-1 rounded",children:(0,x.jsx)("h5",{className:"m-0 me-1",style:{fontWeight:"700"},children:v.name.replace(/_/g," ")})})]}),(0,x.jsxs)("div",{className:"d-a gap-2 justify-content-between h-100",children:[(0,x.jsxs)("div",{className:"d-a gap-2 editor-time-chip text-nowrap",children:[(0,x.jsx)("span",{style:{color:"gray"},children:"Time Spent"}),(0,x.jsx)("span",{children:Ka||"00:00"})]}),(0,x.jsx)("div",{className:" container-card px-1 py-0 rounded w-100 pb-0 h-100",children:(0,x.jsx)(Dt.Ay,{className:"basic-multi-select w-100 pb-0 h-100",id:"auto-save",options:Za,defaultValue:Za[0],onChange:e=>{le({time:e.value})},styles:{control:e=>({...e,borderWidth:0,boxShadow:"none",width:"125px",border:"transparent",background:"transparent",fontSize:"12px"}),singleValue:e=>({...e,color:"lightslategray"})}})}),ct&&(0,x.jsx)("div",{className:"container-card px-2 py-1 rounded",children:(0,x.jsx)(Ht,{toggleOnly:!0})}),(0,x.jsx)("button",{className:(Gt?"container-card text-secondary":"bg-main text-white border-0")+" px-2 py-1 rounded",onClick:vt,id:"auto-save",disabled:Ut,children:"Save"})," ",de&&(0,x.jsxs)(St.A,{className:"bg-danger px-2 py-1 rounded border-0 d-a gap-1",onClick:()=>yt("?reject=true","reject"),disabled:zt,"aria-busy":"reject"===Fe,children:["Reject","reject"===Fe&&(0,x.jsx)(wt.g,{className:"ms-1",icon:jt.z1G,spin:!0})]}),Gt&&(0,x.jsxs)(St.A,{className:"bg-main px-2 py-1 rounded border-0 d-a gap-1",onClick:()=>yt("?complete=true","complete"),disabled:zt,"aria-busy":"complete"===Fe,children:["Complete","complete"===Fe&&(0,x.jsx)(wt.g,{className:"ms-1",icon:jt.z1G,spin:!0})]})]})]}),(0,x.jsxs)("div",{className:"w-100 me-0 d-a py-1 justify-content-between px-4",style:{padding:"3px 24px",border:"2px s
1olid var(--card-color)",background:"var(--bg-color1)",borderLeftWidth:"0px",borderRightWidth:"0px"},children:[(0,x.jsxs)("div",{className:"d-a gap-4",children:[(0,x.jsx)("div",{className:"d-a gap-2 container-card px-2 py-1 rounded",style:{background:"var(--card-color)"},children:he.map((e,t)=>{const a=ye.H[e],s=(0,B.find)(we,{labelType:a});if(!s||!a)return null;const l=e=>h.reduce((t,a)=>t+((e,t)=>{var a,s,l,n;return e.seen?(null===(n=e[t])||void 0===n?void 0:n.length)||0:(null===z||void 0===z||null===(a=z[e.image_id])||void 0===a||null===(s=a[t])||void 0===s?void 0:s.length)||(null===(l=e[t])||void 0===l?void 0:l.length)||0})(a,e),0),n={Rect:l("labelRects"),Point:l("labelPoints"),Polygon:l("labelPolygons"),Polyline:l("labelPolylines"),Line:l("labelLines"),Tag:l("labelTags")}[s.headerText]||0,i=a===F;return(0,x.jsx)(Nt.FS,{title:s.headerText,children:(0,x.jsx)("div",{className:"cursor-pointer m-0 p-1 px-2 rounded "+(i?"active-label":"grey-card"),style:{background:i?"var(--leading-color)":"transparent",transition:"background 0.2s ease"},onClick:()=>{O(a),M(null)},children:(0,x.jsxs)("div",{className:"position-relative d-j-a",children:[(0,x.jsx)("img",{src:s.imageSrc,width:15,alt:s.imageAlt,className:`${i&&"selected-img"} label-images`}),n>0&&(0,x.jsx)("span",{className:"position-absolute",style:{top:-5,right:-8,background:"#69c7ff",color:"#000",borderRadius:"10px",fontSize:"10px",fontWeight:700,padding:"0px 5px",lineHeight:"14px",minWidth:"15px",textAlign:"center"},children:n})]})})},t)})}),(0,x.jsx)("div",{style:{width:"2px",height:"35px",background:"var(--card-color)"}}),(0,x.jsx)("span",{className:"cursor-pointer button p-1 d-a font-bold",onClick:()=>{const e=()=>{ie(void 0),re(void 0),ae({message:"Guideline file not found",status:"warning"})};try{const t=new URLSearchParams;if(is(t,"task_set_id",ot),is(t,"dataset_id",rt),!ns(ot)&&!ns(rt))return void ae({message:"Guideline details not available",status:"error"});const a=`${window.ENV.API_URL}/tasks/get_guideline?${t.toString()}`;(0,Ma.A)(a,"get",null,"blobWithMetadata").then(t=>{const a=null===t||void 0===t?void 0:t.blob,s=(null===t||void 0===t?void 0:t.mediaType)||(null===a||void 0===a?void 0:a.type)||"";a&&!s.includes("json")&&0!==a.size?(re({filename:t.filename||"guidelines",preview:s.includes("pdf")||s.startsWith("image/")}),ie(URL.createObjectURL(a))):e()}).catch(t=>{console.error("Failed to load guideline PDF:",t),e()})}catch(t){console.log(t),e()}},children:"View Guide"})]}),(0,x.jsx)("div",{className:"d-a",children:(0,x.jsx)(Ea,{imageData:h[g],imagesData:h,size:Ct(),totalImageCount:h.length},"editor-bottom-navigation-bar")}),(0,x.jsxs)("div",{className:"d-a gap-2 editor-panel-switches",children:[(0,x.jsxs)("button",{className:"d-a fw-bold text-secondary py-1 px-2 gap-1 "+("settings"===Ee?"container-card text-primary":"plain-button"),style:{textDecoration:"none"},onClick:()=>kt("settings"),children:[(0,x.jsx)(Lt.YG,{className:"wf-icon-small "+("settings"===Ee?"text-primary":"text-secondary")}),(0,x.jsx)("small",{children:"Settings"})]}),(0,x.jsxs)("button",{className:"d-a fw-bold text-secondary py-1 px-2 gap-1 "+("info"===Ee?"container-card text-primary":"plain-button"),style:{textDecoration:"none"},onClick:e=>{e.preventDefault(),pe&&be(null),kt("info")},children:[(0,x.jsx)(Lt.mo,{className:"wf-icon-small "+("info"===Ee?"text-primary":"text-secondary")}),(0,x.jsx)("small",{children:"Info"})]}),(0,x.jsxs)("button",{className:"d-a fw-bold text-secondary py-1 px-2 gap-1 "+("labels"===Ee?"container-card text-primary":"plain-button"),style:{textDecoration:"none"},onClick:()=>kt("labels"),children:[(0,x.jsx)(Lt.Zt,{className:"wf-icon-small "+("labels"===Ee?"text-primary":"text-secondary")}),(0,x.jsx)("small",{children:"Labels"})]}),(0,x.jsxs)("button",{className:"d-a fw-bold text-secondary py-1 px-2 gap-1 "+("images"===Ee?"container-card text-primary":"plain-button"),style:{textDecoration:"none"},onClick:()=>kt("images"),children:[(0,x.jsx)(Lt.sY,{className:"wf-icon-small "+("images"===Ee?"text-primary":"text-secondary"),style:{height:"12.5px",width:"12.5px"}}),(0,x.jsx)("small",{children:"Images"})]}),(0,x.jsxs)("button",{className:`container-card px-2 py-1 rounded d-a gap-2 fw-bold ${"ai"===Ee&&"ripple-btn"}`,style:{color:"running"===(null===tt||void 0===tt?void 0:tt.status)?"green":"pending"===(null===tt||void 0===tt?void 0:tt.status)?"orange":"red",padding:"3px 12px"},onClick:e=>{e.preventDefault(),pe&&be(null),kt("ai")},children:[(0,x.jsx)(Lt.v8,{className:"wf-icon-small"}),(0,x.jsx)("small",{children:tt?`AI - ${tt.model_name}`:"AI"})]}),(0,x.jsxs)("button",{className:"d-a fw-bold text-secondary py-1 px-2 gap-1 "+("hotkeys"===Ee?"container-card text-primary":"plain-button"),style:{textDecoration:"none"},onClick:()=>kt("hotkeys"),children:[(0,x.jsx)(Lt.zV,{className:"wf-icon-small"}),(0,x.jsx)("small",{children:"Hotkeys"})]})]})]}),(0,x.jsxs)("div",{className:"EditorContainer p-0 px-4",children:[(0,x.jsx)("div",{className:"EditorWrapper p-0 position-relative m-2 container-card mb-0 ms-0 overflow-hidden shadow border-0",onMouseDown:()=>p.v.switchCtx(k.E.EDITOR),children:(0,x.jsx)(ka,{size:Ct(),imageData:h[g],projectData:v},"editor")},"editor-wrapper"),Ee&&(0,x.jsxs)("div",{ref:fe,className:"container-card shadow ms-2 mt-2 mb-0 editor-right-panel border-0",children:["ai"===Ee&&(0,x.jsx)("div",{className:"h-100 editor-right-panel__content",children:(0,x.jsx)(Ga,{})}),"settings"===Ee&&(0,x.jsxs)("div",{className:"h-100 editor-right-panel__content",children:[(0,x.jsx)("div",{className:"mb-4",children:"Image Settings"}),[{label:"Brightness",icon:jt.oMq,value:w,min:.5,max:2,step:.1,setter:L},{label:"Contrast",icon:jt.Rpi,value:j,min:.5,max:2,step:.1,setter:S},{label:"Grayscale",icon:jt.fyG,value:I,min:0,max:1,step:.1,setter:C}].map((e,t)=>
1(0,x.jsxs)("div",{className:"filter-row mb-3",style:{display:"flex",alignItems:"center",gap:"8px"},children:[(0,x.jsx)(wt.g,{icon:e.icon,style:{width:"18px"}}),(0,x.jsx)("span",{style:{width:"80px",fontSize:"13px"},children:e.label}),(0,x.jsx)("input",{type:"range",min:e.min,max:e.max,step:e.step,value:e.value,onChange:t=>{const a=parseFloat(t.target.value);e.setter(a),gt("Brightness"===e.label?a:w,"Contrast"===e.label?a:j,"Grayscale"===e.label?a:I)},style:{flex:1,accentColor:"#1a73e8"}}),(0,x.jsx)("input",{type:"number",step:e.step,min:e.min,max:e.max,value:e.value.toFixed(1),onChange:t=>{const a=parseFloat(t.target.value);isNaN(a)||(e.setter(a),gt("Brightness"===e.label?a:w,"Contrast"===e.label?a:j,"Grayscale"===e.label?a:I))},className:"border d-a",style:{width:"45px",textAlign:"center",background:"transparent",border:"1px solid var(--border-color)",borderRadius:"4px",fontSize:"12px",color:"var(--text-color)"}})]},t)),(0,x.jsx)("div",{style:{textAlign:"right",marginTop:"4px"},className:"pt-2",children:(0,x.jsx)("button",{className:"plain-button2 text-danger",onClick:()=>{L(1),S(1),C(0),gt(1,1,1,0)},children:"Reset"})})]}),"info"===Ee&&(0,x.jsxs)("div",{className:"h-100 editor-right-panel__content",children:[(0,x.jsxs)("div",{className:"editor-right-panel__header",children:[(0,x.jsxs)("div",{className:"d-a gap-2 justify-content-between mb-2",children:[(0,x.jsx)("span",{style:{opacity:"0.7",wordBreak:"break-word"},className:"m-0 fw-bold",children:null===(o=h[g])||void 0===o?void 0:o.image_id}),(0,x.jsxs)("button",{ref:Ae,type:"button",onClick:()=>{Je(),Se(e=>!e)},className:"editor-image-flag-button cursor-pointer plain-button2","aria-label":"Image flags","aria-expanded":Le,children:[(0,x.jsx)("img",{src:"/ico/Flag.png",className:"wf-flag-icon",style:{width:"15px"},alt:""}),(0,x.jsx)(da.A,{color:"bg-danger",className:"editor-image-flag-badge",children:h[g].flags.length})]})]}),Le&&(0,ut.createPortal)((0,x.jsx)("div",{ref:Ce,className:"editor-flag-popover",style:ke,children:(0,x.jsx)(ca,{})}),document.body)]}),(0,x.jsxs)("div",{className:"editor-right-panel__scroll",children:[(0,x.jsxs)("div",{className:"mb-3",children:[(0,x.jsx)("div",{className:"my-2 pt-2 fw-bold",children:"Meta Data"}),(0,x.jsxs)("span",{className:"mb-1 d-a justify-content-between",children:[(0,x.jsx)("small",{children:"Width:"})," ",(null===dt||void 0===dt||null===(r=dt.realImageSize)||void 0===r?void 0:r.width)||"\u2014"]}),(0,x.jsxs)("span",{className:"mb-1 d-a justify-content-between",children:[(0,x.jsx)("small",{children:"Height:"})," ",(null===dt||void 0===dt||null===(d=dt.realImageSize)||void 0===d?void 0:d.height)||"\u2014"]})]}),(0,x.jsxs)("div",{className:"mb-3",children:[(0,x.jsx)("div",{className:"my-2 pt-2 fw-bold",children:"Annotation Summary"}),(0,x.jsx)("div",{className:"grey-card10 p-2 mx-1",children:he.map((e,t)=>{var a;const l=ye.H[e],n=(0,B.find)(we,{labelType:l});if(!n||!l)return null;const i=(null===(a=h[g][`label${n.headerText}s`])||void 0===a?void 0:a.length)||0,o=l===F;return(0,x.jsxs)(s.Fragment,{children:[o&&(0,x.jsx)("small",{className:"text-primary",children:"Current Annotation Draw Mode"}),(0,x.jsxs)("div",{className:`d-a justify-content-between cursor-pointer p-2 rounded hover-bg px-2 ${!o&&"border-0 shadow-0 grey-card4"}`,style:{background:o?"var(--card-color)":"",transition:"background 0.2s ease"},onClick:()=>{O(l),M(null)},children:[(0,x.jsxs)("div",{className:"d-a gap-2",children:[(0,x.jsx)("img",{src:n.imageSrc,width:20,alt:n.imageAlt,className:"label-images"}),(0,x.jsx)("span",{children:n.headerText})]}),i>0&&(0,x.jsx)("span",{style:{background:"#69c7ff",color:"#000",borderRadius:"10px",fontSize:"11px",fontWeight:"700",padding:"1px 6px"},children:i})]})]},t)})})]}),(()=>{const e=Mt(h[g],U);return e.length?(0,x.jsxs)("div",{className:"mt-3",children:[(0,x.jsx)("div",{className:"my-2 pt-2 fw-bold",children:"Label Summary"}),(0,x.jsx)("div",{children:e.map(e=>{const t=Re===(null===e||void 0===e?void 0:e.label);return(0,x.jsxs)("div",{className:"border-bottom mb-2",style:{border:"1px solid var(--bg-color4)",borderRadius:"6px",overflow:"hidden",fontSize:"13px"},children:[(0,x.jsxs)("div",{className:"d-flex justify-content-between align-items-center mt-1 mb-1 cursor-pointer p-2 ",onClick:()=>_e(t?null:null===e||void 0===e?void 0:e.label),style:{cursor:"pointer",fontWeight:"600"},children:[(0,x.jsx)("span",{children:null===e||void 0===e?void 0:e.label}),(0,x.jsx)("span",{children:null===e||void 0===e?void 0:e.total})]}),t&&(0,x.jsxs)("div",{className:"mt-2 px-2",children:[(0,x.jsxs)("div",{className:"d-flex justify-content-between",children:[(0,x.jsx)("span",{children:"Manual"}),(0,x.jsx)("span",{children:null===e||void 0===e?void 0:e.manual})]}),(0,x.jsxs)("div",{className:"d-flex justify-content-between",children:[(0,x.jsx)("span",{children:"AI Assist"}),(0,x.jsx)("span",{children:null===e||void 0===e?void 0:e.ai})]}),(0,x.jsx)("hr",{className:"my-2"}),(0,x.jsx)("div",{className:"category-breakdown",children:Object.entries(e.categories||{}).map(e=>
1{let[t,a]=e;return(0,x.jsxs)("div",{className:"mb-2 ps-2",children:[(0,x.jsx)("div",{className:"fw-bold",children:t}),(0,x.jsxs)("div",{className:"d-flex justify-content-between small",children:[(0,x.jsx)("span",{children:"Manual"}),(0,x.jsx)("span",{children:a.manual})]}),(0,x.jsxs)("div",{className:"d-flex justify-content-between small",children:[(0,x.jsx)("span",{children:"AI Assist"}),(0,x.jsx)("span",{children:a.ai})]})]},t)})})]})]},null===e||void 0===e?void 0:e.label)})})]}):null})()]})]}),"labels"===Ee&&(0,x.jsx)("div",{className:"h-100 editor-right-panel__content",children:(0,x.jsx)(ha,{})}),"images"===Ee&&(0,x.jsx)("div",{className:"h-100 editor-right-panel__content",children:(0,x.jsx)(xt,{})}),"hotkeys"===Ee&&(0,x.jsxs)("div",{className:"h-100 editor-right-panel__content",children:[(0,x.jsxs)("div",{className:"editor-right-panel__header d-flex justify-content-between align-items-center mb-3",children:[(0,x.jsx)("div",{className:"mb-0",children:"Hotkeys"}),(0,x.jsx)("div",{className:"d-flex gap-2",children:Me?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("button",{className:"plain-button2 text-secondary",onClick:()=>{mt(),Be(!1)},children:"Cancel"}),(0,x.jsx)("button",{className:"plain-button2 text-primary",onClick:()=>{const e=Object.entries(Ve).reduce((e,t)=>{let[a,s]=t;if((0,b.T9)(a))return e;const l=String(s).split("+").map(e=>e.trim()).filter(Boolean);return l.length>0&&(e[a]=l),e},{}),t=(0,b.Os)(e,U||[]),a=(0,b.K7)(t);a?ae(`Duplicate shortcut "${a.combo}" is assigned to both "${(0,b.IC)(a.other,U)}" and "${(0,b.IC)(a.action,U)}".`):(p.v.setHotkeysConfig(t),p.v.updateHotkeys(),He(Object.fromEntries(Object.entries(t).map(e=>{let[t,a]=e;return[t,a.join(" + ")]}))),Be(!1),ae("Hotkeys updated"))},children:"Save"})]}):(0,x.jsx)("button",{className:"plain-button2 text-primary",onClick:()=>{mt(),Be(!0)},children:"Edit"})})]}),(0,x.jsx)("div",{className:"editor-right-panel__scroll d-flex flex-column gap-2",children:Vt.length>0?Vt.map(e=>{let[t,a]=e;const s=String(t),l=(0,b.T9)(s),n=Me&&!l;return(0,x.jsxs)("div",{className:"container-card px-2 py-2 d-flex justify-content-between align-items-center gap-2",children:[(0,x.jsxs)("div",{className:"d-flex flex-column",children:[(0,x.jsx)("span",{children:(0,b.IC)(s,U)}),b.rg[s]&&(0,x.jsx)("small",{className:"text-secondary",children:b.rg[s]}),l&&Me&&(0,x.jsx)("small",{className:"text-secondary",children:"Fixed to label order from task data"})]}),n?(0,x.jsx)("input",{type:"text",value:String(a),onChange:e=>((e,t)=>{(0,b.T9)(e)||He(a=>({...a,[e]:t}))})(s,e.target.value),placeholder:"Control + s",className:"border rounded px-2 py-1 small",style:{minWidth:"140px",textAlign:"right",background:"transparent",color:"var(--text-color)",borderColor:"var(--border-color)"}}):(0,x.jsx)("span",{className:"small text-secondary",children:String(a)})]},s)}):(0,x.jsx)("div",{className:"text-secondary small",children:"No hotkeys configured."})})]}),pe&&(0,x.jsx)($a.v,{open:(null===pe||void 0===pe?void 0:pe.length)>0,close:()=>be(null),path:pe,onSubmit:Wa.Kg,images:"",project_id:"",default_form:"",reload:""})]})]}),"string"===typeof te&&(()=>{const e=ss(te,"Please select a label for every annotation."),t="Please select a label for every annotation."===e;return(0,x.jsxs)("div",{className:"top-popup d-a gap-2",children:[t&&(0,x.jsx)(Lt.mo,{className:"wf-icon-small text-danger"}),(0,x.jsxs)("div",{children:[(0,x.jsx)("span",{children:e}),De>0&&(0,x.jsxs)("div",{className:"top-popup-subtext",children:["Redirecting in ",De," second",1!==De?"s":""]})]})]})})()]})});var us=a(3765),gs=a(51604),hs=a(63762),ms=a(17102),ps=a(85577),bs=a(33945);const vs=e=>{const t=Math.floor(e/60),a=Math.floor(e%60),s=Math.floor(e%1*100);return`${t}:${a<10?`0${a}`:a}:${s<10?`0${s}`:s}`},xs=e=>{let{regionMap:t,regionOptions:a,handleRegionSelect:s,handleRegionInputChange:l,handleRegionBlur:n,handleRegionNameChange:i,toggleRegionVisibility:o,deleteRegionById:r,commitRegions:d}=e;return(0,x.jsx)("div",{children:(0,x.jsx)("div",{className:"region-info mt-4",children:Object.values(t).map(e=>(0,x.jsxs)("div",{className:"p-2 mb-2 grey-card5",children:[(0,x.jsxs)("div",{className:"d-a justify-content-between",children:[(0,x.jsxs)("div",{className:"gap-2 d-a",children:[(0,x.jsx)("input",{type:"checkbox",checked:e.selected||!1,onChange:t=>s(e.id,t.target.checked)}),(0,x.jsx)("button",{onClick:()=>o(e.id),className:"plain-button2",children:(0,x.jsx)(wt.g,{icon:e.visible?jt.k6j:jt.pS3})}),(0,x.jsx)("select",{className:"bg-transparent audio-slect-field",value:e.name,onChange:t=>i(e.id,t.target.value),children:a.map(e=>(0,x.jsx)("option",{value:e.value,children:e.label},e.value))})]}),(0,x.jsx)("button",{onClick:()=>{const t=r(e.id);d(t,!0)},className:"plain-button",children:(0,x.jsx)(wt.g,{icon:jt.yLS,style:{color:"red"}})})]}),(0,x.jsxs)("div",{className:"d-a px-3 mt-3 mb-2",children:[(0,x.jsx)("div",{className:"d-flex align-items-center gap-1 me-3",children:(0,x.jsx)("input",{className:"bg-transparent grey-card3 text p-1",type:"text",value:vs(e.start),onChange:t=>l(e.id,"start",t.target.value),onBlur:()=>n(e.id),style:{width:"80px"}})}),"-",(0,x.jsx)("div",{className:"d-flex align-items-center gap-1 mx-3",children:(0,x.jsx)("input",{className:"bg-transparent grey-card3 text p-1",type:"text",value:vs(e.end),onChange:t=>l(e.id,"end",t.target.value),onBlur:()=>n(e.id),style:{width:"80px"}})}),(0,x.jsx)("div",{className:"d-flex align-items-center gap-1",children:(0,x.jsxs)("span",{children:[(e.end-e.start).toFixed(2),"s"]})})]})]},e.id))})})},fs=e=>{let{regionCreationEnabled:t,toggleRegionCreation:a,handleUndo:s,handleRedo:l,handleZoomIn:n,handleZoomOut:i,handleResetZoom:o}=e;return(0,x.jsxs)("div",{className:"d-flex gap-2 flex-wrap justify-content-center ImageButton grey-card5 py-3",style:{padding:"5px",borderRadius:"12px",position:"absolute",left:"0",marginLeft:"12px",width:"45px",bottom:"170px"},children:[(0,x.jsx)("div",{className:"imagediv",style:{backgroundColor:t&&"var(--leading-color)",borderRadius:"7px"},children:(0,x.jsx)("img",{src:"/ico/pencil.png",width:35,onClick:a,className:"p-2",style:{filter:t&&"brightness(0) invert(1)"}})}),(0,x.jsx)("div",{className:"border my-2",style:{height:"1px",width:"100%"}}),(0,x.jsx)("img",{className:"p-2 Imagediv",src:"/ico/undo.png",width:30,onClick:s}),(0,x.jsx)("img",{className:"p-2 Imagediv",src:"/ico/redo.png",width:30,onClick:l}),(0,x.jsx)("div",{className:"border my-2",style:{height:"1px",width:"100%"}}),(0,x.jsx)("img",{className:"p-2 Imagediv",src:"/ico/zoom-in.png",width:35,onClick:n}),(0,x.jsx)("img",{className:"p-2 Imagediv",src:"/ico/zoom-out.png",width:35,onClick:i}),(0,x.jsx)("img",{className:"p-2 Imagediv",src:"/ico/zoom-fit.png",width:32,onClick:o})]})},ys=[{value:"select",label:"Select Region",color:"rgba(0,123,255,0.5)"},{value:"regionA",label:"Region A",color:"#ff0000"},{value:"regionB",label:"Region B",color:"#00ff00"},{value:"regionC",label:"Region C",color:"#0000ff"}],ws=(0,s.forwardRef)((e,t)=>{const{audioData:a,initialRegions:l={},initialHistory:n=[],initialFuture:i=[],onFileDataChange:o,regionOptions:r=ys,regionCreationEnabled:d,toggleRegionCreation:c,setShowFiles:u,showFiles:g}
1=e,[h,m]=(0,s.useState)(l),[p,b]=(0,s.useState)(n),[v,f]=(0,s.useState)(i),[y,w]=(0,s.useState)(.5),[j,N]=(0,s.useState)(!1),[I,L]=(0,s.useState)(!1),[S,A]=(0,s.useState)(0),[C,k]=(0,s.useState)(0),[P,E]=(0,s.useState)(null),[T,R]=(0,s.useState)(!1),[_,D]=(0,s.useState)(210),[O,M]=(0,s.useState)(1),[B,V]=(0,s.useState)(!1),H=(0,s.useRef)(h),F=(0,s.useRef)(p),U=(0,s.useRef)(v);(0,s.useEffect)(()=>{H.current=h},[h]),(0,s.useEffect)(()=>{F.current=p},[p]),(0,s.useEffect)(()=>{U.current=v},[v]);const z=(0,s.useRef)(null),G=(0,s.useRef)(null),$=(0,s.useRef)(null),W=(0,s.useRef)(null),Y=(0,s.useRef)(null),q=e=>{const t=Math.floor(e/60),a=Math.floor(e%60),s=Math.floor(100*(e-Math.floor(e)));return S<60?`${t}:${a<10?`0${a}`:a}:${s<10?`0${s}`:s}`:`${t}:${a<10?`0${a}`:a}`};(0,s.useEffect)(()=>{o&&o({annotations:h,history:p,future:v})},[h,p,v,o]),(0,s.useImperativeHandle)(t,()=>({commitAnnotations:e=>{o&&o({annotations:h,history:p,future:v},e)}}));(0,s.useEffect)(()=>{if(z.current&&a){if(!$.current){const e=ms.A.create(),t=hs.A.create({container:z.current,waveColor:"rgba(209,209,209,0.74)",progressColor:"#8d8c8cd0",height:250,url:a,sampleRate:44100,interact:!1,dragToSeek:!1,scrollParent:!1,fillParent:!0,plugins:[e,ps.A.create({lineColor:"#ff0000",tooltip:{formatter:e=>q(e)}}),bs.A.create({container:G.current,timeInterval:1,primaryLabelInterval:5,secondaryLabelInterval:1,primaryColor:"#000",secondaryColor:"#666",fontColor:"#000"})]});$.current=t,W.current=e,t.once("ready",()=>{const e=z.current.clientWidth,a=t.getDuration(),s=e/a;D(s),t.zoom(s),A(a),Object.values(h).forEach(e=>X(e))}),t.on("audioprocess",()=>{k(t.getCurrentTime())})}return()=>{o&&o({annotations:H.current,history:F.current,future:U.current}),$.current&&($.current.destroy(),$.current=null)}}},[a]);const J=(e,t)=>{if(e.startsWith("rgba")){const a=e.match(/rgba\((\d+),\s*(\d+),\s*(\d+),\s*([\d.]+)\)/);if(a){const[e,s,l,n]=a;return`rgba(${s}, ${l}, ${n}, ${t})`}}if(e.startsWith("#")){let a,s,l;return 7===e.length?(a=parseInt(e.substr(1,2),16),s=parseInt(e.substr(3,2),16),l=parseInt(e.substr(5,2),16)):4===e.length&&(a=parseInt(e.charAt(1)+e.charAt(1),16),s=parseInt(e.charAt(2)+e.charAt(2),16),l=parseInt(e.charAt(3)+e.charAt(3),16)),`rgba(${a}, ${s}, ${l}, ${t})`}return e},X=e=>{var t;if(!W.current)return;const a=J(e.color,y),s=W.current.addRegion({id:e.id,start:e.start,end:e.end,color:a,drag:!0,resize:!0,attributes:{name:e.name},content:"select"!==e.name?(null===(t=r.find(t=>t.value===e.name))||void 0===t?void 0:t.label)||"Unnamed":"Select Region"});K(s),!e.visible&&s.element&&(s.element.style.display="none")},K=e=>{e.on("update",()=>{Z(e.id,{start:e.start,end:e.end,duration:e.end-e.start})}),e.on("update-end",()=>{Z(e.id,{start:e.start,end:e.end,duration:e.end-e.start})}),e.on("click",t=>{t.stopPropagation(),e.play()})},Z=(e,t)=>{m(a=>({...a,[e]:{...a[e],...t}}))},Q=function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];b(e=>[...e,h]),f([]),t||ee(Object.values(e)),m(e)},ee=e=>{W.current.getRegions().forEach(e=>e.remove()),e.forEach(e=>X(e))},te=e=>{if(!$.current)return 0;const t=$.current.drawer,a=$.current.getDuration();if(t&&"function"===typeof t.handleEvent){const s=t.handleEvent(e),l=t.getWidth();return l&&a?s/l*a:0}{const s=t&&t.wrapper||z.current;if(!s)return 0;const l=s.getBoundingClientRect(),n=e.pageX-l.left+s.scrollLeft-window.scrollX+0,i=t&&t.getWidth()||s.scrollWidth;if(!i||!a)return 0;return Math.max(0,Math.min(n,i))/i*a}};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{children:(0,x.jsx)(fs,{regionCreationEnabled:d,toggleRegionCreation:c,handleUndo:()=>{if(0===p.length)return;const e=p[p.length-1];b(e=>e.slice(0,e.length-1)),f(e=>[...e,h]),ee(Object.values(e)),m(e)},handleRedo:()=>{if(0===v.length)return;const e=v[v.length-1];f(e=>e.slice(0,e.length-1)),b(e=>[...e,h]),ee(Object.values(e)),m(e)},handleZoomIn:()=>{if(!$.current)return;const e=_+50;D(e),$.current.zoom(e)},handleZoomOut:()=>{if(!$.current)return;const e=Math.max(50,_-50);D(e),$.current.zoom(e)},handleResetZoom:()=>{$.current&&(D(210),$.current.zoom(210))}})}),(0,x.jsxs)("div",{className:"w-100 px-5 ms-4 pe-0",style:{height:"calc(100vh - 180px)",flexDirection:"column",paddingTop:"12%"},children:[(0,x.jsx)("div",{ref:z,id:"waveform",style:{width:"100%",maxHeight:"300px",cursor:d?"crosshair":"default",overflowX:"auto"},className:"border",onMouseDown:e=>{if(!d||!$.current)return;Y.current=null,R(!0),$.current.setMuted(!0);const t=te(e);E(t)},onMouseMove:e=>{if(!d||!T||null===P)return;if(!$.current)return;const t=te(e);t>P+.1&&(Y.current?Y.current.setOptions({start:P,end:t}):(Y.current=W.current.addRegion({start:P,end:t,color:J("rgba(0,123,255,0.5)",y),drag:!0,resize:!0,attributes:{name:"select"},content:"Select Region"}),K(Y.current)))},onMouseUp:()=>
1{if(d&&T&&null!==P&&$.current){if(R(!1),$.current.setMuted(!1),Y.current){const e=Y.current,t={id:e.id,name:"select",start:e.start,end:e.end,duration:e.end-e.start,color:"rgba(0,123,255,0.5)",visible:!0,selected:!1},a={...h,[t.id]:t};Q(a,!0),Y.current=null}E(null)}}}),(0,x.jsx)("div",{ref:G,className:"timeline",style:{display:"flex",justifyContent:"space-between",position:"relative",width:"100%"},children:(()=>{const e=[];if(S>0){let t;t=S<60?.5:S<3600?1:S<86400?60:300;const a=Math.ceil(S/t);for(let s=0;s<=a;s++){const a=s*t;e.push(a)}}return e})().map((e,t)=>(0,x.jsx)("div",{style:{position:"absolute",left:e/S*100+"%",top:"5px",fontSize:"10px",color:"gray"},children:q(e)},t))}),(0,x.jsxs)("div",{className:"d-a justify-content-between mt-5",style:{width:"100%"},children:[(0,x.jsxs)("div",{className:"d-flex gap-2 w-100 p-0 pe-2 m-0",children:[(0,x.jsx)("button",{onClick:()=>{var e;null===(e=$.current)||void 0===e||e.playPause(),N(!j)},className:j?"plain-button":"plain-button2",children:(0,x.jsx)(wt.g,{icon:j?jt.G1Y:jt.ijD})}),(0,x.jsx)("button",{onClick:()=>{$.current&&($.current.setMuted(!I),L(!I))},className:"plain-button2 ps-3",children:(0,x.jsx)(wt.g,{icon:I?jt.PKk:jt.jY_})}),(0,x.jsxs)("div",{className:"d-flex align-items-center gap-1",children:[(0,x.jsx)("label",{className:"ps-3",children:"Play Speed:"}),(0,x.jsxs)("select",{value:O,onChange:e=>{if(!$.current)return;const t=parseFloat(e.target.value);M(t),$.current.setPlaybackRate(t)},className:"border- bg-transparent text audio-slect-field",children:[(0,x.jsx)("option",{value:.5,children:"0.5x"}),(0,x.jsx)("option",{value:.75,children:"0.75x"}),(0,x.jsx)("option",{value:1,children:"1x"}),(0,x.jsx)("option",{value:1.25,children:"1.25x"}),(0,x.jsx)("option",{value:1.5,children:"1.5x"}),(0,x.jsx)("option",{value:2,children:"2x"})]})]})]}),(0,x.jsxs)("div",{style:{whiteSpace:"nowrap"},children:[q(C)," / ",q(S)]})]})]}),(0,x.jsx)("button",{className:"VerticalEditorButton active me-0 px-4",style:{position:"absolute",right:"0",top:"68px",width:"50px",border:"none"},onClick:()=>u(!g),children:g?"Files":"Regions"}),!g&&(0,x.jsxs)("div",{style:{position:"absolute",right:"0",top:"98px",marginRight:"20px",padding:"15px",width:"21%",height:"calc(100vh - 110px)"},className:"grey-card5",children:[(0,x.jsx)("h5",{className:"my-2",children:"Regions"}),(0,x.jsxs)("div",{className:"border-btm pb-3 mb-3",children:[(0,x.jsxs)("div",{className:"d-a justify-content-between w-100 p-0",children:[(0,x.jsx)("label",{style:{cursor:"pointer",color:"lightslategrey",borderBottom:"1px solid lightgray"},onClick:()=>V(!0),children:"Opacity"}),B&&(0,x.jsx)("button",{className:"btn-outline-primary2",onClick:()=>V(!1),children:"x"})]}),B&&(0,x.jsxs)("div",{className:"d-a",children:[(0,x.jsx)("input",{style:{width:"92%"},type:"range",min:"0",max:"1",step:"0.01",value:y,onChange:e=>{const t=parseFloat(e.target.value);w(t);W.current.getRegions().forEach(e=>{const a=r.find(t=>{var a;return t.value===((null===(a=h[e.id])||void 0===a?void 0:a.name)||"select")})||{color:"rgba(0,123,255,0.5)"};e.setOptions({color:J(a.color,t)})})}})," ","\xa0 \xa0",(0,x.jsx)("span",{children:y})]})]}),(0,x.jsxs)("div",{className:"d-flex align-items-center gap-2 mb-2",children:[(0,x.jsx)("button",{onClick:()=>{const e=Object.values(h).every(e=>e.selected),t={};Object.keys(h).forEach(a=>{t[a]={...h[a],selected:!e}}),m(t)},className:"btn btn-outline-info btn-sm",children:"Select All"}),(0,x.jsx)("button",{onClick:()=>{let e={...h};Object.values(h).forEach(t=>{if(t.selected){const a=W.current.getRegions().find(e=>e.id===t.id);a&&a.remove(),delete e[t.id]}}),Q(e,!0)},className:"btn btn-outline-danger btn-sm",children:"Delete Selected"}),(0,x.jsx)("button",{onClick:()=>{const e={...h};Object.values(h).forEach(t=>{if(t.selected){const a=!t.visible,s=W.current.getRegions().find(e=>e.id===t.id);s&&s.element&&(s.element.style.display=a?"block":"none"),e[t.id]={...t,visible:a}}}),Q(e,!0)},className:"btn btn-outline-secondary btn-sm",children:"Hide/Unhide Selected"})]}),(0,x.jsx)(xs,{regionMap:h,regionOptions:r,handleRegionSelect:(e,t)=>{const a={...h,[e]:{...h[e],selected:t}};m(a)},handleRegionInputChange:(e,t,a)=>{const s=a.match(/^(\d{1,2}):([0-5]?[0-9]):([0-9]{1,2})$/);if(!s)return;let[l,n,i,o]=s;n=parseInt(n,10),i=parseInt(i,10),o=parseInt(o,10);let r=60*n+i+o/100;r=Math.max(0,Math.min(r,S));const d={...h,[e]:{...h[e],[t]:r}},c=W.current.getRegions().find(t=>
1t.id===e);c&&c.setOptions({start:"start"===t?r:h[e].start,end:"end"===t?r:h[e].end}),m(d)},handleRegionBlur:e=>{const t=h[e],{start:a,end:s}=(e=>{let{start:t,end:a}=e;return t<0&&(t=0),a>S&&(a=S),t>=a&&(a=Math.min(t+.1,S),t>=a&&(t=Math.max(0,a-.1))),{start:t,end:a}})(t),l=W.current.getRegions().find(t=>t.id===e);l&&l.setOptions({start:a,end:s});const n={...h,[e]:{...t,start:a,end:s,duration:s-a}};Q(n,!0)},handleRegionNameChange:(e,t)=>{const a=r.find(e=>e.value===t);if(!a)return;const s=J(a.color,y),l={...h,[e]:{...h[e],name:t,color:s}},n=W.current.getRegions().find(t=>t.id===e);n&&n.setOptions({content:a.label,color:s}),Q(l,!0)},toggleRegionVisibility:e=>{const t=h[e],a=!t.visible,s=W.current.getRegions().find(t=>t.id===e);s&&s.element&&(s.element.style.display=a?"block":"none");const l={...h,[e]:{...t,visible:a}};Q(l,!0)},deleteRegionById:e=>{var t;const a=null===(t=W.current)||void 0===t?void 0:t.getRegions().find(t=>t.id===e);a&&a.remove();const s={...h};return delete s[e],s},commitRegions:Q})]})]})}),js=ws;var Ns=a(49157),Is=a(94874);const Ls=e=>{let{hr:t,min:a,sec:s}=e;return(0,x.jsx)(Pa.A,{seconds:s,minutes:a,hours:t,onChange:e=>{let{hours:t,minutes:a,seconds:s}=e;localStorage.setItem("final-time",`${t}:${a}:${s}`)},render:e=>{let{formatted:t}=e;return(0,x.jsx)("span",{children:t})}})},Ss=e=>{if(!e)return 0;const t=e.split(":");if(3===t.length){const[e,a,s]=t.map(Number);return isNaN(e)||isNaN(a)||isNaN(s)?0:60*e+a+s/100}if(2===t.length){const[e,a]=t.map(Number);return isNaN(e)||isNaN(a)?0:60*e+a}return 0},As=()=>{var e,t,a,n,i,o,r;const[d,u]=(0,s.useState)([]),[g,m]=(0,s.useState)(!1),[p,b]=(0,s.useState)(null),[v,f]=(0,s.useState)(""),[y,w]=(0,s.useState)(!1),[j,N]=(0,s.useState)(null),[I,L]=(0,s.useState)(0),[S,A]=(0,s.useState)(null),[C,k]=(0,s.useState)(null),[P,E]=(0,s.useState)(void 0),[T,R]=(0,s.use
1State)(void 0),[_,D]=(0,s.useState)(!1),O=()=>{_||D(!0)};(0,s.useEffect)(()=>(window.addEventListener("click",O),window.addEventListener("keydown",O),()=>{window.removeEventListener("click",O),window.removeEventListener("keydown",O)}),[_]);const M=ce.M.getState().general.projectData.id,B=(0,l.d4)(e=>e.labels.audioUrl),V=(0,l.d4)(e=>e.labels.annotations);console.log("Redux annotations:",V);const H=(0,s.useRef)(null);(0,s.useEffect)(()=>{const e=G.R.getImagesData().map(e=>({id:e.image_id,title:e.image_id,audioUrl:void 0,imageUrl:e.fileData?URL.createObjectURL(e.fileData):"",annotations:{},history:[],future:[],seen:!1}));u(e),e.length>0&&b(e[0].id)},[]),(0,s.useEffect)(()=>{S&&B&&B!==S.oldAudioUrl&&(u(e=>e.map(e=>e.id===S.id?{...e,audioUrl:B}:e)),b(S.id),A(null))},[B,S]);const F=(e,t,a)=>{u(s=>{const l=s.map(a=>a.id===e?{...a,...t}:a),n=l.filter(e=>Object.keys(e.annotations).length>0).length;return L(n),a&&a(l),l})},U=d.every(e=>e.seen);(0,s.useEffect)(()=>{const e=d.filter(e=>Object.keys(e.annotations).length>0).length;L(e)},[d]);const z=(0,c.getCokkie)("jwtToken");var $=new Headers;$.append("Authorization",`Bearer ${z}`);const W=[{value:"select",label:"Select Region",color:"rgba(0,123,255,0.5)"},...G.R.getLabelNames().map(e=>({value:e.id,label:e.name,color:e.color}))],Y=e=>{if("select"===e)return"";const t=W.findIndex(t=>t.value===e);return-1!==t?t.toString():e},q=e=>{const t=Math.floor(e/60),a=Math.floor(e%60),s=Math.floor(100*(e-Math.floor(e)));return`${t}:${a<10?"0"+a:a}:${s<10?"0"+s:s}`},J=e=>e.map(e=>({image_id:e.id,fileData:e.fileData||{},loadStatus:void 0===e.loadStatus||e.loadStatus,flags:[],isVisitedByObjectDetector:!1,isVisitedByPoseDetector:!1,labelLines:[],labelPoints:[],labelPolygons:[],labelPolylines:[],labelRects:[],labelTags:[],labelWindows:Object.values(e.annotations).map(e=>({comments:null,id:e.id,confidence:1,labelId:"select"===e.name?"":e.name,isCreatedByAI:!1,status:"ACCEPTED",show:!0,window:{start:q(e.start),end:q(e.end),tag:Y(e.name)}})),saved:!0,seen:e.seen})),X=(0,s.useCallback)(()=>{H.current&&H.current.commitAnnotations(e=>{k(null);const t=JSON.stringify({annotations:J(e),time_spent:localStorage.getItem("final-time")}),a={method:"POST",headers:$,body:t};fetch(`${window.ENV.API_URL}/tasks/annotate/`+M,a).then(e=>422===e.status?"please select all the labels before saving":e.json()).then(e=>{console.log("Save response:",e),k(e&&e.detail?e.detail:{message:"Task saved successfully",status:"success"})}).catch(e=>{console.error("Error saving task:",e),k({message:"An error occurred while saving the task",status:"error"})})})},[d,M,$,J]),K=(0,s.useCallback)(()=>{H.current&&H.current.commitAnnotations(()=>{let e=!0;for(const s of d){for(const t of Object.values(s.annotations))if("select"===t.name){e=!1;break}if(!e)break}if(!e)return void k({message:"Please make sure all regions are named",status:"error"});k(null);const t=JSON.stringify({annotations:J(d),time_spent:localStorage.getItem("final-time")}),a={method:"POST",headers:$,body:t};fetch(`${window.ENV.API_URL}/tasks/annotate/`+M+"?complete=true",a).then(e=>e.json()).then(e=>{console.log("Complete response:",e),k(e&&e.detail?e.detail:{message:"Task completed successfully",status:"success"})}).catch(e=>{console.error("Error completing task:",e),k({message:"An error occurred while completing the task",status:"error"})})})},[d,M,$,J]);(0,s.useEffect)(()=>{let e;return j&&(e=setInterval(()=>{X()},1e3*j)),()=>{e&&clearInterval(e)}},[j,X]),(0,s.useEffect)(()=>{const e=d.find(e=>e.id===p);e&&B&&!e.audioUrl&&!e.seen&&F(e.id,{audioUrl:B,seen:!0}),e&&B&&!e.seen&&F(e.id,{seen:!0})},[B,p,d]);const Z=d.findIndex(e=>e.id===p),Q=d.find(e=>e.id===p),ee=e=>{const t=d[e];if(t){if(t.audioUrl)return(0,h.bP)(e),void b(t.id);A({id:t.id,oldAudioUrl:B}),(0,h.bP)(e)}},te=[{value:null,label:"No Auto Save"},{value:30,label:"30s"},{value:60,label:"1min"},{value:300,label:"5min"}];return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(Oa.A,{alert:C,time:2e3,close:void 0,topright:"normal"}),(0,x.jsxs)(Ta.A,{isOpen:void 0!==P,size:"xl",scrollable:!0,children:[(0,x.jsx)(Ra.A,{toggle:()=>E(void 0)}),(0,x.jsx)(_a.A,{style:{height:"93vh"},children:P&&null!==T&&void 0!==T&&T.preview?(0,x.jsx)("iframe",{title:"Guidelines",width:"100%",height:"100%",src:P}):P?(0,x.jsxs)("div",{className:"d-flex flex-column align-items-center gap-3 p-5",children:[(0,x.jsx)("p",{children:(null===T||void 0===T?void 0:T.filename)||"Guideline file"}),(0,x.jsx)("a",{href:P,download:(null===T||void 0===T?void 0:T.filename)||"guidelines",children:"Download guideline"})]}):null})]}),(0,x.jsxs)("div",{className:"d-a px-0 editor-border-bottom justify-content-between pt-4 pb-3",style:{marginLeft:"-60px",width:"103%"},children:[(0,x.jsxs)("div",{className:"d-a",children:[(0,x.jsxs)("div",{className:"logo-arrow "+("all"===(null===(e=window.ENV)||void 0===e?void 0:e.CUSTOMER)?"ms-3":""),style:{position:"relative",width:"all"===(null===(t=window.ENV)||void 0===t?void 0:t.CUSTOMER)?"40px":"50px"},children:[(0,x.jsxs)("div",{className:"logo-container",children:["all"===(null===(a=window.ENV)||void 0===a?void 0:a.CUSTOMER)&&(0,x.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"31",height:"28",viewBox:"0 0 31 28",fill:"none",children:(0,x.jsx)("path",{d:"M23 3h-9C7.925 3 3 7.925 3 14v0c0 6.075 4.925 11 11 11h9M21 14h7",stroke:"#1a73e8",strokeWidth:"6",strokeLinecap:"round"})}),"ambarella"===(null===(n=window.ENV)||void 0===n?void 0:n.CUSTOMER)&&(0,x.jsx)("img",{style:{width:"75px",position:"relative",marginLeft:"ambarella"===(null===(i=window.ENV)||void 0===i?void 0:i.CUSTOMER)&&"-5px"},className:"p-2 ps-0 me-3 "+("ambarella"===(null===(o=window.ENV)||void 0===o?void 0:o.CUSTOMER)?"pe-4":"pe-3"),src:"https://ambarella-s3-logo.s3.us-east-2.amazonaws.com/AI_envisioned_cmyk.png",alt:"partner_logo"})]}),(0,x.jsx)("div",{className:"back-arrow-container",onClick:()=>window.location.reload(),children:(0,x.jsx)("div",{className:"back-arrow pe-2",style:{paddingTop:"5px",width:"40px"},children:(0,x.jsx)(wt.g,{icon:jt.CeG})})})]}),(0,x.jsxs)("div",{style:{paddingLeft:"ambarella"===(null===(r=window.ENV)||void 0===r?void 0:r.CUSTOMER)&&"15px"},children:[(0,x.jsx)("h5",{className:"mb-0",style:{whiteSpace:"nowrap",fontSize:"1.25rem"},children:We.o.getProjectName()}),(0,x.jsxs)("div",{children:["Audio Classification\xa0\xa0",(0,x.jsx)("a",{href:"#",className:"text-primary curs
1or-pointer fw-bold",onClick:()=>{try{const e=window.location.search.split("?id=")[1],t=`${window.ENV.API_URL}/tasks/get_guideline?task_set_id=${e}`;(0,Ma.A)(t,"get",null,"blobWithMetadata").then(e=>{const t=null===e||void 0===e?void 0:e.blob,a=(null===e||void 0===e?void 0:e.mediaType)||(null===t||void 0===t?void 0:t.type)||"";t&&!a.includes("json")&&0!==t.size?(R({filename:e.filename||"guidelines",preview:a.includes("pdf")||a.startsWith("image/")}),E(URL.createObjectURL(t))):k({message:"Annotations guidelines not available",status:"error"})}).catch(()=>E(void 0))}catch(e){console.log(e),E(void 0)}},children:"View guide"})]})]}),(0,x.jsx)("div",{className:"ms-5 me-5",style:{height:"60px",background:"gray",paddingLeft:"0.5px"}}),(0,x.jsxs)("div",{style:{fontWeight:"500"},children:[d.filter(e=>e.seen).length,"/",d.length,(0,x.jsx)("br",{}),(0,x.jsx)("span",{style:{color:"gray",fontWeight:"500"},children:"Files Visited"})]}),(0,x.jsxs)("div",{style:{fontWeight:"500"},className:"ps-5",children:[_&&(0,x.jsx)(Ls,{hr:0,min:0,sec:0}),(0,x.jsx)("br",{}),(0,x.jsx)("span",{style:{color:"gray",fontWeight:"500"},children:"Time Invested"})]}),(0,x.jsxs)("div",{style:{fontWeight:"500"},className:"ps-5",children:[Math.round(I/d.length*100),"% \xa0(",I,"/",d.length,")",(0,x.jsx)("br",{}),(0,x.jsx)("span",{style:{color:"gray",fontWeight:"500"},children:"Files Annotated"})]})]}),(0,x.jsxs)("div",{className:"d-flex align-items-center justify-content-end mb-3 ms-0 pt-2",children:[(0,x.jsx)(Dt.Ay,{className:"basic-multi-select me-5 mt-2",id:"auto-save",options:te,defaultValue:te[0],onChange:e=>{N(e.value)},styles:{control:e=>({...e,borderWidth:0,boxShadow:"none",width:"125px",border:"transparent",background:"transparent",fontSize:"12px"}),singleValue:e=>({...e,color:"lightslategray"})}}),(0,x.jsx)(St.A,{color:"primary rounded me-2",onClick:X,id:"auto-save",children:"Save"}),U&&(0,x.jsx)(St.A,{color:"white",onClick:K,className:"ms-2 btn-success",children:"Completed"})]})]}),(0,x.jsxs)("div",{className:"d-flex w-100 p-0 ps-3 justify-content-between",style:{flexWrap:"nowrap",alignItems:"unset",gap:"2%"},children:[(0,x.jsxs)("div",{className:"p-0",style:{width:"75%"},children:[(0,x.jsx)("div",{className:"w-100",style:{padding:"10px",height:"95%"},children:Q&&(0,x.jsx)(js,{ref:H,audioData:Q.audioUrl,initialRegions:V[Q.id]?V[Q.id].labelWindows.reduce((e,t)=>{const a=t.color||(W.find(e=>e.value===t.labelId)?W.find(e=>e.value===t.labelId).color:"rgba(0,123,255,0.5)");return e[t.id]={...t,name:t.labelId,start:Ss(t.window.start),end:Ss(t.window.end),duration:Ss(t.window.end)-Ss(t.window.start),color:a,visible:!0},e},{}):Q.annotations,initialHistory:Q.history,initialFuture:Q.future,regionCreationEnabled:g,toggleRegionCreation:()=>{m(e=>!e)},onFileDataChange:(e,t)=>
1((e,t)=>{F(p,e,e=>{t&&t(e)})})(e,t),setShowFiles:w,showFiles:y,regionOptions:W},Q.id)}),(0,x.jsxs)("div",{className:"d-flex justify-content-between align-items-center pe-4",style:{padding:"10px 0",width:"100%"},children:[(0,x.jsxs)("div",{className:"d-flex align-items-center",style:{gap:"10px"},children:[(0,x.jsx)("button",{onClick:()=>{Z>0&&ee(Z-1)},className:"data-arrow",disabled:0===Z,children:"<"}),(0,x.jsx)("div",{children:(0,x.jsxs)("strong",{style:{fontWeight:"500"},children:[Z+1," ",d.length?`/ ${d.length}`:""]})}),(0,x.jsx)("button",{onClick:()=>{Z<d.length-1&&ee(Z+1)},className:"data-arrow",disabled:Z===d.length-1,children:">"})]}),(0,x.jsx)("div",{children:(0,x.jsxs)("form",{onSubmit:e=>{e.preventDefault();const t=parseInt(v,10)-1;t>=0&&t<d.length&&ee(t),f("")},className:"d-flex align-items-center",children:[(0,x.jsxs)("label",{style:{marginRight:"5px"},children:["Go to file:",(0,x.jsx)("input",{type:"number",value:v,onChange:e=>f(e.target.value),style:{width:"60px",marginLeft:"5px"}})]}),(0,x.jsx)("button",{type:"submit",className:"btn btn-outline-primary btn-sm",children:"Go"})]})})]})]}),!y&&(0,x.jsx)("div",{style:{width:"22%",padding:"10px",overflow:"scroll",height:"calc(100vh - 110px)"}}),y&&(0,x.jsxs)("div",{style:{width:"22%",padding:"10px",overflow:"scroll",height:"calc(100vh - 110px)"},className:"grey-card5",children:[(0,x.jsxs)("h5",{className:"p-5 my-2",children:[d.length," \xa0Files"]}),(0,x.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"2%"},className:"py-2",children:d.map((e,t)=>(0,x.jsxs)("div",{onClick:()=>ee(t),style:{cursor:"pointer",width:"48%"},className:"mb-2",children:[(0,x.jsx)(Ns.A,{style:{padding:"2px"},children:(0,x.jsx)(Is.A,{src:e.imageUrl,alt:e.title,style:{border:e.id===p?"2px solid blue":"1px solid rgb(204 204 204 / 35%)"}})}),(0,x.jsx)("div",{className:"ps-2",children:e.title})]},e.id))})]})]})]})};new URLSearchParams(window.location.search).get("id");const Cs=new URLSearchParams(window.location.search).get("project"),ks=(JSON.parse(localStorage.getItem("screen_permissions")||"[]"),(0,c.getCokkie)("jwtToken"));var Ps=new Headers;Ps.append("Authorization",`Bearer ${ks}`);const Es=(0,l.Ng)(e=>({activePopupType:e.general.activePopupType,imagesData:e.labels.imagesData,activeImageIndex:e.labels.activeImageIndex,projectData:e.general.projectData,activeLabelType:e.labels.activeLabelType}))(e=>{let{activePopupType:t,imagesData:a,activeImageIndex:l,projectData:n,activeLabelType:i}=e;const[o,r]=(0,s.useState)(""),d=(window.location.pathname.split("/")[3],`home/?project_id=${Cs}`),{data:c}=(0,gs.A)(d,"GET"),g=(0,s.useRef)(null),[h,m]=((0,u.Zp)(),(0,s.useState)(!1));(0,s.useEffect)(()=>{const e=()=>m(!!document.fullscreenElement);return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)},[]),(0,s.useEffect)(()=>{r(c)},[c]);const[p,b]=(0,s.useState)([]);const[v,f]=(0,s.useState)(null);let y=["0","0","0"];try{var w,j;y=null!==(w=null===(j=localStorage.getItem("time"))||void 0===j?void 0:j.split(":"))&&void 0!==w?w:["0","0","0"]}catch(k){console.log(k)}a.reduce((e,t)=>e+(t.labelPoints.length>0||0!==t.flags.length?1:0),0),a.reduce((e,t)=>e+(t.labelRects.length>0||0!==t.flags.length?1:0),0),a.reduce((e,t)=>e+(t.labelPolygons.length>0||0!==t.flags.length?1:0),0),a.reduce((e,t)=>e+(t.labelPolylines.length>0||0!==t.flags.length?1:0),0),a.reduce((e,t)=>e+(t.labelLines.length>0||0!==t.flags.length?1:0),0),a.reduce((e,t)=>e+(0!==t.labelTags.length||t.labelPolygons.length>0||t.labelPoints.length>0?1:0),0);const[N,I]=(0,s.useState)({width:window.innerWidth,height:window.innerHeight}),[L,S]=(0,s.useState)({x:5,y:window.innerHeight-850});(0,s.useEffect)(()=>{const e=()=>{I({width:window.innerWidth,height:window.innerHeight}),S(e=>({x:Math.min(e.x,window.innerWidth-120),y:Math.min(e.y,window.innerHeight-200)}))};return window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)},[]);const C={left:0,top:0,right:N.width-100,bottom:N.height-370};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:A()("EditorView",{withPopup:!!t}
1),draggable:!1,children:"audio_classification"===(null===n||void 0===n?void 0:n.task)?(0,x.jsx)(As,{}):(0,x.jsx)(cs,{})}),"audio_classification"!==(null===n||void 0===n?void 0:n.task)&&(0,x.jsx)(us.A,{nodeRef:g,bounds:C,position:L,onStop:(e,t)=>S({x:t.x,y:t.y}),children:(0,x.jsxs)("div",{ref:g,style:{position:"fixed",top:0,left:0,zIndex:1e3},children:[(0,x.jsx)(Nt.Ay,{},"editor-top-navigation-bar"),(0,x.jsx)("div",{className:"rounded p-1 py-2 mt-2 d-j-a",style:{background:"var(--bg-color3)",textAlign:"center"},children:(0,x.jsx)(wt.g,{icon:jt.OTk})})]})}),(0,x.jsx)($a.v,{open:!(null===v||void 0===v||!v.length),close:()=>f(null),path:v,onSubmit:Wa.Kg,images:"",project_id:"",default_form:"",reload:""})]})}),Ts=(0,l.Ng)(e=>({projectType:e.general.projectData.type,windowSize:e.general.windowSize,ObjectDetectorLoaded:e.ai.isObjectDetectorLoaded,PoseDetectionLoaded:e.ai.isPoseDetectorLoaded}))(e=>{let{projectType:t,windowSize:a,ObjectDetectorLoaded:l,PoseDetectionLoaded:n}=e;const[i]=(0,g.ok)(),o=i.get("id");(0,s.useEffect)(()=>()=>(0,h.q0)(),[]);const r=(0,s.useRef)(null),d=r.current!==o;setTimeout(()=>{r.current=o},0);const[c,u]=(0,s.useState)(!1);return(0,x.jsxs)("div",{className:A()("Anotations",{AI:l||n}),draggable:!1,children:[!t||d?(console.log("went main"),(0,x.jsx)(I,{},o||"default")):a.height<q.w.EDITOR_MIN_HEIGHT||a.width<q.w.EDITOR_MIN_WIDTH?(0,x.jsx)(it,{}):(console.log("went EditorView"),(0,x.jsx)(Es,{})),(0,x.jsx)(nt,{}),(0,x.jsx)(ct,{})]})})},48117(e,t,a){a.d(t,{A:()=>i});var s=a(65043),l=a(74497);var n=a(70579);function i(e){let{color:t,close:a}=e;const[i,r]=(0,s.useState)(t);(0,s.useEffect)(()=>{r(t)},[t]);const d=(0,s.useRef)(),[c,u]=(0,s.useState)(!1);return o(d,(0,s.useCallback)(()=>{u(!1),a("#NaNNaNNaN"===i?t:i)},[a,t,i])),(0,n.jsxs)("div",{className:"picker",children:[(0,n.jsx)("div",{className:"swatch",style:{backgroundColor:i},onClick:()=>u(!0)}),c&&(0,n.jsx)("div",{className:"popover",ref:d,children:(0,n.jsx)(l.jI,{color:i,onChange:e=>r(e)})})]})}const o=(e,t)=>{(0,s.useEffect)(()=>{var a=!1,s=!1;const l=l=>{!a&&s&&e.current&&!e.current.contains(l.target)&&t(l)},n=t=>{s=e.current,a=e.current&&e.current.contains(t.target)};return document.addEventListener("mousedown",n),document.addEventListener("touchstart",n),document.addEventListener("click",l),()=>{document.removeEventListener("mousedown",n),document.removeEventListener("touchstart",n),document.removeEventListener("click",l)}},[e,t])}}}]); 2//# sourceMappingURL=7828.dee7a51f.chunk.js.map
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.