bfg-common 1.5.64 → 1.5.66

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 (44) hide show
  1. package/assets/localization/local_be.json +11 -2
  2. package/assets/localization/local_en.json +11 -2
  3. package/assets/localization/local_hy.json +11 -2
  4. package/assets/localization/local_kk.json +11 -2
  5. package/assets/localization/local_ru.json +11 -2
  6. package/assets/localization/local_zh.json +11 -2
  7. package/components/common/accordion/Recursion.vue +6 -6
  8. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/lib/utils/optionsActions.ts +5 -1
  9. package/components/common/monitor/advanced/tools/lib/config/advancedToolbar.ts +21 -5
  10. package/components/common/vm/actions/add/Add.vue +205 -194
  11. package/components/common/vm/actions/add/New.vue +485 -0
  12. package/components/common/vm/actions/add/Old.vue +371 -0
  13. package/components/common/vm/actions/add/{FolderTreeView.vue → folderTreeView/FolderTreeView.vue} +16 -27
  14. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -0
  15. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -0
  16. package/components/common/vm/actions/add/lib/config/steps.ts +19 -3
  17. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +29 -37
  18. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +5 -5
  19. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +3 -3
  20. package/components/common/vm/actions/common/select/compatibility/Compatibility.vue +21 -83
  21. package/components/common/vm/actions/common/select/compatibility/New.vue +165 -0
  22. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -0
  23. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +45 -75
  24. package/components/common/vm/actions/common/select/computeResource/New.vue +141 -0
  25. package/components/common/vm/actions/common/select/computeResource/Old.vue +99 -0
  26. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -0
  27. package/components/common/vm/actions/common/select/computeResource/treeView/Old.vue +48 -0
  28. package/components/common/vm/actions/common/select/computeResource/{TreeView.vue → treeView/TreeView.vue} +28 -34
  29. package/components/common/vm/actions/common/select/createType/CreateType.vue +15 -51
  30. package/components/common/vm/actions/common/select/createType/New.vue +84 -0
  31. package/components/common/vm/actions/common/select/createType/Old.vue +70 -0
  32. package/components/common/vm/actions/common/select/createType/lib/config/items.ts +24 -4
  33. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -0
  34. package/components/common/vm/actions/common/select/name/Name.vue +24 -93
  35. package/components/common/vm/actions/common/select/name/New.vue +246 -0
  36. package/components/common/vm/actions/common/select/name/Old.vue +119 -0
  37. package/components/common/vm/actions/common/select/storage/new/New.vue +116 -86
  38. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +156 -3
  39. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +6 -0
  40. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -0
  41. package/components/common/vm/actions/common/select/template/Template.vue +2 -3
  42. package/components/common/vm/actions/common/select/template/TemplateTreeView.vue +1 -1
  43. package/package.json +1 -1
  44. /package/components/common/vm/actions/common/select/storage/{StorageOld.vue → Old.vue} +0 -0
@@ -1,14 +1,16 @@
1
1
  <template>
2
- <div class="select-create-type">
3
- <atoms-list-select-list
4
- v-model="model"
5
- class="select"
6
- :items="items"
7
- />
8
- <p class="description">
9
- {{ description }}
10
- </p>
11
- </div>
2
+ <common-vm-actions-common-select-create-type-new
3
+ v-if="isNewView"
4
+ v-model="model"
5
+ :items="items"
6
+ :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"
7
+ />
8
+ <common-vm-actions-common-select-create-type-old
9
+ v-else
10
+ v-model="model"
11
+ :items="items"
12
+ :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"
13
+ />
12
14
  </template>
13
15
 
14
16
  <script setup lang="ts">
@@ -22,53 +24,15 @@ const props = defineProps<{
22
24
  importFromVMWarevSphere: string
23
25
  }>()
24
26
 
27
+ const { $store }: any = useNuxtApp()
28
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
29
+
25
30
  const localization = computed<UI_I_Localization>(() => useLocal())
26
31
 
27
32
  const items = computed<UI_I_OptionItem[]>(() =>
28
33
  itemsFunc(localization.value, props.importFromVMWarevSphere)
29
34
  )
30
- const description = computed<string>(() => {
31
- let result = ''
32
- switch (model.value) {
33
- case '0':
34
- result = localization.value.common.newVmCreateDescription
35
- break
36
- case '1':
37
- result = localization.value.vmWizard.deployFromTemplateDescription
38
- break
39
- }
40
- return result
41
- })
42
35
  </script>
43
36
 
44
37
  <style scoped lang="scss">
45
- .select-create-type {
46
- display: flex;
47
- padding-top: 12px;
48
-
49
- .description {
50
- color: #333333;
51
- font-size: 13px;
52
- }
53
-
54
- .description,
55
- .select {
56
- flex: 1 1 100%;
57
- margin-right: 5px;
58
- }
59
-
60
- :deep(select) {
61
- background-color: transparent;
62
- border-color: var(--type-list-border-color);
63
- }
64
- }
65
- </style>
66
-
67
- <style>
68
- :root {
69
- --type-list-border-color: #ccc;
70
- }
71
- :root.dark-theme {
72
- --type-list-border-color: #000;
73
- }
74
38
  </style>
@@ -0,0 +1,84 @@
1
+ <template>
2
+ <div class="select-create-type">
3
+ <div
4
+ v-for="item in props.items"
5
+ v-development="item.disabled"
6
+ :key="item.value"
7
+ :class="[
8
+ 'select-create-type-block',
9
+ { selected: item.value === model, disabled: item.disabled },
10
+ ]"
11
+ @click="model = item.value"
12
+ >
13
+ <ui-radio
14
+ v-model="model"
15
+ :label="item.text"
16
+ :value="item.value"
17
+ :test-id="item.testId"
18
+ :disabled="item.disabled"
19
+ size="md"
20
+ />
21
+
22
+ <p class="description">
23
+ {{ item.description }}
24
+ </p>
25
+ </div>
26
+ </div>
27
+ </template>
28
+
29
+ <script setup lang="ts">
30
+ import type { UI_I_VmCreateTypeOption } from '~/components/common/vm/actions/common/select/createType/lib/models/interfaces'
31
+
32
+ const model = defineModel<string>()
33
+
34
+ const props = defineProps<{
35
+ items: UI_I_VmCreateTypeOption[]
36
+ }>()
37
+ </script>
38
+
39
+ <style>
40
+ :root {
41
+ --select-create-type-block-bg-color: #ffffff;
42
+ --select-create-type-block-border-color: #e9ebed;
43
+ --select-create-type-block-border-hover-color: #d3d6da;
44
+ --select-create-type-block-selected-bg-color: #f0f8fd;
45
+ --select-create-type-block-selected-border-color: #008fd6;
46
+ }
47
+ :root.dark-theme {
48
+ --select-create-type-block-bg-color: transparent;
49
+ --select-create-type-block-border-color: #e9ebed1f;
50
+ --select-create-type-block-border-hover-color: #e9ebed3d;
51
+ --select-create-type-block-selected-bg-color: #2ba2de14;
52
+ --select-create-type-block-selected-border-color: #2ba2de;
53
+ }
54
+ </style>
55
+ <style scoped lang="scss">
56
+ .select-create-type-block {
57
+ background-color: var(--select-create-type-block-bg-color);
58
+ border: 1px solid var(--select-create-type-block-border-color);
59
+ padding: 12px;
60
+ border-radius: 8px;
61
+
62
+ &:not(.selected):not(.disabled) {
63
+ cursor: pointer;
64
+ &:hover {
65
+ border-color: var(--select-create-type-block-border-hover-color);
66
+ }
67
+ }
68
+
69
+ &.selected {
70
+ background-color: var(--select-create-type-block-selected-bg-color);
71
+ border: 1.5px solid var(--select-create-type-block-selected-border-color);
72
+ }
73
+
74
+ &:not(:last-child) {
75
+ margin-bottom: 12px;
76
+ }
77
+
78
+ .description {
79
+ font-size: 13px;
80
+ color: #9da6ad;
81
+ margin: 8px 0 0 28px;
82
+ }
83
+ }
84
+ </style>
@@ -0,0 +1,70 @@
1
+ <template>
2
+ <div class="select-create-type">
3
+ <atoms-list-select-list
4
+ v-model="model"
5
+ class="select"
6
+ :items="props.items"
7
+ />
8
+ <p class="description">
9
+ {{ description }}
10
+ </p>
11
+ </div>
12
+ </template>
13
+
14
+ <script setup lang="ts">
15
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
16
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
17
+
18
+ const model = defineModel<string>()
19
+
20
+ const props = defineProps<{
21
+ items: UI_I_OptionItem[]
22
+ }>()
23
+
24
+ const localization = computed<UI_I_Localization>(() => useLocal())
25
+
26
+ const description = computed<string>(() => {
27
+ let result = ''
28
+ switch (model.value) {
29
+ case '0':
30
+ result = localization.value.common.newVmCreateDescription
31
+ break
32
+ case '1':
33
+ result = localization.value.vmWizard.deployFromTemplateDescription
34
+ break
35
+ }
36
+ return result
37
+ })
38
+ </script>
39
+
40
+ <style scoped lang="scss">
41
+ .select-create-type {
42
+ display: flex;
43
+ padding-top: 12px;
44
+
45
+ .description {
46
+ color: #333333;
47
+ font-size: 13px;
48
+ }
49
+
50
+ .description,
51
+ .select {
52
+ flex: 1 1 100%;
53
+ margin-right: 5px;
54
+ }
55
+
56
+ :deep(select) {
57
+ background-color: transparent;
58
+ border-color: var(--type-list-border-color);
59
+ }
60
+ }
61
+ </style>
62
+
63
+ <style>
64
+ :root {
65
+ --type-list-border-color: #ccc;
66
+ }
67
+ :root.dark-theme {
68
+ --type-list-border-color: #000;
69
+ }
70
+ </style>
@@ -1,27 +1,47 @@
1
1
  import type { UI_I_Localization } from '~/lib/models/interfaces'
2
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
2
+ import type {
3
+ UI_I_VmCreateTypeOption
4
+ } from "~/components/common/vm/actions/common/select/createType/lib/models/interfaces";
3
5
 
4
6
  export const itemsFunc = (
5
7
  localization: UI_I_Localization,
6
8
  importFromVMWarevSphere: string
7
- ): UI_I_OptionItem[] => {
9
+ ): UI_I_VmCreateTypeOption[] => {
8
10
  return [
9
11
  {
10
12
  text: localization.common.createNewVirtualMachine,
11
13
  value: '0',
12
14
  disabled: false,
15
+ testId: 'create-new-vm',
16
+ description: localization.common.newVmCreateDescription
17
+ },
18
+ {
19
+ text: localization.vmWizard.deployFromTemplate,
20
+ value: '1',
21
+ disabled: false,
22
+ testId: 'deploy-from-template',
23
+ description: localization.vmWizard.deployFromTemplateDescription
24
+ },
25
+ {
26
+ text: localization.common.deployVmFromOVF,
27
+ value: '2',
28
+ disabled: true,
29
+ testId: 'deploy-from-ovf',
30
+ description: ''
13
31
  },
14
- { text: localization.vmWizard.deployFromTemplate, value: '1', disabled: false },
15
- { text: localization.common.deployVmFromOVF, value: '2', disabled: true },
16
32
  {
17
33
  text: importFromVMWarevSphere,
18
34
  value: '3',
19
35
  disabled: true,
36
+ testId: 'import-from-vmware-vsphere',
37
+ description: ''
20
38
  },
21
39
  {
22
40
  text: localization.common.importFromGorizontVS,
23
41
  value: '4',
24
42
  disabled: true,
43
+ testId: 'import-from-gorizont-vs',
44
+ description: ''
25
45
  },
26
46
  ]
27
47
  }
@@ -0,0 +1,5 @@
1
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
2
+
3
+ export interface UI_I_VmCreateTypeOption extends UI_I_OptionItem {
4
+ description: string
5
+ }
@@ -1,59 +1,24 @@
1
1
  <template>
2
- <div class="select-name">
3
- <atoms-alert
4
- v-show="errors.length"
5
- status="alert-danger"
6
- :items="errors"
7
- test-id="name-alert"
8
- @remove="onRemoveValidationErrors"
9
- />
10
-
11
- <form id="virtual-machine-form" @submit.prevent>
12
- <label for="virtual-machine-name"
13
- >{{ localization.common.virtualMachineName }}:</label
14
- >
15
- <input
16
- id="virtual-machine-name"
17
- v-model.trim="vmName"
18
- data-id="virtual-machine-name-input"
19
- type="text"
20
- maxlength="54"
21
- />
22
- <div id="vm-name-help-icon" class="content-signpost relative">
23
- <atoms-the-icon
24
- data-id="show-vm-name-help-icon"
25
- class="icon-show-help"
26
- fill="#0072a3"
27
- width="24px"
28
- height="24px"
29
- name="info-circle"
30
- @click="isShowHelp = !isShowHelp"
31
- />
32
- <atoms-tooltip-signpost
33
- v-if="isShowHelp"
34
- test-id="help-signpost"
35
- elem-id="vm-name-help-icon"
36
- @hide="isShowHelp = false"
37
- >
38
- <p>
39
- {{ localization.common.vmNameValidationDescription }}
40
- </p>
41
- </atoms-tooltip-signpost>
42
- </div>
43
- </form>
44
-
45
- <template v-if="props.project === 'sphere'">
46
- <p class="new-vm-name-and-folder-instructions mt-1">
47
- {{ localization.common.selectLocationVirtualMachine }}
48
- </p>
49
- <div class="tree-view-wrap">
50
- <common-vm-actions-add-folder-tree-view
51
- :data-center="props.dataCenter"
52
- @select-node="onSelectNode"
53
- />
54
- </div>
55
- </template>
56
- </div>
2
+ <common-vm-actions-common-select-name-new
3
+ v-if="isNewView"
4
+ v-model:vm-name="vmName"
5
+ v-model:is-show-help="isShowHelp"
6
+ :project="props.project"
7
+ :errors="errors"
8
+ :data-center="props.dataCenter"
9
+ @remove-validation-errors="onRemoveValidationErrors"
10
+ @select-node="onSelectNode"
11
+ />
12
+ <common-vm-actions-common-select-name-old
13
+ v-else
14
+ v-model:vm-name="vmName"
15
+ v-model:is-show-help="isShowHelp"
16
+ :project="props.project"
17
+ :errors="errors"
18
+ :data-center="props.dataCenter"
19
+ @remove-validation-errors="onRemoveValidationErrors"
20
+ @select-node="onSelectNode"
21
+ />
57
22
  </template>
58
23
 
59
24
  <script setup lang="ts">
@@ -77,6 +42,9 @@ const emits = defineEmits<{
77
42
  ): void
78
43
  }>()
79
44
 
45
+ const { $store }: any = useNuxtApp()
46
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
47
+
80
48
  const localization = computed<UI_I_Localization>(() => useLocal())
81
49
 
82
50
  const vmName = ref<string>('')
@@ -119,7 +87,7 @@ const submit = async (cb: Function): Promise<void> => {
119
87
  // selectedNode.value?.type === 'folder' &&
120
88
  // !isDatacenterFolder
121
89
  // TODO рефакторинг, здесь сейчас проверяем является ли выбранный элемент датацентром или папкой(вм)
122
- ![3, 7].includes(selectedNode.value?.kind)
90
+ ![3, 7].includes(selectedNode.value?.kind)
123
91
  ) {
124
92
  showValidationErrors([
125
93
  localization.value.common.enterValidLocationVirtualMachine,
@@ -196,41 +164,4 @@ const isShowHelp = ref<boolean>(false)
196
164
  </script>
197
165
 
198
166
  <style scoped lang="scss">
199
- .select-name {
200
- form {
201
- display: flex;
202
- align-items: center;
203
- padding-top: 20px;
204
-
205
- label {
206
- width: 216px;
207
- }
208
- input {
209
- width: 345px;
210
- }
211
- }
212
-
213
- .tree-view-wrap {
214
- position: relative;
215
- border: 1px solid #000;
216
- padding: 5px;
217
- max-height: 300px;
218
- min-height: 200px;
219
- overflow: auto;
220
- margin-bottom: 10px;
221
- }
222
- }
223
- .content-signpost {
224
- .icon-show-help {
225
- cursor: pointer;
226
- }
227
-
228
- .help-title {
229
- font-size: 22px;
230
- margin-bottom: 24px;
231
- }
232
- .signpost {
233
- max-width: 360px;
234
- }
235
- }
236
167
  </style>
@@ -0,0 +1,246 @@
1
+ <template>
2
+ <div class="select-name">
3
+ <Teleport to="#name-alert-wrapper">
4
+ <ui-alert
5
+ v-show="props.errors.length"
6
+ status="alert-danger"
7
+ :messages="props.errors"
8
+ test-id="name-alert"
9
+ class="errors-alert"
10
+ @remove="emits('remove-validation-errors')"
11
+ />
12
+ </Teleport>
13
+
14
+ <div class="name-field">
15
+ <div class="flex-1 flex-align-center">
16
+ <label for="virtual-machine-name" class="name-label">{{
17
+ localization.common.name
18
+ }}</label>
19
+ <ui-icon
20
+ id="virtual-machine-name-icon"
21
+ width="16"
22
+ height="16"
23
+ name="info"
24
+ data-id="virtual-machine-name-icon"
25
+ :class="{ active: isShowHelp }"
26
+ @click.stop="isShowHelp = !isShowHelp"
27
+ />
28
+ </div>
29
+ <Teleport to="body">
30
+ <ui-dropdown
31
+ :show="isShowHelp"
32
+ elem-id="virtual-machine-name-icon"
33
+ test-id=""
34
+ :items="[]"
35
+ width="320px"
36
+ top
37
+ left
38
+ @hide="isShowHelp = false"
39
+ >
40
+ <template #content>
41
+ <div class="vm-name-help-content">
42
+ <div class="headline">
43
+ <ui-icon name="info-2" width="16" height="16" />
44
+ <h3 class="vm-name-help-title">
45
+ {{ localization.vmWizard.vmNameRules }}
46
+ </h3>
47
+ <ui-icon
48
+ name="close"
49
+ width="16"
50
+ height="16"
51
+ class="hide-icon pointer"
52
+ @click="isShowHelp = false"
53
+ />
54
+ </div>
55
+
56
+ <p class="vm-name-help-text">
57
+ {{ localization.common.vmNameValidationDescription }}
58
+ </p>
59
+ </div>
60
+ </template>
61
+ </ui-dropdown>
62
+ </Teleport>
63
+
64
+ <div class="flex-2">
65
+ <ui-input
66
+ v-model="vmName"
67
+ type="text"
68
+ maxlength="54"
69
+ :placeholder="localization.common.name"
70
+ test-id="virtual-machine-name"
71
+ />
72
+ </div>
73
+ </div>
74
+
75
+ <template v-if="props.project === 'sphere'">
76
+ <div class="location">
77
+ <span class="location-label">{{ localization.common.location }}</span>
78
+
79
+ <div v-if="selectedLocation" class="selected-location">
80
+ <span :class="['node-icon', selectedLocation.iconClassName]" />
81
+ <span :class="['text', isShowAlert && 'error']">
82
+ {{ selectedLocation.name }}
83
+ </span>
84
+ </div>
85
+ <ui-skeleton-item v-else width="160px" height="20px" />
86
+ </div>
87
+ <div class="tree-view-wrap">
88
+ <common-vm-actions-add-folder-tree-view
89
+ :data-center="props.dataCenter"
90
+ @select-node="onSelectNode"
91
+ />
92
+ </div>
93
+ </template>
94
+ </div>
95
+ </template>
96
+
97
+ <script setup lang="ts">
98
+ // import { API_UI_I_Error } from '~/lib/models/store/interfaces'
99
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
100
+ import type { UI_T_Project } from '~/lib/models/types'
101
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
102
+
103
+ const vmName = defineModel<string>('vmName', { required: true })
104
+ const isShowHelp = defineModel<boolean>('isShowHelp', { required: true })
105
+
106
+ const props = defineProps<{
107
+ project: UI_T_Project
108
+ errors: string[]
109
+ dataCenter?: UI_I_TreeNode // для сферы
110
+ }>()
111
+ const emits = defineEmits<{
112
+ (event: 'remove-validation-errors'): void
113
+ (event: 'select-node', value: UI_I_TreeNode): void
114
+ }>()
115
+
116
+ const localization = computed<UI_I_Localization>(() => useLocal())
117
+
118
+ const isShowAlert = computed<boolean>(() =>
119
+ props.errors.includes(
120
+ localization.value.common.enterValidLocationVirtualMachine
121
+ )
122
+ )
123
+ const selectedLocation = ref<UI_I_TreeNode | null>(null)
124
+ const onSelectNode = (node: UI_I_TreeNode) => {
125
+ selectedLocation.value = node
126
+ emits('select-node', node)
127
+ }
128
+ </script>
129
+
130
+ <style>
131
+ :root {
132
+ --select-name-text-color: #4d5d69;
133
+ --select-name-help-icon-hover-color: #4d5d69;
134
+ --select-name-help-icon-active-color: #008fd6;
135
+ --select-name-help-hide-icon-color: #213444;
136
+ --select-name-border-color: #e9ebed;
137
+ --select-name-location-node-color: #182531;
138
+ --select-name-location-bg-color: #ffffff;
139
+ }
140
+ :root.dark-theme {
141
+ --select-name-text-color: #e9eaec;
142
+ --select-name-help-icon-hover-color: #e9eaec;
143
+ --select-name-help-icon-active-color: #2ba2de;
144
+ --select-name-help-hide-icon-color: #E9EAEC;
145
+ --select-name-border-color: #e9ebed1f;
146
+ --select-name-location-node-color: #e9eaec;
147
+ --select-name-location-bg-color: transparent;
148
+ }
149
+ </style>
150
+ <style scoped lang="scss">
151
+ .select-name {
152
+ height: 100%;
153
+ display: flex;
154
+ flex-direction: column;
155
+ padding-top: 16px;
156
+
157
+ .name-field {
158
+ display: flex;
159
+ align-items: center;
160
+
161
+ .name-label {
162
+ font-size: 13px;
163
+ color: var(--select-name-text-color);
164
+ margin-right: 8px;
165
+ }
166
+ #virtual-machine-name-icon {
167
+ color: #9da6ad; // equal in dark and white modes
168
+ cursor: pointer;
169
+
170
+ &:hover {
171
+ color: var(--select-name-help-icon-hover-color);
172
+ }
173
+ &.active {
174
+ color: var(--select-name-help-icon-active-color);
175
+ }
176
+ }
177
+ }
178
+
179
+ .location {
180
+ display: grid;
181
+ grid-template-columns: 1fr 2fr;
182
+ margin-top: 16px;
183
+ padding: 16px 0;
184
+ border-top: 1px solid var(--select-name-border-color);
185
+
186
+ .location-label {
187
+ font-size: 13px;
188
+ color: var(--select-name-text-color);
189
+ }
190
+
191
+ .selected-location {
192
+ display: flex;
193
+ align-items: center;
194
+ gap: 8px;
195
+
196
+ .text {
197
+ font-size: 13px;
198
+ color: var(--select-name-location-node-color);
199
+
200
+ &.error {
201
+ color: #ea3223; // equal in dark and white modes
202
+ }
203
+ }
204
+ }
205
+ }
206
+ .tree-view-wrap {
207
+ flex: 1;
208
+ border-radius: 8px;
209
+ border: 1px solid var(--select-name-border-color);
210
+ padding: 12px;
211
+ background-color: var(--select-name-location-bg-color);
212
+
213
+ :deep(.tree-content) {
214
+ padding: 0 !important;
215
+ }
216
+ }
217
+ }
218
+
219
+ .vm-name-help-content {
220
+ padding: 16px;
221
+
222
+ .headline {
223
+ display: flex;
224
+ align-items: center;
225
+ gap: 8px;
226
+ margin-bottom: 12px;
227
+
228
+ .vm-name-help-title {
229
+ flex: 1;
230
+ font-size: 14px;
231
+ font-weight: 500;
232
+ line-height: 16.94px;
233
+ color: var(--select-name-text-color);
234
+ }
235
+ .hide-icon {
236
+ color: var(--select-name-help-hide-icon-color)
237
+ }
238
+ }
239
+
240
+ .vm-name-help-text {
241
+ font-size: 13px;
242
+ line-height: 15.73px;
243
+ color: var(--select-name-text-color);
244
+ }
245
+ }
246
+ </style>