@rolatech/angular-account 20.0.0-beta.3 → 20.0.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{rolatech-angular-account-security.routes-CQH41xZs.mjs → rolatech-angular-account-security.routes-BzdJKvBL.mjs} +4 -4
- package/fesm2022/rolatech-angular-account-security.routes-BzdJKvBL.mjs.map +1 -0
- package/fesm2022/rolatech-angular-account.mjs +35 -54
- package/fesm2022/rolatech-angular-account.mjs.map +1 -1
- package/package.json +6 -6
- package/fesm2022/rolatech-angular-account-security.routes-CQH41xZs.mjs.map +0 -1
|
@@ -3,7 +3,7 @@ import { inject, Component, Renderer2, viewChild } from '@angular/core';
|
|
|
3
3
|
import { MatDialog } from '@angular/material/dialog';
|
|
4
4
|
import * as i2$1 from '@rolatech/angular-auth';
|
|
5
5
|
import { AuthService, FaceidDetectDialogComponent } from '@rolatech/angular-auth';
|
|
6
|
-
import { AngularCommonModule } from '@rolatech/angular-common';
|
|
6
|
+
import { APP_CONFIG, AngularCommonModule } from '@rolatech/angular-common';
|
|
7
7
|
import { WechatConnectDialogComponent, AngularComponentsModule, ContainerComponent, ToolbarComponent, SpinnerComponent } from '@rolatech/angular-components';
|
|
8
8
|
import { DialogService, SnackBarService, BackButtonDirective } from '@rolatech/angular-services';
|
|
9
9
|
import * as i1 from '@angular/router';
|
|
@@ -24,6 +24,7 @@ class SecurityIndexComponent {
|
|
|
24
24
|
this.authService = inject(AuthService);
|
|
25
25
|
this.dialogService = inject(DialogService);
|
|
26
26
|
this.snackBarService = inject(SnackBarService);
|
|
27
|
+
this.environment = inject(APP_CONFIG);
|
|
27
28
|
this.bind = false;
|
|
28
29
|
this.verified = false;
|
|
29
30
|
}
|
|
@@ -61,7 +62,6 @@ class SecurityIndexComponent {
|
|
|
61
62
|
});
|
|
62
63
|
}
|
|
63
64
|
connectWeChat() {
|
|
64
|
-
// const redirectUri = 'https://accounts.pinxiaoke.cn/login';
|
|
65
65
|
const redirectUri = `${window.location.origin}/login`;
|
|
66
66
|
const options = {
|
|
67
67
|
title: 'Connect WeChat',
|
|
@@ -70,7 +70,7 @@ class SecurityIndexComponent {
|
|
|
70
70
|
confirmText: 'Confirm',
|
|
71
71
|
component: WechatConnectDialogComponent,
|
|
72
72
|
data: {
|
|
73
|
-
appId:
|
|
73
|
+
appId: this.environment.wechat.appId,
|
|
74
74
|
redirectUri: redirectUri,
|
|
75
75
|
state: 'add',
|
|
76
76
|
},
|
|
@@ -234,4 +234,4 @@ const securityRoutes = [
|
|
|
234
234
|
];
|
|
235
235
|
|
|
236
236
|
export { securityRoutes as default };
|
|
237
|
-
//# sourceMappingURL=rolatech-angular-account-security.routes-
|
|
237
|
+
//# sourceMappingURL=rolatech-angular-account-security.routes-BzdJKvBL.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rolatech-angular-account-security.routes-BzdJKvBL.mjs","sources":["../tmp-esm2022/lib/pages/myaccount/security/security-index/security-index.component.js","../tmp-esm2022/lib/pages/myaccount/security/security-password/security-password.component.js","../tmp-esm2022/lib/pages/myaccount/security/security-verification/security-verification.component.js","../tmp-esm2022/lib/pages/myaccount/security/security.routes.js"],"sourcesContent":["import { Component, 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';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nimport * as i2 from \"@angular/material/divider\";\nimport * as i3 from \"@angular/material/icon\";\nimport * as i4 from \"@angular/material/list\";\nexport class SecurityIndexComponent {\n constructor() {\n this.dialog = inject(MatDialog);\n this.authService = inject(AuthService);\n this.dialogService = inject(DialogService);\n this.snackBarService = inject(SnackBarService);\n this.environment = inject(APP_CONFIG);\n this.bind = false;\n this.verified = false;\n }\n ngOnInit() {\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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: SecurityIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: SecurityIndexComponent, isStandalone: true, selector: \"rolatech-account-security-index\", ngImport: i0, template: \"<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\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"directive\", type: i1.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i2.MatDivider, selector: \"mat-divider\", inputs: [\"vertical\", \"inset\"] }, { kind: \"component\", type: i3.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: i4.MatNavList, selector: \"mat-nav-list\", exportAs: [\"matNavList\"] }, { kind: \"component\", type: i4.MatListItem, selector: \"mat-list-item, a[mat-list-item], button[mat-list-item]\", inputs: [\"activated\"], exportAs: [\"matListItem\"] }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: SecurityIndexComponent, decorators: [{\n type: Component,\n args: [{ imports: [AngularCommonModule, AngularComponentsModule, ContainerComponent], selector: 'rolatech-account-security-index', template: \"<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\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1hY2NvdW50L3NyYy9saWIvcGFnZXMvbXlhY2NvdW50L3NlY3VyaXR5L3NlY3VyaXR5LWluZGV4L3NlY3VyaXR5LWluZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItYWNjb3VudC9zcmMvbGliL3BhZ2VzL215YWNjb3VudC9zZWN1cml0eS9zZWN1cml0eS1pbmRleC9zZWN1cml0eS1pbmRleC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6SCxPQUFPLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFRNUUsTUFBTSxPQUFPLHNCQUFzQjtJQVNqQztRQVJBLFdBQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0IsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEMsa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEMsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUNiLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFFRCxDQUFDO0lBRWpCLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELE1BQU07UUFDSixNQUFNLE9BQU8sR0FBRztZQUNkLEtBQUssRUFBRSxRQUFRO1lBQ2YsT0FBTyxFQUFFLHlCQUF5QjtZQUNsQyxTQUFTLEVBQUUsMkJBQTJCO1lBQ3RDLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUN2QyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDZixJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNYLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUMzQixDQUFDO1lBQ0gsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUN4QyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzFDLENBQUM7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNDLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsYUFBYTtRQUNYLE1BQU0sV0FBVyxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLFFBQVEsQ0FBQztRQUN0RCxNQUFNLE9BQU8sR0FBRztZQUNkLEtBQUssRUFBRSxnQkFBZ0I7WUFDdkIsT0FBTyxFQUFFLDBEQUEwRDtZQUNuRSxVQUFVLEVBQUUsUUFBUTtZQUNwQixXQUFXLEVBQUUsU0FBUztZQUN0QixTQUFTLEVBQUUsNEJBQTRCO1lBQ3ZDLElBQUksRUFBRTtnQkFDSixLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSztnQkFDcEMsV0FBVyxFQUFFLFdBQVc7Z0JBQ3hCLEtBQUssRUFBRSxLQUFLO2FBQ2I7U0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDdkMsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3RCLENBQUM7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDNUMsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDcEIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDcEQsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sS0FBSyxTQUFTLENBQUM7WUFDN0MsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBaEZVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLDJGQ2JuQywrd0RBK0NBLHlERHZDWSxtQkFBbUIsK1FBQUUsdUJBQXVCLDJoQkFBRSxrQkFBa0I7OzJGQUsvRCxzQkFBc0I7a0JBTmxDLFNBQVM7OEJBQ0MsQ0FBQyxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsQ0FBQyxZQUNqRSxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIEZhY2VpZERldGVjdERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHsgQW5ndWxhckNvbW1vbk1vZHVsZSwgQVBQX0NPTkZJRyB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50c01vZHVsZSwgQ29udGFpbmVyQ29tcG9uZW50LCBXZWNoYXRDb25uZWN0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBTbmFja0JhclNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbQW5ndWxhckNvbW1vbk1vZHVsZSwgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsIENvbnRhaW5lckNvbXBvbmVudF0sXG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtYWNjb3VudC1zZWN1cml0eS1pbmRleCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWN1cml0eS1pbmRleC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlY3VyaXR5LWluZGV4LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNlY3VyaXR5SW5kZXhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBkaWFsb2dTZXJ2aWNlID0gaW5qZWN0KERpYWxvZ1NlcnZpY2UpO1xuICBzbmFja0JhclNlcnZpY2UgPSBpbmplY3QoU25hY2tCYXJTZXJ2aWNlKTtcbiAgZW52aXJvbm1lbnQgPSBpbmplY3QoQVBQX0NPTkZJRyk7XG4gIGJpbmQgPSBmYWxzZTtcbiAgdmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMud2VjaGF0U3RhdHVzKCk7XG4gIH1cbiAgZmFjZUlkKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICB0aXRsZTogJ1ZlcmlmeScsXG4gICAgICBtZXNzYWdlOiAnVXNlIFdlQ2hhdCBzY2FuIFFSIENvZGUnLFxuICAgICAgY29tcG9uZW50OiBGYWNlaWREZXRlY3REaWFsb2dDb21wb25lbnQsXG4gICAgICBjYW5jZWxUZXh0OiAnQ2FuY2VsJyxcbiAgICAgIGNvbmZpcm1UZXh0OiAnT2snLFxuICAgIH07XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4ob3B0aW9ucyk7XG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbmZpcm1lZCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLmNoZWNrRmFjZUlkU3RhdHVzKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgY2hlY2tGYWNlSWRTdGF0dXMoKSB7XG4gICAgdGhpcy5hdXRoU2VydmljZS5mYWNlSWRTdGF0dXMoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnZlcmlmaWVkID0gcmVzLmRhdGEudmVyaWZpZWQ7XG4gICAgICAgIGlmICghcmVzLmRhdGEudmVyaWZpZWQpIHtcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKCdVbnZlcmlmaWVkJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oZXJyb3IubWVzc2FnZSk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGNvbm5lY3RXZUNoYXQoKSB7XG4gICAgY29uc3QgcmVkaXJlY3RVcmkgPSBgJHt3aW5kb3cubG9jYXRpb24ub3JpZ2lufS9sb2dpbmA7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIHRpdGxlOiAnQ29ubmVjdCBXZUNoYXQnLFxuICAgICAgbWVzc2FnZTogJ0Nvbm5lY3Qgd2VjaGF0LCBpbXByb3ZlIGFjY291bnQgc2VjdXJpdHkgYW5kIGNvbnZlbmllbmNlJyxcbiAgICAgIGNhbmNlbFRleHQ6ICdDYW5jZWwnLFxuICAgICAgY29uZmlybVRleHQ6ICdDb25maXJtJyxcbiAgICAgIGNvbXBvbmVudDogV2VjaGF0Q29ubmVjdERpYWxvZ0NvbXBvbmVudCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgYXBwSWQ6IHRoaXMuZW52aXJvbm1lbnQud2VjaGF0LmFwcElkLFxuICAgICAgICByZWRpcmVjdFVyaTogcmVkaXJlY3RVcmksXG4gICAgICAgIHN0YXRlOiAnYWRkJyxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihvcHRpb25zKTtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY29uZmlybWVkKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHRoaXMud2VjaGF0U3RhdHVzKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgZGlzY29ubmVjdFdlQ2hhdCgpIHtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLndlY2hhdERpc2Nvbm5lY3QoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLmJpbmQgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgd2VjaGF0U3RhdHVzKCkge1xuICAgIHRoaXMuYXV0aFNlcnZpY2Uud2VjaGF0U3RhdHVzKHsgaWQ6ICdtZScgfSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5iaW5kID0gcmVzLmRhdGE/Lm9wZW5pZCAhPT0gdW5kZWZpbmVkO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cIm1heC13LVs4MjBweF0gbS0zXCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIHAtMyBtYi0xMlwiPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LTN4bFwiIGkxOG4+U2VjdXJpdHk8L3A+XG4gICAgICA8cCBjbGFzcz1cInRleHQtbWRcIiBpMThuPllvdXIgYWNjb3VudCBzZWN1cml0eSBzZXR0aW5nczwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci1bLS1ydC1ib3JkZXItY29sb3JdIHJvdW5kZWQgcHgtMyBwdC0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicC0zIHRleHQteGxcIiBpMThuPlNlY3VyaXR5IGluZm88L2Rpdj5cbiAgICAgIDxtYXQtbmF2LWxpc3Q+XG4gICAgICAgIDxtYXQtbGlzdC1pdGVtIChjbGljayk9XCJmYWNlSWQoKVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgIDxzcGFuIGkxOG4+UmVhbC1uYW1lIGF1dGhlbnRpY2F0aW9uPC9zcGFuPlxuICAgICAgICAgICAgPCEtLSA8bWF0LWljb24gbWF0LWxpc3QtaWNvbj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPiAtLT5cbiAgICAgICAgICAgIEBpZiAoIXZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXItM1wiIGkxOG4+IFVudmVyaWZpZWQgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICh2ZXJpZmllZCkge1xuICAgICAgICAgICAgICA8YSBjbGFzcz1cIm1yLTNcIiBpMThuPiBWZXJpZmllZCA8L2E+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDxtYXQtbGlzdC1pdGVtIChjbGljayk9XCJjb25uZWN0V2VDaGF0KClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICA8c3BhbiBpMThuPldlQ2hhdCBjb25uZWN0PC9zcGFuPlxuICAgICAgICAgICAgPCEtLSA8bWF0LWljb24gbWF0LWxpc3QtaWNvbj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPiAtLT5cbiAgICAgICAgICAgIEBpZiAoIWJpbmQpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtci0zXCIgaTE4bj4gQ29ubmVjdCA8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKGJpbmQpIHtcbiAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtci0zXCIgaTE4bj4gQ29ubmVjdGVkIDwvYT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgPG1hdC1saXN0LWl0ZW0gcm91dGVyTGluaz1cIi4vcGFzc3dvcmRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgICA8c3BhbiBpMThuPlBhc3N3b3JkIHNldDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICA8bWF0LWljb24+IG5hdmlnYXRlX25leHQgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgPC9tYXQtbmF2LWxpc3Q+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9yb2xhdGVjaC1jb250YWluZXI+XG4iXX0=","import { Component } from '@angular/core';\nimport { 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';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@rolatech/angular-auth\";\nimport * as i3 from \"@angular/material/snack-bar\";\nimport * as i4 from \"@angular/material/button\";\nimport * as i5 from \"@angular/material/form-field\";\nimport * as i6 from \"@angular/material/input\";\nexport class SecurityPasswordComponent {\n constructor(formBuilder, authService, snackBar) {\n this.formBuilder = formBuilder;\n this.authService = authService;\n this.snackBar = snackBar;\n }\n ngOnInit() {\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) => {\n this.snackBar.open(res.message);\n },\n error: (e) => {\n this.snackBar.open(e.message);\n },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: SecurityPasswordComponent, deps: [{ token: i1.FormBuilder }, { token: i2.AuthService }, { token: i3.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.3\", type: SecurityPasswordComponent, isStandalone: true, selector: \"rolatech-account-security-password\", ngImport: i0, template: \"<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\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"directive\", type: i1.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i1.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i1.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i4.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i5.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i5.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i6.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"component\", type: ContainerComponent, selector: \"rolatech-container\" }, { kind: \"component\", type: ToolbarComponent, selector: \"rolatech-toolbar\", inputs: [\"title\", \"subtitle\", \"back\", \"link\", \"large\", \"divider\"] }, { kind: \"directive\", type: BackButtonDirective, selector: \"[rolatechBackButton]\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: SecurityPasswordComponent, decorators: [{\n type: Component,\n args: [{ imports: [AngularCommonModule, AngularComponentsModule, ContainerComponent, ToolbarComponent, BackButtonDirective], selector: 'rolatech-account-security-password', template: \"<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\" }]\n }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.AuthService }, { type: i3.MatSnackBar }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1hY2NvdW50L3NyYy9saWIvcGFnZXMvbXlhY2NvdW50L3NlY3VyaXR5L3NlY3VyaXR5LXBhc3N3b3JkL3NlY3VyaXR5LXBhc3N3b3JkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItYWNjb3VudC9zcmMvbGliL3BhZ2VzL215YWNjb3VudC9zZWN1cml0eS9zZWN1cml0eS1wYXNzd29yZC9zZWN1cml0eS1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBYSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFRakUsTUFBTSxPQUFPLHlCQUF5QjtJQUdwQyxZQUNVLFdBQXdCLEVBQ3hCLFdBQXdCLEVBQ3hCLFFBQXFCO1FBRnJCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQWE7SUFDNUIsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3pDLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3RDLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3RDLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1NBQ3ZDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0IsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNqRSxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEMsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBNUJVLHlCQUF5QjtrR0FBekIseUJBQXlCLDhGQ2R0Qywrc0NBMEJBLHlERGpCWSxtQkFBbUIseXFDQUFFLHVCQUF1QixtK0JBQUUsa0JBQWtCLCtEQUFFLGdCQUFnQixnSUFBRSxtQkFBbUI7OzJGQUt0Ryx5QkFBeUI7a0JBTnJDLFNBQVM7OEJBQ0MsQ0FBQyxtQkFBbUIsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQyxZQUN4RyxvQ0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItYXV0aCc7XG5pbXBvcnQgeyBBbmd1bGFyQ29tbW9uTW9kdWxlIH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItY29tbW9uJztcbmltcG9ydCB7IEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLCBDb250YWluZXJDb21wb25lbnQsIFRvb2xiYXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IEJhY2tCdXR0b25EaXJlY3RpdmUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbQW5ndWxhckNvbW1vbk1vZHVsZSwgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsIENvbnRhaW5lckNvbXBvbmVudCwgVG9vbGJhckNvbXBvbmVudCwgQmFja0J1dHRvbkRpcmVjdGl2ZV0sXG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtYWNjb3VudC1zZWN1cml0eS1wYXNzd29yZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWN1cml0eS1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlY3VyaXR5LXBhc3N3b3JkLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNlY3VyaXR5UGFzc3dvcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwYXNzd29yZEZvcm0hOiBGb3JtR3JvdXA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogTWF0U25hY2tCYXIsXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnBhc3N3b3JkRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgb2xkUGFzc3dvcmQ6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBuZXdQYXNzd29yZDogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIG5lMlBhc3N3b3JkOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgIH0pO1xuICB9XG4gIHNhdmUoKSB7XG4gICAgaWYgKCF0aGlzLnBhc3N3b3JkRm9ybS52YWxpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmNoYW5nZVBhc3N3b3JkKHRoaXMucGFzc3dvcmRGb3JtLnZhbHVlKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihyZXMubWVzc2FnZSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIHRoaXMuc25hY2tCYXIub3BlbihlLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPHJvbGF0ZWNoLWNvbnRhaW5lcj5cbiAgPHJvbGF0ZWNoLXRvb2xiYXIgdGl0bGU9XCJQYXNzd29yZFwiIHN1YnRpdGxlPVwiQ2hhbmdlIHBhc3N3b3JkXCIgbGluaz1cIi9zZWN1cml0eVwiIGRpdmlkZXI+PC9yb2xhdGVjaC10b29sYmFyPlxuICA8ZGl2IGNsYXNzPVwicHktM1wiPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwicGFzc3dvcmRGb3JtXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsIGkxOG4+IE9sZCBwYXNzd29yZDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBmb3JtQ29udHJvbE5hbWU9XCJvbGRQYXNzd29yZFwiIHJlcXVpcmVkIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj4gTmV3IFBhc3N3b3JkIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBmb3JtQ29udHJvbE5hbWU9XCJuZXdQYXNzd29yZFwiIHJlcXVpcmVkIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWwgaTE4bj4gTmV3IHBhc3N3b3JkIDwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBmb3JtQ29udHJvbE5hbWU9XCJuZTJQYXNzd29yZFwiIHJlcXVpcmVkIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmQgaXRlbXMtY2VudGVyIG10LTNcIj5cbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiByb2xhdGVjaEJhY2tCdXR0b24gaTE4bj5DYW5jZWw8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNsYXNzPVwidy1bMTI4cHhdIHAtMiBtbC0zXCIgKGNsaWNrKT1cInNhdmUoKVwiIGkxOG4+U2F2ZTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvcm9sYXRlY2gtY29udGFpbmVyPlxuPGRpdiBjbGFzcz1cIm1heC13LVsxMTIwcHhdIG0tYXV0byBweC02XCI+PC9kaXY+XG4iXX0=","import { Component, 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';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nexport class SecurityVerificationComponent {\n constructor() {\n this.dialog = inject(MatDialog);\n this.authService = inject(AuthService);\n this.verified = false;\n this.renderer = inject(Renderer2);\n this.qrcElement = viewChild.required('qrcode');\n this.loading = false;\n this.BizToken = '';\n this.identification = {};\n }\n ngOnInit() {\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 genQRCode(url) {\n const 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 toCanvas(canvas, url) {\n return QRCode.toCanvas(canvas, url, {\n errorCorrectionLevel: 'M',\n width: 200,\n });\n }\n renderElement(element) {\n this.removeElementChildren();\n this.renderer.appendChild(this.qrcElement().nativeElement, element);\n }\n removeElementChildren() {\n for (const node of this.qrcElement().nativeElement.childNodes) {\n this.renderer.removeChild(this.qrcElement().nativeElement, node);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: SecurityVerificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.0.3\", type: SecurityVerificationComponent, isStandalone: true, selector: \"rolatech-account-security-verification\", viewQueries: [{ propertyName: \"qrcElement\", first: true, predicate: [\"qrcode\"], descendants: true, isSignal: true }], ngImport: i0, template: \"<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\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: AngularCommonModule }, { kind: \"ngmodule\", type: AngularComponentsModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: SpinnerComponent, selector: \"rolatech-spinner\", inputs: [\"title\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.3\", ngImport: i0, type: SecurityVerificationComponent, decorators: [{\n type: Component,\n args: [{ imports: [AngularCommonModule, AngularComponentsModule, SpinnerComponent], selector: 'rolatech-account-security-verification', template: \"<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\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktdmVyaWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItYWNjb3VudC9zcmMvbGliL3BhZ2VzL215YWNjb3VudC9zZWN1cml0eS9zZWN1cml0eS12ZXJpZmljYXRpb24vc2VjdXJpdHktdmVyaWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItYWNjb3VudC9zcmMvbGliL3BhZ2VzL215YWNjb3VudC9zZWN1cml0eS9zZWN1cml0eS12ZXJpZmljYXRpb24vc2VjdXJpdHktdmVyaWZpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekYsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7OztBQVFqQyxNQUFNLE9BQU8sNkJBQTZCO0lBTjFDO1FBT0UsV0FBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsZUFBVSxHQUFHLFNBQVMsQ0FBQyxR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QkFBbUIsOEJBQUUsdUJBQXVCLG9YQUFFLGdCQUFnQjs7MkZBSzdELDZCQUE2QjtrQkFOekMsU0FBUzs4QkFDQyxDQUFDLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixDQUFDLFlBQy9ELHdDQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBSZW5kZXJlcjIsIGluamVjdCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1hdXRoJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsIFNwaW5uZXJDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCAqIGFzIFFSQ29kZSBmcm9tICdxcmNvZGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgaW1wb3J0czogW0FuZ3VsYXJDb21tb25Nb2R1bGUsIEFuZ3VsYXJDb21wb25lbnRzTW9kdWxlLCBTcGlubmVyQ29tcG9uZW50XSxcbiAgc2VsZWN0b3I6ICdyb2xhdGVjaC1hY2NvdW50LXNlY3VyaXR5LXZlcmlmaWNhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWN1cml0eS12ZXJpZmljYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWN1cml0eS12ZXJpZmljYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VjdXJpdHlWZXJpZmljYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICB2ZXJpZmllZCA9IGZhbHNlO1xuICByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBxcmNFbGVtZW50ID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY+KCdxcmNvZGUnKTtcbiAgbG9hZGluZyA9IGZhbHNlO1xuICBCaXpUb2tlbiA9ICcnO1xuICBpZGVudGlmaWNhdGlvbiA9IHt9O1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrRmFjZUlkU3RhdHVzKCk7XG4gIH1cbiAgY2hlY2tGYWNlSWRTdGF0dXMoKSB7XG4gICAgdGhpcy5hdXRoU2VydmljZS5mYWNlSWRTdGF0dXMoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnZlcmlmaWVkID0gcmVzLmRhdGEudmVyaWZpZWQ7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIHZlcmlmeSgpIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuYXV0aFNlcnZpY2UucmVxdWVzdEZhY2VJZERldGVjdCgpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoeyBkYXRhIH0pID0+IHtcbiAgICAgICAgdGhpcy5nZW5RUkNvZGUoZGF0YS51cmwpO1xuICAgICAgICAvLyB0aGlzLmxvb3AoKTtcbiAgICAgIH0sXG4gICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgbG9vcCgpIHtcbiAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZmFjZUlkU3RhdHVzKCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJlcykgPT4ge1xuICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0sIDIwMDApO1xuICB9XG5cbiAgZ2VuUVJDb2RlKHVybDogc3RyaW5nKSB7XG4gICAgY29uc3QgZWxlbWVudDogRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgdGhpcy50b0NhbnZhcyhlbGVtZW50LCB1cmwpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyRWxlbWVudChlbGVtZW50KTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgdGhpcy5yZW1vdmVFbGVtZW50Q2hpbGRyZW4oKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB0b0NhbnZhcyhjYW52YXM6IGFueSwgdXJsOiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBRUkNvZGUudG9DYW52YXMoY2FudmFzLCB1cmwsIHtcbiAgICAgIGVycm9yQ29ycmVjdGlvbkxldmVsOiAnTScsXG4gICAgICB3aWR0aDogMjAwLFxuICAgIH0pO1xuICB9XG4gIHByaXZhdGUgcmVuZGVyRWxlbWVudChlbGVtZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZUVsZW1lbnRDaGlsZHJlbigpO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5xcmNFbGVtZW50KCkubmF0aXZlRWxlbWVudCwgZWxlbWVudCk7XG4gIH1cbiAgcHJpdmF0ZSByZW1vdmVFbGVtZW50Q2hpbGRyZW4oKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBub2RlIG9mIHRoaXMucXJjRWxlbWVudCgpLm5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcykge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLnFyY0VsZW1lbnQoKS5uYXRpdmVFbGVtZW50LCBub2RlKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtYXgtdy1bMTEyMHB4XSBtLWF1dG9cIj5cbiAgPGRpdiBjbGFzcz1cIm1heC13LVs4MjBweF1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgcC0zIG1iLTEyXCI+XG4gICAgICA8cCBjbGFzcz1cInRleHQtM3hsXCIgaTE4bj5WZXJpZnkgcmVhbC1uYW1lPC9wPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LW1kXCIgaTE4bj5Nb3JlIHNlY3VyZSBhZnRlciBhdXRoZW50aWNhdGlvbjwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIEBpZiAodmVyaWZpZWQpIHtcbiAgICA8ZGl2IGNsYXNzPVwicC0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC1tZCBmb250LWJvbGQgcHktM1wiIGkxOG4+VmVyaWZpZWQ8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgIDxkaXY+PHNwYW4gY2xhc3M9XCJ0ZXh0LVstLXJ0LXRleHQtc2Vjb25kYXJ5XVwiIGkxOG4+TmFtZTogPC9zcGFuPjwvZGl2PlxuICAgICAgICA8ZGl2PjxzcGFuIGNsYXNzPVwidGV4dC1bLS1ydC10ZXh0LXNlY29uZGFyeV1cIiBpMThuPklEOiA8L3NwYW4+PC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSB7XG4gICAgPGRpdiBpMThuPlVudmVyaWZpZWQ8L2Rpdj5cbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJ2ZXJpZnkoKVwiIGkxOG4+VmVyaWZ5PC9idXR0b24+XG4gICAgPGRpdiAjcXJjb2RlPlxuICAgICAgQGlmIChsb2FkaW5nKSB7XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHJvbGF0ZWNoLXNwaW5uZXI+PC9yb2xhdGVjaC1zcGlubmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=","import { SecurityIndexComponent } from './security-index/security-index.component';\nimport { SecurityPasswordComponent } from './security-password/security-password.component';\nimport { SecurityVerificationComponent } from './security-verification/security-verification.component';\nconst securityRoutes = [\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];\nexport default securityRoutes;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHkucm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci1hY2NvdW50L3NyYy9saWIvcGFnZXMvbXlhY2NvdW50L3NlY3VyaXR5L3NlY3VyaXR5LnJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUU1RixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUV4RyxNQUFNLGNBQWMsR0FBVztJQUM3QjtRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLHNCQUFzQjtLQUNsQztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsU0FBUyxFQUFFLDZCQUE2QjtLQUN6QztJQUNELElBQUk7SUFDSixvQkFBb0I7SUFDcEIsd0NBQXdDO0lBQ3hDLEtBQUs7SUFDTCxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLHlCQUF5QixFQUFFO0NBQzNELENBQUM7QUFFRixlQUFlLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTZWN1cml0eUluZGV4Q29tcG9uZW50IH0gZnJvbSAnLi9zZWN1cml0eS1pbmRleC9zZWN1cml0eS1pbmRleC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VjdXJpdHlQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vc2VjdXJpdHktcGFzc3dvcmQvc2VjdXJpdHktcGFzc3dvcmQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlY3VyaXR5RmFjZWlkQ29tcG9uZW50IH0gZnJvbSAnLi9zZWN1cml0eS1mYWNlaWQvc2VjdXJpdHktZmFjZWlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWN1cml0eVZlcmlmaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vc2VjdXJpdHktdmVyaWZpY2F0aW9uL3NlY3VyaXR5LXZlcmlmaWNhdGlvbi5jb21wb25lbnQnO1xuXG5jb25zdCBzZWN1cml0eVJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgY29tcG9uZW50OiBTZWN1cml0eUluZGV4Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ3ZlcmlmaWNhdGlvbicsXG4gICAgY29tcG9uZW50OiBTZWN1cml0eVZlcmlmaWNhdGlvbkNvbXBvbmVudCxcbiAgfSxcbiAgLy8ge1xuICAvLyAgIHBhdGg6ICdmYWNlaWQnLFxuICAvLyAgIGNvbXBvbmVudDogU2VjdXJpdHlGYWNlaWRDb21wb25lbnQsXG4gIC8vIH0sXG4gIHsgcGF0aDogJ3Bhc3N3b3JkJywgY29tcG9uZW50OiBTZWN1cml0eVBhc3N3b3JkQ29tcG9uZW50IH0sXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBzZWN1cml0eVJvdXRlcztcbiJdfQ=="],"names":["i1","i2","i3","i4","i5","i6"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, PLATFORM_ID, input, ViewEncapsulation, Component, EventEmitter, Injectable, Directive, signal, effect, HostListener, makeEnvironmentProviders } from '@angular/core';
|
|
3
3
|
import { isPlatformBrowser, CommonModule } from '@angular/common';
|
|
4
|
-
import { APP_CONFIG, AngularCommonModule,
|
|
4
|
+
import { APP_CONFIG, AngularCommonModule, WINDOW } from '@rolatech/angular-common';
|
|
5
5
|
import * as i2 from '@angular/material/button';
|
|
6
6
|
import { MatButtonModule } from '@angular/material/button';
|
|
7
7
|
import { ActivatedRoute, Router, NavigationStart, ROUTES } from '@angular/router';
|
|
8
8
|
import { filter } from 'rxjs';
|
|
9
|
-
import { AuthService, AuthUserService, AuthGuard, UnauthorizedComponent, ForbiddenComponent } from '@rolatech/angular-auth';
|
|
9
|
+
import { AuthService, AUTH_METHODS, AuthMethod, AuthUserService, AuthGuard, UnauthorizedComponent, ForbiddenComponent } from '@rolatech/angular-auth';
|
|
10
10
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
11
11
|
import { AngularComponentsModule, BaseComponent, TabsComponent, TabComponent } from '@rolatech/angular-components';
|
|
12
12
|
import * as i1 from '@angular/forms';
|
|
@@ -177,6 +177,11 @@ class SigninComponent extends BaseComponent {
|
|
|
177
177
|
constructor() {
|
|
178
178
|
super();
|
|
179
179
|
this.environment = inject(APP_CONFIG);
|
|
180
|
+
this.authMethods = inject(AUTH_METHODS);
|
|
181
|
+
this.hasPassword = this.authMethods.includes(AuthMethod.Password);
|
|
182
|
+
this.hasOTP = this.authMethods.includes(AuthMethod.OTP);
|
|
183
|
+
this.hasWeChat = this.authMethods.includes(AuthMethod.WeChat);
|
|
184
|
+
this.hasGoogle = this.authMethods.includes(AuthMethod.Google);
|
|
180
185
|
this.platformId = inject(PLATFORM_ID);
|
|
181
186
|
this.formBuilder = inject(FormBuilder);
|
|
182
187
|
this.authService = inject(AuthService);
|
|
@@ -189,8 +194,7 @@ class SigninComponent extends BaseComponent {
|
|
|
189
194
|
this.countDown = false;
|
|
190
195
|
this.countDownTime = 60;
|
|
191
196
|
this.showButtonText = `Send`;
|
|
192
|
-
this.appid = '
|
|
193
|
-
this.accountType = AccountType[this.environment.accountType];
|
|
197
|
+
this.appid = 'this.environment.wechat.appId';
|
|
194
198
|
this.state = 'add';
|
|
195
199
|
this.isLoading = false;
|
|
196
200
|
this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl('');
|
|
@@ -213,28 +217,18 @@ class SigninComponent extends BaseComponent {
|
|
|
213
217
|
}
|
|
214
218
|
ngOnInit() {
|
|
215
219
|
this.titleService.setTitle('Sign in');
|
|
216
|
-
if (this.
|
|
220
|
+
if (this.hasPassword) {
|
|
217
221
|
this.passrodForm = this.formBuilder.group({
|
|
218
222
|
account: [null, [Validators.required, Validators.pattern('^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$')]],
|
|
219
223
|
password: [null, [Validators.required, Validators.minLength(6)]],
|
|
220
224
|
});
|
|
221
225
|
}
|
|
222
|
-
|
|
223
|
-
this.
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
229
|
-
this.passrodForm = this.formBuilder.group({
|
|
230
|
-
account: [null, Validators.required],
|
|
231
|
-
password: [null, [Validators.required, Validators.minLength(6)]],
|
|
226
|
+
if (this.hasOTP) {
|
|
227
|
+
this.codeForm = this.formBuilder.group({
|
|
228
|
+
phone: [null, [Validators.required, Validators.pattern('1(3|4|5|6|7|8|9)\\d{9}')]],
|
|
229
|
+
code: [null, Validators.required],
|
|
232
230
|
});
|
|
233
231
|
}
|
|
234
|
-
this.codeForm = this.formBuilder.group({
|
|
235
|
-
phone: [null, [Validators.required, Validators.pattern('1(3|4|5|6|7|8|9)\\d{9}')]],
|
|
236
|
-
code: [null, Validators.required],
|
|
237
|
-
});
|
|
238
232
|
this.route.queryParams.subscribe((params) => {
|
|
239
233
|
this.continue = params['continue'] || '/'; // Default to home if no continue param
|
|
240
234
|
const decodedUrl = decodeURIComponent(this.continue);
|
|
@@ -308,18 +302,18 @@ class SigninComponent extends BaseComponent {
|
|
|
308
302
|
});
|
|
309
303
|
}
|
|
310
304
|
wechat() {
|
|
311
|
-
const redirectUri = 'https://accounts.pinxiaoke.cn/login?continue';
|
|
312
|
-
|
|
305
|
+
// const redirectUri = 'https://accounts.pinxiaoke.cn/login?continue';
|
|
306
|
+
const redirectUri = `${window.location.origin}/login?continue`;
|
|
313
307
|
const encodedURI = encodeURI(redirectUri);
|
|
314
308
|
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`;
|
|
315
309
|
this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(src);
|
|
316
310
|
}
|
|
317
311
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SigninComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
318
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: SigninComponent, isStandalone: true, selector: "rolatech-account-signin", host: { listeners: { "window:message": "onLogin($event)" } }, usesInheritance: true, ngImport: i0, template: "<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-[860px] lg:w-[800px] 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>Sign in</div>\n <div class=\"text-md ml-2\" i18n>Use your {{ environment.name }} Account</div>\n </div>\n <div>\n <rolatech-tabs [(select)]=\"tabIndex\">\n @if (
|
|
312
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: SigninComponent, isStandalone: true, selector: "rolatech-account-signin", host: { listeners: { "window:message": "onLogin($event)" } }, usesInheritance: true, ngImport: i0, template: "<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-[860px] lg:w-[800px] 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>Sign in</div>\n <div class=\"text-md ml-2\" i18n>Use your {{ environment.name }} Account</div>\n </div>\n <div>\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 </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 mat-button (click)=\"sendSMSCode()\" [disabled]=\"countDown\" class=\"max-w-[128px] text-white text-center\">\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 <button mat-flat-button (click)=\"login()\" class=\"w-[128px]\" i18n>Sign in</button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["rolatech-account-signin{height:100%;color:var(--rt-text-primary, #0f0f0f);background:var(--rt-signin-background)}@media (max-width: 600px){rolatech-account-signin{background:var(--rt-signin-inner-background)}}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{transition:background-color 0s 600000s,color 0s 600000s!important}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: TabsComponent, selector: "rolatech-tabs", inputs: ["select", "loading"], outputs: ["selectChange"] }, { kind: "component", type: TabComponent, selector: "rolatech-tab", inputs: ["label"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
319
313
|
}
|
|
320
314
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SigninComponent, decorators: [{
|
|
321
315
|
type: Component,
|
|
322
|
-
args: [{ imports: [AngularCommonModule, AngularComponentsModule, TabsComponent, TabComponent], selector: 'rolatech-account-signin', encapsulation: ViewEncapsulation.None, template: "<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-[860px] lg:w-[800px] 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>Sign in</div>\n <div class=\"text-md ml-2\" i18n>Use your {{ environment.name }} Account</div>\n </div>\n <div>\n <rolatech-tabs [(select)]=\"tabIndex\">\n @if (
|
|
316
|
+
args: [{ imports: [AngularCommonModule, AngularComponentsModule, TabsComponent, TabComponent], selector: 'rolatech-account-signin', encapsulation: ViewEncapsulation.None, template: "<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-[860px] lg:w-[800px] 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>Sign in</div>\n <div class=\"text-md ml-2\" i18n>Use your {{ environment.name }} Account</div>\n </div>\n <div>\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 </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 mat-button (click)=\"sendSMSCode()\" [disabled]=\"countDown\" class=\"max-w-[128px] text-white text-center\">\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 <button mat-flat-button (click)=\"login()\" class=\"w-[128px]\" i18n>Sign in</button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["rolatech-account-signin{height:100%;color:var(--rt-text-primary, #0f0f0f);background:var(--rt-signin-background)}@media (max-width: 600px){rolatech-account-signin{background:var(--rt-signin-inner-background)}}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{transition:background-color 0s 600000s,color 0s 600000s!important}\n"] }]
|
|
323
317
|
}], ctorParameters: () => [], propDecorators: { onLogin: [{
|
|
324
318
|
type: HostListener,
|
|
325
319
|
args: ['window:message', ['$event']]
|
|
@@ -335,40 +329,27 @@ class SignupComponent extends BaseComponent {
|
|
|
335
329
|
this.window = inject(WINDOW);
|
|
336
330
|
this.continue = '/';
|
|
337
331
|
this.signInUrl = '';
|
|
332
|
+
this.usePhone = false;
|
|
338
333
|
this.countDown = false;
|
|
339
334
|
this.countDownTime = 60;
|
|
340
335
|
this.showButtonText = 'Send';
|
|
341
|
-
this.accountType = AccountType[this.environment.accountType];
|
|
342
336
|
}
|
|
343
337
|
ngOnInit() {
|
|
344
338
|
this.titleService.setTitle('Sign up');
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
password: [null, [Validators.required, Validators.minLength(6)]],
|
|
360
|
-
rePassword: [null, [Validators.required, Validators.minLength(6)]],
|
|
361
|
-
});
|
|
362
|
-
}
|
|
363
|
-
else {
|
|
364
|
-
this.signupForm = this.formBuilder.group({
|
|
365
|
-
name: [null, Validators.required],
|
|
366
|
-
phone: [null, [Validators.required, Validators.pattern('1(3|4|5|6|7|8|9)\\d{9}')]],
|
|
367
|
-
code: [null, [Validators.required, Validators.minLength(6)]],
|
|
368
|
-
password: [null, [Validators.required, Validators.minLength(6)]],
|
|
369
|
-
rePassword: [null, [Validators.required, Validators.minLength(6)]],
|
|
370
|
-
});
|
|
371
|
-
}
|
|
339
|
+
this.signupForm = this.formBuilder.group({
|
|
340
|
+
firstName: [null, Validators.required],
|
|
341
|
+
lastName: [null, Validators.required],
|
|
342
|
+
email: [null, [Validators.required, Validators.pattern('^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$')]],
|
|
343
|
+
password: [null, [Validators.required, Validators.minLength(6)]],
|
|
344
|
+
rePassword: [null, [Validators.required, Validators.minLength(6)]],
|
|
345
|
+
});
|
|
346
|
+
// this.signupForm = this.formBuilder.group({
|
|
347
|
+
// name: [null, Validators.required],
|
|
348
|
+
// phone: [null, [Validators.required, Validators.pattern('1(3|4|5|6|7|8|9)\\d{9}')]],
|
|
349
|
+
// code: [null, [Validators.required, Validators.minLength(6)]],
|
|
350
|
+
// password: [null, [Validators.required, Validators.minLength(6)]],
|
|
351
|
+
// rePassword: [null, [Validators.required, Validators.minLength(6)]],
|
|
352
|
+
// });
|
|
372
353
|
this.continue = this.route.snapshot.queryParams['continue'] || '/';
|
|
373
354
|
const decodedUrl = decodeURIComponent(this.continue);
|
|
374
355
|
this.signInUrl = `signin?continue=${decodedUrl}`;
|
|
@@ -415,11 +396,11 @@ class SignupComponent extends BaseComponent {
|
|
|
415
396
|
});
|
|
416
397
|
}
|
|
417
398
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SignupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
418
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: SignupComponent, isStandalone: true, selector: "rolatech-account-signup", usesInheritance: true, ngImport: i0, template: "<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-[860px] lg:w-[800px] 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 (
|
|
399
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: SignupComponent, isStandalone: true, selector: "rolatech-account-signup", usesInheritance: true, ngImport: i0, template: "<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-[860px] lg:w-[800px] 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", styles: ["rolatech-account-signup{height:100%;color:var(--rt-text-primary, #0f0f0f);background:var(--rt-signin-background)}@media (max-width: 600px){rolatech-account-signup{background:var(--rt-signin-inner-background)}}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{transition:background-color 0s 600000s,color 0s 600000s!important}mat-form-field{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: AngularComponentsModule }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
419
400
|
}
|
|
420
401
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SignupComponent, decorators: [{
|
|
421
402
|
type: Component,
|
|
422
|
-
args: [{ imports: [AngularCommonModule, AngularComponentsModule], selector: 'rolatech-account-signup', encapsulation: ViewEncapsulation.None, template: "<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-[860px] lg:w-[800px] 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 (
|
|
403
|
+
args: [{ imports: [AngularCommonModule, AngularComponentsModule], selector: 'rolatech-account-signup', encapsulation: ViewEncapsulation.None, template: "<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-[860px] lg:w-[800px] 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", styles: ["rolatech-account-signup{height:100%;color:var(--rt-text-primary, #0f0f0f);background:var(--rt-signin-background)}@media (max-width: 600px){rolatech-account-signup{background:var(--rt-signin-inner-background)}}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{transition:background-color 0s 600000s,color 0s 600000s!important}mat-form-field{width:100%}\n"] }]
|
|
423
404
|
}] });
|
|
424
405
|
|
|
425
406
|
const accountRoutes = [
|
|
@@ -483,7 +464,7 @@ const myaccountRoutes = [
|
|
|
483
464
|
},
|
|
484
465
|
{
|
|
485
466
|
path: 'security',
|
|
486
|
-
loadChildren: () => import('./rolatech-angular-account-security.routes-
|
|
467
|
+
loadChildren: () => import('./rolatech-angular-account-security.routes-BzdJKvBL.mjs'),
|
|
487
468
|
data: { title: 'Security' },
|
|
488
469
|
},
|
|
489
470
|
{
|