@labelbee/lb-components 1.7.0-alpha.0 → 1.7.0-alpha.3

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 (71) hide show
  1. package/dist/App.js +1 -1
  2. package/dist/components/attributeList/index.js +1 -1
  3. package/dist/components/pointCloudView/PointCloud2DView.js +1 -1
  4. package/dist/components/pointCloudView/PointCloud3DView.js +1 -1
  5. package/dist/components/pointCloudView/PointCloudBackView.js +1 -1
  6. package/dist/components/pointCloudView/PointCloudInfos.js +1 -1
  7. package/dist/components/pointCloudView/PointCloudListener.js +1 -1
  8. package/dist/components/pointCloudView/PointCloudSideView.js +1 -1
  9. package/dist/components/pointCloudView/PointCloudTopView.js +1 -1
  10. package/dist/components/pointCloudView/hooks/useAttribute.js +1 -0
  11. package/dist/components/pointCloudView/hooks/useHistory.js +1 -1
  12. package/dist/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
  13. package/dist/components/videoPlayer/components/controller/index.js +1 -1
  14. package/dist/constant/styleString.js +1 -1
  15. package/dist/store/annotation/map.js +1 -1
  16. package/dist/types/components/attributeList/index.d.ts +3 -2
  17. package/dist/types/components/pointCloudView/PointCloud2DView.d.ts +2 -5
  18. package/dist/types/components/pointCloudView/PointCloud3DView.d.ts +3 -3
  19. package/dist/types/components/pointCloudView/PointCloudBackView.d.ts +2 -2
  20. package/dist/types/components/pointCloudView/PointCloudListener.d.ts +3 -3
  21. package/dist/types/components/pointCloudView/PointCloudSideView.d.ts +3 -3
  22. package/dist/types/components/pointCloudView/PointCloudTopView.d.ts +1 -1
  23. package/dist/types/components/pointCloudView/hooks/useAttribute.d.ts +7 -0
  24. package/dist/types/components/pointCloudView/hooks/usePointCloudViews.d.ts +2 -1
  25. package/dist/types/constant/styleString.d.ts +1 -1
  26. package/dist/types/store/annotation/map.d.ts +5 -0
  27. package/dist/types/views/MainView/toolFooter/FooterTips/ToolHotKey/index.d.ts +16 -1
  28. package/dist/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.js +1 -1
  29. package/dist/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
  30. package/dist/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js +1 -1
  31. package/dist/views/MainView/toolFooter/FooterTips/index.js +1 -1
  32. package/dist/views/MainView/toolFooter/index.js +1 -1
  33. package/es/App.js +1 -1
  34. package/es/App.js.map +1 -1
  35. package/es/components/attributeList/index.js +1 -1
  36. package/es/components/attributeList/index.js.map +1 -1
  37. package/es/components/pointCloudView/PointCloud2DView.js +1 -1
  38. package/es/components/pointCloudView/PointCloud2DView.js.map +1 -1
  39. package/es/components/pointCloudView/PointCloud3DView.js +1 -1
  40. package/es/components/pointCloudView/PointCloud3DView.js.map +1 -1
  41. package/es/components/pointCloudView/PointCloudBackView.js +1 -1
  42. package/es/components/pointCloudView/PointCloudBackView.js.map +1 -1
  43. package/es/components/pointCloudView/PointCloudInfos.js +1 -1
  44. package/es/components/pointCloudView/PointCloudInfos.js.map +1 -1
  45. package/es/components/pointCloudView/PointCloudListener.js +1 -1
  46. package/es/components/pointCloudView/PointCloudListener.js.map +1 -1
  47. package/es/components/pointCloudView/PointCloudSideView.js +1 -1
  48. package/es/components/pointCloudView/PointCloudSideView.js.map +1 -1
  49. package/es/components/pointCloudView/PointCloudTopView.js +1 -1
  50. package/es/components/pointCloudView/PointCloudTopView.js.map +1 -1
  51. package/es/components/pointCloudView/hooks/useAttribute.js +1 -0
  52. package/es/components/pointCloudView/hooks/useAttribute.js.map +1 -0
  53. package/es/components/pointCloudView/hooks/useHistory.js +1 -1
  54. package/es/components/pointCloudView/hooks/useHistory.js.map +1 -1
  55. package/es/components/pointCloudView/hooks/usePointCloudViews.js +1 -1
  56. package/es/components/pointCloudView/hooks/usePointCloudViews.js.map +1 -1
  57. package/es/constant/styleString.js +1 -1
  58. package/es/constant/styleString.js.map +1 -1
  59. package/es/store/annotation/map.js +1 -1
  60. package/es/store/annotation/map.js.map +1 -1
  61. package/es/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.js +1 -1
  62. package/es/views/MainView/sidebar/PointCloudToolSidebar/components/batchUpdateModal/index.js.map +1 -1
  63. package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js +1 -1
  64. package/es/views/MainView/sidebar/PointCloudToolSidebar/index.js.map +1 -1
  65. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js +1 -1
  66. package/es/views/MainView/toolFooter/FooterTips/ToolHotKey/index.js.map +1 -1
  67. package/es/views/MainView/toolFooter/FooterTips/index.js +1 -1
  68. package/es/views/MainView/toolFooter/FooterTips/index.js.map +1 -1
  69. package/es/views/MainView/toolFooter/index.js +1 -1
  70. package/es/views/MainView/toolFooter/index.js.map +1 -1
  71. package/package.json +4 -4
@@ -1,2 +1,2 @@
1
- declare const styleString = "{\"toolColor\":{\"1\":{\"valid\":{\"stroke\":\"rgba(0,0,255,0.50)\",\"fill\":\"rgba(0,0,255,0.40)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.80)\"},\"validSelected\":{\"stroke\":\"rgba(0,15,255,1.00)\",\"fill\":\"rgba(0,15,255,0.80)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,0,0,0.60)\",\"fill\":\"rgba(255,0,0,0.24)\"},\"validHover\":{\"stroke\":\"rgba(0,15,255,0.80)\",\"fill\":\"rgba(0,15,255,0.64)\"},\"invalidHover\":{\"stroke\":\"rgba(255,0,0,0.50)\",\"fill\":\"rgba(255,0,0,0.40)\"}},\"3\":{\"valid\":{\"stroke\":\"rgba(0,255,255,0.50)\",\"fill\":\"rgba(0,255,255,0.40)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.80)\"},\"validSelected\":{\"stroke\":\"rgba(0,212,255,1.00)\",\"fill\":\"rgba(0,212,255,0.80)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,0,0,0.60)\",\"fill\":\"rgba(255,0,0,0.24)\"},\"validHover\":{\"stroke\":\"rgba(0,212,255,0.80)\",\"fill\":\"rgba(0,212,255,0.64)\"},\"invalidHover\":{\"stroke\":\"rgba(255,0,0,0.50)\",\"fill\":\"rgba(255,0,0,0.40)\"}},\"5\":{\"valid\":{\"stroke\":\"rgba(0,255,0,0.50)\",\"fill\":\"rgba(0,255,0,0.40)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.80)\"},\"validSelected\":{\"stroke\":\"rgba(149,255,1.00)\",\"fill\":\"rgba(149,255,0,0.80)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,0,0,0.60)\",\"fill\":\"rgba(255,0,0,0.24)\"},\"validHover\":{\"stroke\":\"rgba(149,255,0,0.80)\",\"fill\":\"rgba(149,255,0,0.64)\"},\"invalidHover\":{\"stroke\":\"rgba(255,0,0,0.50)\",\"fill\":\"rgba(255,0,0,0.40)\"}},\"7\":{\"valid\":{\"stroke\":\"rgba(255,255,0,0.50)\",\"fill\":\"rgba(255,255,0,0.40)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.80)\"},\"validSelected\":{\"stroke\":\"rgba(255,230,102,1.00)\",\"fill\":\"rgba(255,213,0,0.80)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,0,0,0.60)\",\"fill\":\"rgba(255,0,0,0.24)\"},\"validHover\":{\"stroke\":\"rgba(255,230,102,0.80)\",\"fill\":\"rgba(255,230,102,0.64)\"},\"invalidHover\":{\"stroke\":\"rgba(255,0,0,0.50)\",\"fill\":\"rgba(255,0,0,0.40)\"}},\"9\":{\"valid\":{\"stroke\":\"rgba(255,0,255,0.50)\",\"fill\":\"rgba(255,0,255,0.40)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.80)\"},\"validSelected\":{\"stroke\":\"rgba(230,102,255,1.00)\",\"fill\":\"rgba(213,0,255,0.80)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,0,0,0.60)\",\"fill\":\"rgba(255,0,0,0.24)\"},\"validHover\":{\"stroke\":\"rgba(230,102,255,0.80)\",\"fill\":\"rgba(230,102,255,0.64)\"},\"invalidHover\":{\"stroke\":\"rgba(255,0,0,0.50)\",\"fill\":\"rgba(255,0,0,0.40)\"}}},\"attributeColor\":[{\"valid\":{\"stroke\":\"rgba(204,204,204,1.00)\",\"fill\":\"rgba(204,204,204,0.40)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.40)\"},\"validSelected\":{\"stroke\":\"rgba(204,204,204,1.00)\",\"fill\":\"rgba(204,204,204,0.80)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"},\"validHover\":{\"stroke\":\"rgba(204,204,204,1.00)\",\"fill\":\"rgba(204,204,204,0.80)\"},\"invalidHover\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"}},{\"valid\":{\"stroke\":\"rgba(153,51,255,1.00)\",\"fill\":\"rgba(153,51,255,0.40)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.40)\"},\"validSelected\":{\"stroke\":\"rgba(153,51,255,1.00)\",\"fill\":\"rgba(153,51,255,0.80)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"},\"validHover\":{\"stroke\":\"rgba(153,51,255,1.00)\",\"fill\":\"rgba(153,51,255,0.80)\"},\"invalidHover\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"}},{\"valid\":{\"stroke\":\"rgba(51,254,51,1.00)\",\"fill\":\"rgba(51,254,51,0.40)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.40)\"},\"validSelected\":{\"stroke\":\"rgba(51,254,51,1.00)\",\"fill\":\"rgba(51,254,51,0.80)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"},\"validHover\":{\"stroke\":\"rgba(51,254,51,1.00)\",\"fill\":\"rgba(51,254,51,0.80)\"},\"invalidHover\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"}},{\"valid\":{\"stroke\":\"rgba(255,51,255,1.00)\",\"fill\":\"rgba(255,51,255,0.40)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.40)\"},\"validSelected\":{\"stroke\":\"rgba(255,51,255,1.00)\",\"fill\":\"rgba(255,51,255,0.80)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"},\"validHover\":{\"stroke\":\"rgba(255,51,255,1.00)\",\"fill\":\"rgba(255,51,255,0.80)\"},\"invalidHover\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"}},{\"valid\":{\"stroke\":\"rgba(204,255,51,1.00)\",\"fill\":\"rgba(204,255,51,0.40)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.40)\"},\"validSelected\":{\"stroke\":\"rgba(204,255,51,1.00)\",\"fill\":\"rgba(204,255,51,0.80)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"},\"validHover\":{\"stroke\":\"rgba(204,255,51,1.00)\",\"fill\":\"rgba(204,255,51,0.80)\"},\"invalidHover\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"}},{\"valid\":{\"stroke\":\"rgba(51,153,255,1.00)\",\"fill\":\"rgba(51,153,255,0.40)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.40)\"},\"validSelected\":{\"stroke\":\"rgba(51,153,255,1.00)\",\"fill\":\"rgba(51,153,255,0.80)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"},\"validHover\":{\"stroke\":\"rgba(51,153,255,1.00)\",\"fill\":\"rgba(51,153,255,0.80)\"},\"invalidHover\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"}},{\"valid\":{\"stroke\":\"rgba(255,153,51,1.00)\",\"fill\":\"rgba(255,153,51,0.40)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.40)\"},\"validSelected\":{\"stroke\":\"rgba(255,153,51,1.00)\",\"fill\":\"rgba(255,153,51,0.80)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"},\"validHover\":{\"stroke\":\"rgba(255,153,51,1.00)\",\"fill\":\"rgba(255,153,51,0.80)\"},\"invalidHover\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"}},{\"valid\":{\"stroke\":\"rgba(51,255,238,1.00)\",\"fill\":\"rgba(51,255,238,0.40)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.40)\"},\"validSelected\":{\"stroke\":\"rgba(51,255,238,1.00)\",\"fill\":\"rgba(51,255,238,0.80)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"},\"validHover\":{\"stroke\":\"rgba(51,255,238,1.00)\",\"fill\":\"rgba(51,255,238,0.80)\"},\"invalidHover\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"}},{\"valid\":{\"stroke\":\"rgba(255,221,51,1.00)\",\"fill\":\"rgba(255,221,51,0.40)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.40)\"},\"validSelected\":{\"stroke\":\"rgba(255,221,51,1.00)\",\"fill\":\"rgba(255,221,51,0.80)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"},\"validHover\":{\"stroke\":\"rgba(255,221,51,1.00)\",\"fill\":\"rgba(255,221,51,0.80)\"},\"invalidHover\":{\"stroke\":\"rgba(255,0,0,1.00)\",\"fill\":\"rgba(255,0,0,0.80)\"}}],\"lineColor\":{\"1\":\"rgba(102, 111, 255, 1 )\",\"3\":\"rgba(102, 230, 255, 1)\",\"5\":\"rgba(191, 255, 102, 1)\",\"7\":\"rgba(255, 230, 102, 1)\",\"9\":\"rgba(230, 102, 255, 1)\"},\"attributeLineColor\":[\"rgba(204, 204, 204, 1)\",\"rgba(153, 51, 255, 1)\",\"rgba(51, 254, 51, 1)\",\"rgba(255, 51, 255, 1)\",\"rgba(204, 255, 51, 1)\",\"rgba(51, 153, 255, 1)\",\"rgba(255, 153, 51, 1)\",\"rgba(51, 255, 238, 1)\",\"rgba(255, 221, 51, 1)\"],\"color\":1,\"width\":2,\"opacity\":9}";
1
+ declare const styleString = "{\"color\":1,\"width\":2,\"borderOpacity\":9,\"fillOpacity\":9,\"toolColor\":{\"1\":{\"valid\":{\"stroke\":\"rgba(0,0,255,0.50)\",\"fill\":\"rgba(0,0,255,0.32)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"},\"validSelected\":{\"stroke\":\"rgba(0,15,255,1.00)\",\"fill\":\"rgba(0,15,255,0.64)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,153,102,0.80)\",\"fill\":\"rgba(255,153,102,0.19)\"},\"validHover\":{\"stroke\":\"rgba(0,15,255,0.80)\",\"fill\":\"rgba(0,15,255,0.51)\"},\"invalidHover\":{\"stroke\":\"rgba(255,153,102,0.50)\",\"fill\":\"rgba(255,153,102,0.32)\"}},\"3\":{\"valid\":{\"stroke\":\"rgba(0,255,255,0.50)\",\"fill\":\"rgba(0,255,255,0.32)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"},\"validSelected\":{\"stroke\":\"rgba(0,212,255,1.00)\",\"fill\":\"rgba(0,212,255,0.64)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,153,102,0.80)\",\"fill\":\"rgba(255,153,102,0.19)\"},\"validHover\":{\"stroke\":\"rgba(0,212,255,0.80)\",\"fill\":\"rgba(0,212,255,0.51)\"},\"invalidHover\":{\"stroke\":\"rgba(255,153,102,0.50)\",\"fill\":\"rgba(255,153,102,0.32)\"}},\"5\":{\"valid\":{\"stroke\":\"rgba(0,255,0,0.50)\",\"fill\":\"rgba(0,255,0,0.32)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"},\"validSelected\":{\"stroke\":\"rgba(149,255,1.00)\",\"fill\":\"rgba(149,255,0,0.64)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,153,102,0.80)\",\"fill\":\"rgba(255,153,102,0.19)\"},\"validHover\":{\"stroke\":\"rgba(149,255,0,0.80)\",\"fill\":\"rgba(149,255,0,0.51)\"},\"invalidHover\":{\"stroke\":\"rgba(255,153,102,0.50)\",\"fill\":\"rgba(255,153,102,0.32)\"}},\"7\":{\"valid\":{\"stroke\":\"rgba(255,255,0,0.50)\",\"fill\":\"rgba(255,255,0,0.32)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"},\"validSelected\":{\"stroke\":\"rgba(255,230,102,1.00)\",\"fill\":\"rgba(255,213,0,0.64)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,153,102,0.80)\",\"fill\":\"rgba(255,153,102,0.19)\"},\"validHover\":{\"stroke\":\"rgba(255,230,102,0.80)\",\"fill\":\"rgba(255,230,102,0.51)\"},\"invalidHover\":{\"stroke\":\"rgba(255,153,102,0.50)\",\"fill\":\"rgba(255,153,102,0.32)\"}},\"9\":{\"valid\":{\"stroke\":\"rgba(255,0,255,0.50)\",\"fill\":\"rgba(255,0,255,0.32)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"},\"validSelected\":{\"stroke\":\"rgba(230,102,255,1.00)\",\"fill\":\"rgba(213,0,255,0.64)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,153,102,0.80)\",\"fill\":\"rgba(255,153,102,0.19)\"},\"validHover\":{\"stroke\":\"rgba(230,102,255,0.80)\",\"fill\":\"rgba(230,102,255,0.51)\"},\"invalidHover\":{\"stroke\":\"rgba(255,153,102,0.50)\",\"fill\":\"rgba(255,153,102,0.32)\"}}},\"attributeColor\":[{\"valid\":{\"stroke\":\"rgba(204,204,204,1.00)\",\"fill\":\"rgba(204,204,204,0.32)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.32)\"},\"validSelected\":{\"stroke\":\"rgba(204,204,204,1.00)\",\"fill\":\"rgba(204,204,204,0.64)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"},\"validHover\":{\"stroke\":\"rgba(204,204,204,1.00)\",\"fill\":\"rgba(204,204,204,0.64)\"},\"invalidHover\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"}},{\"valid\":{\"stroke\":\"rgba(128,12,249,1.00)\",\"fill\":\"rgba(128,12,249,0.32)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.32)\"},\"validSelected\":{\"stroke\":\"rgba(128,12,249,1.00)\",\"fill\":\"rgba(128,12,249,0.64)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"},\"validHover\":{\"stroke\":\"rgba(128,12,249,1.00)\",\"fill\":\"rgba(128,12,249,0.64)\"},\"invalidHover\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"}},{\"valid\":{\"stroke\":\"rgba(0,255,48,1.00)\",\"fill\":\"rgba(0,255,48,0.32)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.32)\"},\"validSelected\":{\"stroke\":\"rgba(0,255,48,1.00)\",\"fill\":\"rgba(0,255,48,0.64)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"},\"validHover\":{\"stroke\":\"rgba(0,255,48,1.00)\",\"fill\":\"rgba(0,255,48,0.64)\"},\"invalidHover\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"}},{\"valid\":{\"stroke\":\"rgba(255,136,247,1.00)\",\"fill\":\"rgba(255,136,247,0.32)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.32)\"},\"validSelected\":{\"stroke\":\"rgba(255,136,247,1.00)\",\"fill\":\"rgba(255,136,247,0.64)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"},\"validHover\":{\"stroke\":\"rgba(255,136,247,1.00)\",\"fill\":\"rgba(255,136,247,0.64)\"},\"invalidHover\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"}},{\"valid\":{\"stroke\":\"rgba(255,226,50,1.00)\",\"fill\":\"rgba(255,226,50,0.32)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.32)\"},\"validSelected\":{\"stroke\":\"rgba(255,226,50,1.00)\",\"fill\":\"rgba(255,226,50,0.64)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"},\"validHover\":{\"stroke\":\"rgba(255,226,50,1.00)\",\"fill\":\"rgba(255,226,50,0.64)\"},\"invalidHover\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"}},{\"valid\":{\"stroke\":\"rgba(153,66,23,1.00)\",\"fill\":\"rgba(153,66,23,0.32)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.32)\"},\"validSelected\":{\"stroke\":\"rgba(153,66,23,1.00)\",\"fill\":\"rgba(153,66,23,0.64)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"},\"validHover\":{\"stroke\":\"rgba(153,66,23,1.00)\",\"fill\":\"rgba(153,66,23,0.64)\"},\"invalidHover\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"}},{\"valid\":{\"stroke\":\"rgba(2,130,250,1.00)\",\"fill\":\"rgba(2,130,250,0.32)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.32)\"},\"validSelected\":{\"stroke\":\"rgba(2,130,250,1.00)\",\"fill\":\"rgba(2,130,250,0.64)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"},\"validHover\":{\"stroke\":\"rgba(2,130,250,1.00)\",\"fill\":\"rgba(2,130,250,0.64)\"},\"invalidHover\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"}},{\"valid\":{\"stroke\":\"rgba(255,35,35,1.00)\",\"fill\":\"rgba(255,35,35,0.32)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.32)\"},\"validSelected\":{\"stroke\":\"rgba(255,35,35,1.00)\",\"fill\":\"rgba(255,35,35,0.64)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"},\"validHover\":{\"stroke\":\"rgba(255,35,35,1.00)\",\"fill\":\"rgba(255,35,35,0.64)\"},\"invalidHover\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"}},{\"valid\":{\"stroke\":\"rgba(0,255,234,1.00)\",\"fill\":\"rgba(0,255,234,0.32)\"},\"invalid\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.32)\"},\"validSelected\":{\"stroke\":\"rgba(0,255,234,1.00)\",\"fill\":\"rgba(0,255,234,0.64)\"},\"invalidSelected\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"},\"validHover\":{\"stroke\":\"rgba(0,255,234,1.00)\",\"fill\":\"rgba(0,255,234,0.64)\"},\"invalidHover\":{\"stroke\":\"rgba(255,153,102,1.00)\",\"fill\":\"rgba(255,153,102,0.64)\"}}],\"lineColor\":{\"1\":\"rgba(102, 111, 255, 1 )\",\"3\":\"rgba(102, 230, 255, 1)\",\"5\":\"rgba(191, 255, 102, 1)\",\"7\":\"rgba(255, 230, 102, 1)\",\"9\":\"rgba(230, 102, 255, 1)\"},\"attributeLineColor\":[\"rgba(204, 204, 204, 1)\",\"rgba(128, 12, 249, 1)\",\"rgba(0, 255, 48, 1)\",\"rgba(255, 136, 247, 1)\",\"rgba(255, 226, 50, 1)\",\"rgba(153, 66, 23, 1)\",\"rgba(2, 130, 250, 1)\",\"rgba(255, 35, 35, 1)\",\"rgba(0, 255, 234, 1)\"]}";
2
2
  export default styleString;
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { AppState } from '../index';
7
7
  import { IFileItem } from '@/types/data';
8
+ import { IStepInfo } from '@/types/step';
8
9
  export declare const aMapStateToProps: (state: AppState) => {
9
10
  currentData: any;
10
11
  };
@@ -13,8 +14,12 @@ export interface IAnnotationStateProps {
13
14
  }
14
15
  export interface IA2MapStateProps extends IAnnotationStateProps {
15
16
  imgList: IFileItem[];
17
+ stepInfo: IStepInfo;
18
+ config: any;
16
19
  }
17
20
  export declare const a2MapStateToProps: (state: AppState) => {
18
21
  currentData: any;
19
22
  imgList: any;
23
+ stepInfo: IStepInfo;
24
+ config: any;
20
25
  };
@@ -1,8 +1,23 @@
1
1
  import React from 'react';
2
2
  interface IProps {
3
+ toolName?: string;
3
4
  style?: any;
4
5
  title?: React.ReactElement<any>;
5
- toolName?: string;
6
6
  }
7
+ interface IShortCutInfo {
8
+ name: string;
9
+ icon?: string;
10
+ shortCut?: string[];
11
+ noticeInfo?: string;
12
+ }
13
+ interface IComponentsProps {
14
+ style?: any;
15
+ title?: React.ReactElement<any>;
16
+ shortCutList: IShortCutInfo[];
17
+ }
18
+ export declare const shortCutTable: {
19
+ [a: string]: IShortCutInfo[];
20
+ };
21
+ export declare const ToolHotKeyCom: React.FC<IComponentsProps>;
7
22
  declare const ToolHotKey: React.FC<IProps>;
8
23
  export default ToolHotKey;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index=require("../../../../../../constant/index.js"),actionCreators=require("../../../../../../store/annotation/actionCreators.js"),ctx=require("../../../../../../store/ctx.js"),antd=require("antd"),React=require("react");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,r)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues=(e,t)=>{for(var r in t||(t={}))__hasOwnProp.call(t,r)&&__defNormalProp(e,r,t[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(t))__propIsEnum.call(t,r)&&__defNormalProp(e,r,t[r]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));const layout={labelCol:{span:8},wrapperCol:{span:16}},isInvalidNumber=(e,t=!1)=>{const r=Number(e);return!!(typeof e=="undefined"||r<0||isNaN(r)||t===!0&&r===0)},decimalCheck=(e,t,r=0)=>{const u=Number(t);if(isInvalidNumber(t))return Promise.reject(new Error("\u8BF7\u8F93\u5165\u4E00\u4E2A\u5927\u4E8E\u7B49\u4E8E0\u7684\u6570\u5B57"));const a=u.toString().split(".")[1];if((a==null?void 0:a.length)>r){let n=`\u8BF7\u8F93\u5165\u4E00\u4E2A\u5C0F\u6570\u4F4D\u6570\u4E0D\u8D85\u8FC7${r}\u4F4D\u6570\u7684\u6570\u5B57`;return r<1&&(n="\u8BF7\u8F93\u5165\u4E00\u4E2A\u6B63\u6574\u6570"),Promise.reject(n)}return Promise.resolve()},defaultNumberRules=[{required:!0,message:"\u8BF7\u586B\u5199\u4E00\u4E2A\u6570\u5B57"},{validator:(e,t)=>decimalCheck(e,t,0)}],BatchUpdateModal=({id:e})=>{const t=ctx.useDispatch(),[r,u]=React.useState(!1),[a]=antd.Form.useForm(),n=l=>{t(actionCreators.ToSubmitFileData(index.ESubmitType.SyncImgList)),t(actionCreators.BatchUpdateTrackID(e,l.newID,[l.prevPage-1,l.nextPage-1])),u(!1)};return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement("span",{onClick:()=>u(!0)},"\u6279\u91CF\u4FEE\u6539"),React__default.default.createElement(antd.Modal,{title:"\u6279\u91CF\u4FEE\u6539ID",visible:r,onCancel:()=>u(!1),onOk:()=>a.submit()},React__default.default.createElement(antd.Form,__spreadProps(__spreadValues({},layout),{form:a,onFinish:n}),React__default.default.createElement(antd.Form.Item,{name:"id",label:"\u5F53\u524D\u6807\u6CE8\u6846ID"},e),React__default.default.createElement(antd.Form.Item,{name:"newID",label:"\u7EDF\u4E00\u6807\u6CE8\u6846ID\u4E3A",rules:defaultNumberRules},React__default.default.createElement(antd.InputNumber,null)),React__default.default.createElement(antd.Form.Item,{label:"\u7EDF\u4E00ID\u8303\u56F4",required:!0},React__default.default.createElement(antd.Form.Item,{style:{display:"inline-block",width:"calc(50% - 24px)"},rules:defaultNumberRules,name:"prevPage"},React__default.default.createElement(antd.InputNumber,null)),React__default.default.createElement("span",{style:{display:"inline-block",width:"24px",lineHeight:"32px",textAlign:"center"}},"-"),React__default.default.createElement(antd.Form.Item,{style:{display:"inline-block",width:"calc(50% - 24px)"},rules:defaultNumberRules,name:"nextPage"},React__default.default.createElement(antd.InputNumber,null)),React__default.default.createElement("span",{style:{display:"inline-block",width:"24px",lineHeight:"32px",textAlign:"center"}},"\u9875")))))};exports.decimalCheck=decimalCheck,exports.default=BatchUpdateModal,exports.isInvalidNumber=isInvalidNumber;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index=require("../../../../../../constant/index.js"),actionCreators=require("../../../../../../store/annotation/actionCreators.js"),ctx=require("../../../../../../store/ctx.js"),antd=require("antd"),React=require("react"),reactI18next=require("react-i18next");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,r)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,__spreadValues=(e,t)=>{for(var r in t||(t={}))__hasOwnProp.call(t,r)&&__defNormalProp(e,r,t[r]);if(__getOwnPropSymbols)for(var r of __getOwnPropSymbols(t))__propIsEnum.call(t,r)&&__defNormalProp(e,r,t[r]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));const layout={labelCol:{span:8},wrapperCol:{span:16}},isInvalidNumber=(e,t=!1)=>{const r=Number(e);return!!(typeof e=="undefined"||r<0||isNaN(r)||t===!0&&r===0)},decimalCheck=(e,t,r=0)=>{const u=Number(t);if(isInvalidNumber(t))return Promise.reject(new Error("\u8BF7\u8F93\u5165\u4E00\u4E2A\u5927\u4E8E\u7B49\u4E8E0\u7684\u6570\u5B57"));const n=u.toString().split(".")[1];if((n==null?void 0:n.length)>r){let a=`\u8BF7\u8F93\u5165\u4E00\u4E2A\u5C0F\u6570\u4F4D\u6570\u4E0D\u8D85\u8FC7${r}\u4F4D\u6570\u7684\u6570\u5B57`;return r<1&&(a="\u8BF7\u8F93\u5165\u4E00\u4E2A\u6B63\u6574\u6570"),Promise.reject(a)}return Promise.resolve()},defaultNumberRules=[{required:!0,message:"\u8BF7\u586B\u5199\u4E00\u4E2A\u6570\u5B57"},{validator:(e,t)=>decimalCheck(e,t,0)}],BatchUpdateModal=({id:e})=>{const t=ctx.useDispatch(),[r,u]=React.useState(!1),[n]=antd.Form.useForm(),{t:a}=reactI18next.useTranslation(),o=l=>{t(actionCreators.ToSubmitFileData(index.ESubmitType.SyncImgList)),t(actionCreators.BatchUpdateTrackID(e,l.newID,[l.prevPage-1,l.nextPage-1])),u(!1)},s=()=>u(!1),i=()=>n.submit();return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement("a",{style:{color:"#666FFF"},onClick:()=>u(!0)},a("BatchUpdateText")),React__default.default.createElement(antd.Modal,{title:a("BatchUpdateTrackID"),visible:r,onCancel:s,onOk:i,wrapClassName:"labelbee-custom-modal"},React__default.default.createElement(antd.Form,__spreadProps(__spreadValues({},layout),{form:n,onFinish:o}),React__default.default.createElement(antd.Form.Item,{name:"id",label:a("CurrentBoxTrackIDs")},e),React__default.default.createElement(antd.Form.Item,{name:"newID",label:a("TrackIDUnifiedAs"),rules:defaultNumberRules},React__default.default.createElement(antd.InputNumber,null)),React__default.default.createElement(antd.Form.Item,{label:a("UnifiedTrackIDRange"),required:!0},React__default.default.createElement(antd.Form.Item,{style:{display:"inline-block",width:"calc(50% - 24px)"},rules:defaultNumberRules,name:"prevPage"},React__default.default.createElement(antd.InputNumber,null)),React__default.default.createElement("span",{style:{display:"inline-block",width:"24px",lineHeight:"32px",textAlign:"center"}},"-"),React__default.default.createElement(antd.Form.Item,{style:{display:"inline-block",width:"calc(50% - 24px)"},rules:defaultNumberRules,name:"nextPage"},React__default.default.createElement(antd.InputNumber,null)),React__default.default.createElement("span",{style:{display:"inline-block",width:"24px",lineHeight:"32px",textAlign:"center"}},a("Page"))))))};exports.decimalCheck=decimalCheck,exports.default=BatchUpdateModal,exports.isInvalidNumber=isInvalidNumber;
@@ -1 +1 @@
1
- "use strict";var React=require("react"),icons=require("@ant-design/icons"),ToolIcons=require("../ToolIcons.js"),lbAnnotation=require("@labelbee/lb-annotation"),PointCloudContext=require("../../../../components/pointCloudView/PointCloudContext.js"),antd=require("antd"),StepUtils=require("../../../../utils/StepUtils.js"),reactRedux=require("react-redux"),index=require("../../../../utils/index.js"),useStatus=require("../../../../components/pointCloudView/hooks/useStatus.js"),useSingleBox=require("../../../../components/pointCloudView/hooks/useSingleBox.js"),reactI18next=require("react-i18next"),ctx=require("../../../../store/ctx.js"),index$1=require("./components/batchUpdateModal/index.js"),lbUtils=require("@labelbee/lb-utils");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React);const AnnotatedBox=({imgList:t,imgIndex:i})=>{const s=React.useContext(PointCloudContext.PointCloudContext),[o,d]=React.useState([]);React.useEffect(()=>{const c=t;let n=new Map;d(lbUtils.PointCloudUtils.getAllPointCloudResult({imgList:c,extraBoxList:a,ignoreIndexList:[i]}).filter(l=>!l.trackID||n.get(l.trackID)?!1:(n.set(l.trackID,!0),!0)).sort((l,e)=>{var u,r;const f=(u=l==null?void 0:l.trackID)!=null?u:0,m=(r=e==null?void 0:e.trackID)!=null?r:0;return f-m}).map(l=>{var e;return(e=l==null?void 0:l.trackID)!=null?e:0}))},[s.pointCloudBoxList,t]);const{pointCloudBoxList:a}=s;return React__default.default.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},React__default.default.createElement("div",{style:{marginBottom:16}},"\u6240\u6709\u5DF2\u6807\u6CE8\u7684\u6846ID"),React__default.default.createElement("div",null,o.map(c=>React__default.default.createElement(antd.Tag,{color:"#F3F4FF",key:c,style:{color:"#666",marginBottom:8}},c))))},BoxTrackIDInput=()=>{const[t,i]=React.useState(!1),{pointCloudBoxList:s}=React.useContext(PointCloudContext.PointCloudContext),{selectedBox:o,updateSelectedBox:d}=useSingleBox.useSingleBox(),[a,c]=React.useState(""),n=o==null?void 0:o.info.trackID,l=u=>{const r=s.find(f=>f.trackID===n);return r&&r.id!==(o==null?void 0:o.info.id)},e=(u=!1)=>{const r=parseInt(a,10);if(u&&i(!1),isNaN(r)){antd.message.error("\u8BF7\u8F93\u5165\u6B63\u6574\u6570");return}if(a.indexOf(".")>-1){antd.message.error("\u8F93\u5165trackID\u4E0D\u5141\u8BB8\u5305\u542B\u5C0F\u6570\u70B9");return}if(l()){antd.message.error("\u5B58\u5728\u91CD\u590D\u7684trackID");return}if(!(r>0)){antd.message.error("\u8F93\u5165trackID\u5FC5\u987B\u4E3A\u6B63\u6574\u6570!");return}d({trackID:r})};return React.useEffect(()=>{i(!1)},[n]),React__default.default.createElement("div",{style:{padding:24}},React__default.default.createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},React__default.default.createElement("span",null,"\u5F53\u524D\u6807\u6CE8\u6846ID"),n&&React__default.default.createElement(index$1.default,{id:n})),React__default.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},t&&n?React__default.default.createElement(antd.Input,{defaultValue:n,onChange:u=>{c(u.target.value)},disabled:!n,size:"small",onBlur:()=>{e()},onPressEnter:()=>{e(!0)}}):React__default.default.createElement("span",null,n),React__default.default.createElement(icons.EditFilled,{style:{color:"#999",marginLeft:16,cursor:typeof n!="undefined"?"pointer":"not-allowed"},onClick:()=>{n&&i(!t)}})))},AttributeUpdater=({attributeList:t,subAttributeList:i,toolInstance:s})=>{var o;const d=React.useContext(PointCloudContext.PointCloudContext),{t:a}=reactI18next.useTranslation(),c={fontWeight:400,fontSize:14,marginBottom:14},n=e=>{s.setDefaultAttribute(e)},l=(e,u)=>{s.setSubAttribute(e,u)};return React__default.default.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},React__default.default.createElement("div",{style:{marginBottom:20,fontSize:14,fontWeight:500}},a("Tag")),React__default.default.createElement(antd.Row,{style:{marginBottom:12}},React__default.default.createElement(antd.Col,{span:9,style:c},a("Attribute")),React__default.default.createElement(antd.Col,{span:15},React__default.default.createElement(antd.Radio.Group,{style:{width:"100%"},value:(o=d.selectedPointCloudBox)==null?void 0:o.attribute,onChange:e=>n(e.target.value)},t.map(e=>React__default.default.createElement(antd.Radio,{key:e.value,value:e.value,style:{marginBottom:16}},e.key))))),React__default.default.createElement("div",{style:c}," ",a("SubAttribute")),i.map(e=>{var u,r;return(e==null?void 0:e.subSelected)&&React__default.default.createElement(antd.Row,{key:e.value,style:{marginBottom:18}},React__default.default.createElement(antd.Col,{span:9,style:{color:"#999999",display:"flex",justifyContent:"flex-start",alignItems:"center"}},e.key),React__default.default.createElement(antd.Col,{span:15},React__default.default.createElement(antd.Select,{style:{width:"100%"},bordered:!1,value:(r=(u=d.selectedPointCloudBox)==null?void 0:u.subAttribute)==null?void 0:r[e.value],placeholder:a("PleaseSelect"),onChange:f=>l(e.value,f),allowClear:!0},e.subSelected.map(f=>React__default.default.createElement(antd.Select.Option,{key:f.value,value:f.value},f.key)))))}))},PointCloudToolSidebar=({stepInfo:t,toolInstance:i,imgList:s,imgIndex:o})=>{var d,a;const{selectedBox:c}=useSingleBox.useSingleBox(),{updatePointCloudPattern:n,pointCloudPattern:l}=useStatus.useStatus(),e=index.jsonParser(t.config),u=(d=e==null?void 0:e.attributeList)!=null?d:[],r=(e==null?void 0:e.secondaryAttributeConfigurable)===!0?(a=e==null?void 0:e.inputList)!=null?a:[]:[];return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(ToolIcons.ToolIcons,{toolName:lbAnnotation.cTool.EPointCloudName.PointCloud,selectedToolName:l,onChange:f=>n==null?void 0:n(f)}),React__default.default.createElement(AnnotatedBox,{imgList:s,imgIndex:o}),React__default.default.createElement(BoxTrackIDInput,null),c&&React__default.default.createElement(AttributeUpdater,{toolInstance:i,attributeList:u,subAttributeList:r}))},mapStateToProps=t=>{var i,s,o;const d=StepUtils.getCurrentStepInfo((i=t.annotation)==null?void 0:i.step,(s=t.annotation)==null?void 0:s.stepList),a=(o=t.annotation)==null?void 0:o.toolInstance;return{stepInfo:d,toolInstance:a,imgList:t.annotation.imgList,imgIndex:t.annotation.imgIndex}};var PointCloudToolSidebar$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudToolSidebar);module.exports=PointCloudToolSidebar$1;
1
+ "use strict";var React=require("react"),icons=require("@ant-design/icons"),ToolIcons=require("../ToolIcons.js"),lbAnnotation=require("@labelbee/lb-annotation"),PointCloudContext=require("../../../../components/pointCloudView/PointCloudContext.js"),antd=require("antd"),StepUtils=require("../../../../utils/StepUtils.js"),reactRedux=require("react-redux"),index=require("../../../../utils/index.js"),useStatus=require("../../../../components/pointCloudView/hooks/useStatus.js"),useSingleBox=require("../../../../components/pointCloudView/hooks/useSingleBox.js"),reactI18next=require("react-i18next"),ctx=require("../../../../store/ctx.js"),index$1=require("./components/batchUpdateModal/index.js"),lbUtils=require("@labelbee/lb-utils"),index$2=require("../../../../components/attributeList/index.js"),useAttribute=require("../../../../components/pointCloudView/hooks/useAttribute.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React);const AnnotatedBox=({imgList:t,imgIndex:r})=>{const u=React.useContext(PointCloudContext.PointCloudContext),[o,c]=React.useState([]),{t:i}=reactI18next.useTranslation();React.useEffect(()=>{const n=t;let e=new Map;c(lbUtils.PointCloudUtils.getAllPointCloudResult({imgList:n,extraBoxList:p,ignoreIndexList:[r]}).filter(a=>!a.trackID||e.get(a.trackID)?!1:(e.set(a.trackID,!0),!0)).sort((a,s)=>{var d,f;const v=(d=a==null?void 0:a.trackID)!=null?d:0,g=(f=s==null?void 0:s.trackID)!=null?f:0;return v-g}).map(a=>{var s;return(s=a==null?void 0:a.trackID)!=null?s:0}))},[u.pointCloudBoxList,t]);const{pointCloudBoxList:p}=u;return React__default.default.createElement("div",{style:{padding:24,borderBottom:"1px solid #eee"}},React__default.default.createElement("div",{style:{marginBottom:16}},i("AllTrackIDs")),React__default.default.createElement("div",null,o.map(n=>React__default.default.createElement(antd.Tag,{color:"#F3F4FF",key:n,style:{color:"#666",marginBottom:8}},n))))},BoxTrackIDInput=()=>{const[t,r]=React.useState(!1),{pointCloudBoxList:u}=React.useContext(PointCloudContext.PointCloudContext),{selectedBox:o,updateSelectedBox:c}=useSingleBox.useSingleBox(),[i,p]=React.useState(""),{t:n}=reactI18next.useTranslation(),e=o==null?void 0:o.info.trackID,a=d=>!!u.find(v=>v.trackID===d&&v.id!==(o==null?void 0:o.info.id)),s=(d=!1)=>{const f=parseInt(i,10);if(d&&r(!1),isNaN(f)){antd.message.error(n("PositiveIntegerCheck"));return}if(i.indexOf(".")>-1){antd.message.error(n("NotAllowDecimalPointsInTrackID"));return}if(a(f)){antd.message.error(n("DuplicateTrackIDsExist"));return}if(!(f>0)){antd.message.error(n("PositiveIntegerCheck"));return}c({trackID:f})};return React.useEffect(()=>{r(!1)},[e]),React__default.default.createElement("div",{style:{padding:24}},React__default.default.createElement("div",{style:{marginBottom:16,display:"flex",justifyContent:"space-between",alignItems:"center"}},React__default.default.createElement("span",null,n("CurrentBoxTrackIDs")),e&&React__default.default.createElement(index$1.default,{id:e})),React__default.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"}},t&&e?React__default.default.createElement(antd.Input,{defaultValue:e,onChange:d=>{p(d.target.value)},disabled:!e,size:"small",onBlur:()=>{s()},onPressEnter:()=>{s(!0)}}):React__default.default.createElement("span",null,e),React__default.default.createElement(icons.EditFilled,{style:{color:"#999",marginLeft:16,cursor:typeof e!="undefined"?"pointer":"not-allowed"},onClick:()=>{e&&r(!t)}})))},AttributeUpdater=({attributeList:t,subAttributeList:r,toolInstance:u})=>{var o,c,i;const{selectedBox:p}=useSingleBox.useSingleBox(),n=React.useContext(PointCloudContext.PointCloudContext),{t:e}=reactI18next.useTranslation(),{defaultAttribute:a}=useAttribute.useAttribute(),s={fontWeight:500,fontSize:14,margin:"12px 0 8px 20px"},d={margin:"12px 20px 8px",fontSize:14,fontWeight:500,wordWrap:"break-word"},f=l=>{u.setDefaultAttribute(l)},v=(l,x)=>{u.setSubAttribute(l,x)},g=t.map(l=>({label:l.key,value:l.value,color:l==null?void 0:l.color}));return React__default.default.createElement("div",null,React__default.default.createElement("div",{style:s},e("Attribute")),React__default.default.createElement(index$2.default,{list:g,forbidDefault:!0,selectedAttribute:(i=(c=(o=n.selectedPointCloudBox)==null?void 0:o.attribute)!=null?c:a)!=null?i:"",attributeChanged:l=>f(l)}),React__default.default.createElement(antd.Divider,{style:{margin:0}}),p&&React__default.default.createElement(React__default.default.Fragment,null,r.map(l=>{var x,C,b,I,E;return(l==null?void 0:l.subSelected)&&React__default.default.createElement("div",{style:{marginTop:12}},React__default.default.createElement("div",{style:d},e("SubAttribute"),"-",l.key),((x=l.subSelected)==null?void 0:x.length)<5?React__default.default.createElement(index$2.default,{list:l.subSelected.map(m=>({label:m.key,value:m.value})),selectedAttribute:(b=(C=n.selectedPointCloudBox)==null?void 0:C.subAttribute)==null?void 0:b[l.value],num:"-",forbidColor:!0,forbidDefault:!0,attributeChanged:m=>v(l.value,m),style:{marginBottom:12}}):React__default.default.createElement(antd.Select,{style:{margin:"0px 21px 17px 16px",width:"87%"},value:(E=(I=n.selectedPointCloudBox)==null?void 0:I.subAttribute)==null?void 0:E[l.value],placeholder:e("PleaseSelect"),onChange:m=>v(l.value,m),allowClear:!0},l.subSelected.map(m=>React__default.default.createElement(antd.Select.Option,{key:m.value,value:m.value},m.key))),React__default.default.createElement(antd.Divider,{style:{margin:0}}))})))},PointCloudToolSidebar=({stepInfo:t,toolInstance:r,imgList:u,imgIndex:o})=>{var c,i;const{updatePointCloudPattern:p,pointCloudPattern:n}=useStatus.useStatus(),e=index.jsonParser(t.config),a=(c=e==null?void 0:e.attributeList)!=null?c:[],s=(e==null?void 0:e.secondaryAttributeConfigurable)===!0?(i=e==null?void 0:e.inputList)!=null?i:[]:[];return React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(ToolIcons.ToolIcons,{toolName:lbAnnotation.cTool.EPointCloudName.PointCloud,selectedToolName:n,onChange:d=>p==null?void 0:p(d)}),(e==null?void 0:e.trackConfigurable)===!0&&React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement(AnnotatedBox,{imgList:u,imgIndex:o}),React__default.default.createElement(BoxTrackIDInput,null),React__default.default.createElement(antd.Divider,{style:{margin:0}})),React__default.default.createElement(AttributeUpdater,{toolInstance:r,attributeList:a,subAttributeList:s}))},mapStateToProps=t=>{var r,u,o;const c=StepUtils.getCurrentStepInfo((r=t.annotation)==null?void 0:r.step,(u=t.annotation)==null?void 0:u.stepList),i=(o=t.annotation)==null?void 0:o.toolInstance;return{stepInfo:c,toolInstance:i,imgList:t.annotation.imgList,imgIndex:t.annotation.imgIndex}};var PointCloudToolSidebar$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(PointCloudToolSidebar);module.exports=PointCloudToolSidebar$1;
@@ -1 +1 @@
1
- "use strict";var es=require("antd/es"),React=require("react"),icon_kj1=require("../../../../../assets/annotation/toolHotKeyIcon/icon_kj1.svg.js"),icon_kj_h=require("../../../../../assets/annotation/toolHotKeyIcon/icon_kj_h.svg.js"),ToolType=require("../../../../../data/enums/ToolType.js"),index=require("./rectToolShortCutTable/index.js"),index$2=require("./point/index.js"),index$3=require("./polygon/index.js"),index$4=require("./line/index.js"),index$1=require("./tag/index.js"),index$5=require("./text/index.js"),index$6=require("./videoTag/index.js"),index$7=require("./pointCloud/index.js"),index$8=require("./scribble/index.js"),index$9=require("../../index.js"),reactI18next=require("react-i18next"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var React__default=_interopDefaultLegacy(React);const{EVideoToolName,EPointCloudName}=lbAnnotation.cTool,shortCutTable={[ToolType.EToolName.Rect]:index.default,[ToolType.EToolName.Tag]:index$1.default,[ToolType.EToolName.Point]:index$2.default,[ToolType.EToolName.Polygon]:index$3.default,[ToolType.EToolName.Line]:index$4.default,[ToolType.EToolName.Text]:index$5,[EVideoToolName.VideoTagTool]:index$6,[EPointCloudName.PointCloud]:index$7,[ToolType.EToolName.ScribbleTool]:index$8},ToolHotKeyIcon=({icon:a})=>typeof a=="string"?React__default.default.createElement("img",{width:16,height:16,src:a}):a||null,ToolHotKey=({style:a,title:c,toolName:i})=>{var d;const[f,o]=React.useState(!1),{t:u}=reactI18next.useTranslation();if(!i)return null;const m={width:320,display:"flex",justifyContent:"space-between",margin:16},n={display:"block",padding:"0 3px",minWidth:"20px",marginRight:"3px",border:"1px solid rgba(204,204,204,1)",verticalAlign:"middle",fontSize:"12px",textAlign:"center"},y=(e,r)=>React__default.default.createElement("div",{style:m,key:r},React__default.default.createElement("span",{style:{display:"flex",alignItems:"center"}},React__default.default.createElement(ToolHotKeyIcon,{icon:e.icon}),React__default.default.createElement("span",{style:{marginLeft:e.icon?16:0}},u(e.name))),React__default.default.createElement("span",{style:{display:"flex",alignItems:"center"}},e.noticeInfo&&React__default.default.createElement("span",{style:{marginRight:"5px",color:"#CCCCCC"}},u(e.noticeInfo)),p(e.shortCut,e.shortCutUseHtml,e.linkSymbol))),p=(e,r=!1,v="+")=>{if(!e)return null;const E=e.map((t,l)=>{const s={display:"flex",alignItems:"center"};return r?React__default.default.createElement("span",{key:l,style:s},React__default.default.createElement("span",{style:n,dangerouslySetInnerHTML:{__html:t}})):l<e.length-1?typeof t=="number"?React__default.default.createElement("span",{key:l,style:s},React__default.default.createElement("span",{style:n},t),React__default.default.createElement("span",{style:{marginRight:"3px"}},"~")):(t==null?void 0:t.startsWith("data"))?React__default.default.createElement("span",{key:l,style:s},React__default.default.createElement("span",{className:"shortCutButton",style:{marginRight:"3px"}},React__default.default.createElement("img",{width:16,height:23,src:t})),React__default.default.createElement("span",{style:{marginRight:"3px"}},"+")):React__default.default.createElement("span",{key:l,style:s},React__default.default.createElement("span",{style:n},t),React__default.default.createElement("span",{style:{marginRight:"3px"}},v)):typeof t=="number"?React__default.default.createElement("span",{key:l,style:s},React__default.default.createElement("span",{style:n},t)):(t==null?void 0:t.startsWith("data"))?React__default.default.createElement("span",{className:"shortCutButton",key:l,style:{marginRight:"3px"}},React__default.default.createElement("img",{width:16,height:23,src:t})):React__default.default.createElement("span",{style:n,key:l},t)});return React__default.default.createElement("div",{style:{display:"flex",justifyContent:"space-around",alignItems:"center"}},E)},g=React__default.default.createElement("div",{className:`${index$9.footerCls}__hotkey-content`},(d=shortCutTable[i])==null?void 0:d.map((e,r)=>y(e,r))),h=a||{width:100};return shortCutTable[i]?React__default.default.createElement(es.Popover,{placement:"topLeft",content:g,onMouseMove:()=>o(!0),onMouseLeave:()=>{o(!1)},overlayClassName:"tool-hotkeys-popover"},React__default.default.createElement("div",{className:"shortCutTitle",onMouseMove:()=>o(!0),onMouseLeave:()=>o(!1),style:h},c!=null?c:React__default.default.createElement("a",{className:"svg"},React__default.default.createElement("img",{src:f?icon_kj_h:icon_kj1,width:15,height:13,style:{marginRight:"5px"}}),u("Hotkeys")))):null};module.exports=ToolHotKey;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var es=require("antd/es"),React=require("react"),icon_kj1=require("../../../../../assets/annotation/toolHotKeyIcon/icon_kj1.svg.js"),icon_kj_h=require("../../../../../assets/annotation/toolHotKeyIcon/icon_kj_h.svg.js"),ToolType=require("../../../../../data/enums/ToolType.js"),index=require("./rectToolShortCutTable/index.js"),index$2=require("./point/index.js"),index$3=require("./polygon/index.js"),index$4=require("./line/index.js"),index$1=require("./tag/index.js"),index$5=require("./text/index.js"),index$6=require("./videoTag/index.js"),index$7=require("./pointCloud/index.js"),index$8=require("./scribble/index.js"),index$9=require("../../index.js"),reactI18next=require("react-i18next"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),__defProp=Object.defineProperty,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,a,t)=>a in e?__defProp(e,a,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[a]=t,__spreadValues=(e,a)=>{for(var t in a||(a={}))__hasOwnProp.call(a,t)&&__defNormalProp(e,t,a[t]);if(__getOwnPropSymbols)for(var t of __getOwnPropSymbols(a))__propIsEnum.call(a,t)&&__defNormalProp(e,t,a[t]);return e};const{EVideoToolName,EPointCloudName}=lbAnnotation.cTool,shortCutTable={[ToolType.EToolName.Rect]:index.default,[ToolType.EToolName.Tag]:index$1.default,[ToolType.EToolName.Point]:index$2.default,[ToolType.EToolName.Polygon]:index$3.default,[ToolType.EToolName.Line]:index$4.default,[ToolType.EToolName.Text]:index$5,[EVideoToolName.VideoTagTool]:index$6,[EPointCloudName.PointCloud]:index$7,[ToolType.EToolName.ScribbleTool]:index$8},ToolHotKeyIcon=({icon:e})=>typeof e=="string"?React__default.default.createElement("img",{width:16,height:16,src:e}):e||null,ToolHotKeyCom=({title:e,style:a,shortCutList:t})=>{const[c,i]=React.useState(!1),{t:d}=reactI18next.useTranslation(),y={width:320,display:"flex",justifyContent:"space-between",margin:16},o={display:"block",padding:"0 3px",minWidth:"20px",marginRight:"3px",border:"1px solid rgba(204,204,204,1)",verticalAlign:"middle",fontSize:"12px",textAlign:"center"},m=(l,s)=>React__default.default.createElement("div",{style:y,key:s},React__default.default.createElement("span",{style:{display:"flex",alignItems:"center"}},React__default.default.createElement(ToolHotKeyIcon,{icon:l.icon}),React__default.default.createElement("span",{style:{marginLeft:l.icon?16:0}},d(l.name))),React__default.default.createElement("span",{style:{display:"flex",alignItems:"center"}},l.noticeInfo&&React__default.default.createElement("span",{style:{marginRight:"5px",color:"#CCCCCC"}},d(l.noticeInfo)),g(l.shortCut,l.shortCutUseHtml,l.linkSymbol))),g=(l,s=!1,E="+")=>{if(!l)return null;const x=l.map((r,n)=>{var p,f;const u={display:"flex",alignItems:"center"};return s?React__default.default.createElement("span",{key:n,style:u},React__default.default.createElement("span",{style:o,dangerouslySetInnerHTML:{__html:r}})):n<l.length-1?typeof r=="number"?React__default.default.createElement("span",{key:n,style:u},React__default.default.createElement("span",{style:o},r),React__default.default.createElement("span",{style:{marginRight:"3px"}},"~")):((p=r==null?void 0:r.startsWith)==null?void 0:p.call(r,"data"))?React__default.default.createElement("span",{key:n,style:u},React__default.default.createElement("span",{className:"shortCutButton",style:{marginRight:"3px"}},React__default.default.createElement("img",{width:16,height:23,src:r})),React__default.default.createElement("span",{style:{marginRight:"3px"}},"+")):React__default.default.createElement("span",{key:n,style:u},React__default.default.createElement("span",{style:o},r),React__default.default.createElement("span",{style:{marginRight:"3px"}},E)):typeof r=="number"?React__default.default.createElement("span",{key:n,style:u},React__default.default.createElement("span",{style:o},r)):((f=r==null?void 0:r.startsWith)==null?void 0:f.call(r,"data"))?React__default.default.createElement("span",{className:"shortCutButton",key:n,style:{marginRight:"3px"}},React__default.default.createElement("img",{width:16,height:23,src:r})):React__default.default.createElement("span",{style:o,key:n},r)});return React__default.default.createElement("div",{style:{display:"flex",justifyContent:"space-around",alignItems:"center"}},x)},v=React__default.default.createElement("div",{className:`${index$9.footerCls}__hotkey-content`},t==null?void 0:t.map((l,s)=>m(l,s))),h=a||{width:100};return React__default.default.createElement(es.Popover,{placement:"topLeft",content:v,onMouseMove:()=>i(!0),onMouseLeave:()=>{i(!1)},overlayClassName:"tool-hotkeys-popover",className:"tipsBar"},React__default.default.createElement("div",{className:"shortCutTitle",onMouseMove:()=>i(!0),onMouseLeave:()=>i(!1),style:h},e!=null?e:React__default.default.createElement("a",{className:"svg"},React__default.default.createElement("img",{src:c?icon_kj_h:icon_kj1,width:15,height:13,style:{marginRight:"5px"}}),d("Hotkeys"))))},ToolHotKey=({style:e,title:a,toolName:t})=>{if(!t||!shortCutTable[t])return null;const c={style:e,title:a,shortCutList:shortCutTable[t]};return React__default.default.createElement(ToolHotKeyCom,__spreadValues({},c))};exports.ToolHotKeyCom=ToolHotKeyCom,exports.default=ToolHotKey,exports.shortCutTable=shortCutTable;
@@ -1 +1 @@
1
- "use strict";var React=require("react"),index=require("./ToolHotKey/index.js"),StepUtils=require("../../../../utils/StepUtils.js"),ctx=require("../../../../store/ctx.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const FooterTips=()=>{const e=ctx.useSelector(t=>{var r,o;return StepUtils.getCurrentStepInfo((r=t==null?void 0:t.annotation)==null?void 0:r.step,(o=t.annotation)==null?void 0:o.stepList)});return React__default.default.createElement("div",{className:"tipsBar"},React__default.default.createElement(index,{toolName:e==null?void 0:e.tool}))};module.exports=FooterTips;
1
+ "use strict";var React=require("react"),index=require("./ToolHotKey/index.js"),StepUtils=require("../../../../utils/StepUtils.js"),ctx=require("../../../../store/ctx.js");function _interopDefaultLegacy(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var React__default=_interopDefaultLegacy(React);const FooterTips=()=>{const t=ctx.useSelector(e=>{var r,o;return StepUtils.getCurrentStepInfo((r=e==null?void 0:e.annotation)==null?void 0:r.step,(o=e.annotation)==null?void 0:o.stepList)});return React__default.default.createElement(index.default,{toolName:t==null?void 0:t.tool})};module.exports=FooterTips;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index$4=require("../../../constant/index.js"),actionCreators=require("../../../store/annotation/actionCreators.js"),reducer=require("../../../store/annotation/reducer.js"),es=require("antd/es"),React=require("react"),reactI18next=require("react-i18next"),reactRedux=require("react-redux"),ctx=require("../../../store/ctx.js"),index=require("./FooterTips/index.js"),index$1=require("./HiddenTips/index.js"),index$2=require("./PageNumber/index.js"),index$3=require("./ZoomController/index.js"),Pagination=require("./Pagination.js"),lbAnnotation=require("@labelbee/lb-annotation");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const{EPointCloudName}=lbAnnotation.cTool,footerCls=`${index$4.prefix}-footer`,FooterDivider=()=>React__default.default.createElement(es.Divider,{type:"vertical",style:{background:"rgba(153, 153, 153, 1)",height:"16px"}}),renderFooter=({footerTips:e,hiddenTips:r,pageNumber:i,pagination:l,zoomController:n,curItems:u,footerDivider:s})=>React__default.default.createElement(React__default.default.Fragment,null,e,React__default.default.createElement("div",{style:{flex:1}}),r,i,l,u,s,n),ToolFooter=e=>{var r;const{stepList:i,step:l,basicResultList:n,basicIndex:u,mode:s="light",footer:o=renderFooter,skipBeforePageTurning:t}=e,a=ctx.useDispatch(),{t:g}=reactI18next.useTranslation(),c=(r=i[l-1])!=null?r:{},m=!!c.dataSourceStep,x=()=>{if(t){t(()=>a(actionCreators.PageBackward()));return}a(actionCreators.PageBackward())},p=()=>{if(t){t(()=>a(actionCreators.PageForward()));return}a(actionCreators.PageForward())},v=b=>{const f=~~b-1;if(t){t(()=>a(actionCreators.PageJump(f)));return}a(actionCreators.PageJump(f))},d=React__default.default.createElement(Pagination.Pagination,{imgIndex:e.imgIndex,totalPage:e.totalPage,pageJump:v,pageBackward:x,pageForward:p,footerCls}),P=m&&n.length>0?React__default.default.createElement("span",null,g("curItems",{current:u+1,total:n.length})):null;return typeof o=="function"?o===renderFooter&&c.tool===EPointCloudName.PointCloud?React__default.default.createElement("div",{className:`${footerCls}`,style:e.style},React__default.default.createElement(index,null),React__default.default.createElement("div",{style:{flex:1}}),d):React__default.default.createElement("div",{className:`${footerCls}`,style:e.style},o({footerTips:React__default.default.createElement(index,null),hiddenTips:React__default.default.createElement(index$1,null),pageNumber:React__default.default.createElement(index$2,null),pagination:d,zoomController:React__default.default.createElement(index$3.default,{mode:s}),curItems:P,footerDivider:React__default.default.createElement(FooterDivider,null)})):o},mapStateToProps=e=>({totalPage:reducer.getTotalPage(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 ToolFooter$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(ToolFooter);exports.FooterDivider=FooterDivider,exports.default=ToolFooter$1,exports.footerCls=footerCls;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var index$5=require("../../../constant/index.js"),actionCreators=require("../../../store/annotation/actionCreators.js"),reducer=require("../../../store/annotation/reducer.js"),es=require("antd/es"),React=require("react"),reactI18next=require("react-i18next"),reactRedux=require("react-redux"),ctx=require("../../../store/ctx.js"),index=require("./FooterTips/index.js"),index$1=require("./HiddenTips/index.js"),index$2=require("./PageNumber/index.js"),index$3=require("./ZoomController/index.js"),Pagination=require("./Pagination.js"),lbAnnotation=require("@labelbee/lb-annotation"),index$4=require("./FooterTips/ToolHotKey/index.js");function _interopDefaultLegacy(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);const{EPointCloudName}=lbAnnotation.cTool,footerCls=`${index$5.prefix}-footer`,FooterDivider=()=>React__default.default.createElement(es.Divider,{type:"vertical",style:{background:"rgba(153, 153, 153, 1)",height:"16px"}}),renderFooter=({footerTips:e,hiddenTips:a,pageNumber:i,pagination:l,zoomController:n,curItems:u,footerDivider:s})=>React__default.default.createElement(React__default.default.Fragment,null,e,React__default.default.createElement("div",{style:{flex:1}}),a,i,l,u,s,n),ToolFooter=e=>{var a;const{stepList:i,step:l,basicResultList:n,basicIndex:u,mode:s="light",footer:o=renderFooter,skipBeforePageTurning:t}=e,r=ctx.useDispatch(),{t:g}=reactI18next.useTranslation(),c=(a=i[l-1])!=null?a:{},m=!!c.dataSourceStep,x=()=>{if(t){t(()=>r(actionCreators.PageBackward()));return}r(actionCreators.PageBackward())},p=()=>{if(t){t(()=>r(actionCreators.PageForward()));return}r(actionCreators.PageForward())},v=b=>{const f=~~b-1;if(t){t(()=>r(actionCreators.PageJump(f)));return}r(actionCreators.PageJump(f))},d=React__default.default.createElement(Pagination.Pagination,{imgIndex:e.imgIndex,totalPage:e.totalPage,pageJump:v,pageBackward:x,pageForward:p,footerCls}),P=m&&n.length>0?React__default.default.createElement("span",null,g("curItems",{current:u+1,total:n.length})):null;return typeof o=="function"?o===renderFooter&&c.tool===EPointCloudName.PointCloud?React__default.default.createElement("div",{className:`${footerCls}`,style:e.style},React__default.default.createElement(index,null),React__default.default.createElement("div",{style:{flex:1}}),d):React__default.default.createElement("div",{className:`${footerCls}`,style:e.style},o({footerTips:React__default.default.createElement(index,null),hiddenTips:React__default.default.createElement(index$1,null),pageNumber:React__default.default.createElement(index$2,null),pagination:d,zoomController:React__default.default.createElement(index$3.default,{mode:s}),curItems:P,footerDivider:React__default.default.createElement(FooterDivider,null),shortCutTable:index$4.shortCutTable,ToolHotKeyCom:index$4.ToolHotKeyCom})):o},mapStateToProps=e=>({totalPage:reducer.getTotalPage(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 ToolFooter$1=reactRedux.connect(mapStateToProps,null,null,{context:ctx.LabelBeeContext})(ToolFooter);exports.FooterDivider=FooterDivider,exports.default=ToolFooter$1,exports.footerCls=footerCls;
package/es/App.js CHANGED
@@ -1 +1 @@
1
- import b from"./views/MainView/index.js";import{i18n as h}from"@labelbee/lb-utils";import v,{useEffect as g}from"react";import{connect as w}from"react-redux";import{store as o}from"./index.js";import{LabelBeeContext as x}from"./store/ctx.js";import{ANNOTATION_ACTIONS as y}from"./store/Actions.js";import{InitTaskData as A,UpdateInjectFunc as E,loadImgList as C}from"./store/annotation/actionCreators.js";import{LoadFileAndFileData as L}from"./store/annotation/reducer.js";var F=Object.defineProperty,O=Object.getOwnPropertySymbols,N=Object.prototype.hasOwnProperty,D=Object.prototype.propertyIsEnumerable,P=(e,t,a)=>t in e?F(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,M=(e,t)=>{for(var a in t||(t={}))N.call(t,a)&&P(e,a,t[a]);if(O)for(var a of O(t))D.call(t,a)&&P(e,a,t[a]);return e};const V=e=>{const{imgList:t,step:a=1,stepList:n,onSubmit:i,onSave:s,onPageChange:l,onStepChange:p,initialIndex:c=0,toolInstance:I,setToolInstance:_,getFileData:m,pageSize:f=10,loadFileList:r,defaultLang:d="cn",skipBeforePageTurning:S,beforeRotate:u}=e;g(()=>{o.dispatch(A({onSubmit:i,stepList:n,step:a,getFileData:m,pageSize:f,loadFileList:r,onSave:s,onPageChange:l,onStepChange:p,skipBeforePageTurning:S,beforeRotate:u})),j(),h.changeLanguage(d)},[]),g(()=>{o.dispatch(E({onSubmit:i,stepList:n,getFileData:m,pageSize:f,loadFileList:r,onSave:s,onPageChange:l,onStepChange:p,beforeRotate:u})),h.changeLanguage(d)},[i,n,m,f,r,s,l,p,d,u]),g(()=>{_==null||_(I)},[I]);const j=()=>{r?C(o.dispatch,o.getState,c,!0).then(T=>{T&&o.dispatch(L(c))}):t&&t.length>0&&(o.dispatch({type:y.UPDATE_IMG_LIST,payload:{imgList:t}}),o.dispatch(L(c)))};return v.createElement("div",null,v.createElement(b,M({},e)))},B=e=>({toolInstance:e.annotation.toolInstance});var R=w(B,null,null,{context:x})(V);export{R as default};
1
+ import x from"./views/MainView/index.js";import{i18n as o}from"@labelbee/lb-utils";import I,{useState as y,useEffect as v}from"react";import{connect as A}from"react-redux";import{store as n}from"./index.js";import{LabelBeeContext as E}from"./store/ctx.js";import{ANNOTATION_ACTIONS as N}from"./store/Actions.js";import{InitTaskData as F,UpdateInjectFunc as D,loadImgList as U}from"./store/annotation/actionCreators.js";import{LoadFileAndFileData as P}from"./store/annotation/reducer.js";import{ConfigProvider as z}from"antd/es";import M from"antd/es/locale/zh_CN";import R from"antd/es/locale/en_US";var V=Object.defineProperty,C=Object.getOwnPropertySymbols,B=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable,O=(e,t,a)=>t in e?V(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,$=(e,t)=>{for(var a in t||(t={}))B.call(t,a)&&O(e,a,t[a]);if(C)for(var a of C(t))G.call(t,a)&&O(e,a,t[a]);return e};const k=e=>{const[t,a]=y(0),{imgList:s,step:j=1,stepList:l,onSubmit:c,onSave:p,onPageChange:m,onStepChange:f,initialIndex:g=0,toolInstance:S,setToolInstance:L,getFileData:d,pageSize:u=10,loadFileList:r,defaultLang:h="cn",skipBeforePageTurning:T,beforeRotate:_}=e;v(()=>{n.dispatch(F({onSubmit:c,stepList:l,step:j,getFileData:d,pageSize:u,loadFileList:r,onSave:p,onPageChange:m,onStepChange:f,skipBeforePageTurning:T,beforeRotate:_})),b(),o.changeLanguage(h);const i=()=>{a(w=>w+1)};return o.on("languageChanged",i),()=>{o.off("languageChanged",i)}},[]),v(()=>{n.dispatch(D({onSubmit:c,stepList:l,getFileData:d,pageSize:u,loadFileList:r,onSave:p,onPageChange:m,onStepChange:f,beforeRotate:_})),o.changeLanguage(h)},[c,l,d,u,r,p,m,f,h,_]),v(()=>{L==null||L(S)},[S]);const b=()=>{r?U(n.dispatch,n.getState,g,!0).then(i=>{i&&n.dispatch(P(g))}):s&&s.length>0&&(n.dispatch({type:N.UPDATE_IMG_LIST,payload:{imgList:s}}),n.dispatch(P(g)))};return I.createElement("div",null,I.createElement(z,{locale:o.language==="en"?R:M},I.createElement(x,$({},e))))},q=e=>({toolInstance:e.annotation.toolInstance});var H=A(q,null,null,{context:E})(k);export{H as default};
package/es/App.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","sources":["../src/App.tsx"],"sourcesContent":["import MainView from '@/views/MainView';\nimport { i18n } from '@labelbee/lb-utils';\nimport React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport { store } from '.';\nimport { LabelBeeContext } from '@/store/ctx';\nimport { AppState } from './store';\nimport { ANNOTATION_ACTIONS } from './store/Actions';\nimport { InitTaskData, loadImgList, UpdateInjectFunc } from './store/annotation/actionCreators';\nimport { LoadFileAndFileData } from './store/annotation/reducer';\nimport { ToolInstance } from './store/annotation/types';\nimport {\n GetFileData,\n IFileItem,\n LoadFileList,\n OnPageChange,\n OnSave,\n OnStepChange,\n OnSubmit,\n} from './types/data';\nimport { Header, RenderFooter, Sider } from './types/main';\nimport { IStepInfo } from './types/step';\n\ninterface IAnnotationStyle {\n strokeColor: string;\n fillColor: string;\n textColor: string;\n toolColor: any;\n}\n\nexport interface AppProps {\n exportData?: (data: any[]) => void;\n goBack?: () => void;\n imgList?: IFileItem[];\n config: string;\n stepList: IStepInfo[];\n step: number;\n onSubmit?: OnSubmit;\n onSave?: OnSave;\n onPageChange?: OnPageChange;\n onStepChange?: OnStepChange;\n getFileData?: GetFileData;\n pageSize: number;\n loadFileList?: LoadFileList;\n headerName?: string;\n initialIndex?: number;\n className?: string;\n toolInstance: ToolInstance;\n header?: Header;\n footer?: RenderFooter;\n sider?: Sider;\n style?: {\n layout?: { [key: string]: any };\n header?: { [key: string]: any };\n sider?: { [key: string]: any };\n footer?: { [key: string]: any };\n };\n setToolInstance?: (tool: ToolInstance) => void;\n mode?: 'light' | 'dark'; // 临时需求应用于 toolFooter 的操作\n showTips?: boolean; // 是否展示 tips\n tips?: string; // Tips 具体内容\n defaultLang: 'en' | 'cn'; // 国际化设置\n leftSider?: () => React.ReactNode | React.ReactNode;\n\n // data Correction\n skipBeforePageTurning?: (pageTurning: Function) => void;\n beforeRotate?: () => boolean;\n\n drawLayerSlot?: (props: {\n zoom: number;\n currentPos: { x: number; y: number };\n }) => React.ReactNode;\n\n // 标注信息扩展的功能\n dataInjectionAtCreation: (annotationData: any) => {};\n // 渲染增强\n renderEnhance: {\n staticRender?: (canvas: HTMLCanvasElement, data: any, style: IAnnotationStyle) => void;\n selectedRender?: (canvas: HTMLCanvasElement, data: any, style: IAnnotationStyle) => void;\n creatingRender?: (canvas: HTMLCanvasElement, data: any, style: IAnnotationStyle) => void;\n };\n customRenderStyle?: (data: any) => IAnnotationStyle;\n}\n\nconst App: React.FC<AppProps> = (props) => {\n const {\n imgList,\n step = 1,\n stepList,\n onSubmit,\n onSave,\n onPageChange,\n onStepChange,\n initialIndex = 0,\n toolInstance,\n setToolInstance,\n getFileData,\n pageSize = 10,\n loadFileList,\n defaultLang = 'cn',\n skipBeforePageTurning,\n beforeRotate,\n } = props;\n\n useEffect(() => {\n store.dispatch(\n InitTaskData({\n onSubmit,\n stepList,\n step,\n getFileData,\n pageSize,\n loadFileList,\n onSave,\n onPageChange,\n onStepChange,\n skipBeforePageTurning,\n beforeRotate,\n }),\n );\n\n initImgList();\n // 初始化国际化语言\n i18n.changeLanguage(defaultLang);\n }, []);\n\n useEffect(() => {\n store.dispatch(\n UpdateInjectFunc({\n onSubmit,\n stepList,\n getFileData,\n pageSize,\n loadFileList,\n onSave,\n onPageChange,\n onStepChange,\n beforeRotate,\n }),\n );\n\n i18n.changeLanguage(defaultLang);\n }, [\n onSubmit,\n stepList,\n getFileData,\n pageSize,\n loadFileList,\n onSave,\n onPageChange,\n onStepChange,\n defaultLang,\n beforeRotate,\n ]);\n\n useEffect(() => {\n setToolInstance?.(toolInstance);\n }, [toolInstance]);\n\n // 初始化imgList 优先以loadFileList方式加载数据\n const initImgList = () => {\n if (loadFileList) {\n loadImgList(store.dispatch, store.getState, initialIndex, true).then((isSuccess) => {\n if (isSuccess) {\n store.dispatch(LoadFileAndFileData(initialIndex));\n }\n });\n } else if (imgList && imgList.length > 0) {\n store.dispatch({\n type: ANNOTATION_ACTIONS.UPDATE_IMG_LIST,\n payload: {\n imgList,\n },\n });\n store.dispatch(LoadFileAndFileData(initialIndex));\n }\n };\n\n return (\n <div>\n <MainView {...props} />\n </div>\n );\n};\n\nconst mapStateToProps = (state: AppState) => ({\n toolInstance: state.annotation.toolInstance,\n});\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(App);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.js","sources":["../src/App.tsx"],"sourcesContent":["import MainView from '@/views/MainView';\nimport { i18n } from '@labelbee/lb-utils';\nimport React, { useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\nimport { store } from '.';\nimport { LabelBeeContext } from '@/store/ctx';\nimport { AppState } from './store';\nimport { ANNOTATION_ACTIONS } from './store/Actions';\nimport { InitTaskData, loadImgList, UpdateInjectFunc } from './store/annotation/actionCreators';\nimport { LoadFileAndFileData } from './store/annotation/reducer';\nimport { ToolInstance } from './store/annotation/types';\nimport {\n GetFileData,\n IFileItem,\n LoadFileList,\n OnPageChange,\n OnSave,\n OnStepChange,\n OnSubmit,\n} from './types/data';\nimport { Header, RenderFooter, Sider } from './types/main';\nimport { IStepInfo } from './types/step';\nimport { ConfigProvider } from 'antd/es';\nimport zhCN from 'antd/es/locale/zh_CN';\nimport enUS from 'antd/es/locale/en_US';\n\ninterface IAnnotationStyle {\n strokeColor: string;\n fillColor: string;\n textColor: string;\n toolColor: any;\n}\n\nexport interface AppProps {\n exportData?: (data: any[]) => void;\n goBack?: () => void;\n imgList?: IFileItem[];\n config: string;\n stepList: IStepInfo[];\n step: number;\n onSubmit?: OnSubmit;\n onSave?: OnSave;\n onPageChange?: OnPageChange;\n onStepChange?: OnStepChange;\n getFileData?: GetFileData;\n pageSize: number;\n loadFileList?: LoadFileList;\n headerName?: string;\n initialIndex?: number;\n className?: string;\n toolInstance: ToolInstance;\n header?: Header;\n footer?: RenderFooter;\n sider?: Sider;\n style?: {\n layout?: { [key: string]: any };\n header?: { [key: string]: any };\n sider?: { [key: string]: any };\n footer?: { [key: string]: any };\n };\n setToolInstance?: (tool: ToolInstance) => void;\n mode?: 'light' | 'dark'; // 临时需求应用于 toolFooter 的操作\n showTips?: boolean; // 是否展示 tips\n tips?: string; // Tips 具体内容\n defaultLang: 'en' | 'cn'; // 国际化设置\n leftSider?: () => React.ReactNode | React.ReactNode;\n\n // data Correction\n skipBeforePageTurning?: (pageTurning: Function) => void;\n beforeRotate?: () => boolean;\n\n drawLayerSlot?: (props: {\n zoom: number;\n currentPos: { x: number; y: number };\n }) => React.ReactNode;\n\n // 标注信息扩展的功能\n dataInjectionAtCreation: (annotationData: any) => {};\n // 渲染增强\n renderEnhance: {\n staticRender?: (canvas: HTMLCanvasElement, data: any, style: IAnnotationStyle) => void;\n selectedRender?: (canvas: HTMLCanvasElement, data: any, style: IAnnotationStyle) => void;\n creatingRender?: (canvas: HTMLCanvasElement, data: any, style: IAnnotationStyle) => void;\n };\n customRenderStyle?: (data: any) => IAnnotationStyle;\n}\n\nconst App: React.FC<AppProps> = (props) => {\n const [_, forceRender] = useState(0);\n const {\n imgList,\n step = 1,\n stepList,\n onSubmit,\n onSave,\n onPageChange,\n onStepChange,\n initialIndex = 0,\n toolInstance,\n setToolInstance,\n getFileData,\n pageSize = 10,\n loadFileList,\n defaultLang = 'cn',\n skipBeforePageTurning,\n beforeRotate,\n } = props;\n\n useEffect(() => {\n store.dispatch(\n InitTaskData({\n onSubmit,\n stepList,\n step,\n getFileData,\n pageSize,\n loadFileList,\n onSave,\n onPageChange,\n onStepChange,\n skipBeforePageTurning,\n beforeRotate,\n }),\n );\n\n initImgList();\n // 初始化国际化语言\n i18n.changeLanguage(defaultLang);\n\n const i18nLanguageChangedFunc = () => {\n forceRender((v) => v + 1);\n };\n\n i18n.on('languageChanged', i18nLanguageChangedFunc);\n return () => {\n i18n.off('languageChanged', i18nLanguageChangedFunc);\n };\n }, []);\n\n useEffect(() => {\n store.dispatch(\n UpdateInjectFunc({\n onSubmit,\n stepList,\n getFileData,\n pageSize,\n loadFileList,\n onSave,\n onPageChange,\n onStepChange,\n beforeRotate,\n }),\n );\n\n i18n.changeLanguage(defaultLang);\n }, [\n onSubmit,\n stepList,\n getFileData,\n pageSize,\n loadFileList,\n onSave,\n onPageChange,\n onStepChange,\n defaultLang,\n beforeRotate,\n ]);\n\n useEffect(() => {\n setToolInstance?.(toolInstance);\n }, [toolInstance]);\n\n // 初始化imgList 优先以loadFileList方式加载数据\n const initImgList = () => {\n if (loadFileList) {\n loadImgList(store.dispatch, store.getState, initialIndex, true).then((isSuccess) => {\n if (isSuccess) {\n store.dispatch(LoadFileAndFileData(initialIndex));\n }\n });\n } else if (imgList && imgList.length > 0) {\n store.dispatch({\n type: ANNOTATION_ACTIONS.UPDATE_IMG_LIST,\n payload: {\n imgList,\n },\n });\n store.dispatch(LoadFileAndFileData(initialIndex));\n }\n };\n\n return (\n <div>\n <ConfigProvider locale={i18n.language === 'en' ? enUS : zhCN}>\n <MainView {...props} />\n </ConfigProvider>\n </div>\n );\n};\n\nconst mapStateToProps = (state: AppState) => ({\n toolInstance: state.annotation.toolInstance,\n});\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(App);\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{COLORS_ARRAY as i,NULL_COLOR as g}from"../../data/Style.js";import{ColorTag as R}from"../colorTag/index.js";import{Radio as c}from"antd/es";import l from"react";const f=[g].concat(i),v=l.forwardRef((e,d)=>{const s=l.useRef(),b=e.list||[];let o=[...f];e.forbidDefault===!0&&(o=o.slice(1));let n="sensebee-radio-group";return e.noHeightLimit&&(n="sensebee-radio-group-no-limit-height"),l.createElement("div",{className:n},l.createElement(c.Group,{name:"radiogroup",defaultValue:e==null?void 0:e.selectedAttribute,value:e==null?void 0:e.selectedAttribute,onChange:t=>e.attributeChanged(t.target.value),ref:d},b.map((t,r)=>{var u;let a=(u=e==null?void 0:e.num)!=null?u:r;e.forbidDefault===!0&&a++,typeof a=="number"&&a<=9&&a>=0||(a="-");let m=r>8&&!e.forbidDefault?i[(r-1)%i.length]:o[r%o.length];return(t==null?void 0:t.color)&&(m=t.color),l.createElement(c,{value:t.value,ref:s,key:r},l.createElement("span",{className:"sensebee-radio-label",title:t.label},!(e==null?void 0:e.forbidColor)&&l.createElement(R,{color:m,style:{marginRight:"8px"}}),t.label),l.createElement("span",{className:"sensebee-radio-num"},a))})))});export{f as ATTRIBUTE_COLORS,v as default};
1
+ import{COLORS_ARRAY as n,NULL_COLOR as g}from"../../data/Style.js";import{ColorTag as R}from"../colorTag/index.js";import{Radio as f}from"antd/es";import l from"react";const c=[g].concat(n),v=l.forwardRef((e,d)=>{const s=l.useRef(),b=e.list||[];let o=[...c];e.forbidDefault===!0&&(o=o.slice(1));let i="sensebee-radio-group";return e.noHeightLimit&&(i="sensebee-radio-group-no-limit-height"),l.createElement("div",{className:i,style:e.style},l.createElement(f.Group,{name:"radiogroup",defaultValue:e==null?void 0:e.selectedAttribute,value:e==null?void 0:e.selectedAttribute,onChange:t=>e.attributeChanged(t.target.value),ref:d},b.map((t,r)=>{var u;let a=(u=e==null?void 0:e.num)!=null?u:r;e.forbidDefault===!0&&typeof a=="number"&&a++,typeof a=="number"&&a<=9&&a>=0||(a="-");let m=r>8&&!e.forbidDefault?n[(r-1)%n.length]:o[r%o.length];return(t==null?void 0:t.color)&&(m=t.color),l.createElement(f,{value:t.value,ref:s,key:r},l.createElement("span",{className:"sensebee-radio-label",title:t.label},!(e==null?void 0:e.forbidColor)&&l.createElement(R,{color:m,style:{marginRight:"8px"}}),t.label),l.createElement("span",{className:"sensebee-radio-num"},a))})))});export{c as ATTRIBUTE_COLORS,v as default};
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/attributeList/index.tsx"],"sourcesContent":["import { COLORS_ARRAY, NULL_COLOR } from '@/data/Style';\nimport { ColorTag } from '@/components/colorTag';\nimport { Radio } from 'antd/es';\nimport React from 'react';\n\nexport const ATTRIBUTE_COLORS = [NULL_COLOR].concat(COLORS_ARRAY);\n\ninterface IProps {\n list: Array<{\n label: string;\n value: string;\n color?: string;\n }>;\n selectedAttribute: string;\n attributeChanged: (v: string) => void;\n forbidDefault?: boolean;\n forbidColor?: boolean;\n noHeightLimit?: boolean;\n num?: number;\n}\n\nconst AttributeList = React.forwardRef((props: IProps, ref) => {\n const radioRef = React.useRef<any>();\n\n const list = props.list || [];\n\n let NEW_ATTRIBUTE_COLORS = [...ATTRIBUTE_COLORS];\n\n // 去除默认的颜色\n if (props.forbidDefault === true) {\n NEW_ATTRIBUTE_COLORS = NEW_ATTRIBUTE_COLORS.slice(1);\n }\n\n let className = 'sensebee-radio-group';\n if (props.noHeightLimit) {\n className = 'sensebee-radio-group-no-limit-height';\n }\n\n return (\n <div className={className}>\n <Radio.Group\n name='radiogroup'\n defaultValue={props?.selectedAttribute}\n value={props?.selectedAttribute}\n onChange={(e) => props.attributeChanged(e.target.value)}\n ref={ref as any}\n >\n {list.map((i: any, index: number) => {\n let hotKey: number | string = props?.num ?? index;\n\n if (props.forbidDefault === true) {\n // 禁止 default 将从 1 开始\n hotKey++;\n }\n\n // 超出范围无法展示\n if (!(typeof hotKey === 'number' && hotKey <= 9 && hotKey >= 0)) {\n hotKey = '-';\n }\n\n let color =\n index > 8 && !props.forbidDefault\n ? COLORS_ARRAY[(index - 1) % COLORS_ARRAY.length]\n : NEW_ATTRIBUTE_COLORS[index % NEW_ATTRIBUTE_COLORS.length];\n\n if (i?.color) {\n color = i.color;\n }\n\n return (\n <Radio value={i.value} ref={radioRef} key={index}>\n <span className='sensebee-radio-label' title={i.label}>\n {!props?.forbidColor && <ColorTag color={color} style={{ marginRight: '8px' }} />}\n {i.label}\n </span>\n <span className='sensebee-radio-num'>{hotKey}</span>\n </Radio>\n );\n })}\n </Radio.Group>\n </div>\n );\n});\n\nexport default AttributeList;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/attributeList/index.tsx"],"sourcesContent":["import { COLORS_ARRAY, NULL_COLOR } from '@/data/Style';\nimport { ColorTag } from '@/components/colorTag';\nimport { Radio } from 'antd/es';\nimport React from 'react';\n\nexport const ATTRIBUTE_COLORS = [NULL_COLOR].concat(COLORS_ARRAY);\n\ninterface IProps {\n list: Array<{\n label: string;\n value: string;\n color?: string;\n }>;\n selectedAttribute?: string;\n attributeChanged: (v: string) => void;\n forbidDefault?: boolean;\n forbidColor?: boolean;\n noHeightLimit?: boolean;\n num?: number | string;\n style?: React.CSSProperties;\n}\n\nconst AttributeList = React.forwardRef((props: IProps, ref) => {\n const radioRef = React.useRef<any>();\n\n const list = props.list || [];\n\n let NEW_ATTRIBUTE_COLORS = [...ATTRIBUTE_COLORS];\n\n // 去除默认的颜色\n if (props.forbidDefault === true) {\n NEW_ATTRIBUTE_COLORS = NEW_ATTRIBUTE_COLORS.slice(1);\n }\n\n let className = 'sensebee-radio-group';\n if (props.noHeightLimit) {\n className = 'sensebee-radio-group-no-limit-height';\n }\n\n return (\n <div className={className} style={props.style}>\n <Radio.Group\n name='radiogroup'\n defaultValue={props?.selectedAttribute}\n value={props?.selectedAttribute}\n onChange={(e) => props.attributeChanged(e.target.value)}\n ref={ref as any}\n >\n {list.map((i: any, index: number) => {\n let hotKey: number | string = props?.num ?? index;\n\n if (props.forbidDefault === true && typeof hotKey === 'number') {\n // 禁止 default 将从 1 开始\n hotKey++;\n }\n\n // 超出范围无法展示\n if (!(typeof hotKey === 'number' && hotKey <= 9 && hotKey >= 0)) {\n hotKey = '-';\n }\n\n let color =\n index > 8 && !props.forbidDefault\n ? COLORS_ARRAY[(index - 1) % COLORS_ARRAY.length]\n : NEW_ATTRIBUTE_COLORS[index % NEW_ATTRIBUTE_COLORS.length];\n\n if (i?.color) {\n color = i.color;\n }\n\n return (\n <Radio value={i.value} ref={radioRef} key={index}>\n <span className='sensebee-radio-label' title={i.label}>\n {!props?.forbidColor && <ColorTag color={color} style={{ marginRight: '8px' }} />}\n {i.label}\n </span>\n <span className='sensebee-radio-num'>{hotKey}</span>\n </Radio>\n );\n })}\n </Radio.Group>\n </div>\n );\n});\n\nexport default AttributeList;\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{getClassName as h}from"../../utils/dom.js";import i,{useState as E,useContext as N,useRef as O,useEffect as _,useCallback as k}from"react";import{PointCloudContainer as A}from"./PointCloudLayout.js";import R from"../AnnotationView/index.js";import{PointCloudContext as z}from"./PointCloudContext.js";import{connect as T}from"react-redux";import{LeftOutlined as M,RightOutlined as $}from"@ant-design/icons";import q from"../../hooks/useSize.js";import{useSingleBox as F}from"./hooks/useSingleBox.js";import{useTranslation as G}from"react-i18next";import{LabelBeeContext as H}from"../../store/ctx.js";var J=Object.defineProperty,S=Object.getOwnPropertySymbols,K=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable,j=(t,n,e)=>n in t?J(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e,U=(t,n)=>{for(var e in n||(n={}))K.call(n,e)&&j(t,e,n[e]);if(S)for(var e of S(n))Q.call(n,e)&&j(t,e,n[e]);return t};const W=({onNext:t,onPrev:n,imgLength:e,imgIndex:u})=>i.createElement("div",null,i.createElement(M,{onClick:n}),i.createElement("span",null," ",u+1," / ",e," "),i.createElement($,{onClick:t})),X=({imgInfo:t})=>{var n,e,u,x,P;const[p,V]=E([]),{pointCloudBoxList:C,topViewInstance:w}=N(z),[a,m]=E(0),y=O(null),f=O(),{selectedBox:v}=F(),D=q(y),{t:B}=G(),s=(n=t==null?void 0:t.mappingImgList)==null?void 0:n[a];_(()=>{m(0)},[t]),_(()=>{if(w&&s){const{pointCloudInstance:o}=w,r={fill:"transparent",color:"green"},c=C.reduce((l,d)=>{const I=o.pointCloudLidar2image(d,s.calib);return[...l,...I.map(b=>({type:b.type,annotation:U({id:d.id,pointList:b.pointList},r)}))]},[]);V(c)}},[C,s]);const g=!t||!(t==null?void 0:t.mappingImgList)||!(((e=t==null?void 0:t.mappingImgList)==null?void 0:e.length)>0),L=k(()=>{var o,r;const c=(o=f.current)==null?void 0:o.toolInstance;if(!v||!c)return;const l=p.find(d=>d.annotation.id===v.info.id);((r=l==null?void 0:l.annotation.pointList)==null?void 0:r.length)>0&&c.focusPositionByPointList(l==null?void 0:l.annotation.pointList)},[v,f.current,p,a]);return _(()=>{L()},[L]),i.createElement(A,{className:h("point-cloud-2d-container"),title:B("2DView"),toolbar:g?void 0:i.createElement(W,{imgIndex:a,imgLength:(x=(u=t.mappingImgList)==null?void 0:u.length)!=null?x:0,onNext:()=>{var o;!t||!(t==null?void 0:t.mappingImgList)||a>=((o=t==null?void 0:t.mappingImgList)==null?void 0:o.length)-1||m(r=>r+1)},onPrev:()=>{a<=0||m(o=>o-1)}}),style:{display:g?"none":"flex"}},i.createElement("div",{className:h("point-cloud-2d-image"),ref:y},i.createElement(R,{src:(P=s==null?void 0:s.url)!=null?P:"",annotations:p,size:D,ref:f,globalStyle:{display:g?"none":"block"},afterImgOnLoad:L})))},Y=t=>{const{imgList:n,imgIndex:e}=t.annotation;return{imgInfo:n[e]}};var Z=T(Y,null,null,{context:H})(X);export{Z as default};
1
+ import{getClassName as I}from"../../utils/dom.js";import l,{useState as O,useContext as T,useRef as j,useEffect as b,useCallback as M}from"react";import{PointCloudContainer as F}from"./PointCloudLayout.js";import $ from"../AnnotationView/index.js";import{PointCloudContext as q}from"./PointCloudContext.js";import{connect as G}from"react-redux";import{LeftOutlined as H,RightOutlined as J}from"@ant-design/icons";import K from"../../hooks/useSize.js";import{useSingleBox as Q}from"./hooks/useSingleBox.js";import{pointCloudLidar2image as U}from"@labelbee/lb-annotation";import{useTranslation as W}from"react-i18next";import{LabelBeeContext as X}from"../../store/ctx.js";import{a2MapStateToProps as Y}from"../../store/annotation/map.js";import{toolStyleConverter as Z}from"@labelbee/lb-utils";var D=Object.defineProperty,tt=Object.defineProperties,ot=Object.getOwnPropertyDescriptors,h=Object.getOwnPropertySymbols,et=Object.prototype.hasOwnProperty,nt=Object.prototype.propertyIsEnumerable,E=(t,o,e)=>o in t?D(t,o,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[o]=e,S=(t,o)=>{for(var e in o||(o={}))et.call(o,e)&&E(t,e,o[e]);if(h)for(var e of h(o))nt.call(o,e)&&E(t,e,o[e]);return t},V=(t,o)=>tt(t,ot(o));const it=({onNext:t,onPrev:o,imgLength:e,imgIndex:p})=>l.createElement("div",null,l.createElement(H,{onClick:o}),l.createElement("span",null," ",p+1," / ",e," "),l.createElement(J,{onClick:t})),lt=({currentData:t,config:o})=>{var e,p,P,C,L;const[u,k]=O([]),{pointCloudBoxList:w,topViewInstance:N}=T(q),[s,c]=O(0),x=j(null),f=j(),{selectedBox:g}=Q(),A=K(x),{t:B}=W(),a=(e=t==null?void 0:t.mappingImgList)==null?void 0:e[s];b(()=>{c(0)},[t]),b(()=>{if(N&&a){const n={fill:"transparent",color:"green"},r=w.reduce((m,i)=>{var d;const R=U(i,a.calib),z=(d=Z.getColorFromConfig({attribute:i.attribute},V(S({},o),{attributeConfigurable:!0}),{}))==null?void 0:d.stroke;return[...m,...R.map(y=>({type:y.type,annotation:V(S({id:i.id,pointList:y.pointList},n),{stroke:z})}))]},[]);k(r)}},[w,a]);const v=!t||!(t==null?void 0:t.mappingImgList)||!(((p=t==null?void 0:t.mappingImgList)==null?void 0:p.length)>0),_=M(()=>{var n,r;const m=(n=f.current)==null?void 0:n.toolInstance;if(!g||!m)return;const i=u.find(d=>d.annotation.id===g.info.id);((r=i==null?void 0:i.annotation.pointList)==null?void 0:r.length)>0&&m.focusPositionByPointList(i==null?void 0:i.annotation.pointList)},[g,f.current,u,s]);return b(()=>{_()},[_]),l.createElement(F,{className:I("point-cloud-2d-container"),title:B("2DView"),toolbar:v?void 0:l.createElement(it,{imgIndex:s,imgLength:(C=(P=t.mappingImgList)==null?void 0:P.length)!=null?C:0,onNext:()=>{var n;!t||!(t==null?void 0:t.mappingImgList)||s>=((n=t==null?void 0:t.mappingImgList)==null?void 0:n.length)-1||c(r=>r+1)},onPrev:()=>{s<=0||c(n=>n-1)}}),style:{display:v?"none":"flex"}},l.createElement("div",{className:I("point-cloud-2d-image"),ref:x},l.createElement($,{src:(L=a==null?void 0:a.url)!=null?L:"",annotations:u,size:A,ref:f,globalStyle:{display:v?"none":"block"},afterImgOnLoad:_})))};var rt=G(Y,null,null,{context:X})(lt);export{rt as default};
@@ -1 +1 @@
1
- {"version":3,"file":"PointCloud2DView.js","sources":["../../../src/components/pointCloudView/PointCloud2DView.tsx"],"sourcesContent":["import { getClassName } from '@/utils/dom';\nimport React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { PointCloudContainer } from './PointCloudLayout';\nimport AnnotationView from '@/components/AnnotationView';\nimport { PointCloudContext } from './PointCloudContext';\nimport { AppState } from '@/store';\nimport { connect } from 'react-redux';\nimport { IFileItem } from '@/types/data';\nimport { LeftOutlined, RightOutlined } from '@ant-design/icons';\nimport useSize from '@/hooks/useSize';\nimport { useSingleBox } from './hooks/useSingleBox';\nimport { ViewOperation } from '@labelbee/lb-annotation';\nimport { useTranslation } from 'react-i18next';\nimport { LabelBeeContext } from '@/store/ctx';\n\ninterface IProps {\n imgInfo: IFileItem;\n}\n\nconst Toolbar = ({\n onNext,\n onPrev,\n imgLength,\n imgIndex,\n}: {\n onNext: () => void;\n onPrev: () => void;\n imgLength: number;\n imgIndex: number;\n}) => {\n return (\n <div>\n <LeftOutlined onClick={onPrev} />\n <span>\n {' '}\n {imgIndex + 1} / {imgLength}{' '}\n </span>\n\n <RightOutlined onClick={onNext} />\n </div>\n );\n};\n\n// TODO, It will be deleted when the exported type of lb-annotation is work.\ninterface IAnnotationDataTemporarily {\n type: string;\n annotation: any;\n}\n\nconst PointCloud2DView = ({ imgInfo }: IProps) => {\n const [annotations2d, setAnnotations2d] = useState<IAnnotationDataTemporarily[]>([]);\n const { pointCloudBoxList, topViewInstance } = useContext(PointCloudContext);\n const [mappingIndex, setMappingIndex] = useState(0);\n const ref = useRef(null);\n const viewRef = useRef<{ toolInstance: ViewOperation }>();\n const { selectedBox } = useSingleBox();\n const size = useSize(ref);\n const { t } = useTranslation();\n\n const mappingData = imgInfo?.mappingImgList?.[mappingIndex];\n\n useEffect(() => {\n setMappingIndex(0);\n }, [imgInfo]);\n\n useEffect(() => {\n if (topViewInstance && mappingData) {\n const { pointCloudInstance } = topViewInstance;\n const defaultViewStyle = {\n fill: 'transparent',\n color: 'green',\n };\n const newAnnotations2d: IAnnotationDataTemporarily[] = pointCloudBoxList.reduce(\n (acc: IAnnotationDataTemporarily[], pointCloudBox) => {\n const viewDataPointList = pointCloudInstance.pointCloudLidar2image(\n pointCloudBox,\n mappingData.calib,\n );\n return [\n ...acc,\n ...viewDataPointList.map((v: any) => {\n return {\n type: v.type,\n annotation: {\n id: pointCloudBox.id,\n pointList: v.pointList,\n ...defaultViewStyle,\n },\n };\n }),\n ];\n },\n [],\n );\n\n setAnnotations2d(newAnnotations2d);\n }\n }, [pointCloudBoxList, mappingData]);\n\n const hiddenData = !imgInfo || !imgInfo?.mappingImgList || !(imgInfo?.mappingImgList?.length > 0);\n\n const afterImgOnLoad = useCallback(() => {\n const toolInstance = viewRef.current?.toolInstance;\n\n if (!selectedBox || !toolInstance) {\n return;\n }\n const selected2data = annotations2d.find((v) => v.annotation.id === selectedBox.info.id);\n\n if (selected2data?.annotation.pointList?.length > 0) {\n toolInstance.focusPositionByPointList(selected2data?.annotation.pointList);\n }\n }, [selectedBox, viewRef.current, annotations2d, mappingIndex]);\n\n /**\n * If the status is updated, it needs to\n */\n useEffect(() => {\n afterImgOnLoad();\n }, [afterImgOnLoad]);\n\n return (\n <PointCloudContainer\n className={getClassName('point-cloud-2d-container')}\n title={t('2DView')}\n toolbar={\n hiddenData ? undefined : (\n <Toolbar\n imgIndex={mappingIndex}\n imgLength={imgInfo.mappingImgList?.length ?? 0}\n onNext={() => {\n if (!imgInfo || !imgInfo?.mappingImgList) {\n return;\n }\n\n if (mappingIndex >= imgInfo?.mappingImgList?.length - 1) {\n return;\n }\n setMappingIndex((v) => v + 1);\n }}\n onPrev={() => {\n if (mappingIndex <= 0) {\n return;\n }\n setMappingIndex((v) => v - 1);\n }}\n />\n )\n }\n style={{ display: hiddenData ? 'none' : 'flex' }}\n >\n <div className={getClassName('point-cloud-2d-image')} ref={ref}>\n <AnnotationView\n src={mappingData?.url ?? ''}\n annotations={annotations2d}\n size={size}\n ref={viewRef}\n globalStyle={{ display: hiddenData ? 'none' : 'block' }}\n afterImgOnLoad={afterImgOnLoad}\n />\n </div>\n </PointCloudContainer>\n );\n};\n\nconst mapStateToProps = (state: AppState) => {\n const { imgList, imgIndex } = state.annotation;\n\n return {\n imgInfo: imgList[imgIndex],\n };\n};\n\nexport default connect(mapStateToProps, null, null, { context: LabelBeeContext })(PointCloud2DView);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PointCloud2DView.js","sources":["../../../src/components/pointCloudView/PointCloud2DView.tsx"],"sourcesContent":["import { getClassName } from '@/utils/dom';\nimport React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { PointCloudContainer } from './PointCloudLayout';\nimport AnnotationView from '@/components/AnnotationView';\nimport { PointCloudContext } from './PointCloudContext';\nimport { connect } from 'react-redux';\nimport { LeftOutlined, RightOutlined } from '@ant-design/icons';\nimport useSize from '@/hooks/useSize';\nimport { useSingleBox } from './hooks/useSingleBox';\nimport { ViewOperation, pointCloudLidar2image } from '@labelbee/lb-annotation';\nimport { useTranslation } from 'react-i18next';\nimport { LabelBeeContext } from '@/store/ctx';\nimport { a2MapStateToProps, IA2MapStateProps } from '@/store/annotation/map';\nimport { toolStyleConverter } from '@labelbee/lb-utils';\n\nconst Toolbar = ({\n onNext,\n onPrev,\n imgLength,\n imgIndex,\n}: {\n onNext: () => void;\n onPrev: () => void;\n imgLength: number;\n imgIndex: number;\n}) => {\n return (\n <div>\n <LeftOutlined onClick={onPrev} />\n <span>\n {' '}\n {imgIndex + 1} / {imgLength}{' '}\n </span>\n\n <RightOutlined onClick={onNext} />\n </div>\n );\n};\n\n// TODO, It will be deleted when the exported type of lb-annotation is work.\ninterface IAnnotationDataTemporarily {\n type: string;\n annotation: any;\n}\n\nconst PointCloud2DView = ({ currentData, config }: IA2MapStateProps) => {\n const [annotations2d, setAnnotations2d] = useState<IAnnotationDataTemporarily[]>([]);\n const { pointCloudBoxList, topViewInstance } = useContext(PointCloudContext);\n const [mappingIndex, setMappingIndex] = useState(0);\n const ref = useRef(null);\n const viewRef = useRef<{ toolInstance: ViewOperation }>();\n const { selectedBox } = useSingleBox();\n const size = useSize(ref);\n const { t } = useTranslation();\n\n const mappingData = currentData?.mappingImgList?.[mappingIndex];\n\n useEffect(() => {\n setMappingIndex(0);\n }, [currentData]);\n\n useEffect(() => {\n if (topViewInstance && mappingData) {\n const defaultViewStyle = {\n fill: 'transparent',\n color: 'green',\n };\n\n const newAnnotations2d: IAnnotationDataTemporarily[] = pointCloudBoxList.reduce(\n (acc: IAnnotationDataTemporarily[], pointCloudBox) => {\n const viewDataPointList = pointCloudLidar2image(pointCloudBox, mappingData.calib);\n\n const stroke = toolStyleConverter.getColorFromConfig(\n { attribute: pointCloudBox.attribute },\n {\n ...config,\n attributeConfigurable: true,\n },\n {},\n )?.stroke;\n\n return [\n ...acc,\n ...viewDataPointList.map((v: any) => {\n return {\n type: v.type,\n annotation: {\n id: pointCloudBox.id,\n pointList: v.pointList,\n ...defaultViewStyle,\n stroke,\n },\n };\n }),\n ];\n },\n [],\n );\n\n setAnnotations2d(newAnnotations2d);\n }\n }, [pointCloudBoxList, mappingData]);\n\n const hiddenData =\n !currentData || !currentData?.mappingImgList || !(currentData?.mappingImgList?.length > 0);\n\n const afterImgOnLoad = useCallback(() => {\n const toolInstance = viewRef.current?.toolInstance;\n\n if (!selectedBox || !toolInstance) {\n return;\n }\n const selected2data = annotations2d.find((v) => v.annotation.id === selectedBox.info.id);\n\n if (selected2data?.annotation.pointList?.length > 0) {\n toolInstance.focusPositionByPointList(selected2data?.annotation.pointList);\n }\n }, [selectedBox, viewRef.current, annotations2d, mappingIndex]);\n\n /**\n * If the status is updated, it needs to\n */\n useEffect(() => {\n afterImgOnLoad();\n }, [afterImgOnLoad]);\n\n return (\n <PointCloudContainer\n className={getClassName('point-cloud-2d-container')}\n title={t('2DView')}\n toolbar={\n hiddenData ? undefined : (\n <Toolbar\n imgIndex={mappingIndex}\n imgLength={currentData.mappingImgList?.length ?? 0}\n onNext={() => {\n if (!currentData || !currentData?.mappingImgList) {\n return;\n }\n\n if (mappingIndex >= currentData?.mappingImgList?.length - 1) {\n return;\n }\n setMappingIndex((v) => v + 1);\n }}\n onPrev={() => {\n if (mappingIndex <= 0) {\n return;\n }\n setMappingIndex((v) => v - 1);\n }}\n />\n )\n }\n style={{ display: hiddenData ? 'none' : 'flex' }}\n >\n <div className={getClassName('point-cloud-2d-image')} ref={ref}>\n <AnnotationView\n src={mappingData?.url ?? ''}\n annotations={annotations2d}\n size={size}\n ref={viewRef}\n globalStyle={{ display: hiddenData ? 'none' : 'block' }}\n afterImgOnLoad={afterImgOnLoad}\n />\n </div>\n </PointCloudContainer>\n );\n};\n\nexport default connect(a2MapStateToProps, null, null, { context: LabelBeeContext })(\n PointCloud2DView,\n);\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{getClassName as r}from"../../utils/dom.js";import{PointCloud as L}from"@labelbee/lb-annotation";import{PointCloudUtils as b,EPerspectiveView as E}from"@labelbee/lb-utils";import T from"classnames";import e,{useContext as p,useState as D,useRef as I,useEffect as C,useMemo as S}from"react";import{PointCloudContainer as j}from"./PointCloudLayout.js";import{PointCloudContext as N}from"./PointCloudContext.js";import{aMapStateToProps as k}from"../../store/annotation/map.js";import{connect as R}from"react-redux";import{jsonParser as A}from"../../utils/index.js";import{useSingleBox as _}from"./hooks/useSingleBox.js";import{Switch as y}from"antd";import z from"../../hooks/useSize.js";import{usePointCloudViews as F}from"./hooks/usePointCloudViews.js";import{useTranslation as M}from"react-i18next";import{LabelBeeContext as O}from"../../store/ctx.js";const U="LABELBEE-POINTCLOUD",v=e.createContext({isActive:!1,setTarget3DView:()=>{},reset3DView:()=>{}}),s=({perspectiveView:t})=>{const{isActive:c,setTarget3DView:i}=p(v),u=d=>T({[r("point-cloud-3d-view",d)]:!0,active:c});return e.createElement("span",{onClick:()=>{i(E[t])},className:u(t.toLocaleLowerCase())})},q=()=>{const{reset3DView:t}=p(v);return e.createElement("div",{className:r("point-cloud-3d-sidebar")},e.createElement(s,{perspectiveView:"Top"}),e.createElement(s,{perspectiveView:"Front"}),e.createElement(s,{perspectiveView:"Left"}),e.createElement(s,{perspectiveView:"Back"}),e.createElement(s,{perspectiveView:"Right"}),e.createElement(s,{perspectiveView:"LFT"}),e.createElement(s,{perspectiveView:"RBT"}),e.createElement("span",{onClick:()=>{t()},className:r("point-cloud-3d-view","reset")}))},G=({currentData:t})=>{var c;const i=p(N),[u,d]=D(!0),m=I(null),{initPointCloud3d:w}=F(),P=z(m),{t:f}=M();C(()=>{!i.mainViewInstance||w==null||w()},[P]);const{selectedBox:l}=_(),V=n=>{var o;const a=l==null?void 0:l.info;a&&((o=i.mainViewInstance)==null||o.updateCameraByBox(a,n))},x=()=>{var n;(n=i.mainViewInstance)==null||n.resetCamera()};C(()=>{var n;if(m.current&&(t==null?void 0:t.url)){let o=i.mainViewInstance;if(o||(o=new L({container:m.current,backgroundColor:"#4c4c4c"})),t.result){const a=b.getBoxParamsFromResultList(t.result);a.forEach(B=>{o==null||o.generateBox(B)}),i.setPointCloudResult(a),i.setPointCloudValid((n=A(t.result))==null?void 0:n.valid)}i.setMainViewInstance(o)}},[t]),C(()=>{l&&V(E.Top)},[l]);const g=S(()=>({reset3DView:x,setTarget3DView:V,isActive:!!l}),[l]),h=e.createElement("div",null,e.createElement("span",{style:{marginRight:8}},f("ShowArrows")),e.createElement(y,{size:"small",checked:u,onChange:n=>{var o;d(n),(o=i.mainViewInstance)==null||o.setShowDirection(n)}}));return e.createElement(j,{className:r("point-cloud-3d-container"),title:f("3DView"),toolbar:h,style:{height:t.mappingImgList&&((c=t.mappingImgList)==null?void 0:c.length)>0?"55%":"100%"}},e.createElement("div",{className:r("point-cloud-3d-content")},e.createElement(v.Provider,{value:g},e.createElement(q,null)),e.createElement("div",{className:r("point-cloud-3d-view"),id:U,ref:m})))};var H=R(k,null,null,{context:O})(G);export{H as default};
1
+ import{getClassName as c}from"../../utils/dom.js";import{PointCloud as D}from"@labelbee/lb-annotation";import{PointCloudUtils as I,toolStyleConverter as L,EPerspectiveView as E}from"@labelbee/lb-utils";import y from"classnames";import t,{useContext as d,useState as T,useRef as N,useEffect as v,useMemo as R}from"react";import{PointCloudContainer as k}from"./PointCloudLayout.js";import{PointCloudContext as A}from"./PointCloudContext.js";import{a2MapStateToProps as z}from"../../store/annotation/map.js";import{connect as F}from"react-redux";import{jsonParser as M}from"../../utils/index.js";import{useSingleBox as U}from"./hooks/useSingleBox.js";import{Switch as q}from"antd";import G from"../../hooks/useSize.js";import{usePointCloudViews as H}from"./hooks/usePointCloudViews.js";import{useTranslation as J}from"react-i18next";import{LabelBeeContext as K}from"../../store/ctx.js";var Q=Object.defineProperty,W=Object.defineProperties,X=Object.getOwnPropertyDescriptors,x=Object.getOwnPropertySymbols,Y=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable,_=(e,o,r)=>o in e?Q(e,o,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[o]=r,$=(e,o)=>{for(var r in o||(o={}))Y.call(o,r)&&_(e,r,o[r]);if(x)for(var r of x(o))Z.call(o,r)&&_(e,r,o[r]);return e},ee=(e,o)=>W(e,X(o));const te="LABELBEE-POINTCLOUD",f=t.createContext({isActive:!1,setTarget3DView:()=>{},reset3DView:()=>{}}),l=({perspectiveView:e})=>{const{isActive:o,setTarget3DView:r}=d(f),n=p=>y({[c("point-cloud-3d-view",p)]:!0,active:o});return t.createElement("span",{onClick:()=>{r(E[e])},className:n(e.toLocaleLowerCase())})},oe=()=>{const{reset3DView:e}=d(f);return t.createElement("div",{className:c("point-cloud-3d-sidebar")},t.createElement(l,{perspectiveView:"Top"}),t.createElement(l,{perspectiveView:"Front"}),t.createElement(l,{perspectiveView:"Left"}),t.createElement(l,{perspectiveView:"Back"}),t.createElement(l,{perspectiveView:"Right"}),t.createElement(l,{perspectiveView:"LFT"}),t.createElement(l,{perspectiveView:"RBT"}),t.createElement("span",{onClick:()=>{e()},className:c("point-cloud-3d-view","reset")}))},re=({currentData:e,config:o})=>{var r;const n=d(A),[p,b]=T(!0),u=N(null),{initPointCloud3d:C}=H(),h=G(u),{t:w}=J();v(()=>{!n.mainViewInstance||C==null||C()},[h]);const{selectedBox:a}=U(),P=s=>{var i;const m=a==null?void 0:a.info;m&&((i=n.mainViewInstance)==null||i.updateCameraByBox(m,s))},j=()=>{var s;(s=n.mainViewInstance)==null||s.resetCamera()};v(()=>{var s;if(u.current&&(e==null?void 0:e.url)){let i=n.mainViewInstance;if(i||(i=new D({container:u.current,backgroundColor:"#4c4c4c",config:o})),e.result){const m=I.getBoxParamsFromResultList(e.result);m.forEach(g=>{var V;const B=(V=L.getColorFromConfig({attribute:g.attribute},ee($({},o),{attributeConfigurable:!0}),{}))==null?void 0:V.hex;i==null||i.generateBox(g,B)}),n.setPointCloudResult(m),n.setPointCloudValid((s=M(e.result))==null?void 0:s.valid)}n.setMainViewInstance(i)}},[e]),v(()=>{a&&P(E.Top)},[a]);const O=R(()=>({reset3DView:j,setTarget3DView:P,isActive:!!a}),[a]),S=t.createElement("div",null,t.createElement("span",{style:{marginRight:8}},w("ShowArrows")),t.createElement(q,{size:"small",checked:p,onChange:s=>{var i;b(s),(i=n.mainViewInstance)==null||i.setShowDirection(s)}}));return t.createElement(k,{className:c("point-cloud-3d-container"),title:w("3DView"),toolbar:S,style:{height:e.mappingImgList&&((r=e.mappingImgList)==null?void 0:r.length)>0?"55%":"100%"}},t.createElement("div",{className:c("point-cloud-3d-content")},t.createElement(f.Provider,{value:O},t.createElement(oe,null)),t.createElement("div",{className:c("point-cloud-3d-view"),id:te,ref:u})))};var ie=F(z,null,null,{context:K})(re);export{ie as default};
@@ -1 +1 @@
1
- {"version":3,"file":"PointCloud3DView.js","sources":["../../../src/components/pointCloudView/PointCloud3DView.tsx"],"sourcesContent":["/*\n * @Author: Laoluo luozefeng@sensetime.com\n * @Date: 2022-06-13 19:31:36\n * @LastEditors: Laoluo luozefeng@sensetime.com\n * @LastEditTime: 2022-06-27 19:43:25\n */\n\nimport { getClassName } from '@/utils/dom';\nimport { PointCloud } from '@labelbee/lb-annotation';\nimport { EPerspectiveView, IPointCloudBox, PointCloudUtils } from '@labelbee/lb-utils';\nimport classNames from 'classnames';\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { PointCloudContainer } from './PointCloudLayout';\nimport { PointCloudContext } from './PointCloudContext';\nimport { aMapStateToProps, IAnnotationStateProps } from '@/store/annotation/map';\nimport { connect } from 'react-redux';\nimport { jsonParser } from '@/utils';\nimport { useSingleBox } from './hooks/useSingleBox';\nimport { Switch } from 'antd';\nimport useSize from '@/hooks/useSize';\nimport { usePointCloudViews } from './hooks/usePointCloudViews';\nimport { useTranslation } from 'react-i18next';\nimport { LabelBeeContext } from '@/store/ctx';\n\nconst pointCloudID = 'LABELBEE-POINTCLOUD';\nconst PointCloud3DContext = React.createContext<{\n isActive: boolean;\n setTarget3DView: (perspectiveView: EPerspectiveView) => void;\n reset3DView: () => void;\n}>({\n isActive: false,\n setTarget3DView: () => {},\n reset3DView: () => {},\n});\n\nconst PointCloudViewIcon = ({\n perspectiveView,\n}: {\n perspectiveView: keyof typeof EPerspectiveView;\n}) => {\n const { isActive, setTarget3DView } = useContext(PointCloud3DContext);\n\n const getTarget3DViewClassName = (position: string) => {\n return classNames({\n [getClassName('point-cloud-3d-view', position)]: true,\n active: isActive,\n });\n };\n\n return (\n <span\n onClick={() => {\n setTarget3DView(EPerspectiveView[perspectiveView]);\n }}\n className={getTarget3DViewClassName(perspectiveView.toLocaleLowerCase())}\n />\n );\n};\n\nconst PointCloud3DSideBar = () => {\n const { reset3DView } = useContext(PointCloud3DContext);\n return (\n <div className={getClassName('point-cloud-3d-sidebar')}>\n <PointCloudViewIcon perspectiveView='Top' />\n <PointCloudViewIcon perspectiveView='Front' />\n <PointCloudViewIcon perspectiveView='Left' />\n <PointCloudViewIcon perspectiveView='Back' />\n <PointCloudViewIcon perspectiveView='Right' />\n <PointCloudViewIcon perspectiveView='LFT' />\n <PointCloudViewIcon perspectiveView='RBT' />\n <span\n onClick={() => {\n reset3DView();\n }}\n className={getClassName('point-cloud-3d-view', 'reset')}\n />\n </div>\n );\n};\n\nconst PointCloud3D: React.FC<IAnnotationStateProps> = ({ currentData }) => {\n const ptCtx = useContext(PointCloudContext);\n const [showDirection, setShowDirection] = useState(true);\n const ref = useRef<HTMLDivElement>(null);\n const { initPointCloud3d } = usePointCloudViews();\n const size = useSize(ref);\n const { t } = useTranslation();\n\n useEffect(() => {\n if (!ptCtx.mainViewInstance) {\n return;\n }\n initPointCloud3d?.();\n }, [size]);\n const { selectedBox } = useSingleBox();\n\n const setTarget3DView = (perspectiveView: EPerspectiveView) => {\n const box = selectedBox?.info;\n\n if (box) {\n ptCtx.mainViewInstance?.updateCameraByBox(box, perspectiveView);\n }\n };\n\n const reset3DView = () => {\n ptCtx.mainViewInstance?.resetCamera();\n };\n\n useEffect(() => {\n if (ref.current && currentData?.url) {\n let pointCloud = ptCtx.mainViewInstance;\n if (!pointCloud) {\n pointCloud = new PointCloud({\n container: ref.current,\n backgroundColor: '#4c4c4c',\n });\n }\n\n if (currentData.result) {\n const boxParamsList = PointCloudUtils.getBoxParamsFromResultList(currentData.result);\n\n // Add Init Box\n boxParamsList.forEach((v: IPointCloudBox) => {\n pointCloud?.generateBox(v);\n });\n\n ptCtx.setPointCloudResult(boxParamsList);\n ptCtx.setPointCloudValid(jsonParser(currentData.result)?.valid);\n }\n\n ptCtx.setMainViewInstance(pointCloud);\n }\n }, [currentData]);\n\n /**\n * Observe selectedID and reset camera to target top-view\n */\n useEffect(() => {\n if (selectedBox) {\n setTarget3DView(EPerspectiveView.Top);\n }\n }, [selectedBox]);\n\n const ptCloud3DCtx = useMemo(() => {\n return { reset3DView, setTarget3DView, isActive: !!selectedBox };\n }, [selectedBox]);\n\n const PointCloud3DTitle = (\n <div>\n <span style={{ marginRight: 8 }}>{t('ShowArrows')}</span>\n <Switch\n size='small'\n checked={showDirection}\n onChange={(showDirection) => {\n setShowDirection(showDirection);\n ptCtx.mainViewInstance?.setShowDirection(showDirection);\n }}\n />\n </div>\n );\n\n return (\n <PointCloudContainer\n className={getClassName('point-cloud-3d-container')}\n title={t('3DView')}\n toolbar={PointCloud3DTitle}\n style={{\n height:\n currentData.mappingImgList && currentData.mappingImgList?.length > 0 ? '55%' : '100%',\n }}\n >\n <div className={getClassName('point-cloud-3d-content')}>\n <PointCloud3DContext.Provider value={ptCloud3DCtx}>\n <PointCloud3DSideBar />\n </PointCloud3DContext.Provider>\n <div className={getClassName('point-cloud-3d-view')} id={pointCloudID} ref={ref} />\n </div>\n </PointCloudContainer>\n );\n};\n\nexport default connect(aMapStateToProps, null, null, { context: LabelBeeContext })(PointCloud3D);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PointCloud3DView.js","sources":["../../../src/components/pointCloudView/PointCloud3DView.tsx"],"sourcesContent":["/*\n * @Author: Laoluo luozefeng@sensetime.com\n * @Date: 2022-06-13 19:31:36\n * @LastEditors: Laoluo luozefeng@sensetime.com\n * @LastEditTime: 2022-06-27 19:43:25\n */\n\nimport { getClassName } from '@/utils/dom';\nimport { PointCloud } from '@labelbee/lb-annotation';\nimport {\n EPerspectiveView,\n IPointCloudBox,\n PointCloudUtils,\n toolStyleConverter,\n} from '@labelbee/lb-utils';\nimport classNames from 'classnames';\nimport React, { useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { PointCloudContainer } from './PointCloudLayout';\nimport { PointCloudContext } from './PointCloudContext';\nimport { a2MapStateToProps, IA2MapStateProps } from '@/store/annotation/map';\nimport { connect } from 'react-redux';\nimport { jsonParser } from '@/utils';\nimport { useSingleBox } from './hooks/useSingleBox';\nimport { Switch } from 'antd';\nimport useSize from '@/hooks/useSize';\nimport { usePointCloudViews } from './hooks/usePointCloudViews';\nimport { useTranslation } from 'react-i18next';\nimport { LabelBeeContext } from '@/store/ctx';\n\nconst pointCloudID = 'LABELBEE-POINTCLOUD';\nconst PointCloud3DContext = React.createContext<{\n isActive: boolean;\n setTarget3DView: (perspectiveView: EPerspectiveView) => void;\n reset3DView: () => void;\n}>({\n isActive: false,\n setTarget3DView: () => {},\n reset3DView: () => {},\n});\n\nconst PointCloudViewIcon = ({\n perspectiveView,\n}: {\n perspectiveView: keyof typeof EPerspectiveView;\n}) => {\n const { isActive, setTarget3DView } = useContext(PointCloud3DContext);\n\n const getTarget3DViewClassName = (position: string) => {\n return classNames({\n [getClassName('point-cloud-3d-view', position)]: true,\n active: isActive,\n });\n };\n\n return (\n <span\n onClick={() => {\n setTarget3DView(EPerspectiveView[perspectiveView]);\n }}\n className={getTarget3DViewClassName(perspectiveView.toLocaleLowerCase())}\n />\n );\n};\n\nconst PointCloud3DSideBar = () => {\n const { reset3DView } = useContext(PointCloud3DContext);\n return (\n <div className={getClassName('point-cloud-3d-sidebar')}>\n <PointCloudViewIcon perspectiveView='Top' />\n <PointCloudViewIcon perspectiveView='Front' />\n <PointCloudViewIcon perspectiveView='Left' />\n <PointCloudViewIcon perspectiveView='Back' />\n <PointCloudViewIcon perspectiveView='Right' />\n <PointCloudViewIcon perspectiveView='LFT' />\n <PointCloudViewIcon perspectiveView='RBT' />\n <span\n onClick={() => {\n reset3DView();\n }}\n className={getClassName('point-cloud-3d-view', 'reset')}\n />\n </div>\n );\n};\n\nconst PointCloud3D: React.FC<IA2MapStateProps> = ({ currentData, config }) => {\n const ptCtx = useContext(PointCloudContext);\n const [showDirection, setShowDirection] = useState(true);\n const ref = useRef<HTMLDivElement>(null);\n const { initPointCloud3d } = usePointCloudViews();\n const size = useSize(ref);\n const { t } = useTranslation();\n\n useEffect(() => {\n if (!ptCtx.mainViewInstance) {\n return;\n }\n initPointCloud3d?.();\n }, [size]);\n const { selectedBox } = useSingleBox();\n\n const setTarget3DView = (perspectiveView: EPerspectiveView) => {\n const box = selectedBox?.info;\n\n if (box) {\n ptCtx.mainViewInstance?.updateCameraByBox(box, perspectiveView);\n }\n };\n\n const reset3DView = () => {\n ptCtx.mainViewInstance?.resetCamera();\n };\n\n useEffect(() => {\n if (ref.current && currentData?.url) {\n let pointCloud = ptCtx.mainViewInstance;\n if (!pointCloud) {\n pointCloud = new PointCloud({\n container: ref.current,\n backgroundColor: '#4c4c4c',\n config,\n });\n }\n\n if (currentData.result) {\n const boxParamsList = PointCloudUtils.getBoxParamsFromResultList(currentData.result);\n\n // Add Init Box\n boxParamsList.forEach((v: IPointCloudBox) => {\n const hex = toolStyleConverter.getColorFromConfig(\n { attribute: v.attribute },\n { ...config, attributeConfigurable: true },\n {},\n )?.hex;\n\n pointCloud?.generateBox(v, hex);\n });\n\n ptCtx.setPointCloudResult(boxParamsList);\n ptCtx.setPointCloudValid(jsonParser(currentData.result)?.valid);\n }\n\n ptCtx.setMainViewInstance(pointCloud);\n }\n }, [currentData]);\n\n /**\n * Observe selectedID and reset camera to target top-view\n */\n useEffect(() => {\n if (selectedBox) {\n setTarget3DView(EPerspectiveView.Top);\n }\n }, [selectedBox]);\n\n const ptCloud3DCtx = useMemo(() => {\n return { reset3DView, setTarget3DView, isActive: !!selectedBox };\n }, [selectedBox]);\n\n const PointCloud3DTitle = (\n <div>\n <span style={{ marginRight: 8 }}>{t('ShowArrows')}</span>\n <Switch\n size='small'\n checked={showDirection}\n onChange={(showDirection) => {\n setShowDirection(showDirection);\n ptCtx.mainViewInstance?.setShowDirection(showDirection);\n }}\n />\n </div>\n );\n\n return (\n <PointCloudContainer\n className={getClassName('point-cloud-3d-container')}\n title={t('3DView')}\n toolbar={PointCloud3DTitle}\n style={{\n height:\n currentData.mappingImgList && currentData.mappingImgList?.length > 0 ? '55%' : '100%',\n }}\n >\n <div className={getClassName('point-cloud-3d-content')}>\n <PointCloud3DContext.Provider value={ptCloud3DCtx}>\n <PointCloud3DSideBar />\n </PointCloud3DContext.Provider>\n <div className={getClassName('point-cloud-3d-view')} id={pointCloudID} ref={ref} />\n </div>\n </PointCloudContainer>\n );\n};\n\nexport default connect(a2MapStateToProps, null, null, { context: LabelBeeContext })(PointCloud3D);\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- import{PointCloudAnnotation as N,MathUtils as f}from"@labelbee/lb-annotation";import{getClassName as x}from"../../utils/dom.js";import{PointCloudContainer as M}from"./PointCloudLayout.js";import u,{useRef as X,useEffect as C}from"react";import{PointCloudContext as A}from"./PointCloudContext.js";import{useSingleBox as D}from"./hooks/useSingleBox.js";import{EPerspectiveView as T}from"@labelbee/lb-utils";import{SizeInfoForView as W}from"./PointCloudInfos.js";import{connect as H}from"react-redux";import{aMapStateToProps as Y}from"../../store/annotation/map.js";import{synchronizeTopView as F,synchronizeSideView as R}from"./hooks/usePointCloudViews.js";import U from"../../hooks/useSize.js";import Z from"./components/EmptyPage/index.js";import{useTranslation as q}from"react-i18next";import{LabelBeeContext as G}from"../../store/ctx.js";var J=Object.defineProperty,K=Object.defineProperties,Q=Object.getOwnPropertyDescriptors,B=Object.getOwnPropertySymbols,$=Object.prototype.hasOwnProperty,ee=Object.prototype.propertyIsEnumerable,O=(o,e,t)=>e in o?J(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,te=(o,e)=>{for(var t in e||(e={}))$.call(e,t)&&O(o,t,e[t]);if(B)for(var t of B(e))ee.call(e,t)&&O(o,t,e[t]);return o},oe=(o,e)=>K(o,Q(e));const ne=(o,e,t=1)=>{const{width:n,height:s}=e,c={x:o.x+n*t/2,y:o.y+s*t/2},d={x:e.width/2,y:e.height/2};return{offsetX:(d.x-c.x)/t,offsetY:-(d.y-c.y)/t}},_=(o,e,t,n,s)=>{const{offsetX:c,offsetY:d}=ne(o,t,e);if(s.camera.zoom=e,o){const r=Math.cos(n.rotation),l=Math.sin(n.rotation),a=c*r,p=c*l,{x:m,y:P,z:g}=s.initCameraPosition;s.camera.position.set(m+p,P-a,g+d)}s.camera.updateProjectionMatrix(),s.render()},ie=({currentData:o})=>{const e=u.useContext(A),t=X(null),n=U(t),{updateSelectedBox:s,selectedBox:c}=D(),{t:d}=q();return C(()=>{if(t.current){const r={width:t.current.clientWidth,height:t.current.clientHeight},l=new N({container:t.current,size:r,polygonOperationProps:{showDirectionLine:!1,forbidAddNew:!0}});e.setBackViewInstance(l)}},[]),C(()=>{if(!n||!e.backViewInstance)return;const{pointCloud2dOperation:r,pointCloudInstance:l}=e.backViewInstance;r.singleOn("renderZoom",(a,p)=>{!e.selectedPointCloudBox||_(p,a,n,e.selectedPointCloudBox,l)}),r.singleOn("dragMove",({currentPos:a,zoom:p})=>{!e.selectedPointCloudBox||_(a,p,n,e.selectedPointCloudBox,l)}),r.singleOn("updatePolygonByDrag",({newPolygon:a,originPolygon:p})=>{if(!e.selectedPointCloudBox||!e.mainViewInstance||!o.url)return;const[m,P,g]=a.pointList,[y,v,V]=p.pointList,w=f.getLineCenterPoint([m,g]),h=f.getLineCenterPoint([y,V]),I={x:{x:w.x-h.x,y:w.y-h.y}.x,y:0,z:w.y-h.y},b=f.getLineLength(m,P),L=f.getLineLength(y,v),j=b-L,S=f.getLineLength(P,g),E=f.getLineLength(v,V),k=S-E;let{newBoxParams:i}=l.getNewBoxByBackUpdate(I,k,j,e.selectedPointCloudBox);if(e.mainViewInstance){const{count:z}=e.mainViewInstance.getSensesPointZAxisInPolygon(e.mainViewInstance.getCuboidFromPointCloudBox(i).polygonPointList,[i.center.z-i.depth/2,i.center.z+i.depth/2]);i=oe(te({},i),{count:z})}F(i,a,e.topViewInstance,e.mainViewInstance),R(i,a,e.sideViewInstance,o.url),e.mainViewInstance.highlightOriginPointCloud(i),s(i)})},[e,n]),C(()=>{var r;(r=e==null?void 0:e.backViewInstance)==null||r.initSize(n)},[n]),u.createElement(M,{className:x("point-cloud-container","back-view"),title:d("BackView"),toolbar:u.createElement(W,{perspectiveView:T.Back})},u.createElement("div",{className:x("point-cloud-container","bottom-view-content")},u.createElement("div",{className:x("point-cloud-container","core-instance"),ref:t}),!c&&u.createElement(Z,null)))};var re=H(Y,null,null,{context:G})(ie);export{re as default};
1
+ import{PointCloudAnnotation as M,MathUtils as f,getCuboidFromPointCloudBox as X}from"@labelbee/lb-annotation";import{getClassName as x}from"../../utils/dom.js";import{PointCloudContainer as A}from"./PointCloudLayout.js";import u,{useRef as D,useEffect as C}from"react";import{PointCloudContext as T}from"./PointCloudContext.js";import{useSingleBox as W}from"./hooks/useSingleBox.js";import{EPerspectiveView as H}from"@labelbee/lb-utils";import{SizeInfoForView as Y}from"./PointCloudInfos.js";import{connect as F}from"react-redux";import{a2MapStateToProps as R}from"../../store/annotation/map.js";import{synchronizeTopView as U,synchronizeSideView as Z}from"./hooks/usePointCloudViews.js";import q from"../../hooks/useSize.js";import G from"./components/EmptyPage/index.js";import{useTranslation as J}from"react-i18next";import{LabelBeeContext as K}from"../../store/ctx.js";var Q=Object.defineProperty,$=Object.defineProperties,ee=Object.getOwnPropertyDescriptors,O=Object.getOwnPropertySymbols,te=Object.prototype.hasOwnProperty,oe=Object.prototype.propertyIsEnumerable,_=(o,t,e)=>t in o?Q(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,ne=(o,t)=>{for(var e in t||(t={}))te.call(t,e)&&_(o,e,t[e]);if(O)for(var e of O(t))oe.call(t,e)&&_(o,e,t[e]);return o},ie=(o,t)=>$(o,ee(t));const re=(o,t,e=1)=>{const{width:i,height:n}=t,c={x:o.x+i*e/2,y:o.y+n*e/2},d={x:t.width/2,y:t.height/2};return{offsetX:(d.x-c.x)/e,offsetY:-(d.y-c.y)/e}},b=(o,t,e,i,n)=>{const{offsetX:c,offsetY:d}=re(o,e,t);if(n.camera.zoom=t,o){const g=Math.cos(i.rotation),s=Math.sin(i.rotation),l=c*g,a=c*s,{x:p,y:m,z:P}=n.initCameraPosition;n.camera.position.set(p+a,m-l,P+d)}n.camera.updateProjectionMatrix(),n.render()},se=({currentData:o,config:t})=>{const e=u.useContext(T),i=D(null),n=q(i),{updateSelectedBox:c,selectedBox:d}=W(),{t:g}=J();return C(()=>{if(i.current){const s={width:i.current.clientWidth,height:i.current.clientHeight},l=new M({container:i.current,size:s,polygonOperationProps:{showDirectionLine:!1,forbidAddNew:!0},config:t});e.setBackViewInstance(l)}},[]),C(()=>{if(!n||!e.backViewInstance)return;const{pointCloud2dOperation:s,pointCloudInstance:l}=e.backViewInstance;s.singleOn("renderZoom",(a,p)=>{!e.selectedPointCloudBox||b(p,a,n,e.selectedPointCloudBox,l)}),s.singleOn("dragMove",({currentPos:a,zoom:p})=>{!e.selectedPointCloudBox||b(a,p,n,e.selectedPointCloudBox,l)}),s.singleOn("updatePolygonByDrag",({newPolygon:a,originPolygon:p})=>{if(!e.selectedPointCloudBox||!e.mainViewInstance||!o.url)return;const[m,P,y]=a.pointList,[v,B,V]=p.pointList,w=f.getLineCenterPoint([m,y]),h=f.getLineCenterPoint([v,V]),I={x:{x:w.x-h.x,y:w.y-h.y}.x,y:0,z:w.y-h.y},L=f.getLineLength(m,P),j=f.getLineLength(v,B),S=L-j,E=f.getLineLength(P,y),k=f.getLineLength(B,V),z=E-k;let{newBoxParams:r}=l.getNewBoxByBackUpdate(I,z,S,e.selectedPointCloudBox);if(e.mainViewInstance){const{count:N}=e.mainViewInstance.getSensesPointZAxisInPolygon(X(r).polygonPointList,[r.center.z-r.depth/2,r.center.z+r.depth/2]);r=ie(ne({},r),{count:N})}U(r,a,e.topViewInstance,e.mainViewInstance),Z(r,a,e.sideViewInstance,o.url),e.mainViewInstance.highlightOriginPointCloud(r),c(r)})},[e,n]),C(()=>{var s;(s=e==null?void 0:e.backViewInstance)==null||s.initSize(n)},[n]),u.createElement(A,{className:x("point-cloud-container","back-view"),title:g("BackView"),toolbar:u.createElement(Y,{perspectiveView:H.Back})},u.createElement("div",{className:x("point-cloud-container","bottom-view-content")},u.createElement("div",{className:x("point-cloud-container","core-instance"),ref:i}),!d&&u.createElement(G,null)))};var ae=F(R,null,null,{context:K})(se);export{ae as default};