1import{b as T}from"./chunk-JXZHDPXA.js";import{a as E}from"./chunk-SORVIIVG.js";import{a as M}from"./chunk-5KHC7EZS.js";import{a as ge,b as he,c as _e}from"./chunk-FWTG5XIZ.js";import{i as ue}from"./chunk-ACJ3NLO5.js";import{B as de,G as fe,J as ve,d as ne,f as ce,g as se,l as pe,m as le,y as me}from"./chunk-GPVZISOV.js";import"./chunk-45WCVJBT.js";import"./chunk-74CDSVWG.js";import{U as re,Z as oe,ga as B,na as ae,q as u}from"./chunk-SEQCRKB6.js";import{Aa as F,C as G,D as q,Db as y,E as f,Ea as w,F as H,Fa as C,Ga as p,O as z,Pb as te,Tb as ie,U as _,V as J,Y as n,Ya as W,Z as D,_ as k,_a as x,cb as S,db as O,eb as X,ia as s,la as K,ma as L,n as R,ob as Y,pa as Q,pb as Z,qa as b,rb as ee,s as h,u as j,xa as a,ya as l,za as m}from"./chunk-HBLARLGW.js";var I=class{},U=class{},V=class{};var A=class extends oe{};var $=(()=>{let r=class r{constructor(){this.http=n(y),this.config=n(A),this.pages=n(ae),this.protectedUiService=n(T),this.flowsService=n(E),this.accessService=n(M)}getAirlock2FADeviceManagement(){return this.fetchUsersAppDevices().pipe(H(e=>this.fetchUsersHardwareDevices().pipe(H(t=>this.flowsService.retrieveSelfServiceFlows().pipe(h(c=>this.createManagement(e,t,c)))))))}navigateToExitTarget(){this.pages.routes.navigateTo(this.config.pageExitTarget)}startFlowToChangeDisplayName(e){return this.startFlowAndSelectDevice(e,this.config.flowToChangeDisplayName)}startFlowToDeleteDevice(e){return this.startFlowAndDeleteDevice(e,this.config.flowToDeleteDevice)}startFlowToActivateAppDevice(){let e=this.config.flowToActivateAppDevice;return this.protectedUiService.startFlow(e).pipe(f(t=>this.handleAccessError(t,this.pages.routes.protected.select.flow.append(e).url,e)))}getUiConfig(){return R(this.config)}createManagement(e,t,c){let v=new V;return v.appDevices=e,v.hardwareDevices=t,v.canRename=c.isAccessible(this.config.flowToChangeDisplayName),v.canDelete=c.isAccessible(this.config.flowToDeleteDevice)&&this.shouldShowDeleteButton(e.length),v.canAdd=c.isAccessible(this.config.flowToActivateAppDevice),v.hasExitTarget=!!this.config.pageExitTarget,v}shouldShowDeleteButton(e){return!!this.config.flowToDeleteDevice&&!(!this.config.canUserDeleteAllDevices&&e===1)}fetchUsersAppDevices(){return this.http.get(u(["/protected","self-service","airlock-2fa","app-devices"])).pipe(h(e=>this.toAppDevices(e.data)),f(e=>this.handleErrorResponse(e)))}fetchUsersHardwareDevices(){return this.http.get(u(["/protected","self-service","airlock-2fa","hardware-devices"])).pipe(h(e=>this.toHardwareDevices(e.data)),f(e=>this.handleErrorResponse(e)))}handleErrorResponse(e){return e.status===404?R([]):this.handleAccessError(e,this.pages.routes.protected.tokens.airlock2fa.devices.url)}startFlowAndSelectDevice(e,t){return this.protectedUiService.startFlow(t).pipe(j(()=>this.selectAirlock2FADevice(e.id)),f(c=>this.handleAccessError(c,this.pages.routes.protected.tokens.airlock2fa.devices.url,t)))}startFlowAndDeleteDevice(e,t){return this.protectedUiService.startFlow(t).pipe(j(()=>this.deleteAirlock2FADevice(e.id)),f(c=>this.handleAccessError(c,this.pages.routes.protected.tokens.airlock2fa.devices.url,t)))}handleAccessError(e,t,c){return this.accessService.handleAccessError(e,t,c)}selectAirlock2FADevice(e){return this.http.post(u(["/protected","self-service","airlock-2fa","devices",e,"select"]),null,{observe:"response"}).pipe(h(t=>new B(t)))}deleteAirlock2FADevice(e){return this.http.post(u(["/protected","self-service","airlock-2fa","devices",e,"remove"]),null,{observe:"response"}).pipe(h(t=>new B(t)))}toAppDevices(e){return e.map(t=>this.toAppDevice(t))}toAppDevice(e){let t=new I;
1return t.id=e.id,t.displayName=e.attributes.displayName,t.appVersion=e.attributes.appVersion,t.appVersionSupported=e.attributes.appVersionSupported,t.type=e.attributes.type,t}toHardwareDevices(e){return e.map(t=>this.toHardwareDevice(t))}toHardwareDevice(e){let t=new U;return t.id=e.id,t.serialNumber=e.attributes.serialNumber,t}};r.\u0275fac=function(t){return new(t||r)},r.\u0275prov=_({token:r,factory:r.\u0275fac});let i=r;return i})();var P=(()=>{let r=class r{constructor(){this.http=n(y)}getDeviceManagementConfig(){return this.http.get(u(["protected","self-service","ui","configuration","tokens","airlock-2fa"]))}};r.\u0275fac=function(t){return new(t||r)},r.\u0275prov=_({token:r,factory:r.\u0275fac});let i=r;return i})();var d=class d{constructor(){this.service=n(P),this.accessService=n(M),this.routes=n(re)}resolve(){return this.service.getDeviceManagementConfig().pipe(f(r=>(r.status===404?this.routes.error.notFound.navigate():this.accessService.handleAccessError(r,this.routes.protected.tokens.airlock2fa.devices.url),G)))}static resolveConfig(r){return r.snapshot.data.deviceManagementConfig}};d.PROVIDER={provide:A,useFactory:d.resolveConfig,deps:[te]},d.\u0275fac=function(o){return new(o||d)},d.\u0275prov=_({token:d,factory:d.\u0275fac});var g=d;var De=i=>({keyPrefix:"protected.tokens.airlock-2fa.app-device.types",values:i}),ke=i=>({type:i}),be=i=>({version:i});function we(i,r){i&1&&F(0,"iam-alert",6),i&2&&a("text","protected.tokens.airlock-2fa.app-device.missing")("type","info")("id","airlock2FADevicesMissing")}function Ce(i,r){if(i&1){let o=w();l(0,"iam-button",11),C("buttonClick",function(){D(o);let t=p().$implicit,c=p(2);return k(c.renameAirlock2FADevice(t))}),m()}if(i&2){let o=p().index;a("id","changeAirlock2FADisplayName["+o+"]")("text","protected.tokens.airlock-2fa.app-device.actions.rename")}}function Fe(i,r){if(i&1){let o=w();l(0,"iam-button",12),C("buttonClick",function(){D(o);let t=p().$implicit,c=p(2);return k(c.showDeviceDeleteConfirmationDialog(t))}),m()}if(i&2){let o=p().index;a("id","deleteAirlock2FADevice["+o+"]")("type","error")("text","protected.tokens.airlock-2fa.app-device.actions.delete")}}function xe(i,r){if(i&1&&(l(0,"iam-card",7),S(1,"translatedEnum"),F(2,"iam-text-row",8)(3,"iam-text-row",8),S(4,"translate"),l(5,"iam-button-row"),b(6,Ce,1,2,"iam-button",9)(7,Fe,1,3,"iam-button",10),m()()),i&2){let o=r.$implicit,e=r.index,t=p().ngIf;a("id","airlock2FAAppDevice["+e+"]")("title","protected.tokens.airlock-2fa.app-device.title")("titleArguments",x(19,ke,o.type?"("+O(1,12,x(17,De,o.type))+")":""))("detailCard",!0),s(2),a("id","airlock2FADisplayName["+e+"]")("label","protected.tokens.airlock-2fa.app-device.display-name")("value",o.displayName?o.displayName:"-"),s(),a("id","airlock2FAAppVersion["+e+"]")("label","protected.tokens.airlock-2fa.app-device.app-version.label")("value",X(4,14,"protected.tokens.airlock-2fa.app-device.app-version."+(o.appVersionSupported?"up-to-date":"out-of-date"),x(21,be,o.appVersion))),s(3),a("ngIf",t.canRename),s(),a("ngIf",t.canDelete)}}function Se(i,r){if(i&1&&(l(0,"iam-card",13),F(1,"iam-text-row",8),m()),i&2){let o=r.$implicit,e=r.index;a("id","airlock2FAHardwareDevice["+e+"]")("title","protected.tokens.airlock-2fa.hardware-device.title")("detailCard",!0),s(),a("id","airlock2FAHardwareDeviceSerial["+e+"]")("label","protected.tokens.airlock-2fa.hardware-device.serial-number")("value",o.serialNumber)}}function ye(i,r){if(i&1){let o=w();l(0,"iam-button",11),C("buttonClick",function(){D(o);let t=p(3);return k(t.activateAppDevice())}),m()}i&2&&a("id","activateAirlock2FAAppDevice")("text","protected.tokens.airlock-2fa.actions.activate-app-device")}function Me(i,r){if(i&1){let o=w();l(0,"iam-button",11),C("buttonClick",function(){D(o);let t=p(3);return k(t.navigateToExitTarget())}),m()}i&2&&a("id","exitAirlock2FADeviceManagement")("text","protected.tokens.airlock-2fa.actions.exit")}function Te(i,r){if(i&1&&(l(0,"iam-button-row",14),b(1,ye,1,2,"iam-button",9)(2,Me,1,2,"iam-button",9),m()),i&2){let o=p().ngIf;a("rowNgClass","iam-mt-3"),s(),a("ngIf",o.canAdd),s(),a("ngIf",o.hasExitTarget)}}function Ee(i,r){if(i&1&&(l(0,"iam-page",1),b(1,we,1,3,"iam-alert",2)(2,xe,8,23,"iam-card",3)(3,Se,2,6,"iam-card",4)(4,Te,3,3,"iam-button-row",5),m()),i&2){let o=r.ngIf,e=p();a("pageId",e.pageId)("bodyAttributes",e.bodyAttributes)("title","protected.tokens.airlock-2fa.title")("hideMaintenanceMessages",!0),s(),a("ngIf",o.appDevices.length===0&&o.hardwareDevices.length===0),s(),a("ngForOf",o.appDevices),s(),a("ngForOf",o.hardwareDevices),s(),a("ngIf",o.canAdd||o.hasExitTarget)}}var Ae=(()=>{let r=class r extends he{constructor(){super(),this.bodyAttributes={[ge]:_e.ProtectedSelfService},this.pageId="iamProtectedAirlock2FADeviceManagement",this.deviceManagementService=n($),this.pageDialog=n(fe),this.protectedUiService=n(T)}ngOnInit(){this.airlock2FADeviceManagement=this.initUiConfig().pipe(z(()=>this.deviceManagementService.getAirlock2FADeviceManagement()))}showDeviceDeleteConfirmationDialog(e){this.pageDialog.show({text:"protected.tokens.airlock-2fa.deletion.dialog.text",title:"protected.tokens.airlock-2fa.deletion.dialog.title"}).pipe(q(t=>t.ok)).subscribe(()=>this.deleteAirlock2FADevice(e))}deleteAirlock2FADevice(e){this.deviceManagementService.startFlowToDeleteDevice(e).subscribe({next:t=>this.protectedUiService.handleSuccessfulStep(t),error:t=>this.protectedUiService.handleFailedStep(t)})}renameAirlock2FADevice(e){this.deviceManagementService.startFlowToChangeDisplayName(e).subscribe({next:t=>this.protectedUiService.handleSuccessfulStep(t),error:t=>this.protectedUiService.handleFailedStep(t)})}activateAppDevice(){this.deviceManagementService.startFlowToActivateAppDevice().subscribe({next:e=>this.protectedUiService.handleSuccessfulStep(e),error:e=>this.protectedUiService.handleFailedStep(e)})}navigateToExitTarget(){this.deviceManagementService.navigateToExitTarget()}getUiConfig(){return this.deviceManagementService.getUiConfig()}};r.\u0275fac=function(t){return new(t||r)},r.\u0275cmp=K({type:r,selectors:[["ng-component"]],standalone:!1,features:[W([E,$,g.PROVIDER]),Q],decls:2,vars:3,consts:[[3,"pageId","bodyAttributes","title","hideMaintenanceMessages",4,"ngIf"],[3,"pageId","bodyAttributes","title","hideMaintenanceMessages"],[3,"text","type","id",4,"ngIf"],[3,"id","title","titleArguments","detailCard",4,"ngFor","ngForOf"],[3,"id","title","detailCard",4,"ngFor","ngForOf"],[3,"rowNgClass",4,"ngIf"],[3,"text","type","id"],[3,"id","title","titleArguments","detailCard"],[3,"id","label","value"],[3,"id","text","buttonClick",4,"ngIf"],[3,"id","type","text","buttonClick",4,"ngIf"],[3,"buttonClick","id","text"],[3,"buttonClick","id","type","text"],[3,"id","title","detailCard"],[3,"rowNgClass"]],template:function(t,c){t&1&&(b(0,Ee,5,8,"iam-page",0),S(1,"async")),t&2&&a("ngIf",O(1,1,c.airlock2FADeviceManagement))},dependencies:[Y,Z,le,ce,se,pe,me,ve,ee,ne,de],encapsulation:2});let i=r;return i})();var Ie=[{path:"",pathMatch:"full",redirectTo:"devices"},{path:"devices",component:Ae,resolve:{deviceManagementConfig:()=>n(g).resolve()},runGuardsAndResolvers:"always"}],Ht=(()=>{let r=class r{};r.\u0275fac=function(t){return new(t||r)},r.\u0275mod=L({type:r}),r.\u0275inj=J({providers:[P,g],imports:[ie.forChild(Ie),ue]});let i=r;return i})();export{Ht as Airlock2FADeviceManagementModule};
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.