bfg-common 1.5.693 → 1.5.695
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-1.svg +2 -3
- 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-1.svg +3 -4
- 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 +6 -1
- package/assets/localization/local_en.json +6 -1
- package/assets/localization/local_hy.json +6 -1
- package/assets/localization/local_kk.json +6 -1
- package/assets/localization/local_ru.json +6 -1
- package/assets/localization/local_zh.json +6 -1
- package/assets/scss/common/icons/icons-1.scss +1 -1
- package/assets/scss/components/auth.scss +17 -0
- package/components/atoms/TheIcon3.vue +50 -50
- package/components/atoms/collapse/CollapseNav.vue +170 -170
- package/components/atoms/perPage/PerPage.vue +58 -58
- package/components/atoms/switch/Switch.vue +103 -103
- 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/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/help/navbar/left/lib/utils/constructAccordion.ts +2 -1
- package/components/common/help/navbar/right/Right.vue +1 -1
- 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/PreferencesOld.vue +144 -144
- package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
- 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/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/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/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/package.json +1 -1
- package/plugins/console.ts +21 -21
- package/plugins/date.ts +375 -398
- 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
|
@@ -3761,6 +3761,8 @@
|
|
|
3761
3761
|
"enterOtpCode": "Увядзіце 6-значны код",
|
|
3762
3762
|
"otpCode": "6-значны код",
|
|
3763
3763
|
"otpCodeErrorLength": "Код павінен складацца з 6 лічбаў",
|
|
3764
|
+
"enterOtpVerifyCode": "Увядзіце 6-значны код пацверджання",
|
|
3765
|
+
"backToLogin": "Вярнуцца да ўваходу",
|
|
3764
3766
|
"qrcodeDescription": "Скануйце гэты QR-код з дапамогай праграмы-аўтэнтыфікатара альбо ўвядзіце адзін з гэтых кодаў уручную. Пасля гэтага пацвердзіце дзеянне, увёўшы аднаразовы код ніжэй."
|
|
3765
3767
|
},
|
|
3766
3768
|
"ssoConfiguration": {
|
|
@@ -3785,6 +3787,7 @@
|
|
|
3785
3787
|
},
|
|
3786
3788
|
"cacheConfiguration": {
|
|
3787
3789
|
"cacheConfiguration": "Канфігурацыі кэшавання",
|
|
3790
|
+
"ceph_detailed": "Дэталі Ceph",
|
|
3788
3791
|
"cpu": "CPU",
|
|
3789
3792
|
"memory": "Памяць",
|
|
3790
3793
|
"network": "Сетка",
|
|
@@ -3800,6 +3803,8 @@
|
|
|
3800
3803
|
"cpu_temp": "Тэмпература CPU",
|
|
3801
3804
|
"power": "Сілкаванне",
|
|
3802
3805
|
"services": "Сэрвісы",
|
|
3803
|
-
"activateAll": "Актываваць усе"
|
|
3806
|
+
"activateAll": "Актываваць усе",
|
|
3807
|
+
"active": "Актыўны",
|
|
3808
|
+
"inactive": "Inactive"
|
|
3804
3809
|
}
|
|
3805
3810
|
}
|
|
@@ -3765,6 +3765,8 @@
|
|
|
3765
3765
|
"enterOtpCode": "Enter the 6-digit code",
|
|
3766
3766
|
"otpCode": "6-digit code",
|
|
3767
3767
|
"otpCodeErrorLength": "Code must be 6 digits",
|
|
3768
|
+
"enterOtpVerifyCode": "Enter the 6-digit verification code.",
|
|
3769
|
+
"backToLogin": "Back to Login",
|
|
3768
3770
|
"qrcodeDescription": "Scan this QR code with your authenticator app, or enter one of these codes manually. After that, confirm the action by entering the one-time code below."
|
|
3769
3771
|
},
|
|
3770
3772
|
"ssoConfiguration": {
|
|
@@ -3789,6 +3791,7 @@
|
|
|
3789
3791
|
},
|
|
3790
3792
|
"cacheConfiguration": {
|
|
3791
3793
|
"cacheConfiguration": "Cache Configuration",
|
|
3794
|
+
"ceph_detailed": "Ceph Detailed",
|
|
3792
3795
|
"cpu": "CPU",
|
|
3793
3796
|
"memory": "Memory",
|
|
3794
3797
|
"network": "Network",
|
|
@@ -3804,6 +3807,8 @@
|
|
|
3804
3807
|
"cpu_temp": "CPU Temperature",
|
|
3805
3808
|
"power": "Power",
|
|
3806
3809
|
"services": "Services",
|
|
3807
|
-
"activateAll": "Activate All"
|
|
3810
|
+
"activateAll": "Activate All",
|
|
3811
|
+
"active": "Active",
|
|
3812
|
+
"inactive": "Inactive"
|
|
3808
3813
|
}
|
|
3809
3814
|
}
|
|
@@ -3765,6 +3765,8 @@
|
|
|
3765
3765
|
"enterOtpCode": "Մուտքագրեք 6-նիշ կոդը",
|
|
3766
3766
|
"otpCode": "6-նիշ կոդ",
|
|
3767
3767
|
"otpCodeErrorLength": "Կոդը պետք է բաղկացած լինի 6 թվից",
|
|
3768
|
+
"enterOtpVerifyCode": "Մուտքագրեք 6-նիշ հաստատման կոդը",
|
|
3769
|
+
"backToLogin": "Վերադառնալ մուտքի էջ",
|
|
3768
3770
|
"qrcodeDescription": "Սկանավորեք այս QR կոդը ձեր նույնականացման հավելվածով կամ մուտքագրեք այս կոդերից մեկը ձեռքով: Դրանից հետո հաստատեք գործողությունը՝ ներքևում մուտքագրելով միանգամյա կոդը:"
|
|
3769
3771
|
},
|
|
3770
3772
|
"ssoConfiguration": {
|
|
@@ -3789,6 +3791,7 @@
|
|
|
3789
3791
|
},
|
|
3790
3792
|
"cacheConfiguration": {
|
|
3791
3793
|
"cacheConfiguration": "Քեշավորման կոնֆիգուրացիաներ",
|
|
3794
|
+
"ceph_detailed": "Ceph-ի մանրամասներ",
|
|
3792
3795
|
"cpu": "CPU",
|
|
3793
3796
|
"memory": "Հիշողություն",
|
|
3794
3797
|
"network": "Ցանց",
|
|
@@ -3804,6 +3807,8 @@
|
|
|
3804
3807
|
"cpu_temp": "CPU Ջերմաստիճան",
|
|
3805
3808
|
"power": "Էլեկտրամատակարարում",
|
|
3806
3809
|
"services": "Ծառայություններ",
|
|
3807
|
-
"activateAll": "Ակտիվացրեք բոլորը"
|
|
3810
|
+
"activateAll": "Ակտիվացրեք բոլորը",
|
|
3811
|
+
"active": "Ակտիվ",
|
|
3812
|
+
"inactive": "Ոչ ակտիվ"
|
|
3808
3813
|
}
|
|
3809
3814
|
}
|
|
@@ -3764,6 +3764,8 @@
|
|
|
3764
3764
|
"enterOtpCode": "6 таңбалы кодты енгізіңіз",
|
|
3765
3765
|
"otpCode": "6 таңбалы код",
|
|
3766
3766
|
"otpCodeErrorLength": "Код 6 саннан тұруы керек",
|
|
3767
|
+
"enterOtpVerifyCode": "6 таңбалы растау кодын енгізіңіз",
|
|
3768
|
+
"backToLogin": "Кіру бетіне оралу",
|
|
3767
3769
|
"qrcodeDescription": "Бұл QR-кодты аутентификатор қолданбасымен сканерлеңіз немесе осы кодтардың бірін қолмен енгізіңіз. Содан кейін әрекетті төмендегі бір реттік кодты енгізу арқылы растаңыз."
|
|
3768
3770
|
},
|
|
3769
3771
|
"ssoConfiguration": {
|
|
@@ -3788,6 +3790,7 @@
|
|
|
3788
3790
|
},
|
|
3789
3791
|
"cacheConfiguration": {
|
|
3790
3792
|
"cacheConfiguration": "Кэшталу конфигурациялары",
|
|
3793
|
+
"ceph_detailed": "Ceph егжей-тегжейі",
|
|
3791
3794
|
"cpu": "CPU",
|
|
3792
3795
|
"memory": "Жад",
|
|
3793
3796
|
"network": "Желі",
|
|
@@ -3803,6 +3806,8 @@
|
|
|
3803
3806
|
"cpu_temp": "CPU Температурасы",
|
|
3804
3807
|
"power": "Қуат",
|
|
3805
3808
|
"services": "Қызметтер",
|
|
3806
|
-
"activateAll": "Барлығын белсендіру"
|
|
3809
|
+
"activateAll": "Барлығын белсендіру",
|
|
3810
|
+
"active": "Белсенді",
|
|
3811
|
+
"inactive": "Белсенді емес"
|
|
3807
3812
|
}
|
|
3808
3813
|
}
|
|
@@ -3764,6 +3764,8 @@
|
|
|
3764
3764
|
"enterOtpCode": "Введите 6-значный код",
|
|
3765
3765
|
"otpCode": "6-значный код",
|
|
3766
3766
|
"otpCodeErrorLength": "Код должен состоять из 6 цифр",
|
|
3767
|
+
"enterOtpVerifyCode": "Введите 6-значный код подтверждения",
|
|
3768
|
+
"backToLogin": "Вернуться ко входу",
|
|
3767
3769
|
"qrcodeDescription": "Отсканируйте этот QR-код с помощью приложения-аутентификатора или введите один из этих кодов вручную. После этого подтвердите действие, введя одноразовый код ниже."
|
|
3768
3770
|
},
|
|
3769
3771
|
"ssoConfiguration": {
|
|
@@ -3788,6 +3790,7 @@
|
|
|
3788
3790
|
},
|
|
3789
3791
|
"cacheConfiguration": {
|
|
3790
3792
|
"cacheConfiguration": "Конфигурации кэширования",
|
|
3793
|
+
"ceph_detailed": "Детали Ceph",
|
|
3791
3794
|
"cpu": "Процессор",
|
|
3792
3795
|
"memory": "Память",
|
|
3793
3796
|
"network": "Сеть",
|
|
@@ -3803,6 +3806,8 @@
|
|
|
3803
3806
|
"cpu_temp": "Температура Процессора",
|
|
3804
3807
|
"power": "Питание",
|
|
3805
3808
|
"services": "Службы",
|
|
3806
|
-
"activateAll": "Активировать все"
|
|
3809
|
+
"activateAll": "Активировать все",
|
|
3810
|
+
"active": "Активный",
|
|
3811
|
+
"inactive": "Неактивный"
|
|
3807
3812
|
}
|
|
3808
3813
|
}
|
|
@@ -3762,6 +3762,8 @@
|
|
|
3762
3762
|
"enterOtpCode": "输入 6 位数代码",
|
|
3763
3763
|
"otpCode": "6 位数代码",
|
|
3764
3764
|
"otpCodeErrorLength": "代码必须是 6 位数字",
|
|
3765
|
+
"enterOtpVerifyCode": "请输入 6 位数的验证码",
|
|
3766
|
+
"backToLogin": "返回登录",
|
|
3765
3767
|
"qrcodeDescription": "使用您的身份验证器应用程序扫描此QR码,或手动输入其中一个代码。然后,通过输入下面的一次性代码来确认操作。"
|
|
3766
3768
|
},
|
|
3767
3769
|
"ssoConfiguration": {
|
|
@@ -3786,6 +3788,7 @@
|
|
|
3786
3788
|
},
|
|
3787
3789
|
"cacheConfiguration": {
|
|
3788
3790
|
"cacheConfiguration": "缓存配置",
|
|
3791
|
+
"ceph_detailed": "Ceph 详细信息",
|
|
3789
3792
|
"cpu": "CPU",
|
|
3790
3793
|
"memory": "内存",
|
|
3791
3794
|
"network": "网络",
|
|
@@ -3801,6 +3804,8 @@
|
|
|
3801
3804
|
"cpu_temp": "CPU 温度",
|
|
3802
3805
|
"power": "电源",
|
|
3803
3806
|
"services": "服务",
|
|
3804
|
-
"activateAll": "全部激活"
|
|
3807
|
+
"activateAll": "全部激活",
|
|
3808
|
+
"active": "积极的",
|
|
3809
|
+
"inactive": "不活跃"
|
|
3805
3810
|
}
|
|
3806
3811
|
}
|
|
@@ -176,6 +176,23 @@
|
|
|
176
176
|
color: #008fd6;
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
|
+
&__otp-text-block {
|
|
180
|
+
.title-block {
|
|
181
|
+
font-size: 16px;
|
|
182
|
+
font-weight: 400;
|
|
183
|
+
color: #4d5d69;
|
|
184
|
+
line-height: 22px;
|
|
185
|
+
}
|
|
186
|
+
.subtitle-block {
|
|
187
|
+
font-size: 14px;
|
|
188
|
+
font-weight: 400;
|
|
189
|
+
color: #9da6ad;
|
|
190
|
+
line-height: 20px;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
:deep(input.otp-input) {
|
|
194
|
+
height: 44px;
|
|
195
|
+
}
|
|
179
196
|
&__alert {
|
|
180
197
|
margin-bottom: 48px;
|
|
181
198
|
}
|
|
@@ -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>
|