bfg-common 1.5.442 → 1.5.444

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 (212) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/assets/localization/local_be.json +9 -2
  7. package/assets/localization/local_en.json +19 -12
  8. package/assets/localization/local_hy.json +9 -2
  9. package/assets/localization/local_kk.json +9 -2
  10. package/assets/localization/local_ru.json +9 -2
  11. package/assets/localization/local_zh.json +9 -2
  12. package/components/atoms/TheIcon3.vue +50 -50
  13. package/components/atoms/collapse/CollapseNav.vue +170 -170
  14. package/components/atoms/perPage/PerPage.vue +58 -58
  15. package/components/atoms/table/dataGrid/DataGrid.vue +1694 -1694
  16. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  17. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  18. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  19. package/components/atoms/wizard/Wizard.vue +2 -2
  20. package/components/atoms/wizard/step/Step.vue +1 -1
  21. package/components/common/backup/storage/actions/add/Add.vue +5 -5
  22. package/components/common/backup/storage/actions/add/Old.vue +1 -1
  23. package/components/common/backup/storage/actions/add/lib/config/steps.ts +2 -2
  24. package/components/common/backup/storage/actions/add/lib/validations.ts +4 -4
  25. package/components/common/backup/storage/actions/add/steps/name/Name.vue +1 -1
  26. package/components/common/backup/storage/actions/add/steps/name/New.vue +1 -1
  27. package/components/common/backup/storage/actions/add/steps/name/Old.vue +1 -1
  28. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +1 -1
  29. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +1 -1
  30. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureOld.vue +1 -1
  31. package/components/common/browse/blocks/Container.vue +235 -235
  32. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  33. package/components/common/context/lib/models/interfaces.ts +33 -33
  34. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  35. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  36. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  37. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +5 -5
  38. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +2 -2
  39. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +2 -2
  40. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +5 -5
  41. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +2 -2
  42. package/components/common/diagramMain/port/Port.vue +580 -580
  43. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  44. package/components/common/pages/backups/Backups.vue +102 -102
  45. package/components/common/pages/backups/DetailView.vue +52 -52
  46. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  47. package/components/common/pages/backups/modals/Modals.vue +1 -1
  48. package/components/common/pages/backups/modals/createBackup/CreateBackup.vue +5 -2
  49. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  50. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +26 -26
  51. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +66 -66
  52. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  53. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +35 -35
  54. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +59 -59
  55. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  56. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/config/table.ts +117 -117
  57. package/components/common/pages/backups/modals/createBackup/general/General.vue +135 -135
  58. package/components/common/pages/backups/modals/createBackup/lib/config/steps.ts +2 -2
  59. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  60. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  61. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  62. package/components/common/pages/backups/modals/restore/Restore.vue +3 -3
  63. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  64. package/components/common/pages/backups/modals/restore/disks/tableView/TableView.vue +102 -102
  65. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  66. package/components/common/pages/backups/modals/restore/lib/config/steps.ts +2 -2
  67. package/components/common/pages/backups/modals/restore/name/Name.vue +160 -160
  68. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  69. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  70. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  71. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  72. package/components/common/pages/backups/tools/Tools.vue +75 -75
  73. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  74. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  75. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  76. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  77. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  78. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  79. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  80. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  81. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  82. package/components/common/select/radio/RadioGroup.vue +137 -137
  83. package/components/common/spiceConsole/Drawer.vue +381 -381
  84. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  85. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  86. package/components/common/tools/Actions.vue +207 -207
  87. package/components/common/treeView/TreeView.vue +52 -52
  88. package/components/common/vm/actions/add/Add.vue +5 -5
  89. package/components/common/vm/actions/add/New.vue +2 -2
  90. package/components/common/vm/actions/add/Old.vue +2 -2
  91. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  92. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  93. package/components/common/vm/actions/add/lib/config/steps.ts +2 -2
  94. package/components/common/vm/actions/clone/Clone.vue +5 -5
  95. package/components/common/vm/actions/clone/lib/config/steps.ts +2 -2
  96. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +5 -5
  97. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +2 -2
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +2 -0
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +23 -23
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +99 -99
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  120. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  121. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  122. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  123. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  124. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  125. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  126. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  127. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  128. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  129. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  130. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  131. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  132. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  133. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  134. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  135. package/components/common/vm/actions/common/select/storage/new/New.vue +320 -320
  136. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  137. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  138. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  139. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  140. package/components/common/vmt/actions/add/Add.vue +5 -5
  141. package/components/common/vmt/actions/add/New.vue +2 -3
  142. package/components/common/vmt/actions/add/Old.vue +2 -2
  143. package/components/common/vmt/actions/add/lib/config/steps.ts +2 -2
  144. package/components/common/wizards/datastore/add/Add.vue +2 -2
  145. package/components/common/wizards/datastore/add/Old.vue +2 -2
  146. package/components/common/wizards/datastore/add/lib/config/steps.ts +2 -2
  147. package/components/common/wizards/datastore/add/lib/utils.ts +1 -1
  148. package/components/common/wizards/datastore/add/lib/validations.ts +3 -3
  149. package/components/common/wizards/datastore/add/steps/_local/Local.vue +1 -1
  150. package/components/common/wizards/datastore/add/steps/_local/createName/CreateName.vue +1 -1
  151. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigure.vue +2 -1
  152. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigureNew.vue +1 -1
  153. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigureOld.vue +1 -1
  154. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDevice.vue +1 -1
  155. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +1 -1
  156. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceOld.vue +1 -1
  157. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  158. package/components/common/wizards/network/add/Add.vue +109 -333
  159. package/components/common/wizards/network/add/AddNew.vue +514 -0
  160. package/components/common/wizards/network/add/AddOld.vue +457 -0
  161. package/components/common/wizards/network/add/lib/config/config.ts +11 -1
  162. package/components/common/wizards/network/add/lib/config/selectConnectionTypeStep.ts +31 -0
  163. package/components/common/wizards/network/add/lib/config/selectSwitch.ts +217 -0
  164. package/components/common/wizards/network/add/lib/config/steps.ts +5 -5
  165. package/components/common/wizards/network/add/lib/models/interfaces.ts +9 -0
  166. package/components/common/wizards/network/add/steps/ConnectionSettings.vue +2 -2
  167. package/components/common/wizards/network/add/steps/IpFourSettings.vue +2 -2
  168. package/components/common/wizards/network/add/steps/PortProperties.vue +2 -2
  169. package/components/common/wizards/network/add/steps/selectConnectionType/SelectConnectionType.vue +35 -0
  170. package/components/common/wizards/network/add/steps/selectConnectionType/SelectConnectionTypeNew.vue +104 -0
  171. package/components/common/wizards/network/add/steps/selectConnectionType/SelectConnectionTypeOld.vue +80 -0
  172. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDevice.vue +183 -0
  173. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceNew.vue +393 -0
  174. package/components/common/wizards/network/add/steps/{SelectedTargetDevice.vue → selectTargetDevice/SelectTargetDeviceOld.vue} +42 -139
  175. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/Modals.vue +55 -0
  176. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/SelectNetwork.vue +64 -0
  177. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/SelectStandardSwitch.vue +64 -0
  178. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/SelectSwitch.vue +64 -0
  179. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectNetwork.vue +163 -0
  180. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectStandardSwitch.vue +163 -0
  181. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectSwitch.vue +163 -0
  182. package/components/common/wizards/network/add/{modals → steps/selectTargetDevice/modals/old}/SelectNetwork.vue +53 -56
  183. package/components/common/wizards/network/add/{modals → steps/selectTargetDevice/modals/old}/SelectStandardSwitch.vue +37 -52
  184. package/components/common/wizards/network/add/{modals → steps/selectTargetDevice/modals/old}/SelectSwitch.vue +38 -42
  185. package/components/common/wizards/network/add/validations/connectionSettings.ts +5 -5
  186. package/components/common/wizards/network/add/validations/createStandardSwitch.ts +4 -4
  187. package/components/common/wizards/network/add/validations/ipFourSettings.ts +5 -5
  188. package/components/common/wizards/network/add/validations/networkValidation.ts +4 -4
  189. package/components/common/wizards/network/add/validations/physicalAdapter.ts +4 -4
  190. package/components/common/wizards/network/add/validations/portProperties.ts +2 -2
  191. package/components/common/wizards/network/add/validations/targetDevice.ts +11 -10
  192. package/components/common/wizards/vm/migrate/Migrate.vue +2 -2
  193. package/components/common/wizards/vm/migrate/lib/config/steps.ts +2 -2
  194. package/components/common/wizards/vm/migrate/lib/validations.ts +3 -3
  195. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  196. package/components/common/wizards/vm/migrate/select/targetServer/new/New.vue +1 -1
  197. package/components/common/wizards/vm/migrate/select/targetServer/targetServer.vue +1 -1
  198. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  199. package/composables/productNameLocal.ts +30 -30
  200. package/composables/useAppVersion.ts +21 -21
  201. package/package.json +2 -2
  202. package/plugins/date.ts +233 -233
  203. package/plugins/panelStates.ts +70 -70
  204. package/plugins/text.ts +59 -59
  205. package/public/spice-console/lib/images/bitmap.js +203 -203
  206. package/public/spice-console/network/spicechannel.js +390 -390
  207. package/store/main/mutations.ts +7 -7
  208. package/store/main/state.ts +7 -7
  209. package/components/atoms/wizard/lib/models/enums.ts +0 -8
  210. package/components/atoms/wizard/lib/models/interfaces.ts +0 -59
  211. package/components/atoms/wizard/lib/utils/utils.ts +0 -954
  212. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +0 -112
@@ -0,0 +1,183 @@
1
+ <template>
2
+ <common-wizards-network-add-steps-select-target-device-new
3
+ v-if="isNewView"
4
+ v-model:fields="fields"
5
+ :wizard="props.wizard"
6
+ :connection-type="props.connectionType"
7
+ :messages-fields="props.messagesFields"
8
+ :is-connection-type-first-two="isConnectionTypeFirstTwo"
9
+ :standard-switches-initial="props.standardSwitchesInitial"
10
+ :selected-switch-id="props.selectedSwitchId"
11
+ @show-modal="onShowModal"
12
+ @change-target-device="onChangeTargetDevice"
13
+ />
14
+ <common-wizards-network-add-steps-select-target-device-old
15
+ v-else
16
+ v-model:fields="fields"
17
+ :wizard="props.wizard"
18
+ :connection-type="props.connectionType"
19
+ :messages-fields="props.messagesFields"
20
+ :is-connection-type-first-two="isConnectionTypeFirstTwo"
21
+ :alert-messages="props.alertMessages"
22
+ @hide-alert="onHideAlert"
23
+ @show-modal="onShowModal"
24
+ @change-target-device="onChangeTargetDevice"
25
+ />
26
+ <common-wizards-network-add-steps-select-target-device-modals
27
+ :standard-switches-initial="props.standardSwitchesInitial"
28
+ :is-show-standard-switch-modal="isShowStandardSwitchModal"
29
+ :is-show-switch-modal="isShowSwitchModal"
30
+ :is-show-network-modal="isShowNetworkModal"
31
+ @hide-modal="onHideModal"
32
+ @select-standard-switch="onSelectStandardSwitch"
33
+ @select-switch="onSelectSwitch"
34
+ @select-network="onSelectNetwork"
35
+ />
36
+ </template>
37
+
38
+ <script setup lang="ts">
39
+ import type { UI_I_ErrorFields } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
40
+ import type Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
41
+ import type {
42
+ UI_I_ArbitraryObject,
43
+ UI_I_Localization,
44
+ } from '~/lib/models/interfaces'
45
+ import type {
46
+ UI_I_TargetDevice,
47
+ UI_I_Switch,
48
+ } from '~/components/common/wizards/network/add/lib/models/interfaces'
49
+ import { UI_E_ValidationFields } from '~/components/common/wizards/network/add/lib/models/enums'
50
+ import { validateMtuTargetDeviceLocal } from '~/components/common/wizards/network/add/validations/validations'
51
+
52
+ const props = defineProps<{
53
+ wizard: Wizard
54
+ targetDevice: UI_I_TargetDevice
55
+ connectionType: string
56
+ standardSwitchesInitial: UI_I_Switch[]
57
+ messagesFields: UI_I_ArbitraryObject<UI_I_ErrorFields>
58
+ alertMessages: string[]
59
+ selectedStandardSwitchId: string
60
+ selectedSwitchId: string
61
+ }>()
62
+
63
+ const { $store }: any = useNuxtApp()
64
+
65
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
66
+
67
+ const emits = defineEmits<{
68
+ (event: 'change-target-device', value: UI_I_TargetDevice): void
69
+ (event: 'hide-alert', value: 1): void
70
+ }>()
71
+
72
+ const localization = computed<UI_I_Localization>(() => useLocal())
73
+
74
+ const isConnectionTypeFirstTwo = computed<boolean>(() =>
75
+ ['0', '1'].includes(props.connectionType)
76
+ )
77
+
78
+ const isShowStandardSwitchModal = ref<boolean>(false)
79
+ const isShowSwitchModal = ref<boolean>(false)
80
+ const isShowNetworkModal = ref<boolean>(false)
81
+
82
+ const onShowModal = (value: string): void => {
83
+ switch (value) {
84
+ case 'select-standard-switch':
85
+ isShowStandardSwitchModal.value = true
86
+ break
87
+ case 'select-switch':
88
+ isShowSwitchModal.value = true
89
+ break
90
+ case 'select-network':
91
+ isShowNetworkModal.value = true
92
+ break
93
+ }
94
+ }
95
+
96
+ const onHideModal = (value: string): void => {
97
+ switch (value) {
98
+ case 'select-standard-switch':
99
+ isShowStandardSwitchModal.value = false
100
+ break
101
+ case 'select-switch':
102
+ isShowSwitchModal.value = false
103
+ break
104
+ case 'select-network':
105
+ isShowNetworkModal.value = false
106
+ break
107
+ }
108
+ }
109
+
110
+ const onHideAlert = (): void => {
111
+ emits('hide-alert', 1)
112
+ }
113
+
114
+ const onChangeTargetDevice = (value: UI_I_TargetDevice): void => {
115
+ emits('change-target-device', value)
116
+ }
117
+
118
+ const fields = ref<UI_I_TargetDevice>(useDeepCopy(props.targetDevice))
119
+
120
+ const onSelectStandardSwitch = (value: string): void => {
121
+ fields.value.standardSwitch = value
122
+ onHideModal('select-standard-switch')
123
+ }
124
+ const onSelectSwitch = (value: string): void => {
125
+ fields.value.switch = value
126
+ onHideModal('select-switch')
127
+ }
128
+ const onSelectNetwork = (value: string): void => {
129
+ fields.value.network = value
130
+ onHideModal('select-network')
131
+ }
132
+
133
+ let prevValue = useDeepCopy(fields.value)
134
+
135
+ watch(
136
+ fields,
137
+ (newFields: UI_I_TargetDevice) => {
138
+ newFields.standardSwitch &&
139
+ !prevValue.standardSwitch &&
140
+ props.wizard.removeValidationLocal(
141
+ 1,
142
+ UI_E_ValidationFields.TARGET_DEVICE_STANDARD_SWITCH
143
+ )
144
+
145
+ if (newFields.selected !== prevValue.selected) {
146
+ props.wizard.removeValidationLocal(
147
+ 1,
148
+ UI_E_ValidationFields.TARGET_DEVICE_STANDARD_SWITCH
149
+ )
150
+ props.wizard.removeValidationLocal(
151
+ 1,
152
+ UI_E_ValidationFields.TARGET_DEVICE_NETWORK
153
+ )
154
+ props.wizard.removeValidationLocal(
155
+ 1,
156
+ UI_E_ValidationFields.TARGET_DEVICE_SWITCH
157
+ )
158
+ props.wizard.removeValidationLocal(
159
+ 1,
160
+ UI_E_ValidationFields.TARGET_DEVICE_MTU
161
+ )
162
+ }
163
+
164
+ ;(newFields.mtu !== prevValue.mtu ||
165
+ (prevValue.selected !== '3' && newFields.selected === '3')) &&
166
+ validateMtuTargetDeviceLocal(localization.value, newFields, props.wizard)
167
+
168
+ prevValue = useDeepCopy(newFields)
169
+
170
+ emits('change-target-device', newFields)
171
+ },
172
+ { deep: true }
173
+ )
174
+
175
+ onMounted(() => {
176
+ !fields.value.standardSwitch &&
177
+ (fields.value.standardSwitch = props.selectedStandardSwitchId)
178
+
179
+ !fields.value.switch && (fields.value.switch = props.selectedSwitchId)
180
+ })
181
+ </script>
182
+
183
+ <style scoped lang="scss"></style>
@@ -0,0 +1,393 @@
1
+ <template>
2
+ <div class="content">
3
+ <div>
4
+ <h4 class="content-subtitle">{{ localization.common.targetDevice }}</h4>
5
+
6
+ <div class="radio-container">
7
+ <div
8
+ v-show="props.connectionType === '0'"
9
+ :class="['radio-block', { selected: fieldsLocal.selected === '0' }]"
10
+ @click="fieldsLocal.selected = '0'"
11
+ >
12
+ <ui-radio
13
+ v-model="fieldsLocal.selected"
14
+ :label="localization.common.existingNetwork"
15
+ value="0"
16
+ test-id="existing-network-radio"
17
+ size="md"
18
+ />
19
+ </div>
20
+
21
+ <div
22
+ v-show="props.isConnectionTypeFirstTwo"
23
+ :class="['radio-block', { selected: fieldsLocal.selected === '1' }]"
24
+ @click="fieldsLocal.selected = '1'"
25
+ >
26
+ <ui-radio
27
+ v-model="fieldsLocal.selected"
28
+ :label="localization.common.existingStandardSwitch"
29
+ value="1"
30
+ test-id="existing-standard-switch-radio"
31
+ size="md"
32
+ />
33
+ </div>
34
+
35
+ <div
36
+ v-show="props.connectionType === '2'"
37
+ :class="['radio-block', { selected: fieldsLocal.selected === '2' }]"
38
+ @click="fieldsLocal.selected = '2'"
39
+ >
40
+ <ui-radio
41
+ v-model="fieldsLocal.selected"
42
+ :label="localization.common.existingSwitch"
43
+ value="2"
44
+ test-id="existing-switch-radio"
45
+ size="md"
46
+ />
47
+ </div>
48
+
49
+ <!-- v-permission="'Networks.CreateSwitch'" -->
50
+ <div
51
+ :class="['radio-block', { selected: fieldsLocal.selected === '3' }]"
52
+ @click="fieldsLocal.selected = '3'"
53
+ >
54
+ <ui-radio
55
+ v-model="fieldsLocal.selected"
56
+ :label="localization.common.newStandardSwitch"
57
+ value="3"
58
+ test-id="standard-switch-radio"
59
+ size="md"
60
+ />
61
+ </div>
62
+ </div>
63
+ <ui-line margin="0 0 16px" />
64
+
65
+ <div
66
+ v-show="props.connectionType === '0' && fieldsLocal.selected === '0'"
67
+ >
68
+ <div class="col">
69
+ <h4 class="content-subtitle col-left">
70
+ {{ localization.common.network }}
71
+ </h4>
72
+ <div class="col-right">
73
+ <ui-select
74
+ v-model="fieldsLocal.network"
75
+ :items="[
76
+ {
77
+ text: localization.common.browseDoted,
78
+ value: 'browse',
79
+ selected: false,
80
+ disabled: true,
81
+ iconName: 'browse',
82
+ },
83
+ ]"
84
+ select-width="100%"
85
+ show-text
86
+ test-id="network-input"
87
+ :placeholder="localization.common.selectANetwork"
88
+ :error="!!props.messagesFields.network.field"
89
+ :error-text="
90
+ !!props.messagesFields.network.field &&
91
+ localization.common.fieldRequired
92
+ "
93
+ >
94
+ <template #row="{ item }">
95
+ <div v-if="item.iconName" class="browse-btn">
96
+ <ui-button
97
+ test-id="button-1"
98
+ type="primary"
99
+ variant="text"
100
+ size="lg"
101
+ is-without-sizes
102
+ min-width="100%"
103
+ @click="onShowModal('select-network')"
104
+ >
105
+ <span>{{ item.text }}</span>
106
+ </ui-button>
107
+ </div>
108
+ </template>
109
+ </ui-select>
110
+ </div>
111
+ </div>
112
+ </div>
113
+
114
+ <div
115
+ v-show="props.isConnectionTypeFirstTwo && fieldsLocal.selected === '1'"
116
+ >
117
+ <div class="col">
118
+ <h4 class="content-subtitle col-left">
119
+ {{ localization.common.standardSwitch }}
120
+ </h4>
121
+ <div class="col-right">
122
+ <ui-select
123
+ v-model="fieldsLocal.standardSwitch"
124
+ :items="selectItems"
125
+ select-width="100%"
126
+ show-text
127
+ test-id="standard-switch-input"
128
+ :placeholder="localization.common.selectASwitch"
129
+ :error="!!props.messagesFields.switch.field"
130
+ :error-text="
131
+ !!props.messagesFields.switch.field &&
132
+ localization.common.fieldRequired
133
+ "
134
+ >
135
+ <template #row="{ item }">
136
+ <div v-if="item.iconName" class="browse-btn">
137
+ <ui-button
138
+ test-id="button-1"
139
+ type="primary"
140
+ variant="text"
141
+ size="lg"
142
+ is-without-sizes
143
+ min-width="100%"
144
+ @click="onShowModal('select-standard-switch')"
145
+ >
146
+ <span>{{ item.text }}</span>
147
+ </ui-button>
148
+ </div>
149
+ </template>
150
+ </ui-select>
151
+ </div>
152
+ </div>
153
+ </div>
154
+
155
+ <div
156
+ v-show="props.connectionType === '2' && fieldsLocal.selected === '2'"
157
+ >
158
+ <div class="col">
159
+ <h4 class="content-subtitle col-left">
160
+ {{ localization.common.switch }}
161
+ </h4>
162
+ <div class="col-right">
163
+ <ui-select
164
+ v-model="fieldsLocal.switch"
165
+ :items="selectItems"
166
+ select-width="100%"
167
+ show-text
168
+ test-id="switch-input"
169
+ :placeholder="localization.common.selectASwitch"
170
+ :error="!!props.messagesFields.switch2.field"
171
+ :error-text="
172
+ !!props.messagesFields.switch2.field &&
173
+ localization.common.fieldRequired
174
+ "
175
+ >
176
+ <template #row="{ item }">
177
+ <div v-if="item.iconName" class="browse-btn">
178
+ <ui-button
179
+ test-id="button-1"
180
+ type="primary"
181
+ variant="text"
182
+ size="lg"
183
+ is-without-sizes
184
+ min-width="100%"
185
+ @click="onShowModal('select-switch')"
186
+ >
187
+ <span>{{ item.text }}</span>
188
+ </ui-button>
189
+ </div>
190
+ </template>
191
+ </ui-select>
192
+ </div>
193
+ </div>
194
+ </div>
195
+
196
+ <div v-show="fieldsLocal.selected === '3'">
197
+ <!-- v-permission="'Networks.CreateSwitch'" -->
198
+
199
+ <div class="col">
200
+ <h4 class="content-subtitle col-left">
201
+ {{ localization.common.mtuBytes }}
202
+ </h4>
203
+ <div class="col-right">
204
+ <ui-input
205
+ id="mtu"
206
+ v-model="fieldsLocal.mtu"
207
+ test-id="mtu-input"
208
+ type="number"
209
+ :placeholder="localization.common.mtuBytes"
210
+ size="md"
211
+ :error="props.messagesFields['new_switch.mtu'].field"
212
+ />
213
+ </div>
214
+ </div>
215
+ </div>
216
+ </div>
217
+ </div>
218
+ </template>
219
+
220
+ <script setup lang="ts">
221
+ import type { UI_I_ErrorFields } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
222
+ import type Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
223
+ import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/select/lib/models/interfaces'
224
+ import type {
225
+ UI_I_ArbitraryObject,
226
+ UI_I_Localization,
227
+ } from '~/lib/models/interfaces'
228
+ import type {
229
+ UI_I_TargetDevice,
230
+ UI_I_Switch,
231
+ } from '~/components/common/wizards/network/add/lib/models/interfaces'
232
+
233
+ const props = defineProps<{
234
+ fields: UI_I_TargetDevice
235
+ connectionType: string
236
+ messagesFields: UI_I_ArbitraryObject<UI_I_ErrorFields>
237
+ wizard: Wizard
238
+ isConnectionTypeFirstTwo: boolean
239
+ standardSwitchesInitial: UI_I_Switch[]
240
+ selectedSwitchId: string
241
+ }>()
242
+
243
+ const emits = defineEmits<{
244
+ (event: 'change-target-device', targetDevice: UI_I_TargetDevice): void
245
+ (event: 'show-modal', modalName: string): void
246
+ (event: 'update:fields', value: UI_I_TargetDevice): void
247
+ }>()
248
+
249
+ const localization = computed<UI_I_Localization>(() => useLocal())
250
+
251
+ const onShowModal = (value: string): void => {
252
+ emits('show-modal', value)
253
+ }
254
+
255
+ const fieldsLocal = computed({
256
+ get() {
257
+ return props.fields
258
+ },
259
+ set(value: UI_I_TargetDevice) {
260
+ emits('update:fields', value)
261
+ },
262
+ })
263
+
264
+ const selectItems = ref<UI_I_Dropdown[]>([])
265
+
266
+ watch(
267
+ () => props.standardSwitchesInitial,
268
+ (newValue) => {
269
+ selectItems.value = [
270
+ ...newValue.map((item) => ({
271
+ text: item.name,
272
+ value: item.id,
273
+ selected: props.selectedSwitchId === item.id,
274
+ })),
275
+ {
276
+ text: localization.value.common.browseDoted,
277
+ value: 'browse',
278
+ selected: false,
279
+ disabled: true,
280
+ iconName: 'browse',
281
+ },
282
+ ]
283
+ },
284
+ { immediate: true, deep: true }
285
+ )
286
+ </script>
287
+
288
+ <style scoped lang="scss">
289
+ .content {
290
+ padding: 16px 0;
291
+
292
+ &-subtitle {
293
+ font-weight: 400;
294
+ font-size: 13px;
295
+ line-height: 20px;
296
+ letter-spacing: 0;
297
+ vertical-align: middle;
298
+ color: var(--title-form-first-color);
299
+ }
300
+
301
+ .radio-container {
302
+ display: flex;
303
+ column-gap: 12px;
304
+ margin: 16px 0;
305
+ }
306
+
307
+ .col {
308
+ display: flex;
309
+ align-items: center;
310
+ column-gap: 16px;
311
+
312
+ &-left {
313
+ width: calc((100% - 8px) / 3);
314
+ }
315
+
316
+ &-right {
317
+ width: calc(((100% - 8px) / 3) * 2);
318
+ }
319
+ }
320
+
321
+ :deep(.ui-dropdown-menu-item.disabled) {
322
+ opacity: 1 !important;
323
+ }
324
+
325
+ .browse-btn {
326
+ width: 100%;
327
+
328
+ :deep(.ui-btn) {
329
+ justify-content: flex-start;
330
+ height: 32px;
331
+
332
+ span {
333
+ text-align: left;
334
+ color: var(--select-text);
335
+ }
336
+
337
+ &:hover {
338
+ span {
339
+ color: var(--dropdown-item-hover-color);
340
+ }
341
+ }
342
+ }
343
+ }
344
+
345
+ :root.dark-theme {
346
+ .radio-block:not(.selected).disabled {
347
+ background-color: #1b2a371f;
348
+ opacity: unset;
349
+ }
350
+ }
351
+ .radio-block {
352
+ width: 100%;
353
+ background-color: var(--radio-block-bg-color);
354
+ box-shadow: inset 0 0 0 1px var(--radio-block-border-color);
355
+ transition: box-shadow 0.1s ease-in-out;
356
+ padding: 12px;
357
+ border-radius: 8px;
358
+
359
+ &:not(.selected):not(.disabled) {
360
+ &:hover {
361
+ box-shadow: inset 0 0 0 1px var(--radio-block-border-hover-color);
362
+ }
363
+ }
364
+
365
+ &:not(.disabled) {
366
+ cursor: pointer;
367
+ }
368
+
369
+ &:not(.selected).disabled {
370
+ background-color: #ffffff;
371
+ opacity: 0.6;
372
+ }
373
+
374
+ &.selected {
375
+ background-color: var(--radio-block-selected-bg-color);
376
+ box-shadow: inset 0 0 0 1.5px var(--radio-block-selected-border-color);
377
+ }
378
+ }
379
+
380
+ :deep(.radio-label__container) {
381
+ align-items: unset !important;
382
+ }
383
+ }
384
+
385
+ @media (max-width: 896px) {
386
+ .radio-container {
387
+ display: flex;
388
+ flex-direction: column;
389
+ row-gap: 12px;
390
+ margin: 16px 0;
391
+ }
392
+ }
393
+ </style>