1"use strict";(self.webpackChunkaivhub=self.webpackChunkaivhub||[]).push([[4033],{4259:(y,h,r)=>{function g(t){return!!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)}r.d(h,{L:()=>g})},6158:(y,h,r)=>{r.d(h,{z:()=>z});var g=r(6895),t=r(1571),d=r(433),_=r(727),p=r(1884),m=r(5698),O=r(7445),T=r(3900),b=r(4259),v=r(7614);const P=["emailInput"];function l(n,s){1&n&&(t.TgZ(0,"div",7)(1,"h4",8),t._uU(2,"Congratulations! Your sign-up was successful. "),t._UZ(3,"br"),t._uU(4," Please check your email for further instructions."),t.qZA()())}function o(n,s){if(1&n&&(t.TgZ(0,"div",7)(1,"h4",8),t._uU(2,"Congratulations! Your server is configured and you can access aiv from below url. "),t._UZ(3,"br"),t.TgZ(4,"a",9),t._uU(5,"Click Here"),t.qZA()()()),2&n){const e=t.oxw();t.xp6(4),t.Q6J("href","http://"+e.configuation.ip.value+":8080/aiv",t.LSH)}}function u(n,s){1&n&&(t.TgZ(0,"div",10)(1,"div",11),t.O4$(),t.TgZ(2,"svg",12),t._UZ(3,"circle",13),t.qZA()(),t.kcU(),t.TgZ(4,"div",14),t.O4$(),t.TgZ(5,"svg",15),t._UZ(6,"polygon",16),t.qZA()(),t.kcU(),t.TgZ(7,"div",11),t.O4$(),t.TgZ(8,"svg",12),t._UZ(9,"rect",17),t.qZA()(),t.kcU(),t.TgZ(10,"h4",18),t._uU(11," Server is getting configured... "),t.qZA()())}function x(n,s){if(1&n){const e=t.EpF();t.TgZ(0,"button",44),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(3);return t.KtG(a.requestOtp())}),t._uU(1,"Get OTP"),t.qZA()}if(2&n){const e=t.oxw(3);t.Q6J("disabled",!e.emailIsValid)}}function U(n,s){1&n&&(t.TgZ(0,"button",45),t._UZ(1,"i",46),t._uU(2," Loading"),t.qZA())}function A(n,s){if(1&n&&(t.TgZ(0,"button",47),t._uU(1),t.qZA()),2&n){const e=t.oxw(3);t.Q6J("disabled",!e.emailIsValid),t.xp6(1),t.hij("Request Again in ",e.counter," sec")}}function M(n,s){if(1&n){const e=t.EpF();t.TgZ(0,"button",48),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(3);return t.KtG(a.requestOtpAgain())}),t._uU(1,"Resend OTP"),t.qZA()}if(2&n){const e=t.oxw(3);t.Q6J("disabled",!e.emailIsValid)}}function I(n,s){1&n&&(t.TgZ(0,"button",49),t._UZ(1,"i",50),t._uU(2," Verified"),t.qZA())}function E(n,s){if(1&n&&(t.TgZ(0,"div",38),t.YNc(1,x,2,1,"button",39),t.YNc(2,U,3,0,"button",40),t.YNc(3,A,2,2,"button",41),t.YNc(4,M,2,1,"button",42),t.YNc(5,I,3,0,"button",43),t.qZA()),2&n){const e=t.oxw(2);t.xp6(1),t.Q6J("ngIf",!e.otpRequested&&!e.loadingOtpRequest),t.xp6(1),t.Q6J("ngIf",e.loadingOtpRequest),t.xp6(1),t.Q6J("ngIf",e.otpRequested&&!e.otpVerified&&0!==e.counter),t.xp6(1),t.Q6J("ngIf",0===e.counter&&e.otpRequested&&!e.otpVerified),t.xp6(1),t.Q6J("ngIf",e.otpVerified)}}function w(n,s){1&n&&(t.TgZ(0,"small",51),t._uU(1,"User already registered"),t.qZA())}function S(n,s){if(1&n){const e=t.EpF();t.TgZ(0,"button",55),t.NdJ("click",function(){t.CHM(e);const a=t.oxw(4);return t.KtG(a.verifyOtp())}),t._uU(1,"Verify"),t.qZA()}if(2&n){const e=t.oxw(4);t.Q6J("disabled",!e.emailIsValid)}}function q(n,s){if(1&n&&(t.TgZ(0,"div",38),t.YNc(1,S,2,1,"button",54),t.qZA()),2&n){const e=t.oxw(3);t.xp6(1),t.Q6J("ngIf",!e.otpVerified)}}const Z=function(n){return{"group-aiv-box":n}};function k(n,s){if(1&n&&(t.TgZ(0,"div",30)(1,"label",21),t._uU(2,"Email OTP (Check email) "),t.TgZ(3,"span",22),t._uU(4,"*"),t.qZA(),t._UZ(5,"i",52),t.qZA(),t.TgZ(6,"div",23)(7,"div",32),t._UZ(8,"input",53),t.YNc(9,q,2,1,"div",35),t.qZA()()()),2&n){const e=t.oxw(2);t.xp6(8),t.Q6J("ngClass",t.VKq(2,Z,""!==(null==e.otp?null:e.otp.value))),t.xp6(1),t.Q6J("ngIf",""!==(null==e.otp?null:e.otp.value)&&6===(null==e.otp||null==e.otp.value?null:e.otp.value.length))}}function D(n,s){1&n&&(t.TgZ(0,"div",30)(1,"label",21),t._uU(2," Number of users "),t.TgZ(3,"span",22),t._uU(4,"*"),t.qZA(),t._UZ(5,"i",56),t.qZA(),t.TgZ(6,"div",23),t._UZ(7,"input",57),t.qZA()())}function B(n,s){1&n&&(t.TgZ(0,"div",30)(1,"label",21),t._uU(2,"Company Name "),t.TgZ(3,"span",22),t._uU(4,"*"),t.qZA(),t._UZ(5,"i",58),t.qZA(),t.TgZ(6,"div",23),t._UZ(7,"input",59),t.qZA()())}function R(n,s){1&n&&(t.TgZ(0,"div",30)(1,"div",60)(2,"div",61),t._UZ(3,"img",62),t.TgZ(4,"label",25),t._UZ(5,"input",63),t._uU(6,"Forever"),t.qZA()(),t.TgZ(7,"div",61),t._UZ(8,"img",64),t.TgZ(9,"label",25),t._UZ(10,"input",65),t._uU(11,"Direct Download"),t.qZA()()()())}function F(n,s){1&n&&(t.TgZ(0,"div",73),t._UZ(1,"img",74),t.TgZ(2,"label",25),t._UZ(3,"input",75),t._uU(4,"BYOC/BYOS"),t.qZA()())}function N(n,s){if(1&n&&(t.TgZ(0,"div",76),t._UZ(1,"img",77),t.TgZ(2,"label",25),t._UZ(3,"input",78),t._uU(4,"AIV as Saas"),t.qZA()()),2&n){const e=t.oxw(3);t.xp6(3),t.Q6J("disabled",""===e.configuation.numberofusers.value||0===e.configuation.numberofusers.value)}}function V(n,s){if(1&n&&(t.TgZ(0,"div",30)(1,"label",21),t._uU(2," Type of Service "),t.TgZ(3,"span",22),t._uU(4,"*"),t.qZA(),t._UZ(5,"i",66),t.qZA(),t.TgZ(6,"div",67),t.YNc(7,F,5,0,"div",68),t.YNc(8,
1N,5,1,"div",69),t.TgZ(9,"div",70),t._UZ(10,"img",71),t.TgZ(11,"label",25),t._UZ(12,"input",72),t._uU(13,"On Premise"),t.qZA()()()()),2&n){const e=t.oxw(2);t.xp6(7),t.Q6J("ngIf",2===e.selectedIndex),t.xp6(1),t.Q6J("ngIf",1===e.selectedIndex),t.xp6(4),t.Q6J("disabled",""===e.configuation.numberofusers.value||0===e.configuation.numberofusers.value)}}function K(n,s){1&n&&(t.TgZ(0,"div",30)(1,"label",21),t._uU(2," Type of Service "),t.TgZ(3,"span",22),t._uU(4,"*"),t.qZA()(),t.TgZ(5,"div",67)(6,"div",61),t._UZ(7,"img",79),t.TgZ(8,"label",25),t._UZ(9,"input",75),t._uU(10,"Cloud"),t.qZA()(),t.TgZ(11,"div",61),t._UZ(12,"img",64),t.TgZ(13,"label",25),t._UZ(14,"input",65),t._uU(15,"On Premise"),t.qZA()()()())}function L(n,s){1&n&&(t.TgZ(0,"div",30)(1,"label",21),t._uU(2," Cloud Provider"),t.TgZ(3,"span",22),t._uU(4,"*"),t.qZA()(),t.TgZ(5,"div",80)(6,"div",61),t._UZ(7,"img",81),t.TgZ(8,"label",25),t._UZ(9,"input",82),t._uU(10,"AWS"),t.qZA()(),t.TgZ(11,"div",61),t._UZ(12,"img",83),t.TgZ(13,"label",25),t._UZ(14,"input",84),t._uU(15,"Azure"),t.qZA()(),t.TgZ(16,"div",61),t._UZ(17,"img",85),t.TgZ(18,"label",25),t._UZ(19,"input",86),t._uU(20,"GCP"),t.qZA()(),t.TgZ(21,"div",61),t._UZ(22,"img",87),t.TgZ(23,"label",25),t._UZ(24,"input",88),t._uU(25,"Other Server"),t.qZA()()()())}function Y(n,s){1&n&&(t.TgZ(0,"div",30)(1,"div",89)(2,"div",90)(3,"div",91),t._UZ(4,"i",92),t._uU(5," Deploy a new virtual machine with Ubuntu 20.04 or 22.04 on any third-party cloud provider, and set up the network firewall to permit communication on ports 22, 80, and 443. Also, refer to our documentation for information on the essential ports required for our tools. "),t.qZA()()()())}function J(n,s){1&n&&(t.TgZ(0,"div",30)(1,"label",21),t._uU(2,"Server External IPV4 "),t.TgZ(3,"span",22),t._uU(4,"*"),t.qZA(),t._UZ(5,"i",93),t.qZA(),t.TgZ(6,"div",23),t._UZ(7,"input",94),t.qZA()())}function Q(n,s){if(1&n){const e=t.EpF();t.TgZ(0,"div",19)(1,"div",20)(2,"label",21),t._uU(3," Department"),t.TgZ(4,"span",22),t._uU(5,"*"),t.qZA()(),t.TgZ(6,"div",23),t._UZ(7,"input",24),t.qZA()(),t.TgZ(8,"div",20)(9,"label",21),t._uU(10," Type"),t.TgZ(11,"span",22),t._uU(12,"*"),t.qZA()(),t.TgZ(13,"div",23)(14,"label",25),t._UZ(15,"input",26),t._uU(16,"Individual"),t.qZA(),t.TgZ(17,"label",25),t._UZ(18,"input",27),t._uU(19,"Team "),t.qZA(),t.TgZ(20,"label",25),t._UZ(21,"input",28),t._uU(22,"Enterprise "),t.TgZ(23,"span",29),t._uU(24,"(Unlimited Users)"),t.qZA()()()(),t.TgZ(25,"div",30)(26,"label",21),t._uU(27,"Email "),t.TgZ(28,"span",22),t._uU(29,"*"),t.qZA(),t._UZ(30,"i",31),t.qZA(),t.TgZ(31,"div",23)(32,"div",32)(33,"input",33,34),t.NdJ("focus",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.userAlreadyRegistered=!1)})("blur",function(){t.CHM(e);const a=t.oxw();return t.KtG(a.verifyEmail())}),t.qZA(),t.YNc(35,E,6,5,"div",35),t.qZA(),t.YNc(36,w,2,0,"small",36),t.qZA()(),t.YNc(37,k,10,4,"div",37),t.YNc(38,D,8,0,"div",37),t.YNc(39,B,8,0,"div",37),t.YNc(40,R,12,0,"div",37),t.YNc(41,V,14,3,"div",37),t.YNc(42,K,16,0,"div",37),t.YNc(43,L,26,0,"div",37),t.YNc(44,Y,6,0,"div",37),t.YNc(45,J,8,0,"div",37),t.qZA()}if(2&n){const e=t.oxw();t.Q6J("formGroup",e.configurationForm),t.xp6(33),t.Q6J("ngClass",t.VKq(13,Z,""!==(null==e.email?null:e.email.value))),t.xp6(2),t.Q6J("ngIf",""!==(null==e.email?null:e.email.value)),t.xp6(1),t.Q6J("ngIf",e.userAlreadyRegistered),t.xp6(1),t.Q6J("ngIf",""!==(null==e.email?null:e.email.value)&&e.emailIsValid&&e.otpRequested&&!e.otpVerified),t.xp6(1),t.Q6J("ngIf","team"===e.configuation.type.value&&e.otpVerified),t.xp6(1),t.Q6J("ngIf","team"===e.configuation.type.value&&e.otpVerified),t.xp6(1),t.Q6J("ngIf","individual"===e.configuation.type.value),t.xp6(1),t.Q6J("ngIf","team"===e.configuation.type.value&&e.otpVerified),t.xp6(1),t.Q6J("ngIf","enterprise"===e.configuation.type.value),t.xp6(1),t.Q6J("ngIf","paas"===e.configuation.subtype.value),t.xp6(1),t.Q6J("ngIf","paas"===e.configuation.subtype.value),t.xp6(1),t.Q6J("ngIf","paas"===e.configuation.subtype.value&&"gcp"===e.configuation.paasprovider.value)}}let z=(()=>{const s=class{constructor(i,a,c){this.formBuilder=i,this.cd=a,this.saasConfigurationService=c,this.nextButtonDisableChange=new t.vpe,this.updateNumberOfLiceseChange=new t.vpe,this.userAlreadyRegistered=!1,this.addUserResponse=!1,this.addUserPaasResponse=!1,this.loading=!1,this.loadingPaas=!1,this.emailIsValid=!1,this.otpVerified=!1,this.otpRequested=!1,this.counter=2,this.loadingOtpRequest=!1,this.typeSubscription=new _.w0}get configuation(){return this.configurationForm.controls}get email(){return this.configurationForm.get("email")}get otp(){return this.configurationForm.get("otp")}ngAfterViewInit(){this.activateTooltip()}ngOnInit(){this.checkDisableAndEnable(!0),this.typeSubscription.add(this.configurationForm.controls.type.valueChanges.pipe((0,p.x)()).subscribe(i=>{this.configurationForm.controls.subtype.setValue(""),this.configurationForm.controls.paasprovider.setValue(""),this.checkDisableAndEnable("team"===i),this.checkNextButtonDisable(),setTimeout(()=>{this.activateTooltip()})})),this.typeSubscription.add(this.configurationForm.controls.subtype.valueChanges.pipe((0,p.x)()).subscribe(i=>{this.checkNextButtonDisable()})),this.typeSubscription.add(this.configurationForm.controls.paasprovider.valueChanges.pipe((0,p.x)()).subscribe(i=>{this.checkNextButtonDisable()})),this.typeSubscription.add(this.configurationForm.controls.numberofusers.valueChanges.pipe((0,p.x)()).subscribe(i=>{this.updateNumberOfLiceseChange.emit(i),this.checkDisableAndEnable(!0)})),this.typeSubscription.add(this.configurationForm.controls.company.valueChanges.pipe((0,p.x)()).subscribe(i=>{this.checkDisableAndEnable(!0)})),this.typeSubscription.add(this.configurationForm.controls.email.valueChanges.pipe((0,p.x)()).subscribe(i=>{this.checkDisableAndEnable(!0)})),this.saasConfigurationService.getIpDetails().pipe((0,m.q)(1)).subscribe(i=>{i&&(this.ipDetails=i)}),this.checkNextButtonDisable(),setTimeout(()=>{this.emailInput?.nativeElement?.focus(),this.activateTooltip()})}startCountdown(){const i=(0,O.F)(1e3);this.subscription=i.subscribe(a=>{this.counter>0?(this.counter--,this.cd.markForCheck()):(this.otpRequested=!1,this.subscription.unsubscribe())})}requestOtp(){if(this.activateTooltip(),!this.otpRequested){this.loadingOtpRequest=!0;const i={};i.email=this.configurationForm.controls.email.value,i.sourceip=this.ipDetails?.IPv4,this.saasConfigurationService.requestOtpForEmail(i).pipe((0,m.q)(1)).subscribe(a=>{a&&(this.loadingOtpRequest=!1,this.otpRequested=!0,this.counter=60*a?.validtime,this.startCountdown(),setTimeout(()=>{this.activateTooltip()}))})}}requestOtpAgain(){if(this.activateTooltip(),!this.otpRequested){this.loadingOtpRequest=!0;const i={};i.email=this.configurationForm.controls.email.value,i.sourceip=this.ipDetails?.IPv4,this.saasConfigurationService.resendOtpForEmail(i).pipe((0,m.q)(1)).subscribe(a=>{a&&(this.loadingOtpRequest=!1,this.otpRequested=!0,this.counter=60*a?.validtime,this.startCountdown(),setTimeout(()=>{this.activateTooltip()}))})}}verifyOtpAgain(){this.otpRequested||(this.otpRequested=!0)}checkNextButtonDisable(){this.activateTooltip();const i=this.configurationForm.controls.type.value,a=this.configurationForm.controls.subtype.value;let f=!0;if("individual"===i)("free"===a||"paas"===a&&""!==this.configurationForm.controls.paasprovider.value)&&(f=!1);else if("team"===i){const C=this.configurationForm.controls.numberofusers.value;f=""===C||0===C||""===this.configurationForm.controls.company.value||""===this.configurationForm.controls.email.value||""===a}this.nextButtonDisable=!this.otpVerified||f,this.nextButtonDisableChange.emit(this.nextButtonDisable)}checkDisableAndEnable(i){const a=this.configurationForm.controls.numberofusers.value,c=this.configurationForm.controls.company.value,f=this.configurationForm.controls.email.value,C=this.configurationForm.controls.type.value;this.emailIsValid=(0,b.L)(f),!this.otpVerified||(""===a||0===a||""===c||""===f)&&i&&"individual"!==C?this.configurationForm.controls.subtype.disable():this.configurationForm.controls.subtype.enable(),this.otpVerified?(this.configurationForm.controls.numberofusers.enable(),this.configurationForm.controls.company.enable()):(this.configurationForm.controls.numberofusers.disable(),this.configurationForm.controls.company.disable()),this.activateTooltip()}setValueFromOutside(){this.emailInput?.nativeElement?.focus(),this.cd.markForCheck()}verifyEmail(){const i=this.configurationForm.controls.email.value;i&&this.saasConfigurationService.checkEmailAlreadyExist({username:i}).pipe((0,m.q)(1)).subscribe(a=>{this.userAlreadyRegistered=0!==a,this.cd.markForCheck()})}checkNextButtonClick(){const i=this.configurationForm.getRawValue();this.loading=!0,this.cd.markForCheck(),i.expiryDate=new Date,"individual"===i?.type&&(i.numberofusers=1),this.submitData(i)}submitData(i){if("team"===i?.type&&"paas"===i?.subtype){const a={server:i?.paasprovider,ip:i?.ip,ansible_user:"aivhub390002",ansible_ssh_pass:"123456"};this.loadingPaas=!0,this.saasConfigurationService.addPaasUser(a).pipe((0,m.q)(1)).subscribe(c=>{"Server created successfully"===c?.message&&(this.addUserPaasResponse=!0,this.loadingPaas=!1,this.cd.markForCheck())})}else this.saasConfigurationService.getPublicKey().pipe((0,m.q)(1),(0,T.w)(a=>{const c=new JSEncrypt;c.default_key_size=4096,c.setPublicKey("-----BEGIN PUBLIC KEY-----\n"+a+"\n-----END PUBLIC KEY-----");
1const f=c.encrypt(JSON.stringify(i));return this.saasConfigurationService.addUser({token:f})}),(0,m.q)(1)).subscribe(a=>{a&&a>0&&(this.addUserResponse=!0,this.loading=!1,this.cd.markForCheck())})}verifyOtp(){const i=this.configurationForm.controls.otp.value;this.saasConfigurationService.verifyOtpForEmail({params:{email:this.configurationForm.controls.email.value,otp:i,opt:i}}).pipe((0,m.q)(1)).subscribe(c=>{c&&"Otp is Valid."===c?.message&&(this.otpVerified=!0,this.configurationForm.controls.email.disable(),this.checkDisableAndEnable(!1),this.checkNextButtonDisable())})}activateTooltip(){$('[data-toggle="tooltip"]').tooltip()}ngOnDestroy(){this.typeSubscription&&this.typeSubscription.unsubscribe()}};let n=s;return s.\u0275fac=function(a){return new(a||s)(t.Y36(d.qu),t.Y36(t.sBO),t.Y36(v.F))},s.\u0275cmp=t.Xpm({type:s,selectors:[["app-server-configuartion"]],viewQuery:function(a,c){if(1&a&&t.Gf(P,5),2&a){let f;t.iGM(f=t.CRH())&&(c.emailInput=f.first)}},inputs:{selectedIndex:"selectedIndex",nextButtonDisable:"nextButtonDisable",configurationForm:"configurationForm"},outputs:{nextButtonDisableChange:"nextButtonDisableChange",updateNumberOfLiceseChange:"updateNumberOfLiceseChange"},standalone:!0,features:[t._Bn([d.qu]),t.jDz],decls:10,vars:4,consts:[[1,"container-fluid","bg-server"],[1,"row","saas-div-center"],[1,"col-lg-12","col-md-12","saas-main-config"],[1,"saas-main-header"],["class","success-message-div",4,"ngIf"],["class","loading-loaded-paas",4,"ngIf"],["class","form-group-div",3,"formGroup",4,"ngIf"],[1,"success-message-div"],[1,"success-message"],["target","_blank",3,"href"],[1,"loading-loaded-paas"],[1,"loader"],["viewBox","0 0 80 80"],["id","test","cx","40","cy","40","r","32"],[1,"loader","triangle"],["viewBox","0 0 86 80"],["points","43 8 79 72 7 72"],["x","8","y","8","width","64","height","64"],[1,"success-config"],[1,"form-group-div",3,"formGroup"],[1,"form-group",2,"display","none"],[1,"control-label-saas","col-md-4"],[1,"asterisk-field"],[1,"controls","col-md-8"],["formControlName","department","id","id_department","maxlength","30","name","department","placeholder","Type your Department","type","text",1,"input-md","textinput","textInput","form-control","input-text-box"],[1,"radio-inline"],["type","radio","formControlName","type","value","individual"],["type","radio","formControlName","type","value","team"],["type","radio","formControlName","type","value","enterprise"],[1,"unlimited"],[1,"form-group"],["data-toggle","tooltip","data-placement","right","data-html","true","title","The email address you provide will be utilized for the creation of both \n regular user accounts and admin accounts within AIV system",1,"fa-light","fa-circle-info","faqPointer"],[1,"input-group","inp-change","col-md-12"],["formControlName","email","name","email","placeholder","Email address","type","text",1,"input-md","textinput","textInput","form-control","input-text-box",3,"ngClass","focus","blur"],["emailInput",""],["class","input-group-addon get-otp",4,"ngIf"],["class","validation-message",4,"ngIf"],["class","form-group",4,"ngIf"],[1,"input-group-addon","get-otp"],["class","btn btn-success btn-sm min-w",3,"disabled","click",4,"ngIf"],["class","btn btn-primary btn-sm min-w",4,"ngIf"],["class","btn btn-warning btn-sm min-w",3,"disabled",4,"ngIf"],["class","btn btn-primary btn-sm min-w",3,"disabled","click",4,"ngIf"],["class","btn btn-success btn-sm min-w",4,"ngIf"],[1,"btn","btn-success","btn-sm","min-w",3,"disabled","click"],[1,"btn","btn-primary","btn-sm","min-w"],[1,"fa-solid","fa-spinner-third","fa-spin"],[1,"btn","btn-warning","btn-sm","min-w",3,"disabled"],[1,"btn","btn-primary","btn-sm","min-w",3,"disabled","click"],[1,"btn","btn-success","btn-sm","min-w"],[1,"fa-solid","fa-check"],[1,"validation-message"],["data-toggle","tooltip","data-placement","right","data-html","true","title","Please check email for",1,"fa-light","fa-circle-info","faqPointer"],["formControlName","otp","name","otp","placeholder","OTP","type","text","maxlength","6",1,"input-md","textinput","textInput","form-control","input-text-box",3,"ngClass"],["class","btn btn-info btn-sm min-w",3,"disabled","click",4,"ngIf"],[1,"btn","btn-info","btn-sm","min-w",3,"disabled","click"],["data-toggle","tooltip","data-
1placement","right","data-html","true","title","The number of users specified here will determine the total\n number of licenses issued for AIV",1,"fa-light","fa-circle-info","faqPointer"],["formControlName","numberofusers","name","numberofusers","placeholder","Number of Users","type","number",1,"input-md","textinput","textInput","form-control","input-text-box"],["data-toggle","tooltip","data-placement","right","data-html","true","title","The company name provided will be used to create a\n department within the AIV system.",1,"fa-light","fa-circle-info","faqPointer"],["formControlName","company","name","company","placeholder","Company name","type","text",1,"input-md","textinput","textInput","form-control","input-text-box","input-text-box"],[1,"controls","col-md-offset-4","col-md-8","free-sett"],[1,"free-set-inside-div"],["src","assets/images/saas/free.png"],["type","radio","formControlName","subtype","value","free"],["src","assets/images/saas/download.png"],["type","radio","formControlName","subtype","value","download"],["data-toggle","tooltip","data-placement","right","data-html","true","title","<div class='aiv-tooltip-text'>1. AIV as BYOC/BYOS: This means you can directly install AIV onto\n your own server, such as GCP, Azure, AWS, or other platforms. You'll have full control over the\n management of AIV on your server.<br></div>\n<div class='aiv-tooltip-text'>2. AIV as SaaS (Software as a Service): This means everything will be managed by AIV, and you can start \n using it without the need to maintain your own server. However, there are certain\n limitations outlined in the documentation.\n<br></div>\n<div class='aiv-tooltip-text'>3. On-Premises Installation: This option allows you to download AIV and set it up\n locally on your server or machine.</div>",1,"fa-light","fa-circle-info","faqPointer"],[1,"controls","col-md-8","free-sett"],["class","free-set-inside-div","data-toggle","tooltip","data-placement","top","data-html","true","title","<div class='aiv-tooltip-text'>AIV as BYOC/BYOS: This means you can directly install AIV onto\n your own server, such as GCP, Azure, AWS, or other platforms. You'll have full control over the\n management of AIV on your server.</div>",4,"ngIf"],["class","free-set-inside-div","data-toggle","tooltip","data-placement","top","data-html","true","title","<div class='aiv-tooltip-text'>AIV as SaaS (Software as a Service): This means everything will be managed by AIV, and you can start \n using it without the need to maintain your own server. However, there are certain\n limitations outlined in the documentation.\n</div>",4,"ngIf"],["data-toggle","tooltip","data-placement","top","data-html","true","title","<div class='aiv-tooltip-text'>On-Premises Installation: This option allows you to download AIV and set it up\n locally on your server or machine.</div>",1,"free-set-inside-div"],["src","assets/images/saas/database.png"],["type","radio","formControlName","subtype","value","download",3,"disabled"],["data-toggle","tooltip","data-placement","top","data-html","true","title","<div class='aiv-tooltip-text'>AIV as BYOC/BYOS: This means you can directly install AIV onto\n your own server, such as GCP, Azure, AWS, or other platforms. You'll have full control over the\n management of AIV on your server.</div>",1,"free-set-inside-div"],["src","assets/images/saas/paas.png"],["type","radio","formControlName","subtype","value","paas"],["data-toggle","tooltip","data-placement","top","data-html","true","title","<div class='aiv-tooltip-text'>AIV as SaaS (Software as a Service): This means everything will be managed by AIV, and you can start \n using it without the need to maintain your own server. However, there are certain\n limitations outlined in the documentation.\n</div>",1,"free-set-inside-div"],["src","assets/images/saas/saas.png"],["type","radio","formControlName","subtype","value","aivassaas",3,"disabled"],["src","assets/images/saas/cloudsettings.png"],[1,"controls","col-md-9","free-sett"],["src","assets/images/saas/aws.png"],["type","radio","formControlName","paasprovider","value","aws"],["src","assets/images/saas/azure.png"],["type","radio","formControlName","paasprovider","value","azure"],["src","assets/images/saas/gcp.png"],["type","radio","formControlName","paasprovider","value","gcp"],["src","assets/images/saas/otherserver.png"],["type","radio","formControlName","paasprovider","value","otherserver"],[1,"col-lg-10","col-md-10"],[1,"help-info"],[1,"help-info-container"],[1,"fa-solid","fa-info","help-info-i"],["data-toggle","tooltip","data-
1placement","right","data-html","true","title","The Server External IPV4 is vital for PaaS, enabling remote access, facilitating data exchange,\n application deployment, and remote management with security protocols.",1,"fa-light","fa-circle-info","faqPointer"],["formControlName","ip","name","ip","placeholder","00.00.00.00","type","text",1,"input-md","textinput","textInput","form-control","input-text-box"]],template:function(a,c){1&a&&(t.TgZ(0,"div",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"h4"),t._uU(5,"AIV Server Configuration"),t.qZA()(),t.YNc(6,l,5,0,"div",4),t.YNc(7,o,6,1,"div",4),t.YNc(8,u,12,0,"div",5),t.YNc(9,Q,46,15,"div",6),t.qZA()()()),2&a&&(t.xp6(6),t.Q6J("ngIf",c.addUserResponse),t.xp6(1),t.Q6J("ngIf",c.addUserPaasResponse),t.xp6(1),t.Q6J("ngIf",c.loadingPaas),t.xp6(1),t.Q6J("ngIf",!c.addUserResponse&&!c.loadingPaas&&!c.addUserPaasResponse))},dependencies:[g.ez,g.mk,g.O5,d.UX,d.Fj,d.wV,d._,d.JJ,d.JL,d.nD,d.sg,d.u],styles:['[_nghost-%COMP%]{display:block}.logo-saas-config[_ngcontent-%COMP%]{display:flex;justify-content:center;padding-top:20px}.saas-div-center[_ngcontent-%COMP%]{display:flex;justify-content:center;margin-top:5px}.saas-main-config[_ngcontent-%COMP%]{background:#fff;padding:0;position:relative}.saas-main-header[_ngcontent-%COMP%]{padding:5px 10px;margin:0 15px;text-align:center}.saas-main-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{color:#000;font-size:15px;font-weight:600;line-height:27px;word-wrap:break-word}.saas-main-footer[_ngcontent-%COMP%]{padding:5px 10px;bottom:0;left:0;width:100%;display:flex;justify-content:center}.form-group-div[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding-top:15px}.form-group[_ngcontent-%COMP%]{margin-bottom:20px;align-items:center;display:flex}.form-control[_ngcontent-%COMP%]{font-weight:400;font-size:13px}.radio-inline[_ngcontent-%COMP%]{font-size:13px;color:#666}.get-otp[_ngcontent-%COMP%]{background:#fff;padding:2px 12px;border-radius:0}.inp-change[_ngcontent-%COMP%]{margin:0}.get-otp[_ngcontent-%COMP%] .btn-sm[_ngcontent-%COMP%]{padding:2px 8px}.group-aiv-box[_ngcontent-%COMP%]{border-right:0px!important}.min-w[_ngcontent-%COMP%]{min-width:65px}.control-label-saas[_ngcontent-%COMP%]{display:flex;align-items:center;font-weight:400;color:#666;font-size:13px}.btn-all[_ngcontent-%COMP%]{background:#4F9CFD;border-radius:5px}.unlimited[_ngcontent-%COMP%]{font-size:11px}.free-sett[_ngcontent-%COMP%]{display:flex;gap:50px;align-items:baseline}.free-sett[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:35px}.free-set-inside-div[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:10px}.validation-message[_ngcontent-%COMP%]{color:red}.success-message-div[_ngcontent-%COMP%]{display:flex;justify-content:center}.success-message[_ngcontent-%COMP%]{color:#3bbc21}.loading-loaded-paas[_ngcontent-%COMP%]{text-align:center}.paas-para[_ngcontent-%COMP%]{margin-top:20px;padding-left:15px}.help-info[_ngcontent-%COMP%]{border:1px solid #03a9f4;background-color:#03a9f417;border-radius:4px;box-shadow:none;padding:15px}.help-info-i[_ngcontent-%COMP%]{color:#03a9f4;font-size:20px;margin-right:15px}.help-info-container[_ngcontent-%COMP%]{align-items:center;display:flex;font-size:12px;flex-direction:row}.help-info-container-2[_ngcontent-%COMP%]{font-size:12px}.asterisk-field[_ngcontent-%COMP%]{color:#a4262c;padding:0 5px} .tooltip-inner{max-width:400px;width:400px} .aiv-tooltip-text{text-align:left}.loader[_ngcontent-%COMP%]{--path: #2f3545;--dot: #5628ee;--duration: 3s;width:44px;height:44px;position:relative}.loader[_ngcontent-%COMP%]:before{content:"";width:6px;height:6px;border-radius:50%;position:absolute;display:block;background:var(--dot);top:37px;left:19px;transform:translate(-18px,-18px);animation:_ngcontent-%COMP%_dotRect var(--duration) cubic-bezier(.785,.135,.15,.86) infinite}.loader[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{display:block;width:100%;height:100%}.loader[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] rect[_ngcontent-%COMP%], .loader[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] polygon[_ngcontent-%COMP%], .loader[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] circle[_ng
1content-%COMP%]{fill:none;stroke:var(--path);stroke-width:10px;stroke-linejoin:round;stroke-linecap:round}.loader[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] polygon[_ngcontent-%COMP%]{stroke-dasharray:145 76 145 76;stroke-dashoffset:0;animation:_ngcontent-%COMP%_pathTriangle var(--duration) cubic-bezier(.785,.135,.15,.86) infinite}.loader[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] rect[_ngcontent-%COMP%]{stroke-dasharray:192 64 192 64;stroke-dashoffset:0;animation:_ngcontent-%COMP%_pathRect 3s cubic-bezier(.785,.135,.15,.86) infinite}.loader[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] circle[_ngcontent-%COMP%]{stroke-dasharray:150 50 150 50;stroke-dashoffset:75;animation:_ngcontent-%COMP%_pathCircle var(--duration) cubic-bezier(.785,.135,.15,.86) infinite}.loader.triangle[_ngcontent-%COMP%]{width:48px}.loader.triangle[_ngcontent-%COMP%]:before{left:21px;transform:translate(-10px,-18px);animation:_ngcontent-%COMP%_dotTriangle var(--duration) cubic-bezier(.785,.135,.15,.86) infinite}.input-text-box[_ngcontent-%COMP%]{border:1px solid #ccc}@keyframes _ngcontent-%COMP%_pathTriangle{33%{stroke-dashoffset:74}66%{stroke-dashoffset:147}to{stroke-dashoffset:221}}@keyframes _ngcontent-%COMP%_dotTriangle{33%{transform:translate(0)}66%{transform:translate(10px,-18px)}to{transform:translate(-10px,-18px)}}@keyframes _ngcontent-%COMP%_pathRect{25%{stroke-dashoffset:64}50%{stroke-dashoffset:128}75%{stroke-dashoffset:192}to{stroke-dashoffset:256}}@keyframes _ngcontent-%COMP%_dotRect{25%{transform:translate(0)}50%{transform:translate(18px,-18px)}75%{transform:translateY(-36px)}to{transform:translate(-18px,-18px)}}@keyframes _ngcontent-%COMP%_pathCircle{25%{stroke-dashoffset:125}50%{stroke-dashoffset:175}75%{stroke-dashoffset:225}to{stroke-dashoffset:275}}.loader[_ngcontent-%COMP%]{display:inline-block;margin:0 16px}*[_ngcontent-%COMP%]{box-sizing:border-box}*[_ngcontent-%COMP%]:before, *[_ngcontent-%COMP%]:after{box-sizing:border-box}.dribbble[_ngcontent-%COMP%]{position:fixed;display:block;right:20px;bottom:20px}body[_ngcontent-%COMP%] .dribbble[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{display:block;height:28px}'],changeDetection:0}),n})()},7614:(y,h,r)=>{r.d(h,{F:()=>T});var g=r(3900),t=r(262),d=r(4004),_=r(9646),p=r(9291),m=r(1571),O=r(3755);let T=(()=>{const v=class{constructor(l){this.httpService=l}checkEmailAlreadyExist(l){return this.getBaseUrl().pipe((0,g.w)(o=>o?this.httpService.requestCall(o?.base_url+"secure/verify",p.pB.POST,{},l).pipe((0,t.K)(u=>(console.error("Error verifying user:",u),u))):"Base URL not found."),(0,t.K)(o=>(console.error("Error fetching base URL:",o),o)))}addUser(l){return this.getBaseUrl().pipe((0,g.w)(o=>o?this.httpService.requestCall(o?.base_url+"secure/addWebUser",p.pB.POST,{},l).pipe((0,t.K)(u=>(console.error("Error adding user:",u),u))):"Base URL not found."),(0,t.K)(o=>(console.error("Error fetching base URL:",o),o)))}addPaasUser(l){return this.getBaseUrl().pipe((0,g.w)(o=>o&&o?.paas_url?this.httpService.requestCall(o?.paas_url+"create_host",p.pB.POST,{},l).pipe((0,t.K)(u=>(console.error("Error adding user:",u),u))):"Paas URL not found."),(0,t.K)(o=>(console.error("Error fetching base URL:",o),o)))}getPublicKey(){return this.httpService.requestCall("assets/keys/publicKey",p.pB.GET,{responseType:"arraybuffer"},{}).pipe((0,d.U)(l=>this.arrayBufferToBase64(l)),(0,t.K)(l=>(console.error("Error getting public key:",l),(0,_.of)(""))))}requestOtpForEmail(l){return this.getBaseUrl().pipe((0,g.w)(o=>o?this.httpService.requestCall(o?.base_url+"secure/generateotp",p.pB.POST,{},l).pipe((0,t.K)(u=>u)):"Base URL not found."),(0,t.K)(o=>(console.error("Error fetching base URL:",o),o)))}resendOtpForEmail(l){return this.getBaseUrl().pipe((0,g.w)(o=>o?this.httpService.requestCall(o?.base_url+"secure/resendOTP",p.pB.POST,{},l).pipe((0,t.K)(u=>u)):"Base URL not found."),(0,t.K)(o=>(console.error("Error fetching base URL:",o),o)))}verifyOtpForEmail(l){return this.getBaseUrl().pipe((0,g.w)(o=>o?this.httpService.requestCall(o?.base_url+"secure/verifyOTP",p.pB.GET,l,{}).pipe((0,t.K)(u=>u)):"Base URL not found."),(0,t.K)(o=>(console.error("Error fetching base URL:",o),o)))}addLogs(l){return this.getBaseUrl().pipe((0,g.w)(o=>o?this.httpService.requestCall(o?.base_url+"secure/addlogs",p.pB.POST,{},l).pipe((0,t.K)(u=>u)):"Base URL not found."),(0,t.K)(o=>(console.error("Error fetching base URL:",o),o)))}getIpDetails(){return this.httpService.requestCall("https://geolocation-db.com/json/",p.pB.GET,{},{})}getBaseUrl(){return this.httpService.requestCall("assets/json/server.json",p.pB.GET,{},{})}arrayBufferToBase64(l){const o=new Uint8Array(l);let u="";for(let x=0;x<o.byteLength;x++)u+=String.fromCharCode(o[x]);return btoa(u)}};let b=v;return v.\u0275fac=function(o){return new(o||v)(m.LFG(O.O))},v.\u0275prov=m.Yz7({token:v,factory:v.\u0275fac,providedIn:"root"}),b})()},7445:(y,h,r)=>{r.d(h,{F:()=>d});var g=r(4986),t=r(5963);function d(_=0,p=g.z){return _<0&&(_=0),(0,t.H)(_,_,p)}}}]);
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.