bfg-common 1.5.348 → 1.5.349

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 (26) hide show
  1. package/components/atoms/nav/NavBar.vue +151 -147
  2. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  3. package/components/common/browse/lib/models/interfaces.ts +5 -5
  4. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  5. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  6. package/components/common/diagramMain/lib/models/types.ts +21 -21
  7. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  8. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  9. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  10. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  11. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  12. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  13. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  14. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  15. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  16. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  17. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  18. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  19. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  20. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  21. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  22. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  23. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  24. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  25. package/components/common/diagramMain/port/Ports.vue +47 -47
  26. package/package.json +1 -1
@@ -1,147 +1,151 @@
1
- <template>
2
- <nav :id="id" :class="['nav', { 'not-collapse': notCollapse }]">
3
- <ul>
4
- <li
5
- v-for="(item, key) in props.items"
6
- :key="key"
7
- v-permission="item.permission"
8
- class="nav-item"
9
- >
10
- <atoms-collapse-nav-item
11
- :is-link="props.isLink"
12
- :item="item"
13
- :value="props.modelValue"
14
- :title="item.title"
15
- btn-class="btn btn-link nav-link"
16
- @change="change"
17
- />
18
- </li>
19
- <atoms-collapse-nav
20
- v-show="collapsedItems.length && !notCollapse"
21
- :test-id="`${props.testId}-container`"
22
- :items="collapsedItems"
23
- :is-link="props.isLink"
24
- :value="props.modelValue"
25
- @change="change"
26
- />
27
- </ul>
28
- </nav>
29
- </template>
30
-
31
- <script setup lang="ts">
32
- import type { UI_I_CollapseNavItem } from '~/components/atoms/collapse/lib/models/interfaces'
33
-
34
- const props = withDefaults(
35
- defineProps<{
36
- items: UI_I_CollapseNavItem[]
37
- testId?: string
38
- modelValue?: number | string
39
- isLink?: boolean
40
- notCollapse?: boolean
41
- }>(),
42
- { testId: 'ui-nav-bar' }
43
- )
44
- const emits = defineEmits<{
45
- (event: 'update:model-value', value: number): void
46
- (event: 'change', value: number): void
47
- }>()
48
-
49
- const change = (value: number): void => {
50
- emits('update:model-value', value)
51
- emits('change', value)
52
- }
53
-
54
- const visibleCount = ref<number>(props.items.length)
55
- const collapsedItems = computed<UI_I_CollapseNavItem[]>(() => {
56
- return props.items.filter((_, index) => {
57
- return index >= visibleCount.value
58
- })
59
- })
60
-
61
- let triggerElementWidth = 0
62
- const setTriggerElementWidth = (): void => {
63
- if (!id.value || !props.testId) return
64
-
65
- const element = document.querySelector(
66
- `#${id.value} #${props.testId}-container`
67
- )
68
- triggerElementWidth =
69
- element && element?.style?.display !== 'none'
70
- ? element.getBoundingClientRect().width
71
- : 0
72
- }
73
-
74
- const spaceForCollapseBtn = ref<number>(60)
75
-
76
- let outputSize = (): void => {
77
- const el = document.getElementById(id.value)
78
- if (!el) return
79
-
80
- const elWidth = el.clientWidth
81
- const elItems = el.children[0].children
82
-
83
- setTriggerElementWidth()
84
- const elItemsMarginLeft = parseInt(getComputedStyle(elItems[0]).marginLeft)
85
- const elItemsMarginRight = parseInt(getComputedStyle(elItems[0]).marginRight)
86
- const childrenMarginY = elItemsMarginLeft + elItemsMarginRight
87
-
88
- let childrenWidth = spaceForCollapseBtn.value
89
- let count = 0
90
- for (let i = 0; i < elItems.length; i++) {
91
- childrenWidth += elItems[i].clientWidth + childrenMarginY
92
- const isWrap = elWidth - triggerElementWidth < childrenWidth
93
-
94
- if (isWrap) break
95
- count++
96
- }
97
-
98
- visibleCount.value = count
99
-
100
- const element = document.querySelector(`#${id.value} ul`)
101
- if (element) {
102
- element.style.paddingRight =
103
- collapsedItems.value.length && !props.notCollapse
104
- ? `${spaceForCollapseBtn.value}px`
105
- : ''
106
- }
107
- }
108
- outputSize = useThrottle(outputSize)
109
-
110
- const id = ref<string>('')
111
- const setResizeObserve = (): void => {
112
- const el = document.getElementById(id.value)
113
-
114
- if (!el) {
115
- setTimeout(setResizeObserve, 0)
116
- return
117
- }
118
-
119
- new ResizeObserver(outputSize).observe(el)
120
- }
121
- onMounted(() => {
122
- setTriggerElementWidth()
123
- setResizeObserve()
124
- id.value = `nav-bar${useUniqueId()}`
125
- })
126
- </script>
127
-
128
- <style scoped lang="scss">
129
- .nav {
130
- box-shadow: inset 0 -0.05rem 0 var(--nav-panel-border-color);
131
- align-items: flex-start;
132
-
133
- &.not-collapse {
134
- ul {
135
- flex-wrap: nowrap;
136
- }
137
- }
138
-
139
- ul {
140
- position: relative;
141
- height: 36px;
142
- overflow: hidden;
143
- display: flex;
144
- flex-wrap: wrap;
145
- }
146
- }
147
- </style>
1
+ <template>
2
+ <nav :id="id" :class="['nav', { 'not-collapse': notCollapse }]">
3
+ <ul>
4
+ <li
5
+ v-for="(item, key) in props.items"
6
+ :key="key"
7
+ v-permission="item.permission"
8
+ class="nav-item"
9
+ >
10
+ <atoms-collapse-nav-item
11
+ :is-link="props.isLink"
12
+ :item="item"
13
+ :value="props.modelValue"
14
+ :title="item.title"
15
+ btn-class="btn btn-link nav-link"
16
+ @change="change"
17
+ />
18
+ </li>
19
+ <atoms-collapse-nav
20
+ v-show="collapsedItems.length && !notCollapse"
21
+ :test-id="`${props.testId}-container`"
22
+ :items="collapsedItems"
23
+ :is-link="props.isLink"
24
+ :value="props.modelValue"
25
+ @change="change"
26
+ />
27
+ </ul>
28
+ </nav>
29
+ </template>
30
+
31
+ <script setup lang="ts">
32
+ import type { UI_I_CollapseNavItem } from '~/components/atoms/collapse/lib/models/interfaces'
33
+
34
+ const props = withDefaults(
35
+ defineProps<{
36
+ items: UI_I_CollapseNavItem[]
37
+ testId?: string
38
+ modelValue?: number | string
39
+ isLink?: boolean
40
+ notCollapse?: boolean
41
+ }>(),
42
+ { testId: 'ui-nav-bar' }
43
+ )
44
+ const emits = defineEmits<{
45
+ (event: 'update:model-value', value: number): void
46
+ (event: 'change', value: number): void
47
+ }>()
48
+
49
+ const change = (value: number): void => {
50
+ emits('update:model-value', value)
51
+ emits('change', value)
52
+ }
53
+
54
+ const visibleCount = ref<number>(props.items.length)
55
+ const collapsedItems = computed<UI_I_CollapseNavItem[]>(() => {
56
+ return props.items.filter((_, index) => {
57
+ return index >= visibleCount.value
58
+ })
59
+ })
60
+
61
+ let triggerElementWidth = 0
62
+ const setTriggerElementWidth = (): void => {
63
+ if (!id.value || !props.testId) return
64
+
65
+ const element = document.querySelector(
66
+ `#${id.value} #${props.testId}-container`
67
+ )
68
+ triggerElementWidth =
69
+ element && element?.style?.display !== 'none'
70
+ ? element.getBoundingClientRect().width
71
+ : 0
72
+ }
73
+
74
+ const spaceForCollapseBtn = ref<number>(60)
75
+
76
+ let outputSize = (): void => {
77
+ const el = document.getElementById(id.value)
78
+ if (!el) return
79
+
80
+ const elWidth = el.clientWidth
81
+ const elItems = el.children[0].children
82
+
83
+ setTriggerElementWidth()
84
+ const elItemsMarginLeft = parseInt(getComputedStyle(elItems[0]).marginLeft)
85
+ const elItemsMarginRight = parseInt(getComputedStyle(elItems[0]).marginRight)
86
+ const childrenMarginY = elItemsMarginLeft + elItemsMarginRight
87
+
88
+ let childrenWidth = spaceForCollapseBtn.value
89
+ let count = 0
90
+ for (let i = 0; i < elItems.length; i++) {
91
+ childrenWidth += elItems[i].clientWidth + childrenMarginY
92
+ const isWrap = elWidth - triggerElementWidth < childrenWidth
93
+
94
+ if (isWrap) break
95
+ count++
96
+ }
97
+
98
+ visibleCount.value = count
99
+
100
+ const element = document.querySelector(`#${id.value} ul`)
101
+ if (element) {
102
+ element.style.paddingRight =
103
+ collapsedItems.value.length && !props.notCollapse
104
+ ? `${spaceForCollapseBtn.value}px`
105
+ : ''
106
+ }
107
+ }
108
+ outputSize = useThrottle(outputSize)
109
+
110
+ const id = ref<string>('')
111
+ const setResizeObserve = (): void => {
112
+ const el = document.getElementById(id.value)
113
+
114
+ if (!el) {
115
+ setTimeout(setResizeObserve, 0)
116
+ return
117
+ }
118
+
119
+ new ResizeObserver(outputSize).observe(el)
120
+ }
121
+ watch(
122
+ () => props.items,
123
+ () => {
124
+ setTriggerElementWidth()
125
+ setResizeObserve()
126
+ id.value = `nav-bar${useUniqueId()}`
127
+ },
128
+ { immediate: true, deep: true }
129
+ )
130
+ </script>
131
+
132
+ <style scoped lang="scss">
133
+ .nav {
134
+ box-shadow: inset 0 -0.05rem 0 var(--nav-panel-border-color);
135
+ align-items: flex-start;
136
+
137
+ &.not-collapse {
138
+ ul {
139
+ flex-wrap: nowrap;
140
+ }
141
+ }
142
+
143
+ ul {
144
+ position: relative;
145
+ height: 36px;
146
+ overflow: hidden;
147
+ display: flex;
148
+ flex-wrap: wrap;
149
+ }
150
+ }
151
+ </style>
@@ -1 +1 @@
1
- export type UI_T_BlocksWidth = [number, number, number]
1
+ export type UI_T_BlocksWidth = [number, number, number]
@@ -1,5 +1,5 @@
1
- export interface UI_I_FileInfo {
2
- type: string
3
- title: string
4
- value: string | number
5
- }
1
+ export interface UI_I_FileInfo {
2
+ type: string
3
+ title: string
4
+ value: string | number
5
+ }
@@ -1,61 +1,61 @@
1
- <template>
2
- <g data-title="adapter-items-group">
3
- <template v-if="props.adaptersWithPositions.toggle">
4
- <template
5
- v-for="(adapter, key) in props.adaptersWithPositions.adapters"
6
- :key="adapter.id"
7
- >
8
- <common-diagram-main-adapter-item
9
- :adapter="adapter"
10
- :selected-port="props.selectedPort"
11
- :selected-adapter="props.selectedAdapter"
12
- :networks-count="props.networksCount"
13
- :is-dark-mode="props.isDarkMode"
14
- :networks-with-positions="props.networksWithPositions"
15
- @select-adapter="onSelectAdapter"
16
- @show-modal="onShowModal"
17
- />
18
- </template>
19
- </template>
20
- </g>
21
- </template>
22
-
23
- <script setup lang="ts">
24
- import {
25
- UI_I_AdaptersWithPositions,
26
- UI_I_ModalsInitialData,
27
- UI_I_SelectedAdapter,
28
- UI_I_SelectedPort,
29
- UI_I_NetworksWithPositions,
30
- } from '~/components/common/diagramMain/lib/models/interfaces'
31
-
32
- const props = defineProps<{
33
- adaptersWithPositions: UI_I_AdaptersWithPositions
34
- networksWithPositions: UI_I_NetworksWithPositions[]
35
- selectedPort: UI_I_SelectedPort
36
- selectedAdapter: UI_I_SelectedAdapter
37
- networksCount: number
38
- isDarkMode: boolean
39
- }>()
40
-
41
- const emits = defineEmits<{
42
- (event: 'select-adapter', adapterId: string): void
43
- (
44
- event: 'show-modal',
45
- value: string,
46
- properties?: UI_I_ModalsInitialData
47
- ): void
48
- }>()
49
-
50
- const onSelectAdapter = (adapterId: string): void => {
51
- emits('select-adapter', adapterId)
52
- }
53
- const onShowModal = (
54
- value: string,
55
- properties?: UI_I_ModalsInitialData
56
- ): void => {
57
- emits('show-modal', value, properties)
58
- }
59
- </script>
60
-
61
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <g data-title="adapter-items-group">
3
+ <template v-if="props.adaptersWithPositions.toggle">
4
+ <template
5
+ v-for="(adapter, key) in props.adaptersWithPositions.adapters"
6
+ :key="adapter.id"
7
+ >
8
+ <common-diagram-main-adapter-item
9
+ :adapter="adapter"
10
+ :selected-port="props.selectedPort"
11
+ :selected-adapter="props.selectedAdapter"
12
+ :networks-count="props.networksCount"
13
+ :is-dark-mode="props.isDarkMode"
14
+ :networks-with-positions="props.networksWithPositions"
15
+ @select-adapter="onSelectAdapter"
16
+ @show-modal="onShowModal"
17
+ />
18
+ </template>
19
+ </template>
20
+ </g>
21
+ </template>
22
+
23
+ <script setup lang="ts">
24
+ import {
25
+ UI_I_AdaptersWithPositions,
26
+ UI_I_ModalsInitialData,
27
+ UI_I_SelectedAdapter,
28
+ UI_I_SelectedPort,
29
+ UI_I_NetworksWithPositions,
30
+ } from '~/components/common/diagramMain/lib/models/interfaces'
31
+
32
+ const props = defineProps<{
33
+ adaptersWithPositions: UI_I_AdaptersWithPositions
34
+ networksWithPositions: UI_I_NetworksWithPositions[]
35
+ selectedPort: UI_I_SelectedPort
36
+ selectedAdapter: UI_I_SelectedAdapter
37
+ networksCount: number
38
+ isDarkMode: boolean
39
+ }>()
40
+
41
+ const emits = defineEmits<{
42
+ (event: 'select-adapter', adapterId: string): void
43
+ (
44
+ event: 'show-modal',
45
+ value: string,
46
+ properties?: UI_I_ModalsInitialData
47
+ ): void
48
+ }>()
49
+
50
+ const onSelectAdapter = (adapterId: string): void => {
51
+ emits('select-adapter', adapterId)
52
+ }
53
+ const onShowModal = (
54
+ value: string,
55
+ properties?: UI_I_ModalsInitialData
56
+ ): void => {
57
+ emits('show-modal', value, properties)
58
+ }
59
+ </script>
60
+
61
+ <style scoped lang="scss"></style>
@@ -1,50 +1,50 @@
1
- import type {
2
- UI_I_AdapterStatus,
3
- UI_I_MainRectHeights,
4
- UI_I_SelectedAdapter,
5
- UI_I_SelectedPort,
6
- UI_I_SwitchLine,
7
- UI_I_NetworkPositionsConst,
8
- } from '~/components/common/diagramMain/lib/models/interfaces'
9
-
10
- export const managePhysicalAdapterStatusInitial: UI_I_AdapterStatus = {
11
- active: [],
12
- standby: [],
13
- unused: [],
14
- }
15
-
16
- export const mainRectHeightsInitial: UI_I_MainRectHeights = {
17
- networksHeight: 0,
18
- adaptersHeight: 0,
19
- }
20
-
21
- export const switchLineInitial: UI_I_SwitchLine = {
22
- y1: 0,
23
- y2: 0,
24
- ay: 0,
25
- }
26
-
27
- export const selectedPortInitial: UI_I_SelectedPort = {
28
- networkId: '-1',
29
- portId: '-1',
30
- activeAdapters: [],
31
- }
32
-
33
- export const selectedAdapterInitial: UI_I_SelectedAdapter = {
34
- adapterId: '-1',
35
- connectedPorts: [],
36
- }
37
-
38
- export const selectedSwitchLineYInitial: UI_I_SwitchLine = {
39
- y1: 0,
40
- y2: 0,
41
- }
42
-
43
- export const NETWORK_POSITIONS: UI_I_NetworkPositionsConst = {
44
- EMPTY_PORTS_PADDING_BOTTOM: 7.5,
45
- FROM_VLAN_ID_TO_GROUP_NAME: 22,
46
- VMS_AND_PORTS_HEIGHT: 22,
47
- V_CENTER_HEIGHT: 32,
48
- BETWEEN_VMS_AND_PORTS: 7.5,
49
- BETWEEN_V_CENTERS: 12.5,
50
- } as const
1
+ import type {
2
+ UI_I_AdapterStatus,
3
+ UI_I_MainRectHeights,
4
+ UI_I_SelectedAdapter,
5
+ UI_I_SelectedPort,
6
+ UI_I_SwitchLine,
7
+ UI_I_NetworkPositionsConst,
8
+ } from '~/components/common/diagramMain/lib/models/interfaces'
9
+
10
+ export const managePhysicalAdapterStatusInitial: UI_I_AdapterStatus = {
11
+ active: [],
12
+ standby: [],
13
+ unused: [],
14
+ }
15
+
16
+ export const mainRectHeightsInitial: UI_I_MainRectHeights = {
17
+ networksHeight: 0,
18
+ adaptersHeight: 0,
19
+ }
20
+
21
+ export const switchLineInitial: UI_I_SwitchLine = {
22
+ y1: 0,
23
+ y2: 0,
24
+ ay: 0,
25
+ }
26
+
27
+ export const selectedPortInitial: UI_I_SelectedPort = {
28
+ networkId: '-1',
29
+ portId: '-1',
30
+ activeAdapters: [],
31
+ }
32
+
33
+ export const selectedAdapterInitial: UI_I_SelectedAdapter = {
34
+ adapterId: '-1',
35
+ connectedPorts: [],
36
+ }
37
+
38
+ export const selectedSwitchLineYInitial: UI_I_SwitchLine = {
39
+ y1: 0,
40
+ y2: 0,
41
+ }
42
+
43
+ export const NETWORK_POSITIONS: UI_I_NetworkPositionsConst = {
44
+ EMPTY_PORTS_PADDING_BOTTOM: 7.5,
45
+ FROM_VLAN_ID_TO_GROUP_NAME: 22,
46
+ VMS_AND_PORTS_HEIGHT: 22,
47
+ V_CENTER_HEIGHT: 32,
48
+ BETWEEN_VMS_AND_PORTS: 7.5,
49
+ BETWEEN_V_CENTERS: 12.5,
50
+ } as const
@@ -1,21 +1,21 @@
1
- import type {
2
- UI_I_Adapter,
3
- UI_I_AdapterWithError,
4
- } from '~/components/common/diagramMain/lib/models/interfaces'
5
-
6
- export type UI_T_AdapterStatusNames = 'active' | 'standby' | 'unused'
7
- export type UI_T_PropertiesFieldName = 'vlanId' | 'networkLabel'
8
- export type UI_T_TrafficShapingFieldName = 'average' | 'peak' | 'burstSize'
9
- export type UI_T_PortPropertiesFieldName = 'mtu'
10
-
11
- export type UI_T_LoadBalancingMode =
12
- | 'inherit'
13
- | 'active-backup'
14
- | 'balance-slb'
15
- | 'balance-tcp'
16
- export type UI_T_IYN = 'inherit' | 'yes' | 'no'
17
- export type UI_T_Carier = 'inherit' | 'carier' | 'beakon'
18
-
19
- export type UI_T_Adapters = (UI_I_Adapter | UI_I_AdapterWithError) & {
20
- adapterPosition: number
21
- }
1
+ import type {
2
+ UI_I_Adapter,
3
+ UI_I_AdapterWithError,
4
+ } from '~/components/common/diagramMain/lib/models/interfaces'
5
+
6
+ export type UI_T_AdapterStatusNames = 'active' | 'standby' | 'unused'
7
+ export type UI_T_PropertiesFieldName = 'vlanId' | 'networkLabel'
8
+ export type UI_T_TrafficShapingFieldName = 'average' | 'peak' | 'burstSize'
9
+ export type UI_T_PortPropertiesFieldName = 'mtu'
10
+
11
+ export type UI_T_LoadBalancingMode =
12
+ | 'inherit'
13
+ | 'active-backup'
14
+ | 'balance-slb'
15
+ | 'balance-tcp'
16
+ export type UI_T_IYN = 'inherit' | 'yes' | 'no'
17
+ export type UI_T_Carier = 'inherit' | 'carier' | 'beakon'
18
+
19
+ export type UI_T_Adapters = (UI_I_Adapter | UI_I_AdapterWithError) & {
20
+ adapterPosition: number
21
+ }