@labelbee/lb-components 1.19.1-alpha.1 → 1.20.0-alpha.2

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.
Files changed (82) hide show
  1. package/dist/assets/annotation/toolHotKeyIcon/icon_eraser.svg.js +1 -0
  2. package/dist/assets/annotation/toolHotKeyIcon/icon_line_static.svg.js +1 -0
  3. package/dist/assets/annotation/toolHotKeyIcon/icon_scribble.svg.js +1 -0
  4. package/dist/assets/annotation/toolHotKeyIcon/icon_strokeEnlarge.svg.js +1 -0
  5. package/dist/assets/annotation/toolHotKeyIcon/icon_strokeReduction.svg.js +1 -0
  6. package/dist/assets/attributeIcon/eraser.svg.js +1 -1
  7. package/dist/assets/attributeIcon/eraser_a.svg.js +1 -1
  8. package/dist/assets/attributeIcon/icon_eyeLock_a.svg.js +1 -0
  9. package/dist/assets/attributeIcon/icon_eyeLock_h.svg.js +1 -0
  10. package/dist/assets/attributeIcon/pen.svg.js +1 -1
  11. package/dist/assets/attributeIcon/pen_a.svg.js +1 -1
  12. package/dist/assets/icons/32b52174.svg +5 -0
  13. package/dist/assets/icons/ad8081bf.svg +13 -0
  14. package/dist/components/LLMToolView/sidebar/components/textEditor/index.js +2 -1
  15. package/dist/components/LLMToolView/sidebar/components/textEditor/index.module.scss.js +1 -0
  16. package/dist/components/attributeList/index.js +1 -1
  17. package/dist/components/audioAnnotate/audioSide/clipSidebar/index.js +1 -1
  18. package/dist/components/audioAnnotate/audioSide/labelFilterInput/index.js +1 -1
  19. package/dist/components/audioAnnotate/audioSide/labelSidebar/index.js +1 -1
  20. package/dist/components/audioAnnotate/index.js +1 -1
  21. package/dist/components/audioAnnotate/textInput/index.js +1 -1
  22. package/dist/components/audioPlayer/combineTip/index.js +1 -1
  23. package/dist/components/audioPlayer/index.js +1 -1
  24. package/dist/components/audioPlayer/labelDisplayToggle/index.js +1 -1
  25. package/dist/components/audioPlayer/segmentTip/index.js +1 -1
  26. package/dist/components/audioPlayer/zoomSlider/index.js +1 -1
  27. package/dist/components/latexEditor/constant/config.js +1 -0
  28. package/dist/components/latexEditor/index.js +1 -0
  29. package/dist/components/latexEditor/index.module.scss.js +1 -0
  30. package/dist/components/pointCloudView/PointCloudInfos.js +1 -1
  31. package/dist/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
  32. package/dist/components/videoPlayer/components/SpeedController/index.js +1 -1
  33. package/dist/index.css +93 -1
  34. package/dist/types/components/LLMToolView/types.d.ts +1 -0
  35. package/dist/types/components/audioAnnotate/audioSide/labelSidebar/index.d.ts +4 -21
  36. package/dist/types/components/latexEditor/constant/config.d.ts +18 -0
  37. package/dist/types/components/latexEditor/index.d.ts +12 -0
  38. package/dist/types/hooks/annotation.d.ts +2 -2
  39. package/dist/types/views/MainView/toolFooter/FooterTips/ToolHotKey/scribble/index.d.ts +25 -0
  40. package/dist/views/MainView/index.js +1 -1
  41. package/dist/views/MainView/sidebar/ScribbleSidebar/index.js +1 -1
  42. package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/audioText/index.js +1 -1
  43. package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/common/index.js +1 -1
  44. package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js +1 -1
  45. package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/scribble/index.js +1 -1
  46. package/es/assets/annotation/toolHotKeyIcon/icon_eraser.svg.js +1 -0
  47. package/es/assets/annotation/toolHotKeyIcon/icon_line_static.svg.js +1 -0
  48. package/es/assets/annotation/toolHotKeyIcon/icon_scribble.svg.js +1 -0
  49. package/es/assets/annotation/toolHotKeyIcon/icon_strokeEnlarge.svg.js +1 -0
  50. package/es/assets/annotation/toolHotKeyIcon/icon_strokeReduction.svg.js +1 -0
  51. package/es/assets/attributeIcon/eraser.svg.js +1 -1
  52. package/es/assets/attributeIcon/eraser_a.svg.js +1 -1
  53. package/es/assets/attributeIcon/icon_eyeLock_a.svg.js +1 -0
  54. package/es/assets/attributeIcon/icon_eyeLock_h.svg.js +1 -0
  55. package/es/assets/attributeIcon/pen.svg.js +1 -1
  56. package/es/assets/attributeIcon/pen_a.svg.js +1 -1
  57. package/es/components/LLMToolView/sidebar/components/textEditor/index.js +2 -1
  58. package/es/components/LLMToolView/sidebar/components/textEditor/index.module.scss.js +1 -0
  59. package/es/components/attributeList/index.js +1 -1
  60. package/es/components/audioAnnotate/audioSide/clipSidebar/index.js +1 -1
  61. package/es/components/audioAnnotate/audioSide/labelFilterInput/index.js +1 -1
  62. package/es/components/audioAnnotate/audioSide/labelSidebar/index.js +1 -1
  63. package/es/components/audioAnnotate/index.js +1 -1
  64. package/es/components/audioAnnotate/textInput/index.js +1 -1
  65. package/es/components/audioPlayer/combineTip/index.js +1 -1
  66. package/es/components/audioPlayer/index.js +1 -1
  67. package/es/components/audioPlayer/labelDisplayToggle/index.js +1 -1
  68. package/es/components/audioPlayer/segmentTip/index.js +1 -1
  69. package/es/components/audioPlayer/zoomSlider/index.js +1 -1
  70. package/es/components/latexEditor/constant/config.js +1 -0
  71. package/es/components/latexEditor/index.js +1 -0
  72. package/es/components/latexEditor/index.module.scss.js +1 -0
  73. package/es/components/pointCloudView/PointCloudInfos.js +1 -1
  74. package/es/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
  75. package/es/components/videoPlayer/components/SpeedController/index.js +1 -1
  76. package/es/index.css +93 -1
  77. package/es/views/MainView/index.js +1 -1
  78. package/es/views/MainView/sidebar/ScribbleSidebar/index.js +1 -1
  79. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/audioText/index.js +1 -1
  80. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/common/index.js +1 -1
  81. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/scribble/index.js +1 -1
  82. package/package.json +3 -3
@@ -1 +1 @@
1
- import{COLORS_ARRAY as m,NULL_COLOR as I}from"../../data/Style.js";import{ColorTag as N}from"../colorTag/index.js";import{Radio as b}from"antd/es";import l,{useState as g}from"react";import{Popover as k}from"antd";import w from"../colorPalette/index.js";import{CloseOutlined as V}from"@ant-design/icons";import{useTranslation as x}from"react-i18next";import D from"./components/limitPopover/index.js";const C=[I].concat(m),U=l.forwardRef((e,h)=>{const E=l.useRef(),{t:R}=x(),L=e.list||[],[y,r]=g(!1),[P,O]=g(void 0);let n=[...C];e.forbidDefault===!0&&(n=n.slice(1));let c="sensebee-radio-group";e.noHeightLimit&&(c="sensebee-radio-group-no-limit-height");const S=(t,o)=>{e.updateColorConfig&&e.updateColorConfig(t,o)};return l.createElement("div",{className:c,style:e.style},l.createElement(b.Group,{name:"radiogroup",defaultValue:e==null?void 0:e.selectedAttribute,value:e==null?void 0:e.selectedAttribute,onChange:t=>e.attributeChanged(t.target.value),ref:h},L.map((t,o)=>{var s,d,f;let i=(s=e==null?void 0:e.num)!=null?s:o;const T=(t==null?void 0:t.value)===(e==null?void 0:e.selectedAttribute);e.forbidDefault===!0&&typeof i=="number"&&i++,typeof i=="number"&&i<=9&&i>=0||(i="-");let u=o>8&&!e.forbidDefault?m[(o-1)%m.length]:n[o%n.length];(t==null?void 0:t.color)&&(u=t.color);const{defaultSize:A,logicalCondition:v,sizeRange:_}=((d=t==null?void 0:t.limit)==null?void 0:d.sizeLimit)||{},j=((f=t==null?void 0:t.limit)==null?void 0:f.positionLimit)||A||_||(v==null?void 0:v.length)>0,z=T&&j&&e.forbidShowLimitPopover!==!0;return l.createElement(b,{value:t.value,ref:E,key:t.label+o},l.createElement("span",{className:"sensebee-radio-label",title:t.label},!(e==null?void 0:e.forbidColor)&&l.createElement(k,{content:l.createElement(w,{defaultColor:u,setColor:a=>S(t.value,a)}),title:l.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},l.createElement("span",null,R("Palette")),l.createElement(V,{onClick:()=>r(!1)})),visible:y&&P===o,onVisibleChange:a=>{!a||r(a)}},l.createElement(N,{color:u,style:{cursor:"pointer",marginRight:"8px"},onClick:()=>{(e==null?void 0:e.enableColorPicker)&&(O(o),r(!0))}})),t.label),z&&l.createElement(D,{limit:t.limit,updateSize:e==null?void 0:e.updateSize}),l.createElement("span",{className:"sensebee-radio-num"},i))})))});export{C as ATTRIBUTE_COLORS,U as default};
1
+ import V from"../../assets/attributeIcon/icon_eyeLock_a.svg.js";import x from"../../assets/attributeIcon/icon_eyeLock_h.svg.js";import{COLORS_ARRAY as b,NULL_COLOR as K}from"../../data/Style.js";import{ColorTag as B}from"../colorTag/index.js";import{Radio as y}from"antd/es";import n,{useState as C,useEffect as F}from"react";import{Popover as G,message as H}from"antd";import M from"../colorPalette/index.js";import{CloseOutlined as W}from"@ant-design/icons";import{useTranslation as Y}from"react-i18next";import $ from"./components/limitPopover/index.js";import q from"lodash";import{CommonToolUtils as J,MathUtils as s}from"@labelbee/lb-annotation";const E=[K].concat(b),Q=n.forwardRef((e,R)=>{const _=n.useRef(),{t:g}=Y(),w=e.list||[],[A,m]=C(!1),[P,T]=C(void 0),[c,I]=C([]);let d=[...E];e.forbidDefault===!0&&(d=d.slice(1));let k="sensebee-radio-group";e.noHeightLimit&&(k="sensebee-radio-group-no-limit-height");const L=t=>{var l,u;if(!J.hotkeyFilter(t)||(e==null?void 0:e.forbidColor))return;let o=t.keyCode;e.forbidDefault===!0&&(o=o-1);let i;if(s.isInRange(t.keyCode,[48,57])&&(i=e.list[o-48]),s.isInRange(t.keyCode,[96,105])&&(i=e.list[o-96]),t.shiftKey&&i){if(!(e==null?void 0:e.attributeLockChange))return;f(t,i),t.preventDefault();return}(s.isInRange(t.keyCode,[48,57])||s.isInRange(t.keyCode,[96,105]))&&((u=e==null?void 0:e.attributeChanged)==null||u.call(e,(l=i==null?void 0:i.value)!=null?l:""))};F(()=>(window.addEventListener("keydown",L),()=>window.removeEventListener("keydown",L)));const O=(t,l)=>{e.updateColorConfig&&e.updateColorConfig(t,l)},S=(t,l)=>{if(t.shiftKey&&(e==null?void 0:e.attributeLockChange)){f(t,l);return}e.attributeChanged(t.target.value)},f=(t,l)=>{var u;if(e==null?void 0:e.forbidColor)return;const o=c.includes(l.value);let i=q.cloneDeep(c);o?i=i.filter(a=>a!==l.value):i.push(l.value),I(i),(u=e==null?void 0:e.attributeLockChange)==null||u.call(e,i),o||H.success(g("AttributeLockNotify",{label:l.label})),t.preventDefault()};return n.createElement("div",{className:k,style:e.style},n.createElement(y.Group,{name:"radiogroup",defaultValue:e==null?void 0:e.selectedAttribute,value:e==null?void 0:e.selectedAttribute,ref:R},w.map((t,l)=>{var u,o,i;let a=(u=e==null?void 0:e.num)!=null?u:l;const D=(t==null?void 0:t.value)===(e==null?void 0:e.selectedAttribute);e.forbidDefault===!0&&typeof a=="number"&&a++,typeof a=="number"&&a<=9&&a>=0||(a="-");let v=l>8&&!e.forbidDefault?b[(l-1)%b.length]:d[l%d.length];(t==null?void 0:t.color)&&(v=t.color);const{defaultSize:j,logicalCondition:h,sizeRange:N}=((o=t==null?void 0:t.limit)==null?void 0:o.sizeLimit)||{},z=((i=t==null?void 0:t.limit)==null?void 0:i.positionLimit)||j||N||(h==null?void 0:h.length)>0,U=D&&z&&e.forbidShowLimitPopover!==!0;return n.createElement(y,{value:t.value,ref:_,key:t.label+l,onClick:r=>S(r,t)},n.createElement("span",{className:"sensebee-radio-label",title:t.label},!(e==null?void 0:e.forbidColor)&&n.createElement(G,{content:n.createElement(M,{defaultColor:v,setColor:r=>O(t.value,r)}),title:n.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},n.createElement("span",null,g("Palette")),n.createElement(W,{onClick:()=>m(!1)})),visible:A&&P===l,onVisibleChange:r=>{!r||m(r)}},n.createElement(B,{color:v,style:{cursor:"pointer",marginRight:"8px"},onClick:()=>{(e==null?void 0:e.enableColorPicker)&&(T(l),m(!0))}})),t.label),!(e==null?void 0:e.forbidColor)&&(e==null?void 0:e.attributeLockChange)&&n.createElement("img",{onClick:r=>f(r,t),src:c.includes(t.value)?V:x,style:{display:c.includes(t.value)?"inline-block":""},className:"sensebee-radio-icon"}),U&&n.createElement($,{limit:t.limit,updateSize:e==null?void 0:e.updateSize}),n.createElement("span",{className:"sensebee-radio-num"},a))})))});export{E as ATTRIBUTE_COLORS,Q as default};
@@ -1 +1 @@
1
- import t from"react";import w from"../../../attributeList/index.js";import{EventBus as v}from"@labelbee/lb-annotation";import L from"../../../../assets/annotation/audio/clipSmall.svg.js";import F from"../../../../assets/annotation/audio/clipASmall.svg.js";import R from"../../../../assets/annotation/audio/delete.svg.js";import $ from"../../../../assets/annotation/audio/loopA.svg.js";import{getAttributeShowText as k,timeFormat as f}from"../../../../utils/audio.js";import D from"../../../longText/index.js";import{classnames as I}from"../../../../utils/index.js";import i from"./index.module.scss.js";var T=Object.defineProperty,B=Object.defineProperties,V=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertySymbols,q=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable,E=(s,e,r)=>e in s?T(s,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[e]=r,_=(s,e)=>{for(var r in e||(e={}))q.call(e,r)&&E(s,r,e[r]);if(b)for(var r of b(e))z.call(e,r)&&E(s,r,e[r]);return s},S=(s,e)=>B(s,V(e));const G=s=>{const{regions:e=[],updateRegion:r,useAudioClipStore:y}=s,{audioClipState:C,setAudioClipState:u}=y(),{selectedAttribute:j,selectedRegion:d,clipTextConfigurable:p,clipAttributeList:n,clipAttributeConfigurable:m}=C,{id:l}=d,x=a=>{if(e.length&&l){const o=e.find(c=>c.id===l);r(S(_({},o),{attribute:a}))}u({selectedAttribute:a})},g=[{label:"\u65E0\u5C5E\u6027",value:"",key:"\u65E0\u5C5E\u6027"},...n.map(a=>S(_({},a),{label:a.key}))];return t.createElement("div",{className:i.clipSidebar},t.createElement("div",{className:i.clipResults},t.createElement("div",{className:i.title},"\u5DF2\u622A\u53D6\u97F3\u9891"),e.length>0?t.createElement("div",{className:i.regions},e.map(a=>{const{id:o,attribute:c,text:A,start:N,end:O}=a,P=o===l&&d.loop,h=`${m?k(c,g):""}${m&&p?"\uFF0C":""}${p?`\u6587\u672C\uFF1A${A}`:""}`;return t.createElement("div",{className:I({[i.region]:!0,[i.selected]:o===l}),key:o,onClick:()=>{v.emit("setSelectedRegion",{id:o,playImmediately:!0})}},t.createElement("div",{className:i.label},P&&t.createElement("img",{src:$}),t.createElement("div",{className:i.text},t.createElement(D,{text:h}))),t.createElement("div",{className:i.time},t.createElement("img",{src:l===o?F:L}),f(N,"ss.SSS")," -",f(O,"ss.SSS")),t.createElement("div",{className:i.delete,onClick:()=>{v.emit("removeRegionById",o)}},t.createElement("img",{src:R})))})):t.createElement("div",{className:i.empty},"\u6682\u65E0\u622A\u53D6\u5185\u5BB9")),m&&(n==null?void 0:n.length)>0&&t.createElement("div",{className:i.attributeList},t.createElement(w,{list:g,attributeChanged:x,selectedAttribute:j,attributeLockChange:a=>{u({attributeLockList:a})}})))};export{G as default};
1
+ import t from"react";import L from"../../../attributeList/index.js";import{EventBus as v}from"@labelbee/lb-annotation";import $ from"../../../../assets/annotation/audio/clipSmall.svg.js";import R from"../../../../assets/annotation/audio/clipASmall.svg.js";import T from"../../../../assets/annotation/audio/delete.svg.js";import k from"../../../../assets/annotation/audio/loopA.svg.js";import{getAttributeShowText as F,timeFormat as b}from"../../../../utils/audio.js";import I from"../../../longText/index.js";import{classnames as D}from"../../../../utils/index.js";import i from"./index.module.scss.js";import{useTranslation as B}from"react-i18next";var V=Object.defineProperty,q=Object.defineProperties,z=Object.getOwnPropertyDescriptors,E=Object.getOwnPropertySymbols,G=Object.prototype.hasOwnProperty,H=Object.prototype.propertyIsEnumerable,_=(a,e,r)=>e in a?V(a,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[e]=r,S=(a,e)=>{for(var r in e||(e={}))G.call(e,r)&&_(a,r,e[r]);if(E)for(var r of E(e))H.call(e,r)&&_(a,r,e[r]);return a},x=(a,e)=>q(a,z(e));const J=a=>{const{regions:e=[],updateRegion:r,useAudioClipStore:y}=a,{audioClipState:C,setAudioClipState:u}=y(),{t:n}=B(),{selectedAttribute:j,selectedRegion:d,clipTextConfigurable:g,clipAttributeList:m,clipAttributeConfigurable:c}=C,{id:l}=d,N=s=>{if(e.length&&l){const o=e.find(p=>p.id===l);r(x(S({},o),{attribute:s}))}u({selectedAttribute:s})},f=[{label:"\u65E0\u5C5E\u6027",value:"",key:"\u65E0\u5C5E\u6027"},...m.map(s=>x(S({},s),{label:s.key}))];return t.createElement("div",{className:i.clipSidebar},t.createElement("div",{className:i.clipResults},t.createElement("div",{className:i.title},n("ClippedAudio")),e.length>0?t.createElement("div",{className:i.regions},e.map(s=>{const{id:o,attribute:p,text:A,start:O,end:P}=s,h=o===l&&d.loop,w=`${c?F(p,f):""}${c&&g?"\uFF0C":""}${g?`${n("textTool")}\uFF1A${A}`:""}`;return t.createElement("div",{className:D({[i.region]:!0,[i.selected]:o===l}),key:o,onClick:()=>{v.emit("setSelectedRegion",{id:o,playImmediately:!0})}},t.createElement("div",{className:i.label},h&&t.createElement("img",{src:k}),t.createElement("div",{className:i.text},t.createElement(I,{text:w}))),t.createElement("div",{className:i.time},t.createElement("img",{src:l===o?R:$}),b(O,"ss.SSS")," -",b(P,"ss.SSS")),t.createElement("div",{className:i.delete,onClick:()=>{v.emit("removeRegionById",o)}},t.createElement("img",{src:T})))})):t.createElement("div",{className:i.empty},n("NoClippedData"))),c&&(m==null?void 0:m.length)>0&&t.createElement("div",{className:i.attributeList},t.createElement(L,{list:f,attributeChanged:N,selectedAttribute:j,attributeLockChange:s=>{u({attributeLockList:s})}})))};export{J as default};
@@ -1 +1 @@
1
- import a from"./index.module.scss.js";import e from"react";import{Input as r}from"antd";import{SearchOutlined as i}from"@ant-design/icons";const s=t=>{t.stopPropagation(),t.nativeEvent.stopPropagation(),t.nativeEvent.stopImmediatePropagation()},l=({value:t,onChange:o})=>e.createElement(r,{className:a.filterInput,prefix:e.createElement(i,{style:{marginRight:5,color:"#999"}}),onKeyDown:n=>{s(n)},allowClear:!0,placeholder:"\u641C\u7D22\u6807\u7B7E",value:t,onChange:o});export{l as default};
1
+ import r from"./index.module.scss.js";import e from"react";import{Input as i}from"antd";import{SearchOutlined as s}from"@ant-design/icons";import{useTranslation as l}from"react-i18next";const p=t=>{t.stopPropagation(),t.nativeEvent.stopPropagation(),t.nativeEvent.stopImmediatePropagation()},m=({value:t,onChange:o})=>{const{t:a}=l();return e.createElement(i,{className:r.filterInput,prefix:e.createElement(s,{style:{marginRight:5,color:"#999"}}),onKeyDown:n=>{p(n)},allowClear:!0,placeholder:a("SearchTag"),value:t,onChange:o})};export{m as default};
@@ -1 +1 @@
1
- import F from"../../../attributeList/index.js";import _ from"../../../checkboxList/index.js";import{CaretRightOutlined as j}from"@ant-design/icons";import{Collapse as x,Tooltip as B,Badge as N}from"antd";import{cloneDeep as A}from"lodash";import t,{Component as R}from"react";import u from"./index.module.scss.js";import k from"../LabelDetailPopover/index.js";import V from"../labelFilterInput/index.js";import{TagUtils as T}from"@labelbee/lb-annotation";import M from"../../../../assets/annotation/common/icon_clearSmall.svg.js";import O from"../../../../assets/annotation/common/icon_clearSmall_a.svg.js";const $=(i,l)=>K(i,l,"#666FFF"),K=(i,l,s)=>{if(!i||!l)return i;const a=i.indexOf(l);return a===-1?i:t.createElement(t.Fragment,null,i.slice(0,a),t.createElement("span",{style:{color:s}},l),i.slice(a+l.length))},{Panel:U}=x;class H extends R{constructor(l){super(l);this.sideBar=t.createRef(),this.updateScrollTop=s=>{var a;this.sideBar.current&&((a=this.sideBar.current.children[s])==null||a.scrollIntoView({block:"center"}))},this.setExpendKeyList=(s,a,h,m)=>{const o=A(s);o[a]===""||m===!0?o[a]=h:o[a]="",this.setState({expandKeyList:o})},this.setInputValue=s=>{this.setState({inputValue:s.target.value})},this.state={hoverDeleteIndex:-1,expandKeyList:l.labelInfoSet.map(s=>s.value),inputValue:""}}shouldComponentUpdate(l,s){var a;const{labelSelectedList:h,labelInfoSet:m}=l;if((this.props.labelInfoSet.length!==l.labelInfoSet.length||this.state.inputValue!==s.inputValue)&&this.setState({expandKeyList:l.labelInfoSet.map(o=>o.value)}),h[0]!==this.props.labelSelectedList[0]&&l.labelSelectedList.length===1){const o=h[0],d=(a=m.filter((c,E)=>E===o)[0])==null?void 0:a.value;return this.setExpendKeyList(this.state.expandKeyList,o,d,!0),!0}return l.labelSelectedList.length===1&&this.updateScrollTop(h[0]),(this.props.imgIndex!==l.imgIndex||this.props.graphIndex!==l.graphIndex)&&this.updateScrollTop(0),!0}render(){const{labelInfoSet:l,labelSelectedList:s,tagResult:a,clearResult:h,entityMap:m}=this.props,{hoverDeleteIndex:o,expandKeyList:d,inputValue:c}=this.state,E=l;let f=!1;l.forEach(r=>{const{subSelected:p=[]}=r;r.hasShow=!1,p.forEach(e=>{const{key:n}=e;if(!c){e.showLabel=e.key,e.show=!0;return}n.indexOf(c)>-1?(e.showLabel=$(n,c),e.show=!0,r.hasShow=!0):(e.showLabel=e.key,e.show=!1)}),r.hasShow&&(f=!0)});const w=r=>s.length>0&&s[0]===r?t.createElement("span",{className:u.keyDownIconActive},r+1):t.createElement("span",{className:u.keyDownIcon},r+1),D=({isActive:r})=>t.createElement(j,{rotate:r?90:0}),L=(r,p=-1)=>{if(!!r)return r.map((e,n)=>{var y,S,I;if(e.subSelected){if(c&&!e.hasShow)return null;const b=T.judgeResultIsInInputList(e.value,a==null?void 0:a[e.value],E);return t.createElement(x,{bordered:!1,expandIcon:D,key:`collapse_${n}_${p+1}`,onChange:()=>this.setExpendKeyList(d,n,e.value),activeKey:[d[n]]},t.createElement(U,{header:t.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},t.createElement("span",null,e.key,t.createElement(B,{placement:"bottom",title:"\u6E05\u7A7A\u6B64\u9009\u9879"},t.createElement("img",{style:{marginLeft:5,cursor:"pointer"},onClick:g=>{g.stopPropagation(),h(e.value)},src:o===n||b?O:M,onMouseEnter:()=>{this.setState({hoverDeleteIndex:n})},onMouseLeave:()=>{this.setState({hoverDeleteIndex:-1})}})),b&&d[n]===""&&t.createElement(N,{color:"#87d068"})),!c&&this.props.labelInfoSet.length>1&&w(n)),key:e.value},t.createElement("div",{className:u.level,style:{backgroundColor:s.length>0&&s[0]===n?"rgba(158, 158, 158, 0.18)":""}},L(e.subSelected,n))))}else{const b=this.props.labelInfoSet[p]?this.props.labelInfoSet[p].value:0,g=((S=(y=a==null?void 0:a[b])==null?void 0:y.split(";"))==null?void 0:S.indexOf(e.value))>-1?e.value:"",C=m==null?void 0:m.get(e.value);if(((I=this.props.labelInfoSet[p])==null?void 0:I.isMulti)===!0){let v=n+1;return typeof v=="number"&&v<=9&&v>=0||(v="-"),(e==null?void 0:e.show)&&t.createElement("div",{className:u.singleBar},t.createElement(k,{labelDetail:C,visible:this.props.dynamicTag},t.createElement(_,{attributeChanged:()=>this.props.setLabel(p,n),selectedAttribute:[g],list:[{value:e.value,label:e.key,showLabel:e.showLabel}],num:v})))}else return(e==null?void 0:e.show)&&t.createElement("div",{className:u.singleBar},t.createElement(k,{labelDetail:C,visible:this.props.dynamicTag},t.createElement(F,{attributeChanged:()=>this.props.setLabel(p,n),selectedAttribute:g,list:[{value:e.value,label:e.key}],num:n+1})))}})};return l.length===0?t.createElement("div",{style:{padding:20,textAlign:"center"}},"\u6682\u65E0\u4FE1\u606F\u914D\u7F6E"):t.createElement("div",{className:u.filterContainer},t.createElement("div",{className:u.filterInputContainer},t.createElement(V,{value:c,onChange:this.setInputValue})),t.createElement("div",{className:u.filterContent},t.createElement("div",{className:u.main,ref:this.sideBar},L(l),!!c&&!f&&t.createElement("div",{style:{textAlign:"center",color:"#999"}},"\u6682\u65E0\u6570\u636E"))))}}export{H as default,K as highlightKeyword};
1
+ import T from"../../../attributeList/index.js";import _ from"../../../checkboxList/index.js";import{CaretRightOutlined as j}from"@ant-design/icons";import{Collapse as x,Tooltip as B,Badge as R}from"antd";import{cloneDeep as V}from"lodash";import t,{Component as F}from"react";import u from"./index.module.scss.js";import k from"../LabelDetailPopover/index.js";import A from"../labelFilterInput/index.js";import{TagUtils as O}from"@labelbee/lb-annotation";import M from"../../../../assets/annotation/common/icon_clearSmall.svg.js";import $ from"../../../../assets/annotation/common/icon_clearSmall_a.svg.js";import{withTranslation as U}from"react-i18next";const H=(i,l)=>w(i,l,"#666FFF"),w=(i,l,s)=>{if(!i||!l)return i;const a=i.indexOf(l);return a===-1?i:t.createElement(t.Fragment,null,i.slice(0,a),t.createElement("span",{style:{color:s}},l),i.slice(a+l.length))},{Panel:W}=x;class q extends F{constructor(l){super(l);this.sideBar=t.createRef(),this.updateScrollTop=s=>{var a;this.sideBar.current&&((a=this.sideBar.current.children[s])==null||a.scrollIntoView({block:"center"}))},this.setExpendKeyList=(s,a,p,m)=>{const r=V(s);r[a]===""||m===!0?r[a]=p:r[a]="",this.setState({expandKeyList:r})},this.setInputValue=s=>{this.setState({inputValue:s.target.value})},this.state={hoverDeleteIndex:-1,expandKeyList:l.labelInfoSet.map(s=>s.value),inputValue:""}}shouldComponentUpdate(l,s){var a;const{labelSelectedList:p,labelInfoSet:m}=l;if((this.props.labelInfoSet.length!==l.labelInfoSet.length||this.state.inputValue!==s.inputValue)&&this.setState({expandKeyList:l.labelInfoSet.map(r=>r.value)}),p[0]!==this.props.labelSelectedList[0]&&l.labelSelectedList.length===1){const r=p[0],f=(a=m.filter((v,c)=>c===r)[0])==null?void 0:a.value;return this.setExpendKeyList(this.state.expandKeyList,r,f,!0),!0}return l.labelSelectedList.length===1&&this.updateScrollTop(p[0]),(this.props.imgIndex!==l.imgIndex||this.props.graphIndex!==l.graphIndex)&&this.updateScrollTop(0),!0}render(){const{labelInfoSet:l,labelSelectedList:s,tagResult:a,clearResult:p,entityMap:m,t:r}=this.props,{hoverDeleteIndex:f,expandKeyList:v,inputValue:c}=this.state,K=l;let L=!1;l.forEach(o=>{const{subSelected:h=[]}=o;o.hasShow=!1,h.forEach(e=>{const{key:n}=e;if(!c){e.showLabel=e.key,e.show=!0;return}n.indexOf(c)>-1?(e.showLabel=H(n,c),e.show=!0,o.hasShow=!0):(e.showLabel=e.key,e.show=!1)}),o.hasShow&&(L=!0)});const D=o=>s.length>0&&s[0]===o?t.createElement("span",{className:u.keyDownIconActive},o+1):t.createElement("span",{className:u.keyDownIcon},o+1),N=({isActive:o})=>t.createElement(j,{rotate:o?90:0}),y=(o,h=-1)=>{if(!!o)return o.map((e,n)=>{var E,S,I;if(e.subSelected){if(c&&!e.hasShow)return null;const b=O.judgeResultIsInInputList(e.value,a==null?void 0:a[e.value],K);return t.createElement(x,{bordered:!1,expandIcon:N,key:`collapse_${n}_${h+1}`,onChange:()=>this.setExpendKeyList(v,n,e.value),activeKey:[v[n]]},t.createElement(W,{header:t.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},t.createElement("span",null,e.key,t.createElement(B,{placement:"bottom",title:r("ClearThisOption")},t.createElement("img",{style:{marginLeft:5,cursor:"pointer"},onClick:g=>{g.stopPropagation(),p(e.value)},src:f===n||b?$:M,onMouseEnter:()=>{this.setState({hoverDeleteIndex:n})},onMouseLeave:()=>{this.setState({hoverDeleteIndex:-1})}})),b&&v[n]===""&&t.createElement(R,{color:"#87d068"})),!c&&this.props.labelInfoSet.length>1&&D(n)),key:e.value},t.createElement("div",{className:u.level,style:{backgroundColor:s.length>0&&s[0]===n?"rgba(158, 158, 158, 0.18)":""}},y(e.subSelected,n))))}else{const b=this.props.labelInfoSet[h]?this.props.labelInfoSet[h].value:0,g=((S=(E=a==null?void 0:a[b])==null?void 0:E.split(";"))==null?void 0:S.indexOf(e.value))>-1?e.value:"",C=m==null?void 0:m.get(e.value);if(((I=this.props.labelInfoSet[h])==null?void 0:I.isMulti)===!0){let d=n+1;return typeof d=="number"&&d<=9&&d>=0||(d="-"),(e==null?void 0:e.show)&&t.createElement("div",{className:u.singleBar},t.createElement(k,{labelDetail:C,visible:this.props.dynamicTag},t.createElement(_,{attributeChanged:()=>this.props.setLabel(h,n),selectedAttribute:[g],list:[{value:e.value,label:e.key,showLabel:e.showLabel}],num:d})))}else return(e==null?void 0:e.show)&&t.createElement("div",{className:u.singleBar},t.createElement(k,{labelDetail:C,visible:this.props.dynamicTag},t.createElement(T,{attributeChanged:()=>this.props.setLabel(h,n),selectedAttribute:g,list:[{value:e.value,label:e.key}],num:n+1})))}})};return l.length===0?t.createElement("div",{style:{padding:20,textAlign:"center"}},r("NoConfiguration")):t.createElement("div",{className:u.filterContainer},t.createElement("div",{className:u.filterInputContainer},t.createElement(A,{value:c,onChange:this.setInputValue})),t.createElement("div",{className:u.filterContent},t.createElement("div",{className:u.main,ref:this.sideBar},y(l),!!c&&!L&&t.createElement("div",{style:{textAlign:"center",color:"#999"}},r("NoData")))))}}const z=U()(q);export{z as default,w as highlightKeyword};
@@ -1 +1 @@
1
- import o,{useState as U,useEffect as F,useMemo as te}from"react";import{AudioPlayer as Ee}from"../audioPlayer/index.js";import{getClassName as _e}from"../../utils/dom.js";import Ce from"../predictTracking/previewResult/index.js";import{Layout as oe}from"antd/es";import{Spin as je}from"antd";import{prefix as Re}from"../../constant/index.js";import{cKeyCode as Te,CommonToolUtils as K,uuid as Pe,TagUtils as Le,cTool as he}from"@labelbee/lb-annotation";import N from"./index.module.scss.js";import we from"./tagResultShow/index.js";import{AudioClipProvider as Ae,useAudioClipStore as Oe}from"./audioContext/index.js";import Ie from"./textInput/index.js";import{connect as Ne}from"react-redux";import{a2MapStateToProps as ke}from"../../store/annotation/map.js";import{LabelBeeContext as De}from"../../store/ctx.js";import{jsonParser as $e}from"../../utils/index.js";import{useCustomToolInstance as Me}from"../../hooks/annotation.js";import{sidebarCls as Q}from"../../views/MainView/sidebar/index.js";import Ve from"./audioSide/labelSidebar/index.js";import Ke from"./audioSide/clipSidebar/index.js";import Be from"../../assets/annotation/audio/tag.svg.js";import We from"../../assets/annotation/audio/tagA.svg.js";import Ue from"../../assets/annotation/audio/clip.svg.js";import Fe from"../../assets/annotation/audio/clipA.svg.js";var Xe=Object.defineProperty,qe=Object.defineProperties,ze=Object.getOwnPropertyDescriptors,ne=Object.getOwnPropertySymbols,Ge=Object.prototype.hasOwnProperty,He=Object.prototype.propertyIsEnumerable,ie=(e,t,r)=>t in e?Xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,y=(e,t)=>{for(var r in t||(t={}))Ge.call(t,r)&&ie(e,r,t[r]);if(ne)for(var r of ne(t))He.call(t,r)&&ie(e,r,t[r]);return e},k=(e,t)=>qe(e,ze(t));const{EAudioToolName:Je}=he,le=Te.default,{Sider:Qe,Content:Ye}=oe,re=`${Re}-layout`,Ze=({setSideTab:e,sideTab:t})=>{const r=[{tab:"tag",commonSvg:Be,selectedSvg:We},{tab:"clip",commonSvg:Ue,selectedSvg:Fe}];return o.createElement("div",{className:N.toggleAudioOption},r.map((m,S)=>{const{tab:c,selectedSvg:x,commonSvg:C}=m;return o.createElement("div",{key:S,className:N.option},o.createElement("img",{className:N.icon,src:t===c?x:C,onClick:()=>{t!==c&&e(c)}}))}))},et=({result:e,inputDisabled:t,updateText:r,configList:m,autofocus:S,preContext:c,isCheck:x,clipAttributeConfigurable:C,clipTextConfigurable:D,textConfigurable:p,updateRegion:E,clipAttributeList:d})=>o.createElement("div",{className:N.textareaContainer},o.createElement("div",{className:N.textareaContent},o.createElement(Ie,{isCheck:x,result:e==null?void 0:e.value,textInputDisabled:t,textID:(e==null?void 0:e.id)||0,updateText:r,configList:m,autofocus:!t&&S,preContext:c,regions:e==null?void 0:e.regions,clipAttributeConfigurable:C,clipTextConfigurable:D,textConfigurable:p,updateRegion:E,clipAttributeList:d}))),tt=e=>{var t,r;const{sider:m,config:S,result:c,updateTagResult:x,updateRegion:C,isEdit:D,tagConfigurable:p,clipConfigurable:E}=e;let d=(S==null?void 0:S.inputList)||[],_=(t=c==null?void 0:c.tag)!=null?t:{},s=(r=c==null?void 0:c.regions)!=null?r:[];const[X,h]=U([]),[j,g]=U("tag");F(()=>{if(!p&&E){g("clip");return}g("tag")},[p,E]),F(()=>(window.addEventListener("keydown",$),()=>{window.removeEventListener("keydown",$)}));const $=i=>{if(p&&E)switch(i.keyCode){case le.L:g("tag");break;case le.X:g("clip");break}if(j==="tag"){if(!K.hotkeyFilter(i))return;K.isMoveKey(i==null?void 0:i.keyCode)&&i.preventDefault();let l=i.keyCode;if(l&&(l<=57&&l>=49||l<=105&&l>=97)){l>57?l=l-97:l=l-49;const u=X.slice();d.length===1?(R(0,l),h([0,l]),setTimeout(()=>{h([])},500)):u.length===1?(R(u[0],l),h([u[0],l]),setTimeout(()=>{h([])},500)):h([l])}}},R=(i,l)=>{if(i<d.length&&d[i].subSelected&&l<d[i].subSelected.length){const u=d[i].value,v=d[i].isMulti;let T=d[i].subSelected[l].value,q=0;const O=_;for(const I in _)if(I===d[i].value){if(q++,v===!0){const P=O[I].split(";").filter(z=>z!==""),B=P.indexOf(T);B===-1?P.push(T):P.splice(B,1),T=P.join(";")}T===""?delete O[I]:O[I]=T}q===0&&Object.assign(_,{[u]:T}),x(_)}},w=i=>{delete _[i],x(_)},A=p&&E&&o.createElement(Ze,{setSideTab:g,sideTab:j}),M=j==="tag"&&o.createElement(Ve,{labelInfoSet:p?d:[],labelSelectedList:X,setLabel:R,tagResult:_,clearResult:w,isEdit:D,withPanelTab:!1}),V=j==="clip"&&o.createElement(Ke,{regions:s,updateRegion:C,useAudioClipStore:Oe});return m?typeof m=="function"?o.createElement("div",{className:`${Q}`},m({toggleAudioOption:A,labelSidebar:M,clipSidebar:V})):m:o.createElement("div",{className:`${Q}`},o.createElement("div",{className:`${Q}__content`},A,M,V))},ot=e=>{var t,r,m,S,c,x,C,D,p;const E=(r=(t=e.style)==null?void 0:t.sider)==null?void 0:r.width,{step:d,stepList:_,audioContext:s,sider:X,drawLayerSlot:h,imgList:j,imgIndex:g,currentData:$,config:R,stepInfo:w}=e,A=K.getCurrentStepToolAndConfig(d,_),M=$e($.result),{toolInstanceRef:V}=Me({basicInfo:M}),[i,l]=U(!0),[u,v]=U(null),[T,q]=U(0);F(()=>{l(!0)},[g]),F(()=>{i===!1&&me()},[i]),F(()=>{V.current.exportData=()=>[[u],{duration:T,valid:H}],V.current.setResult=Se,V.current.clearResult=xe},[u]);const O=te(()=>{const n=M[`step_${w==null?void 0:w.step}`];return(n==null?void 0:n.result)||[]},[R,M,w]),{tagConfigurable:I,textConfigurable:P=!0,clipConfigurable:B=!1,clipAttributeConfigurable:z=!1,clipAttributeList:Y=[],clipTextConfigurable:G=!1,inputList:se=[],configList:ae=[]}=te(()=>{if(A)return K.jsonParser(A==null?void 0:A.config)},[A]),ue={clipConfigurable:B,clipAttributeConfigurable:z,clipAttributeList:Y,clipTextConfigurable:G},H=s?s==null?void 0:s.valid:!0,ce=(S=(m=K.jsonParser($.result))==null?void 0:m.duration)!=null?S:0,de=H?ce:0,fe=!H||i||![P,G].includes(!0);let Z={};if(g!==-1&&(j==null?void 0:j.length)){const n=(c=j[g])==null?void 0:c.preResult,a=(s==null?void 0:s.isEdit)?(x=s==null?void 0:s.stepConfig)==null?void 0:x.loadPreStep:w==null?void 0:w.loadPreStep;if(n&&a){const f=K.jsonParser(n),b=(D=(C=f==null?void 0:f.config)==null?void 0:C.context)!=null?D:{};Object.keys(b).forEach(L=>{L&&b[L]&&(Z[L]={visible:!0,content:b[L],type:L})})}}const me=()=>{(O==null?void 0:O.length)>0?v(O[0]):v({id:Pe(),sourceID:"",value:ee(),tag:pe(),regions:[]})},ee=(n=!0)=>{const a={};let f=R.configList||[];return f.length>0&&f.forEach(b=>{a[b.key]=n&&b.default||""}),a},pe=()=>Le.getDefaultResultByConfig(R.inputList||[]),ge=({duration:n,hasError:a})=>{l(!1),q(n)},ve=n=>{v(a=>k(y({},a),{regions:((a==null?void 0:a.regions)||[]).filter(f=>f.id!==n)}))},J=n=>{v(a=>{var f;const b=(f=a==null?void 0:a.regions)!=null?f:[],{id:L}=n;return b.find(W=>W.id===L)?k(y({},a),{regions:b.map(W=>L===W.id?y(y({},W),n):W)}):k(y({},a),{regions:[...b,n]})})},be=(n,a)=>{v(f=>k(y({},f),{value:k(y({},f.value),{[a]:n})}))},ye=n=>{v(a=>k(y({},a),{tag:n}))},Se=n=>{v(n)},xe=()=>{v(n=>k(y({},n),{value:ee(),tag:{},regions:[]}))};return o.createElement(Ae,null,o.createElement(je,{spinning:i,wrapperClassName:"audio-tool-spinner"},o.createElement(oe,{className:_e("layout","container"),style:{height:"100%"}},e==null?void 0:e.leftSider,o.createElement(Ye,{className:`${re}__content`},o.createElement("div",{className:N.containerWrapper},o.createElement("div",{className:N.audioWrapper},I&&o.createElement(we,{result:u==null?void 0:u.tag,labelInfoSet:se,hasPromptLayer:!!(s==null?void 0:s.promptLayer)}),s==null?void 0:s.promptLayer,o.createElement(Ee,y({context:{isEdit:s==null?void 0:s.isEdit,count:de,toolName:Je.AudioTextTool,imgIndex:g},drawLayerSlot:h,fileData:$,onLoaded:ge,invalid:!H,updateRegion:J,removeRegion:ve,regions:u==null?void 0:u.regions,activeToolPanel:s==null?void 0:s.activeToolPanel,footer:e.footer},ue))),(P||G)&&o.createElement(et,{preContext:Z,result:u,inputDisabled:fe,updateText:be,updateRegion:J,configList:ae,autofocus:!1,textConfigurable:P,clipTextConfigurable:G,clipAttributeList:Y,clipAttributeConfigurable:z}))),o.createElement(Qe,{className:`${re}__side`,width:E!=null?E:240,style:(p=e.style)==null?void 0:p.sider},o.createElement(tt,{sider:X,config:R,result:u,updateTagResult:ye,updateRegion:J,isEdit:s==null?void 0:s.isEdit,tagConfigurable:I,clipConfigurable:B})),o.createElement(Ce,null))))};var nt=Ne(ke,null,null,{context:De})(ot);export{nt as default};
1
+ import i,{useState as F,useEffect as B,useMemo as ne}from"react";import{AudioPlayer as _e}from"../audioPlayer/index.js";import{getClassName as Ce}from"../../utils/dom.js";import Re from"../predictTracking/previewResult/index.js";import{Layout as oe}from"antd/es";import{Spin as Te}from"antd";import{prefix as je}from"../../constant/index.js";import{cKeyCode as Pe,CommonToolUtils as K,uuid as he,TagUtils as we,EventBus as Le,cTool as Oe}from"@labelbee/lb-annotation";import N from"./index.module.scss.js";import Ae from"./tagResultShow/index.js";import{AudioClipProvider as Ie,useAudioClipStore as Ne}from"./audioContext/index.js";import ke from"./textInput/index.js";import{connect as De}from"react-redux";import{a2MapStateToProps as $e}from"../../store/annotation/map.js";import{LabelBeeContext as Me}from"../../store/ctx.js";import{jsonParser as Ve}from"../../utils/index.js";import{useCustomToolInstance as Be}from"../../hooks/annotation.js";import{sidebarCls as Q}from"../../views/MainView/sidebar/index.js";import Ke from"./audioSide/labelSidebar/index.js";import We from"./audioSide/clipSidebar/index.js";import Ue from"../../assets/annotation/audio/tag.svg.js";import Fe from"../../assets/annotation/audio/tagA.svg.js";import Xe from"../../assets/annotation/audio/clip.svg.js";import qe from"../../assets/annotation/audio/clipA.svg.js";var ze=Object.defineProperty,Ge=Object.defineProperties,He=Object.getOwnPropertyDescriptors,ie=Object.getOwnPropertySymbols,Je=Object.prototype.hasOwnProperty,Qe=Object.prototype.propertyIsEnumerable,le=(t,n,s)=>n in t?ze(t,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[n]=s,E=(t,n)=>{for(var s in n||(n={}))Je.call(n,s)&&le(t,s,n[s]);if(ie)for(var s of ie(n))Qe.call(n,s)&&le(t,s,n[s]);return t},k=(t,n)=>Ge(t,He(n));const{EAudioToolName:Ye}=Oe,re=Pe.default,{Sider:Ze,Content:et}=oe,se=`${je}-layout`,tt=({setSideTab:t,sideTab:n})=>{const s=[{tab:"tag",commonSvg:Ue,selectedSvg:Fe},{tab:"clip",commonSvg:Xe,selectedSvg:qe}];return i.createElement("div",{className:N.toggleAudioOption},s.map((p,S)=>{const{tab:f,selectedSvg:x,commonSvg:R}=p;return i.createElement("div",{key:S,className:N.option},i.createElement("img",{className:N.icon,src:n===f?x:R,onClick:()=>{n!==f&&t(f)}}))}))},nt=({result:t,inputDisabled:n,updateText:s,configList:p,autofocus:S,preContext:f,isCheck:x,clipAttributeConfigurable:R,clipTextConfigurable:D,textConfigurable:g,updateRegion:_,clipAttributeList:m})=>i.createElement("div",{className:N.textareaContainer},i.createElement("div",{className:N.textareaContent},i.createElement(ke,{isCheck:x,result:t==null?void 0:t.value,textInputDisabled:n,textID:(t==null?void 0:t.id)||0,updateText:s,configList:p,autofocus:!n&&S,preContext:f,regions:t==null?void 0:t.regions,clipAttributeConfigurable:R,clipTextConfigurable:D,textConfigurable:g,updateRegion:_,clipAttributeList:m}))),ot=t=>{var n,s;const{sider:p,config:S,result:f,updateTagResult:x,updateRegion:R,isEdit:D,tagConfigurable:g,clipConfigurable:_}=t;let m=(S==null?void 0:S.inputList)||[],C=(n=f==null?void 0:f.tag)!=null?n:{},a=(s=f==null?void 0:f.regions)!=null?s:[];const[X,L]=F([]),[T,v]=F("tag");B(()=>{if(!g&&_){v("clip");return}v("tag")},[g,_]),B(()=>(window.addEventListener("keydown",$),()=>{window.removeEventListener("keydown",$)}));const $=l=>{if(g&&_)switch(l.keyCode){case re.L:v("tag");break;case re.X:v("clip");break}if(T==="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?(j(0,r),L([0,r]),setTimeout(()=>{L([])},500)):d.length===1?(j(d[0],r),L([d[0],r]),setTimeout(()=>{L([])},500)):L([r])}}},j=(l,r)=>{if(l<m.length&&m[l].subSelected&&r<m[l].subSelected.length){const d=m[l].value,b=m[l].isMulti;let P=m[l].subSelected[r].value,q=0;const W=C;for(const h in C)if(h===m[l].value){if(q++,b===!0){const I=W[h].split(";").filter(z=>z!==""),V=I.indexOf(P);V===-1?I.push(P):I.splice(V,1),P=I.join(";")}P===""?delete W[h]:W[h]=P}q===0&&Object.assign(C,{[d]:P}),x(C)}},O=l=>{delete C[l],x(C)},A=g&&_&&i.createElement(tt,{setSideTab:v,sideTab:T}),M=T==="tag"&&i.createElement(Ke,{labelInfoSet:g?m:[],labelSelectedList:X,setLabel:j,tagResult:C,clearResult:O,isEdit:D,withPanelTab:!1}),u=T==="clip"&&i.createElement(We,{regions:a,updateRegion:R,useAudioClipStore:Ne});return p?typeof p=="function"?i.createElement("div",{className:`${Q}`},p({toggleAudioOption:A,labelSidebar:M,clipSidebar:u})):p:i.createElement("div",{className:`${Q}`},i.createElement("div",{className:`${Q}__content`},A,M,u))},it=t=>{var n,s,p,S,f,x,R,D,g;const _=(s=(n=t.style)==null?void 0:n.sider)==null?void 0:s.width,{step:m,stepList:C,audioContext:a,sider:X,drawLayerSlot:L,imgList:T,imgIndex:v,currentData:$,config:j,stepInfo:O}=t,A=K.getCurrentStepToolAndConfig(m,C),M=Ve($.result),{toolInstanceRef:u}=Be({basicInfo:M}),[l,r]=F(!0),[d,b]=F(null),[P,q]=F(0);B(()=>{r(!0)},[v]),B(()=>{l===!1&&pe()},[l]),B(()=>{W()},[]),B(()=>{u.current.exportData=()=>[[d],{duration:P,valid:H}],u.current.setResult=Se,u.current.clearResult=xe,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)}},h=ne(()=>{const e=M[`step_${O==null?void 0:O.step}`];return(e==null?void 0:e.result)||[]},[j,M,O]),{tagConfigurable:I,textConfigurable:V=!0,clipConfigurable:z=!1,clipAttributeConfigurable:Y=!1,clipAttributeList:Z=[],clipTextConfigurable:G=!1,inputList:ae=[],configList:ue=[]}=ne(()=>{if(A)return K.jsonParser(A==null?void 0:A.config)},[A]),ce={clipConfigurable:z,clipAttributeConfigurable:Y,clipAttributeList:Z,clipTextConfigurable:G},H=a?a==null?void 0:a.valid:!0,de=(S=(p=K.jsonParser($.result))==null?void 0:p.duration)!=null?S:0,fe=H?de:0,me=!H||l||![V,G].includes(!0);let ee={};if(v!==-1&&(T==null?void 0:T.length)){const e=(f=T[v])==null?void 0:f.preResult,o=(a==null?void 0:a.isEdit)?(x=a==null?void 0:a.stepConfig)==null?void 0:x.loadPreStep:O==null?void 0:O.loadPreStep;if(e&&o){const c=K.jsonParser(e),y=(D=(R=c==null?void 0:c.config)==null?void 0:R.context)!=null?D:{};Object.keys(y).forEach(w=>{w&&y[w]&&(ee[w]={visible:!0,content:y[w],type:w})})}}const pe=()=>{(h==null?void 0:h.length)>0?b(h[0]):b({id:he(),sourceID:"",value:te(),tag:ge(),regions:[]})},te=(e=!0)=>{const o={};let c=j.configList||[];return c.length>0&&c.forEach(y=>{o[y.key]=e&&y.default||""}),o},ge=()=>we.getDefaultResultByConfig(j.inputList||[]),ve=({duration:e,hasError:o})=>{r(!1),q(e)},be=e=>{b(o=>k(E({},o),{regions:((o==null?void 0:o.regions)||[]).filter(c=>c.id!==e)}))},J=e=>{b(o=>{var c;const y=(c=o==null?void 0:o.regions)!=null?c:[],{id:w}=e;return y.find(U=>U.id===w)?k(E({},o),{regions:y.map(U=>w===U.id?E(E({},U),e):U)}):k(E({},o),{regions:[...y,e]})})},ye=(e,o)=>{b(c=>k(E({},c),{value:k(E({},c.value),{[o]:e})}))},Ee=e=>{b(o=>k(E({},o),{tag:e}))},Se=e=>{b(e)},xe=()=>{b(e=>k(E({},e),{value:te(),tag:{},regions:[]})),Le.emit("clearRegions")};return i.createElement(Ie,null,i.createElement(Te,{spinning:l,wrapperClassName:"audio-tool-spinner"},i.createElement(oe,{className:Ce("layout","container"),style:{height:"100%"}},t==null?void 0:t.leftSider,i.createElement(et,{className:`${se}__content`},i.createElement("div",{className:N.containerWrapper},i.createElement("div",{className:N.audioWrapper},I&&i.createElement(Ae,{result:d==null?void 0:d.tag,labelInfoSet:ae,hasPromptLayer:!!(a==null?void 0:a.promptLayer)}),a==null?void 0:a.promptLayer,i.createElement(_e,E({context:{isEdit:a==null?void 0:a.isEdit,count:fe,toolName:Ye.AudioTextTool,imgIndex:v},drawLayerSlot:L,fileData:$,onLoaded:ve,invalid:!H,updateRegion:J,removeRegion:be,regions:d==null?void 0:d.regions,activeToolPanel:a==null?void 0:a.activeToolPanel,footer:t.footer},ce))),(V||G)&&i.createElement(nt,{preContext:ee,result:d,inputDisabled:me,updateText:ye,updateRegion:J,configList:ue,autofocus:!1,textConfigurable:V,clipTextConfigurable:G,clipAttributeList:Z,clipAttributeConfigurable:Y}))),i.createElement(Ze,{className:`${se}__side`,width:_!=null?_:240,style:(g=t.style)==null?void 0:g.sider},i.createElement(ot,{sider:X,config:j,result:d,updateTagResult:Ee,updateRegion:J,isEdit:a==null?void 0:a.isEdit,tagConfigurable:I,clipConfigurable:z})),i.createElement(Re,null))))};var lt=De($e,null,null,{context:Me})(it);export{lt as default};
@@ -1 +1 @@
1
- import e,{useState as $,useRef as U,useEffect as j}from"react";import{Tooltip as X,Radio as R,Switch as re}from"antd";import{QuestionCircleOutlined as ue}from"@ant-design/icons";import{TextareaWithFooter as se}from"../../../views/MainView/sidebar/TextToolSidebar/index.js";import{timeFormat as J,getAttributeColor as ce,getAttributeFontColor as ie,updateColorOpacity as de,getAttributeShowText as me,DEFAULT_TEXT_CONFIG_ITEM as Ee}from"../../../utils/audio.js";import{cKeyCode as pe}from"@labelbee/lb-annotation";import W from"classnames";import Y,{useAudioClipStore as fe}from"../audioContext/index.js";import o from"./index.module.scss.js";var ve=Object.defineProperty,Fe=Object.defineProperties,xe=Object.getOwnPropertyDescriptors,Z=Object.getOwnPropertySymbols,ge=Object.prototype.hasOwnProperty,Ce=Object.prototype.propertyIsEnumerable,ee=(u,n,r)=>n in u?ve(u,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):u[n]=r,te=(u,n)=>{for(var r in n||(n={}))ge.call(n,r)&&ee(u,r,n[r]);if(Z)for(var r of Z(n))Ce.call(n,r)&&ee(u,r,n[r]);return u},be=(u,n)=>Fe(u,xe(n));const m=pe.default,ae=({onClick:u,title:n,disabled:r})=>e.createElement(X,{placement:"bottom",title:n},e.createElement("span",{className:W({[o.clearIcon]:!0,[o.disabled]:r}),onClick:u})),z=u=>{var n;const r=U(null),[h,F]=$(!1),[M,E]=$(!1),{disabled:c,config:s,result:y,updateText:A,index:x,switchToNextTextarea:g,hasMultiple:q,textID:D,addPlaceholder:i,onFocus:T,onBlur:w,onFocusStyle:B={},extra:P}=u,{maxLength:C}=s,N=y?y[s.key]:"",k=(n=N==null?void 0:N.length)!=null?n:0,I=a=>{A&&(A(a,s.key),s.required&&E(!a))},O=q&&g,p={id:`textInput-${x}`,ref:r,disabled:c,value:N,maxLength:C,autoSize:{minRows:2,maxRows:6},onChange:a=>{const d=a.target.value;I(d)},onFocus:a=>{F(!0),T==null||T(a),a.target.value&&E(!1)},onBlur:a=>{F(!1),w==null||w(a),s.required&&E(!a.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:a=>{const{keyCode:d}=a;if(a.ctrlKey){if(d===m.Enter&&a.preventDefault(),i&&[m.One,m.Two,m.Three].includes(d))switch(a.preventDefault(),d){case m.One:i("\u4986");break;case m.Two:i("\u652B");break;case m.Three:i("\u7383");break}}else d===m.Tab&&O?(a.preventDefault(),a.nativeEvent.stopImmediatePropagation(),g(x)):a.nativeEvent.stopPropagation()}},f=e.createElement("div",{className:o.textAreaFooter},e.createElement("div",{className:o.hotkeyTip},O&&e.createElement("span",null,"[\u5207\u6362]Tab"),e.createElement("span",null,"[\u7FFB\u9875]Ctrl+Enter")),e.createElement("div",{className:o.wordCount},e.createElement("span",{className:k>=C?o.warning:""},k),"/",e.createElement("span",null,C)));return j(()=>{c&&F(!1)},[c]),j(()=>{E(!1)},[D]),e.createElement("div",{className:o.textField},e.createElement("div",{className:o.label},e.createElement("span",{className:W({[o.required]:s.required})},s.label),e.createElement(ae,{onClick:()=>{c||I("")},title:"",disabled:c}),e.createElement("div",{className:o.extra},P)),e.createElement("div",{className:W({disabled:c,"textarea-outline":!0,"ant-input-focused":h,[o.textareaContainer]:!0,[o.focus]:h,[o.invalid]:M}),style:h?B:{}},e.createElement(se,{footer:f,textareaProps:p})))},he=u=>{const{configList:n,autofocus:r,textID:h,result:F,showText:M,updateText:E,toggleShowText:c,textInputDisabled:s,isCheck:y,isEdit:A,config:x,preContext:g,regions:q=[],textConfigurable:D=!0,clipTextConfigurable:i,clipAttributeConfigurable:T,updateRegion:w,clipAttributeList:B=[]}=u,[P,C]=$(0),[N,k]=$(""),I=U(null),{audioClipState:O}=fe(),p=n||[te({},Ee)];let f=q;if(i&&!y){const t=O.selectedRegion.id;f=f.filter(l=>l.id===t)}const a=t=>{setTimeout(()=>{const l=document.getElementById(`textInput-${t}`);l&&(C(t),l.focus(),l.select(),l.scrollIntoView({behavior:"smooth",block:"center"}))})},d=t=>{const l=D?p.length:0,v=i?f.length:0,b=l+v,S=(t+1)%b;a(S)},G=t=>{t.keyCode===m.Tab&&(t.preventDefault(),p.length>0&&a(0))},L=t=>{const l=document.getElementById(`textInput-${P}`);if(!(x==null?void 0:x.enablePlaceholderHotkey)||!l||!E)return;const{value:v,selectionStart:b,selectionEnd:S}=l,_=`${v.slice(0,b)}${t}${v.slice(S)}`;E(_,p[P].key),k(t),setTimeout(()=>{l.setSelectionRange(b+1,b+1),l.focus()},0),clearTimeout(I.current),I.current=setTimeout(()=>{k("")},400)};j(()=>(A||document.addEventListener("keydown",G),()=>{document.removeEventListener("keydown",G)}),[n]),j(()=>{r&&!s&&a(0)},[h]);let K=p;y&&(K=p.filter(t=>(F==null?void 0:F[t.key])!==void 0));let Q={};return i&&f&&f.forEach(t=>{const{id:l,text:v}=t;Q[l]=v}),e.createElement(e.Fragment,null,(x==null?void 0:x.enablePlaceholderHotkey)&&e.createElement("div",{className:o.placeholderHotkey},e.createElement("div",{className:o.title},"\u5360\u4F4D\u7B26\u5FEB\u6377\u8F93\u5165",e.createElement(X,{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(ue,{className:o.questionIcon}))),e.createElement(R.Group,{value:N},e.createElement(R.Button,{value:"\u4986",onClick:t=>L(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(R.Button,{value:"\u652B",onClick:t=>L(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(R.Button,{value:"\u7383",onClick:t=>L(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(Y,{audioContext:g==null?void 0:g.before}),D&&K.map((t,l)=>e.createElement(z,{config:t,key:l,index:l,result:F,updateText:E,switchToNextTextarea:d,hasMultiple:p.length>1,disabled:s,textID:h,addPlaceholder:L,onFocus:()=>C(l)})),i&&f.map((t,l)=>{const{id:v,start:b,end:S,attribute:_}=t,le={label:`\u6587\u672C\uFF08${J(b,"ss.SSS")} - ${J(S,"ss.SSS")}\uFF09`,key:v,maxLength:3e3},H=K.length+l,V=ce(_,B),ne={color:ie(_,B),backgroundColor:V};return e.createElement(z,{config:le,key:l,index:H,disabled:s,result:Q,updateText:oe=>{w==null||w(be(te({},t),{text:oe}))},switchToNextTextarea:()=>{d(H)},hasMultiple:!0,onFocus:()=>C(H),onFocusStyle:T?{borderColor:V,boxShadow:`0 0 0 2px ${de(V,.4)}`}:{},extra:T?e.createElement("div",{style:ne,className:o.attribute},me(_,[{value:"",key:"\u65E0\u5C5E\u6027"},...B])):null})}),e.createElement(Y,{audioContext:g==null?void 0:g.after}),c&&e.createElement("div",{className:o.switchItem},"\u6587\u672C\u5BF9\u7167\u663E\u793A",e.createElement(re,{style:{alignSelf:"center"},checked:M,onChange:t=>{c(t)}}))))};export{ae as ClearIcon,z as SingleTextInput,he as default};
1
+ import e,{useState as R,useRef as X,useEffect as M}from"react";import{Tooltip as J,Radio as q,Switch as se}from"antd";import{QuestionCircleOutlined as ce}from"@ant-design/icons";import{TextareaWithFooter as ie}from"../../../views/MainView/sidebar/TextToolSidebar/index.js";import{timeFormat as Y,getAttributeColor as de,getAttributeFontColor as me,updateColorOpacity as Ee,getAttributeShowText as pe,DEFAULT_TEXT_CONFIG_ITEM as fe}from"../../../utils/audio.js";import{cKeyCode as ve}from"@labelbee/lb-annotation";import z from"classnames";import Z,{useAudioClipStore as xe}from"../audioContext/index.js";import o from"./index.module.scss.js";import{useTranslation as ee}from"react-i18next";var Fe=Object.defineProperty,ge=Object.defineProperties,Ce=Object.getOwnPropertyDescriptors,te=Object.getOwnPropertySymbols,he=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable,ae=(u,n,r)=>n in u?Fe(u,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):u[n]=r,le=(u,n)=>{for(var r in n||(n={}))he.call(n,r)&&ae(u,r,n[r]);if(te)for(var r of te(n))be.call(n,r)&&ae(u,r,n[r]);return u},Te=(u,n)=>ge(u,Ce(n));const d=ve.default,ne=({onClick:u,title:n,disabled:r})=>e.createElement(J,{placement:"bottom",title:n},e.createElement("span",{className:z({[o.clearIcon]:!0,[o.disabled]:r}),onClick:u})),G=u=>{var n;const{t:r}=ee(),A=X(null),[f,y]=R(!1),[w,v]=R(!1),{disabled:s,config:c,result:D,updateText:x,index:F,switchToNextTextarea:P,hasMultiple:O,textID:b,addPlaceholder:g,onFocus:N,onBlur:T,onFocusStyle:K={},extra:L}=u,{maxLength:C}=c,k=D?D[c.key]:"",B=(n=k==null?void 0:k.length)!=null?n:0,I=a=>{x&&(x(a,c.key),c.required&&v(!a))},$=O&&P,m={id:`textInput-${F}`,ref:A,disabled:s,value:k,maxLength:C,autoSize:{minRows:2,maxRows:6},onChange:a=>{const i=a.target.value;I(i)},onFocus:a=>{y(!0),N==null||N(a),a.target.value&&v(!1)},onBlur:a=>{y(!1),T==null||T(a),c.required&&v(!a.target.value)},style:{resize:"none",wordBreak:"break-all"},onKeyDownCapture:a=>{const{keyCode:i}=a;if(a.ctrlKey){if(i===d.Enter&&a.preventDefault(),g&&[d.One,d.Two,d.Three].includes(i))switch(a.preventDefault(),i){case d.One:g("\u4986");break;case d.Two:g("\u652B");break;case d.Three:g("\u7383");break}}else i===d.Tab&&$?(a.preventDefault(),a.nativeEvent.stopImmediatePropagation(),P(F)):a.nativeEvent.stopPropagation()}},E=e.createElement("div",{className:o.textAreaFooter},e.createElement("div",{className:o.hotkeyTip},$&&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:B>=C?o.warning:""},B),"/",e.createElement("span",null,C)));return M(()=>{s&&y(!1)},[s]),M(()=>{v(!1)},[b]),e.createElement("div",{className:o.textField},e.createElement("div",{className:o.label},e.createElement("span",{className:z({[o.required]:c.required})},c.label),e.createElement(ne,{onClick:()=>{s||I("")},title:"",disabled:s}),e.createElement("div",{className:o.extra},L)),e.createElement("div",{className:z({disabled:s,"textarea-outline":!0,"ant-input-focused":f,[o.textareaContainer]:!0,[o.focus]:f,[o.invalid]:w}),style:f?K:{}},e.createElement(ie,{footer:E,textareaProps:m})))},ye=u=>{const{configList:n,autofocus:r,textID:A,result:f,showText:y,updateText:w,toggleShowText:v,textInputDisabled:s,isCheck:c,isEdit:D,config:x,preContext:F,regions:P=[],textConfigurable:O=!0,clipTextConfigurable:b,clipAttributeConfigurable:g,updateRegion:N,clipAttributeList:T=[]}=u,{t:K}=ee(),[L,C]=R(0),[k,B]=R(""),I=X(null),{audioClipState:$}=xe(),m=n||[le({},fe)];let E=P;if(b&&!c){const t=$.selectedRegion.id;E=E.filter(l=>l.id===t)}const a=t=>{setTimeout(()=>{const l=document.getElementById(`textInput-${t}`);l&&(C(t),l.focus(),l.select(),l.scrollIntoView({behavior:"smooth",block:"center"}))})},i=t=>{const l=O?m.length:0,p=b?E.length:0,h=l+p,S=(t+1)%h;a(S)},Q=t=>{t.keyCode===d.Tab&&(t.preventDefault(),m.length>0&&a(0))},j=t=>{const l=document.getElementById(`textInput-${L}`);if(!(x==null?void 0:x.enablePlaceholderHotkey)||!l||!w)return;const{value:p,selectionStart:h,selectionEnd:S}=l,_=`${p.slice(0,h)}${t}${p.slice(S)}`;w(_,m[L].key),B(t),setTimeout(()=>{l.setSelectionRange(h+1,h+1),l.focus()},0),clearTimeout(I.current),I.current=setTimeout(()=>{B("")},400)};M(()=>(D||document.addEventListener("keydown",Q),()=>{document.removeEventListener("keydown",Q)}),[n]),M(()=>{r&&!s&&a(0)},[A]);let H=m;c&&(H=m.filter(t=>(f==null?void 0:f[t.key])!==void 0));let U={};return b&&E&&E.forEach(t=>{const{id:l,text:p}=t;U[l]=p}),e.createElement(e.Fragment,null,(x==null?void 0:x.enablePlaceholderHotkey)&&e.createElement("div",{className:o.placeholderHotkey},e.createElement("div",{className:o.title},"\u5360\u4F4D\u7B26\u5FEB\u6377\u8F93\u5165",e.createElement(J,{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(ce,{className:o.questionIcon}))),e.createElement(q.Group,{value:k},e.createElement(q.Button,{value:"\u4986",onClick:t=>j(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(q.Button,{value:"\u652B",onClick:t=>j(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(q.Button,{value:"\u7383",onClick:t=>j(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(Z,{audioContext:F==null?void 0:F.before}),O&&H.map((t,l)=>e.createElement(G,{config:t,key:l,index:l,result:f,updateText:w,switchToNextTextarea:i,hasMultiple:m.length>1,disabled:s,textID:A,addPlaceholder:j,onFocus:()=>C(l)})),b&&E.map((t,l)=>{const{id:p,start:h,end:S,attribute:_}=t,oe={label:`${K("textTool")}\uFF08${Y(h,"ss.SSS")} - ${Y(S,"ss.SSS")}\uFF09`,key:p,maxLength:3e3},V=H.length+l,W=de(_,T),re={color:me(_,T),backgroundColor:W};return e.createElement(G,{config:oe,key:l,index:V,disabled:s,result:U,updateText:ue=>{N==null||N(Te(le({},t),{text:ue}))},switchToNextTextarea:()=>{i(V)},hasMultiple:!0,onFocus:()=>C(V),onFocusStyle:g?{borderColor:W,boxShadow:`0 0 0 2px ${Ee(W,.4)}`}:{},extra:g?e.createElement("div",{style:re,className:o.attribute},pe(_,[{value:"",key:"\u65E0\u5C5E\u6027"},...T])):null})}),e.createElement(Z,{audioContext:F==null?void 0:F.after}),v&&e.createElement("div",{className:o.switchItem},"\u6587\u672C\u5BF9\u7167\u663E\u793A",e.createElement(se,{style:{alignSelf:"center"},checked:y,onChange:t=>{v(t)}}))))};export{ne as ClearIcon,G as SingleTextInput,ye as default};
@@ -1 +1 @@
1
- import r from"react";import{useAudioClipStore as s}from"../../audioAnnotate/audioContext/index.js";import{useMouse as c,useHover as a}from"ahooks";const l=e=>{const{container:o}=e,{audioClipState:u}=s(),{combined:n}=u,t=c(o),i=a(o);return!o||!n||!i?null:r.createElement("div",{style:{left:t.clientX+20,top:t.clientY-20}},"\u8BF7\u70B9\u51FB\u5E0C\u671B\u5408\u5E76\u7684\u533A\u95F4")};export{l as default};
1
+ import a from"react";import{useAudioClipStore as c}from"../../audioAnnotate/audioContext/index.js";import{useMouse as m,useHover as u}from"ahooks";import l from"../index.module.scss.js";import{useTranslation as p}from"react-i18next";const d=e=>{const{t:i}=p(),{container:o}=e,{audioClipState:s}=c(),{combined:n}=s,t=m(o),r=u(o);return!o||!n||!r?null:a.createElement("div",{className:l.tips,style:{left:t.clientX+20,top:t.clientY-20}},i("AudioCombineTip"))};export{d as default};
@@ -1 +1 @@
1
- import i,{useState as b,useRef as z,useEffect as A}from"react";import{getWebPcm2WavBase64 as Kt}from"../audioAnnotate/utils/getWebPcm2Wac.js";import Vt,{debounce as Gt,sortBy as Yt}from"lodash";import{PauseOutlined as Jt,CaretRightOutlined as Qt}from"@ant-design/icons";import{cKeyCode as er,cTool as tr,EventBus as _}from"@labelbee/lb-annotation";import{Button as rr}from"antd";import or from"../invalidPage/index.js";import nr from"../imageError/index.js";import{classnames as $}from"../../utils/index.js";import ir,{EPlayerType as lr}from"../videoPlayer/components/SpeedController/index.js";import sr from"@labelbee/wavesurfer";import ar from"@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js";import cr from"@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js";import ur,{audioZoomInfo as Xe}from"./zoomSlider/index.js";import dr from"./labelDisplayToggle/index.js";import mr from"./clipRegion/index.js";import{useAudioClipStore as pr}from"../audioAnnotate/audioContext/index.js";import{useLatest as H,useUpdate as fr,useDeepCompareEffect as Ze,useThrottleFn as vr}from"ahooks";import gr from"./useAudioScroll/index.js";import f from"./index.module.scss.js";import{getAttributeColor as br,formatTime as qe,timeFormat as Ke,dispatchResizeEvent as yr,precisionMinus as Ve,isDoubleClick as _r,getCanMoveRange as Er}from"../../utils/audio.js";import hr from"./progressDot/index.js";import Pr from"./clipTip/index.js";import Sr from"./useSwitchHotkey/index.js";import Cr from"./useAudioCombine/index.js";import Rr from"./useAudioSegment/index.js";import wr from"./combineTip/index.js";import Tr from"./segmentTip/index.js";import Ar from"../../views/MainView/toolFooter/index.js";import{decimalReserved as U}from"../videoPlayer/utils.js";var jr=Object.defineProperty,xr=Object.defineProperties,Dr=Object.getOwnPropertyDescriptors,Ge=Object.getOwnPropertySymbols,Mr=Object.prototype.hasOwnProperty,kr=Object.prototype.propertyIsEnumerable,Ye=(v,a,c)=>a in v?jr(v,a,{enumerable:!0,configurable:!0,writable:!0,value:c}):v[a]=c,Je=(v,a)=>{for(var c in a||(a={}))Mr.call(a,c)&&Ye(v,c,a[c]);if(Ge)for(var c of Ge(a))kr.call(a,c)&&Ye(v,c,a[c]);return v},Qe=(v,a)=>xr(v,Dr(a));const{EToolName:et}=tr,X=er.default,tt=.1,rt=i.createContext({count:0,isEdit:!1,toolName:et.Empty,imgIndex:0}),Ir=({fileData:v={},onLoaded:a,context:c,invalid:ot,height:nt,hideError:it,onError:ue,updateRegion:j,removeRegion:L,regions:x=[],activeToolPanel:lt,clipConfigurable:st,clipTextConfigurable:at,clipAttributeList:ct,clipAttributeConfigurable:de,isCheck:S,hoverRegionId:Z,footer:ut,drawLayerSlot:me})=>{var pe,fe;const{url:O,path:ve}=v,[q,K]=b(!1),[ge,be]=b(!1),[C,dt]=b(0),[mt,ye]=b(!1),[N,_e]=b(0),n=z(null),R=z(null),Ee=z(C),V=e=>{Ee.current=e,dt(e)},[he,pt]=b(0),[F,ft]=b(1),G=z(null),[Pe,vt]=b({}),{audioClipState:Y,setAudioClipState:k}=pr(),[J,Q]=b(!1),u=H(Y),Se=H(Pe),gt=H(q),D=H(x),Ce=fr(),[Re,bt]=b([]),[we,yt]=b({}),_t=Gt(()=>{_.emit("audioZoom")},500),Te=e=>{e<Xe.min||e>Xe.max||(ft(e),yr(),_t())};gr({container:G.current,target:document.querySelector(`[data-id=${(fe=(pe=u.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}=u.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)"}))}),Ce()},m=e=>{var r,t,o,l,s,p,E;const{id:d,loop:g=!0,playImmediately:P=!1}=e;if(d){const M=(o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{};Object.entries(M).forEach(([,y])=>{const{id:T}=y;d===T?y.select():y.cancelSelect()}),k({selectedRegion:{id:d,loop:g},selectedAttribute:(p=(s=(l=D.current)==null?void 0:l.find(y=>y.id===d))==null?void 0:s.attribute)!=null?p:""}),g&&P&&((E=I(d))==null||E.playLoop())}else k({selectedRegion:{}})},{combineInstance:Et}=Cr({waveRef:n,sortByStartRegions:Re,regionMap:we,updateRegion:j,removeRegion:L,generateRegions:W,setSelectedRegion:m}),{segmentInstance:ht,onRegionMouseMove:Pt,segmentTimeTip:St}=Rr({waveRef:n,regionMap:we,updateRegion:j,removeRegion:L,generateRegions:W,setSelectedRegion:m}),Ae={clipTextConfigurable:at,clipAttributeList:ct,clipAttributeConfigurable:de,clipConfigurable:st};A(()=>{k({selectedAttribute:""})},[de]),A(()=>{ee()},[Y.selectedAttribute]),A(()=>{W()},[Y.attributeLockList]),Ze(()=>{k(Ae),setTimeout(()=>{je()})},[Ae]),Ze(()=>{bt(Yt(x,["start"])),yt(x.reduce((e,r)=>{const{id:t}=r;return Qe(Je({},e),{[t]:r})},{}))},[x]),A(()=>{if(Z){const e=gt.current;m({id:Z,loop:e,playImmediately:!0})}else m({})},[Z]);const je=()=>{var e,r;u.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="";u.current.clipConfigurable?s=br(u.current.selectedAttribute,(e=u.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?Kt(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}=vr(m,{wait:500});Sr({sortByStartRegions:Re,setSelectedRegion:m});const Ct=e=>{const{start:r,end:t}=Se.current;return(r||t)&&e.update(Se.current),e},Rt=({action:e,id:r,eventDownTime:t})=>{var o,l;if(!u.current.clipConfigurable)return;r&&m({id:r});const s=I((r!=null?r:(o=u.current.selectedRegion)==null?void 0:o.id)||""),p=[];(e==="create"?D.current:(l=D.current)==null?void 0:l.filter(g=>g.id!==s.id)).forEach(g=>{const{start:P,end:M,attribute:y}=g;y===u.current.selectedAttribute&&[P,M].forEach(T=>{p.includes(T)||p.push(T)})});const d=Er(p.sort((g,P)=>g-P),t);n.current.range=d},wt=e=>{ee(),setTimeout(()=>{Q(!1)});const r=Ct(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),attribute:"",text:""};j==null||j(s),Ce()},Tt=()=>{const e=sr.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:nt||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[ar.create({regions:x,dragSelection:{slop:5},canMove:!1}),cr.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(),a==null||a({duration:Math.round(o)}),be(!1),B(),_.on("setCurrentTimeByPosition",ne),_.on("clearRegions",te),_.on("removeRegionById",re),_.on("setSelectedRegion",Me),e.on("regions-eventDown",Rt),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),a==null||a({hasError:!0}),ue==null||ue()}),e.on("region-created",t=>{const{id:o,start:l,end:s}=t;if(D.current.find(E=>E.id===o))return;const p={id:o,start:U(l,3),end:U(s,3),attribute:u.current.selectedAttribute,text:""};j==null||j(p)}),e.on("region-updated",(t,o)=>{var l,s,p,E,d,g,P,M,y,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"&&((E=(p=n==null?void 0:n.current)==null?void 0:p.cursor)==null||E.setStyle({borderColor:"transparent"}));const ie={},le=[],se={},Ft=(d=D.current)==null?void 0:d.filter(h=>h.id!==t.id),Wt=(M=(P=(g=n.current)==null?void 0:g.regions)==null?void 0:P.list)!=null?M:{};Ft.forEach(h=>{var $e,He;const{element:ae}=($e=Wt[h.id])!=null?$e:{},{start:Ht,end:Ut}=h;if(ae){const{x:Ue,width:Xt}=((He=ae.getBoundingClientRect)==null?void 0:He.call(ae))||{},Zt=Ue+Xt;[Ue,Zt].forEach((ce,qt)=>{le.includes(ce)||(le.push(ce),se[ce]=qt===0?Ht:Ut)})}});const{x:ze,width:zt}=((T=(y=t.element).getBoundingClientRect)==null?void 0:T.call(y))||{},$t=ze+zt;le.forEach(h=>{Math.abs(Ve(h,ze))<5&&(ie.start=se[h]),Math.abs(Ve(h,$t))<5&&(ie.end=se[h])}),vt(ie),Me({id:t.id}),Q(!0)}),e.on("region-update-end",t=>{wt(t)}),e.on("region-contextmenu",(t,o)=>{if(!S){if(o.preventDefault(),o.stopPropagation(),_r(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(),u.current.combined){Et(t);return}if(u.current.segment){ht(t,l);return}m({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",Pt),n.current=e},At=q?i.createElement(Jt,null):i.createElement(Qt,null),ke=e=>e?`${parseFloat((e/N*100).toFixed(4))}%`:"0%",Ie=ke(C),jt=ke(he),w=()=>{if(!ge)return n==null?void 0:n.current},xt=()=>{var e;(e=w())==null||e.skipForward(tt)},Dt=()=>{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:xt();break;case X.Left:Dt();break;case X.Space:e.preventDefault(),B();break;case X.Delete:if(!S){const{id:t}=((r=u.current)==null?void 0:r.selectedRegion)||{};t&&re(t)}break}},Mt=e=>{ne(e)},Le=Vt.throttle(Mt,50);let oe=!1;const Oe=()=>{oe&&(B(),oe=!1),document.removeEventListener("mousemove",Le),document.removeEventListener("mouseup",Oe)},kt=e=>{ne(e),q&&(oe=!0,B()),document.addEventListener("mousemove",Le),document.addEventListener("mouseup",Oe)},It=()=>{xe()};A(()=>(Tt(),()=>{var e;(e=n==null?void 0:n.current)==null||e.destroy(),n.current=null,_.unbindAll("setCurrentTimeByPosition"),_.unbindAll("clearRegions"),_.unbindAll("removeRegionById"),_.unbindAll("setSelectedRegion")}),[]);const Bt=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 d=(e.clientX-p.left)/(((l=R==null?void 0:R.current)==null?void 0:l.clientWidth)||0)*s;return d>s&&(d=s),d}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)},Lt=e=>{pt(Ne(e))},Ot=N?Math.max(N-C,0):0,Nt=(c==null?void 0:c.toolName)!==et.Empty&&(c==null?void 0:c.isEdit)!==!0&&(lt==="remark"||S),Fe=i.createElement("div",{className:f.audioPlayer},mt&&!it&&i.createElement(nr,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:It,backgroundColor:"#ffffffbb"}),i.createElement(Pr,{getRegionInstanceById:I,clipping:J}),i.createElement(wr,{container:G.current}),i.createElement(Tr,{segmentTimeTip:St}),i.createElement("div",{className:f.waveformContainer,ref:G},i.createElement("div",{id:"waveform",style:{width:`${F*100}%`},className:$({[f.waveform]:!0,[f.combined]:u.current.combined,[f.clip]:u.current.clipConfigurable})},ot&&i.createElement(or,{isAudio:!0}),i.createElement("div",{ref:R,className:f.progress,onMouseDown:kt,onMouseMove:Lt},i.createElement("div",{className:$({[f.radioTooltip]:!0}),style:{left:Ie}},qe(C)),i.createElement("div",{className:$({[f.radioTooltip]:!0,[f.mouseTooltip]:!0}),style:{left:jt}},qe(he)),i.createElement(hr,{playPercentage:Ie})),Nt&&(me==null?void 0:me({currentTime:C,remainingTime:Ot,audioPlayer:w()})))),i.createElement("div",{className:f.controlBar},i.createElement(rr,{type:"link",icon:At,onClick:()=>{B()},className:$({[f.playButton]:!0,[f.playButtonDisabled]:ge})}),i.createElement("span",{className:f.time},`${Ke(C,"ss.SSS")} / -${Ke(N-C,"ss.SSS")}`),i.createElement(ir,{playerType:lr.Audio,onChange:e=>{Bt(e)}}),i.createElement(ur,{onChange:e=>{Te(e)},zoom:F}),i.createElement(dr,{EventBus:_})));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(mr,{el:t,key:r,region:e,edgeAdsorption:Pe,clipping:J,zoom:F,instance:I(r)}):null}),i.createElement(Ar,{footer:ut})):Fe};export{Ir as AudioPlayer,rt as AudioPlayerContext};
1
+ import i,{useState as g,useRef as z,useEffect as A}from"react";import{getWebPcm2WavBase64 as Kt}from"../audioAnnotate/utils/getWebPcm2Wac.js";import Vt,{debounce as Gt,sortBy as Yt}from"lodash";import{PauseOutlined as Jt,CaretRightOutlined as Qt}from"@ant-design/icons";import{cKeyCode as er,cTool as tr,EventBus as _}from"@labelbee/lb-annotation";import{Button as rr}from"antd";import or from"../invalidPage/index.js";import nr from"../imageError/index.js";import{classnames as $}from"../../utils/index.js";import ir,{EPlayerType as lr}from"../videoPlayer/components/SpeedController/index.js";import sr from"@labelbee/wavesurfer";import ar from"@labelbee/wavesurfer/dist/plugin/wavesurfer.regions.js";import ur from"@labelbee/wavesurfer/dist/plugin/wavesurfer.cursor.js";import cr,{audioZoomInfo as Xe}from"./zoomSlider/index.js";import dr from"./labelDisplayToggle/index.js";import mr from"./clipRegion/index.js";import{useAudioClipStore as pr}from"../audioAnnotate/audioContext/index.js";import{useLatest as H,useUpdate as fr,useDeepCompareEffect as Ze,useThrottleFn as vr}from"ahooks";import gr from"./useAudioScroll/index.js";import b from"./index.module.scss.js";import{getAttributeColor as br,formatTime as qe,timeFormat as Ke,dispatchResizeEvent as yr,precisionMinus as Ve,isDoubleClick as _r,getCanMoveRange as Er}from"../../utils/audio.js";import hr from"./progressDot/index.js";import Pr from"./clipTip/index.js";import Sr from"./useSwitchHotkey/index.js";import Cr from"./useAudioCombine/index.js";import Rr from"./useAudioSegment/index.js";import wr from"./combineTip/index.js";import Tr from"./segmentTip/index.js";import Ar from"../../views/MainView/toolFooter/index.js";import{decimalReserved as U}from"../videoPlayer/utils.js";var jr=Object.defineProperty,xr=Object.defineProperties,Dr=Object.getOwnPropertyDescriptors,Ge=Object.getOwnPropertySymbols,Mr=Object.prototype.hasOwnProperty,kr=Object.prototype.propertyIsEnumerable,Ye=(f,a,u)=>a in f?jr(f,a,{enumerable:!0,configurable:!0,writable:!0,value:u}):f[a]=u,Je=(f,a)=>{for(var u in a||(a={}))Mr.call(a,u)&&Ye(f,u,a[u]);if(Ge)for(var u of Ge(a))kr.call(a,u)&&Ye(f,u,a[u]);return f},Qe=(f,a)=>xr(f,Dr(a));const{EToolName:et}=tr,X=er.default,tt=.1,rt=i.createContext({count:0,isEdit:!1,toolName:et.Empty,imgIndex:0}),Ir=({fileData:f={},onLoaded:a,context:u,invalid:ot,height:nt,hideError:it,onError:ce,updateRegion:j,removeRegion:L,regions:x=[],activeToolPanel:lt,clipConfigurable:st,clipTextConfigurable:at,clipAttributeList:ut,clipAttributeConfigurable:de,isCheck:S,hoverRegionId:Z,footer:ct,drawLayerSlot:me})=>{var pe,fe;const{url:O,path:ve}=f,[q,K]=g(!1),[ge,be]=g(!1),[C,dt]=g(0),[mt,ye]=g(!1),[N,_e]=g(0),n=z(null),R=z(null),Ee=z(C),V=e=>{Ee.current=e,dt(e)},[he,pt]=g(0),[F,ft]=g(1),G=z(null),[Pe,vt]=g({}),{audioClipState:Y,setAudioClipState:k}=pr(),[J,Q]=g(!1),c=H(Y),Se=H(Pe),gt=H(q),D=H(x),Ce=fr(),[Re,bt]=g([]),[we,yt]=g({}),_t=Gt(()=>{_.emit("audioZoom")},500),Te=e=>{e<Xe.min||e>Xe.max||(ft(e),yr(),_t())};gr({container:G.current,target:document.querySelector(`[data-id=${(fe=(pe=c.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}=c.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)"}))}),Ce()},m=e=>{var r,t,o,l,s,p,E;const{id:d,loop:v=!0,playImmediately:P=!1}=e;if(d){const M=(o=(t=(r=n.current)==null?void 0:r.regions)==null?void 0:t.list)!=null?o:{};Object.entries(M).forEach(([,y])=>{const{id:T}=y;d===T?y.select():y.cancelSelect()}),k({selectedRegion:{id:d,loop:v},selectedAttribute:(p=(s=(l=D.current)==null?void 0:l.find(y=>y.id===d))==null?void 0:s.attribute)!=null?p:""}),v&&P&&((E=I(d))==null||E.playLoop())}else k({selectedRegion:{}})},{combineInstance:Et}=Cr({waveRef:n,sortByStartRegions:Re,regionMap:we,updateRegion:j,removeRegion:L,generateRegions:W,setSelectedRegion:m}),{segmentInstance:ht,onRegionMouseMove:Pt,segmentTimeTip:St}=Rr({waveRef:n,regionMap:we,updateRegion:j,removeRegion:L,generateRegions:W,setSelectedRegion:m}),Ae={clipTextConfigurable:at,clipAttributeList:ut,clipAttributeConfigurable:de,clipConfigurable:st};A(()=>{k({selectedAttribute:""})},[de]),A(()=>{ee()},[Y.selectedAttribute]),A(()=>{W()},[Y.attributeLockList]),Ze(()=>{k(Ae),setTimeout(()=>{je()})},[Ae]),Ze(()=>{bt(Yt(x,["start"])),yt(x.reduce((e,r)=>{const{id:t}=r;return Qe(Je({},e),{[t]:r})},{}))},[x]),A(()=>{if(Z){const e=gt.current;m({id:Z,loop:e,playImmediately:!0})}else m({})},[Z]);const je=()=>{var e,r;c.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="";c.current.clipConfigurable?s=br(c.current.selectedAttribute,(e=c.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?Kt(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}=vr(m,{wait:500});Sr({sortByStartRegions:Re,setSelectedRegion:m});const Ct=e=>{const{start:r,end:t}=Se.current;return(r||t)&&e.update(Se.current),e},Rt=({action:e,id:r,eventDownTime:t})=>{var o,l;if(!c.current.clipConfigurable)return;r&&m({id:r});const s=I((r!=null?r:(o=c.current.selectedRegion)==null?void 0:o.id)||""),p=[];(e==="create"?D.current:(l=D.current)==null?void 0:l.filter(v=>v.id!==s.id)).forEach(v=>{const{start:P,end:M,attribute:y}=v;y===c.current.selectedAttribute&&[P,M].forEach(T=>{p.includes(T)||p.push(T)})});const d=Er(p.sort((v,P)=>v-P),t);n.current.range=d},wt=e=>{ee(),setTimeout(()=>{Q(!1)});const r=Ct(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),Ce()},Tt=()=>{const e=sr.create({container:"#waveform",waveColor:"#999",progressColor:"#999",height:nt||245,normalize:!0,cursorWidth:2,cursorColor:"white",responsive:0,hideScrollbar:!0,plugins:[ar.create({regions:x,dragSelection:{slop:5},canMove:!1}),ur.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(),a==null||a({duration:Math.round(o)}),be(!1),B(),_.on("setCurrentTimeByPosition",ne),_.on("clearRegions",te),_.on("removeRegionById",re),_.on("setSelectedRegion",Me),e.on("regions-eventDown",Rt),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),a==null||a({hasError:!0}),ce==null||ce()}),e.on("region-created",t=>{const{id:o,start:l,end:s}=t;if(D.current.find(E=>E.id===o))return;const p={id:o,start:U(l,3),end:U(s,3),attribute:c.current.selectedAttribute,text:""};j==null||j(p)}),e.on("region-updated",(t,o)=>{var l,s,p,E,d,v,P,M,y,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"&&((E=(p=n==null?void 0:n.current)==null?void 0:p.cursor)==null||E.setStyle({borderColor:"transparent"}));const ie={},le=[],se={},Ft=(d=D.current)==null?void 0:d.filter(h=>h.id!==t.id),Wt=(M=(P=(v=n.current)==null?void 0:v.regions)==null?void 0:P.list)!=null?M:{};Ft.forEach(h=>{var $e,He;const{element:ae}=($e=Wt[h.id])!=null?$e:{},{start:Ht,end:Ut}=h;if(ae){const{x:Ue,width:Xt}=((He=ae.getBoundingClientRect)==null?void 0:He.call(ae))||{},Zt=Ue+Xt;[Ue,Zt].forEach((ue,qt)=>{le.includes(ue)||(le.push(ue),se[ue]=qt===0?Ht:Ut)})}});const{x:ze,width:zt}=((T=(y=t.element).getBoundingClientRect)==null?void 0:T.call(y))||{},$t=ze+zt;le.forEach(h=>{Math.abs(Ve(h,ze))<5&&(ie.start=se[h]),Math.abs(Ve(h,$t))<5&&(ie.end=se[h])}),vt(ie),Me({id:t.id}),Q(!0)}),e.on("region-update-end",t=>{wt(t)}),e.on("region-contextmenu",(t,o)=>{if(!S){if(o.preventDefault(),o.stopPropagation(),_r(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(),c.current.combined){Et(t);return}if(c.current.segment){ht(t,l);return}m({id:t.id,playImmediately:!0})}}),e.on("region-mousemove",Pt),n.current=e},At=q?i.createElement(Jt,null):i.createElement(Qt,null),ke=e=>e?`${parseFloat((e/N*100).toFixed(4))}%`:"0%",Ie=ke(C),jt=ke(he),w=()=>{if(!ge)return n==null?void 0:n.current},xt=()=>{var e;(e=w())==null||e.skipForward(tt)},Dt=()=>{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:xt();break;case X.Left:Dt();break;case X.Space:e.preventDefault(),B();break;case X.Delete:if(!S){const{id:t}=((r=c.current)==null?void 0:r.selectedRegion)||{};t&&re(t)}break}},Mt=e=>{ne(e)},Le=Vt.throttle(Mt,50);let oe=!1;const Oe=()=>{oe&&(B(),oe=!1),document.removeEventListener("mousemove",Le),document.removeEventListener("mouseup",Oe)},kt=e=>{ne(e),q&&(oe=!0,B()),document.addEventListener("mousemove",Le),document.addEventListener("mouseup",Oe)},It=()=>{xe()};A(()=>(Tt(),()=>{var e;(e=n==null?void 0:n.current)==null||e.destroy(),n.current=null,_.unbindAll("setCurrentTimeByPosition"),_.unbindAll("clearRegions"),_.unbindAll("removeRegionById"),_.unbindAll("setSelectedRegion")}),[]);const Bt=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 d=(e.clientX-p.left)/(((l=R==null?void 0:R.current)==null?void 0:l.clientWidth)||0)*s;return d>s&&(d=s),d}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)},Lt=e=>{pt(Ne(e))},Ot=N?Math.max(N-C,0):0,Nt=(u==null?void 0:u.toolName)!==et.Empty&&(u==null?void 0:u.isEdit)!==!0&&(lt==="remark"||S),Fe=i.createElement("div",{className:b.audioPlayer},mt&&!it&&i.createElement(nr,{fileTypeName:"\u97F3\u9891",ignoreOffsetY:!0,reloadImage:It,backgroundColor:"#ffffffbb"}),i.createElement(Pr,{getRegionInstanceById:I,clipping:J}),i.createElement(wr,{container:G.current}),i.createElement(Tr,{segmentTimeTip:St}),i.createElement("div",{className:b.waveformContainer,ref:G},i.createElement("div",{id:"waveform",style:{width:`${F*100}%`},className:$({[b.waveform]:!0,"bee-audio-combined":c.current.combined,"bee-audio-clip":c.current.clipConfigurable})},ot&&i.createElement(or,{isAudio:!0}),i.createElement("div",{ref:R,className:b.progress,onMouseDown:kt,onMouseMove:Lt},i.createElement("div",{className:$({[b.radioTooltip]:!0}),style:{left:Ie}},qe(C)),i.createElement("div",{className:$({[b.radioTooltip]:!0,[b.mouseTooltip]:!0}),style:{left:jt}},qe(he)),i.createElement(hr,{playPercentage:Ie})),Nt&&(me==null?void 0:me({currentTime:C,remainingTime:Ot,audioPlayer:w()})))),i.createElement("div",{className:b.controlBar},i.createElement(rr,{type:"link",icon:At,onClick:()=>{B()},className:$({[b.playButton]:!0,[b.playButtonDisabled]:ge})}),i.createElement("span",{className:b.time},`${Ke(C,"ss.SSS")} / -${Ke(N-C,"ss.SSS")}`),i.createElement(ir,{playerType:lr.Audio,onChange:e=>{Bt(e)}}),i.createElement(cr,{onChange:e=>{Te(e)},zoom:F}),i.createElement(dr,{EventBus:_})));return u?i.createElement(rt.Provider,{value:u},Fe,x.map(e=>{const{id:r}=e,t=document.querySelector(`[data-id=${r}]`);return t?i.createElement(mr,{el:t,key:r,region:e,edgeAdsorption:Pe,clipping:J,zoom:F,instance:I(r)}):null}),i.createElement(Ar,{footer:ct})):Fe};export{Ir as AudioPlayer,rt as AudioPlayerContext};
@@ -1 +1 @@
1
- import{Switch as c}from"antd";import e,{useState as m}from"react";import a from"./index.module.scss.js";const i=l=>{const{EventBus:o}=l,[t,r]=m(!0),n=s=>{o.emit("toggleShowLabel",s),r(s)};return e.createElement("span",{className:a.remarkDisplayToggle},e.createElement("span",{className:a.text},"\u6807\u7B7E\u5BF9\u7167\u663E\u793A"),e.createElement(c,{checked:t,onChange:n,size:"small",style:{minWidth:32,backgroundColor:t?"#6371ff":"rgb(204, 204, 204)"}}))};export{i as default};
1
+ import{Switch as c}from"antd";import e,{useState as i}from"react";import a from"./index.module.scss.js";import{useTranslation as g}from"react-i18next";const p=o=>{const{t:r}=g(),{EventBus:l}=o,[t,n]=i(!0),m=s=>{l.emit("toggleShowLabel",s),n(s)};return e.createElement("span",{className:a.remarkDisplayToggle},e.createElement("span",{className:a.text},r("CompareTags")),e.createElement(c,{checked:t,onChange:m,size:"small",style:{minWidth:32,backgroundColor:t?"#6371ff":"rgb(204, 204, 204)"}}))};export{p as default};
@@ -1 +1 @@
1
- import r,{useRef as s}from"react";import{timeFormat as m}from"../../../utils/audio.js";import{useMouse as n}from"ahooks";const i=t=>{const u=s(null),{segmentTimeTip:e}=t,o=n(u.current);return e?r.createElement("div",{style:{left:o.clientX,top:75,marginLeft:-130}},"\u8BF7\u9009\u62E9\u5E0C\u671B\u622A\u53D6\u7684\u65F6\u95F4\u70B9\uFF08",m(e,"ss.SSS"),"\uFF09"):null};export{i as default};
1
+ import i,{useRef as m}from"react";import{timeFormat as n}from"../../../utils/audio.js";import{useMouse as u}from"ahooks";import a from"../index.module.scss.js";import{useTranslation as l}from"react-i18next";const c=t=>{const s=m(null),{t:o}=l(),{segmentTimeTip:e}=t,r=u(s.current);return e?i.createElement("div",{className:a.tips,style:{left:r.clientX,top:75,marginLeft:-130,zIndex:999}},o("AudioSegmentTip",{time:n(e,"ss.SSS")})):null};export{c as default};
@@ -1 +1 @@
1
- import o,{useEffect as f}from"react";import{ZoomOutOutlined as p,ZoomInOutlined as y}from"@ant-design/icons";import{Slider as E}from"antd";import{precisionAdd as k,precisionMinus as v}from"../../../utils/audio.js";import{cKeyCode as x}from"@labelbee/lb-annotation";import{useLatest as C}from"ahooks";import h from"./index.module.scss.js";const l=x.default,t={min:1,max:150,ratio:1},Z=d=>{const{onChange:u,zoom:r}=d,i=C(r),n=e=>{u(e)},s={fontSize:14,margin:"0 8px",cursor:"pointer"},a=()=>{const e=k(i.current,t.ratio);n(e)},m=()=>{const e=v(i.current,t.ratio);n(e)},c=e=>{switch(e.keyCode){case l.I:e.ctrlKey&&a();break;case l.O:e.ctrlKey&&(e.preventDefault(),m());break}};return f(()=>(document.addEventListener("keydown",c),()=>{document.removeEventListener("keydown",c)}),[]),o.createElement("div",{className:h.sliderContainer},o.createElement("div",null,"\u7F29\u653E"),o.createElement(p,{style:s,onClick:m}),o.createElement("div",{style:{width:120}},o.createElement(E,{min:t.min,max:t.max,step:t.ratio,onChange:n,value:r})),o.createElement(y,{style:s,onClick:a}))};export{t as audioZoomInfo,Z as default};
1
+ import t,{useEffect as p}from"react";import{ZoomOutOutlined as y,ZoomInOutlined as E}from"@ant-design/icons";import{Slider as k}from"antd";import{precisionAdd as v,precisionMinus as x}from"../../../utils/audio.js";import{cKeyCode as C}from"@labelbee/lb-annotation";import{useLatest as h}from"ahooks";import Z from"./index.module.scss.js";import{useTranslation as b}from"react-i18next";const l=C.default,o={min:1,max:150,ratio:1},g=d=>{const{onChange:u,zoom:r}=d,{t:f}=b(),i=h(r),n=e=>{u(e)},s={fontSize:14,margin:"0 8px",cursor:"pointer"},a=()=>{const e=v(i.current,o.ratio);n(e)},c=()=>{const e=x(i.current,o.ratio);n(e)},m=e=>{switch(e.keyCode){case l.I:e.ctrlKey&&a();break;case l.O:e.ctrlKey&&(e.preventDefault(),c());break}};return p(()=>(document.addEventListener("keydown",m),()=>{document.removeEventListener("keydown",m)}),[]),t.createElement("div",{className:Z.sliderContainer},t.createElement("div",null,f("Scale")),t.createElement(y,{style:s,onClick:c}),t.createElement("div",{style:{width:120}},t.createElement(k,{min:o.min,max:o.max,step:o.ratio,onChange:n,value:r})),t.createElement(E,{style:s,onClick:a}))};export{o as audioZoomInfo,g as default};
@@ -0,0 +1 @@
1
+ const e={key:"commonSymbols",label:"CommonSymbols",children:[{key:"binaryOperator",label:"BinaryOperations",children:[{key:"+",remark:""},{key:"-"},{key:"\\times"},{key:"{\\div}"},{key:"\\pm"},{key:"\\mp"},{key:"\\triangleleft"},{key:"\\triangleright"},{key:"\\cdot"},{key:"\\setminus"},{key:"\\star"},{key:"\\ast"},{key:"\\cup"},{key:"\\cap"},{key:"\\sqcup"},{key:"\\sqcap"},{key:"\\vee"},{key:"\\wedge"},{key:"\\circ"},{key:"\\bullet"},{key:"\\oplus"},{key:"\\ominus"},{key:"\\odot"},{key:"\\oslash"},{key:"\\otimes"},{key:"\\bigcirc"},{key:"\\diamond"},{key:"\\uplus"},{key:"\\bigtriangleup"},{key:"\\bigtriangledown"},{key:"\\lhd"},{key:"\\rhd"},{key:"\\unlhd"},{key:"\\unrhd"},{key:"\\amalg"},{key:"\\wr"},{key:"\\dagger"},{key:"\\ddagger"}]},{key:"binaryRelation",label:"BinaryRelations",children:[{key:"<"},{key:">"},{key:"="},{key:"\\le"},{key:"\\ge"},{key:"\\equiv"},{key:"\\ll"},{key:"\\gg"},{key:"\\doteq"},{key:"\\prec"},{key:"\\succ"},{key:"\\sim"},{key:"\\preceq"},{key:"\\succeq"},{key:"\\simeq"},{key:"\\approx"},{key:"\\subset"},{key:"\\supset"},{key:"\\subseteq"},{key:"\\supseteq"},{key:"\\sqsubset"},{key:"\\sqsupset"},{key:"\\sqsubseteq"},{key:"\\sqsupseteq"},{key:"\\cong"},{key:"\\Join"},{key:"\\bowtie"},{key:"\\propto"},{key:"\\in"},{key:"\\ni"},{key:"\\vdash"},{key:"\\dashv"},{key:"\\models"},{key:"\\mid"},{key:"\\parallel"},{key:"\\perp"},{key:"\\smile"},{key:"\\frown"},{key:"\\asymp"},{key:":"},{key:"\\notin"},{key:"\\ne"}]},{key:"arrowSymbol",label:"Arrows",children:[{key:"\\gets"},{key:"\\to"},{key:"\\longleftarrow"},{key:"\\longrightarrow"},{key:"\\uparrow"},{key:"\\downarrow"},{key:"\\updownarrow"},{key:"\\leftrightarrow"},{key:"\\Uparrow"},{key:"\\Downarrow"},{key:"\\Updownarrow"},{key:"\\longleftrightarrow"},{key:"\\Leftarrow"},{key:"\\Longleftarrow"},{key:"\\Rightarrow"},{key:"\\Longrightarrow"},{key:"\\Leftrightarrow"},{key:"\\Longleftrightarrow"},{key:"\\mapsto"},{key:"\\longmapsto"},{key:"\\nearrow"},{key:"\\searrow"},{key:"\\swarrow"},{key:"\\nwarrow"},{key:"\\hookleftarrow"},{key:"\\hookrightarrow"},{key:"\\rightleftharpoons"},{key:"\\iff"},{key:"\\leftharpoonup"},{key:"\\rightharpoonup"},{key:"\\leftharpoondown"},{key:"\\rightharpoondown"}]},{key:"otherSymbol",label:"Others",children:[{key:"\\because"},{key:"\\therefore"},{key:"\\dots"},{key:"\\cdots"},{key:"\\vdots"},{key:"\\ddots"},{key:"\\forall"},{key:"\\exists"},{key:"\\nexists"},{key:"\\Finv"},{key:"\\neg"},{key:"\\prime"},{key:"\\emptyset"},{key:"\\infty"},{key:"\\nabla"},{key:"\\triangle"},{key:"\\Box"},{key:"\\Diamond"},{key:"\\bot"},{key:"\\top"},{key:"\\angle"},{key:"\\measuredangle"},{key:"\\sphericalangle"},{key:"\\surd"},{key:"\\diamondsuit"},{key:"\\heartsuit"},{key:"\\clubsuit"},{key:"\\spadesuit"},{key:"\\flat"},{key:"\\natural"},{key:"\\sharp"}]}]},a={key:"greek",label:"Greek",children:[{key:"lower",label:"Lowercase",children:[{key:"\\alpha"},{key:"\\beta"},{key:"\\gamma"},{key:"\\delta"},{key:"\\epsilon"},{key:"\\varepsilon"},{key:"\\zeta"},{key:"\\eta"},{key:"\\theta"},{key:"\\vartheta"},{key:"\\iota"},{key:"\\kappa"},{key:"\\lambda"},{key:"\\mu"},{key:"\\nu"},{key:"\\xi"},{key:"o"},{key:"\\pi"},{key:"\\varpi"},{key:"\\rho"},{key:"\\varrho"},{key:"\\sigma"},{key:"\\varsigma"},{key:"\\tau"},{key:"\\upsilon"},{key:"\\phi"},{key:"\\varphi"},{key:"\\chi"},{key:"\\psi"},{key:"\\omega"}]},{key:"uppercase",label:"Uppercase",children:[{key:"\\Gamma"},{key:"\\Delta"},{key:"\\Theta"},{key:"\\Lambda"},{key:"\\Xi"},{key:"\\Pi"},{key:"\\Sigma"},{key:"\\Upsilon"},{key:"\\Phi"},{key:"\\Psi"},{key:"\\Omega"}]}]},t={key:"advancedMathematics",label:"AdvancedMathematics",children:[{key:"fractionalDifferentiation",label:"FractionalDifferentiation",children:[{key:"fraction",label:"Fraction",children:[{key:"\\frac{a}{b}"},{key:"\\tfrac{a}{b}"},{key:"\\mathrm{d}t"},{key:"\\frac{\\mathrm{d}y}{\\mathrm{d}x}"},{key:"\\partial t"},{key:"\\frac{\\partial y}{\\partial x}"},{key:"\\nabla\\psi"},{key:"\\frac{\\partial^2}{\\partial x_1\\partial x_2}y"}]},{key:"derivative",label:"Derivative",children:[{key:"\\dot{a}"},{key:"\\ddot{a}"},{key:"{f}'"},{key:"{f}''"},{key:"{f}^{(n)}"}]},{key:"modularArithmetic",label:"ModularArithmetic",children:[{key:"a \\bmod b"},{key:"a \\equiv b \\pmod{m}"},{key:"\\gcd(m, n)"},{key:"\\operatorname{lcm}(m, n)"}]}]},{key:"radical",label:"Radical",children:[{key:"radicalItem",label:"Radical",children:[{key:"\\sqrt{x}"},{key:"\\sqrt[n]{x}"}]},{key:"mark",label:"SupAndSub",children:[{key:"x^{a}"},{key:"x_{a}"},{key:"x_{a}^{b}"}]}]},{key:"limitLogarithm",label:"LimitLogarithm",children:[{key:"limits",label:"Limits",children:[{key:"\\lim a"},{key:"\\displaystyle \\lim_{x \\to 0}"},{key:"\\lim_{x \\to \\infty}"},{key:"\\textstyle \\lim_{x \\to 0}"},{key:"\\max_{}"},{key:"\\min_{}"}]},{key:"maLogarithmsAndExponentsrk",label:"LogarithmsAndExponents",children:[{key:"\\log_{a}{b}"},{key:"\\lg_{a}{b}"},{key:"\\ln_{a}{b}"},{key:"\\exp a"}]},{key:"bounds",label:"Bounds",children:[{key:"\\min x"},{key:"\\max y"},{key:"\\sup t"},{key:"\\inf s"},{key:"\\lim u"},{key:"\\limsup w"},{key:"\\liminf v"},{key:"\\dim p"},{key:"\\ker\\phi"}]}]},{key:"integralOperation",label:"IntegralOperation",children:[{key:"integral",label:"Integral",children:[{key:"\\int"},{key:"\\int_{a}^{b}"},{key:"\\int\\limits_{a}^{b}"}]},{key:"doubleIntegral",label:"DoubleIntegral",children:[{key:"\\iint"},{key:"\\iint_{a}^{b}"},{key:"\\iint\\limits_{a}^{b}"}]},{key:"tripleIntegral",label:"TripleIntegral",children:[{key:"\\iiint"},{key:"\\iiint_{a}^{b}"},{key:"\\iiint\\limits_{a}^{b}"}]}]},{key:"largeOperations",label:"LargeOperations",children:[{key:"summation",label:"\u6C42\u548C",children:[{key:"\\sum"},{key:"\\displaystyle \\sum_{a}^{b}"},{key:"{\\textstyle \\sum_{a}^{b}}"}]},{key:"productsAndCoproducts",label:"ProductsAndCoproducts",children:[{key:"\\prod"},{key:"\\displaystyle \\prod_{a}^{b}"},{key:"{\\textstyle \\prod_{a}^{b}}"},{key:"\\coprod"},{key:"\\displaystyle \\coprod_{a}^{b}"},{key:"{\\textstyle \\coprod_{a}^{b}}"}]},{key:"intersectionAndUnion",label:"IntersectionAndUnion",children:[{key:"\\bigcup"},{key:"\\displaystyle \\bigcup_{a}^{b}"},{key:"{\\textstyle \\bigcup_{a}^{b}}"},{key:"\\bigcap"},{key:"\\displaystyle \\bigcap_{a}^{b}"},{key:"{\\textstyle \\bigcap_{a}^{b}}"}]}]}]},r={key:"linearAlgebra",label:"LinearAlgebra",children:[{key:"bracketForensics",label:"BracketForensics",children:[{key:"bracket",label:"Bracket",children:[{key:"\\left ( a \\right )"},{key:"\\left [ a \\right ]"},{key:"\\left \\langle a \\right \\rangle"},{key:"\\left \\{ a \\right \\}"},{key:"\\left | a \\right |"},{key:"\\left \\| a \\right \\|"}]},{key:"common",label:"Common",children:[{key:"\\binom{n}{r}"},{key:"\\left [ 0,1 \\right )"},{key:"\\left \\langle \\psi \\right |"},{key:"\\left | \\psi \\right \\rangle"},{key:"\\left \\langle \\psi | \\psi \\right \\rangle"}]}]},{key:"arrayMatrix",label:"ArrayMatrix",children:[{key:"\\begin{matrix} 11& 11 &11 \\\\ 11& 11 &11 \\end{matrix}"},{key:"\\begin{bmatrix} 11 & 11\\\\ 11 & 11 \\end{bmatrix}"},{key:"\\begin{pmatrix} 11& 11& 11\\\\ 11& 11& 11 \\end{pmatrix}"},{key:"\\begin{vmatrix} 11& 11\\\\ 11&11 \\end{vmatrix}"},{key:"\\begin{Bmatrix} 11& 11\\\\ 11&11 \\end{Bmatrix}"}]}]},y={key:"trigonometric",label:"TrigonometricFunctions",children:[{key:"trigonometricFunctions",label:"TrigonometricFunctions",children:[{key:"\\sin\\alpha"},{key:"\\cos\\alpha"},{key:"\\tan\\alpha"},{key:"\\cot\\alpha"},{key:"\\sec\\alpha"},{key:"\\csc\\alpha"}]},{key:"inverseTrigonometricFunctions",label:"InverseTrigonometricFunctions",children:[{key:"\\sin^{-1}\\alpha"},{key:"\\cos^{-1}\\alpha"},{key:"\\tan^{-1}\\alpha"},{key:"\\cot^{-1}\\alpha"},{key:"\\sec^{-1}\\alpha"},{key:"\\csc^{-1}\\alpha"},{key:"\\arcsin\\alpha"},{key:"\\arccos\\alpha"},{key:"\\arctan\\alpha"},{key:"\\operatorname{arccot}\\alpha"},{key:"\\operatorname{arccsc}\\alpha"}]},{key:"hyperblicFunctions",label:"HyperblicFunctions",children:[{key:"\\sinh\\alpha"},{key:"\\cosh\\alpha"},{key:"\\tanh\\alpha"},{key:"\\coth\\alpha"},{key:"\\operatorname{sech}\\alpha"},{key:"\\operatorname{csch}\\alpha"}]},{key:"inverseHyperblicFunctions",label:"InverseHyperblicFunctions",children:[{key:"\\sinh^{-1}\\alpha"},{key:"\\cosh^{-1}\\alpha"},{key:"\\tanh^{-1}\\alpha"},{key:"\\coth^{-1}\\alpha"},{key:"\\operatorname{sech}^{-1}\\alpha"},{key:"\\operatorname{csch}^{-1}\\alpha"}]}]},l={key:"formulaTemplate",label:"FormulaTemplate",children:[{key:"algebraFormula",label:"Algebra",children:[{key:"\\left(x-1\\right)\\left(x+3\\right)"},{key:"\\frac{a}{b}\\pm \\frac{c}{d}= \\frac{ad \\pm bc}{bd}"},{key:"x ={-b \\pm \\sqrt{b^2-4ac}\\over 2a}"},{key:"\\left\\{\\begin{matrix} x=a + r\\text{cos}\\theta \\\\ y=b + r\\text{sin}\\theta \\end{matrix}\\right."}]},{key:"geometryFormula",label:"Geometry",children:[{key:"\\Delta ABC"},{key:"a \\parallel c,b \\parallel c \\Rightarrow a \\parallel b"},{key:"\\left.\\begin{matrix} a \\perp \\alpha \\\\ b \\perp \\alpha \\end{matrix}\\right\\}\\Rightarrow a \\parallel b"},{key:"\\begin{array}{c} \\text{\u76F4\u89D2\u4E09\u89D2\u5F62\u4E2D,\u76F4\u89D2\u8FB9\u957Fa,b,\u659C\u8FB9\u8FB9\u957Fc} \\\\ a^{2}+b^{2}=c^{2} \\end{array}"}]},{key:"inequalityFormula",label:"Inequality",children:[{key:"a > b,b > c \\Rightarrow a > c"},{key:"\\left | a-b \\right | \\geqslant \\left | a \\right | -\\left | b \\right |"},{key:"-\\left | a \\right |\\leq a\\leqslant \\left | a \\right |"},{key:"\\begin{array}{c} a,b \\in \\mathbb{R}^{+} \\\\ \\Rightarrow \\frac{a+b}{{2}}\\ge \\sqrt{ab} \\\\ \\left( \\text{\u5F53\u4E14\u4EC5\u5F53}a=b\\text{\u65F6\u53D6\u201C}=\\text{\u201D\u53F7}\\right) \\end{array}"},{key:"\\begin{array}{c} a,b \\in \\mathbb{R} \\\\ \\Rightarrow a^{2}+b^{2}\\gt 2ab \\\\ \\left( \\text{\u5F53\u4E14\u4EC5\u5F53}a=b\\text{\u65F6\u53D6\u201C}=\\text{\u201D\u53F7}\\right) \\end{array}"}]},{key:"integralFormula",label:"Integral",children:[{key:"\\frac{\\mathrm{d}}{\\mathrm{d}x}x^n=nx^{n-1}"},{key:"\\frac{\\mathrm{d}}{\\mathrm{d}x}\\sin x=\\cos x"},{key:"\\frac{\\mathrm{d}}{\\mathrm{d}x}\\cos x=-\\sin x"},{key:"\\int k\\mathrm{d}x = kx+C"}]},{key:"matrixFormula",label:"Matrix",children:[{key:"\\begin{pmatrix} 1 & 0 \\\\ 0 & 1\\end{pmatrix}"},{key:"\\begin{pmatrix} a_{11} & a_{12} & a_{13} \\\\ a_{21} & a_{22} & a_{23} \\\\ a_{31} & a_{32} & a_{33}\\end{pmatrix}"},{key:"A_{m\\times n}=\\begin{bmatrix} a_{11}& a_{12}& \\cdots & a_{1n} \\\\ a_{21}& a_{22}& \\cdots & a_{2n} \\\\ \\vdots & \\vdots & \\ddots & \\vdots \\\\ a_{m1}& a_{m2}& \\cdots & a_{mn}\\end{bmatrix}=\\left [ a_{ij}\\right ]"},{key:"\\mathbf{V}_1 \\times \\mathbf{V}_2 =\\begin{vmatrix} \\mathbf{i}& \\mathbf{j}& \\mathbf{k} \\\\ \\frac{\\partial X}{\\partial u}& \\frac{\\partial Y}{\\partial u}& 0 \\\\ \\frac{\\partial X}{\\partial v}& \\frac{\\partial Y}{\\partial v}& 0 \\\\ \\end{vmatrix}"}]},{key:"triangleFormula",label:"Triangle",children:[{key:"e^{i \\theta}"},{key:"\\text{sin}^{2}\\frac{\\alpha}{2}=\\frac{1- \\text{cos}\\alpha}{2}"},{key:"\\sin \\alpha + \\sin \\beta =2 \\sin \\frac{\\alpha + \\beta}{2}\\cos \\frac{\\alpha - \\beta}{2}"},{key:"\\cos \\alpha + \\cos \\beta =2 \\cos \\frac{\\alpha + \\beta}{2}\\cos \\frac{\\alpha - \\beta}{2}"}]},{key:"statisticsFormula",label:"Statistics",children:[{key:"C_{r}^{n}"},{key:"\\sum_{i=1}^{n}{X_i}"},{key:"\\begin{array}{c} \\text{\u82E5}P \\left( AB \\right) =P \\left( A \\right) P \\left( B \\right) \\\\ \\text{\u5219}P \\left( A \\left| B\\right. \\right) =P \\left({B}\\right) \\end{array}"},{key:"P \\left( A \\right) = \\lim \\limits_{n \\to \\infty}f_{n}\\left ( A \\right )"}]},{key:"sequenceFormula",label:"Sequence",children:[{key:"a_{n}=a_{1}q^{n-1}"},{key:"S_{n}=\\frac{n \\left( a_{1}+a_{n}\\right)}{2}"},{key:"\\frac{1}{4n^{2}-1}=\\frac{1}{2}\\left( \\frac{1}{2n-1}-\\frac{1}{2n+1}\\right)"},{key:"\\begin{array}{c} \\text{\u82E5}\\left \\{a_{n}\\right \\}\u3001\\left \\{b_{n}\\right \\}\\text{\u4E3A\u7B49\u5DEE\u6570\u5217}, \\\\ \\text{\u5219}\\left \\{a_{n}+ b_{n}\\right \\}\\text{\u4E3A\u7B49\u5DEE\u6570\u5217} \\end{array}"}]},{key:"physicsFormula",label:"Physics",children:[{key:"\\sum \\vec{F}_i = \\frac{d\\vec{v}}{dt} = 0"},{key:"{E_p} = -\\frac{{GMm}}{r}"},{key:"d \\vec{F}= Id \\vec{l} \\times \\vec{B}"},{key:"\\begin{array}{l} \\nabla \\cdot \\mathbf{D} =\\rho _f \\\\ \\nabla \\cdot \\mathbf{B} = 0 \\\\ \\nabla \\times \\mathbf{E} = -\\cfrac{\\partial \\mathbf{B}}{\\partial t } \\\\ \\nabla \\times \\mathbf{H} = \\mathbf{J}_f + \\cfrac{\\partial \\mathbf{D}}{\\partial t } \\end{array}"}]}]},i=[e,a,t,r,y,l];export{i as latexList};
@@ -0,0 +1 @@
1
+ import n,{useState as N,useRef as x}from"react";import{Dropdown as $,Spin as w,Tooltip as L,Button as f}from"antd";import{RightOutlined as A}from"@ant-design/icons";import{latexList as k}from"./constant/config.js";import y from"../markdownView/index.js";import o from"./index.module.scss.js";import E from"classnames";import{useTranslation as h}from"react-i18next";const C=({data:i,columnIndex:p,onSelectLatex:v,setActiveKeys:c,activeKeys:s,getInitActiveKey:u,disabled:d})=>{var a,t;const{t:r}=h();return((a=i==null?void 0:i.children)==null?void 0:a.some(e=>!(e==null?void 0:e.children)))&&(i==null?void 0:i.children)?n.createElement("div",{className:o.lastNode},i.children.map(e=>{const m=` $$${e.key}$$ `;return(e==null?void 0:e.remark)?n.createElement(L,{placement:"top",title:e==null?void 0:e.remark,key:e.key},n.createElement(f,{key:e.key,className:o.markdownItem,onClick:()=>{v(m)},disabled:d},n.createElement(y,{value:m}))):n.createElement(f,{key:e.key,className:o.markdownItem,onClick:()=>{v(m)},disabled:d},n.createElement(y,{value:m}))})):n.createElement("div",{className:o.itemList},(t=i==null?void 0:i.children)==null?void 0:t.map(e=>n.createElement("div",{key:e.key,onClick:()=>{const m=u(e),g=[...s.slice(0,p+1),...m];c(g)},className:E({[`${o.item}`]:!0,[`${o.itemActive}`]:s.includes(e.key)})},r(e.label||""),n.createElement(A,{style:{marginLeft:4,fontSize:10}}))))},I=({onSelectLatex:i,disabled:p})=>{const{t:v}=h(),[c,s]=N([]),u=x(null),d=(t,r)=>{for(const l of t){if((l==null?void 0:l.key)===r)return l;if(l==null?void 0:l.children){const e=d(l.children,r);if(e)return e}}return null},a=(t,r=[])=>{var l;const e=r;return e.push(t.key),(t==null?void 0:t.children)&&((l=t==null?void 0:t.children)==null?void 0:l.length)>0&&a(t.children[0],e),e};return n.createElement("div",{className:o.latexEditor,ref:u},k.map(t=>n.createElement($,{dropdownRender:()=>n.createElement(w,{spinning:c.length===0},n.createElement("div",{className:o.dropContent},c.map((r,l)=>{const e=d(k,r);return n.createElement("div",{key:r},n.createElement(C,{data:e,columnIndex:l,onSelectLatex:i,setActiveKeys:s,activeKeys:c,getInitActiveKey:a,disabled:p}))}))),key:t.key,className:E({[`${o.latexHeaderTitle}`]:!0,[`${o.itemActive}`]:c.includes(t.key)}),getPopupContainer:()=>(u==null?void 0:u.current)||document.body,trigger:["click"],onOpenChange:r=>{if(r){const l=a(t);s(l)}else s([])}},n.createElement("span",null,v(t.label)))))};export{I as default};
@@ -0,0 +1 @@
1
+ var e={latexEditor:"index-module_latexEditor__0fK8G",latexHeaderTitle:"index-module_latexHeaderTitle__JIpOj",dropContent:"index-module_dropContent__XVBYH",itemList:"index-module_itemList__Y3q0e",item:"index-module_item__q4v2V",itemActive:"index-module_itemActive__a5EPl",lastNode:"index-module_lastNode__TXbWG",markdownItem:"index-module_markdownItem__AkW22"};export{e as default};
@@ -1 +1 @@
1
- import{PointCloudUtils as v,EPerspectiveView as j}from"@labelbee/lb-utils";import l,{useState as z,useEffect as k}from"react";import{PointCloudContext as m}from"./PointCloudContext.js";import{UnitUtils as D}from"@labelbee/lb-annotation";import{useSingleBox as N}from"./hooks/useSingleBox.js";import{useTranslation as x}from"react-i18next";var V=Object.defineProperty,$=Object.defineProperties,H=Object.getOwnPropertyDescriptors,O=Object.getOwnPropertySymbols,U=Object.prototype.hasOwnProperty,R=Object.prototype.propertyIsEnumerable,I=(o,e,t)=>e in o?V(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,S=(o,e)=>{for(var t in e||(e={}))U.call(e,t)&&I(o,t,e[t]);if(O)for(var t of O(e))R.call(e,t)&&I(o,t,e[t]);return o},B=(o,e)=>$(o,H(e));const a=2,F={color:"white",backgroundColor:"rgba(153, 153, 153, 0.3)",padding:"8px 10px",zIndex:20,fontSize:12},T=({perspectiveView:o})=>{const{pointCloudBoxList:e,selectedID:t}=l.useContext(m),c=e.find(u=>u.id===t),r=x(),{t:s}=r;if(t&&c){const{length:u,width:b,height:i}=v.transferBox2Kitti(c),f=o===j.Back?[{label:s("Width"),value:b},{label:s("Height"),value:i}]:[{label:s("Length"),value:u},{label:s("Height"),value:i}];return l.createElement("div",{style:B(S({position:"absolute"},F),{bottom:"4%",left:"50%",transform:"translate(-50%, 0)"})},f.map((d,n)=>l.createElement("span",{key:n,style:{marginRight:n===0?16:0}},`${d.label}: ${d.value.toFixed(a)}`)))}return null},K=({checkMode:o,config:e,style:t})=>{const c=l.useContext(m),{selectedBox:r}=N(),[s,u]=z([]),b=x(),{t:i,i18n:f}=b,d=t;return k(()=>{var n,g;if(!r)return;const{length:h,width:_,height:y,rotation_y:A}=v.transferBox2Kitti(r.info),{x:P,y:C,z:w}=r.info.center;let p=[{label:"x",value:P==null?void 0:P.toFixed(a)},{label:"y",value:C==null?void 0:C.toFixed(a)},{label:"z",value:w==null?void 0:w.toFixed(a)},{label:i("Length"),value:h==null?void 0:h.toFixed(a)},{label:i("Width"),value:_==null?void 0:_.toFixed(a)},{label:i("Height"),value:y==null?void 0:y.toFixed(a)},{label:i("Rotation_y"),value:(n=D.rad2deg(A))==null?void 0:n.toFixed(a)}];(g=c.mainViewInstance)==null||g.filterPointsByBox(r.info).then(E=>{if(!E){u(p);return}p.push({label:i("PointCount"),value:`${E.num}`}),o===!0&&r.info.subAttribute&&e&&v.getSubAttributeName(r.info.subAttribute,e).forEach(L=>p.push(L)),u(p)})},[r,f.language]),r?l.createElement("div",{style:t||B(S({position:"absolute"},F),{right:8,bottom:8})},s.map(n=>d?l.createElement("div",{key:n.label,style:{margin:"0px 4px"}},`${n.label}: ${n.value}`):l.createElement("div",{key:n.label},l.createElement("span",{style:{width:"38px",display:"inline-block",textAlign:"end"}},n.label),": ",l.createElement("span",null,n.value)))):null},W=()=>{const o=l.useContext(m),{t:e}=x();return o.valid===!1?l.createElement("div",{style:{position:"absolute",backgroundColor:"rgb(242, 101, 73)",color:"white",opacity:.7,left:0,top:0,fontSize:30,padding:"8px 16px",zIndex:20,width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"}},e("Invalid")):null};export{K as BoxInfos,W as PointCloudValidity,T as SizeInfoForView};
1
+ import{PointCloudUtils as v,EPerspectiveView as k}from"@labelbee/lb-utils";import r,{useState as D,useEffect as N}from"react";import{PointCloudContext as m}from"./PointCloudContext.js";import{UnitUtils as V}from"@labelbee/lb-annotation";import{useSingleBox as $}from"./hooks/useSingleBox.js";import{useTranslation as x}from"react-i18next";var H=Object.defineProperty,U=Object.defineProperties,R=Object.getOwnPropertyDescriptors,I=Object.getOwnPropertySymbols,T=Object.prototype.hasOwnProperty,K=Object.prototype.propertyIsEnumerable,S=(o,e,t)=>e in o?H(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,B=(o,e)=>{for(var t in e||(e={}))T.call(e,t)&&S(o,t,e[t]);if(I)for(var t of I(e))K.call(e,t)&&S(o,t,e[t]);return o},F=(o,e)=>U(o,R(e));const a=2,A={color:"white",backgroundColor:"rgba(153, 153, 153, 0.3)",padding:"8px 10px",zIndex:20,fontSize:12},W=({perspectiveView:o})=>{const{pointCloudBoxList:e,selectedID:t}=r.useContext(m),c=e.find(u=>u.id===t),l=x(),{t:s}=l;if(t&&c){const{length:u,width:b,height:i}=v.transferBox2Kitti(c),f=o===k.Back?[{label:s("Width"),value:b},{label:s("Height"),value:i}]:[{label:s("Length"),value:u},{label:s("Height"),value:i}];return r.createElement("div",{style:F(B({position:"absolute"},A),{bottom:"4%",left:"50%",transform:"translate(-50%, 0)"})},f.map((d,n)=>r.createElement("span",{key:n,style:{marginRight:n===0?16:0}},`${d.label}: ${d.value.toFixed(a)}`)))}return null},M=({checkMode:o,config:e,style:t})=>{const c=r.useContext(m),{selectedBox:l}=$(),[s,u]=D([]),b=x(),{t:i,i18n:f}=b,d=t;return N(()=>{var n,g;if(!l)return;const{length:h,width:_,height:y,rotation_y:L}=v.transferBox2Kitti(l.info),{x:P,y:C,z:w}=l.info.center;let p=[{label:"x",value:P==null?void 0:P.toFixed(a)},{label:"y",value:C==null?void 0:C.toFixed(a)},{label:"z",value:w==null?void 0:w.toFixed(a)},{label:i("Length"),value:h==null?void 0:h.toFixed(a)},{label:i("Width"),value:_==null?void 0:_.toFixed(a)},{label:i("Height"),value:y==null?void 0:y.toFixed(a)},{label:i("Rotation_y"),value:(n=V.rad2deg(L))==null?void 0:n.toFixed(a)}];(g=c.mainViewInstance)==null||g.filterPointsByBox(l.info).then(j=>{var E,O;if(!j){u(p);return}p.push({label:i("PointCount"),value:`${(O=(E=l.info)==null?void 0:E.count)!=null?O:0}`}),o===!0&&l.info.subAttribute&&e&&v.getSubAttributeName(l.info.subAttribute,e).forEach(z=>p.push(z)),u(p)})},[l,f.language]),l?r.createElement("div",{style:t||F(B({position:"absolute"},A),{right:8,bottom:8})},s.map(n=>d?r.createElement("div",{key:n.label,style:{margin:"0px 4px"}},`${n.label}: ${n.value}`):r.createElement("div",{key:n.label},r.createElement("span",{style:{width:"38px",display:"inline-block",textAlign:"end"}},n.label),": ",r.createElement("span",null,n.value)))):null},X=()=>{const o=r.useContext(m),{t:e}=x();return o.valid===!1?r.createElement("div",{style:{position:"absolute",backgroundColor:"rgb(242, 101, 73)",color:"white",opacity:.7,left:0,top:0,fontSize:30,padding:"8px 16px",zIndex:20,width:"100%",height:"100%",display:"flex",justifyContent:"center",alignItems:"center"}},e("Invalid")):null};export{M as BoxInfos,X as PointCloudValidity,W as SizeInfoForView};
@@ -1 +1 @@
1
- import{EPointCloudName as nt,MathUtils as w,getCuboidFromPointCloudBox as Gt}from"@labelbee/lb-annotation";import{EPerspectiveView as Q,PointCloudUtils as V,DEFAULT_SPHERE_PARAMS as Qt}from"@labelbee/lb-utils";import{useContext as Xt}from"react";import{PointCloudContext as Yt}from"../PointCloudContext.js";import{useSingleBox as qt}from"./useSingleBox.js";import{useSphere as Jt}from"./useSphere.js";import{useSelector as Kt,useDispatch as $t}from"../../../store/ctx.js";import to from"../../../utils/StepUtils.js";import{jsonParser as ft,getRectPointCloudBox as oo}from"../../../utils/index.js";import{PreDataProcess as it,SetPointCloudLoading as Ct,SetLoadPCDFileLoading as Pt}from"../../../store/annotation/actionCreators.js";import{message as eo}from"antd";import{useTranslation as no}from"react-i18next";import{useHistory as io}from"./useHistory.js";import{usePolygon as so}from"./usePolygon.js";import{useLatest as ro}from"ahooks";var lo=Object.defineProperty,ao=Object.defineProperties,co=Object.getOwnPropertyDescriptors,mt=Object.getOwnPropertySymbols,uo=Object.prototype.hasOwnProperty,po=Object.prototype.propertyIsEnumerable,xt=(e,t,i)=>t in e?lo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,L=(e,t)=>{for(var i in t||(t={}))uo.call(t,i)&&xt(e,i,t[i]);if(mt)for(var i of mt(t))po.call(t,i)&&xt(e,i,t[i]);return e},O=(e,t)=>ao(e,co(t)),st=(e,t,i)=>new Promise((d,o)=>{var a=u=>{try{c(i.next(u))}catch(P){o(P)}},g=u=>{try{c(i.throw(u))}catch(P){o(P)}},c=u=>u.done?d(u.value):Promise.resolve(u.value).then(a,g);c((i=i.apply(e,t)).next())});const J=5,K=90,ht=.01,v={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},rt=(e,t,i,d,o)=>{const{x:a,y:g}=V.transferCanvas2World(e,t),{defaultZ:c}=Qt,u={center:{x:a,y:g,z:c},id:e.id},P=d?L(L({},d),u):O(L({},u),{attribute:"",valid:!0});return o&&Object.assign(P,o),P},lt=(e,t,i,d,o,a)=>{let g=e.pointList.map(B=>V.transferCanvas2World(B,t)),c=0,u=1,P={};if(i){const B=i.getSensesPointZAxisInPolygon(g,void 0,a);a&&B.fittedCoordinates.length>0&&(g=B.fittedCoordinates),c=(B.maxZ+B.minZ)/2,u=B.maxZ-B.minZ,P={count:B.zCount}}const[h,S,F]=g,R=w.getLineCenterPoint([h,F]),z=w.getLineLength(h,S),A=w.getLineLength(S,F),N=w.getRadiusFromQuadrangle(e.pointList);d&&(c=d.center.z,u=d.depth);const T={center:{x:R.x,y:R.y,z:c},width:a?A+ht:A,height:a?z+ht:z,depth:u,rotation:N,id:e.id},j=L(d?L(L({},d),T):O(L({},T),{attribute:"",valid:!0}),P);o&&Object.assign(j,o);const E=g.map(B=>V.transferWorld2Canvas(B,t));return{boxParams:j,newPointList:E}},Lt=(e,t,i)=>{const d={x:e.x-t.x,y:e.y-t.y};return O(L({},i),{center:{x:i.center.x-d.x,y:i.center.y,z:i.center.z-d.y}})},yt=(e,t,i,d)=>{const[o,a,g]=e.pointList,[c,u,P]=t.pointList,h=w.getLineCenterPoint([o,g]),S=w.getLineCenterPoint([c,P]),R={x:{x:h.x-S.x,y:h.y-S.y}.x,y:0,z:h.y-S.y},z=w.getLineLength(o,a),A=w.getLineLength(c,u),N=z-A,T=w.getLineLength(a,g),j=w.getLineLength(u,P),E=T-j,{newBoxParams:B}=d.getNewBoxBySideUpdate(R,E,N,i);return B},go=(e,t,i)=>{const d={x:e.x-t.x,y:e.y-t.y};return O(L({},i),{center:{x:i.center.x,y:i.center.y-d.x,z:i.center.z-d.y}})},fo=(e,t,i,d)=>{const[o,a,g]=e.pointList,[c,u,P]=t.pointList,h=w.getLineCenterPoint([o,g]),S=w.getLineCenterPoint([c,P]),R={x:{x:h.x-S.x,y:h.y-S.y}.x,y:0,z:h.y-S.y},z=w.getLineLength(o,a),A=w.getLineLength(c,u),N=z-A,T=w.getLineLength(a,g),j=w.getLineLength(u,P),E=T-j;let{newBoxParams:B}=d.getNewBoxByBackUpdate(R,E,N,i);return B},vt=(e,t,i,d,o)=>{var a;if(!i)return;const{toolInstance:g,pointCloudInstance:c}=i;c.loadPCDFile(d,(a=o==null?void 0:o.radius)!=null?a:K);const{cameraPositionVector:u}=c.updateOrthoCameraBySphere(e,Q.Left);c.setInitCameraPosition(u);const{point2d:P,zoom:h}=c.getSphereSidePoint2DCoordinate(e);c.camera.zoom=h,c.camera.updateProjectionMatrix(),c.render(),g.initPosition(),g.zoomChangeOnCenter(h),g.setResult([O(L(L({},t),P),{valid:e.valid,textAttribute:"",attribute:e.attribute})]),g.setSelectedID(t.id)},Bt=(e,t,i,d)=>{if(!i)return;const{pointCloud2dOperation:o,pointCloudInstance:a}=i;a.loadPCDFileByBox(d,e,{width:J,depth:J});const{cameraPositionVector:g}=a.updateOrthoCamera(e,Q.Left);a.setInitCameraPosition(g);const{polygon2d:c,zoom:u}=a.getBoxSidePolygon2DCoordinate(e);a.camera.zoom=u,a.camera.updateProjectionMatrix(),a.render(),o.initPosition(),o.zoomChangeOnCenter(u),o.setResultAndSelectedID([{id:t.id,valid:e.valid,pointList:c,textAttribute:"",isRect:!0,attribute:e.attribute}],t.id)},wt=(e,t,i,d,o)=>{var a;if(!i)return;const{toolInstance:g,pointCloudInstance:c}=i;c.loadPCDFile(d,(a=o==null?void 0:o.radius)!=null?a:K);const{cameraPositionVector:u}=c.updateOrthoCameraBySphere(e,Q.Back);c.setInitCameraPosition(u);const{point2d:P,zoom:h}=c.getSphereBackPoint2DCoordinate(e);c.camera.zoom=h,c.camera.updateProjectionMatrix(),c.render(),g.initPosition(),g.zoomChangeOnCenter(h),g.setResult([O(L(L({},t),P),{valid:e.valid,textAttribute:"",attribute:e.attribute})]),g.setSelectedID(t.id)},bt=(e,t,i,d)=>{if(!i)return;const{pointCloud2dOperation:o,pointCloudInstance:a}=i;a.loadPCDFileByBox(d,e,{height:J,depth:J});const{cameraPositionVector:g}=a.updateOrthoCamera(e,Q.Back);a.setInitCameraPosition(g);const{polygon2d:c,zoom:u}=a.getBoxBackPolygon2DCoordinate(e);a.camera.zoom=u,a.camera.updateProjectionMatrix(),a.render(),o.initPosition(),o.zoomChangeOnCenter(u),o.setResultAndSelectedID([{id:t.id,valid:e.valid,pointList:c,textAttribute:"",isRect:!0,attribute:e.attribute}],t.id)},It=(e,t,i,d)=>{if(!i||!d)return;d.generateSphere(e),d.updateCameraBySphere(e,Q.Top),d.render();const{toolInstance:o,pointCloudInstance:a}=i,{point2d:g}=a.getSphereTopPoint2DCoordinate(e),c=[...o.pointList].map(u=>u.id===t.id?O(L(L({},t),g),{valid:e.valid,textAttribute:"",attribute:e.attribute}):u);o.setResult(c),o.setSelectedID(t.id)},dt=(e,t,i,d)=>{var o,a;if(!i||!d)return;d.generateBox(e,t.id),d.render();const{pointCloud2dOperation:g,pointCloudInstance:c}=i,{polygon2d:u}=c.getBoxTopPolygon2DCoordinate(e),P=[...g.polygonList],h=P.find(S=>S.id===t.id);h?(h.pointList=u,h.valid=(o=e.valid)!=null?o:!0):P.push({id:t.id,pointList:u,textAttribute:"",isRect:!0,valid:(a=e.valid)!=null?a:!0}),g.setResultAndSelectedID(P,t.id)},Co=()=>{const e=Xt(Yt),{topViewInstance:t,sideViewInstance:i,backViewInstance:d,mainViewInstance:o,addPointCloudBox:a,addPointCloudSphere:g,setSelectedIDs:c,selectedIDs:u,pointCloudBoxList:P,pointCloudSphereList:h,hideAttributes:S,setHighlight2DDataList:F,cuboidBoxIn2DView:R,imageSizes:z}=e,{addHistory:A,initHistory:N,pushHistoryUnderUpdatePolygon:T}=io(),{selectedPolygon:j}=so(),{getPointCloudSphereByID:E,updatePointCloudSphere:B,selectedSphere:X}=Jt(),{currentData:W,config:b}=Kt(n=>{const{stepList:r,step:p,imgList:s,imgIndex:l}=n.annotation;return{currentData:s[l],config:ft(to.getCurrentStepInfo(p,r).config)}}),H=$t(),Dt=ro(R),$=n=>{if(!Dt.current){const{mappingImgList:r=[]}=W,p=r.map(s=>oo({pointCloudBox:n,mappingData:s,imageSizes:z}));Object.assign(n,{rects:p.filter(s=>s!==void 0)})}},{selectedBox:_,updateSelectedBox:St,updateSelectedBoxes:tt,getPointCloudByID:_t}=qt({generateRects:$}),{t:Vt}=no(),at=_==null?void 0:_.info;if(!t||!i||!d)return{topViewAddSphere:()=>{},topViewAddBox:()=>{},topViewSelectedChanged:()=>{},sideViewUpdateBox:()=>{},backViewUpdateBox:()=>{}};const{pointCloudInstance:ot}=t,Ot=n=>{o==null||o.generateBox(n),o==null||o.controls.update(),o==null||o.render()},kt=n=>{o==null||o.generateSphere(n),o==null||o.controls.update(),o==null||o.render()},At=({newPoint:n,size:r,zoom:p,trackConfigurable:s})=>{var l;const f={attribute:(l=t.toolInstance.defaultAttribute)!=null?l:""};s===!0&&Object.assign(f,{trackID:V.getNextTrackID({imgList:[],extraBoxList:[],extraSphereList:h})});const C=rt(n,r,ot,void 0,f);c(n.id);const m=g(C);Y(v.Top,n,C,p,m,b),A({newSphereParams:C})},Ut=({polygon:n,size:r,imgList:p,trackConfigurable:s,zoom:l,intelligentFit:f})=>{var C,m;const x={attribute:(C=t.toolInstance.defaultAttribute)!=null?C:""};s===!0&&Object.assign(x,{trackID:V.getNextTrackID({imgList:[],extraBoxList:P,extraSphereList:h})});const I=t==null?void 0:t.toolInstance,D=L({},n);let{boxParams:y,newPointList:U}=lt(D,r,ot,void 0,x,f);if(y=H(it({tool:nt.PointCloud,dataList:[y],stepConfig:b,action:"viewUpdateBox"}))[0],(b==null?void 0:b.lowerLimitPointsNumInBox)&&typeof y.count=="number"&&y.count<b.lowerLimitPointsNumInBox){eo.info(Vt("LowerLimitPointsNumInBox",{num:b.lowerLimitPointsNumInBox})),I.deletePolygon(y.id);return}f&&(U==null?void 0:U.length)&&(D.pointList=U);const k=S.includes(D.attribute);$(y);const G=a(y),et=(m=e==null?void 0:e.polygonList)!=null?m:[];t==null||t.updatePolygonList(G!=null?G:[],et),k?c([]):(c(y.id),I.selection.setSelectedIDs(D.id),M({omitView:v.Top,polygon:D,boxParams:y,zoom:l,newPointCloudBoxList:G}),f&&dt(y,D,t,o)),A({newBoxParams:y})},Rt=n=>{const{boxID:r,imageName:p,width:s,height:l,x:f,y:C}=n,m=P.find(x=>x.id===r);if(m==null?void 0:m.rects){const{rects:x=[]}=m,I=x.find(D=>D.imageName===p);if(I){let D=x;const y=O(L({},I),{width:s,height:l,x:f,y:C});D=x.map(k=>k===I?y:k);const U=O(L({},m),{rects:D}),Z=P.map(k=>k===m?U:k);return t==null||t.updatePolygonList(Z!=null?Z:[]),Z}}},zt=({newSelectedBox:n,newPointCloudList:r,newSelectedSphere:p,newSphereList:s})=>{var l;const f=t==null?void 0:t.toolInstance;if(!(u.length===0||!f)){if(n||(_==null?void 0:_.info)){const C=n!=null?n:_==null?void 0:_.info;(l=f==null?void 0:f.selection)==null||l.setSelectedIDs(u[0]);const m=f.selectedPolygon;if(u.length===1&&C){M({omitView:v.Top,polygon:m,boxParams:C,newPointCloudBoxList:r});return}}if((p||X)&&u.length===1){const C=p!=null?p:X;f.setSelectedID(u[0]);const m=f.selectedPoint;C&&Y(v.Top,m,C,void 0,s,b)}}},ct=(n,r,p)=>{if(at){let s,l;switch(p){case v.Back:s=fo;break;case v.Side:s=yt;break;default:s=yt;break}l=s(n,r,at,i.pointCloudInstance);const C=H(it({tool:nt.PointCloud,dataList:[l],stepConfig:b,action:"viewUpdateBox"}))[0],m=l.valid!==C.valid;if(l=C,o){const{count:I}=o.getSensesPointZAxisInPolygon(Gt(l).polygonPointList,[l.center.z-l.depth/2,l.center.z+l.depth/2]);l=O(L({},l),{count:I})}const x=St(l);return l=x.find(I=>I.id===l.id),M({omitView:m?void 0:p,polygon:n,boxParams:l,newPointCloudBoxList:x}),x}},ut=(n,r,p)=>{if(X){let s,l;switch(p){case v.Back:s=go;break;case v.Side:s=Lt;break;default:s=Lt;break}l=s(n,r,X);const f=B(l);return Y(p,n,l,void 0,f,b),f}},Tt=(n,r)=>{ut(n,r,v.Side)},jt=(n,r)=>{ut(n,r,v.Back)},Nt=(n,r)=>{ct(n,r,v.Side)},Et=(n,r)=>{ct(n,r,v.Back)},Ht=(n,r)=>{const p=E(n.id),s=rt(n,r,ot,p),l=B(s);Y(v.Top,n,s,void 0,l,b)},Ft=(n,r)=>{if(j){const s=L({},n[0].newPolygon);s.pointList=s.pointList.map(l=>V.transferCanvas2World(l,r)),T(s);return}let p=n.map(({newPolygon:s})=>{const l=_t(s.id),{boxParams:f}=lt(s,r,t.pointCloudInstance,l);return f});if(p=H(it({tool:nt.PointCloud,dataList:p,stepConfig:b,action:"viewUpdateBox"})),p.length===1){const{newPolygon:s}=n[0],l=tt(p);M({polygon:s,boxParams:p[0],newPointCloudBoxList:l})}else{const s=tt(p);s&&e.syncAllViewPointCloudColor(s)}},Wt=n=>{var r,p,s,l,f;if(_){const C=Number(n.widthDefault),m=Number(n.depthDefault),x=Number(n.heightDefault),I=_==null?void 0:_.info.trackID,y=((r=t==null?void 0:t.toolInstance)==null?void 0:r.polygonList).find(q=>(q==null?void 0:q.trackID)===I),U={width:(s=(p=t==null?void 0:t.toolInstance)==null?void 0:p.basicImgInfo)==null?void 0:s.width,height:(f=(l=t==null?void 0:t.toolInstance)==null?void 0:l.basicImgInfo)==null?void 0:f.height},Z=y.pointList.map(q=>V.transferCanvas2World(q,U)),k=w.getModifiedRectangleCoordinates(Z,x,C),G=k[0],et=k[2],pt=w.getLineCenterPoint([G,et]),Zt=_.info.center.z-_.info.depth/2,gt=O(L({},_.info),{center:{x:pt.x,y:pt.y,z:Zt+m/2},width:C,height:x,depth:m,valid:!0}),Mt=tt([gt]);M({omitView:v["3D"],polygon:y,boxParams:gt,newPointCloudBoxList:Mt})}},Y=(n,r,p,s,l,f)=>st(void 0,null,function*(){const C=W==null?void 0:W.url,m={[v.Side]:()=>{vt(p,r,i,C,f)},[v.Back]:()=>{d&&wt(p,r,d,C,f)},[v.Top]:()=>{It(p,r,t,o)}};Object.keys(m).forEach(x=>{x!==n&&m[x]()}),s&&(o==null||o.updateCameraZoom(s)),kt(p)}),M=n=>st(void 0,null,function*(){const{omitView:r,polygon:p,boxParams:s,zoom:l,newPointCloudBoxList:f}=n,C=W==null?void 0:W.url;f&&(yield e.syncAllViewPointCloudColor(f));const m={[v.Side]:()=>{Bt(s,p,i,C)},[v.Back]:()=>{d&&bt(s,p,d,C)},[v.Top]:()=>{dt(s,p,t,o)}};Object.keys(m).forEach(x=>{x!==r&&m[x]()}),l&&(o==null||o.updateCameraZoom(l)),Ot(s)});return{topViewAddSphere:At,topViewAddBox:Ut,topViewSelectedChanged:zt,topViewUpdatePoint:Ht,sideViewUpdatePoint:Tt,backViewUpdatePoint:jt,topViewUpdateBox:Ft,sideViewUpdateBox:Nt,backViewUpdateBox:Et,pointCloudBoxListUpdated:n=>{t.updatePolygonList(n),o==null||o.generateBoxes(n)},initPointCloud3d:n=>{if(!o)return;const r=V.getDefaultOrthographicParams(n);o.initOrthographicCamera(r),o.initRenderer(),o.render()},updatePointCloudData:(...n)=>st(void 0,[...n],function*(r=W){var p,s,l,f,C,m;if(!(r==null?void 0:r.url)||!o)return;F([]),Ct(H,!0),Pt(H,!0),yield o.loadPCDFile(r.url,(p=b==null?void 0:b.radius)!=null?p:K),o==null||o.clearAllBox(),o==null||o.clearAllSphere();let x=[],I=[],D=[],y=[];o.updateTopCamera();const U=(l=(s=ft(r.result))==null?void 0:s.valid)!=null?l:!0;e.setPointCloudValid(U),(f=e.sideViewInstance)==null||f.clearAllData(),(C=e.backViewInstance)==null||C.clearAllData(),t.updateData(r.url,r.result,{radius:(m=b==null?void 0:b.radius)!=null?m:K}),r.result&&(x=V.getBoxParamsFromResultList(r.result),D=V.getPolygonListFromResultList(r.result),I=V.getLineListFromResultList(r.result),y=V.getSphereParamsFromResultList(r.result),o==null||o.generateBoxes(x),o==null||o.generateSpheres(y),yield e.syncAllViewPointCloudColor(x,[])),N({pointCloudBoxList:x,polygonList:D,lineList:I,pointCloudSphereList:y}),Ct(H,!1),Pt(H,!1)}),updateViewsByDefaultSize:Wt,generateRects:$,update2DViewRect:Rt}};export{wt as syncBackViewByPoint,vt as syncSideViewByPoint,It as syncTopViewByPoint,bt as synchronizeBackView,Bt as synchronizeSideView,dt as synchronizeTopView,rt as topViewPoint2PointCloud,lt as topViewPolygon2PointCloud,Co as usePointCloudViews};
1
+ import{EPointCloudName as nt,MathUtils as B,getCuboidFromPointCloudBox as Mt}from"@labelbee/lb-annotation";import{EPerspectiveView as J,PointCloudUtils as V,POINT_CLOUD_DEFAULT_STEP as Gt,DEFAULT_SPHERE_PARAMS as Jt}from"@labelbee/lb-utils";import{useContext as Qt}from"react";import{PointCloudContext as Xt}from"../PointCloudContext.js";import{useSingleBox as Yt}from"./useSingleBox.js";import{useSphere as qt}from"./useSphere.js";import{useSelector as Kt,useDispatch as $t}from"../../../store/ctx.js";import to from"../../../utils/StepUtils.js";import{jsonParser as it,getRectPointCloudBox as oo}from"../../../utils/index.js";import{PreDataProcess as st,SetPointCloudLoading as Ct,SetLoadPCDFileLoading as Pt}from"../../../store/annotation/actionCreators.js";import{useHistory as eo}from"./useHistory.js";import{usePolygon as no}from"./usePolygon.js";import{useLatest as io}from"ahooks";var so=Object.defineProperty,ro=Object.defineProperties,lo=Object.getOwnPropertyDescriptors,ht=Object.getOwnPropertySymbols,ao=Object.prototype.hasOwnProperty,co=Object.prototype.propertyIsEnumerable,xt=(e,t,i)=>t in e?so(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,L=(e,t)=>{for(var i in t||(t={}))ao.call(t,i)&&xt(e,i,t[i]);if(ht)for(var i of ht(t))co.call(t,i)&&xt(e,i,t[i]);return e},O=(e,t)=>ro(e,lo(t)),rt=(e,t,i)=>new Promise((d,o)=>{var a=u=>{try{c(i.next(u))}catch(h){o(h)}},g=u=>{try{c(i.throw(u))}catch(h){o(h)}},c=u=>u.done?d(u.value):Promise.resolve(u.value).then(a,g);c((i=i.apply(e,t)).next())});const q=5,K=90,mt=.01,y={"3D":"3D",Top:"Top",Side:"Side",Back:"Back"},lt=(e,t,i,d,o)=>{const{x:a,y:g}=V.transferCanvas2World(e,t),{defaultZ:c}=Jt,u={center:{x:a,y:g,z:c},id:e.id},h=d?L(L({},d),u):O(L({},u),{attribute:"",valid:!0});return o&&Object.assign(h,o),h},dt=(e,t,i,d,o,a)=>{let g=e.pointList.map(v=>V.transferCanvas2World(v,t)),c=0,u=1,h={};if(i){const v=i.getSensesPointZAxisInPolygon(g,void 0,a);a&&v.fittedCoordinates.length>0&&(g=v.fittedCoordinates),c=(v.maxZ+v.minZ)/2,u=v.maxZ-v.minZ,h={count:v.zCount}}const[m,I,W]=g,z=B.getLineCenterPoint([m,W]),T=B.getLineLength(m,I),R=B.getLineLength(I,W),E=B.getRadiusFromQuadrangle(e.pointList);d&&(c=d.center.z,u=d.depth);const j={center:{x:z.x,y:z.y,z:c},width:a?R+mt:R,height:a?T+mt:T,depth:u,rotation:E,id:e.id},N=L(d?L(L({},d),j):O(L({},j),{attribute:"",valid:!0}),h);o&&Object.assign(N,o);const F=g.map(v=>V.transferWorld2Canvas(v,t));return{boxParams:N,newPointList:F}},Lt=(e,t,i)=>{const d={x:e.x-t.x,y:e.y-t.y};return O(L({},i),{center:{x:i.center.x-d.x,y:i.center.y,z:i.center.z-d.y}})},yt=(e,t,i,d)=>{const[o,a,g]=e.pointList,[c,u,h]=t.pointList,m=B.getLineCenterPoint([o,g]),I=B.getLineCenterPoint([c,h]),z={x:{x:m.x-I.x,y:m.y-I.y}.x,y:0,z:m.y-I.y},T=B.getLineLength(o,a),R=B.getLineLength(c,u),E=T-R,j=B.getLineLength(a,g),N=B.getLineLength(u,h),F=j-N,{newBoxParams:v}=d.getNewBoxBySideUpdate(z,F,E,i);return v},uo=(e,t,i)=>{const d={x:e.x-t.x,y:e.y-t.y};return O(L({},i),{center:{x:i.center.x,y:i.center.y-d.x,z:i.center.z-d.y}})},po=(e,t,i,d)=>{const[o,a,g]=e.pointList,[c,u,h]=t.pointList,m=B.getLineCenterPoint([o,g]),I=B.getLineCenterPoint([c,h]),z={x:{x:m.x-I.x,y:m.y-I.y}.x,y:0,z:m.y-I.y},T=B.getLineLength(o,a),R=B.getLineLength(c,u),E=T-R,j=B.getLineLength(a,g),N=B.getLineLength(u,h),F=j-N;let{newBoxParams:v}=d.getNewBoxByBackUpdate(z,F,E,i);return v},vt=(e,t,i,d,o)=>{var a;if(!i)return;const{toolInstance:g,pointCloudInstance:c}=i;c.loadPCDFile(d,(a=o==null?void 0:o.radius)!=null?a:K);const{cameraPositionVector:u}=c.updateOrthoCameraBySphere(e,J.Left);c.setInitCameraPosition(u);const{point2d:h,zoom:m}=c.getSphereSidePoint2DCoordinate(e);c.camera.zoom=m,c.camera.updateProjectionMatrix(),c.render(),g.initPosition(),g.zoomChangeOnCenter(m),g.setResult([O(L(L({},t),h),{valid:e.valid,textAttribute:"",attribute:e.attribute})]),g.setSelectedID(t.id)},Bt=(e,t,i,d)=>{if(!i)return;const{pointCloud2dOperation:o,pointCloudInstance:a}=i;a.loadPCDFileByBox(d,e,{width:q,depth:q});const{cameraPositionVector:g}=a.updateOrthoCamera(e,J.Left);a.setInitCameraPosition(g);const{polygon2d:c,zoom:u}=a.getBoxSidePolygon2DCoordinate(e);a.camera.zoom=u,a.camera.updateProjectionMatrix(),a.render(),o.initPosition(),o.zoomChangeOnCenter(u),o.setResultAndSelectedID([{id:t.id,valid:e.valid,pointList:c,textAttribute:"",isRect:!0,attribute:e.attribute}],t.id)},bt=(e,t,i,d,o)=>{var a;if(!i)return;const{toolInstance:g,pointCloudInstance:c}=i;c.loadPCDFile(d,(a=o==null?void 0:o.radius)!=null?a:K);const{cameraPositionVector:u}=c.updateOrthoCameraBySphere(e,J.Back);c.setInitCameraPosition(u);const{point2d:h,zoom:m}=c.getSphereBackPoint2DCoordinate(e);c.camera.zoom=m,c.camera.updateProjectionMatrix(),c.render(),g.initPosition(),g.zoomChangeOnCenter(m),g.setResult([O(L(L({},t),h),{valid:e.valid,textAttribute:"",attribute:e.attribute})]),g.setSelectedID(t.id)},wt=(e,t,i,d)=>{if(!i)return;const{pointCloud2dOperation:o,pointCloudInstance:a}=i;a.loadPCDFileByBox(d,e,{height:q,depth:q});const{cameraPositionVector:g}=a.updateOrthoCamera(e,J.Back);a.setInitCameraPosition(g);const{polygon2d:c,zoom:u}=a.getBoxBackPolygon2DCoordinate(e);a.camera.zoom=u,a.camera.updateProjectionMatrix(),a.render(),o.initPosition(),o.zoomChangeOnCenter(u),o.setResultAndSelectedID([{id:t.id,valid:e.valid,pointList:c,textAttribute:"",isRect:!0,attribute:e.attribute}],t.id)},It=(e,t,i,d)=>{if(!i||!d)return;d.generateSphere(e),d.updateCameraBySphere(e,J.Top),d.render();const{toolInstance:o,pointCloudInstance:a}=i,{point2d:g}=a.getSphereTopPoint2DCoordinate(e),c=[...o.pointList].map(u=>u.id===t.id?O(L(L({},t),g),{valid:e.valid,textAttribute:"",attribute:e.attribute}):u);o.setResult(c),o.setSelectedID(t.id)},at=(e,t,i,d)=>{var o,a;if(!i||!d)return;d.generateBox(e,t.id),d.render();const{pointCloud2dOperation:g,pointCloudInstance:c}=i,{polygon2d:u}=c.getBoxTopPolygon2DCoordinate(e),h=[...g.polygonList],m=h.find(I=>I.id===t.id);m?(m.pointList=u,m.valid=(o=e.valid)!=null?o:!0):h.push({id:t.id,pointList:u,textAttribute:"",isRect:!0,valid:(a=e.valid)!=null?a:!0}),g.setResultAndSelectedID(h,t.id)},go=()=>{const e=Qt(Xt),{topViewInstance:t,sideViewInstance:i,backViewInstance:d,mainViewInstance:o,addPointCloudBox:a,addPointCloudSphere:g,setSelectedIDs:c,selectedIDs:u,pointCloudBoxList:h,pointCloudSphereList:m,hideAttributes:I,setHighlight2DDataList:W,cuboidBoxIn2DView:z,imageSizes:T}=e,{addHistory:R,initHistory:E,pushHistoryUnderUpdatePolygon:j}=eo(),{selectedPolygon:N}=no(),{getPointCloudSphereByID:F,updatePointCloudSphere:v,selectedSphere:Q}=qt(),{currentData:Z,config:S}=Kt(n=>{const{stepList:s,step:p,imgList:r,imgIndex:l}=n.annotation;return{currentData:r[l],config:it(to.getCurrentStepInfo(p,s).config)}}),H=$t(),St=io(z),$=n=>{if(!St.current){const{mappingImgList:s=[]}=Z,p=s.map(r=>oo({pointCloudBox:n,mappingData:r,imageSizes:T}));Object.assign(n,{rects:p.filter(r=>r!==void 0)})}},{selectedBox:_,updateSelectedBox:Dt,updateSelectedBoxes:tt,getPointCloudByID:_t}=Yt({generateRects:$}),ct=_==null?void 0:_.info;if(!t||!i||!d)return{topViewAddSphere:()=>{},topViewAddBox:()=>{},topViewSelectedChanged:()=>{},sideViewUpdateBox:()=>{},backViewUpdateBox:()=>{}};const{pointCloudInstance:ot}=t,Vt=n=>{o==null||o.generateBox(n),o==null||o.controls.update(),o==null||o.render()},Ot=n=>{o==null||o.generateSphere(n),o==null||o.controls.update(),o==null||o.render()},kt=({newPoint:n,size:s,zoom:p,trackConfigurable:r})=>{var l;const f={attribute:(l=t.toolInstance.defaultAttribute)!=null?l:""};r===!0&&Object.assign(f,{trackID:V.getNextTrackID({imgList:[],extraBoxList:[],extraSphereList:m})});const P=lt(n,s,ot,void 0,f);c(n.id);const x=g(P);X(y.Top,n,P,p,x,S),R({newSphereParams:P})},Rt=({polygon:n,size:s,imgList:p,trackConfigurable:r,zoom:l,intelligentFit:f})=>{var P,x;const C={attribute:(P=t.toolInstance.defaultAttribute)!=null?P:""};r===!0&&Object.assign(C,{trackID:V.getNextTrackID({imgList:[],extraBoxList:h,extraSphereList:m})});const D=t==null?void 0:t.toolInstance,w=L({},n);let{boxParams:b,newPointList:A}=dt(w,s,ot,void 0,C,f);b=H(st({tool:nt.PointCloud,dataList:[b],stepConfig:S,action:"viewUpdateBox"}))[0],f&&(A==null?void 0:A.length)&&(w.pointList=A);const k=I.includes(w.attribute);$(b);const G=a(b),et=(x=e==null?void 0:e.polygonList)!=null?x:[];t==null||t.updatePolygonList(G!=null?G:[],et),k?c([]):(c(b.id),D.selection.setSelectedIDs(w.id),M({omitView:y.Top,polygon:w,boxParams:b,zoom:l,newPointCloudBoxList:G}),f&&at(b,w,t,o)),R({newBoxParams:b})},At=n=>{const{boxID:s,imageName:p,width:r,height:l,x:f,y:P}=n,x=h.find(C=>C.id===s);if(x==null?void 0:x.rects){const{rects:C=[]}=x,D=C.find(w=>w.imageName===p);if(D){let w=C;const b=O(L({},D),{width:r,height:l,x:f,y:P});w=C.map(k=>k===D?b:k);const A=O(L({},x),{rects:w}),U=h.map(k=>k===x?A:k);return t==null||t.updatePolygonList(U!=null?U:[]),U}}},Ut=({newSelectedBox:n,newPointCloudList:s,newSelectedSphere:p,newSphereList:r})=>{var l;const f=t==null?void 0:t.toolInstance;if(!(u.length===0||!f)){if(n||(_==null?void 0:_.info)){const P=n!=null?n:_==null?void 0:_.info;(l=f==null?void 0:f.selection)==null||l.setSelectedIDs(u[0]);const x=f.selectedPolygon;if(u.length===1&&P){M({omitView:y.Top,polygon:x,boxParams:P,newPointCloudBoxList:s});return}}if((p||Q)&&u.length===1){const P=p!=null?p:Q;f.setSelectedID(u[0]);const x=f.selectedPoint;P&&X(y.Top,x,P,void 0,r,S)}}},ut=(n,s,p)=>{if(ct){let r,l;switch(p){case y.Back:r=po;break;case y.Side:r=yt;break;default:r=yt;break}if(l=r(n,s,ct,i.pointCloudInstance),o){const{count:D}=o.getSensesPointZAxisInPolygon(Mt(l).polygonPointList,[l.center.z-l.depth/2,l.center.z+l.depth/2]);l=O(L({},l),{count:D})}const P=H(st({tool:nt.PointCloud,dataList:[l],stepConfig:S,action:"viewUpdateBox"}))[0],x=l.valid!==P.valid;l=P;const C=Dt(l);return l=C.find(D=>D.id===l.id),M({omitView:x?void 0:p,polygon:n,boxParams:l,newPointCloudBoxList:C}),C}},pt=(n,s,p)=>{if(Q){let r,l;switch(p){case y.Back:r=uo;break;case y.Side:r=Lt;break;default:r=Lt;break}l=r(n,s,Q);const f=v(l);return X(p,n,l,void 0,f,S),f}},zt=(n,s)=>{pt(n,s,y.Side)},Tt=(n,s)=>{pt(n,s,y.Back)},jt=(n,s)=>{ut(n,s,y.Side)},Nt=(n,s)=>{ut(n,s,y.Back)},Et=(n,s)=>{const p=F(n.id),r=lt(n,s,ot,p),l=v(r);X(y.Top,n,r,void 0,l,S)},Ft=(n,s)=>{if(N){const r=L({},n[0].newPolygon);r.pointList=r.pointList.map(l=>V.transferCanvas2World(l,s)),j(r);return}let p=n.map(({newPolygon:r})=>{const l=_t(r.id),{boxParams:f}=dt(r,s,t.pointCloudInstance,l);return f});if(p=H(st({tool:nt.PointCloud,dataList:p,stepConfig:S,action:"viewUpdateBox"})),p.length===1){const{newPolygon:r}=n[0],l=tt(p);M({polygon:r,boxParams:p[0],newPointCloudBoxList:l})}else{const r=tt(p);r&&e.syncAllViewPointCloudColor(r)}},Ht=n=>{var s,p,r,l,f;if(_){const P=Number(n.widthDefault),x=Number(n.depthDefault),C=Number(n.heightDefault),D=_==null?void 0:_.info.trackID,b=((s=t==null?void 0:t.toolInstance)==null?void 0:s.polygonList).find(Y=>(Y==null?void 0:Y.trackID)===D),A={width:(r=(p=t==null?void 0:t.toolInstance)==null?void 0:p.basicImgInfo)==null?void 0:r.width,height:(f=(l=t==null?void 0:t.toolInstance)==null?void 0:l.basicImgInfo)==null?void 0:f.height},U=b.pointList.map(Y=>V.transferCanvas2World(Y,A)),k=B.getModifiedRectangleCoordinates(U,C,P),G=k[0],et=k[2],gt=B.getLineCenterPoint([G,et]),Wt=_.info.center.z-_.info.depth/2,ft=O(L({},_.info),{center:{x:gt.x,y:gt.y,z:Wt+x/2},width:P,height:C,depth:x,valid:!0}),Zt=tt([ft]);M({omitView:y["3D"],polygon:b,boxParams:ft,newPointCloudBoxList:Zt})}},X=(n,s,p,r,l,f)=>rt(void 0,null,function*(){const P=Z==null?void 0:Z.url,x={[y.Side]:()=>{vt(p,s,i,P,f)},[y.Back]:()=>{d&&bt(p,s,d,P,f)},[y.Top]:()=>{It(p,s,t,o)}};Object.keys(x).forEach(C=>{C!==n&&x[C]()}),r&&(o==null||o.updateCameraZoom(r)),Ot(p)}),M=n=>rt(void 0,null,function*(){const{omitView:s,polygon:p,boxParams:r,zoom:l,newPointCloudBoxList:f}=n,P=Z==null?void 0:Z.url;f&&(yield e.syncAllViewPointCloudColor(f));const x={[y.Side]:()=>{Bt(r,p,i,P)},[y.Back]:()=>{d&&wt(r,p,d,P)},[y.Top]:()=>{at(r,p,t,o)}};Object.keys(x).forEach(C=>{C!==s&&x[C]()}),l&&(o==null||o.updateCameraZoom(l)),Vt(r)});return{topViewAddSphere:kt,topViewAddBox:Rt,topViewSelectedChanged:Ut,topViewUpdatePoint:Et,sideViewUpdatePoint:zt,backViewUpdatePoint:Tt,topViewUpdateBox:Ft,sideViewUpdateBox:jt,backViewUpdateBox:Nt,pointCloudBoxListUpdated:n=>{t.updatePolygonList(n),o==null||o.generateBoxes(n)},initPointCloud3d:n=>{if(!o)return;const s=V.getDefaultOrthographicParams(n);o.initOrthographicCamera(s),o.initRenderer(),o.render()},updatePointCloudData:(...n)=>rt(void 0,[...n],function*(s=Z){var p,r,l,f,P,x;if(!(s==null?void 0:s.url)||!o)return;W([]),Ct(H,!0),Pt(H,!0),yield o.loadPCDFile(s.url,(p=S==null?void 0:S.radius)!=null?p:K),o==null||o.clearAllBox(),o==null||o.clearAllSphere();let C=[],D=[],w=[],b=[];o.updateTopCamera();const A=(l=(r=it(s.result))==null?void 0:r.valid)!=null?l:!0;if(e.setPointCloudValid(A),(f=e.sideViewInstance)==null||f.clearAllData(),(P=e.backViewInstance)==null||P.clearAllData(),s.result){if(C=V.getBoxParamsFromResultList(s.result),(C==null?void 0:C.length)>0&&s.isPreResult&&(S==null?void 0:S.lowerLimitPointsNumInBox)>0){C=yield o==null?void 0:o.filterPreResult(s.url,S,C);const U=it(s.result);U[Gt].result=C,s.result=JSON.stringify(U),e.setPointCloudResult(C)}w=V.getPolygonListFromResultList(s.result),D=V.getLineListFromResultList(s.result),b=V.getSphereParamsFromResultList(s.result),t.updateData(s.url,s.result,{radius:(x=S==null?void 0:S.radius)!=null?x:K}),o==null||o.generateBoxes(C),o==null||o.generateSpheres(b),yield e.syncAllViewPointCloudColor(C,[])}E({pointCloudBoxList:C,polygonList:w,lineList:D,pointCloudSphereList:b}),Ct(H,!1),Pt(H,!1)}),updateViewsByDefaultSize:Ht,generateRects:$,update2DViewRect:At}};export{bt as syncBackViewByPoint,vt as syncSideViewByPoint,It as syncTopViewByPoint,wt as synchronizeBackView,Bt as synchronizeSideView,at as synchronizeTopView,lt as topViewPoint2PointCloud,dt as topViewPolygon2PointCloud,go as usePointCloudViews};
@@ -1 +1 @@
1
- import{CaretUpOutlined as w,CaretDownOutlined as k}from"@ant-design/icons";import t,{useState as I,useEffect as K}from"react";import d from"./index.module.scss.js";import{cKeyCode as L,CommonToolUtils as x}from"@labelbee/lb-annotation";const E=L.default,m=[.5,1,1.5,2,4,6,8,16],A=[.5,.75,1,1.25,1.5,1.75,2];var c;(function(e){e[e.Video=0]="Video",e[e.Audio=1]="Audio"})(c||(c={}));var u;(function(e){e[e.Increase=0]="Increase",e[e.Reduce=1]="Reduce"})(u||(u={}));const f={[0]:m,[1]:A},S=e=>{const{onChange:C,playerType:_}=e,o=f[_],P=o.slice(-1)[0],R=o[0],[s,p]=I(1),r=n=>{const a=n===0?1:-1;if(a===1&&s===P||a===-1&&s===R)return;const y=o.findIndex(D=>D===s)+a,l=o[y];p(l),C(l)},i=n=>{!x.hotkeyFilter(n)||(n.keyCode===E.Up&&r(0),n.keyCode===E.Down&&r(1))};return K(()=>(window.addEventListener("keydown",i),()=>window.removeEventListener("keydown",i))),t.createElement("div",{className:d.speedControllerWrap},t.createElement("span",{style:{display:"flex",alignItems:"center"}},t.createElement("span",{style:{fontSize:12}},"\u500D\u901F"),s,"x"),t.createElement("span",{className:d.speedController},t.createElement(w,{onClick:()=>r(0)}),t.createElement(k,{onClick:()=>r(1)})))};export{A as AUDIO_PLAYBACK_RATE_SPEED,c as EPlayerType,f as PLAYER_TYPE_RATE_SPEED,m as VIDEO_PLAYBACK_RATE_SPEED,S as default};
1
+ import{CaretUpOutlined as k,CaretDownOutlined as x}from"@ant-design/icons";import t,{useState as I,useEffect as K}from"react";import d from"./index.module.scss.js";import{cKeyCode as L,CommonToolUtils as S}from"@labelbee/lb-annotation";import{useTranslation as T}from"react-i18next";const E=L.default,m=[.5,1,1.5,2,4,6,8,16],A=[.5,.75,1,1.25,1.5,1.75,2];var c;(function(e){e[e.Video=0]="Video",e[e.Audio=1]="Audio"})(c||(c={}));var f;(function(e){e[e.Increase=0]="Increase",e[e.Reduce=1]="Reduce"})(f||(f={}));const u={[0]:m,[1]:A},Y=e=>{const{onChange:C,playerType:_}=e,{t:p}=T(),o=u[_],P=o.slice(-1)[0],R=o[0],[s,y]=I(1),r=n=>{const a=n===0?1:-1;if(a===1&&s===P||a===-1&&s===R)return;const w=o.findIndex(D=>D===s)+a,l=o[w];y(l),C(l)},i=n=>{!S.hotkeyFilter(n)||(n.keyCode===E.Up&&r(0),n.keyCode===E.Down&&r(1))};return K(()=>(window.addEventListener("keydown",i),()=>window.removeEventListener("keydown",i))),t.createElement("div",{className:d.speedControllerWrap},t.createElement("span",{style:{display:"flex",alignItems:"center"}},t.createElement("span",{style:{fontSize:12}},p("Speed")),s,"x"),t.createElement("span",{className:d.speedController},t.createElement(k,{onClick:()=>r(0)}),t.createElement(x,{onClick:()=>r(1)})))};export{A as AUDIO_PLAYBACK_RATE_SPEED,c as EPlayerType,u as PLAYER_TYPE_RATE_SPEED,m as VIDEO_PLAYBACK_RATE_SPEED,Y as default};