{"version":3,"sources":["javascripts/registration/mobile/registration.bundle/registration_field_group.js","javascripts/registration/mobile/registration.bundle/wizard_step_base.js","javascripts/registration/mobile/registration.bundle/wizard_step_business_or_individual.js","javascripts/registration/mobile/registration.bundle/wizard_step_disclosure.js","javascripts/registration/mobile/registration.bundle/wizard_step_confirm_identity.js","javascripts/registration/mobile/registration.bundle/wizard_step_username.js","javascripts/registration/mobile/registration.bundle/wizard.js","javascripts/registration/mobile/registration.bundle/registration_area.js"],"names":["RegistrationFieldGroup","self","this","name","description","fields","ko","observable","fieldsWithValuesExcludingBooleans","computed","utils","arrayFilter","field","fieldTypeName","fieldValue","fieldsWithoutValues","fieldsWithoutValuesAndBooleans","RegistrationField","data","registrationFieldTypes","registrationTypes","registrationFieldListItems","fieldInfo","maxLength","MaxLength","toString","labelText","Text","placeholderText","FieldType","registrationTypeName","RegistrationType","isEditing","validationErrors","observableArray","hasValidationErrors","length","listItems","$","grep","listItem","ParentRegistrationField","Id","DefaultValueAsBool","DefaultValue","fieldTempValue","subscribe","newValue","isValid","fieldValueForDisplay","dateParts","Date","toISOString","split","datepicker","formatDate","parseInt","matches","item","IsRequired","push","Alkami","Localization","SiteText","replace","toLowerCase","isNaN","parse","match","numDigits","val","expression","RegExp","phoneNumber","$panel","find","height","removeClass","registrationArea","updateTitleBar","confirmIdentityEditFieldWithEnabledDoneNavBar","outerHeight","addClass","confirmIdentityEditFieldWithDisabledDoneNavBar","BaseStepModel","panelId","id","isDone","isCanceled","resetState","hide","BusinessOrIndividualStep","isBusinessObservableReference","apply","isBusiness","businessOrIndividualModel","setIndividual","setBusiness","show","showBusinessOrIndividualPanel","DisclosureStep","isLoadingDisclosure","htmlBeforeRegistrationDisclosure","htmlDisclosure","loadDisclosure","ajax","type","url","success","HtmlBeforeRegistrationDisclosure","Disclosure","window","setTimeout","showDisclosureAgreeButton","error","request","status","mobileUtils","flashMessage","showDisclosurePanel","ConfirmIdentityStep","isLoadingRegistrationFields","registrationFieldGroups","numberDigitsToValidateTaxId","minimumNumberDigitsToValidateTaxId","isButtonDisabled","currentField","editField","showConfirmIdentityEditFieldPanel","selectListItem","done","showConfirmIdentityPanel","errors","each","i","group","j","confirmIdentity","$form","attr","serialize","result","error_messages","scrollTop","loadRegistrationFields","NumberDigitsToValidateTaxId","MinimumNumberDigitsToValidateTaxId","regGroups","RegistrationFieldGroups","regGroup","Name","Description","regFields","RegistrationFieldTypes","RegistrationTypes","RegistrationFieldListItems","UsernameStep","usernameLabel","UsernameLabelText","usernameDescription","UsernameDescription","usernameMinLength","UsernameMinLength","usernameMaxLength","UsernameMaxLength","username","isSubmittingUsername","valid","hasReachedMaximumUsernameTries","isUsernameLabelLowerOrMixedCase","charAt","usernameLabelWithFirstCharacterLowered","slice","usernameText","usernamePlaceholderText","chooseUsername","submitForm","cache","available","hasUsernames","userNames","retriesLeft","message","showUsernamePanel","RegistrationWizard","businessOrIndividualStep","BusinessOrIndividualModel","disclosureStep","confirmIdentityStep","changeStep","usernameStep","location","href","currentStep","step","lastStep","mmenu","animationDuration","getInstance","conf","transitionDuration","$stepElement","hasClass","open","openPanel","prop","focus","next","confirmIdentityNavBar","cancelRegistration","history","back","isBusinessRegistrationEnabled","BBRegistrationEnabled","viewModel","businessOrIndividualNavBar","text","left","button","callback","disclosureNavBar","disclosureWithAgreeButtonNavBar","right","disabled","confirmIdentityEditFieldWithListNavBar","usernameNavBar","nativeNavBar","nativeHook","updateNavBar","titleIfList","navBar","offCanvas","position","zposition","modelData","applyBindings","validator","addMethod","value","element","regex","UsernameRegEx","optional","test","validate","rules","LoginId","required","minlength","maxlength","validusername","messages","errorPlacement","appendTo","highlight","unhighlight"],"mappings":"AAAA,SAASA,yBACL,IAAIC,EAAOC,KAEXD,EAAKE,KAAO,KACZF,EAAKG,YAAc,KACnBH,EAAKI,OAASC,GAAGC,WAAW,IAC5BN,EAAKO,kCAAoCF,GAAGG,UAAS,WACjD,OAAOH,GAAGI,MAAMC,YAAYV,EAAKI,UAAU,SAAUO,GACjD,MAA+B,YAAxBA,EAAMC,eAAuD,OAAvBD,EAAME,cAAgD,KAAvBF,EAAME,mBAG1Fb,EAAKc,oBAAsBT,GAAGG,UAAS,WACnC,OAAOH,GAAGI,MAAMC,YAAYV,EAAKI,UAAU,SAAUO,GACjD,OAA8B,OAAvBA,EAAME,cAAiD,KAAvBF,EAAME,mBAGrDb,EAAKe,+BAAiCV,GAAGG,UAAS,WAC9C,OAAOH,GAAGI,MAAMC,YAAYV,EAAKI,UAAU,SAAUO,GACjD,MAA+B,YAAxBA,EAAMC,eAAuD,OAAvBD,EAAME,cAAgD,KAAvBF,EAAME,mBAK9F,SAASG,kBAAkBC,EAAMC,EAAwBC,EAAmBC,GACxE,IAAIpB,EAAOC,KAEXD,EAAKqB,UAAYJ,EAEjBjB,EAAKsB,UAAYtB,EAAKqB,UAAUE,UAAYvB,EAAKqB,UAAUE,UAAUC,WAAa,KAClFxB,EAAKyB,UAAYzB,EAAKqB,UAAUK,KAChC1B,EAAK2B,gBAAkB,SAAW3B,EAAKqB,UAAUK,KACjD1B,EAAKY,cAAgBM,EAAuBlB,EAAKqB,UAAUO,UAAUJ,YACrExB,EAAK6B,qBAAuBV,EAAkBnB,EAAKqB,UAAUS,iBAAiBN,YAC9ExB,EAAK+B,UAAY1B,GAAGC,YAAW,GAC/BN,EAAKgC,iBAAmB3B,GAAG4B,gBAAgB,IAC3CjC,EAAKkC,oBAAsB7B,GAAGG,UAAS,WACnC,OAAOR,EAAKgC,oBAAsBhC,EAAKgC,mBAAmBG,OAAS,KAGvEnC,EAAKoC,UAAY,GAEU,SAAvBpC,EAAKY,gBACLZ,EAAKoC,UAAYC,EAAEC,KAAKlB,GAA4B,SAAUmB,GAC1D,OAAOA,EAASC,wBAAwBC,KAAOzC,EAAKqB,UAAUoB,OAItEzC,EAAKa,WAAaR,GAAGC,WAAkC,YAAvBN,EAAKY,cAA8BZ,EAAKqB,UAAUqB,mBAAqB1C,EAAKqB,UAAUsB,cACtH3C,EAAK4C,eAAiBvC,GAAGC,WAAW,MACpCN,EAAK4C,eAAeC,WAAU,SAASC,GACnC9C,EAAK+C,aAGT/C,EAAKgD,qBAAuB3C,GAAGG,UAAS,WACpC,GAA0B,OAAtBR,EAAKa,aACL,OAAOb,EAAKa,aAEhB,GAA2B,SAAvBb,EAAKY,eAA0D,gBAA9BZ,EAAK6B,qBAAwC,CAC9E,IACIoB,EADU,IAAIC,KAAKlD,EAAKa,cAAcsC,cAClBC,MAAM,QAE9B,OAAOf,EAAEgB,WAAWC,WAAW,QAAS,IAAIJ,KAAKD,EAAU,GAAIM,SAASN,EAAU,IAAM,EAAGA,EAAU,KAGzG,GAA2B,SAAvBjD,EAAKY,cAA0B,CAC/B,IAAI4C,EAAUnB,EAAEC,KAAKtC,EAAKoC,WAAW,SAASqB,GAC1C,OAAOA,EAAKd,eAAiB3C,EAAKa,gBAGtC,OAA0B,IAAnB2C,EAAQrB,OAAenC,EAAKa,aAAe2C,EAAQ,GAAG9B,KAGjE,OAAO1B,EAAKa,gBAGhBb,EAAK+C,QAAU,WAGX,GAFA/C,EAAKgC,iBAAiB,IAEK,SAAvBhC,EAAKY,cACL,OAAO,EAOX,GAJ+B,OAA1BZ,EAAK4C,kBAAuD,KAA1B5C,EAAK4C,mBAA4B5C,EAAKqB,UAAUqC,YACnF1D,EAAKgC,iBAAiB2B,KAAKC,OAAOC,aAAaC,SAAS,sCAAsCC,QAAQ,MAAO/D,EAAKyB,YAGxF,OAA1BzB,EAAK4C,kBAAuD,KAA1B5C,EAAK4C,iBACvC,OAAQ5C,EAAK6B,qBAAqBmC,eAC9B,IAAK,cACGC,MAAMf,KAAKgB,MAAMlE,EAAK4C,oBACtB5C,EAAKgC,iBAAiB2B,KAAKC,OAAOC,aAAaC,SAAS,sCAAsCC,QAAQ,MAAO/D,EAAKyB,YAEtH,MACJ,IAAK,UACIzB,EAAK4C,iBAAiBuB,MAAM,2GAC7BnE,EAAKgC,iBAAiB2B,KAAKC,OAAOC,aAAaC,SAAS,sCAAsCC,QAAQ,MAAO/D,EAAKyB,YAEtH,MACJ,IAAK,MACL,IAAK,QACD,IAAI2C,EAAY/B,EAAE,eAAegC,MAI7BC,EAAa,UAHEjC,EAAE,mBAAmBgC,MAGI,IAAMD,EAAY,KAEzDpE,EAAK4C,iBAAiBuB,MAAM,IAAII,OAAOD,KACxCtE,EAAKgC,iBAAiB2B,KAAKC,OAAOC,aAAaC,SAAS,sCAAsCC,QAAQ,MAAO/D,EAAKyB,YAEtH,MACJ,IAAK,YACD,IAAI+C,EAAcxE,EAAK4C,iBAAiBmB,QAAQ,OAAQ,IACpDS,EAAYrC,QAAU,IAAMqC,EAAYL,MAAM,4FAC9CnE,EAAKgC,iBAAiB2B,KAAKC,OAAOC,aAAaC,SAAiD,wCAMhH,IAAIW,EAASpC,EAAE,sCAYf,OAVuC,IAAnCrC,EAAKgC,mBAAmBG,QACxBsC,EAAOC,KAAK,0BAA0BC,OAAO,GAC7CF,EAAOC,KAAK,oBAAoBE,YAAY,mBAC5CC,iBAAiBC,eAAeD,iBAAiBE,iDAEjDN,EAAOC,KAAK,0BAA0BC,OAAOF,EAAOC,KAAK,eAAeM,aAAY,IACpFP,EAAOC,KAAK,oBAAoBO,SAAS,mBACzCJ,iBAAiBC,eAAeD,iBAAiBK,iDAGX,IAAnClF,EAAKgC,mBAAmBG;ACnIvC,SAASgD,cAAcC,GACnB,IAAIpF,EAAOC,KACXD,EAAKqF,GAAKD,EACVpF,EAAKsF,OAASjF,GAAGC,YAAW,GAC5BN,EAAKuF,WAAalF,GAAGC,YAAW,GAEhCN,EAAKgC,iBAAmB3B,GAAG4B,gBAAgB,IAC3CjC,EAAKkC,oBAAsB7B,GAAGG,UAAS,WACnC,OAAOR,EAAKgC,oBAAsBhC,EAAKgC,mBAAmBG,OAAS,KAGvEnC,EAAKwF,WAAa,WACdxF,EAAKsF,QAAO,GACZtF,EAAKuF,YAAW,GAChBvF,EAAKgC,iBAAiB,KAG1BhC,EAAKyF,KAAO,WACRpD,EAAE,IAAMrC,EAAKqF,IAAIJ,SAAS;AClBlC,SAASS,yBAAyBzE,EAAM0E,GACpC,IAAI3F,EAAOC,KACXkF,cAAcS,MAAM5F,EAAM,CAAC,iCAE3BA,EAAK6F,WAAaF,EAClB3F,EAAK8F,0BAA4B7E,EAEjCjB,EAAK+F,cAAgB,WACjB/F,EAAK6F,YAAW,GAChB7F,EAAKsF,QAAO,IAGhBtF,EAAKgG,YAAc,WACfhG,EAAK6F,YAAW,GAChB7F,EAAKsF,QAAO,IAGhBtF,EAAKiG,KAAO,WACRjG,EAAKwF,aACLX,iBAAiBqB;ACnBzB,SAASC,iBACL,IAAInG,EAAOC,KACXkF,cAAcS,MAAM5F,EAAM,CAAC,qBAE3BA,EAAKoG,oBAAsB/F,GAAGC,YAAW,GACzCN,EAAKqG,iCAAmChG,GAAGC,WAAW,MACtDN,EAAKsG,eAAiBjG,GAAGC,WAAW,MAEpCN,EAAKuG,eAAiB,SAAUV,GAC5BxD,EAAEmE,KAAK,CACHC,KAAM,MACNC,IAAK,8CAAgDb,EACrDc,QAAS,SAAU1F,GACfjB,EAAKqG,iCAAiCpF,EAAK2F,kCAC3C5G,EAAKsG,eAAerF,EAAK4F,YAEzBC,OAAOC,YAAW,WACd/G,EAAKoG,qBAAoB,GACzBvB,iBAAiBmC,8BAClB,MAEPC,MAAO,SAAUC,EAASC,EAAQF,GAC9BG,YAAYC,aAAa,QAASzD,OAAOC,aAAaC,SAAS,4BAC/D9D,EAAKoG,qBAAoB,OAKrCpG,EAAKiG,KAAO,WACRjG,EAAKwF,aACLX,iBAAiByC;AC9BzB,SAASC,sBACL,IAAIvH,EAAOC,KACXkF,cAAcS,MAAM5F,EAAM,CAAC,2BAE3BA,EAAKwH,4BAA8BnH,GAAGC,YAAW,GACjDN,EAAKyH,wBAA0BpH,GAAGC,WAAW,IAC7CN,EAAK0H,4BAA8BrH,GAAGC,WAAW,MACjDN,EAAK2H,mCAAqCtH,GAAGC,WAAW,MACxDN,EAAK4H,iBAAmBvH,GAAGC,YAAW,GAEtCN,EAAK6H,aAAexH,GAAGC,WAAW,MAElCN,EAAK8H,UAAY,SAAUnH,GACvBA,EAAMiC,eAAejC,EAAME,cAC3Bb,EAAK6H,aAAalH,GAClBkE,iBAAiBkD,kCAA0D,SAAxBpH,EAAMC,cAA2BD,EAAMc,UAAY,MAEvE,OAA3Bd,EAAMiC,kBAAwD,KAA3BjC,EAAMiC,kBACzC5C,EAAK6H,eAAe9E,UAExB/C,EAAK6H,eAAe9F,WAAU,IAGlC/B,EAAKgI,eAAiB,SAAUzF,GAC5BvC,EAAK6H,eAAejF,eAAeL,EAASI,cAC5C3C,EAAKiI,QAGTjI,EAAKiI,KAAO,WACJjI,EAAK6H,eAAe9E,YACpB/C,EAAK6H,eAAehH,WAAWb,EAAK6H,eAAejF,kBAE/C5C,EAAKkC,uBAELlC,EAAK+C,UAGT8B,iBAAiBqD,2BACjBlI,EAAK6H,aAAa,QAI1B7H,EAAK+C,QAAU,WACX,IAAIoF,EAAS,GAYb,OAVA9F,EAAE+F,KAAKpI,EAAKyH,2BAA2B,SAAUY,EAAGC,GAChDjG,EAAE+F,KAAKE,EAAMxH,uBAAuB,SAAUyH,EAAG5H,GACzCA,EAAMU,UAAUqC,YAChByE,EAAOxE,KAAKhD,EAAMc,UAAY,uBAK1CzB,EAAKgC,iBAAiBmG,GAEoB,IAAnCnI,EAAKgC,mBAAmBG,QAGnCnC,EAAKwI,gBAAkB,WACnB,IAAIC,EAAQpG,EAAE,6BAEVrC,EAAK+C,YACL/C,EAAK4H,kBAAiB,GAEtBvF,EAAEmE,KAAK,CACHE,IAAK+B,EAAMC,KAAK,UAChBjC,KAAM,OACNxF,KAAMwH,EAAME,YACZhC,QAAS,SAAUiC,GACf5I,EAAK4H,kBAAiB,GAElBgB,EAAO7F,QACP/C,EAAKsF,QAAO,IAEZtF,EAAKgC,iBAAiB4G,EAAOC,gBAC7BxG,EAAE,2BAA2ByG,UAAU,KAG/C7B,MAAO,WACHjH,EAAK4H,kBAAiB,GACtB5H,EAAKgC,iBAAiB,CAAC4B,OAAOC,aAAaC,SAAmC,2BAC9EzB,EAAE,2BAA2ByG,UAAU,OAK/C9I,EAAKkC,uBACLG,EAAE,2BAA2ByG,UAAU,IAI/C9I,EAAKiG,KAAO,WACRjG,EAAKwF,aACLxF,EAAK4H,kBAAiB,GACtB/C,iBAAiBqD,4BAGrBlI,EAAK+I,uBAAyB,SAAUlD,GACpCxD,EAAEmE,KAAK,CACHC,KAAM,MACNC,IAAK,+CAAiDb,EACtDc,QAAS,SAAU1F,GAEfjB,EAAKwH,6BAA4B,GACjCxH,EAAK0H,4BAA4BzG,EAAK+H,6BACtChJ,EAAK2H,mCAAmC1G,EAAKgI,oCAE7C,IAAIC,EAAY,GAEZjI,EAAKkI,0BACL9G,EAAE+F,KAAKnH,EAAKkI,yBAAyB,SAAUd,EAAGC,GAC9C,IAAIc,EAAW,IAAIrJ,uBACnBqJ,EAASlJ,KAAOoI,EAAM,GAAGvI,uBAAuBsJ,KAChDD,EAASjJ,YAAcmI,EAAM,GAAGvI,uBAAuBuJ,YAEvD,IAAIC,EAAY,GAEhBlH,EAAE+F,KAAKE,GAAO,SAAUC,EAAG5H,GACvB4I,EAAU5F,KAAK,IAAI3C,kBAAkBL,EAAOM,EAAKuI,uBAAwBvI,EAAKwI,kBAAmBxI,EAAKyI,gCAG1GN,EAAShJ,OAAOmJ,GAEhBL,EAAUvF,KAAKyF,MAGnBpJ,EAAKyH,wBAAwByB,KAGrCjC,MAAO,SAAUC,EAASC,EAAQF,GAC9BjH,EAAKwH,6BAA4B;AClIjD,SAASmC,aAAa1I,GAClB,IAAIjB,EAAOC,KACXkF,cAAcS,MAAM5F,EAAM,CAAC,mBAE3BA,EAAK4J,cAAgB3I,EAAK4I,kBAC1B7J,EAAK8J,oBAAsB7I,EAAK8I,oBAChC/J,EAAKgK,kBAAoB/I,EAAKgJ,kBAC9BjK,EAAKkK,kBAAoBjJ,EAAKkJ,kBAE9BnK,EAAKoK,SAAW/J,GAAGC,WAAW,MAC9BN,EAAKqK,qBAAuBhK,GAAGC,YAAW,GAC1CN,EAAK4H,iBAAmBvH,GAAGG,UAAS,WAChC,OAAOR,EAAKqK,yBAA2BrK,EAAKoK,aAAe/H,EAAE,kBAAkBiI,WAEnFtK,EAAKuK,+BAAiClK,GAAGC,YAAW,GAIpD,IAAIkK,EAAkCxK,EAAK4J,cAAca,OAAO,KAAOzK,EAAK4J,cAAca,OAAO,GAAGzG,cAChG0G,EAAyC1K,EAAK4J,cAAca,OAAO,GAAGzG,cAAgBhE,EAAK4J,cAAce,MAAM,GACnH3K,EAAK4K,aAAeJ,EAAkCE,EAAyC1K,EAAK4J,cACpG5J,EAAK6K,wBAA0BjH,OAAOC,aAAaC,SAAS,iDAAmD9D,EAAK4K,aAEpH5K,EAAK8K,eAAiB,WACbzI,EAAE,kBAAkBiI,UAGzBtK,EAAKgC,iBAAiB,IACtBhC,EAAKqK,sBAAqB,GAEtBrK,EAAKuK,iCACLvK,EAAK+K,aAIT1I,EAAEmE,KAAK,gDAAiD,CACpDvF,KAAMoB,EAAE,kBAAkBsG,YAC1BlC,KAAM,OACNuE,OAAO,EACPrE,QAAS,SAAUsE,EAAW9D,GAC1BnH,EAAKqK,sBAAqB,GAE1B,IAAIa,EAAsC,MAAvBD,EAAUE,WAAqBF,EAAUE,UAAUhJ,OAAS,EAG/E,GAFAnC,EAAKuK,+BAAyD,IAA1BU,EAAUG,aAE1CF,GAAgBlL,EAAKuK,iCAGrB,OAFAvK,EAAKoK,SAASa,EAAUE,UAAU,SAClCnL,EAAKgC,iBAAiB,CAAC4B,OAAOC,aAAaC,SAAS,4DAA8DF,OAAOC,aAAaC,SAAS,wDAA0D9D,EAAK4K,aAAehH,OAAOC,aAAaC,SAAS,yDAA2D9D,EAAK4K,aAAehH,OAAOC,aAAaC,SAAS,0DAEnW,GAAI9D,EAAKuK,iCACZvK,EAAKgC,iBAAiB,CAAC4B,OAAOC,aAAaC,SAAS,kEADjD,CAKHoH,GAAgBD,EAAUE,UAAU,KAAOnL,EAAKoK,WAChDpK,EAAK+K,aAGL/K,EAAKgC,iBAAiB,CAAChC,EAAK4J,cAAgBqB,EAAUI,UAG1D,IAAI5G,EAASpC,EAAE,mBACwB,IAAnCrC,EAAKgC,mBAAmBG,QACxBsC,EAAOC,KAAK,0BAA0BC,OAAO,GAC7CF,EAAOC,KAAK,oBAAoBE,YAAY,qBAE5CH,EAAOC,KAAK,0BAA0BC,OAAOF,EAAOC,KAAK,eAAeM,aAAY,IACpFP,EAAOC,KAAK,oBAAoBO,SAAS,sBAGjDgC,MAAO,WACHjH,EAAKqK,sBAAqB,GAC1BrK,EAAKgC,iBAAiB,CAAC4B,OAAOC,aAAaC,SAAmC,gCAK1F9D,EAAK+K,WAAa,WACd/K,EAAKgC,iBAAiB,IACtBhC,EAAKqK,sBAAqB,GAE1BhI,EAAEmE,KAAK,CACHE,IAAKrE,EAAE,kBAAkBqG,KAAK,UAC9BjC,KAAM,OACNxF,KAAMoB,EAAE,kBAAkBsG,YAC1BhC,QAAS,SAAUiC,GACf5I,EAAKqK,sBAAqB,GAEtBzB,EAAO7F,QACP/C,EAAKsF,QAAO,GAEZtF,EAAKgC,iBAAiB4G,EAAOC,iBAGrC5B,MAAO,WACHjH,EAAKqK,sBAAqB,GAC1BrK,EAAKgC,iBAAiB,CAAC4B,OAAOC,aAAaC,SAAmC,+BAK1F9D,EAAKiG,KAAO,WACRjG,EAAKwF,aACLxF,EAAKqK,sBAAqB,GAC1BrK,EAAKuK,gCAA+B,GACpC1F,iBAAiByG,kBAAkBtL,EAAK4J;ACzGhD,SAAS2B,mBAAmBtK,GACxB,IAAIjB,EAAOC,KAEXD,EAAK6F,WAAaxF,GAAGC,YAAW,GAEhCN,EAAKwL,yBAA2B,IAAI9F,yBAAyBzE,EAAKwK,0BAA2BzL,EAAK6F,YAClG7F,EAAKwL,yBAAyBlG,OAAOzC,WAAU,SAAUyC,GACjDA,IACAtF,EAAK0L,eAAenF,eAAevG,EAAK6F,cACxC7F,EAAK2L,oBAAoB5C,uBAAuB/I,EAAK6F,cACrD7F,EAAK4L,WAAW5L,EAAK0L,oBAI7B1L,EAAK0L,eAAiB,IAAIvF,eAC1BnG,EAAK0L,eAAepG,OAAOzC,WAAU,SAAUyC,GACvCA,GACAtF,EAAK4L,WAAW5L,EAAK2L,wBAI7B3L,EAAK2L,oBAAsB,IAAIpE,oBAC/BvH,EAAK2L,oBAAoBrG,OAAOzC,WAAU,SAAUyC,GAC5CA,GACAtF,EAAK4L,WAAW5L,EAAK6L,iBAI7B7L,EAAK6L,aAAe,IAAIlC,aAAa1I,GACrCjB,EAAK6L,aAAavG,OAAOzC,WAAU,SAAUyC,GACrCA,IACAwB,OAAOgF,SAASC,KAAO,iDAI/B/L,EAAKgM,YAAc3L,GAAGC,WAAWN,EAAK0L,gBACtC1L,EAAK4L,WAAa,SAAUK,GACxB,IAAIC,EAAWlM,EAAKgM,cAChBG,EAAQ9J,EAAE,mBAAmBpB,KAAK,SAClCmL,EAAoBD,EAAME,cAAcC,KAAKC,mBAC7CC,EAAenK,EAAE,IAAM4J,EAAK5G,IAEhCrF,EAAKgM,YAAYC,GAEZ5J,EAAE,mBAAmBoK,SAAS,cAC/BN,EAAMO,OAEVF,EAAavG,OACbkG,EAAMQ,UAAUH,GAChBA,EAAaI,KAAK,WAAY,MAC9BJ,EAAa1D,UAAU,GAEvB/B,YAAW,WACJmF,GAAYA,IAAaD,GACxB5J,EAAE,IAAM6J,EAAS7G,IAAII,OAEzB+G,EAAaK,UACdT,IAGPpM,EAAK8M,KAAO,WACRjI,iBAAiBC,eAAeD,iBAAiBkI,uBACjD/M,EAAK4L,WAAW5L,EAAK2L,sBAGzB3L,EAAKiI,KAAO,WACRjI,EAAK2L,oBAAoB1D,QAG7BjI,EAAKgN,mBAAqB,WAClBhN,EAAKgM,cAAc3G,KAAOrF,EAAK0L,eAAerG,IAAMrF,EAAKgM,cAAc3G,KAAOrF,EAAKwL,yBAAyBnG,GAC5G4H,QAAQC,OAER7K,EAAE,gCAAgC4D,QAI1CjG,EAAKmN,gCAAkClM,EAAKmM,sBAEvCpN,EAAKmN,8BAKNnN,EAAK4L,WAAW5L,EAAKwL,2BAJrBxL,EAAK0L,eAAenF,gBAAe,GACnCvG,EAAK2L,oBAAoB5C,wBAAuB,GAChD/I,EAAK4L,WAAW5L,EAAK0L;ACjF7B,IAAI7G,iBAAmB,CACnBwI,UAAW,GAEXC,2BAA4B,CACxBC,KAAM3J,OAAOC,aAAaC,SAAS,uCACnC0J,KAAM,CAAEC,OAAQ,OAAQC,SAAU,oDAGtCC,iBAAkB,CACdJ,KAAM3J,OAAOC,aAAaC,SAAS,uCACnC0J,KAAM,CAAEC,OAAQ,OAAQC,SAAU,oDAGtCE,gCAAiC,CAC7BL,KAAM3J,OAAOC,aAAaC,SAAS,uCACnC0J,KAAM,CAAEC,OAAQ,OAAQC,SAAU,mDAClCG,MAAO,CAAEJ,OAAQ,SAAUF,KAAM3J,OAAOC,aAAaC,SAAS,oCAAqC4J,SAAU,sCAGjHX,sBAAuB,CACnBQ,KAAM3J,OAAOC,aAAaC,SAAS,8CACnC0J,KAAM,CAAEC,OAAQ,OAAQC,SAAU,oDAGtC3I,8CAA+C,CAC3CwI,KAAM3J,OAAOC,aAAaC,SAAS,+CACnC0J,KAAM,CAAEC,OAAQ,SAAUF,KAAM3J,OAAOC,aAAaC,SAAS,qCAAsC4J,SAAU,+CAC7GG,MAAO,CAAEJ,OAAQ,SAAUF,KAAM3J,OAAOC,aAAaC,SAAS,mCAAoC4J,SAAU,sCAGhHxI,+CAAgD,CAC5CqI,KAAM3J,OAAOC,aAAaC,SAAS,+CACnC0J,KAAM,CAAEC,OAAQ,SAAUF,KAAM3J,OAAOC,aAAaC,SAAS,qCAAsC4J,SAAU,+CAC7GG,MAAO,CAAEJ,OAAQ,SAAUF,KAAM3J,OAAOC,aAAaC,SAAS,mCAAoCgK,SAAU,OAAQJ,SAAU,KAGlIK,uCAAwC,CACpCR,KAAM3J,OAAOC,aAAaC,SAAS,+CACnC0J,KAAM,CAAEC,OAAQ,SAAUF,KAAM3J,OAAOC,aAAaC,SAAS,qCAAsC4J,SAAU,gDAGjHM,eAAgB,CACZT,KAAM3J,OAAOC,aAAaC,SAAS,6CACnC0J,KAAM,CAAEC,OAAQ,OAAQC,SAAU,oDAGtC5I,eAAgB,SAAUmJ,GACtBnH,OAAOoH,WAAWC,aAAaF,GAE/B5L,EAAE,8CAA8C4C,SAAS,UAAUL,YAAY,YAC/EvC,EAAE,eAAekL,KAAKU,EAAaV,MAE/BU,EAAaT,OACoB,SAA7BS,EAAaT,KAAKC,OAClBpL,EAAE,aAAauC,YAAY,UACO,WAA7BqJ,EAAaT,KAAKC,QAAuBQ,EAAaT,KAAKD,OAAS3J,OAAOC,aAAaC,SAAS,sCACtGzB,EAAE,eAAeuC,YAAY,WAGjCqJ,EAAaJ,OAAuC,WAA9BI,EAAaJ,MAAMJ,SACrCQ,EAAaJ,MAAMN,OAAS3J,OAAOC,aAAaC,SAAS,oCACzDzB,EAAE,cAAcuC,YAAY,UACrBqJ,EAAaJ,MAAMN,OAAS3J,OAAOC,aAAaC,SAAS,qCAC5DmK,EAAaJ,MAAMC,UACnBzL,EAAE,aAAa4C,SAAS,YAE5B5C,EAAE,aAAauC,YAAY,aAKvCsB,8BAA+B,WAC3B7D,EAAE,iCAAiCuC,YAAY,UAC/CC,iBAAiBC,eAAeD,iBAAiByI,6BAGrDhG,oBAAqB,WACjBjF,EAAE,qBAAqBuC,YAAY,UACnCC,iBAAiBC,eAAeD,iBAAiB8I,mBAGrD3G,0BAA2B,WACvBnC,iBAAiBC,eAAeD,iBAAiB+I,kCAGrD1F,yBAA0B,WACtBpB,OAAOC,YAAW,WACd1E,EAAE,2BAA2B4D,OAAO4G,QACpCxK,EAAE,sCAAsCoD,SACzC,KACHZ,iBAAiBC,eAAeD,iBAAiBkI,wBAGrDhF,kCAAmC,SAAUqG,GAIzC,GAHA/L,EAAE,sCAAsC4D,OACxC5D,EAAE,2BAA2BoD,OAEzB2I,EAAa,CACb,IAAIC,EAASxJ,iBAAiBkJ,uCAC9BM,EAAOd,KAAOa,EACdvJ,iBAAiBC,eAAeuJ,QAEhCxJ,iBAAiBC,eAAeD,iBAAiBK,iDAIzDoG,kBAAmB,SAAU1B,GACzBvH,EAAE,mBAAmBpB,KAAK,SAAS0L,UAAUtK,EAAE,oBAC/CwC,iBAAiBmJ,eAAeT,KAAO3J,OAAOC,aAAaC,SAAS,qCAAuC8F,EAC3G/E,iBAAiBC,eAAeD,iBAAiBmJ,kBAIzD3L,GAAE,WAEEA,EAAE,mBAAmB8J,MAAM,CACvBmC,UAAa,CACTC,SAAY,QACZC,UAAa,WAIrB3J,iBAAiBwI,UAAY,IAAI9B,mBAAmBkD,WAEpDpO,GAAGqO,cAAc7J,iBAAiBwI,WAElChL,EAAEsM,UAAUC,UAAU,iBAAiB,SAAUC,EAAOC,GACpD,IAAIC,EAAQ,IAAIxK,OAAOkK,UAAUO,cAAe,KAChD,OAAO/O,KAAKgP,SAASH,IAAYC,EAAMG,KAAKL,KAC7CJ,UAAU5E,kBAAoBjG,OAAOC,aAAaC,SAAS,uBAE9DzB,EAAE,kBAAkB8M,SAAS,CACzBC,MAAO,CACHC,QAAW,CACPC,UAAU,EACVC,UAAWd,UAAUxE,kBACrBuF,UAAWf,UAAUtE,kBACrBsF,eAAe,IAGvBC,SAAU,CACNL,QAAW,CAAEC,SAAUb,UAAU5E,kBAAoBjG,OAAOC,aAAaC,SAAS,yBAEtF6L,eAAgB,SAAU1I,GACtBA,EAAM2I,SAASvN,EAAE,uCAErBwN,UAAW,WACP9I,YAAW,WACP,IAAI0B,EAAQpG,EAAE,kBACdoG,EAAM/D,KAAK,0BAA0BC,OAAO8D,EAAM/D,KAAK,eAAeM,aAAY,IAAOC,SAAS,QAClGwD,EAAM/D,KAAK,oBAAoBO,SAAS,qBACzC,MAEP6K,YAAa,WACT,IAAIrH,EAAQpG,EAAE,kBACdoG,EAAM/D,KAAK,0BAA0BC,OAAO,GAAGM,SAAS,QACxDwD,EAAM/D,KAAK,oBAAoBE,YAAY","file":"registration.bundle.min.js","sourcesContent":["function RegistrationFieldGroup() {\r\n var self = this;\r\n\r\n self.name = null;\r\n self.description = null;\r\n self.fields = ko.observable([]);\r\n self.fieldsWithValuesExcludingBooleans = ko.computed(function () {\r\n return ko.utils.arrayFilter(self.fields(), function (field) {\r\n return field.fieldTypeName !== 'Boolean' && field.fieldValue() !== null && field.fieldValue() !== '';\r\n });\r\n });\r\n self.fieldsWithoutValues = ko.computed(function () {\r\n return ko.utils.arrayFilter(self.fields(), function (field) {\r\n return field.fieldValue() === null || field.fieldValue() === '';\r\n });\r\n });\r\n self.fieldsWithoutValuesAndBooleans = ko.computed(function () {\r\n return ko.utils.arrayFilter(self.fields(), function (field) {\r\n return field.fieldTypeName === 'Boolean' || (field.fieldValue() === null || field.fieldValue() === '');\r\n });\r\n });\r\n}\r\n\r\nfunction RegistrationField(data, registrationFieldTypes, registrationTypes, registrationFieldListItems) {\r\n var self = this;\r\n\r\n self.fieldInfo = data;\r\n\r\n self.maxLength = self.fieldInfo.MaxLength ? self.fieldInfo.MaxLength.toString() : '40';\r\n self.labelText = self.fieldInfo.Text;\r\n self.placeholderText = 'Enter ' + self.fieldInfo.Text;\r\n self.fieldTypeName = registrationFieldTypes[self.fieldInfo.FieldType.toString()];\r\n self.registrationTypeName = registrationTypes[self.fieldInfo.RegistrationType.toString()];\r\n self.isEditing = ko.observable(false);\r\n self.validationErrors = ko.observableArray([]);\r\n self.hasValidationErrors = ko.computed(function () {\r\n return self.validationErrors() && self.validationErrors().length > 0;\r\n });\r\n\r\n self.listItems = [];\r\n\r\n if (self.fieldTypeName === 'List') {\r\n self.listItems = $.grep(registrationFieldListItems, function (listItem) {\r\n return listItem.ParentRegistrationField.Id === self.fieldInfo.Id;\r\n });\r\n }\r\n\r\n self.fieldValue = ko.observable(self.fieldTypeName === 'Boolean' ? self.fieldInfo.DefaultValueAsBool : self.fieldInfo.DefaultValue);\r\n self.fieldTempValue = ko.observable(null);\r\n self.fieldTempValue.subscribe(function(newValue) {\r\n self.isValid();\r\n });\r\n\r\n self.fieldValueForDisplay = ko.computed(function () {\r\n if (self.fieldValue() === null)\r\n return self.fieldValue();\r\n\r\n if (self.fieldTypeName === 'Text' && self.registrationTypeName === 'DateOfBirth') {\r\n var isoDate = new Date(self.fieldValue()).toISOString();\r\n var dateParts = isoDate.split(/[-T]/);\r\n\r\n return $.datepicker.formatDate('m/d/y', new Date(dateParts[0], parseInt(dateParts[1]) - 1, dateParts[2]));\r\n }\r\n\r\n if (self.fieldTypeName === 'List') {\r\n var matches = $.grep(self.listItems, function(item) {\r\n return item.DefaultValue === self.fieldValue();\r\n });\r\n\r\n return matches.length === 0 ? self.fieldValue() : matches[0].Text;\r\n }\r\n\r\n return self.fieldValue();\r\n });\r\n\r\n self.isValid = function () {\r\n self.validationErrors([]);\r\n\r\n if (self.fieldTypeName === 'List') {\r\n return true;\r\n }\r\n\r\n if ((self.fieldTempValue() === null || self.fieldTempValue() === '') && self.fieldInfo.IsRequired) {\r\n self.validationErrors.push(Alkami.Localization.SiteText['Registration.Validation.IsRequired'].replace('{0}', self.labelText));\r\n }\r\n\r\n if (self.fieldTempValue() !== null && self.fieldTempValue() !== '') {\r\n switch (self.registrationTypeName.toLowerCase()) {\r\n case 'dateofbirth':\r\n if (isNaN(Date.parse(self.fieldTempValue()))) {\r\n self.validationErrors.push(Alkami.Localization.SiteText['Registration.Validation.EnterValid'].replace('{0}', self.labelText));\r\n }\r\n break;\r\n case 'zipcode':\r\n if (!self.fieldTempValue().match(/(^\\d{5}(-\\d{4})?$)|(^[ABCEGHJKLMNPRSTVXYabceghjklmnpstvxy]{1}\\d{1}[A-Za-z]{1} ?\\d{1}[A-Za-z]{1}\\d{1})$/)) {\r\n self.validationErrors.push(Alkami.Localization.SiteText['Registration.Validation.EnterValid'].replace('{0}', self.labelText));\r\n }\r\n break;\r\n case 'ein':\r\n case 'taxid':\r\n var numDigits = $('#num_digits').val();\r\n var minNumDigits = $('#min_num_digits').val();\r\n //var expression = \"^\\\\d{\" + numDigits + \"}$\"; \r\n //^[0-9]{4,9}$\r\n var expression = '^[0-9]{' + minNumDigits + ',' + numDigits + '}$';\r\n // This expression ensures the entry is a number with length between the minNumDigits and numDigits\r\n if (!self.fieldTempValue().match(new RegExp(expression))) {\r\n self.validationErrors.push(Alkami.Localization.SiteText['Registration.Validation.EnterValid'].replace('{0}', self.labelText));\r\n }\r\n break;\r\n case 'homephone':\r\n var phoneNumber = self.fieldTempValue().replace(/\\s+/g, '');\r\n if (phoneNumber.length <= 9 && !phoneNumber.match(/^([\\(]{1}[0-9]{3}[\\)]{1}[\\.| |\\-]{0,1}|^[0-9]{3}[\\.|\\-| ]?)?[0-9]{3}(\\.|\\-| )?[0-9]{4}$/)) {\r\n self.validationErrors.push(Alkami.Localization.SiteText['RegistrationValidationEnterValidNumber']);\r\n }\r\n break;\r\n };\r\n }\r\n\r\n var $panel = $('#confirm_identity_edit_field_panel');\r\n \r\n if (self.validationErrors().length === 0) {\r\n $panel.find('.ani-input-error-block').height(0);\r\n $panel.find('.input-container').removeClass('ani-input-error');\r\n registrationArea.updateTitleBar(registrationArea.confirmIdentityEditFieldWithEnabledDoneNavBar);\r\n } else {\r\n $panel.find('.ani-input-error-block').height($panel.find('.error-text').outerHeight(true));\r\n $panel.find('.input-container').addClass('ani-input-error');\r\n registrationArea.updateTitleBar(registrationArea.confirmIdentityEditFieldWithDisabledDoneNavBar);\r\n }\r\n \r\n return self.validationErrors().length === 0;\r\n };\r\n}\r\n\r\n","function BaseStepModel(panelId) {\r\n var self = this;\r\n self.id = panelId;\r\n self.isDone = ko.observable(false);\r\n self.isCanceled = ko.observable(false);\r\n\r\n self.validationErrors = ko.observableArray([]);\r\n self.hasValidationErrors = ko.computed(function() {\r\n return self.validationErrors() && self.validationErrors().length > 0;\r\n });\r\n\r\n self.resetState = function () {\r\n self.isDone(false);\r\n self.isCanceled(false);\r\n self.validationErrors([]);\r\n };\r\n\r\n self.hide = function() {\r\n $('#' + self.id).addClass('hidden');\r\n };\r\n}","function BusinessOrIndividualStep(data, isBusinessObservableReference) {\r\n var self = this;\r\n BaseStepModel.apply(self, ['business_or_individual_panel']);\r\n\r\n self.isBusiness = isBusinessObservableReference;\r\n self.businessOrIndividualModel = data;\r\n\r\n self.setIndividual = function() {\r\n self.isBusiness(false);\r\n self.isDone(true);\r\n }\r\n\r\n self.setBusiness = function() {\r\n self.isBusiness(true);\r\n self.isDone(true);\r\n };\r\n\r\n self.show = function () {\r\n self.resetState();\r\n registrationArea.showBusinessOrIndividualPanel();\r\n }\r\n}","function DisclosureStep() {\r\n var self = this;\r\n BaseStepModel.apply(self, ['disclosure_panel']);\r\n\r\n self.isLoadingDisclosure = ko.observable(true);\r\n self.htmlBeforeRegistrationDisclosure = ko.observable(null);\r\n self.htmlDisclosure = ko.observable(null);\r\n\r\n self.loadDisclosure = function (isBusiness) {\r\n $.ajax({\r\n type: 'GET',\r\n url: '/Mobile/Registration/Disclosure?isBusiness=' + isBusiness,\r\n success: function (data) {\r\n self.htmlBeforeRegistrationDisclosure(data.HtmlBeforeRegistrationDisclosure);\r\n self.htmlDisclosure(data.Disclosure);\r\n\r\n window.setTimeout(function() {\r\n self.isLoadingDisclosure(false);\r\n registrationArea.showDisclosureAgreeButton();\r\n }, 2000);\r\n },\r\n error: function (request, status, error) {\r\n mobileUtils.flashMessage('Error', Alkami.Localization.SiteText['Disclosure.LoadingError']);\r\n self.isLoadingDisclosure(false);\r\n }\r\n });\r\n }\r\n\r\n self.show = function () {\r\n self.resetState();\r\n registrationArea.showDisclosurePanel();\r\n }\r\n}","function ConfirmIdentityStep() {\r\n var self = this;\r\n BaseStepModel.apply(self, ['confirm_identity_panel']);\r\n\r\n self.isLoadingRegistrationFields = ko.observable(true);\r\n self.registrationFieldGroups = ko.observable([]);\r\n self.numberDigitsToValidateTaxId = ko.observable(null);\r\n self.minimumNumberDigitsToValidateTaxId = ko.observable(null);\r\n self.isButtonDisabled = ko.observable(false);\r\n\r\n self.currentField = ko.observable(null);\r\n\r\n self.editField = function (field) {\r\n field.fieldTempValue(field.fieldValue());\r\n self.currentField(field);\r\n registrationArea.showConfirmIdentityEditFieldPanel(field.fieldTypeName === 'List' ? field.labelText : null);\r\n\r\n if (field.fieldTempValue() !== null && field.fieldTempValue() !== '')\r\n self.currentField().isValid();\r\n\r\n self.currentField().isEditing(true);\r\n };\r\n\r\n self.selectListItem = function (listItem) {\r\n self.currentField().fieldTempValue(listItem.DefaultValue);\r\n self.done();\r\n };\r\n\r\n self.done = function () {\r\n if (self.currentField().isValid()) {\r\n self.currentField().fieldValue(self.currentField().fieldTempValue());\r\n\r\n if (self.hasValidationErrors()) {\r\n // Refresh the validation errors.\r\n self.isValid();\r\n }\r\n\r\n registrationArea.showConfirmIdentityPanel();\r\n self.currentField(null);\r\n }\r\n };\r\n\r\n self.isValid = function () {\r\n var errors = [];\r\n\r\n $.each(self.registrationFieldGroups(), function (i, group) {\r\n $.each(group.fieldsWithoutValues(), function (j, field) {\r\n if (field.fieldInfo.IsRequired) {\r\n errors.push(field.labelText + ' is required.');\r\n }\r\n });\r\n });\r\n\r\n self.validationErrors(errors);\r\n\r\n return self.validationErrors().length === 0;\r\n };\r\n\r\n self.confirmIdentity = function () {\r\n var $form = $('#registration_fields_form');\r\n\r\n if (self.isValid()) {\r\n self.isButtonDisabled(true);\r\n\r\n $.ajax({\r\n url: $form.attr('action'),\r\n type: \"POST\",\r\n data: $form.serialize(),\r\n success: function (result) {\r\n self.isButtonDisabled(false);\r\n\r\n if (result.isValid) {\r\n self.isDone(true);\r\n } else {\r\n self.validationErrors(result.error_messages);\r\n $('#confirm_identity_panel').scrollTop(0);\r\n }\r\n },\r\n error: function () {\r\n self.isButtonDisabled(false);\r\n self.validationErrors([Alkami.Localization.SiteText['ShortGeneralErrorMessage']]);\r\n $('#confirm_identity_panel').scrollTop(0);\r\n }\r\n });\r\n }\r\n\r\n if (self.hasValidationErrors()) {\r\n $('#confirm_identity_panel').scrollTop(0);\r\n }\r\n };\r\n\r\n self.show = function () {\r\n self.resetState();\r\n self.isButtonDisabled(false);\r\n registrationArea.showConfirmIdentityPanel();\r\n };\r\n\r\n self.loadRegistrationFields = function (isBusiness) {\r\n $.ajax({\r\n type: 'GET',\r\n url: '/Mobile/Registration/Information?isBusiness=' + isBusiness,\r\n success: function (data) {\r\n\r\n self.isLoadingRegistrationFields(false);\r\n self.numberDigitsToValidateTaxId(data.NumberDigitsToValidateTaxId);\r\n self.minimumNumberDigitsToValidateTaxId(data.MinimumNumberDigitsToValidateTaxId);\r\n\r\n var regGroups = [];\r\n\r\n if (data.RegistrationFieldGroups) {\r\n $.each(data.RegistrationFieldGroups, function (i, group) {\r\n var regGroup = new RegistrationFieldGroup();\r\n regGroup.name = group[0].RegistrationFieldGroup.Name;\r\n regGroup.description = group[0].RegistrationFieldGroup.Description;\r\n\r\n var regFields = [];\r\n\r\n $.each(group, function (j, field) {\r\n regFields.push(new RegistrationField(field, data.RegistrationFieldTypes, data.RegistrationTypes, data.RegistrationFieldListItems));\r\n });\r\n\r\n regGroup.fields(regFields);\r\n\r\n regGroups.push(regGroup);\r\n });\r\n\r\n self.registrationFieldGroups(regGroups);\r\n }\r\n },\r\n error: function (request, status, error) {\r\n self.isLoadingRegistrationFields(false);\r\n }\r\n });\r\n }\r\n}","function UsernameStep(data) {\r\n var self = this;\r\n BaseStepModel.apply(self, ['username_panel']);\r\n\r\n self.usernameLabel = data.UsernameLabelText;\r\n self.usernameDescription = data.UsernameDescription;\r\n self.usernameMinLength = data.UsernameMinLength;\r\n self.usernameMaxLength = data.UsernameMaxLength;\r\n\r\n self.username = ko.observable(null);\r\n self.isSubmittingUsername = ko.observable(false);\r\n self.isButtonDisabled = ko.computed(function () {\r\n return self.isSubmittingUsername() || !self.username() || !$('#username_form').valid();\r\n });\r\n self.hasReachedMaximumUsernameTries = ko.observable(false);\r\n\r\n // Handle case when username label is \"Username\" and we want the placeholder to be \"Enter a username\"\r\n // and the case when username label is \"User ID\" and we want the placeholder to be \"Enter a user ID\"\r\n var isUsernameLabelLowerOrMixedCase = self.usernameLabel.charAt(1) === self.usernameLabel.charAt(1).toLowerCase(); // Is second letter lowercase?\r\n var usernameLabelWithFirstCharacterLowered = self.usernameLabel.charAt(0).toLowerCase() + self.usernameLabel.slice(1);\r\n self.usernameText = isUsernameLabelLowerOrMixedCase ? usernameLabelWithFirstCharacterLowered : self.usernameLabel;\r\n self.usernamePlaceholderText = Alkami.Localization.SiteText['Registration.Mobile.UsernamePlaceHolderPrefix'] + self.usernameText;\r\n\r\n self.chooseUsername = function () {\r\n if (!$('#username_form').valid())\r\n return;\r\n\r\n self.validationErrors([]);\r\n self.isSubmittingUsername(true);\r\n\r\n if (self.hasReachedMaximumUsernameTries()) {\r\n self.submitForm();\r\n return;\r\n }\r\n\r\n $.ajax('/MobileRegistration/CheckUsernameAvailability', {\r\n data: $('#username_form').serialize(),\r\n type: 'POST',\r\n cache: false,\r\n success: function (available, status) {\r\n self.isSubmittingUsername(false);\r\n\r\n var hasUsernames = available.userNames != null && available.userNames.length > 0;\r\n self.hasReachedMaximumUsernameTries(available.retriesLeft === 0);\r\n\r\n if (hasUsernames && self.hasReachedMaximumUsernameTries()) {\r\n self.username(available.userNames[0]);\r\n self.validationErrors([Alkami.Localization.SiteText['Registration.ErrorMessage.ReachedMaximumNumberOfAttempts'] + Alkami.Localization.SiteText['Registration.ErrorMessage.ChosenUsernameForYou.First'] + self.usernameText + Alkami.Localization.SiteText['Registration.ErrorMessage.ChosenUsernameForYou.Second'] + self.usernameText + Alkami.Localization.SiteText['Registration.ErrorMessage.ChosenUsernameForYou.Third']]);\r\n return;\r\n } else if (self.hasReachedMaximumUsernameTries()) {\r\n self.validationErrors([Alkami.Localization.SiteText['Registration.ErrorMessage.ReachedMaximumNumberOfAttempts']]);\r\n return;\r\n }\r\n\r\n if (hasUsernames && available.userNames[0] === self.username()) { // username is available\r\n self.submitForm();\r\n }\r\n else {\r\n self.validationErrors([self.usernameLabel + available.message]);\r\n }\r\n\r\n var $panel = $('#username_panel');\r\n if (self.validationErrors().length === 0) {\r\n $panel.find('.ani-input-error-block').height(0);\r\n $panel.find('.input-container').removeClass('ani-input-error');\r\n } else {\r\n $panel.find('.ani-input-error-block').height($panel.find('.error-text').outerHeight(true));\r\n $panel.find('.input-container').addClass('ani-input-error');\r\n }\r\n },\r\n error: function () {\r\n self.isSubmittingUsername(false);\r\n self.validationErrors([Alkami.Localization.SiteText['ShortGeneralErrorMessage']]);\r\n }\r\n });\r\n };\r\n\r\n self.submitForm = function () {\r\n self.validationErrors([]);\r\n self.isSubmittingUsername(true);\r\n\r\n $.ajax({\r\n url: $('#username_form').attr('action'),\r\n type: 'POST',\r\n data: $('#username_form').serialize(),\r\n success: function (result) {\r\n self.isSubmittingUsername(false);\r\n\r\n if (result.isValid) {\r\n self.isDone(true);\r\n } else {\r\n self.validationErrors(result.error_messages);\r\n }\r\n },\r\n error: function () {\r\n self.isSubmittingUsername(false);\r\n self.validationErrors([Alkami.Localization.SiteText['ShortGeneralErrorMessage']]);\r\n }\r\n });\r\n };\r\n\r\n self.show = function () {\r\n self.resetState();\r\n self.isSubmittingUsername(false);\r\n self.hasReachedMaximumUsernameTries(false);\r\n registrationArea.showUsernamePanel(self.usernameLabel);\r\n }\r\n}","function RegistrationWizard(data) {\r\n var self = this;\r\n\r\n self.isBusiness = ko.observable(false);\r\n\r\n self.businessOrIndividualStep = new BusinessOrIndividualStep(data.BusinessOrIndividualModel, self.isBusiness);\r\n self.businessOrIndividualStep.isDone.subscribe(function (isDone) {\r\n if (isDone) {\r\n self.disclosureStep.loadDisclosure(self.isBusiness());\r\n self.confirmIdentityStep.loadRegistrationFields(self.isBusiness());\r\n self.changeStep(self.disclosureStep);\r\n }\r\n });\r\n\r\n self.disclosureStep = new DisclosureStep();\r\n self.disclosureStep.isDone.subscribe(function (isDone) {\r\n if (isDone) {\r\n self.changeStep(self.confirmIdentityStep);\r\n }\r\n });\r\n\r\n self.confirmIdentityStep = new ConfirmIdentityStep();\r\n self.confirmIdentityStep.isDone.subscribe(function (isDone) {\r\n if (isDone) {\r\n self.changeStep(self.usernameStep);\r\n }\r\n });\r\n\r\n self.usernameStep = new UsernameStep(data);\r\n self.usernameStep.isDone.subscribe(function (isDone) {\r\n if (isDone) {\r\n window.location.href = '/Mobile/Registration/SendTemporaryPassword';\r\n }\r\n });\r\n\r\n self.currentStep = ko.observable(self.disclosureStep);\r\n self.changeStep = function (step) {\r\n var lastStep = self.currentStep();\r\n var mmenu = $('#mm_side_panels').data('mmenu');\r\n var animationDuration = mmenu.getInstance().conf.transitionDuration;\r\n var $stepElement = $('#' + step.id);\r\n\r\n self.currentStep(step);\r\n\r\n if (!$('#mm_side_panels').hasClass('mm-opened')) {\r\n mmenu.open();\r\n }\r\n $stepElement.show();\r\n mmenu.openPanel($stepElement);\r\n $stepElement.prop('tabindex', '-1');\r\n $stepElement.scrollTop(0);\r\n\r\n setTimeout(function() {\r\n if(lastStep && lastStep !== step) {\r\n $('#' + lastStep.id).hide();\r\n }\r\n $stepElement.focus();\r\n }, animationDuration);\r\n };\r\n\r\n self.next = function () {\r\n registrationArea.updateTitleBar(registrationArea.confirmIdentityNavBar);\r\n self.changeStep(self.confirmIdentityStep);\r\n };\r\n\r\n self.done = function() {\r\n self.confirmIdentityStep.done();\r\n };\r\n\r\n self.cancelRegistration = function () {\r\n if (self.currentStep().id === self.disclosureStep.id || self.currentStep().id === self.businessOrIndividualStep.id) {\r\n history.back();\r\n } else {\r\n $('#confirm_cancel_registration').show();\r\n }\r\n };\r\n\r\n self.isBusinessRegistrationEnabled = !!data.BBRegistrationEnabled;\r\n\r\n if (!self.isBusinessRegistrationEnabled) {\r\n self.disclosureStep.loadDisclosure(false);\r\n self.confirmIdentityStep.loadRegistrationFields(false);\r\n self.changeStep(self.disclosureStep);\r\n } else {\r\n self.changeStep(self.businessOrIndividualStep);\r\n }\r\n}\r\n","// For code that alters elements outside of knockout.\r\nvar registrationArea = {\r\n viewModel: {},\r\n\r\n businessOrIndividualNavBar: {\r\n text: Alkami.Localization.SiteText['Registration.Mobile.NavBar.Register'],\r\n left: { button: 'back', callback: 'registrationArea.viewModel.cancelRegistration()' }\r\n },\r\n\r\n disclosureNavBar: {\r\n text: Alkami.Localization.SiteText['Registration.Mobile.NavBar.Register'],\r\n left: { button: 'back', callback: 'registrationArea.viewModel.cancelRegistration()' }\r\n },\r\n\r\n disclosureWithAgreeButtonNavBar: {\r\n text: Alkami.Localization.SiteText['Registration.Mobile.NavBar.Register'],\r\n left: { button: 'back', callback: 'registrationArea.viewModel.cancelRegistration()' },\r\n right: { button: 'custom', text: Alkami.Localization.SiteText['Registration.Mobile.Header.Agree'], callback: 'registrationArea.viewModel.next()' }\r\n },\r\n\r\n confirmIdentityNavBar: {\r\n text: Alkami.Localization.SiteText['Registration.Mobile.NavBar.ConfirmIdentity'],\r\n left: { button: 'back', callback: 'registrationArea.viewModel.cancelRegistration()' }\r\n },\r\n\r\n confirmIdentityEditFieldWithEnabledDoneNavBar: {\r\n text: Alkami.Localization.SiteText['Registration.Mobile.NavBar.EnterInformation'],\r\n left: { button: 'custom', text: Alkami.Localization.SiteText['Registration.Mobile.Header.Cancel'], callback: 'registrationArea.showConfirmIdentityPanel()' },\r\n right: { button: 'custom', text: Alkami.Localization.SiteText['Registration.Mobile.Header.Done'], callback: 'registrationArea.viewModel.done()' }\r\n },\r\n\r\n confirmIdentityEditFieldWithDisabledDoneNavBar: {\r\n text: Alkami.Localization.SiteText['Registration.Mobile.NavBar.EnterInformation'],\r\n left: { button: 'custom', text: Alkami.Localization.SiteText['Registration.Mobile.Header.Cancel'], callback: 'registrationArea.showConfirmIdentityPanel()' },\r\n right: { button: 'custom', text: Alkami.Localization.SiteText['Registration.Mobile.Header.Done'], disabled: 'true', callback: '' }\r\n },\r\n\r\n confirmIdentityEditFieldWithListNavBar: {\r\n text: Alkami.Localization.SiteText['Registration.Mobile.NavBar.EnterInformation'],\r\n left: { button: 'custom', text: Alkami.Localization.SiteText['Registration.Mobile.Header.Cancel'], callback: 'registrationArea.showConfirmIdentityPanel()' }\r\n },\r\n\r\n usernameNavBar: {\r\n text: Alkami.Localization.SiteText['Registration.Mobile.NavBar.ChooseUsername'],\r\n left: { button: 'back', callback: 'registrationArea.viewModel.cancelRegistration()' }\r\n },\r\n\r\n updateTitleBar: function (nativeNavBar) {\r\n window.nativeHook.updateNavBar(nativeNavBar);\r\n\r\n $('#nav_back,#nav_cancel,#nav_agree,#nav_done').addClass('hidden').removeClass('disabled');\r\n $('#page_title').text(nativeNavBar.text);\r\n\r\n if (nativeNavBar.left) {\r\n if (nativeNavBar.left.button === 'back')\r\n $('#nav_back').removeClass('hidden');\r\n else if (nativeNavBar.left.button === 'custom' && nativeNavBar.left.text === Alkami.Localization.SiteText['Registration.Mobile.Header.Cancel'])\r\n $('#nav_cancel').removeClass('hidden');\r\n }\r\n\r\n if (nativeNavBar.right && nativeNavBar.right.button === 'custom') {\r\n if (nativeNavBar.right.text === Alkami.Localization.SiteText['Registration.Mobile.Header.Agree']) {\r\n $('#nav_agree').removeClass('hidden');\r\n } else if (nativeNavBar.right.text === Alkami.Localization.SiteText['Registration.Mobile.Header.Done']) {\r\n if (nativeNavBar.right.disabled) {\r\n $('#nav_done').addClass('disabled');\r\n }\r\n $('#nav_done').removeClass('hidden');\r\n }\r\n }\r\n },\r\n\r\n showBusinessOrIndividualPanel: function () {\r\n $('#business_or_individual_panel').removeClass(\"hidden\");\r\n registrationArea.updateTitleBar(registrationArea.businessOrIndividualNavBar);\r\n },\r\n\r\n showDisclosurePanel: function () {\r\n $('#disclosure_panel').removeClass(\"hidden\");\r\n registrationArea.updateTitleBar(registrationArea.disclosureNavBar);\r\n },\r\n\r\n showDisclosureAgreeButton: function () {\r\n registrationArea.updateTitleBar(registrationArea.disclosureWithAgreeButtonNavBar);\r\n },\r\n\r\n showConfirmIdentityPanel: function () {\r\n window.setTimeout(function () {\r\n $('#confirm_identity_panel').show().focus();\r\n $('#confirm_identity_edit_field_panel').hide();\r\n }, 100);\r\n registrationArea.updateTitleBar(registrationArea.confirmIdentityNavBar);\r\n },\r\n\r\n showConfirmIdentityEditFieldPanel: function (titleIfList) {\r\n $('#confirm_identity_edit_field_panel').show()\r\n $('#confirm_identity_panel').hide();\r\n\r\n if (titleIfList) {\r\n var navBar = registrationArea.confirmIdentityEditFieldWithListNavBar;\r\n navBar.text = titleIfList;\r\n registrationArea.updateTitleBar(navBar);\r\n } else {\r\n registrationArea.updateTitleBar(registrationArea.confirmIdentityEditFieldWithDisabledDoneNavBar);\r\n }\r\n },\r\n\r\n showUsernamePanel: function (usernameLabel) {\r\n $('#mm_side_panels').data('mmenu').openPanel($('#username_panel'));\r\n registrationArea.usernameNavBar.text = Alkami.Localization.SiteText['Registration.Mobile.NavBar.Choose'] + usernameLabel;\r\n registrationArea.updateTitleBar(registrationArea.usernameNavBar);\r\n }\r\n};\r\n\r\n$(function() {\r\n\r\n $('#mm_side_panels').mmenu({\r\n 'offCanvas': {\r\n 'position': 'right',\r\n 'zposition': 'front'\r\n }\r\n });\r\n\r\n registrationArea.viewModel = new RegistrationWizard(modelData);\r\n\r\n ko.applyBindings(registrationArea.viewModel);\r\n\r\n $.validator.addMethod(\"validusername\", function (value, element) {\r\n var regex = new RegExp(modelData.UsernameRegEx, 'g');\r\n return this.optional(element) || regex.test(value);\r\n }, modelData.UsernameLabelText + Alkami.Localization.SiteText['Username.IsInvalid']);\r\n\r\n $('#username_form').validate({\r\n rules: {\r\n 'LoginId': {\r\n required: true,\r\n minlength: modelData.UsernameMinLength,\r\n maxlength: modelData.UsernameMaxLength,\r\n validusername: true\r\n }\r\n },\r\n messages: {\r\n 'LoginId': { required: modelData.UsernameLabelText + Alkami.Localization.SiteText['Username.IsRequired'] }\r\n },\r\n errorPlacement: function (error) {\r\n error.appendTo($('#username_form_errors .error-text'));\r\n },\r\n highlight: function () {\r\n setTimeout(function () {\r\n var $form = $('#username_form');\r\n $form.find('.ani-input-error-block').height($form.find('.error-text').outerHeight(true)).addClass('show');\r\n $form.find('.input-container').addClass('ani-input-error');\r\n }, 100);\r\n },\r\n unhighlight: function () {\r\n var $form = $('#username_form');\r\n $form.find('.ani-input-error-block').height(0).addClass('show');\r\n $form.find('.input-container').removeClass('ani-input-error');\r\n }\r\n });\r\n});\r\n"]}