bfg-common 1.4.732 → 1.4.734

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 (84) hide show
  1. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  2. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  3. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  5. package/assets/localization/local_be.json +16 -2
  6. package/assets/localization/local_en.json +16 -2
  7. package/assets/localization/local_hy.json +16 -2
  8. package/assets/localization/local_kk.json +16 -2
  9. package/assets/localization/local_ru.json +16 -2
  10. package/assets/localization/local_zh.json +16 -2
  11. package/components/atoms/select/TheSelect.vue +10 -1
  12. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  13. package/components/common/browse/lib/models/interfaces.ts +5 -5
  14. package/components/common/diagramMain/Header.vue +211 -211
  15. package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
  16. package/components/common/diagramMain/lib/config/initial.ts +50 -50
  17. package/components/common/diagramMain/lib/models/types.ts +21 -21
  18. package/components/common/diagramMain/lib/utils/utils.ts +331 -331
  19. package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +330 -330
  20. package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
  21. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
  22. package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
  23. package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
  24. package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
  25. package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
  26. package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
  27. package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +398 -398
  28. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
  29. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
  30. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
  31. package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
  32. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
  33. package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
  34. package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
  35. package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
  36. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
  37. package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
  38. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
  39. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
  40. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
  41. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
  42. package/components/common/diagramMain/port/Ports.vue +47 -47
  43. package/components/common/monitor/advanced/Advanced.vue +0 -5
  44. package/components/common/monitor/advanced/tools/Tools.vue +2 -9
  45. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +2 -9
  46. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +0 -2
  47. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +93 -95
  48. package/components/common/{chartOptionsModal → monitor/advanced/tools/chartOptionsModal}/counters/timespan/form/Form.vue +539 -544
  49. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/lib/config/dateForm.ts +114 -0
  50. package/components/common/monitor/overview/filters/Filters.vue +0 -3
  51. package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +5 -15
  52. package/components/common/monitor/overview/filters/customIntervalModal/lib/config/dateChecker.ts +14 -24
  53. package/components/common/pages/hardwareHealth/HardwareHealth.vue +5 -12
  54. package/components/common/pages/hardwareHealth/historyTestimony/Graph.vue +451 -456
  55. package/components/common/pages/hardwareHealth/historyTestimony/tools/Tools.vue +380 -387
  56. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/ChartOptionsModal.vue +6 -13
  57. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/counters/Counters.vue +94 -94
  58. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/counters/timespan/Timespan.vue +66 -66
  59. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/counters/timespan/form/Form.vue +539 -0
  60. package/components/common/{chartOptionsModal → pages/hardwareHealth/historyTestimony/tools/chartOptionsModal}/counters/timespan/form/lib/config/dateForm.ts +115 -116
  61. package/components/common/pages/tasks/Tasks.vue +9 -0
  62. package/components/common/pages/tasks/table/Table.vue +0 -1
  63. package/components/common/pages/tasks/table/errorInfo/ErrorInfo.vue +10 -6
  64. package/components/common/pages/tasks/table/expandDetails/ExpandDetails.vue +8 -8
  65. package/components/common/vm/actions/add/Add.vue +2 -0
  66. package/components/common/vm/actions/clone/Clone.vue +2 -0
  67. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +3 -0
  68. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +2 -0
  69. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +2 -0
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +9 -1
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +5 -2
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +3 -1
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +6 -4
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +52 -10
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceNew.vue +31 -5
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceOld.vue +31 -5
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +9 -2
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/lib/config/options.ts +11 -4
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionNew.vue +1 -1
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionOld.vue +1 -1
  81. package/components/common/vm/actions/editSettings/EditSettings.vue +3 -0
  82. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +2 -0
  83. package/components/common/vm/actions/editSettings/new/New.vue +2 -0
  84. package/package.json +3 -3
@@ -1,169 +1,169 @@
1
- <template>
2
- <div class="wizard-content-container add-networking-step">
3
- <div class="wizard-content wizard-content-port">
4
- <atoms-alert
5
- v-if="props.alertMessages.length"
6
- status="alert-danger"
7
- :items="props.alertMessages"
8
- test-id="connection-settings-alert"
9
- @remove="onHideAlert"
10
- />
11
- <form>
12
- <div class="horizontal-flex-container">
13
- <label class="property-label-group" for="network-label">
14
- {{ localization.common.networkLabel }}
15
- </label>
16
- <div class="margin-left-property-value-group">
17
- <div class="property-value-group">
18
- <fieldset>
19
- <atoms-tooltip-error
20
- :has-error="!!props.messagesFields.name.field"
21
- >
22
- <template #elem>
23
- <input
24
- id="network-label"
25
- v-model="fields.networkLabel"
26
- name="network-label"
27
- data-id="network-label-input"
28
- type="text"
29
- :class="[
30
- 'tooltip-field port-properties-network-label',
31
- {
32
- 'danger-not-valid': props.messagesFields.name.field,
33
- },
34
- ]"
35
- @click.stop
36
- />
37
- </template>
38
- <template #content>
39
- {{ props.messagesFields.name.field }}
40
- </template>
41
- </atoms-tooltip-error>
42
- </fieldset>
43
- </div>
44
- </div>
45
- </div>
46
-
47
- <div class="horizontal-flex-container port-properties-padding">
48
- <label class="property-label-group">
49
- {{ localization.common.vlanId }}
50
- </label>
51
- <div class="margin-left-property-value-group">
52
- <div class="property-value-group">
53
- <fieldset>
54
- <div class="flex-align-center">
55
- <atoms-combobox
56
- v-model.trim="fields.vlanId"
57
- :items="vlanIdSelectData"
58
- :class="{
59
- 'danger-not-valid': props.messagesFields.vlan.field,
60
- }"
61
- test-id="vlan-combobox"
62
- @click.stop
63
- />
64
- <div
65
- v-show="props.messagesFields.vlan.field"
66
- class="flex-align-center"
67
- >
68
- <div class="tooltip">
69
- <atoms-the-icon
70
- width="24px"
71
- height="24px"
72
- class="is-error tooltip-trigger"
73
- name="info"
74
- />
75
- <div class="tooltip-top-left tooltip-content error">
76
- {{ props.messagesFields.vlan.field }}
77
- </div>
78
- </div>
79
- </div>
80
- </div>
81
- </fieldset>
82
- </div>
83
- </div>
84
- </div>
85
- </form>
86
- </div>
87
- </div>
88
- </template>
89
-
90
- <script setup lang="ts">
91
- import type {
92
- UI_I_ArbitraryObject,
93
- UI_I_Localization,
94
- } from '~/lib/models/interfaces'
95
- import type { UI_I_ConnectionSettings } from '~/components/common/wizards/network/add/lib/models/interfaces'
96
- import type { UI_I_ErrorFields } from '~/components/atoms/wizard/lib/models/interfaces'
97
- import { vlanIdSelectData } from '~/components/common/wizards/network/add/lib/config/config'
98
- import type Wizard from '~/components/atoms/wizard/lib/utils/utils'
99
- import {
100
- validateNetworkConnectionSettingsLocal,
101
- validateVlanIdConnectionSettingsLocal,
102
- } from '~/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations'
103
-
104
- const props = defineProps<{
105
- connectionSettings: UI_I_ConnectionSettings
106
- alertMessages: string[]
107
- messagesFields: UI_I_ArbitraryObject<UI_I_ErrorFields>
108
- wizard: Wizard
109
- }>()
110
-
111
- const localization = computed<UI_I_Localization>(() => useLocal())
112
-
113
- const emits = defineEmits<{
114
- (
115
- event: 'change-connection-settings',
116
- connectionSettings: UI_I_ConnectionSettings
117
- ): void
118
- (event: 'hide-alert', stepId: 1): void
119
- }>()
120
-
121
- const fields = ref<UI_I_ConnectionSettings>(
122
- useDeepCopy(props.connectionSettings)
123
- )
124
-
125
- let oldFields = useDeepCopy(fields.value)
126
-
127
- watch(
128
- fields,
129
- (newFields: UI_I_ConnectionSettings) => {
130
- oldFields.vlanId !== newFields.vlanId &&
131
- validateVlanIdConnectionSettingsLocal(
132
- localization.value,
133
- newFields,
134
- props.wizard
135
- )
136
-
137
- oldFields.networkLabel !== newFields.networkLabel &&
138
- validateNetworkConnectionSettingsLocal(
139
- localization.value,
140
- newFields,
141
- props.wizard
142
- )
143
-
144
- oldFields = useDeepCopy(fields.value)
145
-
146
- emits('change-connection-settings', newFields)
147
- },
148
- { deep: true, immediate: true }
149
- )
150
-
151
- const onHideAlert = (): void => {
152
- emits('hide-alert', 1)
153
- }
154
- </script>
155
-
156
- <style scoped lang="scss">
157
- .wizard-content-container {
158
- display: flex;
159
- flex-direction: column;
160
- align-items: stretch;
161
- flex: 1 1 100%;
162
- box-sizing: border-box;
163
- padding: 16px 15px 10px 10px;
164
- overflow-y: auto;
165
- color: #333;
166
- order: 2;
167
- width: 100%;
168
- }
169
- </style>
1
+ <template>
2
+ <div class="wizard-content-container add-networking-step">
3
+ <div class="wizard-content wizard-content-port">
4
+ <atoms-alert
5
+ v-if="props.alertMessages.length"
6
+ status="alert-danger"
7
+ :items="props.alertMessages"
8
+ test-id="connection-settings-alert"
9
+ @remove="onHideAlert"
10
+ />
11
+ <form>
12
+ <div class="horizontal-flex-container">
13
+ <label class="property-label-group" for="network-label">
14
+ {{ localization.common.networkLabel }}
15
+ </label>
16
+ <div class="margin-left-property-value-group">
17
+ <div class="property-value-group">
18
+ <fieldset>
19
+ <atoms-tooltip-error
20
+ :has-error="!!props.messagesFields.name.field"
21
+ >
22
+ <template #elem>
23
+ <input
24
+ id="network-label"
25
+ v-model="fields.networkLabel"
26
+ name="network-label"
27
+ data-id="network-label-input"
28
+ type="text"
29
+ :class="[
30
+ 'tooltip-field port-properties-network-label',
31
+ {
32
+ 'danger-not-valid': props.messagesFields.name.field,
33
+ },
34
+ ]"
35
+ @click.stop
36
+ />
37
+ </template>
38
+ <template #content>
39
+ {{ props.messagesFields.name.field }}
40
+ </template>
41
+ </atoms-tooltip-error>
42
+ </fieldset>
43
+ </div>
44
+ </div>
45
+ </div>
46
+
47
+ <div class="horizontal-flex-container port-properties-padding">
48
+ <label class="property-label-group">
49
+ {{ localization.common.vlanId }}
50
+ </label>
51
+ <div class="margin-left-property-value-group">
52
+ <div class="property-value-group">
53
+ <fieldset>
54
+ <div class="flex-align-center">
55
+ <atoms-combobox
56
+ v-model.trim="fields.vlanId"
57
+ :items="vlanIdSelectData"
58
+ :class="{
59
+ 'danger-not-valid': props.messagesFields.vlan.field,
60
+ }"
61
+ test-id="vlan-combobox"
62
+ @click.stop
63
+ />
64
+ <div
65
+ v-show="props.messagesFields.vlan.field"
66
+ class="flex-align-center"
67
+ >
68
+ <div class="tooltip">
69
+ <atoms-the-icon
70
+ width="24px"
71
+ height="24px"
72
+ class="is-error tooltip-trigger"
73
+ name="info"
74
+ />
75
+ <div class="tooltip-top-left tooltip-content error">
76
+ {{ props.messagesFields.vlan.field }}
77
+ </div>
78
+ </div>
79
+ </div>
80
+ </div>
81
+ </fieldset>
82
+ </div>
83
+ </div>
84
+ </div>
85
+ </form>
86
+ </div>
87
+ </div>
88
+ </template>
89
+
90
+ <script setup lang="ts">
91
+ import type {
92
+ UI_I_ArbitraryObject,
93
+ UI_I_Localization,
94
+ } from '~/lib/models/interfaces'
95
+ import type { UI_I_ConnectionSettings } from '~/components/common/wizards/network/add/lib/models/interfaces'
96
+ import type { UI_I_ErrorFields } from '~/components/atoms/wizard/lib/models/interfaces'
97
+ import { vlanIdSelectData } from '~/components/common/wizards/network/add/lib/config/config'
98
+ import type Wizard from '~/components/atoms/wizard/lib/utils/utils'
99
+ import {
100
+ validateNetworkConnectionSettingsLocal,
101
+ validateVlanIdConnectionSettingsLocal,
102
+ } from '~/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations'
103
+
104
+ const props = defineProps<{
105
+ connectionSettings: UI_I_ConnectionSettings
106
+ alertMessages: string[]
107
+ messagesFields: UI_I_ArbitraryObject<UI_I_ErrorFields>
108
+ wizard: Wizard
109
+ }>()
110
+
111
+ const localization = computed<UI_I_Localization>(() => useLocal())
112
+
113
+ const emits = defineEmits<{
114
+ (
115
+ event: 'change-connection-settings',
116
+ connectionSettings: UI_I_ConnectionSettings
117
+ ): void
118
+ (event: 'hide-alert', stepId: 1): void
119
+ }>()
120
+
121
+ const fields = ref<UI_I_ConnectionSettings>(
122
+ useDeepCopy(props.connectionSettings)
123
+ )
124
+
125
+ let oldFields = useDeepCopy(fields.value)
126
+
127
+ watch(
128
+ fields,
129
+ (newFields: UI_I_ConnectionSettings) => {
130
+ oldFields.vlanId !== newFields.vlanId &&
131
+ validateVlanIdConnectionSettingsLocal(
132
+ localization.value,
133
+ newFields,
134
+ props.wizard
135
+ )
136
+
137
+ oldFields.networkLabel !== newFields.networkLabel &&
138
+ validateNetworkConnectionSettingsLocal(
139
+ localization.value,
140
+ newFields,
141
+ props.wizard
142
+ )
143
+
144
+ oldFields = useDeepCopy(fields.value)
145
+
146
+ emits('change-connection-settings', newFields)
147
+ },
148
+ { deep: true, immediate: true }
149
+ )
150
+
151
+ const onHideAlert = (): void => {
152
+ emits('hide-alert', 1)
153
+ }
154
+ </script>
155
+
156
+ <style scoped lang="scss">
157
+ .wizard-content-container {
158
+ display: flex;
159
+ flex-direction: column;
160
+ align-items: stretch;
161
+ flex: 1 1 100%;
162
+ box-sizing: border-box;
163
+ padding: 16px 15px 10px 10px;
164
+ overflow-y: auto;
165
+ color: #333;
166
+ order: 2;
167
+ width: 100%;
168
+ }
169
+ </style>
@@ -1,159 +1,159 @@
1
- <template>
2
- <div class="wizard-content-container">
3
- <div class="wizard-content wizard-content-port">
4
- <atoms-alert
5
- v-if="props.alertMessages.length"
6
- status="alert-danger"
7
- :items="props.alertMessages"
8
- test-id="adapter-alert"
9
- @remove="onHideAlert"
10
- />
11
- <div class="table-top-margin-container">
12
- <atoms-table-simple-table
13
- :head-items="tableHeadItems"
14
- :body-items="tableBodyItems"
15
- :selected-row-key="selectedRowKey"
16
- editable
17
- @select="onSelectRow"
18
- />
19
- </div>
20
- <common-diagram-main-modals-view-settings-info
21
- :show="!!selectedRowData.length"
22
- :modal-tabs="modalTabs"
23
- :view-settings-fields="viewSettingsFields"
24
- :with-collapse="false"
25
- />
26
- <div
27
- v-show="!selectedRowData.length"
28
- class="table-fixed-height no-item-info"
29
- >
30
- <span>{{ localization.common.noItemSelected }}</span>
31
- </div>
32
- </div>
33
- </div>
34
- </template>
35
-
36
- <script setup lang="ts">
37
- import type { UI_I_ArbitraryObject, UI_I_Localization } from '~/lib/models/interfaces'
38
- import type {
39
- UI_I_BodyItems,
40
- UI_I_ReadyCompleteFields,
41
- UI_I_SelectVmkernelAdapter,
42
- UI_I_TableHead,
43
- } from '~/components/common/wizards/network/add/lib/models/interfaces'
44
- import type {
45
- UI_I_ModalTabs,
46
- UI_I_SelectedVmkernelAdapterTableRaw,
47
- UI_I_VmkernelAdapterTableData,
48
- } from '~/components/common/diagramMain/lib/models/interfaces'
49
- import {
50
- vmKernelAdapterViewSettingsModalTabsFunc,
51
- vmKernelAdapterViewSettingsTableHeadFunc,
52
- vmKernelAdapterTableBodyMapperFunc,
53
- vmKernelAdapterViewSettingsFunc,
54
- } from '~/components/common/diagramMain/modals/lib/config'
55
-
56
- const props = defineProps<{
57
- tableData: UI_I_VmkernelAdapterTableData[]
58
- vmkernelAdapter: UI_I_SelectVmkernelAdapter
59
- alertMessages: string[]
60
- }>()
61
-
62
- const localization = computed<UI_I_Localization>(() => useLocal())
63
-
64
- const modalTabs = computed<UI_I_ModalTabs[]>(() =>
65
- vmKernelAdapterViewSettingsModalTabsFunc(localization.value)
66
- )
67
-
68
- const viewSettingsFields = computed<UI_I_ReadyCompleteFields[]>(() =>
69
- vmKernelAdapterViewSettingsFunc(localization.value)
70
- )
71
-
72
- const tableHeadItems = computed<UI_I_TableHead[]>(() =>
73
- vmKernelAdapterViewSettingsTableHeadFunc(localization.value)
74
- )
75
-
76
- const tableBodyItems = computed<UI_I_BodyItems[][]>(() =>
77
- props.tableData.map(vmKernelAdapterTableBodyMapperFunc)
78
- )
79
-
80
- const selectedRowData = ref<UI_I_SelectedVmkernelAdapterTableRaw[]>(
81
- tableBodyItems.value.find(
82
- (item) => item[0].text === props.vmkernelAdapter.vm
83
- ) || []
84
- )
85
-
86
- const selectedRowKey = ref<number>(
87
- tableBodyItems.value.findIndex(
88
- (item) => item[0].text === props.vmkernelAdapter.vm
89
- )
90
- )
91
-
92
- const fields = ref<UI_I_SelectVmkernelAdapter>(
93
- useDeepCopy(props.vmkernelAdapter)
94
- )
95
-
96
- const onSelectRow = (index: number): void => {
97
- selectedRowData.value = tableBodyItems.value[index]
98
-
99
- const selectedVmkernelAdapter =
100
- selectedRowData.value &&
101
- selectedRowData.value[0] &&
102
- selectedRowData.value[0].text
103
-
104
- selectedVmkernelAdapter && (fields.value.vm = selectedVmkernelAdapter)
105
- }
106
-
107
- const emits = defineEmits<{
108
- (
109
- event: 'change-vmkernel-adapter',
110
- vmkernelAdapter: UI_I_SelectVmkernelAdapter
111
- ): void
112
- (event: 'hide-alert', stepId: 0): void
113
- }>()
114
-
115
- watch(
116
- fields,
117
- (newFields: UI_I_SelectVmkernelAdapter) => {
118
- emits('change-vmkernel-adapter', newFields)
119
- },
120
- { deep: true, immediate: true }
121
- )
122
-
123
- const onHideAlert = (): void => {
124
- emits('hide-alert', 0)
125
- }
126
- </script>
127
-
128
- <style scoped lang="scss">
129
- .wizard-content-container {
130
- display: flex;
131
- flex-direction: column;
132
- align-items: stretch;
133
- flex: 1 1 100%;
134
- box-sizing: border-box;
135
- padding: 0px 15px 0px 10px;
136
- overflow-y: auto;
137
- color: #333;
138
- order: 2;
139
- width: 100%;
140
- }
141
- .table-top-margin-container {
142
- margin-top: 20px;
143
- }
144
-
145
- :deep(.table-fixed-height) {
146
- max-height: 143px;
147
- min-height: 143px;
148
- }
149
- .no-item-info {
150
- span {
151
- font-size: 16px;
152
- font-weight: 700;
153
- color: #a0a0a0;
154
- }
155
- display: flex;
156
- justify-content: center;
157
- align-items: center;
158
- }
159
- </style>
1
+ <template>
2
+ <div class="wizard-content-container">
3
+ <div class="wizard-content wizard-content-port">
4
+ <atoms-alert
5
+ v-if="props.alertMessages.length"
6
+ status="alert-danger"
7
+ :items="props.alertMessages"
8
+ test-id="adapter-alert"
9
+ @remove="onHideAlert"
10
+ />
11
+ <div class="table-top-margin-container">
12
+ <atoms-table-simple-table
13
+ :head-items="tableHeadItems"
14
+ :body-items="tableBodyItems"
15
+ :selected-row-key="selectedRowKey"
16
+ editable
17
+ @select="onSelectRow"
18
+ />
19
+ </div>
20
+ <common-diagram-main-modals-view-settings-info
21
+ :show="!!selectedRowData.length"
22
+ :modal-tabs="modalTabs"
23
+ :view-settings-fields="viewSettingsFields"
24
+ :with-collapse="false"
25
+ />
26
+ <div
27
+ v-show="!selectedRowData.length"
28
+ class="table-fixed-height no-item-info"
29
+ >
30
+ <span>{{ localization.common.noItemSelected }}</span>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ </template>
35
+
36
+ <script setup lang="ts">
37
+ import type { UI_I_ArbitraryObject, UI_I_Localization } from '~/lib/models/interfaces'
38
+ import type {
39
+ UI_I_BodyItems,
40
+ UI_I_ReadyCompleteFields,
41
+ UI_I_SelectVmkernelAdapter,
42
+ UI_I_TableHead,
43
+ } from '~/components/common/wizards/network/add/lib/models/interfaces'
44
+ import type {
45
+ UI_I_ModalTabs,
46
+ UI_I_SelectedVmkernelAdapterTableRaw,
47
+ UI_I_VmkernelAdapterTableData,
48
+ } from '~/components/common/diagramMain/lib/models/interfaces'
49
+ import {
50
+ vmKernelAdapterViewSettingsModalTabsFunc,
51
+ vmKernelAdapterViewSettingsTableHeadFunc,
52
+ vmKernelAdapterTableBodyMapperFunc,
53
+ vmKernelAdapterViewSettingsFunc,
54
+ } from '~/components/common/diagramMain/modals/lib/config'
55
+
56
+ const props = defineProps<{
57
+ tableData: UI_I_VmkernelAdapterTableData[]
58
+ vmkernelAdapter: UI_I_SelectVmkernelAdapter
59
+ alertMessages: string[]
60
+ }>()
61
+
62
+ const localization = computed<UI_I_Localization>(() => useLocal())
63
+
64
+ const modalTabs = computed<UI_I_ModalTabs[]>(() =>
65
+ vmKernelAdapterViewSettingsModalTabsFunc(localization.value)
66
+ )
67
+
68
+ const viewSettingsFields = computed<UI_I_ReadyCompleteFields[]>(() =>
69
+ vmKernelAdapterViewSettingsFunc(localization.value)
70
+ )
71
+
72
+ const tableHeadItems = computed<UI_I_TableHead[]>(() =>
73
+ vmKernelAdapterViewSettingsTableHeadFunc(localization.value)
74
+ )
75
+
76
+ const tableBodyItems = computed<UI_I_BodyItems[][]>(() =>
77
+ props.tableData.map(vmKernelAdapterTableBodyMapperFunc)
78
+ )
79
+
80
+ const selectedRowData = ref<UI_I_SelectedVmkernelAdapterTableRaw[]>(
81
+ tableBodyItems.value.find(
82
+ (item) => item[0].text === props.vmkernelAdapter.vm
83
+ ) || []
84
+ )
85
+
86
+ const selectedRowKey = ref<number>(
87
+ tableBodyItems.value.findIndex(
88
+ (item) => item[0].text === props.vmkernelAdapter.vm
89
+ )
90
+ )
91
+
92
+ const fields = ref<UI_I_SelectVmkernelAdapter>(
93
+ useDeepCopy(props.vmkernelAdapter)
94
+ )
95
+
96
+ const onSelectRow = (index: number): void => {
97
+ selectedRowData.value = tableBodyItems.value[index]
98
+
99
+ const selectedVmkernelAdapter =
100
+ selectedRowData.value &&
101
+ selectedRowData.value[0] &&
102
+ selectedRowData.value[0].text
103
+
104
+ selectedVmkernelAdapter && (fields.value.vm = selectedVmkernelAdapter)
105
+ }
106
+
107
+ const emits = defineEmits<{
108
+ (
109
+ event: 'change-vmkernel-adapter',
110
+ vmkernelAdapter: UI_I_SelectVmkernelAdapter
111
+ ): void
112
+ (event: 'hide-alert', stepId: 0): void
113
+ }>()
114
+
115
+ watch(
116
+ fields,
117
+ (newFields: UI_I_SelectVmkernelAdapter) => {
118
+ emits('change-vmkernel-adapter', newFields)
119
+ },
120
+ { deep: true, immediate: true }
121
+ )
122
+
123
+ const onHideAlert = (): void => {
124
+ emits('hide-alert', 0)
125
+ }
126
+ </script>
127
+
128
+ <style scoped lang="scss">
129
+ .wizard-content-container {
130
+ display: flex;
131
+ flex-direction: column;
132
+ align-items: stretch;
133
+ flex: 1 1 100%;
134
+ box-sizing: border-box;
135
+ padding: 0px 15px 0px 10px;
136
+ overflow-y: auto;
137
+ color: #333;
138
+ order: 2;
139
+ width: 100%;
140
+ }
141
+ .table-top-margin-container {
142
+ margin-top: 20px;
143
+ }
144
+
145
+ :deep(.table-fixed-height) {
146
+ max-height: 143px;
147
+ min-height: 143px;
148
+ }
149
+ .no-item-info {
150
+ span {
151
+ font-size: 16px;
152
+ font-weight: 700;
153
+ color: #a0a0a0;
154
+ }
155
+ display: flex;
156
+ justify-content: center;
157
+ align-items: center;
158
+ }
159
+ </style>