tango-app-ui-auth 3.0.24-dev → 3.0.25-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,6 +29,7 @@ export class TangoAuthLoginComponent {
29
29
  password: null,
30
30
  };
31
31
  isLoading;
32
+ isloader = true;
32
33
  emailInputRef;
33
34
  passwordInputRef;
34
35
  authlocalStorageToken;
@@ -67,6 +68,7 @@ export class TangoAuthLoginComponent {
67
68
  this.destroy$.complete();
68
69
  }
69
70
  initForm() {
71
+ this.isloader = false;
70
72
  this.loginForm = this.fb.group({
71
73
  email: [
72
74
  this.defaultAuth.email,
@@ -140,11 +142,11 @@ export class TangoAuthLoginComponent {
140
142
  this.show = !this.show;
141
143
  }
142
144
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TangoAuthLoginComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.FormBuilder }, { token: i3.AuthService }, { token: i4.GlobalStateService }, { token: i0.ChangeDetectorRef }, { token: i5.ToastService }], target: i0.ɵɵFactoryTarget.Component });
143
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: TangoAuthLoginComponent, selector: "lib-tango-auth-login", viewQueries: [{ propertyName: "emailInputRef", first: true, predicate: ["emailInput"], descendants: true }, { propertyName: "passwordInputRef", first: true, predicate: ["passwordInput"], descendants: true }], ngImport: i0, template: "<!-- <div class=\"row justify-content-center logotext px-0\">\r\n <img src=\"./assets/tango/Icons/login-background.svg\" alt=\"\">\r\n </div> -->\r\n\r\n<!-- \r\n<button (click)=\"onClick()\">Log In</button> -->\r\n\r\n<div class=\"container\">\r\n <!-- style=\"padding: 96px 142px 96px 142px;\" -->\r\n <div class=\"row position-absolute\" >\r\n <div class=\"col-md-6 pe-10 d-flex justify-content-center align-items-center \">\r\n <img src=\"./assets/tango/Icons/LHS.svg\" alt=\"Image\" class=\"img-fluid\">\r\n </div>\r\n <div class=\"col-md-6 ps-10 d-flex justify-content-center align-items-center\"> \r\n <div class=\"card\">\r\n \r\n \r\n\r\n\r\n \r\n <div class=\"login-form login-signin\">\r\n \r\n <div class=\"d-flex flex-column align-items-between title-padding\">\r\n <div class=\"text-start my-10 ms-10\">\r\n <h3 class=\"login-title\">Log in</h3>\r\n <p class=\"login-sub-title\">Welcome back! Please enter your details.</p>\r\n </div>\r\n <form #loginForm=\"ngForm\" class=\"w-100 title-padding\" novalidate=\"novalidate\">\r\n <div class=\"mb-5 \">\r\n <label for=\"Email\" class=\"form-label\">Email</label>\r\n <input type=\"email\" class=\"form-control\" id=\"Email\" name=\"Email\" autocomplete=\"off\" required [(ngModel)]=\"credentials.email\" autocomplete=\"off\" #emailInput>\r\n </div>\r\n <div class=\"mb-5 \">\r\n <label for=\"Password\" class=\"form-label\">Password</label>\r\n <div class=\"position-relative mb-3\">\r\n <input class=\"form-control\" id=\"Password\" [type]=\"show ? 'text' : 'password'\"\r\n placeholder=\"\" name=\"password\" autocomplete=\"off\" required #passwordInput\r\n [(ngModel)]=\"credentials.password\">\r\n <span (click)=\"showPassword()\"\r\n class=\"btn btn-sm btn-icon position-absolute translate-middle top-50 end-0 me-n2\"\r\n data-kt-password-meter-control=\"visibility\">\r\n <i *ngIf=\"show\" class=\"fa fa-eye\" aria-hidden=\"true\"></i>\r\n <i *ngIf=\"!show\" class=\"fa fa-eye-slash\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n <div *ngIf=\"hasError\" class=\"text-danger\" style=\"color: #ffffff !important;\">\r\n Email Id / Mobile Number or Password is incorrect\r\n </div>\r\n </div>\r\n<div class=\"text-center\">\r\n <h6 class=\"forgot cursor-pointer\" routerLink=\"/auth/forgot-password\">Forgot Password</h6>\r\n\r\n</div>\r\n <button class=\"btn btn-primary w-100 mt-3\" [disabled]=\"!loginForm.valid || (!credentials.email || !credentials.password)\" (click)=\"onLogin()\">Sign in</button>\r\n\r\n <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_17759)\">\r\n <path\r\n d=\"M24.2663 12.9767C24.2663 12.161 24.2001 11.3408 24.059 10.5383H12.7402V15.1593H19.222C18.953 16.6497 18.0888 17.9681 16.8233 18.8058V21.8042H20.6903C22.9611 19.7142 24.2663 16.6276 24.2663 12.9767Z\"\r\n fill=\"#4285F4\" />\r\n <path\r\n d=\"M12.7401 24.701C15.9766 24.701 18.7059 23.6384 20.6945 21.8041L16.8276 18.8057C15.7517 19.5377 14.3627 19.9522 12.7445 19.9522C9.61388 19.9522 6.95946 17.8401 6.00705 15.0005H2.0166V18.0914C4.05371 22.1436 8.2029 24.701 12.7401 24.701Z\"\r\n fill=\"#34A853\" />\r\n <path\r\n d=\"M6.00277 15.0004C5.50011 13.5101 5.50011 11.8962 6.00277 10.4059V7.31494H2.01674C0.314734 10.7057 0.314734 14.7006 2.01674 18.0913L6.00277 15.0004Z\"\r\n fill=\"#FBBC04\" />\r\n <path\r\n d=\"M12.7401 5.44986C14.4509 5.4234 16.1044 6.06716 17.3434 7.24886L20.7695 3.82281C18.6001 1.7857 15.7208 0.665729 12.7401 0.701004C8.2029 0.701004 4.05371 3.25842 2.0166 7.315L6.00264 10.4059C6.95064 7.56193 9.60947 5.44986 12.7401 5.44986Z\"\r\n fill=\"#EA4335\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_17759\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Google</span> \r\n <span class=\"tooltip\">Coming Soon</span>\r\n </button>\r\n <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" ><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_6141)\">\r\n <path d=\"M11.9057 12.104H0.5V0.700195H11.9057V12.104Z\" fill=\"#F1511B\" />\r\n <path d=\"M24.5004 12.104H13.0938V0.700195H24.4994V12.104H24.5004Z\" fill=\"#80CC28\" />\r\n <path d=\"M11.9057 24.7002H0.5V13.2964H11.9057V24.7002Z\" fill=\"#00ADEF\" />\r\n <path d=\"M24.5004 24.7002H13.0938V13.2964H24.4994V24.7002H24.5004Z\" fill=\"#FBBC09\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_6141\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Microsoft</span> <span class=\"tooltip\">Coming Soon</span></button>\r\n </form>\r\n\r\n <div class=\"mt-3 text-center ms-75px\"><span class=\"signup-default\"></span>Don\u2019t have an account?<span class=\"signup-primary ms-2 cursor-pointer\" routerLink=\"/auth/signup\">Sign up</span></div>\r\n </div>\r\n <div class=\" d-flex flex-column flex-md-row mb-3 flex-md-stack pt-3 container-fluid\">\r\n <div class=\"text-gray-900 order-2 order-md-1 ms-10\">\r\n <span class=\"me-1 footer\">2024</span>\r\n <a target=\"_blank\" class=\"footer text-decoration-underline cursor-pointer\">&#64;TangoITSolutions India Pvt Ltd</a>\r\n </div>\r\n <ul class=\"menu menu-gray-600 menu-hover-primary fw-semibold order-1 me-7\">\r\n <li class=\"menu-item footer\"><a target=\"_blank\" href=\"https://tangoeye.ai/#aboutus\" class=\"menu-link px-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\">\r\n <path d=\"M11 3.7002C11 3.1502 10.55 2.7002 10 2.7002H2C1.45 2.7002 1 3.1502 1 3.7002M11 3.7002V9.7002C11 10.2502 10.55 10.7002 10 10.7002H2C1.45 10.7002 1 10.2502 1 9.7002V3.7002M11 3.7002L6 7.2002L1 3.7002\" stroke=\"#667085\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">support&#64;tangotech.co.in</span></a></li>\r\n \r\n </ul>\r\n </div>\r\n </div>\r\n \r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n<img src=\"./assets/tango/Icons/login-background1.svg\" alt=\"Image\" class=\"background-image\">\r\n</div>", styles: [".container{width:100%;height:100%;overflow:hidden}.background-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-1}.content{position:relative;z-index:1;width:45%;margin-left:auto;padding:20px;border-radius:16px;background:#fff;box-shadow:0 4px 10px #0000000d}.login-form .title-padding{padding:0 32px}.login-form .login-title{color:var(--Gray-900, #101828);font-size:36px;font-weight:600;line-height:44px;letter-spacing:-.72px}.login-form .login-sub-title{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.login-form .form-label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px}.login-form .img-src{padding:10px 5px 32px}.login-form .mx-25{margin-right:-10px!important;margin-left:-45px!important}.login-form .w-360px{width:360px!important}.login-form .forgot{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize;text-align:center}.login-form .signup-default{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.login-form .signup-primary{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:600!important;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.login-form .footer{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-weight:400!important;line-height:20px}@media (min-width: 1745px) and (max-width: 1910px){.mt-6{margin-top:7rem!important}}@media (min-width: 1920px) and (max-width: 2100px){.mt-6{margin-top:10rem!important}.login-form .mx-25{margin-right:0!important;margin-left:20px!important}}.position-absolute{position:absolute;top:50%;transform:translateY(-50%)}.not-allowed{cursor:not-allowed!important}.btn-outline.coming-soon{border-color:#ced4da;color:#6c757d;position:relative}.btn-outline.coming-soon:hover{border-color:#6c757d;color:#212529}.tooltip{visibility:hidden;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:100%;left:50%;transform:translate(-50%);width:max-content}.btn-outline.coming-soon:hover .tooltip{visibility:visible}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
145
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: TangoAuthLoginComponent, selector: "lib-tango-auth-login", viewQueries: [{ propertyName: "emailInputRef", first: true, predicate: ["emailInput"], descendants: true }, { propertyName: "passwordInputRef", first: true, predicate: ["passwordInput"], descendants: true }], ngImport: i0, template: "<!-- <div class=\"row justify-content-center logotext px-0\">\r\n <img src=\"./assets/tango/Icons/login-background.svg\" alt=\"\">\r\n </div> -->\r\n\r\n<!-- \r\n<button (click)=\"onClick()\">Log In</button> -->\r\n\r\n<div *ngIf=\"isloader\" class=\"container mt-20\">\r\n <div class=\"text-center mt-20\">\r\n <img src=\"./assets/tango/layout/Loader.gif\" alt=\"Tango logo\" />\r\n <div>Loading ...</div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"!isloader\" class=\"container\">\r\n <!-- style=\"padding: 96px 142px 96px 142px;\" -->\r\n <div class=\"row position-absolute\" >\r\n <div class=\"col-md-6 pe-10 d-flex justify-content-center align-items-center \">\r\n <img src=\"./assets/tango/Icons/LHS.svg\" alt=\"Image\" class=\"img-fluid w-100\">\r\n </div>\r\n <div class=\"col-md-6 px-10 d-flex justify-content-center align-items-center\"> \r\n <div class=\"card card-flush w-lg-600px ms-20 py-3\">\r\n <div class=\"login-form login-signin\">\r\n \r\n <div class=\"d-flex flex-column align-items-between title-padding\">\r\n <div class=\"text-start my-10 ms-10\">\r\n <h3 class=\"login-title\">Log in</h3>\r\n <p class=\"login-sub-title\">Welcome back! Please enter your details.</p>\r\n </div>\r\n <form #loginForm=\"ngForm\" class=\"w-100 title-padding\" novalidate=\"novalidate\">\r\n <div class=\"mb-5 \">\r\n <label for=\"Email\" class=\"form-label\">Email</label>\r\n <input type=\"email\" class=\"form-control\" id=\"Email\" name=\"Email\" autocomplete=\"off\" required [(ngModel)]=\"credentials.email\" autocomplete=\"off\" #emailInput>\r\n </div>\r\n <div class=\"mb-5 \">\r\n <label for=\"Password\" class=\"form-label\">Password</label>\r\n <div class=\"position-relative mb-3\">\r\n <input class=\"form-control\" id=\"Password\" [type]=\"show ? 'text' : 'password'\"\r\n placeholder=\"\" name=\"password\" autocomplete=\"off\" required #passwordInput\r\n [(ngModel)]=\"credentials.password\">\r\n <span (click)=\"showPassword()\"\r\n class=\"btn btn-sm btn-icon position-absolute translate-middle top-50 end-0 me-n2\"\r\n data-kt-password-meter-control=\"visibility\">\r\n <i *ngIf=\"show\" class=\"fa fa-eye\" aria-hidden=\"true\"></i>\r\n <i *ngIf=\"!show\" class=\"fa fa-eye-slash\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n <div *ngIf=\"hasError\" class=\"text-danger\" style=\"color: #ffffff !important;\">\r\n Email Id / Mobile Number or Password is incorrect\r\n </div>\r\n </div>\r\n<div class=\"text-center\">\r\n <h6 class=\"forgot cursor-pointer\" routerLink=\"/auth/forgot-password\">Forgot Password</h6>\r\n\r\n</div>\r\n <button class=\"btn btn-primary w-100 mt-3\" [disabled]=\"!loginForm.valid || (!credentials.email || !credentials.password)\" (click)=\"onLogin()\">Sign in</button>\r\n\r\n <!-- <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_17759)\">\r\n <path\r\n d=\"M24.2663 12.9767C24.2663 12.161 24.2001 11.3408 24.059 10.5383H12.7402V15.1593H19.222C18.953 16.6497 18.0888 17.9681 16.8233 18.8058V21.8042H20.6903C22.9611 19.7142 24.2663 16.6276 24.2663 12.9767Z\"\r\n fill=\"#4285F4\" />\r\n <path\r\n d=\"M12.7401 24.701C15.9766 24.701 18.7059 23.6384 20.6945 21.8041L16.8276 18.8057C15.7517 19.5377 14.3627 19.9522 12.7445 19.9522C9.61388 19.9522 6.95946 17.8401 6.00705 15.0005H2.0166V18.0914C4.05371 22.1436 8.2029 24.701 12.7401 24.701Z\"\r\n fill=\"#34A853\" />\r\n <path\r\n d=\"M6.00277 15.0004C5.50011 13.5101 5.50011 11.8962 6.00277 10.4059V7.31494H2.01674C0.314734 10.7057 0.314734 14.7006 2.01674 18.0913L6.00277 15.0004Z\"\r\n fill=\"#FBBC04\" />\r\n <path\r\n d=\"M12.7401 5.44986C14.4509 5.4234 16.1044 6.06716 17.3434 7.24886L20.7695 3.82281C18.6001 1.7857 15.7208 0.665729 12.7401 0.701004C8.2029 0.701004 4.05371 3.25842 2.0166 7.315L6.00264 10.4059C6.95064 7.56193 9.60947 5.44986 12.7401 5.44986Z\"\r\n fill=\"#EA4335\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_17759\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Google</span> \r\n <span class=\"tooltip\">Coming Soon</span>\r\n </button>\r\n <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" ><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_6141)\">\r\n <path d=\"M11.9057 12.104H0.5V0.700195H11.9057V12.104Z\" fill=\"#F1511B\" />\r\n <path d=\"M24.5004 12.104H13.0938V0.700195H24.4994V12.104H24.5004Z\" fill=\"#80CC28\" />\r\n <path d=\"M11.9057 24.7002H0.5V13.2964H11.9057V24.7002Z\" fill=\"#00ADEF\" />\r\n <path d=\"M24.5004 24.7002H13.0938V13.2964H24.4994V24.7002H24.5004Z\" fill=\"#FBBC09\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_6141\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Microsoft</span> <span class=\"tooltip\">Coming Soon</span></button> -->\r\n </form>\r\n\r\n <div class=\"mt-3 text-center ms-75px\"><span class=\"signup-default\"></span>Don\u2019t have an account?<span class=\"signup-primary ms-2 cursor-pointer\" routerLink=\"/auth/signup\">Sign up</span></div>\r\n </div>\r\n <div class=\" d-flex flex-column flex-md-row mb-3 flex-md-stack py-3 container-fluid\">\r\n <div class=\"text-gray-900 order-2 order-md-1 ms-10\">\r\n <span class=\"me-1 footer\">2024</span>\r\n <a target=\"_blank\" class=\"footer text-decoration-underline cursor-pointer\">&#64;TangoITSolutions India Pvt Ltd</a>\r\n </div>\r\n <ul class=\"menu menu-gray-600 menu-hover-primary fw-semibold order-1 me-7\">\r\n <li class=\"menu-item footer\"><a target=\"_blank\" href=\"https://tangoeye.ai/#aboutus\" class=\"menu-link px-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\">\r\n <path d=\"M11 3.7002C11 3.1502 10.55 2.7002 10 2.7002H2C1.45 2.7002 1 3.1502 1 3.7002M11 3.7002V9.7002C11 10.2502 10.55 10.7002 10 10.7002H2C1.45 10.7002 1 10.2502 1 9.7002V3.7002M11 3.7002L6 7.2002L1 3.7002\" stroke=\"#667085\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">support&#64;tangotech.co.in</span></a></li>\r\n \r\n </ul>\r\n </div>\r\n </div>\r\n \r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n<img src=\"./assets/tango/Icons/login-background1.svg\" alt=\"Image\" class=\"background-image\">\r\n</div>", styles: [".container{width:100%;height:100%;overflow:hidden}.background-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-1}.content{position:relative;z-index:1;width:45%;margin-left:auto;padding:20px;border-radius:16px;background:#fff;box-shadow:0 4px 10px #0000000d}.login-form .title-padding{padding:0 32px}.login-form .login-title{color:var(--Gray-900, #101828);font-size:36px;font-weight:600;line-height:44px;letter-spacing:-.72px}.login-form .login-sub-title{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.login-form .form-label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px}.login-form .img-src{padding:10px 5px 32px}.login-form .mx-25{margin-right:-10px!important;margin-left:-45px!important}.login-form .w-360px{width:360px!important}.login-form .forgot{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize;text-align:center}.login-form .signup-default{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.login-form .signup-primary{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:600!important;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.login-form .footer{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-weight:400!important;line-height:20px}@media (min-width: 1745px) and (max-width: 1910px){.mt-6{margin-top:7rem!important}}@media (min-width: 1920px) and (max-width: 2100px){.mt-6{margin-top:10rem!important}.login-form .mx-25{margin-right:0!important;margin-left:20px!important}}.position-absolute{position:absolute;top:50%;transform:translateY(-50%)}.not-allowed{cursor:not-allowed!important}.btn-outline.coming-soon{border-color:#ced4da;color:#6c757d;position:relative}.btn-outline.coming-soon:hover{border-color:#6c757d;color:#212529}.tooltip{visibility:hidden;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:100%;left:50%;transform:translate(-50%);width:max-content}.btn-outline.coming-soon:hover .tooltip{visibility:visible}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
144
146
  }
145
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TangoAuthLoginComponent, decorators: [{
146
148
  type: Component,
147
- args: [{ selector: "lib-tango-auth-login", template: "<!-- <div class=\"row justify-content-center logotext px-0\">\r\n <img src=\"./assets/tango/Icons/login-background.svg\" alt=\"\">\r\n </div> -->\r\n\r\n<!-- \r\n<button (click)=\"onClick()\">Log In</button> -->\r\n\r\n<div class=\"container\">\r\n <!-- style=\"padding: 96px 142px 96px 142px;\" -->\r\n <div class=\"row position-absolute\" >\r\n <div class=\"col-md-6 pe-10 d-flex justify-content-center align-items-center \">\r\n <img src=\"./assets/tango/Icons/LHS.svg\" alt=\"Image\" class=\"img-fluid\">\r\n </div>\r\n <div class=\"col-md-6 ps-10 d-flex justify-content-center align-items-center\"> \r\n <div class=\"card\">\r\n \r\n \r\n\r\n\r\n \r\n <div class=\"login-form login-signin\">\r\n \r\n <div class=\"d-flex flex-column align-items-between title-padding\">\r\n <div class=\"text-start my-10 ms-10\">\r\n <h3 class=\"login-title\">Log in</h3>\r\n <p class=\"login-sub-title\">Welcome back! Please enter your details.</p>\r\n </div>\r\n <form #loginForm=\"ngForm\" class=\"w-100 title-padding\" novalidate=\"novalidate\">\r\n <div class=\"mb-5 \">\r\n <label for=\"Email\" class=\"form-label\">Email</label>\r\n <input type=\"email\" class=\"form-control\" id=\"Email\" name=\"Email\" autocomplete=\"off\" required [(ngModel)]=\"credentials.email\" autocomplete=\"off\" #emailInput>\r\n </div>\r\n <div class=\"mb-5 \">\r\n <label for=\"Password\" class=\"form-label\">Password</label>\r\n <div class=\"position-relative mb-3\">\r\n <input class=\"form-control\" id=\"Password\" [type]=\"show ? 'text' : 'password'\"\r\n placeholder=\"\" name=\"password\" autocomplete=\"off\" required #passwordInput\r\n [(ngModel)]=\"credentials.password\">\r\n <span (click)=\"showPassword()\"\r\n class=\"btn btn-sm btn-icon position-absolute translate-middle top-50 end-0 me-n2\"\r\n data-kt-password-meter-control=\"visibility\">\r\n <i *ngIf=\"show\" class=\"fa fa-eye\" aria-hidden=\"true\"></i>\r\n <i *ngIf=\"!show\" class=\"fa fa-eye-slash\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n <div *ngIf=\"hasError\" class=\"text-danger\" style=\"color: #ffffff !important;\">\r\n Email Id / Mobile Number or Password is incorrect\r\n </div>\r\n </div>\r\n<div class=\"text-center\">\r\n <h6 class=\"forgot cursor-pointer\" routerLink=\"/auth/forgot-password\">Forgot Password</h6>\r\n\r\n</div>\r\n <button class=\"btn btn-primary w-100 mt-3\" [disabled]=\"!loginForm.valid || (!credentials.email || !credentials.password)\" (click)=\"onLogin()\">Sign in</button>\r\n\r\n <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_17759)\">\r\n <path\r\n d=\"M24.2663 12.9767C24.2663 12.161 24.2001 11.3408 24.059 10.5383H12.7402V15.1593H19.222C18.953 16.6497 18.0888 17.9681 16.8233 18.8058V21.8042H20.6903C22.9611 19.7142 24.2663 16.6276 24.2663 12.9767Z\"\r\n fill=\"#4285F4\" />\r\n <path\r\n d=\"M12.7401 24.701C15.9766 24.701 18.7059 23.6384 20.6945 21.8041L16.8276 18.8057C15.7517 19.5377 14.3627 19.9522 12.7445 19.9522C9.61388 19.9522 6.95946 17.8401 6.00705 15.0005H2.0166V18.0914C4.05371 22.1436 8.2029 24.701 12.7401 24.701Z\"\r\n fill=\"#34A853\" />\r\n <path\r\n d=\"M6.00277 15.0004C5.50011 13.5101 5.50011 11.8962 6.00277 10.4059V7.31494H2.01674C0.314734 10.7057 0.314734 14.7006 2.01674 18.0913L6.00277 15.0004Z\"\r\n fill=\"#FBBC04\" />\r\n <path\r\n d=\"M12.7401 5.44986C14.4509 5.4234 16.1044 6.06716 17.3434 7.24886L20.7695 3.82281C18.6001 1.7857 15.7208 0.665729 12.7401 0.701004C8.2029 0.701004 4.05371 3.25842 2.0166 7.315L6.00264 10.4059C6.95064 7.56193 9.60947 5.44986 12.7401 5.44986Z\"\r\n fill=\"#EA4335\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_17759\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Google</span> \r\n <span class=\"tooltip\">Coming Soon</span>\r\n </button>\r\n <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" ><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_6141)\">\r\n <path d=\"M11.9057 12.104H0.5V0.700195H11.9057V12.104Z\" fill=\"#F1511B\" />\r\n <path d=\"M24.5004 12.104H13.0938V0.700195H24.4994V12.104H24.5004Z\" fill=\"#80CC28\" />\r\n <path d=\"M11.9057 24.7002H0.5V13.2964H11.9057V24.7002Z\" fill=\"#00ADEF\" />\r\n <path d=\"M24.5004 24.7002H13.0938V13.2964H24.4994V24.7002H24.5004Z\" fill=\"#FBBC09\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_6141\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Microsoft</span> <span class=\"tooltip\">Coming Soon</span></button>\r\n </form>\r\n\r\n <div class=\"mt-3 text-center ms-75px\"><span class=\"signup-default\"></span>Don\u2019t have an account?<span class=\"signup-primary ms-2 cursor-pointer\" routerLink=\"/auth/signup\">Sign up</span></div>\r\n </div>\r\n <div class=\" d-flex flex-column flex-md-row mb-3 flex-md-stack pt-3 container-fluid\">\r\n <div class=\"text-gray-900 order-2 order-md-1 ms-10\">\r\n <span class=\"me-1 footer\">2024</span>\r\n <a target=\"_blank\" class=\"footer text-decoration-underline cursor-pointer\">&#64;TangoITSolutions India Pvt Ltd</a>\r\n </div>\r\n <ul class=\"menu menu-gray-600 menu-hover-primary fw-semibold order-1 me-7\">\r\n <li class=\"menu-item footer\"><a target=\"_blank\" href=\"https://tangoeye.ai/#aboutus\" class=\"menu-link px-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\">\r\n <path d=\"M11 3.7002C11 3.1502 10.55 2.7002 10 2.7002H2C1.45 2.7002 1 3.1502 1 3.7002M11 3.7002V9.7002C11 10.2502 10.55 10.7002 10 10.7002H2C1.45 10.7002 1 10.2502 1 9.7002V3.7002M11 3.7002L6 7.2002L1 3.7002\" stroke=\"#667085\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">support&#64;tangotech.co.in</span></a></li>\r\n \r\n </ul>\r\n </div>\r\n </div>\r\n \r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n<img src=\"./assets/tango/Icons/login-background1.svg\" alt=\"Image\" class=\"background-image\">\r\n</div>", styles: [".container{width:100%;height:100%;overflow:hidden}.background-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-1}.content{position:relative;z-index:1;width:45%;margin-left:auto;padding:20px;border-radius:16px;background:#fff;box-shadow:0 4px 10px #0000000d}.login-form .title-padding{padding:0 32px}.login-form .login-title{color:var(--Gray-900, #101828);font-size:36px;font-weight:600;line-height:44px;letter-spacing:-.72px}.login-form .login-sub-title{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.login-form .form-label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px}.login-form .img-src{padding:10px 5px 32px}.login-form .mx-25{margin-right:-10px!important;margin-left:-45px!important}.login-form .w-360px{width:360px!important}.login-form .forgot{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize;text-align:center}.login-form .signup-default{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.login-form .signup-primary{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:600!important;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.login-form .footer{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-weight:400!important;line-height:20px}@media (min-width: 1745px) and (max-width: 1910px){.mt-6{margin-top:7rem!important}}@media (min-width: 1920px) and (max-width: 2100px){.mt-6{margin-top:10rem!important}.login-form .mx-25{margin-right:0!important;margin-left:20px!important}}.position-absolute{position:absolute;top:50%;transform:translateY(-50%)}.not-allowed{cursor:not-allowed!important}.btn-outline.coming-soon{border-color:#ced4da;color:#6c757d;position:relative}.btn-outline.coming-soon:hover{border-color:#6c757d;color:#212529}.tooltip{visibility:hidden;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:100%;left:50%;transform:translate(-50%);width:max-content}.btn-outline.coming-soon:hover .tooltip{visibility:visible}\n"] }]
149
+ args: [{ selector: "lib-tango-auth-login", template: "<!-- <div class=\"row justify-content-center logotext px-0\">\r\n <img src=\"./assets/tango/Icons/login-background.svg\" alt=\"\">\r\n </div> -->\r\n\r\n<!-- \r\n<button (click)=\"onClick()\">Log In</button> -->\r\n\r\n<div *ngIf=\"isloader\" class=\"container mt-20\">\r\n <div class=\"text-center mt-20\">\r\n <img src=\"./assets/tango/layout/Loader.gif\" alt=\"Tango logo\" />\r\n <div>Loading ...</div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"!isloader\" class=\"container\">\r\n <!-- style=\"padding: 96px 142px 96px 142px;\" -->\r\n <div class=\"row position-absolute\" >\r\n <div class=\"col-md-6 pe-10 d-flex justify-content-center align-items-center \">\r\n <img src=\"./assets/tango/Icons/LHS.svg\" alt=\"Image\" class=\"img-fluid w-100\">\r\n </div>\r\n <div class=\"col-md-6 px-10 d-flex justify-content-center align-items-center\"> \r\n <div class=\"card card-flush w-lg-600px ms-20 py-3\">\r\n <div class=\"login-form login-signin\">\r\n \r\n <div class=\"d-flex flex-column align-items-between title-padding\">\r\n <div class=\"text-start my-10 ms-10\">\r\n <h3 class=\"login-title\">Log in</h3>\r\n <p class=\"login-sub-title\">Welcome back! Please enter your details.</p>\r\n </div>\r\n <form #loginForm=\"ngForm\" class=\"w-100 title-padding\" novalidate=\"novalidate\">\r\n <div class=\"mb-5 \">\r\n <label for=\"Email\" class=\"form-label\">Email</label>\r\n <input type=\"email\" class=\"form-control\" id=\"Email\" name=\"Email\" autocomplete=\"off\" required [(ngModel)]=\"credentials.email\" autocomplete=\"off\" #emailInput>\r\n </div>\r\n <div class=\"mb-5 \">\r\n <label for=\"Password\" class=\"form-label\">Password</label>\r\n <div class=\"position-relative mb-3\">\r\n <input class=\"form-control\" id=\"Password\" [type]=\"show ? 'text' : 'password'\"\r\n placeholder=\"\" name=\"password\" autocomplete=\"off\" required #passwordInput\r\n [(ngModel)]=\"credentials.password\">\r\n <span (click)=\"showPassword()\"\r\n class=\"btn btn-sm btn-icon position-absolute translate-middle top-50 end-0 me-n2\"\r\n data-kt-password-meter-control=\"visibility\">\r\n <i *ngIf=\"show\" class=\"fa fa-eye\" aria-hidden=\"true\"></i>\r\n <i *ngIf=\"!show\" class=\"fa fa-eye-slash\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n <div *ngIf=\"hasError\" class=\"text-danger\" style=\"color: #ffffff !important;\">\r\n Email Id / Mobile Number or Password is incorrect\r\n </div>\r\n </div>\r\n<div class=\"text-center\">\r\n <h6 class=\"forgot cursor-pointer\" routerLink=\"/auth/forgot-password\">Forgot Password</h6>\r\n\r\n</div>\r\n <button class=\"btn btn-primary w-100 mt-3\" [disabled]=\"!loginForm.valid || (!credentials.email || !credentials.password)\" (click)=\"onLogin()\">Sign in</button>\r\n\r\n <!-- <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_17759)\">\r\n <path\r\n d=\"M24.2663 12.9767C24.2663 12.161 24.2001 11.3408 24.059 10.5383H12.7402V15.1593H19.222C18.953 16.6497 18.0888 17.9681 16.8233 18.8058V21.8042H20.6903C22.9611 19.7142 24.2663 16.6276 24.2663 12.9767Z\"\r\n fill=\"#4285F4\" />\r\n <path\r\n d=\"M12.7401 24.701C15.9766 24.701 18.7059 23.6384 20.6945 21.8041L16.8276 18.8057C15.7517 19.5377 14.3627 19.9522 12.7445 19.9522C9.61388 19.9522 6.95946 17.8401 6.00705 15.0005H2.0166V18.0914C4.05371 22.1436 8.2029 24.701 12.7401 24.701Z\"\r\n fill=\"#34A853\" />\r\n <path\r\n d=\"M6.00277 15.0004C5.50011 13.5101 5.50011 11.8962 6.00277 10.4059V7.31494H2.01674C0.314734 10.7057 0.314734 14.7006 2.01674 18.0913L6.00277 15.0004Z\"\r\n fill=\"#FBBC04\" />\r\n <path\r\n d=\"M12.7401 5.44986C14.4509 5.4234 16.1044 6.06716 17.3434 7.24886L20.7695 3.82281C18.6001 1.7857 15.7208 0.665729 12.7401 0.701004C8.2029 0.701004 4.05371 3.25842 2.0166 7.315L6.00264 10.4059C6.95064 7.56193 9.60947 5.44986 12.7401 5.44986Z\"\r\n fill=\"#EA4335\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_17759\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Google</span> \r\n <span class=\"tooltip\">Coming Soon</span>\r\n </button>\r\n <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" ><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_6141)\">\r\n <path d=\"M11.9057 12.104H0.5V0.700195H11.9057V12.104Z\" fill=\"#F1511B\" />\r\n <path d=\"M24.5004 12.104H13.0938V0.700195H24.4994V12.104H24.5004Z\" fill=\"#80CC28\" />\r\n <path d=\"M11.9057 24.7002H0.5V13.2964H11.9057V24.7002Z\" fill=\"#00ADEF\" />\r\n <path d=\"M24.5004 24.7002H13.0938V13.2964H24.4994V24.7002H24.5004Z\" fill=\"#FBBC09\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_6141\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Microsoft</span> <span class=\"tooltip\">Coming Soon</span></button> -->\r\n </form>\r\n\r\n <div class=\"mt-3 text-center ms-75px\"><span class=\"signup-default\"></span>Don\u2019t have an account?<span class=\"signup-primary ms-2 cursor-pointer\" routerLink=\"/auth/signup\">Sign up</span></div>\r\n </div>\r\n <div class=\" d-flex flex-column flex-md-row mb-3 flex-md-stack py-3 container-fluid\">\r\n <div class=\"text-gray-900 order-2 order-md-1 ms-10\">\r\n <span class=\"me-1 footer\">2024</span>\r\n <a target=\"_blank\" class=\"footer text-decoration-underline cursor-pointer\">&#64;TangoITSolutions India Pvt Ltd</a>\r\n </div>\r\n <ul class=\"menu menu-gray-600 menu-hover-primary fw-semibold order-1 me-7\">\r\n <li class=\"menu-item footer\"><a target=\"_blank\" href=\"https://tangoeye.ai/#aboutus\" class=\"menu-link px-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\">\r\n <path d=\"M11 3.7002C11 3.1502 10.55 2.7002 10 2.7002H2C1.45 2.7002 1 3.1502 1 3.7002M11 3.7002V9.7002C11 10.2502 10.55 10.7002 10 10.7002H2C1.45 10.7002 1 10.2502 1 9.7002V3.7002M11 3.7002L6 7.2002L1 3.7002\" stroke=\"#667085\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">support&#64;tangotech.co.in</span></a></li>\r\n \r\n </ul>\r\n </div>\r\n </div>\r\n \r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n<img src=\"./assets/tango/Icons/login-background1.svg\" alt=\"Image\" class=\"background-image\">\r\n</div>", styles: [".container{width:100%;height:100%;overflow:hidden}.background-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-1}.content{position:relative;z-index:1;width:45%;margin-left:auto;padding:20px;border-radius:16px;background:#fff;box-shadow:0 4px 10px #0000000d}.login-form .title-padding{padding:0 32px}.login-form .login-title{color:var(--Gray-900, #101828);font-size:36px;font-weight:600;line-height:44px;letter-spacing:-.72px}.login-form .login-sub-title{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.login-form .form-label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px}.login-form .img-src{padding:10px 5px 32px}.login-form .mx-25{margin-right:-10px!important;margin-left:-45px!important}.login-form .w-360px{width:360px!important}.login-form .forgot{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize;text-align:center}.login-form .signup-default{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.login-form .signup-primary{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:600!important;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.login-form .footer{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-weight:400!important;line-height:20px}@media (min-width: 1745px) and (max-width: 1910px){.mt-6{margin-top:7rem!important}}@media (min-width: 1920px) and (max-width: 2100px){.mt-6{margin-top:10rem!important}.login-form .mx-25{margin-right:0!important;margin-left:20px!important}}.position-absolute{position:absolute;top:50%;transform:translateY(-50%)}.not-allowed{cursor:not-allowed!important}.btn-outline.coming-soon{border-color:#ced4da;color:#6c757d;position:relative}.btn-outline.coming-soon:hover{border-color:#6c757d;color:#212529}.tooltip{visibility:hidden;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:100%;left:50%;transform:translate(-50%);width:max-content}.btn-outline.coming-soon:hover .tooltip{visibility:visible}\n"] }]
148
150
  }], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.FormBuilder }, { type: i3.AuthService }, { type: i4.GlobalStateService }, { type: i0.ChangeDetectorRef }, { type: i5.ToastService }], propDecorators: { emailInputRef: [{
149
151
  type: ViewChild,
150
152
  args: ['emailInput']
@@ -152,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
152
154
  type: ViewChild,
153
155
  args: ['passwordInput']
154
156
  }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tYXV0aC1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hdXRoL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hdXRoLWxvZ2luL3RhbmdvLWF1dGgtbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYXV0aC1sb2dpbi90YW5nby1hdXRoLWxvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFpQyxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQVMsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQVdqRCxNQUFNLE9BQU8sdUJBQXVCO0lBb0J4QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQStCO0lBQy9CO0lBeEJWLFdBQVcsR0FBUTtRQUNqQixLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZCLFFBQVEsRUFBRSxNQUFNO0tBQ2pCLENBQUM7SUFDRixRQUFRLENBQVU7SUFDbEIsU0FBUyxDQUFTO0lBQ2xCLElBQUksR0FBWSxLQUFLLENBQUM7SUFDdEIsU0FBUyxDQUFNO0lBQ2YsV0FBVyxHQUFRO1FBQ2pCLEtBQUssRUFBRSxJQUFJO1FBQ1gsUUFBUSxFQUFFLElBQUk7S0FDZixDQUFDO0lBQ0YsU0FBUyxDQUFVO0lBQ00sYUFBYSxDQUFjO0lBQ3hCLGdCQUFnQixDQUFjO0lBQ2xELHFCQUFxQixDQUFNO0lBQ2xCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTFDLFlBQ1UsTUFBYyxFQUNkLEtBQXFCLEVBQ3JCLEVBQWUsRUFDZixPQUFvQixFQUNwQixF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LFNBQVM7dUJBQUMsWUFBWTtnQkFDSyxnQkFBZ0I7c0JBQTNDLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZpcnN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnXHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwibGliLXRhbmdvLWF1dGgtbG9naW5cIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3RhbmdvLWF1dGgtbG9naW4uY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL3RhbmdvLWF1dGgtbG9naW4uY29tcG9uZW50LnNjc3NcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhbmdvQXV0aExvZ2luQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGRlZmF1bHRBdXRoOiBhbnkgPSB7XHJcbiAgICBlbWFpbDogXCJhZG1pbkBkZW1vLmNvbVwiLFxyXG4gICAgcGFzc3dvcmQ6IFwiZGVtb1wiLFxyXG4gIH07XHJcbiAgaGFzRXJyb3I6IGJvb2xlYW47XHJcbiAgcmV0dXJuVXJsOiBzdHJpbmc7XHJcbiAgc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvZ2luRm9ybTogYW55O1xyXG4gIGNyZWRlbnRpYWxzOiBhbnkgPSB7XHJcbiAgICBlbWFpbDogbnVsbCxcclxuICAgIHBhc3N3b3JkOiBudWxsLFxyXG4gIH07XHJcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xyXG4gIEBWaWV3Q2hpbGQoJ2VtYWlsSW5wdXQnKSBlbWFpbElucHV0UmVmITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdwYXNzd29yZElucHV0JykgcGFzc3dvcmRJbnB1dFJlZiE6IEVsZW1lbnRSZWY7XHJcbiAgcHJpdmF0ZSBhdXRobG9jYWxTdG9yYWdlVG9rZW46IGFueTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgc2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UscHJpdmF0ZSBjZCA6Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGVudikgPT4ge1xyXG4gICAgICBpZiAoZW52KSB7XHJcbiAgICAgICAgdGhpcy5hdXRobG9jYWxTdG9yYWdlVG9rZW4gPSBgJHtlbnYuYXBwVmVyc2lvbn0tJHtlbnYuVVNFUkRBVEFfS0VZfWA7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuc2VydmljZS5jdXJyZW50VXNlclZhbHVlKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9cIl0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdEZvcm0oKTtcclxuICAgIC8vIHRoaXMudXNlclByb2ZpbGUoKTtcclxuICAgIC8vIGdldCByZXR1cm4gdXJsIGZyb20gcm91dGUgcGFyYW1ldGVycyBvciBkZWZhdWx0IHRvICcvJ1xyXG4gICAgdGhpcy5yZXR1cm5VcmwgPVxyXG4gICAgICB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zW1wicmV0dXJuVXJsXCIudG9TdHJpbmcoKV0gfHwgXCIvXCI7XHJcbiAgICAgIGlmICh0aGlzLmVtYWlsSW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQudmFsdWUgfHwgdGhpcy5wYXNzd29yZElucHV0UmVmPy5uYXRpdmVFbGVtZW50LnZhbHVlKSB7XHJcbiAgICAgICAgLy8gQ2xlYXIgdGhlIGZpZWxkcyBpZiBhdXRvZmlsbGVkXHJcbiAgICAgICAgdGhpcy5lbWFpbElucHV0UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgICB0aGlzLnBhc3N3b3JkSW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIGluaXRGb3JtKCkge1xyXG4gICAgdGhpcy5sb2dpbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgZW1haWw6IFtcclxuICAgICAgICB0aGlzLmRlZmF1bHRBdXRoLmVtYWlsLFxyXG4gICAgICAgIFZhbGlkYXRvcnMuY29tcG9zZShbXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5lbWFpbCxcclxuICAgICAgICAgIFZhbGlkYXRvcnMubWluTGVuZ3RoKDMpLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMzIwKSxcclxuICAgICAgICBdKSxcclxuICAgICAgXSxcclxuICAgICAgcGFzc3dvcmQ6IFtcclxuICAgICAgICB0aGlzLmRlZmF1bHRBdXRoLnBhc3N3b3JkLFxyXG4gICAgICAgIFZhbGlkYXRvcnMuY29tcG9zZShbXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMyksXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgxMDApLFxyXG4gICAgICAgIF0pLFxyXG4gICAgICBdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG9uTG9naW4oKSB7XHJcbiAgICB0aGlzLmhhc0Vycm9yID0gZmFsc2U7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnNob3cgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VydmljZS5sb2dpbih0aGlzLmNyZWRlbnRpYWxzKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgaWYocmVzICYmIHJlcz8uY29kZSA9PT0gMjAwKXtcclxuICAgICAgICBsZXQgbG9naW5Ub2tlbjogYW55ID1cclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuYXV0aGxvY2FsU3RvcmFnZVRva2VuKTtcclxuICAgICAgICBpZiAobG9naW5Ub2tlbikge1xyXG4gICAgICAgICAgbG9naW5Ub2tlbiA9IEpTT04ucGFyc2UobG9naW5Ub2tlbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgICAgIHRoaXMuYXV0aGxvY2FsU3RvcmFnZVRva2VuLFxyXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeShyZXM/LmRhdGE/LnJlc3VsdClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLnVzZXJQcm9maWxlKCk7XHJcbiAgICAgICAgfSAgZWxzZSBpZiAoIXJlcyB8fCByZXM/LmNvZGUgPT0gNDAxKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoJ0VudGVyIFZhbGlkIENyZWRlbnRpYWxzJyk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KCdFbnRlciBWYWxpZCBDcmVkZW50aWFscycpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoZXJyPy5lcnJvcj8uZXJyb3IgPyBlcnI/LmVycm9yPy5lcnJvciA6J1RoZSB1c2VyIGhhcyBiZWVuIHVuYXV0aG9yaXplZCB0byBsb2dpbicpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1c2VyUHJvZmlsZSgpIHtcclxuICAgIHRoaXMuc2VydmljZS51c2VyUHJvZmlsZURldCgpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyYmIHJlcy5jb2RlID09MjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmdzLnVzZXJBY2Nlc3MubmV4dChyZXMuZGF0YT8ucGVybWlzc2lvbilcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UnXSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICghcmVzIHx8IHJlcy5jb2RlID09IDQwMSkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdCgnRW50ZXIgVmFsaWQgQ3JlZGVudGlhbHMnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdCgnRW50ZXIgVmFsaWQgQ3JlZGVudGlhbHMnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5oYXNFcnJvciA9IHRydWU7XHJcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdChlcnIuZXJyb3IuZXJyb3IpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzaG93UGFzc3dvcmQoKSB7XHJcbiAgICB0aGlzLnNob3cgPSAhdGhpcy5zaG93O1xyXG4gIH1cclxufVxyXG4iLCI8IS0tIDxkaXYgY2xhc3M9XCJyb3cganVzdGlmeS1jb250ZW50LWNlbnRlciBsb2dvdGV4dCBweC0wXCI+XHJcbiAgICA8aW1nICBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9sb2dpbi1iYWNrZ3JvdW5kLnN2Z1wiIGFsdD1cIlwiPlxyXG4gIDwvZGl2PiAtLT5cclxuXHJcbjwhLS0gXHJcbjxidXR0b24gKGNsaWNrKT1cIm9uQ2xpY2soKVwiPkxvZyBJbjwvYnV0dG9uPiAtLT5cclxuXHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICA8IS0tIHN0eWxlPVwicGFkZGluZzogOTZweCAxNDJweCA5NnB4IDE0MnB4O1wiIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJyb3cgcG9zaXRpb24tYWJzb2x1dGVcIiA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBwZS0xMCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgXCI+XHJcbiAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9MSFMuc3ZnXCIgYWx0PVwiSW1hZ2VcIiBjbGFzcz1cImltZy1mbHVpZFwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IHBzLTEwIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPiBcclxuICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICBcclxuICAgICBcclxuXHJcblxyXG4gICAgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi1mb3JtIGxvZ2luLXNpZ25pblwiPlxyXG4gICAgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1iZXR3ZWVuIHRpdGxlLXBhZGRpbmdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG15LTEwIG1zLTEwXCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cImxvZ2luLXRpdGxlXCI+TG9nIGluPC9oMz5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJsb2dpbi1zdWItdGl0bGVcIj5XZWxjb21lIGJhY2shIFBsZWFzZSBlbnRlciB5b3VyIGRldGFpbHMuPC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8Zm9ybSAjbG9naW5Gb3JtPVwibmdGb3JtXCIgY2xhc3M9XCJ3LTEwMCB0aXRsZS1wYWRkaW5nXCIgbm92YWxpZGF0ZT1cIm5vdmFsaWRhdGVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTUgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIkVtYWlsXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+RW1haWw8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiRW1haWxcIiBuYW1lPVwiRW1haWxcIiAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQgWyhuZ01vZGVsKV09XCJjcmVkZW50aWFscy5lbWFpbFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiICNlbWFpbElucHV0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTUgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+UGFzc3dvcmQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0ICBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiUGFzc3dvcmRcIiBbdHlwZV09XCJzaG93ID8gJ3RleHQnIDogJ3Bhc3N3b3JkJ1wiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIiBuYW1lPVwicGFzc3dvcmRcIiBhdXRvY29tcGxldGU9XCJvZmZcIiByZXF1aXJlZCAjcGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3JlZGVudGlhbHMucGFzc3dvcmRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwic2hvd1Bhc3N3b3JkKClcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBwb3NpdGlvbi1hYnNvbHV0ZSB0cmFuc2xhdGUtbWlkZGxlIHRvcC01MCBlbmQtMCBtZS1uMlwiXHJcbiAgICAgICAgICAgICAgZGF0YS1rdC1wYXNzd29yZC1tZXRlci1jb250cm9sPVwidmlzaWJpbGl0eVwiPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwic2hvd1wiIGNsYXNzPVwiZmEgZmEtZXllXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXNob3dcIiBjbGFzcz1cImZhIGZhLWV5ZS1zbGFzaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImhhc0Vycm9yXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiIHN0eWxlPVwiY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcIj5cclxuICAgICAgICAgICAgRW1haWwgSWQgLyBNb2JpbGUgTnVtYmVyIG9yIFBhc3N3b3JkIGlzIGluY29ycmVjdFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgPGg2IGNsYXNzPVwiZm9yZ290IGN1cnNvci1wb2ludGVyXCIgcm91dGVyTGluaz1cIi9hdXRoL2ZvcmdvdC1wYXNzd29yZFwiPkZvcmdvdCBQYXNzd29yZDwvaDY+XHJcblxyXG48L2Rpdj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtdC0zXCIgW2Rpc2FibGVkXT1cIiFsb2dpbkZvcm0udmFsaWQgfHwgKCFjcmVkZW50aWFscy5lbWFpbCB8fCAhY3JlZGVudGlhbHMucGFzc3dvcmQpXCIgKGNsaWNrKT1cIm9uTG9naW4oKVwiPlNpZ24gaW48L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0xMDAgbXQtMyBub3QtYWxsb3dlZCBjb21pbmctc29vblwiID5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIyNVwiIGhlaWdodD1cIjI1XCIgdmlld0JveD1cIjAgMCAyNSAyNVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzM3MjdfMTc3NTkpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0yNC4yNjYzIDEyLjk3NjdDMjQuMjY2MyAxMi4xNjEgMjQuMjAwMSAxMS4zNDA4IDI0LjA1OSAxMC41MzgzSDEyLjc0MDJWMTUuMTU5M0gxOS4yMjJDMTguOTUzIDE2LjY0OTcgMTguMDg4OCAxNy45NjgxIDE2LjgyMzMgMTguODA1OFYyMS44MDQySDIwLjY5MDNDMjIuOTYxMSAxOS43MTQyIDI0LjI2NjMgMTYuNjI3NiAyNC4yNjYzIDEyLjk3NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzQyODVGNFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xMi43NDAxIDI0LjcwMUMxNS45NzY2IDI0LjcwMSAxOC43MDU5IDIzLjYzODQgMjAuNjk0NSAyMS44MDQxTDE2LjgyNzYgMTguODA1N0MxNS43NTE3IDE5LjUzNzcgMTQuMzYyNyAxOS45NTIyIDEyLjc0NDUgMTkuOTUyMkM5LjYxMzg4IDE5Ljk1MjIgNi45NTk0NiAxNy44NDAxIDYuMDA3MDUgMTUuMDAwNUgyLjAxNjZWMTguMDkxNEM0LjA1MzcxIDIyLjE0MzYgOC4yMDI5IDI0LjcwMSAxMi43NDAxIDI0LjcwMVpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjMzRBODUzXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDAyNzcgMTUuMDAwNEM1LjUwMDExIDEzLjUxMDEgNS41MDAxMSAxMS44OTYyIDYuMDAyNzcgMTAuNDA1OVY3LjMxNDk0SDIuMDE2NzRDMC4zMTQ3MzQgMTAuNzA1NyAwLjMxNDczNCAxNC43MDA2IDIuMDE2NzQgMTguMDkxM0w2LjAwMjc3IDE1LjAwMDRaXCJcclxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiI0ZCQkMwNFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgZD1cIk0xMi43NDAxIDUuNDQ5ODZDMTQuNDUwOSA1LjQyMzQgMTYuMTA0NCA2LjA2NzE2IDE3LjM0MzQgNy4yNDg4NkwyMC43Njk1IDMuODIyODFDMTguNjAwMSAxLjc4NTcgMTUuNzIwOCAwLjY2NTcyOSAxMi43NDAxIDAuNzAxMDA0QzguMjAyOSAwLjcwMTAwNCA0LjA1MzcxIDMuMjU4NDIgMi4wMTY2IDcuMzE1TDYuMDAyNjQgMTAuNDA1OUM2Ljk1MDY0IDcuNTYxOTMgOS42MDk0NyA1LjQ0OTg2IDEyLjc0MDEgNS40NDk4NlpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRUE0MzM1XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8zNzI3XzE3NzU5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuNSAwLjcwMDE5NSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXgtMlwiPlNpZ24gaW4gd2l0aCBHb29nbGU8L3NwYW4+IFxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9vbHRpcFwiPkNvbWluZyBTb29uPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTEwMCBtdC0zIG5vdC1hbGxvd2VkIGNvbWluZy1zb29uXCIgPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjI1XCIgaGVpZ2h0PVwiMjVcIiB2aWV3Qm94PVwiMCAwIDI1IDI1XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMzcyN182MTQxKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExLjkwNTcgMTIuMTA0SDAuNVYwLjcwMDE5NUgxMS45MDU3VjEyLjEwNFpcIiBmaWxsPVwiI0YxNTExQlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjQuNTAwNCAxMi4xMDRIMTMuMDkzOFYwLjcwMDE5NUgyNC40OTk0VjEyLjEwNEgyNC41MDA0WlwiIGZpbGw9XCIjODBDQzI4XCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMS45MDU3IDI0LjcwMDJIMC41VjEzLjI5NjRIMTEuOTA1N1YyNC43MDAyWlwiIGZpbGw9XCIjMDBBREVGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNC41MDA0IDI0LjcwMDJIMTMuMDkzOFYxMy4yOTY0SDI0LjQ5OTRWMjQuNzAwMkgyNC41MDA0WlwiIGZpbGw9XCIjRkJCQzA5XCIgLz5cclxuICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8zNzI3XzYxNDFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC41IDAuNzAwMTk1KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJteC0yXCI+U2lnbiBpbiB3aXRoIE1pY3Jvc29mdDwvc3Bhbj4gIDxzcGFuIGNsYXNzPVwidG9vbHRpcFwiPkNvbWluZyBTb29uPC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9mb3JtPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIHRleHQtY2VudGVyIG1zLTc1cHhcIj48c3BhbiBjbGFzcz1cInNpZ251cC1kZWZhdWx0XCI+PC9zcGFuPkRvbuKAmXQgaGF2ZSBhbiBhY2NvdW50PzxzcGFuIGNsYXNzPVwic2lnbnVwLXByaW1hcnkgbXMtMiBjdXJzb3ItcG9pbnRlclwiIHJvdXRlckxpbms9XCIvYXV0aC9zaWdudXBcIj5TaWduIHVwPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgIGNsYXNzPVwiIGQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LW1kLXJvdyBtYi0zICBmbGV4LW1kLXN0YWNrIHB0LTMgY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCBvcmRlci0yIG9yZGVyLW1kLTEgbXMtMTBcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTEgZm9vdGVyXCI+MjAyNDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cImZvb3RlciB0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCI+JiM2NDtUYW5nb0lUU29sdXRpb25zIEluZGlhIFB2dCBMdGQ8L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDx1bCBjbGFzcz1cIm1lbnUgbWVudS1ncmF5LTYwMCBtZW51LWhvdmVyLXByaW1hcnkgZnctc2VtaWJvbGQgb3JkZXItMSBtZS03XCI+XHJcbiAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibWVudS1pdGVtIGZvb3RlclwiPjxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL3RhbmdvZXllLmFpLyNhYm91dHVzXCIgY2xhc3M9XCJtZW51LWxpbmsgcHgtNVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxM1wiIHZpZXdCb3g9XCIwIDAgMTIgMTNcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMSAzLjcwMDJDMTEgMy4xNTAyIDEwLjU1IDIuNzAwMiAxMCAyLjcwMDJIMkMxLjQ1IDIuNzAwMiAxIDMuMTUwMiAxIDMuNzAwMk0xMSAzLjcwMDJWOS43MDAyQzExIDEwLjI1MDIgMTAuNTUgMTAuNzAwMiAxMCAxMC43MDAySDJDMS40NSAxMC43MDAyIDEgMTAuMjUwMiAxIDkuNzAwMlYzLjcwMDJNMTEgMy43MDAyTDYgNy4yMDAyTDEgMy43MDAyXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXMtMlwiPnN1cHBvcnQmIzY0O3RhbmdvdGVjaC5jby5pbjwvc3Bhbj48L2E+PC9saT5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICBcclxuXHJcblxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9sb2dpbi1iYWNrZ3JvdW5kMS5zdmdcIiBhbHQ9XCJJbWFnZVwiIGNsYXNzPVwiYmFja2dyb3VuZC1pbWFnZVwiPlxyXG48L2Rpdj4iXX0=
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tYXV0aC1sb2dpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hdXRoL3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hdXRoLWxvZ2luL3RhbmdvLWF1dGgtbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXV0aC9zcmMvbGliL2NvbXBvbmVudHMvdGFuZ28tYXV0aC1sb2dpbi90YW5nby1hdXRoLWxvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFpQyxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQVMsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQVdqRCxNQUFNLE9BQU8sdUJBQXVCO0lBcUJ4QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQStCO0lBQy9CO0lBekJWLFdBQVcsR0FBUTtRQUNqQixLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZCLFFBQVEsRUFBRSxNQUFNO0tBQ2pCLENBQUM7SUFDRixRQUFRLENBQVU7SUFDbEIsU0FBUyxDQUFTO0lBQ2xCLElBQUksR0FBWSxLQUFLLENBQUM7SUFDdEIsU0FBUyxDQUFNO0lBQ2YsV0FBVyxHQUFRO1FBQ2pCLEtBQUssRUFBRSxJQUFJO1FBQ1gsUUFBUSxFQUFFLElBQUk7S0FDZixDQUFDO0lBQ0YsU0FBUyxDQUFVO0lBQ25CLFFBQVEsR0FBVyxJQUFJLENBQUM7SUFDQyxhQUFhLENBQWM7SUFDeEIsZ0JBQWdCLENBQWM7SUFDbEQscUJBQXFCLENBQU07SUFDbEIsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFMUMsWUFDVSxNQUFjLEVBQ2QsS0FBcUIsRUFD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eUhNOzsyRkQzR08sdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHNCQUFzQjt3UEFtQlAsYUFBYTtzQkFBckMsU0FBUzt1QkFBQyxZQUFZO2dCQUNLLGdCQUFnQjtzQkFBM0MsU0FBUzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZmlyc3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCdcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItdGFuZ28tYXV0aC1sb2dpblwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGFuZ28tYXV0aC1sb2dpbi5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsOiBcIi4vdGFuZ28tYXV0aC1sb2dpbi5jb21wb25lbnQuc2Nzc1wiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFuZ29BdXRoTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZGVmYXVsdEF1dGg6IGFueSA9IHtcclxuICAgIGVtYWlsOiBcImFkbWluQGRlbW8uY29tXCIsXHJcbiAgICBwYXNzd29yZDogXCJkZW1vXCIsXHJcbiAgfTtcclxuICBoYXNFcnJvcjogYm9vbGVhbjtcclxuICByZXR1cm5Vcmw6IHN0cmluZztcclxuICBzaG93OiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9naW5Gb3JtOiBhbnk7XHJcbiAgY3JlZGVudGlhbHM6IGFueSA9IHtcclxuICAgIGVtYWlsOiBudWxsLFxyXG4gICAgcGFzc3dvcmQ6IG51bGwsXHJcbiAgfTtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW47XHJcbiAgaXNsb2FkZXIgOmJvb2xlYW4gPXRydWU7XHJcbiAgQFZpZXdDaGlsZCgnZW1haWxJbnB1dCcpIGVtYWlsSW5wdXRSZWYhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ3Bhc3N3b3JkSW5wdXQnKSBwYXNzd29yZElucHV0UmVmITogRWxlbWVudFJlZjtcclxuICBwcml2YXRlIGF1dGhsb2NhbFN0b3JhZ2VUb2tlbjogYW55O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSxwcml2YXRlIGNkIDpDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZW52KSA9PiB7XHJcbiAgICAgIGlmIChlbnYpIHtcclxuICAgICAgICB0aGlzLmF1dGhsb2NhbFN0b3JhZ2VUb2tlbiA9IGAke2Vudi5hcHBWZXJzaW9ufS0ke2Vudi5VU0VSREFUQV9LRVl9YDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmN1cnJlbnRVc2VyVmFsdWUpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL1wiXSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0Rm9ybSgpO1xyXG4gICAgLy8gdGhpcy51c2VyUHJvZmlsZSgpO1xyXG4gICAgLy8gZ2V0IHJldHVybiB1cmwgZnJvbSByb3V0ZSBwYXJhbWV0ZXJzIG9yIGRlZmF1bHQgdG8gJy8nXHJcbiAgICB0aGlzLnJldHVyblVybCA9XHJcbiAgICAgIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbXCJyZXR1cm5VcmxcIi50b1N0cmluZygpXSB8fCBcIi9cIjtcclxuICAgICAgaWYgKHRoaXMuZW1haWxJbnB1dFJlZj8ubmF0aXZlRWxlbWVudC52YWx1ZSB8fCB0aGlzLnBhc3N3b3JkSW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQudmFsdWUpIHtcclxuICAgICAgICAvLyBDbGVhciB0aGUgZmllbGRzIGlmIGF1dG9maWxsZWRcclxuICAgICAgICB0aGlzLmVtYWlsSW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICAgIHRoaXMucGFzc3dvcmRJbnB1dFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgIH1cclxuICB9XHJcbiAgXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBpbml0Rm9ybSgpIHtcclxuICAgIHRoaXMuaXNsb2FkZXIgPSBmYWxzZTtcclxuICAgIHRoaXMubG9naW5Gb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGVtYWlsOiBbXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0QXV0aC5lbWFpbCxcclxuICAgICAgICBWYWxpZGF0b3JzLmNvbXBvc2UoW1xyXG4gICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgICAgIFZhbGlkYXRvcnMuZW1haWwsXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKSxcclxuICAgICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDMyMCksXHJcbiAgICAgICAgXSksXHJcbiAgICAgIF0sXHJcbiAgICAgIHBhc3N3b3JkOiBbXHJcbiAgICAgICAgdGhpcy5kZWZhdWx0QXV0aC5wYXNzd29yZCxcclxuICAgICAgICBWYWxpZGF0b3JzLmNvbXBvc2UoW1xyXG4gICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgICAgIFZhbGlkYXRvcnMubWluTGVuZ3RoKDMpLFxyXG4gICAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKSxcclxuICAgICAgICBdKSxcclxuICAgICAgXSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBvbkxvZ2luKCkge1xyXG4gICAgdGhpcy5oYXNFcnJvciA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93ID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlcnZpY2UubG9naW4odGhpcy5jcmVkZW50aWFscykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcclxuICAgIGlmKHJlcyAmJiByZXM/LmNvZGUgPT09IDIwMCl7XHJcbiAgICAgICAgbGV0IGxvZ2luVG9rZW46IGFueSA9XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmF1dGhsb2NhbFN0b3JhZ2VUb2tlbik7XHJcbiAgICAgICAgaWYgKGxvZ2luVG9rZW4pIHtcclxuICAgICAgICAgIGxvZ2luVG9rZW4gPSBKU09OLnBhcnNlKGxvZ2luVG9rZW4pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICB0aGlzLmF1dGhsb2NhbFN0b3JhZ2VUb2tlbixcclxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkocmVzPy5kYXRhPy5yZXN1bHQpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy51c2VyUHJvZmlsZSgpO1xyXG4gICAgICAgIH0gIGVsc2UgaWYgKCFyZXMgfHwgcmVzPy5jb2RlID09IDQwMSkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KCdFbnRlciBWYWxpZCBDcmVkZW50aWFscycpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZ2V0RXJyb3JUb2FzdCgnRW50ZXIgVmFsaWQgQ3JlZGVudGlhbHMnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLmhhc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5nZXRFcnJvclRvYXN0KGVycj8uZXJyb3I/LmVycm9yID8gZXJyPy5lcnJvcj8uZXJyb3IgOidUaGUgdXNlciBoYXMgYmVlbiB1bmF1dGhvcml6ZWQgdG8gbG9naW4nKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXNlclByb2ZpbGUoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UudXNlclByb2ZpbGVEZXQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChyZXMmJiByZXMuY29kZSA9PTIwMCkge1xyXG4gICAgICAgICAgdGhpcy5ncy51c2VyQWNjZXNzLm5leHQocmVzLmRhdGE/LnBlcm1pc3Npb24pXHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvbWFuYWdlJ10pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoIXJlcyB8fCByZXMuY29kZSA9PSA0MDEpIHtcclxuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoJ0VudGVyIFZhbGlkIENyZWRlbnRpYWxzJyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoJ0VudGVyIFZhbGlkIENyZWRlbnRpYWxzJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmdldEVycm9yVG9hc3QoZXJyLmVycm9yLmVycm9yKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2hvd1Bhc3N3b3JkKCkge1xyXG4gICAgdGhpcy5zaG93ID0gIXRoaXMuc2hvdztcclxuICB9XHJcbn1cclxuIiwiPCEtLSA8ZGl2IGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1jZW50ZXIgbG9nb3RleHQgcHgtMFwiPlxyXG4gICAgPGltZyAgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvbG9naW4tYmFja2dyb3VuZC5zdmdcIiBhbHQ9XCJcIj5cclxuICA8L2Rpdj4gLS0+XHJcblxyXG48IS0tIFxyXG48YnV0dG9uIChjbGljayk9XCJvbkNsaWNrKClcIj5Mb2cgSW48L2J1dHRvbj4gLS0+XHJcblxyXG48ZGl2ICpuZ0lmPVwiaXNsb2FkZXJcIiBjbGFzcz1cImNvbnRhaW5lciBtdC0yMFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yMFwiPlxyXG4gICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9sYXlvdXQvTG9hZGVyLmdpZlwiIGFsdD1cIlRhbmdvIGxvZ29cIiAvPlxyXG4gICAgPGRpdj5Mb2FkaW5nIC4uLjwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCIhaXNsb2FkZXJcIiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gIDwhLS0gc3R5bGU9XCJwYWRkaW5nOiA5NnB4IDE0MnB4IDk2cHggMTQycHg7XCIgLS0+XHJcbiAgPGRpdiBjbGFzcz1cInJvdyBwb3NpdGlvbi1hYnNvbHV0ZVwiID5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IHBlLTEwIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBcIj5cclxuICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL0xIUy5zdmdcIiBhbHQ9XCJJbWFnZVwiIGNsYXNzPVwiaW1nLWZsdWlkIHctMTAwXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgcHgtMTAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+IFxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZmx1c2ggdy1sZy02MDBweCBtcy0yMCBweS0zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsb2dpbi1mb3JtIGxvZ2luLXNpZ25pblwiPlxyXG4gICAgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1iZXR3ZWVuIHRpdGxlLXBhZGRpbmdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG15LTEwIG1zLTEwXCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cImxvZ2luLXRpdGxlXCI+TG9nIGluPC9oMz5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJsb2dpbi1zdWItdGl0bGVcIj5XZWxjb21lIGJhY2shIFBsZWFzZSBlbnRlciB5b3VyIGRldGFpbHMuPC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8Zm9ybSAjbG9naW5Gb3JtPVwibmdGb3JtXCIgY2xhc3M9XCJ3LTEwMCB0aXRsZS1wYWRkaW5nXCIgbm92YWxpZGF0ZT1cIm5vdmFsaWRhdGVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTUgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIkVtYWlsXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+RW1haWw8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiRW1haWxcIiBuYW1lPVwiRW1haWxcIiAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgcmVxdWlyZWQgWyhuZ01vZGVsKV09XCJjcmVkZW50aWFscy5lbWFpbFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiICNlbWFpbElucHV0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTUgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+UGFzc3dvcmQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0ICBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiUGFzc3dvcmRcIiBbdHlwZV09XCJzaG93ID8gJ3RleHQnIDogJ3Bhc3N3b3JkJ1wiXHJcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJcIiBuYW1lPVwicGFzc3dvcmRcIiBhdXRvY29tcGxldGU9XCJvZmZcIiByZXF1aXJlZCAjcGFzc3dvcmRJbnB1dFxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3JlZGVudGlhbHMucGFzc3dvcmRcIj5cclxuICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwic2hvd1Bhc3N3b3JkKClcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4taWNvbiBwb3NpdGlvbi1hYnNvbHV0ZSB0cmFuc2xhdGUtbWlkZGxlIHRvcC01MCBlbmQtMCBtZS1uMlwiXHJcbiAgICAgICAgICAgICAgZGF0YS1rdC1wYXNzd29yZC1tZXRlci1jb250cm9sPVwidmlzaWJpbGl0eVwiPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwic2hvd1wiIGNsYXNzPVwiZmEgZmEtZXllXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXNob3dcIiBjbGFzcz1cImZhIGZhLWV5ZS1zbGFzaFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImhhc0Vycm9yXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiIHN0eWxlPVwiY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcIj5cclxuICAgICAgICAgICAgRW1haWwgSWQgLyBNb2JpbGUgTnVtYmVyIG9yIFBhc3N3b3JkIGlzIGluY29ycmVjdFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgPGg2IGNsYXNzPVwiZm9yZ290IGN1cnNvci1wb2ludGVyXCIgcm91dGVyTGluaz1cIi9hdXRoL2ZvcmdvdC1wYXNzd29yZFwiPkZvcmdvdCBQYXNzd29yZDwvaDY+XHJcblxyXG48L2Rpdj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtdC0zXCIgW2Rpc2FibGVkXT1cIiFsb2dpbkZvcm0udmFsaWQgfHwgKCFjcmVkZW50aWFscy5lbWFpbCB8fCAhY3JlZGVudGlhbHMucGFzc3dvcmQpXCIgKGNsaWNrKT1cIm9uTG9naW4oKVwiPlNpZ24gaW48L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTEwMCBtdC0zIG5vdC1hbGxvd2VkIGNvbWluZy1zb29uXCIgPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjI1XCIgaGVpZ2h0PVwiMjVcIiB2aWV3Qm94PVwiMCAwIDI1IDI1XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMzcyN18xNzc1OSlcIj5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTI0LjI2NjMgMTIuOTc2N0MyNC4yNjYzIDEyLjE2MSAyNC4yMDAxIDExLjM0MDggMjQuMDU5IDEwLjUzODNIMTIuNzQwMlYxNS4xNTkzSDE5LjIyMkMxOC45NTMgMTYuNjQ5NyAxOC4wODg4IDE3Ljk2ODEgMTYuODIzMyAxOC44MDU4VjIxLjgwNDJIMjAuNjkwM0MyMi45NjExIDE5LjcxNDIgMjQuMjY2MyAxNi42Mjc2IDI0LjI2NjMgMTIuOTc2N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNDI4NUY0XCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjc0MDEgMjQuNzAxQzE1Ljk3NjYgMjQuNzAxIDE4LjcwNTkgMjMuNjM4NCAyMC42OTQ1IDIxLjgwNDFMMTYuODI3NiAxOC44MDU3QzE1Ljc1MTcgMTkuNTM3NyAxNC4zNjI3IDE5Ljk1MjIgMTIuNzQ0NSAxOS45NTIyQzkuNjEzODggMTkuOTUyMiA2Ljk1OTQ2IDE3Ljg0MDEgNi4wMDcwNSAxNS4wMDA1SDIuMDE2NlYxOC4wOTE0QzQuMDUzNzEgMjIuMTQzNiA4LjIwMjkgMjQuNzAxIDEyLjc0MDEgMjQuNzAxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiMzNEE4NTNcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMDI3NyAxNS4wMDA0QzUuNTAwMTEgMTMuNTEwMSA1LjUwMDExIDExLjg5NjIgNi4wMDI3NyAxMC40MDU5VjcuMzE0OTRIMi4wMTY3NEMwLjMxNDczNCAxMC43MDU3IDAuMzE0NzM0IDE0LjcwMDYgMi4wMTY3NCAxOC4wOTEzTDYuMDAyNzcgMTUuMDAwNFpcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjRkJCQzA0XCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICBkPVwiTTEyLjc0MDEgNS40NDk4NkMxNC40NTA5IDUuNDIzNCAxNi4xMDQ0IDYuMDY3MTYgMTcuMzQzNCA3LjI0ODg2TDIwLjc2OTUgMy44MjI4MUMxOC42MDAxIDEuNzg1NyAxNS43MjA4IDAuNjY1NzI5IDEyLjc0MDEgMC43MDEwMDRDOC4yMDI5IDAuNzAxMDA0IDQuMDUzNzEgMy4yNTg0MiAyLjAxNjYgNy4zMTVMNi4wMDI2NCAxMC40MDU5QzYuOTUwNjQgNy41NjE5MyA5LjYwOTQ3IDUuNDQ5ODYgMTIuNzQwMSA1LjQ0OTg2WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiNFQTQzMzVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM3MjdfMTc3NTlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC41IDAuNzAwMTk1KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJteC0yXCI+U2lnbiBpbiB3aXRoIEdvb2dsZTwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwXCI+Q29taW5nIFNvb248L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIG10LTMgbm90LWFsbG93ZWQgY29taW5nLXNvb25cIiA+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcclxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMjVcIiBoZWlnaHQ9XCIyNVwiIHZpZXdCb3g9XCIwIDAgMjUgMjVcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8zNzI3XzYxNDEpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTEuOTA1NyAxMi4xMDRIMC41VjAuNzAwMTk1SDExLjkwNTdWMTIuMTA0WlwiIGZpbGw9XCIjRjE1MTFCXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNC41MDA0IDEyLjEwNEgxMy4wOTM4VjAuNzAwMTk1SDI0LjQ5OTRWMTIuMTA0SDI0LjUwMDRaXCIgZmlsbD1cIiM4MENDMjhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTExLjkwNTcgMjQuNzAwMkgwLjVWMTMuMjk2NEgxMS45MDU3VjI0LjcwMDJaXCIgZmlsbD1cIiMwMEFERUZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI0LjUwMDQgMjQuNzAwMkgxMy4wOTM4VjEzLjI5NjRIMjQuNDk5NFYyNC43MDAySDI0LjUwMDRaXCIgZmlsbD1cIiNGQkJDMDlcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzM3MjdfNjE0MVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjUgMC43MDAxOTUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm14LTJcIj5TaWduIGluIHdpdGggTWljcm9zb2Z0PC9zcGFuPiAgPHNwYW4gY2xhc3M9XCJ0b29sdGlwXCI+Q29taW5nIFNvb248L3NwYW4+PC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgPC9mb3JtPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIHRleHQtY2VudGVyIG1zLTc1cHhcIj48c3BhbiBjbGFzcz1cInNpZ251cC1kZWZhdWx0XCI+PC9zcGFuPkRvbuKAmXQgaGF2ZSBhbiBhY2NvdW50PzxzcGFuIGNsYXNzPVwic2lnbnVwLXByaW1hcnkgbXMtMiBjdXJzb3ItcG9pbnRlclwiIHJvdXRlckxpbms9XCIvYXV0aC9zaWdudXBcIj5TaWduIHVwPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgIGNsYXNzPVwiIGQtZmxleCBmbGV4LWNvbHVtbiBmbGV4LW1kLXJvdyBtYi0zICBmbGV4LW1kLXN0YWNrIHB5LTMgY29udGFpbmVyLWZsdWlkXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5LTkwMCBvcmRlci0yIG9yZGVyLW1kLTEgbXMtMTBcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTEgZm9vdGVyXCI+MjAyNDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cImZvb3RlciB0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIGN1cnNvci1wb2ludGVyXCI+JiM2NDtUYW5nb0lUU29sdXRpb25zIEluZGlhIFB2dCBMdGQ8L2E+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDx1bCBjbGFzcz1cIm1lbnUgbWVudS1ncmF5LTYwMCBtZW51LWhvdmVyLXByaW1hcnkgZnctc2VtaWJvbGQgb3JkZXItMSBtZS03XCI+XHJcbiAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibWVudS1pdGVtIGZvb3RlclwiPjxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL3RhbmdvZXllLmFpLyNhYm91dHVzXCIgY2xhc3M9XCJtZW51LWxpbmsgcHgtNVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxM1wiIHZpZXdCb3g9XCIwIDAgMTIgMTNcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMSAzLjcwMDJDMTEgMy4xNTAyIDEwLjU1IDIuNzAwMiAxMCAyLjcwMDJIMkMxLjQ1IDIuNzAwMiAxIDMuMTUwMiAxIDMuNzAwMk0xMSAzLjcwMDJWOS43MDAyQzExIDEwLjI1MDIgMTAuNTUgMTAuNzAwMiAxMCAxMC43MDAySDJDMS40NSAxMC43MDAyIDEgMTAuMjUwMiAxIDkuNzAwMlYzLjcwMDJNMTEgMy43MDAyTDYgNy4yMDAyTDEgMy43MDAyXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXMtMlwiPnN1cHBvcnQmIzY0O3RhbmdvdGVjaC5jby5pbjwvc3Bhbj48L2E+PC9saT5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICBcclxuXHJcblxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9sb2dpbi1iYWNrZ3JvdW5kMS5zdmdcIiBhbHQ9XCJJbWFnZVwiIGNsYXNzPVwiYmFja2dyb3VuZC1pbWFnZVwiPlxyXG48L2Rpdj4iXX0=
@@ -150,6 +150,7 @@ class TangoAuthLoginComponent {
150
150
  password: null,
151
151
  };
152
152
  isLoading;
153
+ isloader = true;
153
154
  emailInputRef;
154
155
  passwordInputRef;
155
156
  authlocalStorageToken;
@@ -188,6 +189,7 @@ class TangoAuthLoginComponent {
188
189
  this.destroy$.complete();
189
190
  }
190
191
  initForm() {
192
+ this.isloader = false;
191
193
  this.loginForm = this.fb.group({
192
194
  email: [
193
195
  this.defaultAuth.email,
@@ -261,11 +263,11 @@ class TangoAuthLoginComponent {
261
263
  this.show = !this.show;
262
264
  }
263
265
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TangoAuthLoginComponent, deps: [{ token: i3.Router }, { token: i3.ActivatedRoute }, { token: i2$1.FormBuilder }, { token: AuthService }, { token: i4.GlobalStateService }, { token: i0.ChangeDetectorRef }, { token: i5.ToastService }], target: i0.ɵɵFactoryTarget.Component });
264
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: TangoAuthLoginComponent, selector: "lib-tango-auth-login", viewQueries: [{ propertyName: "emailInputRef", first: true, predicate: ["emailInput"], descendants: true }, { propertyName: "passwordInputRef", first: true, predicate: ["passwordInput"], descendants: true }], ngImport: i0, template: "<!-- <div class=\"row justify-content-center logotext px-0\">\r\n <img src=\"./assets/tango/Icons/login-background.svg\" alt=\"\">\r\n </div> -->\r\n\r\n<!-- \r\n<button (click)=\"onClick()\">Log In</button> -->\r\n\r\n<div class=\"container\">\r\n <!-- style=\"padding: 96px 142px 96px 142px;\" -->\r\n <div class=\"row position-absolute\" >\r\n <div class=\"col-md-6 pe-10 d-flex justify-content-center align-items-center \">\r\n <img src=\"./assets/tango/Icons/LHS.svg\" alt=\"Image\" class=\"img-fluid\">\r\n </div>\r\n <div class=\"col-md-6 ps-10 d-flex justify-content-center align-items-center\"> \r\n <div class=\"card\">\r\n \r\n \r\n\r\n\r\n \r\n <div class=\"login-form login-signin\">\r\n \r\n <div class=\"d-flex flex-column align-items-between title-padding\">\r\n <div class=\"text-start my-10 ms-10\">\r\n <h3 class=\"login-title\">Log in</h3>\r\n <p class=\"login-sub-title\">Welcome back! Please enter your details.</p>\r\n </div>\r\n <form #loginForm=\"ngForm\" class=\"w-100 title-padding\" novalidate=\"novalidate\">\r\n <div class=\"mb-5 \">\r\n <label for=\"Email\" class=\"form-label\">Email</label>\r\n <input type=\"email\" class=\"form-control\" id=\"Email\" name=\"Email\" autocomplete=\"off\" required [(ngModel)]=\"credentials.email\" autocomplete=\"off\" #emailInput>\r\n </div>\r\n <div class=\"mb-5 \">\r\n <label for=\"Password\" class=\"form-label\">Password</label>\r\n <div class=\"position-relative mb-3\">\r\n <input class=\"form-control\" id=\"Password\" [type]=\"show ? 'text' : 'password'\"\r\n placeholder=\"\" name=\"password\" autocomplete=\"off\" required #passwordInput\r\n [(ngModel)]=\"credentials.password\">\r\n <span (click)=\"showPassword()\"\r\n class=\"btn btn-sm btn-icon position-absolute translate-middle top-50 end-0 me-n2\"\r\n data-kt-password-meter-control=\"visibility\">\r\n <i *ngIf=\"show\" class=\"fa fa-eye\" aria-hidden=\"true\"></i>\r\n <i *ngIf=\"!show\" class=\"fa fa-eye-slash\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n <div *ngIf=\"hasError\" class=\"text-danger\" style=\"color: #ffffff !important;\">\r\n Email Id / Mobile Number or Password is incorrect\r\n </div>\r\n </div>\r\n<div class=\"text-center\">\r\n <h6 class=\"forgot cursor-pointer\" routerLink=\"/auth/forgot-password\">Forgot Password</h6>\r\n\r\n</div>\r\n <button class=\"btn btn-primary w-100 mt-3\" [disabled]=\"!loginForm.valid || (!credentials.email || !credentials.password)\" (click)=\"onLogin()\">Sign in</button>\r\n\r\n <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_17759)\">\r\n <path\r\n d=\"M24.2663 12.9767C24.2663 12.161 24.2001 11.3408 24.059 10.5383H12.7402V15.1593H19.222C18.953 16.6497 18.0888 17.9681 16.8233 18.8058V21.8042H20.6903C22.9611 19.7142 24.2663 16.6276 24.2663 12.9767Z\"\r\n fill=\"#4285F4\" />\r\n <path\r\n d=\"M12.7401 24.701C15.9766 24.701 18.7059 23.6384 20.6945 21.8041L16.8276 18.8057C15.7517 19.5377 14.3627 19.9522 12.7445 19.9522C9.61388 19.9522 6.95946 17.8401 6.00705 15.0005H2.0166V18.0914C4.05371 22.1436 8.2029 24.701 12.7401 24.701Z\"\r\n fill=\"#34A853\" />\r\n <path\r\n d=\"M6.00277 15.0004C5.50011 13.5101 5.50011 11.8962 6.00277 10.4059V7.31494H2.01674C0.314734 10.7057 0.314734 14.7006 2.01674 18.0913L6.00277 15.0004Z\"\r\n fill=\"#FBBC04\" />\r\n <path\r\n d=\"M12.7401 5.44986C14.4509 5.4234 16.1044 6.06716 17.3434 7.24886L20.7695 3.82281C18.6001 1.7857 15.7208 0.665729 12.7401 0.701004C8.2029 0.701004 4.05371 3.25842 2.0166 7.315L6.00264 10.4059C6.95064 7.56193 9.60947 5.44986 12.7401 5.44986Z\"\r\n fill=\"#EA4335\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_17759\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Google</span> \r\n <span class=\"tooltip\">Coming Soon</span>\r\n </button>\r\n <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" ><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_6141)\">\r\n <path d=\"M11.9057 12.104H0.5V0.700195H11.9057V12.104Z\" fill=\"#F1511B\" />\r\n <path d=\"M24.5004 12.104H13.0938V0.700195H24.4994V12.104H24.5004Z\" fill=\"#80CC28\" />\r\n <path d=\"M11.9057 24.7002H0.5V13.2964H11.9057V24.7002Z\" fill=\"#00ADEF\" />\r\n <path d=\"M24.5004 24.7002H13.0938V13.2964H24.4994V24.7002H24.5004Z\" fill=\"#FBBC09\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_6141\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Microsoft</span> <span class=\"tooltip\">Coming Soon</span></button>\r\n </form>\r\n\r\n <div class=\"mt-3 text-center ms-75px\"><span class=\"signup-default\"></span>Don\u2019t have an account?<span class=\"signup-primary ms-2 cursor-pointer\" routerLink=\"/auth/signup\">Sign up</span></div>\r\n </div>\r\n <div class=\" d-flex flex-column flex-md-row mb-3 flex-md-stack pt-3 container-fluid\">\r\n <div class=\"text-gray-900 order-2 order-md-1 ms-10\">\r\n <span class=\"me-1 footer\">2024</span>\r\n <a target=\"_blank\" class=\"footer text-decoration-underline cursor-pointer\">&#64;TangoITSolutions India Pvt Ltd</a>\r\n </div>\r\n <ul class=\"menu menu-gray-600 menu-hover-primary fw-semibold order-1 me-7\">\r\n <li class=\"menu-item footer\"><a target=\"_blank\" href=\"https://tangoeye.ai/#aboutus\" class=\"menu-link px-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\">\r\n <path d=\"M11 3.7002C11 3.1502 10.55 2.7002 10 2.7002H2C1.45 2.7002 1 3.1502 1 3.7002M11 3.7002V9.7002C11 10.2502 10.55 10.7002 10 10.7002H2C1.45 10.7002 1 10.2502 1 9.7002V3.7002M11 3.7002L6 7.2002L1 3.7002\" stroke=\"#667085\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">support&#64;tangotech.co.in</span></a></li>\r\n \r\n </ul>\r\n </div>\r\n </div>\r\n \r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n<img src=\"./assets/tango/Icons/login-background1.svg\" alt=\"Image\" class=\"background-image\">\r\n</div>", styles: [".container{width:100%;height:100%;overflow:hidden}.background-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-1}.content{position:relative;z-index:1;width:45%;margin-left:auto;padding:20px;border-radius:16px;background:#fff;box-shadow:0 4px 10px #0000000d}.login-form .title-padding{padding:0 32px}.login-form .login-title{color:var(--Gray-900, #101828);font-size:36px;font-weight:600;line-height:44px;letter-spacing:-.72px}.login-form .login-sub-title{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.login-form .form-label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px}.login-form .img-src{padding:10px 5px 32px}.login-form .mx-25{margin-right:-10px!important;margin-left:-45px!important}.login-form .w-360px{width:360px!important}.login-form .forgot{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize;text-align:center}.login-form .signup-default{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.login-form .signup-primary{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:600!important;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.login-form .footer{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-weight:400!important;line-height:20px}@media (min-width: 1745px) and (max-width: 1910px){.mt-6{margin-top:7rem!important}}@media (min-width: 1920px) and (max-width: 2100px){.mt-6{margin-top:10rem!important}.login-form .mx-25{margin-right:0!important;margin-left:20px!important}}.position-absolute{position:absolute;top:50%;transform:translateY(-50%)}.not-allowed{cursor:not-allowed!important}.btn-outline.coming-soon{border-color:#ced4da;color:#6c757d;position:relative}.btn-outline.coming-soon:hover{border-color:#6c757d;color:#212529}.tooltip{visibility:hidden;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:100%;left:50%;transform:translate(-50%);width:max-content}.btn-outline.coming-soon:hover .tooltip{visibility:visible}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
266
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: TangoAuthLoginComponent, selector: "lib-tango-auth-login", viewQueries: [{ propertyName: "emailInputRef", first: true, predicate: ["emailInput"], descendants: true }, { propertyName: "passwordInputRef", first: true, predicate: ["passwordInput"], descendants: true }], ngImport: i0, template: "<!-- <div class=\"row justify-content-center logotext px-0\">\r\n <img src=\"./assets/tango/Icons/login-background.svg\" alt=\"\">\r\n </div> -->\r\n\r\n<!-- \r\n<button (click)=\"onClick()\">Log In</button> -->\r\n\r\n<div *ngIf=\"isloader\" class=\"container mt-20\">\r\n <div class=\"text-center mt-20\">\r\n <img src=\"./assets/tango/layout/Loader.gif\" alt=\"Tango logo\" />\r\n <div>Loading ...</div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"!isloader\" class=\"container\">\r\n <!-- style=\"padding: 96px 142px 96px 142px;\" -->\r\n <div class=\"row position-absolute\" >\r\n <div class=\"col-md-6 pe-10 d-flex justify-content-center align-items-center \">\r\n <img src=\"./assets/tango/Icons/LHS.svg\" alt=\"Image\" class=\"img-fluid w-100\">\r\n </div>\r\n <div class=\"col-md-6 px-10 d-flex justify-content-center align-items-center\"> \r\n <div class=\"card card-flush w-lg-600px ms-20 py-3\">\r\n <div class=\"login-form login-signin\">\r\n \r\n <div class=\"d-flex flex-column align-items-between title-padding\">\r\n <div class=\"text-start my-10 ms-10\">\r\n <h3 class=\"login-title\">Log in</h3>\r\n <p class=\"login-sub-title\">Welcome back! Please enter your details.</p>\r\n </div>\r\n <form #loginForm=\"ngForm\" class=\"w-100 title-padding\" novalidate=\"novalidate\">\r\n <div class=\"mb-5 \">\r\n <label for=\"Email\" class=\"form-label\">Email</label>\r\n <input type=\"email\" class=\"form-control\" id=\"Email\" name=\"Email\" autocomplete=\"off\" required [(ngModel)]=\"credentials.email\" autocomplete=\"off\" #emailInput>\r\n </div>\r\n <div class=\"mb-5 \">\r\n <label for=\"Password\" class=\"form-label\">Password</label>\r\n <div class=\"position-relative mb-3\">\r\n <input class=\"form-control\" id=\"Password\" [type]=\"show ? 'text' : 'password'\"\r\n placeholder=\"\" name=\"password\" autocomplete=\"off\" required #passwordInput\r\n [(ngModel)]=\"credentials.password\">\r\n <span (click)=\"showPassword()\"\r\n class=\"btn btn-sm btn-icon position-absolute translate-middle top-50 end-0 me-n2\"\r\n data-kt-password-meter-control=\"visibility\">\r\n <i *ngIf=\"show\" class=\"fa fa-eye\" aria-hidden=\"true\"></i>\r\n <i *ngIf=\"!show\" class=\"fa fa-eye-slash\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n <div *ngIf=\"hasError\" class=\"text-danger\" style=\"color: #ffffff !important;\">\r\n Email Id / Mobile Number or Password is incorrect\r\n </div>\r\n </div>\r\n<div class=\"text-center\">\r\n <h6 class=\"forgot cursor-pointer\" routerLink=\"/auth/forgot-password\">Forgot Password</h6>\r\n\r\n</div>\r\n <button class=\"btn btn-primary w-100 mt-3\" [disabled]=\"!loginForm.valid || (!credentials.email || !credentials.password)\" (click)=\"onLogin()\">Sign in</button>\r\n\r\n <!-- <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_17759)\">\r\n <path\r\n d=\"M24.2663 12.9767C24.2663 12.161 24.2001 11.3408 24.059 10.5383H12.7402V15.1593H19.222C18.953 16.6497 18.0888 17.9681 16.8233 18.8058V21.8042H20.6903C22.9611 19.7142 24.2663 16.6276 24.2663 12.9767Z\"\r\n fill=\"#4285F4\" />\r\n <path\r\n d=\"M12.7401 24.701C15.9766 24.701 18.7059 23.6384 20.6945 21.8041L16.8276 18.8057C15.7517 19.5377 14.3627 19.9522 12.7445 19.9522C9.61388 19.9522 6.95946 17.8401 6.00705 15.0005H2.0166V18.0914C4.05371 22.1436 8.2029 24.701 12.7401 24.701Z\"\r\n fill=\"#34A853\" />\r\n <path\r\n d=\"M6.00277 15.0004C5.50011 13.5101 5.50011 11.8962 6.00277 10.4059V7.31494H2.01674C0.314734 10.7057 0.314734 14.7006 2.01674 18.0913L6.00277 15.0004Z\"\r\n fill=\"#FBBC04\" />\r\n <path\r\n d=\"M12.7401 5.44986C14.4509 5.4234 16.1044 6.06716 17.3434 7.24886L20.7695 3.82281C18.6001 1.7857 15.7208 0.665729 12.7401 0.701004C8.2029 0.701004 4.05371 3.25842 2.0166 7.315L6.00264 10.4059C6.95064 7.56193 9.60947 5.44986 12.7401 5.44986Z\"\r\n fill=\"#EA4335\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_17759\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Google</span> \r\n <span class=\"tooltip\">Coming Soon</span>\r\n </button>\r\n <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" ><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_6141)\">\r\n <path d=\"M11.9057 12.104H0.5V0.700195H11.9057V12.104Z\" fill=\"#F1511B\" />\r\n <path d=\"M24.5004 12.104H13.0938V0.700195H24.4994V12.104H24.5004Z\" fill=\"#80CC28\" />\r\n <path d=\"M11.9057 24.7002H0.5V13.2964H11.9057V24.7002Z\" fill=\"#00ADEF\" />\r\n <path d=\"M24.5004 24.7002H13.0938V13.2964H24.4994V24.7002H24.5004Z\" fill=\"#FBBC09\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_6141\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Microsoft</span> <span class=\"tooltip\">Coming Soon</span></button> -->\r\n </form>\r\n\r\n <div class=\"mt-3 text-center ms-75px\"><span class=\"signup-default\"></span>Don\u2019t have an account?<span class=\"signup-primary ms-2 cursor-pointer\" routerLink=\"/auth/signup\">Sign up</span></div>\r\n </div>\r\n <div class=\" d-flex flex-column flex-md-row mb-3 flex-md-stack py-3 container-fluid\">\r\n <div class=\"text-gray-900 order-2 order-md-1 ms-10\">\r\n <span class=\"me-1 footer\">2024</span>\r\n <a target=\"_blank\" class=\"footer text-decoration-underline cursor-pointer\">&#64;TangoITSolutions India Pvt Ltd</a>\r\n </div>\r\n <ul class=\"menu menu-gray-600 menu-hover-primary fw-semibold order-1 me-7\">\r\n <li class=\"menu-item footer\"><a target=\"_blank\" href=\"https://tangoeye.ai/#aboutus\" class=\"menu-link px-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\">\r\n <path d=\"M11 3.7002C11 3.1502 10.55 2.7002 10 2.7002H2C1.45 2.7002 1 3.1502 1 3.7002M11 3.7002V9.7002C11 10.2502 10.55 10.7002 10 10.7002H2C1.45 10.7002 1 10.2502 1 9.7002V3.7002M11 3.7002L6 7.2002L1 3.7002\" stroke=\"#667085\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">support&#64;tangotech.co.in</span></a></li>\r\n \r\n </ul>\r\n </div>\r\n </div>\r\n \r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n<img src=\"./assets/tango/Icons/login-background1.svg\" alt=\"Image\" class=\"background-image\">\r\n</div>", styles: [".container{width:100%;height:100%;overflow:hidden}.background-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-1}.content{position:relative;z-index:1;width:45%;margin-left:auto;padding:20px;border-radius:16px;background:#fff;box-shadow:0 4px 10px #0000000d}.login-form .title-padding{padding:0 32px}.login-form .login-title{color:var(--Gray-900, #101828);font-size:36px;font-weight:600;line-height:44px;letter-spacing:-.72px}.login-form .login-sub-title{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.login-form .form-label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px}.login-form .img-src{padding:10px 5px 32px}.login-form .mx-25{margin-right:-10px!important;margin-left:-45px!important}.login-form .w-360px{width:360px!important}.login-form .forgot{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize;text-align:center}.login-form .signup-default{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.login-form .signup-primary{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:600!important;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.login-form .footer{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-weight:400!important;line-height:20px}@media (min-width: 1745px) and (max-width: 1910px){.mt-6{margin-top:7rem!important}}@media (min-width: 1920px) and (max-width: 2100px){.mt-6{margin-top:10rem!important}.login-form .mx-25{margin-right:0!important;margin-left:20px!important}}.position-absolute{position:absolute;top:50%;transform:translateY(-50%)}.not-allowed{cursor:not-allowed!important}.btn-outline.coming-soon{border-color:#ced4da;color:#6c757d;position:relative}.btn-outline.coming-soon:hover{border-color:#6c757d;color:#212529}.tooltip{visibility:hidden;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:100%;left:50%;transform:translate(-50%);width:max-content}.btn-outline.coming-soon:hover .tooltip{visibility:visible}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2$1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
265
267
  }
266
268
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: TangoAuthLoginComponent, decorators: [{
267
269
  type: Component,
268
- args: [{ selector: "lib-tango-auth-login", template: "<!-- <div class=\"row justify-content-center logotext px-0\">\r\n <img src=\"./assets/tango/Icons/login-background.svg\" alt=\"\">\r\n </div> -->\r\n\r\n<!-- \r\n<button (click)=\"onClick()\">Log In</button> -->\r\n\r\n<div class=\"container\">\r\n <!-- style=\"padding: 96px 142px 96px 142px;\" -->\r\n <div class=\"row position-absolute\" >\r\n <div class=\"col-md-6 pe-10 d-flex justify-content-center align-items-center \">\r\n <img src=\"./assets/tango/Icons/LHS.svg\" alt=\"Image\" class=\"img-fluid\">\r\n </div>\r\n <div class=\"col-md-6 ps-10 d-flex justify-content-center align-items-center\"> \r\n <div class=\"card\">\r\n \r\n \r\n\r\n\r\n \r\n <div class=\"login-form login-signin\">\r\n \r\n <div class=\"d-flex flex-column align-items-between title-padding\">\r\n <div class=\"text-start my-10 ms-10\">\r\n <h3 class=\"login-title\">Log in</h3>\r\n <p class=\"login-sub-title\">Welcome back! Please enter your details.</p>\r\n </div>\r\n <form #loginForm=\"ngForm\" class=\"w-100 title-padding\" novalidate=\"novalidate\">\r\n <div class=\"mb-5 \">\r\n <label for=\"Email\" class=\"form-label\">Email</label>\r\n <input type=\"email\" class=\"form-control\" id=\"Email\" name=\"Email\" autocomplete=\"off\" required [(ngModel)]=\"credentials.email\" autocomplete=\"off\" #emailInput>\r\n </div>\r\n <div class=\"mb-5 \">\r\n <label for=\"Password\" class=\"form-label\">Password</label>\r\n <div class=\"position-relative mb-3\">\r\n <input class=\"form-control\" id=\"Password\" [type]=\"show ? 'text' : 'password'\"\r\n placeholder=\"\" name=\"password\" autocomplete=\"off\" required #passwordInput\r\n [(ngModel)]=\"credentials.password\">\r\n <span (click)=\"showPassword()\"\r\n class=\"btn btn-sm btn-icon position-absolute translate-middle top-50 end-0 me-n2\"\r\n data-kt-password-meter-control=\"visibility\">\r\n <i *ngIf=\"show\" class=\"fa fa-eye\" aria-hidden=\"true\"></i>\r\n <i *ngIf=\"!show\" class=\"fa fa-eye-slash\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n <div *ngIf=\"hasError\" class=\"text-danger\" style=\"color: #ffffff !important;\">\r\n Email Id / Mobile Number or Password is incorrect\r\n </div>\r\n </div>\r\n<div class=\"text-center\">\r\n <h6 class=\"forgot cursor-pointer\" routerLink=\"/auth/forgot-password\">Forgot Password</h6>\r\n\r\n</div>\r\n <button class=\"btn btn-primary w-100 mt-3\" [disabled]=\"!loginForm.valid || (!credentials.email || !credentials.password)\" (click)=\"onLogin()\">Sign in</button>\r\n\r\n <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_17759)\">\r\n <path\r\n d=\"M24.2663 12.9767C24.2663 12.161 24.2001 11.3408 24.059 10.5383H12.7402V15.1593H19.222C18.953 16.6497 18.0888 17.9681 16.8233 18.8058V21.8042H20.6903C22.9611 19.7142 24.2663 16.6276 24.2663 12.9767Z\"\r\n fill=\"#4285F4\" />\r\n <path\r\n d=\"M12.7401 24.701C15.9766 24.701 18.7059 23.6384 20.6945 21.8041L16.8276 18.8057C15.7517 19.5377 14.3627 19.9522 12.7445 19.9522C9.61388 19.9522 6.95946 17.8401 6.00705 15.0005H2.0166V18.0914C4.05371 22.1436 8.2029 24.701 12.7401 24.701Z\"\r\n fill=\"#34A853\" />\r\n <path\r\n d=\"M6.00277 15.0004C5.50011 13.5101 5.50011 11.8962 6.00277 10.4059V7.31494H2.01674C0.314734 10.7057 0.314734 14.7006 2.01674 18.0913L6.00277 15.0004Z\"\r\n fill=\"#FBBC04\" />\r\n <path\r\n d=\"M12.7401 5.44986C14.4509 5.4234 16.1044 6.06716 17.3434 7.24886L20.7695 3.82281C18.6001 1.7857 15.7208 0.665729 12.7401 0.701004C8.2029 0.701004 4.05371 3.25842 2.0166 7.315L6.00264 10.4059C6.95064 7.56193 9.60947 5.44986 12.7401 5.44986Z\"\r\n fill=\"#EA4335\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_17759\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Google</span> \r\n <span class=\"tooltip\">Coming Soon</span>\r\n </button>\r\n <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" ><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_6141)\">\r\n <path d=\"M11.9057 12.104H0.5V0.700195H11.9057V12.104Z\" fill=\"#F1511B\" />\r\n <path d=\"M24.5004 12.104H13.0938V0.700195H24.4994V12.104H24.5004Z\" fill=\"#80CC28\" />\r\n <path d=\"M11.9057 24.7002H0.5V13.2964H11.9057V24.7002Z\" fill=\"#00ADEF\" />\r\n <path d=\"M24.5004 24.7002H13.0938V13.2964H24.4994V24.7002H24.5004Z\" fill=\"#FBBC09\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_6141\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Microsoft</span> <span class=\"tooltip\">Coming Soon</span></button>\r\n </form>\r\n\r\n <div class=\"mt-3 text-center ms-75px\"><span class=\"signup-default\"></span>Don\u2019t have an account?<span class=\"signup-primary ms-2 cursor-pointer\" routerLink=\"/auth/signup\">Sign up</span></div>\r\n </div>\r\n <div class=\" d-flex flex-column flex-md-row mb-3 flex-md-stack pt-3 container-fluid\">\r\n <div class=\"text-gray-900 order-2 order-md-1 ms-10\">\r\n <span class=\"me-1 footer\">2024</span>\r\n <a target=\"_blank\" class=\"footer text-decoration-underline cursor-pointer\">&#64;TangoITSolutions India Pvt Ltd</a>\r\n </div>\r\n <ul class=\"menu menu-gray-600 menu-hover-primary fw-semibold order-1 me-7\">\r\n <li class=\"menu-item footer\"><a target=\"_blank\" href=\"https://tangoeye.ai/#aboutus\" class=\"menu-link px-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\">\r\n <path d=\"M11 3.7002C11 3.1502 10.55 2.7002 10 2.7002H2C1.45 2.7002 1 3.1502 1 3.7002M11 3.7002V9.7002C11 10.2502 10.55 10.7002 10 10.7002H2C1.45 10.7002 1 10.2502 1 9.7002V3.7002M11 3.7002L6 7.2002L1 3.7002\" stroke=\"#667085\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">support&#64;tangotech.co.in</span></a></li>\r\n \r\n </ul>\r\n </div>\r\n </div>\r\n \r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n<img src=\"./assets/tango/Icons/login-background1.svg\" alt=\"Image\" class=\"background-image\">\r\n</div>", styles: [".container{width:100%;height:100%;overflow:hidden}.background-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-1}.content{position:relative;z-index:1;width:45%;margin-left:auto;padding:20px;border-radius:16px;background:#fff;box-shadow:0 4px 10px #0000000d}.login-form .title-padding{padding:0 32px}.login-form .login-title{color:var(--Gray-900, #101828);font-size:36px;font-weight:600;line-height:44px;letter-spacing:-.72px}.login-form .login-sub-title{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.login-form .form-label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px}.login-form .img-src{padding:10px 5px 32px}.login-form .mx-25{margin-right:-10px!important;margin-left:-45px!important}.login-form .w-360px{width:360px!important}.login-form .forgot{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize;text-align:center}.login-form .signup-default{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.login-form .signup-primary{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:600!important;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.login-form .footer{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-weight:400!important;line-height:20px}@media (min-width: 1745px) and (max-width: 1910px){.mt-6{margin-top:7rem!important}}@media (min-width: 1920px) and (max-width: 2100px){.mt-6{margin-top:10rem!important}.login-form .mx-25{margin-right:0!important;margin-left:20px!important}}.position-absolute{position:absolute;top:50%;transform:translateY(-50%)}.not-allowed{cursor:not-allowed!important}.btn-outline.coming-soon{border-color:#ced4da;color:#6c757d;position:relative}.btn-outline.coming-soon:hover{border-color:#6c757d;color:#212529}.tooltip{visibility:hidden;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:100%;left:50%;transform:translate(-50%);width:max-content}.btn-outline.coming-soon:hover .tooltip{visibility:visible}\n"] }]
270
+ args: [{ selector: "lib-tango-auth-login", template: "<!-- <div class=\"row justify-content-center logotext px-0\">\r\n <img src=\"./assets/tango/Icons/login-background.svg\" alt=\"\">\r\n </div> -->\r\n\r\n<!-- \r\n<button (click)=\"onClick()\">Log In</button> -->\r\n\r\n<div *ngIf=\"isloader\" class=\"container mt-20\">\r\n <div class=\"text-center mt-20\">\r\n <img src=\"./assets/tango/layout/Loader.gif\" alt=\"Tango logo\" />\r\n <div>Loading ...</div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"!isloader\" class=\"container\">\r\n <!-- style=\"padding: 96px 142px 96px 142px;\" -->\r\n <div class=\"row position-absolute\" >\r\n <div class=\"col-md-6 pe-10 d-flex justify-content-center align-items-center \">\r\n <img src=\"./assets/tango/Icons/LHS.svg\" alt=\"Image\" class=\"img-fluid w-100\">\r\n </div>\r\n <div class=\"col-md-6 px-10 d-flex justify-content-center align-items-center\"> \r\n <div class=\"card card-flush w-lg-600px ms-20 py-3\">\r\n <div class=\"login-form login-signin\">\r\n \r\n <div class=\"d-flex flex-column align-items-between title-padding\">\r\n <div class=\"text-start my-10 ms-10\">\r\n <h3 class=\"login-title\">Log in</h3>\r\n <p class=\"login-sub-title\">Welcome back! Please enter your details.</p>\r\n </div>\r\n <form #loginForm=\"ngForm\" class=\"w-100 title-padding\" novalidate=\"novalidate\">\r\n <div class=\"mb-5 \">\r\n <label for=\"Email\" class=\"form-label\">Email</label>\r\n <input type=\"email\" class=\"form-control\" id=\"Email\" name=\"Email\" autocomplete=\"off\" required [(ngModel)]=\"credentials.email\" autocomplete=\"off\" #emailInput>\r\n </div>\r\n <div class=\"mb-5 \">\r\n <label for=\"Password\" class=\"form-label\">Password</label>\r\n <div class=\"position-relative mb-3\">\r\n <input class=\"form-control\" id=\"Password\" [type]=\"show ? 'text' : 'password'\"\r\n placeholder=\"\" name=\"password\" autocomplete=\"off\" required #passwordInput\r\n [(ngModel)]=\"credentials.password\">\r\n <span (click)=\"showPassword()\"\r\n class=\"btn btn-sm btn-icon position-absolute translate-middle top-50 end-0 me-n2\"\r\n data-kt-password-meter-control=\"visibility\">\r\n <i *ngIf=\"show\" class=\"fa fa-eye\" aria-hidden=\"true\"></i>\r\n <i *ngIf=\"!show\" class=\"fa fa-eye-slash\" aria-hidden=\"true\"></i>\r\n </span>\r\n </div>\r\n <div *ngIf=\"hasError\" class=\"text-danger\" style=\"color: #ffffff !important;\">\r\n Email Id / Mobile Number or Password is incorrect\r\n </div>\r\n </div>\r\n<div class=\"text-center\">\r\n <h6 class=\"forgot cursor-pointer\" routerLink=\"/auth/forgot-password\">Forgot Password</h6>\r\n\r\n</div>\r\n <button class=\"btn btn-primary w-100 mt-3\" [disabled]=\"!loginForm.valid || (!credentials.email || !credentials.password)\" (click)=\"onLogin()\">Sign in</button>\r\n\r\n <!-- <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_17759)\">\r\n <path\r\n d=\"M24.2663 12.9767C24.2663 12.161 24.2001 11.3408 24.059 10.5383H12.7402V15.1593H19.222C18.953 16.6497 18.0888 17.9681 16.8233 18.8058V21.8042H20.6903C22.9611 19.7142 24.2663 16.6276 24.2663 12.9767Z\"\r\n fill=\"#4285F4\" />\r\n <path\r\n d=\"M12.7401 24.701C15.9766 24.701 18.7059 23.6384 20.6945 21.8041L16.8276 18.8057C15.7517 19.5377 14.3627 19.9522 12.7445 19.9522C9.61388 19.9522 6.95946 17.8401 6.00705 15.0005H2.0166V18.0914C4.05371 22.1436 8.2029 24.701 12.7401 24.701Z\"\r\n fill=\"#34A853\" />\r\n <path\r\n d=\"M6.00277 15.0004C5.50011 13.5101 5.50011 11.8962 6.00277 10.4059V7.31494H2.01674C0.314734 10.7057 0.314734 14.7006 2.01674 18.0913L6.00277 15.0004Z\"\r\n fill=\"#FBBC04\" />\r\n <path\r\n d=\"M12.7401 5.44986C14.4509 5.4234 16.1044 6.06716 17.3434 7.24886L20.7695 3.82281C18.6001 1.7857 15.7208 0.665729 12.7401 0.701004C8.2029 0.701004 4.05371 3.25842 2.0166 7.315L6.00264 10.4059C6.95064 7.56193 9.60947 5.44986 12.7401 5.44986Z\"\r\n fill=\"#EA4335\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_17759\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Google</span> \r\n <span class=\"tooltip\">Coming Soon</span>\r\n </button>\r\n <button class=\"btn btn-outline w-100 mt-3 not-allowed coming-soon\" ><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"25\" height=\"25\" viewBox=\"0 0 25 25\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_3727_6141)\">\r\n <path d=\"M11.9057 12.104H0.5V0.700195H11.9057V12.104Z\" fill=\"#F1511B\" />\r\n <path d=\"M24.5004 12.104H13.0938V0.700195H24.4994V12.104H24.5004Z\" fill=\"#80CC28\" />\r\n <path d=\"M11.9057 24.7002H0.5V13.2964H11.9057V24.7002Z\" fill=\"#00ADEF\" />\r\n <path d=\"M24.5004 24.7002H13.0938V13.2964H24.4994V24.7002H24.5004Z\" fill=\"#FBBC09\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3727_6141\">\r\n <rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0.5 0.700195)\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"mx-2\">Sign in with Microsoft</span> <span class=\"tooltip\">Coming Soon</span></button> -->\r\n </form>\r\n\r\n <div class=\"mt-3 text-center ms-75px\"><span class=\"signup-default\"></span>Don\u2019t have an account?<span class=\"signup-primary ms-2 cursor-pointer\" routerLink=\"/auth/signup\">Sign up</span></div>\r\n </div>\r\n <div class=\" d-flex flex-column flex-md-row mb-3 flex-md-stack py-3 container-fluid\">\r\n <div class=\"text-gray-900 order-2 order-md-1 ms-10\">\r\n <span class=\"me-1 footer\">2024</span>\r\n <a target=\"_blank\" class=\"footer text-decoration-underline cursor-pointer\">&#64;TangoITSolutions India Pvt Ltd</a>\r\n </div>\r\n <ul class=\"menu menu-gray-600 menu-hover-primary fw-semibold order-1 me-7\">\r\n <li class=\"menu-item footer\"><a target=\"_blank\" href=\"https://tangoeye.ai/#aboutus\" class=\"menu-link px-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"13\" viewBox=\"0 0 12 13\" fill=\"none\">\r\n <path d=\"M11 3.7002C11 3.1502 10.55 2.7002 10 2.7002H2C1.45 2.7002 1 3.1502 1 3.7002M11 3.7002V9.7002C11 10.2502 10.55 10.7002 10 10.7002H2C1.45 10.7002 1 10.2502 1 9.7002V3.7002M11 3.7002L6 7.2002L1 3.7002\" stroke=\"#667085\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"ms-2\">support&#64;tangotech.co.in</span></a></li>\r\n \r\n </ul>\r\n </div>\r\n </div>\r\n \r\n\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n<img src=\"./assets/tango/Icons/login-background1.svg\" alt=\"Image\" class=\"background-image\">\r\n</div>", styles: [".container{width:100%;height:100%;overflow:hidden}.background-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:-1}.content{position:relative;z-index:1;width:45%;margin-left:auto;padding:20px;border-radius:16px;background:#fff;box-shadow:0 4px 10px #0000000d}.login-form .title-padding{padding:0 32px}.login-form .login-title{color:var(--Gray-900, #101828);font-size:36px;font-weight:600;line-height:44px;letter-spacing:-.72px}.login-form .login-sub-title{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}.login-form .form-label{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:500;line-height:20px}.login-form .img-src{padding:10px 5px 32px}.login-form .mx-25{margin-right:-10px!important;margin-left:-45px!important}.login-form .w-360px{width:360px!important}.login-form .forgot{color:var(--Primary-700, #009BF3)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline;text-transform:capitalize;text-align:center}.login-form .signup-default{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.login-form .signup-primary{color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:600!important;line-height:20px;text-decoration-line:underline;text-transform:capitalize}.login-form .footer{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-weight:400!important;line-height:20px}@media (min-width: 1745px) and (max-width: 1910px){.mt-6{margin-top:7rem!important}}@media (min-width: 1920px) and (max-width: 2100px){.mt-6{margin-top:10rem!important}.login-form .mx-25{margin-right:0!important;margin-left:20px!important}}.position-absolute{position:absolute;top:50%;transform:translateY(-50%)}.not-allowed{cursor:not-allowed!important}.btn-outline.coming-soon{border-color:#ced4da;color:#6c757d;position:relative}.btn-outline.coming-soon:hover{border-color:#6c757d;color:#212529}.tooltip{visibility:hidden;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:100%;left:50%;transform:translate(-50%);width:max-content}.btn-outline.coming-soon:hover .tooltip{visibility:visible}\n"] }]
269
271
  }], ctorParameters: () => [{ type: i3.Router }, { type: i3.ActivatedRoute }, { type: i2$1.FormBuilder }, { type: AuthService }, { type: i4.GlobalStateService }, { type: i0.ChangeDetectorRef }, { type: i5.ToastService }], propDecorators: { emailInputRef: [{
270
272
  type: ViewChild,
271
273
  args: ['emailInput']