@aws-amplify/ui-angular 2.0.3 → 2.0.7

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 (29) hide show
  1. package/aws-amplify-ui-angular.metadata.json +1 -1
  2. package/bundles/aws-amplify-ui-angular.umd.js +65 -17
  3. package/bundles/aws-amplify-ui-angular.umd.js.map +1 -1
  4. package/bundles/aws-amplify-ui-angular.umd.min.js +1 -1
  5. package/bundles/aws-amplify-ui-angular.umd.min.js.map +1 -1
  6. package/esm2015/lib/components/authenticator/components/authenticator/authenticator.component.js +6 -2
  7. package/esm2015/lib/components/authenticator/components/confirm-sign-up/confirm-sign-up.component.js +18 -2
  8. package/esm2015/lib/components/authenticator/components/form-field/form-field.component.js +2 -2
  9. package/esm2015/lib/components/authenticator/components/setup-totp/setup-totp.component.js +10 -4
  10. package/esm2015/lib/components/authenticator/components/sign-in/sign-in.component.js +7 -4
  11. package/esm2015/lib/primitives/tab-item/tab-item.component.js +5 -3
  12. package/esm2015/lib/services/authenticator.service.js +7 -2
  13. package/fesm2015/aws-amplify-ui-angular.js +45 -10
  14. package/fesm2015/aws-amplify-ui-angular.js.map +1 -1
  15. package/lib/components/authenticator/components/authenticator/authenticator.component.d.ts +4 -0
  16. package/lib/components/authenticator/components/confirm-reset-password/amplify-confirm-reset-password.component.d.ts +3 -0
  17. package/lib/components/authenticator/components/confirm-sign-in/confirm-sign-in.component.d.ts +3 -0
  18. package/lib/components/authenticator/components/confirm-sign-up/confirm-sign-up.component.d.ts +5 -0
  19. package/lib/components/authenticator/components/confirm-verify-user/amplify-confirm-verify-user.component.d.ts +3 -0
  20. package/lib/components/authenticator/components/force-new-password/force-new-password.component.d.ts +3 -0
  21. package/lib/components/authenticator/components/reset-password/reset-password.component.d.ts +3 -0
  22. package/lib/components/authenticator/components/setup-totp/setup-totp.component.d.ts +6 -0
  23. package/lib/components/authenticator/components/sign-in/sign-in.component.d.ts +3 -0
  24. package/lib/components/authenticator/components/sign-up/sign-up.component.d.ts +3 -0
  25. package/lib/components/authenticator/components/verify-user/verify-user.component.d.ts +3 -0
  26. package/lib/primitives/tab-item/tab-item.component.d.ts +1 -0
  27. package/lib/services/authenticator.service.d.ts +4 -0
  28. package/package.json +3 -3
  29. package/theme.css +12 -0
@@ -40,7 +40,7 @@ export class FormFieldComponent {
40
40
  get error() {
41
41
  const formContext = getActorContext(this.authenticator.authState);
42
42
  const { validationError } = formContext;
43
- return validationError[this.name];
43
+ return translate(validationError[this.name]);
44
44
  }
45
45
  onBlur($event) {
46
46
  let { name } = $event.target;
@@ -94,4 +94,4 @@ FormFieldComponent.propDecorators = {
94
94
  autocomplete: [{ type: Input }],
95
95
  labelHidden: [{ type: Input }]
96
96
  };
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hdXRoZW50aWNhdG9yL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBR0wsZUFBZSxFQUNmLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbEY7Ozs7OztHQU1HO0FBS0gsTUFBTSxPQUFPLGtCQUFrQjtJQWdCN0IsWUFBb0IsYUFBbUM7UUFBbkMsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBYjlDLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFHckIscUJBQWdCLEdBQUcsZ0JBQWdCLENBQUM7SUFJZSxDQUFDO0lBRTNELFFBQVE7UUFDTixzRUFBc0U7UUFDdEUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDdkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7WUFDM0MsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUEwQixlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFlBQVksQ0FBQztZQUV2QyxnQ0FBZ0M7WUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7Z0JBQzVCLElBQUksRUFBRSxjQUFjO2dCQUNwQixLQUFLLEVBQUUsWUFBWTthQUNwQixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxNQUFNLFdBQVcsR0FBMEIsZUFBZSxDQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FDN0IsQ0FBQztRQUNGLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxXQUFXLENBQUM7UUFDeEMsT0FBTyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBYTtRQUN6QixJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQXFCLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFFL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxVQUFVOztRQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLFdBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDBDQUFFLEtBQUssQ0FBQSxDQUFDO1FBQ2hFLE9BQU8sU0FBUyxDQUFTLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxnQkFBZ0I7O1FBQ2QsTUFBTSxXQUFXLEdBQ2YsSUFBSSxDQUFDLFdBQVcsV0FDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDBDQUFFLFdBQVcsQ0FBQTtZQUN6QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsT0FBTyxTQUFTLENBQVMsV0FBVyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGdFQUFnRTtJQUNoRSxTQUFTOztRQUNQLG1CQUFPLElBQUksQ0FBQyxJQUFJLHlDQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywwQ0FBRSxJQUFJLG1DQUFJLE1BQU0sQ0FBQztJQUNuRSxDQUFDO0lBRUQsaUJBQWlCOztRQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksV0FBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsMENBQUUsWUFBWSxDQUFBLENBQUM7SUFDekUsQ0FBQztJQUVELG1FQUFtRTtJQUNuRSxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssVUFBVSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssS0FBSyxDQUFDO0lBQ3BDLENBQUM7OztZQXBGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIseTVDQUEwQzthQUMzQzs7O1lBWlEsb0JBQW9COzs7bUJBYzFCLEtBQUs7bUJBQ0wsS0FBSzt1QkFDTCxLQUFLOzBCQUNMLEtBQUs7b0JBQ0wsS0FBSzsyQkFDTCxLQUFLO3VCQUNMLEtBQUs7MkJBQ0wsS0FBSzswQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3RvckNvbnRleHRXaXRoRm9ybXMsXG4gIEF1dGhJbnB1dEF0dHJpYnV0ZXMsXG4gIGdldEFjdG9yQ29udGV4dCxcbiAgdHJhbnNsYXRlLFxuICBjb3VudHJ5RGlhbENvZGVzLFxufSBmcm9tICdAYXdzLWFtcGxpZnkvdWknO1xuaW1wb3J0IHsgZ2V0QXR0cmlidXRlTWFwIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvYXV0aGVudGljYXRvci5zZXJ2aWNlJztcblxuLyoqXG4gKiBJbnB1dCBpbnRlcmZhY2Ugb3BpbmlvbmF0ZWQgZm9yIGF1dGhlbnRpY2F0b3IgdXNhZ2UuXG4gKlxuICogVE9ETzogU2VwYXJhdGUgdGhpcyBjb21wb25lbnQgb3V0IHRvIHR3byBwYXJ0cyAtLSAxKSBhbXBsaWZ5LWF1dGgtaW5wdXQgdGhhdFxuICogY29udGFpbnMgYXV0aGVudGljYXRvciBvcGluaW9uYXRlZCBsb2dpYyBhbmQgMikgYW1wbGlmeS10ZXh0LWZpZWxkIHByaW1pdGl2ZVxuICogdGhhdCBkb2VzIG5vdCBtYWtlIGFueSBhdXRoLXJlbGF0ZWQgaW5mZXJlbmNlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhbXBsaWZ5LWZvcm0tZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IHRydWU7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIGluaXRpYWxWYWx1ZSA9ICcnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBhdXRvY29tcGxldGUgPSAnJztcbiAgQElucHV0KCkgbGFiZWxIaWRkZW4gPSB0cnVlO1xuXG4gIHB1YmxpYyBkZWZhdWx0Q291bnRyeUNvZGU6IHN0cmluZztcbiAgcHVibGljIGNvdW50cnlEaWFsQ29kZXMgPSBjb3VudHJ5RGlhbENvZGVzO1xuICBwdWJsaWMgdGV4dEZpZWxkSWQ6IHN0cmluZztcbiAgcHVibGljIHNlbGVjdEZpZWxkSWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhlbnRpY2F0b3I6IEF1dGhlbnRpY2F0b3JTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFRPRE86IGNvbnNpZGVyIGJldHRlciBkZWZhdWx0IGhhbmRsaW5nIG1lY2hhbmlzbXMgYWNyb3NzIGZyYW1ld29ya3NcbiAgICBpZiAodGhpcy5pc1Bob25lRmllbGQoKSkge1xuICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLmF1dGhlbnRpY2F0b3IuYXV0aFN0YXRlO1xuICAgICAgY29uc3QgeyBjb3VudHJ5X2NvZGUgfTogQWN0b3JDb250ZXh0V2l0aEZvcm1zID0gZ2V0QWN0b3JDb250ZXh0KHN0YXRlKTtcbiAgICAgIHRoaXMuZGVmYXVsdENvdW50cnlDb2RlID0gY291bnRyeV9jb2RlO1xuXG4gICAgICAvLyBUT0RPOiByZW1vdmUgdGhpcyBzaWRlLWVmZmVjdFxuICAgICAgdGhpcy5hdXRoZW50aWNhdG9yLnVwZGF0ZUZvcm0oe1xuICAgICAgICBuYW1lOiAnY291bnRyeV9jb2RlJyxcbiAgICAgICAgdmFsdWU6IGNvdW50cnlfY29kZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCBhdHRyaWJ1dGVNYXAoKTogQXV0aElucHV0QXR0cmlidXRlcyB7XG4gICAgcmV0dXJuIGdldEF0dHJpYnV0ZU1hcCgpO1xuICB9XG5cbiAgZ2V0IGVycm9yKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZm9ybUNvbnRleHQ6IEFjdG9yQ29udGV4dFdpdGhGb3JtcyA9IGdldEFjdG9yQ29udGV4dChcbiAgICAgIHRoaXMuYXV0aGVudGljYXRvci5hdXRoU3RhdGVcbiAgICApO1xuICAgIGNvbnN0IHsgdmFsaWRhdGlvbkVycm9yIH0gPSBmb3JtQ29udGV4dDtcbiAgICByZXR1cm4gdmFsaWRhdGlvbkVycm9yW3RoaXMubmFtZV07XG4gIH1cblxuICBwdWJsaWMgb25CbHVyKCRldmVudDogRXZlbnQpIHtcbiAgICBsZXQgeyBuYW1lIH0gPSA8SFRNTElucHV0RWxlbWVudD4kZXZlbnQudGFyZ2V0O1xuXG4gICAgdGhpcy5hdXRoZW50aWNhdG9yLnVwZGF0ZUJsdXIoeyBuYW1lIH0pO1xuICB9XG5cbiAgaW5mZXJMYWJlbCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGxhYmVsID0gdGhpcy5sYWJlbCB8fCB0aGlzLmF0dHJpYnV0ZU1hcFt0aGlzLm5hbWVdPy5sYWJlbDtcbiAgICByZXR1cm4gdHJhbnNsYXRlPHN0cmluZz4obGFiZWwpO1xuICB9XG5cbiAgaW5mZXJQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBsYWNlaG9sZGVyID1cbiAgICAgIHRoaXMucGxhY2Vob2xkZXIgfHxcbiAgICAgIHRoaXMuYXR0cmlidXRlTWFwW3RoaXMubmFtZV0/LnBsYWNlaG9sZGVyIHx8XG4gICAgICB0aGlzLmluZmVyTGFiZWwoKTtcbiAgICByZXR1cm4gdHJhbnNsYXRlPHN0cmluZz4ocGxhY2Vob2xkZXIpO1xuICB9XG5cbiAgLy8gaW5mZXJzIHdoYXQgdGhlIGB0eXBlYCBvZiB1bmRlcmx5aW5nIGlucHV0IGVsZW1lbnQgc2hvdWxkIGJlLlxuICBpbmZlclR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID8/IHRoaXMuYXR0cmlidXRlTWFwW3RoaXMubmFtZV0/LnR5cGUgPz8gJ3RleHQnO1xuICB9XG5cbiAgaW5mZXJBdXRvY29tcGxldGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5hdXRvY29tcGxldGUgfHwgdGhpcy5hdHRyaWJ1dGVNYXBbdGhpcy5uYW1lXT8uYXV0b2NvbXBsZXRlO1xuICB9XG5cbiAgLy8gVE9ETyhlbmhhbmNlbWVudCk6IHVzZSBlbnVtIHRvIGRpZmZlcmVudGlhdGUgc3BlY2lhbCBmaWVsZCB0eXBlc1xuICBpc1Bhc3N3b3JkRmllbGQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5mZXJUeXBlKCkgPT09ICdwYXNzd29yZCc7XG4gIH1cblxuICBpc1Bob25lRmllbGQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5mZXJUeXBlKCkgPT09ICd0ZWwnO1xuICB9XG59XG4iXX0=
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hdXRoZW50aWNhdG9yL2NvbXBvbmVudHMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBR0wsZUFBZSxFQUNmLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbEY7Ozs7OztHQU1HO0FBS0gsTUFBTSxPQUFPLGtCQUFrQjtJQWdCN0IsWUFBb0IsYUFBbUM7UUFBbkMsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBYjlDLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDaEIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFHckIscUJBQWdCLEdBQUcsZ0JBQWdCLENBQUM7SUFJZSxDQUFDO0lBRTNELFFBQVE7UUFDTixzRUFBc0U7UUFDdEUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDdkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7WUFDM0MsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUEwQixlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFlBQVksQ0FBQztZQUV2QyxnQ0FBZ0M7WUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7Z0JBQzVCLElBQUksRUFBRSxjQUFjO2dCQUNwQixLQUFLLEVBQUUsWUFBWTthQUNwQixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxNQUFNLFdBQVcsR0FBMEIsZUFBZSxDQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FDN0IsQ0FBQztRQUNGLE1BQU0sRUFBRSxlQUFlLEVBQUUsR0FBRyxXQUFXLENBQUM7UUFDeEMsT0FBTyxTQUFTLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBYTtRQUN6QixJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQXFCLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFFL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxVQUFVOztRQUNSLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLFdBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDBDQUFFLEtBQUssQ0FBQSxDQUFDO1FBQ2hFLE9BQU8sU0FBUyxDQUFTLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxnQkFBZ0I7O1FBQ2QsTUFBTSxXQUFXLEdBQ2YsSUFBSSxDQUFDLFdBQVcsV0FDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDBDQUFFLFdBQVcsQ0FBQTtZQUN6QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsT0FBTyxTQUFTLENBQVMsV0FBVyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELGdFQUFnRTtJQUNoRSxTQUFTOztRQUNQLG1CQUFPLElBQUksQ0FBQyxJQUFJLHlDQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQywwQ0FBRSxJQUFJLG1DQUFJLE1BQU0sQ0FBQztJQUNuRSxDQUFDO0lBRUQsaUJBQWlCOztRQUNmLE9BQU8sSUFBSSxDQUFDLFlBQVksV0FBSSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsMENBQUUsWUFBWSxDQUFBLENBQUM7SUFDekUsQ0FBQztJQUVELG1FQUFtRTtJQUNuRSxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssVUFBVSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssS0FBSyxDQUFDO0lBQ3BDLENBQUM7OztZQXBGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIseTVDQUEwQzthQUMzQzs7O1lBWlEsb0JBQW9COzs7bUJBYzFCLEtBQUs7bUJBQ0wsS0FBSzt1QkFDTCxLQUFLOzBCQUNMLEtBQUs7b0JBQ0wsS0FBSzsyQkFDTCxLQUFLO3VCQUNMLEtBQUs7MkJBQ0wsS0FBSzswQkFDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY3RvckNvbnRleHRXaXRoRm9ybXMsXG4gIEF1dGhJbnB1dEF0dHJpYnV0ZXMsXG4gIGdldEFjdG9yQ29udGV4dCxcbiAgdHJhbnNsYXRlLFxuICBjb3VudHJ5RGlhbENvZGVzLFxufSBmcm9tICdAYXdzLWFtcGxpZnkvdWknO1xuaW1wb3J0IHsgZ2V0QXR0cmlidXRlTWFwIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvYXV0aGVudGljYXRvci5zZXJ2aWNlJztcblxuLyoqXG4gKiBJbnB1dCBpbnRlcmZhY2Ugb3BpbmlvbmF0ZWQgZm9yIGF1dGhlbnRpY2F0b3IgdXNhZ2UuXG4gKlxuICogVE9ETzogU2VwYXJhdGUgdGhpcyBjb21wb25lbnQgb3V0IHRvIHR3byBwYXJ0cyAtLSAxKSBhbXBsaWZ5LWF1dGgtaW5wdXQgdGhhdFxuICogY29udGFpbnMgYXV0aGVudGljYXRvciBvcGluaW9uYXRlZCBsb2dpYyBhbmQgMikgYW1wbGlmeS10ZXh0LWZpZWxkIHByaW1pdGl2ZVxuICogdGhhdCBkb2VzIG5vdCBtYWtlIGFueSBhdXRoLXJlbGF0ZWQgaW5mZXJlbmNlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhbXBsaWZ5LWZvcm0tZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IHRydWU7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIGluaXRpYWxWYWx1ZSA9ICcnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBhdXRvY29tcGxldGUgPSAnJztcbiAgQElucHV0KCkgbGFiZWxIaWRkZW4gPSB0cnVlO1xuXG4gIHB1YmxpYyBkZWZhdWx0Q291bnRyeUNvZGU6IHN0cmluZztcbiAgcHVibGljIGNvdW50cnlEaWFsQ29kZXMgPSBjb3VudHJ5RGlhbENvZGVzO1xuICBwdWJsaWMgdGV4dEZpZWxkSWQ6IHN0cmluZztcbiAgcHVibGljIHNlbGVjdEZpZWxkSWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhlbnRpY2F0b3I6IEF1dGhlbnRpY2F0b3JTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFRPRE86IGNvbnNpZGVyIGJldHRlciBkZWZhdWx0IGhhbmRsaW5nIG1lY2hhbmlzbXMgYWNyb3NzIGZyYW1ld29ya3NcbiAgICBpZiAodGhpcy5pc1Bob25lRmllbGQoKSkge1xuICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLmF1dGhlbnRpY2F0b3IuYXV0aFN0YXRlO1xuICAgICAgY29uc3QgeyBjb3VudHJ5X2NvZGUgfTogQWN0b3JDb250ZXh0V2l0aEZvcm1zID0gZ2V0QWN0b3JDb250ZXh0KHN0YXRlKTtcbiAgICAgIHRoaXMuZGVmYXVsdENvdW50cnlDb2RlID0gY291bnRyeV9jb2RlO1xuXG4gICAgICAvLyBUT0RPOiByZW1vdmUgdGhpcyBzaWRlLWVmZmVjdFxuICAgICAgdGhpcy5hdXRoZW50aWNhdG9yLnVwZGF0ZUZvcm0oe1xuICAgICAgICBuYW1lOiAnY291bnRyeV9jb2RlJyxcbiAgICAgICAgdmFsdWU6IGNvdW50cnlfY29kZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGdldCBhdHRyaWJ1dGVNYXAoKTogQXV0aElucHV0QXR0cmlidXRlcyB7XG4gICAgcmV0dXJuIGdldEF0dHJpYnV0ZU1hcCgpO1xuICB9XG5cbiAgZ2V0IGVycm9yKCk6IHN0cmluZyB7XG4gICAgY29uc3QgZm9ybUNvbnRleHQ6IEFjdG9yQ29udGV4dFdpdGhGb3JtcyA9IGdldEFjdG9yQ29udGV4dChcbiAgICAgIHRoaXMuYXV0aGVudGljYXRvci5hdXRoU3RhdGVcbiAgICApO1xuICAgIGNvbnN0IHsgdmFsaWRhdGlvbkVycm9yIH0gPSBmb3JtQ29udGV4dDtcbiAgICByZXR1cm4gdHJhbnNsYXRlKHZhbGlkYXRpb25FcnJvclt0aGlzLm5hbWVdKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkJsdXIoJGV2ZW50OiBFdmVudCkge1xuICAgIGxldCB7IG5hbWUgfSA9IDxIVE1MSW5wdXRFbGVtZW50PiRldmVudC50YXJnZXQ7XG5cbiAgICB0aGlzLmF1dGhlbnRpY2F0b3IudXBkYXRlQmx1cih7IG5hbWUgfSk7XG4gIH1cblxuICBpbmZlckxhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLmxhYmVsIHx8IHRoaXMuYXR0cmlidXRlTWFwW3RoaXMubmFtZV0/LmxhYmVsO1xuICAgIHJldHVybiB0cmFuc2xhdGU8c3RyaW5nPihsYWJlbCk7XG4gIH1cblxuICBpbmZlclBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGxhY2Vob2xkZXIgPVxuICAgICAgdGhpcy5wbGFjZWhvbGRlciB8fFxuICAgICAgdGhpcy5hdHRyaWJ1dGVNYXBbdGhpcy5uYW1lXT8ucGxhY2Vob2xkZXIgfHxcbiAgICAgIHRoaXMuaW5mZXJMYWJlbCgpO1xuICAgIHJldHVybiB0cmFuc2xhdGU8c3RyaW5nPihwbGFjZWhvbGRlcik7XG4gIH1cblxuICAvLyBpbmZlcnMgd2hhdCB0aGUgYHR5cGVgIG9mIHVuZGVybHlpbmcgaW5wdXQgZWxlbWVudCBzaG91bGQgYmUuXG4gIGluZmVyVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPz8gdGhpcy5hdHRyaWJ1dGVNYXBbdGhpcy5uYW1lXT8udHlwZSA/PyAndGV4dCc7XG4gIH1cblxuICBpbmZlckF1dG9jb21wbGV0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmF1dG9jb21wbGV0ZSB8fCB0aGlzLmF0dHJpYnV0ZU1hcFt0aGlzLm5hbWVdPy5hdXRvY29tcGxldGU7XG4gIH1cblxuICAvLyBUT0RPKGVuaGFuY2VtZW50KTogdXNlIGVudW0gdG8gZGlmZmVyZW50aWF0ZSBzcGVjaWFsIGZpZWxkIHR5cGVzXG4gIGlzUGFzc3dvcmRGaWVsZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbmZlclR5cGUoKSA9PT0gJ3Bhc3N3b3JkJztcbiAgfVxuXG4gIGlzUGhvbmVGaWVsZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbmZlclR5cGUoKSA9PT0gJ3RlbCc7XG4gIH1cbn1cbiJdfQ==
@@ -12,6 +12,8 @@ export class SetupTotpComponent {
12
12
  this.dataAttr = '';
13
13
  this.headerText = translate('Setup TOTP');
14
14
  this.qrCodeSource = '';
15
+ this.secretKey = '';
16
+ this.copyTextLabel = translate('COPY');
15
17
  // translated texts
16
18
  this.backToSignInText = translate('Back to Sign In');
17
19
  this.confirmText = translate('Confirm');
@@ -29,9 +31,9 @@ export class SetupTotpComponent {
29
31
  const actorContext = getActorContext(state);
30
32
  const { user } = actorContext;
31
33
  try {
32
- const secretKey = yield Auth.setupTOTP(user);
34
+ this.secretKey = yield Auth.setupTOTP(user);
33
35
  const issuer = 'AWSCognito';
34
- const totpCode = `otpauth://totp/${issuer}:${user.username}?secret=${secretKey}&issuer=${issuer}`;
36
+ const totpCode = `otpauth://totp/${issuer}:${user.username}?secret=${this.secretKey}&issuer=${issuer}`;
35
37
  logger.info('totp code was generated:', totpCode);
36
38
  this.qrCodeSource = yield QRCode.toDataURL(totpCode);
37
39
  }
@@ -49,11 +51,15 @@ export class SetupTotpComponent {
49
51
  event.preventDefault();
50
52
  this.authenticator.submitForm();
51
53
  }
54
+ copyText() {
55
+ navigator.clipboard.writeText(this.secretKey);
56
+ this.copyTextLabel = translate('COPIED');
57
+ }
52
58
  }
53
59
  SetupTotpComponent.decorators = [
54
60
  { type: Component, args: [{
55
61
  selector: 'amplify-setup-totp',
56
- template: "<div data-amplify-container>\n <form data-amplify-form (submit)=\"onSubmit($event)\" (input)=\"onInput($event)\">\n <fieldset\n class=\"amplify-flex\"\n style=\"flex-direction: column\"\n data-amplify-fieldset\n [disabled]=\"authenticator.isPending\"\n >\n <amplify-slot name=\"setup-totp-header\" [context]=\"context\">\n <h3 class=\"amplify-heading\">{{ this.headerText }}</h3>\n </amplify-slot>\n <p *ngIf=\"!qrCodeSource\">Loading...</p>\n <img\n *ngIf=\"qrCodeSource\"\n [src]=\"qrCodeSource\"\n alt=\"qr code\"\n data-amplify-qrcode\n width=\"228\"\n height=\"228\"\n />\n <amplify-form-field\n name=\"confirmation_code\"\n label=\"Code *\"\n type=\"text\"\n autocomplete=\"one-time-code\"\n ></amplify-form-field>\n <button amplify-button variation=\"primary\" fullWidth=\"true\" type=\"submit\">\n {{ confirmText }}\n </button>\n <button\n amplify-button\n size=\"small\"\n variation=\"link\"\n fontWeight=\"normal\"\n fullWidth=\"true\"\n (click)=\"authenticator.toSignIn()\"\n >\n {{ backToSignInText }}\n </button>\n <amplify-error *ngIf=\"authenticator.error\">\n {{ authenticator.error }}\n </amplify-error>\n </fieldset>\n <amplify-slot name=\"setup-totp-footer\" [context]=\"context\"> </amplify-slot>\n </form>\n</div>\n"
62
+ template: "<div data-amplify-container>\n <form data-amplify-form (submit)=\"onSubmit($event)\" (input)=\"onInput($event)\">\n <fieldset\n class=\"amplify-flex\"\n style=\"flex-direction: column\"\n data-amplify-fieldset\n [disabled]=\"authenticator.isPending\"\n >\n <amplify-slot name=\"setup-totp-header\" [context]=\"context\">\n <h3 class=\"amplify-heading\">{{ this.headerText }}</h3>\n </amplify-slot>\n <p *ngIf=\"!qrCodeSource\">Loading...</p>\n <img\n *ngIf=\"qrCodeSource\"\n [src]=\"qrCodeSource\"\n alt=\"qr code\"\n data-amplify-qrcode\n width=\"228\"\n height=\"228\"\n />\n <div class=\"amplify-flex\" data-amplify-copy>\n <div>{{ secretKey }}</div>\n <div data-amplify-copy-svg (click)=\"copyText()\">\n <div data-amplify-copy-tooltip>{{ copyTextLabel }}</div>\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM15 5H8C6.9 5 6.01 5.9 6.01 7L6 21C6 22.1 6.89 23 7.99 23H19C20.1 23 21 22.1 21 21V11L15 5ZM8 21V7H14V12H19V21H8Z\"\n fill=\"black\"\n />\n </svg>\n </div>\n </div>\n\n <amplify-form-field\n name=\"confirmation_code\"\n label=\"Code *\"\n type=\"text\"\n autocomplete=\"one-time-code\"\n ></amplify-form-field>\n <button amplify-button variation=\"primary\" fullWidth=\"true\" type=\"submit\">\n {{ confirmText }}\n </button>\n <button\n amplify-button\n size=\"small\"\n variation=\"link\"\n fontWeight=\"normal\"\n fullWidth=\"true\"\n (click)=\"authenticator.toSignIn()\"\n >\n {{ backToSignInText }}\n </button>\n <amplify-error *ngIf=\"authenticator.error\">\n {{ authenticator.error }}\n </amplify-error>\n </fieldset>\n <amplify-slot name=\"setup-totp-footer\" [context]=\"context\"> </amplify-slot>\n </form>\n</div>\n"
57
63
  },] }
58
64
  ];
59
65
  SetupTotpComponent.ctorParameters = () => [
@@ -62,4 +68,4 @@ SetupTotpComponent.ctorParameters = () => [
62
68
  SetupTotpComponent.propDecorators = {
63
69
  dataAttr: [{ type: HostBinding, args: ['attr.data-amplify-authenticator-setup-totp',] }]
64
70
  };
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtdG90cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hdXRoZW50aWNhdG9yL2NvbXBvbmVudHMvc2V0dXAtdG90cC9zZXR1cC10b3RwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBTXZDLE1BQU0sT0FBTyxrQkFBa0I7SUFTN0IsWUFBbUIsYUFBbUM7UUFBbkMsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBUkssYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsRSxlQUFVLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JDLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRXpCLG1CQUFtQjtRQUNaLHFCQUFnQixHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hELGdCQUFXLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWUsQ0FBQztJQUUxRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUN4QyxDQUFDO0lBRUssY0FBYzs7WUFDbEIsd0NBQXdDO1lBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1lBQzNDLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQWtCLENBQUM7WUFDN0QsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLFlBQVksQ0FBQztZQUM5QixJQUFJO2dCQUNGLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0MsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDO2dCQUM1QixNQUFNLFFBQVEsR0FBRyxrQkFBa0IsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLFdBQVcsU0FBUyxXQUFXLE1BQU0sRUFBRSxDQUFDO2dCQUVsRyxNQUFNLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN0RDtZQUFDLE9BQU8sR0FBRyxFQUFFO2dCQUNaLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbkI7UUFDSCxDQUFDO0tBQUE7SUFFRCxPQUFPLENBQUMsS0FBWTtRQUNsQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBcUIsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN2RCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxRQUFRLENBQUMsS0FBWTtRQUNuQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzs7WUFqREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLG85Q0FBMEM7YUFDM0M7OztZQVJRLG9CQUFvQjs7O3VCQVUxQixXQUFXLFNBQUMsNENBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgUVJDb2RlIGZyb20gJ3FyY29kZSc7XG5pbXBvcnQgeyBBdXRoLCBMb2dnZXIgfSBmcm9tICdhd3MtYW1wbGlmeSc7XG5pbXBvcnQgeyBnZXRBY3RvckNvbnRleHQsIFNpZ25JbkNvbnRleHQgfSBmcm9tICdAYXdzLWFtcGxpZnkvdWknO1xuaW1wb3J0IHsgQXV0aGVudGljYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoZW50aWNhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L3VpJztcblxuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcignU2V0dXBUb3RwJyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FtcGxpZnktc2V0dXAtdG90cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXR1cC10b3RwLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dXBUb3RwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtYW1wbGlmeS1hdXRoZW50aWNhdG9yLXNldHVwLXRvdHAnKSBkYXRhQXR0ciA9ICcnO1xuICBwdWJsaWMgaGVhZGVyVGV4dCA9IHRyYW5zbGF0ZSgnU2V0dXAgVE9UUCcpO1xuICBwdWJsaWMgcXJDb2RlU291cmNlID0gJyc7XG5cbiAgLy8gdHJhbnNsYXRlZCB0ZXh0c1xuICBwdWJsaWMgYmFja1RvU2lnbkluVGV4dCA9IHRyYW5zbGF0ZSgnQmFjayB0byBTaWduIEluJyk7XG4gIHB1YmxpYyBjb25maXJtVGV4dCA9IHRyYW5zbGF0ZSgnQ29uZmlybScpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhdXRoZW50aWNhdG9yOiBBdXRoZW50aWNhdG9yU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdlbmVyYXRlUVJDb2RlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aGVudGljYXRvci5zbG90Q29udGV4dDtcbiAgfVxuXG4gIGFzeW5jIGdlbmVyYXRlUVJDb2RlKCkge1xuICAgIC8vIFRPRE86IFRoaXMgc2hvdWxkIGJlIGhhbmRsZWQgaW4gY29yZS5cbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuYXV0aGVudGljYXRvci5hdXRoU3RhdGU7XG4gICAgY29uc3QgYWN0b3JDb250ZXh0ID0gZ2V0QWN0b3JDb250ZXh0KHN0YXRlKSBhcyBTaWduSW5Db250ZXh0O1xuICAgIGNvbnN0IHsgdXNlciB9ID0gYWN0b3JDb250ZXh0O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZWNyZXRLZXkgPSBhd2FpdCBBdXRoLnNldHVwVE9UUCh1c2VyKTtcbiAgICAgIGNvbnN0IGlzc3VlciA9ICdBV1NDb2duaXRvJztcbiAgICAgIGNvbnN0IHRvdHBDb2RlID0gYG90cGF1dGg6Ly90b3RwLyR7aXNzdWVyfToke3VzZXIudXNlcm5hbWV9P3NlY3JldD0ke3NlY3JldEtleX0maXNzdWVyPSR7aXNzdWVyfWA7XG5cbiAgICAgIGxvZ2dlci5pbmZvKCd0b3RwIGNvZGUgd2FzIGdlbmVyYXRlZDonLCB0b3RwQ29kZSk7XG4gICAgICB0aGlzLnFyQ29kZVNvdXJjZSA9IGF3YWl0IFFSQ29kZS50b0RhdGFVUkwodG90cENvZGUpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbG9nZ2VyLmVycm9yKGVycik7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHsgbmFtZSwgdmFsdWUgfSA9IDxIVE1MSW5wdXRFbGVtZW50PmV2ZW50LnRhcmdldDtcbiAgICB0aGlzLmF1dGhlbnRpY2F0b3IudXBkYXRlRm9ybSh7IG5hbWUsIHZhbHVlIH0pO1xuICB9XG5cbiAgb25TdWJtaXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmF1dGhlbnRpY2F0b3Iuc3VibWl0Rm9ybSgpO1xuICB9XG59XG4iXX0=
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXAtdG90cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hdXRoZW50aWNhdG9yL2NvbXBvbmVudHMvc2V0dXAtdG90cC9zZXR1cC10b3RwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDL0QsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBTXZDLE1BQU0sT0FBTyxrQkFBa0I7SUFXN0IsWUFBbUIsYUFBbUM7UUFBbkMsa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBVkssYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsRSxlQUFVLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JDLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixrQkFBYSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV6QyxtQkFBbUI7UUFDWixxQkFBZ0IsR0FBRyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoRCxnQkFBVyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVlLENBQUM7SUFFMUQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDeEMsQ0FBQztJQUVLLGNBQWM7O1lBQ2xCLHdDQUF3QztZQUN4QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztZQUMzQyxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFrQixDQUFDO1lBQzdELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxZQUFZLENBQUM7WUFDOUIsSUFBSTtnQkFDRixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDNUMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDO2dCQUM1QixNQUFNLFFBQVEsR0FBRyxrQkFBa0IsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLFdBQVcsSUFBSSxDQUFDLFNBQVMsV0FBVyxNQUFNLEVBQUUsQ0FBQztnQkFFdkcsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDdEQ7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDWixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ25CO1FBQ0gsQ0FBQztLQUFBO0lBRUQsT0FBTyxDQUFDLEtBQVk7UUFDbEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQXFCLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVk7UUFDbkIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFDTixTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs7O1lBeERGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5Qiw4b0VBQTBDO2FBQzNDOzs7WUFSUSxvQkFBb0I7Ozt1QkFVMUIsV0FBVyxTQUFDLDRDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IFFSQ29kZSBmcm9tICdxcmNvZGUnO1xuaW1wb3J0IHsgQXV0aCwgTG9nZ2VyIH0gZnJvbSAnYXdzLWFtcGxpZnknO1xuaW1wb3J0IHsgZ2V0QWN0b3JDb250ZXh0LCBTaWduSW5Db250ZXh0IH0gZnJvbSAnQGF3cy1hbXBsaWZ5L3VpJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvYXV0aGVudGljYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ0Bhd3MtYW1wbGlmeS91aSc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoJ1NldHVwVG90cCcpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhbXBsaWZ5LXNldHVwLXRvdHAnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2V0dXAtdG90cC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNldHVwVG90cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWFtcGxpZnktYXV0aGVudGljYXRvci1zZXR1cC10b3RwJykgZGF0YUF0dHIgPSAnJztcbiAgcHVibGljIGhlYWRlclRleHQgPSB0cmFuc2xhdGUoJ1NldHVwIFRPVFAnKTtcbiAgcHVibGljIHFyQ29kZVNvdXJjZSA9ICcnO1xuICBwdWJsaWMgc2VjcmV0S2V5ID0gJyc7XG4gIHB1YmxpYyBjb3B5VGV4dExhYmVsID0gdHJhbnNsYXRlKCdDT1BZJyk7XG5cbiAgLy8gdHJhbnNsYXRlZCB0ZXh0c1xuICBwdWJsaWMgYmFja1RvU2lnbkluVGV4dCA9IHRyYW5zbGF0ZSgnQmFjayB0byBTaWduIEluJyk7XG4gIHB1YmxpYyBjb25maXJtVGV4dCA9IHRyYW5zbGF0ZSgnQ29uZmlybScpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhdXRoZW50aWNhdG9yOiBBdXRoZW50aWNhdG9yU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdlbmVyYXRlUVJDb2RlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aGVudGljYXRvci5zbG90Q29udGV4dDtcbiAgfVxuXG4gIGFzeW5jIGdlbmVyYXRlUVJDb2RlKCkge1xuICAgIC8vIFRPRE86IFRoaXMgc2hvdWxkIGJlIGhhbmRsZWQgaW4gY29yZS5cbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuYXV0aGVudGljYXRvci5hdXRoU3RhdGU7XG4gICAgY29uc3QgYWN0b3JDb250ZXh0ID0gZ2V0QWN0b3JDb250ZXh0KHN0YXRlKSBhcyBTaWduSW5Db250ZXh0O1xuICAgIGNvbnN0IHsgdXNlciB9ID0gYWN0b3JDb250ZXh0O1xuICAgIHRyeSB7XG4gICAgICB0aGlzLnNlY3JldEtleSA9IGF3YWl0IEF1dGguc2V0dXBUT1RQKHVzZXIpO1xuICAgICAgY29uc3QgaXNzdWVyID0gJ0FXU0NvZ25pdG8nO1xuICAgICAgY29uc3QgdG90cENvZGUgPSBgb3RwYXV0aDovL3RvdHAvJHtpc3N1ZXJ9OiR7dXNlci51c2VybmFtZX0/c2VjcmV0PSR7dGhpcy5zZWNyZXRLZXl9Jmlzc3Vlcj0ke2lzc3Vlcn1gO1xuXG4gICAgICBsb2dnZXIuaW5mbygndG90cCBjb2RlIHdhcyBnZW5lcmF0ZWQ6JywgdG90cENvZGUpO1xuICAgICAgdGhpcy5xckNvZGVTb3VyY2UgPSBhd2FpdCBRUkNvZGUudG9EYXRhVVJMKHRvdHBDb2RlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCB7IG5hbWUsIHZhbHVlIH0gPSA8SFRNTElucHV0RWxlbWVudD5ldmVudC50YXJnZXQ7XG4gICAgdGhpcy5hdXRoZW50aWNhdG9yLnVwZGF0ZUZvcm0oeyBuYW1lLCB2YWx1ZSB9KTtcbiAgfVxuXG4gIG9uU3VibWl0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5hdXRoZW50aWNhdG9yLnN1Ym1pdEZvcm0oKTtcbiAgfVxuXG4gIGNvcHlUZXh0KCk6IHZvaWQge1xuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMuc2VjcmV0S2V5KTtcbiAgICB0aGlzLmNvcHlUZXh0TGFiZWwgPSB0cmFuc2xhdGUoJ0NPUElFRCcpO1xuICB9XG59XG4iXX0=
@@ -1,12 +1,15 @@
1
- import { Component, HostBinding, ViewEncapsulation, } from '@angular/core';
1
+ import { Component, HostBinding, ViewEncapsulation } from '@angular/core';
2
2
  import { AuthenticatorService } from '../../../../services/authenticator.service';
3
- import { translate } from '@aws-amplify/ui';
3
+ import { translate, hasTranslation } from '@aws-amplify/ui';
4
4
  export class SignInComponent {
5
5
  constructor(authenticator) {
6
6
  this.authenticator = authenticator;
7
7
  this.dataAttr = '';
8
8
  // translated phrases
9
- this.forgotPasswordText = translate('Forgot your password? ');
9
+ // Support backwards compatibility for legacy key with trailing space
10
+ this.forgotPasswordText = !hasTranslation('Forgot your password? ')
11
+ ? translate('Forgot your password?')
12
+ : translate('Forgot your password? ');
10
13
  this.signInButtonText = translate('Sign in');
11
14
  }
12
15
  get context() {
@@ -35,4 +38,4 @@ SignInComponent.ctorParameters = () => [
35
38
  SignInComponent.propDecorators = {
36
39
  dataAttr: [{ type: HostBinding, args: ['attr.data-amplify-authenticator-signin',] }]
37
40
  };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1pbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hdXRoZW50aWNhdG9yL2NvbXBvbmVudHMvc2lnbi1pbi9zaWduLWluLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFFWCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBTzVDLE1BQU0sT0FBTyxlQUFlO0lBTzFCLFlBQW1CLGFBQW1DO1FBQW5DLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQU5DLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFFckUscUJBQXFCO1FBQ2QsdUJBQWtCLEdBQUcsU0FBUyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDekQscUJBQWdCLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRVUsQ0FBQztJQUUxRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUN4QyxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVk7UUFDbEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQXFCLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVk7UUFDbkIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDbEMsQ0FBQzs7O1lBM0JGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQiwrMENBQXVDO2dCQUN2QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBUFEsb0JBQW9COzs7dUJBUzFCLFdBQVcsU0FBQyx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aGVudGljYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoZW50aWNhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L3VpJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYW1wbGlmeS1zaWduLWluJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZ24taW4uY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBTaWduSW5Db21wb25lbnQge1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1hbXBsaWZ5LWF1dGhlbnRpY2F0b3Itc2lnbmluJykgZGF0YUF0dHIgPSAnJztcblxuICAvLyB0cmFuc2xhdGVkIHBocmFzZXNcbiAgcHVibGljIGZvcmdvdFBhc3N3b3JkVGV4dCA9IHRyYW5zbGF0ZSgnRm9yZ290IHlvdXIgcGFzc3dvcmQ/ICcpO1xuICBwdWJsaWMgc2lnbkluQnV0dG9uVGV4dCA9IHRyYW5zbGF0ZSgnU2lnbiBpbicpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhdXRoZW50aWNhdG9yOiBBdXRoZW50aWNhdG9yU2VydmljZSkge31cblxuICBwdWJsaWMgZ2V0IGNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aGVudGljYXRvci5zbG90Q29udGV4dDtcbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCB7IG5hbWUsIHZhbHVlIH0gPSA8SFRNTElucHV0RWxlbWVudD5ldmVudC50YXJnZXQ7XG4gICAgdGhpcy5hdXRoZW50aWNhdG9yLnVwZGF0ZUZvcm0oeyBuYW1lLCB2YWx1ZSB9KTtcbiAgfVxuXG4gIG9uU3VibWl0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5hdXRoZW50aWNhdG9yLnN1Ym1pdEZvcm0oKTtcbiAgfVxufVxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbi1pbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hdXRoZW50aWNhdG9yL2NvbXBvbmVudHMvc2lnbi1pbi9zaWduLWluLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBTzVELE1BQU0sT0FBTyxlQUFlO0lBVTFCLFlBQW1CLGFBQW1DO1FBQW5DLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQVRDLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFFckUscUJBQXFCO1FBQ3JCLHFFQUFxRTtRQUM5RCx1QkFBa0IsR0FBRyxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQztZQUNuRSxDQUFDLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDO1lBQ3BDLENBQUMsQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUNqQyxxQkFBZ0IsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFVSxDQUFDO0lBRTFELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBWTtRQUNsQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBcUIsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN2RCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxRQUFRLENBQUMsS0FBWTtRQUNuQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzs7WUE5QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLCswQ0FBdUM7Z0JBQ3ZDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUFQUSxvQkFBb0I7Ozt1QkFTMUIsV0FBVyxTQUFDLHdDQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoZW50aWNhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2F1dGhlbnRpY2F0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyB0cmFuc2xhdGUsIGhhc1RyYW5zbGF0aW9uIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L3VpJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYW1wbGlmeS1zaWduLWluJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZ24taW4uY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBTaWduSW5Db21wb25lbnQge1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1hbXBsaWZ5LWF1dGhlbnRpY2F0b3Itc2lnbmluJykgZGF0YUF0dHIgPSAnJztcblxuICAvLyB0cmFuc2xhdGVkIHBocmFzZXNcbiAgLy8gU3VwcG9ydCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3IgbGVnYWN5IGtleSB3aXRoIHRyYWlsaW5nIHNwYWNlXG4gIHB1YmxpYyBmb3Jnb3RQYXNzd29yZFRleHQgPSAhaGFzVHJhbnNsYXRpb24oJ0ZvcmdvdCB5b3VyIHBhc3N3b3JkPyAnKVxuICAgID8gdHJhbnNsYXRlKCdGb3Jnb3QgeW91ciBwYXNzd29yZD8nKVxuICAgIDogdHJhbnNsYXRlKCdGb3Jnb3QgeW91ciBwYXNzd29yZD8gJyk7XG4gIHB1YmxpYyBzaWduSW5CdXR0b25UZXh0ID0gdHJhbnNsYXRlKCdTaWduIGluJyk7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGF1dGhlbnRpY2F0b3I6IEF1dGhlbnRpY2F0b3JTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBnZXQgY29udGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy5hdXRoZW50aWNhdG9yLnNsb3RDb250ZXh0O1xuICB9XG5cbiAgb25JbnB1dChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHsgbmFtZSwgdmFsdWUgfSA9IDxIVE1MSW5wdXRFbGVtZW50PmV2ZW50LnRhcmdldDtcbiAgICB0aGlzLmF1dGhlbnRpY2F0b3IudXBkYXRlRm9ybSh7IG5hbWUsIHZhbHVlIH0pO1xuICB9XG5cbiAgb25TdWJtaXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmF1dGhlbnRpY2F0b3Iuc3VibWl0Rm9ybSgpO1xuICB9XG59XG4iXX0=
@@ -1,7 +1,8 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, HostBinding, Input } from '@angular/core';
2
2
  export class TabItemComponent {
3
3
  constructor() {
4
4
  this.active = false;
5
+ this.display = 'block'; // emulate div behavior
5
6
  }
6
7
  }
7
8
  TabItemComponent.decorators = [
@@ -15,6 +16,7 @@ TabItemComponent.propDecorators = {
15
16
  active: [{ type: Input }],
16
17
  id: [{ type: Input }],
17
18
  labelledById: [{ type: Input }],
18
- tabIndex: [{ type: Input }]
19
+ tabIndex: [{ type: Input }],
20
+ display: [{ type: HostBinding, args: ['style.display',] }]
19
21
  };
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktYW5ndWxhci9zcmMvbGliL3ByaW1pdGl2ZXMvdGFiLWl0ZW0vdGFiLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTWpELE1BQU0sT0FBTyxnQkFBZ0I7SUFKN0I7UUFNVyxXQUFNLEdBQUcsS0FBSyxDQUFDO0lBSTFCLENBQUM7OztZQVZBLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixxUkFBd0M7YUFDekM7OztvQkFFRSxLQUFLO3FCQUNMLEtBQUs7aUJBQ0wsS0FBSzsyQkFDTCxLQUFLO3VCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FtcGxpZnktdGFiLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFiLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJJdGVtQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgYWN0aXZlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsbGVkQnlJZDogc3RyaW5nO1xuICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyO1xufVxuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktYW5ndWxhci9zcmMvbGliL3ByaW1pdGl2ZXMvdGFiLWl0ZW0vdGFiLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU05RCxNQUFNLE9BQU8sZ0JBQWdCO0lBSjdCO1FBTVcsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUlNLFlBQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyx1QkFBdUI7SUFDMUUsQ0FBQzs7O1lBWEEsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLHFSQUF3QzthQUN6Qzs7O29CQUVFLEtBQUs7cUJBQ0wsS0FBSztpQkFDTCxLQUFLOzJCQUNMLEtBQUs7dUJBQ0wsS0FBSztzQkFDTCxXQUFXLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FtcGxpZnktdGFiLWl0ZW0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFiLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJJdGVtQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgYWN0aXZlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsbGVkQnlJZDogc3RyaW5nO1xuICBASW5wdXQoKSB0YWJJbmRleDogbnVtYmVyO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKSBkaXNwbGF5ID0gJ2Jsb2NrJzsgLy8gZW11bGF0ZSBkaXYgYmVoYXZpb3Jcbn1cbiJdfQ==
@@ -2,6 +2,7 @@ import { Injectable } from '@angular/core';
2
2
  import { Logger } from '@aws-amplify/core';
3
3
  import { createAuthenticatorMachine, getSendEventAliases, getServiceContextFacade, } from '@aws-amplify/ui';
4
4
  import { interpret } from 'xstate';
5
+ import { translate } from '@aws-amplify/ui';
5
6
  import * as i0 from "@angular/core";
6
7
  const logger = new Logger('state-machine');
7
8
  /**
@@ -35,7 +36,7 @@ export class AuthenticatorService {
35
36
  */
36
37
  get error() {
37
38
  var _a;
38
- return (_a = this._facade) === null || _a === void 0 ? void 0 : _a.error;
39
+ return translate((_a = this._facade) === null || _a === void 0 ? void 0 : _a.error);
39
40
  }
40
41
  get hasValidationErrors() {
41
42
  var _a;
@@ -57,6 +58,10 @@ export class AuthenticatorService {
57
58
  var _a;
58
59
  return (_a = this._facade) === null || _a === void 0 ? void 0 : _a.validationErrors;
59
60
  }
61
+ get codeDeliveryDetails() {
62
+ var _a;
63
+ return (_a = this._facade) === null || _a === void 0 ? void 0 : _a.codeDeliveryDetails;
64
+ }
60
65
  /**
61
66
  * Service facades
62
67
  */
@@ -133,4 +138,4 @@ AuthenticatorService.decorators = [
133
138
  providedIn: 'root',
134
139
  },] }
135
140
  ];
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2F1dGhlbnRpY2F0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBTUwsMEJBQTBCLEVBQzFCLG1CQUFtQixFQUNuQix1QkFBdUIsR0FFeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQVMsU0FBUyxFQUFnQixNQUFNLFFBQVEsQ0FBQzs7QUFHeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7QUFFM0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sb0JBQW9CO0lBT3hCLFlBQVksQ0FBQyxFQUNsQixZQUFZLEVBQ1osZUFBZSxFQUNmLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIsZUFBZSxHQUNhO1FBQzVCLE1BQU0sT0FBTyxHQUFHLDBCQUEwQixDQUFDO1lBQ3pDLFlBQVk7WUFDWixlQUFlO1lBQ2YsUUFBUTtZQUNSLGdCQUFnQjtZQUNoQixlQUFlO1NBQ2hCLENBQUMsQ0FBQztRQUVILE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDckMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLGFBQWE7U0FDakQsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRVgsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQyxL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Q2pELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzlDO2FBQU07WUFDTCxNQUFNLENBQUMsS0FBSyxDQUNWLHVIQUF1SCxDQUN4SCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsd0NBQXdDO0lBQ2pDLElBQUksQ0FBQyxLQUF1QjtRQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDOzs7O1lBcEtGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAnQGF3cy1hbXBsaWZ5L2NvcmUnO1xuaW1wb3J0IHtcbiAgQXV0aENvbnRleHQsXG4gIEF1dGhlbnRpY2F0b3JNYWNoaW5lT3B0aW9ucyxcbiAgQXV0aEV2ZW50LFxuICBBdXRoSW50ZXJwcmV0ZXIsXG4gIEF1dGhNYWNoaW5lU3RhdGUsXG4gIGNyZWF0ZUF1dGhlbnRpY2F0b3JNYWNoaW5lLFxuICBnZXRTZW5kRXZlbnRBbGlhc2VzLFxuICBnZXRTZXJ2aWNlQ29udGV4dEZhY2FkZSxcbiAgZ2V0U2VydmljZUZhY2FkZSxcbn0gZnJvbSAnQGF3cy1hbXBsaWZ5L3VpJztcbmltcG9ydCB7IEV2ZW50LCBpbnRlcnByZXQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3hzdGF0ZSc7XG5pbXBvcnQgeyBBdXRoU3Vic2NyaXB0aW9uQ2FsbGJhY2sgfSBmcm9tICcuLi9jb21tb24nO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdzdGF0ZS1tYWNoaW5lJyk7XG5cbi8qKlxuICogQXV0aGVudGljYXRvclNlcnZpY2UgcHJvdmlkZXMgYWNjZXNzIHRvIHRoZSBhdXRoZW50aWNhdG9yIHN0YXRlIGFuZCBjb250ZXh0LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290JywgLy8gZW5zdXJlIHdlIGhhdmUgYSBzaW5nbGV0b24gc2VydmljZVxufSlcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdG9yU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2F1dGhTdGF0ZTogQXV0aE1hY2hpbmVTdGF0ZTtcbiAgcHJpdmF0ZSBfYXV0aFNlcnZpY2U6IEF1dGhJbnRlcnByZXRlcjtcbiAgcHJpdmF0ZSBfc2VuZEV2ZW50QWxpYXNlczogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0U2VuZEV2ZW50QWxpYXNlcz47XG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIF9mYWNhZGU6IFJldHVyblR5cGU8dHlwZW9mIGdldFNlcnZpY2VDb250ZXh0RmFjYWRlPjtcblxuICBwdWJsaWMgc3RhcnRNYWNoaW5lKHtcbiAgICBpbml0aWFsU3RhdGUsXG4gICAgbG9naW5NZWNoYW5pc21zLFxuICAgIHNlcnZpY2VzLFxuICAgIHNpZ25VcEF0dHJpYnV0ZXMsXG4gICAgc29jaWFsUHJvdmlkZXJzLFxuICB9OiBBdXRoZW50aWNhdG9yTWFjaGluZU9wdGlvbnMpIHtcbiAgICBjb25zdCBtYWNoaW5lID0gY3JlYXRlQXV0aGVudGljYXRvck1hY2hpbmUoe1xuICAgICAgaW5pdGlhbFN0YXRlLFxuICAgICAgbG9naW5NZWNoYW5pc21zLFxuICAgICAgc2VydmljZXMsXG4gICAgICBzaWduVXBBdHRyaWJ1dGVzLFxuICAgICAgc29jaWFsUHJvdmlkZXJzLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbnRlcnByZXQobWFjaGluZSwge1xuICAgICAgZGV2VG9vbHM6IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnLFxuICAgIH0pLnN0YXJ0KCk7XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSBhdXRoU2VydmljZS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICB0aGlzLl9hdXRoU3RhdGUgPSBzdGF0ZTtcbiAgICAgIHRoaXMuX2ZhY2FkZSA9IGdldFNlcnZpY2VDb250ZXh0RmFjYWRlKHN0YXRlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3NlbmRFdmVudEFsaWFzZXMgPSBnZXRTZW5kRXZlbnRBbGlhc2VzKGF1dGhTZXJ2aWNlLnNlbmQpO1xuICAgIHRoaXMuX2F1dGhTZXJ2aWNlID0gYXV0aFNlcnZpY2U7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb250ZXh0IGZhY2FkZXNcbiAgICovXG5cbiAgcHVibGljIGdldCBlcnJvcigpIHtcbiAgICByZXR1cm4gdGhpcy5fZmFjYWRlPy5lcnJvcjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzVmFsaWRhdGlvbkVycm9ycygpIHtcbiAgICByZXR1cm4gdGhpcy5fZmFjYWRlPy5oYXNWYWxpZGF0aW9uRXJyb3JzO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1BlbmRpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZhY2FkZT8uaXNQZW5kaW5nO1xuICB9XG5cbiAgcHVibGljIGdldCByb3V0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZmFjYWRlPy5yb3V0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fZmFjYWRlPy51c2VyO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWxpZGF0aW9uRXJyb3JzKCkge1xuICAgIHJldHVybiB0aGlzLl9mYWNhZGU/LnZhbGlkYXRpb25FcnJvcnM7XG4gIH1cblxuICAvKipcbiAgICogU2VydmljZSBmYWNhZGVzXG4gICAqL1xuXG4gIHB1YmxpYyBnZXQgdXBkYXRlRm9ybSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VuZEV2ZW50QWxpYXNlcy51cGRhdGVGb3JtO1xuICB9XG5cbiAgcHVibGljIGdldCB1cGRhdGVCbHVyKCkge1xuICAgIHJldHVybiB0aGlzLl9zZW5kRXZlbnRBbGlhc2VzLnVwZGF0ZUJsdXI7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlc2VuZENvZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbmRFdmVudEFsaWFzZXMucmVzZW5kQ29kZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2lnbk91dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VuZEV2ZW50QWxpYXNlcy5zaWduT3V0O1xuICB9XG5cbiAgcHVibGljIGdldCBzdWJtaXRGb3JtKCkge1xuICAgIHJldHVybiB0aGlzLl9zZW5kRXZlbnRBbGlhc2VzLnN1Ym1pdEZvcm07XG4gIH1cblxuICAvKipcbiAgICogVHJhbnNpdGlvbiBmYWNhZGVzXG4gICAqL1xuXG4gIHB1YmxpYyBnZXQgdG9GZWRlcmF0ZWRTaWduSW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbmRFdmVudEFsaWFzZXMudG9GZWRlcmF0ZWRTaWduSW47XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvUmVzZXRQYXNzd29yZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VuZEV2ZW50QWxpYXNlcy50b1Jlc2V0UGFzc3dvcmQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvU2lnbkluKCkge1xuICAgIHJldHVybiB0aGlzLl9zZW5kRXZlbnRBbGlhc2VzLnRvU2lnbkluO1xuICB9XG5cbiAgcHVibGljIGdldCB0b1NpZ25VcCgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VuZEV2ZW50QWxpYXNlcy50b1NpZ25VcDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2tpcFZlcmlmaWNhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VuZEV2ZW50QWxpYXNlcy5za2lwVmVyaWZpY2F0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEludGVybmFsIHV0aWxpdHkgZnVuY3Rpb25zXG4gICAqL1xuXG4gIC8qKiBAZGVwcmVjYXRlZCBGb3IgaW50ZXJuYWwgdXNlIG9ubHkgKi9cbiAgcHVibGljIGdldCBhdXRoU3RhdGUoKTogQXV0aE1hY2hpbmVTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dGhTdGF0ZTtcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCBGb3IgaW50ZXJuYWwgdXNlIG9ubHkgKi9cbiAgcHVibGljIGdldCBhdXRoU2VydmljZSgpOiBBdXRoSW50ZXJwcmV0ZXIge1xuICAgIHJldHVybiB0aGlzLl9hdXRoU2VydmljZTtcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCBGb3IgaW50ZXJuYWwgdXNlIG9ubHkgKi9cbiAgcHVibGljIGdldCBjb250ZXh0KCk6IEF1dGhDb250ZXh0IHtcbiAgICByZXR1cm4gdGhpcy5fYXV0aFN0YXRlLmNvbnRleHQ7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgRm9yIGludGVybmFsIHVzZSBvbmx5ICovXG4gIHB1YmxpYyBnZXQgc2xvdENvbnRleHQoKSB7XG4gICAgY29uc3Qgc2xvdENvbnRleHQgPSB7XG4gICAgICAuLi50aGlzLl9mYWNhZGUsXG4gICAgICAuLi50aGlzLl9zZW5kRXZlbnRBbGlhc2VzLFxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc2xvdENvbnRleHQsXG4gICAgICAkaW1wbGljaXQ6IHsgLi4uc2xvdENvbnRleHQgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEBkZXByZWNhdGVkIEZvciBpbnRlcm5hbCB1c2Ugb25seSAqL1xuICBwdWJsaWMgc3Vic2NyaWJlKGNhbGxiYWNrOiBBdXRoU3Vic2NyaXB0aW9uQ2FsbGJhY2spIHtcbiAgICBpZiAodGhpcy5fYXV0aFNlcnZpY2UpIHtcbiAgICAgIHJldHVybiB0aGlzLl9hdXRoU2VydmljZS5zdWJzY3JpYmUoY2FsbGJhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2dnZXIuZXJyb3IoXG4gICAgICAgICdTdWJzY3JpcHRpb24gYXR0ZW1wdGVkIGJlZm9yZSBtYWNoaW5lIHdhcyBjcmVhdGVkLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyBvbiB0aGUgbGlicmFyeSwgcGxlYXNlIGNvbnNpZGVyIGZpbGluZyBhIGJ1Zy4nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCBGb3IgaW50ZXJuYWwgdXNlIG9ubHkgKi9cbiAgcHVibGljIHNlbmQoZXZlbnQ6IEV2ZW50PEF1dGhFdmVudD4pIHtcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLnNlbmQoZXZlbnQpO1xuICB9XG59XG4iXX0=
141
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2F1dGhlbnRpY2F0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBTUwsMEJBQTBCLEVBQzFCLG1CQUFtQixFQUNuQix1QkFBdUIsR0FFeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQVMsU0FBUyxFQUFnQixNQUFNLFFBQVEsQ0FBQztBQUV4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRTVDLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBRTNDOztHQUVHO0FBSUgsTUFBTSxPQUFPLG9CQUFvQjtJQU94QixZQUFZLENBQUMsRUFDbEIsWUFBWSxFQUNaLGVBQWUsRUFDZixRQUFRLEVBQ1IsZ0JBQWdCLEVBQ2hCLGVBQWUsR0FDYTtRQUM1QixNQUFNLE9BQU8sR0FBRywwQkFBMEIsQ0FBQztZQUN6QyxZQUFZO1lBQ1osZUFBZTtZQUNmLFFBQVE7WUFDUixnQkFBZ0I7WUFDaEIsZUFBZTtTQUNoQixDQUFDLENBQUM7UUFFSCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsT0FBTyxFQUFFO1lBQ3JDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxhQUFhO1NBQ2pELENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVYLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25ELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxD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QUFDLE9BQU8sR0FDWixJQUFJLENBQUMsaUJBQWlCLENBQzFCLENBQUM7UUFFRix1Q0FDSyxXQUFXLEtBQ2QsU0FBUyxvQkFBTyxXQUFXLEtBQzNCO0lBQ0osQ0FBQztJQUVELHdDQUF3QztJQUNqQyxTQUFTLENBQUMsUUFBa0M7UUFDakQsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDOUM7YUFBTTtZQUNMLE1BQU0sQ0FBQyxLQUFLLENBQ1YsdUhBQXVILENBQ3hILENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCx3Q0FBd0M7SUFDakMsSUFBSSxDQUFDLEtBQXVCO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7Ozs7WUF4S0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tICdAYXdzLWFtcGxpZnkvY29yZSc7XG5pbXBvcnQge1xuICBBdXRoQ29udGV4dCxcbiAgQXV0aGVudGljYXRvck1hY2hpbmVPcHRpb25zLFxuICBBdXRoRXZlbnQsXG4gIEF1dGhJbnRlcnByZXRlcixcbiAgQXV0aE1hY2hpbmVTdGF0ZSxcbiAgY3JlYXRlQXV0aGVudGljYXRvck1hY2hpbmUsXG4gIGdldFNlbmRFdmVudEFsaWFzZXMsXG4gIGdldFNlcnZpY2VDb250ZXh0RmFjYWRlLFxuICBnZXRTZXJ2aWNlRmFjYWRlLFxufSBmcm9tICdAYXdzLWFtcGxpZnkvdWknO1xuaW1wb3J0IHsgRXZlbnQsIGludGVycHJldCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAneHN0YXRlJztcbmltcG9ydCB7IEF1dGhTdWJzY3JpcHRpb25DYWxsYmFjayB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdAYXdzLWFtcGxpZnkvdWknO1xuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCdzdGF0ZS1tYWNoaW5lJyk7XG5cbi8qKlxuICogQXV0aGVudGljYXRvclNlcnZpY2UgcHJvdmlkZXMgYWNjZXNzIHRvIHRoZSBhdXRoZW50aWNhdG9yIHN0YXRlIGFuZCBjb250ZXh0LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290JywgLy8gZW5zdXJlIHdlIGhhdmUgYSBzaW5nbGV0b24gc2VydmljZVxufSlcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdG9yU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2F1dGhTdGF0ZTogQXV0aE1hY2hpbmVTdGF0ZTtcbiAgcHJpdmF0ZSBfYXV0aFNlcnZpY2U6IEF1dGhJbnRlcnByZXRlcjtcbiAgcHJpdmF0ZSBfc2VuZEV2ZW50QWxpYXNlczogUmV0dXJuVHlwZTx0eXBlb2YgZ2V0U2VuZEV2ZW50QWxpYXNlcz47XG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIF9mYWNhZGU6IFJldHVyblR5cGU8dHlwZW9mIGdldFNlcnZpY2VDb250ZXh0RmFjYWRlPjtcblxuICBwdWJsaWMgc3RhcnRNYWNoaW5lKHtcbiAgICBpbml0aWFsU3RhdGUsXG4gICAgbG9naW5NZWNoYW5pc21zLFxuICAgIHNlcnZpY2VzLFxuICAgIHNpZ25VcEF0dHJpYnV0ZXMsXG4gICAgc29jaWFsUHJvdmlkZXJzLFxuICB9OiBBdXRoZW50aWNhdG9yTWFjaGluZU9wdGlvbnMpIHtcbiAgICBjb25zdCBtYWNoaW5lID0gY3JlYXRlQXV0aGVudGljYXRvck1hY2hpbmUoe1xuICAgICAgaW5pdGlhbFN0YXRlLFxuICAgICAgbG9naW5NZWNoYW5pc21zLFxuICAgICAgc2VydmljZXMsXG4gICAgICBzaWduVXBBdHRyaWJ1dGVzLFxuICAgICAgc29jaWFsUHJvdmlkZXJzLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbnRlcnByZXQobWFjaGluZSwge1xuICAgICAgZGV2VG9vbHM6IHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnLFxuICAgIH0pLnN0YXJ0KCk7XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSBhdXRoU2VydmljZS5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICB0aGlzLl9hdXRoU3RhdGUgPSBzdGF0ZTtcbiAgICAgIHRoaXMuX2ZhY2FkZSA9IGdldFNlcnZpY2VDb250ZXh0RmFjYWRlKHN0YXRlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3NlbmRFdmVudEFsaWFzZXMgPSBnZXRTZW5kRXZlbnRBbGlhc2VzKGF1dGhTZXJ2aWNlLnNlbmQpO1xuICAgIHRoaXMuX2F1dGhTZXJ2aWNlID0gYXV0aFNlcnZpY2U7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb250ZXh0IGZhY2FkZXNcbiAgICovXG5cbiAgcHVibGljIGdldCBlcnJvcigpIHtcbiAgICByZXR1cm4gdHJhbnNsYXRlKHRoaXMuX2ZhY2FkZT8uZXJyb3IpO1xuICB9XG5cbiAgcHVibGljIGdldCBoYXNWYWxpZGF0aW9uRXJyb3JzKCkge1xuICAgIHJldHVybiB0aGlzLl9mYWNhZGU/Lmhhc1ZhbGlkYXRpb25FcnJvcnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzUGVuZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fZmFjYWRlPy5pc1BlbmRpbmc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJvdXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9mYWNhZGU/LnJvdXRlO1xuICB9XG5cbiAgcHVibGljIGdldCB1c2VyKCkge1xuICAgIHJldHVybiB0aGlzLl9mYWNhZGU/LnVzZXI7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbGlkYXRpb25FcnJvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZhY2FkZT8udmFsaWRhdGlvbkVycm9ycztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29kZURlbGl2ZXJ5RGV0YWlscygpIHtcbiAgICByZXR1cm4gdGhpcy5fZmFjYWRlPy5jb2RlRGVsaXZlcnlEZXRhaWxzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlcnZpY2UgZmFjYWRlc1xuICAgKi9cblxuICBwdWJsaWMgZ2V0IHVwZGF0ZUZvcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbmRFdmVudEFsaWFzZXMudXBkYXRlRm9ybTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdXBkYXRlQmx1cigpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VuZEV2ZW50QWxpYXNlcy51cGRhdGVCbHVyO1xuICB9XG5cbiAgcHVibGljIGdldCByZXNlbmRDb2RlKCkge1xuICAgIHJldHVybiB0aGlzLl9zZW5kRXZlbnRBbGlhc2VzLnJlc2VuZENvZGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNpZ25PdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbmRFdmVudEFsaWFzZXMuc2lnbk91dDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3VibWl0Rm9ybSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VuZEV2ZW50QWxpYXNlcy5zdWJtaXRGb3JtO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zaXRpb24gZmFjYWRlc1xuICAgKi9cblxuICBwdWJsaWMgZ2V0IHRvRmVkZXJhdGVkU2lnbkluKCkge1xuICAgIHJldHVybiB0aGlzLl9zZW5kRXZlbnRBbGlhc2VzLnRvRmVkZXJhdGVkU2lnbkluO1xuICB9XG5cbiAgcHVibGljIGdldCB0b1Jlc2V0UGFzc3dvcmQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbmRFdmVudEFsaWFzZXMudG9SZXNldFBhc3N3b3JkO1xuICB9XG5cbiAgcHVibGljIGdldCB0b1NpZ25JbigpIHtcbiAgICByZXR1cm4gdGhpcy5fc2VuZEV2ZW50QWxpYXNlcy50b1NpZ25JbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdG9TaWduVXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbmRFdmVudEFsaWFzZXMudG9TaWduVXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNraXBWZXJpZmljYXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbmRFdmVudEFsaWFzZXMuc2tpcFZlcmlmaWNhdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcm5hbCB1dGlsaXR5IGZ1bmN0aW9uc1xuICAgKi9cblxuICAvKiogQGRlcHJlY2F0ZWQgRm9yIGludGVybmFsIHVzZSBvbmx5ICovXG4gIHB1YmxpYyBnZXQgYXV0aFN0YXRlKCk6IEF1dGhNYWNoaW5lU3RhdGUge1xuICAgIHJldHVybiB0aGlzLl9hdXRoU3RhdGU7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgRm9yIGludGVybmFsIHVzZSBvbmx5ICovXG4gIHB1YmxpYyBnZXQgYXV0aFNlcnZpY2UoKTogQXV0aEludGVycHJldGVyIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0aFNlcnZpY2U7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgRm9yIGludGVybmFsIHVzZSBvbmx5ICovXG4gIHB1YmxpYyBnZXQgY29udGV4dCgpOiBBdXRoQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dGhTdGF0ZS5jb250ZXh0O1xuICB9XG5cbiAgLyoqIEBkZXByZWNhdGVkIEZvciBpbnRlcm5hbCB1c2Ugb25seSAqL1xuICBwdWJsaWMgZ2V0IHNsb3RDb250ZXh0KCkge1xuICAgIGNvbnN0IHNsb3RDb250ZXh0ID0ge1xuICAgICAgLi4udGhpcy5fZmFjYWRlLFxuICAgICAgLi4udGhpcy5fc2VuZEV2ZW50QWxpYXNlcyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnNsb3RDb250ZXh0LFxuICAgICAgJGltcGxpY2l0OiB7IC4uLnNsb3RDb250ZXh0IH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCBGb3IgaW50ZXJuYWwgdXNlIG9ubHkgKi9cbiAgcHVibGljIHN1YnNjcmliZShjYWxsYmFjazogQXV0aFN1YnNjcmlwdGlvbkNhbGxiYWNrKSB7XG4gICAgaWYgKHRoaXMuX2F1dGhTZXJ2aWNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5fYXV0aFNlcnZpY2Uuc3Vic2NyaWJlKGNhbGxiYWNrKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICAnU3Vic2NyaXB0aW9uIGF0dGVtcHRlZCBiZWZvcmUgbWFjaGluZSB3YXMgY3JlYXRlZC4gVGhpcyBpcyBsaWtlbHkgYSBidWcgb24gdGhlIGxpYnJhcnksIHBsZWFzZSBjb25zaWRlciBmaWxpbmcgYSBidWcuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgRm9yIGludGVybmFsIHVzZSBvbmx5ICovXG4gIHB1YmxpYyBzZW5kKGV2ZW50OiBFdmVudDxBdXRoRXZlbnQ+KSB7XG4gICAgdGhpcy5hdXRoU2VydmljZS5zZW5kKGV2ZW50KTtcbiAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Directive, TemplateRef, Input, Injectable, Component, ViewEncapsulation, ContentChildren, HostBinding, EventEmitter, Output, NgModule } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
- import { createAuthenticatorMachine, getServiceContextFacade, getSendEventAliases, translate, getActorContext, AuthChallengeNames, FederatedIdentityProviders, authInputAttributes, countryDialCodes, getAliasInfoFromContext, getActorState } from '@aws-amplify/ui';
4
+ import { createAuthenticatorMachine, getServiceContextFacade, getSendEventAliases, translate, getActorContext, AuthChallengeNames, FederatedIdentityProviders, authInputAttributes, countryDialCodes, getAliasInfoFromContext, hasTranslation, getActorState } from '@aws-amplify/ui';
5
5
  import { Logger } from '@aws-amplify/core';
6
6
  import { interpret } from 'xstate';
7
7
  import { Logger as Logger$1, Auth } from 'aws-amplify';
@@ -82,7 +82,7 @@ class AuthenticatorService {
82
82
  */
83
83
  get error() {
84
84
  var _a;
85
- return (_a = this._facade) === null || _a === void 0 ? void 0 : _a.error;
85
+ return translate((_a = this._facade) === null || _a === void 0 ? void 0 : _a.error);
86
86
  }
87
87
  get hasValidationErrors() {
88
88
  var _a;
@@ -104,6 +104,10 @@ class AuthenticatorService {
104
104
  var _a;
105
105
  return (_a = this._facade) === null || _a === void 0 ? void 0 : _a.validationErrors;
106
106
  }
107
+ get codeDeliveryDetails() {
108
+ var _a;
109
+ return (_a = this._facade) === null || _a === void 0 ? void 0 : _a.codeDeliveryDetails;
110
+ }
107
111
  /**
108
112
  * Service facades
109
113
  */
@@ -231,6 +235,10 @@ class AuthenticatorComponent {
231
235
  this.authenticator.toSignIn();
232
236
  }
233
237
  }
238
+ hasTabs() {
239
+ const route = this.authenticator.route;
240
+ return route === 'signIn' || route === 'signUp';
241
+ }
234
242
  mapCustomComponents(componentQuery) {
235
243
  if (!componentQuery)
236
244
  return {};
@@ -244,7 +252,7 @@ class AuthenticatorComponent {
244
252
  AuthenticatorComponent.decorators = [
245
253
  { type: Component, args: [{
246
254
  selector: 'amplify-authenticator',
247
- template: "<div data-amplify-authenticator [attr.data-variation]=\"variation\">\n <div data-amplify-container>\n <amplify-slot name=\"header\" [context]=\"context\"></amplify-slot>\n <div data-amplify-router>\n <amplify-tabs\n (tabChange)=\"onTabChange()\"\n *ngIf=\"route === 'signIn' || route === 'signUp'\"\n >\n <amplify-tab-item [title]=\"signInTitle\" [active]=\"route === 'signIn'\">\n <!-- signIn component -->\n <amplify-slot\n name=\"sign-in\"\n [context]=\"context\"\n *ngIf=\"route === 'signIn'\"\n >\n <amplify-sign-in></amplify-sign-in>\n </amplify-slot>\n </amplify-tab-item>\n <amplify-tab-item [title]=\"signUpTitle\" [active]=\"route === 'signUp'\">\n <!-- signUp component -->\n <amplify-slot\n name=\"sign-up\"\n [context]=\"context\"\n *ngIf=\"route === 'signUp'\"\n >\n <amplify-sign-up></amplify-sign-up>\n </amplify-slot>\n </amplify-tab-item>\n </amplify-tabs>\n\n <!-- confirmSignUp content -->\n <amplify-slot\n name=\"confirm-sign-up\"\n [context]=\"context\"\n *ngIf=\"route === 'confirmSignUp'\"\n >\n <amplify-confirm-sign-up></amplify-confirm-sign-up>\n </amplify-slot>\n\n <!-- confirmSignIn content -->\n <amplify-slot\n name=\"confirm-sign-in\"\n [context]=\"context\"\n *ngIf=\"route === 'confirmSignIn'\"\n >\n <amplify-confirm-sign-in></amplify-confirm-sign-in>\n </amplify-slot>\n\n <!-- setupTotp content -->\n <amplify-slot\n name=\"setup-totp\"\n [context]=\"context\"\n *ngIf=\"route === 'setupTOTP'\"\n >\n <amplify-setup-totp></amplify-setup-totp>\n </amplify-slot>\n\n <!-- forceNewPassword content -->\n <amplify-slot\n name=\"force-new-password\"\n [context]=\"context\"\n *ngIf=\"route === 'forceNewPassword'\"\n >\n <amplify-force-new-password></amplify-force-new-password>\n </amplify-slot>\n\n <!-- resetPassword content -->\n <amplify-slot\n name=\"reset-password\"\n [context]=\"context\"\n *ngIf=\"route === 'resetPassword'\"\n >\n <amplify-reset-password></amplify-reset-password>\n </amplify-slot>\n\n <!-- confirmResetPassword content -->\n <amplify-slot\n name=\"confirm-reset-password\"\n [context]=\"context\"\n *ngIf=\"route === 'confirmResetPassword'\"\n >\n <amplify-confirm-reset-password></amplify-confirm-reset-password>\n </amplify-slot>\n\n <!-- verifyUser content -->\n <amplify-slot\n name=\"verify-user\"\n [context]=\"context\"\n *ngIf=\"route === 'verifyUser'\"\n >\n <amplify-verify-user></amplify-verify-user>\n </amplify-slot>\n\n <!-- confirmVerifyUser content -->\n <amplify-slot\n name=\"confirm-verify-user\"\n [context]=\"context\"\n *ngIf=\"route === 'confirmVerifyUser'\"\n >\n <amplify-confirm-verify-user></amplify-confirm-verify-user>\n </amplify-slot>\n </div>\n\n <amplify-slot name=\"footer\" [context]=\"context\"></amplify-slot>\n </div>\n</div>\n\n<!-- signedIn content is rendered outside authenticator so it's not styled by authenticator -->\n<amplify-slot\n name=\"authenticated\"\n [context]=\"context\"\n *ngIf=\"route === 'authenticated'\"\n>\n <ng-content></ng-content>\n</amplify-slot>\n",
255
+ template: "<div data-amplify-authenticator [attr.data-variation]=\"variation\">\n <div data-amplify-container>\n <amplify-slot name=\"header\" [context]=\"context\"></amplify-slot>\n <div\n data-amplify-router\n [attr.data-amplify-router-content]=\"hasTabs() ? undefined : ''\"\n >\n <amplify-tabs\n (tabChange)=\"onTabChange()\"\n *ngIf=\"route === 'signIn' || route === 'signUp'\"\n >\n <amplify-tab-item\n [title]=\"signInTitle\"\n [active]=\"route === 'signIn'\"\n data-amplify-router-content\n >\n <!-- signIn component -->\n <amplify-slot\n name=\"sign-in\"\n [context]=\"context\"\n *ngIf=\"route === 'signIn'\"\n >\n <amplify-sign-in></amplify-sign-in>\n </amplify-slot>\n </amplify-tab-item>\n <amplify-tab-item\n [title]=\"signUpTitle\"\n [active]=\"route === 'signUp'\"\n data-amplify-router-content\n >\n <!-- signUp component -->\n <amplify-slot\n name=\"sign-up\"\n [context]=\"context\"\n *ngIf=\"route === 'signUp'\"\n >\n <amplify-sign-up></amplify-sign-up>\n </amplify-slot>\n </amplify-tab-item>\n </amplify-tabs>\n\n <!-- confirmSignUp content -->\n <amplify-slot\n name=\"confirm-sign-up\"\n [context]=\"context\"\n *ngIf=\"route === 'confirmSignUp'\"\n >\n <amplify-confirm-sign-up></amplify-confirm-sign-up>\n </amplify-slot>\n\n <!-- confirmSignIn content -->\n <amplify-slot\n name=\"confirm-sign-in\"\n [context]=\"context\"\n *ngIf=\"route === 'confirmSignIn'\"\n >\n <amplify-confirm-sign-in></amplify-confirm-sign-in>\n </amplify-slot>\n\n <!-- setupTotp content -->\n <amplify-slot\n name=\"setup-totp\"\n [context]=\"context\"\n *ngIf=\"route === 'setupTOTP'\"\n >\n <amplify-setup-totp></amplify-setup-totp>\n </amplify-slot>\n\n <!-- forceNewPassword content -->\n <amplify-slot\n name=\"force-new-password\"\n [context]=\"context\"\n *ngIf=\"route === 'forceNewPassword'\"\n >\n <amplify-force-new-password></amplify-force-new-password>\n </amplify-slot>\n\n <!-- resetPassword content -->\n <amplify-slot\n name=\"reset-password\"\n [context]=\"context\"\n *ngIf=\"route === 'resetPassword'\"\n >\n <amplify-reset-password></amplify-reset-password>\n </amplify-slot>\n\n <!-- confirmResetPassword content -->\n <amplify-slot\n name=\"confirm-reset-password\"\n [context]=\"context\"\n *ngIf=\"route === 'confirmResetPassword'\"\n >\n <amplify-confirm-reset-password></amplify-confirm-reset-password>\n </amplify-slot>\n\n <!-- verifyUser content -->\n <amplify-slot\n name=\"verify-user\"\n [context]=\"context\"\n *ngIf=\"route === 'verifyUser'\"\n >\n <amplify-verify-user></amplify-verify-user>\n </amplify-slot>\n\n <!-- confirmVerifyUser content -->\n <amplify-slot\n name=\"confirm-verify-user\"\n [context]=\"context\"\n *ngIf=\"route === 'confirmVerifyUser'\"\n >\n <amplify-confirm-verify-user></amplify-confirm-verify-user>\n </amplify-slot>\n </div>\n\n <amplify-slot name=\"footer\" [context]=\"context\"></amplify-slot>\n </div>\n</div>\n\n<!-- signedIn content is rendered outside authenticator so it's not styled by authenticator -->\n<amplify-slot\n name=\"authenticated\"\n [context]=\"context\"\n *ngIf=\"route === 'authenticated'\"\n>\n <ng-content></ng-content>\n</amplify-slot>\n",
248
256
  providers: [CustomComponentsService],
249
257
  encapsulation: ViewEncapsulation.None
250
258
  },] }
@@ -364,6 +372,22 @@ class ConfirmSignUpComponent {
364
372
  get context() {
365
373
  return this.authenticator.slotContext;
366
374
  }
375
+ get confirmSignUpHeading() {
376
+ const { codeDeliveryDetails: { DeliveryMedium } = {} } = this.authenticator;
377
+ return DeliveryMedium === 'EMAIL'
378
+ ? translate('We Emailed You')
379
+ : DeliveryMedium === 'SMS'
380
+ ? translate('We Texted You')
381
+ : translate('We Sent A Code');
382
+ }
383
+ get subtitleText() {
384
+ const { codeDeliveryDetails: { DeliveryMedium, Destination } = {} } = this.authenticator;
385
+ return DeliveryMedium === 'EMAIL'
386
+ ? `Your code is on the way. To log in, enter the code we emailed to ${Destination}. It may take a minute to arrive.`
387
+ : DeliveryMedium === 'SMS'
388
+ ? `Your code is on the way. To log in, enter the code we texted to ${Destination}. It may take a minute to arrive.`
389
+ : translate(`Your code is on the way. To log in, enter the code we sent you. It may take a minute to arrive.`);
390
+ }
367
391
  onInput(event) {
368
392
  event.preventDefault();
369
393
  const { name, value } = event.target;
@@ -377,7 +401,7 @@ class ConfirmSignUpComponent {
377
401
  ConfirmSignUpComponent.decorators = [
378
402
  { type: Component, args: [{
379
403
  selector: 'amplify-confirm-sign-up',
380
- template: "<div data-amplify-container>\n <form data-amplify-form (submit)=\"onSubmit($event)\" (input)=\"onInput($event)\">\n <fieldset\n class=\"amplify-flex\"\n style=\"flex-direction: column\"\n data-amplify-fieldset\n [disabled]=\"context.isPending\"\n >\n <amplify-slot name=\"confirm-sign-up-header\" [context]=\"context\">\n <h3 class=\"amplify-heading\">{{ this.headerText }}</h3>\n </amplify-slot>\n <amplify-form-field\n name=\"confirmation_code\"\n autocomplete=\"one-time-code\"\n ></amplify-form-field>\n\n <button amplify-button variation=\"primary\" fullWidth=\"true\" type=\"submit\">\n {{ confirmText }}\n </button>\n <button\n amplify-button\n fontWeight=\"normal\"\n (click)=\"authenticator.resendCode()\"\n >\n {{ resendCodeText }}\n </button>\n </fieldset>\n\n <amplify-error *ngIf=\"context.error\">\n {{ authenticator.error }}\n </amplify-error>\n <amplify-slot\n name=\"confirm-sign-up-footer\"\n [context]=\"context\"\n ></amplify-slot>\n </form>\n</div>\n"
404
+ template: "<div data-amplify-container>\n <form data-amplify-form (submit)=\"onSubmit($event)\" (input)=\"onInput($event)\">\n <fieldset\n class=\"amplify-flex\"\n style=\"flex-direction: column\"\n data-amplify-fieldset\n [disabled]=\"context.isPending\"\n >\n <amplify-slot name=\"confirm-sign-up-header\" [context]=\"context\">\n <h3 class=\"amplify-heading\" style=\"font-size: 1.5rem\">\n {{ confirmSignUpHeading }}\n </h3>\n </amplify-slot>\n <span style=\"margin-bottom: 1rem\">\n {{ subtitleText }}\n </span>\n <amplify-form-field\n name=\"confirmation_code\"\n autocomplete=\"one-time-code\"\n ></amplify-form-field>\n\n <button amplify-button variation=\"primary\" fullWidth=\"true\" type=\"submit\">\n {{ confirmText }}\n </button>\n <button\n amplify-button\n fontWeight=\"normal\"\n (click)=\"authenticator.resendCode()\"\n >\n {{ resendCodeText }}\n </button>\n </fieldset>\n\n <amplify-error *ngIf=\"context.error\">\n {{ authenticator.error }}\n </amplify-error>\n <amplify-slot\n name=\"confirm-sign-up-footer\"\n [context]=\"context\"\n ></amplify-slot>\n </form>\n</div>\n"
381
405
  },] }
382
406
  ];
383
407
  ConfirmSignUpComponent.ctorParameters = () => [
@@ -568,7 +592,7 @@ class FormFieldComponent {
568
592
  get error() {
569
593
  const formContext = getActorContext(this.authenticator.authState);
570
594
  const { validationError } = formContext;
571
- return validationError[this.name];
595
+ return translate(validationError[this.name]);
572
596
  }
573
597
  onBlur($event) {
574
598
  let { name } = $event.target;
@@ -672,6 +696,8 @@ class SetupTotpComponent {
672
696
  this.dataAttr = '';
673
697
  this.headerText = translate('Setup TOTP');
674
698
  this.qrCodeSource = '';
699
+ this.secretKey = '';
700
+ this.copyTextLabel = translate('COPY');
675
701
  // translated texts
676
702
  this.backToSignInText = translate('Back to Sign In');
677
703
  this.confirmText = translate('Confirm');
@@ -689,9 +715,9 @@ class SetupTotpComponent {
689
715
  const actorContext = getActorContext(state);
690
716
  const { user } = actorContext;
691
717
  try {
692
- const secretKey = yield Auth.setupTOTP(user);
718
+ this.secretKey = yield Auth.setupTOTP(user);
693
719
  const issuer = 'AWSCognito';
694
- const totpCode = `otpauth://totp/${issuer}:${user.username}?secret=${secretKey}&issuer=${issuer}`;
720
+ const totpCode = `otpauth://totp/${issuer}:${user.username}?secret=${this.secretKey}&issuer=${issuer}`;
695
721
  logger.info('totp code was generated:', totpCode);
696
722
  this.qrCodeSource = yield QRCode.toDataURL(totpCode);
697
723
  }
@@ -709,11 +735,15 @@ class SetupTotpComponent {
709
735
  event.preventDefault();
710
736
  this.authenticator.submitForm();
711
737
  }
738
+ copyText() {
739
+ navigator.clipboard.writeText(this.secretKey);
740
+ this.copyTextLabel = translate('COPIED');
741
+ }
712
742
  }
713
743
  SetupTotpComponent.decorators = [
714
744
  { type: Component, args: [{
715
745
  selector: 'amplify-setup-totp',
716
- template: "<div data-amplify-container>\n <form data-amplify-form (submit)=\"onSubmit($event)\" (input)=\"onInput($event)\">\n <fieldset\n class=\"amplify-flex\"\n style=\"flex-direction: column\"\n data-amplify-fieldset\n [disabled]=\"authenticator.isPending\"\n >\n <amplify-slot name=\"setup-totp-header\" [context]=\"context\">\n <h3 class=\"amplify-heading\">{{ this.headerText }}</h3>\n </amplify-slot>\n <p *ngIf=\"!qrCodeSource\">Loading...</p>\n <img\n *ngIf=\"qrCodeSource\"\n [src]=\"qrCodeSource\"\n alt=\"qr code\"\n data-amplify-qrcode\n width=\"228\"\n height=\"228\"\n />\n <amplify-form-field\n name=\"confirmation_code\"\n label=\"Code *\"\n type=\"text\"\n autocomplete=\"one-time-code\"\n ></amplify-form-field>\n <button amplify-button variation=\"primary\" fullWidth=\"true\" type=\"submit\">\n {{ confirmText }}\n </button>\n <button\n amplify-button\n size=\"small\"\n variation=\"link\"\n fontWeight=\"normal\"\n fullWidth=\"true\"\n (click)=\"authenticator.toSignIn()\"\n >\n {{ backToSignInText }}\n </button>\n <amplify-error *ngIf=\"authenticator.error\">\n {{ authenticator.error }}\n </amplify-error>\n </fieldset>\n <amplify-slot name=\"setup-totp-footer\" [context]=\"context\"> </amplify-slot>\n </form>\n</div>\n"
746
+ template: "<div data-amplify-container>\n <form data-amplify-form (submit)=\"onSubmit($event)\" (input)=\"onInput($event)\">\n <fieldset\n class=\"amplify-flex\"\n style=\"flex-direction: column\"\n data-amplify-fieldset\n [disabled]=\"authenticator.isPending\"\n >\n <amplify-slot name=\"setup-totp-header\" [context]=\"context\">\n <h3 class=\"amplify-heading\">{{ this.headerText }}</h3>\n </amplify-slot>\n <p *ngIf=\"!qrCodeSource\">Loading...</p>\n <img\n *ngIf=\"qrCodeSource\"\n [src]=\"qrCodeSource\"\n alt=\"qr code\"\n data-amplify-qrcode\n width=\"228\"\n height=\"228\"\n />\n <div class=\"amplify-flex\" data-amplify-copy>\n <div>{{ secretKey }}</div>\n <div data-amplify-copy-svg (click)=\"copyText()\">\n <div data-amplify-copy-tooltip>{{ copyTextLabel }}</div>\n <svg\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM15 5H8C6.9 5 6.01 5.9 6.01 7L6 21C6 22.1 6.89 23 7.99 23H19C20.1 23 21 22.1 21 21V11L15 5ZM8 21V7H14V12H19V21H8Z\"\n fill=\"black\"\n />\n </svg>\n </div>\n </div>\n\n <amplify-form-field\n name=\"confirmation_code\"\n label=\"Code *\"\n type=\"text\"\n autocomplete=\"one-time-code\"\n ></amplify-form-field>\n <button amplify-button variation=\"primary\" fullWidth=\"true\" type=\"submit\">\n {{ confirmText }}\n </button>\n <button\n amplify-button\n size=\"small\"\n variation=\"link\"\n fontWeight=\"normal\"\n fullWidth=\"true\"\n (click)=\"authenticator.toSignIn()\"\n >\n {{ backToSignInText }}\n </button>\n <amplify-error *ngIf=\"authenticator.error\">\n {{ authenticator.error }}\n </amplify-error>\n </fieldset>\n <amplify-slot name=\"setup-totp-footer\" [context]=\"context\"> </amplify-slot>\n </form>\n</div>\n"
717
747
  },] }
718
748
  ];
719
749
  SetupTotpComponent.ctorParameters = () => [
@@ -728,7 +758,10 @@ class SignInComponent {
728
758
  this.authenticator = authenticator;
729
759
  this.dataAttr = '';
730
760
  // translated phrases
731
- this.forgotPasswordText = translate('Forgot your password? ');
761
+ // Support backwards compatibility for legacy key with trailing space
762
+ this.forgotPasswordText = !hasTranslation('Forgot your password? ')
763
+ ? translate('Forgot your password?')
764
+ : translate('Forgot your password? ');
732
765
  this.signInButtonText = translate('Sign in');
733
766
  }
734
767
  get context() {
@@ -1084,6 +1117,7 @@ SelectComponent.propDecorators = {
1084
1117
  class TabItemComponent {
1085
1118
  constructor() {
1086
1119
  this.active = false;
1120
+ this.display = 'block'; // emulate div behavior
1087
1121
  }
1088
1122
  }
1089
1123
  TabItemComponent.decorators = [
@@ -1097,7 +1131,8 @@ TabItemComponent.propDecorators = {
1097
1131
  active: [{ type: Input }],
1098
1132
  id: [{ type: Input }],
1099
1133
  labelledById: [{ type: Input }],
1100
- tabIndex: [{ type: Input }]
1134
+ tabIndex: [{ type: Input }],
1135
+ display: [{ type: HostBinding, args: ['style.display',] }]
1101
1136
  };
1102
1137
 
1103
1138
  class TabsComponent {