@rolatech/angular-account 20.2.6-beta.1 → 20.2.7-beta.2

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.
Files changed (35) hide show
  1. package/fesm2022/{rolatech-angular-account-address-add.component-CbT9H3P_.mjs → rolatech-angular-account-address-add.component-BEgWg_no.mjs} +4 -4
  2. package/fesm2022/{rolatech-angular-account-address-add.component-CbT9H3P_.mjs.map → rolatech-angular-account-address-add.component-BEgWg_no.mjs.map} +1 -1
  3. package/fesm2022/{rolatech-angular-account-address-billing.component-Dhe_S6nC.mjs → rolatech-angular-account-address-billing.component-Ctvgeea9.mjs} +4 -4
  4. package/fesm2022/{rolatech-angular-account-address-billing.component-Dhe_S6nC.mjs.map → rolatech-angular-account-address-billing.component-Ctvgeea9.mjs.map} +1 -1
  5. package/fesm2022/{rolatech-angular-account-address-detail.component-BOhVYiNE.mjs → rolatech-angular-account-address-detail.component-78h4m9-h.mjs} +4 -4
  6. package/fesm2022/{rolatech-angular-account-address-detail.component-BOhVYiNE.mjs.map → rolatech-angular-account-address-detail.component-78h4m9-h.mjs.map} +1 -1
  7. package/fesm2022/{rolatech-angular-account-address-home.component-BSZNuGEJ.mjs → rolatech-angular-account-address-home.component-DfEsaB1k.mjs} +4 -4
  8. package/fesm2022/{rolatech-angular-account-address-home.component-BSZNuGEJ.mjs.map → rolatech-angular-account-address-home.component-DfEsaB1k.mjs.map} +1 -1
  9. package/fesm2022/{rolatech-angular-account-address-shipping.component-LJGkiIt4.mjs → rolatech-angular-account-address-shipping.component-mkK154C4.mjs} +4 -4
  10. package/fesm2022/{rolatech-angular-account-address-shipping.component-LJGkiIt4.mjs.map → rolatech-angular-account-address-shipping.component-mkK154C4.mjs.map} +1 -1
  11. package/fesm2022/{rolatech-angular-account-address-work.component-IX2zTWxc.mjs → rolatech-angular-account-address-work.component-BtMlK__N.mjs} +4 -4
  12. package/fesm2022/{rolatech-angular-account-address-work.component-IX2zTWxc.mjs.map → rolatech-angular-account-address-work.component-BtMlK__N.mjs.map} +1 -1
  13. package/fesm2022/{rolatech-angular-account-address.routes-fnshCuFj.mjs → rolatech-angular-account-address.routes-D5E3MO2k.mjs} +7 -7
  14. package/fesm2022/{rolatech-angular-account-address.routes-fnshCuFj.mjs.map → rolatech-angular-account-address.routes-D5E3MO2k.mjs.map} +1 -1
  15. package/fesm2022/{rolatech-angular-account-email-verification.component-Bsy6ZdCU.mjs → rolatech-angular-account-email-verification.component-UzTBlGxH.mjs} +4 -4
  16. package/fesm2022/{rolatech-angular-account-email-verification.component-Bsy6ZdCU.mjs.map → rolatech-angular-account-email-verification.component-UzTBlGxH.mjs.map} +1 -1
  17. package/fesm2022/{rolatech-angular-account-email.component-cAEhB6ZQ.mjs → rolatech-angular-account-email.component-BIJH10kH.mjs} +4 -4
  18. package/fesm2022/{rolatech-angular-account-email.component-cAEhB6ZQ.mjs.map → rolatech-angular-account-email.component-BIJH10kH.mjs.map} +1 -1
  19. package/fesm2022/{rolatech-angular-account-gender.component-C-0x9sI0.mjs → rolatech-angular-account-gender.component-DfCw15Dj.mjs} +4 -4
  20. package/fesm2022/{rolatech-angular-account-gender.component-C-0x9sI0.mjs.map → rolatech-angular-account-gender.component-DfCw15Dj.mjs.map} +1 -1
  21. package/fesm2022/{rolatech-angular-account-home.component-B1YNtE-j.mjs → rolatech-angular-account-home.component-CsNpoHq_.mjs} +4 -4
  22. package/fesm2022/{rolatech-angular-account-home.component-B1YNtE-j.mjs.map → rolatech-angular-account-home.component-CsNpoHq_.mjs.map} +1 -1
  23. package/fesm2022/{rolatech-angular-account-info.component-1s2Ab1r_.mjs → rolatech-angular-account-info.component-BBNpSZeR.mjs} +7 -7
  24. package/fesm2022/{rolatech-angular-account-info.component-1s2Ab1r_.mjs.map → rolatech-angular-account-info.component-BBNpSZeR.mjs.map} +1 -1
  25. package/fesm2022/{rolatech-angular-account-phone.component-BCi_YLwF.mjs → rolatech-angular-account-phone.component-DdGvrN0V.mjs} +4 -4
  26. package/fesm2022/{rolatech-angular-account-phone.component-BCi_YLwF.mjs.map → rolatech-angular-account-phone.component-DdGvrN0V.mjs.map} +1 -1
  27. package/fesm2022/{rolatech-angular-account-profile.component-CWvjxZ94.mjs → rolatech-angular-account-profile.component-DmGkFTUx.mjs} +4 -4
  28. package/fesm2022/{rolatech-angular-account-profile.component-CWvjxZ94.mjs.map → rolatech-angular-account-profile.component-DmGkFTUx.mjs.map} +1 -1
  29. package/fesm2022/{rolatech-angular-account-security.routes-AVoRPb_g.mjs → rolatech-angular-account-security.routes-FUsaVReF.mjs} +10 -10
  30. package/fesm2022/{rolatech-angular-account-security.routes-AVoRPb_g.mjs.map → rolatech-angular-account-security.routes-FUsaVReF.mjs.map} +1 -1
  31. package/fesm2022/{rolatech-angular-account-username.component-B2ZnicXO.mjs → rolatech-angular-account-username.component-D8La3yTd.mjs} +4 -4
  32. package/fesm2022/{rolatech-angular-account-username.component-B2ZnicXO.mjs.map → rolatech-angular-account-username.component-D8La3yTd.mjs.map} +1 -1
  33. package/fesm2022/rolatech-angular-account.mjs +32 -32
  34. package/fesm2022/rolatech-angular-account.mjs.map +1 -1
  35. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"rolatech-angular-account.mjs","sources":["../../../../packages/angular-account/src/lib/components/topbar-login/topbar-login.component.ts","../../../../packages/angular-account/src/lib/components/topbar-login/topbar-login.component.html","../../../../packages/angular-account/src/lib/components/logout/logout.component.ts","../../../../packages/angular-account/src/lib/components/logout/logout.component.html","../../../../packages/angular-account/src/lib/services/wechat-login.service.ts","../../../../packages/angular-account/src/lib/pages/accounts/signin/signin.component.ts","../../../../packages/angular-account/src/lib/pages/accounts/signin/signin.component.html","../../../../packages/angular-account/src/lib/pages/accounts/signup/signup.component.ts","../../../../packages/angular-account/src/lib/pages/accounts/signup/signup.component.html","../../../../packages/angular-account/src/lib/pages/accounts/forgot/forgot.ts","../../../../packages/angular-account/src/lib/pages/accounts/forgot/forgot.html","../../../../packages/angular-account/src/lib/pages/accounts/password-reset/password-reset.ts","../../../../packages/angular-account/src/lib/pages/accounts/password-reset/password-reset.html","../../../../packages/angular-account/src/lib/account.routes.ts","../../../../packages/angular-account/src/lib/myaccount.routes.ts","../../../../packages/angular-account/src/provider.ts","../../../../packages/angular-account/src/rolatech-angular-account.ts"],"sourcesContent":["import { Component, OnDestroy, OnInit, PLATFORM_ID, ViewEncapsulation, inject, input } from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n NavigationEnd,\n Router,\n Event,\n NavigationStart,\n NavigationCancel,\n NavigationError,\n ActivatedRoute,\n Route,\n} from '@angular/router';\nimport { filter, Subscription } from 'rxjs';\ntype NavigationEvent = NavigationStart | NavigationEnd | NavigationCancel | NavigationError;\n\n@Component({\n selector: 'rolatech-account-topbar-login',\n imports: [CommonModule, MatButtonModule],\n templateUrl: './topbar-login.component.html',\n styleUrl: './topbar-login.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class TopbarLoginComponent implements OnInit, OnDestroy {\n environment = inject(APP_CONFIG);\n platformId = inject(PLATFORM_ID);\n route = inject(ActivatedRoute);\n router = inject(Router);\n private routerSubscription: Subscription | undefined;\n\n service = input('www');\n signinUrl = '';\n signupUrl = this.environment.accountsUrl + '/signup';\n logoutUrl = this.environment.accountsUrl + `/logout?service=${this.service()}`;\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.signinUrl = `${this.environment.accountsUrl}/signin?continue=` + window.location.href;\n this.logoutUrl = this.environment.accountsUrl + `/logout?service=${this.service()}&continue=` + window.location.origin;\n }\n\n this.routerSubscription = this.router.events\n .pipe(filter((event: Event): event is NavigationEvent => event instanceof NavigationStart))\n .subscribe((event) => {\n this.signinUrl = `${this.environment.accountsUrl}/signin?continue=` + window.location.origin + event.url;\n\n // this.checkRouteGuard(event.url);\n\n const currentUrl = this.router.url; // Get the current URL\n const matchedRoute = this.findRouteConfig(currentUrl);\n\n if (matchedRoute) {\n console.log('Matched Route Config:', matchedRoute);\n } else {\n console.log('No matching route found.');\n }\n });\n }\n ngOnDestroy() {\n this.routerSubscription?.unsubscribe();\n }\n // checkRouteGuard(url: string): void {\n // // const route = this.router.config.find((r) => r.path === routePath);\n // const route = this.router.config.find((r: any) => this.matchRoute(url, r.path));\n\n // if (route) {\n // if (route.canActivate && route.canActivate.length > 0) {\n // console.log(`Route \"${url}\" has canActivate guards:`, route.canActivate);\n // } else {\n // console.log(`Route \"${url}\" does not have canActivate guards.`);\n // }\n // } else {\n // console.log(`Route \"${url}\" not found.`);\n // }\n // }\n // matchRoute(url: string, routePath: string): boolean {\n // // Strip leading/trailing slashes from URL and routePath and compare\n // return url.replace(/^\\/|\\/$/g, '') === routePath.replace(/^\\/|\\/$/g, '');\n // }\n findRouteConfig(url: string): Route | undefined {\n return this.router.config.find((route) => this.matchRoute(route, url));\n }\n\n // Helper function to check if a route matches the current URL\n matchRoute(route: Route, url: string): boolean {\n const path = route.path?.split('/').join('');\n const urlSegment = url.split('/').join('');\n return path === urlSegment;\n }\n}\n","<div class=\"flex items-center\">\n <a mat-stroked-button class=\"mr-2 max-h-9 md:max-h-10\" [href]=\"signinUrl\"><span i18n>Sign in</span></a>\n <a mat-flat-button class=\"max-h-9 md:max-h-10\" [href]=\"signupUrl\"><span i18n>Sign up</span></a>\n</div>\n","import { isPlatformBrowser } from '@angular/common';\nimport { Component, inject, OnInit, PLATFORM_ID } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AuthService } from '@rolatech/angular-auth';\nimport { APP_CONFIG, AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule } from '@rolatech/angular-components';\nimport { map, take } from 'rxjs';\n\n@Component({\n imports: [AngularCommonModule, AngularComponentsModule],\n selector: 'rolatech-account-logout',\n templateUrl: './logout.component.html',\n styleUrls: ['./logout.component.scss'],\n})\nexport class LogoutComponent implements OnInit {\n service = '';\n continue = '';\n environment = inject(APP_CONFIG);\n platformId = inject(PLATFORM_ID);\n route = inject(ActivatedRoute);\n router = inject(Router);\n authService = inject(AuthService);\n snackBar = inject(MatSnackBar);\n\n ngOnInit(): void {\n this.service = this.route.snapshot.queryParams['service'] || 'www';\n this.continue = this.route.snapshot.queryParams['continue'] || '/';\n if (isPlatformBrowser(this.platformId)) {\n this.logout();\n }\n }\n logout() {\n this.authService.logout().subscribe({\n next: (res) => {\n // this.router.navigate(['/signin'], {\n // queryParams: { continue: this.continue },\n // });\n // this.router.navigate([this.continue]);\n // this.router.navigateByUrl(this.continue);\n window.location.href = this.continue;\n },\n error: (error) => {\n this.snackBar.open(error.message);\n },\n });\n }\n}\n","<p>Please waiting...</p>\n","import { Directive, EventEmitter, Injectable, output } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\n@Directive()\nexport class WeChatLoginService {\n onWeChatLogin = new EventEmitter<any>();\n\n constructor() {}\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Component, effect, HostListener, inject, OnInit, PLATFORM_ID, signal, ViewEncapsulation } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { SafeResourceUrl, DomSanitizer } from '@angular/platform-browser';\nimport { AngularCommonModule, APP_CONFIG } from '@rolatech/angular-common';\nimport { AngularComponentsModule, BaseComponent, TabComponent, TabsComponent } from '@rolatech/angular-components';\nimport { AUTH_METHODS, AuthMethod, AuthService, AuthUserService } from '@rolatech/angular-auth';\nimport { WeChatLoginService } from '../../../services/wechat-login.service';\n\n@Component({\n imports: [AngularCommonModule, AngularComponentsModule, TabsComponent, TabComponent],\n selector: 'rolatech-account-signin',\n templateUrl: './signin.component.html',\n styleUrls: ['./signin.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SigninComponent extends BaseComponent implements OnInit {\n environment = inject(APP_CONFIG);\n authMethods = inject(AUTH_METHODS);\n hasPassword = this.authMethods.includes(AuthMethod.Password);\n hasOTP = this.authMethods.includes(AuthMethod.OTP);\n hasWeChat = this.authMethods.includes(AuthMethod.WeChat);\n hasGoogle = this.authMethods.includes(AuthMethod.Google);\n formBuilder = inject(FormBuilder);\n authService = inject(AuthService);\n authUserService = inject(AuthUserService);\n wechtLoginService = inject(WeChatLoginService);\n sanitizer = inject(DomSanitizer);\n passrodForm!: FormGroup;\n codeForm!: FormGroup;\n continue = '';\n signUpUrl = '';\n forGotUrl = '';\n tabIndex = signal(0);\n countDown = false;\n countDownTime = 60;\n showButtonText = `Send`;\n appid = 'this.environment.wechat.appId';\n state = 'add';\n isLoading = false;\n urlSafe: SafeResourceUrl = this.sanitizer.bypassSecurityTrustResourceUrl('');\n baseUrl = 'https://open.weixin.qq.com/connect/qrconnect';\n @HostListener('window:message', ['$event'])\n onLogin(event: any): void {\n if (\n event.origin !== window.location.origin ||\n /react-devtools/gi.test(event.data.source) ||\n /angular-devtools/gi.test(event.data.source)\n ) {\n return;\n }\n if (event.origin === this.environment.accountsUrl && event.data.code === 200) {\n window.location.href = this.continue === this.environment.accountsUrl ? this.environment.myaccountUrl : this.continue;\n }\n }\n constructor() {\n super();\n effect(() => {\n const index = this.tabIndex();\n if (index === 0) {\n if (this.codeForm) {\n this.codeForm.reset();\n }\n }\n if (index === 1) {\n if (this.passrodForm) {\n this.passrodForm.reset();\n }\n }\n if (index === 2) {\n this.isLoading = true;\n if (this.codeForm && this.passrodForm) {\n this.codeForm.reset();\n this.passrodForm.reset();\n }\n this.wechat();\n }\n });\n }\n ngOnInit(): void {\n this.titleService.setTitle('Sign in');\n if (this.hasPassword) {\n this.passrodForm = this.formBuilder.group({\n // account: [null, [Validators.required, Validators.pattern('^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$')]],\n account: [null, [Validators.required]],\n password: [null, [Validators.required, Validators.minLength(6)]],\n });\n }\n if (this.hasOTP) {\n this.codeForm = this.formBuilder.group({\n phone: [null, [Validators.required, Validators.pattern('1(3|4|5|6|7|8|9)\\\\d{9}')]],\n code: [null, Validators.required],\n });\n }\n this.route.queryParams.subscribe((params) => {\n this.continue = params['continue'] || '/'; // Default to home if no continue param\n const decodedUrl = decodeURIComponent(this.continue);\n this.signUpUrl = this.continue ? `signup?continue=${decodedUrl}` : 'signup';\n this.forGotUrl = 'signin/forgot';\n });\n // this.continue = this.route.snapshot.queryParams['continue'];\n // if (this.continue) {\n // const decodedUrl = decodeURIComponent(this.continue);\n // this.signUpUrl = this.continue ? `signup?continue=${decodedUrl}` : 'signup';\n // }\n }\n get form() {\n return this.tabIndex() === 0 ? this.passrodForm.controls : this.codeForm.controls;\n }\n sendSMSCode() {\n const phoneControl = this.codeForm.get('phone');\n if (!phoneControl?.valid) {\n return;\n }\n const phone = phoneControl.value;\n this.countDown = true;\n const start = setInterval(() => {\n if (this.countDownTime >= 0) {\n this.showButtonText = $localize`${this.countDownTime--}s resend`;\n } else {\n clearInterval(start);\n this.showButtonText = $localize`Resend`;\n this.countDown = false;\n this.countDownTime = 60;\n }\n }, 1000);\n\n this.authUserService.sendSMSCode('+86', phone).subscribe({\n next: (res) => {\n this.snackBarService.open('Success');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n login() {\n let data = {};\n if (this.tabIndex() === 0) {\n if (!this.passrodForm.valid) {\n return;\n }\n data = {\n account: this.form['account'].value,\n password: this.form['password'].value,\n };\n }\n if (this.tabIndex() === 1) {\n if (!this.codeForm.valid) {\n return;\n }\n data = {\n phone: this.form['phone'].value,\n code: this.form['code'].value,\n };\n }\n\n this.authService.login(data).subscribe({\n next: () => {\n if (isPlatformBrowser(this.platformId)) {\n window.location.href = this.continue === this.environment.accountsUrl ? this.environment.myaccountUrl : this.continue;\n }\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n wechat() {\n // const redirectUri = 'https://accounts.pinxiaoke.cn/login?continue';\n const redirectUri = `${window.location.origin}/login?continue`;\n const encodedURI = encodeURI(redirectUri);\n const src = `${this.baseUrl}?appid=${this.appid}&response_type=code&self_redirect=true&scope=snsapi_login&stylelite=1&redirect_uri=${encodedURI}&state=${this.state}#wechat_redirect`;\n this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(src);\n }\n}\n","<div class=\"h-full flex items-start sm:items-center sm:justify-center\">\n <div\n class=\"w-full h-full justify-start md:h-auto p-6 lg:p-11 rounded-xl bg-[--rt-signin-inner-background] flex flex-col lg:flex-row md:justify-between xl:w-[1000px] lg:w-[900px] md:w-[600px]\"\n >\n <!-- header -->\n\n <div class=\"flex flex-col justify-between lg:w-1/2\">\n <div class=\"flex flex-col py-6\">\n <div class=\"text-3xl font-medium mb-3 ml-2\" i18n>Sign in</div>\n <div class=\"text-md ml-2\" i18n>Use your {{ environment.name }} Account</div>\n </div>\n <!-- <div>\n <a class=\"underline underline-offset-4 text-sm text-[--rt-brand-color]\" [href]=\"forGotUrl\" i18n>Forgot?</a>\n </div> -->\n </div>\n <div class=\"lg:w-1/2\">\n <rolatech-tabs [(select)]=\"tabIndex\">\n @if (hasPassword) {\n <rolatech-tab label=\"Password\"></rolatech-tab>\n }\n @if (hasOTP) {\n <rolatech-tab label=\"OTP\"></rolatech-tab>\n }\n @if (hasWeChat) {\n <rolatech-tab label=\"WeChat\"></rolatech-tab>\n }\n </rolatech-tabs>\n <!-- content -->\n <div class=\"pt-6 min-w-[320px] min-h-[214px]\">\n @if (tabIndex() === 0) {\n <form [formGroup]=\"passrodForm\" class=\"flex flex-col\">\n @if (hasPassword) {\n <mat-form-field>\n <mat-label i18n> Email/Username </mat-label>\n <input matInput formControlName=\"account\" required />\n @if (passrodForm.controls['account'].touched && passrodForm.controls['account'].invalid) {\n <mat-error>\n @if (passrodForm.controls['account'].errors?.['required']) {\n <span i18n>Email is required</span>\n }\n @if (passrodForm.controls['account'].errors?.['pattern']) {\n <span i18n>Invalid email</span>\n }\n </mat-error>\n }\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label i18n> Password </mat-label>\n <input autocomplete matInput formControlName=\"password\" type=\"password\" />\n @if (passrodForm.controls['password'].touched && passrodForm.controls['password'].invalid) {\n <mat-error>\n @if (passrodForm.controls['password'].errors?.['required']) {\n <span i18n>Password required</span>\n }\n @if (passrodForm.controls['password'].errors?.['minlength']) {\n <span i18n>Password too short</span>\n }\n </mat-error>\n }\n </mat-form-field>\n </form>\n }\n @if (tabIndex() === 1) {\n <form [formGroup]=\"codeForm\" class=\"flex flex-col\">\n @if (hasOTP) {\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Phone </mat-label>\n <input autocomplete matInput formControlName=\"phone\" required />\n @if (codeForm.controls['phone'].touched && codeForm.controls['phone'].invalid) {\n <mat-error>\n @if (codeForm.controls['phone'].errors?.['required']) {\n <span i18n> Phone required</span>\n }\n @if (codeForm.controls['phone'].errors?.['pattern']) {\n <span i18n> Phone invalid </span>\n }\n </mat-error>\n }\n </mat-form-field>\n <div class=\"flex justify-between items-center\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Code </mat-label>\n <input matInput formControlName=\"code\" required />\n @if (codeForm.controls['code'].touched && codeForm.controls['code'].invalid) {\n <mat-error>\n @if (codeForm.controls['code'].errors?.['required']) {\n <span i18n>Code required</span>\n }\n </mat-error>\n }\n </mat-form-field>\n <button\n mat-flat-button\n (click)=\"sendSMSCode()\"\n [disabled]=\"countDown\"\n class=\"max-w-[128px] text-white text-center\"\n >\n <span i18n>{{ showButtonText }}</span>\n </button>\n </div>\n }\n </form>\n }\n @if (tabIndex() === 2) {\n <div class=\"w-[190px] h-[190px] ml-[56px]\">\n <iframe [src]=\"urlSafe\" class=\"w-full h-full inline\" scrolling=\"no\" frameBorder=\"no\" #iframe></iframe>\n </div>\n }\n </div>\n <!-- actions -->\n <div class=\"flex justify-between items-center py-3 pl-2\">\n <a class=\"underline underline-offset-4 text-sm text-[--rt-brand-color]\" [href]=\"signUpUrl\" i18n>Create account</a>\n <a class=\"underline underline-offset-4 text-sm text-[--rt-brand-color]\" [href]=\"forGotUrl\" i18n>Forgot?</a>\n <button mat-flat-button (click)=\"login()\" class=\"w-[128px]\" i18n>Sign in</button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, inject, OnInit, ViewEncapsulation } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { AngularCommonModule, APP_CONFIG, WINDOW } from '@rolatech/angular-common';\nimport { AngularComponentsModule, BaseComponent } from '@rolatech/angular-components';\nimport { AuthService, AuthUserService } from '@rolatech/angular-auth';\n@Component({\n imports: [AngularCommonModule, AngularComponentsModule],\n selector: 'rolatech-account-signup',\n templateUrl: './signup.component.html',\n styleUrls: ['./signup.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SignupComponent extends BaseComponent implements OnInit {\n environment = inject(APP_CONFIG);\n authService = inject(AuthService);\n authUserService = inject(AuthUserService);\n formBuilder = inject(FormBuilder);\n window = inject(WINDOW);\n signupForm!: FormGroup;\n continue = '/';\n signInUrl = '';\n usePhone = false\n countDown = false;\n countDownTime = 60;\n showButtonText = 'Send';\n\n ngOnInit(): void {\n this.titleService.setTitle('Sign up');\n this.signupForm = this.formBuilder.group({\n firstName: [null, Validators.required],\n lastName: [null, Validators.required],\n email: [null, [Validators.required, Validators.pattern('^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$')]],\n password: [null, [Validators.required, Validators.minLength(6)]],\n rePassword: [null, [Validators.required, Validators.minLength(6)]],\n });\n // this.signupForm = this.formBuilder.group({\n // name: [null, Validators.required],\n // phone: [null, [Validators.required, Validators.pattern('1(3|4|5|6|7|8|9)\\\\d{9}')]],\n // code: [null, [Validators.required, Validators.minLength(6)]],\n // password: [null, [Validators.required, Validators.minLength(6)]],\n // rePassword: [null, [Validators.required, Validators.minLength(6)]],\n // });\n\n this.continue = this.route.snapshot.queryParams['continue'] || '/';\n const decodedUrl = decodeURIComponent(this.continue);\n this.signInUrl = `signin?continue=${decodedUrl}`;\n }\n sendSMSCode() {\n const phoneControl = this.signupForm.get('phone');\n if (!phoneControl?.valid) {\n return;\n }\n const phone = phoneControl.value;\n this.countDown = true;\n const start = setInterval(() => {\n if (this.countDownTime >= 0) {\n this.showButtonText = `${this.countDownTime--}s resend`;\n } else {\n clearInterval(start);\n this.showButtonText = 'Resend';\n this.countDown = false;\n this.countDownTime = 60;\n }\n }, 1000);\n this.authUserService.sendSMSCode('+86', phone).subscribe({\n next: (res) => {\n this.snackBarService.open('Success');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n submit() {\n if (!this.signupForm.valid) {\n return;\n }\n this.authService.signup(this.signupForm.value).subscribe({\n next: (res) => {\n console.log(res);\n this.window.location.href = this.continue ? this.continue : this.environment.myaccountUrl;\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n}\n","<div class=\"h-full flex items-start sm:items-center sm:justify-center\">\n <div\n class=\"w-full h-full md:h-auto justify-start md:justify-between p-6 lg:p-11 rounded-xl bg-[--rt-signin-inner-background] flex flex-col lg:flex-row lg:flex-row md:justify-between xl:w-[1000px] lg:w-[900px] md:w-[600px]\"\n >\n <!-- header -->\n <div class=\"flex flex-col py-6\">\n <div class=\"text-3xl font-medium mb-3 ml-2\" i18n>Create your {{ environment.name }} account</div>\n <div class=\"text-md ml-2\" i18n>Sign up, Get more.</div>\n </div>\n <div class=\"min-w-[320px]\">\n <form [formGroup]=\"signupForm\" (submit)=\"submit()\" class=\"flex flex-col\">\n @if (usePhone) {\n <!-- name -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Name </mat-label>\n <input matInput formControlName=\"name\" required />\n @if (signupForm.controls['name'].touched && signupForm.controls['name'].invalid) {\n <mat-error>\n @if (signupForm.controls['name'].errors?.['required']) {\n <span i18n>Name required</span>\n }\n </mat-error>\n }\n </mat-form-field>\n <!-- phone -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Phone </mat-label>\n <input matInput formControlName=\"phone\" required />\n @if (signupForm.controls['phone'].touched && signupForm.controls['phone'].invalid) {\n <mat-error>\n @if (signupForm.controls['phone'].errors?.['required']) {\n <span i18n>Phone is required</span>\n }\n @if (signupForm.controls['phone'].errors?.['pattern']) {\n <span i18n>Invalid Phone </span>\n }\n </mat-error>\n }\n </mat-form-field>\n <!-- phone code -->\n <div class=\"flex justify-between items-center gap-3\">\n <mat-form-field appearance=\"fill\" class=\"w-full\">\n <mat-label i18n> Code </mat-label>\n <input matInput type=\"text\" formControlName=\"code\" autocomplete=\"new-password\" required />\n @if (signupForm.controls['code'].touched && signupForm.controls['code'].invalid) {\n <mat-error>\n @if (signupForm.controls['code'].errors?.['required']) {\n <span i18n>Code is required</span>\n }\n </mat-error>\n }\n </mat-form-field>\n <button mat-button (click)=\"sendSMSCode()\" [disabled]=\"countDown\" class=\"w-[128px] text-white text-center\">\n <span>{{ showButtonText }}</span>\n </button>\n </div>\n }\n <div class=\"flex flex-col md:flex-row gap-3 items-center\">\n <!--First name -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Fist name </mat-label>\n <input matInput formControlName=\"firstName\" required />\n @if (signupForm.controls['firstName'].touched && signupForm.controls['firstName'].invalid) {\n <mat-error>\n @if (signupForm.controls['firstName'].errors?.['required']) {\n <span i18n>First name required</span>\n }\n </mat-error>\n }\n </mat-form-field>\n <!-- Last name -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Last name </mat-label>\n <input matInput formControlName=\"lastName\" required />\n @if (signupForm.controls['lastName'].touched && signupForm.controls['lastName'].invalid) {\n <mat-error>\n @if (signupForm.controls['lastName'].errors?.['required']) {\n <span i18n>Last name required</span>\n }\n </mat-error>\n }\n </mat-form-field>\n </div>\n <!-- Email account -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Email </mat-label>\n <input matInput formControlName=\"email\" required />\n @if (signupForm.controls['email'].touched && signupForm.controls['email'].invalid) {\n <mat-error>\n @if (signupForm.controls['email'].errors?.['required']) {\n <span i18n>Email is required</span>\n }\n @if (signupForm.controls['email'].errors?.['pattern']) {\n <span i18n>Invalid email</span>\n }\n </mat-error>\n }\n </mat-form-field>\n <!-- Password -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Password </mat-label>\n <input matInput formControlName=\"password\" type=\"password\" autocomplete=\"password\" />\n @if (signupForm.controls['password'].touched && signupForm.controls['password'].invalid) {\n <mat-error>\n @if (signupForm.controls['password'].errors?.['required']) {\n <span i18n>Password required</span>\n }\n @if (signupForm.controls['password'].errors?.['minlength']) {\n <span i18n>Password too short</span>\n }\n </mat-error>\n }\n </mat-form-field>\n\n <!-- password confirm -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Password </mat-label>\n <input matInput formControlName=\"rePassword\" type=\"password\" autocomplete=\"rePassword\" />\n @if (signupForm.controls['rePassword'].touched && signupForm.controls['rePassword'].invalid) {\n <mat-error>\n @if (signupForm.controls['rePassword'].errors?.['required']) {\n <span i18n>Password required</span>\n }\n @if (signupForm.controls['rePassword'].errors?.['minlength']) {\n <span i18n>Password too short</span>\n }\n </mat-error>\n }\n </mat-form-field>\n </form>\n <div class=\"flex justify-between items-center py-3 pl-2\">\n <a mat-button [href]=\"signInUrl\" i18n>Sign in</a>\n <button mat-flat-button (click)=\"submit()\" class=\"w-[128px]\" i18n>Sign up</button>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, OnInit, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { AuthService } from '@rolatech/angular-auth';\nimport { BaseComponent } from '@rolatech/angular-components';\n\n@Component({\n selector: 'rolatech-account-forgot',\n imports: [FormsModule, MatInputModule, CommonModule, MatButtonModule],\n templateUrl: './forgot.html',\n styleUrl: './forgot.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class Forgot extends BaseComponent implements OnInit {\n authService = inject(AuthService);\n email = '';\n signInUrl = '';\n ngOnInit(): void {\n this.titleService.setTitle('Sign up');\n this.signInUrl = `signin`;\n }\n send() {\n this.authService.requestPasswordReset(this.email).subscribe({\n next: () => {\n this.snackBarService.open('Password reset link sent.');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n}\n","<div class=\"h-full flex items-start sm:items-center sm:justify-center\">\n <div\n class=\"w-full h-full justify-start md:h-auto p-6 lg:p-11 rounded-xl bg-[--rt-signin-inner-background] flex flex-col lg:flex-row md:justify-between xl:w-[1000px] lg:w-[900px] md:w-[600px]\"\n >\n <!-- header -->\n <div class=\"flex flex-col py-6 lg:w-1/2 lg:pr-4\">\n <div class=\"text-3xl font-medium mb-3 ml-2\" i18n>Reset password</div>\n <div class=\"text-md ml-2\" i18n>Enter your email, password reset link will send to this email.</div>\n </div>\n <div class=\"lg:w-1/2 lg:pl-4\">\n <!-- content -->\n <div class=\"pt-6 min-w-[320px] min-h-[214px]\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Email </mat-label>\n <input matInput [(ngModel)]=\"email\" />\n </mat-form-field>\n </div>\n <!-- actions -->\n <div class=\"flex justify-between items-center py-3 pl-2\">\n <!-- <a class=\"underline underline-offset-4 text-sm text-[--rt-brand-color]\" [href]=\"signUpUrl\" i18n>Sign in</a> -->\n <a class=\"underline underline-offset-4 text-sm text-[--rt-brand-color]\" [href]=\"signInUrl\" i18n>Sign in</a>\n <button mat-flat-button (click)=\"send()\" class=\"w-[128px]\" i18n>Send</button>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, OnInit, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { AuthService } from '@rolatech/angular-auth';\nimport { BaseComponent } from '@rolatech/angular-components';\n\n@Component({\n selector: 'rolatech-account-password-reset',\n imports: [FormsModule, MatInputModule, CommonModule, MatButtonModule],\n templateUrl: './password-reset.html',\n styleUrl: './password-reset.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class PasswordReset extends BaseComponent implements OnInit {\n authService = inject(AuthService);\n invalidToken = false;\n signInUrl = '';\n token = '';\n password = '';\n newPassword = '';\n ngOnInit(): void {\n this.titleService.setTitle('Sign up');\n this.signInUrl = `signin`;\n const token = this.route.snapshot.queryParams['token'] ?? undefined;\n if (token) {\n this.authService.validatePasswordRestToken(token).subscribe({\n next: (res) => {\n this.token = token;\n },\n error: (error) => {\n console.log(error);\n this.invalidToken = true;\n },\n });\n }\n }\n resetPassword() {\n if (this.password !== this.newPassword) {\n this.snackBarService.open('Password not match');\n return;\n }\n if (this.password.length < 8) {\n this.snackBarService.open('Password too weak');\n return;\n }\n this.authService.resetPassword({ token: this.token, newPassword: this.newPassword }).subscribe({\n next: (res) => {\n this.snackBarService.open('Password reset');\n this.router.navigateByUrl('/signin');\n },\n });\n }\n}\n","<div class=\"h-full flex items-start sm:items-center sm:justify-center\">\n <div\n class=\"w-full h-full justify-start md:h-auto p-6 lg:p-11 rounded-xl bg-[--rt-signin-inner-background] flex flex-col lg:flex-row md:justify-between xl:w-[1000px] lg:w-[900px] md:w-[600px]\"\n >\n @if (invalidToken) {\n <div>\n <div class=\"text-3xl font-medium mb-3 ml-2\" i18n>Link invalid or expired</div>\n <div class=\"text-md ml-2\" i18n>\n To reset your password, return to the login page and select \"Forgot?\" to send a new email.\n </div>\n <div class=\"flex justify-between items-center py-3 pl-2\">\n <a class=\"underline underline-offset-4 text-sm text-[--rt-brand-color]\" [href]=\"signInUrl\" i18n>Sign in</a>\n </div>\n </div>\n\n } @else {\n <div class=\"flex flex-col py-6 lg:w-1/2 lg:pr-4\">\n <div class=\"text-3xl font-medium mb-3 ml-2\" i18n>Reset password</div>\n <div class=\"text-md ml-2\" i18n>Enter your new password.</div>\n </div>\n <div class=\"lg:w-1/2 lg:pl-4\">\n <div class=\"pt-6 min-w-[320px] min-h-[214px]\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Password </mat-label>\n <input matInput [(ngModel)]=\"password\" required type=\"password\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Password </mat-label>\n <input matInput [(ngModel)]=\"newPassword\" required type=\"password\" />\n </mat-form-field>\n </div>\n <div class=\"flex justify-between items-center py-3 pl-2\">\n <a class=\"underline underline-offset-4 text-sm text-[--rt-brand-color]\" [href]=\"signInUrl\" i18n>Sign in</a>\n <button mat-flat-button (click)=\"resetPassword()\" class=\"w-[128px]\" i18n>Reset</button>\n </div>\n </div>\n }\n </div>\n</div>\n","import { Routes } from '@angular/router';\nimport { AuthGuard, ForbiddenComponent, UnauthorizedComponent } from '@rolatech/angular-auth';\nimport { LogoutComponent } from './components/logout/logout.component';\nimport { SigninComponent } from './pages/accounts/signin/signin.component';\nimport { SignupComponent } from './pages/accounts/signup/signup.component';\nimport { Forgot } from './pages/accounts/forgot/forgot';\nimport { PasswordReset } from './pages/accounts/password-reset/password-reset';\n\nexport const accountRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'signin',\n },\n { path: 'signin', canActivate: [AuthGuard], component: SigninComponent, data: { title: 'Signin' } },\n {\n path: 'signin/forgot',\n component: Forgot,\n data: { title: 'Forgot Password' },\n },\n { path: 'signup', component: SignupComponent, data: { title: 'Signup' } },\n { path: 'logout', component: LogoutComponent },\n // { path: 'login', loadChildren: () => import('./components/login/login.routes') },\n {\n path: 'reset-password',\n component: PasswordReset,\n data: { title: 'Password Reset' },\n },\n\n {\n path: 'unauthorized',\n component: UnauthorizedComponent,\n },\n {\n path: 'forbidden',\n component: ForbiddenComponent,\n },\n];\n","import { Routes } from '@angular/router';\n\nexport const myaccountRoutes: Routes = [\n {\n path: '',\n loadComponent: () => import('./pages/myaccount/home/home.component').then((c) => c.HomeComponent),\n data: { title: '首页' },\n },\n {\n path: 'personal-info',\n loadComponent: () => import('./pages/myaccount/personal-info/info.component').then((c) => c.InfoComponent),\n },\n {\n path: 'profile',\n loadComponent: () => import('./pages/myaccount/personal-info/profile/profile.component').then((c) => c.ProfileComponent),\n },\n {\n path: 'username',\n loadComponent: () => import('./pages/myaccount/personal-info/username/username.component').then((c) => c.UsernameComponent),\n },\n { path: 'gender', loadComponent: () => import('./pages/myaccount/gender/gender.component').then((c) => c.GenderComponent) },\n { path: 'email', loadComponent: () => import('./pages/myaccount/email/email.component').then((c) => c.EmailComponent) },\n {\n path: 'email-verification/:id',\n loadComponent: () =>\n import('./pages/myaccount/email-verification/email-verification.component').then((c) => c.EmailVerificationComponent),\n },\n { path: 'phone', loadComponent: () => import('./pages/myaccount/phone/phone.component').then((c) => c.PhoneComponent) },\n\n {\n path: 'address',\n loadChildren: () => import('./pages/myaccount/address/address.routes').then((r) => r.addressRoutes),\n },\n\n {\n path: 'security',\n loadChildren: () => import('./pages/myaccount/security/security.routes'),\n data: { title: 'Security' },\n },\n {\n path: 'notifications',\n loadChildren: () => import('@rolatech/angular-notification').then((m) => m.notificationRoutes),\n data: { title: 'Notifications' },\n },\n];\n","import { EnvironmentProviders, Provider, makeEnvironmentProviders } from '@angular/core';\nimport { ROUTES } from '@angular/router';\nimport { accountRoutes } from './lib/account.routes';\n\nexport function provideAngularAuthRoutes(): EnvironmentProviders {\n const provider: Provider[] = [\n {\n provide: ROUTES,\n useValue: accountRoutes,\n multi: true,\n },\n ];\n return makeEnvironmentProviders(provider);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i4"],"mappings":"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"}
1
+ {"version":3,"file":"rolatech-angular-account.mjs","sources":["../../../../packages/angular-account/src/lib/components/topbar-login/topbar-login.component.ts","../../../../packages/angular-account/src/lib/components/topbar-login/topbar-login.component.html","../../../../packages/angular-account/src/lib/components/logout/logout.component.ts","../../../../packages/angular-account/src/lib/components/logout/logout.component.html","../../../../packages/angular-account/src/lib/services/wechat-login.service.ts","../../../../packages/angular-account/src/lib/pages/accounts/signin/signin.component.ts","../../../../packages/angular-account/src/lib/pages/accounts/signin/signin.component.html","../../../../packages/angular-account/src/lib/pages/accounts/signup/signup.component.ts","../../../../packages/angular-account/src/lib/pages/accounts/signup/signup.component.html","../../../../packages/angular-account/src/lib/pages/accounts/forgot/forgot.ts","../../../../packages/angular-account/src/lib/pages/accounts/forgot/forgot.html","../../../../packages/angular-account/src/lib/pages/accounts/password-reset/password-reset.ts","../../../../packages/angular-account/src/lib/pages/accounts/password-reset/password-reset.html","../../../../packages/angular-account/src/lib/account.routes.ts","../../../../packages/angular-account/src/lib/myaccount.routes.ts","../../../../packages/angular-account/src/provider.ts","../../../../packages/angular-account/src/rolatech-angular-account.ts"],"sourcesContent":["import { Component, OnDestroy, OnInit, PLATFORM_ID, ViewEncapsulation, inject, input } from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n NavigationEnd,\n Router,\n Event,\n NavigationStart,\n NavigationCancel,\n NavigationError,\n ActivatedRoute,\n Route,\n} from '@angular/router';\nimport { filter, Subscription } from 'rxjs';\ntype NavigationEvent = NavigationStart | NavigationEnd | NavigationCancel | NavigationError;\n\n@Component({\n selector: 'rolatech-account-topbar-login',\n imports: [CommonModule, MatButtonModule],\n templateUrl: './topbar-login.component.html',\n styleUrl: './topbar-login.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class TopbarLoginComponent implements OnInit, OnDestroy {\n environment = inject(APP_CONFIG);\n platformId = inject(PLATFORM_ID);\n route = inject(ActivatedRoute);\n router = inject(Router);\n private routerSubscription: Subscription | undefined;\n\n service = input('www');\n signinUrl = '';\n signupUrl = this.environment.accountsUrl + '/signup';\n logoutUrl = this.environment.accountsUrl + `/logout?service=${this.service()}`;\n ngOnInit(): void {\n if (isPlatformBrowser(this.platformId)) {\n this.signinUrl = `${this.environment.accountsUrl}/signin?continue=` + window.location.href;\n this.logoutUrl = this.environment.accountsUrl + `/logout?service=${this.service()}&continue=` + window.location.origin;\n }\n\n this.routerSubscription = this.router.events\n .pipe(filter((event: Event): event is NavigationEvent => event instanceof NavigationStart))\n .subscribe((event) => {\n this.signinUrl = `${this.environment.accountsUrl}/signin?continue=` + window.location.origin + event.url;\n\n // this.checkRouteGuard(event.url);\n\n const currentUrl = this.router.url; // Get the current URL\n const matchedRoute = this.findRouteConfig(currentUrl);\n\n if (matchedRoute) {\n console.log('Matched Route Config:', matchedRoute);\n } else {\n console.log('No matching route found.');\n }\n });\n }\n ngOnDestroy() {\n this.routerSubscription?.unsubscribe();\n }\n // checkRouteGuard(url: string): void {\n // // const route = this.router.config.find((r) => r.path === routePath);\n // const route = this.router.config.find((r: any) => this.matchRoute(url, r.path));\n\n // if (route) {\n // if (route.canActivate && route.canActivate.length > 0) {\n // console.log(`Route \"${url}\" has canActivate guards:`, route.canActivate);\n // } else {\n // console.log(`Route \"${url}\" does not have canActivate guards.`);\n // }\n // } else {\n // console.log(`Route \"${url}\" not found.`);\n // }\n // }\n // matchRoute(url: string, routePath: string): boolean {\n // // Strip leading/trailing slashes from URL and routePath and compare\n // return url.replace(/^\\/|\\/$/g, '') === routePath.replace(/^\\/|\\/$/g, '');\n // }\n findRouteConfig(url: string): Route | undefined {\n return this.router.config.find((route) => this.matchRoute(route, url));\n }\n\n // Helper function to check if a route matches the current URL\n matchRoute(route: Route, url: string): boolean {\n const path = route.path?.split('/').join('');\n const urlSegment = url.split('/').join('');\n return path === urlSegment;\n }\n}\n","<div class=\"flex items-center\">\n <a mat-stroked-button class=\"mr-2 max-h-9 md:max-h-10\" [href]=\"signinUrl\"><span i18n>Sign in</span></a>\n <a mat-flat-button class=\"max-h-9 md:max-h-10\" [href]=\"signupUrl\"><span i18n>Sign up</span></a>\n</div>\n","import { isPlatformBrowser } from '@angular/common';\nimport { Component, inject, OnInit, PLATFORM_ID } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { AuthService } from '@rolatech/angular-auth';\nimport { APP_CONFIG, AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule } from '@rolatech/angular-components';\nimport { map, take } from 'rxjs';\n\n@Component({\n imports: [AngularCommonModule, AngularComponentsModule],\n selector: 'rolatech-account-logout',\n templateUrl: './logout.component.html',\n styleUrls: ['./logout.component.scss'],\n})\nexport class LogoutComponent implements OnInit {\n service = '';\n continue = '';\n environment = inject(APP_CONFIG);\n platformId = inject(PLATFORM_ID);\n route = inject(ActivatedRoute);\n router = inject(Router);\n authService = inject(AuthService);\n snackBar = inject(MatSnackBar);\n\n ngOnInit(): void {\n this.service = this.route.snapshot.queryParams['service'] || 'www';\n this.continue = this.route.snapshot.queryParams['continue'] || '/';\n if (isPlatformBrowser(this.platformId)) {\n this.logout();\n }\n }\n logout() {\n this.authService.logout().subscribe({\n next: (res) => {\n // this.router.navigate(['/signin'], {\n // queryParams: { continue: this.continue },\n // });\n // this.router.navigate([this.continue]);\n // this.router.navigateByUrl(this.continue);\n window.location.href = this.continue;\n },\n error: (error) => {\n this.snackBar.open(error.message);\n },\n });\n }\n}\n","<p>Please waiting...</p>\n","import { Directive, EventEmitter, Injectable, output } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\n@Directive()\nexport class WeChatLoginService {\n onWeChatLogin = new EventEmitter<any>();\n\n constructor() {}\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Component, effect, HostListener, inject, OnInit, PLATFORM_ID, signal, ViewEncapsulation } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { SafeResourceUrl, DomSanitizer } from '@angular/platform-browser';\nimport { AngularCommonModule, APP_CONFIG } from '@rolatech/angular-common';\nimport { AngularComponentsModule, BaseComponent, TabComponent, TabsComponent } from '@rolatech/angular-components';\nimport { AUTH_METHODS, AuthMethod, AuthService, AuthUserService } from '@rolatech/angular-auth';\nimport { WeChatLoginService } from '../../../services/wechat-login.service';\n\n@Component({\n imports: [AngularCommonModule, AngularComponentsModule, TabsComponent, TabComponent],\n selector: 'rolatech-account-signin',\n templateUrl: './signin.component.html',\n styleUrls: ['./signin.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SigninComponent extends BaseComponent implements OnInit {\n environment = inject(APP_CONFIG);\n authMethods = inject(AUTH_METHODS);\n hasPassword = this.authMethods.includes(AuthMethod.Password);\n hasOTP = this.authMethods.includes(AuthMethod.OTP);\n hasWeChat = this.authMethods.includes(AuthMethod.WeChat);\n hasGoogle = this.authMethods.includes(AuthMethod.Google);\n formBuilder = inject(FormBuilder);\n authService = inject(AuthService);\n authUserService = inject(AuthUserService);\n wechtLoginService = inject(WeChatLoginService);\n sanitizer = inject(DomSanitizer);\n passrodForm!: FormGroup;\n codeForm!: FormGroup;\n continue = '';\n signUpUrl = '';\n forGotUrl = '';\n tabIndex = signal(0);\n countDown = false;\n countDownTime = 60;\n showButtonText = `Send`;\n appid = 'this.environment.wechat.appId';\n state = 'add';\n isLoading = false;\n urlSafe: SafeResourceUrl = this.sanitizer.bypassSecurityTrustResourceUrl('');\n baseUrl = 'https://open.weixin.qq.com/connect/qrconnect';\n @HostListener('window:message', ['$event'])\n onLogin(event: any): void {\n if (\n event.origin !== window.location.origin ||\n /react-devtools/gi.test(event.data.source) ||\n /angular-devtools/gi.test(event.data.source)\n ) {\n return;\n }\n if (event.origin === this.environment.accountsUrl && event.data.code === 200) {\n window.location.href = this.continue === this.environment.accountsUrl ? this.environment.myaccountUrl : this.continue;\n }\n }\n constructor() {\n super();\n effect(() => {\n const index = this.tabIndex();\n if (index === 0) {\n if (this.codeForm) {\n this.codeForm.reset();\n }\n }\n if (index === 1) {\n if (this.passrodForm) {\n this.passrodForm.reset();\n }\n }\n if (index === 2) {\n this.isLoading = true;\n if (this.codeForm && this.passrodForm) {\n this.codeForm.reset();\n this.passrodForm.reset();\n }\n this.wechat();\n }\n });\n }\n ngOnInit(): void {\n this.titleService.setTitle('Sign in');\n if (this.hasPassword) {\n this.passrodForm = this.formBuilder.group({\n // account: [null, [Validators.required, Validators.pattern('^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$')]],\n account: [null, [Validators.required]],\n password: [null, [Validators.required, Validators.minLength(6)]],\n });\n }\n if (this.hasOTP) {\n this.codeForm = this.formBuilder.group({\n phone: [null, [Validators.required, Validators.pattern('1(3|4|5|6|7|8|9)\\\\d{9}')]],\n code: [null, Validators.required],\n });\n }\n this.route.queryParams.subscribe((params) => {\n this.continue = params['continue'] || '/'; // Default to home if no continue param\n const decodedUrl = decodeURIComponent(this.continue);\n this.signUpUrl = this.continue ? `signup?continue=${decodedUrl}` : 'signup';\n this.forGotUrl = 'signin/forgot';\n });\n // this.continue = this.route.snapshot.queryParams['continue'];\n // if (this.continue) {\n // const decodedUrl = decodeURIComponent(this.continue);\n // this.signUpUrl = this.continue ? `signup?continue=${decodedUrl}` : 'signup';\n // }\n }\n get form() {\n return this.tabIndex() === 0 ? this.passrodForm.controls : this.codeForm.controls;\n }\n sendSMSCode() {\n const phoneControl = this.codeForm.get('phone');\n if (!phoneControl?.valid) {\n return;\n }\n const phone = phoneControl.value;\n this.countDown = true;\n const start = setInterval(() => {\n if (this.countDownTime >= 0) {\n this.showButtonText = $localize`${this.countDownTime--}s resend`;\n } else {\n clearInterval(start);\n this.showButtonText = $localize`Resend`;\n this.countDown = false;\n this.countDownTime = 60;\n }\n }, 1000);\n\n this.authUserService.sendSMSCode('+86', phone).subscribe({\n next: (res) => {\n this.snackBarService.open('Success');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n login() {\n let data = {};\n if (this.tabIndex() === 0) {\n if (!this.passrodForm.valid) {\n return;\n }\n data = {\n account: this.form['account'].value,\n password: this.form['password'].value,\n };\n }\n if (this.tabIndex() === 1) {\n if (!this.codeForm.valid) {\n return;\n }\n data = {\n phone: this.form['phone'].value,\n code: this.form['code'].value,\n };\n }\n\n this.authService.login(data).subscribe({\n next: () => {\n if (isPlatformBrowser(this.platformId)) {\n window.location.href = this.continue === this.environment.accountsUrl ? this.environment.myaccountUrl : this.continue;\n }\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n wechat() {\n // const redirectUri = 'https://accounts.pinxiaoke.cn/login?continue';\n const redirectUri = `${window.location.origin}/login?continue`;\n const encodedURI = encodeURI(redirectUri);\n const src = `${this.baseUrl}?appid=${this.appid}&response_type=code&self_redirect=true&scope=snsapi_login&stylelite=1&redirect_uri=${encodedURI}&state=${this.state}#wechat_redirect`;\n this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(src);\n }\n}\n","<div class=\"h-full flex items-start sm:items-center sm:justify-center\">\n <div\n class=\"w-full h-full justify-start md:h-auto p-6 lg:p-11 rounded-xl bg-[--rt-signin-inner-background] flex flex-col lg:flex-row md:justify-between xl:w-[1000px] lg:w-[900px] md:w-[600px]\"\n >\n <!-- header -->\n\n <div class=\"flex flex-col justify-between lg:w-1/2\">\n <div class=\"flex flex-col py-6\">\n <div class=\"text-3xl font-medium mb-3 ml-2\" i18n>Sign in</div>\n <div class=\"text-md ml-2\" i18n>Use your {{ environment.name }} Account</div>\n </div>\n <!-- <div>\n <a class=\"underline underline-offset-4 text-sm text-[--rt-brand-color]\" [href]=\"forGotUrl\" i18n>Forgot?</a>\n </div> -->\n </div>\n <div class=\"lg:w-1/2\">\n <rolatech-tabs [(select)]=\"tabIndex\">\n @if (hasPassword) {\n <rolatech-tab label=\"Password\"></rolatech-tab>\n }\n @if (hasOTP) {\n <rolatech-tab label=\"OTP\"></rolatech-tab>\n }\n @if (hasWeChat) {\n <rolatech-tab label=\"WeChat\"></rolatech-tab>\n }\n </rolatech-tabs>\n <!-- content -->\n <div class=\"pt-6 min-w-[320px] min-h-[214px]\">\n @if (tabIndex() === 0) {\n <form [formGroup]=\"passrodForm\" class=\"flex flex-col\">\n @if (hasPassword) {\n <mat-form-field>\n <mat-label i18n> Email/Username </mat-label>\n <input matInput formControlName=\"account\" required />\n @if (passrodForm.controls['account'].touched && passrodForm.controls['account'].invalid) {\n <mat-error>\n @if (passrodForm.controls['account'].errors?.['required']) {\n <span i18n>Email is required</span>\n }\n @if (passrodForm.controls['account'].errors?.['pattern']) {\n <span i18n>Invalid email</span>\n }\n </mat-error>\n }\n </mat-form-field>\n }\n <mat-form-field>\n <mat-label i18n> Password </mat-label>\n <input autocomplete matInput formControlName=\"password\" type=\"password\" />\n @if (passrodForm.controls['password'].touched && passrodForm.controls['password'].invalid) {\n <mat-error>\n @if (passrodForm.controls['password'].errors?.['required']) {\n <span i18n>Password required</span>\n }\n @if (passrodForm.controls['password'].errors?.['minlength']) {\n <span i18n>Password too short</span>\n }\n </mat-error>\n }\n </mat-form-field>\n </form>\n }\n @if (tabIndex() === 1) {\n <form [formGroup]=\"codeForm\" class=\"flex flex-col\">\n @if (hasOTP) {\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Phone </mat-label>\n <input autocomplete matInput formControlName=\"phone\" required />\n @if (codeForm.controls['phone'].touched && codeForm.controls['phone'].invalid) {\n <mat-error>\n @if (codeForm.controls['phone'].errors?.['required']) {\n <span i18n> Phone required</span>\n }\n @if (codeForm.controls['phone'].errors?.['pattern']) {\n <span i18n> Phone invalid </span>\n }\n </mat-error>\n }\n </mat-form-field>\n <div class=\"flex justify-between items-center\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Code </mat-label>\n <input matInput formControlName=\"code\" required />\n @if (codeForm.controls['code'].touched && codeForm.controls['code'].invalid) {\n <mat-error>\n @if (codeForm.controls['code'].errors?.['required']) {\n <span i18n>Code required</span>\n }\n </mat-error>\n }\n </mat-form-field>\n <button\n mat-flat-button\n (click)=\"sendSMSCode()\"\n [disabled]=\"countDown\"\n class=\"max-w-[128px] text-white text-center\"\n >\n <span i18n>{{ showButtonText }}</span>\n </button>\n </div>\n }\n </form>\n }\n @if (tabIndex() === 2) {\n <div class=\"w-[190px] h-[190px] ml-[56px]\">\n <iframe [src]=\"urlSafe\" class=\"w-full h-full inline\" scrolling=\"no\" frameBorder=\"no\" #iframe></iframe>\n </div>\n }\n </div>\n <!-- actions -->\n <div class=\"flex justify-between items-center py-3 pl-2\">\n <a class=\"underline underline-offset-4 text-sm text-[--rt-brand-color]\" [href]=\"signUpUrl\" i18n>Create account</a>\n <a class=\"underline underline-offset-4 text-sm text-[--rt-brand-color]\" [href]=\"forGotUrl\" i18n>Forgot?</a>\n <button mat-flat-button (click)=\"login()\" class=\"w-[128px]\" i18n>Sign in</button>\n </div>\n </div>\n </div>\n</div>\n","import { Component, inject, OnInit, ViewEncapsulation } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { AngularCommonModule, APP_CONFIG, WINDOW } from '@rolatech/angular-common';\nimport { AngularComponentsModule, BaseComponent } from '@rolatech/angular-components';\nimport { AuthService, AuthUserService } from '@rolatech/angular-auth';\n@Component({\n imports: [AngularCommonModule, AngularComponentsModule],\n selector: 'rolatech-account-signup',\n templateUrl: './signup.component.html',\n styleUrls: ['./signup.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SignupComponent extends BaseComponent implements OnInit {\n environment = inject(APP_CONFIG);\n authService = inject(AuthService);\n authUserService = inject(AuthUserService);\n formBuilder = inject(FormBuilder);\n window = inject(WINDOW);\n signupForm!: FormGroup;\n continue = '/';\n signInUrl = '';\n usePhone = false\n countDown = false;\n countDownTime = 60;\n showButtonText = 'Send';\n\n ngOnInit(): void {\n this.titleService.setTitle('Sign up');\n this.signupForm = this.formBuilder.group({\n firstName: [null, Validators.required],\n lastName: [null, Validators.required],\n email: [null, [Validators.required, Validators.pattern('^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$')]],\n password: [null, [Validators.required, Validators.minLength(6)]],\n rePassword: [null, [Validators.required, Validators.minLength(6)]],\n });\n // this.signupForm = this.formBuilder.group({\n // name: [null, Validators.required],\n // phone: [null, [Validators.required, Validators.pattern('1(3|4|5|6|7|8|9)\\\\d{9}')]],\n // code: [null, [Validators.required, Validators.minLength(6)]],\n // password: [null, [Validators.required, Validators.minLength(6)]],\n // rePassword: [null, [Validators.required, Validators.minLength(6)]],\n // });\n\n this.continue = this.route.snapshot.queryParams['continue'] || '/';\n const decodedUrl = decodeURIComponent(this.continue);\n this.signInUrl = `signin?continue=${decodedUrl}`;\n }\n sendSMSCode() {\n const phoneControl = this.signupForm.get('phone');\n if (!phoneControl?.valid) {\n return;\n }\n const phone = phoneControl.value;\n this.countDown = true;\n const start = setInterval(() => {\n if (this.countDownTime >= 0) {\n this.showButtonText = `${this.countDownTime--}s resend`;\n } else {\n clearInterval(start);\n this.showButtonText = 'Resend';\n this.countDown = false;\n this.countDownTime = 60;\n }\n }, 1000);\n this.authUserService.sendSMSCode('+86', phone).subscribe({\n next: (res) => {\n this.snackBarService.open('Success');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n submit() {\n if (!this.signupForm.valid) {\n return;\n }\n this.authService.signup(this.signupForm.value).subscribe({\n next: (res) => {\n console.log(res);\n this.window.location.href = this.continue ? this.continue : this.environment.myaccountUrl;\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n}\n","<div class=\"h-full flex items-start sm:items-center sm:justify-center\">\n <div\n class=\"w-full h-full md:h-auto justify-start md:justify-between p-6 lg:p-11 rounded-xl bg-[--rt-signin-inner-background] flex flex-col lg:flex-row lg:flex-row md:justify-between xl:w-[1000px] lg:w-[900px] md:w-[600px]\"\n >\n <!-- header -->\n <div class=\"flex flex-col py-6\">\n <div class=\"text-3xl font-medium mb-3 ml-2\" i18n>Create your {{ environment.name }} account</div>\n <div class=\"text-md ml-2\" i18n>Sign up, Get more.</div>\n </div>\n <div class=\"min-w-[320px]\">\n <form [formGroup]=\"signupForm\" (submit)=\"submit()\" class=\"flex flex-col\">\n @if (usePhone) {\n <!-- name -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Name </mat-label>\n <input matInput formControlName=\"name\" required />\n @if (signupForm.controls['name'].touched && signupForm.controls['name'].invalid) {\n <mat-error>\n @if (signupForm.controls['name'].errors?.['required']) {\n <span i18n>Name required</span>\n }\n </mat-error>\n }\n </mat-form-field>\n <!-- phone -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Phone </mat-label>\n <input matInput formControlName=\"phone\" required />\n @if (signupForm.controls['phone'].touched && signupForm.controls['phone'].invalid) {\n <mat-error>\n @if (signupForm.controls['phone'].errors?.['required']) {\n <span i18n>Phone is required</span>\n }\n @if (signupForm.controls['phone'].errors?.['pattern']) {\n <span i18n>Invalid Phone </span>\n }\n </mat-error>\n }\n </mat-form-field>\n <!-- phone code -->\n <div class=\"flex justify-between items-center gap-3\">\n <mat-form-field appearance=\"fill\" class=\"w-full\">\n <mat-label i18n> Code </mat-label>\n <input matInput type=\"text\" formControlName=\"code\" autocomplete=\"new-password\" required />\n @if (signupForm.controls['code'].touched && signupForm.controls['code'].invalid) {\n <mat-error>\n @if (signupForm.controls['code'].errors?.['required']) {\n <span i18n>Code is required</span>\n }\n </mat-error>\n }\n </mat-form-field>\n <button mat-button (click)=\"sendSMSCode()\" [disabled]=\"countDown\" class=\"w-[128px] text-white text-center\">\n <span>{{ showButtonText }}</span>\n </button>\n </div>\n }\n <div class=\"flex flex-col md:flex-row gap-3 items-center\">\n <!--First name -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Fist name </mat-label>\n <input matInput formControlName=\"firstName\" required />\n @if (signupForm.controls['firstName'].touched && signupForm.controls['firstName'].invalid) {\n <mat-error>\n @if (signupForm.controls['firstName'].errors?.['required']) {\n <span i18n>First name required</span>\n }\n </mat-error>\n }\n </mat-form-field>\n <!-- Last name -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Last name </mat-label>\n <input matInput formControlName=\"lastName\" required />\n @if (signupForm.controls['lastName'].touched && signupForm.controls['lastName'].invalid) {\n <mat-error>\n @if (signupForm.controls['lastName'].errors?.['required']) {\n <span i18n>Last name required</span>\n }\n </mat-error>\n }\n </mat-form-field>\n </div>\n <!-- Email account -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Email </mat-label>\n <input matInput formControlName=\"email\" required />\n @if (signupForm.controls['email'].touched && signupForm.controls['email'].invalid) {\n <mat-error>\n @if (signupForm.controls['email'].errors?.['required']) {\n <span i18n>Email is required</span>\n }\n @if (signupForm.controls['email'].errors?.['pattern']) {\n <span i18n>Invalid email</span>\n }\n </mat-error>\n }\n </mat-form-field>\n <!-- Password -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Password </mat-label>\n <input matInput formControlName=\"password\" type=\"password\" autocomplete=\"password\" />\n @if (signupForm.controls['password'].touched && signupForm.controls['password'].invalid) {\n <mat-error>\n @if (signupForm.controls['password'].errors?.['required']) {\n <span i18n>Password required</span>\n }\n @if (signupForm.controls['password'].errors?.['minlength']) {\n <span i18n>Password too short</span>\n }\n </mat-error>\n }\n </mat-form-field>\n\n <!-- password confirm -->\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Password </mat-label>\n <input matInput formControlName=\"rePassword\" type=\"password\" autocomplete=\"rePassword\" />\n @if (signupForm.controls['rePassword'].touched && signupForm.controls['rePassword'].invalid) {\n <mat-error>\n @if (signupForm.controls['rePassword'].errors?.['required']) {\n <span i18n>Password required</span>\n }\n @if (signupForm.controls['rePassword'].errors?.['minlength']) {\n <span i18n>Password too short</span>\n }\n </mat-error>\n }\n </mat-form-field>\n </form>\n <div class=\"flex justify-between items-center py-3 pl-2\">\n <a mat-button [href]=\"signInUrl\" i18n>Sign in</a>\n <button mat-flat-button (click)=\"submit()\" class=\"w-[128px]\" i18n>Sign up</button>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, OnInit, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { AuthService } from '@rolatech/angular-auth';\nimport { BaseComponent } from '@rolatech/angular-components';\n\n@Component({\n selector: 'rolatech-account-forgot',\n imports: [FormsModule, MatInputModule, CommonModule, MatButtonModule],\n templateUrl: './forgot.html',\n styleUrl: './forgot.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class Forgot extends BaseComponent implements OnInit {\n authService = inject(AuthService);\n email = '';\n signInUrl = '';\n ngOnInit(): void {\n this.titleService.setTitle('Sign up');\n this.signInUrl = `signin`;\n }\n send() {\n this.authService.requestPasswordReset(this.email).subscribe({\n next: () => {\n this.snackBarService.open('Password reset link sent.');\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n}\n","<div class=\"h-full flex items-start sm:items-center sm:justify-center\">\n <div\n class=\"w-full h-full justify-start md:h-auto p-6 lg:p-11 rounded-xl bg-[--rt-signin-inner-background] flex flex-col lg:flex-row md:justify-between xl:w-[1000px] lg:w-[900px] md:w-[600px]\"\n >\n <!-- header -->\n <div class=\"flex flex-col py-6 lg:w-1/2 lg:pr-4\">\n <div class=\"text-3xl font-medium mb-3 ml-2\" i18n>Reset password</div>\n <div class=\"text-md ml-2\" i18n>Enter your email, password reset link will send to this email.</div>\n </div>\n <div class=\"lg:w-1/2 lg:pl-4\">\n <!-- content -->\n <div class=\"pt-6 min-w-[320px] min-h-[214px]\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Email </mat-label>\n <input matInput [(ngModel)]=\"email\" />\n </mat-form-field>\n </div>\n <!-- actions -->\n <div class=\"flex justify-between items-center py-3 pl-2\">\n <!-- <a class=\"underline underline-offset-4 text-sm text-[--rt-brand-color]\" [href]=\"signUpUrl\" i18n>Sign in</a> -->\n <a class=\"underline underline-offset-4 text-sm text-[--rt-brand-color]\" [href]=\"signInUrl\" i18n>Sign in</a>\n <button mat-flat-button (click)=\"send()\" class=\"w-[128px]\" i18n>Send</button>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, OnInit, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { AuthService } from '@rolatech/angular-auth';\nimport { BaseComponent } from '@rolatech/angular-components';\n\n@Component({\n selector: 'rolatech-account-password-reset',\n imports: [FormsModule, MatInputModule, CommonModule, MatButtonModule],\n templateUrl: './password-reset.html',\n styleUrl: './password-reset.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class PasswordReset extends BaseComponent implements OnInit {\n authService = inject(AuthService);\n invalidToken = false;\n signInUrl = '';\n token = '';\n password = '';\n newPassword = '';\n ngOnInit(): void {\n this.titleService.setTitle('Sign up');\n this.signInUrl = `signin`;\n const token = this.route.snapshot.queryParams['token'] ?? undefined;\n if (token) {\n this.authService.validatePasswordRestToken(token).subscribe({\n next: (res) => {\n this.token = token;\n },\n error: (error) => {\n console.log(error);\n this.invalidToken = true;\n },\n });\n }\n }\n resetPassword() {\n if (this.password !== this.newPassword) {\n this.snackBarService.open('Password not match');\n return;\n }\n if (this.password.length < 8) {\n this.snackBarService.open('Password too weak');\n return;\n }\n this.authService.resetPassword({ token: this.token, newPassword: this.newPassword }).subscribe({\n next: (res) => {\n this.snackBarService.open('Password reset');\n this.router.navigateByUrl('/signin');\n },\n });\n }\n}\n","<div class=\"h-full flex items-start sm:items-center sm:justify-center\">\n <div\n class=\"w-full h-full justify-start md:h-auto p-6 lg:p-11 rounded-xl bg-[--rt-signin-inner-background] flex flex-col lg:flex-row md:justify-between xl:w-[1000px] lg:w-[900px] md:w-[600px]\"\n >\n @if (invalidToken) {\n <div>\n <div class=\"text-3xl font-medium mb-3 ml-2\" i18n>Link invalid or expired</div>\n <div class=\"text-md ml-2\" i18n>\n To reset your password, return to the login page and select \"Forgot?\" to send a new email.\n </div>\n <div class=\"flex justify-between items-center py-3 pl-2\">\n <a class=\"underline underline-offset-4 text-sm text-[--rt-brand-color]\" [href]=\"signInUrl\" i18n>Sign in</a>\n </div>\n </div>\n\n } @else {\n <div class=\"flex flex-col py-6 lg:w-1/2 lg:pr-4\">\n <div class=\"text-3xl font-medium mb-3 ml-2\" i18n>Reset password</div>\n <div class=\"text-md ml-2\" i18n>Enter your new password.</div>\n </div>\n <div class=\"lg:w-1/2 lg:pl-4\">\n <div class=\"pt-6 min-w-[320px] min-h-[214px]\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Password </mat-label>\n <input matInput [(ngModel)]=\"password\" required type=\"password\" />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Password </mat-label>\n <input matInput [(ngModel)]=\"newPassword\" required type=\"password\" />\n </mat-form-field>\n </div>\n <div class=\"flex justify-between items-center py-3 pl-2\">\n <a class=\"underline underline-offset-4 text-sm text-[--rt-brand-color]\" [href]=\"signInUrl\" i18n>Sign in</a>\n <button mat-flat-button (click)=\"resetPassword()\" class=\"w-[128px]\" i18n>Reset</button>\n </div>\n </div>\n }\n </div>\n</div>\n","import { Routes } from '@angular/router';\nimport { AuthGuard, ForbiddenComponent, UnauthorizedComponent } from '@rolatech/angular-auth';\nimport { LogoutComponent } from './components/logout/logout.component';\nimport { SigninComponent } from './pages/accounts/signin/signin.component';\nimport { SignupComponent } from './pages/accounts/signup/signup.component';\nimport { Forgot } from './pages/accounts/forgot/forgot';\nimport { PasswordReset } from './pages/accounts/password-reset/password-reset';\n\nexport const accountRoutes: Routes = [\n {\n path: '',\n pathMatch: 'full',\n redirectTo: 'signin',\n },\n { path: 'signin', canActivate: [AuthGuard], component: SigninComponent, data: { title: 'Signin' } },\n {\n path: 'signin/forgot',\n component: Forgot,\n data: { title: 'Forgot Password' },\n },\n { path: 'signup', component: SignupComponent, data: { title: 'Signup' } },\n { path: 'logout', component: LogoutComponent },\n // { path: 'login', loadChildren: () => import('./components/login/login.routes') },\n {\n path: 'reset-password',\n component: PasswordReset,\n data: { title: 'Password Reset' },\n },\n\n {\n path: 'unauthorized',\n component: UnauthorizedComponent,\n },\n {\n path: 'forbidden',\n component: ForbiddenComponent,\n },\n];\n","import { Routes } from '@angular/router';\n\nexport const myaccountRoutes: Routes = [\n {\n path: '',\n loadComponent: () => import('./pages/myaccount/home/home.component').then((c) => c.HomeComponent),\n data: { title: '首页' },\n },\n {\n path: 'personal-info',\n loadComponent: () => import('./pages/myaccount/personal-info/info.component').then((c) => c.InfoComponent),\n },\n {\n path: 'profile',\n loadComponent: () => import('./pages/myaccount/personal-info/profile/profile.component').then((c) => c.ProfileComponent),\n },\n {\n path: 'username',\n loadComponent: () => import('./pages/myaccount/personal-info/username/username.component').then((c) => c.UsernameComponent),\n },\n { path: 'gender', loadComponent: () => import('./pages/myaccount/gender/gender.component').then((c) => c.GenderComponent) },\n { path: 'email', loadComponent: () => import('./pages/myaccount/email/email.component').then((c) => c.EmailComponent) },\n {\n path: 'email-verification/:id',\n loadComponent: () =>\n import('./pages/myaccount/email-verification/email-verification.component').then((c) => c.EmailVerificationComponent),\n },\n { path: 'phone', loadComponent: () => import('./pages/myaccount/phone/phone.component').then((c) => c.PhoneComponent) },\n\n {\n path: 'address',\n loadChildren: () => import('./pages/myaccount/address/address.routes').then((r) => r.addressRoutes),\n },\n\n {\n path: 'security',\n loadChildren: () => import('./pages/myaccount/security/security.routes'),\n data: { title: 'Security' },\n },\n {\n path: 'notifications',\n loadChildren: () => import('@rolatech/angular-notification').then((m) => m.notificationRoutes),\n data: { title: 'Notifications' },\n },\n];\n","import { EnvironmentProviders, Provider, makeEnvironmentProviders } from '@angular/core';\nimport { ROUTES } from '@angular/router';\nimport { accountRoutes } from './lib/account.routes';\n\nexport function provideAngularAuthRoutes(): EnvironmentProviders {\n const provider: Provider[] = [\n {\n provide: ROUTES,\n useValue: accountRoutes,\n multi: true,\n },\n ];\n return makeEnvironmentProviders(provider);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i4"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rolatech/angular-account",
3
- "version": "20.2.6-beta.1",
3
+ "version": "20.2.7-beta.2",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@angular/core": "^20.0.0",
@@ -12,11 +12,11 @@
12
12
  "qrcode": "^1.5.4"
13
13
  },
14
14
  "dependencies": {
15
- "@rolatech/angular-common": "20.2.6-beta.1",
16
- "@rolatech/angular-components": "20.2.6-beta.1",
17
- "@rolatech/angular-services": "20.2.6-beta.1",
18
- "@rolatech/angular-auth": "20.2.6-beta.1",
19
- "@rolatech/angular-notification": "20.2.6-beta.1",
15
+ "@rolatech/angular-common": "20.2.7-beta.2",
16
+ "@rolatech/angular-components": "20.2.7-beta.2",
17
+ "@rolatech/angular-services": "20.2.7-beta.2",
18
+ "@rolatech/angular-auth": "20.2.7-beta.2",
19
+ "@rolatech/angular-notification": "20.2.7-beta.2",
20
20
  "tslib": "^2.3.0"
21
21
  },
22
22
  "sideEffects": false,