bfg-common 1.4.518 → 1.4.521

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 (23) hide show
  1. package/components/common/pages/shortcuts/Shortcuts.vue +1 -1
  2. package/components/common/pages/shortcuts/block/BlockNew.vue +2 -31
  3. package/components/common/pages/shortcuts/block/BlockOld.vue +2 -39
  4. package/components/common/pages/shortcuts/category/Category.vue +1 -17
  5. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +34 -60
  6. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceNew.vue +85 -0
  7. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceOld.vue +91 -0
  8. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +16 -31
  9. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +35 -0
  10. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +37 -0
  11. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +17 -33
  12. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +48 -0
  13. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +35 -0
  14. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +9 -21
  15. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -0
  16. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -0
  17. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +14 -30
  18. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +30 -0
  19. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +31 -0
  20. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelection.vue +16 -38
  21. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionNew.vue +46 -0
  22. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionOld.vue +46 -0
  23. package/package.json +1 -1
@@ -31,7 +31,7 @@ const localization = computed<UI_I_Localization>(() => useLocal())
31
31
  .shortcut {
32
32
  margin: 20px;
33
33
  height: 100%;
34
-
34
+ overflow: auto;
35
35
  &.new {
36
36
  background: var(--bottom-pannel-bg-color);
37
37
  padding: 16px;
@@ -8,12 +8,8 @@
8
8
  @click="changeLastNavigation"
9
9
  @contextmenu="changeLastNavigation"
10
10
  >
11
- <span
12
- v-if="props.item.iconClassName"
13
- :class="['unit-icon', props.item.iconClassName]"
14
- />
15
- <span v-else-if="props.item.iconName" class="unit-icon">
16
- <atoms-the-icon2 :name="props.item.iconName" width="28" height="28" />
11
+ <span class="unit-icon">
12
+ <ui-icon :name="props.item.iconName" width="28" height="28"></ui-icon>
17
13
  </span>
18
14
  <div class="unit-text" :title="props.item.text">
19
15
  {{ props.item.text }}
@@ -53,31 +49,6 @@ const changeLastNavigation = (): void => {
53
49
  min-height: 28px;
54
50
  display: inline-block;
55
51
  color: var(--close-icon);
56
-
57
- &.icon-lifecycle-manager,
58
- &.icon-cloud-provider-services {
59
- background-size: contain;
60
- background-repeat: no-repeat;
61
- }
62
- &.icon-lifecycle-manager {
63
- background-image: url('assets/img/icons/icon-life-m-light.svg');
64
- html.dark-theme & {
65
- background-image: url('assets/img/icons/icon-life-m-dark.svg');
66
- }
67
- }
68
- &.icon-cloud-provider-services {
69
- background-image: url('assets/img/icons/icon-cps.png');
70
- html.dark-theme & {
71
- background-image: url('assets/img/icons/icon-cps-dark-mode.png');
72
- }
73
- }
74
- &.icon-vm-customizationManager-32x,
75
- &.icon-storage-profile-32x,
76
- &.icon-Host_Policy-32x,
77
- &.icon-certificate-32x {
78
- width: 28px;
79
- height: 28px;
80
- }
81
52
  }
82
53
  &-text {
83
54
  color: #9da6ad;
@@ -8,12 +8,8 @@
8
8
  @click="changeLastNavigation"
9
9
  @contextmenu="changeLastNavigation"
10
10
  >
11
- <span
12
- v-if="props.item.iconClassName"
13
- :class="['unit-icon', props.item.iconClassName]"
14
- />
15
- <span v-else-if="props.item.iconName" class="icon-2">
16
- <atoms-the-icon2 :name="props.item.iconName" width="34" height="34" />
11
+ <span class="icon-2">
12
+ <ui-icon :name="props.item.iconName" width="34" height="34"></ui-icon>
17
13
  </span>
18
14
  <div class="unit-text" :title="props.item.text">
19
15
  {{ props.item.text }}
@@ -47,39 +43,6 @@ const changeLastNavigation = (): void => {
47
43
  width: 95px;
48
44
  margin: 21px 10px;
49
45
  text-decoration-line: none;
50
- &-icon {
51
- margin: 0px 10px 15px 10px;
52
- min-width: 34px;
53
- min-height: 34px;
54
- display: inline-block;
55
- color: var(--global-font-color3);
56
-
57
- &.icon-lifecycle-manager,
58
- &.icon-cloud-provider-services {
59
- background-size: contain;
60
- background-repeat: no-repeat;
61
- }
62
- &.icon-lifecycle-manager {
63
- background-image: url('assets/img/icons/icon-life-m-light.svg');
64
- html.dark-theme & {
65
- background-image: url('assets/img/icons/icon-life-m-dark.svg');
66
- color: var(--global-font-color3);
67
- }
68
- }
69
- &.icon-cloud-provider-services {
70
- background-image: url('assets/img/icons/icon-cps.png');
71
- html.dark-theme & {
72
- background-image: url('assets/img/icons/icon-cps-dark-mode.png');
73
- }
74
- }
75
- &.icon-vm-customizationManager-32x,
76
- &.icon-storage-profile-32x,
77
- &.icon-Host_Policy-32x,
78
- &.icon-certificate-32x {
79
- width: 34px;
80
- height: 34px;
81
- }
82
- }
83
46
  .icon-2 {
84
47
  margin: 0 10px 15px 10px;
85
48
  color: var(--global-font-color3);
@@ -23,20 +23,4 @@ const { $store }: any = useNuxtApp()
23
23
 
24
24
  const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
25
25
  </script>
26
- <style lang="scss" scoped>
27
- //.category {
28
- // &-text {
29
- // color: var(--light-white-100);
30
- // font-size: 18px;
31
- // line-height: 21px;
32
- // font-weight: 400;
33
- // }
34
- // &-block {
35
- // display: flex;
36
- // flex-direction: row;
37
- // justify-content: flex-start;
38
- // border-top: 1px solid var(--global-border-color);
39
- // margin-top: -4px;
40
- // }
41
- //}
42
- </style>
26
+ <style lang="scss" scoped></style>
@@ -1,56 +1,34 @@
1
1
  <template>
2
- <div class="hardware-pci-device">
3
- <atoms-stack-block
4
- :has-children="true"
5
- :removable="isRemovable"
6
- test-id="pci-device-stack-block"
7
- @remove="onRemovePciDevice"
8
- >
9
- <template #stackBlockKey>
10
- <div
11
- :id="`vm-wizard-toggle-block-pci-device-${props.index}`"
12
- :data-id="`vm-wizard-toggle-block-pci-device-${props.index}`"
13
- class="flex-align-center"
14
- >
15
- <span>{{ label }}</span>
16
- </div>
17
- </template>
18
- <template #stackBlockContent>
19
- <span class="main-label">
20
- {{ selectedLabel }}
21
- </span>
22
- </template>
23
- <template #stackChildren>
24
- <template v-if="props.type === 'new'">
25
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-type-selection
26
- v-model="selectedType"
27
- :options="pciDeviceTypeOptions"
28
- :pci-device-index="props.index"
29
- />
30
-
31
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-direct-path-io
32
- v-show="selectedType.value === 'direct_path_io'"
33
- v-model="directPathIo"
34
- :pci-device-index="props.index"
35
- :passthrough-devices="props.passthroughDevices"
36
- />
37
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-dynamic-direct-path-io
38
- v-show="selectedType.value === 'dynamic_direct_path_io'"
39
- v-model="dynamicDirectPathIo"
40
- :pci-device-index="props.index"
41
- :passthrough-devices="props.passthroughDevices"
42
- />
43
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-nvidia-grid
44
- v-show="selectedType.value === 'nvidia_grid'"
45
- v-model="nvidiaGridProfile"
46
- :pci-device-index="props.index"
47
- />
48
- </template>
49
-
50
- <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-note />
51
- </template>
52
- </atoms-stack-block>
53
- </div>
2
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-new
3
+ v-if="isNewView"
4
+ v-model:selected-type="selectedType"
5
+ v-model:direct-path-io="directPathIo"
6
+ v-model:dynamic-direct-path-io="dynamicDirectPathIo"
7
+ v-model:nvidia-grid-profile="nvidiaGridProfile"
8
+ :index="props.index"
9
+ :passthrough-devices="props.passthroughDevices"
10
+ :type="props.type"
11
+ :is-removable="isRemovable"
12
+ :label="label"
13
+ :selected-label="selectedLabel"
14
+ :pci-device-type-options="pciDeviceTypeOptions"
15
+ @remove="emits('remove')"
16
+ />
17
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-old
18
+ v-else
19
+ v-model:selected-type="selectedType"
20
+ v-model:direct-path-io="directPathIo"
21
+ v-model:dynamic-direct-path-io="dynamicDirectPathIo"
22
+ v-model:nvidia-grid-profile="nvidiaGridProfile"
23
+ :index="props.index"
24
+ :passthrough-devices="props.passthroughDevices"
25
+ :type="props.type"
26
+ :is-removable="isRemovable"
27
+ :label="label"
28
+ :selected-label="selectedLabel"
29
+ :pci-device-type-options="pciDeviceTypeOptions"
30
+ @remove="emits('remove')"
31
+ />
54
32
  </template>
55
33
 
56
34
  <script setup lang="ts">
@@ -75,6 +53,9 @@ const emits = defineEmits<{
75
53
  (event: 'remove'): void
76
54
  }>()
77
55
 
56
+ const { $store }: any = useNuxtApp()
57
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
58
+
78
59
  const localization = computed<UI_I_Localization>(() => useLocal())
79
60
 
80
61
  const isRunning = computed<boolean>(() => {
@@ -95,7 +76,7 @@ const label = computed<string>(() => {
95
76
  const selectedLabel = computed<string>(() => {
96
77
  switch (selectedType.value.value) {
97
78
  case 'direct_path_io':
98
- return `${directPathIo.value.address}|${directPathIo.value.device_name}`
79
+ return `${directPathIo.value.address} | ${directPathIo.value.device_name}`
99
80
  case 'dynamic_direct_path_io':
100
81
  return dynamicDirectPathIo.value
101
82
  default:
@@ -155,14 +136,7 @@ watch(
155
136
  },
156
137
  { immediate: true }
157
138
  )
158
-
159
- const onRemovePciDevice = (): void => {
160
- emits('remove')
161
- }
162
139
  </script>
163
140
 
164
141
  <style scoped lang="scss">
165
- #network-connect {
166
- margin-right: 4px;
167
- }
168
142
  </style>
@@ -0,0 +1,85 @@
1
+ <template>
2
+ <ui-stack-block
3
+ :has-children="true"
4
+ :removable="props.isRemovable"
5
+ test-id="pci-device-stack-block"
6
+ @remove="emits('remove')"
7
+ >
8
+ <template #stackBlockKey>
9
+ <div
10
+ :id="`vm-wizard-toggle-block-pci-device-${props.index}`"
11
+ :data-id="`vm-wizard-toggle-block-pci-device-${props.index}`"
12
+ class="flex-align-center"
13
+ >
14
+ <span>{{ props.label }}</span>
15
+ </div>
16
+ </template>
17
+ <template #stackBlockContent>
18
+ <span class="main-label">
19
+ {{ props.selectedLabel }}
20
+ </span>
21
+ </template>
22
+ <template #stackChildren>
23
+ <template v-if="props.type === 'new'">
24
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-type-selection
25
+ v-model="selectedType"
26
+ :options="props.pciDeviceTypeOptions"
27
+ :pci-device-index="props.index"
28
+ />
29
+
30
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-direct-path-io
31
+ v-show="selectedType.value === 'direct_path_io'"
32
+ v-model="directPathIo"
33
+ :pci-device-index="props.index"
34
+ :passthrough-devices="props.passthroughDevices"
35
+ />
36
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-dynamic-direct-path-io
37
+ v-show="selectedType.value === 'dynamic_direct_path_io'"
38
+ v-model="dynamicDirectPathIo"
39
+ :pci-device-index="props.index"
40
+ />
41
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-nvidia-grid
42
+ v-show="selectedType.value === 'nvidia_grid'"
43
+ v-model="nvidiaGridProfile"
44
+ :pci-device-index="props.index"
45
+ />
46
+ </template>
47
+
48
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-note />
49
+ </template>
50
+ </ui-stack-block>
51
+ </template>
52
+
53
+ <script setup lang="ts">
54
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
55
+ import type { UI_T_PciDeviceType } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/types'
56
+ import type { UI_I_PciDevice } from '~/lib/models/store/vm/interfaces'
57
+
58
+ const selectedType = defineModel<UI_I_OptionItem>('selected-type', {
59
+ required: true,
60
+ })
61
+ const directPathIo = defineModel<UI_I_PciDevice>('direct-path-io', {
62
+ required: true,
63
+ })
64
+ const dynamicDirectPathIo = defineModel<string>('dynamic-direct-path-io', {
65
+ required: true,
66
+ })
67
+ const nvidiaGridProfile = defineModel<string>('nvidia-grid-profile', {
68
+ required: true,
69
+ })
70
+
71
+ const props = defineProps<{
72
+ index: number
73
+ passthroughDevices: UI_I_PciDevice[]
74
+ type: UI_T_PciDeviceType
75
+ isRemovable: boolean
76
+ label: string
77
+ selectedLabel: string
78
+ pciDeviceTypeOptions: UI_I_OptionItem[]
79
+ }>()
80
+ const emits = defineEmits<{
81
+ (event: 'remove'): void
82
+ }>()
83
+ </script>
84
+
85
+ <style scoped lang="scss"></style>
@@ -0,0 +1,91 @@
1
+ <template>
2
+ <div class="hardware-pci-device">
3
+ <atoms-stack-block
4
+ :has-children="true"
5
+ :removable="props.isRemovable"
6
+ test-id="pci-device-stack-block"
7
+ @remove="emits('remove')"
8
+ >
9
+ <template #stackBlockKey>
10
+ <div
11
+ :id="`vm-wizard-toggle-block-pci-device-${props.index}`"
12
+ :data-id="`vm-wizard-toggle-block-pci-device-${props.index}`"
13
+ class="flex-align-center"
14
+ >
15
+ <span>{{ props.label }}</span>
16
+ </div>
17
+ </template>
18
+ <template #stackBlockContent>
19
+ <span class="main-label">
20
+ {{ props.selectedLabel }}
21
+ </span>
22
+ </template>
23
+ <template #stackChildren>
24
+ <template v-if="props.type === 'new'">
25
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-type-selection
26
+ v-model="selectedType"
27
+ :options="props.pciDeviceTypeOptions"
28
+ :pci-device-index="props.index"
29
+ />
30
+
31
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-direct-path-io
32
+ v-show="selectedType.value === 'direct_path_io'"
33
+ v-model="directPathIo"
34
+ :pci-device-index="props.index"
35
+ :passthrough-devices="props.passthroughDevices"
36
+ />
37
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-dynamic-direct-path-io
38
+ v-show="selectedType.value === 'dynamic_direct_path_io'"
39
+ v-model="dynamicDirectPathIo"
40
+ :pci-device-index="props.index"
41
+ />
42
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-nvidia-grid
43
+ v-show="selectedType.value === 'nvidia_grid'"
44
+ v-model="nvidiaGridProfile"
45
+ :pci-device-index="props.index"
46
+ />
47
+ </template>
48
+
49
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-note />
50
+ </template>
51
+ </atoms-stack-block>
52
+ </div>
53
+ </template>
54
+
55
+ <script setup lang="ts">
56
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
57
+ import type { UI_T_PciDeviceType } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/types'
58
+ import type { UI_I_PciDevice } from '~/lib/models/store/vm/interfaces'
59
+
60
+ const selectedType = defineModel<UI_I_OptionItem>('selected-type', {
61
+ required: true,
62
+ })
63
+ const directPathIo = defineModel<UI_I_PciDevice>('direct-path-io', {
64
+ required: true,
65
+ })
66
+ const dynamicDirectPathIo = defineModel<string>('dynamic-direct-path-io', {
67
+ required: true,
68
+ })
69
+ const nvidiaGridProfile = defineModel<string>('nvidia-grid-profile', {
70
+ required: true,
71
+ })
72
+
73
+ const props = defineProps<{
74
+ index: number
75
+ passthroughDevices: UI_I_PciDevice[]
76
+ type: UI_T_PciDeviceType
77
+ isRemovable: boolean
78
+ label: string
79
+ selectedLabel: string
80
+ pciDeviceTypeOptions: UI_I_OptionItem[]
81
+ }>()
82
+ const emits = defineEmits<{
83
+ (event: 'remove'): void
84
+ }>()
85
+ </script>
86
+
87
+ <style scoped lang="scss">
88
+ #network-connect {
89
+ margin-right: 4px;
90
+ }
91
+ </style>
@@ -1,23 +1,16 @@
1
1
  <template>
2
- <atoms-stack-block :has-children="false">
3
- <template #stackBlockContent>
4
- <div class="select">
5
- <select
6
- id="direct-path-io"
7
- v-model="valueLocal"
8
- data-id="direct-path-io-select"
9
- >
10
- <option
11
- v-for="item in props.passthroughDevices"
12
- :key="item.id"
13
- :value="item"
14
- >
15
- {{ item.address }} | {{ item.device_name }}
16
- </option>
17
- </select>
18
- </div>
19
- </template>
20
- </atoms-stack-block>
2
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-direct-path-io-new
3
+ v-if="isNewView"
4
+ v-model="model"
5
+ :pci-device-index="props.pciDeviceIndex"
6
+ :passthrough-devices="props.passthroughDevices"
7
+ />
8
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-direct-path-io-old
9
+ v-else
10
+ v-model="model"
11
+ :pci-device-index="props.pciDeviceIndex"
12
+ :passthrough-devices="props.passthroughDevices"
13
+ />
21
14
  </template>
22
15
 
23
16
  <script lang="ts" setup>
@@ -26,23 +19,15 @@ import type {
26
19
  UI_I_ConfigurePciDevicesTable,
27
20
  } from '~/lib/models/store/host/interfaces'
28
21
 
22
+ const model = defineModel<UI_I_ConfigureAllPciDevicesItem>({required: true})
23
+
29
24
  const props = defineProps<{
30
- modelValue: UI_I_ConfigureAllPciDevicesItem
31
25
  pciDeviceIndex: number
32
26
  passthroughDevices: UI_I_ConfigurePciDevicesTable
33
27
  }>()
34
- const emits = defineEmits<{
35
- (event: 'update:model-value', value: UI_I_ConfigureAllPciDevicesItem): void
36
- }>()
37
28
 
38
- const valueLocal = computed<UI_I_ConfigureAllPciDevicesItem>({
39
- get() {
40
- return props.modelValue
41
- },
42
- set(newValue: UI_I_ConfigureAllPciDevicesItem) {
43
- emits('update:model-value', newValue)
44
- },
45
- })
29
+ const { $store }: any = useNuxtApp()
30
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
46
31
  </script>
47
32
 
48
33
  <style lang="scss" scoped></style>
@@ -0,0 +1,35 @@
1
+ <template>
2
+ <ui-stack-block :has-children="false">
3
+ <template #stackBlockKey>
4
+ <span>{{ localization.common.pciDevice }}</span>
5
+ </template>
6
+ <template #stackBlockContent>
7
+ <ui-select
8
+ id="direct-path-io"
9
+ v-model="model"
10
+ width="auto"
11
+ :items="props.passthroughDevices"
12
+ :test-id="`direct-path-io-select-${props.pciDeviceIndex}`"
13
+ />
14
+ </template>
15
+ </ui-stack-block>
16
+ </template>
17
+
18
+ <script lang="ts" setup>
19
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
20
+ import type {
21
+ UI_I_ConfigureAllPciDevicesItem,
22
+ UI_I_ConfigurePciDevicesTable,
23
+ } from '~/lib/models/store/host/interfaces'
24
+
25
+ const model = defineModel<UI_I_ConfigureAllPciDevicesItem>()
26
+
27
+ const props = defineProps<{
28
+ pciDeviceIndex: number
29
+ passthroughDevices: UI_I_ConfigurePciDevicesTable
30
+ }>()
31
+
32
+ const localization = computed<UI_I_Localization>(() => useLocal())
33
+ </script>
34
+
35
+ <style lang="scss" scoped></style>
@@ -0,0 +1,37 @@
1
+ <template>
2
+ <atoms-stack-block :has-children="false">
3
+ <template #stackBlockContent>
4
+ <div class="select">
5
+ <select
6
+ id="direct-path-io"
7
+ v-model="model"
8
+ :data-id="`direct-path-io-select-${props.pciDeviceIndex}`"
9
+ >
10
+ <option
11
+ v-for="item in props.passthroughDevices"
12
+ :key="item.id"
13
+ :value="item"
14
+ >
15
+ {{ item.address }} | {{ item.device_name }}
16
+ </option>
17
+ </select>
18
+ </div>
19
+ </template>
20
+ </atoms-stack-block>
21
+ </template>
22
+
23
+ <script lang="ts" setup>
24
+ import type {
25
+ UI_I_ConfigureAllPciDevicesItem,
26
+ UI_I_ConfigurePciDevicesTable,
27
+ } from '~/lib/models/store/host/interfaces'
28
+
29
+ const model = defineModel<UI_I_ConfigureAllPciDevicesItem>()
30
+
31
+ const props = defineProps<{
32
+ pciDeviceIndex: number
33
+ passthroughDevices: UI_I_ConfigurePciDevicesTable
34
+ }>()
35
+ </script>
36
+
37
+ <style lang="scss" scoped></style>
@@ -1,49 +1,33 @@
1
1
  <template>
2
- <div>
3
- <atoms-stack-block :has-children="false">
4
- <template #stackBlockKey>
5
- {{ localization.common.pciDevice }}
6
- </template>
7
- <template #stackBlockContent>
8
- <div>{{ localization.common.connectAnyFollowing }}:</div>
9
- <atoms-select-the-select
10
- v-model="localValue"
11
- :options="options"
12
- test-id="dynamic-direct-path-io-select"
13
- >
14
- <span class="text-uppercase">{{ localization.common.selectHardware }}</span>
15
- </atoms-select-the-select>
16
- </template>
17
- </atoms-stack-block>
18
- </div>
2
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-dynamic-direct-path-io-new
3
+ v-if="isNewView"
4
+ v-model="model"
5
+ :options="options"
6
+ :pci-device-index="props.pciDeviceIndex"
7
+ />
8
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-dynamic-direct-path-io-old
9
+ v-else
10
+ v-model="model"
11
+ :options="options"
12
+ :pci-device-index="props.pciDeviceIndex"
13
+ />
19
14
  </template>
20
15
 
21
16
  <script lang="ts" setup>
22
- import type { UI_I_Localization } from '~/lib/models/interfaces'
23
17
  import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'
24
18
  import { optionsConfig } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/lib/config/options'
25
19
 
20
+ const model = defineModel<string>({required: true})
21
+
26
22
  const props = defineProps<{
27
- modelValue: string
28
23
  pciDeviceIndex: number
29
24
  }>()
30
- const emits = defineEmits<{
31
- (event: 'update:model-value', value: string): void
32
- }>()
33
-
34
- const localValue = computed<string>({
35
- get() {
36
- return props.modelValue
37
- },
38
- set(newValue) {
39
- emits('update:model-value', newValue)
40
- },
41
- })
42
25
 
43
- const localization = computed<UI_I_Localization>(() => useLocal())
26
+ const { $store }: any = useNuxtApp()
27
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
44
28
 
45
29
  const options = ref<UI_I_Option[]>(optionsConfig)
46
- localValue.value = '' + options.value[0].value
30
+ model.value = '' + options.value[0].value
47
31
  </script>
48
32
 
49
33
  <style lang="scss" scoped></style>
@@ -0,0 +1,48 @@
1
+ <template>
2
+ <ui-stack-block :has-children="false">
3
+ <template #stackBlockKey>
4
+ {{ localization.common.pciDevice }}
5
+ </template>
6
+ <template #stackBlockContent>
7
+ <div class="dynamic-direct-path-io-content">
8
+ <span class="dynamic-direct-path-io-content-label"
9
+ >{{ localization.common.connectAnyFollowing }}:</span
10
+ >
11
+ <ui-select
12
+ v-model="model"
13
+ width="auto"
14
+ :items="props.options"
15
+ :test-id="`dynamic-direct-path-io-select-${pciDeviceIndex}`"
16
+ />
17
+ </div>
18
+ </template>
19
+ </ui-stack-block>
20
+ </template>
21
+
22
+ <script lang="ts" setup>
23
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
24
+ import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'
25
+
26
+ const model = defineModel<string>({ required: true })
27
+
28
+ const props = defineProps<{
29
+ options: UI_I_Option[]
30
+ pciDeviceIndex: number
31
+ }>()
32
+
33
+ const localization = computed<UI_I_Localization>(() => useLocal())
34
+ </script>
35
+
36
+ <style lang="scss" scoped>
37
+ .dynamic-direct-path-io-content {
38
+ display: flex;
39
+ flex-direction: column;
40
+ gap: 12px;
41
+
42
+ &-label {
43
+ font-size: 13px;
44
+ line-height: 15.73px;
45
+ color: #9da6ad;
46
+ }
47
+ }
48
+ </style>
@@ -0,0 +1,35 @@
1
+ <template>
2
+ <div>
3
+ <atoms-stack-block :has-children="false">
4
+ <template #stackBlockKey>
5
+ {{ localization.common.pciDevice }}
6
+ </template>
7
+ <template #stackBlockContent>
8
+ <div>{{ localization.common.connectAnyFollowing }}:</div>
9
+ <atoms-select-the-select
10
+ v-model="model"
11
+ :options="props.options"
12
+ :test-id="`dynamic-direct-path-io-select-${pciDeviceIndex}`"
13
+ >
14
+ <span class="text-uppercase">{{ localization.common.selectHardware }}</span>
15
+ </atoms-select-the-select>
16
+ </template>
17
+ </atoms-stack-block>
18
+ </div>
19
+ </template>
20
+
21
+ <script lang="ts" setup>
22
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
23
+ import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'
24
+
25
+ const model = defineModel<string>({required: true})
26
+
27
+ const props = defineProps<{
28
+ options: UI_I_Option[]
29
+ pciDeviceIndex: number
30
+ }>()
31
+
32
+ const localization = computed<UI_I_Localization>(() => useLocal())
33
+ </script>
34
+
35
+ <style lang="scss" scoped></style>
@@ -1,27 +1,15 @@
1
1
  <template>
2
- <atoms-stack-block :has-children="false">
3
- <template #stackBlockContent>
4
- <span>
5
- <atoms-the-icon
6
- name="warning"
7
- width="16px"
8
- heigth="16px"
9
- class="note-icon"
10
- />
11
- </span>
12
- <span>{{ localization.common.note }}: {{ localization.common.pciDeviceNote }}</span>
13
- </template>
14
- </atoms-stack-block>
2
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-note-new
3
+ v-if="isNewView"
4
+ />
5
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-note-old
6
+ v-else
7
+ />
15
8
  </template>
16
9
 
17
10
  <script lang="ts" setup>
18
- import type { UI_I_Localization } from '~/lib/models/interfaces'
19
-
20
- const localization = computed<UI_I_Localization>(() => useLocal())
11
+ const { $store }: any = useNuxtApp()
12
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
21
13
  </script>
22
14
 
23
- <style lang="scss" scoped>
24
- .note-icon {
25
- margin-bottom: -4px;
26
- }
27
- </style>
15
+ <style lang="scss" scoped></style>
@@ -0,0 +1,42 @@
1
+ <template>
2
+ <ui-stack-block :has-children="false">
3
+ <template #stackBlockContent>
4
+ <div class="note-content">
5
+ <ui-icon
6
+ name="warning-outline"
7
+ width="16px"
8
+ heigth="16px"
9
+ class="note-icon"
10
+ color="#FBCE28"
11
+ />
12
+ <p class="note-text">
13
+ {{ localization.common.note }}:
14
+ {{ localization.common.pciDeviceNote }}
15
+ </p>
16
+ </div>
17
+ </template>
18
+ </ui-stack-block>
19
+ </template>
20
+
21
+ <script lang="ts" setup>
22
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
23
+
24
+ const localization = computed<UI_I_Localization>(() => useLocal())
25
+ </script>
26
+
27
+ <style lang="scss" scoped>
28
+ .note-content {
29
+ display: flex;
30
+ gap: 10px;
31
+
32
+ .note-icon {
33
+ min-width: 16px;
34
+ }
35
+
36
+ .note-text {
37
+ font-size: 13px;
38
+ line-height: 15.73px;
39
+ color: #9da6ad;
40
+ }
41
+ }
42
+ </style>
@@ -0,0 +1,30 @@
1
+ <template>
2
+ <atoms-stack-block :has-children="false">
3
+ <template #stackBlockContent>
4
+ <span>
5
+ <atoms-the-icon
6
+ name="warning"
7
+ width="16px"
8
+ heigth="16px"
9
+ class="note-icon"
10
+ />
11
+ </span>
12
+ <span
13
+ >{{ localization.common.note }}:
14
+ {{ localization.common.pciDeviceNote }}</span
15
+ >
16
+ </template>
17
+ </atoms-stack-block>
18
+ </template>
19
+
20
+ <script lang="ts" setup>
21
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
22
+
23
+ const localization = computed<UI_I_Localization>(() => useLocal())
24
+ </script>
25
+
26
+ <style lang="scss" scoped>
27
+ .note-icon {
28
+ margin-bottom: -4px;
29
+ }
30
+ </style>
@@ -1,42 +1,26 @@
1
1
  <template>
2
- <div>
3
- <atoms-stack-block :has-children="false">
4
- <template #stackBlockKey>
5
- {{ localization.common.nvidiaGridGpuProfile }}
6
- </template>
7
- <template #stackBlockContent>
8
- <input
9
- :id="`nvidia-grid-${props.pciDeviceIndex}`"
10
- v-model="profile"
11
- :data-id="`nvidia-grid-${props.pciDeviceIndex}-input`"
12
- type="text"
13
- />
14
- </template>
15
- </atoms-stack-block>
16
- </div>
2
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-nvidia-grid-new
3
+ v-if="isNewView"
4
+ v-model="model"
5
+ :pci-device-index="props.pciDeviceIndex"
6
+ />
7
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-nvidia-grid-old
8
+ v-else
9
+ v-model="model"
10
+ :pci-device-index="props.pciDeviceIndex"
11
+ />
17
12
  </template>
18
13
 
19
14
  <script lang="ts" setup>
20
- import type { UI_I_Localization } from '~/lib/models/interfaces'
15
+
16
+ const model = defineModel<string>({required: true})
21
17
 
22
18
  const props = defineProps<{
23
- modelValue: string
24
19
  pciDeviceIndex: number
25
20
  }>()
26
- const emits = defineEmits<{
27
- (event: 'update:model-value', value: string): void
28
- }>()
29
-
30
- const profile = computed<string>({
31
- get() {
32
- return props.modelValue
33
- },
34
- set(newValue) {
35
- emits('update:model-value', newValue)
36
- },
37
- })
38
21
 
39
- const localization = computed<UI_I_Localization>(() => useLocal())
22
+ const { $store }: any = useNuxtApp()
23
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
40
24
  </script>
41
25
 
42
26
  <style lang="scss" scoped></style>
@@ -0,0 +1,30 @@
1
+ <template>
2
+ <ui-stack-block :has-children="false">
3
+ <template #stackBlockKey>
4
+ {{ localization.common.nvidiaGridGpuProfile }}
5
+ </template>
6
+ <template #stackBlockContent>
7
+ <ui-input
8
+ :id="`nvidia-grid-${props.pciDeviceIndex}`"
9
+ v-model="model"
10
+ :test-id="`nvidia-grid-${props.pciDeviceIndex}-input`"
11
+ type="text"
12
+ size="sm"
13
+ />
14
+ </template>
15
+ </ui-stack-block>
16
+ </template>
17
+
18
+ <script lang="ts" setup>
19
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
20
+
21
+ const model = defineModel<string>({ required: true })
22
+
23
+ const props = defineProps<{
24
+ pciDeviceIndex: number
25
+ }>()
26
+
27
+ const localization = computed<UI_I_Localization>(() => useLocal())
28
+ </script>
29
+
30
+ <style lang="scss" scoped></style>
@@ -0,0 +1,31 @@
1
+ <template>
2
+ <div>
3
+ <atoms-stack-block :has-children="false">
4
+ <template #stackBlockKey>
5
+ {{ localization.common.nvidiaGridGpuProfile }}
6
+ </template>
7
+ <template #stackBlockContent>
8
+ <input
9
+ :id="`nvidia-grid-${props.pciDeviceIndex}`"
10
+ v-model="model"
11
+ :data-id="`nvidia-grid-${props.pciDeviceIndex}-input`"
12
+ type="text"
13
+ />
14
+ </template>
15
+ </atoms-stack-block>
16
+ </div>
17
+ </template>
18
+
19
+ <script lang="ts" setup>
20
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
21
+
22
+ const model = defineModel<string>({required: true})
23
+
24
+ const props = defineProps<{
25
+ pciDeviceIndex: number
26
+ }>()
27
+
28
+ const localization = computed<UI_I_Localization>(() => useLocal())
29
+ </script>
30
+
31
+ <style lang="scss" scoped></style>
@@ -1,52 +1,30 @@
1
1
  <template>
2
- <div>
3
- <atoms-stack-block :has-children="false">
4
- <template #stackBlockContent>
5
- <div class="flex-align-center">
6
- <div
7
- v-for="(item, index) in options"
8
- :key="item"
9
- class="flex-align-center"
10
- >
11
- <input
12
- :id="`pci-device-radio-input-${props.pciDeviceIndex}-${index}`"
13
- v-model="selectedType"
14
- type="radio"
15
- :value="item"
16
- :disabled="!!index"
17
- :data-id="`pci-device-radio-input-${props.pciDeviceIndex}-${index}`"
18
- />
19
- <label
20
- :for="`pci-device-radio-input-${props.pciDeviceIndex}-${index}`"
21
- >{{ item.text }}</label
22
- >
23
- </div>
24
- </div>
25
- </template>
26
- </atoms-stack-block>
27
- </div>
2
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-type-selection-new
3
+ v-if="isNewView"
4
+ v-model="model"
5
+ :options="props.options"
6
+ :pci-device-index="props.pciDeviceIndex"
7
+ />
8
+ <common-vm-actions-common-customize-hardware-virtual-hardware-new-pci-device-type-selection-old
9
+ v-else
10
+ v-model="model"
11
+ :options="props.options"
12
+ :pci-device-index="props.pciDeviceIndex"
13
+ />
28
14
  </template>
29
15
 
30
16
  <script setup lang="ts">
31
17
  import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
32
18
 
19
+ const model = defineModel<UI_I_OptionItem>({required: true})
20
+
33
21
  const props = defineProps<{
34
- modelValue: UI_I_OptionItem
35
22
  options: UI_I_OptionItem[]
36
23
  pciDeviceIndex: number
37
24
  }>()
38
- const emits = defineEmits<{
39
- (event: 'update:model-value', value: UI_I_OptionItem): void
40
- }>()
41
25
 
42
- const selectedType = computed<UI_I_OptionItem>({
43
- get() {
44
- return props.modelValue
45
- },
46
- set(newValue: UI_I_OptionItem) {
47
- emits('update:model-value', newValue)
48
- },
49
- })
26
+ const { $store }: any = useNuxtApp()
27
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
50
28
  </script>
51
29
 
52
30
  <style scoped lang="scss">
@@ -0,0 +1,46 @@
1
+ <template>
2
+ <ui-stack-block :has-children="false">
3
+ <template #stackBlockContent>
4
+ <div class="type-selection-content">
5
+ <div v-for="(item, index) in props.options" :key="item">
6
+ <ui-radio
7
+ :id="`pci-device-radio-input-${props.pciDeviceIndex}-${index}`"
8
+ v-model="modelLocal"
9
+ :value="item.value"
10
+ :label="item.text"
11
+ :disabled="!!index"
12
+ :test-id="`pci-device-radio-input-${props.pciDeviceIndex}-${index}`"
13
+ />
14
+ </div>
15
+ </div>
16
+ </template>
17
+ </ui-stack-block>
18
+ </template>
19
+
20
+ <script setup lang="ts">
21
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
22
+
23
+ const model = defineModel<UI_I_OptionItem>()
24
+
25
+ const props = defineProps<{
26
+ options: UI_I_OptionItem[]
27
+ pciDeviceIndex: number
28
+ }>()
29
+
30
+ const modelLocal = computed<string>({
31
+ get() {
32
+ return model.value?.value || ''
33
+ },
34
+ set(newValue: string) {
35
+ model.value = props.options.find((option) => option.value === newValue)
36
+ },
37
+ })
38
+ </script>
39
+
40
+ <style scoped lang="scss">
41
+ .type-selection-content {
42
+ display: flex;
43
+ flex-direction: column;
44
+ gap: 12px;
45
+ }
46
+ </style>
@@ -0,0 +1,46 @@
1
+ <template>
2
+ <div>
3
+ <atoms-stack-block :has-children="false">
4
+ <template #stackBlockContent>
5
+ <div class="flex-align-center">
6
+ <div
7
+ v-for="(item, index) in props.options"
8
+ :key="item"
9
+ class="flex-align-center"
10
+ >
11
+ <input
12
+ :id="`pci-device-radio-input-${props.pciDeviceIndex}-${index}`"
13
+ v-model="model"
14
+ type="radio"
15
+ :value="item"
16
+ :disabled="!!index"
17
+ :data-id="`pci-device-radio-input-${props.pciDeviceIndex}-${index}`"
18
+ />
19
+ <label
20
+ :for="`pci-device-radio-input-${props.pciDeviceIndex}-${index}`"
21
+ >{{ item.text }}</label
22
+ >
23
+ </div>
24
+ </div>
25
+ </template>
26
+ </atoms-stack-block>
27
+ </div>
28
+ </template>
29
+
30
+ <script setup lang="ts">
31
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
32
+
33
+ const model = defineModel<UI_I_OptionItem>()
34
+
35
+ const props = defineProps<{
36
+ options: UI_I_OptionItem[]
37
+ pciDeviceIndex: number
38
+ }>()
39
+ </script>
40
+
41
+ <style scoped lang="scss">
42
+ input,
43
+ label {
44
+ margin-right: 4px;
45
+ }
46
+ </style>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bfg-common",
3
3
  "private": false,
4
- "version": "1.4.518",
4
+ "version": "1.4.521",
5
5
  "scripts": {
6
6
  "build": "nuxt build",
7
7
  "dev": "nuxt dev --port=3002",