bfg-common 1.4.498 → 1.4.499

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.
@@ -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>