@labelbee/lb-components 1.2.3-alpha.6 → 1.3.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 (109) hide show
  1. package/dist/App.js +1 -1
  2. package/dist/components/AnnotationView/index.js +1 -1
  3. package/dist/index.css +812 -651
  4. package/dist/index.css.map +1 -0
  5. package/dist/index.js +1 -1
  6. package/dist/store/annotation/reducer.js +1 -1
  7. package/dist/types/App.d.ts +23 -7
  8. package/dist/types/index.d.ts +4 -3
  9. package/dist/types/store/annotation/reducer.d.ts +1 -1
  10. package/dist/types/views/MainView/annotationOperation/index.d.ts +5 -9
  11. package/dist/types/views/MainView/index.d.ts +1 -1
  12. package/dist/types/views/MainView/sidebar/AnnotationText/index.d.ts +3 -1
  13. package/dist/types/views/MainView/sidebar/GeneralOperation/index.d.ts +3 -1
  14. package/dist/types/views/MainView/sidebar/SwitchAttributeList/index.d.ts +3 -1
  15. package/dist/types/views/MainView/sidebar/TagSidebar/index.d.ts +3 -1
  16. package/dist/types/views/MainView/sidebar/TextToolSidebar/index.d.ts +3 -1
  17. package/dist/types/views/MainView/sidebar/index.d.ts +3 -1
  18. package/dist/types/views/MainView/toolFooter/ZoomController/ZoomLevel/index.d.ts +3 -1
  19. package/dist/types/views/MainView/toolFooter/ZoomController/index.d.ts +3 -1
  20. package/dist/types/views/MainView/toolFooter/index.d.ts +6 -2
  21. package/dist/types/views/MainView/toolHeader/ExportData/index.d.ts +3 -1
  22. package/dist/types/views/MainView/toolHeader/StepSwitch/index.d.ts +3 -1
  23. package/dist/types/views/MainView/toolHeader/index.d.ts +8 -4
  24. package/dist/utils/index.js +1 -1
  25. package/dist/views/MainView/annotationOperation/index.js +1 -1
  26. package/dist/views/MainView/index.js +1 -1
  27. package/dist/views/MainView/sidebar/index.js +1 -1
  28. package/dist/views/MainView/toolFooter/index.js +1 -1
  29. package/dist/views/MainView/toolHeader/index.js +1 -1
  30. package/es/App.js +1 -1
  31. package/es/App.js.map +1 -1
  32. package/es/assets/annotation/polygonTool/icon_rectangle_a.svg.js +1 -0
  33. package/es/assets/annotation/polygonTool/icon_rectangle_a.svg.js.map +1 -0
  34. package/es/components/AnnotationView/index.js +1 -1
  35. package/es/components/AnnotationView/index.js.map +1 -1
  36. package/es/components/ImageError/index.js.map +1 -1
  37. package/es/components/annotationStepPopover/index.js.map +1 -1
  38. package/es/components/attributeList/index.js.map +1 -1
  39. package/es/components/checkboxList/index.js.map +1 -1
  40. package/es/components/colorTag/index.js.map +1 -1
  41. package/es/components/customAntd/IconWithText/index.js.map +1 -1
  42. package/es/components/customResizeHook/index.js.map +1 -1
  43. package/es/configureStore.js.map +1 -1
  44. package/es/constant/index.js.map +1 -1
  45. package/es/constant/styleString.js.map +1 -1
  46. package/es/data/Style.js.map +1 -1
  47. package/es/data/enums/AnnotationSize.js.map +1 -1
  48. package/es/data/enums/ToolType.js.map +1 -1
  49. package/es/hooks/useRafState.js.map +1 -1
  50. package/es/hooks/useSafeSate.js.map +1 -1
  51. package/es/hooks/useSize.js.map +1 -1
  52. package/es/hooks/useUnmountedRef.js.map +1 -1
  53. package/es/index.js +1 -1
  54. package/es/index.js.map +1 -1
  55. package/es/store/Actions.js.map +1 -1
  56. package/es/store/annotation/actionCreators.js.map +1 -1
  57. package/es/store/annotation/reducer.js +1 -1
  58. package/es/store/annotation/reducer.js.map +1 -1
  59. package/es/store/imgAttribute/actionCreators.js.map +1 -1
  60. package/es/store/imgAttribute/reducer.js.map +1 -1
  61. package/es/store/index.js.map +1 -1
  62. package/es/store/toolStyle/actionCreators.js.map +1 -1
  63. package/es/store/toolStyle/reducer.js.map +1 -1
  64. package/es/utils/AnnotationDataUtils.js.map +1 -1
  65. package/es/utils/ConfigUtils.js.map +1 -1
  66. package/es/utils/PageOperator.js.map +1 -1
  67. package/es/utils/StepUtils.js.map +1 -1
  68. package/es/utils/TextUtils.js.map +1 -1
  69. package/es/utils/ToolStyleUtils.js.map +1 -1
  70. package/es/utils/data.js.map +1 -1
  71. package/es/utils/dom.js.map +1 -1
  72. package/es/utils/index.js +1 -1
  73. package/es/utils/index.js.map +1 -1
  74. package/es/views/MainView/annotationOperation/index.js +1 -1
  75. package/es/views/MainView/annotationOperation/index.js.map +1 -1
  76. package/es/views/MainView/index.js +1 -1
  77. package/es/views/MainView/index.js.map +1 -1
  78. package/es/views/MainView/sidebar/AnnotationText/index.js.map +1 -1
  79. package/es/views/MainView/sidebar/ClearIcon/index.js.map +1 -1
  80. package/es/views/MainView/sidebar/GeneralOperation/index.js.map +1 -1
  81. package/es/views/MainView/sidebar/ImgAttributeInfo/index.js.map +1 -1
  82. package/es/views/MainView/sidebar/SwitchAttributeList/index.js.map +1 -1
  83. package/es/views/MainView/sidebar/TagSidebar/index.js.map +1 -1
  84. package/es/views/MainView/sidebar/TextAreaFormat/index.js.map +1 -1
  85. package/es/views/MainView/sidebar/TextToolSidebar/index.js.map +1 -1
  86. package/es/views/MainView/sidebar/ToolStyle/index.js.map +1 -1
  87. package/es/views/MainView/sidebar/index.js +1 -1
  88. package/es/views/MainView/sidebar/index.js.map +1 -1
  89. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/common/index.js.map +1 -1
  90. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js.map +1 -1
  91. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/line/index.js.map +1 -1
  92. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/point/index.js.map +1 -1
  93. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/polygon/index.js.map +1 -1
  94. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/rectToolShortCutTable/index.js.map +1 -1
  95. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/tag/index.js.map +1 -1
  96. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/text/index.js.map +1 -1
  97. package/es/views/MainView/toolFooter/FooterTips/index.js.map +1 -1
  98. package/es/views/MainView/toolFooter/HiddenTips/index.js.map +1 -1
  99. package/es/views/MainView/toolFooter/PageNumber/index.js.map +1 -1
  100. package/es/views/MainView/toolFooter/ZoomController/ZoomLevel/index.js.map +1 -1
  101. package/es/views/MainView/toolFooter/ZoomController/index.js.map +1 -1
  102. package/es/views/MainView/toolFooter/index.js +1 -1
  103. package/es/views/MainView/toolFooter/index.js.map +1 -1
  104. package/es/views/MainView/toolHeader/ExportData/index.js.map +1 -1
  105. package/es/views/MainView/toolHeader/StepSwitch/index.js.map +1 -1
  106. package/es/views/MainView/toolHeader/headerOption/index.js.map +1 -1
  107. package/es/views/MainView/toolHeader/index.js +1 -1
  108. package/es/views/MainView/toolHeader/index.js.map +1 -1
  109. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../../src/views/MainView/toolFooter/FooterTips/ToolHotKey/text/index.ts"],"sourcesContent":["import {\n backward,\n dargWithLeftClick,\n dargWithRightClick,\n forward,\n fullScreen,\n rotate,\n saveResult,\n scale,\n setValid,\n} from '../common';\n\nconst textToolShortCutTable = [\n saveResult,\n scale,\n rotate,\n fullScreen,\n setValid,\n backward,\n forward,\n dargWithRightClick,\n dargWithLeftClick,\n];\n\nexport default textToolShortCutTable;\n"],"names":[],"mappings":";;MAYM,wBAAwB;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../src/views/MainView/toolFooter/FooterTips/ToolHotKey/text/index.ts"],"sourcesContent":["import {\n backward,\n dargWithLeftClick,\n dargWithRightClick,\n forward,\n fullScreen,\n rotate,\n saveResult,\n scale,\n setValid,\n} from '../common';\n\nconst textToolShortCutTable = [\n saveResult,\n scale,\n rotate,\n fullScreen,\n setValid,\n backward,\n forward,\n dargWithRightClick,\n dargWithLeftClick,\n];\n\nexport default textToolShortCutTable;\n"],"names":[],"mappings":";;AAYA,MAAM,qBAAwB,GAAA;AAAA,EAC5B,UAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,kBAAA;AAAA,EACA,iBAAA;AAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolFooter/FooterTips/index.tsx"],"sourcesContent":["import React from 'react';\nimport ToolHotKey from './ToolHotKey';\n\nconst FooterTips: React.FC = () => (\n <div className=\"tipsBar\">\n <ToolHotKey />\n </div>\n);\n\nexport default FooterTips;\n"],"names":[],"mappings":";;;MAGM,aAAuB,0CAC1B,OAAD;AAAA,EAAK,WAAU;AAAA,uCACZ,YAAD;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolFooter/FooterTips/index.tsx"],"sourcesContent":["import React from 'react';\nimport ToolHotKey from './ToolHotKey';\n\nconst FooterTips: React.FC = () => (\n <div className=\"tipsBar\">\n <ToolHotKey />\n </div>\n);\n\nexport default FooterTips;\n"],"names":[],"mappings":";;;AAGM,MAAA,UAAA,GAAuB,sBAC3B,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA;AAAA,EAAK,SAAU,EAAA,SAAA;AAAA,CAAA,sCACZ,UAAD,EAAA,IAAA,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolFooter/HiddenTips/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { AppState } from '@/store';\nimport { connect } from 'react-redux';\nimport { ToolInstance } from '@/store/annotation/types';\nimport { Divider } from 'antd/es';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n toolInstance: ToolInstance;\n}\n\nconst HiddenTips = (props: IProps) => {\n const { toolInstance } = props;\n const [_, forceRender] = useState(0);\n const { t } = useTranslation();\n\n useEffect(() => {\n if (toolInstance) {\n toolInstance.singleOn('hiddenChange', () => {\n forceRender((s) => s + 1);\n });\n }\n }, [toolInstance]);\n\n if (!toolInstance) {\n return null;\n }\n\n const isHidden = toolInstance.isHidden;\n\n if (isHidden) {\n return (\n <span>\n {t('HideDrawnAnnotation')}\n <Divider type='vertical' style={{ background: 'rgba(153, 153, 153, 1)', height: '16px' }} />\n </span>\n );\n }\n\n return null;\n};\n\nconst mapStateToProps = (state: AppState) => {\n return {\n toolInstance: state.annotation?.toolInstance,\n };\n};\n\nexport default connect(mapStateToProps)(HiddenTips);\n"],"names":[],"mappings":";;;;;AAWA,MAAM,aAAa,CAAC,UAAkB;AACpC,QAAM,CAAE,gBAAiB;AACzB,QAAM,CAAC,GAAG,eAAe,SAAS;AAClC,QAAM,CAAE,KAAM;AAEd,YAAU,MAAM;AACd,QAAI,cAAc;AAChB,mBAAa,SAAS,gBAAgB,MAAM;AAC1C,oBAAY,CAAC,MAAM,IAAI;AAAA;AAAA;AAAA,KAG1B,CAAC;AAEJ,MAAI,CAAC,cAAc;AACjB,WAAO;AAAA;AAGT,QAAM,WAAW,aAAa;AAE9B,MAAI,UAAU;AACZ,+CACG,QAAD,MACG,EAAE,4DACF,SAAD;AAAA,MAAS,MAAK;AAAA,MAAW,OAAO,CAAE,YAAY,0BAA0B,QAAQ;AAAA;AAAA;AAKtF,SAAO;AAAA;AAGT,MAAM,kBAAkB,CAAC,UAAoB;AA1C7C;AA2CE,SAAO;AAAA,IACL,cAAc,YAAM,eAAN,mBAAkB;AAAA;AAAA;AAIpC,mBAAe,QAAQ,iBAAiB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolFooter/HiddenTips/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { AppState } from '@/store';\nimport { connect } from 'react-redux';\nimport { ToolInstance } from '@/store/annotation/types';\nimport { Divider } from 'antd/es';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n toolInstance: ToolInstance;\n}\n\nconst HiddenTips = (props: IProps) => {\n const { toolInstance } = props;\n const [_, forceRender] = useState(0);\n const { t } = useTranslation();\n\n useEffect(() => {\n if (toolInstance) {\n toolInstance.singleOn('hiddenChange', () => {\n forceRender((s) => s + 1);\n });\n }\n }, [toolInstance]);\n\n if (!toolInstance) {\n return null;\n }\n\n const isHidden = toolInstance.isHidden;\n\n if (isHidden) {\n return (\n <span>\n {t('HideDrawnAnnotation')}\n <Divider type='vertical' style={{ background: 'rgba(153, 153, 153, 1)', height: '16px' }} />\n </span>\n );\n }\n\n return null;\n};\n\nconst mapStateToProps = (state: AppState) => {\n return {\n toolInstance: state.annotation?.toolInstance,\n };\n};\n\nexport default connect(mapStateToProps)(HiddenTips);\n"],"names":[],"mappings":";;;;;AAWA,MAAM,UAAA,GAAa,CAAC,KAAkB,KAAA;AACpC,EAAA,MAAM,CAAE,YAAiB,CAAA,GAAA,KAAA,CAAA;AACzB,EAAM,MAAA,CAAC,CAAG,EAAA,WAAA,CAAA,GAAe,QAAS,CAAA,CAAA,CAAA,CAAA;AAClC,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AAEd,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,YAAc,EAAA;AAChB,MAAa,YAAA,CAAA,QAAA,CAAS,gBAAgB,MAAM;AAC1C,QAAY,WAAA,CAAA,CAAC,MAAM,CAAI,GAAA,CAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,EAG1B,CAAC,YAAA,CAAA,CAAA,CAAA;AAEJ,EAAA,IAAI,CAAC,YAAc,EAAA;AACjB,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA;AAGT,EAAA,MAAM,WAAW,YAAa,CAAA,QAAA,CAAA;AAE9B,EAAA,IAAI,QAAU,EAAA;AACZ,IAAA,2CACG,MAAD,EAAA,IAAA,EACG,CAAE,CAAA,qBAAA,CAAA,sCACF,OAAD,EAAA;AAAA,MAAS,IAAK,EAAA,UAAA;AAAA,MAAW,KAAO,EAAA,CAAE,UAAY,EAAA,wBAAA,EAA0B,MAAQ,EAAA,MAAA,CAAA;AAAA,KAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAKtF,EAAO,OAAA,IAAA,CAAA;AAAA,CAAA,CAAA;AAGT,MAAM,eAAA,GAAkB,CAAC,KAAoB,KAAA;AA1C7C,EAAA,IAAA,EAAA,CAAA;AA2CE,EAAO,OAAA;AAAA,IACL,YAAA,EAAc,CAAM,EAAA,GAAA,KAAA,CAAA,UAAA,KAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAIpC,mBAAe,QAAQ,eAAiB,CAAA,CAAA,UAAA,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolFooter/PageNumber/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { AppState } from '@/store';\nimport { connect } from 'react-redux';\nimport { GraphToolInstance } from '@/store/annotation/types';\nimport { Divider } from 'antd/es';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n toolInstance: GraphToolInstance;\n}\n\nconst PageNumber = (props: IProps) => {\n const { toolInstance } = props;\n const [_, forceRender] = useState(0);\n const { t } = useTranslation();\n useEffect(() => {\n if (toolInstance) {\n toolInstance.singleOn('updatePageNumber', () => {\n forceRender((s) => s + 1);\n });\n }\n }, [toolInstance]);\n\n if (!toolInstance) {\n return null;\n }\n\n const count = toolInstance?.currentPageResult?.length;\n if (count >= 0) {\n return (\n <span>\n {`${t('ItemsOfThisPage')}: ${count}`}\n <Divider type='vertical' style={{ background: 'rgba(153, 153, 153, 1)', height: '16px' }} />\n </span>\n );\n }\n\n return null;\n};\n\nconst mapStateToProps = (state: AppState) => {\n return {\n toolInstance: state.annotation?.toolInstance,\n };\n};\n\nexport default connect(mapStateToProps)(PageNumber);\n"],"names":[],"mappings":";;;;;AAWA,MAAM,aAAa,CAAC,UAAkB;AAXtC;AAYE,QAAM,CAAE,gBAAiB;AACzB,QAAM,CAAC,GAAG,eAAe,SAAS;AAClC,QAAM,CAAE,KAAM;AACd,YAAU,MAAM;AACd,QAAI,cAAc;AAChB,mBAAa,SAAS,oBAAoB,MAAM;AAC9C,oBAAY,CAAC,MAAM,IAAI;AAAA;AAAA;AAAA,KAG1B,CAAC;AAEJ,MAAI,CAAC,cAAc;AACjB,WAAO;AAAA;AAGT,QAAM,QAAQ,mDAAc,sBAAd,mBAAiC;AAC/C,MAAI,SAAS,GAAG;AACd,+CACG,QAAD,MACG,GAAG,EAAE,uBAAuB,6CAC5B,SAAD;AAAA,MAAS,MAAK;AAAA,MAAW,OAAO,CAAE,YAAY,0BAA0B,QAAQ;AAAA;AAAA;AAKtF,SAAO;AAAA;AAGT,MAAM,kBAAkB,CAAC,UAAoB;AAxC7C;AAyCE,SAAO;AAAA,IACL,cAAc,YAAM,eAAN,mBAAkB;AAAA;AAAA;AAIpC,mBAAe,QAAQ,iBAAiB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolFooter/PageNumber/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { AppState } from '@/store';\nimport { connect } from 'react-redux';\nimport { GraphToolInstance } from '@/store/annotation/types';\nimport { Divider } from 'antd/es';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n toolInstance: GraphToolInstance;\n}\n\nconst PageNumber = (props: IProps) => {\n const { toolInstance } = props;\n const [_, forceRender] = useState(0);\n const { t } = useTranslation();\n useEffect(() => {\n if (toolInstance) {\n toolInstance.singleOn('updatePageNumber', () => {\n forceRender((s) => s + 1);\n });\n }\n }, [toolInstance]);\n\n if (!toolInstance) {\n return null;\n }\n\n const count = toolInstance?.currentPageResult?.length;\n if (count >= 0) {\n return (\n <span>\n {`${t('ItemsOfThisPage')}: ${count}`}\n <Divider type='vertical' style={{ background: 'rgba(153, 153, 153, 1)', height: '16px' }} />\n </span>\n );\n }\n\n return null;\n};\n\nconst mapStateToProps = (state: AppState) => {\n return {\n toolInstance: state.annotation?.toolInstance,\n };\n};\n\nexport default connect(mapStateToProps)(PageNumber);\n"],"names":[],"mappings":";;;;;AAWA,MAAM,UAAA,GAAa,CAAC,KAAkB,KAAA;AAXtC,EAAA,IAAA,EAAA,CAAA;AAYE,EAAA,MAAM,CAAE,YAAiB,CAAA,GAAA,KAAA,CAAA;AACzB,EAAM,MAAA,CAAC,CAAG,EAAA,WAAA,CAAA,GAAe,QAAS,CAAA,CAAA,CAAA,CAAA;AAClC,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AACd,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,YAAc,EAAA;AAChB,MAAa,YAAA,CAAA,QAAA,CAAS,oBAAoB,MAAM;AAC9C,QAAY,WAAA,CAAA,CAAC,MAAM,CAAI,GAAA,CAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,EAG1B,CAAC,YAAA,CAAA,CAAA,CAAA;AAEJ,EAAA,IAAI,CAAC,YAAc,EAAA;AACjB,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA;AAGT,EAAM,MAAA,KAAA,GAAQ,CAAc,EAAA,GAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,iBAAA,KAAd,IAAiC,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAA,CAAA;AAC/C,EAAA,IAAI,SAAS,CAAG,EAAA;AACd,IACE,uBAAA,KAAA,CAAA,aAAA,CAAC,QAAD,IACG,EAAA,CAAA,EAAG,EAAE,iBAAuB,CAAA,CAAA,EAAA,EAAA,KAAA,CAAA,CAAA,sCAC5B,OAAD,EAAA;AAAA,MAAS,IAAK,EAAA,UAAA;AAAA,MAAW,KAAO,EAAA,CAAE,UAAY,EAAA,wBAAA,EAA0B,MAAQ,EAAA,MAAA,CAAA;AAAA,KAAA,CAAA,CAAA,CAAA;AAAA,GAAA;AAKtF,EAAO,OAAA,IAAA,CAAA;AAAA,CAAA,CAAA;AAGT,MAAM,eAAA,GAAkB,CAAC,KAAoB,KAAA;AAxC7C,EAAA,IAAA,EAAA,CAAA;AAyCE,EAAO,OAAA;AAAA,IACL,YAAA,EAAc,CAAM,EAAA,GAAA,KAAA,CAAA,UAAA,KAAN,IAAkB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,YAAA;AAAA,GAAA,CAAA;AAAA,CAAA,CAAA;AAIpC,mBAAe,QAAQ,eAAiB,CAAA,CAAA,UAAA,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/views/MainView/toolFooter/ZoomController/ZoomLevel/index.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { AppState } from '@/store';\nimport { ToolInstance } from '@/store/annotation/types';\nimport { connect } from 'react-redux';\nimport useSafeState from '@/hooks/useSafeSate';\n\ninterface IProps {\n toolInstance: ToolInstance;\n}\n\nconst ZoomLevel: React.FC<IProps> = ({ toolInstance }) => {\n const [, forceRender] = useSafeState<number>(0);\n useEffect(() => {\n if (toolInstance) {\n // 这里会有内存泄漏的问题 useSafeState 用这个解决下\n toolInstance.singleOn('renderZoom', () => {\n forceRender((s) => s + 1);\n });\n }\n }, [toolInstance]);\n\n const zoom = toolInstance?.zoom ?? 1;\n\n return (\n <span className=\"zoomValue\">\n {(zoom * 100).toFixed(1)}\n %\n </span>\n );\n};\n\nconst mapStateToProps = (state: AppState) => ({\n toolInstance: state.annotation.toolInstance,\n});\n\nexport default connect(mapStateToProps)(ZoomLevel);\n"],"names":[],"mappings":";;;;AAUA,MAAM,YAA8B,CAAC,CAAE,kBAAmB;AAV1D;AAWE,QAAM,GAAG,eAAe,aAAqB;AAC7C,YAAU,MAAM;AACd,QAAI,cAAc;AAEhB,mBAAa,SAAS,cAAc,MAAM;AACxC,oBAAY,CAAC,MAAM,IAAI;AAAA;AAAA;AAAA,KAG1B,CAAC;AAEJ,QAAM,OAAO,mDAAc,SAAd,YAAsB;AAEnC,6CACG,QAAD;AAAA,IAAM,WAAU;AAAA,KACZ,QAAO,KAAK,QAAQ,IAAG;AAAA;AAM/B,MAAM,kBAAkB,CAAC;AAAqB,EAC5C,cAAc,MAAM,WAAW;AAAA;AAGjC,kBAAe,QAAQ,iBAAiB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/views/MainView/toolFooter/ZoomController/ZoomLevel/index.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { AppState } from '@/store';\nimport { ToolInstance } from '@/store/annotation/types';\nimport { connect } from 'react-redux';\nimport useSafeState from '@/hooks/useSafeSate';\n\ninterface IProps {\n toolInstance: ToolInstance;\n}\n\nconst ZoomLevel: React.FC<IProps> = ({ toolInstance }) => {\n const [, forceRender] = useSafeState<number>(0);\n useEffect(() => {\n if (toolInstance) {\n // 这里会有内存泄漏的问题 useSafeState 用这个解决下\n toolInstance.singleOn('renderZoom', () => {\n forceRender((s) => s + 1);\n });\n }\n }, [toolInstance]);\n\n const zoom = toolInstance?.zoom ?? 1;\n\n return (\n <span className=\"zoomValue\">\n {(zoom * 100).toFixed(1)}\n %\n </span>\n );\n};\n\nconst mapStateToProps = (state: AppState) => ({\n toolInstance: state.annotation.toolInstance,\n});\n\nexport default connect(mapStateToProps)(ZoomLevel);\n"],"names":[],"mappings":";;;;AAUA,MAAM,SAAA,GAA8B,CAAC,CAAE,YAAmB,CAAA,KAAA;AAV1D,EAAA,IAAA,EAAA,CAAA;AAWE,EAAM,MAAA,GAAG,WAAA,CAAA,GAAe,YAAqB,CAAA,CAAA,CAAA,CAAA;AAC7C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,YAAc,EAAA;AAEhB,MAAa,YAAA,CAAA,QAAA,CAAS,cAAc,MAAM;AACxC,QAAY,WAAA,CAAA,CAAC,MAAM,CAAI,GAAA,CAAA,CAAA,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,EAG1B,CAAC,YAAA,CAAA,CAAA,CAAA;AAEJ,EAAM,MAAA,IAAA,GAAO,CAAc,EAAA,GAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,IAAA,KAAd,IAAsB,GAAA,EAAA,GAAA,CAAA,CAAA;AAEnC,EAAA,2CACG,MAAD,EAAA;AAAA,IAAM,SAAU,EAAA,WAAA;AAAA,GACZ,EAAA,CAAA,IAAA,GAAO,GAAK,EAAA,OAAA,CAAQ,CAAG,CAAA,EAAA,GAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAM/B,MAAM,eAAA,GAAkB,CAAC,KAAqB,MAAA;AAAA,EAC5C,YAAA,EAAc,MAAM,UAAW,CAAA,YAAA;AAAA,CAAA,CAAA,CAAA;AAGjC,kBAAe,QAAQ,eAAiB,CAAA,CAAA,SAAA,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolFooter/ZoomController/index.tsx"],"sourcesContent":["import React from 'react';\nimport adaptIcon from '@/assets/annotation/common/icon_adapt.svg';\nimport adaptIconBlack from '@/assets/annotation/common/icon_adapt_black.svg';\nimport {\n MinusOutlined,\n PlusOutlined,\n} from '@ant-design/icons';\nimport { AppState } from '@/store';\nimport { ToolInstance } from '@/store/annotation/types';\nimport { connect } from 'react-redux';\nimport ZoomLevel from './ZoomLevel';\nimport { footerCls } from '../index';\n\ninterface IProps {\n toolInstance: ToolInstance\n mode?: 'light' | 'dark'\n}\n\nconst ZoomController: React.FC<IProps> = ({ toolInstance, mode }) => {\n const initialPosition = () => {\n toolInstance.initImgPos();\n };\n\n let defaultIcon = adaptIcon;\n \n if (mode === 'light') {\n defaultIcon = adaptIconBlack;\n }\n\n return <div>\n <span className={`${footerCls}__zoomController`}>\n <MinusOutlined\n className={`${footerCls}__highlight`}\n onClick={() => {\n toolInstance.zoomChanged(false);\n }}\n />\n <span className={`${footerCls}__zoomText`} onClick={initialPosition}>\n <img src={defaultIcon} className='adaptIcon' />\n <ZoomLevel />\n </span>\n <PlusOutlined\n className={`${footerCls}__highlight`}\n onClick={() => {\n toolInstance.zoomChanged(true);\n }}\n />\n </span>\n </div>\n}\n\nconst mapStateToProps = (state: AppState) => ({\n toolInstance: state.annotation.toolInstance,\n});\n\nexport default connect(mapStateToProps)(ZoomController);\n"],"names":["adaptIcon","adaptIconBlack"],"mappings":";;;;;;;;AAkBA,MAAM,iBAAmC,CAAC,CAAE,cAAc,UAAW;AACnE,QAAM,kBAAkB,MAAM;AAC5B,iBAAa;AAAA;AAGf,MAAI,cAAcA;AAElB,MAAI,SAAS,SAAS;AACpB,kBAAcC;AAAA;AAGhB,6CAAQ,OAAD,0CACJ,QAAD;AAAA,IAAM,WAAW,GAAG;AAAA,yCACjB,eAAD;AAAA,IACE,WAAW,GAAG;AAAA,IACd,SAAS,MAAM;AACb,mBAAa,YAAY;AAAA;AAAA,0CAG5B,QAAD;AAAA,IAAM,WAAW,GAAG;AAAA,IAAuB,SAAS;AAAA,yCACjD,OAAD;AAAA,IAAK,KAAK;AAAA,IAAa,WAAU;AAAA,0CAChC,WAAD,4CAED,cAAD;AAAA,IACE,WAAW,GAAG;AAAA,IACd,SAAS,MAAM;AACb,mBAAa,YAAY;AAAA;AAAA;AAAA;AAOnC,MAAM,kBAAkB,CAAC;AAAqB,EAC5C,cAAc,MAAM,WAAW;AAAA;AAGjC,uBAAe,QAAQ,iBAAiB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolFooter/ZoomController/index.tsx"],"sourcesContent":["import React from 'react';\nimport adaptIcon from '@/assets/annotation/common/icon_adapt.svg';\nimport adaptIconBlack from '@/assets/annotation/common/icon_adapt_black.svg';\nimport {\n MinusOutlined,\n PlusOutlined,\n} from '@ant-design/icons';\nimport { AppState } from '@/store';\nimport { ToolInstance } from '@/store/annotation/types';\nimport { connect } from 'react-redux';\nimport ZoomLevel from './ZoomLevel';\nimport { footerCls } from '../index';\n\ninterface IProps {\n toolInstance: ToolInstance\n mode?: 'light' | 'dark'\n}\n\nconst ZoomController: React.FC<IProps> = ({ toolInstance, mode }) => {\n const initialPosition = () => {\n toolInstance.initImgPos();\n };\n\n let defaultIcon = adaptIcon;\n \n if (mode === 'light') {\n defaultIcon = adaptIconBlack;\n }\n\n return <div>\n <span className={`${footerCls}__zoomController`}>\n <MinusOutlined\n className={`${footerCls}__highlight`}\n onClick={() => {\n toolInstance.zoomChanged(false);\n }}\n />\n <span className={`${footerCls}__zoomText`} onClick={initialPosition}>\n <img src={defaultIcon} className='adaptIcon' />\n <ZoomLevel />\n </span>\n <PlusOutlined\n className={`${footerCls}__highlight`}\n onClick={() => {\n toolInstance.zoomChanged(true);\n }}\n />\n </span>\n </div>\n}\n\nconst mapStateToProps = (state: AppState) => ({\n toolInstance: state.annotation.toolInstance,\n});\n\nexport default connect(mapStateToProps)(ZoomController);\n"],"names":["adaptIcon","adaptIconBlack"],"mappings":";;;;;;;;AAkBA,MAAM,cAAmC,GAAA,CAAC,CAAE,YAAA,EAAc,IAAW,CAAA,KAAA;AACnE,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAa,YAAA,CAAA,UAAA,EAAA,CAAA;AAAA,GAAA,CAAA;AAGf,EAAA,IAAI,WAAc,GAAAA,GAAA,CAAA;AAElB,EAAA,IAAI,SAAS,OAAS,EAAA;AACpB,IAAc,WAAA,GAAAC,KAAA,CAAA;AAAA,GAAA;AAGhB,EAAA,uBAAQ,KAAA,CAAA,aAAA,CAAA,KAAA,EAAD,IACL,kBAAA,KAAA,CAAA,aAAA,CAAC,MAAD,EAAA;AAAA,IAAM,WAAW,CAAG,EAAA,SAAA,CAAA,gBAAA,CAAA;AAAA,GAAA,sCACjB,aAAD,EAAA;AAAA,IACE,WAAW,CAAG,EAAA,SAAA,CAAA,WAAA,CAAA;AAAA,IACd,SAAS,MAAM;AACb,MAAA,YAAA,CAAa,WAAY,CAAA,KAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA,sCAG5B,MAAD,EAAA;AAAA,IAAM,WAAW,CAAG,EAAA,SAAA,CAAA,UAAA,CAAA;AAAA,IAAuB,OAAS,EAAA,eAAA;AAAA,GAAA,sCACjD,KAAD,EAAA;AAAA,IAAK,GAAK,EAAA,WAAA;AAAA,IAAa,SAAU,EAAA,WAAA;AAAA,GAAA,CAAA,kBAChC,KAAA,CAAA,aAAA,CAAA,SAAA,EAAD,IAEF,CAAA,CAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,YAAD,EAAA;AAAA,IACE,WAAW,CAAG,EAAA,SAAA,CAAA,WAAA,CAAA;AAAA,IACd,SAAS,MAAM;AACb,MAAA,YAAA,CAAa,WAAY,CAAA,IAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAOnC,MAAM,eAAA,GAAkB,CAAC,KAAqB,MAAA;AAAA,EAC5C,YAAA,EAAc,MAAM,UAAW,CAAA,YAAA;AAAA,CAAA,CAAA,CAAA;AAGjC,uBAAe,QAAQ,eAAiB,CAAA,CAAA,cAAA,CAAA;;;;"}
@@ -1 +1 @@
1
- import e,{useState as v,useRef as b,useEffect as P}from"react";import{Input as j,Divider as k}from"antd/es";import{LeftOutlined as S,RightOutlined as T}from"@ant-design/icons";import{connect as _,useDispatch as w}from"react-redux";import{getTotalPage as C}from"../../../store/annotation/reducer.js";import F from"./HiddenTips/index.js";import N from"./PageNumber/index.js";import $ from"./ZoomController/index.js";import y from"./FooterTips/index.js";import{prefix as L}from"../../../constant/index.js";import{PageBackward as R,PageForward as D,PageJump as J}from"../../../store/annotation/actionCreators.js";import{useTranslation as H}from"react-i18next";const u=t=>{const{jumpSkip:i,imgIndex:a}=t,[l,r]=v(a),c=b(null);P(()=>{r(a+1)},[a]);const m=n=>{/^\d*$/.test(n.target.value)&&r(n.target.value)},s=n=>{n.keyCode===13&&i(n.target.value)};return e.createElement(j,{className:"pageInput",ref:c,onChange:m,value:l,onKeyDown:s})},o=`${L}-footer`,d=()=>e.createElement(k,{type:"vertical",style:{background:"rgba(153, 153, 153, 1)",height:"16px"}}),B=t=>{var i;const{stepList:a,step:l,basicResultList:r,basicIndex:c,mode:m}=t,s=w(),{t:n}=H(),p=(i=a[l-1])!=null?i:{},g=()=>{s(R())},f=()=>{s(D())},x=I=>{const h=~~I-1;s(J(h))},E=!!p.dataSourceStep;return e.createElement("div",{className:`${o}`,style:t.style},e.createElement(y,null),e.createElement("div",{style:{flex:1}}),e.createElement(F,null),e.createElement(N,null),e.createElement("div",{className:`${o}__pagination`},e.createElement(S,{className:`${o}__highlight`,onClick:g}),e.createElement(u,{imgIndex:t.imgIndex,jumpSkip:x}),"/",e.createElement("span",{className:`${o}__pageAll`},t.totalPage),e.createElement(T,{className:`${o}__highlight`,onClick:f})),E&&r.length>0&&e.createElement(e.Fragment,null,e.createElement(d,null),e.createElement("span",null,n("curItems",{current:c+1,total:r.length}))),e.createElement(d,null),e.createElement($,{mode:m}))},O=t=>({totalPage:C(t.annotation),imgIndex:t.annotation.imgIndex,stepList:t.annotation.stepList,step:t.annotation.step,basicIndex:t.annotation.basicIndex,basicResultList:t.annotation.basicResultList});var Z=_(O)(B);export{u as PageInput,Z as default,o as footerCls};
1
+ import{prefix as k}from"../../../constant/index.js";import{PageBackward as C,PageForward as S,PageJump as _}from"../../../store/annotation/actionCreators.js";import{getTotalPage as $}from"../../../store/annotation/reducer.js";import{LeftOutlined as w,RightOutlined as F}from"@ant-design/icons";import{Input as L,Divider as R}from"antd/es";import e,{useState as D,useRef as J,useEffect as H}from"react";import{useTranslation as B}from"react-i18next";import{connect as O,useDispatch as Z}from"react-redux";import z from"./FooterTips/index.js";import A from"./HiddenTips/index.js";import K from"./PageNumber/index.js";import q from"./ZoomController/index.js";const h=t=>{const{jumpSkip:i,imgIndex:r}=t,[l,s]=D(r),c=J(null);H(()=>{s(r+1)},[r]);const m=n=>{/^\d*$/.test(n.target.value)&&s(n.target.value)},a=n=>{n.keyCode===13&&i(n.target.value)};return e.createElement(L,{className:"pageInput",ref:c,onChange:m,value:l,onKeyDown:a})},o=`${k}-footer`,G=()=>e.createElement(R,{type:"vertical",style:{background:"rgba(153, 153, 153, 1)",height:"16px"}}),M=t=>{var i;const{stepList:r,step:l,basicResultList:s,basicIndex:c,mode:m,footer:a}=t,n=Z(),{t:u}=B(),v=(i=r[l-1])!=null?i:{},b=()=>{n(C())},T=()=>{n(S())},y=P=>{const j=~~P-1;n(_(j))},N=!!v.dataSourceStep,d=e.createElement(z,null),g=e.createElement(A,null),f=e.createElement(K,null),x=e.createElement("div",{className:`${o}__pagination`},e.createElement(w,{className:`${o}__highlight`,onClick:b}),e.createElement(h,{imgIndex:t.imgIndex,jumpSkip:y}),"/",e.createElement("span",{className:`${o}__pageAll`},t.totalPage),e.createElement(F,{className:`${o}__highlight`,onClick:T})),E=e.createElement(q,{mode:m}),I=e.createElement("span",null,u("curItems",{current:c+1,total:s.length})),p=e.createElement(G,null);return a?typeof a=="function"?e.createElement("div",{className:`${o}`,style:t.style},a({footerTips:d,hiddenTips:g,pageNumber:f,pagination:x,zoomController:E,curItems:I,footerDivider:p})):a:e.createElement("div",{className:`${o}`,style:t.style},d,e.createElement("div",{style:{flex:1}}),g,f,x,N&&s.length>0&&e.createElement(e.Fragment,null,p,I),p,E)},Q=t=>({totalPage:$(t.annotation),imgIndex:t.annotation.imgIndex,stepList:t.annotation.stepList,step:t.annotation.step,basicIndex:t.annotation.basicIndex,basicResultList:t.annotation.basicResultList});var U=O(Q)(M);export{h as PageInput,U as default,o as footerCls};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/views/MainView/toolFooter/index.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport { Divider, Input } from 'antd/es';\nimport { LeftOutlined, RightOutlined } from '@ant-design/icons';\nimport { AppState } from '@/store';\nimport { connect, useDispatch } from 'react-redux';\nimport { getTotalPage } from '@/store/annotation/reducer';\nimport HiddenTips from './HiddenTips';\nimport PageNumber from './PageNumber';\nimport ZoomController from './ZoomController';\nimport FooterTips from './FooterTips';\nimport { prefix } from '@/constant';\nimport { PageBackward, PageForward, PageJump } from '@/store/annotation/actionCreators';\nimport { IStepInfo } from '@/types/step';\nimport { useTranslation } from 'react-i18next';\n\ninterface IPageProps {\n jumpSkip: Function;\n imgIndex: number;\n}\n\nexport const PageInput = (props: IPageProps) => {\n const { jumpSkip, imgIndex } = props;\n const [newIndex, setIndex] = useState(imgIndex);\n const inputEl = useRef(null);\n\n useEffect(() => {\n setIndex(imgIndex + 1);\n }, [imgIndex]);\n\n const newHandleJump = (e: any) => {\n const reg = /^\\d*$/;\n if (reg.test(e.target.value)) {\n setIndex(e.target.value);\n }\n };\n\n const newJumpSkip = (e: any) => {\n if (e.keyCode === 13) {\n jumpSkip(e.target.value);\n // inputEl?.current?.blur();\n }\n };\n\n return (\n <Input\n className='pageInput'\n ref={inputEl}\n onChange={newHandleJump}\n value={newIndex}\n onKeyDown={newJumpSkip}\n />\n );\n};\n\ninterface IProps {\n totalPage: number;\n imgIndex: number;\n style?: { [key: string]: any };\n stepList: IStepInfo[];\n step: number;\n basicResultList: any[];\n basicIndex: number;\n mode?: 'light' | 'dark'; // 后面通过 context 的形式进行编写\n}\n\nexport const footerCls = `${prefix}-footer`;\n\nconst FooterDivider = () => (\n <Divider type='vertical' style={{ background: 'rgba(153, 153, 153, 1)', height: '16px' }} />\n);\n\nconst ToolFooter: React.FC<IProps> = (props: IProps) => {\n const { stepList, step, basicResultList, basicIndex, mode } = props;\n const dispatch = useDispatch();\n\n const { t } = useTranslation();\n\n const stepInfo = stepList[step - 1] ?? {};\n\n const pageBackward = () => {\n dispatch(PageBackward());\n };\n\n const pageForward = () => {\n dispatch(PageForward());\n };\n\n const pageJump = (page: string) => {\n const imgIndex = ~~page - 1;\n dispatch(PageJump(imgIndex));\n };\n\n const hasSourceStep = !!stepInfo.dataSourceStep;\n\n return (\n <div className={`${footerCls}`} style={props.style}>\n <FooterTips />\n <div style={{ flex: 1 }} />\n <HiddenTips />\n <PageNumber />\n {/* {\n <>\n <span className='progress'>进度{((1 * 100) / 1).toFixed(2)}%</span>\n {<FooterDivider />}\n </>\n } */}\n\n <div className={`${footerCls}__pagination`}>\n <LeftOutlined className={`${footerCls}__highlight`} onClick={pageBackward} />\n <PageInput imgIndex={props.imgIndex} jumpSkip={pageJump} />/\n <span className={`${footerCls}__pageAll`}>{props.totalPage}</span>\n <RightOutlined className={`${footerCls}__highlight`} onClick={pageForward} />\n </div>\n\n {hasSourceStep && basicResultList.length > 0 && (\n <>\n <FooterDivider />\n <span>{t('curItems', { current: basicIndex + 1, total: basicResultList.length })}</span>\n </>\n )}\n\n <FooterDivider />\n <ZoomController mode={mode} />\n </div>\n );\n};\n\nconst mapStateToProps = (state: AppState) => ({\n totalPage: getTotalPage(state.annotation),\n imgIndex: state.annotation.imgIndex,\n stepList: state.annotation.stepList,\n step: state.annotation.step,\n basicIndex: state.annotation.basicIndex,\n basicResultList: state.annotation.basicResultList,\n});\n\nexport default connect(mapStateToProps)(ToolFooter);\n"],"names":[],"mappings":";;;;;;;;;;;;;MAoBa,YAAY,CAAC,UAAsB;AAC9C,QAAM,CAAE,UAAU,YAAa;AAC/B,QAAM,CAAC,UAAU,YAAY,SAAS;AACtC,QAAM,UAAU,OAAO;AAEvB,YAAU,MAAM;AACd,aAAS,WAAW;AAAA,KACnB,CAAC;AAEJ,QAAM,gBAAgB,CAAC,MAAW;AAChC,UAAM,MAAM;AACZ,QAAI,IAAI,KAAK,EAAE,OAAO,QAAQ;AAC5B,eAAS,EAAE,OAAO;AAAA;AAAA;AAItB,QAAM,cAAc,CAAC,MAAW;AAC9B,QAAI,EAAE,YAAY,IAAI;AACpB,eAAS,EAAE,OAAO;AAAA;AAAA;AAKtB,6CACG,OAAD;AAAA,IACE,WAAU;AAAA,IACV,KAAK;AAAA,IACL,UAAU;AAAA,IACV,OAAO;AAAA,IACP,WAAW;AAAA;AAAA;MAgBJ,YAAY,GAAG;AAE5B,MAAM,gBAAgB,0CACnB,SAAD;AAAA,EAAS,MAAK;AAAA,EAAW,OAAO,CAAE,YAAY,0BAA0B,QAAQ;AAAA;AAGlF,MAAM,aAA+B,CAAC,UAAkB;AAvExD;AAwEE,QAAM,CAAE,UAAU,MAAM,iBAAiB,YAAY,QAAS;AAC9D,QAAM,WAAW;AAEjB,QAAM,CAAE,KAAM;AAEd,QAAM,WAAW,eAAS,OAAO,OAAhB,YAAsB;AAEvC,QAAM,eAAe,MAAM;AACzB,aAAS;AAAA;AAGX,QAAM,cAAc,MAAM;AACxB,aAAS;AAAA;AAGX,QAAM,WAAW,CAAC,SAAiB;AACjC,UAAM,WAAW,CAAC,CAAC,OAAO;AAC1B,aAAS,SAAS;AAAA;AAGpB,QAAM,gBAAgB,CAAC,CAAC,SAAS;AAEjC,6CACG,OAAD;AAAA,IAAK,WAAW,GAAG;AAAA,IAAa,OAAO,MAAM;AAAA,yCAC1C,YAAD,2CACC,OAAD;AAAA,IAAK,OAAO,CAAE,MAAM;AAAA,0CACnB,YAAD,2CACC,YAAD,2CAQC,OAAD;AAAA,IAAK,WAAW,GAAG;AAAA,yCAChB,cAAD;AAAA,IAAc,WAAW,GAAG;AAAA,IAAwB,SAAS;AAAA,0CAC5D,WAAD;AAAA,IAAW,UAAU,MAAM;AAAA,IAAU,UAAU;AAAA,MAAY,yCAC1D,QAAD;AAAA,IAAM,WAAW,GAAG;AAAA,KAAuB,MAAM,gDAChD,eAAD;AAAA,IAAe,WAAW,GAAG;AAAA,IAAwB,SAAS;AAAA,OAG/D,iBAAiB,gBAAgB,SAAS,mGAEtC,eAAD,2CACC,QAAD,MAAO,EAAE,YAAY,CAAE,SAAS,aAAa,GAAG,OAAO,gBAAgB,gDAI1E,eAAD,2CACC,gBAAD;AAAA,IAAgB;AAAA;AAAA;AAKtB,MAAM,kBAAkB,CAAC;AAAqB,EAC5C,WAAW,aAAa,MAAM;AAAA,EAC9B,UAAU,MAAM,WAAW;AAAA,EAC3B,UAAU,MAAM,WAAW;AAAA,EAC3B,MAAM,MAAM,WAAW;AAAA,EACvB,YAAY,MAAM,WAAW;AAAA,EAC7B,iBAAiB,MAAM,WAAW;AAAA;AAGpC,mBAAe,QAAQ,iBAAiB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/views/MainView/toolFooter/index.tsx"],"sourcesContent":["import { prefix } from '@/constant';\nimport { AppState } from '@/store';\nimport { PageBackward, PageForward, PageJump } from '@/store/annotation/actionCreators';\nimport { getTotalPage } from '@/store/annotation/reducer';\nimport { Footer } from '@/types/main';\nimport { IStepInfo } from '@/types/step';\nimport { LeftOutlined, RightOutlined } from '@ant-design/icons';\nimport { Divider, Input } from 'antd/es';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { connect, useDispatch } from 'react-redux';\nimport FooterTips from './FooterTips';\nimport HiddenTips from './HiddenTips';\nimport PageNumber from './PageNumber';\nimport ZoomController from './ZoomController';\n\ninterface IPageProps {\n jumpSkip: Function;\n imgIndex: number;\n}\n\nexport const PageInput = (props: IPageProps) => {\n const { jumpSkip, imgIndex } = props;\n const [newIndex, setIndex] = useState(imgIndex);\n const inputEl = useRef(null);\n\n useEffect(() => {\n setIndex(imgIndex + 1);\n }, [imgIndex]);\n\n const newHandleJump = (e: any) => {\n const reg = /^\\d*$/;\n if (reg.test(e.target.value)) {\n setIndex(e.target.value);\n }\n };\n\n const newJumpSkip = (e: any) => {\n if (e.keyCode === 13) {\n jumpSkip(e.target.value);\n // inputEl?.current?.blur();\n }\n };\n\n return (\n <Input\n className='pageInput'\n ref={inputEl}\n onChange={newHandleJump}\n value={newIndex}\n onKeyDown={newJumpSkip}\n />\n );\n};\n\ninterface IProps {\n totalPage: number;\n imgIndex: number;\n style?: { [key: string]: any };\n stepList: IStepInfo[];\n step: number;\n basicResultList: any[];\n basicIndex: number;\n mode?: 'light' | 'dark'; // 后面通过 context 的形式进行编写\n footer?: Footer;\n}\n\nexport const footerCls = `${prefix}-footer`;\n\nconst FooterDivider = () => (\n <Divider type='vertical' style={{ background: 'rgba(153, 153, 153, 1)', height: '16px' }} />\n);\n\nconst ToolFooter: React.FC<IProps> = (props: IProps) => {\n const { stepList, step, basicResultList, basicIndex, mode, footer } = props;\n const dispatch = useDispatch();\n\n const { t } = useTranslation();\n\n const stepInfo = stepList[step - 1] ?? {};\n\n const pageBackward = () => {\n dispatch(PageBackward());\n };\n\n const pageForward = () => {\n dispatch(PageForward());\n };\n\n const pageJump = (page: string) => {\n const imgIndex = ~~page - 1;\n dispatch(PageJump(imgIndex));\n };\n\n const hasSourceStep = !!stepInfo.dataSourceStep;\n\n const footerTips = <FooterTips />;\n\n const hiddenTips = <HiddenTips />;\n\n const pageNumber = <PageNumber />;\n\n const pagination = (\n <div className={`${footerCls}__pagination`}>\n <LeftOutlined className={`${footerCls}__highlight`} onClick={pageBackward} />\n <PageInput imgIndex={props.imgIndex} jumpSkip={pageJump} />/\n <span className={`${footerCls}__pageAll`}>{props.totalPage}</span>\n <RightOutlined className={`${footerCls}__highlight`} onClick={pageForward} />\n </div>\n );\n\n const zoomController = <ZoomController mode={mode} />;\n\n const curItems = (\n <span>{t('curItems', { current: basicIndex + 1, total: basicResultList.length })}</span>\n );\n\n const footerDivider = <FooterDivider />;\n\n if (footer) {\n if (typeof footer === 'function') {\n return (\n <div className={`${footerCls}`} style={props.style}>\n {footer({\n footerTips,\n hiddenTips,\n pageNumber,\n pagination,\n zoomController,\n curItems,\n footerDivider,\n })}\n </div>\n );\n } else {\n return footer;\n }\n }\n\n return (\n <div className={`${footerCls}`} style={props.style}>\n {footerTips}\n <div style={{ flex: 1 }} />\n {hiddenTips}\n {pageNumber}\n {pagination}\n {hasSourceStep && basicResultList.length > 0 && (\n <>\n {footerDivider}\n {curItems}\n </>\n )}\n {footerDivider}\n {zoomController}\n </div>\n );\n};\n\nconst mapStateToProps = (state: AppState) => ({\n totalPage: getTotalPage(state.annotation),\n imgIndex: state.annotation.imgIndex,\n stepList: state.annotation.stepList,\n step: state.annotation.step,\n basicIndex: state.annotation.basicIndex,\n basicResultList: state.annotation.basicResultList,\n});\n\nexport default connect(mapStateToProps)(ToolFooter);\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolHeader/ExportData/index.tsx"],"sourcesContent":["import React from 'react';\nimport { Button } from 'antd/es';\nimport { AppState } from '@/store';\nimport { ToolInstance } from '@/store/annotation/types';\nimport { connect } from 'react-redux';\nimport { IFileItem, OnSubmit } from '@/types/data';\nimport { ANNOTATION_ACTIONS } from '@/store/Actions';\nimport { ESubmitType } from '@/constant';\nimport { Dispatch } from 'redux';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n toolInstance: ToolInstance;\n imgList: IFileItem[];\n onSubmit?: OnSubmit;\n exportData?: (imgList: IFileItem[]) => void;\n dispatch: Dispatch;\n}\n\nconst ExportData: React.FC<IProps> = ({ imgList, dispatch, onSubmit, exportData }) => {\n const { t } = useTranslation();\n\n if (!exportData) {\n return null;\n }\n\n const exportDataFuc = () => {\n dispatch({\n type: ANNOTATION_ACTIONS.SUBMIT_FILE_DATA,\n payload: {\n submitType: ESubmitType.Export,\n },\n });\n\n if (exportData) {\n exportData(imgList);\n }\n };\n\n return (\n <Button style={{ marginLeft: 20 }} onClick={exportDataFuc}>\n {t('Export')}\n </Button>\n );\n};\n\nconst mapStateToProps = (state: AppState) => ({\n toolInstance: state.annotation.toolInstance,\n imgList: state.annotation.imgList,\n onSubmit: state.annotation.onSubmit,\n});\n\nexport default connect(mapStateToProps)(ExportData);\n"],"names":[],"mappings":";;;;;;;AAmBA,MAAM,aAA+B,CAAC,CAAE,SAAS,UAAU,UAAU,gBAAiB;AACpF,QAAM,CAAE,KAAM;AAEd,MAAI,CAAC,YAAY;AACf,WAAO;AAAA;AAGT,QAAM,gBAAgB,MAAM;AAC1B,aAAS;AAAA,MACP,MAAM,mBAAmB;AAAA,MACzB,SAAS;AAAA,QACP,YAAY,YAAY;AAAA;AAAA;AAI5B,QAAI,YAAY;AACd,iBAAW;AAAA;AAAA;AAIf,6CACG,QAAD;AAAA,IAAQ,OAAO,CAAE,YAAY;AAAA,IAAM,SAAS;AAAA,KACzC,EAAE;AAAA;AAKT,MAAM,kBAAkB,CAAC;AAAqB,EAC5C,cAAc,MAAM,WAAW;AAAA,EAC/B,SAAS,MAAM,WAAW;AAAA,EAC1B,UAAU,MAAM,WAAW;AAAA;AAG7B,mBAAe,QAAQ,iBAAiB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolHeader/ExportData/index.tsx"],"sourcesContent":["import React from 'react';\nimport { Button } from 'antd/es';\nimport { AppState } from '@/store';\nimport { ToolInstance } from '@/store/annotation/types';\nimport { connect } from 'react-redux';\nimport { IFileItem, OnSubmit } from '@/types/data';\nimport { ANNOTATION_ACTIONS } from '@/store/Actions';\nimport { ESubmitType } from '@/constant';\nimport { Dispatch } from 'redux';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n toolInstance: ToolInstance;\n imgList: IFileItem[];\n onSubmit?: OnSubmit;\n exportData?: (imgList: IFileItem[]) => void;\n dispatch: Dispatch;\n}\n\nconst ExportData: React.FC<IProps> = ({ imgList, dispatch, onSubmit, exportData }) => {\n const { t } = useTranslation();\n\n if (!exportData) {\n return null;\n }\n\n const exportDataFuc = () => {\n dispatch({\n type: ANNOTATION_ACTIONS.SUBMIT_FILE_DATA,\n payload: {\n submitType: ESubmitType.Export,\n },\n });\n\n if (exportData) {\n exportData(imgList);\n }\n };\n\n return (\n <Button style={{ marginLeft: 20 }} onClick={exportDataFuc}>\n {t('Export')}\n </Button>\n );\n};\n\nconst mapStateToProps = (state: AppState) => ({\n toolInstance: state.annotation.toolInstance,\n imgList: state.annotation.imgList,\n onSubmit: state.annotation.onSubmit,\n});\n\nexport default connect(mapStateToProps)(ExportData);\n"],"names":[],"mappings":";;;;;;;AAmBA,MAAM,aAA+B,CAAC,CAAE,OAAS,EAAA,QAAA,EAAU,UAAU,UAAiB,CAAA,KAAA;AACpF,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AAEd,EAAA,IAAI,CAAC,UAAY,EAAA;AACf,IAAO,OAAA,IAAA,CAAA;AAAA,GAAA;AAGT,EAAA,MAAM,gBAAgB,MAAM;AAC1B,IAAS,QAAA,CAAA;AAAA,MACP,MAAM,kBAAmB,CAAA,gBAAA;AAAA,MACzB,OAAS,EAAA;AAAA,QACP,YAAY,WAAY,CAAA,MAAA;AAAA,OAAA;AAAA,KAAA,CAAA,CAAA;AAI5B,IAAA,IAAI,UAAY,EAAA;AACd,MAAW,UAAA,CAAA,OAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAIf,EAAA,2CACG,MAAD,EAAA;AAAA,IAAQ,KAAA,EAAO,CAAE,UAAY,EAAA,EAAA,CAAA;AAAA,IAAM,OAAS,EAAA,aAAA;AAAA,GAAA,EACzC,CAAE,CAAA,QAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAKT,MAAM,eAAA,GAAkB,CAAC,KAAqB,MAAA;AAAA,EAC5C,YAAA,EAAc,MAAM,UAAW,CAAA,YAAA;AAAA,EAC/B,OAAA,EAAS,MAAM,UAAW,CAAA,OAAA;AAAA,EAC1B,QAAA,EAAU,MAAM,UAAW,CAAA,QAAA;AAAA,CAAA,CAAA,CAAA;AAG7B,mBAAe,QAAQ,eAAiB,CAAA,CAAA,UAAA,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolHeader/StepSwitch/index.tsx"],"sourcesContent":["/**\n * 用于多步骤中的切换\n */\n\nimport { Dropdown } from 'antd/es';\nimport { CaretDownOutlined, OrderedListOutlined } from '@ant-design/icons';\nimport React from 'react';\nimport { connect, useDispatch } from 'react-redux';\nimport { AppState } from '@/store';\nimport IconWithText from '@/components/customAntd/IconWithText';\nimport { prefix } from '@/constant';\nimport AnnotationStepPopover from '@/components/annotationStepPopover';\nimport { IStepInfo } from '@/types/step';\nimport { UpdateProcessingStep } from '@/store/annotation/actionCreators';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n stepProgress: number;\n stepList: IStepInfo[];\n step: number;\n}\n\nconst StepSwitch: React.FC<IProps> = ({ stepProgress, step, stepList }) => {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const updateStep = (toStep: number) => {\n dispatch(UpdateProcessingStep(toStep));\n };\n\n return (\n <span className={`${prefix}`}>\n <Dropdown\n overlay={\n <AnnotationStepPopover stepList={stepList} updateStep={updateStep} currentStep={step} />\n }\n >\n <IconWithText\n text={t('Steps')}\n Icon={OrderedListOutlined}\n iconChildren={<CaretDownOutlined style={{ fontSize: 8 }} />}\n />\n </Dropdown>\n </span>\n );\n};\n\nconst mapStateToProps = (state: AppState) => ({\n stepList: state.annotation.stepList,\n step: state.annotation.step,\n});\n\nexport default connect(mapStateToProps)(StepSwitch);\n"],"names":[],"mappings":";;;;;;;;;;AAsBA,MAAM,aAA+B,CAAC,CAAE,cAAc,MAAM,cAAe;AACzE,QAAM,WAAW;AACjB,QAAM,CAAE,KAAM;AACd,QAAM,aAAa,CAAC,WAAmB;AACrC,aAAS,qBAAqB;AAAA;AAGhC,6CACG,QAAD;AAAA,IAAM,WAAW,GAAG;AAAA,yCACjB,UAAD;AAAA,IACE,6CACG,uBAAD;AAAA,MAAuB;AAAA,MAAoB;AAAA,MAAwB,aAAa;AAAA;AAAA,yCAGjF,cAAD;AAAA,IACE,MAAM,EAAE;AAAA,IACR,MAAM;AAAA,IACN,kDAAe,mBAAD;AAAA,MAAmB,OAAO,CAAE,UAAU;AAAA;AAAA;AAAA;AAO9D,MAAM,kBAAkB,CAAC;AAAqB,EAC5C,UAAU,MAAM,WAAW;AAAA,EAC3B,MAAM,MAAM,WAAW;AAAA;AAGzB,mBAAe,QAAQ,iBAAiB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolHeader/StepSwitch/index.tsx"],"sourcesContent":["/**\n * 用于多步骤中的切换\n */\n\nimport { Dropdown } from 'antd/es';\nimport { CaretDownOutlined, OrderedListOutlined } from '@ant-design/icons';\nimport React from 'react';\nimport { connect, useDispatch } from 'react-redux';\nimport { AppState } from '@/store';\nimport IconWithText from '@/components/customAntd/IconWithText';\nimport { prefix } from '@/constant';\nimport AnnotationStepPopover from '@/components/annotationStepPopover';\nimport { IStepInfo } from '@/types/step';\nimport { UpdateProcessingStep } from '@/store/annotation/actionCreators';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n stepProgress: number;\n stepList: IStepInfo[];\n step: number;\n}\n\nconst StepSwitch: React.FC<IProps> = ({ stepProgress, step, stepList }) => {\n const dispatch = useDispatch();\n const { t } = useTranslation();\n const updateStep = (toStep: number) => {\n dispatch(UpdateProcessingStep(toStep));\n };\n\n return (\n <span className={`${prefix}`}>\n <Dropdown\n overlay={\n <AnnotationStepPopover stepList={stepList} updateStep={updateStep} currentStep={step} />\n }\n >\n <IconWithText\n text={t('Steps')}\n Icon={OrderedListOutlined}\n iconChildren={<CaretDownOutlined style={{ fontSize: 8 }} />}\n />\n </Dropdown>\n </span>\n );\n};\n\nconst mapStateToProps = (state: AppState) => ({\n stepList: state.annotation.stepList,\n step: state.annotation.step,\n});\n\nexport default connect(mapStateToProps)(StepSwitch);\n"],"names":[],"mappings":";;;;;;;;;;AAsBA,MAAM,UAA+B,GAAA,CAAC,CAAE,YAAA,EAAc,MAAM,QAAe,CAAA,KAAA;AACzE,EAAA,MAAM,QAAW,GAAA,WAAA,EAAA,CAAA;AACjB,EAAA,MAAM,CAAE,CAAM,CAAA,GAAA,cAAA,EAAA,CAAA;AACd,EAAM,MAAA,UAAA,GAAa,CAAC,MAAmB,KAAA;AACrC,IAAA,QAAA,CAAS,oBAAqB,CAAA,MAAA,CAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAGhC,EAAA,2CACG,MAAD,EAAA;AAAA,IAAM,WAAW,CAAG,EAAA,MAAA,CAAA,CAAA;AAAA,GAAA,sCACjB,QAAD,EAAA;AAAA,IACE,OAAA,sCACG,qBAAD,EAAA;AAAA,MAAuB,QAAA;AAAA,MAAoB,UAAA;AAAA,MAAwB,WAAa,EAAA,IAAA;AAAA,KAAA,CAAA;AAAA,GAAA,sCAGjF,YAAD,EAAA;AAAA,IACE,MAAM,CAAE,CAAA,OAAA,CAAA;AAAA,IACR,IAAM,EAAA,mBAAA;AAAA,IACN,YAAA,sCAAe,iBAAD,EAAA;AAAA,MAAmB,KAAA,EAAO,CAAE,QAAU,EAAA,CAAA,CAAA;AAAA,KAAA,CAAA;AAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA;AAO9D,MAAM,eAAA,GAAkB,CAAC,KAAqB,MAAA;AAAA,EAC5C,QAAA,EAAU,MAAM,UAAW,CAAA,QAAA;AAAA,EAC3B,IAAA,EAAM,MAAM,UAAW,CAAA,IAAA;AAAA,CAAA,CAAA,CAAA;AAGzB,mBAAe,QAAQ,eAAiB,CAAA,CAAA,UAAA,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolHeader/headerOption/index.tsx"],"sourcesContent":["import React, { useState, useCallback } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { AppState } from '@/store';\nimport rotateSvg from '@/assets/annotation/common/icon_r.svg';\nimport restoreSvg from '@/assets/annotation/common/icon_next.svg';\nimport revocationSvg from '@/assets/annotation/common/icon_back.svg';\nimport rotateHighlightSvg from '@/assets/annotation/common/icon_rA.svg';\nimport restoreHighlightSvg from '@/assets/annotation/common/icon_nextA.svg';\nimport revocationHighlightSvg from '@/assets/annotation/common/icon_backA.svg';\nimport saveSvg from '@/assets/annotation/common/icon_save.svg';\nimport saveLightSvg from '@/assets/annotation/common/icon_saveA.svg';\nimport { prefix } from '@/constant';\nimport { EToolName } from '@/data/enums/ToolType';\nimport { ChangeSave } from '@/store/annotation/actionCreators';\nimport { IStepInfo } from '@/types/step';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n isBegin?: boolean;\n stepInfo: IStepInfo;\n}\n\nenum EColor {\n Hover = '#666fff',\n Normal = '#cccccc',\n}\n\nconst HeaderOption: React.FC<IProps> = (props) => {\n const [toolHover, setToolHover] = useState('');\n const { stepInfo } = props;\n const dispatch = useDispatch();\n const {\n annotation: { toolInstance, onSave },\n } = useSelector((state: AppState) => ({\n annotation: state.annotation,\n imgAttribute: state.imgAttribute,\n }));\n const { t } = useTranslation();\n\n const isBegin = props.isBegin || stepInfo?.tool === EToolName.Tag;\n\n const updateRotate = () => {\n /**\n * 1. 非第一步无法旋转\n * 2. 单步骤不存在 dataSourceStep\n */\n if (stepInfo.dataSourceStep !== 0 && stepInfo.dataSourceStep !== undefined) {\n return;\n }\n\n toolInstance?.updateRotate();\n };\n\n const revocation = useCallback(() => {\n toolInstance?.undo();\n }, [toolInstance]);\n\n const restore = useCallback(() => {\n toolInstance?.redo();\n }, [toolInstance]);\n\n const commonOptionList: any = [\n {\n toolName: 'save',\n title: 'Save',\n show: !!onSave,\n commonSvg: saveSvg,\n selectedSvg: saveLightSvg,\n click: () => {\n dispatch(ChangeSave);\n },\n style: {\n fontSize: '12px',\n color: !isBegin && toolHover === 'save' ? EColor.Hover : EColor.Normal,\n },\n },\n {\n toolName: 'revocation',\n title: 'Undo',\n show: true,\n commonSvg: revocationSvg,\n selectedSvg: revocationHighlightSvg,\n click: () => {\n revocation();\n },\n style: {\n opacity: isBegin === true ? 0.4 : 1,\n fontSize: '12px',\n color: !isBegin && toolHover === 'revocation' ? EColor.Hover : EColor.Normal,\n },\n },\n {\n toolName: 'restore',\n title: 'Redo',\n show: true,\n commonSvg: restoreSvg,\n selectedSvg: restoreHighlightSvg,\n click: () => {\n restore();\n },\n style: {\n opacity: isBegin === true ? 0.4 : 1,\n fontSize: '12px',\n color: !isBegin && toolHover === 'restore' ? EColor.Hover : EColor.Normal,\n },\n },\n {\n toolName: 'rotate',\n title: 'Rotate',\n show: true,\n selectedSvg: rotateHighlightSvg,\n commonSvg: rotateSvg,\n click: () => {\n updateRotate();\n },\n style: {\n fontSize: '12px',\n color: !isBegin && toolHover === 'rotate' ? EColor.Hover : EColor.Normal,\n },\n },\n ];\n\n return (\n <div className={`${prefix}-header__hotKey`}>\n {commonOptionList.map((info: any) => {\n return (\n info.show && (\n <div\n key={info.toolName}\n className='item'\n onMouseEnter={() => setToolHover(info.toolName)}\n onMouseLeave={() => setToolHover('')}\n >\n <a className='item' onClick={info.click}>\n <img\n className='singleTool'\n src={toolHover === info.toolName ? info.selectedSvg : info.commonSvg}\n style={info.style}\n />\n <div style={info.style}>{t(info.title)}</div>\n </a>\n </div>\n )\n );\n })}\n </div>\n );\n};\n\nexport default HeaderOption;\n"],"names":["saveSvg","saveLightSvg","revocationSvg","revocationHighlightSvg","restoreSvg","restoreHighlightSvg","rotateHighlightSvg","rotateSvg"],"mappings":";;;;;;;;;;;;;;;AAsBA,IAAK;AAAL,UAAK,SAAL;AACE,qBAAQ;AACR,sBAAS;AAAA,GAFN;MAKC,eAAiC,CAAC,UAAU;AAChD,QAAM,CAAC,WAAW,gBAAgB,SAAS;AAC3C,QAAM,CAAE,YAAa;AACrB,QAAM,WAAW;AACjB,QAAM;AAAA,IACJ,YAAY,CAAE,cAAc;AAAA,MAC1B,YAAY,CAAC;AAAqB,IACpC,YAAY,MAAM;AAAA,IAClB,cAAc,MAAM;AAAA;AAEtB,QAAM,CAAE,KAAM;AAEd,QAAM,UAAU,MAAM,WAAW,sCAAU,UAAS,UAAU;AAE9D,QAAM,eAAe,MAAM;AAKzB,QAAI,SAAS,mBAAmB,KAAK,SAAS,mBAAmB,QAAW;AAC1E;AAAA;AAGF,iDAAc;AAAA;AAGhB,QAAM,aAAa,YAAY,MAAM;AACnC,iDAAc;AAAA,KACb,CAAC;AAEJ,QAAM,UAAU,YAAY,MAAM;AAChC,iDAAc;AAAA,KACb,CAAC;AAEJ,QAAM,mBAAwB;AAAA,IAC5B;AAAA,MACE,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM,CAAC,CAAC;AAAA,MACR,WAAWA;AAAA,MACX,aAAaC;AAAA,MACb,OAAO,MAAM;AACX,iBAAS;AAAA;AAAA,MAEX,OAAO;AAAA,QACL,UAAU;AAAA,QACV,OAAO,CAAC,WAAW,cAAc,SAAS,OAAO,QAAQ,OAAO;AAAA;AAAA;AAAA,IAGpE;AAAA,MACE,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,MACN,WAAWC;AAAA,MACX,aAAaC;AAAA,MACb,OAAO,MAAM;AACX;AAAA;AAAA,MAEF,OAAO;AAAA,QACL,SAAS,YAAY,OAAO,MAAM;AAAA,QAClC,UAAU;AAAA,QACV,OAAO,CAAC,WAAW,cAAc,eAAe,OAAO,QAAQ,OAAO;AAAA;AAAA;AAAA,IAG1E;AAAA,MACE,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,MACN,WAAWC;AAAA,MACX,aAAaC;AAAA,MACb,OAAO,MAAM;AACX;AAAA;AAAA,MAEF,OAAO;AAAA,QACL,SAAS,YAAY,OAAO,MAAM;AAAA,QAClC,UAAU;AAAA,QACV,OAAO,CAAC,WAAW,cAAc,YAAY,OAAO,QAAQ,OAAO;AAAA;AAAA;AAAA,IAGvE;AAAA,MACE,UAAU;AAAA,MACV,OAAO;AAAA,MACP,MAAM;AAAA,MACN,aAAaC;AAAA,MACb,WAAWC;AAAA,MACX,OAAO,MAAM;AACX;AAAA;AAAA,MAEF,OAAO;AAAA,QACL,UAAU;AAAA,QACV,OAAO,CAAC,WAAW,cAAc,WAAW,OAAO,QAAQ,OAAO;AAAA;AAAA;AAAA;AAKxE,6CACG,OAAD;AAAA,IAAK,WAAW,GAAG;AAAA,KAChB,iBAAiB,IAAI,CAAC,SAAc;AACnC,WACE,KAAK,4CACF,OAAD;AAAA,MACE,KAAK,KAAK;AAAA,MACV,WAAU;AAAA,MACV,cAAc,MAAM,aAAa,KAAK;AAAA,MACtC,cAAc,MAAM,aAAa;AAAA,2CAEhC,KAAD;AAAA,MAAG,WAAU;AAAA,MAAO,SAAS,KAAK;AAAA,2CAC/B,OAAD;AAAA,MACE,WAAU;AAAA,MACV,KAAK,cAAc,KAAK,WAAW,KAAK,cAAc,KAAK;AAAA,MAC3D,OAAO,KAAK;AAAA,4CAEb,OAAD;AAAA,MAAK,OAAO,KAAK;AAAA,OAAQ,EAAE,KAAK;AAAA;AAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/views/MainView/toolHeader/headerOption/index.tsx"],"sourcesContent":["import React, { useState, useCallback } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { AppState } from '@/store';\nimport rotateSvg from '@/assets/annotation/common/icon_r.svg';\nimport restoreSvg from '@/assets/annotation/common/icon_next.svg';\nimport revocationSvg from '@/assets/annotation/common/icon_back.svg';\nimport rotateHighlightSvg from '@/assets/annotation/common/icon_rA.svg';\nimport restoreHighlightSvg from '@/assets/annotation/common/icon_nextA.svg';\nimport revocationHighlightSvg from '@/assets/annotation/common/icon_backA.svg';\nimport saveSvg from '@/assets/annotation/common/icon_save.svg';\nimport saveLightSvg from '@/assets/annotation/common/icon_saveA.svg';\nimport { prefix } from '@/constant';\nimport { EToolName } from '@/data/enums/ToolType';\nimport { ChangeSave } from '@/store/annotation/actionCreators';\nimport { IStepInfo } from '@/types/step';\nimport { useTranslation } from 'react-i18next';\n\ninterface IProps {\n isBegin?: boolean;\n stepInfo: IStepInfo;\n}\n\nenum EColor {\n Hover = '#666fff',\n Normal = '#cccccc',\n}\n\nconst HeaderOption: React.FC<IProps> = (props) => {\n const [toolHover, setToolHover] = useState('');\n const { stepInfo } = props;\n const dispatch = useDispatch();\n const {\n annotation: { toolInstance, onSave },\n } = useSelector((state: AppState) => ({\n annotation: state.annotation,\n imgAttribute: state.imgAttribute,\n }));\n const { t } = useTranslation();\n\n const isBegin = props.isBegin || stepInfo?.tool === EToolName.Tag;\n\n const updateRotate = () => {\n /**\n * 1. 非第一步无法旋转\n * 2. 单步骤不存在 dataSourceStep\n */\n if (stepInfo.dataSourceStep !== 0 && stepInfo.dataSourceStep !== undefined) {\n return;\n }\n\n toolInstance?.updateRotate();\n };\n\n const revocation = useCallback(() => {\n toolInstance?.undo();\n }, [toolInstance]);\n\n const restore = useCallback(() => {\n toolInstance?.redo();\n }, [toolInstance]);\n\n const commonOptionList: any = [\n {\n toolName: 'save',\n title: 'Save',\n show: !!onSave,\n commonSvg: saveSvg,\n selectedSvg: saveLightSvg,\n click: () => {\n dispatch(ChangeSave);\n },\n style: {\n fontSize: '12px',\n color: !isBegin && toolHover === 'save' ? EColor.Hover : EColor.Normal,\n },\n },\n {\n toolName: 'revocation',\n title: 'Undo',\n show: true,\n commonSvg: revocationSvg,\n selectedSvg: revocationHighlightSvg,\n click: () => {\n revocation();\n },\n style: {\n opacity: isBegin === true ? 0.4 : 1,\n fontSize: '12px',\n color: !isBegin && toolHover === 'revocation' ? EColor.Hover : EColor.Normal,\n },\n },\n {\n toolName: 'restore',\n title: 'Redo',\n show: true,\n commonSvg: restoreSvg,\n selectedSvg: restoreHighlightSvg,\n click: () => {\n restore();\n },\n style: {\n opacity: isBegin === true ? 0.4 : 1,\n fontSize: '12px',\n color: !isBegin && toolHover === 'restore' ? EColor.Hover : EColor.Normal,\n },\n },\n {\n toolName: 'rotate',\n title: 'Rotate',\n show: true,\n selectedSvg: rotateHighlightSvg,\n commonSvg: rotateSvg,\n click: () => {\n updateRotate();\n },\n style: {\n fontSize: '12px',\n color: !isBegin && toolHover === 'rotate' ? EColor.Hover : EColor.Normal,\n },\n },\n ];\n\n return (\n <div className={`${prefix}-header__hotKey`}>\n {commonOptionList.map((info: any) => {\n return (\n info.show && (\n <div\n key={info.toolName}\n className='item'\n onMouseEnter={() => setToolHover(info.toolName)}\n onMouseLeave={() => setToolHover('')}\n >\n <a className='item' onClick={info.click}>\n <img\n className='singleTool'\n src={toolHover === info.toolName ? info.selectedSvg : info.commonSvg}\n style={info.style}\n />\n <div style={info.style}>{t(info.title)}</div>\n </a>\n </div>\n )\n );\n })}\n </div>\n );\n};\n\nexport default HeaderOption;\n"],"names":["saveSvg","saveLightSvg","revocationSvg","revocationHighlightSvg","restoreSvg","restoreHighlightSvg","rotateHighlightSvg","rotateSvg"],"mappings":"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"}
@@ -1 +1 @@
1
- import e,{useReducer as T,useRef as j}from"react";import{LeftOutlined as b}from"@ant-design/icons";import{connect as w,useDispatch as y}from"react-redux";import{store as C}from"../../../index.js";import D from"classnames";import{prefix as n,ESubmitType as k}from"../../../constant/index.js";import O from"./ExportData/index.js";import z from"./headerOption/index.js";import{Tooltip as F,Button as H}from"antd/es";import{ToSubmitFileData as P,ToNextStep as R}from"../../../store/annotation/actionCreators.js";import A from"./StepSwitch/index.js";import{i18n as E}from"@labelbee/lb-utils";import{useTranslation as h}from"react-i18next";import B from"../../../hooks/useSize.js";import{last as I}from"lodash";const g=({disabled:t})=>{const{t:a}=h();return e.createElement(H,{type:"primary",style:{marginLeft:10},onClick:()=>{C.dispatch(R(0))},disabled:t},a("NextStep"))},Q=({step:t,stepProgress:a,stepList:r})=>{var i;const{t:s}=h(),c=(i=I(r))==null?void 0:i.step;if(r.length<2||t===c)return null;const o=a<1;return o?e.createElement(F,{title:s("StepNotFinishedNotify")},e.createElement("span",null,e.createElement(g,{disabled:o}))):e.createElement(g,{disabled:o})},U=({goBack:t,exportData:a,headerName:r,imgList:i,stepProgress:s,stepInfo:c,stepList:o,step:N,annotationEngine:x})=>{var m;const _=y(),[,v]=T(l=>l+1,0),p=j(null),d=B(p),S=e.createElement(O,{exportData:a}),$=()=>{_(P(k.Quit)),t&&t(i)},u=l=>{E.changeLanguage(l),x.setLang(l),v()},f=E.language,L=(m=d==null?void 0:d.width)!=null?m:window.innerWidth;return e.createElement("div",{className:D(`${n}-header`),ref:p},e.createElement("div",{className:`${n}-header__title`},e.createElement(b,{className:`${n}-header__icon`,onClick:$}),r?e.createElement("span",{className:`${n}-header__name`},r):"",o.length>1&&e.createElement(e.Fragment,null,e.createElement(A,{stepProgress:s}),e.createElement(Q,{step:N,stepProgress:s,stepList:o})),S,e.createElement("div",{id:"operationNode",className:`${n}-header__operationNode`,style:{left:L/2-174/2}},e.createElement(z,{stepInfo:c})),e.createElement("div",{className:`${n}-header__titlePlacement`}),e.createElement("div",{className:`${n}-header__lang`},e.createElement("span",{className:`${n}-langCN ${f==="cn"?"active":""}`,onClick:()=>u("cn")},"\u4E2D\u6587")," / ",e.createElement("span",{className:`${n}-langEN ${f==="en"?"active":""}`,onClick:()=>u("en")},"En"))))},W=t=>{var a;return{imgList:t.annotation.imgList,annotationEngine:t.annotation.annotationEngine,stepProgress:t.annotation.stepProgress,toolName:(a=t.annotation.stepList[t.annotation.step-1])==null?void 0:a.tool,stepList:t.annotation.stepList,stepInfo:t.annotation.stepList[t.annotation.step-1],step:t.annotation.step}};var q=w(W)(U);export{q as default};
1
+ import{prefix as n,ESubmitType as D}from"../../../constant/index.js";import O from"../../../hooks/useSize.js";import{ToNextStep as z,ToSubmitFileData as F}from"../../../store/annotation/actionCreators.js";import{LeftOutlined as H}from"@ant-design/icons";import{i18n as x}from"@labelbee/lb-utils";import{Tooltip as P,Button as R}from"antd/es";import S from"classnames";import{last as A}from"lodash";import e,{useReducer as B,useRef as I}from"react";import{useTranslation as $}from"react-i18next";import{connect as Q,useDispatch as U}from"react-redux";import{store as W}from"../../../index.js";import q from"./ExportData/index.js";import G from"./headerOption/index.js";import J from"./StepSwitch/index.js";const L=({disabled:t})=>{const{t:a}=$();return e.createElement(R,{type:"primary",style:{marginLeft:10},onClick:()=>{W.dispatch(z(0))},disabled:t},a("NextStep"))},K=({step:t,stepProgress:a,stepList:o})=>{var r;const{t:l}=$(),s=(r=A(o))==null?void 0:r.step;if(o.length<2||t===s)return null;const i=a<1;return i?e.createElement(P,{title:l("StepNotFinishedNotify")},e.createElement("span",null,e.createElement(L,{disabled:i}))):e.createElement(L,{disabled:i})},M=({goBack:t,exportData:a,header:o,headerName:r,imgList:l,stepProgress:s,stepInfo:i,stepList:p,step:T,annotationEngine:b})=>{var d;const j=U(),[,y]=B(c=>c+1,0),m=I(null),u=O(m),w=e.createElement(q,{exportData:a}),C=()=>{j(F(D.Quit)),t&&t(l)},f=c=>{x.changeLanguage(c),b.setLang(c),y()},E=x.language,k=(d=u==null?void 0:u.width)!=null?d:window.innerWidth,N=e.createElement(H,{className:`${n}-header__icon`,onClick:C}),h=r?e.createElement("span",{className:`${n}-header__name`},r):"",g=p.length>1&&e.createElement(e.Fragment,null,e.createElement(J,{stepProgress:s}),e.createElement(K,{step:T,stepProgress:s,stepList:p})),_=e.createElement(G,{stepInfo:i}),v=e.createElement("div",{className:`${n}-header__lang`},e.createElement("span",{className:`${n}-langCN ${E==="cn"?"active":""}`,onClick:()=>f("cn")},"\u4E2D\u6587")," / ",e.createElement("span",{className:`${n}-langEN ${E==="en"?"active":""}`,onClick:()=>f("en")},"En"));return o?typeof o=="function"?e.createElement("div",{className:S(`${n}-header`),ref:m},e.createElement("div",{className:`${n}-header__title`},o({backNode:N,headerNameNode:h,stepListNode:g,headerOptionNode:_,langNode:v}))):o:e.createElement("div",{className:S(`${n}-header`),ref:m},e.createElement("div",{className:`${n}-header__title`},N,h,g,w,e.createElement("div",{id:"operationNode",className:`${n}-header__operationNode`,style:{left:k/2-174/2}},_),e.createElement("div",{className:`${n}-header__titlePlacement`}),v))},V=t=>{var a;return{imgList:t.annotation.imgList,annotationEngine:t.annotation.annotationEngine,stepProgress:t.annotation.stepProgress,toolName:(a=t.annotation.stepList[t.annotation.step-1])==null?void 0:a.tool,stepList:t.annotation.stepList,stepInfo:t.annotation.stepList[t.annotation.step-1],step:t.annotation.step}};var X=Q(V)(M);export{X as default};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/views/MainView/toolHeader/index.tsx"],"sourcesContent":["import React, { useReducer, useRef } from 'react';\nimport { LeftOutlined } from '@ant-design/icons';\nimport { connect, useDispatch } from 'react-redux';\nimport { store } from 'src';\nimport { IFileItem } from '@/types/data';\nimport { AppState } from '@/store';\nimport classNames from 'classnames';\nimport { ESubmitType, prefix } from '@/constant';\nimport ExportData from './ExportData';\nimport HeaderOption from './headerOption';\nimport { AnnotationEngine } from '@labelbee/lb-annotation';\nimport { Button, Tooltip } from 'antd/es';\nimport { ToNextStep, ToSubmitFileData } from '@/store/annotation/actionCreators';\nimport StepSwitch from './StepSwitch';\nimport { EToolName } from '@/data/enums/ToolType';\nimport { IStepInfo } from '@/types/step';\nimport { i18n } from '@labelbee/lb-utils';\nimport { useTranslation } from 'react-i18next';\nimport useSize from '@/hooks/useSize';\nimport { last } from 'lodash';\n\ninterface INextStep {\n stepProgress: number;\n stepList: IStepInfo[];\n step: number; // 当前步骤\n}\n\nconst NextButton: React.FC<{ disabled: boolean }> = ({ disabled }) => {\n const { t } = useTranslation();\n return (\n <Button\n type='primary'\n style={{\n marginLeft: 10,\n }}\n onClick={() => {\n store.dispatch(ToNextStep(0) as any);\n }}\n disabled={disabled}\n >\n {t('NextStep')}\n </Button>\n );\n};\n\nconst NextStep: React.FC<INextStep> = ({ step, stepProgress, stepList }) => {\n const { t } = useTranslation();\n // 最后一步不显示下一步按钮\n const lastStep = last(stepList)?.step;\n\n if (stepList.length < 2 || step === lastStep) {\n return null;\n }\n\n const disabled = stepProgress < 1;\n\n if (disabled) {\n return (\n <Tooltip title={t('StepNotFinishedNotify')}>\n <span>\n <NextButton disabled={disabled} />\n </span>\n </Tooltip>\n );\n }\n\n return <NextButton disabled={disabled} />;\n};\n\ninterface IToolHeaderProps {\n goBack?: (imgList?: IFileItem[]) => void;\n exportData?: (data: any[]) => void;\n headerName?: string;\n imgList: IFileItem[];\n annotationEngine: AnnotationEngine;\n stepProgress: number;\n toolName: EToolName;\n stepInfo: IStepInfo;\n stepList: IStepInfo[];\n step: number;\n}\n\nconst ToolHeader: React.FC<IToolHeaderProps> = ({\n goBack,\n exportData,\n headerName,\n imgList,\n stepProgress,\n stepInfo,\n stepList,\n step,\n annotationEngine,\n}) => {\n const dispatch = useDispatch();\n const [, forceUpdate] = useReducer((x) => x + 1, 0);\n const ref = useRef(null);\n\n const size = useSize(ref);\n\n // render 数据展示\n const currentOption = <ExportData exportData={exportData} />;\n\n const closeAnnotation = () => {\n dispatch(ToSubmitFileData(ESubmitType.Quit));\n\n if (goBack) {\n goBack(imgList);\n }\n };\n\n const changeLanguage = (lang: 'en' | 'cn') => {\n i18n.changeLanguage(lang);\n annotationEngine.setLang(lang);\n forceUpdate();\n };\n\n const curLang = i18n.language;\n\n const width = size?.width ?? window.innerWidth;\n\n return (\n <div className={classNames(`${prefix}-header`)} ref={ref}>\n <div className={`${prefix}-header__title`}>\n <LeftOutlined className={`${prefix}-header__icon`} onClick={closeAnnotation} />\n {headerName ? <span className={`${prefix}-header__name`}>{headerName}</span> : ''}\n {stepList.length > 1 && (\n <>\n <StepSwitch stepProgress={stepProgress} />\n <NextStep step={step} stepProgress={stepProgress} stepList={stepList} />\n </>\n )}\n\n {currentOption}\n <div\n id='operationNode'\n className={`${prefix}-header__operationNode`}\n style={{ left: width / 2 - 174 / 2 }}\n >\n <HeaderOption stepInfo={stepInfo} />\n </div>\n\n <div className={`${prefix}-header__titlePlacement`} />\n\n <div className={`${prefix}-header__lang`}>\n <span\n className={`${prefix}-langCN ${curLang === 'cn' ? 'active' : ''}`}\n onClick={() => changeLanguage('cn')}\n >\n 中文\n </span>\n {` / `}\n <span\n className={`${prefix}-langEN ${curLang === 'en' ? 'active' : ''}`}\n onClick={() => changeLanguage('en')}\n >\n En\n </span>\n </div>\n </div>\n </div>\n );\n};\n\nconst mapStateToProps = (state: AppState) => ({\n imgList: state.annotation.imgList,\n annotationEngine: state.annotation.annotationEngine,\n stepProgress: state.annotation.stepProgress,\n toolName: state.annotation.stepList[state.annotation.step - 1]?.tool,\n stepList: state.annotation.stepList,\n stepInfo: state.annotation.stepList[state.annotation.step - 1],\n step: state.annotation.step,\n});\n\nexport default connect(mapStateToProps)(ToolHeader);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/views/MainView/toolHeader/index.tsx"],"sourcesContent":["import { ESubmitType, prefix } from '@/constant';\nimport { EToolName } from '@/data/enums/ToolType';\nimport useSize from '@/hooks/useSize';\nimport { AppState } from '@/store';\nimport { ToNextStep, ToSubmitFileData } from '@/store/annotation/actionCreators';\nimport { IFileItem } from '@/types/data';\nimport { Header } from '@/types/main';\nimport { IStepInfo } from '@/types/step';\nimport { LeftOutlined } from '@ant-design/icons';\nimport { AnnotationEngine } from '@labelbee/lb-annotation';\nimport { i18n } from '@labelbee/lb-utils';\nimport { Button, Tooltip } from 'antd/es';\nimport classNames from 'classnames';\nimport { last } from 'lodash';\nimport React, { useReducer, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { connect, useDispatch } from 'react-redux';\nimport { store } from 'src';\nimport ExportData from './ExportData';\nimport HeaderOption from './headerOption';\nimport StepSwitch from './StepSwitch';\n\ninterface INextStep {\n stepProgress: number;\n stepList: IStepInfo[];\n step: number; // 当前步骤\n}\n\nconst NextButton: React.FC<{ disabled: boolean }> = ({ disabled }) => {\n const { t } = useTranslation();\n return (\n <Button\n type='primary'\n style={{\n marginLeft: 10,\n }}\n onClick={() => {\n store.dispatch(ToNextStep(0) as any);\n }}\n disabled={disabled}\n >\n {t('NextStep')}\n </Button>\n );\n};\n\nconst NextStep: React.FC<INextStep> = ({ step, stepProgress, stepList }) => {\n const { t } = useTranslation();\n // 最后一步不显示下一步按钮\n const lastStep = last(stepList)?.step;\n\n if (stepList.length < 2 || step === lastStep) {\n return null;\n }\n\n const disabled = stepProgress < 1;\n\n if (disabled) {\n return (\n <Tooltip title={t('StepNotFinishedNotify')}>\n <span>\n <NextButton disabled={disabled} />\n </span>\n </Tooltip>\n );\n }\n\n return <NextButton disabled={disabled} />;\n};\n\ninterface IToolHeaderProps {\n goBack?: (imgList?: IFileItem[]) => void;\n exportData?: (data: any[]) => void;\n header?: Header;\n headerName?: string;\n imgList: IFileItem[];\n annotationEngine: AnnotationEngine;\n stepProgress: number;\n toolName: EToolName;\n stepInfo: IStepInfo;\n stepList: IStepInfo[];\n step: number;\n}\n\nconst ToolHeader: React.FC<IToolHeaderProps> = ({\n goBack,\n exportData,\n header,\n headerName,\n imgList,\n stepProgress,\n stepInfo,\n stepList,\n step,\n annotationEngine,\n}) => {\n const dispatch = useDispatch();\n const [, forceUpdate] = useReducer((x) => x + 1, 0);\n const ref = useRef(null);\n\n const size = useSize(ref);\n\n // render 数据展示\n const currentOption = <ExportData exportData={exportData} />;\n\n const closeAnnotation = () => {\n dispatch(ToSubmitFileData(ESubmitType.Quit));\n\n if (goBack) {\n goBack(imgList);\n }\n };\n\n const changeLanguage = (lang: 'en' | 'cn') => {\n i18n.changeLanguage(lang);\n annotationEngine.setLang(lang);\n forceUpdate();\n };\n\n const curLang = i18n.language;\n\n const width = size?.width ?? window.innerWidth;\n\n const backNode = <LeftOutlined className={`${prefix}-header__icon`} onClick={closeAnnotation} />;\n\n const headerNameNode = headerName ? (\n <span className={`${prefix}-header__name`}>{headerName}</span>\n ) : (\n ''\n );\n\n const stepListNode = stepList.length > 1 && (\n <>\n <StepSwitch stepProgress={stepProgress} />\n <NextStep step={step} stepProgress={stepProgress} stepList={stepList} />\n </>\n );\n\n const headerOptionNode = <HeaderOption stepInfo={stepInfo} />;\n\n const langNode = (\n <div className={`${prefix}-header__lang`}>\n <span\n className={`${prefix}-langCN ${curLang === 'cn' ? 'active' : ''}`}\n onClick={() => changeLanguage('cn')}\n >\n 中文\n </span>\n {` / `}\n <span\n className={`${prefix}-langEN ${curLang === 'en' ? 'active' : ''}`}\n onClick={() => changeLanguage('en')}\n >\n En\n </span>\n </div>\n );\n\n if (header) {\n if (typeof header === 'function') {\n return (\n <div className={classNames(`${prefix}-header`)} ref={ref}>\n <div className={`${prefix}-header__title`}>\n {header({\n backNode,\n headerNameNode,\n stepListNode,\n headerOptionNode,\n langNode,\n })}\n </div>\n </div>\n );\n } else {\n return header;\n }\n }\n\n return (\n <div className={classNames(`${prefix}-header`)} ref={ref}>\n <div className={`${prefix}-header__title`}>\n {backNode}\n {headerNameNode}\n {stepListNode}\n {currentOption}\n <div\n id='operationNode'\n className={`${prefix}-header__operationNode`}\n style={{ left: width / 2 - 174 / 2 }}\n >\n {headerOptionNode}\n </div>\n <div className={`${prefix}-header__titlePlacement`} />\n {langNode}\n </div>\n </div>\n );\n};\n\nconst mapStateToProps = (state: AppState) => ({\n imgList: state.annotation.imgList,\n annotationEngine: state.annotation.annotationEngine,\n stepProgress: state.annotation.stepProgress,\n toolName: state.annotation.stepList[state.annotation.step - 1]?.tool,\n stepList: state.annotation.stepList,\n stepInfo: state.annotation.stepList[state.annotation.step - 1],\n step: state.annotation.step,\n});\n\nexport default connect(mapStateToProps)(ToolHeader);\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@labelbee/lb-components",
3
- "version": "1.2.3-alpha.6",
3
+ "version": "1.3.0",
4
4
  "description": "Provide a complete library of annotation components",
5
5
  "main": "./dist/index.js",
6
6
  "es": "./es/index.js",
@@ -13,8 +13,8 @@
13
13
  "scripts": {
14
14
  "dev": "npm run build && cross-env NODE_ENV=developemnt rollup -m -c rollup.config.js -w",
15
15
  "start": "npm run dev",
16
- "dev:style": "node-sass src/index.scss dist/index.css -w",
17
- "build:style": "node-sass src/index.scss dist/index.css && cp -R ./src/assets/cssIcon/. ./dist/assets/cssIcon && cp -R ./src/assets/cssIcon/. ./es/assets/cssIcon",
16
+ "dev:style": "dart-sass src/index.scss dist/index.css -w",
17
+ "build:style": "dart-sass src/index.scss dist/index.css && cp -R ./src/assets/cssIcon/. ./dist/assets/cssIcon && cp -R ./src/assets/cssIcon/. ./es/assets/cssIcon",
18
18
  "build": "rm -fr dist && cross-env NODE_ENV=production rollup -c rollup.config.js && npm run build:style && npm run build:type",
19
19
  "build:type": "tsc --emitDeclarationOnly",
20
20
  "commit": "git-cz",
@@ -42,10 +42,10 @@
42
42
  "email": "brady_luo.sz@foxmail.com"
43
43
  },
44
44
  "dependencies": {
45
- "@labelbee/lb-annotation": "1.5.4-alpha.5",
46
45
  "@ant-design/icons": "^4.6.2",
46
+ "@labelbee/lb-annotation": "^1.6.0",
47
+ "@labelbee/lb-utils": "^1.0.4",
47
48
  "classnames": "^2.3.0",
48
- "@labelbee/lb-utils": "^1.0.4-alpha.0",
49
49
  "lodash": "^4.17.21",
50
50
  "react-i18next": "^11.12.0",
51
51
  "react-redux": "^7.2.3",
@@ -55,8 +55,8 @@
55
55
  "resize-observer-polyfill": "^1.5.1"
56
56
  },
57
57
  "peerDependencies": {
58
- "react": ">=16.9.0",
59
- "antd": ">=4.15.0"
58
+ "antd": ">=4.15.0",
59
+ "react": ">=16.9.0"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@commitlint/cli": "^13.1.0",
@@ -75,6 +75,7 @@
75
75
  "commitizen": "^4.2.4",
76
76
  "cross-env": "^7.0.3",
77
77
  "cz-conventional-changelog": "^3.3.0",
78
+ "dart-sass": "^1.25.0",
78
79
  "esbuild": "^0.11.0",
79
80
  "eslint": "^7.20.0",
80
81
  "eslint-config-airbnb": "^18.2.1",
@@ -84,7 +85,6 @@
84
85
  "eslint-plugin-react": "^7.22.0",
85
86
  "eslint-plugin-react-hooks": "^4.2.0",
86
87
  "husky": "^7.0.1",
87
- "node-sass": "^5.0.0",
88
88
  "prettier": "^2.3.2",
89
89
  "rollup": "^2.43.1",
90
90
  "rollup-plugin-esbuild": "^3.0.2",
@@ -95,4 +95,4 @@
95
95
  "path": "node_modules/cz-conventional-changelog"
96
96
  }
97
97
  }
98
- }
98
+ }