@labelbee/lb-components 1.21.0-alpha.1 → 1.21.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";var React=require("react"),reactRedux=require("react-redux"),ctx=require("../../store/ctx.js"),Actions=require("../../store/Actions.js"),actionCreators=require("../../store/annotation/actionCreators.js"),TagToolInstanceAdaptor=require("./videoTagTool/TagToolInstanceAdaptor.js"),lbAnnotation=require("@labelbee/lb-annotation"),index=require("./videoClipTool/index.js"),StepUtils=require("../../utils/StepUtils.js"),index$2=require("../../utils/index.js"),index$1=require("./videoTextTool/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,r,t)=>r in e?__defProp(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t,__spreadValues=(e,r)=>{for(var t in r||(r={}))__hasOwnProp.call(r,t)&&__defNormalProp(e,t,r[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(r))__propIsEnum.call(r,t)&&__defNormalProp(e,t,r[t]);return e},__spreadProps=(e,r)=>__defProps(e,__getOwnPropDescs(r));const{EVideoToolName}=lbAnnotation.cTool,VideoAnnotate=e=>{const{stepInfo:r}=e,t=r==null?void 0:r.tool,o=ctx.useDispatch(),n=a=>{o({type:Actions.ANNOTATION_ACTIONS.SET_TOOL,payload:{instance:a}})},i=()=>{o({type:Actions.ANNOTATION_ACTIONS.SET_TOOL,payload:{instance:void 0}})};return t===EVideoToolName.VideoClipTool?React__default.default.createElement(index,__spreadProps(__spreadValues({},e),{pageBackward:()=>o(actionCreators.PageBackward()),pageForward:()=>o(actionCreators.PageForward()),pageJump:a=>o(actionCreators.PageJump(~~a)),onMounted:n,onUnmounted:i})):t===EVideoToolName.VideoTextTool?React__default.default.createElement(index$1.VideoTextTool,__spreadProps(__spreadValues({},e),{pageBackward:()=>o(actionCreators.PageBackward()),pageForward:()=>o(actionCreators.PageForward()),pageJump:a=>o(actionCreators.PageJump(~~a)),onMounted:n,onUnmounted:i})):t===EVideoToolName.VideoTagTool?React__default.default.createElement(TagToolInstanceAdaptor.TagToolInstanceAdaptor,__spreadProps(__spreadValues({},e),{pageBackward:()=>o(actionCreators.PageBackward()),pageForward:()=>o(actionCreators.PageForward()),pageJump:a=>o(actionCreators.PageJump(~~a)),onMounted:n,onUnmounted:i})):null},mapStateToProps=e=>{var r,t,o,n,i;const{annotation:{imgList:a,imgIndex:u,step:d,stepList:c,loading:p}}=e,s=StepUtils.getCurrentStepInfo((r=e.annotation)==null?void 0:r.step,(t=e.annotation)==null?void 0:t.stepList),l=(o=a[u])!=null?o:{};return{imgIndex:u,imgList:a,stepInfo:s,config:index$2.jsonParser(s==null?void 0:s.config),step:d,stepList:c,path:(i=(n=l==null?void 0:l.path)!=null?n:l==null?void 0:l.url)!=null?i:"",loading:p}};var VideoAnnotate$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(VideoAnnotate);module.exports=VideoAnnotate$1;
1
+ "use strict";var React=require("react"),reactRedux=require("react-redux"),ctx=require("../../store/ctx.js"),Actions=require("../../store/Actions.js"),actionCreators=require("../../store/annotation/actionCreators.js"),TagToolInstanceAdaptor=require("./videoTagTool/TagToolInstanceAdaptor.js"),lbAnnotation=require("@labelbee/lb-annotation"),index=require("./videoClipTool/index.js"),StepUtils=require("../../utils/StepUtils.js"),index$2=require("../../utils/index.js"),index$1=require("./videoTextTool/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,r)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues=(e,t)=>{for(var r in t||(t={}))__hasOwnProp.call(t,r)&&__defNormalProp(e,r,t[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(t))__propIsEnum.call(t,r)&&__defNormalProp(e,r,t[r]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));const{EVideoToolName}=lbAnnotation.cTool,VideoAnnotate=e=>{const{stepInfo:t,skipBeforePageTurning:r}=e,a=t==null?void 0:t.tool,o=ctx.useDispatch(),i=n=>{o({type:Actions.ANNOTATION_ACTIONS.SET_TOOL,payload:{instance:n}})},l=()=>{o({type:Actions.ANNOTATION_ACTIONS.SET_TOOL,payload:{instance:void 0}})},s=()=>{if(r){r(()=>o(actionCreators.PageBackward()));return}o(actionCreators.PageBackward())},u=()=>{if(r){r(()=>o(actionCreators.PageForward()));return}o(actionCreators.PageForward())};return a===EVideoToolName.VideoClipTool?React__default.default.createElement(index,__spreadProps(__spreadValues({},e),{pageBackward:s,pageForward:u,pageJump:n=>o(actionCreators.PageJump(~~n-1)),onMounted:i,onUnmounted:l})):a===EVideoToolName.VideoTextTool?React__default.default.createElement(index$1.VideoTextTool,__spreadProps(__spreadValues({},e),{pageBackward:s,pageForward:u,pageJump:n=>o(actionCreators.PageJump(~~n-1)),onMounted:i,onUnmounted:l})):a===EVideoToolName.VideoTagTool?React__default.default.createElement(TagToolInstanceAdaptor.TagToolInstanceAdaptor,__spreadProps(__spreadValues({},e),{pageBackward:s,pageForward:u,pageJump:n=>o(actionCreators.PageJump(~~n-1)),onMounted:i,onUnmounted:l})):null},mapStateToProps=e=>{var t,r,a,o,i;const{annotation:{imgList:l,imgIndex:s,step:u,stepList:n,loading:p,skipBeforePageTurning:f}}=e,d=StepUtils.getCurrentStepInfo((t=e.annotation)==null?void 0:t.step,(r=e.annotation)==null?void 0:r.stepList),c=(a=l[s])!=null?a:{};return{imgIndex:s,imgList:l,stepInfo:d,config:index$2.jsonParser(d==null?void 0:d.config),step:u,stepList:n,path:(i=(o=c==null?void 0:c.path)!=null?o:c==null?void 0:c.url)!=null?i:"",loading:p,skipBeforePageTurning:f}};var VideoAnnotate$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(VideoAnnotate);module.exports=VideoAnnotate$1;
@@ -1 +1 @@
1
- "use strict";var React=require("react"),index_module=require("./index.module.scss.js"),icon_videoCut=require("../../../../../assets/annotation/video/icon_videoCut.svg.js"),icon_timePoint=require("../../../../../assets/annotation/video/icon_timePoint.svg.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const VideoClipToolHotkey=({toggleClipStatus:e,addTime:t})=>React__default.default.createElement("div",{className:index_module.clipToolbar},React__default.default.createElement("span",{className:index_module.buttonWrapper},React__default.default.createElement("i",{className:index_module.cutButton,onClick:()=>{e==null||e()},style:{backgroundImage:icon_videoCut}}),"\u622A\u53D6"),React__default.default.createElement("span",{className:index_module.buttonWrapper},React__default.default.createElement("i",{className:index_module.localButton,onClick:t,style:{backgroundImage:icon_timePoint}}),"\u6807\u65F6\u95F4\u70B9"));module.exports=VideoClipToolHotkey;
1
+ "use strict";var React=require("react"),index_module=require("./index.module.scss.js"),icon_videoCut=require("../../../../../assets/annotation/video/icon_videoCut.svg.js"),icon_timePoint=require("../../../../../assets/annotation/video/icon_timePoint.svg.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const VideoClipToolHotkey=({toggleClipStatus:e,addTime:t})=>React__default.default.createElement("div",{className:index_module.clipToolbar},React__default.default.createElement("span",{className:index_module.buttonWrapper},React__default.default.createElement("img",{src:icon_videoCut,className:index_module.cutButton,onClick:()=>{e==null||e()}}),"\u622A\u53D6"),React__default.default.createElement("span",{className:index_module.buttonWrapper},React__default.default.createElement("img",{src:icon_timePoint,className:index_module.localButton,onClick:t}),"\u6807\u65F6\u95F4\u70B9"));module.exports=VideoClipToolHotkey;
@@ -1 +1 @@
1
- "use strict";var lbAnnotation=require("@labelbee/lb-annotation"),index=require("../../../utils/index.js"),audio=require("../../../utils/audio.js"),antd=require("antd"),_=require("lodash"),React=require("react"),index_module=require("./index.module.scss.js"),VideoClipToolContext=require("./VideoClipToolContext.js"),constant=require("./constant.js"),index$1=require("../../videoPlayer/index.js"),index$2=require("./components/videoTimeSlicesOverVideo/index.js"),icon_videoCutting=require("../../../assets/annotation/video/icon_videoCutting.svg.js"),utils=require("../../videoPlayer/utils.js");function _interopDefaultLegacy(d){return d&&typeof d=="object"&&"default"in d?d:{default:d}}var ___default=_interopDefaultLegacy(_),React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(d,r,t)=>r in d?__defProp(d,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):d[r]=t,__spreadValues=(d,r)=>{for(var t in r||(r={}))__hasOwnProp.call(r,t)&&__defNormalProp(d,t,r[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(r))__propIsEnum.call(r,t)&&__defNormalProp(d,t,r[t]);return d},__spreadProps=(d,r)=>__defProps(d,__getOwnPropDescs(r));class VideoClipTool extends React__default.default.Component{constructor(r){super(r);this.fns=new Map,this.throttledUpdateTime=___default.default.throttle(t=>{this.videoPlayer.currentTime=t},100,{trailing:!0}),this.stepInfo=()=>this.props.stepInfo,this.emitEvent=t=>{const e=this.fns.get(t);e&&e.forEach(i=>{i&&i()})},this.setValid=t=>{this.setState({valid:t}),t===!1&&(this.clearResult(),this.updateSidebar())},this.updateSidebar=()=>{this.emitEvent("changeClipSidebar")},this.exportData=()=>{var t,e;const i=(e=(t=this.videoRef)==null?void 0:t.duration)!=null?e:0;return[this.state.result.filter(s=>s.end!==null),{valid:this.state.valid,duration:i}]},this.updateSelectedSliceTimeStartByPer=t=>{var e,i;if(this.state.clipStatus===constant.EClipStatus.Clipping){antd.message.info("\u622A\u53D6\u4E2D\u4E0D\u652F\u6301\u8C03\u6574\u5F00\u59CB\u65F6\u95F4");return}if(this.selectedSliceIndex>-1){const s=(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0,{end:a,start:u,type:l}=this.state.result[this.selectedSliceIndex],n=lbAnnotation.MathUtils.withinRange(audio.precisionAdd(u,t),[0,audio.precisionMinus(l===constant.ETimeSliceType.Time?s:a,constant.PER_SLICE_CHANGE)]);this.updateSelectedSliceTimeProperty(n,"start")}},this.updateSelectedSliceTimeEndByPer=t=>{var e,i;if(this.state.clipStatus===constant.EClipStatus.Clipping){antd.message.info("\u622A\u53D6\u4E2D\u4E0D\u652F\u6301\u8C03\u6574\u7ED3\u675F\u65F6\u95F4");return}if(this.selectedSliceIndex>-1){const s=this.state.result[this.selectedSliceIndex],a=(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0;if(s.type===constant.ETimeSliceType.Time){antd.message.info("\u65F6\u95F4\u70B9\u4EC5\u652F\u6301\u8C03\u6574\u5F00\u59CB\u65F6\u95F4");return}const{end:u,start:l}=s,n=lbAnnotation.MathUtils.withinRange(audio.precisionAdd(u,t),[audio.precisionAdd(l,constant.PER_SLICE_CHANGE),a]);this.updateSelectedSliceTimeProperty(n,"end")}},this.updateSelectedSliceTimeProperty=(t,e)=>{if(this.selectedSliceIndex>-1){const{result:i}=this.state;i[this.selectedSliceIndex][e]=t,this.setState({result:___default.default.cloneDeep(i)}),this.updateSidebar()}},this.keyDownEvents=t=>{if(!lbAnnotation.CommonToolUtils.hotkeyFilter(t))return;const e=t.target;switch(e&&(e==null?void 0:e.tag)==="INPUT"&&(e==null?void 0:e.type)==="radio"&&t.preventDefault(),t.key.toLocaleLowerCase()){case"x":this.toggleClipStatus();break;case"e":this.addTime();break;case"escape":this.cancelClipped();break;case"-":this.updateSelectedSliceTimeStartByPer(-constant.PER_SLICE_CHANGE);break;case"=":this.updateSelectedSliceTimeStartByPer(constant.PER_SLICE_CHANGE);break;case"[":this.updateSelectedSliceTimeEndByPer(-constant.PER_SLICE_CHANGE);break;case"]":this.updateSelectedSliceTimeEndByPer(constant.PER_SLICE_CHANGE);break}},this.videoLoaded=t=>{var e;const i=this.resultJSON,s=i&&!["","{}"].includes(i),a=t?parseFloat(t.toFixed(2)):0,u={loading:!1};((e=index.jsonParser(i))==null?void 0:e.duration)||Object.assign(u,{result:JSON.stringify(__spreadProps(__spreadValues({},index.jsonParser(i)),{duration:a}))}),s||Object.assign(u,{result:JSON.stringify({width:0,height:0,rotate:0,valid:!0,duration:a})}),this.setState({loading:!1})},this.setVideoError=(t,e,i)=>{if(t){const{clipStatus:s}=this.state;s===constant.EClipStatus.Clipping&&this.toggleClipStatus(i)}this.setState({videoError:t,loading:!1})},this.clearResult=()=>{this.setState({result:[],selectedID:"",textValue:""}),this.updateSidebar()},this.cancelClipped=()=>{const{result:t,selectedID:e,clipStatus:i}=this.state;if(i!==constant.EClipStatus.Clipping)return;const s=t.findIndex(a=>a.id===e);s>-1&&(t.splice(s,1),this.setState({result:t,selectedID:"",clipStatus:constant.EClipStatus.Stop}),this.updateSidebar())},this.toggleClipStatus=t=>{var e,i,s;if(this.disabled)return;const{clipStatus:a,selectedAttribute:u}=this.state,l=a!==constant.EClipStatus.Clipping;let n=l?constant.EClipStatus.Clipping:constant.EClipStatus.Stop,{result:o,selectedID:c,textValue:h}=this.state;const p=___default.default.cloneDeep(o),S=t||((e=this.videoPlayer)==null?void 0:e.currentTime),v=(i=this.videoPlayer)==null?void 0:i.duration;if(v===void 0||S===void 0)return;const C=utils.decimalReserved(S,2);if(l){const f=lbAnnotation.uuid();c=f,p.push({start:C,end:null,attribute:u,textAttribute:this.defaultTextAttribute,duration:v,id:f,type:constant.ETimeSliceType.Period}),h=this.defaultTextAttribute}else{const f=p.findIndex(m=>m.id===c),g=p[f];g&&(S-g.start<constant.SLICE_MIN_TIME?(p.splice(f,1),antd.message.info(`\u622A\u53D6\u7247\u6BB5\u4E0D\u80FD\u77ED\u4E8E${constant.SLICE_MIN_TIME}s`),n=constant.EClipStatus.Stop,c="",h=""):(p[f].end=utils.decimalReserved(S,2),(s=this.videoPlayer)==null||s.pause(),antd.message.success(`\u5DF2\u622A\u53D6\u7247\u6BB5${o.length}`)))}this.setState({clipStatus:n,result:p,selectedID:c,textValue:h}),this.updateSidebar()},this.addTime=()=>{var t,e,i,s;if(this.disabled)return;const{result:a,selectedAttribute:u,selectedID:l}=this.state,n=lbAnnotation.uuid(),o=___default.default.cloneDeep(a),c=((t=this.videoPlayer)==null?void 0:t.currentTime)||0;o.push({start:c,end:c,attribute:u,textAttribute:this.defaultTextAttribute,id:n,type:constant.ETimeSliceType.Time,duration:(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0});const h={result:o,selectedID:n,textValue:this.defaultTextAttribute},p=o.find(S=>S.id===l);this.isClipping&&p?(delete h.selectedID,delete h.textValue,antd.message.success(`\u5DF2\u622A\u53D6\u65F6\u95F4\u70B9${o.length-1}`)):(s=this.videoPlayer)==null||s.pause(),this.setState(h),this.updateSidebar()},this.contextToCancel=t=>{this.state.clipStatus===constant.EClipStatus.Stop&&(t.preventDefault(),this.setState({selectedID:""}),this.updateSidebar())},this.onTrackResize=(t,e,i)=>{var s,a;const{result:u}=this.state,l=u.find(n=>n.id===t);if(l){const n=l.duration,o=e==="left",c=o?"start":"end",h=o?-n*i:n*i,p=o?[0,Math.max(((s=l.end)!=null?s:0)-constant.SLICE_MIN_TIME,0)]:[l.start+constant.SLICE_MIN_TIME,n],S=lbAnnotation.MathUtils.withinRange(h+((a=l==null?void 0:l[c])!=null?a:0),p);l[c]=S,this.throttledUpdateTime(S)}this.setState({result:[...u]}),this.updateSidebar()},this.renderMediaContent=()=>{const{pageForward:t,pageJump:e,pageBackward:i}=this.props,{result:s,currentTime:a,videoError:u,valid:l}=this.state;return React__default.default.createElement("div",{className:index_module.clipContainer},React__default.default.createElement(index$1.VideoPlayer,{imgIndex:this.props.imgIndex,imgList:this.props.imgList,pageBackward:i,pageForward:t,pageJump:e,valid:l,setVideoRef:n=>{this.videoPlayer=n},showVideoTrack:!u,onTrackResize:this.onTrackResize,drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer,dataLoaded:this.videoLoaded}),React__default.default.createElement(index$2,{result:s,currentTime:a,attributeList:this.props.config.attributeList,extraStyle:{top:this.props.drawLayerSlot?40:0}}),this.isClipping&&React__default.default.createElement("i",{className:index_module.clipping,style:{backgroundImage:icon_videoCutting}}))},this.onSelectedTimeSlice=t=>{var e;this.isClipping||(this.setState({selectedID:t.id,selectedAttribute:t.attribute,textValue:t.textAttribute}),this.updateSidebar(),(e=this.videoPlayer)==null||e.pause(),this.videoPlayer.currentTime=t.start)},this.removeTimeSlice=t=>{const{result:e}=this.state,i=this.state.selectedID===t.id?"":this.state.selectedID,s=e.findIndex(a=>a.id===t.id);s>-1&&(e.splice(s,1),this.setState({result:[...e],selectedID:i}),this.updateSidebar())},this.setResult=(t=!0,e=this.props)=>{try{const{imgIndex:i,imgList:s}=e;if(!s[i])return;const u=index.jsonParser(s[i].result)[`step_${this.stepInfo().step}`],l=(u==null?void 0:u.result)||[],n=audio.isImageValue(s[i].result||"[]");this.setState({result:l,loading:t,selectedID:"",textValue:"",selectedAttribute:"",clipStatus:constant.EClipStatus.Stop,valid:n},()=>{this.updateSidebar(),n||antd.message.info("\u65E0\u6548\u89C6\u9891\uFF0C\u8BF7\u8DF3\u8FC7")})}catch(i){console.error("\u6570\u636E\u89E3\u6790\u5931\u8D25"),this.setState({result:[],loading:!1,selectedID:"",textValue:"",selectedAttribute:"",valid:!0},()=>{this.updateSidebar()})}},this.setDefaultAttribute=t=>{const{result:e,selectedID:i}=this.state,s=e.find(a=>a.id===i);s&&i&&(s.attribute=t),this.setState({selectedAttribute:t,result:[...e]}),this.updateSidebar()},this.setTextAttribute=t=>{const{result:e,selectedID:i}=this.state;if(this.setState({textValue:t}),i){const s=e.find(a=>a.id===i);s&&(s.textAttribute=t,this.setState({result:[...e]}),this.updateSidebar())}},this.state={result:[],selectedAttribute:"",textValue:"",clipStatus:constant.EClipStatus.Stop,selectedID:"",loading:!1,videoError:!1,remainingTime:0,currentTime:0,configLoading:!1,valid:!0}}get videoUrl(){var r;const{imgIndex:t,imgList:e}=this.props;return((r=e[t])==null?void 0:r.url)||""}get isClipping(){return this.state.clipStatus===constant.EClipStatus.Clipping}get resultJSON(){const{imgIndex:r,imgList:t}=this.props;return t.length===0||!t[r]?"[]":t[r].result}get disabled(){return!this.state.valid||this.state.videoError}get loading(){return this.state.loading||this.state.configLoading}get defaultTextAttribute(){return lbAnnotation.AttributeUtils.getTextAttribute(this.state.result,this.props.config.textCheckType)}get defaultAttribute(){return this.state.selectedAttribute}get selectedSliceIndex(){return this.state.result.findIndex(r=>r.id===this.state.selectedID)}get exportContext(){return{selectedID:this.state.selectedID,result:this.state.result,clipStatus:this.state.clipStatus,videoPlayer:this.videoPlayer,attributeList:this.props.config.attributeList,onSelectedTimeSlice:this.onSelectedTimeSlice,removeTimeSlice:this.removeTimeSlice,updateSelectedSliceTimeProperty:this.updateSelectedSliceTimeProperty}}get valid(){return this.state.valid}componentDidMount(){this.setState({loading:!1}),this.setResult(!1),this.props.onMounted(this),window.addEventListener("keydown",this.keyDownEvents)}componentWillUnmount(){this.props.onUnmounted(),window.removeEventListener("keydown",this.keyDownEvents)}shouldComponentUpdate(r,t){const e=r.imgIndex-this.props.imgIndex,i=r.step-this.props.step;return(e!==0||i!==0)&&(this.setResult(!0,r),i!==0&&this.setState({loading:!1})),!0}singleOn(r,t){this.fns.set(r,[t])}on(r,t){this.singleOn(r,t)}unbindAll(r){this.fns.delete(r)}render(){const{selectedID:r,result:t,clipStatus:e,selectedAttribute:i}=this.state;return React__default.default.createElement(VideoClipToolContext.VideoClipToolContextProvider,{value:{videoPlayer:this.videoPlayer,result:t,selectedID:r,attributeList:this.props.config.attributeList,clipStatus:e,selectedAttribute:i,contextToCancel:this.contextToCancel}},this.renderMediaContent())}}module.exports=VideoClipTool;
1
+ "use strict";var lbAnnotation=require("@labelbee/lb-annotation"),index=require("../../../utils/index.js"),audio=require("../../../utils/audio.js"),antd=require("antd"),_=require("lodash"),React=require("react"),index_module=require("./index.module.scss.js"),VideoClipToolContext=require("./VideoClipToolContext.js"),constant=require("./constant.js"),index$1=require("../../videoPlayer/index.js"),index$2=require("./components/videoTimeSlicesOverVideo/index.js"),icon_videoCutting=require("../../../assets/annotation/video/icon_videoCutting.svg.js"),utils=require("../../videoPlayer/utils.js");function _interopDefaultLegacy(d){return d&&typeof d=="object"&&"default"in d?d:{default:d}}var ___default=_interopDefaultLegacy(_),React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(d,r,t)=>r in d?__defProp(d,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):d[r]=t,__spreadValues=(d,r)=>{for(var t in r||(r={}))__hasOwnProp.call(r,t)&&__defNormalProp(d,t,r[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(r))__propIsEnum.call(r,t)&&__defNormalProp(d,t,r[t]);return d},__spreadProps=(d,r)=>__defProps(d,__getOwnPropDescs(r));class VideoClipTool extends React__default.default.Component{constructor(r){super(r);this.fns=new Map,this.throttledUpdateTime=___default.default.throttle(t=>{this.videoPlayer.currentTime=t},100,{trailing:!0}),this.stepInfo=()=>this.props.stepInfo,this.emitEvent=t=>{const e=this.fns.get(t);e&&e.forEach(i=>{i&&i()})},this.setValid=t=>{this.setState({valid:t}),t===!1&&(this.clearResult(),this.updateSidebar())},this.updateSidebar=()=>{this.emitEvent("changeClipSidebar")},this.exportData=()=>{var t,e;const i=(e=(t=this.videoRef)==null?void 0:t.duration)!=null?e:0;return[this.state.result.filter(s=>s.end!==null),{valid:this.state.valid,duration:i}]},this.updateSelectedSliceTimeStartByPer=t=>{var e,i;if(this.state.clipStatus===constant.EClipStatus.Clipping){antd.message.info("\u622A\u53D6\u4E2D\u4E0D\u652F\u6301\u8C03\u6574\u5F00\u59CB\u65F6\u95F4");return}if(this.selectedSliceIndex>-1){const s=(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0,{end:a,start:u,type:l}=this.state.result[this.selectedSliceIndex],n=lbAnnotation.MathUtils.withinRange(audio.precisionAdd(u,t),[0,audio.precisionMinus(l===constant.ETimeSliceType.Time?s:a,constant.PER_SLICE_CHANGE)]);this.updateSelectedSliceTimeProperty(n,"start")}},this.updateSelectedSliceTimeEndByPer=t=>{var e,i;if(this.state.clipStatus===constant.EClipStatus.Clipping){antd.message.info("\u622A\u53D6\u4E2D\u4E0D\u652F\u6301\u8C03\u6574\u7ED3\u675F\u65F6\u95F4");return}if(this.selectedSliceIndex>-1){const s=this.state.result[this.selectedSliceIndex],a=(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0;if(s.type===constant.ETimeSliceType.Time){antd.message.info("\u65F6\u95F4\u70B9\u4EC5\u652F\u6301\u8C03\u6574\u5F00\u59CB\u65F6\u95F4");return}const{end:u,start:l}=s,n=lbAnnotation.MathUtils.withinRange(audio.precisionAdd(u,t),[audio.precisionAdd(l,constant.PER_SLICE_CHANGE),a]);this.updateSelectedSliceTimeProperty(n,"end")}},this.updateSelectedSliceTimeProperty=(t,e)=>{if(this.selectedSliceIndex>-1){const{result:i}=this.state;i[this.selectedSliceIndex][e]=t,this.setState({result:___default.default.cloneDeep(i)}),this.updateSidebar()}},this.keyDownEvents=t=>{if(!lbAnnotation.CommonToolUtils.hotkeyFilter(t))return;const e=t.target;switch(e&&(e==null?void 0:e.tag)==="INPUT"&&(e==null?void 0:e.type)==="radio"&&t.preventDefault(),t.key.toLocaleLowerCase()){case"x":this.toggleClipStatus();break;case"e":this.addTime();break;case"escape":this.cancelClipped();break;case"-":this.updateSelectedSliceTimeStartByPer(-constant.PER_SLICE_CHANGE);break;case"=":this.updateSelectedSliceTimeStartByPer(constant.PER_SLICE_CHANGE);break;case"[":this.updateSelectedSliceTimeEndByPer(-constant.PER_SLICE_CHANGE);break;case"]":this.updateSelectedSliceTimeEndByPer(constant.PER_SLICE_CHANGE);break}},this.videoLoaded=t=>{var e;const i=this.resultJSON,s=i&&!["","{}"].includes(i),a=t?parseFloat(t.toFixed(2)):0,u={loading:!1};((e=index.jsonParser(i))==null?void 0:e.duration)||Object.assign(u,{result:JSON.stringify(__spreadProps(__spreadValues({},index.jsonParser(i)),{duration:a}))}),s||Object.assign(u,{result:JSON.stringify({width:0,height:0,rotate:0,valid:!0,duration:a})}),this.setState({loading:!1})},this.setVideoError=(t,e,i)=>{if(t){const{clipStatus:s}=this.state;s===constant.EClipStatus.Clipping&&this.toggleClipStatus(i)}this.setState({videoError:t,loading:!1})},this.clearResult=()=>{this.setState({result:[],selectedID:"",textValue:""}),this.updateSidebar()},this.cancelClipped=()=>{const{result:t,selectedID:e,clipStatus:i}=this.state;if(i!==constant.EClipStatus.Clipping)return;const s=t.findIndex(a=>a.id===e);s>-1&&(t.splice(s,1),this.setState({result:t,selectedID:"",clipStatus:constant.EClipStatus.Stop}),this.updateSidebar())},this.toggleClipStatus=t=>{var e,i,s;if(this.disabled)return;const{clipStatus:a,selectedAttribute:u}=this.state,l=a!==constant.EClipStatus.Clipping;let n=l?constant.EClipStatus.Clipping:constant.EClipStatus.Stop,{result:o,selectedID:c,textValue:h}=this.state;const p=___default.default.cloneDeep(o),S=t||((e=this.videoPlayer)==null?void 0:e.currentTime),g=(i=this.videoPlayer)==null?void 0:i.duration;if(g===void 0||S===void 0)return;const C=utils.decimalReserved(S,2);if(l){const f=lbAnnotation.uuid();c=f,p.push({start:C,end:null,attribute:u,textAttribute:this.defaultTextAttribute,duration:g,id:f,type:constant.ETimeSliceType.Period}),h=this.defaultTextAttribute}else{const f=p.findIndex(m=>m.id===c),v=p[f];v&&(S-v.start<constant.SLICE_MIN_TIME?(p.splice(f,1),antd.message.info(`\u622A\u53D6\u7247\u6BB5\u4E0D\u80FD\u77ED\u4E8E${constant.SLICE_MIN_TIME}s`),n=constant.EClipStatus.Stop,c="",h=""):(p[f].end=utils.decimalReserved(S,2),(s=this.videoPlayer)==null||s.pause(),antd.message.success(`\u5DF2\u622A\u53D6\u7247\u6BB5${o.length}`)))}this.setState({clipStatus:n,result:p,selectedID:c,textValue:h}),this.updateSidebar()},this.addTime=()=>{var t,e,i,s;if(this.disabled)return;const{result:a,selectedAttribute:u,selectedID:l}=this.state,n=lbAnnotation.uuid(),o=___default.default.cloneDeep(a),c=((t=this.videoPlayer)==null?void 0:t.currentTime)||0;o.push({start:c,end:c,attribute:u,textAttribute:this.defaultTextAttribute,id:n,type:constant.ETimeSliceType.Time,duration:(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0});const h={result:o,selectedID:n,textValue:this.defaultTextAttribute},p=o.find(S=>S.id===l);this.isClipping&&p?(delete h.selectedID,delete h.textValue,antd.message.success(`\u5DF2\u622A\u53D6\u65F6\u95F4\u70B9${o.length-1}`)):(s=this.videoPlayer)==null||s.pause(),this.setState(h),this.updateSidebar()},this.contextToCancel=t=>{this.state.clipStatus===constant.EClipStatus.Stop&&(t.preventDefault(),this.setState({selectedID:""}),this.updateSidebar())},this.onTrackResize=(t,e,i)=>{var s,a;const{result:u}=this.state,l=u.find(n=>n.id===t);if(l){const n=l.duration,o=e==="left",c=o?"start":"end",h=o?-n*i:n*i,p=o?[0,Math.max(((s=l.end)!=null?s:0)-constant.SLICE_MIN_TIME,0)]:[l.start+constant.SLICE_MIN_TIME,n],S=lbAnnotation.MathUtils.withinRange(h+((a=l==null?void 0:l[c])!=null?a:0),p);l[c]=S,this.throttledUpdateTime(S)}this.setState({result:[...u]}),this.updateSidebar()},this.renderMediaContent=()=>{const{pageForward:t,pageJump:e,pageBackward:i}=this.props,{result:s,currentTime:a,videoError:u,valid:l}=this.state;return React__default.default.createElement("div",{className:index_module.clipContainer},React__default.default.createElement(index$1.VideoPlayer,{imgIndex:this.props.imgIndex,imgList:this.props.imgList,pageBackward:i,pageForward:t,pageJump:e,valid:l,setVideoRef:n=>{this.videoPlayer=n},showVideoTrack:!u,onTrackResize:this.onTrackResize,drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer,dataLoaded:this.videoLoaded,toggleClipStatus:this.toggleClipStatus,addTime:this.addTime}),React__default.default.createElement(index$2,{result:s,currentTime:a,attributeList:this.props.config.attributeList,extraStyle:{top:this.props.drawLayerSlot?40:0}}),this.isClipping&&React__default.default.createElement("i",{className:index_module.clipping,style:{backgroundImage:icon_videoCutting}}))},this.onSelectedTimeSlice=t=>{var e;this.isClipping||(this.setState({selectedID:t.id,selectedAttribute:t.attribute,textValue:t.textAttribute}),this.updateSidebar(),(e=this.videoPlayer)==null||e.pause(),this.videoPlayer.currentTime=t.start)},this.removeTimeSlice=t=>{const{result:e}=this.state,i=this.state.selectedID===t.id?"":this.state.selectedID,s=e.findIndex(a=>a.id===t.id);s>-1&&(e.splice(s,1),this.setState({result:[...e],selectedID:i}),this.updateSidebar())},this.setResult=(t=!0,e=this.props)=>{try{const{imgIndex:i,imgList:s}=e;if(!s[i])return;const u=index.jsonParser(s[i].result)[`step_${this.stepInfo().step}`],l=(u==null?void 0:u.result)||[],n=audio.isImageValue(s[i].result||"[]");this.setState({result:l,loading:t,selectedID:"",textValue:"",selectedAttribute:"",clipStatus:constant.EClipStatus.Stop,valid:n},()=>{this.updateSidebar(),n||antd.message.info("\u65E0\u6548\u89C6\u9891\uFF0C\u8BF7\u8DF3\u8FC7")})}catch(i){console.error("\u6570\u636E\u89E3\u6790\u5931\u8D25"),this.setState({result:[],loading:!1,selectedID:"",textValue:"",selectedAttribute:"",valid:!0},()=>{this.updateSidebar()})}},this.setDefaultAttribute=t=>{const{result:e,selectedID:i}=this.state,s=e.find(a=>a.id===i);s&&i&&(s.attribute=t),this.setState({selectedAttribute:t,result:[...e]}),this.updateSidebar()},this.setTextAttribute=t=>{const{result:e,selectedID:i}=this.state;if(this.setState({textValue:t}),i){const s=e.find(a=>a.id===i);s&&(s.textAttribute=t,this.setState({result:[...e]}),this.updateSidebar())}},this.state={result:[],selectedAttribute:"",textValue:"",clipStatus:constant.EClipStatus.Stop,selectedID:"",loading:!1,videoError:!1,remainingTime:0,currentTime:0,configLoading:!1,valid:!0}}get videoUrl(){var r;const{imgIndex:t,imgList:e}=this.props;return((r=e[t])==null?void 0:r.url)||""}get isClipping(){return this.state.clipStatus===constant.EClipStatus.Clipping}get resultJSON(){const{imgIndex:r,imgList:t}=this.props;return t.length===0||!t[r]?"[]":t[r].result}get disabled(){return!this.state.valid||this.state.videoError}get loading(){return this.state.loading||this.state.configLoading}get defaultTextAttribute(){return lbAnnotation.AttributeUtils.getTextAttribute(this.state.result,this.props.config.textCheckType)}get defaultAttribute(){return this.state.selectedAttribute}get selectedSliceIndex(){return this.state.result.findIndex(r=>r.id===this.state.selectedID)}get exportContext(){return{selectedID:this.state.selectedID,result:this.state.result,clipStatus:this.state.clipStatus,videoPlayer:this.videoPlayer,attributeList:this.props.config.attributeList,onSelectedTimeSlice:this.onSelectedTimeSlice,removeTimeSlice:this.removeTimeSlice,updateSelectedSliceTimeProperty:this.updateSelectedSliceTimeProperty}}get valid(){return this.state.valid}componentDidMount(){this.setState({loading:!1}),this.setResult(!1),this.props.onMounted(this),window.addEventListener("keydown",this.keyDownEvents)}componentWillUnmount(){this.props.onUnmounted(),window.removeEventListener("keydown",this.keyDownEvents)}shouldComponentUpdate(r,t){const e=r.imgIndex-this.props.imgIndex,i=r.step-this.props.step;return(e!==0||i!==0)&&(this.setResult(!0,r),i!==0&&this.setState({loading:!1})),!0}singleOn(r,t){this.fns.set(r,[t])}on(r,t){this.singleOn(r,t)}unbindAll(r){this.fns.delete(r)}render(){const{selectedID:r,result:t,clipStatus:e,selectedAttribute:i}=this.state;return React__default.default.createElement(VideoClipToolContext.VideoClipToolContextProvider,{value:{videoPlayer:this.videoPlayer,result:t,selectedID:r,attributeList:this.props.config.attributeList,clipStatus:e,selectedAttribute:i,contextToCancel:this.contextToCancel}},this.renderMediaContent())}}module.exports=VideoClipTool;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),index=require("../../../utils/index.js"),index$1=require("../../videoPlayer/index.js"),VideoTagLayer=require("../../videoPlayer/VideoTagLayer.js"),_=require("lodash"),utils=require("../../videoPlayer/utils.js");function _interopDefaultLegacy(h){return h&&typeof h=="object"&&"default"in h?h:{default:h}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_);class TagToolInstanceAdaptor extends React__default.default.Component{constructor(s){super(s);this.fns={},this.labelSelectedList=[],this.clearResult=(e=!0,t)=>{const i=t?this.state.tagResult.map(l=>((l==null?void 0:l.result[t])&&delete l.result[t],l)):[];this.setState({tagResult:i},()=>this.emitEvent("render"))},this.exportData=()=>{var e,t,i,l,o,n,r;const a=(t=(e=this.videoPlayer)==null?void 0:e.duration)!=null?t:0,d=(i=this.videoPlayer)==null?void 0:i.getVideoPlaybackQuality(),u=d==null?void 0:d.totalVideoFrames,c=(o=(l=this.videoPlayer)==null?void 0:l.videoWidth)!=null?o:0,v=(r=(n=this.videoPlayer)==null?void 0:n.videoHeight)!=null?r:0;return[this.state.tagResult,{valid:this.state.valid,duration:a,frames:u,videoWidth:c,videoHeight:v}]},this.emitEvent=e=>{this.fns[e]&&this.fns[e]()},this.combineResult=(e,t={})=>{var i,l;const{isMulti:o}=e,{key:n,value:r}=e.value;if(o){let a=(l=(i=t[n])==null?void 0:i.split(";"))!=null?l:[];a.includes(r)?a=a.filter(u=>u!==r):a.push(r);const d=new Set(a);return t[n]=Array.from(d).join(";"),___default.default.pickBy(t,u=>u)}return t[n]=t[n]===r?void 0:r,___default.default.pickBy(t,a=>a)},this.setResult=e=>{this.setState({tagResult:e}),this.fns.render&&this.fns.render()},this.setLabel=(e,t)=>{this.setLabelBySelectedList(e,t)},this.keydown=e=>{const t=utils.getKeyCodeNumber(e.keyCode);if(t){const i=t-1;if(this.config.inputList.length===1){this.labelSelectedList=[0,i],this.setLabel(0,i),setTimeout(()=>{this.labelSelectedList=[],this.emitEvent("render")},500);return}this.labelSelectedList.length===1?(this.labelSelectedList=[this.labelSelectedList[0],i],this.setLabel(this.labelSelectedList[0],i),setTimeout(()=>{this.labelSelectedList=[],this.emitEvent("render")},500)):(this.labelSelectedList=[i],this.emitEvent("expend"))}},this.setValid=e=>{this.setState({valid:e}),e===!1&&this.setState({tagResult:[]}),this.emitEvent("render")},this.setResultFromImgList=e=>{var t;const{imgList:i,imgIndex:l,step:o}=e;if(!i[l])return;const n=index.jsonParser(i[l].result),r=n[`step_${o}`];this.setState({tagResult:(t=r==null?void 0:r.result)!=null?t:[],valid:(n==null?void 0:n.valid)===void 0?!0:n.valid})},this.state={tagResult:[],labelSelectedList:[],valid:!0}}get config(){var s;return index.jsonParser((s=this.props.stepInfo)==null?void 0:s.config)}get history(){return{initRecord:()=>{},pushHistory:()=>{}}}get currentTagResult(){var s;return(s=this.state.tagResult[0])!=null?s:{}}get valid(){return this.state.valid}singleOn(s,e){this.fns[s]=e}on(s,e){this.singleOn(s,e)}unbindAll(s){delete this.fns[s]}getTagResultByCode(s,e){var t,i,l;try{const o=(i=(t=this.config)==null?void 0:t.inputList)!=null?i:[],n=o.length>1,r=e!==void 0?s:0,a=e!==void 0?e:s,d=n?o[r]:o[0],u=((l=d.subSelected)!=null?l:[])[a];if(d&&u)return{value:{key:d.value,value:u.value},isMulti:d.isMulti}}catch(o){return}}setLabelBySelectedList(s,e){var t,i,l,o;const n=this.getTagResultByCode(s,e);if(n){const r=this.combineResult(n,(i=(t=this.state.tagResult[0])==null?void 0:t.result)!=null?i:{}),a=[{sourceID:lbAnnotation.CommonToolUtils.getSourceID(),id:(o=(l=this.currentTagResult)==null?void 0:l.id)!=null?o:lbAnnotation.uuid(8,62),result:r}];this.setState({tagResult:a},()=>this.emitEvent("render"))}}componentDidMount(){document.addEventListener("keydown",this.keydown),this.props.onMounted(this),this.setResultFromImgList(this.props)}componentWillUnmount(){document.addEventListener("keydown",this.keydown),this.props.onUnmounted()}shouldComponentUpdate(s){return s.imgIndex!==this.props.imgIndex&&this.setResultFromImgList(s),!0}render(){var s;const{imgIndex:e,imgList:t,pageForward:i,pageJump:l,pageBackward:o}=this.props,{tagResult:n,valid:r}=this.state;return React__default.default.createElement("div",{style:{height:"100%",width:"100%",position:"relative",display:"flex",flexDirection:"column"}},React__default.default.createElement(index$1.VideoPlayer,{imgIndex:e,imgList:t,pageBackward:o,pageForward:i,pageJump:l,valid:r,setVideoRef:a=>{this.videoPlayer=a},drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer}),React__default.default.createElement(VideoTagLayer.VideoTagLayer,{result:n,inputList:(s=this.config)==null?void 0:s.inputList,hasPromptLayer:!!this.props.drawLayerSlot}))}}exports.TagToolInstanceAdaptor=TagToolInstanceAdaptor;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),lbAnnotation=require("@labelbee/lb-annotation"),index=require("../../../utils/index.js"),index$1=require("../../videoPlayer/index.js"),VideoTagLayer=require("../../videoPlayer/VideoTagLayer.js"),_=require("lodash"),utils=require("../../videoPlayer/utils.js");function _interopDefaultLegacy(h){return h&&typeof h=="object"&&"default"in h?h:{default:h}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_);class TagToolInstanceAdaptor extends React__default.default.Component{constructor(s){super(s);this.fns={},this.labelSelectedList=[],this.clearResult=(t=!0,e)=>{const i=e?this.state.tagResult.map(l=>((l==null?void 0:l.result[e])&&delete l.result[e],l)):[];this.setState({tagResult:i},()=>this.emitEvent("render"))},this.exportData=()=>{var t,e,i,l,n,r,a;const o=(e=(t=this.videoPlayer)==null?void 0:t.duration)!=null?e:0,d=(i=this.videoPlayer)==null?void 0:i.getVideoPlaybackQuality(),u=d==null?void 0:d.totalVideoFrames,c=(n=(l=this.videoPlayer)==null?void 0:l.videoWidth)!=null?n:0,g=(a=(r=this.videoPlayer)==null?void 0:r.videoHeight)!=null?a:0;return[this.state.tagResult,{valid:this.state.valid,duration:o,frames:u,videoWidth:c,videoHeight:g}]},this.emitEvent=t=>{this.fns[t]&&this.fns[t]()},this.combineResult=(t,e={})=>{var i,l;const{isMulti:n}=t,{key:r,value:a}=t.value;if(n){let o=(l=(i=e[r])==null?void 0:i.split(";"))!=null?l:[];o.includes(a)?o=o.filter(u=>u!==a):o.push(a);const d=new Set(o);return e[r]=Array.from(d).join(";"),___default.default.pickBy(e,u=>u)}return e[r]=e[r]===a?void 0:a,___default.default.pickBy(e,o=>o)},this.setResult=t=>{this.setState({tagResult:t}),this.fns.render&&this.fns.render()},this.setLabel=(t,e)=>{this.setLabelBySelectedList(t,e)},this.keydown=t=>{const e=utils.getKeyCodeNumber(t.keyCode);if(e){const i=e-1;if(this.config.inputList.length===1){this.labelSelectedList=[0,i],this.setLabel(0,i),setTimeout(()=>{this.labelSelectedList=[],this.emitEvent("render")},500);return}this.labelSelectedList.length===1?(this.labelSelectedList=[this.labelSelectedList[0],i],this.setLabel(this.labelSelectedList[0],i),setTimeout(()=>{this.labelSelectedList=[],this.emitEvent("render")},500)):(this.labelSelectedList=[i],this.emitEvent("expend"))}},this.setValid=t=>{this.setState({valid:t}),t===!1&&this.setState({tagResult:[]}),this.emitEvent("render")},this.setResultFromImgList=t=>{const{imgList:e,imgIndex:i,step:l}=t;if(!e[i])return;const n=index.jsonParser(e[i].result),r=n[`step_${l}`],a=this.getInitResultList();this.setState({tagResult:r?r==null?void 0:r.result:a,valid:(n==null?void 0:n.valid)===void 0?!0:n.valid},()=>this.emitEvent("render"))},this.getInitResultList=()=>lbAnnotation.TagUtils.getDefaultTagResult(this.config.inputList,[]),this.state={tagResult:[],labelSelectedList:[],valid:!0}}get config(){var s;return index.jsonParser((s=this.props.stepInfo)==null?void 0:s.config)}get history(){return{initRecord:()=>{},pushHistory:()=>{}}}get currentTagResult(){var s;return(s=this.state.tagResult[0])!=null?s:{}}get valid(){return this.state.valid}singleOn(s,t){this.fns[s]=t}on(s,t){this.singleOn(s,t)}unbindAll(s){delete this.fns[s]}getTagResultByCode(s,t){var e,i,l;try{const n=(i=(e=this.config)==null?void 0:e.inputList)!=null?i:[],r=n.length>1,a=t!==void 0?s:0,o=t!==void 0?t:s,d=r?n[a]:n[0],u=((l=d.subSelected)!=null?l:[])[o];if(d&&u)return{value:{key:d.value,value:u.value},isMulti:d.isMulti}}catch(n){return}}setLabelBySelectedList(s,t){var e,i,l,n;const r=this.getTagResultByCode(s,t);if(r){const a=this.combineResult(r,(i=(e=this.state.tagResult[0])==null?void 0:e.result)!=null?i:{}),o=[{sourceID:lbAnnotation.CommonToolUtils.getSourceID(),id:(n=(l=this.currentTagResult)==null?void 0:l.id)!=null?n:lbAnnotation.uuid(8,62),result:a}];this.setState({tagResult:o},()=>this.emitEvent("render"))}}componentDidMount(){document.addEventListener("keydown",this.keydown),this.props.onMounted(this),this.setResultFromImgList(this.props)}componentWillUnmount(){document.addEventListener("keydown",this.keydown),this.props.onUnmounted()}shouldComponentUpdate(s){return s.imgIndex!==this.props.imgIndex&&this.setResultFromImgList(s),!0}render(){var s;const{imgIndex:t,imgList:e,pageForward:i,pageJump:l,pageBackward:n}=this.props,{tagResult:r,valid:a}=this.state;return React__default.default.createElement("div",{style:{height:"100%",width:"100%",position:"relative",display:"flex",flexDirection:"column"}},React__default.default.createElement(index$1.VideoPlayer,{imgIndex:t,imgList:e,pageBackward:n,pageForward:i,pageJump:l,valid:a,setVideoRef:o=>{this.videoPlayer=o},drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer}),React__default.default.createElement(VideoTagLayer.VideoTagLayer,{result:r,inputList:(s=this.config)==null?void 0:s.inputList,hasPromptLayer:!!this.props.drawLayerSlot}))}}exports.TagToolInstanceAdaptor=TagToolInstanceAdaptor;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),index=require("../../../utils/index.js"),index$1=require("../../videoPlayer/index.js"),_=require("lodash"),VideoTextLayer=require("../../videoPlayer/VideoTextLayer.js"),lbUtils=require("@labelbee/lb-utils");function _interopDefaultLegacy(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_);class VideoTextTool extends React__default.default.Component{constructor(e){super(e);this.fns={},this.clearResult=(t=!0)=>{this.setState({result:{}},()=>this.updateSidebar())},this.exportData=()=>{var t,l,s,r,i,n,o;const d=(l=(t=this.videoPlayer)==null?void 0:t.duration)!=null?l:0,u=(s=this.videoPlayer)==null?void 0:s.getVideoPlaybackQuality(),h=u==null?void 0:u.totalVideoFrames,v=(i=(r=this.videoPlayer)==null?void 0:r.videoWidth)!=null?i:0,p=(o=(n=this.videoPlayer)==null?void 0:n.videoHeight)!=null?o:0;return[[this.state.result],{valid:this.state.valid,duration:d,frames:h,videoWidth:v,videoHeight:p}]},this.toggleShowText=t=>{this.setState({showText:t})},this.emitEvent=t=>{this.fns[t]&&this.fns[t]()},this.updateSidebar=()=>{this.emitEvent("valueUpdated")},this.updateTextValue=(t,l,s)=>{var r;const i=___default.default.cloneDeep(s!=null?s:{});i.value=Object.assign((r=i.value)!=null?r:{},{[t]:l}),this.setState({result:i},()=>this.updateSidebar())},this.setResult=t=>{this.setState({result:t}),this.fns.render&&this.fns.render()},this.setValid=t=>{this.setState({valid:t}),t===!1&&this.setState({result:{}}),this.emitEvent("render")},this.setResultFromImgList=t=>{var l,s;const{imgList:r,imgIndex:i,step:n}=t;if(!r[i])return;const o=index.jsonParser(r[i].result),d=o[`step_${n}`];this.setState({result:(s=(l=d==null?void 0:d.result)==null?void 0:l[0])!=null?s:{},valid:(o==null?void 0:o.valid)===void 0?!0:o.valid},()=>this.updateSidebar())},this.state={result:{},valid:!0,showText:!0}}get config(){var e;return index.jsonParser((e=this.props.stepInfo)==null?void 0:e.config)}get history(){return{initRecord:()=>{},pushHistory:()=>{}}}get valid(){return this.state.valid}get textList(){return[this.state.result]}getColor(e=this.config,t=""){return lbUtils.toolStyleConverter.getColorByConfig({attribute:t,config:e})}singleOn(e,t){this.fns[e]=t}on(e,t){this.singleOn(e,t)}unbindAll(e){delete this.fns[e]}componentDidMount(){this.props.onMounted(this),this.setResultFromImgList(this.props)}componentWillUnmount(){this.props.onUnmounted()}shouldComponentUpdate(e){return e.imgIndex!==this.props.imgIndex&&this.setResultFromImgList(e),!0}render(){var e,t;const{imgIndex:l,imgList:s,pageForward:r,pageJump:i,pageBackward:n}=this.props,{result:o,valid:d,showText:u}=this.state;return React__default.default.createElement("div",{style:{height:"100%",width:"100%",position:"relative",display:"flex",flexDirection:"column"}},u&&o.value&&React__default.default.createElement(VideoTextLayer.VideoTextLayer,{value:o.value,toolColor:(t=(e=this.getColor(this.config))==null?void 0:e.valid)==null?void 0:t.fill,configList:this.config.configList,hasPromptLayer:!!this.props.drawLayerSlot}),React__default.default.createElement(index$1.VideoPlayer,{imgIndex:l,imgList:s,pageBackward:n,pageForward:r,pageJump:i,valid:d,setVideoRef:h=>{this.videoPlayer=h},drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer}))}}exports.VideoTextTool=VideoTextTool;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),index=require("../../../utils/index.js"),index$1=require("../../videoPlayer/index.js"),_=require("lodash"),VideoTextLayer=require("../../videoPlayer/VideoTextLayer.js"),lbUtils=require("@labelbee/lb-utils");function _interopDefaultLegacy(n){return n&&typeof n=="object"&&"default"in n?n:{default:n}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_);class VideoTextTool extends React__default.default.Component{constructor(i){super(i);this.fns={},this.clearResult=(t=!0)=>{this.setState({result:{}},()=>this.updateSidebar())},this.exportData=()=>{var t,e,a,s,r,o,l;const d=(e=(t=this.videoPlayer)==null?void 0:t.duration)!=null?e:0,u=(a=this.videoPlayer)==null?void 0:a.getVideoPlaybackQuality(),h=u==null?void 0:u.totalVideoFrames,v=(r=(s=this.videoPlayer)==null?void 0:s.videoWidth)!=null?r:0,p=(l=(o=this.videoPlayer)==null?void 0:o.videoHeight)!=null?l:0;return[[this.state.result],{valid:this.state.valid,duration:d,frames:h,videoWidth:v,videoHeight:p}]},this.toggleShowText=t=>{this.setState({showText:t})},this.singleOn=(t,e)=>{this.fns[t]=e},this.on=(t,e)=>{this.singleOn(t,e)},this.unbindAll=t=>{delete this.fns[t]},this.emitEvent=t=>{this.fns[t]&&this.fns[t]()},this.updateSidebar=()=>{this.emitEvent("valueUpdated")},this.updateTextValue=(t,e,a,s)=>{var r;const o=___default.default.cloneDeep(s!=null?s:{});o.value=Object.assign((r=o.value)!=null?r:{},{[t]:e}),this.setState({result:o},()=>a&&this.updateSidebar())},this.setResult=t=>{this.setState({result:t}),this.fns.render&&this.fns.render()},this.setValid=t=>{this.setState({valid:t}),t===!1&&this.setState({result:{}}),this.emitEvent("render")},this.setResultFromImgList=t=>{var e,a;const{imgList:s,imgIndex:r,step:o}=t;if(!s[r])return;const l=index.jsonParser(s[r].result),d=l[`step_${o}`];this.setState({result:(a=(e=d==null?void 0:d.result)==null?void 0:e[0])!=null?a:{},valid:(l==null?void 0:l.valid)===void 0?!0:l.valid},()=>this.updateSidebar())},this.state={result:{},valid:!0,showText:!0}}get config(){var i;return index.jsonParser((i=this.props.stepInfo)==null?void 0:i.config)}get history(){return{initRecord:()=>{},pushHistory:()=>{}}}get valid(){return this.state.valid}get needConfirm(){var i;const{result:t}=this.state;return(i=this.config.configList)==null?void 0:i.some(e=>e.required&&!(t==null?void 0:t.value[e.key]))}get textList(){return[this.state.result]}getColor(i=this.config,t=""){return lbUtils.toolStyleConverter.getColorByConfig({attribute:t,config:i})}componentDidMount(){this.props.onMounted(this),this.setResultFromImgList(this.props)}componentWillUnmount(){this.props.onUnmounted()}shouldComponentUpdate(i){return i.imgIndex!==this.props.imgIndex&&this.setResultFromImgList(i),!0}render(){var i,t;const{imgIndex:e,imgList:a,pageForward:s,pageJump:r,pageBackward:o}=this.props,{result:l,valid:d,showText:u}=this.state;return React__default.default.createElement("div",{style:{height:"100%",width:"100%",position:"relative",display:"flex",flexDirection:"column"}},u&&l.value&&React__default.default.createElement(VideoTextLayer.VideoTextLayer,{value:l.value,toolColor:(t=(i=this.getColor(this.config))==null?void 0:i.valid)==null?void 0:t.fill,configList:this.config.configList,hasPromptLayer:!!this.props.drawLayerSlot}),React__default.default.createElement(index$1.VideoPlayer,{imgIndex:e,imgList:a,pageBackward:o,pageForward:s,pageJump:r,valid:d,setVideoRef:h=>{this.videoPlayer=h},drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer}))}}exports.VideoTextTool=VideoTextTool;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),dom=require("../../../../utils/dom.js"),icons=require("@ant-design/icons"),index=require("../../index.js"),Pagination=require("../../../../views/MainView/toolFooter/Pagination.js"),icon_keyboard_h=require("../../../../assets/annotation/video/icon_keyboard_h.svg.js"),index$2=require("../../../../views/MainView/toolFooter/FooterTips/ToolHotKey/index.js"),reactI18next=require("react-i18next"),utils=require("../../utils.js"),lbAnnotation=require("@labelbee/lb-annotation"),index$1=require("../../../videoAnnotate/videoClipTool/components/videoClipToolHotkey/index.js"),VideoClipToolContext=require("../../../videoAnnotate/videoClipTool/VideoClipToolContext.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const{EVideoToolName}=lbAnnotation.cTool,videoTimeFormat=e=>{const t=Math.floor(e/60),a=~~(e%60).toFixed(),o=(e*10).toString().split("").pop(),l=s=>s<10?`0${s}`:s;return`${l(t)}:${l(a)}:${o}`};exports.EPlayerType=void 0,function(e){e[e.Video=0]="Video",e[e.Audio=1]="Audio"}(exports.EPlayerType||(exports.EPlayerType={}));const VideoProgress=()=>{const{currentTime:e,duration:t,buffered:a,setCurrentTime:o}=React__default.default.useContext(index.VideoPlayerCtx),l=React__default.default.useRef(null),s=React.useMemo(()=>`${utils.decimalReserved(a/t*100,1)}%`,[a,t]),r=React.useMemo(()=>`${utils.decimalReserved(e/t*100,1)}%`,[e,t]),d=n=>{if(l.current){const c=n.clientX,u=l.current.clientWidth,i=utils.decimalReserved(c/u*t,1);o(i)}};return React__default.default.createElement("div",{className:dom.getClassName("video-progress"),ref:l,onClick:n=>{n.stopPropagation(),n.nativeEvent.stopImmediatePropagation(),d(n)}},React__default.default.createElement("div",{className:dom.getClassName("video-slider")},React__default.default.createElement("div",{className:dom.getClassName("video-slider","played"),style:{width:r}}),React__default.default.createElement("div",{className:dom.getClassName("video-slider","loaded"),style:{width:s}}),React__default.default.createElement("div",{className:dom.getClassName("video-slider","played"),style:{width:r}})),React__default.default.createElement("div",{className:dom.getClassName("video-slider-bar"),style:{left:r}}))},VideoSpeedButton=()=>{const{updateNextPlaybackRate:e,playbackRate:t}=React__default.default.useContext(index.VideoPlayerCtx),{t:a}=reactI18next.useTranslation();return React__default.default.createElement("span",{className:dom.getClassName("video-controller","speed")},React__default.default.createElement("span",null,a("Speed")),React__default.default.createElement("span",{className:dom.getClassName("video-controller","speedNum")},`${t}x`),React__default.default.createElement("span",{className:dom.getClassName("video-controller","speedButton")},React__default.default.createElement(icons.CaretUpOutlined,{onClick:()=>{e()}}),React__default.default.createElement(icons.CaretDownOutlined,{onClick:()=>{e(!1)}})))},VideoHotKeys=()=>{const{t:e}=reactI18next.useTranslation();return React__default.default.createElement(index$2.default,{title:React__default.default.createElement("span",{className:dom.getClassName("video-controller","hotkey")},React__default.default.createElement("img",{src:icon_keyboard_h}),e("Hotkeys")),style:{},toolName:EVideoToolName.VideoTagTool})},VideoPageChange=()=>{const{imgIndex:e,imgList:t,pageBackward:a,pageJump:o,pageForward:l}=React__default.default.useContext(index.VideoPlayerCtx);return React__default.default.createElement(Pagination.Pagination,{isVideo:!0,pageBackward:a,imgIndex:e,pageJump:o,totalPage:t.length,pageForward:l,footerCls:dom.getClassName("video-controller")})},VideoTime=()=>{const{currentTime:e,duration:t}=React__default.default.useContext(index.VideoPlayerCtx),a=t*10-e*10,o=(a>0?a:0)/10;return React__default.default.createElement("div",{className:dom.getClassName("video-controller","time")},`${videoTimeFormat(e)} / -${videoTimeFormat(o)}`)},VideoPlay=e=>{const{playPause:t,isPlay:a}=e;return React__default.default.createElement("span",{onClick:()=>{t()},className:dom.getClassName("video-controller","playButton")},a?React__default.default.createElement(icons.PauseOutlined,null):React__default.default.createElement(icons.CaretRightOutlined,null))},VideoController=e=>{var t,a;const{footer:o}=e,{playPause:l,isPlay:s,addTime:r,toggleClipStatus:d}=React__default.default.useContext(index.VideoPlayerCtx),{result:n}=React.useContext(VideoClipToolContext.VideoClipToolContext),c=(a=(t=n==null?void 0:n.filter(x=>x.end!==null))==null?void 0:t.length)!=null?a:0,{t:u}=reactI18next.useTranslation(),i=React__default.default.createElement(VideoProgress,null),m=React__default.default.createElement(VideoPlay,{playPause:l,isPlay:s}),f=React__default.default.createElement(VideoTime,null),v=React__default.default.createElement(VideoSpeedButton,null),p=React__default.default.createElement(VideoPageChange,null),C=React__default.default.createElement(VideoHotKeys,null),y=React__default.default.createElement(index$1,{addTime:r,toggleClipStatus:d}),g=React__default.default.createElement("span",{style:{margin:"0px 8px",fontSize:12}},`${u("ItemsOfThisPage")}: ${c}`);return o?typeof o=="function"?o({videoProgress:i,videoPlayIcon:m,videoTime:f,videoSpeed:v,videoPageChange:p,videoHotKeys:C,videoClipHotKey:y,videoResultCount:g}):o:React__default.default.createElement("div",{className:dom.getClassName("video-controller","wrapper")},i,React__default.default.createElement("div",{className:dom.getClassName("video-controller")},m,f,v,React__default.default.createElement("div",{className:dom.getClassName("video-controller","holder")}),g,p,C))};exports.default=VideoController,exports.videoTimeFormat=videoTimeFormat;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),dom=require("../../../../utils/dom.js"),icons=require("@ant-design/icons"),index=require("../../index.js"),Pagination=require("../../../../views/MainView/toolFooter/Pagination.js"),icon_keyboard_h=require("../../../../assets/annotation/video/icon_keyboard_h.svg.js"),index$2=require("../../../../views/MainView/toolFooter/FooterTips/ToolHotKey/index.js"),reactI18next=require("react-i18next"),utils=require("../../utils.js"),lbAnnotation=require("@labelbee/lb-annotation"),index$1=require("../../../videoAnnotate/videoClipTool/components/videoClipToolHotkey/index.js"),VideoClipToolContext=require("../../../videoAnnotate/videoClipTool/VideoClipToolContext.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const{EVideoToolName}=lbAnnotation.cTool,videoTimeFormat=e=>{const t=Math.floor(e/60),a=~~(e%60).toFixed(),o=(e*10).toString().split("").pop(),l=s=>s<10?`0${s}`:s;return`${l(t)}:${l(a)}:${o}`};exports.EPlayerType=void 0,function(e){e[e.Video=0]="Video",e[e.Audio=1]="Audio"}(exports.EPlayerType||(exports.EPlayerType={}));const VideoProgress=()=>{const{currentTime:e,duration:t,buffered:a,setCurrentTime:o}=React__default.default.useContext(index.VideoPlayerCtx),l=React__default.default.useRef(null),s=React.useMemo(()=>`${utils.decimalReserved(a/t*100,1)}%`,[a,t]),r=React.useMemo(()=>`${utils.decimalReserved(e/t*100,1)}%`,[e,t]),d=n=>{if(l.current){const c=n.clientX,u=l.current.clientWidth,i=utils.decimalReserved(c/u*t,1);o(i)}};return React__default.default.createElement("div",{className:dom.getClassName("video-progress"),ref:l,onClick:n=>{n.stopPropagation(),n.nativeEvent.stopImmediatePropagation(),d(n)}},React__default.default.createElement("div",{className:dom.getClassName("video-slider")},React__default.default.createElement("div",{className:dom.getClassName("video-slider","played"),style:{width:r}}),React__default.default.createElement("div",{className:dom.getClassName("video-slider","loaded"),style:{width:s}}),React__default.default.createElement("div",{className:dom.getClassName("video-slider","played"),style:{width:r}})),React__default.default.createElement("div",{className:dom.getClassName("video-slider-bar"),style:{left:r}}))},VideoSpeedButton=()=>{const{updateNextPlaybackRate:e,playbackRate:t}=React__default.default.useContext(index.VideoPlayerCtx),{t:a}=reactI18next.useTranslation();return React__default.default.createElement("span",{className:dom.getClassName("video-controller","speed")},React__default.default.createElement("span",null,a("Speed")),React__default.default.createElement("span",{className:dom.getClassName("video-controller","speedNum")},`${t}x`),React__default.default.createElement("span",{className:dom.getClassName("video-controller","speedButton")},React__default.default.createElement(icons.CaretUpOutlined,{onClick:()=>{e()}}),React__default.default.createElement(icons.CaretDownOutlined,{onClick:()=>{e(!1)}})))},VideoHotKeys=()=>{const{t:e}=reactI18next.useTranslation();return React__default.default.createElement(index$2.default,{title:React__default.default.createElement("span",{className:dom.getClassName("video-controller","hotkey")},React__default.default.createElement("img",{src:icon_keyboard_h}),e("Hotkeys")),style:{},toolName:EVideoToolName.VideoTagTool})},VideoPageChange=()=>{const{imgIndex:e,imgList:t,pageBackward:a,pageJump:o,pageForward:l}=React__default.default.useContext(index.VideoPlayerCtx);return React__default.default.createElement(Pagination.Pagination,{isVideo:!0,pageBackward:a,imgIndex:e,pageJump:o,totalPage:t.length,pageForward:l,footerCls:dom.getClassName("video-controller")})},VideoTime=()=>{const{currentTime:e,duration:t}=React__default.default.useContext(index.VideoPlayerCtx),a=t*10-e*10,o=(a>0?a:0)/10;return React__default.default.createElement("div",{className:dom.getClassName("video-controller","time")},`${videoTimeFormat(e)} / -${videoTimeFormat(o)}`)},VideoPlay=e=>{const{playPause:t,isPlay:a}=e;return React__default.default.createElement("span",{onClick:()=>{t()},className:dom.getClassName("video-controller","playButton")},a?React__default.default.createElement(icons.PauseOutlined,null):React__default.default.createElement(icons.CaretRightOutlined,null))},VideoController=e=>{var t,a;const{footer:o}=e,{playPause:l,isPlay:s,addTime:r,toggleClipStatus:d}=React__default.default.useContext(index.VideoPlayerCtx),{result:n}=React.useContext(VideoClipToolContext.VideoClipToolContext),c=(a=(t=n==null?void 0:n.filter(x=>x.end!==null))==null?void 0:t.length)!=null?a:0,{t:u}=reactI18next.useTranslation(),i=React__default.default.createElement(VideoProgress,null),m=React__default.default.createElement(VideoPlay,{playPause:l,isPlay:s}),f=React__default.default.createElement(VideoTime,null),v=React__default.default.createElement(VideoSpeedButton,null),p=React__default.default.createElement(VideoPageChange,null),C=React__default.default.createElement(VideoHotKeys,null),g=React__default.default.createElement(index$1,{addTime:r,toggleClipStatus:d}),y=React__default.default.createElement("span",{style:{margin:"0px 8px",fontSize:12}},`${u("ItemsOfThisPage")}: ${c}`);return o?typeof o=="function"?o({videoProgress:i,videoPlayIcon:m,videoTime:f,videoSpeed:v,videoPageChange:p,videoHotKeys:C,videoClipHotKey:g,videoResultCount:y}):o:React__default.default.createElement("div",{className:dom.getClassName("video-controller","wrapper")},i,React__default.default.createElement("div",{className:dom.getClassName("video-controller")},m,f,v,g,React__default.default.createElement("div",{className:dom.getClassName("video-controller","holder")}),y,p,C))};exports.default=VideoController,exports.videoTimeFormat=videoTimeFormat;
@@ -19,8 +19,9 @@ export interface IVideoAnnotateProps {
19
19
  imgList: IFileItem[];
20
20
  drawLayerSlot?: DrawLayerSlot;
21
21
  footer?: any;
22
+ skipBeforePageTurning?: (pageTurning: Function) => void;
22
23
  }
23
24
  declare const _default: import("react-redux").ConnectedComponent<React.FC<IVideoAnnotateProps>, import("react-redux").Omit<IVideoAnnotateProps & {
24
25
  children?: React.ReactNode;
25
- }, "stepList" | "step" | "imgIndex" | "imgList" | "config" | "loading" | "path" | "stepInfo">>;
26
+ }, "stepList" | "step" | "imgIndex" | "imgList" | "config" | "skipBeforePageTurning" | "loading" | "path" | "stepInfo">>;
26
27
  export default _default;
@@ -79,6 +79,14 @@ export declare class TagToolInstanceAdaptor extends React.Component<IVideoTagIns
79
79
  componentDidMount(): void;
80
80
  componentWillUnmount(): void;
81
81
  setResultFromImgList: (props: IVideoTagInstanceAdaptorProps) => void;
82
+ /**
83
+ * 获取初始值结果列表
84
+ */
85
+ getInitResultList: () => {
86
+ id: string;
87
+ sourceID: any;
88
+ result: any;
89
+ }[];
82
90
  /** Observer imgIndex and set tagResult */
83
91
  shouldComponentUpdate(props: IVideoTagInstanceAdaptorProps): boolean;
84
92
  render(): React.JSX.Element;
@@ -25,6 +25,7 @@ export declare class VideoTextTool extends React.Component<IVideoTextInstanceAda
25
25
  pushHistory: () => void;
26
26
  };
27
27
  get valid(): boolean;
28
+ get needConfirm(): any;
28
29
  get textList(): any[];
29
30
  getColor(config?: any, attribute?: string): any;
30
31
  clearResult: (sendMsg?: boolean) => void;
@@ -36,12 +37,12 @@ export declare class VideoTextTool extends React.Component<IVideoTextInstanceAda
36
37
  videoHeight: number;
37
38
  })[];
38
39
  toggleShowText: (v: boolean) => void;
39
- singleOn(event: string, func: () => void): void;
40
- on(event: string, func: () => void): void;
41
- unbindAll(eventName: string): void;
40
+ singleOn: (event: string, func: () => void) => void;
41
+ on: (event: string, func: () => void) => void;
42
+ unbindAll: (eventName: string) => void;
42
43
  emitEvent: (event: string) => void;
43
44
  updateSidebar: () => void;
44
- updateTextValue: (key: string, text: string, result?: {
45
+ updateTextValue: (key: string, text: string, update: boolean, result?: {
45
46
  [key: string]: string;
46
47
  } | undefined) => void;
47
48
  setResult: (result: any) => void;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index$1=require("../../../../components/attributeList/index.js"),index=require("../../../../components/checkboxList/index.js"),icons=require("@ant-design/icons"),es=require("antd/es"),_=require("lodash"),React=require("react"),icon_clearSmall=require("../../../../assets/annotation/common/icon_clearSmall.svg.js"),icon_clearSmall_a=require("../../../../assets/annotation/common/icon_clearSmall_a.svg.js"),lbAnnotation=require("@labelbee/lb-annotation"),reactRedux=require("react-redux"),reactI18next=require("react-i18next"),ctx=require("../../../../store/ctx.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const{Panel}=es.Collapse,expandIconFuc=({isActive:e})=>React__default.default.createElement(icons.CaretRightOutlined,{rotate:e?90:0}),TagSidebar=({toolInstance:e,imgIndex:C})=>{const[u,v]=React.useState([]),s=React.useRef(null),[,q]=React.useState(0),[R,f]=React.useState(-1),{t:m}=reactI18next.useTranslation();React.useEffect(()=>{e&&(v(e.config.inputList.map(t=>t.value)),e.singleOn("render",()=>{q(t=>t+1)}))},[e]),React.useEffect(()=>{if(e&&(e.singleOn("expend",T),e.labelSelectedList.length===1)){let t=0;for(let a=0;a<e.labelSelectedList[0];a++)t+=46,n[a]&&u[a]!==""&&n[a].subSelected.forEach(r=>{t+=40});s.current&&(s.current.children[0].scrollTop=t)}}),React.useEffect(()=>{s.current&&(s.current.children[0].scrollTop=0)},[C]);const T=()=>{var t;const a=e.labelSelectedList[0],r=(t=n.filter((l,o)=>o===a)[0])==null?void 0:t.value;p(a,r,!0)},p=React.useCallback((t,a,r)=>{const l=_.cloneDeep(u);l[t]===""||r===!0?l[t]=a:l[t]="",v(l)},[u]);if(!e)return null;const{labelSelectedList:c,config:{inputList:n},currentTagResult:i,setLabel:g}=e,j=t=>c.length>0&&c[0]===t?React__default.default.createElement("span",{className:"keyDownIconActive"},t+1):React__default.default.createElement("span",{className:"keyDownIcon"},t+1),b=(t,a=-1)=>t?t.map((r,l)=>{var o,y,E,h,L;if(r.subSelected){const k=lbAnnotation.TagUtils.judgeResultIsInInputList(r.value,(o=i==null?void 0:i.result)==null?void 0:o[r.value],n);return React__default.default.createElement(es.Collapse,{bordered:!1,expandIcon:expandIconFuc,key:`collapse_${l}_${a+1}`,onChange:()=>p(l,r.value),activeKey:[u[l]]},React__default.default.createElement(Panel,{header:React__default.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",flex:1}},React__default.default.createElement("span",null,r.key,React__default.default.createElement(es.Tooltip,{placement:"bottom",title:m("ClearThisOption")},React__default.default.createElement("img",{style:{marginLeft:5,cursor:"pointer"},onClick:N=>{N.stopPropagation(),e.clearResult(!0,r.value)},src:R===l||k?icon_clearSmall_a:icon_clearSmall,onMouseEnter:()=>{f(l)},onMouseLeave:()=>{f(-1)}})),k&&u[l]===""&&React__default.default.createElement(es.Badge,{color:"#87d068"})),(n==null?void 0:n.length)>1&&j(l)),key:r.value},React__default.default.createElement("div",{className:"level",style:{backgroundColor:c.length>0&&c[0]===l?"rgba(158, 158, 158, 0.18)":""}},b(r.subSelected,l))))}const d=(n==null?void 0:n[a])?n==null?void 0:n[a].value:0,S=((h=(E=(y=i==null?void 0:i.result)==null?void 0:y[d])==null?void 0:E.split(";"))==null?void 0:h.indexOf(r.value))>-1?r.value:"";return((L=n==null?void 0:n[a])==null?void 0:L.isMulti)===!0?React__default.default.createElement("div",{className:"singleBar",key:`${d}_${a}_${l}`},React__default.default.createElement(index,{attributeChanged:()=>g(a,l),selectedAttribute:[S],list:[{value:r.value,label:r.key}],num:l+1})):React__default.default.createElement("div",{className:"singleBar",key:`${d}_${a}_${l}`},React__default.default.createElement(index$1.default,{forbidColor:!0,attributeChanged:()=>g(a,l),selectedAttribute:S,list:[{value:r.value,label:r.key}],num:l+1}))}):null,x=window.innerHeight-61-80;return React__default.default.createElement("div",{className:"tagOperationMenu",ref:s},(n==null?void 0:n.length)===0?React__default.default.createElement("div",{style:{padding:20,textAlign:"center"}},m("NoConfiguration")):React__default.default.createElement("div",{className:"main",style:{height:x}},b(n)))};function mapStateToProps(e){return{toolInstance:e.annotation.toolInstance,imgIndex:e.annotation.imgIndex}}var TagSidebar$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(TagSidebar);exports.default=TagSidebar$1,exports.expandIconFuc=expandIconFuc;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index$1=require("../../../../components/attributeList/index.js"),index=require("../../../../components/checkboxList/index.js"),icons=require("@ant-design/icons"),es=require("antd/es"),_=require("lodash"),React=require("react"),icon_clearSmall=require("../../../../assets/annotation/common/icon_clearSmall.svg.js"),icon_clearSmall_a=require("../../../../assets/annotation/common/icon_clearSmall_a.svg.js"),lbAnnotation=require("@labelbee/lb-annotation"),reactRedux=require("react-redux"),reactI18next=require("react-i18next"),ctx=require("../../../../store/ctx.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const{Panel}=es.Collapse,expandIconFuc=({isActive:e})=>React__default.default.createElement(icons.CaretRightOutlined,{rotate:e?90:0}),TagSidebar=({toolInstance:e,imgIndex:C})=>{const[u,v]=React.useState([]),s=React.useRef(null),[,q]=React.useState(0),[R,f]=React.useState(-1),{t:m}=reactI18next.useTranslation();React.useEffect(()=>{var r,l;e&&(v((l=(r=e.config)==null?void 0:r.inputList)==null?void 0:l.map(t=>t.value)),e.singleOn("render",()=>{q(t=>t+1)}))},[e]),React.useEffect(()=>{if(e&&(e.singleOn("expend",T),e.labelSelectedList.length===1)){let r=0;for(let l=0;l<e.labelSelectedList[0];l++)r+=46,n[l]&&u[l]!==""&&n[l].subSelected.forEach(t=>{r+=40});s.current&&(s.current.children[0].scrollTop=r)}}),React.useEffect(()=>{s.current&&(s.current.children[0].scrollTop=0)},[C]);const T=()=>{var r;const l=e.labelSelectedList[0],t=(r=n.filter((a,o)=>o===l)[0])==null?void 0:r.value;p(l,t,!0)},p=React.useCallback((r,l,t)=>{const a=_.cloneDeep(u);a[r]===""||t===!0?a[r]=l:a[r]="",v(a)},[u]);if(!e)return null;const{labelSelectedList:c,config:{inputList:n},currentTagResult:i,setLabel:g}=e,j=r=>c.length>0&&c[0]===r?React__default.default.createElement("span",{className:"keyDownIconActive"},r+1):React__default.default.createElement("span",{className:"keyDownIcon"},r+1),b=(r,l=-1)=>r?r.map((t,a)=>{var o,y,E,h,L;if(t.subSelected){const k=lbAnnotation.TagUtils.judgeResultIsInInputList(t.value,(o=i==null?void 0:i.result)==null?void 0:o[t.value],n);return React__default.default.createElement(es.Collapse,{bordered:!1,expandIcon:expandIconFuc,key:`collapse_${a}_${l+1}`,onChange:()=>p(a,t.value),activeKey:[u[a]]},React__default.default.createElement(Panel,{header:React__default.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",flex:1}},React__default.default.createElement("span",null,t.key,React__default.default.createElement(es.Tooltip,{placement:"bottom",title:m("ClearThisOption")},React__default.default.createElement("img",{style:{marginLeft:5,cursor:"pointer"},onClick:N=>{N.stopPropagation(),e.clearResult(!0,t.value)},src:R===a||k?icon_clearSmall_a:icon_clearSmall,onMouseEnter:()=>{f(a)},onMouseLeave:()=>{f(-1)}})),k&&u[a]===""&&React__default.default.createElement(es.Badge,{color:"#87d068"})),(n==null?void 0:n.length)>1&&j(a)),key:t.value},React__default.default.createElement("div",{className:"level",style:{backgroundColor:c.length>0&&c[0]===a?"rgba(158, 158, 158, 0.18)":""}},b(t.subSelected,a))))}const d=(n==null?void 0:n[l])?n==null?void 0:n[l].value:0,S=((h=(E=(y=i==null?void 0:i.result)==null?void 0:y[d])==null?void 0:E.split(";"))==null?void 0:h.indexOf(t.value))>-1?t.value:"";return((L=n==null?void 0:n[l])==null?void 0:L.isMulti)===!0?React__default.default.createElement("div",{className:"singleBar",key:`${d}_${l}_${a}`},React__default.default.createElement(index,{attributeChanged:()=>g(l,a),selectedAttribute:[S],list:[{value:t.value,label:t.key}],num:a+1})):React__default.default.createElement("div",{className:"singleBar",key:`${d}_${l}_${a}`},React__default.default.createElement(index$1.default,{forbidColor:!0,attributeChanged:()=>g(l,a),selectedAttribute:S,list:[{value:t.value,label:t.key}],num:a+1}))}):null,x=window.innerHeight-61-80;return React__default.default.createElement("div",{className:"tagOperationMenu",ref:s},(n==null?void 0:n.length)===0?React__default.default.createElement("div",{style:{padding:20,textAlign:"center"}},m("NoConfiguration")):React__default.default.createElement("div",{className:"main",style:{height:x}},b(n)))};function mapStateToProps(e){return{toolInstance:e.annotation.toolInstance,imgIndex:e.annotation.imgIndex}}var TagSidebar$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(TagSidebar);exports.default=TagSidebar$1,exports.expandIconFuc=expandIconFuc;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),reactRedux=require("react-redux"),_=require("lodash"),index=require("../../../../utils/index.js"),es=require("antd/es"),lbAnnotation=require("@labelbee/lb-annotation"),actionCreators=require("../../../../store/annotation/actionCreators.js"),ConfigUtils=require("../../../../utils/ConfigUtils.js"),reactI18next=require("react-i18next"),ctx=require("../../../../store/ctx.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,a)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,__spreadValues=(e,t)=>{for(var a in t||(t={}))__hasOwnProp.call(t,a)&&__defNormalProp(e,a,t[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(t))__propIsEnum.call(t,a)&&__defNormalProp(e,a,t[a]);return e};const EKeyCode=lbAnnotation.cKeyCode.default,{EVideoToolName}=lbAnnotation.cTool,syntheticEventStopPagination=e=>{e.stopPropagation(),e.nativeEvent.stopPropagation(),e.nativeEvent.stopImmediatePropagation()},TextareaWithFooter=e=>{const{textareaProps:t,footer:a}=e;return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(es.Input.TextArea,__spreadValues({bordered:!1,rows:6,onKeyDown:syntheticEventStopPagination,onKeyUp:syntheticEventStopPagination},t)),React__default.default.createElement("div",{className:index.classnames({textAreaLength:!0})},a))},SingleTextInput=e=>{var t;const a=React.useRef(null),[x,u]=React.useState(!1),[S,v]=React.useState(!1),{t:c}=reactI18next.useTranslation(),{disabled:s,config:l,result:i,updateText:m,index:g,switchToNextTextarea:T,hasMultiple:w,onNext:E}=e,{maxLength:d}=l,f=i?i[l.key]:"",h=(t=f==null?void 0:f.length)!=null?t:0,p=n=>{m&&(m(n,l.key),l.required&&v(!n))},b=w&&T,C={id:`textInput-${g}`,ref:a,disabled:s,value:f,maxLength:d,autoSize:{minRows:2,maxRows:6},onChange:n=>{const y=n.target.value;p(y)},onFocus:()=>{u(!0)},onBlur:n=>{u(!1),l.required&&v(!n.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:n=>{n.ctrlKey&&n.keyCode===EKeyCode.Enter&&(E&&E(),n.preventDefault()),n.keyCode===EKeyCode.Tab&&b&&(n.preventDefault(),n.nativeEvent.stopImmediatePropagation(),T(g)),n.nativeEvent.stopPropagation()}},P=React__default.default.createElement("div",{className:"textAreaFooter"},React__default.default.createElement("div",{className:"hotkeyTip"},b&&React__default.default.createElement("span",null,`[${c("Switch")}]Tab`),React__default.default.createElement("span",null,`[${c("TurnPage")}]Ctrl+Enter`)),React__default.default.createElement("div",{className:"wordCount"},React__default.default.createElement("span",{className:h>=d?"warning":""},h),"/",React__default.default.createElement("span",null,d)));return React.useEffect(()=>{s&&u(!1)},[s]),React__default.default.createElement("div",{className:"textField"},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("span",{className:index.classnames({required:l.required})},l.label),React__default.default.createElement("i",{className:index.classnames({clearText:!0,disabled:s}),onClick:()=>{s||p("")}})),React__default.default.createElement("div",{className:index.classnames({disabled:s,"textarea-outline":!0,"ant-input-focused":x,textareaContainer:!0,focus:x,invalid:S})},React__default.default.createElement(TextareaWithFooter,{footer:P,textareaProps:C})))},TextToolSidebar=({toolInstance:e,imgIndex:t,dispatch:a,triggerEventAfterIndexChanged:x,step:u,stepList:S,basicResultList:v})=>{var c,s,l;const[i,m]=React.useState([]),[g,T]=React.useState(0),[w,E]=React.useState(!0),[,d]=React.useState(0),{t:f}=reactI18next.useTranslation(),h=r=>{const o=(r+1)%i.length;p(o)},p=r=>{setTimeout(()=>{const o=document.getElementById(`textInput-${r}`);o&&(T(r),o.focus(),o.select(),o.scrollIntoView({behavior:"smooth",block:"center"}))})};React.useEffect(()=>{e&&(m(_.cloneDeep(e.config.configList)),e.singleOn("valueUpdated",()=>{d(r=>r+1)}))},[e]);const b=(l=(s=(c=e==null?void 0:e.textList)==null?void 0:c[0])==null?void 0:s.value)!=null?l:{},C=(r,o)=>{var N,q;(q=e==null?void 0:e.updateTextValue)==null||q.call(e,o,r,(N=e==null?void 0:e.textList)==null?void 0:N[0])};React.useEffect(()=>{t>-1&&x&&p(0)},[t]);const P=()=>{a(actionCreators.PageForward(!0))},n=r=>{E(r),e==null||e.toggleShowText(r)},y=ConfigUtils.ConfigUtils.getStepConfig(S,u),L=y.dataSourceStep>0&&v.length===0,F=y.tool===EVideoToolName.VideoTextTool;return e&&React__default.default.createElement("div",{className:"textToolOperationMenu"},i.map((r,o)=>React__default.default.createElement(SingleTextInput,{config:r,key:r.key,index:o,result:b,updateText:C,switchToNextTextarea:h,hasMultiple:i.length>1,focus:g===o,onNext:P,disabled:L})),F&&React__default.default.createElement("div",{className:"textToolSwitchItem"},f("toggleShowText"),React__default.default.createElement(es.Switch,{style:{alignSelf:"center"},checked:w,onChange:r=>{n(r)}})))};function mapStateToProps(e){return{toolInstance:e.annotation.toolInstance,imgIndex:e.annotation.imgIndex,step:e.annotation.step,basicResultList:e.annotation.basicResultList,stepList:e.annotation.stepList,triggerEventAfterIndexChanged:e.annotation.triggerEventAfterIndexChanged}}var TextToolSidebar$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(TextToolSidebar);exports.SingleTextInput=SingleTextInput,exports.TextareaWithFooter=TextareaWithFooter,exports.default=TextToolSidebar$1;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),reactRedux=require("react-redux"),_=require("lodash"),index=require("../../../../utils/index.js"),es=require("antd/es"),lbAnnotation=require("@labelbee/lb-annotation"),actionCreators=require("../../../../store/annotation/actionCreators.js"),ConfigUtils=require("../../../../utils/ConfigUtils.js"),reactI18next=require("react-i18next"),ctx=require("../../../../store/ctx.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,r)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues=(e,t)=>{for(var r in t||(t={}))__hasOwnProp.call(t,r)&&__defNormalProp(e,r,t[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(t))__propIsEnum.call(t,r)&&__defNormalProp(e,r,t[r]);return e};const EKeyCode=lbAnnotation.cKeyCode.default,{EVideoToolName}=lbAnnotation.cTool,syntheticEventStopPagination=e=>{e.stopPropagation(),e.nativeEvent.stopPropagation(),e.nativeEvent.stopImmediatePropagation()},TextareaWithFooter=e=>{const{textareaProps:t,footer:r}=e;return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(es.Input.TextArea,__spreadValues({key:`${t.id}-${t.defaultValue}`,bordered:!1,rows:6,onKeyDown:syntheticEventStopPagination,onKeyUp:syntheticEventStopPagination},t)),React__default.default.createElement("div",{className:index.classnames({textAreaLength:!0})},r))},SingleTextInput=e=>{var t;const r=React.useRef(null),[g,f]=React.useState(!1),[w,m]=React.useState(!1),{t:v}=reactI18next.useTranslation(),{disabled:s,config:l,result:p,updateText:u,index:T,switchToNextTextarea:E,hasMultiple:C,onNext:h}=e,{maxLength:x}=l,i=p?p[l.key]:"",[y,S]=React.useState((t=i==null?void 0:i.length)!=null?t:0);React.useEffect(()=>{var a;S((a=i==null?void 0:i.length)!=null?a:0)},[i]);const c=(a,d)=>{u&&(u(a,l.key,d),l.required&&m(!a))},b=C&&E,N={id:`textInput-${T}`,ref:r,disabled:s,defaultValue:i,maxLength:x,autoSize:{minRows:2,maxRows:6},onChange:a=>{const d=a.target.value;S(a.target.value.length),c(d,!1)},onFocus:()=>{f(!0)},onBlur:a=>{f(!1),c(a.target.value,!0),l.required&&m(!a.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:a=>{a.ctrlKey&&a.keyCode===EKeyCode.Enter&&(h&&h(),a.preventDefault()),a.keyCode===EKeyCode.Tab&&b&&(a.preventDefault(),a.nativeEvent.stopImmediatePropagation(),E(T)),a.nativeEvent.stopPropagation()}},P=React__default.default.createElement("div",{className:"textAreaFooter"},React__default.default.createElement("div",{className:"hotkeyTip"},b&&React__default.default.createElement("span",null,`[${v("Switch")}]Tab`),React__default.default.createElement("span",null,`[${v("TurnPage")}]Ctrl+Enter`)),React__default.default.createElement("div",{className:"wordCount"},React__default.default.createElement("span",{className:y>=x?"warning":""},y),"/",React__default.default.createElement("span",null,x)));return React.useEffect(()=>{s&&f(!1)},[s]),React__default.default.createElement("div",{className:"textField"},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("span",{className:index.classnames({required:l.required})},l.label),React__default.default.createElement("i",{className:index.classnames({clearText:!0,disabled:s}),onClick:()=>{s||c("",!0)}})),React__default.default.createElement("div",{className:index.classnames({disabled:s,"textarea-outline":!0,"ant-input-focused":g,textareaContainer:!0,focus:g,invalid:w})},React__default.default.createElement(TextareaWithFooter,{footer:P,textareaProps:N})))},TextToolSidebar=({toolInstance:e,imgIndex:t,dispatch:r,triggerEventAfterIndexChanged:g,step:f,stepList:w,basicResultList:m})=>{var v,s,l,p;const[u,T]=React.useState([]),[E,C]=React.useState(0),[h,x]=React.useState(!0),[,i]=React.useState(0),{t:y}=reactI18next.useTranslation(),S=n=>{const o=(n+1)%u.length;c(o)},c=n=>{setTimeout(()=>{const o=document.getElementById(`textInput-${n}`);o&&(C(n),o.focus(),o.select(),o.scrollIntoView({behavior:"smooth",block:"center"}))})};React.useEffect(()=>{e&&e.singleOn("valueUpdated",()=>{i(n=>n+1)})},[e]),React.useEffect(()=>{var n;e&&T(_.cloneDeep((n=e==null?void 0:e.config)==null?void 0:n.configList))},[JSON.stringify((v=e==null?void 0:e.config)==null?void 0:v.configList)]);const b=(p=(l=(s=e==null?void 0:e.textList)==null?void 0:s[0])==null?void 0:l.value)!=null?p:{},N=(n,o,k=!1)=>{var L,q;(q=e==null?void 0:e.updateTextValue)==null||q.call(e,o,n,k,(L=e==null?void 0:e.textList)==null?void 0:L[0])};React.useEffect(()=>{t>-1&&g&&c(0)},[t]);const P=()=>{r(actionCreators.PageForward(!0))},a=n=>{x(n),e==null||e.toggleShowText(n)},d=ConfigUtils.ConfigUtils.getStepConfig(w,f),F=d.dataSourceStep>0&&m.length===0,O=d.tool===EVideoToolName.VideoTextTool;return e&&React__default.default.createElement("div",{className:"textToolOperationMenu"},u.map((n,o)=>React__default.default.createElement(SingleTextInput,{config:n,key:n.key,index:o,result:b,updateText:N,switchToNextTextarea:S,hasMultiple:u.length>1,focus:E===o,onNext:P,disabled:F})),O&&React__default.default.createElement("div",{className:"textToolSwitchItem"},y("toggleShowText"),React__default.default.createElement(es.Switch,{style:{alignSelf:"center"},checked:h,onChange:n=>{a(n)}})))};function mapStateToProps(e){return{toolInstance:e.annotation.toolInstance,imgIndex:e.annotation.imgIndex,step:e.annotation.step,basicResultList:e.annotation.basicResultList,stepList:e.annotation.stepList,triggerEventAfterIndexChanged:e.annotation.triggerEventAfterIndexChanged}}var TextToolSidebar$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(TextToolSidebar);exports.SingleTextInput=SingleTextInput,exports.TextareaWithFooter=TextareaWithFooter,exports.default=TextToolSidebar$1;
@@ -1 +1 @@
1
- import s from"react";import{connect as x}from"react-redux";import{LabelBeeContext as y,useDispatch as I}from"../../store/ctx.js";import{ANNOTATION_ACTIONS as _}from"../../store/Actions.js";import{PageBackward as c,PageForward as d,PageJump as m}from"../../store/annotation/actionCreators.js";import{TagToolInstanceAdaptor as b}from"./videoTagTool/TagToolInstanceAdaptor.js";import{cTool as S}from"@labelbee/lb-annotation";import V from"./videoClipTool/index.js";import A from"../../utils/StepUtils.js";import{jsonParser as E}from"../../utils/index.js";import{VideoTextTool as C}from"./videoTextTool/index.js";var N=Object.defineProperty,h=Object.defineProperties,L=Object.getOwnPropertyDescriptors,v=Object.getOwnPropertySymbols,B=Object.prototype.hasOwnProperty,F=Object.prototype.propertyIsEnumerable,O=(e,o,t)=>o in e?N(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,u=(e,o)=>{for(var t in o||(o={}))B.call(o,t)&&O(e,t,o[t]);if(v)for(var t of v(o))F.call(o,t)&&O(e,t,o[t]);return e},f=(e,o)=>h(e,L(o));const{EVideoToolName:g}=S,J=e=>{const{stepInfo:o}=e,t=o==null?void 0:o.tool,r=I(),a=n=>{r({type:_.SET_TOOL,payload:{instance:n}})},i=()=>{r({type:_.SET_TOOL,payload:{instance:void 0}})};return t===g.VideoClipTool?s.createElement(V,f(u({},e),{pageBackward:()=>r(c()),pageForward:()=>r(d()),pageJump:n=>r(m(~~n)),onMounted:a,onUnmounted:i})):t===g.VideoTextTool?s.createElement(C,f(u({},e),{pageBackward:()=>r(c()),pageForward:()=>r(d()),pageJump:n=>r(m(~~n)),onMounted:a,onUnmounted:i})):t===g.VideoTagTool?s.createElement(b,f(u({},e),{pageBackward:()=>r(c()),pageForward:()=>r(d()),pageJump:n=>r(m(~~n)),onMounted:a,onUnmounted:i})):null},D=e=>{var o,t,r,a,i;const{annotation:{imgList:n,imgIndex:T,step:P,stepList:w,loading:j}}=e,p=A.getCurrentStepInfo((o=e.annotation)==null?void 0:o.step,(t=e.annotation)==null?void 0:t.stepList),l=(r=n[T])!=null?r:{};return{imgIndex:T,imgList:n,stepInfo:p,config:E(p==null?void 0:p.config),step:P,stepList:w,path:(i=(a=l==null?void 0:l.path)!=null?a:l==null?void 0:l.url)!=null?i:"",loading:j}};var U=x(D,null,null,{context:y})(J);export{U as default};
1
+ import u from"react";import{connect as y}from"react-redux";import{LabelBeeContext as I,useDispatch as b}from"../../store/ctx.js";import{ANNOTATION_ACTIONS as _}from"../../store/Actions.js";import{PageJump as m,PageBackward as v,PageForward as O}from"../../store/annotation/actionCreators.js";import{TagToolInstanceAdaptor as S}from"./videoTagTool/TagToolInstanceAdaptor.js";import{cTool as V}from"@labelbee/lb-annotation";import A from"./videoClipTool/index.js";import E from"../../utils/StepUtils.js";import{jsonParser as C}from"../../utils/index.js";import{VideoTextTool as N}from"./videoTextTool/index.js";var h=Object.defineProperty,L=Object.defineProperties,B=Object.getOwnPropertyDescriptors,P=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,D=Object.prototype.propertyIsEnumerable,j=(e,o,t)=>o in e?h(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,f=(e,o)=>{for(var t in o||(o={}))J.call(o,t)&&j(e,t,o[t]);if(P)for(var t of P(o))D.call(o,t)&&j(e,t,o[t]);return e},T=(e,o)=>L(e,B(o));const{EVideoToolName:g}=V,U=e=>{const{stepInfo:o,skipBeforePageTurning:t}=e,a=o==null?void 0:o.tool,r=b(),i=n=>{r({type:_.SET_TOOL,payload:{instance:n}})},l=()=>{r({type:_.SET_TOOL,payload:{instance:void 0}})},p=()=>{if(t){t(()=>r(v()));return}r(v())},s=()=>{if(t){t(()=>r(O()));return}r(O())};return a===g.VideoClipTool?u.createElement(A,T(f({},e),{pageBackward:p,pageForward:s,pageJump:n=>r(m(~~n-1)),onMounted:i,onUnmounted:l})):a===g.VideoTextTool?u.createElement(N,T(f({},e),{pageBackward:p,pageForward:s,pageJump:n=>r(m(~~n-1)),onMounted:i,onUnmounted:l})):a===g.VideoTagTool?u.createElement(S,T(f({},e),{pageBackward:p,pageForward:s,pageJump:n=>r(m(~~n-1)),onMounted:i,onUnmounted:l})):null},k=e=>{var o,t,a,r,i;const{annotation:{imgList:l,imgIndex:p,step:s,stepList:n,loading:x,skipBeforePageTurning:w}}=e,d=E.getCurrentStepInfo((o=e.annotation)==null?void 0:o.step,(t=e.annotation)==null?void 0:t.stepList),c=(a=l[p])!=null?a:{};return{imgIndex:p,imgList:l,stepInfo:d,config:C(d==null?void 0:d.config),step:s,stepList:n,path:(i=(r=c==null?void 0:c.path)!=null?r:c==null?void 0:c.url)!=null?i:"",loading:x,skipBeforePageTurning:w}};var F=y(k,null,null,{context:I})(U);export{F as default};
@@ -1 +1 @@
1
- import e from"react";import t from"./index.module.scss.js";import s from"../../../../../assets/annotation/video/icon_videoCut.svg.js";import n from"../../../../../assets/annotation/video/icon_timePoint.svg.js";const i=({toggleClipStatus:o,addTime:a})=>e.createElement("div",{className:t.clipToolbar},e.createElement("span",{className:t.buttonWrapper},e.createElement("i",{className:t.cutButton,onClick:()=>{o==null||o()},style:{backgroundImage:s}}),"\u622A\u53D6"),e.createElement("span",{className:t.buttonWrapper},e.createElement("i",{className:t.localButton,onClick:a,style:{backgroundImage:n}}),"\u6807\u65F6\u95F4\u70B9"));export{i as default};
1
+ import e from"react";import t from"./index.module.scss.js";import a from"../../../../../assets/annotation/video/icon_videoCut.svg.js";import n from"../../../../../assets/annotation/video/icon_timePoint.svg.js";const i=({toggleClipStatus:o,addTime:s})=>e.createElement("div",{className:t.clipToolbar},e.createElement("span",{className:t.buttonWrapper},e.createElement("img",{src:a,className:t.cutButton,onClick:()=>{o==null||o()}}),"\u622A\u53D6"),e.createElement("span",{className:t.buttonWrapper},e.createElement("img",{src:n,className:t.localButton,onClick:s}),"\u6807\u65F6\u95F4\u70B9"));export{i as default};
@@ -1 +1 @@
1
- import{MathUtils as I,CommonToolUtils as V,uuid as w,AttributeUtils as k}from"@labelbee/lb-annotation";import{jsonParser as C}from"../../../utils/index.js";import{precisionAdd as D,precisionMinus as j,isImageValue as B}from"../../../utils/audio.js";import{message as m}from"antd";import y from"lodash";import v from"react";import A from"./index.module.scss.js";import{VideoClipToolContextProvider as M}from"./VideoClipToolContext.js";import{EClipStatus as u,ETimeSliceType as x,PER_SLICE_CHANGE as b,SLICE_MIN_TIME as T}from"./constant.js";import{VideoPlayer as N}from"../../videoPlayer/index.js";import U from"./components/videoTimeSlicesOverVideo/index.js";import J from"../../../assets/annotation/video/icon_videoCutting.svg.js";import{decimalReserved as F}from"../../videoPlayer/utils.js";var $=Object.defineProperty,z=Object.defineProperties,G=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,H=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable,O=(c,r,t)=>r in c?$(c,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):c[r]=t,q=(c,r)=>{for(var t in r||(r={}))H.call(r,t)&&O(c,t,r[t]);if(L)for(var t of L(r))W.call(r,t)&&O(c,t,r[t]);return c},K=(c,r)=>z(c,G(r));class Q extends v.Component{constructor(r){super(r);this.fns=new Map,this.throttledUpdateTime=y.throttle(t=>{this.videoPlayer.currentTime=t},100,{trailing:!0}),this.stepInfo=()=>this.props.stepInfo,this.emitEvent=t=>{const e=this.fns.get(t);e&&e.forEach(i=>{i&&i()})},this.setValid=t=>{this.setState({valid:t}),t===!1&&(this.clearResult(),this.updateSidebar())},this.updateSidebar=()=>{this.emitEvent("changeClipSidebar")},this.exportData=()=>{var t,e;const i=(e=(t=this.videoRef)==null?void 0:t.duration)!=null?e:0;return[this.state.result.filter(s=>s.end!==null),{valid:this.state.valid,duration:i}]},this.updateSelectedSliceTimeStartByPer=t=>{var e,i;if(this.state.clipStatus===u.Clipping){m.info("\u622A\u53D6\u4E2D\u4E0D\u652F\u6301\u8C03\u6574\u5F00\u59CB\u65F6\u95F4");return}if(this.selectedSliceIndex>-1){const s=(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0,{end:a,start:o,type:l}=this.state.result[this.selectedSliceIndex],n=I.withinRange(D(o,t),[0,j(l===x.Time?s:a,b)]);this.updateSelectedSliceTimeProperty(n,"start")}},this.updateSelectedSliceTimeEndByPer=t=>{var e,i;if(this.state.clipStatus===u.Clipping){m.info("\u622A\u53D6\u4E2D\u4E0D\u652F\u6301\u8C03\u6574\u7ED3\u675F\u65F6\u95F4");return}if(this.selectedSliceIndex>-1){const s=this.state.result[this.selectedSliceIndex],a=(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0;if(s.type===x.Time){m.info("\u65F6\u95F4\u70B9\u4EC5\u652F\u6301\u8C03\u6574\u5F00\u59CB\u65F6\u95F4");return}const{end:o,start:l}=s,n=I.withinRange(D(o,t),[D(l,b),a]);this.updateSelectedSliceTimeProperty(n,"end")}},this.updateSelectedSliceTimeProperty=(t,e)=>{if(this.selectedSliceIndex>-1){const{result:i}=this.state;i[this.selectedSliceIndex][e]=t,this.setState({result:y.cloneDeep(i)}),this.updateSidebar()}},this.keyDownEvents=t=>{if(!V.hotkeyFilter(t))return;const e=t.target;switch(e&&(e==null?void 0:e.tag)==="INPUT"&&(e==null?void 0:e.type)==="radio"&&t.preventDefault(),t.key.toLocaleLowerCase()){case"x":this.toggleClipStatus();break;case"e":this.addTime();break;case"escape":this.cancelClipped();break;case"-":this.updateSelectedSliceTimeStartByPer(-b);break;case"=":this.updateSelectedSliceTimeStartByPer(b);break;case"[":this.updateSelectedSliceTimeEndByPer(-b);break;case"]":this.updateSelectedSliceTimeEndByPer(b);break}},this.videoLoaded=t=>{var e;const i=this.resultJSON,s=i&&!["","{}"].includes(i),a=t?parseFloat(t.toFixed(2)):0,o={loading:!1};((e=C(i))==null?void 0:e.duration)||Object.assign(o,{result:JSON.stringify(K(q({},C(i)),{duration:a}))}),s||Object.assign(o,{result:JSON.stringify({width:0,height:0,rotate:0,valid:!0,duration:a})}),this.setState({loading:!1})},this.setVideoError=(t,e,i)=>{if(t){const{clipStatus:s}=this.state;s===u.Clipping&&this.toggleClipStatus(i)}this.setState({videoError:t,loading:!1})},this.clearResult=()=>{this.setState({result:[],selectedID:"",textValue:""}),this.updateSidebar()},this.cancelClipped=()=>{const{result:t,selectedID:e,clipStatus:i}=this.state;if(i!==u.Clipping)return;const s=t.findIndex(a=>a.id===e);s>-1&&(t.splice(s,1),this.setState({result:t,selectedID:"",clipStatus:u.Stop}),this.updateSidebar())},this.toggleClipStatus=t=>{var e,i,s;if(this.disabled)return;const{clipStatus:a,selectedAttribute:o}=this.state,l=a!==u.Clipping;let n=l?u.Clipping:u.Stop,{result:d,selectedID:p,textValue:S}=this.state;const h=y.cloneDeep(d),f=t||((e=this.videoPlayer)==null?void 0:e.currentTime),E=(i=this.videoPlayer)==null?void 0:i.duration;if(E===void 0||f===void 0)return;const R=F(f,2);if(l){const g=w();p=g,h.push({start:R,end:null,attribute:o,textAttribute:this.defaultTextAttribute,duration:E,id:g,type:x.Period}),S=this.defaultTextAttribute}else{const g=h.findIndex(_=>_.id===p),P=h[g];P&&(f-P.start<T?(h.splice(g,1),m.info(`\u622A\u53D6\u7247\u6BB5\u4E0D\u80FD\u77ED\u4E8E${T}s`),n=u.Stop,p="",S=""):(h[g].end=F(f,2),(s=this.videoPlayer)==null||s.pause(),m.success(`\u5DF2\u622A\u53D6\u7247\u6BB5${d.length}`)))}this.setState({clipStatus:n,result:h,selectedID:p,textValue:S}),this.updateSidebar()},this.addTime=()=>{var t,e,i,s;if(this.disabled)return;const{result:a,selectedAttribute:o,selectedID:l}=this.state,n=w(),d=y.cloneDeep(a),p=((t=this.videoPlayer)==null?void 0:t.currentTime)||0;d.push({start:p,end:p,attribute:o,textAttribute:this.defaultTextAttribute,id:n,type:x.Time,duration:(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0});const S={result:d,selectedID:n,textValue:this.defaultTextAttribute},h=d.find(f=>f.id===l);this.isClipping&&h?(delete S.selectedID,delete S.textValue,m.success(`\u5DF2\u622A\u53D6\u65F6\u95F4\u70B9${d.length-1}`)):(s=this.videoPlayer)==null||s.pause(),this.setState(S),this.updateSidebar()},this.contextToCancel=t=>{this.state.clipStatus===u.Stop&&(t.preventDefault(),this.setState({selectedID:""}),this.updateSidebar())},this.onTrackResize=(t,e,i)=>{var s,a;const{result:o}=this.state,l=o.find(n=>n.id===t);if(l){const n=l.duration,d=e==="left",p=d?"start":"end",S=d?-n*i:n*i,h=d?[0,Math.max(((s=l.end)!=null?s:0)-T,0)]:[l.start+T,n],f=I.withinRange(S+((a=l==null?void 0:l[p])!=null?a:0),h);l[p]=f,this.throttledUpdateTime(f)}this.setState({result:[...o]}),this.updateSidebar()},this.renderMediaContent=()=>{const{pageForward:t,pageJump:e,pageBackward:i}=this.props,{result:s,currentTime:a,videoError:o,valid:l}=this.state;return v.createElement("div",{className:A.clipContainer},v.createElement(N,{imgIndex:this.props.imgIndex,imgList:this.props.imgList,pageBackward:i,pageForward:t,pageJump:e,valid:l,setVideoRef:n=>{this.videoPlayer=n},showVideoTrack:!o,onTrackResize:this.onTrackResize,drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer,dataLoaded:this.videoLoaded}),v.createElement(U,{result:s,currentTime:a,attributeList:this.props.config.attributeList,extraStyle:{top:this.props.drawLayerSlot?40:0}}),this.isClipping&&v.createElement("i",{className:A.clipping,style:{backgroundImage:J}}))},this.onSelectedTimeSlice=t=>{var e;this.isClipping||(this.setState({selectedID:t.id,selectedAttribute:t.attribute,textValue:t.textAttribute}),this.updateSidebar(),(e=this.videoPlayer)==null||e.pause(),this.videoPlayer.currentTime=t.start)},this.removeTimeSlice=t=>{const{result:e}=this.state,i=this.state.selectedID===t.id?"":this.state.selectedID,s=e.findIndex(a=>a.id===t.id);s>-1&&(e.splice(s,1),this.setState({result:[...e],selectedID:i}),this.updateSidebar())},this.setResult=(t=!0,e=this.props)=>{try{const{imgIndex:i,imgList:s}=e;if(!s[i])return;const o=C(s[i].result)[`step_${this.stepInfo().step}`],l=(o==null?void 0:o.result)||[],n=B(s[i].result||"[]");this.setState({result:l,loading:t,selectedID:"",textValue:"",selectedAttribute:"",clipStatus:u.Stop,valid:n},()=>{this.updateSidebar(),n||m.info("\u65E0\u6548\u89C6\u9891\uFF0C\u8BF7\u8DF3\u8FC7")})}catch(i){console.error("\u6570\u636E\u89E3\u6790\u5931\u8D25"),this.setState({result:[],loading:!1,selectedID:"",textValue:"",selectedAttribute:"",valid:!0},()=>{this.updateSidebar()})}},this.setDefaultAttribute=t=>{const{result:e,selectedID:i}=this.state,s=e.find(a=>a.id===i);s&&i&&(s.attribute=t),this.setState({selectedAttribute:t,result:[...e]}),this.updateSidebar()},this.setTextAttribute=t=>{const{result:e,selectedID:i}=this.state;if(this.setState({textValue:t}),i){const s=e.find(a=>a.id===i);s&&(s.textAttribute=t,this.setState({result:[...e]}),this.updateSidebar())}},this.state={result:[],selectedAttribute:"",textValue:"",clipStatus:u.Stop,selectedID:"",loading:!1,videoError:!1,remainingTime:0,currentTime:0,configLoading:!1,valid:!0}}get videoUrl(){var r;const{imgIndex:t,imgList:e}=this.props;return((r=e[t])==null?void 0:r.url)||""}get isClipping(){return this.state.clipStatus===u.Clipping}get resultJSON(){const{imgIndex:r,imgList:t}=this.props;return t.length===0||!t[r]?"[]":t[r].result}get disabled(){return!this.state.valid||this.state.videoError}get loading(){return this.state.loading||this.state.configLoading}get defaultTextAttribute(){return k.getTextAttribute(this.state.result,this.props.config.textCheckType)}get defaultAttribute(){return this.state.selectedAttribute}get selectedSliceIndex(){return this.state.result.findIndex(r=>r.id===this.state.selectedID)}get exportContext(){return{selectedID:this.state.selectedID,result:this.state.result,clipStatus:this.state.clipStatus,videoPlayer:this.videoPlayer,attributeList:this.props.config.attributeList,onSelectedTimeSlice:this.onSelectedTimeSlice,removeTimeSlice:this.removeTimeSlice,updateSelectedSliceTimeProperty:this.updateSelectedSliceTimeProperty}}get valid(){return this.state.valid}componentDidMount(){this.setState({loading:!1}),this.setResult(!1),this.props.onMounted(this),window.addEventListener("keydown",this.keyDownEvents)}componentWillUnmount(){this.props.onUnmounted(),window.removeEventListener("keydown",this.keyDownEvents)}shouldComponentUpdate(r,t){const e=r.imgIndex-this.props.imgIndex,i=r.step-this.props.step;return(e!==0||i!==0)&&(this.setResult(!0,r),i!==0&&this.setState({loading:!1})),!0}singleOn(r,t){this.fns.set(r,[t])}on(r,t){this.singleOn(r,t)}unbindAll(r){this.fns.delete(r)}render(){const{selectedID:r,result:t,clipStatus:e,selectedAttribute:i}=this.state;return v.createElement(M,{value:{videoPlayer:this.videoPlayer,result:t,selectedID:r,attributeList:this.props.config.attributeList,clipStatus:e,selectedAttribute:i,contextToCancel:this.contextToCancel}},this.renderMediaContent())}}export{Q as default};
1
+ import{MathUtils as C,CommonToolUtils as V,uuid as w,AttributeUtils as k}from"@labelbee/lb-annotation";import{jsonParser as I}from"../../../utils/index.js";import{precisionAdd as D,precisionMinus as j,isImageValue as B}from"../../../utils/audio.js";import{message as f}from"antd";import y from"lodash";import v from"react";import A from"./index.module.scss.js";import{VideoClipToolContextProvider as M}from"./VideoClipToolContext.js";import{EClipStatus as u,ETimeSliceType as T,PER_SLICE_CHANGE as b,SLICE_MIN_TIME as x}from"./constant.js";import{VideoPlayer as N}from"../../videoPlayer/index.js";import U from"./components/videoTimeSlicesOverVideo/index.js";import J from"../../../assets/annotation/video/icon_videoCutting.svg.js";import{decimalReserved as F}from"../../videoPlayer/utils.js";var $=Object.defineProperty,z=Object.defineProperties,G=Object.getOwnPropertyDescriptors,L=Object.getOwnPropertySymbols,H=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable,O=(c,r,t)=>r in c?$(c,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):c[r]=t,q=(c,r)=>{for(var t in r||(r={}))H.call(r,t)&&O(c,t,r[t]);if(L)for(var t of L(r))W.call(r,t)&&O(c,t,r[t]);return c},K=(c,r)=>z(c,G(r));class Q extends v.Component{constructor(r){super(r);this.fns=new Map,this.throttledUpdateTime=y.throttle(t=>{this.videoPlayer.currentTime=t},100,{trailing:!0}),this.stepInfo=()=>this.props.stepInfo,this.emitEvent=t=>{const e=this.fns.get(t);e&&e.forEach(i=>{i&&i()})},this.setValid=t=>{this.setState({valid:t}),t===!1&&(this.clearResult(),this.updateSidebar())},this.updateSidebar=()=>{this.emitEvent("changeClipSidebar")},this.exportData=()=>{var t,e;const i=(e=(t=this.videoRef)==null?void 0:t.duration)!=null?e:0;return[this.state.result.filter(s=>s.end!==null),{valid:this.state.valid,duration:i}]},this.updateSelectedSliceTimeStartByPer=t=>{var e,i;if(this.state.clipStatus===u.Clipping){f.info("\u622A\u53D6\u4E2D\u4E0D\u652F\u6301\u8C03\u6574\u5F00\u59CB\u65F6\u95F4");return}if(this.selectedSliceIndex>-1){const s=(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0,{end:a,start:o,type:l}=this.state.result[this.selectedSliceIndex],n=C.withinRange(D(o,t),[0,j(l===T.Time?s:a,b)]);this.updateSelectedSliceTimeProperty(n,"start")}},this.updateSelectedSliceTimeEndByPer=t=>{var e,i;if(this.state.clipStatus===u.Clipping){f.info("\u622A\u53D6\u4E2D\u4E0D\u652F\u6301\u8C03\u6574\u7ED3\u675F\u65F6\u95F4");return}if(this.selectedSliceIndex>-1){const s=this.state.result[this.selectedSliceIndex],a=(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0;if(s.type===T.Time){f.info("\u65F6\u95F4\u70B9\u4EC5\u652F\u6301\u8C03\u6574\u5F00\u59CB\u65F6\u95F4");return}const{end:o,start:l}=s,n=C.withinRange(D(o,t),[D(l,b),a]);this.updateSelectedSliceTimeProperty(n,"end")}},this.updateSelectedSliceTimeProperty=(t,e)=>{if(this.selectedSliceIndex>-1){const{result:i}=this.state;i[this.selectedSliceIndex][e]=t,this.setState({result:y.cloneDeep(i)}),this.updateSidebar()}},this.keyDownEvents=t=>{if(!V.hotkeyFilter(t))return;const e=t.target;switch(e&&(e==null?void 0:e.tag)==="INPUT"&&(e==null?void 0:e.type)==="radio"&&t.preventDefault(),t.key.toLocaleLowerCase()){case"x":this.toggleClipStatus();break;case"e":this.addTime();break;case"escape":this.cancelClipped();break;case"-":this.updateSelectedSliceTimeStartByPer(-b);break;case"=":this.updateSelectedSliceTimeStartByPer(b);break;case"[":this.updateSelectedSliceTimeEndByPer(-b);break;case"]":this.updateSelectedSliceTimeEndByPer(b);break}},this.videoLoaded=t=>{var e;const i=this.resultJSON,s=i&&!["","{}"].includes(i),a=t?parseFloat(t.toFixed(2)):0,o={loading:!1};((e=I(i))==null?void 0:e.duration)||Object.assign(o,{result:JSON.stringify(K(q({},I(i)),{duration:a}))}),s||Object.assign(o,{result:JSON.stringify({width:0,height:0,rotate:0,valid:!0,duration:a})}),this.setState({loading:!1})},this.setVideoError=(t,e,i)=>{if(t){const{clipStatus:s}=this.state;s===u.Clipping&&this.toggleClipStatus(i)}this.setState({videoError:t,loading:!1})},this.clearResult=()=>{this.setState({result:[],selectedID:"",textValue:""}),this.updateSidebar()},this.cancelClipped=()=>{const{result:t,selectedID:e,clipStatus:i}=this.state;if(i!==u.Clipping)return;const s=t.findIndex(a=>a.id===e);s>-1&&(t.splice(s,1),this.setState({result:t,selectedID:"",clipStatus:u.Stop}),this.updateSidebar())},this.toggleClipStatus=t=>{var e,i,s;if(this.disabled)return;const{clipStatus:a,selectedAttribute:o}=this.state,l=a!==u.Clipping;let n=l?u.Clipping:u.Stop,{result:d,selectedID:p,textValue:S}=this.state;const h=y.cloneDeep(d),m=t||((e=this.videoPlayer)==null?void 0:e.currentTime),E=(i=this.videoPlayer)==null?void 0:i.duration;if(E===void 0||m===void 0)return;const R=F(m,2);if(l){const g=w();p=g,h.push({start:R,end:null,attribute:o,textAttribute:this.defaultTextAttribute,duration:E,id:g,type:T.Period}),S=this.defaultTextAttribute}else{const g=h.findIndex(_=>_.id===p),P=h[g];P&&(m-P.start<x?(h.splice(g,1),f.info(`\u622A\u53D6\u7247\u6BB5\u4E0D\u80FD\u77ED\u4E8E${x}s`),n=u.Stop,p="",S=""):(h[g].end=F(m,2),(s=this.videoPlayer)==null||s.pause(),f.success(`\u5DF2\u622A\u53D6\u7247\u6BB5${d.length}`)))}this.setState({clipStatus:n,result:h,selectedID:p,textValue:S}),this.updateSidebar()},this.addTime=()=>{var t,e,i,s;if(this.disabled)return;const{result:a,selectedAttribute:o,selectedID:l}=this.state,n=w(),d=y.cloneDeep(a),p=((t=this.videoPlayer)==null?void 0:t.currentTime)||0;d.push({start:p,end:p,attribute:o,textAttribute:this.defaultTextAttribute,id:n,type:T.Time,duration:(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0});const S={result:d,selectedID:n,textValue:this.defaultTextAttribute},h=d.find(m=>m.id===l);this.isClipping&&h?(delete S.selectedID,delete S.textValue,f.success(`\u5DF2\u622A\u53D6\u65F6\u95F4\u70B9${d.length-1}`)):(s=this.videoPlayer)==null||s.pause(),this.setState(S),this.updateSidebar()},this.contextToCancel=t=>{this.state.clipStatus===u.Stop&&(t.preventDefault(),this.setState({selectedID:""}),this.updateSidebar())},this.onTrackResize=(t,e,i)=>{var s,a;const{result:o}=this.state,l=o.find(n=>n.id===t);if(l){const n=l.duration,d=e==="left",p=d?"start":"end",S=d?-n*i:n*i,h=d?[0,Math.max(((s=l.end)!=null?s:0)-x,0)]:[l.start+x,n],m=C.withinRange(S+((a=l==null?void 0:l[p])!=null?a:0),h);l[p]=m,this.throttledUpdateTime(m)}this.setState({result:[...o]}),this.updateSidebar()},this.renderMediaContent=()=>{const{pageForward:t,pageJump:e,pageBackward:i}=this.props,{result:s,currentTime:a,videoError:o,valid:l}=this.state;return v.createElement("div",{className:A.clipContainer},v.createElement(N,{imgIndex:this.props.imgIndex,imgList:this.props.imgList,pageBackward:i,pageForward:t,pageJump:e,valid:l,setVideoRef:n=>{this.videoPlayer=n},showVideoTrack:!o,onTrackResize:this.onTrackResize,drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer,dataLoaded:this.videoLoaded,toggleClipStatus:this.toggleClipStatus,addTime:this.addTime}),v.createElement(U,{result:s,currentTime:a,attributeList:this.props.config.attributeList,extraStyle:{top:this.props.drawLayerSlot?40:0}}),this.isClipping&&v.createElement("i",{className:A.clipping,style:{backgroundImage:J}}))},this.onSelectedTimeSlice=t=>{var e;this.isClipping||(this.setState({selectedID:t.id,selectedAttribute:t.attribute,textValue:t.textAttribute}),this.updateSidebar(),(e=this.videoPlayer)==null||e.pause(),this.videoPlayer.currentTime=t.start)},this.removeTimeSlice=t=>{const{result:e}=this.state,i=this.state.selectedID===t.id?"":this.state.selectedID,s=e.findIndex(a=>a.id===t.id);s>-1&&(e.splice(s,1),this.setState({result:[...e],selectedID:i}),this.updateSidebar())},this.setResult=(t=!0,e=this.props)=>{try{const{imgIndex:i,imgList:s}=e;if(!s[i])return;const o=I(s[i].result)[`step_${this.stepInfo().step}`],l=(o==null?void 0:o.result)||[],n=B(s[i].result||"[]");this.setState({result:l,loading:t,selectedID:"",textValue:"",selectedAttribute:"",clipStatus:u.Stop,valid:n},()=>{this.updateSidebar(),n||f.info("\u65E0\u6548\u89C6\u9891\uFF0C\u8BF7\u8DF3\u8FC7")})}catch(i){console.error("\u6570\u636E\u89E3\u6790\u5931\u8D25"),this.setState({result:[],loading:!1,selectedID:"",textValue:"",selectedAttribute:"",valid:!0},()=>{this.updateSidebar()})}},this.setDefaultAttribute=t=>{const{result:e,selectedID:i}=this.state,s=e.find(a=>a.id===i);s&&i&&(s.attribute=t),this.setState({selectedAttribute:t,result:[...e]}),this.updateSidebar()},this.setTextAttribute=t=>{const{result:e,selectedID:i}=this.state;if(this.setState({textValue:t}),i){const s=e.find(a=>a.id===i);s&&(s.textAttribute=t,this.setState({result:[...e]}),this.updateSidebar())}},this.state={result:[],selectedAttribute:"",textValue:"",clipStatus:u.Stop,selectedID:"",loading:!1,videoError:!1,remainingTime:0,currentTime:0,configLoading:!1,valid:!0}}get videoUrl(){var r;const{imgIndex:t,imgList:e}=this.props;return((r=e[t])==null?void 0:r.url)||""}get isClipping(){return this.state.clipStatus===u.Clipping}get resultJSON(){const{imgIndex:r,imgList:t}=this.props;return t.length===0||!t[r]?"[]":t[r].result}get disabled(){return!this.state.valid||this.state.videoError}get loading(){return this.state.loading||this.state.configLoading}get defaultTextAttribute(){return k.getTextAttribute(this.state.result,this.props.config.textCheckType)}get defaultAttribute(){return this.state.selectedAttribute}get selectedSliceIndex(){return this.state.result.findIndex(r=>r.id===this.state.selectedID)}get exportContext(){return{selectedID:this.state.selectedID,result:this.state.result,clipStatus:this.state.clipStatus,videoPlayer:this.videoPlayer,attributeList:this.props.config.attributeList,onSelectedTimeSlice:this.onSelectedTimeSlice,removeTimeSlice:this.removeTimeSlice,updateSelectedSliceTimeProperty:this.updateSelectedSliceTimeProperty}}get valid(){return this.state.valid}componentDidMount(){this.setState({loading:!1}),this.setResult(!1),this.props.onMounted(this),window.addEventListener("keydown",this.keyDownEvents)}componentWillUnmount(){this.props.onUnmounted(),window.removeEventListener("keydown",this.keyDownEvents)}shouldComponentUpdate(r,t){const e=r.imgIndex-this.props.imgIndex,i=r.step-this.props.step;return(e!==0||i!==0)&&(this.setResult(!0,r),i!==0&&this.setState({loading:!1})),!0}singleOn(r,t){this.fns.set(r,[t])}on(r,t){this.singleOn(r,t)}unbindAll(r){this.fns.delete(r)}render(){const{selectedID:r,result:t,clipStatus:e,selectedAttribute:i}=this.state;return v.createElement(M,{value:{videoPlayer:this.videoPlayer,result:t,selectedID:r,attributeList:this.props.config.attributeList,clipStatus:e,selectedAttribute:i,contextToCancel:this.contextToCancel}},this.renderMediaContent())}}export{Q as default};
@@ -1 +1 @@
1
- import h from"react";import{CommonToolUtils as p,uuid as f}from"@labelbee/lb-annotation";import{jsonParser as c}from"../../../utils/index.js";import{VideoPlayer as y}from"../../videoPlayer/index.js";import{VideoTagLayer as L}from"../../videoPlayer/VideoTagLayer.js";import g from"lodash";import{getKeyCodeNumber as b}from"../../videoPlayer/utils.js";class R extends h.Component{constructor(s){super(s);this.fns={},this.labelSelectedList=[],this.clearResult=(t=!0,e)=>{const i=e?this.state.tagResult.map(l=>((l==null?void 0:l.result[e])&&delete l.result[e],l)):[];this.setState({tagResult:i},()=>this.emitEvent("render"))},this.exportData=()=>{var t,e,i,l,r,o,n;const a=(e=(t=this.videoPlayer)==null?void 0:t.duration)!=null?e:0,d=(i=this.videoPlayer)==null?void 0:i.getVideoPlaybackQuality(),u=d==null?void 0:d.totalVideoFrames,v=(r=(l=this.videoPlayer)==null?void 0:l.videoWidth)!=null?r:0,m=(n=(o=this.videoPlayer)==null?void 0:o.videoHeight)!=null?n:0;return[this.state.tagResult,{valid:this.state.valid,duration:a,frames:u,videoWidth:v,videoHeight:m}]},this.emitEvent=t=>{this.fns[t]&&this.fns[t]()},this.combineResult=(t,e={})=>{var i,l;const{isMulti:r}=t,{key:o,value:n}=t.value;if(r){let a=(l=(i=e[o])==null?void 0:i.split(";"))!=null?l:[];a.includes(n)?a=a.filter(u=>u!==n):a.push(n);const d=new Set(a);return e[o]=Array.from(d).join(";"),g.pickBy(e,u=>u)}return e[o]=e[o]===n?void 0:n,g.pickBy(e,a=>a)},this.setResult=t=>{this.setState({tagResult:t}),this.fns.render&&this.fns.render()},this.setLabel=(t,e)=>{this.setLabelBySelectedList(t,e)},this.keydown=t=>{const e=b(t.keyCode);if(e){const i=e-1;if(this.config.inputList.length===1){this.labelSelectedList=[0,i],this.setLabel(0,i),setTimeout(()=>{this.labelSelectedList=[],this.emitEvent("render")},500);return}this.labelSelectedList.length===1?(this.labelSelectedList=[this.labelSelectedList[0],i],this.setLabel(this.labelSelectedList[0],i),setTimeout(()=>{this.labelSelectedList=[],this.emitEvent("render")},500)):(this.labelSelectedList=[i],this.emitEvent("expend"))}},this.setValid=t=>{this.setState({valid:t}),t===!1&&this.setState({tagResult:[]}),this.emitEvent("render")},this.setResultFromImgList=t=>{var e;const{imgList:i,imgIndex:l,step:r}=t;if(!i[l])return;const o=c(i[l].result),n=o[`step_${r}`];this.setState({tagResult:(e=n==null?void 0:n.result)!=null?e:[],valid:(o==null?void 0:o.valid)===void 0?!0:o.valid})},this.state={tagResult:[],labelSelectedList:[],valid:!0}}get config(){var s;return c((s=this.props.stepInfo)==null?void 0:s.config)}get history(){return{initRecord:()=>{},pushHistory:()=>{}}}get currentTagResult(){var s;return(s=this.state.tagResult[0])!=null?s:{}}get valid(){return this.state.valid}singleOn(s,t){this.fns[s]=t}on(s,t){this.singleOn(s,t)}unbindAll(s){delete this.fns[s]}getTagResultByCode(s,t){var e,i,l;try{const r=(i=(e=this.config)==null?void 0:e.inputList)!=null?i:[],o=r.length>1,n=t!==void 0?s:0,a=t!==void 0?t:s,d=o?r[n]:r[0],u=((l=d.subSelected)!=null?l:[])[a];if(d&&u)return{value:{key:d.value,value:u.value},isMulti:d.isMulti}}catch(r){return}}setLabelBySelectedList(s,t){var e,i,l,r;const o=this.getTagResultByCode(s,t);if(o){const n=this.combineResult(o,(i=(e=this.state.tagResult[0])==null?void 0:e.result)!=null?i:{}),a=[{sourceID:p.getSourceID(),id:(r=(l=this.currentTagResult)==null?void 0:l.id)!=null?r:f(8,62),result:n}];this.setState({tagResult:a},()=>this.emitEvent("render"))}}componentDidMount(){document.addEventListener("keydown",this.keydown),this.props.onMounted(this),this.setResultFromImgList(this.props)}componentWillUnmount(){document.addEventListener("keydown",this.keydown),this.props.onUnmounted()}shouldComponentUpdate(s){return s.imgIndex!==this.props.imgIndex&&this.setResultFromImgList(s),!0}render(){var s;const{imgIndex:t,imgList:e,pageForward:i,pageJump:l,pageBackward:r}=this.props,{tagResult:o,valid:n}=this.state;return h.createElement("div",{style:{height:"100%",width:"100%",position:"relative",display:"flex",flexDirection:"column"}},h.createElement(y,{imgIndex:t,imgList:e,pageBackward:r,pageForward:i,pageJump:l,valid:n,setVideoRef:a=>{this.videoPlayer=a},drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer}),h.createElement(L,{result:o,inputList:(s=this.config)==null?void 0:s.inputList,hasPromptLayer:!!this.props.drawLayerSlot}))}}export{R as TagToolInstanceAdaptor};
1
+ import h from"react";import{TagUtils as p,CommonToolUtils as f,uuid as y}from"@labelbee/lb-annotation";import{jsonParser as c}from"../../../utils/index.js";import{VideoPlayer as L}from"../../videoPlayer/index.js";import{VideoTagLayer as R}from"../../videoPlayer/VideoTagLayer.js";import g from"lodash";import{getKeyCodeNumber as b}from"../../videoPlayer/utils.js";class S extends h.Component{constructor(s){super(s);this.fns={},this.labelSelectedList=[],this.clearResult=(t=!0,e)=>{const i=e?this.state.tagResult.map(l=>((l==null?void 0:l.result[e])&&delete l.result[e],l)):[];this.setState({tagResult:i},()=>this.emitEvent("render"))},this.exportData=()=>{var t,e,i,l,n,o,r;const a=(e=(t=this.videoPlayer)==null?void 0:t.duration)!=null?e:0,d=(i=this.videoPlayer)==null?void 0:i.getVideoPlaybackQuality(),u=d==null?void 0:d.totalVideoFrames,v=(n=(l=this.videoPlayer)==null?void 0:l.videoWidth)!=null?n:0,m=(r=(o=this.videoPlayer)==null?void 0:o.videoHeight)!=null?r:0;return[this.state.tagResult,{valid:this.state.valid,duration:a,frames:u,videoWidth:v,videoHeight:m}]},this.emitEvent=t=>{this.fns[t]&&this.fns[t]()},this.combineResult=(t,e={})=>{var i,l;const{isMulti:n}=t,{key:o,value:r}=t.value;if(n){let a=(l=(i=e[o])==null?void 0:i.split(";"))!=null?l:[];a.includes(r)?a=a.filter(u=>u!==r):a.push(r);const d=new Set(a);return e[o]=Array.from(d).join(";"),g.pickBy(e,u=>u)}return e[o]=e[o]===r?void 0:r,g.pickBy(e,a=>a)},this.setResult=t=>{this.setState({tagResult:t}),this.fns.render&&this.fns.render()},this.setLabel=(t,e)=>{this.setLabelBySelectedList(t,e)},this.keydown=t=>{const e=b(t.keyCode);if(e){const i=e-1;if(this.config.inputList.length===1){this.labelSelectedList=[0,i],this.setLabel(0,i),setTimeout(()=>{this.labelSelectedList=[],this.emitEvent("render")},500);return}this.labelSelectedList.length===1?(this.labelSelectedList=[this.labelSelectedList[0],i],this.setLabel(this.labelSelectedList[0],i),setTimeout(()=>{this.labelSelectedList=[],this.emitEvent("render")},500)):(this.labelSelectedList=[i],this.emitEvent("expend"))}},this.setValid=t=>{this.setState({valid:t}),t===!1&&this.setState({tagResult:[]}),this.emitEvent("render")},this.setResultFromImgList=t=>{const{imgList:e,imgIndex:i,step:l}=t;if(!e[i])return;const n=c(e[i].result),o=n[`step_${l}`],r=this.getInitResultList();this.setState({tagResult:o?o==null?void 0:o.result:r,valid:(n==null?void 0:n.valid)===void 0?!0:n.valid},()=>this.emitEvent("render"))},this.getInitResultList=()=>p.getDefaultTagResult(this.config.inputList,[]),this.state={tagResult:[],labelSelectedList:[],valid:!0}}get config(){var s;return c((s=this.props.stepInfo)==null?void 0:s.config)}get history(){return{initRecord:()=>{},pushHistory:()=>{}}}get currentTagResult(){var s;return(s=this.state.tagResult[0])!=null?s:{}}get valid(){return this.state.valid}singleOn(s,t){this.fns[s]=t}on(s,t){this.singleOn(s,t)}unbindAll(s){delete this.fns[s]}getTagResultByCode(s,t){var e,i,l;try{const n=(i=(e=this.config)==null?void 0:e.inputList)!=null?i:[],o=n.length>1,r=t!==void 0?s:0,a=t!==void 0?t:s,d=o?n[r]:n[0],u=((l=d.subSelected)!=null?l:[])[a];if(d&&u)return{value:{key:d.value,value:u.value},isMulti:d.isMulti}}catch(n){return}}setLabelBySelectedList(s,t){var e,i,l,n;const o=this.getTagResultByCode(s,t);if(o){const r=this.combineResult(o,(i=(e=this.state.tagResult[0])==null?void 0:e.result)!=null?i:{}),a=[{sourceID:f.getSourceID(),id:(n=(l=this.currentTagResult)==null?void 0:l.id)!=null?n:y(8,62),result:r}];this.setState({tagResult:a},()=>this.emitEvent("render"))}}componentDidMount(){document.addEventListener("keydown",this.keydown),this.props.onMounted(this),this.setResultFromImgList(this.props)}componentWillUnmount(){document.addEventListener("keydown",this.keydown),this.props.onUnmounted()}shouldComponentUpdate(s){return s.imgIndex!==this.props.imgIndex&&this.setResultFromImgList(s),!0}render(){var s;const{imgIndex:t,imgList:e,pageForward:i,pageJump:l,pageBackward:n}=this.props,{tagResult:o,valid:r}=this.state;return h.createElement("div",{style:{height:"100%",width:"100%",position:"relative",display:"flex",flexDirection:"column"}},h.createElement(L,{imgIndex:t,imgList:e,pageBackward:n,pageForward:i,pageJump:l,valid:r,setVideoRef:a=>{this.videoPlayer=a},drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer}),h.createElement(R,{result:o,inputList:(s=this.config)==null?void 0:s.inputList,hasPromptLayer:!!this.props.drawLayerSlot}))}}export{S as TagToolInstanceAdaptor};
@@ -1 +1 @@
1
- import u from"react";import{jsonParser as p}from"../../../utils/index.js";import{VideoPlayer as g}from"../../videoPlayer/index.js";import c from"lodash";import{VideoTextLayer as f}from"../../videoPlayer/VideoTextLayer.js";import{toolStyleConverter as y}from"@labelbee/lb-utils";class x extends u.Component{constructor(e){super(e);this.fns={},this.clearResult=(t=!0)=>{this.setState({result:{}},()=>this.updateSidebar())},this.exportData=()=>{var t,l,s,o,i,n,r;const a=(l=(t=this.videoPlayer)==null?void 0:t.duration)!=null?l:0,d=(s=this.videoPlayer)==null?void 0:s.getVideoPlaybackQuality(),h=d==null?void 0:d.totalVideoFrames,v=(i=(o=this.videoPlayer)==null?void 0:o.videoWidth)!=null?i:0,m=(r=(n=this.videoPlayer)==null?void 0:n.videoHeight)!=null?r:0;return[[this.state.result],{valid:this.state.valid,duration:a,frames:h,videoWidth:v,videoHeight:m}]},this.toggleShowText=t=>{this.setState({showText:t})},this.emitEvent=t=>{this.fns[t]&&this.fns[t]()},this.updateSidebar=()=>{this.emitEvent("valueUpdated")},this.updateTextValue=(t,l,s)=>{var o;const i=c.cloneDeep(s!=null?s:{});i.value=Object.assign((o=i.value)!=null?o:{},{[t]:l}),this.setState({result:i},()=>this.updateSidebar())},this.setResult=t=>{this.setState({result:t}),this.fns.render&&this.fns.render()},this.setValid=t=>{this.setState({valid:t}),t===!1&&this.setState({result:{}}),this.emitEvent("render")},this.setResultFromImgList=t=>{var l,s;const{imgList:o,imgIndex:i,step:n}=t;if(!o[i])return;const r=p(o[i].result),a=r[`step_${n}`];this.setState({result:(s=(l=a==null?void 0:a.result)==null?void 0:l[0])!=null?s:{},valid:(r==null?void 0:r.valid)===void 0?!0:r.valid},()=>this.updateSidebar())},this.state={result:{},valid:!0,showText:!0}}get config(){var e;return p((e=this.props.stepInfo)==null?void 0:e.config)}get history(){return{initRecord:()=>{},pushHistory:()=>{}}}get valid(){return this.state.valid}get textList(){return[this.state.result]}getColor(e=this.config,t=""){return y.getColorByConfig({attribute:t,config:e})}singleOn(e,t){this.fns[e]=t}on(e,t){this.singleOn(e,t)}unbindAll(e){delete this.fns[e]}componentDidMount(){this.props.onMounted(this),this.setResultFromImgList(this.props)}componentWillUnmount(){this.props.onUnmounted()}shouldComponentUpdate(e){return e.imgIndex!==this.props.imgIndex&&this.setResultFromImgList(e),!0}render(){var e,t;const{imgIndex:l,imgList:s,pageForward:o,pageJump:i,pageBackward:n}=this.props,{result:r,valid:a,showText:d}=this.state;return u.createElement("div",{style:{height:"100%",width:"100%",position:"relative",display:"flex",flexDirection:"column"}},d&&r.value&&u.createElement(f,{value:r.value,toolColor:(t=(e=this.getColor(this.config))==null?void 0:e.valid)==null?void 0:t.fill,configList:this.config.configList,hasPromptLayer:!!this.props.drawLayerSlot}),u.createElement(g,{imgIndex:l,imgList:s,pageBackward:n,pageForward:o,pageJump:i,valid:a,setVideoRef:h=>{this.videoPlayer=h},drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer}))}}export{x as VideoTextTool};
1
+ import u from"react";import{jsonParser as v}from"../../../utils/index.js";import{VideoPlayer as g}from"../../videoPlayer/index.js";import c from"lodash";import{VideoTextLayer as f}from"../../videoPlayer/VideoTextLayer.js";import{toolStyleConverter as y}from"@labelbee/lb-utils";class x extends u.Component{constructor(i){super(i);this.fns={},this.clearResult=(t=!0)=>{this.setState({result:{}},()=>this.updateSidebar())},this.exportData=()=>{var t,e,n,s,o,r,l;const a=(e=(t=this.videoPlayer)==null?void 0:t.duration)!=null?e:0,d=(n=this.videoPlayer)==null?void 0:n.getVideoPlaybackQuality(),h=d==null?void 0:d.totalVideoFrames,p=(o=(s=this.videoPlayer)==null?void 0:s.videoWidth)!=null?o:0,m=(l=(r=this.videoPlayer)==null?void 0:r.videoHeight)!=null?l:0;return[[this.state.result],{valid:this.state.valid,duration:a,frames:h,videoWidth:p,videoHeight:m}]},this.toggleShowText=t=>{this.setState({showText:t})},this.singleOn=(t,e)=>{this.fns[t]=e},this.on=(t,e)=>{this.singleOn(t,e)},this.unbindAll=t=>{delete this.fns[t]},this.emitEvent=t=>{this.fns[t]&&this.fns[t]()},this.updateSidebar=()=>{this.emitEvent("valueUpdated")},this.updateTextValue=(t,e,n,s)=>{var o;const r=c.cloneDeep(s!=null?s:{});r.value=Object.assign((o=r.value)!=null?o:{},{[t]:e}),this.setState({result:r},()=>n&&this.updateSidebar())},this.setResult=t=>{this.setState({result:t}),this.fns.render&&this.fns.render()},this.setValid=t=>{this.setState({valid:t}),t===!1&&this.setState({result:{}}),this.emitEvent("render")},this.setResultFromImgList=t=>{var e,n;const{imgList:s,imgIndex:o,step:r}=t;if(!s[o])return;const l=v(s[o].result),a=l[`step_${r}`];this.setState({result:(n=(e=a==null?void 0:a.result)==null?void 0:e[0])!=null?n:{},valid:(l==null?void 0:l.valid)===void 0?!0:l.valid},()=>this.updateSidebar())},this.state={result:{},valid:!0,showText:!0}}get config(){var i;return v((i=this.props.stepInfo)==null?void 0:i.config)}get history(){return{initRecord:()=>{},pushHistory:()=>{}}}get valid(){return this.state.valid}get needConfirm(){var i;const{result:t}=this.state;return(i=this.config.configList)==null?void 0:i.some(e=>e.required&&!(t==null?void 0:t.value[e.key]))}get textList(){return[this.state.result]}getColor(i=this.config,t=""){return y.getColorByConfig({attribute:t,config:i})}componentDidMount(){this.props.onMounted(this),this.setResultFromImgList(this.props)}componentWillUnmount(){this.props.onUnmounted()}shouldComponentUpdate(i){return i.imgIndex!==this.props.imgIndex&&this.setResultFromImgList(i),!0}render(){var i,t;const{imgIndex:e,imgList:n,pageForward:s,pageJump:o,pageBackward:r}=this.props,{result:l,valid:a,showText:d}=this.state;return u.createElement("div",{style:{height:"100%",width:"100%",position:"relative",display:"flex",flexDirection:"column"}},d&&l.value&&u.createElement(f,{value:l.value,toolColor:(t=(i=this.getColor(this.config))==null?void 0:i.valid)==null?void 0:t.fill,configList:this.config.configList,hasPromptLayer:!!this.props.drawLayerSlot}),u.createElement(g,{imgIndex:e,imgList:n,pageBackward:r,pageForward:s,pageJump:o,valid:a,setVideoRef:h=>{this.videoPlayer=h},drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer}))}}export{x as VideoTextTool};
@@ -1 +1 @@
1
- import e,{useContext as $,useMemo as h}from"react";import{getClassName as l}from"../../../../utils/dom.js";import{CaretUpOutlined as b,CaretDownOutlined as j,PauseOutlined as H,CaretRightOutlined as R}from"@ant-design/icons";import{VideoPlayerCtx as d}from"../../index.js";import{Pagination as S}from"../../../../views/MainView/toolFooter/Pagination.js";import F from"../../../../assets/annotation/video/icon_keyboard_h.svg.js";import K from"../../../../views/MainView/toolFooter/FooterTips/ToolHotKey/index.js";import{useTranslation as f}from"react-i18next";import{decimalReserved as g}from"../../utils.js";import{cTool as O}from"@labelbee/lb-annotation";import A from"../../../videoAnnotate/videoClipTool/components/videoClipToolHotkey/index.js";import{VideoClipToolContext as B}from"../../../videoAnnotate/videoClipTool/VideoClipToolContext.js";const{EVideoToolName:I}=O,C=t=>{const o=Math.floor(t/60),n=~~(t%60).toFixed(),i=(t*10).toString().split("").pop(),r=a=>a<10?`0${a}`:a;return`${r(o)}:${r(n)}:${i}`};var E;(function(t){t[t.Video=0]="Video",t[t.Audio=1]="Audio"})(E||(E={}));const M=()=>{const{currentTime:t,duration:o,buffered:n,setCurrentTime:i}=e.useContext(d),r=e.useRef(null),a=h(()=>`${g(n/o*100,1)}%`,[n,o]),c=h(()=>`${g(t/o*100,1)}%`,[t,o]),u=s=>{if(r.current){const p=s.clientX,v=r.current.clientWidth,m=g(p/v*o,1);i(m)}};return e.createElement("div",{className:l("video-progress"),ref:r,onClick:s=>{s.stopPropagation(),s.nativeEvent.stopImmediatePropagation(),u(s)}},e.createElement("div",{className:l("video-slider")},e.createElement("div",{className:l("video-slider","played"),style:{width:c}}),e.createElement("div",{className:l("video-slider","loaded"),style:{width:a}}),e.createElement("div",{className:l("video-slider","played"),style:{width:c}})),e.createElement("div",{className:l("video-slider-bar"),style:{left:c}}))},_=()=>{const{updateNextPlaybackRate:t,playbackRate:o}=e.useContext(d),{t:n}=f();return e.createElement("span",{className:l("video-controller","speed")},e.createElement("span",null,n("Speed")),e.createElement("span",{className:l("video-controller","speedNum")},`${o}x`),e.createElement("span",{className:l("video-controller","speedButton")},e.createElement(b,{onClick:()=>{t()}}),e.createElement(j,{onClick:()=>{t(!1)}})))},L=()=>{const{t}=f();return e.createElement(K,{title:e.createElement("span",{className:l("video-controller","hotkey")},e.createElement("img",{src:F}),t("Hotkeys")),style:{},toolName:I.VideoTagTool})},X=()=>{const{imgIndex:t,imgList:o,pageBackward:n,pageJump:i,pageForward:r}=e.useContext(d);return e.createElement(S,{isVideo:!0,pageBackward:n,imgIndex:t,pageJump:i,totalPage:o.length,pageForward:r,footerCls:l("video-controller")})},z=()=>{const{currentTime:t,duration:o}=e.useContext(d),n=o*10-t*10,i=(n>0?n:0)/10;return e.createElement("div",{className:l("video-controller","time")},`${C(t)} / -${C(i)}`)},D=t=>{const{playPause:o,isPlay:n}=t;return e.createElement("span",{onClick:()=>{o()},className:l("video-controller","playButton")},n?e.createElement(H,null):e.createElement(R,null))},J=t=>{var o,n;const{footer:i}=t,{playPause:r,isPlay:a,addTime:c,toggleClipStatus:u}=e.useContext(d),{result:s}=$(B),p=(n=(o=s==null?void 0:s.filter(w=>w.end!==null))==null?void 0:o.length)!=null?n:0,{t:v}=f(),m=e.createElement(M,null),y=e.createElement(D,{playPause:r,isPlay:a}),T=e.createElement(z,null),x=e.createElement(_,null),N=e.createElement(X,null),P=e.createElement(L,null),k=e.createElement(A,{addTime:c,toggleClipStatus:u}),V=e.createElement("span",{style:{margin:"0px 8px",fontSize:12}},`${v("ItemsOfThisPage")}: ${p}`);return i?typeof i=="function"?i({videoProgress:m,videoPlayIcon:y,videoTime:T,videoSpeed:x,videoPageChange:N,videoHotKeys:P,videoClipHotKey:k,videoResultCount:V}):i:e.createElement("div",{className:l("video-controller","wrapper")},m,e.createElement("div",{className:l("video-controller")},y,T,x,e.createElement("div",{className:l("video-controller","holder")}),V,N,P))};export{E as EPlayerType,J as default,C as videoTimeFormat};
1
+ import e,{useContext as $,useMemo as k}from"react";import{getClassName as l}from"../../../../utils/dom.js";import{CaretUpOutlined as b,CaretDownOutlined as j,PauseOutlined as H,CaretRightOutlined as R}from"@ant-design/icons";import{VideoPlayerCtx as d}from"../../index.js";import{Pagination as S}from"../../../../views/MainView/toolFooter/Pagination.js";import F from"../../../../assets/annotation/video/icon_keyboard_h.svg.js";import K from"../../../../views/MainView/toolFooter/FooterTips/ToolHotKey/index.js";import{useTranslation as f}from"react-i18next";import{decimalReserved as g}from"../../utils.js";import{cTool as O}from"@labelbee/lb-annotation";import A from"../../../videoAnnotate/videoClipTool/components/videoClipToolHotkey/index.js";import{VideoClipToolContext as B}from"../../../videoAnnotate/videoClipTool/VideoClipToolContext.js";const{EVideoToolName:I}=O,C=t=>{const o=Math.floor(t/60),n=~~(t%60).toFixed(),i=(t*10).toString().split("").pop(),r=a=>a<10?`0${a}`:a;return`${r(o)}:${r(n)}:${i}`};var E;(function(t){t[t.Video=0]="Video",t[t.Audio=1]="Audio"})(E||(E={}));const M=()=>{const{currentTime:t,duration:o,buffered:n,setCurrentTime:i}=e.useContext(d),r=e.useRef(null),a=k(()=>`${g(n/o*100,1)}%`,[n,o]),c=k(()=>`${g(t/o*100,1)}%`,[t,o]),u=s=>{if(r.current){const p=s.clientX,v=r.current.clientWidth,m=g(p/v*o,1);i(m)}};return e.createElement("div",{className:l("video-progress"),ref:r,onClick:s=>{s.stopPropagation(),s.nativeEvent.stopImmediatePropagation(),u(s)}},e.createElement("div",{className:l("video-slider")},e.createElement("div",{className:l("video-slider","played"),style:{width:c}}),e.createElement("div",{className:l("video-slider","loaded"),style:{width:a}}),e.createElement("div",{className:l("video-slider","played"),style:{width:c}})),e.createElement("div",{className:l("video-slider-bar"),style:{left:c}}))},_=()=>{const{updateNextPlaybackRate:t,playbackRate:o}=e.useContext(d),{t:n}=f();return e.createElement("span",{className:l("video-controller","speed")},e.createElement("span",null,n("Speed")),e.createElement("span",{className:l("video-controller","speedNum")},`${o}x`),e.createElement("span",{className:l("video-controller","speedButton")},e.createElement(b,{onClick:()=>{t()}}),e.createElement(j,{onClick:()=>{t(!1)}})))},L=()=>{const{t}=f();return e.createElement(K,{title:e.createElement("span",{className:l("video-controller","hotkey")},e.createElement("img",{src:F}),t("Hotkeys")),style:{},toolName:I.VideoTagTool})},X=()=>{const{imgIndex:t,imgList:o,pageBackward:n,pageJump:i,pageForward:r}=e.useContext(d);return e.createElement(S,{isVideo:!0,pageBackward:n,imgIndex:t,pageJump:i,totalPage:o.length,pageForward:r,footerCls:l("video-controller")})},z=()=>{const{currentTime:t,duration:o}=e.useContext(d),n=o*10-t*10,i=(n>0?n:0)/10;return e.createElement("div",{className:l("video-controller","time")},`${C(t)} / -${C(i)}`)},D=t=>{const{playPause:o,isPlay:n}=t;return e.createElement("span",{onClick:()=>{o()},className:l("video-controller","playButton")},n?e.createElement(H,null):e.createElement(R,null))},J=t=>{var o,n;const{footer:i}=t,{playPause:r,isPlay:a,addTime:c,toggleClipStatus:u}=e.useContext(d),{result:s}=$(B),p=(n=(o=s==null?void 0:s.filter(w=>w.end!==null))==null?void 0:o.length)!=null?n:0,{t:v}=f(),m=e.createElement(M,null),y=e.createElement(D,{playPause:r,isPlay:a}),T=e.createElement(z,null),x=e.createElement(_,null),N=e.createElement(X,null),P=e.createElement(L,null),V=e.createElement(A,{addTime:c,toggleClipStatus:u}),h=e.createElement("span",{style:{margin:"0px 8px",fontSize:12}},`${v("ItemsOfThisPage")}: ${p}`);return i?typeof i=="function"?i({videoProgress:m,videoPlayIcon:y,videoTime:T,videoSpeed:x,videoPageChange:N,videoHotKeys:P,videoClipHotKey:V,videoResultCount:h}):i:e.createElement("div",{className:l("video-controller","wrapper")},m,e.createElement("div",{className:l("video-controller")},y,T,x,V,e.createElement("div",{className:l("video-controller","holder")}),h,N,P))};export{E as EPlayerType,J as default,C as videoTimeFormat};
@@ -1 +1 @@
1
- import K from"../../../../components/attributeList/index.js";import M from"../../../../components/checkboxList/index.js";import{CaretRightOutlined as P}from"@ant-design/icons";import{Collapse as T,Tooltip as H,Badge as x}from"antd/es";import{cloneDeep as F}from"lodash";import n,{useState as p,useRef as U,useEffect as v,useCallback as q}from"react";import z from"../../../../assets/annotation/common/icon_clearSmall.svg.js";import G from"../../../../assets/annotation/common/icon_clearSmall_a.svg.js";import{TagUtils as J}from"@labelbee/lb-annotation";import{connect as Q}from"react-redux";import{useTranslation as V}from"react-i18next";import{LabelBeeContext as W}from"../../../../store/ctx.js";const{Panel:X}=T,$=({isActive:a})=>n.createElement(P,{rotate:a?90:0}),Y=({toolInstance:a,imgIndex:N})=>{const[o,g]=p([]),i=U(null),[,j]=p(0),[w,f]=p(-1),{t:b}=V();v(()=>{a&&(g(a.config.inputList.map(e=>e.value)),a.singleOn("render",()=>{j(e=>e+1)}))},[a]),v(()=>{if(a&&(a.singleOn("expend",O),a.labelSelectedList.length===1)){let e=0;for(let l=0;l<a.labelSelectedList[0];l++)e+=46,s[l]&&o[l]!==""&&s[l].subSelected.forEach(r=>{e+=40});i.current&&(i.current.children[0].scrollTop=e)}}),v(()=>{i.current&&(i.current.children[0].scrollTop=0)},[N]);const O=()=>{var e;const l=a.labelSelectedList[0],r=(e=s.filter((t,m)=>m===l)[0])==null?void 0:e.value;h(l,r,!0)},h=q((e,l,r)=>{const t=F(o);t[e]===""||r===!0?t[e]=l:t[e]="",g(t)},[o]);if(!a)return null;const{labelSelectedList:c,config:{inputList:s},currentTagResult:u,setLabel:E}=a,A=e=>c.length>0&&c[0]===e?n.createElement("span",{className:"keyDownIconActive"},e+1):n.createElement("span",{className:"keyDownIcon"},e+1),y=(e,l=-1)=>e?e.map((r,t)=>{var m,L,k,_,C;if(r.subSelected){const R=J.judgeResultIsInInputList(r.value,(m=u==null?void 0:u.result)==null?void 0:m[r.value],s);return n.createElement(T,{bordered:!1,expandIcon:$,key:`collapse_${t}_${l+1}`,onChange:()=>h(t,r.value),activeKey:[o[t]]},n.createElement(X,{header:n.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",flex:1}},n.createElement("span",null,r.key,n.createElement(H,{placement:"bottom",title:b("ClearThisOption")},n.createElement("img",{style:{marginLeft:5,cursor:"pointer"},onClick:D=>{D.stopPropagation(),a.clearResult(!0,r.value)},src:w===t||R?G:z,onMouseEnter:()=>{f(t)},onMouseLeave:()=>{f(-1)}})),R&&o[t]===""&&n.createElement(x,{color:"#87d068"})),(s==null?void 0:s.length)>1&&A(t)),key:r.value},n.createElement("div",{className:"level",style:{backgroundColor:c.length>0&&c[0]===t?"rgba(158, 158, 158, 0.18)":""}},y(r.subSelected,t))))}const d=(s==null?void 0:s[l])?s==null?void 0:s[l].value:0,S=((_=(k=(L=u==null?void 0:u.result)==null?void 0:L[d])==null?void 0:k.split(";"))==null?void 0:_.indexOf(r.value))>-1?r.value:"";return((C=s==null?void 0:s[l])==null?void 0:C.isMulti)===!0?n.createElement("div",{className:"singleBar",key:`${d}_${l}_${t}`},n.createElement(M,{attributeChanged:()=>E(l,t),selectedAttribute:[S],list:[{value:r.value,label:r.key}],num:t+1})):n.createElement("div",{className:"singleBar",key:`${d}_${l}_${t}`},n.createElement(K,{forbidColor:!0,attributeChanged:()=>E(l,t),selectedAttribute:S,list:[{value:r.value,label:r.key}],num:t+1}))}):null,B=window.innerHeight-61-80;return n.createElement("div",{className:"tagOperationMenu",ref:i},(s==null?void 0:s.length)===0?n.createElement("div",{style:{padding:20,textAlign:"center"}},b("NoConfiguration")):n.createElement("div",{className:"main",style:{height:B}},y(s)))};function Z(a){return{toolInstance:a.annotation.toolInstance,imgIndex:a.annotation.imgIndex}}var I=Q(Z,null,null,{context:W})(Y);export{I as default,$ as expandIconFuc};
1
+ import K from"../../../../components/attributeList/index.js";import M from"../../../../components/checkboxList/index.js";import{CaretRightOutlined as P}from"@ant-design/icons";import{Collapse as T,Tooltip as H,Badge as x}from"antd/es";import{cloneDeep as F}from"lodash";import n,{useState as v,useRef as U,useEffect as p,useCallback as q}from"react";import z from"../../../../assets/annotation/common/icon_clearSmall.svg.js";import G from"../../../../assets/annotation/common/icon_clearSmall_a.svg.js";import{TagUtils as J}from"@labelbee/lb-annotation";import{connect as Q}from"react-redux";import{useTranslation as V}from"react-i18next";import{LabelBeeContext as W}from"../../../../store/ctx.js";const{Panel:X}=T,$=({isActive:a})=>n.createElement(P,{rotate:a?90:0}),Y=({toolInstance:a,imgIndex:N})=>{const[s,g]=v([]),i=U(null),[,j]=v(0),[w,f]=v(-1),{t:b}=V();p(()=>{var r,t;a&&(g((t=(r=a.config)==null?void 0:r.inputList)==null?void 0:t.map(e=>e.value)),a.singleOn("render",()=>{j(e=>e+1)}))},[a]),p(()=>{if(a&&(a.singleOn("expend",O),a.labelSelectedList.length===1)){let r=0;for(let t=0;t<a.labelSelectedList[0];t++)r+=46,o[t]&&s[t]!==""&&o[t].subSelected.forEach(e=>{r+=40});i.current&&(i.current.children[0].scrollTop=r)}}),p(()=>{i.current&&(i.current.children[0].scrollTop=0)},[N]);const O=()=>{var r;const t=a.labelSelectedList[0],e=(r=o.filter((l,m)=>m===t)[0])==null?void 0:r.value;h(t,e,!0)},h=q((r,t,e)=>{const l=F(s);l[r]===""||e===!0?l[r]=t:l[r]="",g(l)},[s]);if(!a)return null;const{labelSelectedList:u,config:{inputList:o},currentTagResult:c,setLabel:E}=a,A=r=>u.length>0&&u[0]===r?n.createElement("span",{className:"keyDownIconActive"},r+1):n.createElement("span",{className:"keyDownIcon"},r+1),y=(r,t=-1)=>r?r.map((e,l)=>{var m,L,_,k,C;if(e.subSelected){const R=J.judgeResultIsInInputList(e.value,(m=c==null?void 0:c.result)==null?void 0:m[e.value],o);return n.createElement(T,{bordered:!1,expandIcon:$,key:`collapse_${l}_${t+1}`,onChange:()=>h(l,e.value),activeKey:[s[l]]},n.createElement(X,{header:n.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",flex:1}},n.createElement("span",null,e.key,n.createElement(H,{placement:"bottom",title:b("ClearThisOption")},n.createElement("img",{style:{marginLeft:5,cursor:"pointer"},onClick:D=>{D.stopPropagation(),a.clearResult(!0,e.value)},src:w===l||R?G:z,onMouseEnter:()=>{f(l)},onMouseLeave:()=>{f(-1)}})),R&&s[l]===""&&n.createElement(x,{color:"#87d068"})),(o==null?void 0:o.length)>1&&A(l)),key:e.value},n.createElement("div",{className:"level",style:{backgroundColor:u.length>0&&u[0]===l?"rgba(158, 158, 158, 0.18)":""}},y(e.subSelected,l))))}const d=(o==null?void 0:o[t])?o==null?void 0:o[t].value:0,S=((k=(_=(L=c==null?void 0:c.result)==null?void 0:L[d])==null?void 0:_.split(";"))==null?void 0:k.indexOf(e.value))>-1?e.value:"";return((C=o==null?void 0:o[t])==null?void 0:C.isMulti)===!0?n.createElement("div",{className:"singleBar",key:`${d}_${t}_${l}`},n.createElement(M,{attributeChanged:()=>E(t,l),selectedAttribute:[S],list:[{value:e.value,label:e.key}],num:l+1})):n.createElement("div",{className:"singleBar",key:`${d}_${t}_${l}`},n.createElement(K,{forbidColor:!0,attributeChanged:()=>E(t,l),selectedAttribute:S,list:[{value:e.value,label:e.key}],num:l+1}))}):null,B=window.innerHeight-61-80;return n.createElement("div",{className:"tagOperationMenu",ref:i},(o==null?void 0:o.length)===0?n.createElement("div",{style:{padding:20,textAlign:"center"}},b("NoConfiguration")):n.createElement("div",{className:"main",style:{height:B}},y(o)))};function Z(a){return{toolInstance:a.annotation.toolInstance,imgIndex:a.annotation.imgIndex}}var I=Q(Z,null,null,{context:W})(Y);export{I as default,$ as expandIconFuc};
@@ -1 +1 @@
1
- import t,{useState as u,useEffect as F,useRef as U}from"react";import{connect as V}from"react-redux";import{cloneDeep as M}from"lodash";import{classnames as C}from"../../../../utils/index.js";import{Switch as z,Input as W}from"antd/es";import{cKeyCode as G,cTool as H}from"@labelbee/lb-annotation";import{PageForward as J}from"../../../../store/annotation/actionCreators.js";import{ConfigUtils as Q}from"../../../../utils/ConfigUtils.js";import{useTranslation as A}from"react-i18next";import{LabelBeeContext as X}from"../../../../store/ctx.js";var Y=Object.defineProperty,I=Object.getOwnPropertySymbols,Z=Object.prototype.hasOwnProperty,ee=Object.prototype.propertyIsEnumerable,K=(e,o,n)=>o in e?Y(e,o,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[o]=n,te=(e,o)=>{for(var n in o||(o={}))Z.call(o,n)&&K(e,n,o[n]);if(I)for(var n of I(o))ee.call(o,n)&&K(e,n,o[n]);return e};const R=G.default,{EVideoToolName:oe}=H,j=e=>{e.stopPropagation(),e.nativeEvent.stopPropagation(),e.nativeEvent.stopImmediatePropagation()},D=e=>{const{textareaProps:o,footer:n}=e;return t.createElement(t.Fragment,null,t.createElement(W.TextArea,te({bordered:!1,rows:6,onKeyDown:j,onKeyUp:j},o)),t.createElement("div",{className:C({textAreaLength:!0})},n))},$=e=>{var o;const n=U(null),[g,m]=u(!1),[N,v]=u(!1),{t:d}=A(),{disabled:i,config:s,result:c,updateText:T,index:E,switchToNextTextarea:h,hasMultiple:P,onNext:w}=e,{maxLength:p}=s,f=c?c[s.key]:"",b=(o=f==null?void 0:f.length)!=null?o:0,x=a=>{T&&(T(a,s.key),s.required&&v(!a))},y=P&&h,_={id:`textInput-${E}`,ref:n,disabled:i,value:f,maxLength:p,autoSize:{minRows:2,maxRows:6},onChange:a=>{const S=a.target.value;x(S)},onFocus:()=>{m(!0)},onBlur:a=>{m(!1),s.required&&v(!a.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:a=>{a.ctrlKey&&a.keyCode===R.Enter&&(w&&w(),a.preventDefault()),a.keyCode===R.Tab&&y&&(a.preventDefault(),a.nativeEvent.stopImmediatePropagation(),h(E)),a.nativeEvent.stopPropagation()}},L=t.createElement("div",{className:"textAreaFooter"},t.createElement("div",{className:"hotkeyTip"},y&&t.createElement("span",null,`[${d("Switch")}]Tab`),t.createElement("span",null,`[${d("TurnPage")}]Ctrl+Enter`)),t.createElement("div",{className:"wordCount"},t.createElement("span",{className:b>=p?"warning":""},b),"/",t.createElement("span",null,p)));return F(()=>{i&&m(!1)},[i]),t.createElement("div",{className:"textField"},t.createElement("div",{className:"label"},t.createElement("span",{className:C({required:s.required})},s.label),t.createElement("i",{className:C({clearText:!0,disabled:i}),onClick:()=>{i||x("")}})),t.createElement("div",{className:C({disabled:i,"textarea-outline":!0,"ant-input-focused":g,textareaContainer:!0,focus:g,invalid:N})},t.createElement(D,{footer:L,textareaProps:_})))},ne=({toolInstance:e,imgIndex:o,dispatch:n,triggerEventAfterIndexChanged:g,step:m,stepList:N,basicResultList:v})=>{var d,i,s;const[c,T]=u([]),[E,h]=u(0),[P,w]=u(!0),[,p]=u(0),{t:f}=A(),b=r=>{const l=(r+1)%c.length;x(l)},x=r=>{setTimeout(()=>{const l=document.getElementById(`textInput-${r}`);l&&(h(r),l.focus(),l.select(),l.scrollIntoView({behavior:"smooth",block:"center"}))})};F(()=>{e&&(T(M(e.config.configList)),e.singleOn("valueUpdated",()=>{p(r=>r+1)}))},[e]);const y=(s=(i=(d=e==null?void 0:e.textList)==null?void 0:d[0])==null?void 0:i.value)!=null?s:{},_=(r,l)=>{var k,O;(O=e==null?void 0:e.updateTextValue)==null||O.call(e,l,r,(k=e==null?void 0:e.textList)==null?void 0:k[0])};F(()=>{o>-1&&g&&x(0)},[o]);const L=()=>{n(J(!0))},a=r=>{w(r),e==null||e.toggleShowText(r)},S=Q.getStepConfig(N,m),q=S.dataSourceStep>0&&v.length===0,B=S.tool===oe.VideoTextTool;return e&&t.createElement("div",{className:"textToolOperationMenu"},c.map((r,l)=>t.createElement($,{config:r,key:r.key,index:l,result:y,updateText:_,switchToNextTextarea:b,hasMultiple:c.length>1,focus:E===l,onNext:L,disabled:q})),B&&t.createElement("div",{className:"textToolSwitchItem"},f("toggleShowText"),t.createElement(z,{style:{alignSelf:"center"},checked:P,onChange:r=>{a(r)}})))};function ae(e){return{toolInstance:e.annotation.toolInstance,imgIndex:e.annotation.imgIndex,step:e.annotation.step,basicResultList:e.annotation.basicResultList,stepList:e.annotation.stepList,triggerEventAfterIndexChanged:e.annotation.triggerEventAfterIndexChanged}}var re=V(ae,null,null,{context:X})(ne);export{$ as SingleTextInput,D as TextareaWithFooter,re as default};
1
+ import o,{useState as u,useEffect as T,useRef as M}from"react";import{connect as z}from"react-redux";import{cloneDeep as W}from"lodash";import{classnames as N}from"../../../../utils/index.js";import{Switch as J,Input as G}from"antd/es";import{cKeyCode as H,cTool as Q}from"@labelbee/lb-annotation";import{PageForward as X}from"../../../../store/annotation/actionCreators.js";import{ConfigUtils as Y}from"../../../../utils/ConfigUtils.js";import{useTranslation as K}from"react-i18next";import{LabelBeeContext as Z}from"../../../../store/ctx.js";var ee=Object.defineProperty,R=Object.getOwnPropertySymbols,te=Object.prototype.hasOwnProperty,ne=Object.prototype.propertyIsEnumerable,$=(e,t,r)=>t in e?ee(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,oe=(e,t)=>{for(var r in t||(t={}))te.call(t,r)&&$(e,r,t[r]);if(R)for(var r of R(t))ne.call(t,r)&&$(e,r,t[r]);return e};const j=H.default,{EVideoToolName:ae}=Q,V=e=>{e.stopPropagation(),e.nativeEvent.stopPropagation(),e.nativeEvent.stopImmediatePropagation()},D=e=>{const{textareaProps:t,footer:r}=e;return o.createElement(o.Fragment,null,o.createElement(G.TextArea,oe({key:`${t.id}-${t.defaultValue}`,bordered:!1,rows:6,onKeyDown:V,onKeyUp:V},t)),o.createElement("div",{className:N({textAreaLength:!0})},r))},q=e=>{var t;const r=M(null),[h,p]=u(!1),[P,E]=u(!1),{t:g}=K(),{disabled:s,config:i,result:v,updateText:d,index:w,switchToNextTextarea:y,hasMultiple:L,onNext:b}=e,{maxLength:x}=i,c=v?v[i.key]:"",[S,_]=u((t=c==null?void 0:c.length)!=null?t:0);T(()=>{var n;_((n=c==null?void 0:c.length)!=null?n:0)},[c]);const m=(n,f)=>{d&&(d(n,i.key,f),i.required&&E(!n))},C=L&&y,k={id:`textInput-${w}`,ref:r,disabled:s,defaultValue:c,maxLength:x,autoSize:{minRows:2,maxRows:6},onChange:n=>{const f=n.target.value;_(n.target.value.length),m(f,!1)},onFocus:()=>{p(!0)},onBlur:n=>{p(!1),m(n.target.value,!0),i.required&&E(!n.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:n=>{n.ctrlKey&&n.keyCode===j.Enter&&(b&&b(),n.preventDefault()),n.keyCode===j.Tab&&C&&(n.preventDefault(),n.nativeEvent.stopImmediatePropagation(),y(w)),n.nativeEvent.stopPropagation()}},F=o.createElement("div",{className:"textAreaFooter"},o.createElement("div",{className:"hotkeyTip"},C&&o.createElement("span",null,`[${g("Switch")}]Tab`),o.createElement("span",null,`[${g("TurnPage")}]Ctrl+Enter`)),o.createElement("div",{className:"wordCount"},o.createElement("span",{className:S>=x?"warning":""},S),"/",o.createElement("span",null,x)));return T(()=>{s&&p(!1)},[s]),o.createElement("div",{className:"textField"},o.createElement("div",{className:"label"},o.createElement("span",{className:N({required:i.required})},i.label),o.createElement("i",{className:N({clearText:!0,disabled:s}),onClick:()=>{s||m("",!0)}})),o.createElement("div",{className:N({disabled:s,"textarea-outline":!0,"ant-input-focused":h,textareaContainer:!0,focus:h,invalid:P})},o.createElement(D,{footer:F,textareaProps:k})))},re=({toolInstance:e,imgIndex:t,dispatch:r,triggerEventAfterIndexChanged:h,step:p,stepList:P,basicResultList:E})=>{var g,s,i,v;const[d,w]=u([]),[y,L]=u(0),[b,x]=u(!0),[,c]=u(0),{t:S}=K(),_=a=>{const l=(a+1)%d.length;m(l)},m=a=>{setTimeout(()=>{const l=document.getElementById(`textInput-${a}`);l&&(L(a),l.focus(),l.select(),l.scrollIntoView({behavior:"smooth",block:"center"}))})};T(()=>{e&&e.singleOn("valueUpdated",()=>{c(a=>a+1)})},[e]),T(()=>{var a;e&&w(W((a=e==null?void 0:e.config)==null?void 0:a.configList))},[JSON.stringify((g=e==null?void 0:e.config)==null?void 0:g.configList)]);const C=(v=(i=(s=e==null?void 0:e.textList)==null?void 0:s[0])==null?void 0:i.value)!=null?v:{},k=(a,l,I=!1)=>{var O,A;(A=e==null?void 0:e.updateTextValue)==null||A.call(e,l,a,I,(O=e==null?void 0:e.textList)==null?void 0:O[0])};T(()=>{t>-1&&h&&m(0)},[t]);const F=()=>{r(X(!0))},n=a=>{x(a),e==null||e.toggleShowText(a)},f=Y.getStepConfig(P,p),B=f.dataSourceStep>0&&E.length===0,U=f.tool===ae.VideoTextTool;return e&&o.createElement("div",{className:"textToolOperationMenu"},d.map((a,l)=>o.createElement(q,{config:a,key:a.key,index:l,result:C,updateText:k,switchToNextTextarea:_,hasMultiple:d.length>1,focus:y===l,onNext:F,disabled:B})),U&&o.createElement("div",{className:"textToolSwitchItem"},S("toggleShowText"),o.createElement(J,{style:{alignSelf:"center"},checked:b,onChange:a=>{n(a)}})))};function le(e){return{toolInstance:e.annotation.toolInstance,imgIndex:e.annotation.imgIndex,step:e.annotation.step,basicResultList:e.annotation.basicResultList,stepList:e.annotation.stepList,triggerEventAfterIndexChanged:e.annotation.triggerEventAfterIndexChanged}}var ie=z(le,null,null,{context:Z})(re);export{q as SingleTextInput,D as TextareaWithFooter,ie as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@labelbee/lb-components",
3
- "version": "1.21.0-alpha.1",
3
+ "version": "1.21.0-alpha.3",
4
4
  "description": "Provide a complete library of annotation components",
5
5
  "main": "./dist/index.js",
6
6
  "es": "./es/index.js",