bfg-common 1.4.580 → 1.4.581

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,377 +1,377 @@
1
- <template>
2
- <div
3
- :class="{
4
- 'diagram-container-new': isNewView,
5
- 'diagram-container': !isNewView,
6
- 'diagram-in-portlet': props.inPortlet,
7
- }"
8
- >
9
- <div class="diagram-second-container">
10
- <svg
11
- v-if="props.diagramData && props.isShowDiagram"
12
- xmlns="http://www.w3.org/2000/svg"
13
- :height="diagramHeight"
14
- :width="diagramWidth"
15
- :viewBox="viewBox"
16
- :preserveAspectRatio="preserveAspectRatio"
17
- :class="svgClasses"
18
- @click.capture="onClickDiagram"
19
- >
20
- <common-diagram-main-switch
21
- :networks-count="props.networksCount"
22
- :main-rect-height="props.mainRectHeight"
23
- :main-switch-line="props.mainSwitchLine"
24
- :selected-main-line="props.selectedMainLine"
25
- :is-visible-line="hasActiveAdapter"
26
- :is-selected-linked-with-adapter="isSelectedLinkedWithAdapter"
27
- :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
28
- :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
29
- :networks-with-positions="props.networksWithPositions"
30
- />
31
- <common-diagram-main-adapter
32
- :networks-count="props.networksCount"
33
- :adapters-with-positions="props.adaptersWithPositions"
34
- :selected-main-line="props.selectedMainLine"
35
- :selected-port="props.selectedPort"
36
- :selected-adapter="props.selectedAdapter"
37
- :selected-network="props.selectedNetwork"
38
- :is-visible-line="hasActiveAdapter"
39
- :is-dark-mode="props.isDarkMode"
40
- :test-id="props.diagramData.testId"
41
- :is-selected-linked-with-adapter="isSelectedLinkedWithAdapter"
42
- :networks-with-positions="props.networksWithPositions"
43
- :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
44
- :in-network-lines-y="inNetworkLinesY"
45
- @toggle-adapters="onToggleAdapters"
46
- @select-adapter="onSelectAdapter"
47
- @show-modal="onShowModal"
48
- />
49
- <template v-if="!!props.networksWithPositions.length">
50
- <template
51
- v-for="network in props.networksWithPositions"
52
- :key="network.id"
53
- >
54
- <common-diagram-main-network
55
- :network="network"
56
- :selected-port="props.selectedPort"
57
- :selected-adapter="props.selectedAdapter"
58
- :selected-network="props.selectedNetwork"
59
- :selected-main-line="props.selectedMainLine"
60
- :diagram-id="props.diagramData.id"
61
- :in-portlet="props.inPortlet"
62
- :is-visible-line="hasActiveAdapter"
63
- :is-dark-mode="props.isDarkMode"
64
- :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
65
- :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
66
- :adapters-positions-y="adaptersPositionsY"
67
- @toggle-ports="onTogglePorts"
68
- @select-port="onSelectPort"
69
- @select-network="onSelectNetwork"
70
- @show-modal="onShowModal"
71
- />
72
- </template>
73
- </template>
74
- <template v-else>
75
- <common-diagram-main-network-no-network />
76
- </template>
77
- <common-diagram-main-switch-selected
78
- :selected-switch-line-y="props.selectedSwitchLineY"
79
- :is-visible-line="hasActiveAdapter && isSelectedLinkedWithAdapter"
80
- :adapters-positions-y="adaptersPositionsY"
81
- :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
82
- :is-highlighted-adapter-line="isHighlightedAdapterLine"
83
- :in-network-lines-y="inNetworkLinesY"
84
- />
85
- </svg>
86
- </div>
87
- </div>
88
- </template>
89
-
90
- <script setup lang="ts">
91
- import {
92
- UI_I_AdaptersWithPositions,
93
- UI_I_DiagramData,
94
- UI_I_ModalsInitialData,
95
- UI_I_NetworksWithPositions,
96
- UI_I_SelectedAdapter,
97
- UI_I_SelectedPort,
98
- UI_I_SwitchLine,
99
- UI_I_Network,
100
- } from '~/components/common/diagramMain/lib/models/interfaces'
101
- import { UI_E_PositionsY } from '~/components/common/diagramMain/lib/models/enums'
102
-
103
- const props = defineProps<{
104
- diagramData: UI_I_DiagramData
105
- isShowDiagram: boolean
106
- inPortlet: boolean
107
- networksWithPositions: UI_I_NetworksWithPositions[]
108
- mainRectHeight: number
109
- mainSwitchLine: UI_I_SwitchLine
110
- selectedMainLine: boolean
111
- adaptersWithPositions: UI_I_AdaptersWithPositions
112
- selectedPort: UI_I_SelectedPort
113
- selectedAdapter: UI_I_SelectedAdapter
114
- selectedNetwork: string
115
- selectedSwitchLineY: UI_I_SwitchLine
116
- isDarkMode: boolean
117
- networksCount: number
118
- }>()
119
-
120
- const emits = defineEmits<{
121
- (event: 'click-diagram', ev: MouseEvent): void
122
- (event: 'toggle-adapters'): void
123
- (event: 'select-adapter', adapterId: string): void
124
- (
125
- event: 'show-modal',
126
- value: string,
127
- properties?: UI_I_ModalsInitialData
128
- ): void
129
- (
130
- event: 'toggle-ports',
131
- id: string,
132
- newState: boolean,
133
- diagramId: string
134
- ): void
135
- (event: 'select-port', networkId: string, portId: string): void
136
- (event: 'select-network', networkId: string): void
137
- }>()
138
-
139
- const { $store }: any = useNuxtApp()
140
-
141
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
142
-
143
- const inNetworkLinesY = computed(() => {
144
- const linesY = []
145
- props.networksWithPositions.forEach((net, index) => {
146
- ;(!!props.selectedAdapter.connectedPorts.find(
147
- (net2) => net2.networkId === net.id && net2.ports.length === 0
148
- ) ||
149
- props.selectedNetwork === net.id) &&
150
- linesY.push(net.connectLineY)
151
-
152
- net.toggle
153
- ? net.ports.forEach((port) => {
154
- ;((props.selectedPort.portId === port.id &&
155
- props.selectedPort.networkId === net.id &&
156
- net.activeAdapters.length > 0) ||
157
- !!props.selectedAdapter.connectedPorts.find(
158
- (net2) =>
159
- net2.networkId === net.id && net2.ports.includes(port.id)
160
- )) &&
161
- linesY.push(port.portPosition + 7.5)
162
- })
163
- : !!props.selectedAdapter.connectedPorts.find(
164
- (net2) => net2.networkId === net.id && net2.ports.length !== 0
165
- ) && linesY.push(net.portsPosition + 7.5)
166
- })
167
-
168
- return linesY.sort((a, b) => a - b)
169
- })
170
-
171
- const isOpenedAdapterBlockAndNoSelectedNetwork = computed<boolean>(
172
- () =>
173
- !props.adaptersWithPositions.toggle && props.selectedPort.networkId !== '-1'
174
- )
175
-
176
- const hasNoAdaptersAndNoSelectedNetwork = computed<boolean>(() => {
177
- return (
178
- props.adaptersWithPositions.adapters?.length === 0 &&
179
- props.selectedNetwork !== '-1'
180
- )
181
- })
182
-
183
- const isHighlightedOptimizePart = computed(
184
- () =>
185
- !props.selectedMainLine && !isOpenedAdapterBlockAndNoSelectedNetwork.value
186
- )
187
-
188
- const isHighlightedAdapterLine = computed<boolean>(
189
- () =>
190
- isSelectedLinkedWithAdapter.value &&
191
- !(
192
- isHighlightedOptimizePart.value &&
193
- !hasNoAdaptersAndNoSelectedNetwork.value
194
- )
195
- )
196
-
197
- const firstAndLastNetworkLinesY = computed(() => {
198
- const networkLinesY = props.networksWithPositions
199
- .filter((n) => n.activeAdapters.length > 0 && n.state.state !== 3)
200
- .map((n) => n.connectLineY)
201
- .sort((a, b) => a - b)
202
-
203
- return {
204
- firstNetworkY: networkLinesY[0],
205
- lastNetworkY: networkLinesY[networkLinesY.length - 1],
206
- }
207
- })
208
-
209
- const adaptersPositionsY = computed(() =>
210
- props.adaptersWithPositions.adapters.reduce((result, ad) => {
211
- let isAdapterActiveOnAnyNetwork = false
212
- props.networksWithPositions.forEach(
213
- (network: UI_I_NetworksWithPositions) =>
214
- network.activeAdapters.includes(props.selectedAdapter.adapterId) &&
215
- (isAdapterActiveOnAnyNetwork = true)
216
- )
217
-
218
- const isVisible =
219
- (props.selectedPort.activeAdapters.includes(ad.id) ||
220
- (props.selectedAdapter.adapterId === ad.id &&
221
- isAdapterActiveOnAnyNetwork)) &&
222
- !!props.networksCount
223
-
224
- if (isVisible) {
225
- return [...result, ad.adapterPosition]
226
- }
227
- return result
228
- }, [])
229
- )
230
-
231
- const svgClasses = computed(() => [
232
- 'diagram-svg',
233
- {
234
- 'diagram-portlet': !props.inPortlet,
235
- },
236
- ])
237
-
238
- const preserveAspectRatio = computed<string | undefined>(() =>
239
- props.inPortlet ? 'xMinYMin' : undefined
240
- )
241
-
242
- const svgHeight = computed<number>(
243
- () =>
244
- UI_E_PositionsY.DIAGRAM_TOP +
245
- props.mainRectHeight +
246
- UI_E_PositionsY.DIAGRAM_BOTTOM
247
- )
248
-
249
- const viewBox = computed<string>(() =>
250
- props.inPortlet ? '0 0 725 1' : `0 0 725 ${svgHeight.value}`
251
- )
252
-
253
- const diagramHeight = computed<number>(() =>
254
- props.inPortlet ? svgHeight.value / 1.28 : svgHeight.value
255
- )
256
-
257
- const diagramWidth = computed<number>(() => (props.inPortlet ? 560 : 725))
258
-
259
- const hasActiveAdapter = computed<boolean>(() => {
260
- let flag = false
261
- props.diagramData?.networks.forEach(
262
- (network: UI_I_Network) =>
263
- network.activeAdapters.length > 0 && (flag = true)
264
- )
265
- return flag
266
- })
267
-
268
- const isSelectedLinkedWithAdapter = computed<boolean>(() => {
269
- if (props.selectedNetwork && props.selectedNetwork !== '-1') {
270
- const selectedNetworkData = props.networksWithPositions.find(
271
- (network: UI_I_NetworksWithPositions) =>
272
- network.id === props.selectedNetwork
273
- )
274
-
275
- if (!selectedNetworkData) return false
276
-
277
- return (
278
- selectedNetworkData.activeAdapters.length > 0 &&
279
- selectedNetworkData.state.state !== 3
280
- )
281
- }
282
-
283
- if (props.selectedPort.portId && props.selectedPort.portId !== '-1') {
284
- const selectedNetworkData = props.networksWithPositions.find(
285
- (network: UI_I_NetworksWithPositions) =>
286
- network.id === props.selectedPort.networkId
287
- )
288
-
289
- if (!selectedNetworkData) return false
290
-
291
- return (
292
- selectedNetworkData.activeAdapters.length > 0 &&
293
- selectedNetworkData.state.state !== 3
294
- )
295
- }
296
-
297
- if (props.selectedAdapter.adapterId !== '-1' || props.selectedMainLine)
298
- return true
299
-
300
- return false
301
- })
302
-
303
- const onClickDiagram = (ev: MouseEvent) => emits('click-diagram', ev)
304
- const onToggleAdapters = () => emits('toggle-adapters')
305
- const onSelectAdapter = (adapterId: string) =>
306
- emits('select-adapter', adapterId)
307
- const onShowModal = (value: string, properties?: UI_I_ModalsInitialData) =>
308
- emits('show-modal', value, properties)
309
- const onTogglePorts = (
310
- id: string,
311
- isToggle: boolean,
312
- diagramId: string
313
- ): void => {
314
- emits('toggle-ports', id, isToggle, diagramId)
315
- }
316
- const onSelectPort = (networkId: string, portId: string): void => {
317
- emits('select-port', networkId, portId)
318
- }
319
- const onSelectNetwork = (networkId: string): void => {
320
- emits('select-network', networkId)
321
- }
322
- </script>
323
-
324
- <style scoped lang="scss">
325
- .diagram {
326
- &-container {
327
- display: flex;
328
- justify-content: center;
329
-
330
- .diagram-portlet {
331
- margin-top: 10px;
332
- }
333
- }
334
- }
335
-
336
- .diagram {
337
- &-container-new:not(.diagram-in-portlet) {
338
- display: flex;
339
- justify-content: center;
340
- margin: 16px 16px 30px;
341
- padding: 16px;
342
- border-radius: 8px;
343
- background: var(--diagram-container-bg);
344
- box-shadow: 0 1px 4px 0 #00000014;
345
-
346
- .diagram-second-container {
347
- overflow-x: auto;
348
-
349
- .diagram-svg {
350
- margin: 22.5px 17.5px;
351
- }
352
- }
353
- }
354
- &-container-new.diagram-in-portlet {
355
- .diagram-portlet {
356
- margin-top: 10px;
357
- }
358
- }
359
- }
360
- </style>
361
- <style lang="scss">
362
- .diagram-actions__popup.navbar-dropdown-menu {
363
- transform: translate(-30px, -20px);
364
-
365
- .btn {
366
- border-radius: 0;
367
- border-bottom: 1px solid transparent;
368
-
369
- span {
370
- font-size: 14px;
371
- }
372
- &:active {
373
- box-shadow: none;
374
- }
375
- }
376
- }
377
- </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
+ <div class="diagram-second-container">
10
+ <svg
11
+ v-if="props.diagramData && props.isShowDiagram"
12
+ xmlns="http://www.w3.org/2000/svg"
13
+ :height="diagramHeight"
14
+ :width="diagramWidth"
15
+ :viewBox="viewBox"
16
+ :preserveAspectRatio="preserveAspectRatio"
17
+ :class="svgClasses"
18
+ @click.capture="onClickDiagram"
19
+ >
20
+ <common-diagram-main-switch
21
+ :networks-count="props.networksCount"
22
+ :main-rect-height="props.mainRectHeight"
23
+ :main-switch-line="props.mainSwitchLine"
24
+ :selected-main-line="props.selectedMainLine"
25
+ :is-visible-line="hasActiveAdapter"
26
+ :is-selected-linked-with-adapter="isSelectedLinkedWithAdapter"
27
+ :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
28
+ :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
29
+ :networks-with-positions="props.networksWithPositions"
30
+ />
31
+ <common-diagram-main-adapter
32
+ :networks-count="props.networksCount"
33
+ :adapters-with-positions="props.adaptersWithPositions"
34
+ :selected-main-line="props.selectedMainLine"
35
+ :selected-port="props.selectedPort"
36
+ :selected-adapter="props.selectedAdapter"
37
+ :selected-network="props.selectedNetwork"
38
+ :is-visible-line="hasActiveAdapter"
39
+ :is-dark-mode="props.isDarkMode"
40
+ :test-id="props.diagramData.testId"
41
+ :is-selected-linked-with-adapter="isSelectedLinkedWithAdapter"
42
+ :networks-with-positions="props.networksWithPositions"
43
+ :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
44
+ :in-network-lines-y="inNetworkLinesY"
45
+ @toggle-adapters="onToggleAdapters"
46
+ @select-adapter="onSelectAdapter"
47
+ @show-modal="onShowModal"
48
+ />
49
+ <template v-if="!!props.networksWithPositions.length">
50
+ <template
51
+ v-for="network in props.networksWithPositions"
52
+ :key="network.id"
53
+ >
54
+ <common-diagram-main-network
55
+ :network="network"
56
+ :selected-port="props.selectedPort"
57
+ :selected-adapter="props.selectedAdapter"
58
+ :selected-network="props.selectedNetwork"
59
+ :selected-main-line="props.selectedMainLine"
60
+ :diagram-id="props.diagramData.id"
61
+ :in-portlet="props.inPortlet"
62
+ :is-visible-line="hasActiveAdapter"
63
+ :is-dark-mode="props.isDarkMode"
64
+ :first-and-last-network-lines-y="firstAndLastNetworkLinesY"
65
+ :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
66
+ :adapters-positions-y="adaptersPositionsY"
67
+ @toggle-ports="onTogglePorts"
68
+ @select-port="onSelectPort"
69
+ @select-network="onSelectNetwork"
70
+ @show-modal="onShowModal"
71
+ />
72
+ </template>
73
+ </template>
74
+ <template v-else>
75
+ <common-diagram-main-network-no-network />
76
+ </template>
77
+ <common-diagram-main-switch-selected
78
+ :selected-switch-line-y="props.selectedSwitchLineY"
79
+ :is-visible-line="hasActiveAdapter && isSelectedLinkedWithAdapter"
80
+ :adapters-positions-y="adaptersPositionsY"
81
+ :adapter-line-y="props.adaptersWithPositions.adaptersConnectLineY"
82
+ :is-highlighted-adapter-line="isHighlightedAdapterLine"
83
+ :in-network-lines-y="inNetworkLinesY"
84
+ />
85
+ </svg>
86
+ </div>
87
+ </div>
88
+ </template>
89
+
90
+ <script setup lang="ts">
91
+ import {
92
+ UI_I_AdaptersWithPositions,
93
+ UI_I_DiagramData,
94
+ UI_I_ModalsInitialData,
95
+ UI_I_NetworksWithPositions,
96
+ UI_I_SelectedAdapter,
97
+ UI_I_SelectedPort,
98
+ UI_I_SwitchLine,
99
+ UI_I_Network,
100
+ } from '~/components/common/diagramMain/lib/models/interfaces'
101
+ import { UI_E_PositionsY } from '~/components/common/diagramMain/lib/models/enums'
102
+
103
+ const props = defineProps<{
104
+ diagramData: UI_I_DiagramData
105
+ isShowDiagram: boolean
106
+ inPortlet: boolean
107
+ networksWithPositions: UI_I_NetworksWithPositions[]
108
+ mainRectHeight: number
109
+ mainSwitchLine: UI_I_SwitchLine
110
+ selectedMainLine: boolean
111
+ adaptersWithPositions: UI_I_AdaptersWithPositions
112
+ selectedPort: UI_I_SelectedPort
113
+ selectedAdapter: UI_I_SelectedAdapter
114
+ selectedNetwork: string
115
+ selectedSwitchLineY: UI_I_SwitchLine
116
+ isDarkMode: boolean
117
+ networksCount: number
118
+ }>()
119
+
120
+ const emits = defineEmits<{
121
+ (event: 'click-diagram', ev: MouseEvent): void
122
+ (event: 'toggle-adapters'): void
123
+ (event: 'select-adapter', adapterId: string): void
124
+ (
125
+ event: 'show-modal',
126
+ value: string,
127
+ properties?: UI_I_ModalsInitialData
128
+ ): void
129
+ (
130
+ event: 'toggle-ports',
131
+ id: string,
132
+ newState: boolean,
133
+ diagramId: string
134
+ ): void
135
+ (event: 'select-port', networkId: string, portId: string): void
136
+ (event: 'select-network', networkId: string): void
137
+ }>()
138
+
139
+ const { $store }: any = useNuxtApp()
140
+
141
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
142
+
143
+ const inNetworkLinesY = computed(() => {
144
+ const linesY = []
145
+ props.networksWithPositions.forEach((net, index) => {
146
+ ;(!!props.selectedAdapter.connectedPorts.find(
147
+ (net2) => net2.networkId === net.id && net2.ports.length === 0
148
+ ) ||
149
+ props.selectedNetwork === net.id) &&
150
+ linesY.push(net.connectLineY)
151
+
152
+ net.toggle
153
+ ? net.ports.forEach((port) => {
154
+ ;((props.selectedPort.portId === port.id &&
155
+ props.selectedPort.networkId === net.id &&
156
+ net.activeAdapters.length > 0) ||
157
+ !!props.selectedAdapter.connectedPorts.find(
158
+ (net2) =>
159
+ net2.networkId === net.id && net2.ports.includes(port.id)
160
+ )) &&
161
+ linesY.push(port.portPosition + 7.5)
162
+ })
163
+ : !!props.selectedAdapter.connectedPorts.find(
164
+ (net2) => net2.networkId === net.id && net2.ports.length !== 0
165
+ ) && linesY.push(net.portsPosition + 7.5)
166
+ })
167
+
168
+ return linesY.sort((a, b) => a - b)
169
+ })
170
+
171
+ const isOpenedAdapterBlockAndNoSelectedNetwork = computed<boolean>(
172
+ () =>
173
+ !props.adaptersWithPositions.toggle && props.selectedPort.networkId !== '-1'
174
+ )
175
+
176
+ const hasNoAdaptersAndNoSelectedNetwork = computed<boolean>(() => {
177
+ return (
178
+ props.adaptersWithPositions.adapters?.length === 0 &&
179
+ props.selectedNetwork !== '-1'
180
+ )
181
+ })
182
+
183
+ const isHighlightedOptimizePart = computed(
184
+ () =>
185
+ !props.selectedMainLine && !isOpenedAdapterBlockAndNoSelectedNetwork.value
186
+ )
187
+
188
+ const isHighlightedAdapterLine = computed<boolean>(
189
+ () =>
190
+ isSelectedLinkedWithAdapter.value &&
191
+ !(
192
+ isHighlightedOptimizePart.value &&
193
+ !hasNoAdaptersAndNoSelectedNetwork.value
194
+ )
195
+ )
196
+
197
+ const firstAndLastNetworkLinesY = computed(() => {
198
+ const networkLinesY = props.networksWithPositions
199
+ .filter((n) => n.activeAdapters.length > 0 && n.state.state !== 3)
200
+ .map((n) => n.connectLineY)
201
+ .sort((a, b) => a - b)
202
+
203
+ return {
204
+ firstNetworkY: networkLinesY[0],
205
+ lastNetworkY: networkLinesY[networkLinesY.length - 1],
206
+ }
207
+ })
208
+
209
+ const adaptersPositionsY = computed(() =>
210
+ props.adaptersWithPositions.adapters.reduce((result, ad) => {
211
+ let isAdapterActiveOnAnyNetwork = false
212
+ props.networksWithPositions.forEach(
213
+ (network: UI_I_NetworksWithPositions) =>
214
+ network.activeAdapters.includes(props.selectedAdapter.adapterId) &&
215
+ (isAdapterActiveOnAnyNetwork = true)
216
+ )
217
+
218
+ const isVisible =
219
+ (props.selectedPort.activeAdapters.includes(ad.id) ||
220
+ (props.selectedAdapter.adapterId === ad.id &&
221
+ isAdapterActiveOnAnyNetwork)) &&
222
+ !!props.networksCount
223
+
224
+ if (isVisible) {
225
+ return [...result, ad.adapterPosition]
226
+ }
227
+ return result
228
+ }, [])
229
+ )
230
+
231
+ const svgClasses = computed(() => [
232
+ 'diagram-svg',
233
+ {
234
+ 'diagram-portlet': !props.inPortlet,
235
+ },
236
+ ])
237
+
238
+ const preserveAspectRatio = computed<string | undefined>(() =>
239
+ props.inPortlet ? 'xMinYMin' : undefined
240
+ )
241
+
242
+ const svgHeight = computed<number>(
243
+ () =>
244
+ UI_E_PositionsY.DIAGRAM_TOP +
245
+ props.mainRectHeight +
246
+ UI_E_PositionsY.DIAGRAM_BOTTOM
247
+ )
248
+
249
+ const viewBox = computed<string>(() =>
250
+ props.inPortlet ? '0 0 725 1' : `0 0 725 ${svgHeight.value}`
251
+ )
252
+
253
+ const diagramHeight = computed<number>(() =>
254
+ props.inPortlet ? svgHeight.value / 1.28 : svgHeight.value
255
+ )
256
+
257
+ const diagramWidth = computed<number>(() => (props.inPortlet ? 560 : 725))
258
+
259
+ const hasActiveAdapter = computed<boolean>(() => {
260
+ let flag = false
261
+ props.diagramData?.networks.forEach(
262
+ (network: UI_I_Network) =>
263
+ network.activeAdapters.length > 0 && (flag = true)
264
+ )
265
+ return flag
266
+ })
267
+
268
+ const isSelectedLinkedWithAdapter = computed<boolean>(() => {
269
+ if (props.selectedNetwork && props.selectedNetwork !== '-1') {
270
+ const selectedNetworkData = props.networksWithPositions.find(
271
+ (network: UI_I_NetworksWithPositions) =>
272
+ network.id === props.selectedNetwork
273
+ )
274
+
275
+ if (!selectedNetworkData) return false
276
+
277
+ return (
278
+ selectedNetworkData.activeAdapters.length > 0 &&
279
+ selectedNetworkData.state.state !== 3
280
+ )
281
+ }
282
+
283
+ if (props.selectedPort.portId && props.selectedPort.portId !== '-1') {
284
+ const selectedNetworkData = props.networksWithPositions.find(
285
+ (network: UI_I_NetworksWithPositions) =>
286
+ network.id === props.selectedPort.networkId
287
+ )
288
+
289
+ if (!selectedNetworkData) return false
290
+
291
+ return (
292
+ selectedNetworkData.activeAdapters.length > 0 &&
293
+ selectedNetworkData.state.state !== 3
294
+ )
295
+ }
296
+
297
+ if (props.selectedAdapter.adapterId !== '-1' || props.selectedMainLine)
298
+ return true
299
+
300
+ return false
301
+ })
302
+
303
+ const onClickDiagram = (ev: MouseEvent) => emits('click-diagram', ev)
304
+ const onToggleAdapters = () => emits('toggle-adapters')
305
+ const onSelectAdapter = (adapterId: string) =>
306
+ emits('select-adapter', adapterId)
307
+ const onShowModal = (value: string, properties?: UI_I_ModalsInitialData) =>
308
+ emits('show-modal', value, properties)
309
+ const onTogglePorts = (
310
+ id: string,
311
+ isToggle: boolean,
312
+ diagramId: string
313
+ ): void => {
314
+ emits('toggle-ports', id, isToggle, diagramId)
315
+ }
316
+ const onSelectPort = (networkId: string, portId: string): void => {
317
+ emits('select-port', networkId, portId)
318
+ }
319
+ const onSelectNetwork = (networkId: string): void => {
320
+ emits('select-network', networkId)
321
+ }
322
+ </script>
323
+
324
+ <style scoped lang="scss">
325
+ .diagram {
326
+ &-container {
327
+ display: flex;
328
+ justify-content: center;
329
+
330
+ .diagram-portlet {
331
+ margin-top: 10px;
332
+ }
333
+ }
334
+ }
335
+
336
+ .diagram {
337
+ &-container-new:not(.diagram-in-portlet) {
338
+ display: flex;
339
+ justify-content: center;
340
+ margin: 16px 16px 30px;
341
+ padding: 16px;
342
+ border-radius: 8px;
343
+ background: var(--diagram-container-bg);
344
+ box-shadow: 0 1px 4px 0 #00000014;
345
+
346
+ .diagram-second-container {
347
+ overflow-x: auto;
348
+
349
+ .diagram-svg {
350
+ margin: 22.5px 17.5px;
351
+ }
352
+ }
353
+ }
354
+ &-container-new.diagram-in-portlet {
355
+ .diagram-portlet {
356
+ margin-top: 10px;
357
+ }
358
+ }
359
+ }
360
+ </style>
361
+ <style lang="scss">
362
+ .diagram-actions__popup.navbar-dropdown-menu {
363
+ transform: translate(-30px, -20px);
364
+
365
+ .btn {
366
+ border-radius: 0;
367
+ border-bottom: 1px solid transparent;
368
+
369
+ span {
370
+ font-size: 14px;
371
+ }
372
+ &:active {
373
+ box-shadow: none;
374
+ }
375
+ }
376
+ }
377
+ </style>