bfg-common 1.6.77 → 1.6.78

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/assets/localization/local_be.json +4461 -4213
  2. package/assets/localization/local_en.json +4466 -4217
  3. package/assets/localization/local_hy.json +4465 -4217
  4. package/assets/localization/local_kk.json +4464 -4216
  5. package/assets/localization/local_ru.json +4464 -4216
  6. package/assets/localization/local_zh.json +4462 -4214
  7. package/assets/scss/common/global.scss +11 -0
  8. package/assets/scss/common/normalize.scss +3 -0
  9. package/assets/scss/common/theme.scss +2 -2
  10. package/components/atoms/stack/StackBlock.vue +1 -1
  11. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +2 -2
  12. package/components/atoms/tooltip/TooltipError.vue +3 -0
  13. package/components/common/adapterManager/AdapterManager.vue +473 -473
  14. package/components/common/adapterManager/AdapterManagerNew.vue +86 -0
  15. package/components/common/adapterManager/AdapterManagerOld.vue +498 -498
  16. package/components/common/adapterManager/addAdapterModal/AddAdapterModal.vue +70 -70
  17. package/components/common/adapterManager/addAdapterModal/AddAdapterModalNew.vue +110 -110
  18. package/components/common/adapterManager/addAdapterModal/AddAdapterModalOld.vue +531 -531
  19. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModal.vue +32 -32
  20. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModalNew.vue +37 -38
  21. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModalOld.vue +73 -73
  22. package/components/common/adapterManager/lib/config/index.ts +19 -19
  23. package/components/common/adapterManager/noActiveAdaptersModal/NoActiveAdaptersModal.vue +31 -31
  24. package/components/common/adapterManager/noActiveAdaptersModal/NoActiveAdaptersModalNew.vue +34 -34
  25. package/components/common/adapterManager/noActiveAdaptersModal/NoActiveAdaptersModalOld.vue +57 -57
  26. package/components/common/adapterManager/noConnectedActiveAdaptersModal/NoConnectedActiveAdaptersModal.vue +31 -31
  27. package/components/common/adapterManager/noConnectedActiveAdaptersModal/NoConnectedActiveAdaptersModalNew.vue +34 -34
  28. package/components/common/adapterManager/noConnectedActiveAdaptersModal/NoConnectedActiveAdaptersModalOld.vue +57 -57
  29. package/components/common/adapterManager/ui/actions/AddAdapterButton.vue +34 -34
  30. package/components/common/adapterManager/ui/actions/RemoveAdapterButton.vue +41 -41
  31. package/components/common/adapterManager/ui/actions/VerticalSeparator.vue +10 -10
  32. package/components/common/adapterManager/ui/actions/bar/Bar.vue +2 -0
  33. package/components/common/adapterManager/ui/actions/bar/BarNew.vue +3 -2
  34. package/components/common/adapterManager/ui/actions/bar/BarOld.vue +95 -95
  35. package/components/common/adapterManager/ui/actions/moveDownAdapterButton/MoveDownAdapterButton.vue +28 -28
  36. package/components/common/adapterManager/ui/actions/moveDownAdapterButton/MoveDownAdapterButtonNew.vue +76 -76
  37. package/components/common/adapterManager/ui/actions/moveDownAdapterButton/MoveDownAdapterButtonOld.vue +33 -33
  38. package/components/common/adapterManager/ui/actions/moveUpAdapterButton/MoveUpAdapterButton.vue +28 -28
  39. package/components/common/adapterManager/ui/actions/moveUpAdapterButton/MoveUpAdapterButtonNew.vue +77 -77
  40. package/components/common/adapterManager/ui/actions/moveUpAdapterButton/MoveUpAdapterButtonOld.vue +33 -33
  41. package/components/common/adapterManager/ui/noSelectedAdapter/NoSelectedAdapter.vue +24 -24
  42. package/components/common/adapterManager/ui/noSelectedAdapter/NoSelectedAdapterNew.vue +18 -18
  43. package/components/common/adapterManager/ui/noSelectedAdapter/NoSelectedAdapterOld.vue +38 -38
  44. package/components/common/adapterManager/ui/secondTitle/SecondTitle.vue +31 -31
  45. package/components/common/adapterManager/ui/secondTitle/SecondTitleNew.vue +51 -51
  46. package/components/common/adapterManager/ui/secondTitle/SecondTitleOld.vue +35 -35
  47. package/components/common/adapterManager/ui/table/Table.vue +88 -88
  48. package/components/common/adapterManager/ui/table/TableNew.vue +137 -137
  49. package/components/common/adapterManager/ui/table/TableOld.vue +141 -141
  50. package/components/common/adapterManager/ui/table/adapters/Adapters.vue +44 -44
  51. package/components/common/adapterManager/ui/table/adapters/AdaptersNew.vue +187 -186
  52. package/components/common/adapterManager/ui/table/adapters/AdaptersOld.vue +87 -87
  53. package/components/common/adapterManager/ui/table/header/Header.vue +57 -57
  54. package/components/common/adapterManager/ui/table/header/HeaderNew.vue +81 -81
  55. package/components/common/adapterManager/ui/table/header/HeaderOld.vue +79 -79
  56. package/components/common/adapterManager/ui/table/lib/models/types.ts +1 -1
  57. package/components/common/certificate/Certificate.vue +6 -16
  58. package/components/common/certificate/{Info/Old.vue → CertificateInfo.vue} +34 -6
  59. package/components/common/certificate/{tools/Tools.vue → Tools.vue} +23 -18
  60. package/components/common/certificate/lib/config/tabsPannel.ts +22 -0
  61. package/components/common/configure/physicalAdapters/PhysicalAdapters.vue +6 -0
  62. package/components/common/configure/physicalAdapters/PhysicalAdaptersNew.vue +219 -192
  63. package/components/common/configure/physicalAdapters/PhysicalAdaptersOld.vue +6 -4
  64. package/components/common/configure/physicalAdapters/buttons/Buttons.vue +1 -0
  65. package/components/common/configure/physicalAdapters/modals/edit/Edit.vue +26 -1
  66. package/components/common/configure/physicalAdapters/modals/edit/EditNew.vue +30 -1
  67. package/components/common/configure/physicalAdapters/modals/edit/lib/models/interfaces.ts +5 -0
  68. package/components/common/configure/physicalAdapters/modals/edit/lib/validations/validations.ts +19 -0
  69. package/components/common/configure/physicalAdapters/tableView/TableViewNew.vue +12 -1
  70. package/components/common/configure/physicalAdapters/tableView/lib/config/physicalAdaptersTableConfigNew.ts +21 -21
  71. package/components/common/configure/physicalAdapters/tableView/lib/config/settings.ts +12 -5
  72. package/components/common/configure/physicalAdapters/tableView/lib/models/interfaces.ts +4 -1
  73. package/components/common/diagramMain/Diagram.vue +169 -85
  74. package/components/common/diagramMain/DiagramMain.vue +40 -10
  75. package/components/common/diagramMain/adapter/Adapter.vue +123 -123
  76. package/components/common/diagramMain/adapter/AdapterItem.vue +438 -438
  77. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  78. package/components/common/diagramMain/adapter/Contents.vue +212 -212
  79. package/components/common/diagramMain/adapter/Lines.vue +81 -81
  80. package/components/common/diagramMain/adapter/block/Block.vue +27 -27
  81. package/components/common/diagramMain/adapter/block/BlockNew.vue +58 -58
  82. package/components/common/diagramMain/adapter/block/BlockOld.vue +50 -50
  83. package/components/common/diagramMain/adapter/secondBlock/SecondBlock.vue +27 -27
  84. package/components/common/diagramMain/adapter/secondBlock/SecondBlockNew.vue +60 -60
  85. package/components/common/diagramMain/adapter/secondBlock/SecondBlockOld.vue +51 -51
  86. package/components/common/diagramMain/header/Header.vue +49 -0
  87. package/components/common/diagramMain/header/HeaderNew.vue +155 -0
  88. package/components/common/diagramMain/{Header.vue → header/HeaderOld.vue} +78 -67
  89. package/components/common/diagramMain/highlights/Highlights.vue +151 -151
  90. package/components/common/diagramMain/highlights/HighlightsNew.vue +124 -124
  91. package/components/common/diagramMain/highlights/HighlightsOld.vue +107 -107
  92. package/components/common/diagramMain/lib/config/index.ts +81 -81
  93. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  94. package/components/common/diagramMain/lib/config/positions.ts +194 -194
  95. package/components/common/diagramMain/lib/models/enums.ts +44 -44
  96. package/components/common/diagramMain/lib/models/interfaces.ts +760 -760
  97. package/components/common/diagramMain/lib/models/types.ts +21 -21
  98. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  99. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +331 -331
  100. package/components/common/diagramMain/modals/Modals.vue +483 -479
  101. package/components/common/diagramMain/modals/UnsavedChangesModal.vue +32 -0
  102. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +104 -102
  103. package/components/common/diagramMain/modals/editSettings/EditSettingsNew.vue +285 -0
  104. package/components/common/diagramMain/modals/editSettings/EditSettingsOld.vue +254 -0
  105. package/components/common/diagramMain/modals/editSettings/confirmTeamingSettingsModal/ConfirmTeamingSettingsModal.vue +31 -0
  106. package/components/common/diagramMain/modals/editSettings/confirmTeamingSettingsModal/ConfirmTeamingSettingsModalNew.vue +82 -0
  107. package/components/common/diagramMain/modals/editSettings/{ConfirmTeamingSettingsModal.vue → confirmTeamingSettingsModal/ConfirmTeamingSettingsModalOld.vue} +2 -5
  108. package/components/common/diagramMain/modals/editSettings/lib/config/config.ts +15 -0
  109. package/components/common/diagramMain/modals/editSettings/lib/models/interfaces.ts +6 -0
  110. package/components/common/diagramMain/modals/editSettings/lib/utils/utils.ts +177 -0
  111. package/components/common/diagramMain/modals/editSettings/modal/EditSettingsModal.vue +137 -0
  112. package/components/common/diagramMain/modals/editSettings/modal/EditSettingsModalNew.vue +91 -0
  113. package/components/common/diagramMain/modals/editSettings/{EditSettingsModal.vue → modal/EditSettingsModalOld.vue} +12 -51
  114. package/components/common/diagramMain/modals/editSettings/tabs/networkProperties/NetworkProperties.vue +158 -0
  115. package/components/common/diagramMain/modals/editSettings/tabs/networkProperties/NetworkPropertiesNew.vue +262 -0
  116. package/components/common/diagramMain/modals/editSettings/tabs/{NetworkProperties.vue → networkProperties/NetworkPropertiesOld.vue} +12 -113
  117. package/components/common/diagramMain/modals/editSettings/tabs/port/ipvFourSettings/IpvFourSettings.vue +192 -0
  118. package/components/common/diagramMain/modals/editSettings/tabs/port/ipvFourSettings/IpvFourSettingsNew.vue +388 -0
  119. package/components/common/diagramMain/modals/editSettings/tabs/port/{IpvFourSettings.vue → ipvFourSettings/IpvFourSettingsOld.vue} +11 -152
  120. package/components/common/diagramMain/modals/editSettings/tabs/port/portProperties/PortProperties.vue +139 -0
  121. package/components/common/diagramMain/modals/editSettings/tabs/port/portProperties/PortPropertiesNew.vue +286 -0
  122. package/components/common/diagramMain/modals/editSettings/tabs/port/{PortProperties.vue → portProperties/PortPropertiesOld.vue} +12 -103
  123. package/components/common/diagramMain/modals/editSettings/tabs/security/Security.vue +209 -0
  124. package/components/common/diagramMain/modals/editSettings/tabs/security/SecurityNew.vue +233 -0
  125. package/components/common/diagramMain/modals/editSettings/tabs/{Security.vue → security/SecurityOld.vue} +25 -48
  126. package/components/common/diagramMain/modals/editSettings/tabs/switchProperties/SwitchProperties.vue +128 -0
  127. package/components/common/diagramMain/modals/editSettings/tabs/switchProperties/SwitchPropertiesNew.vue +235 -0
  128. package/components/common/diagramMain/modals/editSettings/tabs/switchProperties/SwitchPropertiesOld.vue +87 -0
  129. package/components/common/diagramMain/modals/editSettings/tabs/teamingFailover/TeamingFailover.vue +99 -0
  130. package/components/common/diagramMain/modals/editSettings/tabs/teamingFailover/TeamingFailoverNew.vue +319 -0
  131. package/components/common/diagramMain/modals/editSettings/tabs/{TeamingFailover.vue → teamingFailover/TeamingFailoverOld.vue} +11 -48
  132. package/components/common/diagramMain/modals/editSettings/tabs/trafficShaping/TrafficShaping.vue +173 -0
  133. package/components/common/diagramMain/modals/editSettings/tabs/trafficShaping/TrafficShapingNew.vue +348 -0
  134. package/components/common/diagramMain/modals/editSettings/tabs/{TrafficShaping.vue → trafficShaping/TrafficShapingOld.vue} +12 -134
  135. package/components/common/diagramMain/modals/lib/config/adapterModal.ts +147 -147
  136. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +43 -2
  137. package/components/common/diagramMain/modals/lib/config/index.ts +2 -1
  138. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  139. package/components/common/diagramMain/modals/lib/config/networkModal.ts +405 -405
  140. package/components/common/diagramMain/modals/lib/config/portModal.ts +253 -253
  141. package/components/common/diagramMain/modals/lib/config/switchModal.ts +245 -245
  142. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  143. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  144. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +88 -88
  145. package/components/common/diagramMain/modals/lib/utils/index.ts +34 -4
  146. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +541 -541
  147. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  148. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +170 -170
  149. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  150. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/VmkernelAdapterReadyComplete.vue +49 -49
  151. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +19 -19
  152. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  153. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  154. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  155. package/components/common/diagramMain/modals/remove/RemoveModal.vue +82 -82
  156. package/components/common/diagramMain/modals/remove/RemoveModalNew.vue +106 -106
  157. package/components/common/diagramMain/modals/remove/RemoveModalOld.vue +241 -241
  158. package/components/common/diagramMain/modals/viewSettings/info/Info.vue +57 -57
  159. package/components/common/diagramMain/modals/viewSettings/info/InfoNew.vue +174 -174
  160. package/components/common/diagramMain/modals/viewSettings/info/InfoOld.vue +141 -141
  161. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettings.vue +45 -45
  162. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettingsNew.vue +323 -323
  163. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettingsOld.vue +203 -203
  164. package/components/common/diagramMain/modals/viewSettings/viewSettingsModal/ViewSettingsModal.vue +60 -60
  165. package/components/common/diagramMain/modals/viewSettings/viewSettingsModal/ViewSettingsModalNew.vue +50 -50
  166. package/components/common/diagramMain/modals/viewSettings/viewSettingsModal/ViewSettingsModalOld.vue +70 -70
  167. package/components/common/diagramMain/modals/viewSettings/viewSettingsModal/lib/models/interfaces.ts +48 -48
  168. package/components/common/diagramMain/network/Contents.vue +497 -497
  169. package/components/common/diagramMain/network/Lines.vue +107 -107
  170. package/components/common/diagramMain/network/Network.vue +141 -141
  171. package/components/common/diagramMain/network/block/Block.vue +37 -37
  172. package/components/common/diagramMain/network/block/BlockNew.vue +68 -68
  173. package/components/common/diagramMain/network/block/BlockOld.vue +64 -64
  174. package/components/common/diagramMain/network/noNetwork/NoNetwork.vue +12 -12
  175. package/components/common/diagramMain/network/noNetwork/NoNetworkNew.vue +89 -89
  176. package/components/common/diagramMain/network/noNetwork/NoNetworkOld.vue +61 -61
  177. package/components/common/diagramMain/network/secondBlock/SecondBlock.vue +41 -41
  178. package/components/common/diagramMain/network/secondBlock/SecondBlockNew.vue +64 -64
  179. package/components/common/diagramMain/network/secondBlock/SecondBlockOld.vue +60 -60
  180. package/components/common/diagramMain/port/Port.vue +580 -580
  181. package/components/common/diagramMain/port/Ports.vue +47 -47
  182. package/components/common/diagramMain/skeleton/Header.vue +31 -0
  183. package/components/common/diagramMain/skeleton/Switch.vue +75 -0
  184. package/components/common/diagramMain/switch/Switch.vue +180 -180
  185. package/components/common/diagramMain/switch/SwitchSelected.vue +111 -111
  186. package/components/common/layout/theHeader/ThemeSwitch.vue +1 -1
  187. package/components/common/layout/theHeader/modals/reconnect/New.vue +38 -30
  188. package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +8 -9
  189. package/components/common/layout/theHeader/userMenu/modals/preferences/New.vue +4 -0
  190. package/components/common/layout/theHeader/userMenu/modals/preferences/Old.vue +9 -2
  191. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +11 -7
  192. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +7 -1
  193. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/lib/config/consoleOptions.ts +8 -5
  194. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +9 -5
  195. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/config/formatOptions.ts +1 -1
  196. package/components/common/layout/theHeader/userMenu/modals/preferences/view/Old.vue +5 -9
  197. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +9 -6
  198. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +3 -1
  199. package/components/common/modals/Rename.vue +3 -1
  200. package/components/common/monitor/advanced/table/tableOld/TableOld.vue +93 -93
  201. package/components/common/monitor/utilization/lib/models/enums.ts +4 -4
  202. package/components/common/noDataProvided/NoDataProvidedNew.vue +1 -1
  203. package/components/common/pages/backups/modals/createBackup/datastores/tableView/new/lib/config/table.ts +4 -4
  204. package/components/common/pages/backups/modals/createBackup/datastores/tableView/old/lib/config/table.ts +4 -4
  205. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/ChartOptionsModal.vue +184 -253
  206. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/actions/ActionsNew.vue +1 -1
  207. package/components/common/pages/scheduledTasks/table/lib/models/enums.ts +9 -0
  208. package/components/common/pages/scheduledTasks/table/new/New.vue +12 -10
  209. package/components/common/pages/tasks/Tasks.vue +4 -1
  210. package/components/common/pages/tasks/table/Table.vue +25 -23
  211. package/components/common/readyToComplete/New.vue +1 -0
  212. package/components/common/split/horizontal/New.vue +1 -1
  213. package/components/common/split/horizontal/Old.vue +1 -1
  214. package/components/common/split/vertical/New.vue +42 -8
  215. package/components/common/split/vertical/Old.vue +31 -2
  216. package/components/common/split/vertical/Vertical.vue +4 -0
  217. package/components/common/tools/Actions.vue +7 -3
  218. package/components/common/tools/lib/models/interfaces.ts +1 -0
  219. package/components/common/vm/actions/add/New.vue +21 -6
  220. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +14 -1
  221. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/New.vue +5 -0
  222. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Old.vue +1 -0
  223. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/New.vue +1 -0
  224. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/New.vue +2 -0
  225. package/components/common/vm/actions/common/select/options/New.vue +14 -12
  226. package/components/common/vm/actions/common/select/options/Old.vue +16 -15
  227. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +13 -15
  228. package/components/common/vm/actions/confirm/Confirm.vue +3 -0
  229. package/components/common/vm/actions/rename/Old.vue +1 -0
  230. package/components/common/vm/snapshots/DetailView.vue +6 -6
  231. package/components/common/wizards/datastore/add/New.vue +6 -0
  232. package/components/common/wizards/datastore/add/lib/config/steps.ts +1 -1
  233. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +1 -1
  234. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +1 -1
  235. package/components/common/wizards/network/add/Add.vue +13 -2
  236. package/components/common/wizards/network/add/AddNew.vue +22 -26
  237. package/components/common/wizards/network/add/lib/config/initialData.ts +6 -4
  238. package/components/common/wizards/network/add/lib/config/steps.ts +1 -1
  239. package/components/common/wizards/network/add/lib/models/interfaces.ts +1 -0
  240. package/components/common/wizards/network/add/lib/utils/utils.ts +1 -1
  241. package/components/common/wizards/network/add/steps/connectionSettings/ConnectionSettingsOld.vue +5 -1
  242. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsNew.vue +2 -8
  243. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsOld.vue +3 -0
  244. package/components/common/wizards/network/add/steps/portProperties/PortPropertiesNew.vue +2 -8
  245. package/components/common/wizards/network/add/steps/portProperties/PortPropertiesOld.vue +6 -2
  246. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceNew.vue +10 -3
  247. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceOld.vue +4 -0
  248. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectNetwork.vue +5 -1
  249. package/components/common/wizards/network/add/validations/common.ts +1 -1
  250. package/components/common/wizards/vm/migrate/New.vue +13 -3
  251. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +5 -0
  252. package/components/common/wizards/vm/migrate/lib/config/steps.ts +3 -2
  253. package/components/common/wizards/vm/migrate/steps/computeResource/New.vue +2 -1
  254. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/New.vue +40 -21
  255. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/clusterTable.ts +340 -0
  256. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/hostTable.ts +44 -14
  257. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/models/enums.ts +4 -0
  258. package/components/common/wizards/vm/migrate/steps/priority/New.vue +7 -2
  259. package/components/common/wizards/vm/migrate/steps/selectStorage/New.vue +22 -7
  260. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/New.vue +6 -0
  261. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/New.vue +4 -1
  262. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/lib/config/datastoreTable.ts +12 -16
  263. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/New.vue +10 -5
  264. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/lib/config/diskTable.ts +16 -11
  265. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/old/lib/config/diskTable.ts +7 -1
  266. package/components/common/wizards/vm/migrate/steps/selectStorage/selectedPerDisk/New.vue +17 -10
  267. package/components/common/wizards/vm/migrate/steps/type/TypeNew.vue +1 -0
  268. package/components/common/wizards/vm/migrate/vmOrigin/New.vue +35 -15
  269. package/lib/models/store/tasks/enums.ts +3 -0
  270. package/lib/models/store/tasks/types.ts +7 -6
  271. package/package.json +2 -2
  272. package/plugins/directives.ts +3 -5
  273. package/public/spice-console/application/agent.js +18 -17
  274. package/store/tasks/actions.ts +26 -8
  275. package/store/tasks/mappers/recentTasks.ts +1 -0
  276. package/components/common/certificate/Info/Info.vue +0 -61
  277. package/components/common/certificate/Info/new/New.vue +0 -285
  278. package/components/common/certificate/Info/new/lib/config/index.ts +0 -59
  279. package/components/common/certificate/Info/new/lib/models/interfaces.ts +0 -3
  280. package/components/common/certificate/Info/new/lib/utils/index.ts +0 -10
  281. package/components/common/certificate/Old.vue +0 -27
  282. package/components/common/certificate/new/New.vue +0 -30
  283. package/components/common/certificate/new/Skeleton.vue +0 -155
  284. package/components/common/certificate/tools/New.vue +0 -48
  285. package/components/common/certificate/tools/Old.vue +0 -39
  286. package/components/common/certificate/tools/lib/config/tabsPannel.ts +0 -20
  287. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +0 -164
@@ -0,0 +1,388 @@
1
+ <template>
2
+ <div class="content">
3
+ <div class="content-fields">
4
+ <div class="content-fields-title">
5
+ {{ localization.common.ipV4Settings }}
6
+ </div>
7
+
8
+ <div v-if="props.isShowErrorMessage" class="content-fields-alert">
9
+ <div
10
+ v-for="messageObject in validationMessagesArray"
11
+ :key="messageObject.key"
12
+ class="content-fields-alert-item"
13
+ >
14
+ <ui-alert
15
+ :messages="[messageObject.message]"
16
+ test-id="ipv-four-settings-alert"
17
+ size="md"
18
+ @hide="onHideMessage(messageObject.key)"
19
+ />
20
+ </div>
21
+ </div>
22
+
23
+ <div class="content-fields-block">
24
+ <div class="radio-container">
25
+ <div
26
+ :class="[
27
+ 'radio-block',
28
+ { selected: fieldsValues.ipv4Settings === '0' },
29
+ ]"
30
+ @click="fieldsValues.ipv4Settings = '0'"
31
+ >
32
+ <ui-radio
33
+ v-model="fieldsValues.ipv4Settings"
34
+ :label="localization.common.obtainIPv4SettingsAutomatically"
35
+ value="0"
36
+ test-id="obtain-ipv-settings-automatically-radio"
37
+ size="md"
38
+ />
39
+ </div>
40
+ <div
41
+ :class="[
42
+ 'radio-block',
43
+ { selected: fieldsValues.ipv4Settings === '1' },
44
+ ]"
45
+ @click="fieldsValues.ipv4Settings = '1'"
46
+ >
47
+ <ui-radio
48
+ v-model="fieldsValues.ipv4Settings"
49
+ :label="localization.common.useStaticIPv4Settings"
50
+ value="1"
51
+ test-id="use-static-ipv-settings-radio"
52
+ size="md"
53
+ />
54
+ </div>
55
+ </div>
56
+
57
+ <ui-line margin="16px 0" />
58
+
59
+ <div class="col">
60
+ <h4
61
+ :class="[
62
+ 'content-subtitle col-left',
63
+ { disabled: fieldsValues.ipv4Settings === '0' },
64
+ ]"
65
+ >
66
+ {{ localization.common.ipv4address }}
67
+ </h4>
68
+ <div class="col-right">
69
+ <ui-input
70
+ id="port-properties-network"
71
+ v-model="fieldsValues.ipv4Address"
72
+ test-id="port-properties-network"
73
+ type="text"
74
+ placeholder="e.g. 192.168.1.1"
75
+ size="md"
76
+ :disabled="fieldsValues.ipv4Settings === '0'"
77
+ :error="props.errorMessages.ipFourAddress"
78
+ />
79
+ </div>
80
+ </div>
81
+
82
+ <ui-line margin="16px 0" />
83
+
84
+ <div class="col">
85
+ <h4
86
+ :class="[
87
+ 'content-subtitle col-left',
88
+ { disabled: fieldsValues.ipv4Settings === '0' },
89
+ ]"
90
+ >
91
+ {{ localization.common.subnetMask }}
92
+ </h4>
93
+ <div class="col-right">
94
+ <ui-input
95
+ id="subnet-mask"
96
+ v-model="fieldsValues.subnetMask"
97
+ test-id="subnet-mask"
98
+ type="text"
99
+ placeholder="e.g. 255.255.255.0"
100
+ size="md"
101
+ :disabled="fieldsValues.ipv4Settings === '0'"
102
+ :error="props.errorMessages.subnetMask"
103
+ />
104
+ </div>
105
+ </div>
106
+
107
+ <ui-line margin="16px 0" />
108
+
109
+ <div class="col">
110
+ <h4
111
+ :class="[
112
+ 'content-subtitle col-left without-padding',
113
+ {
114
+ disabled: fieldsValues.ipv4Settings === '0',
115
+ },
116
+ ]"
117
+ >
118
+ {{ localization.common.defaultGateway }}
119
+ </h4>
120
+ <div class="col-right">
121
+ <div class="field-checkbox">
122
+ <ui-checkbox
123
+ v-model="fieldsValues.defaultGateway.checked"
124
+ test-id="default-gateway-checkbox"
125
+ :label-text="
126
+ localization.common.overrideDefaultGatewayForThisAdapter
127
+ "
128
+ size="md"
129
+ :disabled="fieldsValues.ipv4Settings === '0'"
130
+ />
131
+ </div>
132
+ <ui-input
133
+ id="default-gateway"
134
+ v-model="fieldsValues.defaultGateway.value"
135
+ test-id="default-gateway"
136
+ type="text"
137
+ placeholder="10.10.101.1"
138
+ size="md"
139
+ :disabled="
140
+ !fieldsValues.defaultGateway.checked ||
141
+ fieldsValues.ipv4Settings === '0'
142
+ "
143
+ :error="props.errorMessages.defaultGateway"
144
+ />
145
+ </div>
146
+ </div>
147
+ </div>
148
+ </div>
149
+ </div>
150
+ </template>
151
+
152
+ <script setup lang="ts">
153
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
154
+ import type {
155
+ UI_I_EditSettingsErrorMessage,
156
+ UI_I_IpvFourSettingsFields,
157
+ } from '~/components/common/diagramMain/lib/models/interfaces'
158
+ import { validationMessagesArrayNewFunc } from '~/components/common/diagramMain/modals/lib/utils'
159
+
160
+ const props = defineProps<{
161
+ isShowErrorMessage: boolean
162
+ errorMessages: UI_I_EditSettingsErrorMessage
163
+ flagSendData: boolean
164
+ }>()
165
+
166
+ const emits = defineEmits<{
167
+ (event: 'hide-error-message-alert'): void
168
+ }>()
169
+
170
+ const localization = computed<UI_I_Localization>(() => useLocal())
171
+
172
+ const fieldsValues = defineModel<UI_I_IpvFourSettingsFields>()
173
+
174
+ const keys = ref<keyof UI_I_EditSettingsErrorMessage>([
175
+ 'ipFourAddress',
176
+ 'subnetMask',
177
+ 'defaultGateway',
178
+ ])
179
+
180
+ const validationMessagesArray = computed(() =>
181
+ validationMessagesArrayNewFunc(keys.value, props.errorMessages)
182
+ )
183
+
184
+ const onHideMessage = (
185
+ messageKey: keyof UI_I_EditSettingsErrorMessage
186
+ ): void => {
187
+ keys.value = keys.value
188
+ .filter((key) => key !== messageKey)
189
+ .filter((key) => props.errorMessages[key])
190
+
191
+ if (keys.value.length === 0) {
192
+ emits('hide-error-message-alert')
193
+ keys.value = ['ipFourAddress', 'subnetMask', 'defaultGateway']
194
+ }
195
+ }
196
+
197
+ watch(
198
+ () => props.flagSendData,
199
+ () => {
200
+ keys.value = ['ipFourAddress', 'subnetMask', 'defaultGateway']
201
+ }
202
+ )
203
+ </script>
204
+
205
+ <style scoped lang="scss">
206
+ .content {
207
+ width: 100%;
208
+
209
+ &-fields-title {
210
+ font-weight: 400;
211
+ font-size: 20px;
212
+ line-height: 24px;
213
+ letter-spacing: 0;
214
+ color: var(--title-form-first-color);
215
+ margin-bottom: 16px;
216
+ }
217
+
218
+ &-title {
219
+ display: block;
220
+ margin: 16px 0;
221
+ font-weight: 500;
222
+ font-size: 16px;
223
+ line-height: 20px;
224
+ letter-spacing: 0;
225
+ color: var(--title-form-first-color);
226
+ }
227
+
228
+ &-subtitle {
229
+ font-weight: 400;
230
+ font-size: 13px;
231
+ line-height: 16px;
232
+ letter-spacing: 0;
233
+ vertical-align: middle;
234
+ color: var(--title-form-first-color);
235
+ }
236
+
237
+ .col {
238
+ display: flex;
239
+ column-gap: 16px;
240
+
241
+ &-left {
242
+ padding-top: 10px;
243
+ width: calc((100% - 8px) / 3);
244
+ text-overflow: ellipsis;
245
+ white-space: nowrap;
246
+ overflow: hidden;
247
+
248
+ &.without-padding {
249
+ padding-top: 0;
250
+ }
251
+
252
+ &.disabled {
253
+ color: var(--btn-text-disabled-color);
254
+ }
255
+ }
256
+
257
+ &-right {
258
+ width: calc(((100% - 8px) / 3) * 2);
259
+
260
+ &.input {
261
+ max-width: 400px;
262
+ }
263
+
264
+ &.combobox {
265
+ max-width: 200px;
266
+ }
267
+
268
+ .field-checkbox {
269
+ margin-bottom: 16px;
270
+ }
271
+ }
272
+ }
273
+
274
+ &-fields {
275
+ &-alert {
276
+ margin-bottom: 8px;
277
+
278
+ &-item:not(:last-of-type) {
279
+ margin-bottom: 12px;
280
+ }
281
+ }
282
+
283
+ &-block {
284
+ padding-top: 8px;
285
+ }
286
+
287
+ &-col {
288
+ display: flex;
289
+ column-gap: 12px;
290
+
291
+ &-left {
292
+ width: 60%;
293
+ }
294
+
295
+ &-right {
296
+ width: 40%;
297
+
298
+ &.input {
299
+ max-width: 400px;
300
+ }
301
+
302
+ &.combobox {
303
+ max-width: 200px;
304
+ }
305
+ }
306
+ }
307
+ }
308
+ }
309
+
310
+ @media (max-width: 896px) {
311
+ .content-fields {
312
+ &-col {
313
+ display: flex;
314
+ row-gap: 12px;
315
+ flex-direction: column;
316
+
317
+ &-left {
318
+ width: 100%;
319
+ }
320
+
321
+ &-right {
322
+ width: 100%;
323
+
324
+ &.input {
325
+ max-width: 400px;
326
+ }
327
+
328
+ &.combobox {
329
+ max-width: 200px;
330
+ }
331
+ }
332
+ }
333
+ }
334
+ }
335
+
336
+ :root.dark-theme {
337
+ .radio-block:not(.selected).disabled {
338
+ background-color: #1b2a371f;
339
+ opacity: unset;
340
+ }
341
+ }
342
+ .radio-block {
343
+ width: 100%;
344
+ background-color: var(--radio-block-bg-color);
345
+ box-shadow: inset 0 0 0 1px var(--radio-block-border-color);
346
+ transition: box-shadow 0.1s ease-in-out;
347
+ padding: 12px;
348
+ border-radius: 8px;
349
+
350
+ &:not(.selected):not(.disabled) {
351
+ &:hover {
352
+ box-shadow: inset 0 0 0 1px var(--radio-block-border-hover-color);
353
+ }
354
+ }
355
+
356
+ &:not(.disabled) {
357
+ cursor: pointer;
358
+ }
359
+
360
+ &:not(.selected).disabled {
361
+ background-color: #ffffff;
362
+ opacity: 0.6;
363
+ }
364
+
365
+ &.selected {
366
+ background-color: var(--radio-block-selected-bg-color);
367
+ box-shadow: inset 0 0 0 1.5px var(--radio-block-selected-border-color);
368
+ }
369
+ }
370
+
371
+ .radio-container {
372
+ display: flex;
373
+ column-gap: 12px;
374
+ }
375
+
376
+ @media (max-width: 896px) {
377
+ .radio-container:not(.radio-container-three) {
378
+ display: flex;
379
+ flex-direction: column;
380
+ row-gap: 12px;
381
+ margin: 16px 0;
382
+ }
383
+ }
384
+
385
+ :deep(.ui-checkbox-label.md) {
386
+ height: unset;
387
+ }
388
+ </style>
@@ -2,11 +2,11 @@
2
2
  <div class="wizard-content__container">
3
3
  <div class="wizard-content wizard-content-port">
4
4
  <atoms-alert
5
- v-if="isShowErrorMessage"
5
+ v-if="props.isShowErrorMessage"
6
6
  :items="validationMessagesArray"
7
7
  status="alert-danger"
8
8
  test-id="ipv-four-settings-alert"
9
- @remove="onHideErrorMessageAlert"
9
+ @remove="emits('hide-error-message-alert')"
10
10
  />
11
11
  <form>
12
12
  <div class="radio">
@@ -185,167 +185,26 @@ import type { UI_I_Localization } from '~/lib/models/interfaces'
185
185
  import type {
186
186
  UI_I_EditSettingsErrorMessage,
187
187
  UI_I_IpvFourSettingsFields,
188
- UI_I_ModalsInitialData,
189
188
  } from '~/components/common/diagramMain/lib/models/interfaces'
190
- import type { UI_T_IpFourSettingsFieldName } from '~/components/common/wizards/network/add/lib/models/types'
191
189
  import { validationMessagesArrayFunc } from '~/components/common/diagramMain/modals/lib/utils'
192
190
 
193
- const props = withDefaults(
194
- defineProps<{
195
- isShowErrorMessageAlert: boolean
196
- errorMessages: UI_I_EditSettingsErrorMessage
197
- initialData?: UI_I_ModalsInitialData
198
- hasErrorMessages?: boolean
199
- }>(),
200
- {
201
- initialData: () => ({}),
202
- hasErrorMessages: undefined,
203
- }
204
- )
191
+ const props = defineProps<{
192
+ isShowErrorMessage: boolean
193
+ errorMessages: UI_I_EditSettingsErrorMessage
194
+ }>()
205
195
 
206
- // Validation
207
196
  const emits = defineEmits<{
208
- (
209
- event: 'change-error-messages',
210
- errorMessage: string,
211
- fieldName: keyof UI_I_EditSettingsErrorMessage
212
- ): void
213
197
  (event: 'hide-error-message-alert'): void
214
- (
215
- event: 'change-port-ipv-four-data',
216
- newPortEditIpvFourData: UI_I_IpvFourSettingsFields
217
- ): void
218
198
  }>()
219
199
 
220
- const validationMessagesArray = computed(() =>
200
+ const localization = computed<UI_I_Localization>(() => useLocal())
201
+
202
+ const fieldsValues = defineModel<UI_I_IpvFourSettingsFields>()
203
+
204
+ const validationMessagesArray = computed<string[]>(() =>
221
205
  validationMessagesArrayFunc(
222
206
  ['ipFourAddress', 'subnetMask', 'defaultGateway'],
223
207
  props.errorMessages
224
208
  )
225
209
  )
226
-
227
- // UI_I_Localization
228
- const localization = computed<UI_I_Localization>(() => useLocal())
229
-
230
- // For showing component validation errors on the top of modal
231
- const isShowErrorMessage = computed<boolean>(
232
- () => props.isShowErrorMessageAlert && props.hasErrorMessages
233
- )
234
-
235
- const fieldsValues = ref<UI_I_IpvFourSettingsFields>(
236
- useDeepCopy(props.initialData.tcpConfig)
237
- )
238
-
239
- const onHideErrorMessageAlert = (): void => emits('hide-error-message-alert')
240
-
241
- const onChangeData = (data: UI_I_IpvFourSettingsFields) =>
242
- emits('change-port-ipv-four-data', data)
243
-
244
- const changeErrorMessage = (
245
- errorMessage: string,
246
- fieldName: keyof UI_I_EditSettingsErrorMessage
247
- ) => emits('change-error-messages', errorMessage, fieldName)
248
-
249
- const checkIfValidIP = (str: string) => {
250
- const regexExp =
251
- /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/gi
252
-
253
- return regexExp.test(str)
254
- }
255
-
256
- const messageTexts = (local: UI_I_Localization) => ({
257
- ipFourAddressEmpty: local.common.ipFourAddressEmpty,
258
- subnetMaskEmpty: local.common.subnetMaskEmpty,
259
- defaultGatewayEmpty: local.common.defaultGatewayEmpty,
260
- ipFourAddressInvalid: local.common.ipFourAddressInvalid,
261
- subnetMaskInvalid: local.common.subnetMaskInvalid,
262
- defaultGatewayInvalid: local.common.defaultGatewayInvalid,
263
- })
264
-
265
- const setMessageOnChangedField = (
266
- values: string,
267
- name: UI_T_IpFourSettingsFieldName,
268
- ipSettings: string,
269
- override?: boolean
270
- ) => {
271
- if (ipSettings === '0') {
272
- changeErrorMessage('', name)
273
- return
274
- }
275
-
276
- if (name === 'ipFourAddress') {
277
- if (!values) {
278
- changeErrorMessage(messageTexts(localization.value)[`${name}Empty`], name)
279
- return
280
- }
281
- if (!checkIfValidIP(values)) {
282
- changeErrorMessage(
283
- messageTexts(localization.value)[`${name}Invalid`],
284
- name
285
- )
286
- return
287
- }
288
- }
289
- if (name === 'subnetMask') {
290
- if (!values) {
291
- changeErrorMessage(messageTexts(localization.value)[`${name}Empty`], name)
292
- return
293
- }
294
- if (!checkIfValidIP(values)) {
295
- changeErrorMessage(
296
- messageTexts(localization.value)[`${name}Invalid`],
297
- name
298
- )
299
- return
300
- }
301
- }
302
- if (name === 'defaultGateway' && override) {
303
- if (!values) {
304
- changeErrorMessage(messageTexts(localization.value)[`${name}Empty`], name)
305
- return
306
- }
307
- if (!checkIfValidIP(values)) {
308
- changeErrorMessage(
309
- messageTexts(localization.value)[`${name}Invalid`],
310
- name
311
- )
312
- return
313
- }
314
- }
315
- changeErrorMessage('', name)
316
- }
317
-
318
- // Changing data and validate they
319
- watch(
320
- fieldsValues,
321
- (newValues: UI_I_IpvFourSettingsFields) => {
322
- setMessageOnChangedField(
323
- newValues.ipv4Address,
324
- 'ipFourAddress',
325
- newValues.ipv4Settings
326
- )
327
- setMessageOnChangedField(
328
- newValues.subnetMask,
329
- 'subnetMask',
330
- newValues.ipv4Settings
331
- )
332
- setMessageOnChangedField(
333
- newValues.defaultGateway.value,
334
- 'defaultGateway',
335
- newValues.ipv4Settings,
336
- newValues.defaultGateway.checked
337
- )
338
- onChangeData(newValues)
339
- !props.hasErrorMessages && onHideErrorMessageAlert()
340
- },
341
- { deep: true }
342
- )
343
-
344
- onMounted(() => {
345
- onChangeData(fieldsValues.value)
346
- })
347
-
348
- onUnmounted(() => {
349
- onHideErrorMessageAlert()
350
- })
351
210
  </script>
@@ -0,0 +1,139 @@
1
+ <template>
2
+ <div class="port-properties">
3
+ <component
4
+ :is="currentComponent"
5
+ v-model="fieldsValues"
6
+ :port-properties-enabled-services="portPropertiesEnabledServices"
7
+ :is-show-error-message="isShowErrorMessage"
8
+ :error-messages="props.errorMessages"
9
+ @hide-error-message-alert="onHideErrorMessageAlert"
10
+ />
11
+ </div>
12
+ </template>
13
+
14
+ <script setup lang="ts">
15
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
16
+ import type {
17
+ UI_I_PortPropertiesFields,
18
+ UI_I_ModalsInitialData,
19
+ UI_I_EditSettingsErrorMessage,
20
+ } from '~/components/common/diagramMain/lib/models/interfaces'
21
+ import type { UI_T_PortPropertiesFieldName } from '~/components/common/diagramMain/lib/models/types'
22
+ import { portPropertiesEnabledServicesFunc } from '~/components/common/diagramMain/modals/lib/config'
23
+
24
+ const props = withDefaults(
25
+ defineProps<{
26
+ isShowErrorMessageAlert: boolean | boolean[]
27
+ errorMessages: UI_I_EditSettingsErrorMessage
28
+ initialData?: UI_I_ModalsInitialData
29
+ hasErrorMessages?: boolean
30
+ }>(),
31
+ {
32
+ initialData: () => ({}),
33
+ hasErrorMessages: undefined,
34
+ }
35
+ )
36
+
37
+ const emits = defineEmits<{
38
+ (
39
+ event: 'change-error-messages',
40
+ errorMessage: string,
41
+ fieldName: keyof UI_I_EditSettingsErrorMessage
42
+ ): void
43
+ (event: 'hide-error-message-alert'): void
44
+ (
45
+ event: 'change-port-edit-properties-data',
46
+ newPortEditPropertiesData: UI_I_PortPropertiesFields
47
+ ): void
48
+ }>()
49
+
50
+ const { $store }: any = useNuxtApp()
51
+
52
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
53
+
54
+ const currentComponent = computed(() =>
55
+ isNewView.value
56
+ ? defineAsyncComponent(() => import('./PortPropertiesNew.vue'))
57
+ : defineAsyncComponent(() => import('./PortPropertiesOld.vue'))
58
+ )
59
+
60
+ const localization = computed<UI_I_Localization>(() => useLocal())
61
+
62
+ const portPropertiesEnabledServices = computed(() =>
63
+ portPropertiesEnabledServicesFunc(localization.value)
64
+ )
65
+
66
+ const isShowErrorMessage = computed<boolean>(
67
+ () =>
68
+ props.hasErrorMessages &&
69
+ (isNewView.value
70
+ ? props.isShowErrorMessageAlert[0]
71
+ : props.isShowErrorMessageAlert)
72
+ )
73
+
74
+ const fieldsValues = ref<UI_I_PortPropertiesFields>(
75
+ useDeepCopy({
76
+ tcpIp: props.initialData.tcpIp,
77
+ mtu: props.initialData.mtu,
78
+ services: props.initialData.services,
79
+ }) as UI_I_PortPropertiesFields
80
+ )
81
+
82
+ const onHideErrorMessageAlert = (): void => emits('hide-error-message-alert')
83
+
84
+ const onChangeData = (data: UI_I_PortPropertiesFields): void =>
85
+ emits('change-port-edit-properties-data', data)
86
+
87
+ const changeErrorMessage = (
88
+ errorMessage: string,
89
+ fieldName: keyof UI_I_EditSettingsErrorMessage
90
+ ) => emits('change-error-messages', errorMessage, fieldName)
91
+
92
+ const messageTexts = (local: UI_I_Localization) => ({
93
+ mtu: local.common.mtuInvalidError,
94
+ })
95
+
96
+ const setMessageOnChangedField = (
97
+ values: number[],
98
+ index: number,
99
+ name: UI_T_PortPropertiesFieldName,
100
+ text: string
101
+ ) => {
102
+ if (values[index] >= 1280 && values[index] <= 65535) {
103
+ changeErrorMessage('', name)
104
+ } else {
105
+ changeErrorMessage(text, name)
106
+ }
107
+ }
108
+
109
+ watch(
110
+ fieldsValues,
111
+ (newValues: UI_I_PortPropertiesFields): void => {
112
+ setMessageOnChangedField(
113
+ [newValues.mtu],
114
+ 0,
115
+ 'mtu',
116
+ messageTexts(localization.value).mtu
117
+ )
118
+ onChangeData(newValues)
119
+ !props.hasErrorMessages && onHideErrorMessageAlert()
120
+ },
121
+ {
122
+ deep: true,
123
+ }
124
+ )
125
+
126
+ onMounted(() => {
127
+ onChangeData(fieldsValues.value)
128
+ })
129
+
130
+ onUnmounted((): void => {
131
+ onHideErrorMessageAlert()
132
+ })
133
+ </script>
134
+
135
+ <style scoped lang="scss">
136
+ .port-properties {
137
+ width: 100%;
138
+ }
139
+ </style>