@rolatech/angular-account 20.2.9-beta.6 → 20.3.0-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 (40) hide show
  1. package/fesm2022/{rolatech-angular-account-address-add.component-CzMQwFw1.mjs → rolatech-angular-account-address-add.component-C9NLyuoq.mjs} +4 -4
  2. package/fesm2022/{rolatech-angular-account-address-add.component-CzMQwFw1.mjs.map → rolatech-angular-account-address-add.component-C9NLyuoq.mjs.map} +1 -1
  3. package/fesm2022/{rolatech-angular-account-address-billing.component-CYhd3-1W.mjs → rolatech-angular-account-address-billing.component-BB-5JX78.mjs} +4 -4
  4. package/fesm2022/{rolatech-angular-account-address-billing.component-CYhd3-1W.mjs.map → rolatech-angular-account-address-billing.component-BB-5JX78.mjs.map} +1 -1
  5. package/fesm2022/{rolatech-angular-account-address-detail.component-BeezDpvO.mjs → rolatech-angular-account-address-detail.component-DF0mkP3a.mjs} +4 -4
  6. package/fesm2022/{rolatech-angular-account-address-detail.component-BeezDpvO.mjs.map → rolatech-angular-account-address-detail.component-DF0mkP3a.mjs.map} +1 -1
  7. package/fesm2022/{rolatech-angular-account-address-home.component-DfYaDS7S.mjs → rolatech-angular-account-address-home.component-C3_9NfTC.mjs} +4 -4
  8. package/fesm2022/{rolatech-angular-account-address-home.component-DfYaDS7S.mjs.map → rolatech-angular-account-address-home.component-C3_9NfTC.mjs.map} +1 -1
  9. package/fesm2022/rolatech-angular-account-address-shipping.component-DkSphWpy.mjs +40 -0
  10. package/fesm2022/rolatech-angular-account-address-shipping.component-DkSphWpy.mjs.map +1 -0
  11. package/fesm2022/{rolatech-angular-account-address-work.component-DBxX4es0.mjs → rolatech-angular-account-address-work.component-xvD-CNRK.mjs} +4 -4
  12. package/fesm2022/{rolatech-angular-account-address-work.component-DBxX4es0.mjs.map → rolatech-angular-account-address-work.component-xvD-CNRK.mjs.map} +1 -1
  13. package/fesm2022/{rolatech-angular-account-address.routes-HCXKXdWY.mjs → rolatech-angular-account-address.routes-eJz2LvuN.mjs} +7 -7
  14. package/fesm2022/{rolatech-angular-account-address.routes-HCXKXdWY.mjs.map → rolatech-angular-account-address.routes-eJz2LvuN.mjs.map} +1 -1
  15. package/fesm2022/{rolatech-angular-account-email-verification.component-CeeTYVUg.mjs → rolatech-angular-account-email-verification.component-CRy2G-Eq.mjs} +4 -4
  16. package/fesm2022/{rolatech-angular-account-email-verification.component-CeeTYVUg.mjs.map → rolatech-angular-account-email-verification.component-CRy2G-Eq.mjs.map} +1 -1
  17. package/fesm2022/{rolatech-angular-account-email.component-D3gr4IXg.mjs → rolatech-angular-account-email.component-Cd6D18OJ.mjs} +4 -4
  18. package/fesm2022/{rolatech-angular-account-email.component-D3gr4IXg.mjs.map → rolatech-angular-account-email.component-Cd6D18OJ.mjs.map} +1 -1
  19. package/fesm2022/{rolatech-angular-account-gender.component-BVXEyW5M.mjs → rolatech-angular-account-gender.component-BXBDISZK.mjs} +4 -4
  20. package/fesm2022/{rolatech-angular-account-gender.component-BVXEyW5M.mjs.map → rolatech-angular-account-gender.component-BXBDISZK.mjs.map} +1 -1
  21. package/fesm2022/{rolatech-angular-account-home.component-C8nUVoGu.mjs → rolatech-angular-account-home.component-CJSTS8XX.mjs} +5 -5
  22. package/fesm2022/{rolatech-angular-account-home.component-C8nUVoGu.mjs.map → rolatech-angular-account-home.component-CJSTS8XX.mjs.map} +1 -1
  23. package/fesm2022/rolatech-angular-account-info.component-DhawWCgO.mjs +107 -0
  24. package/fesm2022/rolatech-angular-account-info.component-DhawWCgO.mjs.map +1 -0
  25. package/fesm2022/{rolatech-angular-account-phone.component-DQyeBwX9.mjs → rolatech-angular-account-phone.component-BqL6hZKc.mjs} +4 -4
  26. package/fesm2022/{rolatech-angular-account-phone.component-DQyeBwX9.mjs.map → rolatech-angular-account-phone.component-BqL6hZKc.mjs.map} +1 -1
  27. package/fesm2022/{rolatech-angular-account-profile.component-BdXmXOor.mjs → rolatech-angular-account-profile.component-yc50lO6J.mjs} +4 -4
  28. package/fesm2022/{rolatech-angular-account-profile.component-BdXmXOor.mjs.map → rolatech-angular-account-profile.component-yc50lO6J.mjs.map} +1 -1
  29. package/fesm2022/{rolatech-angular-account-security.routes-D1Snb_A1.mjs → rolatech-angular-account-security.routes-BalppM8l.mjs} +12 -12
  30. package/fesm2022/rolatech-angular-account-security.routes-BalppM8l.mjs.map +1 -0
  31. package/fesm2022/{rolatech-angular-account-username.component-Dfnm2TNs.mjs → rolatech-angular-account-username.component-BG-XgKNY.mjs} +4 -4
  32. package/fesm2022/{rolatech-angular-account-username.component-Dfnm2TNs.mjs.map → rolatech-angular-account-username.component-BG-XgKNY.mjs.map} +1 -1
  33. package/fesm2022/rolatech-angular-account.mjs +36 -36
  34. package/fesm2022/rolatech-angular-account.mjs.map +1 -1
  35. package/package.json +6 -6
  36. package/fesm2022/rolatech-angular-account-address-shipping.component-C2CFW-Q5.mjs +0 -40
  37. package/fesm2022/rolatech-angular-account-address-shipping.component-C2CFW-Q5.mjs.map +0 -1
  38. package/fesm2022/rolatech-angular-account-info.component-D-b2xEFv.mjs +0 -107
  39. package/fesm2022/rolatech-angular-account-info.component-D-b2xEFv.mjs.map +0 -1
  40. package/fesm2022/rolatech-angular-account-security.routes-D1Snb_A1.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"rolatech-angular-account-info.component-D-b2xEFv.mjs","sources":["../../../../packages/angular-account/src/lib/components/avatar-update-dialog/avatar-update-dialog.component.ts","../../../../packages/angular-account/src/lib/components/avatar-update-dialog/avatar-update-dialog.component.html","../../../../packages/angular-account/src/lib/pages/myaccount/personal-info/info.component.ts","../../../../packages/angular-account/src/lib/pages/myaccount/personal-info/info.component.html"],"sourcesContent":["import { Component, inject, input, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { AuthUserService } from '@rolatech/angular-auth';\nimport { MatIconModule } from '@angular/material/icon';\nimport { SnackBarService } from '@rolatech/angular-services';\n\n@Component({\n selector: 'rolatech-account-avatar-update-dialog',\n imports: [CommonModule, MatButtonModule, MatIconModule],\n templateUrl: './avatar-update-dialog.component.html',\n styleUrl: './avatar-update-dialog.component.scss',\n})\nexport class AvatarUpdateDialogComponent {\n dialogRef = inject(MatDialogRef);\n authUserService = inject(AuthUserService);\n snackBarService = inject(SnackBarService);\n data = inject(MAT_DIALOG_DATA) as { avatar: string };\n avatar: any = this.data.avatar ?? '';\n save = output<any>();\n\n cancel() {\n this.dialogRef.close();\n }\n onSave() {\n this.save.emit(this.avatar);\n }\n onUpload(event: any) {\n const file = event.target.files[0];\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n this.avatar = reader.result;\n // this.isUploading = true;\n const formData = new FormData();\n formData.append('file', file);\n\n this.authUserService.uploadAvatar(formData).subscribe({\n next: (res: any) => {\n this.snackBarService.open('Update successfully');\n // this.isUploading = false;\n },\n error: (e) => {\n // this.isUploading = false;\n // this.snackBar.open('Upload failed: ' + e.message);\n },\n });\n };\n reader.onerror = (error) => {\n // this.isUploading = false;\n };\n }\n }\n}\n","<div class=\"flex flex-col p-3 max-w-[500px] mx-auto\">\n <div class=\"text-xl font-bold p-3\" i18n>Update profile picture</div>\n <div class=\"px-3 py-8\">\n <div\n class=\"bg-[--rt-brand-color] w-[256px] h-[256px] rounded-full cursor-pointer hover:outline-gray-200 outline outline-transparent outline-4\"\n >\n @if (avatar) {\n <div class=\"w-[256px] h-[256px]\">\n <img [src]=\"avatar\" class=\"w-[256px] h-[256px] rounded-full object-cover\" alt=\"avatar img\" />\n </div>\n }\n </div>\n </div>\n\n <div class=\"py-3\">\n <input style=\"display: none\" type=\"file\" accept=\"image/*\" (change)=\"onUpload($event)\" #fileInput />\n <button mat-flat-button (click)=\"fileInput.click()\">\n <mat-icon>edit</mat-icon>\n <span i18n>Change profile picture</span>\n </button>\n </div>\n</div>\n","import { Component, computed, inject, OnInit } from '@angular/core';\nimport { AuthService, AuthUserService } from '@rolatech/angular-auth';\nimport { AddressFormatPipe, AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, ContainerComponent, SpinnerComponent } from '@rolatech/angular-components';\nimport { MatDialog } from '@angular/material/dialog';\nimport { UserGender } from '../../../contant/user';\nimport { AvatarUpdateDialogComponent } from '../../../components/avatar-update-dialog/avatar-update-dialog.component';\n\n@Component({\n imports: [AngularCommonModule, AngularComponentsModule, SpinnerComponent, ContainerComponent, AddressFormatPipe],\n selector: 'rolatech-account-info',\n templateUrl: './info.component.html',\n styleUrls: ['./info.component.scss'],\n})\nexport class InfoComponent implements OnInit {\n authUserService = inject(AuthUserService);\n dialog = inject(MatDialog);\n user = inject(AuthService).user;\n gender: any = UserGender;\n homeAddress;\n workAddress;\n billingAddress;\n\n ngOnInit(): void {\n this.findUserAddress();\n }\n updateAvatar(avatar: any) {\n const dialogRef = this.dialog.open(AvatarUpdateDialogComponent, {\n data: {\n avatar: avatar,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {\n location.reload();\n });\n }\n findUserAddress() {\n this.authUserService.findAllAddress({}).subscribe({\n next: (res) => {\n if (res.data) {\n this.homeAddress = res.data.filter((item) => item.type === 'HOME')[0];\n this.workAddress = res.data.filter((item) => item.type === 'WORK')[0];\n this.billingAddress = res.data.filter((item) => item.type === 'BILLING')[0];\n }\n },\n });\n }\n}\n","<rolatech-container>\n <div class=\"max-w-[820px] m-3\">\n <rolatech-spinner></rolatech-spinner>\n @if (user(); as user) {\n <div>\n <div class=\"flex flex-col justify-center items-center p-3 mb-8\">\n <p class=\"text-3xl\" i18n>Personal info</p>\n <p class=\"text-md\" i18n>Personal info and options to manage it.</p>\n </div>\n <div class=\"border border-[--rt-border-color] rounded px-3 pt-3 mb-8\">\n <div class=\"p-3 text-xl\" i18n>Basic info</div>\n <mat-nav-list>\n <mat-list-item (click)=\"updateAvatar(user?.avatar)\" class=\"h-16\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex flex-1 items-center\">\n <span class=\"w-24 text-sm\" i18n>Profile picture</span>\n <span class=\"w-24 text-sm text-[--rt-text-primary]\" i18n>A picture helps people recognize you</span>\n </div>\n <div\n class=\"mr-6 bg-[--rt-brand-color] w-9 h-9 rounded-full cursor-pointer hover:outline-gray-200 outline outline-transparent outline-4\"\n >\n @if (user.avatar) {\n <div class=\"w-9 h-9\">\n <img [src]=\"user.avatar\" class=\"w-9 h-9 rounded-full object-cover\" alt=\"avatar img\" />\n </div>\n }\n </div>\n </div>\n </mat-list-item>\n <mat-divider class=\"mx-3\"></mat-divider>\n <mat-list-item routerLink=\"../profile\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex flex-1 items-center\">\n <span class=\"w-24 text-sm\" i18n>Name</span>\n <span>{{ user?.name }}</span>\n </div>\n <span>\n <mat-icon> navigate_next </mat-icon>\n </span>\n </div>\n </mat-list-item>\n <mat-divider class=\"mx-3\"></mat-divider>\n <mat-list-item routerLink=\"../gender\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex flex-1 items-center\">\n <span class=\"w-24 text-sm\" i18n>Gender</span>\n <span>{{ gender[user.gender] || 'Untitled' }}</span>\n </div>\n <span>\n <mat-icon> navigate_next </mat-icon>\n </span>\n </div>\n </mat-list-item>\n <mat-divider class=\"mx-3\"></mat-divider>\n <mat-list-item routerLink=\"../username\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex flex-1 items-center\">\n <span class=\"w-24 text-sm\">Username</span>\n <span>{{ user.username }}</span>\n </div>\n <span>\n <mat-icon> navigate_next </mat-icon>\n </span>\n </div>\n </mat-list-item>\n </mat-nav-list>\n </div>\n <!-- contact -->\n <div class=\"border border-[--rt-border-color] rounded px-3 pt-3 mb-8\">\n <div class=\"p-3 text-xl\" i18n>Contact</div>\n <mat-nav-list>\n <mat-list-item routerLink=\"../email\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex flex-1 items-center\">\n <span class=\"w-24 text-sm\" i18n>Email</span>\n <span i18n>{{ user.email || 'Untitled' }}</span>\n </div>\n <!-- <mat-icon mat-list-icon>arrow_drop_down</mat-icon> -->\n <span>\n <mat-icon> navigate_next </mat-icon>\n </span>\n </div>\n </mat-list-item>\n <mat-divider class=\"mx-3\"></mat-divider>\n <mat-list-item routerLink=\"../phone\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex flex-1 items-center\">\n <span class=\"w-24 text-sm\" i18n>Phone</span>\n <span i18n>{{ user.phone || 'Untitled' }}</span>\n </div>\n <!-- <mat-icon mat-list-icon>arrow_drop_down</mat-icon> -->\n <span>\n <mat-icon> navigate_next </mat-icon>\n </span>\n </div>\n </mat-list-item>\n </mat-nav-list>\n </div>\n <!-- address -->\n <div class=\"border border-[--rt-border-color] rounded px-3 pt-3\">\n <div class=\"p-3 text-xl\" i18n>Addresses</div>\n <mat-nav-list>\n <mat-list-item routerLink=\"../address/home\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex flex-1 items-center justify-between\">\n <span class=\"w-24 text-sm\" i18n>Home address</span>\n <span>{{ homeAddress | address }}</span>\n </div>\n <!-- <mat-icon mat-list-icon>arrow_drop_down</mat-icon> -->\n <span>\n <mat-icon> navigate_next </mat-icon>\n </span>\n </div>\n </mat-list-item>\n <mat-divider class=\"mx-3\"></mat-divider>\n <mat-list-item routerLink=\"../address/work\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex flex-1 items-center justify-between\">\n <span class=\"w-24 text-sm\" i18n>Work address</span>\n <span>{{ workAddress | address }}</span>\n </div>\n <!-- <mat-icon mat-list-icon>arrow_drop_down</mat-icon> -->\n <span>\n <mat-icon> navigate_next </mat-icon>\n </span>\n </div>\n </mat-list-item>\n <mat-list-item routerLink=\"../address/billing\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex flex-1 items-center justify-between\">\n <span class=\"w-24 text-sm\" i18n>Billing address</span>\n <span>{{ billingAddress | address }}</span>\n </div>\n <!-- <mat-icon mat-list-icon>arrow_drop_down</mat-icon> -->\n <span>\n <mat-icon> navigate_next </mat-icon>\n </span>\n </div>\n </mat-list-item>\n <mat-list-item routerLink=\"../address/shipping\">\n <div class=\"flex items-center justify-between\">\n <div class=\"flex flex-1 items-center justify-between\">\n <span class=\"w-24 text-sm\" i18n>Shipping address</span>\n <!-- <span>{{ shippingAddress || 'Untitled' }}</span> -->\n </div>\n <!-- <mat-icon mat-list-icon>arrow_drop_down</mat-icon> -->\n <span>\n <mat-icon> navigate_next </mat-icon>\n </span>\n </div>\n </mat-list-item>\n </mat-nav-list>\n </div>\n </div>\n }\n </div>\n</rolatech-container>\n"],"names":["i2"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"rolatech-angular-account-security.routes-D1Snb_A1.mjs","sources":["../../../../packages/angular-account/src/lib/pages/myaccount/security/security-index/security-index.component.ts","../../../../packages/angular-account/src/lib/pages/myaccount/security/security-index/security-index.component.html","../../../../packages/angular-account/src/lib/pages/myaccount/security/security-password/security-password.component.ts","../../../../packages/angular-account/src/lib/pages/myaccount/security/security-password/security-password.component.html","../../../../packages/angular-account/src/lib/pages/myaccount/security/security-verification/security-verification.component.ts","../../../../packages/angular-account/src/lib/pages/myaccount/security/security-verification/security-verification.component.html","../../../../packages/angular-account/src/lib/pages/myaccount/security/security.routes.ts"],"sourcesContent":["import { Component, OnInit, inject } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AuthService, FaceidDetectDialogComponent } from '@rolatech/angular-auth';\nimport { AngularCommonModule, APP_CONFIG } from '@rolatech/angular-common';\nimport { AngularComponentsModule, ContainerComponent, WechatConnectDialogComponent } from '@rolatech/angular-components';\nimport { DialogService, SnackBarService } from '@rolatech/angular-services';\n\n@Component({\n imports: [AngularCommonModule, AngularComponentsModule, ContainerComponent],\n selector: 'rolatech-account-security-index',\n templateUrl: './security-index.component.html',\n styleUrls: ['./security-index.component.scss'],\n})\nexport class SecurityIndexComponent implements OnInit {\n dialog = inject(MatDialog);\n authService = inject(AuthService);\n dialogService = inject(DialogService);\n snackBarService = inject(SnackBarService);\n environment = inject(APP_CONFIG);\n bind = false;\n verified = false;\n\n constructor() { }\n\n ngOnInit(): void {\n this.wechatStatus();\n }\n faceId() {\n const options = {\n title: 'Verify',\n message: 'Use WeChat scan QR Code',\n component: FaceidDetectDialogComponent,\n cancelText: 'Cancel',\n confirmText: 'Ok',\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (result) => {\n if (result) {\n this.checkFaceIdStatus();\n }\n },\n });\n }\n checkFaceIdStatus() {\n this.authService.faceIdStatus().subscribe({\n next: (res) => {\n this.verified = res.data.verified;\n if (!res.data.verified) {\n this.snackBarService.open('Unverified');\n }\n },\n error: (error) => {\n this.snackBarService.open(error.message);\n },\n });\n }\n connectWeChat() {\n const redirectUri = `${window.location.origin}/login`;\n const options = {\n title: 'Connect WeChat',\n message: 'Connect wechat, improve account security and convenience',\n cancelText: 'Cancel',\n confirmText: 'Confirm',\n component: WechatConnectDialogComponent,\n data: {\n appId: this.environment.wechat.appId,\n redirectUri: redirectUri,\n state: 'add',\n },\n };\n this.dialogService.open(options);\n this.dialogService.confirmed().subscribe({\n next: (result) => {\n if (result) {\n this.wechatStatus();\n }\n },\n });\n }\n disconnectWeChat() {\n this.authService.wechatDisconnect().subscribe({\n next: (res) => {\n this.bind = false;\n },\n });\n }\n wechatStatus() {\n this.authService.wechatStatus({ id: 'me' }).subscribe({\n next: (res) => {\n this.bind = res.data?.openid !== undefined;\n },\n });\n }\n}\n","<rolatech-container>\n <div class=\"max-w-[820px] m-3\">\n <div class=\"flex flex-col justify-center items-center p-3 mb-12\">\n <p class=\"text-3xl\" i18n>Security</p>\n <p class=\"text-md\" i18n>Your account security settings</p>\n </div>\n <div class=\"border border-[--rt-border-color] rounded px-3 pt-3\">\n <div class=\"p-3 text-xl\" i18n>Security info</div>\n <mat-nav-list>\n <mat-list-item (click)=\"faceId()\">\n <div class=\"flex items-center justify-between\">\n <span i18n>Real-name authentication</span>\n <!-- <mat-icon mat-list-icon>arrow_drop_down</mat-icon> -->\n @if (!verified) {\n <span class=\"mr-3\" i18n> Unverified </span>\n }\n @if (verified) {\n <a class=\"mr-3\" i18n> Verified </a>\n }\n </div>\n </mat-list-item>\n <mat-divider></mat-divider>\n <mat-list-item (click)=\"connectWeChat()\">\n <div class=\"flex items-center justify-between\">\n <span i18n>WeChat connect</span>\n <!-- <mat-icon mat-list-icon>arrow_drop_down</mat-icon> -->\n @if (!bind) {\n <span class=\"mr-3\" i18n> Connect </span>\n }\n @if (bind) {\n <a class=\"mr-3\" i18n> Connected </a>\n }\n </div>\n </mat-list-item>\n <mat-divider></mat-divider>\n <mat-list-item routerLink=\"./password\">\n <div class=\"flex items-center justify-between\">\n <span i18n>Password set</span>\n <span>\n <mat-icon> navigate_next </mat-icon>\n </span>\n </div>\n </mat-list-item>\n </mat-nav-list>\n </div>\n </div>\n</rolatech-container>\n","import { Component, OnInit, inject } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { AuthService } from '@rolatech/angular-auth';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, ContainerComponent, ToolbarComponent } from '@rolatech/angular-components';\nimport { BackButtonDirective } from '@rolatech/angular-services';\n\n@Component({\n imports: [AngularCommonModule, AngularComponentsModule, ContainerComponent, ToolbarComponent, BackButtonDirective],\n selector: 'rolatech-account-security-password',\n templateUrl: './security-password.component.html',\n styleUrls: ['./security-password.component.scss'],\n})\nexport class SecurityPasswordComponent implements OnInit {\n formBuilder = inject(FormBuilder);\n authService = inject(AuthService);\n snackBar = inject(MatSnackBar);\n passwordForm!: FormGroup;\n\n ngOnInit(): void {\n this.passwordForm = this.formBuilder.group({\n oldPassword: ['', Validators.required],\n newPassword: ['', Validators.required],\n ne2Password: ['', Validators.required],\n });\n }\n save() {\n if (!this.passwordForm.valid) {\n return;\n }\n this.authService.changePassword(this.passwordForm.value).subscribe({\n next: (res: any) => {\n this.snackBar.open(res.message);\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n}\n","<rolatech-container>\n <rolatech-toolbar title=\"Password\" subtitle=\"Change password\" link=\"/security\" divider></rolatech-toolbar>\n <div class=\"py-3\">\n <form [formGroup]=\"passwordForm\">\n <div class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> Old password</mat-label>\n <input matInput type=\"password\" formControlName=\"oldPassword\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> New Password </mat-label>\n <input matInput type=\"password\" formControlName=\"newPassword\" required />\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label i18n> New password </mat-label>\n <input matInput type=\"password\" formControlName=\"ne2Password\" required />\n </mat-form-field>\n </div>\n </form>\n <div class=\"flex justify-end items-center mt-3\">\n <button mat-button rolatechBackButton i18n>Cancel</button>\n <button mat-flat-button class=\"w-[128px] p-2 ml-3\" (click)=\"save()\" i18n>Save</button>\n </div>\n </div>\n</rolatech-container>\n<div class=\"max-w-[1120px] m-auto px-6\"></div>\n","import { Component, ElementRef, OnInit, Renderer2, inject, viewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AuthService } from '@rolatech/angular-auth';\nimport { AngularCommonModule } from '@rolatech/angular-common';\nimport { AngularComponentsModule, SpinnerComponent } from '@rolatech/angular-components';\nimport * as QRCode from 'qrcode';\n\n@Component({\n imports: [AngularCommonModule, AngularComponentsModule, SpinnerComponent],\n selector: 'rolatech-account-security-verification',\n templateUrl: './security-verification.component.html',\n styleUrls: ['./security-verification.component.scss'],\n})\nexport class SecurityVerificationComponent implements OnInit {\n dialog = inject(MatDialog);\n authService = inject(AuthService);\n verified = false;\n renderer = inject(Renderer2);\n qrcElement = viewChild.required<ElementRef>('qrcode');\n loading = false;\n BizToken = '';\n identification = {};\n ngOnInit(): void {\n this.checkFaceIdStatus();\n }\n checkFaceIdStatus() {\n this.authService.faceIdStatus().subscribe({\n next: (res) => {\n this.verified = res.data.verified;\n },\n });\n }\n verify() {\n this.loading = true;\n this.authService.requestFaceIdDetect().subscribe({\n next: ({ data }) => {\n this.genQRCode(data.url);\n // this.loop();\n },\n error: () => {\n this.loading = false;\n },\n });\n }\n loop() {\n const interval = setInterval(() => {\n this.authService.faceIdStatus().subscribe({\n next: (res) => {\n if (res) {\n clearInterval(interval);\n }\n },\n });\n }, 2000);\n }\n\n genQRCode(url: string) {\n const element: Element = this.renderer.createElement('canvas');\n this.toCanvas(element, url)\n .then(() => {\n this.renderElement(element);\n })\n .catch((e) => {\n this.removeElementChildren();\n });\n }\n\n private toCanvas(canvas: any, url: any): Promise<any> {\n return QRCode.toCanvas(canvas, url, {\n errorCorrectionLevel: 'M',\n width: 200,\n });\n }\n private renderElement(element: any): void {\n this.removeElementChildren();\n this.renderer.appendChild(this.qrcElement().nativeElement, element);\n }\n private removeElementChildren(): void {\n for (const node of this.qrcElement().nativeElement.childNodes) {\n this.renderer.removeChild(this.qrcElement().nativeElement, node);\n }\n }\n}\n","<div class=\"max-w-[1120px] m-auto\">\n <div class=\"max-w-[820px]\">\n <div class=\"flex flex-col justify-center items-center p-3 mb-12\">\n <p class=\"text-3xl\" i18n>Verify real-name</p>\n <p class=\"text-md\" i18n>More secure after authentication</p>\n </div>\n </div>\n @if (verified) {\n <div class=\"p-3\">\n <div class=\"text-md font-bold py-3\" i18n>Verified</div>\n <div class=\"flex flex-col\">\n <div><span class=\"text-[--rt-text-secondary]\" i18n>Name: </span></div>\n <div><span class=\"text-[--rt-text-secondary]\" i18n>ID: </span></div>\n </div>\n </div>\n } @else {\n <div i18n>Unverified</div>\n <button mat-raised-button (click)=\"verify()\" i18n>Verify</button>\n <div #qrcode>\n @if (loading) {\n <div>\n <rolatech-spinner></rolatech-spinner>\n </div>\n }\n </div>\n }\n</div>\n","import { Routes } from '@angular/router';\nimport { SecurityIndexComponent } from './security-index/security-index.component';\nimport { SecurityPasswordComponent } from './security-password/security-password.component';\nimport { SecurityFaceidComponent } from './security-faceid/security-faceid.component';\nimport { SecurityVerificationComponent } from './security-verification/security-verification.component';\n\nconst securityRoutes: Routes = [\n {\n path: '',\n component: SecurityIndexComponent,\n },\n {\n path: 'verification',\n component: SecurityVerificationComponent,\n },\n // {\n // path: 'faceid',\n // component: SecurityFaceidComponent,\n // },\n { path: 'password', component: SecurityPasswordComponent },\n];\n\nexport default securityRoutes;\n"],"names":["i1","i2","i3","i4"],"mappings":"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"}