@labelbee/lb-components 1.6.0-alpha.9 → 1.6.0

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 (108) hide show
  1. package/dist/App.js +1 -1
  2. package/dist/components/AnnotationView/index.js +1 -1
  3. package/dist/components/AnnotationView/pointCloudAnnotationView.js +1 -1
  4. package/dist/components/customResizeHook/index.js +1 -1
  5. package/dist/components/pointCloudView/PointCloud2DView.js +1 -1
  6. package/dist/components/pointCloudView/PointCloudBackView.js +1 -1
  7. package/dist/components/pointCloudView/PointCloudListener.js +1 -1
  8. package/dist/components/pointCloudView/PointCloudTopView.js +1 -1
  9. package/dist/components/pointCloudView/hooks/useBoxes.js +1 -1
  10. package/dist/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
  11. package/dist/components/pointCloudView/hooks/useRotate.js +1 -1
  12. package/dist/components/pointCloudView/hooks/useSingleBox.js +1 -1
  13. package/dist/hooks/annotation.js +1 -1
  14. package/dist/hooks/useRefCache.js +1 -0
  15. package/dist/index.css +11 -1
  16. package/dist/store/Actions.js +1 -1
  17. package/dist/store/annotation/actionCreators.js +1 -1
  18. package/dist/store/annotation/map.js +1 -1
  19. package/dist/store/annotation/reducer.js +1 -1
  20. package/dist/types/App.d.ts +2 -0
  21. package/dist/types/components/AnnotationView/index.d.ts +2 -0
  22. package/dist/types/components/pointCloudView/hooks/usePointCloudViews.d.ts +1 -1
  23. package/dist/types/components/pointCloudView/hooks/useSingleBox.d.ts +1 -0
  24. package/dist/types/hooks/annotation.d.ts +1 -0
  25. package/dist/types/hooks/useRefCache.d.ts +8 -0
  26. package/dist/types/store/Actions.d.ts +2 -0
  27. package/dist/types/store/annotation/actionCreators.d.ts +4 -2
  28. package/dist/types/store/annotation/types.d.ts +1 -0
  29. package/dist/types/views/MainView/annotationTips/index.d.ts +3 -2
  30. package/dist/types/views/MainView/toolFooter/FooterTips/ToolHotKey/scribble/index.d.ts +6 -0
  31. package/dist/views/MainView/annotationTips/index.js +1 -1
  32. package/dist/views/MainView/index.js +1 -1
  33. package/dist/views/MainView/sidebar/GeneralOperation/ActionsConfirm.js +1 -1
  34. package/dist/views/MainView/sidebar/GeneralOperation/index.js +1 -1
  35. package/dist/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
  36. package/dist/views/MainView/sidebar/ScribbleSidebar/index.js +1 -1
  37. package/dist/views/MainView/sidebar/index.js +1 -1
  38. package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js +1 -1
  39. package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.js +1 -1
  40. package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/scribble/index.js +1 -0
  41. package/dist/views/MainView/toolFooter/index.js +1 -1
  42. package/es/App.js +1 -1
  43. package/es/App.js.map +1 -1
  44. package/es/assets/annotation/toolHotKeyIcon/icon_copyBackwardResult.svg.js +4 -0
  45. package/es/assets/annotation/toolHotKeyIcon/icon_copyBackwardResult.svg.js.map +1 -0
  46. package/es/components/AnnotationView/index.js +1 -1
  47. package/es/components/AnnotationView/index.js.map +1 -1
  48. package/es/components/AnnotationView/pointCloudAnnotationView.js +1 -1
  49. package/es/components/AnnotationView/pointCloudAnnotationView.js.map +1 -1
  50. package/es/components/customResizeHook/index.js +1 -1
  51. package/es/components/customResizeHook/index.js.map +1 -1
  52. package/es/components/pointCloudView/PointCloud2DView.js +1 -1
  53. package/es/components/pointCloudView/PointCloud2DView.js.map +1 -1
  54. package/es/components/pointCloudView/PointCloudBackView.js +1 -1
  55. package/es/components/pointCloudView/PointCloudBackView.js.map +1 -1
  56. package/es/components/pointCloudView/PointCloudListener.js +1 -1
  57. package/es/components/pointCloudView/PointCloudListener.js.map +1 -1
  58. package/es/components/pointCloudView/PointCloudTopView.js +1 -1
  59. package/es/components/pointCloudView/PointCloudTopView.js.map +1 -1
  60. package/es/components/pointCloudView/hooks/useBoxes.js +1 -1
  61. package/es/components/pointCloudView/hooks/useBoxes.js.map +1 -1
  62. package/es/components/pointCloudView/hooks/useConfig.js +19 -0
  63. package/es/components/pointCloudView/hooks/useConfig.js.map +1 -0
  64. package/es/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
  65. package/es/components/pointCloudView/hooks/usePointCloudViews.js.map +1 -1
  66. package/es/components/pointCloudView/hooks/useRotate.js +1 -1
  67. package/es/components/pointCloudView/hooks/useRotate.js.map +1 -1
  68. package/es/components/pointCloudView/hooks/useSingleBox.js +1 -1
  69. package/es/components/pointCloudView/hooks/useSingleBox.js.map +1 -1
  70. package/es/hooks/annotation.js +1 -1
  71. package/es/hooks/annotation.js.map +1 -1
  72. package/es/hooks/useConfig.js +18 -0
  73. package/es/hooks/useConfig.js.map +1 -0
  74. package/es/hooks/useRefCache.js +1 -0
  75. package/es/hooks/useRefCache.js.map +1 -0
  76. package/es/index.css +11 -1
  77. package/es/store/Actions.js +1 -1
  78. package/es/store/Actions.js.map +1 -1
  79. package/es/store/annotation/actionCreators.js +1 -1
  80. package/es/store/annotation/actionCreators.js.map +1 -1
  81. package/es/store/annotation/map.js +1 -1
  82. package/es/store/annotation/map.js.map +1 -1
  83. package/es/store/annotation/reducer.js +1 -1
  84. package/es/store/annotation/reducer.js.map +1 -1
  85. package/es/utils/dom.js.map +1 -1
  86. package/es/views/MainView/annotationTips/index.js +1 -1
  87. package/es/views/MainView/annotationTips/index.js.map +1 -1
  88. package/es/views/MainView/index.js +1 -1
  89. package/es/views/MainView/index.js.map +1 -1
  90. package/es/views/MainView/sidebar/GeneralOperation/ActionsConfirm.js +1 -1
  91. package/es/views/MainView/sidebar/GeneralOperation/ActionsConfirm.js.map +1 -1
  92. package/es/views/MainView/sidebar/GeneralOperation/index.js +1 -1
  93. package/es/views/MainView/sidebar/GeneralOperation/index.js.map +1 -1
  94. package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
  95. package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js.map +1 -1
  96. package/es/views/MainView/sidebar/ScribbleSidebar/index.js +1 -1
  97. package/es/views/MainView/sidebar/ScribbleSidebar/index.js.map +1 -1
  98. package/es/views/MainView/sidebar/index.js +1 -1
  99. package/es/views/MainView/sidebar/index.js.map +1 -1
  100. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js +1 -1
  101. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js.map +1 -1
  102. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.js +1 -1
  103. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.js.map +1 -1
  104. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/scribble/index.js +1 -0
  105. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/scribble/index.js.map +1 -0
  106. package/es/views/MainView/toolFooter/index.js +1 -1
  107. package/es/views/MainView/toolFooter/index.js.map +1 -1
  108. package/package.json +4 -4
@@ -1 +1 @@
1
- import e from"react";import{Tooltip as n}from"antd";import{prefix as a}from"../../../constant/index.js";const r=({tips:t})=>t?e.createElement("div",{className:`${a}-tips`},e.createElement(n,{placement:"bottomRight",title:t},e.createElement("span",{className:`${a}-tips__path`},t))):null;export{r as default};
1
+ import t from"react";import{Tooltip as l}from"antd";import{prefix as a}from"../../../constant/index.js";const m=({path:n,tips:e})=>!n&&!e?null:t.createElement("div",{className:`${a}-tips`},t.createElement(l,{placement:"bottomRight",title:e},t.createElement("span",{className:`${a}-tips__leftContent`,title:e},e)),t.createElement(l,{placement:"bottomRight",title:n},t.createElement("span",{className:`${a}-tips__path`},n)));export{m as default};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/views/MainView/annotationTips/index.tsx"],"sourcesContent":["/*\n * Annotation Tips Showing\n * @Author: Laoluo luozefeng@sensetime.com\n * @Date: 2022-05-11 17:15:30\n * @LastEditors: Laoluo luozefeng@sensetime.com\n * @LastEditTime: 2022-05-12 19:34:32\n */\nimport React from 'react';\nimport { Tooltip } from 'antd';\nimport { prefix } from '@/constant';\n\ninterface IProps {\n tips: string;\n}\n\nconst AnnotationTips = ({ tips }: IProps) => {\n if (!tips) {\n return null;\n }\n\n return (\n <div className={`${prefix}-tips`}>\n <Tooltip placement='bottomRight' title={tips}>\n <span className={`${prefix}-tips__path`}>{tips}</span>\n </Tooltip>\n </div>\n );\n};\n\nexport default AnnotationTips;\n"],"names":[],"mappings":";;;;AAeM,MAAA,cAAA,GAAiB,CAAC,CAAE,IAAmB,CAAA,KAAA;AAC3C,EAAA,IAAI,CAAC,IAAM,EAAA;AACT,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA;AAGT,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,WAAW,CAAG,EAAA,MAAA,CAAA,KAAA,CAAA;AAAA,GAAA,sCAChB,OAAD,EAAA;AAAA,IAAS,SAAU,EAAA,aAAA;AAAA,IAAc,KAAO,EAAA,IAAA;AAAA,GAAA,sCACrC,MAAD,EAAA;AAAA,IAAM,WAAW,CAAG,EAAA,MAAA,CAAA,WAAA,CAAA;AAAA,GAAsB,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/views/MainView/annotationTips/index.tsx"],"sourcesContent":["/*\n * Annotation Tips Showing\n * @Author: Laoluo luozefeng@sensetime.com\n * @Date: 2022-05-11 17:15:30\n * @LastEditors: Laoluo luozefeng@sensetime.com\n * @LastEditTime: 2022-05-12 19:34:32\n */\nimport React from 'react';\nimport { Tooltip } from 'antd';\nimport { prefix } from '@/constant';\n\ninterface IProps {\n tips?: string;\n path?: string;\n}\n\nconst AnnotationTips = ({ path, tips }: IProps) => {\n if (!path && !tips) {\n return null;\n }\n\n return (\n <div className={`${prefix}-tips`}>\n <Tooltip placement='bottomRight' title={tips}>\n <span className={`${prefix}-tips__leftContent`} title={tips}>\n {tips}\n </span>\n </Tooltip>\n <Tooltip placement='bottomRight' title={path}>\n <span className={`${prefix}-tips__path`}>{path}</span>\n </Tooltip>\n </div>\n );\n};\n\nexport default AnnotationTips;\n"],"names":[],"mappings":";;;;AAgBA,MAAM,cAAiB,GAAA,CAAC,CAAE,IAAA,EAAM,IAAmB,CAAA,KAAA;AACjD,EAAI,IAAA,CAAC,IAAQ,IAAA,CAAC,IAAM,EAAA;AAClB,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA;AAGT,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,WAAW,CAAG,EAAA,MAAA,CAAA,KAAA,CAAA;AAAA,GAAA,sCAChB,OAAD,EAAA;AAAA,IAAS,SAAU,EAAA,aAAA;AAAA,IAAc,KAAO,EAAA,IAAA;AAAA,GAAA,sCACrC,MAAD,EAAA;AAAA,IAAM,WAAW,CAAG,EAAA,MAAA,CAAA,kBAAA,CAAA;AAAA,IAA4B,KAAO,EAAA,IAAA;AAAA,GACpD,EAAA,IAAA,CAAA,CAAA,sCAGJ,OAAD,EAAA;AAAA,IAAS,SAAU,EAAA,aAAA;AAAA,IAAc,KAAO,EAAA,IAAA;AAAA,GAAA,sCACrC,MAAD,EAAA;AAAA,IAAM,WAAW,CAAG,EAAA,MAAA,CAAA,WAAA,CAAA;AAAA,GAAsB,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
@@ -1 +1 @@
1
- import{ViewportProvider as _}from"../../components/customResizeHook/index.js";import{prefix as y}from"../../constant/index.js";import{Spin as E}from"antd";import{Layout as s}from"antd/es";import o from"react";import x from"./annotationOperation/index.js";import g from"./annotationTips/index.js";import h from"./sidebar/index.js";import c from"./toolFooter/index.js";import j from"./toolHeader/index.js";import{getStepConfig as w}from"../../store/annotation/reducer.js";import P from"../../components/videoAnnotate/index.js";import{connect as T}from"react-redux";import u from"../../utils/ToolUtils.js";import N from"../../components/pointCloudView/index.js";import{getClassName as C}from"../../utils/dom.js";import{classnames as O}from"../../utils/index.js";import{LabelBeeContext as V}from"../../store/ctx.js";var A=Object.defineProperty,f=Object.getOwnPropertySymbols,S=Object.prototype.hasOwnProperty,b=Object.prototype.propertyIsEnumerable,v=(e,t,n)=>t in e?A(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,m=(e,t)=>{for(var n in t||(t={}))S.call(t,n)&&v(e,n,t[n]);if(f)for(var n of f(t))b.call(t,n)&&v(e,n,t[n]);return e};const{Sider:I,Content:$}=s,d=`${y}-layout`,F=e=>{var t;return o.createElement(o.Fragment,null,e.showTips===!0&&o.createElement(g,{tips:e.path}),o.createElement(x,m({},e)),o.createElement(c,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer}))},L=e=>{var t;return o.createElement(o.Fragment,null,o.createElement(N,null),o.createElement(c,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer}))},p=e=>{var t;const{stepList:n,step:l}=e,a=(t=w(n,l))==null?void 0:t.tool,i=u.isVideoTool(a),r=u.isPointCloudTool(a);return i?o.createElement(P,m({},e)):r?o.createElement(L,m({},e)):o.createElement(F,m({},e))},B=e=>{var t,n,l,a,i;const r=(n=(t=e.style)==null?void 0:t.sider)==null?void 0:n.width;return o.createElement(_,null,o.createElement(E,{spinning:e.loading},o.createElement(s,{className:O([d,e.className]),style:(l=e.style)==null?void 0:l.layout},o.createElement("header",{className:`${d}__header`,style:(a=e.style)==null?void 0:a.header},o.createElement(j,{header:e==null?void 0:e.header,headerName:e.headerName,goBack:e.goBack,exportData:e.exportData})),o.createElement(s,{className:C("layout","container")},e==null?void 0:e.leftSider,o.createElement($,{className:`${d}__content`},o.createElement(p,m({},e))),o.createElement(I,{className:`${d}__side`,width:r||240,style:(i=e.style)==null?void 0:i.sider},o.createElement(h,{sider:e==null?void 0:e.sider}))))))},H=({annotation:e})=>{var t,n,l;const{imgList:a,loading:i}=e,r=(t=a[e.imgIndex])!=null?t:{};return{path:(l=(n=r==null?void 0:r.path)!=null?n:r==null?void 0:r.url)!=null?l:"",loading:i}};var D=T(H,null,null,{context:V})(B);export{D as default};
1
+ import{ViewportProvider as _}from"../../components/customResizeHook/index.js";import{prefix as y}from"../../constant/index.js";import{Spin as E}from"antd";import{Layout as s}from"antd/es";import o from"react";import x from"./annotationOperation/index.js";import g from"./annotationTips/index.js";import h from"./sidebar/index.js";import c from"./toolFooter/index.js";import j from"./toolHeader/index.js";import{getStepConfig as w}from"../../store/annotation/reducer.js";import P from"../../components/videoAnnotate/index.js";import{connect as T}from"react-redux";import u from"../../utils/ToolUtils.js";import N from"../../components/pointCloudView/index.js";import{getClassName as C}from"../../utils/dom.js";import{classnames as O}from"../../utils/index.js";import{LabelBeeContext as V}from"../../store/ctx.js";var A=Object.defineProperty,f=Object.getOwnPropertySymbols,S=Object.prototype.hasOwnProperty,b=Object.prototype.propertyIsEnumerable,v=(e,t,n)=>t in e?A(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,m=(e,t)=>{for(var n in t||(t={}))S.call(t,n)&&v(e,n,t[n]);if(f)for(var n of f(t))b.call(t,n)&&v(e,n,t[n]);return e};const{Sider:I,Content:$}=s,d=`${y}-layout`,F=e=>{var t;return o.createElement(o.Fragment,null,e.showTips===!0&&o.createElement(g,{path:e.path,tips:e.tips}),o.createElement(x,m({},e)),o.createElement(c,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer}))},L=e=>{var t;return o.createElement(o.Fragment,null,o.createElement(N,null),o.createElement(c,{style:(t=e.style)==null?void 0:t.footer,mode:e.mode,footer:e==null?void 0:e.footer}))},p=e=>{var t;const{stepList:n,step:l}=e,a=(t=w(n,l))==null?void 0:t.tool,i=u.isVideoTool(a),r=u.isPointCloudTool(a);return i?o.createElement(P,m({},e)):r?o.createElement(L,m({},e)):o.createElement(F,m({},e))},B=e=>{var t,n,l,a,i;const r=(n=(t=e.style)==null?void 0:t.sider)==null?void 0:n.width;return o.createElement(_,null,o.createElement(E,{spinning:e.loading},o.createElement(s,{className:O([d,e.className]),style:(l=e.style)==null?void 0:l.layout},o.createElement("header",{className:`${d}__header`,style:(a=e.style)==null?void 0:a.header},o.createElement(j,{header:e==null?void 0:e.header,headerName:e.headerName,goBack:e.goBack,exportData:e.exportData})),o.createElement(s,{className:C("layout","container")},e==null?void 0:e.leftSider,o.createElement($,{className:`${d}__content`},o.createElement(p,m({},e))),o.createElement(I,{className:`${d}__side`,width:r||240,style:(i=e.style)==null?void 0:i.sider},o.createElement(h,{sider:e==null?void 0:e.sider}))))))},H=({annotation:e})=>{var t,n,l;const{imgList:a,loading:i}=e,r=(t=a[e.imgIndex])!=null?t:{};return{path:(l=(n=r==null?void 0:r.path)!=null?n:r==null?void 0:r.url)!=null?l:"",loading:i}};var D=T(H,null,null,{context:V})(B);export{D as default};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/views/MainView/index.tsx"],"sourcesContent":["import { AppProps } from '@/App';\nimport { ViewportProvider } from '@/components/customResizeHook';\nimport { prefix } from '@/constant';\nimport { Spin } from 'antd';\nimport { Layout } from 'antd/es';\nimport _ from 'lodash';\nimport React from 'react';\nimport AnnotationOperation from './annotationOperation';\nimport AnnotationTips from './annotationTips';\nimport Sidebar from './sidebar';\nimport ToolFooter from './toolFooter';\nimport ToolHeader from './toolHeader';\nimport { getStepConfig } from '@/store/annotation/reducer';\n\nimport VideoAnnotate from '@/components/videoAnnotate';\nimport { AppState } from '@/store';\nimport { connect } from 'react-redux';\nimport ToolUtils from '@/utils/ToolUtils';\nimport PointCloudView from '@/components/pointCloudView';\nimport { getClassName } from '@/utils/dom';\nimport { classnames } from '@/utils';\nimport { LabelBeeContext } from '@/store/ctx';\n\ninterface IProps {\n path: string;\n loading: boolean;\n}\n\nconst { Sider, Content } = Layout;\n\nconst layoutCls = `${prefix}-layout`;\n\nconst ImageAnnotate: React.FC<AppProps & IProps> = (props) => {\n return (\n <>\n {props.showTips === true && <AnnotationTips tips={props.path} />}\n <AnnotationOperation {...props} />\n <ToolFooter style={props.style?.footer} mode={props.mode} footer={props?.footer} />\n </>\n );\n};\n\nconst PointCloudAnnotate: React.FC<AppProps & IProps> = (props) => {\n return (\n <>\n <PointCloudView />\n <ToolFooter style={props.style?.footer} mode={props.mode} footer={props?.footer} />\n </>\n );\n};\n\nconst AnnotatedArea: React.FC<AppProps & IProps> = (props) => {\n const { stepList, step } = props;\n const currentToolName = getStepConfig(stepList, step)?.tool;\n const isVideoTool = ToolUtils.isVideoTool(currentToolName);\n const isPointCloudTool = ToolUtils.isPointCloudTool(currentToolName);\n\n if (isVideoTool) {\n return <VideoAnnotate {...props} />;\n }\n\n if (isPointCloudTool) {\n return <PointCloudAnnotate {...props} />;\n }\n\n return <ImageAnnotate {...props} />;\n};\n\nconst MainView: React.FC<AppProps & IProps> = (props) => {\n const siderWidth = props.style?.sider?.width;\n\n return (\n <ViewportProvider>\n <Spin spinning={props.loading}>\n <Layout className={classnames([layoutCls, props.className])} style={props.style?.layout}>\n <header className={`${layoutCls}__header`} style={props.style?.header}>\n <ToolHeader\n header={props?.header}\n headerName={props.headerName}\n goBack={props.goBack}\n exportData={props.exportData}\n />\n </header>\n\n <Layout className={getClassName('layout', 'container')}>\n {props?.leftSider}\n <Content className={`${layoutCls}__content`}>\n <AnnotatedArea {...props} />\n </Content>\n <Sider\n className={`${layoutCls}__side`}\n width={siderWidth ? siderWidth : 240}\n style={props.style?.sider}\n >\n <Sidebar sider={props?.sider} />\n </Sider>\n </Layout>\n </Layout>\n </Spin>\n </ViewportProvider>\n );\n};\n\nconst mapStateToProps = ({ annotation }: AppState) => {\n const { imgList, loading } = annotation;\n const imgInfo = imgList[annotation.imgIndex] ?? {};\n return {\n path: imgInfo?.path ?? imgInfo?.url ?? '', // 将当前路径的数据注入\n loading,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(MainView);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/views/MainView/index.tsx"],"sourcesContent":["import { AppProps } from '@/App';\nimport { ViewportProvider } from '@/components/customResizeHook';\nimport { prefix } from '@/constant';\nimport { Spin } from 'antd';\nimport { Layout } from 'antd/es';\nimport _ from 'lodash';\nimport React from 'react';\nimport AnnotationOperation from './annotationOperation';\nimport AnnotationTips from './annotationTips';\nimport Sidebar from './sidebar';\nimport ToolFooter from './toolFooter';\nimport ToolHeader from './toolHeader';\nimport { getStepConfig } from '@/store/annotation/reducer';\n\nimport VideoAnnotate from '@/components/videoAnnotate';\nimport { AppState } from '@/store';\nimport { connect } from 'react-redux';\nimport ToolUtils from '@/utils/ToolUtils';\nimport PointCloudView from '@/components/pointCloudView';\nimport { getClassName } from '@/utils/dom';\nimport { classnames } from '@/utils';\nimport { LabelBeeContext } from '@/store/ctx';\n\ninterface IProps {\n path: string;\n loading: boolean;\n}\n\nconst { Sider, Content } = Layout;\n\nconst layoutCls = `${prefix}-layout`;\n\nconst ImageAnnotate: React.FC<AppProps & IProps> = (props) => {\n return (\n <>\n {props.showTips === true && <AnnotationTips path={props.path} tips={props.tips} />}\n <AnnotationOperation {...props} />\n <ToolFooter style={props.style?.footer} mode={props.mode} footer={props?.footer} />\n </>\n );\n};\n\nconst PointCloudAnnotate: React.FC<AppProps & IProps> = (props) => {\n return (\n <>\n <PointCloudView />\n <ToolFooter style={props.style?.footer} mode={props.mode} footer={props?.footer} />\n </>\n );\n};\n\nconst AnnotatedArea: React.FC<AppProps & IProps> = (props) => {\n const { stepList, step } = props;\n const currentToolName = getStepConfig(stepList, step)?.tool;\n const isVideoTool = ToolUtils.isVideoTool(currentToolName);\n const isPointCloudTool = ToolUtils.isPointCloudTool(currentToolName);\n\n if (isVideoTool) {\n return <VideoAnnotate {...props} />;\n }\n\n if (isPointCloudTool) {\n return <PointCloudAnnotate {...props} />;\n }\n\n return <ImageAnnotate {...props} />;\n};\n\nconst MainView: React.FC<AppProps & IProps> = (props) => {\n const siderWidth = props.style?.sider?.width;\n\n return (\n <ViewportProvider>\n <Spin spinning={props.loading}>\n <Layout className={classnames([layoutCls, props.className])} style={props.style?.layout}>\n <header className={`${layoutCls}__header`} style={props.style?.header}>\n <ToolHeader\n header={props?.header}\n headerName={props.headerName}\n goBack={props.goBack}\n exportData={props.exportData}\n />\n </header>\n\n <Layout className={getClassName('layout', 'container')}>\n {props?.leftSider}\n <Content className={`${layoutCls}__content`}>\n <AnnotatedArea {...props} />\n </Content>\n <Sider\n className={`${layoutCls}__side`}\n width={siderWidth ? siderWidth : 240}\n style={props.style?.sider}\n >\n <Sidebar sider={props?.sider} />\n </Sider>\n </Layout>\n </Layout>\n </Spin>\n </ViewportProvider>\n );\n};\n\nconst mapStateToProps = ({ annotation }: AppState) => {\n const { imgList, loading } = annotation;\n const imgInfo = imgList[annotation.imgIndex] ?? {};\n return {\n path: imgInfo?.path ?? imgInfo?.url ?? '', // 将当前路径的数据注入\n loading,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(MainView);\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import t,{useState as s}from"react";import{Col as i,Popconfirm as u}from"antd";import{useTranslation as o}from"react-i18next";const p=({info:e})=>{const{t:r}=o();return e.key.startsWith("sure")?t.createElement("div",{key:e.key},`${r("ConfirmTo")}${e.name.slice(0)}\uFF1F`):t.createElement("span",null,e.name)},E=({icon:e})=>typeof e=="string"?t.createElement("img",{width:23,height:25,src:e}):e,k=({allOperation:e})=>{const[r,a]=s(null),{t:c}=o(),m=Math.floor(24/e.length);return t.createElement("div",{className:"generalOperation"},e.map((n,l)=>t.createElement(i,{span:m,key:l},t.createElement("div",{key:n.key,className:"item",onMouseEnter:()=>{a(n.key)},onMouseLeave:()=>{a(null)}},t.createElement(u,{title:t.createElement(p,{info:n}),placement:"topRight",okText:c("Confirm"),cancelText:c("Cancel"),onConfirm:n.onClick},t.createElement("div",{className:"icon"},t.createElement(E,{icon:n.key===r?n.hoverSvg:n.imgSvg})),t.createElement("div",{className:"toolName",style:{color:n.key===r?"#666fff":""}},n.name))))))};export{k as default};
1
+ import t,{useRef as u,useState as p}from"react";import{Col as v,Popconfirm as y}from"antd";import{useTranslation as m}from"react-i18next";import{prefix as E}from"../../../../constant/index.js";const d=({info:e})=>{const{t:r}=m();return e.key.startsWith("sure")?t.createElement("div",{key:e.key},`${r("ConfirmTo")}${e.name.slice(0)}\uFF1F`):t.createElement("span",null,e.name)},f=({icon:e})=>typeof e=="string"?t.createElement("img",{width:23,height:25,src:e}):e,g=({allOperation:e})=>{const r=u(null),[a,o]=p(null),{t:c}=m(),s=Math.floor(24/e.length);return t.createElement("div",{className:"generalOperation",ref:r},e.map((n,i)=>t.createElement(v,{span:s,key:i},t.createElement("div",{key:n.key,className:"item",onMouseEnter:()=>{o(n.key)},onMouseLeave:()=>{o(null)}},t.createElement(y,{title:t.createElement(d,{info:n}),placement:"topRight",okText:c("Confirm"),cancelText:c("Cancel"),getPopupContainer:()=>{var l;return(l=r.current)!=null?l:document.body},onConfirm:n.onClick,overlayClassName:`${E}-pop-confirm`},t.createElement("div",{className:"icon"},t.createElement(f,{icon:n.key===a?n.hoverSvg:n.imgSvg})),t.createElement("div",{className:"toolName",style:{color:n.key===a?"#666fff":""}},n.name))))))};export{g as default};
@@ -1 +1 @@
1
- {"version":3,"file":"ActionsConfirm.js","sources":["../../../../../src/views/MainView/sidebar/GeneralOperation/ActionsConfirm.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Col, Popconfirm } from 'antd';\nimport { useTranslation } from 'react-i18next';\n\nexport interface IOperationConfig {\n name: string;\n key: string;\n imgSvg: string | React.ReactElement;\n hoverSvg: string | React.ReactElement;\n onClick: () => void;\n}\n\nconst PopconfirmTitle = ({ info }: { info: IOperationConfig }) => {\n const { t } = useTranslation();\n if (info.key.startsWith('sure')) {\n return <div key={info.key}>{`${t('ConfirmTo')}${info.name.slice(0)}?`}</div>;\n }\n\n return <span>{info.name}</span>;\n};\n\nconst ActionIcon = ({ icon }: { icon: React.ReactElement | string }) => {\n if (typeof icon === 'string') {\n return <img width={23} height={25} src={icon} />;\n }\n return icon;\n};\n\nconst ActionsConfirm: React.FC<{ allOperation: IOperationConfig[] }> = ({ allOperation }) => {\n const [isHover, setHover] = useState<string | null>(null);\n const { t } = useTranslation();\n const annotationLength = Math.floor(24 / allOperation.length);\n\n return (\n <div className='generalOperation'>\n {allOperation.map((info, index) => (\n <Col span={annotationLength} key={index}>\n <div\n key={info.key}\n className='item'\n onMouseEnter={() => {\n setHover(info.key);\n }}\n onMouseLeave={() => {\n setHover(null);\n }}\n >\n <Popconfirm\n title={<PopconfirmTitle info={info} />}\n placement='topRight'\n okText={t('Confirm')}\n cancelText={t('Cancel')}\n onConfirm={info.onClick}\n >\n <div className='icon'>\n <ActionIcon icon={info.key === isHover ? info.hoverSvg : info.imgSvg} />\n </div>\n <div className='toolName' style={{ color: info.key === isHover ? '#666fff' : '' }}>\n {info.name}\n </div>\n </Popconfirm>\n </div>\n </Col>\n ))}\n </div>\n );\n};\n\nexport default ActionsConfirm;\n"],"names":[],"mappings":";;;;AAYA,MAAM,eAAA,GAAkB,CAAC,CAAE,IAAuC,CAAA,KAAA;AAChE,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AACd,EAAI,IAAA,IAAA,CAAK,GAAI,CAAA,UAAA,CAAW,MAAS,CAAA,EAAA;AAC/B,IAAA,2CAAQ,KAAD,EAAA;AAAA,MAAK,KAAK,IAAK,CAAA,GAAA;AAAA,KAAA,EAAM,CAAG,EAAA,CAAA,CAAE,WAAe,CAAA,CAAA,EAAA,IAAA,CAAK,KAAK,KAAM,CAAA,CAAA,CAAA,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAGlE,EAAO,uBAAA,KAAA,CAAA,aAAA,CAAC,MAAD,EAAA,IAAA,EAAO,IAAK,CAAA,IAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAGrB,MAAM,UAAA,GAAa,CAAC,CAAE,IAAkD,CAAA,KAAA;AACtE,EAAI,IAAA,OAAO,SAAS,QAAU,EAAA;AAC5B,IAAA,2CAAQ,KAAD,EAAA;AAAA,MAAK,KAAO,EAAA,EAAA;AAAA,MAAI,MAAQ,EAAA,EAAA;AAAA,MAAI,GAAK,EAAA,IAAA;AAAA,KAAA,CAAA,CAAA;AAAA,GAAA;AAE1C,EAAO,OAAA,IAAA,CAAA;AAAA,CAAA,CAAA;AAGH,MAAA,cAAA,GAAiE,CAAC,CAAE,YAAmB,CAAA,KAAA;AAC3F,EAAM,MAAA,CAAC,OAAS,EAAA,QAAA,CAAA,GAAY,QAAwB,CAAA,IAAA,CAAA,CAAA;AACpD,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AACd,EAAA,MAAM,gBAAmB,GAAA,IAAA,CAAK,KAAM,CAAA,EAAA,GAAK,YAAa,CAAA,MAAA,CAAA,CAAA;AAEtD,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,SAAU,EAAA,kBAAA;AAAA,GAAA,EACZ,aAAa,GAAI,CAAA,CAAC,IAAM,EAAA,KAAA,yCACtB,GAAD,EAAA;AAAA,IAAK,IAAM,EAAA,gBAAA;AAAA,IAAkB,GAAK,EAAA,KAAA;AAAA,GAAA,sCAC/B,KAAD,EAAA;AAAA,IACE,KAAK,IAAK,CAAA,GAAA;AAAA,IACV,SAAU,EAAA,MAAA;AAAA,IACV,cAAc,MAAM;AAClB,MAAA,QAAA,CAAS,IAAK,CAAA,GAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAEhB,cAAc,MAAM;AAClB,MAAS,QAAA,CAAA,IAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,sCAGV,UAAD,EAAA;AAAA,IACE,KAAA,sCAAQ,eAAD,EAAA;AAAA,MAAiB,IAAA;AAAA,KAAA,CAAA;AAAA,IACxB,SAAU,EAAA,UAAA;AAAA,IACV,QAAQ,CAAE,CAAA,SAAA,CAAA;AAAA,IACV,YAAY,CAAE,CAAA,QAAA,CAAA;AAAA,IACd,WAAW,IAAK,CAAA,OAAA;AAAA,GAAA,sCAEf,KAAD,EAAA;AAAA,IAAK,SAAU,EAAA,MAAA;AAAA,GAAA,sCACZ,UAAD,EAAA;AAAA,IAAY,MAAM,IAAK,CAAA,GAAA,KAAQ,OAAU,GAAA,IAAA,CAAK,WAAW,IAAK,CAAA,MAAA;AAAA,GAAA,CAAA,CAAA,sCAE/D,KAAD,EAAA;AAAA,IAAK,SAAU,EAAA,UAAA;AAAA,IAAW,OAAO,CAAE,KAAA,EAAO,IAAK,CAAA,GAAA,KAAQ,UAAU,SAAY,GAAA,EAAA,CAAA;AAAA,GAAA,EAC1E,IAAK,CAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"ActionsConfirm.js","sources":["../../../../../src/views/MainView/sidebar/GeneralOperation/ActionsConfirm.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { Col, Popconfirm } from 'antd';\nimport { useTranslation } from 'react-i18next';\nimport { prefix } from '@/constant';\n\nexport interface IOperationConfig {\n name: string;\n key: string;\n imgSvg: string | React.ReactElement;\n hoverSvg: string | React.ReactElement;\n onClick: () => void;\n}\n\nconst PopconfirmTitle = ({ info }: { info: IOperationConfig }) => {\n const { t } = useTranslation();\n if (info.key.startsWith('sure')) {\n return <div key={info.key}>{`${t('ConfirmTo')}${info.name.slice(0)}?`}</div>;\n }\n\n return <span>{info.name}</span>;\n};\n\nconst ActionIcon = ({ icon }: { icon: React.ReactElement | string }) => {\n if (typeof icon === 'string') {\n return <img width={23} height={25} src={icon} />;\n }\n return icon;\n};\n\nconst ActionsConfirm: React.FC<{ allOperation: IOperationConfig[] }> = ({ allOperation }) => {\n const ref = useRef<HTMLDivElement>(null);\n const [isHover, setHover] = useState<string | null>(null);\n const { t } = useTranslation();\n const annotationLength = Math.floor(24 / allOperation.length);\n\n return (\n <div className='generalOperation' ref={ref}>\n {allOperation.map((info, index) => (\n <Col span={annotationLength} key={index}>\n <div\n key={info.key}\n className='item'\n onMouseEnter={() => {\n setHover(info.key);\n }}\n onMouseLeave={() => {\n setHover(null);\n }}\n >\n <Popconfirm\n title={<PopconfirmTitle info={info} />}\n placement='topRight'\n okText={t('Confirm')}\n cancelText={t('Cancel')}\n getPopupContainer={() => ref.current ?? document.body}\n onConfirm={info.onClick}\n overlayClassName={`${prefix}-pop-confirm`}\n >\n <div className='icon'>\n <ActionIcon icon={info.key === isHover ? info.hoverSvg : info.imgSvg} />\n </div>\n <div className='toolName' style={{ color: info.key === isHover ? '#666fff' : '' }}>\n {info.name}\n </div>\n </Popconfirm>\n </div>\n </Col>\n ))}\n </div>\n );\n};\n\nexport default ActionsConfirm;\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import r from"react";import{connect as a}from"react-redux";import c from"../../../../utils/StepUtils.js";import{jsonParser as m}from"../../../../utils/index.js";import s from"./ActionsConfirm.js";import l from"./useOperationList.js";import{LabelBeeContext as u}from"../../../../store/ctx.js";const p=o=>{var n,t;const e=c.getCurrentStepInfo((n=o.annotation)==null?void 0:n.step,(t=o.annotation)==null?void 0:t.stepList);return{toolInstance:o.annotation.toolInstance,stepInfo:e,imgList:o.annotation.imgList,imgIndex:o.annotation.imgIndex}},d=({toolInstance:o,stepInfo:n})=>{const t=l(o),e=m(n==null?void 0:n.config),i=[t.empty];return(n==null?void 0:n.dataSourceStep)===0&&i.push(t.setValidity),(e==null?void 0:e.copyBackwardResult)&&i.push(t.copyPrevious),r.createElement(s,{allOperation:i})},f=a(p)(({toolInstance:o,stepInfo:n})=>{const t=l(o),e=[t.copyPrevious,t.empty,t.setValidity];return r.createElement(s,{allOperation:e})});var v=a(p,null,null,{context:u})(d);export{f as PointCloudOperation,v as default};
1
+ import r from"react";import{connect as a}from"react-redux";import u from"../../../../utils/StepUtils.js";import{jsonParser as m}from"../../../../utils/index.js";import s from"./ActionsConfirm.js";import l from"./useOperationList.js";import{LabelBeeContext as p}from"../../../../store/ctx.js";const c=o=>{var n,t;const e=u.getCurrentStepInfo((n=o.annotation)==null?void 0:n.step,(t=o.annotation)==null?void 0:t.stepList);return{toolInstance:o.annotation.toolInstance,stepInfo:e,imgList:o.annotation.imgList,imgIndex:o.annotation.imgIndex}},d=({toolInstance:o,stepInfo:n})=>{const t=l(o),e=m(n==null?void 0:n.config),i=[t.empty];return(n==null?void 0:n.dataSourceStep)===0&&i.push(t.setValidity),(e==null?void 0:e.copyBackwardResult)&&i.push(t.copyPrevious),r.createElement(s,{allOperation:i})},f=a(c,null,null,{context:p})(({toolInstance:o,stepInfo:n})=>{const t=l(o),e=[t.copyPrevious,t.empty,t.setValidity];return r.createElement(s,{allOperation:e})});var v=a(c,null,null,{context:p})(d);export{f as PointCloudOperation,v as default};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/GeneralOperation/index.tsx"],"sourcesContent":["import React from 'react';\nimport { AppState } from '@/store';\nimport { connect, ConnectedComponent } from 'react-redux';\nimport { ToolInstance } from '@/store/annotation/types';\nimport StepUtils from '@/utils/StepUtils';\nimport { IStepInfo } from '@/types/step';\nimport { jsonParser } from '@/utils';\nimport { AnnotationFileList } from '@/types/data';\nimport ActionsConfirm, { IOperationConfig } from './ActionsConfirm';\nimport useOperationList from './useOperationList';\nimport { LabelBeeContext } from '@/store/ctx';\n\nconst mapStateToProps = (state: AppState) => {\n const stepInfo = StepUtils.getCurrentStepInfo(state.annotation?.step, state.annotation?.stepList);\n\n return {\n toolInstance: state.annotation.toolInstance,\n stepInfo,\n imgList: state.annotation.imgList,\n imgIndex: state.annotation.imgIndex,\n };\n};\ninterface IProps {\n toolInstance: ToolInstance;\n stepInfo: IStepInfo;\n imgList: AnnotationFileList;\n imgIndex: number;\n}\n\nconst GeneralOperation: React.FC<IProps> = ({ toolInstance, stepInfo }) => {\n const operationList = useOperationList(toolInstance);\n const config = jsonParser(stepInfo?.config);\n const allOperation: IOperationConfig[] = [operationList.empty];\n\n if (stepInfo?.dataSourceStep === 0) {\n allOperation.push(operationList.setValidity);\n }\n\n if (config?.copyBackwardResult) {\n allOperation.push(operationList.copyPrevious);\n }\n\n return <ActionsConfirm allOperation={allOperation} />;\n};\n\nexport const PointCloudOperation: ConnectedComponent<\n React.FC<IProps>,\n Omit<\n IProps & {\n children?: React.ReactNode;\n },\n 'toolInstance' | 'stepInfo' | 'imgList' | 'imgIndex'\n >\n> = connect(mapStateToProps)(({ toolInstance, stepInfo }) => {\n const operationList = useOperationList(toolInstance);\n const allOperation: IOperationConfig[] = [\n operationList.copyPrevious,\n operationList.empty,\n operationList.setValidity,\n ];\n return <ActionsConfirm allOperation={allOperation} />;\n});\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(GeneralOperation);\n"],"names":[],"mappings":";;;;;;;;AAYA,MAAM,eAAA,GAAkB,CAAC,KAAoB,KAAA;AAZ7C,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAaE,EAAM,MAAA,QAAA,GAAW,UAAU,kBAAmB,CAAA,CAAA,EAAA,GAAA,KAAA,CAAM,eAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,EAAM,CAAM,EAAA,GAAA,KAAA,CAAA,UAAA,KAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAA,CAAA,CAAA;AAExF,EAAO,OAAA;AAAA,IACL,YAAA,EAAc,MAAM,UAAW,CAAA,YAAA;AAAA,IAC/B,QAAA;AAAA,IACA,OAAA,EAAS,MAAM,UAAW,CAAA,OAAA;AAAA,IAC1B,QAAA,EAAU,MAAM,UAAW,CAAA,QAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAU/B,MAAM,gBAAqC,GAAA,CAAC,CAAE,YAAA,EAAc,QAAe,CAAA,KAAA;AACzE,EAAA,MAAM,gBAAgB,gBAAiB,CAAA,YAAA,CAAA,CAAA;AACvC,EAAM,MAAA,MAAA,GAAS,WAAW,QAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,MAAA,CAAA,CAAA;AACpC,EAAM,MAAA,YAAA,GAAmC,CAAC,aAAc,CAAA,KAAA,CAAA,CAAA;AAExD,EAAI,IAAA,CAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAU,oBAAmB,CAAG,EAAA;AAClC,IAAA,YAAA,CAAa,KAAK,aAAc,CAAA,WAAA,CAAA,CAAA;AAAA,GAAA;AAGlC,EAAA,IAAI,iCAAQ,kBAAoB,EAAA;AAC9B,IAAA,YAAA,CAAa,KAAK,aAAc,CAAA,YAAA,CAAA,CAAA;AAAA,GAAA;AAGlC,EAAA,2CAAQ,cAAD,EAAA;AAAA,IAAgB,YAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAGlB,MAAM,sBAQT,OAAQ,CAAA,eAAA,CAAA,CAAiB,CAAC,CAAE,cAAc,QAAe,CAAA,KAAA;AAC3D,EAAA,MAAM,gBAAgB,gBAAiB,CAAA,YAAA,CAAA,CAAA;AACvC,EAAA,MAAM,YAAmC,GAAA;AAAA,IACvC,aAAc,CAAA,YAAA;AAAA,IACd,aAAc,CAAA,KAAA;AAAA,IACd,aAAc,CAAA,WAAA;AAAA,GAAA,CAAA;AAEhB,EAAA,2CAAQ,cAAD,EAAA;AAAA,IAAgB,YAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA,EAAA;AAGzB,yBAAe,QAAQ,eAAiB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAE,SAAS,eAAmB,CAAA,CAAA,CAAA,gBAAA,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/GeneralOperation/index.tsx"],"sourcesContent":["import React from 'react';\nimport { AppState } from '@/store';\nimport { connect, ConnectedComponent } from 'react-redux';\nimport { ToolInstance } from '@/store/annotation/types';\nimport StepUtils from '@/utils/StepUtils';\nimport { IStepInfo } from '@/types/step';\nimport { jsonParser } from '@/utils';\nimport { AnnotationFileList } from '@/types/data';\nimport ActionsConfirm, { IOperationConfig } from './ActionsConfirm';\nimport useOperationList from './useOperationList';\nimport { LabelBeeContext } from '@/store/ctx';\n\nconst mapStateToProps = (state: AppState) => {\n const stepInfo = StepUtils.getCurrentStepInfo(state.annotation?.step, state.annotation?.stepList);\n\n return {\n toolInstance: state.annotation.toolInstance,\n stepInfo,\n imgList: state.annotation.imgList,\n imgIndex: state.annotation.imgIndex,\n };\n};\ninterface IProps {\n toolInstance: ToolInstance;\n stepInfo: IStepInfo;\n imgList: AnnotationFileList;\n imgIndex: number;\n}\n\nconst GeneralOperation: React.FC<IProps> = ({ toolInstance, stepInfo }) => {\n const operationList = useOperationList(toolInstance);\n const config = jsonParser(stepInfo?.config);\n const allOperation: IOperationConfig[] = [operationList.empty];\n\n if (stepInfo?.dataSourceStep === 0) {\n allOperation.push(operationList.setValidity);\n }\n\n if (config?.copyBackwardResult) {\n allOperation.push(operationList.copyPrevious);\n }\n\n return <ActionsConfirm allOperation={allOperation} />;\n};\n\nexport const PointCloudOperation: ConnectedComponent<\n React.FC<IProps>,\n Omit<\n IProps & {\n children?: React.ReactNode;\n },\n 'toolInstance' | 'stepInfo' | 'imgList' | 'imgIndex'\n >\n> = connect(mapStateToProps, null, null, { context: LabelBeeContext })(\n ({ toolInstance, stepInfo }) => {\n const operationList = useOperationList(toolInstance);\n const allOperation: IOperationConfig[] = [\n operationList.copyPrevious,\n operationList.empty,\n operationList.setValidity,\n ];\n return <ActionsConfirm allOperation={allOperation} />;\n },\n);\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(GeneralOperation);\n"],"names":[],"mappings":";;;;;;;;AAYA,MAAM,eAAA,GAAkB,CAAC,KAAoB,KAAA;AAZ7C,EAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAaE,EAAM,MAAA,QAAA,GAAW,UAAU,kBAAmB,CAAA,CAAA,EAAA,GAAA,KAAA,CAAM,eAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,EAAM,CAAM,EAAA,GAAA,KAAA,CAAA,UAAA,KAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAA,CAAA,CAAA;AAExF,EAAO,OAAA;AAAA,IACL,YAAA,EAAc,MAAM,UAAW,CAAA,YAAA;AAAA,IAC/B,QAAA;AAAA,IACA,OAAA,EAAS,MAAM,UAAW,CAAA,OAAA;AAAA,IAC1B,QAAA,EAAU,MAAM,UAAW,CAAA,QAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAU/B,MAAM,gBAAqC,GAAA,CAAC,CAAE,YAAA,EAAc,QAAe,CAAA,KAAA;AACzE,EAAA,MAAM,gBAAgB,gBAAiB,CAAA,YAAA,CAAA,CAAA;AACvC,EAAM,MAAA,MAAA,GAAS,WAAW,QAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,MAAA,CAAA,CAAA;AACpC,EAAM,MAAA,YAAA,GAAmC,CAAC,aAAc,CAAA,KAAA,CAAA,CAAA;AAExD,EAAI,IAAA,CAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAU,oBAAmB,CAAG,EAAA;AAClC,IAAA,YAAA,CAAa,KAAK,aAAc,CAAA,WAAA,CAAA,CAAA;AAAA,GAAA;AAGlC,EAAA,IAAI,iCAAQ,kBAAoB,EAAA;AAC9B,IAAA,YAAA,CAAa,KAAK,aAAc,CAAA,YAAA,CAAA,CAAA;AAAA,GAAA;AAGlC,EAAA,2CAAQ,cAAD,EAAA;AAAA,IAAgB,YAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAGZ,MAAA,mBAAA,GAQT,OAAQ,CAAA,eAAA,EAAiB,IAAM,EAAA,IAAA,EAAM,CAAE,OAAA,EAAS,eAClD,CAAA,CAAA,CAAA,CAAC,CAAE,YAAA,EAAc,QAAe,CAAA,KAAA;AAC9B,EAAA,MAAM,gBAAgB,gBAAiB,CAAA,YAAA,CAAA,CAAA;AACvC,EAAA,MAAM,YAAmC,GAAA;AAAA,IACvC,aAAc,CAAA,YAAA;AAAA,IACd,aAAc,CAAA,KAAA;AAAA,IACd,aAAc,CAAA,WAAA;AAAA,GAAA,CAAA;AAEhB,EAAA,2CAAQ,cAAD,EAAA;AAAA,IAAgB,YAAA;AAAA,GAAA,CAAA,CAAA;AAAA,CAAA,EAAA;AAI3B,yBAAe,QAAQ,eAAiB,EAAA,IAAA,EAAM,IAAM,EAAA,CAAE,SAAS,eAAmB,CAAA,CAAA,CAAA,gBAAA,CAAA;;;;"}
@@ -1 +1 @@
1
- import e,{useContext as y}from"react";import{ToolIcons as S}from"../ToolIcons.js";import{cTool as x}from"@labelbee/lb-annotation";import{PointCloudContext as b}from"../../../../components/pointCloudView/PointCloudContext.js";import{Row as f,Col as d,Radio as C,Select as g}from"antd";import E from"../../../../utils/StepUtils.js";import{connect as P}from"react-redux";import{jsonParser as B}from"../../../../utils/index.js";import{useStatus as h}from"../../../../components/pointCloudView/hooks/useStatus.js";import{useSingleBox as j}from"../../../../components/pointCloudView/hooks/useSingleBox.js";import{useTranslation as T}from"react-i18next";import{LabelBeeContext as k}from"../../../../store/ctx.js";const _=({attributeList:r,subAttributeList:i,toolInstance:n})=>{var l;const s=y(b),{t:o}=T(),c={fontWeight:400,fontSize:14,marginBottom:14},a=t=>{n.setDefaultAttribute(t)},p=(t,u)=>{n.setSubAttribute(t,u)};return e.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},e.createElement("div",{style:{marginBottom:20,fontSize:14,fontWeight:500}},o("Tag")),e.createElement(f,{style:{marginBottom:12}},e.createElement(d,{span:9,style:c},o("Attribute")),e.createElement(d,{span:15},e.createElement(C.Group,{style:{width:"100%"},value:(l=s.selectedPointCloudBox)==null?void 0:l.attribute,onChange:t=>a(t.target.value)},r.map(t=>e.createElement(C,{key:t.value,value:t.value,style:{marginBottom:16}},t.key))))),e.createElement("div",{style:c}," ",o("SubAttribute")),i.map(t=>{var u,v;return(t==null?void 0:t.subSelected)&&e.createElement(f,{key:t.value,style:{marginBottom:18}},e.createElement(d,{span:9,style:{color:"#999999",display:"flex",justifyContent:"flex-start",alignItems:"center"}},t.key),e.createElement(d,{span:15},e.createElement(g,{style:{width:"100%"},bordered:!1,value:(v=(u=s.selectedPointCloudBox)==null?void 0:u.subAttribute)==null?void 0:v[t.value],placeholder:o("PleaseSelect"),onChange:m=>p(t.value,m)},t.subSelected.map(m=>e.createElement(g.Option,{key:m.value,value:m.value},m.key)))))}))},w=({stepInfo:r,toolInstance:i})=>{var n,l;const{selectedBox:s}=j(),{updatePointCloudPattern:o,pointCloudPattern:c}=h(),a=B(r.config),p=(n=a==null?void 0:a.attributeList)!=null?n:[],t=(a==null?void 0:a.secondaryAttributeConfigurable)===!0?(l=a==null?void 0:a.inputList)!=null?l:[]:[];return e.createElement(e.Fragment,null,e.createElement(S,{toolName:x.EPointCloudName.PointCloud,selectedToolName:c,onChange:u=>o==null?void 0:o(u)}),s&&e.createElement(_,{toolInstance:i,attributeList:p,subAttributeList:t}))},I=r=>{var i,n,l;const s=E.getCurrentStepInfo((i=r.annotation)==null?void 0:i.step,(n=r.annotation)==null?void 0:n.stepList),o=(l=r.annotation)==null?void 0:l.toolInstance;return{stepInfo:s,toolInstance:o}};var L=P(I,null,null,{context:k})(w);export{L as default};
1
+ import e,{useContext as y}from"react";import{ToolIcons as S}from"../ToolIcons.js";import{cTool as x}from"@labelbee/lb-annotation";import{PointCloudContext as b}from"../../../../components/pointCloudView/PointCloudContext.js";import{Row as f,Col as d,Radio as C,Select as g}from"antd";import E from"../../../../utils/StepUtils.js";import{connect as P}from"react-redux";import{jsonParser as B}from"../../../../utils/index.js";import{useStatus as h}from"../../../../components/pointCloudView/hooks/useStatus.js";import{useSingleBox as j}from"../../../../components/pointCloudView/hooks/useSingleBox.js";import{useTranslation as T}from"react-i18next";import{LabelBeeContext as k}from"../../../../store/ctx.js";const _=({attributeList:r,subAttributeList:i,toolInstance:n})=>{var l;const s=y(b),{t:o}=T(),c={fontWeight:400,fontSize:14,marginBottom:14},a=t=>{n.setDefaultAttribute(t)},p=(t,u)=>{n.setSubAttribute(t,u)};return e.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},e.createElement("div",{style:{marginBottom:20,fontSize:14,fontWeight:500}},o("Tag")),e.createElement(f,{style:{marginBottom:12}},e.createElement(d,{span:9,style:c},o("Attribute")),e.createElement(d,{span:15},e.createElement(C.Group,{style:{width:"100%"},value:(l=s.selectedPointCloudBox)==null?void 0:l.attribute,onChange:t=>a(t.target.value)},r.map(t=>e.createElement(C,{key:t.value,value:t.value,style:{marginBottom:16}},t.key))))),e.createElement("div",{style:c}," ",o("SubAttribute")),i.map(t=>{var u,v;return(t==null?void 0:t.subSelected)&&e.createElement(f,{key:t.value,style:{marginBottom:18}},e.createElement(d,{span:9,style:{color:"#999999",display:"flex",justifyContent:"flex-start",alignItems:"center"}},t.key),e.createElement(d,{span:15},e.createElement(g,{style:{width:"100%"},bordered:!1,value:(v=(u=s.selectedPointCloudBox)==null?void 0:u.subAttribute)==null?void 0:v[t.value],placeholder:o("PleaseSelect"),onChange:m=>p(t.value,m),allowClear:!0},t.subSelected.map(m=>e.createElement(g.Option,{key:m.value,value:m.value},m.key)))))}))},w=({stepInfo:r,toolInstance:i})=>{var n,l;const{selectedBox:s}=j(),{updatePointCloudPattern:o,pointCloudPattern:c}=h(),a=B(r.config),p=(n=a==null?void 0:a.attributeList)!=null?n:[],t=(a==null?void 0:a.secondaryAttributeConfigurable)===!0?(l=a==null?void 0:a.inputList)!=null?l:[]:[];return e.createElement(e.Fragment,null,e.createElement(S,{toolName:x.EPointCloudName.PointCloud,selectedToolName:c,onChange:u=>o==null?void 0:o(u)}),s&&e.createElement(_,{toolInstance:i,attributeList:p,subAttributeList:t}))},I=r=>{var i,n,l;const s=E.getCurrentStepInfo((i=r.annotation)==null?void 0:i.step,(n=r.annotation)==null?void 0:n.stepList),o=(l=r.annotation)==null?void 0:l.toolInstance;return{stepInfo:s,toolInstance:o}};var L=P(I,null,null,{context:k})(w);export{L as default};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/PointCloudToolSidebar/index.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { ToolIcons } from '../ToolIcons';\nimport { cTool } from '@labelbee/lb-annotation';\nimport { PointCloudContext } from '@/components/pointCloudView/PointCloudContext';\nimport { Col, Radio, Row, Select } from 'antd';\nimport { AppState } from '@/store';\nimport StepUtils from '@/utils/StepUtils';\nimport { connect } from 'react-redux';\nimport { IStepInfo } from '@/types/step';\nimport { jsonParser } from '@/utils';\nimport { ICustomToolInstance } from '@/hooks/annotation';\nimport { useStatus } from '@/components/pointCloudView/hooks/useStatus';\nimport { useSingleBox } from '@/components/pointCloudView/hooks/useSingleBox';\nimport { useTranslation } from 'react-i18next';\nimport { LabelBeeContext } from '@/store/ctx';\n\ninterface IProps {\n stepInfo: IStepInfo;\n toolInstance: ICustomToolInstance; // Created by useCustomToolInstance.\n}\n\n// Temporarily hidden, this feature does not support the function for the time being.\n// const AnnotatedBox = () => {\n// const ptCtx = useContext(PointCloudContext);\n// const { pointCloudBoxList } = ptCtx;\n\n// return (\n// <div style={{ padding: 24, borderBottom: '1px solid #eee' }}>\n// <div style={{ marginBottom: 16 }}>所有已标注的框ID</div>\n// <div>\n// {pointCloudBoxList\n// .sort((a, b) => a.trackID - b.trackID)\n// .map((i) => (\n// <Tag color='#F3F4FF' key={i.trackID} style={{ color: '#666', marginBottom: 8 }}>\n// {i.trackID}\n// </Tag>\n// ))}\n// </div>\n// </div>\n// );\n// };\n\n// const BoxTrackIDInput = () => {\n// const [isEdit, setIsEdit] = useState(false);\n// const { pointCloudBoxList } = useContext(PointCloudContext);\n// const { selectedBox, updateSelectedBox } = useSingleBox();\n// const [inputValue, setInputValue] = useState('');\n\n// const selectedBoxTrackID = selectedBox?.info.trackID;\n\n// const hasDuplicateTrackID = (trackID: number) => {\n// const duplicateBox = pointCloudBoxList.find((i) => i.trackID === selectedBoxTrackID);\n// return duplicateBox && duplicateBox.id !== selectedBox?.info.id;\n// };\n\n// const applyInputValue = (isBlurEvent = false) => {\n// const newTrackID = parseInt(inputValue, 10);\n\n// if (isBlurEvent) {\n// setIsEdit(false);\n// }\n\n// if (inputValue.indexOf('.') > -1) {\n// message.error('输入trackID不允许包含小数点');\n// return;\n// }\n\n// if (hasDuplicateTrackID(newTrackID)) {\n// message.error('存在重复的trackID');\n// return;\n// }\n\n// if (!(newTrackID > 0)) {\n// message.error('输入trackID必须为正整数!');\n// }\n\n// updateSelectedBox({ trackID: ~~inputValue });\n// };\n\n// useEffect(() => {\n// setIsEdit(false);\n// }, [selectedBoxTrackID]);\n\n// return (\n// <div style={{ padding: 24 }}>\n// <div\n// style={{\n// marginBottom: 16,\n// display: 'flex',\n// justifyContent: 'space-between',\n// alignItems: 'center',\n// }}\n// >\n// <span>当前标注框ID</span>\n// <span>批量修改</span>\n// </div>\n// <div\n// style={{\n// display: 'flex',\n// justifyContent: 'space-between',\n// alignItems: 'center',\n// }}\n// >\n// {isEdit && selectedBoxTrackID ? (\n// <Input\n// defaultValue={selectedBoxTrackID}\n// onChange={(e) => {\n// setInputValue(e.target.value);\n// }}\n// disabled={!selectedBoxTrackID}\n// size='small'\n// onBlur={() => {\n// applyInputValue();\n// }}\n// onPressEnter={() => {\n// applyInputValue(true);\n// }}\n// />\n// ) : (\n// <span>{selectedBoxTrackID}</span>\n// )}\n// <EditFilled\n// style={{\n// color: '#999',\n// marginLeft: 16,\n// cursor: selectedBoxTrackID ? 'pointer' : 'not-allowed',\n// }}\n// onClick={() => {\n// if (selectedBoxTrackID) {\n// setIsEdit(!isEdit);\n// }\n// }}\n// />\n// </div>\n// </div>\n// );\n// };\n\nconst AttributeUpdater = ({\n attributeList,\n subAttributeList,\n toolInstance,\n}: {\n toolInstance: ICustomToolInstance;\n attributeList: any[]; // TODO\n subAttributeList: any[]; // TODO\n}) => {\n const ptx = useContext(PointCloudContext);\n const { t } = useTranslation();\n\n const titleStyle = {\n fontWeight: 400,\n fontSize: 14,\n marginBottom: 14,\n };\n\n const setAttribute = (attribute: string) => {\n toolInstance.setDefaultAttribute(attribute);\n };\n\n const setSubAttribute = (key: string, value: string) => {\n toolInstance.setSubAttribute(key, value);\n };\n\n return (\n <div style={{ padding: 24, borderBottom: '1px solid #eee' }}>\n <div style={{ marginBottom: 20, fontSize: 14, fontWeight: 500 }}>{t('Tag')}</div>\n <Row style={{ marginBottom: 12 }}>\n <Col span={9} style={titleStyle}>\n {t('Attribute')}\n </Col>\n <Col span={15}>\n <Radio.Group\n style={{ width: '100%' }}\n value={ptx.selectedPointCloudBox?.attribute}\n onChange={(e) => setAttribute(e.target.value)}\n >\n {attributeList.map((v) => (\n <Radio key={v.value} value={v.value} style={{ marginBottom: 16 }}>\n {v.key}\n </Radio>\n ))}\n </Radio.Group>\n </Col>\n </Row>\n <div style={titleStyle}> {t('SubAttribute')}</div>\n {subAttributeList.map(\n (subAttribute) =>\n subAttribute?.subSelected && (\n <Row key={subAttribute.value} style={{ marginBottom: 18 }}>\n <Col\n span={9}\n style={{\n color: '#999999',\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n }}\n >\n {subAttribute.key}\n </Col>\n <Col span={15}>\n <Select\n style={{ width: '100%' }}\n bordered={false}\n value={ptx.selectedPointCloudBox?.subAttribute?.[subAttribute.value]}\n placeholder={t('PleaseSelect')}\n onChange={(value) => setSubAttribute(subAttribute.value, value)}\n >\n {subAttribute.subSelected.map((sub: any) => (\n <Select.Option key={sub.value} value={sub.value}>\n {sub.key}\n </Select.Option>\n ))}\n </Select>\n </Col>\n </Row>\n ),\n )}\n </div>\n );\n};\n\nconst PointCloudToolSidebar: React.FC<IProps> = ({ stepInfo, toolInstance }) => {\n const { selectedBox } = useSingleBox();\n const { updatePointCloudPattern, pointCloudPattern } = useStatus();\n\n const config = jsonParser(stepInfo.config);\n const attributeList = config?.attributeList ?? [];\n const subAttributeList =\n config?.secondaryAttributeConfigurable === true ? config?.inputList ?? [] : [];\n\n return (\n <>\n <ToolIcons\n toolName={cTool.EPointCloudName.PointCloud}\n selectedToolName={pointCloudPattern}\n onChange={(v) => updatePointCloudPattern?.(v)}\n />\n {/* <AnnotatedBox />\n <BoxTrackIDInput /> */}\n {selectedBox && (\n <AttributeUpdater\n toolInstance={toolInstance}\n attributeList={attributeList}\n subAttributeList={subAttributeList}\n />\n )}\n </>\n );\n};\n\nconst mapStateToProps = (state: AppState) => {\n const stepInfo = StepUtils.getCurrentStepInfo(state.annotation?.step, state.annotation?.stepList);\n const toolInstance = state.annotation?.toolInstance;\n\n return {\n stepInfo,\n toolInstance,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(\n PointCloudToolSidebar,\n);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/PointCloudToolSidebar/index.tsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport { ToolIcons } from '../ToolIcons';\nimport { cTool } from '@labelbee/lb-annotation';\nimport { PointCloudContext } from '@/components/pointCloudView/PointCloudContext';\nimport { Col, Radio, Row, Select } from 'antd';\nimport { AppState } from '@/store';\nimport StepUtils from '@/utils/StepUtils';\nimport { connect } from 'react-redux';\nimport { IStepInfo } from '@/types/step';\nimport { jsonParser } from '@/utils';\nimport { ICustomToolInstance } from '@/hooks/annotation';\nimport { useStatus } from '@/components/pointCloudView/hooks/useStatus';\nimport { useSingleBox } from '@/components/pointCloudView/hooks/useSingleBox';\nimport { useTranslation } from 'react-i18next';\nimport { LabelBeeContext } from '@/store/ctx';\n\ninterface IProps {\n stepInfo: IStepInfo;\n toolInstance: ICustomToolInstance; // Created by useCustomToolInstance.\n}\n\n// Temporarily hidden, this feature does not support the function for the time being.\n// const AnnotatedBox = () => {\n// const ptCtx = useContext(PointCloudContext);\n// const { pointCloudBoxList } = ptCtx;\n\n// return (\n// <div style={{ padding: 24, borderBottom: '1px solid #eee' }}>\n// <div style={{ marginBottom: 16 }}>所有已标注的框ID</div>\n// <div>\n// {pointCloudBoxList\n// .sort((a, b) => a.trackID - b.trackID)\n// .map((i) => (\n// <Tag color='#F3F4FF' key={i.trackID} style={{ color: '#666', marginBottom: 8 }}>\n// {i.trackID}\n// </Tag>\n// ))}\n// </div>\n// </div>\n// );\n// };\n\n// const BoxTrackIDInput = () => {\n// const [isEdit, setIsEdit] = useState(false);\n// const { pointCloudBoxList } = useContext(PointCloudContext);\n// const { selectedBox, updateSelectedBox } = useSingleBox();\n// const [inputValue, setInputValue] = useState('');\n\n// const selectedBoxTrackID = selectedBox?.info.trackID;\n\n// const hasDuplicateTrackID = (trackID: number) => {\n// const duplicateBox = pointCloudBoxList.find((i) => i.trackID === selectedBoxTrackID);\n// return duplicateBox && duplicateBox.id !== selectedBox?.info.id;\n// };\n\n// const applyInputValue = (isBlurEvent = false) => {\n// const newTrackID = parseInt(inputValue, 10);\n\n// if (isBlurEvent) {\n// setIsEdit(false);\n// }\n\n// if (inputValue.indexOf('.') > -1) {\n// message.error('输入trackID不允许包含小数点');\n// return;\n// }\n\n// if (hasDuplicateTrackID(newTrackID)) {\n// message.error('存在重复的trackID');\n// return;\n// }\n\n// if (!(newTrackID > 0)) {\n// message.error('输入trackID必须为正整数!');\n// }\n\n// updateSelectedBox({ trackID: ~~inputValue });\n// };\n\n// useEffect(() => {\n// setIsEdit(false);\n// }, [selectedBoxTrackID]);\n\n// return (\n// <div style={{ padding: 24 }}>\n// <div\n// style={{\n// marginBottom: 16,\n// display: 'flex',\n// justifyContent: 'space-between',\n// alignItems: 'center',\n// }}\n// >\n// <span>当前标注框ID</span>\n// <span>批量修改</span>\n// </div>\n// <div\n// style={{\n// display: 'flex',\n// justifyContent: 'space-between',\n// alignItems: 'center',\n// }}\n// >\n// {isEdit && selectedBoxTrackID ? (\n// <Input\n// defaultValue={selectedBoxTrackID}\n// onChange={(e) => {\n// setInputValue(e.target.value);\n// }}\n// disabled={!selectedBoxTrackID}\n// size='small'\n// onBlur={() => {\n// applyInputValue();\n// }}\n// onPressEnter={() => {\n// applyInputValue(true);\n// }}\n// />\n// ) : (\n// <span>{selectedBoxTrackID}</span>\n// )}\n// <EditFilled\n// style={{\n// color: '#999',\n// marginLeft: 16,\n// cursor: selectedBoxTrackID ? 'pointer' : 'not-allowed',\n// }}\n// onClick={() => {\n// if (selectedBoxTrackID) {\n// setIsEdit(!isEdit);\n// }\n// }}\n// />\n// </div>\n// </div>\n// );\n// };\n\nconst AttributeUpdater = ({\n attributeList,\n subAttributeList,\n toolInstance,\n}: {\n toolInstance: ICustomToolInstance;\n attributeList: any[]; // TODO\n subAttributeList: any[]; // TODO\n}) => {\n const ptx = useContext(PointCloudContext);\n const { t } = useTranslation();\n\n const titleStyle = {\n fontWeight: 400,\n fontSize: 14,\n marginBottom: 14,\n };\n\n const setAttribute = (attribute: string) => {\n toolInstance.setDefaultAttribute(attribute);\n };\n\n const setSubAttribute = (key: string, value: string) => {\n toolInstance.setSubAttribute(key, value);\n };\n\n return (\n <div style={{ padding: 24, borderBottom: '1px solid #eee' }}>\n <div style={{ marginBottom: 20, fontSize: 14, fontWeight: 500 }}>{t('Tag')}</div>\n <Row style={{ marginBottom: 12 }}>\n <Col span={9} style={titleStyle}>\n {t('Attribute')}\n </Col>\n <Col span={15}>\n <Radio.Group\n style={{ width: '100%' }}\n value={ptx.selectedPointCloudBox?.attribute}\n onChange={(e) => setAttribute(e.target.value)}\n >\n {attributeList.map((v) => (\n <Radio key={v.value} value={v.value} style={{ marginBottom: 16 }}>\n {v.key}\n </Radio>\n ))}\n </Radio.Group>\n </Col>\n </Row>\n <div style={titleStyle}> {t('SubAttribute')}</div>\n {subAttributeList.map(\n (subAttribute) =>\n subAttribute?.subSelected && (\n <Row key={subAttribute.value} style={{ marginBottom: 18 }}>\n <Col\n span={9}\n style={{\n color: '#999999',\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n }}\n >\n {subAttribute.key}\n </Col>\n <Col span={15}>\n <Select\n style={{ width: '100%' }}\n bordered={false}\n value={ptx.selectedPointCloudBox?.subAttribute?.[subAttribute.value]}\n placeholder={t('PleaseSelect')}\n onChange={(value) => setSubAttribute(subAttribute.value, value)}\n allowClear={true}\n >\n {subAttribute.subSelected.map((sub: any) => (\n <Select.Option key={sub.value} value={sub.value}>\n {sub.key}\n </Select.Option>\n ))}\n </Select>\n </Col>\n </Row>\n ),\n )}\n </div>\n );\n};\n\nconst PointCloudToolSidebar: React.FC<IProps> = ({ stepInfo, toolInstance }) => {\n const { selectedBox } = useSingleBox();\n const { updatePointCloudPattern, pointCloudPattern } = useStatus();\n\n const config = jsonParser(stepInfo.config);\n const attributeList = config?.attributeList ?? [];\n const subAttributeList =\n config?.secondaryAttributeConfigurable === true ? config?.inputList ?? [] : [];\n\n return (\n <>\n <ToolIcons\n toolName={cTool.EPointCloudName.PointCloud}\n selectedToolName={pointCloudPattern}\n onChange={(v) => updatePointCloudPattern?.(v)}\n />\n {/* <AnnotatedBox />\n <BoxTrackIDInput /> */}\n {selectedBox && (\n <AttributeUpdater\n toolInstance={toolInstance}\n attributeList={attributeList}\n subAttributeList={subAttributeList}\n />\n )}\n </>\n );\n};\n\nconst mapStateToProps = (state: AppState) => {\n const stepInfo = StepUtils.getCurrentStepInfo(state.annotation?.step, state.annotation?.stepList);\n const toolInstance = state.annotation?.toolInstance;\n\n return {\n stepInfo,\n toolInstance,\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(\n PointCloudToolSidebar,\n);\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import e,{useState as m}from"react";import{Slider as p}from"antd";import u from"../../../../assets/attributeIcon/pen_a.svg.js";import g from"../../../../assets/attributeIcon/pen.svg.js";import S from"../../../../assets/attributeIcon/eraser_a.svg.js";import E from"../../../../assets/attributeIcon/eraser.svg.js";import{getClassName as r}from"../../../../utils/dom.js";import{EScribblePattern as t}from"../../../../data/enums/ToolType.js";import{useSelector as f}from"../../../../store/ctx.js";const v=b=>{const{onChange:d}=b,s=f(a=>a.annotation.toolInstance),[o,l]=m(20),[c,n]=m(t.Scribble),i=()=>{d(c,o)};return e.createElement("div",{className:r("scribble")},e.createElement("div",{className:r("scribble","select")},e.createElement("img",{src:c===t.Scribble?u:g,onClick:()=>{l(20),n(t.Scribble),s==null||s.setPattern(t.Scribble),i()}}),e.createElement("img",{src:c===t.Erase?S:E,onClick:()=>{l(20),n(t.Erase),s==null||s.setPattern(t.Erase),i()}})),e.createElement("div",{className:r("scribble","silder")},e.createElement("span",{className:r("scribble","circle")}),e.createElement(p,{onChange:a=>{l(a),i(),s==null||s.setPenSize(a)},min:1,max:50,style:{width:"60%"},value:o}),e.createElement("span",{className:r("scribble","circle"),style:{width:"10px",height:"10px"}})))};export{v as default};
1
+ import e,{useState as n}from"react";import{Slider as p}from"antd";import u from"../../../../assets/attributeIcon/pen_a.svg.js";import g from"../../../../assets/attributeIcon/pen.svg.js";import S from"../../../../assets/attributeIcon/eraser_a.svg.js";import E from"../../../../assets/attributeIcon/eraser.svg.js";import{getClassName as r}from"../../../../utils/dom.js";import{EScribblePattern as t}from"../../../../data/enums/ToolType.js";import{useSelector as f}from"../../../../store/ctx.js";const v=m=>{const{onChange:b}=m,s=f(a=>a.annotation.toolInstance),[i,d]=n(20),[l,o]=n(t.Scribble),c=()=>{b(l,i)};return e.createElement("div",{className:r("scribble")},e.createElement("div",{className:r("scribble","select")},e.createElement("img",{src:l===t.Scribble?u:g,onClick:()=>{o(t.Scribble),s==null||s.setPattern(t.Scribble),c()}}),e.createElement("img",{src:l===t.Erase?S:E,onClick:()=>{o(t.Erase),s==null||s.setPattern(t.Erase),c()}})),e.createElement("div",{className:r("scribble","silder")},e.createElement("span",{className:r("scribble","circle")}),e.createElement(p,{onChange:a=>{d(a),c(),s==null||s.setPenSize(a)},min:1,max:50,style:{width:"60%"},value:i}),e.createElement("span",{className:r("scribble","circle"),style:{width:"10px",height:"10px"}})))};export{v as default};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/ScribbleSidebar/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport { Slider } from 'antd';\nimport penActivate from '@/assets/attributeIcon/pen_a.svg';\nimport pen from '@/assets/attributeIcon/pen.svg';\nimport eraserActivate from '@/assets/attributeIcon/eraser_a.svg';\nimport eraser from '@/assets/attributeIcon/eraser.svg';\nimport { getClassName } from '@/utils/dom';\nimport { AppState } from '@/store';\nimport { EScribblePattern } from '@/data/enums/ToolType';\nimport { useSelector } from '@/store/ctx';\n\ninterface IProps {\n // toolInstance?: GraphToolInstance;\n // stepInfo?: IStepInfo;\n onChange: (tool: number, values: number) => void;\n}\n\nconst ScribbleSidebar: React.FC<IProps> = (props) => {\n const { onChange } = props;\n // 查看时候默认值\n const toolInstance = useSelector((state: AppState) => state.annotation.toolInstance);\n const [silderValue, setSilderValue] = useState(20);\n const [selectTool, setSelectTool] = useState(EScribblePattern.Scribble);\n\n const changeValue = () => {\n onChange(selectTool, silderValue);\n };\n\n return (\n <div className={getClassName('scribble')}>\n <div className={getClassName('scribble', 'select')}>\n <img\n src={selectTool === EScribblePattern.Scribble ? penActivate : pen}\n onClick={() => {\n setSilderValue(20);\n setSelectTool(EScribblePattern.Scribble);\n toolInstance?.setPattern(EScribblePattern.Scribble);\n changeValue();\n }}\n />\n <img\n src={selectTool === EScribblePattern.Erase ? eraserActivate : eraser}\n onClick={() => {\n setSilderValue(20);\n setSelectTool(EScribblePattern.Erase);\n toolInstance?.setPattern(EScribblePattern.Erase);\n\n changeValue();\n }}\n />\n </div>\n <div className={getClassName('scribble', 'silder')}>\n <span className={getClassName('scribble', 'circle')} />\n <Slider\n onChange={(v: number) => {\n setSilderValue(v);\n changeValue();\n toolInstance?.setPenSize(v);\n }}\n min={1}\n max={50}\n style={{ width: '60%' }}\n value={silderValue}\n />\n <span\n className={getClassName('scribble', 'circle')}\n style={{ width: '10px', height: '10px' }}\n />\n </div>\n </div>\n );\n};\n\nexport default ScribbleSidebar;\n"],"names":["penActivate","pen","eraserActivate","eraser"],"mappings":";;;;;;;;;;AAkBM,MAAA,eAAA,GAAoC,CAAC,KAAU,KAAA;AACnD,EAAA,MAAM,CAAE,QAAa,CAAA,GAAA,KAAA,CAAA;AAErB,EAAA,MAAM,YAAe,GAAA,WAAA,CAAY,CAAC,KAAA,KAAoB,MAAM,UAAW,CAAA,YAAA,CAAA,CAAA;AACvE,EAAM,MAAA,CAAC,WAAa,EAAA,cAAA,CAAA,GAAkB,QAAS,CAAA,EAAA,CAAA,CAAA;AAC/C,EAAA,MAAM,CAAC,UAAA,EAAY,aAAiB,CAAA,GAAA,QAAA,CAAS,gBAAiB,CAAA,QAAA,CAAA,CAAA;AAE9D,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,QAAA,CAAS,UAAY,EAAA,WAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAGvB,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,WAAW,YAAa,CAAA,UAAA,CAAA;AAAA,GAAA,sCAC1B,KAAD,EAAA;AAAA,IAAK,SAAA,EAAW,aAAa,UAAY,EAAA,QAAA,CAAA;AAAA,GAAA,sCACtC,KAAD,EAAA;AAAA,IACE,GAAK,EAAA,UAAA,KAAe,gBAAiB,CAAA,QAAA,GAAWA,GAAc,GAAAC,KAAA;AAAA,IAC9D,SAAS,MAAM;AACb,MAAe,cAAA,CAAA,EAAA,CAAA,CAAA;AACf,MAAA,aAAA,CAAc,gBAAiB,CAAA,QAAA,CAAA,CAAA;AAC/B,MAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,WAAW,gBAAiB,CAAA,QAAA,CAAA,CAAA;AAC1C,MAAA,WAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA,sCAGH,KAAD,EAAA;AAAA,IACE,GAAK,EAAA,UAAA,KAAe,gBAAiB,CAAA,KAAA,GAAQC,KAAiB,GAAAC,KAAA;AAAA,IAC9D,SAAS,MAAM;AACb,MAAe,cAAA,CAAA,EAAA,CAAA,CAAA;AACf,MAAA,aAAA,CAAc,gBAAiB,CAAA,KAAA,CAAA,CAAA;AAC/B,MAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,WAAW,gBAAiB,CAAA,KAAA,CAAA,CAAA;AAE1C,MAAA,WAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA,sCAIL,KAAD,EAAA;AAAA,IAAK,SAAA,EAAW,aAAa,UAAY,EAAA,QAAA,CAAA;AAAA,GAAA,sCACtC,MAAD,EAAA;AAAA,IAAM,SAAA,EAAW,aAAa,UAAY,EAAA,QAAA,CAAA;AAAA,GAAA,CAAA,sCACzC,MAAD,EAAA;AAAA,IACE,QAAA,EAAU,CAAC,CAAc,KAAA;AACvB,MAAe,cAAA,CAAA,CAAA,CAAA,CAAA;AACf,MAAA,WAAA,EAAA,CAAA;AACA,MAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,UAAW,CAAA,CAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAE3B,GAAK,EAAA,CAAA;AAAA,IACL,GAAK,EAAA,EAAA;AAAA,IACL,KAAA,EAAO,CAAE,KAAO,EAAA,KAAA,CAAA;AAAA,IAChB,KAAO,EAAA,WAAA;AAAA,GAAA,CAAA,sCAER,MAAD,EAAA;AAAA,IACE,SAAA,EAAW,aAAa,UAAY,EAAA,QAAA,CAAA;AAAA,IACpC,KAAO,EAAA,CAAE,KAAO,EAAA,MAAA,EAAQ,MAAQ,EAAA,MAAA,CAAA;AAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/sidebar/ScribbleSidebar/index.tsx"],"sourcesContent":["import React, { useState } from 'react';\n\nimport { Slider } from 'antd';\nimport penActivate from '@/assets/attributeIcon/pen_a.svg';\nimport pen from '@/assets/attributeIcon/pen.svg';\nimport eraserActivate from '@/assets/attributeIcon/eraser_a.svg';\nimport eraser from '@/assets/attributeIcon/eraser.svg';\nimport { getClassName } from '@/utils/dom';\nimport { AppState } from '@/store';\nimport { EScribblePattern } from '@/data/enums/ToolType';\nimport { useSelector } from '@/store/ctx';\n\ninterface IProps {\n // toolInstance?: GraphToolInstance;\n // stepInfo?: IStepInfo;\n onChange: (tool: number, values: number) => void;\n}\n\nconst ScribbleSidebar: React.FC<IProps> = (props) => {\n const { onChange } = props;\n // 查看时候默认值\n const toolInstance = useSelector((state: AppState) => state.annotation.toolInstance);\n const [silderValue, setSilderValue] = useState(20);\n const [selectTool, setSelectTool] = useState(EScribblePattern.Scribble);\n\n const changeValue = () => {\n onChange(selectTool, silderValue);\n };\n\n return (\n <div className={getClassName('scribble')}>\n <div className={getClassName('scribble', 'select')}>\n <img\n src={selectTool === EScribblePattern.Scribble ? penActivate : pen}\n onClick={() => {\n setSelectTool(EScribblePattern.Scribble);\n toolInstance?.setPattern(EScribblePattern.Scribble);\n changeValue();\n }}\n />\n <img\n src={selectTool === EScribblePattern.Erase ? eraserActivate : eraser}\n onClick={() => {\n setSelectTool(EScribblePattern.Erase);\n toolInstance?.setPattern(EScribblePattern.Erase);\n\n changeValue();\n }}\n />\n </div>\n <div className={getClassName('scribble', 'silder')}>\n <span className={getClassName('scribble', 'circle')} />\n <Slider\n onChange={(v: number) => {\n setSilderValue(v);\n changeValue();\n toolInstance?.setPenSize(v);\n }}\n min={1}\n max={50}\n style={{ width: '60%' }}\n value={silderValue}\n />\n <span\n className={getClassName('scribble', 'circle')}\n style={{ width: '10px', height: '10px' }}\n />\n </div>\n </div>\n );\n};\n\nexport default ScribbleSidebar;\n"],"names":["penActivate","pen","eraserActivate","eraser"],"mappings":";;;;;;;;;;AAkBM,MAAA,eAAA,GAAoC,CAAC,KAAU,KAAA;AACnD,EAAA,MAAM,CAAE,QAAa,CAAA,GAAA,KAAA,CAAA;AAErB,EAAA,MAAM,YAAe,GAAA,WAAA,CAAY,CAAC,KAAA,KAAoB,MAAM,UAAW,CAAA,YAAA,CAAA,CAAA;AACvE,EAAM,MAAA,CAAC,WAAa,EAAA,cAAA,CAAA,GAAkB,QAAS,CAAA,EAAA,CAAA,CAAA;AAC/C,EAAA,MAAM,CAAC,UAAA,EAAY,aAAiB,CAAA,GAAA,QAAA,CAAS,gBAAiB,CAAA,QAAA,CAAA,CAAA;AAE9D,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,QAAA,CAAS,UAAY,EAAA,WAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAGvB,EAAA,2CACG,KAAD,EAAA;AAAA,IAAK,WAAW,YAAa,CAAA,UAAA,CAAA;AAAA,GAAA,sCAC1B,KAAD,EAAA;AAAA,IAAK,SAAA,EAAW,aAAa,UAAY,EAAA,QAAA,CAAA;AAAA,GAAA,sCACtC,KAAD,EAAA;AAAA,IACE,GAAK,EAAA,UAAA,KAAe,gBAAiB,CAAA,QAAA,GAAWA,GAAc,GAAAC,KAAA;AAAA,IAC9D,SAAS,MAAM;AACb,MAAA,aAAA,CAAc,gBAAiB,CAAA,QAAA,CAAA,CAAA;AAC/B,MAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,WAAW,gBAAiB,CAAA,QAAA,CAAA,CAAA;AAC1C,MAAA,WAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA,sCAGH,KAAD,EAAA;AAAA,IACE,GAAK,EAAA,UAAA,KAAe,gBAAiB,CAAA,KAAA,GAAQC,KAAiB,GAAAC,KAAA;AAAA,IAC9D,SAAS,MAAM;AACb,MAAA,aAAA,CAAc,gBAAiB,CAAA,KAAA,CAAA,CAAA;AAC/B,MAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,WAAW,gBAAiB,CAAA,KAAA,CAAA,CAAA;AAE1C,MAAA,WAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA,sCAIL,KAAD,EAAA;AAAA,IAAK,SAAA,EAAW,aAAa,UAAY,EAAA,QAAA,CAAA;AAAA,GAAA,sCACtC,MAAD,EAAA;AAAA,IAAM,SAAA,EAAW,aAAa,UAAY,EAAA,QAAA,CAAA;AAAA,GAAA,CAAA,sCACzC,MAAD,EAAA;AAAA,IACE,QAAA,EAAU,CAAC,CAAc,KAAA;AACvB,MAAe,cAAA,CAAA,CAAA,CAAA,CAAA;AACf,MAAA,WAAA,EAAA,CAAA;AACA,MAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAc,UAAW,CAAA,CAAA,CAAA,CAAA;AAAA,KAAA;AAAA,IAE3B,GAAK,EAAA,CAAA;AAAA,IACL,GAAK,EAAA,EAAA;AAAA,IACL,KAAA,EAAO,CAAE,KAAO,EAAA,KAAA,CAAA;AAAA,IAChB,KAAO,EAAA,WAAA;AAAA,GAAA,CAAA,sCAER,MAAD,EAAA;AAAA,IACE,SAAA,EAAW,aAAa,UAAY,EAAA,QAAA,CAAA;AAAA,IACpC,KAAO,EAAA,CAAE,KAAO,EAAA,MAAA,EAAQ,MAAQ,EAAA,MAAA,CAAA;AAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
@@ -1 +1 @@
1
- import{prefix as _}from"../../../constant/index.js";import{EToolName as o}from"../../../data/enums/ToolType.js";import P from"../../../utils/StepUtils.js";import{Collapse as m}from"antd/es";import e from"react";import{useTranslation as h}from"react-i18next";import L from"./AnnotationText/index.js";import O from"./ClearIcon/index.js";import R,{PointCloudOperation as x}from"./GeneralOperation/index.js";import w from"./ImgAttributeInfo/index.js";import z from"./SwitchAttributeList/index.js";import s,{expandIconFuc as N}from"./TagSidebar/index.js";import g from"./TextToolSidebar/index.js";import I from"./PointCloudToolSidebar/index.js";import B from"./ToolStyle/index.js";import{cTool as G}from"@labelbee/lb-annotation";import K from"./ScribbleSidebar/index.js";import{ToolIcons as U}from"./ToolIcons.js";import{useSelector as V}from"../../../store/ctx.js";const{EVideoToolName:k,EPointCloudName:F}=G,{Panel:j}=m,t=`${_}-sidebar`,q=({sider:r})=>{const d=V(l=>P.getCurrentStepInfo(l.annotation.step,l.annotation.stepList)),n=d==null?void 0:d.tool,{t:u}=h();if(!n)return null;const v=l=>{const S=e.createElement(B,null);return e.createElement(j,{header:u("Style"),className:"panel",key:l},S)},p=e.createElement(U,{toolName:n,onChange:()=>{}}),a=e.createElement(z,null),f=e.createElement(L,null),E=e.createElement(m,{defaultActiveKey:["1","imgAttribute"],bordered:!1,expandIconPosition:"right",className:`${t}__content`,expandIcon:N},v("1")),b=e.createElement(m,{defaultActiveKey:["1","imgAttribute"],bordered:!1,expandIconPosition:"right",className:`${t}__content`,expandIcon:N},e.createElement(j,{header:e.createElement("div",null,u("Adjust"),e.createElement(O,null)),className:"panel",key:"imgAttribute"},e.createElement(w,null))),i=e.createElement(R,null),C=e.createElement(s,null),$=e.createElement(g,null),T=e.createElement(K,{onChange:(l,S)=>{}}),c=e.createElement("div",{className:`${t}__horizontal`}),A=e.createElement(I,null),y=e.createElement(x,null);return r?typeof r=="function"?e.createElement("div",{className:`${t}`},r({toolIcon:p,attributeList:a,annotationText:f,toolStyle:E,imageAttributeInfo:b,operation:i,tagToolSideBar:C,textToolSideBar:$,horizontal:c,pointCloudToolSidebar:A,pointCloudOperation:y,scribbleSidebar:T})):r:[o.Rect,o.Point,o.Line,o.Rect,o.Polygon].includes(n)?e.createElement("div",{className:`${t}`},p,c,a,f,c,e.createElement("div",{className:`${t}__content`},E,b),i):n===o.Tag?e.createElement("div",{className:`${t}`},e.createElement(s,null)):n===k.VideoTagTool?e.createElement("div",{className:`${t}`},e.createElement("div",{className:`${t}__content`},e.createElement(s,null)),i):n===o.Text?e.createElement("div",{className:`${t}`},e.createElement(g,null)):n===F.PointCloud?e.createElement("div",{className:`${t}`},e.createElement("div",{className:`${t}__content`},e.createElement(I,null)),e.createElement(x,null)):n===o.ScribbleTool?e.createElement("div",{className:`${t}`},T,a):null};export{q as default,t as sidebarCls};
1
+ import{prefix as y}from"../../../constant/index.js";import{EToolName as o}from"../../../data/enums/ToolType.js";import P from"../../../utils/StepUtils.js";import{Collapse as m}from"antd/es";import e from"react";import{useTranslation as h}from"react-i18next";import L from"./AnnotationText/index.js";import O from"./ClearIcon/index.js";import R,{PointCloudOperation as x}from"./GeneralOperation/index.js";import w from"./ImgAttributeInfo/index.js";import z from"./SwitchAttributeList/index.js";import s,{expandIconFuc as N}from"./TagSidebar/index.js";import g from"./TextToolSidebar/index.js";import I from"./PointCloudToolSidebar/index.js";import B from"./ToolStyle/index.js";import{cTool as G}from"@labelbee/lb-annotation";import K from"./ScribbleSidebar/index.js";import{ToolIcons as U}from"./ToolIcons.js";import{useSelector as V}from"../../../store/ctx.js";const{EVideoToolName:k,EPointCloudName:F}=G,{Panel:j}=m,t=`${y}-sidebar`,q=({sider:r})=>{const d=V(l=>P.getCurrentStepInfo(l.annotation.step,l.annotation.stepList)),n=d==null?void 0:d.tool,{t:u}=h();if(!n)return null;const v=l=>{const S=e.createElement(B,null);return e.createElement(j,{header:u("Style"),className:"panel",key:l},S)},p=e.createElement(U,{toolName:n,onChange:()=>{}}),i=e.createElement(z,null),f=e.createElement(L,null),E=e.createElement(m,{defaultActiveKey:["1","imgAttribute"],bordered:!1,expandIconPosition:"right",className:`${t}__content`,expandIcon:N},v("1")),b=e.createElement(m,{defaultActiveKey:["1","imgAttribute"],bordered:!1,expandIconPosition:"right",className:`${t}__content`,expandIcon:N},e.createElement(j,{header:e.createElement("div",null,u("Adjust"),e.createElement(O,null)),className:"panel",key:"imgAttribute"},e.createElement(w,null))),a=e.createElement(R,null),$=e.createElement(s,null),C=e.createElement(g,null),T=e.createElement(K,{onChange:(l,S)=>{}}),c=e.createElement("div",{className:`${t}__horizontal`}),_=e.createElement(I,null),A=e.createElement(x,null);return r?typeof r=="function"?e.createElement("div",{className:`${t}`},r({toolIcon:p,attributeList:i,annotationText:f,toolStyle:E,imageAttributeInfo:b,operation:a,tagToolSideBar:$,textToolSideBar:C,horizontal:c,pointCloudToolSidebar:_,pointCloudOperation:A,scribbleSidebar:T})):r:[o.Rect,o.Point,o.Line,o.Rect,o.Polygon].includes(n)?e.createElement("div",{className:`${t}`},p,c,i,f,c,e.createElement("div",{className:`${t}__content`},E,b),a):n===o.Tag?e.createElement("div",{className:`${t}`},e.createElement(s,null)):n===k.VideoTagTool?e.createElement("div",{className:`${t}`},e.createElement("div",{className:`${t}__content`},e.createElement(s,null)),a):n===o.Text?e.createElement("div",{className:`${t}`},e.createElement(g,null)):n===F.PointCloud?e.createElement("div",{className:`${t}`},e.createElement("div",{className:`${t}__content`},e.createElement(I,null)),e.createElement(x,null)):n===o.ScribbleTool?e.createElement("div",{className:`${t}`},e.createElement("div",{className:`${t}__content`},T,i),a):null};export{q as default,t as sidebarCls};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/views/MainView/sidebar/index.tsx"],"sourcesContent":["import { prefix } from '@/constant';\nimport { EToolName } from '@/data/enums/ToolType';\nimport { AppState } from '@/store';\nimport { Sider } from '@/types/main';\nimport StepUtils from '@/utils/StepUtils';\nimport { Collapse } from 'antd/es';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport AnnotationText from './AnnotationText';\nimport ClearIcon from './ClearIcon';\nimport GeneralOperation, { PointCloudOperation } from './GeneralOperation';\nimport ImgAttributeInfo from './ImgAttributeInfo';\nimport SwitchAttributeList from './SwitchAttributeList';\nimport TagSidebar, { expandIconFuc } from './TagSidebar';\nimport TextToolSidebar from './TextToolSidebar';\nimport PointCloudToolSidebar from './PointCloudToolSidebar';\nimport ToolStyle from './ToolStyle';\nimport { cTool } from '@labelbee/lb-annotation';\nimport ScribbleSidebar from './ScribbleSidebar';\nimport { ToolIcons } from './ToolIcons';\nimport { useSelector } from '@/store/ctx';\n\nconst { EVideoToolName, EPointCloudName } = cTool;\n\nconst { Panel } = Collapse;\n\ninterface IProps {\n toolName?: EToolName;\n sider?: Sider;\n}\n\nexport const sidebarCls = `${prefix}-sidebar`;\nconst Sidebar: React.FC<IProps> = ({ sider }) => {\n const stepInfo = useSelector((state: AppState) =>\n StepUtils.getCurrentStepInfo(state.annotation.step, state.annotation.stepList),\n );\n const toolName = stepInfo?.tool;\n const { t } = useTranslation();\n\n if (!toolName) {\n return null;\n }\n\n /**\n * 样式面板, 包含透明度、线框、颜色\n * @param key 虚拟dom的key\n */\n const renderStylePanel = (key: string) => {\n const ToolStyleComponent = <ToolStyle />;\n return (\n <Panel header={t('Style')} className='panel' key={key}>\n {ToolStyleComponent}\n </Panel>\n );\n };\n\n // onChange is empty by default.\n const toolIcon = <ToolIcons toolName={toolName} onChange={() => {}} />;\n const attributeList = <SwitchAttributeList />;\n\n const annotationText = <AnnotationText />;\n\n const toolStyle = (\n <Collapse\n defaultActiveKey={['1', 'imgAttribute']}\n bordered={false}\n expandIconPosition='right'\n className={`${sidebarCls}__content`}\n expandIcon={expandIconFuc}\n >\n {renderStylePanel('1')}\n </Collapse>\n );\n\n const imageAttributeInfo = (\n <Collapse\n defaultActiveKey={['1', 'imgAttribute']}\n bordered={false}\n expandIconPosition='right'\n className={`${sidebarCls}__content`}\n expandIcon={expandIconFuc}\n >\n <Panel\n header={\n <div>\n {t('Adjust')}\n\n <ClearIcon />\n </div>\n }\n className='panel'\n key='imgAttribute'\n >\n <ImgAttributeInfo />\n </Panel>\n </Collapse>\n );\n\n const operation = <GeneralOperation />;\n\n const tagToolSideBar = <TagSidebar />;\n\n const textToolSideBar = <TextToolSidebar />;\n\n const scribbleSidebar = (\n <ScribbleSidebar\n onChange={(t, i) => {\n // 接收\n }}\n />\n );\n\n const horizontal = <div className={`${sidebarCls}__horizontal`} />;\n\n const pointCloudToolSidebar = <PointCloudToolSidebar />;\n\n const pointCloudOperation = <PointCloudOperation />;\n\n if (sider) {\n if (typeof sider === 'function') {\n return (\n <div className={`${sidebarCls}`}>\n {sider({\n toolIcon,\n attributeList,\n annotationText,\n toolStyle,\n imageAttributeInfo,\n operation,\n tagToolSideBar,\n textToolSideBar,\n horizontal,\n\n pointCloudToolSidebar,\n pointCloudOperation,\n scribbleSidebar,\n })}\n </div>\n );\n } else {\n return sider;\n }\n }\n\n if (\n (\n [\n EToolName.Rect,\n EToolName.Point,\n EToolName.Line,\n EToolName.Rect,\n EToolName.Polygon,\n ] as string[]\n ).includes(toolName)\n ) {\n return (\n <div className={`${sidebarCls}`}>\n {toolIcon}\n {horizontal}\n {attributeList}\n {annotationText}\n {horizontal}\n <div className={`${sidebarCls}__content`}>\n {toolStyle}\n {imageAttributeInfo}\n </div>\n {operation}\n </div>\n );\n }\n\n if (toolName === EToolName.Tag) {\n return (\n <div className={`${sidebarCls}`}>\n <TagSidebar />\n </div>\n );\n }\n\n if (toolName === EVideoToolName.VideoTagTool) {\n return (\n <div className={`${sidebarCls}`}>\n <div className={`${sidebarCls}__content`}>\n <TagSidebar />\n </div>\n {operation}\n </div>\n );\n }\n\n if (toolName === EToolName.Text) {\n return (\n <div className={`${sidebarCls}`}>\n <TextToolSidebar />\n </div>\n );\n }\n\n if (toolName === EPointCloudName.PointCloud) {\n return (\n <div className={`${sidebarCls}`}>\n <div className={`${sidebarCls}__content`}>\n <PointCloudToolSidebar />\n </div>\n <PointCloudOperation />\n </div>\n );\n }\n\n if (toolName === EToolName.ScribbleTool) {\n return (\n <div className={`${sidebarCls}`}>\n {scribbleSidebar}\n {attributeList}\n </div>\n );\n }\n\n return null;\n};\n\nexport default Sidebar;\n"],"names":["ClearIcon"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/views/MainView/sidebar/index.tsx"],"sourcesContent":["import { prefix } from '@/constant';\nimport { EToolName } from '@/data/enums/ToolType';\nimport { AppState } from '@/store';\nimport { Sider } from '@/types/main';\nimport StepUtils from '@/utils/StepUtils';\nimport { Collapse } from 'antd/es';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport AnnotationText from './AnnotationText';\nimport ClearIcon from './ClearIcon';\nimport GeneralOperation, { PointCloudOperation } from './GeneralOperation';\nimport ImgAttributeInfo from './ImgAttributeInfo';\nimport SwitchAttributeList from './SwitchAttributeList';\nimport TagSidebar, { expandIconFuc } from './TagSidebar';\nimport TextToolSidebar from './TextToolSidebar';\nimport PointCloudToolSidebar from './PointCloudToolSidebar';\nimport ToolStyle from './ToolStyle';\nimport { cTool } from '@labelbee/lb-annotation';\nimport ScribbleSidebar from './ScribbleSidebar';\nimport { ToolIcons } from './ToolIcons';\nimport { useSelector } from '@/store/ctx';\n\nconst { EVideoToolName, EPointCloudName } = cTool;\n\nconst { Panel } = Collapse;\n\ninterface IProps {\n toolName?: EToolName;\n sider?: Sider;\n}\n\nexport const sidebarCls = `${prefix}-sidebar`;\nconst Sidebar: React.FC<IProps> = ({ sider }) => {\n const stepInfo = useSelector((state: AppState) =>\n StepUtils.getCurrentStepInfo(state.annotation.step, state.annotation.stepList),\n );\n const toolName = stepInfo?.tool;\n const { t } = useTranslation();\n\n if (!toolName) {\n return null;\n }\n\n /**\n * 样式面板, 包含透明度、线框、颜色\n * @param key 虚拟dom的key\n */\n const renderStylePanel = (key: string) => {\n const ToolStyleComponent = <ToolStyle />;\n return (\n <Panel header={t('Style')} className='panel' key={key}>\n {ToolStyleComponent}\n </Panel>\n );\n };\n\n // onChange is empty by default.\n const toolIcon = <ToolIcons toolName={toolName} onChange={() => {}} />;\n const attributeList = <SwitchAttributeList />;\n\n const annotationText = <AnnotationText />;\n\n const toolStyle = (\n <Collapse\n defaultActiveKey={['1', 'imgAttribute']}\n bordered={false}\n expandIconPosition='right'\n className={`${sidebarCls}__content`}\n expandIcon={expandIconFuc}\n >\n {renderStylePanel('1')}\n </Collapse>\n );\n\n const imageAttributeInfo = (\n <Collapse\n defaultActiveKey={['1', 'imgAttribute']}\n bordered={false}\n expandIconPosition='right'\n className={`${sidebarCls}__content`}\n expandIcon={expandIconFuc}\n >\n <Panel\n header={\n <div>\n {t('Adjust')}\n\n <ClearIcon />\n </div>\n }\n className='panel'\n key='imgAttribute'\n >\n <ImgAttributeInfo />\n </Panel>\n </Collapse>\n );\n\n const operation = <GeneralOperation />;\n\n const tagToolSideBar = <TagSidebar />;\n\n const textToolSideBar = <TextToolSidebar />;\n\n const scribbleSidebar = (\n <ScribbleSidebar\n onChange={(t, i) => {\n // 接收\n }}\n />\n );\n\n const horizontal = <div className={`${sidebarCls}__horizontal`} />;\n\n const pointCloudToolSidebar = <PointCloudToolSidebar />;\n\n const pointCloudOperation = <PointCloudOperation />;\n\n if (sider) {\n if (typeof sider === 'function') {\n return (\n <div className={`${sidebarCls}`}>\n {sider({\n toolIcon,\n attributeList,\n annotationText,\n toolStyle,\n imageAttributeInfo,\n operation,\n tagToolSideBar,\n textToolSideBar,\n horizontal,\n\n pointCloudToolSidebar,\n pointCloudOperation,\n scribbleSidebar,\n })}\n </div>\n );\n } else {\n return sider;\n }\n }\n\n if (\n (\n [\n EToolName.Rect,\n EToolName.Point,\n EToolName.Line,\n EToolName.Rect,\n EToolName.Polygon,\n ] as string[]\n ).includes(toolName)\n ) {\n return (\n <div className={`${sidebarCls}`}>\n {toolIcon}\n {horizontal}\n {attributeList}\n {annotationText}\n {horizontal}\n <div className={`${sidebarCls}__content`}>\n {toolStyle}\n {imageAttributeInfo}\n </div>\n {operation}\n </div>\n );\n }\n\n if (toolName === EToolName.Tag) {\n return (\n <div className={`${sidebarCls}`}>\n <TagSidebar />\n </div>\n );\n }\n\n if (toolName === EVideoToolName.VideoTagTool) {\n return (\n <div className={`${sidebarCls}`}>\n <div className={`${sidebarCls}__content`}>\n <TagSidebar />\n </div>\n {operation}\n </div>\n );\n }\n\n if (toolName === EToolName.Text) {\n return (\n <div className={`${sidebarCls}`}>\n <TextToolSidebar />\n </div>\n );\n }\n\n if (toolName === EPointCloudName.PointCloud) {\n return (\n <div className={`${sidebarCls}`}>\n <div className={`${sidebarCls}__content`}>\n <PointCloudToolSidebar />\n </div>\n <PointCloudOperation />\n </div>\n );\n }\n\n if (toolName === EToolName.ScribbleTool) {\n return (\n <div className={`${sidebarCls}`}>\n <div className={`${sidebarCls}__content`}>\n {scribbleSidebar}\n {attributeList}\n </div>\n {operation}\n </div>\n );\n }\n\n return null;\n};\n\nexport default Sidebar;\n"],"names":["ClearIcon"],"mappings":";;;;;;;;;;;;;;;;;;;;AAsBA,MAAM,CAAE,gBAAgB,eAAoB,CAAA,GAAA,KAAA,CAAA;AAE5C,MAAM,CAAE,KAAU,CAAA,GAAA,QAAA,CAAA;AAOX,MAAM,aAAa,CAAG,EAAA,MAAA,CAAA,QAAA,EAAA;AACvB,MAAA,OAAA,GAA4B,CAAC,CAAE,KAAY,CAAA,KAAA;AAC/C,EAAM,MAAA,QAAA,GAAW,WAAY,CAAA,CAAC,KAC5B,KAAA,SAAA,CAAU,mBAAmB,KAAM,CAAA,UAAA,CAAW,IAAM,EAAA,KAAA,CAAM,UAAW,CAAA,QAAA,CAAA,CAAA,CAAA;AAEvE,EAAA,MAAM,WAAW,QAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,IAAA,CAAA;AAC3B,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AAEd,EAAA,IAAI,CAAC,QAAU,EAAA;AACb,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA;AAOT,EAAM,MAAA,gBAAA,GAAmB,CAAC,GAAgB,KAAA;AACxC,IAAM,MAAA,kBAAA,uCAAsB,SAAD,EAAA,IAAA,CAAA,CAAA;AAC3B,IAAA,2CACG,KAAD,EAAA;AAAA,MAAO,QAAQ,CAAE,CAAA,OAAA,CAAA;AAAA,MAAU,SAAU,EAAA,OAAA;AAAA,MAAQ,GAAA;AAAA,KAC1C,EAAA,kBAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAMP,EAAM,MAAA,QAAA,uCAAY,SAAD,EAAA;AAAA,IAAW,QAAA;AAAA,IAAoB,UAAU,MAAM;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA;AAChE,EAAM,MAAA,aAAA,uCAAiB,mBAAD,EAAA,IAAA,CAAA,CAAA;AAEtB,EAAM,MAAA,cAAA,uCAAkB,cAAD,EAAA,IAAA,CAAA,CAAA;AAEvB,EAAM,MAAA,SAAA,uCACH,QAAD,EAAA;AAAA,IACE,gBAAA,EAAkB,CAAC,GAAK,EAAA,cAAA,CAAA;AAAA,IACxB,QAAU,EAAA,KAAA;AAAA,IACV,kBAAmB,EAAA,OAAA;AAAA,IACnB,WAAW,CAAG,EAAA,UAAA,CAAA,SAAA,CAAA;AAAA,IACd,UAAY,EAAA,aAAA;AAAA,GAAA,EAEX,gBAAiB,CAAA,GAAA,CAAA,CAAA,CAAA;AAItB,EAAM,MAAA,kBAAA,uCACH,QAAD,EAAA;AAAA,IACE,gBAAA,EAAkB,CAAC,GAAK,EAAA,cAAA,CAAA;AAAA,IACxB,QAAU,EAAA,KAAA;AAAA,IACV,kBAAmB,EAAA,OAAA;AAAA,IACnB,WAAW,CAAG,EAAA,UAAA,CAAA,SAAA,CAAA;AAAA,IACd,UAAY,EAAA,aAAA;AAAA,GAAA,sCAEX,KAAD,EAAA;AAAA,IACE,wBACG,KAAA,CAAA,aAAA,CAAA,KAAA,EAAD,MACG,CAAE,CAAA,QAAA,CAAA,sCAEFA,SAAD,EAAA,IAAA,CAAA,CAAA;AAAA,IAGJ,SAAU,EAAA,OAAA;AAAA,IACV,GAAI,EAAA,cAAA;AAAA,GAAA,sCAEH,gBAAD,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA;AAKN,EAAM,MAAA,SAAA,uCAAa,gBAAD,EAAA,IAAA,CAAA,CAAA;AAElB,EAAM,MAAA,cAAA,uCAAkB,UAAD,EAAA,IAAA,CAAA,CAAA;AAEvB,EAAM,MAAA,eAAA,uCAAmB,eAAD,EAAA,IAAA,CAAA,CAAA;AAExB,EAAM,MAAA,eAAA,uCACH,eAAD,EAAA;AAAA,IACE,QAAA,EAAU,CAAC,EAAA,EAAG,CAAM,KAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA;AAMxB,EAAM,MAAA,UAAA,uCAAc,KAAD,EAAA;AAAA,IAAK,WAAW,CAAG,EAAA,UAAA,CAAA,YAAA,CAAA;AAAA,GAAA,CAAA,CAAA;AAEtC,EAAM,MAAA,qBAAA,uCAAyB,qBAAD,EAAA,IAAA,CAAA,CAAA;AAE9B,EAAM,MAAA,mBAAA,uCAAuB,mBAAD,EAAA,IAAA,CAAA,CAAA;AAE5B,EAAA,IAAI,KAAO,EAAA;AACT,IAAI,IAAA,OAAO,UAAU,UAAY,EAAA;AAC/B,MAAA,2CACG,KAAD,EAAA;AAAA,QAAK,WAAW,CAAG,EAAA,UAAA,CAAA,CAAA;AAAA,OAAA,EAChB,KAAM,CAAA;AAAA,QACL,QAAA;AAAA,QACA,aAAA;AAAA,QACA,cAAA;AAAA,QACA,SAAA;AAAA,QACA,kBAAA;AAAA,QACA,SAAA;AAAA,QACA,cAAA;AAAA,QACA,eAAA;AAAA,QACA,UAAA;AAAA,QAEA,qBAAA;AAAA,QACA,mBAAA;AAAA,QACA,eAAA;AAAA,OAAA,CAAA,CAAA,CAAA;AAAA,KAID,MAAA;AACL,MAAO,OAAA,KAAA,CAAA;AAAA,KAAA;AAAA,GAAA;AAIX,EAEI,IAAA;AAAA,IACE,SAAU,CAAA,IAAA;AAAA,IACV,SAAU,CAAA,KAAA;AAAA,IACV,SAAU,CAAA,IAAA;AAAA,IACV,SAAU,CAAA,IAAA;AAAA,IACV,SAAU,CAAA,OAAA;AAAA,GAAA,CAEZ,SAAS,QACX,CAAA,EAAA;AACA,IAAA,2CACG,KAAD,EAAA;AAAA,MAAK,WAAW,CAAG,EAAA,UAAA,CAAA,CAAA;AAAA,KAAA,EAChB,UACA,UACA,EAAA,aAAA,EACA,cACA,EAAA,UAAA,sCACA,KAAD,EAAA;AAAA,MAAK,WAAW,CAAG,EAAA,UAAA,CAAA,SAAA,CAAA;AAAA,KAAA,EAChB,WACA,kBAEF,CAAA,EAAA,SAAA,CAAA,CAAA;AAAA,GAAA;AAKP,EAAI,IAAA,QAAA,KAAa,UAAU,GAAK,EAAA;AAC9B,IAAA,2CACG,KAAD,EAAA;AAAA,MAAK,WAAW,CAAG,EAAA,UAAA,CAAA,CAAA;AAAA,KAAA,sCAChB,UAAD,EAAA,IAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAKN,EAAI,IAAA,QAAA,KAAa,eAAe,YAAc,EAAA;AAC5C,IAAA,2CACG,KAAD,EAAA;AAAA,MAAK,WAAW,CAAG,EAAA,UAAA,CAAA,CAAA;AAAA,KAAA,sCAChB,KAAD,EAAA;AAAA,MAAK,WAAW,CAAG,EAAA,UAAA,CAAA,SAAA,CAAA;AAAA,KACjB,kBAAA,KAAA,CAAA,aAAA,CAAC,YAAD,IAED,CAAA,CAAA,EAAA,SAAA,CAAA,CAAA;AAAA,GAAA;AAKP,EAAI,IAAA,QAAA,KAAa,UAAU,IAAM,EAAA;AAC/B,IAAA,2CACG,KAAD,EAAA;AAAA,MAAK,WAAW,CAAG,EAAA,UAAA,CAAA,CAAA;AAAA,KAAA,sCAChB,eAAD,EAAA,IAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAKN,EAAI,IAAA,QAAA,KAAa,gBAAgB,UAAY,EAAA;AAC3C,IAAA,2CACG,KAAD,EAAA;AAAA,MAAK,WAAW,CAAG,EAAA,UAAA,CAAA,CAAA;AAAA,KAAA,sCAChB,KAAD,EAAA;AAAA,MAAK,WAAW,CAAG,EAAA,UAAA,CAAA,SAAA,CAAA;AAAA,KAAA,kBAChB,KAAA,CAAA,aAAA,CAAA,qBAAA,EAAD,IAEF,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,mBAAD,EAAA,IAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAKN,EAAI,IAAA,QAAA,KAAa,UAAU,YAAc,EAAA;AACvC,IAAA,2CACG,KAAD,EAAA;AAAA,MAAK,WAAW,CAAG,EAAA,UAAA,CAAA,CAAA;AAAA,KAAA,sCAChB,KAAD,EAAA;AAAA,MAAK,WAAW,CAAG,EAAA,UAAA,CAAA,SAAA,CAAA;AAAA,KAAA,EAChB,iBACA,aAEF,CAAA,EAAA,SAAA,CAAA,CAAA;AAAA,GAAA;AAKP,EAAO,OAAA,IAAA,CAAA;AAAA;;;;"}
@@ -1 +1 @@
1
- import{Popover as b}from"antd/es";import e,{useState as S}from"react";import j from"../../../../../assets/annotation/toolHotKeyIcon/icon_kj1.svg.js";import k from"../../../../../assets/annotation/toolHotKeyIcon/icon_kj_h.svg.js";import{EToolName as l}from"../../../../../data/enums/ToolType.js";import I from"./rectToolShortCutTable/index.js";import R from"./point/index.js";import w from"./polygon/index.js";import H from"./line/index.js";import N from"./tag/index.js";import _ from"./text/index.js";import M from"./videoTag/index.js";import L from"./pointCloud/index.js";import{footerCls as K}from"../../index.js";import{useTranslation as P}from"react-i18next";import{cTool as V}from"@labelbee/lb-annotation";const{EVideoToolName:W,EPointCloudName:$}=V,g={[l.Rect]:I,[l.Tag]:N,[l.Point]:R,[l.Polygon]:w,[l.Line]:H,[l.Text]:_,[W.VideoTagTool]:M,[$.PointCloud]:L},A=({icon:r})=>typeof r=="string"?e.createElement("img",{width:16,height:16,src:r}):r||null,B=({style:r,title:u,toolName:c})=>{var y;const[h,m]=S(!1),{t:p}=P();if(!c)return null;const d={width:320,display:"flex",justifyContent:"space-between",margin:16},a={display:"block",padding:"0 3px",minWidth:"20px",marginRight:"3px",border:"1px solid rgba(204,204,204,1)",verticalAlign:"middle",fontSize:"12px",textAlign:"center"},f=(t,s)=>e.createElement("div",{style:d,key:s},e.createElement("span",{style:{display:"flex",alignItems:"center"}},e.createElement(A,{icon:t.icon}),e.createElement("span",{style:{marginLeft:t.icon?16:0}},p(t.name))),e.createElement("span",{style:{display:"flex",alignItems:"center"}},t.noticeInfo&&e.createElement("span",{style:{marginRight:"5px",color:"#CCCCCC"}},p(t.noticeInfo)),T(t.shortCut,t.shortCutUseHtml,t.linkSymbol))),T=(t,s=!1,x="+")=>{if(!t)return null;const v=t.map((o,n)=>{const i={display:"flex",alignItems:"center"};return s?e.createElement("span",{key:n,style:i},e.createElement("span",{style:a,dangerouslySetInnerHTML:{__html:o}})):n<t.length-1?typeof o=="number"?e.createElement("span",{key:n,style:i},e.createElement("span",{style:a},o),e.createElement("span",{style:{marginRight:"3px"}},"~")):(o==null?void 0:o.startsWith("data"))?e.createElement("span",{key:n,style:i},e.createElement("span",{className:"shortCutButton",style:{marginRight:"3px"}},e.createElement("img",{width:16,height:23,src:o})),e.createElement("span",{style:{marginRight:"3px"}},"+")):e.createElement("span",{key:n,style:i},e.createElement("span",{style:a},o),e.createElement("span",{style:{marginRight:"3px"}},x)):typeof o=="number"?e.createElement("span",{key:n,style:i},e.createElement("span",{style:a},o)):(o==null?void 0:o.startsWith("data"))?e.createElement("span",{className:"shortCutButton",key:n,style:{marginRight:"3px"}},e.createElement("img",{width:16,height:23,src:o})):e.createElement("span",{style:a,key:n},o)});return e.createElement("div",{style:{display:"flex",justifyContent:"space-around",alignItems:"center"}},v)},E=e.createElement("div",{className:`${K}__hotkey-content`},(y=g[c])==null?void 0:y.map((t,s)=>f(t,s))),C=r||{width:100};return g[c]?e.createElement(b,{placement:"topLeft",content:E,onMouseMove:()=>m(!0),onMouseLeave:()=>{m(!1)},overlayClassName:"tool-hotkeys-popover"},e.createElement("div",{className:"shortCutTitle",onMouseMove:()=>m(!0),onMouseLeave:()=>m(!1),style:C},u!=null?u:e.createElement("a",{className:"svg"},e.createElement("img",{src:h?k:j,width:15,height:13,style:{marginRight:"5px"}}),p("Hotkeys")))):null};export{B as default};
1
+ import{Popover as v}from"antd/es";import e,{useState as S}from"react";import j from"../../../../../assets/annotation/toolHotKeyIcon/icon_kj1.svg.js";import k from"../../../../../assets/annotation/toolHotKeyIcon/icon_kj_h.svg.js";import{EToolName as r}from"../../../../../data/enums/ToolType.js";import I from"./rectToolShortCutTable/index.js";import R from"./point/index.js";import w from"./polygon/index.js";import H from"./line/index.js";import N from"./tag/index.js";import _ from"./text/index.js";import M from"./videoTag/index.js";import L from"./pointCloud/index.js";import K from"./scribble/index.js";import{footerCls as P}from"../../index.js";import{useTranslation as V}from"react-i18next";import{cTool as W}from"@labelbee/lb-annotation";const{EVideoToolName:$,EPointCloudName:A}=W,g={[r.Rect]:I,[r.Tag]:N,[r.Point]:R,[r.Polygon]:w,[r.Line]:H,[r.Text]:_,[$.VideoTagTool]:M,[A.PointCloud]:L,[r.ScribbleTool]:K},B=({icon:l})=>typeof l=="string"?e.createElement("img",{width:16,height:16,src:l}):l||null,F=({style:l,title:u,toolName:c})=>{var y;const[h,m]=S(!1),{t:p}=V();if(!c)return null;const d={width:320,display:"flex",justifyContent:"space-between",margin:16},a={display:"block",padding:"0 3px",minWidth:"20px",marginRight:"3px",border:"1px solid rgba(204,204,204,1)",verticalAlign:"middle",fontSize:"12px",textAlign:"center"},f=(t,s)=>e.createElement("div",{style:d,key:s},e.createElement("span",{style:{display:"flex",alignItems:"center"}},e.createElement(B,{icon:t.icon}),e.createElement("span",{style:{marginLeft:t.icon?16:0}},p(t.name))),e.createElement("span",{style:{display:"flex",alignItems:"center"}},t.noticeInfo&&e.createElement("span",{style:{marginRight:"5px",color:"#CCCCCC"}},p(t.noticeInfo)),T(t.shortCut,t.shortCutUseHtml,t.linkSymbol))),T=(t,s=!1,b="+")=>{if(!t)return null;const x=t.map((o,n)=>{const i={display:"flex",alignItems:"center"};return s?e.createElement("span",{key:n,style:i},e.createElement("span",{style:a,dangerouslySetInnerHTML:{__html:o}})):n<t.length-1?typeof o=="number"?e.createElement("span",{key:n,style:i},e.createElement("span",{style:a},o),e.createElement("span",{style:{marginRight:"3px"}},"~")):(o==null?void 0:o.startsWith("data"))?e.createElement("span",{key:n,style:i},e.createElement("span",{className:"shortCutButton",style:{marginRight:"3px"}},e.createElement("img",{width:16,height:23,src:o})),e.createElement("span",{style:{marginRight:"3px"}},"+")):e.createElement("span",{key:n,style:i},e.createElement("span",{style:a},o),e.createElement("span",{style:{marginRight:"3px"}},b)):typeof o=="number"?e.createElement("span",{key:n,style:i},e.createElement("span",{style:a},o)):(o==null?void 0:o.startsWith("data"))?e.createElement("span",{className:"shortCutButton",key:n,style:{marginRight:"3px"}},e.createElement("img",{width:16,height:23,src:o})):e.createElement("span",{style:a,key:n},o)});return e.createElement("div",{style:{display:"flex",justifyContent:"space-around",alignItems:"center"}},x)},E=e.createElement("div",{className:`${P}__hotkey-content`},(y=g[c])==null?void 0:y.map((t,s)=>f(t,s))),C=l||{width:100};return g[c]?e.createElement(v,{placement:"topLeft",content:E,onMouseMove:()=>m(!0),onMouseLeave:()=>{m(!1)},overlayClassName:"tool-hotkeys-popover"},e.createElement("div",{className:"shortCutTitle",onMouseMove:()=>m(!0),onMouseLeave:()=>m(!1),style:C},u!=null?u:e.createElement("a",{className:"svg"},e.createElement("img",{src:h?k:j,width:15,height:13,style:{marginRight:"5px"}}),p("Hotkeys")))):null};export{F as default};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/views/MainView/toolFooter/FooterTips/ToolHotKey/index.tsx"],"sourcesContent":["import { Popover } from 'antd/es';\nimport _ from 'lodash';\nimport React, { useState } from 'react';\n\nimport hotKeySvg from '@/assets/annotation/toolHotKeyIcon/icon_kj1.svg';\nimport hotKeyHoverSvg from '@/assets/annotation/toolHotKeyIcon/icon_kj_h.svg';\nimport { EToolName } from '@/data/enums/ToolType';\nimport rectToolShortcutTable from './rectToolShortCutTable';\nimport pointToolShortcutTable from './point';\nimport polygonToolShortcutTable from './polygon';\nimport lineToolShortCutTable from './line';\nimport tagToolSingleShortCutTable from './tag';\nimport textToolShortCutTable from './text';\nimport videoToolShortCutTable from './videoTag';\nimport pointCloudShortCutTable from './pointCloud';\n\nimport { footerCls } from '../../index';\nimport { useTranslation } from 'react-i18next';\nimport { cTool } from '@labelbee/lb-annotation';\n\nconst { EVideoToolName, EPointCloudName } = cTool;\n\ninterface IProps {\n style?: any;\n title?: React.ReactElement<any>;\n toolName?: string;\n}\n\nconst shortCutTable: any = {\n [EToolName.Rect]: rectToolShortcutTable,\n [EToolName.Tag]: tagToolSingleShortCutTable,\n [EToolName.Point]: pointToolShortcutTable,\n [EToolName.Polygon]: polygonToolShortcutTable,\n [EToolName.Line]: lineToolShortCutTable,\n [EToolName.Text]: textToolShortCutTable,\n [EVideoToolName.VideoTagTool]: videoToolShortCutTable,\n [EPointCloudName.PointCloud]: pointCloudShortCutTable,\n};\n\nconst ToolHotKeyIcon = ({ icon }: { icon: React.ReactElement | string }) => {\n if (typeof icon === 'string') {\n return <img width={16} height={16} src={icon} />;\n }\n\n if (icon) {\n return icon;\n }\n\n return null;\n};\n\nconst ToolHotKey: React.FC<IProps> = ({ style, title, toolName }) => {\n const [svgFlag, setFlag] = useState(false);\n const { t } = useTranslation();\n\n if (!toolName) {\n return null;\n }\n\n const shortCutStyle = {\n width: 320,\n display: 'flex',\n justifyContent: 'space-between',\n margin: 16,\n };\n\n const shortCutNameStyles: React.CSSProperties = {\n display: 'block',\n padding: '0 3px',\n minWidth: '20px',\n marginRight: '3px',\n border: '1px solid rgba(204,204,204,1)',\n verticalAlign: 'middle',\n fontSize: '12px',\n textAlign: 'center',\n };\n\n const setHotKey = (info: any, index: number) => (\n <div style={shortCutStyle} key={index}>\n <span style={{ display: 'flex', alignItems: 'center' }}>\n <ToolHotKeyIcon icon={info.icon} />\n <span style={{ marginLeft: info.icon ? 16 : 0 }}>{t(info.name)}</span>\n </span>\n <span style={{ display: 'flex', alignItems: 'center' }}>\n {info.noticeInfo && (\n <span style={{ marginRight: '5px', color: '#CCCCCC' }}>{t(info.noticeInfo)}</span>\n )}\n {setSVG(info.shortCut, info.shortCutUseHtml, info.linkSymbol)}\n </span>\n </div>\n );\n\n const setSVG = (list: any[], useDangerInnerHtml = false, linkSymbol = '+') => {\n if (!list) {\n return null;\n }\n const listDom = list.map((item, index) => {\n const wrapperStyle = { display: 'flex', alignItems: 'center' };\n\n if (useDangerInnerHtml) {\n return (\n <span key={index} style={wrapperStyle}>\n <span style={shortCutNameStyles} dangerouslySetInnerHTML={{ __html: item }} />\n </span>\n );\n }\n\n if (index < list.length - 1) {\n if (typeof item === 'number') {\n return (\n <span key={index} style={wrapperStyle}>\n <span style={shortCutNameStyles}>{item}</span>\n <span style={{ marginRight: '3px' }}>~</span>\n </span>\n );\n }\n\n if (item?.startsWith('data')) {\n return (\n <span key={index} style={wrapperStyle}>\n <span className='shortCutButton' style={{ marginRight: '3px' }}>\n <img width={16} height={23} src={item} />\n </span>\n <span style={{ marginRight: '3px' }}>+</span>\n </span>\n );\n }\n return (\n <span key={index} style={wrapperStyle}>\n <span style={shortCutNameStyles}>{item}</span>\n <span style={{ marginRight: '3px' }}>{linkSymbol}</span>\n </span>\n );\n }\n if (typeof item === 'number') {\n return (\n <span key={index} style={wrapperStyle}>\n <span style={shortCutNameStyles}>{item}</span>\n </span>\n );\n }\n if (item?.startsWith('data')) {\n return (\n <span className='shortCutButton' key={index} style={{ marginRight: '3px' }}>\n <img width={16} height={23} src={item} />\n </span>\n );\n }\n return (\n <span style={shortCutNameStyles} key={index}>\n {item}\n </span>\n );\n });\n return (\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-around',\n alignItems: 'center',\n }}\n >\n {listDom}\n </div>\n );\n };\n\n const content = (\n <div className={`${footerCls}__hotkey-content`}>\n {shortCutTable[toolName]?.map((info: any, index: number) => setHotKey(info, index))}\n </div>\n );\n const containerStyle = style || { width: 100 };\n\n // 不存在对应的工具则不展示的快捷键\n if (!shortCutTable[toolName]) {\n return null;\n }\n\n return (\n // @ts-ignore\n <Popover\n placement='topLeft'\n content={content}\n // @ts-ignore\n onMouseMove={() => setFlag(true)}\n onMouseLeave={() => {\n setFlag(false);\n }}\n overlayClassName='tool-hotkeys-popover'\n // visible={svgFlag}\n >\n <div\n className='shortCutTitle'\n onMouseMove={() => setFlag(true)}\n onMouseLeave={() => setFlag(false)}\n style={containerStyle}\n >\n {title ?? (\n <a className='svg'>\n <img\n src={svgFlag ? hotKeyHoverSvg : hotKeySvg}\n width={15}\n height={13}\n style={{ marginRight: '5px' }}\n />\n\n {t('Hotkeys')}\n </a>\n )}\n </div>\n </Popover>\n );\n};\n\nexport default ToolHotKey;\n"],"names":["pointToolShortcutTable","polygonToolShortcutTable","videoToolShortCutTable","hotKeyHoverSvg","hotKeySvg"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/views/MainView/toolFooter/FooterTips/ToolHotKey/index.tsx"],"sourcesContent":["import { Popover } from 'antd/es';\nimport _ from 'lodash';\nimport React, { useState } from 'react';\n\nimport hotKeySvg from '@/assets/annotation/toolHotKeyIcon/icon_kj1.svg';\nimport hotKeyHoverSvg from '@/assets/annotation/toolHotKeyIcon/icon_kj_h.svg';\nimport { EToolName } from '@/data/enums/ToolType';\nimport rectToolShortcutTable from './rectToolShortCutTable';\nimport pointToolShortcutTable from './point';\nimport polygonToolShortcutTable from './polygon';\nimport lineToolShortCutTable from './line';\nimport tagToolSingleShortCutTable from './tag';\nimport textToolShortCutTable from './text';\nimport videoToolShortCutTable from './videoTag';\nimport pointCloudShortCutTable from './pointCloud';\nimport scribbleShortCutTable from './scribble';\n\nimport { footerCls } from '../../index';\nimport { useTranslation } from 'react-i18next';\nimport { cTool } from '@labelbee/lb-annotation';\n\nconst { EVideoToolName, EPointCloudName } = cTool;\n\ninterface IProps {\n style?: any;\n title?: React.ReactElement<any>;\n toolName?: string;\n}\n\nconst shortCutTable: any = {\n [EToolName.Rect]: rectToolShortcutTable,\n [EToolName.Tag]: tagToolSingleShortCutTable,\n [EToolName.Point]: pointToolShortcutTable,\n [EToolName.Polygon]: polygonToolShortcutTable,\n [EToolName.Line]: lineToolShortCutTable,\n [EToolName.Text]: textToolShortCutTable,\n [EVideoToolName.VideoTagTool]: videoToolShortCutTable,\n [EPointCloudName.PointCloud]: pointCloudShortCutTable,\n [EToolName.ScribbleTool]: scribbleShortCutTable,\n};\n\nconst ToolHotKeyIcon = ({ icon }: { icon: React.ReactElement | string }) => {\n if (typeof icon === 'string') {\n return <img width={16} height={16} src={icon} />;\n }\n\n if (icon) {\n return icon;\n }\n\n return null;\n};\n\nconst ToolHotKey: React.FC<IProps> = ({ style, title, toolName }) => {\n const [svgFlag, setFlag] = useState(false);\n const { t } = useTranslation();\n\n if (!toolName) {\n return null;\n }\n\n const shortCutStyle = {\n width: 320,\n display: 'flex',\n justifyContent: 'space-between',\n margin: 16,\n };\n\n const shortCutNameStyles: React.CSSProperties = {\n display: 'block',\n padding: '0 3px',\n minWidth: '20px',\n marginRight: '3px',\n border: '1px solid rgba(204,204,204,1)',\n verticalAlign: 'middle',\n fontSize: '12px',\n textAlign: 'center',\n };\n\n const setHotKey = (info: any, index: number) => (\n <div style={shortCutStyle} key={index}>\n <span style={{ display: 'flex', alignItems: 'center' }}>\n <ToolHotKeyIcon icon={info.icon} />\n <span style={{ marginLeft: info.icon ? 16 : 0 }}>{t(info.name)}</span>\n </span>\n <span style={{ display: 'flex', alignItems: 'center' }}>\n {info.noticeInfo && (\n <span style={{ marginRight: '5px', color: '#CCCCCC' }}>{t(info.noticeInfo)}</span>\n )}\n {setSVG(info.shortCut, info.shortCutUseHtml, info.linkSymbol)}\n </span>\n </div>\n );\n\n const setSVG = (list: any[], useDangerInnerHtml = false, linkSymbol = '+') => {\n if (!list) {\n return null;\n }\n const listDom = list.map((item, index) => {\n const wrapperStyle = { display: 'flex', alignItems: 'center' };\n\n if (useDangerInnerHtml) {\n return (\n <span key={index} style={wrapperStyle}>\n <span style={shortCutNameStyles} dangerouslySetInnerHTML={{ __html: item }} />\n </span>\n );\n }\n\n if (index < list.length - 1) {\n if (typeof item === 'number') {\n return (\n <span key={index} style={wrapperStyle}>\n <span style={shortCutNameStyles}>{item}</span>\n <span style={{ marginRight: '3px' }}>~</span>\n </span>\n );\n }\n\n if (item?.startsWith('data')) {\n return (\n <span key={index} style={wrapperStyle}>\n <span className='shortCutButton' style={{ marginRight: '3px' }}>\n <img width={16} height={23} src={item} />\n </span>\n <span style={{ marginRight: '3px' }}>+</span>\n </span>\n );\n }\n return (\n <span key={index} style={wrapperStyle}>\n <span style={shortCutNameStyles}>{item}</span>\n <span style={{ marginRight: '3px' }}>{linkSymbol}</span>\n </span>\n );\n }\n if (typeof item === 'number') {\n return (\n <span key={index} style={wrapperStyle}>\n <span style={shortCutNameStyles}>{item}</span>\n </span>\n );\n }\n if (item?.startsWith('data')) {\n return (\n <span className='shortCutButton' key={index} style={{ marginRight: '3px' }}>\n <img width={16} height={23} src={item} />\n </span>\n );\n }\n return (\n <span style={shortCutNameStyles} key={index}>\n {item}\n </span>\n );\n });\n return (\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-around',\n alignItems: 'center',\n }}\n >\n {listDom}\n </div>\n );\n };\n\n const content = (\n <div className={`${footerCls}__hotkey-content`}>\n {shortCutTable[toolName]?.map((info: any, index: number) => setHotKey(info, index))}\n </div>\n );\n const containerStyle = style || { width: 100 };\n\n // 不存在对应的工具则不展示的快捷键\n if (!shortCutTable[toolName]) {\n return null;\n }\n\n return (\n // @ts-ignore\n <Popover\n placement='topLeft'\n content={content}\n // @ts-ignore\n onMouseMove={() => setFlag(true)}\n onMouseLeave={() => {\n setFlag(false);\n }}\n overlayClassName='tool-hotkeys-popover'\n // visible={svgFlag}\n >\n <div\n className='shortCutTitle'\n onMouseMove={() => setFlag(true)}\n onMouseLeave={() => setFlag(false)}\n style={containerStyle}\n >\n {title ?? (\n <a className='svg'>\n <img\n src={svgFlag ? hotKeyHoverSvg : hotKeySvg}\n width={15}\n height={13}\n style={{ marginRight: '5px' }}\n />\n\n {t('Hotkeys')}\n </a>\n )}\n </div>\n </Popover>\n );\n};\n\nexport default ToolHotKey;\n"],"names":["pointToolShortcutTable","polygonToolShortcutTable","videoToolShortCutTable","hotKeyHoverSvg","hotKeySvg"],"mappings":"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"}
@@ -1 +1 @@
1
- import{backward as e,forward as s,scale as i,fullScreen as a}from"../common/index.js";import n from"../../../../../../assets/annotation/toolHotKeyIcon/icon_move_kj.svg.js";import r from"../../../../../../assets/annotation/toolHotKeyIcon/icon_mouse_left_kj.svg.js";import t from"../../../../../../assets/annotation/toolHotKeyIcon/icon_mouse_right_kj.svg.js";import m from"../../../../../../assets/annotation/pointCloudTool/changePointCloudValid.svg.js";import u from"../../../../../../assets/annotation/pointCloudTool/copy.svg.js";import l from"../../../../../../assets/annotation/pointCloudTool/nextBox.svg.js";import c from"../../../../../../assets/annotation/pointCloudTool/patse.svg.js";import C from"../../../../../../assets/annotation/pointCloudTool/prevBox.svg.js";import g from"../../../../../../assets/annotation/pointCloudTool/rotate180_black.svg.js";import p from"../../../../../../assets/annotation/pointCloudTool/selectAll.svg.js";import d from"../../../../../../assets/annotation/pointCloudTool/selectMultiple.svg.js";import h from"../../../../../../assets/annotation/toolHotKeyIcon/icon_tab_kj.svg.js";import o from"react";import{ReloadOutlined as E,RotateLeftOutlined as f,RotateRightOutlined as B}from"@ant-design/icons";const v={name:"\u70B9\u7684\u663E\u793A\u7C97\u7EC6",icon:o.createElement("span",{style:{display:" inline-block",width:14,height:14,borderRadius:"50%",border:"1px solid"}}),shortCut:["+","-"],linkSymbol:""},F={name:"\u7ED5\u4E2D\u5FC3\u70B9\u65CB\u8F6C\u753B\u9762",icon:o.createElement(E,null),shortCut:[r],noticeInfo:"\u62D6\u52A8"},j={name:"\u70B9\u4E91\u5E73\u79FB",icon:n,shortCut:[t],noticeInfo:"\u62D6\u52A8"},A={name:"\u4FEF\u89C6\u56FE\u5E73\u79FB",icon:n,shortCut:[t],noticeInfo:"\u62D6\u52A8"},D={name:"\u5207\u6362\u70B9\u4E91\u6709\u6548\u6027",icon:m,shortCut:["V"]},x={name:"\u590D\u5236\u6846",icon:u,shortCut:["Ctrl","C"]},I={name:"\u7C98\u8D34\u6846",icon:c,shortCut:["Ctrl","V"]},R={name:"\u5411\u5DE6\u65CB\u8F6C\u5FAE\u8C03",icon:o.createElement(f,null),shortCut:["Q"]},_={name:"\u5411\u53F3\u65CB\u8F6C\u5FAE\u8C03",icon:o.createElement(B,null),shortCut:["E"]},$={name:"\u4E0A\u4E00\u6846",icon:C,shortCut:["Z"]},y={name:"\u4E0B\u4E00\u6846",icon:l,shortCut:["C"]},T={name:"\u65CB\u8F6C180\xB0",icon:g,shortCut:["G"],noticeInfo:"\u9009\u4E2D\u65F6"},b={name:"\u590D\u5236\u4E0A\u4E00\u9875",icon:u,shortCut:["Alt","C"]},k={name:"\u5207\u6362\u6807\u6CE8\u6846\u6709\u6548\u6027",icon:h,shortCut:["F"],noticeInfo:"\u9009\u4E2D\u65F6"},P={name:"\u591A\u9009",icon:d,shortCut:["Ctrl",t]},S={name:"\u5168\u9009",icon:p,shortCut:["Ctrl","A"]},w=[{name:"\u901A\u7528"},e,s,v,i,F,j,A,D,{name:"\u62C9\u6846\u6A21\u5F0F"},x,I,R,_,$,y,T,b,k,P,S,a];export{w as default};
1
+ import{backward as a,forward as s,scale as i,fullScreen as r}from"../common/index.js";import n from"../../../../../../assets/annotation/toolHotKeyIcon/icon_move_kj.svg.js";import l from"../../../../../../assets/annotation/toolHotKeyIcon/icon_mouse_left_kj.svg.js";import t from"../../../../../../assets/annotation/toolHotKeyIcon/icon_mouse_right_kj.svg.js";import c from"../../../../../../assets/annotation/pointCloudTool/changePointCloudValid.svg.js";import e from"../../../../../../assets/annotation/pointCloudTool/copy.svg.js";import m from"../../../../../../assets/annotation/pointCloudTool/nextBox.svg.js";import u from"../../../../../../assets/annotation/pointCloudTool/patse.svg.js";import C from"../../../../../../assets/annotation/pointCloudTool/prevBox.svg.js";import g from"../../../../../../assets/annotation/pointCloudTool/rotate180_black.svg.js";import p from"../../../../../../assets/annotation/pointCloudTool/selectAll.svg.js";import d from"../../../../../../assets/annotation/pointCloudTool/selectMultiple.svg.js";import h from"../../../../../../assets/annotation/toolHotKeyIcon/icon_tab_kj.svg.js";import o from"react";import{ReloadOutlined as f,RotateLeftOutlined as v,RotateRightOutlined as x}from"@ant-design/icons";const j={name:"PointThickness",icon:o.createElement("span",{style:{display:" inline-block",width:14,height:14,borderRadius:"50%",border:"1px solid"}}),shortCut:["+","-"],linkSymbol:""},R={name:"RotateAroundCenterPoint",icon:o.createElement(f,null),shortCut:[l],noticeInfo:"DragOperation"},T={name:"PointCloudViewTranslate",icon:n,shortCut:[t],noticeInfo:"Drag"},P={name:"TopViewTranslate",icon:n,shortCut:[t],noticeInfo:"Drag"},B={name:"ChangePointCloudValid",icon:c,shortCut:["V"]},S={name:"CopyBox",icon:e,shortCut:["Ctrl","C"]},y={name:"PasteBox",icon:u,shortCut:["Ctrl","V"]},b={name:"RotateLeft",icon:o.createElement(v,null),shortCut:["Q"]},I={name:"RotateRight",icon:o.createElement(x,null),shortCut:["E"]},_={name:"PreviousBox",icon:C,shortCut:["Shift","Tab"]},$={name:"NextBox",icon:m,shortCut:["Tab"]},k={name:"Rotate180",icon:g,shortCut:["G"],noticeInfo:"SelectedStatus"},V={name:"CopyPrevPage",icon:e,shortCut:["Alt","C"]},w={name:"ChangeBoxValid",icon:h,shortCut:["F"],noticeInfo:"SelectedStatus"},A={name:"MultiSelect",icon:d,shortCut:["Ctrl",t]},D={name:"SelectAllBox",icon:p,shortCut:["Ctrl","A"]},E=[{name:"GeneralOperation"},a,s,j,i,R,T,P,B,{name:"RectPattern"},S,y,b,I,_,$,k,V,w,A,D,r];export{E as default};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../../src/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.tsx"],"sourcesContent":["import _ from 'lodash';\nimport { backward, forward, fullScreen, scale } from '../common';\nimport dragIcon from '@/assets/annotation/toolHotKeyIcon/icon_move_kj.svg';\nimport leftClick from '@/assets/annotation/toolHotKeyIcon/icon_mouse_left_kj.svg';\nimport rightClick from '@/assets/annotation/toolHotKeyIcon/icon_mouse_right_kj.svg';\nimport changePointCloudValid from '@/assets/annotation/pointCloudTool/changePointCloudValid.svg';\nimport copy from '@/assets/annotation/pointCloudTool/copy.svg';\nimport nextBox from '@/assets/annotation/pointCloudTool/nextBox.svg';\nimport patse from '@/assets/annotation/pointCloudTool/patse.svg';\nimport prevBox from '@/assets/annotation/pointCloudTool/prevBox.svg';\nimport rotate180_black from '@/assets/annotation/pointCloudTool/rotate180_black.svg';\nimport selectAll from '@/assets/annotation/pointCloudTool/selectAll.svg';\nimport selectMultiple from '@/assets/annotation/pointCloudTool/selectMultiple.svg';\nimport TabChangeSelectedSvg from '@/assets/annotation/toolHotKeyIcon/icon_tab_kj.svg';\n\nimport { IShortcut } from '@/types/tool';\nimport React from 'react';\nimport { ReloadOutlined, RotateLeftOutlined, RotateRightOutlined } from '@ant-design/icons';\n\nconst changePointSize: IShortcut = {\n name: '点的显示粗细',\n icon: (\n <span\n style={{\n display: ' inline-block',\n width: 14,\n height: 14,\n borderRadius: '50%',\n border: '1px solid',\n }}\n />\n ),\n shortCut: ['+', '-'],\n linkSymbol: '',\n};\n\nconst rotateRoundCenter: IShortcut = {\n name: '绕中心点旋转画面',\n icon: <ReloadOutlined />,\n shortCut: [leftClick],\n noticeInfo: '拖动',\n};\n\nconst Drag3D = {\n name: '点云平移',\n icon: dragIcon,\n shortCut: [rightClick],\n noticeInfo: '拖动',\n};\n\nconst DragTopView = {\n name: '俯视图平移',\n icon: dragIcon,\n shortCut: [rightClick],\n noticeInfo: '拖动',\n};\n\nconst ChangeInvalid = {\n name: '切换点云有效性',\n icon: changePointCloudValid,\n shortCut: ['V'],\n};\n\nconst CopyBox = {\n name: '复制框',\n icon: copy,\n shortCut: ['Ctrl', 'C'],\n};\n\nconst PasteBox = {\n name: '粘贴框',\n icon: patse,\n shortCut: ['Ctrl', 'V'],\n};\n\nconst LeftRotate = {\n name: '向左旋转微调',\n icon: <RotateLeftOutlined />,\n shortCut: ['Q'],\n};\n\nconst RightRotate = {\n name: '向右旋转微调',\n icon: <RotateRightOutlined />,\n shortCut: ['E'],\n};\n\nconst PrevBox = {\n name: '上一框',\n icon: prevBox,\n shortCut: ['Z'],\n};\n\nconst NextBox = {\n name: '下一框',\n icon: nextBox,\n shortCut: ['C'],\n};\n\nconst Rotate180 = {\n name: '旋转180°',\n icon: rotate180_black,\n shortCut: ['G'],\n noticeInfo: '选中时',\n};\n\nconst CopyPrevPage = {\n name: '复制上一页',\n icon: copy,\n shortCut: ['Alt', 'C'],\n};\n\nconst ChangeBoxInvalid = {\n name: '切换标注框有效性',\n icon: TabChangeSelectedSvg,\n shortCut: ['F'],\n noticeInfo: '选中时',\n};\n\nconst SelectMulti = {\n name: '多选',\n icon: selectMultiple,\n shortCut: ['Ctrl', rightClick],\n};\n\nconst SelectAll = {\n name: '全选',\n icon: selectAll,\n shortCut: ['Ctrl', 'A'],\n};\n\nconst pointCloudShortCutTable: IShortcut[] = [\n { name: '通用' },\n backward,\n forward,\n changePointSize,\n scale,\n rotateRoundCenter,\n Drag3D,\n DragTopView,\n ChangeInvalid,\n { name: '拉框模式' },\n CopyBox,\n PasteBox,\n LeftRotate,\n RightRotate,\n PrevBox,\n NextBox,\n Rotate180,\n CopyPrevPage,\n ChangeBoxInvalid,\n SelectMulti,\n SelectAll,\n fullScreen,\n];\n\nexport default pointCloudShortCutTable;\n"],"names":["leftClick","dragIcon","rightClick","changePointCloudValid","copy","patse","prevBox","nextBox","rotate180_black","TabChangeSelectedSvg","selectMultiple","selectAll"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../src/views/MainView/toolFooter/FooterTips/ToolHotKey/pointCloud/index.tsx"],"sourcesContent":["import _ from 'lodash';\nimport { backward, forward, fullScreen, scale } from '../common';\nimport dragIcon from '@/assets/annotation/toolHotKeyIcon/icon_move_kj.svg';\nimport leftClick from '@/assets/annotation/toolHotKeyIcon/icon_mouse_left_kj.svg';\nimport rightClick from '@/assets/annotation/toolHotKeyIcon/icon_mouse_right_kj.svg';\nimport changePointCloudValid from '@/assets/annotation/pointCloudTool/changePointCloudValid.svg';\nimport copy from '@/assets/annotation/pointCloudTool/copy.svg';\nimport nextBox from '@/assets/annotation/pointCloudTool/nextBox.svg';\nimport paste from '@/assets/annotation/pointCloudTool/patse.svg';\nimport prevBox from '@/assets/annotation/pointCloudTool/prevBox.svg';\nimport rotate180_black from '@/assets/annotation/pointCloudTool/rotate180_black.svg';\nimport selectAll from '@/assets/annotation/pointCloudTool/selectAll.svg';\nimport selectMultiple from '@/assets/annotation/pointCloudTool/selectMultiple.svg';\nimport TabChangeSelectedSvg from '@/assets/annotation/toolHotKeyIcon/icon_tab_kj.svg';\n\nimport { IShortcut } from '@/types/tool';\nimport React from 'react';\nimport { ReloadOutlined, RotateLeftOutlined, RotateRightOutlined } from '@ant-design/icons';\n\nconst changePointSize: IShortcut = {\n name: 'PointThickness',\n icon: (\n <span\n style={{\n display: ' inline-block',\n width: 14,\n height: 14,\n borderRadius: '50%',\n border: '1px solid',\n }}\n />\n ),\n shortCut: ['+', '-'],\n linkSymbol: '',\n};\n\nconst rotateRoundCenter: IShortcut = {\n name: 'RotateAroundCenterPoint',\n icon: <ReloadOutlined />,\n shortCut: [leftClick],\n noticeInfo: 'DragOperation',\n};\n\nconst Drag3D = {\n name: 'PointCloudViewTranslate',\n icon: dragIcon,\n shortCut: [rightClick],\n noticeInfo: 'Drag',\n};\n\nconst DragTopView = {\n name: 'TopViewTranslate',\n icon: dragIcon,\n shortCut: [rightClick],\n noticeInfo: 'Drag',\n};\n\nconst ChangeInvalid = {\n name: 'ChangePointCloudValid',\n icon: changePointCloudValid,\n shortCut: ['V'],\n};\n\nconst CopyBox = {\n name: 'CopyBox',\n icon: copy,\n shortCut: ['Ctrl', 'C'],\n};\n\nconst PasteBox = {\n name: 'PasteBox',\n icon: paste,\n shortCut: ['Ctrl', 'V'],\n};\n\nconst LeftRotate = {\n name: 'RotateLeft',\n icon: <RotateLeftOutlined />,\n shortCut: ['Q'],\n};\n\nconst RightRotate = {\n name: 'RotateRight',\n icon: <RotateRightOutlined />,\n shortCut: ['E'],\n};\n\nconst PrevBox = {\n name: 'PreviousBox',\n icon: prevBox,\n shortCut: ['Shift', 'Tab'],\n};\n\nconst NextBox = {\n name: 'NextBox',\n icon: nextBox,\n shortCut: ['Tab'],\n};\n\nconst Rotate180 = {\n name: 'Rotate180',\n icon: rotate180_black,\n shortCut: ['G'],\n noticeInfo: 'SelectedStatus',\n};\n\nconst CopyPrevPage = {\n name: 'CopyPrevPage',\n icon: copy,\n shortCut: ['Alt', 'C'],\n};\n\nconst ChangeBoxInvalid = {\n name: 'ChangeBoxValid',\n icon: TabChangeSelectedSvg,\n shortCut: ['F'],\n noticeInfo: 'SelectedStatus',\n};\n\nconst SelectMulti = {\n name: 'MultiSelect',\n icon: selectMultiple,\n shortCut: ['Ctrl', rightClick],\n};\n\nconst SelectAll = {\n name: 'SelectAllBox',\n icon: selectAll,\n shortCut: ['Ctrl', 'A'],\n};\n\nconst pointCloudShortCutTable: IShortcut[] = [\n { name: 'GeneralOperation' },\n backward,\n forward,\n changePointSize,\n scale,\n rotateRoundCenter,\n Drag3D,\n DragTopView,\n ChangeInvalid,\n { name: 'RectPattern' },\n CopyBox,\n PasteBox,\n LeftRotate,\n RightRotate,\n PrevBox,\n NextBox,\n Rotate180,\n CopyPrevPage,\n ChangeBoxInvalid,\n SelectMulti,\n SelectAll,\n fullScreen,\n];\n\nexport default pointCloudShortCutTable;\n"],"names":["leftClick","dragIcon","rightClick","changePointCloudValid","copy","paste","prevBox","nextBox","rotate180_black","TabChangeSelectedSvg","selectMultiple","selectAll"],"mappings":";;;;;;;;;;;;;;;;AAmBA,MAAM,eAA6B,GAAA;AAAA,EACjC,IAAM,EAAA,gBAAA;AAAA,EACN,IAAA,sCACG,MAAD,EAAA;AAAA,IACE,KAAO,EAAA;AAAA,MACL,OAAS,EAAA,eAAA;AAAA,MACT,KAAO,EAAA,EAAA;AAAA,MACP,MAAQ,EAAA,EAAA;AAAA,MACR,YAAc,EAAA,KAAA;AAAA,MACd,MAAQ,EAAA,WAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAAA,EAId,QAAA,EAAU,CAAC,GAAK,EAAA,GAAA,CAAA;AAAA,EAChB,UAAY,EAAA,EAAA;AAAA,CAAA,CAAA;AAGd,MAAM,iBAA+B,GAAA;AAAA,EACnC,IAAM,EAAA,yBAAA;AAAA,EACN,IAAA,sCAAO,cAAD,EAAA,IAAA,CAAA;AAAA,EACN,UAAU,CAACA,GAAA,CAAA;AAAA,EACX,UAAY,EAAA,eAAA;AAAA,CAAA,CAAA;AAGd,MAAM,MAAS,GAAA;AAAA,EACb,IAAM,EAAA,yBAAA;AAAA,EACN,IAAM,EAAAC,KAAA;AAAA,EACN,UAAU,CAACC,KAAA,CAAA;AAAA,EACX,UAAY,EAAA,MAAA;AAAA,CAAA,CAAA;AAGd,MAAM,WAAc,GAAA;AAAA,EAClB,IAAM,EAAA,kBAAA;AAAA,EACN,IAAM,EAAAD,KAAA;AAAA,EACN,UAAU,CAACC,KAAA,CAAA;AAAA,EACX,UAAY,EAAA,MAAA;AAAA,CAAA,CAAA;AAGd,MAAM,aAAgB,GAAA;AAAA,EACpB,IAAM,EAAA,uBAAA;AAAA,EACN,IAAM,EAAAC,KAAA;AAAA,EACN,UAAU,CAAC,GAAA,CAAA;AAAA,CAAA,CAAA;AAGb,MAAM,OAAU,GAAA;AAAA,EACd,IAAM,EAAA,SAAA;AAAA,EACN,IAAM,EAAAC,KAAA;AAAA,EACN,QAAA,EAAU,CAAC,MAAQ,EAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAGrB,MAAM,QAAW,GAAA;AAAA,EACf,IAAM,EAAA,UAAA;AAAA,EACN,IAAM,EAAAC,KAAA;AAAA,EACN,QAAA,EAAU,CAAC,MAAQ,EAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAGrB,MAAM,UAAa,GAAA;AAAA,EACjB,IAAM,EAAA,YAAA;AAAA,EACN,IAAA,sCAAO,kBAAD,EAAA,IAAA,CAAA;AAAA,EACN,UAAU,CAAC,GAAA,CAAA;AAAA,CAAA,CAAA;AAGb,MAAM,WAAc,GAAA;AAAA,EAClB,IAAM,EAAA,aAAA;AAAA,EACN,IAAA,sCAAO,mBAAD,EAAA,IAAA,CAAA;AAAA,EACN,UAAU,CAAC,GAAA,CAAA;AAAA,CAAA,CAAA;AAGb,MAAM,OAAU,GAAA;AAAA,EACd,IAAM,EAAA,aAAA;AAAA,EACN,IAAM,EAAAC,KAAA;AAAA,EACN,QAAA,EAAU,CAAC,OAAS,EAAA,KAAA,CAAA;AAAA,CAAA,CAAA;AAGtB,MAAM,OAAU,GAAA;AAAA,EACd,IAAM,EAAA,SAAA;AAAA,EACN,IAAM,EAAAC,KAAA;AAAA,EACN,UAAU,CAAC,KAAA,CAAA;AAAA,CAAA,CAAA;AAGb,MAAM,SAAY,GAAA;AAAA,EAChB,IAAM,EAAA,WAAA;AAAA,EACN,IAAM,EAAAC,KAAA;AAAA,EACN,UAAU,CAAC,GAAA,CAAA;AAAA,EACX,UAAY,EAAA,gBAAA;AAAA,CAAA,CAAA;AAGd,MAAM,YAAe,GAAA;AAAA,EACnB,IAAM,EAAA,cAAA;AAAA,EACN,IAAM,EAAAJ,KAAA;AAAA,EACN,QAAA,EAAU,CAAC,KAAO,EAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAGpB,MAAM,gBAAmB,GAAA;AAAA,EACvB,IAAM,EAAA,gBAAA;AAAA,EACN,IAAM,EAAAK,KAAA;AAAA,EACN,UAAU,CAAC,GAAA,CAAA;AAAA,EACX,UAAY,EAAA,gBAAA;AAAA,CAAA,CAAA;AAGd,MAAM,WAAc,GAAA;AAAA,EAClB,IAAM,EAAA,aAAA;AAAA,EACN,IAAM,EAAAC,KAAA;AAAA,EACN,QAAA,EAAU,CAAC,MAAQ,EAAAR,KAAA,CAAA;AAAA,CAAA,CAAA;AAGrB,MAAM,SAAY,GAAA;AAAA,EAChB,IAAM,EAAA,cAAA;AAAA,EACN,IAAM,EAAAS,KAAA;AAAA,EACN,QAAA,EAAU,CAAC,MAAQ,EAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAGrB,MAAM,uBAAuC,GAAA;AAAA,EAC3C,CAAE,IAAM,EAAA,kBAAA,CAAA;AAAA,EACR,QAAA;AAAA,EACA,OAAA;AAAA,EACA,eAAA;AAAA,EACA,KAAA;AAAA,EACA,iBAAA;AAAA,EACA,MAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,CAAE,IAAM,EAAA,aAAA,CAAA;AAAA,EACR,OAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA;;;;"}
@@ -0,0 +1 @@
1
+ import{scale as e,saveResult as r,restore as t,revoke as a,rotate as o,backward as s,forward as i,dargWithRightClick as l,setValid as c}from"../common/index.js";const d=[e,r,t,a,o,s,i,l,c];export{d as default};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../src/views/MainView/toolFooter/FooterTips/ToolHotKey/scribble/index.tsx"],"sourcesContent":["import {\n backward,\n dargWithRightClick,\n forward,\n // fullScreen,\n restore,\n revoke,\n rotate,\n setValid,\n scale,\n // attributeClickLock,\n // attributeLock,\n // copyBackwardResult,\n // hidden,\n // changeSpecialLine,\n saveResult,\n // dargWithLeftClick,\n} from '../common';\n\nconst scribbleShortCutTable = [\n scale,\n saveResult,\n restore,\n revoke,\n rotate,\n backward,\n forward,\n dargWithRightClick,\n setValid,\n // copyBackwardResult,\n];\n\nexport default scribbleShortCutTable;\n"],"names":[],"mappings":";;AAmBA,MAAM,qBAAwB,GAAA;AAAA,EAC5B,KAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,kBAAA;AAAA,EACA,QAAA;AAAA;;;;"}
@@ -1 +1 @@
1
- import{prefix as C}from"../../../constant/index.js";import{PageBackward as g,PageForward as f,PageJump as L}from"../../../store/annotation/actionCreators.js";import{getTotalPage as N}from"../../../store/annotation/reducer.js";import{Divider as k}from"antd/es";import t from"react";import{useTranslation as B}from"react-i18next";import{connect as S}from"react-redux";import{LabelBeeContext as w,useDispatch as D}from"../../../store/ctx.js";import x from"./FooterTips/index.js";import R from"./HiddenTips/index.js";import $ from"./PageNumber/index.js";import H from"./ZoomController/index.js";import{Pagination as J}from"./Pagination.js";import{cTool as Z}from"@labelbee/lb-annotation";const{EPointCloudName:z}=Z,l=`${C}-footer`,P=()=>t.createElement(k,{type:"vertical",style:{background:"rgba(153, 153, 153, 1)",height:"16px"}}),b=({footerTips:e,hiddenTips:n,pageNumber:s,pagination:m,zoomController:r,curItems:c,footerDivider:u})=>t.createElement(t.Fragment,null,e,t.createElement("div",{style:{flex:1}}),n,s,m,c,u,r),_=e=>{var n;const{stepList:s,step:m,basicResultList:r,basicIndex:c,mode:u="light",footer:a=b,skipBeforePageTurning:i}=e,o=D(),{t:E}=B(),d=(n=s[m-1])!=null?n:{},T=!!d.dataSourceStep,I=()=>{if(i){i(()=>o(g()));return}o(g())},v=()=>{if(i){i(()=>o(f()));return}o(f())},h=y=>{const F=~~y-1;o(L(F))},p=t.createElement(J,{imgIndex:e.imgIndex,totalPage:e.totalPage,pageJump:h,pageBackward:I,pageForward:v,footerCls:l}),j=T&&r.length>0?t.createElement("span",null,E("curItems",{current:c+1,total:r.length})):null;return typeof a=="function"?a===b&&d.tool===z.PointCloud?t.createElement("div",{className:`${l}`,style:e.style},t.createElement(x,null),t.createElement("div",{style:{flex:1}}),p):t.createElement("div",{className:`${l}`,style:e.style},a({footerTips:t.createElement(x,null),hiddenTips:t.createElement(R,null),pageNumber:t.createElement($,null),pagination:p,zoomController:t.createElement(H,{mode:u}),curItems:j,footerDivider:t.createElement(P,null)})):a},q=e=>({totalPage:N(e.annotation),imgIndex:e.annotation.imgIndex,stepList:e.annotation.stepList,step:e.annotation.step,basicIndex:e.annotation.basicIndex,basicResultList:e.annotation.basicResultList,skipBeforePageTurning:e.annotation.skipBeforePageTurning});var A=S(q,null,null,{context:w})(_);export{P as FooterDivider,A as default,l as footerCls};
1
+ import{prefix as L}from"../../../constant/index.js";import{PageBackward as f,PageForward as x,PageJump as P}from"../../../store/annotation/actionCreators.js";import{getTotalPage as N}from"../../../store/annotation/reducer.js";import{Divider as k}from"antd/es";import t from"react";import{useTranslation as B}from"react-i18next";import{connect as S}from"react-redux";import{LabelBeeContext as w,useDispatch as D}from"../../../store/ctx.js";import b from"./FooterTips/index.js";import R from"./HiddenTips/index.js";import $ from"./PageNumber/index.js";import H from"./ZoomController/index.js";import{Pagination as J}from"./Pagination.js";import{cTool as Z}from"@labelbee/lb-annotation";const{EPointCloudName:z}=Z,l=`${L}-footer`,E=()=>t.createElement(k,{type:"vertical",style:{background:"rgba(153, 153, 153, 1)",height:"16px"}}),T=({footerTips:e,hiddenTips:r,pageNumber:s,pagination:m,zoomController:a,curItems:c,footerDivider:u})=>t.createElement(t.Fragment,null,e,t.createElement("div",{style:{flex:1}}),r,s,m,c,u,a),_=e=>{var r;const{stepList:s,step:m,basicResultList:a,basicIndex:c,mode:u="light",footer:i=T,skipBeforePageTurning:o}=e,n=D(),{t:I}=B(),d=(r=s[m-1])!=null?r:{},v=!!d.dataSourceStep,h=()=>{if(o){o(()=>n(f()));return}n(f())},j=()=>{if(o){o(()=>n(x()));return}n(x())},y=C=>{const g=~~C-1;if(o){o(()=>n(P(g)));return}n(P(g))},p=t.createElement(J,{imgIndex:e.imgIndex,totalPage:e.totalPage,pageJump:y,pageBackward:h,pageForward:j,footerCls:l}),F=v&&a.length>0?t.createElement("span",null,I("curItems",{current:c+1,total:a.length})):null;return typeof i=="function"?i===T&&d.tool===z.PointCloud?t.createElement("div",{className:`${l}`,style:e.style},t.createElement(b,null),t.createElement("div",{style:{flex:1}}),p):t.createElement("div",{className:`${l}`,style:e.style},i({footerTips:t.createElement(b,null),hiddenTips:t.createElement(R,null),pageNumber:t.createElement($,null),pagination:p,zoomController:t.createElement(H,{mode:u}),curItems:F,footerDivider:t.createElement(E,null)})):i},q=e=>({totalPage:N(e.annotation),imgIndex:e.annotation.imgIndex,stepList:e.annotation.stepList,step:e.annotation.step,basicIndex:e.annotation.basicIndex,basicResultList:e.annotation.basicResultList,skipBeforePageTurning:e.annotation.skipBeforePageTurning});var A=S(q,null,null,{context:w})(_);export{E as FooterDivider,A as default,l as footerCls};