bfg-common 1.5.249 → 1.5.251

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 (35) hide show
  1. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  2. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  3. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  5. package/assets/localization/local_be.json +7 -1
  6. package/assets/localization/local_en.json +7 -1
  7. package/assets/localization/local_hy.json +7 -1
  8. package/assets/localization/local_kk.json +7 -1
  9. package/assets/localization/local_ru.json +7 -1
  10. package/assets/localization/local_zh.json +7 -1
  11. package/assets/scss/common/theme.scss +16 -0
  12. package/components/atoms/stack/StackBlock.vue +185 -185
  13. package/components/atoms/table/info/lib/models/interfaces.ts +10 -10
  14. package/components/common/backup/storage/actions/add/New.vue +4 -9
  15. package/components/common/backup/storage/actions/add/steps/common/tooltipInfo/TooltipInfo.vue +94 -0
  16. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +9 -18
  17. package/components/common/backup/storage/actions/add/steps/typeMode/TypeModeNew.vue +3 -12
  18. package/components/common/layout/theHeader/feedback/new/additionalDetails/Headline.vue +67 -8
  19. package/components/common/layout/theHeader/feedback/new/subtitle/Subtitle.vue +72 -8
  20. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesOld.vue +1 -9
  21. package/components/common/pages/tasks/table/Table.vue +7 -15
  22. package/components/common/pages/tasks/table/errorInfo/ErrorInfo.vue +128 -0
  23. package/components/common/pages/tasks/table/expandDetails/ExpandDetails.vue +9 -15
  24. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +99 -10
  25. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +3 -52
  26. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +151 -32
  27. package/components/common/vm/actions/common/select/name/New.vue +70 -10
  28. package/components/common/wizards/datastore/add/New.vue +3 -8
  29. package/components/common/wizards/datastore/add/steps/common/tooltipInfo/TooltipInfo.vue +93 -0
  30. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigureNew.vue +6 -20
  31. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +3 -9
  32. package/components/common/wizards/datastore/add/steps/typeMode/TypeModeNew.vue +3 -8
  33. package/package.json +2 -2
  34. package/components/common/tooltip/Help.vue +0 -132
  35. package/components/common/tooltip/lib/models/types.ts +0 -1
@@ -537,6 +537,7 @@
537
537
  "example": "Прыклад",
538
538
  "existingHardDisk": "Існуючы жорсткі дыск",
539
539
  "existingHost": "Існуючыя гаспадары",
540
+ "existing": "Існуючыя",
540
541
  "openNewWindow": "Адкрыць у новым акне",
541
542
  "exitFullscreen": "Выхад з поўнаэкраннага рэжыму",
542
543
  "exitMaintenanceMode": "Выйсці з рэжыму абслугоўвання",
@@ -2370,7 +2371,12 @@
2370
2371
  "gotIt": "Зразумець",
2371
2372
  "nodeSetupStarted": "Запусціла налада вузла",
2372
2373
  "nodeSetupStartedDesc": "Налада вузла была паспяхова запушчана. Гэта можа заняць хвіліну. Далейшыя дзеянні не патрабуецца.",
2373
- "valueMustBeAtLeastOneHourAfterStart": "Значэнне павінна быць не менш чым на гадзіну пазней часу пачатку"
2374
+ "valueMustBeAtLeastOneHourAfterStart": "Значэнне павінна быць не менш чым на гадзіну пазней часу пачатку",
2375
+ "addNewWithDots": "Дадаць новы...",
2376
+ "noExistingHostsAvailable": "На дадзены момант няма даступных хостаў.",
2377
+ "currentSphere": "Бягучая сфера",
2378
+ "addHostsLastStepSubTitle": "Праверце падрабязнасці перад даданнем хостаў.",
2379
+ "addHostsLastStepDesc": "Да зоны Sphere будзе падключана {0} новых хостаў, і яны будуць перамешчаныя ў гэты кластар."
2374
2380
  },
2375
2381
  "auth": {
2376
2382
  "welcomeTo": "Сардэчна запрашаем у",
@@ -536,6 +536,7 @@
536
536
  "example": "Example",
537
537
  "existingHardDisk": "Existing Hard Disk",
538
538
  "existingHost": "Existing hosts",
539
+ "existing": "Existing",
539
540
  "openNewWindow": "Open in New Window",
540
541
  "exitFullscreen": "Exit Full Screen",
541
542
  "exitMaintenanceMode": "Exit Maintenance Mode",
@@ -2374,7 +2375,12 @@
2374
2375
  "gotIt": "Got It",
2375
2376
  "nodeSetupStarted": "Node Setup Started",
2376
2377
  "nodeSetupStartedDesc": "Node setup has been successfully started. This may take a moment to complete. No further action is required.",
2377
- "valueMustBeAtLeastOneHourAfterStart": "The value must be at least one hour later than the start time."
2378
+ "valueMustBeAtLeastOneHourAfterStart": "The value must be at least one hour later than the start time.",
2379
+ "addNewWithDots": "Add New...",
2380
+ "noExistingHostsAvailable": "There are currently no existing hosts available.",
2381
+ "currentSphere": "Current Sphere",
2382
+ "addHostsLastStepSubTitle": "Review the details before the hosts are added.",
2383
+ "addHostsLastStepDesc": "{0} new host(s) will be connected to Sphere Zone and moved to this cluster."
2378
2384
  },
2379
2385
  "auth": {
2380
2386
  "welcomeTo": "Welcome to",
@@ -535,6 +535,7 @@
535
535
  "eventTypeId": "Միջոցառման տեսակի ID",
536
536
  "example": "Օրինակ",
537
537
  "existingHardDisk": "Գոյություն ունեցող կոշտ սկավառակ",
538
+ "existing": "Գոյություն ունեցող",
538
539
  "existingHost": "Գոյություն ունեցող հանգույցներ",
539
540
  "openNewWindow": "Բացեք նոր պատուհանում",
540
541
  "exitFullscreen": "Դուրս գալ ամբողջ էկրանով ռեժիմից",
@@ -2374,7 +2375,12 @@
2374
2375
  "gotIt": "հասկացա",
2375
2376
  "nodeSetupStarted": "Հանգույցի կարգավորումը սկսվեց",
2376
2377
  "nodeSetupStartedDesc": "Հանգույցի կարգավորումը հաջողությամբ սկսվեց: Սա կարող է տեւել մի պահ: Այլ գործողություն չի պահանջվում:",
2377
- "valueMustBeAtLeastOneHourAfterStart": "Արժեքը պետք է լինի առնվազն մեկ ժամ ուշ, քան մեկնարկի ժամանակը"
2378
+ "valueMustBeAtLeastOneHourAfterStart": "Արժեքը պետք է լինի առնվազն մեկ ժամ ուշ, քան մեկնարկի ժամանակը",
2379
+ "addNewWithDots": "Ավելացնել նոր...",
2380
+ "noExistingHostsAvailable": "Այս պահին հասանելի հոսթեր չկան։",
2381
+ "currentSphere": "Ընթացիկ ոլորտ",
2382
+ "addHostsLastStepSubTitle": "Ստուգեք մանրամասները մինչև հոսթերը ավելացնելը։",
2383
+ "addHostsLastStepDesc": "{0} նոր հոսթ կկապվի Sphere գոտուն և կտեղափոխվի այս կլաստեր։"
2378
2384
  },
2379
2385
  "auth": {
2380
2386
  "welcomeTo": "Բարի գալուստ",
@@ -535,6 +535,7 @@
535
535
  "eventTypeId": "Оқиға түрінің идентификаторы",
536
536
  "example": "Мысал",
537
537
  "existingHardDisk": "Қолданыстағы қатты диск",
538
+ "existing": "Бар",
538
539
  "existingHost": "Бар түйіндер",
539
540
  "openNewWindow": "Жаңа терезеде ашу",
540
541
  "exitFullscreen": "Толық экран режимінен шығу",
@@ -2373,7 +2374,12 @@
2373
2374
  "gotIt": "Түсіндім",
2374
2375
  "nodeSetupStarted": "Түйін орнату басталды",
2375
2376
  "nodeSetupStartedDesc": "Түйін орнату сәтті басталды. Бұл біраз уақыт алуы мүмкін. Бұдан әрі әрекет қажет емес.",
2376
- "valueMustBeAtLeastOneHourAfterStart": "Мән басталу уақытынан кемінде бір сағат кеш болуы керек"
2377
+ "valueMustBeAtLeastOneHourAfterStart": "Мән басталу уақытынан кемінде бір сағат кеш болуы керек",
2378
+ "addNewWithDots": "Жаңа қосу...",
2379
+ "noExistingHostsAvailable": "Қазіргі уақытта қолжетімді хосттар жоқ.",
2380
+ "currentSphere": "Ағымдағы сала",
2381
+ "addHostsLastStepSubTitle": "Хосттар қосылмас бұрын мәліметтерді қарап шығыңыз.",
2382
+ "addHostsLastStepDesc": "{0} жаңа хост Sphere аймағына қосылып, осы кластерге ауыстырылады."
2377
2383
  },
2378
2384
  "auth": {
2379
2385
  "welcomeTo": "Қош келдіңіз",
@@ -535,6 +535,7 @@
535
535
  "eventTypeId": "Идентификатор типа события",
536
536
  "example": "Пример",
537
537
  "existingHardDisk": "Существующий жесткий диск",
538
+ "existing": "Существующий",
538
539
  "existingHost": "Существующие узлы",
539
540
  "openNewWindow": "Открыть в новом окне",
540
541
  "exitFullscreen": "Выход из полноэкранного режима",
@@ -2373,7 +2374,12 @@
2373
2374
  "gotIt": "Понял",
2374
2375
  "nodeSetupStarted": "Начата настройка узла",
2375
2376
  "nodeSetupStartedDesc": "Настройка узла успешно запущена. Это может занять некоторое время. Никаких дальнейших действий не требуется.",
2376
- "valueMustBeAtLeastOneHourAfterStart": "Значение должно быть не менее чем на час позже времени начала"
2377
+ "valueMustBeAtLeastOneHourAfterStart": "Значение должно быть не менее чем на час позже времени начала",
2378
+ "addNewWithDots": "Добавить...",
2379
+ "noExistingHostsAvailable": "В настоящее время нет доступных хостов.",
2380
+ "currentSphere": "Текущая сфера",
2381
+ "addHostsLastStepSubTitle": "Проверьте детали перед добавлением хостов.",
2382
+ "addHostsLastStepDesc": "{0} новых хостов будет подключено к зоне Sphere и перемещено в этот кластер."
2377
2383
  },
2378
2384
  "auth": {
2379
2385
  "welcomeTo": "Добро пожаловать в",
@@ -535,6 +535,7 @@
535
535
  "eventTypeId": "事件類型標識符",
536
536
  "example": "例子",
537
537
  "existingHardDisk": "现有硬盘",
538
+ "existing": "现存的",
538
539
  "existingHost": "现有节点",
539
540
  "openNewWindow": "在新窗口中打开",
540
541
  "exitFullscreen": "退出全屏",
@@ -2371,7 +2372,12 @@
2371
2372
  "gotIt": "得到了",
2372
2373
  "nodeSetupStarted": "节点设置开始",
2373
2374
  "nodeSetupStartedDesc": "节点设置已成功启动。这可能需要一些时间才能完成。无需采取进一步的行动。",
2374
- "valueMustBeAtLeastOneHourAfterStart": "该值必须至少比开始时间晚一小时。"
2375
+ "valueMustBeAtLeastOneHourAfterStart": "该值必须至少比开始时间晚一小时。",
2376
+ "addNewWithDots": "添加新内容...",
2377
+ "noExistingHostsAvailable": "当前没有可用的主机。",
2378
+ "currentSphere": "当前领域",
2379
+ "addHostsLastStepSubTitle": "在添加主机之前请查看详细信息。",
2380
+ "addHostsLastStepDesc": "将有 {0} 台新主机连接到 Sphere 区域并移动到此集群。"
2375
2381
  },
2376
2382
  "auth": {
2377
2383
  "welcomeTo": "欢迎来到",
@@ -172,6 +172,14 @@
172
172
 
173
173
  // VM Add Edit new view
174
174
  --select-file-type-label: #4d5d69;
175
+
176
+ // Add Hosts new view
177
+ --add-hosts-hosts-row-between-line: #e9ebeda3;
178
+ --add-hosts-hosts-row-child-value: #4d5d69;
179
+ --add-hosts-hosts-row-child-vm-bg-color: #e9ebeda3;
180
+ --add-hosts-hosts-row-child-vm-color: #4d5d69;
181
+ --add-hosts-ready-complete-description: #4d5d69;
182
+ --add-hosts-ready-complete-host-item-color: #4d5d69;
175
183
  }
176
184
 
177
185
  :root.dark-theme {
@@ -336,4 +344,12 @@
336
344
 
337
345
  // VM Add Edit new view
338
346
  --select-file-type-label: #e9eaec;
347
+
348
+ // Add Hosts new view
349
+ --add-hosts-hosts-row-between-line: #e9ebed1f;
350
+ --add-hosts-hosts-row-child-value: #e9eaec;
351
+ --add-hosts-hosts-row-child-vm-bg-color: #e9ebed1f;
352
+ --add-hosts-hosts-row-child-vm-color: #e9eaec;
353
+ --add-hosts-ready-complete-description: #e9eaec;
354
+ --add-hosts-ready-complete-host-item-color: #e9eaec;
339
355
  }
@@ -1,185 +1,185 @@
1
- <template>
2
- <div
3
- :class="[
4
- 'stack-block',
5
- open ? 'stack-block-expanded' : 'stack-block-expandable',
6
- { 'not-children': !props.hasChildren },
7
- ]"
8
- >
9
- <div
10
- :id="`${props.testId}-toggle`"
11
- :data-id="`${props.testId}-toggle`"
12
- class="stack-block-label"
13
- @click="onToggle"
14
- >
15
- <atoms-the-icon name="angle" class="angle-icon" fill="#565656" />
16
-
17
- <div class="stack-view-key">
18
- <slot name="stackBlockKey" />
19
- </div>
20
- <div class="stack-block-content">
21
- <slot name="stackBlockContent" />
22
- </div>
23
-
24
- <span
25
- v-if="props.removable && props.isRollBack"
26
- :data-id="`${props.testId}-roll-back`"
27
- class="icon-roll-back"
28
- @mousedown="onRollBack"
29
- @click.stop
30
- />
31
- <atoms-the-icon
32
- v-else-if="props.removable"
33
- :data-id="`${props.testId}-remove`"
34
- class="remove-icon"
35
- name="close-circle"
36
- @mousedown="onRemove"
37
- @click.stop
38
- />
39
- <span v-else class="empty-icon"></span>
40
- </div>
41
-
42
- <div v-show="open" class="stack-children">
43
- <div style="height: auto">
44
- <slot name="stackChildren" />
45
- </div>
46
- </div>
47
- </div>
48
- </template>
49
-
50
- <script setup lang="ts">
51
- const props = withDefaults(
52
- defineProps<{
53
- hasChildren: boolean
54
- removable?: boolean
55
- testId?: string
56
- openByDefault?: boolean
57
- isRollBack?: boolean
58
- }>(),
59
- { testId: 'ui-stack-block', openByDefault: false }
60
- )
61
- const emits = defineEmits<{
62
- (event: 'toggle', value: boolean): void
63
- (event: 'remove'): void
64
- (event: 'roll-back'): void
65
- }>()
66
-
67
- const open = ref<boolean>(props.openByDefault || false)
68
- const onToggle = (): void => {
69
- if (!props.hasChildren) return
70
- setTimeout(() => {
71
- open.value = !open.value
72
- emits('toggle', open.value)
73
- }, 0)
74
- }
75
-
76
- const onRemove = (): void => {
77
- emits('remove')
78
- }
79
- const onRollBack = (): void => {
80
- emits('roll-back')
81
- }
82
- </script>
83
-
84
- <style scoped lang="scss">
85
- .stack-block {
86
- cursor: pointer;
87
- background-color: var(--block-view-bg-color);
88
- border-color: var(--global-border-color);
89
-
90
- &.stack-block-expandable:hover {
91
- border-bottom: 1px solid #666;
92
-
93
- .stack-block-label {
94
- background-color: var(--block-view-bg-color);
95
- border-color: var(--global-border-color);
96
- }
97
- }
98
-
99
- .stack-block-label {
100
- padding: 6px 12px;
101
- flex: 1 1 auto;
102
- max-width: unset;
103
- display: flex;
104
- background-color: var(--block-view-bg-color);
105
- border-color: var(--global-border-color);
106
-
107
- &:hover {
108
- .remove-icon {
109
- opacity: 1;
110
- }
111
- }
112
-
113
- &::before {
114
- display: none;
115
- }
116
-
117
- .angle-icon {
118
- width: 14px;
119
- height: 14px;
120
- margin-right: 4px;
121
- transform: rotate(90deg);
122
- align-self: center;
123
- }
124
-
125
- .remove-icon {
126
- width: 18px;
127
- height: 18px;
128
- opacity: 0;
129
- cursor: pointer;
130
- }
131
-
132
- .stack-view-key {
133
- flex: 0 0 40%;
134
- max-width: 40%;
135
- }
136
-
137
- .stack-block-content {
138
- padding: 0;
139
- flex: 1 1 auto;
140
- width: 60%;
141
- background-color: transparent;
142
- word-break: break-all;
143
- }
144
-
145
- .empty-icon {
146
- width: 18px;
147
- height: 18px;
148
- }
149
- }
150
-
151
- &.stack-block-expanded {
152
- .stack-block-label {
153
- color: #ffffff;
154
- background-color: #29414e;
155
-
156
- .angle-icon {
157
- fill: #ffffff;
158
- transform: rotate(180deg);
159
- }
160
-
161
- .remove-icon {
162
- fill: #ffffff;
163
- }
164
- }
165
- }
166
-
167
- &.not-children {
168
- cursor: default;
169
- .stack-block-label {
170
- background-color: transparent;
171
- color: #333333;
172
-
173
- &:hover {
174
- cursor: default;
175
- background-color: transparent;
176
- border-bottom: none;
177
- }
178
-
179
- .angle-icon {
180
- opacity: 0;
181
- }
182
- }
183
- }
184
- }
185
- </style>
1
+ <template>
2
+ <div
3
+ :class="[
4
+ 'stack-block',
5
+ open ? 'stack-block-expanded' : 'stack-block-expandable',
6
+ { 'not-children': !props.hasChildren },
7
+ ]"
8
+ >
9
+ <div
10
+ :id="`${props.testId}-toggle`"
11
+ :data-id="`${props.testId}-toggle`"
12
+ class="stack-block-label"
13
+ @click="onToggle"
14
+ >
15
+ <atoms-the-icon name="angle" class="angle-icon" fill="#565656" />
16
+
17
+ <div class="stack-view-key">
18
+ <slot name="stackBlockKey" />
19
+ </div>
20
+ <div class="stack-block-content">
21
+ <slot name="stackBlockContent" />
22
+ </div>
23
+
24
+ <span
25
+ v-if="props.removable && props.isRollBack"
26
+ :data-id="`${props.testId}-roll-back`"
27
+ class="icon-roll-back"
28
+ @mousedown="onRollBack"
29
+ @click.stop
30
+ />
31
+ <atoms-the-icon
32
+ v-else-if="props.removable"
33
+ :data-id="`${props.testId}-remove`"
34
+ class="remove-icon"
35
+ name="close-circle"
36
+ @mousedown="onRemove"
37
+ @click.stop
38
+ />
39
+ <span v-else class="empty-icon"></span>
40
+ </div>
41
+
42
+ <div v-show="open" class="stack-children">
43
+ <div style="height: auto">
44
+ <slot name="stackChildren" />
45
+ </div>
46
+ </div>
47
+ </div>
48
+ </template>
49
+
50
+ <script setup lang="ts">
51
+ const props = withDefaults(
52
+ defineProps<{
53
+ hasChildren: boolean
54
+ removable?: boolean
55
+ testId?: string
56
+ openByDefault?: boolean
57
+ isRollBack?: boolean
58
+ }>(),
59
+ { testId: 'ui-stack-block', openByDefault: false }
60
+ )
61
+ const emits = defineEmits<{
62
+ (event: 'toggle', value: boolean): void
63
+ (event: 'remove'): void
64
+ (event: 'roll-back'): void
65
+ }>()
66
+
67
+ const open = ref<boolean>(props.openByDefault || false)
68
+ const onToggle = (): void => {
69
+ if (!props.hasChildren) return
70
+ setTimeout(() => {
71
+ open.value = !open.value
72
+ emits('toggle', open.value)
73
+ }, 0)
74
+ }
75
+
76
+ const onRemove = (): void => {
77
+ emits('remove')
78
+ }
79
+ const onRollBack = (): void => {
80
+ emits('roll-back')
81
+ }
82
+ </script>
83
+
84
+ <style scoped lang="scss">
85
+ .stack-block {
86
+ cursor: pointer;
87
+ background-color: var(--block-view-bg-color);
88
+ border-color: var(--global-border-color);
89
+
90
+ &.stack-block-expandable:hover {
91
+ border-bottom: 1px solid #666;
92
+
93
+ .stack-block-label {
94
+ background-color: var(--block-view-bg-color);
95
+ border-color: var(--global-border-color);
96
+ }
97
+ }
98
+
99
+ .stack-block-label {
100
+ padding: 6px 12px;
101
+ flex: 1 1 auto;
102
+ max-width: unset;
103
+ display: flex;
104
+ background-color: var(--block-view-bg-color);
105
+ border-color: var(--global-border-color);
106
+
107
+ &:hover {
108
+ .remove-icon {
109
+ opacity: 1;
110
+ }
111
+ }
112
+
113
+ &::before {
114
+ display: none;
115
+ }
116
+
117
+ .angle-icon {
118
+ width: 14px;
119
+ height: 14px;
120
+ margin-right: 4px;
121
+ transform: rotate(90deg);
122
+ align-self: center;
123
+ }
124
+
125
+ .remove-icon {
126
+ width: 18px;
127
+ height: 18px;
128
+ opacity: 0;
129
+ cursor: pointer;
130
+ }
131
+
132
+ .stack-view-key {
133
+ flex: 0 0 40%;
134
+ max-width: 40%;
135
+ }
136
+
137
+ .stack-block-content {
138
+ padding: 0;
139
+ flex: 1 1 auto;
140
+ width: 60%;
141
+ background-color: transparent;
142
+ word-break: break-all;
143
+ }
144
+
145
+ .empty-icon {
146
+ width: 18px;
147
+ height: 18px;
148
+ }
149
+ }
150
+
151
+ &.stack-block-expanded {
152
+ .stack-block-label {
153
+ color: #ffffff;
154
+ background-color: #29414e;
155
+
156
+ .angle-icon {
157
+ fill: #ffffff;
158
+ transform: rotate(180deg);
159
+ }
160
+
161
+ .remove-icon {
162
+ fill: #ffffff;
163
+ }
164
+ }
165
+ }
166
+
167
+ &.not-children {
168
+ cursor: default;
169
+ .stack-block-label {
170
+ background-color: transparent;
171
+ color: #333333;
172
+
173
+ &:hover {
174
+ cursor: default;
175
+ background-color: transparent;
176
+ border-bottom: none;
177
+ }
178
+
179
+ .angle-icon {
180
+ opacity: 0;
181
+ }
182
+ }
183
+ }
184
+ }
185
+ </style>
@@ -1,10 +1,10 @@
1
- export interface UI_I_TableInfoItem {
2
- label: string
3
- value: any
4
- isProperty?: boolean
5
- key?: string
6
- localization?: string
7
- localizationTemplate?: string
8
- isCapital?: boolean
9
- iconName?: string
10
- }
1
+ export interface UI_I_TableInfoItem {
2
+ label: string
3
+ value: any
4
+ isProperty?: boolean
5
+ key?: string
6
+ localization?: string
7
+ localizationTemplate?: string
8
+ isCapital?: boolean
9
+ iconName?: string
10
+ }
@@ -21,15 +21,10 @@
21
21
  <div class="subtitle-block flex-row">
22
22
  <ui-wizard-subtitle :sub-title="selectedStep.subTitle" />
23
23
 
24
- <common-tooltip-help
25
- test-id="datastore-type-subtitle-tooltip"
26
- help-id="datastore-type-subtitle-tooltip-icon"
27
- :title="localization.common.information"
28
- :help-text="localization.common.datastoreTypeHelpDesc"
29
- dropdown-width="272px"
30
- dropdown-left
31
- dropdown-top
32
- class="ml-2"
24
+ <common-wizards-datastore-add-steps-common-tooltip-info
25
+ id="datastore-type-subtitle-tooltip"
26
+ class="ml-2"
27
+ :description="localization.common.datastoreTypeHelpDesc"
33
28
  />
34
29
  </div>
35
30
  </div>
@@ -0,0 +1,94 @@
1
+ <template>
2
+ <div class="tooltip-info">
3
+ <ui-icon
4
+ :id="`${props.id}-info-trigger`"
5
+ name="info"
6
+ width="16"
7
+ height="16"
8
+ :class="['tooltip-info__icon pointer', { active: isShowInfo }]"
9
+ @click.stop="isShowInfo = !isShowInfo"
10
+ />
11
+ <ui-popup-window
12
+ v-model="isShowInfo"
13
+ top
14
+ left
15
+ width="272px"
16
+ :elem-id="`${props.id}-info-trigger`"
17
+ >
18
+ <div class="common-widget-info">
19
+ <div class="flex justify-between">
20
+ <div class="flex">
21
+ <ui-icon name="info-2" width="16px" height="16px" />
22
+ <span class="title"> {{ localization.common.information }}</span>
23
+ </div>
24
+ <ui-icon
25
+ name="close"
26
+ class="pointer hide-icon"
27
+ width="16px"
28
+ height="16px"
29
+ @click.stop="isShowInfo = false"
30
+ />
31
+ </div>
32
+
33
+ <div class="common-widget-info-description">
34
+ {{ props.description }}
35
+ </div>
36
+ </div>
37
+ </ui-popup-window>
38
+ </div>
39
+ </template>
40
+
41
+ <script lang="ts" setup>
42
+ // TODO move to global
43
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
44
+
45
+ const props = defineProps<{
46
+ id: string
47
+ description: string
48
+ }>()
49
+
50
+ const localization = computed<UI_I_Localization>(() => useLocal())
51
+
52
+ const isShowInfo = ref<boolean>(false)
53
+ </script>
54
+
55
+ <style lang="scss" scoped>
56
+ @import 'assets/scss/common/mixins.scss';
57
+ .tooltip-info {
58
+ @include flex($align: center);
59
+ &__icon {
60
+ color: var(--form-icon-color);
61
+ &:hover {
62
+ color: var(--close-icon);
63
+ }
64
+ &.active {
65
+ color: var(--btn-primary-fill-bg-color);
66
+ }
67
+ }
68
+
69
+ .common-widget-info {
70
+ padding: 16px;
71
+
72
+ .title {
73
+ font-size: 14px;
74
+ font-weight: 500;
75
+ line-height: 16px;
76
+ color: var(--zabbix-text-color);
77
+ margin-left: 8px;
78
+ }
79
+
80
+ .common-widget-info-description {
81
+ font-size: 13px;
82
+ line-height: 15.73px;
83
+ color: var(--zabbix-text-color);
84
+ margin-top: 12px;
85
+ white-space: pre-line;
86
+ }
87
+
88
+ svg {
89
+ color: var(--alert-icon);
90
+ min-width: 16px;
91
+ }
92
+ }
93
+ }
94
+ </style>