bfg-common 1.5.737 → 1.5.738
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 +2 -1
- package/assets/localization/local_en.json +2 -1
- package/assets/localization/local_hy.json +2 -1
- package/assets/localization/local_kk.json +2 -1
- package/assets/localization/local_ru.json +2 -1
- package/assets/localization/local_zh.json +2 -1
- 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/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/layout/console/Console.vue +70 -70
- 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 +116 -115
- package/components/common/pages/backups/modals/lib/models/interfaces.ts +187 -186
- package/components/common/pages/backups/modals/restore/Old.vue +5 -0
- package/components/common/pages/backups/modals/restore/Restore.vue +302 -289
- package/components/common/pages/backups/modals/restore/disks/Disks.vue +50 -32
- package/components/common/pages/backups/modals/restore/disks/DisksNew.vue +2 -2
- package/components/common/pages/backups/modals/restore/disks/DisksOld.vue +2 -2
- package/components/common/pages/backups/modals/restore/lib/config/readyToCompleteOptions.ts +85 -85
- package/components/common/pages/backups/modals/restore/lib/config/steps.ts +130 -121
- package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
- package/components/common/pages/backups/modals/restore/types/New.vue +95 -95
- package/components/common/pages/backups/modals/restore/types/Old.vue +62 -62
- package/components/common/pages/backups/modals/restore/types/Types.vue +31 -31
- package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +0 -5
- 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/pages/tasks/Tasks.vue +125 -125
- package/components/common/pages/tasks/table/Table.vue +373 -373
- package/components/common/pages/tasks/table/lib/config/config.ts +279 -279
- package/components/common/pages/tasks/table/lib/models/interfaces.ts +9 -9
- 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/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/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/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 +227 -228
- package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
- package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
- package/composables/useAppVersion.ts +21 -21
- package/composables/useBrowse.ts +24 -24
- package/composables/useLocal.ts +6 -6
- package/composables/useLocalCommon.ts +39 -39
- package/lib/models/types.ts +59 -59
- package/package.json +1 -1
- 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
|
@@ -2262,6 +2262,7 @@
|
|
|
2262
2262
|
"restoreDiskOnly": "Аднавіць толькі дыск",
|
|
2263
2263
|
"restoreDiskOnly2": "Аднавіць толькі дыск",
|
|
2264
2264
|
"selectDisks": "Абярыце Дыскі",
|
|
2265
|
+
"selectDisksForCopy": "Выберыце дыскі для капіявання",
|
|
2265
2266
|
"clickFinishRestore": "Націсніце \"Гатова\", каб аднавіць",
|
|
2266
2267
|
"backup": "Рэзервовае капіраванне",
|
|
2267
2268
|
"backupBuckets": "Рэзервовыя кантэйнеры",
|
|
@@ -3618,7 +3619,7 @@
|
|
|
3618
3619
|
"heartbeatDatastore": "Сховішчы heartbeat",
|
|
3619
3620
|
"failuresAndResponsesDesc": "Вы можаце наладзіць, як Sphere HA будзе рэагаваць на збоі ў гэтым кластары. Падтрымліваюцца наступныя тыпы збояў: хост, ізаляцыя хоста, абарона кампанентаў ВМ (сховішчы з PDL і APD), ВМ і прыкладанне.",
|
|
3620
3621
|
"admissionControlDesc": "Кантроль допуску — гэта палітыка Sphere HA для забеспячэння рэзерваў у кластары на выпадак збою. Павелічэнне колькасці магчымых збояў павышае патрабаванні да даступнасці і рэзерваў.",
|
|
3621
|
-
"heartbeatDatastoreDesc": "Sphere
|
|
3622
|
+
"heartbeatDatastoreDesc": "Sphere выкарыстоўвае сховішчы дадзеных для маніторынгу хастоў і віртуальных машын у выпадку збою сеткі высокай даступнасці. Sphere выбірае 2 сховішчы дадзеных для кожнага хаста, выкарыстоўваючы палітыку і налады сховішча дадзеных, указаныя ніжэй.",
|
|
3622
3623
|
"advancedOptionsDesc": "Вы можаце наладзіць пашыраныя параметры, што ўплываюць на паводзіны кластара vSphere HA.",
|
|
3623
3624
|
"sphereHaMonitoringTooltipContent": "Хосты ESX/ESXi у гэтым кластары абменьваюцца сеткавымі heartbeat-сігналамі. Адключыце гэтую функцыю падчас сеткавых прац, якія могуць выклікаць ізаляцыю.",
|
|
3624
3625
|
"enableHostMonitoring": "Уключыць маніторынг хостаў",
|
|
@@ -2265,6 +2265,7 @@
|
|
|
2265
2265
|
"restoreDiskOnly": "Restore Disk only",
|
|
2266
2266
|
"restoreDiskOnly2": "Restore Disk Only",
|
|
2267
2267
|
"selectDisks": "Select Disks",
|
|
2268
|
+
"selectDisksForCopy": "Select Disks for Copy",
|
|
2268
2269
|
"clickFinishRestore": "Click Finish to Restore",
|
|
2269
2270
|
"backup": "Backup",
|
|
2270
2271
|
"backupBuckets": "Backup Buckets",
|
|
@@ -3622,7 +3623,7 @@
|
|
|
3622
3623
|
"heartbeatDatastore": "Heartbeat Datastores",
|
|
3623
3624
|
"failuresAndResponsesDesc": "You can configure how Sphere HA responds to the failure conditions on\n this cluster. The following failure conditions are supported: host, host\n isolation, VM component protection (datastore with PDL and APD), VM and\n application.",
|
|
3624
3625
|
"admissionControlDesc": "Admission control is a policy used by Sphere HA to ensure failover capacity within a cluster. Raising the number of potential host failures will increase the availability constraints and capacity reserved.",
|
|
3625
|
-
"heartbeatDatastoreDesc": "Sphere
|
|
3626
|
+
"heartbeatDatastoreDesc": "Sphere uses datastores to monitor hosts and virtual machines when the HA network has failed. Sphere selects 2 datastores for each host using the policy and datastore preferences specified below.",
|
|
3626
3627
|
"advancedOptionsDesc": "You can set advanced options that affect the behavior of your vSphere HA cluster.",
|
|
3627
3628
|
"sphereHaMonitoringTooltipContent": "ESX/ESXi hosts in this cluster exchange network heartbeats. Disable this feature when performing network maintenance that may cause isolation responses.",
|
|
3628
3629
|
"enableHostMonitoring": "Enable Host Monitoring",
|
|
@@ -2265,6 +2265,7 @@
|
|
|
2265
2265
|
"restoreDiskOnly": "Վերականգնել միայն սկավառակը",
|
|
2266
2266
|
"restoreDiskOnly2": "Վերականգնել միայն սկավառակը",
|
|
2267
2267
|
"selectDisks": "Ընտրեք Սկավառակներ",
|
|
2268
|
+
"selectDisksForCopy": "Ընտրեք պատճենման համար սկավառակները",
|
|
2268
2269
|
"clickFinishRestore": "Սեղմեք Ավարտել՝ վերականգնելու համար",
|
|
2269
2270
|
"backup": "Կրկնօրինակում",
|
|
2270
2271
|
"backupBuckets": "Պահուստային դույլեր",
|
|
@@ -3622,7 +3623,7 @@
|
|
|
3622
3623
|
"heartbeatDatastore": "Heartbeat տվյալների պահոցներ",
|
|
3623
3624
|
"failuresAndResponsesDesc": "Դուք կարող եք կարգավորել՝ ինչպես Sphere HA-ն պետք է արձագանքի այս կլաստերում առաջացած խափանումներին։ Աջակցվող խափանումներ են՝ հոսթի խնդիր, հոսթի մեկուսացում, վիրտուալ մեքենայի բաղադրիչների պաշտպանություն (տվյալների պահոց PDL և APD), վիրտուալ մեքենայի և հավելվածի խնդիրներ։",
|
|
3624
3625
|
"admissionControlDesc": "Ընդունման վերահսկումը քաղաքականություն է, որը օգտագործում է Sphere HA՝ կլաստերում վթարային փոխանցման ռեսուրսները ապահովելու համար։ Հոսթերի հնարավոր խափանումների թիվը բարձրացնելը մեծացնում է պահանջվող ռեսուրսներն ու սահմանափակումները։",
|
|
3625
|
-
"heartbeatDatastoreDesc": "Sphere HA-ն օգտագործում է տվյալների պահոցներ՝ մոնիթորինգի համար, երբ HA ցանցը ձախողվում
|
|
3626
|
+
"heartbeatDatastoreDesc": "Sphere HA-ն օգտագործում է տվյալների պահոցներ՝ հոսթերին և վիրտուալ մեքենաներին մոնիթորինգի ենթարկելու համար, երբ HA ցանցը ձախողվում է: Sphere-ը յուրաքանչյուր հոսթի համար ընտրում է 2 տվյալների պահոց՝ օգտագործելով ստորև նշված քաղաքականությունը և տվյալների պահոցի նախընտրությունները:",
|
|
3626
3627
|
"advancedOptionsDesc": "Դուք կարող եք սահմանել առաջադեմ կարգավորումներ, որոնք ազդում են vSphere HA կլաստերի աշխատանքի վրա։",
|
|
3627
3628
|
"sphereHaMonitoringTooltipContent": "Այս կլաստերի ESX/ESXi հոսթերը փոխանակվում են heartbeat-երով ցանցում։ Անջատեք այս ֆունկցիան, եթե իրականացնում եք ցանցային սպասարկում, որը կարող է առաջացնել մեկուսացում։",
|
|
3628
3629
|
"enableHostMonitoring": "Միացնել հոսթի մոնիթորինգը",
|
|
@@ -2264,6 +2264,7 @@
|
|
|
2264
2264
|
"restoreDiskOnly": "Тек дискіні қалпына келтіру",
|
|
2265
2265
|
"restoreDiskOnly2": "Тек дискіні қалпына келтіру",
|
|
2266
2266
|
"selectDisks": "Дисктерді таңдаңыз",
|
|
2267
|
+
"selectDisksForCopy": "Көшіру үшін дисктерді таңдаңыз",
|
|
2267
2268
|
"clickFinishRestore": "Қалпына келтіру үшін Аяқтау түймесін басыңыз",
|
|
2268
2269
|
"backup": "Сақтық көшірме",
|
|
2269
2270
|
"backupBuckets": "Сақтық көшірме шелектері",
|
|
@@ -3621,7 +3622,7 @@
|
|
|
3621
3622
|
"heartbeatDatastore": "Heartbeat деректер қоймалары",
|
|
3622
3623
|
"failuresAndResponsesDesc": "Осы кластердегі ақауларға Sphere HA қалай әрекет ететінін баптай аласыз. Қолдау көрсетілетін ақау түрлері: хост, хост оқшаулануы, VM компоненттерін қорғау (PDL және APD бар деректер қоймасы), VM және қолданба.",
|
|
3623
3624
|
"admissionControlDesc": "Admission control — бұл кластер ішінде істен шығуға қарсы қуаттылықты қамтамасыз ету үшін Sphere HA қолданатын саясат. Хост істен шығу ықтималдылығын арттыру — қосымша қуат пен шектеулерді талап етеді.",
|
|
3624
|
-
"heartbeatDatastoreDesc": "Sphere HA
|
|
3625
|
+
"heartbeatDatastoreDesc": "Sphere HA желісі сәтсіз болған кезде хосттар мен виртуалды машиналарды бақылау үшін деректер қоймаларын пайдаланады. Sphere төменде көрсетілген саясат пен деректер қоймасының теңшелімдерін пайдаланып әрбір хост үшін 2 деректер қоймасын таңдайды.",
|
|
3625
3626
|
"advancedOptionsDesc": "vSphere HA кластерінің жұмысын реттейтін кеңейтілген параметрлерді орната аласыз.",
|
|
3626
3627
|
"sphereHaMonitoringTooltipContent": "Осы кластердегі ESX/ESXi хосттары бір-бірімен желілік heartbeat сигналдарын алмасады. Оқшаулау реакциясын болдырмас үшін бұл мүмкіндікті техникалық қызмет көрсету кезінде өшіріңіз.",
|
|
3627
3628
|
"enableHostMonitoring": "Хост мониторингін қосу",
|
|
@@ -2264,6 +2264,7 @@
|
|
|
2264
2264
|
"restoreDiskOnly": "Восстановить только диск",
|
|
2265
2265
|
"restoreDiskOnly2": "Восстановить только диск",
|
|
2266
2266
|
"selectDisks": "Выберите диски",
|
|
2267
|
+
"selectDisksForCopy": "Выберите диски для копирования",
|
|
2267
2268
|
"clickFinishRestore": "Нажмите «Готово», чтобы восстановить",
|
|
2268
2269
|
"backup": "Резервноя копия",
|
|
2269
2270
|
"backupBuckets": "Резервные ведра",
|
|
@@ -3621,7 +3622,7 @@
|
|
|
3621
3622
|
"heartbeatDatastore": "Хранилища heartbeat",
|
|
3622
3623
|
"failuresAndResponsesDesc": "Вы можете настроить, как Sphere HA будет реагировать на сбои в этом кластере. Поддерживаются следующие типы сбоев: сбой хоста, изоляция хоста, защита компонентов ВМ (хранилища с PDL и APD), сбой ВМ и приложения.",
|
|
3623
3624
|
"admissionControlDesc": "Контроль допуска — это политика, используемая Sphere HA для обеспечения ресурсов на случай отказа в пределах кластера. Увеличение количества допустимых отказов хостов повышает требования к доступности и резервируемой емкости.",
|
|
3624
|
-
"heartbeatDatastoreDesc": "Sphere HA использует хранилища для мониторинга хостов и виртуальных машин в случае сбоя HA-сети.
|
|
3625
|
+
"heartbeatDatastoreDesc": "Sphere HA использует хранилища для мониторинга хостов и виртуальных машин в случае сбоя HA-сети. Sphere выбирает 2 хранилища данных для каждого хоста используя политику и параметры хранилищ данных, указанные ниже.",
|
|
3625
3626
|
"advancedOptionsDesc": "Вы можете задать расширенные параметры, влияющие на поведение кластера vSphere HA.",
|
|
3626
3627
|
"sphereHaMonitoringTooltipContent": "Хосты ESX/ESXi в этом кластере обмениваются сетевыми heartbeat-сигналами. Отключите эту функцию при обслуживании сети, которое может вызвать изоляцию.",
|
|
3627
3628
|
"enableHostMonitoring": "Включить мониторинг хостов",
|
|
@@ -2262,6 +2262,7 @@
|
|
|
2262
2262
|
"restoreDiskOnly": "仅恢复磁盘",
|
|
2263
2263
|
"restoreDiskOnly2": "仅恢复磁盘",
|
|
2264
2264
|
"selectDisks": "选择磁盘",
|
|
2265
|
+
"selectDisksForCopy": "选择要复制的磁盘",
|
|
2265
2266
|
"clickFinishRestore": "单击“完成”进行恢复",
|
|
2266
2267
|
"backup": "备份",
|
|
2267
2268
|
"backupBuckets": "备份存储桶",
|
|
@@ -3619,7 +3620,7 @@
|
|
|
3619
3620
|
"heartbeatDatastore": "Heartbeat 数据存储",
|
|
3620
3621
|
"failuresAndResponsesDesc": "您可以配置 Sphere HA 如何响应此集群中的故障情况。支持的故障类型包括:主机、主机隔离、VM 组件保护(具有 PDL 和 APD 的数据存储)、虚拟机和应用程序。",
|
|
3621
3622
|
"admissionControlDesc": "准入控制是 Sphere HA 用于确保集群内故障转移能力的策略。提高可能的主机故障数量将增加可用性限制和预留容量。",
|
|
3622
|
-
"heartbeatDatastoreDesc": "
|
|
3623
|
+
"heartbeatDatastoreDesc": "当高可用性网络发生故障时,Sphere 使用数据存储来监控主机和虚拟机。Sphere 会根据下面指定的策略和数据存储首选项,为每个主机选择 2 个数据存储。",
|
|
3623
3624
|
"advancedOptionsDesc": "您可以设置高级选项来影响 vSphere HA 集群的行为。",
|
|
3624
3625
|
"sphereHaMonitoringTooltipContent": "此集群中的 ESX/ESXi 主机之间会交换网络 heartbeat。执行可能导致隔离响应的网络维护时,请禁用此功能。",
|
|
3625
3626
|
"enableHostMonitoring": "启用主机监控",
|
|
@@ -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>
|