bfg-common 1.5.431 → 1.5.433

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 (194) 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/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/collapse/CollapseNav.vue +170 -170
  8. package/components/atoms/perPage/PerPage.vue +58 -58
  9. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  10. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  11. package/components/atoms/wizard/Wizard.vue +2 -2
  12. package/components/atoms/wizard/lib/models/enums.ts +8 -0
  13. package/components/atoms/wizard/lib/models/interfaces.ts +59 -0
  14. package/components/atoms/wizard/lib/utils/utils.ts +954 -0
  15. package/components/atoms/wizard/step/Step.vue +1 -1
  16. package/components/common/backup/storage/actions/add/Add.vue +5 -5
  17. package/components/common/backup/storage/actions/add/Old.vue +1 -1
  18. package/components/common/backup/storage/actions/add/lib/config/steps.ts +2 -2
  19. package/components/common/backup/storage/actions/add/lib/validations.ts +4 -4
  20. package/components/common/backup/storage/actions/add/steps/name/Name.vue +1 -1
  21. package/components/common/backup/storage/actions/add/steps/name/New.vue +1 -1
  22. package/components/common/backup/storage/actions/add/steps/name/Old.vue +1 -1
  23. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +1 -1
  24. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +1 -1
  25. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureOld.vue +1 -1
  26. package/components/common/browse/BrowseNew.vue +1 -0
  27. package/components/common/browse/blocks/Container.vue +235 -235
  28. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  29. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  30. package/components/common/browse/lib/models/interfaces.ts +5 -5
  31. package/components/common/context/lib/models/interfaces.ts +33 -33
  32. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  33. package/components/common/diagramMain/lib/models/types.ts +21 -21
  34. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  35. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  36. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  37. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  38. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  39. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  40. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  41. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +5 -5
  42. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +2 -2
  43. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +2 -2
  44. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  45. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +5 -5
  46. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +2 -2
  47. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  48. package/components/common/diagramMain/port/Port.vue +580 -580
  49. package/components/common/diagramMain/port/Ports.vue +47 -47
  50. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  51. package/components/common/pages/backups/Backups.vue +102 -102
  52. package/components/common/pages/backups/DetailView.vue +52 -52
  53. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  54. package/components/common/pages/backups/modals/Modals.vue +1 -1
  55. package/components/common/pages/backups/modals/createBackup/CreateBackup.vue +2 -5
  56. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  57. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +26 -26
  58. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +66 -66
  59. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  60. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +35 -35
  61. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +59 -59
  62. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  63. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/config/table.ts +117 -117
  64. package/components/common/pages/backups/modals/createBackup/general/General.vue +135 -135
  65. package/components/common/pages/backups/modals/createBackup/lib/config/steps.ts +117 -117
  66. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  67. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  68. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  69. package/components/common/pages/backups/modals/restore/Restore.vue +417 -417
  70. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  71. package/components/common/pages/backups/modals/restore/disks/tableView/TableView.vue +102 -102
  72. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  73. package/components/common/pages/backups/modals/restore/lib/config/steps.ts +108 -108
  74. package/components/common/pages/backups/modals/restore/name/Name.vue +160 -160
  75. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  76. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  77. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  78. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  79. package/components/common/pages/backups/tools/Tools.vue +75 -75
  80. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  81. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  82. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  83. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  84. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  85. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  86. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  87. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  88. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  89. package/components/common/select/radio/RadioGroup.vue +137 -137
  90. package/components/common/spiceConsole/Drawer.vue +381 -381
  91. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  92. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  93. package/components/common/tools/Actions.vue +207 -207
  94. package/components/common/treeView/TreeView.vue +52 -52
  95. package/components/common/vm/actions/add/Add.vue +5 -5
  96. package/components/common/vm/actions/add/New.vue +2 -2
  97. package/components/common/vm/actions/add/Old.vue +2 -2
  98. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  99. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  100. package/components/common/vm/actions/add/lib/config/steps.ts +2 -2
  101. package/components/common/vm/actions/clone/Clone.vue +5 -5
  102. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  103. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +5 -5
  104. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +2 -2
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/storageModal/new/New.vue +1 -1
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +99 -92
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  125. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  126. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  127. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  128. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  129. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  130. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  131. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  132. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  133. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  134. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  135. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  136. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  137. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  138. package/components/common/vm/actions/common/select/createType/lib/config/items.ts +48 -48
  139. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  140. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  141. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  142. package/components/common/vm/actions/common/select/storage/new/New.vue +14 -14
  143. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  144. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  145. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  146. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  147. package/components/common/vmt/actions/add/Add.vue +5 -5
  148. package/components/common/vmt/actions/add/New.vue +3 -2
  149. package/components/common/vmt/actions/add/Old.vue +2 -2
  150. package/components/common/vmt/actions/add/lib/config/steps.ts +2 -2
  151. package/components/common/wizards/datastore/add/Add.vue +2 -2
  152. package/components/common/wizards/datastore/add/Old.vue +2 -2
  153. package/components/common/wizards/datastore/add/lib/config/steps.ts +2 -2
  154. package/components/common/wizards/datastore/add/lib/utils.ts +1 -1
  155. package/components/common/wizards/datastore/add/lib/validations.ts +3 -3
  156. package/components/common/wizards/datastore/add/steps/_local/Local.vue +1 -1
  157. package/components/common/wizards/datastore/add/steps/_local/createName/CreateName.vue +1 -1
  158. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigure.vue +1 -2
  159. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigureNew.vue +1 -1
  160. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigureOld.vue +1 -1
  161. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDevice.vue +1 -1
  162. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +1 -1
  163. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceOld.vue +1 -1
  164. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  165. package/components/common/wizards/network/add/Add.vue +7 -7
  166. package/components/common/wizards/network/add/lib/config/steps.ts +5 -5
  167. package/components/common/wizards/network/add/steps/ConnectionSettings.vue +2 -2
  168. package/components/common/wizards/network/add/steps/IpFourSettings.vue +2 -2
  169. package/components/common/wizards/network/add/steps/PortProperties.vue +2 -2
  170. package/components/common/wizards/network/add/steps/SelectedTargetDevice.vue +2 -2
  171. package/components/common/wizards/network/add/validations/connectionSettings.ts +5 -5
  172. package/components/common/wizards/network/add/validations/createStandardSwitch.ts +4 -4
  173. package/components/common/wizards/network/add/validations/ipFourSettings.ts +5 -5
  174. package/components/common/wizards/network/add/validations/networkValidation.ts +4 -4
  175. package/components/common/wizards/network/add/validations/physicalAdapter.ts +4 -4
  176. package/components/common/wizards/network/add/validations/portProperties.ts +2 -2
  177. package/components/common/wizards/network/add/validations/targetDevice.ts +5 -5
  178. package/components/common/wizards/vm/migrate/Migrate.vue +2 -2
  179. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  180. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  181. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  182. package/components/common/wizards/vm/migrate/select/targetServer/new/New.vue +1 -1
  183. package/components/common/wizards/vm/migrate/select/targetServer/targetServer.vue +1 -1
  184. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  185. package/composables/productNameLocal.ts +30 -30
  186. package/composables/useAppVersion.ts +21 -21
  187. package/package.json +42 -42
  188. package/plugins/date.ts +233 -233
  189. package/plugins/panelStates.ts +70 -70
  190. package/plugins/text.ts +59 -59
  191. package/public/spice-console/lib/images/bitmap.js +203 -203
  192. package/public/spice-console/network/spicechannel.js +390 -390
  193. package/store/main/mutations.ts +7 -7
  194. package/store/main/state.ts +7 -7
@@ -1,331 +1,331 @@
1
- import type { UI_I_ItemsWithTotalCounts } from '~/lib/models/interfaces'
2
- import type {
3
- UI_I_Network,
4
- UI_I_SelectedPort,
5
- UI_I_NetworksWithPositions,
6
- UI_I_AdaptersWithPositions,
7
- UI_I_SelectedSwitchPositions,
8
- UI_I_DiagramData,
9
- UI_I_AdaptersHeight,
10
- UI_I_Adapter,
11
- UI_I_AdaptersPositions,
12
- UI_I_AdapterStatus,
13
- API_UI_I_SwitchItem,
14
- UI_I_AvailableAdapters,
15
- UI_I_SwitchAdapterItem,
16
- UI_I_AdapterWithError,
17
- } from '~/components/common/diagramMain/lib/models/interfaces'
18
- import type { UI_T_Adapters } from '~/components/common/diagramMain/lib/models/types'
19
- import {
20
- UI_E_NetworkType,
21
- UI_E_PositionsY,
22
- } from '~/components/common/diagramMain/lib/models/enums'
23
- import { NETWORK_POSITIONS } from '~/components/common/diagramMain/lib/config'
24
-
25
- export const hasPortAndNetwork = (
26
- selectedPort: UI_I_SelectedPort,
27
- id: string
28
- ): boolean =>
29
- selectedPort.portId !== '-1' &&
30
- selectedPort.networkId !== '-1' &&
31
- selectedPort.networkId === id
32
-
33
- export const networksPositions = (
34
- arr: number[],
35
- net: UI_I_NetworksWithPositions
36
- ): number[] => {
37
- if (net.ports.length === 0) return [...arr, net.connectLineY]
38
- if (!net.toggle)
39
- return [
40
- ...arr,
41
- net.portsPosition + NETWORK_POSITIONS.EMPTY_PORTS_PADDING_BOTTOM,
42
- ]
43
-
44
- return [
45
- ...arr,
46
- net.portsPosition +
47
- NETWORK_POSITIONS.FROM_VLAN_ID_TO_GROUP_NAME +
48
- NETWORK_POSITIONS.BETWEEN_VMS_AND_PORTS,
49
- net.networkType === UI_E_NetworkType.VCenter
50
- ? net.portsPosition +
51
- NETWORK_POSITIONS.FROM_VLAN_ID_TO_GROUP_NAME +
52
- NETWORK_POSITIONS.BETWEEN_V_CENTERS +
53
- NETWORK_POSITIONS.V_CENTER_HEIGHT * (net.portsCount - 1)
54
- : net.portsPosition +
55
- NETWORK_POSITIONS.FROM_VLAN_ID_TO_GROUP_NAME +
56
- NETWORK_POSITIONS.BETWEEN_VMS_AND_PORTS +
57
- NETWORK_POSITIONS.VMS_AND_PORTS_HEIGHT * (net.portsCount - 1),
58
- ]
59
- }
60
-
61
- export const getSelectedPortLinePositions = (
62
- selectedPortPosition: number | undefined,
63
- selectedNetworkData: UI_I_Network
64
- ) =>
65
- selectedPortPosition
66
- ? selectedNetworkData.networkType === UI_E_NetworkType.VCenter
67
- ? selectedPortPosition + 12.5
68
- : selectedPortPosition + 7.5
69
- : 0
70
-
71
- const selectedNetworkDataFunc = (
72
- networkId: string,
73
- networksWithPositions: UI_I_NetworksWithPositions[]
74
- ): UI_I_NetworksWithPositions | undefined =>
75
- networksWithPositions?.find(
76
- (network: UI_I_Network): boolean => network.id === networkId
77
- )
78
-
79
- export const getSelectNetworkDataFunc = (
80
- networkId: string,
81
- networksWithPositions: UI_I_NetworksWithPositions[],
82
- adaptersWithPositions: UI_I_AdaptersWithPositions
83
- ): UI_I_SelectedSwitchPositions | undefined => {
84
- const selectedNetworkData: UI_I_NetworksWithPositions | undefined =
85
- selectedNetworkDataFunc(networkId, networksWithPositions)
86
-
87
- if (!selectedNetworkData) return
88
-
89
- if (selectedNetworkData.state.state === 3)
90
- return {
91
- selectedSwitchLineY: {
92
- y1: 0,
93
- y2: 0,
94
- },
95
- selectedPort: {
96
- networkId,
97
- portId: '-1',
98
- activeAdapters: [],
99
- },
100
- }
101
-
102
- const activeAdapters: string[] = selectedNetworkData.activeAdapters
103
-
104
- const adaptersPositions: number[] =
105
- adaptersWithPositions.adapters
106
- ?.filter((adapter: UI_T_Adapters) => activeAdapters?.includes(adapter.id))
107
- ?.map((adapter: UI_T_Adapters) => adapter.adapterPosition + 7.5) || []
108
- let selectedPositions: number[] = []
109
-
110
- if (!adaptersWithPositions.toggle) {
111
- selectedPositions = [
112
- adaptersWithPositions.adaptersConnectLineY,
113
- selectedNetworkData.connectLineY,
114
- ]
115
- } else if (
116
- adaptersWithPositions.adapters === null ||
117
- adaptersWithPositions.adapters?.length === 0
118
- ) {
119
- selectedPositions = [47.5, selectedNetworkData.connectLineY].sort(
120
- (y1: number, y2: number) => y1 - y2
121
- )
122
- } else {
123
- selectedPositions = [
124
- ...adaptersPositions,
125
- selectedNetworkData.connectLineY,
126
- ].sort((y1: number, y2: number) => y1 - y2)
127
- }
128
-
129
- return {
130
- selectedSwitchLineY: {
131
- y1: selectedPositions[0],
132
- y2: selectedPositions[selectedPositions.length - 1],
133
- },
134
- selectedPort: {
135
- networkId,
136
- portId: '-1',
137
- activeAdapters: activeAdapters || [],
138
- },
139
- }
140
- }
141
-
142
- export const getSelectPortDataFunc = (
143
- networkId: string,
144
- portId: string,
145
- networksWithPositions: UI_I_NetworksWithPositions[],
146
- adaptersWithPositions: UI_I_AdaptersWithPositions
147
- ): UI_I_SelectedSwitchPositions | undefined => {
148
- const selectedNetworkData: UI_I_NetworksWithPositions | undefined =
149
- selectedNetworkDataFunc(networkId, networksWithPositions)
150
-
151
- if (!selectedNetworkData) return
152
-
153
- const activeAdapters: string[] = selectedNetworkData.activeAdapters
154
- const adaptersPositions: number[] =
155
- adaptersWithPositions.adapters
156
- ?.filter((adapter: UI_T_Adapters) => activeAdapters?.includes(adapter.id))
157
- ?.map((adapter: UI_T_Adapters) => adapter.adapterPosition + 7.5) || []
158
- const selectedPortPosition: number | undefined =
159
- selectedNetworkData.ports.find(
160
- (el): boolean => el.id === portId
161
- )?.portPosition
162
- const selectedPortLinePosition: number = getSelectedPortLinePositions(
163
- selectedPortPosition,
164
- selectedNetworkData
165
- )
166
- let selectedPositions: number[] = []
167
-
168
- if (!adaptersWithPositions.toggle) {
169
- selectedPositions = [
170
- adaptersWithPositions.adaptersConnectLineY,
171
- selectedNetworkData.connectLineY,
172
- selectedPortLinePosition,
173
- ]
174
- } else {
175
- selectedPositions = [...adaptersPositions, selectedPortLinePosition].sort(
176
- (y1: number, y2: number) => y1 - y2
177
- )
178
- }
179
-
180
- return {
181
- selectedSwitchLineY: {
182
- y1: selectedPositions[0],
183
- y2: selectedPositions[selectedPositions.length - 1],
184
- },
185
- selectedPort: {
186
- networkId,
187
- portId,
188
- activeAdapters: activeAdapters || [],
189
- },
190
- }
191
- }
192
-
193
- export const countAdaptersHeight = (
194
- diagramData: UI_I_DiagramData | null
195
- ): UI_I_AdaptersHeight => {
196
- const toggle: boolean = !!diagramData?.physicalAdapters?.toggle
197
- const adaptersCount: number =
198
- diagramData?.physicalAdapters?.adapters.length || 0
199
-
200
- return {
201
- height:
202
- UI_E_PositionsY.ADAPTER_FROM_RECT_TOP +
203
- (adaptersCount === 0
204
- ? UI_E_PositionsY.SINGLE_ADAPTER_HEIGHT
205
- : toggle
206
- ? adaptersCount * UI_E_PositionsY.SINGLE_ADAPTER_HEIGHT
207
- : 0) +
208
- UI_E_PositionsY.SPACE_FROM_RECT_BOTTOM,
209
- toggle,
210
- adaptersCount,
211
- }
212
- }
213
-
214
- export const getAdaptersPositions = (
215
- diagramData: UI_I_DiagramData | null,
216
- height: number
217
- ): UI_I_AdaptersPositions => {
218
- const titlePosition: number =
219
- UI_E_PositionsY.DIAGRAM_TOP +
220
- UI_E_PositionsY.BETWEEN_RECTS +
221
- UI_E_PositionsY.TITLE_FROM_RECT_TOP
222
-
223
- const rectPosition: number =
224
- UI_E_PositionsY.DIAGRAM_TOP + UI_E_PositionsY.BETWEEN_RECTS
225
-
226
- const adaptersConnectLineY: number = rectPosition + height / 2
227
-
228
- const adapters: UI_T_Adapters[] | null =
229
- diagramData?.physicalAdapters?.adapters.map(
230
- (adapter: UI_I_Adapter, index: number) => {
231
- const adapterPosition: number =
232
- UI_E_PositionsY.DIAGRAM_TOP +
233
- UI_E_PositionsY.BETWEEN_RECTS +
234
- UI_E_PositionsY.ADAPTER_FROM_RECT_TOP +
235
- UI_E_PositionsY.SINGLE_ADAPTER_HEIGHT * index
236
-
237
- return {
238
- ...adapter,
239
- adapterPosition,
240
- }
241
- }
242
- ) || null
243
-
244
- return {
245
- titlePosition,
246
- rectPosition,
247
- adaptersConnectLineY,
248
- adapters,
249
- }
250
- }
251
-
252
- export const makeSwitchSendData = (
253
- data: UI_I_DiagramData,
254
- adapterStatus: UI_I_AdapterStatus
255
- ): API_UI_I_SwitchItem | null => {
256
- if (!data.networking) return null
257
-
258
- return {
259
- id: data.id,
260
- mtu: data.networking.mtu,
261
- networks: data.networks.map((network: UI_I_Network) => network.title),
262
- nics: adapterStatus,
263
- security: {
264
- promiscuous: data.networking.securityPolicy[0].value,
265
- forged_transmits: data.networking.securityPolicy[1].value,
266
- mac_change: data.networking.securityPolicy[2].value,
267
- },
268
- teaming: {
269
- notify_switches: data.networking.nicTeamingPolicy[0].value,
270
- mode: data.networking.nicTeamingPolicy[1].value,
271
- link_detection_mode: data.networking.nicTeamingPolicy[2].value,
272
- failback: data.networking.nicTeamingPolicy[3].value,
273
- },
274
- shaping: {
275
- inherit: false,
276
- enabled: !!data.networking.shapingPolicy[0].value,
277
- average_bw: data.networking.average_bw,
278
- peak_bw: data.networking.peak_bw,
279
- burst_size: data.networking.burst_size,
280
- },
281
- }
282
- }
283
-
284
- export const getAvailableAdapters = (
285
- nics: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>,
286
- networkOrSwitchNics: UI_I_AdapterStatus
287
- ): UI_I_AvailableAdapters => {
288
- const availableAdapters: UI_I_AvailableAdapters = {
289
- activeAdapters: [],
290
- standbyAdapters: [],
291
- unusedAdapters: [],
292
- }
293
-
294
- if (nics?.items) {
295
- networkOrSwitchNics?.active?.forEach(
296
- (nic) =>
297
- nics?.items.find(
298
- (a: UI_I_SwitchAdapterItem): boolean => a.id === nic
299
- ) && availableAdapters.activeAdapters.push(nic)
300
- )
301
- networkOrSwitchNics?.standby?.forEach(
302
- (nic) =>
303
- nics?.items.find(
304
- (a: UI_I_SwitchAdapterItem): boolean => a.id === nic
305
- ) && availableAdapters.standbyAdapters.push(nic)
306
- )
307
- networkOrSwitchNics?.unused?.forEach(
308
- (nic) =>
309
- nics?.items.find(
310
- (a: UI_I_SwitchAdapterItem): boolean => a.id === nic
311
- ) && availableAdapters.unusedAdapters.push(nic)
312
- )
313
- }
314
-
315
- return availableAdapters
316
- }
317
-
318
- export const createAdapterWithError = (
319
- nic: string,
320
- switchId: string
321
- ): UI_I_AdapterWithError => ({
322
- fullName: nic,
323
- id: nic,
324
- name: nic,
325
- networks: [],
326
- state: { state: 1, errors: [] },
327
- switch: switchId,
328
- testId: `adapter-${nic}`,
329
- carrier: false,
330
- status: 'error',
331
- })
1
+ import type { UI_I_ItemsWithTotalCounts } from '~/lib/models/interfaces'
2
+ import type {
3
+ UI_I_Network,
4
+ UI_I_SelectedPort,
5
+ UI_I_NetworksWithPositions,
6
+ UI_I_AdaptersWithPositions,
7
+ UI_I_SelectedSwitchPositions,
8
+ UI_I_DiagramData,
9
+ UI_I_AdaptersHeight,
10
+ UI_I_Adapter,
11
+ UI_I_AdaptersPositions,
12
+ UI_I_AdapterStatus,
13
+ API_UI_I_SwitchItem,
14
+ UI_I_AvailableAdapters,
15
+ UI_I_SwitchAdapterItem,
16
+ UI_I_AdapterWithError,
17
+ } from '~/components/common/diagramMain/lib/models/interfaces'
18
+ import type { UI_T_Adapters } from '~/components/common/diagramMain/lib/models/types'
19
+ import {
20
+ UI_E_NetworkType,
21
+ UI_E_PositionsY,
22
+ } from '~/components/common/diagramMain/lib/models/enums'
23
+ import { NETWORK_POSITIONS } from '~/components/common/diagramMain/lib/config'
24
+
25
+ export const hasPortAndNetwork = (
26
+ selectedPort: UI_I_SelectedPort,
27
+ id: string
28
+ ): boolean =>
29
+ selectedPort.portId !== '-1' &&
30
+ selectedPort.networkId !== '-1' &&
31
+ selectedPort.networkId === id
32
+
33
+ export const networksPositions = (
34
+ arr: number[],
35
+ net: UI_I_NetworksWithPositions
36
+ ): number[] => {
37
+ if (net.ports.length === 0) return [...arr, net.connectLineY]
38
+ if (!net.toggle)
39
+ return [
40
+ ...arr,
41
+ net.portsPosition + NETWORK_POSITIONS.EMPTY_PORTS_PADDING_BOTTOM,
42
+ ]
43
+
44
+ return [
45
+ ...arr,
46
+ net.portsPosition +
47
+ NETWORK_POSITIONS.FROM_VLAN_ID_TO_GROUP_NAME +
48
+ NETWORK_POSITIONS.BETWEEN_VMS_AND_PORTS,
49
+ net.networkType === UI_E_NetworkType.VCenter
50
+ ? net.portsPosition +
51
+ NETWORK_POSITIONS.FROM_VLAN_ID_TO_GROUP_NAME +
52
+ NETWORK_POSITIONS.BETWEEN_V_CENTERS +
53
+ NETWORK_POSITIONS.V_CENTER_HEIGHT * (net.portsCount - 1)
54
+ : net.portsPosition +
55
+ NETWORK_POSITIONS.FROM_VLAN_ID_TO_GROUP_NAME +
56
+ NETWORK_POSITIONS.BETWEEN_VMS_AND_PORTS +
57
+ NETWORK_POSITIONS.VMS_AND_PORTS_HEIGHT * (net.portsCount - 1),
58
+ ]
59
+ }
60
+
61
+ export const getSelectedPortLinePositions = (
62
+ selectedPortPosition: number | undefined,
63
+ selectedNetworkData: UI_I_Network
64
+ ) =>
65
+ selectedPortPosition
66
+ ? selectedNetworkData.networkType === UI_E_NetworkType.VCenter
67
+ ? selectedPortPosition + 12.5
68
+ : selectedPortPosition + 7.5
69
+ : 0
70
+
71
+ const selectedNetworkDataFunc = (
72
+ networkId: string,
73
+ networksWithPositions: UI_I_NetworksWithPositions[]
74
+ ): UI_I_NetworksWithPositions | undefined =>
75
+ networksWithPositions?.find(
76
+ (network: UI_I_Network): boolean => network.id === networkId
77
+ )
78
+
79
+ export const getSelectNetworkDataFunc = (
80
+ networkId: string,
81
+ networksWithPositions: UI_I_NetworksWithPositions[],
82
+ adaptersWithPositions: UI_I_AdaptersWithPositions
83
+ ): UI_I_SelectedSwitchPositions | undefined => {
84
+ const selectedNetworkData: UI_I_NetworksWithPositions | undefined =
85
+ selectedNetworkDataFunc(networkId, networksWithPositions)
86
+
87
+ if (!selectedNetworkData) return
88
+
89
+ if (selectedNetworkData.state.state === 3)
90
+ return {
91
+ selectedSwitchLineY: {
92
+ y1: 0,
93
+ y2: 0,
94
+ },
95
+ selectedPort: {
96
+ networkId,
97
+ portId: '-1',
98
+ activeAdapters: [],
99
+ },
100
+ }
101
+
102
+ const activeAdapters: string[] = selectedNetworkData.activeAdapters
103
+
104
+ const adaptersPositions: number[] =
105
+ adaptersWithPositions.adapters
106
+ ?.filter((adapter: UI_T_Adapters) => activeAdapters?.includes(adapter.id))
107
+ ?.map((adapter: UI_T_Adapters) => adapter.adapterPosition + 7.5) || []
108
+ let selectedPositions: number[] = []
109
+
110
+ if (!adaptersWithPositions.toggle) {
111
+ selectedPositions = [
112
+ adaptersWithPositions.adaptersConnectLineY,
113
+ selectedNetworkData.connectLineY,
114
+ ]
115
+ } else if (
116
+ adaptersWithPositions.adapters === null ||
117
+ adaptersWithPositions.adapters?.length === 0
118
+ ) {
119
+ selectedPositions = [47.5, selectedNetworkData.connectLineY].sort(
120
+ (y1: number, y2: number) => y1 - y2
121
+ )
122
+ } else {
123
+ selectedPositions = [
124
+ ...adaptersPositions,
125
+ selectedNetworkData.connectLineY,
126
+ ].sort((y1: number, y2: number) => y1 - y2)
127
+ }
128
+
129
+ return {
130
+ selectedSwitchLineY: {
131
+ y1: selectedPositions[0],
132
+ y2: selectedPositions[selectedPositions.length - 1],
133
+ },
134
+ selectedPort: {
135
+ networkId,
136
+ portId: '-1',
137
+ activeAdapters: activeAdapters || [],
138
+ },
139
+ }
140
+ }
141
+
142
+ export const getSelectPortDataFunc = (
143
+ networkId: string,
144
+ portId: string,
145
+ networksWithPositions: UI_I_NetworksWithPositions[],
146
+ adaptersWithPositions: UI_I_AdaptersWithPositions
147
+ ): UI_I_SelectedSwitchPositions | undefined => {
148
+ const selectedNetworkData: UI_I_NetworksWithPositions | undefined =
149
+ selectedNetworkDataFunc(networkId, networksWithPositions)
150
+
151
+ if (!selectedNetworkData) return
152
+
153
+ const activeAdapters: string[] = selectedNetworkData.activeAdapters
154
+ const adaptersPositions: number[] =
155
+ adaptersWithPositions.adapters
156
+ ?.filter((adapter: UI_T_Adapters) => activeAdapters?.includes(adapter.id))
157
+ ?.map((adapter: UI_T_Adapters) => adapter.adapterPosition + 7.5) || []
158
+ const selectedPortPosition: number | undefined =
159
+ selectedNetworkData.ports.find(
160
+ (el): boolean => el.id === portId
161
+ )?.portPosition
162
+ const selectedPortLinePosition: number = getSelectedPortLinePositions(
163
+ selectedPortPosition,
164
+ selectedNetworkData
165
+ )
166
+ let selectedPositions: number[] = []
167
+
168
+ if (!adaptersWithPositions.toggle) {
169
+ selectedPositions = [
170
+ adaptersWithPositions.adaptersConnectLineY,
171
+ selectedNetworkData.connectLineY,
172
+ selectedPortLinePosition,
173
+ ]
174
+ } else {
175
+ selectedPositions = [...adaptersPositions, selectedPortLinePosition].sort(
176
+ (y1: number, y2: number) => y1 - y2
177
+ )
178
+ }
179
+
180
+ return {
181
+ selectedSwitchLineY: {
182
+ y1: selectedPositions[0],
183
+ y2: selectedPositions[selectedPositions.length - 1],
184
+ },
185
+ selectedPort: {
186
+ networkId,
187
+ portId,
188
+ activeAdapters: activeAdapters || [],
189
+ },
190
+ }
191
+ }
192
+
193
+ export const countAdaptersHeight = (
194
+ diagramData: UI_I_DiagramData | null
195
+ ): UI_I_AdaptersHeight => {
196
+ const toggle: boolean = !!diagramData?.physicalAdapters?.toggle
197
+ const adaptersCount: number =
198
+ diagramData?.physicalAdapters?.adapters.length || 0
199
+
200
+ return {
201
+ height:
202
+ UI_E_PositionsY.ADAPTER_FROM_RECT_TOP +
203
+ (adaptersCount === 0
204
+ ? UI_E_PositionsY.SINGLE_ADAPTER_HEIGHT
205
+ : toggle
206
+ ? adaptersCount * UI_E_PositionsY.SINGLE_ADAPTER_HEIGHT
207
+ : 0) +
208
+ UI_E_PositionsY.SPACE_FROM_RECT_BOTTOM,
209
+ toggle,
210
+ adaptersCount,
211
+ }
212
+ }
213
+
214
+ export const getAdaptersPositions = (
215
+ diagramData: UI_I_DiagramData | null,
216
+ height: number
217
+ ): UI_I_AdaptersPositions => {
218
+ const titlePosition: number =
219
+ UI_E_PositionsY.DIAGRAM_TOP +
220
+ UI_E_PositionsY.BETWEEN_RECTS +
221
+ UI_E_PositionsY.TITLE_FROM_RECT_TOP
222
+
223
+ const rectPosition: number =
224
+ UI_E_PositionsY.DIAGRAM_TOP + UI_E_PositionsY.BETWEEN_RECTS
225
+
226
+ const adaptersConnectLineY: number = rectPosition + height / 2
227
+
228
+ const adapters: UI_T_Adapters[] | null =
229
+ diagramData?.physicalAdapters?.adapters.map(
230
+ (adapter: UI_I_Adapter, index: number) => {
231
+ const adapterPosition: number =
232
+ UI_E_PositionsY.DIAGRAM_TOP +
233
+ UI_E_PositionsY.BETWEEN_RECTS +
234
+ UI_E_PositionsY.ADAPTER_FROM_RECT_TOP +
235
+ UI_E_PositionsY.SINGLE_ADAPTER_HEIGHT * index
236
+
237
+ return {
238
+ ...adapter,
239
+ adapterPosition,
240
+ }
241
+ }
242
+ ) || null
243
+
244
+ return {
245
+ titlePosition,
246
+ rectPosition,
247
+ adaptersConnectLineY,
248
+ adapters,
249
+ }
250
+ }
251
+
252
+ export const makeSwitchSendData = (
253
+ data: UI_I_DiagramData,
254
+ adapterStatus: UI_I_AdapterStatus
255
+ ): API_UI_I_SwitchItem | null => {
256
+ if (!data.networking) return null
257
+
258
+ return {
259
+ id: data.id,
260
+ mtu: data.networking.mtu,
261
+ networks: data.networks.map((network: UI_I_Network) => network.title),
262
+ nics: adapterStatus,
263
+ security: {
264
+ promiscuous: data.networking.securityPolicy[0].value,
265
+ forged_transmits: data.networking.securityPolicy[1].value,
266
+ mac_change: data.networking.securityPolicy[2].value,
267
+ },
268
+ teaming: {
269
+ notify_switches: data.networking.nicTeamingPolicy[0].value,
270
+ mode: data.networking.nicTeamingPolicy[1].value,
271
+ link_detection_mode: data.networking.nicTeamingPolicy[2].value,
272
+ failback: data.networking.nicTeamingPolicy[3].value,
273
+ },
274
+ shaping: {
275
+ inherit: false,
276
+ enabled: !!data.networking.shapingPolicy[0].value,
277
+ average_bw: data.networking.average_bw,
278
+ peak_bw: data.networking.peak_bw,
279
+ burst_size: data.networking.burst_size,
280
+ },
281
+ }
282
+ }
283
+
284
+ export const getAvailableAdapters = (
285
+ nics: UI_I_ItemsWithTotalCounts<UI_I_SwitchAdapterItem>,
286
+ networkOrSwitchNics: UI_I_AdapterStatus
287
+ ): UI_I_AvailableAdapters => {
288
+ const availableAdapters: UI_I_AvailableAdapters = {
289
+ activeAdapters: [],
290
+ standbyAdapters: [],
291
+ unusedAdapters: [],
292
+ }
293
+
294
+ if (nics?.items) {
295
+ networkOrSwitchNics?.active?.forEach(
296
+ (nic) =>
297
+ nics?.items.find(
298
+ (a: UI_I_SwitchAdapterItem): boolean => a.id === nic
299
+ ) && availableAdapters.activeAdapters.push(nic)
300
+ )
301
+ networkOrSwitchNics?.standby?.forEach(
302
+ (nic) =>
303
+ nics?.items.find(
304
+ (a: UI_I_SwitchAdapterItem): boolean => a.id === nic
305
+ ) && availableAdapters.standbyAdapters.push(nic)
306
+ )
307
+ networkOrSwitchNics?.unused?.forEach(
308
+ (nic) =>
309
+ nics?.items.find(
310
+ (a: UI_I_SwitchAdapterItem): boolean => a.id === nic
311
+ ) && availableAdapters.unusedAdapters.push(nic)
312
+ )
313
+ }
314
+
315
+ return availableAdapters
316
+ }
317
+
318
+ export const createAdapterWithError = (
319
+ nic: string,
320
+ switchId: string
321
+ ): UI_I_AdapterWithError => ({
322
+ fullName: nic,
323
+ id: nic,
324
+ name: nic,
325
+ networks: [],
326
+ state: { state: 1, errors: [] },
327
+ switch: switchId,
328
+ testId: `adapter-${nic}`,
329
+ carrier: false,
330
+ status: 'error',
331
+ })