@rolatech/angular-account 17.0.1 → 17.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/index.mjs +3 -1
- package/esm2022/lib/account.routes.mjs +3 -39
- package/esm2022/lib/components/avatar-update-dialog/avatar-update-dialog.component.mjs +3 -3
- package/esm2022/lib/components/forgot-password/forgot-password.component.mjs +3 -3
- package/esm2022/lib/components/index.mjs +2 -0
- package/esm2022/lib/components/login/login-wechat/login-wechat.component.mjs +3 -3
- package/esm2022/lib/components/logout/logout.component.mjs +3 -3
- package/esm2022/lib/components/passwordreset/passwordreset.component.mjs +3 -3
- package/esm2022/lib/components/topbar-login/topbar-login.component.mjs +29 -0
- package/esm2022/lib/myaccount.routes.mjs +37 -0
- package/esm2022/lib/pages/accounts/signin/signin.component.mjs +148 -0
- package/esm2022/lib/{components → pages/accounts}/signup/signup.component.mjs +4 -4
- package/esm2022/lib/pages/myaccount/email/email.component.mjs +3 -3
- package/esm2022/lib/pages/myaccount/email-verification/email-verification.component.mjs +3 -3
- package/esm2022/lib/pages/myaccount/gender/gender.component.mjs +3 -3
- package/esm2022/lib/pages/myaccount/home/home.component.mjs +3 -3
- package/esm2022/lib/pages/myaccount/personal-info/info.component.mjs +3 -3
- package/esm2022/lib/pages/myaccount/personal-info/profile/profile.component.mjs +3 -3
- package/esm2022/lib/pages/myaccount/personal-info/username/username.component.mjs +3 -3
- package/esm2022/lib/pages/myaccount/phone/phone.component.mjs +3 -3
- package/esm2022/lib/pages/myaccount/security/security-faceid/security-faceid.component.mjs +3 -3
- package/esm2022/lib/pages/myaccount/security/security-index/security-index.component.mjs +3 -3
- package/esm2022/lib/pages/myaccount/security/security-password/security-password.component.mjs +3 -3
- package/esm2022/lib/pages/myaccount/security/security-verification/security-verification.component.mjs +3 -3
- package/esm2022/lib/services/wechat-login.service.mjs +3 -3
- package/fesm2022/{rolatech-angular-account-email-verification.component-4RClhLI4.mjs → rolatech-angular-account-email-verification.component-DZIf6jgD.mjs} +4 -4
- package/fesm2022/{rolatech-angular-account-email-verification.component-4RClhLI4.mjs.map → rolatech-angular-account-email-verification.component-DZIf6jgD.mjs.map} +1 -1
- package/fesm2022/{rolatech-angular-account-email.component-oRTdxJLo.mjs → rolatech-angular-account-email.component-PtXqxz7k.mjs} +4 -4
- package/fesm2022/{rolatech-angular-account-email.component-oRTdxJLo.mjs.map → rolatech-angular-account-email.component-PtXqxz7k.mjs.map} +1 -1
- package/fesm2022/{rolatech-angular-account-gender.component-egCF_zI_.mjs → rolatech-angular-account-gender.component-BoDIgSY6.mjs} +4 -4
- package/fesm2022/{rolatech-angular-account-gender.component-egCF_zI_.mjs.map → rolatech-angular-account-gender.component-BoDIgSY6.mjs.map} +1 -1
- package/fesm2022/{rolatech-angular-account-home.component-B2Rmr4Iw.mjs → rolatech-angular-account-home.component-at7zQWKX.mjs} +4 -4
- package/fesm2022/{rolatech-angular-account-home.component-B2Rmr4Iw.mjs.map → rolatech-angular-account-home.component-at7zQWKX.mjs.map} +1 -1
- package/fesm2022/{rolatech-angular-account-info.component-CMWD6CDB.mjs → rolatech-angular-account-info.component-CYSgtPnu.mjs} +7 -7
- package/fesm2022/{rolatech-angular-account-info.component-CMWD6CDB.mjs.map → rolatech-angular-account-info.component-CYSgtPnu.mjs.map} +1 -1
- package/fesm2022/{rolatech-angular-account-login.routes-NPLzDeHN.mjs → rolatech-angular-account-login.routes-CFKZiHz9.mjs} +5 -5
- package/fesm2022/{rolatech-angular-account-login.routes-NPLzDeHN.mjs.map → rolatech-angular-account-login.routes-CFKZiHz9.mjs.map} +1 -1
- package/fesm2022/{rolatech-angular-account-phone.component-CJ8DeuFr.mjs → rolatech-angular-account-phone.component-DkoWLdMW.mjs} +4 -4
- package/fesm2022/{rolatech-angular-account-phone.component-CJ8DeuFr.mjs.map → rolatech-angular-account-phone.component-DkoWLdMW.mjs.map} +1 -1
- package/fesm2022/{rolatech-angular-account-profile.component-BN_pBKMU.mjs → rolatech-angular-account-profile.component-BVzB-02E.mjs} +4 -4
- package/fesm2022/{rolatech-angular-account-profile.component-BN_pBKMU.mjs.map → rolatech-angular-account-profile.component-BVzB-02E.mjs.map} +1 -1
- package/fesm2022/{rolatech-angular-account-rolatech-angular-account-Dqz2XIdy.mjs → rolatech-angular-account-rolatech-angular-account-5xEl_6uf.mjs} +61 -35
- package/fesm2022/rolatech-angular-account-rolatech-angular-account-5xEl_6uf.mjs.map +1 -0
- package/fesm2022/{rolatech-angular-account-security.routes-S3BzviKf.mjs → rolatech-angular-account-security.routes-C4LeXJQd.mjs} +10 -10
- package/fesm2022/{rolatech-angular-account-security.routes-S3BzviKf.mjs.map → rolatech-angular-account-security.routes-C4LeXJQd.mjs.map} +1 -1
- package/fesm2022/{rolatech-angular-account-username.component-C6pM8g84.mjs → rolatech-angular-account-username.component-BaCvzgyP.mjs} +4 -4
- package/fesm2022/{rolatech-angular-account-username.component-C6pM8g84.mjs.map → rolatech-angular-account-username.component-BaCvzgyP.mjs.map} +1 -1
- package/fesm2022/rolatech-angular-account.mjs +3 -3
- package/index.d.ts +2 -0
- package/lib/account.routes.d.ts +0 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/components/topbar-login/topbar-login.component.d.ts +13 -0
- package/lib/myaccount.routes.d.ts +2 -0
- package/lib/{components → pages/accounts}/signin/signin.component.d.ts +1 -1
- package/package.json +1 -1
- package/themes/_default.scss +1 -1
- package/esm2022/lib/components/signin/signin.component.mjs +0 -148
- package/fesm2022/rolatech-angular-account-rolatech-angular-account-Dqz2XIdy.mjs.map +0 -1
- /package/lib/{components → pages/accounts}/signup/signup.component.d.ts +0 -0
package/esm2022/index.mjs
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export * from './lib/components';
|
|
1
2
|
export * from './lib/account.routes';
|
|
3
|
+
export * from './lib/myaccount.routes';
|
|
2
4
|
export * from './provider';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjb3VudC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FjY291bnQucm91dGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL215YWNjb3VudC5yb3V0ZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcic7XG4iXX0=
|
|
@@ -2,8 +2,8 @@ import { AuthGuard, ForbiddenComponent, UnauthorizedComponent } from '@rolatech/
|
|
|
2
2
|
import { ForgotPasswordComponent } from './components/forgot-password/forgot-password.component';
|
|
3
3
|
import { LogoutComponent } from './components/logout/logout.component';
|
|
4
4
|
import { PasswordresetComponent } from './components/passwordreset/passwordreset.component';
|
|
5
|
-
import { SigninComponent } from './
|
|
6
|
-
import { SignupComponent } from './
|
|
5
|
+
import { SigninComponent } from './pages/accounts/signin/signin.component';
|
|
6
|
+
import { SignupComponent } from './pages/accounts/signup/signup.component';
|
|
7
7
|
export const accountRoutes = [
|
|
8
8
|
{
|
|
9
9
|
path: '',
|
|
@@ -33,40 +33,4 @@ export const accountRoutes = [
|
|
|
33
33
|
component: ForbiddenComponent,
|
|
34
34
|
},
|
|
35
35
|
];
|
|
36
|
-
|
|
37
|
-
{
|
|
38
|
-
path: '',
|
|
39
|
-
loadComponent: () => import('./pages/myaccount/home/home.component').then((c) => c.HomeComponent),
|
|
40
|
-
data: { title: '首页' },
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
path: 'personal-info',
|
|
44
|
-
loadComponent: () => import('./pages/myaccount/personal-info/info.component').then((c) => c.InfoComponent),
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
path: 'profile',
|
|
48
|
-
loadComponent: () => import('./pages/myaccount/personal-info/profile/profile.component').then((c) => c.ProfileComponent),
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
path: 'username',
|
|
52
|
-
loadComponent: () => import('./pages/myaccount/personal-info/username/username.component').then((c) => c.UsernameComponent),
|
|
53
|
-
},
|
|
54
|
-
{ path: 'gender', loadComponent: () => import('./pages/myaccount/gender/gender.component').then((c) => c.GenderComponent) },
|
|
55
|
-
{ path: 'email', loadComponent: () => import('./pages/myaccount/email/email.component').then((c) => c.EmailComponent) },
|
|
56
|
-
{
|
|
57
|
-
path: 'email-verification/:id',
|
|
58
|
-
loadComponent: () => import('./pages/myaccount/email-verification/email-verification.component').then((c) => c.EmailVerificationComponent),
|
|
59
|
-
},
|
|
60
|
-
{ path: 'phone', loadComponent: () => import('./pages/myaccount/phone/phone.component').then((c) => c.PhoneComponent) },
|
|
61
|
-
{
|
|
62
|
-
path: 'security',
|
|
63
|
-
loadChildren: () => import('./pages/myaccount/security/security.routes'),
|
|
64
|
-
data: { title: 'Security' },
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
path: 'notifications',
|
|
68
|
-
loadChildren: () => import('@rolatech/angular-notification').then((m) => m.notificationRoutes),
|
|
69
|
-
data: { title: '通知中心' },
|
|
70
|
-
},
|
|
71
|
-
];
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjb3VudC9zcmMvbGliL2FjY291bnQucm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDNUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV2RSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQVc7SUFDbkM7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCO0lBQ0QsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFO0lBQ25HLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRTtJQUN6RSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtJQUM5QyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFFO0lBQ2hGO1FBQ0Us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RixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0tBQ3hCO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdXRoR3VhcmQsIEZvcmJpZGRlbkNvbXBvbmVudCwgVW5hdXRob3JpemVkQ29tcG9uZW50IH0gZnJvbSAnQHJvbGF0ZWNoL2FuZ3VsYXItYXV0aCc7XG5pbXBvcnQgeyBGb3Jnb3RQYXNzd29yZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3Jnb3QtcGFzc3dvcmQvZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2dvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9nb3V0L2xvZ291dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFzc3dvcmRyZXNldENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYXNzd29yZHJlc2V0L3Bhc3N3b3JkcmVzZXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNpZ25pbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaWduaW4vc2lnbmluLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWdudXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2lnbnVwL3NpZ251cC5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgYWNjb3VudFJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgcmVkaXJlY3RUbzogJ3NpZ25pbicsXG4gIH0sXG4gIHsgcGF0aDogJ3NpZ25pbicsIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSwgY29tcG9uZW50OiBTaWduaW5Db21wb25lbnQsIGRhdGE6IHsgdGl0bGU6ICdTaWduaW4nIH0gfSxcbiAgeyBwYXRoOiAnc2lnbnVwJywgY29tcG9uZW50OiBTaWdudXBDb21wb25lbnQsIGRhdGE6IHsgdGl0bGU6ICdTaWdudXAnIH0gfSxcbiAgeyBwYXRoOiAnbG9nb3V0JywgY29tcG9uZW50OiBMb2dvdXRDb21wb25lbnQgfSxcbiAgeyBwYXRoOiAnbG9naW4nLCBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnLi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLnJvdXRlcycpIH0sXG4gIHtcbiAgICBwYXRoOiAncGFzc3dvcmRyZXNldC86dG9rZW4nLFxuICAgIGNvbXBvbmVudDogUGFzc3dvcmRyZXNldENvbXBvbmVudCxcbiAgICBkYXRhOiB7IHRpdGxlOiAnUGFzc3dvcmQgUmVzZXQnIH0sXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZm9yZ290JyxcbiAgICBjb21wb25lbnQ6IEZvcmdvdFBhc3N3b3JkQ29tcG9uZW50LFxuICAgIGRhdGE6IHsgdGl0bGU6ICdGb3Jnb3QgUGFzc3dvcmQnIH0sXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAndW5hdXRob3JpemVkJyxcbiAgICBjb21wb25lbnQ6IFVuYXV0aG9yaXplZENvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdmb3JiaWRkZW4nLFxuICAgIGNvbXBvbmVudDogRm9yYmlkZGVuQ29tcG9uZW50LFxuICB9LFxuXTtcbmV4cG9ydCBjb25zdCBteWFjY291bnRSb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9wYWdlcy9teWFjY291bnQvaG9tZS9ob21lLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuSG9tZUNvbXBvbmVudCksXG4gICAgZGF0YTogeyB0aXRsZTogJ+mmlumhtScgfSxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdwZXJzb25hbC1pbmZvJyxcbiAgICBsb2FkQ29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vcGFnZXMvbXlhY2NvdW50L3BlcnNvbmFsLWluZm8vaW5mby5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkluZm9Db21wb25lbnQpLFxuICB9LFxuICB7XG4gICAgcGF0aDogJ3Byb2ZpbGUnLFxuICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9wYWdlcy9teWFjY291bnQvcGVyc29uYWwtaW5mby9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5Qcm9maWxlQ29tcG9uZW50KSxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICd1c2VybmFtZScsXG4gICAgbG9hZENvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL3BhZ2VzL215YWNjb3VudC9wZXJzb25hbC1pbmZvL3VzZXJuYW1lL3VzZXJuYW1lLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuVXNlcm5hbWVDb21wb25lbnQpLFxuICB9LFxuICB7IHBhdGg6ICdnZW5kZXInLCBsb2FkQ29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vcGFnZXMvbXlhY2NvdW50L2dlbmRlci9nZW5kZXIuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5HZW5kZXJDb21wb25lbnQpIH0sXG4gIHsgcGF0aDogJ2VtYWlsJywgbG9hZENvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL3BhZ2VzL215YWNjb3VudC9lbWFpbC9lbWFpbC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkVtYWlsQ29tcG9uZW50KSB9LFxuICB7XG4gICAgcGF0aDogJ2VtYWlsLXZlcmlmaWNhdGlvbi86aWQnLFxuICAgIGxvYWRDb21wb25lbnQ6ICgpID0+XG4gICAgICBpbXBvcnQoJy4vcGFnZXMvbXlhY2NvdW50L2VtYWlsLXZlcmlmaWNhdGlvbi9lbWFpbC12ZXJpZmljYXRpb24uY29tcG9uZW50JykudGhlbigoYykgPT4gYy5FbWFpbFZlcmlmaWNhdGlvbkNvbXBvbmVudCksXG4gIH0sXG4gIHsgcGF0aDogJ3Bob25lJywgbG9hZENvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL3BhZ2VzL215YWNjb3VudC9waG9uZS9waG9uZS5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLlBob25lQ29tcG9uZW50KSB9LFxuICB7XG4gICAgcGF0aDogJ3NlY3VyaXR5JyxcbiAgICBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnLi9wYWdlcy9teWFjY291bnQvc2VjdXJpdHkvc2VjdXJpdHkucm91dGVzJyksXG4gICAgZGF0YTogeyB0aXRsZTogJ1NlY3VyaXR5JyB9LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ25vdGlmaWNhdGlvbnMnLFxuICAgIGxvYWRDaGlsZHJlbjogKCkgPT4gaW1wb3J0KCdAcm9sYXRlY2gvYW5ndWxhci1ub3RpZmljYXRpb24nKS50aGVuKChtKSA9PiBtLm5vdGlmaWNhdGlvblJvdXRlcyksXG4gICAgZGF0YTogeyB0aXRsZTogJ+mAmuefpeS4reW/gycgfSxcbiAgfSxcbl07XG4iXX0=
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjb3VudC9zcmMvbGliL2FjY291bnQucm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDNUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUUzRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQVc7SUFDbkM7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLFVBQVUsRUFBRSxRQUFRO0tBQ3JCO0lBQ0QsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFO0lBQ25HLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRTtJQUN6RSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtJQUM5QyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxFQUFFO0lBQ2hGO1FBQ0UsSUFBSSxFQUFFLHNCQUFzQjtRQUM1QixTQUFTLEVBQUUsc0JBQXNCO1FBQ2pDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtLQUNsQztJQUNEO1FBQ0UsSUFBSSxFQUFFLFFBQVE7UUFDZCxTQUFTLEVBQUUsdUJBQXVCO1FBQ2xDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRTtLQUNuQztJQUNEO1FBQ0UsSUFBSSxFQUFFLGNBQWM7UUFDcEIsU0FBUyxFQUFFLHFCQUFxQjtLQUNqQztJQUNEO1FBQ0UsSUFBSSxFQUFFLFdBQVc7UUFDakIsU0FBUyxFQUFFLGtCQUFrQjtLQUM5QjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXV0aEd1YXJkLCBGb3JiaWRkZW5Db21wb25lbnQsIFVuYXV0aG9yaXplZENvbXBvbmVudCB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWF1dGgnO1xuaW1wb3J0IHsgRm9yZ290UGFzc3dvcmRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9nb3V0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvZ291dC9sb2dvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFBhc3N3b3JkcmVzZXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGFzc3dvcmRyZXNldC9wYXNzd29yZHJlc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaWduaW5Db21wb25lbnQgfSBmcm9tICcuL3BhZ2VzL2FjY291bnRzL3NpZ25pbi9zaWduaW4uY29tcG9uZW50JztcbmltcG9ydCB7IFNpZ251cENvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvYWNjb3VudHMvc2lnbnVwL3NpZ251cC5jb21wb25lbnQnO1xuXG5leHBvcnQgY29uc3QgYWNjb3VudFJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCcsXG4gICAgcmVkaXJlY3RUbzogJ3NpZ25pbicsXG4gIH0sXG4gIHsgcGF0aDogJ3NpZ25pbicsIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkXSwgY29tcG9uZW50OiBTaWduaW5Db21wb25lbnQsIGRhdGE6IHsgdGl0bGU6ICdTaWduaW4nIH0gfSxcbiAgeyBwYXRoOiAnc2lnbnVwJywgY29tcG9uZW50OiBTaWdudXBDb21wb25lbnQsIGRhdGE6IHsgdGl0bGU6ICdTaWdudXAnIH0gfSxcbiAgeyBwYXRoOiAnbG9nb3V0JywgY29tcG9uZW50OiBMb2dvdXRDb21wb25lbnQgfSxcbiAgeyBwYXRoOiAnbG9naW4nLCBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnLi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLnJvdXRlcycpIH0sXG4gIHtcbiAgICBwYXRoOiAncGFzc3dvcmRyZXNldC86dG9rZW4nLFxuICAgIGNvbXBvbmVudDogUGFzc3dvcmRyZXNldENvbXBvbmVudCxcbiAgICBkYXRhOiB7IHRpdGxlOiAnUGFzc3dvcmQgUmVzZXQnIH0sXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnZm9yZ290JyxcbiAgICBjb21wb25lbnQ6IEZvcmdvdFBhc3N3b3JkQ29tcG9uZW50LFxuICAgIGRhdGE6IHsgdGl0bGU6ICdGb3Jnb3QgUGFzc3dvcmQnIH0sXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAndW5hdXRob3JpemVkJyxcbiAgICBjb21wb25lbnQ6IFVuYXV0aG9yaXplZENvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdmb3JiaWRkZW4nLFxuICAgIGNvbXBvbmVudDogRm9yYmlkZGVuQ29tcG9uZW50LFxuICB9LFxuXTtcbiJdfQ==
|
|
@@ -50,10 +50,10 @@ export class AvatarUpdateDialogComponent {
|
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
54
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.
|
|
53
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AvatarUpdateDialogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: AvatarUpdateDialogComponent, isStandalone: true, selector: "rolatech-account-avatar-update-dialog", outputs: { save: "save" }, ngImport: i0, template: "<div class=\"flex flex-col p-3 max-w-[500px] mx-auto\">\n <div class=\"text-xl font-bold p-3\">\u4FEE\u6539\u5934\u50CF</div>\n <!-- <div class=\"w-[256px] h-[256px] mx-auto flex justify-center items-center\">\n <img [src]=\"avatar\" />\n </div> -->\n <div class=\"px-3 py-8\">\n <div\n class=\"bg-orange-600 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\" />\n </div>\n }\n </div>\n </div>\n\n <!-- <div class=\"p-3 flex justify-end items-center gap-3\">\n <button mat-button (click)=\"cancel()\">\u53D6\u6D88</button>\n <button mat-flat-button color=\"primary\" (click)=\"onSave()\">\u4FDD\u5B58</button>\n </div> -->\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>\u66F4\u6362\u5934\u50CF</span>\n </button>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
55
55
|
}
|
|
56
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AvatarUpdateDialogComponent, decorators: [{
|
|
57
57
|
type: Component,
|
|
58
58
|
args: [{ selector: 'rolatech-account-avatar-update-dialog', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule], template: "<div class=\"flex flex-col p-3 max-w-[500px] mx-auto\">\n <div class=\"text-xl font-bold p-3\">\u4FEE\u6539\u5934\u50CF</div>\n <!-- <div class=\"w-[256px] h-[256px] mx-auto flex justify-center items-center\">\n <img [src]=\"avatar\" />\n </div> -->\n <div class=\"px-3 py-8\">\n <div\n class=\"bg-orange-600 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\" />\n </div>\n }\n </div>\n </div>\n\n <!-- <div class=\"p-3 flex justify-end items-center gap-3\">\n <button mat-button (click)=\"cancel()\">\u53D6\u6D88</button>\n <button mat-flat-button color=\"primary\" (click)=\"onSave()\">\u4FDD\u5B58</button>\n </div> -->\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>\u66F4\u6362\u5934\u50CF</span>\n </button>\n </div>\n</div>\n" }]
|
|
59
59
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
@@ -3,10 +3,10 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
export class ForgotPasswordComponent {
|
|
4
4
|
constructor() { }
|
|
5
5
|
ngOnInit() { }
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
7
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ForgotPasswordComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: ForgotPasswordComponent, isStandalone: true, selector: "rolatech-account-forgot-password", ngImport: i0, template: "<p>forgot-password works!</p>\n", styles: [""] }); }
|
|
8
8
|
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ForgotPasswordComponent, decorators: [{
|
|
10
10
|
type: Component,
|
|
11
11
|
args: [{ selector: 'rolatech-account-forgot-password', standalone: true, template: "<p>forgot-password works!</p>\n" }]
|
|
12
12
|
}], ctorParameters: () => [] });
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { TopbarLoginComponent } from './topbar-login/topbar-login.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjb3VudC9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBUb3BiYXJMb2dpbkNvbXBvbmVudCB9IGZyb20gJy4vdG9wYmFyLWxvZ2luL3RvcGJhci1sb2dpbi5jb21wb25lbnQnO1xuIl19
|
|
@@ -32,10 +32,10 @@ export class LoginWechatComponent extends BaseComponent {
|
|
|
32
32
|
},
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
36
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LoginWechatComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: LoginWechatComponent, isStandalone: true, selector: "rolatech-account-login-wechat", usesInheritance: true, ngImport: i0, template: "<div>loading...</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }] }); }
|
|
37
37
|
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LoginWechatComponent, decorators: [{
|
|
39
39
|
type: Component,
|
|
40
40
|
args: [{ standalone: true, imports: [AngularCommonModule, AngularComponentsModule], selector: 'rolatech-account-login-wechat', template: "<div>loading...</div>\n" }]
|
|
41
41
|
}] });
|
|
@@ -36,10 +36,10 @@ export class LogoutComponent {
|
|
|
36
36
|
},
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
40
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LogoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: LogoutComponent, isStandalone: true, selector: "rolatech-account-logout", ngImport: i0, template: "<p>Please waiting...</p>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "ngmodule", type: AngularComponentsModule }] }); }
|
|
41
41
|
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LogoutComponent, decorators: [{
|
|
43
43
|
type: Component,
|
|
44
44
|
args: [{ standalone: true, imports: [AngularCommonModule, AngularComponentsModule], selector: 'rolatech-account-logout', template: "<p>Please waiting...</p>\n" }]
|
|
45
45
|
}] });
|
|
@@ -3,10 +3,10 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
export class PasswordresetComponent {
|
|
4
4
|
constructor() { }
|
|
5
5
|
ngOnInit() { }
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
7
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: PasswordresetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: PasswordresetComponent, isStandalone: true, selector: "rolatech-account-passwordreset", ngImport: i0, template: "<p>passwordreset works!</p>\n", styles: [""] }); }
|
|
8
8
|
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: PasswordresetComponent, decorators: [{
|
|
10
10
|
type: Component,
|
|
11
11
|
args: [{ selector: 'rolatech-account-passwordreset', standalone: true, template: "<p>passwordreset works!</p>\n" }]
|
|
12
12
|
}], ctorParameters: () => [] });
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Component, Input, PLATFORM_ID, inject } from '@angular/core';
|
|
2
|
+
import { CommonModule, isPlatformBrowser } from '@angular/common';
|
|
3
|
+
import { APP_CONFIG } from '@rolatech/angular-common';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class TopbarLoginComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.environment = inject(APP_CONFIG);
|
|
8
|
+
this.platformId = inject(PLATFORM_ID);
|
|
9
|
+
this.service = 'www';
|
|
10
|
+
this.signinUrl = '';
|
|
11
|
+
this.signupUrl = this.environment.accountsUrl + '/signup';
|
|
12
|
+
this.logoutUrl = this.environment.accountsUrl + `/logout?service=${this.service}`;
|
|
13
|
+
}
|
|
14
|
+
ngOnInit() {
|
|
15
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
16
|
+
this.signinUrl = `${this.environment.accountsUrl}/signin?continue=` + window.location.href;
|
|
17
|
+
this.logoutUrl = this.environment.accountsUrl + `/logout?service=${this.service}&continue=` + window.location.origin;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: TopbarLoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: TopbarLoginComponent, isStandalone: true, selector: "rolatech-account-topbar-login", inputs: { service: "service" }, ngImport: i0, template: "<div class=\"flex\">\n <a class=\"inline-block sm:border border-black py-2 px-5 mr-2 cursor-pointer rounded-md\" [href]=\"signinUrl\"\n ><span>\u767B\u5F55</span></a\n >\n <a class=\"inline-block sm:border border-white py-2 px-5 text-white bg-orange-600 cursor-pointer rounded-md\" [href]=\"signupUrl\"\n ><span>\u6CE8\u518C</span></a\n >\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: TopbarLoginComponent, decorators: [{
|
|
24
|
+
type: Component,
|
|
25
|
+
args: [{ selector: 'rolatech-account-topbar-login', standalone: true, imports: [CommonModule], template: "<div class=\"flex\">\n <a class=\"inline-block sm:border border-black py-2 px-5 mr-2 cursor-pointer rounded-md\" [href]=\"signinUrl\"\n ><span>\u767B\u5F55</span></a\n >\n <a class=\"inline-block sm:border border-white py-2 px-5 text-white bg-orange-600 cursor-pointer rounded-md\" [href]=\"signupUrl\"\n ><span>\u6CE8\u518C</span></a\n >\n</div>\n" }]
|
|
26
|
+
}], propDecorators: { service: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}] } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9wYmFyLWxvZ2luLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NvdW50L3NyYy9saWIvY29tcG9uZW50cy90b3BiYXItbG9naW4vdG9wYmFyLWxvZ2luLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NvdW50L3NyYy9saWIvY29tcG9uZW50cy90b3BiYXItbG9naW4vdG9wYmFyLWxvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFTdEQsTUFBTSxPQUFPLG9CQUFvQjtJQVBqQztRQVFFLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUN6QixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsY0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztRQUNyRCxjQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztLQU85RTtJQU5DLFFBQVE7UUFDTixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDM0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsR0FBRyxtQkFBbUIsSUFBSSxDQUFDLE9BQU8sWUFBWSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ3ZILENBQUM7SUFDSCxDQUFDOzhHQVpVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHlIQ1hqQyx3V0FRQSx5REREWSxZQUFZOzsyRkFJWCxvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0UsK0JBQStCLGNBQzdCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzs4QkFPZCxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFBMQVRGT1JNX0lELCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVBQX0NPTkZJRyB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWFjY291bnQtdG9wYmFyLWxvZ2luJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi90b3BiYXItbG9naW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdG9wYmFyLWxvZ2luLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgVG9wYmFyTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBlbnZpcm9ubWVudCA9IGluamVjdChBUFBfQ09ORklHKTtcbiAgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIEBJbnB1dCgpIHNlcnZpY2UgPSAnd3d3JztcbiAgc2lnbmluVXJsID0gJyc7XG4gIHNpZ251cFVybCA9IHRoaXMuZW52aXJvbm1lbnQuYWNjb3VudHNVcmwgKyAnL3NpZ251cCc7XG4gIGxvZ291dFVybCA9IHRoaXMuZW52aXJvbm1lbnQuYWNjb3VudHNVcmwgKyBgL2xvZ291dD9zZXJ2aWNlPSR7dGhpcy5zZXJ2aWNlfWA7XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICB0aGlzLnNpZ25pblVybCA9IGAke3RoaXMuZW52aXJvbm1lbnQuYWNjb3VudHNVcmx9L3NpZ25pbj9jb250aW51ZT1gICsgd2luZG93LmxvY2F0aW9uLmhyZWY7XG4gICAgICB0aGlzLmxvZ291dFVybCA9IHRoaXMuZW52aXJvbm1lbnQuYWNjb3VudHNVcmwgKyBgL2xvZ291dD9zZXJ2aWNlPSR7dGhpcy5zZXJ2aWNlfSZjb250aW51ZT1gICsgd2luZG93LmxvY2F0aW9uLm9yaWdpbjtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gIDxhIGNsYXNzPVwiaW5saW5lLWJsb2NrIHNtOmJvcmRlciBib3JkZXItYmxhY2sgcHktMiBweC01IG1yLTIgY3Vyc29yLXBvaW50ZXIgcm91bmRlZC1tZFwiIFtocmVmXT1cInNpZ25pblVybFwiXG4gICAgPjxzcGFuPueZu+W9lTwvc3Bhbj48L2FcbiAgPlxuICA8YSBjbGFzcz1cImlubGluZS1ibG9jayBzbTpib3JkZXIgYm9yZGVyLXdoaXRlIHB5LTIgcHgtNSB0ZXh0LXdoaXRlIGJnLW9yYW5nZS02MDAgY3Vyc29yLXBvaW50ZXIgcm91bmRlZC1tZFwiIFtocmVmXT1cInNpZ251cFVybFwiXG4gICAgPjxzcGFuPuazqOWGjDwvc3Bhbj48L2FcbiAgPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export const myaccountRoutes = [
|
|
2
|
+
{
|
|
3
|
+
path: '',
|
|
4
|
+
loadComponent: () => import('./pages/myaccount/home/home.component').then((c) => c.HomeComponent),
|
|
5
|
+
data: { title: '首页' },
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
path: 'personal-info',
|
|
9
|
+
loadComponent: () => import('./pages/myaccount/personal-info/info.component').then((c) => c.InfoComponent),
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
path: 'profile',
|
|
13
|
+
loadComponent: () => import('./pages/myaccount/personal-info/profile/profile.component').then((c) => c.ProfileComponent),
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
path: 'username',
|
|
17
|
+
loadComponent: () => import('./pages/myaccount/personal-info/username/username.component').then((c) => c.UsernameComponent),
|
|
18
|
+
},
|
|
19
|
+
{ path: 'gender', loadComponent: () => import('./pages/myaccount/gender/gender.component').then((c) => c.GenderComponent) },
|
|
20
|
+
{ path: 'email', loadComponent: () => import('./pages/myaccount/email/email.component').then((c) => c.EmailComponent) },
|
|
21
|
+
{
|
|
22
|
+
path: 'email-verification/:id',
|
|
23
|
+
loadComponent: () => import('./pages/myaccount/email-verification/email-verification.component').then((c) => c.EmailVerificationComponent),
|
|
24
|
+
},
|
|
25
|
+
{ path: 'phone', loadComponent: () => import('./pages/myaccount/phone/phone.component').then((c) => c.PhoneComponent) },
|
|
26
|
+
{
|
|
27
|
+
path: 'security',
|
|
28
|
+
loadChildren: () => import('./pages/myaccount/security/security.routes'),
|
|
29
|
+
data: { title: 'Security' },
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
path: 'notifications',
|
|
33
|
+
loadChildren: () => import('@rolatech/angular-notification').then((m) => m.notificationRoutes),
|
|
34
|
+
data: { title: '通知中心' },
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXlhY2NvdW50LnJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NvdW50L3NyYy9saWIvbXlhY2NvdW50LnJvdXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQVc7SUFDckM7UUFDRSxJQUFJLEVBQUUsRUFBRTtRQUNSLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsdUNBQXVDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDakcsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtLQUN0QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGVBQWU7UUFDckIsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztLQUMzRztJQUNEO1FBQ0UsSUFBSSxFQUFFLFNBQVM7UUFDZixhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLDJEQUEyRCxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7S0FDekg7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsNkRBQTZELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztLQUM1SDtJQUNELEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLDJDQUEyQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUU7SUFDM0gsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRTtJQUN2SDtRQUNFLElBQUksRUFBRSx3QkFBd0I7UUFDOUIsYUFBYSxFQUFFLEdBQUcsRUFBRSxDQUNsQixNQUFNLENBQUMsbUVBQW1FLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQztLQUN4SDtJQUNELEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHlDQUF5QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQUU7SUFDdkg7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLDRDQUE0QyxDQUFDO1FBQ3hFLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7S0FDNUI7SUFDRDtRQUNFLElBQUksRUFBRSxlQUFlO1FBQ3JCLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztRQUM5RixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0tBQ3hCO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCBjb25zdCBteWFjY291bnRSb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9wYWdlcy9teWFjY291bnQvaG9tZS9ob21lLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuSG9tZUNvbXBvbmVudCksXG4gICAgZGF0YTogeyB0aXRsZTogJ+mmlumhtScgfSxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdwZXJzb25hbC1pbmZvJyxcbiAgICBsb2FkQ29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vcGFnZXMvbXlhY2NvdW50L3BlcnNvbmFsLWluZm8vaW5mby5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkluZm9Db21wb25lbnQpLFxuICB9LFxuICB7XG4gICAgcGF0aDogJ3Byb2ZpbGUnLFxuICAgIGxvYWRDb21wb25lbnQ6ICgpID0+IGltcG9ydCgnLi9wYWdlcy9teWFjY291bnQvcGVyc29uYWwtaW5mby9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5Qcm9maWxlQ29tcG9uZW50KSxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICd1c2VybmFtZScsXG4gICAgbG9hZENvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL3BhZ2VzL215YWNjb3VudC9wZXJzb25hbC1pbmZvL3VzZXJuYW1lL3VzZXJuYW1lLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuVXNlcm5hbWVDb21wb25lbnQpLFxuICB9LFxuICB7IHBhdGg6ICdnZW5kZXInLCBsb2FkQ29tcG9uZW50OiAoKSA9PiBpbXBvcnQoJy4vcGFnZXMvbXlhY2NvdW50L2dlbmRlci9nZW5kZXIuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5HZW5kZXJDb21wb25lbnQpIH0sXG4gIHsgcGF0aDogJ2VtYWlsJywgbG9hZENvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL3BhZ2VzL215YWNjb3VudC9lbWFpbC9lbWFpbC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkVtYWlsQ29tcG9uZW50KSB9LFxuICB7XG4gICAgcGF0aDogJ2VtYWlsLXZlcmlmaWNhdGlvbi86aWQnLFxuICAgIGxvYWRDb21wb25lbnQ6ICgpID0+XG4gICAgICBpbXBvcnQoJy4vcGFnZXMvbXlhY2NvdW50L2VtYWlsLXZlcmlmaWNhdGlvbi9lbWFpbC12ZXJpZmljYXRpb24uY29tcG9uZW50JykudGhlbigoYykgPT4gYy5FbWFpbFZlcmlmaWNhdGlvbkNvbXBvbmVudCksXG4gIH0sXG4gIHsgcGF0aDogJ3Bob25lJywgbG9hZENvbXBvbmVudDogKCkgPT4gaW1wb3J0KCcuL3BhZ2VzL215YWNjb3VudC9waG9uZS9waG9uZS5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLlBob25lQ29tcG9uZW50KSB9LFxuICB7XG4gICAgcGF0aDogJ3NlY3VyaXR5JyxcbiAgICBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnLi9wYWdlcy9teWFjY291bnQvc2VjdXJpdHkvc2VjdXJpdHkucm91dGVzJyksXG4gICAgZGF0YTogeyB0aXRsZTogJ1NlY3VyaXR5JyB9LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ25vdGlmaWNhdGlvbnMnLFxuICAgIGxvYWRDaGlsZHJlbjogKCkgPT4gaW1wb3J0KCdAcm9sYXRlY2gvYW5ndWxhci1ub3RpZmljYXRpb24nKS50aGVuKChtKSA9PiBtLm5vdGlmaWNhdGlvblJvdXRlcyksXG4gICAgZGF0YTogeyB0aXRsZTogJ+mAmuefpeS4reW/gycgfSxcbiAgfSxcbl07XG4iXX0=
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
|
+
import { Component, HostListener, inject, PLATFORM_ID } from '@angular/core';
|
|
3
|
+
import { FormBuilder, Validators } from '@angular/forms';
|
|
4
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
5
|
+
import { AngularCommonModule, APP_CONFIG } from '@rolatech/angular-common';
|
|
6
|
+
import { AngularComponentsModule, BaseComponent } from '@rolatech/angular-components';
|
|
7
|
+
import { AuthService, AuthUserService } from '@rolatech/angular-auth';
|
|
8
|
+
import { WeChatLoginService } from '../../../services/wechat-login.service';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common";
|
|
11
|
+
import * as i2 from "@angular/forms";
|
|
12
|
+
import * as i3 from "@angular/material/form-field";
|
|
13
|
+
import * as i4 from "@angular/material/input";
|
|
14
|
+
import * as i5 from "@angular/material/tabs";
|
|
15
|
+
export class SigninComponent extends BaseComponent {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
this.continue = '';
|
|
19
|
+
this.environment = inject(APP_CONFIG);
|
|
20
|
+
this.platformId = inject(PLATFORM_ID);
|
|
21
|
+
this.formBuilder = inject(FormBuilder);
|
|
22
|
+
this.authService = inject(AuthService);
|
|
23
|
+
this.authUserService = inject(AuthUserService);
|
|
24
|
+
this.wechtLoginService = inject(WeChatLoginService);
|
|
25
|
+
this.tabIndex = 0;
|
|
26
|
+
this.countDown = false;
|
|
27
|
+
this.countDownTime = 60;
|
|
28
|
+
this.showButtonText = '发送验证码';
|
|
29
|
+
this.appid = 'wx567acbea73439828';
|
|
30
|
+
this.state = 'add';
|
|
31
|
+
this.sanitizer = inject(DomSanitizer);
|
|
32
|
+
this.baseUrl = 'https://open.weixin.qq.com/connect/qrconnect';
|
|
33
|
+
}
|
|
34
|
+
onLogin(event) {
|
|
35
|
+
if (event.origin !== window.location.origin || /react-devtools/gi.test(event.data.source)) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (event.origin === this.environment.accountsUrl && event.data.code === 200) {
|
|
39
|
+
window.location.href = this.continue === this.environment.accountsUrl ? this.environment.myaccountUrl : this.continue;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
ngOnInit() {
|
|
43
|
+
this.titleService.setTitle('账号登录 - 拼小课');
|
|
44
|
+
this.passrodForm = this.formBuilder.group({
|
|
45
|
+
account: [null, Validators.required],
|
|
46
|
+
password: [null, Validators.required],
|
|
47
|
+
});
|
|
48
|
+
this.codeForm = this.formBuilder.group({
|
|
49
|
+
phone: [null, [Validators.required, Validators.pattern('1(3|4|5|6|7|8|9)\\d{9}')]],
|
|
50
|
+
code: [null, Validators.required],
|
|
51
|
+
});
|
|
52
|
+
this.continue = this.route.snapshot.queryParams['continue'] || '/';
|
|
53
|
+
}
|
|
54
|
+
get form() {
|
|
55
|
+
return this.tabIndex === 0 ? this.passrodForm.controls : this.codeForm.controls;
|
|
56
|
+
}
|
|
57
|
+
sendSMSCode() {
|
|
58
|
+
const phoneControl = this.codeForm.get('phone');
|
|
59
|
+
if (!phoneControl?.valid) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const phone = phoneControl.value;
|
|
63
|
+
this.countDown = true;
|
|
64
|
+
const start = setInterval(() => {
|
|
65
|
+
if (this.countDownTime >= 0) {
|
|
66
|
+
this.showButtonText = `${this.countDownTime--}秒重发`;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
clearInterval(start);
|
|
70
|
+
this.showButtonText = '重新发送';
|
|
71
|
+
this.countDown = false;
|
|
72
|
+
this.countDownTime = 60;
|
|
73
|
+
}
|
|
74
|
+
}, 1000);
|
|
75
|
+
this.authUserService.sendSMSCode('+86', phone).subscribe({
|
|
76
|
+
next: (res) => {
|
|
77
|
+
this.snackBarService.open('发送成功');
|
|
78
|
+
},
|
|
79
|
+
error: (error) => {
|
|
80
|
+
this.snackBarService.open(error.message);
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
login() {
|
|
85
|
+
let data = {};
|
|
86
|
+
if (this.tabIndex === 0) {
|
|
87
|
+
if (!this.passrodForm.valid) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
data = {
|
|
91
|
+
account: this.form['account'].value,
|
|
92
|
+
password: this.form['password'].value,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
if (this.tabIndex === 1) {
|
|
96
|
+
if (!this.codeForm.valid) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
data = {
|
|
100
|
+
phone: this.form['phone'].value,
|
|
101
|
+
code: this.form['code'].value,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
this.authService.login(data).subscribe({
|
|
105
|
+
next: () => {
|
|
106
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
107
|
+
window.location.href = this.continue === this.environment.accountsUrl ? this.environment.myaccountUrl : this.continue;
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
error: (error) => {
|
|
111
|
+
this.snackBarService.open(error.message);
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
onSelectedTabChange(e) {
|
|
116
|
+
const { index } = e;
|
|
117
|
+
this.tabIndex = index;
|
|
118
|
+
if (index === 0) {
|
|
119
|
+
this.codeForm.reset();
|
|
120
|
+
}
|
|
121
|
+
if (index === 1) {
|
|
122
|
+
this.passrodForm.reset();
|
|
123
|
+
}
|
|
124
|
+
if (index === 2) {
|
|
125
|
+
this.codeForm.reset();
|
|
126
|
+
this.passrodForm.reset();
|
|
127
|
+
this.wechat();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
wechat() {
|
|
131
|
+
const redirectUri = 'https://accounts.pinxiaoke.cn/login?continue';
|
|
132
|
+
// const redirectUri = `${window.location.origin}/login?continue`;
|
|
133
|
+
const href = 'https://cloudcache.tencent-cloud.com/open_proj/proj_qcloud_v2/gateway/login-regist/css/link-wx-login.css';
|
|
134
|
+
const encodedURI = encodeURI(redirectUri);
|
|
135
|
+
const src = `${this.baseUrl}?appid=${this.appid}&response_type=code&self_redirect=true&scope=snsapi_login&href=${href}&redirect_uri=${encodedURI}&state=${this.state}#wechat_redirect`;
|
|
136
|
+
this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(src);
|
|
137
|
+
}
|
|
138
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SigninComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
139
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: SigninComponent, isStandalone: true, selector: "rolatech-account-auth-signin", host: { listeners: { "window:message": "onLogin($event)" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"h-full flex flex-col items-center sm:justify-center sm:bg-gray-100\">\n <div\n class=\"w-full p-8 lg:p-11 rounded-xl bg-white flex flex-col lg:flex-row justify-between xl:w-[800px] lg:w-[600px] sm:w-[600px]\"\n >\n <!-- header -->\n <div class=\"flex flex-col py-6\">\n <div class=\"text-3xl font-medium mb-3\">\u767B\u5F55</div>\n <div class=\"text-md\">\u4F7F\u7528\u62FC\u5C0F\u8BFE\u8D26\u53F7\u767B\u5F55</div>\n </div>\n <div>\n <!-- content -->\n <mat-tab-group mat-stretch-tabs=\"false\" mat-align-tabs=\"start\" (selectedTabChange)=\"onSelectedTabChange($event)\">\n <mat-tab label=\"\u8D26\u53F7\u5BC6\u7801\">\n <div class=\"pt-6\">\n <form [formGroup]=\"passrodForm\" class=\"flex flex-col\">\n <mat-form-field>\n <mat-label> \u7528\u6237\u540D/\u624B\u673A\u53F7 </mat-label>\n <input autocomplete 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>\u7528\u6237\u540D\u5FC5\u586B</span>\n }\n </mat-error>\n }\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u5BC6\u7801 </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>\u8BF7\u8F93\u5165\u5BC6\u7801</span>\n }\n </mat-error>\n }\n </mat-form-field>\n </form>\n </div>\n </mat-tab>\n <mat-tab label=\"\u77ED\u4FE1\u9A8C\u8BC1\u7801\">\n <div class=\"pt-6\">\n <form [formGroup]=\"codeForm\" class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u624B\u673A\u53F7 </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> \u624B\u673A\u53F7\u5FC5\u586B</span>\n }\n @if (codeForm.controls['phone'].errors?.['pattern']) {\n <span> \u624B\u673A\u53F7\u683C\u5F0F\u9519\u8BEF </span>\n }\n </mat-error>\n }\n </mat-form-field>\n <div class=\"flex justify-between items-start gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u9A8C\u8BC1\u7801 </mat-label>\n <input matInput formControlName=\"code\" type=\"text\" required />\n @if (codeForm.controls['code'].touched && codeForm.controls['code'].invalid) {\n <mat-error>\n @if (codeForm.controls['code'].errors?.['required']) {\n <span> \u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801 </span>\n }\n </mat-error>\n }\n </mat-form-field>\n <button\n (click)=\"sendSMSCode()\"\n [disabled]=\"countDown\"\n [ngClass]=\"countDown ? 'bg-orange-300' : 'bg-orange-600 shadow shadow-gray-300 cursor-pointer'\"\n class=\"max-w-[128px] p-3 mt-2 text-white rounded text-center\"\n >\n <span>{{ showButtonText }}</span>\n </button>\n </div>\n </form>\n </div>\n </mat-tab>\n <mat-tab label=\"\u5FAE\u4FE1\u626B\u7801\">\n <div class=\"py-6\">\n <div class=\"w-[190px] h-[190px] mx-auto\">\n @if (tabIndex === 2) {\n <iframe [src]=\"urlSafe\" class=\"w-full h-full inline\" scrolling=\"no\" frameBorder=\"no\" #iframe></iframe>\n <!-- <img [src]=\"urlSafe\" class=\"w-full h-full inline\" /> -->\n <div></div>\n }\n </div>\n </div>\n </mat-tab>\n </mat-tab-group>\n\n <!-- actions -->\n <div class=\"flex justify-between items-center py-2 pl-2\">\n <a class=\"underline underline-offset-4\" href=\"signup\">\u521B\u5EFA\u8D26\u53F7</a>\n <div\n (click)=\"login()\"\n class=\"cursor-pointer bg-orange-600 hover:bg-orange-700 w-[128px] p-3 shadow-gray-300 shadow hover:shadow-lg text-white rounded text-center\"\n >\n <span>\u767B\u5F55</span>\n </div>\n </div>\n </div>\n\n <!-- 3-part -->\n <!-- <div class=\"flex flex-col justify-center items-center mt-6\">\n <div class=\"flex items-center\">\n <span class=\"w-16 h-[1px] bg-gray-300\"></span>\n <span class=\"px-3\">\u7B2C\u4E09\u65B9\u767B\u5F55</span>\n <span class=\"w-16 h-[1px] bg-gray-300\"></span>\n </div>\n <div class=\"mt-3 flex items-center hover:shadow hover:shadow-gray-400 cursor-pointer p-3\">\n <img class=\"w-4 h-4\" src=\"assets/images/icon64_appwx_logo.png\" />\n <span class=\"ml-1\">\u5FAE\u4FE1</span>\n </div>\n </div> -->\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: AngularCommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: AngularComponentsModule }, { 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"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i5.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }] }); }
|
|
140
|
+
}
|
|
141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SigninComponent, decorators: [{
|
|
142
|
+
type: Component,
|
|
143
|
+
args: [{ standalone: true, imports: [AngularCommonModule, AngularComponentsModule], selector: 'rolatech-account-auth-signin', template: "<div class=\"h-full flex flex-col items-center sm:justify-center sm:bg-gray-100\">\n <div\n class=\"w-full p-8 lg:p-11 rounded-xl bg-white flex flex-col lg:flex-row justify-between xl:w-[800px] lg:w-[600px] sm:w-[600px]\"\n >\n <!-- header -->\n <div class=\"flex flex-col py-6\">\n <div class=\"text-3xl font-medium mb-3\">\u767B\u5F55</div>\n <div class=\"text-md\">\u4F7F\u7528\u62FC\u5C0F\u8BFE\u8D26\u53F7\u767B\u5F55</div>\n </div>\n <div>\n <!-- content -->\n <mat-tab-group mat-stretch-tabs=\"false\" mat-align-tabs=\"start\" (selectedTabChange)=\"onSelectedTabChange($event)\">\n <mat-tab label=\"\u8D26\u53F7\u5BC6\u7801\">\n <div class=\"pt-6\">\n <form [formGroup]=\"passrodForm\" class=\"flex flex-col\">\n <mat-form-field>\n <mat-label> \u7528\u6237\u540D/\u624B\u673A\u53F7 </mat-label>\n <input autocomplete 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>\u7528\u6237\u540D\u5FC5\u586B</span>\n }\n </mat-error>\n }\n </mat-form-field>\n <mat-form-field appearance=\"fill\">\n <mat-label> \u5BC6\u7801 </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>\u8BF7\u8F93\u5165\u5BC6\u7801</span>\n }\n </mat-error>\n }\n </mat-form-field>\n </form>\n </div>\n </mat-tab>\n <mat-tab label=\"\u77ED\u4FE1\u9A8C\u8BC1\u7801\">\n <div class=\"pt-6\">\n <form [formGroup]=\"codeForm\" class=\"flex flex-col\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u624B\u673A\u53F7 </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> \u624B\u673A\u53F7\u5FC5\u586B</span>\n }\n @if (codeForm.controls['phone'].errors?.['pattern']) {\n <span> \u624B\u673A\u53F7\u683C\u5F0F\u9519\u8BEF </span>\n }\n </mat-error>\n }\n </mat-form-field>\n <div class=\"flex justify-between items-start gap-3\">\n <mat-form-field appearance=\"fill\">\n <mat-label> \u9A8C\u8BC1\u7801 </mat-label>\n <input matInput formControlName=\"code\" type=\"text\" required />\n @if (codeForm.controls['code'].touched && codeForm.controls['code'].invalid) {\n <mat-error>\n @if (codeForm.controls['code'].errors?.['required']) {\n <span> \u8BF7\u8F93\u5165\u9A8C\u8BC1\u7801 </span>\n }\n </mat-error>\n }\n </mat-form-field>\n <button\n (click)=\"sendSMSCode()\"\n [disabled]=\"countDown\"\n [ngClass]=\"countDown ? 'bg-orange-300' : 'bg-orange-600 shadow shadow-gray-300 cursor-pointer'\"\n class=\"max-w-[128px] p-3 mt-2 text-white rounded text-center\"\n >\n <span>{{ showButtonText }}</span>\n </button>\n </div>\n </form>\n </div>\n </mat-tab>\n <mat-tab label=\"\u5FAE\u4FE1\u626B\u7801\">\n <div class=\"py-6\">\n <div class=\"w-[190px] h-[190px] mx-auto\">\n @if (tabIndex === 2) {\n <iframe [src]=\"urlSafe\" class=\"w-full h-full inline\" scrolling=\"no\" frameBorder=\"no\" #iframe></iframe>\n <!-- <img [src]=\"urlSafe\" class=\"w-full h-full inline\" /> -->\n <div></div>\n }\n </div>\n </div>\n </mat-tab>\n </mat-tab-group>\n\n <!-- actions -->\n <div class=\"flex justify-between items-center py-2 pl-2\">\n <a class=\"underline underline-offset-4\" href=\"signup\">\u521B\u5EFA\u8D26\u53F7</a>\n <div\n (click)=\"login()\"\n class=\"cursor-pointer bg-orange-600 hover:bg-orange-700 w-[128px] p-3 shadow-gray-300 shadow hover:shadow-lg text-white rounded text-center\"\n >\n <span>\u767B\u5F55</span>\n </div>\n </div>\n </div>\n\n <!-- 3-part -->\n <!-- <div class=\"flex flex-col justify-center items-center mt-6\">\n <div class=\"flex items-center\">\n <span class=\"w-16 h-[1px] bg-gray-300\"></span>\n <span class=\"px-3\">\u7B2C\u4E09\u65B9\u767B\u5F55</span>\n <span class=\"w-16 h-[1px] bg-gray-300\"></span>\n </div>\n <div class=\"mt-3 flex items-center hover:shadow hover:shadow-gray-400 cursor-pointer p-3\">\n <img class=\"w-4 h-4\" src=\"assets/images/icon64_appwx_logo.png\" />\n <span class=\"ml-1\">\u5FAE\u4FE1</span>\n </div>\n </div> -->\n </div>\n</div>\n" }]
|
|
144
|
+
}], propDecorators: { onLogin: [{
|
|
145
|
+
type: HostListener,
|
|
146
|
+
args: ['window:message', ['$event']]
|
|
147
|
+
}] } });
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmluLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1hY2NvdW50L3NyYy9saWIvcGFnZXMvYWNjb3VudHMvc2lnbmluL3NpZ25pbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjb3VudC9zcmMvbGliL3BhZ2VzL2FjY291bnRzL3NpZ25pbi9zaWduaW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFVLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBbUIsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7O0FBUzVFLE1BQU0sT0FBTyxlQUFnQixTQUFRLGFBQWE7SUFQbEQ7O1FBVUUsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENB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QUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUNELElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNO1FBQ0osTUFBTSxXQUFXLEdBQUcsOENBQThDLENBQUM7UUFDbkUsa0VBQWtFO1FBQ2xFLE1BQU0sSUFBSSxHQUFHLDBHQUEwRyxDQUFDO1FBQ3hILE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQyxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLFVBQVUsSUFBSSxDQUFDLEtBQUssa0VBQWtFLElBQUksaUJBQWlCLFVBQVUsVUFBVSxJQUFJLENBQUMsS0FBSyxrQkFBa0IsQ0FBQztRQUN2TCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsOEJBQThCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEUsQ0FBQzs4R0EvSFUsZUFBZTtrR0FBZixlQUFlLDZLQ2pCNUIsbWxMQXdIQSx5REQ1R1ksbUJBQW1CLHV3Q0FBRSx1QkFBdUI7OzJGQUszQyxlQUFlO2tCQVAzQixTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLHVCQUF1QixDQUFDLFlBQzdDLDhCQUE4Qjs4QkEwQnhDLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBpbmplY3QsIE9uSW5pdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRUYWJDaGFuZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgU2FmZVJlc291cmNlVXJsLCBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEFuZ3VsYXJDb21tb25Nb2R1bGUsIEFQUF9DT05GSUcgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21tb24nO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudHNNb2R1bGUsIEJhc2VDb21wb25lbnQgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1jb21wb25lbnRzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlLCBBdXRoVXNlclNlcnZpY2UgfSBmcm9tICdAcm9sYXRlY2gvYW5ndWxhci1hdXRoJztcbmltcG9ydCB7IFdlQ2hhdExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3dlY2hhdC1sb2dpbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtBbmd1bGFyQ29tbW9uTW9kdWxlLCBBbmd1bGFyQ29tcG9uZW50c01vZHVsZV0sXG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtYWNjb3VudC1hdXRoLXNpZ25pbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWduaW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaWduaW4uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2lnbmluQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHBhc3Nyb2RGb3JtITogRm9ybUdyb3VwO1xuICBjb2RlRm9ybSE6IEZvcm1Hcm91cDtcbiAgY29udGludWUgPSAnJztcbiAgZW52aXJvbm1lbnQgPSBpbmplY3QoQVBQX0NPTkZJRyk7XG4gIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBmb3JtQnVpbGRlciA9IGluamVjdChGb3JtQnVpbGRlcik7XG4gIGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgYXV0aFVzZXJTZXJ2aWNlID0gaW5qZWN0KEF1dGhVc2VyU2VydmljZSk7XG4gIHdlY2h0TG9naW5TZXJ2aWNlID0gaW5qZWN0KFdlQ2hhdExvZ2luU2VydmljZSk7XG5cbiAgdGFiSW5kZXggPSAwO1xuICBjb3VudERvd24gPSBmYWxzZTtcbiAgY291bnREb3duVGltZSA9IDYwO1xuICBzaG93QnV0dG9uVGV4dCA9ICflj5HpgIHpqozor4HnoIEnO1xuICBhcHBpZCA9ICd3eDU2N2FjYmVhNzM0Mzk4MjgnO1xuICBzdGF0ZSA9ICdhZGQnO1xuICB1cmxTYWZlITogU2FmZVJlc291cmNlVXJsO1xuICBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcbiAgYmFzZVVybCA9ICdodHRwczovL29wZW4ud2VpeGluLnFxLmNvbS9jb25uZWN0L3FyY29ubmVjdCc7XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93Om1lc3NhZ2UnLCBbJyRldmVudCddKVxuICBvbkxvZ2luKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQub3JpZ2luICE9PSB3aW5kb3cubG9jYXRpb24ub3JpZ2luIHx8IC9yZWFjdC1kZXZ0b29scy9naS50ZXN0KGV2ZW50LmRhdGEuc291cmNlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoZXZlbnQub3JpZ2luID09PSB0aGlzLmVudmlyb25tZW50LmFjY291bnRzVXJsICYmIGV2ZW50LmRhdGEuY29kZSA9PT0gMjAwKSB7XG4gICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHRoaXMuY29udGludWUgPT09IHRoaXMuZW52aXJvbm1lbnQuYWNjb3VudHNVcmwgPyB0aGlzLmVudmlyb25tZW50Lm15YWNjb3VudFVybCA6IHRoaXMuY29udGludWU7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUoJ+i0puWPt+eZu+W9lSAtIOaLvOWwj+ivvicpO1xuICAgIHRoaXMucGFzc3JvZEZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGFjY291bnQ6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIHBhc3N3b3JkOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgfSk7XG4gICAgdGhpcy5jb2RlRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgcGhvbmU6IFtudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKCcxKDN8NHw1fDZ8N3w4fDkpXFxcXGR7OX0nKV1dLFxuICAgICAgY29kZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgIH0pO1xuICAgIHRoaXMuY29udGludWUgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWydjb250aW51ZSddIHx8ICcvJztcbiAgfVxuICBnZXQgZm9ybSgpIHtcbiAgICByZXR1cm4gdGhpcy50YWJJbmRleCA9PT0gMCA/IHRoaXMucGFzc3JvZEZvcm0uY29udHJvbHMgOiB0aGlzLmNvZGVGb3JtLmNvbnRyb2xzO1xuICB9XG4gIHNlbmRTTVNDb2RlKCkge1xuICAgIGNvbnN0IHBob25lQ29udHJvbCA9IHRoaXMuY29kZUZvcm0uZ2V0KCdwaG9uZScpO1xuICAgIGlmICghcGhvbmVDb250cm9sPy52YWxpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwaG9uZSA9IHBob25lQ29udHJvbC52YWx1ZTtcbiAgICB0aGlzLmNvdW50RG93biA9IHRydWU7XG4gICAgY29uc3Qgc3RhcnQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jb3VudERvd25UaW1lID49IDApIHtcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uVGV4dCA9IGAke3RoaXMuY291bnREb3duVGltZS0tfeenkumHjeWPkWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbGVhckludGVydmFsKHN0YXJ0KTtcbiAgICAgICAgdGhpcy5zaG93QnV0dG9uVGV4dCA9ICfph43mlrDlj5HpgIEnO1xuICAgICAgICB0aGlzLmNvdW50RG93biA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvdW50RG93blRpbWUgPSA2MDtcbiAgICAgIH1cbiAgICB9LCAxMDAwKTtcblxuICAgIHRoaXMuYXV0aFVzZXJTZXJ2aWNlLnNlbmRTTVNDb2RlKCcrODYnLCBwaG9uZSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0JhclNlcnZpY2Uub3Blbign5Y+R6YCB5oiQ5YqfJyk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBsb2dpbigpIHtcbiAgICBsZXQgZGF0YSA9IHt9O1xuICAgIGlmICh0aGlzLnRhYkluZGV4ID09PSAwKSB7XG4gICAgICBpZiAoIXRoaXMucGFzc3JvZEZvcm0udmFsaWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgZGF0YSA9IHtcbiAgICAgICAgYWNjb3VudDogdGhpcy5mb3JtWydhY2NvdW50J10udmFsdWUsXG4gICAgICAgIHBhc3N3b3JkOiB0aGlzLmZvcm1bJ3Bhc3N3b3JkJ10udmFsdWUsXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAodGhpcy50YWJJbmRleCA9PT0gMSkge1xuICAgICAgaWYgKCF0aGlzLmNvZGVGb3JtLnZhbGlkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGRhdGEgPSB7XG4gICAgICAgIHBob25lOiB0aGlzLmZvcm1bJ3Bob25lJ10udmFsdWUsXG4gICAgICAgIGNvZGU6IHRoaXMuZm9ybVsnY29kZSddLnZhbHVlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2luKGRhdGEpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB0aGlzLmNvbnRpbnVlID09PSB0aGlzLmVudmlyb25tZW50LmFjY291bnRzVXJsID8gdGhpcy5lbnZpcm9ubWVudC5teWFjY291bnRVcmwgOiB0aGlzLmNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyU2VydmljZS5vcGVuKGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBvblNlbGVjdGVkVGFiQ2hhbmdlKGU6IE1hdFRhYkNoYW5nZUV2ZW50KSB7XG4gICAgY29uc3QgeyBpbmRleCB9ID0gZTtcbiAgICB0aGlzLnRhYkluZGV4ID0gaW5kZXg7XG4gICAgaWYgKGluZGV4ID09PSAwKSB7XG4gICAgICB0aGlzLmNvZGVGb3JtLnJlc2V0KCk7XG4gICAgfVxuICAgIGlmIChpbmRleCA9PT0gMSkge1xuICAgICAgdGhpcy5wYXNzcm9kRm9ybS5yZXNldCgpO1xuICAgIH1cbiAgICBpZiAoaW5kZXggPT09IDIpIHtcbiAgICAgIHRoaXMuY29kZUZvcm0ucmVzZXQoKTtcbiAgICAgIHRoaXMucGFzc3JvZEZvcm0ucmVzZXQoKTtcbiAgICAgIHRoaXMud2VjaGF0KCk7XG4gICAgfVxuICB9XG4gIHdlY2hhdCgpIHtcbiAgICBjb25zdCByZWRpcmVjdFVyaSA9ICdodHRwczovL2FjY291bnRzLnBpbnhpYW9rZS5jbi9sb2dpbj9jb250aW51ZSc7XG4gICAgLy8gY29uc3QgcmVkaXJlY3RVcmkgPSBgJHt3aW5kb3cubG9jYXRpb24ub3JpZ2lufS9sb2dpbj9jb250aW51ZWA7XG4gICAgY29uc3QgaHJlZiA9ICdodHRwczovL2Nsb3VkY2FjaGUudGVuY2VudC1jbG91ZC5jb20vb3Blbl9wcm9qL3Byb2pfcWNsb3VkX3YyL2dhdGV3YXkvbG9naW4tcmVnaXN0L2Nzcy9saW5rLXd4LWxvZ2luLmNzcyc7XG4gICAgY29uc3QgZW5jb2RlZFVSSSA9IGVuY29kZVVSSShyZWRpcmVjdFVyaSk7XG4gICAgY29uc3Qgc3JjID0gYCR7dGhpcy5iYXNlVXJsfT9hcHBpZD0ke3RoaXMuYXBwaWR9JnJlc3BvbnNlX3R5cGU9Y29kZSZzZWxmX3JlZGlyZWN0PXRydWUmc2NvcGU9c25zYXBpX2xvZ2luJmhyZWY9JHtocmVmfSZyZWRpcmVjdF91cmk9JHtlbmNvZGVkVVJJfSZzdGF0ZT0ke3RoaXMuc3RhdGV9I3dlY2hhdF9yZWRpcmVjdGA7XG4gICAgdGhpcy51cmxTYWZlID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKHNyYyk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJoLWZ1bGwgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgc206anVzdGlmeS1jZW50ZXIgc206YmctZ3JheS0xMDBcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwidy1mdWxsIHAtOCBsZzpwLTExIHJvdW5kZWQteGwgYmctd2hpdGUgZmxleCBmbGV4LWNvbCBsZzpmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4geGw6dy1bODAwcHhdIGxnOnctWzYwMHB4XSBzbTp3LVs2MDBweF1cIlxuICA+XG4gICAgPCEtLSBoZWFkZXIgLS0+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgcHktNlwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtM3hsIGZvbnQtbWVkaXVtIG1iLTNcIj7nmbvlvZU8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW1kXCI+5L2/55So5ou85bCP6K++6LSm5Y+355m75b2VPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDwhLS0gY29udGVudCAtLT5cbiAgICAgIDxtYXQtdGFiLWdyb3VwIG1hdC1zdHJldGNoLXRhYnM9XCJmYWxzZVwiIG1hdC1hbGlnbi10YWJzPVwic3RhcnRcIiAoc2VsZWN0ZWRUYWJDaGFuZ2UpPVwib25TZWxlY3RlZFRhYkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwi6LSm5Y+35a+G56CBXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInB0LTZcIj5cbiAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwicGFzc3JvZEZvcm1cIiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+IOeUqOaIt+WQjS/miYvmnLrlj7cgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IGF1dG9jb21wbGV0ZSBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJhY2NvdW50XCIgcmVxdWlyZWQgLz5cbiAgICAgICAgICAgICAgICBAaWYgKHBhc3Nyb2RGb3JtLmNvbnRyb2xzWydhY2NvdW50J10udG91Y2hlZCAmJiBwYXNzcm9kRm9ybS5jb250cm9sc1snYWNjb3VudCddLmludmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAocGFzc3JvZEZvcm0uY29udHJvbHNbJ2FjY291bnQnXS5lcnJvcnM/LlsncmVxdWlyZWQnXSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPueUqOaIt+WQjeW/heWhqzwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPiDlr4bnoIEgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IGF1dG9jb21wbGV0ZSBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiIHR5cGU9XCJwYXNzd29yZFwiIC8+XG4gICAgICAgICAgICAgICAgQGlmIChwYXNzcm9kRm9ybS5jb250cm9sc1sncGFzc3dvcmQnXS50b3VjaGVkICYmIHBhc3Nyb2RGb3JtLmNvbnRyb2xzWydwYXNzd29yZCddLmludmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAocGFzc3JvZEZvcm0uY29udHJvbHNbJ3Bhc3N3b3JkJ10uZXJyb3JzPy5bJ3JlcXVpcmVkJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj7or7fovpPlhaXlr4bnoIE8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIuefreS/oemqjOivgeeggVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwdC02XCI+XG4gICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNvZGVGb3JtXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+IOaJi+acuuWPtyA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXQgYXV0b2NvbXBsZXRlIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInBob25lXCIgcmVxdWlyZWQgLz5cbiAgICAgICAgICAgICAgICBAaWYgKGNvZGVGb3JtLmNvbnRyb2xzWydwaG9uZSddLnRvdWNoZWQgJiYgY29kZUZvcm0uY29udHJvbHNbJ3Bob25lJ10uaW52YWxpZCkge1xuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChjb2RlRm9ybS5jb250cm9sc1sncGhvbmUnXS5lcnJvcnM/LlsncmVxdWlyZWQnXSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiDmiYvmnLrlj7flv4Xloas8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChjb2RlRm9ybS5jb250cm9sc1sncGhvbmUnXS5lcnJvcnM/LlsncGF0dGVybiddKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IOaJi+acuuWPt+agvOW8j+mUmeivryA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLXN0YXJ0IGdhcC0zXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPiDpqozor4HnoIEgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiY29kZVwiIHR5cGU9XCJ0ZXh0XCIgcmVxdWlyZWQgLz5cbiAgICAgICAgICAgICAgICAgIEBpZiAoY29kZUZvcm0uY29udHJvbHNbJ2NvZGUnXS50b3VjaGVkICYmIGNvZGVGb3JtLmNvbnRyb2xzWydjb2RlJ10uaW52YWxpZCkge1xuICAgICAgICAgICAgICAgICAgICA8bWF0LWVycm9yPlxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoY29kZUZvcm0uY29udHJvbHNbJ2NvZGUnXS5lcnJvcnM/LlsncmVxdWlyZWQnXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IOivt+i+k+WFpemqjOivgeeggSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZW5kU01TQ29kZSgpXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb3VudERvd25cIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY291bnREb3duID8gJ2JnLW9yYW5nZS0zMDAnIDogJ2JnLW9yYW5nZS02MDAgc2hhZG93IHNoYWRvdy1ncmF5LTMwMCBjdXJzb3ItcG9pbnRlcidcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXgtdy1bMTI4cHhdIHAtMyBtdC0yIHRleHQtd2hpdGUgcm91bmRlZCB0ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgc2hvd0J1dHRvblRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L21hdC10YWI+XG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwi5b6u5L+h5omr56CBXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTZcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LVsxOTBweF0gaC1bMTkwcHhdIG14LWF1dG9cIj5cbiAgICAgICAgICAgICAgQGlmICh0YWJJbmRleCA9PT0gMikge1xuICAgICAgICAgICAgICAgIDxpZnJhbWUgW3NyY109XCJ1cmxTYWZlXCIgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGlubGluZVwiIHNjcm9sbGluZz1cIm5vXCIgZnJhbWVCb3JkZXI9XCJub1wiICNpZnJhbWU+PC9pZnJhbWU+XG4gICAgICAgICAgICAgICAgPCEtLSA8aW1nIFtzcmNdPVwidXJsU2FmZVwiIGNsYXNzPVwidy1mdWxsIGgtZnVsbCBpbmxpbmVcIiAvPiAtLT5cbiAgICAgICAgICAgICAgICA8ZGl2PjwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuXG4gICAgICA8IS0tIGFjdGlvbnMgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIHB5LTIgcGwtMlwiPlxuICAgICAgICA8YSBjbGFzcz1cInVuZGVybGluZSB1bmRlcmxpbmUtb2Zmc2V0LTRcIiBocmVmPVwic2lnbnVwXCI+5Yib5bu66LSm5Y+3PC9hPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKGNsaWNrKT1cImxvZ2luKClcIlxuICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgYmctb3JhbmdlLTYwMCBob3ZlcjpiZy1vcmFuZ2UtNzAwIHctWzEyOHB4XSBwLTMgc2hhZG93LWdyYXktMzAwIHNoYWRvdyBob3ZlcjpzaGFkb3ctbGcgdGV4dC13aGl0ZSByb3VuZGVkIHRleHQtY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuPueZu+W9lTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gMy1wYXJ0IC0tPlxuICAgIDwhLS0gPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIG10LTZcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidy0xNiBoLVsxcHhdIGJnLWdyYXktMzAwXCI+PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJweC0zXCI+56ys5LiJ5pa555m75b2VPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ3LTE2IGgtWzFweF0gYmctZ3JheS0zMDBcIj48L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm10LTMgZmxleCBpdGVtcy1jZW50ZXIgaG92ZXI6c2hhZG93IGhvdmVyOnNoYWRvdy1ncmF5LTQwMCBjdXJzb3ItcG9pbnRlciBwLTNcIj5cbiAgICAgIDxpbWcgY2xhc3M9XCJ3LTQgaC00XCIgc3JjPVwiYXNzZXRzL2ltYWdlcy9pY29uNjRfYXBwd3hfbG9nby5wbmdcIiAvPlxuICAgICAgPHNwYW4gY2xhc3M9XCJtbC0xXCI+5b6u5L+hPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj4gLS0+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|