From c47778e87c7f2bedbea3d0f57fff6c71066813ab Mon Sep 17 00:00:00 2001 From: Chandan-walker Date: Wed, 25 Feb 2026 17:46:45 +0530 Subject: [PATCH 1/2] version 2 login script changes --- .../register/register.component.html | 53 ++++- .../register/register.component.scss | 152 ++++++++++++++ .../component/register/register.component.ts | 56 +++++ .../send-otp-center.component.html | 110 ++++++++-- .../send-otp-center.component.scss | 150 +++++++++++++- .../send-otp-center.component.ts | 63 ++++++ .../app/otp/send-otp/send-otp.component.html | 9 +- .../app/otp/send-otp/send-otp.component.ts | 191 +++++++++++++++--- apps/proxy-auth/src/otp-global.scss | 4 + 9 files changed, 729 insertions(+), 59 deletions(-) diff --git a/apps/proxy-auth/src/app/otp/component/register/register.component.html b/apps/proxy-auth/src/app/otp/component/register/register.component.html index cf7ec272..77950335 100644 --- a/apps/proxy-auth/src/app/otp/component/register/register.component.html +++ b/apps/proxy-auth/src/app/otp/component/register/register.component.html @@ -1,11 +1,11 @@
-
Register
+
Register
@@ -17,8 +17,11 @@ proxyMarkAllAsTouched [buttonRef]="submitBtn" (valid)="submit()" + [class.custom-radius]="!!borderRadiusValue" + [style.--field-border-radius]="borderRadiusValue || '4px'" + [class.dark-theme-login]="isDarkTheme" > -

User Details

+

User Details

{{ (selectGetOtpInProcess$ | async) ? 'Sending...' : 'Get OTP' }} @@ -170,12 +184,18 @@ }" >
-
+
Note: Password should contain atleast one Capital Letter, one Small Letter, one Digit and one Symbol
- -
Company Details (Optional)
+ +
+ Company Details (Optional) +
- +
diff --git a/apps/proxy-auth/src/app/otp/component/register/register.component.scss b/apps/proxy-auth/src/app/otp/component/register/register.component.scss index bf767ba2..6e2e8013 100644 --- a/apps/proxy-auth/src/app/otp/component/register/register.component.scss +++ b/apps/proxy-auth/src/app/otp/component/register/register.component.scss @@ -263,3 +263,155 @@ input[matinput]::-webkit-inner-spin-button { .verify-otp-link { font-size: 12px; } + +.form-wrapper.custom-radius { + --mdc-outlined-text-field-container-shape: var(--field-border-radius, 4px); + --mdc-filled-text-field-container-shape: var(--field-border-radius, 4px); + --mat-form-field-container-shape: var(--field-border-radius, 4px); + --mdc-shape-small: var(--field-border-radius, 4px); +} + +:host ::ng-deep .form-wrapper.custom-radius { + .mat-mdc-text-field-wrapper, + .mdc-text-field--outlined { + border-radius: var(--field-border-radius, 4px) !important; + } + + .mdc-notched-outline__leading { + border-radius: var(--field-border-radius, 4px) 0 0 var(--field-border-radius, 4px) !important; + width: var(--field-border-radius, 4px) !important; + } + + .mdc-notched-outline__trailing { + border-radius: 0 var(--field-border-radius, 4px) var(--field-border-radius, 4px) 0 !important; + } + + .mat-form-field-outline-start { + border-radius: var(--field-border-radius, 4px) 0 0 var(--field-border-radius, 4px) !important; + width: var(--field-border-radius, 4px) !important; + } + + .mat-form-field-outline-end { + border-radius: 0 var(--field-border-radius, 4px) var(--field-border-radius, 4px) 0 !important; + } + + .mat-form-field-wrapper, + .mat-form-field-flex, + .mat-mdc-form-field-flex { + border-radius: var(--field-border-radius, 4px) !important; + } + + .mat-mdc-raised-button, + .mat-mdc-flat-button, + .mat-mdc-unelevated-button, + .mat-raised-button, + .mat-flat-button { + border-radius: var(--field-border-radius, 4px) !important; + } + + .register-user-details { + .iti { + border-radius: var(--field-border-radius, 4px) !important; + } + + input[type='tel'] { + border-radius: var(--field-border-radius, 4px) !important; + } + } +} +.register-user-details { + border-radius: var(--field-border-radius, 4px) !important; +} + +// Dark theme styles +.dark-text { + color: #ffffff !important; + + a { + color: #ffffff !important; + } +} + +.dark-divider { + border-top-color: #ffffff !important; +} + +:host ::ng-deep .form-wrapper.dark-theme-login { + .mat-mdc-text-field-wrapper, + .mdc-text-field--outlined { + background-color: transparent !important; + } + + .mdc-notched-outline__leading, + .mdc-notched-outline__notch, + .mdc-notched-outline__trailing { + border-color: #ffffff !important; + } + + .mat-mdc-form-field-flex { + background-color: transparent !important; + } + + .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-floating-label, + .mat-mdc-form-field .mdc-floating-label { + color: #ffffff !important; + } + + .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-text-field__input, + .mat-mdc-input-element { + color: #ffffff !important; + } + + // Legacy Material — use `color` on outline containers so children + // inherit via `currentColor`, preserving the gap's transparent top border + .mat-form-field-appearance-outline { + .mat-form-field-outline, + .mat-form-field-outline-thick { + color: #ffffff !important; + } + + &.mat-form-field-invalid { + .mat-form-field-outline, + .mat-form-field-outline-thick { + color: red !important; + } + } + } + + .mat-form-field-flex { + background-color: transparent !important; + } + + .mat-input-element { + color: #ffffff !important; + } + + .mat-form-field-label { + color: #ffffff !important; + } + + .register-user-details { + input[type='tel'], + [id^='init-contact'] { + border-color: #ffffff !important; + color: #ffffff !important; + background-color: #616161 !important; + + &::placeholder { + color: rgba(255, 255, 255, 0.7) !important; + } + } + + .iti__selected-flag { + background-color: #616161 !important; + } + + .iti__arrow { + border-top-color: #ffffff; + } + + .iti__dial-code { + color: #ffffff !important; + } + } +} diff --git a/apps/proxy-auth/src/app/otp/component/register/register.component.ts b/apps/proxy-auth/src/app/otp/component/register/register.component.ts index 72831308..54e01c6e 100644 --- a/apps/proxy-auth/src/app/otp/component/register/register.component.ts +++ b/apps/proxy-auth/src/app/otp/component/register/register.component.ts @@ -34,6 +34,7 @@ import { selectVerifyOtpV2InProcess, selectVerifyOtpV2Success, selectApiErrorResponse, + selectWidgetTheme, } from '../../store/selectors'; import { IGetOtpRes } from '../../model/otp'; @@ -49,6 +50,8 @@ export class RegisterComponent extends BaseComponent implements AfterViewInit, O @Input() public registrationViaLogin: boolean; @Input() public prefillDetails; @Input() public showCompanyDetails: boolean = true; + @Input() public version: string = 'v1'; + @Input() public theme: string; public showPassword: boolean = false; public showConfirmPassword: boolean = false; @Output() public togglePopUp: EventEmitter = new EventEmitter(); @@ -121,6 +124,9 @@ export class RegisterComponent extends BaseComponent implements AfterViewInit, O public lastSentMobileNumber: string = ''; private timerSubscription: Subscription; + public selectWidgetTheme$: Observable; + public uiPreferences: any = {}; + @ViewChild('otp1', { static: false }) otp1Ref: ElementRef; @ViewChild('otp2', { static: false }) otp2Ref: ElementRef; @ViewChild('otp3', { static: false }) otp3Ref: ElementRef; @@ -168,9 +174,17 @@ export class RegisterComponent extends BaseComponent implements AfterViewInit, O distinctUntilChanged(_.isEqual), takeUntil(this.destroy$) ); + this.selectWidgetTheme$ = this.store.pipe( + select(selectWidgetTheme), + distinctUntilChanged(_.isEqual), + takeUntil(this.destroy$) + ); } ngOnInit(): void { + this.selectWidgetTheme$.pipe(takeUntil(this.destroy$)).subscribe((theme) => { + this.uiPreferences = theme?.ui_preferences || {}; + }); this.registrationForm .get('user.mobile') .valueChanges.pipe(takeUntil(this.destroy$)) @@ -601,4 +615,46 @@ export class RegisterComponent extends BaseComponent implements AfterViewInit, O this.otpForm.reset(); this.cdr.detectChanges(); } + + public get primaryColor(): string | null { + if (this.version !== 'v2') { + return null; + } + const isDark = this.theme === 'dark'; + return isDark + ? this.uiPreferences?.dark_theme_primary_color || null + : this.uiPreferences?.light_theme_primary_color || null; + } + + public get borderRadiusValue(): string | null { + if (this.version !== 'v2') { + return null; + } + switch (this.uiPreferences?.border_radius) { + case 'none': + return '0'; + case 'small': + return '4px'; + case 'medium': + return '8px'; + case 'large': + return '12px'; + default: + return null; + } + } + + public get buttonColor(): string | null { + if (this.version !== 'v2') return null; + return this.uiPreferences?.button_color || null; + } + + public get buttonTextColor(): string | null { + if (this.version !== 'v2') return null; + return this.uiPreferences?.button_text_color || null; + } + + public get isDarkTheme(): boolean { + return this.theme === 'dark'; + } } diff --git a/apps/proxy-auth/src/app/otp/component/send-otp-center/send-otp-center.component.html b/apps/proxy-auth/src/app/otp/component/send-otp-center/send-otp-center.component.html index bbed09e7..25169fc6 100644 --- a/apps/proxy-auth/src/app/otp/component/send-otp-center/send-otp-center.component.html +++ b/apps/proxy-auth/src/app/otp/component/send-otp-center/send-otp-center.component.html @@ -3,13 +3,13 @@
- + -
Login
+ +
+ Logo +
+
+
{{ titleText }}
@@ -60,7 +70,7 @@ - @@ -116,7 +126,9 @@ >
- OR + Or continue with +
@@ -129,7 +141,14 @@ -