1import{J as s,K as e,L as a,d as T,j as F,M as w,f as l,$ as I,v as k,Q as t,P as S,F as z,U as D,N as B,O as J,R as W,r as b,w as H,a as G,S as L,a5 as he,ah as ee,X as ke,a9 as $e}from"./vendor-vue-C9I4HdhY.js";import{i as xe,T as ae,dt as we,as as se,Z as Ce,_ as E,h as X,c2 as Ve,a as Ne,al as ce,a1 as Z,a4 as ue,Q as Me,X as Pe,du as Ae,H as Se,ak as te,w as ge,am as me,ac as je,e as ze,u as Ie,dv as Be}from"./index-Cc-ERo76.js";import{r as De}from"./MapPinIcon-q7IbS38T.js";import{r as Le}from"./FolderIcon-Dj-y93ZL.js";import{r as Re}from"./MinusCircleIcon-CT6msa-3.js";import{r as Ue}from"./CheckCircleIcon-C3COelcm.js";import{_ as re}from"./ObjectActions.vue_vue_type_script_setup_true_lang-CUSUxV3S.js";import{_ as Te}from"./ListVirtualMachinesSupportPerspective.vue_vue_type_script_setup_true_lang-Bv98DNyY.js";import{r as Ze}from"./StarIcon-BWe2c6HE.js";import{_ as Y}from"./Toggle.vue_vue_type_script_setup_true_lang-ChBceft9.js";import{_ as Oe}from"./Nofitication.vue_vue_type_script_setup_true_lang-C6hALqAg.js";import{_ as He,a as Ee,b as Ge}from"./IaasVmBackupHeatmapByCloud.vue_vue_type_script_setup_true_lang-I29CX4oN.js";import{_ as Fe,a as Xe,b as qe,c as Ke}from"./ListLargestTenants.vue_vue_type_script_setup_true_lang-C0GUhbOf.js";import{_ as Qe,I as We}from"./PrepaidBalanceWarning.vue_vue_type_script_setup_true_lang-LnQETJ1U.js";import{_ as pe}from"./DashboardSkeleton.vue_vue_type_script_setup_true_lang-BReH3AuA.js";import{c as Q,u as Je,_ as Ye,a as et,b as tt}from"./IaasNeoResourceUsage.vue_vue_type_script_setup_true_lang-Cgg58sAR.js";import{r as at}from"./RectangleStackIcon-S5lXqpK2.js";import{r as st}from"./ArrowUpRightIcon-CV1Bh1o7.js";import{r as rt}from"./Squares2X2Icon-Co6Hy1qc.js";import{r as nt}from"./PlayIcon-3BhyFCBy.js";import{a as it}from"./VirtualMachineDetail.vue_vue_type_script_setup_true_lang-CMlVXGna.js";import"./vendor-moment-DSem4xRw.js";import"./vendor-editor-markdown-BjRGdLHa.js";import"./vendor-charts-CVpKHQhc.js";import"./vendor-i18n-BYicniCH.js";import"./vendor-motion-yh3LNOre.js";import"./AsyncActionButton.vue_vue_type_script_setup_true_lang-BUo9hCXY.js";import"./SelectCurrency.vue_vue_type_script_setup_true_lang-CXWFZ8sm.js";import"./AutoComplete.vue_vue_type_script_setup_true_lang-D6UNQfpP.js";import"./use-tree-walker-CnW8sw7f.js";import"./contract-status-O_zYT_6U.js";import"./ShieldCheckIcon-Bg_e92jm.js";import"./ExclamationCircleIcon-DUsx5Av6.js";import"./CheckBadgeIcon-DIr2yadk.js";import"./CheckIcon-CxAxGGyO.js";import"./ArrowRightIcon-B4s5j83J.js";import"./types-uI0F1tvy.js";import"./index-BIQXeyAG.js";import"./ImunifySecuredBadge.vue_vue_type_script_setup_true_lang-ygU5XeIF.js";import"./ClipboardDocumentIcon-Dr9pLx5P.js";import"./EyeSlashIcon-meRLOmUx.js";import"./PencilIcon-Dz0OUNh2.js";import"./EyeIcon-DkvRoBTl.js";import"./ConfirmationDialog.vue_vue_type_script_setup_true_lang-DCyybA5z.js";import"./Dropdown.vue_vue_type_script_setup_true_lang-BmIbvznP.js";import"./menu-BmsD0tj9.js";import"./ConfirmDialog.vue_vue_type_script_setup_true_lang-CP-2__vO.js";import"./PhWarning.vue-D7oCG8mW.js";import"./TextareaScript-CjAY0HDU.js";import"./ServiceRolePicker.vue_vue_type_script_setup_true_lang-CwmZh4Qw.js";import"./IaasVirtualMachineMetricsService-Dc7UNcMx.js";import"./DeployVirtualMachine.vue_vue_type_script_setup_true_lang-XXIXJn_O.js";import"./SelectRepository.vue_vue_type_script_setup_true_lang-CAmGCIPL.js";import"./DocumentDuplicateIcon-CplPj9tj.js";import"./GatewayPortForwards.vue_vue_type_script_setup_true_lang-MDpLcSWb.js";import"./image-catalog-meta-B4BIcJl5.js";import"./ComputerDesktopIcon-BXJEuNuk.js";import"./ArrowTopRightOnSquareIcon-BgBhaXWo.js";import"./ArrowDownTrayIcon-DNP-sZ68.js";import"./ListBulletIcon-DzYEaGkn.js";import"./ObjectAIHelpers.vue_vue_type_script_setup_true_lang-DqI3pHH_.js";import"./ObjectOutputRenderer.vue_vue_type_script_setup_true_lang-Bq9UV2iN.js";import"./ChevronUpIcon-BJ8jspzA.js";import"./BoltSlashIcon-BDPMB9Nu.js";function ot(C,c){return a(),s("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m4.5 4.5 15 15m0 0V8.25m0 11.25H8.25"})])}function ye(C,c){return a(),s("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"})])}function dt(C,c){return a(),s("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"})])}function lt(C,c){return a(),s("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"
1currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"fill-rule":"evenodd",d:"M4.755 10.059a7.5 7.5 0 0 1 12.548-3.364l1.903 1.903h-3.183a.75.75 0 1 0 0 1.5h4.992a.75.75 0 0 0 .75-.75V4.356a.75.75 0 0 0-1.5 0v3.18l-1.9-1.9A9 9 0 0 0 3.306 9.67a.75.75 0 1 0 1.45.388Zm15.408 3.352a.75.75 0 0 0-.919.53 7.5 7.5 0 0 1-12.548 3.364l-1.902-1.903h3.183a.75.75 0 0 0 0-1.5H2.984a.75.75 0 0 0-.75.75v4.992a.75.75 0 0 0 1.5 0v-3.18l1.9 1.9a9 9 0 0 0 15.059-4.035.75.75 0 0 0-.53-.918Z","clip-rule":"evenodd"})])}function ne(C,c){return a(),s("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"fill-rule":"evenodd",d:"M14.615 1.595a.75.75 0 0 1 .359.852L12.982 9.75h7.268a.75.75 0 0 1 .548 1.262l-10.5 11.25a.75.75 0 0 1-1.272-.71l1.992-7.302H3.75a.75.75 0 0 1-.548-1.262l10.5-11.25a.75.75 0 0 1 .913-.143Z","clip-rule":"evenodd"})])}function ie(C,c){return a(),s("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"fill-rule":"evenodd",d:"M12.53 16.28a.75.75 0 0 1-1.06 0l-7.5-7.5a.75.75 0 0 1 1.06-1.06L12 14.69l6.97-6.97a.75.75 0 1 1 1.06 1.06l-7.5 7.5Z","clip-rule":"evenodd"})])}function ct(C,c){return a(),s("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"fill-rule":"evenodd",d:"M7.72 12.53a.75.75 0 0 1 0-1.06l7.5-7.5a.75.75 0 1 1 1.06 1.06L9.31 12l6.97 6.97a.75.75 0 1 1-1.06 1.06l-7.5-7.5Z","clip-rule":"evenodd"})])}function gt(C,c){return a(),s("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"fill-rule":"evenodd",d:"M16.28 11.47a.75.75 0 0 1 0 1.06l-7.5 7.5a.75.75 0 0 1-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 0 1 1.06-1.06l7.5 7.5Z","clip-rule":"evenodd"})])}function ut(C,c){return a(),s("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{d:"M17.004 10.407c.138.435-.216.842-.672.842h-3.465a.75.75 0 0 1-.65-.375l-1.732-3c-.229-.396-.053-.907.393-1.004a5.252 5.252 0 0 1 6.126 3.537ZM8.12 8.464c.307-.338.838-.235 1.066.16l1.732 3a.75.75 0 0 1 0 .75l-1.732 3c-.229.397-.76.5-1.067.161A5.23 5.23 0 0 1 6.75 12a5.23 5.23 0 0 1 1.37-3.536ZM10.878 17.13c-.447-.098-.623-.608-.394-1.004l1.733-3.002a.75.75 0 0 1 .65-.375h3.465c.457 0 .81.407.672.842a5.252 5.252 0 0 1-6.126 3.539Z"}),e("path",{"fill-rule":"evenodd",d:"M21 12.75a.75.75 0 1 0 0-1.5h-.783a8.22 8.22 0 0 0-.237-1.357l.734-.267a.75.75 0 1 0-.513-1.41l-.735.268a8.24 8.24 0 0 0-.689-1.192l.6-.503a.75.75 0 1 0-.964-1.149l-.6.504a8.3 8.3 0 0 0-1.054-.885l.391-.678a.75.75 0 1 0-1.299-.75l-.39.676a8.188 8.188 0 0 0-1.295-.47l.136-.77a.75.75 0 0 0-1.477-.26l-.136.77a8.36 8.36 0 0 0-1.377 0l-.136-.77a.75.75 0 1 0-1.477.26l.136.77c-.448.121-.88.28-1.294.47l-.39-.676a.75.75 0 0 0-1.3.75l.392.678a8.29 8.29 0 0 0-1.054.885l-.6-.504a.75.75 0 1 0-.965 1.149l.6.503a8.243 8.243 0 0 0-.689 1.192L3.8 8.216a.75.75 0 1 0-.513 1.41l.735.267a8.222 8.222 0 0 0-.238 1.356h-.783a.75.75 0 0 0 0 1.5h.783c.042.464.122.917.238 1.356l-.735.268a.75.75 0 0 0 .513 1.41l.735-.268c.197.417.428.816.69 1.191l-.6.504a.75.75 0 0 0 .963 1.15l.601-.505c.326.323.679.62 1.054.885l-.392.68a.75.75 0 0 0 1.3.75l.39-.679c.414.192.847.35 1.294.471l-.136.77a.75.75 0 0 0 1.477.261l.137-.772a8.332 8.332 0 0 0 1.376 0l.136.772a.75.75 0 1 0 1.477-.26l-.136-.771a8.19 8.19 0 0 0 1.294-.47l.391.677a.75.75 0 0 0 1.3-.75l-.393-.679a8.29 8.29 0 0 0 1.054-.885l.601.504a.75.75 0 0 0 .964-1.15l-.6-.503c.261-.375.492-.774.69-1.191l.735.267a.75.75 0 1 0 .512-1.41l-.734-.267c.115-.439.195-.892.237-1.356h.784Zm-2.657-3.06a6.744 6.744 0 0 0-1.19-2.053 6.784 6.784 0 0 0-1.82-1.51A6.705 6.705 0 0 0 12 5.25a6.8 6.8 0 0 0-1.225.11 6.7 6.7 0 0 0-2.15.793 6.784 6.784 0 0 0-2.952 3.489.76.76 0 0 1-.036.098A6.74 6.74 0 0 0 5.251 12a6.74 6.74 0 0 0 3.366 5.842l.009.005a6.704 6.704 0 0 0 2.18.798l.022.003a6.792 6.792 0 0 0 2.368-.004 6.704 6.704 0 0 0 2.205-.811 6.785 6.785 0 0 0 1.762-1.484l.009
1-.01.009-.01a6.743 6.743 0 0 0 1.18-2.066c.253-.707.39-1.469.39-2.263a6.74 6.74 0 0 0-.408-2.309Z","clip-rule":"evenodd"})])}function pt(C,c){return a(),s("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{d:"M16.5 7.5h-9v9h9v-9Z"}),e("path",{"fill-rule":"evenodd",d:"M8.25 2.25A.75.75 0 0 1 9 3v.75h2.25V3a.75.75 0 0 1 1.5 0v.75H15V3a.75.75 0 0 1 1.5 0v.75h.75a3 3 0 0 1 3 3v.75H21A.75.75 0 0 1 21 9h-.75v2.25H21a.75.75 0 0 1 0 1.5h-.75V15H21a.75.75 0 0 1 0 1.5h-.75v.75a3 3 0 0 1-3 3h-.75V21a.75.75 0 0 1-1.5 0v-.75h-2.25V21a.75.75 0 0 1-1.5 0v-.75H9V21a.75.75 0 0 1-1.5 0v-.75h-.75a3 3 0 0 1-3-3v-.75H3A.75.75 0 0 1 3 15h.75v-2.25H3a.75.75 0 0 1 0-1.5h.75V9H3a.75.75 0 0 1 0-1.5h.75v-.75a3 3 0 0 1 3-3h.75V3a.75.75 0 0 1 .75-.75ZM6 6.75A.75.75 0 0 1 6.75 6h10.5a.75.75 0 0 1 .75.75v10.5a.75.75 0 0 1-.75.75H6.75a.75.75 0 0 1-.75-.75V6.75Z","clip-rule":"evenodd"})])}function xt(C,c){return a(),s("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"fill-rule":"evenodd",d:"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z","clip-rule":"evenodd"})])}function mt(C,c){return a(),s("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{"fill-rule":"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z","clip-rule":"evenodd"})])}function yt(C,c){return a(),s("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{d:"M4.08 5.227A3 3 0 0 1 6.979 3H17.02a3 3 0 0 1 2.9 2.227l2.113 7.926A5.228 5.228 0 0 0 18.75 12H5.25a5.228 5.228 0 0 0-3.284 1.153L4.08 5.227Z"}),e("path",{"fill-rule":"evenodd",d:"M5.25 13.5a3.75 3.75 0 1 0 0 7.5h13.5a3.75 3.75 0 1 0 0-7.5H5.25Zm10.5 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm3.75-.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Z","clip-rule":"evenodd"})])}function bt(C,c){return a(),s("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[e("path",{d:"M4.5 6.375a4.125 4.125 0 1 1 8.25 0 4.125 4.125 0 0 1-8.25 0ZM14.25 8.625a3.375 3.375 0 1 1 6.75 0 3.375 3.375 0 0 1-6.75 0ZM1.5 19.125a7.125 7.125 0 0 1 14.25 0v.003l-.001.119a.75.75 0 0 1-.363.63 13.067 13.067 0 0 1-6.761 1.873c-2.472 0-4.786-.684-6.76-1.873a.75.75 0 0 1-.364-.63l-.001-.122ZM17.25 19.128l-.001.144a2.25 2.25 0 0 1-.233.96 10.088 10.088 0 0 0 5.06-1.01.75.75 0 0 0 .42-.643 4.875 4.875 0 0 0-6.957-4.611 8.586 8.586 0 0 1 1.71 5.157v.003Z"})])}const _t={key:0,class:"grid grid-cols-2 gap-2 sm:grid-cols-3 lg:grid-cols-5"},vt={class:"flex items-center justify-between gap-2 rounded-lg border border-gray-200 bg-white px-3 py-2 shadow-sm dark:border-gray-700 dark:bg-gray-900"},ft={class:"flex items-center gap-1 text-[10px] font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400"},ht={class:"flex items-center gap-1 text-[10px] font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400"},kt={class:"col-span-2 flex items-center gap-2 rounded-lg border border-gray-200 bg-white px-3 py-2 shadow-sm dark:border-gray-700 dark:bg-gray-900 sm:col-span-3 lg:col-span-5"},$t={class:"flex flex-shrink-0 items-center gap-1 text-[10px] font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400"},wt={class:"truncate font-mono text-xs font-semibold text-gray-800 dark:text-gray-200"},Ct=T({__name:"CloudNodeStatus",props:{data:{}},setup(C){const c=C,f=F(()=>c.data.is_alive?{label:"Healthy",tone:"ok"}:c.data.is_in_maintenance?{label:"Maintenance",tone:"warn"}:{label:"Offline",tone:"bad"}),V={ok:"bg-emerald-50 text-emerald-700 ring-emerald-600/20 dark:bg-emerald-500/10 dark:text-emerald-400",warn:"bg-amber-50 text-amber-700 ring-amber-600/20 dark:bg-amber-500/10 dark:text-amber-400",bad:"bg-rose-50 text-rose-700 ring-rose-600/20 dark:bg-rose-500/10 dark:text-rose-400"},p={ok:"bg-emerald-500",warn:"bg-amber-500",bad:"bg-rose-500"},d=F(()=>[{label:"Is Active",value:!!c.data.is_active,icon:xe},{label:"Is Public",value:!!c.data.is_public,icon:ae},{label:"Is Edge",value:!!c.data.is_edge,icon:De},{label:"In Maintenance",value:!!c.data.is_in_maintenance,icon:we,warnWhenTrue:!0}]);return(_,g)=>C.data?(a(),s("div",_t,[e("div",vt,[e("span",ft,[l(k(se),{class:"size-3.5"}),I(" "+t(_.$t("Overall Status")),1)]),e("span",{class:S(["inline-flex flex-shrink-0 items-center gap-1 rounded-full px-2 py-0.5 text-xs font-bold ring-1 ring-inset",V[f.value.tone]])},[e("span",{class:S(["size-1.5 rounded-full",p[f.value.tone]])}
1,null,2),I(" "+t(_.$t(f.value.label)),1)],2)]),(a(!0),s(z,null,D(d.value,h=>(a(),s("div",{key:h.label,class:"flex items-center justify-between gap-2 rounded-lg border border-gray-200 bg-white px-3 py-2 shadow-sm dark:border-gray-700 dark:bg-gray-900"},[e("span",ht,[(a(),B(J(h.icon),{class:"size-3.5"})),I(" "+t(_.$t(h.label)),1)]),e("span",{class:S(["inline-flex flex-shrink-0 items-center gap-1 text-xs font-bold",h.value?h.warnWhenTrue?"text-amber-600 dark:text-amber-400":"text-emerald-600 dark:text-emerald-400":"text-gray-400 dark:text-gray-500"])},[h.value?(a(),B(k(Ce),{key:0,class:"size-3.5"})):(a(),B(k(Re),{key:1,class:"size-3.5"})),I(" "+t(h.value?_.$t("Yes"):_.$t("No")),1)],2)]))),128)),e("div",kt,[e("span",$t,[l(k(Le),{class:"size-3.5"}),I(" "+t(_.$t("Default Backup Path")),1)]),e("code",wt,t(C.data.default_backup_path??"-"),1)])])):w("",!0)}}),Vt={key:0,class:"space-y-4"},Nt={key:0,class:"space-y-2.5"},Mt={class:"flex items-center justify-between gap-3 mb-2"},Pt={class:"flex items-center gap-2 min-w-0"},At={class:"text-sm font-medium text-gray-900 dark:text-gray-100 truncate"},St={class:"h-2 w-full rounded-full bg-gray-200 dark:bg-gray-700"},jt={key:1,class:"overflow-x-auto rounded-lg border border-gray-200 dark:border-gray-700"},zt={class:"min-w-full divide-y divide-gray-200 dark:divide-gray-700"},It={class:"bg-gray-50 dark:bg-gray-800"},Bt={scope:"col",class:"px-4 py-2.5 text-left text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider"},Dt={scope:"col",class:"px-4 py-2.5 text-left text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider"},Lt={scope:"col",class:"px-4 py-2.5 text-left text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider"},Rt={scope:"col",class:"px-4 py-2.5 text-left text-xs font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider"},Ut={class:"divide-y divide-gray-200 dark:divide-gray-700 bg-white dark:bg-gray-900"},Tt={class:"px-4 py-2.5 text-sm font-medium text-gray-900 dark:text-gray-100 whitespace-nowrap"},Zt={class:"px-4 py-2.5 text-sm text-gray-700 dark:text-gray-300 font-mono whitespace-nowrap"},Ot={class:"px-4 py-2.5 text-sm text-gray-500 dark:text-gray-400"},Ht={class:"px-4 py-2.5 whitespace-nowrap"},oe=T({__name:"ObjectStates",props:{states:{}},setup(C){function c(g){return g.filter(h=>h.name!=="running_actions")}function f(g){switch(g){case"success":return"bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300";case"error":return"bg-red-100 text-red-700 dark:bg-red-900/40 dark:text-red-300";case"warning":return"bg-amber-100 text-amber-700 dark:bg-amber-900/40 dark:text-amber-300";case"info":return"bg-blue-100 text-blue-700 dark:bg-blue-900/40 dark:text-blue-300";default:return"bg-gray-100 text-gray-700 dark:bg-gray-700 dark:text-gray-300"}}function V(g){const h=g.find(y=>y.name==="running_actions");if(!h)return[];try{const y=JSON.parse(h.value);return Object.entries(y).map(([A,o])=>{const M=A.replace(/\\\\/g,"\\").split("\\");return{name:M[M.length-1]??"",checkpoint:o.checkpoint,id:o.id}})}catch{return[]}}function p(g){return g<0?"100%":`${Math.min(100,Math.max(0,g))}%`}function d(g){return g<0?"bg-indigo-500 dark:bg-indigo-400 animate-pulse":g>=100?"bg-green-500 dark:bg-green-400":g>=70?"bg-blue-500 dark:bg-blue-400":"bg-amber-500 dark:bg-amber-400"}function _(g){return g<0?"In Progress":g>=100?"Completed":`${g}%`}return(g,h)=>C.states&&C.states.length>0?(a(),s("div",Vt,[V(C.states).length>0?(a(),s("div",Nt,[(a(!0),s(z,null,D(V(C.states),y=>(a(),s("div",{key:y.id,class:"rounded-lg border border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-800/50 px-4 py-3"},[e("div",Mt,[e("div",Pt,[y.checkpoint>=100?(a(),B(k(Ue),{key:0,class:"size-4 text-green-500 dark:text-green-400 flex-shrink-0"})):y.checkpoint<0?(a(),B(k(lt),{key:1,class:"size-4 text-indigo-500 dark:text-indigo-400 flex-shrink-0 animate-spin"})):(a(),B(k(ut),{key:2,class:"size-4 text-amber-500 dark:text-amber-400 flex-shrink-0 animate-spin"})),e("span",At,t(y.name),1)]),e("span",{class:S(["text-xs font-semibold flex-shrink-0 rounded-full px-2 py-0.5",y.checkpoint>=100?"text-green-700 bg-green-100 dark:text-green-300 dark:bg-green-900/40":y.checkpoint<0?"text-indigo-700 bg-indigo-100 dark:text-indigo-300 dark:bg-indigo-900/40":"text-amber-700 bg-amber-100 dar
1k:text-amber-300 dark:bg-amber-900/40"])},t(_(y.checkpoint)),3)]),e("div",St,[e("div",{class:S(["h-2 rounded-full transition-all duration-500",d(y.checkpoint)]),style:W({width:p(y.checkpoint)})},null,6)])]))),128))])):w("",!0),c(C.states).length>0?(a(),s("div",jt,[e("table",zt,[e("thead",It,[e("tr",null,[e("th",Bt,t(g.$t("Name")),1),e("th",Dt,t(g.$t("Value")),1),e("th",Lt,t(g.$t("Reason")),1),e("th",Rt,t(g.$t("State")),1)])]),e("tbody",Ut,[(a(!0),s(z,null,D(c(C.states),y=>(a(),s("tr",{key:y.name},[e("td",Tt,t(y.name),1),e("td",Zt,t(y.value),1),e("td",Ot,t(y.reason||"-"),1),e("td",Ht,[e("span",{class:S(["inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium",f(y.object_state)])},t(y.object_state),3)])]))),128))])])])):w("",!0)])):w("",!0)}}),Et={class:"bg-white dark:bg-gray-900"},Gt={key:0,class:"flex items-center justify-center py-12"},Ft={key:1,class:"py-12 text-center text-sm text-gray-500 dark:text-gray-400"},Xt={key:2,class:"space-y-4"},qt={key:0,class:"mb-4 flex items-center gap-3 rounded-lg bg-red-50 dark:bg-red-950/50 border border-red-200 dark:border-red-800 px-4 py-3"},Kt={class:"text-sm font-semibold text-red-800 dark:text-red-300"},Qt={class:"text-xs text-red-600 dark:text-red-400"},Wt={key:1,class:"mb-4 flex items-center gap-3 rounded-lg bg-amber-50 dark:bg-amber-950/50 border border-amber-200 dark:border-amber-800 px-4 py-3"},Jt={class:"text-sm font-semibold text-amber-800 dark:text-amber-300"},Yt={class:"text-xs text-amber-600 dark:text-amber-400"},ea={class:"flex items-start justify-between gap-4"},ta={class:"flex items-center gap-3 min-w-0"},aa={class:"flex items-center justify-center size-10 rounded-lg flex-shrink-0 bg-violet-50 dark:bg-violet-900/30"},sa={class:"min-w-0"},ra={class:"flex items-center gap-2"},na={class:"text-sm font-semibold text-gray-900 dark:text-gray-100 truncate"},ia={class:"text-xs text-gray-500 dark:text-gray-400 mt-0.5 font-mono"},oa={class:"flex items-center gap-2 flex-shrink-0 flex-wrap justify-end"},da=["onClick"],la=["onClick"],ca=["onClick"],ga={class:"mt-4 grid grid-cols-1 sm:grid-cols-2 gap-4"},ua={class:"flex items-center justify-between text-xs text-gray-500 dark:text-gray-400 mb-1"},pa={class:"h-2 w-full rounded-full bg-gray-100 dark:bg-gray-700"},xa={class:"flex items-center justify-between text-xs text-gray-500 dark:text-gray-400 mb-1"},ma={class:"h-2 w-full rounded-full bg-gray-100 dark:bg-gray-700"},ya={class:"mt-4 flex gap-3"},ba={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},_a={class:"text-xs text-gray-500 dark:text-gray-400"},va={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},fa={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},ha={class:"text-xs text-gray-500 dark:text-gray-400"},ka={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},$a={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},wa={class:"text-xs text-gray-500 dark:text-gray-400"},Ca={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},Va={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},Na={class:"text-xs text-gray-500 dark:text-gray-400"},Ma={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},Pa={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},Aa={class:"text-xs text-gray-500 dark:text-gray-400"},Sa={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},ja={class:"mt-3 flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-gray-500 dark:text-gray-400"},za={class:"text-gray-700 dark:text-gray-300"},Ia={class:"text-gray-700 dark:text-gray-300"},Ba={key:2,class:"mt-4"},Da=T({__name:"ListComputeMembers",props:{computePoolId:{}},setup(C){const c=C,f=b([]),V=b(!1),p=b(new Set),d=b(!1),_=b(null),g=b(!1),h=b(null);function y(i){_.value=i,d.value=!0}function A(i){h.value=i,g.value=!0}function o(i){p.value.has(i)?p.value.delete(i):p.value.add(i)}function M(i){return i.is_in_maintenance?{label:"Maintenance",color:"bg-amber-50 text-amber-700 ring-amber-600/20 dark:bg-amber-900/30 dark:text-amber-400 dark:ring-amber-500/20"}:i.is_alive?{label:"Online",color:"bg-green-50 text-green-700 ring-green-600/20 dark:bg-green-900/30 dark:text-green-400 dark:ring-green-500/20"}:{label:"Offline",color:"bg-red-50 text-red-700 ring-red-600/20 dark:bg-red-900/30 dark:text-red-400 dark:ring-red-500/20"}}function n(i){return i.total_cpu?Math.min(100,Math.round(i.used_cpu/(i.used_cpu+i.free_cpu)*100)):0}function x(i){return i.total_ram?Math.min(100,Math.round(i.used_ram/i.total_ram*100)):0}function $(i){return i>=90?"bg-red-500":i>=70?"bg-amber-500":"bg-green-500"}function N(i){if(!i)return"-";const u=Date.now()-new Date(i).getTime(),r=Math.floor(u/864e5);return r>365?`${Math.floor(r/365)}y ${Math.floor(r%365/30)}m`:r>30?`${Math.floor(r/30)}m ${r%30}d`:`${r}d`}async function R(){V.value=!0;try{const i=await X.get("/iaas/compute-members-perspective",{params:{iaasComputePoolId:c.computePoolId}});f.value=i.data??[]}catch{f.value=[]}finally{V.value=!1}}return H(()=>c.computePoolId,R),G(()=>{R()}),(i,u)=>(a(),s("div",Et,[V.value?(a(),s("div",Gt,[...u[2]||(u[2]=[e("svg",{class:"h-8 w-8 animate-spin text-indigo-600",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v8H4z"})],-1)])])):f.value.length===0?(a(),s("div",Ft,t(i.$t("No compute members found")),1)):(a(),s("div",Xt,[(a(!0),s(z,null,D(f.value,r=>(a(),s("div",{key:r.id,class:S(["rounded-lg border bg-white dark:bg-gray-800 p-5 hover:shadow-sm transition-shadow",r.has_error?"border-red-300 dark:border-red-700":r.has_warning?"border-amber-300 dark:border-amber-700":"border-gray-200 dark:border-gray-700"])},[r.has_error?(a(),s("div",qt,[l(k(xt),{class:"size-6 text-red-600 dark:text-red-400 flex-shrink-0 animate-pulse"}),e("div",null,[e("p",Kt,t(i.$t("Error Detected")),1),e("p",Qt,t(i.$t("This hypervisor has reported critical errors that require immediate attention.")),1)])])):w("",!0),r.has_warning?(a(),s("div",Wt,[l(k(mt),{class:"size-6 text-amber-600 dar
1k:text-amber-400 flex-shrink-0 animate-pulse"}),e("div",null,[e("p",Jt,t(i.$t("Warning")),1),e("p",Yt,t(i.$t("This hypervisor has active warnings that should be reviewed.")),1)])])):w("",!0),e("div",ea,[e("div",ta,[e("div",aa,[l(k(pt),{class:"size-5 text-violet-500 dark:text-violet-400"})]),e("div",sa,[e("div",ra,[e("h4",na,t(r.name),1)]),e("p",ia,t(r.ip_addr),1)])]),e("div",oa,[e("span",{class:S(["inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset",M(r).color])},t(i.$t(M(r).label)),3),e("span",{class:S(["inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset",r.is_event_service_running?"bg-green-50 text-green-700 ring-green-600/20 dark:bg-green-900/30 dark:text-green-400 dark:ring-green-500/20":"bg-gray-50 text-gray-500 ring-gray-600/20 dark:bg-gray-800 dark:text-gray-400 dark:ring-gray-500/20"])},t(i.$t("Events")),3),(a(!0),s(z,null,D((r.tags??[]).filter(m=>m),(m,U)=>(a(),s("span",{key:U,class:"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium bg-gray-50 text-gray-600 ring-1 ring-inset ring-gray-500/20 dark:bg-gray-700 dark:text-gray-300 dark:ring-gray-500/20"},t(m),1))),128)),r.states&&r.states.length>0?(a(),s("button",{key:0,type:"button",class:"inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset bg-indigo-50 text-indigo-700 ring-indigo-600/20 hover:bg-indigo-100 dark:bg-indigo-900/30 dark:text-indigo-400 dark:ring-indigo-500/20 dark:hover:bg-indigo-900/50 transition-colors",onClick:m=>o(r.id)},[I(t(i.$t("States"))+" ",1),l(k(ie),{class:S(["size-3 transition-transform duration-200",p.value.has(r.id)?"rotate-180":""])},null,8,["class"])],8,da)):w("",!0),e("button",{type:"button",class:"inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset bg-sky-50 text-sky-700 ring-sky-600/20 hover:bg-sky-100 dark:bg-sky-900/30 dark:text-sky-400 dark:ring-sky-500/20 dark:hover:bg-sky-900/50 transition-colors",onClick:m=>A(r)},[l(k(yt),{class:"size-3"}),I(" "+t(i.$t("Virtual Machines")),1)],8,la),e("button",{type:"button",class:"inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset bg-violet-50 text-violet-700 ring-violet-600/20 hover:bg-violet-100 dark:bg-violet-900/30 dark:text-violet-400 dark:ring-violet-500/20 dark:hover:bg-violet-900/50 transition-colors",onClick:m=>y(r)},[l(k(ne),{class:"size-3"}),I(" "+t(i.$t("Actions")),1)],8,ca)])]),e("div",ga,[e("div",null,[e("div",ua,[e("span",null,t(i.$t("CPU"))+": "+t(r.used_cpu)+" / "+t(r.used_cpu+r.free_cpu)+" vCPU",1),e("span",null,t(n(r))+"%",1)]),e("div",pa,[e("div",{class:S(["h-2 rounded-full transition-all",$(n(r))]),style:W({width:`${n(r)}%`})},null,6)])]),e("div",null,[e("div",xa,[e("span",null,t(i.$t("RAM"))+": "+t(r.used_ram)+" / "+t(r.total_ram)+" GB",1),e("span",null,t(x(r))+"%",1)]),e("div",ma,[e("div",{class:S(["h-2 rounded-full transition-all",$(x(r))]),style:W({width:`${x(r)}%`})},null,6)])])]),e("div",ya,[e("div",ba,[e("p",_a,t(i.$t("Sockets")),1),e("p",va,t(r.total_socket),1)]),e("div",fa,[e("p",ha,t(i.$t("Running VMs")),1),e("p",ka,t(r.running_vm),1)]),e("div",$a,[e("p",wa,t(i.$t("Halted VMs")),1),e("p",Ca,t(r.halted_vm),1)]),e("div",Va,[e("p",Na,t(i.$t("Total VMs")),1),e("p",Ma,t(r.total_vm),1)]),e("div",Pa,[e("p",Aa,t(i.$t("Uptime")),1),e("p",Sa,t(N(r.uptime)),1)])]),e("div",ja,[e("span",null,[I(t(i.$t("Maintainer"))+": ",1),e("span",za,t(r.maintainer),1)]),e("span",null,[I(t(i.$t("Responsible"))+": ",1),e("span",Ia,t(r.responsible),1)])]),p.value.has(r.id)&&r.states&&r.states.length>0?(a(),s("div",Ba,[l(oe,{states:r.states},null,8,["states"])])):w("",!0)],2))),128))])),l(E,{modelValue:d.value,"onUpdate:modelValue":u[0]||(u[0]=r=>d.value=r),label:_.value?.name??"",description:i.$t("Actions")},{default:L(()=>[_.value?(a(),B(re,{key:0,endpoint:"/iaas/compute-members","object-id":_.value.id},null,8,["object-id"])):w("",!0)]),_:1},8,["modelValue","label","description"]),l(E,{modelValue:g.value,"onUpdate:modelValue":u[1]||(u[1]=r=>g.value=r),label:h.value?.name??"",description:i.$t("Virtual Machines"),"drawer-width":"max-w-7xl"},{default:L(()=>[h.value?(a(),B(Te,{key:0,"initial-compute-member-name":h.value.name},null,8,["initial-compute-member-name"])):w("",!0)]),_:1},8,["modelValue","label","description"])]))}}),La={class:"bg-white dark:bg-gray-900"},Ra={key:0,class:"flex items-center justify-center py-12"},Ua={key:1,class:"py-12 text-center text-sm text-gray-500 dark:text-gray-400"},Ta={key:2,class:"space-y-4"},Za={class:"flex items-start justify-between gap-4"},Oa={class:"flex items-center gap-3 min-w-0"},Ha={class:"min-w-0"},Ea={class:"flex items-center gap-2"},Ga=["onClick"],Fa={key:0,class:"text-xs font-mono text-gray-400 dark:text-gray-500"},Xa={class:"text-xs text-gray-500 dark:text-gray-400 mt-0.5"},qa={class:"flex items-center gap-2 flex-shrink-0 flex-wrap justify-end"},Ka={key:0,class:"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium bg-indigo-50 text-indigo-700 ring-1 ring-inset ring-indigo-700/10 dark:bg-indigo-900/30 dark:text-indigo-400 dark:ring-indigo-500/20"},Qa={class:"mt-4 flex gap-3"},Wa={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},Ja={class:"text-xs text-gray-500 dark:text-gray-400"},Ya={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},es={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},ts={class:"text-xs text-gray-500 dark:text-gray-400"},as={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},ss={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},rs={class:"text-xs text-gray-500 dark:text-gray-400"},ns={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},is={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},os={class:"text-xs text-gray-500 dark:text-gray-400"},ds={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},ls={key:0,class:"flex items-center gap-1 ml-auto"},cs=T({__name:"ListComputePools",props:{datacenterId:{}},setup(C){const c=C,f=b([]),V=b(!1),p=b(!1),d=b(null);function _(y){d.value=y,p.value=!0}function g(y){return y.is_active?y.is_alive?{label:"Online",color:"bg-green-50 text-green-700 ring-green-600/20 dark:bg-green-900/30 dark:text-green-400 dark:ring-green-500/20"}:{label:"Offline",color:"bg-red-50 text-red-700 ring-red-600/20 dark:bg-red-900/30 dark:text-red-400 dark:ring-red-500/20"}:{label:"Inactive",color:"bg-gray-50 text-gray-700 ring-gray-600/20 dark:bg-gray-800 dark:text-gray-300 dark:ring-gray-500/20"}}async function h(){V.value=!0;try{const y=await X.get("/iaas/compute-pools",{params:{iaasDatacenterId:c.datacenterId}});f.value=y.data??[]}catch{f.value=[]}finally{V.value=!1}}return H(()=>c.datacenterId,h),G(()=>{h()}),(y,A)=>(a(),s("div",La,[V.value?(a(),s("div",Ra,[...A[1]||(A[1]=[e("svg",{class:"h-8 w-8 animate-spin text-indigo-600",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v8H4z"})],-1)])])):f.value.length===0?(a(),s("div",Ua,t(y.$t("No compute pools found")),1)):(a(),s("div",Ta,[(a(!0),s(z,null,D(f.value,o=>(a(),s("div",{key:o.id,class:"rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 p-5 hover:shadow-sm transition-shadow"},[e("div",Za,[e("div",Oa,[e("div",{class:S(["flex items-center justify-center size-10 rounded-lg flex-shrink-0",o.pool_type==="star"?"bg-amber-50 dark:bg-amber-900/30":"bg-indigo-50 dark:bg-indigo-900/30"])},[o.pool_type==="star"?(a(),B(k(Ze),{key:0,class:"size-5 text-amber-500 dark:text-amber-400"})):(a(),B(k(Ve),{key:1,class:"size-5 text-indigo-500 dark:text-indigo-400"}))],2),e("div",Ha,[e("div",Ea,[e("button",{type:"button",class:"text-sm font-semibold text-indigo-600 dark:text-indigo-400 truncate hover:underline",onClick:M=>_(o)},t(o.name),9,Ga),o.code_name?(a(),s("span",Fa,t(o.code_name),1)):w("",!0)]),e("p",Xa,t(o.virtualization),1)])]),e("div",qa,[o.is_default?(a(),s("span",Ka,t(y.$t("Default")),1)):w("",!0),e("span",{class:S(["inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium capitalize ring-1 ring-inset",o.pool_type==="star"?"bg-amber-50 text-amber-700 ring-amber-600/20 dark:bg-amber-900/30 dark:text-amber-400 dark:ring-amber-500/20":"bg-indigo-50 text-indigo-700 ring-indigo-600/20 dark:bg-indigo-900/30 dark:text-indigo-400 dark:ring-indigo-500/20"])},t(o.pool_type),3),e("span",{class:S(["inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset",g(o).color])},t(y.$t(g(o).label)),3),e("span",{class:S(["inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset",o.is_public?"bg-green-50 text-green-700 ring-green-600/20 dark:bg-green-900/30 dark:text-green-400 dark:ring-green-500/20":"bg-gray-50 text-gray-500 ring-gray-600/20 dark:bg-gray-800 dark:text-gray-400 dark:ring-gray-500/20"])},t(y.$t("Public")),3),e("span",{class:S(["inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset",o.is_iso27001_enabled?"bg-green-50 text-green-700 ring-green-600/20 dark:bg-green-900/30 dark:text-green-400 dark:ring-green-500/20":"bg-gray-50 text-gray-500 ring-gray-600/20 dark:bg-gray-800 dark:text-gray-400 dark:ring-gray-500/20"])},t(y.$t("ISO 27001")),3)])]),e("div",Qa,[e("div",Wa,[e("p",Ja,t(y.$t("CPU")),1),e("p",Ya,t(o.total_cpu)+" vCPU",1)]),e("div",es,[e("p",ts,t(y.$t("RAM")),1),e("p",as,t(o.total_ram)+" GB",1)]),e("div",ss,[e("p",rs,t(y.$t("Price / GB / Month")),1
1),e("p",ns,t(o.price_pergb_month??"-"),1)]),e("div",is,[e("p",os,t(y.$t("Disk/RAM Ratio")),1),e("p",ds,t(o.disk_ram_ratio??"-"),1)]),o.tags&&o.tags.filter(M=>M).length>0?(a(),s("div",ls,[(a(!0),s(z,null,D(o.tags.filter(M=>M),(M,n)=>(a(),s("span",{key:n,class:"inline-flex items-center rounded-full bg-gray-100 dark:bg-gray-700 px-2 py-0.5 text-xs text-gray-600 dark:text-gray-300"},t(M),1))),128))])):w("",!0)])]))),128))])),l(E,{modelValue:p.value,"onUpdate:modelValue":A[0]||(A[0]=o=>p.value=o),label:d.value?.name??"",description:y.$t("Compute Members"),"drawer-width":"max-w-7xl"},{default:L(()=>[d.value?(a(),B(Da,{key:0,"compute-pool-id":d.value.id},null,8,["compute-pool-id"])):w("",!0)]),_:1},8,["modelValue","label","description"])]))}}),gs={class:"bg-white dark:bg-gray-900"},us={key:0,class:"flex items-center justify-center py-12"},ps={key:1,class:"py-12 text-center text-sm text-gray-500 dark:text-gray-400"},xs={key:2,class:"space-y-4"},ms={class:"flex items-start justify-between gap-4"},ys={class:"flex items-center gap-3 min-w-0"},bs={class:"flex items-center justify-center size-10 rounded-lg flex-shrink-0 bg-emerald-50 dark:bg-emerald-900/30"},_s={class:"min-w-0"},vs={class:"text-sm font-semibold text-gray-900 dark:text-gray-100 truncate"},fs={class:"text-xs text-gray-500 dark:text-gray-400 mt-0.5 font-mono truncate"},hs={class:"flex items-center gap-2 flex-shrink-0 flex-wrap justify-end"},ks={key:0,class:"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium bg-green-50 text-green-700 ring-1 ring-inset ring-green-600/20 dark:bg-green-900/30 dark:text-green-400 dark:ring-green-500/20"},$s={key:1,class:"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium bg-blue-50 text-blue-700 ring-1 ring-inset ring-blue-600/20 dark:bg-blue-900/30 dark:text-blue-400 dark:ring-blue-500/20"},ws={key:2,class:"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium bg-amber-50 text-amber-700 ring-1 ring-inset ring-amber-600/20 dark:bg-amber-900/30 dark:text-amber-400 dark:ring-amber-500/20"},Cs=["onClick"],Vs=["onClick"],Ns={class:"mt-4"},Ms={class:"flex items-center justify-between text-xs text-gray-500 dark:text-gray-400 mb-1"},Ps={class:"h-2 w-full rounded-full bg-gray-100 dark:bg-gray-700"},As={class:"mt-4 flex gap-3"},Ss={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},js={class:"text-xs text-gray-500 dark:text-gray-400"},zs={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},Is={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},Bs={class:"text-xs text-gray-500 dark:text-gray-400"},Ds={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},Ls={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},Rs={class:"text-xs text-gray-500 dark:text-gray-400"},Us={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},Ts={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},Zs={class:"text-xs text-gray-500 dark:text-gray-400"},Os={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"}
1,Hs={key:0,class:"mt-4"},Es=T({__name:"ListStorageVolumes",props:{storagePoolId:{}},setup(C){const c=C,f=b([]),V=b(!1),p=b(new Set),d=b(!1),_=b(null);function g(x){p.value.has(x)?p.value.delete(x):p.value.add(x)}function h(x){_.value=x,d.value=!0}function y(x){return!x||isNaN(x)?"0 GB":x>=1024?`${(x/1024).toFixed(x%1024===0?0:1)} TB`:`${x} GB`}function A(x){return x.total_hdd?Math.min(100,Math.round(x.used_hdd/x.total_hdd*100)):0}function o(x){return x>=90?"bg-red-500":x>=70?"bg-amber-500":"bg-green-500"}function M(x){switch(x?.toLowerCase()){case"ssd":return"bg-indigo-50 text-indigo-700 ring-indigo-600/20 dark:bg-indigo-900/30 dark:text-indigo-400 dark:ring-indigo-500/20";case"nvme":return"bg-purple-50 text-purple-700 ring-purple-600/20 dark:bg-purple-900/30 dark:text-purple-400 dark:ring-purple-500/20";case"sas":return"bg-cyan-50 text-cyan-700 ring-cyan-600/20 dark:bg-cyan-900/30 dark:text-cyan-400 dark:ring-cyan-500/20";default:return"bg-gray-50 text-gray-700 ring-gray-600/20 dark:bg-gray-800 dark:text-gray-300 dark:ring-gray-500/20"}}async function n(){V.value=!0;try{const x=await X.get("/iaas/storage-volumes",{params:{iaasStoragePoolId:c.storagePoolId}});f.value=x.data??[]}catch{f.value=[]}finally{V.value=!1}}return H(()=>c.storagePoolId,n),G(()=>{n()}),(x,$)=>(a(),s("div",gs,[V.value?(a(),s("div",us,[...$[1]||($[1]=[e("svg",{class:"h-8 w-8 animate-spin text-indigo-600",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v8H4z"})],-1)])])):f.value.length===0?(a(),s("div",ps,t(x.$t("No storage volumes found")),1)):(a(),s("div",xs,[(a(!0),s(z,null,D(f.value,N=>(a(),s("div",{key:N.id,class:"rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 p-5 hover:shadow-sm transition-shadow"},[e("div",ms,[e("div",ys,[e("div",bs,[l(k(Ne),{class:"size-5 text-emerald-500 dark:text-emerald-400"})]),e("div",_s,[e("h4",vs,t(N.name),1),e("p",fs,t(N.hypervisor_uuid),1)])]),e("div",hs,[e("span",{class:S(["inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium uppercase ring-1 ring-inset",M(N.disk_physical_type)])},t(N.disk_physical_type),3),e("span",{class:S(["inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset",N.is_alive?"bg-green-50 text-green-700 ring-green-600/20 dark:bg-green-900/30 dark:text-green-400 dark:ring-green-500/20":"bg-red-50 text-red-700 ring-red-600/20 dark:bg-red-900/30 dark:text-red-400 dark:ring-red-500/20"])},t(N.is_alive?x.$t("Online"):x.$t("Offline")),3),N.is_storage?(a(),s("span",ks,t(x.$t("Storage")),1)):w("",!0),N.is_repo?(a(),s("span",$s,t(x.$t("Repo")),1)):w("",!0),N.is_cdrom?(a(),s("span",ws,t(x.$t("CD-ROM")),1)):w("",!0),(a(!0),s(z,null,D((N.tags??[]).filter(R=>R),(R,i)=>(a(),s("span",{key:i,class:"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium bg-gray-50 text-gray-600 ring-1 ring-inset ring-gray-500/20 dark:bg-gray-700 dark:text-gray-300 dark:ring-gray-500/20"},t(R),1))),128)),N.states&&N.states.length>0?(a(),s("button",{key:3,type:"button",class:"inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset bg-indigo-50 text-indigo-700 ring-indigo-600/20 hover:bg-indigo-100 dark:bg-indigo-900/30 dark:text-indigo-400 dark:ring-indigo-500/20 dark:hover:bg-indigo-900/50 transition-colors",onClick:R=>g(N.id)},[I(t(x.$t("States"))+" ",1),l(k(ie),{class:S(["size-3 transition-transform duration-200",p.value.has(N.id)?"rotate-180":""])},null,8,["class"])],8,Cs)):w("",!0),e("button",{type:"button",class:"inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset bg-violet-50 text-violet-700 ring-violet-600/20 hover:bg-violet-100 dark:bg-violet-900/30 dark:text-violet-400 dark:ring-violet-500/20 dark:hover:bg-violet-900/50 transition-colors",onClick:R=>h(N)},[l(k(ne),{class:"size-3"}),I(" "+t(x.$t("Actions")),1)],8,Vs)])]),e("div",Ns,[e("div",Ms,[e("span",null,t(x.$t("Used"))+": "+t(y(N.used_hdd))+" / "+t(y(N.total_hdd)),1),e("span",null,t(A(N))+"%",1)]),e("div",Ps,[e("div",{class:S(["h-2 rounded-full transition-all",o(A(N))]),style:W({width:`${A(N)}%`})},null,6)])]),e("div",As,[e("div",Ss,[e("p",js,t(x.$t("Total")),1),e("p",z
1s,t(y(N.total_hdd)),1)]),e("div",Is,[e("p",Bs,t(x.$t("Used")),1),e("p",Ds,t(y(N.used_hdd)),1)]),e("div",Ls,[e("p",Rs,t(x.$t("Free")),1),e("p",Us,t(y(N.free_hdd)),1)]),e("div",Ts,[e("p",Zs,t(x.$t("Virtual Alloc.")),1),e("p",Os,t(y(N.virtual_allocation)),1)])]),p.value.has(N.id)&&N.states&&N.states.length>0?(a(),s("div",Hs,[l(oe,{states:N.states},null,8,["states"])])):w("",!0)]))),128))])),l(E,{modelValue:d.value,"onUpdate:modelValue":$[0]||($[0]=N=>d.value=N),label:_.value?.name??"",description:x.$t("Actions")},{default:L(()=>[_.value?(a(),B(re,{key:0,endpoint:"/iaas/storage-volumes","object-id":_.value.id},null,8,["object-id"])):w("",!0)]),_:1},8,["modelValue","label","description"])]))}}),Gs={class:"bg-white dark:bg-gray-900"},Fs={key:0,class:"flex items-center justify-center py-12"},Xs={key:1,class:"py-12 text-center text-sm text-gray-500 dark:text-gray-400"},qs={key:2,class:"space-y-4"},Ks={class:"flex items-start justify-between gap-4"},Qs={class:"flex items-center gap-3 min-w-0"},Ws={class:"flex items-center justify-center size-10 rounded-lg flex-shrink-0 bg-cyan-50 dark:bg-cyan-900/30"},Js={class:"min-w-0"},Ys=["onClick"],er={class:"text-xs text-gray-500 dark:text-gray-400 mt-0.5"},tr={class:"flex items-center gap-2 flex-shrink-0 flex-wrap justify-end"},ar={class:"mt-4"},sr={class:"flex items-center justify-between text-xs text-gray-500 dark:text-gray-400 mb-1"},rr={class:"h-2 w-full rounded-full bg-gray-100 dark:bg-gray-700"},nr={class:"mt-4 flex gap-3"},ir={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},or={class:"text-xs text-gray-500 dark:text-gray-400"},dr={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},lr={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},cr={class:"text-xs text-gray-500 dark:text-gray-400"},gr={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},ur={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},pr={class:"text-xs text-gray-500 dark:text-gray-400"},xr={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},mr={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},yr={class:"text-xs text-gray-500 dark:text-gray-400"},br={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},_r={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},vr={class:"text-xs text-gray-500 dark:text-gray-400"},fr={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},hr={class:"mt-3 flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-gray-500 dark:text-gray-400"},kr={class:"text-gray-700 dark:text-gray-300"},$r={class:"text-gray-700 dark:text-gray-300"},wr=T({__name:"ListStoragePools",props:{datacenterId:{}},setup(C){const c=C,f=b([]),V=b(!1),p=b(!1),d=b(null);function _(o){d.value=o,p.value=!0}function g(o){const M=Number(o);return isNaN(M)||M===0?"0 GB":M>=1024?`${(M/1024).toFixed(M%1024===0?0:1)} TB`:`${M} GB`}function h(o){const M=Number(o.total_hdd),n=Number(o.used_hdd);return!M||isNaN(M)||isNaN(n)?0:Math.min(100,Math.round(n/M*100))}function y(o){return o>=90?"bg-red-500":o>=70?"bg-amber-500":"bg-green-500"}async function A(){V.value=!0;try{const o=await X.get("/iaas/storage-pools-perspective",{params:{iaasDatacenterId:c.datacenterId}});f.value=o.data??[]}catch{f.value=[]}finally{V.value=!1}}return H(()=>c.datacenterId,A),G(()=>{A()}),(o,M)=>(a(),s("div",Gs,[V.value?(a(),s("div",Fs,[...M[1]||(M[1]=[e("svg",{class:"h-8 w-8 animate-spin text-indigo-600",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v8H4z"})],-1)])])):f.value.length===0?(a(),s("div",Xs,t(o.$t("No storage pools found")),1)):(a(),s("div",qs,[(a(!0),s(z,null,D(f.value,n=>(a(),s("div",{key:n.id,class:"rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 p-5 hover:shadow-sm transition-shadow"},[e("div",Ks,[e("div",Qs,[e("div",Ws,[l(k(ce),{class:"size-5 text-cyan-500 dark:text-cyan-400"})]),e("div",Js,[e("button",{type:"button",class:"text-sm font-semibold text-indigo-600 dark:text-indigo-400 hover:underline truncate text-left",onClick:x=>_(n)}
1,t(n.name),9,Ys),e("p",er,t(n.cloud_node),1)])]),e("div",tr,[e("span",{class:S(["inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset",n.is_active?"bg-green-50 text-green-700 ring-green-600/20 dark:bg-green-900/30 dark:text-green-400 dark:ring-green-500/20":"bg-red-50 text-red-700 ring-red-600/20 dark:bg-red-900/30 dark:text-red-400 dark:ring-red-500/20"])},t(n.is_active?o.$t("Active"):o.$t("Inactive")),3),(a(!0),s(z,null,D((n.tags??[]).filter(x=>x),(x,$)=>(a(),s("span",{key:$,class:"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium bg-gray-50 text-gray-600 ring-1 ring-inset ring-gray-500/20 dark:bg-gray-700 dark:text-gray-300 dark:ring-gray-500/20"},t(x),1))),128))])]),e("div",ar,[e("div",sr,[e("span",null,t(o.$t("Used"))+": "+t(g(n.used_hdd))+" / "+t(g(n.total_hdd)),1),e("span",null,t(h(n))+"%",1)]),e("div",rr,[e("div",{class:S(["h-2 rounded-full transition-all",y(h(n))]),style:W({width:`${h(n)}%`})},null,6)])]),e("div",nr,[e("div",ir,[e("p",or,t(o.$t("Total")),1),e("p",dr,t(g(n.total_hdd)),1)]),e("div",lr,[e("p",cr,t(o.$t("Used")),1),e("p",gr,t(g(n.used_hdd)),1)]),e("div",ur,[e("p",pr,t(o.$t("Free")),1),e("p",xr,t(g(n.free_hdd)),1)]),e("div",mr,[e("p",yr,t(o.$t("Virtual Alloc.")),1),e("p",br,t(g(n.virtual_allocation)),1)]),e("div",_r,[e("p",vr,t(o.$t("Price / GB")),1),e("p",fr,t(n.price_pergb??"-"),1)])]),e("div",hr,[e("span",null,[I(t(o.$t("Maintainer"))+": ",1),e("span",kr,t(n.maintainer),1)]),e("span",null,[I(t(o.$t("Responsible"))+": ",1),e("span",$r,t(n.responsible),1)])])]))),128))])),l(E,{modelValue:p.value,"onUpdate:modelValue":M[0]||(M[0]=n=>p.value=n),label:d.value?.name??"",description:o.$t("Storage Volumes"),"drawer-width":"max-w-5xl"},{default:L(()=>[d.value?(a(),B(Es,{key:0,"storage-pool-id":d.value.id},null,8,["storage-pool-id"])):w("",!0)]),_:1},8,["modelValue","label","description"])]))}}),Cr={class:"rounded-xl bg-white dark:bg-gray-800 p-2"},Vr={class:"text-lg font-bold text-gray-800 dark:text-white mb-2"},Nr={class:"text-sm text-gray-500 dark:text-gray-400 mb-6"},Mr={class:"space-y-5"},Pr={class:"grid grid-cols-1 sm:grid-cols-3 gap-4"},Ar={class:"border-t border-gray-200 dark:border-gray-700 pt-5"},Sr={class:"text-sm font-semibold text-gray-800 dark:text-white mb-4"},jr={class:"grid grid-cols-1 sm:grid-cols-3 gap-4"},zr={class:"border-t border-gray-200 dark:border-gray-700 pt-5"},Ir={class:"text-sm font-semibold text-gray-800 dark:text-white mb-4"},Br={class:"grid grid-cols-1 sm:grid-cols-2 gap-4"},Dr={class:"border-t border-gray-200 dark:border-gray-700 pt-5"},Lr={class:"text-sm font-semibold text-gray-800 dark:text-white mb-4"},Rr={class:"grid grid-cols-1 sm:grid-cols-2 gap-4"},Ur={class:"border-t border-gray-200 dark:border-gray-700 pt-5"},Tr={class:"text-sm font-semibold text-gray-800 dark:text-white mb-4"},Zr={class:"space-y-4"},Or={class:"pt-0.5"},Hr={class:"text-sm font-medium text-gray-900 dark:text-white"},Er={class:"text-xs text-gray-500 dark:text-gray-400 mt-0.5"},Gr={class:"pt-2 mt-4 border-t border-gray-200 dark:border-gray-700"},Fr=["disabled"],Xr=T({__name:"NetworkVlanForm",props:{networkPoolId:{},vlan:{}},emits:["saved"],setup(C,{emit:c}){const f=C,V=c,p=F(()=>!!f.vlan?.id),d=b(""),_=b("0"),g=b(""),h=b("1500"),y=b(void 0),A=b(void 0),o=b(""),M=b(""),n=b(""),x=b(""),$=b(""),N=b(void 0),R=b(void 0),i=b(!1),u=b(!1),r=b(!1),m=b(!1),U=b(!1),O=b({}),q=b({show:!1,title:"",content:"",type:"success"});let de=null;function le(v,j,P="success"){de&&clearTimeout(de),q.value={show:!0,title:v,content:j,type:P},de=setTimeout(()=>{q.value.show=!1},5e3)}function _e(){if(!f.vlan)return;const v=f.vlan;d.value=v.name??"",_.value=String(v.vlan??0),g.value=v.vxlan??"",h.value=String(v.mtu??1500),y.value=v.bandwidth!=null?String(v.bandwidth):void 0,A.value=v.speed_limit!=null?String(v.speed_limit):void 0,N.value=v.price_pergb!=null?String(v.price_pergb):void 0,R.value=v.price_perip!=null?String(v.price_perip):void 0,o.value=v.ip_addr??"",M.value=v.cidr??"",n.value=v.ip_addr_range_start??"",x.value=v.ip_addr_range_end??"",$.value=Array.isArray(v.dns_nameservers)?v.dns_nameservers.join(", "):v.dns_nameservers??"",i.value=v.is_public??!1,u.value=v.is_vpn??!1,r.value=v.is_management??!1,m.value=v.is_dmz??!1}H(()=>f.vlan,_e,{immediate:!0});function ve(){return O.value={},d.value.trim()||(O.value.name="Name is required"),(_.value===""||isNaN(Number(_.value)))&&(O.value.vlan="VLAN must be a number"),g.value.trim()||(O.value.vxlan="VXLAN is required"),Object.keys(O.value).length===0}async function fe(){if(ve()){U.value=!0;try{const v={name:d.value.trim(),vlan:Number(_.value),vxlan:g.value.trim(),iaas_network_pool_id:f.networkPoolId,mtu:Number(h.value||1500),is_public:i.value,is_vpn:u.value,is_management:r.value,is_dmz:m.value};y.value&&(v.bandwidth=Number(y.value)),A.value&&(v.speed_limit=Number(A.value)),N.value&&(v.price_pergb=Number(N.value)),R.value&&(v.price_perip=Number(R.value)),o.value.trim()&&(v.ip_addr=o.value.trim()),M.value.trim()&&(v.cidr=M.value.trim()),n.value.trim()&&(v.ip_addr_range_start=n.value.trim()),x.value.trim()&&(v.ip_addr_range_end=x.value.trim()),$.value.trim()&&(v.dns_nameservers=$.value.split(",").map(P=>
1P.trim()).filter(Boolean));let j;p.value?(j=await ue.put(`/iaas/networks/${f.vlan.id}`,v),le("Success","Network updated successfully")):(j=await ue.post("/iaas/networks",v),le("Success","Network created successfully")),V("saved",j)}catch(v){le("Error",v.response?.data?.helper??"An error occurred","error")}finally{U.value=!1}}}return(v,j)=>(a(),s("div",Cr,[e("h3",Vr,t(p.value?v.$t("Edit Network"):v.$t("Create Network")),1),e("p",Nr,t(v.$t("Configure a network (VLAN/VXLAN) within this network pool.")),1),e("div",Mr,[e("div",Pr,[l(Z,{id:"nv-name",modelValue:d.value,"onUpdate:modelValue":j[0]||(j[0]=P=>d.value=P),label:v.$t("Name"),placeholder:v.$t("Network name"),error:O.value.name,class:"sm:col-span-1"},null,8,["modelValue","label","placeholder","error"]),l(Z,{id:"nv-vlan",modelValue:_.value,"onUpdate:modelValue":j[1]||(j[1]=P=>_.value=P),label:v.$t("VLAN"),placeholder:"100",error:O.value.vlan},null,8,["modelValue","label","error"]),l(Z,{id:"nv-vxlan",modelValue:g.value,"onUpdate:modelValue":j[2]||(j[2]=P=>g.value=P),label:v.$t("VXLAN"),placeholder:"10100",error:O.value.vxlan},null,8,["modelValue","label","error"])]),e("div",Ar,[e("h4",Sr,t(v.$t("Network Settings")),1),e("div",jr,[l(Z,{id:"nv-mtu",modelValue:h.value,"onUpdate:modelValue":j[3]||(j[3]=P=>h.value=P),label:v.$t("MTU"),placeholder:"1500",optional:!0},null,8,["modelValue","label"]),l(Z,{id:"nv-bandwidth",modelValue:y.value,"onUpdate:modelValue":j[4]||(j[4]=P=>y.value=P),label:v.$t("Bandwidth"),placeholder:v.$t("Mbps"),optional:!0},null,8,["modelValue","label","placeholder"]),l(Z,{id:"nv-speed-limit",modelValue:A.value,"onUpdate:modelValue":j[5]||(j[5]=P=>A.value=P),label:v.$t("Speed Limit"),placeholder:v.$t("Mbps"),optional:!0},null,8,["modelValue","label","placeholder"])])]),e("div",zr,[e("h4",Ir,t(v.$t("IP Settings")),1),e("div",Br,[l(Z,{id:"nv-ip-addr",modelValue:o.value,"onUpdate:modelValue":j[6]||(j[6]=P=>o.value=P),label:v.$t("IP Address"),placeholder:"192.168.1.1",optional:!0},null,8,["modelValue","label"]),l(Z,{id:"nv-cidr",modelValue:M.value,"onUpdate:modelValue":j[7]||(j[7]=P=>M.value=P),label:v.$t("CIDR"),placeholder:"192.168.1.0/24",optional:!0},null,8,["modelValue","label"]),l(Z,{id:"nv-ip-range-start",modelValue:n.value,"onUpdate:modelValue":j[8]||(j[8]=P=>n.value=P),label:v.$t("IP Range Start"),placeholder:"192.168.1.100",optional:!0},null,8,["modelValue","label"]),l(Z,{id:"nv-ip-range-end",modelValue:x.value,"onUpdate:modelValue":j[9]||(j[9]=P=>x.value=P),label:v.$t("IP Range End"),placeholder:"192.168.1.200",optional:!0},null,8,["modelValue","label"]),l(Z,{id:"nv-dns",modelValue:$.value,"onUpdate:modelValue":j[10]||(j[10]=P=>$.value=P),label:v.$t("DNS Nameservers"),placeholder:"8.8.8.8, 8.8.4.4",optional:!0,class:"sm:col-span-2"},null,8,["modelValue","label"])])]),e("div",Dr,[e("h4",Lr,t(v.$t("Pricing")),1),e("div",Rr,[l(Z,{id:"nv-price-pergb",modelValue:N.value,"onUpdate:modelValue":j[11]||(j[11]=P=>N.value=P),label:v.$t("Price per GB"),placeholder:"0.00",optional:!0},null,8,["modelValue","label"]),l(Z,{id:"nv-price-perip",modelValue:R.value,"onUpdate:modelValue":j[12]||(j[12]=P=>R.value=P),label:v.$t("Price per IP"),placeholder:"0.00",optional:!0},null,8,["modelValue","label"])])]),e("div",Ur,[e("h4",Tr,t(v.$t("Network Type")),1),e("div",Zr,[(a(),s(z,null,D([{id:"nv-is-public",model:"isPublic",label:"Public",desc:"This network is publicly accessible."},{id:"nv-is-vpn",model:"isVpn",label:"VPN",desc:"This network is used for VPN connectivity."},{id:"nv-is-management",model:"isManagement",label:"Management",desc:"This network is used for management traffic."},{id:"nv-is-dmz",model:"isDmz",label:"DMZ",desc:"This network is in the demilitarized zone."}],P=>e("div",{key:P.id,class:"flex items-start gap-3"},[e("div",Or,[P.model==="isPublic"?(a(),B(Y,{key:0,id:P.id,modelValue:i.value,"onUpdate:modelValue":j[13]||(j[13]=K=>i.value=K),label:P.label},null,8,["id","modelValue","label"])):P.model==="isVpn"?(a(),B(Y,{key:1,id:P.id,modelValue:u.value,"onUpdate:modelValue":j[14]||(j[14]=K=>u.value=K),label:P.label},null,8,["id","modelValue","label"])):P.model==="isManagement"?(a(),B(Y,{key:2,id:P.id,modelValue:r.value,"onUpdate:modelValue":j[15]||(j[15]=K=>r.value=K),label:P.label},null,8,["id","modelValue","label"])):P.model==="isDmz"?(a(),B(Y,{key:3,id:P.id,modelValue:m.value,"onUpdate:modelValue":j[16]||(j[16]=K=>m.value=K),label:P.label},null,8,["id","modelValue","label"])):w("",!0)]),e("div",null,[e("span",Hr,t(v.$t(P.label)),1
1),e("p",Er,t(v.$t(P.desc)),1)])])),64))])]),e("div",Gr,[e("button",{type:"button",disabled:U.value,class:"inline-flex justify-center rounded-md bg-indigo-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600 disabled:opacity-50 disabled:pointer-events-none",onClick:fe},t(U.value?v.$t("Saving..."):p.value?v.$t("Update Network"):v.$t("Create Network")),9,Fr)])]),l(Oe,{show:q.value.show,title:q.value.title,content:q.value.content,type:q.value.type,onClose:j[17]||(j[17]=P=>q.value.show=!1)},null,8,["show","title","content","type"])]))}}),qr={class:"bg-white dark:bg-gray-900"},Kr={class:"flex items-center justify-between mb-4"},Qr={class:"text-sm text-gray-500 dark:text-gray-400"},Wr={key:0,class:"flex items-center justify-center py-12"},Jr={key:1,class:"py-12 text-center text-sm text-gray-500 dark:text-gray-400"},Yr={class:"space-y-4"},en={class:"flex items-start justify-between gap-4"},tn={class:"flex items-center gap-3 min-w-0"},an={class:"flex items-center justify-center size-10 rounded-lg flex-shrink-0 bg-teal-50 dark:bg-teal-900/30"},sn={class:"min-w-0"},rn={class:"text-sm font-semibold text-gray-900 dark:text-gray-100 truncate"},nn={class:"text-xs text-gray-500 dark:text-gray-400 mt-0.5 font-mono"},on={class:"flex items-center gap-2 flex-shrink-0 flex-wrap justify-end"},dn={key:0,class:"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium bg-green-50 text-green-700 ring-1 ring-inset ring-green-600/20 dark:bg-green-900/30 dark:text-green-400 dark:ring-green-500/20"},ln={key:1,class:"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium bg-indigo-50 text-indigo-700 ring-1 ring-inset ring-indigo-600/20 dark:bg-indigo-900/30 dark:text-indigo-400 dark:ring-indigo-500/20"},cn={key:2,class:"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium bg-purple-50 text-purple-700 ring-1 ring-inset ring-purple-600/20 dark:bg-purple-900/30 dark:text-purple-400 dark:ring-purple-500/20"},gn={key:3,class:"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium bg-amber-50 text-amber-700 ring-1 ring-inset ring-amber-600/20 dark:bg-amber-900/30 dark:text-amber-400 dark:ring-amber-500/20"},un=["onClick"],pn=["onClick"],xn=["onClick"],mn={class:"mt-4 flex gap-3"},yn={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},bn={class:"text-xs text-gray-500 dark:text-gray-400"},_n={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},vn={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},fn={class:"text-xs text-gray-500 dark:text-gray-400"},hn={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},kn={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},$n={class:"text-xs text-gray-500 dark:text-gray-400"},wn={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},Cn={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},Vn={class:"text-xs text-gray-500 dark:text-gray-400"},Nn={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},Mn={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},Pn={class:"text-xs text-gray-500 dark:text-gray-400"},An={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},Sn={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},jn={class:"text-xs text-gray-500 dark:text-gray-400"},zn={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},In={key:0,class:"mt-3 flex gap-3"},Bn={key:0,class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},Dn={class:"text-xs text-gray-500 dark:text-gray-400"},Ln={class:"text-sm font-semibold text-gray-900 dark:text-gray-100 font-mono"},Rn={key:1,class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},Un={class:"text-xs text-gray-500 dark:text-gray-400"},Tn={class:"text-sm font-semibold text-gray-900 dark:text-gray-100 font-mono"},Zn={key:2,class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},On={class:"text-xs text-gray-500 dark:text-gray-400"},Hn={class:"text-sm font-semibold text-gray-900 dark:text-gray-100 font-mono"},En={key:3,class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},Gn={class:"text-xs text-gray-500 dark:text-gray-400"},Fn={class:"text-sm font-semibold text-gray-900 dark:text-gray-100 font-mono"},Xn={key:1,class:"mt-4"},qn={key:0,class:"mt-6 flex items-center justify-between border-t border-gray-200 dark:border-gray-700 pt-4"},Kn={class:"text-sm text-gray-500 dark:text-gray-400"},Qn={class:"ml-2 text-xs"},Wn={class:"flex items-center gap-2"},Jn=["disabled"],Yn=["disabled"],be=T({__name:"ListNetworkVlans",props:{networkPoolId:{}},setup(C){const c=C,f=b([]),V=b(!1),p=b(new Set),d=b(!1),_=b(null),g=b({current_page:1,last_page:1,per_page:15,total:0}),h=b(!1),y=b(void 0);function A(i){p.value.has(i)?p.value.delete(i):p.value.add(i)}function o(i){_.value=i,d.value=!0}function M(){y.value=void 0,h.value=!0}function n(i){y.value=i,h.value=!0}function x(){h.value=!1,N(g.value.current_page)}function $(i){return i<0?"Untagged":`VLAN ${i}`}async function N(i=1){V.value=!0;try{const u=await X.get("/iaas/networks",{params:{iaasNetworkPoolId:c.networkPoolId,paginate:!0,order:"vlan|asc",page:i}});f.value=u.data??[],u.meta&&(g.value=u.meta)}catch{f.value=[]}finally{V.value=!1}}function R(i){i<1||i>g.value.last_page||N(i)}return H(()=>c.networkPoolId,()=>N(1)),G(()=>{N()}),(i,u)=>
1(a(),s("div",qr,[e("div",Kr,[e("p",Qr,t(i.$t("Networks in this pool")),1),e("button",{type:"button",class:"inline-flex items-center gap-1.5 rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500",onClick:M},[l(k(Me),{class:"size-4"}),I(" "+t(i.$t("Create Network")),1)])]),V.value?(a(),s("div",Wr,[...u[4]||(u[4]=[e("svg",{class:"h-8 w-8 animate-spin text-indigo-600",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v8H4z"})],-1)])])):f.value.length===0?(a(),s("div",Jr,t(i.$t("No VLANs found")),1)):(a(),s(z,{key:2},[e("div",Yr,[(a(!0),s(z,null,D(f.value,r=>(a(),s("div",{key:r.id,class:"rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 p-5 hover:shadow-sm transition-shadow"},[e("div",en,[e("div",tn,[e("div",an,[l(k(se),{class:"size-5 text-teal-500 dark:text-teal-400"})]),e("div",sn,[e("h4",rn,t(r.name),1),e("p",nn,t($(r.vlan)),1)])]),e("div",on,[r.is_public?(a(),s("span",dn,t(i.$t("Public")),1)):w("",!0),r.is_vpn?(a(),s("span",ln,t(i.$t("VPN")),1)):w("",!0),r.is_management?(a(),s("span",cn,t(i.$t("Management")),1)):w("",!0),r.is_dmz?(a(),s("span",gn,t(i.$t("DMZ")),1)):w("",!0),(a(),s(z,null,D([],(m,U)=>e("span",{key:U,class:"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium bg-gray-50 text-gray-600 ring-1 ring-inset ring-gray-500/20 dark:bg-gray-700 dark:text-gray-300 dark:ring-gray-500/20"},t(m),1)),64)),r.states&&r.states.length>0?(a(),s("button",{key:4,type:"button",class:"inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset bg-indigo-50 text-indigo-700 ring-indigo-600/20 hover:bg-indigo-100 dark:bg-indigo-900/30 dark:text-indigo-400 dark:ring-indigo-500/20 dark:hover:bg-indigo-900/50 transition-colors",onClick:m=>A(r.id)},[I(t(i.$t("States"))+" ",1),l(k(ie),{class:S(["size-3 transition-transform duration-200",p.value.has(r.id)?"rotate-180":""])},null,8,["class"])],8,un)):w("",!0),e("button",{type:"button",class:"inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset bg-gray-50 text-gray-600 ring-gray-500/20 hover:bg-gray-100 dark:bg-gray-700 dark:text-gray-300 dark:ring-gray-500/20 dark:hover:bg-gray-600 transition-colors",onClick:m=>n(r)},[l(k(Pe),{class:"size-3"}),I(" "+t(i.$t("Edit")),1)],8,pn),e("button",{type:"button",class:"inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset bg-violet-50 text-violet-700 ring-violet-600/20 hover:bg-violet-100 dark:bg-violet-900/30 dark:text-violet-400 dark:ring-violet-500/20 dark:hover:bg-violet-900/50 transition-colors",onClick:m=>o(r)},[l(k(ne),{class:"size-3"}),I(" "+t(i.$t("Actions")),1)],8,xn)])]),e("div",mn,[e("div",yn,[e("p",bn,t(i.$t("VXLAN")),1),e("p",_n,t(r.vxlan),1)]),e("div",vn,[e("p",fn,t(i.$t("MTU")),1),e("p",hn,t(r.mtu),1)]),e("div",kn,[e("p",$n,t(i.$t("Bandwidth")),1),e("p",wn,t(r.bandwidth||"-"),1)]),e("div",Cn,[e("p",Vn,t(i.$t("Speed Limit")),1),e("p",Nn,t(r.speed_limit||"-"),1)]),e("div",Mn,[e("p",Pn,t(i.$t("Price / GB")),1),e("p",An,t(r.price_pergb),1)]),e("div",Sn,[e("p",jn,t(i.$t("Price / IP")),1),e("p",zn,t(r.price_perip),1)])]),r.ip_addr||r.cidr||r.ip_addr_range_start?(a(),s("div",In,[r.cidr?(a(),s("div",Bn,[e("p",Dn,t(i.$t("CIDR")),1),e("p",Ln,t(r.cidr),1)])):w("",!0),r.ip_addr?(a(),s("div",Rn,[e("p",Un,t(i.$t("IP Address")),1),e("p",Tn,t(r.ip_addr),1)])):w("",!0),r.ip_addr_range_start?(a(),s("div",Zn,[e("p",On,t(i.$t("IP Range")),1),e("p",Hn,t(r.ip_addr_range_start)+" â "+t(r.ip_addr_range_end),1)])):w("",!0),r.dns_nameservers?(a(),s("div",En,[e("p",Gn,t(i.$t("DNS")),1),e("p",Fn,t(r.dns_nameservers),1)])):w("",!0)])):w("",!0),p.value.has(r.id)&&r.states&&r.states.length>0?(a(),s("div",Xn,[l(oe,{states:r.states},null,8,["states"])])):w("",!0)]))),128))]),g.value.last_page>1?(a(),s("div",qn,[e("p",Kn,[I(t(i.$t("Page"))+" "+t(g.value.current_page)+" / "+t(g.value.last_page)+" ",1),e("span",Qn,"("+t(g.value.total)+" "+t(i.$t("total"))+")",1)]),e("div",Wn,[e("button",{type:"button",class:S(["inline-flex items-center gap-1 rounded-md px-3 py-1.5 text-sm font-medium transition-colors",g.value.current_page<=1?"text-gray-300 dark:text-gray-600 cursor-not-allowed":"text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800"]),disabled:g.value.current_page<=1,onClick:u[0]||(u[0]=r=>R(g.value.current_page-1))},[l(k(ct),{class:"size-4"}),I(" "+t(i.$t("Previous")),1)],10,Jn),e("button",{type:"button",class:S(["inline-flex items-center gap-1 rounded-md px-3 py-1.5 text-sm font-medium transition-colors",g.value.current_page>=g.value.last_page?"text-gray-300 dark:text-gray-600 cursor-not-allowed":"text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800"]),disabled:g.value.current_page>=g.value.last_page,onClick:u[1]||(u[1]=r=>R(g.value.current_page+1))},[I(t(i.$t("Next"))+" ",1),l(k(gt),{class:"size-4"})],10,Yn)])])):w("",!0)],64)),l(E,{modelValue:d.value,"onUpdate:modelValue":u[2]||(u[2]=r=>d.value=r),label:_.value?.name??"",description:i.$t("Actions")},{default:L(()=>[_.value?(a(),B(re,{key:0,endpoint:"/iaas/networks","object-id":_.value.id},null,8,["object-id"])):w("",!0)]),_:1},8,["modelValue","label","description"]),l(E,{modelValue:h.value,"onUpdate:modelValue":u[3]||(u[3]=r=>h.value=r),label:y.value?i.$t("Edit Network"):i.$t("Create Network"),description:y.value?.name??void 0},{default:L(()=>[l(Xr,{"network-pool-id":C.networkPoolId,vlan:y.value,onSaved:x},null,8,["network-pool-id","vlan"])]),_:1},8,["modelValue","label","description"])]))}}),e0={class:"bg-white dark:bg-gray-900"},t0={key:0,class:"flex items-center justify-center py-12"},a0={key:1,class:"py-12 text-center text-sm text-gray-500 dark:text-gray-400"},s0={key:2,class:"space-y-4"},r0={class:"flex items-start justify-between gap-4"},n0={class:"flex items-center gap-3 min-w-0"},i0={class:"flex items-center justify-center size-10 rounded-lg flex-shrink-0 bg-blue-50 dark:bg-blue-900/30"},o0={class:"min-w-0"},d0={class:"text-sm font-semibold text-gray-900 dark:text-gray-100 truncate"},l0={class:"text-xs text-gray-500 dark:text-gray-400 mt-0.5 font-mono"},c0={class:"flex items-center gap-2 flex-shrink-0 flex-wrap justify-end"},g0={key:0,class:"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium bg-purple-50 text-purple-700 ring-1 ring-inset ring-purple-600/20 dark:bg-purple-900/30 dark:text-purple-400 dark:ring-purple-500/20"},u0={key:1,class:"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium bg-amber-50 text-amber-700 ring-1 ring-inset ring-amber-600/20 dark:bg-amber-900/30 dark:text-amber-400 dark:ring-amber-500/20"},p0=["onClick"],x0=["onClick"],m0={class:"mt-4 flex gap-3"},y0={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},b0={class:"text-xs text-gray-500 dark:text-gray-400"},_0={class:"text-sm font-semibold text-gray-900 dark:text-gray-100 font-mono"},v0={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},f0={class:"text-xs text-gray-500 dark:text-gray-400"},h0={class:"text-sm font-semibold text-gray-900 dark:text-gray-100 font-mono"},k0={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},$0={class:"text-xs text-gray-500 dark:text-gray-400"},w0={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},C0={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},V0={class:"text-xs text-gray-500 dark:text-gray-400"},N0={class:"text-sm font-semibold text-gray-900 dark:text-gray-100 uppercase"},M0={key:0,class:"mt-4"},P0=T({__name:"ListNetworkMembers",props:{networkPoolId:{}},setup(C){const c=C,f=b([]),V=b(!1),p=b(new Set),d=b(!1),_=b(null);function g(o){p.value.has(o)?p.value.delete(o):p.value.add(o)}function h(o){_.value=o,d.value=!0}function y(o){switch(o?.toLowerCase()){case"ovs":return"bg-indigo-50 text-indigo-700 ring-indigo-600/20 dark:bg-indigo-900/30 dark:text-indigo-400 dark:ring-indigo-500/20";case"linux":return"bg-cyan-50 text-cyan-700 ring-cyan-600/20 dark:bg-cyan-900/30 dark:text-cyan-400 dark:ring-cyan-500/20";default:return"bg-gray-50 text-gray-700 ring-gray-600/20 dark:bg-gray-800 dark:text-gray-300 dark:ring-gray-500/20"}}async function A(){V.value=!0;try{const o=await X.get("/iaas/network-members",{params:{iaasNetworkPoolId:c.networkPoolId}});f.value=o.data??[]}catch{f.value=[]}finally{V.value=!1}}return H(()=>c.networkPoolId,A),G(()=>{A()}),(o,M)=>(a(),s("div",e0,[V.value?(a(),s("div",t0,[...M[1]||(M[1]=[e("svg",{class:"h-8 w-8 animate-spin text-indigo-600",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v8H4z"})],-1)])])):f.value.length===0?(a(),s("div",a0,t(o.$t("No network members found")),1)):(a(),s("div",s0,[(a(!0),s(z,null,D(f.value,n=>(a(),s("div",{key:n.id,class:"rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 p-5 hover:shadow-sm transition-shadow"},[e("div",r0,[e("div",n0,[e("div",i0,[l(k(ae),{class:"size-5 text-blue-500 dark:text-blue-400"})]),e("div",o0,[e("h4",d0,t(n.name),1),e("p",l0,t(n.ip_addr),1)])]),e("div",c0,[e("span",{class:S(["inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium uppercase ring-1 ring-inset",y(n.switch_type)])},t(n.switch_type),3),n.is_root_switch?(a(),s("span",g0,t(o.$t("Root Switch")),1)):w("",!0),n.is_behind_firewall?(
1a(),s("span",u0,t(o.$t("Behind Firewall")),1)):w("",!0),(a(!0),s(z,null,D((n.tags??[]).filter(x=>x),(x,$)=>(a(),s("span",{key:$,class:"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium bg-gray-50 text-gray-600 ring-1 ring-inset ring-gray-500/20 dark:bg-gray-700 dark:text-gray-300 dark:ring-gray-500/20"},t(x),1))),128)),n.states&&n.states.length>0?(a(),s("button",{key:2,type:"button",class:"inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset bg-indigo-50 text-indigo-700 ring-indigo-600/20 hover:bg-indigo-100 dark:bg-indigo-900/30 dark:text-indigo-400 dark:ring-indigo-500/20 dark:hover:bg-indigo-900/50 transition-colors",onClick:x=>g(n.id)},[I(t(o.$t("States"))+" ",1),l(k(ie),{class:S(["size-3 transition-transform duration-200",p.value.has(n.id)?"rotate-180":""])},null,8,["class"])],8,p0)):w("",!0),e("button",{type:"button",class:"inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset bg-violet-50 text-violet-700 ring-violet-600/20 hover:bg-violet-100 dark:bg-violet-900/30 dark:text-violet-400 dark:ring-violet-500/20 dark:hover:bg-violet-900/50 transition-colors",onClick:x=>h(n)},[l(k(ne),{class:"size-3"}),I(" "+t(o.$t("Actions")),1)],8,x0)])]),e("div",m0,[e("div",y0,[e("p",b0,t(o.$t("Local IP")),1),e("p",_0,t(n.local_ip_addr),1)]),e("div",v0,[e("p",f0,t(o.$t("SSH User")),1),e("p",h0,t(n.ssh_username),1)]),e("div",k0,[e("p",$0,t(o.$t("SSH Port")),1),e("p",w0,t(n.ssh_port),1)]),e("div",C0,[e("p",V0,t(o.$t("Switch Type")),1),e("p",N0,t(n.switch_type),1)])]),p.value.has(n.id)&&n.states&&n.states.length>0?(a(),s("div",M0,[l(oe,{states:n.states},null,8,["states"])])):w("",!0)]))),128))])),l(E,{modelValue:d.value,"onUpdate:modelValue":M[0]||(M[0]=n=>d.value=n),label:_.value?.name??"",description:o.$t("Actions")},{default:L(()=>[_.value?(a(),B(re,{key:0,endpoint:"/iaas/network-members","object-id":_.value.id},null,8,["object-id"])):w("",!0)]),_:1},8,["modelValue","label","description"])]))}}),A0={class:"bg-white dark:bg-gray-900"},S0={key:0,class:"flex items-center justify-center py-12"},j0={key:1,class:"py-12 text-center text-sm text-gray-500 dark:text-gray-400"},z0={key:2,class:"space-y-4"},I0={class:"flex items-start justify-between gap-4"},B0={class:"flex items-center gap-3 min-w-0"},D0={class:"flex items-center justify-center size-10 rounded-lg flex-shrink-0 bg-blue-50 dark:bg-blue-900/30"},L0={class:"min-w-0"},R0=["onClick"],U0={class:"text-xs text-gray-500 dark:text-gray-400 mt-0.5"},T0={class:"flex items-center gap-2 flex-shrink-0 flex-wrap justify-end"},Z0=["onClick"],O0={class:"mt-4 flex gap-3"},H0={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},E0={class:"text-xs text-gray-500 dark:text-gray-400"},G0={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},F0={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},X0={class:"text-xs text-gray-500 dark:text-gray-400"},q0={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},K0={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},Q0={class:"text-xs text-gray-500 dark:text-gray-400"},W0={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},J0={class:"flex-1 min-w-0 rounded-md bg-gray-50 dark:bg-gray-700/50 px-3 py-2"},Y0={class:"text-xs text-gray-500 dark:text-gray-400"},ei={class:"text-sm font-semibold text-gray-900 dark:text-gray-100"},ti=T({__name:"ListNetworkPools",props:{datacenterId:{}},setup(C){const c=C,f=b([]),V=b(!1),p=b(!1),d=b(!1),_=b(null),g=b(null);function h(n){_.value=n,p.value=!0}function y(n){g.value=n,d.value=!0}function A(n){return`${n.vlan_start} â ${n.vlan_end}`}function o(n){return`${n.vxlan_start} â ${n.vxlan_end}`}async function M(){V.value=!0;try{const n=await X.get("/iaas/network-pools",{params:{iaasDatacenterId:c.datacenterId}});f.value=n.data??[]}catch{f.value=[]}finally{V.value=!1}}return H(()=>c.datacenterId,M),G(()=>{M()}),(n,x)=>(a(),s("div",A0,[V.value?(a(),s("div",S0,[...x[2]||(x[2]=[e("svg",{class:"h-8 w-8 animate-spin text-indigo-600",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v8H4z"})],-1)])])):f.value.length===0?(a(),s("div",j0,t(n.$t("No network pools found")),1)):(a(),s("div",z0,[(a(!0),s(z,null,D(f.value,$=>(a(),s("div",{key:$.id,class:"rounded-lg border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800 p-5 hover:shadow-sm transition-shadow"},[e("div",I0,[e("div",B0,[e("div",D0,[l(k(se),{class:"size-5 text-blue-500 dark:text-blue-400"})]),e("div",L0,[e("button",{type:"button",class:"text-sm font-semibold text-indigo-600 dark:text-indigo-400 hover:underline truncate text-left",onClick:N=>h($)},t($.name),9,R0),e("p",U0,t(n.$t("Price / GB"))+": "+t($.price_pergb??"-"),1)])]),e("div",T0,[e("span",{class:S(["inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset",$.is_active?"bg-green-50 text-green-700 ring-green-600/20 dark:bg-green-900/30 dark:text-green-400 dark:ring-green-500/20":"bg-red-50 text-red-700 ring-red-600/20 dark:bg-red-900/30 dark:text-red-400 dark:ring-red-500/20"])},t($.is_active?n.$t("Active"):n.$t("Inactive")),3),e("span",{class:S(["inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset",$.is_vlan_available?"bg-green-50 text-green-700 ring-green-600/20 dark:bg-green-900/30 dark:text-green-400 dark:ring-green-500/20":"bg-gray-50 text-gray-500 ring-gray-600/20 dark:bg-gray-800 dark:text-gray-400 dark:ring-gray-500/20"])},t(n.$t("VLAN")),3),e("span",{class:S(["inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset",$.is_vxlan_available?"bg-green-50 text-green-700 ring-green-600/20 dark:bg-green-900/30 dark:text-green-400 dark:ring-green-500/20":"bg-gray-50 text-gray-500 ring-gray-600/20 dark:bg-gray-800 dark:text-gray-400 dark:ring-gray-500/20"])},t(n.$t("VXLAN")),3),(a(!0),s(z,null,D(($.tags??[]).filter(N=>N),(N,R)=>(a(),s("span",{key:R,class:"inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium bg-gray-50 text-gray-600 ring-1 ring-inset ring-gray-500/20 dark:bg-gray-700 dark:text-gray-300 dark:ring-gray-500/20"},t(N),1))),128)),e("button",{type:"button",class:"inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset bg-cyan-50 text-cyan-700 ring-cyan-600/20 hover:bg-cyan-100 dark:bg-cyan-900/30 dark:text-cyan-400 dark:ring-cyan-500/20 dark:hover:bg-cyan-900/50 transition-colors",onClick:N=>y($)},[l(k(bt),{class:"size-3"}),I(" "+t(n.$t("Members")),1)],8,Z0)])]),e("div",O0,[e("div",H0,[e("p",E0,t(n.$t("VLAN Range")),1),e("p",G0,t(A($)),1)]),e("div",F0,[e("p",X0,t(n.$t("VLAN Capacity")),1),e("p",q0,t($.vlan_end-$.vlan_start+1),1)]),e("div",K0,[e("p",Q0,t(n.$t("VXLAN Range")),1),e("p",W0,t(o($)),1)]),e("div",J0,[e("p",Y0,t(n.$t("VXLAN Capacity")),1),e("p",ei,t($.vxlan_end-$.vxlan_start+1),1)])])]))),128))])),l(E,{modelValue:p.value,"onUpdate:modelValue":x[0]||(x[0]=$=>p.value=$),label:_.value?.name??"",description:n.$t("VLANs"),"drawer-width":"max-w-5xl"},{default:L(()=>[_.value?(a(),B(be,{key:0,"network-pool-id":_.value.id},null,8,["network-pool-id"])):w("",!0)]),_:1},8,["modelValue","label","description"]),l(E,{modelValue:d.value,"onUpdate:modelValue":x[1]||(x[1]=$=>d.value=$),label:g.value?.name??"",description:n.$t("Network Members"),"drawer-width":"max-w-5xl"},{default:L(()=>[g.value?(a(),B(P0,{key:0,"network-pool-id":g.value.id},null,8,["network-pool-id"])):w("",!0)]),_:1},8,["modelValue","label","description"])]))}}),ai={class:"mb-4 flex flex-wrap gap-2"},si=["onClick"],ri={key:0,class:"flex items-center justify-center py-16"},ni={key:1,class:"py-16 text-center text-sm text-gray-500 dark:text-gray-400"},ii={class:"flow-root"},oi={class:"-mx-4 overflow-x-auto sm:-mx-6 lg:-mx-8"},di={class:"inline-block min-w-full py-2 align-middle sm:px-6 lg:px-8"},li={class:"min-w-full divide-y divide-gray-200 dark:divide-gray-700"},ci={scope:"col",class:"py-3.5 pl-4 pr-3 text-left text-xs font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400 sm:pl-0"},gi={scope:"col",class:"px-3 py-3.5 text-left text-xs font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400"},ui={scope:"col",class:"px-3 py-3.5 text-left text-xs font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400"},pi={scope:"col",class:"px-3 py-3.5 text-left text-xs font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400"},xi={scope:"col",class:"px-3 py-3.5 text-left text-xs font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400"},mi={scope:"col",class:"px-3 py-3.5 text-left text-xs font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400"},yi={scope:"col",class:"px-3 py-3.5 text-left text-xs font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400"},bi={scope:"col",class:"px-3 py-3.5 text-left text-xs font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400"},_i={class:"divide-y divide-gray-100 dark:divide-gray-800"},vi=["onClick"],fi={class:"py-3.5 pl-4 pr-3 sm:pl-0"},hi={class:"text-xs text-gray-400 dark:text-gray-500"},ki={class:"px-3 py-3.5"},$i={class:"text-sm font-medium text-gray-900 dark:text-gray-100"},wi={class:"text-xs font-mono text-gray-400 dark:text-gray-500"},Ci={class:"px-3 py-3.5"},Vi={class:"inline-flex items-center rounded-md bg-gray-100 dark:bg-gray-700 px-2 py-0.5 text-xs font-medium text-gray-600 dark:text-gray-300"},Ni={class:"px-3 py-3.5"},Mi={class:"px-3 py-3.5 text-sm text-gray-700 dark:text-gray-300 tabular-nums"},Pi={class:"px-3 py-3.5 text-sm text-gray-700 dark:text-gray-300 tabular-nums"},Ai={class:"px-3 py-3.5"},Si={class:"flex flex-wrap gap-1"},ji=["title"],zi=["title"],Ii=["title"],Bi=["title"],Di={key:4,class:"text-xs text-gray-300 dark:text-gray-600"},Li={class:"px-3 py-3.5 text-sm text-gray-500 dark:text-gray-400"},Ri={key:0,class:"flex items-center justify-between border-t border-gray-200 dark:border-gray-700 px-4 py-3 sm:px-0 mt-4"},Ui={class:"flex flex-1 justify-between sm:hidden"},Ti=["disabled"],Zi=["disabled"],Oi={class:"hidden sm:flex sm:flex-1 sm:items-center sm:justify-between"},Hi={class:"text-sm text-gray-700 dark:text-gray-300"},Ei={class:"font-medium"},Gi={class:"font-medium"},Fi={class:"font-medium"},Xi={class:"isolate inline-flex -space-x-px rounded-md shadow-sm"},qi=["disabled"],Ki={class:"sr-only"}
1,Qi={key:0,class:"relative inline-flex items-center px-4 py-2 text-sm font-semibold text-gray-700 dark:text-gray-400 ring-1 ring-inset ring-gray-300 dark:ring-gray-600"},Wi=["onClick"],Ji=["disabled"],Yi={class:"sr-only"},eo=T({__name:"ListCustomerResources",props:{cloudNodeId:{}},setup(C,{expose:c}){const f=new Ae("iaas","customer-resources-perspective",{natsResource:"NextDeveloper\\IAAS\\CustomerResourcesPerspective"}),V=he();function p(u){u.iam_account_id&&V.push(`/crm/accounts/${u.iam_account_id}`)}const d=C,_=b([]),g=b(!1),h=b(1),y=b(null),A=b({is_account_suspended:0,is_crm_suspended:0,is_crm_disabled:0,is_accounting_disabled:0}),o=F(()=>y.value?.total_pages??1);let M=0;async function n(u=1){const r=++M;h.value=u,g.value=!0;try{const m={page:u,order:"created_at|desc",rowCount:200};d.cloudNodeId&&(m.iaasCloudNodeId=d.cloudNodeId),A.value.is_account_suspended&&(m.isAccountSuspended=1),A.value.is_crm_suspended&&(m.isCrmSuspended=1),A.value.is_crm_disabled&&(m.isCrmDisabled=1),A.value.is_accounting_disabled&&(m.isAccountingDisabled=1);const U=await f.getAll(m);if(r!==M)return;_.value=U.data,y.value=U.meta?.pagination??null}catch{if(r!==M)return;_.value=[]}finally{r===M&&(g.value=!1)}}function x(u){u<1||u>o.value||u===h.value||n(u)}H(()=>d.cloudNodeId,()=>n(1)),H(A,()=>n(1),{deep:!0}),G(()=>n(1)),c({fetchResources:n});function $(u){switch(u?.toLowerCase()){case"active":return"bg-green-50 dark:bg-green-900/20 text-green-700 dark:text-green-400";case"stopped":return"bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-300";case"paused":return"bg-amber-50 dark:bg-amber-900/20 text-amber-700 dark:text-amber-400";case"failed":return"bg-red-50 dark:bg-red-900/20 text-red-700 dark:text-red-400";case"deleted":return"bg-red-50 dark:bg-red-900/20 text-red-500 dark:text-red-400 line-through";default:return"bg-gray-100 dark:bg-gray-700 text-gray-500 dark:text-gray-400"}}function N(u){return u.is_account_suspended?"text-red-600 dark:text-red-400":u.is_crm_suspended||u.is_crm_disabled?"text-amber-600 dark:text-amber-400":"text-gray-900 dark:text-gray-100"}function R(u){return u?new Date(u).toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"}):"â"}const i=F(()=>{const u=o.value,r=h.value;if(u<=7)return Array.from({length:u},(U,O)=>O+1);const m=[1];r>3&&m.push("...");for(let U=Math.max(2,r-1);U<=Math.min(u-1,r+1);U++)m.push(U);return r<u-2&&m.push("..."),m.push(u),m});return(u,r)=>(a(),s("div",null,[e("div",ai,[(a(!0),s(z,null,D([{key:"is_account_suspended",label:u.$t("Account Suspended"),color:"red"},{key:"is_crm_suspended",label:u.$t("CRM Suspended"),color:"amber"},{key:"is_crm_disabled",label:u.$t("CRM Disabled"),color:"amber"},{key:"is_accounting_disabled",label:u.$t("Accounting Disabled"),color:"orange"}],m=>(a(),s("button",{key:m.key,type:"button",class:S(["inline-flex items-center gap-1.5 rounded-full border px-3 py-1 text-xs font-medium transition-colors",A.value[m.key]?m.color==="red"?"border-red-400 bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400":m.color==="orange"?"border-orange-400 bg-orange-50 dark:bg-orange-900/20 text-orange-600 dark:text-orange-400":"border-amber-400 bg-amber-50 dark:bg-amber-900/20 text-amber-600 dark:text-amber-400":"border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 text-gray-500 dark:text-gray-400 hover:border-gray-400 dark:hover:border-gray-500"]),onClick:U=>A.value[m.key]=A.value[m.key]?0:1},[e("span",{class:S(["h-1.5 w-1.5 rounded-full",A.value[m.key]?m.color==="red"?"bg-red-500":m.color==="orange"?"bg-orange-500":"bg-amber-500":"bg-gray-300 dark:bg-gray-600"])},null,2),I(" "+t(m.label),1)],10,si))),128))]),g.value?(a(),s("div",ri,[...r[4]||(r[4]=[e("svg",{class:"h-8 w-8 animate-spin text-indigo-600",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v8H4z"})],-1)])])):_.value.length===0?(a(),s("div",ni,t(u.$t("No customer resources found.")),1)):(a(),s(z,{key:2},[e("div",ii,[e("div",oi,[e("div",di,[e("table",li,[e("thead",null,[e("tr",null,[e("th",ci,t(u.$t("Account")),1),e("th",gi,t(u.$t("Resource")),1),e("th",ui,t(u.$t("Type")),1),e("th",pi,t(u.$t("Status")),1),e("th",xi,t(u.$t("CPU")),1),e("th",mi,t(u.$t("RAM")),1),e("th",yi,t(u.$t("Flags")),1),e("th",bi,t(u.$t("Created")),1)])]),e("tbody",_i,[(a(!0),s(z,null,D(_.value,m=>(a(),s("tr",{key:`${m.resource_id}-${m.iam_account_id}`,class:S(["transition-colors",m.iam_account_id?"cursor-pointer hover:bg-gray-50 dark:hover:bg-gray-800/50":"hover:bg-gray-50/50 dark:hover:bg-gray-800/30"]),onClick:U=>p(m)},[e("td",fi,[e("p",{class:S(["text-sm font-medium",[N(m),m.iam_account_id?"hover:underline":""]])},t(m.account_name??"â"),3),e("p",hi,t(m.user_email??m.user_name??""),1)]),e("td",ki,[e("p",$i,t(m.resource_name??"â"),1),e("p",wi,t(m.resource_uuid??""),1)]),e("td",Ci,[e("span",Vi,t(m.resource_type??"â"),1)]),e("td",Ni,[e("span",{class:S(["inline-flex items-center rounded-md px-2 py-0.5 text-xs font-medium capitalize",$(m.resource_status)])},t(m.resource_status??"â"),3)]),e("td",Mi,t(m.cpu!=null?`${m.cpu} vCPU`:"â"),1),e("td",Pi,t(m.ram!=null?`${m.ram} MB`:"â"),1),e("td",Ai,[e("div",Si,[m.is_account_suspended?(a(),s("span",{key:0,class:"inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium bg-red-50 dark:bg-red-900/20 text-red-600 dark:text-red-400",title:u.$t("Account Suspended")},t(u.$t("Acct. Susp.")),9,ji)):w("",!0),m.is_crm_suspended?(a(),s("span",{key:1,class:"inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium bg-amber-50 dark:bg-amber-900/20 text-amber-600 dar
1k:text-amber-400",title:u.$t("CRM Suspended")},t(u.$t("CRM Susp.")),9,zi)):w("",!0),m.is_crm_disabled?(a(),s("span",{key:2,class:"inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium bg-amber-50 dark:bg-amber-900/20 text-amber-600 dark:text-amber-400",title:u.$t("CRM Disabled")},t(u.$t("CRM Dis.")),9,Ii)):w("",!0),m.is_accounting_disabled?(a(),s("span",{key:3,class:"inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium bg-orange-50 dark:bg-orange-900/20 text-orange-600 dark:text-orange-400",title:u.$t("Accounting Disabled")},t(u.$t("Acct. Dis.")),9,Bi)):w("",!0),!m.is_account_suspended&&!m.is_crm_suspended&&!m.is_crm_disabled&&!m.is_accounting_disabled?(a(),s("span",Di,"â")):w("",!0)])]),e("td",Li,t(R(m.created_at)),1)],10,vi))),128))])])])])]),y.value&&o.value>1?(a(),s("nav",Ri,[e("div",Ui,[e("button",{disabled:h.value<=1,class:"relative inline-flex items-center rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 px-4 py-2 text-sm font-medium text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 disabled:opacity-50 disabled:cursor-not-allowed",onClick:r[0]||(r[0]=m=>x(h.value-1))},t(u.$t("Previous")),9,Ti),e("button",{disabled:h.value>=o.value,class:"relative ml-3 inline-flex items-center rounded-md border border-gray-300 dark:border-gray-600 bg-white dark:bg-gray-800 px-4 py-2 text-sm font-medium text-gray-700 dark:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 disabled:opacity-50 disabled:cursor-not-allowed",onClick:r[1]||(r[1]=m=>x(h.value+1))},t(u.$t("Next")),9,Zi)]),e("div",Oi,[e("p",Hi,[I(t(u.$t("Page"))+" ",1),e("span",Ei,t(y.value.current_page),1),I(" "+t(u.$t("of"))+" ",1),e("span",Gi,t(y.value.total_pages),1),r[5]||(r[5]=I(" â ",-1)),e("span",Fi,t(y.value.total),1),I(" "+t(u.$t("results")),1)]),e("nav",Xi,[e("button",{disabled:h.value<=1,class:"relative inline-flex items-center rounded-l-md px-2 py-2 text-gray-400 ring-1 ring-inset ring-gray-300 dark:ring-gray-600 hover:bg-gray-50 dark:hover:bg-gray-700 disabled:opacity-50 disabled:cursor-not-allowed",onClick:r[2]||(r[2]=m=>x(h.value-1))},[e("span",Ki,t(u.$t("Previous")),1),r[6]||(r[6]=e("svg",{class:"h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor"},[e("path",{"fill-rule":"evenodd",d:"M11.78 5.22a.75.75 0 0 1 0 1.06L8.06 10l3.72 3.72a.75.75 0 1 1-1.06 1.06l-4.25-4.25a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0Z","clip-rule":"evenodd"})],-1))],8,qi),(a(!0),s(z,null,D(i.value,(m,U)=>(a(),s(z,{key:U},[m==="..."?(a(),s("span",Qi,"...")):(a(),s("button",{key:1,class:S(["relative inline-flex items-center px-4 py-2 text-sm font-semibold ring-1 ring-inset ring-gray-300 dark:ring-gray-600",m===h.value?"z-10 bg-indigo-600 text-white":"text-gray-900 dark:text-gray-200 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700"]),onClick:O=>x(m)},t(m),11,Wi))],64))),128)),e("button",{disabled:h.value>=o.value,class:"relative inline-flex items-center rounded-r-md px-2 py-2 text-gray-400 ring-1 ring-inset ring-gray-300 dark:ring-gray-600 hover:bg-gray-50 dark:hover:bg-gray-700 disabled:opacity-50 disabled:cursor-not-allowed",onClick:r[3]||(r[3]=m=>x(h.value+1))},[e("span",Yi,t(u.$t("Next")),1),r[7]||(r[7]=e("svg",{class:"h-5 w-5",viewBox:"0 0 20 20",fill:"currentColor"},[e("path",{"fill-rule":"evenodd",d:"M8.22 5.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L11.94 10 8.22 6.28a.75.75 0 0 1 0-1.06Z","clip-rule":"evenodd"})],-1))],8,Ji)])])])):w("",!0)],64))]))}}),to={class:"grid grid-cols-2 gap-3 xl:grid-cols-4"},ao={class:"flex items-center gap-2"},so={class:"neo-chip flex h-7 w-7 flex-shrink-0 items-center justify-center rounded-lg"},ro={class:"neo-dim truncate text-[11px] font-semibold"},no={class:"flex items-baseline justify-between gap-2"},io={class:"neo-stat text-xl font-extrabold leading-none tracking-tight tabular-nums sm:text-2xl"},oo=T({__name:"IaasNeoOverviewStrip",props:{kpis:{}},setup(C){const c={"active-vms":te,"total-vcpus":Se,"total-ram":at,"storage-used":ce},f=V=>V==="up"?"text-emerald-500":V==="down"?"text-rose-500":"neo-dim";return(V,p)=>
1(a(),B(Q,{title:"Infrastructure Overview",subtitle:"Compute, memory and storage at a glance",icon:k(rt)},{default:L(()=>[e("div",to,[(a(!0),s(z,null,D(C.kpis,d=>(a(),B(J(d.to?k(ee):"div"),{key:d.id,to:d.to,class:S(["neo-inset group flex flex-col gap-2 rounded-2xl px-3 py-3 transition-transform sm:px-4 sm:py-3.5",d.to?"cursor-pointer hover:-translate-y-0.5":""])},{default:L(()=>[e("div",ao,[e("span",so,[(a(),B(J(c[d.id]??k(te)),{class:"h-4 w-4"}))]),e("span",ro,t(V.$t(d.label)),1)]),e("div",no,[e("span",io,t(d.value),1),d.delta?(a(),s("span",{key:0,class:S(["inline-flex items-center gap-0.5 text-[10px] font-semibold tabular-nums",f(d.trend)])},[d.trend==="up"?(a(),B(k(st),{key:0,class:"h-3 w-3"})):d.trend==="down"?(a(),B(k(ot),{key:1,class:"h-3 w-3"})):w("",!0),I(" "+t(d.delta),1)],2)):w("",!0)])]),_:2},1032,["to","class"]))),128))])]),_:1},8,["icon"]))}}),lo={key:0,class:"neo-dim py-6 text-center text-xs"},co={key:1,class:"flex flex-col"},go={class:"min-w-0 flex-1"},uo={class:"neo-title truncate text-xs font-semibold"},po={class:"neo-dim truncate text-[11px]"},xo={class:"neo-dim flex-shrink-0 text-[10px] font-medium"},mo=T({__name:"IaasNeoActivity",props:{events:{}},setup(C){const c={vm_created:{icon:ye,cls:"text-cyan-500"},vm_started:{icon:nt,cls:"text-emerald-500"},vm_stopped:{icon:dt,cls:"text-gray-400"},backup_completed:{icon:me,cls:"text-emerald-500"},backup_failed:{icon:ge,cls:"text-rose-500"},network_created:{icon:ae,cls:"text-sky-500"},volume_attached:{icon:ce,cls:"text-violet-500"}};function f(V){const p=Date.now()-new Date(V).getTime(),d=Math.round(p/36e5);return d<1?"just now":d<24?`${d}h ago`:`${Math.round(d/24)}d ago`}return(V,p)=>
1(a(),B(Q,{title:"Recent Activity",subtitle:"Latest infrastructure events",icon:k(je)},{default:L(()=>[C.events.length?(a(),s("ul",co,[(a(!0),s(z,null,D(C.events.slice(0,6),d=>(a(),s("li",{key:d.id,class:"flex items-center gap-3 py-2"},[e("span",{class:S(["neo-node flex h-9 w-9 flex-shrink-0 items-center justify-center rounded-full",c[d.kind].cls])},[(a(),B(J(c[d.kind].icon),{class:"h-4 w-4"}))],2),e("div",go,[e("p",uo,t(V.$t(d.message)),1),e("p",po,t(d.target),1)]),e("span",xo,t(f(d.at)),1)]))),128))])):(a(),s("p",lo,t(V.$t("No recent activity")),1))]),_:1},8,["icon"]))}}),yo={class:"neo-automation flex items-center gap-3 rounded-3xl p-4 text-white sm:gap-4 sm:p-5"},bo={class:"flex h-11 w-11 flex-shrink-0 items-center justify-center rounded-2xl bg-white/20 shadow-inner"},_o={class:"min-w-0 flex-1"},vo={class:"flex items-baseline justify-between gap-3"},fo={class:"truncate text-sm font-bold"},ho={class:"text-lg font-black tabular-nums leading-none"},ko={class:"mt-0.5 truncate text-[11px] font-medium text-white/80"},$o={class:"mt-2 h-2 overflow-hidden rounded-full bg-white/20"},wo=T({__name:"IaasNeoAutomation",props:{backups:{}},setup(C){const c=C,f=F(()=>c.backups.recent.find(d=>d.status==="in_progress")),V=F(()=>c.backups.byStatus.some(d=>d.value>0)),p=F(()=>f.value?f.value.progress:Math.round(c.backups.successRatePct));return(d,_)=>(a(),s("div",yo,[e("span",bo,[l(k(ze),{class:"h-5 w-5"})]),e("div",_o,[e("div",vo,[e("h3",fo,t(d.$t("LEO Automation")),1),e("span",ho,t(p.value)+"%",1)]),e("p",ko,[f.value?(a(),s(z,{key:0},[I(t(d.$t("Backing up"))+" "+t(f.value.vmName)+"â¦",1)],64)):V.value?(a(),s(z,{key:2},[I(t(d.$t("Backups healthy"))+" · "+t(d.$t("success rate"))+" "+t(C.backups.successRatePct)+"%",1)],64)):(a(),s(z,{key:1},[I(t(d.$t("No backups yet")),1)],64))]),e("div",$o,[e("div",{class:"neo-automation-fill h-full rounded-full",style:W({width:`${p.value}%`})},null,4)])])]))}}),Co={class:"grid grid-cols-2 gap-3 sm:grid-cols-4"},Vo={class:"neo-chip flex h-10 w-10 items-center justify-center transition-transform group-hover:scale-105"},No={class:"neo-title text-xs font-semibold"},Mo=T({__name:"IaasNeoQuickActions",setup(C){const c=[{label:"Create VM",to:"/infrastructure/create-vm",icon:ye},{label:"Virtual Machines",to:"/infrastructure",icon:te},{label:"Networks",to:"/infrastructure/virtual-private-cloud/vpcs",icon:ae},{label:"Backups",to:"/infrastructure/machine-images/backups",icon:me}];return(f,V)=>(a(),B(Q,{title:"Quick Actions",subtitle:"Common infrastructure tasks",icon:k(xe)},{default:L(()=>[e("div",Co,[(a(),s(z,null,D(c,p=>l(k(ee),{key:p.to,to:p.to,class:"neo-inset group flex flex-col items-center gap-2.5 rounded-2xl px-3 py-4 text-center transition-transform hover:-translate-y-0.5"},{default:L(()=>[e("span",Vo,[(a(),B(J(p.icon),{class:"h-5 w-5"}))]),e("span",No,t(f.$t(p.label)),1)]),_:2},1032,["to"])),64))])]),_:1},8,["icon"]))}}),Po={class:"overflow-x-auto"},Ao={class:"w-full text-sm"},So={class:"neo-dim text-left text-[10px] uppercase tracking-wider"},jo={class:"px-2 py-2 font-semibold"},zo={class:"px-2 py-2 font-semibold"},Io={class:"px-2 py-2 text-right font-semibold"},Bo={class:"px-2 py-2 text-right font-semibold"},Do={class:"px-2 py-2 text-right font-semibold"},Lo={class:"px-2 py-2.5"},Ro={class:"px-2 py-2.5"},Uo={class:"neo-title px-2 py-2.5 text-right text-xs tabular-nums"},To={class:"neo-title px-2 py-2.5 text-right text-xs tabular-nums"},Zo={class:"neo-dim px-2 py-2.5 text-right text-[11px]"},Oo=T({__name:"IaasNeoVmsTable",props:{vms:{}},setup(C){const c={running:"text-emerald-600 dark:text-emerald-400",stopped:"text-gray-500 dark:text-gray-400",paused:"text-amber-600 dark:text-amber-400",error:"text-rose-600 dar
1k:text-rose-400"},f={running:"bg-emerald-500",stopped:"bg-gray-400",paused:"bg-amber-500",error:"bg-rose-500"};function V(p){const d=Date.now()-new Date(p).getTime(),_=Math.round(d/36e5);return _<1?"just now":_<24?`${_}h ago`:`${Math.round(_/24)}d ago`}return(p,d)=>(a(),B(Q,{title:"Recent Virtual Machines",subtitle:"Latest provisioned VMs",icon:k(te)},{actions:L(()=>[l(k(ee),{to:"/infrastructure",class:"text-xs font-semibold text-indigo-500 hover:underline"},{default:L(()=>[I(t(p.$t("View all")),1)]),_:1})]),default:L(()=>[e("div",Po,[e("table",Ao,[e("thead",null,[e("tr",So,[e("th",jo,t(p.$t("Name")),1),e("th",zo,t(p.$t("Status")),1),e("th",Io,t(p.$t("vCPU")),1),e("th",Bo,t(p.$t("RAM")),1),e("th",Do,t(p.$t("Created")),1)])]),e("tbody",null,[(a(!0),s(z,null,D(C.vms,_=>(a(),s("tr",{key:_.id,class:"neo-row group"},[e("td",Lo,[l(k(ee),{to:_.to,class:"neo-title text-xs font-semibold hover:text-indigo-500"},{default:L(()=>[I(t(_.name),1)]),_:2},1032,["to"])]),e("td",Ro,[e("span",{class:S(["neo-inset inline-flex items-center gap-1.5 rounded-full px-2.5 py-1 text-[10px] font-bold capitalize",c[_.status]])},[e("span",{class:S(["h-1.5 w-1.5 rounded-full",f[_.status]])},null,2),I(" "+t(p.$t(_.status)),1)],2)]),e("td",Uo,t(_.cpu),1),e("td",To,t(_.ramGb)+" GB",1),e("td",Zo,t(V(_.createdAt)),1)]))),128))])])])]),_:1},8,["icon"]))}}),Ho={key:0,class:"md:col-span-2 lg:col-span-12"},Eo={class:"text-sm text-rose-500"},Go={class:"lg:col-span-8"},Fo={class:"lg:col-span-4"},Xo={key:2,class:"md:col-span-2 lg:col-span-12"},qo={class:"flex flex-col gap-4 lg:col-span-8"},Ko={class:"flex flex-col gap-4 lg:col-span-4"},Qo={class:"md:col-span-2 lg:col-span-12"},Wo={class:"md:col-span-2 lg:col-span-12"},Jo=T({__name:"IaasDashboardBody",setup(C){const c=Je();G(()=>{c.hasData||c.refresh()});function f(){c.refresh()}const V=F(()=>{const p=c.data;return p?(p.vmStatus??[]).reduce((_,g)=>_+g.value,0)===0&&(p.recentVms?.length??0)===0:!1});return(p,d)=>(a(),s(z,null,[l(Qe,{class:"md:col-span-2 lg:col-span-12"}),k(c).error&&!k(c).hasData?(a(),s("div",Ho,[l(Q,{title:"Failed to load dashboard",icon:k(ge)},{default:L(()=>[e("p",Eo,t(p.$t("Could not fetch dashboard data. Click refresh to retry.")),1)]),_:1},8,["icon"])])):w("",!0),k(c).isInitialLoading&&!k(c).data?(a(),s(z,{key:1},[e("div",Go,[l(Q,{title:" "},{default:L(()=>[l(pe,{rows:8})]),_:1})]),e("div",Fo,[l(Q,{title:" "},{default:L(()=>[l(pe,{rows:8})]),_:1})])],64)):k(c).data&&V.value?(a(),s("div",Xo,[l(We,{onRefresh:f})])):k(c).data?(a(),s(z,{key:3},[e("div",qo,[l(oo,{kpis:k(c).data.kpis},null,8,["kpis"]),l(Ye,{class:"flex-1",data:k(c).data},null,8,["data"]),l(wo,{backups:k(c).data.backups},null,8,["backups"])]),e("div",Ko,[l(et,{data:k(c).data},null,8,["data"]),l(tt,{points:k(c).data.resourceTrend,storage:k(c).data.storage},null,8,["points","storage"]),l(mo,{class:"flex-1",events:k(c).data.recentActivity},null,8,["events"])]),e("div",Qo,[l(Mo)]),e("div",Wo,[l(Oo,{vms:k(c).data.recentVms},null,8,["vms"])])],64)):w("",!0)],64))}}),Yo={class:"p-6"},ed={class:"md:flex md:items-center md:justify-between"},td={class:"min-w-0 flex-1"},ad={class:"text-2xl/7 font-bold text-gray-900 dark:text-white sm:truncate sm:text-3xl sm:tracking-tight"},sd={class:"mt-4 border-b border-gray-200 dark:border-gray-700"},rd={class:"-mb-px flex space-x-8","aria-label":"Top tabs"},nd=["onClick"],id={key:0,class:"iaas-neo -mx-6 mt-4 px-6 py-6"},od={class:"grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-12"},dd={class:"mb-4 border-b border-gray-200 dark:border-gray-700"},ld={class:"-mb-px flex space-x-8","aria-label":"Sub tabs"},cd=["aria-current","onClick"],gd={key:3,class:"flex gap-6 mt-4"},ud={class:"w-64 flex-shrink-0"},pd={key:0,class:"flex items-center justify-center py-12"},xd={key:1,class:"py-6 text-center text-sm text-gray-500 dark:text-gray-400"},md={key:2,class:"space-y-1"},yd=["onClick"],bd={class:"truncate"},_d={class:"flex-1 min-w-0"},vd={key:1,class:"py-12 text-center text-sm text-gray-500 dark:text-gray-400"},fd={key:2,class:"space-y-8 py-6"},hd={class:"grid grid-cols-2 gap-6"},kd={key:3,class:"py-6"},$d={key:4,class:"py-6"},wd={class:"rounded-xl border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-700 dark:bg-gray-900 md:p-5"},Cd={class:"mb-3 flex items-center gap-1.5 text-lg font-bold text-gray-800 dark:text-white"},Vd={key:5,class:"space-y-8 py-6"},Nd={class:"mb-4 text-lg font-semibold text-gray-900 dark:text-white"},Md={class:"mb-4 text-lg font-semibold text-gray-900 dark:text-white"},Pd={class:"mb-4 text-lg font-semibold text-gray-900 dark:text-white"},Ad={class:"mb-4 text-lg font-semibold text-gray-900 dark:text-white"},Zl=T({__name:"[id]",setup(C){const{account:c}=ke(Ie()),f=["Dashboard","General Overview","Backup Dashboard","Cloud KPIs","Customer Resources","Alerts & Events"],V=[{name:"Compute Pools",href:"#",current:!0},{name:"Storage Pools",href:"#",current:!1},{name:"Network Pools",href:"#",current:!1},{name:"Networks",href:"#",current:!1}],p=b("Dashboard"),d=b("Compute Pools"),_=$e(),g=b(),h=b([]),y=b(!1),A=b(null);async function o(n){y.value=!0;try{const x=await X.get("/iaas/network-pools",{params:{iaasDatacenterId:n}});h.value=x.data??[],h.value.length>0&&(A.value=h.value[0]??null)}catch{h.value=[]}finally{y.value=!1}}H(()=>g.value?.iaas_datacenter_id,n=>{n&&o(n)}),G(async()=>{const n=await Be.get(_.params.id);g.value=n});
1function M(n){d.value=n,V.forEach(x=>x.current=x.name===n)}return(n,x)=>(a(),s("div",Yo,[e("div",ed,[e("div",td,[e("h2",ad,t(g.value?.name),1)])]),l(Ct,{data:g.value,class:"mt-4"},null,8,["data"]),e("div",sd,[e("nav",rd,[(a(),s(z,null,D(f,$=>e("a",{key:$,class:S(["whitespace-nowrap border-b-2 px-1 py-4 text-sm font-semibold cursor-pointer",p.value===$?"border-indigo-500 text-indigo-600":"border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"]),onClick:N=>p.value=$},t($),11,nd)),64))])]),p.value==="Dashboard"?(a(),s("div",id,[e("div",od,[l(Jo)])])):p.value==="General Overview"?(a(),s(z,{key:1},[e("div",dd,[e("nav",ld,[(a(),s(z,null,D(V,$=>e("a",{key:$.name,class:S(["whitespace-nowrap border-b-2 px-1 py-4 text-sm font-semibold cursor-pointer",d.value===$.name?"border-indigo-500 text-indigo-600":"border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"]),"aria-current":$.name===d.value?"page":void 0,onClick:N=>M($.name)},t($.name),11,cd)),64))])]),d.value==="Compute Pools"?(a(),B(cs,{key:0,"datacenter-id":g.value?.iaas_datacenter_id},null,8,["datacenter-id"])):w("",!0),d.value==="Storage Pools"?(a(),B(wr,{key:1,"datacenter-id":g.value?.iaas_datacenter_id},null,8,["datacenter-id"])):w("",!0),d.value==="Network Pools"?(a(),B(ti,{key:2,"datacenter-id":g.value?.iaas_datacenter_id},null,8,["datacenter-id"])):w("",!0),d.value==="Networks"?(a(),s("div",gd,[e("div",ud,[y.value?(a(),s("div",pd,[...x[0]||(x[0]=[e("svg",{class:"h-6 w-6 animate-spin text-indigo-600",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v8H4z"})],-1)])])):h.value.length===0?(a(),s("div",xd,t(n.$t("No network pools found")),1)):(a(),s("ul",md,[(a(!0),s(z,null,D(h.value,$=>(a(),s("li",{key:$.id},[e("button",{type:"button",class:S(["w-full flex items-center gap-3 rounded-lg px-3 py-2.5 text-left text-sm font-medium transition-colors",A.value?.id===$.id?"bg-indigo-50 text-indigo-700 dark:bg-indigo-900/30 dark:text-indigo-300":"text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-800"]),onClick:N=>A.value=$},[l(k(se),{class:"size-4 flex-shrink-0"}),e("span",bd,t($.name),1)],10,yd)]))),128))]))]),e("div",_d,[A.value?(a(),B(be,{key:A.value.id,"network-pool-id":A.value.id},null,8,["network-pool-id"])):(a(),s("div",vd,t(n.$t("Select a network pool to view its networks")),1))])])):w("",!0)],64)):p.value==="Backup Dashboard"?(a(),s("div",fd,[k(c)?(a(),B(He,{key:0,"iam-account-id":k(c).id},null,8,["iam-account-id"])):w("",!0),e("div",hd,[l(Ee),l(Ge)])])):p.value==="Customer Resources"?(a(),s("div",kd,[l(eo,{"cloud-node-id":g.value?.id},null,8,["cloud-node-id"])])):p.value==="Alerts & Events"?(a(),s("div",$d,[e("div",wd,[e("h3",Cd,[l(k(ge),{class:"size-6","aria-hidden":"true"}),I(" "+t(n.$t("Recent Alerts and Events")),1)]),l(it,{"object-type":"NextDeveloper\\IAAS\\CloudNodes","object-id":g.value?.id??"","has-header":!1,"can-submit":!1},null,8,["object-id"])])])):p.value==="Cloud KPIs"?(a(),s("div",Vd,[e("section",null,[e("h2",Nd,t(n.$t("Company Overview")),1),l(Fe)]),e("section",null,[e("h2",Md,t(n.$t("Cloud Nodes")),1),l(Xe)]),e("section",null,[e("h2",Pd,t(n.$t("Active Alarms")),1),l(qe)]),e("section",null,[e("h2",Ad,t(n.$t("Largest Tenants")),1),l(Ke)])])):w("",!0)]))}});export{Zl as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.