bfg-common 1.5.239 → 1.5.240

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 (151) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/scss/common/theme.scss +6 -0
  3. package/components/atoms/TheIcon3.vue +50 -50
  4. package/components/atoms/perPage/PerPage.vue +58 -58
  5. package/components/atoms/stack/StackBlock.vue +185 -185
  6. package/components/atoms/table/dataGrid/DataGrid.vue +1717 -1717
  7. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  8. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  9. package/components/atoms/table/info/lib/models/interfaces.ts +10 -10
  10. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  11. package/components/common/backup/storage/actions/add/Add.vue +247 -247
  12. package/components/common/backup/storage/actions/add/New.vue +281 -281
  13. package/components/common/backup/storage/actions/add/Old.vue +114 -114
  14. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  15. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +41 -41
  16. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +294 -294
  17. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  18. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +242 -242
  19. package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
  20. package/components/common/browse/BrowseNew.vue +8 -2
  21. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  22. package/components/common/context/lib/models/interfaces.ts +31 -31
  23. package/components/common/diagramMain/DiagramMain.vue +897 -897
  24. package/components/common/diagramMain/Header.vue +214 -214
  25. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  26. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  27. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  28. package/components/common/pages/home/headline/Headline.vue +45 -45
  29. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  30. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  31. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  32. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  33. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  34. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  35. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  36. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  37. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  38. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  39. package/components/common/pages/packages/Packages.vue +208 -208
  40. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  41. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  42. package/components/common/recursionTree/RecursionTree.vue +223 -223
  43. package/components/common/select/button/ButtonDropdown.vue +108 -108
  44. package/components/common/spiceConsole/Drawer.vue +377 -377
  45. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  46. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  47. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  48. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  49. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  50. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  51. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +5 -2
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +7 -7
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +2 -2
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +4 -0
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +194 -190
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +246 -237
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/SharesNew.vue +6 -1
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +158 -154
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlugNew.vue +8 -2
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +382 -382
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +4 -0
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileNew.vue +8 -3
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +151 -151
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +73 -73
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +83 -83
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/StorageModalNew.vue +1 -0
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSizeNew.vue +8 -4
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/ProvisioningNew.vue +6 -1
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +6 -1
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +1 -1
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +4 -3
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +1 -0
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +1 -0
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +36 -30
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +40 -40
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/ReservationNew.vue +5 -2
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +5 -2
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +85 -81
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +71 -67
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +150 -149
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +146 -140
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +31 -31
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +31 -31
  114. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  115. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  116. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +128 -128
  117. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  118. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  120. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsNew.vue +5 -1
  121. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  122. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  123. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  124. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  125. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  126. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  127. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  128. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  129. package/components/common/vm/actions/common/select/storage/Storage.vue +2 -0
  130. package/components/common/vm/actions/common/select/storage/new/New.vue +6 -1
  131. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +2 -1
  132. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  133. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  134. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  135. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  136. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  137. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  138. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +135 -135
  139. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  140. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  141. package/composables/productNameLocal.ts +30 -30
  142. package/composables/useAppVersion.ts +21 -21
  143. package/package.json +2 -2
  144. package/plugins/date.ts +233 -233
  145. package/plugins/panelStates.ts +70 -70
  146. package/plugins/text.ts +59 -59
  147. package/public/spice-console/lib/images/bitmap.js +203 -203
  148. package/public/spice-console/network/spicechannel.js +387 -387
  149. package/store/main/mutations.ts +7 -7
  150. package/store/main/state.ts +7 -7
  151. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,237 +1,246 @@
1
- <template>
2
- <ui-stack-block :has-children="false">
3
- <template #stackBlockKey>
4
- {{ localization.common.cpuModel }}
5
- </template>
6
- <template #stackBlockContent>
7
- <div class="cpu-model-content">
8
- <ui-select
9
- v-model="cpuModel"
10
- :items="props.cpuModelOptions"
11
- :disabled="props.disabled"
12
- :error-text="props.errorText"
13
- test-id="vm-wizard-cpu-model-field"
14
- size="sm"
15
- @change="onChangeCpuModel"
16
- />
17
-
18
- <div class="passthrough-host-cpu-wrap flex-align-center">
19
- <ui-checkbox
20
- v-model="passthroughHostCpu"
21
- :disabled="props.disabled"
22
- :label-text="localization.common.passthroughHostCpu"
23
- test-id="passthrough-host-cpu"
24
- @change="emits('change-passthrough-host-cpu', $event)"
25
- />
26
- <div id="passthrough-help-icon" class="flex-align-center relative">
27
- <ui-icon
28
- width="16"
29
- height="16"
30
- name="info"
31
- data-id="show-passthrough-help-icon"
32
- :class="[
33
- 'passthrough-help-icon cursor-pointer disabled',
34
- { active: isShowPassthroughHost },
35
- ]"
36
- @click.stop="isShowPassthroughHost = !isShowPassthroughHost"
37
- />
38
- <Teleport to="body">
39
- <ui-dropdown
40
- :show="isShowPassthroughHost"
41
- :items="[]"
42
- elem-id="passthrough-help-icon"
43
- test-id=""
44
- width="480px"
45
- left
46
- @hide="isShowPassthroughHost = false"
47
- >
48
- <template #content>
49
- <div class="help-content">
50
- <div class="headline">
51
- <ui-icon name="info-2" width="16" height="16" />
52
- <h3 class="help-title">
53
- {{ localization.mainNavigation.help }}
54
- </h3>
55
- <ui-icon
56
- name="close"
57
- width="16"
58
- height="16"
59
- class="cursor-pointer"
60
- @click="isShowPassthroughHost = false"
61
- />
62
- </div>
63
-
64
- <p class="help-text">
65
- Lorem ipsum dolor sit amet, consectetur adipisicing elit.
66
- A cum eius expedita, fuga mollitia perferendis quod soluta
67
- vel? Dolor, illo, nam? A consequatur, consequuntur eos
68
- impedit iusto labore sunt tempora!
69
- </p>
70
- </div>
71
- </template>
72
- </ui-dropdown>
73
- </Teleport>
74
- </div>
75
- </div>
76
- <div class="flex-align-center">
77
- <ui-checkbox
78
- v-model="hostModelCpu"
79
- :disabled="props.disabled"
80
- :label-text="localization.common.hostModelCpu"
81
- test-id="host-model-cpu"
82
- @change="emits('change-host-model-cpu', $event)"
83
- />
84
- <div id="host-model-help-icon" class="flex-align-center relative">
85
- <ui-icon
86
- width="16"
87
- height="16"
88
- name="info"
89
- data-id="show-host-model-help-icon"
90
- :class="[
91
- 'host-model-help-icon cursor-pointer disabled',
92
- { active: isShowHostModel },
93
- ]"
94
- @click.stop="isShowHostModel = !isShowHostModel"
95
- />
96
- <Teleport to="body">
97
- <ui-dropdown
98
- :show="isShowHostModel"
99
- :items="[]"
100
- elem-id="host-model-help-icon"
101
- test-id=""
102
- width="480px"
103
- left
104
- @hide="isShowHostModel = false"
105
- >
106
- <template #content>
107
- <div class="help-content">
108
- <div class="headline">
109
- <ui-icon name="info-2" width="16" height="16" />
110
- <h3 class="help-title">
111
- {{ localization.mainNavigation.help }}
112
- </h3>
113
- <ui-icon
114
- name="close"
115
- width="16"
116
- height="16"
117
- class="cursor-pointer"
118
- @click="isShowHostModel = false"
119
- />
120
- </div>
121
-
122
- <p class="help-text">
123
- Lorem ipsum dolor sit amet, consectetur adipisicing elit.
124
- A cum eius expedita, fuga mollitia perferendis quod soluta
125
- vel? Dolor, illo, nam? A consequatur, consequuntur eos
126
- impedit iusto labore sunt tempora!
127
- </p>
128
- </div>
129
- </template>
130
- </ui-dropdown>
131
- </Teleport>
132
- </div>
133
- </div>
134
- </div>
135
- </template>
136
- </ui-stack-block>
137
- </template>
138
-
139
- <script setup lang="ts">
140
- import type { UI_T_SelectedValue } from '~/node_modules/bfg-uikit/components/ui/select/models/types'
141
- import type {
142
- UI_I_Localization,
143
- UI_I_HTMLSelectElement,
144
- } from '~/lib/models/interfaces'
145
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
146
-
147
- const cpuModel = defineModel<string>('cpuModel')
148
- const passthroughHostCpu = defineModel<boolean>('passthroughHostCpu')
149
- const hostModelCpu = defineModel<boolean>('hostModelCpu')
150
-
151
- const props = defineProps<{
152
- cpuModelOptions: UI_I_OptionItem[]
153
- disabled: boolean
154
- errorText: string
155
- }>()
156
- const emits = defineEmits<{
157
- (event: 'change-cpu-model', value: UI_I_HTMLSelectElement): void
158
- (event: 'change-passthrough-host-cpu', value: Event): void
159
- (event: 'change-host-model-cpu', value: Event): void
160
- (event: 'remove-error'): void
161
- }>()
162
-
163
- const localization = computed<UI_I_Localization>(() => useLocal())
164
-
165
- const isShowPassthroughHost = ref<boolean>(false)
166
- const isShowHostModel = ref<boolean>(false)
167
-
168
- const onChangeCpuModel = (data: UI_T_SelectedValue): void => {
169
- emits('change-cpu-model', { target: { value: data } })
170
- }
171
- </script>
172
-
173
- <style>
174
- :root {
175
- --cpu-model-help-icon-color: #4d5d69;
176
- }
177
- :root.dark-theme {
178
- --cpu-model-help-icon-color: #e9eaec;
179
- }
180
- </style>
181
- <style scoped lang="scss">
182
- .cpu-model-content {
183
- display: flex;
184
- flex-direction: column;
185
- width: 224px;
186
- gap: 12px;
187
-
188
- :deep(.ui-main-select-toggle) {
189
- width: 100%;
190
- }
191
- }
192
-
193
- #passthrough-help-icon,
194
- #host-model-help-icon {
195
- margin-left: 8px;
196
- }
197
-
198
- .passthrough-help-icon,
199
- .host-model-help-icon {
200
- color: #9da6ad; // for light and dark
201
-
202
- &:hover {
203
- color: var(--cpu-model-help-icon-color);
204
- }
205
- &.active {
206
- color: #008fd6;
207
- }
208
- &.disabled {
209
- color: #bdc3c7;
210
- pointer-events: none;
211
- }
212
- }
213
- .help-content {
214
- padding: 16px;
215
-
216
- .headline {
217
- display: flex;
218
- align-items: center;
219
- gap: 8px;
220
- margin-bottom: 12px;
221
-
222
- .help-title {
223
- flex: 1;
224
- font-size: 14px;
225
- font-weight: 500;
226
- line-height: 16.94px;
227
- color: #4d5d69;
228
- }
229
- }
230
-
231
- .help-text {
232
- font-size: 13px;
233
- line-height: 15.73px;
234
- color: #4d5d69;
235
- }
236
- }
237
- </style>
1
+ <template>
2
+ <ui-stack-block :has-children="false">
3
+ <template #stackBlockKey>
4
+ <span class="limit-title">
5
+ {{ localization.common.cpuModel }}
6
+ </span>
7
+ </template>
8
+ <template #stackBlockContent>
9
+ <div class="cpu-model-content">
10
+ <ui-select
11
+ v-model="cpuModel"
12
+ :items="props.cpuModelOptions"
13
+ :disabled="props.disabled"
14
+ :error-text="props.errorText"
15
+ test-id="vm-wizard-cpu-model-field"
16
+ size="sm"
17
+ @change="onChangeCpuModel"
18
+ />
19
+
20
+ <div class="passthrough-host-cpu-wrap flex-align-center">
21
+ <ui-checkbox
22
+ v-model="passthroughHostCpu"
23
+ :disabled="props.disabled"
24
+ :label-text="localization.common.passthroughHostCpu"
25
+ test-id="passthrough-host-cpu"
26
+ @change="emits('change-passthrough-host-cpu', $event)"
27
+ />
28
+ <div id="passthrough-help-icon" class="flex-align-center relative">
29
+ <ui-icon
30
+ width="16"
31
+ height="16"
32
+ name="info"
33
+ data-id="show-passthrough-help-icon"
34
+ :class="[
35
+ 'passthrough-help-icon cursor-pointer disabled',
36
+ { active: isShowPassthroughHost },
37
+ ]"
38
+ @click.stop="isShowPassthroughHost = !isShowPassthroughHost"
39
+ />
40
+ <Teleport to="body">
41
+ <ui-dropdown
42
+ :show="isShowPassthroughHost"
43
+ :items="[]"
44
+ elem-id="passthrough-help-icon"
45
+ test-id=""
46
+ width="480px"
47
+ left
48
+ @hide="isShowPassthroughHost = false"
49
+ >
50
+ <template #content>
51
+ <div class="help-content">
52
+ <div class="headline">
53
+ <ui-icon name="info-2" width="16" height="16" />
54
+ <h3 class="help-title">
55
+ {{ localization.mainNavigation.help }}
56
+ </h3>
57
+ <ui-icon
58
+ name="close"
59
+ width="16"
60
+ height="16"
61
+ class="cursor-pointer"
62
+ @click="isShowPassthroughHost = false"
63
+ />
64
+ </div>
65
+
66
+ <p class="help-text">
67
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit.
68
+ A cum eius expedita, fuga mollitia perferendis quod soluta
69
+ vel? Dolor, illo, nam? A consequatur, consequuntur eos
70
+ impedit iusto labore sunt tempora!
71
+ </p>
72
+ </div>
73
+ </template>
74
+ </ui-dropdown>
75
+ </Teleport>
76
+ </div>
77
+ </div>
78
+ <div class="host-model-cpu-wrap flex-align-center">
79
+ <ui-checkbox
80
+ v-model="hostModelCpu"
81
+ :disabled="props.disabled"
82
+ :label-text="localization.common.hostModelCpu"
83
+ test-id="host-model-cpu"
84
+ @change="emits('change-host-model-cpu', $event)"
85
+ />
86
+ <div id="host-model-help-icon" class="flex-align-center relative">
87
+ <ui-icon
88
+ width="16"
89
+ height="16"
90
+ name="info"
91
+ data-id="show-host-model-help-icon"
92
+ :class="[
93
+ 'host-model-help-icon cursor-pointer disabled',
94
+ { active: isShowHostModel },
95
+ ]"
96
+ @click.stop="isShowHostModel = !isShowHostModel"
97
+ />
98
+ <Teleport to="body">
99
+ <ui-dropdown
100
+ :show="isShowHostModel"
101
+ :items="[]"
102
+ elem-id="host-model-help-icon"
103
+ test-id=""
104
+ width="480px"
105
+ left
106
+ @hide="isShowHostModel = false"
107
+ >
108
+ <template #content>
109
+ <div class="help-content">
110
+ <div class="headline">
111
+ <ui-icon name="info-2" width="16" height="16" />
112
+ <h3 class="help-title">
113
+ {{ localization.mainNavigation.help }}
114
+ </h3>
115
+ <ui-icon
116
+ name="close"
117
+ width="16"
118
+ height="16"
119
+ class="cursor-pointer"
120
+ @click="isShowHostModel = false"
121
+ />
122
+ </div>
123
+
124
+ <p class="help-text">
125
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit.
126
+ A cum eius expedita, fuga mollitia perferendis quod soluta
127
+ vel? Dolor, illo, nam? A consequatur, consequuntur eos
128
+ impedit iusto labore sunt tempora!
129
+ </p>
130
+ </div>
131
+ </template>
132
+ </ui-dropdown>
133
+ </Teleport>
134
+ </div>
135
+ </div>
136
+ </div>
137
+ </template>
138
+ </ui-stack-block>
139
+ </template>
140
+
141
+ <script setup lang="ts">
142
+ import type { UI_T_SelectedValue } from '~/node_modules/bfg-uikit/components/ui/select/models/types'
143
+ import type {
144
+ UI_I_Localization,
145
+ UI_I_HTMLSelectElement,
146
+ } from '~/lib/models/interfaces'
147
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
148
+
149
+ const cpuModel = defineModel<string>('cpuModel')
150
+ const passthroughHostCpu = defineModel<boolean>('passthroughHostCpu')
151
+ const hostModelCpu = defineModel<boolean>('hostModelCpu')
152
+
153
+ const props = defineProps<{
154
+ cpuModelOptions: UI_I_OptionItem[]
155
+ disabled: boolean
156
+ errorText: string
157
+ }>()
158
+ const emits = defineEmits<{
159
+ (event: 'change-cpu-model', value: UI_I_HTMLSelectElement): void
160
+ (event: 'change-passthrough-host-cpu', value: Event): void
161
+ (event: 'change-host-model-cpu', value: Event): void
162
+ (event: 'remove-error'): void
163
+ }>()
164
+
165
+ const localization = computed<UI_I_Localization>(() => useLocal())
166
+
167
+ const isShowPassthroughHost = ref<boolean>(false)
168
+ const isShowHostModel = ref<boolean>(false)
169
+
170
+ const onChangeCpuModel = (data: UI_T_SelectedValue): void => {
171
+ emits('change-cpu-model', { target: { value: data } })
172
+ }
173
+ </script>
174
+
175
+ <style>
176
+ :root {
177
+ --cpu-model-help-icon-color: #4d5d69;
178
+ }
179
+ :root.dark-theme {
180
+ --cpu-model-help-icon-color: #e9eaec;
181
+ }
182
+ </style>
183
+ <style scoped lang="scss">
184
+ .limit-title {
185
+ margin-right: 12px;
186
+ }
187
+ .cpu-model-content {
188
+ display: flex;
189
+ flex-direction: column;
190
+ width: 224px;
191
+ gap: 12px;
192
+
193
+ :deep(.ui-main-select-toggle) {
194
+ width: 100%;
195
+ }
196
+ .passthrough-host-cpu-wrap :deep(.ui-checkbox-label),
197
+ .host-model-cpu-wrap :deep(.ui-checkbox-label) {
198
+ min-height: unset !important;
199
+ }
200
+ }
201
+
202
+ #passthrough-help-icon,
203
+ #host-model-help-icon {
204
+ margin-left: 8px;
205
+ }
206
+
207
+ .passthrough-help-icon,
208
+ .host-model-help-icon {
209
+ color: #9da6ad; // for light and dark
210
+
211
+ &:hover {
212
+ color: var(--cpu-model-help-icon-color);
213
+ }
214
+ &.active {
215
+ color: #008fd6;
216
+ }
217
+ &.disabled {
218
+ color: #bdc3c7;
219
+ pointer-events: none;
220
+ }
221
+ }
222
+ .help-content {
223
+ padding: 16px;
224
+
225
+ .headline {
226
+ display: flex;
227
+ align-items: center;
228
+ gap: 8px;
229
+ margin-bottom: 12px;
230
+
231
+ .help-title {
232
+ flex: 1;
233
+ font-size: 14px;
234
+ font-weight: 500;
235
+ line-height: 16.94px;
236
+ color: #4d5d69;
237
+ }
238
+ }
239
+
240
+ .help-text {
241
+ font-size: 13px;
242
+ line-height: 15.73px;
243
+ color: #4d5d69;
244
+ }
245
+ }
246
+ </style>