@labelbee/lb-components 1.23.0-alpha.25 → 1.23.0-alpha.27

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 _=require("lodash");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var ___default=_interopDefaultLegacy(_);class DataTransform{}DataTransform.getClipTextByConfig=(e,f,s=!1)=>{const t=___default.default.cloneDeep(e);return f.forEach((a,n)=>{n===0?Object.assign(t,{text:s?"":e[a.key]}):Object.assign(t,{[a.key]:s?"":e[a.key]})}),t},module.exports=DataTransform;
1
+ "use strict";var _=require("lodash");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var ___default=_interopDefaultLegacy(_);class DataTransform{}DataTransform.getClipTextByConfig=(e,s,l=!1)=>{const a=___default.default.cloneDeep(e);return s.forEach((t,f)=>{var n;const u=(n=t==null?void 0:t.default)!=null?n:"";f===0?Object.assign(a,{text:l?u:e[t.key]}):Object.assign(a,{[t.key]:l?u:e[t.key]})}),a},module.exports=DataTransform;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),getWebPcm2Wac=require("../audioAnnotate/utils/getWebPcm2Wac.js"),_=require("lodash"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),index$a=require("../invalidPage/index.js"),index$5=require("../imageError/index.js"),index$9=require("../../utils/index.js"),index$c=require("../videoPlayer/components/SpeedController/index.js"),WaveSurfer=require("@labelbee/wavesurfer"),Region=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js"),Cursor=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js"),index$d=require("./zoomSlider/index.js"),index$e=require("./labelDisplayToggle/index.js"),index$f=require("./clipRegion/index.js"),index=require("../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks"),index$1=require("./useAudioScroll/index.js"),index_module=require("./index.module.scss.js"),audio=require("../../utils/audio.js"),index$b=require("./progressDot/index.js"),index$6=require("./clipTip/index.js"),index$4=require("./useSwitchHotkey/index.js"),index$2=require("./useAudioCombine/index.js"),index$3=require("./useAudioSegment/index.js"),index$7=require("./combineTip/index.js"),index$8=require("./segmentTip/index.js"),index$g=require("../../views/MainView/toolFooter/index.js"),utils=require("../videoPlayer/utils.js");function _interopDefaultLegacy(u){return u&&typeof u=="object"&&"default"in u?u:{default:u}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_),WaveSurfer__default=_interopDefaultLegacy(WaveSurfer),Region__default=_interopDefaultLegacy(Region),Cursor__default=_interopDefaultLegacy(Cursor),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(u,s,d)=>s in u?__defProp(u,s,{enumerable:!0,configurable:!0,writable:!0,value:d}):u[s]=d,__spreadValues=(u,s)=>{for(var d in s||(s={}))__hasOwnProp.call(s,d)&&__defNormalProp(u,d,s[d]);if(__getOwnPropSymbols)for(var d of __getOwnPropSymbols(s))__propIsEnum.call(s,d)&&__defNormalProp(u,d,s[d]);return u},__spreadProps=(u,s)=>__defProps(u,__getOwnPropDescs(s));const{EToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,PER_PROGRESS=.1,AudioPlayerContext=React__default.default.createContext({count:0,isEdit:!1,toolName:EToolName.Empty,imgIndex:0}),AudioPlayer=({fileData:u={},onLoaded:s,context:d,invalid:Le,height:Oe,hideError:Ne,onError:te,updateRegion:x,removeRegion:B,regions:C=[],activeToolPanel:We,clipConfigurable:Fe,clipTextConfigurable:re,clipAttributeList:ze,clipAttributeConfigurable:ne,secondaryAttributeConfigurable:Ue,subAttributeList:He,isCheck:E,hoverRegionId:I,footer:Xe,drawLayerSlot:oe,clipTextList:ie})=>{var ae,le;const{url:M,path:se}=u,[L,O]=React.useState(!1),[ue,de]=React.useState(!1),[R,Ze]=React.useState(0),[Ke,ce]=React.useState(!1),[D,fe]=React.useState(0),o=React.useRef(null),S=React.useRef(null),ve=React.useRef(R),N=e=>{ve.current=e,Ze(e)},[me,Ve]=React.useState(0),[k,Ge]=React.useState(1),W=React.useRef(null),[pe,Ye]=React.useState({}),{audioClipState:F,setAudioClipState:T}=index.useAudioClipStore(),[z,U]=React.useState(!1),c=ahooks.useLatest(F),ge=ahooks.useLatest(pe),Je=ahooks.useLatest(L),w=ahooks.useLatest(C),be=ahooks.useUpdate(),[_e,Qe]=React.useState([]),[ye,et]=React.useState({}),tt=_.debounce(()=>{lbAnnotation.EventBus.emit("audioZoom")},500),Ee=e=>{e<index$d.audioZoomInfo.min||e>index$d.audioZoomInfo.max||(Ge(e),audio.dispatchResizeEvent(),tt())};index$1({container:W.current,target:document.querySelector(`[data-id=${(le=(ae=c.current)==null?void 0:ae.selectedRegion)==null?void 0:le.id}]`),clipping:z,zoom:k,zoomHandler:Ee});const $=()=>{let e=w.current;const{attributeLockList:r}=c.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),X(),e.forEach(t=>{var n;(n=o.current)==null||n.addRegion(__spreadProps(__spreadValues({},t),{drag:!E,resize:!E,color:"rgba(0, 0, 0, 0)"}))}),be()},f=e=>{var r,t,n,a,l,v,p;const{id:i,loop:m=!0,playImmediately:y=!1}=e;if(i){const A=(n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{};Object.entries(A).forEach(([,g])=>{const{id:P}=g;i===P?g.select():g.cancelSelect()}),T({selectedRegion:{id:i,loop:m},selectedAttribute:(v=(l=(a=w.current)==null?void 0:a.find(g=>g.id===i))==null?void 0:l.attribute)!=null?v:""}),m&&y&&((p=j(i))==null||p.playLoop())}else T({selectedRegion:{}})},{combineInstance:rt}=index$2({waveRef:o,sortByStartRegions:_e,regionMap:ye,updateRegion:x,removeRegion:B,generateRegions:$,setSelectedRegion:f}),{segmentInstance:nt,onRegionMouseMove:ot,segmentTimeTip:it}=index$3({waveRef:o,regionMap:ye,updateRegion:x,removeRegion:B,generateRegions:$,setSelectedRegion:f}),Re={clipTextConfigurable:re,clipAttributeList:ze,clipAttributeConfigurable:ne,clipConfigurable:Fe,secondaryAttributeConfigurable:Ue,subAttributeList:He,clipTextList:ie};React.useEffect(()=>{T({selectedAttribute:""})},[ne]),React.useEffect(()=>{H()},[F.selectedAttribute]),React.useEffect(()=>{$()},[F.attributeLockList]),ahooks.useDeepCompareEffect(()=>{T(Re),setTimeout(()=>{Se()})},[Re]),ahooks.useDeepCompareEffect(()=>{Qe(_.sortBy(C,["start"])),et(C.reduce((e,r)=>{const{id:t}=r;return __spreadProps(__spreadValues({},e),{[t]:r})},{}))},[C]),React.useEffect(()=>{if(I){const e=Je.current;f({id:I,loop:e,playImmediately:!0})}else f({})},[I]);const Se=()=>{var e,r;c.current.clipConfigurable?(!E&&o.current&&((e=o.current)==null||e.enableDragSelection({slop:5})),$()):((r=o.current)==null||r.disableDragSelection(),X()),H()},H=()=>{var e,r,t,n,a;let l="";c.current.clipConfigurable?l=audio.getAttributeColor(c.current.selectedAttribute,(e=c.current.clipAttributeList)!=null?e:[]):l="transparent",((t=(r=o==null?void 0:o.current)==null?void 0:r.cursor)==null?void 0:t.cursor)&&((a=(n=o==null?void 0:o.current)==null?void 0:n.cursor)==null||a.setStyle({border:`2px dashed ${l}`}))},j=e=>{var r,t,n;return((n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{})[e]},he=()=>{var e,r;if(M){const t=((r=(e=se==null?void 0:se.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";ce(!1),t?getWebPcm2Wac.getWebPcm2WavBase64(M).then(n=>{Pe(n)}):Pe(M)}},Pe=e=>{var r;e&&(de(!0),N(0),fe(0),(r=o==null?void 0:o.current)==null||r.load(e))},X=()=>{var e;(e=o.current)==null||e.clearRegions()},Z=e=>{const r=j(e);r&&(U(!1),r==null||r.remove(),B==null||B(e),f({}))},{run:xe}=ahooks.useThrottleFn(f,{wait:500});index$4({sortByStartRegions:_e,setSelectedRegion:f});const at=e=>{const{start:r,end:t}=ge.current;return(r||t)&&e.update(ge.current),e},lt=({action:e,id:r,eventDownTime:t})=>{var n,a;if(!c.current.clipConfigurable)return;r&&f({id:r});const l=j((r!=null?r:(n=c.current.selectedRegion)==null?void 0:n.id)||""),v=[];(e==="create"?w.current:(a=w.current)==null?void 0:a.filter(m=>m.id!==l.id)).forEach(m=>{const{start:y,end:A,attribute:g}=m;g===c.current.selectedAttribute&&[y,A].forEach(P=>{v.includes(P)||v.push(P)})});const i=audio.getCanMoveRange(v.sort((m,y)=>m-y),t);o.current.range=i},st=e=>{H(),setTimeout(()=>{U(!1)});const r=at(e),{id:t,start:n,end:a}=r;f({id:t,playImmediately:!0});const l={id:t,start:utils.decimalReserved(n,3),end:utils.decimalReserved(a,3)};x==null||x(l),be()},ut=()=>{const e=WaveSurfer__default.default.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:Oe||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[Region__default.default.create({regions:C,dragSelection:{slop:5},canMove:!1}),Cursor__default.default.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;N(((t=o==null?void 0:o.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const n=((t=o==null?void 0:o.current)==null?void 0:t.getDuration())||0;fe(n),r(),s==null||s({duration:Math.round(n)}),de(!1),q(),lbAnnotation.EventBus.on("setCurrentTimeByPosition",V),lbAnnotation.EventBus.on("clearRegions",X),lbAnnotation.EventBus.on("removeRegionById",Z),lbAnnotation.EventBus.on("setSelectedRegion",xe),e.on("regions-eventDown",lt),Se()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{O(!0)}),e.on("pause",()=>{O(!1)}),e.on("finish",()=>{O(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{ce(!0),s==null||s({hasError:!0}),te==null||te()}),e.on("region-created",t=>{var n;const{id:a,start:l,end:v}=t;if(w.current.find(i=>i.id===a))return;const p={id:a,start:utils.decimalReserved(l,3),end:utils.decimalReserved(v,3),attribute:c.current.selectedAttribute,text:""};if(c.current.secondaryAttributeConfigurable){const i=lbAnnotation.TagUtils.getDefaultResultByConfig((n=c.current.subAttributeList)!=null?n:[]);p.subAttribute=i!=null?i:{}}re&&ie.forEach((i,m)=>{m===0?Object.assign(p,{text:i==null?void 0:i.default}):Object.assign(p,{[i.key]:i==null?void 0:i.default})}),x==null||x(p)}),e.on("region-updated",(t,n)=>{var a,l,v,p,i,m,y,A,g,P;const Me=n==null?void 0:n.action;T({combined:!1,segment:!1}),Me==="resize"&&((l=(a=o==null?void 0:o.current)==null?void 0:a.cursor)==null||l.setStyle({borderStyle:"solid"})),Me==="drag"&&((p=(v=o==null?void 0:o.current)==null?void 0:v.cursor)==null||p.setStyle({borderColor:"transparent"}));const G={},Y=[],J={},Rt=(i=w.current)==null?void 0:i.filter(b=>b.id!==t.id),St=(A=(y=(m=o.current)==null?void 0:m.regions)==null?void 0:y.list)!=null?A:{};Rt.forEach(b=>{var ke,$e;const{element:Q}=(ke=St[b.id])!=null?ke:{},{start:xt,end:Ct}=b;if(Q){const{x:Ie,width:wt}=(($e=Q.getBoundingClientRect)==null?void 0:$e.call(Q))||{},At=Ie+wt;[Ie,At].forEach((ee,Tt)=>{Y.includes(ee)||(Y.push(ee),J[ee]=Tt===0?xt:Ct)})}});const{x:De,width:ht}=((P=(g=t.element).getBoundingClientRect)==null?void 0:P.call(g))||{},Pt=De+ht;Y.forEach(b=>{Math.abs(audio.precisionMinus(b,De))<5&&(G.start=J[b]),Math.abs(audio.precisionMinus(b,Pt))<5&&(G.end=J[b])}),Ye(G),xe({id:t.id}),U(!0)}),e.on("region-update-end",t=>{st(t)}),e.on("region-contextmenu",(t,n)=>{if(!E){if(n.preventDefault(),n.stopPropagation(),audio.isDoubleClick(n)){Z(t.id);return}f({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,n,a)=>{if(!E){if(n.preventDefault(),n.stopPropagation(),c.current.combined){rt(t);return}if(c.current.segment){nt(t,a);return}f({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",ot),o.current=e},dt=L?React__default.default.createElement(icons.PauseOutlined,null):React__default.default.createElement(icons.CaretRightOutlined,null),Ce=e=>e?`${parseFloat((e/D*100).toFixed(4))}%`:"0%",we=Ce(R),ct=Ce(me),h=()=>{if(!ue)return o==null?void 0:o.current},ft=()=>{var e;(e=h())==null||e.skipForward(PER_PROGRESS)},vt=()=>{var e;(e=h())==null||e.skipBackward(PER_PROGRESS)},q=()=>{var e;(e=h())==null||e.playPause(),f({})},Ae=e=>{var r;switch(e.keyCode){case EKeyCode.Right:ft();break;case EKeyCode.Left:vt();break;case EKeyCode.Space:e.preventDefault(),q();break;case EKeyCode.Delete:if(!E){const{id:t}=((r=c.current)==null?void 0:r.selectedRegion)||{};t&&Z(t)}break}},mt=e=>{V(e)},Te=___default.default.throttle(mt,50);let K=!1;const je=()=>{K&&(q(),K=!1),document.removeEventListener("mousemove",Te),document.removeEventListener("mouseup",je)},pt=e=>{V(e),L&&(K=!0,q()),document.addEventListener("mousemove",Te),document.addEventListener("mouseup",je)},gt=()=>{he()};React.useEffect(()=>(ut(),()=>{var e;(e=o==null?void 0:o.current)==null||e.destroy(),o.current=null,lbAnnotation.EventBus.unbindAll("setCurrentTimeByPosition"),lbAnnotation.EventBus.unbindAll("clearRegions"),lbAnnotation.EventBus.unbindAll("removeRegionById"),lbAnnotation.EventBus.unbindAll("setSelectedRegion")}),[]);const bt=e=>{var r,t,n;(r=h())==null||r.playPause(),(t=h())==null||t.setPlaybackRate(e),(n=h())==null||n.playPause()};React.useEffect(()=>(document.addEventListener("keydown",Ae),()=>{document.removeEventListener("keydown",Ae)})),React.useEffect(()=>{f({}),he()},[M]);const qe=e=>{var r,t,n,a;if((o==null?void 0:o.current)&&(S==null?void 0:S.current)){const l=(t=(r=o==null?void 0:o.current)==null?void 0:r.getDuration())!=null?t:0,v=(n=S==null?void 0:S.current)==null?void 0:n.getBoundingClientRect();let i=(e.clientX-v.left)/(((a=S==null?void 0:S.current)==null?void 0:a.clientWidth)||0)*l;return i>l&&(i=l),i}return 0},V=e=>{var r;const t=qe(e);(r=o==null?void 0:o.current)==null||r.skip(t-ve.current),N(t)},_t=e=>{Ve(qe(e))},yt=D?Math.max(D-R,0):0,Et=(d==null?void 0:d.toolName)!==EToolName.Empty&&(d==null?void 0:d.isEdit)!==!0&&(We==="remark"||E),Be=React__default.default.createElement("div",{className:index_module.audioPlayer},Ke&&!Ne&&React__default.default.createElement(index$5,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:gt,backgroundColor:"#ffffffbb"}),React__default.default.createElement(index$6,{getRegionInstanceById:j,clipping:z}),React__default.default.createElement(index$7,{container:W.current}),React__default.default.createElement(index$8,{segmentTimeTip:it}),React__default.default.createElement("div",{className:index_module.waveformContainer,ref:W},React__default.default.createElement("div",{id:"waveform",style:{width:`${k*100}%`},className:index$9.classnames({[index_module.waveform]:!0,"bee-audio-combined":c.current.combined,"bee-audio-clip":c.current.clipConfigurable})},Le&&React__default.default.createElement(index$a,{isAudio:!0}),React__default.default.createElement("div",{ref:S,className:index_module.progress,onMouseDown:pt,onMouseMove:_t},React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0}),style:{left:we}},audio.formatTime(R)),React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0,[index_module.mouseTooltip]:!0}),style:{left:ct}},audio.formatTime(me)),React__default.default.createElement(index$b,{playPercentage:we})),Et&&(oe==null?void 0:oe({currentTime:R,remainingTime:yt,audioPlayer:h()})))),React__default.default.createElement("div",{className:index_module.controlBar},React__default.default.createElement(antd.Button,{type:"link",icon:dt,onClick:()=>{q()},className:index$9.classnames({[index_module.playButton]:!0,[index_module.playButtonDisabled]:ue})}),React__default.default.createElement("span",{className:index_module.time},`${audio.timeFormat(R,"ss.SSS")} / -${audio.timeFormat(D-R,"ss.SSS")}`),React__default.default.createElement(index$c.default,{playerType:index$c.EPlayerType.Audio,onChange:e=>{bt(e)}}),React__default.default.createElement(index$d.default,{onChange:e=>{Ee(e)},zoom:k}),React__default.default.createElement(index$e,{EventBus:lbAnnotation.EventBus})));return d?React__default.default.createElement(AudioPlayerContext.Provider,{value:d},Be,C.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?React__default.default.createElement(index$f,{el:t,key:r,region:e,edgeAdsorption:pe,clipping:z,zoom:k,instance:j(r)}):null}),React__default.default.createElement(index$g.default,{footer:Xe})):Be};exports.AudioPlayer=AudioPlayer,exports.AudioPlayerContext=AudioPlayerContext;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),getWebPcm2Wac=require("../audioAnnotate/utils/getWebPcm2Wac.js"),_=require("lodash"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),index$a=require("../invalidPage/index.js"),index$5=require("../imageError/index.js"),index$9=require("../../utils/index.js"),index$c=require("../videoPlayer/components/SpeedController/index.js"),WaveSurfer=require("@labelbee/wavesurfer"),Region=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js"),Cursor=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js"),index$d=require("./zoomSlider/index.js"),index$e=require("./labelDisplayToggle/index.js"),index$f=require("./clipRegion/index.js"),index=require("../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks"),index$1=require("./useAudioScroll/index.js"),index_module=require("./index.module.scss.js"),audio=require("../../utils/audio.js"),index$b=require("./progressDot/index.js"),index$6=require("./clipTip/index.js"),index$4=require("./useSwitchHotkey/index.js"),index$2=require("./useAudioCombine/index.js"),index$3=require("./useAudioSegment/index.js"),index$7=require("./combineTip/index.js"),index$8=require("./segmentTip/index.js"),index$g=require("../../views/MainView/toolFooter/index.js"),utils=require("../videoPlayer/utils.js");function _interopDefaultLegacy(c){return c&&typeof c=="object"&&"default"in c?c:{default:c}}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=(c,s,d)=>s in c?__defProp(c,s,{enumerable:!0,configurable:!0,writable:!0,value:d}):c[s]=d,__spreadValues=(c,s)=>{for(var d in s||(s={}))__hasOwnProp.call(s,d)&&__defNormalProp(c,d,s[d]);if(__getOwnPropSymbols)for(var d of __getOwnPropSymbols(s))__propIsEnum.call(s,d)&&__defNormalProp(c,d,s[d]);return c},__spreadProps=(c,s)=>__defProps(c,__getOwnPropDescs(s));const{EToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,PER_PROGRESS=.1,AudioPlayerContext=React__default.default.createContext({count:0,isEdit:!1,toolName:EToolName.Empty,imgIndex:0}),AudioPlayer=({fileData:c={},onLoaded:s,context:d,invalid:$e,height:Ie,hideError:Oe,onError:te,updateRegion:P,removeRegion:B,regions:C=[],activeToolPanel:Ne,clipConfigurable:We,clipTextConfigurable:re,clipAttributeList:Fe,clipAttributeConfigurable:ne,secondaryAttributeConfigurable:ze,subAttributeList:Ue,isCheck:E,hoverRegionId:$,footer:He,drawLayerSlot:oe,clipTextList:Xe})=>{var ie,ae;const{url:M,path:le}=c,[I,O]=React.useState(!1),[se,ue]=React.useState(!1),[R,Ze]=React.useState(0),[Ke,ce]=React.useState(!1),[D,de]=React.useState(0),o=React.useRef(null),S=React.useRef(null),fe=React.useRef(R),N=e=>{fe.current=e,Ze(e)},[ve,Ve]=React.useState(0),[L,Ge]=React.useState(1),W=React.useRef(null),[me,Ye]=React.useState({}),{audioClipState:F,setAudioClipState:A}=index.useAudioClipStore(),[z,U]=React.useState(!1),u=ahooks.useLatest(F),pe=ahooks.useLatest(me),Je=ahooks.useLatest(I),w=ahooks.useLatest(C),ge=ahooks.useUpdate(),[be,Qe]=React.useState([]),[_e,et]=React.useState({}),tt=_.debounce(()=>{lbAnnotation.EventBus.emit("audioZoom")},500),ye=e=>{e<index$d.audioZoomInfo.min||e>index$d.audioZoomInfo.max||(Ge(e),audio.dispatchResizeEvent(),tt())};index$1({container:W.current,target:document.querySelector(`[data-id=${(ae=(ie=u.current)==null?void 0:ie.selectedRegion)==null?void 0:ae.id}]`),clipping:z,zoom:L,zoomHandler:ye});const k=()=>{let e=w.current;const{attributeLockList:r}=u.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),X(),e.forEach(t=>{var n;(n=o.current)==null||n.addRegion(__spreadProps(__spreadValues({},t),{drag:!E,resize:!E,color:"rgba(0, 0, 0, 0)"}))}),ge()},v=e=>{var r,t,n,i,l,m,p;const{id:a,loop:f=!0,playImmediately:g=!1}=e;if(a){const T=(n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{};Object.entries(T).forEach(([,b])=>{const{id:x}=b;a===x?b.select():b.cancelSelect()}),A({selectedRegion:{id:a,loop:f},selectedAttribute:(m=(l=(i=w.current)==null?void 0:i.find(b=>b.id===a))==null?void 0:l.attribute)!=null?m:""}),f&&g&&((p=j(a))==null||p.playLoop())}else A({selectedRegion:{}})},{combineInstance:rt}=index$2({waveRef:o,sortByStartRegions:be,regionMap:_e,updateRegion:P,removeRegion:B,generateRegions:k,setSelectedRegion:v}),{segmentInstance:nt,onRegionMouseMove:ot,segmentTimeTip:it}=index$3({waveRef:o,regionMap:_e,updateRegion:P,removeRegion:B,generateRegions:k,setSelectedRegion:v}),Ee={clipTextConfigurable:re,clipAttributeList:Fe,clipAttributeConfigurable:ne,clipConfigurable:We,secondaryAttributeConfigurable:ze,subAttributeList:Ue,clipTextList:Xe};React.useEffect(()=>{A({selectedAttribute:""})},[ne]),React.useEffect(()=>{H()},[F.selectedAttribute]),React.useEffect(()=>{k()},[F.attributeLockList]),ahooks.useDeepCompareEffect(()=>{A(Ee),setTimeout(()=>{Re()})},[Ee]),ahooks.useDeepCompareEffect(()=>{Qe(_.sortBy(C,["start"])),et(C.reduce((e,r)=>{const{id:t}=r;return __spreadProps(__spreadValues({},e),{[t]:r})},{}))},[C]),React.useEffect(()=>{if($){const e=Je.current;v({id:$,loop:e,playImmediately:!0})}else v({})},[$]);const Re=()=>{var e,r;u.current.clipConfigurable?(!E&&o.current&&((e=o.current)==null||e.enableDragSelection({slop:5})),k()):((r=o.current)==null||r.disableDragSelection(),X()),H()},H=()=>{var e,r,t,n,i;let l="";u.current.clipConfigurable?l=audio.getAttributeColor(u.current.selectedAttribute,(e=u.current.clipAttributeList)!=null?e:[]):l="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 ${l}`}))},j=e=>{var r,t,n;return((n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{})[e]},Se=()=>{var e,r;if(M){const t=((r=(e=le==null?void 0:le.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";ce(!1),t?getWebPcm2Wac.getWebPcm2WavBase64(M).then(n=>{he(n)}):he(M)}},he=e=>{var r;e&&(ue(!0),N(0),de(0),(r=o==null?void 0:o.current)==null||r.load(e))},X=()=>{var e;(e=o.current)==null||e.clearRegions()},Z=e=>{const r=j(e);r&&(U(!1),r==null||r.remove(),B==null||B(e),v({}))},{run:xe}=ahooks.useThrottleFn(v,{wait:500});index$4({sortByStartRegions:be,setSelectedRegion:v});const at=e=>{const{start:r,end:t}=pe.current;return(r||t)&&e.update(pe.current),e},lt=({action:e,id:r,eventDownTime:t})=>{var n,i;if(!u.current.clipConfigurable)return;r&&v({id:r});const l=j((r!=null?r:(n=u.current.selectedRegion)==null?void 0:n.id)||""),m=[];(e==="create"?w.current:(i=w.current)==null?void 0:i.filter(f=>f.id!==l.id)).forEach(f=>{const{start:g,end:T,attribute:b}=f;b===u.current.selectedAttribute&&[g,T].forEach(x=>{m.includes(x)||m.push(x)})});const a=audio.getCanMoveRange(m.sort((f,g)=>f-g),t);o.current.range=a},st=e=>{H(),setTimeout(()=>{U(!1)});const r=at(e),{id:t,start:n,end:i}=r;v({id:t,playImmediately:!0});const l={id:t,start:utils.decimalReserved(n,3),end:utils.decimalReserved(i,3)};P==null||P(l),ge()},ut=()=>{const e=WaveSurfer__default.default.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:Ie||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[Region__default.default.create({regions:C,dragSelection:{slop:5},canMove:!1}),Cursor__default.default.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;N(((t=o==null?void 0:o.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const n=((t=o==null?void 0:o.current)==null?void 0:t.getDuration())||0;de(n),r(),s==null||s({duration:Math.round(n)}),ue(!1),q(),lbAnnotation.EventBus.on("setCurrentTimeByPosition",V),lbAnnotation.EventBus.on("clearRegions",X),lbAnnotation.EventBus.on("removeRegionById",Z),lbAnnotation.EventBus.on("setSelectedRegion",xe),e.on("regions-eventDown",lt),Re()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{O(!0)}),e.on("pause",()=>{O(!1)}),e.on("finish",()=>{O(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{ce(!0),s==null||s({hasError:!0}),te==null||te()}),e.on("region-created",t=>{var n;const{id:i,start:l,end:m}=t;if(w.current.find(a=>a.id===i))return;const p={id:i,start:utils.decimalReserved(l,3),end:utils.decimalReserved(m,3),attribute:u.current.selectedAttribute,text:""};if(u.current.secondaryAttributeConfigurable){const a=lbAnnotation.TagUtils.getDefaultResultByConfig((n=u.current.subAttributeList)!=null?n:[]);p.subAttribute=a!=null?a:{}}re&&u.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})}),P==null||P(p)}),e.on("region-updated",(t,n)=>{var i,l,m,p,a,f,g,T,b,x;const Be=n==null?void 0:n.action;A({combined:!1,segment:!1}),Be==="resize"&&((l=(i=o==null?void 0:o.current)==null?void 0:i.cursor)==null||l.setStyle({borderStyle:"solid"})),Be==="drag"&&((p=(m=o==null?void 0:o.current)==null?void 0:m.cursor)==null||p.setStyle({borderColor:"transparent"}));const G={},Y=[],J={},Rt=(a=w.current)==null?void 0:a.filter(y=>y.id!==t.id),St=(T=(g=(f=o.current)==null?void 0:f.regions)==null?void 0:g.list)!=null?T:{};Rt.forEach(y=>{var De,Le;const{element:Q}=(De=St[y.id])!=null?De:{},{start:Pt,end:Ct}=y;if(Q){const{x:ke,width:wt}=((Le=Q.getBoundingClientRect)==null?void 0:Le.call(Q))||{},Tt=ke+wt;[ke,Tt].forEach((ee,At)=>{Y.includes(ee)||(Y.push(ee),J[ee]=At===0?Pt:Ct)})}});const{x:Me,width:ht}=((x=(b=t.element).getBoundingClientRect)==null?void 0:x.call(b))||{},xt=Me+ht;Y.forEach(y=>{Math.abs(audio.precisionMinus(y,Me))<5&&(G.start=J[y]),Math.abs(audio.precisionMinus(y,xt))<5&&(G.end=J[y])}),Ye(G),xe({id:t.id}),U(!0)}),e.on("region-update-end",t=>{st(t)}),e.on("region-contextmenu",(t,n)=>{if(!E){if(n.preventDefault(),n.stopPropagation(),audio.isDoubleClick(n)){Z(t.id);return}v({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,n,i)=>{if(!E){if(n.preventDefault(),n.stopPropagation(),u.current.combined){rt(t);return}if(u.current.segment){nt(t,i);return}v({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",ot),o.current=e},ct=I?React__default.default.createElement(icons.PauseOutlined,null):React__default.default.createElement(icons.CaretRightOutlined,null),Pe=e=>e?`${parseFloat((e/D*100).toFixed(4))}%`:"0%",Ce=Pe(R),dt=Pe(ve),h=()=>{if(!se)return o==null?void 0:o.current},ft=()=>{var e;(e=h())==null||e.skipForward(PER_PROGRESS)},vt=()=>{var e;(e=h())==null||e.skipBackward(PER_PROGRESS)},q=()=>{var e;(e=h())==null||e.playPause(),v({})},we=e=>{var r;switch(e.keyCode){case EKeyCode.Right:ft();break;case EKeyCode.Left:vt();break;case EKeyCode.Space:e.preventDefault(),q();break;case EKeyCode.Delete:if(!E){const{id:t}=((r=u.current)==null?void 0:r.selectedRegion)||{};t&&Z(t)}break}},mt=e=>{V(e)},Te=___default.default.throttle(mt,50);let K=!1;const Ae=()=>{K&&(q(),K=!1),document.removeEventListener("mousemove",Te),document.removeEventListener("mouseup",Ae)},pt=e=>{V(e),I&&(K=!0,q()),document.addEventListener("mousemove",Te),document.addEventListener("mouseup",Ae)},gt=()=>{Se()};React.useEffect(()=>(ut(),()=>{var e;(e=o==null?void 0:o.current)==null||e.destroy(),o.current=null,lbAnnotation.EventBus.unbindAll("setCurrentTimeByPosition"),lbAnnotation.EventBus.unbindAll("clearRegions"),lbAnnotation.EventBus.unbindAll("removeRegionById"),lbAnnotation.EventBus.unbindAll("setSelectedRegion")}),[]);const bt=e=>{var r,t,n;(r=h())==null||r.playPause(),(t=h())==null||t.setPlaybackRate(e),(n=h())==null||n.playPause()};React.useEffect(()=>(document.addEventListener("keydown",we),()=>{document.removeEventListener("keydown",we)})),React.useEffect(()=>{v({}),Se()},[M]);const je=e=>{var r,t,n,i;if((o==null?void 0:o.current)&&(S==null?void 0:S.current)){const l=(t=(r=o==null?void 0:o.current)==null?void 0:r.getDuration())!=null?t:0,m=(n=S==null?void 0:S.current)==null?void 0:n.getBoundingClientRect();let a=(e.clientX-m.left)/(((i=S==null?void 0:S.current)==null?void 0:i.clientWidth)||0)*l;return a>l&&(a=l),a}return 0},V=e=>{var r;const t=je(e);(r=o==null?void 0:o.current)==null||r.skip(t-fe.current),N(t)},_t=e=>{Ve(je(e))},yt=D?Math.max(D-R,0):0,Et=(d==null?void 0:d.toolName)!==EToolName.Empty&&(d==null?void 0:d.isEdit)!==!0&&(Ne==="remark"||E),qe=React__default.default.createElement("div",{className:index_module.audioPlayer},Ke&&!Oe&&React__default.default.createElement(index$5,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:gt,backgroundColor:"#ffffffbb"}),React__default.default.createElement(index$6,{getRegionInstanceById:j,clipping:z}),React__default.default.createElement(index$7,{container:W.current}),React__default.default.createElement(index$8,{segmentTimeTip:it}),React__default.default.createElement("div",{className:index_module.waveformContainer,ref:W},React__default.default.createElement("div",{id:"waveform",style:{width:`${L*100}%`},className:index$9.classnames({[index_module.waveform]:!0,"bee-audio-combined":u.current.combined,"bee-audio-clip":u.current.clipConfigurable})},$e&&React__default.default.createElement(index$a,{isAudio:!0}),React__default.default.createElement("div",{ref:S,className:index_module.progress,onMouseDown:pt,onMouseMove:_t},React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0}),style:{left:Ce}},audio.formatTime(R)),React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0,[index_module.mouseTooltip]:!0}),style:{left:dt}},audio.formatTime(ve)),React__default.default.createElement(index$b,{playPercentage:Ce})),Et&&(oe==null?void 0:oe({currentTime:R,remainingTime:yt,audioPlayer:h()})))),React__default.default.createElement("div",{className:index_module.controlBar},React__default.default.createElement(antd.Button,{type:"link",icon:ct,onClick:()=>{q()},className:index$9.classnames({[index_module.playButton]:!0,[index_module.playButtonDisabled]:se})}),React__default.default.createElement("span",{className:index_module.time},`${audio.timeFormat(R,"ss.SSS")} / -${audio.timeFormat(D-R,"ss.SSS")}`),React__default.default.createElement(index$c.default,{playerType:index$c.EPlayerType.Audio,onChange:e=>{bt(e)}}),React__default.default.createElement(index$d.default,{onChange:e=>{ye(e)},zoom:L}),React__default.default.createElement(index$e,{EventBus:lbAnnotation.EventBus})));return d?React__default.default.createElement(AudioPlayerContext.Provider,{value:d},qe,C.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?React__default.default.createElement(index$f,{el:t,key:r,region:e,edgeAdsorption:me,clipping:z,zoom:L,instance:j(r)}):null}),React__default.default.createElement(index$g.default,{footer:He})):qe};exports.AudioPlayer=AudioPlayer,exports.AudioPlayerContext=AudioPlayerContext;
@@ -1 +1 @@
1
- "use strict";var React=require("react"),antd=require("antd"),reactI18next=require("react-i18next"),index=require("../attributeList/index.js");function _interopDefaultLegacy(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var React__default=_interopDefaultLegacy(React);const subTitleStyle={margin:"12px 20px 8px",fontSize:14,fontWeight:500,wordWrap:"break-word"},SubAttributeList=a=>{const{subAttributeList:d,setSubAttribute:l,getValue:r}=a,{t:n}=reactI18next.useTranslation();return React__default.default.createElement(React__default.default.Fragment,null,d.map(e=>{var u;return(e==null?void 0:e.subSelected)&&React__default.default.createElement("div",{style:{marginTop:12},key:e.value},React__default.default.createElement("div",{style:subTitleStyle},n("SubAttribute"),"-",e.key),((u=e.subSelected)==null?void 0:u.length)<5?React__default.default.createElement(index.default,{list:e.subSelected.map(t=>({label:t.key,value:t.value})),selectedAttribute:r(e),num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:t=>l(e.value,t),style:{marginBottom:12}}):React__default.default.createElement(antd.Select,{style:{margin:"0px 21px 17px 16px",width:"87%"},value:r(e),placeholder:n("PleaseSelect"),onChange:t=>l(e.value,t),allowClear:!0},e.subSelected.map(t=>React__default.default.createElement(antd.Select.Option,{key:t.value,value:t.value},t.key))),React__default.default.createElement(antd.Divider,{style:{margin:0}}))}))};module.exports=SubAttributeList;
1
+ "use strict";var React=require("react"),antd=require("antd"),reactI18next=require("react-i18next"),index=require("../attributeList/index.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React);const subTitleStyle={margin:"12px 20px 8px",fontSize:14,fontWeight:500,wordWrap:"break-word"},SubAttributeList=t=>{const{subAttributeList:u,setSubAttribute:n,getValue:r}=t,{t:d}=reactI18next.useTranslation(),o=(e,a)=>{if(Array.isArray(a)){n(e,a.join(";"));return}n(e,a)},i=e=>{const a=r(e);return(e==null?void 0:e.isMulti)?a?a==null?void 0:a.split(";"):[]:a};return React__default.default.createElement(React__default.default.Fragment,null,u.map(e=>{var a;return(e==null?void 0:e.subSelected)&&React__default.default.createElement("div",{style:{marginTop:12},key:e.value},React__default.default.createElement("div",{style:subTitleStyle},d("SubAttribute"),"-",e.key),((a=e.subSelected)==null?void 0:a.length)<5?(e==null?void 0:e.isMulti)?React__default.default.createElement(antd.Checkbox.Group,{style:{padding:"0px 20px 16px 16px"},options:e.subSelected.map(l=>({label:l.key,value:l.value})),value:i(e),onChange:l=>o(e.value,l)}):React__default.default.createElement(index.default,{list:e.subSelected.map(l=>({label:l.key,value:l.value})),selectedAttribute:r(e),num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:l=>n(e.value,l),style:{marginBottom:12}}):React__default.default.createElement(antd.Select,{style:{margin:"0px 20px 16px 16px",width:"87%"},mode:(e==null?void 0:e.isMulti)?"multiple":void 0,value:i(e),placeholder:d("PleaseSelect"),onChange:l=>o(e.value,l),allowClear:!0},e.subSelected.map(l=>React__default.default.createElement(antd.Select.Option,{key:l.value,value:l.value},l.key))),React__default.default.createElement(antd.Divider,{style:{margin:0}}))}))};module.exports=SubAttributeList;
package/dist/index.css CHANGED
@@ -1166,7 +1166,8 @@
1166
1166
  }
1167
1167
  .index-module_clipSidebar__z2E8x .index-module_attributeList__2wnCE {
1168
1168
  flex: 1;
1169
- overflow: auto;
1169
+ overflow-x: hidden;
1170
+ overflow-y: auto;
1170
1171
  }
1171
1172
  .index-module_clipSidebar__z2E8x .index-module_attributeList__2wnCE .sensebee-radio-group,
1172
1173
  .index-module_clipSidebar__z2E8x .index-module_attributeList__2wnCE .sensebee-radio-group-no-limit-height .ant-radio-group {
@@ -5,5 +5,5 @@
5
5
  */
6
6
  import { IAudioTimeSlice, ITextConfigItem } from '@labelbee/lb-utils';
7
7
  export default class DataTransform {
8
- static getClipTextByConfig: (region: IAudioTimeSlice, clipTextList: ITextConfigItem[], isClear?: boolean) => IAudioTimeSlice;
8
+ static getClipTextByConfig: (region: IAudioTimeSlice, clipTextList: ITextConfigItem[], isDefault?: boolean) => IAudioTimeSlice;
9
9
  }
@@ -1 +1 @@
1
- import c from"lodash";class o{}o.getClipTextByConfig=(e,f,a=!1)=>{const t=c.cloneDeep(e);return f.forEach((s,n)=>{n===0?Object.assign(t,{text:a?"":e[s.key]}):Object.assign(t,{[s.key]:a?"":e[s.key]})}),t};export{o as default};
1
+ import r from"lodash";class o{}o.getClipTextByConfig=(a,f,l=!1)=>{const t=r.cloneDeep(a);return f.forEach((e,c)=>{var s;const n=(s=e==null?void 0:e.default)!=null?s:"";c===0?Object.assign(t,{text:l?n:a[e.key]}):Object.assign(t,{[e.key]:l?n:a[e.key]})}),t};export{o as default};
@@ -1 +1 @@
1
- import l,{useState as b,useRef as z,useEffect as A}from"react";import{getWebPcm2WavBase64 as Yt}from"../audioAnnotate/utils/getWebPcm2Wac.js";import Jt,{debounce as Qt,sortBy as er}from"lodash";import{PauseOutlined as tr,CaretRightOutlined as rr}from"@ant-design/icons";import{cKeyCode as or,cTool as nr,EventBus as E,TagUtils as ir}from"@labelbee/lb-annotation";import{Button as lr}from"antd";import sr from"../invalidPage/index.js";import ar from"../imageError/index.js";import{classnames as $}from"../../utils/index.js";import ur,{EPlayerType as cr}from"../videoPlayer/components/SpeedController/index.js";import dr from"@labelbee/wavesurfer";import mr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js";import fr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js";import pr,{audioZoomInfo as qe}from"./zoomSlider/index.js";import vr from"./labelDisplayToggle/index.js";import gr from"./clipRegion/index.js";import{useAudioClipStore as br}from"../audioAnnotate/audioContext/index.js";import{useLatest as H,useUpdate as yr,useDeepCompareEffect as Ke,useThrottleFn as _r}from"ahooks";import Er from"./useAudioScroll/index.js";import y from"./index.module.scss.js";import{getAttributeColor as hr,formatTime as Ve,timeFormat as Ge,dispatchResizeEvent as Sr,precisionMinus as Ye,isDoubleClick as Cr,getCanMoveRange as Pr}from"../../utils/audio.js";import Rr from"./progressDot/index.js";import wr from"./clipTip/index.js";import Tr from"./useSwitchHotkey/index.js";import Ar from"./useAudioCombine/index.js";import jr from"./useAudioSegment/index.js";import xr from"./combineTip/index.js";import Dr from"./segmentTip/index.js";import kr from"../../views/MainView/toolFooter/index.js";import{decimalReserved as U}from"../videoPlayer/utils.js";var Mr=Object.defineProperty,Ir=Object.defineProperties,Br=Object.getOwnPropertyDescriptors,Je=Object.getOwnPropertySymbols,Or=Object.prototype.hasOwnProperty,Lr=Object.prototype.propertyIsEnumerable,Qe=(g,u,c)=>u in g?Mr(g,u,{enumerable:!0,configurable:!0,writable:!0,value:c}):g[u]=c,et=(g,u)=>{for(var c in u||(u={}))Or.call(u,c)&&Qe(g,c,u[c]);if(Je)for(var c of Je(u))Lr.call(u,c)&&Qe(g,c,u[c]);return g},tt=(g,u)=>Ir(g,Br(u));const{EToolName:rt}=nr,X=or.default,ot=.1,nt=l.createContext({count:0,isEdit:!1,toolName:rt.Empty,imgIndex:0}),Nr=({fileData:g={},onLoaded:u,context:c,invalid:it,height:lt,hideError:st,onError:ce,updateRegion:j,removeRegion:O,regions:x=[],activeToolPanel:at,clipConfigurable:ut,clipTextConfigurable:de,clipAttributeList:ct,clipAttributeConfigurable:me,secondaryAttributeConfigurable:dt,subAttributeList:mt,isCheck:C,hoverRegionId:Z,footer:ft,drawLayerSlot:fe,clipTextList:pe})=>{var ve,ge;const{url:L,path:be}=g,[q,K]=b(!1),[ye,_e]=b(!1),[P,pt]=b(0),[vt,Ee]=b(!1),[N,he]=b(0),n=z(null),R=z(null),Se=z(P),V=e=>{Se.current=e,pt(e)},[Ce,gt]=b(0),[F,bt]=b(1),G=z(null),[Pe,yt]=b({}),{audioClipState:Y,setAudioClipState:M}=br(),[J,Q]=b(!1),d=H(Y),Re=H(Pe),_t=H(q),D=H(x),we=yr(),[Te,Et]=b([]),[Ae,ht]=b({}),St=Qt(()=>{E.emit("audioZoom")},500),je=e=>{e<qe.min||e>qe.max||(bt(e),Sr(),St())};Er({container:G.current,target:document.querySelector(`[data-id=${(ge=(ve=d.current)==null?void 0:ve.selectedRegion)==null?void 0:ge.id}]`),clipping:J,zoom:F,zoomHandler:je});const W=()=>{let e=D.current;const{attributeLockList:r}=d.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),te(),e.forEach(t=>{var o;(o=n.current)==null||o.addRegion(tt(et({},t),{drag:!C,resize:!C,color:"rgba(0, 0, 0, 0)"}))}),we()},m=e=>{var r,t,o,s,a,f,v;const{id:i,loop:p=!0,playImmediately:S=!1}=e;if(i){const k=(o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{};Object.entries(k).forEach(([,_])=>{const{id:T}=_;i===T?_.select():_.cancelSelect()}),M({selectedRegion:{id:i,loop:p},selectedAttribute:(f=(a=(s=D.current)==null?void 0:s.find(_=>_.id===i))==null?void 0:a.attribute)!=null?f:""}),p&&S&&((v=I(i))==null||v.playLoop())}else M({selectedRegion:{}})},{combineInstance:Ct}=Ar({waveRef:n,sortByStartRegions:Te,regionMap:Ae,updateRegion:j,removeRegion:O,generateRegions:W,setSelectedRegion:m}),{segmentInstance:Pt,onRegionMouseMove:Rt,segmentTimeTip:wt}=jr({waveRef:n,regionMap:Ae,updateRegion:j,removeRegion:O,generateRegions:W,setSelectedRegion:m}),xe={clipTextConfigurable:de,clipAttributeList:ct,clipAttributeConfigurable:me,clipConfigurable:ut,secondaryAttributeConfigurable:dt,subAttributeList:mt,clipTextList:pe};A(()=>{M({selectedAttribute:""})},[me]),A(()=>{ee()},[Y.selectedAttribute]),A(()=>{W()},[Y.attributeLockList]),Ke(()=>{M(xe),setTimeout(()=>{De()})},[xe]),Ke(()=>{Et(er(x,["start"])),ht(x.reduce((e,r)=>{const{id:t}=r;return tt(et({},e),{[t]:r})},{}))},[x]),A(()=>{if(Z){const e=_t.current;m({id:Z,loop:e,playImmediately:!0})}else m({})},[Z]);const De=()=>{var e,r;d.current.clipConfigurable?(!C&&n.current&&((e=n.current)==null||e.enableDragSelection({slop:5})),W()):((r=n.current)==null||r.disableDragSelection(),te()),ee()},ee=()=>{var e,r,t,o,s;let a="";d.current.clipConfigurable?a=hr(d.current.selectedAttribute,(e=d.current.clipAttributeList)!=null?e:[]):a="transparent",((t=(r=n==null?void 0:n.current)==null?void 0:r.cursor)==null?void 0:t.cursor)&&((s=(o=n==null?void 0:n.current)==null?void 0:o.cursor)==null||s.setStyle({border:`2px dashed ${a}`}))},I=e=>{var r,t,o;return((o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{})[e]},ke=()=>{var e,r;if(L){const t=((r=(e=be==null?void 0:be.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";Ee(!1),t?Yt(L).then(o=>{Me(o)}):Me(L)}},Me=e=>{var r;e&&(_e(!0),V(0),he(0),(r=n==null?void 0:n.current)==null||r.load(e))},te=()=>{var e;(e=n.current)==null||e.clearRegions()},re=e=>{const r=I(e);r&&(Q(!1),r==null||r.remove(),O==null||O(e),m({}))},{run:Ie}=_r(m,{wait:500});Tr({sortByStartRegions:Te,setSelectedRegion:m});const Tt=e=>{const{start:r,end:t}=Re.current;return(r||t)&&e.update(Re.current),e},At=({action:e,id:r,eventDownTime:t})=>{var o,s;if(!d.current.clipConfigurable)return;r&&m({id:r});const a=I((r!=null?r:(o=d.current.selectedRegion)==null?void 0:o.id)||""),f=[];(e==="create"?D.current:(s=D.current)==null?void 0:s.filter(p=>p.id!==a.id)).forEach(p=>{const{start:S,end:k,attribute:_}=p;_===d.current.selectedAttribute&&[S,k].forEach(T=>{f.includes(T)||f.push(T)})});const i=Pr(f.sort((p,S)=>p-S),t);n.current.range=i},jt=e=>{ee(),setTimeout(()=>{Q(!1)});const r=Tt(e),{id:t,start:o,end:s}=r;m({id:t,playImmediately:!0});const a={id:t,start:U(o,3),end:U(s,3)};j==null||j(a),we()},xt=()=>{const e=dr.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:lt||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[mr.create({regions:x,dragSelection:{slop:5},canMove:!1}),fr.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;V(((t=n==null?void 0:n.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const o=((t=n==null?void 0:n.current)==null?void 0:t.getDuration())||0;he(o),r(),u==null||u({duration:Math.round(o)}),_e(!1),B(),E.on("setCurrentTimeByPosition",ne),E.on("clearRegions",te),E.on("removeRegionById",re),E.on("setSelectedRegion",Ie),e.on("regions-eventDown",At),De()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{K(!0)}),e.on("pause",()=>{K(!1)}),e.on("finish",()=>{K(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{Ee(!0),u==null||u({hasError:!0}),ce==null||ce()}),e.on("region-created",t=>{var o;const{id:s,start:a,end:f}=t;if(D.current.find(i=>i.id===s))return;const v={id:s,start:U(a,3),end:U(f,3),attribute:d.current.selectedAttribute,text:""};if(d.current.secondaryAttributeConfigurable){const i=ir.getDefaultResultByConfig((o=d.current.subAttributeList)!=null?o:[]);v.subAttribute=i!=null?i:{}}de&&pe.forEach((i,p)=>{p===0?Object.assign(v,{text:i==null?void 0:i.default}):Object.assign(v,{[i.key]:i==null?void 0:i.default})}),j==null||j(v)}),e.on("region-updated",(t,o)=>{var s,a,f,v,i,p,S,k,_,T;const $e=o==null?void 0:o.action;M({combined:!1,segment:!1}),$e==="resize"&&((a=(s=n==null?void 0:n.current)==null?void 0:s.cursor)==null||a.setStyle({borderStyle:"solid"})),$e==="drag"&&((v=(f=n==null?void 0:n.current)==null?void 0:f.cursor)==null||v.setStyle({borderColor:"transparent"}));const ie={},le=[],se={},$t=(i=D.current)==null?void 0:i.filter(h=>h.id!==t.id),Ht=(k=(S=(p=n.current)==null?void 0:p.regions)==null?void 0:S.list)!=null?k:{};$t.forEach(h=>{var Ue,Xe;const{element:ae}=(Ue=Ht[h.id])!=null?Ue:{},{start:Zt,end:qt}=h;if(ae){const{x:Ze,width:Kt}=((Xe=ae.getBoundingClientRect)==null?void 0:Xe.call(ae))||{},Vt=Ze+Kt;[Ze,Vt].forEach((ue,Gt)=>{le.includes(ue)||(le.push(ue),se[ue]=Gt===0?Zt:qt)})}});const{x:He,width:Ut}=((T=(_=t.element).getBoundingClientRect)==null?void 0:T.call(_))||{},Xt=He+Ut;le.forEach(h=>{Math.abs(Ye(h,He))<5&&(ie.start=se[h]),Math.abs(Ye(h,Xt))<5&&(ie.end=se[h])}),yt(ie),Ie({id:t.id}),Q(!0)}),e.on("region-update-end",t=>{jt(t)}),e.on("region-contextmenu",(t,o)=>{if(!C){if(o.preventDefault(),o.stopPropagation(),Cr(o)){re(t.id);return}m({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,o,s)=>{if(!C){if(o.preventDefault(),o.stopPropagation(),d.current.combined){Ct(t);return}if(d.current.segment){Pt(t,s);return}m({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",Rt),n.current=e},Dt=q?l.createElement(tr,null):l.createElement(rr,null),Be=e=>e?`${parseFloat((e/N*100).toFixed(4))}%`:"0%",Oe=Be(P),kt=Be(Ce),w=()=>{if(!ye)return n==null?void 0:n.current},Mt=()=>{var e;(e=w())==null||e.skipForward(ot)},It=()=>{var e;(e=w())==null||e.skipBackward(ot)},B=()=>{var e;(e=w())==null||e.playPause(),m({})},Le=e=>{var r;switch(e.keyCode){case X.Right:Mt();break;case X.Left:It();break;case X.Space:e.preventDefault(),B();break;case X.Delete:if(!C){const{id:t}=((r=d.current)==null?void 0:r.selectedRegion)||{};t&&re(t)}break}},Bt=e=>{ne(e)},Ne=Jt.throttle(Bt,50);let oe=!1;const Fe=()=>{oe&&(B(),oe=!1),document.removeEventListener("mousemove",Ne),document.removeEventListener("mouseup",Fe)},Ot=e=>{ne(e),q&&(oe=!0,B()),document.addEventListener("mousemove",Ne),document.addEventListener("mouseup",Fe)},Lt=()=>{ke()};A(()=>(xt(),()=>{var e;(e=n==null?void 0:n.current)==null||e.destroy(),n.current=null,E.unbindAll("setCurrentTimeByPosition"),E.unbindAll("clearRegions"),E.unbindAll("removeRegionById"),E.unbindAll("setSelectedRegion")}),[]);const Nt=e=>{var r,t,o;(r=w())==null||r.playPause(),(t=w())==null||t.setPlaybackRate(e),(o=w())==null||o.playPause()};A(()=>(document.addEventListener("keydown",Le),()=>{document.removeEventListener("keydown",Le)})),A(()=>{m({}),ke()},[L]);const We=e=>{var r,t,o,s;if((n==null?void 0:n.current)&&(R==null?void 0:R.current)){const a=(t=(r=n==null?void 0:n.current)==null?void 0:r.getDuration())!=null?t:0,f=(o=R==null?void 0:R.current)==null?void 0:o.getBoundingClientRect();let i=(e.clientX-f.left)/(((s=R==null?void 0:R.current)==null?void 0:s.clientWidth)||0)*a;return i>a&&(i=a),i}return 0},ne=e=>{var r;const t=We(e);(r=n==null?void 0:n.current)==null||r.skip(t-Se.current),V(t)},Ft=e=>{gt(We(e))},Wt=N?Math.max(N-P,0):0,zt=(c==null?void 0:c.toolName)!==rt.Empty&&(c==null?void 0:c.isEdit)!==!0&&(at==="remark"||C),ze=l.createElement("div",{className:y.audioPlayer},vt&&!st&&l.createElement(ar,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:Lt,backgroundColor:"#ffffffbb"}),l.createElement(wr,{getRegionInstanceById:I,clipping:J}),l.createElement(xr,{container:G.current}),l.createElement(Dr,{segmentTimeTip:wt}),l.createElement("div",{className:y.waveformContainer,ref:G},l.createElement("div",{id:"waveform",style:{width:`${F*100}%`},className:$({[y.waveform]:!0,"bee-audio-combined":d.current.combined,"bee-audio-clip":d.current.clipConfigurable})},it&&l.createElement(sr,{isAudio:!0}),l.createElement("div",{ref:R,className:y.progress,onMouseDown:Ot,onMouseMove:Ft},l.createElement("div",{className:$({[y.radioTooltip]:!0}),style:{left:Oe}},Ve(P)),l.createElement("div",{className:$({[y.radioTooltip]:!0,[y.mouseTooltip]:!0}),style:{left:kt}},Ve(Ce)),l.createElement(Rr,{playPercentage:Oe})),zt&&(fe==null?void 0:fe({currentTime:P,remainingTime:Wt,audioPlayer:w()})))),l.createElement("div",{className:y.controlBar},l.createElement(lr,{type:"link",icon:Dt,onClick:()=>{B()},className:$({[y.playButton]:!0,[y.playButtonDisabled]:ye})}),l.createElement("span",{className:y.time},`${Ge(P,"ss.SSS")} / -${Ge(N-P,"ss.SSS")}`),l.createElement(ur,{playerType:cr.Audio,onChange:e=>{Nt(e)}}),l.createElement(pr,{onChange:e=>{je(e)},zoom:F}),l.createElement(vr,{EventBus:E})));return c?l.createElement(nt.Provider,{value:c},ze,x.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?l.createElement(gr,{el:t,key:r,region:e,edgeAdsorption:Pe,clipping:J,zoom:F,instance:I(r)}):null}),l.createElement(kr,{footer:ft})):ze};export{Nr as AudioPlayer,nt as AudioPlayerContext};
1
+ import i,{useState as b,useRef as z,useEffect as A}from"react";import{getWebPcm2WavBase64 as Yt}from"../audioAnnotate/utils/getWebPcm2Wac.js";import Jt,{debounce as Qt,sortBy as er}from"lodash";import{PauseOutlined as tr,CaretRightOutlined as rr}from"@ant-design/icons";import{cKeyCode as or,cTool as nr,EventBus as h,TagUtils as ir}from"@labelbee/lb-annotation";import{Button as lr}from"antd";import sr from"../invalidPage/index.js";import ar from"../imageError/index.js";import{classnames as $}from"../../utils/index.js";import ur,{EPlayerType as cr}from"../videoPlayer/components/SpeedController/index.js";import dr from"@labelbee/wavesurfer";import mr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js";import fr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js";import pr,{audioZoomInfo as Ze}from"./zoomSlider/index.js";import vr from"./labelDisplayToggle/index.js";import gr from"./clipRegion/index.js";import{useAudioClipStore as br}from"../audioAnnotate/audioContext/index.js";import{useLatest as H,useUpdate as yr,useDeepCompareEffect as qe,useThrottleFn as _r}from"ahooks";import Er from"./useAudioScroll/index.js";import y from"./index.module.scss.js";import{getAttributeColor as hr,formatTime as Ke,timeFormat as Ve,dispatchResizeEvent as Sr,precisionMinus as Ge,isDoubleClick as Cr,getCanMoveRange as Pr}from"../../utils/audio.js";import Rr from"./progressDot/index.js";import wr from"./clipTip/index.js";import Tr from"./useSwitchHotkey/index.js";import Ar from"./useAudioCombine/index.js";import jr from"./useAudioSegment/index.js";import xr from"./combineTip/index.js";import Dr from"./segmentTip/index.js";import kr from"../../views/MainView/toolFooter/index.js";import{decimalReserved as U}from"../videoPlayer/utils.js";var Mr=Object.defineProperty,Ir=Object.defineProperties,Lr=Object.getOwnPropertyDescriptors,Ye=Object.getOwnPropertySymbols,Br=Object.prototype.hasOwnProperty,Or=Object.prototype.propertyIsEnumerable,Je=(g,u,d)=>u in g?Mr(g,u,{enumerable:!0,configurable:!0,writable:!0,value:d}):g[u]=d,Qe=(g,u)=>{for(var d in u||(u={}))Br.call(u,d)&&Je(g,d,u[d]);if(Ye)for(var d of Ye(u))Or.call(u,d)&&Je(g,d,u[d]);return g},et=(g,u)=>Ir(g,Lr(u));const{EToolName:tt}=nr,X=or.default,rt=.1,ot=i.createContext({count:0,isEdit:!1,toolName:tt.Empty,imgIndex:0}),Nr=({fileData:g={},onLoaded:u,context:d,invalid:nt,height:it,hideError:lt,onError:ce,updateRegion:j,removeRegion:B,regions:x=[],activeToolPanel:st,clipConfigurable:at,clipTextConfigurable:de,clipAttributeList:ut,clipAttributeConfigurable:me,secondaryAttributeConfigurable:ct,subAttributeList:dt,isCheck:C,hoverRegionId:Z,footer:mt,drawLayerSlot:fe,clipTextList:ft})=>{var pe,ve;const{url:O,path:ge}=g,[q,K]=b(!1),[be,ye]=b(!1),[P,pt]=b(0),[vt,_e]=b(!1),[N,Ee]=b(0),n=z(null),R=z(null),he=z(P),V=e=>{he.current=e,pt(e)},[Se,gt]=b(0),[F,bt]=b(1),G=z(null),[Ce,yt]=b({}),{audioClipState:Y,setAudioClipState:M}=br(),[J,Q]=b(!1),c=H(Y),Pe=H(Ce),_t=H(q),D=H(x),Re=yr(),[we,Et]=b([]),[Te,ht]=b({}),St=Qt(()=>{h.emit("audioZoom")},500),Ae=e=>{e<Ze.min||e>Ze.max||(bt(e),Sr(),St())};Er({container:G.current,target:document.querySelector(`[data-id=${(ve=(pe=c.current)==null?void 0:pe.selectedRegion)==null?void 0:ve.id}]`),clipping:J,zoom:F,zoomHandler:Ae});const W=()=>{let e=D.current;const{attributeLockList:r}=c.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),te(),e.forEach(t=>{var o;(o=n.current)==null||o.addRegion(et(Qe({},t),{drag:!C,resize:!C,color:"rgba(0, 0, 0, 0)"}))}),Re()},f=e=>{var r,t,o,l,a,p,v;const{id:s,loop:m=!0,playImmediately:_=!1}=e;if(s){const k=(o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{};Object.entries(k).forEach(([,E])=>{const{id:T}=E;s===T?E.select():E.cancelSelect()}),M({selectedRegion:{id:s,loop:m},selectedAttribute:(p=(a=(l=D.current)==null?void 0:l.find(E=>E.id===s))==null?void 0:a.attribute)!=null?p:""}),m&&_&&((v=I(s))==null||v.playLoop())}else M({selectedRegion:{}})},{combineInstance:Ct}=Ar({waveRef:n,sortByStartRegions:we,regionMap:Te,updateRegion:j,removeRegion:B,generateRegions:W,setSelectedRegion:f}),{segmentInstance:Pt,onRegionMouseMove:Rt,segmentTimeTip:wt}=jr({waveRef:n,regionMap:Te,updateRegion:j,removeRegion:B,generateRegions:W,setSelectedRegion:f}),je={clipTextConfigurable:de,clipAttributeList:ut,clipAttributeConfigurable:me,clipConfigurable:at,secondaryAttributeConfigurable:ct,subAttributeList:dt,clipTextList:ft};A(()=>{M({selectedAttribute:""})},[me]),A(()=>{ee()},[Y.selectedAttribute]),A(()=>{W()},[Y.attributeLockList]),qe(()=>{M(je),setTimeout(()=>{xe()})},[je]),qe(()=>{Et(er(x,["start"])),ht(x.reduce((e,r)=>{const{id:t}=r;return et(Qe({},e),{[t]:r})},{}))},[x]),A(()=>{if(Z){const e=_t.current;f({id:Z,loop:e,playImmediately:!0})}else f({})},[Z]);const xe=()=>{var e,r;c.current.clipConfigurable?(!C&&n.current&&((e=n.current)==null||e.enableDragSelection({slop:5})),W()):((r=n.current)==null||r.disableDragSelection(),te()),ee()},ee=()=>{var e,r,t,o,l;let a="";c.current.clipConfigurable?a=hr(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}`}))},I=e=>{var r,t,o;return((o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{})[e]},De=()=>{var e,r;if(O){const t=((r=(e=ge==null?void 0:ge.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";_e(!1),t?Yt(O).then(o=>{ke(o)}):ke(O)}},ke=e=>{var r;e&&(ye(!0),V(0),Ee(0),(r=n==null?void 0:n.current)==null||r.load(e))},te=()=>{var e;(e=n.current)==null||e.clearRegions()},re=e=>{const r=I(e);r&&(Q(!1),r==null||r.remove(),B==null||B(e),f({}))},{run:Me}=_r(f,{wait:500});Tr({sortByStartRegions:we,setSelectedRegion:f});const Tt=e=>{const{start:r,end:t}=Pe.current;return(r||t)&&e.update(Pe.current),e},At=({action:e,id:r,eventDownTime:t})=>{var o,l;if(!c.current.clipConfigurable)return;r&&f({id:r});const a=I((r!=null?r:(o=c.current.selectedRegion)==null?void 0:o.id)||""),p=[];(e==="create"?D.current:(l=D.current)==null?void 0:l.filter(m=>m.id!==a.id)).forEach(m=>{const{start:_,end:k,attribute:E}=m;E===c.current.selectedAttribute&&[_,k].forEach(T=>{p.includes(T)||p.push(T)})});const s=Pr(p.sort((m,_)=>m-_),t);n.current.range=s},jt=e=>{ee(),setTimeout(()=>{Q(!1)});const r=Tt(e),{id:t,start:o,end:l}=r;f({id:t,playImmediately:!0});const a={id:t,start:U(o,3),end:U(l,3)};j==null||j(a),Re()},xt=()=>{const e=dr.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:it||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[mr.create({regions:x,dragSelection:{slop:5},canMove:!1}),fr.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;V(((t=n==null?void 0:n.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const o=((t=n==null?void 0:n.current)==null?void 0:t.getDuration())||0;Ee(o),r(),u==null||u({duration:Math.round(o)}),ye(!1),L(),h.on("setCurrentTimeByPosition",ne),h.on("clearRegions",te),h.on("removeRegionById",re),h.on("setSelectedRegion",Me),e.on("regions-eventDown",At),xe()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{K(!0)}),e.on("pause",()=>{K(!1)}),e.on("finish",()=>{K(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{_e(!0),u==null||u({hasError:!0}),ce==null||ce()}),e.on("region-created",t=>{var o;const{id:l,start:a,end:p}=t;if(D.current.find(s=>s.id===l))return;const v={id:l,start:U(a,3),end:U(p,3),attribute:c.current.selectedAttribute,text:""};if(c.current.secondaryAttributeConfigurable){const s=ir.getDefaultResultByConfig((o=c.current.subAttributeList)!=null?o:[]);v.subAttribute=s!=null?s:{}}de&&c.current.clipTextList.forEach((m,_)=>{_===0?Object.assign(v,{text:m==null?void 0:m.default}):Object.assign(v,{[m.key]:m==null?void 0:m.default})}),j==null||j(v)}),e.on("region-updated",(t,o)=>{var l,a,p,v,s,m,_,k,E,T;const ze=o==null?void 0:o.action;M({combined:!1,segment:!1}),ze==="resize"&&((a=(l=n==null?void 0:n.current)==null?void 0:l.cursor)==null||a.setStyle({borderStyle:"solid"})),ze==="drag"&&((v=(p=n==null?void 0:n.current)==null?void 0:p.cursor)==null||v.setStyle({borderColor:"transparent"}));const ie={},le=[],se={},$t=(s=D.current)==null?void 0:s.filter(S=>S.id!==t.id),Ht=(k=(_=(m=n.current)==null?void 0:m.regions)==null?void 0:_.list)!=null?k:{};$t.forEach(S=>{var He,Ue;const{element:ae}=(He=Ht[S.id])!=null?He:{},{start:Zt,end:qt}=S;if(ae){const{x:Xe,width:Kt}=((Ue=ae.getBoundingClientRect)==null?void 0:Ue.call(ae))||{},Vt=Xe+Kt;[Xe,Vt].forEach((ue,Gt)=>{le.includes(ue)||(le.push(ue),se[ue]=Gt===0?Zt:qt)})}});const{x:$e,width:Ut}=((T=(E=t.element).getBoundingClientRect)==null?void 0:T.call(E))||{},Xt=$e+Ut;le.forEach(S=>{Math.abs(Ge(S,$e))<5&&(ie.start=se[S]),Math.abs(Ge(S,Xt))<5&&(ie.end=se[S])}),yt(ie),Me({id:t.id}),Q(!0)}),e.on("region-update-end",t=>{jt(t)}),e.on("region-contextmenu",(t,o)=>{if(!C){if(o.preventDefault(),o.stopPropagation(),Cr(o)){re(t.id);return}f({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,o,l)=>{if(!C){if(o.preventDefault(),o.stopPropagation(),c.current.combined){Ct(t);return}if(c.current.segment){Pt(t,l);return}f({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",Rt),n.current=e},Dt=q?i.createElement(tr,null):i.createElement(rr,null),Ie=e=>e?`${parseFloat((e/N*100).toFixed(4))}%`:"0%",Le=Ie(P),kt=Ie(Se),w=()=>{if(!be)return n==null?void 0:n.current},Mt=()=>{var e;(e=w())==null||e.skipForward(rt)},It=()=>{var e;(e=w())==null||e.skipBackward(rt)},L=()=>{var e;(e=w())==null||e.playPause(),f({})},Be=e=>{var r;switch(e.keyCode){case X.Right:Mt();break;case X.Left:It();break;case X.Space:e.preventDefault(),L();break;case X.Delete:if(!C){const{id:t}=((r=c.current)==null?void 0:r.selectedRegion)||{};t&&re(t)}break}},Lt=e=>{ne(e)},Oe=Jt.throttle(Lt,50);let oe=!1;const Ne=()=>{oe&&(L(),oe=!1),document.removeEventListener("mousemove",Oe),document.removeEventListener("mouseup",Ne)},Bt=e=>{ne(e),q&&(oe=!0,L()),document.addEventListener("mousemove",Oe),document.addEventListener("mouseup",Ne)},Ot=()=>{De()};A(()=>(xt(),()=>{var e;(e=n==null?void 0:n.current)==null||e.destroy(),n.current=null,h.unbindAll("setCurrentTimeByPosition"),h.unbindAll("clearRegions"),h.unbindAll("removeRegionById"),h.unbindAll("setSelectedRegion")}),[]);const Nt=e=>{var r,t,o;(r=w())==null||r.playPause(),(t=w())==null||t.setPlaybackRate(e),(o=w())==null||o.playPause()};A(()=>(document.addEventListener("keydown",Be),()=>{document.removeEventListener("keydown",Be)})),A(()=>{f({}),De()},[O]);const Fe=e=>{var r,t,o,l;if((n==null?void 0:n.current)&&(R==null?void 0:R.current)){const a=(t=(r=n==null?void 0:n.current)==null?void 0:r.getDuration())!=null?t:0,p=(o=R==null?void 0:R.current)==null?void 0:o.getBoundingClientRect();let s=(e.clientX-p.left)/(((l=R==null?void 0:R.current)==null?void 0:l.clientWidth)||0)*a;return s>a&&(s=a),s}return 0},ne=e=>{var r;const t=Fe(e);(r=n==null?void 0:n.current)==null||r.skip(t-he.current),V(t)},Ft=e=>{gt(Fe(e))},Wt=N?Math.max(N-P,0):0,zt=(d==null?void 0:d.toolName)!==tt.Empty&&(d==null?void 0:d.isEdit)!==!0&&(st==="remark"||C),We=i.createElement("div",{className:y.audioPlayer},vt&&!lt&&i.createElement(ar,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:Ot,backgroundColor:"#ffffffbb"}),i.createElement(wr,{getRegionInstanceById:I,clipping:J}),i.createElement(xr,{container:G.current}),i.createElement(Dr,{segmentTimeTip:wt}),i.createElement("div",{className:y.waveformContainer,ref:G},i.createElement("div",{id:"waveform",style:{width:`${F*100}%`},className:$({[y.waveform]:!0,"bee-audio-combined":c.current.combined,"bee-audio-clip":c.current.clipConfigurable})},nt&&i.createElement(sr,{isAudio:!0}),i.createElement("div",{ref:R,className:y.progress,onMouseDown:Bt,onMouseMove:Ft},i.createElement("div",{className:$({[y.radioTooltip]:!0}),style:{left:Le}},Ke(P)),i.createElement("div",{className:$({[y.radioTooltip]:!0,[y.mouseTooltip]:!0}),style:{left:kt}},Ke(Se)),i.createElement(Rr,{playPercentage:Le})),zt&&(fe==null?void 0:fe({currentTime:P,remainingTime:Wt,audioPlayer:w()})))),i.createElement("div",{className:y.controlBar},i.createElement(lr,{type:"link",icon:Dt,onClick:()=>{L()},className:$({[y.playButton]:!0,[y.playButtonDisabled]:be})}),i.createElement("span",{className:y.time},`${Ve(P,"ss.SSS")} / -${Ve(N-P,"ss.SSS")}`),i.createElement(ur,{playerType:cr.Audio,onChange:e=>{Nt(e)}}),i.createElement(pr,{onChange:e=>{Ae(e)},zoom:F}),i.createElement(vr,{EventBus:h})));return d?i.createElement(ot.Provider,{value:d},We,x.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?i.createElement(gr,{el:t,key:r,region:e,edgeAdsorption:Ce,clipping:J,zoom:F,instance:I(r)}):null}),i.createElement(kr,{footer:mt})):We};export{Nr as AudioPlayer,ot as AudioPlayerContext};
@@ -1 +1 @@
1
- import l from"react";import{Select as i,Divider as d}from"antd";import{useTranslation as p}from"react-i18next";import u from"../attributeList/index.js";const s={margin:"12px 20px 8px",fontSize:14,fontWeight:500,wordWrap:"break-word"},v=m=>{const{subAttributeList:c,setSubAttribute:a,getValue:r}=m,{t:n}=p();return l.createElement(l.Fragment,null,c.map(e=>{var o;return(e==null?void 0:e.subSelected)&&l.createElement("div",{style:{marginTop:12},key:e.value},l.createElement("div",{style:s},n("SubAttribute"),"-",e.key),((o=e.subSelected)==null?void 0:o.length)<5?l.createElement(u,{list:e.subSelected.map(t=>({label:t.key,value:t.value})),selectedAttribute:r(e),num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:t=>a(e.value,t),style:{marginBottom:12}}):l.createElement(i,{style:{margin:"0px 21px 17px 16px",width:"87%"},value:r(e),placeholder:n("PleaseSelect"),onChange:t=>a(e.value,t),allowClear:!0},e.subSelected.map(t=>l.createElement(i.Option,{key:t.value,value:t.value},t.key))),l.createElement(d,{style:{margin:0}}))}))};export{v as default};
1
+ import n from"react";import{Checkbox as v,Select as m,Divider as u}from"antd";import{useTranslation as s}from"react-i18next";import x from"../attributeList/index.js";const y={margin:"12px 20px 8px",fontSize:14,fontWeight:500,wordWrap:"break-word"},g=p=>{const{subAttributeList:c,setSubAttribute:t,getValue:o}=p,{t:r}=s(),i=(e,a)=>{if(Array.isArray(a)){t(e,a.join(";"));return}t(e,a)},d=e=>{const a=o(e);return(e==null?void 0:e.isMulti)?a?a==null?void 0:a.split(";"):[]:a};return n.createElement(n.Fragment,null,c.map(e=>{var a;return(e==null?void 0:e.subSelected)&&n.createElement("div",{style:{marginTop:12},key:e.value},n.createElement("div",{style:y},r("SubAttribute"),"-",e.key),((a=e.subSelected)==null?void 0:a.length)<5?(e==null?void 0:e.isMulti)?n.createElement(v.Group,{style:{padding:"0px 20px 16px 16px"},options:e.subSelected.map(l=>({label:l.key,value:l.value})),value:d(e),onChange:l=>i(e.value,l)}):n.createElement(x,{list:e.subSelected.map(l=>({label:l.key,value:l.value})),selectedAttribute:o(e),num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:l=>t(e.value,l),style:{marginBottom:12}}):n.createElement(m,{style:{margin:"0px 20px 16px 16px",width:"87%"},mode:(e==null?void 0:e.isMulti)?"multiple":void 0,value:d(e),placeholder:r("PleaseSelect"),onChange:l=>i(e.value,l),allowClear:!0},e.subSelected.map(l=>n.createElement(m.Option,{key:l.value,value:l.value},l.key))),n.createElement(u,{style:{margin:0}}))}))};export{g as default};
package/es/index.css CHANGED
@@ -1166,7 +1166,8 @@
1166
1166
  }
1167
1167
  .index-module_clipSidebar__z2E8x .index-module_attributeList__2wnCE {
1168
1168
  flex: 1;
1169
- overflow: auto;
1169
+ overflow-x: hidden;
1170
+ overflow-y: auto;
1170
1171
  }
1171
1172
  .index-module_clipSidebar__z2E8x .index-module_attributeList__2wnCE .sensebee-radio-group,
1172
1173
  .index-module_clipSidebar__z2E8x .index-module_attributeList__2wnCE .sensebee-radio-group-no-limit-height .ant-radio-group {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@labelbee/lb-components",
3
- "version": "1.23.0-alpha.25",
3
+ "version": "1.23.0-alpha.27",
4
4
  "description": "Provide a complete library of annotation components",
5
5
  "main": "./dist/index.js",
6
6
  "es": "./es/index.js",