@riil-frontend/component-topology 6.0.0-alpha.3 → 6.0.0-alpha.31

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 (287) hide show
  1. package/build/1.js +2 -2
  2. package/build/2.js +1 -1
  3. package/build/index.css +1 -1
  4. package/build/index.js +35 -35
  5. package/es/components/ColorPanel/components/ColorBlock/index.js +37 -0
  6. package/es/components/ColorPanel/components/ColorBlock/index.module.scss +8 -0
  7. package/es/components/ColorPanel/components/FontColorRange/index.js +35 -0
  8. package/es/components/ColorPanel/components/FontColorRange/index.module.scss +23 -0
  9. package/es/components/ColorPanel/index.js +237 -0
  10. package/es/components/ColorPanel/index.module.scss +34 -0
  11. package/es/components/VerticalIconTab/VerticalIconTab.module.scss +5 -1
  12. package/es/components/collapse/Collapse.js +22 -3
  13. package/es/components/collapse/Collapse.module.scss +23 -0
  14. package/es/components/collapse/index.js +2 -0
  15. package/es/core/common/hooks/useHtElements.js +21 -0
  16. package/es/core/common/icons/icon.js +41 -0
  17. package/es/core/common/icons/useIcons.js +8 -16
  18. package/es/core/components/AlarmListPanel/components/AlarmListItem.js +14 -13
  19. package/es/core/components/AlarmListPanel/components/index.module.scss +5 -5
  20. package/es/core/components/DisplaySettingDrawer/DisplaySetting.js +2 -1
  21. package/es/core/components/DisplaySettingDrawer/DisplaySettingDrawer.js +6 -2
  22. package/es/core/components/DisplaySettingDrawer/EditorDisplaySetting.js +122 -0
  23. package/es/core/components/DisplaySettingDrawer/LineExpandAllRadioGroup.js +0 -3
  24. package/es/core/components/DisplaySettingDrawer/hooks/useDisplaySetting.js +76 -19
  25. package/es/core/components/TopoView/GraphViewPanel.js +20 -0
  26. package/es/core/components/TopoView/editor.module.scss +1 -0
  27. package/es/core/components/TopoView/topoView.js +29 -49
  28. package/es/core/components/titlebar/TitleBar.module.scss +1 -1
  29. package/es/core/editor/components/EditorPlugin.js +2 -1
  30. package/es/core/editor/components/Sidebar/Sidebar.js +41 -50
  31. package/es/core/editor/components/Sidebar/panes.js +32 -0
  32. package/es/core/editor/components/Sidebar/views/CanvasPanel/CanvasPanel.js +95 -0
  33. package/es/core/editor/components/Sidebar/views/CanvasPanel/CanvasPanel.module.scss +74 -0
  34. package/es/core/editor/components/Sidebar/views/CanvasPanel/index.js +1 -1
  35. package/es/core/editor/components/Sidebar/views/ImagePanel/CiTypeImagePanel.js +3 -3
  36. package/es/core/editor/components/Sidebar/views/ImagePanel/HtCustomImagePanel.js +2 -5
  37. package/es/core/editor/components/Sidebar/views/ImagePanel/HtImagePalette.js +3 -4
  38. package/es/core/editor/components/Sidebar/views/ImagePanel/HtImagePalette.module.scss +5 -0
  39. package/es/core/editor/components/Sidebar/views/ImagePanel/ImagePanel.js +20 -7
  40. package/es/core/editor/components/Toolbar/EditorToolbar.js +23 -13
  41. package/es/core/editor/components/Toolbar/Toolbar.js +1 -1
  42. package/es/core/editor/components/Toolbar/Toolbar.module.scss +14 -3
  43. package/es/core/editor/components/Toolbar/buttons.js +21 -18
  44. package/es/core/editor/components/Toolbar/hooks/useFontStyleSetting.js +52 -0
  45. package/es/core/editor/components/Toolbar/widgets/AddResourceButton.js +8 -7
  46. package/es/core/editor/components/Toolbar/widgets/CanvasMoveWidget.js +13 -2
  47. package/es/core/editor/components/Toolbar/widgets/CanvasSelectWidget.js +11 -2
  48. package/es/core/editor/components/Toolbar/widgets/EdgeColorButton/Content.js +36 -2
  49. package/es/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +96 -5
  50. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/EdgeType.js +184 -3
  51. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/EdgeType.module.scss +44 -0
  52. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +53 -0
  53. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.module.scss +31 -0
  54. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/constants.js +77 -0
  55. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/index.js +74 -6
  56. package/es/core/editor/components/Toolbar/widgets/FontColorButton.js +40 -4
  57. package/es/core/editor/components/Toolbar/widgets/FontColorButton.module.scss +35 -0
  58. package/es/core/editor/components/Toolbar/widgets/FontFamilyWidget.js +12 -2
  59. package/es/core/editor/components/Toolbar/widgets/FontSizeWidget.js +12 -2
  60. package/es/core/editor/components/Toolbar/widgets/FontStyleButton.js +82 -33
  61. package/es/core/editor/components/Toolbar/widgets/HistoryRedoButton.js +3 -2
  62. package/es/core/editor/components/Toolbar/widgets/HistoryUndoButton.js +5 -4
  63. package/es/core/editor/components/Toolbar/widgets/IconSelect/IconSelect.js +109 -0
  64. package/es/core/editor/components/Toolbar/widgets/IconSelect/constant.js +64 -0
  65. package/es/core/editor/components/Toolbar/widgets/IconSelect/index.js +101 -0
  66. package/es/core/editor/components/Toolbar/widgets/IconSelect/index.module.scss +153 -0
  67. package/es/core/editor/components/Toolbar/widgets/IconSelect/popUpContent.js +49 -0
  68. package/es/core/editor/components/Toolbar/widgets/Layout/components/LayoutSettings.js +99 -0
  69. package/es/core/editor/components/Toolbar/widgets/Layout/components/LayoutSettings.module.scss +70 -0
  70. package/es/core/editor/components/Toolbar/widgets/Layout/components/LayoutTagImageSelect/index.js +42 -0
  71. package/es/core/editor/components/Toolbar/widgets/Layout/components/LayoutTagImageSelect/index.module.scss +7 -0
  72. package/es/core/editor/components/Toolbar/widgets/Layout/components/LayoutTagSelect/index.js +75 -0
  73. package/es/core/editor/components/Toolbar/widgets/Layout/components/LayoutTagSelect/index.scss +32 -0
  74. package/es/core/editor/components/Toolbar/widgets/Layout/components/LayoutTemplateButton/Icon.js +23 -0
  75. package/es/core/editor/components/Toolbar/widgets/Layout/components/LayoutTemplateButton/assets/index.js +10 -0
  76. package/es/core/editor/components/Toolbar/widgets/Layout/components/LayoutTemplateButton/assets/topo_layout_circular.svg +10 -0
  77. package/es/core/editor/components/Toolbar/widgets/Layout/components/LayoutTemplateButton/assets/topo_layout_hierarchical.svg +10 -0
  78. package/es/core/editor/components/Toolbar/widgets/Layout/components/LayoutTemplateButton/assets/topo_layout_rectangle.svg +12 -0
  79. package/es/core/editor/components/Toolbar/widgets/Layout/components/LayoutTemplateButton/assets/topo_layout_toward.svg +16 -0
  80. package/es/core/editor/components/Toolbar/widgets/Layout/components/LayoutTemplateButton/index.js +31 -0
  81. package/es/core/editor/components/Toolbar/widgets/Layout/components/LayoutTemplateButton/index.module.scss +53 -0
  82. package/es/core/editor/components/Toolbar/widgets/Layout/index.js +128 -15
  83. package/es/core/editor/components/Toolbar/widgets/NodeAlignWidget.js +110 -22
  84. package/es/core/editor/components/Toolbar/widgets/NodeAlignWidget.module.scss +28 -0
  85. package/es/core/editor/components/Toolbar/widgets/NodeImageButton/BoxBackgroundSetting.js +15 -5
  86. package/es/core/editor/components/Toolbar/widgets/NodeImageButton/NodeImageButton.js +41 -7
  87. package/es/core/editor/components/Toolbar/widgets/NodeSizeButton/NodeSizeButton.js +97 -13
  88. package/es/core/editor/components/Toolbar/widgets/NodeSizeButton/NodeSizeButton.module.scss +28 -0
  89. package/es/core/editor/components/Toolbar/widgets/WidgetBox.js +15 -22
  90. package/es/core/editor/components/Toolbar/widgets/WidgetBox.module.scss +11 -1
  91. package/es/core/editor/components/Toolbar/widgets/components/ButtonBox.js +4 -2
  92. package/es/core/editor/components/Toolbar/widgets/components/DropdownButton.js +17 -1
  93. package/es/core/editor/components/Toolbar/widgets/components/DropdownMenu.js +8 -5
  94. package/es/core/editor/components/settings/CloseablePanel.js +33 -0
  95. package/es/core/editor/components/settings/CloseablePanel.module.scss +9 -0
  96. package/es/core/editor/components/settings/OpenPropertyPanelListener.js +33 -0
  97. package/es/core/editor/components/settings/PropertyView.js +26 -11
  98. package/es/core/editor/components/settings/Settings.js +4 -44
  99. package/es/core/editor/components/settings/Settings.module.scss +8 -4
  100. package/es/core/editor/components/settings/common/AlignSetting/AlignTypeList.js +76 -0
  101. package/es/core/editor/components/settings/common/AlignSetting/index.js +20 -72
  102. package/es/core/editor/components/settings/common/LineType/index.js +12 -119
  103. package/es/core/editor/components/settings/common/NodeSizeInput/NodeSizeInput.js +3 -3
  104. package/es/core/editor/components/settings/common/SizeInput/NodeSizeInput.js +31 -21
  105. package/es/core/editor/components/settings/common/SizeInput/NodeSizeNumberPicker.js +7 -6
  106. package/es/core/editor/components/settings/propertyViews/edge/CommonEdgePropertyView.js +7 -1
  107. package/es/core/editor/components/settings/propertyViews/group/SettingTab/GroupExpandSetting.js +0 -8
  108. package/es/core/editor/components/settings/propertyViews/multipleElements/BatchSetNodeSize/BatchSetNodeSize.js +8 -9
  109. package/es/core/editor/components/settings/propertyViews/multipleElements/MultipleElementLineType.js +5 -42
  110. package/es/core/editor/components/settings/propertyViews/multipleElements/MultipleElementPropertyView.js +2 -15
  111. package/es/core/editor/components/settings/propertyViews/view/BatchSetNodeSize.js +9 -6
  112. package/es/core/editor/components/titlebar/TopoEditorTitleBar.js +8 -4
  113. package/es/core/editor/hooks/useKeyboardShortcut.js +42 -0
  114. package/es/core/{store/models → editor/store}/background.js +0 -0
  115. package/es/core/{store/models → editor/store}/historyManager.js +0 -0
  116. package/es/core/editor/store/topoEdit.js +49 -0
  117. package/es/core/editor/utils/edgeTypeStyleUtil.js +96 -0
  118. package/es/core/editor/utils/textStyleUtil.js +0 -0
  119. package/es/core/hooks/useCanvasTheme.js +35 -0
  120. package/es/core/hooks/usePolling.js +2 -5
  121. package/es/core/hooks/useTopoEdit.js +38 -58
  122. package/es/core/models/Alarm.js +2 -2
  123. package/es/core/models/AttributeMetricDisplay.js +4 -0
  124. package/es/core/models/HistoryManager.js +10 -3
  125. package/es/core/models/SelectionManager.js +16 -1
  126. package/es/core/models/TopoApp.js +1 -1
  127. package/es/core/models/TopoGraphView.js +8 -2
  128. package/es/core/models/utils/linkUtils.js +1 -1
  129. package/es/core/store/coreModels.js +6 -7
  130. package/es/core/store/models/selection.js +2 -1
  131. package/es/core/store/models/topoBizMod.js +0 -3
  132. package/es/core/store/models/topoMod.js +26 -28
  133. package/es/core/viewer/components/plugins/ResourceDetail/components/WebConsole/WebConsoleForm/WebConsoleForm.js +13 -29
  134. package/es/core/viewer/components/plugins/ResourceDetail/components/WebConsole/WebConsoleForm/hooks/useWebConsole.js +6 -5
  135. package/es/core/viewer/components/titlebar/widgets/SettingButton.js +3 -1
  136. package/es/core/viewer/components/titlebar/widgets/SettingButtonWidget.js +4 -2
  137. package/es/networkTopo/createTopo.js +2 -0
  138. package/es/networkTopo/services/link.js +2 -2
  139. package/es/networkTopo/store/topoTreeMod.js +6 -7
  140. package/es/style.js +1 -0
  141. package/es/utils/htElementUtils.js +3 -0
  142. package/es/utils/topoData.js +1 -0
  143. package/lib/components/ColorPanel/components/ColorBlock/index.js +47 -0
  144. package/lib/components/ColorPanel/components/ColorBlock/index.module.scss +8 -0
  145. package/lib/components/ColorPanel/components/FontColorRange/index.js +49 -0
  146. package/lib/components/ColorPanel/components/FontColorRange/index.module.scss +23 -0
  147. package/lib/components/ColorPanel/index.js +255 -0
  148. package/lib/components/ColorPanel/index.module.scss +34 -0
  149. package/lib/components/VerticalIconTab/VerticalIconTab.module.scss +5 -1
  150. package/lib/components/collapse/Collapse.js +28 -3
  151. package/lib/components/collapse/Collapse.module.scss +23 -0
  152. package/lib/components/collapse/index.js +11 -0
  153. package/lib/core/common/hooks/useHtElements.js +27 -0
  154. package/lib/core/common/icons/icon.js +48 -0
  155. package/lib/core/common/icons/useIcons.js +10 -15
  156. package/lib/core/components/AlarmListPanel/components/AlarmListItem.js +14 -13
  157. package/lib/core/components/AlarmListPanel/components/index.module.scss +5 -5
  158. package/lib/core/components/DisplaySettingDrawer/DisplaySetting.js +2 -1
  159. package/lib/core/components/DisplaySettingDrawer/DisplaySettingDrawer.js +7 -2
  160. package/lib/core/components/DisplaySettingDrawer/EditorDisplaySetting.js +147 -0
  161. package/lib/core/components/DisplaySettingDrawer/LineExpandAllRadioGroup.js +0 -3
  162. package/lib/core/components/DisplaySettingDrawer/hooks/useDisplaySetting.js +76 -19
  163. package/lib/core/components/TopoView/GraphViewPanel.js +30 -0
  164. package/lib/core/components/TopoView/editor.module.scss +1 -0
  165. package/lib/core/components/TopoView/topoView.js +32 -50
  166. package/lib/core/components/titlebar/TitleBar.module.scss +1 -1
  167. package/lib/core/editor/components/EditorPlugin.js +3 -1
  168. package/lib/core/editor/components/Sidebar/Sidebar.js +40 -53
  169. package/lib/core/editor/components/Sidebar/panes.js +45 -0
  170. package/lib/core/editor/components/Sidebar/views/CanvasPanel/CanvasPanel.js +108 -0
  171. package/lib/core/editor/components/Sidebar/views/CanvasPanel/CanvasPanel.module.scss +74 -0
  172. package/lib/core/editor/components/Sidebar/views/CanvasPanel/index.js +2 -2
  173. package/lib/core/editor/components/Sidebar/views/ImagePanel/CiTypeImagePanel.js +1 -1
  174. package/lib/core/editor/components/Sidebar/views/ImagePanel/HtCustomImagePanel.js +2 -5
  175. package/lib/core/editor/components/Sidebar/views/ImagePanel/HtImagePalette.js +4 -4
  176. package/lib/core/editor/components/Sidebar/views/ImagePanel/HtImagePalette.module.scss +5 -0
  177. package/lib/core/editor/components/Sidebar/views/ImagePanel/ImagePanel.js +29 -11
  178. package/lib/core/editor/components/Toolbar/EditorToolbar.js +22 -11
  179. package/lib/core/editor/components/Toolbar/Toolbar.js +1 -1
  180. package/lib/core/editor/components/Toolbar/Toolbar.module.scss +14 -3
  181. package/lib/core/editor/components/Toolbar/buttons.js +22 -20
  182. package/lib/core/editor/components/Toolbar/hooks/useFontStyleSetting.js +64 -0
  183. package/lib/core/editor/components/Toolbar/widgets/AddResourceButton.js +8 -7
  184. package/lib/core/editor/components/Toolbar/widgets/CanvasMoveWidget.js +13 -2
  185. package/lib/core/editor/components/Toolbar/widgets/CanvasSelectWidget.js +11 -2
  186. package/lib/core/editor/components/Toolbar/widgets/EdgeColorButton/Content.js +38 -2
  187. package/lib/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +98 -5
  188. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/EdgeType.js +194 -3
  189. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/EdgeType.module.scss +44 -0
  190. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +71 -0
  191. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.module.scss +31 -0
  192. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/constants.js +83 -0
  193. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/index.js +76 -5
  194. package/lib/core/editor/components/Toolbar/widgets/FontColorButton.js +44 -4
  195. package/lib/core/editor/components/Toolbar/widgets/FontColorButton.module.scss +35 -0
  196. package/lib/core/editor/components/Toolbar/widgets/FontFamilyWidget.js +13 -2
  197. package/lib/core/editor/components/Toolbar/widgets/FontSizeWidget.js +13 -2
  198. package/lib/core/editor/components/Toolbar/widgets/FontStyleButton.js +88 -33
  199. package/lib/core/editor/components/Toolbar/widgets/HistoryRedoButton.js +4 -2
  200. package/lib/core/editor/components/Toolbar/widgets/HistoryUndoButton.js +5 -3
  201. package/lib/core/editor/components/Toolbar/widgets/IconSelect/IconSelect.js +126 -0
  202. package/lib/core/editor/components/Toolbar/widgets/IconSelect/constant.js +69 -0
  203. package/lib/core/editor/components/Toolbar/widgets/IconSelect/index.js +117 -0
  204. package/lib/core/editor/components/Toolbar/widgets/IconSelect/index.module.scss +153 -0
  205. package/lib/core/editor/components/Toolbar/widgets/IconSelect/popUpContent.js +61 -0
  206. package/lib/core/editor/components/Toolbar/widgets/Layout/components/LayoutSettings.js +116 -0
  207. package/lib/core/editor/components/Toolbar/widgets/Layout/components/LayoutSettings.module.scss +70 -0
  208. package/lib/core/editor/components/Toolbar/widgets/Layout/components/LayoutTagImageSelect/index.js +55 -0
  209. package/lib/core/editor/components/Toolbar/widgets/Layout/components/LayoutTagImageSelect/index.module.scss +7 -0
  210. package/lib/core/editor/components/Toolbar/widgets/Layout/components/LayoutTagSelect/index.js +93 -0
  211. package/lib/core/editor/components/Toolbar/widgets/Layout/components/LayoutTagSelect/index.scss +32 -0
  212. package/lib/core/editor/components/Toolbar/widgets/Layout/components/LayoutTemplateButton/Icon.js +32 -0
  213. package/lib/core/editor/components/Toolbar/widgets/Layout/components/LayoutTemplateButton/assets/index.js +22 -0
  214. package/lib/core/editor/components/Toolbar/widgets/Layout/components/LayoutTemplateButton/assets/topo_layout_circular.svg +10 -0
  215. package/lib/core/editor/components/Toolbar/widgets/Layout/components/LayoutTemplateButton/assets/topo_layout_hierarchical.svg +10 -0
  216. package/lib/core/editor/components/Toolbar/widgets/Layout/components/LayoutTemplateButton/assets/topo_layout_rectangle.svg +12 -0
  217. package/lib/core/editor/components/Toolbar/widgets/Layout/components/LayoutTemplateButton/assets/topo_layout_toward.svg +16 -0
  218. package/lib/core/editor/components/Toolbar/widgets/Layout/components/LayoutTemplateButton/index.js +44 -0
  219. package/lib/core/editor/components/Toolbar/widgets/Layout/components/LayoutTemplateButton/index.module.scss +53 -0
  220. package/lib/core/editor/components/Toolbar/widgets/Layout/index.js +133 -16
  221. package/lib/core/editor/components/Toolbar/widgets/NodeAlignWidget.js +113 -22
  222. package/lib/core/editor/components/Toolbar/widgets/NodeAlignWidget.module.scss +28 -0
  223. package/lib/core/editor/components/Toolbar/widgets/NodeImageButton/BoxBackgroundSetting.js +21 -5
  224. package/lib/core/editor/components/Toolbar/widgets/NodeImageButton/NodeImageButton.js +41 -6
  225. package/lib/core/editor/components/Toolbar/widgets/NodeSizeButton/NodeSizeButton.js +98 -12
  226. package/lib/core/editor/components/Toolbar/widgets/NodeSizeButton/NodeSizeButton.module.scss +28 -0
  227. package/lib/core/editor/components/Toolbar/widgets/WidgetBox.js +16 -22
  228. package/lib/core/editor/components/Toolbar/widgets/WidgetBox.module.scss +11 -1
  229. package/lib/core/editor/components/Toolbar/widgets/components/ButtonBox.js +4 -2
  230. package/lib/core/editor/components/Toolbar/widgets/components/DropdownButton.js +16 -1
  231. package/lib/core/editor/components/Toolbar/widgets/components/DropdownMenu.js +10 -5
  232. package/lib/core/editor/components/settings/CloseablePanel.js +46 -0
  233. package/lib/core/editor/components/settings/CloseablePanel.module.scss +9 -0
  234. package/lib/core/editor/components/settings/OpenPropertyPanelListener.js +43 -0
  235. package/lib/core/editor/components/settings/PropertyView.js +29 -11
  236. package/lib/core/editor/components/settings/Settings.js +4 -44
  237. package/lib/core/editor/components/settings/Settings.module.scss +8 -4
  238. package/lib/core/editor/components/settings/common/AlignSetting/AlignTypeList.js +93 -0
  239. package/lib/core/editor/components/settings/common/AlignSetting/index.js +21 -80
  240. package/lib/core/editor/components/settings/common/LineType/index.js +13 -126
  241. package/lib/core/editor/components/settings/common/NodeSizeInput/NodeSizeInput.js +2 -2
  242. package/lib/core/editor/components/settings/common/SizeInput/NodeSizeInput.js +32 -23
  243. package/lib/core/editor/components/settings/common/SizeInput/NodeSizeNumberPicker.js +6 -6
  244. package/lib/core/editor/components/settings/propertyViews/edge/CommonEdgePropertyView.js +7 -1
  245. package/lib/core/editor/components/settings/propertyViews/group/SettingTab/GroupExpandSetting.js +0 -8
  246. package/lib/core/editor/components/settings/propertyViews/multipleElements/BatchSetNodeSize/BatchSetNodeSize.js +6 -8
  247. package/lib/core/editor/components/settings/propertyViews/multipleElements/MultipleElementLineType.js +5 -42
  248. package/lib/core/editor/components/settings/propertyViews/multipleElements/MultipleElementPropertyView.js +2 -15
  249. package/lib/core/editor/components/settings/propertyViews/view/BatchSetNodeSize.js +7 -5
  250. package/lib/core/editor/components/titlebar/TopoEditorTitleBar.js +9 -1
  251. package/lib/core/editor/hooks/useKeyboardShortcut.js +52 -0
  252. package/lib/core/{store/models → editor/store}/background.js +0 -0
  253. package/lib/core/{store/models → editor/store}/historyManager.js +0 -0
  254. package/lib/core/editor/store/topoEdit.js +59 -0
  255. package/lib/core/editor/utils/edgeTypeStyleUtil.js +109 -0
  256. package/lib/core/editor/utils/textStyleUtil.js +1 -0
  257. package/lib/core/hooks/useCanvasTheme.js +49 -0
  258. package/lib/core/hooks/usePolling.js +2 -5
  259. package/lib/core/hooks/useTopoEdit.js +39 -60
  260. package/lib/core/models/Alarm.js +2 -2
  261. package/lib/core/models/AttributeMetricDisplay.js +4 -0
  262. package/lib/core/models/HistoryManager.js +10 -3
  263. package/lib/core/models/SelectionManager.js +17 -1
  264. package/lib/core/models/TopoApp.js +1 -1
  265. package/lib/core/models/TopoGraphView.js +8 -2
  266. package/lib/core/models/utils/linkUtils.js +1 -1
  267. package/lib/core/store/coreModels.js +5 -7
  268. package/lib/core/store/models/selection.js +2 -1
  269. package/lib/core/store/models/topoBizMod.js +0 -3
  270. package/lib/core/store/models/topoMod.js +27 -29
  271. package/lib/core/viewer/components/plugins/ResourceDetail/components/WebConsole/WebConsoleForm/WebConsoleForm.js +13 -29
  272. package/lib/core/viewer/components/plugins/ResourceDetail/components/WebConsole/WebConsoleForm/hooks/useWebConsole.js +6 -5
  273. package/lib/core/viewer/components/titlebar/widgets/SettingButton.js +3 -1
  274. package/lib/core/viewer/components/titlebar/widgets/SettingButtonWidget.js +4 -2
  275. package/lib/networkTopo/createTopo.js +3 -0
  276. package/lib/networkTopo/services/link.js +2 -2
  277. package/lib/networkTopo/store/topoTreeMod.js +6 -8
  278. package/lib/style.js +1 -0
  279. package/lib/utils/htElementUtils.js +5 -0
  280. package/lib/utils/topoData.js +1 -0
  281. package/package.json +4 -4
  282. package/es/core/editor/components/Sidebar/views/CanvasPanel/ImagePanel.js +0 -4
  283. package/es/core/store/models/topoEdit.js +0 -39
  284. package/es/core/store/models/topoView.js +0 -36
  285. package/lib/core/editor/components/Sidebar/views/CanvasPanel/ImagePanel.js +0 -12
  286. package/lib/core/store/models/topoEdit.js +0 -51
  287. package/lib/core/store/models/topoView.js +0 -47
@@ -0,0 +1,101 @@
1
+ import React, { useState, useEffect, useImperativeHandle } from 'react';
2
+ import styles from "./index.module.scss";
3
+ import PopUpContent from "./popUpContent";
4
+
5
+ var TopoIconSelect = function TopoIconSelect(props, ref) {
6
+ // 传入参数
7
+ var value = props.value,
8
+ iconList = props.iconList,
9
+ onChange = props.onChange;
10
+
11
+ var _useState = useState(value),
12
+ valueData = _useState[0],
13
+ setValue = _useState[1];
14
+
15
+ var _useState2 = useState(),
16
+ selectItem = _useState2[0],
17
+ setSelect = _useState2[1];
18
+
19
+ var _useState3 = useState(false),
20
+ visible = _useState3[0],
21
+ setVisible = _useState3[1];
22
+
23
+ useEffect(function () {
24
+ if (value) {
25
+ for (var i = 0; i < iconList.length; i++) {
26
+ var icons = iconList[i].icons;
27
+ var flag = false;
28
+
29
+ for (var m = 0; m < icons.length; m++) {
30
+ if (value === icons[m].id) {
31
+ flag = true;
32
+ setSelect(icons[m]);
33
+ break;
34
+ }
35
+ }
36
+
37
+ if (flag) {
38
+ break;
39
+ }
40
+ }
41
+ }
42
+ }, [value]);
43
+ useImperativeHandle(ref, function () {
44
+ return {
45
+ getSelectData: getSelectData
46
+ };
47
+ });
48
+
49
+ var handleChange = function handleChange(v) {
50
+ console.log('handleChange: ', v);
51
+
52
+ if (typeof onChange === 'function') {
53
+ onChange(v.id);
54
+ }
55
+
56
+ setSelect(v);
57
+ setValue(v.id);
58
+ setVisible(false);
59
+ };
60
+
61
+ var getSelectData = function getSelectData() {
62
+ return valueData;
63
+ };
64
+
65
+ var valueRender = function valueRender(v) {
66
+ return selectItem ? /*#__PURE__*/React.createElement("span", {
67
+ className: styles.selected
68
+ }, /*#__PURE__*/React.createElement("div", {
69
+ className: styles.iconImgWrapper
70
+ }, /*#__PURE__*/React.createElement("img", {
71
+ className: styles.iconImg,
72
+ alt: "",
73
+ src: selectItem === null || selectItem === void 0 ? void 0 : selectItem.url
74
+ })), /*#__PURE__*/React.createElement("span", {
75
+ className: styles.icontitle
76
+ }, selectItem === null || selectItem === void 0 ? void 0 : selectItem.name)) : null;
77
+ };
78
+
79
+ var onVisibleChange = function onVisibleChange(v) {
80
+ setVisible(v);
81
+ };
82
+
83
+ var popupContent = /*#__PURE__*/React.createElement(PopUpContent, {
84
+ iconList: iconList,
85
+ selectedId: selectItem === null || selectItem === void 0 ? void 0 : selectItem.id,
86
+ onChange: handleChange
87
+ });
88
+ var popupProps = {
89
+ triggerClickKeycode: [13, 32, 40] // space, enter, down-arrow
90
+
91
+ };
92
+ return /*#__PURE__*/React.createElement("div", {
93
+ className: styles.TopoIconSelect
94
+ }, /*#__PURE__*/React.createElement(PopUpContent, {
95
+ iconList: iconList,
96
+ selectedId: selectItem === null || selectItem === void 0 ? void 0 : selectItem.id,
97
+ onChange: handleChange
98
+ }));
99
+ };
100
+
101
+ export default /*#__PURE__*/React.forwardRef(TopoIconSelect);
@@ -0,0 +1,153 @@
1
+ @import "@alifd/next/variables";
2
+
3
+ .TopoIconSelect {
4
+
5
+
6
+ .iconSelect {}
7
+
8
+
9
+
10
+ }
11
+
12
+ .iconCollapse {
13
+ width: 240px;
14
+ max-height: 218px;
15
+ overflow-y: auto;
16
+ border: none;
17
+
18
+ :global {
19
+ .#{$css-prefix}collapse-panel-expanded {
20
+ .#{$css-prefix}collapse-panel-content {
21
+ padding: 0px 0px 5px 0px;
22
+ }
23
+ }
24
+
25
+ .#{$css-prefix}collapse-panel {
26
+ border-top: none;
27
+ background-color: #FFF;
28
+ }
29
+
30
+ .#{$css-prefix}collapse-panel-title {
31
+ background: none;
32
+ font-size: 12px;
33
+ font-family: PingFangSC-Medium, PingFang SC;
34
+ font-weight: 500;
35
+ color: #4D6277;
36
+ line-height: 17px;
37
+ }
38
+
39
+ .#{$css-prefix}collapse-panel:not(:first-child) {
40
+ border-top: none;
41
+ }
42
+
43
+ .#{$css-prefix}collapse-panel-content {
44
+ padding: 0px 0px 5px 0px;
45
+ }
46
+ }
47
+ }
48
+
49
+ .iconSelect {
50
+ width: 100%;
51
+
52
+ .selected {
53
+ height: 26px;
54
+ display: block;
55
+
56
+ .iconImgWrapper {
57
+ display: inline-block;
58
+ width: 18px;
59
+ height: 18px;
60
+ line-height: 18px;
61
+ text-align: center;
62
+ // vertical-align: middle;
63
+ }
64
+
65
+ .iconImg {
66
+ display: inline-block;
67
+ width: auto;
68
+ height: auto;
69
+ max-width: 18px;
70
+ max-height: 18px;
71
+ vertical-align: middle;
72
+ }
73
+
74
+ .icontitle {
75
+ text-align: left;
76
+ vertical-align: top;
77
+ display: inline-block;
78
+ font-size: 12px;
79
+ font-family: PingFangSC-Regular, PingFang SC;
80
+ font-weight: 400;
81
+ color: #4D6277;
82
+ //margin-top: 2px;
83
+ line-height: 26px;
84
+ margin-left: 7px;
85
+ }
86
+
87
+ :global {
88
+ .#{$css-prefix}tag {
89
+ background: none;
90
+ }
91
+ }
92
+ }
93
+ }
94
+
95
+
96
+
97
+ .collPanel {
98
+ padding: 5px;
99
+ }
100
+
101
+
102
+
103
+
104
+ .iconli {
105
+ width: 52px;
106
+ height: 68px;
107
+ text-align: center;
108
+ //border: 2px solid #FFF;
109
+ overflow: hidden;
110
+ cursor: pointer;
111
+
112
+ .iconImgWrapper {
113
+ width: 32px;
114
+ height: 32px;
115
+ line-height: 32px;
116
+ text-align: center;
117
+ margin: 5px 8px 5px 8px;
118
+ }
119
+
120
+ .iconImg {
121
+ display: inline-block;
122
+ width: auto;
123
+ height: auto;
124
+ max-width: 32px;
125
+ max-height: 32px;
126
+ vertical-align: middle;
127
+ }
128
+
129
+ .icontitle {
130
+ width: 48px;
131
+ max-width: 50px;
132
+ text-align: center;
133
+ font-size: 12px;
134
+ -webkit-text-size-adjust: none;
135
+ display: block;
136
+ white-space: nowrap;
137
+ text-overflow: ellipsis;
138
+ overflow: hidden;
139
+ font-family: PingFangSC-Regular, PingFang SC;
140
+ font-weight: 400;
141
+ color: #4D6277;
142
+ line-height: 11px;
143
+ }
144
+
145
+
146
+ // float: left;
147
+ }
148
+
149
+ .selectedTag {
150
+ border-radius: 4px;
151
+ // border: 2px solid #4C89FF;
152
+ background-color: #F2F7FD;
153
+ }
@@ -0,0 +1,49 @@
1
+ import _Box from "@alifd/next/es/box";
2
+ import _Collapse from "@alifd/next/es/collapse";
3
+ import React from 'react';
4
+ import styles from "./index.module.scss";
5
+ var Panel = _Collapse.Panel;
6
+
7
+ function PopUpContent(props) {
8
+ var iconList = props.iconList,
9
+ onChange = props.onChange,
10
+ selectedId = props.selectedId;
11
+
12
+ var itemOnClick = function itemOnClick(e) {
13
+ onChange(e);
14
+ };
15
+
16
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Collapse, {
17
+ className: styles.iconCollapse
18
+ }, iconList.map(function (item, index) {
19
+ return /*#__PURE__*/React.createElement(Panel, {
20
+ title: item.name,
21
+ key: index,
22
+ className: styles.collPanel
23
+ }, /*#__PURE__*/React.createElement(_Box, {
24
+ spacing: 4,
25
+ direction: "row",
26
+ wrap: true
27
+ }, item.icons.map(function (icon, idx) {
28
+ return /*#__PURE__*/React.createElement("div", {
29
+ key: idx,
30
+ className: styles.iconli + " " + (selectedId === icon.id ? styles.selectedTag : ''),
31
+ onClick: function onClick() {
32
+ itemOnClick(icon);
33
+ },
34
+ title: icon.name
35
+ }, /*#__PURE__*/React.createElement("div", {
36
+ className: styles.iconImgWrapper
37
+ }, /*#__PURE__*/React.createElement("img", {
38
+ className: styles.iconImg,
39
+ alt: "",
40
+ src: icon.url,
41
+ size: "xxl"
42
+ })), /*#__PURE__*/React.createElement("span", {
43
+ className: styles.icontitle
44
+ }, icon.name));
45
+ })));
46
+ })));
47
+ }
48
+
49
+ export default PopUpContent;
@@ -0,0 +1,99 @@
1
+ import _Form from "@alifd/next/es/form";
2
+ import _Radio from "@alifd/next/es/radio";
3
+ import React, { useState, useEffect } from 'react';
4
+ import TemplateGroup from "./LayoutTagImageSelect";
5
+ import styles from "./LayoutSettings.module.scss";
6
+ var LAYOUTS = {
7
+ circular: '星型布局',
8
+ hierarchical: '均衡布局',
9
+ toward: '树形布局',
10
+ rectangle: '分层排布'
11
+ };
12
+ var TREE_LAYOUT_OPTIONS = [{
13
+ value: 'east',
14
+ label: '横向'
15
+ }, {
16
+ value: 'south',
17
+ label: '纵向'
18
+ }];
19
+
20
+ var LayoutSettings = function LayoutSettings(props) {
21
+ var _props$layout = props.layout,
22
+ layout = _props$layout === void 0 ? {} : _props$layout,
23
+ onChange = props.onChange,
24
+ regionId = props.regionId,
25
+ size = props.size,
26
+ disabled = props.disabled;
27
+ var layoutId = layout.id,
28
+ layoutOptions = layout.options; // const [value, setValue] = useState();
29
+
30
+ var handleChange = function handleChange(data) {
31
+ onChange && onChange(data);
32
+ };
33
+
34
+ var onLayoutSelect = function onLayoutSelect(id) {
35
+ // console.log("onLayoutSelect", id, layout, value);
36
+ var options;
37
+
38
+ if (id === 'toward') {
39
+ options = {
40
+ subId: TREE_LAYOUT_OPTIONS[0].value
41
+ };
42
+ } // setValue(id);
43
+
44
+
45
+ handleChange({
46
+ id: id,
47
+ options: options
48
+ });
49
+ };
50
+
51
+ var layoutGroup = Object.keys(LAYOUTS).map(function (id) {
52
+ return {
53
+ id: id,
54
+ name: LAYOUTS[id],
55
+ icon: "layout_" + id,
56
+ selected: layoutId === id
57
+ };
58
+ });
59
+ return /*#__PURE__*/React.createElement("div", {
60
+ className: styles['layout-setting-template-group']
61
+ }, /*#__PURE__*/React.createElement(TemplateGroup, {
62
+ dataSource: layoutGroup,
63
+ value: layoutId,
64
+ size: size,
65
+ disabled: disabled,
66
+ onChange: onLayoutSelect,
67
+ boxProps: {
68
+ spacing: 12,
69
+ className: styles.tagBox
70
+ },
71
+ tagProps: {
72
+ className: styles.tag,
73
+ style: {
74
+ background: '#FFF'
75
+ },
76
+ type: 'primary'
77
+ },
78
+ itemProps: {
79
+ className: styles.card,
80
+ iconClassName: styles.icon,
81
+ textClassName: styles.text
82
+ }
83
+ }), layoutId === 'toward' ? /*#__PURE__*/React.createElement(_Form.Item, {
84
+ label: "\u5E03\u5C40\u65B9\u5411"
85
+ }, /*#__PURE__*/React.createElement(_Radio.Group, {
86
+ dataSource: TREE_LAYOUT_OPTIONS,
87
+ defaultValue: layoutOptions.subId || TREE_LAYOUT_OPTIONS[0].value,
88
+ onChange: function onChange(subId) {
89
+ return handleChange({
90
+ id: layoutId,
91
+ options: {
92
+ subId: subId
93
+ }
94
+ });
95
+ }
96
+ })) : null);
97
+ };
98
+
99
+ export default LayoutSettings;
@@ -0,0 +1,70 @@
1
+ @import "@alifd/next/variables";
2
+ @import '@alifd/next/reset.scss';
3
+
4
+ .label {
5
+ margin: 0 10px;
6
+ }
7
+
8
+ .tagBox {
9
+ color: #4D6277;
10
+
11
+
12
+ :global {
13
+ .checked {
14
+ // border: 2px solid $color-brand1-5 !important;
15
+ color: #4D6277 !important;
16
+ border-color: #fff !important;
17
+ background:#F2F7FD !important;
18
+ }
19
+ }
20
+ }
21
+
22
+ .tag {
23
+ // border: 2px solid $color-gitfill1-1 !important;
24
+ border-color: #fff !important;
25
+ color: #4D6277;
26
+
27
+ &:hover {
28
+ background-color: $color-brand1-1 !important;
29
+ border-color: #fff !important;
30
+ // border: 2px solid #FFFFFF;
31
+ }
32
+
33
+ &:active {
34
+ background-color: rgba(76, 137, 255, 0.1) !important;
35
+ border-color: #fff !important;
36
+ // border: 2px solid $color-brand1-5 !important;
37
+ color: $color-fill1-1;
38
+ }
39
+ }
40
+
41
+ .card {
42
+ display: flex;
43
+ flex-direction: column;
44
+ width: 64px;
45
+ height: 76px;
46
+ border: none;
47
+ padding-top: 12px;
48
+ cursor: pointer;
49
+
50
+ &:hover {
51
+ background-color: $color-brand1-1;
52
+ }
53
+
54
+ &:active {
55
+ background-color: rgba(76, 137, 255, 0.1);
56
+ }
57
+ }
58
+
59
+ .icon {
60
+ width: 30px;
61
+ }
62
+
63
+ .text {
64
+ height: 12px;
65
+ line-height: 12px;
66
+ font-size: 12px;
67
+ margin-top: 8px;
68
+ color: $color-text1-3;
69
+ outline: none;
70
+ }
@@ -0,0 +1,42 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
3
+ var _excluded = ["dataSource", "onChange", "size", "boxProps", "tagProps", "itemProps", "ItemComponent", "disabled", "value"];
4
+ import React from 'react';
5
+ import TemplateButton from "../LayoutTemplateButton";
6
+ import TagSelect from "../LayoutTagSelect";
7
+ import styles from "./index.module.scss";
8
+
9
+ var TagImageSelect = function TagImageSelect(props) {
10
+ var dataSource = props.dataSource,
11
+ onChange = props.onChange,
12
+ size = props.size,
13
+ boxProps = props.boxProps,
14
+ tagProps = props.tagProps,
15
+ itemProps = props.itemProps,
16
+ ItemComponent = props.ItemComponent,
17
+ disabled = props.disabled,
18
+ value = props.value,
19
+ otherProps = _objectWithoutPropertiesLoose(props, _excluded);
20
+
21
+ var Item = ItemComponent || TemplateButton;
22
+ return /*#__PURE__*/React.createElement(TagSelect, _extends({}, otherProps, {
23
+ onChange: onChange,
24
+ className: styles.tagSelect,
25
+ value: value,
26
+ disabled: disabled,
27
+ dataSource: dataSource.map(function (item) {
28
+ return {
29
+ key: item.id,
30
+ content: /*#__PURE__*/React.createElement(Item, _extends({
31
+ key: item.id
32
+ }, item, {
33
+ size: size
34
+ }, itemProps), item.name)
35
+ };
36
+ }),
37
+ boxProps: boxProps,
38
+ tagProps: tagProps
39
+ }));
40
+ };
41
+
42
+ export default TagImageSelect;
@@ -0,0 +1,7 @@
1
+ .name {
2
+ margin: 20px 0 0 10px;
3
+ }
4
+
5
+ .tagSelect {
6
+ border: none;
7
+ }
@@ -0,0 +1,75 @@
1
+ import _Box from "@alifd/next/es/box";
2
+ import _extends from "@babel/runtime/helpers/extends";
3
+ import _Tag from "@alifd/next/es/tag";
4
+
5
+ /* eslint-disable eqeqeq */
6
+ import React, { useState, useEffect, forwardRef } from 'react';
7
+ import PropTypes from 'prop-types';
8
+ import "./index.scss";
9
+ import classNames from 'classnames';
10
+ var SelectableTag = _Tag.Selectable;
11
+
12
+ var TagSelect = function TagSelect(props) {
13
+ var _onChange = props.onChange,
14
+ value = props.value,
15
+ defaultValue = props.defaultValue,
16
+ dataSource = props.dataSource,
17
+ size = props.size,
18
+ disabled = props.disabled,
19
+ boxProps = props.boxProps,
20
+ tagProps = props.tagProps;
21
+
22
+ var _useState = useState(value || defaultValue),
23
+ current = _useState[0],
24
+ setCurrent = _useState[1];
25
+
26
+ useEffect(function () {
27
+ // if (value) {
28
+ // }
29
+ setCurrent(value);
30
+ }, [value]);
31
+ return /*#__PURE__*/React.createElement("div", {
32
+ className: "tag-select-wrap"
33
+ }, /*#__PURE__*/React.createElement(_Box, _extends({
34
+ spacing: 12,
35
+ wrap: true,
36
+ direction: "row"
37
+ }, boxProps), dataSource.map(function (item) {
38
+ return /*#__PURE__*/React.createElement("div", {
39
+ className: "tag-select-item",
40
+ key: "wrap-" + item.key
41
+ }, /*#__PURE__*/React.createElement(SelectableTag, _extends({
42
+ key: item.key,
43
+ checked: current === item.key // eslint-disable-next-line eqeqeq
44
+ ,
45
+ disabled: disabled(item.key),
46
+ onChange: function onChange(checked) {
47
+ _onChange && _onChange(item.key);
48
+
49
+ if (!('value' in props)) {
50
+ setCurrent(item.key);
51
+ }
52
+ }
53
+ }, tagProps), /*#__PURE__*/React.createElement("span", {
54
+ className: classNames({
55
+ 'tag-select-texts': disabled(item.key)
56
+ })
57
+ }, item.content)));
58
+ })));
59
+ };
60
+
61
+ TagSelect.propTypes = {
62
+ // eslint-disable-next-line react/require-default-props
63
+ onChange: PropTypes.func,
64
+ // eslint-disable-next-line react/require-default-props
65
+ value: PropTypes.string,
66
+ // eslint-disable-next-line react/require-default-props
67
+ defaultValue: PropTypes.string,
68
+ // eslint-disable-next-line react/require-default-props
69
+ dataSource: PropTypes.array,
70
+ boxProps: PropTypes.any
71
+ };
72
+ TagSelect.defaultProps = {
73
+ boxProps: {}
74
+ };
75
+ export default TagSelect;
@@ -0,0 +1,32 @@
1
+ /* write style here */
2
+ @import '@alifd/next/variables.scss';
3
+
4
+ .tag-select-wrap {
5
+ .tag-select-item {
6
+ text-align: -webkit-center;
7
+
8
+ .#{$css-prefix}tag {
9
+ height: auto;
10
+ line-height: 0;
11
+
12
+ &::before {
13
+ z-index: 1;
14
+ }
15
+
16
+ &::after {
17
+ z-index: 1;
18
+ }
19
+
20
+ .#{$css-prefix}tag-body {
21
+ width: 100%;
22
+ padding: 0;
23
+
24
+ .tag-select-img {}
25
+ }
26
+ .tag-select-texts{
27
+ color: #C9CED2;
28
+ opacity: 0.6;
29
+ }
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import Icons from "./assets";
3
+
4
+ var Icon = function Icon(props) {
5
+ var _props$alt = props.alt,
6
+ alt = _props$alt === void 0 ? '' : _props$alt,
7
+ img = props.img,
8
+ type = props.type,
9
+ className = props.className,
10
+ rotate = props.rotate;
11
+ var style = rotate ? {
12
+ transform: "rotate(" + rotate + "deg)"
13
+ } : null;
14
+ var src = img || Icons[type];
15
+ return /*#__PURE__*/React.createElement("img", {
16
+ className: className,
17
+ style: style,
18
+ src: src,
19
+ alt: alt
20
+ });
21
+ };
22
+
23
+ export default Icon;
@@ -0,0 +1,10 @@
1
+ import IconLayoutCircular from "./topo_layout_circular.svg";
2
+ import IconLayoutHierarchical from "./topo_layout_hierarchical.svg";
3
+ import IconLayoutToward from "./topo_layout_toward.svg";
4
+ import IconLayoutRectangle from "./topo_layout_rectangle.svg";
5
+ export default {
6
+ 'layout_rectangle': IconLayoutRectangle,
7
+ 'layout_circular': IconLayoutCircular,
8
+ 'layout_hierarchical': IconLayoutHierarchical,
9
+ 'layout_toward': IconLayoutToward
10
+ };
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="46px" height="46px" viewBox="0 0 46 46" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <!-- Generator: Sketch 63.1 (92452) - https://sketch.com -->
4
+ <title>星形布局</title>
5
+ <desc>Created with Sketch.</desc>
6
+ <g id="星形布局" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
7
+ <path d="M24,35 C26.7614237,35 29,37.2385763 29,40 C29,42.7614237 26.7614237,45 24,45 C21.2385763,45 19,42.7614237 19,40 C19,37.2385763 21.2385763,35 24,35 Z M5.7,20.75 C8.46142375,20.75 10.7,22.9885763 10.7,25.75 C10.7,28.5114237 8.46142375,30.75 5.7,30.75 C2.93857625,30.75 0.7,28.5114237 0.7,25.75 C0.7,22.9885763 2.93857625,20.75 5.7,20.75 Z M39.7,20.75 C42.4614237,20.75 44.7,22.9885763 44.7,25.75 C44.7,28.5114237 42.4614237,30.75 39.7,30.75 C36.9385763,30.75 34.7,28.5114237 34.7,25.75 C34.7,22.9885763 36.9385763,20.75 39.7,20.75 Z M12.7,1.75 C15.4614237,1.75 17.7,3.98857625 17.7,6.75 C17.7,9.51142375 15.4614237,11.75 12.7,11.75 C9.93857625,11.75 7.7,9.51142375 7.7,6.75 C7.7,3.98857625 9.93857625,1.75 12.7,1.75 Z M33.7,1.75 C36.4614237,1.75 38.7,3.98857625 38.7,6.75 C38.7,9.51142375 36.4614237,11.75 33.7,11.75 C30.9385763,11.75 28.7,9.51142375 28.7,6.75 C28.7,3.98857625 30.9385763,1.75 33.7,1.75 Z" id="形状" fill="#DAE4F0"></path>
8
+ <path d="M16.7357263,10.8944619 L21.3748996,16.8328361 C21.7316803,16.7635612 22.1002387,16.7272727 22.4772727,16.7272727 C23.3881144,16.7272727 24.2494913,16.939057 25.0148465,17.3160689 L29.9194782,11.0383855 C28.7414934,9.98544349 28,8.45431428 28,6.75 C28,3.57436269 30.5743627,1 33.75,1 C36.9256373,1 39.5,3.57436269 39.5,6.75 C39.5,9.92563731 36.9256373,12.5 33.75,12.5 C33.0015307,12.5 32.2864624,12.3569935 31.6306281,12.0968134 L26.6283721,18.498458 C27.5114744,19.4195559 28.0909999,20.6339958 28.2061533,21.9809823 L34.5845072,23.2211517 C35.5202467,21.3133843 37.4817447,20 39.75,20 C42.9256373,20 45.5,22.5743627 45.5,25.75 C45.5,28.9256373 42.9256373,31.5 39.75,31.5 C36.5743627,31.5 34,28.9256373 34,25.75 C34,25.5475907 34.0104585,25.3476242 34.0308645,25.1506112 L28.0278628,23.9839192 C27.5340506,25.8075306 26.1655187,27.2715341 24.4003971,27.8978 L24.4002399,34.0363596 C27.2697409,34.3593234 29.5,36.7942092 29.5,39.75 C29.5,42.9256373 26.9256373,45.5 23.75,45.5 C20.5743627,45.5 18,42.9256373 18,39.75 C18,37.0393437 19.8756718,34.766774 22.3999234,34.159383 L22.3996823,28.2252901 L22.256717,28.2231206 C19.7716464,28.129399 17.690226,26.4586024 16.9843891,24.1826643 L11.4788805,25.2537095 C11.4928642,25.4172811 11.5,25.5828072 11.5,25.75 C11.5,28.9256373 8.92563731,31.5 5.75,31.5 C2.57436269,31.5 3.55271368e-15,28.9256373 3.55271368e-15,25.75 C3.55271368e-15,22.5743627 2.57436269,20 5.75,20 C8.05582451,20 10.0446459,21.3572518 10.9611414,23.3164329 L16.734097,22.1946516 C16.828014,20.2542218 17.8837931,18.566218 19.4349009,17.5971737 L15.071367,12.0121621 C14.3614134,12.3258116 13.5760486,12.5 12.75,12.5 C9.57436269,12.5 7,9.92563731 7,6.75 C7,3.57436269 9.57436269,1 12.75,1 C15.9256373,1 18.5,3.57436269 18.5,6.75 C18.5,8.3781911 17.8232649,9.84832225 16.7357263,10.8944619 Z M23.75,35.75 C21.540861,35.75 19.75,37.540861 19.75,39.75 C19.75,41.959139 21.540861,43.75 23.75,43.75 C25.959139,43.75 27.75,41.959139 27.75,39.75 C27.75,37.540861 25.959139,35.75 23.75,35.75 Z M5.75,21.75 C3.540861,21.75 1.75,23.540861 1.75,25.75 C1.75,27.959139 3.540861,29.75 5.75,29.75 C7.959139,29.75 9.75,27.959139 9.75,25.75 C9.75,23.540861 7.959139,21.75 5.75,21.75 Z M39.75,21.75 C37.540861,21.75 35.75,23.540861 35.75,25.75 C35.75,27.959139 37.540861,29.75 39.75,29.75 C41.959139,29.75 43.75,27.959139 43.75,25.75 C43.75,23.540861 41.959139,21.75 39.75,21.75 Z M22.4772727,18.4772727 C20.2681337,18.4772727 18.4772727,20.2681337 18.4772727,22.4772727 C18.4772727,24.6864117 20.2681337,26.4772727 22.4772727,26.4772727 C24.6864117,26.4772727 26.4772727,24.6864117 26.4772727,22.4772727 C26.4772727,20.2681337 24.6864117,18.4772727 22.4772727,18.4772727 Z M12.75,2.75 C10.540861,2.75 8.75,4.540861 8.75,6.75 C8.75,8.959139 10.540861,10.75 12.75,10.75 C14.959139,10.75 16.75,8.959139 16.75,6.75 C16.75,4.540861 14.959139,2.75 12.75,2.75 Z M33.75,2.75 C31.540861,2.75 29.75,4.540861 29.75,6.75 C29.75,8.959139 31.540861,10.75 33.75,10.75 C35.959139,10.75 37.75,8.959139 37.75,6.75 C37.75,4.540861 35.959139,2.75 33.75,2.75 Z" id="形状" fill="#BACCE7"></path>
9
+ </g>
10
+ </svg>