@aws-amplify/ui-angular 2.0.1-next.6 → 2.0.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.
Files changed (137) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +28 -0
  3. package/aws-amplify-ui-angular.d.ts +26 -24
  4. package/aws-amplify-ui-angular.metadata.json +1 -1
  5. package/bundles/aws-amplify-ui-angular-legacy.umd.js +2229 -0
  6. package/bundles/aws-amplify-ui-angular-legacy.umd.js.map +1 -0
  7. package/bundles/aws-amplify-ui-angular-legacy.umd.min.js +16 -0
  8. package/bundles/aws-amplify-ui-angular-legacy.umd.min.js.map +1 -0
  9. package/bundles/aws-amplify-ui-angular.umd.js +882 -2860
  10. package/bundles/aws-amplify-ui-angular.umd.js.map +1 -1
  11. package/bundles/aws-amplify-ui-angular.umd.min.js +1 -1
  12. package/bundles/aws-amplify-ui-angular.umd.min.js.map +1 -1
  13. package/esm2015/aws-amplify-ui-angular.js +27 -25
  14. package/esm2015/index.js +22 -8
  15. package/esm2015/legacy/aws-amplify-ui-angular-legacy.js +6 -0
  16. package/esm2015/legacy/index.js +3 -0
  17. package/esm2015/legacy/legacy-ui-angular.module.js +53 -0
  18. package/esm2015/legacy/proxies.js +1839 -0
  19. package/esm2015/lib/common/types/auth-types.js +1 -1
  20. package/esm2015/lib/components/authenticator/authenticator.module.js +79 -0
  21. package/esm2015/lib/components/authenticator/components/authenticator/authenticator.component.js +87 -0
  22. package/esm2015/lib/components/authenticator/components/confirm-reset-password/amplify-confirm-reset-password.component.js +40 -0
  23. package/esm2015/lib/components/authenticator/components/confirm-sign-in/confirm-sign-in.component.js +57 -0
  24. package/esm2015/lib/components/authenticator/components/confirm-sign-up/confirm-sign-up.component.js +39 -0
  25. package/esm2015/lib/components/authenticator/components/confirm-verify-user/amplify-confirm-verify-user.component.js +39 -0
  26. package/esm2015/lib/components/authenticator/components/federated-sign-in/federated-sign-in.component.js +47 -0
  27. package/esm2015/lib/components/authenticator/components/federated-sign-in-button/federated-sign-in-button.component.js +27 -0
  28. package/esm2015/lib/components/authenticator/components/force-new-password/force-new-password.component.js +39 -0
  29. package/esm2015/lib/components/authenticator/components/form-field/form-field.component.js +93 -0
  30. package/esm2015/lib/components/authenticator/components/index.js +17 -0
  31. package/esm2015/lib/components/authenticator/components/reset-password/reset-password.component.js +45 -0
  32. package/esm2015/lib/components/authenticator/components/setup-totp/setup-totp.component.js +65 -0
  33. package/esm2015/lib/components/authenticator/components/sign-in/sign-in.component.js +38 -0
  34. package/esm2015/lib/components/authenticator/components/sign-up/sign-up-form-fields/sign-up-form-fields.component.js +34 -0
  35. package/esm2015/lib/components/authenticator/components/sign-up/sign-up.component.js +37 -0
  36. package/esm2015/lib/components/authenticator/components/user-name-alias/user-name-alias.component.js +35 -0
  37. package/esm2015/lib/components/authenticator/components/verify-user/verify-user.component.js +54 -0
  38. package/esm2015/lib/primitives/button/button.component.js +38 -0
  39. package/esm2015/lib/primitives/checkbox/checkbox.component.js +31 -0
  40. package/esm2015/lib/primitives/error/error.component.js +16 -0
  41. package/esm2015/lib/primitives/index.js +10 -3
  42. package/esm2015/lib/primitives/password-field/password-field.component.js +43 -0
  43. package/esm2015/lib/primitives/phone-number-field/phone-number-field.component.js +11 -4
  44. package/esm2015/lib/primitives/{amplify-select/amplify-select.component.js → select/select.component.js} +4 -4
  45. package/esm2015/lib/primitives/tabs/tabs.component.js +2 -2
  46. package/esm2015/lib/primitives/text-field/text-field.component.js +35 -0
  47. package/esm2015/lib/services/authenticator.service.js +133 -0
  48. package/esm2015/lib/services/custom-components.service.js +23 -0
  49. package/esm2015/lib/utilities/amplify-slot/amplify-slot.component.js +32 -0
  50. package/esm2015/lib/utilities/amplify-slot/amplify-slot.directive.js +21 -0
  51. package/fesm2015/aws-amplify-ui-angular-legacy.js +1846 -0
  52. package/fesm2015/aws-amplify-ui-angular-legacy.js.map +1 -0
  53. package/fesm2015/aws-amplify-ui-angular.js +661 -2617
  54. package/fesm2015/aws-amplify-ui-angular.js.map +1 -1
  55. package/index.d.ts +21 -7
  56. package/legacy/aws-amplify-ui-angular-legacy.d.ts +5 -0
  57. package/legacy/aws-amplify-ui-angular-legacy.metadata.json +1 -0
  58. package/legacy/index.d.ts +2 -0
  59. package/legacy/legacy-ui-angular.module.d.ts +2 -0
  60. package/legacy/package.json +11 -0
  61. package/{lib → legacy}/proxies.d.ts +0 -0
  62. package/lib/common/types/auth-types.d.ts +2 -5
  63. package/lib/components/authenticator/authenticator.module.d.ts +2 -0
  64. package/lib/components/authenticator/components/authenticator/authenticator.component.d.ts +67 -0
  65. package/lib/components/authenticator/components/confirm-reset-password/amplify-confirm-reset-password.component.d.ts +50 -0
  66. package/lib/components/authenticator/components/confirm-sign-in/confirm-sign-in.component.d.ts +52 -0
  67. package/lib/components/authenticator/components/confirm-sign-up/confirm-sign-up.component.d.ts +49 -0
  68. package/lib/components/authenticator/components/confirm-verify-user/amplify-confirm-verify-user.component.d.ts +49 -0
  69. 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
  70. package/lib/components/authenticator/components/federated-sign-in-button/federated-sign-in-button.component.d.ts +9 -0
  71. package/lib/components/authenticator/components/force-new-password/force-new-password.component.d.ts +49 -0
  72. package/lib/{primitives/amplify-form-field/amplify-form-field.component.d.ts → components/authenticator/components/form-field/form-field.component.d.ts} +6 -4
  73. package/lib/components/authenticator/components/index.d.ts +16 -0
  74. package/lib/components/authenticator/components/reset-password/reset-password.component.d.ts +52 -0
  75. package/lib/components/authenticator/components/setup-totp/setup-totp.component.d.ts +53 -0
  76. package/lib/components/authenticator/components/sign-in/sign-in.component.d.ts +48 -0
  77. package/lib/components/authenticator/components/sign-up/sign-up-form-fields/sign-up-form-fields.component.d.ts +12 -0
  78. package/lib/components/authenticator/components/sign-up/sign-up.component.d.ts +47 -0
  79. 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
  80. package/lib/components/authenticator/components/verify-user/verify-user.component.d.ts +54 -0
  81. package/lib/primitives/{amplify-button/amplify-button.component.d.ts → button/button.component.d.ts} +1 -1
  82. package/lib/primitives/checkbox/checkbox.component.d.ts +12 -0
  83. package/lib/primitives/error/error.component.d.ts +4 -0
  84. package/lib/primitives/index.d.ts +9 -2
  85. package/lib/primitives/{amplify-password-field/amplify-password-field.component.d.ts → password-field/password-field.component.d.ts} +3 -2
  86. package/lib/primitives/phone-number-field/phone-number-field.component.d.ts +2 -0
  87. package/lib/primitives/{amplify-select/amplify-select.component.d.ts → select/select.component.d.ts} +1 -1
  88. package/lib/primitives/{amplify-text-field/amplify-text-field.component.d.ts → text-field/text-field.component.d.ts} +4 -2
  89. package/lib/services/authenticator.service.d.ts +94 -0
  90. package/lib/services/custom-components.service.d.ts +9 -0
  91. package/lib/utilities/amplify-slot/amplify-slot.component.d.ts +12 -0
  92. package/lib/{directives → utilities/amplify-slot}/amplify-slot.directive.d.ts +0 -0
  93. package/package.json +3 -4
  94. package/theme.css +0 -1
  95. package/esm2015/lib/components/amplify-authenticator/amplify-authenticator.component.js +0 -85
  96. package/esm2015/lib/components/amplify-confirm-sign-in/amplify-confirm-sign-in.component.js +0 -91
  97. package/esm2015/lib/components/amplify-confirm-sign-up/amplify-confirm-sign-up.component.js +0 -83
  98. package/esm2015/lib/components/amplify-federated-sign-in/amplify-federated-sign-in.component.js +0 -37
  99. package/esm2015/lib/components/amplify-federated-sign-in-button/amplify-federated-sign-in-button.component.js +0 -27
  100. package/esm2015/lib/components/amplify-force-new-password/amplify-force-new-password.component.js +0 -83
  101. package/esm2015/lib/components/amplify-reset-password/amplify-reset-password.component.js +0 -68
  102. package/esm2015/lib/components/amplify-setup-totp/amplify-setup-totp.component.js +0 -100
  103. package/esm2015/lib/components/amplify-sign-in/amplify-sign-in.component.js +0 -78
  104. package/esm2015/lib/components/amplify-sign-up/amplify-sign-up.component.js +0 -97
  105. package/esm2015/lib/components/amplify-verify-user/amplify-verify-user.component.js +0 -78
  106. package/esm2015/lib/components/confirm-reset-password/amplify-confirm-reset-password.component.js +0 -76
  107. package/esm2015/lib/components/confirm-verify-user/amplify-confirm-verify-user.component.js +0 -66
  108. package/esm2015/lib/components/index.js +0 -14
  109. package/esm2015/lib/directives/amplify-slot.directive.js +0 -21
  110. package/esm2015/lib/primitives/amplify-button/amplify-button.component.js +0 -38
  111. package/esm2015/lib/primitives/amplify-error/amplify-error.component.js +0 -10
  112. package/esm2015/lib/primitives/amplify-form-field/amplify-form-field.component.js +0 -91
  113. package/esm2015/lib/primitives/amplify-password-field/amplify-password-field.component.js +0 -39
  114. package/esm2015/lib/primitives/amplify-text-field/amplify-text-field.component.js +0 -29
  115. package/esm2015/lib/primitives/amplify-user-name-alias/amplify-user-name-alias.component.js +0 -35
  116. package/esm2015/lib/proxies.js +0 -1839
  117. package/esm2015/lib/services/authenticator-context.service.js +0 -28
  118. package/esm2015/lib/services/state-machine.service.js +0 -51
  119. package/esm2015/lib/ui-angular.module.js +0 -103
  120. package/lib/components/amplify-authenticator/amplify-authenticator.component.d.ts +0 -35
  121. package/lib/components/amplify-confirm-sign-in/amplify-confirm-sign-in.component.d.ts +0 -31
  122. package/lib/components/amplify-confirm-sign-up/amplify-confirm-sign-up.component.d.ts +0 -34
  123. package/lib/components/amplify-federated-sign-in-button/amplify-federated-sign-in-button.component.d.ts +0 -9
  124. package/lib/components/amplify-force-new-password/amplify-force-new-password.component.d.ts +0 -31
  125. package/lib/components/amplify-reset-password/amplify-reset-password.component.d.ts +0 -30
  126. package/lib/components/amplify-setup-totp/amplify-setup-totp.component.d.ts +0 -31
  127. package/lib/components/amplify-sign-in/amplify-sign-in.component.d.ts +0 -32
  128. package/lib/components/amplify-sign-up/amplify-sign-up.component.d.ts +0 -32
  129. package/lib/components/amplify-verify-user/amplify-verify-user.component.d.ts +0 -32
  130. package/lib/components/confirm-reset-password/amplify-confirm-reset-password.component.d.ts +0 -34
  131. package/lib/components/confirm-verify-user/amplify-confirm-verify-user.component.d.ts +0 -28
  132. package/lib/components/index.d.ts +0 -13
  133. package/lib/primitives/amplify-error/amplify-error.component.d.ts +0 -2
  134. package/lib/services/authenticator-context.service.d.ts +0 -10
  135. package/lib/services/state-machine.service.d.ts +0 -29
  136. package/lib/ui-angular.module.d.ts +0 -2
  137. package/styles/component.css +0 -169
@@ -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 { StateMachineService } from '../../services/state-machine.service';
3
- export declare class AmplifyUserNameAliasComponent implements OnInit {
4
- private stateMachine;
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(stateMachine: StateMachineService);
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
+ }
@@ -1,5 +1,5 @@
1
1
  import { OnInit } from '@angular/core';
2
- export declare class AmplifyButtonComponent implements OnInit {
2
+ export declare class ButtonComponent implements OnInit {
3
3
  type: 'submit' | 'button';
4
4
  fullWidth: boolean | string;
5
5
  size: 'small' | 'medium' | 'large';
@@ -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
+ }
@@ -0,0 +1,4 @@
1
+ export declare class ErrorComponent {
2
+ isVisible: boolean;
3
+ close(): void;
4
+ }
@@ -1,2 +1,9 @@
1
- export * from './amplify-form-field/amplify-form-field.component';
2
- export * from './amplify-error/amplify-error.component';
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 AmplifyPasswordFieldComponent {
1
+ export declare class PasswordFieldComponent {
2
2
  autocomplete: string;
3
3
  disabled: boolean;
4
- id: string;
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;
@@ -10,5 +10,7 @@ export declare class PhoneNumberFieldComponent {
10
10
  placeholder: string;
11
11
  required: boolean;
12
12
  type: string;
13
+ labelHidden: boolean;
14
+ display: string;
13
15
  countryDialCodes: string[];
14
16
  }
@@ -1,4 +1,4 @@
1
- export declare class AmplifySelectComponent {
1
+ export declare class SelectComponent {
2
2
  items: string[];
3
3
  name: string;
4
4
  label: string;
@@ -1,11 +1,13 @@
1
- export declare class AmplifyTextFieldComponent {
1
+ export declare class TextFieldComponent {
2
2
  autocomplete: string;
3
3
  disabled: boolean;
4
- id: string;
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
+ labelHidden: boolean;
12
+ display: string;
11
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
+ }
package/package.json CHANGED
@@ -1,14 +1,13 @@
1
1
  {
2
2
  "name": "@aws-amplify/ui-angular",
3
- "version": "2.0.1-next.6",
3
+ "version": "2.0.1",
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.1-next.6",
10
+ "@aws-amplify/ui": "3.0.1",
12
11
  "@stencil/core": "^2.7.0",
13
12
  "nanoid": "^3.1.25",
14
13
  "qrcode": "^1.4.4",
package/theme.css CHANGED
@@ -1,2 +1 @@
1
1
  @import '@aws-amplify/ui/dist/styles.css';
2
- @import './styles/component.css';
@@ -1,85 +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
- this.customComponentQuery = null;
12
- this.customComponents = {};
13
- // translated texts
14
- this.signInTitle = translate('Sign In');
15
- this.signUpTitle = translate('Create Account');
16
- }
17
- ngOnInit() {
18
- I18n.putVocabularies(translations);
19
- const { initialState, loginMechanisms } = this;
20
- this.stateMachine.startMachine({ initialState, loginMechanisms });
21
- /**
22
- * handling translations after content init, because authenticator and its
23
- * translations might be initialized before the main app's `ngOnInit` is run.
24
- **/
25
- this.signInTitle = translate('Sign In');
26
- this.signUpTitle = translate('Create Account');
27
- }
28
- /**
29
- * Lifecycle Methods
30
- */
31
- ngAfterContentInit() {
32
- this.contextService.customComponents = this.mapCustomComponents(this.customComponentQuery);
33
- this.customComponents = this.contextService.customComponents;
34
- }
35
- /**
36
- * Class Functions
37
- */
38
- get context() {
39
- const { signOut } = this.stateMachine.services;
40
- const user = this.stateMachine.user;
41
- return { signOut, user };
42
- }
43
- get actorState() {
44
- return getActorState(this.stateMachine.authState);
45
- }
46
- get authenticatorState() {
47
- return this.stateMachine.authState;
48
- }
49
- onTabChange() {
50
- const currentState = this.stateMachine.authState.value;
51
- if (currentState === 'signIn') {
52
- this.stateMachine.send('SIGN_UP');
53
- }
54
- else {
55
- this.stateMachine.send('SIGN_IN');
56
- }
57
- }
58
- mapCustomComponents(componentQuery) {
59
- if (!componentQuery)
60
- return {};
61
- const customComponents = {};
62
- componentQuery.forEach((component) => {
63
- customComponents[component.name] = component.template;
64
- });
65
- return customComponents;
66
- }
67
- }
68
- AmplifyAuthenticatorComponent.decorators = [
69
- { type: Component, args: [{
70
- selector: 'amplify-authenticator',
71
- 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-authenticator>\n <div data-amplify-modal></div>\n\n <div data-amplify-container>\n <amplify-tabs\n (tabChange)=\"onTabChange()\"\n *ngIf=\"actorState?.matches('signIn') || actorState?.matches('signUp')\"\n >\n <amplify-tab-item\n [title]=\"signInTitle\"\n [active]=\"actorState?.matches('signIn')\"\n >\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\n [title]=\"signUpTitle\"\n [active]=\"actorState?.matches('signUp')\"\n >\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]=\"\n customComponents.confirmVerifyUser || confirmVerifyUser\n \"\n [ngTemplateOutletContext]=\"context\"\n *ngIf=\"actorState?.matches('confirmVerifyUser')\"\n >\n </ng-container>\n </div>\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",
72
- providers: [AuthPropService],
73
- encapsulation: ViewEncapsulation.None
74
- },] }
75
- ];
76
- AmplifyAuthenticatorComponent.ctorParameters = () => [
77
- { type: StateMachineService },
78
- { type: AuthPropService }
79
- ];
80
- AmplifyAuthenticatorComponent.propDecorators = {
81
- initialState: [{ type: Input }],
82
- loginMechanisms: [{ type: Input }],
83
- customComponentQuery: [{ type: ContentChildren, args: [AmplifySlotDirective,] }]
84
- };
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1hdXRoZW50aWNhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2FtcGxpZnktYXV0aGVudGljYXRvci9hbXBsaWZ5LWF1dGhlbnRpY2F0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLEtBQUssRUFJTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLGFBQWEsRUFDYixTQUFTLEVBQ1QsWUFBWSxHQUNiLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFRM0UsTUFBTSxPQUFPLDZCQUE2QjtJQWdCeEMsWUFDVSxZQUFpQyxFQUNqQyxjQUErQjtRQUQvQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQWlCO1FBVGpDLHlCQUFvQixHQUFvQyxJQUFJLENBQUM7UUFDOUQscUJBQWdCLEdBQXFCLEVBQUUsQ0FBQztRQUUvQyxtQkFBbUI7UUFDWixnQkFBVyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuQyxnQkFBVyxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBSzlDLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVuQyxNQUFNLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQztRQUMvQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRWxFOzs7WUFHSTtRQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUM3RCxJQUFJLENBQUMsb0JBQW9CLENBQzFCLENBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE9BQU87UUFDaEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBQy9DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO1FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUN2RCxJQUFJLFlBQVksS0FBSyxRQUFRLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDbkM7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQixDQUN6QixjQUErQztRQUUvQyxJQUFJLENBQUMsY0FBYztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQy9CLE1BQU0sZ0JBQWdCLEdBQXFDLEVBQUUsQ0FBQztRQUM5RCxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDbkMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7OztZQXZGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsc3VKQUFxRDtnQkFDckQsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO2dCQUM1QixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBUFEsbUJBQW1CO1lBRG5CLGVBQWU7OzsyQkFjckIsS0FBSzs4QkFDTCxLQUFLO21DQUVMLGVBQWUsU0FBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQXV0aGVudGljYXRvck1hY2hpbmVPcHRpb25zLFxuICBnZXRBY3RvclN0YXRlLFxuICB0cmFuc2xhdGUsXG4gIHRyYW5zbGF0aW9ucyxcbn0gZnJvbSAnQGF3cy1hbXBsaWZ5L3VpJztcbmltcG9ydCB7IEkxOG4gfSBmcm9tICdhd3MtYW1wbGlmeSc7XG5pbXBvcnQgeyBDdXN0b21Db21wb25lbnRzIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IEFtcGxpZnlTbG90RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9hbXBsaWZ5LXNsb3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IEF1dGhQcm9wU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGhlbnRpY2F0b3ItY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0YXRlTWFjaGluZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zdGF0ZS1tYWNoaW5lLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhbXBsaWZ5LWF1dGhlbnRpY2F0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vYW1wbGlmeS1hdXRoZW50aWNhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbQXV0aFByb3BTZXJ2aWNlXSwgLy8gbWFrZSBzdXJlIGN1c3RvbSBjb21wb25lbnRzIGFyZSBzY29wZWQgdG8gdGhpcyBhdXRoZW50aWNhdG9yIG9ubHlcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQW1wbGlmeUF1dGhlbnRpY2F0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuICAvKipcbiAgICogVE9ETzogQWRkIGJhY2sgY3VzdG9tIGV2ZW50c1xuICAgKi9cblxuICBASW5wdXQoKSBpbml0aWFsU3RhdGU6IEF1dGhlbnRpY2F0b3JNYWNoaW5lT3B0aW9uc1snaW5pdGlhbFN0YXRlJ107XG4gIEBJbnB1dCgpIGxvZ2luTWVjaGFuaXNtczogQXV0aGVudGljYXRvck1hY2hpbmVPcHRpb25zWydsb2dpbk1lY2hhbmlzbXMnXTtcblxuICBAQ29udGVudENoaWxkcmVuKEFtcGxpZnlTbG90RGlyZWN0aXZlKVxuICBwcml2YXRlIGN1c3RvbUNvbXBvbmVudFF1ZXJ5OiBRdWVyeUxpc3Q8QW1wbGlmeVNsb3REaXJlY3RpdmU+ID0gbnVsbDtcbiAgcHVibGljIGN1c3RvbUNvbXBvbmVudHM6IEN1c3RvbUNvbXBvbmVudHMgPSB7fTtcblxuICAvLyB0cmFuc2xhdGVkIHRleHRzXG4gIHB1YmxpYyBzaWduSW5UaXRsZSA9IHRyYW5zbGF0ZSgnU2lnbiBJbicpO1xuICBwdWJsaWMgc2lnblVwVGl0bGUgPSB0cmFuc2xhdGUoJ0NyZWF0ZSBBY2NvdW50Jyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdGF0ZU1hY2hpbmU6IFN0YXRlTWFjaGluZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQXV0aFByb3BTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBJMThuLnB1dFZvY2FidWxhcmllcyh0cmFuc2xhdGlvbnMpO1xuXG4gICAgY29uc3QgeyBpbml0aWFsU3RhdGUsIGxvZ2luTWVjaGFuaXNtcyB9ID0gdGhpcztcbiAgICB0aGlzLnN0YXRlTWFjaGluZS5zdGFydE1hY2hpbmUoeyBpbml0aWFsU3RhdGUsIGxvZ2luTWVjaGFuaXNtcyB9KTtcblxuICAgIC8qKlxuICAgICAqIGhhbmRsaW5nIHRyYW5zbGF0aW9ucyBhZnRlciBjb250ZW50IGluaXQsIGJlY2F1c2UgYXV0aGVudGljYXRvciBhbmQgaXRzXG4gICAgICogdHJhbnNsYXRpb25zIG1pZ2h0IGJlIGluaXRpYWxpemVkIGJlZm9yZSB0aGUgbWFpbiBhcHAncyBgbmdPbkluaXRgIGlzIHJ1bi5cbiAgICAgKiovXG4gICAgdGhpcy5zaWduSW5UaXRsZSA9IHRyYW5zbGF0ZSgnU2lnbiBJbicpO1xuICAgIHRoaXMuc2lnblVwVGl0bGUgPSB0cmFuc2xhdGUoJ0NyZWF0ZSBBY2NvdW50Jyk7XG4gIH1cblxuICAvKipcbiAgICogTGlmZWN5Y2xlIE1ldGhvZHNcbiAgICovXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLmN1c3RvbUNvbXBvbmVudHMgPSB0aGlzLm1hcEN1c3RvbUNvbXBvbmVudHMoXG4gICAgICB0aGlzLmN1c3RvbUNvbXBvbmVudFF1ZXJ5XG4gICAgKTtcbiAgICB0aGlzLmN1c3RvbUNvbXBvbmVudHMgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmN1c3RvbUNvbXBvbmVudHM7XG4gIH1cblxuICAvKipcbiAgICogQ2xhc3MgRnVuY3Rpb25zXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNvbnRleHQoKSB7XG4gICAgY29uc3QgeyBzaWduT3V0IH0gPSB0aGlzLnN0YXRlTWFjaGluZS5zZXJ2aWNlcztcbiAgICBjb25zdCB1c2VyID0gdGhpcy5zdGF0ZU1hY2hpbmUudXNlcjtcbiAgICByZXR1cm4geyBzaWduT3V0LCB1c2VyIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGFjdG9yU3RhdGUoKSB7XG4gICAgcmV0dXJuIGdldEFjdG9yU3RhdGUodGhpcy5zdGF0ZU1hY2hpbmUuYXV0aFN0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXV0aGVudGljYXRvclN0YXRlKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlTWFjaGluZS5hdXRoU3RhdGU7XG4gIH1cblxuICBwdWJsaWMgb25UYWJDaGFuZ2UoKSB7XG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5zdGF0ZU1hY2hpbmUuYXV0aFN0YXRlLnZhbHVlO1xuICAgIGlmIChjdXJyZW50U3RhdGUgPT09ICdzaWduSW4nKSB7XG4gICAgICB0aGlzLnN0YXRlTWFjaGluZS5zZW5kKCdTSUdOX1VQJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhdGVNYWNoaW5lLnNlbmQoJ1NJR05fSU4nKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1hcEN1c3RvbUNvbXBvbmVudHMoXG4gICAgY29tcG9uZW50UXVlcnk6IFF1ZXJ5TGlzdDxBbXBsaWZ5U2xvdERpcmVjdGl2ZT5cbiAgKTogUmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8YW55Pj4ge1xuICAgIGlmICghY29tcG9uZW50UXVlcnkpIHJldHVybiB7fTtcbiAgICBjb25zdCBjdXN0b21Db21wb25lbnRzOiBSZWNvcmQ8c3RyaW5nLCBUZW1wbGF0ZVJlZjxhbnk+PiA9IHt9O1xuICAgIGNvbXBvbmVudFF1ZXJ5LmZvckVhY2goKGNvbXBvbmVudCkgPT4ge1xuICAgICAgY3VzdG9tQ29tcG9uZW50c1tjb21wb25lbnQubmFtZV0gPSBjb21wb25lbnQudGVtcGxhdGU7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY3VzdG9tQ29tcG9uZW50cztcbiAgfVxufVxuIl19