@aws-amplify/ui-angular 2.0.1-next.4 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +28 -0
- package/aws-amplify-ui-angular.d.ts +26 -23
- package/aws-amplify-ui-angular.metadata.json +1 -1
- package/bundles/aws-amplify-ui-angular-legacy.umd.js +2229 -0
- package/bundles/aws-amplify-ui-angular-legacy.umd.js.map +1 -0
- package/bundles/aws-amplify-ui-angular-legacy.umd.min.js +16 -0
- package/bundles/aws-amplify-ui-angular-legacy.umd.min.js.map +1 -0
- package/bundles/aws-amplify-ui-angular.umd.js +890 -2845
- package/bundles/aws-amplify-ui-angular.umd.js.map +1 -1
- package/bundles/aws-amplify-ui-angular.umd.min.js +1 -1
- package/bundles/aws-amplify-ui-angular.umd.min.js.map +1 -1
- package/esm2015/aws-amplify-ui-angular.js +27 -24
- package/esm2015/index.js +22 -8
- package/esm2015/legacy/aws-amplify-ui-angular-legacy.js +6 -0
- package/esm2015/legacy/index.js +3 -0
- package/esm2015/legacy/legacy-ui-angular.module.js +53 -0
- package/esm2015/legacy/proxies.js +1839 -0
- package/esm2015/lib/common/types/auth-types.js +1 -1
- package/esm2015/lib/components/authenticator/authenticator.module.js +79 -0
- package/esm2015/lib/components/authenticator/components/authenticator/authenticator.component.js +87 -0
- package/esm2015/lib/components/authenticator/components/confirm-reset-password/amplify-confirm-reset-password.component.js +40 -0
- package/esm2015/lib/components/authenticator/components/confirm-sign-in/confirm-sign-in.component.js +57 -0
- package/esm2015/lib/components/authenticator/components/confirm-sign-up/confirm-sign-up.component.js +39 -0
- package/esm2015/lib/components/authenticator/components/confirm-verify-user/amplify-confirm-verify-user.component.js +39 -0
- package/esm2015/lib/components/authenticator/components/federated-sign-in/federated-sign-in.component.js +47 -0
- package/esm2015/lib/components/authenticator/components/federated-sign-in-button/federated-sign-in-button.component.js +27 -0
- package/esm2015/lib/components/authenticator/components/force-new-password/force-new-password.component.js +39 -0
- package/esm2015/lib/components/authenticator/components/form-field/form-field.component.js +93 -0
- package/esm2015/lib/components/authenticator/components/index.js +17 -0
- package/esm2015/lib/components/authenticator/components/reset-password/reset-password.component.js +45 -0
- package/esm2015/lib/components/authenticator/components/setup-totp/setup-totp.component.js +65 -0
- package/esm2015/lib/components/authenticator/components/sign-in/sign-in.component.js +38 -0
- package/esm2015/lib/components/authenticator/components/sign-up/sign-up-form-fields/sign-up-form-fields.component.js +34 -0
- package/esm2015/lib/components/authenticator/components/sign-up/sign-up.component.js +37 -0
- package/esm2015/lib/components/authenticator/components/user-name-alias/user-name-alias.component.js +35 -0
- package/esm2015/lib/components/authenticator/components/verify-user/verify-user.component.js +54 -0
- package/esm2015/lib/primitives/button/button.component.js +38 -0
- package/esm2015/lib/primitives/checkbox/checkbox.component.js +31 -0
- package/esm2015/lib/primitives/error/error.component.js +16 -0
- package/esm2015/lib/primitives/index.js +10 -3
- package/esm2015/lib/primitives/password-field/password-field.component.js +43 -0
- package/esm2015/lib/primitives/phone-number-field/phone-number-field.component.js +40 -0
- package/esm2015/lib/primitives/select/select.component.js +17 -0
- package/esm2015/lib/primitives/tabs/tabs.component.js +3 -2
- package/esm2015/lib/primitives/text-field/text-field.component.js +35 -0
- package/esm2015/lib/services/authenticator.service.js +133 -0
- package/esm2015/lib/services/custom-components.service.js +23 -0
- package/esm2015/lib/utilities/amplify-slot/amplify-slot.component.js +32 -0
- package/esm2015/lib/utilities/amplify-slot/amplify-slot.directive.js +21 -0
- package/fesm2015/aws-amplify-ui-angular-legacy.js +1846 -0
- package/fesm2015/aws-amplify-ui-angular-legacy.js.map +1 -0
- package/fesm2015/aws-amplify-ui-angular.js +668 -2604
- package/fesm2015/aws-amplify-ui-angular.js.map +1 -1
- package/index.d.ts +21 -7
- package/legacy/aws-amplify-ui-angular-legacy.d.ts +5 -0
- package/legacy/aws-amplify-ui-angular-legacy.metadata.json +1 -0
- package/legacy/index.d.ts +2 -0
- package/legacy/legacy-ui-angular.module.d.ts +2 -0
- package/legacy/package.json +11 -0
- package/{lib → legacy}/proxies.d.ts +0 -0
- package/lib/common/types/auth-types.d.ts +2 -5
- package/lib/components/authenticator/authenticator.module.d.ts +2 -0
- package/lib/components/authenticator/components/authenticator/authenticator.component.d.ts +67 -0
- package/lib/components/authenticator/components/confirm-reset-password/amplify-confirm-reset-password.component.d.ts +50 -0
- package/lib/components/authenticator/components/confirm-sign-in/confirm-sign-in.component.d.ts +52 -0
- package/lib/components/authenticator/components/confirm-sign-up/confirm-sign-up.component.d.ts +49 -0
- package/lib/components/authenticator/components/confirm-verify-user/amplify-confirm-verify-user.component.d.ts +49 -0
- package/lib/components/{amplify-federated-sign-in/amplify-federated-sign-in.component.d.ts → authenticator/components/federated-sign-in/federated-sign-in.component.d.ts} +9 -6
- package/lib/components/authenticator/components/federated-sign-in-button/federated-sign-in-button.component.d.ts +9 -0
- package/lib/components/authenticator/components/force-new-password/force-new-password.component.d.ts +49 -0
- package/lib/{primitives/amplify-form-field/amplify-form-field.component.d.ts → components/authenticator/components/form-field/form-field.component.d.ts} +7 -5
- package/lib/components/authenticator/components/index.d.ts +16 -0
- package/lib/components/authenticator/components/reset-password/reset-password.component.d.ts +52 -0
- package/lib/components/authenticator/components/setup-totp/setup-totp.component.d.ts +53 -0
- package/lib/components/authenticator/components/sign-in/sign-in.component.d.ts +48 -0
- package/lib/components/authenticator/components/sign-up/sign-up-form-fields/sign-up-form-fields.component.d.ts +12 -0
- package/lib/components/authenticator/components/sign-up/sign-up.component.d.ts +47 -0
- package/lib/{primitives/amplify-user-name-alias/amplify-user-name-alias.component.d.ts → components/authenticator/components/user-name-alias/user-name-alias.component.d.ts} +4 -4
- package/lib/components/authenticator/components/verify-user/verify-user.component.d.ts +54 -0
- package/lib/primitives/{amplify-button/amplify-button.component.d.ts → button/button.component.d.ts} +1 -1
- package/lib/primitives/checkbox/checkbox.component.d.ts +12 -0
- package/lib/primitives/error/error.component.d.ts +4 -0
- package/lib/primitives/index.d.ts +9 -2
- package/lib/primitives/{amplify-password-field/amplify-password-field.component.d.ts → password-field/password-field.component.d.ts} +3 -2
- package/lib/primitives/phone-number-field/phone-number-field.component.d.ts +16 -0
- package/lib/primitives/{amplify-select/amplify-select.component.d.ts → select/select.component.d.ts} +2 -2
- package/lib/primitives/{amplify-text-field/amplify-text-field.component.d.ts → text-field/text-field.component.d.ts} +4 -5
- package/lib/services/authenticator.service.d.ts +94 -0
- package/lib/services/custom-components.service.d.ts +9 -0
- package/lib/utilities/amplify-slot/amplify-slot.component.d.ts +12 -0
- package/lib/{directives → utilities/amplify-slot}/amplify-slot.directive.d.ts +0 -0
- package/package.json +3 -4
- package/theme.css +0 -1
- package/esm2015/lib/components/amplify-authenticator/amplify-authenticator.component.js +0 -89
- package/esm2015/lib/components/amplify-confirm-sign-in/amplify-confirm-sign-in.component.js +0 -91
- package/esm2015/lib/components/amplify-confirm-sign-up/amplify-confirm-sign-up.component.js +0 -83
- package/esm2015/lib/components/amplify-federated-sign-in/amplify-federated-sign-in.component.js +0 -37
- package/esm2015/lib/components/amplify-federated-sign-in-button/amplify-federated-sign-in-button.component.js +0 -27
- package/esm2015/lib/components/amplify-force-new-password/amplify-force-new-password.component.js +0 -83
- package/esm2015/lib/components/amplify-reset-password/amplify-reset-password.component.js +0 -68
- package/esm2015/lib/components/amplify-setup-totp/amplify-setup-totp.component.js +0 -100
- package/esm2015/lib/components/amplify-sign-in/amplify-sign-in.component.js +0 -78
- package/esm2015/lib/components/amplify-sign-up/amplify-sign-up.component.js +0 -98
- package/esm2015/lib/components/amplify-verify-user/amplify-verify-user.component.js +0 -78
- package/esm2015/lib/components/confirm-reset-password/amplify-confirm-reset-password.component.js +0 -76
- package/esm2015/lib/components/confirm-verify-user/amplify-confirm-verify-user.component.js +0 -66
- package/esm2015/lib/components/index.js +0 -14
- package/esm2015/lib/directives/amplify-slot.directive.js +0 -21
- package/esm2015/lib/primitives/amplify-button/amplify-button.component.js +0 -38
- package/esm2015/lib/primitives/amplify-error/amplify-error.component.js +0 -10
- package/esm2015/lib/primitives/amplify-form-field/amplify-form-field.component.js +0 -89
- package/esm2015/lib/primitives/amplify-password-field/amplify-password-field.component.js +0 -39
- package/esm2015/lib/primitives/amplify-select/amplify-select.component.js +0 -17
- package/esm2015/lib/primitives/amplify-text-field/amplify-text-field.component.js +0 -39
- package/esm2015/lib/primitives/amplify-user-name-alias/amplify-user-name-alias.component.js +0 -35
- package/esm2015/lib/proxies.js +0 -1839
- package/esm2015/lib/services/authenticator-context.service.js +0 -28
- package/esm2015/lib/services/state-machine.service.js +0 -52
- package/esm2015/lib/ui-angular.module.js +0 -101
- package/lib/components/amplify-authenticator/amplify-authenticator.component.d.ts +0 -36
- package/lib/components/amplify-confirm-sign-in/amplify-confirm-sign-in.component.d.ts +0 -31
- package/lib/components/amplify-confirm-sign-up/amplify-confirm-sign-up.component.d.ts +0 -34
- package/lib/components/amplify-federated-sign-in-button/amplify-federated-sign-in-button.component.d.ts +0 -9
- package/lib/components/amplify-force-new-password/amplify-force-new-password.component.d.ts +0 -31
- package/lib/components/amplify-reset-password/amplify-reset-password.component.d.ts +0 -30
- package/lib/components/amplify-setup-totp/amplify-setup-totp.component.d.ts +0 -31
- package/lib/components/amplify-sign-in/amplify-sign-in.component.d.ts +0 -32
- package/lib/components/amplify-sign-up/amplify-sign-up.component.d.ts +0 -32
- package/lib/components/amplify-verify-user/amplify-verify-user.component.d.ts +0 -32
- package/lib/components/confirm-reset-password/amplify-confirm-reset-password.component.d.ts +0 -34
- package/lib/components/confirm-verify-user/amplify-confirm-verify-user.component.d.ts +0 -28
- package/lib/components/index.d.ts +0 -13
- package/lib/primitives/amplify-error/amplify-error.component.d.ts +0 -2
- package/lib/services/authenticator-context.service.d.ts +0 -10
- package/lib/services/state-machine.service.d.ts +0 -29
- package/lib/ui-angular.module.d.ts +0 -2
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { AuthenticatorService } from '../../../../services/authenticator.service';
|
|
3
|
+
export declare class SetupTotpComponent implements OnInit {
|
|
4
|
+
authenticator: AuthenticatorService;
|
|
5
|
+
dataAttr: string;
|
|
6
|
+
headerText: string;
|
|
7
|
+
qrCodeSource: string;
|
|
8
|
+
backToSignInText: string;
|
|
9
|
+
confirmText: string;
|
|
10
|
+
constructor(authenticator: AuthenticatorService);
|
|
11
|
+
ngOnInit(): void;
|
|
12
|
+
get context(): {
|
|
13
|
+
$implicit: {
|
|
14
|
+
resendCode: (data?: Record<string | number | symbol, any>) => void;
|
|
15
|
+
signOut: (data?: Record<string | number | symbol, any>) => void;
|
|
16
|
+
submitForm: (data?: Record<string | number | symbol, any>) => void;
|
|
17
|
+
updateForm: (data?: Record<string | number | symbol, any>) => void;
|
|
18
|
+
toFederatedSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
19
|
+
toResetPassword: (data?: Record<string | number | symbol, any>) => void;
|
|
20
|
+
toSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
21
|
+
toSignUp: (data?: Record<string | number | symbol, any>) => void;
|
|
22
|
+
skipVerification: (data?: Record<string | number | symbol, any>) => void;
|
|
23
|
+
error: string;
|
|
24
|
+
hasValidationErrors: boolean;
|
|
25
|
+
isPending: boolean;
|
|
26
|
+
route: string;
|
|
27
|
+
user: import("@aws-amplify/ui").CognitoUserAmplify;
|
|
28
|
+
validationErrors: {
|
|
29
|
+
[x: string]: string;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
resendCode: (data?: Record<string | number | symbol, any>) => void;
|
|
33
|
+
signOut: (data?: Record<string | number | symbol, any>) => void;
|
|
34
|
+
submitForm: (data?: Record<string | number | symbol, any>) => void;
|
|
35
|
+
updateForm: (data?: Record<string | number | symbol, any>) => void;
|
|
36
|
+
toFederatedSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
37
|
+
toResetPassword: (data?: Record<string | number | symbol, any>) => void;
|
|
38
|
+
toSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
39
|
+
toSignUp: (data?: Record<string | number | symbol, any>) => void;
|
|
40
|
+
skipVerification: (data?: Record<string | number | symbol, any>) => void;
|
|
41
|
+
error: string;
|
|
42
|
+
hasValidationErrors: boolean;
|
|
43
|
+
isPending: boolean;
|
|
44
|
+
route: string;
|
|
45
|
+
user: import("@aws-amplify/ui").CognitoUserAmplify;
|
|
46
|
+
validationErrors: {
|
|
47
|
+
[x: string]: string;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
generateQRCode(): Promise<void>;
|
|
51
|
+
onInput(event: Event): void;
|
|
52
|
+
onSubmit(event: Event): void;
|
|
53
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { AuthenticatorService } from '../../../../services/authenticator.service';
|
|
2
|
+
export declare class SignInComponent {
|
|
3
|
+
authenticator: AuthenticatorService;
|
|
4
|
+
dataAttr: string;
|
|
5
|
+
forgotPasswordText: string;
|
|
6
|
+
signInButtonText: string;
|
|
7
|
+
constructor(authenticator: AuthenticatorService);
|
|
8
|
+
get context(): {
|
|
9
|
+
$implicit: {
|
|
10
|
+
resendCode: (data?: Record<string | number | symbol, any>) => void;
|
|
11
|
+
signOut: (data?: Record<string | number | symbol, any>) => void;
|
|
12
|
+
submitForm: (data?: Record<string | number | symbol, any>) => void;
|
|
13
|
+
updateForm: (data?: Record<string | number | symbol, any>) => void;
|
|
14
|
+
toFederatedSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
15
|
+
toResetPassword: (data?: Record<string | number | symbol, any>) => void;
|
|
16
|
+
toSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
17
|
+
toSignUp: (data?: Record<string | number | symbol, any>) => void;
|
|
18
|
+
skipVerification: (data?: Record<string | number | symbol, any>) => void;
|
|
19
|
+
error: string;
|
|
20
|
+
hasValidationErrors: boolean;
|
|
21
|
+
isPending: boolean;
|
|
22
|
+
route: string;
|
|
23
|
+
user: import("@aws-amplify/ui").CognitoUserAmplify;
|
|
24
|
+
validationErrors: {
|
|
25
|
+
[x: string]: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
resendCode: (data?: Record<string | number | symbol, any>) => void;
|
|
29
|
+
signOut: (data?: Record<string | number | symbol, any>) => void;
|
|
30
|
+
submitForm: (data?: Record<string | number | symbol, any>) => void;
|
|
31
|
+
updateForm: (data?: Record<string | number | symbol, any>) => void;
|
|
32
|
+
toFederatedSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
33
|
+
toResetPassword: (data?: Record<string | number | symbol, any>) => void;
|
|
34
|
+
toSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
35
|
+
toSignUp: (data?: Record<string | number | symbol, any>) => void;
|
|
36
|
+
skipVerification: (data?: Record<string | number | symbol, any>) => void;
|
|
37
|
+
error: string;
|
|
38
|
+
hasValidationErrors: boolean;
|
|
39
|
+
isPending: boolean;
|
|
40
|
+
route: string;
|
|
41
|
+
user: import("@aws-amplify/ui").CognitoUserAmplify;
|
|
42
|
+
validationErrors: {
|
|
43
|
+
[x: string]: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
onInput(event: Event): void;
|
|
47
|
+
onSubmit(event: Event): void;
|
|
48
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { AuthenticatorService } from '../../../../../services/authenticator.service';
|
|
3
|
+
import { LoginMechanism, SignUpAttribute } from '@aws-amplify/ui';
|
|
4
|
+
export declare class SignUpFormFieldsComponent implements OnInit {
|
|
5
|
+
private authenticator;
|
|
6
|
+
primaryAlias: string;
|
|
7
|
+
secondaryAliases: string[];
|
|
8
|
+
fieldNames: Array<LoginMechanism | SignUpAttribute>;
|
|
9
|
+
loginMechanism: LoginMechanism;
|
|
10
|
+
constructor(authenticator: AuthenticatorService);
|
|
11
|
+
ngOnInit(): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { AuthenticatorService } from '../../../../services/authenticator.service';
|
|
2
|
+
export declare class SignUpComponent {
|
|
3
|
+
authenticator: AuthenticatorService;
|
|
4
|
+
dataAttr: string;
|
|
5
|
+
createAccountText: string;
|
|
6
|
+
constructor(authenticator: AuthenticatorService);
|
|
7
|
+
get context(): {
|
|
8
|
+
$implicit: {
|
|
9
|
+
resendCode: (data?: Record<string | number | symbol, any>) => void;
|
|
10
|
+
signOut: (data?: Record<string | number | symbol, any>) => void;
|
|
11
|
+
submitForm: (data?: Record<string | number | symbol, any>) => void;
|
|
12
|
+
updateForm: (data?: Record<string | number | symbol, any>) => void;
|
|
13
|
+
toFederatedSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
14
|
+
toResetPassword: (data?: Record<string | number | symbol, any>) => void;
|
|
15
|
+
toSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
16
|
+
toSignUp: (data?: Record<string | number | symbol, any>) => void;
|
|
17
|
+
skipVerification: (data?: Record<string | number | symbol, any>) => void;
|
|
18
|
+
error: string;
|
|
19
|
+
hasValidationErrors: boolean;
|
|
20
|
+
isPending: boolean;
|
|
21
|
+
route: string;
|
|
22
|
+
user: import("@aws-amplify/ui").CognitoUserAmplify;
|
|
23
|
+
validationErrors: {
|
|
24
|
+
[x: string]: string;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
resendCode: (data?: Record<string | number | symbol, any>) => void;
|
|
28
|
+
signOut: (data?: Record<string | number | symbol, any>) => void;
|
|
29
|
+
submitForm: (data?: Record<string | number | symbol, any>) => void;
|
|
30
|
+
updateForm: (data?: Record<string | number | symbol, any>) => void;
|
|
31
|
+
toFederatedSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
32
|
+
toResetPassword: (data?: Record<string | number | symbol, any>) => void;
|
|
33
|
+
toSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
34
|
+
toSignUp: (data?: Record<string | number | symbol, any>) => void;
|
|
35
|
+
skipVerification: (data?: Record<string | number | symbol, any>) => void;
|
|
36
|
+
error: string;
|
|
37
|
+
hasValidationErrors: boolean;
|
|
38
|
+
isPending: boolean;
|
|
39
|
+
route: string;
|
|
40
|
+
user: import("@aws-amplify/ui").CognitoUserAmplify;
|
|
41
|
+
validationErrors: {
|
|
42
|
+
[x: string]: string;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
onInput(event: Event): void;
|
|
46
|
+
onSubmit(event: Event): void;
|
|
47
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
export declare class
|
|
4
|
-
private
|
|
2
|
+
import { AuthenticatorService } from '../../../../services/authenticator.service';
|
|
3
|
+
export declare class UserNameAliasComponent implements OnInit {
|
|
4
|
+
private authenticator;
|
|
5
5
|
name: string;
|
|
6
6
|
disabled: boolean;
|
|
7
7
|
initialValue: string;
|
|
@@ -10,6 +10,6 @@ export declare class AmplifyUserNameAliasComponent implements OnInit {
|
|
|
10
10
|
type: string;
|
|
11
11
|
error: string;
|
|
12
12
|
placeholder: string;
|
|
13
|
-
constructor(
|
|
13
|
+
constructor(authenticator: AuthenticatorService);
|
|
14
14
|
ngOnInit(): void;
|
|
15
15
|
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { AuthenticatorService } from '../../../../services/authenticator.service';
|
|
3
|
+
export declare class VerifyUserComponent implements OnInit {
|
|
4
|
+
authenticator: AuthenticatorService;
|
|
5
|
+
dataAttr: string;
|
|
6
|
+
headerText: string;
|
|
7
|
+
unverifiedAttributes: {};
|
|
8
|
+
labelId: string;
|
|
9
|
+
skipText: string;
|
|
10
|
+
verifyText: string;
|
|
11
|
+
constructor(authenticator: AuthenticatorService);
|
|
12
|
+
ngOnInit(): void;
|
|
13
|
+
get context(): {
|
|
14
|
+
$implicit: {
|
|
15
|
+
resendCode: (data?: Record<string | number | symbol, any>) => void;
|
|
16
|
+
signOut: (data?: Record<string | number | symbol, any>) => void;
|
|
17
|
+
submitForm: (data?: Record<string | number | symbol, any>) => void;
|
|
18
|
+
updateForm: (data?: Record<string | number | symbol, any>) => void;
|
|
19
|
+
toFederatedSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
20
|
+
toResetPassword: (data?: Record<string | number | symbol, any>) => void;
|
|
21
|
+
toSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
22
|
+
toSignUp: (data?: Record<string | number | symbol, any>) => void;
|
|
23
|
+
skipVerification: (data?: Record<string | number | symbol, any>) => void;
|
|
24
|
+
error: string;
|
|
25
|
+
hasValidationErrors: boolean;
|
|
26
|
+
isPending: boolean;
|
|
27
|
+
route: string;
|
|
28
|
+
user: import("@aws-amplify/ui").CognitoUserAmplify;
|
|
29
|
+
validationErrors: {
|
|
30
|
+
[x: string]: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
resendCode: (data?: Record<string | number | symbol, any>) => void;
|
|
34
|
+
signOut: (data?: Record<string | number | symbol, any>) => void;
|
|
35
|
+
submitForm: (data?: Record<string | number | symbol, any>) => void;
|
|
36
|
+
updateForm: (data?: Record<string | number | symbol, any>) => void;
|
|
37
|
+
toFederatedSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
38
|
+
toResetPassword: (data?: Record<string | number | symbol, any>) => void;
|
|
39
|
+
toSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
40
|
+
toSignUp: (data?: Record<string | number | symbol, any>) => void;
|
|
41
|
+
skipVerification: (data?: Record<string | number | symbol, any>) => void;
|
|
42
|
+
error: string;
|
|
43
|
+
hasValidationErrors: boolean;
|
|
44
|
+
isPending: boolean;
|
|
45
|
+
route: string;
|
|
46
|
+
user: import("@aws-amplify/ui").CognitoUserAmplify;
|
|
47
|
+
validationErrors: {
|
|
48
|
+
[x: string]: string;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
getLabelForAttr(authAttr: string): string;
|
|
52
|
+
onInput(event: Event): void;
|
|
53
|
+
onSubmit(event: Event): void;
|
|
54
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
export declare class CheckboxComponent implements OnInit {
|
|
3
|
+
defaultChecked: boolean;
|
|
4
|
+
errorMessage: string;
|
|
5
|
+
hasError: boolean;
|
|
6
|
+
label: string;
|
|
7
|
+
name: string;
|
|
8
|
+
value: string;
|
|
9
|
+
isChecked: boolean;
|
|
10
|
+
ngOnInit(): void;
|
|
11
|
+
handleClick(): void;
|
|
12
|
+
}
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
1
|
+
export { ErrorComponent } from './error/error.component';
|
|
2
|
+
export { ButtonComponent } from './button/button.component';
|
|
3
|
+
export { PasswordFieldComponent } from './password-field/password-field.component';
|
|
4
|
+
export { SelectComponent } from './select/select.component';
|
|
5
|
+
export { TextFieldComponent } from './text-field/text-field.component';
|
|
6
|
+
export { PhoneNumberFieldComponent } from './phone-number-field/phone-number-field.component';
|
|
7
|
+
export { TabItemComponent } from './tab-item/tab-item.component';
|
|
8
|
+
export { TabsComponent } from './tabs/tabs.component';
|
|
9
|
+
export { CheckboxComponent } from './checkbox/checkbox.component';
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
export declare class
|
|
1
|
+
export declare class PasswordFieldComponent {
|
|
2
2
|
autocomplete: string;
|
|
3
3
|
disabled: boolean;
|
|
4
|
-
|
|
4
|
+
fieldId: string;
|
|
5
5
|
initialValue: string;
|
|
6
6
|
label: string;
|
|
7
7
|
name: string;
|
|
8
8
|
placeholder: string;
|
|
9
9
|
required: boolean;
|
|
10
|
+
labelHidden: boolean;
|
|
10
11
|
type: 'text' | 'password';
|
|
11
12
|
showPassword: boolean;
|
|
12
13
|
showPasswordButtonlabel: string;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare class PhoneNumberFieldComponent {
|
|
2
|
+
autocomplete: string;
|
|
3
|
+
disabled: boolean;
|
|
4
|
+
defaultCountryCode: string;
|
|
5
|
+
selectFieldId: string;
|
|
6
|
+
textFieldId: string;
|
|
7
|
+
initialValue: string;
|
|
8
|
+
label: string;
|
|
9
|
+
name: string;
|
|
10
|
+
placeholder: string;
|
|
11
|
+
required: boolean;
|
|
12
|
+
type: string;
|
|
13
|
+
labelHidden: boolean;
|
|
14
|
+
display: string;
|
|
15
|
+
countryDialCodes: string[];
|
|
16
|
+
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
export declare class
|
|
1
|
+
export declare class TextFieldComponent {
|
|
2
2
|
autocomplete: string;
|
|
3
3
|
disabled: boolean;
|
|
4
|
-
|
|
4
|
+
fieldId: string;
|
|
5
5
|
initialValue: string;
|
|
6
6
|
label: string;
|
|
7
7
|
name: string;
|
|
8
8
|
placeholder: string;
|
|
9
9
|
required: boolean;
|
|
10
10
|
type: string;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
togglePasswordText(): void;
|
|
11
|
+
labelHidden: boolean;
|
|
12
|
+
display: string;
|
|
14
13
|
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { OnDestroy } from '@angular/core';
|
|
2
|
+
import { AuthContext, AuthenticatorMachineOptions, AuthEvent, AuthInterpreter, AuthMachineState } from '@aws-amplify/ui';
|
|
3
|
+
import { Event, Subscription } from 'xstate';
|
|
4
|
+
import { AuthSubscriptionCallback } from '../common';
|
|
5
|
+
/**
|
|
6
|
+
* AuthenticatorService provides access to the authenticator state and context.
|
|
7
|
+
*/
|
|
8
|
+
export declare class AuthenticatorService implements OnDestroy {
|
|
9
|
+
private _authState;
|
|
10
|
+
private _authService;
|
|
11
|
+
private _sendEventAliases;
|
|
12
|
+
private _subscription;
|
|
13
|
+
private _facade;
|
|
14
|
+
startMachine({ initialState, loginMechanisms, services, signUpAttributes, socialProviders, }: AuthenticatorMachineOptions): void;
|
|
15
|
+
ngOnDestroy(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Context facades
|
|
18
|
+
*/
|
|
19
|
+
get error(): string;
|
|
20
|
+
get hasValidationErrors(): boolean;
|
|
21
|
+
get isPending(): boolean;
|
|
22
|
+
get route(): string;
|
|
23
|
+
get user(): import("@aws-amplify/ui").CognitoUserAmplify;
|
|
24
|
+
get validationErrors(): {
|
|
25
|
+
[x: string]: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Service facades
|
|
29
|
+
*/
|
|
30
|
+
get updateForm(): (data?: Record<string | number | symbol, any>) => void;
|
|
31
|
+
get resendCode(): (data?: Record<string | number | symbol, any>) => void;
|
|
32
|
+
get signOut(): (data?: Record<string | number | symbol, any>) => void;
|
|
33
|
+
get submitForm(): (data?: Record<string | number | symbol, any>) => void;
|
|
34
|
+
/**
|
|
35
|
+
* Transition facades
|
|
36
|
+
*/
|
|
37
|
+
get toFederatedSignIn(): (data?: Record<string | number | symbol, any>) => void;
|
|
38
|
+
get toResetPassword(): (data?: Record<string | number | symbol, any>) => void;
|
|
39
|
+
get toSignIn(): (data?: Record<string | number | symbol, any>) => void;
|
|
40
|
+
get toSignUp(): (data?: Record<string | number | symbol, any>) => void;
|
|
41
|
+
get skipVerification(): (data?: Record<string | number | symbol, any>) => void;
|
|
42
|
+
/**
|
|
43
|
+
* Internal utility functions
|
|
44
|
+
*/
|
|
45
|
+
/** @deprecated For internal use only */
|
|
46
|
+
get authState(): AuthMachineState;
|
|
47
|
+
/** @deprecated For internal use only */
|
|
48
|
+
get authService(): AuthInterpreter;
|
|
49
|
+
/** @deprecated For internal use only */
|
|
50
|
+
get context(): AuthContext;
|
|
51
|
+
/** @deprecated For internal use only */
|
|
52
|
+
get slotContext(): {
|
|
53
|
+
$implicit: {
|
|
54
|
+
resendCode: (data?: Record<string | number | symbol, any>) => void;
|
|
55
|
+
signOut: (data?: Record<string | number | symbol, any>) => void;
|
|
56
|
+
submitForm: (data?: Record<string | number | symbol, any>) => void;
|
|
57
|
+
updateForm: (data?: Record<string | number | symbol, any>) => void;
|
|
58
|
+
toFederatedSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
59
|
+
toResetPassword: (data?: Record<string | number | symbol, any>) => void;
|
|
60
|
+
toSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
61
|
+
toSignUp: (data?: Record<string | number | symbol, any>) => void;
|
|
62
|
+
skipVerification: (data?: Record<string | number | symbol, any>) => void;
|
|
63
|
+
error: string;
|
|
64
|
+
hasValidationErrors: boolean;
|
|
65
|
+
isPending: boolean;
|
|
66
|
+
route: string;
|
|
67
|
+
user: import("@aws-amplify/ui").CognitoUserAmplify;
|
|
68
|
+
validationErrors: {
|
|
69
|
+
[x: string]: string;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
resendCode: (data?: Record<string | number | symbol, any>) => void;
|
|
73
|
+
signOut: (data?: Record<string | number | symbol, any>) => void;
|
|
74
|
+
submitForm: (data?: Record<string | number | symbol, any>) => void;
|
|
75
|
+
updateForm: (data?: Record<string | number | symbol, any>) => void;
|
|
76
|
+
toFederatedSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
77
|
+
toResetPassword: (data?: Record<string | number | symbol, any>) => void;
|
|
78
|
+
toSignIn: (data?: Record<string | number | symbol, any>) => void;
|
|
79
|
+
toSignUp: (data?: Record<string | number | symbol, any>) => void;
|
|
80
|
+
skipVerification: (data?: Record<string | number | symbol, any>) => void;
|
|
81
|
+
error: string;
|
|
82
|
+
hasValidationErrors: boolean;
|
|
83
|
+
isPending: boolean;
|
|
84
|
+
route: string;
|
|
85
|
+
user: import("@aws-amplify/ui").CognitoUserAmplify;
|
|
86
|
+
validationErrors: {
|
|
87
|
+
[x: string]: string;
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
/** @deprecated For internal use only */
|
|
91
|
+
subscribe(callback: AuthSubscriptionCallback): Subscription;
|
|
92
|
+
/** @deprecated For internal use only */
|
|
93
|
+
send(event: Event<AuthEvent>): void;
|
|
94
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CustomComponents } from '../common';
|
|
2
|
+
/**
|
|
3
|
+
* Stores and provides custom components that users provide with `amplify-slot`.
|
|
4
|
+
*/
|
|
5
|
+
export declare class CustomComponentsService {
|
|
6
|
+
private _customComponents;
|
|
7
|
+
get customComponents(): CustomComponents;
|
|
8
|
+
set customComponents(customComponents: CustomComponents);
|
|
9
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AfterContentInit, TemplateRef } from '@angular/core';
|
|
2
|
+
import { CustomComponentsService } from '../../services/custom-components.service';
|
|
3
|
+
export declare class AmplifySlotComponent implements AfterContentInit {
|
|
4
|
+
private propService;
|
|
5
|
+
name: string;
|
|
6
|
+
context: Record<PropertyKey, any>;
|
|
7
|
+
display: string;
|
|
8
|
+
overridingComponent: TemplateRef<any>;
|
|
9
|
+
isOverriden: boolean;
|
|
10
|
+
constructor(propService: CustomComponentsService);
|
|
11
|
+
ngAfterContentInit(): void;
|
|
12
|
+
}
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-amplify/ui-angular",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
|
+
"license": "Apache-2.0",
|
|
4
5
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^11.2.4",
|
|
6
|
-
"@angular/core": "^11.2.4",
|
|
7
6
|
"aws-amplify": "3.x.x || 4.x.x"
|
|
8
7
|
},
|
|
9
8
|
"dependencies": {
|
|
10
9
|
"@aws-amplify/ui-components": "^1.7.0",
|
|
11
|
-
"@aws-amplify/ui": "3.0.
|
|
10
|
+
"@aws-amplify/ui": "3.0.2",
|
|
12
11
|
"@stencil/core": "^2.7.0",
|
|
13
12
|
"nanoid": "^3.1.25",
|
|
14
13
|
"qrcode": "^1.4.4",
|
package/theme.css
CHANGED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { Component, ContentChildren, Input, ViewEncapsulation, } from '@angular/core';
|
|
2
|
-
import { getActorState, translate, translations, } from '@aws-amplify/ui';
|
|
3
|
-
import { I18n } from 'aws-amplify';
|
|
4
|
-
import { AmplifySlotDirective } from '../../directives/amplify-slot.directive';
|
|
5
|
-
import { AuthPropService } from '../../services/authenticator-context.service';
|
|
6
|
-
import { StateMachineService } from '../../services/state-machine.service';
|
|
7
|
-
export class AmplifyAuthenticatorComponent {
|
|
8
|
-
constructor(stateMachine, contextService) {
|
|
9
|
-
this.stateMachine = stateMachine;
|
|
10
|
-
this.contextService = contextService;
|
|
11
|
-
/**
|
|
12
|
-
* TODO: Add back custom events
|
|
13
|
-
*/
|
|
14
|
-
this.initialState = 'signIn';
|
|
15
|
-
this.loginMechanisms = ['username'];
|
|
16
|
-
this.customComponentQuery = null;
|
|
17
|
-
this.customComponents = {};
|
|
18
|
-
// translated texts
|
|
19
|
-
this.signInTitle = translate('Sign In');
|
|
20
|
-
this.signUpTitle = translate('Create Account');
|
|
21
|
-
}
|
|
22
|
-
ngOnInit() {
|
|
23
|
-
I18n.putVocabularies(translations);
|
|
24
|
-
this.stateMachine.startMachine(this.loginMechanisms);
|
|
25
|
-
/**
|
|
26
|
-
* handling translations after content init, because authenticator and its
|
|
27
|
-
* translations might be initialized before the main app's `ngOnInit` is run.
|
|
28
|
-
**/
|
|
29
|
-
this.signInTitle = translate('Sign In');
|
|
30
|
-
this.signUpTitle = translate('Create Account');
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Lifecycle Methods
|
|
34
|
-
*/
|
|
35
|
-
ngAfterContentInit() {
|
|
36
|
-
this.contextService.customComponents = this.mapCustomComponents(this.customComponentQuery);
|
|
37
|
-
this.customComponents = this.contextService.customComponents;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Class Functions
|
|
41
|
-
*/
|
|
42
|
-
get context() {
|
|
43
|
-
const { signOut } = this.stateMachine.services;
|
|
44
|
-
const user = this.stateMachine.user;
|
|
45
|
-
return { signOut, user };
|
|
46
|
-
}
|
|
47
|
-
get actorState() {
|
|
48
|
-
return getActorState(this.stateMachine.authState);
|
|
49
|
-
}
|
|
50
|
-
get authenticatorState() {
|
|
51
|
-
return this.stateMachine.authState;
|
|
52
|
-
}
|
|
53
|
-
onTabChange() {
|
|
54
|
-
const currentState = this.stateMachine.authState.value;
|
|
55
|
-
if (currentState === 'signIn') {
|
|
56
|
-
this.stateMachine.send('SIGN_UP');
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
this.stateMachine.send('SIGN_IN');
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
mapCustomComponents(componentQuery) {
|
|
63
|
-
if (!componentQuery)
|
|
64
|
-
return {};
|
|
65
|
-
const customComponents = {};
|
|
66
|
-
componentQuery.forEach((component) => {
|
|
67
|
-
customComponents[component.name] = component.template;
|
|
68
|
-
});
|
|
69
|
-
return customComponents;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
AmplifyAuthenticatorComponent.decorators = [
|
|
73
|
-
{ type: Component, args: [{
|
|
74
|
-
selector: 'amplify-authenticator',
|
|
75
|
-
template: "<!-- \n Define default contents here.\n-->\n<ng-template #signIn>\n <amplify-sign-in></amplify-sign-in>\n</ng-template>\n<ng-template #signUp>\n <amplify-sign-up></amplify-sign-up>\n</ng-template>\n<ng-template #confirmSignUp>\n <amplify-confirm-sign-up></amplify-confirm-sign-up>\n</ng-template>\n<ng-template #confirmSignIn>\n <amplify-confirm-sign-in></amplify-confirm-sign-in>\n</ng-template>\n<ng-template #authenticated> <ng-content></ng-content> </ng-template>\n<ng-template #setupTOTP>\n <amplify-setup-totp></amplify-setup-totp>\n</ng-template>\n<ng-template #forceNewPassword>\n <amplify-force-new-password></amplify-force-new-password>\n</ng-template>\n<ng-template #resetPassword>\n <amplify-reset-password></amplify-reset-password>\n</ng-template>\n<ng-template #confirmResetPassword>\n <amplify-confirm-reset-password></amplify-confirm-reset-password>\n</ng-template>\n<ng-template #verifyUser>\n <amplify-verify-user></amplify-verify-user>\n</ng-template>\n<ng-template #confirmVerifyUser>\n <amplify-confirm-verify-user></amplify-confirm-verify-user>\n</ng-template>\n\n<!-- \n Next, we render respective auth subcomponent respective to the current authState.\n If customer is overriding that component, we render customer's template instead.\n-->\n\n<div data-amplify-wrapper data-amplify-authenticator>\n <amplify-tabs\n (tabChange)=\"onTabChange()\"\n *ngIf=\"actorState?.matches('signIn') || actorState?.matches('signUp')\"\n >\n <amplify-tab-item [title]=\"signInTitle\">\n <!-- signIn component -->\n <ng-container\n [ngTemplateOutlet]=\"customComponents.signIn || signIn\"\n [ngTemplateOutletContext]=\"context\"\n *ngIf=\"actorState?.matches('signIn')\"\n ></ng-container>\n </amplify-tab-item>\n <amplify-tab-item [title]=\"signUpTitle\">\n <!-- signUp component -->\n <ng-container\n [ngTemplateOutlet]=\"customComponents.signUp || signUp\"\n [ngTemplateOutletContext]=\"context\"\n *ngIf=\"actorState?.matches('signUp')\"\n ></ng-container>\n </amplify-tab-item>\n </amplify-tabs>\n\n <!-- confirmSignUp content -->\n <ng-container\n [ngTemplateOutlet]=\"customComponents.confirmSignUp || confirmSignUp\"\n [ngTemplateOutletContext]=\"context\"\n *ngIf=\"actorState?.matches('confirmSignUp')\"\n >\n </ng-container>\n\n <!-- confirmSignIn content -->\n <ng-container\n [ngTemplateOutlet]=\"customComponents.confirmSignIn || confirmSignIn\"\n [ngTemplateOutletContext]=\"context\"\n *ngIf=\"actorState?.matches('confirmSignIn')\"\n >\n </ng-container>\n\n <!-- setupTotp content -->\n <ng-container\n [ngTemplateOutlet]=\"customComponents.setupTOTP || setupTOTP\"\n [ngTemplateOutletContext]=\"context\"\n *ngIf=\"actorState?.matches('setupTOTP')\"\n >\n </ng-container>\n\n <!-- forceNewPassword content -->\n <ng-container\n [ngTemplateOutlet]=\"customComponents.forceNewPassword || forceNewPassword\"\n [ngTemplateOutletContext]=\"context\"\n *ngIf=\"actorState?.matches('forceNewPassword')\"\n >\n </ng-container>\n\n <!-- resetPassword content -->\n <ng-container\n [ngTemplateOutlet]=\"customComponents.resetPassword || resetPassword\"\n [ngTemplateOutletContext]=\"context\"\n *ngIf=\"actorState?.matches('resetPassword')\"\n >\n </ng-container>\n\n <!-- confirmResetPassword content -->\n <ng-container\n [ngTemplateOutlet]=\"\n customComponents.confirmResetPassword || confirmResetPassword\n \"\n [ngTemplateOutletContext]=\"context\"\n *ngIf=\"actorState?.matches('confirmResetPassword')\"\n >\n </ng-container>\n\n <!-- verifyUser content -->\n <ng-container\n [ngTemplateOutlet]=\"customComponents.verifyUser || verifyUser\"\n [ngTemplateOutletContext]=\"context\"\n *ngIf=\"actorState?.matches('verifyUser')\"\n >\n </ng-container>\n\n <!-- confirmVerifyUser content -->\n <ng-container\n [ngTemplateOutlet]=\"customComponents.confirmVerifyUser || confirmVerifyUser\"\n [ngTemplateOutletContext]=\"context\"\n *ngIf=\"actorState?.matches('confirmVerifyUser')\"\n >\n </ng-container>\n</div>\n\n<!-- signedIn content is rendered outside authenticator so it's not styled by authenticator -->\n<ng-container\n [ngTemplateOutlet]=\"customComponents.authenticated || authenticated\"\n [ngTemplateOutletContext]=\"context\"\n *ngIf=\"authenticatorState.matches('authenticated')\"\n>\n</ng-container>\n",
|
|
76
|
-
providers: [AuthPropService],
|
|
77
|
-
encapsulation: ViewEncapsulation.None
|
|
78
|
-
},] }
|
|
79
|
-
];
|
|
80
|
-
AmplifyAuthenticatorComponent.ctorParameters = () => [
|
|
81
|
-
{ type: StateMachineService },
|
|
82
|
-
{ type: AuthPropService }
|
|
83
|
-
];
|
|
84
|
-
AmplifyAuthenticatorComponent.propDecorators = {
|
|
85
|
-
initialState: [{ type: Input }],
|
|
86
|
-
loginMechanisms: [{ type: Input }],
|
|
87
|
-
customComponentQuery: [{ type: ContentChildren, args: [AmplifySlotDirective,] }]
|
|
88
|
-
};
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1hdXRoZW50aWNhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2FtcGxpZnktYXV0aGVudGljYXRvci9hbXBsaWZ5LWF1dGhlbnRpY2F0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLEtBQUssRUFJTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGFBQWEsRUFFYixTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUduQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFRM0UsTUFBTSxPQUFPLDZCQUE2QjtJQWdCeEMsWUFDVSxZQUFpQyxFQUNqQyxjQUErQjtRQUQvQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBakJ6Qzs7V0FFRztRQUVNLGlCQUFZLEdBQWMsUUFBUSxDQUFDO1FBQ25DLG9CQUFlLEdBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFHbEQseUJBQW9CLEdBQW9DLElBQUksQ0FBQztRQUM5RCxxQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBRS9DLG1CQUFtQjtRQUNaLGdCQUFXLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFLOUMsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVyRDs7O1lBR0k7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQjtRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FDN0QsSUFBSSxDQUFDLG9CQUFvQixDQUMxQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxPQUFPO1FBQ2hCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUMvQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztRQUNwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztJQUNyQyxDQUFDO0lBRU0sV0FBVztRQUNoQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDdkQsSUFBSSxZQUFZLEtBQUssUUFBUSxFQUFFO1lBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ25DO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FDekIsY0FBK0M7UUFFL0MsSUFBSSxDQUFDLGNBQWM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMvQixNQUFNLGdCQUFnQixHQUFxQyxFQUFFLENBQUM7UUFDOUQsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ25DLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDOzs7WUFyRkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx1QkFBdUI7Z0JBQ2pDLG0zSUFBcUQ7Z0JBQ3JELFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQztnQkFDNUIsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQVBRLG1CQUFtQjtZQURuQixlQUFlOzs7MkJBY3JCLEtBQUs7OEJBQ0wsS0FBSzttQ0FFTCxlQUFlLFNBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIGdldEFjdG9yU3RhdGUsXG4gIExvZ2luTWVjaGFuaXNtLFxuICB0cmFuc2xhdGUsXG4gIHRyYW5zbGF0aW9ucyxcbn0gZnJvbSAnQGF3cy1hbXBsaWZ5L3VpJztcbmltcG9ydCB7IEkxOG4gfSBmcm9tICdhd3MtYW1wbGlmeSc7XG5pbXBvcnQgeyBDdXN0b21Db21wb25lbnRzIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IEF1dGhTdGF0ZSB9IGZyb20gJy4uLy4uL2NvbW1vbi90eXBlcyc7XG5pbXBvcnQgeyBBbXBsaWZ5U2xvdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYW1wbGlmeS1zbG90LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBdXRoUHJvcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoZW50aWNhdG9yLWNvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0ZU1hY2hpbmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RhdGUtbWFjaGluZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYW1wbGlmeS1hdXRoZW50aWNhdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FtcGxpZnktYXV0aGVudGljYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW0F1dGhQcm9wU2VydmljZV0sIC8vIG1ha2Ugc3VyZSBjdXN0b20gY29tcG9uZW50cyBhcmUgc2NvcGVkIHRvIHRoaXMgYXV0aGVudGljYXRvciBvbmx5XG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFtcGxpZnlBdXRoZW50aWNhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgLyoqXG4gICAqIFRPRE86IEFkZCBiYWNrIGN1c3RvbSBldmVudHNcbiAgICovXG5cbiAgQElucHV0KCkgaW5pdGlhbFN0YXRlOiBBdXRoU3RhdGUgPSAnc2lnbkluJztcbiAgQElucHV0KCkgbG9naW5NZWNoYW5pc21zOiBMb2dpbk1lY2hhbmlzbVtdID0gWyd1c2VybmFtZSddO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQW1wbGlmeVNsb3REaXJlY3RpdmUpXG4gIHByaXZhdGUgY3VzdG9tQ29tcG9uZW50UXVlcnk6IFF1ZXJ5TGlzdDxBbXBsaWZ5U2xvdERpcmVjdGl2ZT4gPSBudWxsO1xuICBwdWJsaWMgY3VzdG9tQ29tcG9uZW50czogQ3VzdG9tQ29tcG9uZW50cyA9IHt9O1xuXG4gIC8vIHRyYW5zbGF0ZWQgdGV4dHNcbiAgcHVibGljIHNpZ25JblRpdGxlID0gdHJhbnNsYXRlKCdTaWduIEluJyk7XG4gIHB1YmxpYyBzaWduVXBUaXRsZSA9IHRyYW5zbGF0ZSgnQ3JlYXRlIEFjY291bnQnKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0YXRlTWFjaGluZTogU3RhdGVNYWNoaW5lU2VydmljZSxcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBBdXRoUHJvcFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIEkxOG4ucHV0Vm9jYWJ1bGFyaWVzKHRyYW5zbGF0aW9ucyk7XG4gICAgdGhpcy5zdGF0ZU1hY2hpbmUuc3RhcnRNYWNoaW5lKHRoaXMubG9naW5NZWNoYW5pc21zKTtcblxuICAgIC8qKlxuICAgICAqIGhhbmRsaW5nIHRyYW5zbGF0aW9ucyBhZnRlciBjb250ZW50IGluaXQsIGJlY2F1c2UgYXV0aGVudGljYXRvciBhbmQgaXRzXG4gICAgICogdHJhbnNsYXRpb25zIG1pZ2h0IGJlIGluaXRpYWxpemVkIGJlZm9yZSB0aGUgbWFpbiBhcHAncyBgbmdPbkluaXRgIGlzIHJ1bi5cbiAgICAgKiovXG4gICAgdGhpcy5zaWduSW5UaXRsZSA9IHRyYW5zbGF0ZSgnU2lnbiBJbicpO1xuICAgIHRoaXMuc2lnblVwVGl0bGUgPSB0cmFuc2xhdGUoJ0NyZWF0ZSBBY2NvdW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogTGlmZWN5Y2xlIE1ldGhvZHNcbiAgICovXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLmN1c3RvbUNvbXBvbmVudHMgPSB0aGlzLm1hcEN1c3RvbUNvbXBvbmVudHMoXG4gICAgICB0aGlzLmN1c3RvbUNvbXBvbmVudFF1ZXJ5XG4gICAgKTtcbiAgICB0aGlzLmN1c3RvbUNvbXBvbmVudHMgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmN1c3RvbUNvbXBvbmVudHM7XG4gIH1cblxuICAvKipcbiAgICogQ2xhc3MgRnVuY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbnRleHQoKSB7XG4gICAgY29uc3QgeyBzaWduT3V0IH0gPSB0aGlzLnN0YXRlTWFjaGluZS5zZXJ2aWNlcztcbiAgICBjb25zdCB1c2VyID0gdGhpcy5zdGF0ZU1hY2hpbmUudXNlcjtcbiAgICByZXR1cm4geyBzaWduT3V0LCB1c2VyIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdG9yU3RhdGUoKSB7XG4gICAgcmV0dXJuIGdldEFjdG9yU3RhdGUodGhpcy5zdGF0ZU1hY2hpbmUuYXV0aFN0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXV0aGVudGljYXRvclN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlTWFjaGluZS5hdXRoU3RhdGU7XG4gIH1cblxuICBwdWJsaWMgb25UYWJDaGFuZ2UoKSB7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5zdGF0ZU1hY2hpbmUuYXV0aFN0YXRlLnZhbHVlO1xuICAgIGlmIChjdXJyZW50U3RhdGUgPT09ICdzaWduSW4nKSB7XG4gICAgICB0aGlzLnN0YXRlTWFjaGluZS5zZW5kKCdTSUdOX1VQJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhdGVNYWNoaW5lLnNlbmQoJ1NJR05fSU4nKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1hcEN1c3RvbUNvbXBvbmVudHMoXG4gICAgY29tcG9uZW50UXVlcnk6IFF1ZXJ5TGlzdDxBbXBsaWZ5U2xvdERpcmVjdGl2ZT5cbiAgKTogUmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4ge1xuICAgIGlmICghY29tcG9uZW50UXVlcnkpIHJldHVybiB7fTtcbiAgICBjb25zdCBjdXN0b21Db21wb25lbnRzOiBSZWNvcmQ8c3RyaW5nLCBUZW1wbGF0ZVJlZjxhbnk+PiA9IHt9O1xuICAgIGNvbXBvbmVudFF1ZXJ5LmZvckVhY2goKGNvbXBvbmVudCkgPT4ge1xuICAgICAgY3VzdG9tQ29tcG9uZW50c1tjb21wb25lbnQubmFtZV0gPSBjb21wb25lbnQudGVtcGxhdGU7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY3VzdG9tQ29tcG9uZW50cztcbiAgfVxufVxuIl19
|