bfg-common 1.5.688 → 1.5.689
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.
- package/CODE_STYLE.md +109 -109
- package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
- package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
- package/assets/img/icons/icons-sprite-light-3.svg +227 -227
- package/assets/img/icons/icons-sprite-light-5.svg +488 -488
- package/assets/localization/local_be.json +3800 -3783
- package/assets/localization/local_en.json +3804 -3787
- package/assets/localization/local_hy.json +18 -1
- package/assets/localization/local_kk.json +18 -1
- package/assets/localization/local_ru.json +18 -1
- package/assets/localization/local_zh.json +18 -1
- package/assets/scss/components/auth.scss +15 -5
- package/components/atoms/TheIcon3.vue +50 -50
- package/components/atoms/collapse/CollapseNav.vue +170 -170
- package/components/atoms/dropdown/tree/Tree.vue +2 -0
- package/components/atoms/perPage/PerPage.vue +58 -58
- package/components/atoms/switch/Switch.vue +103 -97
- package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
- package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
- package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
- package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
- package/components/atoms/wizard/Wizard.vue +1 -1
- package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
- package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
- package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
- package/components/common/diagramMain/port/Port.vue +580 -580
- package/components/common/layout/theHeader/TheHeaderNew.vue +315 -315
- package/components/common/layout/theHeader/TheHeaderOld.vue +262 -262
- package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
- package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
- package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesNew.vue +102 -115
- package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesOld.vue +144 -144
- package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +115 -108
- package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/{New.vue → ChangeLanguageNew.vue} +89 -88
- package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/{Old.vue → ChangeLanguageOld.vue} +91 -89
- package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +42 -43
- package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/{New.vue → DefaultConsoleNew.vue} +53 -53
- package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/{Old.vue → DefaultConsoleOld.vue} +49 -49
- package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/Inventory.vue +32 -31
- package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/{New.vue → InventoryNew.vue} +35 -36
- package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/{Old.vue → InventoryOld.vue} +31 -31
- package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
- package/components/common/layout/theHeader/userMenu/modals/preferences/security/New.vue +17 -34
- package/components/common/layout/theHeader/userMenu/modals/preferences/security/Old.vue +216 -216
- package/components/common/layout/theHeader/userMenu/modals/preferences/security/Security.vue +31 -31
- package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +54 -54
- package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/{New.vue → TimeFormatNew.vue} +52 -52
- package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/{Old.vue → TimeFormatOld.vue} +45 -45
- package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +45 -46
- package/components/common/layout/theHeader/userMenu/modals/preferences/view/{New.vue → ViewNew.vue} +38 -47
- package/components/common/layout/theHeader/userMenu/modals/preferences/view/{Old.vue → ViewOld.vue} +112 -112
- package/components/common/pages/backups/DetailView.vue +52 -52
- package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
- package/components/common/pages/backups/modals/Modals.vue +243 -243
- package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
- package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
- package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
- package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
- package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
- package/components/common/pages/home/lib/models/interfaces.ts +48 -48
- package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
- package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
- package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
- package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
- package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
- package/components/common/qr/Qr.vue +57 -57
- package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
- package/components/common/select/radio/RadioGroup.vue +137 -137
- package/components/common/spiceConsole/Drawer.vue +420 -420
- package/components/common/spiceConsole/SpiceConsole.vue +184 -184
- package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
- package/components/common/tools/Actions.vue +207 -207
- package/components/common/treeView/TreeView.vue +52 -52
- package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
- package/components/common/vm/actions/clone/new/New.vue +438 -438
- package/components/common/vm/actions/clone/old/Old.vue +1 -0
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +706 -706
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +489 -489
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +253 -253
- package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
- package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
- package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
- package/components/common/vm/actions/common/select/options/New.vue +264 -264
- package/components/common/vm/actions/common/select/options/Old.vue +109 -109
- package/components/common/vm/actions/common/select/options/Options.vue +58 -58
- package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
- package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
- package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
- package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
- package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
- package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
- package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
- package/components/common/wizards/common/compatibility/New.vue +1 -1
- package/components/common/wizards/common/compatibility/Old.vue +1 -1
- package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
- package/components/common/wizards/common/steps/name/Name.vue +178 -178
- package/components/common/wizards/common/steps/name/New.vue +221 -221
- package/components/common/wizards/common/steps/name/Old.vue +121 -121
- package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
- package/components/common/wizards/common/steps/name/location/New.vue +40 -40
- package/components/common/wizards/datastore/add/Add.vue +228 -228
- package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
- package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +232 -232
- package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceOld.vue +231 -231
- package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/AdvancedOptions.vue +43 -43
- package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +101 -101
- package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/Old.vue +101 -101
- package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
- package/composables/useAppVersion.ts +21 -21
- package/composables/useEnvLanguage.ts +22 -22
- package/composables/useLocal.ts +6 -6
- package/composables/useLocalCommon.ts +39 -39
- package/lib/models/interfaces.ts +1 -0
- package/package.json +2 -2
- package/plugins/console.ts +21 -21
- package/plugins/mouse.ts +21 -21
- package/plugins/panelStates.ts +70 -70
- package/plugins/text.ts +59 -59
- package/public/spice-console/application/clientgui.js +854 -854
- package/public/spice-console/application/packetfactory.js +211 -211
- package/public/spice-console/application/virtualmouse.js +147 -147
- package/public/spice-console/lib/images/bitmap.js +203 -203
- package/public/spice-console/network/spicechannel.js +440 -440
- package/public/spice-console/process/cursorprocess.js +128 -128
- package/public/spice-console/process/inputprocess.js +227 -227
- package/public/spice-console/process/mainprocess.js +212 -212
- package/public/spice-console/run.js +210 -210
- package/store/main/mutations.ts +7 -7
- package/store/main/state.ts +7 -7
- package/store/tasks/mappers/recentTasks.ts +123 -123
- package/store/tasks/mutations.ts +82 -82
|
@@ -3758,7 +3758,6 @@
|
|
|
3758
3758
|
},
|
|
3759
3759
|
"myPreferences": {
|
|
3760
3760
|
"twoFactorAuthentication": "Երկգործոն նույնականացում",
|
|
3761
|
-
"twoFactorAuthentication2": "Երկփուլային նույնականացում (2FA)",
|
|
3762
3761
|
"securityLabel": "Ավելացրեք հաշվին անվտանգության լրացուցիչ շերտ",
|
|
3763
3762
|
"enterOtpForDisabled": "Մուտքագրեք 6 նիշի կոդը և հաստատեք անջատելու համար.",
|
|
3764
3763
|
"enterOtpForEnabled": "Մուտքագրեք 6 նիշի կոդը և հաստատեք.",
|
|
@@ -3783,5 +3782,23 @@
|
|
|
3783
3782
|
"maxDurationSec": "Առավելագույն տևողություն (վայրկյան)",
|
|
3784
3783
|
"idleTimeoutSec": "Անգործության ժամանակավոր պատուհան (վայրկյան)",
|
|
3785
3784
|
"maxConcurrentSessions": "Առավելագույն համաժամանակյա սեսիաներ"
|
|
3785
|
+
},
|
|
3786
|
+
"cacheConfiguration": {
|
|
3787
|
+
"cacheConfiguration": "Քեշավորման կոնֆիգուրացիաներ",
|
|
3788
|
+
"cpu": "CPU",
|
|
3789
|
+
"memory": "Հիշողություն",
|
|
3790
|
+
"network": "Ցանց",
|
|
3791
|
+
"disk": "Սկավառակ",
|
|
3792
|
+
"lvm": "LVM",
|
|
3793
|
+
"nfs": "NFS",
|
|
3794
|
+
"hci": "HCI",
|
|
3795
|
+
"vm_cpu": "VM CPU",
|
|
3796
|
+
"vm_memory": "VM Հիշողություն",
|
|
3797
|
+
"vm_network": "VM Ցանց",
|
|
3798
|
+
"vm_disk": "VM Սկավառակ",
|
|
3799
|
+
"sensors": "Զգայուն տարրեր",
|
|
3800
|
+
"cpu_temp": "CPU Ջերմաստիճան",
|
|
3801
|
+
"power": "Էլեկտրամատակարարում",
|
|
3802
|
+
"services": "Ծառայություններ"
|
|
3786
3803
|
}
|
|
3787
3804
|
}
|
|
@@ -3757,7 +3757,6 @@
|
|
|
3757
3757
|
},
|
|
3758
3758
|
"myPreferences": {
|
|
3759
3759
|
"twoFactorAuthentication": "Екі факторлы аутентификация",
|
|
3760
|
-
"twoFactorAuthentication2": "Екі факторлы аутентификация (2FA)",
|
|
3761
3760
|
"securityLabel": "Аккаунтыңызға қауіпсіздіктің қосымша қабатын қосыңыз",
|
|
3762
3761
|
"enterOtpForDisabled": "Өшіру үшін 6 таңбалы кодты енгізіп, растаңыз:",
|
|
3763
3762
|
"enterOtpForEnabled": "6 таңбалы кодты енгізіп, растаңыз:",
|
|
@@ -3782,5 +3781,23 @@
|
|
|
3782
3781
|
"maxDurationSec": "Максималды ұзақтық (сек)",
|
|
3783
3782
|
"idleTimeoutSec": "Босқа тұрған уақыт (сек)",
|
|
3784
3783
|
"maxConcurrentSessions": "Максималды бір уақытта қосылған сессиялар"
|
|
3784
|
+
},
|
|
3785
|
+
"cacheConfiguration": {
|
|
3786
|
+
"cacheConfiguration": "Кэшталу конфигурациялары",
|
|
3787
|
+
"cpu": "CPU",
|
|
3788
|
+
"memory": "Жад",
|
|
3789
|
+
"network": "Желі",
|
|
3790
|
+
"disk": "Диск",
|
|
3791
|
+
"lvm": "LVM",
|
|
3792
|
+
"nfs": "NFS",
|
|
3793
|
+
"hci": "HCI",
|
|
3794
|
+
"vm_cpu": "VM CPU",
|
|
3795
|
+
"vm_memory": "VM Жад",
|
|
3796
|
+
"vm_network": "VM Желі",
|
|
3797
|
+
"vm_disk": "VM Диск",
|
|
3798
|
+
"sensors": "Сенсорлар",
|
|
3799
|
+
"cpu_temp": "CPU Температурасы",
|
|
3800
|
+
"power": "Қуат",
|
|
3801
|
+
"services": "Қызметтер"
|
|
3785
3802
|
}
|
|
3786
3803
|
}
|
|
@@ -3757,7 +3757,6 @@
|
|
|
3757
3757
|
},
|
|
3758
3758
|
"myPreferences": {
|
|
3759
3759
|
"twoFactorAuthentication": "Двухфакторная аутентификация",
|
|
3760
|
-
"twoFactorAuthentication2": "Двухфакторная аутентификация (2FA)",
|
|
3761
3760
|
"securityLabel": "Добавьте дополнительный уровень защиты к вашему аккаунту",
|
|
3762
3761
|
"enterOtpForDisabled": "Введите 6-значный код и подтвердите, чтобы отключить:",
|
|
3763
3762
|
"enterOtpForEnabled": "Введите 6-значный код и подтвердите:",
|
|
@@ -3782,5 +3781,23 @@
|
|
|
3782
3781
|
"maxDurationSec": "Максимальная продолжительность (сек)",
|
|
3783
3782
|
"idleTimeoutSec": "Время простоя (сек)",
|
|
3784
3783
|
"maxConcurrentSessions": "Макс. количество одновременных сессий"
|
|
3784
|
+
},
|
|
3785
|
+
"cacheConfiguration": {
|
|
3786
|
+
"cacheConfiguration": "Конфигурации кэширования",
|
|
3787
|
+
"cpu": "Процессор",
|
|
3788
|
+
"memory": "Память",
|
|
3789
|
+
"network": "Сеть",
|
|
3790
|
+
"disk": "Диск",
|
|
3791
|
+
"lvm": "LVM",
|
|
3792
|
+
"nfs": "NFS",
|
|
3793
|
+
"hci": "HCI",
|
|
3794
|
+
"vm_cpu": "ВМ Процессор",
|
|
3795
|
+
"vm_memory": "ВМ Память",
|
|
3796
|
+
"vm_network": "ВМ Сеть",
|
|
3797
|
+
"vm_disk": "ВМ Диск",
|
|
3798
|
+
"sensors": "Датчики",
|
|
3799
|
+
"cpu_temp": "Температура Процессора",
|
|
3800
|
+
"power": "Питание",
|
|
3801
|
+
"services": "Службы"
|
|
3785
3802
|
}
|
|
3786
3803
|
}
|
|
@@ -3755,7 +3755,6 @@
|
|
|
3755
3755
|
},
|
|
3756
3756
|
"myPreferences": {
|
|
3757
3757
|
"twoFactorAuthentication": "双因素认证",
|
|
3758
|
-
"twoFactorAuthentication2": "双重身份验证(2FA)",
|
|
3759
3758
|
"securityLabel": "为您的账户添加额外的安全层",
|
|
3760
3759
|
"enterOtpForDisabled": "输入6位代码并确认以禁用它:",
|
|
3761
3760
|
"enterOtpForEnabled": "输入6位代码并确认:",
|
|
@@ -3780,5 +3779,23 @@
|
|
|
3780
3779
|
"maxDurationSec": "最长持续时间(秒)",
|
|
3781
3780
|
"idleTimeoutSec": "空闲超时(秒)",
|
|
3782
3781
|
"maxConcurrentSessions": "最大并发会话数"
|
|
3782
|
+
},
|
|
3783
|
+
"cacheConfiguration": {
|
|
3784
|
+
"cacheConfiguration": "缓存配置",
|
|
3785
|
+
"cpu": "CPU",
|
|
3786
|
+
"memory": "内存",
|
|
3787
|
+
"network": "网络",
|
|
3788
|
+
"disk": "磁盘",
|
|
3789
|
+
"lvm": "LVM",
|
|
3790
|
+
"nfs": "NFS",
|
|
3791
|
+
"hci": "HCI",
|
|
3792
|
+
"vm_cpu": "VM CPU",
|
|
3793
|
+
"vm_memory": "VM 内存",
|
|
3794
|
+
"vm_network": "VM 网络",
|
|
3795
|
+
"vm_disk": "VM 磁盘",
|
|
3796
|
+
"sensors": "传感器",
|
|
3797
|
+
"cpu_temp": "CPU 温度",
|
|
3798
|
+
"power": "电源",
|
|
3799
|
+
"services": "服务"
|
|
3783
3800
|
}
|
|
3784
3801
|
}
|
|
@@ -169,7 +169,7 @@
|
|
|
169
169
|
color: #000000;
|
|
170
170
|
font-size: 32px;
|
|
171
171
|
font-weight: 400;
|
|
172
|
-
line-height:
|
|
172
|
+
line-height: 44px;
|
|
173
173
|
margin-bottom: 48px;
|
|
174
174
|
span {
|
|
175
175
|
font-size: 32px;
|
|
@@ -180,8 +180,18 @@
|
|
|
180
180
|
margin-bottom: 48px;
|
|
181
181
|
}
|
|
182
182
|
&__input {
|
|
183
|
+
&:before {
|
|
184
|
+
content: '';
|
|
185
|
+
position: absolute;
|
|
186
|
+
top: 0;
|
|
187
|
+
left: 0;
|
|
188
|
+
right: 0;
|
|
189
|
+
bottom: 0;
|
|
190
|
+
background-color: var(--input-bg);
|
|
191
|
+
border-radius: 8px;
|
|
192
|
+
}
|
|
183
193
|
:deep(.ui-main-input) {
|
|
184
|
-
background-color:
|
|
194
|
+
background-color: var(--input-bg);
|
|
185
195
|
}
|
|
186
196
|
:deep(input.ui-main-input:-internal-autofill-selected),
|
|
187
197
|
:deep(input.ui-main-input:-internal-autofill-selected:hover),
|
|
@@ -189,7 +199,7 @@
|
|
|
189
199
|
:deep(input.ui-main-input:-internal-autofill-selected:focus) {
|
|
190
200
|
appearance: menulist-button;
|
|
191
201
|
background-image: none !important;
|
|
192
|
-
background-color:
|
|
202
|
+
background-color: var(--input-bg) !important;
|
|
193
203
|
color: fieldtext !important;
|
|
194
204
|
-webkit-background-clip: text;
|
|
195
205
|
}
|
|
@@ -210,11 +220,11 @@
|
|
|
210
220
|
}
|
|
211
221
|
}
|
|
212
222
|
&__checkbox {
|
|
213
|
-
margin-top:
|
|
223
|
+
margin-top: 16px;
|
|
214
224
|
}
|
|
215
225
|
&__button {
|
|
216
226
|
@include flex($just: center, $align: center);
|
|
217
|
-
margin-top:
|
|
227
|
+
margin-top: 32px;
|
|
218
228
|
height: 44px;
|
|
219
229
|
border-radius: 8px;
|
|
220
230
|
:deep(svg) {
|
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<template v-if="props.name === 'zabbix'">
|
|
3
|
-
<svg
|
|
4
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
-
width="80"
|
|
6
|
-
height="22"
|
|
7
|
-
viewBox="0 0 80 22"
|
|
8
|
-
fill="none"
|
|
9
|
-
>
|
|
10
|
-
<g clip-path="url(#clip0_2691_29714)">
|
|
11
|
-
<path d="M0 0.522461H80V21.477H0V0.522461Z" fill="#D40000" />
|
|
12
|
-
<path
|
|
13
|
-
d="M3.42089 3.71582H14.9889V5.2187L5.6782 16.625H15.2164V18.2836H3.19336V16.7807L12.504 5.37438H3.42089V3.71582ZM23.0402 5.65779L20.3378 12.9087H25.7526L23.0402 5.65779ZM21.9145 3.71582H24.1738L29.7862 18.2836H27.7145L26.3753 14.5473H19.735L18.3938 18.2836H16.2922L21.9145 3.71582ZM33.9176 11.326V16.663H37.113C38.1848 16.663 38.9791 16.4434 39.496 16.0043C40.013 15.5652 40.2704 14.8926 40.2704 13.9905C40.2704 13.0804 40.013 12.4078 39.496 11.9747C38.9791 11.5436 38.1848 11.326 37.113 11.326H33.9176ZM33.9176 5.33446V9.72535H36.8675C37.8415 9.72535 38.566 9.54373 39.043 9.18447C39.52 8.82322 39.7575 8.27237 39.7575 7.5319C39.7575 6.79743 39.518 6.24657 39.043 5.88332C38.566 5.52008 37.8415 5.33646 36.8675 5.33646H33.9176V5.33446ZM31.9257 3.71582H37.0152C38.534 3.71582 39.7056 4.02717 40.5259 4.65188C41.3482 5.27658 41.7573 6.16474 41.7573 7.31635C41.7573 8.2065 41.5478 8.91703 41.1266 9.44393C40.7055 9.97084 40.0868 10.3002 39.2725 10.4299C40.2525 10.6375 41.0129 11.0706 41.5558 11.7312C42.0986 12.3918 42.3701 13.2161 42.3701 14.2041C42.3701 15.5054 41.923 16.5093 41.0289 17.2198C40.1347 17.9283 38.8614 18.2836 37.2128 18.2836H31.9257V3.71582ZM47.5573 11.326V16.663H50.7547C51.8265 16.663 52.6208 16.4434 53.1357 16.0043C53.6527 15.5652 53.9101 14.8926 53.9101 13.9905C53.9101 13.0804 53.6527 12.4078 53.1357 11.9747C52.6188 11.5436 51.8245 11.326 50.7547 11.326H47.5573ZM47.5573 5.33446V9.72535H50.5072C51.4812 9.72535 52.2057 9.54373 52.6827 9.18447C53.1597 8.82322 53.3972 8.27237 53.3972 7.5319C53.3972 6.79743 53.1597 6.24657 52.6827 5.88332C52.2057 5.52008 51.4812 5.33646 50.5072 5.33646H47.5573V5.33446ZM45.5654 3.71582H50.6549C52.1737 3.71582 53.3453 4.02717 54.1656 4.65188C54.9879 5.27658 55.399 6.16474 55.399 7.31635C55.399 8.2065 55.1895 8.91703 54.7683 9.44393C54.3472 9.97084 53.7285 10.3002 52.9142 10.4299C53.8942 10.6375 54.6546 11.0706 55.1975 11.7312C55.7403 12.3918 56.0118 13.2161 56.0118 14.2041C56.0118 15.5054 55.5647 16.5093 54.6706 17.2198C53.7764 17.9283 52.503 18.2836 50.8545 18.2836H45.5654V3.71582ZM64.9732 3.71582H67.1646L70.6274 8.94697L74.1242 3.71582H76.2418L71.6833 10.5397L76.8086 18.2836H74.6172L70.5835 12.1882L66.51 18.2836H64.3924L69.5297 10.5955L64.9732 3.71582ZM59.2031 3.71582H61.195V18.2836H59.2031V3.71582Z"
|
|
14
|
-
fill="white"
|
|
15
|
-
/>
|
|
16
|
-
</g>
|
|
17
|
-
<defs>
|
|
18
|
-
<clipPath id="clip0_2691_29714">
|
|
19
|
-
<rect
|
|
20
|
-
width="80"
|
|
21
|
-
height="20.96"
|
|
22
|
-
fill="white"
|
|
23
|
-
transform="translate(0 0.519531)"
|
|
24
|
-
/>
|
|
25
|
-
</clipPath>
|
|
26
|
-
</defs>
|
|
27
|
-
</svg>
|
|
28
|
-
</template>
|
|
29
|
-
<template v-else><span></span></template>
|
|
30
|
-
</template>
|
|
31
|
-
|
|
32
|
-
<script setup lang="ts">
|
|
33
|
-
const props = withDefaults(
|
|
34
|
-
defineProps<{
|
|
35
|
-
name: string
|
|
36
|
-
type?: string
|
|
37
|
-
color?: string
|
|
38
|
-
width?: string
|
|
39
|
-
height?: string
|
|
40
|
-
}>(),
|
|
41
|
-
{
|
|
42
|
-
type: '',
|
|
43
|
-
color: 'currentColor',
|
|
44
|
-
width: '24',
|
|
45
|
-
height: '24',
|
|
46
|
-
}
|
|
47
|
-
)
|
|
48
|
-
</script>
|
|
49
|
-
|
|
50
|
-
<style scoped lang="scss"></style>
|
|
1
|
+
<template>
|
|
2
|
+
<template v-if="props.name === 'zabbix'">
|
|
3
|
+
<svg
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="80"
|
|
6
|
+
height="22"
|
|
7
|
+
viewBox="0 0 80 22"
|
|
8
|
+
fill="none"
|
|
9
|
+
>
|
|
10
|
+
<g clip-path="url(#clip0_2691_29714)">
|
|
11
|
+
<path d="M0 0.522461H80V21.477H0V0.522461Z" fill="#D40000" />
|
|
12
|
+
<path
|
|
13
|
+
d="M3.42089 3.71582H14.9889V5.2187L5.6782 16.625H15.2164V18.2836H3.19336V16.7807L12.504 5.37438H3.42089V3.71582ZM23.0402 5.65779L20.3378 12.9087H25.7526L23.0402 5.65779ZM21.9145 3.71582H24.1738L29.7862 18.2836H27.7145L26.3753 14.5473H19.735L18.3938 18.2836H16.2922L21.9145 3.71582ZM33.9176 11.326V16.663H37.113C38.1848 16.663 38.9791 16.4434 39.496 16.0043C40.013 15.5652 40.2704 14.8926 40.2704 13.9905C40.2704 13.0804 40.013 12.4078 39.496 11.9747C38.9791 11.5436 38.1848 11.326 37.113 11.326H33.9176ZM33.9176 5.33446V9.72535H36.8675C37.8415 9.72535 38.566 9.54373 39.043 9.18447C39.52 8.82322 39.7575 8.27237 39.7575 7.5319C39.7575 6.79743 39.518 6.24657 39.043 5.88332C38.566 5.52008 37.8415 5.33646 36.8675 5.33646H33.9176V5.33446ZM31.9257 3.71582H37.0152C38.534 3.71582 39.7056 4.02717 40.5259 4.65188C41.3482 5.27658 41.7573 6.16474 41.7573 7.31635C41.7573 8.2065 41.5478 8.91703 41.1266 9.44393C40.7055 9.97084 40.0868 10.3002 39.2725 10.4299C40.2525 10.6375 41.0129 11.0706 41.5558 11.7312C42.0986 12.3918 42.3701 13.2161 42.3701 14.2041C42.3701 15.5054 41.923 16.5093 41.0289 17.2198C40.1347 17.9283 38.8614 18.2836 37.2128 18.2836H31.9257V3.71582ZM47.5573 11.326V16.663H50.7547C51.8265 16.663 52.6208 16.4434 53.1357 16.0043C53.6527 15.5652 53.9101 14.8926 53.9101 13.9905C53.9101 13.0804 53.6527 12.4078 53.1357 11.9747C52.6188 11.5436 51.8245 11.326 50.7547 11.326H47.5573ZM47.5573 5.33446V9.72535H50.5072C51.4812 9.72535 52.2057 9.54373 52.6827 9.18447C53.1597 8.82322 53.3972 8.27237 53.3972 7.5319C53.3972 6.79743 53.1597 6.24657 52.6827 5.88332C52.2057 5.52008 51.4812 5.33646 50.5072 5.33646H47.5573V5.33446ZM45.5654 3.71582H50.6549C52.1737 3.71582 53.3453 4.02717 54.1656 4.65188C54.9879 5.27658 55.399 6.16474 55.399 7.31635C55.399 8.2065 55.1895 8.91703 54.7683 9.44393C54.3472 9.97084 53.7285 10.3002 52.9142 10.4299C53.8942 10.6375 54.6546 11.0706 55.1975 11.7312C55.7403 12.3918 56.0118 13.2161 56.0118 14.2041C56.0118 15.5054 55.5647 16.5093 54.6706 17.2198C53.7764 17.9283 52.503 18.2836 50.8545 18.2836H45.5654V3.71582ZM64.9732 3.71582H67.1646L70.6274 8.94697L74.1242 3.71582H76.2418L71.6833 10.5397L76.8086 18.2836H74.6172L70.5835 12.1882L66.51 18.2836H64.3924L69.5297 10.5955L64.9732 3.71582ZM59.2031 3.71582H61.195V18.2836H59.2031V3.71582Z"
|
|
14
|
+
fill="white"
|
|
15
|
+
/>
|
|
16
|
+
</g>
|
|
17
|
+
<defs>
|
|
18
|
+
<clipPath id="clip0_2691_29714">
|
|
19
|
+
<rect
|
|
20
|
+
width="80"
|
|
21
|
+
height="20.96"
|
|
22
|
+
fill="white"
|
|
23
|
+
transform="translate(0 0.519531)"
|
|
24
|
+
/>
|
|
25
|
+
</clipPath>
|
|
26
|
+
</defs>
|
|
27
|
+
</svg>
|
|
28
|
+
</template>
|
|
29
|
+
<template v-else><span></span></template>
|
|
30
|
+
</template>
|
|
31
|
+
|
|
32
|
+
<script setup lang="ts">
|
|
33
|
+
const props = withDefaults(
|
|
34
|
+
defineProps<{
|
|
35
|
+
name: string
|
|
36
|
+
type?: string
|
|
37
|
+
color?: string
|
|
38
|
+
width?: string
|
|
39
|
+
height?: string
|
|
40
|
+
}>(),
|
|
41
|
+
{
|
|
42
|
+
type: '',
|
|
43
|
+
color: 'currentColor',
|
|
44
|
+
width: '24',
|
|
45
|
+
height: '24',
|
|
46
|
+
}
|
|
47
|
+
)
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<style scoped lang="scss"></style>
|
|
@@ -1,170 +1,170 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="tabs-overflow bottom-right">
|
|
3
|
-
<button
|
|
4
|
-
:id="collapsedBtnId"
|
|
5
|
-
:class="[
|
|
6
|
-
'btn btn-link nav-link dropdown-toggle',
|
|
7
|
-
{ active: collapsedBtnActive },
|
|
8
|
-
]"
|
|
9
|
-
:data-id="`${props.testId}-toggle-button`"
|
|
10
|
-
@mouseenter="hover = true"
|
|
11
|
-
@mouseleave="hover = false"
|
|
12
|
-
@mousedown="showMenu"
|
|
13
|
-
>
|
|
14
|
-
<atoms-the-icon
|
|
15
|
-
:class="['collapse-icon', { active: open }]"
|
|
16
|
-
name="ellipsis-horizontal"
|
|
17
|
-
width="16px"
|
|
18
|
-
height="16px"
|
|
19
|
-
/>
|
|
20
|
-
</button>
|
|
21
|
-
|
|
22
|
-
<Teleport to="body">
|
|
23
|
-
<ul
|
|
24
|
-
v-show="open"
|
|
25
|
-
:class="['navbar-dropdown-menu', props.popupClass]"
|
|
26
|
-
:style="dropdownMenuStyles"
|
|
27
|
-
>
|
|
28
|
-
<li
|
|
29
|
-
v-for="(item, key) in props.items"
|
|
30
|
-
:key="key"
|
|
31
|
-
v-permission="item.permission"
|
|
32
|
-
:title="item.title"
|
|
33
|
-
class="navbar-dropdown-menu-item"
|
|
34
|
-
@mousedown.stop
|
|
35
|
-
>
|
|
36
|
-
<div
|
|
37
|
-
v-if="item.separate"
|
|
38
|
-
class="navbar-dropdown-menu-separator"
|
|
39
|
-
></div>
|
|
40
|
-
<atoms-collapse-nav-item
|
|
41
|
-
v-else
|
|
42
|
-
:is-link="props.isLink"
|
|
43
|
-
:item="item"
|
|
44
|
-
:value="value"
|
|
45
|
-
btn-class="btn"
|
|
46
|
-
@change="change"
|
|
47
|
-
@select-file="onSelectFile($event, key)"
|
|
48
|
-
/>
|
|
49
|
-
</li>
|
|
50
|
-
</ul>
|
|
51
|
-
</Teleport>
|
|
52
|
-
</div>
|
|
53
|
-
</template>
|
|
54
|
-
|
|
55
|
-
<script setup lang="ts">
|
|
56
|
-
import type { UI_I_CollapseNavItem } from '~/components/atoms/collapse/lib/models/interfaces'
|
|
57
|
-
|
|
58
|
-
const props = withDefaults(
|
|
59
|
-
defineProps<{
|
|
60
|
-
items: UI_I_CollapseNavItem[]
|
|
61
|
-
isLink?: boolean
|
|
62
|
-
value?: number | string
|
|
63
|
-
popupClass?: string
|
|
64
|
-
closeAfterClick?: boolean
|
|
65
|
-
testId?: string
|
|
66
|
-
}>(),
|
|
67
|
-
{
|
|
68
|
-
isLink: undefined,
|
|
69
|
-
value: undefined,
|
|
70
|
-
popupClass: undefined,
|
|
71
|
-
closeAfterClick: undefined,
|
|
72
|
-
testId: '',
|
|
73
|
-
}
|
|
74
|
-
)
|
|
75
|
-
const emits = defineEmits<{
|
|
76
|
-
(event: 'change', value: number): void
|
|
77
|
-
(event: 'select-file', value1: Event, value2: string, value3: number): void
|
|
78
|
-
}>()
|
|
79
|
-
|
|
80
|
-
const change = (value: number): void => {
|
|
81
|
-
emits('change', value)
|
|
82
|
-
props.closeAfterClick && (open.value = false)
|
|
83
|
-
}
|
|
84
|
-
const onSelectFile = (event: Event, type: string, key: number): void => {
|
|
85
|
-
emits('select-file', event, type, key)
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
const collapsedBtnId = ref<string>('')
|
|
89
|
-
|
|
90
|
-
const route = useRoute()
|
|
91
|
-
const collapsedBtnActive = computed<boolean>(() => {
|
|
92
|
-
if (props.isLink)
|
|
93
|
-
return props.items.some((item) => route.path.includes(item.path || ''))
|
|
94
|
-
|
|
95
|
-
return props.items.some((item) => item.value === props.value)
|
|
96
|
-
})
|
|
97
|
-
|
|
98
|
-
const open = ref<boolean>(false)
|
|
99
|
-
const hover = ref<boolean>(false)
|
|
100
|
-
const dropdownMenuStyles = ref<any>({})
|
|
101
|
-
const showMenu = (): void => {
|
|
102
|
-
if (open.value) {
|
|
103
|
-
hideMenu(true)
|
|
104
|
-
return
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
open.value = true
|
|
108
|
-
|
|
109
|
-
const btn = document.querySelector(`#${collapsedBtnId.value}`)
|
|
110
|
-
const { top, height, right } = btn!.getBoundingClientRect()
|
|
111
|
-
dropdownMenuStyles.value = {
|
|
112
|
-
top: `${top + height}px`,
|
|
113
|
-
left: `${right}px`,
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
const hideMenu = (force?: boolean): void => {
|
|
117
|
-
if (hover.value && !force) return
|
|
118
|
-
|
|
119
|
-
open.value = false
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
const windowClick = (): void => {
|
|
123
|
-
hideMenu()
|
|
124
|
-
}
|
|
125
|
-
const windowResize = (): void => {
|
|
126
|
-
hideMenu(true)
|
|
127
|
-
}
|
|
128
|
-
onMounted(() => {
|
|
129
|
-
collapsedBtnId.value = `collapsed-btn${useUniqueId()}`
|
|
130
|
-
window.addEventListener('mousedown', windowClick)
|
|
131
|
-
window.addEventListener('resize', windowResize)
|
|
132
|
-
})
|
|
133
|
-
onUnmounted(() => {
|
|
134
|
-
window.removeEventListener('mousedown', windowClick)
|
|
135
|
-
window.removeEventListener('resize', windowResize)
|
|
136
|
-
})
|
|
137
|
-
</script>
|
|
138
|
-
|
|
139
|
-
<style scoped lang="scss">
|
|
140
|
-
.tabs-overflow {
|
|
141
|
-
position: absolute;
|
|
142
|
-
top: 0;
|
|
143
|
-
right: 24px;
|
|
144
|
-
|
|
145
|
-
.dropdown-toggle {
|
|
146
|
-
.collapse-icon {
|
|
147
|
-
fill: var(--main-color-mode);
|
|
148
|
-
|
|
149
|
-
&.active {
|
|
150
|
-
fill: #0077b8;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
.navbar-dropdown-menu {
|
|
157
|
-
position: fixed;
|
|
158
|
-
z-index: var(--z-dropdown);
|
|
159
|
-
transform: translateX(-100%);
|
|
160
|
-
border: 1px solid var(--global-border-color);
|
|
161
|
-
border-radius: 3px;
|
|
162
|
-
margin-top: 2px;
|
|
163
|
-
background-color: var(--global-bg-color);
|
|
164
|
-
padding: 12px 0;
|
|
165
|
-
}
|
|
166
|
-
.navbar-dropdown-menu-separator {
|
|
167
|
-
margin: 6px 0;
|
|
168
|
-
border-bottom: 0.8px solid #e8e8e8;
|
|
169
|
-
}
|
|
170
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="tabs-overflow bottom-right">
|
|
3
|
+
<button
|
|
4
|
+
:id="collapsedBtnId"
|
|
5
|
+
:class="[
|
|
6
|
+
'btn btn-link nav-link dropdown-toggle',
|
|
7
|
+
{ active: collapsedBtnActive },
|
|
8
|
+
]"
|
|
9
|
+
:data-id="`${props.testId}-toggle-button`"
|
|
10
|
+
@mouseenter="hover = true"
|
|
11
|
+
@mouseleave="hover = false"
|
|
12
|
+
@mousedown="showMenu"
|
|
13
|
+
>
|
|
14
|
+
<atoms-the-icon
|
|
15
|
+
:class="['collapse-icon', { active: open }]"
|
|
16
|
+
name="ellipsis-horizontal"
|
|
17
|
+
width="16px"
|
|
18
|
+
height="16px"
|
|
19
|
+
/>
|
|
20
|
+
</button>
|
|
21
|
+
|
|
22
|
+
<Teleport to="body">
|
|
23
|
+
<ul
|
|
24
|
+
v-show="open"
|
|
25
|
+
:class="['navbar-dropdown-menu', props.popupClass]"
|
|
26
|
+
:style="dropdownMenuStyles"
|
|
27
|
+
>
|
|
28
|
+
<li
|
|
29
|
+
v-for="(item, key) in props.items"
|
|
30
|
+
:key="key"
|
|
31
|
+
v-permission="item.permission"
|
|
32
|
+
:title="item.title"
|
|
33
|
+
class="navbar-dropdown-menu-item"
|
|
34
|
+
@mousedown.stop
|
|
35
|
+
>
|
|
36
|
+
<div
|
|
37
|
+
v-if="item.separate"
|
|
38
|
+
class="navbar-dropdown-menu-separator"
|
|
39
|
+
></div>
|
|
40
|
+
<atoms-collapse-nav-item
|
|
41
|
+
v-else
|
|
42
|
+
:is-link="props.isLink"
|
|
43
|
+
:item="item"
|
|
44
|
+
:value="value"
|
|
45
|
+
btn-class="btn"
|
|
46
|
+
@change="change"
|
|
47
|
+
@select-file="onSelectFile($event, key)"
|
|
48
|
+
/>
|
|
49
|
+
</li>
|
|
50
|
+
</ul>
|
|
51
|
+
</Teleport>
|
|
52
|
+
</div>
|
|
53
|
+
</template>
|
|
54
|
+
|
|
55
|
+
<script setup lang="ts">
|
|
56
|
+
import type { UI_I_CollapseNavItem } from '~/components/atoms/collapse/lib/models/interfaces'
|
|
57
|
+
|
|
58
|
+
const props = withDefaults(
|
|
59
|
+
defineProps<{
|
|
60
|
+
items: UI_I_CollapseNavItem[]
|
|
61
|
+
isLink?: boolean
|
|
62
|
+
value?: number | string
|
|
63
|
+
popupClass?: string
|
|
64
|
+
closeAfterClick?: boolean
|
|
65
|
+
testId?: string
|
|
66
|
+
}>(),
|
|
67
|
+
{
|
|
68
|
+
isLink: undefined,
|
|
69
|
+
value: undefined,
|
|
70
|
+
popupClass: undefined,
|
|
71
|
+
closeAfterClick: undefined,
|
|
72
|
+
testId: '',
|
|
73
|
+
}
|
|
74
|
+
)
|
|
75
|
+
const emits = defineEmits<{
|
|
76
|
+
(event: 'change', value: number): void
|
|
77
|
+
(event: 'select-file', value1: Event, value2: string, value3: number): void
|
|
78
|
+
}>()
|
|
79
|
+
|
|
80
|
+
const change = (value: number): void => {
|
|
81
|
+
emits('change', value)
|
|
82
|
+
props.closeAfterClick && (open.value = false)
|
|
83
|
+
}
|
|
84
|
+
const onSelectFile = (event: Event, type: string, key: number): void => {
|
|
85
|
+
emits('select-file', event, type, key)
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const collapsedBtnId = ref<string>('')
|
|
89
|
+
|
|
90
|
+
const route = useRoute()
|
|
91
|
+
const collapsedBtnActive = computed<boolean>(() => {
|
|
92
|
+
if (props.isLink)
|
|
93
|
+
return props.items.some((item) => route.path.includes(item.path || ''))
|
|
94
|
+
|
|
95
|
+
return props.items.some((item) => item.value === props.value)
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
const open = ref<boolean>(false)
|
|
99
|
+
const hover = ref<boolean>(false)
|
|
100
|
+
const dropdownMenuStyles = ref<any>({})
|
|
101
|
+
const showMenu = (): void => {
|
|
102
|
+
if (open.value) {
|
|
103
|
+
hideMenu(true)
|
|
104
|
+
return
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
open.value = true
|
|
108
|
+
|
|
109
|
+
const btn = document.querySelector(`#${collapsedBtnId.value}`)
|
|
110
|
+
const { top, height, right } = btn!.getBoundingClientRect()
|
|
111
|
+
dropdownMenuStyles.value = {
|
|
112
|
+
top: `${top + height}px`,
|
|
113
|
+
left: `${right}px`,
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
const hideMenu = (force?: boolean): void => {
|
|
117
|
+
if (hover.value && !force) return
|
|
118
|
+
|
|
119
|
+
open.value = false
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const windowClick = (): void => {
|
|
123
|
+
hideMenu()
|
|
124
|
+
}
|
|
125
|
+
const windowResize = (): void => {
|
|
126
|
+
hideMenu(true)
|
|
127
|
+
}
|
|
128
|
+
onMounted(() => {
|
|
129
|
+
collapsedBtnId.value = `collapsed-btn${useUniqueId()}`
|
|
130
|
+
window.addEventListener('mousedown', windowClick)
|
|
131
|
+
window.addEventListener('resize', windowResize)
|
|
132
|
+
})
|
|
133
|
+
onUnmounted(() => {
|
|
134
|
+
window.removeEventListener('mousedown', windowClick)
|
|
135
|
+
window.removeEventListener('resize', windowResize)
|
|
136
|
+
})
|
|
137
|
+
</script>
|
|
138
|
+
|
|
139
|
+
<style scoped lang="scss">
|
|
140
|
+
.tabs-overflow {
|
|
141
|
+
position: absolute;
|
|
142
|
+
top: 0;
|
|
143
|
+
right: 24px;
|
|
144
|
+
|
|
145
|
+
.dropdown-toggle {
|
|
146
|
+
.collapse-icon {
|
|
147
|
+
fill: var(--main-color-mode);
|
|
148
|
+
|
|
149
|
+
&.active {
|
|
150
|
+
fill: #0077b8;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.navbar-dropdown-menu {
|
|
157
|
+
position: fixed;
|
|
158
|
+
z-index: var(--z-dropdown);
|
|
159
|
+
transform: translateX(-100%);
|
|
160
|
+
border: 1px solid var(--global-border-color);
|
|
161
|
+
border-radius: 3px;
|
|
162
|
+
margin-top: 2px;
|
|
163
|
+
background-color: var(--global-bg-color);
|
|
164
|
+
padding: 12px 0;
|
|
165
|
+
}
|
|
166
|
+
.navbar-dropdown-menu-separator {
|
|
167
|
+
margin: 6px 0;
|
|
168
|
+
border-bottom: 0.8px solid #e8e8e8;
|
|
169
|
+
}
|
|
170
|
+
</style>
|
|
@@ -119,6 +119,7 @@ onUnmounted(() => {
|
|
|
119
119
|
.dropdown-menu {
|
|
120
120
|
position: fixed;
|
|
121
121
|
transform: translateX(-100%);
|
|
122
|
+
background-color: var(--dropdown-bg-color);
|
|
122
123
|
|
|
123
124
|
h4 {
|
|
124
125
|
font-size: 12px;
|
|
@@ -130,6 +131,7 @@ onUnmounted(() => {
|
|
|
130
131
|
button {
|
|
131
132
|
&:hover {
|
|
132
133
|
border-bottom: 1px solid #666;
|
|
134
|
+
color: #565656;
|
|
133
135
|
}
|
|
134
136
|
}
|
|
135
137
|
}
|