bfg-common 1.5.237 → 1.5.239

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 (147) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/components/atoms/TheIcon3.vue +50 -50
  3. package/components/atoms/perPage/PerPage.vue +58 -58
  4. package/components/atoms/stack/StackBlock.vue +185 -185
  5. package/components/atoms/table/dataGrid/DataGrid.vue +1717 -1717
  6. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  7. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  8. package/components/atoms/table/info/lib/models/interfaces.ts +10 -10
  9. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  10. package/components/common/backup/storage/actions/add/Add.vue +247 -247
  11. package/components/common/backup/storage/actions/add/New.vue +281 -281
  12. package/components/common/backup/storage/actions/add/Old.vue +114 -114
  13. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  14. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +41 -41
  15. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +294 -294
  16. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  17. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +242 -242
  18. package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
  19. package/components/common/browse/BrowseNew.vue +1 -7
  20. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  21. package/components/common/context/lib/models/interfaces.ts +31 -31
  22. package/components/common/diagramMain/DiagramMain.vue +897 -897
  23. package/components/common/diagramMain/Header.vue +214 -214
  24. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  25. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  26. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  27. package/components/common/pages/home/headline/Headline.vue +45 -45
  28. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  29. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  30. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  31. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  32. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  33. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  34. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  35. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  36. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  37. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  38. package/components/common/pages/packages/Packages.vue +208 -208
  39. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  40. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  41. package/components/common/recursionTree/RecursionTree.vue +223 -223
  42. package/components/common/select/button/ButtonDropdown.vue +108 -108
  43. package/components/common/spiceConsole/Drawer.vue +377 -377
  44. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  45. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  46. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  47. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  48. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  49. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  50. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +1 -1
  51. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +7 -7
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +0 -1
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +190 -194
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +237 -242
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/SharesNew.vue +1 -6
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +154 -158
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlugNew.vue +2 -8
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +382 -382
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +0 -1
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileNew.vue +3 -8
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +151 -151
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +73 -73
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +83 -83
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSizeNew.vue +4 -8
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/ProvisioningNew.vue +1 -6
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +1 -6
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +1 -1
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +0 -1
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -36
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +40 -40
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +2 -5
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +81 -85
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +67 -71
  104. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +149 -150
  105. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -146
  106. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +31 -31
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +31 -31
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +128 -128
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  114. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsNew.vue +1 -5
  115. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  116. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  117. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  118. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  119. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  120. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  121. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  122. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  123. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  124. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  125. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  126. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  127. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  128. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  129. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +135 -137
  130. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  131. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  132. package/composables/productNameLocal.ts +30 -30
  133. package/composables/useAppVersion.ts +21 -21
  134. package/package.json +2 -2
  135. package/plugins/cron.ts +75 -0
  136. package/plugins/date.ts +233 -233
  137. package/plugins/helpers.ts +18 -0
  138. package/plugins/number.ts +18 -0
  139. package/plugins/panelStates.ts +70 -0
  140. package/plugins/text.ts +59 -48
  141. package/plugins/time.ts +17 -0
  142. package/public/spice-console/lib/images/bitmap.js +203 -203
  143. package/public/spice-console/network/spicechannel.js +387 -387
  144. package/store/main/mutations.ts +7 -7
  145. package/store/main/state.ts +7 -7
  146. package/store/tasks/mappers/recentTasks.ts +64 -64
  147. /package/{components/common/split/horizontal/lib/models → lib/models/plugins/panelStates}/interfaces.ts +0 -0
@@ -1,242 +1,237 @@
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="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
- }
197
-
198
- #passthrough-help-icon,
199
- #host-model-help-icon {
200
- margin-left: 8px;
201
- }
202
-
203
- .passthrough-help-icon,
204
- .host-model-help-icon {
205
- color: #9da6ad; // for light and dark
206
-
207
- &:hover {
208
- color: var(--cpu-model-help-icon-color);
209
- }
210
- &.active {
211
- color: #008fd6;
212
- }
213
- &.disabled {
214
- color: #bdc3c7;
215
- pointer-events: none;
216
- }
217
- }
218
- .help-content {
219
- padding: 16px;
220
-
221
- .headline {
222
- display: flex;
223
- align-items: center;
224
- gap: 8px;
225
- margin-bottom: 12px;
226
-
227
- .help-title {
228
- flex: 1;
229
- font-size: 14px;
230
- font-weight: 500;
231
- line-height: 16.94px;
232
- color: #4d5d69;
233
- }
234
- }
235
-
236
- .help-text {
237
- font-size: 13px;
238
- line-height: 15.73px;
239
- color: #4d5d69;
240
- }
241
- }
242
- </style>
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>