bfg-common 1.4.498 → 1.4.500

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 (124) hide show
  1. package/assets/img/icons/icons-sprite-dark-1.svg +407 -407
  2. package/assets/img/icons/icons-sprite-dark-2.svg +343 -343
  3. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-dark-4.svg +255 -255
  5. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  6. package/assets/img/icons/icons-sprite-dark-6.svg +94 -94
  7. package/assets/img/icons/icons-sprite-light-1.svg +407 -407
  8. package/assets/img/icons/icons-sprite-light-2.svg +343 -343
  9. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  10. package/assets/img/icons/icons-sprite-light-4.svg +255 -255
  11. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  12. package/assets/img/icons/icons-sprite-light-6.svg +94 -94
  13. package/components/atoms/TheIcon3.vue +50 -50
  14. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  15. package/components/atoms/stack/StackBlock.vue +185 -185
  16. package/components/atoms/table/dataGrid/DataGrid.vue +1633 -1633
  17. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  18. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  19. package/components/common/browse/lib/models/interfaces.ts +5 -5
  20. package/components/common/context/lib/models/interfaces.ts +30 -30
  21. package/components/common/context/recursion/Recursion.vue +86 -86
  22. package/components/common/context/recursion/RecursionNew.vue +199 -199
  23. package/components/common/context/recursion/RecursionOld.vue +213 -213
  24. package/components/common/diagramMain/Diagram.vue +364 -364
  25. package/components/common/diagramMain/Header.vue +211 -211
  26. package/components/common/diagramMain/adapter/Adapter.vue +123 -123
  27. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  28. package/components/common/diagramMain/adapter/block/Block.vue +27 -27
  29. package/components/common/diagramMain/adapter/secondBlock/SecondBlock.vue +27 -27
  30. package/components/common/diagramMain/adapter/secondBlock/SecondBlockOld.vue +51 -51
  31. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  32. package/components/common/diagramMain/lib/models/enums.ts +44 -44
  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/ManagePhysicalAdaptersModal.vue +330 -330
  36. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  37. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
  38. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
  39. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  40. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  41. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  42. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  43. package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +398 -398
  44. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  45. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  46. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
  47. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  48. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  49. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  50. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  51. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +537 -537
  52. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  53. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  54. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  55. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  56. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  57. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  58. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  59. package/components/common/diagramMain/network/Network.vue +1 -1
  60. package/components/common/diagramMain/network/block/BlockOld.vue +64 -64
  61. package/components/common/diagramMain/network/noNetwork/NoNetwork.vue +12 -12
  62. package/components/common/diagramMain/network/noNetwork/NoNetworkOld.vue +61 -61
  63. package/components/common/diagramMain/network/secondBlock/SecondBlockOld.vue +60 -60
  64. package/components/common/diagramMain/port/Ports.vue +47 -47
  65. package/components/common/modals/confirmation/Confirmation.vue +70 -70
  66. package/components/common/vm/actions/add/Add.vue +617 -617
  67. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  68. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +267 -267
  69. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +254 -204
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +118 -118
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +163 -164
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +55 -55
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +0 -1
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +147 -147
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +0 -1
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +0 -1
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -125
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkOld.vue +2 -2
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/Location.vue +71 -0
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/{Location.vue → location/LocationOld.vue} +134 -145
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -0
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +74 -0
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -0
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -84
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -53
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +27 -27
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +0 -1
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +100 -100
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  113. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  114. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  115. package/components/common/vm/actions/common/select/storage/new/New.vue +159 -159
  116. package/components/common/vm/actions/editSettings/EditSettings.vue +214 -214
  117. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +182 -182
  118. package/components/common/wizards/network/add/lib/config/steps.ts +464 -464
  119. package/composables/productNameLocal.ts +30 -30
  120. package/package.json +1 -1
  121. package/plugins/date.ts +233 -233
  122. package/plugins/recursion.ts +311 -311
  123. package/public/spice-console/lib/images/bitmap.js +203 -203
  124. package/public/spice-console/network/spicechannel.js +383 -383
@@ -1,364 +1,364 @@
1
- <template>
2
- <div
3
- :class="{
4
- 'diagram-container-new': isNewView,
5
- 'diagram-container': !isNewView,
6
- 'diagram-in-portlet': props.inPortlet,
7
- }"
8
- >
9
- <svg
10
- v-if="props.diagramData && props.isShowDiagram"
11
- xmlns="http://www.w3.org/2000/svg"
12
- :height="diagramHeight"
13
- :width="diagramWidth"
14
- :viewBox="viewBox"
15
- :preserveAspectRatio="preserveAspectRatio"
16
- :class="svgClasses"
17
- @click.capture="onClickDiagram"
18
- >
19
- <common-diagram-main-switch
20
- :networks-count="props.networksCount"
21
- :main-rect-height="props.mainRectHeight"
22
- :main-switch-line="props.mainSwitchLine"
23
- :selected-main-line="props.selectedMainLine"
24
- :is-visible-line="hasActiveAdapter"
25
- :is-selected-linked-with-adapter="isSelectedLinkedWithAdapter"
26
- :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
27
- :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
28
- :networks-with-positions="props.networksWithPositions"
29
- />
30
- <common-diagram-main-adapter
31
- :networks-count="props.networksCount"
32
- :adapters-with-positions="props.adaptersWithPositions"
33
- :selected-main-line="props.selectedMainLine"
34
- :selected-port="props.selectedPort"
35
- :selected-adapter="props.selectedAdapter"
36
- :selected-network="props.selectedNetwork"
37
- :is-visible-line="hasActiveAdapter"
38
- :is-dark-mode="props.isDarkMode"
39
- :test-id="props.diagramData.testId"
40
- :is-selected-linked-with-adapter="isSelectedLinkedWithAdapter"
41
- :networks-with-positions="props.networksWithPositions"
42
- :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
43
- :in-network-lines-y="inNetworkLinesY"
44
- @toggle-adapters="onToggleAdapters"
45
- @select-adapter="onSelectAdapter"
46
- @show-modal="onShowModal"
47
- />
48
- <template v-if="!!props.networksWithPositions.length">
49
- <template
50
- v-for="network in props.networksWithPositions"
51
- :key="network.id"
52
- >
53
- <common-diagram-main-network
54
- :network="network"
55
- :selected-port="props.selectedPort"
56
- :selected-adapter="props.selectedAdapter"
57
- :selected-network="props.selectedNetwork"
58
- :selected-main-line="props.selectedMainLine"
59
- :diagram-id="props.diagramData.id"
60
- :in-portlet="props.inPortlet"
61
- :is-visible-line="hasActiveAdapter"
62
- :is-dark-mode="props.isDarkMode"
63
- :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
64
- :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
65
- :adapters-positions-y="adaptersPositionsY"
66
- @toggle-ports="onTogglePorts"
67
- @select-port="onSelectPort"
68
- @select-network="onSelectNetwork"
69
- @show-modal="onShowModal"
70
- />
71
- </template>
72
- </template>
73
- <template v-else>
74
- <common-diagram-main-network-no-network />
75
- </template>
76
- <common-diagram-main-switch-selected
77
- :selected-switch-line-y="props.selectedSwitchLineY"
78
- :is-visible-line="hasActiveAdapter && isSelectedLinkedWithAdapter"
79
- :adapters-positions-y="adaptersPositionsY"
80
- :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
81
- :is-highlighted-adapter-line="isHighlightedAdapterLine"
82
- :in-network-lines-y="inNetworkLinesY"
83
- />
84
- </svg>
85
- </div>
86
- </template>
87
-
88
- <script setup lang="ts">
89
- import {
90
- UI_I_AdaptersWithPositions,
91
- UI_I_DiagramData,
92
- UI_I_ModalsInitialData,
93
- UI_I_NetworksWithPositions,
94
- UI_I_SelectedAdapter,
95
- UI_I_SelectedPort,
96
- UI_I_SwitchLine,
97
- UI_I_Network,
98
- } from '~/components/common/diagramMain/lib/models/interfaces'
99
- import { UI_E_PositionsY } from '~/components/common/diagramMain/lib/models/enums'
100
-
101
- const props = defineProps<{
102
- diagramData: UI_I_DiagramData
103
- isShowDiagram: boolean
104
- inPortlet: boolean
105
- networksWithPositions: UI_I_NetworksWithPositions[]
106
- mainRectHeight: number
107
- mainSwitchLine: UI_I_SwitchLine
108
- selectedMainLine: boolean
109
- adaptersWithPositions: UI_I_AdaptersWithPositions
110
- selectedPort: UI_I_SelectedPort
111
- selectedAdapter: UI_I_SelectedAdapter
112
- selectedNetwork: string
113
- selectedSwitchLineY: UI_I_SwitchLine
114
- isDarkMode: boolean
115
- networksCount: number
116
- }>()
117
-
118
- const emits = defineEmits<{
119
- (event: 'click-diagram', ev: MouseEvent): void
120
- (event: 'toggle-adapters'): void
121
- (event: 'select-adapter', adapterId: string): void
122
- (
123
- event: 'show-modal',
124
- value: string,
125
- properties?: UI_I_ModalsInitialData
126
- ): void
127
- (
128
- event: 'toggle-ports',
129
- id: string,
130
- newState: boolean,
131
- diagramId: string
132
- ): void
133
- (event: 'select-port', networkId: string, portId: string): void
134
- (event: 'select-network', networkId: string): void
135
- }>()
136
-
137
- const { $store }: any = useNuxtApp()
138
-
139
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
140
-
141
- const inNetworkLinesY = computed(() => {
142
- const linesY = []
143
- props.networksWithPositions.forEach((net, index) => {
144
- ;(!!props.selectedAdapter.connectedPorts.find(
145
- (net2) => net2.networkId === net.id && net2.ports.length === 0
146
- ) ||
147
- props.selectedNetwork === net.id) &&
148
- linesY.push(net.connectLineY)
149
-
150
- net.toggle
151
- ? net.ports.forEach((port) => {
152
- ;((props.selectedPort.portId === port.id &&
153
- props.selectedPort.networkId === net.id &&
154
- net.activeAdapters.length > 0) ||
155
- !!props.selectedAdapter.connectedPorts.find(
156
- (net2) =>
157
- net2.networkId === net.id && net2.ports.includes(port.id)
158
- )) &&
159
- linesY.push(port.portPosition + 7.5)
160
- })
161
- : !!props.selectedAdapter.connectedPorts.find(
162
- (net2) => net2.networkId === net.id && net2.ports.length !== 0
163
- ) && linesY.push(net.portsPosition + 7.5)
164
- })
165
-
166
- return linesY.sort((a, b) => a - b)
167
- })
168
-
169
- const isOpenedAdapterBlockAndNoSelectedNetwork = computed<boolean>(
170
- () =>
171
- !props.adaptersWithPositions.toggle && props.selectedPort.networkId !== '-1'
172
- )
173
-
174
- const hasNoAdaptersAndNoSelectedNetwork = computed<boolean>(() => {
175
- return (
176
- props.adaptersWithPositions.adapters?.length === 0 &&
177
- props.selectedNetwork !== '-1'
178
- )
179
- })
180
-
181
- const isHighlightedOptimizePart = computed(
182
- () =>
183
- !props.selectedMainLine && !isOpenedAdapterBlockAndNoSelectedNetwork.value
184
- )
185
-
186
- const isHighlightedAdapterLine = computed<boolean>(
187
- () =>
188
- isSelectedLinkedWithAdapter.value &&
189
- !(
190
- isHighlightedOptimizePart.value &&
191
- !hasNoAdaptersAndNoSelectedNetwork.value
192
- )
193
- )
194
-
195
- const firstAndLastNetworkLinesY = computed(() => {
196
- const networkLinesY = props.networksWithPositions
197
- .filter((n) => n.activeAdapters.length > 0 && n.state.state !== 3)
198
- .map((n) => n.connectLineY)
199
- .sort((a, b) => a - b)
200
-
201
- return {
202
- firstNetworkY: networkLinesY[0],
203
- lastNetworkY: networkLinesY[networkLinesY.length - 1],
204
- }
205
- })
206
-
207
- const adaptersPositionsY = computed(() =>
208
- props.adaptersWithPositions.adapters.reduce((result, ad) => {
209
- let isAdapterActiveOnAnyNetwork = false
210
- props.networksWithPositions.forEach(
211
- (network: UI_I_NetworksWithPositions) =>
212
- network.activeAdapters.includes(props.selectedAdapter.adapterId) &&
213
- (isAdapterActiveOnAnyNetwork = true)
214
- )
215
-
216
- const isVisible =
217
- (props.selectedPort.activeAdapters.includes(ad.id) ||
218
- (props.selectedAdapter.adapterId === ad.id &&
219
- isAdapterActiveOnAnyNetwork)) &&
220
- !!props.networksCount
221
-
222
- if (isVisible) {
223
- return [...result, ad.adapterPosition]
224
- }
225
- return result
226
- }, [])
227
- )
228
-
229
- const svgClasses = computed(() => ({
230
- 'diagram-portlet': !props.inPortlet,
231
- }))
232
-
233
- const preserveAspectRatio = computed<string | undefined>(() =>
234
- props.inPortlet ? 'xMinYMin' : undefined
235
- )
236
-
237
- const svgHeight = computed<number>(
238
- () =>
239
- UI_E_PositionsY.DIAGRAM_TOP +
240
- props.mainRectHeight +
241
- UI_E_PositionsY.DIAGRAM_BOTTOM
242
- )
243
-
244
- const viewBox = computed<string>(() =>
245
- props.inPortlet ? '0 0 725 1' : `0 0 740 ${svgHeight.value}`
246
- )
247
-
248
- const diagramHeight = computed<number>(() =>
249
- props.inPortlet ? svgHeight.value / 1.35 : svgHeight.value
250
- )
251
-
252
- const diagramWidth = computed<number>(() => (props.inPortlet ? 560 : 740))
253
-
254
- const hasActiveAdapter = computed<boolean>(() => {
255
- let flag = false
256
- props.diagramData?.networks.forEach(
257
- (network: UI_I_Network) =>
258
- network.activeAdapters.length > 0 && (flag = true)
259
- )
260
- return flag
261
- })
262
-
263
- const isSelectedLinkedWithAdapter = computed<boolean>(() => {
264
- if (props.selectedNetwork && props.selectedNetwork !== '-1') {
265
- const selectedNetworkData = props.networksWithPositions.find(
266
- (network: UI_I_NetworksWithPositions) =>
267
- network.id === props.selectedNetwork
268
- )
269
-
270
- if (!selectedNetworkData) return false
271
-
272
- return (
273
- selectedNetworkData.activeAdapters.length > 0 &&
274
- selectedNetworkData.state.state !== 3
275
- )
276
- }
277
-
278
- if (props.selectedPort.portId && props.selectedPort.portId !== '-1') {
279
- const selectedNetworkData = props.networksWithPositions.find(
280
- (network: UI_I_NetworksWithPositions) =>
281
- network.id === props.selectedPort.networkId
282
- )
283
-
284
- if (!selectedNetworkData) return false
285
-
286
- return (
287
- selectedNetworkData.activeAdapters.length > 0 &&
288
- selectedNetworkData.state.state !== 3
289
- )
290
- }
291
-
292
- if (props.selectedAdapter.adapterId !== '-1' || props.selectedMainLine)
293
- return true
294
-
295
- return false
296
- })
297
-
298
- const onClickDiagram = (ev: MouseEvent) => emits('click-diagram', ev)
299
- const onToggleAdapters = () => emits('toggle-adapters')
300
- const onSelectAdapter = (adapterId: string) =>
301
- emits('select-adapter', adapterId)
302
- const onShowModal = (value: string, properties?: UI_I_ModalsInitialData) =>
303
- emits('show-modal', value, properties)
304
- const onTogglePorts = (
305
- id: string,
306
- isToggle: boolean,
307
- diagramId: string
308
- ): void => {
309
- emits('toggle-ports', id, isToggle, diagramId)
310
- }
311
- const onSelectPort = (networkId: string, portId: string): void => {
312
- emits('select-port', networkId, portId)
313
- }
314
- const onSelectNetwork = (networkId: string): void => {
315
- emits('select-network', networkId)
316
- }
317
- </script>
318
-
319
- <style scoped lang="scss">
320
- .diagram {
321
- &-container {
322
- display: flex;
323
- justify-content: center;
324
-
325
- .diagram-portlet {
326
- margin-top: 10px;
327
- }
328
- }
329
- }
330
-
331
- .diagram {
332
- &-container-new:not(.diagram-in-portlet) {
333
- display: flex;
334
- justify-content: center;
335
- margin: 16px 16px 30px;
336
- padding: 40px 0 8.5px;
337
- border-radius: 8px;
338
- background: var(--diagram-container-bg);
339
- box-shadow: 0 1px 4px 0 #00000014;
340
- }
341
- &-container-new.diagram-in-portlet {
342
- .diagram-portlet {
343
- margin-top: 10px;
344
- }
345
- }
346
- }
347
- </style>
348
- <style lang="scss">
349
- .diagram-actions__popup.navbar-dropdown-menu {
350
- transform: translate(-30px, -20px);
351
-
352
- .btn {
353
- border-radius: 0;
354
- border-bottom: 1px solid transparent;
355
-
356
- span {
357
- font-size: 14px;
358
- }
359
- &:active {
360
- box-shadow: none;
361
- }
362
- }
363
- }
364
- </style>
1
+ <template>
2
+ <div
3
+ :class="{
4
+ 'diagram-container-new': isNewView,
5
+ 'diagram-container': !isNewView,
6
+ 'diagram-in-portlet': props.inPortlet,
7
+ }"
8
+ >
9
+ <svg
10
+ v-if="props.diagramData && props.isShowDiagram"
11
+ xmlns="http://www.w3.org/2000/svg"
12
+ :height="diagramHeight"
13
+ :width="diagramWidth"
14
+ :viewBox="viewBox"
15
+ :preserveAspectRatio="preserveAspectRatio"
16
+ :class="svgClasses"
17
+ @click.capture="onClickDiagram"
18
+ >
19
+ <common-diagram-main-switch
20
+ :networks-count="props.networksCount"
21
+ :main-rect-height="props.mainRectHeight"
22
+ :main-switch-line="props.mainSwitchLine"
23
+ :selected-main-line="props.selectedMainLine"
24
+ :is-visible-line="hasActiveAdapter"
25
+ :is-selected-linked-with-adapter="isSelectedLinkedWithAdapter"
26
+ :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
27
+ :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
28
+ :networks-with-positions="props.networksWithPositions"
29
+ />
30
+ <common-diagram-main-adapter
31
+ :networks-count="props.networksCount"
32
+ :adapters-with-positions="props.adaptersWithPositions"
33
+ :selected-main-line="props.selectedMainLine"
34
+ :selected-port="props.selectedPort"
35
+ :selected-adapter="props.selectedAdapter"
36
+ :selected-network="props.selectedNetwork"
37
+ :is-visible-line="hasActiveAdapter"
38
+ :is-dark-mode="props.isDarkMode"
39
+ :test-id="props.diagramData.testId"
40
+ :is-selected-linked-with-adapter="isSelectedLinkedWithAdapter"
41
+ :networks-with-positions="props.networksWithPositions"
42
+ :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
43
+ :in-network-lines-y="inNetworkLinesY"
44
+ @toggle-adapters="onToggleAdapters"
45
+ @select-adapter="onSelectAdapter"
46
+ @show-modal="onShowModal"
47
+ />
48
+ <template v-if="!!props.networksWithPositions.length">
49
+ <template
50
+ v-for="network in props.networksWithPositions"
51
+ :key="network.id"
52
+ >
53
+ <common-diagram-main-network
54
+ :network="network"
55
+ :selected-port="props.selectedPort"
56
+ :selected-adapter="props.selectedAdapter"
57
+ :selected-network="props.selectedNetwork"
58
+ :selected-main-line="props.selectedMainLine"
59
+ :diagram-id="props.diagramData.id"
60
+ :in-portlet="props.inPortlet"
61
+ :is-visible-line="hasActiveAdapter"
62
+ :is-dark-mode="props.isDarkMode"
63
+ :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
64
+ :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
65
+ :adapters-positions-y="adaptersPositionsY"
66
+ @toggle-ports="onTogglePorts"
67
+ @select-port="onSelectPort"
68
+ @select-network="onSelectNetwork"
69
+ @show-modal="onShowModal"
70
+ />
71
+ </template>
72
+ </template>
73
+ <template v-else>
74
+ <common-diagram-main-network-no-network />
75
+ </template>
76
+ <common-diagram-main-switch-selected
77
+ :selected-switch-line-y="props.selectedSwitchLineY"
78
+ :is-visible-line="hasActiveAdapter && isSelectedLinkedWithAdapter"
79
+ :adapters-positions-y="adaptersPositionsY"
80
+ :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
81
+ :is-highlighted-adapter-line="isHighlightedAdapterLine"
82
+ :in-network-lines-y="inNetworkLinesY"
83
+ />
84
+ </svg>
85
+ </div>
86
+ </template>
87
+
88
+ <script setup lang="ts">
89
+ import {
90
+ UI_I_AdaptersWithPositions,
91
+ UI_I_DiagramData,
92
+ UI_I_ModalsInitialData,
93
+ UI_I_NetworksWithPositions,
94
+ UI_I_SelectedAdapter,
95
+ UI_I_SelectedPort,
96
+ UI_I_SwitchLine,
97
+ UI_I_Network,
98
+ } from '~/components/common/diagramMain/lib/models/interfaces'
99
+ import { UI_E_PositionsY } from '~/components/common/diagramMain/lib/models/enums'
100
+
101
+ const props = defineProps<{
102
+ diagramData: UI_I_DiagramData
103
+ isShowDiagram: boolean
104
+ inPortlet: boolean
105
+ networksWithPositions: UI_I_NetworksWithPositions[]
106
+ mainRectHeight: number
107
+ mainSwitchLine: UI_I_SwitchLine
108
+ selectedMainLine: boolean
109
+ adaptersWithPositions: UI_I_AdaptersWithPositions
110
+ selectedPort: UI_I_SelectedPort
111
+ selectedAdapter: UI_I_SelectedAdapter
112
+ selectedNetwork: string
113
+ selectedSwitchLineY: UI_I_SwitchLine
114
+ isDarkMode: boolean
115
+ networksCount: number
116
+ }>()
117
+
118
+ const emits = defineEmits<{
119
+ (event: 'click-diagram', ev: MouseEvent): void
120
+ (event: 'toggle-adapters'): void
121
+ (event: 'select-adapter', adapterId: string): void
122
+ (
123
+ event: 'show-modal',
124
+ value: string,
125
+ properties?: UI_I_ModalsInitialData
126
+ ): void
127
+ (
128
+ event: 'toggle-ports',
129
+ id: string,
130
+ newState: boolean,
131
+ diagramId: string
132
+ ): void
133
+ (event: 'select-port', networkId: string, portId: string): void
134
+ (event: 'select-network', networkId: string): void
135
+ }>()
136
+
137
+ const { $store }: any = useNuxtApp()
138
+
139
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
140
+
141
+ const inNetworkLinesY = computed(() => {
142
+ const linesY = []
143
+ props.networksWithPositions.forEach((net, index) => {
144
+ ;(!!props.selectedAdapter.connectedPorts.find(
145
+ (net2) => net2.networkId === net.id && net2.ports.length === 0
146
+ ) ||
147
+ props.selectedNetwork === net.id) &&
148
+ linesY.push(net.connectLineY)
149
+
150
+ net.toggle
151
+ ? net.ports.forEach((port) => {
152
+ ;((props.selectedPort.portId === port.id &&
153
+ props.selectedPort.networkId === net.id &&
154
+ net.activeAdapters.length > 0) ||
155
+ !!props.selectedAdapter.connectedPorts.find(
156
+ (net2) =>
157
+ net2.networkId === net.id && net2.ports.includes(port.id)
158
+ )) &&
159
+ linesY.push(port.portPosition + 7.5)
160
+ })
161
+ : !!props.selectedAdapter.connectedPorts.find(
162
+ (net2) => net2.networkId === net.id && net2.ports.length !== 0
163
+ ) && linesY.push(net.portsPosition + 7.5)
164
+ })
165
+
166
+ return linesY.sort((a, b) => a - b)
167
+ })
168
+
169
+ const isOpenedAdapterBlockAndNoSelectedNetwork = computed<boolean>(
170
+ () =>
171
+ !props.adaptersWithPositions.toggle && props.selectedPort.networkId !== '-1'
172
+ )
173
+
174
+ const hasNoAdaptersAndNoSelectedNetwork = computed<boolean>(() => {
175
+ return (
176
+ props.adaptersWithPositions.adapters?.length === 0 &&
177
+ props.selectedNetwork !== '-1'
178
+ )
179
+ })
180
+
181
+ const isHighlightedOptimizePart = computed(
182
+ () =>
183
+ !props.selectedMainLine && !isOpenedAdapterBlockAndNoSelectedNetwork.value
184
+ )
185
+
186
+ const isHighlightedAdapterLine = computed<boolean>(
187
+ () =>
188
+ isSelectedLinkedWithAdapter.value &&
189
+ !(
190
+ isHighlightedOptimizePart.value &&
191
+ !hasNoAdaptersAndNoSelectedNetwork.value
192
+ )
193
+ )
194
+
195
+ const firstAndLastNetworkLinesY = computed(() => {
196
+ const networkLinesY = props.networksWithPositions
197
+ .filter((n) => n.activeAdapters.length > 0 && n.state.state !== 3)
198
+ .map((n) => n.connectLineY)
199
+ .sort((a, b) => a - b)
200
+
201
+ return {
202
+ firstNetworkY: networkLinesY[0],
203
+ lastNetworkY: networkLinesY[networkLinesY.length - 1],
204
+ }
205
+ })
206
+
207
+ const adaptersPositionsY = computed(() =>
208
+ props.adaptersWithPositions.adapters.reduce((result, ad) => {
209
+ let isAdapterActiveOnAnyNetwork = false
210
+ props.networksWithPositions.forEach(
211
+ (network: UI_I_NetworksWithPositions) =>
212
+ network.activeAdapters.includes(props.selectedAdapter.adapterId) &&
213
+ (isAdapterActiveOnAnyNetwork = true)
214
+ )
215
+
216
+ const isVisible =
217
+ (props.selectedPort.activeAdapters.includes(ad.id) ||
218
+ (props.selectedAdapter.adapterId === ad.id &&
219
+ isAdapterActiveOnAnyNetwork)) &&
220
+ !!props.networksCount
221
+
222
+ if (isVisible) {
223
+ return [...result, ad.adapterPosition]
224
+ }
225
+ return result
226
+ }, [])
227
+ )
228
+
229
+ const svgClasses = computed(() => ({
230
+ 'diagram-portlet': !props.inPortlet,
231
+ }))
232
+
233
+ const preserveAspectRatio = computed<string | undefined>(() =>
234
+ props.inPortlet ? 'xMinYMin' : undefined
235
+ )
236
+
237
+ const svgHeight = computed<number>(
238
+ () =>
239
+ UI_E_PositionsY.DIAGRAM_TOP +
240
+ props.mainRectHeight +
241
+ UI_E_PositionsY.DIAGRAM_BOTTOM
242
+ )
243
+
244
+ const viewBox = computed<string>(() =>
245
+ props.inPortlet ? '0 0 725 1' : `0 0 740 ${svgHeight.value}`
246
+ )
247
+
248
+ const diagramHeight = computed<number>(() =>
249
+ props.inPortlet ? svgHeight.value / 1.35 : svgHeight.value
250
+ )
251
+
252
+ const diagramWidth = computed<number>(() => (props.inPortlet ? 560 : 740))
253
+
254
+ const hasActiveAdapter = computed<boolean>(() => {
255
+ let flag = false
256
+ props.diagramData?.networks.forEach(
257
+ (network: UI_I_Network) =>
258
+ network.activeAdapters.length > 0 && (flag = true)
259
+ )
260
+ return flag
261
+ })
262
+
263
+ const isSelectedLinkedWithAdapter = computed<boolean>(() => {
264
+ if (props.selectedNetwork && props.selectedNetwork !== '-1') {
265
+ const selectedNetworkData = props.networksWithPositions.find(
266
+ (network: UI_I_NetworksWithPositions) =>
267
+ network.id === props.selectedNetwork
268
+ )
269
+
270
+ if (!selectedNetworkData) return false
271
+
272
+ return (
273
+ selectedNetworkData.activeAdapters.length > 0 &&
274
+ selectedNetworkData.state.state !== 3
275
+ )
276
+ }
277
+
278
+ if (props.selectedPort.portId && props.selectedPort.portId !== '-1') {
279
+ const selectedNetworkData = props.networksWithPositions.find(
280
+ (network: UI_I_NetworksWithPositions) =>
281
+ network.id === props.selectedPort.networkId
282
+ )
283
+
284
+ if (!selectedNetworkData) return false
285
+
286
+ return (
287
+ selectedNetworkData.activeAdapters.length > 0 &&
288
+ selectedNetworkData.state.state !== 3
289
+ )
290
+ }
291
+
292
+ if (props.selectedAdapter.adapterId !== '-1' || props.selectedMainLine)
293
+ return true
294
+
295
+ return false
296
+ })
297
+
298
+ const onClickDiagram = (ev: MouseEvent) => emits('click-diagram', ev)
299
+ const onToggleAdapters = () => emits('toggle-adapters')
300
+ const onSelectAdapter = (adapterId: string) =>
301
+ emits('select-adapter', adapterId)
302
+ const onShowModal = (value: string, properties?: UI_I_ModalsInitialData) =>
303
+ emits('show-modal', value, properties)
304
+ const onTogglePorts = (
305
+ id: string,
306
+ isToggle: boolean,
307
+ diagramId: string
308
+ ): void => {
309
+ emits('toggle-ports', id, isToggle, diagramId)
310
+ }
311
+ const onSelectPort = (networkId: string, portId: string): void => {
312
+ emits('select-port', networkId, portId)
313
+ }
314
+ const onSelectNetwork = (networkId: string): void => {
315
+ emits('select-network', networkId)
316
+ }
317
+ </script>
318
+
319
+ <style scoped lang="scss">
320
+ .diagram {
321
+ &-container {
322
+ display: flex;
323
+ justify-content: center;
324
+
325
+ .diagram-portlet {
326
+ margin-top: 10px;
327
+ }
328
+ }
329
+ }
330
+
331
+ .diagram {
332
+ &-container-new:not(.diagram-in-portlet) {
333
+ display: flex;
334
+ justify-content: center;
335
+ margin: 16px 16px 30px;
336
+ padding: 40px 0 8.5px;
337
+ border-radius: 8px;
338
+ background: var(--diagram-container-bg);
339
+ box-shadow: 0 1px 4px 0 #00000014;
340
+ }
341
+ &-container-new.diagram-in-portlet {
342
+ .diagram-portlet {
343
+ margin-top: 10px;
344
+ }
345
+ }
346
+ }
347
+ </style>
348
+ <style lang="scss">
349
+ .diagram-actions__popup.navbar-dropdown-menu {
350
+ transform: translate(-30px, -20px);
351
+
352
+ .btn {
353
+ border-radius: 0;
354
+ border-bottom: 1px solid transparent;
355
+
356
+ span {
357
+ font-size: 14px;
358
+ }
359
+ &:active {
360
+ box-shadow: none;
361
+ }
362
+ }
363
+ }
364
+ </style>