lost-sia
Version:
Single Image Annotation Tool
20 lines (19 loc) • 3.79 kB
JavaScript
import{jsx as i,jsxs as n}from"react/jsx-runtime";import c,{Component as p}from"react";import{getTopPoint as r,getMostLeftPoint as l}from"./utils/transform.js";class v extends p{constructor(t){super(t),this.state={top:400,left:100,width:50,label:void 0,visibility:"hidden",possibleLabels:[]},this.inputGroupRef=c.createRef()}componentWillMount(){this.setPosition()}componentDidUpdate(t){this.props.visible&&this.setPosition()}setPosition(){if(this.props.selectedAnno){let t=r(this.props.selectedAnno.data);t=l(t)[0];const o=this.inputGroupRef.current.getBoundingClientRect();let s=this.props.svg.top+(t.y+this.props.svg.translateY)*this.props.svg.scale-44,e=this.props.svg.left+(t.x+this.props.svg.translateX)*this.props.svg.scale-o.width/2-1;s<0&&(s=this.props.svg.top+(t.y+this.props.svg.translateY+10)*this.props.svg.scale),(this.state.top!==s||this.state.left!==e)&&this.setState({top:s,left:e})}}onClose(){this.props.onClose&&this.props.onClose()}handleClick(t){this.props.onClick&&this.props.onClick(t)}renderDaviIcon(){return i("svg",{version:"1.1",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1190.549 841.891",width:"60px",onClick:t=>this.handleClick(t),children:n("g",{id:"Info",children:[i("path",{id:"Maps",fill:this.props.color,d:`M620.561,817.217c-1.568-3.62-3.771-7.101-4.611-10.885
c-24.452-109.811-74.341-207.569-139.215-298.675c-27.507-38.628-55.814-77.404-77.438-119.371
C324.363,242.85,402.696,58.71,574.209,26.508c145.509-27.32,282.953,75.871,296.543,222.773
c4.659,50.356-7.471,97.96-32.152,141.022c-27.812,48.526-58.75,95.364-90.073,141.758
c-50.917,75.411-91.062,155.558-113.421,244.091c-2.438,9.652-3.936,19.543-6.271,29.227c-0.992,4.104-3.023,7.961-4.584,11.93
C623.021,817.277,621.789,817.247,620.561,817.217z`}),i("path",{id:"Text",fillRule:"evenodd",clipRule:"evenodd",fill:"#FFFFFF",d:`M724.709,250.898
c-0.055-3.974,0.047-7.949,0.033-11.923c-0.007-1.228-1.54-2.767-2.76-2.777c-2.428-0.021-4.862-0.015-7.29-0.015
c-22.466,0.001-44.934,0.005-67.404,0.009c-2.475,0.001-3.658,1.154-3.658,3.588c-0.001,47.365-0.001,94.73-0.001,142.096
c0,13.526,0,27.05,0.001,40.577c0,2.305,1.274,3.584,3.562,3.59c6.623,0.004,9.256-0.07,19.873,0.004
c10.618,0.072,14.146,8.543,14.146,14.189c-0.002,5.645-4.233,13.055-14.299,13.367c-13.135,0.061-26.277-0.02-39.414-0.014
c-14.575,0.004-29.146,0.004-43.722,0.02c-4.191-0.084-13.717-2.789-13.717-13.492s6.233-13.643,13.132-14.117
c4.979,0.037,13.802,0.057,20.701,0.049c1.695,0,3.11-1.537,3.11-3.361c0.003-13.912-0.004-27.823-0.004-41.736
c0-30.252,0-60.503,0.002-90.754c0.002-17.03,0.005-33.649,0.002-50.678c0-1.991-1.38-3.336-3.396-3.336
c-24.79,0-49.577,0-74.362,0c-2.133,0-3.38,1.22-3.383,3.308c-0.006,3.754-0.011,7.509,0.005,11.262
c-0.023,6.339-3.067,13.143-12.456,13.143c-9.389,0-14.337-4.647-14.915-13.23c-0.128-4.305,0.004-8.612,0.004-12.918
c0-8.392,0-16.781,0-25.173c0-0.321,0.228-5.156,4.091-9.277c3.864-4.122,8.014-3.822,8.445-3.822
c25.835,0.003,51.672,0.002,77.507,0.002c46.813,0.001,140.443,0.001,140.443,0.001s6.153-0.088,10.926-0.052
c0.3-0.008,5.713,0.363,9.178,3.994c3.46,3.631,3.046,8.407,3.046,8.635c-0.007,12.862,0.079,25.725-0.003,38.587
c-0.074,8.051-6.938,12.819-13.703,12.847C731.482,263.519,724.956,259.059,724.709,250.898z`})]})})}render(){return this.props.visible?i("div",{ref:this.inputGroupRef,style:{position:"fixed",top:this.state.top,left:this.state.left,cursor:"pointer"},children:this.renderDaviIcon()}):null}}export{v as default};