!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/forms"),require("rxjs"),require("@aws-amplify/core"),require("lodash"),require("util"),require("@aws-amplify/ui")):"function"==typeof define&&define.amd?define("@flowaccount/aws-amplify-angular",["exports","@angular/core","@angular/common","@angular/forms","rxjs","@aws-amplify/core","lodash","util","@aws-amplify/ui"],t):t((e=e||self)["@flowaccount/aws-amplify-angular"]={},e.ng.core,e.ng.common,e.ng.forms,e.rxjs,e["@aws-amplify/core"],e.lodash,e.util,e["@aws-amplify/ui"])}(this,(function(e,t,n,i,o,a,r,s,l){"use strict";var c="default"in a?a.default:a,u=function(e,t){return(u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};
/*! *****************************************************************************
    Copyright (c) Microsoft Corporation. All rights reserved.
    Licensed under the Apache License, Version 2.0 (the "License"); you may not use
    this file except in compliance with the License. You may obtain a copy of the
    License at http://www.apache.org/licenses/LICENSE-2.0

    THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
    WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
    MERCHANTABLITY OR NON-INFRINGEMENT.

    See the Apache Version 2.0 License for specific language governing permissions
    and limitations under the License.
    ***************************************************************************** */function p(e,t){function n(){this.constructor=e}u(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var d=function(){return(d=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function m(e,t,n,i){var o,a=arguments.length,r=a<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(r=(a<3?o(r):a>3?o(t,n,r):o(t,n))||r);return a>3&&r&&Object.defineProperty(t,n,r),r}function f(e,t){return function(n,i){t(n,i,e)}}function h(e,t,n,i){return new(n||(n=Promise))((function(o,a){function r(e){try{l(i.next(e))}catch(e){a(e)}}function s(e){try{l(i.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(r,s)}l((i=i.apply(e,t||[])).next())}))}function y(e,t){var n,i,o,a,r={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(o=2&a[0]?i.return:a[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,a[1])).done)return o;switch(i=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return r.label++,{value:a[1],done:!1};case 5:r.label++,i=a[1],a=[0];continue;case 7:a=r.ops.pop(),r.trys.pop();continue;default:if(!(o=r.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){r=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){r.label=a[1];break}if(6===a[0]&&r.label<o[1]){r.label=o[1],o=a;break}if(o&&r.label<o[2]){r.label=o[2],r.ops.push(a);break}o[2]&&r.ops.pop(),r.trys.pop();continue}a=t.call(e,r)}catch(e){a=[6,e],i=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}}function g(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,o,a=n.call(e),r=[];try{for(;(void 0===t||t-- >0)&&!(i=a.next()).done;)r.push(i.value)}catch(e){o={error:e}}finally{try{i&&!i.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return r}function v(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(g(arguments[t]));return e}var b=function(e,t){this.component=e,this.data=t},C=new a.Logger("AuthDecorator");function S(e,t){!function(e,t){t.currentAuthenticatedUser().then((function(t){C.debug("has authenticated user",t),e.next({state:"signedIn",user:t})})).catch((function(t){C.debug("no authenticated user",t),e.next({state:"signedOut",user:null})}))}(e,t),function(e){var t=c.configure(null);r.has(t,"Auth.oauth")&&a.Hub.listen("auth",{onHubCapsule:function(t){var n=t.channel,i=t.payload;if("auth"===n){var o=i.data.username;C.debug("authentication oauth event",i),e.next({state:i.event,user:{username:o}})}}},"angularAuthListener")}(e),function(e,t){var n=t.signIn;t.signIn=function(i,o){return n.call(t,i,o).then((function(t){return C.debug("signIn success"),t.challengeName?(C.debug("signIn challenge: "+t.challengeName),"NEW_PASSWORD_REQUIRED"===t.challengeName?e.next({state:"requireNewPassword",user:t}):"MFA_SETUP"===t.challengeName?e.next({state:"setupMFA",user:t}):"SMS_MFA"===t.challengeName||"SOFTWARE_TOKEN_MFA"===t.challengeName?e.next({state:"confirmSignIn",user:t}):C.debug("warning: unhandled challengeName "+t.challengeName),t):(e.next({state:"signedIn",user:t}),t)})).catch((function(e){throw C.debug("signIn error",e),e}))}}(e,t),function(e,t){var n=t.signOut;t.signOut=function(){return n.call(c.Auth).then((function(t){return C.debug("signOut success"),e.next({state:"signedOut",user:null}),t})).catch((function(e){throw C.debug("signOut error",e),e}))}}(e,t),function(e,t){var n=t.signUp;t.signUp=function(i,o,a,r){return n.call(t,i,o,a,r).then((function(t){return C.debug("signUp success"),e.next({state:"confirmSignUp",user:{username:i}}),t})).catch((function(e){throw C.debug("signUp error",e),e}))}}(e,t),function(e,t){var n=t.confirmSignUp;t.confirmSignUp=function(i,o){return n.call(t,i,o).then((function(t){return C.debug("confirmSignUp success"),e.next({state:"signIn",user:{username:i}}),t})).catch((function(e){throw C.debug("confirmSignUp error",e),e}))}}(e,t)}var w=function(){function e(e){void 0===e&&(e={}),this.modules=e,this._authState=new o.Subject,this.authStateChange$=this._authState.asObservable();var t=e||c;S(this._authState,t.Auth),this._auth=t.Auth,this._analytics=t.Analytics,this._storage=t.Storage,this._api=t.API,this._cache=t.Cache,this._pubsub=t.PubSub,this._interactions=t.Interactions,this._xr=t.XR,this._i18n=a.I18n,this._logger=a.Logger}return e.prototype.auth=function(){return this._auth},e.prototype.analytics=function(){return this._analytics},e.prototype.storage=function(){return this._storage},e.prototype.api=function(){return this._api},e.prototype.interactions=function(){return this._interactions},e.prototype.cache=function(){return this._cache},e.prototype.pubsub=function(){return this._pubsub},e.prototype.logger=function(e,t){return new this._logger(e,t)},e.prototype.xr=function(){return this._xr},e.prototype.i18n=function(){return this._i18n},e.prototype.authState=function(){return this._authState},e.prototype.setAuthState=function(e){this._authState.next(e)},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:["modules"]},{type:t.Optional}]}]},e=m([t.Injectable(),f(0,t.Inject("modules")),f(0,t.Optional())],e)}(),I=function(){function e(e){this.amplifyService=e,this.authState={state:"loading",user:null},this._signUpConfig={},this._usernameAttributes="username",this.hide=[],this.subscribe()}return e.prototype.ngOnInit=function(){var e=this;if(!this.amplifyService.auth())throw new Error("Auth module not registered on AmplifyService provider");this.amplifyService.auth().currentAuthenticatedUser().then((function(t){"loading"===e.authState.state&&t&&e.amplifyService.setAuthState({state:"signedIn",user:t})})).catch((function(t){"loading"===e.authState.state&&e.amplifyService.setAuthState({state:"signIn",user:null})}))},Object.defineProperty(e.prototype,"data",{set:function(e){e.signUpConfig&&(this._signUpConfig=e.signUpConfig),e.hide&&(this.hide=e.hide),this._usernameAttributes=e.usernameAttributes||this._usernameAttributes||"username"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"signUpConfig",{set:function(e){this._signUpConfig=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"usernameAttributes",{set:function(e){this._usernameAttributes=e||"username"},enumerable:!0,configurable:!0}),e.prototype.subscribe=function(){var e=this;this.amplifyService.authStateChange$.subscribe((function(t){e.authState=t}),(function(){e.authState={state:"signIn",user:null}}))},e.prototype.shouldHide=function(e){return this.hide.filter((function(t){return t===e})).length>0},e.ctorParameters=function(){return[{type:w}]},m([t.Input()],e.prototype,"hide",void 0),m([t.Input()],e.prototype,"data",null),m([t.Input()],e.prototype,"signUpConfig",null),m([t.Input()],e.prototype,"usernameAttributes",null),e=m([t.Component({selector:"amplify-authenticator-core",template:'\n  <div class="amplify-authenticator">\n    <amplify-auth-sign-in-core\n      *ngIf="!shouldHide(\'SignIn\')"\n      [authState]="authState"\n      [usernameAttributes]="_usernameAttributes"\n      [hide]="hide"\n    ></amplify-auth-sign-in-core>\n\n    <amplify-auth-sign-up-core\n      *ngIf="!shouldHide(\'SignUp\')"\n      [authState]="authState"\n      [signUpConfig]="_signUpConfig"\n      [usernameAttributes]="_usernameAttributes"\n      [hide]="hide"\n    ></amplify-auth-sign-up-core>\n\n    <amplify-auth-confirm-sign-up-core\n      *ngIf="!shouldHide(\'ConfirmSignUp\')"\n      [authState]="authState"\n      [usernameAttributes]="_usernameAttributes"\n      [hide]="hide"\n    ></amplify-auth-confirm-sign-up-core>\n\n    <amplify-auth-confirm-sign-in-core\n      *ngIf="!shouldHide(\'ConfirmSignIn\')"\n      [authState]="authState"\n      [hide]="hide"\n    ></amplify-auth-confirm-sign-in-core>\n\n    <amplify-auth-forgot-password-core\n      *ngIf="!shouldHide(\'ForgotPassword\')"\n      [authState]="authState"\n      [usernameAttributes]="_usernameAttributes"\n      [hide]="hide"\n    ></amplify-auth-forgot-password-core>\n\n    <amplify-auth-greetings-core\n    *ngIf="!shouldHide(\'Greetings\')"\n    [authState]="authState"\n    [usernameAttributes]="_usernameAttributes"\n    ></amplify-auth-greetings-core>\n\n     <amplify-auth-require-new-password-core\n      *ngIf="!shouldHide(\'RequireNewPassword\')"\n      [authState]="authState"\n      [hide]="hide"\n    ></amplify-auth-require-new-password-core>\n  </div>\n'})],e)}(),_=function(e){function n(t){var n=e.call(this,t)||this;return n.amplifyService=t,n}return p(n,e),n.ctorParameters=function(){return[{type:w}]},n=m([t.Component({selector:"amplify-authenticator-ionic",template:'\n<div class="amplify-authenticator amplify-authenticator-ionic ">\n\n<amplify-auth-sign-in-ionic\n  *ngIf="!shouldHide(\'SignIn\')"\n  [authState]="authState"\n  [usernameAttributes]="_usernameAttributes"\n  [hide]="hide"\n></amplify-auth-sign-in-ionic>\n\n<amplify-auth-sign-up-ionic\n  *ngIf="!shouldHide(\'SignUp\')"\n  [authState]="authState"\n  [signUpConfig]="_signUpConfig"\n  [usernameAttributes]="_usernameAttributes"\n  [hide]="hide"\n></amplify-auth-sign-up-ionic>\n\n<amplify-auth-confirm-sign-up-ionic\n  *ngIf="!shouldHide(\'ConfirmSignUp\')"\n  [authState]="authState"\n  [usernameAttributes]="_usernameAttributes"\n  [hide]="hide"\n></amplify-auth-confirm-sign-up-ionic>\n\n<amplify-auth-confirm-sign-in-ionic\n  *ngIf="!shouldHide(\'ConfirmSignIn\')"\n  [authState]="authState"\n  [hide]="hide"\n></amplify-auth-confirm-sign-in-ionic>\n\n<amplify-auth-forgot-password-ionic\n  *ngIf="!shouldHide(\'ForgotPassword\')"\n  [authState]="authState"\n  [usernameAttributes]="_usernameAttributes"\n  [hide]="hide"\n></amplify-auth-forgot-password-ionic>\n\n<amplify-auth-greetings-ionic\n  *ngIf="!shouldHide(\'Greetings\')"\n  [authState]="authState"\n  [usernameAttributes]="_usernameAttributes"\n></amplify-auth-greetings-ionic>\n\n<amplify-auth-require-new-password-ionic\n  *ngIf="!shouldHide(\'RequireNewPassword\')"\n  [authState]="authState"\n  [hide]="hide"\n></amplify-auth-require-new-password-ionic>\n</div>\n'})],n)}(I),k=function(){function e(e,t){var n=this;this.componentFactoryResolver=e,this.hide=[],this.usernameAttributes="username",t.onContainerCreated((function(e){n.viewContainerRef=e,n.loadComponent()})),t.onContainerDestroyed((function(){n.viewContainerRef=void 0}))}return e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.loadComponent=function(){var e=this.framework&&"ionic"===this.framework.toLowerCase()?new b(_,{hide:this.hide,signUpConfig:this.signUpConfig,usernameAttributes:this.usernameAttributes}):new b(I,{hide:this.hide,signUpConfig:this.signUpConfig,usernameAttributes:this.usernameAttributes}),t=this.componentFactoryResolver.resolveComponentFactory(e.component);this.viewContainerRef.clear(),this.viewContainerRef.createComponent(t).instance.data=e.data},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:void 0,decorators:[{type:t.Inject,args:["dynamic-component-service"]}]}]},m([t.Input()],e.prototype,"framework",void 0),m([t.Input()],e.prototype,"hide",void 0),m([t.Input()],e.prototype,"signUpConfig",void 0),m([t.Input()],e.prototype,"usernameAttributes",void 0),e=m([t.Component({selector:"amplify-authenticator",template:'\n\t\t<div class="amplify-component">\n\t\t\t<ng-template component-host></ng-template>\n\t\t</div>\n\t'}),f(1,t.Inject("dynamic-component-service"))],e)}(),A={container:"sumerian-scene-container",sumerianScene:"sumerian-scene",loading:"sumerian-scene-loading",loadingLogo:"sumerian-scene-loading-logo",loadingSceneName:"sumerian-scene-loading-scene-name",loadingBar:"sumerian-scene-loading-bar",errorText:"sumerian-scene-error-text",bar:"sumerian-scene-bar",actions:"sumerian-scene-actions"},F={usernameInput:"username-input",emailInput:"email-input",phoneNumberInput:"phone-number-input",dialCodeSelect:"dial-code-select"},P={signIn:{section:"sign-in-section",headerSection:"sign-in-header-section",bodySection:"sign-in-body-section",footerSection:"sign-in-footer-section",usernameInput:"username-input",passwordInput:"sign-in-password-input",forgotPasswordLink:"sign-in-forgot-password-link",signInButton:"sign-in-sign-in-button",createAccountLink:"sign-in-create-account-link",signInError:"authenticator-error"},signOut:{button:"sign-out-button",section:"sign-out-section"},signUp:{section:"sign-up-section",headerSection:"sign-up-header-section",bodySection:"sign-up-body-section",nonPhoneNumberInput:"sign-up-non-phone-number-input",phoneNumberInput:"sign-up-phone-number-input",dialCodeSelect:"sign-up-dial-code-select",footerSection:"sign-up-footer-section",createAccountButton:"sign-up-create-account-button",signInLink:"sign-up-sign-in-link",signUpButton:"sign-up-sign-up-button",signInButton:"sign-up-sign-in-button",confirmButton:"sign-up-confirm-button"},verifyContact:{section:"verify-contact-section",headerSection:"verify-contact-header-section",bodySection:"verify-contact-body-section",submitButton:"verify-contact-submit-button",verifyButton:"verify-contact-verify-button",skipLink:"verify-contact-skip-link"},TOTPSetup:{component:"totp-setup-component"},requireNewPassword:{section:"require-new-password-section",headerSection:"require-new-password-header-section",footerSection:"require-new-password-footer-section",bodySection:"require-new-password-body-section",newPasswordInput:"require-new-password-new-password-input",backToSignInLink:"require-new-password-back-to-sign-in-link",submitButton:"require-new-password-submit-button"},loading:{section:"loading-secton"},genericAttrs:F,greetings:{navBar:"greetings-nav-bar",nav:"greetings-nav",navRight:"greetings-nav-right"},greeting:{signOutButton:"sign-out-button",signOutLink:"greeting-sign-out-link",navRight:"greetings-nav-right"},federatedSignIn:{section:"federated-sign-in-section",bodySection:"federated-sign-in-body-section",signInButtons:"federated-sign-in-buttons"},confirmSignUp:{section:"confirm-sign-up-section",headerSection:"confirm-sign-up-header-section",bodySection:"confirm-sign-up-body-section",usernameInput:"confirm-sign-up-username-input",confirmationCodeInput:"confirm-sign-up-confirmation-code-input",resendCodeLink:"confirm-sign-up-resend-code-link",confirmButton:"confirm-sign-up-confirm-button",backToSignInLink:"confirm-sign-up-back-to-sign-in-link"},confirmSignIn:{section:"confirm-sign-in-section",headerSection:"confirm-sign-in-header-section",bodySection:"confirm-sign-in-body-section",codeInput:"confirm-sign-in-code-input",confirmButton:"confirm-sign-in-confirm-button",backToSignInLink:"confirm-sign-in-back-to-sign-in-link"},setMFAComp:{section:"set-mfa-section",headerSection:"set-mfa-header-section",bodySection:"set-mfa-header-body-section",smsInput:"set-mfa-sms-input",totpInput:"set-mfa-totp-input",noMfaInput:"set-mfa-nomfa-input",verificationCodeInput:"set-mfa-verification-code-input",setMfaButton:"set-mfa-set-mfa-button",verifyTotpTokenButton:"set-mfa-verify-totp-token-button",cancelButton:"set-mfa-cancel-button"},forgotPassword:{section:"forgot-password-section",headerSection:"forgot-password-header-section",bodySection:"forgot-password-body-section",submitButton:"forgot-password-submit-button",sendCodeButton:"forgot-password-send-code-button",resendCodeLink:"forgot-password-resend-code-link",backToSignInLink:"forgot-password-back-to-sign-in-link",usernameInput:"username-input",codeInput:"forgot-password-code-input",newPasswordInput:"forgot-password-new-password-input"}},U='\n<div class="amplify-container" *ngIf="_show">\n  <div class="amplify-form-container" data-test="'+P.confirmSignIn.section+'">\n    <div class="amplify-form-body" data-test="'+P.confirmSignIn.bodySection+'">\n    <div class="amplify-form-header" data-test="'+P.confirmSignIn.headerSection+'">{{ this.amplifyService.i18n().get(\'Confirm Sign in\') }}</div>\n      <div class="amplify-form-row" *ngIf="!shouldHide(\'SignIn\')">\n        <label class="amplify-input-label" for="code">\n          {{ this.amplifyService.i18n().get(\'Confirmation Code *\') }}\n        </label>\n        <input #code\n          (change)="setCode(code.value)"\n          (keyup)="setCode(code.value)"\n          (keyup.enter)="onConfirm()"\n          class="amplify-form-input"\n          type="text"\n          placeholder="{{ this.amplifyService.i18n().get(\'Enter your Code\') }}"\n          data-test="'+P.confirmSignIn.codeInput+'"\n        />\n      </div>\n      <div class="amplify-form-actions">\n        <div class="amplify-form-cell-left">\n          <div class="amplify-form-actions-left">\n            <a \n              class="amplify-form-link"\n              (click)="onSignIn()"\n              data-test="'+P.confirmSignIn.backToSignInLink+'"\n              >\n                {{ this.amplifyService.i18n().get(\'Back to Sign in\') }}\n            </a>\n          </div>\n        </div>\n        <div class="amplify-form-cell-right">\n          <button\n            class="amplify-form-button"\n            data-test="'+P.confirmSignIn.confirmButton+'"\n            (click)="onConfirm()"\n            >\n              {{ this.amplifyService.i18n().get(\'Confirm\') }}</button>\n        </div>\n      </div>\n      </div>\n  </div>\n  <div class="amplify-alert" *ngIf="errorMessage">\n    <div class="amplify-alert-body">\n      <span class="amplify-alert-icon">&#9888;</span>\n      <div class="amplify-alert-message">{{ this.amplifyService.i18n().get(errorMessage) }}</div>\n      <a class="amplify-alert-close" (click)="onAlertClose()">&times;</a>\n    </div>\n  </div>\n</div>\n',L=function(){function e(e){this.amplifyService=e,this.hide=[],this.logger=this.amplifyService.logger("ConfiSignInComponent")}return Object.defineProperty(e.prototype,"data",{set:function(e){this.hide=e.hide?e.hide:this.hide,this._authState=e.authState,this._show="confirmSignIn"===e.authState.state},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"authState",{set:function(e){this._authState=e,this._show="confirmSignIn"===e.state},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(!this.amplifyService.auth())throw new Error("Auth module not registered on AmplifyService provider")},e.prototype.shouldHide=function(e){return this.hide.filter((function(t){return t===e})).length>0},e.prototype.setCode=function(e){this.code=e},e.prototype.onConfirm=function(){var e=this,t=this._authState.user,n=t.challengeName,i="SOFTWARE_TOKEN_MFA"===n?n:null;this.amplifyService.auth().confirmSignIn(t,this.code,i).then((function(){e.onAlertClose(),e.amplifyService.setAuthState({state:"signedIn",user:t})})).catch((function(t){return e._setError(t)}))},e.prototype.onSignIn=function(){this.onAlertClose(),this.amplifyService.setAuthState({state:"signIn",user:null})},e.prototype.onAlertClose=function(){this._setError(null)},e.prototype._setError=function(e){this.errorMessage=e?e.message||e:null},e.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},m([t.Input()],e.prototype,"data",null),m([t.Input()],e.prototype,"authState",null),m([t.Input()],e.prototype,"hide",void 0),e=m([t.Component({selector:"amplify-auth-confirm-sign-in-core",template:U}),f(0,t.Inject(w))],e)}(),E='\n<div class="amplify-form-container" *ngIf="_show" data-test="'+P.confirmSignIn.section+'">\n  <div class="amplify-form-body" data-test="'+P.confirmSignIn.bodySection+'">\n    <div\n      class="amplify-form-header amplify-form-header-ionic"\n      data-test="'+P.confirmSignIn.headerSection+'"\n      >\n        {{ this.amplifyService.i18n().get(\'Confirm your sign in code\') }}\n    </div>\n    <ion-list>\n      <ion-item lines="none">\n        <ion-label class="amplify-input-label amplify-input-label-ionic" position="stacked">\n          {{ this.amplifyService.i18n().get(\'Code *\') }}\n        </ion-label>\n        <ion-input\n          #code\n          type="text"\n          class="amplify-form-input"\n          (keyup)="setCode(code.value)"\n          (keyup.enter)="onConfirm()"\n          data-test="'+P.confirmSignIn.codeInput+'"\n        ></ion-input>\n      </ion-item>\n    </ion-list>\n\n    <div class="amplify-form-actions">\n      <div>\n        <ion-button expand="block" color="primary"\n          (click)="onConfirm()"\n          data-test="'+P.confirmSignIn.confirmButton+'"\n        >{{ this.amplifyService.i18n().get(\'Confirm Code\') }}</ion-button>\n      </div>\n    </div>\n  </div>\n\n  <div class="amplify-alert" *ngIf="errorMessage">\n    <div class="amplify-alert-body">\n      <span class="amplify-alert-icon">&#9888;</span>\n      <div class="amplify-alert-message">{{ this.amplifyService.i18n().get(errorMessage) }}</div>\n      <a class="amplify-alert-close" (click)="onAlertClose()">&times;</a>\n    </div>\n  </div>\n\n</div>\n',x=function(e){function n(t){var n=e.call(this,t)||this;return n.amplifyService=t,n}return p(n,e),n.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},n=m([t.Component({selector:"amplify-auth-confirm-sign-in-ionic",template:E}),f(0,t.Inject(w))],n)}(L),O=function(){function e(e,t){var n=this;this.componentFactoryResolver=e,this.hide=[],t.onContainerCreated((function(e){n.viewContainerRef=e,n.loadComponent()})),t.onContainerDestroyed((function(){n.viewContainerRef=void 0}))}return e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.loadComponent=function(){var e=this.framework&&"ionic"===this.framework.toLowerCase()?new b(x,{authState:this.authState,hide:this.hide}):new b(L,{authState:this.authState,hide:this.hide}),t=this.componentFactoryResolver.resolveComponentFactory(e.component);this.viewContainerRef.clear(),this.viewContainerRef.createComponent(t).instance.data=e.data},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:void 0,decorators:[{type:t.Inject,args:["dynamic-component-service"]}]}]},m([t.Input()],e.prototype,"framework",void 0),m([t.Input()],e.prototype,"authState",void 0),m([t.Input()],e.prototype,"hide",void 0),e=m([t.Component({selector:"amplify-auth-confirm-sign-in",template:"\n\t\t<div>\n\t\t\t<ng-template component-host></ng-template>\n\t\t</div>\n\t"}),f(1,t.Inject("dynamic-component-service"))],e)}();function R(e,t){return e.filter((function(e){return e===t})).length>0}var M,N={email:"Email",phone_number:"Phone Number",username:"Username"},j=function(e,t){return"+"+e+t.replace(/[-()]/g,"")},B='\n<div class="amplify-container" *ngIf="_show">\n<div class="amplify-form-container" data-test="'+P.confirmSignUp.section+'">\n  <div class="amplify-form-body" data-test="'+P.confirmSignUp.bodySection+'">\n    <div\n      class="amplify-form-header"\n      data-test="'+P.confirmSignUp.headerSection+'"\n    >\n      {{ this.amplifyService.i18n().get(\'Confirm Sign up\') }}</div>\n    <div class="amplify-form-row">\n      <label class="amplify-input-label" for="amplifyUsername">\n        {{ this.amplifyService.i18n().get(getUsernameLabel()) }}\n      </label>\n      <input\n        #amplifyUsername\n        class="amplify-form-input"\n        type="text"\n        disabled\n        placeholder="{{ this.amplifyService.i18n().get(getUsernameLabel()) }}"\n        [value]="username"\n        data-test="'+P.confirmSignUp.usernameInput+'"\n      />\n    </div>\n    <div class="amplify-form-row">\n      <label class="amplify-input-label" for="code">\n        {{ this.amplifyService.i18n().get(\'Confirmation Code *\') }}\n      </label>\n      <input #code\n        (change)="setCode(code.value)"\n        (keyup)="setCode(code.value)"\n        (keyup.enter)="onConfirm()"\n        class="amplify-form-input"\n        type="text"\n        placeholder="{{ this.amplifyService.i18n().get(\'Enter your Code\') }}"\n        data-test="'+P.confirmSignUp.confirmationCodeInput+'"\n      />\n      <span class="amplify-form-action">{{ this.amplifyService.i18n().get(\'Lost your code?\') }}\n        <a class="amplify-form-link"\n            (click)="onResend()"\n            data-test="'+P.confirmSignUp.resendCodeLink+'"\n          >{{ this.amplifyService.i18n().get(\'Resend Code\') }}</a></span>\n    </div>\n    <div class="amplify-form-actions">\n      <div class="amplify-form-cell-left">\n        <div class="amplify-form-actions-left">\n          <a\n            class="amplify-form-link"\n            (click)="onSignIn()"\n            data-test="'+P.confirmSignUp.backToSignInLink+'"\n            >\n            {{ this.amplifyService.i18n().get(\'Back to Sign in\') }}\n          </a>\n        </div>\n      </div>\n      <div class="amplify-form-cell-right">\n        <button\n          class="amplify-form-button"\n          (click)="onConfirm()"\n          data-test="'+P.confirmSignUp.confirmButton+'"\n          >{{ this.amplifyService.i18n().get(\'Confirm\') }}</button>\n      </div>\n    </div>\n  </div>\n</div>\n<div class="amplify-alert" *ngIf="errorMessage">\n  <div class="amplify-alert-body">\n    <span class="amplify-alert-icon">&#9888;</span>\n    <div class="amplify-alert-message">{{ this.amplifyService.i18n().get(errorMessage) }}</div>\n    <a class="amplify-alert-close" (click)="onAlertClose()">&times;</a>\n  </div>\n</div>\n</div>\n',T=function(){function e(e){this.amplifyService=e,this._usernameAttributes="username",this.hide=[],this.logger=this.amplifyService.logger("ConfirmSignUpComponent")}return Object.defineProperty(e.prototype,"data",{set:function(e){this.hide=e.hide?e.hide:this.hide,this._authState=e.authState,this._show="confirmSignUp"===e.authState.state,this.username=e.authState.user&&e.authState.user.username||""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"authState",{set:function(e){this._authState=e,this._show="confirmSignUp"===e.state,this.username=e.user&&e.user.username||""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"usernameAttributes",{set:function(e){this._usernameAttributes=e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(!this.amplifyService.auth())throw new Error("Auth module not registered on AmplifyService provider")},e.prototype.shouldHide=function(e){return this.hide.filter((function(t){return t===e})).length>0},e.prototype.setUsername=function(e){this.username=e},e.prototype.setCode=function(e){this.code=e},e.prototype.onConfirm=function(){var e=this;this.amplifyService.auth().confirmSignUp(this.username,this.code).then((function(){return e.logger.info("confirm success")})).catch((function(t){return e._setError(t)}))},e.prototype.onResend=function(){var e=this;this.amplifyService.auth().resendSignUp(this.username).then((function(){return e.logger.info("code resent")})).catch((function(t){return e._setError(t)}))},e.prototype.onSignIn=function(){this.onAlertClose(),this.amplifyService.setAuthState({state:"signIn",user:null})},e.prototype.onAlertClose=function(){this._setError(null)},e.prototype._setError=function(e){this.errorMessage=e?e.message||e:null},e.prototype.getUsernameLabel=function(){return N[this._usernameAttributes]||this._usernameAttributes},e.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},m([t.Input()],e.prototype,"data",null),m([t.Input()],e.prototype,"hide",void 0),m([t.Input()],e.prototype,"authState",null),m([t.Input()],e.prototype,"usernameAttributes",null),e=m([t.Component({selector:"amplify-auth-confirm-sign-up-core",template:B}),f(0,t.Inject(w))],e)}(),D='\n<div\n  class="amplify-authenticator amplify-authenticator-ionic"\n  *ngIf="_show"\n  data-test="'+P.confirmSignUp.section+'"\n  >\n  <div class="amplify-form-body" data-test="'+P.confirmSignUp.bodySection+'">\n    <div\n      class="amplify-form-header amplify-form-header-ionic"\n      data-test="'+P.confirmSignUp.headerSection+'"\n      >\n      {{ this.amplifyService.i18n().get(\'Confirm your sign up code\') }}\n    </div>\n    <ion-list>\n      <ion-item lines="none">\n        <ion-label class="amplify-input-label amplify-input-label-ionic" position="stacked">\n          {{ this.amplifyService.i18n().get(getUsernameLabel()) }}\n        </ion-label>\n        <ion-input type="text"\n          class="amplify-form-input"\n          (keyup)="setUsername($event.target.value)"\n          [value]="username"\n          data-test="'+P.confirmSignUp.usernameInput+'"\n        ></ion-input>\n      </ion-item>\n\n      <ion-item lines="none">\n        <ion-label  class="amplify-input-label amplify-input-label-ionic" position="stacked">\n          {{ this.amplifyService.i18n().get(\'Code *\') }}\n        </ion-label>\n        <ion-input\n          #code\n          type="text"\n          class="amplify-form-input"\n          (keyup)="setCode(code.value)"\n          (keyup.enter)="onConfirm()"\n          data-test="'+P.confirmSignUp.confirmationCodeInput+'"\n        ></ion-input>\n      </ion-item>\n    </ion-list>\n\n    <div class="amplify-form-actions">\n      <div>\n        <ion-button\n          expand="block"\n          color="primary"\n          (click)="onConfirm()"\n          data-test="'+P.confirmSignUp.confirmButton+'"\n          >\n          {{ this.amplifyService.i18n().get(\'Confirm Code\') }}</ion-button>\n      </div>\n    <div class="amplify-form-row">\n      <div class="amplify-form-signup">\n        {{ this.amplifyService.i18n().get(\'Have an account?\') }}\n        <a\n          class="amplify-form-link"\n          (click)="onSignIn()"\n          data-test="'+P.confirmSignUp.backToSignInLink+'"\n          >\n          {{ this.amplifyService.i18n().get(\'Sign In\') }}\n        </a>\n      </div>\n      <div class="amplify-form-signup">\n        {{ this.amplifyService.i18n().get(\'Lost your code?\') }}\n        <a\n          class="amplify-form-link"\n          (click)="onResend()"\n          data-test="'+P.confirmSignUp.resendCodeLink+'"\n          >\n          {{ this.amplifyService.i18n().get(\'Resend\') }}\n        </a>\n      </div>\n    </div>\n  </div>\n</div>\n\n  <div class="amplify-alert" *ngIf="errorMessage">\n    <div class="amplify-alert-body">\n      <span class="amplify-alert-icon">&#9888;</span>\n      <div class="amplify-alert-message">{{ this.amplifyService.i18n().get(errorMessage) }}</div>\n      <a class="amplify-alert-close" (click)="onAlertClose()">&times;</a>\n    </div>\n  </div>\n\n</div>\n',q=function(e){function n(t){var n=e.call(this,t)||this;return n.amplifyService=t,n}return p(n,e),n.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},n=m([t.Component({selector:"amplify-auth-confirm-sign-up-ionic",template:D}),f(0,t.Inject(w))],n)}(T),G=function(){function e(e,t){var n=this;this.componentFactoryResolver=e,this.usernameAttributes="username",this.hide=[],t.onContainerCreated((function(e){n.viewContainerRef=e,n.loadComponent()})),t.onContainerDestroyed((function(){n.viewContainerRef=void 0}))}return e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.loadComponent=function(){var e=this.framework&&"ionic"===this.framework.toLowerCase()?new b(q,{authState:this.authState,usernameAttributes:this.usernameAttributes,hide:this.hide}):new b(T,{authState:this.authState,usernameAttributes:this.usernameAttributes,hide:this.hide}),t=this.componentFactoryResolver.resolveComponentFactory(e.component);this.viewContainerRef.clear(),this.viewContainerRef.createComponent(t).instance.data=e.data},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:void 0,decorators:[{type:t.Inject,args:["dynamic-component-service"]}]}]},m([t.Input()],e.prototype,"framework",void 0),m([t.Input()],e.prototype,"authState",void 0),m([t.Input()],e.prototype,"usernameAttributes",void 0),m([t.Input()],e.prototype,"hide",void 0),e=m([t.Component({selector:"amplify-auth-confirm-sign-up",template:"\n\t\t<div>\n\t\t\t<ng-template component-host></ng-template>\n\t\t</div>\n\t"}),f(1,t.Inject("dynamic-component-service"))],e)}();!function(e){e.EMAIL="email",e.PHONE_NUMBER="phone_number",e.USERNAME="username"}(M||(M={}));var V='\n<div class="amplify-container" *ngIf="_show">\n  <div class="amplify-form-container" data-test="'+P.signIn.section+'">\n    <div class="amplify-form-body" data-test="'+P.signIn.bodySection+'">\n      <div class="amplify-form-header" data-test="'+P.signIn.headerSection+'">\n        {{ this.amplifyService.i18n().get(\'Sign in to your account\') }}\n      </div>\n      <amplify-auth-username-field-core\n        [usernameAttributes]="_usernameAttributes"\n        (usernameFieldChanged)="onUsernameFieldChanged($event)"\n      ></amplify-auth-username-field-core>\n      <div class="amplify-form-row amplify-signin-password">\n        <label class="amplify-input-label" for="passwordField">\n          {{ this.amplifyService.i18n().get(\'Password *\') }}\n        </label>\n        <input #passwordField\n          (keyup)="setPassword(passwordField.value)"\n          (keyup.enter)="onSignIn()"\n          class="amplify-form-input"\n          type="password"\n          required\n          placeholder="{{ this.amplifyService.i18n().get(\'Enter your password\') }}"\n          data-test="'+P.signIn.passwordInput+'"\n        />\n        <span class="amplify-form-action" *ngIf="!shouldHide(\'ForgotPassword\')">\n          {{ this.amplifyService.i18n().get(\'Forgot Password?\') }}\n          <a class="amplify-form-link"\n            (click)="onForgotPassword()"\n            data-test="'+P.signIn.forgotPasswordLink+'"\n          >{{ this.amplifyService.i18n().get(\'Reset password\') }}</a>\n        </span>\n      </div>\n      <div class="amplify-form-actions">\n        <div class="amplify-form-cell-right">\n          <button class="amplify-form-button"\n            (click)="onSignIn()"\n            data-test="'+P.signIn.signInButton+'"\n          >{{ this.amplifyService.i18n().get(\'Sign In\') }}</button>\n        </div>\n        <div class="amplify-form-cell-left" *ngIf="!shouldHide(\'SignUp\')">\n          <div class="amplify-form-signup">\n            {{ this.amplifyService.i18n().get(\'No account?\') }}\n            <a\n              class="amplify-form-link"\n              (click)="onSignUp()"\n              data-test="'+P.signIn.createAccountLink+'"\n              >\n              {{ this.amplifyService.i18n().get(\'Create account\') }}\n            </a>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class="amplify-alert" *ngIf="errorMessage">\n    <div class="amplify-alert-body">\n      <span class="amplify-alert-icon">&#9888;</span>\n      <div\n        class="amplify-alert-message"\n        data-test="'+P.signIn.signInError+'"\n        >\n          {{ this.amplifyService.i18n().get(errorMessage) }}</div>\n      <a class="amplify-alert-close" (click)="onAlertClose()">&times;</a>\n    </div>\n  </div>\n</div>\n',H=function(){function e(e){this.amplifyService=e,this._usernameAttributes="username",this.local_phone_number="",this.country_code="1",this.email="",this.signInUsername="",this.hide=[],this.logger=this.amplifyService.logger("SignInComponent"),this.onUsernameFieldChanged=this.onUsernameFieldChanged.bind(this)}return Object.defineProperty(e.prototype,"data",{set:function(e){this.hide=e.hide?e.hide:this.hide,this._usernameAttributes=e.usernameAttributes,this._authState=e.authState,this._show=R(["signIn","signedOut","signedUp"],e.authState.state)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"authState",{set:function(e){this._authState=e,this._show=R(["signIn","signedOut","signedUp"],e.state),this.username=e.user&&e.user.username||"",this.email=e.user&&e.user.email||"",this.country_code=e.user&&e.user.country_code?e.user.country_code:this.country_code,this.local_phone_number=e.user&&e.user.local_phone_number||""},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"usernameAttributes",{set:function(e){this._usernameAttributes=e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(!this.amplifyService.auth())throw new Error("Auth module not registered on AmplifyService provider")},e.prototype.shouldHide=function(e){return this.hide.filter((function(t){return t===e})).length>0},e.prototype.setUsername=function(e){this.username=e},e.prototype.setPassword=function(e){this.password=e},e.prototype.onSignIn=function(){var e=this;this.amplifyService.auth().signIn(this.getSignInUsername(),this.password).then((function(t){"SMS_MFA"===t.challengeName||"SOFTWARE_TOKEN_MFA"===t.challengeName?e.amplifyService.setAuthState({state:"confirmSignIn",user:t}):"NEW_PASSWORD_REQUIRED"===t.challengeName?e.amplifyService.setAuthState({state:"requireNewPassword",user:t}):"CUSTOM_CHALLENGE"===t.challengeName&&t.challengeParam&&"true"===t.challengeParam.trigger&&e.amplifyService.setAuthState({state:"customConfirmSignIn",user:t})})).catch((function(t){e._setError(t)}))},e.prototype.onAlertClose=function(){this._setError(null)},e.prototype.getUserObj=function(){return this.username||this.email||this.local_phone_number?{username:this.username,email:this.email,local_phone_number:this.local_phone_number,courtry_code:this.country_code}:null},e.prototype.onForgotPassword=function(){var e=this.getUserObj();this.onAlertClose(),this.amplifyService.setAuthState({state:"forgotPassword",user:e})},e.prototype.onSignUp=function(){var e=this.getUserObj();this.onAlertClose(),this.amplifyService.setAuthState({state:"signUp",user:e})},e.prototype._setError=function(e){e?(this.errorMessage=e.message||e,this.logger.error(this.errorMessage)):this.errorMessage=null},e.prototype.onUsernameFieldChanged=function(e){this.email=e.email||this.email,this.username=e.username||this.username,this.country_code=e.country_code||this.country_code,this.local_phone_number=e.local_phone_number||this.local_phone_number},e.prototype.getSignInUsername=function(){switch(this._usernameAttributes){case M.EMAIL:return this.email;case M.PHONE_NUMBER:return j(this.country_code,this.local_phone_number);default:return this.username}},e.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},m([t.Input()],e.prototype,"data",null),m([t.Input()],e.prototype,"hide",void 0),m([t.Input()],e.prototype,"authState",null),m([t.Input()],e.prototype,"usernameAttributes",null),e=m([t.Component({selector:"amplify-auth-sign-in-core",template:V}),f(0,t.Inject(w))],e)}(),Z='\n<div\n  class="amplify-authenticator"\n  *ngIf="_show"\n  data-test="'+P.signIn.section+'"\n  >\n  <div class="amplify-form-body" data-test="'+P.signIn.bodySection+'">\n    <div class="amplify-form-header" data-test="'+P.signIn.headerSection+'">\n      {{ this.amplifyService.i18n().get(\'Sign in to your account\') }}\n    </div>\n    <ion-list lines="none">\n      <amplify-auth-username-field-ionic\n        [usernameAttributes]="_usernameAttributes"\n        (usernameFieldChanged)="onUsernameFieldChanged($event)"\n      ></amplify-auth-username-field-ionic>\n      <ion-item lines="none">\n        <ion-label class="amplify-input-label" for="password" position="stacked">\n          {{ this.amplifyService.i18n().get(\'Password *\') }}\n        </ion-label>\n        <ion-input\n          #password\n          type="password"\n          class="amplify-form-input"\n          (keyup)="setPassword(password.value)"\n          (keyup.enter)="onSignIn()"\n          data-test="'+P.signIn.passwordInput+'"\n        ></ion-input>\n      </ion-item>\n    </ion-list>\n    <div class="amplify-form-actions">\n      <div class="amplify-form-row">\n        <ion-button expand="block" color="primary"\n          (click)="onSignIn()"\n          data-test="'+P.signIn.signInButton+'"\n          >{{ this.amplifyService.i18n().get(\'Sign In\') }}</ion-button>\n      </div>\n\n      <div class="amplify-form-row">\n        <div class="amplify-form-signup" *ngIf="!shouldHide(\'SignUp\')">\n          {{ this.amplifyService.i18n().get(\'No account?\') }}\n          <a\n            class="amplify-form-link"\n            (click)="onSignUp()"\n            data-test="'+P.signIn.createAccountLink+'"\n            >\n            {{ this.amplifyService.i18n().get(\'Create account\') }}\n          </a>\n        </div>\n        <div class="amplify-form-signup" *ngIf="!shouldHide(\'ForgotPassword\')">\n          <a class="amplify-form-link" (click)="onForgotPassword()" data-test="'+P.signIn.forgotPasswordLink+'">\n            {{ this.amplifyService.i18n().get(\'Reset Password\') }}\n          </a>\n        </div>\n      </div>\n\n    </div>\n  </div>\n\n  <div class="amplify-alert" *ngIf="errorMessage">\n    <div class="amplify-alert-body">\n      <span class="amplify-alert-icon">&#9888;</span>\n      <div class="amplify-alert-message">{{ this.amplifyService.i18n().get(errorMessage) }}</div>\n      <a class="amplify-alert-close" (click)="onAlertClose()">&times;</a>\n    </div>\n  </div>\n</div>\n',z=function(e){function n(t){var n=e.call(this,t)||this;return n.amplifyService=t,n}return p(n,e),n.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},n=m([t.Component({selector:"amplify-auth-sign-in-ionic",template:Z}),f(0,t.Inject(w))],n)}(H),K=function(){function e(e,t){var n=this;this.componentFactoryResolver=e,this.usernameAttributes="username",this.hide=[],t.onContainerCreated((function(e){n.viewContainerRef=e,n.loadComponent()})),t.onContainerDestroyed((function(){n.viewContainerRef=void 0}))}return e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.loadComponent=function(){var e=this.framework&&"ionic"===this.framework?new b(z,{authState:this.authState,hide:this.hide,usernameAttributes:this.usernameAttributes}):new b(H,{authState:this.authState,hide:this.hide,usernameAttributes:this.usernameAttributes}),t=this.componentFactoryResolver.resolveComponentFactory(e.component);this.viewContainerRef.clear(),this.viewContainerRef.createComponent(t).instance.data=e.data},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:void 0,decorators:[{type:t.Inject,args:["dynamic-component-service"]}]}]},m([t.Input()],e.prototype,"framework",void 0),m([t.Input()],e.prototype,"authState",void 0),m([t.Input()],e.prototype,"usernameAttributes",void 0),m([t.Input()],e.prototype,"hide",void 0),e=m([t.Component({selector:"amplify-auth-sign-in",template:"\n\t\t<div>\n\t\t\t<ng-template component-host></ng-template>\n\t\t</div>\n\t"}),f(1,t.Inject("dynamic-component-service"))],e)}(),$=[{label:"Username",key:"username",required:!1,displayOrder:1},{label:"Password",key:"password",required:!0,type:"password",displayOrder:2},{label:"Email",key:"email",required:!0,type:"email",displayOrder:3},{label:"Phone Number",key:"phone_number",required:!0,displayOrder:4}],W=[{label:"Email",key:"email",required:!0,type:"email",displayOrder:1},{label:"Password",key:"password",required:!0,type:"password",displayOrder:2},{label:"Phone Number",key:"phone_number",required:!0,displayOrder:3}],Y=[{label:"Phone Number",key:"phone_number",required:!0,displayOrder:1},{label:"Password",key:"password",required:!0,type:"password",displayOrder:2},{label:"Email",key:"email",required:!0,type:"email",displayOrder:3}],J='\n<div class="amplify-container" *ngIf="_show">\n  <div class="amplify-form-container" data-test="'+P.signUp.section+'">\n    <div class="amplify-form-body" data-test="'+P.signUp.bodySection+'">\n      <div\n        class="amplify-form-header"\n        data-test="'+P.signUp.headerSection+'"\n        >{{ this.amplifyService.i18n().get(this.header) }}</div>\n      <div class="amplify-form-row" *ngFor="let field of signUpFields">\n        <div *ngIf="field.key !== \'phone_number\'">\n          <label class="amplify-input-label">\n            {{ this.amplifyService.i18n().get(field.label) }}\n            <span *ngIf="field.required">*</span>\n          </label>\n          <input #{{field.key}}\n            class="amplify-form-input"\n            [ngClass]="{\'amplify-input-invalid \': field.invalid}"\n            type={{field.type}}\n            [placeholder]="this.amplifyService.i18n().get(field.label)"\n            [(ngModel)]="user[field.key]"\n            name="field.key"\n            data-test="'+P.signUp.nonPhoneNumberInput+'"\n            />\n            <div *ngIf="field.key === \'password\'" class="amplify-form-extra-details">\n              {{passwordPolicy}}\n            </div>\n        </div>\n        <div *ngIf="field.key === \'phone_number\'">\n          <amplify-auth-phone-field-core\n            [label]="field.label"\n            [required]="field.required"\n            [placeholder]="field.placeholder"\n            [defaultCountryCode]="country_code"\n            (phoneFieldChanged)="onPhoneFieldChanged($event)"\n          ></amplify-auth-phone-field-core>\n        </div>\n      </div>\n      <div class="amplify-form-actions">\n        <div class="amplify-form-cell-left" *ngIf="!shouldHide(\'SignIn\')">\n          <div class="amplify-form-signup">\n            {{ this.amplifyService.i18n().get(\'Have an account?\') }}\n            <a class="amplify-form-link" (click)="onSignIn()" data-test="'+P.signUp.signInLink+'">\n              {{ this.amplifyService.i18n().get(\'Sign in\') }}\n            </a>\n          </div>\n        </div>\n        <div class="amplify-form-cell-right">\n          <button class="amplify-form-button"\n          (click)="onSignUp()"\n          data-test="'+P.signUp.createAccountButton+'"\n          >{{ this.amplifyService.i18n().get(\'Create Account\') }}</button>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class="amplify-alert" *ngIf="errorMessage">\n    <div class="amplify-alert-body">\n      <span class="amplify-alert-icon">&#9888;</span>\n      <div class="amplify-alert-message">{{ this.amplifyService.i18n().get(errorMessage) }}</div>\n      <a class="amplify-alert-close" (click)="onAlertClose()">&times;</a>\n    </div>\n  </div>\n</div>\n',Q=function(){function e(e){this.amplifyService=e,this._usernameAttributes="username",this.user={},this.country_code="1",this.header="Create a new account",this.defaultSignUpFields=$,this.signUpFields=this.defaultSignUpFields,this.hiddenFields=[],this.hide=[],this.logger=this.amplifyService.logger("SignUpComponent")}return Object.defineProperty(e.prototype,"data",{set:function(e){this._authState=e.authState,this._show="signUp"===e.authState.state,this._usernameAttributes=e.usernameAttributes,e.signUpConfig&&(this._signUpConfig=e.signUpConfig,this._signUpConfig.defaultCountryCode&&(this.country_code=this._signUpConfig.defaultCountryCode),this._signUpConfig.signUpFields&&(this.signUpFields=this._signUpConfig.signUpFields),this._signUpConfig.header&&(this.header=this._signUpConfig.header),this._signUpConfig.hiddenDefaults&&(this.hiddenFields=this._signUpConfig.hiddenDefaults),this._usernameAttributes===M.EMAIL?(this.signUpFields=W,this.defaultSignUpFields=W):this._usernameAttributes===M.PHONE_NUMBER&&(this.signUpFields=Y,this.defaultSignUpFields=Y),this._signUpConfig.passwordPolicy&&(this.passwordPolicy=this._signUpConfig.passwordPolicy))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"usernameAttributes",{set:function(e){this._usernameAttributes=e,this._usernameAttributes===M.EMAIL?(this.signUpFields=W,this.defaultSignUpFields=W):this._usernameAttributes===M.PHONE_NUMBER&&(this.signUpFields=Y,this.defaultSignUpFields=Y)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"authState",{set:function(e){this._authState=e,this._show="signUp"===e.state},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"signUpConfig",{set:function(e){e&&(this._signUpConfig=e,this._signUpConfig.defaultCountryCode&&(this.country_code=this._signUpConfig.defaultCountryCode),this._signUpConfig.signUpFields&&(this.signUpFields=this._signUpConfig.signUpFields),this._signUpConfig.header&&(this.header=this._signUpConfig.header),this._signUpConfig.hiddenDefaults&&(this.hiddenFields=this._signUpConfig.hiddenDefaults),this._signUpConfig.passwordPolicy&&(this.passwordPolicy=this._signUpConfig.passwordPolicy))},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){this.amplifyService.auth()||this.logger.warn("Auth module not registered on AmplifyService provider"),this.sortFields()},e.prototype.shouldHide=function(e){return this.hide.filter((function(t){return t===e})).length>0},e.prototype.onSignUp=function(){var e=this,t=this.validate();if(t&&t.length>0)return this._setError("The following fields need to be filled out: "+t.join(", "));this.user.attributes={},this.signUpFields.find((function(e){return"phone_number"===e.key}))&&(this.user.phone_number=j(this.country_code,this.local_phone_number));var n=Object.keys(this.user),i=n.map((function(t){return e.user[t]}));n.forEach((function(t,n){if("username"!==t&&"password"!==t&&"attributes"!==t){var o=(e.needPrefix(t)?"custom:":"")+t;e.user.attributes[o]=i[n]}}));var o=!1;if(this.signUpFields.forEach((function(t){t.label===e.getUsernameLabel()&&(e.amplifyService.logger("Changing the username to the value of "+t.label,"DEBUG"),e.user.username=e.user.attributes[t.key]||e.user.username,o=!0)})),!o&&!this.user.username)throw new Error("Couldn't find the label: "+this.getUsernameLabel()+", in sign up fields according to usernameAttributes!");this.amplifyService.auth().signUp(this.user).then((function(t){var n=e.user.username;e.user={},e.onAlertClose(),e.amplifyService.setAuthState({state:"confirmSignUp",user:{username:n}})})).catch((function(t){return e._setError(t)}))},e.prototype.onSignIn=function(){this.onAlertClose(),this.amplifyService.setAuthState({state:"signIn",user:null})},e.prototype.needPrefix=function(e){var t=this.signUpFields.find((function(t){return t.key===e}));return 0!==e.indexOf("custom:")?t.custom:(0===e.indexOf("custom:")&&!1===t.custom&&this.logger.warn("Custom prefix prepended to key but custom field flag is set to false"),null)},e.prototype.onConfirmSignUp=function(){this.onAlertClose(),this.amplifyService.setAuthState({state:"confirmSignUp",user:{username:this.user.username}})},e.prototype.sortFields=function(){var e=this;this.hiddenFields.length>0&&(this.defaultSignUpFields=this.defaultSignUpFields.filter((function(t){return!e.hiddenFields.includes(t.key)}))),this._signUpConfig&&this._signUpConfig.signUpFields&&this._signUpConfig.signUpFields.length>0&&(this._signUpConfig.hideAllDefaults||this.defaultSignUpFields.forEach((function(t,n){-1===e.signUpFields.findIndex((function(e){return e.key===t.key}))&&e.signUpFields.push(t)})),this.signUpFields.sort((function(e,t){return e.displayOrder&&t.displayOrder?e.displayOrder<t.displayOrder?-1:e.displayOrder>t.displayOrder?1:e.key<t.key?-1:1:!e.displayOrder&&t.displayOrder?1:e.displayOrder&&!t.displayOrder?-1:e.displayOrder||t.displayOrder?void 0:e.key<t.key?-1:1})),this.signUpFields=this.removeHiddenFields())},e.prototype.onAlertClose=function(){this._setError(null)},e.prototype.removeHiddenFields=function(){return this.signUpFields.filter((function(e){return!e.displayOrder||-1!==e.displayOrder}))},e.prototype.validate=function(){var e=this,t=[];return this.signUpFields.map((function(n){"phone_number"!==n.key?n.required&&!e.user[n.key]?(n.invalid=!0,t.push(e.amplifyService.i18n().get(n.label))):n.invalid=!1:!n.required||e.country_code&&e.local_phone_number?n.invalid=!1:(n.invalid=!0,t.push(e.amplifyService.i18n().get(n.label)))})),t},e.prototype._setError=function(e){this.errorMessage=e?e.message||e:null},e.prototype.getUsernameLabel=function(){return N[this._usernameAttributes]||this._usernameAttributes},e.prototype.onPhoneFieldChanged=function(e){this.country_code=e.country_code,this.local_phone_number=e.local_phone_number},e.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},m([t.Input()],e.prototype,"data",null),m([t.Input()],e.prototype,"hide",void 0),m([t.Input()],e.prototype,"usernameAttributes",null),m([t.Input()],e.prototype,"authState",null),m([t.Input()],e.prototype,"signUpConfig",null),e=m([t.Component({selector:"amplify-auth-sign-up-core",template:J}),f(0,t.Inject(w))],e)}(),X='\n<div\n  class="amplify-authenticator"\n  *ngIf="_show"\n  data-test="'+P.signUp.section+'"\n  >\n  <div class="amplify-form-body" data-test="'+P.signUp.bodySection+'">\n    <div class="amplify-form-header" data-test="'+P.signUp.headerSection+'">\n      {{ this.amplifyService.i18n().get(this.header) }}</div>\n    <ion-list lines="none">\n      <ion-item lines="none" *ngFor="let field of signUpFields">\n        <ion-label class="amplify-input-label"\n        position="stacked"\n        *ngIf="field.key !== \'phone_number\'"\n        >\n          {{ this.amplifyService.i18n().get(field.label) }}\n          <span *ngIf="field.required">*</span>\n        </ion-label>\n        <ion-input\n          [ngClass]="{\'amplify-input-invalid \': field.invalid}"\n          *ngIf="field.key !== \'phone_number\'"\n          #{{field.key}}\n          type="text"\n          class="amplify-form-input"\n          type={{field.type}}\n          [placeholder]="this.amplifyService.i18n().get(field.label)"\n          (keyup)="setProp($event.target)"\n          name={{field.key}}\n          data-test="'+P.signUp.nonPhoneNumberInput+'"\n        ></ion-input>\n        <ion-content *ngIf="field.key === \'phone_number\'" class="amplify-phone-ion-content">\n          <amplify-auth-phone-field-ionic\n            [label]="field.label"\n            [required]="field.required"\n            [placeholder]="field.placeholder"\n            [defaultCountryCode]="country_code"\n            (phoneFieldChanged)="onPhoneFieldChanged($event)"\n          ></amplify-auth-phone-field-ionic>\n        </ion-content>\n      </ion-item>\n    </ion-list>\n    <div class="amplify-form-actions">\n      <div class="amplify-form-row">\n        <ion-button expand="block" color="primary"\n          (click)="onSignUp()"\n          data-test="'+P.signUp.createAccountButton+'"\n        >{{ this.amplifyService.i18n().get(\'Create Account\') }}</ion-button>\n      </div>\n      <div class="amplify-form-row">\n        <div class="amplify-form-signup">\n          {{ this.amplifyService.i18n().get(\'Have an account?\') }}\n          <a class="amplify-form-link" (click)="onSignIn()" data-test="'+P.signUp.signInButton+'">\n            {{ this.amplifyService.i18n().get(\'Sign In\') }}\n          </a>\n        </div>\n        <div class="amplify-form-signup" *ngIf="!shouldHide(\'SignUp\')">\n          {{ this.amplifyService.i18n().get(\'Have a code?\') }}\n          <a\n            class="amplify-form-link"\n            (click)="onConfirmSignUp()"\n            data-test="'+P.signUp.confirmButton+'"\n            >\n            {{ this.amplifyService.i18n().get(\'Confirm\') }}\n          </a>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class="amplify-alert" *ngIf="errorMessage">\n    <div class="amplify-alert-body">\n      <span class="amplify-alert-icon">&#9888;</span>\n      <div class="amplify-alert-message">{{ this.amplifyService.i18n().get(errorMessage) }}</div>\n      <a class="amplify-alert-close" (click)="onAlertClose()">&times;</a>\n    </div>\n  </div>\n</div>\n',ee=function(e){function n(t){var n=e.call(this,t)||this;return n.amplifyService=t,n}return p(n,e),n.prototype.setProp=function(e){return this.user[e.name]=e.value},n.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},n=m([t.Component({selector:"amplify-auth-sign-up-ionic",template:X}),f(0,t.Inject(w))],n)}(Q),te=function(){function e(e,t){var n=this;this.componentFactoryResolver=e,this.usernameAttributes="username",this.hide=[],t.onContainerCreated((function(e){n.viewContainerRef=e,n.loadComponent()})),t.onContainerDestroyed((function(){n.viewContainerRef=void 0}))}return e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.loadComponent=function(){var e=this.framework&&"ionic"===this.framework.toLowerCase()?new b(ee,{authState:this.authState,signUpConfig:this.signUpConfig,usernameAttributes:this.usernameAttributes,hide:this.hide}):new b(Q,{authState:this.authState,signUpConfig:this.signUpConfig,usernameAttributes:this.usernameAttributes,hide:this.hide}),t=this.componentFactoryResolver.resolveComponentFactory(e.component);this.viewContainerRef.clear(),this.viewContainerRef.createComponent(t).instance.data=e.data},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:void 0,decorators:[{type:t.Inject,args:["dynamic-component-service"]}]}]},m([t.Input()],e.prototype,"framework",void 0),m([t.Input()],e.prototype,"authState",void 0),m([t.Input()],e.prototype,"signUpConfig",void 0),m([t.Input()],e.prototype,"usernameAttributes",void 0),m([t.Input()],e.prototype,"hide",void 0),e=m([t.Component({selector:"amplify-auth-sign-up",template:"\n\t\t<div>\n\t\t\t<ng-template component-host></ng-template>\n\t\t</div>\n\t"}),f(1,t.Inject("dynamic-component-service"))],e)}(),ne='\n<div class="amplify-container" *ngIf="_show">\n<div class="amplify-form-container" data-test="'+P.requireNewPassword.section+'">\n  <div class="amplify-form-body" data-test="'+P.requireNewPassword.bodySection+'">\n  <div class="amplify-form-header" data-test="'+P.requireNewPassword.headerSection+'">\n    {{ this.amplifyService.i18n().get(\'You are required to update your password\') }}\n  </div>\n  <div class="amplify-form-row">\n    <label class="amplify-input-label" for="password">\n      {{ this.amplifyService.i18n().get(\'Password *\') }}\n    </label>\n    <input #password\n      (keyup)="setPassword(password.value)"\n      (keyup.enter)="onSubmit()"\n      class="amplify-form-input"\n      type="password"\n      placeholder="{{ this.amplifyService.i18n().get(\'Password\') }}"\n      data-test="'+P.requireNewPassword.newPasswordInput+'"\n    />\n    </div>\n    <div class="amplify-form-actions">\n      <div class="amplify-form-cell-left">\n        <a class="amplify-form-link"\n          (click)="onSignIn()"\n          data-test="'+P.requireNewPassword.backToSignInLink+'"\n        >{{ this.amplifyService.i18n().get(\'Back to Sign In\') }}</a>\n      </div>\n      <div class="amplify-form-cell-right">\n        <button class="amplify-form-button"\n          (click)="onSubmit()"\n          data-test="'+P.requireNewPassword.submitButton+'"\n        >{{ this.amplifyService.i18n().get(\'Submit\') }}</button>\n      </div>\n    </div>\n  </div>\n</div>\n<div class="amplify-alert" *ngIf="errorMessage">\n<div class="amplify-alert-body">\n  <span class="amplify-alert-icon">&#9888;</span>\n  <div class="amplify-alert-message">{{ this.amplifyService.i18n().get(errorMessage) }}</div>\n  <a class="amplify-alert-close" (click)="onAlertClose()">&times;</a>\n</div>\n</div>\n</div>\n',ie=function(){function e(e){this.amplifyService=e,this.hide=[],this.logger=this.amplifyService.logger("RequireNewPasswordComponent")}return Object.defineProperty(e.prototype,"authState",{set:function(e){this._authState=e,this._show="requireNewPassword"===e.state},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"data",{set:function(e){this._authState=e.authState,this._show="requireNewPassword"===e.authState.state,this.hide=e.hide?e.hide:this.hide},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(!this.amplifyService.auth())throw new Error("Auth module not registered on AmplifyService provider")},e.prototype.shouldHide=function(e){return this.hide.filter((function(t){return t===e})).length>0},e.prototype.setPassword=function(e){this.password=e},e.prototype.onSubmit=function(){var e=this,t=this._authState.user,n=t.challengeParam.requiredAttributes;this.amplifyService.auth().completeNewPassword(t,this.password,n).then((function(){e.onAlertClose(),e.amplifyService.setAuthState({state:"signIn",user:t})})).catch((function(t){return e._setError(t)}))},e.prototype.onSignIn=function(){this.onAlertClose(),this.amplifyService.setAuthState({state:"signIn",user:null})},e.prototype.onAlertClose=function(){this._setError(null)},e.prototype._setError=function(e){this.errorMessage=e?e.message||e:null},e.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},m([t.Input()],e.prototype,"authState",null),m([t.Input()],e.prototype,"hide",void 0),m([t.Input()],e.prototype,"data",null),e=m([t.Component({selector:"amplify-auth-require-new-password-core",template:ne}),f(0,t.Inject(w))],e)}(),oe='\n<div\n  class="amplify-authenticator amplify-authenticator-ionic"\n  *ngIf="_show"\n  data-test="'+P.requireNewPassword.section+'"\n  >\n  <div class="amplify-form-body" data-test="'+P.requireNewPassword.bodySection+'">\n    <div\n      class="amplify-form-header amplify-form-header-ionic"\n      data-test="'+P.requireNewPassword.headerSection+'"\n      >\n      {{ this.amplifyService.i18n().get(\'Reset your password\') }}\n    </div>\n    <ion-list>\n      <ion-item lines="none">\n        <ion-label class="amplify-input-label amplify-input-label-ionic" position="stacked">\n          {{ this.amplifyService.i18n().get(\'Password\') }}\n        </ion-label>\n        <ion-input\n          #password\n          type="password"\n          class="amplify-form-input"\n          (keyup)="setPassword(password.value)"\n          (keyup.enter)="onSubmit()"\n          data-test="'+P.requireNewPassword.newPasswordInput+'"\n        ></ion-input>\n      </ion-item>\n\n    </ion-list>\n\n    <div class="amplify-form-actions">\n      <div class="amplify-form-row">\n        <ion-button\n          expand="block"\n          (click)="onSignIn()"\n          data-test="'+P.requireNewPassword.backToSignInLink+'"\n        >{{ this.amplifyService.i18n().get(\'Back to Sign In\') }}</ion-button>\n      </div>\n      <div class="amplify-form-row">\n        <ion-button\n          expand="block"\n          (click)="onSubmit()"\n          data-test="'+P.requireNewPassword.submitButton+'"\n        >Submit</ion-button>\n      </div>\n    </div>\n  </div>\n  <div class="amplify-alert" *ngIf="errorMessage">\n    <div class="amplify-alert-body">\n      <span class="amplify-alert-icon">&#9888;</span>\n      <div class="amplify-alert-message">{{ errorMessage }}</div>\n      <a class="amplify-alert-close" (click)="onAlertClose()">&times;</a>\n    </div>\n  </div>\n</div>\n',ae=function(e){function n(t){var n=e.call(this,t)||this;return n.amplifyService=t,n}return p(n,e),n.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},n=m([t.Component({selector:"amplify-auth-require-new-password-ionic",template:oe}),f(0,t.Inject(w))],n)}(ie),re=function(){function e(e,t){var n=this;this.componentFactoryResolver=e,this.hide=[],t.onContainerCreated((function(e){n.viewContainerRef=e,n.loadComponent()})),t.onContainerDestroyed((function(){n.viewContainerRef=void 0}))}return e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.loadComponent=function(){var e=this.framework&&"ionic"===this.framework.toLowerCase()?new b(ae,{authState:this.authState,hide:this.hide}):new b(ie,{authState:this.authState,hide:this.hide}),t=this.componentFactoryResolver.resolveComponentFactory(e.component);this.viewContainerRef.clear(),this.viewContainerRef.createComponent(t).instance.data=e.data},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:void 0,decorators:[{type:t.Inject,args:["dynamic-component-service"]}]}]},m([t.Input()],e.prototype,"framework",void 0),m([t.Input()],e.prototype,"authState",void 0),m([t.Input()],e.prototype,"hide",void 0),e=m([t.Component({selector:"amplify-auth-require-new-password",template:"\n\t\t<div>\n\t\t\t<ng-template component-host></ng-template>\n\t\t</div>\n\t"}),f(1,t.Inject("dynamic-component-service"))],e)}(),se='\n<div class="amplify-greeting" *ngIf="signedIn">\n    <div class="amplify-greeting-text">{{ greeting }}</div>\n    <div class="amplify-greeting-flex-spacer"></div>\n    <a class="amplify-form-link amplify-greeting-sign-out"\n      (click)="onSignOut()"\n      data-test="'+P.greeting.signOutButton+"\"\n    >{{ this.amplifyService.i18n().get('Sign Out') }}</a>\n</div>\n",le=function(){function e(e){this.amplifyService=e,this._usernameAttributes="username",this.logger=this.amplifyService.logger("GreetingComponent"),this.subscribe()}return Object.defineProperty(e.prototype,"usernameAttributes",{set:function(e){this._usernameAttributes=e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(!this.amplifyService.auth())throw new Error("Auth module not registered on AmplifyService provider")},e.prototype.subscribe=function(){var e=this;this.amplifyService.authStateChange$.subscribe((function(t){return e.setAuthState(t)}))},e.prototype.setAuthState=function(e){this.authState=e,this.signedIn="signedIn"===e.state;var t="";e.user&&(t=this._usernameAttributes===M.EMAIL?e.user.attributes?e.user.attributes.email:e.user.username:this._usernameAttributes===M.PHONE_NUMBER&&e.user.attributes?e.user.attributes.phone_number:e.user.username),this.greeting=this.signedIn?this.amplifyService.i18n().get("Hello, {{username}}").replace("{{username}}",t):""},e.prototype.onSignOut=function(){this.amplifyService.auth().signOut()},e.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},m([t.Input()],e.prototype,"authState",void 0),m([t.Input()],e.prototype,"usernameAttributes",null),e=m([t.Component({selector:"amplify-auth-greetings-core",template:se}),f(0,t.Inject(w))],e)}(),ce='\n<div class="amplify-greeting" *ngIf="signedIn">\n    <div class="amplify-greeting-text">{{ greeting }}</div>\n    <div class="amplify-greeting-flex-spacer"></div>\n    <ion-button\n        class="amplify-greeting-sign-out"\n        size="small"\n        *ngIf="signedIn"\n        (click)="onSignOut()"\n        data-test="'+P.greeting.signOutButton+"\"\n      >{{ this.amplifyService.i18n().get('Sign Out') }}</ion-button>\n</div>\n",ue=function(e){function n(t){var n=e.call(this,t)||this;return n.amplifyService=t,n}return p(n,e),n.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},n=m([t.Component({selector:"amplify-auth-greetings-ionic",template:ce}),f(0,t.Inject(w))],n)}(le),pe=function(){function e(e,t){var n=this;this.componentFactoryResolver=e,this.usernameAttributes="username",t.onContainerCreated((function(e){n.viewContainerRef=e,n.loadComponent()})),t.onContainerDestroyed((function(){n.viewContainerRef=void 0}))}return e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.loadComponent=function(){var e=this.framework&&"ionic"===this.framework.toLowerCase()?new b(ue,{authState:this.authState,usernameAttributes:this.usernameAttributes}):new b(le,{authState:this.authState,usernameAttributes:this.usernameAttributes}),t=this.componentFactoryResolver.resolveComponentFactory(e.component);this.viewContainerRef.clear(),this.viewContainerRef.createComponent(t).instance.data=e.data},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:void 0,decorators:[{type:t.Inject,args:["dynamic-component-service"]}]}]},m([t.Input()],e.prototype,"framework",void 0),m([t.Input()],e.prototype,"authState",void 0),m([t.Input()],e.prototype,"usernameAttributes",void 0),e=m([t.Component({selector:"amplify-auth-greetings",template:"\n\t\t<div>\n\t\t\t<ng-template component-host></ng-template>\n\t\t</div>\n\t"}),f(1,t.Inject("dynamic-component-service"))],e)}(),de='\n<div class="amplify-container" *ngIf="_show">\n  <div class="amplify-form-container" data-test="'+P.forgotPassword.section+'">\n    <div class="amplify-form-body" data-test="'+P.forgotPassword.bodySection+'">\n    <div class="amplify-form-header" data-test="'+P.forgotPassword.headerSection+'">\n      {{ this.amplifyService.i18n().get(\'Reset your password\') }}\n    </div>\n    <div class="amplify-form-text" *ngIf="!code_sent">\n      {{ this.amplifyService.i18n().get(\'You will receive a verification code\') }}\n    </div>\n    <div class="amplify-form-text" *ngIf="code_sent">\n      {{ this.amplifyService.i18n().get(\'Enter the code you received and set a new password\') }}\n    </div>\n    <amplify-auth-username-field-core\n      *ngIf="!code_sent"\n      [usernameAttributes]="_usernameAttributes"\n      (usernameFieldChanged)="onUsernameFieldChanged($event)"\n    ></amplify-auth-username-field-core>\n      <div class="amplify-form-row" *ngIf="code_sent">\n      <label class="amplify-input-label" for="code">\n        {{ this.amplifyService.i18n().get(\'Confirmation Code *\') }}\n      </label>\n      <input #code\n        (keyup)="setCode(code.value)"\n        class="amplify-form-input"\n        type="text"\n        autocomplete="off"\n        placeholder="{{ this.amplifyService.i18n().get(\'Enter code\') }}"\n        data-test="'+P.forgotPassword.codeInput+'"\n      />\n      </div>\n      <div class="amplify-form-row" *ngIf="code_sent">\n      <label class="amplify-input-label" for="password">\n        {{ this.amplifyService.i18n().get(\'New Password *\') }}\n      </label>\n      <input #password\n        (keyup)="setPassword(password.value)"\n        (keyup.enter)="onSubmit()"\n        class="amplify-form-input"\n        type="password"\n        autocomplete="off"\n        placeholder="{{ this.amplifyService.i18n().get(\'Password\') }}"\n        data-test="'+P.forgotPassword.newPasswordInput+'"\n      />\n      </div>\n      <div class="amplify-form-actions">\n        <div class="amplify-form-cell-right">\n          <button class="amplify-form-button"\n            *ngIf="!code_sent"\n            (click)="onSend()"\n            data-test="'+P.forgotPassword.sendCodeButton+'"\n            >\n              {{ this.amplifyService.i18n().get(\'Submit\') }}</button>\n          <button class="amplify-form-button"\n            *ngIf="code_sent"\n            (click)="onSubmit()"\n            data-test="'+P.forgotPassword.submitButton+'"\n            >\n              {{ this.amplifyService.i18n().get(\'Verify\') }}</button>\n        </div>\n        <div class="amplify-form-cell-left">\n          <div class="amplify-form-actions-left">\n            <a\n              *ngIf="code_sent"\n              class="amplify-form-link"\n              (click)="onSend()"\n              data-test="'+P.forgotPassword.resendCodeLink+'"\n              >\n              {{ this.amplifyService.i18n().get(\'Resend Code\') }}\n            </a>\n            <a\n              *ngIf="!code_sent"\n              class="amplify-form-link"\n              (click)="onSignIn()"\n              data-test="'+P.forgotPassword.backToSignInLink+'"\n              >\n              {{ this.amplifyService.i18n().get(\'Back to Sign in\') }}\n            </a>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class="amplify-alert" *ngIf="errorMessage">\n    <div class="amplify-alert-body">\n      <span class="amplify-alert-icon">&#9888;</span>\n      <div class="amplify-alert-message">{{ this.amplifyService.i18n().get(errorMessage) }}</div>\n      <a class="amplify-alert-close" (click)="onAlertClose()">&times;</a>\n    </div>\n  </div>\n</div>\n',me=function(){function e(e){this.amplifyService=e,this._usernameAttributes="username",this.code_sent=!1,this.country_code="1",this.hide=[],this.logger=this.amplifyService.logger("ForgotPasswordComponent")}return Object.defineProperty(e.prototype,"data",{set:function(e){this._authState=e.authState,this._show="forgotPassword"===e.authState.state,this._usernameAttributes=e.usernameAttributes,this.hide=e.hide?e.hide:this.hide,this.username=e.authState.user&&e.authState.user.username?e.authState.user.username:""},enumerable:!0,configurable:!0}),e.prototype.shouldHide=function(e){return this.hide.filter((function(t){return t===e})).length>0},Object.defineProperty(e.prototype,"authState",{set:function(e){this._authState=e,this._show="forgotPassword"===e.state,this.email=e.user&&e.user.email?e.user.email:"",this.country_code=e.user&&e.user.contry_code?e.user.country_code:"1",this.local_phone_number=e.user&&e.user.local_phone_number?e.user.local_phone_number:"",this.username=e.user&&e.user.username?e.user.username:""},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(!this.amplifyService.auth())throw new Error("Auth module not registered on AmplifyService provider")},Object.defineProperty(e.prototype,"usernameAttributes",{set:function(e){this._usernameAttributes=e},enumerable:!0,configurable:!0}),e.prototype.setCode=function(e){this.code=e},e.prototype.setPassword=function(e){this.password=e},e.prototype.getforgotPwUsername=function(){switch(this._usernameAttributes){case M.EMAIL:return this.email;case M.PHONE_NUMBER:return j(this.country_code,this.local_phone_number);default:return this.username}},e.prototype.onSend=function(){var e=this,t=this.getforgotPwUsername();t?this.amplifyService.auth().forgotPassword(t).then((function(){e.code_sent=!0})).catch((function(t){e._setError(t),e.code_sent=!1})):this.errorMessage="Username cannot be empty"},e.prototype.onSubmit=function(){var e=this;this.amplifyService.auth().forgotPasswordSubmit(this.getforgotPwUsername(),this.code,this.password).then((function(){var t={username:e.username};e.onAlertClose(),e.amplifyService.setAuthState({state:"signIn",user:t})})).catch((function(t){return e._setError(t)}))},e.prototype.onSignIn=function(){this.onAlertClose(),this.amplifyService.setAuthState({state:"signIn",user:null})},e.prototype.onAlertClose=function(){this._setError(null)},e.prototype._setError=function(e){this.errorMessage=e?e.message||e:null},e.prototype.getUsernameLabel=function(){return N[this._usernameAttributes]||this._usernameAttributes},e.prototype.onUsernameFieldChanged=function(e){this.email=e.email||this.email,this.username=e.username||this.username,this.country_code=e.country_code||this.country_code,this.local_phone_number=e.local_phone_number||this.local_phone_number},e.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},m([t.Input()],e.prototype,"data",null),m([t.Input()],e.prototype,"hide",void 0),m([t.Input()],e.prototype,"authState",null),m([t.Input()],e.prototype,"usernameAttributes",null),e=m([t.Component({selector:"amplify-auth-forgot-password-core",template:de}),f(0,t.Inject(w))],e)}(),fe='\n<div\n  class="amplify-authenticator amplify-authenticator-ionic"\n  *ngIf="_show"\n  data-test="'+P.forgotPassword.section+'"\n  >\n  <div class="amplify-form-body" data-test="'+P.forgotPassword.bodySection+'">\n  <div\n    class="amplify-form-header amplify-form-header-ionic"\n    data-test="'+P.forgotPassword.headerSection+'"\n    >\n    {{ this.amplifyService.i18n().get(\'Reset your password\') }}\n  </div>\n  <div class="amplify-form-text" *ngIf="!code_sent">\n    {{ this.amplifyService.i18n().get(\'You will receive a verification code to reset your password\') }}\n  </div>\n\n  <ion-list>\n    <amplify-auth-username-field-ionic\n      [usernameAttributes]="_usernameAttributes"\n      (usernameFieldChanged)="onUsernameFieldChanged($event)"\n    ></amplify-auth-username-field-ionic>\n    <ion-item lines="none" *ngIf="code_sent">\n      <ion-label class="amplify-input-label amplify-input-label-ionic" position="stacked">\n        {{ this.amplifyService.i18n().get(\'Code *\') }}\n      </ion-label>\n      <ion-input\n        #code\n        type="text"\n        class="amplify-form-input"\n        (keyup)="setCode(code.value)"\n        data-test="'+P.forgotPassword.codeInput+'"\n      ></ion-input>\n    </ion-item>\n    <ion-item lines="none" *ngIf="code_sent">\n      <ion-label class="amplify-input-label amplify-input-label-ionic" position="stacked">\n        {{ this.amplifyService.i18n().get(\'Password *\') }}\n      </ion-label>\n      <ion-input\n        #password\n        type="password"\n        class="amplify-form-input"\n        (keyup)="setPassword(password.value)"\n        (keyup.enter)="onSubmit()"\n        data-test="'+P.forgotPassword.newPasswordInput+'"\n      ></ion-input>\n    </ion-item>\n  </ion-list>\n  <div class="amplify-form-actions">\n    <div>\n      <ion-button expand="block" color="primary"\n        (click)="onSend()"\n        *ngIf="!code_sent"\n        data-test="'+P.forgotPassword.submitButton+'"\n      >\n        {{ this.amplifyService.i18n().get(\'Submit\') }}</ion-button>\n      <ion-button expand="block" color="primary"\n      *ngIf="code_sent"\n      (click)="onSubmit()"\n      >{{ this.amplifyService.i18n().get(\'Verify\') }}</ion-button>\n    </div>\n    <div class="amplify-form-row">\n      <div class="amplify-form-signup">\n        {{ this.amplifyService.i18n().get(\'Have an account?\') }}\n        <a class="amplify-form-link" (click)="onSignIn()">\n          {{ this.amplifyService.i18n().get(\'Sign In\') }}\n        </a>\n      </div>\n      <div class="amplify-form-signup">\n        {{ this.amplifyService.i18n().get(\'Lost your code?\') }}\n        <a\n          class="amplify-form-link"\n          (click)="onSend()"\n          data-test="'+P.forgotPassword.resendCodeLink+'"\n          >\n          {{ this.amplifyService.i18n().get(\'Resend\') }}\n        </a>\n      </div>\n    </div>\n  </div>\n  </div>\n  <div class="amplify-alert" *ngIf="errorMessage">\n    <div class="amplify-alert-body">\n      <span class="amplify-alert-icon">&#9888;</span>\n      <div class="amplify-alert-message">{{ this.amplifyService.i18n().get(errorMessage) }}</div>\n      <a class="amplify-alert-close" (click)="onAlertClose()">&times;</a>\n    </div>\n  </div>\n\n</div>\n',he=function(e){function n(t){var n=e.call(this,t)||this;return n.amplifyService=t,n}return p(n,e),n.prototype.onCodeChange=function(e){this.country_code=e},n.prototype.onNumberChange=function(e){this.local_phone_number=e},n.prototype.setUsername=function(e){this.username=e},n.prototype.setEmail=function(e){this.email=e},n.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},n=m([t.Component({selector:"amplify-auth-forgot-password-ionic",template:fe}),f(0,t.Inject(w))],n)}(me),ye=function(){function e(e,t){var n=this;this.componentFactoryResolver=e,this.usernameAttributes="username",this.hide=[],t.onContainerCreated((function(e){n.viewContainerRef=e,n.loadComponent()})),t.onContainerDestroyed((function(){n.viewContainerRef=void 0}))}return e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.loadComponent=function(){var e=this.framework&&"ionic"===this.framework.toLowerCase()?new b(he,{authState:this.authState,hide:this.hide,usernameAttributes:this.usernameAttributes}):new b(me,{authState:this.authState,hide:this.hide,usernameAttributes:this.usernameAttributes}),t=this.componentFactoryResolver.resolveComponentFactory(e.component);this.viewContainerRef.clear(),this.viewContainerRef.createComponent(t).instance.data=e.data},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:void 0,decorators:[{type:t.Inject,args:["dynamic-component-service"]}]}]},m([t.Input()],e.prototype,"framework",void 0),m([t.Input()],e.prototype,"authState",void 0),m([t.Input()],e.prototype,"usernameAttributes",void 0),m([t.Input()],e.prototype,"hide",void 0),e=m([t.Component({selector:"amplify-auth-forgot-password",template:"\n\t\t<div>\n\t\t\t<ng-template component-host></ng-template>\n\t\t</div>\n\t"}),f(1,t.Inject("dynamic-component-service"))],e)}(),ge='\n<div class="amplify-amplify-form-row amplify-signin-username">\n    <div *ngIf="this._usernameAttributes === \'email\'">\n        <label class="amplify-input-label" for="emailField"> {{ this.amplifyService.i18n().get(\'Email\') }} *</label>\n        <input\n            #emailField\n            class="amplify-form-input"\n            type="email"\n            placeholder="{{ this.amplifyService.i18n().get(this.getPlaceholder()) }}"\n            (keyup)="setEmail($event.target.value)"\n            data-test="'+P.genericAttrs.emailInput+'"\n        />\n    </div>\n    <div *ngIf="this._usernameAttributes === \'phone_number\'">\n        <amplify-auth-phone-field-core\n            (phoneFieldChanged)="onPhoneFieldChanged($event)"\n        ></amplify-auth-phone-field-core>\n    </div>\n    <div *ngIf="this._usernameAttributes !== \'email\' && this._usernameAttributes !== \'phone_number\'">\n        <label class="amplify-input-label" for="usernameField"> {{ this.amplifyService.i18n().get(getUsernameLabel()) }} *</label>\n        <input\n            #usernameField\n            class="amplify-form-input"\n            type="text"\n            value="{{this.username}}"\n            placeholder="{{ this.amplifyService.i18n().get(this.getPlaceholder()) }}"\n            (keyup)="setUsername($event.target.value)"\n            data-test="'+P.genericAttrs.usernameInput+'"\n        />\n    </div>\n</div>\n',ve=function(){function e(e){this.amplifyService=e,this._usernameAttributes=M.USERNAME,this._placeholder="",this.usernameFieldChanged=new t.EventEmitter,this.onPhoneFieldChanged=this.onPhoneFieldChanged.bind(this)}return Object.defineProperty(e.prototype,"data",{set:function(e){this._usernameAttributes=e.usernameAttributes,this._placeholder=e.placeholder},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"usernameAttributes",{set:function(e){this._usernameAttributes=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"placeholder",{set:function(e){this._placeholder=e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(window&&window.location&&window.location.search&&"email"!==this._usernameAttributes&&"phone_number"!==this._usernameAttributes){var e=new URLSearchParams(window.location.search),t=e?e.get("username"):void 0;this.setUsername(t),this.username=t}},e.prototype.ngOnDestroy=function(){},e.prototype.setUsername=function(e){this.usernameFieldChanged.emit({username:e})},e.prototype.setEmail=function(e){this.usernameFieldChanged.emit({email:e})},e.prototype.getUsernameLabel=function(){return N[this._usernameAttributes]||this._usernameAttributes},e.prototype.getPlaceholder=function(){return this.amplifyService.i18n().get(""+this.getUsernameLabel()||this._placeholder)},e.prototype.onPhoneFieldChanged=function(e){this.usernameFieldChanged.emit(d({},e))},e.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},m([t.Input()],e.prototype,"data",null),m([t.Input()],e.prototype,"usernameAttributes",null),m([t.Input()],e.prototype,"placeholder",null),m([t.Output()],e.prototype,"usernameFieldChanged",void 0),e=m([t.Component({selector:"amplify-auth-username-field-core",template:ge}),f(0,t.Inject(w))],e)}(),be=[{countryCode:"US",value:"1",label:"USA (+1)"},{countryCode:"GB",value:"44",label:"UK (+44)"},{countryCode:"DZ",value:"213",label:"Algeria (+213)"},{countryCode:"AD",value:"376",label:"Andorra (+376)"},{countryCode:"AO",value:"244",label:"Angola (+244)"},{countryCode:"AI",value:"1264",label:"Anguilla (+1264)"},{countryCode:"AG",value:"1268",label:"Antigua & Barbuda (+1268)"},{countryCode:"AR",value:"54",label:"Argentina (+54)"},{countryCode:"AM",value:"374",label:"Armenia (+374)"},{countryCode:"AW",value:"297",label:"Aruba (+297)"},{countryCode:"AU",value:"61",label:"Australia (+61)"},{countryCode:"AT",value:"43",label:"Austria (+43)"},{countryCode:"AZ",value:"994",label:"Azerbaijan (+994)"},{countryCode:"BS",value:"1242",label:"Bahamas (+1242)"},{countryCode:"BH",value:"973",label:"Bahrain (+973)"},{countryCode:"BD",value:"880",label:"Bangladesh (+880)"},{countryCode:"BB",value:"1246",label:"Barbados (+1246)"},{countryCode:"BY",value:"375",label:"Belarus (+375)"},{countryCode:"BE",value:"32",label:"Belgium (+32)"},{countryCode:"BZ",value:"501",label:"Belize (+501)"},{countryCode:"BJ",value:"229",label:"Benin (+229)"},{countryCode:"BM",value:"1441",label:"Bermuda (+1441)"},{countryCode:"BT",value:"975",label:"Bhutan (+975)"},{countryCode:"BO",value:"591",label:"Bolivia (+591)"},{countryCode:"BA",value:"387",label:"Bosnia Herzegovina (+387)"},{countryCode:"BW",value:"267",label:"Botswana (+267)"},{countryCode:"BR",value:"55",label:"Brazil (+55)"},{countryCode:"BN",value:"673",label:"Brunei (+673)"},{countryCode:"BG",value:"359",label:"Bulgaria (+359)"},{countryCode:"BF",value:"226",label:"Burkina Faso (+226)"},{countryCode:"BI",value:"257",label:"Burundi (+257)"},{countryCode:"KH",value:"855",label:"Cambodia (+855)"},{countryCode:"CM",value:"237",label:"Cameroon (+237)"},{countryCode:"CA",value:"1",label:"Canada (+1)"},{countryCode:"CV",value:"238",label:"Cape Verde Islands (+238)"},{countryCode:"KY",value:"1345",label:"Cayman Islands (+1345)"},{countryCode:"CF",value:"236",label:"Central African Republic (+236)"},{countryCode:"CL",value:"56",label:"Chile (+56)"},{countryCode:"CN",value:"86",label:"China (+86)"},{countryCode:"CO",value:"57",label:"Colombia (+57)"},{countryCode:"KM",value:"269",label:"Comoros (+269)"},{countryCode:"CG",value:"242",label:"Congo (+242)"},{countryCode:"CK",value:"682",label:"Cook Islands (+682)"},{countryCode:"CR",value:"506",label:"Costa Rica (+506)"},{countryCode:"HR",value:"385",label:"Croatia (+385)"},{countryCode:"CU",value:"53",label:"Cuba (+53)"},{countryCode:"CW",value:"599",label:"Curacao (+599)"},{countryCode:"CY",value:"90392",label:"Cyprus North (+90392)"},{countryCode:"CY",value:"357",label:"Cyprus South (+357)"},{countryCode:"CZ",value:"420",label:"Czech Republic (+420)"},{countryCode:"DK",value:"45",label:"Denmark (+45)"},{countryCode:"DJ",value:"253",label:"Djibouti (+253)"},{countryCode:"DM",value:"1809",label:"Dominica (+1809)"},{countryCode:"DO",value:"1809",label:"Dominican Republic (+1809)"},{countryCode:"EC",value:"593",label:"Ecuador (+593)"},{countryCode:"EG",value:"20",label:"Egypt (+20)"},{countryCode:"SV",value:"503",label:"El Salvador (+503)"},{countryCode:"GQ",value:"240",label:"Equatorial Guinea (+240)"},{countryCode:"ER",value:"291",label:"Eritrea (+291)"},{countryCode:"EE",value:"372",label:"Estonia (+372)"},{countryCode:"ET",value:"251",label:"Ethiopia (+251)"},{countryCode:"FK",value:"500",label:"Falkland Islands (+500)"},{countryCode:"FO",value:"298",label:"Faroe Islands (+298)"},{countryCode:"FJ",value:"679",label:"Fiji (+679)"},{countryCode:"FI",value:"358",label:"Finland (+358)"},{countryCode:"FR",value:"33",label:"France (+33)"},{countryCode:"GF",value:"594",label:"French Guiana (+594)"},{countryCode:"PF",value:"689",label:"French Polynesia (+689)"},{countryCode:"GA",value:"241",label:"Gabon (+241)"},{countryCode:"GM",value:"220",label:"Gambia (+220)"},{countryCode:"GE",value:"7880",label:"Georgia (+7880)"},{countryCode:"DE",value:"49",label:"Germany (+49)"},{countryCode:"GH",value:"233",label:"Ghana (+233)"},{countryCode:"GI",value:"350",label:"Gibraltar (+350)"},{countryCode:"GR",value:"30",label:"Greece (+30)"},{countryCode:"GL",value:"299",label:"Greenland (+299)"},{countryCode:"GD",value:"1473",label:"Grenada (+1473)"},{countryCode:"GP",value:"590",label:"Guadeloupe (+590)"},{countryCode:"GU",value:"671",label:"Guam (+671)"},{countryCode:"GT",value:"502",label:"Guatemala (+502)"},{countryCode:"GN",value:"224",label:"Guinea (+224)"},{countryCode:"GW",value:"245",label:"Guinea - Bissau (+245)"},{countryCode:"GY",value:"592",label:"Guyana (+592)"},{countryCode:"HT",value:"509",label:"Haiti (+509)"},{countryCode:"HN",value:"504",label:"Honduras (+504)"},{countryCode:"HK",value:"852",label:"Hong Kong (+852)"},{countryCode:"HU",value:"36",label:"Hungary (+36)"},{countryCode:"IS",value:"354",label:"Iceland (+354)"},{countryCode:"IN",value:"91",label:"India (+91)"},{countryCode:"ID",value:"62",label:"Indonesia (+62)"},{countryCode:"IR",value:"98",label:"Iran (+98)"},{countryCode:"IQ",value:"964",label:"Iraq (+964)"},{countryCode:"IE",value:"353",label:"Ireland (+353)"},{countryCode:"IL",value:"972",label:"Israel (+972)"},{countryCode:"IT",value:"39",label:"Italy (+39)"},{countryCode:"JM",value:"1876",label:"Jamaica (+1876)"},{countryCode:"JP",value:"81",label:"Japan (+81)"},{countryCode:"JO",value:"962",label:"Jordan (+962)"},{countryCode:"KZ",value:"7",label:"Kazakhstan (+7)"},{countryCode:"KE",value:"254",label:"Kenya (+254)"},{countryCode:"KI",value:"686",label:"Kiribati (+686)"},{countryCode:"KP",value:"850",label:"Korea North (+850)"},{countryCode:"KR",value:"82",label:"Korea South (+82)"},{countryCode:"KW",value:"965",label:"Kuwait (+965)"},{countryCode:"KG",value:"996",label:"Kyrgyzstan (+996)"},{countryCode:"LA",value:"856",label:"Laos (+856)"},{countryCode:"LV",value:"371",label:"Latvia (+371)"},{countryCode:"LB",value:"961",label:"Lebanon (+961)"},{countryCode:"LS",value:"266",label:"Lesotho (+266)"},{countryCode:"LR",value:"231",label:"Liberia (+231)"},{countryCode:"LY",value:"218",label:"Libya (+218)"},{countryCode:"LI",value:"417",label:"Liechtenstein (+417)"},{countryCode:"LT",value:"370",label:"Lithuania (+370)"},{countryCode:"LU",value:"352",label:"Luxembourg (+352)"},{countryCode:"MO",value:"853",label:"Macao (+853)"},{countryCode:"MK",value:"389",label:"Macedonia (+389)"},{countryCode:"MG",value:"261",label:"Madagascar (+261)"},{countryCode:"MW",value:"265",label:"Malawi (+265)"},{countryCode:"MY",value:"60",label:"Malaysia (+60)"},{countryCode:"MV",value:"960",label:"Maldives (+960)"},{countryCode:"ML",value:"223",label:"Mali (+223)"},{countryCode:"MT",value:"356",label:"Malta (+356)"},{countryCode:"MH",value:"692",label:"Marshall Islands (+692)"},{countryCode:"MQ",value:"596",label:"Martinique (+596)"},{countryCode:"MR",value:"222",label:"Mauritania (+222)"},{countryCode:"YT",value:"269",label:"Mayotte (+269)"},{countryCode:"MX",value:"52",label:"Mexico (+52)"},{countryCode:"FM",value:"691",label:"Micronesia (+691)"},{countryCode:"MD",value:"373",label:"Moldova (+373)"},{countryCode:"MC",value:"377",label:"Monaco (+377)"},{countryCode:"MN",value:"976",label:"Mongolia (+976)"},{countryCode:"MS",value:"1664",label:"Montserrat (+1664)"},{countryCode:"MA",value:"212",label:"Morocco (+212)"},{countryCode:"MZ",value:"258",label:"Mozambique (+258)"},{countryCode:"MN",value:"95",label:"Myanmar (+95)"},{countryCode:"NA",value:"264",label:"Namibia (+264)"},{countryCode:"NR",value:"674",label:"Nauru (+674)"},{countryCode:"NP",value:"977",label:"Nepal (+977)"},{countryCode:"NL",value:"31",label:"Netherlands (+31)"},{countryCode:"NC",value:"687",label:"New Caledonia (+687)"},{countryCode:"NZ",value:"64",label:"New Zealand (+64)"},{countryCode:"NI",value:"505",label:"Nicaragua (+505)"},{countryCode:"NE",value:"227",label:"Niger (+227)"},{countryCode:"NG",value:"234",label:"Nigeria (+234)"},{countryCode:"NU",value:"683",label:"Niue (+683)"},{countryCode:"NF",value:"672",label:"Norfolk Islands (+672)"},{countryCode:"NP",value:"670",label:"Northern Marianas (+670)"},{countryCode:"NO",value:"47",label:"Norway (+47)"},{countryCode:"OM",value:"968",label:"Oman (+968)"},{countryCode:"PW",value:"680",label:"Palau (+680)"},{countryCode:"PA",value:"507",label:"Panama (+507)"},{countryCode:"PG",value:"675",label:"Papua New Guinea (+675)"},{countryCode:"PY",value:"595",label:"Paraguay (+595)"},{countryCode:"PE",value:"51",label:"Peru (+51)"},{countryCode:"PH",value:"63",label:"Philippines (+63)"},{countryCode:"PL",value:"48",label:"Poland (+48)"},{countryCode:"PT",value:"351",label:"Portugal (+351)"},{countryCode:"PR",value:"1787",label:"Puerto Rico (+1787)"},{countryCode:"QA",value:"974",label:"Qatar (+974)"},{countryCode:"RE",value:"262",label:"Reunion (+262)"},{countryCode:"RO",value:"40",label:"Romania (+40)"},{countryCode:"RU",value:"7",label:"Russia (+7)"},{countryCode:"RW",value:"250",label:"Rwanda (+250)"},{countryCode:"SM",value:"378",label:"San Marino (+378)"},{countryCode:"ST",value:"239",label:"Sao Tome & Principe (+239)"},{countryCode:"SA",value:"966",label:"Saudi Arabia (+966)"},{countryCode:"SN",value:"221",label:"Senegal (+221)"},{countryCode:"CS",value:"381",label:"Serbia (+381)"},{countryCode:"SC",value:"248",label:"Seychelles (+248)"},{countryCode:"SL",value:"232",label:"Sierra Leone (+232)"},{countryCode:"SX",value:"1",label:"Sint Maarten (+1)"},{countryCode:"SG",value:"65",label:"Singapore (+65)"},{countryCode:"SK",value:"421",label:"Slovak Republic (+421)"},{countryCode:"SI",value:"386",label:"Slovenia (+386)"},{countryCode:"SB",value:"677",label:"Solomon Islands (+677)"},{countryCode:"SO",value:"252",label:"Somalia (+252)"},{countryCode:"ZA",value:"27",label:"South Africa (+27)"},{countryCode:"ES",value:"34",label:"Spain (+34)"},{countryCode:"LK",value:"94",label:"Sri Lanka (+94)"},{countryCode:"SH",value:"290",label:"St. Helena (+290)"},{countryCode:"KN",value:"1869",label:"St. Kitts (+1869)"},{countryCode:"SC",value:"1758",label:"St. Lucia (+1758)"},{countryCode:"SD",value:"249",label:"Sudan (+249)"},{countryCode:"SR",value:"597",label:"Suriname (+597)"},{countryCode:"SZ",value:"268",label:"Swaziland (+268)"},{countryCode:"SE",value:"46",label:"Sweden (+46)"},{countryCode:"CH",value:"41",label:"Switzerland (+41)"},{countryCode:"SI",value:"963",label:"Syria (+963)"},{countryCode:"TW",value:"886",label:"Taiwan (+886)"},{countryCode:"TJ",value:"7",label:"Tajikstan (+7)"},{countryCode:"TH",value:"66",label:"Thailand (+66)"},{countryCode:"TG",value:"228",label:"Togo (+228)"},{countryCode:"TO",value:"676",label:"Tonga (+676)"},{countryCode:"TT",value:"1868",label:"Trinidad & Tobago (+1868)"},{countryCode:"TN",value:"216",label:"Tunisia (+216)"},{countryCode:"TR",value:"90",label:"Turkey (+90)"},{countryCode:"TM",value:"7",label:"Turkmenistan (+7)"},{countryCode:"TM",value:"993",label:"Turkmenistan (+993)"},{countryCode:"TC",value:"1649",label:"Turks & Caicos Islands (+1649)"},{countryCode:"TV",value:"688",label:"Tuvalu (+688)"},{countryCode:"UG",value:"256",label:"Uganda (+256)"},{countryCode:"UA",value:"380",label:"Ukraine (+380)"},{countryCode:"AE",value:"971",label:"United Arab Emirates (+971)"},{countryCode:"UY",value:"598",label:"Uruguay (+598)"},{countryCode:"UZ",value:"7",label:"Uzbekistan (+7)"},{countryCode:"VU",value:"678",label:"Vanuatu (+678)"},{countryCode:"VA",value:"379",label:"Vatican City (+379)"},{countryCode:"VE",value:"58",label:"Venezuela (+58)"},{countryCode:"VN",value:"84",label:"Vietnam (+84)"},{countryCode:"VG",value:"84",label:"Virgin Islands - British (+1284)"},{countryCode:"VI",value:"84",label:"Virgin Islands - US (+1340)"},{countryCode:"WF",value:"681",label:"Wallis and Futuna (+681)"},{countryCode:"YE",value:"969",label:"Yemen (North) (+969)"},{countryCode:"YE",value:"967",label:"Yemen (South) (+967)"},{countryCode:"ZM",value:"260",label:"Zambia (+260)"},{countryCode:"ZW",value:"263",label:"Zimbabwe (+263)"}],Ce='\n<div>\n    <label class="amplify-input-label" for="localPhoneNumberField">\n        {{ this.amplifyService.i18n().get(this._label) }}\n        <span *ngIf="_required">*</span>\n    </label>\n    <div class="amplify-input-group">\n        <div class="amplify-input-group-item">\n            <select \n            #countryCodeField\n            name="countryCode"\n            class="amplify-select-phone-country"\n            [(ngModel)]="_country_code"\n            (change)="setCountryCode($event.target.value)"\n            data-test="'+P.genericAttrs.dialCodeSelect+'"\n            >\n            <option *ngFor="let country of _countries"\n                value={{country.value}}>\n                {{country.label}}\n            </option>\n            </select>\n        </div>\n        <div class="amplify-input-group-item">\n            <input\n                #localPhoneNumberField\n                class="amplify-form-input"\n                placeholder="{{ this.amplifyService.i18n().get(this.getPlaceholder()) }}"\n                name="local_phone_number"\n                type="tel"\n                (keyup)="setLocalPhoneNumber($event.target.value)"\n                data-test="'+P.genericAttrs.phoneNumberInput+'"\n            />\n        </div>\n    </div>\n</div>\n',Se=function(){function e(e){this.amplifyService=e,this._placeholder="",this._label="Phone Number",this._required=!0,this._country_code="1",this._local_phone_number="",this.phoneFieldChanged=new t.EventEmitter,this._countries=be}return Object.defineProperty(e.prototype,"data",{set:function(e){this._placeholder=e.placeholder||this._placeholder,this._label=e.label||this._label,this._country_code=e.defaultCountryCode||this._country_code,this._required=void 0===e.required?this._required:e.required},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"placeholder",{set:function(e){this._placeholder=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"label",{set:function(e){this._label=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"required",{set:function(e){this._required=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"defaultCountryCode",{set:function(e){this._country_code=e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.setCountryCode=function(e){this._country_code=e,this.phoneFieldChanged.emit({country_code:this._country_code,local_phone_number:this._local_phone_number})},e.prototype.setLocalPhoneNumber=function(e){this._local_phone_number=e,this.phoneFieldChanged.emit({country_code:this._country_code,local_phone_number:this._local_phone_number})},e.prototype.getPlaceholder=function(){return this.amplifyService.i18n().get("Enter your phone number")},e.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},m([t.Input()],e.prototype,"data",null),m([t.Input()],e.prototype,"placeholder",null),m([t.Input()],e.prototype,"label",null),m([t.Input()],e.prototype,"required",null),m([t.Input()],e.prototype,"defaultCountryCode",null),m([t.Output()],e.prototype,"phoneFieldChanged",void 0),e=m([t.Component({selector:"amplify-auth-phone-field-core",template:Ce}),f(0,t.Inject(w))],e)}(),we=function(){function e(e){this.amplifyService=e,this._options={},this.selected=new t.EventEmitter,this.logger=this.amplifyService.logger("S3AlbumComponent")}return e.prototype.ngOnInit=function(){if(!this.amplifyService.storage())throw new Error("Storage module not registered on AmplifyService provider");this.getList(this._path,this._options)},e.prototype.onImageSelected=function(e){this.selected.emit(e)},Object.defineProperty(e.prototype,"data",{set:function(e){e.path&&(this._path=e.path,this._options=e.options)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{set:function(e){this._path=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"options",{set:function(e){this._options=e},enumerable:!0,configurable:!0}),e.prototype.getList=function(e,t){var n=this;e&&this.amplifyService.storage().list(e,t).then((function(e){n.list=e.map((function(e){return{path:e.key}}))})).catch((function(e){return console.error(e)}))},e.ctorParameters=function(){return[{type:w}]},m([t.Output()],e.prototype,"selected",void 0),m([t.Input()],e.prototype,"data",null),m([t.Input()],e.prototype,"path",null),m([t.Input()],e.prototype,"options",null),e=m([t.Component({selector:"amplify-s3-album-core",template:'\n<div class="amplify-album">\n  <div class="amplify-album-container">\n    <amplify-s3-image-core\n      class="amplify-image-container"\n      *ngFor="let item of list"\n      path="{{item.path}}"\n      [options]="_options"\n      (selected)="onImageSelected($event)"\n    ></amplify-s3-image-core>\n  </div>\n</div>\n'})],e)}(),Ie=function(e){function n(t){var n=e.call(this,t)||this;return n.amplifyService=t,n}return p(n,e),n.ctorParameters=function(){return[{type:w}]},n=m([t.Component({selector:"amplify-s3-album-ionic",template:'\n<div class="amplify-album">\n  <div class="amplify-album-container">\n    <amplify-s3-image-core\n      class="amplify-image-container"\n      *ngFor="let item of list"\n      path="{{item.path}}"\n      (selected)="onImageSelected($event)"\n    ></amplify-s3-image-core>\n  </div>\n</div>\n'})],n)}(we),_e=function(){function e(e,n){var i=this;this.componentFactoryResolver=e,this.selected=new t.EventEmitter,n.onContainerCreated((function(e){i.viewContainerRef=e,i.loadComponent()})),n.onContainerDestroyed((function(){i.viewContainerRef=void 0}))}return e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.loadComponent=function(){var e=this,t=this.framework&&"ionic"===this.framework.toLowerCase()?new b(Ie,{path:this.path,options:this.options}):new b(we,{path:this.path,options:this.options}),n=this.componentFactoryResolver.resolveComponentFactory(t.component);this.viewContainerRef.clear();var i=this.viewContainerRef.createComponent(n);i.instance.data=t.data,i.instance.selected.subscribe((function(t){e.selected.emit(t)}))},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:void 0,decorators:[{type:t.Inject,args:["dynamic-component-service"]}]}]},m([t.Input()],e.prototype,"framework",void 0),m([t.Input()],e.prototype,"path",void 0),m([t.Input()],e.prototype,"options",void 0),m([t.Output()],e.prototype,"selected",void 0),e=m([t.Component({selector:"amplify-s3-album",template:"\n\t\t<div>\n\t\t\t<ng-template component-host></ng-template>\n\t\t</div>\n\t"}),f(1,t.Inject("dynamic-component-service"))],e)}(),ke=function(){function e(e){this.amplifyService=e,this._options={},this.selected=new t.EventEmitter,this.logger=this.amplifyService.logger("S3ImageComponent")}return Object.defineProperty(e.prototype,"data",{set:function(e){e.path&&(this._path=e.path,this._options=e.options)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{set:function(e){this._path=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"options",{set:function(e){this._options=e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(this._path){if(!this.amplifyService.storage())throw new Error("Storage module not registered on AmplifyService provider");this.getImage(this._path,this._options)}},e.prototype.onImageClicked=function(){this.selected.emit(this.url)},e.prototype.getImage=function(e,t){var n=this;this.amplifyService.storage().get(e,t).then((function(e){return n.url=e})).catch((function(e){return console.error(e)}))},e.ctorParameters=function(){return[{type:w}]},m([t.Output()],e.prototype,"selected",void 0),m([t.Input()],e.prototype,"data",null),m([t.Input()],e.prototype,"path",null),m([t.Input()],e.prototype,"options",null),e=m([t.Component({selector:"amplify-s3-image-core",template:'\n  <img\n    class="amplify-image"\n    (click)="onImageClicked()"\n    src="{{url}}"\n  />\n'})],e)}(),Ae=function(e){function n(t){var n=e.call(this,t)||this;return n.amplifyService=t,n}return p(n,e),n.ctorParameters=function(){return[{type:w}]},n=m([t.Component({selector:"amplify-s3-image-ionic",template:'\n  <img\n    class="amplify-image"\n    (click)="onImageClicked()"\n    src="{{url}}"\n  />\n'})],n)}(ke),Fe=function(){function e(e,n){var i=this;this.componentFactoryResolver=e,this.selected=new t.EventEmitter,n.onContainerCreated((function(e){i.viewContainerRef=e,i.loadComponent()})),n.onContainerDestroyed((function(){i.viewContainerRef=void 0}))}return e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.loadComponent=function(){var e=this,t=this.framework&&"ionic"===this.framework.toLowerCase()?new b(Ae,{path:this.path,options:this.options}):new b(ke,{path:this.path,options:this.options}),n=this.componentFactoryResolver.resolveComponentFactory(t.component);this.viewContainerRef.clear();var i=this.viewContainerRef.createComponent(n);i.instance.data=t.data,i.instance.selected.subscribe((function(t){e.selected.emit(t)}))},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:void 0,decorators:[{type:t.Inject,args:["dynamic-component-service"]}]}]},m([t.Input()],e.prototype,"framework",void 0),m([t.Input()],e.prototype,"path",void 0),m([t.Input()],e.prototype,"options",void 0),m([t.Output()],e.prototype,"selected",void 0),e=m([t.Component({selector:"amplify-s3-image",template:"\n\t\t<div>\n\t\t\t<ng-template component-host></ng-template>\n\t\t</div>\n\t"}),f(1,t.Inject("dynamic-component-service"))],e)}(),Pe=function(){function e(e){this.amplifyService=e,this.hasPhoto=!1,this.uploading=!1,this.s3ImageFile=null,this.s3ImagePath="",this._storageOptions={},this.picked=new t.EventEmitter,this.loaded=new t.EventEmitter,this.uploaded=new t.EventEmitter,this.logger=this.amplifyService.logger("PhotoPickerComponent")}return Object.defineProperty(e.prototype,"url",{set:function(e){this.photoUrl=e,this.hasPhoto=!0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"storageOptions",{set:function(e){this._storageOptions=Object.assign(this._storageOptions,e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"path",{set:function(e){this.s3ImagePath=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"data",{set:function(e){this.photoUrl=e.url,this.s3ImagePath=e.path,this._storageOptions=Object.assign(this._storageOptions,e.storageOptions),this.hasPhoto=!0},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(!this.amplifyService.storage())throw new Error("Storage module not registered on AmplifyService provider")},e.prototype.pick=function(e){var t=e.target.files[0];if(t){this._storageOptions.contentType||(this._storageOptions.contentType=t.type);t.name,t.size,t.type;this.picked.emit(t),this.s3ImagePath=this.s3ImagePath+"/"+t.name,this.s3ImageFile=t;var n=this,i=new FileReader;i.onload=function(e){var t=e.target.result;n.photoUrl=t,n.hasPhoto=!0,n.loaded.emit(t)},i.readAsDataURL(t)}},e.prototype.uploadFile=function(){var e=this;this.uploading=!0,this.amplifyService.storage().put(this.s3ImagePath,this.s3ImageFile,this._storageOptions).then((function(t){e.uploaded.emit(t),e.completeFileUpload()})).catch((function(t){e.completeFileUpload(t)}))},e.prototype.completeFileUpload=function(e){if(e)return this._setError(e);this.s3ImagePath="",this.photoUrl=null,this.s3ImageFile=null,this.uploading=!1},e.prototype.onPhotoError=function(){this.hasPhoto=!1},e.prototype.onAlertClose=function(){this._setError(null)},e.prototype._setError=function(e){this.errorMessage=e?e.message||e:null},e.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},m([t.Input()],e.prototype,"url",null),m([t.Input()],e.prototype,"storageOptions",null),m([t.Input()],e.prototype,"path",null),m([t.Input()],e.prototype,"data",null),m([t.Output()],e.prototype,"picked",void 0),m([t.Output()],e.prototype,"loaded",void 0),m([t.Output()],e.prototype,"uploaded",void 0),e=m([t.Component({selector:"amplify-photo-picker-core",template:'\n<div class="amplify-photo-picker">\n<div class="amplify-photo-picker-container">\n  <div class="amplify-form-header">Select Photos</div>\n  <div class="amplify-photo-picker-upload" *ngIf="!hasPhoto"></div>\n  <div class="amplify-photo-picker-preview">\n    <img\n      class="amplify-photo-picker-preview"\n      src="{{photoUrl}}"\n      *ngIf="hasPhoto"\n      (error)="onPhotoError()"\n    />\n  </div>\n  <div class="amplify-upload-input">\n    <input type="file" \n      accept="image/*"\n      (change)="pick($event)"/>\n      <button \n        *ngIf="hasPhoto" \n        class="amplify-form-button amplify-upload-button" \n        (click)="uploadFile()">\n        Upload Photo\n      </button>\n  </div>\n</div>\n<div class="amplify-alert" *ngIf="errorMessage">\n  <div class="amplify-alert-body">\n    <span class="amplify-alert-icon">&#9888;</span>\n    <div class="amplify-alert-message">{{ errorMessage }}</div>\n    <a class="amplify-alert-close" (click)="onAlertClose()">&times;</a>\n  </div>\n</div>\n</div>\n'}),f(0,t.Inject(w))],e)}(),Ue=function(e){function n(t){var n=e.call(this,t)||this;return n.amplifyService=t,n}return p(n,e),n.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},n=m([t.Component({selector:"amplify-photo-picker-ionic",template:'\n<div class="amplify-photo-picker">\n<div class="amplify-photo-picker-container">\n  <div class="amplify-form-header">Select Photos</div>\n  <div class="amplify-photo-picker-upload" *ngIf="!hasPhoto"></div>\n  <div class="amplify-photo-picker-preview">\n    <img\n      class="amplify-photo-picker-preview"\n      src="{{photoUrl}}"\n      *ngIf="hasPhoto"\n      (error)="onPhotoError()"\n    />\n  </div>\n  <div class="amplify-upload-input">\n    <input type="file" \n      accept="image/*"\n      (change)="pick($event)"/>\n      <button \n        *ngIf="hasPhoto" \n        class="amplify-form-button amplify-upload-button" \n        (click)="uploadFile()">\n        Upload Photo\n      </button>\n  </div>\n</div>\n<div class="amplify-alert" *ngIf="errorMessage">\n  <div class="amplify-alert-body">\n    <span class="amplify-alert-icon">&#9888;</span>\n    <div class="amplify-alert-message">{{ errorMessage }}</div>\n    <a class="amplify-alert-close" (click)="onAlertClose()">&times;</a>\n  </div>\n</div>\n</div>\n'}),f(0,t.Inject(w))],n)}(Pe),Le=function(){function e(e,n){var i=this;this.componentFactoryResolver=e,this.picked=new t.EventEmitter,this.loaded=new t.EventEmitter,this.uploaded=new t.EventEmitter,n.onContainerCreated((function(e){i.viewContainerRef=e,i.loadComponent()})),n.onContainerDestroyed((function(){i.viewContainerRef=void 0}))}return e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.loadComponent=function(){var e=this,t=this.framework&&"ionic"===this.framework.toLowerCase()?new b(Ue,{url:this.url,path:this.path,storageOptions:this.storageOptions}):new b(Pe,{url:this.url,path:this.path,storageOptions:this.storageOptions}),n=this.componentFactoryResolver.resolveComponentFactory(t.component);this.viewContainerRef.clear();var i=this.viewContainerRef.createComponent(n);i.instance.data=t.data,i.instance.picked.subscribe((function(t){e.picked.emit(t)})),i.instance.loaded.subscribe((function(t){e.loaded.emit(t)})),i.instance.uploaded.subscribe((function(t){e.uploaded.emit(t)}))},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:void 0,decorators:[{type:t.Inject,args:["dynamic-component-service"]}]}]},m([t.Input()],e.prototype,"framework",void 0),m([t.Input()],e.prototype,"url",void 0),m([t.Input()],e.prototype,"path",void 0),m([t.Input()],e.prototype,"storageOptions",void 0),m([t.Output()],e.prototype,"picked",void 0),m([t.Output()],e.prototype,"loaded",void 0),m([t.Output()],e.prototype,"uploaded",void 0),e=m([t.Component({selector:"amplify-photo-picker",template:'\n\t\t<div class="amplify-component">\n\t\t\t<ng-template component-host></ng-template>\n\t\t</div>\n\t'}),f(1,t.Inject("dynamic-component-service"))],e)}();require("../assets/js/aws-lex-audio.js");var Ee={INITIAL:{MESSAGE:"Type your message or click  🎤",ICON:"🎤"},LISTENING:{MESSAGE:"Listening... click 🔴 again to cancel",ICON:"🔴"},SENDING:{MESSAGE:"Please wait...",ICON:"🔊"},SPEAKING:{MESSAGE:"Speaking...",ICON:"..."}},xe={silenceDetectionConfig:{time:2e3,amplitude:.2}},Oe=function(){function e(e,n){var i=this;this.amplifyService=n,this.inputText="",this.clearComplete=!1,this.messages=[],this.completions={},this.currentVoiceState=Ee.INITIAL.MESSAGE,this.inputDisabled=!1,this.micText=Ee.INITIAL.ICON,this.voiceConfig=xe,this.continueConversation=!1,this.micButtonDisabled=!1,this.conversationModeOn=!1,this.voiceEnabled=!1,this.textEnabled=!0,this.complete=new t.EventEmitter,this.onSilenceHandler=function(){i.continueConversation&&(i.audioControl.exportWAV((function(e){i.currentVoiceState=Ee.SENDING.MESSAGE,i.audioInput=e,i.micText=Ee.SENDING.ICON,i.micButtonDisabled=!0,i.lexResponseHandler()})),i.ref.detectChanges())},this.ref=e,this.continueConversation=!1,this.logger=this.amplifyService.logger("ChatbotComponent")}return Object.defineProperty(e.prototype,"data",{set:function(e){this.botName=e.bot,this.chatTitle=e.title,this.clearComplete=e.clearComplete,this.conversationModeOn=!s.isUndefined(e.conversationModeOn)&&e.conversationModeOn,this.voiceEnabled=!s.isUndefined(e.voiceEnabled)&&e.voiceEnabled,this.textEnabled=!!s.isUndefined(e.textEnabled)||e.textEnabled,this.voiceConfig=e.voiceConfig||this.voiceConfig,this.performOnComplete=this.performOnComplete.bind(this),this.amplifyService.interactions().onComplete(this.botName,this.performOnComplete),!this.textEnabled&&this.voiceEnabled&&(this.currentVoiceState="Click the mic button",Ee.INITIAL.MESSAGE="Click the mic button"),!this.voiceEnabled&&this.textEnabled&&(this.currentVoiceState="Type a message",Ee.INITIAL.MESSAGE="Type a message"),this.voiceEnabled&&(this.audioControl=new LexAudio.audioControl)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"bot",{set:function(e){this.botName=e,this.performOnComplete=this.performOnComplete.bind(this),this.amplifyService.interactions().onComplete(e,this.performOnComplete)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"title",{set:function(e){this.chatTitle=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"clearOnComplete",{set:function(e){this.clearComplete=e},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(!this.amplifyService.interactions())throw new Error("Interactions module not registered on AmplifyService provider")},e.prototype.performOnComplete=function(e){this.complete.emit(e),this.clearComplete&&(this.messages=[])},e.prototype.onInputChange=function(e){this.inputText=e},e.prototype.onSubmit=function(e){var t=this;if(this.inputText){var n={me:this.inputText,meSentTime:(new Date).toLocaleTimeString(),bot:"",botSentTime:""};this.amplifyService.interactions().send(this.botName,this.inputText).then((function(e){t.inputText="",n.bot=e.message,n.botSentTime=(new Date).toLocaleTimeString(),t.messages.push(n)})).catch((function(e){return t.logger.error(e)}))}},e.prototype.reset=function(){this.audioControl.clear(),this.inputText="",this.currentVoiceState=Ee.INITIAL.MESSAGE,this.inputDisabled=!1,this.micText=Ee.INITIAL.ICON,this.continueConversation=!1,this.micButtonDisabled=!1,this.ref.detectChanges()},e.prototype.onError=function(e){this.logger.error(e)},e.prototype.lexResponseHandler=function(){return h(this,void 0,void 0,(function(){var e,t,n;return y(this,(function(i){switch(i.label){case 0:return this.continueConversation?(e={content:this.audioInput,options:{messageType:"voice"}},[4,this.amplifyService.interactions().send(this.botName,e)]):[2];case 1:return t=i.sent(),this.lexResponse=t,this.currentVoiceState=Ee.SPEAKING.MESSAGE,this.micText=Ee.SPEAKING.ICON,this.micButtonDisabled=!0,n={me:this.lexResponse.inputTranscript,meSentTime:(new Date).toLocaleTimeString(),bot:"",botSentTime:""},this.inputText="",n.bot=this.lexResponse.message,n.botSentTime=(new Date).toLocaleTimeString(),this.messages.push(n),this.doneSpeakingHandler(),this.ref.detectChanges(),[2]}}))}))},e.prototype.doneSpeakingHandler=function(){var e=this;this.continueConversation&&("audio/mpeg"===this.lexResponse.contentType?this.audioControl.play(this.lexResponse.audioStream,(function(){"ReadyForFulfillment"!==e.lexResponse.dialogState&&"Fulfilled"!==e.lexResponse.dialogState&&"Failed"!==e.lexResponse.dialogState&&e.conversationModeOn?(e.currentVoiceState=Ee.LISTENING.MESSAGE,e.micText=Ee.LISTENING.ICON,e.micButtonDisabled=!1,e.audioControl.startRecording(e.onSilenceHandler,null,e.voiceConfig.silenceDetectionConfig),e.ref.detectChanges()):(e.inputDisabled=!1,e.currentVoiceState=Ee.INITIAL.MESSAGE,e.micText=Ee.INITIAL.ICON,e.micButtonDisabled=!1,e.continueConversation=!1,e.ref.detectChanges())})):(this.inputDisabled=!1,this.currentVoiceState=Ee.INITIAL.MESSAGE,this.micText=Ee.INITIAL.ICON,this.micButtonDisabled=!1,this.continueConversation=!1,this.ref.detectChanges()))},e.prototype.micButtonHandler=function(){return h(this,void 0,void 0,(function(){return y(this,(function(e){return this.continueConversation?(this.reset(),this.ref.detectChanges()):(this.inputDisabled=!0,this.continueConversation=!0,this.currentVoiceState=Ee.LISTENING.MESSAGE,this.micText=Ee.LISTENING.ICON,this.micButtonDisabled=!1,this.audioControl.startRecording(this.onSilenceHandler,null,this.voiceConfig.silenceDetectionConfig),this.ref.detectChanges()),[2]}))}))},e.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:w,decorators:[{type:t.Inject,args:[w]}]}]},m([t.Output()],e.prototype,"complete",void 0),m([t.Input()],e.prototype,"data",null),m([t.Input()],e.prototype,"bot",null),m([t.Input()],e.prototype,"title",null),m([t.Input()],e.prototype,"clearOnComplete",null),e=m([t.Component({selector:"amplify-interactions-core",template:'\n<div class="amplify-interactions">\n\t<div class="amplify-interactions-container">\n\t\t<div class="amplify-form-container">\n\t\t\t<div class="amplify-form-row">\n\t\t\t\t<div class="amplify-interactions-conversation">\n\t\t\t\t\t<div *ngFor="let message of messages">\n\t\t\t\t\t\t<div class="amplify-interactions-input">{{message.me}}</div>\n\t\t\t\t\t\t<div class="amplify-interactions-input-timestamp">{{message.meSentTime}}</div>\n\t\t\t\t\t\t<div class="amplify-interactions-response">{{message.bot}}</div>\n\t\t\t\t\t\t<div class="amplify-interactions-response-timestamp">{{message.botSentTime}}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="amplify-interactions-actions">\n\t\t\t\t<input #inputValue\n\t\t\t\t\ttype=\'text\'\n\t\t\t\t\tclass="amplify-form-input"\n\t\t\t\t\tplaceholder="{{currentVoiceState}}"\n\t\t\t\t\t[value]="inputText"\n\t\t\t\t\t(keyup.enter)="onSubmit(inputValue.value)"\n\t\t\t\t\t(change)="onInputChange($event.target.value)"\n\t\t\t\t\t[disabled]="inputDisabled"\n\t\t\t\t\t*ngIf="textEnabled">\n\t\t\t\t<input #inputValue\n\t\t\t\t\ttype=\'text\'\n\t\t\t\t\tclass="amplify-form-input"\n\t\t\t\t\tplaceholder="{{currentVoiceState}}"\n\t\t\t\t\t[disabled]="!textEnabled"\n\t\t\t\t\t*ngIf="!textEnabled">\n\n\t\t\t\t<button\n\t\t\t\t\ttype="button"\n\t\t\t\t\t*ngIf="voiceEnabled"\n\t\t\t\t\tng-style="{float: \'right\'}"\n\t\t\t\t\t(click)="micButtonHandler()"\n\t\t\t\t\t[disabled]="micButtonDisabled"\n\t\t\t\t>\n\t\t\t\t\t{{micText}}\n\t\t\t\t</button>\n\t\t\t\t<button\n\t\t\t\t\ttype="button"\n\t\t\t\t\t*ngIf="textEnabled"\n\t\t\t\t\tng-style="{float: \'right\'}"\n\t\t\t\t\tclass="amplify-interactions-button"\n\t\t\t\t\t[disabled]="inputDisabled"\n\t\t\t\t\tng-click="!inputDisabled || onSubmit(inputValue.value)"\n\t\t\t\t></button>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n'}),f(1,t.Inject(w))],e)}(),Re=function(e){function n(t,n){var i=e.call(this,t,n)||this;return i.amplifyService=n,i}return p(n,e),n.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:w,decorators:[{type:t.Inject,args:[w]}]}]},n=m([t.Component({selector:"amplify-interactions-ionic",template:'\n<div class="amplify-interactions-container">\n\t<div class="amplify-form-container">\n\t\t<ion-grid>\n\t\t\t<ion-row *ngIf="chatTitle"> \n\t\t\t\t<ion-col>\n\t\t\t\t\t<ion-row>\n\t\t\t\t\t\t<ion-col align-self-start>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t<ion-chip color="primary">\n\t\t\t\t\t\t\t\t\t<ion-label>{{chatTitle}}</ion-label>\n\t\t\t\t\t\t\t\t</ion-chip>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</ion-col>\n\t\t\t\t\t\t<ion-col align-self-end>\n\t\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t</ion-col>\n\t\t\t\t\t</ion-row>\n\t\t\t\t</ion-col>\n\t\t\t</ion-row>\n\t\t\t<ion-row *ngFor="let message of messages">\n\t\t\t\t<ion-col>\n\t\t\t\t\t<ion-row>\n\t\t\t\t\t\t<ion-col align-self-start>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</ion-col>\n\t\t\t\t\t\t<ion-col align-self-end>\n\t\t\t\t\t\t\t<ion-chip style="float:right">\n\t\t\t\t\t\t\t\t<ion-label>{{message.me}}</ion-label>\n\t\t\t\t\t\t\t</ion-chip>\n\t\t\t\t\t\t</ion-col>\n\t\t\t\t\t</ion-row>\n\t\t\t\t\t<ion-row>\n\t\t\t\t\t\t<ion-col align-self-start>\n\t\t\t\t\t\t\t<ion-chip color="primary">\n\t\t\t\t\t\t\t\t<ion-label>{{message.bot}}</ion-label>\n\t\t\t\t\t\t\t</ion-chip>\n\t\t\t\t\t\t</ion-col>\n\t\t\t\t\t\t<ion-col align-self-end>\n\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t&nbsp;\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</ion-col>\n\t\t\t\t\t</ion-row>\n\t\t\t\t</ion-col>\n\t\t\t</ion-row>\n\t\t</ion-grid>\n\t\t<div class="amplify-form-row">\n\t\t    <ion-input #inputValue\n\t\t\t\ttype=\'text\'\n\t\t        class="amplify-form-input amplify-form-input-interactions-ionic"\n\t\t        placeholder="{{currentVoiceState}}"\n\t\t        [value]="inputText"\n\t\t        (keyup.enter)="onSubmit(inputValue.value)"\n\t\t\t\t(ionChange)="onInputChange($event.target.value)"\n\t\t\t\t[disabled]="inputDisabled"\n\t\t\t\t*ngIf="textEnabled"></ion-input>\n\t\t\t<ion-input #inputValue\n\t\t\t\ttype=\'text\'\n\t\t\t\tclass="amplify-form-input amplify-form-input-interactions-ionic"\n\t\t\t\tplaceholder="{{currentVoiceState}}"\n\t\t\t\t[disabled]="!textEnabled"\n\t\t\t\t*ngIf="!textEnabled"></ion-input>\n\t\t\t<ion-button \n\t\t\t\texpand="block"\n\t\t\t\t*ngIf="voiceEnabled"\n\t\t\t\tng-style="{float: \'right\'}"\n\t\t\t\t(click)="micButtonHandler()"\n\t\t\t\t[disabled]="micButtonDisabled"\n\t\t\t>\n\t\t\t\t{{micText}}\n\t\t\t</ion-button>\n\t\t\t<ion-button\n\t\t\t\texpand="block"\n\t\t\t\t*ngIf="textEnabled"\n\t\t\t\tng-style="{float: \'right\'}"\n\t\t\t\t(click)="inputDisabled === false || onSubmit(inputValue.value)"\n\t\t\t>\n\t\t\t\tSend\n\t\t\t</ion-button>\n\t\t</div>\n\t</div>\n</div>\n'}),f(1,t.Inject(w))],n)}(Oe),Me=function(){function e(e,n){var i=this;this.componentFactoryResolver=e,this.complete=new t.EventEmitter,n.onContainerCreated((function(e){i.viewContainerRef=e,i.loadComponent()})),n.onContainerDestroyed((function(){i.viewContainerRef=void 0}))}return e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.loadComponent=function(){var e=this,t={bot:this.bot,title:this.title,clearComplete:this.clearComplete,conversationModeOn:this.conversationModeOn,voiceConfig:this.voiceConfig,voiceEnabled:this.voiceEnabled,textEnabled:this.textEnabled},n=this.framework&&"ionic"===this.framework.toLowerCase()?new b(Re,t):new b(Oe,t),i=this.componentFactoryResolver.resolveComponentFactory(n.component);this.viewContainerRef.clear();var o=this.viewContainerRef.createComponent(i);o.instance.data=n.data,o.instance.complete.subscribe((function(t){e.complete.emit(t)}))},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:void 0,decorators:[{type:t.Inject,args:["dynamic-component-service"]}]}]},m([t.Input()],e.prototype,"framework",void 0),m([t.Input()],e.prototype,"bot",void 0),m([t.Input()],e.prototype,"title",void 0),m([t.Input()],e.prototype,"clearComplete",void 0),m([t.Input()],e.prototype,"conversationModeOn",void 0),m([t.Input()],e.prototype,"voiceConfig",void 0),m([t.Input()],e.prototype,"voiceEnabled",void 0),m([t.Input()],e.prototype,"textEnabled",void 0),m([t.Output()],e.prototype,"complete",void 0),e=m([t.Component({selector:"amplify-interactions",template:'\n\t\t<div class="amplify-component">\n\t\t\t<ng-template component-host></ng-template>\n\t\t</div>\n\t'}),f(1,t.Inject("dynamic-component-service"))],e)}(),Ne=function(){function e(e,t){this.viewContainerRef=e,t.registerContainer(e)}return e.ctorParameters=function(){return[{type:t.ViewContainerRef},{type:void 0,decorators:[{type:t.Inject,args:["dynamic-component-service"]}]}]},e=m([t.Directive({selector:"[component-host]"}),f(1,t.Inject("dynamic-component-service"))],e)}(),je=function(){function e(){}return Object.defineProperty(e.prototype,"title",{set:function(e){this.title=e},enumerable:!0,configurable:!0}),m([t.Input()],e.prototype,"title",null),e=m([t.Component({selector:"amplify-form",template:'\n<div class="amplify-form">\n  <div class="form-header">\n    <div class="form-title">{{ title }}</div>\n  </div>\n  <div class="form-body">\n    <ng-content select="[form-body]"></ng-content>\n  </div>\n  <div class="form-footer">\n    <ng-content select="[form-footer]"></ng-content>\n  </div>\n</div>\n'})],e)}(),Be='\n<div id="sumerian-scene-container" class={{amplifyUI.sumerianSceneContainer}} data-test="'+A.container+'">\n  <div id="sumerian-scene-dom-id" class={{amplifyUI.sumerianScene}} data-test="'+A.sumerianScene+'">\n    <sumerian-scene-loading-core *ngIf="loading" loadPercentage={{loadPercentage}} sceneName={{sceneName}} sceneError={{sceneError}} data-test="'+A.loading+'"></sumerian-scene-loading-core>\n  </div>\n  <div *ngIf="!loading" class={{amplifyUI.sceneBar}} data-test="'+A.bar+'">\n    <span class={{amplifyUI.sceneActions}} data-test="'+A.actions+'">\n      <div [ngClass]="[amplifyUI.tooltip, showEnableAudio ? amplifyUI.autoShowTooltip : \'\']" [attr.data-text]="showEnableAudio ? \'The scene is muted. Click to unmute.\' : (muted ? \'Unmute\' : \'Mute\')" (click)="muted ? setMuted(false) : setMuted(true)">\n        <button class={{amplifyUI.actionButton}}>\n          <svg *ngIf="muted" width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n            <g id="icons/minis/volumeOff" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n              <path d="M3.48026899,12.9630494 C3.63825091,12.9630494 3.79237961,13.0108921 3.92264322,13.1003479 L8.77467683,16.8113609 C9.29423971,17.1679383 10,16.7950396 10,16.1637406 L10,3.78619489 C10,3.15489596 9.29423971,2.78199725 8.77467683,3.13857463 L3.92264322,6.84545211 C3.79237961,6.93490793 3.63825091,6.9827506 3.48026899,6.9827506 L1.78294894,6.9827506 C1.3505185,6.9827506 1,7.33409518 1,7.76754476 L1,12.1781306 C1,12.6117048 1.3505185,12.9630494 1.78294894,12.9630494 L3.48026899,12.9630494 Z M17.2118156,7 L15.0918385,9.11997713 L12.9718614,7 L12,7.97174685 L14.1200917,10.091724 L12,12.2118156 L12.9718614,13.1835625 L15.0918385,11.0635854 L17.2118156,13.1835625 L18.1835625,12.2118156 L16.0635854,10.091724 L18.1835625,7.97174685 L17.2118156,7 Z" id="Fill-2" fill="#FFFFFF"></path>\n            </g>\n          </svg>\n          <svg *ngIf="!muted" width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n            <g id="icons/minis/volumeOn" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n              <path d="M3.48026899,12.9630494 L1.78294894,12.9630494 C1.3505185,12.9630494 1,12.6117048 1,12.1781306 L1,7.76754476 C1,7.33409518 1.3505185,6.9827506 1.78294894,6.9827506 L3.48026899,6.9827506 C3.63825091,6.9827506 3.79237961,6.93490793 3.92264322,6.84545211 L8.77467683,3.13857463 C9.29423971,2.78199725 10,3.15489596 10,3.78619489 L10,16.1637406 C10,16.7950396 9.29423971,17.1679383 8.77467683,16.8113609 L3.92264322,13.1003479 C3.79237961,13.0108921 3.63825091,12.9630494 3.48026899,12.9630494 Z M14.9270376,3.03232286 C15.1729267,3.03232286 15.4040399,3.12815658 15.5777627,3.3022351 C17.3699891,5.09889099 18.3570052,7.48235058 18.3570052,10.0135053 C18.3570052,12.54466 17.3699891,14.9281196 15.5777627,16.7247755 C15.4041045,16.898854 15.1729914,16.9947524 14.9270052,16.9947524 C14.6820861,16.9947524 14.4515549,16.899436 14.2777674,16.7263598 C13.9192316,16.3684383 13.9185203,15.7852882 14.2762477,15.4264291 C15.7222893,13.9769926 16.5186727,12.0545954 16.5186727,10.0135053 C16.5186727,7.97241524 15.7222893,6.05001801 14.2762154,4.60058152 C13.9184879,4.24175473 13.9191992,3.65857229 14.277832,3.30065081 C14.4514256,3.1275746 14.6819567,3.03232286 14.9270376,3.03232286 Z M13.5730665,6.11570485 C14.6133991,7.15574642 15.1862998,8.54003279 15.1862998,10.0134924 C15.1862998,11.4892799 14.6113945,12.8741159 13.5675376,13.9128965 C13.3942351,14.0855848 13.1639626,14.1806425 12.9191727,14.1806425 C12.6727016,14.1806425 12.4412975,14.0844531 12.2677039,13.9097926 C12.0944984,13.7358111 11.9994406,13.5047303 11.9999903,13.2592291 C12.0005723,13.0136956 12.096794,12.7831644 12.2708079,12.6100882 C12.9654406,11.9185917 13.3479995,10.996467 13.3479995,10.0134924 C13.3479995,9.03119677 12.966346,8.1086194 12.2733298,7.4157649 C11.9150203,7.05745543 11.9149233,6.47436998 12.2731358,6.11589885 C12.4467617,5.94224065 12.6775838,5.84666559 12.923085,5.84666559 C13.1685538,5.84666559 13.3993436,5.94220831 13.5730665,6.11570485 Z" id="Fill-2" fill="#FFFFFF"></path>\n            </g>\n          </svg>\n        </button>\n      </div>\n      <div *ngIf="isVRCapable && !isVRPresentationActive" class={{amplifyUI.tooltip}} data-text="Enter VR" (click)="toggleVRPresentation()">\n        <button class={{amplifyUI.actionButton}}>\n          <svg width="19px" height="19px" viewBox="0 0 17 10" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n            <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n              <g id="VRon" fill="#FFFFFF" fill-rule="nonzero">\n                <path d="M15.7856977,0.02395184 L15.8915734,0.02395184 C16.5037405,0.02395184 17,0.520211324 17,1.13237842 L17,1.54663675 L17,8.8915038 C17,9.5034193 16.4560011,10 15.7856977,10 L12.0095825,10 C9.98324439,7.1593807 8.80676009,5.741338 8.48012959,5.74587199 C8.16206045,5.75028714 7.01003321,7.1683298 5.02404785,10 L1.21426911,10 C0.543965735,10 3.32031236e-05,9.5034193 3.32031236e-05,8.8915038 L3.32031236e-05,1.54663675 L3.32031236e-05,1.13237842 L3.32031236e-05,1.13237842 C3.32031236e-05,0.520211324 0.496292687,0.02395184 1.10845978,0.02395184 L1.21426911,0.02395184 L15.7856977,0.02395184 Z M4.5,6 C5.32842712,6 6,5.32842712 6,4.5 C6,3.67157288 5.32842712,3 4.5,3 C3.67157288,3 3,3.67157288 3,4.5 C3,5.32842712 3.67157288,6 4.5,6 Z M12.5,6 C13.3284271,6 14,5.32842712 14,4.5 C14,3.67157288 13.3284271,3 12.5,3 C11.6715729,3 11,3.67157288 11,4.5 C11,5.32842712 11.6715729,6 12.5,6 Z" id="Fill-1"></path>\n              </g>\n            </g>\n          </svg>\n        </button>\n      </div>\n      <div *ngIf="isVRCapable && isVRPresentationActive" class={{amplifyUI.tooltip}} data-text="Exit VR" (click)="toggleVRPresentation()">\n        <button class={{amplifyUI.actionButton}}>\n          <svg width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n            <g id="icons/minis/VRon-Copy" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n              <g id="Group-7-Copy" transform="translate(1.000000, 3.000000)" fill="#FFFFFF">\n                <path d="M15.7856977,3.02395184 L17,3.02395184 L17,4.13237842 L17,4.54663675 L17,11.8915038 C17,12.5034193 16.4560011,13 15.7856977,13 L12.0095825,13 C9.98324439,10.1593807 8.80676009,8.741338 8.48012959,8.74587199 C8.16206045,8.75028714 7.01003321,10.1683298 5.02404785,13 L1.21426911,13 C0.543965735,13 3.32031236e-05,12.5034193 3.32031236e-05,11.8915038 L3.32031236e-05,4.54663675 L3.32031236e-05,4.13237842 L3.32031236e-05,3.02395184 L1.21426911,3.02395184 L15.7856977,3.02395184 Z M4.5,9 C5.32842712,9 6,8.32842712 6,7.5 C6,6.67157288 5.32842712,6 4.5,6 C3.67157288,6 3,6.67157288 3,7.5 C3,8.32842712 3.67157288,9 4.5,9 Z M12.5,9 C13.3284271,9 14,8.32842712 14,7.5 C14,6.67157288 13.3284271,6 12.5,6 C11.6715729,6 11,6.67157288 11,7.5 C11,8.32842712 11.6715729,9 12.5,9 Z M2.5486669,0 L14.420089,0 C14.7977406,0 15.1613805,0.149260956 15.4374308,0.417695511 L16.9999668,2.00634766 L0,2.00634766 L1.58537972,0.395493117 C1.84682061,0.141306827 2.19106994,0 2.5486669,0 Z" id="Fill-1"></path>\n              </g>\n            </g>\n          </svg>\n        </button>\n      </div>\n      <div *ngIf="!isFullscreen" class={{amplifyUI.tooltip}} data-text="Fullscreen">\n        <button class={{amplifyUI.actionButton}} (click)="maximize()">\n          <svg width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n            <g id="icons/minis/screenfull" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n              <path d="M2.04162598,3 L2.04162598,16 L17.0147705,16 L17.0147705,3 L2.04162598,3 Z M1,2 L18,2 L18,17 L1,17 L1,2 Z M3,4 L16,4 L16,15 L3,15 L3,4 Z" id="Rectangle-Copy" fill="#FFFFFF" fill-rule="nonzero"></path>\n            </g>\n          </svg>\n        </button>\n      </div>\n      <div *ngIf="isFullscreen" class={{amplifyUI.tooltip}} data-text="Exit Fullscreen">\n        <button class={{amplifyUI.actionButton}} (click)="minimize()">\n          <svg width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n            <g id="icons/minis/screensmall" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n              <path d="M11,16 L17.0147705,16 L17.0147705,3 L2.04162598,3 L2.04162598,10 L11,10 L11,16 Z M1,2 L18,2 L18,17 L1,17 L1,2 Z" id="Rectangle" fill="#FFFFFF" fill-rule="nonzero"></path>\n            </g>\n          </svg>\n        </button>\n      </div>\n    </span>\n  </div>\n</div>\n',Te=function(){function e(e){var t=this;this.amplifyService=e,this.loading=!1,this.loadPercentage=0,this.muted=!1,this.showEnableAudio=!1,this.isVRCapable=!1,this.isVRPresentationActive=!1,this.isFullscreen=!1,this.sceneError=null,this.progressCallback=function(e){var n=100*e;t.loadPercentage=n},this.amplifyUI=l,this.logger=this.amplifyService.logger("SumerianSceneComponentCore")}return Object.defineProperty(e.prototype,"data",{set:function(e){this.sceneName=e.sceneName},enumerable:!0,configurable:!0}),e.prototype.ngOnInit=function(){if(document.addEventListener("fullscreenchange",this.onFullscreenChange.bind(this)),document.addEventListener("webkitfullscreenchange",this.onFullscreenChange.bind(this)),document.addEventListener("mozfullscreenchange",this.onFullscreenChange.bind(this)),document.addEventListener("MSFullscreenChange",this.onFullscreenChange.bind(this)),!this.amplifyService.xr())throw new Error("XR module not registered on AmplifyService provider");this.loadAndStartScene()},e.prototype.ngOnDestroy=function(){document.removeEventListener("fullscreenchange",this.onFullscreenChange.bind(this)),document.removeEventListener("webkitfullscreenchange",this.onFullscreenChange.bind(this)),document.removeEventListener("mozfullscreenchange",this.onFullscreenChange.bind(this)),document.removeEventListener("MSFullscreenChange",this.onFullscreenChange.bind(this))},e.prototype.loadAndStartScene=function(){return h(this,void 0,void 0,(function(){var e,t,n=this;return y(this,(function(i){switch(i.label){case 0:this.loading=!0,e={progressCallback:this.progressCallback},i.label=1;case 1:return i.trys.push([1,3,,4]),[4,this.amplifyService.xr().loadScene(this.sceneName,"sumerian-scene-dom-id",e)];case 2:return i.sent(),[3,4];case 3:return t=i.sent(),this.sceneError="Failed to load scene",this.logger.error(this.sceneError,t),[2];case 4:return this.amplifyService.xr().start(this.sceneName),this.loading=!1,this.muted=this.amplifyService.xr().isMuted(this.sceneName),this.isVRCapable=this.amplifyService.xr().isVRCapable(this.sceneName),this.isVRPresentationActive=this.amplifyService.xr().isVRPresentationActive(this.sceneName),this.amplifyService.xr().onSceneEvent(this.sceneName,"AudioEnabled",(function(){return n.showEnableAudio=!1})),this.amplifyService.xr().onSceneEvent(this.sceneName,"AudioDisabled",(function(){return n.showEnableAudio=!0})),[2]}}))}))},e.prototype.setMuted=function(e){this.muted=e,this.amplifyService.xr().setMuted(this.sceneName,e),this.showEnableAudio&&(this.amplifyService.xr().enableAudio(this.sceneName),this.showEnableAudio=!1)},e.prototype.toggleVRPresentation=function(){try{this.isVRPresentationActive?this.amplifyService.xr().exitVR(this.sceneName):this.amplifyService.xr().enterVR(this.sceneName)}catch(e){return void this.logger.error("Unable to start/stop WebVR System: "+e.message)}this.isVRPresentationActive=!this.isVRPresentationActive},e.prototype.onFullscreenChange=function(){var e=document;this.isFullscreen=null!==e.fullscreenElement},e.prototype.maximize=function(){return h(this,void 0,void 0,(function(){var e;return y(this,(function(t){return e=document.getElementById("sumerian-scene-container"),(e.requestFullscreen||e.msRequestFullscreen||e.mozRequestFullScreen||e.webkitRequestFullscreen).call(e),[2]}))}))},e.prototype.minimize=function(){return h(this,void 0,void 0,(function(){var e;return y(this,(function(t){return(e=document).exitFullscreen?e.exitFullscreen():e.mozCancelFullScreen?e.mozCancelFullScreen():e.webkitExitFullscreen&&e.webkitExitFullscreen(),[2]}))}))},e.ctorParameters=function(){return[{type:w}]},m([t.Input()],e.prototype,"sceneName",void 0),m([t.Input()],e.prototype,"data",null),e=m([t.Component({selector:"sumerian-scene-core",template:Be})],e)}(),De='\n<div id="sumerian-scene-container" [ngClass]="amplifyUI.sumerianSceneContainer" data-test="'+A.container+'">\n  <div id="sumerian-scene-dom-id" [class]="amplifyUI.sumerianScene" data-test="'+A.sumerianScene+'">\n    <sumerian-scene-loading-ionic *ngIf="loading" loadPercentage={{loadPercentage}} sceneName={{sceneName}} data-test="'+A.loading+'"></sumerian-scene-loading-ionic>\n  </div>\n  <div *ngIf="!loading" class={{amplifyUI.sceneBar}} data-test="'+A.bar+'">\n    <span class={{amplifyUI.sceneActions}} data-test="'+A.actions+'">\n      <div [ngClass]="[amplifyUI.tooltip, showEnableAudio ? amplifyUI.autoShowTooltip : \'\']" [attr.data-text]="showEnableAudio ? \'The scene is muted. Click to unmute.\' : (muted ? \'Unmute\' : \'Mute\')" (click)="muted ? setMuted(false) : setMuted(true)">\n        <button class={{amplifyUI.actionButton}}>\n          <svg *ngIf="muted" width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n            <g id="icons/minis/volumeOff" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n              <path d="M3.48026899,12.9630494 C3.63825091,12.9630494 3.79237961,13.0108921 3.92264322,13.1003479 L8.77467683,16.8113609 C9.29423971,17.1679383 10,16.7950396 10,16.1637406 L10,3.78619489 C10,3.15489596 9.29423971,2.78199725 8.77467683,3.13857463 L3.92264322,6.84545211 C3.79237961,6.93490793 3.63825091,6.9827506 3.48026899,6.9827506 L1.78294894,6.9827506 C1.3505185,6.9827506 1,7.33409518 1,7.76754476 L1,12.1781306 C1,12.6117048 1.3505185,12.9630494 1.78294894,12.9630494 L3.48026899,12.9630494 Z M17.2118156,7 L15.0918385,9.11997713 L12.9718614,7 L12,7.97174685 L14.1200917,10.091724 L12,12.2118156 L12.9718614,13.1835625 L15.0918385,11.0635854 L17.2118156,13.1835625 L18.1835625,12.2118156 L16.0635854,10.091724 L18.1835625,7.97174685 L17.2118156,7 Z" id="Fill-2" fill="#FFFFFF"></path>\n            </g>\n          </svg>\n          <svg *ngIf="!muted" width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n            <g id="icons/minis/volumeOn" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n              <path d="M3.48026899,12.9630494 L1.78294894,12.9630494 C1.3505185,12.9630494 1,12.6117048 1,12.1781306 L1,7.76754476 C1,7.33409518 1.3505185,6.9827506 1.78294894,6.9827506 L3.48026899,6.9827506 C3.63825091,6.9827506 3.79237961,6.93490793 3.92264322,6.84545211 L8.77467683,3.13857463 C9.29423971,2.78199725 10,3.15489596 10,3.78619489 L10,16.1637406 C10,16.7950396 9.29423971,17.1679383 8.77467683,16.8113609 L3.92264322,13.1003479 C3.79237961,13.0108921 3.63825091,12.9630494 3.48026899,12.9630494 Z M14.9270376,3.03232286 C15.1729267,3.03232286 15.4040399,3.12815658 15.5777627,3.3022351 C17.3699891,5.09889099 18.3570052,7.48235058 18.3570052,10.0135053 C18.3570052,12.54466 17.3699891,14.9281196 15.5777627,16.7247755 C15.4041045,16.898854 15.1729914,16.9947524 14.9270052,16.9947524 C14.6820861,16.9947524 14.4515549,16.899436 14.2777674,16.7263598 C13.9192316,16.3684383 13.9185203,15.7852882 14.2762477,15.4264291 C15.7222893,13.9769926 16.5186727,12.0545954 16.5186727,10.0135053 C16.5186727,7.97241524 15.7222893,6.05001801 14.2762154,4.60058152 C13.9184879,4.24175473 13.9191992,3.65857229 14.277832,3.30065081 C14.4514256,3.1275746 14.6819567,3.03232286 14.9270376,3.03232286 Z M13.5730665,6.11570485 C14.6133991,7.15574642 15.1862998,8.54003279 15.1862998,10.0134924 C15.1862998,11.4892799 14.6113945,12.8741159 13.5675376,13.9128965 C13.3942351,14.0855848 13.1639626,14.1806425 12.9191727,14.1806425 C12.6727016,14.1806425 12.4412975,14.0844531 12.2677039,13.9097926 C12.0944984,13.7358111 11.9994406,13.5047303 11.9999903,13.2592291 C12.0005723,13.0136956 12.096794,12.7831644 12.2708079,12.6100882 C12.9654406,11.9185917 13.3479995,10.996467 13.3479995,10.0134924 C13.3479995,9.03119677 12.966346,8.1086194 12.2733298,7.4157649 C11.9150203,7.05745543 11.9149233,6.47436998 12.2731358,6.11589885 C12.4467617,5.94224065 12.6775838,5.84666559 12.923085,5.84666559 C13.1685538,5.84666559 13.3993436,5.94220831 13.5730665,6.11570485 Z" id="Fill-2" fill="#FFFFFF"></path>\n            </g>\n          </svg>\n        </button>\n      </div>\n      <div *ngIf="isVRCapable && !isVRPresentationActive" class={{amplifyUI.tooltip}} data-text="Enter VR" (click)="toggleVRPresentation()">\n        <button class={{amplifyUI.actionButton}}>\n          <svg width="19px" height="19px" viewBox="0 0 17 10" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n            <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n              <g id="VRon" fill="#FFFFFF" fill-rule="nonzero">\n                <path d="M15.7856977,0.02395184 L15.8915734,0.02395184 C16.5037405,0.02395184 17,0.520211324 17,1.13237842 L17,1.54663675 L17,8.8915038 C17,9.5034193 16.4560011,10 15.7856977,10 L12.0095825,10 C9.98324439,7.1593807 8.80676009,5.741338 8.48012959,5.74587199 C8.16206045,5.75028714 7.01003321,7.1683298 5.02404785,10 L1.21426911,10 C0.543965735,10 3.32031236e-05,9.5034193 3.32031236e-05,8.8915038 L3.32031236e-05,1.54663675 L3.32031236e-05,1.13237842 L3.32031236e-05,1.13237842 C3.32031236e-05,0.520211324 0.496292687,0.02395184 1.10845978,0.02395184 L1.21426911,0.02395184 L15.7856977,0.02395184 Z M4.5,6 C5.32842712,6 6,5.32842712 6,4.5 C6,3.67157288 5.32842712,3 4.5,3 C3.67157288,3 3,3.67157288 3,4.5 C3,5.32842712 3.67157288,6 4.5,6 Z M12.5,6 C13.3284271,6 14,5.32842712 14,4.5 C14,3.67157288 13.3284271,3 12.5,3 C11.6715729,3 11,3.67157288 11,4.5 C11,5.32842712 11.6715729,6 12.5,6 Z" id="Fill-1"></path>\n              </g>\n            </g>\n          </svg>\n        </button>\n      </div>\n      <div *ngIf="isVRCapable && isVRPresentationActive" class={{amplifyUI.tooltip}} data-text="Exit VR" (click)="toggleVRPresentation()">\n        <button class={{amplifyUI.actionButton}}>\n          <svg width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n            <g id="icons/minis/VRon-Copy" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n              <g id="Group-7-Copy" transform="translate(1.000000, 3.000000)" fill="#FFFFFF">\n                <path d="M15.7856977,3.02395184 L17,3.02395184 L17,4.13237842 L17,4.54663675 L17,11.8915038 C17,12.5034193 16.4560011,13 15.7856977,13 L12.0095825,13 C9.98324439,10.1593807 8.80676009,8.741338 8.48012959,8.74587199 C8.16206045,8.75028714 7.01003321,10.1683298 5.02404785,13 L1.21426911,13 C0.543965735,13 3.32031236e-05,12.5034193 3.32031236e-05,11.8915038 L3.32031236e-05,4.54663675 L3.32031236e-05,4.13237842 L3.32031236e-05,3.02395184 L1.21426911,3.02395184 L15.7856977,3.02395184 Z M4.5,9 C5.32842712,9 6,8.32842712 6,7.5 C6,6.67157288 5.32842712,6 4.5,6 C3.67157288,6 3,6.67157288 3,7.5 C3,8.32842712 3.67157288,9 4.5,9 Z M12.5,9 C13.3284271,9 14,8.32842712 14,7.5 C14,6.67157288 13.3284271,6 12.5,6 C11.6715729,6 11,6.67157288 11,7.5 C11,8.32842712 11.6715729,9 12.5,9 Z M2.5486669,0 L14.420089,0 C14.7977406,0 15.1613805,0.149260956 15.4374308,0.417695511 L16.9999668,2.00634766 L0,2.00634766 L1.58537972,0.395493117 C1.84682061,0.141306827 2.19106994,0 2.5486669,0 Z" id="Fill-1"></path>\n              </g>\n            </g>\n          </svg>\n        </button>\n      </div>\n      <div *ngIf="!isFullscreen" class={{amplifyUI.tooltip}} data-text="Fullscreen">\n        <button class={{amplifyUI.actionButton}} (click)="maximize()">\n          <svg width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n            <g id="icons/minis/screenfull" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n              <path d="M2.04162598,3 L2.04162598,16 L17.0147705,16 L17.0147705,3 L2.04162598,3 Z M1,2 L18,2 L18,17 L1,17 L1,2 Z M3,4 L16,4 L16,15 L3,15 L3,4 Z" id="Rectangle-Copy" fill="#FFFFFF" fill-rule="nonzero"></path>\n            </g>\n          </svg>\n        </button>\n      </div>\n      <div *ngIf="isFullscreen" class={{amplifyUI.tooltip}} data-text="Exit Fullscreen">\n        <button class={{amplifyUI.actionButton}} (click)="minimize()">\n          <svg width="19px" height="19px" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n            <g id="icons/minis/screensmall" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n              <path d="M11,16 L17.0147705,16 L17.0147705,3 L2.04162598,3 L2.04162598,10 L11,10 L11,16 Z M1,2 L18,2 L18,17 L1,17 L1,2 Z" id="Rectangle" fill="#FFFFFF" fill-rule="nonzero"></path>\n            </g>\n          </svg>\n        </button>\n      </div>\n    </span>\n  </div>\n</div>\n',qe=function(e){function n(t){var n=e.call(this,t)||this;return n.amplifyService=t,n}return p(n,e),n.ctorParameters=function(){return[{type:w}]},n=m([t.Component({selector:"sumerian-scene-ionic",template:De})],n)}(Te),Ge=function(){function e(e,t){var n=this;this.componentFactoryResolver=e,t.onContainerCreated((function(e){n.viewContainerRef=e,n.loadComponent()})),t.onContainerDestroyed((function(){n.viewContainerRef=void 0}))}return e.prototype.ngOnInit=function(){},e.prototype.ngOnDestroy=function(){},e.prototype.loadComponent=function(){var e=this.framework&&"ionic"===this.framework.toLowerCase()?new b(qe,{sceneName:this.sceneName}):new b(Te,{sceneName:this.sceneName}),t=this.componentFactoryResolver.resolveComponentFactory(e.component);this.viewContainerRef.clear(),this.viewContainerRef.createComponent(t).instance.data=e.data},e.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:void 0,decorators:[{type:t.Inject,args:["dynamic-component-service"]}]}]},m([t.Input()],e.prototype,"framework",void 0),m([t.Input()],e.prototype,"sceneName",void 0),e=m([t.Component({selector:"amplify-sumerian-scene",template:"\n\t\t<ng-template component-host></ng-template>\n\t"}),f(1,t.Inject("dynamic-component-service"))],e)}(),Ve='\n<div class={{AmplifyUI.loadingOverlay}}>\n  <div class={{AmplifyUI.loadingContainer}}>\n    <div class={{AmplifyUI.loadingLogo}} data-test="'+A.loadingLogo+'">\n      <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n      viewBox="0 0 2000 1195" style="enable-background:new 0 0 2000 1195;" xml:space="preserve">\n        <g>\n          <path class="st0" d="M1026.8,146.2c-0.7,2.3-1.2,3.7-1.6,5.1C991.8,291,958.5,430.6,925,570.3c-1.6,6.7-3.8,13.3-6.2,19.7\n            c-3.9,10.4-12,16.3-22.8,16.5c-26.3,0.5-52.6,0.5-78.9,0c-9.5-0.2-17.3-5.3-21.2-14.2c-4.1-9.2-7.6-18.7-10.6-28.3\n            c-51-167.3-101.9-334.6-152.7-502c-2.5-8.4-4.7-16.9-6.2-25.5c-2-11.7,3.8-18.9,15.5-19c24.6-0.2,49.2,0.1,73.8,0.4\n            c12,0.2,21.1,5.9,24.8,17.3c5.4,16.3,10.1,32.8,14.4,49.4c33.9,133.3,67.7,266.6,101.5,399.9c0.3,1.3,0.8,2.6,1.5,5\n            c0.7-2,1.3-3,1.5-4.1c19.9-84.2,39.7-168.4,59.6-252.7c14.5-61.3,28.9-122.6,43.4-183.8c0.9-3.6,2.1-7.1,3.2-10.6\n            c4-13.2,13.5-19.8,26.6-20.1c24.1-0.6,48.2-0.5,72.3,0c12.6,0.2,21.5,7.2,25.1,19.2c3.9,12.9,7.1,26,10.1,39.1\n            c32.5,137.8,65,275.6,97.5,413.4c0.3,1.4,0.8,2.8,1.7,5.7c1.7-6.1,3-10.7,4.2-15.3c36.8-142.6,73.6-285.2,110.5-427.8\n            c1.4-5.5,3.7-10.8,5.7-16.2c4.5-12,13.8-17.8,26.1-18.1c21.7-0.6,43.5-0.5,65.2-0.7c2.2,0,4.4,0,6.6,0.3c9.9,1,14.9,5.9,14.3,15.9\n            c-0.4,7.5-1.8,15.1-4.1,22.3c-33.5,107.9-67.2,215.6-100.9,323.5c-20.5,65.7-41,131.4-61.6,197.1c-1.3,4-2.8,7.9-4.3,11.9\n            c-4.9,12.9-14.9,19.1-28.1,19.4c-23.9,0.5-47.9,0.4-71.8,0c-13.6-0.2-23.3-7.1-27.2-20.2c-4.5-15.5-8.3-31.2-12.1-46.9\n            c-31.2-129.6-62.3-259.3-93.4-388.9C1028,150.1,1027.5,148.7,1026.8,146.2z"/>\n          <path class="st0" d="M995.7,1194.2c-23.1,0-46.2,0.8-69.3-0.2c-25.4-1.1-50.7-3.5-76-5.7c-77.9-7-154.6-20.9-230.3-40.5\n            c-68.1-17.6-134.6-40.1-199.4-67.3C330.7,1042.5,245.3,996,164.5,941c-53.7-36.6-104.7-76.7-153-120.1c-3.5-3.1-6.6-6.8-9-10.8\n            c-3.5-5.8-3.4-12.1,0.8-17.5c4.3-5.6,10.5-7.4,17.2-5.7c4.5,1.2,8.8,3.3,12.9,5.5c42.2,22.1,83.9,45.3,126.7,66.4\n            c63.2,31.2,128.6,57.4,195.1,80.8c68.4,24,137.7,44.8,208.4,60.6c48.4,10.8,97.2,19.9,146,28.7c29.8,5.3,59.9,8.8,89.9,12.3\n            c23.4,2.7,46.9,4.6,70.3,6.3c22.8,1.7,45.7,3.3,68.5,4c39.8,1.1,79.5,2.1,119.3,1.8c29.9-0.2,59.9-2,89.8-4\n            c26.2-1.7,52.4-3.7,78.4-7.1c46.8-6.2,93.6-12.7,140.1-20.9c99-17.3,196-42.9,290.8-76.1c40.7-14.3,80.6-30.6,120.8-46.1\n            c12-4.6,23.6-5.4,34.7,2c11.5,7.7,15.3,22.7,7.6,34.2c-4,6-9.6,11.4-15.4,15.7c-81,59.3-169.6,104.7-262.8,141.3\n            c-77,30.2-156,53.6-237,70.3c-37.9,7.8-76.1,13.8-114.3,19.6c-24.7,3.7-49.7,6-74.7,8.2c-22.1,1.9-44.3,3.3-66.5,4.1\n            c-17.8,0.7-35.7,0.1-53.6,0.1C995.7,1194.3,995.7,1194.2,995.7,1194.2z"/>\n          <path class="st0" d="M1714.8,0c39.2,0.9,85.7,8.5,130.2,26.1c9.3,3.7,17.9,9.3,26.1,15.1c9,6.4,13.3,15.9,13.4,27.1\n            c0,12,0.1,23.9,0,35.9c0,2.5-0.4,5.1-1,7.5c-2.1,8.7-7.4,12.7-16.2,11.4c-5.7-0.9-11.6-2.6-16.8-5c-46.6-21.8-95.9-30.1-147-28.3\n            c-21.5,0.8-42.6,3.5-62.7,11.9c-37.6,15.6-54.4,54.2-39.7,91c7.1,17.8,21.1,28.8,37.3,37.7c21.4,11.8,44.5,19.1,67.6,26.5\n            c31.6,10,63.3,19.7,94.6,30.6c28.5,9.9,55.1,24,76.4,46.1c23.3,24.1,36.4,53.2,39.9,86.5c9.1,86.7-40.5,150.8-109.3,180.7\n            c-38.9,16.8-79.7,24.4-122,24.6c-56.9,0.2-112-9.7-164.9-30.7c-9.4-3.8-18.3-9.3-26.9-14.8c-9.7-6.2-13.6-16.1-13.9-27.3\n            c-0.4-13-0.3-26-0.1-38.9c0.3-14.9,8.1-21.1,22.5-17.3c8.2,2.2,16.2,5.6,24.1,9c52.7,22.5,107.7,31.7,164.8,29.6\n            c24.9-0.9,49.4-4.7,72-16c29.7-14.9,45.7-38.5,44.5-72.4c-0.9-23.7-11.9-41.7-31.7-54.4c-17.2-10.9-36.1-18-55.4-24.1\n            c-36.4-11.5-73.1-22.4-109.3-34.6c-30.8-10.4-58.7-26.2-81.4-50.2c-43.4-45.8-56.3-116.8-30.6-172.5c18.1-39.3,48.5-66.6,86.9-85.5\n            C1624,6.4,1664.5,0,1714.8,0z"/>\n          <path class="st0" d="M1860.6,746.5c33.3,0.4,66.3,2.8,98.5,11.6c8.4,2.3,16.5,5.8,24.6,9.1c7.5,3.1,11.9,9.2,13.5,17.2\n            c2.5,12.2,3.1,24.5,2.5,37.1c-1.2,24-5,47.5-10.5,70.8c-12.3,51.3-31.6,99.8-60.1,144.4c-16.5,25.9-36,49.3-59.4,69.2\n            c-5.2,4.4-10.7,8.3-17.9,8.4c-6.8,0-10.7-3.5-10.3-10.2c0.2-4.1,1.3-8.3,2.9-12.1c17-42.7,33.7-85.6,47-129.7\n            c7.6-25.2,14.3-50.6,16.5-76.9c0.7-8.8,0.1-17.9-1.1-26.7c-1.6-12-9.3-19.8-20.2-24.6c-12.5-5.4-25.8-8.2-39.2-9.1\n            c-18.6-1.3-37.4-2.3-56-2c-20.7,0.4-41.3,2.1-62,3.7c-18.8,1.4-37.5,3.3-56.3,5.2c-9.9,1-19.7,2.4-29.5,3.6c-1,0.1-2,0.4-3,0.3\n            c-4.8-0.2-9.7-0.8-12.4-5.4c-2.7-4.6-1.8-9.7,1.5-13.2c5.1-5.5,10.6-10.8,16.9-14.9c36.4-24,76.8-38.4,119.4-46.2\n            c22.1-4,44.6-5.9,67-8.3C1842.1,746.9,1851.4,746.9,1860.6,746.5z"/>\n          <path class="st0" d="M591.6,541.4c-21.4-36.5-29.7-76.2-29.7-117.9c-0.1-70.3,0.1-140.6-0.1-211c-0.1-29.6-3.8-58.8-13-87.1\n            c-15.6-48-45.4-83.2-92.4-102.9C424.8,9.3,391.7,3.9,357.9,2c-63.7-3.6-125.3,6.4-184.7,29.3c-11.7,4.5-23,10.3-34.3,16\n            c-11.6,5.8-17.3,15.4-17.1,28.6c0.2,12.6-0.1,25.3,0,37.9c0,2.9,0.1,5.8,0.7,8.5c2,9.5,7.9,13.7,17.3,11.2c8.4-2.2,16.8-5,24.9-8.2\n            c40.4-15.9,81.7-28.9,125.3-32.1c29.7-2.2,59.3-1.4,88.3,6.5c24.2,6.6,44.8,18.5,57.2,41.5c10.1,18.6,15.1,38.7,16.1,59.5\n            c1.3,24.7,1,49.5,1.4,74.3c0,0.8-0.2,1.6-0.3,2.8c-16.1-3.3-31.5-6.6-47.1-9.5c-46.9-8.6-94.1-13.2-141.8-7.7\n            c-33.5,3.9-65.4,12.9-94.4,30.5c-37.4,22.6-64.8,53.5-78.2,95.7c-10.9,34.3-11.9,69.4-4.4,104.4c12,56.1,44.4,96,97.9,117.4\n            c41.8,16.6,85.2,17.2,128.9,9.5c57.4-10.1,104-39.3,142.3-82.5c1.3-1.5,2.7-2.9,4.3-4.8c1.7,3.4,3.1,6.2,4.5,9\n            c10.4,21.4,22.2,42,38.5,59.7c11.2,12.1,24,14.5,37.5,5.8c14.5-9.3,28.8-18.8,42.9-28.6C597.7,567,600.3,556.1,591.6,541.4z\n              M448.3,436.2c-7.1,29.5-25.4,50.8-49.1,68.2c-22,16.2-47.4,23.8-73.8,28.5c-20.7,3.6-41.6,4.4-62.3-0.2\n            c-35.6-8-59.6-35.5-63.5-72.3c-2.3-21.9-1.9-43.5,7-64.1c11.9-27.6,34-43.2,61.9-51.5c21.4-6.4,43.4-7.9,63.7-7.5\n            c41.1,0.2,79.8,5.3,117.9,14.4c1.6,0.4,4.1,2.4,4.1,3.7C454.7,382.5,454.7,409.6,448.3,436.2z"/>\n        </g>\n      </svg>\n    </div>\n    <div class={{AmplifyUI.loadingSceneName}} data-test="'+A.loadingSceneName+'">{{sceneName}}</div>\n    <div *ngIf="sceneError" class={{AmplifyUI.sceneErrorText}} data-test="'+A.errorText+'">{{sceneError}}</div>\n    <div *ngIf="!sceneError" class={{AmplifyUI.loadingBar}} data-test="'+A.loadingBar+"\">\n      <div class={{AmplifyUI.loadingBarFill}} [ngStyle]=\"{ 'width': loadPercentage + '%' }\"></div>\n    </div>\n  </div>\n</div>\n",He=function(){function e(){this.AmplifyUI=l}return m([t.Input()],e.prototype,"loadPercentage",void 0),m([t.Input()],e.prototype,"sceneName",void 0),m([t.Input()],e.prototype,"sceneError",void 0),e=m([t.Component({selector:"sumerian-scene-loading-core",template:Ve})],e)}(),Ze={createListeners:[],destroyListeners:[],onContainerCreated:function(e){this.createListeners.push(e)},onContainerDestroyed:function(e){this.destroyListeners.push(e)},registerContainer:function(e){this.createListeners.forEach((function(t){t(e)}))},destroyContainer:function(e){this.destroyListeners.forEach((function(t){t(e)}))}},ze=[k,I,O,L,G,T,K,H,te,Q,re,ie,pe,le,ye,me,ve,Se,_e,we,Fe,ke,Le,Pe,Me,Oe,je,Ge,Te,He],Ke=Ze,$e=function(){function e(){}return e=m([t.NgModule({imports:[n.CommonModule,i.FormsModule],declarations:v([Ne],ze),entryComponents:[],providers:[{provide:"dynamic-component-service",useValue:Ke}],exports:v(ze)})],e)}(),We='\n<ion-grid class="amplify-ionic-grid-padding-left">\n    <ion-row>\n        <ion-col size="6" class="amplify-ionic-grid-padding-left">\n            <ion-label class="amplify-input-label push-right"\n                position="stacked" \n                for="localPhoneNumberField">\n                {{ this.amplifyService.i18n().get(this._label) }}\n                <span *ngIf="_required">*</span>\n            </ion-label>\n            <ion-select \n            #countryCodeField\n            name="countryCode"\n            class="amplify-select-phone-country"\n            [value]="_country_code"\n            (ionChange)="setCountryCode($event.target.value)"\n            data-test="'+P.genericAttrs.dialCodeSelect+'">\n            <ion-select-option *ngFor="let country of _countries"\n            value={{country.value}}>\n                {{country.label}}\n            </ion-select-option>\n            </ion-select>\n        </ion-col>\n        <ion-col size="6">\n            <ion-label class="amplify-input-label push-right">&nbsp;</ion-label>\n            <ion-input\n            #localPhoneNumberField\n            class="amplify-form-input-phone-ionic"\n            placeholder="{{ this.amplifyService.i18n().get(this.getPlaceholder()) }}"\n            name="local_phone_number"\n            type="tel"\n            (ionChange)="setLocalPhoneNumber($event.target.value)"\n            data-test="'+P.genericAttrs.phoneNumberInput+'"\n            ></ion-input>\n        </ion-col>\n    </ion-row>\n</ion-grid>',Ye=function(e){function n(t){var n=e.call(this,t)||this;return n.amplifyService=t,n}return p(n,e),n.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},n=m([t.Component({selector:"amplify-auth-phone-field-ionic",template:We}),f(0,t.Inject(w))],n)}(Se),Je='\n\n    <ion-item lines="none" *ngIf="this._usernameAttributes === \'email\'">\n        <ion-label class="amplify-input-label amplify-input-label-ionic" for="emailField" position="stacked">{{ this.amplifyService.i18n().get(\'Email *\') }}</ion-label>\n        <ion-input type="text"\n            #emailField\n            class="amplify-form-input"\n            type="email"\n            placeholder="{{ this.amplifyService.i18n().get(this.getPlaceholder()) }}"\n            (keyup)="setEmail($event.target.value)"\n            data-test="'+P.genericAttrs.emailInput+'"\n        ></ion-input>\n    </ion-item> \n    <ion-item lines="none" *ngIf="this._usernameAttributes === \'phone_number\'">\n       <amplify-auth-phone-field-ionic\n            (phoneFieldChanged)="onPhoneFieldChanged($event)"\n        ></amplify-auth-phone-field-ionic>\n    </ion-item>\n    <ion-item lines="none" *ngIf="this._usernameAttributes !== \'email\' && this._usernameAttributes !== \'phone_number\'">\n        <ion-label class="amplify-input-label amplify-input-label-ionic" for="usernameField" position="stacked">{{ this.amplifyService.i18n().get(getUsernameLabel()) }} *</ion-label>\n        <ion-input type="text"\n            #usernameField\n            class="amplify-form-input"\n            type="text"\n            placeholder="{{ this.amplifyService.i18n().get(this.getPlaceholder()) }}"\n            (keyup)="setUsername($event.target.value)"\n            data-test="'+P.genericAttrs.usernameInput+'"\n        ></ion-input>\n    </ion-item>\n\n',Qe=function(e){function n(t){var n=e.call(this,t)||this;return n.amplifyService=t,n}return p(n,e),n.ctorParameters=function(){return[{type:w,decorators:[{type:t.Inject,args:[w]}]}]},n=m([t.Component({selector:"amplify-auth-username-field-ionic",template:Je}),f(0,t.Inject(w))],n)}(ve),Xe='\n<div class={{AmplifyUI.loadingOverlay}}>\n  <div class={{AmplifyUI.loadingContainer}}>\n    <div class={{AmplifyUI.loadingLogo}} data-test="'+A.loadingLogo+'">\n      <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n      viewBox="0 0 2000 1195" style="enable-background:new 0 0 2000 1195;" xml:space="preserve">\n        <g>\n          <path class="st0" d="M1026.8,146.2c-0.7,2.3-1.2,3.7-1.6,5.1C991.8,291,958.5,430.6,925,570.3c-1.6,6.7-3.8,13.3-6.2,19.7\n            c-3.9,10.4-12,16.3-22.8,16.5c-26.3,0.5-52.6,0.5-78.9,0c-9.5-0.2-17.3-5.3-21.2-14.2c-4.1-9.2-7.6-18.7-10.6-28.3\n            c-51-167.3-101.9-334.6-152.7-502c-2.5-8.4-4.7-16.9-6.2-25.5c-2-11.7,3.8-18.9,15.5-19c24.6-0.2,49.2,0.1,73.8,0.4\n            c12,0.2,21.1,5.9,24.8,17.3c5.4,16.3,10.1,32.8,14.4,49.4c33.9,133.3,67.7,266.6,101.5,399.9c0.3,1.3,0.8,2.6,1.5,5\n            c0.7-2,1.3-3,1.5-4.1c19.9-84.2,39.7-168.4,59.6-252.7c14.5-61.3,28.9-122.6,43.4-183.8c0.9-3.6,2.1-7.1,3.2-10.6\n            c4-13.2,13.5-19.8,26.6-20.1c24.1-0.6,48.2-0.5,72.3,0c12.6,0.2,21.5,7.2,25.1,19.2c3.9,12.9,7.1,26,10.1,39.1\n            c32.5,137.8,65,275.6,97.5,413.4c0.3,1.4,0.8,2.8,1.7,5.7c1.7-6.1,3-10.7,4.2-15.3c36.8-142.6,73.6-285.2,110.5-427.8\n            c1.4-5.5,3.7-10.8,5.7-16.2c4.5-12,13.8-17.8,26.1-18.1c21.7-0.6,43.5-0.5,65.2-0.7c2.2,0,4.4,0,6.6,0.3c9.9,1,14.9,5.9,14.3,15.9\n            c-0.4,7.5-1.8,15.1-4.1,22.3c-33.5,107.9-67.2,215.6-100.9,323.5c-20.5,65.7-41,131.4-61.6,197.1c-1.3,4-2.8,7.9-4.3,11.9\n            c-4.9,12.9-14.9,19.1-28.1,19.4c-23.9,0.5-47.9,0.4-71.8,0c-13.6-0.2-23.3-7.1-27.2-20.2c-4.5-15.5-8.3-31.2-12.1-46.9\n            c-31.2-129.6-62.3-259.3-93.4-388.9C1028,150.1,1027.5,148.7,1026.8,146.2z"/>\n          <path class="st0" d="M995.7,1194.2c-23.1,0-46.2,0.8-69.3-0.2c-25.4-1.1-50.7-3.5-76-5.7c-77.9-7-154.6-20.9-230.3-40.5\n            c-68.1-17.6-134.6-40.1-199.4-67.3C330.7,1042.5,245.3,996,164.5,941c-53.7-36.6-104.7-76.7-153-120.1c-3.5-3.1-6.6-6.8-9-10.8\n            c-3.5-5.8-3.4-12.1,0.8-17.5c4.3-5.6,10.5-7.4,17.2-5.7c4.5,1.2,8.8,3.3,12.9,5.5c42.2,22.1,83.9,45.3,126.7,66.4\n            c63.2,31.2,128.6,57.4,195.1,80.8c68.4,24,137.7,44.8,208.4,60.6c48.4,10.8,97.2,19.9,146,28.7c29.8,5.3,59.9,8.8,89.9,12.3\n            c23.4,2.7,46.9,4.6,70.3,6.3c22.8,1.7,45.7,3.3,68.5,4c39.8,1.1,79.5,2.1,119.3,1.8c29.9-0.2,59.9-2,89.8-4\n            c26.2-1.7,52.4-3.7,78.4-7.1c46.8-6.2,93.6-12.7,140.1-20.9c99-17.3,196-42.9,290.8-76.1c40.7-14.3,80.6-30.6,120.8-46.1\n            c12-4.6,23.6-5.4,34.7,2c11.5,7.7,15.3,22.7,7.6,34.2c-4,6-9.6,11.4-15.4,15.7c-81,59.3-169.6,104.7-262.8,141.3\n            c-77,30.2-156,53.6-237,70.3c-37.9,7.8-76.1,13.8-114.3,19.6c-24.7,3.7-49.7,6-74.7,8.2c-22.1,1.9-44.3,3.3-66.5,4.1\n            c-17.8,0.7-35.7,0.1-53.6,0.1C995.7,1194.3,995.7,1194.2,995.7,1194.2z"/>\n          <path class="st0" d="M1714.8,0c39.2,0.9,85.7,8.5,130.2,26.1c9.3,3.7,17.9,9.3,26.1,15.1c9,6.4,13.3,15.9,13.4,27.1\n            c0,12,0.1,23.9,0,35.9c0,2.5-0.4,5.1-1,7.5c-2.1,8.7-7.4,12.7-16.2,11.4c-5.7-0.9-11.6-2.6-16.8-5c-46.6-21.8-95.9-30.1-147-28.3\n            c-21.5,0.8-42.6,3.5-62.7,11.9c-37.6,15.6-54.4,54.2-39.7,91c7.1,17.8,21.1,28.8,37.3,37.7c21.4,11.8,44.5,19.1,67.6,26.5\n            c31.6,10,63.3,19.7,94.6,30.6c28.5,9.9,55.1,24,76.4,46.1c23.3,24.1,36.4,53.2,39.9,86.5c9.1,86.7-40.5,150.8-109.3,180.7\n            c-38.9,16.8-79.7,24.4-122,24.6c-56.9,0.2-112-9.7-164.9-30.7c-9.4-3.8-18.3-9.3-26.9-14.8c-9.7-6.2-13.6-16.1-13.9-27.3\n            c-0.4-13-0.3-26-0.1-38.9c0.3-14.9,8.1-21.1,22.5-17.3c8.2,2.2,16.2,5.6,24.1,9c52.7,22.5,107.7,31.7,164.8,29.6\n            c24.9-0.9,49.4-4.7,72-16c29.7-14.9,45.7-38.5,44.5-72.4c-0.9-23.7-11.9-41.7-31.7-54.4c-17.2-10.9-36.1-18-55.4-24.1\n            c-36.4-11.5-73.1-22.4-109.3-34.6c-30.8-10.4-58.7-26.2-81.4-50.2c-43.4-45.8-56.3-116.8-30.6-172.5c18.1-39.3,48.5-66.6,86.9-85.5\n            C1624,6.4,1664.5,0,1714.8,0z"/>\n          <path class="st0" d="M1860.6,746.5c33.3,0.4,66.3,2.8,98.5,11.6c8.4,2.3,16.5,5.8,24.6,9.1c7.5,3.1,11.9,9.2,13.5,17.2\n            c2.5,12.2,3.1,24.5,2.5,37.1c-1.2,24-5,47.5-10.5,70.8c-12.3,51.3-31.6,99.8-60.1,144.4c-16.5,25.9-36,49.3-59.4,69.2\n            c-5.2,4.4-10.7,8.3-17.9,8.4c-6.8,0-10.7-3.5-10.3-10.2c0.2-4.1,1.3-8.3,2.9-12.1c17-42.7,33.7-85.6,47-129.7\n            c7.6-25.2,14.3-50.6,16.5-76.9c0.7-8.8,0.1-17.9-1.1-26.7c-1.6-12-9.3-19.8-20.2-24.6c-12.5-5.4-25.8-8.2-39.2-9.1\n            c-18.6-1.3-37.4-2.3-56-2c-20.7,0.4-41.3,2.1-62,3.7c-18.8,1.4-37.5,3.3-56.3,5.2c-9.9,1-19.7,2.4-29.5,3.6c-1,0.1-2,0.4-3,0.3\n            c-4.8-0.2-9.7-0.8-12.4-5.4c-2.7-4.6-1.8-9.7,1.5-13.2c5.1-5.5,10.6-10.8,16.9-14.9c36.4-24,76.8-38.4,119.4-46.2\n            c22.1-4,44.6-5.9,67-8.3C1842.1,746.9,1851.4,746.9,1860.6,746.5z"/>\n          <path class="st0" d="M591.6,541.4c-21.4-36.5-29.7-76.2-29.7-117.9c-0.1-70.3,0.1-140.6-0.1-211c-0.1-29.6-3.8-58.8-13-87.1\n            c-15.6-48-45.4-83.2-92.4-102.9C424.8,9.3,391.7,3.9,357.9,2c-63.7-3.6-125.3,6.4-184.7,29.3c-11.7,4.5-23,10.3-34.3,16\n            c-11.6,5.8-17.3,15.4-17.1,28.6c0.2,12.6-0.1,25.3,0,37.9c0,2.9,0.1,5.8,0.7,8.5c2,9.5,7.9,13.7,17.3,11.2c8.4-2.2,16.8-5,24.9-8.2\n            c40.4-15.9,81.7-28.9,125.3-32.1c29.7-2.2,59.3-1.4,88.3,6.5c24.2,6.6,44.8,18.5,57.2,41.5c10.1,18.6,15.1,38.7,16.1,59.5\n            c1.3,24.7,1,49.5,1.4,74.3c0,0.8-0.2,1.6-0.3,2.8c-16.1-3.3-31.5-6.6-47.1-9.5c-46.9-8.6-94.1-13.2-141.8-7.7\n            c-33.5,3.9-65.4,12.9-94.4,30.5c-37.4,22.6-64.8,53.5-78.2,95.7c-10.9,34.3-11.9,69.4-4.4,104.4c12,56.1,44.4,96,97.9,117.4\n            c41.8,16.6,85.2,17.2,128.9,9.5c57.4-10.1,104-39.3,142.3-82.5c1.3-1.5,2.7-2.9,4.3-4.8c1.7,3.4,3.1,6.2,4.5,9\n            c10.4,21.4,22.2,42,38.5,59.7c11.2,12.1,24,14.5,37.5,5.8c14.5-9.3,28.8-18.8,42.9-28.6C597.7,567,600.3,556.1,591.6,541.4z\n              M448.3,436.2c-7.1,29.5-25.4,50.8-49.1,68.2c-22,16.2-47.4,23.8-73.8,28.5c-20.7,3.6-41.6,4.4-62.3-0.2\n            c-35.6-8-59.6-35.5-63.5-72.3c-2.3-21.9-1.9-43.5,7-64.1c11.9-27.6,34-43.2,61.9-51.5c21.4-6.4,43.4-7.9,63.7-7.5\n            c41.1,0.2,79.8,5.3,117.9,14.4c1.6,0.4,4.1,2.4,4.1,3.7C454.7,382.5,454.7,409.6,448.3,436.2z"/>\n        </g>\n      </svg>\n    </div>\n    <div class={{AmplifyUI.loadingSceneName}} data-test="'+A.loadingSceneName+'">{{sceneName}}</div>\n    <div *ngIf="sceneError" class={{AmplifyUI.sceneErrorText}} data-test="'+A.errorText+'">{{sceneError}}</div>\n    <div *ngIf="!sceneError" class={{AmplifyUI.loadingBar}} data-test="'+A.loadingBar+"\">\n      <div class={{AmplifyUI.loadingBarFill}} [ngStyle]=\"{ 'width': loadPercentage + '%' }\"></div>\n    </div>\n  </div>\n</div>\n",et=function(e){function n(){return e.call(this)||this}return p(n,e),n=m([t.Component({selector:"sumerian-scene-loading-ionic",template:Xe})],n)}(He),tt=[_,x,q,he,ue,z,ee,Qe,Ye,ae,Ue,Ie,Ae,Re,qe,et],nt=function(){function e(){}return e=m([t.NgModule({imports:[n.CommonModule,i.FormsModule],declarations:v(tt),entryComponents:[],providers:[w],schemas:[t.CUSTOM_ELEMENTS_SCHEMA],exports:v(tt)})],e)}();e.AmplifyAngularModule=$e,e.AmplifyIonicModule=nt,e.AmplifyModules=function(e){return new w(e)},e.AmplifyService=w,e.ɵa=Ne,e.ɵb=k,e.ɵba=ke,e.ɵbb=Le,e.ɵbc=Pe,e.ɵbd=Me,e.ɵbe=Oe,e.ɵbf=je,e.ɵbg=Ge,e.ɵbh=Te,e.ɵbi=He,e.ɵbj=Ze,e.ɵbk=_,e.ɵbl=x,e.ɵbm=q,e.ɵbn=he,e.ɵbo=ue,e.ɵbp=z,e.ɵbq=ee,e.ɵbr=Qe,e.ɵbs=Ye,e.ɵbt=ae,e.ɵbu=Ue,e.ɵbv=Ie,e.ɵbw=Ae,e.ɵbx=Re,e.ɵby=qe,e.ɵbz=et,e.ɵc=I,e.ɵd=O,e.ɵe=L,e.ɵf=A,e.ɵg=F,e.ɵh=P,e.ɵi=w,e.ɵj=G,e.ɵk=T,e.ɵl=K,e.ɵm=H,e.ɵn=te,e.ɵo=Q,e.ɵp=re,e.ɵq=ie,e.ɵr=pe,e.ɵs=le,e.ɵt=ye,e.ɵu=me,e.ɵv=ve,e.ɵw=Se,e.ɵx=_e,e.ɵy=we,e.ɵz=Fe,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=flowaccount-aws-amplify-angular.umd.min.js.map