@labelbee/lb-components 1.23.0-alpha.20 → 1.23.0-alpha.22
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.
- package/dist/App.js +1 -1
- package/dist/assets/annotation/pointCloudTool/leftArrow.svg.js +1 -1
- package/dist/assets/annotation/pointCloudTool/rightArrow.svg.js +1 -1
- package/dist/components/audioAnnotate/audioContext/index.js +1 -1
- package/dist/components/audioAnnotate/audioSide/clipSidebar/index.js +1 -1
- package/dist/components/audioAnnotate/index.js +1 -1
- package/dist/components/audioAnnotate/textInput/index.js +1 -1
- package/dist/components/audioPlayer/clipRegion/index.js +1 -1
- package/dist/components/audioPlayer/index.js +1 -1
- package/dist/components/videoAnnotate/videoClipTool/index.js +1 -1
- package/dist/components/videoAnnotate/videoTagTool/TagToolInstanceAdaptor.js +1 -1
- package/dist/types/App.d.ts +1 -0
- package/dist/types/components/audioAnnotate/audioContext/index.d.ts +9 -1
- package/dist/types/components/audioAnnotate/textInput/index.d.ts +1 -0
- package/dist/types/components/audioPlayer/index.d.ts +3 -2
- package/dist/types/components/videoAnnotate/index.d.ts +1 -0
- package/dist/types/components/videoAnnotate/videoClipTool/index.d.ts +1 -0
- package/dist/types/components/videoAnnotate/videoTagTool/TagToolInstanceAdaptor.d.ts +1 -1
- package/dist/views/MainView/index.js +1 -1
- package/dist/views/MainView/sidebar/TagSidebar/index.js +1 -1
- package/dist/views/MainView/sidebar/TextToolSidebar/index.js +1 -1
- package/es/App.js +1 -1
- package/es/assets/annotation/pointCloudTool/leftArrow.svg.js +1 -1
- package/es/assets/annotation/pointCloudTool/rightArrow.svg.js +1 -1
- package/es/components/audioAnnotate/audioContext/index.js +1 -1
- package/es/components/audioAnnotate/audioSide/clipSidebar/index.js +1 -1
- package/es/components/audioAnnotate/index.js +1 -1
- package/es/components/audioAnnotate/textInput/index.js +1 -1
- package/es/components/audioPlayer/clipRegion/index.js +1 -1
- package/es/components/audioPlayer/index.js +1 -1
- package/es/components/videoAnnotate/videoClipTool/index.js +1 -1
- package/es/components/videoAnnotate/videoTagTool/TagToolInstanceAdaptor.js +1 -1
- package/es/views/MainView/index.js +1 -1
- package/es/views/MainView/sidebar/TagSidebar/index.js +1 -1
- package/es/views/MainView/sidebar/TextToolSidebar/index.js +1 -1
- package/package.json +3 -3
package/dist/App.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var index$1=require("./views/MainView/index.js"),lbUtils=require("@labelbee/lb-utils"),React=require("react"),reactRedux=require("react-redux"),index=require("./index.js"),ctx=require("./store/ctx.js"),Actions=require("./store/Actions.js"),actionCreators=require("./store/annotation/actionCreators.js"),reducer=require("./store/annotation/reducer.js"),es=require("antd/es"),zhCN=require("antd/es/locale/zh_CN"),enUS=require("antd/es/locale/en_US");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),zhCN__default=_interopDefaultLegacy(zhCN),enUS__default=_interopDefaultLegacy(enUS),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__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},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));const App=e=>{const[t,a]=React.useState(0),{imgList:o,step:i=1,stepList:s,onSubmit:l,onSave:c,onPageChange:u,onStepChange:d,initialIndex:p=0,toolInstance:P,setToolInstance:S,getFileData:f,pageSize:g=10,loadFileList:r,defaultLang:_="cn",skipBeforePageTurning:m,beforeRotate:v,checkMode:O=!1,intelligentFit:A=!0,highlightAttribute:h="",preDataProcess:I,getImgIndexByExternal:x}=e;React.useEffect(()=>{index.store.dispatch(actionCreators.InitTaskData({onSubmit:l,stepList:s,step:i,getFileData:f,pageSize:g,loadFileList:r,onSave:c,onPageChange:u,onStepChange:d,skipBeforePageTurning:m,beforeRotate:v,checkMode:O,highlightAttribute:h,preDataProcess:I,getImgIndexByExternal:x})),
|
|
1
|
+
"use strict";var index$1=require("./views/MainView/index.js"),lbUtils=require("@labelbee/lb-utils"),React=require("react"),reactRedux=require("react-redux"),index=require("./index.js"),ctx=require("./store/ctx.js"),Actions=require("./store/Actions.js"),actionCreators=require("./store/annotation/actionCreators.js"),reducer=require("./store/annotation/reducer.js"),es=require("antd/es"),zhCN=require("antd/es/locale/zh_CN"),enUS=require("antd/es/locale/en_US");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),zhCN__default=_interopDefaultLegacy(zhCN),enUS__default=_interopDefaultLegacy(enUS),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__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},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));const App=e=>{const[t,a]=React.useState(0),{imgList:o,step:i=1,stepList:s,onSubmit:l,onSave:c,onPageChange:u,onStepChange:d,initialIndex:p=0,toolInstance:P,setToolInstance:S,getFileData:f,pageSize:g=10,loadFileList:r,defaultLang:_="cn",skipBeforePageTurning:m,beforeRotate:v,checkMode:O=!1,intelligentFit:A=!0,highlightAttribute:h="",preDataProcess:I,getImgIndexByExternal:x,annotationBefore:y}=e;React.useEffect(()=>{index.store.dispatch(actionCreators.InitTaskData({onSubmit:l,stepList:s,step:i,getFileData:f,pageSize:g,loadFileList:r,onSave:c,onPageChange:u,onStepChange:d,skipBeforePageTurning:m,beforeRotate:v,checkMode:O,highlightAttribute:h,preDataProcess:I,getImgIndexByExternal:x,annotationBefore:y})),C(),lbUtils.i18n.changeLanguage(_);const n=()=>{a(L=>L+1)};return lbUtils.i18n.on("languageChanged",n),()=>{lbUtils.i18n.off("languageChanged",n),actionCreators.InitAnnotationState(index.store.dispatch)}},[]),React.useEffect(()=>{index.store.dispatch(actionCreators.UpdateInjectFunc({onSubmit:l,stepList:s,getFileData:f,pageSize:g,loadFileList:r,onSave:c,onPageChange:u,onStepChange:d,beforeRotate:v,highlightAttribute:h,preDataProcess:I})),lbUtils.i18n.changeLanguage(_)},[l,s,f,g,r,c,u,d,_,v,h,I]),React.useEffect(()=>{S==null||S(P)},[P]),React.useEffect(()=>{index.store.dispatch({type:Actions.ANNOTATION_ACTIONS.SET_STEP,payload:{toStep:i}})},[i]);const C=()=>{r?actionCreators.loadImgList(index.store.dispatch,index.store.getState,p,!0).then(n=>{n&&index.store.dispatch(reducer.LoadFileAndFileData(p))}):o&&o.length>0&&(index.store.dispatch({type:Actions.ANNOTATION_ACTIONS.UPDATE_IMG_LIST,payload:{imgList:o}}),index.store.dispatch(reducer.LoadFileAndFileData(p)))};return React__default.default.createElement("div",null,React__default.default.createElement(es.ConfigProvider,{locale:lbUtils.i18n.language==="en"?enUS__default.default:zhCN__default.default},React__default.default.createElement(index$1,__spreadProps(__spreadValues({},e),{intelligentFit:A,checkMode:O}))))},mapStateToProps=e=>({toolInstance:e.annotation.toolInstance});var App$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(App);module.exports=App$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react");function _interopNamespace(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(r){if(r!=="default"){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,Object.freeze(t)}var React__namespace=_interopNamespace(React),_path;function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},_extends.apply(this,arguments)}var SvgLeftArrow=function(t){return React__namespace.createElement("svg",_extends({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react");function _interopNamespace(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(r){if(r!=="default"){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,Object.freeze(t)}var React__namespace=_interopNamespace(React),_path;function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},_extends.apply(this,arguments)}var SvgLeftArrow=function(t){return React__namespace.createElement("svg",_extends({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true","data-icon":"left",viewBox:"64 64 896 896"},t),_path||(_path=React__namespace.createElement("path",{d:"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 0 0 0 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6"})))};exports.ReactComponent=SvgLeftArrow;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react");function _interopNamespace(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(r){if(r!=="default"){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,Object.freeze(t)}var React__namespace=_interopNamespace(React),_path;function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},_extends.apply(this,arguments)}var SvgRightArrow=function(t){return React__namespace.createElement("svg",_extends({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react");function _interopNamespace(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(r){if(r!=="default"){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,Object.freeze(t)}var React__namespace=_interopNamespace(React),_path;function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},_extends.apply(this,arguments)}var SvgRightArrow=function(t){return React__namespace.createElement("svg",_extends({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true","data-icon":"right",viewBox:"64 64 896 896"},t),_path||(_path=React__namespace.createElement("path",{d:"M765.7 486.8 314.9 134.7A7.97 7.97 0 0 0 302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 0 0 0-50.4"})))};exports.ReactComponent=SvgRightArrow;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var icons=require("@ant-design/icons"),React=require("react"),antd=require("antd"),ahooks=require("ahooks"),index_module=require("./index.module.scss.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);exports.EContextType=void 0,function(e){e.before="\u524D\u6587",e.after="\u540E\u6587"}(exports.EContextType||(exports.EContextType={}));const AudioContext=e=>{const{audioContext:t}=e;if(!t||!t.visible)return null;const{content:o,type:i}=t;return React__default.default.createElement(AudioContextInfo,{title:exports.EContextType==null?void 0:exports.EContextType[i],content:o})},AudioContextInfo=e=>{const[t,o]=React.useState(!0),[i,r]=React.useState(""),{title:u,content:n}=e,a=()=>{o(!t)};return React.useEffect(()=>{r(n),o(!0)},[n]),React__default.default.createElement("div",{className:index_module.audioContextContainer},React__default.default.createElement("div",{className:index_module.title},React__default.default.createElement(icons.RightOutlined,{style:{marginRight:8},rotate:t?90:0,onClick:a}),React__default.default.createElement("span",{onClick:a},u)),t&&React__default.default.createElement("div",{className:index_module.content},React__default.default.createElement(antd.Input.TextArea,{bordered:!1,value:i,disabled:!0,style:{padding:0},autoSize:!0})))},DEFAULT_AUDIO_CLIP={selectedAttribute:"",selectedRegion:{},attributeLockList:[],clipConfigurable:!1,clipAttributeConfigurable:!1,clipAttributeList:[],clipTextConfigurable:!1,combined:!1,segment:!1},AudioClipContext=React__default.default.createContext({audioClipState:DEFAULT_AUDIO_CLIP,setAudioClipState:()=>{}}),useAudioClipStore=()=>React.useContext(AudioClipContext),AudioClipProvider=({children:e})=>{const[t,o]=ahooks.useSetState(DEFAULT_AUDIO_CLIP),i=React.useMemo(()=>({audioClipState:t,setAudioClipState:o}),[t,o]);return React__default.default.createElement(AudioClipContext.Provider,{value:i},e)};exports.AudioClipProvider=AudioClipProvider,exports.default=AudioContext,exports.useAudioClipStore=useAudioClipStore;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var icons=require("@ant-design/icons"),React=require("react"),antd=require("antd"),ahooks=require("ahooks"),index_module=require("./index.module.scss.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);exports.EContextType=void 0,function(e){e.before="\u524D\u6587",e.after="\u540E\u6587"}(exports.EContextType||(exports.EContextType={}));const DEFAULT_CLIP_TEXT_CONFIG_ITEM=[{label:"\u6587\u672C",key:"text",required:!1,default:"",maxLength:3e3}],AudioContext=e=>{const{audioContext:t}=e;if(!t||!t.visible)return null;const{content:o,type:i}=t;return React__default.default.createElement(AudioContextInfo,{title:exports.EContextType==null?void 0:exports.EContextType[i],content:o})},AudioContextInfo=e=>{const[t,o]=React.useState(!0),[i,r]=React.useState(""),{title:u,content:n}=e,a=()=>{o(!t)};return React.useEffect(()=>{r(n),o(!0)},[n]),React__default.default.createElement("div",{className:index_module.audioContextContainer},React__default.default.createElement("div",{className:index_module.title},React__default.default.createElement(icons.RightOutlined,{style:{marginRight:8},rotate:t?90:0,onClick:a}),React__default.default.createElement("span",{onClick:a},u)),t&&React__default.default.createElement("div",{className:index_module.content},React__default.default.createElement(antd.Input.TextArea,{bordered:!1,value:i,disabled:!0,style:{padding:0},autoSize:!0})))},DEFAULT_AUDIO_CLIP={selectedAttribute:"",selectedRegion:{},attributeLockList:[],clipConfigurable:!1,clipAttributeConfigurable:!1,clipAttributeList:[],clipTextConfigurable:!1,combined:!1,segment:!1,clipTextList:DEFAULT_CLIP_TEXT_CONFIG_ITEM},AudioClipContext=React__default.default.createContext({audioClipState:DEFAULT_AUDIO_CLIP,setAudioClipState:()=>{}}),useAudioClipStore=()=>React.useContext(AudioClipContext),AudioClipProvider=({children:e})=>{const[t,o]=ahooks.useSetState(DEFAULT_AUDIO_CLIP),i=React.useMemo(()=>({audioClipState:t,setAudioClipState:o}),[t,o]);return React__default.default.createElement(AudioClipContext.Provider,{value:i},e)};exports.AudioClipProvider=AudioClipProvider,exports.DEFAULT_CLIP_TEXT_CONFIG_ITEM=DEFAULT_CLIP_TEXT_CONFIG_ITEM,exports.default=AudioContext,exports.useAudioClipStore=useAudioClipStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var React=require("react"),index$2=require("../../../attributeList/index.js"),lbAnnotation=require("@labelbee/lb-annotation"),clipSmall=require("../../../../assets/annotation/audio/clipSmall.svg.js"),clipASmall=require("../../../../assets/annotation/audio/clipASmall.svg.js"),_delete=require("../../../../assets/annotation/audio/delete.svg.js"),loopA=require("../../../../assets/annotation/audio/loopA.svg.js"),audio=require("../../../../utils/audio.js"),index$1=require("../../../longText/index.js"),index=require("../../../../utils/index.js"),index_module=require("./index.module.scss.js"),reactI18next=require("react-i18next"),index$3=require("../../../subAttributeList/index.js");function _interopDefaultLegacy(
|
|
1
|
+
"use strict";var React=require("react"),index$2=require("../../../attributeList/index.js"),lbAnnotation=require("@labelbee/lb-annotation"),clipSmall=require("../../../../assets/annotation/audio/clipSmall.svg.js"),clipASmall=require("../../../../assets/annotation/audio/clipASmall.svg.js"),_delete=require("../../../../assets/annotation/audio/delete.svg.js"),loopA=require("../../../../assets/annotation/audio/loopA.svg.js"),audio=require("../../../../utils/audio.js"),index$1=require("../../../longText/index.js"),index=require("../../../../utils/index.js"),index_module=require("./index.module.scss.js"),reactI18next=require("react-i18next"),index$3=require("../../../subAttributeList/index.js");function _interopDefaultLegacy(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}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=(r,e,l)=>e in r?__defProp(r,e,{enumerable:!0,configurable:!0,writable:!0,value:l}):r[e]=l,__spreadValues=(r,e)=>{for(var l in e||(e={}))__hasOwnProp.call(e,l)&&__defNormalProp(r,l,e[l]);if(__getOwnPropSymbols)for(var l of __getOwnPropSymbols(e))__propIsEnum.call(e,l)&&__defNormalProp(r,l,e[l]);return r},__spreadProps=(r,e)=>__defProps(r,__getOwnPropDescs(e));const ClipSidebar=r=>{const{regions:e=[],updateRegion:l,useAudioClipStore:g}=r,{audioClipState:E,setAudioClipState:m}=g(),{t:p}=reactI18next.useTranslation(),{selectedAttribute:_,selectedRegion:v,clipTextConfigurable:S,clipAttributeList:o,clipAttributeConfigurable:c,secondaryAttributeConfigurable:x,subAttributeList:A,clipTextList:d}=E,{id:i}=v,n=React.useMemo(()=>e.find(t=>t.id===i),[e,i]),y=t=>{e.length&&i&&l(__spreadProps(__spreadValues({},n),{attribute:t})),m({selectedAttribute:t})},C=(t,a)=>{var s;if(e.length&&i){const u=(s=n==null?void 0:n.subAttribute)!=null?s:{};l(__spreadProps(__spreadValues({},n),{subAttribute:__spreadProps(__spreadValues({},u),{[t]:a})}))}},b=[{label:"\u65E0\u5C5E\u6027",value:"",key:"\u65E0\u5C5E\u6027"},...o.map(t=>__spreadProps(__spreadValues({},t),{label:t.key}))],h=t=>{let a="";return S&&(d==null?void 0:d.length)>0&&d.forEach((s,u)=>{a=a+`${!c&&u===0?"":"\uFF0C"}${s.label}\uFF1A${t[s.key]}`}),a};return React__default.default.createElement("div",{className:index_module.clipSidebar},React__default.default.createElement("div",{className:index_module.clipResults},React__default.default.createElement("div",{className:index_module.title},p("ClippedAudio")),e.length>0?React__default.default.createElement("div",{className:index_module.regions},e.map(t=>{const{id:a,attribute:s,text:u,start:f,end:j}=t,q=a===i&&v.loop,N=`${c?audio.getAttributeShowText(s,b):""}${h(t)}`;return React__default.default.createElement("div",{className:index.classnames({[index_module.region]:!0,[index_module.selected]:a===i}),key:a,onClick:()=>{lbAnnotation.EventBus.emit("setSelectedRegion",{id:a,playImmediately:!0})}},React__default.default.createElement("div",{className:index_module.label},q&&React__default.default.createElement("img",{src:loopA}),React__default.default.createElement("div",{className:index_module.text},React__default.default.createElement(index$1,{text:N}))),React__default.default.createElement("div",{className:index_module.time},React__default.default.createElement("img",{src:i===a?clipASmall:clipSmall}),audio.timeFormat(f,"ss.SSS")," -",audio.timeFormat(j,"ss.SSS")),React__default.default.createElement("div",{className:index_module.delete,onClick:()=>{lbAnnotation.EventBus.emit("removeRegionById",a)}},React__default.default.createElement("img",{src:_delete})))})):React__default.default.createElement("div",{className:index_module.empty},p("NoClippedData"))),c&&(o==null?void 0:o.length)>0&&React__default.default.createElement("div",{className:index_module.attributeList},React__default.default.createElement(index$2.default,{list:b,attributeChanged:y,selectedAttribute:_,attributeLockChange:t=>{m({attributeLockList:t})}}),i&&x&&React__default.default.createElement(index$3,{subAttributeList:A,setSubAttribute:C,getValue:t=>{var a;return(a=n==null?void 0:n.subAttribute)==null?void 0:a[t.value]}})))};module.exports=ClipSidebar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var React=require("react"),index$3=require("../audioPlayer/index.js"),dom=require("../../utils/dom.js"),index$4=require("../predictTracking/previewResult/index.js"),es=require("antd/es"),antd=require("antd"),index$5=require("../../constant/index.js"),lbAnnotation=require("@labelbee/lb-annotation"),index_module=require("./index.module.scss.js"),index$2=require("./tagResultShow/index.js"),index$1=require("./audioContext/index.js"),index$6=require("./textInput/index.js"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),ctx=require("../../store/ctx.js"),index=require("../../utils/index.js"),annotation=require("../../hooks/annotation.js"),index$7=require("../../views/MainView/sidebar/index.js"),index$8=require("./audioSide/labelSidebar/index.js"),index$9=require("./audioSide/clipSidebar/index.js"),tag=require("../../assets/annotation/audio/tag.svg.js"),tagA=require("../../assets/annotation/audio/tagA.svg.js"),clip=require("../../assets/annotation/audio/clip.svg.js"),clipA=require("../../assets/annotation/audio/clipA.svg.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,n,a)=>n in e?__defProp(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,__spreadValues=(e,n)=>{for(var a in n||(n={}))__hasOwnProp.call(n,a)&&__defNormalProp(e,a,n[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(n))__propIsEnum.call(n,a)&&__defNormalProp(e,a,n[a]);return e},__spreadProps=(e,n)=>__defProps(e,__getOwnPropDescs(n));const{EAudioToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,{Sider,Content}=es.Layout,layoutCls=`${index$5.prefix}-layout`,ToggleAudioOption=({setSideTab:e,sideTab:n})=>{const a=[{tab:"tag",commonSvg:tag,selectedSvg:tagA},{tab:"clip",commonSvg:clip,selectedSvg:clipA}];return React__default.default.createElement("div",{className:index_module.toggleAudioOption},a.map((v,x)=>{const{tab:c,selectedSvg:E,commonSvg:S}=v;return React__default.default.createElement("div",{key:x,className:index_module.option},React__default.default.createElement("img",{className:index_module.icon,src:n===c?E:S,onClick:()=>{n!==c&&e(c)}}))}))},AudioTextToolTextarea=({result:e,inputDisabled:n,updateText:a,configList:v,autofocus:x,preContext:c,isCheck:E,clipAttributeConfigurable:S,clipTextConfigurable:q,textConfigurable:g,updateRegion:y,clipAttributeList:f})=>React__default.default.createElement("div",{className:index_module.textareaContainer},React__default.default.createElement("div",{className:index_module.textareaContent},React__default.default.createElement(index$6.default,{isCheck:E,result:e==null?void 0:e.value,textInputDisabled:n,textID:(e==null?void 0:e.id)||0,updateText:a,configList:v,autofocus:!n&&x,preContext:c,regions:e==null?void 0:e.regions,clipAttributeConfigurable:S,clipTextConfigurable:q,textConfigurable:g,updateRegion:y,clipAttributeList:f}))),AudioSideBar=e=>{var n,a;const{sider:v,config:x,result:c,updateTagResult:E,updateRegion:S,isEdit:q,tagConfigurable:g,clipConfigurable:y}=e;let f=(x==null?void 0:x.inputList)||[],C=(n=c==null?void 0:c.tag)!=null?n:{},r=(a=c==null?void 0:c.regions)!=null?a:[];const[D,P]=React.useState([]),[_,p]=React.useState("tag");React.useEffect(()=>{if(!g&&y){p("clip");return}p("tag")},[g,y]),React.useEffect(()=>(window.addEventListener("keydown",O),()=>{window.removeEventListener("keydown",O)}));const O=o=>{if(g&&y)switch(o.keyCode){case EKeyCode.L:p("tag");break;case EKeyCode.X:p("clip");break}if(_==="tag"){if(!lbAnnotation.CommonToolUtils.hotkeyFilter(o))return;lbAnnotation.CommonToolUtils.isMoveKey(o==null?void 0:o.keyCode)&&o.preventDefault();let i=o.keyCode;if(i&&(i<=57&&i>=49||i<=105&&i>=97)){i>57?i=i-97:i=i-49;const d=D.slice();f.length===1?(T(0,i),P([0,i]),setTimeout(()=>{P([])},500)):d.length===1?(T(d[0],i),P([d[0],i]),setTimeout(()=>{P([])},500)):P([i])}}},T=(o,i)=>{if(o<f.length&&f[o].subSelected&&i<f[o].subSelected.length){const d=f[o].value,m=f[o].isMulti;let j=f[o].subSelected[i].value,M=0;const $=C;for(const R in C)if(R===f[o].value){if(M++,m===!0){const w=$[R].split(";").filter(U=>U!==""),I=w.indexOf(j);I===-1?w.push(j):w.splice(I,1),j=w.join(";")}j===""?delete $[R]:$[R]=j}M===0&&Object.assign(C,{[d]:j}),E(C)}},h=o=>{delete C[o],E(C)},A=g&&y&&React__default.default.createElement(ToggleAudioOption,{setSideTab:p,sideTab:_}),N=_==="tag"&&React__default.default.createElement(index$8.default,{labelInfoSet:g?f:[],labelSelectedList:D,setLabel:T,tagResult:C,clearResult:h,isEdit:q,withPanelTab:!1}),s=_==="clip"&&React__default.default.createElement(index$9,{regions:r,updateRegion:S,useAudioClipStore:index$1.useAudioClipStore});return v?typeof v=="function"?React__default.default.createElement("div",{className:`${index$7.sidebarCls}`},v({toggleAudioOption:A,labelSidebar:N,clipSidebar:s})):v:React__default.default.createElement("div",{className:`${index$7.sidebarCls}`},React__default.default.createElement("div",{className:`${index$7.sidebarCls}__content`},A,N,s))},AudioAnnotate=e=>{var n,a,v,x,c,E,S,q,g;const y=(a=(n=e.style)==null?void 0:n.sider)==null?void 0:a.width,{step:f,stepList:C,audioContext:r,sider:D,drawLayerSlot:P,imgList:_,imgIndex:p,currentData:O,config:T,stepInfo:h}=e,A=lbAnnotation.CommonToolUtils.getCurrentStepToolAndConfig(f,C),N=index.jsonParser(O.result),{toolInstanceRef:s}=annotation.useCustomToolInstance({basicInfo:N}),[o,i]=React.useState(!0),[d,m]=React.useState(null),[j,M]=React.useState(0);React.useEffect(()=>{i(!0)},[p]),React.useEffect(()=>{o===!1&&ne()},[o]),React.useEffect(()=>{$()},[]),React.useEffect(()=>{s.current.exportData=()=>[[d],{duration:j,valid:B}],s.current.setResult=se,s.current.clearResult=ue,s.current.currentPageResult=d==null?void 0:d.regions,s.current.emit("updatePageNumber")},[d]);const $=()=>{s.current.emit=t=>{const l=s.current.fns.get(t);l&&l.forEach(u=>{u&&(u==null||u())})},s.current.fns=new Map,s.current.singleOn=(t,l)=>{s.current.fns.set(t,[l])},s.current.on=(t,l)=>{s.current.singleOn(t,l)},s.current.unbindAll=t=>{s.current.fns.delete(t)}},R=React.useMemo(()=>{const t=N[`step_${h==null?void 0:h.step}`];return(t==null?void 0:t.result)||[]},[T,N,h]),{tagConfigurable:w,textConfigurable:I=!0,clipConfigurable:U=!1,clipAttributeConfigurable:W=!1,clipAttributeList:F=[],clipTextConfigurable:V=!1,subAttributeList:G=[],secondaryAttributeConfigurable:H=!1,inputList:J=[],configList:Q=[]}=React.useMemo(()=>{if(A)return lbAnnotation.CommonToolUtils.jsonParser(A==null?void 0:A.config)},[A]),Y={clipConfigurable:U,clipAttributeConfigurable:W,clipAttributeList:F,clipTextConfigurable:V,subAttributeList:G,secondaryAttributeConfigurable:H},B=r?r==null?void 0:r.valid:!0,Z=(x=(v=lbAnnotation.CommonToolUtils.jsonParser(O.result))==null?void 0:v.duration)!=null?x:0,ee=B?Z:0,te=!B||o||![I,V].includes(!0);let X={};if(p!==-1&&(_==null?void 0:_.length)){const t=(c=_[p])==null?void 0:c.preResult,l=(r==null?void 0:r.isEdit)?(E=r==null?void 0:r.stepConfig)==null?void 0:E.loadPreStep:h==null?void 0:h.loadPreStep;if(t&&l){const u=lbAnnotation.CommonToolUtils.jsonParser(t),b=(q=(S=u==null?void 0:u.config)==null?void 0:S.context)!=null?q:{};Object.keys(b).forEach(L=>{L&&b[L]&&(X[L]={visible:!0,content:b[L],type:L})})}}const ne=()=>{(R==null?void 0:R.length)>0?m(R[0]):m({id:lbAnnotation.uuid(),sourceID:"",value:z(),tag:le(),regions:[]})},z=(t=!0)=>{const l={};let u=T.configList||[];return u.length>0&&u.forEach(b=>{l[b.key]=t&&b.default||""}),l},le=()=>lbAnnotation.TagUtils.getDefaultResultByConfig(T.inputList||[]),oe=({duration:t,hasError:l})=>{i(!1),M(t)},ie=t=>{m(l=>__spreadProps(__spreadValues({},l),{regions:((l==null?void 0:l.regions)||[]).filter(u=>u.id!==t)}))},K=t=>{m(l=>{var u;const b=(u=l==null?void 0:l.regions)!=null?u:[],{id:L}=t;return b.find(k=>k.id===L)?__spreadProps(__spreadValues({},l),{regions:b.map(k=>L===k.id?__spreadValues(__spreadValues({},k),t):k)}):__spreadProps(__spreadValues({},l),{regions:[...b,t]})})},ae=(t,l)=>{m(u=>__spreadProps(__spreadValues({},u),{value:__spreadProps(__spreadValues({},u.value),{[l]:t})}))},re=t=>{m(l=>__spreadProps(__spreadValues({},l),{tag:t}))},se=t=>{m(t)},ue=()=>{m(t=>__spreadProps(__spreadValues({},t),{value:z(),tag:{},regions:[]})),lbAnnotation.EventBus.emit("clearRegions")};return React__default.default.createElement(index$1.AudioClipProvider,null,React__default.default.createElement(antd.Spin,{spinning:o,wrapperClassName:"audio-tool-spinner"},React__default.default.createElement(es.Layout,{className:dom.getClassName("layout","container"),style:{height:"100%"}},e==null?void 0:e.leftSider,React__default.default.createElement(Content,{className:`${layoutCls}__content`},React__default.default.createElement("div",{className:index_module.containerWrapper},React__default.default.createElement("div",{className:index_module.audioWrapper},w&&React__default.default.createElement(index$2,{result:d==null?void 0:d.tag,labelInfoSet:J,hasPromptLayer:!!(r==null?void 0:r.promptLayer)}),r==null?void 0:r.promptLayer,React__default.default.createElement(index$3.AudioPlayer,__spreadValues({context:{isEdit:r==null?void 0:r.isEdit,count:ee,toolName:EAudioToolName.AudioTextTool,imgIndex:p},drawLayerSlot:P,fileData:O,onLoaded:oe,invalid:!B,updateRegion:K,removeRegion:ie,regions:d==null?void 0:d.regions,activeToolPanel:r==null?void 0:r.activeToolPanel,footer:e.footer},Y))),(I||V)&&React__default.default.createElement(AudioTextToolTextarea,{preContext:X,result:d,inputDisabled:te,updateText:ae,updateRegion:K,configList:Q,autofocus:!1,textConfigurable:I,clipTextConfigurable:V,clipAttributeList:F,clipAttributeConfigurable:W}))),React__default.default.createElement(Sider,{className:`${layoutCls}__side`,width:y!=null?y:240,style:(g=e.style)==null?void 0:g.sider},React__default.default.createElement(AudioSideBar,{sider:D,config:T,result:d,updateTagResult:re,updateRegion:K,isEdit:r==null?void 0:r.isEdit,tagConfigurable:w,clipConfigurable:U})),React__default.default.createElement(index$4,null))))};var AudioAnnotate$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(AudioAnnotate);module.exports=AudioAnnotate$1;
|
|
1
|
+
"use strict";var React=require("react"),index$3=require("../audioPlayer/index.js"),dom=require("../../utils/dom.js"),index$4=require("../predictTracking/previewResult/index.js"),es=require("antd/es"),antd=require("antd"),index$5=require("../../constant/index.js"),lbAnnotation=require("@labelbee/lb-annotation"),index_module=require("./index.module.scss.js"),index$2=require("./tagResultShow/index.js"),index$1=require("./audioContext/index.js"),index$6=require("./textInput/index.js"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),ctx=require("../../store/ctx.js"),index=require("../../utils/index.js"),annotation=require("../../hooks/annotation.js"),index$7=require("../../views/MainView/sidebar/index.js"),index$8=require("./audioSide/labelSidebar/index.js"),index$9=require("./audioSide/clipSidebar/index.js"),tag=require("../../assets/annotation/audio/tag.svg.js"),tagA=require("../../assets/annotation/audio/tagA.svg.js"),clip=require("../../assets/annotation/audio/clip.svg.js"),clipA=require("../../assets/annotation/audio/clipA.svg.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,n,a)=>n in e?__defProp(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,__spreadValues=(e,n)=>{for(var a in n||(n={}))__hasOwnProp.call(n,a)&&__defNormalProp(e,a,n[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(n))__propIsEnum.call(n,a)&&__defNormalProp(e,a,n[a]);return e},__spreadProps=(e,n)=>__defProps(e,__getOwnPropDescs(n));const{EAudioToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,{Sider,Content}=es.Layout,layoutCls=`${index$5.prefix}-layout`,ToggleAudioOption=({setSideTab:e,sideTab:n})=>{const a=[{tab:"tag",commonSvg:tag,selectedSvg:tagA},{tab:"clip",commonSvg:clip,selectedSvg:clipA}];return React__default.default.createElement("div",{className:index_module.toggleAudioOption},a.map((v,E)=>{const{tab:c,selectedSvg:y,commonSvg:_}=v;return React__default.default.createElement("div",{key:E,className:index_module.option},React__default.default.createElement("img",{className:index_module.icon,src:n===c?y:_,onClick:()=>{n!==c&&e(c)}}))}))},AudioTextToolTextarea=({result:e,inputDisabled:n,updateText:a,configList:v,autofocus:E,preContext:c,isCheck:y,clipAttributeConfigurable:_,clipTextConfigurable:q,textConfigurable:p,updateRegion:C,clipAttributeList:f,clipTextList:g})=>React__default.default.createElement("div",{className:index_module.textareaContainer},React__default.default.createElement("div",{className:index_module.textareaContent},React__default.default.createElement(index$6.default,{isCheck:y,result:e==null?void 0:e.value,textInputDisabled:n,textID:(e==null?void 0:e.id)||0,updateText:a,configList:v,autofocus:!n&&E,preContext:c,regions:e==null?void 0:e.regions,clipAttributeConfigurable:_,clipTextConfigurable:q,textConfigurable:p,updateRegion:C,clipAttributeList:f,clipTextList:g}))),AudioSideBar=e=>{var n,a;const{sider:v,config:E,result:c,updateTagResult:y,updateRegion:_,isEdit:q,tagConfigurable:p,clipConfigurable:C}=e;let f=(E==null?void 0:E.inputList)||[],g=(n=c==null?void 0:c.tag)!=null?n:{},r=(a=c==null?void 0:c.regions)!=null?a:[];const[D,P]=React.useState([]),[S,m]=React.useState("tag");React.useEffect(()=>{if(!p&&C){m("clip");return}m("tag")},[p,C]),React.useEffect(()=>(window.addEventListener("keydown",O),()=>{window.removeEventListener("keydown",O)}));const O=o=>{if(p&&C)switch(o.keyCode){case EKeyCode.L:m("tag");break;case EKeyCode.X:m("clip");break}if(S==="tag"){if(!lbAnnotation.CommonToolUtils.hotkeyFilter(o))return;lbAnnotation.CommonToolUtils.isMoveKey(o==null?void 0:o.keyCode)&&o.preventDefault();let i=o.keyCode;if(i&&(i<=57&&i>=49||i<=105&&i>=97)){i>57?i=i-97:i=i-49;const d=D.slice();f.length===1?(T(0,i),P([0,i]),setTimeout(()=>{P([])},500)):d.length===1?(T(d[0],i),P([d[0],i]),setTimeout(()=>{P([])},500)):P([i])}}},T=(o,i)=>{if(o<f.length&&f[o].subSelected&&i<f[o].subSelected.length){const d=f[o].value,b=f[o].isMulti;let L=f[o].subSelected[i].value,M=0;const $=g;for(const j in g)if(j===f[o].value){if(M++,b===!0){const w=$[j].split(";").filter(U=>U!==""),N=w.indexOf(L);N===-1?w.push(L):w.splice(N,1),L=w.join(";")}L===""?delete $[j]:$[j]=L}M===0&&Object.assign(g,{[d]:L}),y(g)}},A=o=>{delete g[o],y(g)},h=p&&C&&React__default.default.createElement(ToggleAudioOption,{setSideTab:m,sideTab:S}),I=S==="tag"&&React__default.default.createElement(index$8.default,{labelInfoSet:p?f:[],labelSelectedList:D,setLabel:T,tagResult:g,clearResult:A,isEdit:q,withPanelTab:!1}),s=S==="clip"&&React__default.default.createElement(index$9,{regions:r,updateRegion:_,useAudioClipStore:index$1.useAudioClipStore});return v?typeof v=="function"?React__default.default.createElement("div",{className:`${index$7.sidebarCls}`},v({toggleAudioOption:h,labelSidebar:I,clipSidebar:s})):v:React__default.default.createElement("div",{className:`${index$7.sidebarCls}`},React__default.default.createElement("div",{className:`${index$7.sidebarCls}__content`},h,I,s))},AudioAnnotate=e=>{var n,a,v,E,c,y,_,q,p;const C=(a=(n=e.style)==null?void 0:n.sider)==null?void 0:a.width,{step:f,stepList:g,audioContext:r,sider:D,drawLayerSlot:P,imgList:S,imgIndex:m,currentData:O,config:T,stepInfo:A}=e,h=lbAnnotation.CommonToolUtils.getCurrentStepToolAndConfig(f,g),I=index.jsonParser(O.result),{toolInstanceRef:s}=annotation.useCustomToolInstance({basicInfo:I}),[o,i]=React.useState(!0),[d,b]=React.useState(null),[L,M]=React.useState(0);React.useEffect(()=>{i(!0)},[m]),React.useEffect(()=>{o===!1&&le()},[o]),React.useEffect(()=>{$()},[]),React.useEffect(()=>{s.current.exportData=()=>[[d],{duration:L,valid:B}],s.current.setResult=ue,s.current.clearResult=de,s.current.currentPageResult=d==null?void 0:d.regions,s.current.emit("updatePageNumber")},[d]);const $=()=>{s.current.emit=t=>{const l=s.current.fns.get(t);l&&l.forEach(u=>{u&&(u==null||u())})},s.current.fns=new Map,s.current.singleOn=(t,l)=>{s.current.fns.set(t,[l])},s.current.on=(t,l)=>{s.current.singleOn(t,l)},s.current.unbindAll=t=>{s.current.fns.delete(t)}},j=React.useMemo(()=>{const t=I[`step_${A==null?void 0:A.step}`];return(t==null?void 0:t.result)||[]},[T,I,A]),{tagConfigurable:w,textConfigurable:N=!0,clipConfigurable:U=!1,clipAttributeConfigurable:F=!1,clipAttributeList:W=[],clipTextConfigurable:V=!1,subAttributeList:H=[],secondaryAttributeConfigurable:J=!1,inputList:Q=[],configList:Y=[],clipTextList:X=index$1.DEFAULT_CLIP_TEXT_CONFIG_ITEM}=React.useMemo(()=>{if(h)return lbAnnotation.CommonToolUtils.jsonParser(h==null?void 0:h.config)},[h]),Z={clipConfigurable:U,clipAttributeConfigurable:F,clipAttributeList:W,clipTextConfigurable:V,subAttributeList:H,secondaryAttributeConfigurable:J,clipTextList:X},B=r?r==null?void 0:r.valid:!0,ee=(E=(v=lbAnnotation.CommonToolUtils.jsonParser(O.result))==null?void 0:v.duration)!=null?E:0,te=B?ee:0,ne=!B||o||![N,V].includes(!0);let G={};if(m!==-1&&(S==null?void 0:S.length)){const t=(c=S[m])==null?void 0:c.preResult,l=(r==null?void 0:r.isEdit)?(y=r==null?void 0:r.stepConfig)==null?void 0:y.loadPreStep:A==null?void 0:A.loadPreStep;if(t&&l){const u=lbAnnotation.CommonToolUtils.jsonParser(t),x=(q=(_=u==null?void 0:u.config)==null?void 0:_.context)!=null?q:{};Object.keys(x).forEach(R=>{R&&x[R]&&(G[R]={visible:!0,content:x[R],type:R})})}}const le=()=>{(j==null?void 0:j.length)>0?b(j[0]):b({id:lbAnnotation.uuid(),sourceID:"",value:z(),tag:oe(),regions:[]})},z=(t=!0)=>{const l={};let u=T.configList||[];return u.length>0&&u.forEach(x=>{l[x.key]=t&&x.default||""}),l},oe=()=>lbAnnotation.TagUtils.getDefaultResultByConfig(T.inputList||[]),ie=({duration:t,hasError:l})=>{i(!1),M(t)},ae=t=>{b(l=>__spreadProps(__spreadValues({},l),{regions:((l==null?void 0:l.regions)||[]).filter(u=>u.id!==t)}))},K=t=>{b(l=>{var u;const x=(u=l==null?void 0:l.regions)!=null?u:[],{id:R}=t;return x.find(k=>k.id===R)?__spreadProps(__spreadValues({},l),{regions:x.map(k=>R===k.id?__spreadValues(__spreadValues({},k),t):k)}):__spreadProps(__spreadValues({},l),{regions:[...x,t]})})},re=(t,l)=>{b(u=>__spreadProps(__spreadValues({},u),{value:__spreadProps(__spreadValues({},u.value),{[l]:t})}))},se=t=>{b(l=>__spreadProps(__spreadValues({},l),{tag:t}))},ue=t=>{b(t)},de=()=>{b(t=>__spreadProps(__spreadValues({},t),{value:z(),tag:{},regions:[]})),lbAnnotation.EventBus.emit("clearRegions")};return React__default.default.createElement(index$1.AudioClipProvider,null,React__default.default.createElement(antd.Spin,{spinning:o,wrapperClassName:"audio-tool-spinner"},React__default.default.createElement(es.Layout,{className:dom.getClassName("layout","container"),style:{height:"100%"}},e==null?void 0:e.leftSider,React__default.default.createElement(Content,{className:`${layoutCls}__content`},React__default.default.createElement("div",{className:index_module.containerWrapper},React__default.default.createElement("div",{className:index_module.audioWrapper},w&&React__default.default.createElement(index$2,{result:d==null?void 0:d.tag,labelInfoSet:Q,hasPromptLayer:!!(r==null?void 0:r.promptLayer)}),r==null?void 0:r.promptLayer,React__default.default.createElement(index$3.AudioPlayer,__spreadValues({context:{isEdit:r==null?void 0:r.isEdit,count:te,toolName:EAudioToolName.AudioTextTool,imgIndex:m},drawLayerSlot:P,fileData:O,onLoaded:ie,invalid:!B,updateRegion:K,removeRegion:ae,regions:d==null?void 0:d.regions,activeToolPanel:r==null?void 0:r.activeToolPanel,footer:e.footer},Z))),(N||V)&&React__default.default.createElement(AudioTextToolTextarea,{preContext:G,result:d,inputDisabled:ne,updateText:re,updateRegion:K,configList:Y,autofocus:!1,textConfigurable:N,clipTextConfigurable:V,clipAttributeList:W,clipAttributeConfigurable:F,clipTextList:X}))),React__default.default.createElement(Sider,{className:`${layoutCls}__side`,width:C!=null?C:240,style:(p=e.style)==null?void 0:p.sider},React__default.default.createElement(AudioSideBar,{sider:D,config:T,result:d,updateTagResult:se,updateRegion:K,isEdit:r==null?void 0:r.isEdit,tagConfigurable:w,clipConfigurable:U})),React__default.default.createElement(index$4,null))))};var AudioAnnotate$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(AudioAnnotate);module.exports=AudioAnnotate$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),antd=require("antd"),icons=require("@ant-design/icons"),index$1=require("../../../views/MainView/sidebar/TextToolSidebar/index.js"),audio=require("../../../utils/audio.js"),lbAnnotation=require("@labelbee/lb-annotation"),classNames=require("classnames"),index=require("../audioContext/index.js"),index_module=require("./index.module.scss.js"),reactI18next=require("react-i18next");function _interopDefaultLegacy(l){return l&&typeof l=="object"&&"default"in l?l:{default:l}}var React__default=_interopDefaultLegacy(React),classNames__default=_interopDefaultLegacy(classNames),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(l,u,n)=>u in l?__defProp(l,u,{enumerable:!0,configurable:!0,writable:!0,value:n}):l[u]=n,__spreadValues=(l,u)=>{for(var n in u||(u={}))__hasOwnProp.call(u,n)&&__defNormalProp(l,n,u[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(u))__propIsEnum.call(u,n)&&__defNormalProp(l,n,u[n]);return l},__spreadProps=(l,u)=>__defProps(l,__getOwnPropDescs(u));const EKeyCode=lbAnnotation.cKeyCode.default,ClearIcon=({onClick:l,title:u,disabled:n})=>React__default.default.createElement(antd.Tooltip,{placement:"bottom",title:u},React__default.default.createElement("span",{className:classNames__default.default({[index_module.clearIcon]:!0,[index_module.disabled]:n}),onClick:l})),SingleTextInput=l=>{var u;const{t:n}=reactI18next.useTranslation(),k=React.useRef(null),[f,C]=React.useState(!1),[h,m]=React.useState(!1),{disabled:r,config:o,result:B,updateText:E,index:v,switchToNextTextarea:A,hasMultiple:D,textID:F,addPlaceholder:p,onFocus:T,onBlur:b,onFocusStyle:y={},extra:P}=l,{maxLength:x}=o,w=B?B[o.key]:"",N=(u=w==null?void 0:w.length)!=null?u:0,S=t=>{E&&(E(t,o.key),o.required&&m(!t))},O=D&&A,i={id:`textInput-${v}`,ref:k,disabled:r,value:w,maxLength:x,autoSize:{minRows:2,maxRows:6},onChange:t=>{const s=t.target.value;S(s)},onFocus:t=>{C(!0),T==null||T(t),t.target.value&&m(!1)},onBlur:t=>{C(!1),b==null||b(t),o.required&&m(!t.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:t=>{const{keyCode:s}=t;if(t.ctrlKey){if(s===EKeyCode.Enter&&t.preventDefault(),p&&[EKeyCode.One,EKeyCode.Two,EKeyCode.Three].includes(s))switch(t.preventDefault(),s){case EKeyCode.One:p("\u4986");break;case EKeyCode.Two:p("\u652B");break;case EKeyCode.Three:p("\u7383");break}}else s===EKeyCode.Tab&&O?(t.preventDefault(),t.nativeEvent.stopImmediatePropagation(),A(v)):t.nativeEvent.stopPropagation()}},c=React__default.default.createElement("div",{className:index_module.textAreaFooter},React__default.default.createElement("div",{className:index_module.hotkeyTip},O&&React__default.default.createElement("span",null,"[",n("Switch"),"]Tab"),React__default.default.createElement("span",null,"[",n("TurnPage"),"]Ctrl+Enter")),React__default.default.createElement("div",{className:index_module.wordCount},React__default.default.createElement("span",{className:N>=x?index_module.warning:""},N),"/",React__default.default.createElement("span",null,x)));return React.useEffect(()=>{r&&C(!1)},[r]),React.useEffect(()=>{m(!1)},[F]),React__default.default.createElement("div",{className:index_module.textField},React__default.default.createElement("div",{className:index_module.label},React__default.default.createElement("span",{className:classNames__default.default({[index_module.required]:o.required})},o.label),React__default.default.createElement(ClearIcon,{onClick:()=>{r||S("")},title:"",disabled:r}),React__default.default.createElement("div",{className:index_module.extra},P)),React__default.default.createElement("div",{className:classNames__default.default({disabled:r,"textarea-outline":!0,"ant-input-focused":f,[index_module.textareaContainer]:!0,[index_module.focus]:f,[index_module.invalid]:h}),style:f?y:{}},React__default.default.createElement(index$1.TextareaWithFooter,{footer:c,textareaProps:i})))},TextInput=l=>{const{configList:u,autofocus:n,textID:k,result:f,showText:C,updateText:h,toggleShowText:m,textInputDisabled:r,isCheck:o,isEdit:B,config:E,preContext:v,regions:A=[],textConfigurable:D=!0,clipTextConfigurable:F,clipAttributeConfigurable:p,updateRegion:T,clipAttributeList:b=[]}=l,{t:y}=reactI18next.useTranslation(),[P,x]=React.useState(0),[w,N]=React.useState(""),S=React.useRef(null),{audioClipState:O}=index.useAudioClipStore(),i=u||[__spreadValues({},audio.DEFAULT_TEXT_CONFIG_ITEM)];let c=A;if(F&&!o){const e=O.selectedRegion.id;c=c.filter(a=>a.id===e)}const t=e=>{setTimeout(()=>{const a=document.getElementById(`textInput-${e}`);a&&(x(e),a.focus(),a.select(),a.scrollIntoView({behavior:"smooth",block:"center"}))})},s=e=>{const a=D?i.length:0,d=F?c.length:0,g=a+d,I=(e+1)%g;t(I)},j=e=>{e.keyCode===EKeyCode.Tab&&(e.preventDefault(),i.length>0&&t(0))},L=e=>{const a=document.getElementById(`textInput-${P}`);if(!(E==null?void 0:E.enablePlaceholderHotkey)||!a||!h)return;const{value:d,selectionStart:g,selectionEnd:I}=a,_=`${d.slice(0,g)}${e}${d.slice(I)}`;h(_,i[P].key),N(e),setTimeout(()=>{a.setSelectionRange(g+1,g+1),a.focus()},0),clearTimeout(S.current),S.current=setTimeout(()=>{N("")},400)};React.useEffect(()=>(B||document.addEventListener("keydown",j),()=>{document.removeEventListener("keydown",j)}),[u]),React.useEffect(()=>{n&&!r&&t(0)},[k]);let q=i;o&&(q=i.filter(e=>(f==null?void 0:f[e.key])!==void 0));let M={};return F&&c&&c.forEach(e=>{const{id:a,text:d}=e;M[a]=d}),React__default.default.createElement(React__default.default.Fragment,null,(E==null?void 0:E.enablePlaceholderHotkey)&&React__default.default.createElement("div",{className:index_module.placeholderHotkey},React__default.default.createElement("div",{className:index_module.title},"\u5360\u4F4D\u7B26\u5FEB\u6377\u8F93\u5165",React__default.default.createElement(antd.Tooltip,{overlayStyle:{maxWidth:240},title:React__default.default.createElement("div",null,React__default.default.createElement("div",null,"\u4986\uFF08Ctrl+1\uFF09\uFF1A"),React__default.default.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4F46\u53EA\u6839\u636E\u8FD9\u4E2A\u5B57\u7684\u5F62\u72B6\u5C31\u53EF\u4EE5\u731C\u51FA\u662F\u4EC0\u4E48\u5B57"),React__default.default.createElement("div",null,"\u652B\uFF08Ctrl+2\uFF09\uFF1A"),React__default.default.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4E14\u65E0\u6CD5\u6839\u636E\u5F62\u72B6\u731C\u5B57\uFF0C\u4F46\u80FD\u7ED3\u5408\u4E0A\u4E0B\u6587\u8BED\u4E49\u5224\u65AD\u51FA\u662F\u4EC0\u4E48\u5B57"),React__default.default.createElement("div",null,"\u7383\uFF08Ctrl+3\uFF09\uFF1A"),React__default.default.createElement("div",null,"\u5B8C\u5168\u65E0\u6CD5\u5224\u65AD\u662F\u4EC0\u4E48\u5B57")),placement:"bottom"},React__default.default.createElement(icons.QuestionCircleOutlined,{className:index_module.questionIcon}))),React__default.default.createElement(antd.Radio.Group,{value:w},React__default.default.createElement(antd.Radio.Button,{value:"\u4986",onClick:e=>L(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u4986 (\u89C6\u89C9)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+1"))),React__default.default.createElement(antd.Radio.Button,{value:"\u652B",onClick:e=>L(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u652B (\u8BED\u4E49)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+2"))),React__default.default.createElement(antd.Radio.Button,{value:"\u7383",onClick:e=>L(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u7383 (\u65E0\u6548)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+3"))))),React__default.default.createElement("div",{className:index_module.textInputContainer},React__default.default.createElement(index.default,{audioContext:v==null?void 0:v.before}),D&&q.map((e,a)=>React__default.default.createElement(SingleTextInput,{config:e,key:a,index:a,result:f,updateText:h,switchToNextTextarea:s,hasMultiple:i.length>1,disabled:r,textID:k,addPlaceholder:L,onFocus:()=>x(a)})),F&&c.map((e,a)=>{const{id:d,start:g,end:I,attribute:_}=e,K={label:`${y("textTool")}\uFF08${audio.timeFormat(g,"ss.SSS")} - ${audio.timeFormat(I,"ss.SSS")}\uFF09`,key:d,maxLength:3e3},R=q.length+a,$=audio.getAttributeColor(_,b),H={color:audio.getAttributeFontColor(_,b),backgroundColor:$};return React__default.default.createElement(SingleTextInput,{config:K,key:a,index:R,disabled:r,result:M,updateText:V=>{T==null||T(__spreadProps(__spreadValues({},e),{text:V}))},switchToNextTextarea:()=>{s(R)},hasMultiple:!0,onFocus:()=>x(R),onFocusStyle:p?{borderColor:$,boxShadow:`0 0 0 2px ${audio.updateColorOpacity($,.4)}`}:{},extra:p?React__default.default.createElement("div",{style:H,className:index_module.attribute},audio.getAttributeShowText(_,[{value:"",key:y("NoAttribute")},...b])):null})}),React__default.default.createElement(index.default,{audioContext:v==null?void 0:v.after}),m&&React__default.default.createElement("div",{className:index_module.switchItem},y("toggleShowText"),React__default.default.createElement(antd.Switch,{style:{alignSelf:"center"},checked:C,onChange:e=>{m(e)}}))))};exports.ClearIcon=ClearIcon,exports.SingleTextInput=SingleTextInput,exports.default=TextInput;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),antd=require("antd"),icons=require("@ant-design/icons"),index$1=require("../../../views/MainView/sidebar/TextToolSidebar/index.js"),audio=require("../../../utils/audio.js"),lbAnnotation=require("@labelbee/lb-annotation"),classNames=require("classnames"),index=require("../audioContext/index.js"),index_module=require("./index.module.scss.js"),reactI18next=require("react-i18next");function _interopDefaultLegacy(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var React__default=_interopDefaultLegacy(React),classNames__default=_interopDefaultLegacy(classNames),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(a,l,n)=>l in a?__defProp(a,l,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[l]=n,__spreadValues=(a,l)=>{for(var n in l||(l={}))__hasOwnProp.call(l,n)&&__defNormalProp(a,n,l[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(l))__propIsEnum.call(l,n)&&__defNormalProp(a,n,l[n]);return a},__spreadProps=(a,l)=>__defProps(a,__getOwnPropDescs(l));const EKeyCode=lbAnnotation.cKeyCode.default,ClearIcon=({onClick:a,title:l,disabled:n})=>React__default.default.createElement(antd.Tooltip,{placement:"bottom",title:l},React__default.default.createElement("span",{className:classNames__default.default({[index_module.clearIcon]:!0,[index_module.disabled]:n}),onClick:a})),SingleTextInput=a=>{var l;const{t:n}=reactI18next.useTranslation(),A=React.useRef(null),[c,C]=React.useState(!1),[b,d]=React.useState(!1),{disabled:r,config:o,result:D,updateText:f,index:m,switchToNextTextarea:P,hasMultiple:L,textID:h,addPlaceholder:E,onFocus:y,onBlur:g,onFocusStyle:R={},extra:F,errorText:_}=a,{maxLength:v}=o,I=D?D[o.key]:"",N=(l=I==null?void 0:I.length)!=null?l:0,w=t=>{f&&(f(t,o.key),o.required&&d(!t))},O=L&&P,i={id:`textInput-${m}`,ref:A,disabled:r,value:I,maxLength:v,autoSize:{minRows:2,maxRows:6},onChange:t=>{const s=t.target.value;w(s)},onFocus:t=>{C(!0),y==null||y(t),t.target.value&&d(!1)},onBlur:t=>{C(!1),g==null||g(t),o.required&&d(!t.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:t=>{const{keyCode:s}=t;if(t.ctrlKey){if(s===EKeyCode.Enter&&t.preventDefault(),E&&[EKeyCode.One,EKeyCode.Two,EKeyCode.Three].includes(s))switch(t.preventDefault(),s){case EKeyCode.One:E("\u4986");break;case EKeyCode.Two:E("\u652B");break;case EKeyCode.Three:E("\u7383");break}}else s===EKeyCode.Tab&&O?(t.preventDefault(),t.nativeEvent.stopImmediatePropagation(),P(m)):t.nativeEvent.stopPropagation()}},p=React__default.default.createElement("div",{className:index_module.textAreaFooter},React__default.default.createElement("div",{className:index_module.hotkeyTip},O&&React__default.default.createElement("span",null,"[",n("Switch"),"]Tab"),React__default.default.createElement("span",null,"[",n("TurnPage"),"]Ctrl+Enter")),React__default.default.createElement("div",{className:index_module.wordCount},React__default.default.createElement("span",{className:N>=v?index_module.warning:""},N),"/",React__default.default.createElement("span",null,v)));return React.useEffect(()=>{r&&C(!1)},[r]),React.useEffect(()=>{d(!1)},[h]),React__default.default.createElement("div",{className:index_module.textField},React__default.default.createElement("div",{className:index_module.label},React__default.default.createElement("span",{className:classNames__default.default({[index_module.required]:o.required})},o.label),React__default.default.createElement(ClearIcon,{onClick:()=>{r||w("")},title:"",disabled:r}),React__default.default.createElement("div",{className:index_module.extra},F)),React__default.default.createElement("div",{className:classNames__default.default({disabled:r,"textarea-outline":!0,"ant-input-focused":c,[index_module.textareaContainer]:!0,[index_module.focus]:c,[index_module.invalid]:b}),style:c?R:{}},React__default.default.createElement(index$1.TextareaWithFooter,{footer:p,textareaProps:i})),_&&React__default.default.createElement("span",{style:{color:"#ff4d4f",lineHeight:"22px"}},_))},TextInput=a=>{const{configList:l,autofocus:n,textID:A,result:c,showText:C,updateText:b,toggleShowText:d,textInputDisabled:r,isCheck:o,isEdit:D,config:f,preContext:m,regions:P=[],textConfigurable:L=!0,clipTextConfigurable:h,clipAttributeConfigurable:E,updateRegion:y,clipAttributeList:g=[],clipTextList:R=index.DEFAULT_CLIP_TEXT_CONFIG_ITEM}=a,{t:F}=reactI18next.useTranslation(),[_,v]=React.useState(0),[I,N]=React.useState(""),w=React.useRef(null),{audioClipState:O}=index.useAudioClipStore(),i=l||[__spreadValues({},audio.DEFAULT_TEXT_CONFIG_ITEM)];let p=P;if(h&&!o){const e=O.selectedRegion.id;p=p.filter(u=>u.id===e)}const t=e=>{setTimeout(()=>{const u=document.getElementById(`textInput-${e}`);u&&(v(e),u.focus(),u.select(),u.scrollIntoView({behavior:"smooth",block:"center"}))})},s=e=>{const u=L?i.length:0,T=h?p.length:0,x=u+T,k=(e+1)%x;t(k)},K=e=>{e.keyCode===EKeyCode.Tab&&(e.preventDefault(),i.length>0&&t(0))},q=e=>{const u=document.getElementById(`textInput-${_}`);if(!(f==null?void 0:f.enablePlaceholderHotkey)||!u||!b)return;const{value:T,selectionStart:x,selectionEnd:k}=u,B=`${T.slice(0,x)}${e}${T.slice(k)}`;b(B,i[_].key),N(e),setTimeout(()=>{u.setSelectionRange(x+1,x+1),u.focus()},0),clearTimeout(w.current),w.current=setTimeout(()=>{N("")},400)};React.useEffect(()=>(D||document.addEventListener("keydown",K),()=>{document.removeEventListener("keydown",K)}),[l]),React.useEffect(()=>{n&&!r&&t(0)},[A]);let $=i;o&&($=i.filter(e=>(c==null?void 0:c[e.key])!==void 0));const S=p[0];return React__default.default.createElement(React__default.default.Fragment,null,(f==null?void 0:f.enablePlaceholderHotkey)&&React__default.default.createElement("div",{className:index_module.placeholderHotkey},React__default.default.createElement("div",{className:index_module.title},"\u5360\u4F4D\u7B26\u5FEB\u6377\u8F93\u5165",React__default.default.createElement(antd.Tooltip,{overlayStyle:{maxWidth:240},title:React__default.default.createElement("div",null,React__default.default.createElement("div",null,"\u4986\uFF08Ctrl+1\uFF09\uFF1A"),React__default.default.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4F46\u53EA\u6839\u636E\u8FD9\u4E2A\u5B57\u7684\u5F62\u72B6\u5C31\u53EF\u4EE5\u731C\u51FA\u662F\u4EC0\u4E48\u5B57"),React__default.default.createElement("div",null,"\u652B\uFF08Ctrl+2\uFF09\uFF1A"),React__default.default.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4E14\u65E0\u6CD5\u6839\u636E\u5F62\u72B6\u731C\u5B57\uFF0C\u4F46\u80FD\u7ED3\u5408\u4E0A\u4E0B\u6587\u8BED\u4E49\u5224\u65AD\u51FA\u662F\u4EC0\u4E48\u5B57"),React__default.default.createElement("div",null,"\u7383\uFF08Ctrl+3\uFF09\uFF1A"),React__default.default.createElement("div",null,"\u5B8C\u5168\u65E0\u6CD5\u5224\u65AD\u662F\u4EC0\u4E48\u5B57")),placement:"bottom"},React__default.default.createElement(icons.QuestionCircleOutlined,{className:index_module.questionIcon}))),React__default.default.createElement(antd.Radio.Group,{value:I},React__default.default.createElement(antd.Radio.Button,{value:"\u4986",onClick:e=>q(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u4986 (\u89C6\u89C9)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+1"))),React__default.default.createElement(antd.Radio.Button,{value:"\u652B",onClick:e=>q(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u652B (\u8BED\u4E49)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+2"))),React__default.default.createElement(antd.Radio.Button,{value:"\u7383",onClick:e=>q(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u7383 (\u65E0\u6548)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+3"))))),React__default.default.createElement("div",{className:index_module.textInputContainer},React__default.default.createElement(index.default,{audioContext:m==null?void 0:m.before}),L&&$.map((e,u)=>React__default.default.createElement(SingleTextInput,{config:e,key:u,index:u,result:c,updateText:b,switchToNextTextarea:s,hasMultiple:i.length>1,disabled:r,textID:A,addPlaceholder:q,onFocus:()=>v(u)})),h&&p.length>0&&R.map((e,u)=>{const{id:T,start:x,end:k,attribute:B}=S,{maxLength:W=3e3,label:H,key:G,required:z}=e,V=S==null?void 0:S[G],U={[S.id]:V},X={label:`${H!=null?H:F("textTool")}\uFF08${audio.timeFormat(x,"ss.SSS")} - ${audio.timeFormat(k,"ss.SSS")}\uFF09`,key:T,maxLength:W},j=$.length+u,M=audio.getAttributeColor(B,g),Q={color:audio.getAttributeFontColor(B,g),backgroundColor:M},J=F("LeastCharacterError",{num:1}),Y=z&&V.length<1?J:void 0;return React__default.default.createElement(SingleTextInput,{config:X,key:u,index:j,disabled:r,result:U,updateText:Z=>{y==null||y(__spreadProps(__spreadValues({},S),{[G]:Z}))},switchToNextTextarea:()=>{s(j)},hasMultiple:!0,onFocus:()=>v(j),onFocusStyle:E?{borderColor:M,boxShadow:`0 0 0 2px ${audio.updateColorOpacity(M,.4)}`}:{},extra:E?React__default.default.createElement("div",{style:Q,className:index_module.attribute},audio.getAttributeShowText(B,[{value:"",key:F("NoAttribute")},...g])):null,errorText:Y})}),React__default.default.createElement(index.default,{audioContext:m==null?void 0:m.after}),d&&React__default.default.createElement("div",{className:index_module.switchItem},F("toggleShowText"),React__default.default.createElement(antd.Switch,{style:{alignSelf:"center"},checked:C,onChange:e=>{d(e)}}))))};exports.ClearIcon=ClearIcon,exports.SingleTextInput=SingleTextInput,exports.default=TextInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var React=require("react"),ReactDOM=require("react-dom"),index=require("../../audioAnnotate/audioContext/index.js"),audio=require("../../../utils/audio.js"),loop=require("../../../assets/annotation/audio/loop.svg.js"),antd=require("antd"),ahooks=require("ahooks"),index$1=require("../../../utils/index.js"),index_module=require("./index.module.scss.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React),ReactDOM__default=_interopDefaultLegacy(ReactDOM);const{Paragraph}=antd.Typography,ClipRegion=t=>{const{audioClipState:
|
|
1
|
+
"use strict";var React=require("react"),ReactDOM=require("react-dom"),index=require("../../audioAnnotate/audioContext/index.js"),audio=require("../../../utils/audio.js"),loop=require("../../../assets/annotation/audio/loop.svg.js"),antd=require("antd"),ahooks=require("ahooks"),index$1=require("../../../utils/index.js"),index_module=require("./index.module.scss.js"),reactI18next=require("react-i18next");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React),ReactDOM__default=_interopDefaultLegacy(ReactDOM);const{Paragraph}=antd.Typography,ClipRegion=t=>{const{t:b}=reactI18next.useTranslation(),{audioClipState:g,setAudioClipState:m}=index.useAudioClipStore(),{clipAttributeList:a,clipAttributeConfigurable:C,clipTextConfigurable:y,selectedRegion:n,clipTextList:u}=g,d=React.useRef(null),{el:h,region:c,edgeAdsorption:R,clipping:q,instance:f}=t,{attribute:l="",text:j="",id:i,start:A,end:E}=c,{id:s}=n,o=audio.getAttributeColor(l,a),p={color:audio.getAttributeFontColor(l,a),backgroundColor:o},e={border:`2px solid ${o}`};if(i===s)e.backgroundColor=audio.updateColorOpacity(o,.6),e.borderLeft=`2px solid ${o}`,e.borderRight=`2px solid ${o}`;else if(f==null||f.setLoop(!1),e.borderLeft=`2px solid ${o}`,e.borderRight=`2px solid ${o}`,q){const r=Object.values(R);r.includes(A)&&(e.borderLeft="3px dashed #fff"),r.includes(E)&&(e.borderRight="3px dashed #fff")}ahooks.useClickAway(()=>{i===s&&m({selectedRegion:{}})},d,["contextmenu"]);const k=i===s&&n.loop,L=React__default.default.createElement("div",{style:e,ref:d,className:index$1.classnames({[index_module.container]:!0})},k&&React__default.default.createElement("div",{className:index_module.loop},React__default.default.createElement("img",{src:loop})),C&&React__default.default.createElement("div",null,React__default.default.createElement("div",{style:p,className:index_module.attribute},audio.getAttributeShowText(l,[{value:"",key:"\u65E0\u5C5E\u6027"},...a]))),y&&(u==null?void 0:u.map((r,_)=>{var v,x;return React__default.default.createElement(Paragraph,{ellipsis:{rows:2},className:index_module.text,style:p,key:_},(v=r==null?void 0:r.label)!=null?v:b("textTool"),":",(x=c[r==null?void 0:r.key])!=null?x:"")})));return React__default.default.createElement(React__default.default.Fragment,null,ReactDOM__default.default.createPortal(L,h))};module.exports=ClipRegion;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),getWebPcm2Wac=require("../audioAnnotate/utils/getWebPcm2Wac.js"),_=require("lodash"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),index$a=require("../invalidPage/index.js"),index$5=require("../imageError/index.js"),index$9=require("../../utils/index.js"),index$c=require("../videoPlayer/components/SpeedController/index.js"),WaveSurfer=require("@labelbee/wavesurfer"),Region=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js"),Cursor=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js"),index$d=require("./zoomSlider/index.js"),index$e=require("./labelDisplayToggle/index.js"),index$f=require("./clipRegion/index.js"),index=require("../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks"),index$1=require("./useAudioScroll/index.js"),index_module=require("./index.module.scss.js"),audio=require("../../utils/audio.js"),index$b=require("./progressDot/index.js"),index$6=require("./clipTip/index.js"),index$4=require("./useSwitchHotkey/index.js"),index$2=require("./useAudioCombine/index.js"),index$3=require("./useAudioSegment/index.js"),index$7=require("./combineTip/index.js"),index$8=require("./segmentTip/index.js"),index$g=require("../../views/MainView/toolFooter/index.js"),utils=require("../videoPlayer/utils.js");function _interopDefaultLegacy(u){return u&&typeof u=="object"&&"default"in u?u:{default:u}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_),WaveSurfer__default=_interopDefaultLegacy(WaveSurfer),Region__default=_interopDefaultLegacy(Region),Cursor__default=_interopDefaultLegacy(Cursor),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(u,s,c)=>s in u?__defProp(u,s,{enumerable:!0,configurable:!0,writable:!0,value:c}):u[s]=c,__spreadValues=(u,s)=>{for(var c in s||(s={}))__hasOwnProp.call(s,c)&&__defNormalProp(u,c,s[c]);if(__getOwnPropSymbols)for(var c of __getOwnPropSymbols(s))__propIsEnum.call(s,c)&&__defNormalProp(u,c,s[c]);return u},__spreadProps=(u,s)=>__defProps(u,__getOwnPropDescs(s));const{EToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,PER_PROGRESS=.1,AudioPlayerContext=React__default.default.createContext({count:0,isEdit:!1,toolName:EToolName.Empty,imgIndex:0}),AudioPlayer=({fileData:u={},onLoaded:s,context:c,invalid:$e,height:Le,hideError:Ie,onError:te,updateRegion:x,removeRegion:B,regions:C=[],activeToolPanel:Oe,clipConfigurable:Ne,clipTextConfigurable:We,clipAttributeList:Fe,clipAttributeConfigurable:re,secondaryAttributeConfigurable:ze,subAttributeList:Ue,isCheck:E,hoverRegionId:L,footer:He,drawLayerSlot:ne})=>{var oe,ie;const{url:M,path:ae}=u,[I,O]=React.useState(!1),[le,se]=React.useState(!1),[R,Xe]=React.useState(0),[Ze,ue]=React.useState(!1),[D,ce]=React.useState(0),o=React.useRef(null),S=React.useRef(null),de=React.useRef(R),N=e=>{de.current=e,Xe(e)},[ve,Ke]=React.useState(0),[k,Ve]=React.useState(1),W=React.useRef(null),[fe,Ge]=React.useState({}),{audioClipState:F,setAudioClipState:T}=index.useAudioClipStore(),[z,U]=React.useState(!1),d=ahooks.useLatest(F),me=ahooks.useLatest(fe),Ye=ahooks.useLatest(I),w=ahooks.useLatest(C),pe=ahooks.useUpdate(),[ge,Je]=React.useState([]),[be,Qe]=React.useState({}),et=_.debounce(()=>{lbAnnotation.EventBus.emit("audioZoom")},500),_e=e=>{e<index$d.audioZoomInfo.min||e>index$d.audioZoomInfo.max||(Ve(e),audio.dispatchResizeEvent(),et())};index$1({container:W.current,target:document.querySelector(`[data-id=${(ie=(oe=d.current)==null?void 0:oe.selectedRegion)==null?void 0:ie.id}]`),clipping:z,zoom:k,zoomHandler:_e});const $=()=>{let e=w.current;const{attributeLockList:r}=d.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),X(),e.forEach(t=>{var n;(n=o.current)==null||n.addRegion(__spreadProps(__spreadValues({},t),{drag:!E,resize:!E,color:"rgba(0, 0, 0, 0)"}))}),pe()},v=e=>{var r,t,n,i,a,f,p;const{id:l,loop:m=!0,playImmediately:y=!1}=e;if(l){const A=(n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{};Object.entries(A).forEach(([,g])=>{const{id:P}=g;l===P?g.select():g.cancelSelect()}),T({selectedRegion:{id:l,loop:m},selectedAttribute:(f=(a=(i=w.current)==null?void 0:i.find(g=>g.id===l))==null?void 0:a.attribute)!=null?f:""}),m&&y&&((p=q(l))==null||p.playLoop())}else T({selectedRegion:{}})},{combineInstance:tt}=index$2({waveRef:o,sortByStartRegions:ge,regionMap:be,updateRegion:x,removeRegion:B,generateRegions:$,setSelectedRegion:v}),{segmentInstance:rt,onRegionMouseMove:nt,segmentTimeTip:ot}=index$3({waveRef:o,regionMap:be,updateRegion:x,removeRegion:B,generateRegions:$,setSelectedRegion:v}),ye={clipTextConfigurable:We,clipAttributeList:Fe,clipAttributeConfigurable:re,clipConfigurable:Ne,secondaryAttributeConfigurable:ze,subAttributeList:Ue};React.useEffect(()=>{T({selectedAttribute:""})},[re]),React.useEffect(()=>{H()},[F.selectedAttribute]),React.useEffect(()=>{$()},[F.attributeLockList]),ahooks.useDeepCompareEffect(()=>{T(ye),setTimeout(()=>{Ee()})},[ye]),ahooks.useDeepCompareEffect(()=>{Je(_.sortBy(C,["start"])),Qe(C.reduce((e,r)=>{const{id:t}=r;return __spreadProps(__spreadValues({},e),{[t]:r})},{}))},[C]),React.useEffect(()=>{if(L){const e=Ye.current;v({id:L,loop:e,playImmediately:!0})}else v({})},[L]);const Ee=()=>{var e,r;d.current.clipConfigurable?(!E&&o.current&&((e=o.current)==null||e.enableDragSelection({slop:5})),$()):((r=o.current)==null||r.disableDragSelection(),X()),H()},H=()=>{var e,r,t,n,i;let a="";d.current.clipConfigurable?a=audio.getAttributeColor(d.current.selectedAttribute,(e=d.current.clipAttributeList)!=null?e:[]):a="transparent",((t=(r=o==null?void 0:o.current)==null?void 0:r.cursor)==null?void 0:t.cursor)&&((i=(n=o==null?void 0:o.current)==null?void 0:n.cursor)==null||i.setStyle({border:`2px dashed ${a}`}))},q=e=>{var r,t,n;return((n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{})[e]},Re=()=>{var e,r;if(M){const t=((r=(e=ae==null?void 0:ae.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";ue(!1),t?getWebPcm2Wac.getWebPcm2WavBase64(M).then(n=>{Se(n)}):Se(M)}},Se=e=>{var r;e&&(se(!0),N(0),ce(0),(r=o==null?void 0:o.current)==null||r.load(e))},X=()=>{var e;(e=o.current)==null||e.clearRegions()},Z=e=>{const r=q(e);r&&(U(!1),r==null||r.remove(),B==null||B(e),v({}))},{run:he}=ahooks.useThrottleFn(v,{wait:500});index$4({sortByStartRegions:ge,setSelectedRegion:v});const it=e=>{const{start:r,end:t}=me.current;return(r||t)&&e.update(me.current),e},at=({action:e,id:r,eventDownTime:t})=>{var n,i;if(!d.current.clipConfigurable)return;r&&v({id:r});const a=q((r!=null?r:(n=d.current.selectedRegion)==null?void 0:n.id)||""),f=[];(e==="create"?w.current:(i=w.current)==null?void 0:i.filter(m=>m.id!==a.id)).forEach(m=>{const{start:y,end:A,attribute:g}=m;g===d.current.selectedAttribute&&[y,A].forEach(P=>{f.includes(P)||f.push(P)})});const l=audio.getCanMoveRange(f.sort((m,y)=>m-y),t);o.current.range=l},lt=e=>{H(),setTimeout(()=>{U(!1)});const r=it(e),{id:t,start:n,end:i}=r;v({id:t,playImmediately:!0});const a={id:t,start:utils.decimalReserved(n,3),end:utils.decimalReserved(i,3)};x==null||x(a),pe()},st=()=>{const e=WaveSurfer__default.default.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:Le||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[Region__default.default.create({regions:C,dragSelection:{slop:5},canMove:!1}),Cursor__default.default.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;N(((t=o==null?void 0:o.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const n=((t=o==null?void 0:o.current)==null?void 0:t.getDuration())||0;ce(n),r(),s==null||s({duration:Math.round(n)}),se(!1),j(),lbAnnotation.EventBus.on("setCurrentTimeByPosition",V),lbAnnotation.EventBus.on("clearRegions",X),lbAnnotation.EventBus.on("removeRegionById",Z),lbAnnotation.EventBus.on("setSelectedRegion",he),e.on("regions-eventDown",at),Ee()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{O(!0)}),e.on("pause",()=>{O(!1)}),e.on("finish",()=>{O(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{ue(!0),s==null||s({hasError:!0}),te==null||te()}),e.on("region-created",t=>{var n;const{id:i,start:a,end:f}=t;if(w.current.find(l=>l.id===i))return;const p={id:i,start:utils.decimalReserved(a,3),end:utils.decimalReserved(f,3),attribute:d.current.selectedAttribute,text:""};if(d.current.secondaryAttributeConfigurable){const l=lbAnnotation.TagUtils.getDefaultResultByConfig((n=d.current.subAttributeList)!=null?n:[]);p.subAttribute=l!=null?l:{}}x==null||x(p)}),e.on("region-updated",(t,n)=>{var i,a,f,p,l,m,y,A,g,P;const je=n==null?void 0:n.action;T({combined:!1,segment:!1}),je==="resize"&&((a=(i=o==null?void 0:o.current)==null?void 0:i.cursor)==null||a.setStyle({borderStyle:"solid"})),je==="drag"&&((p=(f=o==null?void 0:o.current)==null?void 0:f.cursor)==null||p.setStyle({borderColor:"transparent"}));const G={},Y=[],J={},Et=(l=w.current)==null?void 0:l.filter(b=>b.id!==t.id),Rt=(A=(y=(m=o.current)==null?void 0:m.regions)==null?void 0:y.list)!=null?A:{};Et.forEach(b=>{var Me,De;const{element:Q}=(Me=Rt[b.id])!=null?Me:{},{start:Pt,end:xt}=b;if(Q){const{x:ke,width:Ct}=((De=Q.getBoundingClientRect)==null?void 0:De.call(Q))||{},wt=ke+Ct;[ke,wt].forEach((ee,At)=>{Y.includes(ee)||(Y.push(ee),J[ee]=At===0?Pt:xt)})}});const{x:Be,width:St}=((P=(g=t.element).getBoundingClientRect)==null?void 0:P.call(g))||{},ht=Be+St;Y.forEach(b=>{Math.abs(audio.precisionMinus(b,Be))<5&&(G.start=J[b]),Math.abs(audio.precisionMinus(b,ht))<5&&(G.end=J[b])}),Ge(G),he({id:t.id}),U(!0)}),e.on("region-update-end",t=>{lt(t)}),e.on("region-contextmenu",(t,n)=>{if(!E){if(n.preventDefault(),n.stopPropagation(),audio.isDoubleClick(n)){Z(t.id);return}v({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,n,i)=>{if(!E){if(n.preventDefault(),n.stopPropagation(),d.current.combined){tt(t);return}if(d.current.segment){rt(t,i);return}v({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",nt),o.current=e},ut=I?React__default.default.createElement(icons.PauseOutlined,null):React__default.default.createElement(icons.CaretRightOutlined,null),Pe=e=>e?`${parseFloat((e/D*100).toFixed(4))}%`:"0%",xe=Pe(R),ct=Pe(ve),h=()=>{if(!le)return o==null?void 0:o.current},dt=()=>{var e;(e=h())==null||e.skipForward(PER_PROGRESS)},vt=()=>{var e;(e=h())==null||e.skipBackward(PER_PROGRESS)},j=()=>{var e;(e=h())==null||e.playPause(),v({})},Ce=e=>{var r;switch(e.keyCode){case EKeyCode.Right:dt();break;case EKeyCode.Left:vt();break;case EKeyCode.Space:e.preventDefault(),j();break;case EKeyCode.Delete:if(!E){const{id:t}=((r=d.current)==null?void 0:r.selectedRegion)||{};t&&Z(t)}break}},ft=e=>{V(e)},we=___default.default.throttle(ft,50);let K=!1;const Ae=()=>{K&&(j(),K=!1),document.removeEventListener("mousemove",we),document.removeEventListener("mouseup",Ae)},mt=e=>{V(e),I&&(K=!0,j()),document.addEventListener("mousemove",we),document.addEventListener("mouseup",Ae)},pt=()=>{Re()};React.useEffect(()=>(st(),()=>{var e;(e=o==null?void 0:o.current)==null||e.destroy(),o.current=null,lbAnnotation.EventBus.unbindAll("setCurrentTimeByPosition"),lbAnnotation.EventBus.unbindAll("clearRegions"),lbAnnotation.EventBus.unbindAll("removeRegionById"),lbAnnotation.EventBus.unbindAll("setSelectedRegion")}),[]);const gt=e=>{var r,t,n;(r=h())==null||r.playPause(),(t=h())==null||t.setPlaybackRate(e),(n=h())==null||n.playPause()};React.useEffect(()=>(document.addEventListener("keydown",Ce),()=>{document.removeEventListener("keydown",Ce)})),React.useEffect(()=>{v({}),Re()},[M]);const Te=e=>{var r,t,n,i;if((o==null?void 0:o.current)&&(S==null?void 0:S.current)){const a=(t=(r=o==null?void 0:o.current)==null?void 0:r.getDuration())!=null?t:0,f=(n=S==null?void 0:S.current)==null?void 0:n.getBoundingClientRect();let l=(e.clientX-f.left)/(((i=S==null?void 0:S.current)==null?void 0:i.clientWidth)||0)*a;return l>a&&(l=a),l}return 0},V=e=>{var r;const t=Te(e);(r=o==null?void 0:o.current)==null||r.skip(t-de.current),N(t)},bt=e=>{Ke(Te(e))},_t=D?Math.max(D-R,0):0,yt=(c==null?void 0:c.toolName)!==EToolName.Empty&&(c==null?void 0:c.isEdit)!==!0&&(Oe==="remark"||E),qe=React__default.default.createElement("div",{className:index_module.audioPlayer},Ze&&!Ie&&React__default.default.createElement(index$5,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:pt,backgroundColor:"#ffffffbb"}),React__default.default.createElement(index$6,{getRegionInstanceById:q,clipping:z}),React__default.default.createElement(index$7,{container:W.current}),React__default.default.createElement(index$8,{segmentTimeTip:ot}),React__default.default.createElement("div",{className:index_module.waveformContainer,ref:W},React__default.default.createElement("div",{id:"waveform",style:{width:`${k*100}%`},className:index$9.classnames({[index_module.waveform]:!0,"bee-audio-combined":d.current.combined,"bee-audio-clip":d.current.clipConfigurable})},$e&&React__default.default.createElement(index$a,{isAudio:!0}),React__default.default.createElement("div",{ref:S,className:index_module.progress,onMouseDown:mt,onMouseMove:bt},React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0}),style:{left:xe}},audio.formatTime(R)),React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0,[index_module.mouseTooltip]:!0}),style:{left:ct}},audio.formatTime(ve)),React__default.default.createElement(index$b,{playPercentage:xe})),yt&&(ne==null?void 0:ne({currentTime:R,remainingTime:_t,audioPlayer:h()})))),React__default.default.createElement("div",{className:index_module.controlBar},React__default.default.createElement(antd.Button,{type:"link",icon:ut,onClick:()=>{j()},className:index$9.classnames({[index_module.playButton]:!0,[index_module.playButtonDisabled]:le})}),React__default.default.createElement("span",{className:index_module.time},`${audio.timeFormat(R,"ss.SSS")} / -${audio.timeFormat(D-R,"ss.SSS")}`),React__default.default.createElement(index$c.default,{playerType:index$c.EPlayerType.Audio,onChange:e=>{gt(e)}}),React__default.default.createElement(index$d.default,{onChange:e=>{_e(e)},zoom:k}),React__default.default.createElement(index$e,{EventBus:lbAnnotation.EventBus})));return c?React__default.default.createElement(AudioPlayerContext.Provider,{value:c},qe,C.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?React__default.default.createElement(index$f,{el:t,key:r,region:e,edgeAdsorption:fe,clipping:z,zoom:k,instance:q(r)}):null}),React__default.default.createElement(index$g.default,{footer:He})):qe};exports.AudioPlayer=AudioPlayer,exports.AudioPlayerContext=AudioPlayerContext;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),getWebPcm2Wac=require("../audioAnnotate/utils/getWebPcm2Wac.js"),_=require("lodash"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),index$a=require("../invalidPage/index.js"),index$5=require("../imageError/index.js"),index$9=require("../../utils/index.js"),index$c=require("../videoPlayer/components/SpeedController/index.js"),WaveSurfer=require("@labelbee/wavesurfer"),Region=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js"),Cursor=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js"),index$d=require("./zoomSlider/index.js"),index$e=require("./labelDisplayToggle/index.js"),index$f=require("./clipRegion/index.js"),index=require("../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks"),index$1=require("./useAudioScroll/index.js"),index_module=require("./index.module.scss.js"),audio=require("../../utils/audio.js"),index$b=require("./progressDot/index.js"),index$6=require("./clipTip/index.js"),index$4=require("./useSwitchHotkey/index.js"),index$2=require("./useAudioCombine/index.js"),index$3=require("./useAudioSegment/index.js"),index$7=require("./combineTip/index.js"),index$8=require("./segmentTip/index.js"),index$g=require("../../views/MainView/toolFooter/index.js"),utils=require("../videoPlayer/utils.js");function _interopDefaultLegacy(u){return u&&typeof u=="object"&&"default"in u?u:{default:u}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_),WaveSurfer__default=_interopDefaultLegacy(WaveSurfer),Region__default=_interopDefaultLegacy(Region),Cursor__default=_interopDefaultLegacy(Cursor),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(u,s,d)=>s in u?__defProp(u,s,{enumerable:!0,configurable:!0,writable:!0,value:d}):u[s]=d,__spreadValues=(u,s)=>{for(var d in s||(s={}))__hasOwnProp.call(s,d)&&__defNormalProp(u,d,s[d]);if(__getOwnPropSymbols)for(var d of __getOwnPropSymbols(s))__propIsEnum.call(s,d)&&__defNormalProp(u,d,s[d]);return u},__spreadProps=(u,s)=>__defProps(u,__getOwnPropDescs(s));const{EToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,PER_PROGRESS=.1,AudioPlayerContext=React__default.default.createContext({count:0,isEdit:!1,toolName:EToolName.Empty,imgIndex:0}),AudioPlayer=({fileData:u={},onLoaded:s,context:d,invalid:Le,height:Oe,hideError:Ne,onError:te,updateRegion:x,removeRegion:B,regions:C=[],activeToolPanel:We,clipConfigurable:Fe,clipTextConfigurable:re,clipAttributeList:ze,clipAttributeConfigurable:ne,secondaryAttributeConfigurable:Ue,subAttributeList:He,isCheck:E,hoverRegionId:I,footer:Xe,drawLayerSlot:oe,clipTextList:ie})=>{var ae,le;const{url:M,path:se}=u,[L,O]=React.useState(!1),[ue,de]=React.useState(!1),[R,Ze]=React.useState(0),[Ke,ce]=React.useState(!1),[D,fe]=React.useState(0),o=React.useRef(null),S=React.useRef(null),ve=React.useRef(R),N=e=>{ve.current=e,Ze(e)},[me,Ve]=React.useState(0),[k,Ge]=React.useState(1),W=React.useRef(null),[pe,Ye]=React.useState({}),{audioClipState:F,setAudioClipState:T}=index.useAudioClipStore(),[z,U]=React.useState(!1),c=ahooks.useLatest(F),ge=ahooks.useLatest(pe),Je=ahooks.useLatest(L),w=ahooks.useLatest(C),be=ahooks.useUpdate(),[_e,Qe]=React.useState([]),[ye,et]=React.useState({}),tt=_.debounce(()=>{lbAnnotation.EventBus.emit("audioZoom")},500),Ee=e=>{e<index$d.audioZoomInfo.min||e>index$d.audioZoomInfo.max||(Ge(e),audio.dispatchResizeEvent(),tt())};index$1({container:W.current,target:document.querySelector(`[data-id=${(le=(ae=c.current)==null?void 0:ae.selectedRegion)==null?void 0:le.id}]`),clipping:z,zoom:k,zoomHandler:Ee});const $=()=>{let e=w.current;const{attributeLockList:r}=c.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),X(),e.forEach(t=>{var n;(n=o.current)==null||n.addRegion(__spreadProps(__spreadValues({},t),{drag:!E,resize:!E,color:"rgba(0, 0, 0, 0)"}))}),be()},f=e=>{var r,t,n,a,l,v,p;const{id:i,loop:m=!0,playImmediately:y=!1}=e;if(i){const A=(n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{};Object.entries(A).forEach(([,g])=>{const{id:P}=g;i===P?g.select():g.cancelSelect()}),T({selectedRegion:{id:i,loop:m},selectedAttribute:(v=(l=(a=w.current)==null?void 0:a.find(g=>g.id===i))==null?void 0:l.attribute)!=null?v:""}),m&&y&&((p=j(i))==null||p.playLoop())}else T({selectedRegion:{}})},{combineInstance:rt}=index$2({waveRef:o,sortByStartRegions:_e,regionMap:ye,updateRegion:x,removeRegion:B,generateRegions:$,setSelectedRegion:f}),{segmentInstance:nt,onRegionMouseMove:ot,segmentTimeTip:it}=index$3({waveRef:o,regionMap:ye,updateRegion:x,removeRegion:B,generateRegions:$,setSelectedRegion:f}),Re={clipTextConfigurable:re,clipAttributeList:ze,clipAttributeConfigurable:ne,clipConfigurable:Fe,secondaryAttributeConfigurable:Ue,subAttributeList:He,clipTextList:ie};React.useEffect(()=>{T({selectedAttribute:""})},[ne]),React.useEffect(()=>{H()},[F.selectedAttribute]),React.useEffect(()=>{$()},[F.attributeLockList]),ahooks.useDeepCompareEffect(()=>{T(Re),setTimeout(()=>{Se()})},[Re]),ahooks.useDeepCompareEffect(()=>{Qe(_.sortBy(C,["start"])),et(C.reduce((e,r)=>{const{id:t}=r;return __spreadProps(__spreadValues({},e),{[t]:r})},{}))},[C]),React.useEffect(()=>{if(I){const e=Je.current;f({id:I,loop:e,playImmediately:!0})}else f({})},[I]);const Se=()=>{var e,r;c.current.clipConfigurable?(!E&&o.current&&((e=o.current)==null||e.enableDragSelection({slop:5})),$()):((r=o.current)==null||r.disableDragSelection(),X()),H()},H=()=>{var e,r,t,n,a;let l="";c.current.clipConfigurable?l=audio.getAttributeColor(c.current.selectedAttribute,(e=c.current.clipAttributeList)!=null?e:[]):l="transparent",((t=(r=o==null?void 0:o.current)==null?void 0:r.cursor)==null?void 0:t.cursor)&&((a=(n=o==null?void 0:o.current)==null?void 0:n.cursor)==null||a.setStyle({border:`2px dashed ${l}`}))},j=e=>{var r,t,n;return((n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{})[e]},he=()=>{var e,r;if(M){const t=((r=(e=se==null?void 0:se.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";ce(!1),t?getWebPcm2Wac.getWebPcm2WavBase64(M).then(n=>{Pe(n)}):Pe(M)}},Pe=e=>{var r;e&&(de(!0),N(0),fe(0),(r=o==null?void 0:o.current)==null||r.load(e))},X=()=>{var e;(e=o.current)==null||e.clearRegions()},Z=e=>{const r=j(e);r&&(U(!1),r==null||r.remove(),B==null||B(e),f({}))},{run:xe}=ahooks.useThrottleFn(f,{wait:500});index$4({sortByStartRegions:_e,setSelectedRegion:f});const at=e=>{const{start:r,end:t}=ge.current;return(r||t)&&e.update(ge.current),e},lt=({action:e,id:r,eventDownTime:t})=>{var n,a;if(!c.current.clipConfigurable)return;r&&f({id:r});const l=j((r!=null?r:(n=c.current.selectedRegion)==null?void 0:n.id)||""),v=[];(e==="create"?w.current:(a=w.current)==null?void 0:a.filter(m=>m.id!==l.id)).forEach(m=>{const{start:y,end:A,attribute:g}=m;g===c.current.selectedAttribute&&[y,A].forEach(P=>{v.includes(P)||v.push(P)})});const i=audio.getCanMoveRange(v.sort((m,y)=>m-y),t);o.current.range=i},st=e=>{H(),setTimeout(()=>{U(!1)});const r=at(e),{id:t,start:n,end:a}=r;f({id:t,playImmediately:!0});const l={id:t,start:utils.decimalReserved(n,3),end:utils.decimalReserved(a,3)};x==null||x(l),be()},ut=()=>{const e=WaveSurfer__default.default.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:Oe||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[Region__default.default.create({regions:C,dragSelection:{slop:5},canMove:!1}),Cursor__default.default.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;N(((t=o==null?void 0:o.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const n=((t=o==null?void 0:o.current)==null?void 0:t.getDuration())||0;fe(n),r(),s==null||s({duration:Math.round(n)}),de(!1),q(),lbAnnotation.EventBus.on("setCurrentTimeByPosition",V),lbAnnotation.EventBus.on("clearRegions",X),lbAnnotation.EventBus.on("removeRegionById",Z),lbAnnotation.EventBus.on("setSelectedRegion",xe),e.on("regions-eventDown",lt),Se()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{O(!0)}),e.on("pause",()=>{O(!1)}),e.on("finish",()=>{O(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{ce(!0),s==null||s({hasError:!0}),te==null||te()}),e.on("region-created",t=>{var n;const{id:a,start:l,end:v}=t;if(w.current.find(i=>i.id===a))return;const p={id:a,start:utils.decimalReserved(l,3),end:utils.decimalReserved(v,3),attribute:c.current.selectedAttribute,text:""};if(c.current.secondaryAttributeConfigurable){const i=lbAnnotation.TagUtils.getDefaultResultByConfig((n=c.current.subAttributeList)!=null?n:[]);p.subAttribute=i!=null?i:{}}re&&ie.forEach((i,m)=>{m===0?Object.assign(p,{text:i==null?void 0:i.default}):Object.assign(p,{[i.key]:i==null?void 0:i.default})}),x==null||x(p)}),e.on("region-updated",(t,n)=>{var a,l,v,p,i,m,y,A,g,P;const Me=n==null?void 0:n.action;T({combined:!1,segment:!1}),Me==="resize"&&((l=(a=o==null?void 0:o.current)==null?void 0:a.cursor)==null||l.setStyle({borderStyle:"solid"})),Me==="drag"&&((p=(v=o==null?void 0:o.current)==null?void 0:v.cursor)==null||p.setStyle({borderColor:"transparent"}));const G={},Y=[],J={},Rt=(i=w.current)==null?void 0:i.filter(b=>b.id!==t.id),St=(A=(y=(m=o.current)==null?void 0:m.regions)==null?void 0:y.list)!=null?A:{};Rt.forEach(b=>{var ke,$e;const{element:Q}=(ke=St[b.id])!=null?ke:{},{start:xt,end:Ct}=b;if(Q){const{x:Ie,width:wt}=(($e=Q.getBoundingClientRect)==null?void 0:$e.call(Q))||{},At=Ie+wt;[Ie,At].forEach((ee,Tt)=>{Y.includes(ee)||(Y.push(ee),J[ee]=Tt===0?xt:Ct)})}});const{x:De,width:ht}=((P=(g=t.element).getBoundingClientRect)==null?void 0:P.call(g))||{},Pt=De+ht;Y.forEach(b=>{Math.abs(audio.precisionMinus(b,De))<5&&(G.start=J[b]),Math.abs(audio.precisionMinus(b,Pt))<5&&(G.end=J[b])}),Ye(G),xe({id:t.id}),U(!0)}),e.on("region-update-end",t=>{st(t)}),e.on("region-contextmenu",(t,n)=>{if(!E){if(n.preventDefault(),n.stopPropagation(),audio.isDoubleClick(n)){Z(t.id);return}f({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,n,a)=>{if(!E){if(n.preventDefault(),n.stopPropagation(),c.current.combined){rt(t);return}if(c.current.segment){nt(t,a);return}f({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",ot),o.current=e},dt=L?React__default.default.createElement(icons.PauseOutlined,null):React__default.default.createElement(icons.CaretRightOutlined,null),Ce=e=>e?`${parseFloat((e/D*100).toFixed(4))}%`:"0%",we=Ce(R),ct=Ce(me),h=()=>{if(!ue)return o==null?void 0:o.current},ft=()=>{var e;(e=h())==null||e.skipForward(PER_PROGRESS)},vt=()=>{var e;(e=h())==null||e.skipBackward(PER_PROGRESS)},q=()=>{var e;(e=h())==null||e.playPause(),f({})},Ae=e=>{var r;switch(e.keyCode){case EKeyCode.Right:ft();break;case EKeyCode.Left:vt();break;case EKeyCode.Space:e.preventDefault(),q();break;case EKeyCode.Delete:if(!E){const{id:t}=((r=c.current)==null?void 0:r.selectedRegion)||{};t&&Z(t)}break}},mt=e=>{V(e)},Te=___default.default.throttle(mt,50);let K=!1;const je=()=>{K&&(q(),K=!1),document.removeEventListener("mousemove",Te),document.removeEventListener("mouseup",je)},pt=e=>{V(e),L&&(K=!0,q()),document.addEventListener("mousemove",Te),document.addEventListener("mouseup",je)},gt=()=>{he()};React.useEffect(()=>(ut(),()=>{var e;(e=o==null?void 0:o.current)==null||e.destroy(),o.current=null,lbAnnotation.EventBus.unbindAll("setCurrentTimeByPosition"),lbAnnotation.EventBus.unbindAll("clearRegions"),lbAnnotation.EventBus.unbindAll("removeRegionById"),lbAnnotation.EventBus.unbindAll("setSelectedRegion")}),[]);const bt=e=>{var r,t,n;(r=h())==null||r.playPause(),(t=h())==null||t.setPlaybackRate(e),(n=h())==null||n.playPause()};React.useEffect(()=>(document.addEventListener("keydown",Ae),()=>{document.removeEventListener("keydown",Ae)})),React.useEffect(()=>{f({}),he()},[M]);const qe=e=>{var r,t,n,a;if((o==null?void 0:o.current)&&(S==null?void 0:S.current)){const l=(t=(r=o==null?void 0:o.current)==null?void 0:r.getDuration())!=null?t:0,v=(n=S==null?void 0:S.current)==null?void 0:n.getBoundingClientRect();let i=(e.clientX-v.left)/(((a=S==null?void 0:S.current)==null?void 0:a.clientWidth)||0)*l;return i>l&&(i=l),i}return 0},V=e=>{var r;const t=qe(e);(r=o==null?void 0:o.current)==null||r.skip(t-ve.current),N(t)},_t=e=>{Ve(qe(e))},yt=D?Math.max(D-R,0):0,Et=(d==null?void 0:d.toolName)!==EToolName.Empty&&(d==null?void 0:d.isEdit)!==!0&&(We==="remark"||E),Be=React__default.default.createElement("div",{className:index_module.audioPlayer},Ke&&!Ne&&React__default.default.createElement(index$5,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:gt,backgroundColor:"#ffffffbb"}),React__default.default.createElement(index$6,{getRegionInstanceById:j,clipping:z}),React__default.default.createElement(index$7,{container:W.current}),React__default.default.createElement(index$8,{segmentTimeTip:it}),React__default.default.createElement("div",{className:index_module.waveformContainer,ref:W},React__default.default.createElement("div",{id:"waveform",style:{width:`${k*100}%`},className:index$9.classnames({[index_module.waveform]:!0,"bee-audio-combined":c.current.combined,"bee-audio-clip":c.current.clipConfigurable})},Le&&React__default.default.createElement(index$a,{isAudio:!0}),React__default.default.createElement("div",{ref:S,className:index_module.progress,onMouseDown:pt,onMouseMove:_t},React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0}),style:{left:we}},audio.formatTime(R)),React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0,[index_module.mouseTooltip]:!0}),style:{left:ct}},audio.formatTime(me)),React__default.default.createElement(index$b,{playPercentage:we})),Et&&(oe==null?void 0:oe({currentTime:R,remainingTime:yt,audioPlayer:h()})))),React__default.default.createElement("div",{className:index_module.controlBar},React__default.default.createElement(antd.Button,{type:"link",icon:dt,onClick:()=>{q()},className:index$9.classnames({[index_module.playButton]:!0,[index_module.playButtonDisabled]:ue})}),React__default.default.createElement("span",{className:index_module.time},`${audio.timeFormat(R,"ss.SSS")} / -${audio.timeFormat(D-R,"ss.SSS")}`),React__default.default.createElement(index$c.default,{playerType:index$c.EPlayerType.Audio,onChange:e=>{bt(e)}}),React__default.default.createElement(index$d.default,{onChange:e=>{Ee(e)},zoom:k}),React__default.default.createElement(index$e,{EventBus:lbAnnotation.EventBus})));return d?React__default.default.createElement(AudioPlayerContext.Provider,{value:d},Be,C.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?React__default.default.createElement(index$f,{el:t,key:r,region:e,edgeAdsorption:pe,clipping:z,zoom:k,instance:j(r)}):null}),React__default.default.createElement(index$g.default,{footer:Xe})):Be};exports.AudioPlayer=AudioPlayer,exports.AudioPlayerContext=AudioPlayerContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var lbAnnotation=require("@labelbee/lb-annotation"),index$2=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=require("../../videoPlayer/index.js"),index$1=require("./components/videoTimeSlicesOverVideo/index.js"),icon_videoCutting=require("../../../assets/annotation/video/icon_videoCutting.svg.js"),utils=require("../../videoPlayer/utils.js");function _interopDefaultLegacy(S){return S&&typeof S=="object"&&"default"in S?S:{default:S}}var ___default=_interopDefaultLegacy(_),React__default=_interopDefaultLegacy(React);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.emitEvent("updateTextAttribute"),this.emitEvent("changeAttributeSidebar")},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:n,type:l}=this.state.result[this.selectedSliceIndex],u=lbAnnotation.MathUtils.withinRange(audio.precisionAdd(n,t),[0,audio.precisionMinus(l===constant.ETimeSliceType.Time?s:a,constant.PER_SLICE_CHANGE)]);this.updateSelectedSliceTimeProperty(u,"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:n,start:l}=s,u=lbAnnotation.MathUtils.withinRange(audio.precisionAdd(n,t),[audio.precisionAdd(l,constant.PER_SLICE_CHANGE),a]);this.updateSelectedSliceTimeProperty(u,"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.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:n}=this.state,l=a!==constant.EClipStatus.Clipping;let u=l?constant.EClipStatus.Clipping:constant.EClipStatus.Stop,{result:d,selectedID:o,textValue:p}=this.state;const c=___default.default.cloneDeep(d),h=t||((e=this.videoPlayer)==null?void 0:e.currentTime),f=(i=this.videoPlayer)==null?void 0:i.duration;if(f===void 0||h===void 0)return;const C=utils.decimalReserved(h,2);if(l){const m=lbAnnotation.uuid();o=m,c.push({start:C,end:null,attribute:n,textAttribute:this.defaultTextAttribute,duration:f,id:m,type:constant.ETimeSliceType.Period}),p=this.defaultTextAttribute}else{const m=c.findIndex(v=>v.id===o),g=c[m];g&&(h-g.start<constant.SLICE_MIN_TIME?(c.splice(m,1),antd.message.info(`\u622A\u53D6\u7247\u6BB5\u4E0D\u80FD\u77ED\u4E8E${constant.SLICE_MIN_TIME}s`),u=constant.EClipStatus.Stop,o="",p=""):(c[m].end=utils.decimalReserved(h,2),(s=this.videoPlayer)==null||s.pause(),antd.message.success(`\u5DF2\u622A\u53D6\u7247\u6BB5${d.length}`)))}this.setState({clipStatus:u,result:c,selectedID:o,textValue:p}),this.updateSidebar()},this.addTime=()=>{var t,e,i,s;if(this.disabled)return;const{result:a,selectedAttribute:n,selectedID:l}=this.state,u=lbAnnotation.uuid(),d=___default.default.cloneDeep(a),o=((t=this.videoPlayer)==null?void 0:t.currentTime)||0;d.push({start:o,end:o,attribute:n,textAttribute:this.defaultTextAttribute,id:u,type:constant.ETimeSliceType.Time,duration:(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0});const p={result:d,selectedID:u,textValue:this.defaultTextAttribute},c=d.find(h=>h.id===l);this.isClipping&&c?(delete p.selectedID,delete p.textValue,antd.message.success(`\u5DF2\u622A\u53D6\u65F6\u95F4\u70B9${d.length-1}`)):(s=this.videoPlayer)==null||s.pause(),this.setState(p),this.updateSidebar()},this.updateCurrentTime=t=>{this.setState({currentTime:t})},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:n}=this.state,l=n.find(u=>u.id===t);if(l){const u=l.duration,d=e==="left",o=d?"start":"end",p=d?-u*i:u*i,c=d?[0,Math.max(((s=l.end)!=null?s:0)-constant.SLICE_MIN_TIME,0)]:[l.start+constant.SLICE_MIN_TIME,u],h=lbAnnotation.MathUtils.withinRange(p+((a=l==null?void 0:l[o])!=null?a:0),c);l[o]=h,this.throttledUpdateTime(h)}this.setState({result:[...n]}),this.updateSidebar()},this.renderMediaContent=()=>{var t;const{pageForward:e,pageJump:i,pageBackward:s}=this.props,{result:a,videoError:n,valid:l,currentTime:u}=this.state;return React__default.default.createElement("div",{className:index_module.clipContainer},React__default.default.createElement(index.VideoPlayer,{imgIndex:this.props.imgIndex,imgList:this.props.imgList,pageBackward:s,pageForward:e,pageJump:i,valid:l,setVideoRef:d=>{this.videoPlayer=d},showVideoTrack:!n,onTrackResize:this.onTrackResize,drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer,dataLoaded:this.props.onVideoLoaded,toggleClipStatus:this.toggleClipStatus,addTime:this.addTime,updateCurrentTime:this.updateCurrentTime}),React__default.default.createElement(index$1,{key:(t=this.videoPlayer)==null?void 0:t.currentTime,result:a,currentTime:u,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,currentTime:t.start}),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 n=index$2.jsonParser(s[i].result)[`step_${this.stepInfo().step}`],l=(n==null?void 0:n.result)||[],u=audio.isImageValue(s[i].result||"[]");this.setState({result:l,loading:t,selectedID:"",textValue:"",selectedAttribute:"",clipStatus:constant.EClipStatus.Stop,valid:u},()=>{this.updateSidebar(),u||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.textChange=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 selectedID(){return this.state.selectedID}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}get config(){var r;return index$2.jsonParser((r=this.props.stepInfo)==null?void 0:r.config)}get selectedText(){var r,t;return(t=(r=this.state.result)==null?void 0:r[this.selectedSliceIndex])==null?void 0:t.textAttribute}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$2=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=require("../../videoPlayer/index.js"),index$1=require("./components/videoTimeSlicesOverVideo/index.js"),icon_videoCutting=require("../../../assets/annotation/video/icon_videoCutting.svg.js"),utils=require("../../videoPlayer/utils.js");function _interopDefaultLegacy(S){return S&&typeof S=="object"&&"default"in S?S:{default:S}}var ___default=_interopDefaultLegacy(_),React__default=_interopDefaultLegacy(React);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.emitEvent("updateTextAttribute"),this.emitEvent("changeAttributeSidebar")},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:n,type:l}=this.state.result[this.selectedSliceIndex],u=lbAnnotation.MathUtils.withinRange(audio.precisionAdd(n,t),[0,audio.precisionMinus(l===constant.ETimeSliceType.Time?s:a,constant.PER_SLICE_CHANGE)]);this.updateSelectedSliceTimeProperty(u,"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:n,start:l}=s,u=lbAnnotation.MathUtils.withinRange(audio.precisionAdd(n,t),[audio.precisionAdd(l,constant.PER_SLICE_CHANGE),a]);this.updateSelectedSliceTimeProperty(u,"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.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;if(typeof((e=this.props)==null?void 0:e.annotationBefore)=="function"){(i=this.props)==null||i.annotationBefore(()=>this.setClipResult(t));return}this.setClipResult(t)},this.setClipResult=t=>{var e,i,s;if(this.disabled)return;const{clipStatus:a,selectedAttribute:n}=this.state,l=a!==constant.EClipStatus.Clipping;let u=l?constant.EClipStatus.Clipping:constant.EClipStatus.Stop,{result:d,selectedID:o,textValue:p}=this.state;const c=___default.default.cloneDeep(d),h=t||((e=this.videoPlayer)==null?void 0:e.currentTime),v=(i=this.videoPlayer)==null?void 0:i.duration;if(v===void 0||h===void 0)return;const C=utils.decimalReserved(h,2);if(l){const f=lbAnnotation.uuid();o=f,c.push({start:C,end:null,attribute:n,textAttribute:this.defaultTextAttribute,duration:v,id:f,type:constant.ETimeSliceType.Period}),p=this.defaultTextAttribute}else{const f=c.findIndex(g=>g.id===o),m=c[f];m&&(h-m.start<constant.SLICE_MIN_TIME?(c.splice(f,1),antd.message.info(`\u622A\u53D6\u7247\u6BB5\u4E0D\u80FD\u77ED\u4E8E${constant.SLICE_MIN_TIME}s`),u=constant.EClipStatus.Stop,o="",p=""):(c[f].end=utils.decimalReserved(h,2),(s=this.videoPlayer)==null||s.pause(),antd.message.success(`\u5DF2\u622A\u53D6\u7247\u6BB5${d.length}`)))}this.setState({clipStatus:u,result:c,selectedID:o,textValue:p}),this.updateSidebar()},this.addTime=()=>{var t,e,i,s;if(this.disabled)return;const{result:a,selectedAttribute:n,selectedID:l}=this.state,u=lbAnnotation.uuid(),d=___default.default.cloneDeep(a),o=((t=this.videoPlayer)==null?void 0:t.currentTime)||0;d.push({start:o,end:o,attribute:n,textAttribute:this.defaultTextAttribute,id:u,type:constant.ETimeSliceType.Time,duration:(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0});const p={result:d,selectedID:u,textValue:this.defaultTextAttribute},c=d.find(h=>h.id===l);this.isClipping&&c?(delete p.selectedID,delete p.textValue,antd.message.success(`\u5DF2\u622A\u53D6\u65F6\u95F4\u70B9${d.length-1}`)):(s=this.videoPlayer)==null||s.pause(),this.setState(p),this.updateSidebar()},this.updateCurrentTime=t=>{this.setState({currentTime:t})},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:n}=this.state,l=n.find(u=>u.id===t);if(l){const u=l.duration,d=e==="left",o=d?"start":"end",p=d?-u*i:u*i,c=d?[0,Math.max(((s=l.end)!=null?s:0)-constant.SLICE_MIN_TIME,0)]:[l.start+constant.SLICE_MIN_TIME,u],h=lbAnnotation.MathUtils.withinRange(p+((a=l==null?void 0:l[o])!=null?a:0),c);l[o]=h,this.throttledUpdateTime(h)}this.setState({result:[...n]}),this.updateSidebar()},this.renderMediaContent=()=>{var t;const{pageForward:e,pageJump:i,pageBackward:s}=this.props,{result:a,videoError:n,valid:l,currentTime:u}=this.state;return React__default.default.createElement("div",{className:index_module.clipContainer},React__default.default.createElement(index.VideoPlayer,{imgIndex:this.props.imgIndex,imgList:this.props.imgList,pageBackward:s,pageForward:e,pageJump:i,valid:l,setVideoRef:d=>{this.videoPlayer=d},showVideoTrack:!n,onTrackResize:this.onTrackResize,drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer,dataLoaded:this.props.onVideoLoaded,toggleClipStatus:this.toggleClipStatus,addTime:this.addTime,updateCurrentTime:this.updateCurrentTime}),React__default.default.createElement(index$1,{key:(t=this.videoPlayer)==null?void 0:t.currentTime,result:a,currentTime:u,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,currentTime:t.start}),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 n=index$2.jsonParser(s[i].result)[`step_${this.stepInfo().step}`],l=(n==null?void 0:n.result)||[],u=audio.isImageValue(s[i].result||"[]");this.setState({result:l,loading:t,selectedID:"",textValue:"",selectedAttribute:"",clipStatus:constant.EClipStatus.Stop,valid:u},()=>{this.updateSidebar(),u||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.textChange=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 selectedID(){return this.state.selectedID}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}get config(){var r;return index$2.jsonParser((r=this.props.stepInfo)==null?void 0:r.config)}get selectedText(){var r,t;return(t=(r=this.state.result)==null?void 0:r[this.selectedSliceIndex])==null?void 0:t.textAttribute}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(
|
|
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(e){super(e);this.fns={},this.labelSelectedList=[],this.clearResult=(t=!0,s)=>{const n=s?this.state.tagResult.map(i=>((i==null?void 0:i.result[s])&&delete i.result[s],i)):[];this.setState({tagResult:n},()=>this.emitEvent("render"))},this.exportData=()=>{var t,s;const n=(s=(t=this.videoPlayer)==null?void 0:t.duration)!=null?s:0;return[this.state.tagResult,{valid:this.state.valid,duration:n}]},this.emitEvent=t=>{this.fns[t]&&this.fns[t]()},this.combineResult=(t,s={})=>{var n,i;const l=_.cloneDeep(s),{isMulti:o}=t,{key:a,value:u}=t.value;if(o){let r=(i=(n=l[a])==null?void 0:n.split(";"))!=null?i:[];r.includes(u)?r=r.filter(c=>c!==u):r.push(u);const d=new Set(r);return l[a]=Array.from(d).join(";"),___default.default.pickBy(l,c=>c)}return l[a]=l[a]===u?void 0:u,___default.default.pickBy(l,r=>r)},this.setResult=t=>{this.setState({tagResult:t}),this.fns.render&&this.fns.render()},this.setLabel=(t,s)=>{this.setLabelBySelectedList(t,s)},this.keydown=t=>{var s;const n=utils.getKeyCodeNumber(t.keyCode);if(n){const i=n-1;if(((s=this.config.inputList)==null?void 0:s.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:s,imgIndex:n,stepInfo:i}=t;if(!s[n])return;const l=index.jsonParser(s[n].result),o=l[`step_${i.step}`],a=this.getInitResultList();this.setState({tagResult:o?o==null?void 0:o.result:a,valid:(l==null?void 0:l.valid)===void 0?!0:l.valid},()=>this.emitEvent("render"))},this.getInitResultList=()=>{var t;return lbAnnotation.TagUtils.getDefaultTagResult((t=this.config.inputList)!=null?t:[],[])},this.state={tagResult:[],labelSelectedList:[],valid:!0}}get config(){var e;return index.jsonParser((e=this.props.stepInfo)==null?void 0:e.config)}get history(){return{initRecord:()=>{},pushHistory:()=>{}}}get currentTagResult(){var e;return(e=this.state.tagResult[0])!=null?e:{}}get valid(){return this.state.valid}singleOn(e,t){this.fns[e]=t}on(e,t){this.singleOn(e,t)}unbindAll(e){delete this.fns[e]}getTagResultByCode(e,t){var s,n,i;try{const l=(n=(s=this.config)==null?void 0:s.inputList)!=null?n:[],o=(l==null?void 0:l.length)>1,a=t!==void 0?e:0,u=t!==void 0?t:e,r=o?l[a]:l[0],d=((i=r.subSelected)!=null?i:[])[u];if(r&&d)return{value:{key:r.value,value:d.value},isMulti:r.isMulti}}catch(l){return}}setLabelBySelectedList(e,t){var s,n,i,l,o,a;const u=this.getTagResultByCode(e,t);if(u){const r=this.combineResult(u,(n=(s=this.state.tagResult[0])==null?void 0:s.result)!=null?n:{}),d=[{sourceID:lbAnnotation.CommonToolUtils.getSourceID(),id:(l=(i=this.currentTagResult)==null?void 0:i.id)!=null?l:lbAnnotation.uuid(8,62),result:r}];if(typeof((o=this.props)==null?void 0:o.annotationBefore)=="function"){(a=this.props)==null||a.annotationBefore(()=>this.setState({tagResult:d},()=>this.emitEvent("render")));return}this.setState({tagResult:d},()=>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(e){return e.imgIndex!==this.props.imgIndex&&this.setResultFromImgList(e),!0}render(){var e;const{imgIndex:t,imgList:s,pageForward:n,pageJump:i,pageBackward:l}=this.props,{tagResult:o,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:s,pageBackward:l,pageForward:n,pageJump:i,valid:a,setVideoRef:u=>{this.videoPlayer=u},dataLoaded:this.props.onVideoLoaded,drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer}),React__default.default.createElement(VideoTagLayer.VideoTagLayer,{result:o,inputList:(e=this.config)==null?void 0:e.inputList,hasPromptLayer:!!this.props.drawLayerSlot}))}}exports.TagToolInstanceAdaptor=TagToolInstanceAdaptor;
|
package/dist/types/App.d.ts
CHANGED
|
@@ -78,6 +78,7 @@ export interface AppProps {
|
|
|
78
78
|
preDataProcess?: (params: IPreDataProcessParams) => IPointCloudBox[];
|
|
79
79
|
auditContext?: any;
|
|
80
80
|
getImgIndexByExternal: GetImgIndexByExternal;
|
|
81
|
+
annotationBefore?: (setAnnotationData: Function) => void;
|
|
81
82
|
}
|
|
82
83
|
declare const _default: import("react-redux").ConnectedComponent<React.FC<AppProps>, import("react-redux").Omit<AppProps & {
|
|
83
84
|
children?: React.ReactNode;
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SetState } from 'ahooks/lib/useSetState';
|
|
3
|
-
import { IAudioTextToolConfig } from '@labelbee/lb-utils';
|
|
3
|
+
import { IAudioTextToolConfig, ITextConfigItem } from '@labelbee/lb-utils';
|
|
4
4
|
export declare enum EContextType {
|
|
5
5
|
before = "\u524D\u6587",
|
|
6
6
|
after = "\u540E\u6587"
|
|
7
7
|
}
|
|
8
|
+
export declare const DEFAULT_CLIP_TEXT_CONFIG_ITEM: {
|
|
9
|
+
label: string;
|
|
10
|
+
key: string;
|
|
11
|
+
required: boolean;
|
|
12
|
+
default: string;
|
|
13
|
+
maxLength: number;
|
|
14
|
+
}[];
|
|
8
15
|
interface IAudioContextProps {
|
|
9
16
|
audioContext: {
|
|
10
17
|
visible?: boolean;
|
|
@@ -31,6 +38,7 @@ interface IAudioClipState extends IAudioClipConfig {
|
|
|
31
38
|
combined: boolean;
|
|
32
39
|
/** 是否按下分割键 */
|
|
33
40
|
segment: boolean;
|
|
41
|
+
clipTextList: ITextConfigItem[];
|
|
34
42
|
}
|
|
35
43
|
interface IAudioClipContext {
|
|
36
44
|
audioClipState: IAudioClipState;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { IAudioTimeSlice } from '@labelbee/lb-utils';
|
|
2
|
+
import { IAudioTimeSlice, ITextConfigItem } from '@labelbee/lb-utils';
|
|
3
3
|
import { ISelectedRegion } from '@/components/audioAnnotate/audioContext';
|
|
4
4
|
import { IInputList, RenderFooter } from '@/types/main';
|
|
5
5
|
export interface ISetSelectedRegionParams extends ISelectedRegion {
|
|
@@ -13,7 +13,7 @@ interface IAudioPlayerContext {
|
|
|
13
13
|
imgIndex: number;
|
|
14
14
|
}
|
|
15
15
|
export declare const AudioPlayerContext: React.Context<IAudioPlayerContext>;
|
|
16
|
-
export declare const AudioPlayer: ({ fileData, onLoaded, context, invalid, height, hideError, onError, updateRegion, removeRegion, regions, activeToolPanel, clipConfigurable, clipTextConfigurable, clipAttributeList, clipAttributeConfigurable, secondaryAttributeConfigurable, subAttributeList, isCheck, hoverRegionId, footer, drawLayerSlot, }: {
|
|
16
|
+
export declare const AudioPlayer: ({ fileData, onLoaded, context, invalid, height, hideError, onError, updateRegion, removeRegion, regions, activeToolPanel, clipConfigurable, clipTextConfigurable, clipAttributeList, clipAttributeConfigurable, secondaryAttributeConfigurable, subAttributeList, isCheck, hoverRegionId, footer, drawLayerSlot, clipTextList, }: {
|
|
17
17
|
fileData: any;
|
|
18
18
|
height?: number | undefined;
|
|
19
19
|
invalid: boolean;
|
|
@@ -41,5 +41,6 @@ export declare const AudioPlayer: ({ fileData, onLoaded, context, invalid, heigh
|
|
|
41
41
|
hoverRegionId?: string | undefined;
|
|
42
42
|
footer?: RenderFooter | undefined;
|
|
43
43
|
drawLayerSlot?: any;
|
|
44
|
+
clipTextList: ITextConfigItem[];
|
|
44
45
|
}) => React.JSX.Element;
|
|
45
46
|
export {};
|
|
@@ -20,6 +20,7 @@ export interface IVideoAnnotateProps {
|
|
|
20
20
|
drawLayerSlot?: DrawLayerSlot;
|
|
21
21
|
footer?: any;
|
|
22
22
|
skipBeforePageTurning?: (pageTurning: Function) => void;
|
|
23
|
+
annotationBefore?: (setAnnotationData: Function) => void;
|
|
23
24
|
}
|
|
24
25
|
declare const _default: import("react-redux").ConnectedComponent<React.FC<IVideoAnnotateProps>, import("react-redux").Omit<IVideoAnnotateProps & {
|
|
25
26
|
children?: React.ReactNode;
|
|
@@ -65,7 +65,7 @@ export declare class TagToolInstanceAdaptor extends React.Component<IVideoTagIns
|
|
|
65
65
|
value: string;
|
|
66
66
|
};
|
|
67
67
|
isMulti: boolean;
|
|
68
|
-
},
|
|
68
|
+
}, existData?: ObjectString) => _.Dictionary<string | undefined>;
|
|
69
69
|
setResult: (tagResult: any[]) => void;
|
|
70
70
|
setLabel: (num1: number, num2: number) => void;
|
|
71
71
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var index$7=require("../../components/customResizeHook/index.js"),index$5=require("../../constant/index.js"),antd=require("antd"),es=require("antd/es"),React=require("react"),index$b=require("./annotationOperation/index.js"),index$a=require("./annotationTips/index.js"),index$4=require("./sidebar/index.js"),index$c=require("./toolFooter/index.js"),index$9=require("./toolHeader/index.js"),reducer=require("../../store/annotation/reducer.js"),index$6=require("../../components/videoAnnotate/index.js"),reactRedux=require("react-redux"),ToolUtils=require("../../utils/ToolUtils.js"),index$d=require("../../components/pointCloudView/index.js"),dom=require("../../utils/dom.js"),index$8=require("../../utils/index.js"),index$3=require("../../components/predictTracking/previewResult/index.js"),ctx=require("../../store/ctx.js"),ToolType=require("../../data/enums/ToolType.js"),index=require("./LLMLayout/index.js"),index$1=require("./NLPLayout/index.js"),index$2=require("../../components/audioAnnotate/index.js"),icons=require("@ant-design/icons"),reactI18next=require("react-i18next"),lbAnnotation=require("@labelbee/lb-annotation");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{Sider,Content}=es.Layout,layoutCls=`${index$5.prefix}-layout`,ImageAnnotate=e=>{var t;return React__default.default.createElement(React__default.default.Fragment,null,e.showTips===!0&&React__default.default.createElement(index$a,{path:e.path,tips:e.tips}),React__default.default.createElement(index$b,__spreadValues({},e)),React__default.default.createElement(index$c.default,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer}))},PointCloudAnnotate=e=>{var t;return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$d,{drawLayerSlot:e.drawLayerSlot,checkMode:e.checkMode,intelligentFit:e.intelligentFit,measureVisible:e.measureVisible}),React__default.default.createElement(index$c.default,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer}))},AnnotatedArea=e=>{var t;const{stepList:a,step:l}=e,r=(t=reducer.getStepConfig(a,l))==null?void 0:t.tool,i=ToolUtils.isPointCloudTool(r),n=ToolUtils.isVideoTool(r);return i?React__default.default.createElement(PointCloudAnnotate,__spreadValues({},e)):n?React__default.default.createElement(index$6,{drawLayerSlot:e.drawLayerSlot,footer:e.footer}):React__default.default.createElement(ImageAnnotate,__spreadValues({},e))},ViewportProviderLayout=e=>{var t,a,l;const{t:r}=reactI18next.useTranslation(),{stepList:i,step:n}=e,o=(t=reducer.getStepConfig(i,n))==null?void 0:t.tool,d=![ToolType.EToolName.LLM,ToolType.EToolName.NLP].includes(o),u=![ToolType.EToolName.LLM,ToolType.EToolName.NLP].includes(o),c=[lbAnnotation.EPointCloudName.PointCloud].includes(o);return React__default.default.createElement(index$7.ViewportProvider,null,React__default.default.createElement(antd.Spin,{spinning:e.loading,indicator:React__default.default.createElement(icons.LoadingOutlined,null),tip:React__default.default.createElement("span",{style:{marginTop:200}},r("LoadingTips")),delay:500},React__default.default.createElement(es.Layout,{className:index$8.classnames([layoutCls,e.className]),style:(a=e.style)==null?void 0:a.layout},React__default.default.createElement("header",{className:`${layoutCls}__header`,style:(l=e.style)==null?void 0:l.header},React__default.default.createElement(index$9,{header:e==null?void 0:e.header,headerName:e.headerName,goBack:e.goBack,exportData:e.exportData,hasLangNode:d,hasHeaderOption:u,hasPredictTrackingIcon:c})),e.children)))},MainView=e=>{var t,a,l,r,i,n,o;const[d,u]=React.useState(void 0),c=(a=(t=e.style)==null?void 0:t.sider)==null?void 0:a.width,{stepList:m,step:f}=e,s=(l=reducer.getStepConfig(m,f))==null?void 0:l.tool,v=ToolType.EToolName.LLM===s,x=ToolType.EToolName.NLP===s,E=ToolUtils.isAudioTool(s);return v?React__default.default.createElement(ViewportProviderLayout,__spreadValues({},e),React__default.default.createElement(index,__spreadValues({},e))):x?React__default.default.createElement(ViewportProviderLayout,__spreadValues({},e),React__default.default.createElement(index$1,__spreadValues({},e))):E?React__default.default.createElement(ViewportProviderLayout,__spreadValues({},e),React__default.default.createElement(index$2,__spreadValues({},e))):React__default.default.createElement(ViewportProviderLayout,__spreadValues({},e),React__default.default.createElement(es.Layout,{className:dom.getClassName("layout","container")},e==null?void 0:e.leftSider,React__default.default.createElement(Content,{className:`${layoutCls}__content`},React__default.default.createElement(AnnotatedArea,__spreadValues({},e)),React__default.default.createElement(index$3,null)),React__default.default.createElement(Sider,{className:`${layoutCls}__side`,width:(r=d!=null?d:c)!=null?r:240,style:(i=e.style)==null?void 0:i.sider},React__default.default.createElement(index$4.default,{sider:e==null?void 0:e.sider,enableColorPicker:e==null?void 0:e.enableColorPicker,setSiderWidth:u,propsSiderWidth:(o=(n=e.style)==null?void 0:n.sider)==null?void 0:o.width}))))},mapStateToProps=({annotation:e})=>{var t,a,l;const{imgList:r,loading:i}=e,n=(t=r[e.imgIndex])!=null?t:{};return{path:(l=(a=n==null?void 0:n.path)!=null?a:n==null?void 0:n.url)!=null?l:"",loading:i}};var MainView$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(MainView);module.exports=MainView$1;
|
|
1
|
+
"use strict";var index$7=require("../../components/customResizeHook/index.js"),index$5=require("../../constant/index.js"),antd=require("antd"),es=require("antd/es"),React=require("react"),index$b=require("./annotationOperation/index.js"),index$a=require("./annotationTips/index.js"),index$4=require("./sidebar/index.js"),index$c=require("./toolFooter/index.js"),index$9=require("./toolHeader/index.js"),reducer=require("../../store/annotation/reducer.js"),index$6=require("../../components/videoAnnotate/index.js"),reactRedux=require("react-redux"),ToolUtils=require("../../utils/ToolUtils.js"),index$d=require("../../components/pointCloudView/index.js"),dom=require("../../utils/dom.js"),index$8=require("../../utils/index.js"),index$3=require("../../components/predictTracking/previewResult/index.js"),ctx=require("../../store/ctx.js"),ToolType=require("../../data/enums/ToolType.js"),index=require("./LLMLayout/index.js"),index$1=require("./NLPLayout/index.js"),index$2=require("../../components/audioAnnotate/index.js"),icons=require("@ant-design/icons"),reactI18next=require("react-i18next"),lbAnnotation=require("@labelbee/lb-annotation");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{Sider,Content}=es.Layout,layoutCls=`${index$5.prefix}-layout`,ImageAnnotate=e=>{var t;return React__default.default.createElement(React__default.default.Fragment,null,e.showTips===!0&&React__default.default.createElement(index$a,{path:e.path,tips:e.tips}),React__default.default.createElement(index$b,__spreadValues({},e)),React__default.default.createElement(index$c.default,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer}))},PointCloudAnnotate=e=>{var t;return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(index$d,{drawLayerSlot:e.drawLayerSlot,checkMode:e.checkMode,intelligentFit:e.intelligentFit,measureVisible:e.measureVisible}),React__default.default.createElement(index$c.default,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer}))},AnnotatedArea=e=>{var t;const{stepList:a,step:l}=e,r=(t=reducer.getStepConfig(a,l))==null?void 0:t.tool,i=ToolUtils.isPointCloudTool(r),n=ToolUtils.isVideoTool(r);return i?React__default.default.createElement(PointCloudAnnotate,__spreadValues({},e)):n?React__default.default.createElement(index$6,{drawLayerSlot:e.drawLayerSlot,footer:e.footer,annotationBefore:e==null?void 0:e.annotationBefore}):React__default.default.createElement(ImageAnnotate,__spreadValues({},e))},ViewportProviderLayout=e=>{var t,a,l;const{t:r}=reactI18next.useTranslation(),{stepList:i,step:n}=e,o=(t=reducer.getStepConfig(i,n))==null?void 0:t.tool,d=![ToolType.EToolName.LLM,ToolType.EToolName.NLP].includes(o),u=![ToolType.EToolName.LLM,ToolType.EToolName.NLP].includes(o),c=[lbAnnotation.EPointCloudName.PointCloud].includes(o);return React__default.default.createElement(index$7.ViewportProvider,null,React__default.default.createElement(antd.Spin,{spinning:e.loading,indicator:React__default.default.createElement(icons.LoadingOutlined,null),tip:React__default.default.createElement("span",{style:{marginTop:200}},r("LoadingTips")),delay:500},React__default.default.createElement(es.Layout,{className:index$8.classnames([layoutCls,e.className]),style:(a=e.style)==null?void 0:a.layout},React__default.default.createElement("header",{className:`${layoutCls}__header`,style:(l=e.style)==null?void 0:l.header},React__default.default.createElement(index$9,{header:e==null?void 0:e.header,headerName:e.headerName,goBack:e.goBack,exportData:e.exportData,hasLangNode:d,hasHeaderOption:u,hasPredictTrackingIcon:c})),e.children)))},MainView=e=>{var t,a,l,r,i,n,o;const[d,u]=React.useState(void 0),c=(a=(t=e.style)==null?void 0:t.sider)==null?void 0:a.width,{stepList:m,step:f}=e,s=(l=reducer.getStepConfig(m,f))==null?void 0:l.tool,v=ToolType.EToolName.LLM===s,x=ToolType.EToolName.NLP===s,E=ToolUtils.isAudioTool(s);return v?React__default.default.createElement(ViewportProviderLayout,__spreadValues({},e),React__default.default.createElement(index,__spreadValues({},e))):x?React__default.default.createElement(ViewportProviderLayout,__spreadValues({},e),React__default.default.createElement(index$1,__spreadValues({},e))):E?React__default.default.createElement(ViewportProviderLayout,__spreadValues({},e),React__default.default.createElement(index$2,__spreadValues({},e))):React__default.default.createElement(ViewportProviderLayout,__spreadValues({},e),React__default.default.createElement(es.Layout,{className:dom.getClassName("layout","container")},e==null?void 0:e.leftSider,React__default.default.createElement(Content,{className:`${layoutCls}__content`},React__default.default.createElement(AnnotatedArea,__spreadValues({},e)),React__default.default.createElement(index$3,null)),React__default.default.createElement(Sider,{className:`${layoutCls}__side`,width:(r=d!=null?d:c)!=null?r:240,style:(i=e.style)==null?void 0:i.sider},React__default.default.createElement(index$4.default,{sider:e==null?void 0:e.sider,enableColorPicker:e==null?void 0:e.enableColorPicker,setSiderWidth:u,propsSiderWidth:(o=(n=e.style)==null?void 0:n.sider)==null?void 0:o.width}))))},mapStateToProps=({annotation:e})=>{var t,a,l;const{imgList:r,loading:i}=e,n=(t=r[e.imgIndex])!=null?t:{};return{path:(l=(a=n==null?void 0:n.path)!=null?a:n==null?void 0:n.url)!=null?l:"",loading:i}};var MainView$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(MainView);module.exports=MainView$1;
|
|
@@ -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(
|
|
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(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React);const{Panel}=es.Collapse,expandIconFuc=({isActive:t})=>React__default.default.createElement(icons.CaretRightOutlined,{rotate:t?90:0}),TagSidebar=({toolInstance:t,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,a;t&&(v((a=(r=t.config)==null?void 0:r.inputList)==null?void 0:a.map(e=>e.value)),t.singleOn("render",()=>{q(e=>e+1)}))},[t]),React.useEffect(()=>{var r;if(t&&(t.singleOn("expend",T),((r=t==null?void 0:t.labelSelectedList)==null?void 0:r.length)===1)){let a=0;for(let e=0;e<t.labelSelectedList[0];e++)a+=46,n[e]&&u[e]!==""&&n[e].subSelected.forEach(l=>{a+=40});s.current&&(s.current.children[0].scrollTop=a)}}),React.useEffect(()=>{s.current&&(s.current.children[0].scrollTop=0)},[C]);const T=()=>{var r;const a=t.labelSelectedList[0],e=(r=n.filter((l,o)=>o===a)[0])==null?void 0:r.value;p(a,e,!0)},p=React.useCallback((r,a,e)=>{const l=_.cloneDeep(u);l[r]===""||e===!0?l[r]=a:l[r]="",v(l)},[u]);if(!t)return null;const{labelSelectedList:c,config:{inputList:n},currentTagResult:i,setLabel:g}=t,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,a=-1)=>r?r.map((e,l)=>{var o,y,E,h,L;if(e.subSelected){const k=lbAnnotation.TagUtils.judgeResultIsInInputList(e.value,(o=i==null?void 0:i.result)==null?void 0:o[e.value],n);return React__default.default.createElement(es.Collapse,{bordered:!1,expandIcon:expandIconFuc,key:`collapse_${l}_${a+1}`,onChange:()=>p(l,e.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,e.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(),t.clearResult(!0,e.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:e.value},React__default.default.createElement("div",{className:"level",style:{backgroundColor:c.length>0&&c[0]===l?"rgba(158, 158, 158, 0.18)":""}},b(e.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(e.value))>-1?e.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:e.value,label:e.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:e.value,label:e.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(t){return{toolInstance:t.annotation.toolInstance,imgIndex:t.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,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),[m,c]=React.useState(!1),[S,w]=React.useState(!1),{t:T}=reactI18next.useTranslation(),{disabled:s,config:l,result:d,updateText:f,index:u,switchToNextTextarea:E,hasMultiple:C,onNext:h}=e,{maxLength:v}=l,i=d?d[l.key]:"",[y,b]=React.useState((t=i==null?void 0:i.length)!=null?t:0);React.useEffect(()=>{var a;b((a=i==null?void 0:i.length)!=null?a:0)},[i]);const p=(a,g)=>{f&&(f(a,l.key,g),l.required&&w(!a))},x=C&&E,N={id:`textInput-${u}`,ref:r,disabled:s,defaultValue:i,maxLength:v,autoSize:{minRows:2,maxRows:6},onChange:a=>{const g=a.target.value;b(a.target.value.length),p(g,!1)},onFocus:()=>{c(!0)},onBlur:a=>{c(!1),p(a.target.value,!0),l.required&&w(!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&&x&&(a.preventDefault(),a.nativeEvent.stopImmediatePropagation(),E(u)),a.nativeEvent.stopPropagation()}},P=React__default.default.createElement("div",{className:"textAreaFooter"},React__default.default.createElement("div",{className:"hotkeyTip"},x&&React__default.default.createElement("span",null,`[${T("Switch")}]Tab`),React__default.default.createElement("span",null,`[${T("TurnPage")}]Ctrl+Enter`)),React__default.default.createElement("div",{className:"wordCount"},React__default.default.createElement("span",{className:y>=v?"warning":""},y),"/",React__default.default.createElement("span",null,v)));return React.useEffect(()=>{s&&c(!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("",!0)}})),React__default.default.createElement("div",{className:index.classnames({disabled:s,"textarea-outline":!0,"ant-input-focused":m,textareaContainer:!0,focus:m,invalid:S})},React__default.default.createElement(TextareaWithFooter,{footer:P,textareaProps:N})))},TextToolSidebar=({toolInstance:e,imgIndex:t,dispatch:r,triggerEventAfterIndexChanged:m,step:c,stepList:S,basicResultList:w,disabled:T})=>{var s,l,d,f;const[u,E]=React.useState([]),[C,h]=React.useState(0),[v,i]=React.useState(!0),[,y]=React.useState(0),{t:b}=reactI18next.useTranslation(),p=n=>{const o=(n+1)%u.length;x(o)},x=n=>{setTimeout(()=>{const o=document.getElementById(`textInput-${n}`);o&&(h(n),o.focus(),o.select(),o.scrollIntoView({behavior:"smooth",block:"center"}))})};React.useEffect(()=>{e&&e.singleOn("valueUpdated",()=>{y(n=>n+1)})},[e]),React.useEffect(()=>{var n;e&&E(_.cloneDeep((n=e==null?void 0:e.config)==null?void 0:n.configList))},[JSON.stringify((s=e==null?void 0:e.config)==null?void 0:s.configList)]);const N=(f=(d=(l=e==null?void 0:e.textList)==null?void 0:l[0])==null?void 0:d.value)!=null?f:{},P=(n,o,O=!1)=>{var L,q;(q=e==null?void 0:e.updateTextValue)==null||q.call(e,o,n,O,(L=e==null?void 0:e.textList)==null?void 0:L[0])};React.useEffect(()=>{t>-1&&m&&x(0)},[t]);const a=()=>{r(actionCreators.PageForward(!0))},g=n=>{i(n),e==null||e.toggleShowText(n)},F=ConfigUtils.ConfigUtils.getStepConfig(S,c).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:N,updateText:P,switchToNextTextarea:p,hasMultiple:u.length>1,focus:C===o,onNext:a,disabled:T})),F&&React__default.default.createElement("div",{className:"textToolSwitchItem"},b("toggleShowText"),React__default.default.createElement(es.Switch,{style:{alignSelf:"center"},checked:v,onChange:n=>{g(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
|
+
"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),[m,c]=React.useState(!1),[S,w]=React.useState(!1),{t:T}=reactI18next.useTranslation(),{disabled:s,config:l,result:d,updateText:f,index:u,switchToNextTextarea:E,hasMultiple:C,onNext:h}=e,{maxLength:v}=l,i=d?d[l.key]:"",[y,b]=React.useState((t=i==null?void 0:i.length)!=null?t:0);React.useEffect(()=>{var a;b((a=i==null?void 0:i.length)!=null?a:0)},[i]);const p=(a,g)=>{f&&(f(a,l.key,g),l.required&&w(!a))},x=C&&E,N={id:`textInput-${u}`,ref:r,disabled:s,defaultValue:i,maxLength:v,autoSize:{minRows:2,maxRows:6},onChange:a=>{const g=a.target.value;b(a.target.value.length),p(g,!1)},onFocus:()=>{c(!0)},onBlur:a=>{c(!1),p(a.target.value,!0),l.required&&w(!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&&x&&(a.preventDefault(),a.nativeEvent.stopImmediatePropagation(),E(u)),a.nativeEvent.stopPropagation()}},P=React__default.default.createElement("div",{className:"textAreaFooter"},React__default.default.createElement("div",{className:"hotkeyTip"},x&&React__default.default.createElement("span",null,`[${T("Switch")}]Tab`),React__default.default.createElement("span",null,`[${T("TurnPage")}]Ctrl+Enter`)),React__default.default.createElement("div",{className:"wordCount"},React__default.default.createElement("span",{className:y>=v?"warning":""},y),"/",React__default.default.createElement("span",null,v)));return React.useEffect(()=>{s&&c(!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("",!0)}})),React__default.default.createElement("div",{className:index.classnames({disabled:s,"textarea-outline":!0,"ant-input-focused":m,textareaContainer:!0,focus:m,invalid:S})},React__default.default.createElement(TextareaWithFooter,{footer:P,textareaProps:N})))},TextToolSidebar=({toolInstance:e,imgIndex:t,dispatch:r,triggerEventAfterIndexChanged:m,step:c,stepList:S,basicResultList:w,disabled:T})=>{var s,l,d,f;const[u,E]=React.useState([]),[C,h]=React.useState(0),[v,i]=React.useState(!0),[,y]=React.useState(0),{t:b}=reactI18next.useTranslation(),p=n=>{const o=(n+1)%u.length;x(o)},x=n=>{setTimeout(()=>{const o=document.getElementById(`textInput-${n}`);o&&(h(n),o.focus(),o.select(),o.scrollIntoView({behavior:"smooth",block:"center"}))})};React.useEffect(()=>{e&&e.singleOn("valueUpdated",()=>{y(n=>n+1)})},[e]),React.useEffect(()=>{var n;e&&E(_.cloneDeep((n=e==null?void 0:e.config)==null?void 0:n.configList))},[JSON.stringify((s=e==null?void 0:e.config)==null?void 0:s.configList)]);const N=(f=(d=(l=e==null?void 0:e.textList)==null?void 0:l[0])==null?void 0:d.value)!=null?f:{},P=(n,o,O=!1)=>{var L,q;(q=e==null?void 0:e.updateTextValue)==null||q.call(e,o,n,O,(L=e==null?void 0:e.textList)==null?void 0:L[0])};React.useEffect(()=>{t>-1&&m&&x(0)},[t]);const a=()=>{r(actionCreators.PageForward(!0))},g=n=>{i(n),e==null||e.toggleShowText(n)},F=ConfigUtils.ConfigUtils.getStepConfig(S,c).tool===EVideoToolName.VideoTextTool;return e&&React__default.default.createElement("div",{className:"textToolOperationMenu"},u==null?void 0:u.map((n,o)=>React__default.default.createElement(SingleTextInput,{config:n,key:n.key,index:o,result:N,updateText:P,switchToNextTextarea:p,hasMultiple:u.length>1,focus:C===o,onNext:a,disabled:T})),F&&React__default.default.createElement("div",{className:"textToolSwitchItem"},b("toggleShowText"),React__default.default.createElement(es.Switch,{style:{alignSelf:"center"},checked:v,onChange:n=>{g(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;
|
package/es/App.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import B from"./views/MainView/index.js";import{i18n as o}from"@labelbee/lb-utils";import O,{useState as M,useEffect as s}from"react";import{connect as U}from"react-redux";import{store as n}from"./index.js";import{LabelBeeContext as z}from"./store/ctx.js";import{ANNOTATION_ACTIONS as j}from"./store/Actions.js";import{InitTaskData as R,InitAnnotationState as V,UpdateInjectFunc as k,loadImgList as G}from"./store/annotation/actionCreators.js";import{LoadFileAndFileData as C}from"./store/annotation/reducer.js";import{ConfigProvider as $}from"antd/es";import q from"antd/es/locale/zh_CN";import H from"antd/es/locale/en_US";var J=Object.defineProperty,K=Object.defineProperties,Q=Object.getOwnPropertyDescriptors,T=Object.getOwnPropertySymbols,W=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable,w=(e,t,a)=>t in e?J(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,Y=(e,t)=>{for(var a in t||(t={}))W.call(t,a)&&w(e,a,t[a]);if(T)for(var a of T(t))X.call(t,a)&&w(e,a,t[a]);return e},Z=(e,t)=>K(e,Q(t));const ee=e=>{const[t,a]=M(0),{imgList:l,step:p=1,stepList:c,onSubmit:d,onSave:g,onPageChange:f,onStepChange:m,initialIndex:u=0,toolInstance:y,setToolInstance:L,getFileData:_,pageSize:h=10,loadFileList:r,defaultLang:P="cn",skipBeforePageTurning:x,beforeRotate:I,checkMode:b=!1,intelligentFit:A=!0,highlightAttribute:S="",preDataProcess:v,getImgIndexByExternal:E,annotationBefore:D}=e;s(()=>{n.dispatch(R({onSubmit:d,stepList:c,step:p,getFileData:_,pageSize:h,loadFileList:r,onSave:g,onPageChange:f,onStepChange:m,skipBeforePageTurning:x,beforeRotate:I,checkMode:b,highlightAttribute:S,preDataProcess:v,getImgIndexByExternal:E,annotationBefore:D})),F(),o.changeLanguage(P);const i=()=>{a(N=>N+1)};return o.on("languageChanged",i),()=>{o.off("languageChanged",i),V(n.dispatch)}},[]),s(()=>{n.dispatch(k({onSubmit:d,stepList:c,getFileData:_,pageSize:h,loadFileList:r,onSave:g,onPageChange:f,onStepChange:m,beforeRotate:I,highlightAttribute:S,preDataProcess:v})),o.changeLanguage(P)},[d,c,_,h,r,g,f,m,P,I,S,v]),s(()=>{L==null||L(y)},[y]),s(()=>{n.dispatch({type:j.SET_STEP,payload:{toStep:p}})},[p]);const F=()=>{r?G(n.dispatch,n.getState,u,!0).then(i=>{i&&n.dispatch(C(u))}):l&&l.length>0&&(n.dispatch({type:j.UPDATE_IMG_LIST,payload:{imgList:l}}),n.dispatch(C(u)))};return O.createElement("div",null,O.createElement($,{locale:o.language==="en"?H:q},O.createElement(B,Z(Y({},e),{intelligentFit:A,checkMode:b}))))},te=e=>({toolInstance:e.annotation.toolInstance});var ae=U(te,null,null,{context:z})(ee);export{ae as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as o from"react";var c;function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},a.apply(this,arguments)}var i=function(t){return o.createElement("svg",a({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"
|
|
1
|
+
import*as o from"react";var c;function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},a.apply(this,arguments)}var i=function(t){return o.createElement("svg",a({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true","data-icon":"left",viewBox:"64 64 896 896"},t),c||(c=o.createElement("path",{d:"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 0 0 0 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6"})))};export{i as ReactComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as i from"react";var o;function a(){return a=Object.assign?Object.assign.bind():function(r){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n])}return r},a.apply(this,arguments)}var c=function(t){return i.createElement("svg",a({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"
|
|
1
|
+
import*as i from"react";var o;function a(){return a=Object.assign?Object.assign.bind():function(r){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n])}return r},a.apply(this,arguments)}var c=function(t){return i.createElement("svg",a({xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true","data-icon":"right",viewBox:"64 64 896 896"},t),o||(o=i.createElement("path",{d:"M765.7 486.8 314.9 134.7A7.97 7.97 0 0 0 302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 0 0 0-50.4"})))};export{c as ReactComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{RightOutlined as
|
|
1
|
+
import{RightOutlined as p}from"@ant-design/icons";import t,{useMemo as b,useContext as x,useState as u,useEffect as A}from"react";import{Input as E}from"antd";import{useSetState as g}from"ahooks";import l from"./index.module.scss.js";var s;(function(o){o.before="\u524D\u6587",o.after="\u540E\u6587"})(s||(s={}));const c=[{label:"\u6587\u672C",key:"text",required:!1,default:"",maxLength:3e3}],v=o=>{const{audioContext:e}=o;if(!e||!e.visible)return null;const{content:i,type:n}=e;return t.createElement(S,{title:s==null?void 0:s[n],content:i})},S=o=>{const[e,i]=u(!0),[n,C]=u(""),{title:f,content:a}=o,r=()=>{i(!e)};return A(()=>{C(a),i(!0)},[a]),t.createElement("div",{className:l.audioContextContainer},t.createElement("div",{className:l.title},t.createElement(p,{style:{marginRight:8},rotate:e?90:0,onClick:r}),t.createElement("span",{onClick:r},f)),e&&t.createElement("div",{className:l.content},t.createElement(E.TextArea,{bordered:!1,value:n,disabled:!0,style:{padding:0},autoSize:!0})))},d={selectedAttribute:"",selectedRegion:{},attributeLockList:[],clipConfigurable:!1,clipAttributeConfigurable:!1,clipAttributeList:[],clipTextConfigurable:!1,combined:!1,segment:!1,clipTextList:c},m=t.createContext({audioClipState:d,setAudioClipState:()=>{}}),L=()=>x(m),T=({children:o})=>{const[e,i]=g(d),n=b(()=>({audioClipState:e,setAudioClipState:i}),[e,i]);return t.createElement(m.Provider,{value:n},o)};export{T as AudioClipProvider,c as DEFAULT_CLIP_TEXT_CONFIG_ITEM,s as EContextType,v as default,L as useAudioClipStore};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import r,{useMemo as I}from"react";import D from"../../../attributeList/index.js";import{EventBus as A}from"@labelbee/lb-annotation";import B from"../../../../assets/annotation/audio/clipSmall.svg.js";import V from"../../../../assets/annotation/audio/clipASmall.svg.js";import M from"../../../../assets/annotation/audio/delete.svg.js";import q from"../../../../assets/annotation/audio/loopA.svg.js";import{getAttributeShowText as z,timeFormat as y}from"../../../../utils/audio.js";import G from"../../../longText/index.js";import{classnames as H}from"../../../../utils/index.js";import a from"./index.module.scss.js";import{useTranslation as J}from"react-i18next";import K from"../../../subAttributeList/index.js";var Q=Object.defineProperty,U=Object.defineProperties,W=Object.getOwnPropertyDescriptors,x=Object.getOwnPropertySymbols,X=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable,C=(o,e,s)=>e in o?Q(o,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[e]=s,m=(o,e)=>{for(var s in e||(e={}))X.call(e,s)&&C(o,s,e[s]);if(x)for(var s of x(e))Y.call(e,s)&&C(o,s,e[s]);return o},d=(o,e)=>U(o,W(e));const Z=o=>{const{regions:e=[],updateRegion:s,useAudioClipStore:h}=o,{audioClipState:j,setAudioClipState:v}=h(),{t:f}=J(),{selectedAttribute:L,selectedRegion:E,clipTextConfigurable:N,clipAttributeList:p,clipAttributeConfigurable:b,secondaryAttributeConfigurable:w,subAttributeList:O,clipTextList:g}=j,{id:l}=E,u=I(()=>e.find(t=>t.id===l),[e,l]),P=t=>{e.length&&l&&s(d(m({},u),{attribute:t})),v({selectedAttribute:t})},T=(t,i)=>{var n;if(e.length&&l){const c=(n=u==null?void 0:u.subAttribute)!=null?n:{};s(d(m({},u),{subAttribute:d(m({},c),{[t]:i})}))}},S=[{label:"\u65E0\u5C5E\u6027",value:"",key:"\u65E0\u5C5E\u6027"},...p.map(t=>d(m({},t),{label:t.key}))],$=t=>{let i="";return N&&(g==null?void 0:g.length)>0&&g.forEach((n,c)=>{i=i+`${!b&&c===0?"":"\uFF0C"}${n.label}\uFF1A${t[n.key]}`}),i};return r.createElement("div",{className:a.clipSidebar},r.createElement("div",{className:a.clipResults},r.createElement("div",{className:a.title},f("ClippedAudio")),e.length>0?r.createElement("div",{className:a.regions},e.map(t=>{const{id:i,attribute:n,text:c,start:_,end:R}=t,k=i===l&&E.loop,F=`${b?z(n,S):""}${$(t)}`;return r.createElement("div",{className:H({[a.region]:!0,[a.selected]:i===l}),key:i,onClick:()=>{A.emit("setSelectedRegion",{id:i,playImmediately:!0})}},r.createElement("div",{className:a.label},k&&r.createElement("img",{src:q}),r.createElement("div",{className:a.text},r.createElement(G,{text:F}))),r.createElement("div",{className:a.time},r.createElement("img",{src:l===i?V:B}),y(_,"ss.SSS")," -",y(R,"ss.SSS")),r.createElement("div",{className:a.delete,onClick:()=>{A.emit("removeRegionById",i)}},r.createElement("img",{src:M})))})):r.createElement("div",{className:a.empty},f("NoClippedData"))),b&&(p==null?void 0:p.length)>0&&r.createElement("div",{className:a.attributeList},r.createElement(D,{list:S,attributeChanged:P,selectedAttribute:L,attributeLockChange:t=>{v({attributeLockList:t})}}),l&&w&&r.createElement(K,{subAttributeList:O,setSubAttribute:T,getValue:t=>{var i;return(i=u==null?void 0:u.subAttribute)==null?void 0:i[t.value]}})))};export{Z as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import i,{useState as
|
|
1
|
+
import i,{useState as U,useEffect as B,useMemo as oe}from"react";import{AudioPlayer as Le}from"../audioPlayer/index.js";import{getClassName as Pe}from"../../utils/dom.js";import Re from"../predictTracking/previewResult/index.js";import{Layout as ie}from"antd/es";import{Spin as je}from"antd";import{prefix as he}from"../../constant/index.js";import{cKeyCode as we,CommonToolUtils as K,uuid as Ae,TagUtils as Ie,EventBus as Oe,cTool as Ne}from"@labelbee/lb-annotation";import N from"./index.module.scss.js";import ke from"./tagResultShow/index.js";import{AudioClipProvider as De,DEFAULT_CLIP_TEXT_CONFIG_ITEM as $e,useAudioClipStore as Me}from"./audioContext/index.js";import Ve from"./textInput/index.js";import{connect as Be}from"react-redux";import{a2MapStateToProps as Ke}from"../../store/annotation/map.js";import{LabelBeeContext as We}from"../../store/ctx.js";import{jsonParser as Fe}from"../../utils/index.js";import{useCustomToolInstance as Ue}from"../../hooks/annotation.js";import{sidebarCls as Q}from"../../views/MainView/sidebar/index.js";import Xe from"./audioSide/labelSidebar/index.js";import Ge from"./audioSide/clipSidebar/index.js";import qe from"../../assets/annotation/audio/tag.svg.js";import ze from"../../assets/annotation/audio/tagA.svg.js";import He from"../../assets/annotation/audio/clip.svg.js";import Je from"../../assets/annotation/audio/clipA.svg.js";var Qe=Object.defineProperty,Ye=Object.defineProperties,Ze=Object.getOwnPropertyDescriptors,le=Object.getOwnPropertySymbols,et=Object.prototype.hasOwnProperty,tt=Object.prototype.propertyIsEnumerable,re=(t,n,s)=>n in t?Qe(t,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[n]=s,_=(t,n)=>{for(var s in n||(n={}))et.call(n,s)&&re(t,s,n[s]);if(le)for(var s of le(n))tt.call(n,s)&&re(t,s,n[s]);return t},k=(t,n)=>Ye(t,Ze(n));const{EAudioToolName:nt}=Ne,se=we.default,{Sider:ot,Content:it}=ie,ae=`${he}-layout`,lt=({setSideTab:t,sideTab:n})=>{const s=[{tab:"tag",commonSvg:qe,selectedSvg:ze},{tab:"clip",commonSvg:He,selectedSvg:Je}];return i.createElement("div",{className:N.toggleAudioOption},s.map((p,x)=>{const{tab:f,selectedSvg:S,commonSvg:T}=p;return i.createElement("div",{key:x,className:N.option},i.createElement("img",{className:N.icon,src:n===f?S:T,onClick:()=>{n!==f&&t(f)}}))}))},rt=({result:t,inputDisabled:n,updateText:s,configList:p,autofocus:x,preContext:f,isCheck:S,clipAttributeConfigurable:T,clipTextConfigurable:D,textConfigurable:v,updateRegion:C,clipAttributeList:m,clipTextList:g})=>i.createElement("div",{className:N.textareaContainer},i.createElement("div",{className:N.textareaContent},i.createElement(Ve,{isCheck:S,result:t==null?void 0:t.value,textInputDisabled:n,textID:(t==null?void 0:t.id)||0,updateText:s,configList:p,autofocus:!n&&x,preContext:f,regions:t==null?void 0:t.regions,clipAttributeConfigurable:T,clipTextConfigurable:D,textConfigurable:v,updateRegion:C,clipAttributeList:m,clipTextList:g}))),st=t=>{var n,s;const{sider:p,config:x,result:f,updateTagResult:S,updateRegion:T,isEdit:D,tagConfigurable:v,clipConfigurable:C}=t;let m=(x==null?void 0:x.inputList)||[],g=(n=f==null?void 0:f.tag)!=null?n:{},a=(s=f==null?void 0:f.regions)!=null?s:[];const[X,w]=U([]),[L,b]=U("tag");B(()=>{if(!v&&C){b("clip");return}b("tag")},[v,C]),B(()=>(window.addEventListener("keydown",$),()=>{window.removeEventListener("keydown",$)}));const $=l=>{if(v&&C)switch(l.keyCode){case se.L:b("tag");break;case se.X:b("clip");break}if(L==="tag"){if(!K.hotkeyFilter(l))return;K.isMoveKey(l==null?void 0:l.keyCode)&&l.preventDefault();let r=l.keyCode;if(r&&(r<=57&&r>=49||r<=105&&r>=97)){r>57?r=r-97:r=r-49;const d=X.slice();m.length===1?(P(0,r),w([0,r]),setTimeout(()=>{w([])},500)):d.length===1?(P(d[0],r),w([d[0],r]),setTimeout(()=>{w([])},500)):w([r])}}},P=(l,r)=>{if(l<m.length&&m[l].subSelected&&r<m[l].subSelected.length){const d=m[l].value,E=m[l].isMulti;let R=m[l].subSelected[r].value,G=0;const W=g;for(const j in g)if(j===m[l].value){if(G++,E===!0){const O=W[j].split(";").filter(q=>q!==""),V=O.indexOf(R);V===-1?O.push(R):O.splice(V,1),R=O.join(";")}R===""?delete W[j]:W[j]=R}G===0&&Object.assign(g,{[d]:R}),S(g)}},A=l=>{delete g[l],S(g)},I=v&&C&&i.createElement(lt,{setSideTab:b,sideTab:L}),M=L==="tag"&&i.createElement(Xe,{labelInfoSet:v?m:[],labelSelectedList:X,setLabel:P,tagResult:g,clearResult:A,isEdit:D,withPanelTab:!1}),u=L==="clip"&&i.createElement(Ge,{regions:a,updateRegion:T,useAudioClipStore:Me});return p?typeof p=="function"?i.createElement("div",{className:`${Q}`},p({toggleAudioOption:I,labelSidebar:M,clipSidebar:u})):p:i.createElement("div",{className:`${Q}`},i.createElement("div",{className:`${Q}__content`},I,M,u))},at=t=>{var n,s,p,x,f,S,T,D,v;const C=(s=(n=t.style)==null?void 0:n.sider)==null?void 0:s.width,{step:m,stepList:g,audioContext:a,sider:X,drawLayerSlot:w,imgList:L,imgIndex:b,currentData:$,config:P,stepInfo:A}=t,I=K.getCurrentStepToolAndConfig(m,g),M=Fe($.result),{toolInstanceRef:u}=Ue({basicInfo:M}),[l,r]=U(!0),[d,E]=U(null),[R,G]=U(0);B(()=>{r(!0)},[b]),B(()=>{l===!1&&be()},[l]),B(()=>{W()},[]),B(()=>{u.current.exportData=()=>[[d],{duration:R,valid:H}],u.current.setResult=Ce,u.current.clearResult=Te,u.current.currentPageResult=d==null?void 0:d.regions,u.current.emit("updatePageNumber")},[d]);const W=()=>{u.current.emit=e=>{const o=u.current.fns.get(e);o&&o.forEach(c=>{c&&(c==null||c())})},u.current.fns=new Map,u.current.singleOn=(e,o)=>{u.current.fns.set(e,[o])},u.current.on=(e,o)=>{u.current.singleOn(e,o)},u.current.unbindAll=e=>{u.current.fns.delete(e)}},j=oe(()=>{const e=M[`step_${A==null?void 0:A.step}`];return(e==null?void 0:e.result)||[]},[P,M,A]),{tagConfigurable:O,textConfigurable:V=!0,clipConfigurable:q=!1,clipAttributeConfigurable:Y=!1,clipAttributeList:Z=[],clipTextConfigurable:z=!1,subAttributeList:ue=[],secondaryAttributeConfigurable:ce=!1,inputList:de=[],configList:fe=[],clipTextList:ee=$e}=oe(()=>{if(I)return K.jsonParser(I==null?void 0:I.config)},[I]),me={clipConfigurable:q,clipAttributeConfigurable:Y,clipAttributeList:Z,clipTextConfigurable:z,subAttributeList:ue,secondaryAttributeConfigurable:ce,clipTextList:ee},H=a?a==null?void 0:a.valid:!0,pe=(x=(p=K.jsonParser($.result))==null?void 0:p.duration)!=null?x:0,ge=H?pe:0,ve=!H||l||![V,z].includes(!0);let te={};if(b!==-1&&(L==null?void 0:L.length)){const e=(f=L[b])==null?void 0:f.preResult,o=(a==null?void 0:a.isEdit)?(S=a==null?void 0:a.stepConfig)==null?void 0:S.loadPreStep:A==null?void 0:A.loadPreStep;if(e&&o){const c=K.jsonParser(e),y=(D=(T=c==null?void 0:c.config)==null?void 0:T.context)!=null?D:{};Object.keys(y).forEach(h=>{h&&y[h]&&(te[h]={visible:!0,content:y[h],type:h})})}}const be=()=>{(j==null?void 0:j.length)>0?E(j[0]):E({id:Ae(),sourceID:"",value:ne(),tag:Ee(),regions:[]})},ne=(e=!0)=>{const o={};let c=P.configList||[];return c.length>0&&c.forEach(y=>{o[y.key]=e&&y.default||""}),o},Ee=()=>Ie.getDefaultResultByConfig(P.inputList||[]),ye=({duration:e,hasError:o})=>{r(!1),G(e)},_e=e=>{E(o=>k(_({},o),{regions:((o==null?void 0:o.regions)||[]).filter(c=>c.id!==e)}))},J=e=>{E(o=>{var c;const y=(c=o==null?void 0:o.regions)!=null?c:[],{id:h}=e;return y.find(F=>F.id===h)?k(_({},o),{regions:y.map(F=>h===F.id?_(_({},F),e):F)}):k(_({},o),{regions:[...y,e]})})},xe=(e,o)=>{E(c=>k(_({},c),{value:k(_({},c.value),{[o]:e})}))},Se=e=>{E(o=>k(_({},o),{tag:e}))},Ce=e=>{E(e)},Te=()=>{E(e=>k(_({},e),{value:ne(),tag:{},regions:[]})),Oe.emit("clearRegions")};return i.createElement(De,null,i.createElement(je,{spinning:l,wrapperClassName:"audio-tool-spinner"},i.createElement(ie,{className:Pe("layout","container"),style:{height:"100%"}},t==null?void 0:t.leftSider,i.createElement(it,{className:`${ae}__content`},i.createElement("div",{className:N.containerWrapper},i.createElement("div",{className:N.audioWrapper},O&&i.createElement(ke,{result:d==null?void 0:d.tag,labelInfoSet:de,hasPromptLayer:!!(a==null?void 0:a.promptLayer)}),a==null?void 0:a.promptLayer,i.createElement(Le,_({context:{isEdit:a==null?void 0:a.isEdit,count:ge,toolName:nt.AudioTextTool,imgIndex:b},drawLayerSlot:w,fileData:$,onLoaded:ye,invalid:!H,updateRegion:J,removeRegion:_e,regions:d==null?void 0:d.regions,activeToolPanel:a==null?void 0:a.activeToolPanel,footer:t.footer},me))),(V||z)&&i.createElement(rt,{preContext:te,result:d,inputDisabled:ve,updateText:xe,updateRegion:J,configList:fe,autofocus:!1,textConfigurable:V,clipTextConfigurable:z,clipAttributeList:Z,clipAttributeConfigurable:Y,clipTextList:ee}))),i.createElement(ot,{className:`${ae}__side`,width:C!=null?C:240,style:(v=t.style)==null?void 0:v.sider},i.createElement(st,{sider:X,config:P,result:d,updateTagResult:Se,updateRegion:J,isEdit:a==null?void 0:a.isEdit,tagConfigurable:O,clipConfigurable:q})),i.createElement(Re,null))))};var ut=Be(Ke,null,null,{context:We})(at);export{ut as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e,{useState as
|
|
1
|
+
import e,{useState as q,useRef as ee,useEffect as K}from"react";import{Tooltip as te,Radio as H,Switch as xe}from"antd";import{QuestionCircleOutlined as ge}from"@ant-design/icons";import{TextareaWithFooter as Fe}from"../../../views/MainView/sidebar/TextToolSidebar/index.js";import{timeFormat as ae,getAttributeColor as Ce,getAttributeFontColor as Te,updateColorOpacity as he,getAttributeShowText as be,DEFAULT_TEXT_CONFIG_ITEM as ye}from"../../../utils/audio.js";import{cKeyCode as we}from"@labelbee/lb-annotation";import U from"classnames";import le,{useAudioClipStore as Ne,DEFAULT_CLIP_TEXT_CONFIG_ITEM as ke}from"../audioContext/index.js";import o from"./index.module.scss.js";import{useTranslation as ne}from"react-i18next";var Ie=Object.defineProperty,Be=Object.defineProperties,_e=Object.getOwnPropertyDescriptors,oe=Object.getOwnPropertySymbols,Se=Object.prototype.hasOwnProperty,Ae=Object.prototype.propertyIsEnumerable,re=(u,l,r)=>l in u?Ie(u,l,{enumerable:!0,configurable:!0,writable:!0,value:r}):u[l]=r,ue=(u,l)=>{for(var r in l||(l={}))Se.call(l,r)&&re(u,r,l[r]);if(oe)for(var r of oe(l))Ae.call(l,r)&&re(u,r,l[r]);return u},De=(u,l)=>Be(u,_e(l));const d=we.default,se=({onClick:u,title:l,disabled:r})=>e.createElement(te,{placement:"bottom",title:l},e.createElement("span",{className:U({[o.clearIcon]:!0,[o.disabled]:r}),onClick:u})),X=u=>{var l;const{t:r}=ne(),L=ee(null),[E,y]=q(!1),[w,p]=q(!1),{disabled:s,config:c,result:O,updateText:f,index:v,switchToNextTextarea:$,hasMultiple:R,textID:N,addPlaceholder:x,onFocus:k,onBlur:T,onFocusStyle:G={},extra:h,errorText:I}=u,{maxLength:g}=c,B=O?O[c.key]:"",_=(l=B==null?void 0:B.length)!=null?l:0,S=a=>{f&&(f(a,c.key),c.required&&p(!a))},j=R&&$,m={id:`textInput-${v}`,ref:L,disabled:s,value:B,maxLength:g,autoSize:{minRows:2,maxRows:6},onChange:a=>{const i=a.target.value;S(i)},onFocus:a=>{y(!0),k==null||k(a),a.target.value&&p(!1)},onBlur:a=>{y(!1),T==null||T(a),c.required&&p(!a.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:a=>{const{keyCode:i}=a;if(a.ctrlKey){if(i===d.Enter&&a.preventDefault(),x&&[d.One,d.Two,d.Three].includes(i))switch(a.preventDefault(),i){case d.One:x("\u4986");break;case d.Two:x("\u652B");break;case d.Three:x("\u7383");break}}else i===d.Tab&&j?(a.preventDefault(),a.nativeEvent.stopImmediatePropagation(),$(v)):a.nativeEvent.stopPropagation()}},F=e.createElement("div",{className:o.textAreaFooter},e.createElement("div",{className:o.hotkeyTip},j&&e.createElement("span",null,"[",r("Switch"),"]Tab"),e.createElement("span",null,"[",r("TurnPage"),"]Ctrl+Enter")),e.createElement("div",{className:o.wordCount},e.createElement("span",{className:_>=g?o.warning:""},_),"/",e.createElement("span",null,g)));return K(()=>{s&&y(!1)},[s]),K(()=>{p(!1)},[N]),e.createElement("div",{className:o.textField},e.createElement("div",{className:o.label},e.createElement("span",{className:U({[o.required]:c.required})},c.label),e.createElement(se,{onClick:()=>{s||S("")},title:"",disabled:s}),e.createElement("div",{className:o.extra},h)),e.createElement("div",{className:U({disabled:s,"textarea-outline":!0,"ant-input-focused":E,[o.textareaContainer]:!0,[o.focus]:E,[o.invalid]:w}),style:E?G:{}},e.createElement(Fe,{footer:F,textareaProps:m})),I&&e.createElement("span",{style:{color:"#ff4d4f",lineHeight:"22px"}},I))},Pe=u=>{const{configList:l,autofocus:r,textID:L,result:E,showText:y,updateText:w,toggleShowText:p,textInputDisabled:s,isCheck:c,isEdit:O,config:f,preContext:v,regions:$=[],textConfigurable:R=!0,clipTextConfigurable:N,clipAttributeConfigurable:x,updateRegion:k,clipAttributeList:T=[],clipTextList:G=ke}=u,{t:h}=ne(),[I,g]=q(0),[B,_]=q(""),S=ee(null),{audioClipState:j}=Ne(),m=l||[ue({},ye)];let F=$;if(N&&!c){const t=j.selectedRegion.id;F=F.filter(n=>n.id===t)}const a=t=>{setTimeout(()=>{const n=document.getElementById(`textInput-${t}`);n&&(g(t),n.focus(),n.select(),n.scrollIntoView({behavior:"smooth",block:"center"}))})},i=t=>{const n=R?m.length:0,b=N?F.length:0,C=n+b,D=(t+1)%C;a(D)},Q=t=>{t.keyCode===d.Tab&&(t.preventDefault(),m.length>0&&a(0))},M=t=>{const n=document.getElementById(`textInput-${I}`);if(!(f==null?void 0:f.enablePlaceholderHotkey)||!n||!w)return;const{value:b,selectionStart:C,selectionEnd:D}=n,P=`${b.slice(0,C)}${t}${b.slice(D)}`;w(P,m[I].key),_(t),setTimeout(()=>{n.setSelectionRange(C+1,C+1),n.focus()},0),clearTimeout(S.current),S.current=setTimeout(()=>{_("")},400)};K(()=>(O||document.addEventListener("keydown",Q),()=>{document.removeEventListener("keydown",Q)}),[l]),K(()=>{r&&!s&&a(0)},[L]);let V=m;c&&(V=m.filter(t=>(E==null?void 0:E[t.key])!==void 0));const A=F[0];return e.createElement(e.Fragment,null,(f==null?void 0:f.enablePlaceholderHotkey)&&e.createElement("div",{className:o.placeholderHotkey},e.createElement("div",{className:o.title},"\u5360\u4F4D\u7B26\u5FEB\u6377\u8F93\u5165",e.createElement(te,{overlayStyle:{maxWidth:240},title:e.createElement("div",null,e.createElement("div",null,"\u4986\uFF08Ctrl+1\uFF09\uFF1A"),e.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4F46\u53EA\u6839\u636E\u8FD9\u4E2A\u5B57\u7684\u5F62\u72B6\u5C31\u53EF\u4EE5\u731C\u51FA\u662F\u4EC0\u4E48\u5B57"),e.createElement("div",null,"\u652B\uFF08Ctrl+2\uFF09\uFF1A"),e.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4E14\u65E0\u6CD5\u6839\u636E\u5F62\u72B6\u731C\u5B57\uFF0C\u4F46\u80FD\u7ED3\u5408\u4E0A\u4E0B\u6587\u8BED\u4E49\u5224\u65AD\u51FA\u662F\u4EC0\u4E48\u5B57"),e.createElement("div",null,"\u7383\uFF08Ctrl+3\uFF09\uFF1A"),e.createElement("div",null,"\u5B8C\u5168\u65E0\u6CD5\u5224\u65AD\u662F\u4EC0\u4E48\u5B57")),placement:"bottom"},e.createElement(ge,{className:o.questionIcon}))),e.createElement(H.Group,{value:B},e.createElement(H.Button,{value:"\u4986",onClick:t=>M(t.target.value)},e.createElement("div",{className:"label"},e.createElement("div",{className:"text"},"\u4986 (\u89C6\u89C9)"),e.createElement("div",{className:"hotkey"},"Ctrl+1"))),e.createElement(H.Button,{value:"\u652B",onClick:t=>M(t.target.value)},e.createElement("div",{className:"label"},e.createElement("div",{className:"text"},"\u652B (\u8BED\u4E49)"),e.createElement("div",{className:"hotkey"},"Ctrl+2"))),e.createElement(H.Button,{value:"\u7383",onClick:t=>M(t.target.value)},e.createElement("div",{className:"label"},e.createElement("div",{className:"text"},"\u7383 (\u65E0\u6548)"),e.createElement("div",{className:"hotkey"},"Ctrl+3"))))),e.createElement("div",{className:o.textInputContainer},e.createElement(le,{audioContext:v==null?void 0:v.before}),R&&V.map((t,n)=>e.createElement(X,{config:t,key:n,index:n,result:E,updateText:w,switchToNextTextarea:i,hasMultiple:m.length>1,disabled:s,textID:L,addPlaceholder:M,onFocus:()=>g(n)})),N&&F.length>0&&G.map((t,n)=>{const{id:b,start:C,end:D,attribute:P}=A,{maxLength:ce=3e3,label:J,key:Y,required:ie}=t,Z=A==null?void 0:A[Y],de={[A.id]:Z},me={label:`${J!=null?J:h("textTool")}\uFF08${ae(C,"ss.SSS")} - ${ae(D,"ss.SSS")}\uFF09`,key:b,maxLength:ce},W=V.length+n,z=Ce(P,T),Ee={color:Te(P,T),backgroundColor:z},pe=h("LeastCharacterError",{num:1}),fe=ie&&Z.length<1?pe:void 0;return e.createElement(X,{config:me,key:n,index:W,disabled:s,result:de,updateText:ve=>{k==null||k(De(ue({},A),{[Y]:ve}))},switchToNextTextarea:()=>{i(W)},hasMultiple:!0,onFocus:()=>g(W),onFocusStyle:x?{borderColor:z,boxShadow:`0 0 0 2px ${he(z,.4)}`}:{},extra:x?e.createElement("div",{style:Ee,className:o.attribute},be(P,[{value:"",key:h("NoAttribute")},...T])):null,errorText:fe})}),e.createElement(le,{audioContext:v==null?void 0:v.after}),p&&e.createElement("div",{className:o.switchItem},h("toggleShowText"),e.createElement(xe,{style:{alignSelf:"center"},checked:y,onChange:t=>{p(t)}}))))};export{se as ClearIcon,X as SingleTextInput,Pe as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import t,{useRef as
|
|
1
|
+
import t,{useRef as w}from"react";import N from"react-dom";import{useAudioClipStore as _}from"../../audioAnnotate/audioContext/index.js";import{getAttributeColor as O,getAttributeFontColor as F,updateColorOpacity as P,getAttributeShowText as D}from"../../../utils/audio.js";import I from"../../../assets/annotation/audio/loop.svg.js";import{Typography as M}from"antd";import{useClickAway as q}from"ahooks";import{classnames as z}from"../../../utils/index.js";import r from"./index.module.scss.js";import{useTranslation as B}from"react-i18next";const{Paragraph:G}=M,H=x=>{const{t:C}=B(),{audioClipState:v,setAudioClipState:y}=_(),{clipAttributeList:i,clipAttributeConfigurable:h,clipTextConfigurable:A,selectedRegion:c,clipTextList:d}=v,u=w(null),{el:E,region:p,edgeAdsorption:R,clipping:k,instance:m}=x,{attribute:s="",text:J="",id:a,start:L,end:j}=p,{id:n}=c,o=O(s,i),f={color:F(s,i),backgroundColor:o},e={border:`2px solid ${o}`};if(a===n)e.backgroundColor=P(o,.6),e.borderLeft=`2px solid ${o}`,e.borderRight=`2px solid ${o}`;else if(m==null||m.setLoop(!1),e.borderLeft=`2px solid ${o}`,e.borderRight=`2px solid ${o}`,k){const l=Object.values(R);l.includes(L)&&(e.borderLeft="3px dashed #fff"),l.includes(j)&&(e.borderRight="3px dashed #fff")}q(()=>{a===n&&y({selectedRegion:{}})},u,["contextmenu"]);const T=a===n&&c.loop,S=t.createElement("div",{style:e,ref:u,className:z({[r.container]:!0})},T&&t.createElement("div",{className:r.loop},t.createElement("img",{src:I})),h&&t.createElement("div",null,t.createElement("div",{style:f,className:r.attribute},D(s,[{value:"",key:"\u65E0\u5C5E\u6027"},...i]))),A&&(d==null?void 0:d.map((l,$)=>{var b,g;return t.createElement(G,{ellipsis:{rows:2},className:r.text,style:f,key:$},(b=l==null?void 0:l.label)!=null?b:C("textTool"),":",(g=p[l==null?void 0:l.key])!=null?g:"")})));return t.createElement(t.Fragment,null,N.createPortal(S,E))};export{H as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import i,{useState as g,useRef as z,useEffect as A}from"react";import{getWebPcm2WavBase64 as Gt}from"../audioAnnotate/utils/getWebPcm2Wac.js";import Yt,{debounce as Jt,sortBy as Qt}from"lodash";import{PauseOutlined as er,CaretRightOutlined as tr}from"@ant-design/icons";import{cKeyCode as rr,cTool as or,EventBus as E,TagUtils as nr}from"@labelbee/lb-annotation";import{Button as ir}from"antd";import lr from"../invalidPage/index.js";import sr from"../imageError/index.js";import{classnames as $}from"../../utils/index.js";import ar,{EPlayerType as ur}from"../videoPlayer/components/SpeedController/index.js";import cr from"@labelbee/wavesurfer";import dr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js";import mr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js";import pr,{audioZoomInfo as Xe}from"./zoomSlider/index.js";import fr from"./labelDisplayToggle/index.js";import vr from"./clipRegion/index.js";import{useAudioClipStore as gr}from"../audioAnnotate/audioContext/index.js";import{useLatest as H,useUpdate as br,useDeepCompareEffect as Ze,useThrottleFn as yr}from"ahooks";import _r from"./useAudioScroll/index.js";import b from"./index.module.scss.js";import{getAttributeColor as Er,formatTime as qe,timeFormat as Ke,dispatchResizeEvent as hr,precisionMinus as Ve,isDoubleClick as Cr,getCanMoveRange as Sr}from"../../utils/audio.js";import Pr from"./progressDot/index.js";import Rr from"./clipTip/index.js";import wr from"./useSwitchHotkey/index.js";import Tr from"./useAudioCombine/index.js";import Ar from"./useAudioSegment/index.js";import jr from"./combineTip/index.js";import xr from"./segmentTip/index.js";import Dr from"../../views/MainView/toolFooter/index.js";import{decimalReserved as U}from"../videoPlayer/utils.js";var Mr=Object.defineProperty,kr=Object.defineProperties,Ir=Object.getOwnPropertyDescriptors,Ge=Object.getOwnPropertySymbols,Br=Object.prototype.hasOwnProperty,Lr=Object.prototype.propertyIsEnumerable,Ye=(f,u,c)=>u in f?Mr(f,u,{enumerable:!0,configurable:!0,writable:!0,value:c}):f[u]=c,Je=(f,u)=>{for(var c in u||(u={}))Br.call(u,c)&&Ye(f,c,u[c]);if(Ge)for(var c of Ge(u))Lr.call(u,c)&&Ye(f,c,u[c]);return f},Qe=(f,u)=>kr(f,Ir(u));const{EToolName:et}=or,X=rr.default,tt=.1,rt=i.createContext({count:0,isEdit:!1,toolName:et.Empty,imgIndex:0}),Or=({fileData:f={},onLoaded:u,context:c,invalid:ot,height:nt,hideError:it,onError:ce,updateRegion:j,removeRegion:L,regions:x=[],activeToolPanel:lt,clipConfigurable:st,clipTextConfigurable:at,clipAttributeList:ut,clipAttributeConfigurable:de,secondaryAttributeConfigurable:ct,subAttributeList:dt,isCheck:S,hoverRegionId:Z,footer:mt,drawLayerSlot:me})=>{var pe,fe;const{url:O,path:ve}=f,[q,K]=g(!1),[ge,be]=g(!1),[P,pt]=g(0),[ft,ye]=g(!1),[N,_e]=g(0),n=z(null),R=z(null),Ee=z(P),V=e=>{Ee.current=e,pt(e)},[he,vt]=g(0),[F,gt]=g(1),G=z(null),[Ce,bt]=g({}),{audioClipState:Y,setAudioClipState:k}=gr(),[J,Q]=g(!1),d=H(Y),Se=H(Ce),yt=H(q),D=H(x),Pe=br(),[Re,_t]=g([]),[we,Et]=g({}),ht=Jt(()=>{E.emit("audioZoom")},500),Te=e=>{e<Xe.min||e>Xe.max||(gt(e),hr(),ht())};_r({container:G.current,target:document.querySelector(`[data-id=${(fe=(pe=d.current)==null?void 0:pe.selectedRegion)==null?void 0:fe.id}]`),clipping:J,zoom:F,zoomHandler:Te});const W=()=>{let e=D.current;const{attributeLockList:r}=d.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),te(),e.forEach(t=>{var o;(o=n.current)==null||o.addRegion(Qe(Je({},t),{drag:!S,resize:!S,color:"rgba(0, 0, 0, 0)"}))}),Pe()},m=e=>{var r,t,o,l,s,p,y;const{id:a,loop:v=!0,playImmediately:C=!1}=e;if(a){const M=(o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{};Object.entries(M).forEach(([,_])=>{const{id:T}=_;a===T?_.select():_.cancelSelect()}),k({selectedRegion:{id:a,loop:v},selectedAttribute:(p=(s=(l=D.current)==null?void 0:l.find(_=>_.id===a))==null?void 0:s.attribute)!=null?p:""}),v&&C&&((y=I(a))==null||y.playLoop())}else k({selectedRegion:{}})},{combineInstance:Ct}=Tr({waveRef:n,sortByStartRegions:Re,regionMap:we,updateRegion:j,removeRegion:L,generateRegions:W,setSelectedRegion:m}),{segmentInstance:St,onRegionMouseMove:Pt,segmentTimeTip:Rt}=Ar({waveRef:n,regionMap:we,updateRegion:j,removeRegion:L,generateRegions:W,setSelectedRegion:m}),Ae={clipTextConfigurable:at,clipAttributeList:ut,clipAttributeConfigurable:de,clipConfigurable:st,secondaryAttributeConfigurable:ct,subAttributeList:dt};A(()=>{k({selectedAttribute:""})},[de]),A(()=>{ee()},[Y.selectedAttribute]),A(()=>{W()},[Y.attributeLockList]),Ze(()=>{k(Ae),setTimeout(()=>{je()})},[Ae]),Ze(()=>{_t(Qt(x,["start"])),Et(x.reduce((e,r)=>{const{id:t}=r;return Qe(Je({},e),{[t]:r})},{}))},[x]),A(()=>{if(Z){const e=yt.current;m({id:Z,loop:e,playImmediately:!0})}else m({})},[Z]);const je=()=>{var e,r;d.current.clipConfigurable?(!S&&n.current&&((e=n.current)==null||e.enableDragSelection({slop:5})),W()):((r=n.current)==null||r.disableDragSelection(),te()),ee()},ee=()=>{var e,r,t,o,l;let s="";d.current.clipConfigurable?s=Er(d.current.selectedAttribute,(e=d.current.clipAttributeList)!=null?e:[]):s="transparent",((t=(r=n==null?void 0:n.current)==null?void 0:r.cursor)==null?void 0:t.cursor)&&((l=(o=n==null?void 0:n.current)==null?void 0:o.cursor)==null||l.setStyle({border:`2px dashed ${s}`}))},I=e=>{var r,t,o;return((o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{})[e]},xe=()=>{var e,r;if(O){const t=((r=(e=ve==null?void 0:ve.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";ye(!1),t?Gt(O).then(o=>{De(o)}):De(O)}},De=e=>{var r;e&&(be(!0),V(0),_e(0),(r=n==null?void 0:n.current)==null||r.load(e))},te=()=>{var e;(e=n.current)==null||e.clearRegions()},re=e=>{const r=I(e);r&&(Q(!1),r==null||r.remove(),L==null||L(e),m({}))},{run:Me}=yr(m,{wait:500});wr({sortByStartRegions:Re,setSelectedRegion:m});const wt=e=>{const{start:r,end:t}=Se.current;return(r||t)&&e.update(Se.current),e},Tt=({action:e,id:r,eventDownTime:t})=>{var o,l;if(!d.current.clipConfigurable)return;r&&m({id:r});const s=I((r!=null?r:(o=d.current.selectedRegion)==null?void 0:o.id)||""),p=[];(e==="create"?D.current:(l=D.current)==null?void 0:l.filter(v=>v.id!==s.id)).forEach(v=>{const{start:C,end:M,attribute:_}=v;_===d.current.selectedAttribute&&[C,M].forEach(T=>{p.includes(T)||p.push(T)})});const a=Sr(p.sort((v,C)=>v-C),t);n.current.range=a},At=e=>{ee(),setTimeout(()=>{Q(!1)});const r=wt(e),{id:t,start:o,end:l}=r;m({id:t,playImmediately:!0});const s={id:t,start:U(o,3),end:U(l,3)};j==null||j(s),Pe()},jt=()=>{const e=cr.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:nt||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[dr.create({regions:x,dragSelection:{slop:5},canMove:!1}),mr.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;V(((t=n==null?void 0:n.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const o=((t=n==null?void 0:n.current)==null?void 0:t.getDuration())||0;_e(o),r(),u==null||u({duration:Math.round(o)}),be(!1),B(),E.on("setCurrentTimeByPosition",ne),E.on("clearRegions",te),E.on("removeRegionById",re),E.on("setSelectedRegion",Me),e.on("regions-eventDown",Tt),je()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{K(!0)}),e.on("pause",()=>{K(!1)}),e.on("finish",()=>{K(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{ye(!0),u==null||u({hasError:!0}),ce==null||ce()}),e.on("region-created",t=>{var o;const{id:l,start:s,end:p}=t;if(D.current.find(a=>a.id===l))return;const y={id:l,start:U(s,3),end:U(p,3),attribute:d.current.selectedAttribute,text:""};if(d.current.secondaryAttributeConfigurable){const a=nr.getDefaultResultByConfig((o=d.current.subAttributeList)!=null?o:[]);y.subAttribute=a!=null?a:{}}j==null||j(y)}),e.on("region-updated",(t,o)=>{var l,s,p,y,a,v,C,M,_,T;const We=o==null?void 0:o.action;k({combined:!1,segment:!1}),We==="resize"&&((s=(l=n==null?void 0:n.current)==null?void 0:l.cursor)==null||s.setStyle({borderStyle:"solid"})),We==="drag"&&((y=(p=n==null?void 0:n.current)==null?void 0:p.cursor)==null||y.setStyle({borderColor:"transparent"}));const ie={},le=[],se={},zt=(a=D.current)==null?void 0:a.filter(h=>h.id!==t.id),$t=(M=(C=(v=n.current)==null?void 0:v.regions)==null?void 0:C.list)!=null?M:{};zt.forEach(h=>{var $e,He;const{element:ae}=($e=$t[h.id])!=null?$e:{},{start:Xt,end:Zt}=h;if(ae){const{x:Ue,width:qt}=((He=ae.getBoundingClientRect)==null?void 0:He.call(ae))||{},Kt=Ue+qt;[Ue,Kt].forEach((ue,Vt)=>{le.includes(ue)||(le.push(ue),se[ue]=Vt===0?Xt:Zt)})}});const{x:ze,width:Ht}=((T=(_=t.element).getBoundingClientRect)==null?void 0:T.call(_))||{},Ut=ze+Ht;le.forEach(h=>{Math.abs(Ve(h,ze))<5&&(ie.start=se[h]),Math.abs(Ve(h,Ut))<5&&(ie.end=se[h])}),bt(ie),Me({id:t.id}),Q(!0)}),e.on("region-update-end",t=>{At(t)}),e.on("region-contextmenu",(t,o)=>{if(!S){if(o.preventDefault(),o.stopPropagation(),Cr(o)){re(t.id);return}m({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,o,l)=>{if(!S){if(o.preventDefault(),o.stopPropagation(),d.current.combined){Ct(t);return}if(d.current.segment){St(t,l);return}m({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",Pt),n.current=e},xt=q?i.createElement(er,null):i.createElement(tr,null),ke=e=>e?`${parseFloat((e/N*100).toFixed(4))}%`:"0%",Ie=ke(P),Dt=ke(he),w=()=>{if(!ge)return n==null?void 0:n.current},Mt=()=>{var e;(e=w())==null||e.skipForward(tt)},kt=()=>{var e;(e=w())==null||e.skipBackward(tt)},B=()=>{var e;(e=w())==null||e.playPause(),m({})},Be=e=>{var r;switch(e.keyCode){case X.Right:Mt();break;case X.Left:kt();break;case X.Space:e.preventDefault(),B();break;case X.Delete:if(!S){const{id:t}=((r=d.current)==null?void 0:r.selectedRegion)||{};t&&re(t)}break}},It=e=>{ne(e)},Le=Yt.throttle(It,50);let oe=!1;const Oe=()=>{oe&&(B(),oe=!1),document.removeEventListener("mousemove",Le),document.removeEventListener("mouseup",Oe)},Bt=e=>{ne(e),q&&(oe=!0,B()),document.addEventListener("mousemove",Le),document.addEventListener("mouseup",Oe)},Lt=()=>{xe()};A(()=>(jt(),()=>{var e;(e=n==null?void 0:n.current)==null||e.destroy(),n.current=null,E.unbindAll("setCurrentTimeByPosition"),E.unbindAll("clearRegions"),E.unbindAll("removeRegionById"),E.unbindAll("setSelectedRegion")}),[]);const Ot=e=>{var r,t,o;(r=w())==null||r.playPause(),(t=w())==null||t.setPlaybackRate(e),(o=w())==null||o.playPause()};A(()=>(document.addEventListener("keydown",Be),()=>{document.removeEventListener("keydown",Be)})),A(()=>{m({}),xe()},[O]);const Ne=e=>{var r,t,o,l;if((n==null?void 0:n.current)&&(R==null?void 0:R.current)){const s=(t=(r=n==null?void 0:n.current)==null?void 0:r.getDuration())!=null?t:0,p=(o=R==null?void 0:R.current)==null?void 0:o.getBoundingClientRect();let a=(e.clientX-p.left)/(((l=R==null?void 0:R.current)==null?void 0:l.clientWidth)||0)*s;return a>s&&(a=s),a}return 0},ne=e=>{var r;const t=Ne(e);(r=n==null?void 0:n.current)==null||r.skip(t-Ee.current),V(t)},Nt=e=>{vt(Ne(e))},Ft=N?Math.max(N-P,0):0,Wt=(c==null?void 0:c.toolName)!==et.Empty&&(c==null?void 0:c.isEdit)!==!0&&(lt==="remark"||S),Fe=i.createElement("div",{className:b.audioPlayer},ft&&!it&&i.createElement(sr,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:Lt,backgroundColor:"#ffffffbb"}),i.createElement(Rr,{getRegionInstanceById:I,clipping:J}),i.createElement(jr,{container:G.current}),i.createElement(xr,{segmentTimeTip:Rt}),i.createElement("div",{className:b.waveformContainer,ref:G},i.createElement("div",{id:"waveform",style:{width:`${F*100}%`},className:$({[b.waveform]:!0,"bee-audio-combined":d.current.combined,"bee-audio-clip":d.current.clipConfigurable})},ot&&i.createElement(lr,{isAudio:!0}),i.createElement("div",{ref:R,className:b.progress,onMouseDown:Bt,onMouseMove:Nt},i.createElement("div",{className:$({[b.radioTooltip]:!0}),style:{left:Ie}},qe(P)),i.createElement("div",{className:$({[b.radioTooltip]:!0,[b.mouseTooltip]:!0}),style:{left:Dt}},qe(he)),i.createElement(Pr,{playPercentage:Ie})),Wt&&(me==null?void 0:me({currentTime:P,remainingTime:Ft,audioPlayer:w()})))),i.createElement("div",{className:b.controlBar},i.createElement(ir,{type:"link",icon:xt,onClick:()=>{B()},className:$({[b.playButton]:!0,[b.playButtonDisabled]:ge})}),i.createElement("span",{className:b.time},`${Ke(P,"ss.SSS")} / -${Ke(N-P,"ss.SSS")}`),i.createElement(ar,{playerType:ur.Audio,onChange:e=>{Ot(e)}}),i.createElement(pr,{onChange:e=>{Te(e)},zoom:F}),i.createElement(fr,{EventBus:E})));return c?i.createElement(rt.Provider,{value:c},Fe,x.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?i.createElement(vr,{el:t,key:r,region:e,edgeAdsorption:Ce,clipping:J,zoom:F,instance:I(r)}):null}),i.createElement(Dr,{footer:mt})):Fe};export{Or as AudioPlayer,rt as AudioPlayerContext};
|
|
1
|
+
import l,{useState as b,useRef as z,useEffect as A}from"react";import{getWebPcm2WavBase64 as Yt}from"../audioAnnotate/utils/getWebPcm2Wac.js";import Jt,{debounce as Qt,sortBy as er}from"lodash";import{PauseOutlined as tr,CaretRightOutlined as rr}from"@ant-design/icons";import{cKeyCode as or,cTool as nr,EventBus as E,TagUtils as ir}from"@labelbee/lb-annotation";import{Button as lr}from"antd";import sr from"../invalidPage/index.js";import ar from"../imageError/index.js";import{classnames as $}from"../../utils/index.js";import ur,{EPlayerType as cr}from"../videoPlayer/components/SpeedController/index.js";import dr from"@labelbee/wavesurfer";import mr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js";import fr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js";import pr,{audioZoomInfo as qe}from"./zoomSlider/index.js";import vr from"./labelDisplayToggle/index.js";import gr from"./clipRegion/index.js";import{useAudioClipStore as br}from"../audioAnnotate/audioContext/index.js";import{useLatest as H,useUpdate as yr,useDeepCompareEffect as Ke,useThrottleFn as _r}from"ahooks";import Er from"./useAudioScroll/index.js";import y from"./index.module.scss.js";import{getAttributeColor as hr,formatTime as Ve,timeFormat as Ge,dispatchResizeEvent as Sr,precisionMinus as Ye,isDoubleClick as Cr,getCanMoveRange as Pr}from"../../utils/audio.js";import Rr from"./progressDot/index.js";import wr from"./clipTip/index.js";import Tr from"./useSwitchHotkey/index.js";import Ar from"./useAudioCombine/index.js";import jr from"./useAudioSegment/index.js";import xr from"./combineTip/index.js";import Dr from"./segmentTip/index.js";import kr from"../../views/MainView/toolFooter/index.js";import{decimalReserved as U}from"../videoPlayer/utils.js";var Mr=Object.defineProperty,Ir=Object.defineProperties,Br=Object.getOwnPropertyDescriptors,Je=Object.getOwnPropertySymbols,Or=Object.prototype.hasOwnProperty,Lr=Object.prototype.propertyIsEnumerable,Qe=(g,u,c)=>u in g?Mr(g,u,{enumerable:!0,configurable:!0,writable:!0,value:c}):g[u]=c,et=(g,u)=>{for(var c in u||(u={}))Or.call(u,c)&&Qe(g,c,u[c]);if(Je)for(var c of Je(u))Lr.call(u,c)&&Qe(g,c,u[c]);return g},tt=(g,u)=>Ir(g,Br(u));const{EToolName:rt}=nr,X=or.default,ot=.1,nt=l.createContext({count:0,isEdit:!1,toolName:rt.Empty,imgIndex:0}),Nr=({fileData:g={},onLoaded:u,context:c,invalid:it,height:lt,hideError:st,onError:ce,updateRegion:j,removeRegion:O,regions:x=[],activeToolPanel:at,clipConfigurable:ut,clipTextConfigurable:de,clipAttributeList:ct,clipAttributeConfigurable:me,secondaryAttributeConfigurable:dt,subAttributeList:mt,isCheck:C,hoverRegionId:Z,footer:ft,drawLayerSlot:fe,clipTextList:pe})=>{var ve,ge;const{url:L,path:be}=g,[q,K]=b(!1),[ye,_e]=b(!1),[P,pt]=b(0),[vt,Ee]=b(!1),[N,he]=b(0),n=z(null),R=z(null),Se=z(P),V=e=>{Se.current=e,pt(e)},[Ce,gt]=b(0),[F,bt]=b(1),G=z(null),[Pe,yt]=b({}),{audioClipState:Y,setAudioClipState:M}=br(),[J,Q]=b(!1),d=H(Y),Re=H(Pe),_t=H(q),D=H(x),we=yr(),[Te,Et]=b([]),[Ae,ht]=b({}),St=Qt(()=>{E.emit("audioZoom")},500),je=e=>{e<qe.min||e>qe.max||(bt(e),Sr(),St())};Er({container:G.current,target:document.querySelector(`[data-id=${(ge=(ve=d.current)==null?void 0:ve.selectedRegion)==null?void 0:ge.id}]`),clipping:J,zoom:F,zoomHandler:je});const W=()=>{let e=D.current;const{attributeLockList:r}=d.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),te(),e.forEach(t=>{var o;(o=n.current)==null||o.addRegion(tt(et({},t),{drag:!C,resize:!C,color:"rgba(0, 0, 0, 0)"}))}),we()},m=e=>{var r,t,o,s,a,f,v;const{id:i,loop:p=!0,playImmediately:S=!1}=e;if(i){const k=(o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{};Object.entries(k).forEach(([,_])=>{const{id:T}=_;i===T?_.select():_.cancelSelect()}),M({selectedRegion:{id:i,loop:p},selectedAttribute:(f=(a=(s=D.current)==null?void 0:s.find(_=>_.id===i))==null?void 0:a.attribute)!=null?f:""}),p&&S&&((v=I(i))==null||v.playLoop())}else M({selectedRegion:{}})},{combineInstance:Ct}=Ar({waveRef:n,sortByStartRegions:Te,regionMap:Ae,updateRegion:j,removeRegion:O,generateRegions:W,setSelectedRegion:m}),{segmentInstance:Pt,onRegionMouseMove:Rt,segmentTimeTip:wt}=jr({waveRef:n,regionMap:Ae,updateRegion:j,removeRegion:O,generateRegions:W,setSelectedRegion:m}),xe={clipTextConfigurable:de,clipAttributeList:ct,clipAttributeConfigurable:me,clipConfigurable:ut,secondaryAttributeConfigurable:dt,subAttributeList:mt,clipTextList:pe};A(()=>{M({selectedAttribute:""})},[me]),A(()=>{ee()},[Y.selectedAttribute]),A(()=>{W()},[Y.attributeLockList]),Ke(()=>{M(xe),setTimeout(()=>{De()})},[xe]),Ke(()=>{Et(er(x,["start"])),ht(x.reduce((e,r)=>{const{id:t}=r;return tt(et({},e),{[t]:r})},{}))},[x]),A(()=>{if(Z){const e=_t.current;m({id:Z,loop:e,playImmediately:!0})}else m({})},[Z]);const De=()=>{var e,r;d.current.clipConfigurable?(!C&&n.current&&((e=n.current)==null||e.enableDragSelection({slop:5})),W()):((r=n.current)==null||r.disableDragSelection(),te()),ee()},ee=()=>{var e,r,t,o,s;let a="";d.current.clipConfigurable?a=hr(d.current.selectedAttribute,(e=d.current.clipAttributeList)!=null?e:[]):a="transparent",((t=(r=n==null?void 0:n.current)==null?void 0:r.cursor)==null?void 0:t.cursor)&&((s=(o=n==null?void 0:n.current)==null?void 0:o.cursor)==null||s.setStyle({border:`2px dashed ${a}`}))},I=e=>{var r,t,o;return((o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{})[e]},ke=()=>{var e,r;if(L){const t=((r=(e=be==null?void 0:be.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";Ee(!1),t?Yt(L).then(o=>{Me(o)}):Me(L)}},Me=e=>{var r;e&&(_e(!0),V(0),he(0),(r=n==null?void 0:n.current)==null||r.load(e))},te=()=>{var e;(e=n.current)==null||e.clearRegions()},re=e=>{const r=I(e);r&&(Q(!1),r==null||r.remove(),O==null||O(e),m({}))},{run:Ie}=_r(m,{wait:500});Tr({sortByStartRegions:Te,setSelectedRegion:m});const Tt=e=>{const{start:r,end:t}=Re.current;return(r||t)&&e.update(Re.current),e},At=({action:e,id:r,eventDownTime:t})=>{var o,s;if(!d.current.clipConfigurable)return;r&&m({id:r});const a=I((r!=null?r:(o=d.current.selectedRegion)==null?void 0:o.id)||""),f=[];(e==="create"?D.current:(s=D.current)==null?void 0:s.filter(p=>p.id!==a.id)).forEach(p=>{const{start:S,end:k,attribute:_}=p;_===d.current.selectedAttribute&&[S,k].forEach(T=>{f.includes(T)||f.push(T)})});const i=Pr(f.sort((p,S)=>p-S),t);n.current.range=i},jt=e=>{ee(),setTimeout(()=>{Q(!1)});const r=Tt(e),{id:t,start:o,end:s}=r;m({id:t,playImmediately:!0});const a={id:t,start:U(o,3),end:U(s,3)};j==null||j(a),we()},xt=()=>{const e=dr.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:lt||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[mr.create({regions:x,dragSelection:{slop:5},canMove:!1}),fr.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;V(((t=n==null?void 0:n.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const o=((t=n==null?void 0:n.current)==null?void 0:t.getDuration())||0;he(o),r(),u==null||u({duration:Math.round(o)}),_e(!1),B(),E.on("setCurrentTimeByPosition",ne),E.on("clearRegions",te),E.on("removeRegionById",re),E.on("setSelectedRegion",Ie),e.on("regions-eventDown",At),De()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{K(!0)}),e.on("pause",()=>{K(!1)}),e.on("finish",()=>{K(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{Ee(!0),u==null||u({hasError:!0}),ce==null||ce()}),e.on("region-created",t=>{var o;const{id:s,start:a,end:f}=t;if(D.current.find(i=>i.id===s))return;const v={id:s,start:U(a,3),end:U(f,3),attribute:d.current.selectedAttribute,text:""};if(d.current.secondaryAttributeConfigurable){const i=ir.getDefaultResultByConfig((o=d.current.subAttributeList)!=null?o:[]);v.subAttribute=i!=null?i:{}}de&&pe.forEach((i,p)=>{p===0?Object.assign(v,{text:i==null?void 0:i.default}):Object.assign(v,{[i.key]:i==null?void 0:i.default})}),j==null||j(v)}),e.on("region-updated",(t,o)=>{var s,a,f,v,i,p,S,k,_,T;const $e=o==null?void 0:o.action;M({combined:!1,segment:!1}),$e==="resize"&&((a=(s=n==null?void 0:n.current)==null?void 0:s.cursor)==null||a.setStyle({borderStyle:"solid"})),$e==="drag"&&((v=(f=n==null?void 0:n.current)==null?void 0:f.cursor)==null||v.setStyle({borderColor:"transparent"}));const ie={},le=[],se={},$t=(i=D.current)==null?void 0:i.filter(h=>h.id!==t.id),Ht=(k=(S=(p=n.current)==null?void 0:p.regions)==null?void 0:S.list)!=null?k:{};$t.forEach(h=>{var Ue,Xe;const{element:ae}=(Ue=Ht[h.id])!=null?Ue:{},{start:Zt,end:qt}=h;if(ae){const{x:Ze,width:Kt}=((Xe=ae.getBoundingClientRect)==null?void 0:Xe.call(ae))||{},Vt=Ze+Kt;[Ze,Vt].forEach((ue,Gt)=>{le.includes(ue)||(le.push(ue),se[ue]=Gt===0?Zt:qt)})}});const{x:He,width:Ut}=((T=(_=t.element).getBoundingClientRect)==null?void 0:T.call(_))||{},Xt=He+Ut;le.forEach(h=>{Math.abs(Ye(h,He))<5&&(ie.start=se[h]),Math.abs(Ye(h,Xt))<5&&(ie.end=se[h])}),yt(ie),Ie({id:t.id}),Q(!0)}),e.on("region-update-end",t=>{jt(t)}),e.on("region-contextmenu",(t,o)=>{if(!C){if(o.preventDefault(),o.stopPropagation(),Cr(o)){re(t.id);return}m({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,o,s)=>{if(!C){if(o.preventDefault(),o.stopPropagation(),d.current.combined){Ct(t);return}if(d.current.segment){Pt(t,s);return}m({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",Rt),n.current=e},Dt=q?l.createElement(tr,null):l.createElement(rr,null),Be=e=>e?`${parseFloat((e/N*100).toFixed(4))}%`:"0%",Oe=Be(P),kt=Be(Ce),w=()=>{if(!ye)return n==null?void 0:n.current},Mt=()=>{var e;(e=w())==null||e.skipForward(ot)},It=()=>{var e;(e=w())==null||e.skipBackward(ot)},B=()=>{var e;(e=w())==null||e.playPause(),m({})},Le=e=>{var r;switch(e.keyCode){case X.Right:Mt();break;case X.Left:It();break;case X.Space:e.preventDefault(),B();break;case X.Delete:if(!C){const{id:t}=((r=d.current)==null?void 0:r.selectedRegion)||{};t&&re(t)}break}},Bt=e=>{ne(e)},Ne=Jt.throttle(Bt,50);let oe=!1;const Fe=()=>{oe&&(B(),oe=!1),document.removeEventListener("mousemove",Ne),document.removeEventListener("mouseup",Fe)},Ot=e=>{ne(e),q&&(oe=!0,B()),document.addEventListener("mousemove",Ne),document.addEventListener("mouseup",Fe)},Lt=()=>{ke()};A(()=>(xt(),()=>{var e;(e=n==null?void 0:n.current)==null||e.destroy(),n.current=null,E.unbindAll("setCurrentTimeByPosition"),E.unbindAll("clearRegions"),E.unbindAll("removeRegionById"),E.unbindAll("setSelectedRegion")}),[]);const Nt=e=>{var r,t,o;(r=w())==null||r.playPause(),(t=w())==null||t.setPlaybackRate(e),(o=w())==null||o.playPause()};A(()=>(document.addEventListener("keydown",Le),()=>{document.removeEventListener("keydown",Le)})),A(()=>{m({}),ke()},[L]);const We=e=>{var r,t,o,s;if((n==null?void 0:n.current)&&(R==null?void 0:R.current)){const a=(t=(r=n==null?void 0:n.current)==null?void 0:r.getDuration())!=null?t:0,f=(o=R==null?void 0:R.current)==null?void 0:o.getBoundingClientRect();let i=(e.clientX-f.left)/(((s=R==null?void 0:R.current)==null?void 0:s.clientWidth)||0)*a;return i>a&&(i=a),i}return 0},ne=e=>{var r;const t=We(e);(r=n==null?void 0:n.current)==null||r.skip(t-Se.current),V(t)},Ft=e=>{gt(We(e))},Wt=N?Math.max(N-P,0):0,zt=(c==null?void 0:c.toolName)!==rt.Empty&&(c==null?void 0:c.isEdit)!==!0&&(at==="remark"||C),ze=l.createElement("div",{className:y.audioPlayer},vt&&!st&&l.createElement(ar,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:Lt,backgroundColor:"#ffffffbb"}),l.createElement(wr,{getRegionInstanceById:I,clipping:J}),l.createElement(xr,{container:G.current}),l.createElement(Dr,{segmentTimeTip:wt}),l.createElement("div",{className:y.waveformContainer,ref:G},l.createElement("div",{id:"waveform",style:{width:`${F*100}%`},className:$({[y.waveform]:!0,"bee-audio-combined":d.current.combined,"bee-audio-clip":d.current.clipConfigurable})},it&&l.createElement(sr,{isAudio:!0}),l.createElement("div",{ref:R,className:y.progress,onMouseDown:Ot,onMouseMove:Ft},l.createElement("div",{className:$({[y.radioTooltip]:!0}),style:{left:Oe}},Ve(P)),l.createElement("div",{className:$({[y.radioTooltip]:!0,[y.mouseTooltip]:!0}),style:{left:kt}},Ve(Ce)),l.createElement(Rr,{playPercentage:Oe})),zt&&(fe==null?void 0:fe({currentTime:P,remainingTime:Wt,audioPlayer:w()})))),l.createElement("div",{className:y.controlBar},l.createElement(lr,{type:"link",icon:Dt,onClick:()=>{B()},className:$({[y.playButton]:!0,[y.playButtonDisabled]:ye})}),l.createElement("span",{className:y.time},`${Ge(P,"ss.SSS")} / -${Ge(N-P,"ss.SSS")}`),l.createElement(ur,{playerType:cr.Audio,onChange:e=>{Nt(e)}}),l.createElement(pr,{onChange:e=>{je(e)},zoom:F}),l.createElement(vr,{EventBus:E})));return c?l.createElement(nt.Provider,{value:c},ze,x.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?l.createElement(gr,{el:t,key:r,region:e,edgeAdsorption:Pe,clipping:J,zoom:F,instance:I(r)}):null}),l.createElement(kr,{footer:ft})):ze};export{Nr as AudioPlayer,nt as AudioPlayerContext};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{MathUtils as C,CommonToolUtils as F,uuid as A,AttributeUtils as k}from"@labelbee/lb-annotation";import{jsonParser as P}from"../../../utils/index.js";import{precisionAdd as I,precisionMinus as V,isImageValue as R}from"../../../utils/audio.js";import{message as m}from"antd";import b from"lodash";import g from"react";import _ from"./index.module.scss.js";import{VideoClipToolContextProvider as B}from"./VideoClipToolContext.js";import{EClipStatus as o,ETimeSliceType as T,PER_SLICE_CHANGE as v,SLICE_MIN_TIME as x}from"./constant.js";import{VideoPlayer as j}from"../../videoPlayer/index.js";import M from"./components/videoTimeSlicesOverVideo/index.js";import U from"../../../assets/annotation/video/icon_videoCutting.svg.js";import{decimalReserved as L}from"../../videoPlayer/utils.js";class N extends g.Component{constructor(r){super(r);this.fns=new Map,this.throttledUpdateTime=b.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.emitEvent("updateTextAttribute"),this.emitEvent("changeAttributeSidebar")},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===o.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:l,start:u,type:a}=this.state.result[this.selectedSliceIndex],n=C.withinRange(I(u,t),[0,V(a===T.Time?s:l,v)]);this.updateSelectedSliceTimeProperty(n,"start")}},this.updateSelectedSliceTimeEndByPer=t=>{var e,i;if(this.state.clipStatus===o.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],l=(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0;if(s.type===T.Time){m.info("\u65F6\u95F4\u70B9\u4EC5\u652F\u6301\u8C03\u6574\u5F00\u59CB\u65F6\u95F4");return}const{end:u,start:a}=s,n=C.withinRange(I(u,t),[I(a,v),l]);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:b.cloneDeep(i)}),this.updateSidebar()}},this.keyDownEvents=t=>{if(!F.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(-v);break;case"=":this.updateSelectedSliceTimeStartByPer(v);break;case"[":this.updateSelectedSliceTimeEndByPer(-v);break;case"]":this.updateSelectedSliceTimeEndByPer(v);break}},this.setVideoError=(t,e,i)=>{if(t){const{clipStatus:s}=this.state;s===o.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!==o.Clipping)return;const s=t.findIndex(l=>l.id===e);s>-1&&(t.splice(s,1),this.setState({result:t,selectedID:"",clipStatus:o.Stop}),this.updateSidebar())},this.toggleClipStatus=t=>{var e,i,s;if(this.disabled)return;const{clipStatus:l,selectedAttribute:u}=this.state,a=l!==o.Clipping;let n=a?o.Clipping:o.Stop,{result:d,selectedID:c,textValue:p}=this.state;const h=b.cloneDeep(d),S=t||((e=this.videoPlayer)==null?void 0:e.currentTime),y=(i=this.videoPlayer)==null?void 0:i.duration;if(y===void 0||S===void 0)return;const w=L(S,2);if(a){const f=A();c=f,h.push({start:w,end:null,attribute:u,textAttribute:this.defaultTextAttribute,duration:y,id:f,type:T.Period}),p=this.defaultTextAttribute}else{const f=h.findIndex(E=>E.id===c),D=h[f];D&&(S-D.start<x?(h.splice(f,1),m.info(`\u622A\u53D6\u7247\u6BB5\u4E0D\u80FD\u77ED\u4E8E${x}s`),n=o.Stop,c="",p=""):(h[f].end=L(S,2),(s=this.videoPlayer)==null||s.pause(),m.success(`\u5DF2\u622A\u53D6\u7247\u6BB5${d.length}`)))}this.setState({clipStatus:n,result:h,selectedID:c,textValue:p}),this.updateSidebar()},this.addTime=()=>{var t,e,i,s;if(this.disabled)return;const{result:l,selectedAttribute:u,selectedID:a}=this.state,n=A(),d=b.cloneDeep(l),c=((t=this.videoPlayer)==null?void 0:t.currentTime)||0;d.push({start:c,end:c,attribute:u,textAttribute:this.defaultTextAttribute,id:n,type:T.Time,duration:(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0});const p={result:d,selectedID:n,textValue:this.defaultTextAttribute},h=d.find(S=>S.id===a);this.isClipping&&h?(delete p.selectedID,delete p.textValue,m.success(`\u5DF2\u622A\u53D6\u65F6\u95F4\u70B9${d.length-1}`)):(s=this.videoPlayer)==null||s.pause(),this.setState(p),this.updateSidebar()},this.updateCurrentTime=t=>{this.setState({currentTime:t})},this.contextToCancel=t=>{this.state.clipStatus===o.Stop&&(t.preventDefault(),this.setState({selectedID:""}),this.updateSidebar())},this.onTrackResize=(t,e,i)=>{var s,l;const{result:u}=this.state,a=u.find(n=>n.id===t);if(a){const n=a.duration,d=e==="left",c=d?"start":"end",p=d?-n*i:n*i,h=d?[0,Math.max(((s=a.end)!=null?s:0)-x,0)]:[a.start+x,n],S=C.withinRange(p+((l=a==null?void 0:a[c])!=null?l:0),h);a[c]=S,this.throttledUpdateTime(S)}this.setState({result:[...u]}),this.updateSidebar()},this.renderMediaContent=()=>{var t;const{pageForward:e,pageJump:i,pageBackward:s}=this.props,{result:l,videoError:u,valid:a,currentTime:n}=this.state;return g.createElement("div",{className:_.clipContainer},g.createElement(j,{imgIndex:this.props.imgIndex,imgList:this.props.imgList,pageBackward:s,pageForward:e,pageJump:i,valid:a,setVideoRef:d=>{this.videoPlayer=d},showVideoTrack:!u,onTrackResize:this.onTrackResize,drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer,dataLoaded:this.props.onVideoLoaded,toggleClipStatus:this.toggleClipStatus,addTime:this.addTime,updateCurrentTime:this.updateCurrentTime}),g.createElement(M,{key:(t=this.videoPlayer)==null?void 0:t.currentTime,result:l,currentTime:n,attributeList:this.props.config.attributeList,extraStyle:{top:this.props.drawLayerSlot?40:0}}),this.isClipping&&g.createElement("i",{className:_.clipping,style:{backgroundImage:U}}))},this.onSelectedTimeSlice=t=>{var e;this.isClipping||(this.setState({selectedID:t.id,selectedAttribute:t.attribute,textValue:t.textAttribute,currentTime:t.start}),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(l=>l.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=P(s[i].result)[`step_${this.stepInfo().step}`],a=(u==null?void 0:u.result)||[],n=R(s[i].result||"[]");this.setState({result:a,loading:t,selectedID:"",textValue:"",selectedAttribute:"",clipStatus:o.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(l=>l.id===i);s&&i&&(s.attribute=t),this.setState({selectedAttribute:t,result:[...e]}),this.updateSidebar()},this.textChange=t=>{const{result:e,selectedID:i}=this.state;if(this.setState({textValue:t}),i){const s=e.find(l=>l.id===i);s&&(s.textAttribute=t,this.setState({result:[...e]}),this.updateSidebar())}},this.state={result:[],selectedAttribute:"",textValue:"",clipStatus:o.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===o.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 selectedID(){return this.state.selectedID}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}get config(){var r;return P((r=this.props.stepInfo)==null?void 0:r.config)}get selectedText(){var r,t;return(t=(r=this.state.result)==null?void 0:r[this.selectedSliceIndex])==null?void 0:t.textAttribute}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 g.createElement(B,{value:{videoPlayer:this.videoPlayer,result:t,selectedID:r,attributeList:this.props.config.attributeList,clipStatus:e,selectedAttribute:i,contextToCancel:this.contextToCancel}},this.renderMediaContent())}}export{N as default};
|
|
1
|
+
import{MathUtils as C,CommonToolUtils as F,uuid as A,AttributeUtils as R}from"@labelbee/lb-annotation";import{jsonParser as P}from"../../../utils/index.js";import{precisionAdd as y,precisionMinus as k,isImageValue as V}from"../../../utils/audio.js";import{message as m}from"antd";import b from"lodash";import g from"react";import _ from"./index.module.scss.js";import{VideoClipToolContextProvider as B}from"./VideoClipToolContext.js";import{EClipStatus as d,ETimeSliceType as T,PER_SLICE_CHANGE as v,SLICE_MIN_TIME as x}from"./constant.js";import{VideoPlayer as j}from"../../videoPlayer/index.js";import M from"./components/videoTimeSlicesOverVideo/index.js";import U from"../../../assets/annotation/video/icon_videoCutting.svg.js";import{decimalReserved as L}from"../../videoPlayer/utils.js";class N extends g.Component{constructor(r){super(r);this.fns=new Map,this.throttledUpdateTime=b.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.emitEvent("updateTextAttribute"),this.emitEvent("changeAttributeSidebar")},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===d.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:l,start:u,type:a}=this.state.result[this.selectedSliceIndex],n=C.withinRange(y(u,t),[0,k(a===T.Time?s:l,v)]);this.updateSelectedSliceTimeProperty(n,"start")}},this.updateSelectedSliceTimeEndByPer=t=>{var e,i;if(this.state.clipStatus===d.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],l=(i=(e=this.videoPlayer)==null?void 0:e.duration)!=null?i:0;if(s.type===T.Time){m.info("\u65F6\u95F4\u70B9\u4EC5\u652F\u6301\u8C03\u6574\u5F00\u59CB\u65F6\u95F4");return}const{end:u,start:a}=s,n=C.withinRange(y(u,t),[y(a,v),l]);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:b.cloneDeep(i)}),this.updateSidebar()}},this.keyDownEvents=t=>{if(!F.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(-v);break;case"=":this.updateSelectedSliceTimeStartByPer(v);break;case"[":this.updateSelectedSliceTimeEndByPer(-v);break;case"]":this.updateSelectedSliceTimeEndByPer(v);break}},this.setVideoError=(t,e,i)=>{if(t){const{clipStatus:s}=this.state;s===d.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!==d.Clipping)return;const s=t.findIndex(l=>l.id===e);s>-1&&(t.splice(s,1),this.setState({result:t,selectedID:"",clipStatus:d.Stop}),this.updateSidebar())},this.toggleClipStatus=t=>{var e,i;if(typeof((e=this.props)==null?void 0:e.annotationBefore)=="function"){(i=this.props)==null||i.annotationBefore(()=>this.setClipResult(t));return}this.setClipResult(t)},this.setClipResult=t=>{var e,i,s;if(this.disabled)return;const{clipStatus:l,selectedAttribute:u}=this.state,a=l!==d.Clipping;let n=a?d.Clipping:d.Stop,{result:o,selectedID:c,textValue:h}=this.state;const p=b.cloneDeep(o),S=t||((e=this.videoPlayer)==null?void 0:e.currentTime),I=(i=this.videoPlayer)==null?void 0:i.duration;if(I===void 0||S===void 0)return;const w=L(S,2);if(a){const f=A();c=f,p.push({start:w,end:null,attribute:u,textAttribute:this.defaultTextAttribute,duration:I,id:f,type:T.Period}),h=this.defaultTextAttribute}else{const f=p.findIndex(E=>E.id===c),D=p[f];D&&(S-D.start<x?(p.splice(f,1),m.info(`\u622A\u53D6\u7247\u6BB5\u4E0D\u80FD\u77ED\u4E8E${x}s`),n=d.Stop,c="",h=""):(p[f].end=L(S,2),(s=this.videoPlayer)==null||s.pause(),m.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:l,selectedAttribute:u,selectedID:a}=this.state,n=A(),o=b.cloneDeep(l),c=((t=this.videoPlayer)==null?void 0:t.currentTime)||0;o.push({start:c,end:c,attribute:u,textAttribute:this.defaultTextAttribute,id:n,type:T.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===a);this.isClipping&&p?(delete h.selectedID,delete h.textValue,m.success(`\u5DF2\u622A\u53D6\u65F6\u95F4\u70B9${o.length-1}`)):(s=this.videoPlayer)==null||s.pause(),this.setState(h),this.updateSidebar()},this.updateCurrentTime=t=>{this.setState({currentTime:t})},this.contextToCancel=t=>{this.state.clipStatus===d.Stop&&(t.preventDefault(),this.setState({selectedID:""}),this.updateSidebar())},this.onTrackResize=(t,e,i)=>{var s,l;const{result:u}=this.state,a=u.find(n=>n.id===t);if(a){const n=a.duration,o=e==="left",c=o?"start":"end",h=o?-n*i:n*i,p=o?[0,Math.max(((s=a.end)!=null?s:0)-x,0)]:[a.start+x,n],S=C.withinRange(h+((l=a==null?void 0:a[c])!=null?l:0),p);a[c]=S,this.throttledUpdateTime(S)}this.setState({result:[...u]}),this.updateSidebar()},this.renderMediaContent=()=>{var t;const{pageForward:e,pageJump:i,pageBackward:s}=this.props,{result:l,videoError:u,valid:a,currentTime:n}=this.state;return g.createElement("div",{className:_.clipContainer},g.createElement(j,{imgIndex:this.props.imgIndex,imgList:this.props.imgList,pageBackward:s,pageForward:e,pageJump:i,valid:a,setVideoRef:o=>{this.videoPlayer=o},showVideoTrack:!u,onTrackResize:this.onTrackResize,drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer,dataLoaded:this.props.onVideoLoaded,toggleClipStatus:this.toggleClipStatus,addTime:this.addTime,updateCurrentTime:this.updateCurrentTime}),g.createElement(M,{key:(t=this.videoPlayer)==null?void 0:t.currentTime,result:l,currentTime:n,attributeList:this.props.config.attributeList,extraStyle:{top:this.props.drawLayerSlot?40:0}}),this.isClipping&&g.createElement("i",{className:_.clipping,style:{backgroundImage:U}}))},this.onSelectedTimeSlice=t=>{var e;this.isClipping||(this.setState({selectedID:t.id,selectedAttribute:t.attribute,textValue:t.textAttribute,currentTime:t.start}),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(l=>l.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=P(s[i].result)[`step_${this.stepInfo().step}`],a=(u==null?void 0:u.result)||[],n=V(s[i].result||"[]");this.setState({result:a,loading:t,selectedID:"",textValue:"",selectedAttribute:"",clipStatus:d.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(l=>l.id===i);s&&i&&(s.attribute=t),this.setState({selectedAttribute:t,result:[...e]}),this.updateSidebar()},this.textChange=t=>{const{result:e,selectedID:i}=this.state;if(this.setState({textValue:t}),i){const s=e.find(l=>l.id===i);s&&(s.textAttribute=t,this.setState({result:[...e]}),this.updateSidebar())}},this.state={result:[],selectedAttribute:"",textValue:"",clipStatus:d.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===d.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 R.getTextAttribute(this.state.result,this.props.config.textCheckType)}get defaultAttribute(){return this.state.selectedAttribute}get selectedID(){return this.state.selectedID}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}get config(){var r;return P((r=this.props.stepInfo)==null?void 0:r.config)}get selectedText(){var r,t;return(t=(r=this.state.result)==null?void 0:r[this.selectedSliceIndex])==null?void 0:t.textAttribute}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 g.createElement(B,{value:{videoPlayer:this.videoPlayer,result:t,selectedID:r,attributeList:this.props.config.attributeList,clipStatus:e,selectedAttribute:i,contextToCancel:this.contextToCancel}},this.renderMediaContent())}}export{N as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import h from"react";import{TagUtils as
|
|
1
|
+
import h from"react";import{TagUtils as m,CommonToolUtils as f,uuid as v}from"@labelbee/lb-annotation";import{jsonParser as g}from"../../../utils/index.js";import{VideoPlayer as y}from"../../videoPlayer/index.js";import{VideoTagLayer as L}from"../../videoPlayer/VideoTagLayer.js";import p,{cloneDeep as R}from"lodash";import{getKeyCodeNumber as b}from"../../videoPlayer/utils.js";class S extends h.Component{constructor(e){super(e);this.fns={},this.labelSelectedList=[],this.clearResult=(t=!0,s)=>{const n=s?this.state.tagResult.map(i=>((i==null?void 0:i.result[s])&&delete i.result[s],i)):[];this.setState({tagResult:n},()=>this.emitEvent("render"))},this.exportData=()=>{var t,s;const n=(s=(t=this.videoPlayer)==null?void 0:t.duration)!=null?s:0;return[this.state.tagResult,{valid:this.state.valid,duration:n}]},this.emitEvent=t=>{this.fns[t]&&this.fns[t]()},this.combineResult=(t,s={})=>{var n,i;const l=R(s),{isMulti:a}=t,{key:r,value:d}=t.value;if(a){let o=(i=(n=l[r])==null?void 0:n.split(";"))!=null?i:[];o.includes(d)?o=o.filter(c=>c!==d):o.push(d);const u=new Set(o);return l[r]=Array.from(u).join(";"),p.pickBy(l,c=>c)}return l[r]=l[r]===d?void 0:d,p.pickBy(l,o=>o)},this.setResult=t=>{this.setState({tagResult:t}),this.fns.render&&this.fns.render()},this.setLabel=(t,s)=>{this.setLabelBySelectedList(t,s)},this.keydown=t=>{var s;const n=b(t.keyCode);if(n){const i=n-1;if(((s=this.config.inputList)==null?void 0:s.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:s,imgIndex:n,stepInfo:i}=t;if(!s[n])return;const l=g(s[n].result),a=l[`step_${i.step}`],r=this.getInitResultList();this.setState({tagResult:a?a==null?void 0:a.result:r,valid:(l==null?void 0:l.valid)===void 0?!0:l.valid},()=>this.emitEvent("render"))},this.getInitResultList=()=>{var t;return m.getDefaultTagResult((t=this.config.inputList)!=null?t:[],[])},this.state={tagResult:[],labelSelectedList:[],valid:!0}}get config(){var e;return g((e=this.props.stepInfo)==null?void 0:e.config)}get history(){return{initRecord:()=>{},pushHistory:()=>{}}}get currentTagResult(){var e;return(e=this.state.tagResult[0])!=null?e:{}}get valid(){return this.state.valid}singleOn(e,t){this.fns[e]=t}on(e,t){this.singleOn(e,t)}unbindAll(e){delete this.fns[e]}getTagResultByCode(e,t){var s,n,i;try{const l=(n=(s=this.config)==null?void 0:s.inputList)!=null?n:[],a=(l==null?void 0:l.length)>1,r=t!==void 0?e:0,d=t!==void 0?t:e,o=a?l[r]:l[0],u=((i=o.subSelected)!=null?i:[])[d];if(o&&u)return{value:{key:o.value,value:u.value},isMulti:o.isMulti}}catch(l){return}}setLabelBySelectedList(e,t){var s,n,i,l,a,r;const d=this.getTagResultByCode(e,t);if(d){const o=this.combineResult(d,(n=(s=this.state.tagResult[0])==null?void 0:s.result)!=null?n:{}),u=[{sourceID:f.getSourceID(),id:(l=(i=this.currentTagResult)==null?void 0:i.id)!=null?l:v(8,62),result:o}];if(typeof((a=this.props)==null?void 0:a.annotationBefore)=="function"){(r=this.props)==null||r.annotationBefore(()=>this.setState({tagResult:u},()=>this.emitEvent("render")));return}this.setState({tagResult:u},()=>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(e){return e.imgIndex!==this.props.imgIndex&&this.setResultFromImgList(e),!0}render(){var e;const{imgIndex:t,imgList:s,pageForward:n,pageJump:i,pageBackward:l}=this.props,{tagResult:a,valid:r}=this.state;return h.createElement("div",{style:{height:"100%",width:"100%",position:"relative",display:"flex",flexDirection:"column"}},h.createElement(y,{imgIndex:t,imgList:s,pageBackward:l,pageForward:n,pageJump:i,valid:r,setVideoRef:d=>{this.videoPlayer=d},dataLoaded:this.props.onVideoLoaded,drawLayerSlot:this.props.drawLayerSlot,footer:this.props.footer}),h.createElement(L,{result:a,inputList:(e=this.config)==null?void 0:e.inputList,hasPromptLayer:!!this.props.drawLayerSlot}))}}export{S as TagToolInstanceAdaptor};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ViewportProvider as b}from"../../components/customResizeHook/index.js";import{prefix as C}from"../../constant/index.js";import{Spin as A}from"antd";import{Layout as y}from"antd/es";import t,{useState as O}from"react";import V from"./annotationOperation/index.js";import M from"./annotationTips/index.js";import k from"./sidebar/index.js";import h from"./toolFooter/index.js";import F from"./toolHeader/index.js";import{getStepConfig as E}from"../../store/annotation/reducer.js";import I from"../../components/videoAnnotate/index.js";import{connect as
|
|
1
|
+
import{ViewportProvider as b}from"../../components/customResizeHook/index.js";import{prefix as C}from"../../constant/index.js";import{Spin as A}from"antd";import{Layout as y}from"antd/es";import t,{useState as O}from"react";import V from"./annotationOperation/index.js";import M from"./annotationTips/index.js";import k from"./sidebar/index.js";import h from"./toolFooter/index.js";import F from"./toolHeader/index.js";import{getStepConfig as E}from"../../store/annotation/reducer.js";import I from"../../components/videoAnnotate/index.js";import{connect as B}from"react-redux";import g from"../../utils/ToolUtils.js";import $ from"../../components/pointCloudView/index.js";import{getClassName as H}from"../../utils/dom.js";import{classnames as R}from"../../utils/index.js";import W from"../../components/predictTracking/previewResult/index.js";import{LabelBeeContext as D}from"../../store/ctx.js";import{EToolName as c}from"../../data/enums/ToolType.js";import U from"./LLMLayout/index.js";import z from"./NLPLayout/index.js";import q from"../../components/audioAnnotate/index.js";import{LoadingOutlined as G}from"@ant-design/icons";import{useTranslation as J}from"react-i18next";import{EPointCloudName as K}from"@labelbee/lb-annotation";var Q=Object.defineProperty,T=Object.getOwnPropertySymbols,X=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable,P=(e,o,n)=>o in e?Q(e,o,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[o]=n,i=(e,o)=>{for(var n in o||(o={}))X.call(o,n)&&P(e,n,o[n]);if(T)for(var n of T(o))Y.call(o,n)&&P(e,n,o[n]);return e};const{Sider:Z,Content:p}=y,u=`${C}-layout`,ee=e=>{var o;return t.createElement(t.Fragment,null,e.showTips===!0&&t.createElement(M,{path:e.path,tips:e.tips}),t.createElement(V,i({},e)),t.createElement(h,{style:(o=e.style)==null?void 0:o.footer,mode:e.mode,footer:e==null?void 0:e.footer}))},te=e=>{var o;return t.createElement(t.Fragment,null,t.createElement($,{drawLayerSlot:e.drawLayerSlot,checkMode:e.checkMode,intelligentFit:e.intelligentFit,measureVisible:e.measureVisible}),t.createElement(h,{style:(o=e.style)==null?void 0:o.footer,mode:e.mode,footer:e==null?void 0:e.footer}))},oe=e=>{var o;const{stepList:n,step:r}=e,a=(o=E(n,r))==null?void 0:o.tool,m=g.isPointCloudTool(a),l=g.isVideoTool(a);return m?t.createElement(te,i({},e)):l?t.createElement(I,{drawLayerSlot:e.drawLayerSlot,footer:e.footer,annotationBefore:e==null?void 0:e.annotationBefore}):t.createElement(ee,i({},e))},f=e=>{var o,n,r;const{t:a}=J(),{stepList:m,step:l}=e,d=(o=E(m,l))==null?void 0:o.tool,s=![c.LLM,c.NLP].includes(d),v=![c.LLM,c.NLP].includes(d),L=[K.PointCloud].includes(d);return t.createElement(b,null,t.createElement(A,{spinning:e.loading,indicator:t.createElement(G,null),tip:t.createElement("span",{style:{marginTop:200}},a("LoadingTips")),delay:500},t.createElement(y,{className:R([u,e.className]),style:(n=e.style)==null?void 0:n.layout},t.createElement("header",{className:`${u}__header`,style:(r=e.style)==null?void 0:r.header},t.createElement(F,{header:e==null?void 0:e.header,headerName:e.headerName,goBack:e.goBack,exportData:e.exportData,hasLangNode:s,hasHeaderOption:v,hasPredictTrackingIcon:L})),e.children)))},ne=e=>{var o,n,r,a,m,l,d;const[s,v]=O(void 0),L=(n=(o=e.style)==null?void 0:o.sider)==null?void 0:n.width,{stepList:x,step:N}=e,_=(r=E(x,N))==null?void 0:r.tool,j=c.LLM===_,w=c.NLP===_,S=g.isAudioTool(_);return j?t.createElement(f,i({},e),t.createElement(U,i({},e))):w?t.createElement(f,i({},e),t.createElement(z,i({},e))):S?t.createElement(f,i({},e),t.createElement(q,i({},e))):t.createElement(f,i({},e),t.createElement(y,{className:H("layout","container")},e==null?void 0:e.leftSider,t.createElement(p,{className:`${u}__content`},t.createElement(oe,i({},e)),t.createElement(W,null)),t.createElement(Z,{className:`${u}__side`,width:(a=s!=null?s:L)!=null?a:240,style:(m=e.style)==null?void 0:m.sider},t.createElement(k,{sider:e==null?void 0:e.sider,enableColorPicker:e==null?void 0:e.enableColorPicker,setSiderWidth:v,propsSiderWidth:(d=(l=e.style)==null?void 0:l.sider)==null?void 0:d.width}))))},le=({annotation:e})=>{var o,n,r;const{imgList:a,loading:m}=e,l=(o=a[e.imgIndex])!=null?o:{};return{path:(r=(n=l==null?void 0:l.path)!=null?n:l==null?void 0:l.url)!=null?r:"",loading:m}};var ie=B(le,null,null,{context:D})(ne);export{ie as default};
|
|
@@ -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
|
|
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 a,{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:n})=>a.createElement(P,{rotate:n?90:0}),Y=({toolInstance:n,imgIndex:N})=>{const[s,g]=v([]),i=U(null),[,j]=v(0),[w,f]=v(-1),{t:b}=V();p(()=>{var r,l;n&&(g((l=(r=n.config)==null?void 0:r.inputList)==null?void 0:l.map(e=>e.value)),n.singleOn("render",()=>{j(e=>e+1)}))},[n]),p(()=>{var r;if(n&&(n.singleOn("expend",O),((r=n==null?void 0:n.labelSelectedList)==null?void 0:r.length)===1)){let l=0;for(let e=0;e<n.labelSelectedList[0];e++)l+=46,o[e]&&s[e]!==""&&o[e].subSelected.forEach(t=>{l+=40});i.current&&(i.current.children[0].scrollTop=l)}}),p(()=>{i.current&&(i.current.children[0].scrollTop=0)},[N]);const O=()=>{var r;const l=n.labelSelectedList[0],e=(r=o.filter((t,m)=>m===l)[0])==null?void 0:r.value;h(l,e,!0)},h=q((r,l,e)=>{const t=F(s);t[r]===""||e===!0?t[r]=l:t[r]="",g(t)},[s]);if(!n)return null;const{labelSelectedList:u,config:{inputList:o},currentTagResult:c,setLabel:E}=n,A=r=>u.length>0&&u[0]===r?a.createElement("span",{className:"keyDownIconActive"},r+1):a.createElement("span",{className:"keyDownIcon"},r+1),y=(r,l=-1)=>r?r.map((e,t)=>{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 a.createElement(T,{bordered:!1,expandIcon:$,key:`collapse_${t}_${l+1}`,onChange:()=>h(t,e.value),activeKey:[s[t]]},a.createElement(X,{header:a.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",flex:1}},a.createElement("span",null,e.key,a.createElement(H,{placement:"bottom",title:b("ClearThisOption")},a.createElement("img",{style:{marginLeft:5,cursor:"pointer"},onClick:D=>{D.stopPropagation(),n.clearResult(!0,e.value)},src:w===t||R?G:z,onMouseEnter:()=>{f(t)},onMouseLeave:()=>{f(-1)}})),R&&s[t]===""&&a.createElement(x,{color:"#87d068"})),(o==null?void 0:o.length)>1&&A(t)),key:e.value},a.createElement("div",{className:"level",style:{backgroundColor:u.length>0&&u[0]===t?"rgba(158, 158, 158, 0.18)":""}},y(e.subSelected,t))))}const d=(o==null?void 0:o[l])?o==null?void 0:o[l].value:0,S=((k=(L=(_=c==null?void 0:c.result)==null?void 0:_[d])==null?void 0:L.split(";"))==null?void 0:k.indexOf(e.value))>-1?e.value:"";return((C=o==null?void 0:o[l])==null?void 0:C.isMulti)===!0?a.createElement("div",{className:"singleBar",key:`${d}_${l}_${t}`},a.createElement(M,{attributeChanged:()=>E(l,t),selectedAttribute:[S],list:[{value:e.value,label:e.key}],num:t+1})):a.createElement("div",{className:"singleBar",key:`${d}_${l}_${t}`},a.createElement(K,{forbidColor:!0,attributeChanged:()=>E(l,t),selectedAttribute:S,list:[{value:e.value,label:e.key}],num:t+1}))}):null,B=window.innerHeight-61-80;return a.createElement("div",{className:"tagOperationMenu",ref:i},(o==null?void 0:o.length)===0?a.createElement("div",{style:{padding:20,textAlign:"center"}},b("NoConfiguration")):a.createElement("div",{className:"main",style:{height:B}},y(o)))};function Z(n){return{toolInstance:n.annotation.toolInstance,imgIndex:n.annotation.imgIndex}}var I=Q(Z,null,null,{context:W})(Y);export{I as default,$ as expandIconFuc};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import o,{useState as
|
|
1
|
+
import o,{useState as d,useEffect as h,useRef as I}from"react";import{connect as M}from"react-redux";import{cloneDeep as z}from"lodash";import{classnames as S}from"../../../../utils/index.js";import{Switch as W,Input as J}from"antd/es";import{cKeyCode as G,cTool as H}from"@labelbee/lb-annotation";import{PageForward as Q}from"../../../../store/annotation/actionCreators.js";import{ConfigUtils as X}from"../../../../utils/ConfigUtils.js";import{useTranslation as A}from"react-i18next";import{LabelBeeContext as Y}from"../../../../store/ctx.js";var Z=Object.defineProperty,K=Object.getOwnPropertySymbols,ee=Object.prototype.hasOwnProperty,te=Object.prototype.propertyIsEnumerable,$=(e,t,r)=>t in e?Z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ne=(e,t)=>{for(var r in t||(t={}))ee.call(t,r)&&$(e,r,t[r]);if(K)for(var r of K(t))te.call(t,r)&&$(e,r,t[r]);return e};const j=G.default,{EVideoToolName:oe}=H,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(J.TextArea,ne({key:`${t.id}-${t.defaultValue}`,bordered:!1,rows:6,onKeyDown:V,onKeyUp:V},t)),o.createElement("div",{className:S({textAreaLength:!0})},r))},q=e=>{var t;const r=I(null),[E,f]=d(!1),[N,P]=d(!1),{t:w}=A(),{disabled:s,config:i,result:m,updateText:p,index:u,switchToNextTextarea:y,hasMultiple:L,onNext:b}=e,{maxLength:g}=i,c=m?m[i.key]:"",[_,C]=d((t=c==null?void 0:c.length)!=null?t:0);h(()=>{var n;C((n=c==null?void 0:c.length)!=null?n:0)},[c]);const v=(n,T)=>{p&&(p(n,i.key,T),i.required&&P(!n))},x=L&&y,k={id:`textInput-${u}`,ref:r,disabled:s,defaultValue:c,maxLength:g,autoSize:{minRows:2,maxRows:6},onChange:n=>{const T=n.target.value;C(n.target.value.length),v(T,!1)},onFocus:()=>{f(!0)},onBlur:n=>{f(!1),v(n.target.value,!0),i.required&&P(!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&&x&&(n.preventDefault(),n.nativeEvent.stopImmediatePropagation(),y(u)),n.nativeEvent.stopPropagation()}},F=o.createElement("div",{className:"textAreaFooter"},o.createElement("div",{className:"hotkeyTip"},x&&o.createElement("span",null,`[${w("Switch")}]Tab`),o.createElement("span",null,`[${w("TurnPage")}]Ctrl+Enter`)),o.createElement("div",{className:"wordCount"},o.createElement("span",{className:_>=g?"warning":""},_),"/",o.createElement("span",null,g)));return h(()=>{s&&f(!1)},[s]),o.createElement("div",{className:"textField"},o.createElement("div",{className:"label"},o.createElement("span",{className:S({required:i.required})},i.label),o.createElement("i",{className:S({clearText:!0,disabled:s}),onClick:()=>{s||v("",!0)}})),o.createElement("div",{className:S({disabled:s,"textarea-outline":!0,"ant-input-focused":E,textareaContainer:!0,focus:E,invalid:N})},o.createElement(D,{footer:F,textareaProps:k})))},ae=({toolInstance:e,imgIndex:t,dispatch:r,triggerEventAfterIndexChanged:E,step:f,stepList:N,basicResultList:P,disabled:w})=>{var s,i,m,p;const[u,y]=d([]),[L,b]=d(0),[g,c]=d(!0),[,_]=d(0),{t:C}=A(),v=a=>{const l=(a+1)%u.length;x(l)},x=a=>{setTimeout(()=>{const l=document.getElementById(`textInput-${a}`);l&&(b(a),l.focus(),l.select(),l.scrollIntoView({behavior:"smooth",block:"center"}))})};h(()=>{e&&e.singleOn("valueUpdated",()=>{_(a=>a+1)})},[e]),h(()=>{var a;e&&y(z((a=e==null?void 0:e.config)==null?void 0:a.configList))},[JSON.stringify((s=e==null?void 0:e.config)==null?void 0:s.configList)]);const k=(p=(m=(i=e==null?void 0:e.textList)==null?void 0:i[0])==null?void 0:m.value)!=null?p:{},F=(a,l,U=!1)=>{var O,R;(R=e==null?void 0:e.updateTextValue)==null||R.call(e,l,a,U,(O=e==null?void 0:e.textList)==null?void 0:O[0])};h(()=>{t>-1&&E&&x(0)},[t]);const n=()=>{r(Q(!0))},T=a=>{c(a),e==null||e.toggleShowText(a)},B=X.getStepConfig(N,f).tool===oe.VideoTextTool;return e&&o.createElement("div",{className:"textToolOperationMenu"},u==null?void 0:u.map((a,l)=>o.createElement(q,{config:a,key:a.key,index:l,result:k,updateText:F,switchToNextTextarea:v,hasMultiple:u.length>1,focus:L===l,onNext:n,disabled:w})),B&&o.createElement("div",{className:"textToolSwitchItem"},C("toggleShowText"),o.createElement(W,{style:{alignSelf:"center"},checked:g,onChange:a=>{T(a)}})))};function re(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 le=M(re,null,null,{context:Y})(ae);export{q as SingleTextInput,D as TextareaWithFooter,le as default};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@labelbee/lb-components",
|
|
3
|
-
"version": "1.23.0-alpha.
|
|
3
|
+
"version": "1.23.0-alpha.22",
|
|
4
4
|
"description": "Provide a complete library of annotation components",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"es": "./es/index.js",
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@ant-design/icons": "^4.6.2",
|
|
46
|
-
"@labelbee/lb-annotation": "1.27.0-alpha.
|
|
47
|
-
"@labelbee/lb-utils": "1.19.0-alpha.
|
|
46
|
+
"@labelbee/lb-annotation": "1.27.0-alpha.11",
|
|
47
|
+
"@labelbee/lb-utils": "1.19.0-alpha.6",
|
|
48
48
|
"@labelbee/wavesurfer": "1.0.0",
|
|
49
49
|
"@types/react-dom": "^18.2.7",
|
|
50
50
|
"@types/react-transition-group": "^4.4.9",
|