bfg-common 1.6.67 → 1.6.68

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 (270) hide show
  1. package/assets/localization/local_be.json +264 -10
  2. package/assets/localization/local_en.json +283 -28
  3. package/assets/localization/local_hy.json +266 -12
  4. package/assets/localization/local_kk.json +264 -10
  5. package/assets/localization/local_ru.json +278 -24
  6. package/assets/localization/local_zh.json +265 -11
  7. package/assets/scss/common/global.scss +11 -0
  8. package/assets/scss/common/theme.scss +2 -2
  9. package/components/atoms/dropdown/dropdown/Dropdown.vue +170 -170
  10. package/components/atoms/dropdown/dropdown/lib/models/interfaces.ts +10 -10
  11. package/components/atoms/stack/StackBlock.vue +1 -1
  12. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +2 -2
  13. package/components/atoms/tooltip/TooltipError.vue +3 -0
  14. package/components/common/adapterManager/AdapterManager.vue +473 -473
  15. package/components/common/adapterManager/AdapterManagerNew.vue +86 -0
  16. package/components/common/adapterManager/AdapterManagerOld.vue +498 -498
  17. package/components/common/adapterManager/addAdapterModal/AddAdapterModal.vue +70 -70
  18. package/components/common/adapterManager/addAdapterModal/AddAdapterModalNew.vue +110 -110
  19. package/components/common/adapterManager/addAdapterModal/AddAdapterModalOld.vue +531 -531
  20. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModal.vue +32 -32
  21. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModalNew.vue +37 -38
  22. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModalOld.vue +73 -73
  23. package/components/common/adapterManager/lib/config/index.ts +19 -19
  24. package/components/common/adapterManager/noActiveAdaptersModal/NoActiveAdaptersModal.vue +31 -31
  25. package/components/common/adapterManager/noActiveAdaptersModal/NoActiveAdaptersModalNew.vue +34 -34
  26. package/components/common/adapterManager/noActiveAdaptersModal/NoActiveAdaptersModalOld.vue +57 -57
  27. package/components/common/adapterManager/noConnectedActiveAdaptersModal/NoConnectedActiveAdaptersModal.vue +31 -31
  28. package/components/common/adapterManager/noConnectedActiveAdaptersModal/NoConnectedActiveAdaptersModalNew.vue +34 -34
  29. package/components/common/adapterManager/noConnectedActiveAdaptersModal/NoConnectedActiveAdaptersModalOld.vue +57 -57
  30. package/components/common/adapterManager/ui/actions/AddAdapterButton.vue +34 -34
  31. package/components/common/adapterManager/ui/actions/RemoveAdapterButton.vue +41 -41
  32. package/components/common/adapterManager/ui/actions/VerticalSeparator.vue +10 -10
  33. package/components/common/adapterManager/ui/actions/bar/Bar.vue +2 -0
  34. package/components/common/adapterManager/ui/actions/bar/BarNew.vue +3 -2
  35. package/components/common/adapterManager/ui/actions/bar/BarOld.vue +95 -95
  36. package/components/common/adapterManager/ui/actions/moveDownAdapterButton/MoveDownAdapterButton.vue +28 -28
  37. package/components/common/adapterManager/ui/actions/moveDownAdapterButton/MoveDownAdapterButtonNew.vue +76 -76
  38. package/components/common/adapterManager/ui/actions/moveDownAdapterButton/MoveDownAdapterButtonOld.vue +33 -33
  39. package/components/common/adapterManager/ui/actions/moveUpAdapterButton/MoveUpAdapterButton.vue +28 -28
  40. package/components/common/adapterManager/ui/actions/moveUpAdapterButton/MoveUpAdapterButtonNew.vue +77 -77
  41. package/components/common/adapterManager/ui/actions/moveUpAdapterButton/MoveUpAdapterButtonOld.vue +33 -33
  42. package/components/common/adapterManager/ui/noSelectedAdapter/NoSelectedAdapter.vue +24 -24
  43. package/components/common/adapterManager/ui/noSelectedAdapter/NoSelectedAdapterNew.vue +18 -18
  44. package/components/common/adapterManager/ui/noSelectedAdapter/NoSelectedAdapterOld.vue +38 -38
  45. package/components/common/adapterManager/ui/secondTitle/SecondTitle.vue +31 -31
  46. package/components/common/adapterManager/ui/secondTitle/SecondTitleNew.vue +51 -51
  47. package/components/common/adapterManager/ui/secondTitle/SecondTitleOld.vue +35 -35
  48. package/components/common/adapterManager/ui/table/Table.vue +88 -88
  49. package/components/common/adapterManager/ui/table/TableNew.vue +137 -137
  50. package/components/common/adapterManager/ui/table/TableOld.vue +141 -141
  51. package/components/common/adapterManager/ui/table/adapters/Adapters.vue +44 -44
  52. package/components/common/adapterManager/ui/table/adapters/AdaptersNew.vue +187 -186
  53. package/components/common/adapterManager/ui/table/adapters/AdaptersOld.vue +87 -87
  54. package/components/common/adapterManager/ui/table/header/Header.vue +57 -57
  55. package/components/common/adapterManager/ui/table/header/HeaderNew.vue +81 -81
  56. package/components/common/adapterManager/ui/table/header/HeaderOld.vue +79 -79
  57. package/components/common/adapterManager/ui/table/lib/models/types.ts +1 -1
  58. package/components/common/certificate/CertificateInfo.vue +7 -1
  59. package/components/common/configure/physicalAdapters/PhysicalAdapters.vue +6 -0
  60. package/components/common/configure/physicalAdapters/PhysicalAdaptersNew.vue +219 -192
  61. package/components/common/configure/physicalAdapters/PhysicalAdaptersOld.vue +6 -4
  62. package/components/common/configure/physicalAdapters/buttons/Buttons.vue +1 -0
  63. package/components/common/configure/physicalAdapters/modals/edit/Edit.vue +26 -1
  64. package/components/common/configure/physicalAdapters/modals/edit/EditNew.vue +30 -1
  65. package/components/common/configure/physicalAdapters/modals/edit/lib/models/interfaces.ts +5 -0
  66. package/components/common/configure/physicalAdapters/modals/edit/lib/validations/validations.ts +19 -0
  67. package/components/common/configure/physicalAdapters/tableView/TableViewNew.vue +12 -1
  68. package/components/common/configure/physicalAdapters/tableView/lib/config/physicalAdaptersTableConfigNew.ts +21 -21
  69. package/components/common/configure/physicalAdapters/tableView/lib/config/settings.ts +12 -5
  70. package/components/common/configure/physicalAdapters/tableView/lib/models/interfaces.ts +4 -1
  71. package/components/common/diagramMain/Diagram.vue +461 -377
  72. package/components/common/diagramMain/DiagramMain.vue +935 -905
  73. package/components/common/diagramMain/adapter/Adapter.vue +123 -123
  74. package/components/common/diagramMain/adapter/AdapterItem.vue +438 -438
  75. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  76. package/components/common/diagramMain/adapter/Contents.vue +212 -212
  77. package/components/common/diagramMain/adapter/Lines.vue +81 -81
  78. package/components/common/diagramMain/adapter/block/Block.vue +27 -27
  79. package/components/common/diagramMain/adapter/block/BlockNew.vue +58 -58
  80. package/components/common/diagramMain/adapter/block/BlockOld.vue +50 -50
  81. package/components/common/diagramMain/adapter/secondBlock/SecondBlock.vue +27 -27
  82. package/components/common/diagramMain/adapter/secondBlock/SecondBlockNew.vue +60 -60
  83. package/components/common/diagramMain/adapter/secondBlock/SecondBlockOld.vue +51 -51
  84. package/components/common/diagramMain/header/Header.vue +49 -0
  85. package/components/common/diagramMain/header/HeaderNew.vue +155 -0
  86. package/components/common/diagramMain/{Header.vue → header/HeaderOld.vue} +78 -67
  87. package/components/common/diagramMain/highlights/Highlights.vue +151 -151
  88. package/components/common/diagramMain/highlights/HighlightsNew.vue +124 -124
  89. package/components/common/diagramMain/highlights/HighlightsOld.vue +107 -107
  90. package/components/common/diagramMain/lib/config/index.ts +81 -81
  91. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  92. package/components/common/diagramMain/lib/config/positions.ts +194 -194
  93. package/components/common/diagramMain/lib/models/enums.ts +44 -44
  94. package/components/common/diagramMain/lib/models/interfaces.ts +760 -760
  95. package/components/common/diagramMain/lib/models/types.ts +21 -21
  96. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  97. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +331 -331
  98. package/components/common/diagramMain/modals/Modals.vue +483 -479
  99. package/components/common/diagramMain/modals/UnsavedChangesModal.vue +32 -0
  100. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +104 -102
  101. package/components/common/diagramMain/modals/editSettings/EditSettingsNew.vue +285 -0
  102. package/components/common/diagramMain/modals/editSettings/EditSettingsOld.vue +254 -0
  103. package/components/common/diagramMain/modals/editSettings/confirmTeamingSettingsModal/ConfirmTeamingSettingsModal.vue +31 -0
  104. package/components/common/diagramMain/modals/editSettings/confirmTeamingSettingsModal/ConfirmTeamingSettingsModalNew.vue +82 -0
  105. package/components/common/diagramMain/modals/editSettings/{ConfirmTeamingSettingsModal.vue → confirmTeamingSettingsModal/ConfirmTeamingSettingsModalOld.vue} +2 -5
  106. package/components/common/diagramMain/modals/editSettings/lib/config/config.ts +15 -0
  107. package/components/common/diagramMain/modals/editSettings/lib/models/interfaces.ts +6 -0
  108. package/components/common/diagramMain/modals/editSettings/lib/utils/utils.ts +177 -0
  109. package/components/common/diagramMain/modals/editSettings/modal/EditSettingsModal.vue +137 -0
  110. package/components/common/diagramMain/modals/editSettings/modal/EditSettingsModalNew.vue +91 -0
  111. package/components/common/diagramMain/modals/editSettings/{EditSettingsModal.vue → modal/EditSettingsModalOld.vue} +12 -51
  112. package/components/common/diagramMain/modals/editSettings/tabs/networkProperties/NetworkProperties.vue +158 -0
  113. package/components/common/diagramMain/modals/editSettings/tabs/networkProperties/NetworkPropertiesNew.vue +262 -0
  114. package/components/common/diagramMain/modals/editSettings/tabs/{NetworkProperties.vue → networkProperties/NetworkPropertiesOld.vue} +12 -113
  115. package/components/common/diagramMain/modals/editSettings/tabs/port/ipvFourSettings/IpvFourSettings.vue +192 -0
  116. package/components/common/diagramMain/modals/editSettings/tabs/port/ipvFourSettings/IpvFourSettingsNew.vue +388 -0
  117. package/components/common/diagramMain/modals/editSettings/tabs/port/{IpvFourSettings.vue → ipvFourSettings/IpvFourSettingsOld.vue} +11 -152
  118. package/components/common/diagramMain/modals/editSettings/tabs/port/portProperties/PortProperties.vue +139 -0
  119. package/components/common/diagramMain/modals/editSettings/tabs/port/portProperties/PortPropertiesNew.vue +286 -0
  120. package/components/common/diagramMain/modals/editSettings/tabs/port/{PortProperties.vue → portProperties/PortPropertiesOld.vue} +12 -103
  121. package/components/common/diagramMain/modals/editSettings/tabs/security/Security.vue +209 -0
  122. package/components/common/diagramMain/modals/editSettings/tabs/security/SecurityNew.vue +233 -0
  123. package/components/common/diagramMain/modals/editSettings/tabs/{Security.vue → security/SecurityOld.vue} +25 -48
  124. package/components/common/diagramMain/modals/editSettings/tabs/switchProperties/SwitchProperties.vue +128 -0
  125. package/components/common/diagramMain/modals/editSettings/tabs/switchProperties/SwitchPropertiesNew.vue +235 -0
  126. package/components/common/diagramMain/modals/editSettings/tabs/switchProperties/SwitchPropertiesOld.vue +87 -0
  127. package/components/common/diagramMain/modals/editSettings/tabs/teamingFailover/TeamingFailover.vue +99 -0
  128. package/components/common/diagramMain/modals/editSettings/tabs/teamingFailover/TeamingFailoverNew.vue +319 -0
  129. package/components/common/diagramMain/modals/editSettings/tabs/{TeamingFailover.vue → teamingFailover/TeamingFailoverOld.vue} +11 -48
  130. package/components/common/diagramMain/modals/editSettings/tabs/trafficShaping/TrafficShaping.vue +173 -0
  131. package/components/common/diagramMain/modals/editSettings/tabs/trafficShaping/TrafficShapingNew.vue +348 -0
  132. package/components/common/diagramMain/modals/editSettings/tabs/{TrafficShaping.vue → trafficShaping/TrafficShapingOld.vue} +12 -134
  133. package/components/common/diagramMain/modals/lib/config/adapterModal.ts +147 -147
  134. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +43 -2
  135. package/components/common/diagramMain/modals/lib/config/index.ts +2 -1
  136. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  137. package/components/common/diagramMain/modals/lib/config/networkModal.ts +405 -405
  138. package/components/common/diagramMain/modals/lib/config/portModal.ts +253 -253
  139. package/components/common/diagramMain/modals/lib/config/switchModal.ts +245 -245
  140. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  141. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  142. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +88 -88
  143. package/components/common/diagramMain/modals/lib/utils/index.ts +34 -4
  144. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +541 -541
  145. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  146. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +170 -170
  147. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  148. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/VmkernelAdapterReadyComplete.vue +49 -49
  149. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +19 -19
  150. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  151. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  152. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  153. package/components/common/diagramMain/modals/remove/RemoveModal.vue +82 -82
  154. package/components/common/diagramMain/modals/remove/RemoveModalNew.vue +106 -106
  155. package/components/common/diagramMain/modals/remove/RemoveModalOld.vue +241 -241
  156. package/components/common/diagramMain/modals/viewSettings/info/Info.vue +57 -57
  157. package/components/common/diagramMain/modals/viewSettings/info/InfoNew.vue +174 -174
  158. package/components/common/diagramMain/modals/viewSettings/info/InfoOld.vue +141 -141
  159. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettings.vue +45 -45
  160. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettingsNew.vue +323 -323
  161. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettingsOld.vue +203 -203
  162. package/components/common/diagramMain/modals/viewSettings/viewSettingsModal/ViewSettingsModal.vue +60 -60
  163. package/components/common/diagramMain/modals/viewSettings/viewSettingsModal/ViewSettingsModalNew.vue +50 -50
  164. package/components/common/diagramMain/modals/viewSettings/viewSettingsModal/ViewSettingsModalOld.vue +70 -70
  165. package/components/common/diagramMain/modals/viewSettings/viewSettingsModal/lib/models/interfaces.ts +48 -48
  166. package/components/common/diagramMain/network/Contents.vue +497 -497
  167. package/components/common/diagramMain/network/Lines.vue +107 -107
  168. package/components/common/diagramMain/network/Network.vue +141 -141
  169. package/components/common/diagramMain/network/block/Block.vue +37 -37
  170. package/components/common/diagramMain/network/block/BlockNew.vue +68 -68
  171. package/components/common/diagramMain/network/block/BlockOld.vue +64 -64
  172. package/components/common/diagramMain/network/noNetwork/NoNetwork.vue +12 -12
  173. package/components/common/diagramMain/network/noNetwork/NoNetworkNew.vue +89 -89
  174. package/components/common/diagramMain/network/noNetwork/NoNetworkOld.vue +61 -61
  175. package/components/common/diagramMain/network/secondBlock/SecondBlock.vue +41 -41
  176. package/components/common/diagramMain/network/secondBlock/SecondBlockNew.vue +64 -64
  177. package/components/common/diagramMain/network/secondBlock/SecondBlockOld.vue +60 -60
  178. package/components/common/diagramMain/port/Port.vue +580 -580
  179. package/components/common/diagramMain/port/Ports.vue +47 -47
  180. package/components/common/diagramMain/skeleton/Header.vue +31 -0
  181. package/components/common/diagramMain/skeleton/Switch.vue +75 -0
  182. package/components/common/diagramMain/switch/Switch.vue +180 -180
  183. package/components/common/diagramMain/switch/SwitchSelected.vue +111 -111
  184. package/components/common/layout/theHeader/ThemeSwitch.vue +1 -1
  185. package/components/common/layout/theHeader/modals/reconnect/New.vue +38 -30
  186. package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +8 -9
  187. package/components/common/layout/theHeader/userMenu/modals/preferences/New.vue +4 -0
  188. package/components/common/layout/theHeader/userMenu/modals/preferences/Old.vue +9 -2
  189. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +11 -7
  190. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +7 -1
  191. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/lib/config/consoleOptions.ts +8 -5
  192. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +9 -5
  193. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/config/formatOptions.ts +1 -1
  194. package/components/common/layout/theHeader/userMenu/modals/preferences/view/Old.vue +5 -9
  195. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +9 -6
  196. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +3 -1
  197. package/components/common/modals/Rename.vue +3 -1
  198. package/components/common/monitor/advanced/table/tableOld/TableOld.vue +93 -93
  199. package/components/common/monitor/utilization/lib/models/enums.ts +4 -4
  200. package/components/common/noDataProvided/NoDataProvidedNew.vue +1 -1
  201. package/components/common/pages/backups/modals/createBackup/datastores/tableView/new/lib/config/table.ts +4 -4
  202. package/components/common/pages/backups/modals/createBackup/datastores/tableView/old/lib/config/table.ts +4 -4
  203. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/ChartOptionsModal.vue +184 -253
  204. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/actions/ActionsNew.vue +1 -1
  205. package/components/common/pages/scheduledTasks/table/lib/models/enums.ts +9 -0
  206. package/components/common/pages/scheduledTasks/table/new/New.vue +12 -10
  207. package/components/common/pages/tasks/Tasks.vue +4 -1
  208. package/components/common/pages/tasks/table/Table.vue +25 -23
  209. package/components/common/readyToComplete/New.vue +1 -0
  210. package/components/common/split/vertical/New.vue +42 -8
  211. package/components/common/split/vertical/Old.vue +31 -2
  212. package/components/common/split/vertical/Vertical.vue +4 -0
  213. package/components/common/vm/actions/add/New.vue +21 -6
  214. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +14 -1
  215. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/New.vue +5 -0
  216. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Old.vue +1 -0
  217. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/New.vue +1 -0
  218. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/New.vue +2 -0
  219. package/components/common/vm/actions/common/select/options/New.vue +14 -12
  220. package/components/common/vm/actions/common/select/options/Old.vue +16 -15
  221. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +13 -15
  222. package/components/common/vm/actions/confirm/Confirm.vue +3 -0
  223. package/components/common/vm/actions/rename/Old.vue +1 -0
  224. package/components/common/vm/snapshots/DetailView.vue +6 -6
  225. package/components/common/wizards/datastore/add/New.vue +6 -0
  226. package/components/common/wizards/datastore/add/lib/config/steps.ts +1 -1
  227. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +1 -1
  228. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +1 -1
  229. package/components/common/wizards/network/add/Add.vue +13 -2
  230. package/components/common/wizards/network/add/AddNew.vue +22 -26
  231. package/components/common/wizards/network/add/lib/config/initialData.ts +6 -4
  232. package/components/common/wizards/network/add/lib/config/steps.ts +1 -1
  233. package/components/common/wizards/network/add/lib/models/interfaces.ts +1 -0
  234. package/components/common/wizards/network/add/lib/utils/utils.ts +1 -1
  235. package/components/common/wizards/network/add/steps/connectionSettings/ConnectionSettingsOld.vue +5 -1
  236. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsNew.vue +2 -8
  237. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsOld.vue +3 -0
  238. package/components/common/wizards/network/add/steps/portProperties/PortPropertiesNew.vue +2 -8
  239. package/components/common/wizards/network/add/steps/portProperties/PortPropertiesOld.vue +6 -2
  240. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceNew.vue +10 -3
  241. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceOld.vue +4 -0
  242. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectNetwork.vue +5 -1
  243. package/components/common/wizards/network/add/validations/common.ts +1 -1
  244. package/components/common/wizards/vm/migrate/New.vue +13 -3
  245. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +5 -0
  246. package/components/common/wizards/vm/migrate/lib/config/steps.ts +3 -2
  247. package/components/common/wizards/vm/migrate/steps/computeResource/New.vue +2 -1
  248. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/New.vue +40 -21
  249. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/clusterTable.ts +340 -0
  250. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/hostTable.ts +44 -14
  251. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/models/enums.ts +4 -0
  252. package/components/common/wizards/vm/migrate/steps/priority/New.vue +7 -2
  253. package/components/common/wizards/vm/migrate/steps/selectStorage/New.vue +22 -7
  254. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/New.vue +6 -0
  255. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/New.vue +4 -1
  256. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/lib/config/datastoreTable.ts +12 -16
  257. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/New.vue +10 -5
  258. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/lib/config/diskTable.ts +16 -11
  259. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/old/lib/config/diskTable.ts +7 -1
  260. package/components/common/wizards/vm/migrate/steps/selectStorage/selectedPerDisk/New.vue +17 -10
  261. package/components/common/wizards/vm/migrate/steps/type/TypeNew.vue +1 -0
  262. package/components/common/wizards/vm/migrate/vmOrigin/New.vue +35 -15
  263. package/lib/models/store/tasks/enums.ts +3 -0
  264. package/lib/models/store/tasks/types.ts +7 -6
  265. package/package.json +2 -2
  266. package/plugins/directives.ts +3 -5
  267. package/public/spice-console/application/agent.js +18 -17
  268. package/store/tasks/actions.ts +26 -8
  269. package/store/tasks/mappers/recentTasks.ts +1 -0
  270. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +0 -164
@@ -1,905 +1,935 @@
1
- <template>
2
- <div
3
- v-if="props.diagramData"
4
- :class="{ 'diagram-min-width': !props.inPortlet }"
5
- >
6
- <div class="diagram-main-container">
7
- <common-diagram-main-header
8
- :project="props.project"
9
- :in-portlet="props.inPortlet"
10
- :is-show-diagram="isShowDiagram"
11
- :diagram-name="props.diagramData.diagramName"
12
- :test-id="props.diagramData.testId"
13
- @toggle-diagram="onToggleDiagram"
14
- @show-modal="onShowModal"
15
- />
16
- <common-diagram-main-diagram
17
- :diagram-data="props.diagramData"
18
- :is-show-diagram="isShowDiagram"
19
- :in-portlet="props.inPortlet"
20
- :networks-with-positions="networksWithPositions"
21
- :main-rect-height="mainRectHeight"
22
- :main-switch-line="mainSwitchLine"
23
- :selected-main-line="selectedMainLine"
24
- :adapters-with-positions="adaptersWithPositions"
25
- :selected-port="selectedPort"
26
- :selected-adapter="selectedAdapter"
27
- :selected-network="selectedNetwork"
28
- :selected-switch-line-y="selectedSwitchLineY"
29
- :is-dark-mode="props.isDarkMode"
30
- :networks-count="networksCount"
31
- @click-diagram="onClickDiagram"
32
- @toggle-adapters="onToggleAdapters"
33
- @select-adapter="onSelectAdapter"
34
- @toggle-ports="onTogglePorts"
35
- @select-port="onSelectPort"
36
- @select-network="onSelectNetwork"
37
- @show-modal="onShowModal"
38
- />
39
- </div>
40
- <common-diagram-main-modals
41
- :is-show-port-view-settings-modal="isShowPortViewSettingsModal"
42
- :is-show-network-view-settings-modal="isShowNetworkViewSettingsModal"
43
- :is-show-adapter-view-settings-modal="isShowAdapterViewSettingsModal"
44
- :is-show-vcenter-view-settings-modal="isShowVCenterViewSettingsModal"
45
- :is-show-network-remove-modal="isShowNetworkRemoveModal"
46
- :is-show-switch-remove-modal="isShowSwitchRemoveModal"
47
- :is-show-port-remove-modal="isShowPortRemoveModal"
48
- :is-show-network-edit-settings-modal="isShowNetworkEditSettingsModal"
49
- :is-show-port-edit-settings-modal="isShowPortEditSettingsModal"
50
- :is-show-switch-edit-settings-modal="isShowSwitchEditSettingsModal"
51
- :is-show-switch-view-settings-modal="isShowSwitchViewSettingsModal"
52
- :is-show-switch-manage-physical-adapters-modal="
53
- isShowSwitchManagePhysicalAdaptersModal
54
- "
55
- :is-show-add-networking-modal="isShowAddNetworkingModal"
56
- :is-show-migrate-vmkernel-adapter-modal="
57
- isShowMigrateVmkernelAdapterModal
58
- "
59
- :initial-data="initialData"
60
- :host-name="props.hostName"
61
- :is-remove-modal-loading="props.isRemoveModalLoading"
62
- :diagram-data="props.diagramData"
63
- :adapters="props.adapters"
64
- :is-dark-mode="props.isDarkMode"
65
- :is-edit-modal-loading="props.isEditModalLoading"
66
- :free-adapters="props.freeAdapters"
67
- :manage-physical-adapter-status="managePhysicalAdapterStatus"
68
- :initial-manage-physical-adapter-status="
69
- initialManagePhysicalAdapterStatus
70
- "
71
- :is-manage-adapters-modal-loading="props.isManageAdaptersModalLoading"
72
- :standard-switches-initial="props.standardSwitchesInitial"
73
- :selected-standard-switch-id="selectedStandardSwitchId"
74
- :selected-switch-id="selectedSwitchId"
75
- :tcp-stacks="props.tcpStacks"
76
- :is-networking-loading="props.isNetworkingLoading"
77
- :networks-list="props.networksList"
78
- :is-migrate-adapter-loading="props.isMigrateAdapterLoading"
79
- :diagrams-data="props.diagramsData"
80
- :project="props.project"
81
- @hide-port-view-settings-modal="onHidePortViewSettingsModal"
82
- @hide-network-view-settings-modal="onHideNetworkViewSettingsModal"
83
- @hide-adapter-view-settings-modal="onHideAdapterViewSettingsModal"
84
- @hide-vcenter-view-settings-modal="onHideVCenterViewSettingsModal"
85
- @hide-switch-view-settings-modal="onHideSwitchViewSettingsModal"
86
- @hide-network-remove-modal="onHideNetworkRemoveModal"
87
- @hide-switch-remove-modal="onHideSwitchRemoveModal"
88
- @hide-port-remove-modal="onHidePortRemoveModal"
89
- @hide-network-edit-settings-modal="onHideNetworkEditSettingsModal"
90
- @hide-port-edit-settings-modal="onHidePortEditSettingsModal"
91
- @hide-switch-edit-settings-modal="onHideSwitchEditSettingsModal"
92
- @hide-switch-manage-physical-adapters-modal="
93
- onHideSwitchManagePhysicalAdaptersModal
94
- "
95
- @hide-add-networking-modal="onHideAddNetworkingModal"
96
- @hide-migrate-vmkernel-adapter-modal="onHideMigrateVmkernelAdapterModal"
97
- @remove="onRemove"
98
- @send-edit-data="onSendEditData"
99
- @change-edit-fields-data="onChangeEditFieldsData"
100
- @check-network-label="onCheckNetworkLabel"
101
- @send-manage-physical-adapters-data="onSendManagePhysicalAdaptersData"
102
- @change-adapter-status="onChangeManagePhysicalAdapterStatus"
103
- @get-free-adapters="onGetFreeAdapters"
104
- @get-existing-standard-switches="onGetExistingStandardSwitches"
105
- @get-tcp-stacks="onGetTcpStacks"
106
- @send-add-networking-data="onSendNetworkData"
107
- @add-networking-data-validate="onValidateBeforeSending"
108
- />
109
- </div>
110
- </template>
111
-
112
- <script setup lang="ts">
113
- import type {
114
- UI_I_Adapter,
115
- UI_I_AdapterStatus,
116
- UI_I_AdaptersWithPositions,
117
- UI_I_MainRectHeights,
118
- UI_I_ModalsInitialData,
119
- UI_I_Network,
120
- UI_I_EditFieldsData,
121
- UI_I_NetworksWithPositions,
122
- UI_I_SelectedAdapter,
123
- UI_I_SelectedPort,
124
- UI_I_SwitchLine,
125
- UI_I_ToggleDiagramAdaptersPayload,
126
- UI_I_ToggleDiagramPortsPayload,
127
- UI_I_PortToggleFlag,
128
- UI_I_DiagramData,
129
- UI_I_SwitchAdapterItem,
130
- } from '~/components/common/diagramMain/lib/models/interfaces'
131
- import type {
132
- UI_I_ArbitraryObject,
133
- UI_I_ItemsWithTotalCounts,
134
- } from '~/lib/models/interfaces'
135
- import type {
136
- UI_I_Switch,
137
- UI_I_TCPStack,
138
- } from '~/components/common/wizards/network/add/lib/models/interfaces'
139
- import type { UI_T_EditData } from '~/components/common/wizards/network/add/lib/models/types'
140
- import type { UI_T_Adapters } from '~/components/common/diagramMain/lib/models/types'
141
- import type { UI_T_Project } from '~/lib/models/types'
142
- import { UI_E_NetworkType, UI_E_PositionsY } from './lib/models/enums'
143
- import {
144
- managePhysicalAdapterStatusInitial,
145
- mainRectHeightsInitial,
146
- switchLineInitial,
147
- selectedPortInitial,
148
- selectedSwitchLineYInitial,
149
- selectedAdapterInitial,
150
- } from '~/components/common/diagramMain/lib/config'
151
- import {
152
- hasPortAndNetwork,
153
- networksPositions,
154
- getSelectNetworkDataFunc,
155
- getSelectPortDataFunc,
156
- countAdaptersHeight,
157
- getAdaptersPositions,
158
- } from '~/components/common/diagramMain/lib/utils/utils'
159
-
160
- const props = withDefaults(
161
- defineProps<{
162
- diagramData: UI_I_DiagramData
163
- project?: UI_T_Project
164
- inPortlet?: boolean
165
- standardSwitchesInitial?: UI_I_Switch[]
166
- hostName?: string
167
- adapters?: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>
168
- freeAdapters?: UI_I_Adapter[]
169
- networksList?: UI_I_Network[]
170
- isDarkMode: boolean
171
- tcpStacks?: UI_I_TCPStack[]
172
- diagramsData?: UI_I_DiagramData[]
173
- isManageAdaptersModalLoading?: boolean
174
- isNetworkingLoading?: boolean
175
- isRemoveModalLoading?: boolean
176
- isEditModalLoading?: boolean
177
- isMigrateAdapterLoading?: boolean
178
- }>(),
179
- {
180
- project: 'procurator',
181
- diagramData: null,
182
- inPortlet: false,
183
- standardSwitchesInitial: () => [],
184
- hostName: '',
185
- adapters: () => ({
186
- total_items: 0,
187
- total_pages: 0,
188
- items: [],
189
- }),
190
- freeAdapters: () => [],
191
- networksList: () => [],
192
- tcpStacks: () => [],
193
- diagramsData: [],
194
- isManageAdaptersModalLoading: false,
195
- isNetworkingLoading: false,
196
- isRemoveModalLoading: false,
197
- isEditModalLoading: false,
198
- isMigrateAdapterLoading: false,
199
- }
200
- )
201
-
202
- const initialData = ref<UI_I_ModalsInitialData>({})
203
- const switchInitialData = ref<UI_I_ModalsInitialData>({})
204
-
205
- watch(
206
- () => props.diagramData?.networking,
207
- (initial: UI_I_ModalsInitialData | undefined) => {
208
- if (initial) {
209
- initialData.value = initial
210
- switchInitialData.value = initial
211
- }
212
- },
213
- { deep: true, immediate: true }
214
- )
215
-
216
- const onValidateBeforeSending = (
217
- data: UI_T_EditData,
218
- type: string,
219
- setValidation: (messages: UI_I_ArbitraryObject<string>) => void
220
- ) => {
221
- emits('add-networking-data-validate', data, type, setValidation)
222
- }
223
-
224
- let initialManagePhysicalAdapterStatus = ref<UI_I_AdapterStatus>(
225
- managePhysicalAdapterStatusInitial
226
- )
227
-
228
- const managePhysicalAdapterStatus = ref<UI_I_AdapterStatus>(
229
- useDeepCopy(initialManagePhysicalAdapterStatus.value)
230
- )
231
-
232
- watch(
233
- () => props.diagramData,
234
- (newValue: UI_I_DiagramData) => {
235
- if (newValue?.networking) {
236
- initialManagePhysicalAdapterStatus.value = {
237
- active: useDeepCopy(props.diagramData?.networking?.activeAdapters),
238
- standby: useDeepCopy(props.diagramData?.networking?.standbyAdapters),
239
- unused: useDeepCopy(props.diagramData?.networking?.unusedAdapters),
240
- }
241
-
242
- managePhysicalAdapterStatus.value = useDeepCopy(
243
- initialManagePhysicalAdapterStatus.value
244
- )
245
- }
246
- },
247
- { deep: true, immediate: true }
248
- )
249
-
250
- const onChangeManagePhysicalAdapterStatus = (
251
- adapterStatusNew: UI_I_AdapterStatus
252
- ) => {
253
- managePhysicalAdapterStatus.value = adapterStatusNew
254
- }
255
-
256
- const isShowSwitchManagePhysicalAdaptersModal = ref<boolean>(false)
257
- const onHideSwitchManagePhysicalAdaptersModal = (): void => {
258
- isShowSwitchManagePhysicalAdaptersModal.value = false
259
- }
260
-
261
- const onSendManagePhysicalAdaptersData = (
262
- adapterStatus: UI_I_AdapterStatus,
263
- switchName: string,
264
- hideModal: () => void
265
- ) => {
266
- emits(
267
- 'send-manage-physical-adapters-data',
268
- adapterStatus,
269
- switchName,
270
- initialData.value,
271
- hideModal
272
- )
273
- }
274
-
275
- const isShowSwitchViewSettingsModal = ref<boolean>(false)
276
- const isShowSwitchEditSettingsModal = ref<boolean>(false)
277
- const isShowSwitchRemoveModal = ref<boolean>(false)
278
- const onHideSwitchViewSettingsModal = (): void => {
279
- isShowSwitchViewSettingsModal.value = false
280
- }
281
- const onHideSwitchEditSettingsModal = (): void => {
282
- isShowSwitchEditSettingsModal.value = false
283
- }
284
- const onHideSwitchRemoveModal = (): void => {
285
- isShowSwitchRemoveModal.value = false
286
- }
287
-
288
- const isShowAdapterViewSettingsModal = ref<boolean>(false)
289
- const onHideAdapterViewSettingsModal = (): void => {
290
- isShowAdapterViewSettingsModal.value = false
291
- }
292
-
293
- const isShowNetworkViewSettingsModal = ref<boolean>(false)
294
- const isShowNetworkEditSettingsModal = ref<boolean>(false)
295
- const isShowNetworkRemoveModal = ref<boolean>(false)
296
- const onHideNetworkViewSettingsModal = (): void => {
297
- isShowNetworkViewSettingsModal.value = false
298
- }
299
- const onHideNetworkEditSettingsModal = (): void => {
300
- isShowNetworkEditSettingsModal.value = false
301
- }
302
- const onHideNetworkRemoveModal = (): void => {
303
- isShowNetworkRemoveModal.value = false
304
- }
305
-
306
- const isShowPortViewSettingsModal = ref<boolean>(false)
307
- const isShowPortEditSettingsModal = ref<boolean>(false)
308
- const isShowPortRemoveModal = ref<boolean>(false)
309
- const onHidePortViewSettingsModal = (): void => {
310
- isShowPortViewSettingsModal.value = false
311
- }
312
- const onHidePortEditSettingsModal = (): void => {
313
- isShowPortEditSettingsModal.value = false
314
- }
315
- const onHidePortRemoveModal = (): void => {
316
- isShowPortRemoveModal.value = false
317
- }
318
-
319
- const isShowVCenterViewSettingsModal = ref<boolean>(false)
320
- const onHideVCenterViewSettingsModal = (): void => {
321
- isShowVCenterViewSettingsModal.value = false
322
- }
323
- const isShowAddNetworkingModal = ref<boolean>(false)
324
- const onHideAddNetworkingModal = (): void => {
325
- isShowAddNetworkingModal.value = false
326
- }
327
- const isShowMigrateVmkernelAdapterModal = ref<boolean>(false)
328
- const onHideMigrateVmkernelAdapterModal = (): void => {
329
- isShowMigrateVmkernelAdapterModal.value = false
330
- }
331
-
332
- const selectedStandardSwitchId = ref<string>('')
333
- const selectedSwitchId = ref<string>('')
334
-
335
- const onShowModal = (
336
- value: string,
337
- properties: UI_I_ModalsInitialData
338
- ): void => {
339
- switch (value) {
340
- case 'port-view-settings':
341
- initialData.value = properties
342
- isShowPortViewSettingsModal.value = true
343
- break
344
- case 'network-view-settings':
345
- isShowNetworkViewSettingsModal.value = true
346
- initialData.value = properties
347
- break
348
- case 'adapter-view-settings':
349
- isShowAdapterViewSettingsModal.value = true
350
- initialData.value = properties
351
- break
352
- case 'v-center-view-settings':
353
- isShowVCenterViewSettingsModal.value = true
354
- initialData.value = properties
355
- break
356
- case 'network-edit-settings':
357
- isShowNetworkEditSettingsModal.value = true
358
- initialData.value = properties
359
- break
360
- case 'port-edit-settings':
361
- initialData.value = properties
362
- isShowPortEditSettingsModal.value = true
363
- break
364
- case 'network-port-remove':
365
- initialData.value = properties
366
- isShowNetworkRemoveModal.value = true
367
- break
368
- case 'port-remove':
369
- initialData.value = properties
370
- isShowPortRemoveModal.value = true
371
- break
372
- case 'switch-edit':
373
- isShowSwitchEditSettingsModal.value = true
374
- initialData.value = useDeepCopy(switchInitialData.value)
375
- break
376
- case 'switch-manage-physical-adapters':
377
- isShowSwitchManagePhysicalAdaptersModal.value = true
378
- initialData.value = useDeepCopy(switchInitialData.value)
379
- break
380
- case 'add-networking':
381
- isShowAddNetworkingModal.value = true
382
- selectedStandardSwitchId.value = properties.switch_name
383
- selectedSwitchId.value = properties.switch_name
384
- break
385
- case 'switch-view-settings':
386
- isShowSwitchViewSettingsModal.value = true
387
- initialData.value = useDeepCopy(switchInitialData.value)
388
- break
389
- case 'migrate-vmkernel-adapter':
390
- isShowMigrateVmkernelAdapterModal.value = true
391
- break
392
- case 'switch-remove':
393
- isShowSwitchRemoveModal.value = true
394
- break
395
- }
396
- }
397
-
398
- const onRemove = (id: string, type: string) => {
399
- if (
400
- (type === 'network' || type === 'network1' || type === 'network2') &&
401
- selectedNetwork.value === id
402
- ) {
403
- selectedNetwork.value = '-1'
404
- resetSelection()
405
- } else if (type === 'port' && selectedPort.value.portId === id) {
406
- selectedPort.value.networkId = '-1'
407
- selectedPort.value.portId = '-1'
408
- resetSelection()
409
- }
410
-
411
- const hideModal =
412
- type === 'network' || type === 'network1' || type === 'network2'
413
- ? onHideNetworkRemoveModal
414
- : type === 'switch'
415
- ? onHideSwitchRemoveModal
416
- : onHidePortRemoveModal
417
-
418
- emits('remove', id, type, hideModal)
419
- }
420
- const onChangeEditFieldsData = (newEditFieldsData: UI_I_EditFieldsData) => {
421
- emits('change-edit-fields-data', newEditFieldsData)
422
- }
423
- const onCheckNetworkLabel = (
424
- label: string,
425
- sendMessage: (message: string) => void
426
- ) => {
427
- emits('check-network-label', label, sendMessage)
428
- }
429
- const onGetExistingStandardSwitches = () => {
430
- emits('get-existing-standard-switches')
431
- }
432
- const onGetTcpStacks = () => {
433
- emits('get-tcp-stacks')
434
- }
435
- const onGetFreeAdapters = (showModal: () => void) => {
436
- emits('get-free-adapters', showModal)
437
- }
438
- const onSendNetworkData = (
439
- data: UI_T_EditData,
440
- type: string,
441
- hideModal: () => void
442
- ) => {
443
- emits('send-add-networking-data', data, type, hideModal)
444
- }
445
- const onSendEditData = (type: string, hideModal: () => void, id?: string) => {
446
- emits('send-edit-data', type, initialData.value, hideModal, id)
447
- }
448
- const isShowDiagram = ref<boolean>(true)
449
- const onToggleDiagram = () => {
450
- isShowDiagram.value = !isShowDiagram.value
451
- }
452
- const mainRectHeights = ref<UI_I_MainRectHeights>(
453
- useDeepCopy(mainRectHeightsInitial)
454
- )
455
-
456
- const switchLine = ref<UI_I_SwitchLine>(useDeepCopy(switchLineInitial))
457
- const mainSwitchLine = computed<UI_I_SwitchLine>(
458
- () =>
459
- (switchLine.value.ay && {
460
- y1: Math.min(switchLine.value.y1, switchLine.value.ay),
461
- y2: Math.max(switchLine.value.y2, switchLine.value.ay),
462
- }) || { y1: 0, y2: 0 }
463
- )
464
-
465
- const selectedMainLine = ref(false)
466
- const selectedPort = ref<UI_I_SelectedPort>(useDeepCopy(selectedPortInitial))
467
- const selectedAdapter = ref<UI_I_SelectedAdapter>(
468
- useDeepCopy(selectedAdapterInitial)
469
- )
470
- const selectedNetwork = ref<string>('-1')
471
-
472
- const selectedSwitchLineY = ref<UI_I_SwitchLine>(
473
- useDeepCopy(selectedSwitchLineYInitial)
474
- )
475
- const mainRectHeight = computed<number>(() =>
476
- Math.max(
477
- mainRectHeights.value.networksHeight,
478
- mainRectHeights.value.adaptersHeight
479
- )
480
- )
481
-
482
- const countNetworksPositions = (
483
- newNetworks?: UI_I_Network[] | null
484
- ): UI_I_NetworksWithPositions[] => {
485
- let lastNetworkHeight = 0
486
- let lastPosition = UI_E_PositionsY.DIAGRAM_TOP + UI_E_PositionsY.BETWEEN_RECTS
487
- mainRectHeights.value.networksHeight =
488
- UI_E_PositionsY.DIAGRAM_TOP + UI_E_PositionsY.BETWEEN_RECTS
489
-
490
- const lastIndex = props.diagramData?.networks.findLastIndex(
491
- (network: UI_I_Network) =>
492
- network.activeAdapters.length > 0 && network.state.state !== 3
493
- )
494
-
495
- return (
496
- (newNetworks ? newNetworks : props.diagramData?.networks)?.map(
497
- (network: UI_I_Network, index: number) => {
498
- let portsCount = 0
499
- if (
500
- network.networkType ===
501
- (UI_E_NetworkType.VMPortsGroup || UI_E_NetworkType.VCenter)
502
- ) {
503
- portsCount = network.ports.length
504
- } else {
505
- portsCount = network.sysx ? 1 : 0
506
- }
507
- const portsHeight = network.toggle
508
- ? network.networkType === UI_E_NetworkType.VCenter
509
- ? portsCount * UI_E_PositionsY.SINGLE_V_CENTER_HEIGHT
510
- : portsCount * UI_E_PositionsY.SINGLE_PORT_HEIGHT
511
- : 0
512
- const networkHeight =
513
- UI_E_PositionsY.PORTS_FROM_RECT_TOP +
514
- portsHeight +
515
- (network.networkType === UI_E_NetworkType.VCenter
516
- ? UI_E_PositionsY.SINGLE_V_CENTER_HEIGHT - 10
517
- : UI_E_PositionsY.SINGLE_PORT_HEIGHT) +
518
- UI_E_PositionsY.SPACE_FROM_RECT_BOTTOM
519
-
520
- lastPosition +=
521
- lastNetworkHeight + (index && UI_E_PositionsY.BETWEEN_RECTS)
522
- lastNetworkHeight = networkHeight
523
-
524
- const connectLineY = lastPosition + networkHeight / 2
525
- const titlePosition = lastPosition + UI_E_PositionsY.TITLE_FROM_RECT_TOP
526
- const vlanPosition = lastPosition + UI_E_PositionsY.VLAN_FROM_RECT_TOP
527
- const portsPosition = lastPosition + UI_E_PositionsY.PORTS_FROM_RECT_TOP
528
-
529
- const networkPortsName =
530
- (network.networkType === UI_E_NetworkType.VMkernel &&
531
- 'VMkernel Ports') ||
532
- (network.networkType === UI_E_NetworkType.VMPortsGroup &&
533
- 'Virtual Machines') ||
534
- (network.networkType === UI_E_NetworkType.VCenter &&
535
- 'Virtual Machines') ||
536
- ''
537
-
538
- lastIndex !== -1 && index === 0 && (switchLine.value.y1 = connectLineY)
539
- lastIndex !== -1 &&
540
- index === lastIndex &&
541
- (switchLine.value.y2 = connectLineY)
542
-
543
- mainRectHeights.value.networksHeight +=
544
- networkHeight + UI_E_PositionsY.BETWEEN_RECTS
545
-
546
- const networkWithPortsPositions =
547
- network.networkType ===
548
- (UI_E_NetworkType.VMPortsGroup || UI_E_NetworkType.VCenter)
549
- ? network.ports.map((port, index) => {
550
- const portPosition =
551
- portsPosition +
552
- (network.networkType === UI_E_NetworkType.VCenter
553
- ? (index + 1) * UI_E_PositionsY.SINGLE_V_CENTER_HEIGHT - 10
554
- : (index + 1) * UI_E_PositionsY.SINGLE_PORT_HEIGHT)
555
-
556
- return {
557
- ...port,
558
- portPosition,
559
- }
560
- })
561
- : (network.sysx && [
562
- {
563
- id: network.sysx?.id,
564
- name: `${network.sysx?.id} ${
565
- network.sysx.ipv4_settings.ipv4
566
- ? `: ${network.sysx.ipv4_settings.ipv4}`
567
- : ''
568
- }`,
569
- state: network.sysx.state,
570
- testId: `port-${network.sysx?.id}`,
571
- portPosition:
572
- portsPosition + UI_E_PositionsY.SINGLE_PORT_HEIGHT,
573
- },
574
- ]) ||
575
- []
576
-
577
- return {
578
- ...network,
579
- ports: networkWithPortsPositions,
580
- portsCount,
581
- portsHeight,
582
- networkHeight,
583
- rectPosition: lastPosition,
584
- connectLineY,
585
- titlePosition,
586
- vlanPosition,
587
- vlanId: network.vlanId || '--',
588
- portsPosition,
589
- networkPortsName,
590
- }
591
- }
592
- ) || []
593
- )
594
- }
595
- const networksWithPositions = ref<UI_I_NetworksWithPositions[]>(
596
- countNetworksPositions()
597
- )
598
-
599
- const isPortToggled = ref<UI_I_PortToggleFlag>({
600
- value: false,
601
- id: '',
602
- })
603
-
604
- const countAdaptersPositions = (): UI_I_AdaptersWithPositions => {
605
- const { height, toggle, adaptersCount } = countAdaptersHeight(
606
- props.diagramData
607
- )
608
-
609
- mainRectHeights.value.adaptersHeight =
610
- UI_E_PositionsY.DIAGRAM_TOP + UI_E_PositionsY.BETWEEN_RECTS * 2 + height
611
-
612
- const { titlePosition, rectPosition, adaptersConnectLineY, adapters } =
613
- getAdaptersPositions(props.diagramData, height)
614
-
615
- switchLine.value.ay = adaptersConnectLineY
616
-
617
- return {
618
- toggle,
619
- height,
620
- adapters,
621
- rectPosition,
622
- adaptersConnectLineY,
623
- titlePosition,
624
- adaptersCount,
625
- }
626
- }
627
-
628
- const adaptersWithPositions = computed<UI_I_AdaptersWithPositions>(() => {
629
- return countAdaptersPositions()
630
- })
631
-
632
- const networksCount = computed<number>(
633
- () =>
634
- networksWithPositions.value.filter(
635
- (networkWithPositions: UI_I_NetworksWithPositions) =>
636
- networkWithPositions.activeAdapters.length > 0 &&
637
- networkWithPositions.state.state !== 3
638
- ).length
639
- )
640
-
641
- watch(
642
- () => props.diagramData?.networks,
643
- (newValue: UI_I_Network[] | null) => {
644
- networksWithPositions.value = countNetworksPositions(newValue)
645
-
646
- isPortToggled.value.value && handlePortToggle()
647
-
648
- if (selectedAdapter.value.adapterId !== '-1') {
649
- onSelectAdapter(selectedAdapter.value.adapterId)
650
- return
651
- }
652
-
653
- if (selectedPort.value.portId !== '-1') {
654
- onSelectPort(selectedPort.value.networkId, selectedPort.value.portId)
655
- return
656
- }
657
-
658
- if (selectedNetwork.value !== '-1') {
659
- cashedNetworkId.value = '-1'
660
- onSelectNetwork(selectedNetwork.value)
661
- return
662
- }
663
-
664
- if (selectedMainLine.value && networksCount.value === 0) {
665
- selectedMainLine.value = false
666
- return
667
- }
668
-
669
- if (selectedMainLine.value) return
670
-
671
- resetSelection()
672
- },
673
- { deep: true }
674
- )
675
-
676
- const onSelectPort = (networkId: string, portId: string): void => {
677
- const selectPortData = getSelectPortDataFunc(
678
- networkId,
679
- portId,
680
- networksWithPositions.value,
681
- adaptersWithPositions.value
682
- )
683
-
684
- if (!selectPortData) return
685
-
686
- selectedSwitchLineY.value = selectPortData.selectedSwitchLineY
687
- selectedPort.value = selectPortData.selectedPort
688
- }
689
-
690
- const cashedNetworkId = ref<string>('-1')
691
-
692
- const onSelectNetwork = (networkId: string): void => {
693
- if (cashedNetworkId.value === networkId) {
694
- resetSelection()
695
- cashedNetworkId.value = '-1'
696
- return
697
- }
698
-
699
- selectedNetwork.value = networkId
700
-
701
- const selectNetworkData = getSelectNetworkDataFunc(
702
- networkId,
703
- networksWithPositions.value,
704
- adaptersWithPositions.value
705
- )
706
-
707
- cashedNetworkId.value = networkId
708
-
709
- if (!selectNetworkData) return
710
-
711
- selectedSwitchLineY.value = selectNetworkData.selectedSwitchLineY
712
- selectedPort.value = selectNetworkData.selectedPort
713
- }
714
-
715
- const onSelectAdapter = (adapterId: string): void => {
716
- const selectedNetworks: UI_I_NetworksWithPositions[] =
717
- networksWithPositions.value?.filter(
718
- (network: UI_I_NetworksWithPositions) =>
719
- network.activeAdapters.includes(adapterId) && network.state.state !== 3
720
- )
721
-
722
- let pos: number[] = selectedNetworks?.reduce(networksPositions, [])
723
- let selectedAdapterPosition: number | null =
724
- adaptersWithPositions.value.adapters?.find(
725
- (adapter: UI_T_Adapters) => adapter.id === adapterId
726
- )?.adapterPosition || null
727
-
728
- selectedAdapterPosition !== null &&
729
- (selectedAdapterPosition += 7.5) &&
730
- pos?.push(selectedAdapterPosition)
731
-
732
- pos = pos?.sort((y1, y2) => y1 - y2)
733
-
734
- if (pos) {
735
- selectedSwitchLineY.value = {
736
- y1: pos[0],
737
- y2: pos[pos.length - 1],
738
- }
739
- }
740
-
741
- selectedAdapter.value = {
742
- adapterId,
743
- connectedPorts:
744
- selectedNetworks?.map((network: UI_I_Network) => ({
745
- networkId: network.id,
746
- ports: network.ports.map((port) => port.id),
747
- })) || [],
748
- }
749
- }
750
-
751
- const resetSelection = (): void => {
752
- selectedPort.value = useDeepCopy(selectedPortInitial)
753
- selectedSwitchLineY.value = useDeepCopy(selectedSwitchLineYInitial)
754
- selectedAdapter.value = useDeepCopy(selectedAdapterInitial)
755
- selectedNetwork.value = '-1'
756
- selectedMainLine.value = false
757
- }
758
-
759
- const emits = defineEmits<{
760
- (
761
- event: 'toggle-ports',
762
- payload: Omit<UI_I_ToggleDiagramPortsPayload, 'paths'>
763
- ): void
764
- (
765
- event: 'toggle-adapters',
766
- payload: Omit<UI_I_ToggleDiagramAdaptersPayload, 'paths'>
767
- ): void
768
- (event: 'get-existing-standard-switches'): void
769
- (
770
- event: 'send-add-networking-data',
771
- data: UI_T_EditData,
772
- type: string,
773
- hideModal: () => void
774
- ): void
775
- (
776
- event: 'add-networking-data-validate',
777
- data: UI_T_EditData,
778
- type: string,
779
- setValidation: (message: UI_I_ArbitraryObject<string>) => void
780
- ): void
781
- (
782
- event: 'check-network-label',
783
- label: string,
784
- sendMessage: (message: string) => void
785
- ): void
786
- (event: 'get-free-adapters', showModal: () => void): void
787
- (
788
- event: 'send-edit-data',
789
- type: string,
790
- initialData: UI_I_ModalsInitialData,
791
- hideModal: () => void,
792
- id?: string
793
- ): void
794
- (event: 'change-edit-fields-data', editFieldsData: UI_I_EditFieldsData): void
795
- (event: 'remove', id: string, type: string, hideModal: () => void): void
796
- (
797
- event: 'send-manage-physical-adapters-data',
798
- adapterStatus: UI_I_AdapterStatus,
799
- switchName: string,
800
- initialData: UI_I_ModalsInitialData,
801
- hideModal: () => void
802
- ): void
803
- (event: 'get-tcp-stacks'): void
804
- }>()
805
-
806
- const onTogglePorts = (
807
- id: string,
808
- isToggle: boolean,
809
- diagramId: string
810
- ): void => {
811
- emits('toggle-ports', {
812
- id,
813
- isToggle,
814
- diagramId,
815
- })
816
-
817
- isPortToggled.value = {
818
- value: true,
819
- id: id,
820
- }
821
- }
822
-
823
- const handlePortToggle = () => {
824
- cashedNetworkId.value = '-1'
825
-
826
- selectedPort.value.portId !== '-1' &&
827
- onSelectPort(selectedPort.value.networkId, selectedPort.value.portId)
828
- selectedAdapter.value.adapterId !== '-1' &&
829
- onSelectAdapter(selectedAdapter.value.adapterId)
830
- selectedNetwork.value !== '-1' && onSelectNetwork(selectedNetwork.value)
831
- hasPortAndNetwork(selectedPort.value, isPortToggled.value.id) &&
832
- resetSelection()
833
-
834
- isPortToggled.value = {
835
- value: false,
836
- id: '',
837
- }
838
- }
839
-
840
- const onToggleAdapters = (): void => {
841
- cashedNetworkId.value = '-1'
842
-
843
- const newState = !adaptersWithPositions.value.toggle
844
- const payload: Omit<UI_I_ToggleDiagramAdaptersPayload, 'paths'> = {
845
- isToggle: newState,
846
- diagramId: props.diagramData?.id || '',
847
- }
848
-
849
- emits('toggle-adapters', payload)
850
-
851
- selectedPort.value.portId !== '-1' &&
852
- onSelectPort(selectedPort.value.networkId, selectedPort.value.portId)
853
- selectedAdapter.value.adapterId !== '-1' && resetSelection()
854
- selectedNetwork.value !== '-1' && onSelectNetwork(selectedNetwork.value)
855
- }
856
-
857
- const onClickDiagram = (ev: MouseEvent): void => {
858
- const target = ev.target as HTMLElement
859
- const targetClassList = target.classList
860
-
861
- if (!targetClassList.contains('network-title')) {
862
- cashedNetworkId.value = '-1'
863
- }
864
-
865
- if (targetClassList.contains('main-line__handler')) {
866
- resetSelection()
867
- selectedMainLine.value = true
868
- } else {
869
- !(
870
- target.closest('.diagram-block__toggle') ||
871
- target.closest('.diagram-actions') ||
872
- target.closest('.dropdown-actions-container')
873
- ) && resetSelection()
874
- }
875
- }
876
- </script>
877
-
878
- <style scoped lang="scss">
879
- .diagram {
880
- &-min-width {
881
- //min-width: 745px;
882
- //min-width: 764px;
883
- }
884
- &-main-container {
885
- padding-top: 5px;
886
- }
887
- }
888
- </style>
889
- <style lang="scss">
890
- .diagram-main-actions__popup.navbar-dropdown-menu {
891
- .btn {
892
- border-radius: 3px;
893
- border-bottom: none;
894
- &:hover {
895
- border-bottom: none;
896
- }
897
- span {
898
- font-size: 14px;
899
- }
900
- &:active {
901
- box-shadow: none;
902
- }
903
- }
904
- }
905
- </style>
1
+ <template>
2
+ <div
3
+ v-if="props.diagramData"
4
+ :class="{ 'diagram-min-width': !props.inPortlet }"
5
+ >
6
+ <div
7
+ :class="[
8
+ 'diagram-main-container',
9
+ {
10
+ 'is-new-view': isNewView,
11
+ 'in-portlet': props.inPortlet,
12
+ },
13
+ ]"
14
+ >
15
+ <common-diagram-main-diagram
16
+ :project="props.project"
17
+ :diagram-data="props.diagramData"
18
+ :is-show-diagram="isShowDiagram"
19
+ :in-portlet="props.inPortlet"
20
+ :networks-with-positions="networksWithPositions"
21
+ :main-rect-height="mainRectHeight"
22
+ :main-switch-line="mainSwitchLine"
23
+ :selected-main-line="selectedMainLine"
24
+ :adapters-with-positions="adaptersWithPositions"
25
+ :selected-port="selectedPort"
26
+ :selected-adapter="selectedAdapter"
27
+ :selected-network="selectedNetwork"
28
+ :selected-switch-line-y="selectedSwitchLineY"
29
+ :is-dark-mode="props.isDarkMode"
30
+ :networks-count="networksCount"
31
+ @toggle-diagram="onToggleDiagram"
32
+ @click-diagram="onClickDiagram"
33
+ @toggle-adapters="onToggleAdapters"
34
+ @select-adapter="onSelectAdapter"
35
+ @toggle-ports="onTogglePorts"
36
+ @select-port="onSelectPort"
37
+ @select-network="onSelectNetwork"
38
+ @show-modal="onShowModal"
39
+ />
40
+ </div>
41
+ <common-diagram-main-modals
42
+ :is-show-port-view-settings-modal="isShowPortViewSettingsModal"
43
+ :is-show-network-view-settings-modal="isShowNetworkViewSettingsModal"
44
+ :is-show-adapter-view-settings-modal="isShowAdapterViewSettingsModal"
45
+ :is-show-vcenter-view-settings-modal="isShowVCenterViewSettingsModal"
46
+ :is-show-network-remove-modal="isShowNetworkRemoveModal"
47
+ :is-show-switch-remove-modal="isShowSwitchRemoveModal"
48
+ :is-show-port-remove-modal="isShowPortRemoveModal"
49
+ :is-show-network-edit-settings-modal="isShowNetworkEditSettingsModal"
50
+ :is-show-port-edit-settings-modal="isShowPortEditSettingsModal"
51
+ :is-show-switch-edit-settings-modal="isShowSwitchEditSettingsModal"
52
+ :is-show-switch-view-settings-modal="isShowSwitchViewSettingsModal"
53
+ :is-show-switch-manage-physical-adapters-modal="
54
+ isShowSwitchManagePhysicalAdaptersModal
55
+ "
56
+ :is-show-add-networking-modal="isShowAddNetworkingModal"
57
+ :is-show-migrate-vmkernel-adapter-modal="
58
+ isShowMigrateVmkernelAdapterModal
59
+ "
60
+ :initial-data="initialData"
61
+ :host-name="props.hostName"
62
+ :is-remove-modal-loading="props.isRemoveModalLoading"
63
+ :diagram-data="props.diagramData"
64
+ :adapters="props.adapters"
65
+ :is-dark-mode="props.isDarkMode"
66
+ :is-edit-modal-loading="props.isEditModalLoading"
67
+ :free-adapters="props.freeAdapters"
68
+ :manage-physical-adapter-status="managePhysicalAdapterStatus"
69
+ :initial-manage-physical-adapter-status="
70
+ initialManagePhysicalAdapterStatus
71
+ "
72
+ :is-manage-adapters-modal-loading="props.isManageAdaptersModalLoading"
73
+ :standard-switches-initial="props.standardSwitchesInitial"
74
+ :selected-standard-switch-id="selectedStandardSwitchId"
75
+ :selected-switch-id="selectedSwitchId"
76
+ :tcp-stacks="props.tcpStacks"
77
+ :is-networking-loading="props.isNetworkingLoading"
78
+ :is-get-existing-switches-loading="props.isGetExistingSwitchesLoading"
79
+ :is-get-tcp-stack-loading="props.isGetTcpStackLoading"
80
+ :networks-list="props.networksList"
81
+ :is-migrate-adapter-loading="props.isMigrateAdapterLoading"
82
+ :diagrams-data="props.diagramsData"
83
+ :project="props.project"
84
+ @hide-port-view-settings-modal="onHidePortViewSettingsModal"
85
+ @hide-network-view-settings-modal="onHideNetworkViewSettingsModal"
86
+ @hide-adapter-view-settings-modal="onHideAdapterViewSettingsModal"
87
+ @hide-vcenter-view-settings-modal="onHideVCenterViewSettingsModal"
88
+ @hide-switch-view-settings-modal="onHideSwitchViewSettingsModal"
89
+ @hide-network-remove-modal="onHideNetworkRemoveModal"
90
+ @hide-switch-remove-modal="onHideSwitchRemoveModal"
91
+ @hide-port-remove-modal="onHidePortRemoveModal"
92
+ @hide-network-edit-settings-modal="onHideNetworkEditSettingsModal"
93
+ @hide-port-edit-settings-modal="onHidePortEditSettingsModal"
94
+ @hide-switch-edit-settings-modal="onHideSwitchEditSettingsModal"
95
+ @hide-switch-manage-physical-adapters-modal="
96
+ onHideSwitchManagePhysicalAdaptersModal
97
+ "
98
+ @hide-add-networking-modal="onHideAddNetworkingModal"
99
+ @hide-migrate-vmkernel-adapter-modal="onHideMigrateVmkernelAdapterModal"
100
+ @remove="onRemove"
101
+ @send-edit-data="onSendEditData"
102
+ @change-edit-fields-data="onChangeEditFieldsData"
103
+ @check-network-label="onCheckNetworkLabel"
104
+ @send-manage-physical-adapters-data="onSendManagePhysicalAdaptersData"
105
+ @change-adapter-status="onChangeManagePhysicalAdapterStatus"
106
+ @get-free-adapters="onGetFreeAdapters"
107
+ @get-existing-standard-switches="onGetExistingStandardSwitches"
108
+ @get-tcp-stacks="onGetTcpStacks"
109
+ @send-add-networking-data="onSendNetworkData"
110
+ @add-networking-data-validate="onValidateBeforeSending"
111
+ />
112
+ </div>
113
+ </template>
114
+
115
+ <script setup lang="ts">
116
+ import type {
117
+ UI_I_Adapter,
118
+ UI_I_AdapterStatus,
119
+ UI_I_AdaptersWithPositions,
120
+ UI_I_MainRectHeights,
121
+ UI_I_ModalsInitialData,
122
+ UI_I_Network,
123
+ UI_I_EditFieldsData,
124
+ UI_I_NetworksWithPositions,
125
+ UI_I_SelectedAdapter,
126
+ UI_I_SelectedPort,
127
+ UI_I_SwitchLine,
128
+ UI_I_ToggleDiagramAdaptersPayload,
129
+ UI_I_ToggleDiagramPortsPayload,
130
+ UI_I_PortToggleFlag,
131
+ UI_I_DiagramData,
132
+ UI_I_SwitchAdapterItem,
133
+ } from '~/components/common/diagramMain/lib/models/interfaces'
134
+ import type {
135
+ UI_I_ArbitraryObject,
136
+ UI_I_ItemsWithTotalCounts,
137
+ } from '~/lib/models/interfaces'
138
+ import type {
139
+ UI_I_Switch,
140
+ UI_I_TCPStack,
141
+ } from '~/components/common/wizards/network/add/lib/models/interfaces'
142
+ import type { UI_T_EditData } from '~/components/common/wizards/network/add/lib/models/types'
143
+ import type { UI_T_Adapters } from '~/components/common/diagramMain/lib/models/types'
144
+ import type { UI_T_Project } from '~/lib/models/types'
145
+ import { UI_E_NetworkType, UI_E_PositionsY } from './lib/models/enums'
146
+ import {
147
+ managePhysicalAdapterStatusInitial,
148
+ mainRectHeightsInitial,
149
+ switchLineInitial,
150
+ selectedPortInitial,
151
+ selectedSwitchLineYInitial,
152
+ selectedAdapterInitial,
153
+ } from '~/components/common/diagramMain/lib/config'
154
+ import {
155
+ hasPortAndNetwork,
156
+ networksPositions,
157
+ getSelectNetworkDataFunc,
158
+ getSelectPortDataFunc,
159
+ countAdaptersHeight,
160
+ getAdaptersPositions,
161
+ } from '~/components/common/diagramMain/lib/utils/utils'
162
+
163
+ const props = withDefaults(
164
+ defineProps<{
165
+ diagramData: UI_I_DiagramData
166
+ project?: UI_T_Project
167
+ inPortlet?: boolean
168
+ standardSwitchesInitial?: UI_I_Switch[]
169
+ hostName?: string
170
+ adapters?: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>
171
+ freeAdapters?: UI_I_Adapter[]
172
+ networksList?: UI_I_Network[]
173
+ isDarkMode: boolean
174
+ tcpStacks?: UI_I_TCPStack[]
175
+ diagramsData?: UI_I_DiagramData[]
176
+ isManageAdaptersModalLoading?: boolean
177
+ isNetworkingLoading?: boolean
178
+ isGetExistingSwitchesLoading?: boolean
179
+ isGetTcpStackLoading?: boolean
180
+ isRemoveModalLoading?: boolean
181
+ isEditModalLoading?: boolean
182
+ isMigrateAdapterLoading?: boolean
183
+ }>(),
184
+ {
185
+ project: 'procurator',
186
+ diagramData: null,
187
+ inPortlet: false,
188
+ standardSwitchesInitial: () => [],
189
+ hostName: '',
190
+ adapters: () => ({
191
+ total_items: 0,
192
+ total_pages: 0,
193
+ items: [],
194
+ }),
195
+ freeAdapters: () => [],
196
+ networksList: () => [],
197
+ tcpStacks: () => [],
198
+ diagramsData: [],
199
+ isManageAdaptersModalLoading: false,
200
+ isNetworkingLoading: false,
201
+ isGetExistingSwitchesLoading: false,
202
+ isGetTcpStackLoading: false,
203
+ isRemoveModalLoading: false,
204
+ isEditModalLoading: false,
205
+ isMigrateAdapterLoading: false,
206
+ }
207
+ )
208
+
209
+ const { $store }: any = useNuxtApp()
210
+
211
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
212
+
213
+ const initialData = ref<UI_I_ModalsInitialData>({})
214
+ const switchInitialData = ref<UI_I_ModalsInitialData>({})
215
+
216
+ watch(
217
+ () => props.diagramData?.networking,
218
+ (initial: UI_I_ModalsInitialData | undefined) => {
219
+ if (initial) {
220
+ initialData.value = initial
221
+ switchInitialData.value = initial
222
+ }
223
+ },
224
+ { deep: true, immediate: true }
225
+ )
226
+
227
+ const onValidateBeforeSending = (
228
+ data: UI_T_EditData,
229
+ type: string,
230
+ setValidation: (messages: UI_I_ArbitraryObject<string>) => void
231
+ ) => {
232
+ emits('add-networking-data-validate', data, type, setValidation)
233
+ }
234
+
235
+ let initialManagePhysicalAdapterStatus = ref<UI_I_AdapterStatus>(
236
+ managePhysicalAdapterStatusInitial
237
+ )
238
+
239
+ const managePhysicalAdapterStatus = ref<UI_I_AdapterStatus>(
240
+ useDeepCopy(initialManagePhysicalAdapterStatus.value)
241
+ )
242
+
243
+ watch(
244
+ () => props.diagramData,
245
+ (newValue: UI_I_DiagramData) => {
246
+ if (newValue?.networking) {
247
+ initialManagePhysicalAdapterStatus.value = {
248
+ active: useDeepCopy(props.diagramData?.networking?.activeAdapters),
249
+ standby: useDeepCopy(props.diagramData?.networking?.standbyAdapters),
250
+ unused: useDeepCopy(props.diagramData?.networking?.unusedAdapters),
251
+ }
252
+
253
+ managePhysicalAdapterStatus.value = useDeepCopy(
254
+ initialManagePhysicalAdapterStatus.value
255
+ )
256
+ }
257
+ },
258
+ { deep: true, immediate: true }
259
+ )
260
+
261
+ const onChangeManagePhysicalAdapterStatus = (
262
+ adapterStatusNew: UI_I_AdapterStatus
263
+ ) => {
264
+ managePhysicalAdapterStatus.value = adapterStatusNew
265
+ }
266
+
267
+ const isShowSwitchManagePhysicalAdaptersModal = ref<boolean>(false)
268
+ const onHideSwitchManagePhysicalAdaptersModal = (): void => {
269
+ isShowSwitchManagePhysicalAdaptersModal.value = false
270
+ }
271
+
272
+ const onSendManagePhysicalAdaptersData = (
273
+ adapterStatus: UI_I_AdapterStatus,
274
+ switchName: string,
275
+ hideModal: () => void
276
+ ) => {
277
+ emits(
278
+ 'send-manage-physical-adapters-data',
279
+ adapterStatus,
280
+ switchName,
281
+ initialData.value,
282
+ hideModal
283
+ )
284
+ }
285
+
286
+ const isShowSwitchViewSettingsModal = ref<boolean>(false)
287
+ const isShowSwitchEditSettingsModal = ref<boolean>(false)
288
+ const isShowSwitchRemoveModal = ref<boolean>(false)
289
+ const onHideSwitchViewSettingsModal = (): void => {
290
+ isShowSwitchViewSettingsModal.value = false
291
+ }
292
+ const onHideSwitchEditSettingsModal = (): void => {
293
+ isShowSwitchEditSettingsModal.value = false
294
+ }
295
+ const onHideSwitchRemoveModal = (): void => {
296
+ isShowSwitchRemoveModal.value = false
297
+ }
298
+
299
+ const isShowAdapterViewSettingsModal = ref<boolean>(false)
300
+ const onHideAdapterViewSettingsModal = (): void => {
301
+ isShowAdapterViewSettingsModal.value = false
302
+ }
303
+
304
+ const isShowNetworkViewSettingsModal = ref<boolean>(false)
305
+ const isShowNetworkEditSettingsModal = ref<boolean>(false)
306
+ const isShowNetworkRemoveModal = ref<boolean>(false)
307
+ const onHideNetworkViewSettingsModal = (): void => {
308
+ isShowNetworkViewSettingsModal.value = false
309
+ }
310
+ const onHideNetworkEditSettingsModal = (): void => {
311
+ isShowNetworkEditSettingsModal.value = false
312
+ }
313
+ const onHideNetworkRemoveModal = (): void => {
314
+ isShowNetworkRemoveModal.value = false
315
+ }
316
+
317
+ const isShowPortViewSettingsModal = ref<boolean>(false)
318
+ const isShowPortEditSettingsModal = ref<boolean>(false)
319
+ const isShowPortRemoveModal = ref<boolean>(false)
320
+ const onHidePortViewSettingsModal = (): void => {
321
+ isShowPortViewSettingsModal.value = false
322
+ }
323
+ const onHidePortEditSettingsModal = (): void => {
324
+ isShowPortEditSettingsModal.value = false
325
+ }
326
+ const onHidePortRemoveModal = (): void => {
327
+ isShowPortRemoveModal.value = false
328
+ }
329
+
330
+ const isShowVCenterViewSettingsModal = ref<boolean>(false)
331
+ const onHideVCenterViewSettingsModal = (): void => {
332
+ isShowVCenterViewSettingsModal.value = false
333
+ }
334
+ const isShowAddNetworkingModal = ref<boolean>(false)
335
+ const onHideAddNetworkingModal = (): void => {
336
+ isShowAddNetworkingModal.value = false
337
+ }
338
+ const isShowMigrateVmkernelAdapterModal = ref<boolean>(false)
339
+ const onHideMigrateVmkernelAdapterModal = (): void => {
340
+ isShowMigrateVmkernelAdapterModal.value = false
341
+ }
342
+
343
+ const selectedStandardSwitchId = ref<string>('')
344
+ const selectedSwitchId = ref<string>('')
345
+
346
+ const onShowModal = (
347
+ value: string,
348
+ properties: UI_I_ModalsInitialData
349
+ ): void => {
350
+ switch (value) {
351
+ case 'port-view-settings':
352
+ initialData.value = properties
353
+ isShowPortViewSettingsModal.value = true
354
+ break
355
+ case 'network-view-settings':
356
+ isShowNetworkViewSettingsModal.value = true
357
+ initialData.value = properties
358
+ break
359
+ case 'adapter-view-settings':
360
+ isShowAdapterViewSettingsModal.value = true
361
+ initialData.value = properties
362
+ break
363
+ case 'v-center-view-settings':
364
+ isShowVCenterViewSettingsModal.value = true
365
+ initialData.value = properties
366
+ break
367
+ case 'network-edit-settings':
368
+ isShowNetworkEditSettingsModal.value = true
369
+ initialData.value = properties
370
+ break
371
+ case 'port-edit-settings':
372
+ initialData.value = properties
373
+ isShowPortEditSettingsModal.value = true
374
+ break
375
+ case 'network-port-remove':
376
+ initialData.value = properties
377
+ isShowNetworkRemoveModal.value = true
378
+ break
379
+ case 'port-remove':
380
+ initialData.value = properties
381
+ isShowPortRemoveModal.value = true
382
+ break
383
+ case 'switch-edit':
384
+ isShowSwitchEditSettingsModal.value = true
385
+ initialData.value = useDeepCopy(switchInitialData.value)
386
+ break
387
+ case 'switch-manage-physical-adapters':
388
+ isShowSwitchManagePhysicalAdaptersModal.value = true
389
+ initialData.value = useDeepCopy(switchInitialData.value)
390
+ break
391
+ case 'add-networking':
392
+ isShowAddNetworkingModal.value = true
393
+ selectedStandardSwitchId.value = properties.switch_name
394
+ selectedSwitchId.value = properties.switch_name
395
+ break
396
+ case 'switch-view-settings':
397
+ isShowSwitchViewSettingsModal.value = true
398
+ initialData.value = useDeepCopy(switchInitialData.value)
399
+ break
400
+ case 'migrate-vmkernel-adapter':
401
+ isShowMigrateVmkernelAdapterModal.value = true
402
+ break
403
+ case 'switch-remove':
404
+ isShowSwitchRemoveModal.value = true
405
+ break
406
+ }
407
+ }
408
+
409
+ const onRemove = (id: string, type: string) => {
410
+ if (
411
+ (type === 'network' || type === 'network1' || type === 'network2') &&
412
+ selectedNetwork.value === id
413
+ ) {
414
+ selectedNetwork.value = '-1'
415
+ resetSelection()
416
+ } else if (type === 'port' && selectedPort.value.portId === id) {
417
+ selectedPort.value.networkId = '-1'
418
+ selectedPort.value.portId = '-1'
419
+ resetSelection()
420
+ }
421
+
422
+ const hideModal =
423
+ type === 'network' || type === 'network1' || type === 'network2'
424
+ ? onHideNetworkRemoveModal
425
+ : type === 'switch'
426
+ ? onHideSwitchRemoveModal
427
+ : onHidePortRemoveModal
428
+
429
+ emits('remove', id, type, hideModal)
430
+ }
431
+ const onChangeEditFieldsData = (newEditFieldsData: UI_I_EditFieldsData) => {
432
+ emits('change-edit-fields-data', newEditFieldsData)
433
+ }
434
+ const onCheckNetworkLabel = (
435
+ label: string,
436
+ sendMessage: (message: string) => void
437
+ ) => {
438
+ emits('check-network-label', label, sendMessage)
439
+ }
440
+ const onGetExistingStandardSwitches = () => {
441
+ emits('get-existing-standard-switches')
442
+ }
443
+ const onGetTcpStacks = () => {
444
+ emits('get-tcp-stacks')
445
+ }
446
+ const onGetFreeAdapters = (showModal: () => void) => {
447
+ emits('get-free-adapters', showModal)
448
+ }
449
+ const onSendNetworkData = (
450
+ data: UI_T_EditData,
451
+ type: string,
452
+ hideModal: () => void
453
+ ) => {
454
+ emits('send-add-networking-data', data, type, hideModal)
455
+ }
456
+ const onSendEditData = (type: string, hideModal: () => void, id?: string) => {
457
+ emits('send-edit-data', type, initialData.value, hideModal, id)
458
+ }
459
+ const isShowDiagram = ref<boolean>(true)
460
+ const onToggleDiagram = () => {
461
+ isShowDiagram.value = !isShowDiagram.value
462
+ }
463
+ const mainRectHeights = ref<UI_I_MainRectHeights>(
464
+ useDeepCopy(mainRectHeightsInitial)
465
+ )
466
+
467
+ const switchLine = ref<UI_I_SwitchLine>(useDeepCopy(switchLineInitial))
468
+ const mainSwitchLine = computed<UI_I_SwitchLine>(
469
+ () =>
470
+ (switchLine.value.ay && {
471
+ y1: Math.min(switchLine.value.y1, switchLine.value.ay),
472
+ y2: Math.max(switchLine.value.y2, switchLine.value.ay),
473
+ }) || { y1: 0, y2: 0 }
474
+ )
475
+
476
+ const selectedMainLine = ref(false)
477
+ const selectedPort = ref<UI_I_SelectedPort>(useDeepCopy(selectedPortInitial))
478
+ const selectedAdapter = ref<UI_I_SelectedAdapter>(
479
+ useDeepCopy(selectedAdapterInitial)
480
+ )
481
+ const selectedNetwork = ref<string>('-1')
482
+
483
+ const selectedSwitchLineY = ref<UI_I_SwitchLine>(
484
+ useDeepCopy(selectedSwitchLineYInitial)
485
+ )
486
+ const mainRectHeight = computed<number>(() =>
487
+ Math.max(
488
+ mainRectHeights.value.networksHeight,
489
+ mainRectHeights.value.adaptersHeight
490
+ )
491
+ )
492
+
493
+ const countNetworksPositions = (
494
+ newNetworks?: UI_I_Network[] | null
495
+ ): UI_I_NetworksWithPositions[] => {
496
+ let lastNetworkHeight = 0
497
+ let lastPosition = UI_E_PositionsY.DIAGRAM_TOP + UI_E_PositionsY.BETWEEN_RECTS
498
+ mainRectHeights.value.networksHeight =
499
+ UI_E_PositionsY.DIAGRAM_TOP + UI_E_PositionsY.BETWEEN_RECTS
500
+
501
+ const lastIndex = props.diagramData?.networks.findLastIndex(
502
+ (network: UI_I_Network) =>
503
+ network.activeAdapters.length > 0 && network.state.state !== 3
504
+ )
505
+
506
+ return (
507
+ (newNetworks ? newNetworks : props.diagramData?.networks)?.map(
508
+ (network: UI_I_Network, index: number) => {
509
+ let portsCount = 0
510
+ if (
511
+ network.networkType ===
512
+ (UI_E_NetworkType.VMPortsGroup || UI_E_NetworkType.VCenter)
513
+ ) {
514
+ portsCount = network.ports.length
515
+ } else {
516
+ portsCount = network.sysx ? 1 : 0
517
+ }
518
+ const portsHeight = network.toggle
519
+ ? network.networkType === UI_E_NetworkType.VCenter
520
+ ? portsCount * UI_E_PositionsY.SINGLE_V_CENTER_HEIGHT
521
+ : portsCount * UI_E_PositionsY.SINGLE_PORT_HEIGHT
522
+ : 0
523
+ const networkHeight =
524
+ UI_E_PositionsY.PORTS_FROM_RECT_TOP +
525
+ portsHeight +
526
+ (network.networkType === UI_E_NetworkType.VCenter
527
+ ? UI_E_PositionsY.SINGLE_V_CENTER_HEIGHT - 10
528
+ : UI_E_PositionsY.SINGLE_PORT_HEIGHT) +
529
+ UI_E_PositionsY.SPACE_FROM_RECT_BOTTOM
530
+
531
+ lastPosition +=
532
+ lastNetworkHeight + (index && UI_E_PositionsY.BETWEEN_RECTS)
533
+ lastNetworkHeight = networkHeight
534
+
535
+ const connectLineY = lastPosition + networkHeight / 2
536
+ const titlePosition = lastPosition + UI_E_PositionsY.TITLE_FROM_RECT_TOP
537
+ const vlanPosition = lastPosition + UI_E_PositionsY.VLAN_FROM_RECT_TOP
538
+ const portsPosition = lastPosition + UI_E_PositionsY.PORTS_FROM_RECT_TOP
539
+
540
+ const networkPortsName =
541
+ (network.networkType === UI_E_NetworkType.VMkernel &&
542
+ 'VMkernel Ports') ||
543
+ (network.networkType === UI_E_NetworkType.VMPortsGroup &&
544
+ 'Virtual Machines') ||
545
+ (network.networkType === UI_E_NetworkType.VCenter &&
546
+ 'Virtual Machines') ||
547
+ ''
548
+
549
+ lastIndex !== -1 && index === 0 && (switchLine.value.y1 = connectLineY)
550
+ lastIndex !== -1 &&
551
+ index === lastIndex &&
552
+ (switchLine.value.y2 = connectLineY)
553
+
554
+ mainRectHeights.value.networksHeight +=
555
+ networkHeight + UI_E_PositionsY.BETWEEN_RECTS
556
+
557
+ const networkWithPortsPositions =
558
+ network.networkType ===
559
+ (UI_E_NetworkType.VMPortsGroup || UI_E_NetworkType.VCenter)
560
+ ? network.ports.map((port, index) => {
561
+ const portPosition =
562
+ portsPosition +
563
+ (network.networkType === UI_E_NetworkType.VCenter
564
+ ? (index + 1) * UI_E_PositionsY.SINGLE_V_CENTER_HEIGHT - 10
565
+ : (index + 1) * UI_E_PositionsY.SINGLE_PORT_HEIGHT)
566
+
567
+ return {
568
+ ...port,
569
+ portPosition,
570
+ }
571
+ })
572
+ : (network.sysx && [
573
+ {
574
+ id: network.sysx?.id,
575
+ name: `${network.sysx?.id} ${
576
+ network.sysx.ipv4_settings.ipv4
577
+ ? `: ${network.sysx.ipv4_settings.ipv4}`
578
+ : ''
579
+ }`,
580
+ state: network.sysx.state,
581
+ testId: `port-${network.sysx?.id}`,
582
+ portPosition:
583
+ portsPosition + UI_E_PositionsY.SINGLE_PORT_HEIGHT,
584
+ },
585
+ ]) ||
586
+ []
587
+
588
+ return {
589
+ ...network,
590
+ ports: networkWithPortsPositions,
591
+ portsCount,
592
+ portsHeight,
593
+ networkHeight,
594
+ rectPosition: lastPosition,
595
+ connectLineY,
596
+ titlePosition,
597
+ vlanPosition,
598
+ vlanId: network.vlanId || '--',
599
+ portsPosition,
600
+ networkPortsName,
601
+ }
602
+ }
603
+ ) || []
604
+ )
605
+ }
606
+ const networksWithPositions = ref<UI_I_NetworksWithPositions[]>(
607
+ countNetworksPositions()
608
+ )
609
+
610
+ const isPortToggled = ref<UI_I_PortToggleFlag>({
611
+ value: false,
612
+ id: '',
613
+ })
614
+
615
+ const countAdaptersPositions = (): UI_I_AdaptersWithPositions => {
616
+ const { height, toggle, adaptersCount } = countAdaptersHeight(
617
+ props.diagramData
618
+ )
619
+
620
+ mainRectHeights.value.adaptersHeight =
621
+ UI_E_PositionsY.DIAGRAM_TOP + UI_E_PositionsY.BETWEEN_RECTS * 2 + height
622
+
623
+ const { titlePosition, rectPosition, adaptersConnectLineY, adapters } =
624
+ getAdaptersPositions(props.diagramData, height)
625
+
626
+ switchLine.value.ay = adaptersConnectLineY
627
+
628
+ return {
629
+ toggle,
630
+ height,
631
+ adapters,
632
+ rectPosition,
633
+ adaptersConnectLineY,
634
+ titlePosition,
635
+ adaptersCount,
636
+ }
637
+ }
638
+
639
+ const adaptersWithPositions = computed<UI_I_AdaptersWithPositions>(() => {
640
+ return countAdaptersPositions()
641
+ })
642
+
643
+ const networksCount = computed<number>(
644
+ () =>
645
+ networksWithPositions.value.filter(
646
+ (networkWithPositions: UI_I_NetworksWithPositions) =>
647
+ networkWithPositions.activeAdapters.length > 0 &&
648
+ networkWithPositions.state.state !== 3
649
+ ).length
650
+ )
651
+
652
+ watch(
653
+ () => props.diagramData?.networks,
654
+ (newValue: UI_I_Network[] | null) => {
655
+ networksWithPositions.value = countNetworksPositions(newValue)
656
+
657
+ isPortToggled.value.value && handlePortToggle()
658
+
659
+ if (selectedAdapter.value.adapterId !== '-1') {
660
+ onSelectAdapter(selectedAdapter.value.adapterId)
661
+ return
662
+ }
663
+
664
+ if (selectedPort.value.portId !== '-1') {
665
+ onSelectPort(selectedPort.value.networkId, selectedPort.value.portId)
666
+ return
667
+ }
668
+
669
+ if (selectedNetwork.value !== '-1') {
670
+ cashedNetworkId.value = '-1'
671
+ onSelectNetwork(selectedNetwork.value)
672
+ return
673
+ }
674
+
675
+ if (selectedMainLine.value && networksCount.value === 0) {
676
+ selectedMainLine.value = false
677
+ return
678
+ }
679
+
680
+ if (selectedMainLine.value) return
681
+
682
+ resetSelection()
683
+ },
684
+ { deep: true }
685
+ )
686
+
687
+ const onSelectPort = (networkId: string, portId: string): void => {
688
+ const selectPortData = getSelectPortDataFunc(
689
+ networkId,
690
+ portId,
691
+ networksWithPositions.value,
692
+ adaptersWithPositions.value
693
+ )
694
+
695
+ if (!selectPortData) return
696
+
697
+ selectedSwitchLineY.value = selectPortData.selectedSwitchLineY
698
+ selectedPort.value = selectPortData.selectedPort
699
+ }
700
+
701
+ const cashedNetworkId = ref<string>('-1')
702
+
703
+ const onSelectNetwork = (networkId: string): void => {
704
+ if (cashedNetworkId.value === networkId) {
705
+ resetSelection()
706
+ cashedNetworkId.value = '-1'
707
+ return
708
+ }
709
+
710
+ selectedNetwork.value = networkId
711
+
712
+ const selectNetworkData = getSelectNetworkDataFunc(
713
+ networkId,
714
+ networksWithPositions.value,
715
+ adaptersWithPositions.value
716
+ )
717
+
718
+ cashedNetworkId.value = networkId
719
+
720
+ if (!selectNetworkData) return
721
+
722
+ selectedSwitchLineY.value = selectNetworkData.selectedSwitchLineY
723
+ selectedPort.value = selectNetworkData.selectedPort
724
+ }
725
+
726
+ const onSelectAdapter = (adapterId: string): void => {
727
+ const selectedNetworks: UI_I_NetworksWithPositions[] =
728
+ networksWithPositions.value?.filter(
729
+ (network: UI_I_NetworksWithPositions) =>
730
+ network.activeAdapters.includes(adapterId) && network.state.state !== 3
731
+ )
732
+
733
+ let pos: number[] = selectedNetworks?.reduce(networksPositions, [])
734
+ let selectedAdapterPosition: number | null =
735
+ adaptersWithPositions.value.adapters?.find(
736
+ (adapter: UI_T_Adapters) => adapter.id === adapterId
737
+ )?.adapterPosition || null
738
+
739
+ selectedAdapterPosition !== null &&
740
+ (selectedAdapterPosition += 7.5) &&
741
+ pos?.push(selectedAdapterPosition)
742
+
743
+ pos = pos?.sort((y1, y2) => y1 - y2)
744
+
745
+ if (pos) {
746
+ selectedSwitchLineY.value = {
747
+ y1: pos[0],
748
+ y2: pos[pos.length - 1],
749
+ }
750
+ }
751
+
752
+ selectedAdapter.value = {
753
+ adapterId,
754
+ connectedPorts:
755
+ selectedNetworks?.map((network: UI_I_Network) => ({
756
+ networkId: network.id,
757
+ ports: network.ports.map((port) => port.id),
758
+ })) || [],
759
+ }
760
+ }
761
+
762
+ const resetSelection = (): void => {
763
+ selectedPort.value = useDeepCopy(selectedPortInitial)
764
+ selectedSwitchLineY.value = useDeepCopy(selectedSwitchLineYInitial)
765
+ selectedAdapter.value = useDeepCopy(selectedAdapterInitial)
766
+ selectedNetwork.value = '-1'
767
+ selectedMainLine.value = false
768
+ }
769
+
770
+ const emits = defineEmits<{
771
+ (
772
+ event: 'toggle-ports',
773
+ payload: Omit<UI_I_ToggleDiagramPortsPayload, 'paths'>
774
+ ): void
775
+ (
776
+ event: 'toggle-adapters',
777
+ payload: Omit<UI_I_ToggleDiagramAdaptersPayload, 'paths'>
778
+ ): void
779
+ (event: 'get-existing-standard-switches'): void
780
+ (
781
+ event: 'send-add-networking-data',
782
+ data: UI_T_EditData,
783
+ type: string,
784
+ hideModal: () => void
785
+ ): void
786
+ (
787
+ event: 'add-networking-data-validate',
788
+ data: UI_T_EditData,
789
+ type: string,
790
+ setValidation: (message: UI_I_ArbitraryObject<string>) => void
791
+ ): void
792
+ (
793
+ event: 'check-network-label',
794
+ label: string,
795
+ sendMessage: (message: string) => void
796
+ ): void
797
+ (event: 'get-free-adapters', showModal: () => void): void
798
+ (
799
+ event: 'send-edit-data',
800
+ type: string,
801
+ initialData: UI_I_ModalsInitialData,
802
+ hideModal: () => void,
803
+ id?: string
804
+ ): void
805
+ (event: 'change-edit-fields-data', editFieldsData: UI_I_EditFieldsData): void
806
+ (event: 'remove', id: string, type: string, hideModal: () => void): void
807
+ (
808
+ event: 'send-manage-physical-adapters-data',
809
+ adapterStatus: UI_I_AdapterStatus,
810
+ switchName: string,
811
+ initialData: UI_I_ModalsInitialData,
812
+ hideModal: () => void
813
+ ): void
814
+ (event: 'get-tcp-stacks'): void
815
+ }>()
816
+
817
+ const onTogglePorts = (
818
+ id: string,
819
+ isToggle: boolean,
820
+ diagramId: string
821
+ ): void => {
822
+ emits('toggle-ports', {
823
+ id,
824
+ isToggle,
825
+ diagramId,
826
+ })
827
+
828
+ isPortToggled.value = {
829
+ value: true,
830
+ id: id,
831
+ }
832
+ }
833
+
834
+ const handlePortToggle = () => {
835
+ cashedNetworkId.value = '-1'
836
+
837
+ selectedPort.value.portId !== '-1' &&
838
+ onSelectPort(selectedPort.value.networkId, selectedPort.value.portId)
839
+ selectedAdapter.value.adapterId !== '-1' &&
840
+ onSelectAdapter(selectedAdapter.value.adapterId)
841
+ selectedNetwork.value !== '-1' && onSelectNetwork(selectedNetwork.value)
842
+ hasPortAndNetwork(selectedPort.value, isPortToggled.value.id) &&
843
+ resetSelection()
844
+
845
+ isPortToggled.value = {
846
+ value: false,
847
+ id: '',
848
+ }
849
+ }
850
+
851
+ const onToggleAdapters = (): void => {
852
+ cashedNetworkId.value = '-1'
853
+
854
+ const newState = !adaptersWithPositions.value.toggle
855
+ const payload: Omit<UI_I_ToggleDiagramAdaptersPayload, 'paths'> = {
856
+ isToggle: newState,
857
+ diagramId: props.diagramData?.id || '',
858
+ }
859
+
860
+ emits('toggle-adapters', payload)
861
+
862
+ selectedPort.value.portId !== '-1' &&
863
+ onSelectPort(selectedPort.value.networkId, selectedPort.value.portId)
864
+ selectedAdapter.value.adapterId !== '-1' && resetSelection()
865
+ selectedNetwork.value !== '-1' && onSelectNetwork(selectedNetwork.value)
866
+ }
867
+
868
+ const onClickDiagram = (ev: MouseEvent): void => {
869
+ const target = ev.target as HTMLElement
870
+ const targetClassList = target.classList
871
+
872
+ if (!targetClassList.contains('network-title')) {
873
+ cashedNetworkId.value = '-1'
874
+ }
875
+
876
+ if (targetClassList.contains('main-line__handler')) {
877
+ resetSelection()
878
+ selectedMainLine.value = true
879
+ } else {
880
+ !(
881
+ target.closest('.diagram-block__toggle') ||
882
+ target.closest('.diagram-actions') ||
883
+ target.closest('.dropdown-actions-container')
884
+ ) && resetSelection()
885
+ }
886
+ }
887
+ </script>
888
+
889
+ <style scoped lang="scss">
890
+ .diagram {
891
+ &-min-width {
892
+ //min-width: 745px;
893
+ //min-width: 764px;
894
+ &:not(:first-of-type) {
895
+ margin-top: 16px;
896
+ }
897
+ }
898
+ &-main-container {
899
+ padding-top: 5px;
900
+ }
901
+ }
902
+
903
+ .diagram-main-container.is-new-view {
904
+ //display: flex;
905
+ //justify-content: center;
906
+ //margin: 16px 16px 30px;
907
+
908
+ padding: 16px;
909
+ border-radius: 8px;
910
+ background: var(--diagram-container-bg);
911
+ box-shadow: 0 1px 4px 0 #00000014;
912
+
913
+ &.in-portlet {
914
+ box-shadow: none;
915
+ padding: 0;
916
+ }
917
+ }
918
+ </style>
919
+ <style lang="scss">
920
+ .diagram-main-actions__popup.navbar-dropdown-menu {
921
+ .btn {
922
+ border-radius: 3px;
923
+ border-bottom: none;
924
+ &:hover {
925
+ border-bottom: none;
926
+ }
927
+ span {
928
+ font-size: 14px;
929
+ }
930
+ &:active {
931
+ box-shadow: none;
932
+ }
933
+ }
934
+ }
935
+ </style>