bfg-common 1.5.487 → 1.5.489

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 (191) 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 +7 -1
  7. package/assets/localization/local_en.json +17 -11
  8. package/assets/localization/local_hy.json +7 -1
  9. package/assets/localization/local_kk.json +7 -1
  10. package/assets/localization/local_ru.json +7 -1
  11. package/assets/localization/local_zh.json +7 -1
  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/DataGridPagination.vue +97 -97
  16. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  17. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  18. package/components/common/adapterManager/AdapterManager.vue +189 -545
  19. package/components/common/adapterManager/AdapterManagerNew.vue +300 -0
  20. package/components/common/adapterManager/AdapterManagerOld.vue +498 -0
  21. package/components/common/adapterManager/addAdapterModal/AddAdapterModal.vue +70 -0
  22. package/components/common/adapterManager/addAdapterModal/AddAdapterModalNew.vue +77 -0
  23. package/components/common/adapterManager/{AddAdapterModal.vue → addAdapterModal/AddAdapterModalOld.vue} +16 -46
  24. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModal.vue +32 -0
  25. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModalNew.vue +38 -0
  26. package/components/common/adapterManager/{AddAdapterWarningModal.vue → addAdapterWarningModal/AddAdapterWarningModalOld.vue} +5 -14
  27. package/components/common/adapterManager/noActiveAdaptersModal/NoActiveAdaptersModal.vue +31 -0
  28. package/components/common/adapterManager/noActiveAdaptersModal/NoActiveAdaptersModalNew.vue +34 -0
  29. package/components/common/adapterManager/{NoActiveAdaptersModal.vue → noActiveAdaptersModal/NoActiveAdaptersModalOld.vue} +2 -6
  30. package/components/common/adapterManager/noConnectedActiveAdaptersModal/NoConnectedActiveAdaptersModal.vue +31 -0
  31. package/components/common/adapterManager/noConnectedActiveAdaptersModal/NoConnectedActiveAdaptersModalNew.vue +34 -0
  32. package/components/common/adapterManager/{NoConnectedActiveAdaptersModal.vue → noConnectedActiveAdaptersModal/NoConnectedActiveAdaptersModalOld.vue} +2 -6
  33. package/components/common/adapterManager/ui/actions/bar/Bar.vue +57 -0
  34. package/components/common/adapterManager/ui/actions/bar/BarNew.vue +38 -0
  35. package/components/common/adapterManager/ui/actions/moveDownAdapterButton/MoveDownAdapterButton.vue +28 -0
  36. package/components/common/adapterManager/ui/actions/moveDownAdapterButton/MoveDownAdapterButtonNew.vue +75 -0
  37. package/components/common/adapterManager/ui/actions/{MoveDownAdapterButton.vue → moveDownAdapterButton/MoveDownAdapterButtonOld.vue} +3 -9
  38. package/components/common/adapterManager/ui/actions/moveUpAdapterButton/MoveUpAdapterButton.vue +28 -0
  39. package/components/common/adapterManager/ui/actions/moveUpAdapterButton/MoveUpAdapterButtonNew.vue +76 -0
  40. package/components/common/adapterManager/ui/actions/{MoveUpAdapterButton.vue → moveUpAdapterButton/MoveUpAdapterButtonOld.vue} +3 -9
  41. package/components/common/adapterManager/ui/noSelectedAdapter/NoSelectedAdapter.vue +24 -0
  42. package/components/common/adapterManager/ui/noSelectedAdapter/NoSelectedAdapterNew.vue +13 -0
  43. package/components/common/adapterManager/ui/secondTitle/SecondTitle.vue +31 -0
  44. package/components/common/adapterManager/ui/secondTitle/SecondTitleNew.vue +36 -0
  45. package/components/common/adapterManager/ui/{SecondTitle.vue → secondTitle/SecondTitleOld.vue} +0 -1
  46. package/components/common/adapterManager/ui/table/Table.vue +59 -133
  47. package/components/common/adapterManager/ui/table/TableNew.vue +136 -0
  48. package/components/common/adapterManager/ui/table/TableOld.vue +141 -0
  49. package/components/common/adapterManager/ui/table/adapters/Adapters.vue +44 -0
  50. package/components/common/adapterManager/ui/table/adapters/AdaptersNew.vue +153 -0
  51. package/components/common/adapterManager/ui/table/{Adapters.vue → adapters/AdaptersOld.vue} +5 -10
  52. package/components/common/adapterManager/ui/table/header/Header.vue +57 -0
  53. package/components/common/adapterManager/ui/table/header/HeaderNew.vue +77 -0
  54. package/components/common/adapterManager/ui/table/{Header.vue → header/HeaderOld.vue} +3 -20
  55. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  56. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  57. package/components/common/browse/lib/models/interfaces.ts +5 -5
  58. package/components/common/context/lib/models/interfaces.ts +33 -33
  59. package/components/common/diagramMain/DiagramMain.vue +905 -900
  60. package/components/common/diagramMain/lib/models/interfaces.ts +5 -2
  61. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +6 -5
  62. package/components/common/diagramMain/modals/Modals.vue +19 -1
  63. package/components/common/diagramMain/modals/lib/config/adapterModal.ts +23 -20
  64. package/components/common/diagramMain/modals/lib/config/networkModal.ts +401 -398
  65. package/components/common/diagramMain/modals/lib/config/switchModal.ts +3 -0
  66. package/components/common/diagramMain/modals/remove/RemoveModal.vue +8 -0
  67. package/components/common/diagramMain/modals/remove/RemoveModalNew.vue +106 -95
  68. package/components/common/diagramMain/modals/remove/RemoveModalOld.vue +12 -1
  69. package/components/common/diagramMain/modals/viewSettings/info/Info.vue +0 -2
  70. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettings.vue +6 -0
  71. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettingsNew.vue +140 -71
  72. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettingsOld.vue +4 -4
  73. package/components/common/diagramMain/network/Contents.vue +497 -497
  74. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  75. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  76. package/components/common/pages/backups/DetailView.vue +52 -52
  77. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  78. package/components/common/pages/backups/modals/Modals.vue +243 -243
  79. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  80. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  81. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  82. package/components/common/pages/backups/modals/createBackup/general/General.vue +141 -141
  83. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  84. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  85. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  86. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  87. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  88. package/components/common/pages/backups/modals/restore/name/Name.vue +166 -166
  89. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  90. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  91. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  92. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  93. package/components/common/pages/backups/tools/Tools.vue +75 -75
  94. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  95. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  96. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  97. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  98. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  99. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  100. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  101. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  102. package/components/common/select/radio/RadioGroup.vue +137 -137
  103. package/components/common/spiceConsole/Drawer.vue +392 -392
  104. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  105. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  106. package/components/common/tools/Actions.vue +207 -207
  107. package/components/common/treeView/TreeView.vue +52 -52
  108. package/components/common/vm/actions/add/Add.vue +877 -877
  109. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  110. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +368 -368
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +99 -99
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  120. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  121. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  122. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  123. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  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/select/compatibility/Old.vue +107 -107
  127. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  128. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  129. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  130. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  131. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  132. package/components/common/vm/actions/common/select/name/Name.vue +200 -200
  133. package/components/common/vm/actions/common/select/name/Old.vue +131 -131
  134. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  135. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  136. package/components/common/vm/actions/common/select/storage/new/New.vue +320 -320
  137. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  138. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  139. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  140. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  141. package/components/common/vm/actions/register/Register.vue +267 -267
  142. package/components/common/vm/actions/register/lib/config/steps.ts +86 -86
  143. package/components/common/vmt/actions/add/Add.vue +549 -549
  144. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  145. package/components/common/wizards/network/add/Add.vue +9 -3
  146. package/components/common/wizards/network/add/AddNew.vue +291 -354
  147. package/components/common/wizards/network/add/AddOld.vue +0 -3
  148. package/components/common/wizards/network/add/lib/config/config.ts +1 -0
  149. package/components/common/wizards/network/add/lib/config/initialData.ts +9 -0
  150. package/components/common/wizards/network/add/lib/config/steps.ts +35 -5
  151. package/components/common/wizards/network/add/lib/models/interfaces.ts +12 -2
  152. package/components/common/wizards/network/add/steps/connectionSettings/ConnectionSettings.vue +83 -0
  153. package/components/common/wizards/network/add/steps/connectionSettings/ConnectionSettingsNew.vue +114 -0
  154. package/components/common/wizards/network/add/steps/{ConnectionSettings.vue → connectionSettings/ConnectionSettingsOld.vue} +11 -42
  155. package/components/common/wizards/network/add/steps/createStandardSwitch/CreateStandardSwitch.vue +99 -0
  156. package/components/common/wizards/network/add/steps/createStandardSwitch/CreateStandardSwitchNew.vue +80 -0
  157. package/components/common/wizards/network/add/steps/{CreateStandardSwitch.vue → createStandardSwitch/CreateStandardSwitchOld.vue} +24 -33
  158. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettings.vue +143 -0
  159. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsNew.vue +224 -0
  160. package/components/common/wizards/network/add/steps/{IpFourSettings.vue → ipFourSettings/IpFourSettingsOld.vue} +13 -101
  161. package/components/common/wizards/network/add/steps/portProperties/PortProperties.vue +214 -0
  162. package/components/common/wizards/network/add/steps/portProperties/PortPropertiesNew.vue +289 -0
  163. package/components/common/wizards/network/add/steps/{PortProperties.vue → portProperties/PortPropertiesOld.vue} +19 -166
  164. package/components/common/wizards/network/add/steps/readyComplete/ReadyComplete.vue +22 -0
  165. package/components/common/wizards/network/add/steps/readyComplete/ReadyCompleteNew.vue +30 -0
  166. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDevice.vue +7 -2
  167. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceNew.vue +1 -3
  168. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceOld.vue +0 -2
  169. package/components/common/wizards/network/add/validations/common.ts +1 -2
  170. package/components/common/wizards/network/add/validations/connectionSettings.ts +14 -7
  171. package/components/common/wizards/network/add/validations/ipFourSettings.ts +24 -10
  172. package/components/common/wizards/network/add/validations/networkValidation.ts +1 -1
  173. package/components/common/wizards/network/add/validations/portProperties.ts +52 -20
  174. package/components/common/wizards/network/add/validations/targetDevice.ts +18 -4
  175. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  176. package/composables/useAppVersion.ts +21 -21
  177. package/composables/useLocal.ts +6 -6
  178. package/composables/useLocalCommon.ts +39 -39
  179. package/package.json +2 -2
  180. package/plugins/date.ts +233 -233
  181. package/plugins/panelStates.ts +70 -70
  182. package/plugins/text.ts +59 -59
  183. package/public/spice-console/lib/images/bitmap.js +203 -203
  184. package/public/spice-console/network/spicechannel.js +440 -440
  185. package/public/spice-console/run.js +210 -210
  186. package/store/main/mutations.ts +7 -7
  187. package/store/main/state.ts +7 -7
  188. package/components/common/wizards/network/add/steps/PhysicalAdapter.vue +0 -13
  189. /package/components/common/adapterManager/ui/actions/{ActionsBar.vue → bar/BarOld.vue} +0 -0
  190. /package/components/common/adapterManager/ui/{NoSelectedAdapter.vue → noSelectedAdapter/NoSelectedAdapterOld.vue} +0 -0
  191. /package/components/common/wizards/network/add/steps/{ReadyComplete.vue → readyComplete/ReadyCompleteOld.vue} +0 -0
@@ -0,0 +1,80 @@
1
+ <template>
2
+ <div class="content">
3
+ <common-adapter-manager
4
+ :adapters="props.adapters"
5
+ :free-adapters="props.freeAdapters"
6
+ :added-adapters="props.addedAdapters"
7
+ :core-adapters="props.coreAdapters"
8
+ :adapter-status="props.adapterStatus"
9
+ :is-dark-mode="props.isDarkMode"
10
+ :test-id="props.testId"
11
+ :is-active="props.isActive"
12
+ :full-mode="props.fullMode"
13
+ :is-show-no-connected-active-adapters-modal="
14
+ props.isShowNoConnectedActiveAdaptersModal
15
+ "
16
+ :is-show-no-active-adapters-modal="props.isShowNoActiveAdaptersModal"
17
+ @hide-no-active-adapters-modal="onHideNoActiveAdaptersModal"
18
+ @hide-no-connected-active-adapters-modal="
19
+ onHideNoConnectedActiveAdaptersModal
20
+ "
21
+ @submit-from-modal="onConfirmNoActiveAdaptersModal"
22
+ @change-added-adapters="onChangeAddedAdapters"
23
+ @change-adapter-status="onChangeAdapterStatus"
24
+ @get-free-adapters="onGetFreeAdapters"
25
+ />
26
+ </div>
27
+ </template>
28
+
29
+ <script setup lang="ts">
30
+ import type { UI_I_ItemsWithTotalCounts } from '~/lib/models/interfaces'
31
+ import type {
32
+ UI_I_Adapter,
33
+ UI_I_AdapterStatus,
34
+ UI_I_SwitchAdapterItem,
35
+ } from '~/components/common/diagramMain/lib/models/interfaces'
36
+
37
+ const props = defineProps<{
38
+ adapters: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>
39
+ freeAdapters: UI_I_Adapter[]
40
+ addedAdapters: string[]
41
+ coreAdapters: string[]
42
+ adapterStatus: UI_I_AdapterStatus
43
+ isDarkMode: boolean
44
+ testId: string
45
+ isActive: boolean
46
+ fullMode: boolean
47
+ isShowNoActiveAdaptersModal: boolean
48
+ isShowNoConnectedActiveAdaptersModal: boolean
49
+ }>()
50
+
51
+ const emits = defineEmits<{
52
+ (event: 'get-free-adapters', showModal: () => void): void
53
+ (event: 'change-added-adapters', addedAdapters: string[]): void
54
+ (event: 'change-adapter-status', adapterStatus: UI_I_AdapterStatus): void
55
+ (event: 'submit-from-modal'): void
56
+ (event: 'hide-no-connected-active-adapters-modal'): void
57
+ (event: 'hide-no-active-adapters-modal'): void
58
+ }>()
59
+
60
+ const onGetFreeAdapters = (showModal: () => void): void =>
61
+ emits('get-free-adapters', showModal)
62
+
63
+ const onChangeAddedAdapters = (addedAdapters: string[]): void =>
64
+ emits('change-added-adapters', addedAdapters)
65
+
66
+ const onChangeAdapterStatus = (adapterStatus: UI_I_AdapterStatus): void =>
67
+ emits('change-adapter-status', adapterStatus)
68
+
69
+ const onConfirmNoActiveAdaptersModal = (): void => emits('submit-from-modal')
70
+ const onHideNoConnectedActiveAdaptersModal = (): void =>
71
+ emits('hide-no-connected-active-adapters-modal')
72
+ const onHideNoActiveAdaptersModal = (): void =>
73
+ emits('hide-no-active-adapters-modal')
74
+ </script>
75
+
76
+ <style lang="scss" scoped>
77
+ .content {
78
+ margin-top: 16px;
79
+ }
80
+ </style>
@@ -8,66 +8,57 @@
8
8
  :core-adapters="props.coreAdapters"
9
9
  :adapter-status="props.adapterStatus"
10
10
  :is-dark-mode="props.isDarkMode"
11
- test-id="adapter-manager"
12
- is-active
13
- full-mode
11
+ :test-id="props.testId"
12
+ :is-active="props.isActive"
13
+ :full-mode="props.fullMode"
14
+ :is-show-no-connected-active-adapters-modal="
15
+ props.isShowNoConnectedActiveAdaptersModal
16
+ "
17
+ :is-show-no-active-adapters-modal="props.isShowNoActiveAdaptersModal"
18
+ @hide-no-active-adapters-modal="onHideNoActiveAdaptersModal"
19
+ @hide-no-connected-active-adapters-modal="
20
+ onHideNoConnectedActiveAdaptersModal
21
+ "
22
+ @submit-from-modal="onConfirmNoActiveAdaptersModal"
14
23
  @change-added-adapters="onChangeAddedAdapters"
15
24
  @change-adapter-status="onChangeAdapterStatus"
16
25
  @get-free-adapters="onGetFreeAdapters"
17
26
  />
18
27
  </div>
19
- <teleport to="body">
20
- <common-adapter-manager-no-connected-active-adapters-modal
21
- :show="props.isShowNoConnectedActiveAdaptersModal"
22
- :title="localization.common.physicalNetworkAdaptersWarning"
23
- @hide="onHideNoConnectedActiveAdaptersModal"
24
- @submit="onConfirmNoActiveAdaptersModal"
25
- />
26
- <common-adapter-manager-no-active-adapters-modal
27
- :show="props.isShowNoActiveAdaptersModal"
28
- :title="localization.common.physicalNetworkAdaptersWarning"
29
- @hide="onHideNoActiveAdaptersModal"
30
- @submit="onConfirmNoActiveAdaptersModal"
31
- />
32
- </teleport>
33
28
  </div>
34
29
  </template>
35
30
 
36
31
  <script setup lang="ts">
37
- import type {
38
- UI_I_Localization,
39
- UI_I_ItemsWithTotalCounts,
40
- } from '~/lib/models/interfaces'
32
+ import type { UI_I_ItemsWithTotalCounts } from '~/lib/models/interfaces'
41
33
  import type {
42
34
  UI_I_Adapter,
43
35
  UI_I_AdapterStatus,
44
36
  UI_I_SwitchAdapterItem,
45
37
  } from '~/components/common/diagramMain/lib/models/interfaces'
46
38
 
47
- // Props from up
48
39
  const props = defineProps<{
49
- addedAdapters: string[]
50
- freeAdapters: UI_I_Adapter[]
51
- adapterStatus: UI_I_AdapterStatus
52
40
  adapters: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>
41
+ freeAdapters: UI_I_Adapter[]
42
+ addedAdapters: string[]
53
43
  coreAdapters: string[]
54
- isShowNoConnectedActiveAdaptersModal: boolean
55
- isShowNoActiveAdaptersModal: boolean
44
+ adapterStatus: UI_I_AdapterStatus
56
45
  isDarkMode: boolean
46
+ testId: string
47
+ isActive: boolean
48
+ fullMode: boolean
49
+ isShowNoActiveAdaptersModal: boolean
50
+ isShowNoConnectedActiveAdaptersModal: boolean
57
51
  }>()
58
52
 
59
53
  const emits = defineEmits<{
60
54
  (event: 'get-free-adapters', showModal: () => void): void
61
55
  (event: 'change-added-adapters', addedAdapters: string[]): void
62
56
  (event: 'change-adapter-status', adapterStatus: UI_I_AdapterStatus): void
63
- (event: 'confirm-no-active-adapters-modal'): void
57
+ (event: 'submit-from-modal'): void
64
58
  (event: 'hide-no-connected-active-adapters-modal'): void
65
59
  (event: 'hide-no-active-adapters-modal'): void
66
60
  }>()
67
61
 
68
- // UI_I_Localization
69
- const localization = computed<UI_I_Localization>(() => useLocal())
70
-
71
62
  const onGetFreeAdapters = (showModal: () => void): void =>
72
63
  emits('get-free-adapters', showModal)
73
64
 
@@ -77,13 +68,13 @@ const onChangeAddedAdapters = (addedAdapters: string[]): void =>
77
68
  const onChangeAdapterStatus = (adapterStatus: UI_I_AdapterStatus): void =>
78
69
  emits('change-adapter-status', adapterStatus)
79
70
 
80
- const onConfirmNoActiveAdaptersModal = (): void =>
81
- emits('confirm-no-active-adapters-modal')
71
+ const onConfirmNoActiveAdaptersModal = (): void => emits('submit-from-modal')
82
72
  const onHideNoConnectedActiveAdaptersModal = (): void =>
83
73
  emits('hide-no-connected-active-adapters-modal')
84
74
  const onHideNoActiveAdaptersModal = (): void =>
85
75
  emits('hide-no-active-adapters-modal')
86
76
  </script>
77
+
87
78
  <style lang="scss" scoped>
88
79
  :deep(.table-fixed-height) {
89
80
  max-height: 302px;
@@ -0,0 +1,143 @@
1
+ <template>
2
+ <common-wizards-network-add-steps-ip-four-settings-new
3
+ v-if="isNewView"
4
+ v-model="fields"
5
+ :messages-fields="props.messagesFields"
6
+ />
7
+ <common-wizards-network-add-steps-ip-four-settings-old
8
+ v-else
9
+ v-model="fields"
10
+ :messages-fields="props.messagesFields"
11
+ :alert-messages="props.alertMessages"
12
+ @hide-alert="onHideAlert"
13
+ />
14
+ </template>
15
+
16
+ <script setup lang="ts">
17
+ import type { UI_I_ErrorFields } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
18
+ import type Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
19
+ import type {
20
+ UI_I_ArbitraryObject,
21
+ UI_I_Localization,
22
+ } from '~/lib/models/interfaces'
23
+ import type {
24
+ UI_I_IpFourSettings,
25
+ UI_I_TCPStack,
26
+ } from '~/components/common/wizards/network/add/lib/models/interfaces'
27
+ import {
28
+ removeIpFourSettingsValidationLocal,
29
+ validateAddressIpFourSettingsLocal,
30
+ validateGatewayIpFourSettingsLocal,
31
+ validateMaskIpFourSettingsLocal,
32
+ } from '~/components/common/wizards/network/add/validations/validations'
33
+ import { UI_E_ValidationFields } from '~/components/common/wizards/network/add/lib/models/enums'
34
+
35
+ const props = defineProps<{
36
+ wizard: Wizard
37
+ ipFourSettings: UI_I_IpFourSettings
38
+ messagesFields: UI_I_ArbitraryObject<UI_I_ErrorFields>
39
+ alertMessages: string[]
40
+ tcp: string
41
+ gatewayFlag: boolean
42
+ tcpStacks?: UI_I_TCPStack[]
43
+ }>()
44
+
45
+ const emits = defineEmits<{
46
+ (event: 'change-ip-four-settings', ipFourSettings: UI_I_IpFourSettings): void
47
+ (event: 'change-gateway-flag', value: boolean): void
48
+ (event: 'hide-alert', stepId: 4): void
49
+ }>()
50
+
51
+ const { $store }: any = useNuxtApp()
52
+
53
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
54
+
55
+ const localization = computed<UI_I_Localization>(() => useLocal())
56
+
57
+ const fields = ref<UI_I_IpFourSettings>(useDeepCopy(props.ipFourSettings))
58
+
59
+ let oldFields = useDeepCopy(fields.value)
60
+
61
+ watch(
62
+ fields,
63
+ (newFields: UI_I_IpFourSettings) => {
64
+ if (newFields.ipSettings === '1') {
65
+ ;(oldFields.ipSettings === '0' ||
66
+ oldFields.static.ipFourAddress !== newFields.static.ipFourAddress) &&
67
+ validateAddressIpFourSettingsLocal(
68
+ localization.value,
69
+ newFields,
70
+ props.wizard
71
+ )
72
+ ;(oldFields.ipSettings === '0' ||
73
+ oldFields.static.subnetMask !== newFields.static.subnetMask) &&
74
+ validateMaskIpFourSettingsLocal(
75
+ localization.value,
76
+ newFields,
77
+ props.wizard
78
+ )
79
+
80
+ const isGatewayChanged =
81
+ newFields.static.defaultGateway &&
82
+ oldFields.static.defaultGateway.value !==
83
+ newFields.static.defaultGateway.value
84
+
85
+ emits('change-gateway-flag', true)
86
+
87
+ if (
88
+ oldFields.static.defaultGateway.override &&
89
+ !newFields.static.defaultGateway.override
90
+ ) {
91
+ fields.value.static.defaultGateway.value = props.tcpStacks.find(
92
+ (tcp: UI_I_TCPStack) => tcp.id === props.tcp
93
+ ).gateway
94
+ props.wizard.removeValidationLocal(
95
+ 4,
96
+ UI_E_ValidationFields.IPV_SETTINGS_GATEWAY
97
+ )
98
+ }
99
+
100
+ ;(oldFields.ipSettings === '0' || isGatewayChanged) &&
101
+ validateGatewayIpFourSettingsLocal(
102
+ localization.value,
103
+ newFields,
104
+ props.wizard
105
+ )
106
+ } else {
107
+ removeIpFourSettingsValidationLocal(props.wizard)
108
+ }
109
+
110
+ oldFields = useDeepCopy(fields.value)
111
+
112
+ emits('change-ip-four-settings', newFields)
113
+ },
114
+ { deep: true }
115
+ )
116
+
117
+ watch(
118
+ () => props.tcpStacks,
119
+ (newValue: UI_I_TCPStack[]) => {
120
+ if (fields.value.static.defaultGateway.value === '') {
121
+ fields.value.static.defaultGateway.value = newValue?.[0]?.gateway || ''
122
+ }
123
+ },
124
+ { deep: true, immediate: true }
125
+ )
126
+
127
+ watch(
128
+ () => props.tcp,
129
+ (newValue: string) => {
130
+ if (newValue && !props.gatewayFlag) {
131
+ fields.value.static.defaultGateway.value = props.tcpStacks.find(
132
+ (tcp: UI_I_TCPStack) => tcp.id === newValue
133
+ ).gateway
134
+ }
135
+ },
136
+ { immediate: true }
137
+ )
138
+
139
+ const onHideAlert = (): void => {
140
+ emits('hide-alert', 4)
141
+ }
142
+ </script>
143
+ <style lang="scss" scoped></style>
@@ -0,0 +1,224 @@
1
+ <template>
2
+ <div class="content">
3
+ <div class="radio-container">
4
+ <div
5
+ :class="['radio-block', { selected: fields.ipSettings === '0' }]"
6
+ @click="fields.ipSettings = '0'"
7
+ >
8
+ <ui-radio
9
+ v-model="fields.ipSettings"
10
+ :label="localization.common.obtainIPv4SettingsAutomatically"
11
+ value="0"
12
+ test-id="obtain-input"
13
+ size="md"
14
+ />
15
+ </div>
16
+
17
+ <div
18
+ :class="['radio-block', { selected: fields.ipSettings === '1' }]"
19
+ @click="fields.ipSettings = '1'"
20
+ >
21
+ <ui-radio
22
+ v-model="fields.ipSettings"
23
+ :label="localization.common.useStaticIPv4Settings"
24
+ value="1"
25
+ test-id="static-input"
26
+ size="md"
27
+ />
28
+ </div>
29
+ </div>
30
+
31
+ <ui-line margin="16px 0" />
32
+
33
+ <div :class="['content-fields', { disabled: fields.ipSettings === '0' }]">
34
+ <div class="col">
35
+ <h4 class="content-subtitle col-left">
36
+ {{ localization.common.ipv4address }}
37
+ </h4>
38
+ <div class="col-right">
39
+ <ui-input
40
+ id="ip-four-address"
41
+ v-model="fields.static.ipFourAddress"
42
+ test-id="ip-four-address-input"
43
+ type="text"
44
+ placeholder="10.10.123.1"
45
+ size="md"
46
+ :error="props.messagesFields['ipv4_settings.ipv4'].field"
47
+ :disabled="fields.ipSettings === '0'"
48
+ />
49
+ </div>
50
+ </div>
51
+
52
+ <ui-line margin="16px 0" />
53
+
54
+ <div class="col">
55
+ <h4 class="content-subtitle col-left">
56
+ {{ localization.common.subnetMask }}
57
+ </h4>
58
+ <div class="col-right">
59
+ <ui-input
60
+ id="subnet-mask"
61
+ v-model="fields.static.subnetMask"
62
+ test-id="subnet-mask-input"
63
+ type="text"
64
+ placeholder="255.255.255.0"
65
+ size="md"
66
+ :error="props.messagesFields['ipv4_settings.mask'].field"
67
+ :disabled="fields.ipSettings === '0'"
68
+ />
69
+ </div>
70
+ </div>
71
+
72
+ <ui-line margin="16px 0" />
73
+
74
+ <div class="col mb-4">
75
+ <h4 class="content-subtitle col-left">
76
+ {{ localization.common.defaultGateway }}
77
+ </h4>
78
+ <div class="col-right pt-2">
79
+ <ui-checkbox
80
+ id="default-gateway-override-input"
81
+ v-model="fields.static.defaultGateway.override"
82
+ class="mb-3"
83
+ :label-text="
84
+ localization.common.overrideDefaultGatewayForThisAdapter
85
+ "
86
+ :disabled="fields.ipSettings === '0'"
87
+ test-id="default-gateway-override-input"
88
+ size="md"
89
+ />
90
+ <ui-input
91
+ id="default-gateway-input"
92
+ v-model="fields.static.defaultGateway.value"
93
+ test-id="default-gateway-input"
94
+ type="text"
95
+ placeholder="10.10.101.1"
96
+ size="md"
97
+ :error="props.messagesFields['ipv4_settings.gateway'].field"
98
+ :disabled="
99
+ fields.ipSettings === '0' ||
100
+ !fields.static.defaultGateway.override
101
+ "
102
+ />
103
+ </div>
104
+ </div>
105
+ </div>
106
+ </div>
107
+ </template>
108
+
109
+ <script setup lang="ts">
110
+ import type { UI_I_ErrorFields } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
111
+ import type {
112
+ UI_I_ArbitraryObject,
113
+ UI_I_Localization,
114
+ } from '~/lib/models/interfaces'
115
+ import type { UI_I_IpFourSettings } from '~/components/common/wizards/network/add/lib/models/interfaces'
116
+
117
+ const props = defineProps<{
118
+ modelValue: UI_I_IpFourSettings
119
+ messagesFields: UI_I_ArbitraryObject<UI_I_ErrorFields>
120
+ }>()
121
+
122
+ const emits = defineEmits<{
123
+ (event: 'update:model-value', value: UI_I_PortProperties): void
124
+ }>()
125
+
126
+ const localization = computed<UI_I_Localization>(() => useLocal())
127
+
128
+ const fields = computed({
129
+ get(): UI_I_IpFourSettings {
130
+ return props.modelValue
131
+ },
132
+ set(newValue: UI_I_IpFourSettings) {
133
+ emits('update:model-value', newValue)
134
+ },
135
+ })
136
+ </script>
137
+ <style scoped lang="scss">
138
+ .content {
139
+ .radio-container {
140
+ display: flex;
141
+ column-gap: 12px;
142
+ margin: 16px 0;
143
+ }
144
+
145
+ :root.dark-theme {
146
+ .radio-block:not(.selected).disabled {
147
+ background-color: #1b2a371f;
148
+ opacity: unset;
149
+ }
150
+ }
151
+ .radio-block {
152
+ width: 100%;
153
+ background-color: var(--radio-block-bg-color);
154
+ box-shadow: inset 0 0 0 1px var(--radio-block-border-color);
155
+ transition: box-shadow 0.1s ease-in-out;
156
+ padding: 12px;
157
+ border-radius: 8px;
158
+
159
+ &:not(.selected):not(.disabled) {
160
+ &:hover {
161
+ box-shadow: inset 0 0 0 1px var(--radio-block-border-hover-color);
162
+ }
163
+ }
164
+
165
+ &:not(.disabled) {
166
+ cursor: pointer;
167
+ }
168
+
169
+ &:not(.selected).disabled {
170
+ background-color: #ffffff;
171
+ opacity: 0.6;
172
+ }
173
+
174
+ &.selected {
175
+ background-color: var(--radio-block-selected-bg-color);
176
+ box-shadow: inset 0 0 0 1.5px var(--radio-block-selected-border-color);
177
+ }
178
+ }
179
+
180
+ :deep(.radio-label__container) {
181
+ align-items: unset !important;
182
+ }
183
+
184
+ &-subtitle {
185
+ font-weight: 400;
186
+ font-size: 13px;
187
+ line-height: 20px;
188
+ letter-spacing: 0;
189
+ vertical-align: middle;
190
+ color: var(--title-form-first-color);
191
+ }
192
+
193
+ .col {
194
+ display: flex;
195
+ column-gap: 16px;
196
+
197
+ &-left {
198
+ padding-top: 8px;
199
+ width: calc((100% - 8px) / 3);
200
+ }
201
+
202
+ &-right {
203
+ width: calc(((100% - 8px) / 3) * 2);
204
+ }
205
+ }
206
+
207
+ &-fields {
208
+ &.disabled {
209
+ .content-subtitle {
210
+ color: var(--btn-text-disabled-color);
211
+ }
212
+ }
213
+ }
214
+ }
215
+
216
+ @media (max-width: 896px) {
217
+ .radio-container {
218
+ display: flex;
219
+ flex-direction: column;
220
+ row-gap: 12px;
221
+ margin: 16px 0;
222
+ }
223
+ }
224
+ </style>
@@ -179,121 +179,33 @@
179
179
 
180
180
  <script setup lang="ts">
181
181
  import type { UI_I_ErrorFields } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
182
- import type Wizard from '~/node_modules/bfg-uikit/components/ui/wizard/lib/utils/utils'
183
182
  import type {
184
183
  UI_I_ArbitraryObject,
185
184
  UI_I_Localization,
186
185
  } from '~/lib/models/interfaces'
187
- import type {
188
- UI_I_IpFourSettings,
189
- UI_I_TCPStack,
190
- } from '~/components/common/wizards/network/add/lib/models/interfaces'
191
- import {
192
- removeIpFourSettingsValidationLocal,
193
- validateAddressIpFourSettingsLocal,
194
- validateGatewayIpFourSettingsLocal,
195
- validateMaskIpFourSettingsLocal,
196
- } from '~/components/common/wizards/network/add/validations/validations'
186
+ import type { UI_I_IpFourSettings } from '~/components/common/wizards/network/add/lib/models/interfaces'
197
187
 
198
- const props = withDefaults(
199
- defineProps<{
200
- ipFourSettings: UI_I_IpFourSettings
201
- alertMessages: string[]
202
- messagesFields: UI_I_ArbitraryObject<UI_I_ErrorFields>
203
- wizard: Wizard
204
- tcp: string
205
- gatewayFlag: boolean
206
- tcpStacks?: UI_I_TCPStack[]
207
- }>(),
208
- {
209
- tcpStacks: () => [],
210
- }
211
- )
188
+ const props = defineProps<{
189
+ modelValue: UI_I_IpFourSettings
190
+ alertMessages: string[]
191
+ messagesFields: UI_I_ArbitraryObject<UI_I_ErrorFields>
192
+ }>()
212
193
 
213
194
  const emits = defineEmits<{
214
- (event: 'change-ip-four-settings', ipFourSettings: UI_I_IpFourSettings): void
215
- (event: 'change-gateway-flag', value: boolean): void
216
195
  (event: 'hide-alert', stepId: 4): void
196
+ (event: 'update:model-value', value: UI_I_PortProperties): void
217
197
  }>()
218
198
 
219
199
  const localization = computed<UI_I_Localization>(() => useLocal())
220
200
 
221
- const fields = ref<UI_I_IpFourSettings>(useDeepCopy(props.ipFourSettings))
222
-
223
- let oldFields = useDeepCopy(fields.value)
224
-
225
- watch(
226
- fields,
227
- (newFields: UI_I_IpFourSettings) => {
228
- if (newFields.ipSettings === '1') {
229
- oldFields.static.ipFourAddress !== newFields.static.ipFourAddress &&
230
- validateAddressIpFourSettingsLocal(
231
- localization.value,
232
- newFields,
233
- props.wizard
234
- )
235
-
236
- oldFields.static.subnetMask !== newFields.static.subnetMask &&
237
- validateMaskIpFourSettingsLocal(
238
- localization.value,
239
- newFields,
240
- props.wizard
241
- )
242
-
243
- const isGatewayChanged =
244
- newFields.static.defaultGateway &&
245
- oldFields.static.defaultGateway.value !==
246
- newFields.static.defaultGateway.value
247
-
248
- emits('change-gateway-flag', true)
249
-
250
- if (
251
- oldFields.static.defaultGateway.override &&
252
- !newFields.static.defaultGateway.override
253
- ) {
254
- fields.value.static.defaultGateway.value = props.tcpStacks.find(
255
- (tcp: UI_I_TCPStack) => tcp.id === props.tcp
256
- ).gateway
257
- }
258
-
259
- isGatewayChanged &&
260
- validateGatewayIpFourSettingsLocal(
261
- localization.value,
262
- newFields,
263
- props.wizard
264
- )
265
- } else {
266
- removeIpFourSettingsValidationLocal(props.wizard)
267
- }
268
-
269
- oldFields = useDeepCopy(fields.value)
270
-
271
- emits('change-ip-four-settings', newFields)
201
+ const fields = computed({
202
+ get(): UI_I_IpFourSettings {
203
+ return props.modelValue
272
204
  },
273
- { deep: true }
274
- )
275
-
276
- watch(
277
- () => props.tcpStacks,
278
- (newValue: UI_I_TCPStack[]) => {
279
- if (fields.value.static.defaultGateway.value === '') {
280
- fields.value.static.defaultGateway.value = newValue?.[0]?.gateway || ''
281
- }
282
- },
283
- { deep: true, immediate: true }
284
- )
285
-
286
- watch(
287
- () => props.tcp,
288
- (newValue: string) => {
289
- if (newValue && !props.gatewayFlag) {
290
- fields.value.static.defaultGateway.value = props.tcpStacks.find(
291
- (tcp: UI_I_TCPStack) => tcp.id === newValue
292
- ).gateway
293
- }
205
+ set(newValue: UI_I_IpFourSettings) {
206
+ emits('update:model-value', newValue)
294
207
  },
295
- { immediate: true }
296
- )
208
+ })
297
209
 
298
210
  const onHideAlert = (): void => {
299
211
  emits('hide-alert', 4)