bfg-common 1.5.380 → 1.5.381
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 +4 -6
- package/assets/localization/local_en.json +4 -6
- package/assets/localization/local_hy.json +4 -6
- package/assets/localization/local_kk.json +4 -6
- package/assets/localization/local_ru.json +4 -6
- package/assets/localization/local_zh.json +4 -6
- package/components/atoms/TheIcon3.vue +50 -50
- package/components/atoms/collapse/CollapseNav.vue +170 -170
- package/components/atoms/collapse/CollapseNavItem.vue +226 -226
- package/components/atoms/nav/NavBar.vue +147 -147
- package/components/atoms/perPage/PerPage.vue +58 -58
- package/components/atoms/table/dataGrid/DataGrid.vue +1717 -1717
- 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/tabs/VerticalTabs.vue +105 -105
- package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
- package/components/common/backup/storage/actions/add/steps/hostAccessibility/HostAccessibility.vue +52 -52
- package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
- package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
- package/components/common/browse/blocks/Container.vue +234 -234
- package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
- package/components/common/context/lib/models/interfaces.ts +33 -33
- package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
- package/components/common/diagramMain/network/Network.vue +141 -141
- package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
- package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
- package/components/common/monitor/overview/OverviewOld.vue +139 -139
- package/components/common/pages/home/headline/Headline.vue +45 -45
- package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
- package/components/common/pages/home/lib/models/interfaces.ts +48 -48
- package/components/common/pages/home/widgets/Widgets.vue +49 -49
- package/components/common/pages/home/widgets/WidgetsNew.vue +88 -88
- package/components/common/pages/home/widgets/WidgetsOld.vue +36 -36
- 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/Vms.vue +26 -26
- 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/packages/Packages.vue +208 -208
- package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
- package/components/common/readyToComplete/New.vue +129 -129
- package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
- package/components/common/recursionTree/RecursionTree.vue +223 -223
- package/components/common/select/button/ButtonDropdown.vue +112 -112
- package/components/common/spiceConsole/Drawer.vue +381 -377
- package/components/common/spiceConsole/SpiceConsole.vue +127 -127
- package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
- package/components/common/tools/Actions.vue +207 -207
- package/components/common/vm/actions/add/Old.vue +388 -388
- package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
- package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
- package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
- package/components/common/vm/actions/clone/Clone.vue +823 -823
- package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
- package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +321 -321
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +227 -227
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +155 -155
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +385 -385
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +154 -154
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
- package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +155 -155
- package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +130 -130
- package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsOld.vue +113 -113
- package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
- package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
- package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
- package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +95 -95
- package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsOld.vue +155 -155
- package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
- package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
- package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
- package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
- package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
- package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
- package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
- package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
- package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
- package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
- package/components/common/vm/actions/common/select/createType/lib/config/items.ts +48 -48
- package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
- package/components/common/vm/actions/common/select/name/Name.vue +174 -174
- package/components/common/vm/actions/common/select/os/Old.vue +152 -152
- package/components/common/vm/actions/common/select/os/Os.vue +139 -139
- package/components/common/vm/actions/common/select/storage/Storage.vue +155 -155
- package/components/common/vm/actions/common/select/storage/new/New.vue +300 -300
- 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/editSettings/EditSettings.vue +242 -242
- package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
- package/components/common/vmt/actions/add/lib/models/interfaces.ts +23 -23
- package/components/common/wizards/network/add/steps/SelectConnectionType.vue +104 -104
- package/components/common/wizards/network/add/steps/SelectedTargetDevice.vue +467 -467
- package/components/common/wizards/vm/migrate/Migrate.vue +349 -349
- package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
- package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
- package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
- package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
- package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
- package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
- package/composables/productNameLocal.ts +30 -30
- package/composables/useAppVersion.ts +21 -21
- package/lib/models/interfaces.ts +0 -1
- package/lib/models/types.ts +0 -1
- package/package.json +1 -1
- package/plugins/console.ts +22 -0
- package/plugins/date.ts +233 -233
- package/plugins/panelStates.ts +70 -70
- package/plugins/text.ts +59 -59
- package/public/spice-console/lib/images/bitmap.js +203 -203
- package/public/spice-console/network/spicechannel.js +390 -387
- package/public/spice-console-minify/run.min.js +1 -1
- package/store/main/mutations.ts +7 -7
- package/store/main/state.ts +7 -7
- package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -2608,10 +2608,7 @@
|
|
2608
2608
|
"clusterDrsScoreDescription": "Ўяўляе сабой сярэднюю ацэнку DRS для ўсіх віртуальных машын у кластары.",
|
2609
2609
|
"vMDrsScore": "Ацэнка DRS віртуальнай машыны",
|
2610
2610
|
"vMDrsScoreDescription": "Паказвае на эфектыўнасць выканання гэтай віртуальнай машыны. Значэнні, блізкія да 0%, паказваюць на сур'ёзную канкурэнцыю рэсурсаў, а значэнні, блізкія да 100%, паказваюць на мінімальную канкурэнцыю ці яе адсутнасць. DRS імкнецца максімальна павысіць эфектыўнасць выканання для кожнай віртуальнай машыны ў кластары, захоўваючы пры гэтым справядлівае размеркаванне рэсурсаў паміж усімі віртуальнымі машынамі.",
|
2611
|
-
"drsParameters": "Параметры DRS"
|
2612
|
-
},
|
2613
|
-
"vmOverrides": {
|
2614
|
-
"vmOverrides": "Пераазначэнні ВМ",
|
2611
|
+
"drsParameters": "Параметры DRS",
|
2615
2612
|
"sphereDrsAutomationLevel": "Узровень аўтаматызацыі Sphere DRS",
|
2616
2613
|
"sphereHaRestartPriority": "Прыярытэт перазапуску Sphere HA",
|
2617
2614
|
"sphereHaVmRestartCondition": "Умова перазапуску ВМ Sphere HA",
|
@@ -2631,8 +2628,10 @@
|
|
2631
2628
|
"resourcesAllocated": "Выдзелены рэсурсы",
|
2632
2629
|
"guestHeartbeatsDetected": "Выяўлены сігналы сэрцабіцця госця",
|
2633
2630
|
"appHeartbeatsDetected": "Выяўлены сігналы сэрцабіцця праграмы",
|
2631
|
+
"when": "калі",
|
2634
2632
|
"additionalDelay": "Дадатковая затрымка",
|
2635
2633
|
"vmRestartPriorityCondition": "Тайм-аут умовы прыярытэту перазапуску ВМ",
|
2634
|
+
"timeout": "часовы інтэрвал",
|
2636
2635
|
"sphereHaPdlProtectionSettings": "Sphere HA — Налады абароны PDL",
|
2637
2636
|
"failureResponseInfo": "Пастаянная страта прылады або PDL — гэта асаблівы выпадак APD, які ўзнікае пры выдаленні прылады (LUN) з масіва захоўвання.",
|
2638
2637
|
"sphereHaApdProtectionSettings": "Sphere HA — Налады абароны APD",
|
@@ -2642,8 +2641,7 @@
|
|
2642
2641
|
"resetVms": "Скід ВМ",
|
2643
2642
|
"updateSomeSettingsSaveOverride": "Абнавіце некаторыя налады, каб захаваць перазапіс.",
|
2644
2643
|
"selectVm": "Абярыце віртуальную машыну",
|
2645
|
-
"editVmOverrideFor": "Рэдагаваць перапісанне ВМ для"
|
2646
|
-
"deleteVmOverride": "Выдаліць перапісанне ВМ"
|
2644
|
+
"editVmOverrideFor": "Рэдагаваць перапісанне ВМ для"
|
2647
2645
|
},
|
2648
2646
|
"datastoreWizard": {
|
2649
2647
|
"accessMode": "Рэжым доступу",
|
@@ -2612,10 +2612,7 @@
|
|
2612
2612
|
"clusterDrsScoreDescription": "Represents the average DRS score of all the virtual machines in the cluster.",
|
2613
2613
|
"vMDrsScore": "VM DRS Score",
|
2614
2614
|
"vMDrsScoreDescription": "Indicates the execution efficiency of this virtual machine. Values closer to 0% indicate severe resource contention, while values near 100% indicate minimal or no contention. DRS aims to maximize execution efficiency for each virtual machine in the cluster while maintaining fair resource allocation across all VMs.",
|
2615
|
-
"drsParameters": "DRS Parameters"
|
2616
|
-
},
|
2617
|
-
"vmOverrides": {
|
2618
|
-
"vmOverrides": "VM Overrides",
|
2615
|
+
"drsParameters": "DRS Parameters",
|
2619
2616
|
"sphereDrsAutomationLevel": "Sphere DRS Automation Level",
|
2620
2617
|
"sphereHaRestartPriority": "Sphere HA Restart Priority",
|
2621
2618
|
"sphereHaVmRestartCondition": "Sphere HA VM Restart Condition",
|
@@ -2635,8 +2632,10 @@
|
|
2635
2632
|
"resourcesAllocated": "Resources allocated",
|
2636
2633
|
"guestHeartbeatsDetected": "Guest Heartbeats detected",
|
2637
2634
|
"appHeartbeatsDetected": "App Heartbeats detected",
|
2635
|
+
"when": "when",
|
2638
2636
|
"additionalDelay": "Additional delay",
|
2639
2637
|
"vmRestartPriorityCondition": "VM restart priority condition timeout",
|
2638
|
+
"timeout": "timeout",
|
2640
2639
|
"sphereHaPdlProtectionSettings": "Sphere HA - PDL Protection Settings",
|
2641
2640
|
"failureResponseInfo": "Permanent Device Loss or PDL is a special case of APD caused by removing a device (LUN) from the storage array.",
|
2642
2641
|
"sphereHaApdProtectionSettings": "Sphere HA - APD Protection Settings",
|
@@ -2646,8 +2645,7 @@
|
|
2646
2645
|
"resetVms": "Reset VMs",
|
2647
2646
|
"updateSomeSettingsSaveOverride": "Update some settings to save the override.",
|
2648
2647
|
"selectVm": "Select a virtual machine",
|
2649
|
-
"editVmOverrideFor": "Edit VM Override for"
|
2650
|
-
"deleteVmOverride": "Delete VM Override"
|
2648
|
+
"editVmOverrideFor": "Edit VM Override for"
|
2651
2649
|
},
|
2652
2650
|
"datastoreWizard": {
|
2653
2651
|
"accessMode": "Access Mode",
|
@@ -2612,10 +2612,7 @@
|
|
2612
2612
|
"clusterDrsScoreDescription": "Ներկայացնում է DRS-ի միջին գնահատականը կլաստերի բոլոր վիրտուալ մեքենաների համար:",
|
2613
2613
|
"vMDrsScore": "Վիրտուալ մեքենայի DRS գնահատում",
|
2614
2614
|
"vMDrsScoreDescription": "Նշում է այս վիրտուալ մեքենայի կատարման արդյունավետությունը: 0% - ին մոտ արժեքները ցույց են տալիս ռեսուրսների լուրջ մրցակցություն, մինչդեռ 100% - ին մոտ արժեքները ցույց են տալիս նվազագույն մրցակցություն կամ դրա բացակայություն: DRS-ը նպատակ ունի առավելագույնի հասցնել կատարման արդյունավետությունը կլաստերի յուրաքանչյուր վիրտուալ մեքենայի համար ՝ միաժամանակ պահպանելով ռեսուրսների արդար բաշխումը բոլոր վիրտուալ մեքենաների միջև:",
|
2615
|
-
"drsParameters": "DRS պարամետրեր"
|
2616
|
-
},
|
2617
|
-
"vmOverrides": {
|
2618
|
-
"vmOverrides": "ՎՄ վերագրանցումներ",
|
2615
|
+
"drsParameters": "DRS պարամետրեր",
|
2619
2616
|
"sphereDrsAutomationLevel": "Sphere DRS-ի ավտոմատացման մակարդակ",
|
2620
2617
|
"sphereHaRestartPriority": "Sphere HA վերագործարկման առաջնահերթություն",
|
2621
2618
|
"sphereHaVmRestartCondition": "Sphere HA վիրտուալ մեքենայի վերագործարկման պայման",
|
@@ -2635,8 +2632,10 @@
|
|
2635
2632
|
"resourcesAllocated": "Բաժինված ռեսուրսներ",
|
2636
2633
|
"guestHeartbeatsDetected": "Պարզվել են հյուրի սրտի տրոփոցները",
|
2637
2634
|
"appHeartbeatsDetected": "Պարզվել են հավելվածի սրտի տրոփոցները",
|
2635
|
+
"when": "երբ",
|
2638
2636
|
"additionalDelay": "Լրացուցիչ ուշացում",
|
2639
2637
|
"vmRestartPriorityCondition": "ՎՄ վերագործարկման առաջնահերթության պայմանների ժամանակի ավարտ",
|
2638
|
+
"timeout": "ժամանակի ավարտ",
|
2640
2639
|
"sphereHaPdlProtectionSettings": "Sphere HA — PDL պաշտպանության կարգավորումներ",
|
2641
2640
|
"failureResponseInfo": "Կայուն սարքի կորուստը կամ PDL-ը APD-ի հատուկ դեպք է, որը առաջանում է սարքի (LUN) պահեստավորման զանգվածից հեռացման հետևանքով։",
|
2642
2641
|
"sphereHaApdProtectionSettings": "Sphere HA — APD պաշտպանության կարգավորումներ",
|
@@ -2646,8 +2645,7 @@
|
|
2646
2645
|
"resetVms": "Վիրտուալ մեքենաների վերականգնում",
|
2647
2646
|
"updateSomeSettingsSaveOverride": "Թարմացրեք որոշ պարամետրեր՝ պահպանելու վերագրումը։",
|
2648
2647
|
"selectVm": "Ընտրեք վիրտուալ մեքենա",
|
2649
|
-
"editVmOverrideFor": "Խմբագրել ՎՄ վերագրման կարգավորումը համար"
|
2650
|
-
"deleteVmOverride": "Ջնջել ՎՄ վերագրման կարգավորումը"
|
2648
|
+
"editVmOverrideFor": "Խմբագրել ՎՄ վերագրման կարգավորումը համար"
|
2651
2649
|
},
|
2652
2650
|
"datastoreWizard": {
|
2653
2651
|
"accessMode": "Մուտքի ռեժիմ",
|
@@ -2611,10 +2611,7 @@
|
|
2611
2611
|
"clusterDrsScoreDescription": "Кластердегі барлық виртуалды машиналардың ОРТАША DRS балын білдіреді.",
|
2612
2612
|
"vMDrsScore": "Виртуалды машинаның DRS Ұпайы",
|
2613
2613
|
"vMDrsScoreDescription": "Осы виртуалды машинаның орындалу тиімділігін көрсетеді. 0% - ға жақын мәндер ресурстарға қатысты елеулі келіспеушіліктерді көрсетеді, ал 100% - ға жақын мәндер ең аз немесе мүлдем келіспеушіліктерді көрсетеді. DRS барлық Виртуалды Машиналарда ресурстардың әділ бөлінуін сақтай отырып, кластердегі әрбір виртуалды машинаның орындалу тиімділігін арттыруға бағытталған.",
|
2614
|
-
"drsParameters": "DRS Параметрлері"
|
2615
|
-
},
|
2616
|
-
"vmOverrides": {
|
2617
|
-
"vmOverrides": "VM қайта анықтаулары",
|
2614
|
+
"drsParameters": "DRS Параметрлері",
|
2618
2615
|
"sphereDrsAutomationLevel": "Sphere DRS автоматтандыру деңгейі",
|
2619
2616
|
"sphereHaRestartPriority": "Sphere HA қайта іске қосу басымдығы",
|
2620
2617
|
"sphereHaVmRestartCondition": "Sphere HA виртуалды машинасын қайта іске қосу шарты",
|
@@ -2634,8 +2631,10 @@
|
|
2634
2631
|
"resourcesAllocated": "Бөлінген ресурстар",
|
2635
2632
|
"guestHeartbeatsDetected": "Қонақ жүрек соғу сигналдары анықталды",
|
2636
2633
|
"appHeartbeatsDetected": "Қосымша жүрек соғу сигналдары анықталды",
|
2634
|
+
"when": "қашан",
|
2637
2635
|
"additionalDelay": "Қосымша кешіктіру",
|
2638
2636
|
"vmRestartPriorityCondition": "ВМ қайта іске қосу басымдығы шартының уақыт бітуі",
|
2637
|
+
"timeout": "уақытша тоқтату",
|
2639
2638
|
"sphereHaPdlProtectionSettings": "Sphere HA — PDL қорғаныс баптаулары",
|
2640
2639
|
"failureResponseInfo": "Тұрақты құрылғының жоғалуы немесе PDL — сақтау массивінен құрылғыны (LUN) алып тастаудан туындайтын APD-нің ерекше жағдайы.",
|
2641
2640
|
"sphereHaApdProtectionSettings": "Sphere HA — APD қорғаныс баптаулары",
|
@@ -2645,8 +2644,7 @@
|
|
2645
2644
|
"resetVms": "ВМ қайта іске қосу",
|
2646
2645
|
"updateSomeSettingsSaveOverride": "Қайта анықтауды сақтау үшін кейбір баптауларды жаңартыңыз.",
|
2647
2646
|
"selectVm": "Виртуалды машинаны таңдаңыз",
|
2648
|
-
"editVmOverrideFor": "ВМ қайта жазу параметрін өңдеу үшін"
|
2649
|
-
"deleteVmOverride": "ВМ қайта жазу параметрін жою"
|
2647
|
+
"editVmOverrideFor": "ВМ қайта жазу параметрін өңдеу үшін"
|
2650
2648
|
},
|
2651
2649
|
"datastoreWizard": {
|
2652
2650
|
"accessMode": "Қол жеткізу режимі",
|
@@ -2611,10 +2611,7 @@
|
|
2611
2611
|
"clusterDrsScoreDescription": "Представляет собой среднюю оценку DRS для всех виртуальных машин в кластере.",
|
2612
2612
|
"vMDrsScore": "Оценка DRS виртуальной машины",
|
2613
2613
|
"vMDrsScoreDescription": "Указывает на эффективность выполнения этой виртуальной машины. Значения, близкие к 0%, указывают на серьезную конкуренцию ресурсов, в то время как значения, близкие к 100%, указывают на минимальную конкуренцию или ее отсутствие. DRS стремится максимально повысить эффективность выполнения для каждой виртуальной машины в кластере, сохраняя при этом справедливое распределение ресурсов между всеми виртуальными машинами.",
|
2614
|
-
"drsParameters": "Параметры DRS"
|
2615
|
-
},
|
2616
|
-
"vmOverrides": {
|
2617
|
-
"vmOverrides": "Переопределения ВМ",
|
2614
|
+
"drsParameters": "Параметры DRS",
|
2618
2615
|
"sphereDrsAutomationLevel": "Уровень автоматизации Sphere DRS",
|
2619
2616
|
"sphereHaRestartPriority": "Приоритет перезапуска Sphere HA",
|
2620
2617
|
"sphereHaVmRestartCondition": "Условие перезапуска ВМ Sphere HA",
|
@@ -2634,8 +2631,10 @@
|
|
2634
2631
|
"resourcesAllocated": "Выделенные ресурсы",
|
2635
2632
|
"guestHeartbeatsDetected": "Обнаружены сигналы heartbeat гостевой ОС",
|
2636
2633
|
"appHeartbeatsDetected": "Обнаружены сигналы heartbeat приложения",
|
2634
|
+
"when": "когда",
|
2637
2635
|
"additionalDelay": "Дополнительная задержка",
|
2638
2636
|
"vmRestartPriorityCondition": "Тайм-аут условия приоритета перезапуска ВМ",
|
2637
|
+
"timeout": "таймаут",
|
2639
2638
|
"sphereHaPdlProtectionSettings": "Sphere HA — Настройки защиты PDL",
|
2640
2639
|
"failureResponseInfo": "Постоянная потеря устройства или PDL — это особый случай APD, вызванный удалением устройства (LUN) из массива хранения.",
|
2641
2640
|
"sphereHaApdProtectionSettings": "Sphere HA — Настройки защиты APD",
|
@@ -2645,8 +2644,7 @@
|
|
2645
2644
|
"resetVms": "Сброс ВМ",
|
2646
2645
|
"updateSomeSettingsSaveOverride": "Обновите некоторые настройки, чтобы сохранить переопределение.",
|
2647
2646
|
"selectVm": "Выберите виртуальную машину",
|
2648
|
-
"editVmOverrideFor": "Изменить переопределение ВМ для"
|
2649
|
-
"deleteVmOverride": "Удалить переопределение ВМ"
|
2647
|
+
"editVmOverrideFor": "Изменить переопределение ВМ для"
|
2650
2648
|
},
|
2651
2649
|
"datastoreWizard": {
|
2652
2650
|
"accessMode": "Режим доступа",
|
@@ -2609,10 +2609,7 @@
|
|
2609
2609
|
"clusterDrsScoreDescription": "表示群集中所有虚拟机的平均DRS分数。",
|
2610
2610
|
"vMDrsScore": "VM DRS评分",
|
2611
2611
|
"vMDrsScoreDescription": "指示此虚拟机的执行效率。 接近0%的值表示严重的资源争用,而接近100%的值表示最小或没有争用。 DRS旨在最大限度地提高群集中每个虚拟机的执行效率,同时在所有虚拟机之间保持公平的资源分配。",
|
2612
|
-
"drsParameters": "DRS参数"
|
2613
|
-
},
|
2614
|
-
"vmOverrides": {
|
2615
|
-
"vmOverrides": "虚拟机覆盖设置",
|
2612
|
+
"drsParameters": "DRS参数",
|
2616
2613
|
"sphereDrsAutomationLevel": "Sphere DRS 自动化级别",
|
2617
2614
|
"sphereHaRestartPriority": "Sphere HA 重启优先级",
|
2618
2615
|
"sphereHaVmRestartCondition": "Sphere HA 虚拟机重启条件",
|
@@ -2632,8 +2629,10 @@
|
|
2632
2629
|
"resourcesAllocated": "分配的资源",
|
2633
2630
|
"guestHeartbeatsDetected": "检测到客户机心跳信号",
|
2634
2631
|
"appHeartbeatsDetected": "检测到应用程序心跳信号",
|
2632
|
+
"when": "什么时候",
|
2635
2633
|
"additionalDelay": "额外延迟",
|
2636
2634
|
"vmRestartPriorityCondition": "虚拟机重启优先级条件超时",
|
2635
|
+
"timeout": "超时",
|
2637
2636
|
"sphereHaPdlProtectionSettings": "Sphere HA — PDL 保护设置",
|
2638
2637
|
"failureResponseInfo": "永久设备丢失(PDL)是由于从存储阵列中移除设备(LUN)引起的 APD 的一种特殊情况。",
|
2639
2638
|
"sphereHaApdProtectionSettings": "Sphere HA — APD 保护设置",
|
@@ -2643,8 +2642,7 @@
|
|
2643
2642
|
"resetVms": "重置虚拟机",
|
2644
2643
|
"updateSomeSettingsSaveOverride": "更新一些设置以保存覆盖。",
|
2645
2644
|
"selectVm": "选择虚拟机",
|
2646
|
-
"editVmOverrideFor": "编辑虚拟机覆盖设置用于"
|
2647
|
-
"deleteVmOverride": "删除虚拟机覆盖设置"
|
2645
|
+
"editVmOverrideFor": "编辑虚拟机覆盖设置用于"
|
2648
2646
|
},
|
2649
2647
|
"datastoreWizard": {
|
2650
2648
|
"accessMode": "访问方式",
|
@@ -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>
|