@labelbee/lb-components 1.23.0-alpha.21 → 1.23.0-alpha.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/audioAnnotate/audioContext/index.js +1 -1
- package/dist/components/audioAnnotate/audioSide/clipSidebar/index.js +1 -1
- package/dist/components/audioAnnotate/index.js +1 -1
- package/dist/components/audioAnnotate/textInput/index.js +1 -1
- package/dist/components/audioPlayer/clipRegion/index.js +1 -1
- package/dist/components/audioPlayer/index.js +1 -1
- package/dist/types/components/audioAnnotate/audioContext/index.d.ts +9 -1
- package/dist/types/components/audioAnnotate/textInput/index.d.ts +1 -0
- package/dist/types/components/audioPlayer/index.d.ts +3 -2
- package/es/components/audioAnnotate/audioContext/index.js +1 -1
- package/es/components/audioAnnotate/audioSide/clipSidebar/index.js +1 -1
- package/es/components/audioAnnotate/index.js +1 -1
- package/es/components/audioAnnotate/textInput/index.js +1 -1
- package/es/components/audioPlayer/clipRegion/index.js +1 -1
- package/es/components/audioPlayer/index.js +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var icons=require("@ant-design/icons"),React=require("react"),antd=require("antd"),ahooks=require("ahooks"),index_module=require("./index.module.scss.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);exports.EContextType=void 0,function(e){e.before="\u524D\u6587",e.after="\u540E\u6587"}(exports.EContextType||(exports.EContextType={}));const AudioContext=e=>{const{audioContext:t}=e;if(!t||!t.visible)return null;const{content:o,type:i}=t;return React__default.default.createElement(AudioContextInfo,{title:exports.EContextType==null?void 0:exports.EContextType[i],content:o})},AudioContextInfo=e=>{const[t,o]=React.useState(!0),[i,r]=React.useState(""),{title:u,content:n}=e,a=()=>{o(!t)};return React.useEffect(()=>{r(n),o(!0)},[n]),React__default.default.createElement("div",{className:index_module.audioContextContainer},React__default.default.createElement("div",{className:index_module.title},React__default.default.createElement(icons.RightOutlined,{style:{marginRight:8},rotate:t?90:0,onClick:a}),React__default.default.createElement("span",{onClick:a},u)),t&&React__default.default.createElement("div",{className:index_module.content},React__default.default.createElement(antd.Input.TextArea,{bordered:!1,value:i,disabled:!0,style:{padding:0},autoSize:!0})))},DEFAULT_AUDIO_CLIP={selectedAttribute:"",selectedRegion:{},attributeLockList:[],clipConfigurable:!1,clipAttributeConfigurable:!1,clipAttributeList:[],clipTextConfigurable:!1,combined:!1,segment:!1},AudioClipContext=React__default.default.createContext({audioClipState:DEFAULT_AUDIO_CLIP,setAudioClipState:()=>{}}),useAudioClipStore=()=>React.useContext(AudioClipContext),AudioClipProvider=({children:e})=>{const[t,o]=ahooks.useSetState(DEFAULT_AUDIO_CLIP),i=React.useMemo(()=>({audioClipState:t,setAudioClipState:o}),[t,o]);return React__default.default.createElement(AudioClipContext.Provider,{value:i},e)};exports.AudioClipProvider=AudioClipProvider,exports.default=AudioContext,exports.useAudioClipStore=useAudioClipStore;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var icons=require("@ant-design/icons"),React=require("react"),antd=require("antd"),ahooks=require("ahooks"),index_module=require("./index.module.scss.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);exports.EContextType=void 0,function(e){e.before="\u524D\u6587",e.after="\u540E\u6587"}(exports.EContextType||(exports.EContextType={}));const DEFAULT_CLIP_TEXT_CONFIG_ITEM=[{label:"\u6587\u672C",key:"text",required:!1,default:"",maxLength:3e3}],AudioContext=e=>{const{audioContext:t}=e;if(!t||!t.visible)return null;const{content:o,type:i}=t;return React__default.default.createElement(AudioContextInfo,{title:exports.EContextType==null?void 0:exports.EContextType[i],content:o})},AudioContextInfo=e=>{const[t,o]=React.useState(!0),[i,r]=React.useState(""),{title:u,content:n}=e,a=()=>{o(!t)};return React.useEffect(()=>{r(n),o(!0)},[n]),React__default.default.createElement("div",{className:index_module.audioContextContainer},React__default.default.createElement("div",{className:index_module.title},React__default.default.createElement(icons.RightOutlined,{style:{marginRight:8},rotate:t?90:0,onClick:a}),React__default.default.createElement("span",{onClick:a},u)),t&&React__default.default.createElement("div",{className:index_module.content},React__default.default.createElement(antd.Input.TextArea,{bordered:!1,value:i,disabled:!0,style:{padding:0},autoSize:!0})))},DEFAULT_AUDIO_CLIP={selectedAttribute:"",selectedRegion:{},attributeLockList:[],clipConfigurable:!1,clipAttributeConfigurable:!1,clipAttributeList:[],clipTextConfigurable:!1,combined:!1,segment:!1,clipTextList:DEFAULT_CLIP_TEXT_CONFIG_ITEM},AudioClipContext=React__default.default.createContext({audioClipState:DEFAULT_AUDIO_CLIP,setAudioClipState:()=>{}}),useAudioClipStore=()=>React.useContext(AudioClipContext),AudioClipProvider=({children:e})=>{const[t,o]=ahooks.useSetState(DEFAULT_AUDIO_CLIP),i=React.useMemo(()=>({audioClipState:t,setAudioClipState:o}),[t,o]);return React__default.default.createElement(AudioClipContext.Provider,{value:i},e)};exports.AudioClipProvider=AudioClipProvider,exports.DEFAULT_CLIP_TEXT_CONFIG_ITEM=DEFAULT_CLIP_TEXT_CONFIG_ITEM,exports.default=AudioContext,exports.useAudioClipStore=useAudioClipStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var React=require("react"),index$2=require("../../../attributeList/index.js"),lbAnnotation=require("@labelbee/lb-annotation"),clipSmall=require("../../../../assets/annotation/audio/clipSmall.svg.js"),clipASmall=require("../../../../assets/annotation/audio/clipASmall.svg.js"),_delete=require("../../../../assets/annotation/audio/delete.svg.js"),loopA=require("../../../../assets/annotation/audio/loopA.svg.js"),audio=require("../../../../utils/audio.js"),index$1=require("../../../longText/index.js"),index=require("../../../../utils/index.js"),index_module=require("./index.module.scss.js"),reactI18next=require("react-i18next"),index$3=require("../../../subAttributeList/index.js");function _interopDefaultLegacy(
|
|
1
|
+
"use strict";var React=require("react"),index$2=require("../../../attributeList/index.js"),lbAnnotation=require("@labelbee/lb-annotation"),clipSmall=require("../../../../assets/annotation/audio/clipSmall.svg.js"),clipASmall=require("../../../../assets/annotation/audio/clipASmall.svg.js"),_delete=require("../../../../assets/annotation/audio/delete.svg.js"),loopA=require("../../../../assets/annotation/audio/loopA.svg.js"),audio=require("../../../../utils/audio.js"),index$1=require("../../../longText/index.js"),index=require("../../../../utils/index.js"),index_module=require("./index.module.scss.js"),reactI18next=require("react-i18next"),index$3=require("../../../subAttributeList/index.js");function _interopDefaultLegacy(r){return r&&typeof r=="object"&&"default"in r?r:{default:r}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(r,e,l)=>e in r?__defProp(r,e,{enumerable:!0,configurable:!0,writable:!0,value:l}):r[e]=l,__spreadValues=(r,e)=>{for(var l in e||(e={}))__hasOwnProp.call(e,l)&&__defNormalProp(r,l,e[l]);if(__getOwnPropSymbols)for(var l of __getOwnPropSymbols(e))__propIsEnum.call(e,l)&&__defNormalProp(r,l,e[l]);return r},__spreadProps=(r,e)=>__defProps(r,__getOwnPropDescs(e));const ClipSidebar=r=>{const{regions:e=[],updateRegion:l,useAudioClipStore:g}=r,{audioClipState:E,setAudioClipState:m}=g(),{t:p}=reactI18next.useTranslation(),{selectedAttribute:_,selectedRegion:v,clipTextConfigurable:S,clipAttributeList:o,clipAttributeConfigurable:c,secondaryAttributeConfigurable:x,subAttributeList:A,clipTextList:d}=E,{id:i}=v,n=React.useMemo(()=>e.find(t=>t.id===i),[e,i]),y=t=>{e.length&&i&&l(__spreadProps(__spreadValues({},n),{attribute:t})),m({selectedAttribute:t})},C=(t,a)=>{var s;if(e.length&&i){const u=(s=n==null?void 0:n.subAttribute)!=null?s:{};l(__spreadProps(__spreadValues({},n),{subAttribute:__spreadProps(__spreadValues({},u),{[t]:a})}))}},b=[{label:"\u65E0\u5C5E\u6027",value:"",key:"\u65E0\u5C5E\u6027"},...o.map(t=>__spreadProps(__spreadValues({},t),{label:t.key}))],h=t=>{let a="";return S&&(d==null?void 0:d.length)>0&&d.forEach((s,u)=>{a=a+`${!c&&u===0?"":"\uFF0C"}${s.label}\uFF1A${t[s.key]}`}),a};return React__default.default.createElement("div",{className:index_module.clipSidebar},React__default.default.createElement("div",{className:index_module.clipResults},React__default.default.createElement("div",{className:index_module.title},p("ClippedAudio")),e.length>0?React__default.default.createElement("div",{className:index_module.regions},e.map(t=>{const{id:a,attribute:s,text:u,start:f,end:j}=t,q=a===i&&v.loop,N=`${c?audio.getAttributeShowText(s,b):""}${h(t)}`;return React__default.default.createElement("div",{className:index.classnames({[index_module.region]:!0,[index_module.selected]:a===i}),key:a,onClick:()=>{lbAnnotation.EventBus.emit("setSelectedRegion",{id:a,playImmediately:!0})}},React__default.default.createElement("div",{className:index_module.label},q&&React__default.default.createElement("img",{src:loopA}),React__default.default.createElement("div",{className:index_module.text},React__default.default.createElement(index$1,{text:N}))),React__default.default.createElement("div",{className:index_module.time},React__default.default.createElement("img",{src:i===a?clipASmall:clipSmall}),audio.timeFormat(f,"ss.SSS")," -",audio.timeFormat(j,"ss.SSS")),React__default.default.createElement("div",{className:index_module.delete,onClick:()=>{lbAnnotation.EventBus.emit("removeRegionById",a)}},React__default.default.createElement("img",{src:_delete})))})):React__default.default.createElement("div",{className:index_module.empty},p("NoClippedData"))),c&&(o==null?void 0:o.length)>0&&React__default.default.createElement("div",{className:index_module.attributeList},React__default.default.createElement(index$2.default,{list:b,attributeChanged:y,selectedAttribute:_,attributeLockChange:t=>{m({attributeLockList:t})}}),i&&x&&React__default.default.createElement(index$3,{subAttributeList:A,setSubAttribute:C,getValue:t=>{var a;return(a=n==null?void 0:n.subAttribute)==null?void 0:a[t.value]}})))};module.exports=ClipSidebar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var React=require("react"),index$3=require("../audioPlayer/index.js"),dom=require("../../utils/dom.js"),index$4=require("../predictTracking/previewResult/index.js"),es=require("antd/es"),antd=require("antd"),index$5=require("../../constant/index.js"),lbAnnotation=require("@labelbee/lb-annotation"),index_module=require("./index.module.scss.js"),index$2=require("./tagResultShow/index.js"),index$1=require("./audioContext/index.js"),index$6=require("./textInput/index.js"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),ctx=require("../../store/ctx.js"),index=require("../../utils/index.js"),annotation=require("../../hooks/annotation.js"),index$7=require("../../views/MainView/sidebar/index.js"),index$8=require("./audioSide/labelSidebar/index.js"),index$9=require("./audioSide/clipSidebar/index.js"),tag=require("../../assets/annotation/audio/tag.svg.js"),tagA=require("../../assets/annotation/audio/tagA.svg.js"),clip=require("../../assets/annotation/audio/clip.svg.js"),clipA=require("../../assets/annotation/audio/clipA.svg.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,n,a)=>n in e?__defProp(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,__spreadValues=(e,n)=>{for(var a in n||(n={}))__hasOwnProp.call(n,a)&&__defNormalProp(e,a,n[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(n))__propIsEnum.call(n,a)&&__defNormalProp(e,a,n[a]);return e},__spreadProps=(e,n)=>__defProps(e,__getOwnPropDescs(n));const{EAudioToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,{Sider,Content}=es.Layout,layoutCls=`${index$5.prefix}-layout`,ToggleAudioOption=({setSideTab:e,sideTab:n})=>{const a=[{tab:"tag",commonSvg:tag,selectedSvg:tagA},{tab:"clip",commonSvg:clip,selectedSvg:clipA}];return React__default.default.createElement("div",{className:index_module.toggleAudioOption},a.map((v,x)=>{const{tab:c,selectedSvg:E,commonSvg:S}=v;return React__default.default.createElement("div",{key:x,className:index_module.option},React__default.default.createElement("img",{className:index_module.icon,src:n===c?E:S,onClick:()=>{n!==c&&e(c)}}))}))},AudioTextToolTextarea=({result:e,inputDisabled:n,updateText:a,configList:v,autofocus:x,preContext:c,isCheck:E,clipAttributeConfigurable:S,clipTextConfigurable:q,textConfigurable:g,updateRegion:y,clipAttributeList:f})=>React__default.default.createElement("div",{className:index_module.textareaContainer},React__default.default.createElement("div",{className:index_module.textareaContent},React__default.default.createElement(index$6.default,{isCheck:E,result:e==null?void 0:e.value,textInputDisabled:n,textID:(e==null?void 0:e.id)||0,updateText:a,configList:v,autofocus:!n&&x,preContext:c,regions:e==null?void 0:e.regions,clipAttributeConfigurable:S,clipTextConfigurable:q,textConfigurable:g,updateRegion:y,clipAttributeList:f}))),AudioSideBar=e=>{var n,a;const{sider:v,config:x,result:c,updateTagResult:E,updateRegion:S,isEdit:q,tagConfigurable:g,clipConfigurable:y}=e;let f=(x==null?void 0:x.inputList)||[],C=(n=c==null?void 0:c.tag)!=null?n:{},r=(a=c==null?void 0:c.regions)!=null?a:[];const[D,P]=React.useState([]),[_,p]=React.useState("tag");React.useEffect(()=>{if(!g&&y){p("clip");return}p("tag")},[g,y]),React.useEffect(()=>(window.addEventListener("keydown",O),()=>{window.removeEventListener("keydown",O)}));const O=o=>{if(g&&y)switch(o.keyCode){case EKeyCode.L:p("tag");break;case EKeyCode.X:p("clip");break}if(_==="tag"){if(!lbAnnotation.CommonToolUtils.hotkeyFilter(o))return;lbAnnotation.CommonToolUtils.isMoveKey(o==null?void 0:o.keyCode)&&o.preventDefault();let i=o.keyCode;if(i&&(i<=57&&i>=49||i<=105&&i>=97)){i>57?i=i-97:i=i-49;const d=D.slice();f.length===1?(T(0,i),P([0,i]),setTimeout(()=>{P([])},500)):d.length===1?(T(d[0],i),P([d[0],i]),setTimeout(()=>{P([])},500)):P([i])}}},T=(o,i)=>{if(o<f.length&&f[o].subSelected&&i<f[o].subSelected.length){const d=f[o].value,m=f[o].isMulti;let j=f[o].subSelected[i].value,M=0;const $=C;for(const R in C)if(R===f[o].value){if(M++,m===!0){const w=$[R].split(";").filter(U=>U!==""),I=w.indexOf(j);I===-1?w.push(j):w.splice(I,1),j=w.join(";")}j===""?delete $[R]:$[R]=j}M===0&&Object.assign(C,{[d]:j}),E(C)}},h=o=>{delete C[o],E(C)},A=g&&y&&React__default.default.createElement(ToggleAudioOption,{setSideTab:p,sideTab:_}),N=_==="tag"&&React__default.default.createElement(index$8.default,{labelInfoSet:g?f:[],labelSelectedList:D,setLabel:T,tagResult:C,clearResult:h,isEdit:q,withPanelTab:!1}),s=_==="clip"&&React__default.default.createElement(index$9,{regions:r,updateRegion:S,useAudioClipStore:index$1.useAudioClipStore});return v?typeof v=="function"?React__default.default.createElement("div",{className:`${index$7.sidebarCls}`},v({toggleAudioOption:A,labelSidebar:N,clipSidebar:s})):v:React__default.default.createElement("div",{className:`${index$7.sidebarCls}`},React__default.default.createElement("div",{className:`${index$7.sidebarCls}__content`},A,N,s))},AudioAnnotate=e=>{var n,a,v,x,c,E,S,q,g;const y=(a=(n=e.style)==null?void 0:n.sider)==null?void 0:a.width,{step:f,stepList:C,audioContext:r,sider:D,drawLayerSlot:P,imgList:_,imgIndex:p,currentData:O,config:T,stepInfo:h}=e,A=lbAnnotation.CommonToolUtils.getCurrentStepToolAndConfig(f,C),N=index.jsonParser(O.result),{toolInstanceRef:s}=annotation.useCustomToolInstance({basicInfo:N}),[o,i]=React.useState(!0),[d,m]=React.useState(null),[j,M]=React.useState(0);React.useEffect(()=>{i(!0)},[p]),React.useEffect(()=>{o===!1&&ne()},[o]),React.useEffect(()=>{$()},[]),React.useEffect(()=>{s.current.exportData=()=>[[d],{duration:j,valid:B}],s.current.setResult=se,s.current.clearResult=ue,s.current.currentPageResult=d==null?void 0:d.regions,s.current.emit("updatePageNumber")},[d]);const $=()=>{s.current.emit=t=>{const l=s.current.fns.get(t);l&&l.forEach(u=>{u&&(u==null||u())})},s.current.fns=new Map,s.current.singleOn=(t,l)=>{s.current.fns.set(t,[l])},s.current.on=(t,l)=>{s.current.singleOn(t,l)},s.current.unbindAll=t=>{s.current.fns.delete(t)}},R=React.useMemo(()=>{const t=N[`step_${h==null?void 0:h.step}`];return(t==null?void 0:t.result)||[]},[T,N,h]),{tagConfigurable:w,textConfigurable:I=!0,clipConfigurable:U=!1,clipAttributeConfigurable:W=!1,clipAttributeList:F=[],clipTextConfigurable:V=!1,subAttributeList:G=[],secondaryAttributeConfigurable:H=!1,inputList:J=[],configList:Q=[]}=React.useMemo(()=>{if(A)return lbAnnotation.CommonToolUtils.jsonParser(A==null?void 0:A.config)},[A]),Y={clipConfigurable:U,clipAttributeConfigurable:W,clipAttributeList:F,clipTextConfigurable:V,subAttributeList:G,secondaryAttributeConfigurable:H},B=r?r==null?void 0:r.valid:!0,Z=(x=(v=lbAnnotation.CommonToolUtils.jsonParser(O.result))==null?void 0:v.duration)!=null?x:0,ee=B?Z:0,te=!B||o||![I,V].includes(!0);let X={};if(p!==-1&&(_==null?void 0:_.length)){const t=(c=_[p])==null?void 0:c.preResult,l=(r==null?void 0:r.isEdit)?(E=r==null?void 0:r.stepConfig)==null?void 0:E.loadPreStep:h==null?void 0:h.loadPreStep;if(t&&l){const u=lbAnnotation.CommonToolUtils.jsonParser(t),b=(q=(S=u==null?void 0:u.config)==null?void 0:S.context)!=null?q:{};Object.keys(b).forEach(L=>{L&&b[L]&&(X[L]={visible:!0,content:b[L],type:L})})}}const ne=()=>{(R==null?void 0:R.length)>0?m(R[0]):m({id:lbAnnotation.uuid(),sourceID:"",value:z(),tag:le(),regions:[]})},z=(t=!0)=>{const l={};let u=T.configList||[];return u.length>0&&u.forEach(b=>{l[b.key]=t&&b.default||""}),l},le=()=>lbAnnotation.TagUtils.getDefaultResultByConfig(T.inputList||[]),oe=({duration:t,hasError:l})=>{i(!1),M(t)},ie=t=>{m(l=>__spreadProps(__spreadValues({},l),{regions:((l==null?void 0:l.regions)||[]).filter(u=>u.id!==t)}))},K=t=>{m(l=>{var u;const b=(u=l==null?void 0:l.regions)!=null?u:[],{id:L}=t;return b.find(k=>k.id===L)?__spreadProps(__spreadValues({},l),{regions:b.map(k=>L===k.id?__spreadValues(__spreadValues({},k),t):k)}):__spreadProps(__spreadValues({},l),{regions:[...b,t]})})},ae=(t,l)=>{m(u=>__spreadProps(__spreadValues({},u),{value:__spreadProps(__spreadValues({},u.value),{[l]:t})}))},re=t=>{m(l=>__spreadProps(__spreadValues({},l),{tag:t}))},se=t=>{m(t)},ue=()=>{m(t=>__spreadProps(__spreadValues({},t),{value:z(),tag:{},regions:[]})),lbAnnotation.EventBus.emit("clearRegions")};return React__default.default.createElement(index$1.AudioClipProvider,null,React__default.default.createElement(antd.Spin,{spinning:o,wrapperClassName:"audio-tool-spinner"},React__default.default.createElement(es.Layout,{className:dom.getClassName("layout","container"),style:{height:"100%"}},e==null?void 0:e.leftSider,React__default.default.createElement(Content,{className:`${layoutCls}__content`},React__default.default.createElement("div",{className:index_module.containerWrapper},React__default.default.createElement("div",{className:index_module.audioWrapper},w&&React__default.default.createElement(index$2,{result:d==null?void 0:d.tag,labelInfoSet:J,hasPromptLayer:!!(r==null?void 0:r.promptLayer)}),r==null?void 0:r.promptLayer,React__default.default.createElement(index$3.AudioPlayer,__spreadValues({context:{isEdit:r==null?void 0:r.isEdit,count:ee,toolName:EAudioToolName.AudioTextTool,imgIndex:p},drawLayerSlot:P,fileData:O,onLoaded:oe,invalid:!B,updateRegion:K,removeRegion:ie,regions:d==null?void 0:d.regions,activeToolPanel:r==null?void 0:r.activeToolPanel,footer:e.footer},Y))),(I||V)&&React__default.default.createElement(AudioTextToolTextarea,{preContext:X,result:d,inputDisabled:te,updateText:ae,updateRegion:K,configList:Q,autofocus:!1,textConfigurable:I,clipTextConfigurable:V,clipAttributeList:F,clipAttributeConfigurable:W}))),React__default.default.createElement(Sider,{className:`${layoutCls}__side`,width:y!=null?y:240,style:(g=e.style)==null?void 0:g.sider},React__default.default.createElement(AudioSideBar,{sider:D,config:T,result:d,updateTagResult:re,updateRegion:K,isEdit:r==null?void 0:r.isEdit,tagConfigurable:w,clipConfigurable:U})),React__default.default.createElement(index$4,null))))};var AudioAnnotate$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(AudioAnnotate);module.exports=AudioAnnotate$1;
|
|
1
|
+
"use strict";var React=require("react"),index$3=require("../audioPlayer/index.js"),dom=require("../../utils/dom.js"),index$4=require("../predictTracking/previewResult/index.js"),es=require("antd/es"),antd=require("antd"),index$5=require("../../constant/index.js"),lbAnnotation=require("@labelbee/lb-annotation"),index_module=require("./index.module.scss.js"),index$2=require("./tagResultShow/index.js"),index$1=require("./audioContext/index.js"),index$6=require("./textInput/index.js"),reactRedux=require("react-redux"),map=require("../../store/annotation/map.js"),ctx=require("../../store/ctx.js"),index=require("../../utils/index.js"),annotation=require("../../hooks/annotation.js"),index$7=require("../../views/MainView/sidebar/index.js"),index$8=require("./audioSide/labelSidebar/index.js"),index$9=require("./audioSide/clipSidebar/index.js"),tag=require("../../assets/annotation/audio/tag.svg.js"),tagA=require("../../assets/annotation/audio/tagA.svg.js"),clip=require("../../assets/annotation/audio/clip.svg.js"),clipA=require("../../assets/annotation/audio/clipA.svg.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,n,a)=>n in e?__defProp(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,__spreadValues=(e,n)=>{for(var a in n||(n={}))__hasOwnProp.call(n,a)&&__defNormalProp(e,a,n[a]);if(__getOwnPropSymbols)for(var a of __getOwnPropSymbols(n))__propIsEnum.call(n,a)&&__defNormalProp(e,a,n[a]);return e},__spreadProps=(e,n)=>__defProps(e,__getOwnPropDescs(n));const{EAudioToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,{Sider,Content}=es.Layout,layoutCls=`${index$5.prefix}-layout`,ToggleAudioOption=({setSideTab:e,sideTab:n})=>{const a=[{tab:"tag",commonSvg:tag,selectedSvg:tagA},{tab:"clip",commonSvg:clip,selectedSvg:clipA}];return React__default.default.createElement("div",{className:index_module.toggleAudioOption},a.map((v,E)=>{const{tab:c,selectedSvg:y,commonSvg:_}=v;return React__default.default.createElement("div",{key:E,className:index_module.option},React__default.default.createElement("img",{className:index_module.icon,src:n===c?y:_,onClick:()=>{n!==c&&e(c)}}))}))},AudioTextToolTextarea=({result:e,inputDisabled:n,updateText:a,configList:v,autofocus:E,preContext:c,isCheck:y,clipAttributeConfigurable:_,clipTextConfigurable:q,textConfigurable:p,updateRegion:C,clipAttributeList:f,clipTextList:g})=>React__default.default.createElement("div",{className:index_module.textareaContainer},React__default.default.createElement("div",{className:index_module.textareaContent},React__default.default.createElement(index$6.default,{isCheck:y,result:e==null?void 0:e.value,textInputDisabled:n,textID:(e==null?void 0:e.id)||0,updateText:a,configList:v,autofocus:!n&&E,preContext:c,regions:e==null?void 0:e.regions,clipAttributeConfigurable:_,clipTextConfigurable:q,textConfigurable:p,updateRegion:C,clipAttributeList:f,clipTextList:g}))),AudioSideBar=e=>{var n,a;const{sider:v,config:E,result:c,updateTagResult:y,updateRegion:_,isEdit:q,tagConfigurable:p,clipConfigurable:C}=e;let f=(E==null?void 0:E.inputList)||[],g=(n=c==null?void 0:c.tag)!=null?n:{},r=(a=c==null?void 0:c.regions)!=null?a:[];const[D,P]=React.useState([]),[S,m]=React.useState("tag");React.useEffect(()=>{if(!p&&C){m("clip");return}m("tag")},[p,C]),React.useEffect(()=>(window.addEventListener("keydown",O),()=>{window.removeEventListener("keydown",O)}));const O=o=>{if(p&&C)switch(o.keyCode){case EKeyCode.L:m("tag");break;case EKeyCode.X:m("clip");break}if(S==="tag"){if(!lbAnnotation.CommonToolUtils.hotkeyFilter(o))return;lbAnnotation.CommonToolUtils.isMoveKey(o==null?void 0:o.keyCode)&&o.preventDefault();let i=o.keyCode;if(i&&(i<=57&&i>=49||i<=105&&i>=97)){i>57?i=i-97:i=i-49;const d=D.slice();f.length===1?(T(0,i),P([0,i]),setTimeout(()=>{P([])},500)):d.length===1?(T(d[0],i),P([d[0],i]),setTimeout(()=>{P([])},500)):P([i])}}},T=(o,i)=>{if(o<f.length&&f[o].subSelected&&i<f[o].subSelected.length){const d=f[o].value,b=f[o].isMulti;let L=f[o].subSelected[i].value,M=0;const $=g;for(const j in g)if(j===f[o].value){if(M++,b===!0){const w=$[j].split(";").filter(U=>U!==""),N=w.indexOf(L);N===-1?w.push(L):w.splice(N,1),L=w.join(";")}L===""?delete $[j]:$[j]=L}M===0&&Object.assign(g,{[d]:L}),y(g)}},A=o=>{delete g[o],y(g)},h=p&&C&&React__default.default.createElement(ToggleAudioOption,{setSideTab:m,sideTab:S}),I=S==="tag"&&React__default.default.createElement(index$8.default,{labelInfoSet:p?f:[],labelSelectedList:D,setLabel:T,tagResult:g,clearResult:A,isEdit:q,withPanelTab:!1}),s=S==="clip"&&React__default.default.createElement(index$9,{regions:r,updateRegion:_,useAudioClipStore:index$1.useAudioClipStore});return v?typeof v=="function"?React__default.default.createElement("div",{className:`${index$7.sidebarCls}`},v({toggleAudioOption:h,labelSidebar:I,clipSidebar:s})):v:React__default.default.createElement("div",{className:`${index$7.sidebarCls}`},React__default.default.createElement("div",{className:`${index$7.sidebarCls}__content`},h,I,s))},AudioAnnotate=e=>{var n,a,v,E,c,y,_,q,p;const C=(a=(n=e.style)==null?void 0:n.sider)==null?void 0:a.width,{step:f,stepList:g,audioContext:r,sider:D,drawLayerSlot:P,imgList:S,imgIndex:m,currentData:O,config:T,stepInfo:A}=e,h=lbAnnotation.CommonToolUtils.getCurrentStepToolAndConfig(f,g),I=index.jsonParser(O.result),{toolInstanceRef:s}=annotation.useCustomToolInstance({basicInfo:I}),[o,i]=React.useState(!0),[d,b]=React.useState(null),[L,M]=React.useState(0);React.useEffect(()=>{i(!0)},[m]),React.useEffect(()=>{o===!1&&le()},[o]),React.useEffect(()=>{$()},[]),React.useEffect(()=>{s.current.exportData=()=>[[d],{duration:L,valid:B}],s.current.setResult=ue,s.current.clearResult=de,s.current.currentPageResult=d==null?void 0:d.regions,s.current.emit("updatePageNumber")},[d]);const $=()=>{s.current.emit=t=>{const l=s.current.fns.get(t);l&&l.forEach(u=>{u&&(u==null||u())})},s.current.fns=new Map,s.current.singleOn=(t,l)=>{s.current.fns.set(t,[l])},s.current.on=(t,l)=>{s.current.singleOn(t,l)},s.current.unbindAll=t=>{s.current.fns.delete(t)}},j=React.useMemo(()=>{const t=I[`step_${A==null?void 0:A.step}`];return(t==null?void 0:t.result)||[]},[T,I,A]),{tagConfigurable:w,textConfigurable:N=!0,clipConfigurable:U=!1,clipAttributeConfigurable:F=!1,clipAttributeList:W=[],clipTextConfigurable:V=!1,subAttributeList:H=[],secondaryAttributeConfigurable:J=!1,inputList:Q=[],configList:Y=[],clipTextList:X=index$1.DEFAULT_CLIP_TEXT_CONFIG_ITEM}=React.useMemo(()=>{if(h)return lbAnnotation.CommonToolUtils.jsonParser(h==null?void 0:h.config)},[h]),Z={clipConfigurable:U,clipAttributeConfigurable:F,clipAttributeList:W,clipTextConfigurable:V,subAttributeList:H,secondaryAttributeConfigurable:J,clipTextList:X},B=r?r==null?void 0:r.valid:!0,ee=(E=(v=lbAnnotation.CommonToolUtils.jsonParser(O.result))==null?void 0:v.duration)!=null?E:0,te=B?ee:0,ne=!B||o||![N,V].includes(!0);let G={};if(m!==-1&&(S==null?void 0:S.length)){const t=(c=S[m])==null?void 0:c.preResult,l=(r==null?void 0:r.isEdit)?(y=r==null?void 0:r.stepConfig)==null?void 0:y.loadPreStep:A==null?void 0:A.loadPreStep;if(t&&l){const u=lbAnnotation.CommonToolUtils.jsonParser(t),x=(q=(_=u==null?void 0:u.config)==null?void 0:_.context)!=null?q:{};Object.keys(x).forEach(R=>{R&&x[R]&&(G[R]={visible:!0,content:x[R],type:R})})}}const le=()=>{(j==null?void 0:j.length)>0?b(j[0]):b({id:lbAnnotation.uuid(),sourceID:"",value:z(),tag:oe(),regions:[]})},z=(t=!0)=>{const l={};let u=T.configList||[];return u.length>0&&u.forEach(x=>{l[x.key]=t&&x.default||""}),l},oe=()=>lbAnnotation.TagUtils.getDefaultResultByConfig(T.inputList||[]),ie=({duration:t,hasError:l})=>{i(!1),M(t)},ae=t=>{b(l=>__spreadProps(__spreadValues({},l),{regions:((l==null?void 0:l.regions)||[]).filter(u=>u.id!==t)}))},K=t=>{b(l=>{var u;const x=(u=l==null?void 0:l.regions)!=null?u:[],{id:R}=t;return x.find(k=>k.id===R)?__spreadProps(__spreadValues({},l),{regions:x.map(k=>R===k.id?__spreadValues(__spreadValues({},k),t):k)}):__spreadProps(__spreadValues({},l),{regions:[...x,t]})})},re=(t,l)=>{b(u=>__spreadProps(__spreadValues({},u),{value:__spreadProps(__spreadValues({},u.value),{[l]:t})}))},se=t=>{b(l=>__spreadProps(__spreadValues({},l),{tag:t}))},ue=t=>{b(t)},de=()=>{b(t=>__spreadProps(__spreadValues({},t),{value:z(),tag:{},regions:[]})),lbAnnotation.EventBus.emit("clearRegions")};return React__default.default.createElement(index$1.AudioClipProvider,null,React__default.default.createElement(antd.Spin,{spinning:o,wrapperClassName:"audio-tool-spinner"},React__default.default.createElement(es.Layout,{className:dom.getClassName("layout","container"),style:{height:"100%"}},e==null?void 0:e.leftSider,React__default.default.createElement(Content,{className:`${layoutCls}__content`},React__default.default.createElement("div",{className:index_module.containerWrapper},React__default.default.createElement("div",{className:index_module.audioWrapper},w&&React__default.default.createElement(index$2,{result:d==null?void 0:d.tag,labelInfoSet:Q,hasPromptLayer:!!(r==null?void 0:r.promptLayer)}),r==null?void 0:r.promptLayer,React__default.default.createElement(index$3.AudioPlayer,__spreadValues({context:{isEdit:r==null?void 0:r.isEdit,count:te,toolName:EAudioToolName.AudioTextTool,imgIndex:m},drawLayerSlot:P,fileData:O,onLoaded:ie,invalid:!B,updateRegion:K,removeRegion:ae,regions:d==null?void 0:d.regions,activeToolPanel:r==null?void 0:r.activeToolPanel,footer:e.footer},Z))),(N||V)&&React__default.default.createElement(AudioTextToolTextarea,{preContext:G,result:d,inputDisabled:ne,updateText:re,updateRegion:K,configList:Y,autofocus:!1,textConfigurable:N,clipTextConfigurable:V,clipAttributeList:W,clipAttributeConfigurable:F,clipTextList:X}))),React__default.default.createElement(Sider,{className:`${layoutCls}__side`,width:C!=null?C:240,style:(p=e.style)==null?void 0:p.sider},React__default.default.createElement(AudioSideBar,{sider:D,config:T,result:d,updateTagResult:se,updateRegion:K,isEdit:r==null?void 0:r.isEdit,tagConfigurable:w,clipConfigurable:U})),React__default.default.createElement(index$4,null))))};var AudioAnnotate$1=reactRedux.connect(map.a2MapStateToProps,null,null,{context:ctx.LabelBeeContext})(AudioAnnotate);module.exports=AudioAnnotate$1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),antd=require("antd"),icons=require("@ant-design/icons"),index$1=require("../../../views/MainView/sidebar/TextToolSidebar/index.js"),audio=require("../../../utils/audio.js"),lbAnnotation=require("@labelbee/lb-annotation"),classNames=require("classnames"),index=require("../audioContext/index.js"),index_module=require("./index.module.scss.js"),reactI18next=require("react-i18next");function _interopDefaultLegacy(l){return l&&typeof l=="object"&&"default"in l?l:{default:l}}var React__default=_interopDefaultLegacy(React),classNames__default=_interopDefaultLegacy(classNames),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(l,u,n)=>u in l?__defProp(l,u,{enumerable:!0,configurable:!0,writable:!0,value:n}):l[u]=n,__spreadValues=(l,u)=>{for(var n in u||(u={}))__hasOwnProp.call(u,n)&&__defNormalProp(l,n,u[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(u))__propIsEnum.call(u,n)&&__defNormalProp(l,n,u[n]);return l},__spreadProps=(l,u)=>__defProps(l,__getOwnPropDescs(u));const EKeyCode=lbAnnotation.cKeyCode.default,ClearIcon=({onClick:l,title:u,disabled:n})=>React__default.default.createElement(antd.Tooltip,{placement:"bottom",title:u},React__default.default.createElement("span",{className:classNames__default.default({[index_module.clearIcon]:!0,[index_module.disabled]:n}),onClick:l})),SingleTextInput=l=>{var u;const{t:n}=reactI18next.useTranslation(),k=React.useRef(null),[f,C]=React.useState(!1),[h,m]=React.useState(!1),{disabled:r,config:o,result:B,updateText:E,index:v,switchToNextTextarea:A,hasMultiple:D,textID:F,addPlaceholder:p,onFocus:T,onBlur:b,onFocusStyle:y={},extra:P}=l,{maxLength:x}=o,w=B?B[o.key]:"",N=(u=w==null?void 0:w.length)!=null?u:0,S=t=>{E&&(E(t,o.key),o.required&&m(!t))},O=D&&A,i={id:`textInput-${v}`,ref:k,disabled:r,value:w,maxLength:x,autoSize:{minRows:2,maxRows:6},onChange:t=>{const s=t.target.value;S(s)},onFocus:t=>{C(!0),T==null||T(t),t.target.value&&m(!1)},onBlur:t=>{C(!1),b==null||b(t),o.required&&m(!t.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:t=>{const{keyCode:s}=t;if(t.ctrlKey){if(s===EKeyCode.Enter&&t.preventDefault(),p&&[EKeyCode.One,EKeyCode.Two,EKeyCode.Three].includes(s))switch(t.preventDefault(),s){case EKeyCode.One:p("\u4986");break;case EKeyCode.Two:p("\u652B");break;case EKeyCode.Three:p("\u7383");break}}else s===EKeyCode.Tab&&O?(t.preventDefault(),t.nativeEvent.stopImmediatePropagation(),A(v)):t.nativeEvent.stopPropagation()}},c=React__default.default.createElement("div",{className:index_module.textAreaFooter},React__default.default.createElement("div",{className:index_module.hotkeyTip},O&&React__default.default.createElement("span",null,"[",n("Switch"),"]Tab"),React__default.default.createElement("span",null,"[",n("TurnPage"),"]Ctrl+Enter")),React__default.default.createElement("div",{className:index_module.wordCount},React__default.default.createElement("span",{className:N>=x?index_module.warning:""},N),"/",React__default.default.createElement("span",null,x)));return React.useEffect(()=>{r&&C(!1)},[r]),React.useEffect(()=>{m(!1)},[F]),React__default.default.createElement("div",{className:index_module.textField},React__default.default.createElement("div",{className:index_module.label},React__default.default.createElement("span",{className:classNames__default.default({[index_module.required]:o.required})},o.label),React__default.default.createElement(ClearIcon,{onClick:()=>{r||S("")},title:"",disabled:r}),React__default.default.createElement("div",{className:index_module.extra},P)),React__default.default.createElement("div",{className:classNames__default.default({disabled:r,"textarea-outline":!0,"ant-input-focused":f,[index_module.textareaContainer]:!0,[index_module.focus]:f,[index_module.invalid]:h}),style:f?y:{}},React__default.default.createElement(index$1.TextareaWithFooter,{footer:c,textareaProps:i})))},TextInput=l=>{const{configList:u,autofocus:n,textID:k,result:f,showText:C,updateText:h,toggleShowText:m,textInputDisabled:r,isCheck:o,isEdit:B,config:E,preContext:v,regions:A=[],textConfigurable:D=!0,clipTextConfigurable:F,clipAttributeConfigurable:p,updateRegion:T,clipAttributeList:b=[]}=l,{t:y}=reactI18next.useTranslation(),[P,x]=React.useState(0),[w,N]=React.useState(""),S=React.useRef(null),{audioClipState:O}=index.useAudioClipStore(),i=u||[__spreadValues({},audio.DEFAULT_TEXT_CONFIG_ITEM)];let c=A;if(F&&!o){const e=O.selectedRegion.id;c=c.filter(a=>a.id===e)}const t=e=>{setTimeout(()=>{const a=document.getElementById(`textInput-${e}`);a&&(x(e),a.focus(),a.select(),a.scrollIntoView({behavior:"smooth",block:"center"}))})},s=e=>{const a=D?i.length:0,d=F?c.length:0,g=a+d,I=(e+1)%g;t(I)},j=e=>{e.keyCode===EKeyCode.Tab&&(e.preventDefault(),i.length>0&&t(0))},L=e=>{const a=document.getElementById(`textInput-${P}`);if(!(E==null?void 0:E.enablePlaceholderHotkey)||!a||!h)return;const{value:d,selectionStart:g,selectionEnd:I}=a,_=`${d.slice(0,g)}${e}${d.slice(I)}`;h(_,i[P].key),N(e),setTimeout(()=>{a.setSelectionRange(g+1,g+1),a.focus()},0),clearTimeout(S.current),S.current=setTimeout(()=>{N("")},400)};React.useEffect(()=>(B||document.addEventListener("keydown",j),()=>{document.removeEventListener("keydown",j)}),[u]),React.useEffect(()=>{n&&!r&&t(0)},[k]);let q=i;o&&(q=i.filter(e=>(f==null?void 0:f[e.key])!==void 0));let M={};return F&&c&&c.forEach(e=>{const{id:a,text:d}=e;M[a]=d}),React__default.default.createElement(React__default.default.Fragment,null,(E==null?void 0:E.enablePlaceholderHotkey)&&React__default.default.createElement("div",{className:index_module.placeholderHotkey},React__default.default.createElement("div",{className:index_module.title},"\u5360\u4F4D\u7B26\u5FEB\u6377\u8F93\u5165",React__default.default.createElement(antd.Tooltip,{overlayStyle:{maxWidth:240},title:React__default.default.createElement("div",null,React__default.default.createElement("div",null,"\u4986\uFF08Ctrl+1\uFF09\uFF1A"),React__default.default.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4F46\u53EA\u6839\u636E\u8FD9\u4E2A\u5B57\u7684\u5F62\u72B6\u5C31\u53EF\u4EE5\u731C\u51FA\u662F\u4EC0\u4E48\u5B57"),React__default.default.createElement("div",null,"\u652B\uFF08Ctrl+2\uFF09\uFF1A"),React__default.default.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4E14\u65E0\u6CD5\u6839\u636E\u5F62\u72B6\u731C\u5B57\uFF0C\u4F46\u80FD\u7ED3\u5408\u4E0A\u4E0B\u6587\u8BED\u4E49\u5224\u65AD\u51FA\u662F\u4EC0\u4E48\u5B57"),React__default.default.createElement("div",null,"\u7383\uFF08Ctrl+3\uFF09\uFF1A"),React__default.default.createElement("div",null,"\u5B8C\u5168\u65E0\u6CD5\u5224\u65AD\u662F\u4EC0\u4E48\u5B57")),placement:"bottom"},React__default.default.createElement(icons.QuestionCircleOutlined,{className:index_module.questionIcon}))),React__default.default.createElement(antd.Radio.Group,{value:w},React__default.default.createElement(antd.Radio.Button,{value:"\u4986",onClick:e=>L(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u4986 (\u89C6\u89C9)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+1"))),React__default.default.createElement(antd.Radio.Button,{value:"\u652B",onClick:e=>L(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u652B (\u8BED\u4E49)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+2"))),React__default.default.createElement(antd.Radio.Button,{value:"\u7383",onClick:e=>L(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u7383 (\u65E0\u6548)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+3"))))),React__default.default.createElement("div",{className:index_module.textInputContainer},React__default.default.createElement(index.default,{audioContext:v==null?void 0:v.before}),D&&q.map((e,a)=>React__default.default.createElement(SingleTextInput,{config:e,key:a,index:a,result:f,updateText:h,switchToNextTextarea:s,hasMultiple:i.length>1,disabled:r,textID:k,addPlaceholder:L,onFocus:()=>x(a)})),F&&c.map((e,a)=>{const{id:d,start:g,end:I,attribute:_}=e,K={label:`${y("textTool")}\uFF08${audio.timeFormat(g,"ss.SSS")} - ${audio.timeFormat(I,"ss.SSS")}\uFF09`,key:d,maxLength:3e3},R=q.length+a,$=audio.getAttributeColor(_,b),H={color:audio.getAttributeFontColor(_,b),backgroundColor:$};return React__default.default.createElement(SingleTextInput,{config:K,key:a,index:R,disabled:r,result:M,updateText:V=>{T==null||T(__spreadProps(__spreadValues({},e),{text:V}))},switchToNextTextarea:()=>{s(R)},hasMultiple:!0,onFocus:()=>x(R),onFocusStyle:p?{borderColor:$,boxShadow:`0 0 0 2px ${audio.updateColorOpacity($,.4)}`}:{},extra:p?React__default.default.createElement("div",{style:H,className:index_module.attribute},audio.getAttributeShowText(_,[{value:"",key:y("NoAttribute")},...b])):null})}),React__default.default.createElement(index.default,{audioContext:v==null?void 0:v.after}),m&&React__default.default.createElement("div",{className:index_module.switchItem},y("toggleShowText"),React__default.default.createElement(antd.Switch,{style:{alignSelf:"center"},checked:C,onChange:e=>{m(e)}}))))};exports.ClearIcon=ClearIcon,exports.SingleTextInput=SingleTextInput,exports.default=TextInput;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),antd=require("antd"),icons=require("@ant-design/icons"),index$1=require("../../../views/MainView/sidebar/TextToolSidebar/index.js"),audio=require("../../../utils/audio.js"),lbAnnotation=require("@labelbee/lb-annotation"),classNames=require("classnames"),index=require("../audioContext/index.js"),index_module=require("./index.module.scss.js"),reactI18next=require("react-i18next");function _interopDefaultLegacy(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var React__default=_interopDefaultLegacy(React),classNames__default=_interopDefaultLegacy(classNames),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(a,l,n)=>l in a?__defProp(a,l,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[l]=n,__spreadValues=(a,l)=>{for(var n in l||(l={}))__hasOwnProp.call(l,n)&&__defNormalProp(a,n,l[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(l))__propIsEnum.call(l,n)&&__defNormalProp(a,n,l[n]);return a},__spreadProps=(a,l)=>__defProps(a,__getOwnPropDescs(l));const EKeyCode=lbAnnotation.cKeyCode.default,ClearIcon=({onClick:a,title:l,disabled:n})=>React__default.default.createElement(antd.Tooltip,{placement:"bottom",title:l},React__default.default.createElement("span",{className:classNames__default.default({[index_module.clearIcon]:!0,[index_module.disabled]:n}),onClick:a})),SingleTextInput=a=>{var l;const{t:n}=reactI18next.useTranslation(),A=React.useRef(null),[c,C]=React.useState(!1),[b,d]=React.useState(!1),{disabled:r,config:o,result:D,updateText:f,index:m,switchToNextTextarea:P,hasMultiple:L,textID:h,addPlaceholder:E,onFocus:y,onBlur:g,onFocusStyle:R={},extra:F,errorText:_}=a,{maxLength:v}=o,I=D?D[o.key]:"",N=(l=I==null?void 0:I.length)!=null?l:0,w=t=>{f&&(f(t,o.key),o.required&&d(!t))},O=L&&P,i={id:`textInput-${m}`,ref:A,disabled:r,value:I,maxLength:v,autoSize:{minRows:2,maxRows:6},onChange:t=>{const s=t.target.value;w(s)},onFocus:t=>{C(!0),y==null||y(t),t.target.value&&d(!1)},onBlur:t=>{C(!1),g==null||g(t),o.required&&d(!t.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:t=>{const{keyCode:s}=t;if(t.ctrlKey){if(s===EKeyCode.Enter&&t.preventDefault(),E&&[EKeyCode.One,EKeyCode.Two,EKeyCode.Three].includes(s))switch(t.preventDefault(),s){case EKeyCode.One:E("\u4986");break;case EKeyCode.Two:E("\u652B");break;case EKeyCode.Three:E("\u7383");break}}else s===EKeyCode.Tab&&O?(t.preventDefault(),t.nativeEvent.stopImmediatePropagation(),P(m)):t.nativeEvent.stopPropagation()}},p=React__default.default.createElement("div",{className:index_module.textAreaFooter},React__default.default.createElement("div",{className:index_module.hotkeyTip},O&&React__default.default.createElement("span",null,"[",n("Switch"),"]Tab"),React__default.default.createElement("span",null,"[",n("TurnPage"),"]Ctrl+Enter")),React__default.default.createElement("div",{className:index_module.wordCount},React__default.default.createElement("span",{className:N>=v?index_module.warning:""},N),"/",React__default.default.createElement("span",null,v)));return React.useEffect(()=>{r&&C(!1)},[r]),React.useEffect(()=>{d(!1)},[h]),React__default.default.createElement("div",{className:index_module.textField},React__default.default.createElement("div",{className:index_module.label},React__default.default.createElement("span",{className:classNames__default.default({[index_module.required]:o.required})},o.label),React__default.default.createElement(ClearIcon,{onClick:()=>{r||w("")},title:"",disabled:r}),React__default.default.createElement("div",{className:index_module.extra},F)),React__default.default.createElement("div",{className:classNames__default.default({disabled:r,"textarea-outline":!0,"ant-input-focused":c,[index_module.textareaContainer]:!0,[index_module.focus]:c,[index_module.invalid]:b}),style:c?R:{}},React__default.default.createElement(index$1.TextareaWithFooter,{footer:p,textareaProps:i})),_&&React__default.default.createElement("span",{style:{color:"#ff4d4f",lineHeight:"22px"}},_))},TextInput=a=>{const{configList:l,autofocus:n,textID:A,result:c,showText:C,updateText:b,toggleShowText:d,textInputDisabled:r,isCheck:o,isEdit:D,config:f,preContext:m,regions:P=[],textConfigurable:L=!0,clipTextConfigurable:h,clipAttributeConfigurable:E,updateRegion:y,clipAttributeList:g=[],clipTextList:R=index.DEFAULT_CLIP_TEXT_CONFIG_ITEM}=a,{t:F}=reactI18next.useTranslation(),[_,v]=React.useState(0),[I,N]=React.useState(""),w=React.useRef(null),{audioClipState:O}=index.useAudioClipStore(),i=l||[__spreadValues({},audio.DEFAULT_TEXT_CONFIG_ITEM)];let p=P;if(h&&!o){const e=O.selectedRegion.id;p=p.filter(u=>u.id===e)}const t=e=>{setTimeout(()=>{const u=document.getElementById(`textInput-${e}`);u&&(v(e),u.focus(),u.select(),u.scrollIntoView({behavior:"smooth",block:"center"}))})},s=e=>{const u=L?i.length:0,T=h?p.length:0,x=u+T,k=(e+1)%x;t(k)},K=e=>{e.keyCode===EKeyCode.Tab&&(e.preventDefault(),i.length>0&&t(0))},q=e=>{const u=document.getElementById(`textInput-${_}`);if(!(f==null?void 0:f.enablePlaceholderHotkey)||!u||!b)return;const{value:T,selectionStart:x,selectionEnd:k}=u,B=`${T.slice(0,x)}${e}${T.slice(k)}`;b(B,i[_].key),N(e),setTimeout(()=>{u.setSelectionRange(x+1,x+1),u.focus()},0),clearTimeout(w.current),w.current=setTimeout(()=>{N("")},400)};React.useEffect(()=>(D||document.addEventListener("keydown",K),()=>{document.removeEventListener("keydown",K)}),[l]),React.useEffect(()=>{n&&!r&&t(0)},[A]);let $=i;o&&($=i.filter(e=>(c==null?void 0:c[e.key])!==void 0));const S=p[0];return React__default.default.createElement(React__default.default.Fragment,null,(f==null?void 0:f.enablePlaceholderHotkey)&&React__default.default.createElement("div",{className:index_module.placeholderHotkey},React__default.default.createElement("div",{className:index_module.title},"\u5360\u4F4D\u7B26\u5FEB\u6377\u8F93\u5165",React__default.default.createElement(antd.Tooltip,{overlayStyle:{maxWidth:240},title:React__default.default.createElement("div",null,React__default.default.createElement("div",null,"\u4986\uFF08Ctrl+1\uFF09\uFF1A"),React__default.default.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4F46\u53EA\u6839\u636E\u8FD9\u4E2A\u5B57\u7684\u5F62\u72B6\u5C31\u53EF\u4EE5\u731C\u51FA\u662F\u4EC0\u4E48\u5B57"),React__default.default.createElement("div",null,"\u652B\uFF08Ctrl+2\uFF09\uFF1A"),React__default.default.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4E14\u65E0\u6CD5\u6839\u636E\u5F62\u72B6\u731C\u5B57\uFF0C\u4F46\u80FD\u7ED3\u5408\u4E0A\u4E0B\u6587\u8BED\u4E49\u5224\u65AD\u51FA\u662F\u4EC0\u4E48\u5B57"),React__default.default.createElement("div",null,"\u7383\uFF08Ctrl+3\uFF09\uFF1A"),React__default.default.createElement("div",null,"\u5B8C\u5168\u65E0\u6CD5\u5224\u65AD\u662F\u4EC0\u4E48\u5B57")),placement:"bottom"},React__default.default.createElement(icons.QuestionCircleOutlined,{className:index_module.questionIcon}))),React__default.default.createElement(antd.Radio.Group,{value:I},React__default.default.createElement(antd.Radio.Button,{value:"\u4986",onClick:e=>q(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u4986 (\u89C6\u89C9)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+1"))),React__default.default.createElement(antd.Radio.Button,{value:"\u652B",onClick:e=>q(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u652B (\u8BED\u4E49)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+2"))),React__default.default.createElement(antd.Radio.Button,{value:"\u7383",onClick:e=>q(e.target.value)},React__default.default.createElement("div",{className:"label"},React__default.default.createElement("div",{className:"text"},"\u7383 (\u65E0\u6548)"),React__default.default.createElement("div",{className:"hotkey"},"Ctrl+3"))))),React__default.default.createElement("div",{className:index_module.textInputContainer},React__default.default.createElement(index.default,{audioContext:m==null?void 0:m.before}),L&&$.map((e,u)=>React__default.default.createElement(SingleTextInput,{config:e,key:u,index:u,result:c,updateText:b,switchToNextTextarea:s,hasMultiple:i.length>1,disabled:r,textID:A,addPlaceholder:q,onFocus:()=>v(u)})),h&&p.length>0&&R.map((e,u)=>{const{id:T,start:x,end:k,attribute:B}=S,{maxLength:W=3e3,label:H,key:G,required:z}=e,V=S==null?void 0:S[G],U={[S.id]:V},X={label:`${H!=null?H:F("textTool")}\uFF08${audio.timeFormat(x,"ss.SSS")} - ${audio.timeFormat(k,"ss.SSS")}\uFF09`,key:T,maxLength:W},j=$.length+u,M=audio.getAttributeColor(B,g),Q={color:audio.getAttributeFontColor(B,g),backgroundColor:M},J=F("LeastCharacterError",{num:1}),Y=z&&V.length<1?J:void 0;return React__default.default.createElement(SingleTextInput,{config:X,key:u,index:j,disabled:r,result:U,updateText:Z=>{y==null||y(__spreadProps(__spreadValues({},S),{[G]:Z}))},switchToNextTextarea:()=>{s(j)},hasMultiple:!0,onFocus:()=>v(j),onFocusStyle:E?{borderColor:M,boxShadow:`0 0 0 2px ${audio.updateColorOpacity(M,.4)}`}:{},extra:E?React__default.default.createElement("div",{style:Q,className:index_module.attribute},audio.getAttributeShowText(B,[{value:"",key:F("NoAttribute")},...g])):null,errorText:Y})}),React__default.default.createElement(index.default,{audioContext:m==null?void 0:m.after}),d&&React__default.default.createElement("div",{className:index_module.switchItem},F("toggleShowText"),React__default.default.createElement(antd.Switch,{style:{alignSelf:"center"},checked:C,onChange:e=>{d(e)}}))))};exports.ClearIcon=ClearIcon,exports.SingleTextInput=SingleTextInput,exports.default=TextInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var React=require("react"),ReactDOM=require("react-dom"),index=require("../../audioAnnotate/audioContext/index.js"),audio=require("../../../utils/audio.js"),loop=require("../../../assets/annotation/audio/loop.svg.js"),antd=require("antd"),ahooks=require("ahooks"),index$1=require("../../../utils/index.js"),index_module=require("./index.module.scss.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React),ReactDOM__default=_interopDefaultLegacy(ReactDOM);const{Paragraph}=antd.Typography,ClipRegion=t=>{const{audioClipState:
|
|
1
|
+
"use strict";var React=require("react"),ReactDOM=require("react-dom"),index=require("../../audioAnnotate/audioContext/index.js"),audio=require("../../../utils/audio.js"),loop=require("../../../assets/annotation/audio/loop.svg.js"),antd=require("antd"),ahooks=require("ahooks"),index$1=require("../../../utils/index.js"),index_module=require("./index.module.scss.js"),reactI18next=require("react-i18next");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React),ReactDOM__default=_interopDefaultLegacy(ReactDOM);const{Paragraph}=antd.Typography,ClipRegion=t=>{const{t:b}=reactI18next.useTranslation(),{audioClipState:g,setAudioClipState:m}=index.useAudioClipStore(),{clipAttributeList:a,clipAttributeConfigurable:C,clipTextConfigurable:y,selectedRegion:n,clipTextList:u}=g,d=React.useRef(null),{el:h,region:c,edgeAdsorption:R,clipping:q,instance:f}=t,{attribute:l="",text:j="",id:i,start:A,end:E}=c,{id:s}=n,o=audio.getAttributeColor(l,a),p={color:audio.getAttributeFontColor(l,a),backgroundColor:o},e={border:`2px solid ${o}`};if(i===s)e.backgroundColor=audio.updateColorOpacity(o,.6),e.borderLeft=`2px solid ${o}`,e.borderRight=`2px solid ${o}`;else if(f==null||f.setLoop(!1),e.borderLeft=`2px solid ${o}`,e.borderRight=`2px solid ${o}`,q){const r=Object.values(R);r.includes(A)&&(e.borderLeft="3px dashed #fff"),r.includes(E)&&(e.borderRight="3px dashed #fff")}ahooks.useClickAway(()=>{i===s&&m({selectedRegion:{}})},d,["contextmenu"]);const k=i===s&&n.loop,L=React__default.default.createElement("div",{style:e,ref:d,className:index$1.classnames({[index_module.container]:!0})},k&&React__default.default.createElement("div",{className:index_module.loop},React__default.default.createElement("img",{src:loop})),C&&React__default.default.createElement("div",null,React__default.default.createElement("div",{style:p,className:index_module.attribute},audio.getAttributeShowText(l,[{value:"",key:"\u65E0\u5C5E\u6027"},...a]))),y&&(u==null?void 0:u.map((r,_)=>{var v,x;return React__default.default.createElement(Paragraph,{ellipsis:{rows:2},className:index_module.text,style:p,key:_},(v=r==null?void 0:r.label)!=null?v:b("textTool"),":",(x=c[r==null?void 0:r.key])!=null?x:"")})));return React__default.default.createElement(React__default.default.Fragment,null,ReactDOM__default.default.createPortal(L,h))};module.exports=ClipRegion;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),getWebPcm2Wac=require("../audioAnnotate/utils/getWebPcm2Wac.js"),_=require("lodash"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),index$a=require("../invalidPage/index.js"),index$5=require("../imageError/index.js"),index$9=require("../../utils/index.js"),index$c=require("../videoPlayer/components/SpeedController/index.js"),WaveSurfer=require("@labelbee/wavesurfer"),Region=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js"),Cursor=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js"),index$d=require("./zoomSlider/index.js"),index$e=require("./labelDisplayToggle/index.js"),index$f=require("./clipRegion/index.js"),index=require("../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks"),index$1=require("./useAudioScroll/index.js"),index_module=require("./index.module.scss.js"),audio=require("../../utils/audio.js"),index$b=require("./progressDot/index.js"),index$6=require("./clipTip/index.js"),index$4=require("./useSwitchHotkey/index.js"),index$2=require("./useAudioCombine/index.js"),index$3=require("./useAudioSegment/index.js"),index$7=require("./combineTip/index.js"),index$8=require("./segmentTip/index.js"),index$g=require("../../views/MainView/toolFooter/index.js"),utils=require("../videoPlayer/utils.js");function _interopDefaultLegacy(u){return u&&typeof u=="object"&&"default"in u?u:{default:u}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_),WaveSurfer__default=_interopDefaultLegacy(WaveSurfer),Region__default=_interopDefaultLegacy(Region),Cursor__default=_interopDefaultLegacy(Cursor),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(u,s,c)=>s in u?__defProp(u,s,{enumerable:!0,configurable:!0,writable:!0,value:c}):u[s]=c,__spreadValues=(u,s)=>{for(var c in s||(s={}))__hasOwnProp.call(s,c)&&__defNormalProp(u,c,s[c]);if(__getOwnPropSymbols)for(var c of __getOwnPropSymbols(s))__propIsEnum.call(s,c)&&__defNormalProp(u,c,s[c]);return u},__spreadProps=(u,s)=>__defProps(u,__getOwnPropDescs(s));const{EToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,PER_PROGRESS=.1,AudioPlayerContext=React__default.default.createContext({count:0,isEdit:!1,toolName:EToolName.Empty,imgIndex:0}),AudioPlayer=({fileData:u={},onLoaded:s,context:c,invalid:$e,height:Le,hideError:Ie,onError:te,updateRegion:x,removeRegion:B,regions:C=[],activeToolPanel:Oe,clipConfigurable:Ne,clipTextConfigurable:We,clipAttributeList:Fe,clipAttributeConfigurable:re,secondaryAttributeConfigurable:ze,subAttributeList:Ue,isCheck:E,hoverRegionId:L,footer:He,drawLayerSlot:ne})=>{var oe,ie;const{url:M,path:ae}=u,[I,O]=React.useState(!1),[le,se]=React.useState(!1),[R,Xe]=React.useState(0),[Ze,ue]=React.useState(!1),[D,ce]=React.useState(0),o=React.useRef(null),S=React.useRef(null),de=React.useRef(R),N=e=>{de.current=e,Xe(e)},[ve,Ke]=React.useState(0),[k,Ve]=React.useState(1),W=React.useRef(null),[fe,Ge]=React.useState({}),{audioClipState:F,setAudioClipState:T}=index.useAudioClipStore(),[z,U]=React.useState(!1),d=ahooks.useLatest(F),me=ahooks.useLatest(fe),Ye=ahooks.useLatest(I),w=ahooks.useLatest(C),pe=ahooks.useUpdate(),[ge,Je]=React.useState([]),[be,Qe]=React.useState({}),et=_.debounce(()=>{lbAnnotation.EventBus.emit("audioZoom")},500),_e=e=>{e<index$d.audioZoomInfo.min||e>index$d.audioZoomInfo.max||(Ve(e),audio.dispatchResizeEvent(),et())};index$1({container:W.current,target:document.querySelector(`[data-id=${(ie=(oe=d.current)==null?void 0:oe.selectedRegion)==null?void 0:ie.id}]`),clipping:z,zoom:k,zoomHandler:_e});const $=()=>{let e=w.current;const{attributeLockList:r}=d.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),X(),e.forEach(t=>{var n;(n=o.current)==null||n.addRegion(__spreadProps(__spreadValues({},t),{drag:!E,resize:!E,color:"rgba(0, 0, 0, 0)"}))}),pe()},v=e=>{var r,t,n,i,a,f,p;const{id:l,loop:m=!0,playImmediately:y=!1}=e;if(l){const A=(n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{};Object.entries(A).forEach(([,g])=>{const{id:P}=g;l===P?g.select():g.cancelSelect()}),T({selectedRegion:{id:l,loop:m},selectedAttribute:(f=(a=(i=w.current)==null?void 0:i.find(g=>g.id===l))==null?void 0:a.attribute)!=null?f:""}),m&&y&&((p=q(l))==null||p.playLoop())}else T({selectedRegion:{}})},{combineInstance:tt}=index$2({waveRef:o,sortByStartRegions:ge,regionMap:be,updateRegion:x,removeRegion:B,generateRegions:$,setSelectedRegion:v}),{segmentInstance:rt,onRegionMouseMove:nt,segmentTimeTip:ot}=index$3({waveRef:o,regionMap:be,updateRegion:x,removeRegion:B,generateRegions:$,setSelectedRegion:v}),ye={clipTextConfigurable:We,clipAttributeList:Fe,clipAttributeConfigurable:re,clipConfigurable:Ne,secondaryAttributeConfigurable:ze,subAttributeList:Ue};React.useEffect(()=>{T({selectedAttribute:""})},[re]),React.useEffect(()=>{H()},[F.selectedAttribute]),React.useEffect(()=>{$()},[F.attributeLockList]),ahooks.useDeepCompareEffect(()=>{T(ye),setTimeout(()=>{Ee()})},[ye]),ahooks.useDeepCompareEffect(()=>{Je(_.sortBy(C,["start"])),Qe(C.reduce((e,r)=>{const{id:t}=r;return __spreadProps(__spreadValues({},e),{[t]:r})},{}))},[C]),React.useEffect(()=>{if(L){const e=Ye.current;v({id:L,loop:e,playImmediately:!0})}else v({})},[L]);const Ee=()=>{var e,r;d.current.clipConfigurable?(!E&&o.current&&((e=o.current)==null||e.enableDragSelection({slop:5})),$()):((r=o.current)==null||r.disableDragSelection(),X()),H()},H=()=>{var e,r,t,n,i;let a="";d.current.clipConfigurable?a=audio.getAttributeColor(d.current.selectedAttribute,(e=d.current.clipAttributeList)!=null?e:[]):a="transparent",((t=(r=o==null?void 0:o.current)==null?void 0:r.cursor)==null?void 0:t.cursor)&&((i=(n=o==null?void 0:o.current)==null?void 0:n.cursor)==null||i.setStyle({border:`2px dashed ${a}`}))},q=e=>{var r,t,n;return((n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{})[e]},Re=()=>{var e,r;if(M){const t=((r=(e=ae==null?void 0:ae.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";ue(!1),t?getWebPcm2Wac.getWebPcm2WavBase64(M).then(n=>{Se(n)}):Se(M)}},Se=e=>{var r;e&&(se(!0),N(0),ce(0),(r=o==null?void 0:o.current)==null||r.load(e))},X=()=>{var e;(e=o.current)==null||e.clearRegions()},Z=e=>{const r=q(e);r&&(U(!1),r==null||r.remove(),B==null||B(e),v({}))},{run:he}=ahooks.useThrottleFn(v,{wait:500});index$4({sortByStartRegions:ge,setSelectedRegion:v});const it=e=>{const{start:r,end:t}=me.current;return(r||t)&&e.update(me.current),e},at=({action:e,id:r,eventDownTime:t})=>{var n,i;if(!d.current.clipConfigurable)return;r&&v({id:r});const a=q((r!=null?r:(n=d.current.selectedRegion)==null?void 0:n.id)||""),f=[];(e==="create"?w.current:(i=w.current)==null?void 0:i.filter(m=>m.id!==a.id)).forEach(m=>{const{start:y,end:A,attribute:g}=m;g===d.current.selectedAttribute&&[y,A].forEach(P=>{f.includes(P)||f.push(P)})});const l=audio.getCanMoveRange(f.sort((m,y)=>m-y),t);o.current.range=l},lt=e=>{H(),setTimeout(()=>{U(!1)});const r=it(e),{id:t,start:n,end:i}=r;v({id:t,playImmediately:!0});const a={id:t,start:utils.decimalReserved(n,3),end:utils.decimalReserved(i,3)};x==null||x(a),pe()},st=()=>{const e=WaveSurfer__default.default.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:Le||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[Region__default.default.create({regions:C,dragSelection:{slop:5},canMove:!1}),Cursor__default.default.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;N(((t=o==null?void 0:o.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const n=((t=o==null?void 0:o.current)==null?void 0:t.getDuration())||0;ce(n),r(),s==null||s({duration:Math.round(n)}),se(!1),j(),lbAnnotation.EventBus.on("setCurrentTimeByPosition",V),lbAnnotation.EventBus.on("clearRegions",X),lbAnnotation.EventBus.on("removeRegionById",Z),lbAnnotation.EventBus.on("setSelectedRegion",he),e.on("regions-eventDown",at),Ee()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{O(!0)}),e.on("pause",()=>{O(!1)}),e.on("finish",()=>{O(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{ue(!0),s==null||s({hasError:!0}),te==null||te()}),e.on("region-created",t=>{var n;const{id:i,start:a,end:f}=t;if(w.current.find(l=>l.id===i))return;const p={id:i,start:utils.decimalReserved(a,3),end:utils.decimalReserved(f,3),attribute:d.current.selectedAttribute,text:""};if(d.current.secondaryAttributeConfigurable){const l=lbAnnotation.TagUtils.getDefaultResultByConfig((n=d.current.subAttributeList)!=null?n:[]);p.subAttribute=l!=null?l:{}}x==null||x(p)}),e.on("region-updated",(t,n)=>{var i,a,f,p,l,m,y,A,g,P;const je=n==null?void 0:n.action;T({combined:!1,segment:!1}),je==="resize"&&((a=(i=o==null?void 0:o.current)==null?void 0:i.cursor)==null||a.setStyle({borderStyle:"solid"})),je==="drag"&&((p=(f=o==null?void 0:o.current)==null?void 0:f.cursor)==null||p.setStyle({borderColor:"transparent"}));const G={},Y=[],J={},Et=(l=w.current)==null?void 0:l.filter(b=>b.id!==t.id),Rt=(A=(y=(m=o.current)==null?void 0:m.regions)==null?void 0:y.list)!=null?A:{};Et.forEach(b=>{var Me,De;const{element:Q}=(Me=Rt[b.id])!=null?Me:{},{start:Pt,end:xt}=b;if(Q){const{x:ke,width:Ct}=((De=Q.getBoundingClientRect)==null?void 0:De.call(Q))||{},wt=ke+Ct;[ke,wt].forEach((ee,At)=>{Y.includes(ee)||(Y.push(ee),J[ee]=At===0?Pt:xt)})}});const{x:Be,width:St}=((P=(g=t.element).getBoundingClientRect)==null?void 0:P.call(g))||{},ht=Be+St;Y.forEach(b=>{Math.abs(audio.precisionMinus(b,Be))<5&&(G.start=J[b]),Math.abs(audio.precisionMinus(b,ht))<5&&(G.end=J[b])}),Ge(G),he({id:t.id}),U(!0)}),e.on("region-update-end",t=>{lt(t)}),e.on("region-contextmenu",(t,n)=>{if(!E){if(n.preventDefault(),n.stopPropagation(),audio.isDoubleClick(n)){Z(t.id);return}v({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,n,i)=>{if(!E){if(n.preventDefault(),n.stopPropagation(),d.current.combined){tt(t);return}if(d.current.segment){rt(t,i);return}v({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",nt),o.current=e},ut=I?React__default.default.createElement(icons.PauseOutlined,null):React__default.default.createElement(icons.CaretRightOutlined,null),Pe=e=>e?`${parseFloat((e/D*100).toFixed(4))}%`:"0%",xe=Pe(R),ct=Pe(ve),h=()=>{if(!le)return o==null?void 0:o.current},dt=()=>{var e;(e=h())==null||e.skipForward(PER_PROGRESS)},vt=()=>{var e;(e=h())==null||e.skipBackward(PER_PROGRESS)},j=()=>{var e;(e=h())==null||e.playPause(),v({})},Ce=e=>{var r;switch(e.keyCode){case EKeyCode.Right:dt();break;case EKeyCode.Left:vt();break;case EKeyCode.Space:e.preventDefault(),j();break;case EKeyCode.Delete:if(!E){const{id:t}=((r=d.current)==null?void 0:r.selectedRegion)||{};t&&Z(t)}break}},ft=e=>{V(e)},we=___default.default.throttle(ft,50);let K=!1;const Ae=()=>{K&&(j(),K=!1),document.removeEventListener("mousemove",we),document.removeEventListener("mouseup",Ae)},mt=e=>{V(e),I&&(K=!0,j()),document.addEventListener("mousemove",we),document.addEventListener("mouseup",Ae)},pt=()=>{Re()};React.useEffect(()=>(st(),()=>{var e;(e=o==null?void 0:o.current)==null||e.destroy(),o.current=null,lbAnnotation.EventBus.unbindAll("setCurrentTimeByPosition"),lbAnnotation.EventBus.unbindAll("clearRegions"),lbAnnotation.EventBus.unbindAll("removeRegionById"),lbAnnotation.EventBus.unbindAll("setSelectedRegion")}),[]);const gt=e=>{var r,t,n;(r=h())==null||r.playPause(),(t=h())==null||t.setPlaybackRate(e),(n=h())==null||n.playPause()};React.useEffect(()=>(document.addEventListener("keydown",Ce),()=>{document.removeEventListener("keydown",Ce)})),React.useEffect(()=>{v({}),Re()},[M]);const Te=e=>{var r,t,n,i;if((o==null?void 0:o.current)&&(S==null?void 0:S.current)){const a=(t=(r=o==null?void 0:o.current)==null?void 0:r.getDuration())!=null?t:0,f=(n=S==null?void 0:S.current)==null?void 0:n.getBoundingClientRect();let l=(e.clientX-f.left)/(((i=S==null?void 0:S.current)==null?void 0:i.clientWidth)||0)*a;return l>a&&(l=a),l}return 0},V=e=>{var r;const t=Te(e);(r=o==null?void 0:o.current)==null||r.skip(t-de.current),N(t)},bt=e=>{Ke(Te(e))},_t=D?Math.max(D-R,0):0,yt=(c==null?void 0:c.toolName)!==EToolName.Empty&&(c==null?void 0:c.isEdit)!==!0&&(Oe==="remark"||E),qe=React__default.default.createElement("div",{className:index_module.audioPlayer},Ze&&!Ie&&React__default.default.createElement(index$5,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:pt,backgroundColor:"#ffffffbb"}),React__default.default.createElement(index$6,{getRegionInstanceById:q,clipping:z}),React__default.default.createElement(index$7,{container:W.current}),React__default.default.createElement(index$8,{segmentTimeTip:ot}),React__default.default.createElement("div",{className:index_module.waveformContainer,ref:W},React__default.default.createElement("div",{id:"waveform",style:{width:`${k*100}%`},className:index$9.classnames({[index_module.waveform]:!0,"bee-audio-combined":d.current.combined,"bee-audio-clip":d.current.clipConfigurable})},$e&&React__default.default.createElement(index$a,{isAudio:!0}),React__default.default.createElement("div",{ref:S,className:index_module.progress,onMouseDown:mt,onMouseMove:bt},React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0}),style:{left:xe}},audio.formatTime(R)),React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0,[index_module.mouseTooltip]:!0}),style:{left:ct}},audio.formatTime(ve)),React__default.default.createElement(index$b,{playPercentage:xe})),yt&&(ne==null?void 0:ne({currentTime:R,remainingTime:_t,audioPlayer:h()})))),React__default.default.createElement("div",{className:index_module.controlBar},React__default.default.createElement(antd.Button,{type:"link",icon:ut,onClick:()=>{j()},className:index$9.classnames({[index_module.playButton]:!0,[index_module.playButtonDisabled]:le})}),React__default.default.createElement("span",{className:index_module.time},`${audio.timeFormat(R,"ss.SSS")} / -${audio.timeFormat(D-R,"ss.SSS")}`),React__default.default.createElement(index$c.default,{playerType:index$c.EPlayerType.Audio,onChange:e=>{gt(e)}}),React__default.default.createElement(index$d.default,{onChange:e=>{_e(e)},zoom:k}),React__default.default.createElement(index$e,{EventBus:lbAnnotation.EventBus})));return c?React__default.default.createElement(AudioPlayerContext.Provider,{value:c},qe,C.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?React__default.default.createElement(index$f,{el:t,key:r,region:e,edgeAdsorption:fe,clipping:z,zoom:k,instance:q(r)}):null}),React__default.default.createElement(index$g.default,{footer:He})):qe};exports.AudioPlayer=AudioPlayer,exports.AudioPlayerContext=AudioPlayerContext;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var React=require("react"),getWebPcm2Wac=require("../audioAnnotate/utils/getWebPcm2Wac.js"),_=require("lodash"),icons=require("@ant-design/icons"),lbAnnotation=require("@labelbee/lb-annotation"),antd=require("antd"),index$a=require("../invalidPage/index.js"),index$5=require("../imageError/index.js"),index$9=require("../../utils/index.js"),index$c=require("../videoPlayer/components/SpeedController/index.js"),WaveSurfer=require("@labelbee/wavesurfer"),Region=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js"),Cursor=require("@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js"),index$d=require("./zoomSlider/index.js"),index$e=require("./labelDisplayToggle/index.js"),index$f=require("./clipRegion/index.js"),index=require("../audioAnnotate/audioContext/index.js"),ahooks=require("ahooks"),index$1=require("./useAudioScroll/index.js"),index_module=require("./index.module.scss.js"),audio=require("../../utils/audio.js"),index$b=require("./progressDot/index.js"),index$6=require("./clipTip/index.js"),index$4=require("./useSwitchHotkey/index.js"),index$2=require("./useAudioCombine/index.js"),index$3=require("./useAudioSegment/index.js"),index$7=require("./combineTip/index.js"),index$8=require("./segmentTip/index.js"),index$g=require("../../views/MainView/toolFooter/index.js"),utils=require("../videoPlayer/utils.js");function _interopDefaultLegacy(u){return u&&typeof u=="object"&&"default"in u?u:{default:u}}var React__default=_interopDefaultLegacy(React),___default=_interopDefaultLegacy(_),WaveSurfer__default=_interopDefaultLegacy(WaveSurfer),Region__default=_interopDefaultLegacy(Region),Cursor__default=_interopDefaultLegacy(Cursor),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(u,s,d)=>s in u?__defProp(u,s,{enumerable:!0,configurable:!0,writable:!0,value:d}):u[s]=d,__spreadValues=(u,s)=>{for(var d in s||(s={}))__hasOwnProp.call(s,d)&&__defNormalProp(u,d,s[d]);if(__getOwnPropSymbols)for(var d of __getOwnPropSymbols(s))__propIsEnum.call(s,d)&&__defNormalProp(u,d,s[d]);return u},__spreadProps=(u,s)=>__defProps(u,__getOwnPropDescs(s));const{EToolName}=lbAnnotation.cTool,EKeyCode=lbAnnotation.cKeyCode.default,PER_PROGRESS=.1,AudioPlayerContext=React__default.default.createContext({count:0,isEdit:!1,toolName:EToolName.Empty,imgIndex:0}),AudioPlayer=({fileData:u={},onLoaded:s,context:d,invalid:Le,height:Oe,hideError:Ne,onError:te,updateRegion:x,removeRegion:B,regions:C=[],activeToolPanel:We,clipConfigurable:Fe,clipTextConfigurable:re,clipAttributeList:ze,clipAttributeConfigurable:ne,secondaryAttributeConfigurable:Ue,subAttributeList:He,isCheck:E,hoverRegionId:I,footer:Xe,drawLayerSlot:oe,clipTextList:ie})=>{var ae,le;const{url:M,path:se}=u,[L,O]=React.useState(!1),[ue,de]=React.useState(!1),[R,Ze]=React.useState(0),[Ke,ce]=React.useState(!1),[D,fe]=React.useState(0),o=React.useRef(null),S=React.useRef(null),ve=React.useRef(R),N=e=>{ve.current=e,Ze(e)},[me,Ve]=React.useState(0),[k,Ge]=React.useState(1),W=React.useRef(null),[pe,Ye]=React.useState({}),{audioClipState:F,setAudioClipState:T}=index.useAudioClipStore(),[z,U]=React.useState(!1),c=ahooks.useLatest(F),ge=ahooks.useLatest(pe),Je=ahooks.useLatest(L),w=ahooks.useLatest(C),be=ahooks.useUpdate(),[_e,Qe]=React.useState([]),[ye,et]=React.useState({}),tt=_.debounce(()=>{lbAnnotation.EventBus.emit("audioZoom")},500),Ee=e=>{e<index$d.audioZoomInfo.min||e>index$d.audioZoomInfo.max||(Ge(e),audio.dispatchResizeEvent(),tt())};index$1({container:W.current,target:document.querySelector(`[data-id=${(le=(ae=c.current)==null?void 0:ae.selectedRegion)==null?void 0:le.id}]`),clipping:z,zoom:k,zoomHandler:Ee});const $=()=>{let e=w.current;const{attributeLockList:r}=c.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),X(),e.forEach(t=>{var n;(n=o.current)==null||n.addRegion(__spreadProps(__spreadValues({},t),{drag:!E,resize:!E,color:"rgba(0, 0, 0, 0)"}))}),be()},f=e=>{var r,t,n,a,l,v,p;const{id:i,loop:m=!0,playImmediately:y=!1}=e;if(i){const A=(n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{};Object.entries(A).forEach(([,g])=>{const{id:P}=g;i===P?g.select():g.cancelSelect()}),T({selectedRegion:{id:i,loop:m},selectedAttribute:(v=(l=(a=w.current)==null?void 0:a.find(g=>g.id===i))==null?void 0:l.attribute)!=null?v:""}),m&&y&&((p=j(i))==null||p.playLoop())}else T({selectedRegion:{}})},{combineInstance:rt}=index$2({waveRef:o,sortByStartRegions:_e,regionMap:ye,updateRegion:x,removeRegion:B,generateRegions:$,setSelectedRegion:f}),{segmentInstance:nt,onRegionMouseMove:ot,segmentTimeTip:it}=index$3({waveRef:o,regionMap:ye,updateRegion:x,removeRegion:B,generateRegions:$,setSelectedRegion:f}),Re={clipTextConfigurable:re,clipAttributeList:ze,clipAttributeConfigurable:ne,clipConfigurable:Fe,secondaryAttributeConfigurable:Ue,subAttributeList:He,clipTextList:ie};React.useEffect(()=>{T({selectedAttribute:""})},[ne]),React.useEffect(()=>{H()},[F.selectedAttribute]),React.useEffect(()=>{$()},[F.attributeLockList]),ahooks.useDeepCompareEffect(()=>{T(Re),setTimeout(()=>{Se()})},[Re]),ahooks.useDeepCompareEffect(()=>{Qe(_.sortBy(C,["start"])),et(C.reduce((e,r)=>{const{id:t}=r;return __spreadProps(__spreadValues({},e),{[t]:r})},{}))},[C]),React.useEffect(()=>{if(I){const e=Je.current;f({id:I,loop:e,playImmediately:!0})}else f({})},[I]);const Se=()=>{var e,r;c.current.clipConfigurable?(!E&&o.current&&((e=o.current)==null||e.enableDragSelection({slop:5})),$()):((r=o.current)==null||r.disableDragSelection(),X()),H()},H=()=>{var e,r,t,n,a;let l="";c.current.clipConfigurable?l=audio.getAttributeColor(c.current.selectedAttribute,(e=c.current.clipAttributeList)!=null?e:[]):l="transparent",((t=(r=o==null?void 0:o.current)==null?void 0:r.cursor)==null?void 0:t.cursor)&&((a=(n=o==null?void 0:o.current)==null?void 0:n.cursor)==null||a.setStyle({border:`2px dashed ${l}`}))},j=e=>{var r,t,n;return((n=(t=(r=o.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?n:{})[e]},he=()=>{var e,r;if(M){const t=((r=(e=se==null?void 0:se.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";ce(!1),t?getWebPcm2Wac.getWebPcm2WavBase64(M).then(n=>{Pe(n)}):Pe(M)}},Pe=e=>{var r;e&&(de(!0),N(0),fe(0),(r=o==null?void 0:o.current)==null||r.load(e))},X=()=>{var e;(e=o.current)==null||e.clearRegions()},Z=e=>{const r=j(e);r&&(U(!1),r==null||r.remove(),B==null||B(e),f({}))},{run:xe}=ahooks.useThrottleFn(f,{wait:500});index$4({sortByStartRegions:_e,setSelectedRegion:f});const at=e=>{const{start:r,end:t}=ge.current;return(r||t)&&e.update(ge.current),e},lt=({action:e,id:r,eventDownTime:t})=>{var n,a;if(!c.current.clipConfigurable)return;r&&f({id:r});const l=j((r!=null?r:(n=c.current.selectedRegion)==null?void 0:n.id)||""),v=[];(e==="create"?w.current:(a=w.current)==null?void 0:a.filter(m=>m.id!==l.id)).forEach(m=>{const{start:y,end:A,attribute:g}=m;g===c.current.selectedAttribute&&[y,A].forEach(P=>{v.includes(P)||v.push(P)})});const i=audio.getCanMoveRange(v.sort((m,y)=>m-y),t);o.current.range=i},st=e=>{H(),setTimeout(()=>{U(!1)});const r=at(e),{id:t,start:n,end:a}=r;f({id:t,playImmediately:!0});const l={id:t,start:utils.decimalReserved(n,3),end:utils.decimalReserved(a,3)};x==null||x(l),be()},ut=()=>{const e=WaveSurfer__default.default.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:Oe||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[Region__default.default.create({regions:C,dragSelection:{slop:5},canMove:!1}),Cursor__default.default.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;N(((t=o==null?void 0:o.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const n=((t=o==null?void 0:o.current)==null?void 0:t.getDuration())||0;fe(n),r(),s==null||s({duration:Math.round(n)}),de(!1),q(),lbAnnotation.EventBus.on("setCurrentTimeByPosition",V),lbAnnotation.EventBus.on("clearRegions",X),lbAnnotation.EventBus.on("removeRegionById",Z),lbAnnotation.EventBus.on("setSelectedRegion",xe),e.on("regions-eventDown",lt),Se()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{O(!0)}),e.on("pause",()=>{O(!1)}),e.on("finish",()=>{O(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{ce(!0),s==null||s({hasError:!0}),te==null||te()}),e.on("region-created",t=>{var n;const{id:a,start:l,end:v}=t;if(w.current.find(i=>i.id===a))return;const p={id:a,start:utils.decimalReserved(l,3),end:utils.decimalReserved(v,3),attribute:c.current.selectedAttribute,text:""};if(c.current.secondaryAttributeConfigurable){const i=lbAnnotation.TagUtils.getDefaultResultByConfig((n=c.current.subAttributeList)!=null?n:[]);p.subAttribute=i!=null?i:{}}re&&ie.forEach((i,m)=>{m===0?Object.assign(p,{text:i==null?void 0:i.default}):Object.assign(p,{[i.key]:i==null?void 0:i.default})}),x==null||x(p)}),e.on("region-updated",(t,n)=>{var a,l,v,p,i,m,y,A,g,P;const Me=n==null?void 0:n.action;T({combined:!1,segment:!1}),Me==="resize"&&((l=(a=o==null?void 0:o.current)==null?void 0:a.cursor)==null||l.setStyle({borderStyle:"solid"})),Me==="drag"&&((p=(v=o==null?void 0:o.current)==null?void 0:v.cursor)==null||p.setStyle({borderColor:"transparent"}));const G={},Y=[],J={},Rt=(i=w.current)==null?void 0:i.filter(b=>b.id!==t.id),St=(A=(y=(m=o.current)==null?void 0:m.regions)==null?void 0:y.list)!=null?A:{};Rt.forEach(b=>{var ke,$e;const{element:Q}=(ke=St[b.id])!=null?ke:{},{start:xt,end:Ct}=b;if(Q){const{x:Ie,width:wt}=(($e=Q.getBoundingClientRect)==null?void 0:$e.call(Q))||{},At=Ie+wt;[Ie,At].forEach((ee,Tt)=>{Y.includes(ee)||(Y.push(ee),J[ee]=Tt===0?xt:Ct)})}});const{x:De,width:ht}=((P=(g=t.element).getBoundingClientRect)==null?void 0:P.call(g))||{},Pt=De+ht;Y.forEach(b=>{Math.abs(audio.precisionMinus(b,De))<5&&(G.start=J[b]),Math.abs(audio.precisionMinus(b,Pt))<5&&(G.end=J[b])}),Ye(G),xe({id:t.id}),U(!0)}),e.on("region-update-end",t=>{st(t)}),e.on("region-contextmenu",(t,n)=>{if(!E){if(n.preventDefault(),n.stopPropagation(),audio.isDoubleClick(n)){Z(t.id);return}f({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,n,a)=>{if(!E){if(n.preventDefault(),n.stopPropagation(),c.current.combined){rt(t);return}if(c.current.segment){nt(t,a);return}f({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",ot),o.current=e},dt=L?React__default.default.createElement(icons.PauseOutlined,null):React__default.default.createElement(icons.CaretRightOutlined,null),Ce=e=>e?`${parseFloat((e/D*100).toFixed(4))}%`:"0%",we=Ce(R),ct=Ce(me),h=()=>{if(!ue)return o==null?void 0:o.current},ft=()=>{var e;(e=h())==null||e.skipForward(PER_PROGRESS)},vt=()=>{var e;(e=h())==null||e.skipBackward(PER_PROGRESS)},q=()=>{var e;(e=h())==null||e.playPause(),f({})},Ae=e=>{var r;switch(e.keyCode){case EKeyCode.Right:ft();break;case EKeyCode.Left:vt();break;case EKeyCode.Space:e.preventDefault(),q();break;case EKeyCode.Delete:if(!E){const{id:t}=((r=c.current)==null?void 0:r.selectedRegion)||{};t&&Z(t)}break}},mt=e=>{V(e)},Te=___default.default.throttle(mt,50);let K=!1;const je=()=>{K&&(q(),K=!1),document.removeEventListener("mousemove",Te),document.removeEventListener("mouseup",je)},pt=e=>{V(e),L&&(K=!0,q()),document.addEventListener("mousemove",Te),document.addEventListener("mouseup",je)},gt=()=>{he()};React.useEffect(()=>(ut(),()=>{var e;(e=o==null?void 0:o.current)==null||e.destroy(),o.current=null,lbAnnotation.EventBus.unbindAll("setCurrentTimeByPosition"),lbAnnotation.EventBus.unbindAll("clearRegions"),lbAnnotation.EventBus.unbindAll("removeRegionById"),lbAnnotation.EventBus.unbindAll("setSelectedRegion")}),[]);const bt=e=>{var r,t,n;(r=h())==null||r.playPause(),(t=h())==null||t.setPlaybackRate(e),(n=h())==null||n.playPause()};React.useEffect(()=>(document.addEventListener("keydown",Ae),()=>{document.removeEventListener("keydown",Ae)})),React.useEffect(()=>{f({}),he()},[M]);const qe=e=>{var r,t,n,a;if((o==null?void 0:o.current)&&(S==null?void 0:S.current)){const l=(t=(r=o==null?void 0:o.current)==null?void 0:r.getDuration())!=null?t:0,v=(n=S==null?void 0:S.current)==null?void 0:n.getBoundingClientRect();let i=(e.clientX-v.left)/(((a=S==null?void 0:S.current)==null?void 0:a.clientWidth)||0)*l;return i>l&&(i=l),i}return 0},V=e=>{var r;const t=qe(e);(r=o==null?void 0:o.current)==null||r.skip(t-ve.current),N(t)},_t=e=>{Ve(qe(e))},yt=D?Math.max(D-R,0):0,Et=(d==null?void 0:d.toolName)!==EToolName.Empty&&(d==null?void 0:d.isEdit)!==!0&&(We==="remark"||E),Be=React__default.default.createElement("div",{className:index_module.audioPlayer},Ke&&!Ne&&React__default.default.createElement(index$5,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:gt,backgroundColor:"#ffffffbb"}),React__default.default.createElement(index$6,{getRegionInstanceById:j,clipping:z}),React__default.default.createElement(index$7,{container:W.current}),React__default.default.createElement(index$8,{segmentTimeTip:it}),React__default.default.createElement("div",{className:index_module.waveformContainer,ref:W},React__default.default.createElement("div",{id:"waveform",style:{width:`${k*100}%`},className:index$9.classnames({[index_module.waveform]:!0,"bee-audio-combined":c.current.combined,"bee-audio-clip":c.current.clipConfigurable})},Le&&React__default.default.createElement(index$a,{isAudio:!0}),React__default.default.createElement("div",{ref:S,className:index_module.progress,onMouseDown:pt,onMouseMove:_t},React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0}),style:{left:we}},audio.formatTime(R)),React__default.default.createElement("div",{className:index$9.classnames({[index_module.radioTooltip]:!0,[index_module.mouseTooltip]:!0}),style:{left:ct}},audio.formatTime(me)),React__default.default.createElement(index$b,{playPercentage:we})),Et&&(oe==null?void 0:oe({currentTime:R,remainingTime:yt,audioPlayer:h()})))),React__default.default.createElement("div",{className:index_module.controlBar},React__default.default.createElement(antd.Button,{type:"link",icon:dt,onClick:()=>{q()},className:index$9.classnames({[index_module.playButton]:!0,[index_module.playButtonDisabled]:ue})}),React__default.default.createElement("span",{className:index_module.time},`${audio.timeFormat(R,"ss.SSS")} / -${audio.timeFormat(D-R,"ss.SSS")}`),React__default.default.createElement(index$c.default,{playerType:index$c.EPlayerType.Audio,onChange:e=>{bt(e)}}),React__default.default.createElement(index$d.default,{onChange:e=>{Ee(e)},zoom:k}),React__default.default.createElement(index$e,{EventBus:lbAnnotation.EventBus})));return d?React__default.default.createElement(AudioPlayerContext.Provider,{value:d},Be,C.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?React__default.default.createElement(index$f,{el:t,key:r,region:e,edgeAdsorption:pe,clipping:z,zoom:k,instance:j(r)}):null}),React__default.default.createElement(index$g.default,{footer:Xe})):Be};exports.AudioPlayer=AudioPlayer,exports.AudioPlayerContext=AudioPlayerContext;
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SetState } from 'ahooks/lib/useSetState';
|
|
3
|
-
import { IAudioTextToolConfig } from '@labelbee/lb-utils';
|
|
3
|
+
import { IAudioTextToolConfig, ITextConfigItem } from '@labelbee/lb-utils';
|
|
4
4
|
export declare enum EContextType {
|
|
5
5
|
before = "\u524D\u6587",
|
|
6
6
|
after = "\u540E\u6587"
|
|
7
7
|
}
|
|
8
|
+
export declare const DEFAULT_CLIP_TEXT_CONFIG_ITEM: {
|
|
9
|
+
label: string;
|
|
10
|
+
key: string;
|
|
11
|
+
required: boolean;
|
|
12
|
+
default: string;
|
|
13
|
+
maxLength: number;
|
|
14
|
+
}[];
|
|
8
15
|
interface IAudioContextProps {
|
|
9
16
|
audioContext: {
|
|
10
17
|
visible?: boolean;
|
|
@@ -31,6 +38,7 @@ interface IAudioClipState extends IAudioClipConfig {
|
|
|
31
38
|
combined: boolean;
|
|
32
39
|
/** 是否按下分割键 */
|
|
33
40
|
segment: boolean;
|
|
41
|
+
clipTextList: ITextConfigItem[];
|
|
34
42
|
}
|
|
35
43
|
interface IAudioClipContext {
|
|
36
44
|
audioClipState: IAudioClipState;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { IAudioTimeSlice } from '@labelbee/lb-utils';
|
|
2
|
+
import { IAudioTimeSlice, ITextConfigItem } from '@labelbee/lb-utils';
|
|
3
3
|
import { ISelectedRegion } from '@/components/audioAnnotate/audioContext';
|
|
4
4
|
import { IInputList, RenderFooter } from '@/types/main';
|
|
5
5
|
export interface ISetSelectedRegionParams extends ISelectedRegion {
|
|
@@ -13,7 +13,7 @@ interface IAudioPlayerContext {
|
|
|
13
13
|
imgIndex: number;
|
|
14
14
|
}
|
|
15
15
|
export declare const AudioPlayerContext: React.Context<IAudioPlayerContext>;
|
|
16
|
-
export declare const AudioPlayer: ({ fileData, onLoaded, context, invalid, height, hideError, onError, updateRegion, removeRegion, regions, activeToolPanel, clipConfigurable, clipTextConfigurable, clipAttributeList, clipAttributeConfigurable, secondaryAttributeConfigurable, subAttributeList, isCheck, hoverRegionId, footer, drawLayerSlot, }: {
|
|
16
|
+
export declare const AudioPlayer: ({ fileData, onLoaded, context, invalid, height, hideError, onError, updateRegion, removeRegion, regions, activeToolPanel, clipConfigurable, clipTextConfigurable, clipAttributeList, clipAttributeConfigurable, secondaryAttributeConfigurable, subAttributeList, isCheck, hoverRegionId, footer, drawLayerSlot, clipTextList, }: {
|
|
17
17
|
fileData: any;
|
|
18
18
|
height?: number | undefined;
|
|
19
19
|
invalid: boolean;
|
|
@@ -41,5 +41,6 @@ export declare const AudioPlayer: ({ fileData, onLoaded, context, invalid, heigh
|
|
|
41
41
|
hoverRegionId?: string | undefined;
|
|
42
42
|
footer?: RenderFooter | undefined;
|
|
43
43
|
drawLayerSlot?: any;
|
|
44
|
+
clipTextList: ITextConfigItem[];
|
|
44
45
|
}) => React.JSX.Element;
|
|
45
46
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{RightOutlined as
|
|
1
|
+
import{RightOutlined as p}from"@ant-design/icons";import t,{useMemo as b,useContext as x,useState as u,useEffect as A}from"react";import{Input as E}from"antd";import{useSetState as g}from"ahooks";import l from"./index.module.scss.js";var s;(function(o){o.before="\u524D\u6587",o.after="\u540E\u6587"})(s||(s={}));const c=[{label:"\u6587\u672C",key:"text",required:!1,default:"",maxLength:3e3}],v=o=>{const{audioContext:e}=o;if(!e||!e.visible)return null;const{content:i,type:n}=e;return t.createElement(S,{title:s==null?void 0:s[n],content:i})},S=o=>{const[e,i]=u(!0),[n,C]=u(""),{title:f,content:a}=o,r=()=>{i(!e)};return A(()=>{C(a),i(!0)},[a]),t.createElement("div",{className:l.audioContextContainer},t.createElement("div",{className:l.title},t.createElement(p,{style:{marginRight:8},rotate:e?90:0,onClick:r}),t.createElement("span",{onClick:r},f)),e&&t.createElement("div",{className:l.content},t.createElement(E.TextArea,{bordered:!1,value:n,disabled:!0,style:{padding:0},autoSize:!0})))},d={selectedAttribute:"",selectedRegion:{},attributeLockList:[],clipConfigurable:!1,clipAttributeConfigurable:!1,clipAttributeList:[],clipTextConfigurable:!1,combined:!1,segment:!1,clipTextList:c},m=t.createContext({audioClipState:d,setAudioClipState:()=>{}}),L=()=>x(m),T=({children:o})=>{const[e,i]=g(d),n=b(()=>({audioClipState:e,setAudioClipState:i}),[e,i]);return t.createElement(m.Provider,{value:n},o)};export{T as AudioClipProvider,c as DEFAULT_CLIP_TEXT_CONFIG_ITEM,s as EContextType,v as default,L as useAudioClipStore};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import r,{useMemo as I}from"react";import D from"../../../attributeList/index.js";import{EventBus as A}from"@labelbee/lb-annotation";import B from"../../../../assets/annotation/audio/clipSmall.svg.js";import V from"../../../../assets/annotation/audio/clipASmall.svg.js";import M from"../../../../assets/annotation/audio/delete.svg.js";import q from"../../../../assets/annotation/audio/loopA.svg.js";import{getAttributeShowText as z,timeFormat as y}from"../../../../utils/audio.js";import G from"../../../longText/index.js";import{classnames as H}from"../../../../utils/index.js";import a from"./index.module.scss.js";import{useTranslation as J}from"react-i18next";import K from"../../../subAttributeList/index.js";var Q=Object.defineProperty,U=Object.defineProperties,W=Object.getOwnPropertyDescriptors,x=Object.getOwnPropertySymbols,X=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable,C=(o,e,s)=>e in o?Q(o,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):o[e]=s,m=(o,e)=>{for(var s in e||(e={}))X.call(e,s)&&C(o,s,e[s]);if(x)for(var s of x(e))Y.call(e,s)&&C(o,s,e[s]);return o},d=(o,e)=>U(o,W(e));const Z=o=>{const{regions:e=[],updateRegion:s,useAudioClipStore:h}=o,{audioClipState:j,setAudioClipState:v}=h(),{t:f}=J(),{selectedAttribute:L,selectedRegion:E,clipTextConfigurable:N,clipAttributeList:p,clipAttributeConfigurable:b,secondaryAttributeConfigurable:w,subAttributeList:O,clipTextList:g}=j,{id:l}=E,u=I(()=>e.find(t=>t.id===l),[e,l]),P=t=>{e.length&&l&&s(d(m({},u),{attribute:t})),v({selectedAttribute:t})},T=(t,i)=>{var n;if(e.length&&l){const c=(n=u==null?void 0:u.subAttribute)!=null?n:{};s(d(m({},u),{subAttribute:d(m({},c),{[t]:i})}))}},S=[{label:"\u65E0\u5C5E\u6027",value:"",key:"\u65E0\u5C5E\u6027"},...p.map(t=>d(m({},t),{label:t.key}))],$=t=>{let i="";return N&&(g==null?void 0:g.length)>0&&g.forEach((n,c)=>{i=i+`${!b&&c===0?"":"\uFF0C"}${n.label}\uFF1A${t[n.key]}`}),i};return r.createElement("div",{className:a.clipSidebar},r.createElement("div",{className:a.clipResults},r.createElement("div",{className:a.title},f("ClippedAudio")),e.length>0?r.createElement("div",{className:a.regions},e.map(t=>{const{id:i,attribute:n,text:c,start:_,end:R}=t,k=i===l&&E.loop,F=`${b?z(n,S):""}${$(t)}`;return r.createElement("div",{className:H({[a.region]:!0,[a.selected]:i===l}),key:i,onClick:()=>{A.emit("setSelectedRegion",{id:i,playImmediately:!0})}},r.createElement("div",{className:a.label},k&&r.createElement("img",{src:q}),r.createElement("div",{className:a.text},r.createElement(G,{text:F}))),r.createElement("div",{className:a.time},r.createElement("img",{src:l===i?V:B}),y(_,"ss.SSS")," -",y(R,"ss.SSS")),r.createElement("div",{className:a.delete,onClick:()=>{A.emit("removeRegionById",i)}},r.createElement("img",{src:M})))})):r.createElement("div",{className:a.empty},f("NoClippedData"))),b&&(p==null?void 0:p.length)>0&&r.createElement("div",{className:a.attributeList},r.createElement(D,{list:S,attributeChanged:P,selectedAttribute:L,attributeLockChange:t=>{v({attributeLockList:t})}}),l&&w&&r.createElement(K,{subAttributeList:O,setSubAttribute:T,getValue:t=>{var i;return(i=u==null?void 0:u.subAttribute)==null?void 0:i[t.value]}})))};export{Z as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import i,{useState as
|
|
1
|
+
import i,{useState as U,useEffect as B,useMemo as oe}from"react";import{AudioPlayer as Le}from"../audioPlayer/index.js";import{getClassName as Pe}from"../../utils/dom.js";import Re from"../predictTracking/previewResult/index.js";import{Layout as ie}from"antd/es";import{Spin as je}from"antd";import{prefix as he}from"../../constant/index.js";import{cKeyCode as we,CommonToolUtils as K,uuid as Ae,TagUtils as Ie,EventBus as Oe,cTool as Ne}from"@labelbee/lb-annotation";import N from"./index.module.scss.js";import ke from"./tagResultShow/index.js";import{AudioClipProvider as De,DEFAULT_CLIP_TEXT_CONFIG_ITEM as $e,useAudioClipStore as Me}from"./audioContext/index.js";import Ve from"./textInput/index.js";import{connect as Be}from"react-redux";import{a2MapStateToProps as Ke}from"../../store/annotation/map.js";import{LabelBeeContext as We}from"../../store/ctx.js";import{jsonParser as Fe}from"../../utils/index.js";import{useCustomToolInstance as Ue}from"../../hooks/annotation.js";import{sidebarCls as Q}from"../../views/MainView/sidebar/index.js";import Xe from"./audioSide/labelSidebar/index.js";import Ge from"./audioSide/clipSidebar/index.js";import qe from"../../assets/annotation/audio/tag.svg.js";import ze from"../../assets/annotation/audio/tagA.svg.js";import He from"../../assets/annotation/audio/clip.svg.js";import Je from"../../assets/annotation/audio/clipA.svg.js";var Qe=Object.defineProperty,Ye=Object.defineProperties,Ze=Object.getOwnPropertyDescriptors,le=Object.getOwnPropertySymbols,et=Object.prototype.hasOwnProperty,tt=Object.prototype.propertyIsEnumerable,re=(t,n,s)=>n in t?Qe(t,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[n]=s,_=(t,n)=>{for(var s in n||(n={}))et.call(n,s)&&re(t,s,n[s]);if(le)for(var s of le(n))tt.call(n,s)&&re(t,s,n[s]);return t},k=(t,n)=>Ye(t,Ze(n));const{EAudioToolName:nt}=Ne,se=we.default,{Sider:ot,Content:it}=ie,ae=`${he}-layout`,lt=({setSideTab:t,sideTab:n})=>{const s=[{tab:"tag",commonSvg:qe,selectedSvg:ze},{tab:"clip",commonSvg:He,selectedSvg:Je}];return i.createElement("div",{className:N.toggleAudioOption},s.map((p,x)=>{const{tab:f,selectedSvg:S,commonSvg:T}=p;return i.createElement("div",{key:x,className:N.option},i.createElement("img",{className:N.icon,src:n===f?S:T,onClick:()=>{n!==f&&t(f)}}))}))},rt=({result:t,inputDisabled:n,updateText:s,configList:p,autofocus:x,preContext:f,isCheck:S,clipAttributeConfigurable:T,clipTextConfigurable:D,textConfigurable:v,updateRegion:C,clipAttributeList:m,clipTextList:g})=>i.createElement("div",{className:N.textareaContainer},i.createElement("div",{className:N.textareaContent},i.createElement(Ve,{isCheck:S,result:t==null?void 0:t.value,textInputDisabled:n,textID:(t==null?void 0:t.id)||0,updateText:s,configList:p,autofocus:!n&&x,preContext:f,regions:t==null?void 0:t.regions,clipAttributeConfigurable:T,clipTextConfigurable:D,textConfigurable:v,updateRegion:C,clipAttributeList:m,clipTextList:g}))),st=t=>{var n,s;const{sider:p,config:x,result:f,updateTagResult:S,updateRegion:T,isEdit:D,tagConfigurable:v,clipConfigurable:C}=t;let m=(x==null?void 0:x.inputList)||[],g=(n=f==null?void 0:f.tag)!=null?n:{},a=(s=f==null?void 0:f.regions)!=null?s:[];const[X,w]=U([]),[L,b]=U("tag");B(()=>{if(!v&&C){b("clip");return}b("tag")},[v,C]),B(()=>(window.addEventListener("keydown",$),()=>{window.removeEventListener("keydown",$)}));const $=l=>{if(v&&C)switch(l.keyCode){case se.L:b("tag");break;case se.X:b("clip");break}if(L==="tag"){if(!K.hotkeyFilter(l))return;K.isMoveKey(l==null?void 0:l.keyCode)&&l.preventDefault();let r=l.keyCode;if(r&&(r<=57&&r>=49||r<=105&&r>=97)){r>57?r=r-97:r=r-49;const d=X.slice();m.length===1?(P(0,r),w([0,r]),setTimeout(()=>{w([])},500)):d.length===1?(P(d[0],r),w([d[0],r]),setTimeout(()=>{w([])},500)):w([r])}}},P=(l,r)=>{if(l<m.length&&m[l].subSelected&&r<m[l].subSelected.length){const d=m[l].value,E=m[l].isMulti;let R=m[l].subSelected[r].value,G=0;const W=g;for(const j in g)if(j===m[l].value){if(G++,E===!0){const O=W[j].split(";").filter(q=>q!==""),V=O.indexOf(R);V===-1?O.push(R):O.splice(V,1),R=O.join(";")}R===""?delete W[j]:W[j]=R}G===0&&Object.assign(g,{[d]:R}),S(g)}},A=l=>{delete g[l],S(g)},I=v&&C&&i.createElement(lt,{setSideTab:b,sideTab:L}),M=L==="tag"&&i.createElement(Xe,{labelInfoSet:v?m:[],labelSelectedList:X,setLabel:P,tagResult:g,clearResult:A,isEdit:D,withPanelTab:!1}),u=L==="clip"&&i.createElement(Ge,{regions:a,updateRegion:T,useAudioClipStore:Me});return p?typeof p=="function"?i.createElement("div",{className:`${Q}`},p({toggleAudioOption:I,labelSidebar:M,clipSidebar:u})):p:i.createElement("div",{className:`${Q}`},i.createElement("div",{className:`${Q}__content`},I,M,u))},at=t=>{var n,s,p,x,f,S,T,D,v;const C=(s=(n=t.style)==null?void 0:n.sider)==null?void 0:s.width,{step:m,stepList:g,audioContext:a,sider:X,drawLayerSlot:w,imgList:L,imgIndex:b,currentData:$,config:P,stepInfo:A}=t,I=K.getCurrentStepToolAndConfig(m,g),M=Fe($.result),{toolInstanceRef:u}=Ue({basicInfo:M}),[l,r]=U(!0),[d,E]=U(null),[R,G]=U(0);B(()=>{r(!0)},[b]),B(()=>{l===!1&&be()},[l]),B(()=>{W()},[]),B(()=>{u.current.exportData=()=>[[d],{duration:R,valid:H}],u.current.setResult=Ce,u.current.clearResult=Te,u.current.currentPageResult=d==null?void 0:d.regions,u.current.emit("updatePageNumber")},[d]);const W=()=>{u.current.emit=e=>{const o=u.current.fns.get(e);o&&o.forEach(c=>{c&&(c==null||c())})},u.current.fns=new Map,u.current.singleOn=(e,o)=>{u.current.fns.set(e,[o])},u.current.on=(e,o)=>{u.current.singleOn(e,o)},u.current.unbindAll=e=>{u.current.fns.delete(e)}},j=oe(()=>{const e=M[`step_${A==null?void 0:A.step}`];return(e==null?void 0:e.result)||[]},[P,M,A]),{tagConfigurable:O,textConfigurable:V=!0,clipConfigurable:q=!1,clipAttributeConfigurable:Y=!1,clipAttributeList:Z=[],clipTextConfigurable:z=!1,subAttributeList:ue=[],secondaryAttributeConfigurable:ce=!1,inputList:de=[],configList:fe=[],clipTextList:ee=$e}=oe(()=>{if(I)return K.jsonParser(I==null?void 0:I.config)},[I]),me={clipConfigurable:q,clipAttributeConfigurable:Y,clipAttributeList:Z,clipTextConfigurable:z,subAttributeList:ue,secondaryAttributeConfigurable:ce,clipTextList:ee},H=a?a==null?void 0:a.valid:!0,pe=(x=(p=K.jsonParser($.result))==null?void 0:p.duration)!=null?x:0,ge=H?pe:0,ve=!H||l||![V,z].includes(!0);let te={};if(b!==-1&&(L==null?void 0:L.length)){const e=(f=L[b])==null?void 0:f.preResult,o=(a==null?void 0:a.isEdit)?(S=a==null?void 0:a.stepConfig)==null?void 0:S.loadPreStep:A==null?void 0:A.loadPreStep;if(e&&o){const c=K.jsonParser(e),y=(D=(T=c==null?void 0:c.config)==null?void 0:T.context)!=null?D:{};Object.keys(y).forEach(h=>{h&&y[h]&&(te[h]={visible:!0,content:y[h],type:h})})}}const be=()=>{(j==null?void 0:j.length)>0?E(j[0]):E({id:Ae(),sourceID:"",value:ne(),tag:Ee(),regions:[]})},ne=(e=!0)=>{const o={};let c=P.configList||[];return c.length>0&&c.forEach(y=>{o[y.key]=e&&y.default||""}),o},Ee=()=>Ie.getDefaultResultByConfig(P.inputList||[]),ye=({duration:e,hasError:o})=>{r(!1),G(e)},_e=e=>{E(o=>k(_({},o),{regions:((o==null?void 0:o.regions)||[]).filter(c=>c.id!==e)}))},J=e=>{E(o=>{var c;const y=(c=o==null?void 0:o.regions)!=null?c:[],{id:h}=e;return y.find(F=>F.id===h)?k(_({},o),{regions:y.map(F=>h===F.id?_(_({},F),e):F)}):k(_({},o),{regions:[...y,e]})})},xe=(e,o)=>{E(c=>k(_({},c),{value:k(_({},c.value),{[o]:e})}))},Se=e=>{E(o=>k(_({},o),{tag:e}))},Ce=e=>{E(e)},Te=()=>{E(e=>k(_({},e),{value:ne(),tag:{},regions:[]})),Oe.emit("clearRegions")};return i.createElement(De,null,i.createElement(je,{spinning:l,wrapperClassName:"audio-tool-spinner"},i.createElement(ie,{className:Pe("layout","container"),style:{height:"100%"}},t==null?void 0:t.leftSider,i.createElement(it,{className:`${ae}__content`},i.createElement("div",{className:N.containerWrapper},i.createElement("div",{className:N.audioWrapper},O&&i.createElement(ke,{result:d==null?void 0:d.tag,labelInfoSet:de,hasPromptLayer:!!(a==null?void 0:a.promptLayer)}),a==null?void 0:a.promptLayer,i.createElement(Le,_({context:{isEdit:a==null?void 0:a.isEdit,count:ge,toolName:nt.AudioTextTool,imgIndex:b},drawLayerSlot:w,fileData:$,onLoaded:ye,invalid:!H,updateRegion:J,removeRegion:_e,regions:d==null?void 0:d.regions,activeToolPanel:a==null?void 0:a.activeToolPanel,footer:t.footer},me))),(V||z)&&i.createElement(rt,{preContext:te,result:d,inputDisabled:ve,updateText:xe,updateRegion:J,configList:fe,autofocus:!1,textConfigurable:V,clipTextConfigurable:z,clipAttributeList:Z,clipAttributeConfigurable:Y,clipTextList:ee}))),i.createElement(ot,{className:`${ae}__side`,width:C!=null?C:240,style:(v=t.style)==null?void 0:v.sider},i.createElement(st,{sider:X,config:P,result:d,updateTagResult:Se,updateRegion:J,isEdit:a==null?void 0:a.isEdit,tagConfigurable:O,clipConfigurable:q})),i.createElement(Re,null))))};var ut=Be(Ke,null,null,{context:We})(at);export{ut as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e,{useState as
|
|
1
|
+
import e,{useState as q,useRef as ee,useEffect as K}from"react";import{Tooltip as te,Radio as H,Switch as xe}from"antd";import{QuestionCircleOutlined as ge}from"@ant-design/icons";import{TextareaWithFooter as Fe}from"../../../views/MainView/sidebar/TextToolSidebar/index.js";import{timeFormat as ae,getAttributeColor as Ce,getAttributeFontColor as Te,updateColorOpacity as he,getAttributeShowText as be,DEFAULT_TEXT_CONFIG_ITEM as ye}from"../../../utils/audio.js";import{cKeyCode as we}from"@labelbee/lb-annotation";import U from"classnames";import le,{useAudioClipStore as Ne,DEFAULT_CLIP_TEXT_CONFIG_ITEM as ke}from"../audioContext/index.js";import o from"./index.module.scss.js";import{useTranslation as ne}from"react-i18next";var Ie=Object.defineProperty,Be=Object.defineProperties,_e=Object.getOwnPropertyDescriptors,oe=Object.getOwnPropertySymbols,Se=Object.prototype.hasOwnProperty,Ae=Object.prototype.propertyIsEnumerable,re=(u,l,r)=>l in u?Ie(u,l,{enumerable:!0,configurable:!0,writable:!0,value:r}):u[l]=r,ue=(u,l)=>{for(var r in l||(l={}))Se.call(l,r)&&re(u,r,l[r]);if(oe)for(var r of oe(l))Ae.call(l,r)&&re(u,r,l[r]);return u},De=(u,l)=>Be(u,_e(l));const d=we.default,se=({onClick:u,title:l,disabled:r})=>e.createElement(te,{placement:"bottom",title:l},e.createElement("span",{className:U({[o.clearIcon]:!0,[o.disabled]:r}),onClick:u})),X=u=>{var l;const{t:r}=ne(),L=ee(null),[E,y]=q(!1),[w,p]=q(!1),{disabled:s,config:c,result:O,updateText:f,index:v,switchToNextTextarea:$,hasMultiple:R,textID:N,addPlaceholder:x,onFocus:k,onBlur:T,onFocusStyle:G={},extra:h,errorText:I}=u,{maxLength:g}=c,B=O?O[c.key]:"",_=(l=B==null?void 0:B.length)!=null?l:0,S=a=>{f&&(f(a,c.key),c.required&&p(!a))},j=R&&$,m={id:`textInput-${v}`,ref:L,disabled:s,value:B,maxLength:g,autoSize:{minRows:2,maxRows:6},onChange:a=>{const i=a.target.value;S(i)},onFocus:a=>{y(!0),k==null||k(a),a.target.value&&p(!1)},onBlur:a=>{y(!1),T==null||T(a),c.required&&p(!a.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:a=>{const{keyCode:i}=a;if(a.ctrlKey){if(i===d.Enter&&a.preventDefault(),x&&[d.One,d.Two,d.Three].includes(i))switch(a.preventDefault(),i){case d.One:x("\u4986");break;case d.Two:x("\u652B");break;case d.Three:x("\u7383");break}}else i===d.Tab&&j?(a.preventDefault(),a.nativeEvent.stopImmediatePropagation(),$(v)):a.nativeEvent.stopPropagation()}},F=e.createElement("div",{className:o.textAreaFooter},e.createElement("div",{className:o.hotkeyTip},j&&e.createElement("span",null,"[",r("Switch"),"]Tab"),e.createElement("span",null,"[",r("TurnPage"),"]Ctrl+Enter")),e.createElement("div",{className:o.wordCount},e.createElement("span",{className:_>=g?o.warning:""},_),"/",e.createElement("span",null,g)));return K(()=>{s&&y(!1)},[s]),K(()=>{p(!1)},[N]),e.createElement("div",{className:o.textField},e.createElement("div",{className:o.label},e.createElement("span",{className:U({[o.required]:c.required})},c.label),e.createElement(se,{onClick:()=>{s||S("")},title:"",disabled:s}),e.createElement("div",{className:o.extra},h)),e.createElement("div",{className:U({disabled:s,"textarea-outline":!0,"ant-input-focused":E,[o.textareaContainer]:!0,[o.focus]:E,[o.invalid]:w}),style:E?G:{}},e.createElement(Fe,{footer:F,textareaProps:m})),I&&e.createElement("span",{style:{color:"#ff4d4f",lineHeight:"22px"}},I))},Pe=u=>{const{configList:l,autofocus:r,textID:L,result:E,showText:y,updateText:w,toggleShowText:p,textInputDisabled:s,isCheck:c,isEdit:O,config:f,preContext:v,regions:$=[],textConfigurable:R=!0,clipTextConfigurable:N,clipAttributeConfigurable:x,updateRegion:k,clipAttributeList:T=[],clipTextList:G=ke}=u,{t:h}=ne(),[I,g]=q(0),[B,_]=q(""),S=ee(null),{audioClipState:j}=Ne(),m=l||[ue({},ye)];let F=$;if(N&&!c){const t=j.selectedRegion.id;F=F.filter(n=>n.id===t)}const a=t=>{setTimeout(()=>{const n=document.getElementById(`textInput-${t}`);n&&(g(t),n.focus(),n.select(),n.scrollIntoView({behavior:"smooth",block:"center"}))})},i=t=>{const n=R?m.length:0,b=N?F.length:0,C=n+b,D=(t+1)%C;a(D)},Q=t=>{t.keyCode===d.Tab&&(t.preventDefault(),m.length>0&&a(0))},M=t=>{const n=document.getElementById(`textInput-${I}`);if(!(f==null?void 0:f.enablePlaceholderHotkey)||!n||!w)return;const{value:b,selectionStart:C,selectionEnd:D}=n,P=`${b.slice(0,C)}${t}${b.slice(D)}`;w(P,m[I].key),_(t),setTimeout(()=>{n.setSelectionRange(C+1,C+1),n.focus()},0),clearTimeout(S.current),S.current=setTimeout(()=>{_("")},400)};K(()=>(O||document.addEventListener("keydown",Q),()=>{document.removeEventListener("keydown",Q)}),[l]),K(()=>{r&&!s&&a(0)},[L]);let V=m;c&&(V=m.filter(t=>(E==null?void 0:E[t.key])!==void 0));const A=F[0];return e.createElement(e.Fragment,null,(f==null?void 0:f.enablePlaceholderHotkey)&&e.createElement("div",{className:o.placeholderHotkey},e.createElement("div",{className:o.title},"\u5360\u4F4D\u7B26\u5FEB\u6377\u8F93\u5165",e.createElement(te,{overlayStyle:{maxWidth:240},title:e.createElement("div",null,e.createElement("div",null,"\u4986\uFF08Ctrl+1\uFF09\uFF1A"),e.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4F46\u53EA\u6839\u636E\u8FD9\u4E2A\u5B57\u7684\u5F62\u72B6\u5C31\u53EF\u4EE5\u731C\u51FA\u662F\u4EC0\u4E48\u5B57"),e.createElement("div",null,"\u652B\uFF08Ctrl+2\uFF09\uFF1A"),e.createElement("div",{style:{marginBottom:12}},"\u6587\u5B57\u5F02\u5E38\uFF0C\u4E14\u65E0\u6CD5\u6839\u636E\u5F62\u72B6\u731C\u5B57\uFF0C\u4F46\u80FD\u7ED3\u5408\u4E0A\u4E0B\u6587\u8BED\u4E49\u5224\u65AD\u51FA\u662F\u4EC0\u4E48\u5B57"),e.createElement("div",null,"\u7383\uFF08Ctrl+3\uFF09\uFF1A"),e.createElement("div",null,"\u5B8C\u5168\u65E0\u6CD5\u5224\u65AD\u662F\u4EC0\u4E48\u5B57")),placement:"bottom"},e.createElement(ge,{className:o.questionIcon}))),e.createElement(H.Group,{value:B},e.createElement(H.Button,{value:"\u4986",onClick:t=>M(t.target.value)},e.createElement("div",{className:"label"},e.createElement("div",{className:"text"},"\u4986 (\u89C6\u89C9)"),e.createElement("div",{className:"hotkey"},"Ctrl+1"))),e.createElement(H.Button,{value:"\u652B",onClick:t=>M(t.target.value)},e.createElement("div",{className:"label"},e.createElement("div",{className:"text"},"\u652B (\u8BED\u4E49)"),e.createElement("div",{className:"hotkey"},"Ctrl+2"))),e.createElement(H.Button,{value:"\u7383",onClick:t=>M(t.target.value)},e.createElement("div",{className:"label"},e.createElement("div",{className:"text"},"\u7383 (\u65E0\u6548)"),e.createElement("div",{className:"hotkey"},"Ctrl+3"))))),e.createElement("div",{className:o.textInputContainer},e.createElement(le,{audioContext:v==null?void 0:v.before}),R&&V.map((t,n)=>e.createElement(X,{config:t,key:n,index:n,result:E,updateText:w,switchToNextTextarea:i,hasMultiple:m.length>1,disabled:s,textID:L,addPlaceholder:M,onFocus:()=>g(n)})),N&&F.length>0&&G.map((t,n)=>{const{id:b,start:C,end:D,attribute:P}=A,{maxLength:ce=3e3,label:J,key:Y,required:ie}=t,Z=A==null?void 0:A[Y],de={[A.id]:Z},me={label:`${J!=null?J:h("textTool")}\uFF08${ae(C,"ss.SSS")} - ${ae(D,"ss.SSS")}\uFF09`,key:b,maxLength:ce},W=V.length+n,z=Ce(P,T),Ee={color:Te(P,T),backgroundColor:z},pe=h("LeastCharacterError",{num:1}),fe=ie&&Z.length<1?pe:void 0;return e.createElement(X,{config:me,key:n,index:W,disabled:s,result:de,updateText:ve=>{k==null||k(De(ue({},A),{[Y]:ve}))},switchToNextTextarea:()=>{i(W)},hasMultiple:!0,onFocus:()=>g(W),onFocusStyle:x?{borderColor:z,boxShadow:`0 0 0 2px ${he(z,.4)}`}:{},extra:x?e.createElement("div",{style:Ee,className:o.attribute},be(P,[{value:"",key:h("NoAttribute")},...T])):null,errorText:fe})}),e.createElement(le,{audioContext:v==null?void 0:v.after}),p&&e.createElement("div",{className:o.switchItem},h("toggleShowText"),e.createElement(xe,{style:{alignSelf:"center"},checked:y,onChange:t=>{p(t)}}))))};export{se as ClearIcon,X as SingleTextInput,Pe as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import t,{useRef as
|
|
1
|
+
import t,{useRef as w}from"react";import N from"react-dom";import{useAudioClipStore as _}from"../../audioAnnotate/audioContext/index.js";import{getAttributeColor as O,getAttributeFontColor as F,updateColorOpacity as P,getAttributeShowText as D}from"../../../utils/audio.js";import I from"../../../assets/annotation/audio/loop.svg.js";import{Typography as M}from"antd";import{useClickAway as q}from"ahooks";import{classnames as z}from"../../../utils/index.js";import r from"./index.module.scss.js";import{useTranslation as B}from"react-i18next";const{Paragraph:G}=M,H=x=>{const{t:C}=B(),{audioClipState:v,setAudioClipState:y}=_(),{clipAttributeList:i,clipAttributeConfigurable:h,clipTextConfigurable:A,selectedRegion:c,clipTextList:d}=v,u=w(null),{el:E,region:p,edgeAdsorption:R,clipping:k,instance:m}=x,{attribute:s="",text:J="",id:a,start:L,end:j}=p,{id:n}=c,o=O(s,i),f={color:F(s,i),backgroundColor:o},e={border:`2px solid ${o}`};if(a===n)e.backgroundColor=P(o,.6),e.borderLeft=`2px solid ${o}`,e.borderRight=`2px solid ${o}`;else if(m==null||m.setLoop(!1),e.borderLeft=`2px solid ${o}`,e.borderRight=`2px solid ${o}`,k){const l=Object.values(R);l.includes(L)&&(e.borderLeft="3px dashed #fff"),l.includes(j)&&(e.borderRight="3px dashed #fff")}q(()=>{a===n&&y({selectedRegion:{}})},u,["contextmenu"]);const T=a===n&&c.loop,S=t.createElement("div",{style:e,ref:u,className:z({[r.container]:!0})},T&&t.createElement("div",{className:r.loop},t.createElement("img",{src:I})),h&&t.createElement("div",null,t.createElement("div",{style:f,className:r.attribute},D(s,[{value:"",key:"\u65E0\u5C5E\u6027"},...i]))),A&&(d==null?void 0:d.map((l,$)=>{var b,g;return t.createElement(G,{ellipsis:{rows:2},className:r.text,style:f,key:$},(b=l==null?void 0:l.label)!=null?b:C("textTool"),":",(g=p[l==null?void 0:l.key])!=null?g:"")})));return t.createElement(t.Fragment,null,N.createPortal(S,E))};export{H as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import i,{useState as g,useRef as z,useEffect as A}from"react";import{getWebPcm2WavBase64 as Gt}from"../audioAnnotate/utils/getWebPcm2Wac.js";import Yt,{debounce as Jt,sortBy as Qt}from"lodash";import{PauseOutlined as er,CaretRightOutlined as tr}from"@ant-design/icons";import{cKeyCode as rr,cTool as or,EventBus as E,TagUtils as nr}from"@labelbee/lb-annotation";import{Button as ir}from"antd";import lr from"../invalidPage/index.js";import sr from"../imageError/index.js";import{classnames as $}from"../../utils/index.js";import ar,{EPlayerType as ur}from"../videoPlayer/components/SpeedController/index.js";import cr from"@labelbee/wavesurfer";import dr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js";import mr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js";import pr,{audioZoomInfo as Xe}from"./zoomSlider/index.js";import fr from"./labelDisplayToggle/index.js";import vr from"./clipRegion/index.js";import{useAudioClipStore as gr}from"../audioAnnotate/audioContext/index.js";import{useLatest as H,useUpdate as br,useDeepCompareEffect as Ze,useThrottleFn as yr}from"ahooks";import _r from"./useAudioScroll/index.js";import b from"./index.module.scss.js";import{getAttributeColor as Er,formatTime as qe,timeFormat as Ke,dispatchResizeEvent as hr,precisionMinus as Ve,isDoubleClick as Cr,getCanMoveRange as Sr}from"../../utils/audio.js";import Pr from"./progressDot/index.js";import Rr from"./clipTip/index.js";import wr from"./useSwitchHotkey/index.js";import Tr from"./useAudioCombine/index.js";import Ar from"./useAudioSegment/index.js";import jr from"./combineTip/index.js";import xr from"./segmentTip/index.js";import Dr from"../../views/MainView/toolFooter/index.js";import{decimalReserved as U}from"../videoPlayer/utils.js";var Mr=Object.defineProperty,kr=Object.defineProperties,Ir=Object.getOwnPropertyDescriptors,Ge=Object.getOwnPropertySymbols,Br=Object.prototype.hasOwnProperty,Lr=Object.prototype.propertyIsEnumerable,Ye=(f,u,c)=>u in f?Mr(f,u,{enumerable:!0,configurable:!0,writable:!0,value:c}):f[u]=c,Je=(f,u)=>{for(var c in u||(u={}))Br.call(u,c)&&Ye(f,c,u[c]);if(Ge)for(var c of Ge(u))Lr.call(u,c)&&Ye(f,c,u[c]);return f},Qe=(f,u)=>kr(f,Ir(u));const{EToolName:et}=or,X=rr.default,tt=.1,rt=i.createContext({count:0,isEdit:!1,toolName:et.Empty,imgIndex:0}),Or=({fileData:f={},onLoaded:u,context:c,invalid:ot,height:nt,hideError:it,onError:ce,updateRegion:j,removeRegion:L,regions:x=[],activeToolPanel:lt,clipConfigurable:st,clipTextConfigurable:at,clipAttributeList:ut,clipAttributeConfigurable:de,secondaryAttributeConfigurable:ct,subAttributeList:dt,isCheck:S,hoverRegionId:Z,footer:mt,drawLayerSlot:me})=>{var pe,fe;const{url:O,path:ve}=f,[q,K]=g(!1),[ge,be]=g(!1),[P,pt]=g(0),[ft,ye]=g(!1),[N,_e]=g(0),n=z(null),R=z(null),Ee=z(P),V=e=>{Ee.current=e,pt(e)},[he,vt]=g(0),[F,gt]=g(1),G=z(null),[Ce,bt]=g({}),{audioClipState:Y,setAudioClipState:k}=gr(),[J,Q]=g(!1),d=H(Y),Se=H(Ce),yt=H(q),D=H(x),Pe=br(),[Re,_t]=g([]),[we,Et]=g({}),ht=Jt(()=>{E.emit("audioZoom")},500),Te=e=>{e<Xe.min||e>Xe.max||(gt(e),hr(),ht())};_r({container:G.current,target:document.querySelector(`[data-id=${(fe=(pe=d.current)==null?void 0:pe.selectedRegion)==null?void 0:fe.id}]`),clipping:J,zoom:F,zoomHandler:Te});const W=()=>{let e=D.current;const{attributeLockList:r}=d.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),te(),e.forEach(t=>{var o;(o=n.current)==null||o.addRegion(Qe(Je({},t),{drag:!S,resize:!S,color:"rgba(0, 0, 0, 0)"}))}),Pe()},m=e=>{var r,t,o,l,s,p,y;const{id:a,loop:v=!0,playImmediately:C=!1}=e;if(a){const M=(o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{};Object.entries(M).forEach(([,_])=>{const{id:T}=_;a===T?_.select():_.cancelSelect()}),k({selectedRegion:{id:a,loop:v},selectedAttribute:(p=(s=(l=D.current)==null?void 0:l.find(_=>_.id===a))==null?void 0:s.attribute)!=null?p:""}),v&&C&&((y=I(a))==null||y.playLoop())}else k({selectedRegion:{}})},{combineInstance:Ct}=Tr({waveRef:n,sortByStartRegions:Re,regionMap:we,updateRegion:j,removeRegion:L,generateRegions:W,setSelectedRegion:m}),{segmentInstance:St,onRegionMouseMove:Pt,segmentTimeTip:Rt}=Ar({waveRef:n,regionMap:we,updateRegion:j,removeRegion:L,generateRegions:W,setSelectedRegion:m}),Ae={clipTextConfigurable:at,clipAttributeList:ut,clipAttributeConfigurable:de,clipConfigurable:st,secondaryAttributeConfigurable:ct,subAttributeList:dt};A(()=>{k({selectedAttribute:""})},[de]),A(()=>{ee()},[Y.selectedAttribute]),A(()=>{W()},[Y.attributeLockList]),Ze(()=>{k(Ae),setTimeout(()=>{je()})},[Ae]),Ze(()=>{_t(Qt(x,["start"])),Et(x.reduce((e,r)=>{const{id:t}=r;return Qe(Je({},e),{[t]:r})},{}))},[x]),A(()=>{if(Z){const e=yt.current;m({id:Z,loop:e,playImmediately:!0})}else m({})},[Z]);const je=()=>{var e,r;d.current.clipConfigurable?(!S&&n.current&&((e=n.current)==null||e.enableDragSelection({slop:5})),W()):((r=n.current)==null||r.disableDragSelection(),te()),ee()},ee=()=>{var e,r,t,o,l;let s="";d.current.clipConfigurable?s=Er(d.current.selectedAttribute,(e=d.current.clipAttributeList)!=null?e:[]):s="transparent",((t=(r=n==null?void 0:n.current)==null?void 0:r.cursor)==null?void 0:t.cursor)&&((l=(o=n==null?void 0:n.current)==null?void 0:o.cursor)==null||l.setStyle({border:`2px dashed ${s}`}))},I=e=>{var r,t,o;return((o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{})[e]},xe=()=>{var e,r;if(O){const t=((r=(e=ve==null?void 0:ve.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";ye(!1),t?Gt(O).then(o=>{De(o)}):De(O)}},De=e=>{var r;e&&(be(!0),V(0),_e(0),(r=n==null?void 0:n.current)==null||r.load(e))},te=()=>{var e;(e=n.current)==null||e.clearRegions()},re=e=>{const r=I(e);r&&(Q(!1),r==null||r.remove(),L==null||L(e),m({}))},{run:Me}=yr(m,{wait:500});wr({sortByStartRegions:Re,setSelectedRegion:m});const wt=e=>{const{start:r,end:t}=Se.current;return(r||t)&&e.update(Se.current),e},Tt=({action:e,id:r,eventDownTime:t})=>{var o,l;if(!d.current.clipConfigurable)return;r&&m({id:r});const s=I((r!=null?r:(o=d.current.selectedRegion)==null?void 0:o.id)||""),p=[];(e==="create"?D.current:(l=D.current)==null?void 0:l.filter(v=>v.id!==s.id)).forEach(v=>{const{start:C,end:M,attribute:_}=v;_===d.current.selectedAttribute&&[C,M].forEach(T=>{p.includes(T)||p.push(T)})});const a=Sr(p.sort((v,C)=>v-C),t);n.current.range=a},At=e=>{ee(),setTimeout(()=>{Q(!1)});const r=wt(e),{id:t,start:o,end:l}=r;m({id:t,playImmediately:!0});const s={id:t,start:U(o,3),end:U(l,3)};j==null||j(s),Pe()},jt=()=>{const e=cr.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:nt||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[dr.create({regions:x,dragSelection:{slop:5},canMove:!1}),mr.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;V(((t=n==null?void 0:n.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const o=((t=n==null?void 0:n.current)==null?void 0:t.getDuration())||0;_e(o),r(),u==null||u({duration:Math.round(o)}),be(!1),B(),E.on("setCurrentTimeByPosition",ne),E.on("clearRegions",te),E.on("removeRegionById",re),E.on("setSelectedRegion",Me),e.on("regions-eventDown",Tt),je()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{K(!0)}),e.on("pause",()=>{K(!1)}),e.on("finish",()=>{K(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{ye(!0),u==null||u({hasError:!0}),ce==null||ce()}),e.on("region-created",t=>{var o;const{id:l,start:s,end:p}=t;if(D.current.find(a=>a.id===l))return;const y={id:l,start:U(s,3),end:U(p,3),attribute:d.current.selectedAttribute,text:""};if(d.current.secondaryAttributeConfigurable){const a=nr.getDefaultResultByConfig((o=d.current.subAttributeList)!=null?o:[]);y.subAttribute=a!=null?a:{}}j==null||j(y)}),e.on("region-updated",(t,o)=>{var l,s,p,y,a,v,C,M,_,T;const We=o==null?void 0:o.action;k({combined:!1,segment:!1}),We==="resize"&&((s=(l=n==null?void 0:n.current)==null?void 0:l.cursor)==null||s.setStyle({borderStyle:"solid"})),We==="drag"&&((y=(p=n==null?void 0:n.current)==null?void 0:p.cursor)==null||y.setStyle({borderColor:"transparent"}));const ie={},le=[],se={},zt=(a=D.current)==null?void 0:a.filter(h=>h.id!==t.id),$t=(M=(C=(v=n.current)==null?void 0:v.regions)==null?void 0:C.list)!=null?M:{};zt.forEach(h=>{var $e,He;const{element:ae}=($e=$t[h.id])!=null?$e:{},{start:Xt,end:Zt}=h;if(ae){const{x:Ue,width:qt}=((He=ae.getBoundingClientRect)==null?void 0:He.call(ae))||{},Kt=Ue+qt;[Ue,Kt].forEach((ue,Vt)=>{le.includes(ue)||(le.push(ue),se[ue]=Vt===0?Xt:Zt)})}});const{x:ze,width:Ht}=((T=(_=t.element).getBoundingClientRect)==null?void 0:T.call(_))||{},Ut=ze+Ht;le.forEach(h=>{Math.abs(Ve(h,ze))<5&&(ie.start=se[h]),Math.abs(Ve(h,Ut))<5&&(ie.end=se[h])}),bt(ie),Me({id:t.id}),Q(!0)}),e.on("region-update-end",t=>{At(t)}),e.on("region-contextmenu",(t,o)=>{if(!S){if(o.preventDefault(),o.stopPropagation(),Cr(o)){re(t.id);return}m({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,o,l)=>{if(!S){if(o.preventDefault(),o.stopPropagation(),d.current.combined){Ct(t);return}if(d.current.segment){St(t,l);return}m({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",Pt),n.current=e},xt=q?i.createElement(er,null):i.createElement(tr,null),ke=e=>e?`${parseFloat((e/N*100).toFixed(4))}%`:"0%",Ie=ke(P),Dt=ke(he),w=()=>{if(!ge)return n==null?void 0:n.current},Mt=()=>{var e;(e=w())==null||e.skipForward(tt)},kt=()=>{var e;(e=w())==null||e.skipBackward(tt)},B=()=>{var e;(e=w())==null||e.playPause(),m({})},Be=e=>{var r;switch(e.keyCode){case X.Right:Mt();break;case X.Left:kt();break;case X.Space:e.preventDefault(),B();break;case X.Delete:if(!S){const{id:t}=((r=d.current)==null?void 0:r.selectedRegion)||{};t&&re(t)}break}},It=e=>{ne(e)},Le=Yt.throttle(It,50);let oe=!1;const Oe=()=>{oe&&(B(),oe=!1),document.removeEventListener("mousemove",Le),document.removeEventListener("mouseup",Oe)},Bt=e=>{ne(e),q&&(oe=!0,B()),document.addEventListener("mousemove",Le),document.addEventListener("mouseup",Oe)},Lt=()=>{xe()};A(()=>(jt(),()=>{var e;(e=n==null?void 0:n.current)==null||e.destroy(),n.current=null,E.unbindAll("setCurrentTimeByPosition"),E.unbindAll("clearRegions"),E.unbindAll("removeRegionById"),E.unbindAll("setSelectedRegion")}),[]);const Ot=e=>{var r,t,o;(r=w())==null||r.playPause(),(t=w())==null||t.setPlaybackRate(e),(o=w())==null||o.playPause()};A(()=>(document.addEventListener("keydown",Be),()=>{document.removeEventListener("keydown",Be)})),A(()=>{m({}),xe()},[O]);const Ne=e=>{var r,t,o,l;if((n==null?void 0:n.current)&&(R==null?void 0:R.current)){const s=(t=(r=n==null?void 0:n.current)==null?void 0:r.getDuration())!=null?t:0,p=(o=R==null?void 0:R.current)==null?void 0:o.getBoundingClientRect();let a=(e.clientX-p.left)/(((l=R==null?void 0:R.current)==null?void 0:l.clientWidth)||0)*s;return a>s&&(a=s),a}return 0},ne=e=>{var r;const t=Ne(e);(r=n==null?void 0:n.current)==null||r.skip(t-Ee.current),V(t)},Nt=e=>{vt(Ne(e))},Ft=N?Math.max(N-P,0):0,Wt=(c==null?void 0:c.toolName)!==et.Empty&&(c==null?void 0:c.isEdit)!==!0&&(lt==="remark"||S),Fe=i.createElement("div",{className:b.audioPlayer},ft&&!it&&i.createElement(sr,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:Lt,backgroundColor:"#ffffffbb"}),i.createElement(Rr,{getRegionInstanceById:I,clipping:J}),i.createElement(jr,{container:G.current}),i.createElement(xr,{segmentTimeTip:Rt}),i.createElement("div",{className:b.waveformContainer,ref:G},i.createElement("div",{id:"waveform",style:{width:`${F*100}%`},className:$({[b.waveform]:!0,"bee-audio-combined":d.current.combined,"bee-audio-clip":d.current.clipConfigurable})},ot&&i.createElement(lr,{isAudio:!0}),i.createElement("div",{ref:R,className:b.progress,onMouseDown:Bt,onMouseMove:Nt},i.createElement("div",{className:$({[b.radioTooltip]:!0}),style:{left:Ie}},qe(P)),i.createElement("div",{className:$({[b.radioTooltip]:!0,[b.mouseTooltip]:!0}),style:{left:Dt}},qe(he)),i.createElement(Pr,{playPercentage:Ie})),Wt&&(me==null?void 0:me({currentTime:P,remainingTime:Ft,audioPlayer:w()})))),i.createElement("div",{className:b.controlBar},i.createElement(ir,{type:"link",icon:xt,onClick:()=>{B()},className:$({[b.playButton]:!0,[b.playButtonDisabled]:ge})}),i.createElement("span",{className:b.time},`${Ke(P,"ss.SSS")} / -${Ke(N-P,"ss.SSS")}`),i.createElement(ar,{playerType:ur.Audio,onChange:e=>{Ot(e)}}),i.createElement(pr,{onChange:e=>{Te(e)},zoom:F}),i.createElement(fr,{EventBus:E})));return c?i.createElement(rt.Provider,{value:c},Fe,x.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?i.createElement(vr,{el:t,key:r,region:e,edgeAdsorption:Ce,clipping:J,zoom:F,instance:I(r)}):null}),i.createElement(Dr,{footer:mt})):Fe};export{Or as AudioPlayer,rt as AudioPlayerContext};
|
|
1
|
+
import l,{useState as b,useRef as z,useEffect as A}from"react";import{getWebPcm2WavBase64 as Yt}from"../audioAnnotate/utils/getWebPcm2Wac.js";import Jt,{debounce as Qt,sortBy as er}from"lodash";import{PauseOutlined as tr,CaretRightOutlined as rr}from"@ant-design/icons";import{cKeyCode as or,cTool as nr,EventBus as E,TagUtils as ir}from"@labelbee/lb-annotation";import{Button as lr}from"antd";import sr from"../invalidPage/index.js";import ar from"../imageError/index.js";import{classnames as $}from"../../utils/index.js";import ur,{EPlayerType as cr}from"../videoPlayer/components/SpeedController/index.js";import dr from"@labelbee/wavesurfer";import mr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js";import fr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js";import pr,{audioZoomInfo as qe}from"./zoomSlider/index.js";import vr from"./labelDisplayToggle/index.js";import gr from"./clipRegion/index.js";import{useAudioClipStore as br}from"../audioAnnotate/audioContext/index.js";import{useLatest as H,useUpdate as yr,useDeepCompareEffect as Ke,useThrottleFn as _r}from"ahooks";import Er from"./useAudioScroll/index.js";import y from"./index.module.scss.js";import{getAttributeColor as hr,formatTime as Ve,timeFormat as Ge,dispatchResizeEvent as Sr,precisionMinus as Ye,isDoubleClick as Cr,getCanMoveRange as Pr}from"../../utils/audio.js";import Rr from"./progressDot/index.js";import wr from"./clipTip/index.js";import Tr from"./useSwitchHotkey/index.js";import Ar from"./useAudioCombine/index.js";import jr from"./useAudioSegment/index.js";import xr from"./combineTip/index.js";import Dr from"./segmentTip/index.js";import kr from"../../views/MainView/toolFooter/index.js";import{decimalReserved as U}from"../videoPlayer/utils.js";var Mr=Object.defineProperty,Ir=Object.defineProperties,Br=Object.getOwnPropertyDescriptors,Je=Object.getOwnPropertySymbols,Or=Object.prototype.hasOwnProperty,Lr=Object.prototype.propertyIsEnumerable,Qe=(g,u,c)=>u in g?Mr(g,u,{enumerable:!0,configurable:!0,writable:!0,value:c}):g[u]=c,et=(g,u)=>{for(var c in u||(u={}))Or.call(u,c)&&Qe(g,c,u[c]);if(Je)for(var c of Je(u))Lr.call(u,c)&&Qe(g,c,u[c]);return g},tt=(g,u)=>Ir(g,Br(u));const{EToolName:rt}=nr,X=or.default,ot=.1,nt=l.createContext({count:0,isEdit:!1,toolName:rt.Empty,imgIndex:0}),Nr=({fileData:g={},onLoaded:u,context:c,invalid:it,height:lt,hideError:st,onError:ce,updateRegion:j,removeRegion:O,regions:x=[],activeToolPanel:at,clipConfigurable:ut,clipTextConfigurable:de,clipAttributeList:ct,clipAttributeConfigurable:me,secondaryAttributeConfigurable:dt,subAttributeList:mt,isCheck:C,hoverRegionId:Z,footer:ft,drawLayerSlot:fe,clipTextList:pe})=>{var ve,ge;const{url:L,path:be}=g,[q,K]=b(!1),[ye,_e]=b(!1),[P,pt]=b(0),[vt,Ee]=b(!1),[N,he]=b(0),n=z(null),R=z(null),Se=z(P),V=e=>{Se.current=e,pt(e)},[Ce,gt]=b(0),[F,bt]=b(1),G=z(null),[Pe,yt]=b({}),{audioClipState:Y,setAudioClipState:M}=br(),[J,Q]=b(!1),d=H(Y),Re=H(Pe),_t=H(q),D=H(x),we=yr(),[Te,Et]=b([]),[Ae,ht]=b({}),St=Qt(()=>{E.emit("audioZoom")},500),je=e=>{e<qe.min||e>qe.max||(bt(e),Sr(),St())};Er({container:G.current,target:document.querySelector(`[data-id=${(ge=(ve=d.current)==null?void 0:ve.selectedRegion)==null?void 0:ge.id}]`),clipping:J,zoom:F,zoomHandler:je});const W=()=>{let e=D.current;const{attributeLockList:r}=d.current;r.length&&(e=e.filter(t=>r.includes(t.attribute))),te(),e.forEach(t=>{var o;(o=n.current)==null||o.addRegion(tt(et({},t),{drag:!C,resize:!C,color:"rgba(0, 0, 0, 0)"}))}),we()},m=e=>{var r,t,o,s,a,f,v;const{id:i,loop:p=!0,playImmediately:S=!1}=e;if(i){const k=(o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{};Object.entries(k).forEach(([,_])=>{const{id:T}=_;i===T?_.select():_.cancelSelect()}),M({selectedRegion:{id:i,loop:p},selectedAttribute:(f=(a=(s=D.current)==null?void 0:s.find(_=>_.id===i))==null?void 0:a.attribute)!=null?f:""}),p&&S&&((v=I(i))==null||v.playLoop())}else M({selectedRegion:{}})},{combineInstance:Ct}=Ar({waveRef:n,sortByStartRegions:Te,regionMap:Ae,updateRegion:j,removeRegion:O,generateRegions:W,setSelectedRegion:m}),{segmentInstance:Pt,onRegionMouseMove:Rt,segmentTimeTip:wt}=jr({waveRef:n,regionMap:Ae,updateRegion:j,removeRegion:O,generateRegions:W,setSelectedRegion:m}),xe={clipTextConfigurable:de,clipAttributeList:ct,clipAttributeConfigurable:me,clipConfigurable:ut,secondaryAttributeConfigurable:dt,subAttributeList:mt,clipTextList:pe};A(()=>{M({selectedAttribute:""})},[me]),A(()=>{ee()},[Y.selectedAttribute]),A(()=>{W()},[Y.attributeLockList]),Ke(()=>{M(xe),setTimeout(()=>{De()})},[xe]),Ke(()=>{Et(er(x,["start"])),ht(x.reduce((e,r)=>{const{id:t}=r;return tt(et({},e),{[t]:r})},{}))},[x]),A(()=>{if(Z){const e=_t.current;m({id:Z,loop:e,playImmediately:!0})}else m({})},[Z]);const De=()=>{var e,r;d.current.clipConfigurable?(!C&&n.current&&((e=n.current)==null||e.enableDragSelection({slop:5})),W()):((r=n.current)==null||r.disableDragSelection(),te()),ee()},ee=()=>{var e,r,t,o,s;let a="";d.current.clipConfigurable?a=hr(d.current.selectedAttribute,(e=d.current.clipAttributeList)!=null?e:[]):a="transparent",((t=(r=n==null?void 0:n.current)==null?void 0:r.cursor)==null?void 0:t.cursor)&&((s=(o=n==null?void 0:n.current)==null?void 0:o.cursor)==null||s.setStyle({border:`2px dashed ${a}`}))},I=e=>{var r,t,o;return((o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{})[e]},ke=()=>{var e,r;if(L){const t=((r=(e=be==null?void 0:be.split("."))==null?void 0:e.pop())==null?void 0:r.toLowerCase())==="pcm";Ee(!1),t?Yt(L).then(o=>{Me(o)}):Me(L)}},Me=e=>{var r;e&&(_e(!0),V(0),he(0),(r=n==null?void 0:n.current)==null||r.load(e))},te=()=>{var e;(e=n.current)==null||e.clearRegions()},re=e=>{const r=I(e);r&&(Q(!1),r==null||r.remove(),O==null||O(e),m({}))},{run:Ie}=_r(m,{wait:500});Tr({sortByStartRegions:Te,setSelectedRegion:m});const Tt=e=>{const{start:r,end:t}=Re.current;return(r||t)&&e.update(Re.current),e},At=({action:e,id:r,eventDownTime:t})=>{var o,s;if(!d.current.clipConfigurable)return;r&&m({id:r});const a=I((r!=null?r:(o=d.current.selectedRegion)==null?void 0:o.id)||""),f=[];(e==="create"?D.current:(s=D.current)==null?void 0:s.filter(p=>p.id!==a.id)).forEach(p=>{const{start:S,end:k,attribute:_}=p;_===d.current.selectedAttribute&&[S,k].forEach(T=>{f.includes(T)||f.push(T)})});const i=Pr(f.sort((p,S)=>p-S),t);n.current.range=i},jt=e=>{ee(),setTimeout(()=>{Q(!1)});const r=Tt(e),{id:t,start:o,end:s}=r;m({id:t,playImmediately:!0});const a={id:t,start:U(o,3),end:U(s,3)};j==null||j(a),we()},xt=()=>{const e=dr.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:lt||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[mr.create({regions:x,dragSelection:{slop:5},canMove:!1}),fr.create({opacity:1,customStyle:{border:"2px dashed transparent"}})]}),r=()=>{var t;V(((t=n==null?void 0:n.current)==null?void 0:t.getCurrentTime())||0)};e.on("ready",()=>{var t;const o=((t=n==null?void 0:n.current)==null?void 0:t.getDuration())||0;he(o),r(),u==null||u({duration:Math.round(o)}),_e(!1),B(),E.on("setCurrentTimeByPosition",ne),E.on("clearRegions",te),E.on("removeRegionById",re),E.on("setSelectedRegion",Ie),e.on("regions-eventDown",At),De()}),e.on("audioprocess",()=>{r()}),e.on("play",()=>{K(!0)}),e.on("pause",()=>{K(!1)}),e.on("finish",()=>{K(!1)}),e.on("seek",()=>{r()}),e.on("error",()=>{Ee(!0),u==null||u({hasError:!0}),ce==null||ce()}),e.on("region-created",t=>{var o;const{id:s,start:a,end:f}=t;if(D.current.find(i=>i.id===s))return;const v={id:s,start:U(a,3),end:U(f,3),attribute:d.current.selectedAttribute,text:""};if(d.current.secondaryAttributeConfigurable){const i=ir.getDefaultResultByConfig((o=d.current.subAttributeList)!=null?o:[]);v.subAttribute=i!=null?i:{}}de&&pe.forEach((i,p)=>{p===0?Object.assign(v,{text:i==null?void 0:i.default}):Object.assign(v,{[i.key]:i==null?void 0:i.default})}),j==null||j(v)}),e.on("region-updated",(t,o)=>{var s,a,f,v,i,p,S,k,_,T;const $e=o==null?void 0:o.action;M({combined:!1,segment:!1}),$e==="resize"&&((a=(s=n==null?void 0:n.current)==null?void 0:s.cursor)==null||a.setStyle({borderStyle:"solid"})),$e==="drag"&&((v=(f=n==null?void 0:n.current)==null?void 0:f.cursor)==null||v.setStyle({borderColor:"transparent"}));const ie={},le=[],se={},$t=(i=D.current)==null?void 0:i.filter(h=>h.id!==t.id),Ht=(k=(S=(p=n.current)==null?void 0:p.regions)==null?void 0:S.list)!=null?k:{};$t.forEach(h=>{var Ue,Xe;const{element:ae}=(Ue=Ht[h.id])!=null?Ue:{},{start:Zt,end:qt}=h;if(ae){const{x:Ze,width:Kt}=((Xe=ae.getBoundingClientRect)==null?void 0:Xe.call(ae))||{},Vt=Ze+Kt;[Ze,Vt].forEach((ue,Gt)=>{le.includes(ue)||(le.push(ue),se[ue]=Gt===0?Zt:qt)})}});const{x:He,width:Ut}=((T=(_=t.element).getBoundingClientRect)==null?void 0:T.call(_))||{},Xt=He+Ut;le.forEach(h=>{Math.abs(Ye(h,He))<5&&(ie.start=se[h]),Math.abs(Ye(h,Xt))<5&&(ie.end=se[h])}),yt(ie),Ie({id:t.id}),Q(!0)}),e.on("region-update-end",t=>{jt(t)}),e.on("region-contextmenu",(t,o)=>{if(!C){if(o.preventDefault(),o.stopPropagation(),Cr(o)){re(t.id);return}m({id:t.id,playImmediately:!0})}}),e.on("region-click",(t,o,s)=>{if(!C){if(o.preventDefault(),o.stopPropagation(),d.current.combined){Ct(t);return}if(d.current.segment){Pt(t,s);return}m({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",Rt),n.current=e},Dt=q?l.createElement(tr,null):l.createElement(rr,null),Be=e=>e?`${parseFloat((e/N*100).toFixed(4))}%`:"0%",Oe=Be(P),kt=Be(Ce),w=()=>{if(!ye)return n==null?void 0:n.current},Mt=()=>{var e;(e=w())==null||e.skipForward(ot)},It=()=>{var e;(e=w())==null||e.skipBackward(ot)},B=()=>{var e;(e=w())==null||e.playPause(),m({})},Le=e=>{var r;switch(e.keyCode){case X.Right:Mt();break;case X.Left:It();break;case X.Space:e.preventDefault(),B();break;case X.Delete:if(!C){const{id:t}=((r=d.current)==null?void 0:r.selectedRegion)||{};t&&re(t)}break}},Bt=e=>{ne(e)},Ne=Jt.throttle(Bt,50);let oe=!1;const Fe=()=>{oe&&(B(),oe=!1),document.removeEventListener("mousemove",Ne),document.removeEventListener("mouseup",Fe)},Ot=e=>{ne(e),q&&(oe=!0,B()),document.addEventListener("mousemove",Ne),document.addEventListener("mouseup",Fe)},Lt=()=>{ke()};A(()=>(xt(),()=>{var e;(e=n==null?void 0:n.current)==null||e.destroy(),n.current=null,E.unbindAll("setCurrentTimeByPosition"),E.unbindAll("clearRegions"),E.unbindAll("removeRegionById"),E.unbindAll("setSelectedRegion")}),[]);const Nt=e=>{var r,t,o;(r=w())==null||r.playPause(),(t=w())==null||t.setPlaybackRate(e),(o=w())==null||o.playPause()};A(()=>(document.addEventListener("keydown",Le),()=>{document.removeEventListener("keydown",Le)})),A(()=>{m({}),ke()},[L]);const We=e=>{var r,t,o,s;if((n==null?void 0:n.current)&&(R==null?void 0:R.current)){const a=(t=(r=n==null?void 0:n.current)==null?void 0:r.getDuration())!=null?t:0,f=(o=R==null?void 0:R.current)==null?void 0:o.getBoundingClientRect();let i=(e.clientX-f.left)/(((s=R==null?void 0:R.current)==null?void 0:s.clientWidth)||0)*a;return i>a&&(i=a),i}return 0},ne=e=>{var r;const t=We(e);(r=n==null?void 0:n.current)==null||r.skip(t-Se.current),V(t)},Ft=e=>{gt(We(e))},Wt=N?Math.max(N-P,0):0,zt=(c==null?void 0:c.toolName)!==rt.Empty&&(c==null?void 0:c.isEdit)!==!0&&(at==="remark"||C),ze=l.createElement("div",{className:y.audioPlayer},vt&&!st&&l.createElement(ar,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:Lt,backgroundColor:"#ffffffbb"}),l.createElement(wr,{getRegionInstanceById:I,clipping:J}),l.createElement(xr,{container:G.current}),l.createElement(Dr,{segmentTimeTip:wt}),l.createElement("div",{className:y.waveformContainer,ref:G},l.createElement("div",{id:"waveform",style:{width:`${F*100}%`},className:$({[y.waveform]:!0,"bee-audio-combined":d.current.combined,"bee-audio-clip":d.current.clipConfigurable})},it&&l.createElement(sr,{isAudio:!0}),l.createElement("div",{ref:R,className:y.progress,onMouseDown:Ot,onMouseMove:Ft},l.createElement("div",{className:$({[y.radioTooltip]:!0}),style:{left:Oe}},Ve(P)),l.createElement("div",{className:$({[y.radioTooltip]:!0,[y.mouseTooltip]:!0}),style:{left:kt}},Ve(Ce)),l.createElement(Rr,{playPercentage:Oe})),zt&&(fe==null?void 0:fe({currentTime:P,remainingTime:Wt,audioPlayer:w()})))),l.createElement("div",{className:y.controlBar},l.createElement(lr,{type:"link",icon:Dt,onClick:()=>{B()},className:$({[y.playButton]:!0,[y.playButtonDisabled]:ye})}),l.createElement("span",{className:y.time},`${Ge(P,"ss.SSS")} / -${Ge(N-P,"ss.SSS")}`),l.createElement(ur,{playerType:cr.Audio,onChange:e=>{Nt(e)}}),l.createElement(pr,{onChange:e=>{je(e)},zoom:F}),l.createElement(vr,{EventBus:E})));return c?l.createElement(nt.Provider,{value:c},ze,x.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?l.createElement(gr,{el:t,key:r,region:e,edgeAdsorption:Pe,clipping:J,zoom:F,instance:I(r)}):null}),l.createElement(kr,{footer:ft})):ze};export{Nr as AudioPlayer,nt as AudioPlayerContext};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@labelbee/lb-components",
|
|
3
|
-
"version": "1.23.0-alpha.
|
|
3
|
+
"version": "1.23.0-alpha.22",
|
|
4
4
|
"description": "Provide a complete library of annotation components",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"es": "./es/index.js",
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@ant-design/icons": "^4.6.2",
|
|
46
|
-
"@labelbee/lb-annotation": "1.27.0-alpha.
|
|
47
|
-
"@labelbee/lb-utils": "1.19.0-alpha.
|
|
46
|
+
"@labelbee/lb-annotation": "1.27.0-alpha.11",
|
|
47
|
+
"@labelbee/lb-utils": "1.19.0-alpha.6",
|
|
48
48
|
"@labelbee/wavesurfer": "1.0.0",
|
|
49
49
|
"@types/react-dom": "^18.2.7",
|
|
50
50
|
"@types/react-transition-group": "^4.4.9",
|