cloud-ide-auth 1.0.0 → 1.0.1
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.
- package/README.md +35 -189
- package/fesm2022/cloud-ide-auth-reset-password.component-BZiK83P_.mjs +61 -0
- package/fesm2022/{cloud-ide-auth-reset-password.component-s7NMNjch.mjs.map → cloud-ide-auth-reset-password.component-BZiK83P_.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-auth-sign-in.component-Cu4z1fIE.mjs → cloud-ide-auth-sign-in.component-D7Q5GGKH.mjs} +15 -14
- package/fesm2022/{cloud-ide-auth-sign-in.component-Cu4z1fIE.mjs.map → cloud-ide-auth-sign-in.component-D7Q5GGKH.mjs.map} +1 -1
- package/fesm2022/cloud-ide-auth.mjs +24 -23
- package/fesm2022/cloud-ide-auth.mjs.map +1 -1
- package/index.d.ts +59 -5
- package/package.json +3 -5
- package/esm2022/cloud-ide-auth.mjs +0 -5
- package/esm2022/lib/auth/forgot-password/forgot-password.component.mjs +0 -62
- package/esm2022/lib/auth/reset-password/reset-password.component.mjs +0 -57
- package/esm2022/lib/auth/sign-in/sign-in.component.mjs +0 -78
- package/esm2022/lib/cloud-ide-auth.component.mjs +0 -16
- package/esm2022/lib/cloud-ide-auth.routes.mjs +0 -24
- package/esm2022/lib/cloud-ide-auth.service.mjs +0 -165
- package/esm2022/public-api.mjs +0 -8
- package/fesm2022/cloud-ide-auth-reset-password.component-s7NMNjch.mjs +0 -60
- package/lib/auth/forgot-password/forgot-password.component.d.ts +0 -16
- package/lib/auth/reset-password/reset-password.component.d.ts +0 -18
- package/lib/auth/sign-in/sign-in.component.d.ts +0 -26
- package/lib/cloud-ide-auth.component.d.ts +0 -5
- package/lib/cloud-ide-auth.routes.d.ts +0 -2
- package/lib/cloud-ide-auth.service.d.ts +0 -29
- package/public-api.d.ts +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-ide-auth.mjs","sources":["../../../projects/cloud-ide-auth/src/lib/cloud-ide-auth.service.ts","../../../projects/cloud-ide-auth/src/lib/cloud-ide-auth.component.ts","../../../projects/cloud-ide-auth/src/lib/auth/forgot-password/forgot-password.component.ts","../../../projects/cloud-ide-auth/src/lib/auth/forgot-password/forgot-password.component.html","../../../projects/cloud-ide-auth/src/lib/cloud-ide-auth.routes.ts","../../../projects/cloud-ide-auth/src/public-api.ts","../../../projects/cloud-ide-auth/src/cloud-ide-auth.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { authRoutesUrl, cidePath, hostManagerRoutesUrl, IUser, loginControllerResponse, MLogin, MForgotPassword, ForgotPasswordControllerResponse, MResetPassword, ResetPasswordControllerResponse } from 'cloud-ide-lms-model';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CloudIdeAuthService {\n public auth_user_mst: BehaviorSubject<IUser> = new BehaviorSubject({});\n private _auth_token: string = \"\";\n \n // Storage keys\n private readonly TOKEN_STORAGE_KEY = 'cide_auth_token';\n private readonly USER_STORAGE_KEY = 'cide_auth_user';\n\n // Modern Angular v20 dependency injection pattern\n private http = inject(HttpClient);\n\n constructor() {\n // Modern Angular v20 pattern: Use constructor for initialization only\n this.loadAuthDataFromStorage();\n }\n\n /**\n * Check if localStorage is available (browser environment)\n */\n private isLocalStorageAvailable(): boolean {\n try {\n return typeof window !== 'undefined' && typeof localStorage !== 'undefined';\n } catch {\n return false;\n }\n }\n\n // Getter and setter for auth_token with localStorage persistence\n get auth_token(): string {\n return this._auth_token;\n }\n \n set auth_token(value: string) {\n this._auth_token = value;\n if (!this.isLocalStorageAvailable()) {\n return;\n }\n if (value) {\n localStorage.setItem(this.TOKEN_STORAGE_KEY, value);\n } else {\n localStorage.removeItem(this.TOKEN_STORAGE_KEY);\n }\n }\n\n // Load authentication data from localStorage on service initialization\n private loadAuthDataFromStorage(): void {\n if (!this.isLocalStorageAvailable()) {\n return;\n }\n \n try {\n // Load token\n const storedToken = localStorage.getItem(this.TOKEN_STORAGE_KEY);\n if (storedToken) {\n this._auth_token = storedToken;\n }\n \n // Load user data\n const storedUserData = localStorage.getItem(this.USER_STORAGE_KEY);\n if (storedUserData) {\n const userData = JSON.parse(storedUserData);\n this.auth_user_mst.next(userData);\n }\n } catch (error) {\n console.error('Error loading auth data from storage:', error);\n }\n }\n\n // Store user data in localStorage\n public storeUserData(userData: IUser): void {\n if (userData) {\n this.auth_user_mst.next(userData);\n if (this.isLocalStorageAvailable()) {\n localStorage.setItem(this.USER_STORAGE_KEY, JSON.stringify(userData));\n }\n }\n }\n\n signIn(body: MLogin): Observable<loginControllerResponse> {\n if (body?.user_password) {\n if (body?.user_password?.length <= 6) {\n body.custom_login_method = \"mpin\";\n body.mpin_pin = body?.user_password;\n body.user_password = \"\";\n }\n }\n return this.http?.post(cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, authRoutesUrl?.module, authRoutesUrl?.signIn]), body);\n }\n\n forgotPassword(body: MForgotPassword): Observable<ForgotPasswordControllerResponse> {\n return this.http?.post(cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, authRoutesUrl?.module, authRoutesUrl?.forgotPassword]), body);\n }\n\n resetPassword(body: MResetPassword): Observable<ResetPasswordControllerResponse> {\n const payload = new MResetPassword(body);\n if (payload?.Validate) {\n payload?.Validate();\n }\n return this.http?.post(cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, authRoutesUrl?.module, authRoutesUrl?.resetPassword]), body);\n }\n \n // Sign out the user and clear all stored auth data\n signOut(): void {\n // Clear token and user data from memory\n this._auth_token = \"\";\n this.auth_user_mst.next({});\n \n // Clear stored data\n if (this.isLocalStorageAvailable()) {\n localStorage.removeItem(this.TOKEN_STORAGE_KEY);\n localStorage.removeItem(this.USER_STORAGE_KEY);\n }\n }\n \n // Check if user is authenticated\n isAuthenticated(): boolean {\n return !!this._auth_token;\n }\n\n // Get current user data \n getCurrentUser(): IUser {\n return this.auth_user_mst.getValue();\n }\n \n // Check if token is expired\n isTokenExpired(): boolean {\n try {\n if (!this._auth_token) {\n return true;\n }\n \n // Extract the payload from the JWT token\n const tokenParts = this._auth_token.split('.');\n if (tokenParts.length !== 3) {\n return true; // Not a valid JWT token\n }\n \n const payload = JSON.parse(atob(tokenParts[1]));\n \n // Check expiration time\n const expiration = payload.exp * 1000; // Convert seconds to milliseconds\n return Date.now() >= expiration;\n } catch (error) {\n console.error('Error checking token expiration:', error);\n return true; // Assume expired if there's an error\n }\n }\n \n // Refresh auth data if needed based on stored data\n refreshAuthState(): void {\n // If we have a token but no user data, try to load user data\n if (this._auth_token && Object.keys(this.auth_user_mst.getValue()).length === 0 && this.isLocalStorageAvailable()) {\n const storedUserData = localStorage.getItem(this.USER_STORAGE_KEY);\n if (storedUserData) {\n try {\n const userData = JSON.parse(storedUserData);\n this.auth_user_mst.next(userData);\n } catch (error) {\n console.error('Error parsing stored user data:', error);\n }\n }\n }\n \n // If token is expired, sign out\n if (this.isTokenExpired()) {\n this.signOut();\n }\n }\n}\n","import { Component } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'cide-auth-wrapper',\r\n standalone: true,\r\n imports: [RouterOutlet],\r\n template: `\r\n <router-outlet></router-outlet>\r\n `,\r\n styles: ``\r\n})\r\nexport class CloudIdeAuthComponent {\r\n\r\n}\r\n","import { Component, inject } from '@angular/core';\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 { forgotPasswordMethod, MForgotPassword, validateRequestModal } from 'cloud-ide-lms-model';\nimport { CloudIdeAuthService } from '../../cloud-ide-auth.service';\nimport { CideEleButtonComponent, CideInputComponent } from 'cloud-ide-element';\n\n@Component({\n selector: 'cide-auth-forgot-password',\n standalone: true,\n imports: [CideInputComponent, ReactiveFormsModule, CommonModule, CideEleButtonComponent],\n templateUrl: './forgot-password.component.html',\n styleUrl: './forgot-password.component.css'\n})\nexport class CideAuthForgotPasswordComponent {\n public setup_param = { form_loading: false };\n public forgotPassswordForm: FormGroupModel<MForgotPassword>;\n public erro_message = \"\";\n\n private authService = inject(CloudIdeAuthService);\n private route = inject(Router);\n\n constructor() {\n\n this.forgotPassswordForm = new FormGroup({\n custom_forgot_password_method: new FormControl<forgotPasswordMethod>('username'),\n user_username: new FormControl(''),\n user_emailid: new FormControl(''),\n user_mobileno: new FormControl(),\n }) as unknown as FormGroupModel<MForgotPassword>;\n }\n\n onForgotPasssword() {\n if (this.forgotPassswordForm.valid) {\n this.setup_param.form_loading = true;\n const validate = validateRequestModal(new MForgotPassword(this.forgotPassswordForm?.value as MForgotPassword));\n console.log(validate)\n if(validate === true){\n this.authService.forgotPassword(this.forgotPassswordForm?.value as MForgotPassword)?.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 } else {\n this.setup_param.form_loading = false;\n this.erro_message = validate.first;\n setTimeout(() => {\n this.erro_message = \"\"\n }, 3000)\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 <!-- 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\">Forgot Password</div>\n <!-- Error Logger -->\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>\n \n <!-- section for controls -->\n <form [formGroup]=\"forgotPassswordForm\" (ngSubmit)=\"onForgotPasssword()\" 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> <!-- Forgot Password button -->\n <div class=\"tw-w-80 tw-m-auto tw-mt-3\">\n <button cideEleButton id=\"reset_password_link_button\" [loading]=\"setup_param.form_loading\" [disabled]=\"!forgotPassswordForm.valid\">Reset Password</button>\n </div>\n </div>\n </form>\n </div>\n </div>","import { Route } from '@angular/router';\r\n\r\nexport const authRoutes: Route =\r\n{\r\n path: \"auth\",\r\n loadComponent: () => import('./cloud-ide-auth.component').then(c => c.CloudIdeAuthComponent),\r\n children: [\r\n {\r\n path: \"\",\r\n pathMatch: 'full',\r\n redirectTo: 'sign-in'\r\n },\r\n {\r\n path: \"sign-in\",\r\n loadComponent: () => import('./auth/sign-in/sign-in.component').then(c => c.CideAuthSignInComponent)\r\n },\r\n {\r\n path: \"forgot-password\",\r\n loadComponent: () => import('./auth/forgot-password/forgot-password.component').then(c => c.CideAuthForgotPasswordComponent)\r\n },\r\n {\r\n path: \"reset-password/:rout_token\",\r\n loadComponent: () => import('./auth/reset-password/reset-password.component').then(c => c.CideAuthResetPasswordComponent)\r\n }\r\n ]\r\n}\r\n","/*\r\n * Public API Surface of cloud-ide-auth\r\n */\r\n\r\nexport * from './lib/cloud-ide-auth.service';\r\nexport * from './lib/cloud-ide-auth.component';\r\nexport * from './lib/auth/forgot-password/forgot-password.component';\r\nexport * from './lib/cloud-ide-auth.routes';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cloud-ide-auth.mjs","sources":["../../../projects/cloud-ide-auth/src/lib/cloud-ide-auth.service.ts","../../../projects/cloud-ide-auth/src/lib/cloud-ide-auth.component.ts","../../../projects/cloud-ide-auth/src/lib/auth/forgot-password/forgot-password.component.ts","../../../projects/cloud-ide-auth/src/lib/auth/forgot-password/forgot-password.component.html","../../../projects/cloud-ide-auth/src/lib/cloud-ide-auth.routes.ts","../../../projects/cloud-ide-auth/src/public-api.ts","../../../projects/cloud-ide-auth/src/cloud-ide-auth.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { authRoutesUrl, cidePath, hostManagerRoutesUrl, IUser, loginControllerResponse, MLogin, MForgotPassword, ForgotPasswordControllerResponse, MResetPassword, ResetPasswordControllerResponse } from 'cloud-ide-lms-model';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CloudIdeAuthService {\n public auth_user_mst: BehaviorSubject<IUser> = new BehaviorSubject({});\n private _auth_token: string = \"\";\n \n // Storage keys\n private readonly TOKEN_STORAGE_KEY = 'cide_auth_token';\n private readonly USER_STORAGE_KEY = 'cide_auth_user';\n\n // Modern Angular v20 dependency injection pattern\n private http = inject(HttpClient);\n\n constructor() {\n // Modern Angular v20 pattern: Use constructor for initialization only\n this.loadAuthDataFromStorage();\n }\n\n /**\n * Check if localStorage is available (browser environment)\n */\n private isLocalStorageAvailable(): boolean {\n try {\n return typeof window !== 'undefined' && typeof localStorage !== 'undefined';\n } catch {\n return false;\n }\n }\n\n // Getter and setter for auth_token with localStorage persistence\n get auth_token(): string {\n return this._auth_token;\n }\n \n set auth_token(value: string) {\n this._auth_token = value;\n if (!this.isLocalStorageAvailable()) {\n return;\n }\n if (value) {\n localStorage.setItem(this.TOKEN_STORAGE_KEY, value);\n } else {\n localStorage.removeItem(this.TOKEN_STORAGE_KEY);\n }\n }\n\n // Load authentication data from localStorage on service initialization\n private loadAuthDataFromStorage(): void {\n if (!this.isLocalStorageAvailable()) {\n return;\n }\n \n try {\n // Load token\n const storedToken = localStorage.getItem(this.TOKEN_STORAGE_KEY);\n if (storedToken) {\n this._auth_token = storedToken;\n }\n \n // Load user data\n const storedUserData = localStorage.getItem(this.USER_STORAGE_KEY);\n if (storedUserData) {\n const userData = JSON.parse(storedUserData);\n this.auth_user_mst.next(userData);\n }\n } catch (error) {\n console.error('Error loading auth data from storage:', error);\n }\n }\n\n // Store user data in localStorage\n public storeUserData(userData: IUser): void {\n if (userData) {\n this.auth_user_mst.next(userData);\n if (this.isLocalStorageAvailable()) {\n localStorage.setItem(this.USER_STORAGE_KEY, JSON.stringify(userData));\n }\n }\n }\n\n signIn(body: MLogin): Observable<loginControllerResponse> {\n if (body?.user_password) {\n if (body?.user_password?.length <= 6) {\n body.custom_login_method = \"mpin\";\n body.mpin_pin = body?.user_password;\n body.user_password = \"\";\n }\n }\n return this.http?.post(cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, authRoutesUrl?.module, authRoutesUrl?.signIn]), body);\n }\n\n forgotPassword(body: MForgotPassword): Observable<ForgotPasswordControllerResponse> {\n return this.http?.post(cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, authRoutesUrl?.module, authRoutesUrl?.forgotPassword]), body);\n }\n\n resetPassword(body: MResetPassword): Observable<ResetPasswordControllerResponse> {\n const payload = new MResetPassword(body);\n if (payload?.Validate) {\n payload?.Validate();\n }\n return this.http?.post(cidePath?.join([hostManagerRoutesUrl?.cideSuiteHost, authRoutesUrl?.module, authRoutesUrl?.resetPassword]), body);\n }\n \n // Sign out the user and clear all stored auth data\n signOut(): void {\n // Clear token and user data from memory\n this._auth_token = \"\";\n this.auth_user_mst.next({});\n \n // Clear stored data\n if (this.isLocalStorageAvailable()) {\n localStorage.removeItem(this.TOKEN_STORAGE_KEY);\n localStorage.removeItem(this.USER_STORAGE_KEY);\n }\n }\n \n // Check if user is authenticated\n isAuthenticated(): boolean {\n return !!this._auth_token;\n }\n\n // Get current user data \n getCurrentUser(): IUser {\n return this.auth_user_mst.getValue();\n }\n \n // Check if token is expired\n isTokenExpired(): boolean {\n try {\n if (!this._auth_token) {\n return true;\n }\n \n // Extract the payload from the JWT token\n const tokenParts = this._auth_token.split('.');\n if (tokenParts.length !== 3) {\n return true; // Not a valid JWT token\n }\n \n const payload = JSON.parse(atob(tokenParts[1]));\n \n // Check expiration time\n const expiration = payload.exp * 1000; // Convert seconds to milliseconds\n return Date.now() >= expiration;\n } catch (error) {\n console.error('Error checking token expiration:', error);\n return true; // Assume expired if there's an error\n }\n }\n \n // Refresh auth data if needed based on stored data\n refreshAuthState(): void {\n // If we have a token but no user data, try to load user data\n if (this._auth_token && Object.keys(this.auth_user_mst.getValue()).length === 0 && this.isLocalStorageAvailable()) {\n const storedUserData = localStorage.getItem(this.USER_STORAGE_KEY);\n if (storedUserData) {\n try {\n const userData = JSON.parse(storedUserData);\n this.auth_user_mst.next(userData);\n } catch (error) {\n console.error('Error parsing stored user data:', error);\n }\n }\n }\n \n // If token is expired, sign out\n if (this.isTokenExpired()) {\n this.signOut();\n }\n }\n}\n","import { Component } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'cide-auth-wrapper',\r\n standalone: true,\r\n imports: [RouterOutlet],\r\n template: `\r\n <router-outlet></router-outlet>\r\n `,\r\n styles: ``\r\n})\r\nexport class CloudIdeAuthComponent {\r\n\r\n}\r\n","import { Component, inject } from '@angular/core';\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 { forgotPasswordMethod, MForgotPassword, validateRequestModal } from 'cloud-ide-lms-model';\nimport { CloudIdeAuthService } from '../../cloud-ide-auth.service';\nimport { CideEleButtonComponent, CideInputComponent } from 'cloud-ide-element';\n\n@Component({\n selector: 'cide-auth-forgot-password',\n standalone: true,\n imports: [CideInputComponent, ReactiveFormsModule, CommonModule, CideEleButtonComponent],\n templateUrl: './forgot-password.component.html',\n styleUrl: './forgot-password.component.css'\n})\nexport class CideAuthForgotPasswordComponent {\n public setup_param = { form_loading: false };\n public forgotPassswordForm: FormGroupModel<MForgotPassword>;\n public erro_message = \"\";\n\n private authService = inject(CloudIdeAuthService);\n private route = inject(Router);\n\n constructor() {\n\n this.forgotPassswordForm = new FormGroup({\n custom_forgot_password_method: new FormControl<forgotPasswordMethod>('username'),\n user_username: new FormControl(''),\n user_emailid: new FormControl(''),\n user_mobileno: new FormControl(),\n }) as unknown as FormGroupModel<MForgotPassword>;\n }\n\n onForgotPasssword() {\n if (this.forgotPassswordForm.valid) {\n this.setup_param.form_loading = true;\n const validate = validateRequestModal(new MForgotPassword(this.forgotPassswordForm?.value as MForgotPassword));\n console.log(validate)\n if(validate === true){\n this.authService.forgotPassword(this.forgotPassswordForm?.value as MForgotPassword)?.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 } else {\n this.setup_param.form_loading = false;\n this.erro_message = validate.first;\n setTimeout(() => {\n this.erro_message = \"\"\n }, 3000)\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 <!-- 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\">Forgot Password</div>\n <!-- Error Logger -->\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>\n \n <!-- section for controls -->\n <form [formGroup]=\"forgotPassswordForm\" (ngSubmit)=\"onForgotPasssword()\" 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> <!-- Forgot Password button -->\n <div class=\"tw-w-80 tw-m-auto tw-mt-3\">\n <button cideEleButton id=\"reset_password_link_button\" [loading]=\"setup_param.form_loading\" [disabled]=\"!forgotPassswordForm.valid\">Reset Password</button>\n </div>\n </div>\n </form>\n </div>\n </div>","import { Route } from '@angular/router';\r\n\r\nexport const authRoutes: Route =\r\n{\r\n path: \"auth\",\r\n loadComponent: () => import('./cloud-ide-auth.component').then(c => c.CloudIdeAuthComponent),\r\n children: [\r\n {\r\n path: \"\",\r\n pathMatch: 'full',\r\n redirectTo: 'sign-in'\r\n },\r\n {\r\n path: \"sign-in\",\r\n loadComponent: () => import('./auth/sign-in/sign-in.component').then(c => c.CideAuthSignInComponent)\r\n },\r\n {\r\n path: \"forgot-password\",\r\n loadComponent: () => import('./auth/forgot-password/forgot-password.component').then(c => c.CideAuthForgotPasswordComponent)\r\n },\r\n {\r\n path: \"reset-password/:rout_token\",\r\n loadComponent: () => import('./auth/reset-password/reset-password.component').then(c => c.CideAuthResetPasswordComponent)\r\n }\r\n ]\r\n}\r\n","/*\r\n * Public API Surface of cloud-ide-auth\r\n */\r\n\r\nexport * from './lib/cloud-ide-auth.service';\r\nexport * from './lib/cloud-ide-auth.component';\r\nexport * from './lib/auth/forgot-password/forgot-password.component';\r\nexport * from './lib/cloud-ide-auth.routes';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,59 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { IUser, MLogin, loginControllerResponse, MForgotPassword, ForgotPasswordControllerResponse, MResetPassword, ResetPasswordControllerResponse } from 'cloud-ide-lms-model';
|
|
2
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { FormGroup, FormControl } from '@angular/forms';
|
|
5
|
+
import { Route } from '@angular/router';
|
|
6
|
+
|
|
7
|
+
declare class CloudIdeAuthService {
|
|
8
|
+
auth_user_mst: BehaviorSubject<IUser>;
|
|
9
|
+
private _auth_token;
|
|
10
|
+
private readonly TOKEN_STORAGE_KEY;
|
|
11
|
+
private readonly USER_STORAGE_KEY;
|
|
12
|
+
private http;
|
|
13
|
+
constructor();
|
|
14
|
+
/**
|
|
15
|
+
* Check if localStorage is available (browser environment)
|
|
16
|
+
*/
|
|
17
|
+
private isLocalStorageAvailable;
|
|
18
|
+
get auth_token(): string;
|
|
19
|
+
set auth_token(value: string);
|
|
20
|
+
private loadAuthDataFromStorage;
|
|
21
|
+
storeUserData(userData: IUser): void;
|
|
22
|
+
signIn(body: MLogin): Observable<loginControllerResponse>;
|
|
23
|
+
forgotPassword(body: MForgotPassword): Observable<ForgotPasswordControllerResponse>;
|
|
24
|
+
resetPassword(body: MResetPassword): Observable<ResetPasswordControllerResponse>;
|
|
25
|
+
signOut(): void;
|
|
26
|
+
isAuthenticated(): boolean;
|
|
27
|
+
getCurrentUser(): IUser;
|
|
28
|
+
isTokenExpired(): boolean;
|
|
29
|
+
refreshAuthState(): void;
|
|
30
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CloudIdeAuthService, never>;
|
|
31
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<CloudIdeAuthService>;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
declare class CloudIdeAuthComponent {
|
|
35
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CloudIdeAuthComponent, never>;
|
|
36
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CloudIdeAuthComponent, "cide-auth-wrapper", never, {}, {}, never, never, true, never>;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
type FormGroupModel<T> = FormGroup<{
|
|
40
|
+
[K in keyof T]: FormControl<T[K]>;
|
|
41
|
+
}>;
|
|
42
|
+
|
|
43
|
+
declare class CideAuthForgotPasswordComponent {
|
|
44
|
+
setup_param: {
|
|
45
|
+
form_loading: boolean;
|
|
46
|
+
};
|
|
47
|
+
forgotPassswordForm: FormGroupModel<MForgotPassword>;
|
|
48
|
+
erro_message: string;
|
|
49
|
+
private authService;
|
|
50
|
+
private route;
|
|
51
|
+
constructor();
|
|
52
|
+
onForgotPasssword(): void;
|
|
53
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CideAuthForgotPasswordComponent, never>;
|
|
54
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CideAuthForgotPasswordComponent, "cide-auth-forgot-password", never, {}, {}, never, never, true, never>;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
declare const authRoutes: Route;
|
|
58
|
+
|
|
59
|
+
export { CideAuthForgotPasswordComponent, CloudIdeAuthComponent, CloudIdeAuthService, authRoutes };
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cloud-ide-auth",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^
|
|
6
|
-
"@angular/core": "^
|
|
5
|
+
"@angular/common": "^20.1.0",
|
|
6
|
+
"@angular/core": "^20.1.0"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"tslib": "^2.3.0"
|
|
@@ -17,8 +17,6 @@
|
|
|
17
17
|
},
|
|
18
18
|
".": {
|
|
19
19
|
"types": "./index.d.ts",
|
|
20
|
-
"esm2022": "./esm2022/cloud-ide-auth.mjs",
|
|
21
|
-
"esm": "./esm2022/cloud-ide-auth.mjs",
|
|
22
20
|
"default": "./fesm2022/cloud-ide-auth.mjs"
|
|
23
21
|
}
|
|
24
22
|
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtaWRlLWF1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jbG91ZC1pZGUtYXV0aC9zcmMvY2xvdWQtaWRlLWF1dGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Component, inject } from '@angular/core';
|
|
2
|
-
import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { Router } from '@angular/router';
|
|
5
|
-
import { MForgotPassword, validateRequestModal } from 'cloud-ide-lms-model';
|
|
6
|
-
import { CloudIdeAuthService } from '../../cloud-ide-auth.service';
|
|
7
|
-
import { CideEleButtonComponent, CideInputComponent } from 'cloud-ide-element';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/forms";
|
|
10
|
-
export class CideAuthForgotPasswordComponent {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.setup_param = { form_loading: false };
|
|
13
|
-
this.erro_message = "";
|
|
14
|
-
this.authService = inject(CloudIdeAuthService);
|
|
15
|
-
this.route = inject(Router);
|
|
16
|
-
this.forgotPassswordForm = new FormGroup({
|
|
17
|
-
custom_forgot_password_method: new FormControl('username'),
|
|
18
|
-
user_username: new FormControl(''),
|
|
19
|
-
user_emailid: new FormControl(''),
|
|
20
|
-
user_mobileno: new FormControl(),
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
onForgotPasssword() {
|
|
24
|
-
if (this.forgotPassswordForm.valid) {
|
|
25
|
-
this.setup_param.form_loading = true;
|
|
26
|
-
const validate = validateRequestModal(new MForgotPassword(this.forgotPassswordForm?.value));
|
|
27
|
-
console.log(validate);
|
|
28
|
-
if (validate === true) {
|
|
29
|
-
this.authService.forgotPassword(this.forgotPassswordForm?.value)?.subscribe({
|
|
30
|
-
next: (response) => {
|
|
31
|
-
if (response?.success === true) {
|
|
32
|
-
this.setup_param.form_loading = false;
|
|
33
|
-
this.route.navigate(['auth', 'sign-in']);
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
error: (error) => {
|
|
37
|
-
this.setup_param.form_loading = false;
|
|
38
|
-
this.erro_message = error?.error?.message;
|
|
39
|
-
console.log(error);
|
|
40
|
-
setTimeout(() => {
|
|
41
|
-
this.erro_message = "";
|
|
42
|
-
}, 3000);
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
this.setup_param.form_loading = false;
|
|
48
|
-
this.erro_message = validate.first;
|
|
49
|
-
setTimeout(() => {
|
|
50
|
-
this.erro_message = "";
|
|
51
|
-
}, 3000);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CideAuthForgotPasswordComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
56
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CideAuthForgotPasswordComponent, isStandalone: true, selector: "cide-auth-forgot-password", 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 <!-- 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\">Forgot Password</div>\n <!-- Error Logger -->\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>\n \n <!-- section for controls -->\n <form [formGroup]=\"forgotPassswordForm\" (ngSubmit)=\"onForgotPasssword()\" 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> <!-- Forgot Password button -->\n <div class=\"tw-w-80 tw-m-auto tw-mt-3\">\n <button cideEleButton id=\"reset_password_link_button\" [loading]=\"setup_param.form_loading\" [disabled]=\"!forgotPassswordForm.valid\">Reset Password</button>\n </div>\n </div>\n </form>\n </div>\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]", inputs: ["label", "variant", "size", "type", "shape", "elevation", "disabled", "id", "loading", "fullWidth", "leftIcon", "rightIcon", "customClass", "tooltip", "ariaLabel", "testId", "routerLink", "routerExtras", "preventDoubleClick", "animated"], outputs: ["btnClick", "doubleClick"] }] }); }
|
|
57
|
-
}
|
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CideAuthForgotPasswordComponent, decorators: [{
|
|
59
|
-
type: Component,
|
|
60
|
-
args: [{ selector: 'cide-auth-forgot-password', standalone: true, imports: [CideInputComponent, ReactiveFormsModule, CommonModule, CideEleButtonComponent], 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 <!-- 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\">Forgot Password</div>\n <!-- Error Logger -->\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>\n \n <!-- section for controls -->\n <form [formGroup]=\"forgotPassswordForm\" (ngSubmit)=\"onForgotPasssword()\" 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> <!-- Forgot Password button -->\n <div class=\"tw-w-80 tw-m-auto tw-mt-3\">\n <button cideEleButton id=\"reset_password_link_button\" [loading]=\"setup_param.form_loading\" [disabled]=\"!forgotPassswordForm.valid\">Reset Password</button>\n </div>\n </div>\n </form>\n </div>\n </div>" }]
|
|
61
|
-
}], ctorParameters: () => [] });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nsb3VkLWlkZS1hdXRoL3NyYy9saWIvYXV0aC9mb3Jnb3QtcGFzc3dvcmQvZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nsb3VkLWlkZS1hdXRoL3NyYy9saWIvYXV0aC9mb3Jnb3QtcGFzc3dvcmQvZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQXdCLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFTL0UsTUFBTSxPQUFPLCtCQUErQjtJQVExQztRQVBPLGdCQUFXLEdBQUcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFFdEMsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFFakIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMxQyxVQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBSTdCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUN2Qyw2QkFBNkIsRUFBRSxJQUFJLFdBQVcsQ0FBdUIsVUFBVSxDQUFDO1lBQ2hGLGFBQWEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDbEMsWUFBWSxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxhQUFhLEVBQUUsSUFBSSxXQUFXLEVBQUU7U0FDakMsQ0FBK0MsQ0FBQztJQUNuRCxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3JDLE1BQU0sUUFBUSxHQUFHLG9CQUFvQixDQUFDLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxLQUF3QixDQUFDLENBQUMsQ0FBQztZQUMvRyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQ3JCLElBQUcsUUFBUSxLQUFLLElBQUksRUFBQyxDQUFDO2dCQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsS0FBd0IsQ0FBQyxFQUFFLFNBQVMsQ0FBQztvQkFDN0YsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7d0JBQ2pCLElBQUksUUFBUSxFQUFFLE9BQU8sS0FBSyxJQUFJLEVBQUUsQ0FBQzs0QkFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDOzRCQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFBO3dCQUMxQyxDQUFDO29CQUNILENBQUM7b0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO3dCQUN0QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO3dCQUMxQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO3dCQUNsQixVQUFVLENBQUMsR0FBRyxFQUFFOzRCQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFBO3dCQUN4QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7b0JBQ1YsQ0FBQztpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBQ25DLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUE7Z0JBQ3hCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQTtZQUNWLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0FoRFUsK0JBQStCO2tHQUEvQiwrQkFBK0IscUZDaEI1QyxtaERBMkJRLDBERGZJLGtCQUFrQix5YkFBRSxtQkFBbUIsNHJCQUFFLFlBQVksK0JBQUUsc0JBQXNCOzsyRkFJNUUsK0JBQStCO2tCQVAzQyxTQUFTOytCQUNFLDJCQUEyQixjQUN6QixJQUFJLFdBQ1AsQ0FBQyxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRm9ybUdyb3VwTW9kZWwgfSBmcm9tICcuLi9zaWduLWluL3NpZ24taW4uY29tcG9uZW50JztcbmltcG9ydCB7IGZvcmdvdFBhc3N3b3JkTWV0aG9kLCBNRm9yZ290UGFzc3dvcmQsIHZhbGlkYXRlUmVxdWVzdE1vZGFsIH0gZnJvbSAnY2xvdWQtaWRlLWxtcy1tb2RlbCc7XG5pbXBvcnQgeyBDbG91ZElkZUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2xvdWQtaWRlLWF1dGguc2VydmljZSc7XG5pbXBvcnQgeyBDaWRlRWxlQnV0dG9uQ29tcG9uZW50LCBDaWRlSW5wdXRDb21wb25lbnQgfSBmcm9tICdjbG91ZC1pZGUtZWxlbWVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NpZGUtYXV0aC1mb3Jnb3QtcGFzc3dvcmQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2lkZUlucHV0Q29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBDb21tb25Nb2R1bGUsIENpZGVFbGVCdXR0b25Db21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBDaWRlQXV0aEZvcmdvdFBhc3N3b3JkQ29tcG9uZW50IHtcbiAgcHVibGljIHNldHVwX3BhcmFtID0geyBmb3JtX2xvYWRpbmc6IGZhbHNlIH07XG4gIHB1YmxpYyBmb3Jnb3RQYXNzc3dvcmRGb3JtOiBGb3JtR3JvdXBNb2RlbDxNRm9yZ290UGFzc3dvcmQ+O1xuICBwdWJsaWMgZXJyb19tZXNzYWdlID0gXCJcIjtcblxuICBwcml2YXRlIGF1dGhTZXJ2aWNlID0gaW5qZWN0KENsb3VkSWRlQXV0aFNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgY29uc3RydWN0b3IoKSB7XG5cbiAgICB0aGlzLmZvcmdvdFBhc3Nzd29yZEZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIGN1c3RvbV9mb3Jnb3RfcGFzc3dvcmRfbWV0aG9kOiBuZXcgRm9ybUNvbnRyb2w8Zm9yZ290UGFzc3dvcmRNZXRob2Q+KCd1c2VybmFtZScpLFxuICAgICAgdXNlcl91c2VybmFtZTogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgIHVzZXJfZW1haWxpZDogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgIHVzZXJfbW9iaWxlbm86IG5ldyBGb3JtQ29udHJvbCgpLFxuICAgIH0pIGFzIHVua25vd24gYXMgRm9ybUdyb3VwTW9kZWw8TUZvcmdvdFBhc3N3b3JkPjtcbiAgfVxuXG4gIG9uRm9yZ290UGFzc3N3b3JkKCkge1xuICAgIGlmICh0aGlzLmZvcmdvdFBhc3Nzd29yZEZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMuc2V0dXBfcGFyYW0uZm9ybV9sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHZhbGlkYXRlID0gdmFsaWRhdGVSZXF1ZXN0TW9kYWwobmV3IE1Gb3Jnb3RQYXNzd29yZCh0aGlzLmZvcmdvdFBhc3Nzd29yZEZvcm0/LnZhbHVlIGFzIE1Gb3Jnb3RQYXNzd29yZCkpO1xuICAgICAgY29uc29sZS5sb2codmFsaWRhdGUpXG4gICAgICBpZih2YWxpZGF0ZSA9PT0gdHJ1ZSl7XG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZm9yZ290UGFzc3dvcmQodGhpcy5mb3Jnb3RQYXNzc3dvcmRGb3JtPy52YWx1ZSBhcyBNRm9yZ290UGFzc3dvcmQpPy5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlPy5zdWNjZXNzID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0dXBfcGFyYW0uZm9ybV9sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMucm91dGUubmF2aWdhdGUoWydhdXRoJywgJ3NpZ24taW4nXSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0dXBfcGFyYW0uZm9ybV9sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmVycm9fbWVzc2FnZSA9IGVycm9yPy5lcnJvcj8ubWVzc2FnZTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKVxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZXJyb19tZXNzYWdlID0gXCJcIlxuICAgICAgICAgICAgfSwgMzAwMClcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXR1cF9wYXJhbS5mb3JtX2xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5lcnJvX21lc3NhZ2UgPSB2YWxpZGF0ZS5maXJzdDtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvX21lc3NhZ2UgPSBcIlwiXG4gICAgICAgIH0sIDMwMDApXG4gICAgICB9XG4gICAgfVxuICB9XG59IiwiPCEtLSBodHRwczovL3BsYXkudGFpbHdpbmRjc3MuY29tL2xmTzg1ZHJwVXkgLS0+XG48IS0tIE1haW4gRGl2IE91dGVyIERpdi0tPlxuPGRpdiBjbGFzcz1cImNpZGUtZm9udC1wb3BwaW5zIHR3LWZsZXggdHctbWluLWgtc2NyZWVuIHR3LXctZnVsbCB0dy1iZy1ncmF5LTUwIHR3LXB5LTNcIj5cbiAgICA8IS0tIEZvcnJtIFdyYXBwZXIgLS0+XG4gICAgPGRpdiBjbGFzcz1cInR3LW0tYXV0byB0dy13LTk2IHR3LXJvdW5kZWQtMnhsIHR3LWJnLXdoaXRlIHR3LXB5LTYgdHctc2hhZG93LXhsXCI+XG4gICAgICA8IS0tIExvZ28gV3JhcHBlciAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0dy1tLWF1dG8gdHctaC0zMiB0dy13LTY0IHR3LXRleHQtY2VudGVyXCI+XG4gICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jb25zb2xlLmNsb3VkaWRlc3lzLmNvbS9hc3NldHMvQ2xvdWQlMjBJREUlMjBMb2dvJTIwRGFyay5wbmdcIiBjbGFzcz1cInR3LW0tYXV0byB0dy1oLWZ1bGxcIlxuICAgICAgICAgIGFsdD1cIkNsb3VkIElERSBMb2dvXCIgLz5cbiAgICAgIDwvZGl2PiA8IS0tIEVudGl0eSBuYW1lIGhlcmUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwidHctbXktMiB0dy10ZXh0LWNlbnRlciB0dy10ZXh0LXhsIHR3LWZvbnQtc2VtaWJvbGRcIj5Gb3Jnb3QgUGFzc3dvcmQ8L2Rpdj5cbiAgICAgICA8IS0tIEVycm9yIExvZ2dlciAtLT5cbiAgICAgICA8ZGl2IGNsYXNzPVwidHctdy1mdWxsIHR3LXNlbGVjdC1ub25lIHR3LXB5LTEgdHctdGV4dC1jZW50ZXIgdHctdGV4dC1yZWQtNTAwIHR3LWgtNCB0dy10ZXh0LXNtXCI+e3tlcnJvX21lc3NhZ2V9fTwvZGl2PlxuICAgICAgICBcbiAgICAgIDwhLS0gc2VjdGlvbiBmb3IgY29udHJvbHMgLS0+XG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcmdvdFBhc3Nzd29yZEZvcm1cIiAobmdTdWJtaXQpPVwib25Gb3Jnb3RQYXNzc3dvcmQoKVwiIG5vdmFsaWRhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1tLWF1dG8gdHctcGItMyB0dy1wdC0zXCI+XG4gICAgICAgICAgPCEtLSBVc2VybmFtZSAtLT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHctbS1hdXRvIHR3LXctODBcIj5cbiAgICAgICAgICAgIDxjaWRlLWVsZS1pbnB1dCBpZD1cInVzZXJfdXNlcm5hbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJ1c2VyX3VzZXJuYW1lXCI+PC9jaWRlLWVsZS1pbnB1dD5cbiAgICAgICAgICA8L2Rpdj4gICAgICAgICAgPCEtLSBGb3Jnb3QgUGFzc3dvcmQgYnV0dG9uIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dy13LTgwIHR3LW0tYXV0byB0dy1tdC0zXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNpZGVFbGVCdXR0b24gaWQ9XCJyZXNldF9wYXNzd29yZF9saW5rX2J1dHRvblwiIFtsb2FkaW5nXT1cInNldHVwX3BhcmFtLmZvcm1fbG9hZGluZ1wiIFtkaXNhYmxlZF09XCIhZm9yZ290UGFzc3N3b3JkRm9ybS52YWxpZFwiPlJlc2V0IFBhc3N3b3JkPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb3JtPlxuICAgIDwvZGl2PlxuICA8L2Rpdj4iXX0=
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { Component, inject } from '@angular/core';
|
|
2
|
-
import { CideEleButtonComponent, CideInputComponent } from 'cloud-ide-element';
|
|
3
|
-
import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
import { CommonModule } from '@angular/common';
|
|
5
|
-
import { Router } from '@angular/router';
|
|
6
|
-
import { CloudIdeAuthService } from '../../cloud-ide-auth.service';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/forms";
|
|
9
|
-
export class CideAuthResetPasswordComponent {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.setup_param = { form_loading: false };
|
|
12
|
-
this.erro_message = "";
|
|
13
|
-
this.authService = inject(CloudIdeAuthService);
|
|
14
|
-
this.route = inject(Router);
|
|
15
|
-
this.resetPassswordForm = new FormGroup({
|
|
16
|
-
user_new_password: new FormControl(''),
|
|
17
|
-
user_confirm_password: new FormControl('')
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
onForgotPasssword() {
|
|
21
|
-
if (this.resetPassswordForm.valid) {
|
|
22
|
-
this.setup_param.form_loading = true;
|
|
23
|
-
const resetPasssword = {
|
|
24
|
-
user_password: this.resetPassswordForm?.get('user_password')?.value || '',
|
|
25
|
-
user_username: "",
|
|
26
|
-
sylog_config_data: {
|
|
27
|
-
reset_password_link: "",
|
|
28
|
-
reset_password_secret: "",
|
|
29
|
-
request_timestamp: new Date()
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
this.authService.resetPassword(resetPasssword)?.subscribe({
|
|
33
|
-
next: (response) => {
|
|
34
|
-
if (response?.success === true) {
|
|
35
|
-
this.setup_param.form_loading = false;
|
|
36
|
-
this.route.navigate(['auth', 'sign-in']);
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
error: (error) => {
|
|
40
|
-
this.setup_param.form_loading = false;
|
|
41
|
-
this.erro_message = error?.error?.message;
|
|
42
|
-
console.log(error);
|
|
43
|
-
setTimeout(() => {
|
|
44
|
-
this.erro_message = "";
|
|
45
|
-
}, 3000);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CideAuthResetPasswordComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
51
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CideAuthResetPasswordComponent, isStandalone: true, selector: "cide-auth-reset-password", 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 <!-- 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\">Reset Password</div>\n <!-- Error Logger -->\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>\n \n <!-- section for controls -->\n <form [formGroup]=\"resetPassswordForm\" (ngSubmit)=\"onForgotPasssword()\" novalidate>\n <div class=\"tw-m-auto tw-pb-3 tw-pt-3\">\n <!-- New Password -->\n <div class=\"tw-m-auto tw-w-80\">\n <cide-ele-input id=\"new_password\" formControlName=\"new_password\"></cide-ele-input>\n </div>\n <!-- Confirm Password -->\n <div class=\"tw-m-auto tw-w-80\">\n <cide-ele-input id=\"confirm_password\" formControlName=\"confirm_password\"></cide-ele-input>\n </div> <!-- Forgot Password button -->\n <div class=\"tw-w-80 tw-m-auto tw-mt-3\">\n <button cideEleButton id=\"reset_password_button\" [loading]=\"setup_param.form_loading\" [disabled]=\"!resetPassswordForm.valid\">Reset Password</button>\n </div>\n </div>\n </form>\n </div>\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]", inputs: ["label", "variant", "size", "type", "shape", "elevation", "disabled", "id", "loading", "fullWidth", "leftIcon", "rightIcon", "customClass", "tooltip", "ariaLabel", "testId", "routerLink", "routerExtras", "preventDoubleClick", "animated"], outputs: ["btnClick", "doubleClick"] }] }); }
|
|
52
|
-
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CideAuthResetPasswordComponent, decorators: [{
|
|
54
|
-
type: Component,
|
|
55
|
-
args: [{ selector: 'cide-auth-reset-password', standalone: true, imports: [CideInputComponent, ReactiveFormsModule, CommonModule, CideEleButtonComponent], 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 <!-- 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\">Reset Password</div>\n <!-- Error Logger -->\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>\n \n <!-- section for controls -->\n <form [formGroup]=\"resetPassswordForm\" (ngSubmit)=\"onForgotPasssword()\" novalidate>\n <div class=\"tw-m-auto tw-pb-3 tw-pt-3\">\n <!-- New Password -->\n <div class=\"tw-m-auto tw-w-80\">\n <cide-ele-input id=\"new_password\" formControlName=\"new_password\"></cide-ele-input>\n </div>\n <!-- Confirm Password -->\n <div class=\"tw-m-auto tw-w-80\">\n <cide-ele-input id=\"confirm_password\" formControlName=\"confirm_password\"></cide-ele-input>\n </div> <!-- Forgot Password button -->\n <div class=\"tw-w-80 tw-m-auto tw-mt-3\">\n <button cideEleButton id=\"reset_password_button\" [loading]=\"setup_param.form_loading\" [disabled]=\"!resetPassswordForm.valid\">Reset Password</button>\n </div>\n </div>\n </form>\n </div>\n </div>" }]
|
|
56
|
-
}], ctorParameters: () => [] });
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xvdWQtaWRlLWF1dGgvc3JjL2xpYi9hdXRoL3Jlc2V0LXBhc3N3b3JkL3Jlc2V0LXBhc3N3b3JkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nsb3VkLWlkZS1hdXRoL3NyYy9saWIvYXV0aC9yZXNldC1wYXNzd29yZC9yZXNldC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQVVuRSxNQUFNLE9BQU8sOEJBQThCO0lBUXpDO1FBUE8sZ0JBQVcsR0FBRyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUV0QyxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUVqQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQzFDLFVBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFJN0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksU0FBUyxDQUFDO1lBQ3RDLGlCQUFpQixFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxxQkFBcUIsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUM7U0FDM0MsQ0FBMEYsQ0FBQztJQUM5RixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3JDLE1BQU0sY0FBYyxHQUFtQjtnQkFDckMsYUFBYSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ3pFLGFBQWEsRUFBRSxFQUFFO2dCQUNqQixpQkFBaUIsRUFBRTtvQkFDakIsbUJBQW1CLEVBQUUsRUFBRTtvQkFDdkIscUJBQXFCLEVBQUUsRUFBRTtvQkFDekIsaUJBQWlCLEVBQUUsSUFBSSxJQUFJLEVBQUU7aUJBQzlCO2FBQ0YsQ0FBQTtZQUNELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLFNBQVMsQ0FBQztnQkFDeEQsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7b0JBQ2pCLElBQUksUUFBUSxFQUFFLE9BQU8sS0FBSyxJQUFJLEVBQUUsQ0FBQzt3QkFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO3dCQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFBO29CQUMxQyxDQUFDO2dCQUNILENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO29CQUN0QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO29CQUMxQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO29CQUNsQixVQUFVLENBQUMsR0FBRyxFQUFFO3dCQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFBO29CQUN4QixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7Z0JBQ1YsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOzhHQTdDVSw4QkFBOEI7a0dBQTlCLDhCQUE4QixvRkNoQjNDLCt0REErQlEsMEREbkJJLGtCQUFrQix5YkFBRSxtQkFBbUIsNHJCQUFFLFlBQVksK0JBQUUsc0JBQXNCOzsyRkFJNUUsOEJBQThCO2tCQVAxQyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1AsQ0FBQyxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2lkZUVsZUJ1dHRvbkNvbXBvbmVudCwgQ2lkZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnY2xvdWQtaWRlLWVsZW1lbnQnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRm9ybUdyb3VwTW9kZWwgfSBmcm9tICcuLi9zaWduLWluL3NpZ24taW4uY29tcG9uZW50JztcbmltcG9ydCB7IENsb3VkSWRlQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jbG91ZC1pZGUtYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IE1SZXNldFBhc3N3b3JkIH0gZnJvbSAnY2xvdWQtaWRlLWxtcy1tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NpZGUtYXV0aC1yZXNldC1wYXNzd29yZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDaWRlSW5wdXRDb21wb25lbnQsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIENvbW1vbk1vZHVsZSwgQ2lkZUVsZUJ1dHRvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXNldC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9yZXNldC1wYXNzd29yZC5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBDaWRlQXV0aFJlc2V0UGFzc3dvcmRDb21wb25lbnQge1xuICBwdWJsaWMgc2V0dXBfcGFyYW0gPSB7IGZvcm1fbG9hZGluZzogZmFsc2UgfTtcbiAgcHVibGljIHJlc2V0UGFzc3N3b3JkRm9ybTogRm9ybUdyb3VwTW9kZWw8e3VzZXJfbmV3X3Bhc3N3b3JkOiBzdHJpbmcsIHVzZXJfY29uZmlybV9wYXNzd29yZDogc3RyaW5nfT47XG4gIHB1YmxpYyBlcnJvX21lc3NhZ2UgPSBcIlwiO1xuXG4gIHByaXZhdGUgYXV0aFNlcnZpY2UgPSBpbmplY3QoQ2xvdWRJZGVBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoUm91dGVyKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcblxuICAgIHRoaXMucmVzZXRQYXNzc3dvcmRGb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICB1c2VyX25ld19wYXNzd29yZDogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgIHVzZXJfY29uZmlybV9wYXNzd29yZDogbmV3IEZvcm1Db250cm9sKCcnKVxuICAgIH0pIGFzIHVua25vd24gYXMgRm9ybUdyb3VwTW9kZWw8e3VzZXJfbmV3X3Bhc3N3b3JkOiBzdHJpbmcsIHVzZXJfY29uZmlybV9wYXNzd29yZDogc3RyaW5nfT47XG4gIH1cblxuICBvbkZvcmdvdFBhc3Nzd29yZCgpIHtcbiAgICBpZiAodGhpcy5yZXNldFBhc3Nzd29yZEZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMuc2V0dXBfcGFyYW0uZm9ybV9sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHJlc2V0UGFzc3N3b3JkIDogTVJlc2V0UGFzc3dvcmQ9IHtcbiAgICAgICAgdXNlcl9wYXNzd29yZDogdGhpcy5yZXNldFBhc3Nzd29yZEZvcm0/LmdldCgndXNlcl9wYXNzd29yZCcpPy52YWx1ZSB8fCAnJyxcbiAgICAgICAgdXNlcl91c2VybmFtZTogXCJcIixcbiAgICAgICAgc3lsb2dfY29uZmlnX2RhdGE6IHtcbiAgICAgICAgICByZXNldF9wYXNzd29yZF9saW5rOiBcIlwiLFxuICAgICAgICAgIHJlc2V0X3Bhc3N3b3JkX3NlY3JldDogXCJcIixcbiAgICAgICAgICByZXF1ZXN0X3RpbWVzdGFtcDogbmV3IERhdGUoKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLnJlc2V0UGFzc3dvcmQocmVzZXRQYXNzc3dvcmQpPy5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2U/LnN1Y2Nlc3MgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0dXBfcGFyYW0uZm9ybV9sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlKFsnYXV0aCcsICdzaWduLWluJ10pXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR1cF9wYXJhbS5mb3JtX2xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmVycm9fbWVzc2FnZSA9IGVycm9yPy5lcnJvcj8ubWVzc2FnZTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcilcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZXJyb19tZXNzYWdlID0gXCJcIlxuICAgICAgICAgIH0sIDMwMDApXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuXG4iLCI8IS0tIGh0dHBzOi8vcGxheS50YWlsd2luZGNzcy5jb20vbGZPODVkcnBVeSAtLT5cbjwhLS0gTWFpbiBEaXYgT3V0ZXIgRGl2LS0+XG48ZGl2IGNsYXNzPVwiY2lkZS1mb250LXBvcHBpbnMgdHctZmxleCB0dy1taW4taC1zY3JlZW4gdHctdy1mdWxsIHR3LWJnLWdyYXktNTAgdHctcHktM1wiPlxuICAgIDwhLS0gRm9ycm0gV3JhcHBlciAtLT5cbiAgICA8ZGl2IGNsYXNzPVwidHctbS1hdXRvIHR3LXctOTYgdHctcm91bmRlZC0yeGwgdHctYmctd2hpdGUgdHctcHktNiB0dy1zaGFkb3cteGxcIj5cbiAgICAgIDwhLS0gTG9nbyBXcmFwcGVyIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInR3LW0tYXV0byB0dy1oLTMyIHR3LXctNjQgdHctdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2NvbnNvbGUuY2xvdWRpZGVzeXMuY29tL2Fzc2V0cy9DbG91ZCUyMElERSUyMExvZ28lMjBEYXJrLnBuZ1wiIGNsYXNzPVwidHctbS1hdXRvIHR3LWgtZnVsbFwiXG4gICAgICAgICAgYWx0PVwiQ2xvdWQgSURFIExvZ29cIiAvPlxuICAgICAgPC9kaXY+IDwhLS0gRW50aXR5IG5hbWUgaGVyZSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0dy1teS0yIHR3LXRleHQtY2VudGVyIHR3LXRleHQteGwgdHctZm9udC1zZW1pYm9sZFwiPlJlc2V0IFBhc3N3b3JkPC9kaXY+XG4gICAgICAgPCEtLSBFcnJvciBMb2dnZXIgLS0+XG4gICAgICAgPGRpdiBjbGFzcz1cInR3LXctZnVsbCB0dy1zZWxlY3Qtbm9uZSB0dy1weS0xIHR3LXRleHQtY2VudGVyIHR3LXRleHQtcmVkLTUwMCB0dy1oLTQgdHctdGV4dC1zbVwiPnt7ZXJyb19tZXNzYWdlfX08L2Rpdj5cbiAgICAgICAgXG4gICAgICA8IS0tIHNlY3Rpb24gZm9yIGNvbnRyb2xzIC0tPlxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJyZXNldFBhc3Nzd29yZEZvcm1cIiAobmdTdWJtaXQpPVwib25Gb3Jnb3RQYXNzc3dvcmQoKVwiIG5vdmFsaWRhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1tLWF1dG8gdHctcGItMyB0dy1wdC0zXCI+XG4gICAgICAgICAgPCEtLSBOZXcgUGFzc3dvcmQgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInR3LW0tYXV0byB0dy13LTgwXCI+XG4gICAgICAgICAgICA8Y2lkZS1lbGUtaW5wdXQgaWQ9XCJuZXdfcGFzc3dvcmRcIiBmb3JtQ29udHJvbE5hbWU9XCJuZXdfcGFzc3dvcmRcIj48L2NpZGUtZWxlLWlucHV0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICA8IS0tIENvbmZpcm0gUGFzc3dvcmQgLS0+XG4gICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1tLWF1dG8gdHctdy04MFwiPlxuICAgICAgICAgICAgPGNpZGUtZWxlLWlucHV0IGlkPVwiY29uZmlybV9wYXNzd29yZFwiIGZvcm1Db250cm9sTmFtZT1cImNvbmZpcm1fcGFzc3dvcmRcIj48L2NpZGUtZWxlLWlucHV0PlxuICAgICAgICAgIDwvZGl2PiAgICAgICAgICA8IS0tIEZvcmdvdCBQYXNzd29yZCBidXR0b24gLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInR3LXctODAgdHctbS1hdXRvIHR3LW10LTNcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2lkZUVsZUJ1dHRvbiBpZD1cInJlc2V0X3Bhc3N3b3JkX2J1dHRvblwiIFtsb2FkaW5nXT1cInNldHVwX3BhcmFtLmZvcm1fbG9hZGluZ1wiIFtkaXNhYmxlZF09XCIhcmVzZXRQYXNzc3dvcmRGb3JtLnZhbGlkXCI+UmVzZXQgUGFzc3dvcmQ8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9kaXY+XG4gIDwvZGl2PiJdfQ==
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import { Component, inject } from '@angular/core';
|
|
2
|
-
import { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
-
import { CommonModule } from '@angular/common';
|
|
4
|
-
import { Router, RouterLink, ActivatedRoute } from '@angular/router';
|
|
5
|
-
import { CloudIdeAuthService } from '../../cloud-ide-auth.service';
|
|
6
|
-
import { CideEleButtonComponent, CideInputComponent } from 'cloud-ide-element';
|
|
7
|
-
import { CideLytSharedWrapperComponent, AppStateHelperService } from 'cloud-ide-layout';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/forms";
|
|
10
|
-
export class CideAuthSignInComponent extends CideLytSharedWrapperComponent {
|
|
11
|
-
constructor() {
|
|
12
|
-
super();
|
|
13
|
-
this.shared_wrapper_setup_param = {
|
|
14
|
-
sypg_page_code: "auth_sign_in"
|
|
15
|
-
};
|
|
16
|
-
this.setup_param = { form_loading: false };
|
|
17
|
-
this.erro_message = "";
|
|
18
|
-
this.returnUrl = '/control-panel'; // Default return URL
|
|
19
|
-
this.router = inject(Router);
|
|
20
|
-
this.activatedRoute = inject(ActivatedRoute);
|
|
21
|
-
this.authService = inject(CloudIdeAuthService);
|
|
22
|
-
this.appStateService = inject(AppStateHelperService);
|
|
23
|
-
this.loginForm = new FormGroup({
|
|
24
|
-
custom_login_method: new FormControl('pass'),
|
|
25
|
-
user_username: new FormControl(''),
|
|
26
|
-
user_password: new FormControl(''),
|
|
27
|
-
mpin_pin: new FormControl(''),
|
|
28
|
-
stay_sign_in: new FormControl(true)
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
ngOnInit() {
|
|
32
|
-
super.ngOnInit();
|
|
33
|
-
// Get return URL from route parameters or default to '/control-panel'
|
|
34
|
-
this.returnUrl = this.activatedRoute.snapshot.queryParams['returnUrl'] || 'control-panel';
|
|
35
|
-
// If user is already authenticated, redirect to the return URL
|
|
36
|
-
if (this.authService.isAuthenticated() && !this.authService.isTokenExpired()) {
|
|
37
|
-
this.router.navigateByUrl(this.returnUrl);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
onSignIn() {
|
|
41
|
-
if (this.loginForm.valid) {
|
|
42
|
-
this.setup_param.form_loading = true;
|
|
43
|
-
this.authService.signIn(this.loginForm?.value)?.subscribe({
|
|
44
|
-
next: (response) => {
|
|
45
|
-
if (response?.success === true) {
|
|
46
|
-
// Store user data in auth service
|
|
47
|
-
this.authService.storeUserData(response?.data?.auth_user_mst || {});
|
|
48
|
-
// Synchronize AppStateService with the same user data
|
|
49
|
-
this.appStateService.setUser(response?.data?.auth_user_mst || null);
|
|
50
|
-
// Store active entity data
|
|
51
|
-
this.appStateService.setActiveEntity(response?.data?.core_system_entity || null);
|
|
52
|
-
// Store token through the service setter which saves to localStorage
|
|
53
|
-
this.authService.auth_token = (response?.token || '');
|
|
54
|
-
// Navigate to the return URL or control panel
|
|
55
|
-
this.router.navigateByUrl(this.returnUrl);
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
error: (error) => {
|
|
59
|
-
this.setup_param.form_loading = false;
|
|
60
|
-
this.erro_message = error?.error?.message;
|
|
61
|
-
console.log(error);
|
|
62
|
-
// Modern ES2022+ pattern: Use Promise-based delay
|
|
63
|
-
const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));
|
|
64
|
-
delay(3000).then(() => {
|
|
65
|
-
this.erro_message = "";
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CideAuthSignInComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
72
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CideAuthSignInComponent, isStandalone: true, selector: "cide-auth-sign-in", 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]", 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"] }] }); }
|
|
73
|
-
}
|
|
74
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CideAuthSignInComponent, decorators: [{
|
|
75
|
-
type: Component,
|
|
76
|
-
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>" }]
|
|
77
|
-
}], ctorParameters: () => [] });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1pbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbG91ZC1pZGUtYXV0aC9zcmMvbGliL2F1dGgvc2lnbi1pbi9zaWduLWluLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nsb3VkLWlkZS1hdXRoL3NyYy9saWIvYXV0aC9zaWduLWluL3NpZ24taW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0UsT0FBTyxFQUFFLDZCQUE2QixFQUFrQyxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFheEgsTUFBTSxPQUFPLHVCQUF3QixTQUFRLDZCQUE2QjtJQVl4RTtRQUVFLEtBQUssRUFBRSxDQUFDO1FBYk0sK0JBQTBCLEdBQTRDO1lBQ3BGLGNBQWMsRUFBRSxjQUFjO1NBQy9CLENBQUE7UUFDTSxnQkFBVyxHQUFHLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBRXRDLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGNBQVMsR0FBVyxnQkFBZ0IsQ0FBQyxDQUFDLHFCQUFxQjtRQUMzRCxXQUFNLEdBQUcsTUFBTSxDQUFD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Q0FBQyxDQUFDLENBQUM7b0JBQzlFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO3dCQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztvQkFDekIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOzhHQXZFVSx1QkFBdUI7a0dBQXZCLHVCQUF1QixvR0NwQnBDLHluRUF3Q00sMEREeEJNLGtCQUFrQix5YkFBRSxtQkFBbUIsNHJCQUFFLFlBQVksK0JBQUUsc0JBQXNCLGtYQUFFLFVBQVU7OzJGQUl4Rix1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGxvZ2luTWV0aG9kLCBNTG9naW4gfSBmcm9tICdjbG91ZC1pZGUtbG1zLW1vZGVsJztcbmltcG9ydCB7IFJvdXRlciwgUm91dGVyTGluaywgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ2xvdWRJZGVBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2Nsb3VkLWlkZS1hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2lkZUVsZUJ1dHRvbkNvbXBvbmVudCwgQ2lkZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnY2xvdWQtaWRlLWVsZW1lbnQnO1xuaW1wb3J0IHsgQ2lkZUx5dFNoYXJlZFdyYXBwZXJDb21wb25lbnQsIENpZGVMeXRTaGFyZWRXcmFwcGVyU2V0dXBQYXJhbSwgQXBwU3RhdGVIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnY2xvdWQtaWRlLWxheW91dCc7XG5cbmV4cG9ydCB0eXBlIEZvcm1Hcm91cE1vZGVsPFQ+ID0gRm9ybUdyb3VwPHtcbiAgW0sgaW4ga2V5b2YgVF06IEZvcm1Db250cm9sPFRbS10+XG59PlxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjaWRlLWF1dGgtc2lnbi1pbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDaWRlSW5wdXRDb21wb25lbnQsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIENvbW1vbk1vZHVsZSwgQ2lkZUVsZUJ1dHRvbkNvbXBvbmVudCwgUm91dGVyTGlua10sXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWduLWluLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3NpZ24taW4uY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgQ2lkZUF1dGhTaWduSW5Db21wb25lbnQgZXh0ZW5kcyBDaWRlTHl0U2hhcmVkV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBvdmVycmlkZSBzaGFyZWRfd3JhcHBlcl9zZXR1cF9wYXJhbTogUGFydGlhbDxDaWRlTHl0U2hhcmVkV3JhcHBlclNldHVwUGFyYW0+ID0ge1xuICAgIHN5cGdfcGFnZV9jb2RlOiBcImF1dGhfc2lnbl9pblwiXG4gIH1cbiAgcHVibGljIHNldHVwX3BhcmFtID0geyBmb3JtX2xvYWRpbmc6IGZhbHNlIH07XG4gIHB1YmxpYyBsb2dpbkZvcm06IEZvcm1Hcm91cE1vZGVsPE1Mb2dpbj47XG4gIHB1YmxpYyBlcnJvX21lc3NhZ2UgPSBcIlwiO1xuICBwcml2YXRlIHJldHVyblVybDogc3RyaW5nID0gJy9jb250cm9sLXBhbmVsJzsgLy8gRGVmYXVsdCByZXR1cm4gVVJMXG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgYWN0aXZhdGVkUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBwcml2YXRlIGF1dGhTZXJ2aWNlID0gaW5qZWN0KENsb3VkSWRlQXV0aFNlcnZpY2UpO1xuICBwcml2YXRlIGFwcFN0YXRlU2VydmljZSA9IGluamVjdChBcHBTdGF0ZUhlbHBlclNlcnZpY2UpO1xuICBjb25zdHJ1Y3RvcihcbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMubG9naW5Gb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICBjdXN0b21fbG9naW5fbWV0aG9kOiBuZXcgRm9ybUNvbnRyb2w8bG9naW5NZXRob2Q+KCdwYXNzJyksXG4gICAgICB1c2VyX3VzZXJuYW1lOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgICAgdXNlcl9wYXNzd29yZDogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgIG1waW5fcGluOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgICAgc3RheV9zaWduX2luOiBuZXcgRm9ybUNvbnRyb2wodHJ1ZSlcbiAgICB9KSBhcyB1bmtub3duIGFzIEZvcm1Hcm91cE1vZGVsPE1Mb2dpbj47XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgLy8gR2V0IHJldHVybiBVUkwgZnJvbSByb3V0ZSBwYXJhbWV0ZXJzIG9yIGRlZmF1bHQgdG8gJy9jb250cm9sLXBhbmVsJ1xuICAgIHRoaXMucmV0dXJuVXJsID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1sncmV0dXJuVXJsJ10gfHwgJ2NvbnRyb2wtcGFuZWwnO1xuXG4gICAgLy8gSWYgdXNlciBpcyBhbHJlYWR5IGF1dGhlbnRpY2F0ZWQsIHJlZGlyZWN0IHRvIHRoZSByZXR1cm4gVVJMXG4gICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuaXNBdXRoZW50aWNhdGVkKCkgJiYgIXRoaXMuYXV0aFNlcnZpY2UuaXNUb2tlbkV4cGlyZWQoKSkge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJldHVyblVybCk7XG4gICAgfVxuICB9XG5cbiAgb25TaWduSW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubG9naW5Gb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLnNldHVwX3BhcmFtLmZvcm1fbG9hZGluZyA9IHRydWU7XG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLnNpZ25Jbih0aGlzLmxvZ2luRm9ybT8udmFsdWUgYXMgTUxvZ2luKT8uc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlPy5zdWNjZXNzID09PSB0cnVlKSB7XG4gICAgICAgICAgICAvLyBTdG9yZSB1c2VyIGRhdGEgaW4gYXV0aCBzZXJ2aWNlXG4gICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnN0b3JlVXNlckRhdGEocmVzcG9uc2U/LmRhdGE/LmF1dGhfdXNlcl9tc3QgfHwge30pO1xuXG4gICAgICAgICAgICAvLyBTeW5jaHJvbml6ZSBBcHBTdGF0ZVNlcnZpY2Ugd2l0aCB0aGUgc2FtZSB1c2VyIGRhdGEgIFxuICAgICAgICAgICAgdGhpcy5hcHBTdGF0ZVNlcnZpY2Uuc2V0VXNlcihyZXNwb25zZT8uZGF0YT8uYXV0aF91c2VyX21zdCB8fCBudWxsKTtcblxuICAgICAgICAgICAgLy8gU3RvcmUgYWN0aXZlIGVudGl0eSBkYXRhXG4gICAgICAgICAgICB0aGlzLmFwcFN0YXRlU2VydmljZS5zZXRBY3RpdmVFbnRpdHkocmVzcG9uc2U/LmRhdGE/LmNvcmVfc3lzdGVtX2VudGl0eSB8fCBudWxsKTtcblxuICAgICAgICAgICAgLy8gU3RvcmUgdG9rZW4gdGhyb3VnaCB0aGUgc2VydmljZSBzZXR0ZXIgd2hpY2ggc2F2ZXMgdG8gbG9jYWxTdG9yYWdlXG4gICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhfdG9rZW4gPSAocmVzcG9uc2U/LnRva2VuIHx8ICcnKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLy8gTmF2aWdhdGUgdG8gdGhlIHJldHVybiBVUkwgb3IgY29udHJvbCBwYW5lbFxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnJldHVyblVybCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZXR1cF9wYXJhbS5mb3JtX2xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmVycm9fbWVzc2FnZSA9IGVycm9yPy5lcnJvcj8ubWVzc2FnZTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICAgICAgLy8gTW9kZXJuIEVTMjAyMisgcGF0dGVybjogVXNlIFByb21pc2UtYmFzZWQgZGVsYXlcbiAgICAgICAgICBjb25zdCBkZWxheSA9IChtczogbnVtYmVyKSA9PiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgbXMpKTtcbiAgICAgICAgICBkZWxheSgzMDAwKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZXJyb19tZXNzYWdlID0gXCJcIjtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59IiwiPCEtLSBodHRwczovL3BsYXkudGFpbHdpbmRjc3MuY29tL2xmTzg1ZHJwVXkgLS0+XHJcbjwhLS0gTWFpbiBEaXYgT3V0ZXIgRGl2LS0+XHJcbjxkaXYgY2xhc3M9XCJjaWRlLWZvbnQtcG9wcGlucyB0dy1mbGV4IHR3LW1pbi1oLXNjcmVlbiB0dy13LWZ1bGwgdHctYmctZ3JheS01MCB0dy1weS0zXCI+XHJcbiAgPCEtLSBMb2dpbiBGb3JybSBXcmFwcGVyIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJ0dy1tLWF1dG8gdHctdy05NiB0dy1yb3VuZGVkLTJ4bCB0dy1iZy13aGl0ZSB0dy1weS02IHR3LXNoYWRvdy14bFwiPlxyXG4gICAgPCEtLSBMb2dvIFdyYXBwZXIgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwidHctbS1hdXRvIHR3LWgtMzIgdHctdy02NCB0dy10ZXh0LWNlbnRlclwiPlxyXG4gICAgICA8aW1nIHNyYz1cImh0dHBzOi8vY29uc29sZS5jbG91ZGlkZXN5cy5jb20vYXNzZXRzL0Nsb3VkJTIwSURFJTIwTG9nbyUyMERhcmsucG5nXCIgY2xhc3M9XCJ0dy1tLWF1dG8gdHctaC1mdWxsXCJcclxuICAgICAgICBhbHQ9XCJDbG91ZCBJREUgTG9nb1wiIC8+XHJcbiAgICA8L2Rpdj4gPCEtLSBFbnRpdHkgbmFtZSBoZXJlIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInR3LW15LTIgdHctdGV4dC1jZW50ZXIgdHctdGV4dC14bCB0dy1mb250LXNlbWlib2xkXCI+U2lnbkluIHRvIENsb3VkSURFIHN5czwvZGl2PlxyXG4gICAgIDwhLS0gRXJyb3IgTG9nZ2VyIC0tPlxyXG4gICAgIDxkaXYgY2xhc3M9XCJ0dy13LWZ1bGwgdHctc2VsZWN0LW5vbmUgdHctcHktMSB0dy10ZXh0LWNlbnRlciB0dy10ZXh0LXJlZC01MDAgdHctaC00IHR3LXRleHQtc21cIj57e2Vycm9fbWVzc2FnZX19PC9kaXY+XHJcbiAgICAgIFxyXG4gICAgPCEtLSBzZWN0aW9uIGZvciBjb250cm9scyAtLT5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwibG9naW5Gb3JtXCIgKG5nU3VibWl0KT1cIm9uU2lnbkluKClcIiBub3ZhbGlkYXRlPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHctbS1hdXRvIHR3LXBiLTMgdHctcHQtM1wiPlxyXG4gICAgICAgIDwhLS0gVXNlcm5hbWUgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInR3LW0tYXV0byB0dy13LTgwXCI+XHJcbiAgICAgICAgICA8Y2lkZS1lbGUtaW5wdXQgaWQ9XCJ1c2VyX3VzZXJuYW1lXCIgZm9ybUNvbnRyb2xOYW1lPVwidXNlcl91c2VybmFtZVwiPjwvY2lkZS1lbGUtaW5wdXQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSBQYXNzd29yZCAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidHctbS1hdXRvIHR3LW10LTQgdHctdy04MFwiPlxyXG4gICAgICAgICAgPGNpZGUtZWxlLWlucHV0IGlkPVwidXNlcl9wYXNzd29yZF9tcGluXCIgZm9ybUNvbnRyb2xOYW1lPVwidXNlcl9wYXNzd29yZFwiPjwvY2lkZS1lbGUtaW5wdXQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSBGb3Jnb3QgcGFzc3dvcmQgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInR3LW0tYXV0byB0dy1tdC0zIHR3LWZsZXggdHctdy04MCB0dy1qdXN0aWZ5LWJldHdlZW5cIj5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxjaWRlLWVsZS1pbnB1dCBpZD1cInN0YXlfc2lnbl9pblwiIGZvcm1Db250cm9sTmFtZT1cInN0YXlfc2lnbl9pblwiPjwvY2lkZS1lbGUtaW5wdXQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxhIHJvdXRlckxpbms9XCIvYXV0aC9mb3Jnb3QtcGFzc3dvcmRcIiBjbGFzcz1cInR3LXRleHQtYmx1ZS03MDBcIj5Gb3Jnb3QgUGFzc3dvcmQ/PC9hPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+ICAgICAgICA8IS0tIFNpZ24gaW4gYnV0dG9uIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0dy13LTgwIHR3LW0tYXV0byB0dy1tdC0zXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cInR3LXctZnVsbFwiIGNpZGVFbGVCdXR0b24gaWQ9XCJzdGF5X3Npbl9idXR0b25cIiBbbG9hZGluZ109XCJzZXR1cF9wYXJhbS5mb3JtX2xvYWRpbmdcIiBbZGlzYWJsZWRdPVwiIWxvZ2luRm9ybS52YWxpZFwiPmE8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { RouterOutlet } from '@angular/router';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class CloudIdeAuthComponent {
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CloudIdeAuthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CloudIdeAuthComponent, isStandalone: true, selector: "cide-auth-wrapper", ngImport: i0, template: `
|
|
7
|
-
<router-outlet></router-outlet>
|
|
8
|
-
`, isInline: true, styles: [""], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CloudIdeAuthComponent, decorators: [{
|
|
11
|
-
type: Component,
|
|
12
|
-
args: [{ selector: 'cide-auth-wrapper', standalone: true, imports: [RouterOutlet], template: `
|
|
13
|
-
<router-outlet></router-outlet>
|
|
14
|
-
` }]
|
|
15
|
-
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtaWRlLWF1dGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xvdWQtaWRlLWF1dGgvc3JjL2xpYi9jbG91ZC1pZGUtYXV0aC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBVy9DLE1BQU0sT0FBTyxxQkFBcUI7OEdBQXJCLHFCQUFxQjtrR0FBckIscUJBQXFCLDZFQUx0Qjs7R0FFVCwwRUFIUyxZQUFZOzsyRkFNWCxxQkFBcUI7a0JBVGpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiOztHQUVUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NpZGUtYXV0aC13cmFwcGVyJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtSb3V0ZXJPdXRsZXRdLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XHJcbiAgYCxcclxuICBzdHlsZXM6IGBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbG91ZElkZUF1dGhDb21wb25lbnQge1xyXG5cclxufVxyXG4iXX0=
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export const authRoutes = {
|
|
2
|
-
path: "auth",
|
|
3
|
-
loadComponent: () => import('./cloud-ide-auth.component').then(c => c.CloudIdeAuthComponent),
|
|
4
|
-
children: [
|
|
5
|
-
{
|
|
6
|
-
path: "",
|
|
7
|
-
pathMatch: 'full',
|
|
8
|
-
redirectTo: 'sign-in'
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
path: "sign-in",
|
|
12
|
-
loadComponent: () => import('./auth/sign-in/sign-in.component').then(c => c.CideAuthSignInComponent)
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
path: "forgot-password",
|
|
16
|
-
loadComponent: () => import('./auth/forgot-password/forgot-password.component').then(c => c.CideAuthForgotPasswordComponent)
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
path: "reset-password/:rout_token",
|
|
20
|
-
loadComponent: () => import('./auth/reset-password/reset-password.component').then(c => c.CideAuthResetPasswordComponent)
|
|
21
|
-
}
|
|
22
|
-
]
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtaWRlLWF1dGgucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xvdWQtaWRlLWF1dGgvc3JjL2xpYi9jbG91ZC1pZGUtYXV0aC5yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUN2QjtJQUNJLElBQUksRUFBRSxNQUFNO0lBQ1osYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQztJQUM1RixRQUFRLEVBQUU7UUFDTjtZQUNJLElBQUksRUFBRSxFQUFFO1lBQ1IsU0FBUyxFQUFFLE1BQU07WUFDakIsVUFBVSxFQUFFLFNBQVM7U0FDeEI7UUFDRDtZQUNJLElBQUksRUFBRSxTQUFTO1lBQ2YsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQztTQUN2RztRQUNEO1lBQ0ksSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGtEQUFrRCxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLCtCQUErQixDQUFDO1NBQy9IO1FBQ0Q7WUFDSSxJQUFJLEVBQUUsNEJBQTRCO1lBQ2xDLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsZ0RBQWdELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUM7U0FDNUg7S0FDSjtDQUNKLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5leHBvcnQgY29uc3QgYXV0aFJvdXRlczogUm91dGUgPVxyXG57XHJcbiAgICBwYXRoOiBcImF1dGhcIixcclxuICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9jbG91ZC1pZGUtYXV0aC5jb21wb25lbnQnKS50aGVuKGMgPT4gYy5DbG91ZElkZUF1dGhDb21wb25lbnQpLFxyXG4gICAgY2hpbGRyZW46IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHBhdGg6IFwiXCIsXHJcbiAgICAgICAgICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxyXG4gICAgICAgICAgICByZWRpcmVjdFRvOiAnc2lnbi1pbidcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcGF0aDogXCJzaWduLWluXCIsXHJcbiAgICAgICAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9hdXRoL3NpZ24taW4vc2lnbi1pbi5jb21wb25lbnQnKS50aGVuKGMgPT4gYy5DaWRlQXV0aFNpZ25JbkNvbXBvbmVudClcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcGF0aDogXCJmb3Jnb3QtcGFzc3dvcmRcIixcclxuICAgICAgICAgICAgbG9hZENvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL2F1dGgvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQnKS50aGVuKGMgPT4gYy5DaWRlQXV0aEZvcmdvdFBhc3N3b3JkQ29tcG9uZW50KVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwYXRoOiBcInJlc2V0LXBhc3N3b3JkLzpyb3V0X3Rva2VuXCIsXHJcbiAgICAgICAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9hdXRoL3Jlc2V0LXBhc3N3b3JkL3Jlc2V0LXBhc3N3b3JkLmNvbXBvbmVudCcpLnRoZW4oYyA9PiBjLkNpZGVBdXRoUmVzZXRQYXNzd29yZENvbXBvbmVudClcclxuICAgICAgICB9XHJcbiAgICBdXHJcbn1cclxuIl19
|