{"__symbolic":"module","version":4,"metadata":{"LoginFormComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":31,"character":1},"arguments":[{"selector":"cal-login-form","template":"<div class=\"{{ fixedWidth ? 'login-wrapper' : '' }}\" id=\"debug-login-form\">\r\n  <mat-tab-group id=\"caliatys-login-form\" [selectedIndex]=\"selectedTab\">\r\n    <mat-tab label=\"login-form\">\r\n      <!-- NOTE: Login form -->\r\n      <cal-dynamic-builder #defaultLoginForm \r\n        [fields]=\"loginFields\" \r\n        [params]=\"loginParams\" \r\n        [properties]=\"formProperties\" \r\n        (onSubmit)=\"onClickLogin($event)\" \r\n        (signUp)=\"onClickSignUp()\" \r\n        (forgotPwd)=\"onClickForgotPassword()\" \r\n        *ngIf=\"!googleStyle\">\r\n      </cal-dynamic-builder>\r\n      <!-- NOTE: (Google style) Buttons step -->\r\n      <div class=\"row no-gutters mb-3\" *ngIf=\"googleStyle\">\r\n        <div class=\"col text-right\" *ngIf=\"buttons.signUp\">\r\n          <!-- NOTE: Sign up -->\r\n          <button mat-button (click)=\"onClickSignUp()\" type=\"button\" \r\n            [ngClass]=\"classes.signUp ? classes.signUp : 'mat-primary small text-uppercase mr-2'\">\r\n            {{ labels.button.signUp }}\r\n          </button>\r\n        </div>\r\n        <div class=\"col {{ buttons.signUp ? 'text-left' : 'text-center' }}\">\r\n          <!-- NOTE: Sign in -->\r\n          <button mat-button (click)=\"onClickNextStep(0)\" type=\"button\" \r\n            [ngClass]=\"classes.signIn ? classes.signIn : 'mat-raised-button mat-primary small text-uppercase ml-2'\">\r\n            {{ labels.button.signIn }}\r\n          </button>\r\n        </div>\r\n      </div>\r\n      <!-- NOTE: Social buttons -->\r\n      <ng-container *ngIf=\"!( formId === formIds.MFA && layouts.mfa === layoutIds.INLINE )\">\r\n        <div class=\"row no-gutters\">\r\n          <div class=\"col text-center\">\r\n            <!-- NOTE: Google -->\r\n            <div class=\"d-block mb-3\" *ngIf=\"buttons.google\">\r\n              <button mat-button type=\"button\" (click)=\"onClickLoginSocial('google')\" \r\n                class=\"cal-btn google {{ theme }} {{ classes.google ? classes.google : 'mat-raised-button' }}\">\r\n                <span class=\"cal-bg-icon\">\r\n                  <span class=\"cal-temp-icon\"></span>\r\n                  <!-- <mat-icon class=\"align-middle cal-icon\" svgIcon=\"google\"></mat-icon> -->\r\n                </span>\r\n                <span class=\"cal-label\">{{ labels.button.googleSignIn }}</span>\r\n              </button>\r\n            </div>\r\n            <!-- NOTE: Facebook -->\r\n            <div class=\"d-block mb-3\" *ngIf=\"buttons.facebook\">\r\n              <button mat-button type=\"button\" (click)=\"onClickLoginSocial('facebook')\" \r\n                class=\"cal-btn facebook {{ classes.facebook ? classes.facebook : 'mat-raised-button' }}\">\r\n                <span class=\"cal-bg-icon\">\r\n                  <span class=\"cal-temp-icon\"></span>\r\n                  <!-- <mat-icon class=\"align-middle cal-icon\" svgIcon=\"facebook\"></mat-icon> -->\r\n                </span>\r\n                <span class=\"cal-label\">{{ labels.button.facebookSignIn }}</span>\r\n              </button>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </ng-container>\r\n      <!-- NOTE: Inline MFA -->\r\n      <ng-container *ngIf=\"formId === formIds.MFA && layouts.mfa === layoutIds.INLINE\">\r\n        <div class=\"row no-gutters\">\r\n          <div class=\"col\">\r\n            <cal-dynamic-builder \r\n              [fields]=\"mfaFields\" \r\n              [params]=\"mfaParams\" \r\n              [properties]=\"formProperties\" \r\n              (onSubmit)=\"tabSendMfaCode($event)\">\r\n            </cal-dynamic-builder>\r\n          </div>\r\n        </div>\r\n      </ng-container>\r\n    </mat-tab>\r\n    <mat-tab label=\"usr-step\" *ngIf=\"googleStyle\">\r\n      <!-- NOTE: Back button -->\r\n      <div class=\"row no-gutters mb-3\">\r\n        <div class=\"col\">\r\n          <button mat-button type=\"button\" [ngClass]=\"classes.backStep ? classes.backStep : ''\" (click)=\"onClickPrevStep(1)\" title=\"{{ labels.button.back }}\">\r\n            <mat-icon class=\"align-middle mr-2\">keyboard_arrow_left</mat-icon>\r\n            <span class=\"align-middle\">{{ labels.button.back }}</span>\r\n          </button>\r\n        </div>\r\n      </div>\r\n      <!-- NOTE: (Google style) Username step -->\r\n      <cal-dynamic-builder #usrForm \r\n        [fields]=\"usrFields\" \r\n        [params]=\"usrParams\" \r\n        [properties]=\"formProperties\" \r\n        (onSubmit)=\"onClickNextStep(1, $event)\" \r\n        (forgotPwd)=\"onClickForgotPassword()\">\r\n      </cal-dynamic-builder>\r\n    </mat-tab>\r\n    <mat-tab label=\"pwd-step\" *ngIf=\"googleStyle\">\r\n      <!-- NOTE: Back button -->\r\n      <div class=\"row no-gutters mb-3\">\r\n        <div class=\"col\">\r\n          <button mat-button type=\"button\" [ngClass]=\"classes.backStep ? classes.backStep : ''\" (click)=\"onClickPrevStep(2)\" title=\"{{ labels.button.back }}\">\r\n            <mat-icon class=\"align-middle mr-2\">keyboard_arrow_left</mat-icon>\r\n            <span class=\"align-middle\">{{ labels.button.back }}</span>\r\n          </button>\r\n        </div>\r\n      </div>\r\n      <!-- TODO: User info -->\r\n      <p>{{ userInfo }}</p>\r\n      <!-- NOTE: (Google style) Password step -->\r\n      <cal-dynamic-builder #pwdForm \r\n        [fields]=\"pwdFields\" \r\n        [params]=\"pwdParams\" \r\n        [properties]=\"formProperties\" \r\n        (onSubmit)=\"onClickNextStep(2, $event)\">\r\n      </cal-dynamic-builder>\r\n    </mat-tab>\r\n    <mat-tab label=\"tab-wrapper\" *ngIf=\"(layouts | existsLayout: layoutIds.TAB)\">\r\n      <!-- NOTE: Tab form -->\r\n      <cal-tab-wrapper \r\n        [formId]=\"formId\" \r\n        [isFirst]=\"isFirst\" \r\n        [code]=\"code\" \r\n        [qrCode]=\"qrCode\" \r\n        [pwdPolicies]=\"pwdPolicies\" \r\n        [errors]=\"errors\" \r\n        [labels]=\"labels\" \r\n        [actions]=\"actions\" \r\n        [classes]=\"classes\" \r\n        (sendCloseTab)=\"onClickCloseTab($event)\" \r\n        (relayFirstPwd)=\"tabFirstPwd($event)\" \r\n        (relayLostPwd)=\"tabLostPwd($event)\" \r\n        (relaySaveMfaKey)=\"tabSaveMfaKey($event)\" \r\n        (relaySendMfaCode)=\"tabSendMfaCode($event)\">\r\n      </cal-tab-wrapper>\r\n    </mat-tab>\r\n  </mat-tab-group>\r\n</div>","styles":["::ng-deep #caliatys-login-form mat-tab-header{display:none!important}mat-form-field mat-icon{color:grey}.login-wrapper{width:100%;max-width:330px;padding:15px;margin:0 auto}.cal-btn{line-height:33px;border:0!important;padding:1px!important}.cal-btn .cal-bg-icon{padding:8px;width:34px;height:34px;display:inline-block;vertical-align:top!important}.cal-btn .cal-bg-icon .cal-temp-icon{width:18px;height:18px;display:block}.cal-btn .cal-bg-icon .cal-icon{display:inline-block;height:18px;width:18px;margin-top:-4px;vertical-align:top!important}.cal-btn .cal-label{padding-right:8px;padding-left:16px;size:14px;font-family:Roboto,sans-serif}.adn{background-color:#d87a68!important;color:#fff!important}.adn i{color:#fff!important}.adn:hover{background-color:#e29e91!important}.bitbucket{background-color:#205081!important;color:#fff!important}.bitbucket i{color:#fff!important}.bitbucket:hover{background-color:#2a69aa!important}.dropbox{background-color:#1087dd!important;color:#fff!important}.dropbox i{color:#fff!important}.dropbox:hover{background-color:#309ff0!important}.facebook{background-color:#3b5998!important;color:#fff!important}.facebook i{color:#fff!important}.facebook:hover{background-color:#4c70ba!important}.flickr{background-color:#ff0084!important;color:#fff!important}.flickr i{color:#fff!important}.flickr:hover{background-color:#ff339d!important}.foursquare{background-color:#f94877!important;color:#fff!important}.foursquare i{color:#fff!important}.foursquare:hover{background-color:#fb799c!important}.github{background-color:#444!important;color:#fff!important}.github i{color:#fff!important}.github:hover{background-color:#5e5e5e!important}.instagram{background-color:#405de6!important;color:#fff!important}.instagram i{color:#fff!important}.instagram:hover{background-color:#6d83ec!important}.linkedin{background-color:#007bb6!important;color:#fff!important}.linkedin i{color:#fff!important}.linkedin:hover{background-color:#009de9!important}.microsoft{background-color:#2672ec!important;color:#fff!important}.microsoft i{color:#fff!important}.microsoft:hover{background-color:#5590f0!important}.windows{background-color:#2672ec!important;color:#fff!important}.windows i{color:#fff!important}.windows:hover{background-color:#5590f0!important}.odnoklassniki{background-color:#f4731c!important;color:#fff!important}.odnoklassniki i{color:#fff!important}.odnoklassniki:hover{background-color:#f6914d!important}.openid{background-color:#f7931e!important;color:#fff!important}.openid i{color:#fff!important}.openid:hover{background-color:#f9ab4f!important}.pinterest{background-color:#cb2027!important;color:#fff!important}.pinterest i{color:#fff!important}.pinterest:hover{background-color:#e03e44!important}.reddit{background-color:#eff7ff!important;color:#000!important}.reddit i{color:#000!important}.reddit:hover{background-color:#fff!important}.soundcloud{background-color:#f50!important;color:#fff!important}.soundcloud i{color:#fff!important}.soundcloud:hover{background-color:#f73!important}.tumblr{background-color:#2c4762!important;color:#fff!important}.tumblr i{color:#fff!important}.tumblr:hover{background-color:#3c6185!important}.twitter{background-color:#55acee!important;color:#fff!important}.twitter i{color:#fff!important}.twitter:hover{background-color:#83c3f3!important}.vimeo{background-color:#1ab7ea!important;color:#fff!important}.vimeo i{color:#fff!important}.vimeo:hover{background-color:#49c6ee!important}.vk{background-color:#587ea3!important;color:#fff!important}.vk i{color:#fff!important}.vk:hover{background-color:#7897b6!important}.yahoo{background-color:#720e9e!important;color:#fff!important}.yahoo i{color:#fff!important}.yahoo:hover{background-color:#9412cd!important}.google.light{background-color:#fff!important;color:#5f6368!important}.google.light i{color:#5f6368!important}.google.light:hover{background-color:#fff!important}.google.dark{background-color:#4285f4!important;color:#fff!important}.google.dark i{color:#fff!important}.google.dark:hover{background-color:#72a4f7!important}.google.dark .cal-bg-icon{background:#fff}.google .cal-temp-icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNDggNDgiPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNNDQuNSAyMEgyNHY4LjVoMTEuOEMzNC43IDMzLjkgMzAuMSAzNyAyNCAzN2MtNy4yIDAtMTMtNS44LTEzLTEzczUuOC0xMyAxMy0xM2MzLjEgMCA1LjkgMS4xIDguMSAyLjlsNi40LTYuNEMzNC42IDQuMSAyOS42IDIgMjQgMiAxMS44IDIgMiAxMS44IDIgMjRzOS44IDIyIDIyIDIyYzExIDAgMjEtOCAyMS0yMiAwLTEuMy0uMi0yLjctLjUtNHoiLz48L2RlZnM+PGNsaXBQYXRoIGlkPSJiIj48dXNlIHhsaW5rOmhyZWY9IiNhIiBvdmVyZmxvdz0idmlzaWJsZSIvPjwvY2xpcFBhdGg+PHBhdGggY2xpcC1wYXRoPSJ1cmwoI2IpIiBmaWxsPSIjRkJCQzA1IiBkPSJNMCAzN1YxMWwxNyAxM3oiLz48cGF0aCBjbGlwLXBhdGg9InVybCgjYikiIGZpbGw9IiNFQTQzMzUiIGQ9Ik0wIDExbDE3IDEzIDctNi4xTDQ4IDE0VjBIMHoiLz48cGF0aCBjbGlwLXBhdGg9InVybCgjYikiIGZpbGw9IiMzNEE4NTMiIGQ9Ik0wIDM3bDMwLTIzIDcuOSAxTDQ4IDB2NDhIMHoiLz48cGF0aCBjbGlwLXBhdGg9InVybCgjYikiIGZpbGw9IiM0Mjg1RjQiIGQ9Ik00OCA0OEwxNyAyNGwtNC0zIDM1LTEweiIvPjwvc3ZnPg==)}.facebook .cal-bg-icon{padding-top:6px!important;padding-left:5px!important}.facebook .cal-bg-icon .cal-temp-icon{height:22px!important;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTE3LDJWMkgxN1Y2SDE1QzE0LjMxLDYgMTQsNi44MSAxNCw3LjVWMTBIMTRMMTcsMTBWMTRIMTRWMjJIMTBWMTRIN1YxMEgxMFY2QTQsNCAwIDAsMSAxNCwySDE3WiIgZmlsbD0id2hpdGUiLz48L3N2Zz4=)}"]}]}],"members":{"fixedWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"googleStyle":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"googleTheme":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"customLayouts":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":58,"character":3}}]}],"customUsrPolicy":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":62,"character":3}}]}],"customPwdPolicies":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":64,"character":3}}]}],"hidePwdPolicyOnLogin":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":66,"character":3}}]}],"customIcons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"customButtons":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3}}]}],"customActions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":75,"character":3}}]}],"customErrors":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":78,"character":3}}]}],"customLabels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":81,"character":3}}]}],"customClasses":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":3}}]}],"initialized":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":87,"character":3}}]}],"signUp":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":89,"character":3}}]}],"login":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":91,"character":3}}]}],"loginSocial":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":93,"character":3}}]}],"forgotPwd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":95,"character":3}}]}],"sendResetPwd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":97,"character":3}}]}],"sendFirstPwd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":99,"character":3}}]}],"saveMfaKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":101,"character":3}}]}],"sendMfaCode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":103,"character":3}}]}],"stepUsr":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":105,"character":3}}]}],"stepPwd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":107,"character":3}}]}],"defaultLoginForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":113,"character":3},"arguments":["defaultLoginForm",{"static":false}]}]}],"usrForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":117,"character":3},"arguments":["usrForm",{"static":false}]}]}],"pwdForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":121,"character":3},"arguments":["pwdForm",{"static":false}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialog","line":160,"character":27},{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":161,"character":27},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconRegistry","line":162,"character":27}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"onClickLogin":[{"__symbolic":"method"}],"onClickLoginSocial":[{"__symbolic":"method"}],"onClickSignUp":[{"__symbolic":"method"}],"onClickForgotPassword":[{"__symbolic":"method"}],"showPwdForm":[{"__symbolic":"method"}],"showMfaSetupForm":[{"__symbolic":"method"}],"showMfaForm":[{"__symbolic":"method"}],"hidePwdForm":[{"__symbolic":"method"}],"hideMfaSetupForm":[{"__symbolic":"method"}],"hideMfaForm":[{"__symbolic":"method"}],"showPwdStep":[{"__symbolic":"method"}],"getForm":[{"__symbolic":"method"}],"setForm":[{"__symbolic":"method"}],"onClickNextStep":[{"__symbolic":"method"}],"onClickPrevStep":[{"__symbolic":"method"}],"tabFirstPwd":[{"__symbolic":"method"}],"tabLostPwd":[{"__symbolic":"method"}],"tabSaveMfaKey":[{"__symbolic":"method"}],"tabSendMfaCode":[{"__symbolic":"method"}],"modalFirstPwd":[{"__symbolic":"method"}],"modalLostPwd":[{"__symbolic":"method"}],"modalSaveMfaKey":[{"__symbolic":"method"}],"modalSendMfaCode":[{"__symbolic":"method"}],"onClickCloseTab":[{"__symbolic":"method"}],"openModal":[{"__symbolic":"method"}],"showLayout":[{"__symbolic":"method"}],"closeLayout":[{"__symbolic":"method"}],"closeModal":[{"__symbolic":"method"}],"openTab":[{"__symbolic":"method"}],"closeTab":[{"__symbolic":"method"}],"getEventResponse":[{"__symbolic":"method"}],"initLayouts":[{"__symbolic":"method"}],"initTheme":[{"__symbolic":"method"}],"initIcons":[{"__symbolic":"method"}],"initButtons":[{"__symbolic":"method"}],"initActions":[{"__symbolic":"method"}],"initErrors":[{"__symbolic":"method"}],"initPolicies":[{"__symbolic":"method"}],"initLabels":[{"__symbolic":"method"}],"initClasses":[{"__symbolic":"method"}],"initFormProperties":[{"__symbolic":"method"}],"initMfaParameters":[{"__symbolic":"method"}],"initMfaForm":[{"__symbolic":"method"}],"initLoginParameters":[{"__symbolic":"method"}],"initLoginForm":[{"__symbolic":"method"}],"initUsernameField":[{"__symbolic":"method"}],"initPasswordField":[{"__symbolic":"method"}],"initVerificationCodeField":[{"__symbolic":"method"}]}},"MaterialModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":56,"character":1},"arguments":[{"exports":[{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":60,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":63,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":73,"character":4},{"__symbolic":"reference","module":"@angular/material/dialog","name":"MatDialogModule","line":75,"character":4},{"__symbolic":"reference","module":"@angular/material/tabs","name":"MatTabsModule","line":81,"character":4}]}]}],"members":{}},"LoginFormModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":89,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":91,"character":4},{"__symbolic":"reference","name":"MaterialModule"},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":93,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":94,"character":4},{"__symbolic":"reference","module":"angularx-qrcode","name":"QRCodeModule","line":95,"character":4}],"declarations":[{"__symbolic":"reference","name":"LoginFormComponent"},{"__symbolic":"reference","name":"PwdFormComponent"},{"__symbolic":"reference","name":"ModalWrapperComponent"},{"__symbolic":"reference","name":"TabWrapperComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"}],"providers":[],"entryComponents":[{"__symbolic":"reference","name":"ModalWrapperComponent"}],"exports":[{"__symbolic":"reference","name":"LoginFormComponent"},{"__symbolic":"reference","name":"PwdFormComponent"},{"__symbolic":"reference","name":"ModalWrapperComponent"},{"__symbolic":"reference","name":"TabWrapperComponent"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵf"}]}]}],"members":{}},"ModalWrapperComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"cal-modal-wrapper","template":"<div class=\"header py-2 px-4\">\r\n  <div class=\"row align-items-center\">\r\n    <div class=\"col\">\r\n      <div *ngIf=\"!isFirst && formId === formIds.PWD\">\r\n        <span class=\"h5 font-weight-light {{ labels.header.subtitlePwd ? 'd-block mb-0' : '' }}\">\r\n          {{ labels.header.titlePwd }}\r\n        </span>\r\n        <span *ngIf=\"labels.header.subtitlePwd\" class=\"d-block font-weight-light small\">\r\n          {{ labels.header.subtitlePwd }}\r\n        </span>\r\n      </div>\r\n      <div *ngIf=\"isFirst && formId === formIds.PWD\">\r\n        <span class=\"h5 font-weight-light {{ labels.header.subtitlePwdSetup ? 'd-block mb-0' : '' }}\">\r\n          {{ labels.header.titlePwdSetup }}\r\n        </span>\r\n        <span *ngIf=\"labels.header.subtitlePwdSetup\" class=\"d-block font-weight-light small\">\r\n          {{ labels.header.subtitlePwdSetup }}\r\n        </span>\r\n      </div>\r\n      <div *ngIf=\"formId === formIds.MFA\">\r\n        <span class=\"h5 font-weight-light {{ labels.header.subtitleMfa ? 'd-block mb-0' : '' }}\">\r\n          {{ labels.header.titleMfa }}\r\n        </span>\r\n        <span *ngIf=\"labels.header.subtitleMfa\" class=\"d-block font-weight-light small\">\r\n          {{ labels.header.subtitleMfa }}\r\n        </span>\r\n      </div>\r\n      <div *ngIf=\"formId === formIds.MFA_SETUP\">\r\n        <span class=\"h5 font-weight-light {{ labels.header.subtitleMfaSetup ? 'd-block mb-0' : '' }}\">\r\n          {{ labels.header.titleMfaSetup }}\r\n        </span>\r\n        <span *ngIf=\"labels.header.subtitleMfaSetup\" class=\"d-block font-weight-light small\">\r\n          {{ labels.header.subtitleMfaSetup }}\r\n        </span>\r\n      </div>\r\n    </div>\r\n    <div class=\"col-2 px-0 text-right\">\r\n      <button mat-button mat-dialog-close\r\n        [ngClass]=\"classes.closeDialog ? classes.closeDialog : 'mat-icon-button mat-primary'\">\r\n        <mat-icon>close</mat-icon>\r\n      </button>\r\n    </div>\r\n  </div>\r\n</div>\r\n<mat-dialog-content class=\"py-4\">\r\n  <!-- NOTE: Pwd Form -->\r\n  <cal-pwd-form *ngIf=\"formId === formIds.PWD\" \r\n    [isFirst]=\"isFirst\" \r\n    [pwdPolicies]=\"pwdPolicies\" \r\n    [labels]=\"labels\" \r\n    [actions]=\"actions\" \r\n    [errors]=\"errors\" \r\n    [classes]=\"classes\" \r\n    (firstConnection)=\"relayFirstPwdEvent($event)\" \r\n    (lostPassword)=\"relayLostPwdEvent($event)\">\r\n  </cal-pwd-form>\r\n  <!-- NOTE: MFA Setup Form -->\r\n  <cal-mfa-setup-form *ngIf=\"formId === formIds.MFA_SETUP\" \r\n    [qrCode]=\"qrCode\" \r\n    [code]  =\"code\" \r\n    [labels]=\"labels\" \r\n    [actions]=\"actions\" \r\n    [errors]=\"errors\" \r\n    [classes]=\"classes\" \r\n    (saveMfa)=\"relaySaveMfaKeyEvent($event)\">\r\n  </cal-mfa-setup-form>\r\n  <!-- NOTE: MFA Form -->\r\n  <cal-mfa-form *ngIf=\"formId === formIds.MFA\" \r\n    [labels]=\"labels\" \r\n    [actions]=\"actions\" \r\n    [errors]=\"errors\" \r\n    [classes]=\"classes\" \r\n    (sendMfa)=\"relaySendMfaCodeEvent($event)\">\r\n  </cal-mfa-form>\r\n</mat-dialog-content>","styles":[".header{color:#fff;background:#5eacff}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":62,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MAT_DIALOG_DATA","line":62,"character":12}]}]],"parameters":[{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ModalWrapperComponent"}]},{"__symbolic":"reference","name":"any"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"relayFirstPwdEvent":[{"__symbolic":"method"}],"relayLostPwdEvent":[{"__symbolic":"method"}],"relaySaveMfaKeyEvent":[{"__symbolic":"method"}],"relaySendMfaCodeEvent":[{"__symbolic":"method"}],"loadParams":[{"__symbolic":"method"}]}},"TabWrapperComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"cal-tab-wrapper","template":"<div class=\"header py-2 px-4 mb-3\">\r\n  <div class=\"row align-items-center\">\r\n    <div class=\"col-2 px-0 text-left\">\r\n      <button mat-button (click)=\"backToLogin()\" \r\n        [ngClass]=\"classes.closeTag ? classes.closeTag : 'mat-icon-button mat-primary'\">\r\n        <mat-icon>arrow_back</mat-icon>\r\n      </button>\r\n    </div>\r\n    <div class=\"col text-right\">\r\n      <div *ngIf=\"!isFirst && formId === formIds.PWD\">\r\n        <span class=\"h5 font-weight-light {{ labels.header.subtitlePwd ? 'd-block mb-0' : '' }}\">\r\n          {{ labels.header.titlePwd }}\r\n        </span>\r\n        <span *ngIf=\"labels.header.subtitlePwd\" class=\"d-block font-weight-light small\">\r\n          {{ labels.header.subtitlePwd }}\r\n        </span>\r\n      </div>\r\n      <div *ngIf=\"isFirst && formId === formIds.PWD\">\r\n        <span class=\"h5 font-weight-light {{ labels.header.subtitlePwdSetup ? 'd-block mb-0' : '' }}\">\r\n          {{ labels.header.titlePwdSetup }}\r\n        </span>\r\n        <span *ngIf=\"labels.header.subtitlePwdSetup\" class=\"d-block font-weight-light small\">\r\n          {{ labels.header.subtitlePwdSetup }}\r\n        </span>\r\n      </div>\r\n      <div *ngIf=\"formId === formIds.MFA\">\r\n        <span class=\"h5 font-weight-light {{ labels.header.subtitleMfa ? 'd-block mb-0' : '' }}\">\r\n          {{ labels.header.titleMfa }}\r\n        </span>\r\n        <span *ngIf=\"labels.header.subtitleMfa\" class=\"d-block font-weight-light small\">\r\n          {{ labels.header.subtitleMfa }}\r\n        </span>\r\n      </div>\r\n      <div *ngIf=\"formId === formIds.MFA_SETUP\">\r\n        <span class=\"h5 font-weight-light {{ labels.header.subtitleMfaSetup ? 'd-block mb-0' : '' }}\">\r\n          {{ labels.header.titleMfaSetup }}\r\n        </span>\r\n        <span *ngIf=\"labels.header.subtitleMfaSetup\" class=\"d-block font-weight-light small\">\r\n          {{ labels.header.subtitleMfaSetup }}\r\n        </span>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n<!-- NOTE: Pwd Form -->\r\n<cal-pwd-form *ngIf=\"formId === formIds.PWD\" \r\n  [isFirst]=\"isFirst\" \r\n  [pwdPolicies]=\"pwdPolicies\" \r\n  [labels]=\"labels\" \r\n  [actions]=\"actions\" \r\n  [errors]=\"errors\" \r\n  [classes]=\"classes\" \r\n  (firstConnection)=\"relayFirstPwdEvent($event)\" \r\n  (lostPassword)=\"relayLostPwdEvent($event)\">\r\n</cal-pwd-form>\r\n<!-- NOTE: MFA Setup Form -->\r\n<cal-mfa-setup-form *ngIf=\"formId === formIds.MFA_SETUP\" \r\n  [qrCode]=\"qrCode\" \r\n  [code]  =\"code\" \r\n  [labels]=\"labels\" \r\n  [actions]=\"actions\" \r\n  [errors]=\"errors\" \r\n  [classes]=\"classes\" \r\n  (saveMfa)=\"relaySaveMfaKeyEvent($event)\">\r\n</cal-mfa-setup-form>\r\n<!-- NOTE: MFA Form -->\r\n<cal-mfa-form *ngIf=\"formId === formIds.MFA\" \r\n  [labels]=\"labels\" \r\n  [actions]=\"actions\" \r\n  [errors]=\"errors\" \r\n  [classes]=\"classes\" \r\n  (sendMfa)=\"relaySendMfaCodeEvent($event)\">\r\n</cal-mfa-form>","styles":[".header{color:#fff;background:#5eacff}"]}]}],"members":{"formId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"labels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"errors":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"actions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"classes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":31,"character":3}}]}],"sendCloseTab":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":33,"character":3}}]}],"isFirst":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"pwdPolicies":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"relayFirstPwd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":41,"character":3}}]}],"relayLostPwd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":42,"character":3}}]}],"code":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"qrCode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"relaySaveMfaKey":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":49,"character":3}}]}],"relaySendMfaCode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":53,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"backToLogin":[{"__symbolic":"method"}],"relayFirstPwdEvent":[{"__symbolic":"method"}],"relayLostPwdEvent":[{"__symbolic":"method"}],"relaySaveMfaKeyEvent":[{"__symbolic":"method"}],"relaySendMfaCodeEvent":[{"__symbolic":"method"}]}},"PwdFormComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"cal-pwd-form","template":"<cal-dynamic-builder [fields]=\"pwdFields\" [params]=\"pwdParams\" [properties]=\"formProperties\" (onSubmit)=\"send($event)\"></cal-dynamic-builder>","styles":[""]}]}],"members":{"labels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"errors":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"actions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"classes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"isFirst":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"pwdPolicies":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"firstConnection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":37,"character":3}}]}],"lostPassword":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":38,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"send":[{"__symbolic":"method"}],"initFormProperties":[{"__symbolic":"method"}],"initPwdParameters":[{"__symbolic":"method"}],"initPwdForm":[{"__symbolic":"method"}],"initPasswordField":[{"__symbolic":"method"}],"initVerificationCodeField":[{"__symbolic":"method"}]}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"cal-mfa-setup-form","template":"<div class=\"code text-center\">\r\n  <qrcode [qrdata]=\"qrCode\" [size]=\"100\" [level]=\"'L'\"></qrcode>\r\n  <p class=\"my-3\">{{ code }}</p>\r\n</div>\r\n<cal-dynamic-builder [fields]=\"mfaSetupFields\" [params]=\"mfaSetupParams\" [properties]=\"formProperties\" (onSubmit)=\"send($event)\"></cal-dynamic-builder>","styles":[".code{display:flex;flex-direction:column;align-items:center}"]}]}],"members":{"labels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"errors":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"actions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"classes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"qrCode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"code":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"saveMfa":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":35,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"send":[{"__symbolic":"method"}],"initFormProperties":[{"__symbolic":"method"}],"initMfaSetupParameters":[{"__symbolic":"method"}],"initMfaSetupForm":[{"__symbolic":"method"}],"initVerificationCodeField":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":11,"character":1},"arguments":[{"selector":"cal-mfa-form","template":"<cal-dynamic-builder [fields]=\"mfaFields\" [params]=\"mfaParams\" [properties]=\"formProperties\" (onSubmit)=\"send($event)\"></cal-dynamic-builder>","styles":[""]}]}],"members":{"labels":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"errors":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"actions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"classes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"sendMfa":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":32,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"send":[{"__symbolic":"method"}],"initFormProperties":[{"__symbolic":"method"}],"initMfaParameters":[{"__symbolic":"method"}],"initMfaForm":[{"__symbolic":"method"}],"initVerificationCodeField":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"existsLayout"}]}],"members":{"transform":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":24,"character":1},"arguments":[{"selector":"cal-dynamic-builder","template":"<!-- https://gist.github.com/runspired/b9fdf1fa74fc9fb4554418dea35718fe -->\n<!-- NOTE: <form autocomplete=\"off\"> will turn off autocomplete for the form in most browsers\n     except for username/email/password fields -->\n<form (ngSubmit)=\"onSubmit.emit(this.form.value)\" [formGroup]=\"form\" autocomplete=\"{{ params.autocomplete ? 'on' : 'off' }}\">\n\n  <ng-container *ngIf=\"!params.autocomplete\">\n    <!-- NOTE: fake fields are a workaround for chrome/opera autofill getting the wrong fields -->\n    <input id=\"username\" style=\"display:none\" type=\"text\" name=\"fakeusernameremembered\">\n    <input id=\"password\" style=\"display:none\" type=\"password\" name=\"fakepasswordremembered\">\n  </ng-container>\n\n  <!-- NOTE: Fields -->\n  <div *ngFor=\"let field of fields\">\n    <cal-field-builder [form]=\"form\" [field]=\"field\" [params]=\"params\" [properties]=\"properties\"></cal-field-builder>\n  </div>\n\n  <!-- TODO: Enable Google Captcha -->\n  <!-- <div class=\"row w-100 no-gutters\">\n    <div class=\"col\">\n      <re-captcha site_key=\"6LdBtAkUAAAAAB2_l_TOz7oZmTLXaFjP1cxnu4yM\"\n        (captchaResponse)=\"handleCorrectCaptcha($event)\">\n      </re-captcha>\n    </div>\n  </div> -->\n\n  <!-- NOTE: Buttons -->\n  <div [ngSwitch]=\"params.dynamicButtons\">\n\n    <!-- NOTE: (Google style) Username step buttons -->\n    <div class=\"row no-gutters mb-3\" *ngSwitchCase=\"dynamicButtons.USR_STEP\">\n      <!-- NOTE: Forgot password -->\n      <div class=\"col text-left\" *ngIf=\"properties.buttons.forgotPassword\">\n        <button mat-button (click)=\"onClickForgotPassword()\" type=\"button\" [ngClass]=\"properties.classes.forgotPassword ? properties.classes.forgotPassword : 'small'\">\n          {{ properties.labels.button.forgotPassword }}\n        </button>\n      </div>\n      <!-- NOTE: Next button -->\n      <div class=\"col text-right\">\n        <button mat-button type=\"submit\" [disabled]=\"!form.valid\" [ngClass]=\"properties.classes.nextStep ? properties.classes.nextStep : 'mat-raised-button mat-primary small text-uppercase'\">\n          {{ properties.labels.button.next }}\n        </button>\n      </div>\n    </div>\n\n    <!-- NOTE: (Google style) Password step button -->\n    <div class=\"row no-gutters mb-3\" *ngSwitchCase=\"dynamicButtons.PWD_STEP\">\n      <div class=\"col text-right\">\n        <button mat-button type=\"submit\" [disabled]=\"!form.valid\" [ngClass]=\"properties.classes.nextStep ? properties.classes.nextStep : 'mat-raised-button mat-primary small text-uppercase'\">\n          {{ properties.labels.button.next }}\n        </button>\n      </div>\n    </div>\n\n    <!-- NOTE: Login form : Buttons -->\n    <ng-container *ngSwitchCase=\"dynamicButtons.LOGIN\">\n      <ng-container *ngIf=\"!( properties.formId === formIds.MFA && properties.layouts.mfa === layoutIds.INLINE )\">\n        <div class=\"row no-gutters pb-3\">\n          <!-- TODO: Remember me -->\n          <!-- <div class=\"col text-left\">\n          </div> -->\n          <!-- NOTE: Forgot password -->\n          <div class=\"col text-right\" *ngIf=\"properties.buttons.forgotPassword\">\n            <button mat-button (click)=\"onClickForgotPassword()\" type=\"button\" [ngClass]=\"properties.classes.forgotPassword ? properties.classes.forgotPassword : 'small'\">\n              {{ properties.labels.button.forgotPassword }}\n            </button>\n          </div>\n        </div>\n        <div class=\"row no-gutters {{ properties.buttons.google || properties.buttons.facebook ? 'pb-3' : '' }}\">\n          <div class=\"col text-right\">\n            <!-- NOTE: Sign up -->\n            <button mat-button type=\"button\" (click)=\"onClickSignUp()\" [ngClass]=\"properties.classes.signUp ? properties.classes.signUp : 'mat-primary small text-uppercase mr-3'\" *ngIf=\"properties.buttons.signUp\">\n              {{ properties.labels.button.signUp }}\n            </button>\n            <!-- NOTE: Sign in -->\n            <button mat-button type=\"submit\" [disabled]=\"!form.valid\" [ngClass]=\"properties.classes.signIn ? properties.classes.signIn : 'mat-raised-button mat-primary small text-uppercase'\">\n              {{ properties.labels.button.signIn }}\n            </button>\n          </div>\n        </div>\n      </ng-container>\n    </ng-container>\n\n    <!-- NOTE: Default -->\n    <div class=\"row no-gutters\" *ngSwitchDefault>\n      <div class=\"col text-right\">\n        <button mat-button type=\"submit\" [disabled]=\"!form.valid\" [ngClass]=\"properties.classes.signIn ? properties.classes.signIn : 'mat-raised-button mat-primary small text-uppercase'\">\n          {{ properties.labels.button.submit }}\n        </button>\n      </div>\n    </div>\n  </div>\n\n</form>"}]}],"members":{"fields":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":32,"character":3}}]}],"params":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":3}}]}],"properties":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":3}}]}],"onSubmit":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":36,"character":3}}]}],"forgotPwd":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":37,"character":3}}]}],"signUp":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":38,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"onClickForgotPassword":[{"__symbolic":"method"}],"onClickSignUp":[{"__symbolic":"method"}],"getValidators":[{"__symbolic":"method"}],"getUsrValidators":[{"__symbolic":"method"}],"getPwdValidators":[{"__symbolic":"method"}],"getCodeValidators":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"cal-field-builder","template":"<div class=\"row no-gutters\" [formGroup]=\"form\">\n  <div class=\"col\" [ngSwitch]=\"true\">\n    <cal-input-textbox *ngSwitchCase=\"field.type === fieldTypes.TEXT || field.type === fieldTypes.PASSWORD\" [form]=\"form\" [field]=\"field\" [params]=\"params\" [properties]=\"properties\"></cal-input-textbox>\n    <!-- <cal-input-checkbox *ngSwitchCase=\"field.type === fieldTypes.CHECKBOX\" [form]=\"form\" [field]=\"field\" [params]=\"params\" [properties]=\"properties\"></cal-input-checkbox>\n    <cal-input-radio *ngSwitchCase=\"field.type === fieldTypes.RADIO\" [form]=\"form\" [field]=\"field\" [params]=\"params\" [properties]=\"properties\"></cal-input-radio>\n    <cal-input-dropdown *ngSwitchCase=\"field.type === fieldTypes.DROPDOWN\" [form]=\"form\" [field]=\"field\" [params]=\"params\" [properties]=\"properties\"></cal-input-dropdown> -->\n  </div>\n</div>"}]}],"members":{"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"field":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"params":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"properties":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"cal-input-textbox","template":"<div class=\"row no-gutters\" [formGroup]=\"form\">\n  <div class=\"col\">\n    <!-- NOTE: Input text -->\n    <mat-form-field class=\"w-100\" [color]=\"field.color\">\n      <div matPrefix class=\"mr-2\" *ngIf=\"field.icon\">\n        <mat-icon class=\"align-bottom\" [color]=\"field.color\">{{ field.icon }}</mat-icon>\n      </div>\n      <input matInput [formControlName]=\"field.name\" [value]=\"field.value\" \n        [id]=\"field.id\" [name]=\"field.name\" [autocomplete]=\"getOptionAutocomplete(field)\" \n        [placeholder]=\"properties.labels.input[field.name]\" \n        [attr.type]=\"showPassword || field.name !== fieldIds.PWD ? fieldTypes.TEXT : fieldTypes.PASSWORD\"/>\n      <!-- NOTE: Show/Hide button -->\n      <button *ngIf=\"field.name === fieldIds.PWD && field.action\" \n        matSuffix mat-icon-button aria-label=\"Show / Hide\" \n        (click)=\"showPassword=!showPassword\" \n        [color]=\"field.color\" \n        [disabled]=\"field.disabled\" \n        type=\"button\">\n        <mat-icon>{{ showPassword ? 'visibility_off' : 'visibility' }}</mat-icon>\n      </button>\n      <!-- NOTE: Clear button -->\n      <button *ngIf=\"field.name !== fieldIds.PWD && form.controls[field.name].value?.length > 0 && field.action\" \n        matSuffix mat-icon-button aria-label=\"Clear\" \n        (click)=\"form.controls[field.name].setValue('')\" \n        [color]=\"field.color\" \n        [disabled]=\"field.disabled\" \n        type=\"button\">\n        <mat-icon>close</mat-icon>\n      </button>\n      <!-- NOTE: Error message -->\n      <mat-hint align=\"start\">\n        {{ getErrors(field) }}\n      </mat-hint>\n    </mat-form-field>\n  </div>\n</div>\n<!-- NOTE: Password policies -->\n<div class=\"row no-gutters\" *ngIf=\"field.name === fieldIds.PWD && field.showPolicies\">\n  <div class=\"col\">\n    <ul class=\"list-unstyled small\">\n      <li class=\"check-policy\">\n        <mat-icon class=\"red-policy\" *ngIf=\"form.controls[field.name].errors && form.controls[field.name].errors.longEnough\">close</mat-icon>\n        <mat-icon class=\"green-policy\" *ngIf=\"!form.controls[field.name].errors || !form.controls[field.name].errors.longEnough\">check</mat-icon>\n        {{ properties.labels.policy.pwdLengthReplaced }}\n      </li>\n      <li class=\"check-policy\" *ngIf=\"field.policies.upper\">\n        <mat-icon class=\"red-policy\" *ngIf=\"form.controls[field.name].errors && form.controls[field.name].errors.upper\">close</mat-icon>\n        <mat-icon class=\"green-policy\" *ngIf=\"!form.controls[field.name].errors || !form.controls[field.name].errors.upper\">check</mat-icon>\n        {{ properties.labels.policy.pwdUppercase }}\n      </li>\n      <li class=\"check-policy\" *ngIf=\"field.policies.lower\">\n        <mat-icon class=\"red-policy\" *ngIf=\"form.controls[field.name].errors && form.controls[field.name].errors.lower\">close</mat-icon>\n        <mat-icon class=\"green-policy\" *ngIf=\"!form.controls[field.name].errors || !form.controls[field.name].errors.lower\">check</mat-icon>\n        {{ properties.labels.policy.pwdLowercase }}\n      </li>\n      <li class=\"check-policy\" *ngIf=\"field.policies.number\">\n        <mat-icon class=\"red-policy\" *ngIf=\"form.controls[field.name].errors && form.controls[field.name].errors.number\">close</mat-icon>\n        <mat-icon class=\"green-policy\" *ngIf=\"!form.controls[field.name].errors || !form.controls[field.name].errors.number\">check</mat-icon>\n        {{ properties.labels.policy.pwdNumber }}\n      </li>\n      <li class=\"check-policy\" *ngIf=\"field.policies.char\">\n        <mat-icon class=\"red-policy\" *ngIf=\"form.controls[field.name].errors && form.controls[field.name].errors.char\">close</mat-icon>\n        <mat-icon class=\"green-policy\" *ngIf=\"!form.controls[field.name].errors || !form.controls[field.name].errors.char\">check</mat-icon>\n        {{ properties.labels.policy.pwdSpecial }}\n      </li>\n    </ul>\n  </div>\n</div>","styles":[".green-policy{color:green}.red-policy{color:red}.check-policy{display:flex;align-items:center}.check-policy .mat-icon{margin-right:4px;font-size:22px;height:22px;width:22px}"]}]}],"members":{"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"field":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":3}}]}],"params":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"properties":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"getOptionAutocomplete":[{"__symbolic":"method"}],"initProperties":[{"__symbolic":"method"}],"getErrors":[{"__symbolic":"method"}],"getUsrErrors":[{"__symbolic":"method"}],"getPwdErrors":[{"__symbolic":"method"}],"getCodeErrors":[{"__symbolic":"method"}]}}},"origins":{"LoginFormComponent":"./lib/login-form.component","MaterialModule":"./lib/login-form.module","LoginFormModule":"./lib/login-form.module","ModalWrapperComponent":"./lib/layouts/modal-wrapper/modal-wrapper.component","TabWrapperComponent":"./lib/layouts/tab-wrapper/tab-wrapper.component","PwdFormComponent":"./lib/forms/pwd-form/pwd-form.component","ɵa":"./lib/forms/mfa-setup-form/mfa-setup-form.component","ɵb":"./lib/forms/mfa-form/mfa-form.component","ɵc":"./lib/pipes/exists-layout.pipe","ɵd":"./lib/dynamic-builder/dynamic-builder.component","ɵe":"./lib/dynamic-builder/field-builder/field-builder.component","ɵf":"./lib/dynamic-builder/inputs/textbox/input-textbox.component"},"importAs":"@caliatys/login-form"}