cloud-ide-auth 1.0.35 → 1.0.36

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.
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-ide-auth-reset-password.component--4HcaYgg.mjs","sources":["../../../projects/cloud-ide-auth/src/lib/auth/reset-password/reset-password.component.ts","../../../projects/cloud-ide-auth/src/lib/auth/reset-password/reset-password.component.html"],"sourcesContent":["import { Component, inject } from '@angular/core';\r\nimport { CideEleButtonComponent, CideInputComponent } from 'cloud-ide-element';\r\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { FormGroupModel } from '../sign-in/sign-in.component';\r\nimport { CloudIdeAuthService } from '../../cloud-ide-auth.service';\r\nimport { MResetPassword } from 'cloud-ide-lms-model';\r\n\r\n@Component({\r\n selector: 'cide-auth-reset-password',\r\n standalone: true,\r\n imports: [CideInputComponent, ReactiveFormsModule, CommonModule, CideEleButtonComponent],\r\n templateUrl: './reset-password.component.html',\r\n styleUrl: './reset-password.component.css'\r\n})\r\nexport class CideAuthResetPasswordComponent {\r\n public setup_param = { form_loading: false };\r\n public resetPassswordForm: FormGroupModel<{user_new_password: string, user_confirm_password: string}>;\r\n public erro_message = \"\";\r\n\r\n private authService = inject(CloudIdeAuthService);\r\n private route = inject(Router);\r\n\r\n constructor() {\r\n\r\n this.resetPassswordForm = new FormGroup({\r\n user_new_password: new FormControl(''),\r\n user_confirm_password: new FormControl('')\r\n }) as unknown as FormGroupModel<{user_new_password: string, user_confirm_password: string}>;\r\n }\r\n\r\n onForgotPasssword() {\r\n if (this.resetPassswordForm.valid) {\r\n this.setup_param.form_loading = true;\r\n const resetPasssword : MResetPassword= {\r\n user_password: this.resetPassswordForm?.get('user_new_password')?.value || '',\r\n user_username: \"\",\r\n sylog_config_data: {\r\n reset_password_link: \"\",\r\n reset_password_secret: \"\",\r\n request_timestamp: new Date()\r\n }\r\n }\r\n this.authService.resetPassword(resetPasssword)?.subscribe({\r\n next: (response) => {\r\n if (response?.success === true) {\r\n this.setup_param.form_loading = false;\r\n this.route.navigate(['auth', 'sign-in'])\r\n }\r\n },\r\n error: (error) => {\r\n this.setup_param.form_loading = false;\r\n this.erro_message = error?.error?.message;\r\n console.log(error)\r\n setTimeout(() => {\r\n this.erro_message = \"\"\r\n }, 3000)\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\n","<!-- https://play.tailwindcss.com/lfO85drpUy -->\r\n<!-- Main Div Outer Div-->\r\n<div class=\"cide-font-poppins tw-flex tw-min-h-screen tw-w-full tw-bg-gray-50 tw-py-3\">\r\n <!-- Forrm Wrapper -->\r\n <div class=\"tw-m-auto tw-w-96 tw-rounded-2xl tw-bg-white tw-py-6 tw-shadow-xl\">\r\n <!-- Logo Wrapper -->\r\n <div class=\"tw-m-auto tw-h-32 tw-w-64 tw-text-center\">\r\n <img src=\"https://console.cloudidesys.com/assets/Cloud%20IDE%20Logo%20Dark.png\" class=\"tw-m-auto tw-h-full\"\r\n alt=\"Cloud IDE Logo\" />\r\n </div> <!-- Entity name here -->\r\n <div class=\"tw-my-2 tw-text-center tw-text-xl tw-font-semibold\">Reset Password</div>\r\n <!-- Error Logger -->\r\n <div class=\"tw-w-full tw-select-none tw-py-1 tw-text-center tw-text-red-500 tw-h-4 tw-text-sm\">{{erro_message}}</div>\r\n \r\n <!-- section for controls -->\r\n <form [formGroup]=\"resetPassswordForm\" (ngSubmit)=\"onForgotPasssword()\" novalidate>\r\n <div class=\"tw-m-auto tw-pb-3 tw-pt-3\">\r\n <!-- New Password -->\r\n <div class=\"tw-m-auto tw-w-80\">\r\n <cide-ele-input id=\"new_password\" formControlName=\"new_password\"></cide-ele-input>\r\n </div>\r\n <!-- Confirm Password -->\r\n <div class=\"tw-m-auto tw-w-80\">\r\n <cide-ele-input id=\"confirm_password\" formControlName=\"confirm_password\"></cide-ele-input>\r\n </div> <!-- Forgot Password button -->\r\n <div class=\"tw-w-80 tw-m-auto tw-mt-3\">\r\n <button cideEleButton id=\"reset_password_button\" [loading]=\"setup_param.form_loading\" [disabled]=\"!resetPassswordForm.valid\">Reset Password</button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud-ide-auth-reset-password.component--4HcaYgg.mjs","sources":["../../../projects/cloud-ide-auth/src/lib/auth/reset-password/reset-password.component.ts","../../../projects/cloud-ide-auth/src/lib/auth/reset-password/reset-password.component.html"],"sourcesContent":["import { Component, inject } from '@angular/core';\nimport { CideEleButtonComponent, CideInputComponent } from 'cloud-ide-element';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { FormGroupModel } from '../sign-in/sign-in.component';\nimport { CloudIdeAuthService } from '../../cloud-ide-auth.service';\nimport { MResetPassword } from 'cloud-ide-lms-model';\n\n@Component({\n selector: 'cide-auth-reset-password',\n standalone: true,\n imports: [CideInputComponent, ReactiveFormsModule, CommonModule, CideEleButtonComponent],\n templateUrl: './reset-password.component.html',\n styleUrl: './reset-password.component.css'\n})\nexport class CideAuthResetPasswordComponent {\n public setup_param = { form_loading: false };\n public resetPassswordForm: FormGroupModel<{user_new_password: string, user_confirm_password: string}>;\n public erro_message = \"\";\n\n private authService = inject(CloudIdeAuthService);\n private route = inject(Router);\n\n constructor() {\n\n this.resetPassswordForm = new FormGroup({\n user_new_password: new FormControl(''),\n user_confirm_password: new FormControl('')\n }) as unknown as FormGroupModel<{user_new_password: string, user_confirm_password: string}>;\n }\n\n onForgotPasssword() {\n if (this.resetPassswordForm.valid) {\n this.setup_param.form_loading = true;\n const resetPasssword : MResetPassword= {\n user_password: this.resetPassswordForm?.get('user_new_password')?.value || '',\n user_username: \"\",\n sylog_config_data: {\n reset_password_link: \"\",\n reset_password_secret: \"\",\n request_timestamp: new Date()\n }\n }\n this.authService.resetPassword(resetPasssword)?.subscribe({\n next: (response) => {\n if (response?.success === true) {\n this.setup_param.form_loading = false;\n this.route.navigate(['auth', 'sign-in'])\n }\n },\n error: (error) => {\n this.setup_param.form_loading = false;\n this.erro_message = error?.error?.message;\n console.log(error)\n setTimeout(() => {\n this.erro_message = \"\"\n }, 3000)\n }\n });\n }\n }\n}\n\n","<!-- https://play.tailwindcss.com/lfO85drpUy -->\r\n<!-- Main Div Outer Div-->\r\n<div class=\"cide-font-poppins tw-flex tw-min-h-screen tw-w-full tw-bg-gray-50 tw-py-3\">\r\n <!-- Forrm Wrapper -->\r\n <div class=\"tw-m-auto tw-w-96 tw-rounded-2xl tw-bg-white tw-py-6 tw-shadow-xl\">\r\n <!-- Logo Wrapper -->\r\n <div class=\"tw-m-auto tw-h-32 tw-w-64 tw-text-center\">\r\n <img src=\"https://console.cloudidesys.com/assets/Cloud%20IDE%20Logo%20Dark.png\" class=\"tw-m-auto tw-h-full\"\r\n alt=\"Cloud IDE Logo\" />\r\n </div> <!-- Entity name here -->\r\n <div class=\"tw-my-2 tw-text-center tw-text-xl tw-font-semibold\">Reset Password</div>\r\n <!-- Error Logger -->\r\n <div class=\"tw-w-full tw-select-none tw-py-1 tw-text-center tw-text-red-500 tw-h-4 tw-text-sm\">{{erro_message}}</div>\r\n \r\n <!-- section for controls -->\r\n <form [formGroup]=\"resetPassswordForm\" (ngSubmit)=\"onForgotPasssword()\" novalidate>\r\n <div class=\"tw-m-auto tw-pb-3 tw-pt-3\">\r\n <!-- New Password -->\r\n <div class=\"tw-m-auto tw-w-80\">\r\n <cide-ele-input id=\"new_password\" formControlName=\"new_password\"></cide-ele-input>\r\n </div>\r\n <!-- Confirm Password -->\r\n <div class=\"tw-m-auto tw-w-80\">\r\n <cide-ele-input id=\"confirm_password\" formControlName=\"confirm_password\"></cide-ele-input>\r\n </div> <!-- Forgot Password button -->\r\n <div class=\"tw-w-80 tw-m-auto tw-mt-3\">\r\n <button cideEleButton id=\"reset_password_button\" [loading]=\"setup_param.form_loading\" [disabled]=\"!resetPassswordForm.valid\">Reset Password</button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, inject, Component } from '@angular/core';
3
+ import * as i1 from '@angular/forms';
4
+ import { FormGroup, FormControl, ReactiveFormsModule } from '@angular/forms';
5
+ import { CommonModule } from '@angular/common';
6
+ import { Router, ActivatedRoute, RouterLink } from '@angular/router';
7
+ import { CloudIdeAuthService } from './cloud-ide-auth.mjs';
8
+ import { CideInputComponent, CideEleButtonComponent } from 'cloud-ide-element';
9
+ import { CideLytSharedWrapperComponent, AppStateHelperService } from 'cloud-ide-layout';
10
+
11
+ class CideAuthSignInComponent extends CideLytSharedWrapperComponent {
12
+ shared_wrapper_setup_param = input({
13
+ sypg_page_code: "auth_sign_in"
14
+ }, ...(ngDevMode ? [{ debugName: "shared_wrapper_setup_param" }] : []));
15
+ setup_param = { form_loading: false };
16
+ loginForm;
17
+ erro_message = "";
18
+ returnUrl = '/control-panel'; // Default return URL
19
+ router = inject(Router);
20
+ activatedRoute = inject(ActivatedRoute);
21
+ authService = inject(CloudIdeAuthService);
22
+ appStateService = inject(AppStateHelperService);
23
+ constructor() {
24
+ super();
25
+ this.loginForm = new FormGroup({
26
+ custom_login_method: new FormControl('pass'),
27
+ user_username: new FormControl(''),
28
+ user_password: new FormControl(''),
29
+ mpin_pin: new FormControl(''),
30
+ stay_sign_in: new FormControl(true)
31
+ });
32
+ }
33
+ ngOnInit() {
34
+ super.ngOnInit();
35
+ // Get return URL from route parameters or default to '/control-panel'
36
+ this.returnUrl = this.activatedRoute.snapshot.queryParams['returnUrl'] || 'control-panel';
37
+ // If user is already authenticated, redirect to the return URL
38
+ if (this.authService.isAuthenticated() && !this.authService.isTokenExpired()) {
39
+ this.router.navigateByUrl(this.returnUrl);
40
+ }
41
+ }
42
+ onSignIn() {
43
+ if (this.loginForm.valid) {
44
+ this.setup_param.form_loading = true;
45
+ this.authService.signIn(this.loginForm?.value)?.subscribe({
46
+ next: async (response) => {
47
+ this.setup_param.form_loading = false;
48
+ if (response?.success === true) {
49
+ // Store user data in auth service
50
+ this.authService.storeUserData(response?.data?.auth_user_mst || {});
51
+ // Synchronize AppStateService with the same user data
52
+ this.appStateService.setUser(response?.data?.auth_user_mst || null);
53
+ // Store active entity data
54
+ this.appStateService.setActiveEntity(response?.data?.core_system_entity || null);
55
+ // Store token through the service setter which saves to localStorage
56
+ this.authService.auth_token = (response?.token || '');
57
+ console.log(response?.token);
58
+ // Navigate to the return URL or control panel
59
+ await new Promise(resolve => setTimeout(resolve, 200));
60
+ this.router.navigateByUrl(this.returnUrl);
61
+ }
62
+ else {
63
+ // Handle case where API returns success: false
64
+ const errorMessage = response?.message || response?.error_code || 'Login failed. Please check your credentials and try again.';
65
+ this.erro_message = errorMessage;
66
+ // Clear error message after 5 seconds
67
+ const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));
68
+ delay(5000).then(() => {
69
+ this.erro_message = "";
70
+ });
71
+ }
72
+ },
73
+ error: (error) => {
74
+ this.setup_param.form_loading = false;
75
+ // Extract error message from various possible error structures
76
+ let errorMessage = '';
77
+ if (error?.error) {
78
+ // Check if error.error is an object with a message property
79
+ if (typeof error.error === 'object' && error.error.message) {
80
+ errorMessage = error.error.message;
81
+ }
82
+ // Check if error.error is a string
83
+ else if (typeof error.error === 'string') {
84
+ errorMessage = error.error;
85
+ }
86
+ // Check if error.error has an error property (nested error)
87
+ else if (error.error.error && typeof error.error.error === 'string') {
88
+ errorMessage = error.error.error;
89
+ }
90
+ }
91
+ // Fallback to error.message if no message found yet
92
+ if (!errorMessage && error?.message) {
93
+ errorMessage = error.message;
94
+ }
95
+ // Default message if nothing found
96
+ if (!errorMessage) {
97
+ errorMessage = 'Login failed. Please check your credentials and try again.';
98
+ }
99
+ this.erro_message = errorMessage;
100
+ console.error('Login error:', error);
101
+ // Clear error message after 5 seconds
102
+ const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));
103
+ delay(5000).then(() => {
104
+ this.erro_message = "";
105
+ });
106
+ }
107
+ });
108
+ }
109
+ }
110
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: CideAuthSignInComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
111
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: CideAuthSignInComponent, isStandalone: true, selector: "cide-auth-sign-in", inputs: { shared_wrapper_setup_param: { classPropertyName: "shared_wrapper_setup_param", publicName: "shared_wrapper_setup_param", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<!-- https://play.tailwindcss.com/lfO85drpUy -->\n<!-- Main Div Outer Div-->\n<div class=\"cide-font-poppins tw-flex tw-min-h-screen tw-w-full tw-bg-gray-50 tw-py-3\">\n <!-- Login Forrm Wrapper -->\n <div class=\"tw-m-auto tw-w-96 tw-rounded-2xl tw-bg-white tw-py-6 tw-shadow-xl\">\n <!-- Logo Wrapper -->\n <div class=\"tw-m-auto tw-h-32 tw-w-64 tw-text-center\">\n <img src=\"https://console.cloudidesys.com/assets/Cloud%20IDE%20Logo%20Dark.png\" class=\"tw-m-auto tw-h-full\"\n alt=\"Cloud IDE Logo\" />\n </div> <!-- Entity name here -->\n <div class=\"tw-my-2 tw-text-center tw-text-xl tw-font-semibold tw-text-gray-900\">SignIn to CloudIDE sys</div>\n <!-- Error Logger -->\n @if (erro_message) {\n <div class=\"tw-w-full tw-select-none tw-py-2 tw-px-4 tw-mx-auto tw-mb-2 tw-max-w-80 tw-text-center tw-text-red-600 tw-text-sm tw-bg-red-50 tw-border tw-border-red-200 tw-rounded-lg\">\n {{erro_message}}\n </div>\n }\n \n <!-- section for controls -->\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onSignIn()\" novalidate>\n <div class=\"tw-m-auto tw-pb-3 tw-pt-3\">\n <!-- Username -->\n <div class=\"tw-m-auto tw-w-80\">\n <cide-ele-input id=\"user_username\" formControlName=\"user_username\"></cide-ele-input>\n </div>\n <!-- Password -->\n <div class=\"tw-m-auto tw-mt-4 tw-w-80\">\n <cide-ele-input id=\"user_password_mpin\" formControlName=\"user_password\"></cide-ele-input>\n </div>\n <!-- Forgot password -->\n <div class=\"tw-m-auto tw-mt-3 tw-flex tw-w-80 tw-justify-between\">\n <div>\n <cide-ele-input id=\"stay_sign_in\" formControlName=\"stay_sign_in\"></cide-ele-input>\n </div>\n <div>\n <a routerLink=\"/auth/forgot-password\" class=\"tw-text-blue-600 hover:tw-text-blue-700\">Forgot Password?</a>\n </div>\n </div> <!-- Sign in button -->\n <div class=\"tw-w-80 tw-m-auto tw-mt-3\">\n <button type=\"submit\" class=\"tw-w-full\" cideEleButton id=\"stay_sin_button\" [loading]=\"setup_param.form_loading\" [disabled]=\"!loginForm.valid\">a</button>\n </div>\n </div>\n </form>\n </div>\n</div>", styles: [":root[data-theme=dark] .cide-font-poppins,:root.dark-mode .cide-font-poppins,html[data-theme=dark] .cide-font-poppins,html.dark-mode .cide-font-poppins{background-color:var(--cide-theme-dark-color)!important}:root[data-theme=dark] .tw-bg-white,:root.dark-mode .tw-bg-white,html[data-theme=dark] .tw-bg-white,html.dark-mode .tw-bg-white{background-color:var(--cide-theme-light-color)!important}:root[data-theme=dark] .tw-text-gray-900,:root.dark-mode .tw-text-gray-900,html[data-theme=dark] .tw-text-gray-900,html.dark-mode .tw-text-gray-900{color:var(--cide-theme-text-color)!important}:root[data-theme=dark] .tw-text-blue-600,:root[data-theme=dark] .tw-text-blue-700,:root.dark-mode .tw-text-blue-600,:root.dark-mode .tw-text-blue-700,html[data-theme=dark] .tw-text-blue-600,html[data-theme=dark] .tw-text-blue-700,html.dark-mode .tw-text-blue-600,html.dark-mode .tw-text-blue-700{color:var(--cide-theme-primary-color)!important}:root[data-theme=dark] .tw-shadow-xl,:root.dark-mode .tw-shadow-xl,html[data-theme=dark] .tw-shadow-xl,html.dark-mode .tw-shadow-xl{box-shadow:0 20px 25px -5px var(--cide-theme-shadow-color),0 10px 10px -5px var(--cide-theme-shadow-color)!important}\n"], dependencies: [{ kind: "component", type: CideInputComponent, selector: "cide-ele-input", inputs: ["fill", "label", "labelHide", "disabled", "clearInput", "labelPlacement", "labelDir", "placeholder", "leadingIcon", "trailingIcon", "helperText", "helperTextCollapse", "hideHelperAndErrorText", "errorText", "maxlength", "minlength", "required", "autocapitalize", "autocomplete", "type", "width", "id", "ngModel", "option", "min", "max", "size"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: CideEleButtonComponent, selector: "button[cideEleButton], a[cideEleButton], cide-ele-button", inputs: ["label", "variant", "size", "type", "shape", "elevation", "disabled", "id", "loading", "fullWidth", "leftIcon", "rightIcon", "customClass", "tooltip", "ariaLabel", "testId", "routerLink", "routerExtras", "preventDoubleClick", "animated"], outputs: ["btnClick", "doubleClick"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
112
+ }
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: CideAuthSignInComponent, decorators: [{
114
+ type: Component,
115
+ args: [{ selector: 'cide-auth-sign-in', standalone: true, imports: [CideInputComponent, ReactiveFormsModule, CommonModule, CideEleButtonComponent, RouterLink], template: "<!-- https://play.tailwindcss.com/lfO85drpUy -->\n<!-- Main Div Outer Div-->\n<div class=\"cide-font-poppins tw-flex tw-min-h-screen tw-w-full tw-bg-gray-50 tw-py-3\">\n <!-- Login Forrm Wrapper -->\n <div class=\"tw-m-auto tw-w-96 tw-rounded-2xl tw-bg-white tw-py-6 tw-shadow-xl\">\n <!-- Logo Wrapper -->\n <div class=\"tw-m-auto tw-h-32 tw-w-64 tw-text-center\">\n <img src=\"https://console.cloudidesys.com/assets/Cloud%20IDE%20Logo%20Dark.png\" class=\"tw-m-auto tw-h-full\"\n alt=\"Cloud IDE Logo\" />\n </div> <!-- Entity name here -->\n <div class=\"tw-my-2 tw-text-center tw-text-xl tw-font-semibold tw-text-gray-900\">SignIn to CloudIDE sys</div>\n <!-- Error Logger -->\n @if (erro_message) {\n <div class=\"tw-w-full tw-select-none tw-py-2 tw-px-4 tw-mx-auto tw-mb-2 tw-max-w-80 tw-text-center tw-text-red-600 tw-text-sm tw-bg-red-50 tw-border tw-border-red-200 tw-rounded-lg\">\n {{erro_message}}\n </div>\n }\n \n <!-- section for controls -->\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onSignIn()\" novalidate>\n <div class=\"tw-m-auto tw-pb-3 tw-pt-3\">\n <!-- Username -->\n <div class=\"tw-m-auto tw-w-80\">\n <cide-ele-input id=\"user_username\" formControlName=\"user_username\"></cide-ele-input>\n </div>\n <!-- Password -->\n <div class=\"tw-m-auto tw-mt-4 tw-w-80\">\n <cide-ele-input id=\"user_password_mpin\" formControlName=\"user_password\"></cide-ele-input>\n </div>\n <!-- Forgot password -->\n <div class=\"tw-m-auto tw-mt-3 tw-flex tw-w-80 tw-justify-between\">\n <div>\n <cide-ele-input id=\"stay_sign_in\" formControlName=\"stay_sign_in\"></cide-ele-input>\n </div>\n <div>\n <a routerLink=\"/auth/forgot-password\" class=\"tw-text-blue-600 hover:tw-text-blue-700\">Forgot Password?</a>\n </div>\n </div> <!-- Sign in button -->\n <div class=\"tw-w-80 tw-m-auto tw-mt-3\">\n <button type=\"submit\" class=\"tw-w-full\" cideEleButton id=\"stay_sin_button\" [loading]=\"setup_param.form_loading\" [disabled]=\"!loginForm.valid\">a</button>\n </div>\n </div>\n </form>\n </div>\n</div>", styles: [":root[data-theme=dark] .cide-font-poppins,:root.dark-mode .cide-font-poppins,html[data-theme=dark] .cide-font-poppins,html.dark-mode .cide-font-poppins{background-color:var(--cide-theme-dark-color)!important}:root[data-theme=dark] .tw-bg-white,:root.dark-mode .tw-bg-white,html[data-theme=dark] .tw-bg-white,html.dark-mode .tw-bg-white{background-color:var(--cide-theme-light-color)!important}:root[data-theme=dark] .tw-text-gray-900,:root.dark-mode .tw-text-gray-900,html[data-theme=dark] .tw-text-gray-900,html.dark-mode .tw-text-gray-900{color:var(--cide-theme-text-color)!important}:root[data-theme=dark] .tw-text-blue-600,:root[data-theme=dark] .tw-text-blue-700,:root.dark-mode .tw-text-blue-600,:root.dark-mode .tw-text-blue-700,html[data-theme=dark] .tw-text-blue-600,html[data-theme=dark] .tw-text-blue-700,html.dark-mode .tw-text-blue-600,html.dark-mode .tw-text-blue-700{color:var(--cide-theme-primary-color)!important}:root[data-theme=dark] .tw-shadow-xl,:root.dark-mode .tw-shadow-xl,html[data-theme=dark] .tw-shadow-xl,html.dark-mode .tw-shadow-xl{box-shadow:0 20px 25px -5px var(--cide-theme-shadow-color),0 10px 10px -5px var(--cide-theme-shadow-color)!important}\n"] }]
116
+ }], ctorParameters: () => [] });
117
+
118
+ export { CideAuthSignInComponent };
119
+ //# sourceMappingURL=cloud-ide-auth-sign-in.component-DMfRW9oE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloud-ide-auth-sign-in.component-DMfRW9oE.mjs","sources":["../../../projects/cloud-ide-auth/src/lib/auth/sign-in/sign-in.component.ts","../../../projects/cloud-ide-auth/src/lib/auth/sign-in/sign-in.component.html"],"sourcesContent":["import { Component, inject, input, OnInit } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { loginMethod, MLogin } from 'cloud-ide-lms-model';\nimport { Router, RouterLink, ActivatedRoute } from '@angular/router';\nimport { CloudIdeAuthService } from '../../cloud-ide-auth.service';\nimport { CideEleButtonComponent, CideInputComponent } from 'cloud-ide-element';\nimport { CideLytSharedWrapperComponent, CideLytSharedWrapperSetupParam, AppStateHelperService } from 'cloud-ide-layout';\n\nexport type FormGroupModel<T> = FormGroup<{\n [K in keyof T]: FormControl<T[K]>\n}>\n\n@Component({\n selector: 'cide-auth-sign-in',\n standalone: true,\n imports: [CideInputComponent, ReactiveFormsModule, CommonModule, CideEleButtonComponent, RouterLink],\n templateUrl: './sign-in.component.html',\n styleUrl: './sign-in.component.css'\n})\nexport class CideAuthSignInComponent extends CideLytSharedWrapperComponent implements OnInit {\n public override shared_wrapper_setup_param = input<Partial<CideLytSharedWrapperSetupParam>>({\n sypg_page_code: \"auth_sign_in\"\n });\n public setup_param = { form_loading: false };\n public loginForm: FormGroupModel<MLogin>;\n public erro_message = \"\";\n private returnUrl: string = '/control-panel'; // Default return URL\n protected override router = inject(Router);\n private activatedRoute = inject(ActivatedRoute);\n private authService = inject(CloudIdeAuthService);\n private appStateService = inject(AppStateHelperService);\n constructor(\n ) {\n super();\n\n this.loginForm = new FormGroup({\n custom_login_method: new FormControl<loginMethod>('pass'),\n user_username: new FormControl(''),\n user_password: new FormControl(''),\n mpin_pin: new FormControl(''),\n stay_sign_in: new FormControl(true)\n }) as unknown as FormGroupModel<MLogin>;\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n\n // Get return URL from route parameters or default to '/control-panel'\n this.returnUrl = this.activatedRoute.snapshot.queryParams['returnUrl'] || 'control-panel';\n\n // If user is already authenticated, redirect to the return URL\n if (this.authService.isAuthenticated() && !this.authService.isTokenExpired()) {\n this.router.navigateByUrl(this.returnUrl);\n }\n }\n\n onSignIn(): void {\n if (this.loginForm.valid) {\n this.setup_param.form_loading = true;\n this.authService.signIn(this.loginForm?.value as MLogin)?.subscribe({\n next: async (response) => {\n this.setup_param.form_loading = false;\n \n if (response?.success === true) {\n // Store user data in auth service\n this.authService.storeUserData(response?.data?.auth_user_mst || {});\n\n // Synchronize AppStateService with the same user data \n this.appStateService.setUser(response?.data?.auth_user_mst || null);\n\n // Store active entity data\n this.appStateService.setActiveEntity(response?.data?.core_system_entity || null);\n\n // Store token through the service setter which saves to localStorage\n this.authService.auth_token = (response?.token || '');\n console.log(response?.token);\n\n // Navigate to the return URL or control panel\n await new Promise(resolve => setTimeout(resolve, 200));\n this.router.navigateByUrl(this.returnUrl);\n } else {\n // Handle case where API returns success: false\n const errorMessage = response?.message || response?.error_code || 'Login failed. Please check your credentials and try again.';\n this.erro_message = errorMessage;\n \n // Clear error message after 5 seconds\n const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));\n delay(5000).then(() => {\n this.erro_message = \"\";\n });\n }\n },\n error: (error) => {\n this.setup_param.form_loading = false;\n \n // Extract error message from various possible error structures\n let errorMessage = '';\n \n if (error?.error) {\n // Check if error.error is an object with a message property\n if (typeof error.error === 'object' && error.error.message) {\n errorMessage = error.error.message;\n } \n // Check if error.error is a string\n else if (typeof error.error === 'string') {\n errorMessage = error.error;\n }\n // Check if error.error has an error property (nested error)\n else if (error.error.error && typeof error.error.error === 'string') {\n errorMessage = error.error.error;\n }\n }\n \n // Fallback to error.message if no message found yet\n if (!errorMessage && error?.message) {\n errorMessage = error.message;\n }\n \n // Default message if nothing found\n if (!errorMessage) {\n errorMessage = 'Login failed. Please check your credentials and try again.';\n }\n \n this.erro_message = errorMessage;\n console.error('Login error:', error);\n \n // Clear error message after 5 seconds\n const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));\n delay(5000).then(() => {\n this.erro_message = \"\";\n });\n }\n });\n }\n }\n}","<!-- https://play.tailwindcss.com/lfO85drpUy -->\n<!-- Main Div Outer Div-->\n<div class=\"cide-font-poppins tw-flex tw-min-h-screen tw-w-full tw-bg-gray-50 tw-py-3\">\n <!-- Login Forrm Wrapper -->\n <div class=\"tw-m-auto tw-w-96 tw-rounded-2xl tw-bg-white tw-py-6 tw-shadow-xl\">\n <!-- Logo Wrapper -->\n <div class=\"tw-m-auto tw-h-32 tw-w-64 tw-text-center\">\n <img src=\"https://console.cloudidesys.com/assets/Cloud%20IDE%20Logo%20Dark.png\" class=\"tw-m-auto tw-h-full\"\n alt=\"Cloud IDE Logo\" />\n </div> <!-- Entity name here -->\n <div class=\"tw-my-2 tw-text-center tw-text-xl tw-font-semibold tw-text-gray-900\">SignIn to CloudIDE sys</div>\n <!-- Error Logger -->\n @if (erro_message) {\n <div class=\"tw-w-full tw-select-none tw-py-2 tw-px-4 tw-mx-auto tw-mb-2 tw-max-w-80 tw-text-center tw-text-red-600 tw-text-sm tw-bg-red-50 tw-border tw-border-red-200 tw-rounded-lg\">\n {{erro_message}}\n </div>\n }\n \n <!-- section for controls -->\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onSignIn()\" novalidate>\n <div class=\"tw-m-auto tw-pb-3 tw-pt-3\">\n <!-- Username -->\n <div class=\"tw-m-auto tw-w-80\">\n <cide-ele-input id=\"user_username\" formControlName=\"user_username\"></cide-ele-input>\n </div>\n <!-- Password -->\n <div class=\"tw-m-auto tw-mt-4 tw-w-80\">\n <cide-ele-input id=\"user_password_mpin\" formControlName=\"user_password\"></cide-ele-input>\n </div>\n <!-- Forgot password -->\n <div class=\"tw-m-auto tw-mt-3 tw-flex tw-w-80 tw-justify-between\">\n <div>\n <cide-ele-input id=\"stay_sign_in\" formControlName=\"stay_sign_in\"></cide-ele-input>\n </div>\n <div>\n <a routerLink=\"/auth/forgot-password\" class=\"tw-text-blue-600 hover:tw-text-blue-700\">Forgot Password?</a>\n </div>\n </div> <!-- Sign in button -->\n <div class=\"tw-w-80 tw-m-auto tw-mt-3\">\n <button type=\"submit\" class=\"tw-w-full\" cideEleButton id=\"stay_sin_button\" [loading]=\"setup_param.form_loading\" [disabled]=\"!loginForm.valid\">a</button>\n </div>\n </div>\n </form>\n </div>\n</div>"],"names":[],"mappings":"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"}
@@ -627,7 +627,7 @@ const authRoutes = {
627
627
  },
628
628
  {
629
629
  path: "sign-in",
630
- loadComponent: () => import('./cloud-ide-auth-sign-in.component-CKUOd5Z1.mjs').then(c => c.CideAuthSignInComponent)
630
+ loadComponent: () => import('./cloud-ide-auth-sign-in.component-DMfRW9oE.mjs').then(c => c.CideAuthSignInComponent)
631
631
  },
632
632
  {
633
633
  path: "forgot-password",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloud-ide-auth",
3
- "version": "1.0.35",
3
+ "version": "1.0.36",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.1.0",
6
6
  "@angular/core": "^20.1.0",
@@ -1,84 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { input, inject, Component } from '@angular/core';
3
- import * as i1 from '@angular/forms';
4
- import { FormGroup, FormControl, ReactiveFormsModule } from '@angular/forms';
5
- import { CommonModule } from '@angular/common';
6
- import { Router, ActivatedRoute, RouterLink } from '@angular/router';
7
- import { CloudIdeAuthService } from './cloud-ide-auth.mjs';
8
- import { CideInputComponent, CideEleButtonComponent } from 'cloud-ide-element';
9
- import { CideLytSharedWrapperComponent, AppStateHelperService } from 'cloud-ide-layout';
10
-
11
- class CideAuthSignInComponent extends CideLytSharedWrapperComponent {
12
- shared_wrapper_setup_param = input({
13
- sypg_page_code: "auth_sign_in"
14
- }, ...(ngDevMode ? [{ debugName: "shared_wrapper_setup_param" }] : []));
15
- setup_param = { form_loading: false };
16
- loginForm;
17
- erro_message = "";
18
- returnUrl = '/control-panel'; // Default return URL
19
- router = inject(Router);
20
- activatedRoute = inject(ActivatedRoute);
21
- authService = inject(CloudIdeAuthService);
22
- appStateService = inject(AppStateHelperService);
23
- constructor() {
24
- super();
25
- this.loginForm = new FormGroup({
26
- custom_login_method: new FormControl('pass'),
27
- user_username: new FormControl(''),
28
- user_password: new FormControl(''),
29
- mpin_pin: new FormControl(''),
30
- stay_sign_in: new FormControl(true)
31
- });
32
- }
33
- ngOnInit() {
34
- super.ngOnInit();
35
- // Get return URL from route parameters or default to '/control-panel'
36
- this.returnUrl = this.activatedRoute.snapshot.queryParams['returnUrl'] || 'control-panel';
37
- // If user is already authenticated, redirect to the return URL
38
- if (this.authService.isAuthenticated() && !this.authService.isTokenExpired()) {
39
- this.router.navigateByUrl(this.returnUrl);
40
- }
41
- }
42
- onSignIn() {
43
- if (this.loginForm.valid) {
44
- this.setup_param.form_loading = true;
45
- this.authService.signIn(this.loginForm?.value)?.subscribe({
46
- next: async (response) => {
47
- if (response?.success === true) {
48
- // Store user data in auth service
49
- this.authService.storeUserData(response?.data?.auth_user_mst || {});
50
- // Synchronize AppStateService with the same user data
51
- this.appStateService.setUser(response?.data?.auth_user_mst || null);
52
- // Store active entity data
53
- this.appStateService.setActiveEntity(response?.data?.core_system_entity || null);
54
- // Store token through the service setter which saves to localStorage
55
- this.authService.auth_token = (response?.token || '');
56
- console.log(response?.token);
57
- // Navigate to the return URL or control panel
58
- await new Promise(resolve => setTimeout(resolve, 200));
59
- this.router.navigateByUrl(this.returnUrl);
60
- }
61
- },
62
- error: (error) => {
63
- this.setup_param.form_loading = false;
64
- this.erro_message = error?.error?.message;
65
- console.log(error);
66
- // Modern ES2022+ pattern: Use Promise-based delay
67
- const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));
68
- delay(3000).then(() => {
69
- this.erro_message = "";
70
- });
71
- }
72
- });
73
- }
74
- }
75
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: CideAuthSignInComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
76
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.7", type: CideAuthSignInComponent, isStandalone: true, selector: "cide-auth-sign-in", inputs: { shared_wrapper_setup_param: { classPropertyName: "shared_wrapper_setup_param", publicName: "shared_wrapper_setup_param", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<!-- https://play.tailwindcss.com/lfO85drpUy -->\r\n<!-- Main Div Outer Div-->\r\n<div class=\"cide-font-poppins tw-flex tw-min-h-screen tw-w-full tw-bg-gray-50 tw-py-3\">\r\n <!-- Login Forrm Wrapper -->\r\n <div class=\"tw-m-auto tw-w-96 tw-rounded-2xl tw-bg-white tw-py-6 tw-shadow-xl\">\r\n <!-- Logo Wrapper -->\r\n <div class=\"tw-m-auto tw-h-32 tw-w-64 tw-text-center\">\r\n <img src=\"https://console.cloudidesys.com/assets/Cloud%20IDE%20Logo%20Dark.png\" class=\"tw-m-auto tw-h-full\"\r\n alt=\"Cloud IDE Logo\" />\r\n </div> <!-- Entity name here -->\r\n <div class=\"tw-my-2 tw-text-center tw-text-xl tw-font-semibold\">SignIn to CloudIDE sys</div>\r\n <!-- Error Logger -->\r\n <div class=\"tw-w-full tw-select-none tw-py-1 tw-text-center tw-text-red-500 tw-h-4 tw-text-sm\">{{erro_message}}</div>\r\n \r\n <!-- section for controls -->\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onSignIn()\" novalidate>\r\n <div class=\"tw-m-auto tw-pb-3 tw-pt-3\">\r\n <!-- Username -->\r\n <div class=\"tw-m-auto tw-w-80\">\r\n <cide-ele-input id=\"user_username\" formControlName=\"user_username\"></cide-ele-input>\r\n </div>\r\n <!-- Password -->\r\n <div class=\"tw-m-auto tw-mt-4 tw-w-80\">\r\n <cide-ele-input id=\"user_password_mpin\" formControlName=\"user_password\"></cide-ele-input>\r\n </div>\r\n <!-- Forgot password -->\r\n <div class=\"tw-m-auto tw-mt-3 tw-flex tw-w-80 tw-justify-between\">\r\n <div>\r\n <cide-ele-input id=\"stay_sign_in\" formControlName=\"stay_sign_in\"></cide-ele-input>\r\n </div>\r\n <div>\r\n <a routerLink=\"/auth/forgot-password\" class=\"tw-text-blue-700\">Forgot Password?</a>\r\n </div>\r\n </div> <!-- Sign in button -->\r\n <div class=\"tw-w-80 tw-m-auto tw-mt-3\">\r\n <button type=\"submit\" class=\"tw-w-full\" cideEleButton id=\"stay_sin_button\" [loading]=\"setup_param.form_loading\" [disabled]=\"!loginForm.valid\">a</button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "component", type: CideInputComponent, selector: "cide-ele-input", inputs: ["fill", "label", "labelHide", "disabled", "clearInput", "labelPlacement", "labelDir", "placeholder", "leadingIcon", "trailingIcon", "helperText", "helperTextCollapse", "hideHelperAndErrorText", "errorText", "maxlength", "minlength", "required", "autocapitalize", "autocomplete", "type", "width", "id", "ngModel", "option", "min", "max", "size"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: CideEleButtonComponent, selector: "button[cideEleButton], a[cideEleButton], cide-ele-button", inputs: ["label", "variant", "size", "type", "shape", "elevation", "disabled", "id", "loading", "fullWidth", "leftIcon", "rightIcon", "customClass", "tooltip", "ariaLabel", "testId", "routerLink", "routerExtras", "preventDoubleClick", "animated"], outputs: ["btnClick", "doubleClick"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
77
- }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: CideAuthSignInComponent, decorators: [{
79
- type: Component,
80
- args: [{ selector: 'cide-auth-sign-in', standalone: true, imports: [CideInputComponent, ReactiveFormsModule, CommonModule, CideEleButtonComponent, RouterLink], template: "<!-- https://play.tailwindcss.com/lfO85drpUy -->\r\n<!-- Main Div Outer Div-->\r\n<div class=\"cide-font-poppins tw-flex tw-min-h-screen tw-w-full tw-bg-gray-50 tw-py-3\">\r\n <!-- Login Forrm Wrapper -->\r\n <div class=\"tw-m-auto tw-w-96 tw-rounded-2xl tw-bg-white tw-py-6 tw-shadow-xl\">\r\n <!-- Logo Wrapper -->\r\n <div class=\"tw-m-auto tw-h-32 tw-w-64 tw-text-center\">\r\n <img src=\"https://console.cloudidesys.com/assets/Cloud%20IDE%20Logo%20Dark.png\" class=\"tw-m-auto tw-h-full\"\r\n alt=\"Cloud IDE Logo\" />\r\n </div> <!-- Entity name here -->\r\n <div class=\"tw-my-2 tw-text-center tw-text-xl tw-font-semibold\">SignIn to CloudIDE sys</div>\r\n <!-- Error Logger -->\r\n <div class=\"tw-w-full tw-select-none tw-py-1 tw-text-center tw-text-red-500 tw-h-4 tw-text-sm\">{{erro_message}}</div>\r\n \r\n <!-- section for controls -->\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onSignIn()\" novalidate>\r\n <div class=\"tw-m-auto tw-pb-3 tw-pt-3\">\r\n <!-- Username -->\r\n <div class=\"tw-m-auto tw-w-80\">\r\n <cide-ele-input id=\"user_username\" formControlName=\"user_username\"></cide-ele-input>\r\n </div>\r\n <!-- Password -->\r\n <div class=\"tw-m-auto tw-mt-4 tw-w-80\">\r\n <cide-ele-input id=\"user_password_mpin\" formControlName=\"user_password\"></cide-ele-input>\r\n </div>\r\n <!-- Forgot password -->\r\n <div class=\"tw-m-auto tw-mt-3 tw-flex tw-w-80 tw-justify-between\">\r\n <div>\r\n <cide-ele-input id=\"stay_sign_in\" formControlName=\"stay_sign_in\"></cide-ele-input>\r\n </div>\r\n <div>\r\n <a routerLink=\"/auth/forgot-password\" class=\"tw-text-blue-700\">Forgot Password?</a>\r\n </div>\r\n </div> <!-- Sign in button -->\r\n <div class=\"tw-w-80 tw-m-auto tw-mt-3\">\r\n <button type=\"submit\" class=\"tw-w-full\" cideEleButton id=\"stay_sin_button\" [loading]=\"setup_param.form_loading\" [disabled]=\"!loginForm.valid\">a</button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n</div>" }]
81
- }], ctorParameters: () => [] });
82
-
83
- export { CideAuthSignInComponent };
84
- //# sourceMappingURL=cloud-ide-auth-sign-in.component-CKUOd5Z1.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cloud-ide-auth-sign-in.component-CKUOd5Z1.mjs","sources":["../../../projects/cloud-ide-auth/src/lib/auth/sign-in/sign-in.component.ts","../../../projects/cloud-ide-auth/src/lib/auth/sign-in/sign-in.component.html"],"sourcesContent":["import { Component, inject, input, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { loginMethod, MLogin } from 'cloud-ide-lms-model';\r\nimport { Router, RouterLink, ActivatedRoute } from '@angular/router';\r\nimport { CloudIdeAuthService } from '../../cloud-ide-auth.service';\r\nimport { CideEleButtonComponent, CideInputComponent } from 'cloud-ide-element';\r\nimport { CideLytSharedWrapperComponent, CideLytSharedWrapperSetupParam, AppStateHelperService } from 'cloud-ide-layout';\r\n\r\nexport type FormGroupModel<T> = FormGroup<{\r\n [K in keyof T]: FormControl<T[K]>\r\n}>\r\n\r\n@Component({\r\n selector: 'cide-auth-sign-in',\r\n standalone: true,\r\n imports: [CideInputComponent, ReactiveFormsModule, CommonModule, CideEleButtonComponent, RouterLink],\r\n templateUrl: './sign-in.component.html',\r\n styleUrl: './sign-in.component.css'\r\n})\r\nexport class CideAuthSignInComponent extends CideLytSharedWrapperComponent implements OnInit {\r\n public override shared_wrapper_setup_param = input<Partial<CideLytSharedWrapperSetupParam>>({\r\n sypg_page_code: \"auth_sign_in\"\r\n });\r\n public setup_param = { form_loading: false };\r\n public loginForm: FormGroupModel<MLogin>;\r\n public erro_message = \"\";\r\n private returnUrl: string = '/control-panel'; // Default return URL\r\n protected override router = inject(Router);\r\n private activatedRoute = inject(ActivatedRoute);\r\n private authService = inject(CloudIdeAuthService);\r\n private appStateService = inject(AppStateHelperService);\r\n constructor(\r\n ) {\r\n super();\r\n\r\n this.loginForm = new FormGroup({\r\n custom_login_method: new FormControl<loginMethod>('pass'),\r\n user_username: new FormControl(''),\r\n user_password: new FormControl(''),\r\n mpin_pin: new FormControl(''),\r\n stay_sign_in: new FormControl(true)\r\n }) as unknown as FormGroupModel<MLogin>;\r\n }\r\n\r\n override ngOnInit(): void {\r\n super.ngOnInit();\r\n\r\n // Get return URL from route parameters or default to '/control-panel'\r\n this.returnUrl = this.activatedRoute.snapshot.queryParams['returnUrl'] || 'control-panel';\r\n\r\n // If user is already authenticated, redirect to the return URL\r\n if (this.authService.isAuthenticated() && !this.authService.isTokenExpired()) {\r\n this.router.navigateByUrl(this.returnUrl);\r\n }\r\n }\r\n\r\n onSignIn(): void {\r\n if (this.loginForm.valid) {\r\n this.setup_param.form_loading = true;\r\n this.authService.signIn(this.loginForm?.value as MLogin)?.subscribe({\r\n next: async (response) => {\r\n if (response?.success === true) {\r\n // Store user data in auth service\r\n this.authService.storeUserData(response?.data?.auth_user_mst || {});\r\n\r\n // Synchronize AppStateService with the same user data \r\n this.appStateService.setUser(response?.data?.auth_user_mst || null);\r\n\r\n // Store active entity data\r\n this.appStateService.setActiveEntity(response?.data?.core_system_entity || null);\r\n\r\n // Store token through the service setter which saves to localStorage\r\n this.authService.auth_token = (response?.token || '');\r\n console.log(response?.token);\r\n\r\n // Navigate to the return URL or control panel\r\n await new Promise(resolve => setTimeout(resolve, 200));\r\n this.router.navigateByUrl(this.returnUrl);\r\n }\r\n },\r\n error: (error) => {\r\n this.setup_param.form_loading = false;\r\n this.erro_message = error?.error?.message;\r\n console.log(error);\r\n // Modern ES2022+ pattern: Use Promise-based delay\r\n const delay = (ms: number) => new Promise(resolve => setTimeout(resolve, ms));\r\n delay(3000).then(() => {\r\n this.erro_message = \"\";\r\n });\r\n }\r\n });\r\n }\r\n }\r\n}","<!-- https://play.tailwindcss.com/lfO85drpUy -->\r\n<!-- Main Div Outer Div-->\r\n<div class=\"cide-font-poppins tw-flex tw-min-h-screen tw-w-full tw-bg-gray-50 tw-py-3\">\r\n <!-- Login Forrm Wrapper -->\r\n <div class=\"tw-m-auto tw-w-96 tw-rounded-2xl tw-bg-white tw-py-6 tw-shadow-xl\">\r\n <!-- Logo Wrapper -->\r\n <div class=\"tw-m-auto tw-h-32 tw-w-64 tw-text-center\">\r\n <img src=\"https://console.cloudidesys.com/assets/Cloud%20IDE%20Logo%20Dark.png\" class=\"tw-m-auto tw-h-full\"\r\n alt=\"Cloud IDE Logo\" />\r\n </div> <!-- Entity name here -->\r\n <div class=\"tw-my-2 tw-text-center tw-text-xl tw-font-semibold\">SignIn to CloudIDE sys</div>\r\n <!-- Error Logger -->\r\n <div class=\"tw-w-full tw-select-none tw-py-1 tw-text-center tw-text-red-500 tw-h-4 tw-text-sm\">{{erro_message}}</div>\r\n \r\n <!-- section for controls -->\r\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"onSignIn()\" novalidate>\r\n <div class=\"tw-m-auto tw-pb-3 tw-pt-3\">\r\n <!-- Username -->\r\n <div class=\"tw-m-auto tw-w-80\">\r\n <cide-ele-input id=\"user_username\" formControlName=\"user_username\"></cide-ele-input>\r\n </div>\r\n <!-- Password -->\r\n <div class=\"tw-m-auto tw-mt-4 tw-w-80\">\r\n <cide-ele-input id=\"user_password_mpin\" formControlName=\"user_password\"></cide-ele-input>\r\n </div>\r\n <!-- Forgot password -->\r\n <div class=\"tw-m-auto tw-mt-3 tw-flex tw-w-80 tw-justify-between\">\r\n <div>\r\n <cide-ele-input id=\"stay_sign_in\" formControlName=\"stay_sign_in\"></cide-ele-input>\r\n </div>\r\n <div>\r\n <a routerLink=\"/auth/forgot-password\" class=\"tw-text-blue-700\">Forgot Password?</a>\r\n </div>\r\n </div> <!-- Sign in button -->\r\n <div class=\"tw-w-80 tw-m-auto tw-mt-3\">\r\n <button type=\"submit\" class=\"tw-w-full\" cideEleButton id=\"stay_sin_button\" [loading]=\"setup_param.form_loading\" [disabled]=\"!loginForm.valid\">a</button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n</div>"],"names":[],"mappings":"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"}