@labelbee/lb-components 1.23.0-alpha.95 → 1.23.0-alpha.97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- "use strict";var React=require("react"),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"),audio=require("../../utils/audio.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}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=(t,l,a)=>l in t?__defProp(t,l,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[l]=a,__spreadValues=(t,l)=>{for(var a in l||(l={}))__hasOwnProp.call(l,a)&&__defNormalProp(t,a,l[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(l))__propIsEnum.call(l,a)&&__defNormalProp(t,a,l[a]);return t},__spreadProps=(t,l)=>__defProps(t,__getOwnPropDescs(l));const{EAudioToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,{Sider,Content}=es.Layout,layoutCls=`${index$5.prefix}-layout`,ToggleAudioOption=({setSideTab:t,sideTab:l})=>{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:d,selectedSvg:S,commonSvg:_}=v;return React__default.default.createElement("div",{key:E,className:index_module.option},React__default.default.createElement("img",{className:index_module.icon,src:l===d?S:_,onClick:()=>{l!==d&&t(d)}}))}))},AudioTextToolTextarea=({result:t,inputDisabled:l,updateText:a,configList:v,autofocus:E,preContext:d,isCheck:S,clipAttributeConfigurable:_,clipTextConfigurable:q,textConfigurable:m,updateRegion:y,clipAttributeList:c,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:S,result:t==null?void 0:t.value,textInputDisabled:l,textID:(t==null?void 0:t.id)||0,updateText:a,configList:v,autofocus:!l&&E,preContext:d,regions:t==null?void 0:t.regions,clipAttributeConfigurable:_,clipTextConfigurable:q,textConfigurable:m,updateRegion:y,clipAttributeList:c,clipTextList:g}))),AudioSideBar=t=>{var l,a;const{sider:v,config:E,result:d,updateTagResult:S,updateRegion:_,isEdit:q,tagConfigurable:m,clipConfigurable:y}=t;let c=(E==null?void 0:E.inputList)||[],g=(l=d==null?void 0:d.tag)!=null?l:{},r=(a=d==null?void 0:d.regions)!=null?a:[];const[$,j]=React.useState([]),[C,p]=React.useState("tag");React.useEffect(()=>{if(!m&&y){p("clip");return}p("tag")},[m,y]),React.useEffect(()=>(window.addEventListener("keydown",w),()=>{window.removeEventListener("keydown",w)}));const w=n=>{if(m&&y)switch(n.keyCode){case EKeyCode.L:p("tag");break;case EKeyCode.X:p("clip");break}if(C==="tag"){if(!lbAnnotation.CommonToolUtils.hotkeyFilter(n))return;lbAnnotation.CommonToolUtils.isMoveKey(n==null?void 0:n.keyCode)&&n.preventDefault();let i=n.keyCode;if(i&&(i<=57&&i>=49||i<=105&&i>=97)){i>57?i=i-97:i=i-49;const L=$.slice();c.length===1?(T(0,i),j([0,i]),setTimeout(()=>{j([])},500)):L.length===1?(T(L[0],i),j([L[0],i]),setTimeout(()=>{j([])},500)):j([i])}}},T=(n,i)=>{if(n<c.length&&c[n].subSelected&&i<c[n].subSelected.length){const L=c[n].value,f=c[n].isMulti;let u=c[n].subSelected[i].value,D=0;const N=g;for(const b in g)if(b===c[n].value){if(D++,f===!0){const A=N[b].split(";").filter(U=>U!==""),M=A.indexOf(u);M===-1?A.push(u):A.splice(M,1),u=A.join(";")}u===""?delete N[b]:N[b]=u}D===0&&Object.assign(g,{[L]:u}),S(g)}},P=n=>{delete g[n],S(g)},I=m&&y&&React__default.default.createElement(ToggleAudioOption,{setSideTab:p,sideTab:C}),h=C==="tag"&&React__default.default.createElement(index$8.default,{labelInfoSet:m?c:[],labelSelectedList:$,setLabel:T,tagResult:g,clearResult:P,isEdit:q,withPanelTab:!1}),O=C==="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:I,labelSidebar:h,clipSidebar:O})):v:React__default.default.createElement("div",{className:`${index$7.sidebarCls}`},React__default.default.createElement("div",{className:`${index$7.sidebarCls}__content`},I,h,O))},AudioAnnotate=t=>{var l,a,v,E,d,S,_,q,m;const y=(a=(l=t.style)==null?void 0:l.sider)==null?void 0:a.width,{step:c,stepList:g,audioContext:r,sider:$,drawLayerSlot:j,imgList:C,imgIndex:p,currentData:w,config:T,stepInfo:P,checkMode:I}=t,h=lbAnnotation.CommonToolUtils.getCurrentStepToolAndConfig(c,g),O=index.jsonParser(w.result),{toolInstanceRef:n}=annotation.useCustomToolInstance({basicInfo:O}),[i,L]=React.useState(!0),[f,u]=React.useState(null),[D,N]=React.useState(0),[b,A]=React.useState(!0);React.useEffect(()=>{L(!0)},[p]),React.useEffect(()=>{i===!1&&ae()},[i]),React.useEffect(()=>{U()},[]),React.useEffect(()=>{n.current.exportData=()=>[[f],{duration:D,valid:b}],n.current.setResult=fe,n.current.clearResult=ve,n.current.currentPageResult=f==null?void 0:f.regions,n.current.emit("updatePageNumber"),n.current.setSelectedRegion=M,n.current.setValid=ge},[f,b]);const M=e=>{lbAnnotation.EventBus.emit("setSelectedRegion",{id:e,isLoopStatus:!0,playImmediately:!0})},U=()=>{n.current.emit=e=>{const o=n.current.fns.get(e);o&&o.forEach(s=>{s&&(s==null||s())})},n.current.fns=new Map,n.current.singleOn=(e,o)=>{n.current.fns.set(e,[o])},n.current.on=(e,o)=>{n.current.singleOn(e,o)},n.current.unbindAll=e=>{n.current.fns.delete(e)}},B=React.useMemo(()=>{const e=O[`step_${P==null?void 0:P.step}`];return(e==null?void 0:e.result)||[]},[T,O,P]),{tagConfigurable:W,textConfigurable:K=!0,clipConfigurable:X=!1,clipAttributeConfigurable:G=!1,clipAttributeList:z=[],clipTextConfigurable:V=!1,subAttributeList:Y=[],secondaryAttributeConfigurable:Z=!1,inputList:ee=[],configList:te=[],clipTextList:H=index$1.DEFAULT_CLIP_TEXT_CONFIG_ITEM}=React.useMemo(()=>{if(h)return lbAnnotation.CommonToolUtils.jsonParser(h==null?void 0:h.config)},[h]),ne={clipConfigurable:X,clipAttributeConfigurable:G,clipAttributeList:z,clipTextConfigurable:V,subAttributeList:Y,secondaryAttributeConfigurable:Z,clipTextList:H},le=(E=(v=lbAnnotation.CommonToolUtils.jsonParser(w.result))==null?void 0:v.duration)!=null?E:0,oe=b?le:0,ie=!b||i||![K,V].includes(!0)||I;let J={};if(p!==-1&&(C==null?void 0:C.length)){const e=(d=C[p])==null?void 0:d.preResult,o=(r==null?void 0:r.isEdit)?(S=r==null?void 0:r.stepConfig)==null?void 0:S.loadPreStep:P==null?void 0:P.loadPreStep;if(e&&o){const s=lbAnnotation.CommonToolUtils.jsonParser(e),x=(q=(_=s==null?void 0:s.config)==null?void 0:_.context)!=null?q:{};Object.keys(x).forEach(R=>{R&&x[R]&&(J[R]={visible:!0,content:x[R],type:R})})}}const ae=()=>{(B==null?void 0:B.length)>0?u(B[0]):u({id:lbAnnotation.uuid(),sourceID:"",value:Q(),tag:re(),regions:[]});const e=audio.isImageValue(C[p].result||"[]");A(e)},Q=(e=!0)=>{const o={};let s=T.configList||[];return s.length>0&&s.forEach(x=>{o[x.key]=e&&x.default||""}),o},re=()=>lbAnnotation.TagUtils.getDefaultResultByConfig(T.inputList||[]),se=({duration:e,hasError:o})=>{(r==null?void 0:r.onLoaded)&&(r==null||r.onLoaded()),L(!1),N(e)},ue=e=>{u(o=>__spreadProps(__spreadValues({},o),{regions:((o==null?void 0:o.regions)||[]).filter(s=>s.id!==e)}))},F=e=>{u(o=>{var s;const x=(s=o==null?void 0:o.regions)!=null?s:[],{id:R}=e;return x.find(k=>k.id===R)?__spreadProps(__spreadValues({},o),{regions:x.map(k=>R===k.id?__spreadValues(__spreadValues({},k),e):k)}):__spreadProps(__spreadValues({},o),{regions:[...x,e]})})},de=(e,o)=>{u(s=>__spreadProps(__spreadValues({},s),{value:__spreadProps(__spreadValues({},s.value),{[o]:e})}))},ce=e=>{u(o=>__spreadProps(__spreadValues({},o),{tag:e}))},fe=e=>{u(e)},ve=()=>{u(e=>__spreadProps(__spreadValues({},e),{value:Q(),tag:{},regions:[]})),lbAnnotation.EventBus.emit("clearRegions")},ge=e=>{A(e)};return React__default.default.createElement(index$1.AudioClipProvider,null,React__default.default.createElement(antd.Spin,{spinning:i,wrapperClassName:"audio-tool-spinner"},React__default.default.createElement(es.Layout,{className:dom.getClassName("layout","container"),style:{height:"100%"}},t==null?void 0:t.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:f==null?void 0:f.tag,labelInfoSet:ee,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:oe,toolName:EAudioToolName.AudioTextTool,imgIndex:p},drawLayerSlot:j,fileData:w,onLoaded:se,invalid:!b,updateRegion:F,removeRegion:ue,regions:f==null?void 0:f.regions,activeToolPanel:r==null?void 0:r.activeToolPanel,footer:t.footer,isCheck:I},ne))),(K||V)&&React__default.default.createElement(AudioTextToolTextarea,{preContext:J,result:f,inputDisabled:ie,updateText:de,updateRegion:F,configList:te,autofocus:!1,textConfigurable:K,clipTextConfigurable:V,clipAttributeList:z,clipAttributeConfigurable:G,clipTextList:H,isCheck:I}))),React__default.default.createElement(Sider,{className:`${layoutCls}__side`,width:y!=null?y:240,style:(m=t.style)==null?void 0:m.sider},React__default.default.createElement(AudioSideBar,{sider:$,config:T,result:f,updateTagResult:ce,updateRegion:F,isEdit:r==null?void 0:r.isEdit,tagConfigurable:W,clipConfigurable:X})),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"),audio=require("../../utils/audio.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}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=(t,l,a)=>l in t?__defProp(t,l,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[l]=a,__spreadValues=(t,l)=>{for(var a in l||(l={}))__hasOwnProp.call(l,a)&&__defNormalProp(t,a,l[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(l))__propIsEnum.call(l,a)&&__defNormalProp(t,a,l[a]);return t},__spreadProps=(t,l)=>__defProps(t,__getOwnPropDescs(l));const{EAudioToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,{Sider,Content}=es.Layout,layoutCls=`${index$5.prefix}-layout`,ToggleAudioOption=({setSideTab:t,sideTab:l})=>{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:d,selectedSvg:S,commonSvg:_}=v;return React__default.default.createElement("div",{key:E,className:index_module.option},React__default.default.createElement("img",{className:index_module.icon,src:l===d?S:_,onClick:()=>{l!==d&&t(d)}}))}))},AudioTextToolTextarea=({result:t,inputDisabled:l,updateText:a,configList:v,autofocus:E,preContext:d,isCheck:S,clipAttributeConfigurable:_,clipTextConfigurable:q,textConfigurable:m,updateRegion:y,clipAttributeList:c,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:S,result:t==null?void 0:t.value,textInputDisabled:l,textID:(t==null?void 0:t.id)||0,updateText:a,configList:v,autofocus:!l&&E,preContext:d,regions:t==null?void 0:t.regions,clipAttributeConfigurable:_,clipTextConfigurable:q,textConfigurable:m,updateRegion:y,clipAttributeList:c,clipTextList:g}))),AudioSideBar=t=>{var l,a;const{sider:v,config:E,result:d,updateTagResult:S,updateRegion:_,isEdit:q,tagConfigurable:m,clipConfigurable:y}=t;let c=(E==null?void 0:E.inputList)||[],g=(l=d==null?void 0:d.tag)!=null?l:{},r=(a=d==null?void 0:d.regions)!=null?a:[];const[$,j]=React.useState([]),[C,p]=React.useState("tag");React.useEffect(()=>{if(!m&&y){p("clip");return}p("tag")},[m,y]),React.useEffect(()=>(window.addEventListener("keydown",w),()=>{window.removeEventListener("keydown",w)}));const w=n=>{if(m&&y)switch(n.keyCode){case EKeyCode.L:p("tag");break;case EKeyCode.X:p("clip");break}if(C==="tag"){if(!lbAnnotation.CommonToolUtils.hotkeyFilter(n))return;lbAnnotation.CommonToolUtils.isMoveKey(n==null?void 0:n.keyCode)&&n.preventDefault();let i=n.keyCode;if(i&&(i<=57&&i>=49||i<=105&&i>=97)){i>57?i=i-97:i=i-49;const L=$.slice();c.length===1?(T(0,i),j([0,i]),setTimeout(()=>{j([])},500)):L.length===1?(T(L[0],i),j([L[0],i]),setTimeout(()=>{j([])},500)):j([i])}}},T=(n,i)=>{if(n<c.length&&c[n].subSelected&&i<c[n].subSelected.length){const L=c[n].value,f=c[n].isMulti;let u=c[n].subSelected[i].value,D=0;const N=g;for(const b in g)if(b===c[n].value){if(D++,f===!0){const A=N[b].split(";").filter(U=>U!==""),M=A.indexOf(u);M===-1?A.push(u):A.splice(M,1),u=A.join(";")}u===""?delete N[b]:N[b]=u}D===0&&Object.assign(g,{[L]:u}),S(g)}},P=n=>{delete g[n],S(g)},I=m&&y&&React__default.default.createElement(ToggleAudioOption,{setSideTab:p,sideTab:C}),h=C==="tag"&&React__default.default.createElement(index$8.default,{labelInfoSet:m?c:[],labelSelectedList:$,setLabel:T,tagResult:g,clearResult:P,isEdit:q,withPanelTab:!1}),O=C==="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:I,labelSidebar:h,clipSidebar:O})):v:React__default.default.createElement("div",{className:`${index$7.sidebarCls}`},React__default.default.createElement("div",{className:`${index$7.sidebarCls}__content`},I,h,O))},AudioAnnotate=t=>{var l,a,v,E,d,S,_,q,m;const y=(a=(l=t.style)==null?void 0:l.sider)==null?void 0:a.width,{step:c,stepList:g,audioContext:r,sider:$,drawLayerSlot:j,imgList:C,imgIndex:p,currentData:w,config:T,stepInfo:P,checkMode:I}=t,h=lbAnnotation.CommonToolUtils.getCurrentStepToolAndConfig(c,g),O=index.jsonParser(w.result),{toolInstanceRef:n}=annotation.useCustomToolInstance({basicInfo:O}),[i,L]=React.useState(!0),[f,u]=React.useState(null),[D,N]=React.useState(0),[b,A]=React.useState(!0);React.useEffect(()=>{L(!0)},[p]),React.useEffect(()=>{i===!1&&ae()},[i]),React.useEffect(()=>{U()},[]),React.useEffect(()=>{n.current.exportData=()=>[[f],{duration:D,valid:b}],n.current.setResult=fe,n.current.clearResult=ve,n.current.currentPageResult=f==null?void 0:f.regions,n.current.emit("updatePageNumber"),n.current.setSelectedRegion=M,n.current.setValid=ge},[f,b]);const M=e=>{lbAnnotation.EventBus.emit("setSelectedRegion",{id:e,isLoopStatus:!0,playImmediately:!0})},U=()=>{n.current.emit=e=>{const o=n.current.fns.get(e);o&&o.forEach(s=>{s&&(s==null||s())})},n.current.fns=new Map,n.current.singleOn=(e,o)=>{n.current.fns.set(e,[o])},n.current.on=(e,o)=>{n.current.singleOn(e,o)},n.current.unbindAll=e=>{n.current.fns.delete(e)}},B=React.useMemo(()=>{const e=O[`step_${P==null?void 0:P.step}`];return(e==null?void 0:e.result)||[]},[T,O,P]),{tagConfigurable:W,textConfigurable:K=!0,clipConfigurable:X=!1,clipAttributeConfigurable:G=!1,clipAttributeList:z=[],clipTextConfigurable:V=!1,subAttributeList:Y=[],secondaryAttributeConfigurable:Z=!1,inputList:ee=[],configList:te=[],clipTextList:H=index$1.DEFAULT_CLIP_TEXT_CONFIG_ITEM}=React.useMemo(()=>{if(h)return lbAnnotation.CommonToolUtils.jsonParser(h==null?void 0:h.config)},[h]),ne={clipConfigurable:X,clipAttributeConfigurable:G,clipAttributeList:z,clipTextConfigurable:V,subAttributeList:Y,secondaryAttributeConfigurable:Z,clipTextList:H},le=(E=(v=lbAnnotation.CommonToolUtils.jsonParser(w.result))==null?void 0:v.duration)!=null?E:0,oe=b?le:0,ie=!b||i||![K,V].includes(!0)||I;let J={};if(p!==-1&&(C==null?void 0:C.length)){const e=(d=C[p])==null?void 0:d.preResult,o=(r==null?void 0:r.isEdit)?(S=r==null?void 0:r.stepConfig)==null?void 0:S.loadPreStep:P==null?void 0:P.loadPreStep;if(e&&o){const s=lbAnnotation.CommonToolUtils.jsonParser(e),x=(q=(_=s==null?void 0:s.config)==null?void 0:_.context)!=null?q:{};Object.keys(x).forEach(R=>{R&&x[R]&&(J[R]={visible:!0,content:x[R],type:R})})}}const ae=()=>{(B==null?void 0:B.length)>0?u(B[0]):u({id:lbAnnotation.uuid(),sourceID:"",value:Q(),tag:re(),regions:[]});const e=audio.isImageValue(C[p].result||"[]");A(e)},Q=(e=!0)=>{const o={};let s=T.configList||[];return s.length>0&&s.forEach(x=>{o[x.key]=e&&x.default||""}),o},re=()=>lbAnnotation.TagUtils.getDefaultResultByConfig(T.inputList||[]),se=({duration:e,hasError:o})=>{(r==null?void 0:r.onLoaded)&&(r==null||r.onLoaded()),L(!1),N(e)},ue=e=>{u(o=>__spreadProps(__spreadValues({},o),{regions:((o==null?void 0:o.regions)||[]).filter(s=>s.id!==e)}))},F=e=>{u(o=>{var s;const x=(s=o==null?void 0:o.regions)!=null?s:[],{id:R}=e;return x.find(k=>k.id===R)?__spreadProps(__spreadValues({},o),{regions:x.map(k=>R===k.id?__spreadValues(__spreadValues({},k),e):k)}):__spreadProps(__spreadValues({},o),{regions:[...x,e]})})},de=(e,o)=>{u(s=>__spreadProps(__spreadValues({},s),{value:__spreadProps(__spreadValues({},s.value),{[o]:e})}))},ce=e=>{u(o=>__spreadProps(__spreadValues({},o),{tag:e}))},fe=e=>{u(e)},ve=()=>{u(e=>__spreadProps(__spreadValues({},e),{value:Q(),tag:{},regions:[]})),lbAnnotation.EventBus.emit("clearRegions")},ge=e=>{A(e)};return React__default.default.createElement(index$1.AudioClipProvider,null,React__default.default.createElement(antd.Spin,{spinning:i,wrapperClassName:"audio-tool-spinner"},React__default.default.createElement(es.Layout,{className:dom.getClassName("layout","container"),style:{height:"100%",userSelect:"none"}},t==null?void 0:t.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:f==null?void 0:f.tag,labelInfoSet:ee,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:oe,toolName:EAudioToolName.AudioTextTool,imgIndex:p},drawLayerSlot:j,fileData:w,onLoaded:se,invalid:!b,updateRegion:F,removeRegion:ue,regions:f==null?void 0:f.regions,activeToolPanel:r==null?void 0:r.activeToolPanel,footer:t.footer,isCheck:I},ne))),(K||V)&&React__default.default.createElement(AudioTextToolTextarea,{preContext:J,result:f,inputDisabled:ie,updateText:de,updateRegion:F,configList:te,autofocus:!1,textConfigurable:K,clipTextConfigurable:V,clipAttributeList:z,clipAttributeConfigurable:G,clipTextList:H,isCheck:I}))),React__default.default.createElement(Sider,{className:`${layoutCls}__side`,width:y!=null?y:240,style:(m=t.style)==null?void 0:m.sider},React__default.default.createElement(AudioSideBar,{sider:$,config:T,result:f,updateTagResult:ce,updateRegion:F,isEdit:r==null?void 0:r.isEdit,tagConfigurable:W,clipConfigurable:X})),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"),getWebPcm2Wac=require("../audioAnnotate/utils/getWebPcm2Wac.js"),_=require("lodash"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),lbUtils=require("@labelbee/lb-utils"),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"),reactI18next=require("react-i18next");function _interopDefaultLegacy(l){return l&&typeof l=="object"&&"default"in l?l:{default:l}}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=(l,u,d)=>u in l?__defProp(l,u,{enumerable:!0,configurable:!0,writable:!0,value:d}):l[u]=d,__spreadValues=(l,u)=>{for(var d in u||(u={}))__hasOwnProp.call(u,d)&&__defNormalProp(l,d,u[d]);if(__getOwnPropSymbols)for(var d of __getOwnPropSymbols(u))__propIsEnum.call(u,d)&&__defNormalProp(l,d,u[d]);return l},__spreadProps=(l,u)=>__defProps(l,__getOwnPropDescs(u));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:l={},onLoaded:u,context:d,invalid:ke,height:Oe,hideError:We,onError:re,updateRegion:h,removeRegion:D,regions:C=[],activeToolPanel:Ne,clipConfigurable:Fe,clipTextConfigurable:ne,clipAttributeList:ze,clipAttributeConfigurable:oe,secondaryAttributeConfigurable:Ue,subAttributeList:He,isCheck:b,hoverRegionId:O,footer:Xe,drawLayerSlot:ie,clipTextList:Ze,lang:ae})=>{var le,se;const{url:I,path:ue}=l,[W,N]=React.useState(!1),[ce,de]=React.useState(!1),[S,Ke]=React.useState(0),[Ve,fe]=React.useState(!1),[$,ve]=React.useState(0),o=React.useRef(null),x=React.useRef(null),me=React.useRef(S),F=e=>{me.current=e,Ke(e)},[pe,Ge]=React.useState(0),[k,Ye]=React.useState(1),z=React.useRef(null),[ge,Je]=React.useState({}),{audioClipState:U,setAudioClipState:T}=index.useAudioClipStore(),[H,X]=React.useState(!1),c=ahooks.useLatest(U),be=ahooks.useLatest(ge);ahooks.useLatest(W);const w=ahooks.useLatest(C),_e=ahooks.useUpdate(),[ye,Qe]=React.useState([]),[Ee,et]=React.useState({}),tt=_.debounce(()=>{lbAnnotation.EventBus.emit("audioZoom")},500),Se=e=>{e<index$d.audioZoomInfo.min||e>index$d.audioZoomInfo.max||(Ye(e),audio.dispatchResizeEvent(),tt())};index$1({container:z.current,target:document.querySelector(`[data-id=${(se=(le=c.current)==null?void 0:le.selectedRegion)==null?void 0:se.id}]`),clipping:H,zoom:k,zoomHandler:Se});const q=()=>{let e=w.current;const{attributeLockList:r}=c.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),K(),e.forEach(t=>{var n;(n=o.current)==null||n.addRegion(__spreadProps(__spreadValues({},t),{drag:!b,resize:!b,color:"rgba(0, 0, 0, 0)"}))}),_e()},v=e=>{var r,t,n,i,s,m,p;const{id:a,loop:f=!0,playImmediately:g=!1,isLoopStatus:L}=e,A=!1;if(a){const P=(n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{};Object.entries(P).forEach(([,E])=>{const{id:M}=E;a===M?E.select():E.cancelSelect()}),T({selectedRegion:{id:a,loop:A},selectedAttribute:(m=(s=(i=w.current)==null?void 0:i.find(E=>E.id===a))==null?void 0:s.attribute)!=null?m:""}),g&&((p=j(a))==null||p.play())}else T({selectedRegion:{}})},{combineInstance:rt}=index$2({waveRef:o,sortByStartRegions:ye,regionMap:Ee,updateRegion:h,removeRegion:D,generateRegions:q,setSelectedRegion:v}),{segmentInstance:nt,onRegionMouseMove:ot,segmentTimeTip:it}=index$3({waveRef:o,regionMap:Ee,updateRegion:h,removeRegion:D,generateRegions:q,setSelectedRegion:v}),xe={clipTextConfigurable:ne,clipAttributeList:ze,clipAttributeConfigurable:oe,clipConfigurable:Fe,secondaryAttributeConfigurable:Ue,subAttributeList:He,clipTextList:Ze};React.useEffect(()=>{var e;ae&&((e=lbUtils.i18n)==null||e.changeLanguage(ae))},[]),React.useEffect(()=>{T({selectedAttribute:""})},[oe]),React.useEffect(()=>{Z()},[U.selectedAttribute]),React.useEffect(()=>{q()},[U.attributeLockList]),ahooks.useDeepCompareEffect(()=>{T(xe),setTimeout(()=>{Re()})},[xe]),ahooks.useDeepCompareEffect(()=>{Qe(_.sortBy(C,["start"])),et(C.reduce((e,r)=>{const{id:t}=r;return __spreadProps(__spreadValues({},e),{[t]:r})},{})),b&&q()},[C]),React.useEffect(()=>{v(O?{id:O,loop:!1,playImmediately:!0}:{})},[O]);const Re=()=>{var e,r;c.current.clipConfigurable?(!b&&o.current&&((e=o.current)==null||e.enableDragSelection({slop:5})),q()):((r=o.current)==null||r.disableDragSelection(),K()),Z()},Z=()=>{var e,r,t,n,i;let s="";c.current.clipConfigurable?s=audio.getAttributeColor(c.current.selectedAttribute,(e=c.current.clipAttributeList)!=null?e:[]):s="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 ${s}`}))},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]},Pe=()=>{var e,r;if(I){const t=((r=(e=ue==null?void 0:ue.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";fe(!1),t?getWebPcm2Wac.getWebPcm2WavBase64(I).then(n=>{he(n)}):he(I)}},he=e=>{var r;e&&(de(!0),F(0),ve(0),(r=o==null?void 0:o.current)==null||r.load(e))},K=()=>{var e;(e=o.current)==null||e.clearRegions()},V=e=>{const r=j(e);r&&(X(!1),r==null||r.remove(),D==null||D(e),v({}))},{run:Ce}=ahooks.useThrottleFn(v,{wait:500});index$4({sortByStartRegions:ye,setSelectedRegion:v});const at=e=>{const{start:r,end:t}=be.current;return(r||t)&&e.update(be.current),e},lt=({action:e,id:r,eventDownTime:t})=>{var n,i;if(!c.current.clipConfigurable)return;r&&v({id:r});const s=j((r!=null?r:(n=c.current.selectedRegion)==null?void 0:n.id)||""),m=[];(e==="create"?w.current:(i=w.current)==null?void 0:i.filter(f=>f.id!==s.id)).forEach(f=>{const{start:g,end:L,attribute:A}=f;A===c.current.selectedAttribute&&[g,L].forEach(P=>{m.includes(P)||m.push(P)})});const a=audio.getCanMoveRange(m.sort((f,g)=>f-g),t);o.current.range=a},st=e=>{Z(),setTimeout(()=>{X(!1)});const r=at(e),{id:t,start:n,end:i}=r;v({id:t,playImmediately:!0});const s={id:t,start:utils.decimalReserved(n,3),end:utils.decimalReserved(i,3)};h==null||h(s),_e()},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;F(((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;ve(n),r(),u==null||u({duration:Math.round(n)}),de(!1),B(),lbAnnotation.EventBus.on("setCurrentTimeByPosition",Y),lbAnnotation.EventBus.on("clearRegions",K),lbAnnotation.EventBus.on("removeRegionById",V),lbAnnotation.EventBus.on("setSelectedRegion",Ce),e.on("regions-eventDown",lt),Re()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{N(!0)}),e.on("pause",()=>{N(!1)}),e.on("finish",()=>{N(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{fe(!0),u==null||u({hasError:!0}),re==null||re()}),e.on("region-created",t=>{var n;const{id:i,start:s,end:m}=t;if(w.current.find(a=>a.id===i))return;const p={id:i,start:utils.decimalReserved(s,3),end:utils.decimalReserved(m,3),attribute:c.current.selectedAttribute,text:""};if(c.current.secondaryAttributeConfigurable){const a=lbAnnotation.TagUtils.getDefaultResultByConfig((n=c.current.subAttributeList)!=null?n:[]);p.subAttribute=a!=null?a:{}}ne&&c.current.clipTextList.forEach((f,g)=>{g===0?Object.assign(p,{text:f==null?void 0:f.default}):Object.assign(p,{[f.key]:f==null?void 0:f.default})}),h==null||h(p)}),e.on("region-updated",(t,n)=>{var i,s,m,p,a,f,g,L,A,P;const E=n==null?void 0:n.action;T({combined:!1,segment:!1}),E==="resize"&&((s=(i=o==null?void 0:o.current)==null?void 0:i.cursor)==null||s.setStyle({borderStyle:"solid"})),E==="drag"&&((p=(m=o==null?void 0:o.current)==null?void 0:m.cursor)==null||p.setStyle({borderColor:"transparent"}));const M={},J=[],Q={},St=(a=w.current)==null?void 0:a.filter(y=>y.id!==t.id),xt=(L=(g=(f=o.current)==null?void 0:f.regions)==null?void 0:g.list)!=null?L:{};St.forEach(y=>{var De,Ie;const{element:ee}=(De=xt[y.id])!=null?De:{},{start:ht,end:Ct}=y;if(ee){const{x:$e,width:wt}=((Ie=ee.getBoundingClientRect)==null?void 0:Ie.call(ee))||{},At=$e+wt;[$e,At].forEach((te,Tt)=>{J.includes(te)||(J.push(te),Q[te]=Tt===0?ht:Ct)})}});const{x:Me,width:Rt}=((P=(A=t.element).getBoundingClientRect)==null?void 0:P.call(A))||{},Pt=Me+Rt;J.forEach(y=>{Math.abs(audio.precisionMinus(y,Me))<5&&(M.start=Q[y]),Math.abs(audio.precisionMinus(y,Pt))<5&&(M.end=Q[y])}),Je(M),Ce({id:t.id}),X(!0)}),e.on("region-update-end",t=>{st(t)}),e.on("region-contextmenu",(t,n)=>{if(!b){if(n.preventDefault(),n.stopPropagation(),audio.isDoubleClick(n)){V(t.id);return}v({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,n,i)=>{if(!b){if(n.preventDefault(),n.stopPropagation(),c.current.combined){rt(t);return}if(c.current.segment){nt(t,i);return}v({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",ot),o.current=e},ct=W?React__default.default.createElement(icons.PauseOutlined,null):React__default.default.createElement(icons.CaretRightOutlined,null),we=e=>e?`${parseFloat((e/$*100).toFixed(4))}%`:"0%",Ae=we(S),dt=we(pe),R=()=>{if(!ce)return o==null?void 0:o.current},ft=()=>{var e;(e=R())==null||e.skipForward(PER_PROGRESS)},vt=()=>{var e;(e=R())==null||e.skipBackward(PER_PROGRESS)},B=()=>{var e;(e=R())==null||e.playPause(),v({})},Te=e=>{var r;switch(e.keyCode){case EKeyCode.Right:ft();break;case EKeyCode.Left:vt();break;case EKeyCode.Space:e.preventDefault(),B();break;case EKeyCode.Delete:if(!b){const{id:t}=((r=c.current)==null?void 0:r.selectedRegion)||{};t&&V(t)}break}},mt=e=>{Y(e)},qe=___default.default.throttle(mt,50);let G=!1;const je=()=>{G&&(B(),G=!1),document.removeEventListener("mousemove",qe),document.removeEventListener("mouseup",je)},pt=e=>{Y(e),W&&(G=!0,B()),document.addEventListener("mousemove",qe),document.addEventListener("mouseup",je)},gt=()=>{Pe()};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=R())==null||r.playPause(),(t=R())==null||t.setPlaybackRate(e),(n=R())==null||n.playPause()};React.useEffect(()=>(document.addEventListener("keydown",Te),()=>{document.removeEventListener("keydown",Te)})),React.useEffect(()=>{v({}),Pe()},[I]);const Be=e=>{var r,t,n,i;if((o==null?void 0:o.current)&&(x==null?void 0:x.current)){const s=(t=(r=o==null?void 0:o.current)==null?void 0:r.getDuration())!=null?t:0,m=(n=x==null?void 0:x.current)==null?void 0:n.getBoundingClientRect();let a=(e.clientX-m.left)/(((i=x==null?void 0:x.current)==null?void 0:i.clientWidth)||0)*s;return a>s&&(a=s),a}return 0},Y=e=>{var r;const t=Be(e);(r=o==null?void 0:o.current)==null||r.skip(t-me.current),F(t)},_t=e=>{Ge(Be(e))},yt=$?Math.max($-S,0):0,Et=(d==null?void 0:d.toolName)!==EToolName.Empty&&(d==null?void 0:d.isEdit)!==!0&&(Ne==="remark"||b),Le=React__default.default.createElement("div",{className:index_module.audioPlayer},Ve&&!We&&React__default.default.createElement(index$5,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:gt,backgroundColor:"#ffffffbb"}),React__default.default.createElement(index$6,{getRegionInstanceById:j,clipping:H}),React__default.default.createElement(index$7,{container:z.current}),React__default.default.createElement(index$8,{segmentTimeTip:it}),React__default.default.createElement("div",{className:index_module.waveformContainer,ref:z},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})},ke&&React__default.default.createElement(index$a,{isAudio:!0}),React__default.default.createElement("div",{ref:x,className:index_module.progress,onMouseDown:pt,onMouseMove:_t},React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0}),style:{left:Ae}},audio.formatTime(S)),React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0,[index_module.mouseTooltip]:!0}),style:{left:dt}},audio.formatTime(pe)),React__default.default.createElement(index$b,{playPercentage:Ae})),Et&&(ie==null?void 0:ie({currentTime:S,remainingTime:yt,audioPlayer:R()})))),React__default.default.createElement("div",{className:index_module.controlBar},React__default.default.createElement(antd.Button,{type:"link",icon:ct,onClick:()=>{B()},className:index$9.classnames({[index_module.playButton]:!0,[index_module.playButtonDisabled]:ce})}),React__default.default.createElement("span",{className:index_module.time},`${audio.timeFormat(S,"ss.SSS")} / -${audio.timeFormat($-S,"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=>{Se(e)},zoom:k}),React__default.default.createElement(index$e,{EventBus:lbAnnotation.EventBus})));return d?React__default.default.createElement(AudioPlayerContext.Provider,{value:d},Le,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:ge,clipping:H,zoom:k,instance:j(r),isCheck:b}):null}),React__default.default.createElement(index$g.default,{footer:Xe})):Le},WrapAudioPlayer=l=>React__default.default.createElement(reactI18next.I18nextProvider,{i18n:lbUtils.i18n},React__default.default.createElement(AudioPlayer,__spreadValues({},l)));exports.AudioPlayer=AudioPlayer,exports.AudioPlayerContext=AudioPlayerContext,exports.WrapAudioPlayer=WrapAudioPlayer;
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"),lbUtils=require("@labelbee/lb-utils"),antd=require("antd"),index$b=require("../invalidPage/index.js"),index$6=require("../imageError/index.js"),index$a=require("../../utils/index.js"),index$d=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=require("./zoomSlider/index.js"),index$e=require("./labelDisplayToggle/index.js"),index$f=require("./clipRegion/index.js"),index$1=require("../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks"),index$2=require("./useAudioScroll/index.js"),index_module=require("./index.module.scss.js"),audio=require("../../utils/audio.js"),index$c=require("./progressDot/index.js"),index$7=require("./clipTip/index.js"),index$5=require("./useSwitchHotkey/index.js"),index$3=require("./useAudioCombine/index.js"),index$4=require("./useAudioSegment/index.js"),index$8=require("./combineTip/index.js"),index$9=require("./segmentTip/index.js"),index$g=require("../../views/MainView/toolFooter/index.js"),utils=require("../videoPlayer/utils.js"),reactI18next=require("react-i18next"),useSize=require("../../hooks/useSize.js");function _interopDefaultLegacy(l){return l&&typeof l=="object"&&"default"in l?l:{default:l}}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=(l,u,d)=>u in l?__defProp(l,u,{enumerable:!0,configurable:!0,writable:!0,value:d}):l[u]=d,__spreadValues=(l,u)=>{for(var d in u||(u={}))__hasOwnProp.call(u,d)&&__defNormalProp(l,d,u[d]);if(__getOwnPropSymbols)for(var d of __getOwnPropSymbols(u))__propIsEnum.call(u,d)&&__defNormalProp(l,d,u[d]);return l},__spreadProps=(l,u)=>__defProps(l,__getOwnPropDescs(u));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:l={},onLoaded:u,context:d,invalid:Ne,height:Fe,hideError:ze,onError:re,updateRegion:T,removeRegion:k,regions:x=[],activeToolPanel:Ue,clipConfigurable:Ze,clipTextConfigurable:ne,clipAttributeList:He,clipAttributeConfigurable:oe,secondaryAttributeConfigurable:Ve,subAttributeList:Xe,isCheck:b,hoverRegionId:W,footer:Ke,drawLayerSlot:ie,clipTextList:Ge,lang:ae})=>{var le,se;const{url:$,path:ue}=l,[N,F]=React.useState(!1),[ce,de]=React.useState(!1),[P,Ye]=React.useState(0),[Je,fe]=React.useState(!1),[S,ve]=React.useState(0),o=React.useRef(null),C=React.useRef(null),me=React.useRef(P),z=e=>{me.current=e,Ye(e)},[pe,Qe]=React.useState(0),[O,et]=React.useState(index.audioZoomInfo.defaultValue),y=React.useRef(null),[ge,tt]=React.useState({}),{audioClipState:U,setAudioClipState:j}=index$1.useAudioClipStore(),[Z,H]=React.useState(!1),c=ahooks.useLatest(U),be=ahooks.useLatest(ge);ahooks.useLatest(N);const A=ahooks.useLatest(x),_e=ahooks.useUpdate(),[ye,rt]=React.useState([]),[Ee,nt]=React.useState({}),[ot,Se]=React.useState(""),[he,it]=React.useState({start:0,end:0}),at=useSize(y),lt=React.useMemo(()=>x.filter(e=>{const{start:t,end:r}=he;return e.start>=t&&e.start<=r||e.end>=t&&e.end<=r||e.id===ot}),[x,he]),st=_.debounce(()=>{lbAnnotation.EventBus.emit("audioZoom")},500),Re=e=>{e<index.audioZoomInfo.min||e>index.audioZoomInfo.max||(et(e),audio.dispatchResizeEvent(),st())};index$2({container:y.current,target:document.querySelector(`[data-id=${(se=(le=c.current)==null?void 0:le.selectedRegion)==null?void 0:se.id}]`),clipping:Z,zoom:O,zoomHandler:Re});const B=()=>{let e=A.current;const{attributeLockList:t}=c.current;t.length&&(e=e.filter(r=>t.includes(r.attribute))),X(),e.forEach(r=>{var n;(n=o.current)==null||n.addRegion(__spreadProps(__spreadValues({},r),{drag:!b,resize:!b,color:"rgba(0, 0, 0, 0)"}))}),_e()},v=e=>{var t,r,n,i,s,m,p;const{id:a,loop:f=!0,playImmediately:g=!1,isLoopStatus:M}=e,q=!1;if(a){const w=(n=(r=(t=o.current)==null?void 0:t.regions)==null?void 0:r.list)!=null?n:{};Object.entries(w).forEach(([,R])=>{const{id:I}=R;a===I?R.select():R.cancelSelect()}),j({selectedRegion:{id:a,loop:q},selectedAttribute:(m=(s=(i=A.current)==null?void 0:i.find(R=>R.id===a))==null?void 0:s.attribute)!=null?m:""}),g&&((p=L(a))==null||p.play())}else j({selectedRegion:{}})},{combineInstance:ut}=index$3({waveRef:o,sortByStartRegions:ye,regionMap:Ee,updateRegion:T,removeRegion:k,generateRegions:B,setSelectedRegion:v}),{segmentInstance:ct,onRegionMouseMove:dt,segmentTimeTip:ft}=index$4({waveRef:o,regionMap:Ee,updateRegion:T,removeRegion:k,generateRegions:B,setSelectedRegion:v}),xe={clipTextConfigurable:ne,clipAttributeList:He,clipAttributeConfigurable:oe,clipConfigurable:Ze,secondaryAttributeConfigurable:Ve,subAttributeList:Xe,clipTextList:Ge};React.useEffect(()=>{var e;ae&&((e=lbUtils.i18n)==null||e.changeLanguage(ae))},[]),React.useEffect(()=>{j({selectedAttribute:""})},[oe]),React.useEffect(()=>{V()},[U.selectedAttribute]),React.useEffect(()=>{B()},[U.attributeLockList]),ahooks.useDeepCompareEffect(()=>{j(xe),setTimeout(()=>{Pe()})},[xe]),ahooks.useDeepCompareEffect(()=>{rt(_.sortBy(x,["start"])),nt(x.reduce((e,t)=>{const{id:r}=t;return __spreadProps(__spreadValues({},e),{[r]:t})},{})),b&&B()},[x]),React.useEffect(()=>{v(W?{id:W,loop:!1,playImmediately:!0}:{})},[W]);const Pe=()=>{var e,t;c.current.clipConfigurable?(!b&&o.current&&((e=o.current)==null||e.enableDragSelection({slop:5})),B()):((t=o.current)==null||t.disableDragSelection(),X()),V()},V=()=>{var e,t,r,n,i;let s="";c.current.clipConfigurable?s=audio.getAttributeColor(c.current.selectedAttribute,(e=c.current.clipAttributeList)!=null?e:[]):s="transparent",((r=(t=o==null?void 0:o.current)==null?void 0:t.cursor)==null?void 0:r.cursor)&&((i=(n=o==null?void 0:o.current)==null?void 0:n.cursor)==null||i.setStyle({border:`2px dashed ${s}`}))},L=e=>{var t,r,n;return((n=(r=(t=o.current)==null?void 0:t.regions)==null?void 0:r.list)!=null?n:{})[e]},Ce=()=>{var e,t;if($){const r=((t=(e=ue==null?void 0:ue.split("."))==null?void 0:e.pop())==null?void 0:t.toLowerCase())==="pcm";fe(!1),r?getWebPcm2Wac.getWebPcm2WavBase64($).then(n=>{we(n)}):we($)}},we=e=>{var t;e&&(de(!0),z(0),ve(0),(t=o==null?void 0:o.current)==null||t.load(e))},X=()=>{var e;(e=o.current)==null||e.clearRegions()},K=e=>{const t=L(e);t&&(H(!1),t==null||t.remove(),k==null||k(e),v({}))},{run:Te}=ahooks.useThrottleFn(v,{wait:100});index$5({sortByStartRegions:ye,setSelectedRegion:v});const vt=e=>{const{start:t,end:r}=be.current;return(t||r)&&e.update(be.current),e},mt=({action:e,id:t,eventDownTime:r})=>{var n,i;if(!c.current.clipConfigurable)return;t&&v({id:t});const s=L((t!=null?t:(n=c.current.selectedRegion)==null?void 0:n.id)||""),m=[];(e==="create"?A.current:(i=A.current)==null?void 0:i.filter(f=>f.id!==s.id)).forEach(f=>{const{start:g,end:M,attribute:q}=f;q===c.current.selectedAttribute&&[g,M].forEach(w=>{m.includes(w)||m.push(w)})});const a=audio.getCanMoveRange(m.sort((f,g)=>f-g),r);o.current.range=a},pt=e=>{V(),setTimeout(()=>{H(!1)});const t=vt(e),{id:r,start:n,end:i}=t;v({id:r,playImmediately:!0});const s={id:r,start:utils.decimalReserved(n,3),end:utils.decimalReserved(i,3)};T==null||T(s),_e()},gt=()=>{const e=WaveSurfer__default.default.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:Fe||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[Region__default.default.create({regions:x,dragSelection:{slop:5},canMove:!1}),Cursor__default.default.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),t=()=>{var r;z(((r=o==null?void 0:o.current)==null?void 0:r.getCurrentTime())||0)};e.on("ready",()=>{var r;const n=((r=o==null?void 0:o.current)==null?void 0:r.getDuration())||0;ve(n),t(),u==null||u({duration:Math.round(n)}),de(!1),D(),lbAnnotation.EventBus.on("setCurrentTimeByPosition",Y),lbAnnotation.EventBus.on("clearRegions",X),lbAnnotation.EventBus.on("removeRegionById",K),lbAnnotation.EventBus.on("setSelectedRegion",Te),e.on("regions-eventDown",mt),Pe()}),e.on("audioprocess",()=>{t()}),e.on("play",()=>{F(!0)}),e.on("pause",()=>{F(!1)}),e.on("finish",()=>{F(!1)}),e.on("seek",()=>{t()}),e.on("error",()=>{fe(!0),u==null||u({hasError:!0}),re==null||re()}),e.on("region-created",r=>{var n;const{id:i,start:s,end:m}=r;if(A.current.find(a=>a.id===i))return;Se(i);const p={id:i,start:utils.decimalReserved(s,3),end:utils.decimalReserved(m,3),attribute:c.current.selectedAttribute,text:""};if(c.current.secondaryAttributeConfigurable){const a=lbAnnotation.TagUtils.getDefaultResultByConfig((n=c.current.subAttributeList)!=null?n:[]);p.subAttribute=a!=null?a:{}}ne&&c.current.clipTextList.forEach((f,g)=>{g===0?Object.assign(p,{text:f==null?void 0:f.default}):Object.assign(p,{[f.key]:f==null?void 0:f.default})}),T==null||T(p)}),e.on("region-updated",(r,n)=>{var i,s,m,p,a,f,g,M,q,w;const R=n==null?void 0:n.action;j({combined:!1,segment:!1}),R==="resize"&&((s=(i=o==null?void 0:o.current)==null?void 0:i.cursor)==null||s.setStyle({borderStyle:"solid"})),R==="drag"&&((p=(m=o==null?void 0:o.current)==null?void 0:m.cursor)==null||p.setStyle({borderColor:"transparent"}));const I={},J=[],Q={},At=(a=A.current)==null?void 0:a.filter(E=>E.id!==r.id),qt=(M=(g=(f=o.current)==null?void 0:f.regions)==null?void 0:g.list)!=null?M:{};At.forEach(E=>{var $e,Oe;const{element:ee}=($e=qt[E.id])!=null?$e:{},{start:Lt,end:Dt}=E;if(ee){const{x:We,width:Mt}=((Oe=ee.getBoundingClientRect)==null?void 0:Oe.call(ee))||{},It=We+Mt;[We,It].forEach((te,kt)=>{J.includes(te)||(J.push(te),Q[te]=kt===0?Lt:Dt)})}});const{x:ke,width:jt}=((w=(q=r.element).getBoundingClientRect)==null?void 0:w.call(q))||{},Bt=ke+jt;J.forEach(E=>{Math.abs(audio.precisionMinus(E,ke))<5&&(I.start=Q[E]),Math.abs(audio.precisionMinus(E,Bt))<5&&(I.end=Q[E])}),tt(I),Te({id:r.id}),H(!0)}),e.on("region-update-end",r=>{pt(r),Se("")}),e.on("region-contextmenu",(r,n)=>{if(!b){if(n.preventDefault(),n.stopPropagation(),audio.isDoubleClick(n)){K(r.id);return}v({id:r.id,playImmediately:!0})}}),e.on("region-click",(r,n,i)=>{if(!b){if(n.preventDefault(),n.stopPropagation(),c.current.combined){ut(r);return}if(c.current.segment){ct(r,i);return}v({id:r.id,playImmediately:!0})}}),e.on("region-mousemove",dt),o.current=e},bt=N?React__default.default.createElement(icons.PauseOutlined,null):React__default.default.createElement(icons.CaretRightOutlined,null),Ae=e=>e?`${parseFloat((e/S*100).toFixed(4))}%`:"0%",qe=Ae(P),_t=Ae(pe),h=()=>{if(!ce)return o==null?void 0:o.current},yt=()=>{var e;(e=h())==null||e.skipForward(PER_PROGRESS)},Et=()=>{var e;(e=h())==null||e.skipBackward(PER_PROGRESS)},D=()=>{var e;(e=h())==null||e.playPause(),v({})},je=e=>{var t;switch(e.keyCode){case EKeyCode.Right:yt();break;case EKeyCode.Left:Et();break;case EKeyCode.Space:e.preventDefault(),D();break;case EKeyCode.Delete:if(!b){const{id:r}=((t=c.current)==null?void 0:t.selectedRegion)||{};r&&K(r)}break}},St=e=>{Y(e)},Be=___default.default.throttle(St,50);let G=!1;const Le=()=>{G&&(D(),G=!1),document.removeEventListener("mousemove",Be),document.removeEventListener("mouseup",Le)},ht=e=>{Y(e),N&&(G=!0,D()),document.addEventListener("mousemove",Be),document.addEventListener("mouseup",Le)},Rt=()=>{Ce()};React.useEffect(()=>(gt(),()=>{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 xt=e=>{var t,r,n;(t=h())==null||t.playPause(),(r=h())==null||r.setPlaybackRate(e),(n=h())==null||n.playPause()};React.useEffect(()=>(document.addEventListener("keydown",je),()=>{document.removeEventListener("keydown",je)})),React.useEffect(()=>{v({}),Ce()},[$]),React.useEffect(()=>{De()},[at,S]);const Pt=()=>{if(y.current&&S){const e=y.current.scrollLeft,t=y.current.clientWidth,r=e/y.current.scrollWidth*S,n=(e+t)/y.current.scrollWidth*S;it({start:r,end:n})}},{run:De}=ahooks.useThrottleFn(Pt,{wait:300}),Me=e=>{var t,r,n,i;if((o==null?void 0:o.current)&&(C==null?void 0:C.current)){const s=(r=(t=o==null?void 0:o.current)==null?void 0:t.getDuration())!=null?r:0,m=(n=C==null?void 0:C.current)==null?void 0:n.getBoundingClientRect();let a=(e.clientX-m.left)/(((i=C==null?void 0:C.current)==null?void 0:i.clientWidth)||0)*s;return a>s&&(a=s),a}return 0},Y=e=>{var t;const r=Me(e);(t=o==null?void 0:o.current)==null||t.skip(r-me.current),z(r)},Ct=e=>{Qe(Me(e))},wt=S?Math.max(S-P,0):0,Tt=(d==null?void 0:d.toolName)!==EToolName.Empty&&(d==null?void 0:d.isEdit)!==!0&&(Ue==="remark"||b),Ie=React__default.default.createElement("div",{className:index_module.audioPlayer},Je&&!ze&&React__default.default.createElement(index$6,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:Rt,backgroundColor:"#ffffffbb"}),React__default.default.createElement(index$7,{getRegionInstanceById:L,clipping:Z}),React__default.default.createElement(index$8,{container:y.current}),React__default.default.createElement(index$9,{segmentTimeTip:ft}),React__default.default.createElement("div",{className:index_module.waveformContainer,ref:y,onScroll:()=>De()},React__default.default.createElement("div",{id:"waveform",style:{width:`${O*100}%`},className:index$a.classnames({[index_module.waveform]:!0,"bee-audio-combined":c.current.combined,"bee-audio-clip":c.current.clipConfigurable})},Ne&&React__default.default.createElement(index$b,{isAudio:!0}),React__default.default.createElement("div",{ref:C,className:index_module.progress,onMouseDown:ht,onMouseMove:Ct},React__default.default.createElement("div",{className:index$a.classnames({[index_module.radioTooltip]:!0}),style:{left:qe}},audio.formatTime(P)),React__default.default.createElement("div",{className:index$a.classnames({[index_module.radioTooltip]:!0,[index_module.mouseTooltip]:!0}),style:{left:_t}},audio.formatTime(pe)),React__default.default.createElement(index$c,{playPercentage:qe})),Tt&&(ie==null?void 0:ie({currentTime:P,remainingTime:wt,audioPlayer:h()})))),React__default.default.createElement("div",{className:index_module.controlBar},React__default.default.createElement(antd.Button,{type:"link",icon:bt,onClick:()=>{D()},className:index$a.classnames({[index_module.playButton]:!0,[index_module.playButtonDisabled]:ce})}),React__default.default.createElement("span",{className:index_module.time},`${audio.timeFormat(P,"ss.SSS")} / -${audio.timeFormat(S-P,"ss.SSS")}`),React__default.default.createElement(index$d.default,{playerType:index$d.EPlayerType.Audio,onChange:e=>{xt(e)}}),React__default.default.createElement(index.default,{onChange:e=>{var t;(t=h())==null||t.pause(),Re(e)},zoom:O}),React__default.default.createElement(index$e,{EventBus:lbAnnotation.EventBus})));return d?React__default.default.createElement(AudioPlayerContext.Provider,{value:d},Ie,lt.map(e=>{const{id:t}=e,r=document.querySelector(`[data-id=${t}]`);return r?React__default.default.createElement(index$f,{el:r,key:t,region:e,edgeAdsorption:ge,clipping:Z,zoom:O,instance:L(t),isCheck:b}):null}),React__default.default.createElement(index$g.default,{footer:Ke})):Ie},WrapAudioPlayer=l=>React__default.default.createElement(reactI18next.I18nextProvider,{i18n:lbUtils.i18n},React__default.default.createElement(AudioPlayer,__spreadValues({},l)));exports.AudioPlayer=AudioPlayer,exports.AudioPlayerContext=AudioPlayerContext,exports.WrapAudioPlayer=WrapAudioPlayer;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),icons=require("@ant-design/icons"),antd=require("antd"),audio=require("../../../utils/audio.js"),lbAnnotation=require("@labelbee/lb-annotation"),ahooks=require("ahooks"),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);const EKeyCode=lbAnnotation.cKeyCode.default,audioZoomInfo={min:1,max:150,ratio:1},ZoomSlider=t=>{const{onChange:u,zoom:o}=t,{t:l}=reactI18next.useTranslation(),r=ahooks.useLatest(o),n=e=>{u(e)},a={fontSize:14,margin:"0 8px",cursor:"pointer"},i=()=>{const e=audio.precisionAdd(r.current,audioZoomInfo.ratio);n(e)},c=()=>{const e=audio.precisionMinus(r.current,audioZoomInfo.ratio);n(e)},s=e=>{switch(e.keyCode){case EKeyCode.I:e.ctrlKey&&i();break;case EKeyCode.O:e.ctrlKey&&(e.preventDefault(),c());break}};return React.useEffect(()=>(document.addEventListener("keydown",s),()=>{document.removeEventListener("keydown",s)}),[]),React__default.default.createElement("div",{className:index_module.sliderContainer},React__default.default.createElement("div",null,l("Scale")),React__default.default.createElement(icons.ZoomOutOutlined,{style:a,onClick:c}),React__default.default.createElement("div",{style:{width:120}},React__default.default.createElement(antd.Slider,{min:audioZoomInfo.min,max:audioZoomInfo.max,step:audioZoomInfo.ratio,onChange:n,value:o})),React__default.default.createElement(icons.ZoomInOutlined,{style:a,onClick:i}))};exports.audioZoomInfo=audioZoomInfo,exports.default=ZoomSlider;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),icons=require("@ant-design/icons"),antd=require("antd"),audio=require("../../../utils/audio.js"),lbAnnotation=require("@labelbee/lb-annotation"),ahooks=require("ahooks"),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);const EKeyCode=lbAnnotation.cKeyCode.default,audioZoomInfo={min:1,max:150,ratio:1,defaultValue:30},ZoomSlider=t=>{const{onChange:s,zoom:o}=t,{t:l}=reactI18next.useTranslation(),r=ahooks.useLatest(o),n=e=>{s(e)},a={fontSize:14,margin:"0 8px",cursor:"pointer"},i=()=>{const e=audio.precisionAdd(r.current,audioZoomInfo.ratio);n(e)},u=()=>{const e=audio.precisionMinus(r.current,audioZoomInfo.ratio);n(e)},c=e=>{switch(e.keyCode){case EKeyCode.I:e.ctrlKey&&i();break;case EKeyCode.O:e.ctrlKey&&(e.preventDefault(),u());break}};return React.useEffect(()=>(document.addEventListener("keydown",c),()=>{document.removeEventListener("keydown",c)}),[]),React__default.default.createElement("div",{className:index_module.sliderContainer},React__default.default.createElement("div",null,l("Scale")),React__default.default.createElement(icons.ZoomOutOutlined,{style:a,onClick:u}),React__default.default.createElement("div",{style:{width:120}},React__default.default.createElement(antd.Slider,{min:audioZoomInfo.min,max:audioZoomInfo.max,step:audioZoomInfo.ratio,onChange:n,value:o})),React__default.default.createElement(icons.ZoomInOutlined,{style:a,onClick:i}))};exports.audioZoomInfo=audioZoomInfo,exports.default=ZoomSlider;
package/dist/index.css CHANGED
@@ -696,6 +696,7 @@
696
696
  }
697
697
  .index-module_waveformContainer__rVhq9::-webkit-scrollbar {
698
698
  width: 8px;
699
+ height: 10px;
699
700
  }
700
701
  .index-module_waveformContainer__rVhq9::-webkit-scrollbar-track {
701
702
  background: #555;
@@ -788,6 +789,7 @@
788
789
  text-align: right;
789
790
  background: rgb(102, 111, 255);
790
791
  opacity: 0.6;
792
+ margin-top: 10px;
791
793
  }
792
794
  .index-module_textInputContainer__ES6X3 {
793
795
  height: 100%;
@@ -3,6 +3,7 @@ export declare const audioZoomInfo: {
3
3
  min: number;
4
4
  max: number;
5
5
  ratio: number;
6
+ defaultValue: number;
6
7
  };
7
8
  interface IZoomSliderProps {
8
9
  /** 缩放时调用的方法,需要在外部控制最大值和最小值 */
@@ -1 +1 @@
1
- import l,{useState as M,useEffect as B,useMemo as re}from"react";import{AudioPlayer as we}from"../audioPlayer/index.js";import{getClassName as Ie}from"../../utils/dom.js";import Ae from"../predictTracking/previewResult/index.js";import{Layout as se}from"antd/es";import{Spin as Oe}from"antd";import{prefix as Ne}from"../../constant/index.js";import{cKeyCode as ke,CommonToolUtils as K,EventBus as ae,uuid as De,TagUtils as $e,cTool as Ve}from"@labelbee/lb-annotation";import O from"./index.module.scss.js";import Me from"./tagResultShow/index.js";import{AudioClipProvider as Be,DEFAULT_CLIP_TEXT_CONFIG_ITEM as Ke,useAudioClipStore as We}from"./audioContext/index.js";import Fe from"./textInput/index.js";import{connect as Ue}from"react-redux";import{a2MapStateToProps as Xe}from"../../store/annotation/map.js";import{LabelBeeContext as Ge}from"../../store/ctx.js";import{jsonParser as qe}from"../../utils/index.js";import{useCustomToolInstance as ze}from"../../hooks/annotation.js";import{sidebarCls as Y}from"../../views/MainView/sidebar/index.js";import He from"./audioSide/labelSidebar/index.js";import Je from"./audioSide/clipSidebar/index.js";import Qe from"../../assets/annotation/audio/tag.svg.js";import Ye from"../../assets/annotation/audio/tagA.svg.js";import Ze from"../../assets/annotation/audio/clip.svg.js";import et from"../../assets/annotation/audio/clipA.svg.js";import{isImageValue as tt}from"../../utils/audio.js";var ot=Object.defineProperty,nt=Object.defineProperties,it=Object.getOwnPropertyDescriptors,ue=Object.getOwnPropertySymbols,lt=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable,ce=(o,n,s)=>n in o?ot(o,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[n]=s,S=(o,n)=>{for(var s in n||(n={}))lt.call(n,s)&&ce(o,s,n[s]);if(ue)for(var s of ue(n))rt.call(n,s)&&ce(o,s,n[s]);return o},N=(o,n)=>nt(o,it(n));const{EAudioToolName:st}=Ve,de=ke.default,{Sider:at,Content:ut}=se,fe=`${Ne}-layout`,ct=({setSideTab:o,sideTab:n})=>{const s=[{tab:"tag",commonSvg:Qe,selectedSvg:Ye},{tab:"clip",commonSvg:Ze,selectedSvg:et}];return l.createElement("div",{className:O.toggleAudioOption},s.map((p,_)=>{const{tab:d,selectedSvg:x,commonSvg:L}=p;return l.createElement("div",{key:_,className:O.option},l.createElement("img",{className:O.icon,src:n===d?x:L,onClick:()=>{n!==d&&o(d)}}))}))},dt=({result:o,inputDisabled:n,updateText:s,configList:p,autofocus:_,preContext:d,isCheck:x,clipAttributeConfigurable:L,clipTextConfigurable:k,textConfigurable:b,updateRegion:C,clipAttributeList:f,clipTextList:g})=>l.createElement("div",{className:O.textareaContainer},l.createElement("div",{className:O.textareaContent},l.createElement(Fe,{isCheck:x,result:o==null?void 0:o.value,textInputDisabled:n,textID:(o==null?void 0:o.id)||0,updateText:s,configList:p,autofocus:!n&&_,preContext:d,regions:o==null?void 0:o.regions,clipAttributeConfigurable:L,clipTextConfigurable:k,textConfigurable:b,updateRegion:C,clipAttributeList:f,clipTextList:g}))),ft=o=>{var n,s;const{sider:p,config:_,result:d,updateTagResult:x,updateRegion:L,isEdit:k,tagConfigurable:b,clipConfigurable:C}=o;let f=(_==null?void 0:_.inputList)||[],g=(n=d==null?void 0:d.tag)!=null?n:{},a=(s=d==null?void 0:d.regions)!=null?s:[];const[U,P]=M([]),[T,v]=M("tag");B(()=>{if(!b&&C){v("clip");return}v("tag")},[b,C]),B(()=>(window.addEventListener("keydown",D),()=>{window.removeEventListener("keydown",D)}));const D=t=>{if(b&&C)switch(t.keyCode){case de.L:v("tag");break;case de.X:v("clip");break}if(T==="tag"){if(!K.hotkeyFilter(t))return;K.isMoveKey(t==null?void 0:t.keyCode)&&t.preventDefault();let r=t.keyCode;if(r&&(r<=57&&r>=49||r<=105&&r>=97)){r>57?r=r-97:r=r-49;const h=U.slice();f.length===1?(R(0,r),P([0,r]),setTimeout(()=>{P([])},500)):h.length===1?(R(h[0],r),P([h[0],r]),setTimeout(()=>{P([])},500)):P([r])}}},R=(t,r)=>{if(t<f.length&&f[t].subSelected&&r<f[t].subSelected.length){const h=f[t].value,m=f[t].isMulti;let c=f[t].subSelected[r].value,X=0;const W=g;for(const y in g)if(y===f[t].value){if(X++,m===!0){const A=W[y].split(";").filter(z=>z!==""),G=A.indexOf(c);G===-1?A.push(c):A.splice(G,1),c=A.join(";")}c===""?delete W[y]:W[y]=c}X===0&&Object.assign(g,{[h]:c}),x(g)}},w=t=>{delete g[t],x(g)},$=b&&C&&l.createElement(ct,{setSideTab:v,sideTab:T}),I=T==="tag"&&l.createElement(He,{labelInfoSet:b?f:[],labelSelectedList:U,setLabel:R,tagResult:g,clearResult:w,isEdit:k,withPanelTab:!1}),V=T==="clip"&&l.createElement(Je,{regions:a,updateRegion:L,useAudioClipStore:We});return p?typeof p=="function"?l.createElement("div",{className:`${Y}`},p({toggleAudioOption:$,labelSidebar:I,clipSidebar:V})):p:l.createElement("div",{className:`${Y}`},l.createElement("div",{className:`${Y}__content`},$,I,V))},mt=o=>{var n,s,p,_,d,x,L,k,b;const C=(s=(n=o.style)==null?void 0:n.sider)==null?void 0:s.width,{step:f,stepList:g,audioContext:a,sider:U,drawLayerSlot:P,imgList:T,imgIndex:v,currentData:D,config:R,stepInfo:w,checkMode:$}=o,I=K.getCurrentStepToolAndConfig(f,g),V=qe(D.result),{toolInstanceRef:t}=ze({basicInfo:V}),[r,h]=M(!0),[m,c]=M(null),[X,W]=M(0),[y,A]=M(!0);B(()=>{h(!0)},[v]),B(()=>{r===!1&&_e()},[r]),B(()=>{z()},[]),B(()=>{t.current.exportData=()=>[[m],{duration:X,valid:y}],t.current.setResult=he,t.current.clearResult=je,t.current.currentPageResult=m==null?void 0:m.regions,t.current.emit("updatePageNumber"),t.current.setSelectedRegion=G,t.current.setValid=Pe},[m,y]);const G=e=>{ae.emit("setSelectedRegion",{id:e,isLoopStatus:!0,playImmediately:!0})},z=()=>{t.current.emit=e=>{const i=t.current.fns.get(e);i&&i.forEach(u=>{u&&(u==null||u())})},t.current.fns=new Map,t.current.singleOn=(e,i)=>{t.current.fns.set(e,[i])},t.current.on=(e,i)=>{t.current.singleOn(e,i)},t.current.unbindAll=e=>{t.current.fns.delete(e)}},H=re(()=>{const e=V[`step_${w==null?void 0:w.step}`];return(e==null?void 0:e.result)||[]},[R,V,w]),{tagConfigurable:Z,textConfigurable:J=!0,clipConfigurable:ee=!1,clipAttributeConfigurable:te=!1,clipAttributeList:oe=[],clipTextConfigurable:q=!1,subAttributeList:me=[],secondaryAttributeConfigurable:pe=!1,inputList:ge=[],configList:ve=[],clipTextList:ne=Ke}=re(()=>{if(I)return K.jsonParser(I==null?void 0:I.config)},[I]),be={clipConfigurable:ee,clipAttributeConfigurable:te,clipAttributeList:oe,clipTextConfigurable:q,subAttributeList:me,secondaryAttributeConfigurable:pe,clipTextList:ne},ye=(_=(p=K.jsonParser(D.result))==null?void 0:p.duration)!=null?_:0,Ee=y?ye:0,Se=!y||r||![J,q].includes(!0)||$;let ie={};if(v!==-1&&(T==null?void 0:T.length)){const e=(d=T[v])==null?void 0:d.preResult,i=(a==null?void 0:a.isEdit)?(x=a==null?void 0:a.stepConfig)==null?void 0:x.loadPreStep:w==null?void 0:w.loadPreStep;if(e&&i){const u=K.jsonParser(e),E=(k=(L=u==null?void 0:u.config)==null?void 0:L.context)!=null?k:{};Object.keys(E).forEach(j=>{j&&E[j]&&(ie[j]={visible:!0,content:E[j],type:j})})}}const _e=()=>{(H==null?void 0:H.length)>0?c(H[0]):c({id:De(),sourceID:"",value:le(),tag:xe(),regions:[]});const e=tt(T[v].result||"[]");A(e)},le=(e=!0)=>{const i={};let u=R.configList||[];return u.length>0&&u.forEach(E=>{i[E.key]=e&&E.default||""}),i},xe=()=>$e.getDefaultResultByConfig(R.inputList||[]),Ce=({duration:e,hasError:i})=>{(a==null?void 0:a.onLoaded)&&(a==null||a.onLoaded()),h(!1),W(e)},Te=e=>{c(i=>N(S({},i),{regions:((i==null?void 0:i.regions)||[]).filter(u=>u.id!==e)}))},Q=e=>{c(i=>{var u;const E=(u=i==null?void 0:i.regions)!=null?u:[],{id:j}=e;return E.find(F=>F.id===j)?N(S({},i),{regions:E.map(F=>j===F.id?S(S({},F),e):F)}):N(S({},i),{regions:[...E,e]})})},Le=(e,i)=>{c(u=>N(S({},u),{value:N(S({},u.value),{[i]:e})}))},Re=e=>{c(i=>N(S({},i),{tag:e}))},he=e=>{c(e)},je=()=>{c(e=>N(S({},e),{value:le(),tag:{},regions:[]})),ae.emit("clearRegions")},Pe=e=>{A(e)};return l.createElement(Be,null,l.createElement(Oe,{spinning:r,wrapperClassName:"audio-tool-spinner"},l.createElement(se,{className:Ie("layout","container"),style:{height:"100%"}},o==null?void 0:o.leftSider,l.createElement(ut,{className:`${fe}__content`},l.createElement("div",{className:O.containerWrapper},l.createElement("div",{className:O.audioWrapper},Z&&l.createElement(Me,{result:m==null?void 0:m.tag,labelInfoSet:ge,hasPromptLayer:!!(a==null?void 0:a.promptLayer)}),a==null?void 0:a.promptLayer,l.createElement(we,S({context:{isEdit:a==null?void 0:a.isEdit,count:Ee,toolName:st.AudioTextTool,imgIndex:v},drawLayerSlot:P,fileData:D,onLoaded:Ce,invalid:!y,updateRegion:Q,removeRegion:Te,regions:m==null?void 0:m.regions,activeToolPanel:a==null?void 0:a.activeToolPanel,footer:o.footer,isCheck:$},be))),(J||q)&&l.createElement(dt,{preContext:ie,result:m,inputDisabled:Se,updateText:Le,updateRegion:Q,configList:ve,autofocus:!1,textConfigurable:J,clipTextConfigurable:q,clipAttributeList:oe,clipAttributeConfigurable:te,clipTextList:ne,isCheck:$}))),l.createElement(at,{className:`${fe}__side`,width:C!=null?C:240,style:(b=o.style)==null?void 0:b.sider},l.createElement(ft,{sider:U,config:R,result:m,updateTagResult:Re,updateRegion:Q,isEdit:a==null?void 0:a.isEdit,tagConfigurable:Z,clipConfigurable:ee})),l.createElement(Ae,null))))};var pt=Ue(Xe,null,null,{context:Ge})(mt);export{pt as default};
1
+ import l,{useState as M,useEffect as B,useMemo as re}from"react";import{AudioPlayer as we}from"../audioPlayer/index.js";import{getClassName as Ie}from"../../utils/dom.js";import Ae from"../predictTracking/previewResult/index.js";import{Layout as se}from"antd/es";import{Spin as Oe}from"antd";import{prefix as Ne}from"../../constant/index.js";import{cKeyCode as ke,CommonToolUtils as K,EventBus as ae,uuid as De,TagUtils as $e,cTool as Ve}from"@labelbee/lb-annotation";import O from"./index.module.scss.js";import Me from"./tagResultShow/index.js";import{AudioClipProvider as Be,DEFAULT_CLIP_TEXT_CONFIG_ITEM as Ke,useAudioClipStore as We}from"./audioContext/index.js";import Fe from"./textInput/index.js";import{connect as Ue}from"react-redux";import{a2MapStateToProps as Xe}from"../../store/annotation/map.js";import{LabelBeeContext as Ge}from"../../store/ctx.js";import{jsonParser as qe}from"../../utils/index.js";import{useCustomToolInstance as ze}from"../../hooks/annotation.js";import{sidebarCls as Y}from"../../views/MainView/sidebar/index.js";import He from"./audioSide/labelSidebar/index.js";import Je from"./audioSide/clipSidebar/index.js";import Qe from"../../assets/annotation/audio/tag.svg.js";import Ye from"../../assets/annotation/audio/tagA.svg.js";import Ze from"../../assets/annotation/audio/clip.svg.js";import et from"../../assets/annotation/audio/clipA.svg.js";import{isImageValue as tt}from"../../utils/audio.js";var nt=Object.defineProperty,ot=Object.defineProperties,it=Object.getOwnPropertyDescriptors,ue=Object.getOwnPropertySymbols,lt=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable,ce=(n,o,s)=>o in n?nt(n,o,{enumerable:!0,configurable:!0,writable:!0,value:s}):n[o]=s,E=(n,o)=>{for(var s in o||(o={}))lt.call(o,s)&&ce(n,s,o[s]);if(ue)for(var s of ue(o))rt.call(o,s)&&ce(n,s,o[s]);return n},N=(n,o)=>ot(n,it(o));const{EAudioToolName:st}=Ve,de=ke.default,{Sider:at,Content:ut}=se,fe=`${Ne}-layout`,ct=({setSideTab:n,sideTab:o})=>{const s=[{tab:"tag",commonSvg:Qe,selectedSvg:Ye},{tab:"clip",commonSvg:Ze,selectedSvg:et}];return l.createElement("div",{className:O.toggleAudioOption},s.map((p,_)=>{const{tab:d,selectedSvg:x,commonSvg:L}=p;return l.createElement("div",{key:_,className:O.option},l.createElement("img",{className:O.icon,src:o===d?x:L,onClick:()=>{o!==d&&n(d)}}))}))},dt=({result:n,inputDisabled:o,updateText:s,configList:p,autofocus:_,preContext:d,isCheck:x,clipAttributeConfigurable:L,clipTextConfigurable:k,textConfigurable:b,updateRegion:C,clipAttributeList:f,clipTextList:g})=>l.createElement("div",{className:O.textareaContainer},l.createElement("div",{className:O.textareaContent},l.createElement(Fe,{isCheck:x,result:n==null?void 0:n.value,textInputDisabled:o,textID:(n==null?void 0:n.id)||0,updateText:s,configList:p,autofocus:!o&&_,preContext:d,regions:n==null?void 0:n.regions,clipAttributeConfigurable:L,clipTextConfigurable:k,textConfigurable:b,updateRegion:C,clipAttributeList:f,clipTextList:g}))),ft=n=>{var o,s;const{sider:p,config:_,result:d,updateTagResult:x,updateRegion:L,isEdit:k,tagConfigurable:b,clipConfigurable:C}=n;let f=(_==null?void 0:_.inputList)||[],g=(o=d==null?void 0:d.tag)!=null?o:{},a=(s=d==null?void 0:d.regions)!=null?s:[];const[U,P]=M([]),[T,v]=M("tag");B(()=>{if(!b&&C){v("clip");return}v("tag")},[b,C]),B(()=>(window.addEventListener("keydown",D),()=>{window.removeEventListener("keydown",D)}));const D=t=>{if(b&&C)switch(t.keyCode){case de.L:v("tag");break;case de.X:v("clip");break}if(T==="tag"){if(!K.hotkeyFilter(t))return;K.isMoveKey(t==null?void 0:t.keyCode)&&t.preventDefault();let r=t.keyCode;if(r&&(r<=57&&r>=49||r<=105&&r>=97)){r>57?r=r-97:r=r-49;const h=U.slice();f.length===1?(R(0,r),P([0,r]),setTimeout(()=>{P([])},500)):h.length===1?(R(h[0],r),P([h[0],r]),setTimeout(()=>{P([])},500)):P([r])}}},R=(t,r)=>{if(t<f.length&&f[t].subSelected&&r<f[t].subSelected.length){const h=f[t].value,m=f[t].isMulti;let c=f[t].subSelected[r].value,X=0;const W=g;for(const S in g)if(S===f[t].value){if(X++,m===!0){const A=W[S].split(";").filter(z=>z!==""),G=A.indexOf(c);G===-1?A.push(c):A.splice(G,1),c=A.join(";")}c===""?delete W[S]:W[S]=c}X===0&&Object.assign(g,{[h]:c}),x(g)}},w=t=>{delete g[t],x(g)},$=b&&C&&l.createElement(ct,{setSideTab:v,sideTab:T}),I=T==="tag"&&l.createElement(He,{labelInfoSet:b?f:[],labelSelectedList:U,setLabel:R,tagResult:g,clearResult:w,isEdit:k,withPanelTab:!1}),V=T==="clip"&&l.createElement(Je,{regions:a,updateRegion:L,useAudioClipStore:We});return p?typeof p=="function"?l.createElement("div",{className:`${Y}`},p({toggleAudioOption:$,labelSidebar:I,clipSidebar:V})):p:l.createElement("div",{className:`${Y}`},l.createElement("div",{className:`${Y}__content`},$,I,V))},mt=n=>{var o,s,p,_,d,x,L,k,b;const C=(s=(o=n.style)==null?void 0:o.sider)==null?void 0:s.width,{step:f,stepList:g,audioContext:a,sider:U,drawLayerSlot:P,imgList:T,imgIndex:v,currentData:D,config:R,stepInfo:w,checkMode:$}=n,I=K.getCurrentStepToolAndConfig(f,g),V=qe(D.result),{toolInstanceRef:t}=ze({basicInfo:V}),[r,h]=M(!0),[m,c]=M(null),[X,W]=M(0),[S,A]=M(!0);B(()=>{h(!0)},[v]),B(()=>{r===!1&&_e()},[r]),B(()=>{z()},[]),B(()=>{t.current.exportData=()=>[[m],{duration:X,valid:S}],t.current.setResult=he,t.current.clearResult=je,t.current.currentPageResult=m==null?void 0:m.regions,t.current.emit("updatePageNumber"),t.current.setSelectedRegion=G,t.current.setValid=Pe},[m,S]);const G=e=>{ae.emit("setSelectedRegion",{id:e,isLoopStatus:!0,playImmediately:!0})},z=()=>{t.current.emit=e=>{const i=t.current.fns.get(e);i&&i.forEach(u=>{u&&(u==null||u())})},t.current.fns=new Map,t.current.singleOn=(e,i)=>{t.current.fns.set(e,[i])},t.current.on=(e,i)=>{t.current.singleOn(e,i)},t.current.unbindAll=e=>{t.current.fns.delete(e)}},H=re(()=>{const e=V[`step_${w==null?void 0:w.step}`];return(e==null?void 0:e.result)||[]},[R,V,w]),{tagConfigurable:Z,textConfigurable:J=!0,clipConfigurable:ee=!1,clipAttributeConfigurable:te=!1,clipAttributeList:ne=[],clipTextConfigurable:q=!1,subAttributeList:me=[],secondaryAttributeConfigurable:pe=!1,inputList:ge=[],configList:ve=[],clipTextList:oe=Ke}=re(()=>{if(I)return K.jsonParser(I==null?void 0:I.config)},[I]),be={clipConfigurable:ee,clipAttributeConfigurable:te,clipAttributeList:ne,clipTextConfigurable:q,subAttributeList:me,secondaryAttributeConfigurable:pe,clipTextList:oe},Se=(_=(p=K.jsonParser(D.result))==null?void 0:p.duration)!=null?_:0,ye=S?Se:0,Ee=!S||r||![J,q].includes(!0)||$;let ie={};if(v!==-1&&(T==null?void 0:T.length)){const e=(d=T[v])==null?void 0:d.preResult,i=(a==null?void 0:a.isEdit)?(x=a==null?void 0:a.stepConfig)==null?void 0:x.loadPreStep:w==null?void 0:w.loadPreStep;if(e&&i){const u=K.jsonParser(e),y=(k=(L=u==null?void 0:u.config)==null?void 0:L.context)!=null?k:{};Object.keys(y).forEach(j=>{j&&y[j]&&(ie[j]={visible:!0,content:y[j],type:j})})}}const _e=()=>{(H==null?void 0:H.length)>0?c(H[0]):c({id:De(),sourceID:"",value:le(),tag:xe(),regions:[]});const e=tt(T[v].result||"[]");A(e)},le=(e=!0)=>{const i={};let u=R.configList||[];return u.length>0&&u.forEach(y=>{i[y.key]=e&&y.default||""}),i},xe=()=>$e.getDefaultResultByConfig(R.inputList||[]),Ce=({duration:e,hasError:i})=>{(a==null?void 0:a.onLoaded)&&(a==null||a.onLoaded()),h(!1),W(e)},Te=e=>{c(i=>N(E({},i),{regions:((i==null?void 0:i.regions)||[]).filter(u=>u.id!==e)}))},Q=e=>{c(i=>{var u;const y=(u=i==null?void 0:i.regions)!=null?u:[],{id:j}=e;return y.find(F=>F.id===j)?N(E({},i),{regions:y.map(F=>j===F.id?E(E({},F),e):F)}):N(E({},i),{regions:[...y,e]})})},Le=(e,i)=>{c(u=>N(E({},u),{value:N(E({},u.value),{[i]:e})}))},Re=e=>{c(i=>N(E({},i),{tag:e}))},he=e=>{c(e)},je=()=>{c(e=>N(E({},e),{value:le(),tag:{},regions:[]})),ae.emit("clearRegions")},Pe=e=>{A(e)};return l.createElement(Be,null,l.createElement(Oe,{spinning:r,wrapperClassName:"audio-tool-spinner"},l.createElement(se,{className:Ie("layout","container"),style:{height:"100%",userSelect:"none"}},n==null?void 0:n.leftSider,l.createElement(ut,{className:`${fe}__content`},l.createElement("div",{className:O.containerWrapper},l.createElement("div",{className:O.audioWrapper},Z&&l.createElement(Me,{result:m==null?void 0:m.tag,labelInfoSet:ge,hasPromptLayer:!!(a==null?void 0:a.promptLayer)}),a==null?void 0:a.promptLayer,l.createElement(we,E({context:{isEdit:a==null?void 0:a.isEdit,count:ye,toolName:st.AudioTextTool,imgIndex:v},drawLayerSlot:P,fileData:D,onLoaded:Ce,invalid:!S,updateRegion:Q,removeRegion:Te,regions:m==null?void 0:m.regions,activeToolPanel:a==null?void 0:a.activeToolPanel,footer:n.footer,isCheck:$},be))),(J||q)&&l.createElement(dt,{preContext:ie,result:m,inputDisabled:Ee,updateText:Le,updateRegion:Q,configList:ve,autofocus:!1,textConfigurable:J,clipTextConfigurable:q,clipAttributeList:ne,clipAttributeConfigurable:te,clipTextList:oe,isCheck:$}))),l.createElement(at,{className:`${fe}__side`,width:C!=null?C:240,style:(b=n.style)==null?void 0:b.sider},l.createElement(ft,{sider:U,config:R,result:m,updateTagResult:Re,updateRegion:Q,isEdit:a==null?void 0:a.isEdit,tagConfigurable:Z,clipConfigurable:ee})),l.createElement(Ae,null))))};var pt=Ue(Xe,null,null,{context:Ge})(mt);export{pt as default};
@@ -1 +1 @@
1
- import i,{useState as b,useRef as H,useEffect as R}from"react";import{getWebPcm2WavBase64 as Qt}from"../audioAnnotate/utils/getWebPcm2Wac.js";import er,{debounce as tr,sortBy as rr}from"lodash";import{PauseOutlined as or,CaretRightOutlined as nr}from"@ant-design/icons";import{cKeyCode as ir,cTool as lr,EventBus as E,TagUtils as sr}from"@labelbee/lb-annotation";import{i18n as Ke}from"@labelbee/lb-utils";import{Button as ar}from"antd";import ur from"../invalidPage/index.js";import cr from"../imageError/index.js";import{classnames as U}from"../../utils/index.js";import dr,{EPlayerType as mr}from"../videoPlayer/components/SpeedController/index.js";import fr from"@labelbee/wavesurfer";import pr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js";import vr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js";import gr,{audioZoomInfo as Ve}from"./zoomSlider/index.js";import br from"./labelDisplayToggle/index.js";import yr from"./clipRegion/index.js";import{useAudioClipStore as _r}from"../audioAnnotate/audioContext/index.js";import{useLatest as X,useUpdate as Er,useDeepCompareEffect as Ge,useThrottleFn as hr}from"ahooks";import Sr from"./useAudioScroll/index.js";import y from"./index.module.scss.js";import{getAttributeColor as Pr,formatTime as Ye,timeFormat as Je,dispatchResizeEvent as Rr,precisionMinus as Qe,isDoubleClick as Cr,getCanMoveRange as wr}from"../../utils/audio.js";import Tr from"./progressDot/index.js";import Ar from"./clipTip/index.js";import xr from"./useSwitchHotkey/index.js";import jr from"./useAudioCombine/index.js";import Dr from"./useAudioSegment/index.js";import Lr from"./combineTip/index.js";import Mr from"./segmentTip/index.js";import Ir from"../../views/MainView/toolFooter/index.js";import{decimalReserved as Z}from"../videoPlayer/utils.js";import{I18nextProvider as kr}from"react-i18next";var Br=Object.defineProperty,Or=Object.defineProperties,Nr=Object.getOwnPropertyDescriptors,et=Object.getOwnPropertySymbols,Wr=Object.prototype.hasOwnProperty,Fr=Object.prototype.propertyIsEnumerable,tt=(f,u,d)=>u in f?Br(f,u,{enumerable:!0,configurable:!0,writable:!0,value:d}):f[u]=d,de=(f,u)=>{for(var d in u||(u={}))Wr.call(u,d)&&tt(f,d,u[d]);if(et)for(var d of et(u))Fr.call(u,d)&&tt(f,d,u[d]);return f},rt=(f,u)=>Or(f,Nr(u));const{EToolName:ot}=lr,q=ir.default,nt=.1,it=i.createContext({count:0,isEdit:!1,toolName:ot.Empty,imgIndex:0}),lt=({fileData:f={},onLoaded:u,context:d,invalid:st,height:at,hideError:ut,onError:me,updateRegion:x,removeRegion:W,regions:j=[],activeToolPanel:ct,clipConfigurable:dt,clipTextConfigurable:fe,clipAttributeList:mt,clipAttributeConfigurable:pe,secondaryAttributeConfigurable:ft,subAttributeList:pt,isCheck:h,hoverRegionId:K,footer:vt,drawLayerSlot:ve,clipTextList:gt,lang:ge})=>{var be,ye;const{url:F,path:_e}=f,[V,G]=b(!1),[Ee,he]=b(!1),[C,bt]=b(0),[yt,Se]=b(!1),[z,Pe]=b(0),n=H(null),w=H(null),Re=H(C),Y=e=>{Re.current=e,bt(e)},[Ce,_t]=b(0),[$,Et]=b(1),J=H(null),[we,ht]=b({}),{audioClipState:Q,setAudioClipState:M}=_r(),[ee,te]=b(!1),c=X(Q),Te=X(we);X(V);const D=X(j),Ae=Er(),[xe,St]=b([]),[je,Pt]=b({}),Rt=tr(()=>{E.emit("audioZoom")},500),De=e=>{e<Ve.min||e>Ve.max||(Et(e),Rr(),Rt())};Sr({container:J.current,target:document.querySelector(`[data-id=${(ye=(be=c.current)==null?void 0:be.selectedRegion)==null?void 0:ye.id}]`),clipping:ee,zoom:$,zoomHandler:De});const I=()=>{let e=D.current;const{attributeLockList:r}=c.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),oe(),e.forEach(t=>{var o;(o=n.current)==null||o.addRegion(rt(de({},t),{drag:!h,resize:!h,color:"rgba(0, 0, 0, 0)"}))}),Ae()},p=e=>{var r,t,o,l,a,v,g;const{id:s,loop:m=!0,playImmediately:_=!1,isLoopStatus:O}=e,L=!1;if(s){const A=(o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{};Object.entries(A).forEach(([,P])=>{const{id:N}=P;s===N?P.select():P.cancelSelect()}),M({selectedRegion:{id:s,loop:L},selectedAttribute:(v=(a=(l=D.current)==null?void 0:l.find(P=>P.id===s))==null?void 0:a.attribute)!=null?v:""}),_&&((g=k(s))==null||g.play())}else M({selectedRegion:{}})},{combineInstance:Ct}=jr({waveRef:n,sortByStartRegions:xe,regionMap:je,updateRegion:x,removeRegion:W,generateRegions:I,setSelectedRegion:p}),{segmentInstance:wt,onRegionMouseMove:Tt,segmentTimeTip:At}=Dr({waveRef:n,regionMap:je,updateRegion:x,removeRegion:W,generateRegions:I,setSelectedRegion:p}),Le={clipTextConfigurable:fe,clipAttributeList:mt,clipAttributeConfigurable:pe,clipConfigurable:dt,secondaryAttributeConfigurable:ft,subAttributeList:pt,clipTextList:gt};R(()=>{var e;ge&&((e=Ke)==null||e.changeLanguage(ge))},[]),R(()=>{M({selectedAttribute:""})},[pe]),R(()=>{re()},[Q.selectedAttribute]),R(()=>{I()},[Q.attributeLockList]),Ge(()=>{M(Le),setTimeout(()=>{Me()})},[Le]),Ge(()=>{St(rr(j,["start"])),Pt(j.reduce((e,r)=>{const{id:t}=r;return rt(de({},e),{[t]:r})},{})),h&&I()},[j]),R(()=>{p(K?{id:K,loop:!1,playImmediately:!0}:{})},[K]);const Me=()=>{var e,r;c.current.clipConfigurable?(!h&&n.current&&((e=n.current)==null||e.enableDragSelection({slop:5})),I()):((r=n.current)==null||r.disableDragSelection(),oe()),re()},re=()=>{var e,r,t,o,l;let a="";c.current.clipConfigurable?a=Pr(c.current.selectedAttribute,(e=c.current.clipAttributeList)!=null?e:[]):a="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 ${a}`}))},k=e=>{var r,t,o;return((o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{})[e]},Ie=()=>{var e,r;if(F){const t=((r=(e=_e==null?void 0:_e.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";Se(!1),t?Qt(F).then(o=>{ke(o)}):ke(F)}},ke=e=>{var r;e&&(he(!0),Y(0),Pe(0),(r=n==null?void 0:n.current)==null||r.load(e))},oe=()=>{var e;(e=n.current)==null||e.clearRegions()},ne=e=>{const r=k(e);r&&(te(!1),r==null||r.remove(),W==null||W(e),p({}))},{run:Be}=hr(p,{wait:500});xr({sortByStartRegions:xe,setSelectedRegion:p});const xt=e=>{const{start:r,end:t}=Te.current;return(r||t)&&e.update(Te.current),e},jt=({action:e,id:r,eventDownTime:t})=>{var o,l;if(!c.current.clipConfigurable)return;r&&p({id:r});const a=k((r!=null?r:(o=c.current.selectedRegion)==null?void 0:o.id)||""),v=[];(e==="create"?D.current:(l=D.current)==null?void 0:l.filter(m=>m.id!==a.id)).forEach(m=>{const{start:_,end:O,attribute:L}=m;L===c.current.selectedAttribute&&[_,O].forEach(A=>{v.includes(A)||v.push(A)})});const s=wr(v.sort((m,_)=>m-_),t);n.current.range=s},Dt=e=>{re(),setTimeout(()=>{te(!1)});const r=xt(e),{id:t,start:o,end:l}=r;p({id:t,playImmediately:!0});const a={id:t,start:Z(o,3),end:Z(l,3)};x==null||x(a),Ae()},Lt=()=>{const e=fr.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:at||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[pr.create({regions:j,dragSelection:{slop:5},canMove:!1}),vr.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;Y(((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;Pe(o),r(),u==null||u({duration:Math.round(o)}),he(!1),B(),E.on("setCurrentTimeByPosition",le),E.on("clearRegions",oe),E.on("removeRegionById",ne),E.on("setSelectedRegion",Be),e.on("regions-eventDown",jt),Me()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{G(!0)}),e.on("pause",()=>{G(!1)}),e.on("finish",()=>{G(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{Se(!0),u==null||u({hasError:!0}),me==null||me()}),e.on("region-created",t=>{var o;const{id:l,start:a,end:v}=t;if(D.current.find(s=>s.id===l))return;const g={id:l,start:Z(a,3),end:Z(v,3),attribute:c.current.selectedAttribute,text:""};if(c.current.secondaryAttributeConfigurable){const s=sr.getDefaultResultByConfig((o=c.current.subAttributeList)!=null?o:[]);g.subAttribute=s!=null?s:{}}fe&&c.current.clipTextList.forEach((m,_)=>{_===0?Object.assign(g,{text:m==null?void 0:m.default}):Object.assign(g,{[m.key]:m==null?void 0:m.default})}),x==null||x(g)}),e.on("region-updated",(t,o)=>{var l,a,v,g,s,m,_,O,L,A;const P=o==null?void 0:o.action;M({combined:!1,segment:!1}),P==="resize"&&((a=(l=n==null?void 0:n.current)==null?void 0:l.cursor)==null||a.setStyle({borderStyle:"solid"})),P==="drag"&&((g=(v=n==null?void 0:n.current)==null?void 0:v.cursor)==null||g.setStyle({borderColor:"transparent"}));const N={},se=[],ae={},Ut=(s=D.current)==null?void 0:s.filter(S=>S.id!==t.id),Xt=(O=(_=(m=n.current)==null?void 0:m.regions)==null?void 0:_.list)!=null?O:{};Ut.forEach(S=>{var Xe,Ze;const{element:ue}=(Xe=Xt[S.id])!=null?Xe:{},{start:Kt,end:Vt}=S;if(ue){const{x:qe,width:Gt}=((Ze=ue.getBoundingClientRect)==null?void 0:Ze.call(ue))||{},Yt=qe+Gt;[qe,Yt].forEach((ce,Jt)=>{se.includes(ce)||(se.push(ce),ae[ce]=Jt===0?Kt:Vt)})}});const{x:Ue,width:Zt}=((A=(L=t.element).getBoundingClientRect)==null?void 0:A.call(L))||{},qt=Ue+Zt;se.forEach(S=>{Math.abs(Qe(S,Ue))<5&&(N.start=ae[S]),Math.abs(Qe(S,qt))<5&&(N.end=ae[S])}),ht(N),Be({id:t.id}),te(!0)}),e.on("region-update-end",t=>{Dt(t)}),e.on("region-contextmenu",(t,o)=>{if(!h){if(o.preventDefault(),o.stopPropagation(),Cr(o)){ne(t.id);return}p({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,o,l)=>{if(!h){if(o.preventDefault(),o.stopPropagation(),c.current.combined){Ct(t);return}if(c.current.segment){wt(t,l);return}p({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",Tt),n.current=e},Mt=V?i.createElement(or,null):i.createElement(nr,null),Oe=e=>e?`${parseFloat((e/z*100).toFixed(4))}%`:"0%",Ne=Oe(C),It=Oe(Ce),T=()=>{if(!Ee)return n==null?void 0:n.current},kt=()=>{var e;(e=T())==null||e.skipForward(nt)},Bt=()=>{var e;(e=T())==null||e.skipBackward(nt)},B=()=>{var e;(e=T())==null||e.playPause(),p({})},We=e=>{var r;switch(e.keyCode){case q.Right:kt();break;case q.Left:Bt();break;case q.Space:e.preventDefault(),B();break;case q.Delete:if(!h){const{id:t}=((r=c.current)==null?void 0:r.selectedRegion)||{};t&&ne(t)}break}},Ot=e=>{le(e)},Fe=er.throttle(Ot,50);let ie=!1;const ze=()=>{ie&&(B(),ie=!1),document.removeEventListener("mousemove",Fe),document.removeEventListener("mouseup",ze)},Nt=e=>{le(e),V&&(ie=!0,B()),document.addEventListener("mousemove",Fe),document.addEventListener("mouseup",ze)},Wt=()=>{Ie()};R(()=>(Lt(),()=>{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 Ft=e=>{var r,t,o;(r=T())==null||r.playPause(),(t=T())==null||t.setPlaybackRate(e),(o=T())==null||o.playPause()};R(()=>(document.addEventListener("keydown",We),()=>{document.removeEventListener("keydown",We)})),R(()=>{p({}),Ie()},[F]);const $e=e=>{var r,t,o,l;if((n==null?void 0:n.current)&&(w==null?void 0:w.current)){const a=(t=(r=n==null?void 0:n.current)==null?void 0:r.getDuration())!=null?t:0,v=(o=w==null?void 0:w.current)==null?void 0:o.getBoundingClientRect();let s=(e.clientX-v.left)/(((l=w==null?void 0:w.current)==null?void 0:l.clientWidth)||0)*a;return s>a&&(s=a),s}return 0},le=e=>{var r;const t=$e(e);(r=n==null?void 0:n.current)==null||r.skip(t-Re.current),Y(t)},zt=e=>{_t($e(e))},$t=z?Math.max(z-C,0):0,Ht=(d==null?void 0:d.toolName)!==ot.Empty&&(d==null?void 0:d.isEdit)!==!0&&(ct==="remark"||h),He=i.createElement("div",{className:y.audioPlayer},yt&&!ut&&i.createElement(cr,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:Wt,backgroundColor:"#ffffffbb"}),i.createElement(Ar,{getRegionInstanceById:k,clipping:ee}),i.createElement(Lr,{container:J.current}),i.createElement(Mr,{segmentTimeTip:At}),i.createElement("div",{className:y.waveformContainer,ref:J},i.createElement("div",{id:"waveform",style:{width:`${$*100}%`},className:U({[y.waveform]:!0,"bee-audio-combined":c.current.combined,"bee-audio-clip":c.current.clipConfigurable})},st&&i.createElement(ur,{isAudio:!0}),i.createElement("div",{ref:w,className:y.progress,onMouseDown:Nt,onMouseMove:zt},i.createElement("div",{className:U({[y.radioTooltip]:!0}),style:{left:Ne}},Ye(C)),i.createElement("div",{className:U({[y.radioTooltip]:!0,[y.mouseTooltip]:!0}),style:{left:It}},Ye(Ce)),i.createElement(Tr,{playPercentage:Ne})),Ht&&(ve==null?void 0:ve({currentTime:C,remainingTime:$t,audioPlayer:T()})))),i.createElement("div",{className:y.controlBar},i.createElement(ar,{type:"link",icon:Mt,onClick:()=>{B()},className:U({[y.playButton]:!0,[y.playButtonDisabled]:Ee})}),i.createElement("span",{className:y.time},`${Je(C,"ss.SSS")} / -${Je(z-C,"ss.SSS")}`),i.createElement(dr,{playerType:mr.Audio,onChange:e=>{Ft(e)}}),i.createElement(gr,{onChange:e=>{De(e)},zoom:$}),i.createElement(br,{EventBus:E})));return d?i.createElement(it.Provider,{value:d},He,j.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?i.createElement(yr,{el:t,key:r,region:e,edgeAdsorption:we,clipping:ee,zoom:$,instance:k(r),isCheck:h}):null}),i.createElement(Ir,{footer:vt})):He},zr=f=>i.createElement(kr,{i18n:Ke},i.createElement(lt,de({},f)));export{lt as AudioPlayer,it as AudioPlayerContext,zr as WrapAudioPlayer};
1
+ import i,{useState as g,useRef as U,useMemo as ar,useEffect as P}from"react";import{getWebPcm2WavBase64 as ur}from"../audioAnnotate/utils/getWebPcm2Wac.js";import cr,{debounce as dr,sortBy as mr}from"lodash";import{PauseOutlined as fr,CaretRightOutlined as pr}from"@ant-design/icons";import{cKeyCode as vr,cTool as gr,EventBus as E,TagUtils as br}from"@labelbee/lb-annotation";import{i18n as Je}from"@labelbee/lb-utils";import{Button as yr}from"antd";import _r from"../invalidPage/index.js";import Er from"../imageError/index.js";import{classnames as V}from"../../utils/index.js";import Sr,{EPlayerType as hr}from"../videoPlayer/components/SpeedController/index.js";import Rr from"@labelbee/wavesurfer";import Pr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js";import Cr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js";import Tr,{audioZoomInfo as de}from"./zoomSlider/index.js";import wr from"./labelDisplayToggle/index.js";import Ar from"./clipRegion/index.js";import{useAudioClipStore as jr}from"../audioAnnotate/audioContext/index.js";import{useLatest as X,useUpdate as xr,useDeepCompareEffect as Qe,useThrottleFn as et}from"ahooks";import Dr from"./useAudioScroll/index.js";import y from"./index.module.scss.js";import{getAttributeColor as Lr,formatTime as tt,timeFormat as rt,dispatchResizeEvent as Ir,precisionMinus as nt,isDoubleClick as Mr,getCanMoveRange as kr}from"../../utils/audio.js";import Br from"./progressDot/index.js";import Or from"./clipTip/index.js";import Wr from"./useSwitchHotkey/index.js";import Nr from"./useAudioCombine/index.js";import zr from"./useAudioSegment/index.js";import Fr from"./combineTip/index.js";import $r from"./segmentTip/index.js";import Hr from"../../views/MainView/toolFooter/index.js";import{decimalReserved as Z}from"../videoPlayer/utils.js";import{I18nextProvider as Ur}from"react-i18next";import Vr from"../../hooks/useSize.js";var Xr=Object.defineProperty,Zr=Object.defineProperties,qr=Object.getOwnPropertyDescriptors,ot=Object.getOwnPropertySymbols,Kr=Object.prototype.hasOwnProperty,Gr=Object.prototype.propertyIsEnumerable,it=(f,u,d)=>u in f?Xr(f,u,{enumerable:!0,configurable:!0,writable:!0,value:d}):f[u]=d,me=(f,u)=>{for(var d in u||(u={}))Kr.call(u,d)&&it(f,d,u[d]);if(ot)for(var d of ot(u))Gr.call(u,d)&&it(f,d,u[d]);return f},lt=(f,u)=>Zr(f,qr(u));const{EToolName:st}=gr,q=vr.default,at=.1,ut=i.createContext({count:0,isEdit:!1,toolName:st.Empty,imgIndex:0}),ct=({fileData:f={},onLoaded:u,context:d,invalid:dt,height:mt,hideError:ft,onError:fe,updateRegion:L,removeRegion:F,regions:A=[],activeToolPanel:pt,clipConfigurable:vt,clipTextConfigurable:pe,clipAttributeList:gt,clipAttributeConfigurable:ve,secondaryAttributeConfigurable:bt,subAttributeList:yt,isCheck:S,hoverRegionId:K,footer:_t,drawLayerSlot:ge,clipTextList:Et,lang:be})=>{var ye,_e;const{url:$,path:Ee}=f,[G,Y]=g(!1),[Se,he]=g(!1),[j,St]=g(0),[ht,Re]=g(!1),[C,Pe]=g(0),o=U(null),x=U(null),Ce=U(j),J=e=>{Ce.current=e,St(e)},[Te,Rt]=g(0),[H,Pt]=g(de.defaultValue),h=U(null),[we,Ct]=g({}),{audioClipState:Q,setAudioClipState:k}=jr(),[ee,te]=g(!1),c=X(Q),Ae=X(we);X(G);const I=X(A),je=xr(),[xe,Tt]=g([]),[De,wt]=g({}),[At,Le]=g(""),[Ie,jt]=g({start:0,end:0}),xt=Vr(h),Dt=ar(()=>A.filter(e=>{const{start:t,end:r}=Ie;return e.start>=t&&e.start<=r||e.end>=t&&e.end<=r||e.id===At}),[A,Ie]),Lt=dr(()=>{E.emit("audioZoom")},500),Me=e=>{e<de.min||e>de.max||(Pt(e),Ir(),Lt())};Dr({container:h.current,target:document.querySelector(`[data-id=${(_e=(ye=c.current)==null?void 0:ye.selectedRegion)==null?void 0:_e.id}]`),clipping:ee,zoom:H,zoomHandler:Me});const B=()=>{let e=I.current;const{attributeLockList:t}=c.current;t.length&&(e=e.filter(r=>t.includes(r.attribute))),ne(),e.forEach(r=>{var n;(n=o.current)==null||n.addRegion(lt(me({},r),{drag:!S,resize:!S,color:"rgba(0, 0, 0, 0)"}))}),je()},p=e=>{var t,r,n,l,a,v,b;const{id:s,loop:m=!0,playImmediately:_=!1,isLoopStatus:N}=e,M=!1;if(s){const D=(n=(r=(t=o.current)==null?void 0:t.regions)==null?void 0:r.list)!=null?n:{};Object.entries(D).forEach(([,w])=>{const{id:z}=w;s===z?w.select():w.cancelSelect()}),k({selectedRegion:{id:s,loop:M},selectedAttribute:(v=(a=(l=I.current)==null?void 0:l.find(w=>w.id===s))==null?void 0:a.attribute)!=null?v:""}),_&&((b=O(s))==null||b.play())}else k({selectedRegion:{}})},{combineInstance:It}=Nr({waveRef:o,sortByStartRegions:xe,regionMap:De,updateRegion:L,removeRegion:F,generateRegions:B,setSelectedRegion:p}),{segmentInstance:Mt,onRegionMouseMove:kt,segmentTimeTip:Bt}=zr({waveRef:o,regionMap:De,updateRegion:L,removeRegion:F,generateRegions:B,setSelectedRegion:p}),ke={clipTextConfigurable:pe,clipAttributeList:gt,clipAttributeConfigurable:ve,clipConfigurable:vt,secondaryAttributeConfigurable:bt,subAttributeList:yt,clipTextList:Et};P(()=>{var e;be&&((e=Je)==null||e.changeLanguage(be))},[]),P(()=>{k({selectedAttribute:""})},[ve]),P(()=>{re()},[Q.selectedAttribute]),P(()=>{B()},[Q.attributeLockList]),Qe(()=>{k(ke),setTimeout(()=>{Be()})},[ke]),Qe(()=>{Tt(mr(A,["start"])),wt(A.reduce((e,t)=>{const{id:r}=t;return lt(me({},e),{[r]:t})},{})),S&&B()},[A]),P(()=>{p(K?{id:K,loop:!1,playImmediately:!0}:{})},[K]);const Be=()=>{var e,t;c.current.clipConfigurable?(!S&&o.current&&((e=o.current)==null||e.enableDragSelection({slop:5})),B()):((t=o.current)==null||t.disableDragSelection(),ne()),re()},re=()=>{var e,t,r,n,l;let a="";c.current.clipConfigurable?a=Lr(c.current.selectedAttribute,(e=c.current.clipAttributeList)!=null?e:[]):a="transparent",((r=(t=o==null?void 0:o.current)==null?void 0:t.cursor)==null?void 0:r.cursor)&&((l=(n=o==null?void 0:o.current)==null?void 0:n.cursor)==null||l.setStyle({border:`2px dashed ${a}`}))},O=e=>{var t,r,n;return((n=(r=(t=o.current)==null?void 0:t.regions)==null?void 0:r.list)!=null?n:{})[e]},Oe=()=>{var e,t;if($){const r=((t=(e=Ee==null?void 0:Ee.split("."))==null?void 0:e.pop())==null?void 0:t.toLowerCase())==="pcm";Re(!1),r?ur($).then(n=>{We(n)}):We($)}},We=e=>{var t;e&&(he(!0),J(0),Pe(0),(t=o==null?void 0:o.current)==null||t.load(e))},ne=()=>{var e;(e=o.current)==null||e.clearRegions()},oe=e=>{const t=O(e);t&&(te(!1),t==null||t.remove(),F==null||F(e),p({}))},{run:Ne}=et(p,{wait:100});Wr({sortByStartRegions:xe,setSelectedRegion:p});const Ot=e=>{const{start:t,end:r}=Ae.current;return(t||r)&&e.update(Ae.current),e},Wt=({action:e,id:t,eventDownTime:r})=>{var n,l;if(!c.current.clipConfigurable)return;t&&p({id:t});const a=O((t!=null?t:(n=c.current.selectedRegion)==null?void 0:n.id)||""),v=[];(e==="create"?I.current:(l=I.current)==null?void 0:l.filter(m=>m.id!==a.id)).forEach(m=>{const{start:_,end:N,attribute:M}=m;M===c.current.selectedAttribute&&[_,N].forEach(D=>{v.includes(D)||v.push(D)})});const s=kr(v.sort((m,_)=>m-_),r);o.current.range=s},Nt=e=>{re(),setTimeout(()=>{te(!1)});const t=Ot(e),{id:r,start:n,end:l}=t;p({id:r,playImmediately:!0});const a={id:r,start:Z(n,3),end:Z(l,3)};L==null||L(a),je()},zt=()=>{const e=Rr.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:mt||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[Pr.create({regions:A,dragSelection:{slop:5},canMove:!1}),Cr.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),t=()=>{var r;J(((r=o==null?void 0:o.current)==null?void 0:r.getCurrentTime())||0)};e.on("ready",()=>{var r;const n=((r=o==null?void 0:o.current)==null?void 0:r.getDuration())||0;Pe(n),t(),u==null||u({duration:Math.round(n)}),he(!1),W(),E.on("setCurrentTimeByPosition",le),E.on("clearRegions",ne),E.on("removeRegionById",oe),E.on("setSelectedRegion",Ne),e.on("regions-eventDown",Wt),Be()}),e.on("audioprocess",()=>{t()}),e.on("play",()=>{Y(!0)}),e.on("pause",()=>{Y(!1)}),e.on("finish",()=>{Y(!1)}),e.on("seek",()=>{t()}),e.on("error",()=>{Re(!0),u==null||u({hasError:!0}),fe==null||fe()}),e.on("region-created",r=>{var n;const{id:l,start:a,end:v}=r;if(I.current.find(s=>s.id===l))return;Le(l);const b={id:l,start:Z(a,3),end:Z(v,3),attribute:c.current.selectedAttribute,text:""};if(c.current.secondaryAttributeConfigurable){const s=br.getDefaultResultByConfig((n=c.current.subAttributeList)!=null?n:[]);b.subAttribute=s!=null?s:{}}pe&&c.current.clipTextList.forEach((m,_)=>{_===0?Object.assign(b,{text:m==null?void 0:m.default}):Object.assign(b,{[m.key]:m==null?void 0:m.default})}),L==null||L(b)}),e.on("region-updated",(r,n)=>{var l,a,v,b,s,m,_,N,M,D;const w=n==null?void 0:n.action;k({combined:!1,segment:!1}),w==="resize"&&((a=(l=o==null?void 0:o.current)==null?void 0:l.cursor)==null||a.setStyle({borderStyle:"solid"})),w==="drag"&&((b=(v=o==null?void 0:o.current)==null?void 0:v.cursor)==null||b.setStyle({borderColor:"transparent"}));const z={},se=[],ae={},Qt=(s=I.current)==null?void 0:s.filter(R=>R.id!==r.id),er=(N=(_=(m=o.current)==null?void 0:m.regions)==null?void 0:_.list)!=null?N:{};Qt.forEach(R=>{var Ke,Ge;const{element:ue}=(Ke=er[R.id])!=null?Ke:{},{start:nr,end:or}=R;if(ue){const{x:Ye,width:ir}=((Ge=ue.getBoundingClientRect)==null?void 0:Ge.call(ue))||{},lr=Ye+ir;[Ye,lr].forEach((ce,sr)=>{se.includes(ce)||(se.push(ce),ae[ce]=sr===0?nr:or)})}});const{x:qe,width:tr}=((D=(M=r.element).getBoundingClientRect)==null?void 0:D.call(M))||{},rr=qe+tr;se.forEach(R=>{Math.abs(nt(R,qe))<5&&(z.start=ae[R]),Math.abs(nt(R,rr))<5&&(z.end=ae[R])}),Ct(z),Ne({id:r.id}),te(!0)}),e.on("region-update-end",r=>{Nt(r),Le("")}),e.on("region-contextmenu",(r,n)=>{if(!S){if(n.preventDefault(),n.stopPropagation(),Mr(n)){oe(r.id);return}p({id:r.id,playImmediately:!0})}}),e.on("region-click",(r,n,l)=>{if(!S){if(n.preventDefault(),n.stopPropagation(),c.current.combined){It(r);return}if(c.current.segment){Mt(r,l);return}p({id:r.id,playImmediately:!0})}}),e.on("region-mousemove",kt),o.current=e},Ft=G?i.createElement(fr,null):i.createElement(pr,null),ze=e=>e?`${parseFloat((e/C*100).toFixed(4))}%`:"0%",Fe=ze(j),$t=ze(Te),T=()=>{if(!Se)return o==null?void 0:o.current},Ht=()=>{var e;(e=T())==null||e.skipForward(at)},Ut=()=>{var e;(e=T())==null||e.skipBackward(at)},W=()=>{var e;(e=T())==null||e.playPause(),p({})},$e=e=>{var t;switch(e.keyCode){case q.Right:Ht();break;case q.Left:Ut();break;case q.Space:e.preventDefault(),W();break;case q.Delete:if(!S){const{id:r}=((t=c.current)==null?void 0:t.selectedRegion)||{};r&&oe(r)}break}},Vt=e=>{le(e)},He=cr.throttle(Vt,50);let ie=!1;const Ue=()=>{ie&&(W(),ie=!1),document.removeEventListener("mousemove",He),document.removeEventListener("mouseup",Ue)},Xt=e=>{le(e),G&&(ie=!0,W()),document.addEventListener("mousemove",He),document.addEventListener("mouseup",Ue)},Zt=()=>{Oe()};P(()=>(zt(),()=>{var e;(e=o==null?void 0:o.current)==null||e.destroy(),o.current=null,E.unbindAll("setCurrentTimeByPosition"),E.unbindAll("clearRegions"),E.unbindAll("removeRegionById"),E.unbindAll("setSelectedRegion")}),[]);const qt=e=>{var t,r,n;(t=T())==null||t.playPause(),(r=T())==null||r.setPlaybackRate(e),(n=T())==null||n.playPause()};P(()=>(document.addEventListener("keydown",$e),()=>{document.removeEventListener("keydown",$e)})),P(()=>{p({}),Oe()},[$]),P(()=>{Ve()},[xt,C]);const Kt=()=>{if(h.current&&C){const e=h.current.scrollLeft,t=h.current.clientWidth,r=e/h.current.scrollWidth*C,n=(e+t)/h.current.scrollWidth*C;jt({start:r,end:n})}},{run:Ve}=et(Kt,{wait:300}),Xe=e=>{var t,r,n,l;if((o==null?void 0:o.current)&&(x==null?void 0:x.current)){const a=(r=(t=o==null?void 0:o.current)==null?void 0:t.getDuration())!=null?r:0,v=(n=x==null?void 0:x.current)==null?void 0:n.getBoundingClientRect();let s=(e.clientX-v.left)/(((l=x==null?void 0:x.current)==null?void 0:l.clientWidth)||0)*a;return s>a&&(s=a),s}return 0},le=e=>{var t;const r=Xe(e);(t=o==null?void 0:o.current)==null||t.skip(r-Ce.current),J(r)},Gt=e=>{Rt(Xe(e))},Yt=C?Math.max(C-j,0):0,Jt=(d==null?void 0:d.toolName)!==st.Empty&&(d==null?void 0:d.isEdit)!==!0&&(pt==="remark"||S),Ze=i.createElement("div",{className:y.audioPlayer},ht&&!ft&&i.createElement(Er,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:Zt,backgroundColor:"#ffffffbb"}),i.createElement(Or,{getRegionInstanceById:O,clipping:ee}),i.createElement(Fr,{container:h.current}),i.createElement($r,{segmentTimeTip:Bt}),i.createElement("div",{className:y.waveformContainer,ref:h,onScroll:()=>Ve()},i.createElement("div",{id:"waveform",style:{width:`${H*100}%`},className:V({[y.waveform]:!0,"bee-audio-combined":c.current.combined,"bee-audio-clip":c.current.clipConfigurable})},dt&&i.createElement(_r,{isAudio:!0}),i.createElement("div",{ref:x,className:y.progress,onMouseDown:Xt,onMouseMove:Gt},i.createElement("div",{className:V({[y.radioTooltip]:!0}),style:{left:Fe}},tt(j)),i.createElement("div",{className:V({[y.radioTooltip]:!0,[y.mouseTooltip]:!0}),style:{left:$t}},tt(Te)),i.createElement(Br,{playPercentage:Fe})),Jt&&(ge==null?void 0:ge({currentTime:j,remainingTime:Yt,audioPlayer:T()})))),i.createElement("div",{className:y.controlBar},i.createElement(yr,{type:"link",icon:Ft,onClick:()=>{W()},className:V({[y.playButton]:!0,[y.playButtonDisabled]:Se})}),i.createElement("span",{className:y.time},`${rt(j,"ss.SSS")} / -${rt(C-j,"ss.SSS")}`),i.createElement(Sr,{playerType:hr.Audio,onChange:e=>{qt(e)}}),i.createElement(Tr,{onChange:e=>{var t;(t=T())==null||t.pause(),Me(e)},zoom:H}),i.createElement(wr,{EventBus:E})));return d?i.createElement(ut.Provider,{value:d},Ze,Dt.map(e=>{const{id:t}=e,r=document.querySelector(`[data-id=${t}]`);return r?i.createElement(Ar,{el:r,key:t,region:e,edgeAdsorption:we,clipping:ee,zoom:H,instance:O(t),isCheck:S}):null}),i.createElement(Hr,{footer:_t})):Ze},Yr=f=>i.createElement(Ur,{i18n:Je},i.createElement(ct,me({},f)));export{ct as AudioPlayer,ut as AudioPlayerContext,Yr as WrapAudioPlayer};
@@ -1 +1 @@
1
- import t,{useEffect as p}from"react";import{ZoomOutOutlined as y,ZoomInOutlined as E}from"@ant-design/icons";import{Slider as k}from"antd";import{precisionAdd as v,precisionMinus as x}from"../../../utils/audio.js";import{cKeyCode as C}from"@labelbee/lb-annotation";import{useLatest as h}from"ahooks";import Z from"./index.module.scss.js";import{useTranslation as b}from"react-i18next";const l=C.default,o={min:1,max:150,ratio:1},g=d=>{const{onChange:u,zoom:r}=d,{t:f}=b(),i=h(r),n=e=>{u(e)},a={fontSize:14,margin:"0 8px",cursor:"pointer"},s=()=>{const e=v(i.current,o.ratio);n(e)},c=()=>{const e=x(i.current,o.ratio);n(e)},m=e=>{switch(e.keyCode){case l.I:e.ctrlKey&&s();break;case l.O:e.ctrlKey&&(e.preventDefault(),c());break}};return p(()=>(document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}),[]),t.createElement("div",{className:Z.sliderContainer},t.createElement("div",null,f("Scale")),t.createElement(y,{style:a,onClick:c}),t.createElement("div",{style:{width:120}},t.createElement(k,{min:o.min,max:o.max,step:o.ratio,onChange:n,value:r})),t.createElement(E,{style:a,onClick:s}))};export{o as audioZoomInfo,g as default};
1
+ import t,{useEffect as p}from"react";import{ZoomOutOutlined as y,ZoomInOutlined as E}from"@ant-design/icons";import{Slider as k}from"antd";import{precisionAdd as v,precisionMinus as x}from"../../../utils/audio.js";import{cKeyCode as C}from"@labelbee/lb-annotation";import{useLatest as h}from"ahooks";import Z from"./index.module.scss.js";import{useTranslation as b}from"react-i18next";const l=C.default,o={min:1,max:150,ratio:1,defaultValue:30},g=d=>{const{onChange:u,zoom:r}=d,{t:f}=b(),i=h(r),n=e=>{u(e)},a={fontSize:14,margin:"0 8px",cursor:"pointer"},s=()=>{const e=v(i.current,o.ratio);n(e)},c=()=>{const e=x(i.current,o.ratio);n(e)},m=e=>{switch(e.keyCode){case l.I:e.ctrlKey&&s();break;case l.O:e.ctrlKey&&(e.preventDefault(),c());break}};return p(()=>(document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}),[]),t.createElement("div",{className:Z.sliderContainer},t.createElement("div",null,f("Scale")),t.createElement(y,{style:a,onClick:c}),t.createElement("div",{style:{width:120}},t.createElement(k,{min:o.min,max:o.max,step:o.ratio,onChange:n,value:r})),t.createElement(E,{style:a,onClick:s}))};export{o as audioZoomInfo,g as default};
package/es/index.css CHANGED
@@ -696,6 +696,7 @@
696
696
  }
697
697
  .index-module_waveformContainer__rVhq9::-webkit-scrollbar {
698
698
  width: 8px;
699
+ height: 10px;
699
700
  }
700
701
  .index-module_waveformContainer__rVhq9::-webkit-scrollbar-track {
701
702
  background: #555;
@@ -788,6 +789,7 @@
788
789
  text-align: right;
789
790
  background: rgb(102, 111, 255);
790
791
  opacity: 0.6;
792
+ margin-top: 10px;
791
793
  }
792
794
  .index-module_textInputContainer__ES6X3 {
793
795
  height: 100%;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@labelbee/lb-components",
3
- "version": "1.23.0-alpha.95",
3
+ "version": "1.23.0-alpha.97",
4
4
  "description": "Provide a complete library of annotation components",
5
5
  "main": "./dist/index.js",
6
6
  "es": "./es/index.js",