PageSourceSearch

https://ciptagelar.info/ui/chunk-WSBYXUTY.js

js ciptagelar.info collected 2026-10-03 18:47:43 UTC 187,233 bytes, 2 lines download raw bytes

1import{a as Ho}from"./chunk-HZKQR6MR.js";import{a as Ei,b as Ni,c as ji,d as Fi,e as Li,f as Ai,g as Ui,h as Hi,i as zi,j as qi,k as xr}from"./chunk-7IPDOLES.js";import{a as _r}from"./chunk-3XVEMMLD.js";import{a as vr}from"./chunk-2KNBH2TG.js";import{a as gr}from"./chunk-MCOSX4BS.js";import"./chunk-2IPRCY45.js";import{a as Cr}from"./chunk-YNCM7LMU.js";import{a as hr}from"./chunk-46LW44VP.js";import"./chunk-YXLOLMI2.js";import{a as nr}from"./chunk-Y4YA4GCL.js";import{h as Oo}from"./chunk-2QG3ACKR.js";import{a as fr}from"./chunk-R76WK4XK.js";import{a as ro}from"./chunk-G7QAQNY6.js";import{a as Qo}from"./chunk-IFRBC6ZN.js";import"./chunk-AVSIGOAI.js";import{ba as $o}from"./chunk-M4HSU4SA.js";import{a as er}from"./chunk-ZMUJEYYT.js";import{a as In}from"./chunk-AOPVXMS4.js";import"./chunk-GWHAAAII.js";import"./chunk-VR5I74U6.js";import{a as Sn,b as Dn}from"./chunk-RQSIFQBG.js";import{a as ir}from"./chunk-7NO4CX5X.js";import{a as tr}from"./chunk-Q2KF3TCZ.js";import{a as Ri}from"./chunk-ULKUQGL7.js";import{t as Vi}from"./chunk-TORLBXAH.js";import"./chunk-ORX6GJOH.js";import"./chunk-6RMZIPVH.js";import{b as Xo}from"./chunk-3EP72UYL.js";import{a as en,c as Yo}from"./chunk-VYKP4BXW.js";import{c as Mn}from"./chunk-NT4TNOP6.js";import"./chunk-KEFKPMP2.js";import{a as ur}from"./chunk-QGP2CSIB.js";import{a as hi}from"./chunk-TFHNV3GG.js";import{a as Bi}from"./chunk-7C3SSFPU.js";import{a as Ko}from"./chunk-WALG7VLL.js";import{d as Ro}from"./chunk-PDJBEQOU.js";import"./chunk-3HELFU5K.js";import{a as or}from"./chunk-7FODHA74.js";import{a as lr}from"./chunk-GXVJQFLH.js";import{c as rr,f as ar,g as sr,h as oo,l as pr,m as cr,n as mr,o as dr}from"./chunk-HICQSI54.js";import{a as nt}from"./chunk-GR62I3DE.js";import{a as Jo,b as _i}from"./chunk-4Z2TGT2L.js";import{a as ui,b as fi}from"./chunk-67LDRNM6.js";import{b as Zo}from"./chunk-VADWFC3U.js";import{c as Je}from"./chunk-RFFGAWRR.js";import"./chunk-56XENPRK.js";import{a as Wo}from"./chunk-6K6XALKO.js";import{a as Pi}from"./chunk-6KXDF4HN.js";import{a as $e}from"./chunk-DJBB7TOO.js";import"./chunk-B46HAPJU.js";import{a as fe,b as Ye,c as he,d as Eo,e as Ne}from"./chunk-PJWJXMZM.js";import"./chunk-45RJ2NJW.js";import{b as Xe,c as zo,g as qo,n as Go,p as yn}from"./chunk-32WNDC77.js";import"./chunk-OZUF2DA3.js";import{a as Ct}from"./chunk-Z7SJGQQ6.js";import{a as di,c as Fe}from"./chunk-IXGKWOAV.js";import"./chunk-ZNIAHJPJ.js";import{a as mi}from"./chunk-C3ZBQYK6.js";import{A as Oi,r as No,t as jo,u as Ge,v as Fo,x as ye}from"./chunk-JDKZG5EX.js";import"./chunk-AIVQ5WOW.js";import{a as wo,g as Mi,i as lt,j as dn,u as Ao}from"./chunk-NU4FUAG2.js";import{a as Uo,b as ki}from"./chunk-JNT7XX7N.js";import"./chunk-KVYJPEZN.js";import{a as ke,b as Be}from"./chunk-FR35XJAY.js";import{$a as xo,$c as s,$h as fn,A as rn,Aa as Ce,Ab as u,Ah as Ti,Ai as ct,Ba as _o,Bg as j,Bi as mt,Cd as pn,Cg as w,Ci as dt,Da as ve,Dg as M,Di as Ee,E as z,Ei as xn,Gi as te,Hb as L,Hi as Cn,Ia as Di,Ic as He,Id as cn,Jc as h,Ji as Z,Kc as I,L as X,Lc as g,Mc as Ci,Mh as F,Mi as bn,Na as et,Oa as vo,Pb as D,Ph as K,Qh as le,Rf as To,Ri as N,Sc as bi,Tb as bo,Tc as sn,Uc as ln,Uh as un,Vi as H,W as uo,Wa as go,Wb as x,Wc as re,Xa as P,Xc as $,Xh as pe,Y as G,Ya as k,Yc as Io,Zh as wi,_ as oi,_g as Po,_h as ce,_i as ue,a as Y,ac as Qe,ad as l,ai as hn,b as _e,bc as d,bd as it,bi as me,cj as je,da as fo,dc as st,di as be,fc as yo,ff as A,fi as _n,gd as So,gf as mn,gh as ko,hb as Ke,hi as Te,ia as ho,ib as q,ic as C,if as ze,ig as ai,ii as si,ij as Lo,jg as Me,ka as ri,kc as tt,kd as S,kf as Mo,ki as li,lc as ne,ld as Do,li as Q,mc as oe,mi as vn,na as an,nc as p,ni as gn,oc as m,pc as _,pi as Oe,q as on,qc as Ie,qi as pt,rc as Se,rh as Bo,ri as Ve,si as pi,t as mo,tb as Co,tc as B,ti as Re,ui as ci,wc as b,wi as Vo,xi as qe,yc as v,yh as T,zb as a,zh as y,zi as R}from"./chunk-CPOZEFYP.js";var J=function(i){return i.Container="CONTAINER",i.Vm="VM",i}(J||{}),br=new Map([[J.Container,"Container"],[J.Vm,"VM"]]),ot=function(i){return i.Nvme="NVME",i.VirtioBlk="VIRTIO-BLK",i.VirtioScsi="VIRTIO-SCSI",i}(ot||{}),vi=new Map([[ot.Nvme,"NVMe"],[ot.VirtioBlk,"Virtio-BLK"],[ot.VirtioScsi,"Virtio-SCSI"]]),yr=[{value:J.Container,icon:"mdi-linux",label:"Container",description:"Linux Only"},{value:J.Vm,icon:"mdi-laptop",label:"VM",description:"Any OS"}],ie=function(i){return i.Running="RUNNING",i.Stopped="STOPPED",i.Unknown="UNKNOWN",i}(ie||{}),Ir=new Map([[ie.Running,"Running"],[ie.Stopped,"Stopped"],[ie.Unknown,"Unknown"]]),ao=function(i){return i.LinuxContainers="LINUX_CONTAINERS",i}(ao||{}),E=function(i){return i.Usb="USB",i.Tpm="TPM",i.Disk="DISK",i.Pci="PCI",i.Gpu="GPU",i.Nic="NIC",i.Proxy="PROXY",i}(E||{}),Sr=new Map([[E.Usb,"USB"],[E.Tpm,"TPM"],[E.Pci,"PCI"],[E.Disk,"Disk"],[E.Gpu,"GPU"],[E.Nic,"NIC"],[E.Proxy,"Proxy"]]),Gi=function(i){return i.Physical="PHYSICAL",i.Mdev="MDEV",i.Mig="MIG",i.Sriov="SRIOV",i}(Gi||{}),bt=function(i){return i.Udp="UDP",i.Tcp="TCP",i}(bt||{}),Tn=new Map([[bt.Udp,"UDP"],[bt.Tcp,"TCP"]]);var yt=function(i){return i.NoPool="NO_POOL",i.Initializing="INITIALIZING",i.Locked="LOCKED",i.Error="ERROR",i.Initialized="INITIALIZED",i}(yt||{}),ge=function(i){return i.Bridged="BRIDGED",i.Macvlan="MACVLAN",i}(ge||{}),$i=new Map([[ge.Bridged,"Bridged Adaptors"],[ge.Macvlan,"Macvlan"]]),Ae=function(i){return i.Image="IMAGE",
1i.Zvol="ZVOL",i.Iso="ISO",i.Volume="VOLUME",i}(Ae||{}),Wi=function(i){return i.Block="BLOCK",i.Iso="ISO",i}(Wi||{});var Dr={hierarchy:["Containers"],anchorRouterLink:["/instances"],elements:{globalSettings:{hierarchy:["Global Settings"],synonyms:["Container Settings"],anchor:"vm-global-settings"},add:{hierarchy:["Create New Container"],synonyms:["New Container","Add Container"],anchor:"add-instance"}}};var Ur=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o};function Hr(i,t){if(i&1&&(_(0,"ix-select",4),s(1,"translate")),i&2){let e=v();d("label",l(1,3,"Pools"))("multiple",!0)("options",e.poolOptions$)}}function zr(i,t){i&1&&(_(0,"ix-ip-input-with-netmask",7),s(1,"translate"),s(2,"translate"),_(3,"ix-ip-input-with-netmask",8),s(4,"translate"),s(5,"translate")),i&2&&(d("label",l(1,4,"IPv4 Network"))("hint",l(2,6,"Leave empty for default values")),a(3),d("label",l(4,8,"IPv6 Network"))("hint",l(5,10,"Leave empty for default values")))}function qr(i,t){if(i&1&&(p(0,"button",9),h(1),s(2,"translate"),m()),i&2){let e=v();d("disabled",e.form.invalid||e.isLoading()),a(),g(" ",l(2,2,"Save")," ")}}var It,wn=(It=class{get isAutoBridge(){return this.form.controls.bridge.value===this.autoBridge}constructor(t,e,n,r,o,c,f){this.formBuilder=t,this.api=e,this.snackbar=n,this.dialogService=r,this.translate=o,this.errorHandler=c,this.slideInRef=f,this.requiredRoles=[je.VirtGlobalWrite],this.isLoading=L(!1),this.currentConfig=L(this.slideInRef.getData()),this.autoBridge="[AUTO]",this.form=this.formBuilder.nonNullable.group({pool:[!1],bridge:[this.autoBridge],v4_network:[null],v6_network:[null],storage_pools:[[]]}),this.poolOptions$=this.api.call("virt.global.pool_choices").pipe(en(),X(V=>V.slice(1)),ve(V=>{var O;V.length&&!((O=this.currentConfig().storage_pools)!=null&&O.length)&&this.form.patchValue({storage_pools:["".concat(V[0].value)]})})),this.bridgeOptions$=this.api.call("virt.global.bridge_choices").pipe(en()),this.slideInRef.requireConfirmationWhen(()=>z(this.form.dirty))}ngOnInit(){var e;let t=this.currentConfig();this.form.setValue({pool:!!((e=t==null?void 0:t.storage_pools)!=null&&e.length),bridge:t.bridge?t.bridge:this.autoBridge,v4_network:t.v4_network,v6_network:t.v6_network,storage_pools:t.storage_pools||[]})}onSubmit(){this.isLoading.set(!0);let t=this.form.controls,e=t.storage_pools.value,n={pool:t.pool.value&&e.length?e[0]:null,bridge:t.bridge.value,v4_network:!this.isAutoBridge||!t.v4_network.value?null:t.v4_network.value,v6_network:!this.isAutoBridge||!t.v6_network.value?null:t.v6_network.value,storage_pools:t.pool.value&&e.length?e:[]};this.dialogService.jobDialog(this.api.job("virt.global.update",[n]),{title:this.translate.instant("Updating settings")}).afterClosed().pipe(this.errorHandler.catchError(),an(()=>this.isLoading.set(!1)),y(this)).subscribe(()=>{this.snackbar.success(this.translate.instant("Virtualization settings updated")),this.slideInRef.close({response:!0,error:!1})})}},It.\u0275fac=function(e){return new(e||It)(u(Te),u(N),u(Z),u(ue),u(j),u(H),u(fi))},It.\u0275cmp=D({type:It,selectors:[["ix-global-config-form"]],decls:17,vars:23,consts:[[3,"title","requiredRoles","loading"],[1,"ix-form-container",3,"submit","formGroup"],[3,"title"],["formControlName","pool",3,"label"],["formControlName","storage_pools",3,"label","multiple","options"],["formControlName","bridge",3,"label","required","options"],["mat-button","","type","submit","color","primary","ixTest","save",3,"disabled",4,"ixRequiresRoles"],["formControlName","v4_network",3,"label","hint"],["formControlName","v6_network",3,"label","hint"],["mat-button","","type","submit","color","primary","ixTest","save",3,"disabled"]],template:function(e,n){e&1&&(_(0,"ix-modal-header",0),s(1,"translate"),p(2,"mat-card")(3,"mat-card-content")(4,"form",1),b("submit",function(){return n.onSubmit()}),p(5,"ix-fieldset",2),s(6,"translate"),_(7,"ix-checkbox",3),s(8,"translate"),x(9,Hr,2,5,"ix-select",4),m(),p(10,"ix-fieldset",2),s(11,"translate"),_(12,"ix-select",5),s(13,"translate"),x(14,zr,6,12),m(),p(15,"ix-form-actions"),x(16,qr,3,4,"button",6),m()()()()),e&2&&(d("title",l(1,13,"Global Settings"))("requiredRoles",n.requiredRoles)("loading",n.isLoading()),a(4),d("formGroup",n.form),a(),d("title",l(6,15,"Storage")),a(2),d("label",l(8,17,"Enabled")),a(2),C(n.form.controls.pool.value?9:-1),a(),d("title",l(11,19,"Default Network")),a(2),d("label",l(13,21,"Bridge"))("required",!0)("options",n.bridgeOptions$),a(2),C(n.isAutoBridge?14:-1),a(2),d("ixRequiresRoles",n.requiredRoles))},dependencies:[qe,_i,A,fe,he,Q,pe,K,le,be,ce,me,Je,R,M,w,Ge,Fe,di,hr],encapsulation:2,changeDetection:0}),It);
1wn=Ur([T()],wn);var De={cpuHint:"Leave empty to allow all host CPUs to be used.",nameHint:"Name cannot be changed after instance is created",memoryHint:"Leave empty to not limit instance memory.",vncHint:"VNC connection is currently insecure. Secure the connection in other ways.",name_placeholder:"Name",name_tooltip:"Specify a unique name for the container.",instance_type_placeholder:"Virtualization Method",cpu_memory_tooltip:"<b>CPU Configuration</b><br />Enter the number of cores. Alternatively, use multiple values or ranges to set the CPU topology.<br />Example: 1-2, 5, 9-11.",cpu_placeholder:"CPU Configuration",cpu_tooltip:"Enter number of cores or multiple values or ranges to set CPU topology. Example: 1-2,5,9-11",memory_placeholder:"Memory Size",memory_tooltip:"Specify RAM allocation for the container. You can use units such as GB, MB.",env_placeholder:"Environment Variables",env_name_placeholder:"Name",env_name_tooltip:"Specify the environment variable name.",env_value_placeholder:"Value",env_value_tooltip:"Enter the value for the environment variable.",disks_placeholder:"Disks",disks_src_placeholder:"Source",disks_src_tooltip:"Specify the source disk.",disks_dst_placeholder:"Destination",disks_dst_tooltip:"Specify the container filesystem path where the disk will be mounted.",proxies_placeholder:"Proxies",host_protocol_placeholder:"Host Protocol",host_protocol_tooltip:"Specify the protocol (TCP or UDP) for the host.",host_port_placeholder:"Host Port",host_port_tooltip:"Specify the host port to be mapped to the container's port.",io_bus_tooltip:"Choose the disk I/O bus type that best suits your system\u2019s needs: <br /><br /> \u2022 NVMe \u2013 Ideal for high-performance storage with faster read and write speeds. <br /><br /> \u2022 Virtio-BLK \u2013 Efficient for virtualized environments, offering direct block device access with lower overhead. <br /><br /> \u2022 Virtio-SCSI \u2013 Flexible and scalable, supporting advanced features like hot-swapping and multiple devices.",instance_protocol_placeholder:"Instance Protocol",instance_protocol_tooltip:"Select the protocol for the instance's network connection.",instance_port_placeholder:"Instance Port",instance_port_tooltip:"Specify the network port for the container instance.",network_tooltip:"Use the default network settings to connect the default bridge to the host.</br><br /><b>Bridged NIC</b> uses an existing bridge on the host and creates a virtual device pair to connect the host bridge to the instance.<br /><br /><b>Macvlan NIC</b> sets up a new network device based on an existing network device, but using a different MAC address.",network_use_default_placeholder:"Use default network settings",network_use_default_tooltip:"Enable to apply default network configurations.",network_bridged_nics_placeholder:"Bridged NICs",network_bridged_nics_tooltip:"Enable or disable NICs.",network_mac_vlan_nics_placeholder:"Macvlan NICs",network_mac_vlan_nics_tooltip:"Enable or disable NICs.",usb_devices_placeholder:"USB Devices",usb_devices_tooltip:"Enable or disable the USB device for your container.",enable_vnc_placeholder:"Enable VNC",enable_vnc_tooltip:"Check to allow remote desktop access via VNC.",add_tpm_placeholder:"Add Trusted Platform Module",add_tpm_tooltip:"Virtual device that provides hardware-based security functions like encryption key management.",secure_boot_tooltip:"Secure Boot ensures that only trusted, signed software runs during a system\u2019s startup process. May be incompatible with some images.",secure_boot_on_required_tooltip:"Secure Boot is required for the VM image you selected",secure_boot_off_required_tooltip:"Secure Boot is required to be off for the VM image you selected",idMapHint:"By default, accounts inside instances are mapped to a special private range of UIDs and GIDs to perform security isolation for the containers.  This range starts at 2147000001.  <br>  You can use this dialog to control mapping manually.",mapDirectlyTooltip:"UID/GID from the host is directly mapped to the same id in a container. This means that GID 3000 will appear as GID 3000 in the container.",importZvol:{cloneTooltip:"
1Clone and promote a temporary snapshot of the zvol into a custom storage volume.",moveTooltip:"Renames the ZFS dataset to a path in the `ix-virt` dataset in which the zvol is located.",description:"Importing a zvol as Instances volume allows its lifecycle to be managed, including backups, restores, and snapshots. This allows portability between systems using standard tools."},bootPriorityHint:"Disks with highest boot priority are booted first. Root disk by default has a priority of 1."};var Pn="DIRECT";var rt=function(i){return i.Users="Users",i.Groups="Groups",i}(rt||{});var Gr=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},$r=()=>["set-mapping"];function Wr(i,t){if(i&1&&(_(0,"ix-combobox",2),s(1,"translate")),i&2){let e=v();d("label",l(1,3,"User"))("provider",e.userProvider)("required",!0)}}function Zr(i,t){if(i&1&&(_(0,"ix-combobox",2),s(1,"translate")),i&2){let e=v();d("label",l(1,3,"Group"))("provider",e.groupProvider)("required",!0)}}function Kr(i,t){if(i&1&&(_(0,"ix-input",4),s(1,"translate"),s(2,"translate")),i&2){let e=v();d("label",e.isUserType()?l(1,2,"Instance UID"):l(2,4,"Instance GID"))("required",!0)}}var St,kn=(St=class{constructor(t,e,n,r,o,c,f){this.api=t,this.errorHandler=e,this.loader=n,this.formBuilder=r,this.snackbar=o,this.translate=c,this.userService=f,this.type=q.required(),this.mappingAdded=Ke(),this.ViewType=rt,this.containersHelptext=De,this.form=this.formBuilder.group({hostUidOrGid:[null,F.required],mapDirectly:[!0],instanceUidOrGid:[null]}),this.userProvider=new er(this.userService,"id"),this.groupProvider=new Cr(this.userService,"id"),this.isUserType=S(()=>
1this.type()===rt.Users)}ngOnChanges(){this.resetFormOnTypeChanges()}ngOnInit(){this.handleMapDirectlyChanges()}submit(){let t=this.form.value,e={userns_idmap:t.mapDirectly?Pn:t.instanceUidOrGid},n;this.isUserType()?n=this.api.call("user.update",[t.hostUidOrGid,e]):n=this.api.call("group.update",[t.hostUidOrGid,e]),n.pipe(this.loader.withLoader(),this.errorHandler.catchError(),y(this)).subscribe(()=>{this.mappingAdded.emit(),this.snackbar.success(this.translate.instant("Mapping added"))})}resetFormOnTypeChanges(){this.form.setValue({mapDirectly:!0,instanceUidOrGid:null,hostUidOrGid:null})}handleMapDirectlyChanges(){this.form.controls.mapDirectly.valueChanges.pipe(y(this)).subscribe(t=>{t?this.form.controls.instanceUidOrGid.setValidators(null):this.form.controls.instanceUidOrGid.setValidators(F.required),this.form.controls.instanceUidOrGid.updateValueAndValidity()})}},St.\u0275fac=function(e){return new(e||St)(u(N),u(H),u($e),u(si),u(Z),u(j),u(ir))},St.\u0275cmp=D({type:St,selectors:[["ix-new-mapping-form"]],inputs:{type:[1,"type"]},outputs:{mappingAdded:"mappingAdded"},features:[go],decls:13,vars:20,consts:[[3,"title"],[1,"form",3,"submit","formGroup"],["formControlName","hostUidOrGid",3,"label","provider","required"],["formControlName","mapDirectly",1,"default-checkbox",3,"label","tooltip"],["formControlName","instanceUidOrGid","type","number",3,"label","required"],["mat-button","","type","submit",1,"set-button",3,"disabled","ixTest"]],template:function(e,n){e&1&&(p(0,"ix-fieldset",0),s(1,"translate"),p(2,"form",1),b("submit",function(){return n.submit()}),x(3,Wr,2,5,"ix-combobox",2)(4,Zr,2,5,"ix-combobox",2),_(5,"ix-checkbox",3),s(6,"translate"),s(7,"translate"),s(8,"translate"),x(9,Kr,3,6,"ix-input",4),p(10,"button",5),h(11),s(12,"translate"),m()()()),e&2&&(d("title",l(1,9,"Add New Mapping")),a(2),d("formGroup",n.form),a(),C(n.isUserType()?3:4),a(2),d("label",n.isUserType()?l(6,11,"Map to the same UID in the instance"):l(7,13,"Map to the same GID in the instance"))("tooltip",l(8,15,n.containersHelptext.mapDirectlyTooltip)),a(4),C(n.form.value.mapDirectly?-1:9),a(),d("disabled",n.form.invalid)("ixTest",re(19,$r)),a(),g(" ",l(12,17,"Set")," "))},dependencies:[tr,li,pe,K,le,be,Q,ce,me,M,w,di,ye,A,R,Ge],styles:["[_nghost-%COMP%]   ix-fieldset[_ngcontent-%COMP%]{margin-top:16px}[_nghost-%COMP%]   ix-fieldset[_ngcontent-%COMP%]     fieldset{padding:0}[_nghost-%COMP%]   ix-fieldset[_ngcontent-%COMP%]   form.form[_ngcontent-%COMP%]{align-items:flex-start;display:flex;gap:12px;margin-top:-10px;padding:0}[_nghost-%COMP%]   ix-fieldset[_ngcontent-%COMP%]   form.form[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{margin-bottom:0;margin-top:0}[_nghost-%COMP%]   ix-fieldset[_ngcontent-%COMP%]   form.form[_ngcontent-%COMP%]   .default-checkbox[_ngcontent-%COMP%]{margin-top:30px}[_nghost-%COMP%]   ix-fieldset[_ngcontent-%COMP%]   form.form[_ngcontent-%COMP%]   .set-button[_ngcontent-%COMP%]{margin-left:16px;margin-top:32px}\n/*# sourceMappingURL=new-mapping-form.component-YUWIYQYS.css.map */"],changeDetection:0}),St);kn=Gr([T()],kn);var Qr=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},Yr=()=>["close-dialog"],Jr=()=>["mapping-table"],Xr=i=>["clear-mapping",i],ea=()=>["image-table-header"],ta=i=>["image-table-row",i];function ia(i,t){i&1&&(p(0,"th",20),h(1),s(2,"translate"),m()),i&2&&(a(),I(l(2,1,"Name")))}function na(i,t){if(i&1&&(p(0,"td",21),h(1),m()),i&2){let e=t.$implicit;a(),I(e.name)}}function oa(i,t){if(i&1&&(p(0,"th",20),h(1),s(2,"translate"),s(3,"translate"),m()),i&2){let e=v();a(),g(" ",e.typeControl.value===e.ViewType.Users?l(2,1,"Host UID"):l(3,3,"Host GID")," ")}}function ra(i,t){if(i&1&&(p(0,"td",21),h(1),m()),i&2){let e=t.$implicit;a(),I(e.hostUidOrGid)}}function aa(i,t){if(i&1&&(p(0,"th",20),h(1),s(2,"translate"),s(3,"translate"),m()),i&2){let e=v();a(),g(" ",e.typeControl.value===e.ViewType.Users?l(2,1,"Instance UID"):l(3,3,"Instance GID"),"")}}function sa(i,t){i&1&&(h(0),s(1,"translate")),i&2&&g(" ",l(1,1,"Same")," ")}function la(i,t){if(i&1&&h(0),i&2){let e=v().$implicit;g(" ",e.instanceUidOrGid," ")}}function pa(i,t){if(i&1&&(p(0,"td",21),x(1,sa,2,3)(2,la,1,1),m()),i&2){let e=t.$implicit,n=v();a(),C(e.instanceUidOrGid===n.directIdMapping?1:2)}}function ca(i,t){i&1&&_(0,"th",20)}function ma(i,t){if(i&1){let e=B();p(0,"td",21)(1,"button",22),s(2,"translate"),b("click",function(){let r=P(e).$implicit,o=v();return k(o.onClearMapping(r))}
1),_(3,"ix-icon",23),m()()}if(i&2){let e=t.$implicit;a(),d("ixTest",$(4,Xr,e.description))("matTooltip",l(2,2,"Clear mapping"))}}function da(i,t){i&1&&_(0,"tr",24),i&2&&d("ixTest",re(1,ea))}function ua(i,t){if(i&1&&_(0,"tr",25),i&2){let e=t.$implicit;d("ixTest",$(1,ta,e))}}function fa(i,t){if(i&1&&_(0,"ix-empty",18),i&2){let e=v();d("conf",e.noEntries)}}var Dt,Bn=(Dt=class{constructor(t,e,n,r,o,c){this.api=t,this.errorHandler=e,this.dialogRef=n,this.translate=r,this.loader=o,this.snackbar=c,this.columns=["name","hostUidOrGid","instanceUidOrGid","actions"],this.containersHelptext=De,this.isLoading=L(!1),this.mappings=L([]),this.noEntries={type:nt.NoPageData,large:!0,message:this.translate.instant("No entries have been mapped yet.")},this.typeControl=new un(rt.Users),this.typeOptions$=z([{label:this.translate.instant("Users"),value:rt.Users},{label:this.translate.instant("Groups"),value:rt.Groups}]),this.directIdMapping=Pn,this.ViewType=rt}ngOnInit(){this.loadMappings(),this.loadMappingOnTypeChanges()}loadMappingOnTypeChanges(){this.typeControl.valueChanges.pipe(y(this)).subscribe(()=>this.loadMappings())}loadMappings(){this.isLoading.set(!0);let t;this.typeControl.value===rt.Users?t=this.api.call("user.query",[[["local","=",!0],["userns_idmap","!=",null]]]).pipe(X(e=>e.map(n=>({name:n.username,systemId:n.id,hostUidOrGid:n.uid,instanceUidOrGid:n.userns_idmap})))):t=this.api.call("group.query",[[["local","=",!0],["userns_idmap","!=",null]]]).pipe(X(e=>e.map(n=>({name:n.group,systemId:n.id,hostUidOrGid:n.gid,instanceUidOrGid:n.userns_idmap})))),t.pipe(this.errorHandler.catchError(),an(()=>this.isLoading.set(!1)),y(this)).subscribe(e=>{this.mappings.set(e)})}onClearMapping(t){let e;this.typeControl.value===rt.Users?e=this.api.call("user.update",[t.systemId,{userns_idmap:null}]):e=this.api.call("group.update",[t.systemId,{userns_idmap:null}]),e.pipe(this.loader.withLoader(),this.errorHandler.catchError(),y(this)).subscribe(()=>{this.snackbar.success(this.translate.instant("Mapping has been cleared.")),this.loadMappings()})}},Dt.\u0275fac=function(e){return new(e||Dt)(u(N),u(H),u(Oe),u(j),u($e),u(Z))},Dt.\u0275cmp=D({type:Dt,selectors:[["ix-map-user-group-ids-dialog"]],decls:30,vars:21,consts:[[3,"loading"],[1,"header"],["mat-dialog-title",""],[1,"tooltip",3,"message"],["mat-icon-button","",3,"click","ixTest"],["name","cancel"],[1,"dialog-content"],[1,"type-selector",3,"formControl","options"],[1,"table-wrapper"],["mat-table","",3,"dataSource","ixTest"],["matColumnDef","name"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","hostUidOrGid"],["matColumnDef","instanceUidOrGid"],["matColumnDef","actions"],["mat-header-row","",3,"ixTest",4,"matHeaderRowDef"],["mat-row","",3,"ixTest",4,"matRowDef","matRowDefColumns"],[3,"conf"],[3,"mappingAdded","type"],["mat-header-cell",""],["mat-cell",""],["mat-icon-button","","type","button",3,"click","ixTest","matTooltip"],["name","mdi-delete"],["mat-header-row","",3,"ixTest"],["mat-row","",3,"ixTest"]],template:function(e,n){e&1&&(_(0,"ix-fake-progress-bar",0),p(1,"div",1)(2,"h1",2),h(3),s(4,"translate"),_(5,"ix-tooltip",3),s(6,"translate"),m(),p(7,"button",4),s(8,"translate"),b("click",function(){return n.dialogRef.close()}),_(9,"ix-icon",5),m()(),p(10,"mat-dialog-content",6),_(11,"ix-button-group",7),p(12,"div",8)(13,"table",9),Ie(14,10),x(15,ia,3,3,"th",11)(16,na,2,1,"td",12),Se(),Ie(17,13),x(18,oa,4,5,"th",11)(19,ra,2,1,"td",12),Se(),Ie(20,14),x(21,aa,4,5,"th",11)(22,pa,3,1,"td",12),Se(),Ie(23,15),x(24,ca,1,0,"th",11)(25,ma,4,6,"td",12),Se(),x(26,da,1,2,"tr",16)(27,ua,1,3,"tr",17),m(),x(28,fa,1,1,"ix-empty",18),m(),p(29,"ix-new-mapping-form",19),b("mappingAdded",function(){return n.loadMappings()}),m()()),e&2&&(d("loading",n.isLoading()),a(3),g(" ",l(4,13,"Map User And Group IDs")," "),a(2),d("message",l(6,15,n.containersHelptext.idMapHint)),a(2),d("ixTest",re(19,Yr)),Qe("aria-label",l(8,17,"Close Dialog")),a(4),d("formControl",n.typeControl)("options",n.typeOptions$),a(2),d("dataSource",n.mappings())("ixTest",re(20,Jr)),a(13),d("matHeaderRowDef",n.columns),a(),d("matRowDefColumns",n.columns),a(),C(n.mappings().length?-1:28),a(),d("type",n.typeControl.value))},dependencies:[Oi,te,ci,Re,ze,M,w,R,hi,li,K,Ai,Ni,Fi,Li,zi,Ui,qi,Hi,Ei,Q,wi,Ee,ji,kn,No,Go
1],styles:[".header[_ngcontent-%COMP%]{align-items:center;display:flex;justify-content:space-between}.header[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{align-items:center;display:flex;gap:6px;margin-bottom:0;padding-top:20px}.header[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]   .tooltip[_ngcontent-%COMP%]     ix-icon{height:20px;width:20px}.header[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{margin-right:20px}.type-selector[_ngcontent-%COMP%]{display:block;margin-bottom:7px}.dialog-content[_ngcontent-%COMP%]{padding-top:18px}\n/*# sourceMappingURL=map-user-group-ids-dialog.component-42HO5ARO.css.map */"],changeDetection:0}),Dt);Bn=Qr([T()],Bn);function ha(i,t){i&1&&(_(0,"ix-icon",0),p(1,"div",1),h(2),s(3,"translate"),m()),i&2&&(a(2),I(l(3,1,"Pool is not selected")))}function _a(i,t){i&1&&(_(0,"ix-icon",2),p(1,"div",1),h(2),s(3,"translate"),m()),i&2&&(a(2),I(l(3,1,"Initialized")))}function va(i,t){i&1&&(_(0,"ix-icon",3),p(1,"div",1),h(2),s(3,"translate"),m()),i&2&&(a(2),I(l(3,1,"Dataset is locked")))}function ga(i,t){i&1&&(_(0,"ix-icon",4),p(1,"div",1),h(2),s(3,"translate"),m()),i&2&&(a(2),I(l(3,1,"Error")))}function xa(i,t){i&1&&(_(0,"mat-spinner",5),p(1,"div",1),h(2),s(3,"translate"),m()),i&2&&(d("diameter",24),a(2),I(l(3,2,"Initializing...")))}var Mr=(()=>{let t=class t{constructor(){this.state=q.required(),this.VirtualizationGlobalState=yt}};t.\u0275fac=function(r){return new(r||t)},t.\u0275cmp=D({type:t,selectors:[["ix-virtualization-state"]],inputs:{state:[1,"state"]},decls:5,vars:1,consts:[["name","settings"],[1,"status-text"],["name","check"],["name","mdi-lock"],["name","mdi-close"],[1,"spinner",3,"diameter"]],template:function(r,o){if(r&1&&x(0,ha,4,3)(1,_a,4,3)(2,va,4,3)(3,ga,4,3)(4,xa,4,4),r&2){let c;C((c=o.state())===o.VirtualizationGlobalState.NoPool?0:c===o.VirtualizationGlobalState.Initialized?1:c===o.VirtualizationGlobalState.Locked?2:c===o.VirtualizationGlobalState.Error?3:c===o.VirtualizationGlobalState.Initializing?4:-1)}},dependencies:[te,M,w,Ao],styles:["[_nghost-%COMP%]{align-items:center;display:flex;gap:5px}.spinner[_ngcontent-%COMP%]{margin-right:6px}\n/*# sourceMappingURL=virtualization-state.component-ARFTLED2.css.map */"],changeDetection:0});let i=t;return i})();var Ca=(i,t)=>[i,t];function ba(i,t){if(i&1){let e=B();p(0,"button",1),b("click",function(){P(e);let r=v();return k(r.onClick(r.row()))}),h(1),m()}if(i&2){let e=v();d("ixTest",Io(2,Ca,e.text,e.uniqueRowTag(e.row()))),a(),g(" ",e.text,"\n")}}var ya=(()=>{let t=class t extends sr{constructor(){super(...arguments),this.text="",this.requiredRoles=[]}};t.\u0275fac=(()=>{let n;return function(o){return(n||(n=xo(t)))(o||t)}})(),t.\u0275cmp=D({type:t,selectors:[["ix-cell-button"]],features:[bo],decls:1,vars:1,consts:[["mat-button","",3,"ixTest","click",4,"ixRequiresRoles"],["mat-button","",3,"click","ixTest"]],template:function(r,o){r&1&&x(0,ba,2,5,"button",0),r&2&&d("ixRequiresRoles",o.requiredRoles)},dependencies:[M,A,R,Je],encapsulation:2,changeDetection:0});let i=t;return i})();function Tr(i){return Y({type:ya},i)}var Ia=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},Mt,On=(Mt=class{constructor(t,e,n,r,o,c,f,V){this.formBuilder=t,this.filesystem=e,this.api=n,this.dialogService=r,this.translate=o,this.errorHandler=c,this.dialogRef=f,this.snackbar=V,this.form=this.formBuilder.group({zvols:[[],F.required],clone:[!1]}),this.zvolProvider=this.filesystem.getFilesystemNodeProvider({zvolsOnly:!0}),this.cloneOrMoveOptions$=z([{label:this.translate.instant("Clone"),tooltip:this.translate.instant(De.importZvol.cloneTooltip),value:!0},{label:this.translate.instant("Move"),tooltip:this.translate.instant(De.importZvol.moveTooltip),value:!1}]),this.helptext=De}onSubmit(){let t=this.form.value.zvols.map(n=>({virt_volume_name:n.split("/").pop(),zvol_path:n})),e=this.api.job("virt.volume.import_zvol",[{clone:this.form.value.clone,to_import:t}]);
1this.dialogService.jobDialog(e,{title:this.translate.instant("Importing")}).afterClosed().pipe(this.errorHandler.catchError(),y(this)).subscribe(()=>{this.snackbar.success(this.translate.instant("Import completed")),this.dialogRef.close(!0)})}},Mt.\u0275fac=function(e){return new(e||Mt)(u(si),u(Ri),u(N),u(ue),u(j),u(H),u(Oe),u(Z))},Mt.\u0275cmp=D({type:Mt,selectors:[["ix-import-zvol-dialog"]],decls:17,vars:21,consts:[["matDialogTitle",""],[1,"ix-form-container",3,"submit","formGroup"],["root","/dev/zvol","formControlName","zvols",3,"label","required","nodeProvider","multiple"],["formControlName","clone",3,"options"],["mat-button","","type","button","ixTest","cancel","matDialogClose",""],["mat-button","","color","primary","type","submit","ixTest","import",3,"disabled"]],template:function(e,n){e&1&&(p(0,"h1",0),h(1),s(2,"translate"),m(),p(3,"form",1),b("submit",function(){return n.onSubmit()}),p(4,"p"),h(5),s(6,"translate"),m(),_(7,"ix-explorer",2),s(8,"translate"),_(9,"ix-radio-group",3),p(10,"ix-form-actions")(11,"button",4),h(12),s(13,"translate"),m(),p(14,"button",5),h(15),s(16,"translate"),m()()()),e&2&&(a(),g(" ",l(2,11,"Import Zvol"),"\n"),a(2),d("formGroup",n.form),a(2),g(" ",l(6,13,n.helptext.importZvol.description)," "),a(2),d("label",l(8,15,"Select Zvols"))("required",!0)("nodeProvider",n.zvolProvider)("multiple",!0),a(2),d("options",n.cloneOrMoveOptions$),a(3),g(" ",l(13,17,"Cancel")," "),a(2),d("disabled",n.form.invalid),a(),g(" ",l(16,19,"Import")," "))},dependencies:[Re,M,w,Q,pe,K,le,be,ce,me,Vi,qe,A,R,pi,In],encapsulation:2,changeDetection:0}),Mt);On=Ia([T()],On);var Sa=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},Tt,Rn=(Tt=class{constructor(t,e,n,r,o,c){this.formatter=t,this.api=e,this.loader=n,this.errorHandler=r,this.formBuilder=o,this.dialogRef=c,this.form=this.formBuilder.group({name:this.formBuilder.control("",F.required),size:this.formBuilder.control(1073741824,[F.required,F.min(1048576)])})}onSubmit(){let t=this.form.getRawValue();this.api.call("virt.volume.create",[_e(Y({},t),{size:t.size/1048576})]).pipe(this.loader.withLoader(),this.errorHandler.catchError(),y(this)).subscribe(()=>this.dialogRef.close(!0))}},Tt.\u0275fac=function(e){return new(e||Tt)(u(Xe),u(N),u($e),u(H),u(si),u(Oe))},Tt.\u0275cmp=D({type:Tt,selectors:[["ix-new-volume-dialog"]],decls:15,vars:21,consts:[["matDialogTitle",""],[1,"ix-form-container",3,"submit","formGroup"],["formControlName","name",3,"label","required"],["formControlName","size",3,"label","required","format","parse"],["mat-button","","type","button","ixTest","cancel","matDialogClose",""],["mat-button","","color","primary","type","submit","ixTest","save",3,"disabled"]],template:function(e,n){e&1&&(p(0,"h1",0),h(1),s(2,"translate"),m(),p(3,"form",1),b("submit",function(){return n.onSubmit()}),_(4,"ix-input",2),s(5,"translate"),_(6,"ix-input",3),s(7,"translate"),p(8,"ix-form-actions")(9,"button",4),h(10),s(11,"translate"),m(),p(12,"button",5),h(13),s(14,"translate"),m()()()),e&2&&(a(),g(" ",l(2,11,"Create New Volume"),"\n"),a(2),d("formGroup",n.form),a(),d("label",l(5,13,"Name"))("required",!0),a(2),d("label",l(7,15,"Size"))("required",!0)("format",n.formatter.memorySizeFormatting)("parse",n.formatter.memorySizeParsing),a(4),g(" ",l(11,17,"Cancel")," "),a(2),d("disabled",n.form.invalid),a(),g(" ",l(14,19,"Create")," "))},dependencies:[li,pe,K,le,be,ye,A,pi,Re,Q,ce,me,R,M,w,qe],encapsulation:2,changeDetection:0}),Tt);Rn=Sa([T()],Rn);var Da=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o};function Ma(i,t){if(i&1&&(p(0,"ix-file-input",1),_(1,"ix-icon",2),h(2),s(3,"translate"),m()),i&2){let e=v();d("formControl",e.imageFileControl),a(2),g(" ",l(3,2,"Upload ISO"),"\n")}}var wt,En=(wt=class{constructor(t,e,n,r,o,c){this.dialogService=t,this.errorHandler=e,this.translate=n,this.uploadService=r,this.snackbar=o,this.api=c,this.uploaded=Ke(),this.imageFileControl=new un([]),this.requiredRoles=[je.VirtImageWrite]}ngOnInit(){this.imageFileControl.valueChanges.pipe(G(t=>!!t.length),Ce(()=>this.api.call("virt.volume.query")),X(t=>t.map(e=>e.name)),y(this)).subscribe(t=>this.uploadImage(t))}uploadImage(t){let e=this.imageFileControl.value[0];this.imageFileControl.setValue([]);let n=this.uploadService.uploadAsJob({file:e,method:"virt.volume.import_iso",params:[{name:e.name,upload_iso:!0}]});if(t.includes(e.name)){this.dialogService.error({title:this.translate.instant("Error"),message:this.translate.instant("Volume with this name already exists.")});return}
1this.dialogService.jobDialog(n,{title:this.translate.instant("Uploading Image")}).afterClosed().pipe(this.errorHandler.catchError(),y(this)).subscribe(()=>{this.snackbar.success(this.translate.instant("Image uploaded successfully")),this.uploaded.emit()})}},wt.\u0275fac=function(e){return new(e||wt)(u(ue),u(H),u(j),u(qo),u(Z),u(N))},wt.\u0275cmp=D({type:wt,selectors:[["ix-upload-iso"]],outputs:{uploaded:"uploaded"},decls:1,vars:1,consts:[["acceptedFiles",".iso","class","file-input",3,"formControl",4,"ixRequiresRoles"],["acceptedFiles",".iso",1,"file-input",3,"formControl"],["name","mdi-upload",1,"upload-icon"]],template:function(e,n){e&1&&x(0,Ma,4,4,"ix-file-input",0),e&2&&d("ixRequiresRoles",n.requiredRoles)},dependencies:[zo,Q,K,wi,M,w,Je,te],styles:[".file-input[_ngcontent-%COMP%]{margin-bottom:0;margin-top:0;padding:0}.upload-icon[_ngcontent-%COMP%]{margin-left:-3px}\n/*# sourceMappingURL=upload-iso-button.component-OJ52ITUG.css.map */"],changeDetection:0}),wt);En=Da([T()],En);var Ta=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},wa=()=>["close-dialog"],Pa=()=>["create-volume"],ka=()=>["import-zvols"],Pt,kt=(Pt=class{constructor(t,e,n,r,o,c,f,V,O,ae){this.api=t,this.matDialog=e,this.dialog=n,this.errorHandler=r,this.loader=o,this.snackbar=c,this.translate=f,this.emptyService=V,this.dialogRef=O,this.options=L({selectionMode:!1}),this.requiredRoles=[je.VirtImageWrite],this.columns=S(()=>{let Le=this.options().selectionMode;return rr([oo({title:this.translate.instant("Name"),propertyName:"name"}),oo({title:this.translate.instant("Size"),getValue:se=>Zo(se.config.size*1048576)}),ro({title:this.translate.instant("Created At"),propertyName:"created_at",getValue:se=>$o(se.created_at)}),ro({title:this.translate.instant("Used By"),propertyName:"used_by",getValue:se=>se.used_by?se.used_by.join(", "):this.translate.instant("Not used")}),Tr({text:this.translate.instant("Select"),hidden:!Le,cssClass:"select-cell",onClick:se=>this.dialogRef.close(se)}),lr({hidden:Le,actions:[{iconName:"mdi-delete",tooltip:this.translate.instant("Delete"),requiredRoles:this.requiredRoles,onClick:se=>this.onDelete(se),disabled:se=>z(se.used_by.length>0),dynamicTooltip:se=>se.used_by.length>0?z(this.translate.instant("Volume is in use.")):z("")}]})],{uniqueRowTag:se=>"volume"+se.id,ariaLabels:se=>[se.id,this.translate.instant("Volume")]})}),this.dataProvider=new ur(this.api.call("virt.volume.query")),this.options.set(ae||{selectionMode:!1})}ngOnInit(){this.dataProvider.load()}onDelete(t){this.dialog.confirm({title:this.translate.instant("Delete volume"),message:this.translate.instant("Are you sure you want to delete volume {name}?",{name:t.name})}).pipe(G(Boolean),Ce(()=>this.api.call("virt.volume.delete",[t.id]).pipe(this.loader.withLoader(),this.errorHandler.catchError())),y(this)).subscribe(()=>{this.snackbar.success(this.translate.instant("Volume removed")),this.dataProvider.load()})}createVolume(){this.matDialog.open(Rn,{minWidth:"300px"}).afterClosed().pipe(G(Boolean),y(this)).subscribe(()=>this.dataProvider.load())}importZvols(){this.matDialog.open(On,{minWidth:"500px"}).afterClosed().pipe(G(Boolean),y(this)).subscribe(()=>this.dataProvider.load())}onImageUploaded(){this.dataProvider.load()}},Pt.\u0275fac=function(e){return new(e||Pt)(u(N),u(Ve),u(ue),u(H),u($e),u(Z),u(j),u(dr),u(Oe),u(pt))},Pt.\u0275cmp=D({type:Pt,selectors:[["ix-volumes-dialog"]],decls:26,vars:34,consts:[[3,"loading"],[1,"header"],["mat-dialog-title",""],["mat-icon-button","",3,"click","ixTest"],["name","cancel"],[1,"content"],[1,"table",3,"ix-table-empty","emptyConfig"],["ix-table-head","",3,"columns","dataProvider"],["ix-table-body","",3,"columns","dataProvider","isLoading"],[1,"controls"],["mat-button","",3,"click","ixTest"],["name","add"],["name","mdi-database"],[3,"uploaded"]],template:function(e,n){e&1&&(_(0,"ix-fake-progress-bar",0),s(1,"async"),p(2,"div",1)(3,"h1",2),h(4),s(5,"translate"),m(),p(6,"button",3),s(7,"translate"),b("click",function(){return n.dialogRef.close(null)}),_(8,"ix-icon",4),m()(),p(9,"mat-dialog-content",5)(10,"ix-table",6),s(11,"async"),s(12,"async"),_(13,"thead",7)(14,"tbody",8),s(15,"async"),m(),p(16,"div",9)(17,"button",10),b("click",function(){return n.createV
1olume()}),_(18,"ix-icon",11),h(19),s(20,"translate"),m(),p(21,"button",10),b("click",function(){return n.importZvols()}),_(22,"ix-icon",12),h(23),s(24,"translate"),m(),p(25,"ix-upload-iso",13),b("uploaded",function(){return n.onImageUploaded()}),m()()()),e&2&&(d("loading",l(1,15,n.dataProvider.isLoading$)),a(4),I(l(5,17,"Volumes")),a(2),d("ixTest",re(31,wa)),Qe("aria-label",l(7,19,"Close Dialog")),a(4),d("ix-table-empty",!l(11,21,n.dataProvider.currentPageCount$))("emptyConfig",n.emptyService.defaultEmptyConfig(l(12,23,n.dataProvider.emptyType$))),a(3),d("columns",n.columns())("dataProvider",n.dataProvider),a(),d("columns",n.columns())("dataProvider",n.dataProvider)("isLoading",!!l(15,25,n.dataProvider.isLoading$)),a(3),d("ixTest",re(32,Pa)),a(2),g(" ",l(20,27,"Create Volume")," "),a(2),d("ixTest",re(33,ka)),a(2),g(" ",l(24,29,"Import Zvols")," "))},dependencies:[Re,M,w,ze,R,te,ci,pn,pr,ar,cr,mr,En,Oi,A],styles:[".header[_ngcontent-%COMP%]{align-items:center;display:flex;justify-content:space-between;margin-right:20px;margin-top:18px}.header[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{margin-bottom:0;padding-top:0}[_nghost-%COMP%]   .table[_ngcontent-%COMP%]     table{table-layout:auto}[_nghost-%COMP%]   .table[_ngcontent-%COMP%]     .select-cell{text-align:right}.controls[_ngcontent-%COMP%]{display:flex;gap:8px;justify-content:flex-end;padding-bottom:18px;padding-top:12px}.content[_ngcontent-%COMP%]{padding-bottom:0;padding-top:10px}\n/*# sourceMappingURL=volumes-dialog.component-LAZ3X2IW.css.map */"],changeDetection:0}),Pt);kt=Ta([T()],kt);var Ba=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},Pr={isLoading:!1,config:null},ft,ht=(ft=class extends Pi{constructor(t,e){super(Pr),this.api=t,this.errorHandler=e,this.stateAsSignal=Me(this.state$,{initialValue:Pr}),this.isLoading=S(()=>this.stateAsSignal().isLoading),this.config=S(()=>this.stateAsSignal().config),this.virtualizationState=S(()=>{var n;return(n=this.config())==null?void 0:n.state}),this.initialize=this.effect(n=>n.pipe(Ce(()=>(this.subscribeToConfigUpdates(),this.patchState({isLoading:!0}),this.api.call("virt.global.config").pipe(ve(r=>{this.patchState({config:r,isLoading:!1})}),oi(r=>(this.patchState({isLoading:!1}),this.errorHandler.showErrorModal(r),z(void 0))))))))}subscribeToConfigUpdates(){this.configSubscription||(this.configSubscription=this.api.subscribe("virt.global.config").pipe(y(this)).subscribe(({fields:t})=>{this.patchState({config:t})}))}},ft.\u0275fac=function(e){return new(e||ft)(et(N),et(H))},ft.\u0275prov=Di({token:ft,factory:ft.\u0275fac}),ft);ht=Ba([T()],ht);var Oa=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},kr={isLoading:!0,instances:void 0,selectedInstanceId:null,selectedInstance:void 0},_t,ee=(_t=class extends Pi{constructor(t,e,n){super(kr),this.api=t,this.errorHandler=e,this.router=n,this.stateAsSignal=Me(this.state$,{initialValue:kr}),this.isLoading=S(()=>this.stateAsSignal().isLoading),this.selectedInstance=S(()=>this.stateAsSignal().selectedInstance),this.selectedInstanceId=S(()=>this.stateAsSignal().selectedInstanceId),this.instances=S(()=>{var r,o;return(o=(r=this.stateAsSignal().instances)==null?void 0:r.filter(c=>!!c))!=null?o:[]}),this.destroySubscription$=new mo,this.initialize=this.effect(r=>(this.destroySubscription$.next(),r.pipe(Ce(()=>(this.patchState({isLoading:!0}),this.api.call("virt.instance.query").pipe(ve(o=>{let c=this.selectedInstanceId(),f=this.selectedInstance();if(!f||f.id!==c){let V=o.find(O=>O.id===c);V?this.patchState({selectedInstance:V}):o.length?this.router.navigate(["/instances","view",o[0].id]):this.router.navigate(["/instances"])}}
1),ve(o=>{this.patchState({instances:o,isLoading:!1})}),Ce(()=>this.api.subscribe("virt.instance.query").pipe(ve(o=>this.processInstanceUpdateEvent(o)))),oi(o=>(this.patchState({isLoading:!1,instances:[]}),this.errorHandler.showErrorModal(o),z(void 0))),_o(this.destroySubscription$)))),y(this))))}processInstanceUpdateEvent(t){let e=this.instances();switch(t==null?void 0:t.msg){case bn.Added:this.patchState({instances:[...e,t.fields]});break;case bn.Changed:if(t.fields&&Object.keys(t.fields).length===1&&"status"in t.fields){let n=e.map(r=>r.name===t.id?_e(Y({},r),{status:t.fields.status}):r);this.patchState({instances:n})}this.patchState({instances:e.map(n=>n.id===t.id?Y(Y({},n),t==null?void 0:t.fields):n)});break;case bn.Removed:this.patchState({instances:e.filter(n=>n.id!==t.id)});break}}instanceUpdated(t){let e=this.instances().map(n=>t.id===n.id?t:n);this.patchState({instances:e})}selectInstance(t){this.patchState({selectedInstanceId:t});let e=this.instances(),n=e==null?void 0:e.find(o=>o.id===t);if(!(n!=null&&n.id)){this.resetInstance();return}let r=this.selectedInstance();!n||Po(n,r)||this.patchState({selectedInstance:n})}resetInstance(){this.patchState({selectedInstance:null})}},_t.\u0275fac=function(e){return new(e||_t)(et(N),et(H),et(lt))},_t.\u0275prov=Di({token:_t,factory:_t.\u0275fac}),_t);ee=Oa([T()],ee);var Va=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},Ra=i=>[i],Ea=()=>["/instances/new"];function Na(i,t){if(i&1){let e=B();p(0,"button",5),b("click",function(){P(e);let r=v();return k(r.onGlobalConfiguration())}),h(1),s(2,"translate"),m()}if(i&2){let e=v();d("ixUiSearch",e.searchableElements.elements.globalSettings),a(),g(" ",l(2,2,"Select Pool")," ")}}function ja(i,t){if(i&1){let e=B();p(0,"button",6),h(1),s(2,"translate"),_(3,"ix-icon",7),m(),p(4,"mat-menu",8,0)(6,"button",9),b("click",function(){P(e);let r=v();return k(r.onGlobalConfiguration())}),h(7),s(8,"translate"),m(),p(9,"button",10),b("click",function(){P(e);let r=v();return k(r.onManageVolumes())}),h(10),s(11,"translate"),m(),p(12,"button",11),b("click",function(){P(e);let r=v();return k(r.onMapUserGroupIds())}),h(13),s(14,"translate"),m()()}if(i&2){let e=He(5);d("matMenuTriggerFor",e),a(),g(" ",l(2,5,"Configuration")," "),a(6),g(" ",l(8,7,"Global Settings")," "),a(3),I(l(11,9,"Manage Volumes")),a(3),I(l(14,11,"Map User/Group IDs"))}}function Fa(i,t){if(i&1&&(p(0,"a",3),h(1),s(2,"translate"),m()),i&2){let e=v();d("routerLink",$(4,Ra,"/storage/datasets/"+e.config().dataset)),a(),I(l(2,2,"Go To Dataset"))}}function La(i,t){if(i&1&&(p(0,"a",4),h(1),s(2,"translate"),m()),i&2){let e=v();d("color",e.canAddNewInstances()?"primary":"default")("disabled",!e.canAddNewInstances())("routerLink",re(7,Ea))("ixUiSearch",e.searchableElements.elements.add),a(),I(l(2,5,"Create New Container"))}}var Bt,Nn=(Bt=class{constructor(t,e,n,r){this.slideIn=t,this.matDialog=e,this.configStore=n,this.instanceStore=r,this.state=this.configStore.virtualizationState,this.searchableElements=Dr,this.needToSetupPool=S(()=>this.state()===yt.NoPool),this.isLocked=S(()=>this.state()===yt.Locked),this.config=this.configStore.config,this.canAddNewInstances=S(()=>this.state()===yt.Initialized),this.hasCreateNewButton=S(()=>[yt.Initializing,yt.Initialized].includes(this.state()))}onGlobalConfiguration(){this.slideIn.open(wn,{data:this.config()}).pipe(y(this)).subscribe({next:()=>{this.instanceStore.initialize()}})}onManageVolumes(){this.matDialog.open(kt,{minWidth:"80vw"})}onMapUserGroupIds(){this.matDialog.open(Bn,{minWidth:"80vw"})}},Bt.\u0275fac=function(e){return new(e||Bt)(u(ui),u(Ve),u(ht),u(ee))},Bt.\u0275cmp=D({type:Bt,selectors:[["ix-all-instances-header"]],decls:5,vars:4,consts:[["menu","matMenu"],[1,"state-indicator",3,"state"],["mat-button","","ixTest","edit-global-settings","color","primary",3,"ixUiSearch"],["mat-button","","ixTest","go-to-dataset",3,"routerLink"],["mat-button","","ixTest","create-new-container",3,"color","disabled","routerLink","ixUiSearch"],["mat-button","","ixTest","edit-global-settings","color","primary",3,"click","ixUiSearch"],["mat-button","","ixTest","settings-menu",3,"matMenuTriggerFor"],["name","mdi-menu-down",1,"menu-caret"],["overlapTrigger","false"],["mat-menu-item","","ixTest","global-configuration",3,"click"],["mat-menu-item","","ixTest","manage-volumes",3,"click"],["mat-menu-item","","ixTest","map-u
1ser-group-ids",3,"click"]],template:function(e,n){if(e&1&&(_(0,"ix-virtualization-state",1),x(1,Na,3,4,"button",2)(2,ja,15,13)(3,Fa,3,6,"a",3)(4,La,3,8,"a",4)),e&2){let r;d("state",n.state()),a(),C(n.needToSetupPool()?1:2),a(2),C(n.isLocked()&&((r=n.config())!=null&&r.dataset)?3:-1),a(),C(n.hasCreateNewButton()?4:-1)}},dependencies:[M,w,A,R,mn,dn,Mr,ki,te,mt,ct,dt],styles:["[_nghost-%COMP%]{display:flex;flex-wrap:wrap;gap:8px}.state-indicator[_ngcontent-%COMP%]{margin-right:5px}\n/*# sourceMappingURL=all-instances-header.component-J6MUHNEN.css.map */"],changeDetection:0}),Bt);Nn=Va([T()],Nn);var Br={hierarchy:["Containers"],synonyms:["Instances","Incus","Containers"],anchorRouterLink:["/instances/view/def"],elements:{list:{hierarchy:["List"],synonyms:["Containers","Instances","Incus"],anchor:"containers-list"}}};var Or={hierarchy:["Containers"],synonyms:["Instances","Containers"],anchorRouterLink:["/instances/view/def"],elements:{generalInfo:{hierarchy:["General Info"],anchor:"general-info"},devices:{hierarchy:["Devices"],anchor:"devices"},disks:{hierarchy:["Disks"],anchor:"disks"},nic:{hierarchy:["NIC"],anchor:"nic"},proxies:{hierarchy:["Proxies"],anchor:"proxies"},tools:{hierarchy:["Tools"],anchor:"tools"},metrics:{hierarchy:["Metrics"],anchor:"metrics"}}};var Aa=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},Ua=()=>["close-instance-form"],Ha=()=>["devices-table"],za=i=>["select-device",i],qa=()=>["image-table-header"],Ga=i=>["image-table-row",i];function $a(i,t){i&1&&(p(0,"th",18),h(1),s(2,"translate"),m()),i&2&&(a(),I(l(2,1,"Type")))}function Wa(i,t){if(i&1&&(p(0,"td",19),h(1),s(2,"translate"),m()),i&2){let e=t.$implicit;a(),g(" ",e.controller_type||l(2,1,"Unknown")," ")}}function Za(i,t){i&1&&(p(0,"th",18),h(1),s(2,"translate"),m()),i&2&&(a(),I(l(2,1,"Device")))}function Ka(i,t){if(i&1&&(p(0,"td",19),h(1),m()),i&2){let e=t.$implicit;a(),I(e.description)}}function Qa(i,t){i&1&&_(0,"th",18)}function Ya(i,t){if(i&1){let e=B();p(0,"td",19)(1,"button",20),b("click",function(){let r=P(e).$implicit,o=v();return k(o.selectDevice(r))}),h(2),s(3,"translate"),m()()}if(i&2){let e=t.$implicit;a(),d("ixTest",$(4,za,e.description)),a(),g(" ",l(3,2,"Select")," ")}}function Ja(i,t){i&1&&_(0,"tr",21),i&2&&d("ixTest",re(1,qa))}function Xa(i,t){if(i&1&&_(0,"tr",22),i&2){let e=t.$implicit;d("ixTest",$(1,Ga,e))}}function es(i,t){if(i&1&&_(0,"ix-empty",17),i&2){let e=v();d("conf",e.emptyConfig())}}var Vr="UNKNOWN",Ot,Qi=(Ot=class{constructor(t,e,n,r,o,c){this.api=t,this.formBuilder=e,this.errorHandler=n,this.translate=r,this.dialogRef=o,this.options=c,this.columns=["type","device","actions"],this.filterForm=this.formBuilder.group({searchQuery:[""],type:[""]}),this.devices=L([]),this.filteredDevices=L([]),this.emptyConfig=L({type:nt.Loading,large:!0}),this.filterForm.valueChanges.pipe(y(this)).subscribe(()=>this.filterTable())}ngOnInit(){this.loadDevices()}loadDevices(){this.api.call("virt.device.pci_choices").pipe(X(t=>{let e=[],n=new Set;Object.entries(t).forEach(([r,o])=>{o.error||(n.add(o.controller_type),!this.options.existingDeviceAddresses.includes(r)&&e.push(_e(Y({},o),{address:r})))}),this.devices.set(e),this.typeOptions$=z(Array.from(n).map(r=>({label:r||this.translate.instant("Unknown"),value:r||Vr}))),this.filterTable()}),this.errorHandler.catchError(),y(this)).subscribe()}selectDevice(t){this.dialogRef.close([{label:t.description,value:t.address}])}filterTable(){let t=this.devices().filter(e=>{var o,c;let n=(o=this.filterForm.get("searchQuery"))==null?void 0:o.value.toLowerCase(),r=(c=this.filterForm.get("type"))==null?void 0:c.value;return n&&!e.description.toLowerCase().includes(n)?!1:r?r===Vr?e.controller_type===null:e.controller_type===r:!0});this.filteredDevices.set(t),t.length||this.emptyConfig.set({type:nt.NoSearchResults,large:!0,title:this.translate.instant("No devices found")})}},Ot.\u0275fac=function(e){return new(e||Ot)(u(N),u(Te),u(H),u(j),u(Oe),u(pt))},Ot.\u0275cmp=D({type:Ot,selectors:[["ix-pci-passthrough-dialog"]],decls:29,vars:25,consts:[[1,"header"],["mat-dialog-title",""],["mat-icon-button","","id","ix-close-icon",3,"click","keydown.enter","ixTest"],["name","cancel"],[3,"formGroup"],[3,"title"],["formControlName","searchQuery",3,"label"],["formControlName","type",3,"label","options"],[1,"table-wrapper"],["mat-table","",3,"dataSource","ixTest"],["matColumnDef","type"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","device"],["matColumnDef","actions"],["mat-header-row","",3,"ixTest",4,"matHeaderRowDef"],["mat-row","",3,"ixTest",4,"matRowDef","matRowDefColumns"],[3,"conf"],["mat-header-cell",""],["mat-cell",""],["mat-button","","type","button",3,"click","ixTest"],["mat-header-row","",3,"ixTest"],["mat-row","",3,"ixTest"]],template:function(e,n){e&1&&(p(0,"div",0)(1,"h1",1),h(2),s(3,"translate"),m(),p(4,"button",2),s(5,"translate"),b("click",function(){return n.dialogRef.close([])})("keydown.enter",function(){return n.dialogRef.close([])}),_(6,"ix-icon",3),m()(),p(7,"mat-dialog-content")(8,"form",4)(9,"ix-fieldset",5),s(10,"translate"),_(11,"ix-input",6),s(12,"translate"),_(13,"ix-select",7),s(14,"translate"),m(),p(15,"div",8)(16,"table",9),Ie(17,10),x(18,$a,3,3,"th",11)(19,Wa,3,3,"td",12),Se(),Ie(20,13),x(21,Za,3,3,"th",11)(22,Ka,2,1,"td",12),Se(),Ie(23,14),x(24,Qa,1,0,"th",11)(25,Ya,4,6,"td",12),Se(),x(26,Ja,1,2,"tr",15)(27,Xa,1,3,"tr",16),m(),x(28,es,1,1,"ix-empty",17),m()()()),e&2&&(a(2),I(l(3,13,"Add PCI Passthrough Device")),a(2),d("ixTest",re(23,Ua)),Qe("aria-label",l(5,15,"Close Instance Form")),a(4),d("formGroup",n.filterForm),a(),d("title",l(10,17,"Filters")),a(2),d("label",l(12,19,"Search Devices")),a(2),d("label",l(14,21,"Type"))("options",n.typeOptions$),a(3),d("dataSource",n.filteredDevices())("ixTest",re(24,Ha)),a(10),d("matHeaderRowDef",n.columns),a(),d("matRowDefColumns",n.columns),a(),C(n.filteredDevices().length?-1:28))},dependencies:[te,Re,ze,M,w,R,hi,li,pe,K,le,Ge,ye,Fe,A,Ai,Ni,Fi,ci,Li,zi,Ui,qi,Hi,Ei,Q,ce,me,ji],styles:["@media (max-width: 960px){[_nghost-%COMP%]     .table-wrapper{overflow:auto}}[_nghost-%COMP%]     .table-wrapper table thead{position:-webkit-sticky;position:sticky;top:0;z-index:2}[_nghost-%COMP%]     .table-wrapper tr td{line-height:22px}[_nghost-%COMP%]     ix-fieldset fieldset{padding:0}@media (min-width: 960px){[_nghost-%COMP%]     ix-fieldset fieldset{padding:0 15px 0 0;position:-webkit-sticky;position:sticky;top:0}}[_nghost-%COMP%]   .header[_ngcontent-%COMP%]{align-items:center;display:flex;justify-content:space-between}[_nghost-%COMP%]   .header[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{margin-bottom:0;padding-top:20px}[_nghost-%COMP%]   .header[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{margin-right:20px}[_nghost-%COMP%]   form[_ngcontent-%COMP%]{align-items:flex-start;display:grid;grid-template-columns:250px 1fr;height:60vh;margin-bottom:20px;overflow:auto}@media (max-width: 1280px){[_nghost-%COMP%]   form[_ngcontent-%COMP%]{grid-template-columns:200px 1fr}}@media (max-width: 960px){[_nghost-%COMP%]   form[_ngcontent-%COMP%]{display:block}}[_nghost-%COMP%]   form[_ngcontent-%COMP%]   ix-fieldset[_ngcontent-%COMP%]{border-right:1px solid var(--lines);height:100%}[_nghost-%COMP%]   tr[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:last-child{text-align:right}\n/*# sourceMappingURL=pci-passthrough-dialog.component-HDBGKDNU.css.map */"],changeDetection:0}),Ot);Qi=Aa([T()],Qi);var ts=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},Rr={isLoading:!1,devices:[]},vt,Pe=(vt=class extends Pi{constructor(t,e,n){super(Rr),this.api=t,this.errorHandler=e,this.instanceStore=n,this.stateAsSignal=Me(this.state$,{initialValue:Rr}),this.isLoading=S(()=>this.stateAsSignal().isLoading),this.devices=S(()=>this.stateAsSignal().devices),this.selectedInstance=this.instanceStore.selectedInstance,this.loadDevices=this.effect(r=>r.pipe(Ce(()=>(this.patchState({isLoading:!0}),this.api.call("virt.instance.device_list",[this.selectedInstance().id]).pipe(ve(o=>{this.patchState({devices:o,isLoading:!1})}),oi(o=>(this.patchState({isLoading:!1,devices:[]}),this.errorHandler.showErrorModal(o),rn))))))),ai(this.selectedInstance).pipe(ve(r=>{r||this.patchState({devices:[]})}),G(Boolean),ve(()=>this.loadDevices())).pipe(y(this)).subscribe()}deviceDeleted(t){let e=this.devices().filter(n=>n.name!==t);this.patchState({devices:e})}},vt.\u0275fac=function(e){return new(e||vt)(et(N),et(H),et(ee))},vt.\u0275prov=Di({token:vt,factory:vt.\u0275fac}),vt);
1Pe=ts([T()],Pe);var is=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},ns=(i,t)=>t.product_id,os=(i,t)=>t.key,rs=i=>["add-usb-device",i],as=i=>["add-gpu-device",i],ss=()=>["add-tpm"],ls=()=>["add-pci-passthrough"];function ps(i,t){i&1&&_(0,"ngx-skeleton-loader",1)}function cs(i,t){if(i&1){let e=B();p(0,"button",5),b("click",function(){let r=P(e).$implicit,o=v(3);return k(o.addUsb(r))}),h(1),m()}if(i&2){let e=t.$implicit;d("ixTest",$(2,rs,e.product)),a(),g(" ",e.product," ")}}function ms(i,t){if(i&1&&(p(0,"h4",3),h(1),s(2,"translate"),m(),ne(3,cs,2,4,"button",4,ns)),i&2){let e=v(2);a(),I(l(2,1,"USB Devices")),a(2),oe(e.availableUsbDevices())}}function ds(i,t){if(i&1){let e=B();p(0,"button",5),b("click",function(){let r=P(e).$implicit,o=v(3);return k(o.addGpu(r.key))}),h(1),m()}if(i&2){let e=t.$implicit;d("ixTest",$(2,as,e.value.description)),a(),g(" ",e.value.description," ")}}function us(i,t){if(i&1&&(p(0,"h4",3),h(1),s(2,"translate"),m(),ne(3,ds,2,4,"button",4,os)),i&2){v();let e=ln(6);a(),I(l(2,1,"GPUs")),a(2),oe(e)}}function fs(i,t){if(i&1){let e=B();p(0,"h4",3),h(1,"TPM"),m(),p(2,"button",6),s(3,"translate"),b("click",function(){P(e);let r=v(2);return k(r.addTpm())}),h(4),s(5,"translate"),m()}if(i&2){let e=v(2);a(2),d("ixTest",re(8,ss))("matTooltip",e.isInstanceStopped()?"":l(3,4,"Instance must be stopped to add TPM."))("disabled",!e.isInstanceStopped()),a(2),g(" ",l(5,6,"Add Trusted Platform Module")," ")}}function hs(i,t){if(i&1){let e=B();p(0,"h4",3),h(1),s(2,"translate"),m(),p(3,"button",6),s(4,"translate"),b("click",function(){P(e);let r=v(2);return k(r.addPciPassthrough())}),h(5),s(6,"translate"),m()}if(i&2){let e=v(2);a(),I(l(2,5,"PCI Passthrough")),a(2),d("ixTest",re(11,ls))("matTooltip",e.isInstanceStopped()?"":l(4,7,"Instance must be stopped to add devices."))("disabled",!e.isInstanceStopped()),a(2),g(" ",l(6,9,"Add Device")," ")}}function _s(i,t){if(i&1&&(p(0,"button",2),h(1),s(2,"translate"),m(),p(3,"mat-menu",null,0),x(5,ms,5,3),bi(6),s(7,"keyvalue"),x(8,us,5,3)(9,fs,6,9)(10,hs,7,12),m()),i&2){let e=He(4),n=v();d("matMenuTriggerFor",e),a(),g(" ",l(2,6,"Add")," "),a(4),C(n.availableUsbDevices().length?5:-1),a();let r=sn(l(7,8,n.availableGpuDevices()));a(2),C(r.length?8:-1),a(),C(n.canAddTpm()?9:-1),a(),C(n.isVm()?10:-1)}}var Vt,jn=(Vt=class{constructor(t,e,n,r,o,c,f,V){this.api=t,this.errorHandler=e,this.loader=n,this.snackbar=r,this.translate=o,this.instancesStore=c,this.deviceStore=f,this.matDialog=V,this.usbChoices=Me(this.api.call("virt.device.usb_choices"),{initialValue:{}}),this.gpuChoices=Me(this.api.call("virt.device.gpu_choices",[Gi.Physical]),{initialValue:{}}),this.isLoadingDevices=this.deviceStore.isLoading,this.availableUsbDevices=S(()=>{let O=Object.values(this.usbChoices()),ae=this.deviceStore.devices().filter(Le=>Le.dev_type===E.Usb);return O.filter(Le=>!ae.find(se=>se.product_id===Le.product_id))}),this.availableGpuDevices=S(()=>{let O=this.gpuChoices(),ae=this.deviceStore.devices().filter(Le=>Le.dev_type===E.Gpu);return ko(O,(Le,se)=>!ae.find(xe=>xe.pci===se))}),this.canAddTpm=S(()=>!this.deviceStore.devices().some(O=>O.dev_type===E.Tpm)),this.isInstanceStopped=S(()=>this.instancesStore.selectedInstance().status===ie.Stopped),this.hasDevicesToAdd=S(()=>this.availableUsbDevices().length>0||Object.keys(this.availableGpuDevices()).length>0||this.canAddTpm()),this.isVm=S(()=>{var O;return((O=this.instancesStore.selectedInstance())==null?void 0:O.type)===J.Vm})}addUsb(t){this.addDevice({dev_type:E.Usb,product_id:t.product_id})}addGpu(t){this.addDevice({dev_type:E.Gpu,pci:t})}addTpm(){this.addDevice({dev_type:E.Tpm})}addPciPassthrough(){let t=this.deviceStore.devices().filter(e=>e.dev_type===E.Pci).map(e=>e.address);this.matDialog.open(Qi,{minWidth:"90vw",data:{existingDeviceAddresses:t}}).afterClosed().pipe(y(this)).subscribe(e=>{e!=null&&e.length&&this.addDevice({dev_type:E.Pci,address:e[0].value})})}addDevice(t){var n;let e=(n=this.instancesStore.selectedInstance())==null?void 0:n.id;e&&this.api.call("virt.instance.device_add",[e,t]).pipe(this.loader.withLoader(),this.errorHandler.catchError(),y(this)).subscribe(()=>{this.snackbar.success(this.translate.instant("Device was added")),this.deviceStore.loadDevices()})}},Vt.\u0275fac=function(e){return new(e||Vt)(u(N),u(H),u($e),u(Z),u(j),u(ee),u(Pe),u(Ve))},Vt.\u0275cmp=D({type:Vt,selectors:[["ix-add-device-menu"]],decls:2,vars:1,consts:[["addDeviceMenu","matMenu"],[1,"loader"],["mat-button","","ixTest","add-device",3,"disabled","matMenuTriggerFor"],[1,"menu-header"],["mat-menu-item","",3,"ixTest"],["mat-menu-item","",3,"click","ixTest"],["mat-menu-item","",3,"click","ixTest","matTooltip","disabled"]],template:function(e,n){e&1&&x(0,ps,1,0,"ngx-skeleton-loader",1)(1,_s,11,11),e&2&&C(n.isLoadingDevices()?0:n.hasDevicesToAdd()?1:-1)},dependencies:[A,mt,ct,R,M,w,dt,Be,ke,cn,Ee],styles:[".menu-header[_ngcontent-%COMP%]{border-bottom:1px solid var(--lines);font-size:12px;margin-top:12px;padding-bottom:6px;padding-left:15px}[_nghost-%COMP%]   .loader[_ngcontent-%COMP%]{display:block;flex:unset;width:80px}[_nghost-%COMP%]   .loader[_ngcontent-%COMP%]     .loader{margin-bottom:-6px}\n/*# sourceMappingURL=add-device-menu.component-RJOHAJMI.css.map */"],changeDetection:0}),Vt);jn=is([T()],jn);function Yi(i,t){if(t.dev_type===E.Tpm)return i.instant("Trusted Platform Module (TPM)");let e=i.instant(Sr.get(t.dev_type)||t.dev_type);return t.dev_type===E.Nic?"".concat(e,": ").concat(t.name," (").concat(t.nic_type,")"):"".concat(e,": ").concat(t.description)}var vs=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},gs=i=>["actions-for",i],xs=i=>({device:i}),Cs=i=>["delete",i],bs=i=>["edit",i];function ys(i,t){if(i&1){let e=B();p(0,"button",5),b("click",function(){P(e);let r=v();return k(r.edit.emit())}),h(1),s(2,"translate"),m()}if(i&2){let e=v();d("ixTest",$(4,bs,e.device().description)),a(),I(l(2,2,"Edit"))}}var Rt,gt=(Rt=class{constructor(t,e,n,r,o,c,f,V){this.dialog=t,this.api=e,this.errorHandler=n,this.translate=r,this.instancesStore=o,this.snackbar=c,this.deviceStore=f,this.loader=V,this.device=q.required(),this.showEdit=q(!0),this.isDisabled=q(!1),this.edit=Ke(),this.canManage=S(()=>
1!this.manageRestrictedExplanation()&&!this.isDisabled()),this.manageRestrictedExplanation=S(()=>{if(this.device().readonly)return this.translate.instant("This device is read-only and cannot be edited.");let O=this.instancesStore.selectedInstance().status===ie.Stopped;return this.device().dev_type===E.Tpm&&!O?this.translate.instant("This device cannot be edited while the instance is running."):null})}deletePressed(){this.dialog.confirm({message:this.translate.instant("Are you sure you want to delete {item}?",{item:Yi(this.translate,this.device())}),title:this.translate.instant("Delete Item")}).pipe(Ce(t=>t?this.deleteDevice():rn),y(this)).subscribe()}deleteDevice(){var e;let t=(e=this.instancesStore.selectedInstance())==null?void 0:e.id;return t?this.api.call("virt.instance.device_delete",[t,this.device().name]).pipe(this.loader.withLoader(),this.errorHandler.catchError(),ve(()=>{this.snackbar.success(this.translate.instant("Device deleted")),this.deviceStore.deviceDeleted(this.device().name)})):uo}},Rt.\u0275fac=function(e){return new(e||Rt)(u(ue),u(N),u(H),u(j),u(ee),u(Z),u(Pe),u($e))},Rt.\u0275cmp=D({type:Rt,selectors:[["ix-device-actions-menu"]],inputs:{device:[1,"device"],showEdit:[1,"showEdit"],isDisabled:[1,"isDisabled"]},outputs:{edit:"edit"},decls:10,vars:22,consts:[["menu","matMenu"],[3,"matTooltip"],["mat-icon-button","","type","button",3,"ixTest","matMenuTriggerFor","disabled"],["name","more_vert"],["mat-menu-item","","type","button",3,"ixTest"],["mat-menu-item","","type","button",3,"click","ixTest"]],template:function(e,n){if(e&1){let r=B();p(0,"div",1)(1,"button",2),s(2,"translate"),_(3,"ix-icon",3),m()(),p(4,"mat-menu",null,0),x(6,ys,3,6,"button",4),p(7,"button",5),b("click",function(){return P(r),k(n.deletePressed())}),h(8),s(9,"translate"),m()()}if(e&2){let r=He(5);d("matTooltip",n.canManage()?"":n.manageRestrictedExplanation()),a(),st("disabled",!n.canManage()),d("ixTest",$(16,gs,n.device().description))("matMenuTriggerFor",r)("disabled",!n.canManage()),Qe("tabindex",n.canManage()?0:-1)("aria-label",it(2,11,"Actions for {device}",$(18,xs,n.device().description))),a(5),C(n.showEdit()?6:-1),a(),d("ixTest",$(20,Cs,n.device().description)),a(),I(l(9,14,"Delete"))}},dependencies:[M,w,R,te,ze,Ee,mt,dt,ct],styles:[".disabled[_ngcontent-%COMP%]{color:var(--fg2);cursor:not-allowed;opacity:.5}.delete-button[_ngcontent-%COMP%]{opacity:.6}.delete-button[_ngcontent-%COMP%]:focus, .delete-button[_ngcontent-%COMP%]:hover{opacity:1}.delete-button[_ngcontent-%COMP%]   ix-icon[_ngcontent-%COMP%]{height:20px;width:20px}\n/*# sourceMappingURL=device-actions-menu.component-HISDXHLB.css.map */"],changeDetection:0}),Rt);gt=vs([T()],gt);var Is=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},Ss=(i,t)=>t.name;function Ds(i,t){i&1&&_(0,"ngx-skeleton-loader")}function Ms(i,t){if(i&1&&(p(0,"div",2)(1,"span"),h(2),m(),_(3,"ix-device-actions-menu",3),m()),i&2){let e=t.$implicit,n=v(2);a(2),I(n.getDeviceDescription(e)),a(),d("device",e)("showEdit",!1)}}function Ts(i,t){i&1&&(h(0),s(1,"translate")),i&2&&g(" ",l(1,1,"No devices added.")," ")}function ws(i,t){if(i&1&&ne(0,Ms,4,3,"div",2,Ss,!1,Ts,2,3),i&2){let e=v();oe(e.shownDevices())}}var Et,Fn=(Et=class{constructor(t,e){this.deviceStore=t,this.translate=e,this.isLoadingDevices=this.deviceStore.isLoading,this.shownDevices=S(()=>this.deviceStore.devices().filter(n=>[E.Usb,E.Gpu,E.Tpm,E.Pci].includes(n.dev_type)))}getDeviceDescription(t){return Yi(this.translate,t)}},Et.\u0275fac=function(e){return new(e||Et)(u(Pe),u(j))},Et.\u0275cmp=D({type:Et,selectors:[["ix-instance-devices"]],decls:9,vars:4,consts:[[1,"card"],["mat-card-title",""],[1,"device"],[3,"device","showEdit"]],template:function(e,n){e&1&&(p(0,"mat-card",0)(1,"mat-card-header")(2,"h3",1),h(3),s(4,"translate"),m(),_(5,"ix-add-device-menu"),m(),p(6,"mat-card-content"),x(7,Ds,1,0,"ngx-skeleton-loader")(8,ws,3,1),m()()),e&2&&(a(3),g(" ",l(4,2,"Devices")," "),a(4),C(n.isLoadingDevices()?7:8))},dependencies:[fe,Ne,M,w,he,Be,ke,gt,jn],styles:[".device[_ngcontent-%COMP%]{align-items:center;display:flex;justify-content:space-between}\n/*# sourceMappingURL=instance-devices.component-SSAXLOAE.css.map */"],changeDetection:0}),Et);Fn=Is([T()],Fn);var Ps=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},Nt,Ln=(Nt=class{constructor(t,e,n,r,o,c,f,V,O){this.instance=t,this.formBuilder=e,this.errorHandler=n,this.dialogService=r,this.api=o,this.translate=c,this.snackbar=f,this.dialogRef=V,this.formatter=O,this.form=this.formBuilder.group({size:[0],root_disk_io_bus:[ot.Nvme]}),this.diskIoBusOptions$=z(Ct(vi,this.translate)),this.containersHelptext=De,this.form.setValue({size:Number(this.instance.root_disk_size)/1073741824,root_disk_io_bus:this.instance.root_disk_io_bus}),this.form.controls.size.addValidators(F.min(this.instance.root_disk_size/1073741824))}onSubmit(){let t={root_disk_size:this.form.value.size,root_disk_io_bus:this.form.value.root_disk_io_bus};if(t.root_disk_size===Number(this.instance.root_disk_size)/1073741824&&delete t.root_disk_size,t.root_disk_io_bus===this.instance.root_disk_io_bus&&delete t.root_disk_io_bus,!Object.keys(t).length){this.dialogRef.close();return}
1this.dialogService.jobDialog(this.api.job("virt.instance.update",[this.instance.id,t]),{title:this.translate.instant("Increasing disk size")}).afterClosed().pipe(this.errorHandler.catchError(),y(this)).subscribe(()=>{this.dialogRef.close(this.form.value.size),this.snackbar.success(this.translate.instant("Disk size increased"))})}},Nt.\u0275fac=function(e){return new(e||Nt)(u(pt),u(si),u(H),u(ue),u(N),u(j),u(Z),u(Oe),u(Xe))},Nt.\u0275cmp=D({type:Nt,selectors:[["ix-change-root-disk-setup"]],decls:16,vars:23,consts:[["matDialogTitle",""],[1,"ix-form-container",3,"submit","formGroup"],["type","number","formControlName","size",3,"label","required"],["formControlName","root_disk_io_bus",3,"label","tooltip","required","options"],["mat-button","","type","button","ixTest","cancel","matDialogClose",""],["mat-button","","color","primary","type","submit","ixTest","save",3,"disabled"]],template:function(e,n){e&1&&(p(0,"h1",0),h(1),s(2,"translate"),m(),p(3,"form",1),b("submit",function(){return n.onSubmit()}),_(4,"ix-input",2),s(5,"translate"),_(6,"ix-select",3),s(7,"translate"),s(8,"translate"),p(9,"ix-form-actions")(10,"button",4),h(11),s(12,"translate"),m(),p(13,"button",5),h(14),s(15,"translate"),m()()()),e&2&&(a(),g(" ",l(2,11,"Change Root Disk Setup"),"\n"),a(2),d("formGroup",n.form),a(),d("label",l(5,13,"Root Disk Size (in GiB)"))("required",!0),a(2),d("label",l(7,15,"Root Disk I/O Bus"))("tooltip",l(8,17,n.containersHelptext.io_bus_tooltip))("required",!0)("options",n.diskIoBusOptions$),a(5),g(" ",l(12,19,"Cancel")," "),a(2),d("disabled",n.form.invalid),a(),g(" ",l(15,21,"Save")," "))},dependencies:[ye,A,pi,Re,Q,pe,K,le,be,ce,me,R,M,w,Fe,qe],styles:["[_nghost-%COMP%]{display:block;width:350px}\n/*# sourceMappingURL=change-root-disk-setup.component-Q5P4WM2R.css.map */"],changeDetection:0}),Nt);Ln=Ps([T()],Ln);var ks=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o};function Bs(i,t){if(i&1){let e=B();p(0,"div",6),_(1,"ix-input",7),s(2,"translate"),p(3,"button",8),b("click",function(){P(e);let r=v();return k(r.onSelectVolume())}),h(4),s(5,"translate"),m()(),_(6,"ix-input",9),s(7,"translate"),s(8,"translate")}if(i&2){let e=v();a(),d("readonly",!0)("label",l(2,7,"Volume"))("required",!0),a(3),I(l(5,9,"Select Volume")),a(2),d("label",l(7,11,"Boot Priority"))("required",!0)("tooltip",l(8,13,e.instancesHelptext.bootPriorityHint))}}function Os(i,t){if(i&1&&(_(0,"ix-explorer",2),s(1,"translate")),i&2){let e=v();d("label",l(1,4,"Source"))("required",!0)("nodeProvider",e.datasetProvider)("canCreateDataset",e.isNew())}}function Vs(i,t){if(i&1&&(_(0,"ix-select",3),s(1,"translate")),i&2){let e=v();d("label",l(1,3,"I/O Bus"))("required",!0)("options",e.diskIoBusOptions$)}}function Rs(i,t){i&1&&(_(0,"ix-input",4),s(1,"translate")),i&2&&d("label",l(1,2,"Destination"))("required",!0)}var jt,An=(jt=class{get instance(){return this.slideInRef.getData().instance}get isVm(){return this.instance.type===J.Vm}constructor(t,e,n,r,o,c,f,V){this.formBuilder=t,this.errorHandler=e,this.api=n,this.translate=r,this.snackbar=o,this.matDialog=c,this.filesystem=f,this.slideInRef=V,this.existingDisk=L(null),this.diskIoBusOptions$=z(Ct(vi,this.translate)),this.isLoading=L(!1),this.datasetProvider=this.filesystem.getFilesystemNodeProvider({datasetsOnly:!0}),this.form=this.formBuilder.nonNullable.group({source:["",F.required],destination:["",F.required],io_bus:[ot.Nvme,F.required],boot_priority:[1]}),this.isNew=S(()=>!this.existingDisk()),this.title=S(()=>this.isNew()?this.translate.instant("Add Disk"):this.translate.instant("Edit Disk")),this.instancesHelptext=De,this.slideInRef.requireConfirmationWhen(()=>z(this.form.dirty))}ngOnInit(){var e;let t=(e=this.slideInRef.getData())==null?void 0:e.disk;t&&(this.existingDisk.set(t),this.form.patchValue({source:t.source||"",destination:t.destination||"",io_bus:t.io_bus||null,boot_priority:t.boot_priority||void 0})),this.isVm?this.form.controls.destination.disable():(this.form.controls.boot_priority.disable(),this.form.controls.io_bus.disable())}onSelectVolume(){this.matDialog.open(kt,{minWidth:"90vw",data:{selectionMode:!0}}).afterClosed().pipe(G(Boolean),y(this)).subscribe(t=>{this.form.patchValue({source:t.id})})}onSubmit(){this.isLoading.set(!0),this.prepareRequest().pipe(y(this)).subscribe({complete:()=>{this.snackbar.success(this.translate.instant("Disk saved")),this.slideInRef.close({error:!1,response:!0}),this.isLoading.set(!1)},error:t=>{this.errorHandler.handleValidationErrors(t,this.form),this.isLoading.set(!1)}})}prepareRequest(){let t=_e(Y({},this.form.value),{dev_type:E.Disk}),e=this.existingDisk();return e?this.api.call("virt.instance.device_update",[this.instance.id,_e(Y({},t),{name:e.name})]):this.api.call("virt.instance.device_add",[this.instance.id,t])}},jt.\u0275fac=function(e){return new(e||jt)(u(Te),u(mi),u(N),u(j),u(Z),u(Ve),u(Ri),u(fi))},jt.\u0275cmp=D({type:jt,selectors:[["ix-instance-disk-form"]],decls:13,vars:10,consts:[[3,"title","loading"],[1,"ix-form-container",3,"submit","formGroup"],["formControlName","source","root","/",3,"label","required","nodeProvider","canCreateDataset"],["formControlName","io_bus",3,"label","required","options"],["formControlName","destination",3,"label","required"],["mat-button","","type","submit","color","primary","ixTest","save",3,"disabled"],[1,"image-field"],["formControlName","source",1,"input",3,"readonly","label","required"],["mat-button","","ixTest","browse-isos","type","button",3,"click"],["type","number","formControlName","boot_priority",3,"label","required","tooltip"]],template:function(e,n){e&1&&(_(0,"ix-modal-header",0),p(1,"mat-card")(2,"mat-card-content")(3,"form",1),b("submit",function(){return n.onSubmit()}),p(4,"ix-fieldset"),x(5,Bs,9,15)(6,Os,2,6,"ix-explorer",2)(7,Vs,2,5,"ix-select",3)(8,Rs,2,4,"ix-input",4),m(),p(9,"ix-form-actions")(10,"button",5),h(11),s(12,"translate"),m()()()()()),e&2&&(d("title",n.title())("loading",n.isLoading()),a(3),d("formGroup",n.form),a(2),C(n.isVm?5:6),a(2),C(n.form.controls.io_bus.enabled?7:-1),a(),C(n.form.controls.destination.enabled?8:-1),a(2),d("disabled",n.form.invali
1d||n.isLoading()),a(),g(" ",l(12,8,"Save")," "))},dependencies:[Vi,ye,Q,pe,K,le,be,ce,me,M,w,fe,he,_i,Ge,qe,A,Fe,R],styles:[".image-field[_ngcontent-%COMP%]{align-items:flex-start;display:flex;gap:10px}.image-field[_ngcontent-%COMP%]   .input[_ngcontent-%COMP%]{flex:1}.image-field[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{margin-top:43px}\n/*# sourceMappingURL=instance-disk-form.component-VAS2N6JI.css.map */"],changeDetection:0}),jt);An=ks([T()],An);var Es=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},Ns=(i,t)=>t.name;function js(i,t){if(i&1&&(h(0),s(1,"mapValue")),i&2){let e=v(2);g(" (",it(1,1,e.instance().root_disk_io_bus,e.diskIoBusLabels),") ")}}function Fs(i,t){if(i&1){let e=B();p(0,"div",3)(1,"span",4),h(2),s(3,"translate"),m(),p(4,"span",5),h(5),s(6,"ixFileSize"),x(7,js,2,4),m(),p(8,"span",6)(9,"a",7),b("keydown.enter",function(){P(e);let r=v();return k(r.showRootDiskIncreaseDialog())})("click",function(){P(e);let r=v();return k(r.showRootDiskIncreaseDialog())}),h(10),s(11,"translate"),m()()()}if(i&2){let e=v();a(2),g("",l(3,9,"Root Disk"),":"),a(3),g(" ",l(6,11,+e.instance().root_disk_size)," "),a(2),C(e.instance().root_disk_io_bus?7:-1),a(),d("matTooltip",e.disksDisabledMessage)("matTooltipDisabled",!e.isVmRunning()||e.isContainer()),a(),st("disabled",e.isVmRunning()),Qe("tabindex",e.isVmRunning()?-1:0),a(),g(" ",l(11,13,"Change")," ")}}function Ls(i,t){i&1&&_(0,"ngx-skeleton-loader")}function As(i,t){if(i&1&&(p(0,"div"),h(1),m()),i&2){let e=v().$implicit;a(),Ci("",e.source," \u2192 ",e.destination,"")}}function Us(i,t){if(i&1&&(h(0),s(1,"mapValue")),i&2){let e=v(2).$implicit,n=v(2);g(" (",it(1,1,e.io_bus,n.diskIoBusLabels),") ")}}function Hs(i,t){if(i&1&&(p(0,"div"),h(1),x(2,Us,2,4),m()),i&2){let e=v().$implicit,n=v(2);a(),g(" ",e.source," "),a(),C(n.isVm()?2:-1)}}function zs(i,t){if(i&1){let e=B();p(0,"div",8),x(1,As,2,2,"div")(2,Hs,3,2,"div"),p(3,"div",9)(4,"ix-device-actions-menu",10),b("edit",function(){let r=P(e).$implicit,o=v(2);return k(o.editDisk(r))}),m()()()}if(i&2){let e=t.$implicit,n=v(2);a(),C(e.destination?1:2),a(2),d("matTooltip",n.disksDisabledMessage)("matTooltipDisabled",!n.isVmRunning()||n.isContainer()),a(),d("isDisabled",n.isVmRunning())("device",e)}}function qs(i,t){i&1&&(h(0),s(1,"translate")),i&2&&g(" ",l(1,1,"No disks added.")," ")}function Gs(i,t){if(i&1&&x(0,qs,2,3),i&2){let e=v(2);C(e.instance().root_disk_size?-1:0)}}function $s(i,t){if(i&1&&ne(0,zs,5,5,"div",8,Ns,!1,Gs,1,1),i&2){let e=v();oe(e.visibleDisks())}}var Ft,Un=(Ft=class{constructor(t,e,n,r,o){this.slideIn=t,this.matDialog=e,this.translate=n,this.deviceStore=r,this.instanceStore=o,this.instance=q.required(),this.isLoadingDevices=this.deviceStore.isLoading,this.diskIoBusLabels=vi,this.disksDisabledMessage=this.translate.instant("VM disks cannot be managed while the instance is running."),this.isVmRunning=S(()=>this.instance().status===ie.Running&&this.instance().type===J.Vm),this.isVm=S(()=>this.instance().type===J.Vm),this.isContainer=S(()=>this.instance().type===J.Container),this.visibleDisks=S(()=>this.deviceStore.devices().filter(c=>c.dev_type===E.Disk).filter(c=>c.source))}addDisk(){this.openDiskForm()}editDisk(t){this.openDiskForm(t)}showRootDiskIncreaseDialog(){this.matDialog.open(Ln,{data:this.instance()}).afterClosed().pipe(G(Boolean),y(this)).subscribe(t=>this.instanceStore.instanceUpdated(_e(Y({},this.instance()),{root_disk_size:t*1073741824})))}openDiskForm(t){this.slideIn.open(An,{data:{disk:t,instance:this.instance()}}).pipe(G(e=>!!e.response),y(this)).subscribe(()=>this.deviceStore.loadDevices())}},Ft.\u0275fac=function(e){return new(e||Ft)(u(ui),u(Ve),u(j),u(Pe),u(ee))},Ft.\u0275cmp=D({type:Ft,selectors:[["ix-instance-disks"]],inputs:{instance:[1,"instance"]},decls:12,vars:11,consts:[[1,"card"],["mat-card-title",""],["mat-button","","ixTest","add-disk",3,"click","matTooltip","matTooltipDisabled","disabled"],[1,"root-disk-size"],[1,"label"],[1,"value"],[1,"action",3,"matTooltip","matTooltipDisabled"],["ixTest","change-disk-setup",3,"keydown.enter","click"],[1,"disk"],[3,"matTooltip","matTooltipDisabled"],[3,"edit","isDisabled","device"]],template:function(e,n){e&1&&(p(0,"mat-card",0)(1,"mat-card-header")(2,"h3",1),h(3),s(4,"translate"),m(),p(5,"button",2),b("click",function(){return n.addDisk()}),h(6),s(7,"translate"),m()(),p(8,"mat-card-content"),x(9,Fs,12,15,"div",3)(10,Ls,1,0,"ngx-skeleton-loader")(11,$s,3,1),m()()),e&2&&(a(3),g(" ",l(4,7,"Disks")," "),a(2),d("matTooltip",n.disksDisabledMessage)("matTooltipDisabled",!n.isVmRunning()||n.isContainer())("disabled",n.isVmRunning()),a(),g(" ",l(7,9,"Add")," "),a(3),C(n.isVm()&&n.instance().root_disk_size?9:-1),a(),C(n.isLoadingDevices()?10:11))},dependencies:[A,fe,he,Ne,Ye,Be,ke,R,M,w,gt,Ko,Ee,Bi],styles:[".disk[_ngcontent-%COMP%]{align-items:center;display:flex;justify-content:space-between}.root-disk-size[_ngcontent-%COMP%]{display:flex;margin-bottom:6px}.root-disk-size[_ngcontent-%COMP%]   .action[_ngcontent-%COMP%]{color:var(--primary);margin-left:auto;text-decoration:underline}.root-disk-size[_ngcontent-%COMP%]   .action[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{cursor:pointer}.root-disk-size[_ngcontent-%COMP%]   .action[_ngcontent-%COMP%]   a.disabled[_ngcontent-%COMP%]{cursor:not-allowed;opacity:var(--disabled-opacity);pointer-events:none}.label[_ngcontent-%COMP%]{font-weight:700;margin-right:2px}\n/*# sourceMappingURL=instance-disks.component-T4T26IIK.css.map */"],changeDetection:0}),Ft);Un=Es([T()],Un);function Ji(){return i=>{let t=i.value;if(!t)return null;if(!/^(\d+|\d+-\d+)(,(\d+|\d+-\d+))*$/.test(t))return{cpu:!0};let n=t.split(",").map(r=>r.split("-").map(Number));for(let r of n)if(r.length===2&&r[0]>r[1])return{cpu:!0};return null}}var Ws=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o};function Zs(i,t){i&1&&(_(0,"ix-input",11),s(1,"translate"),_(2,"ix-input",12),s(3,"translate"),s(4,"translate")),i&2&&(d("label",l(1,4,"VNC Port"))("required",!0),a(2),d("label",l(3,6,"VNC Password"))("hint",l(4,8,"VNC password is not cryptographically secure. You should not rely on it as a single authentication mechanism for your VMs.")))}function Ks(i,t){if(i&1&&(p(0,"ix-fieldset",3),s(1,"translate"),p(2,"div",9),s(3,"translate"),_(4,"ix-checkbox",10),s(5,"translate"),x(6,Zs,5,10),m()()),i&2){let e=v();d("title",l(1,4,"VNC")),a(2),d("matTooltip",e.isStopped?"":l(3,6,"Instance must be stopped to update VNC.")),a(2),d("label",l(5,8,"Enable VNC")),a(2),C(e.form.getRawValue().enable_vnc?6:-1)}}function Qs(i,t){if(i&1){let e=B();
1p(0,"ix-list-item",15),s(1,"translate"),b("delete",function(){let r=P(e).$index,o=v(2);return k(o.removeEnvironmentVariable(r))}),p(2,"div",16),_(3,"ix-input",17),s(4,"translate"),_(5,"ix-input",18),s(6,"translate"),m()()}if(i&2){let e=t.$index;d("formGroupName",e)("label",l(1,6,"Environment Variable")),a(3),d("label",l(4,8,"Name"))("required",!0),a(2),d("label",l(6,10,"Value"))("required",!0)}}function Ys(i,t){if(i&1){let e=B();p(0,"ix-fieldset",3),s(1,"translate"),p(2,"ix-list",13),s(3,"translate"),b("add",function(){P(e);let r=v();return k(r.addEnvironmentVariable())}),ne(4,Qs,7,12,"ix-list-item",14,tt),m()()}if(i&2){let e=v();d("title",l(1,3,"Environment")),a(2),d("empty",e.form.controls.environmentVariables.controls.length===0)("label",l(3,5,"Environment Variables")),a(2),oe(e.form.controls.environmentVariables.controls)}}function Js(i,t){if(i&1&&(p(0,"ix-fieldset",3),s(1,"translate"),_(2,"ix-checkbox",19),s(3,"translate"),s(4,"translate"),m()),i&2){let e=v();d("title",l(1,3,"Security")),a(2),d("label",l(3,5,"Secure Boot"))("tooltip",l(4,7,e.containersHelptext.secure_boot_tooltip))}}var Lt,Hn=(Lt=class{get isVm(){return this.editingInstance.type===J.Vm}get isContainer(){return this.editingInstance.type===J.Container}get isStopped(){return this.editingInstance.status===ie.Stopped}constructor(t,e,n,r,o,c,f,V){this.api=t,this.formBuilder=e,this.formErrorHandler=n,this.translate=r,this.snackbar=o,this.dialogService=c,this.formatter=f,this.slideInRef=V,this.isLoading=L(!1),this.requiredRoles=[je.VirtGlobalWrite],this.poolOptions$=this.api.call("virt.global.pool_choices").pipe(en()),this.containersHelptext=De,this.form=this.formBuilder.nonNullable.group({autostart:[!1],cpu:["",[Ji()]],memory:[null],enable_vnc:[!1],vnc_port:[5900,[F.min(5900),F.max(65535)]],vnc_password:[null],secure_boot:[!1],environmentVariables:new _n([])}),this.slideInRef.requireConfirmationWhen(()=>z(this.form.dirty)),this.editingInstance=this.slideInRef.getData(),this.title=this.translate.instant("Edit Instance: {name}",{name:this.editingInstance.name}),this.form.patchValue({cpu:this.editingInstance.cpu,autostart:this.editingInstance.autostart,memory:this.editingInstance.memory,enable_vnc:this.editingInstance.vnc_enabled,vnc_port:this.editingInstance.vnc_port,vnc_password:this.editingInstance.vnc_password,secure_boot:this.editingInstance.secure_boot}),this.setVncControls(),Object.keys(this.editingInstance.environment||{}).forEach(O=>{this.addEnvironmentVariable(O,this.editingInstance.environment[O])})}onSubmit(){let t=this.getSubmissionPayload(),e=this.api.job("virt.instance.update",[this.editingInstance.id,t]);this.dialogService.jobDialog(e,{title:this.translate.instant("Updating Instance")}).afterClosed().pipe(y(this)).subscribe({next:n=>{this.snackbar.success(this.translate.instant("Instance updated")),this.slideInRef.close({error:!1,response:n.result})},error:n=>{this.formErrorHandler.handleValidationErrors(n,this.form)}})}addEnvironmentVariable(t="",e=""){let n=this.formBuilder.nonNullable.group({name:[t,F.required],value:[e,F.required]});this.form.controls.environmentVariables.push(n)}removeEnvironmentVariable(t){this.form.controls.environmentVariables.removeAt(t)}getSubmissionPayload(){let t=this.form.getRawValue(),e=Y({autostart:t.autostart,cpu:t.cpu,memory:t.memory||null,enable_vnc:t.enable_vnc,vnc_port:t.enable_vnc?t.vnc_port||5900:null,vnc_password:t.enable_vnc?t.vnc_password:null},this.isContainer?{environment:this.environmentVariablesPayload}:null);return e.enable_vnc&&(e=_e(Y({},e),{vnc_port:t.enable_vnc?t.vnc_port||5900:null,vnc_password:t.enable_vnc?t.vnc_password:null})),this.isVm&&(e.secure_boot=t.secure_boot),e}get environmentVariablesPayload(){return this.form.controls.environmentVariables.controls.reduce((t,e)=>{var o,c;let n=(o=e.get("name"))==null?void 0:o.value,r=(c=e.get("value"))==null?void 0:c.value;return n&&r&&(t[n]=r),t},{})}setVncControls(){this.form.controls.enable_vnc.valueChanges.pipe(y(this)).subscribe(t=>{t?this.form.controls.vnc_port.enable():this.form.controls.vnc_port.disable()}),this.isStopped||(this.form.controls.enable_vnc.disable(),this.form.controls.vnc_password.disable(),this.form.controls.vnc_port.disable())}},Lt.\u0275fac=function(e){return new(e||Lt)(u(N),u(Te),u(mi),u(j),u(Z),u(ue),u(Xe),u(fi))},Lt.\u0275cmp=D({type:Lt,selectors:[["ix-instance-edit-form"]],decls:24,vars:42,consts:[[3,"requiredRoles","title","loading"],[1,"container"],[1,"form",3,"submit","formGroup"],[3,"title"],["formControlName","autostart",3,"label"],["formControlName","cpu",3,"label","tooltip","required","hint"],["formControlName","memory",3,"label","tooltip","format","parse","required","hint"],[1,"actions"],["mat-button","","type","submit","color","primary","ixTest","save",3,"disabled"],[3,"matTooltip"],["formControlName","enable_vnc",3,"label"],["formControlName","vnc_port","type","number",3,"label","required"],["formControlName","vnc_password","type","password",3,"label","hint"],["formArrayName","environmentVariables",3,"add","empty","label"],[3,"formGroupName","label"],[3,"delete","formGroupName","label"],[1,"environment-variable"],["formControlName","name",3,"label","required"],["formControlName","value",3,"label","required"],["formControlName","secure_boot",3,"label","tooltip"]],template:function(e,n){e&1&&(_(0,"ix-modal-header",0),p(1,"div",1)(2,"form",2),b("submit",function(){return n.onSubmit()}),p(3,"ix-fieldset",3),s(4,"translate"),_(5,"ix-checkbox",4),s(6,"translate"),m(),p(7,"ix-fieldset",3),s(8,"translate"),_(9,"ix-input",5),s(10,"translate"),s(11,"translate"),s(12,"translate"),_(13,"ix-input",6),s(14,"translate"),s(1
15,"translate"),s(16,"translate"),m(),x(17,Ks,7,10,"ix-fieldset",3)(18,Ys,6,7,"ix-fieldset",3)(19,Js,5,9,"ix-fieldset",3),p(20,"div",7)(21,"button",8),h(22),s(23,"translate"),m()()()()),e&2&&(d("requiredRoles",n.requiredRoles)("title",n.title)("loading",n.isLoading()),a(2),d("formGroup",n.form),a(),d("title",l(4,22,"Instance Configuration")),a(2),d("label",l(6,24,"Autostart")),a(2),d("title",l(8,26,"CPU & Memory")),a(2),d("label",l(10,28,"CPU Configuration"))("tooltip",l(11,30,n.containersHelptext.cpu_tooltip))("required",n.isVm)("hint",n.isVm?null:l(12,32,n.containersHelptext.cpuHint)),a(4),d("label",l(14,34,"Memory Size"))("tooltip",l(15,36,n.containersHelptext.memory_tooltip))("format",n.formatter.memorySizeFormatting)("parse",n.formatter.memorySizeParsing)("required",n.isVm)("hint",n.isVm?null:l(16,38,n.containersHelptext.memoryHint)),a(4),C(n.isVm?17:-1),a(),C(n.isContainer?18:-1),a(),C(n.isVm?19:-1),a(2),d("disabled",n.form.invalid||n.isLoading()),a(),g(" ",l(23,40,"Save")," "))},dependencies:[_i,ye,Q,pe,K,le,be,ce,me,fn,hn,M,w,di,A,R,Ge,Dn,Sn,Ee],styles:[".actions[_ngcontent-%COMP%]{margin-left:10px}\n/*# sourceMappingURL=instance-edit-form.component-C6S6U2L2.css.map */"],changeDetection:0}),Lt);Hn=Ws([T()],Hn);var Xs=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},el=i=>[i],tl=i=>({n:i});function il(i,t){if(i&1&&(p(0,"p")(1,"span",4),h(2),s(3,"translate"),m(),h(4),s(5,"yesNo"),m()),i&2){let e=v();a(2),g("",l(3,2,"Secure Boot"),":"),a(2),g(" ",l(5,4,e.secure_boot)," ")}}function nl(i,t){if(i&1&&(p(0,"span",5),h(1),s(2,"keyvalue"),s(3,"translate"),m()),i&2){let e,n=v(),r=v();d("matTooltip",r.environmentVariablesTooltip()),a(),g(" ",it(3,4,"{n, plural, one {# Environment Variable} other {# Environment Variables} }",$(7,tl,(e=l(2,2,n.environment))==null?null:e.length))," ")}}function ol(i,t){if(i&1&&(p(0,"p")(1,"span",4),h(2),s(3,"translate"),m(),h(4),s(5,"yesNo"),m(),p(6,"p")(7,"span",4),h(8),s(9,"translate"),m(),h(10),m(),p(11,"p")(12,"span",4),h(13),s(14,"translate"),m(),h(15),s(16,"translate"),m(),p(17,"p")(18,"span",4),h(19),s(20,"translate"),m(),h(21),s(22,"translate"),m(),p(23,"p")(24,"span",4),h(25),s(26,"translate"),m(),h(27),m(),x(28,il,6,6,"p")(29,nl,4,9,"span",5),s(30,"keyvalue")),i&2){let e,n=t,r=v();a(2),g("",l(3,12,"Autostart"),":"),a(2),g(" ",l(5,14,n.autostart)," "),a(4),g("",l(9,16,"Base Image"),":"),a(2),g(" ",n.image.description||"-"," "),a(3),g("",l(14,18,"CPU"),":"),a(2),g(" ",n.cpu||l(16,20,"All Host CPUs")," "),a(4),g("",l(20,22,"Memory"),":"),a(2),g(" ",r.formatter.memorySizeFormatting(n.memory)||l(22,24,"Available Host Memory")," "),a(4),g("",l(26,26,"Storage Pool"),":"),a(2),g(" ",n.storage_pool," "),a(),C(r.isVm?28:-1),a(),C(n.environment&&((e=l(30,28,n.environment))!=null&&e.length)?29:-1)}}function rl(i,t){if(i&1){let e=B();p(0,"button",6),b("click",function(){P(e);let r=v();return k(r.deleteInstance())}),h(1),s(2,"translate"),m()}i&2&&(a(),g(" ",l(2,1,"Delete")," "))}var At,zn=(At=class{constructor(t,e,n,r,o,c,f,V){this.formatter=t,this.dialogService=e,this.translate=n,this.api=r,this.errorHandler=o,this.router=c,this.slideIn=f,this.instancesStore=V,this.instance=q.required(),this.Role=je,this.environmentVariablesTooltip=S(()=>Object.entries(this.instance().environment).map(([O,ae])=>"".concat(O," = ").concat(ae)).join("\n")),this.isVm=S(()=>this.instance().type===J.Vm)}editInstance(){this.slideIn.open(Hn,{data:this.instance()}).pipe(X(t=>t.response),G(Boolean),y(this)).subscribe(t=>{this.instancesStore.instanceUpdated(t),this.instancesStore.selectInstance(t.id)})}deleteInstance(){this.dialogService.confirm({title:this.translate.instant("Delete"),message:this.translate.instant("Delete {name}?",{name:this.instance().name}),buttonColor:"warn"}).pipe(G(Boolean),Ce(()=>this.dialogService.jobDialog(this.api.job("virt.instance.delete",[this.instance().id])).afterClosed()),this.errorHandler.catchError(),y(this)).subscribe(()=>{this.router.navigate(["/instances"],{state:{hideMobileDetails:!0}})})}},At.\u0275fac=function(e){return new(e||At)(u(Xe),u(ue),u(j),u(N),u(H),u(lt),u(ui),u(ee))},At.\u0275cmp=D({type:At,selectors:[["ix-instance-general-info"]],inputs:{instance:[1,"instance"]},decls:12,vars:10,consts:[[1,"card"],["mat-card-title",""],["mat-button","","ixTest","edit-instance",3,"click"],["mat-button","","ixTest","delete-instance",3,"click",4,"ixRequiresRoles"],[1,"label"],[1,"environment-variables",3,"matTooltip"],["mat-button","","ixTest","delete-instance",3,"click"]],template:function(e,n){if(e&1&&(p(0,"mat-card",0)(1,"mat-card-header")(2,"h3",1),h(3),s(4,"translate"),m(),p(5,"button",2),b("click",function(){return n.editInstance()}),h(6),s(7,"translate"),m()(),p(8,"mat-card-content"),x(9,ol,31,30),m(),p(10,"mat-card-actions"),x(11,rl,3,3,"button",3),m()()),e&2){let r;a(3),g(" ",l(4,4,"General Info")," "),a(3),g(" ",l(7,6,"Edit")," "),a(3),C((r=n.instance())?9:-1,r),a(2),d("ixRequiresRoles",$(8,el,n.Role.VirtInstanceDelete))}},dependencies:[A,fe,Ye,Ne,Eo,he,M,w,fr,Je,cn,R,Ee],styles:["mat-card-content[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 6px}.environment-variables[_ngcontent-%COMP%]{cursor:help;font-weight:700;text-decoration:underline;text-decoration-color:var(--alt-fg1);text-decoration-style:dotted;text-underline-offset:3px}.label[_ngcontent-%COMP%]{font-weight:700;margin-right:2px}\n/*# sourceMappingURL=instance-general-info.component-56KNWVJF.css.map */"],changeDetection:0}),At);zn=Xs([T()],zn);var al=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o};function sl(i,t){i&1&&(h(0),s(1,"translate")),i&2&&g(" ",l(1,1,"Instance is not running")," ")}function ll(i,t){if(i&1&&(p(0,"ix-card-expand-collapse",2)(1,"h4",3),h(2),s(3,"translate"),m(),p(4,"div",4)(5,"div",5)(6,"div",6)(7,"div",7),h(8),s(9,"translate"),m(),p(10,"div",8),h(11),m()(),p(12,"div",6)(13,"div",7),h(14),s(15,"translate"),m(),p(16,"div",8),h(17),m()(),p(18,"div",6)(19,"div",7),h(20
1),s(21,"translate"),m(),p(22,"div",8),h(23),m()()()(),p(24,"h4",3),h(25),s(26,"translate"),m(),p(27,"div",4)(28,"div",5)(29,"div",6)(30,"div",7),h(31),s(32,"translate"),m(),p(33,"div",8),h(34),m()(),p(35,"div",6)(36,"div",7),h(37),s(38,"translate"),m(),p(39,"div",8),h(40),m()(),p(41,"div",6)(42,"div",7),h(43),s(44,"translate"),m(),p(45,"div",8),h(46),m()()()()()),i&2){let e,n,r,o,c,f,V=v();d("maxHeight",250),a(2),I(l(3,15,"UID")),a(6),g("",l(9,17,"Host ID"),":"),a(3),I((e=V.instance().userns_idmap)==null||e.uid==null?null:e.uid.hostid),a(3),g("",l(15,19,"Maprange"),":"),a(3),I((n=V.instance().userns_idmap)==null||n.uid==null?null:n.uid.maprange),a(3),g("",l(21,21,"NS ID"),":"),a(3),I((r=V.instance().userns_idmap)==null||r.uid==null?null:r.uid.nsid),a(2),I(l(26,23,"GID")),a(6),g("",l(32,25,"Host ID"),":"),a(3),I((o=V.instance().userns_idmap)==null||o.gid==null?null:o.gid.hostid),a(3),g("",l(38,27,"Maprange"),":"),a(3),I((c=V.instance().userns_idmap)==null||c.gid==null?null:c.gid.maprange),a(3),g("",l(44,29,"NS ID"),":"),a(3),I((f=V.instance().userns_idmap)==null||f.gid==null?null:f.gid.nsid)}}var Ut,qn=(Ut=class{constructor(){this.instance=q.required(),this.virtualizationStatus=ie}},Ut.\u0275fac=function(e){return new(e||Ut)},Ut.\u0275cmp=D({type:Ut,selectors:[["ix-instance-idmap"]],inputs:{instance:[1,"instance"]},decls:8,vars:4,consts:[[1,"card"],["mat-card-title",""],[3,"maxHeight"],[1,"card-subtitle"],[1,"details-list"],[1,"details-entry"],[1,"details-item"],[1,"label"],[1,"value"]],template:function(e,n){e&1&&(p(0,"mat-card",0)(1,"mat-card-header")(2,"h3",1),h(3),s(4,"translate"),m()(),p(5,"mat-card-content"),x(6,sl,2,3)(7,ll,47,31,"ix-card-expand-collapse",2),m()()),e&2&&(a(3),g(" ",l(4,2,"Idmap")," "),a(3),C(n.instance().status!==n.virtualizationStatus.Running?6:7))},dependencies:[fe,Ye,Ne,M,w,he,_r],styles:["mat-card-content[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 6px}.card-subtitle[_ngcontent-%COMP%]{margin-bottom:12px}.details-list[_ngcontent-%COMP%]{background-color:#0000001a;margin-bottom:12px;padding:12px}\n/*# sourceMappingURL=instance-idmap.component-4YMARAKZ.css.map */"],changeDetection:0}),Ut);qn=al([T()],qn);var pl=()=>({width:"100%",height:"150px",background:"var(--alt-bg2)",opacity:.25});function cl(i,t){i&1&&_(0,"ngx-skeleton-loader",2),i&2&&d("theme",re(1,pl))}function ml(i,t){if(i&1&&(p(0,"div",3),_(1,"canvas",4),m()),i&2){let e=v();a(),d("data",e.chartData())("options",e.chartOptions())}}var Er=(()=>{let t=class t{constructor(n,r){this.themeService=n,this.localeService=r,this.title=q.required(),this.data=q.required(),this.labels=q.required(),this.isLoading=q.required(),this.postfix=q(),this.chartData=S(()=>{let o=this.themeService.currentTheme();return{datasets:[{label:this.title(),data:this.data().map((c,f)=>({x:this.labels()[f],y:c}
1)),borderColor:o.blue,backgroundColor:o.blue,pointBackgroundColor:o.blue,pointRadius:0,tension:.2,fill:!1}]}}),this.chartOptions=S(()=>({interaction:{intersect:!1},responsive:!0,maintainAspectRatio:!1,plugins:{legend:{display:!1},tooltip:{callbacks:{label:o=>"".concat(o.parsed.y," ").concat(this.postfix()||"")}}},animation:{duration:0},transitions:{active:{animation:{duration:0}}},scales:{x:{type:"time",time:{unit:"second",displayFormats:{second:"HH:mm:ss"},tooltipFormat:"".concat(this.localeService.dateFormat," ").concat(this.localeService.timeFormat)},ticks:{maxTicksLimit:3,maxRotation:0}},y:{type:"linear",beginAtZero:!0}}}))}};t.\u0275fac=function(r){return new(r||t)(u(Ro),u(Qo))},t.\u0275cmp=D({type:t,selectors:[["ix-instance-metrics-linechart"]],inputs:{title:[1,"title"],data:[1,"data"],labels:[1,"labels"],isLoading:[1,"isLoading"],postfix:[1,"postfix"]},decls:8,vars:5,consts:[[1,"wrapper"],[1,"title"],[1,"skeleton",3,"theme"],[1,"chart"],["baseChart","","type","line",3,"data","options"]],template:function(r,o){r&1&&(p(0,"div",0)(1,"h4",1),h(2),s(3,"translate"),p(4,"span"),h(5),m()(),x(6,cl,1,2,"ngx-skeleton-loader",2)(7,ml,2,2,"div",3),m()),r&2&&(a(2),g(" ",l(3,3,o.title())," "),a(3),g(" (",o.postfix(),") "),a(),C(o.isLoading()?6:7))},dependencies:[Be,ke,Oo,M,w],styles:[".wrapper[_ngcontent-%COMP%]{background-color:var(--bg2)}.wrapper[_ngcontent-%COMP%]   .title[_ngcontent-%COMP%]{margin-bottom:8px}.wrapper[_ngcontent-%COMP%]   .title[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]{color:var(--fg2);font-size:small}.wrapper[_ngcontent-%COMP%]   .chart[_ngcontent-%COMP%]{display:flex;justify-content:center}.skeleton[_ngcontent-%COMP%], .chart[_ngcontent-%COMP%]{height:150px;margin-bottom:15px;padding:0 8px;width:100%}\n/*# sourceMappingURL=instance-metrics-linechart.component-R2L6NJM3.css.map */"],changeDetection:0});let i=t;return i})();var dl=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o};function ul(i,t){if(i&1&&(_(0,"ix-instance-metrics-linechart",2),s(1,"translate"),_(2,"ix-instance-metrics-linechart",3),s(3,"translate"),s(4,"translate"),_(5,"ix-instance-metrics-linechart",2),s(6,"translate")),i&2){let e=v();d("title",l(1,13,"CPU"))("data",e.cpuData())("labels",e.timeLabels())("isLoading",e.isLoading()),a(2),d("postfix",l(3,15,"MiB"))("title",l(4,17,"Memory"))("data",e.memoryData())("labels",e.timeLabels())("isLoading",e.isLoading()),a(3),d("title",l(6,19,"Disk I/O Full Pressure"))("data",e.ioPressureData())("labels",e.timeLabels())("isLoading",e.isLoading())}}function fl(i,t){i&1&&(h(0),s(1,"translate")),i&2&&g(" ",l(1,1,"Instance is not running")," ")}var Ht,Gn=(Ht=class{constructor(t,e){this.formatter=t,this.api=e,this.instance=q.required(),this.virtualizationStatus=ie,this.cpuData=L([]),this.memoryData=L([]),this.ioPressureData=L([]),this.timeLabels=L([]),this.isLoading=L(!0),ai(this.instance).pipe(G(n=>n.status===ie.Running),ri((n,r)=>n.id===r.id),Ce(n=>(this.resetData(),this.api.subscribe('virt.instance.metrics:{"id": "'.concat(n.id,'"}')))),X(n=>n.fields),y(this)).subscribe(n=>{this.updateData(n),this.isLoading.set(!1)})}resetData(){this.cpuData.set([]),this.memoryData.set([]),this.ioPressureData.set([]),this.timeLabels.set([]),this.isLoading.set(!0)}updateData(t){var r,o,c;let e=Date.now(),n=(f,V)=>{let O=[...f,V];return O.length>300?O.slice(-300):O};((r=t.cpu)==null?void 0:r.cpu_user_percentage)!==void 0&&this.cpuData.update(f=>n(f,t.cpu.cpu_user_percentage)),((o=t.mem_usage)==null?void 0:o.mem_usage_ram_mib)!==void 0&&this.memoryData.update(f=>n(f,t.mem_usage.mem_usage_ram_mib)),((c=t.io_full_pressure)==null?void 0:c.io_full_pressure_full_60_percentage)!==void 0&&this.ioPressureData.update(f=>n(f,t.io_full_pressure.io_full_pressure_full_60_percentage)),this.timeLabels.update(f=>n(f,e))}},Ht.\u0275fac=function(e){return new(e||Ht)(u(Xe),u(N))},Ht.\u0275cmp=D({type:Ht,selectors:[["ix-instance-metrics"]],inputs:{instance:[1,"instance"]},decls:8,vars:4,consts:[[1,"card"],["mat-card-title",""],["postfix","%",3,"title","data","labels","isLoading"],[3,"postfix","title","data","labels","isLoading"]],template:function(e,n){e&1&&(p(0,"mat-card",0)(1,"mat-card-header")(2,"h3",1),h(3),s(4,"translate"),m()(),p(5,"mat-card-content"),x(6,ul,7,21)(7,fl,2,3),m()()),e&2&&(a(3),g(" ",l(4,2,"Metrics")," "),a(3),C(n.instance().status===n.virtualizationStatus.Running?6:7))},dependencies:[fe,Ye,Ne,M,w,he,Er],styles:["mat-card-content[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0 0 6px}\n/*# sourceMappingURL=instance-metrics.component-ATEY2OZ6.css.map */"],changeDetection:0}),Ht);Gn=dl([T()],Gn);
1var hl=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},_l=i=>["add-bridged-nic",i],vl=i=>["add-mac-vlan-nic",i];function gl(i,t){i&1&&_(0,"ngx-skeleton-loader",1)}function xl(i,t){if(i&1){let e=B();p(0,"button",5),b("click",function(){let r=P(e).$implicit,o=v(3);return k(o.addBridgedNic(r))}),h(1),m()}if(i&2){let e=t.$implicit;d("ixTest",$(2,_l,e)),a(),g(" ",e," ")}}function Cl(i,t){if(i&1&&(p(0,"h4",3),h(1),s(2,"translate"),m(),ne(3,xl,2,4,"button",4,tt)),i&2){let e=v(2);a(),I(l(2,1,e.bridgedNicTypeLabel)),a(2),oe(e.availableBridgedNics())}}function bl(i,t){if(i&1){let e=B();p(0,"button",5),b("click",function(){let r=P(e).$implicit,o=v(3);return k(o.addMacVlanNic(r))}),h(1),m()}if(i&2){let e=t.$implicit;d("ixTest",$(2,vl,e)),a(),g(" ",e," ")}}function yl(i,t){if(i&1&&(p(0,"h4",3),h(1),s(2,"translate"),m(),ne(3,bl,2,4,"button",4,tt)),i&2){let e=v(2);a(),I(l(2,1,e.macVlanNicTypeLabel)),a(2),oe(e.availableMacVlanNics())}}function Il(i,t){if(i&1&&(p(0,"button",2),h(1),s(2,"translate"),m(),p(3,"mat-menu",null,0),x(5,Cl,5,3)(6,yl,5,3),m()),i&2){let e=He(4),n=v();d("matMenuTriggerFor",e),a(),g(" ",l(2,4,"Add")," "),a(4),C(n.availableBridgedNics().length?5:-1),a(),C(n.availableMacVlanNics().length?6:-1)}}var zt,$n=(zt=class{constructor(t,e,n,r,o,c,f){this.api=t,this.errorHandler=e,this.loader=n,this.snackbar=r,this.translate=o,this.instancesStore=c,this.deviceStore=f,this.bridgedChoices=Me(this.getNicChoices(ge.Bridged),{initialValue:{}}),this.macVlanChoices=Me(this.getNicChoices(ge.Macvlan),{initialValue:{}}),this.bridgedNicTypeLabel=$i.get(ge.Bridged)||ge.Bridged,this.macVlanNicTypeLabel=$i.get(ge.Macvlan)||ge.Macvlan,this.isLoadingDevices=this.deviceStore.isLoading,this.availableBridgedNics=S(()=>{let V=Object.values(this.bridgedChoices()),O=this.deviceStore.devices().filter(ae=>ae.dev_type===E.Nic&&ae.nic_type===ge.Bridged);return V.filter(ae=>!O.find(Le=>Le.parent===ae))}),this.availableMacVlanNics=S(()=>{let V=Object.values(this.macVlanChoices()),O=this.deviceStore.devices().filter(ae=>ae.dev_type===E.Nic&&ae.nic_type===ge.Macvlan);return V.filter(ae=>!O.find(Le=>Le.parent===ae))}),this.hasNicsToAdd=S(()=>this.availableBridgedNics().length>0||Object.keys(this.availableMacVlanNics()).length>0)}addBridgedNic(t){this.addDevice({dev_type:E.Nic,nic_type:ge.Bridged,parent:t})}addMacVlanNic(t){this.addDevice({dev_type:E.Nic,nic_type:ge.Macvlan,parent:t})}
1getNicChoices(t){return this.api.call("virt.device.nic_choices",[t])}addDevice(t){var n;let e=(n=this.instancesStore.selectedInstance())==null?void 0:n.id;e&&this.api.call("virt.instance.device_add",[e,t]).pipe(this.loader.withLoader(),this.errorHandler.catchError(),y(this)).subscribe(()=>{this.snackbar.success(this.translate.instant("NIC was added")),this.deviceStore.loadDevices()})}},zt.\u0275fac=function(e){return new(e||zt)(u(N),u(H),u($e),u(Z),u(j),u(ee),u(Pe))},zt.\u0275cmp=D({type:zt,selectors:[["ix-add-nic-menu"]],decls:2,vars:1,consts:[["addNicMenu","matMenu"],[1,"loader"],["mat-button","","ixTest","add-nic",3,"disabled","matMenuTriggerFor"],[1,"menu-header"],["mat-menu-item","",3,"ixTest"],["mat-menu-item","",3,"click","ixTest"]],template:function(e,n){e&1&&x(0,gl,1,0,"ngx-skeleton-loader",1)(1,Il,7,6),e&2&&C(n.isLoadingDevices()?0:n.hasNicsToAdd()?1:-1)},dependencies:[A,mt,ct,R,M,w,dt,Be,ke],styles:[".menu-header[_ngcontent-%COMP%]{border-bottom:1px solid var(--lines);font-size:12px;margin-top:12px;padding-bottom:6px;padding-left:15px}[_nghost-%COMP%]   .loader[_ngcontent-%COMP%]{display:block;flex:unset;width:80px}[_nghost-%COMP%]   .loader[_ngcontent-%COMP%]     .loader{margin-bottom:-6px}\n/*# sourceMappingURL=add-nic-menu.component-SYR27G7N.css.map */"],changeDetection:0}),zt);$n=hl([T()],$n);var Sl=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},Dl=(i,t)=>t.name;function Ml(i,t){i&1&&_(0,"ix-add-nic-menu")}function Tl(i,t){i&1&&(p(0,"p",2),h(1),s(2,"translate"),m()),i&2&&(a(),g(" ",l(2,1,"NIC modifications are currently restricted due to pen
1ding network changes.")," "))}function wl(i,t){i&1&&_(0,"ngx-skeleton-loader")}function Pl(i,t){if(i&1&&_(0,"ix-device-actions-menu",4),i&2){let e=v().$implicit;d("device",e)("showEdit",!1)}}function kl(i,t){if(i&1&&(p(0,"div",3)(1,"span"),h(2),m(),x(3,Pl,1,2,"ix-device-actions-menu",4),m()),i&2){let e=t.$implicit,n=v(2);a(2),I(n.getDeviceDescription(e)),a(),C(n.hasPendingInterfaceChanges()?-1:3)}}function Bl(i,t){i&1&&(h(0),s(1,"translate")),i&2&&g(" ",l(1,1,"No NICs added.")," ")}function Ol(i,t){if(i&1&&ne(0,kl,4,2,"div",3,Dl,!1,Bl,2,3),i&2){let e=v();oe(e.shownDevices())}}var qt,Wn=(qt=class{constructor(t,e,n){this.deviceStore=t,this.translate=e,this.api=n,this.hasPendingInterfaceChanges=Me(this.api.call("interface.has_pending_changes")),this.isLoadingDevices=this.deviceStore.isLoading,this.shownDevices=S(()=>this.deviceStore.devices().filter(r=>r.dev_type===E.Nic&&!!r.nic_type))}getDeviceDescription(t){return Yi(this.translate,t)}},qt.\u0275fac=function(e){return new(e||qt)(u(Pe),u(j),u(N))},qt.\u0275cmp=D({type:qt,selectors:[["ix-instance-nics"]],decls:10,vars:6,consts:[[1,"card"],["mat-card-title",""],[1,"warning"],[1,"device"],[3,"device","showEdit"]],template:function(e,n){e&1&&(p(0,"mat-card",0)(1,"mat-card-header")(2,"h3",1),h(3),s(4,"translate"),m(),x(5,Ml,1,0,"ix-add-nic-menu"),m(),p(6,"mat-card-content"),x(7,Tl,3,3,"p",2)(8,wl,1,0,"ngx-skeleton-loader")(9,Ol,3,1),m()()),e&2&&(a(3),g(" ",l(4,4,"NIC")," "),a(2),C(n.hasPendingInterfaceChanges()?-1:5),a(2),C(n.hasPendingInterfaceChanges()?7:-1),a(),C(n.isLoadingDevices()?8:9))},dependencies:[fe,Ne,M,w,xn,he,Be,ke,gt,$n],styles:[".device[_ngcontent-%COMP%]{align-items:center;display:flex;justify-content:space-between}\n/*# sourceMappingURL=instance-nics.component-SZKNSROR.css.map */"],changeDetection:0}),qt);Wn=Sl([T()],Wn);var Vl=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},Gt,Zn=(Gt=class{constructor(t,e,n,r,o,c){this.formBuilder=t,this.errorHandler=e,this.api=n,this.translate=r,this.snackbar=o,this.slideInRef=c,this.existingProxy=L(null),this.isLoading=L(!1),this.form=this.formBuilder.nonNullable.group({source_proto:[bt.Tcp],source_port:[null,F.required],dest_proto:[bt.Tcp],dest_port:[null,F.required]}),this.title=S(()=>this.existingProxy()?this.translate.instant("Edit Proxy"):this.translate.instant("Add Proxy")),this.protocolOptions$=z(Ct(Tn,this.translate)),this.slideInRef.requireConfirmationWhen(()=>z(this.form.dirty))}ngOnInit(){let t=this.slideInRef.getData().proxy;t&&(this.existingProxy.set(t),this.form.patchValue(t))}onSubmit(){this.isLoading.set(!0),this.prepareRequest().pipe(y(this)).subscribe({complete:()=>{this.snackbar.success(this.translate.instant("Proxy saved")),this.slideInRef.close({response:!0,error:!1}),this.isLoading.set(!1)},error:e=>{this.errorHandler.handleValidationErrors(e,this.form),this.isLoading.set(!1)}})}prepareRequest(){let t=this.slideInRef.getData().instanceId,e=_e(Y({},this.form.value),{dev_type:E.Proxy}),n=this.existingProxy();return n?this.api.call("virt.instance.device_update",[t,_e(Y({},e),{name:n.name})]):this.api.call("virt.instance.device_add",[t,e])}},Gt.\u0275fac=function(e){return new(e||Gt)(u(Te),u(mi),u(N),u(j),u(Z),u(fi))},Gt.\u0275cmp=D({type:Gt,selectors:[["ix-instance-proxy-form"]],decls:19,vars:25,consts:[[3,"title","loading"],[1,"ix-form-container",3,"submit","formGroup"],[1,"protocol-and-port"],["formControlName","source_proto",1,"protocol",3,"label","required","options"],["type","number","formControlName","source_port",1,"port",3,"label","required"],["formControlName","dest_proto",1,"protocol",3,"label","required","options"],["type","number","formControlName","dest_port",1,"port",3,"label","required"],["mat-button","","type","submit","color","primary","ixTest","save",3,"disabled"]],template:function(e,n){e&1&&(_(0,"ix-modal-header",0),p(1,"mat-card")(2,"mat-card-content")(3,"form",1),b("submit",function(){return n.onSubmit()}),p(4,"ix-fieldset")(5,"div",2),_(6,"ix-select",3),s(7,"translate"),_(8,"ix-input",4),s(9,"translate"),m(),p(10,"div",2),_(11,"ix-select",5),s(12,"translate"),_(13,"ix-input",6),s(14,"translate"),m()(),p(15,"ix-form-actions")(16,"button",7),h(17),s(18,"translate"),m()()()()()),e&2&&(d("title",n.title())("loading",n.isLoading()),a(3),d("formGroup",n.form),a(3),d("label",l(7,15,"Host Protocol"))("required",!0)("options",n.protocolOptions$),a(2),d("label",l(9,17,"Host Port"))("required",!0),a(3),d("label",l(12,19,"Instance Protocol"))("required",!0)("options",n.protocolOptions$),a(2),d("label",l(14,21,"Instance Port"))("required",!0),a(3),d("disabled",n.form.invali
1d||n.isLoading()),a(),g(" ",l(18,23,"Save")," "))},dependencies:[qe,Ge,ye,A,fe,he,Q,pe,K,le,be,ce,me,R,M,w,Fe,_i],styles:[".protocol-and-port[_ngcontent-%COMP%]{display:flex;gap:12px}.protocol-and-port[_ngcontent-%COMP%]   .port[_ngcontent-%COMP%]{flex:2}.protocol-and-port[_ngcontent-%COMP%]   .protocol[_ngcontent-%COMP%]{flex:.8}\n/*# sourceMappingURL=instance-proxy-form.component-5DX3FDE7.css.map */"],changeDetection:0}),Gt);Zn=Vl([T()],Zn);var Rl=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},El=(i,t)=>t.name;function Nl(i,t){i&1&&_(0,"ngx-skeleton-loader")}function jl(i,t){if(i&1){let e=B();p(0,"div",3)(1,"div",4),h(2),p(3,"span",5),h(4),s(5,"translate"),m(),h(6),p(7,"span",5),h(8),s(9,"translate"),m()(),p(10,"ix-device-actions-menu",6),b("edit",function(){let r=P(e).$implicit,o=v(2);return k(o.editProxy(r))}),m()()}if(i&2){let e=t.$implicit;a(2),Ci(" ",e.source_port," ",e.source_proto," "),a(2),g("(",l(5,7,"Host"),")"),a(2),Ci(" \u2192 ",e.dest_port," ",e.dest_proto," "),a(2),g("(",l(9,9,"Instance"),")"),a(2),d("device",e)}}function Fl(i,t){i&1&&(h(0),s(1,"translate")),i&2&&g(" ",l(1,1,"No proxies added.")," ")}function Ll(i,t){if(i&1&&ne(0,jl,11,11,"div",3,El,!1,Fl,2,3),i&2){let e=v();oe(e.proxies())}}var $t,Kn=($t=class{constructor(t,e,n){this.slideIn=t,this.deviceStore=e,this.instancesStore=n,this.isLoadingDevices=this.deviceStore.isLoading,this.proxies=S(()=>this.deviceStore.devices().filter(r=>r.dev_type===E.Proxy))}addProxy(){this.openProxyForm()}editProxy(t){this.openProxyForm(t)}openProxyForm(t){var n;let e=(n=this.instancesStore.selectedInstance())==null?void 0:n.id;e&&this.slideIn.open(Zn,{data:{proxy:t,instanceId:e}}).pipe(G(r=>!!r.response),y(this)).subscribe(()=>this.deviceStore.loadDevices())}},$t.\u0275fac=function(e){return new(e||$t)(u(ui),u(Pe),u(ee))},$t.\u0275cmp=D({type:$t,selectors:[["ix-instance-proxies"]],decls:11,vars:7,consts:[[1,"card"],["mat-card-title",""],["mat-button","","ixTest","add-proxy",3,"click"],[1,"proxy"],[1,"proxy-description"],[1,"hint"],[3,"edit","device"]],template:function(e,n){e&1&&(p(0,"mat-card",0)(1,"mat-card-header")(2,"h3",1),h(3),s(4,"translate"),m(),p(5,"button",2),b("click",function(){return n.addProxy()}),h(6),s(7,"translate"),m()(),p(8,"mat-card-content"),x(9,Nl,1,0,"ngx-skeleton-loader")(10,Ll,3,1),m()()),e&2&&(a(3),g(" ",l(4,3,"Proxies")," "),a(3),I(l(7,5,"Add")),a(3),C(n.isLoadingDevices()?9:10))},dependencies:[fe,he,Ne,Ye,M,w,A,R,Be,ke,gt],styles:[".proxy[_ngcontent-%COMP%]{align-items:center;display:flex;justify-content:space-between}.hint[_ngcontent-%COMP%]{color:var(--alt-fg1)}\n/*# sourceMappingURL=instance-proxies.component-4FT2MKNB.css.map */"],changeDetection:0}),$t);Kn=Rl([T()],Kn);var Al=i=>["/instances","view",i,"shell"],Ul=i=>["/instances","view",i,"console"];function Hl(i,t){if(i&1&&(p(0,"a",7)(1,"span"),h(2),s(3,"translate"),m(),p(4,"span"),h(5),m()()),i&2){let e=v(2);st("disabled",e.isInstanceStopped()),d("disabled",e.isInstanceStopped())("href",e.vncLink(),Co),a(2),I(l(3,6,"VNC")),a(3),I(e.vncLink())}}function zl(i,t){if(i&1&&(p(0,"a",5)(1,"span"),h(2),s(3,"translate"),m(),_(4,"ix-icon",6),m(),x(5,Hl,6,8,"a",7)),i&2){let e=v();st("disabled",e.isInstanceStopped()),d("disabled",e.isInstanceStopped())("routerLink",$(8,Ul,e.instance().id)),a(2),I(l(3,6,"Serial Console")),a(3),C(e.instance().vnc_enabled&&e.instance().vnc_port?5:-1)}}var jr=(()=>{let t=class t{constructor(n){this.window=n,this.instance=q.required(),this.isInstanceStopped=S(()=>this.instance().status!==ie.Running),this.isVm=S(()=>this.instance().type===J.Vm),this.vncLink=S(()=>"vnc://".concat(this.window.location.hostname,":").concat(this.instance().vnc_port))}};t.\u0275fac=function(r){return new(r||t)(u(Ti))},t.\u0275cmp=D({type:t,selectors:[["ix-instance-tools"]],inputs:{instance:[1,"instance"]},decls:14,vars:16,consts:[[1,"card"],["mat-card-title",""],[3,"matTooltip"],["mat-flat-button","","color","default","ixTest","open-shell",1,"tool",3,"disabled","routerLink"],["name","mdi-console-line"],["mat-flat-button","","color","default","ixTest","open-console",1,"tool",3,"disabled","routerLink"],["name","mdi-console"],["mat-flat-button","","color","default","ixTest","open-vnc","target","_blank",1,"tool",3,"disabled","href"]],template:function(r,o){r&1&&(p(0,"mat-card",0)(1,"mat-card-header")(2,"h3",1),h(3),s(4,"translate"),m()(),p(5,"mat-card-content")(6,"div",2),s(7,"translate"),p(8,"a",3)(9,"span"),h(10),s(11,"translate"),m(),_(12,"ix-icon",4),m(),x(13,zl,6,10),m(
1)()()),r&2&&(a(3),g(" ",l(4,8,"Tools")," "),a(3),d("matTooltip",o.isInstanceStopped()?l(7,10,"Instance is not running"):""),a(2),st("disabled",o.isInstanceStopped()),d("disabled",o.isInstanceStopped())("routerLink",$(14,Al,o.instance().id)),a(2),I(l(11,12,"Shell")),a(3),C(o.isVm()?13:-1))},dependencies:[Ye,Ne,fe,he,M,w,mn,R,te,Ee,dn],styles:[".tool[_ngcontent-%COMP%]{display:flex;margin:0 -16px}.tool[_ngcontent-%COMP%]:not(.tool.disabled){color:var(--fg2)!important}.tool.disabled[_ngcontent-%COMP%]{color:var(--fg2)!important;opacity:.5}.tool[_ngcontent-%COMP%]     .mdc-button__label{flex-grow:1;justify-content:space-between}\n/*# sourceMappingURL=instance-tools.component-AS2CB5WW.css.map */"],changeDetection:0});let i=t;return i})();function ql(i,t){if(i&1&&_(0,"ix-instance-proxies",3)(1,"ix-instance-idmap",4),i&2){let e=v();d("ixUiSearch",e.searchableElements.elements.proxies),a(),d("instance",e.instance())}}var Fr=(()=>{let t=class t{constructor(){this.instance=q.required(),this.searchableElements=Or,this.VirtualizationType=J,this.isContainer=S(()=>this.instance().type===J.Container)}};t.\u0275fac=function(r){return new(r||t)},t.\u0275cmp=D({type:t,selectors:[["ix-instance-details"]],inputs:{instance:[1,"instance"]},decls:9,vars:11,consts:[[1,"cards"],[1,"scroll-window"],[3,"instance","ixUiSearch"],[3,"ixUiSearch"],[3,"instance"]],template:function(r,o){r&1&&(p(0,"div",0)(1,"div",1),_(2,"ix-instance-general-info",2)(3,"ix-instance-devices",3)(4,"ix-instance-disks",2)(5,"ix-instance-nics",3),x(6,ql,2,2),_(7,"ix-instance-tools",2)(8,"ix-instance-metrics",2),m()()),r&2&&(a(2),d("instance",o.instance())("ixUiSearch",o.searchableElements.elements.generalInfo),a(),d("ixUiSearch",o.searchableElements.elements.devices),a(),d("instance",o.instance())("ixUiSearch",o.searchableElements.elements.disks),a(),d("ixUiSearch",o.searchableElements.elements.nic),a(),C(o.isContainer()?6:-1),a(),d("instance",o.instance())("ixUiSearch",o.searchableElements.elements.tools),a(),d("instance",o.instance())("ixUiSearch",o.searchableElements.elements.metrics))},dependencies:[M,Fn,zn,Kn,Un,jr,Gn,Wn,ki,qn],encapsulation:2,changeDetection:0});let i=t;return i})();var Gl=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o};function $l(i,t){i&1&&(h(0),s(1,"translate")),i&2&&g(" ",l(1,1,"Restart Options")," ")}function Wl(i,t){i&1&&(h(0),s(1,"translate")),i&2&&g(" ",l(1,1,"Stop Options")," ")}function Zl(i,t){i&1&&(h(0),s(1,"translate")),i&2&&g(" ",l(1,1,"Restart")," ")}function Kl(i,t){i&1&&(h(0),s(1,"translate")),i&2&&g(" ",l(1,1,"Stop")," ")}var Zt=function(i){return i[i.Restart=0]="Restart",i[i.Stop=1]="Stop",i}(Zt||{}),xt=function(i){return i.Force="force",i.Timeout30="30",i.Timeout60="60",i.Timeout300="300",i}(xt||{}),Wt,gi=(Wt=class{constructor(t,e,n,r){this.formBuilder=t,this.translate=e,this.dialogRef=n,this.operation=L(Zt.Stop),this.isRestart=S(()=>this.operation()===Zt.Restart),this.form=this.formBuilder.nonNullable.group({waitFor:[xt.Timeout30]}),this.waitForOptions$=ai(this.isRestart).pipe(X(o=>[{label:o?this.translate.instant("Force restart now"):this.translate.instant("Force shutdown now"),value:xt.Force},{label:this.translate.instant("Wait for 30 seconds"),value:xt.Timeout30},{label:this.translate.instant("Wait for 1 minute"),value:xt.Timeout60},{label:this.translate.instant("Wait for 5 minutes"),value:xt.Timeout300}])),this.operation.set(r)}onSubmit(){let t=this.form.value.waitFor,e={timeout:-1,force:!1};switch(t){case xt.Force:e.force=!0;break;case xt.Timeout30:e.timeout=30;break;case xt.Timeout60:e.timeout=60;break;case xt.Timeout300:e.timeout=300;break;default:Wo(t)}this.dialogRef.close(e)}},Wt.\u0275fac=function(e){return new(e||Wt)(u(Te),u(j),u(Oe),u(pt))},Wt.\u0275cmp=D({type:Wt,selectors:[["ix-stop-dialog"]],decls:13,vars:12,consts:[["matDialogTitle",""],[1,"ix-form-container",3,"submit","formGroup"],["formControlName","waitFor",3,"label","required","options"],["mat-button","","type","button","ixTest","cancel",3,"matDialogClose"],["mat-button","","type","submit","color","primary","ixTest","continue"]],template:function(e,n){e&1&&(p(0,"h1",0),x(1,$l,2,3)(2,Wl,2,3),m(),p(3,"form",1),b("submit",function(){return n.onSubmit()}),_(4,"ix-select",2),s(5,"translate"),p(6,"ix-form-actions")(7,"button",3),h(8),s(9,"translate"),m(),p(10,"button",4),x(11,Zl,2,3)(12,Kl,2,3),m()()()),e&2&&(a(),C(n.isRestart()?1:2),a(2),d("formGroup",n.form),a(),d("label",l(5,8,"Wait to stop cleanly"))("required",!0)("options",n.waitForOptions$),a(3),d("matDialogClose",!1),a(),g(" ",l(9,10,"Cancel")," "),a(3),C(n.isRestart()?11:12))},dependencies:[qe,A,Re,Q,pe,K,le,be,ce,me,R,M,w,pi,Fe],styles:["[_nghost-%COMP%]{display:block;min-width:350px}\n/*# sourceMappingURL=stop-options-dialog.component-HCWQSNCZ.css.map */"],changeDetection:0}),Wt);gi=Gl([T()],gi);var Ql=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o};function Yl(i,t){if(i&1&&(p(0,"button",8),h(1),s(2,"translate"),_(3,"ix-icon",9),m()),i&2){v();let e=He(13);d("matMenuTriggerFor",e),a(),g(" ",l(2,2,"Select action")," ")}}function Jl(i,t){if(i&1){let e=B();p(0,"button",10),b("click",function(){P(e);let r=v();return k(r.onBulkStart())}),p(1,"span"),h(2),s(3,"translate"),m()()}if(i&2){let e=v();d("disabled",e.isBulkStartDisabled()),a(2),I(l(3,2,"Start All Selected"))}}function Xl(i,t){if(i&1){let e=B();p(0,"button",11),b("click",function(){P(e);let r=v();return k(r.onBulkStop())}),p(1,"span"),h(2),s(3,"translate"),m()()}if(i&2){let e=v();d("disabled",e.isBulkStopDisabled()),a(2),I(l(3,2,"Stop All Selected"))}}function ep(i,t){if(i&1){let e=B();p(0,"button",12),b("click",function(){P(e);let r=v();return k(r.onBulkRestart())}),p(1,"span"),h(2),s(3,"translate"),m()()}if(i&2){let e=v();d("disabled",e.isBulkStopDisabled()),a(2),I(l(3,2,"Restart All Selected"))}}var Kt,Qn=(Kt=class{constructor(t,e,n,r,o){this.translate=t,this.snackbar=e,this.api=n,this.errorHandler=r,this.matDialog=o,this.checkedInstances=q.required(),this.resetBulkSelection=Ke(),this.requiredRoles=[je.VirtInstanceWrite],this.bulkActionStartedMessage=this.translate.instant("Requested action performed for selected Instances"),this.isBulkStartDisabled=S(()=>this.checkedInstances().every(c=>[ie.Running].includes(c.status))),this.isBulkStopDisabled=S(()=>this.checkedInstances().every(c=>[ie.Stopped].includes(c.status))),this.activeCheckedInstances=S(()=>this.checkedInstances().filter(c=>[ie.Running].includes(c.status))),this.stoppedCheckedInstances=S(()=>this.checkedInstances().filter(c=>[ie.Stopped].includes(c.status)))}
1onBulkStart(){this.stoppedCheckedInstances().forEach(t=>this.start(t.id)),this.resetBulkSelection.emit(),this.snackbar.success(this.translate.instant(this.bulkActionStartedMessage))}onBulkStop(){this.matDialog.open(gi,{data:Zt.Stop}).afterClosed().pipe(G(Boolean),ve(t=>{this.activeCheckedInstances().forEach(e=>this.stop(e.id,t)),this.snackbar.success(this.translate.instant(this.bulkActionStartedMessage)),this.resetBulkSelection.emit()}),y(this)).subscribe()}onBulkRestart(){this.matDialog.open(gi,{data:Zt.Restart}).afterClosed().pipe(G(Boolean),ve(t=>{this.activeCheckedInstances().forEach(e=>this.restart(e.id,t)),this.snackbar.success(this.translate.instant(this.bulkActionStartedMessage)),this.resetBulkSelection.emit()}),y(this)).subscribe()}start(t){this.api.job("virt.instance.start",[t]).pipe(this.errorHandler.catchError(),y(this)).subscribe()}stop(t,e){this.api.job("virt.instance.stop",[t,e]).pipe(this.errorHandler.catchError(),y(this)).subscribe()}restart(t,e){this.api.job("virt.instance.restart",[t,e]).pipe(this.errorHandler.catchError(),y(this)).subscribe()}},Kt.\u0275fac=function(e){return new(e||Kt)(u(j),u(Z),u(N),u(H),u(Ve))},Kt.\u0275cmp=D({type:Kt,selectors:[["ix-instance-list-bulk-actions"]],inputs:{checkedInstances:[1,"checkedInstances"]},outputs:{resetBulkSelection:"resetBulkSelection"},decls:17,vars:11,consts:[["menu","matMenu"],[1,"bulk-actions-container"],[1,"bulk-selected"],[1,"bulk-button-wrapper"],["mat-button","","ixTest","bulk-actions-menu",3,"matMenuTriggerFor",4,"ixRequiresRoles"],["mat-menu-item","","ixTest","start-selected",3,"disabled","click",4,"ixRequiresRoles"],["mat-menu-item","","ixTest","stop-selected",3,"disabled","click",4,"ixRequiresRoles"],["mat-menu-item","","ixTest","restart-selected",3,"disabled","click",4,"ixRequiresRoles"],["mat-button","","ixTest","bulk-actions-menu",3,"matMenuTriggerFor"],["name","mdi-menu-down",1,"menu-caret"],["mat-menu-item","","ixTest","start-selected",3,"click","disabled"],["mat-menu-item","","ixTest","stop-selected",3,"click","disabled"],["mat-menu-item","","ixTest","restart-selected",3,"click","disabled"]],template:function(e,n){e&1&&(p(0,"div",1)(1,"div",2)(2,"span"),h(3),m(),p(4,"span"),h(5),s(6,"translate"),m()(),p(7,"div",3)(8,"label"),h(9),s(10,"translate"),m(),x(11,Yl,4,4,"button",4),m(),p(12,"mat-menu",null,0),x(14,Jl,4,4,"button",5)(15,Xl,4,4,"button",6)(16,ep,4,4,"button",7),m()()),e&2&&(a(3),I(n.checkedInstances().length),a(2),I(l(6,7,"Selected")),a(4),I(l(10,9,"Bulk Actions")),a(2),d("ixRequiresRoles",n.requiredRoles),a(3),d("ixRequiresRoles",n.requiredRoles),a(),d("ixRequiresRoles",n.requiredRoles),a(),d("ixRequiresRoles",n.requiredRoles))},dependencies:[A,te,mt,ct,dt,M,w,Je,R],styles:[".bulk-selected[_ngcontent-%COMP%]{align-items:center;align-self:flex-end;display:inline-flex;font-size:16px;gap:4px;height:36px}.bulk-actions-container[_ngcontent-%COMP%]{align-items:flex-end;display:flex;gap:12px}.bulk-button-wrapper[_ngcontent-%COMP%]{display:flex;flex-direction:column}.bulk-button-wrapper[_ngcontent-%COMP%]   label[_ngcontent-%COMP%]{color:var(--fg2);font-size:10px;margin-bottom:2px}.bulk-button-wrapper[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{background-color:var(--bg1);border:1px solid var(--lines);font-size:12px}\n/*# sourceMappingURL=instance-list-bulk-actions.component-DQ644GLH.css.map */"],changeDetection:0}),Kt);Qn=Ql([T()],Qn);var Lr=(()=>{let t=class t{constructor(){this.instance=q.required(),this.status=S(()=>this.instance().status),this.statusLabels=Ir}get hostClasses(){var n;return[(n=this.status())==null?void 0:n.toLowerCase(),"has-cell"]}};t.\u0275fac=function(r){return new(r||t)},t.\u0275cmp=D({type:t,selectors:[["ix-instance-status-cell"]],hostVars:2,hostBindings:function(r,o){r&2&&yo(o.hostClasses)},inputs:{instance:[1,"instance"]},decls:4,vars:6,template:function(r,o){r&1&&(p(0,"span"),h(1),s(2,"mapValue"),s(3,"translate"),m()),r&2&&(a(),g(" ",l(3,4,it(2,1,o.status(),o.statusLabels)),"\n"))},dependencies:[M,w,Bi],styles:["[_nghost-%COMP%]{box-sizing:border-box;display:flex}.has-cell[_nghost-%COMP%]{border:2px solid transparent;border-radius:20px;font-weight:700;gap:6px;padding:3px 8px}.running[_nghost-%COMP%]{border-color:var(--green);color:var(--green)}.unknown[_nghost-%COMP%]{border-color:var(--yellow);color:var(--yellow)}.unknown[_nghost-%COMP%]   mat-spinner[_ngcontent-%COMP%]  circle{stroke:var(--yellow)}.stopped[_nghost-%COMP%]{border-color:var(--red);color:var(--red)}\n/*# sourceMappingURL=instance-status-cell.component-6S7HVW7A.css.map */"],changeDetection:0});let i=t;return i})();var ip=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},np=i=>[i,"start"],op=i=>[i,"restart"],rp=i=>[i,"stop"];function ap(i,t){if(i&1){let e=B();p(0,"button",11),s(1,"translate"),b("click",function(r){P(e);let o=v(2);return r.stopPropagation(),k(o.start())}),_(2,"ix-icon",12),m()}if(i&2){let e=v(2);d("ixTest",$(4,np,e.instance().name))("matTooltip",l(1,2,"Start"))}}function sp(i,t){if(i&1&&x(0,ap,3,6,"button",10),i&2){let e=v();d("ixRequiresRoles",e.requiredRoles)}}function lp(i,t){if(i&1){let e=B();p(0,"button",11),s(1,"translate"),b("click",function(r){P(e);let o=v(2);return r.stopPropagation(),k(o.restart())}),_(2,"ix-icon",13),m()}if(i&2){let e=v(2);d("ixTest",$(4,op,e.instance().name))("matTooltip",l(1,2,"Restart"))}}function pp(i,t){if(i&1){let e=B();p(0,"button",11),s(1,"translate"),b("click",function(r){P(e);let o=v(2);return r.stopPropagation(),k(o.stop())}),_(2,"ix-icon",14),m()}if(i&2){let e=v(2);d("ixTest",$(4,rp,e.instance().name))("matTooltip",l(1,2,"Stop"))}}function cp(i,t){if(i&1&&x(0,lp,3,6,"button",10)(1,pp,3,6,"button",10),i&2){let e=v();d("ixRequiresRoles",e.requiredRoles),a(),d("ixRequiresRoles",e.requiredRoles)}}var Qt,Yn=(Qt=class{constructor(t,e,n,r,o,c,f){this.dialog=t,this.translate=e,this.api=n,this.errorHandler=r,this.matDialog=o,this.snackbar=c,this.instancesStore=f,this.requiredRoles=[je.VirtInstanceWrite],this.instance=q.required(),this.selected=q(!1),this.isStopped=S(()=>this.instance().status===ie.Stopped),this.selectionChange=Ke(),this.typeLabels=br}start(){let t=this.instance().id;this.dialog.jobDialog(this.api.job("virt.instance.start",[t]),{title:this.translate.instant("Starting...")}).afterClosed().pipe(this.errorHandler.catchError(),y(this)).subscribe(()=>{this.snackbar.success(this.translate.instant("Instance started")),this.instancesStore.selectInstance(this.instance().id)})}stop(){let t=this.instance().id;this.matDialog.open(gi,{data:Zt.Stop}).afterClosed().pipe(G(Boolean),Ce(e=>this.dialog.jobDialog(this.api.job("virt.instance.stop",[t,e]),{title:this.translate.instant("Stopping...")}).afterClosed().pipe(this.errorHandler.catchError())),y(this)).subscribe(()=>{this.snackbar.success(this.translate.instant("Instance stopped")),this.instancesStore.selectInstance(this.instance().id)})}restart(){let t=this.instance().id;this.matDialog.open(gi,{data:Zt.Restart}).afterClosed().pipe(G(Boolean),Ce(e=>this.dialog.jobDialog(this.api.job("virt.instance.restart",[t,e]),{title:this.translate.instant("Restarting...")}).afterClosed().pipe(this.errorHandler.catchError())),y(this)).subscribe(()=>{this.snackbar.success(this.translate.instant("Instance restarted")),this.instancesStore.selectInstance(this.instance().id)})}},Qt.\u0275fac=function(e){return new(e||Qt)(u(ue),u(j),u(N),u(H),u(Ve),u(Z),u(ee))},Qt.\u0275cmp=D({type:Qt,selectors:[["ix-instance-row"]],inputs:{instance:[1,"instance"],selected:[1,"selected"]},outputs:{selectionChange:"selectionChange"},decls:15,vars:11,consts:[[1,"cell","checkbox"],["color","primary",3,"click","change","ixTest","checked"],[1,"cell","cell-name"],[1,"name"],[1,"cell","cell-status"],[3,"instance"],[1,"cell"],[1,"cell","actions"],["mat-icon-button","","matTooltipPosition","above",3,"ixTest","matTooltip"],["name","mdi-chevron-right",1,"instance-details"],["mat-icon-button","","matTooltipPosition","above",3,"ixTest","matTooltip","click",4,"ixRequiresRoles"],["mat-icon-button","","matTooltipPosition","above",3,"click","ixTest","matTooltip"],["name","mdi-play-circle"],["name","mdi-restart"],["name","mdi-stop-circle"]],template:function(e,n){e&1&&(p(0,"div",0)(1,"mat-checkbox",1),b("click",function(o){return o.stopPropagation()})("change",function(){return n.selectionChange.emit()}),m()(),p(2,"div",2)(3,"span",3),h(4),m()(),p(5,"div",4),_(6,"ix-instance-status-cell",5),m(),p(7,"div",6),h(8),s(9,"mapValue"),s(10,"translate"),m(),p(11,"div",7),x(12,sp,1,1,"button",8)(13,cp,2,2),_(14,"ix-icon",9),m()),e&2&&(a(),d("ixTest",n.instance().name)("checked",n.selected()),a(3),I(n.instance().name),a(2),d("instance",n.instance()),a(2),I(l(10,9,it(9,6,n.instance().type,n.typeLabels))),a(4),C(n.isStopped()?12:13))},dependencies:[te,R,M,w,xn,Ee,Mo,ze,gn,vn,Je,Bi,Lr],styles:['[_nghost-%COMP%]{align-items:center;border-bottom:1px solid var(--lines);color:var(--fg2);font-weight:500;grid-gap:8px;min-height:48px;position:relative}[_nghost-%COMP%]   .cell[_ngcontent-%COMP%]{align-items:center;display:inline-flex;min-height:48px}@media (max-width: 600px){[_nghost-%COMP%]   .cell[_ngcontent-%COMP%]{display:none}}[_nghost-%COMP%]   .cell[_ngcontent-%COMP%]:first-child{left:0;position:-webkit-sticky;position:sticky}@media (max-width: 600px){[_nghost-%COMP%]   .cell[_ngcontent-%COMP%]:first-child{display:inline-flex}}@media (max-width: 600px){[_nghost-%COMP%]   .cell[_ngcontent-%COMP%]:nth-child(2){display:inline-flex}[_nghost-%COMP%]   .cell[_ngcontent-%COMP%]:nth-child(2) > div[_ngcontent-%COMP%]{padding:0}}[_nghost-%COMP%]   .cell.checkbox[_ngcontent-%COMP%]{padding-left:6px}[_nghost-%COMP%]   .cell.checkbox[_ngcontent-%COMP%]   mat-checkbox[_ngcontent-%COMP%]{margin:0}[_nghost-%COMP%]   .cell.actions[_ngcontent-%COMP%]{display:flex;gap:4px;justify-content:flex-end;padding-right:8px}[_nghost-%COMP%]:hover{background-color:var(--hover-bg)}.selected[_nghost-%COMP%]{background-color:var(--hover-bg)}
1.selected[_nghost-%COMP%]   .cell-name[_ngcontent-%COMP%]:before{background:var(--primary);content:"";height:100%;left:0;opacity:1;position:absolute;top:0;width:6px;z-index:1}[_nghost-%COMP%]   .instance-details[_ngcontent-%COMP%]{display:none}@media (max-width: 1280px){[_nghost-%COMP%]   .instance-details[_ngcontent-%COMP%]{align-items:center;display:inline-flex;min-width:24px}}\n/*# sourceMappingURL=instance-row.component-RPR3E4L7.css.map */'],changeDetection:0}),Qt);Yn=ip([T()],Yn);var mp=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},dp=(i,t)=>t.id;function up(i,t){if(i&1){let e=B();p(0,"ix-instance-list-bulk-actions",13),b("resetBulkSelection",function(){P(e);let r=v();return k(r.resetSelection())}),m()}if(i&2){let e=v();d("checkedInstances",e.checkedInstances)}}function fp(i,t){if(i&1){let e=B();p(0,"mat-checkbox",14),b("change",function(r){P(e);let o=v();return k(o.toggleAllChecked(r.checked))}),m()}if(i&2){let e=v();d("checked",e.isAllSelected)("indeterminate",!e.isAllSelected&&!!e.selection.selected.length)("disabled",e.filteredInstances().length===0)}}function hp(i,t){if(i&1&&_(0,"ix-empty",11),i&2){let e=v();d("conf",e.emptyConfig())}}function _p(i,t){if(i&1){let e=B();p(0,"ix-instance-row",15),b("click",function(){let r=P(e).$implicit,o=v();return k(o.navigateToDetails(r))})("selectionChange",function(){let r=P(e).$implicit,o=v();return k(o.selection.toggle(r.id))})("keydown.enter",function(){let r=P(e).$implicit,o=v();return k(o.navigateToDetails(r))}),m()}if(i&2){let e,n=t.$implicit,r=v();st("selected",((e=r.selectedInstance())==null?null:e.id)===n.id),d("instance",n)("selected",r.selection.isSelected(n.id))}}var Yt,Jn=(Yt=class{get isAllSelected(){return this.selection.selected.length===this.filteredInstances().length}get checkedInstances(){return this.selection.selected.map(t=>this.instances().find(e=>e.id===t)).filter(t=>!!t)}constructor(t,e,n,r,o,c){this.store=t,this.router=e,this.instancesStore=n,this.translate=r,this.searchDirectives=o,this.activatedRoute=c,this.instanceId=Me(this.activatedRoute.params.pipe(X(f=>f.id))),this.isMobileView=q(),this.toggleShowMobileDetails=Ke(),this.searchQuery=L(""),this.window=vo(Ti),this.selection=new To(!0,[]),this.instances=this.store.instances,this.isLoading=this.store.isLoading,this.selectedInstance=this.instancesStore.selectedInstance,this.isSelectedInstanceVisible=S(()=>{var f;return(f=this.filteredInstances())==null?void 0:f.some(V=>{var O;return V.id===((O=this.selectedInstance())==null?void 0:O.id)})}),this.filteredInstances=S(()=>(this.instances()||[]).filter(f=>{var V;return(V=f==null?void 0:f.name)==null?void 0:V.toLocaleLowerCase().includes(this.searchQuery().toLocaleLowerCase())})),this.emptyConfig=S(()=>{var f,V;return(f=this.searchQuery())!=null&&f.length&&!((V=this.filteredInstances())!=null&&V.length)?{type:nt.NoSearchResults,title:this.translate.instant("No Search Results."),message:this.translate.instant("No matching results found"),large:!1}:{type:nt.NoPageData,title:this.translate.instant("No instances"),message:this.translate.instant("Instances you create will automatically appear here."),large:!0}}),ai(this.instanceId).pipe(ri(),ve(f=>{this.instancesStore.selectInstance(f)}),y(this)).subscribe(),setTimeout(()=>{this.handlePendingGlobalSearchElement()})}onSearch(t){this.searchQuery.set(t)}toggleAllChecked(t){t?this.filteredInstances().forEach(e=>this.selection.select(e.id)):this.selection.clear()}navigateToDetails(t){this.router.navigate(["/instances","view",t.id]),this.isMobileView()&&this.toggleShowMobileDetails.emit(!0)}resetSelection(){this.selection.clear()}handlePendingGlobalSearchElement(){var e;let t=this.searchDirectives.pendingUiHighlightElement;t&&((e=this.searchDirectives.get(t))==null||e.highlight(t))}},Yt.\u0275fac=function(e){return new(e||Yt)(u(ee),u(lt),u(ee),u(j),u(Uo),u(Mi))},Yt.\u0275cmp=D({type:Yt,selectors:[["ix-instance-list"]],inputs:{isMobileView:[1,"isMobileView"]},outputs:{toggleShowMobileDetails:"toggleShowMobileDetails"},decls:24,vars:19,consts:[[1,"table-header"],[3,"checkedInstances"],[1,"item-search"],[1,"loader-bar",3,"loading"],[3,"search","maxLength","disabled","value"],[1,"instances"],[1,"instances-header-row"],[1,"cell","checkbox"],["color","primary","ixTest","select-all-app",3,"checked","indeterminate","disabled"],[1,"cell"],[1,"cell","actions"],[3,"conf"],[3,"instance","selected"],[3,"resetBulkSelection","checkedInstances"],["color","primary","ixTest","select-all-app",3,"change","checked","indeterminate","disabled"],[3,"click","
1selectionChange","keydown.enter","instance","selected"]],template:function(e,n){e&1&&(p(0,"div",0),x(1,up,1,1,"ix-instance-list-bulk-actions",1),m(),p(2,"div",2),_(3,"ix-fake-progress-bar",3),p(4,"ix-search-input1",4),b("search",function(o){return n.onSearch(o)}),m()(),p(5,"div",5)(6,"div",6)(7,"div",7),x(8,fp,1,3,"mat-checkbox",8),m(),p(9,"div",9),h(10),s(11,"translate"),m(),p(12,"div",9),h(13),s(14,"translate"),m(),p(15,"div",9),h(16),s(17,"translate"),m(),p(18,"div",10),h(19),s(20,"translate"),m()(),x(21,hp,1,1,"ix-empty",11),ne(22,_p,1,4,"ix-instance-row",12,dp),m()),e&2&&(a(),C(n.checkedInstances.length>0?1:-1),a(2),d("loading",n.isLoading()),a(),d("maxLength",100)("disabled",!n.instances().length)("value",n.searchQuery()),a(4),C(n.instances().length?8:-1),a(2),I(l(11,11,"Name")),a(3),I(l(14,13,"Status")),a(3),I(l(17,15,"Type")),a(3),I(l(20,17,"Controls")),a(2),C(n.instances()!==void 0&&!n.filteredInstances().length?21:-1),a(),oe(n.filteredInstances()))},dependencies:[M,w,or,Oi,Yn,gn,vn,hi,R,Qn],styles:["[_nghost-%COMP%]{height:100%}[_nghost-%COMP%]   .item-search[_ngcontent-%COMP%]{background-color:var(--bg2);padding:16px;position:-webkit-sticky;position:sticky;top:-17px;z-index:2}[_nghost-%COMP%]   .loader-bar[_ngcontent-%COMP%]{height:2px;left:0;position:absolute;top:0;z-index:3}[_nghost-%COMP%]   .table-header[_ngcontent-%COMP%]{align-items:flex-end;color:var(--fg1);display:flex;justify-content:flex-end;padding:13px 0}[_nghost-%COMP%]   .table-header[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{align-items:center;display:flex}[_nghost-%COMP%]   .instances[_ngcontent-%COMP%]{background-color:var(--bg2);color:var(--fg1);display:flex;flex-direction:column}[_nghost-%COMP%]   .instances-header-row[_ngcontent-%COMP%]{align-items:center;background:var(--bg1);border-bottom:1px solid var(--lines);color:var(--fg2);display:grid;grid-gap:8px;min-height:48px;min-width:fit-content;position:-webkit-sticky;position:sticky;top:50px;width:100%;z-index:2}[_nghost-%COMP%]   .instances-header-row[_ngcontent-%COMP%]   .cell[_ngcontent-%COMP%]{align-items:center;display:flex;font-weight:700;height:100%;justify-content:flex-start;padding:4px 0}@media (max-width: 600px){[_nghost-%COMP%]   .instances-header-row[_ngcontent-%COMP%]   .cell[_ngcontent-%COMP%]{display:none!important}}[_nghost-%COMP%]   .instances-header-row[_ngcontent-%COMP%]   .cell[_ngcontent-%COMP%]:first-child{left:0;position:-webkit-sticky;position:sticky}@media (max-width: 600px){[_nghost-%COMP%]   .instances-header-row[_ngcontent-%COMP%]   .cell[_ngcontent-%COMP%]:first-child{display:block!important}}@media (max-width: 600px){[_nghost-%COMP%]   .instances-header-row[_ngcontent-%COMP%]   .cell[_ngcontent-%COMP%]:nth-child(2){display:flex!important}}[_nghost-%COMP%]   .instances-header-row[_ngcontent-%COMP%]   .cell.checkbox[_ngcontent-%COMP%]{padding-left:6px}[_nghost-%COMP%]   .instances-header-row[_ngcontent-%COMP%]   .cell.checkbox[_ngcontent-%COMP%]   mat-checkbox[_ngcontent-%COMP%]{margin:0}[_nghost-%COMP%]   .instances-header-row[_ngcontent-%COMP%]   .cell.actions[_ngcontent-%COMP%]{justify-content:flex-end;padding-right:12px}[_nghost-%COMP%]   .instances-header-row[_ngcontent-%COMP%], [_nghost-%COMP%]   ix-instance-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:45px minmax(160px,auto) minmax(100px,120px) 100px 88px}@media (max-width: 600px){[_nghost-%COMP%]   .instances-header-row[_ngcontent-%COMP%], [_nghost-%COMP%]   ix-instance-row[_ngcontent-%COMP%]{grid-template-columns:45px minmax(160px,auto) minmax(100px,120px)}}[_nghost-%COMP%]   ix-instance-row[_ngcontent-%COMP%]{cursor:pointer}\n/*# sourceMappingURL=instance-list.component-RNO37QYT.css.map */"],changeDetection:0}),Yt);Jn=mp([T()],Jn);var vp=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o};function gp(i,t){if(i&1&&_(0,"ix-instance-details",7),i&2){v();let e=ln(11);d("instance",e)}}var Jt,nn=(Jt=class{constructor(t,e,n,r,o){this.configStore=t,this.instancesStore=e,this.router=n,this.dialogService=r,this.window=o,this.selectedInstance=this.instancesStore.selectedInstance,this.searchableElements=Br,this.router.events.pipe(G(c=>c instanceof wo),y(this)).subscribe(()=>{var c,f,V;(V=(f=(c=this.router.getCurrentNavigation())==null?void 0:c.extras)==null?void 0:f.state)!=null&&V.hideMobileDetails&&this.instancesStore.resetInstance()})}ngOnInit(){this.configStore.initialize(),this.instancesStore.initialize(),this.configStore.state$.pipe(G(e=>!!(e!=null&&e.config)),X(e=>e.config.state),ri(),y(this)).subscribe(()=>this.instancesStore.initialize()),!this.window.localStorage.getItem("showNewVmInstancesWarning")&&(this.dialogService.closeAllDialogs(),this.dialogService.warn("Warning","Containers powered by Incus are experimental and only recommended for advanced users. Make all configuration changes using the TrueNAS UI. Operations using the command line are not supported.").pipe(y(this)).subscribe(()=>{this.window.localStorage.setItem("showNewVmInstancesWarning","true")}))}},Jt.\u0275fac=function(e){return new(e||Jt)(u(ht),u(ee),u(lt),u(ue),u(Ti))},Jt.\u0275cmp=D({type:Jt,selectors:[["ix-all-instances"]],decls:13,vars:13,consts:[["masterDetailVie
1w","masterDetailViewContext"],["masterList",""],[3,"customBadgeTitle"],[3,"showDetails","selectedItem"],["master","",3,"toggleShowMobileDetails","ixUiSearch","isMobileView"],["detail-header",""],["detail",""],[3,"instance"]],template:function(e,n){if(e&1){let r=B();p(0,"ix-page-header",2),s(1,"translate"),_(2,"ix-all-instances-header"),m(),p(3,"ix-master-detail-view",3,0)(5,"ix-instance-list",4,1),b("toggleShowMobileDetails",function(c){P(r);let f=He(4);return k(f.toggleShowMobileDetails(c))}),m(),Ie(7,5),h(8),s(9,"translate"),Se(),Ie(10,6),bi(11),x(12,gp,1,1,"ix-instance-details",7),Se(),m()}if(e&2){let r,o=He(4),c=He(6);d("customBadgeTitle",l(1,8,"Experimental")),a(3),d("showDetails",c.isSelectedInstanceVisible())("selectedItem",n.selectedInstance()),a(2),d("ixUiSearch",n.searchableElements.elements.list)("isMobileView",o.isMobileView()),a(3),Ci(" ",l(9,10,"Details for")," ",(r=n.selectedInstance())==null?null:r.name," "),a(3);let f=sn(n.selectedInstance());a(),C(f?12:-1)}},dependencies:[yn,M,w,Nn,Fr,Jn,vr,ki],encapsulation:2,changeDetection:0}),Jt);nn=vp([T()],nn);var xp=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},Xt,Xn=(Xt=class{get connectionData(){return{virt_instance_id:this.instanceId(),use_console:!0}}constructor(t){this.aroute=t,this.instanceId=L("")}preInit(){return new on(t=>{this.aroute.params.pipe(y(this)).subscribe(e=>{this.instanceId.set(e.id),t.next()})})}},Xt.\u0275fac=function(e){return new(e||Xt)(u(Mi))},Xt.\u0275cmp=D({type:Xt,selectors:[["ix-instance-container"]],decls:1,vars:1,consts:[[3,"conf"]],template:function(e,n){e&1&&_(0,"ix-terminal",0),e&2&&d("conf",n)},dependencies:[Mn],encapsulation:2,changeDetection:0}),Xt);Xn=xp([T()],Xn);var Cp=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},ei,eo=(ei=class{get connectionData(){return{virt_instance_id:this.instanceId(),use_console:!1}}constructor(t){this.aroute=t,this.instanceId=L("")}preInit(){return new on(t=>{this.aroute.params.pipe(y(this)).subscribe(e=>{this.instanceId.set(e.id),t.next()})})}},ei.\u0275fac=function(e){return new(e||ei)(u(Mi))},ei.\u0275cmp=D({type:ei,selectors:[["ix-instance-shell"]],decls:1,vars:1,consts:[[3,"conf"]],template:function(e,n){e&1&&_(0,"ix-terminal",0),e&2&&d("conf",n)},dependencies:[Mn],encapsulation:2,changeDetection:0}),ei);eo=Cp([T()],eo);var bp=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o};function yp(i,t){i&1&&_(0,"ix-icon",5)}function Ip(i,t){if(i&1){let e=B();p(0,"div",4),b("click",function(){let r=P(e).$implicit,o=v();return k(o.onSectionClick(r))}),h(1),x(2,yp,1,0,"ix-icon",5),m()}if(i&2){let e=t.$implicit,n=v();a(),g(" ",e.label()," "),a(),C(n.isSectionValid(e)?-1:2)}}var ti,to=(ti=class{constructor(t,e,n,r){this.formBuilder=t,this.formService=e,this.cdr=n,this.navigateAndHighlight=r,this.searchControl=this.formBuilder.control(""),this.searchOptions=L([]),this.iconMarker=Cn,this.sections=L([]),this.sectionsValidity=new Map,this.sectionControlsSubscriptions=new Map,this.sectionControlsValidities=new Map,this.handleControlsUpdates(),this.handleSectionUpdates()}handleControlsUpdates(){this.formService.controlNamesWithLabels$.pipe(ho(0),X(t=>t.map(e=>({label:e.label,value:e.name}))),y(this)).subscribe({next:t=>this.searchOptions.set(t)})}handleSectionUpdates(){this.formService.controlSections$.pipe(y(this)).subscribe({next:t=>{this.updateControlsStatusUpdates(t),this.sections.set(t.map(({section:e})=>e))}})}updateControlsStatusUpdates(t){for(let{section:e,controls:n}of t){this.resetSubscriptionsAndValidities(e),this.initializeSectionValidity(e,n);let r=this.sectionControlsSubscriptions.get(e)||new Map;for(let o of n){this.setControlValidity(e,o,o?o.valid:!0);let c=o==null?void 0:o.statusChanges.pipe(y(this)).subscribe({next:()=>{this.setControlValidity(e,o,o.valid)}});r.set(o,c)}this.sectionControlsSubscriptions.set(e,r)}}initializeSectionValidity(t,e){let n=e.every(r=>r?r.valid||r.disabled:!0);this.sectionsValidity.set(t,n)}setControlValidity(t,e,n){let r=this.sectionControlsValidities.get(t)||new Map;r.set(e,(e==null?void 0:e.disabled)||n),this.sectionControlsValidities.set(t,r),this.sectionsValidity.set(t,Array.from(r.values()).every(Boolean)),this.cdr.markForCheck()}resetSubscriptionsAndValidities(t){var n;this.sectionControlsValidities.set(t,new Map);let e=Array.from(((n=this.sectionControlsSubscriptions.get(t))==null?void 0:n.values())||[]);for(let r of e)r==null||r.unsubscribe();this.sectionControlsSubscriptions.set(t,new Map)}isSectionValid(t){return!!this.sectionsValidity.get(t)}ngOnInit(){this.handleSearchControl()}onSectionClick(t){this.navigateAndHighlight.scrollIntoView(t.elementRef.nativeElement)}handleSearchControl(){this.searchControl.valueChanges.pipe(fo(100),ri(),y(this)).subscribe(t=>{let e=this.searchOptions().find(n=>n.value===t)||this.searchOptions().find(n=>n.label.toLocaleLowerCase()===t.toLocaleLowerCase());e&&this.onControlClick(e.value.toString(),e.label)})}onControlClick(t,e){let n=this.formService.getElementByControlName(t)||this.formService.getElementByLabel(e);n&&this.navigateAndHighlight.scrollIntoView(n)}},ti.\u0275fac=function(e){return new(e||ti)(u(Te),u(jo),u(So),u(Ho))},ti.\u0275cmp=D({type:ti,selectors:[["ix-form-glossary"]],decls:7,vars:9,consts:[[1,"search-container"],[1,"search-card"],[3,"prefixIcon","formControl","placeholder","autocompleteOptions","label"],[1,"section"],[1,"section",3,"click"],["name","warning"]],template:function(e,n){e&1&&(p(0,"div",0)(1,"div",1),_(2,"ix-input",2),s(3,"translate"),s(4,"translate"),ne(5,Ip,3,2,"div",3,tt),m()()),e&2&&(a(2),d("prefixIcon",
1n.iconMarker("search"))("formControl",n.searchControl)("placeholder",l(3,5,"Search Input Fields"))("autocompleteOptions",n.searchOptions())("label",l(4,7,"Search")),a(3),oe(n.sections()))},dependencies:[ye,M,w,Q,K,wi,te],styles:["[_nghost-%COMP%]{position:relative}@media (max-width: 960px){[_nghost-%COMP%]{display:none}}.search-container[_ngcontent-%COMP%]{margin-left:16px;max-width:250px;position:-webkit-sticky;position:sticky;top:0;width:100%}.search-container[_ngcontent-%COMP%]   .search-card[_ngcontent-%COMP%]{background-color:var(--bg2);display:flex;flex-direction:column;gap:5px;padding:0 14px 14px;position:-webkit-sticky;position:sticky;top:10px}.search-container[_ngcontent-%COMP%]   .search-card[_ngcontent-%COMP%]   .section[_ngcontent-%COMP%]{align-items:center;color:var(--fg1);display:flex;font-family:var(--font-family-body);font-size:15px;gap:5px;padding:10px}.search-container[_ngcontent-%COMP%]   .search-card[_ngcontent-%COMP%]   .section[_ngcontent-%COMP%]   ix-icon[_ngcontent-%COMP%]{color:var(--red)}.search-container[_ngcontent-%COMP%]   .search-card[_ngcontent-%COMP%]   .section[_ngcontent-%COMP%]:hover{background-color:var(--contrast-lighter);cursor:pointer}\n/*# sourceMappingURL=ix-form-glossary.component-PZBODCWR.css.map */"],changeDetection:0}),ti);to=bp([T()],to);var Sp=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},Dp=()=>["close-instance-form"],Mp=()=>["images-table"],Tp=i=>["select-image",i],wp=()=>["image-table-header"],Pp=i=>["image-table-row",i];function kp(i,t){i&1&&(p(0,"th",23),h(1),s(2,"translate"),m()),i&2&&(a(),I(l(2,1,"Label")))}function Bp(i,t){if(i&1&&(p(0,"td",24),h(1),m()),i&2){let e=t.$implicit;a(),I(e.label)}}function Op(i,t){i&1&&(p(0,"th",23),h(1),s(2,"translate"),m()),i&2&&(a(),I(l(2,1,"OS")))}function Vp(i,t){if(i&1&&(p(0,"td",24),h(1),m()),i&2){let e=t.$implicit;a(),I(e.os)}}function Rp(i,t){i&1&&(p(0,"th",23),h(1),s(2,"translate"),m()),i&2&&(a(),I(l(2,1,"Release")))}function Ep(i,t){if(i&1&&(p(0,"td",24),h(1),m()),i&2){let e=t.$implicit;a(),I(e.release)}}function Np(i,t){i&1&&(p(0,"th",23),h(1),s(2,"translate"),m()),i&2&&(a(),I(l(2,1,"Archs")))}function jp(i,t){if(i&1&&(p(0,"td",24),h(1),m()),i&2){let e=t.$implicit;a(),I(e.archs)}}function Fp(i,t){i&1&&(p(0,"th",23),h(1),s(2,"translate"),m()),i&2&&(a(),I(l(2,1,"Variant")))}function Lp(i,t){if(i&1&&(p(0,"td",24),h(1),m()),i&2){let e=t.$implicit;a(),I(e.variant)}}function Ap(i,t){i&1&&_(0,"th",23)}function Up(i,t){if(i&1){let e=B();p(0,"td",24)(1,"button",25),b("click",function(){let r=P(e).$implicit,o=v();return k(o.selectImage(r))}),h(2),s(3,"translate"),m()()}if(i&2){let e=t.$implicit;a(),d("ixTest",$(4,Tp,e.label)),a(),g(" ",l(3,2,"Select")," ")}}function Hp(i,t){i&1&&_(0,"tr",26),i&2&&d("ixTest",re(1,wp))}function zp(i,t){if(i&1&&_(0,"tr",27),i&2){let e=t.$implicit;d("ixTest",$(1,Pp,e))}}function qp(i,t){if(i&1&&_(0,"ix-empty",22),i&2){let e=v();d("conf",e.entityEmptyConf())}}var ii,io=(ii=class{constructor(t,e,n,r,o,c){this.api=t,this.dialogRef=e,this.fb=n,this.translate=r,this.errorHandler=o,this.data=c,this.columns=["label","os","release","archs","variant","actions"],this.filterForm=this.fb.group({os:[""],variant:[""],release:[""],searchQuery:[""]}),this.images=L([]),this.filteredImages=L([]),this.entityEmptyConf=L({type:nt.Loading,large:!0}),this.filterForm.valueChanges.pipe(y(this)).subscribe(()=>this.filterImages())}ngOnInit(){this.getImages()}onClose(){this.dialogRef.close()}selectImage(t){this.dialogRef.close(t)}getImages(){this.api.call("virt.instance.image_choices",[{remote:this.data.remote}]).pipe(oi(t=>(this.errorHandler.showErrorModal(t),z(t))),y(this)).subscribe(t=>{this.setFilteringOptions(t),this.filterImages()})}setFilteringOptions(t){let e=new Set,n=new Set,r=new Set,o=Object.entries(t).filter(([c,f])=>{var V;return(V=f==null?void 0:f.instance_types)==null?void 0:V.includes(this.data.type)}).map(([c,f])=>_e(Y({},f),{id:c}));this.images.set(o),o.forEach(c=>{e.add(c.os),n.add(c.variant),r.add(c.release)}),this.osOptions$=z([...e].map(c=>({label:c,value:c}))),this.variantOptions$=z([...n].map(c=>({label:c,value:c}))),this.releaseOptions$=z([...r].map(c=>({label:c,value:c})))}filterImages(){let{os:t,variant:e,release:n,searchQuery:r}=this.filterForm.value,o=this.images().filter(c=>{let f=t?c.os===t:!0,V=e?c.variant===e:!0,O=n?c.release===n:!0,ae=r?c.label.toLowerCase().includes(r.toLowerCase()):!0;return f&&V&&O&&ae});o.length||this.entityEmptyConf.set({type:nt.NoSearchResults,large:!0,title:this.translate.instant("No images found")}),this.filteredImages.set(o)}},ii.\u0275fac=function(e){return new(e||ii)(u(N),u(Oe),u(Te),u(j),u(H),u(pt))},ii.\u0275cmp=D({type:ii,selectors:[["ix-select-image-dialog"]],decls:42,vars:33,consts:[[1,"header"],["mat-dialog-title",""],["mat-icon-button","","id","ix-close-icon",3,"click","keydown.enter","ixTest"],["name","cancel"],[3,"formGroup"],[3,"title"],["formControlName","searchQuery",3,"label"],["formControlName","os",3,"label","options"],["formControlName","variant",3,"label","options"],["formControlName","release",3,"label","options"],[1,"table-wrapper"],["mat-table","",3,"dataSource","ixTest"],["matColumnDef","label"],["mat-header-cell","",4,"matHeaderCellDef"],["mat-cell","",4,"matCellDef"],["matColumnDef","os"],["matColumnDef","release"],["matColumnDef","archs"],["matColumnDef","variant"],["matColumnDef","actions"],["mat-header-row","",3,"ixTest",4,"matHeaderRowDef"],["mat-row","",3,"ixTest",4,"matRowDef","matRowDefColumns"],[3,"conf"],["mat-header-cell",""],["mat-cell",""],["mat-button","","type","button",3,"click","ixTest"],["mat-header-row","",3,"ixTest"],["mat-row","",3,"ixTest"]],template:function(e,n){e&1&&(p(0,"div",0)(1,"h1",1),h(2),s(3,"translate"),m(),p(4,"button",2),s(5,"translate"),b("click",function(){return n.onClose()})("keydown.enter",function(){return n.onClose()}),_(6,"ix-icon",3),m()(),p(7,"mat-dialog-content")(8,"form",4)(9,"ix-fieldset",5),s(10,"translate"),_(11,"ix-input",6),s(12,"translate"),_(13,"ix-select",7),s(14,"translate"),_(15,"ix-select",8),s(16,"translate"),_(17,"ix-select",9),s(18,"translate"),m(),p(19,"div",10)(20,"table",11),Ie(21,12),x(22,kp,3,3,"th",13)(23,Bp,2,1,"td",14),Se(),Ie(24,15),x(25,Op,3,3,"th",13)(26,Vp,2,1,"td",14),Se(),Ie(27,16),x(28,Rp,3,3,"th",13)(29,Ep,2,1,"td",14),Se(),Ie(30,17),x(31,Np,3,3,"th",13)(32,jp,2,1,"td",14),Se(),Ie(33,18),x(34,Fp,3,3,"th",13)(35,Lp,2,1,"td",14),Se(),Ie(36,19),x(37,Ap,1,0,"th",13)(38,Up,4,6,"td",14),Se(),x(39,Hp,1,2,"tr",20)(40,zp,1,3,"tr",21),m(),x(41,qp,1,1,"ix-empty",22),m()()()),e&2&&(a(2),I(l(3,17,"Select Image")),a(2),d("ixTest",re(31,Dp)),Qe("aria-label",l(5,19,"Close Instance Form")),a(4),d("formGroup",n.filterForm),a(),d("title",l(10,21,"Filters")),a(2),d("label",l(12,23,"Search Images")),a(2),d("label",l(14,25,"OS"))("options",n.osOptions$),a(2),d("label",l(16,27,"Variant"))("options",n.variantOptions$),a(2),d("label",l(18,29,"Release"))("options",n.releaseOptions$),a(3),d("dataSource",n.filteredImages())("ixTest",re(32,Mp)),a(19),d("matHeaderRowDef",n.columns),a(),d("matRowDefColumns",n.columns),a(),C(n.filteredImages().length?-1:41))},dependencies:[xr,Ei,ji,Ui,Fi,Ni,Hi,Li,Ai,zi,qi,Ge,Fe,Q,pe,K,le,ce,me,ci,Vo,Re,M,w,te,ye,A,ze,R,hi],styles:["@media (max-width: 960px){[_nghost-%COMP%]     .table-wrapper{overflow:auto}}[_nghost-%COMP%]     .table-wrapper table thead{position:-webkit-sticky;position:sticky;top:0;z-index:2}[_nghost-%COMP%]     .table-wrapper tr td{line-height:22px}[_nghost-%COMP%]     ix-fieldset fieldset{padding:0}@media (min-width: 960px){[_nghost-%COMP%]     ix-fieldset fieldset{padding:0 15px 0 0;position:-webkit-sticky;position:sticky;top:0}}.header[_ngcontent-%COMP%]{align-items:center;display:flex;justify-content:space-between}.header[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{margin-bottom:0;padding-top:20px}.header[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{margin-right:20px}form[_ngcontent-%COMP%]{align-items:flex-start;display:grid;grid-template-columns:250px 1fr;height:60vh;margin-bottom:20px;overflow:auto}@media (max-width: 1280px){form[_ngcontent-%COMP%]{grid-template-columns:200px 1fr}}@media (max-width: 960px){form[_ngcontent-%COMP%]{display:block}}form[_ngcontent-%COMP%]   ix-fieldset[_ngcontent-%COMP%]{border-right:1px solid var(--lines);height:100%}tr[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]:last-child{text-align:right}\n/*# sourceMappingURL=select-image-dialog.component-YLDVLPSU.css.map */"],changeDetection:0}),ii);io=Sp([T()],io);var Gp=function(i,t,e,n){var r=arguments.length,o=r<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,e):n,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(i,t,e,n);else for(var f=i.length-1;f>=0;f--)(c=i[f])&&(o=(r<3?c(o):r>3?c(t,e,o):c(t,e))||o);return r>3&&o&&Object.defineProperty(t,e,o),o},$p=(i,t)=>t.value,Wp=i=>["remove-pci",i];function Zp(i,t){i&1&&_(0,"ix-readonly-badge")}function Kp(i,t){if(i&1&&(_(0,"ix-icon-group",5),s(1,"translate")),i&2){let e=v();d("label",l(1,4,e.instancesHelptext.instance_type_placeholder))("required",!0)("options",e.virtualizationTypeIcons)("showLabels",!0)}}function Qp(i,t){if(i&1&&(_(0,"ix-radio-group",6),s(1,"translate")),i&2){let e=v();d("label",l(1,3,"VM Image Options"))("required",!0)("options",e.imageSourceTypeOptions$)}}function Yp(i,t){if(i&1){let e=B();p(0,"div",7),_(1,"ix-input",18),s(2,"translate"),p(3,"button",19),b("click",function(){P(e);let r=v();return k(r.onBrowseCatalogImages())}),h(4),s(5,"translate"),m()()}i&2&&(a(),d("readonly",!0)("label",l(2,4,"Image"))("required",!0),a(3),I(l(5,6,"Browse Catalog")))}function Jp(i,t){if(i&1){let e=B();p(0,"div",7),_(1,"ix-input",20),s(2,"translate"),p(3,"button",21),b("click",function(){P(e);let r=v();return k(r.onSelectRootVolume())}),h(4),s(5,"translate"),m()()}i&2&&(a(),d("readonly",!0)("label",l(2,4,"Volume"))("required",!0),a(3),I(l(5,6,"Select Volume")))}function Xp(i,t){if(i&1){let e=B();
1p(0,"ix-list-item",24),s(1,"translate"),b("delete",function(){let r=P(e).$index,o=v(2);return k(o.removeEnvironmentVariable(r))}),p(2,"div",25),_(3,"ix-input",26),s(4,"translate"),s(5,"translate"),_(6,"ix-input",27),s(7,"translate"),s(8,"translate"),m()()}if(i&2){let e=t.$index,n=v(2);d("formGroupName",e)("label",l(1,8,"Environment Variable")),a(3),d("label",l(4,10,n.instancesHelptext.env_name_placeholder))("tooltip",l(5,12,n.instancesHelptext.env_name_tooltip))("required",!0),a(3),d("label",l(7,14,n.instancesHelptext.env_value_placeholder))("tooltip",l(8,16,n.instancesHelptext.env_value_tooltip))("required",!0)}}function ec(i,t){if(i&1){let e=B();p(0,"ix-form-section",3),s(1,"translate"),p(2,"ix-list",22),s(3,"translate"),b("add",function(){P(e);let r=v();return k(r.addEnvironmentVariable())}),ne(4,Xp,9,18,"ix-list-item",23,tt),m()()}if(i&2){let e=v();d("label",l(1,3,"Environment")),a(2),d("empty",e.form.controls.environment_variables.controls.length===0)("label",l(3,5,e.instancesHelptext.env_placeholder)),a(2),oe(e.form.controls.environment_variables.controls)}}function tc(i,t){if(i&1&&(_(0,"ix-select",11),s(1,"translate")),i&2){let e=v();d("label",l(1,3,"Store At"))("required",!0)("options",e.poolOptions$)}}function ic(i,t){if(i&1&&(_(0,"ix-select",28),s(1,"translate"),s(2,"translate"),_(3,"ix-input",29),s(4,"translate")),i&2){let e=v();d("label",l(1,6,"Root Disk I/O Bus"))("tooltip",l(2,8,e.instancesHelptext.io_bus_tooltip))("required",!0)("options",e.diskIoBusOptions$),a(3),d("required",!0)("label",l(4,10,"Root Disk Size (in GiB)"))}}function nc(i,t){if(i&1&&(_(0,"ix-explorer",31),s(1,"translate"),s(2,"translate"),_(3,"ix-input",32),s(4,"translate"),s(5,"translate")),i&2){let e=v(2);d("label",l(1,8,e.instancesHelptext.disks_src_placeholder))("tooltip",l(2,10,e.instancesHelptext.disks_src_tooltip))("required",!0)("nodeProvider",e.datasetProvider)("canCreateDataset",!0),a(3),d("label",l(4,12,e.instancesHelptext.disks_dst_placeholder))("tooltip",l(5,14,e.instancesHelptext.disks_dst_tooltip))("required",!0)}}function oc(i,t){if(i&1){let e=B();p(0,"div",7),_(1,"ix-input",33),s(2,"translate"),p(3,"button",21),b("click",function(){P(e);let r=v().$implicit,o=v();return k(o.onSelectVolume(r.controls.source))}),h(4),s(5,"translate"),m()(),_(6,"ix-input",34),s(7,"translate"),s(8,"translate"),_(9,"ix-select",35),s(10,"translate"),s(11,"translate")}if(i&2){let e=v(2);a(),d("readonly",!0)("label",l(2,11,"Volume"))("required",!0),a(3),I(l(5,13,"Select Volume")),a(2),d("label",l(7,15,"Boot Priority"))("required",!0)("tooltip",l(8,17,e.instancesHelptext.bootPriorityHint)),a(3),d("label",l(10,19,"I/O Bus"))("tooltip",l(11,21,e.instancesHelptext.io_bus_tooltip))("required",!0)("options",e.diskIoBusOptions$)}}function rc(i,t){if(i&1){let e=B();p(0,"ix-list-item",30),s(1,"translate"),b("delete",function(){let r=P(e).$index,o=v();return k(o.removeDisk(r))}),x(2,nc,6,16)(3,oc,12,23),m()}if(i&2){let e=t.$index,n=v();d("label",l(1,4,"Disk"))("formGroupName",e),a(2),C(n.isContainer()?2:-1),a(),C(n.isVm()?3:-1)}}function ac(i,t){if(i&1){let e=B();p(0,"ix-list-item",30),s(1,"translate"),b("delete",function(){let r=P(e).$index,o=v(2);return k(o.removeProxy(r))}),p(2,"div",37),_(3,"ix-select",38),s(4,"translate"),s(5,"translate"),_(6,"ix-input",39),s(7,"translate"),s(8,"translate"),m(),p(9,"div",37),_(10,"ix-select",40),s(11,"translate"),s(12,"translate"),_(13,"ix-input",41),s(14,"translate"),s(15,"translate"),m()()}if(i&2){let e=t.$index,n=v(2);d("label",l(1,16,"Proxy"))("formGroupName",e),a(3),d("label",l(4,18,n.instancesHelptext.host_protocol_placeholder))("tooltip",l(5,20,n.instancesHelptext.host_protocol_tooltip))("required",!0)("options",n.proxyProtocols$),a(3),d("label",l(7,22,n.instancesHelptext.host_port_placeholder))("tooltip",l(8,24,n.instancesHelptext.host_port_tooltip))("required",!0),a(4),d("label",l(11,26,n.instancesHelptext.instance_protocol_placeholder))("tooltip",l(12,28,n.instancesHelptext.instance_protocol_tooltip))("required",!0)("options",n.proxyProtocols$),a(3),d("label",l(14,30,n.instancesHelptext.instance_port_placeholder))("tooltip",l(15,32,n.instancesHelptext.instance_port_tooltip))("required",!0)}}function sc(i,t){if(i&1){let e=B();p(0,"ix-form-section",3),s(1,"translate"),p(2,"ix-list",36),s(3,"translate"),b("add",function(){P(e);let r=v();return k(r.addProxy())}),ne(4,ac,16,34,"ix-list-item",13,tt),m()()}if(i&2){let e=v();d("label",l(1,4,"Proxies")),a(2),d("empty",e.form.controls.proxies.controls.length===0)("label",l(3,6,e.instancesHelptext.proxies_placeholder))("formArray",e.form.controls.proxies),a(2),oe(e.form.controls.proxies.controls)}}function lc(i,t){i&1&&(p(0,"p",42),h(1),s(2,"translate"),m()),i&2&&(a(),g(" ",l(2,1,"NIC selection is currently restricted due to pen
1ding network changes.")," "))}function pc(i,t){if(i&1&&(p(0,"p"),h(1),s(2,"translate"),m(),_(3,"ix-checkbox-list",43),s(4,"translate"),s(5,"translate")),i&2){let e=v(4);a(),I(e.bridgedNicTypeLabel?l(2,4,e.bridgedNicTypeLabel):""),a(2),d("label",l(4,6,e.instancesHelptext.network_bridged_nics_placeholder))("tooltip",l(5,8,e.instancesHelptext.network_bridged_nics_tooltip))("options",e.bridgedNicDevices$)}}function cc(i,t){i&1&&x(0,pc,6,10),i&2&&C(t.length>0?0:-1)}function mc(i,t){i&1&&_(0,"ngx-skeleton-loader")}function dc(i,t){if(i&1&&(p(0,"p"),h(1),s(2,"translate"),m(),_(3,"ix-checkbox-list",44),s(4,"translate"),s(5,"translate")),i&2){let e=v(4);a(),I(e.macVlanNicTypeLabel?l(2,4,e.macVlanNicTypeLabel):""),a(2),d("label",l(4,6,e.instancesHelptext.network_mac_vlan_nics_placeholder))("tooltip",l(5,8,e.instancesHelptext.network_mac_vlan_nics_tooltip))("options",e.macVlanNicDevices$)}}function uc(i,t){i&1&&x(0,dc,6,10),i&2&&C(t.length>0?0:-1)}function fc(i,t){i&1&&_(0,"ngx-skeleton-loader")}function hc(i,t){if(i&1&&(x(0,cc,1,1),s(1,"async"),x(2,mc,1,0,"ngx-skeleton-loader")(3,uc,1,1),s(4,"async"),x(5,fc,1,0,"ngx-skeleton-loader")),i&2){let e,n,r=v(2);C((e=l(1,2,r.bridgedNicDevices$))?0:2,e),a(3),C((n=l(4,4,r.macVlanNicDevices$))?3:5,n)}}function _c(i,t){if(i&1&&x(0,lc,3,3,"p",42)(1,hc,6,6),i&2){let e=v();C(e.hasPendingInterfaceChanges()?0:1)}}function vc(i,t){if(i&1&&(p(0,"div")(1,"div",45)(2,"strong"),h(3),s(4,"translate"),m(),p(5,"span"),h(6),s(7,"translate"),m()(),p(8,"div",45)(9,"strong"),h(10),s(11,"translate"),m(),p(12,"span"),h(13),m()(),p(14,"div",45)(15,"strong"),h(16),s(17,"translate"),m(),p(18,"span"),h(19),m()()()),i&2){let e=v();a(3),g("",l(4,6,"Bridge"),": "),a(3),I(l(7,8,"Automatic")),a(4),g("",l(11,10,"IPv4 Network"),": "),a(3),I(e.defaultIpv4Network()),a(3),g("",l(17,12,"IPv6 Network"),": "),a(3),I(e.defaultIpv6Network())}}function gc(i,t){if(i&1&&(p(0,"ix-form-section",3),s(1,"translate"),_(2,"ix-checkbox-list",46),s(3,"translate"),s(4,"translate"),m()),i&2){let e=v();d("label",l(1,4,"USB Devices")),a(2),d("label",l(3,6,e.instancesHelptext.usb_devices_placeholder))("tooltip",l(4,8,e.instancesHelptext.usb_devices_tooltip))("options",e.usbDevices$)}}function xc(i,t){if(i&1&&(p(0,"ix-form-section",3),s(1,"translate"),_(2,"ix-checkbox-list",47),s(3,"translate"),m()),i&2){let e=v();d("label",l(1,3,"GPU Devices")),a(2),d("label",l(3,5,"GPU Devices"))("options",e.gpuDevices$)}}function Cc(i,t){if(i&1){let e=B();p(0,"li")(1,"div",50),h(2),p(3,"button",51),b("click",function(){let r=P(e).$implicit,o=v(3);return k(o.removePciDevice(r.value))}),_(4,"ix-icon",52),m()()()}if(i&2){let e=t.$implicit;a(2),g(" ",e.label," "),a(),d("ixTest",$(2,Wp,e.label))}}function bc(i,t){if(i&1&&(p(0,"p"),h(1),s(2,"translate"),m(),p(3,"ul",49),ne(4,Cc,5,4,"li",null,tt),m()),i&2){let e=v(2);a(),g("",l(2,1,"Selected Devices"),":"),a(3),oe(e.form.value.pci_devices)}}function yc(i,t){if(i&1){let e=B();p(0,"ix-form-section",3),s(1,"translate"),x(2,bc,6,3),p(3,"button",48),b("click",function(){P(e);let r=v();return k(r.onAddPciPassthrough())}),h(4),s(5,"translate"),m()()}if(i&2){let e=v();d("label",l(1,3,"PCI Passthrough")),a(2),C(e.form.value.pci_devices.length?2:-1),a(2),I(l(5,5,"Add PCI Passthrough"))}}function Ic(i,t){i&1&&(_(0,"ix-input",56),s(1,"translate"),_(2,"ix-input",57),s(3,"translate"),s(4,"translate")),i&2&&(d("label",l(1,3,"VNC Port")),a(2),d("label",l(3,5,"VNC Password"))("hint",l(4,7,"VNC password is not cryptographically secure. You should not rely on it as a single authentication mechanism for your VMs.")))}function Sc(i,t){if(i&1&&(p(0,"ix-form-section",3),s(1,"translate"),_(2,"ix-checkbox",53),s(3,"translate"),s(4,"translate"),s(5,"translate"),x(6,Ic,5,9),m(),p(7,"ix-form-section",3),s(8,"translate"),_(9,"ix-checkbox",54),s(10,"translate"),s(11,"translate"),_(12,"ix-checkbox",55),s(13,"translate"),m()),i&2){let e=v();d("label",l(1,10,"VNC")),a(2),d("label",l(3,12,e.instancesHelptext.enable_vnc_placeholder))("tooltip",l(4,14,e.instancesHelptext.enable_vnc_tooltip))("hint",l(5,16,e.form.value.enable_vnc&&e.instancesHelptext.vncHint)),a(4),C(e.form.value.enable_vnc?6:-1),a(),d("label",l(8,18,"Security")),a(2),d("label",l(10,20,e.instancesHelptext.add_tpm_placeholder))("tooltip",l(11,22,e.instancesHelptext.add_tpm_tooltip)),a(3),d("label",l(13,24,"Secure Boot"))("tooltip",e.secureBootTooltip)}}var ni,no=(ni=class{get hasRequiredRoles(){return this.authService.hasRole(this.requiredRoles)}get secureBootTooltip(){return this.form.controls.secure_boot.disabled?this.form.controls.secure_boot.value?this.translate.instant(De.secure_boot_on_required_tooltip):this.translate.instant(De.secure_boot_off_required_tooltip):this.translate.instant(De.secure_boot_tooltip)}constructor(t,e,n,r,o,c,f,V,O,ae,Le,se){this.api=t,this.formBuilder=e,this.matDialog=n,this.router=r,this.formErrorHandler=o,this.translate=c,this.snackbar=f,this.dialogService=V,this.formatter=O,this.configStore=ae,this.authService=Le,this.filesystem=se,this.isLoading=L(!1),this.requiredRoles=[je.VirtGlobalWrite],this.virtualizationTypeIcons=yr,this.hasPendingInterfaceChanges=Me(this.api.call("interface.has_pending_changes")),this.diskIoBusOptions$=z(Ct(vi,this.translate)),this.proxyProtocols$=z(Ct(Tn,this.translate)),this.bridgedNicTypeLabel=$i.get(ge.Bridged),this.macVlanNicTypeLabel=$i.get(ge.Macvlan),this.forbiddenNames$=this.api.call("virt.instance.query",[[],{select:["name"],order_by:["name"]}]).pipe(X(xe=>xe.map(xi=>xi.name))),this.VirtualizationSource=Ae,this.bridgedNicDevices$=this.getNicDevicesOptions(ge.Bridged),this.macVlanNicDevices$=this.getNicDevicesOptions(ge.Macvlan),this.usbDevices$=this.api.call("virt.device.usb_choices").pipe(X(xe=>Object.values(xe).map(xi=>({label:"".concat(xi.product," (").concat(xi.product_id,")"),value:xi.product_id.toString()})))),this.imageSourceTypeOptions$=z([{label:this.translate.instant("Use a Linux image (linuxcontainers.org)"),value:Ae.Image},{label:this.translate.instant("Upload ISO, import a zvol or use another volume"),value:Ae.Zvol}]),this.gpuDevices$=this.api.call("virt.device.gpu_choices",[Gi.Physical]).pipe(X(xe=>Object.entries(xe).map(([xi,Ar])=>({label:Ar.description,value:xi})))),this.poolOptions$=this.configStore.state$.pipe(G(xe=>!xe.isLoading),X(xe=>xe.config.storage_pools),Yo(),ve(xe=>{xe.length&&!this.form.controls.storage_pool.value&&this.form.controls.storage_pool.setValue("".concat(xe[0].value))})),this.hasOnePool=S(()=>this.configStore.config().storage_pools.length===1),this.form=this.formBuilder.nonNullable.group({name:["",[F.required,F.minLength(1),F.maxLength(200),F.pattern(/^[a-zA-Z0-9-]+$/)],[Xo(this.forbiddenNames$)]],instance_type:[J.Container,F.required],source_type:[Ae.Image,[F.required]],volume_type:[null],root_disk_io_bus:[ot.Nvme,[]],volume:["",[F.required]],image:["",[F.required,F.minLength(1),F.maxLength(200)]],enable_vnc:[!1],vnc_port:[5900,[F.min(5900),F.max(65535)]],vnc_password:[null],cpu:["",[Ji()]],memory:[null],storage_pool:[null,[F.required]],tpm:[!1],root_disk_size:[10],secure_boot:[!1],use_default_network:[!0],usb_devices:[[]],gpu_devices:[[]],pci_devices:[[]],bridged_nics:[[]],mac_vlan_nics:[[]],proxies:this.formBuilder.array([]),disks:this.formBuilder.array([]),environment_variables:new _n([])}),this.instanceType=L(this.form.value.instance_type),this.isContainer=S(()=>this.instanceType()===J.Container),this.isVm=S(()=>this.instanceType()===J.Vm),this.datasetProvider=this.filesystem.getFilesystemNodeProvider({datasetsOnly:!0}),this.defaultIpv4Network=S(()=>{var xe;return((xe=this.configStore.config())==null?void 0:xe.v4_network)||this.translate.instant("N/A")}),this.defaultIpv6Network=S(()=>{var xe;return((xe=this.configStore.config())==null?void 0:xe.v6_network)||this.translate.instant("N/A")}),this.of=z,this.instancesHelptext=De,this.configStore.initialize(),Do(()=>{!this.form.value.storage_pool&&this.hasOnePool()&&this.form.patchValue({storage_pool:this.configStore.config().storage_pools[0]})}),this.listenForSourceTypeChanges(),this.listenForInstanceTypeChanges()}onBrowseCatalogImages(){this.matDialog.open(io,{minWidth:"90vw",data:{remote:ao.LinuxContainers,type:this.form.controls.instance_type.value}}).afterClosed().pipe(G(Boolean),y(this)).subscribe(t=>{this.form.controls.image.setValue(t.id),this.isVm()&&(typeof t.secureboot=="boolean"&&t.secureboot!==null?(this.form.controls.secure_boot.setValue(t.secureboot),this.form.controls.secure_boot.disable()):this.form.controls.secure_boot.enable())})}onSelectRootVolume(){this.matDialog.open(kt,{minWidth:"90vw",data:{selectionMode:!0}}).afterClosed().pipe(G(Boolean),y(this)).subscribe(t=>{this.form.patchValue({volume_type:t.content_type}),this.form.patchValue({volume:t.id})})}onSelectVolume(t){this.matDialog.open(kt,{minWidth:"90vw",data:{selectionMode:!0}}).afterClosed().pipe(G(Boolean),y(this)).subscribe(e=>{t.setValue(e.id)})}addProxy(){let t=this.formBuilder.group({source_proto:[bt.Tcp],source_port:[null,F.required],dest_proto:[bt.Tcp],dest_port:[null,F.required]});this.form.controls.proxies.push(t)}removeProxy(t){this.form.controls.proxies.removeAt(t)}addDisk(){let t=this.formBuilder.group({source:["",F.required],destination:["",F.required],io_bus:[ot.Nvme,F.required],boot_priority:[1,F.required]});this.isVm()&&t.removeControl("destination"),this.isContainer()&&(t.removeControl("io_bus"),t.removeControl("boot_priority")),this.form.controls.disks.push(t)}removeDisk(t){this.form.controls.disks.removeAt(t)}onSubmit(){this.createInstance().pipe(y(this)).subscribe({next:t=>{this.snackbar.success(this.translate.instant("Instance created")),this.router.navigate(["/instances","view",t==null?void 0:t.id])},error:t=>{this.formErrorHandler.handleValidationErrors(t,this.form)}})}addEnvironmentVariable(){let t=this.formBuilder.group({name:["",F.required],value:["",F.required]});this.form.controls.environment_variables.push(t)}removeEnvironmentVariable(t){this.form.controls.environment_variables.removeAt(t)}createInstance(){let t=this.getPayload(),e=this.api.job("virt.instance.create",[t]);
1return this.dialogService.jobDialog(e,{title:this.translate.instant("Creating Instance")}).afterClosed().pipe(X(n=>n.result))}getPayload(){let t=this.form.getRawValue(),e=this.resolveSourceType(t.source_type,t.volume_type),n=Y(Y({devices:this.getDevicesPayload(),autostart:!0,instance_type:t.instance_type,name:t.name,cpu:t.cpu,memory:t.memory||null,storage_pool:t.storage_pool,source_type:e},e===Ae.Image&&{image:t.image}),this.isContainer()&&{environment:this.environmentVariablesPayload});return this.isVm()&&this.extendVmPayload(n,t,e),n}resolveSourceType(t,e){return t===Ae.Image?Ae.Image:e===Wi.Iso?Ae.Iso:e===Wi.Block?Ae.Volume:t}extendVmPayload(t,e,n){Object.assign(t,Y({secure_boot:e.secure_boot,root_disk_io_bus:e.root_disk_io_bus,root_disk_size:e.root_disk_size,enable_vnc:e.enable_vnc,vnc_port:e.enable_vnc?e.vnc_port||5900:null},e.enable_vnc&&{vnc_password:e.vnc_password})),n!==Ae.Image&&(e.volume_type===Wi.Iso?t.iso_volume=e.volume:e.volume_type===Wi.Block&&(t.volume=e.volume))}getNicDevicesOptions(t){return this.api.call("virt.device.nic_choices",[t]).pipe(X(e=>Object.values(e).map(n=>({label:n,value:n}))))}get environmentVariablesPayload(){return this.form.controls.environment_variables.controls.reduce((t,e)=>{var o,c;let n=(o=e.get("name"))==null?void 0:o.value,r=(c=e.get("value"))==null?void 0:c.value;return n&&r&&(t[n]=r),t},{})}getDevicesPayload(){let t=this.form.controls.disks.value.map(O=>{let ae={dev_type:E.Disk,source:O.source};return this.isContainer()?_e(Y({},ae),{destination:O.destination}):_e(Y({},ae),{boot_priority:O.boot_priority,io_bus:O.io_bus})}),e=[];for(let O of this.form.controls.usb_devices.value)e.push({dev_type:E.Usb,product_id:O});let n=[];for(let O of this.form.controls.gpu_devices.value)n.push({pci:O,dev_type:E.Gpu,gpu_type:Gi.Physical});let r=[];if(!this.form.controls.use_default_network.value)for(let O of this.form.controls.mac_vlan_nics.value)r.push({parent:O,dev_type:E.Nic,nic_type:ge.Macvlan});let o=[];if(!this.form.controls.use_default_network.value)for(let O of this.form.controls.bridged_nics.value)o.push({parent:O,dev_type:E.Nic,nic_type:ge.Bridged});let c=this.form.controls.proxies.value.map(O=>({dev_type:E.Proxy,source_proto:O.source_proto,source_port:O.source_port,dest_proto:O.dest_proto,dest_port:O.dest_port})),f=this.form.controls.pci_devices.value.map(O=>({dev_type:E.Pci,address:O.value})),V=[];return this.isVm()&&this.form.value.tpm&&V.push({dev_type:E.Tpm}),[...t,...c,...r,...o,...e,...n,...V,...f]}onAddPciPassthrough(){this.matDialog.open(Qi,{minWidth:"90vw",data:{existingDeviceAddresses:this.form.value.pci_devices.map(t=>t.value)}}).afterClosed().pipe(y(this)).subscribe(t=>{t!=null&&t.length&&this.form.patchValue({pci_devices:Bo(this.form.controls.pci_devices.value,t,"value")})})}removePciDevice(t){this.form.patchValue({pci_devices:this.form.controls.pci_devices.value.filter(e=>e.value!==t)})}listenForInstanceTypeChanges(){this.form.controls.instance_type.valueChanges.pipe(y(this)).subscribe(t=>{t===J.Container&&this.form.controls.source_type.setValue(Ae.Image),this.instanceType.set(t),this.form.controls.image.reset(),this.form.controls.disks.clear(),this.form.controls.proxies.clear(),t===J.Container?(this.form.controls.cpu.setValidators(Ji()),this.form.controls.memory.clearValidators()):(this.form.controls.cpu.setValidators([F.required,Ji()]),this.form.controls.memory.setValidators([F.required]))})}listenForSourceTypeChanges(){this.form.controls.volume.disable(),this.form.controls.source_type.valueChanges.pipe(y(this)).subscribe(t=>{this.form.controls.image.disable(),this.form.controls.volume.disable(),t===Ae.Image?this.form.controls.image.enable():t===Ae.Iso&&this.form.controls.volume.enable()})}},ni.\u0275fac=function(e){return new(e||ni)(u(N),u(Te),u(Ve),u(lt),u(mi),u(j),u(Z),u(ue),u(Xe),u(ht),u(Lo),u(Ri))},ni.\u0275cmp=D({type:ni,selectors:[["ix-instance-wizard"]],decls:58,vars:88,consts:[[3,"pageTitle"],[1,"container"],[1,"form",3,"submit","formGroup"],[3,"label"],["formControlName","name",3,"label","tooltip","required","hint"],["formControlName","instance_type",3,"label","required","options","showLabels"],["formControlName","source_type",3,"label","required","options"],[1,"image-field"],[3,"label","help"],["formControlName","cpu",3,"label","tooltip","required","hint"],["formControlName","memory",3,"label","tooltip","format","parse","required","hint"],["formControlName","storage_pool",3,"label","required","options"],["formArrayName","disks",3,"add","empty","label","formArray"],[3,"label","formGroupName"],["formControlName","use_default_network",3,"label","tooltip"],[1,"actions"],["mat-button","","type","submit","color","primary","ixTest","create",3,"disabled"],[1,"glossary"],["formControlName","image",1,"input",3,"readonly","label","required"],["mat-button","","ixTest","browse-images","type","button",3,"click"],["formControlName","volume",1,"input",3,"readonly","label","required"],["mat-button","","ixTest","browse-isos","type","button",3,"click"],["formArrayName","environment_variables",3,"add","empty","label"],[3,"formGroupName","label"],[3,"delete","formGroupName","label"],[1,"environment-variable"],["formControlName","name",3,"label","tooltip","required"],["formControlName","value",3,"label","tooltip","required"],["formControlName","root_disk_io_bus",3,"label","tooltip","required","options"],["formControlName","root_disk_size","type","number",3,"required","label"],[3,"delete","label","formGroupName"],["formControlName","source","root","/",3,"label","tooltip","required","nodeProvider","canCreateDataset"],["formControlName","destination",3,"label","tooltip","required"],["formControlName","source",1,"input",3,"readonly","label","required"],["type","number","formControlName","boot_priority",3,"label","required","tooltip"],["formControlName","io_bus",3,"label","tooltip","required","options"],["formArrayName","proxies",3,"add","empty","label","formArray"],[1,"protocol-and-port"],["formControlName","source_proto",1,"protocol",3,"label","tooltip","required","options"],["type","number","formControlName","source_port",1,"port",3,"label","tooltip","required"],["formControlName","dest_proto",1,"protocol",3,"label","tooltip","required","options"],["type","number","formControlName","dest_port",1,"port",3,"label","tooltip","required"],[1,"warning"],["formControlName","bridged_nics",3,"label","tooltip","options"],["formControlName","mac_vlan_nics",3,"label","tooltip","options"],[1,"network-list-item"],["formControlName","usb_devices",3,"label","tooltip","options"],["formControlName","gpu_devices",3,"label","options"],["mat-button","","ixTest","add-pci","type","button",1,"add-pci-button",3,"click"],[1,"pci-devices"],[1,"device"],["mat-icon-button","","type","button",3,"click","ixTest"],["name","mdi-close"],["formControlName","enable_vnc",3,"label","tooltip","hint"],["formControlName","tpm",3,"label","tooltip"],["formControlName","secure_boot",3,"label","tooltip"],["formControlName","vnc_port","type","number",3,"label"],["formControlName","vnc_password","type","password",3,"label","hint"]],template:function(e,n){if(e&1){let r=B();p(0,"ix-page-header",0),s(1,"translate"),x(2,Zp,1,0,"ix-readonly-badge"),s(3,"async"),m(),p(4,"div",1)(5,"form",2),b("submit",function(){return P(r),k(n.onSubmit())}),p(6,"ix-form-section",3),s(7,"translate"),_(8,"ix-input",4),s(9,"translate"),s(10,"translate"),s(11,"translate"),x(12,Kp,2,6,"ix-icon-group",5)(13,Qp,2,5,"ix-radio-group",6)(14,Yp,6,8,"div",7)(1
15,Jp,6,8,"div",7),m(),p(16,"ix-form-section",8),s(17,"translate"),s(18,"translate"),_(19,"ix-input",9),s(20,"translate"),s(21,"translate"),s(22,"translate"),_(23,"ix-input",10),s(24,"translate"),s(25,"translate"),s(26,"translate"),m(),x(27,ec,6,7,"ix-form-section",3),p(28,"ix-form-section",3),s(29,"translate"),x(30,tc,2,5,"ix-select",11)(31,ic,5,12),p(32,"ix-list",12),s(33,"translate"),b("add",function(){return P(r),k(n.addDisk())}),ne(34,rc,4,6,"ix-list-item",13,$p),m()(),x(36,sc,6,8,"ix-form-section",3),p(37,"ix-form-section",8),s(38,"translate"),s(39,"translate"),_(40,"ix-checkbox",14),s(41,"translate"),s(42,"translate"),x(43,_c,2,1)(44,vc,20,14,"div"),m(),bi(45),s(46,"async"),x(47,gc,5,10,"ix-form-section",3),bi(48),s(49,"async"),x(50,xc,4,7,"ix-form-section",3)(51,yc,6,7,"ix-form-section",3)(52,Sc,14,26),p(53,"div",15)(54,"button",16),h(55),s(56,"translate"),m()()(),_(57,"ix-form-glossary",17),m()}if(e&2){let r;d("pageTitle",l(1,42,"Create Container")),a(2),C(l(3,44,n.hasRequiredRoles)?-1:2),a(3),d("formGroup",n.form),a(),d("label",l(7,46,"Container Configuration")),a(2),d("label",l(9,48,n.instancesHelptext.name_placeholder))("tooltip",l(10,50,n.instancesHelptext.name_tooltip))("required",!0)("hint",l(11,52,n.instancesHelptext.nameHint)),a(4),C(-1),a(),C(n.isVm()?13:-1),a(),C((r=n.form.value.source_type)===n.VirtualizationSource.Image?14:r===n.VirtualizationSource.Zvol?15:-1),a(2),d("label",l(17,54,"CPU & Memory"))("help",l(18,56,n.instancesHelptext.cpu_memory_tooltip)),a(3),d("label",l(20,58,n.instancesHelptext.cpu_placeholder))("tooltip",l(21,60,n.instancesHelptext.cpu_tooltip))("required",n.isVm())("hint",n.isContainer()?l(22,62,n.instancesHelptext.cpuHint):null),a(4),d("label",l(24,64,n.instancesHelptext.memory_placeholder))("tooltip",l(25,66,n.instancesHelptext.memory_tooltip))("format",n.formatter.memorySizeFormatting)("parse",n.formatter.memorySizeParsing)("required",n.isVm())("hint",n.isContainer()?l(26,68,n.instancesHelptext.memoryHint):null),a(4),C(n.isContainer()?27:-1),a(),d("label",l(29,70,"Storage")),a(2),C(n.hasOnePool()?-1:30),a(),C(n.isVm()?31:-1),a(),d("empty",n.form.controls.disks.controls.length===0)("label",l(33,72,n.instancesHelptext.disks_placeholder))("formArray",n.form.controls.disks),a(2),oe(n.form.controls.disks.controls),a(2),C(n.isContainer()?36:-1),a(),d("label",l(38,74,"Network"))("help",l(39,76,n.instancesHelptext.network_tooltip)),a(3),d("label",l(41,78,n.instancesHelptext.network_use_default_placeholder))("tooltip",l(42,80,n.instancesHelptext.network_use_default_tooltip)),a(3),C(n.form.controls.use_default_network.value?44:43);let o=l(46,82,n.usbDevices$);a(4),C(o&&o.length>0?47:-1);let c=l(49,84,n.gpuDevices$);a(3),C(c&&c.length>0?50:-1),a(),C(n.isVm()?51:-1),a(),C(n.isVm()?52:-1),a(2),d("disabled",n.form.invalid||n.isLoading()),a(),g(" ",l(56,86,"Create")," ")}},dependencies:[pn,di,gr,Vi,to,Fo,ye,Dn,Sn,Fe,In,A,Be,ke,yn,Q,pe,K,le,be,ce,me,fn,hn,Jo,R,M,w,nr,ze,te],styles:[".container[_ngcontent-%COMP%]{color:var(--fg1);display:flex;gap:15px}.container[_ngcontent-%COMP%]   .form[_ngcontent-%COMP%]{flex:1}.actions[_ngcontent-%COMP%]{margin:9px}ix-fieldset[_ngcontent-%COMP%]{display:block;width:40%}.image-field[_ngcontent-%COMP%]{align-items:flex-start;display:flex;gap:10px}.image-field[_ngcontent-%COMP%]   .input[_ngcontent-%COMP%]{flex:1}.image-field[_ngcontent-%COMP%]   button[_ngcontent-%COMP%]{margin-top:43px}.protocol-and-port[_ngcontent-%COMP%]{display:grid;gap:12px;grid-template-columns:1fr 1fr}.pci-devices[_ngcontent-%COMP%]{margin-bottom:20px}.pci-devices[_ngcontent-%COMP%]   .device[_ngcontent-%COMP%]{display:flex;gap:5px;margin-bottom:7px}ngx-skeleton-loader[_ngcontent-%COMP%]     span{min-height:25px}.glossary[_ngcontent-%COMP%]{width:25%}.network-list-item[_ngcontent-%COMP%]{margin-bottom:12px;margin-top:12px}\n/*# sourceMappingURL=instance-wizard.component-DLKLDGGP.css.map */"],changeDetection:0}),ni);no=Gp([T()],no);var GC=[{path:"",data:{title:"Containers",breadcrumb:null},providers:[ht,ee,Pe],children:[{path:"",component:nn},{path:"new",component:no,data:{title:"Add Containers"}},{path:"view/:id",data:{title:"Containers",breadcrumb:null},children:[{path:"",pathMatch:"full",component:nn},{path:"shell",component:eo,data:{title:"Instance Shell"}},{path:"console",component:Xn,data:{title:"Instance Console"}}]}]}];export{GC as instancesRoutes};
2//# sourceMappingURL=chunk-WSBYXUTY.js.map

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.