UNPKG

lost-sia

Version:

Single Image Annotation Tool

2 lines (1 loc) 2.58 kB
import{jsxs as i,jsx as t}from"react/jsx-runtime";import{Component as e}from"react";import n from"./AnnoDetails.js";import p from"./AnnoStats.js";import a from"./LabelInfo.js";class u extends e{constructor(s){super(s),this.state={position:{top:0,left:0}}}componentDidMount(){this.updateLayout()}componentDidUpdate(s){this.props.layoutUpdate!==s.layoutUpdate&&this.updateLayout(),this.props.commentInputTrigger!==s.commentInputTrigger&&(this.props.uiConfig.annoDetails.visible||this.showAnnoDetails(!0))}updateLayout(){if(this.props.container.current){const s=this.props.container.current.getBoundingClientRect();this.setState({position:{...this.state.position,left:s.right-250,top:s.top}})}}showAnnoDetails(s=!0){this.props.onUiConfigUpdate({...this.props.uiConfig,annoDetails:{...this.props.uiConfig.annoDetails,visible:s}})}onDismiss(s){if(this.props.onUiConfigUpdate)switch(s){case"AnnoDetails":this.showAnnoDetails(!1);break;case"LabelInfo":this.props.onUiConfigUpdate({...this.props.uiConfig,labelInfo:{...this.props.uiConfig.labelInfo,visible:!1}});break;case"AnnoStats":this.props.onUiConfigUpdate({...this.props.uiConfig,annoStats:{...this.props.uiConfig.annoStats,visible:!1}});break}}onCommentUpdate(s){this.props.onCommentUpdate&&this.props.onCommentUpdate(s)}onMarkExample(s){this.props.onMarkExample&&this.props.onMarkExample(s)}onHideLbl(s,o){this.props.onHideLbl&&this.props.onHideLbl(s,o)}render(){return this.props.annos?i("div",{children:[t(a,{selectedAnno:this.props.selectedAnno,possibleLabels:this.props.possibleLabels,defaultPos:this.state.position,onDismiss:()=>this.onDismiss("LabelInfo"),visible:this.props.uiConfig.labelInfo.visible,onGetAnnoExample:s=>this.props.onGetAnnoExample?this.props.onGetAnnoExample(s):{},exampleImg:this.props.exampleImg}),t(n,{anno:this.props.selectedAnno,possibleLabels:this.props.possibleLabels,defaultPos:{left:this.state.position.left-300,top:this.state.position.top},onDismiss:()=>this.onDismiss("AnnoDetails"),onCommentUpdate:s=>this.onCommentUpdate(s),onMarkExample:s=>this.onMarkExample(s),allowedToMarkExample:this.props.allowedToMarkExample,commentInputTrigger:this.props.commentInputTrigger,visible:this.props.uiConfig.annoDetails.visible}),t(p,{selectedAnno:this.props.selectedAnno,annos:this.props.annos,possibleLabels:this.props.possibleLabels,defaultPos:{left:this.state.position.left,top:this.state.position.top+400},onDismiss:()=>this.onDismiss("AnnoStats"),onHideLbl:(s,o)=>this.onHideLbl(s,o),visible:this.props.uiConfig.annoStats.visible,imgLoadCount:this.props.imgLoadCount})]}):null}}export{u as default};