{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///../node_modules/tslib/tslib.es6.js","webpack:///external \"Vue\"","webpack:///./Scripts/mixins/siteText.ts","webpack:///./Scripts/filters/sitetext.ts","webpack:///./Scripts/enums/ChallengeStatus.ts","webpack:///./Scripts/api/userTelemetry.ts","webpack:///./Scripts/enums/ChallengeType.ts","webpack:///./Scripts/components/Slide.vue","webpack:///./Scripts/enums/ElementIds.ts","webpack:///./Scripts/components/ContainerSlide.vue","webpack:///./Scripts/components/SlideHeaderWithNav.vue","webpack:///./Scripts/components/IsotopeHeader.vue","webpack:///./Scripts/enums/AuthenticationFactor.ts","webpack:///./Scripts/components/SlideHeader.vue","webpack:///./Scripts/components/challenges/index.ts","webpack:///./Scripts/enums/ScenarioType.ts","webpack:///./Scripts/components/challenges/ConfirmIdentity.vue","webpack:///./Scripts/components/challenges/OneTimeCodeForgot.vue","webpack:///./Scripts/components/stepup/index.ts","webpack:///./Scripts/App.vue?0cc1","webpack:///./Scripts/App.vue?d581","webpack:///./Scripts/views/Authentication.vue?e679","webpack:///./Scripts/views/Authentication.vue?9dee","webpack:///./Scripts/views/Registration.vue?1f50","webpack:///./Scripts/views/Registration.vue?be16","webpack:///./Scripts/views/ForgotUsername.vue?473c","webpack:///./Scripts/views/ForgotUsername.vue?5fd2","webpack:///./Scripts/views/ForgotPassword.vue?39fb","webpack:///./Scripts/views/ForgotPassword.vue?d3e8","webpack:///./Scripts/views/LoginGrouping.vue?3167","webpack:///./Scripts/views/LoginGrouping.vue?b76a","webpack:///./Scripts/components/challenges/ChangePassword.vue?60f2","webpack:///./Scripts/components/challenges/ChangePassword.vue?7b0a","webpack:///./Scripts/components/challenges/CheckSyncResult.vue?4471","webpack:///./Scripts/components/challenges/CheckSyncResult.vue?255a","webpack:///./Scripts/components/Slide.vue?db83","webpack:///./Scripts/components/Slide.vue?a86a","webpack:///./Scripts/components/SyncFailure.vue?3958","webpack:///./Scripts/components/SyncFailure.vue?d0aa","webpack:///./Scripts/components/SlideHeader.vue?c379","webpack:///./Scripts/components/SlideHeader.vue?b726","webpack:///./Scripts/components/challenges/CheckSyncResultForgot.vue?f318","webpack:///./Scripts/components/challenges/CheckSyncResultForgot.vue?6376","webpack:///./Scripts/components/ContainerSlide.vue?73e5","webpack:///./Scripts/components/ContainerSlide.vue?8cbd","webpack:///./Scripts/components/SlideHeaderWithNav.vue?03e8","webpack:///./Scripts/components/SlideHeaderWithNav.vue?8c07","webpack:///./Scripts/components/ProgressBar.vue?f8ab","webpack:///./Scripts/components/ProgressBar.vue?5e1c","webpack:///./Scripts/components/challenges/ChooseRegistrationType.vue?62b4","webpack:///./Scripts/components/challenges/ChooseRegistrationType.vue?2d91","webpack:///./Scripts/components/confirmIdentity/ChooseScenario.vue?cf5d","webpack:///./Scripts/components/confirmIdentity/ChooseScenario.vue?98f4","webpack:///./Scripts/components/IsotopeHeader.vue?221a","webpack:///./Scripts/components/IsotopeHeader.vue?8177","webpack:///./Scripts/components/challenges/ConfirmIdentity.vue?a4ea","webpack:///./Scripts/components/challenges/ConfirmIdentity.vue?7c79","webpack:///./Scripts/components/confirmIdentity/UserIdentifyingFieldGroup.vue?34c2","webpack:///./Scripts/components/confirmIdentity/UserIdentifyingFieldGroup.vue?c48b","webpack:///./Scripts/components/confirmIdentity/UserIdentifyingField.vue?64f8","webpack:///./Scripts/components/confirmIdentity/UserIdentifyingField.vue?fd60","webpack:///./Scripts/components/challenges/ConvertedUser.vue?8f3c","webpack:///./Scripts/components/challenges/ConvertedUser.vue?2fdc","webpack:///./Scripts/components/challenges/CreateUser.vue?3fa8","webpack:///./Scripts/components/challenges/CreateUser.vue?c155","webpack:///./Scripts/components/challenges/CreateUsername.vue?3038","webpack:///./Scripts/components/challenges/CreateUsername.vue?f8f7","webpack:///./Scripts/components/challenges/Empty.vue?3153","webpack:///./Scripts/components/challenges/Empty.vue?6c36","webpack:///./Scripts/components/challenges/ForgotPassword.vue?eb94","webpack:///./Scripts/components/challenges/ForgotPassword.vue?4e4f","webpack:///./Scripts/components/challenges/ForgotPasswordChooseScenario.vue?dfb4","webpack:///./Scripts/components/challenges/ForgotPasswordChooseScenario.vue?e7c4","webpack:///./Scripts/components/challenges/ForgotPasswordConfirmIdentity.vue?87bb","webpack:///./Scripts/components/challenges/ForgotPasswordConfirmIdentity.vue?3083","webpack:///./Scripts/components/challenges/ForgotPasswordDisclosure.vue?c56d","webpack:///./Scripts/components/challenges/ForgotPasswordDisclosure.vue?3985","webpack:///./Scripts/components/Disclosure.vue?8622","webpack:///./Scripts/components/Disclosure.vue?24cc","webpack:///./Scripts/components/challenges/ForgotUsername.vue?a454","webpack:///./Scripts/components/challenges/ForgotUsername.vue?89e6","webpack:///./Scripts/components/challenges/ForgotUsernameChooseScenario.vue?1196","webpack:///./Scripts/components/challenges/ForgotUsernameChooseScenario.vue?04ba","webpack:///./Scripts/components/challenges/ForgotUsernameConfirmIdentity.vue?dfa3","webpack:///./Scripts/components/challenges/ForgotUsernameConfirmIdentity.vue?6a30","webpack:///./Scripts/components/challenges/OneTimeCode.vue","webpack:///./Scripts/components/challenges/OneTimeCode.vue?342b","webpack:///./Scripts/components/challenges/OneTimeCode.vue?ea25","webpack:///./Scripts/components/challenges/OneTimeCodeForgot.vue?65c0","webpack:///./Scripts/components/challenges/OneTimeCodeForgot.vue?67af","webpack:///./Scripts/components/challenges/OneTimeCodeForgotContainer.vue?0e48","webpack:///./Scripts/components/challenges/OneTimeCodeForgotContainer.vue?d5bd","webpack:///./Scripts/components/challenges/QuestionsAndAnswers.vue?9494","webpack:///./Scripts/components/challenges/QuestionsAndAnswers.vue?1fdb","webpack:///./Scripts/components/challenges/RegistrationDisclosure.vue?24c4","webpack:///./Scripts/components/challenges/RegistrationDisclosure.vue?db84","webpack:///./Scripts/components/challenges/ResetPassword.vue?7535","webpack:///./Scripts/components/challenges/ResetPassword.vue?1c2d","webpack:///./Scripts/components/challenges/StartForgotPassword.vue?779c","webpack:///./Scripts/components/challenges/StartForgotPassword.vue?237d","webpack:///./Scripts/components/challenges/StartForgotUsername.vue?2bf0","webpack:///./Scripts/components/challenges/StartForgotUsername.vue?4e8a","webpack:///./Scripts/components/challenges/StartRegistration.vue?0429","webpack:///./Scripts/components/challenges/StartRegistration.vue?fcd9","webpack:///./Scripts/components/challenges/StepUp.vue?34b0","webpack:///./Scripts/components/challenges/StepUp.vue?2ddd","webpack:///./Scripts/components/stepup/Biometric.vue?37f3","webpack:///./Scripts/components/stepup/Biometric.vue?5f61","webpack:///./Scripts/components/stepup/EmailCode.vue?5c1d","webpack:///./Scripts/components/stepup/EmailCode.vue?6eb3","webpack:///./Scripts/components/CodeStepup.vue?99e5","webpack:///./Scripts/components/CodeStepup.vue?6863","webpack:///./Scripts/components/RememberDevice.vue?6a2e","webpack:///./Scripts/components/RememberDevice.vue?37b9","webpack:///./Scripts/components/stepup/PushNotification.vue?f3a3","webpack:///./Scripts/components/stepup/PushNotification.vue?36d9","webpack:///./Scripts/components/stepup/QuestionsAndAnswers.vue?3e13","webpack:///./Scripts/components/stepup/QuestionsAndAnswers.vue?89a9","webpack:///./Scripts/components/stepup/SmsCode.vue?2d14","webpack:///./Scripts/components/stepup/SmsCode.vue?205c","webpack:///./Scripts/components/stepup/StepUpOption.vue?d471","webpack:///./Scripts/components/stepup/StepUpOption.vue?f9e6","webpack:///./Scripts/components/stepup/TOTP.vue?5d4a","webpack:///./Scripts/components/stepup/TOTP.vue?ddbd","webpack:///./Scripts/components/TokenStepup.vue?326c","webpack:///./Scripts/components/TokenStepup.vue?b193","webpack:///./Scripts/components/stepup/Token.vue?51e9","webpack:///./Scripts/components/stepup/Token.vue?c17d","webpack:///./Scripts/components/stepup/Unknown.vue?f086","webpack:///./Scripts/components/stepup/Unknown.vue?f246","webpack:///./Scripts/components/stepup/VoiceCode.vue?8d75","webpack:///./Scripts/components/stepup/VoiceCode.vue?cb52","webpack:///./Scripts/components/stepup/VoicePrompt.vue?a6a5","webpack:///./Scripts/components/stepup/VoicePrompt.vue?89f2","webpack:///./Scripts/components/stepup/WebAuthn.vue?3b57","webpack:///./Scripts/components/stepup/WebAuthn.vue?f293","webpack:///./Scripts/components/challenges/StepUpForgot.vue?03ec","webpack:///./Scripts/components/challenges/StepUpForgot.vue?9834","webpack:///./Scripts/components/challenges/TemporaryPassword.vue?aadd","webpack:///./Scripts/components/challenges/TemporaryPassword.vue?fa72","webpack:///./Scripts/components/challenges/Tethered.vue?f7cb","webpack:///./Scripts/components/challenges/Tethered.vue?f7ea","webpack:///./Scripts/components/Turnstile.vue?0570","webpack:///./Scripts/components/Turnstile.vue?587b","webpack:///./Scripts/components/challenges/UpdateBusiness.vue?7564","webpack:///./Scripts/components/challenges/UpdateBusiness.vue?1050","webpack:///./Scripts/components/challenges/UsernameAndPassword.vue?200d","webpack:///./Scripts/components/challenges/UsernameAndPassword.vue?1236","webpack:///./Scripts/components/ForgotLinks.vue?332e","webpack:///./Scripts/components/ForgotLinks.vue?061b","webpack:///./Scripts/components/challenges/UsernameRecovered.vue?b915","webpack:///./Scripts/components/challenges/UsernameRecovered.vue?bab0","webpack:///./Scripts/components/confirmIdentity/ChooseScenario.vue","webpack:///./Scripts/components/CodeStepup.vue","webpack:///./Scripts/components/stepup/StepUpOption.vue","webpack:///./Scripts/App.vue?7e62","webpack:///./Scripts/views/Authentication.vue?7af2","webpack:///./Scripts/views/Registration.vue?98f7","webpack:///./Scripts/views/ForgotUsername.vue?0ec1","webpack:///./Scripts/views/ForgotPassword.vue?52ca","webpack:///./Scripts/views/LoginGrouping.vue?e28f","webpack:///./Scripts/components/challenges/ChangePassword.vue?acc9","webpack:///./Scripts/components/challenges/CheckSyncResult.vue?e91a","webpack:///./Scripts/components/challenges/CheckSyncResultForgot.vue?567f","webpack:///./Scripts/components/challenges/ChooseRegistrationType.vue?f236","webpack:///./Scripts/components/challenges/ConfirmIdentity.vue?5e4f","webpack:///./Scripts/components/challenges/ConvertedUser.vue?9a39","webpack:///./Scripts/components/challenges/CreateUser.vue?2eec","webpack:///./Scripts/components/challenges/CreateUsername.vue?4d12","webpack:///./Scripts/components/challenges/Empty.vue?7c19","webpack:///./Scripts/components/challenges/ForgotPassword.vue?e441","webpack:///./Scripts/components/challenges/ForgotPasswordChooseScenario.vue?f9eb","webpack:///./Scripts/components/challenges/ForgotPasswordConfirmIdentity.vue?0f94","webpack:///./Scripts/components/challenges/ForgotPasswordDisclosure.vue?4aef","webpack:///./Scripts/components/challenges/ForgotUsername.vue?dd31","webpack:///./Scripts/components/challenges/ForgotUsernameChooseScenario.vue?d716","webpack:///./Scripts/components/challenges/ForgotUsernameConfirmIdentity.vue?4b3d","webpack:///./Scripts/components/challenges/OneTimeCode.vue?76e0","webpack:///./Scripts/components/challenges/OneTimeCodeForgot.vue?8c6a","webpack:///./Scripts/components/challenges/OneTimeCodeForgotContainer.vue?b760","webpack:///./Scripts/components/challenges/QuestionsAndAnswers.vue?85b7","webpack:///./Scripts/components/challenges/RegistrationDisclosure.vue?c5f0","webpack:///./Scripts/components/challenges/ResetPassword.vue?c78e","webpack:///./Scripts/components/challenges/StartForgotPassword.vue?ad4c","webpack:///./Scripts/components/challenges/StartForgotUsername.vue?ede0","webpack:///./Scripts/components/challenges/StartRegistration.vue?97cc","webpack:///./Scripts/components/challenges/StepUp.vue?9c65","webpack:///./Scripts/components/challenges/StepUpForgot.vue?abfc","webpack:///./Scripts/components/challenges/TemporaryPassword.vue?3e3e","webpack:///./Scripts/components/challenges/Tethered.vue?5782","webpack:///./Scripts/components/challenges/UpdateBusiness.vue?3ef1","webpack:///./Scripts/components/challenges/UsernameAndPassword.vue?f368","webpack:///./Scripts/components/challenges/UsernameRecovered.vue?6c29","webpack:///./Scripts/components/Slide.vue?ccd3","webpack:///./Scripts/components/SyncFailure.vue?5018","webpack:///./Scripts/components/SlideHeader.vue?2a3f","webpack:///./Scripts/components/ContainerSlide.vue?492a","webpack:///./Scripts/components/SlideHeaderWithNav.vue?1b0c","webpack:///./Scripts/components/confirmIdentity/ChooseScenario.vue?860c","webpack:///./Scripts/components/IsotopeHeader.vue?c642","webpack:///./Scripts/components/confirmIdentity/UserIdentifyingFieldGroup.vue?db24","webpack:///./Scripts/components/Disclosure.vue?e93b","webpack:///./Scripts/components/stepup/StepUpOption.vue?ca0b","webpack:///./Scripts/components/Turnstile.vue?b9ed","webpack:///./Scripts/components/ForgotLinks.vue?aa68","webpack:///./Scripts/components/stepup/Biometric.vue?e1df","webpack:///./Scripts/components/stepup/EmailCode.vue?3ea9","webpack:///./Scripts/components/stepup/PushNotification.vue?6abc","webpack:///./Scripts/components/stepup/QuestionsAndAnswers.vue?faee","webpack:///./Scripts/components/stepup/SmsCode.vue?a5ef","webpack:///./Scripts/components/stepup/TOTP.vue?4eaa","webpack:///./Scripts/components/stepup/Token.vue?d191","webpack:///./Scripts/components/stepup/Unknown.vue?c67a","webpack:///./Scripts/components/stepup/VoiceCode.vue?2265","webpack:///./Scripts/components/stepup/VoicePrompt.vue?51e2","webpack:///./Scripts/components/stepup/WebAuthn.vue?9041","webpack:///./Scripts/components/ProgressBar.vue?b452","webpack:///./Scripts/components/confirmIdentity/UserIdentifyingField.vue?1201","webpack:///./Scripts/components/CodeStepup.vue?7d88","webpack:///./Scripts/components/TokenStepup.vue?aa05","webpack:///./Scripts/components/RememberDevice.vue?dc5e","webpack:///./Scripts/enums/Workflow.ts","webpack:///./Scripts/store/index.ts","webpack:///external \"Vuex\"","webpack:///./Scripts/lib/MachineSecretManager.ts","webpack:///./Scripts/lib/fromEntries.ts","webpack:///./Scripts/components/challenges/ChangePassword.vue","webpack:///./Scripts/components/challenges/CheckSyncResult.vue","webpack:///./Scripts/components/SyncFailure.vue","webpack:///./Scripts/lib/SiteText.ts","webpack:///./Scripts/components/challenges/CheckSyncResultForgot.vue","webpack:///./Scripts/components/challenges/ChooseRegistrationType.vue","webpack:///./Scripts/enums/UserIdentifyingFieldType.ts","webpack:///./Scripts/components/challenges/ConvertedUser.vue","webpack:///./Scripts/components/challenges/CreateUser.vue","webpack:///./Scripts/components/challenges/CreateUsername.vue","webpack:///./Scripts/components/challenges/Empty.vue","webpack:///./Scripts/components/challenges/ForgotPassword.vue","webpack:///./Scripts/components/challenges/ForgotPasswordChooseScenario.vue","webpack:///./Scripts/components/challenges/ForgotPasswordConfirmIdentity.vue","webpack:///./Scripts/components/challenges/ForgotPasswordDisclosure.vue","webpack:///./Scripts/components/Disclosure.vue","webpack:///./Scripts/components/challenges/ForgotUsername.vue","webpack:///./Scripts/components/challenges/ForgotUsernameChooseScenario.vue","webpack:///./Scripts/components/challenges/ForgotUsernameConfirmIdentity.vue","webpack:///./Scripts/components/challenges/OneTimeCodeForgotContainer.vue","webpack:///./Scripts/components/challenges/QuestionsAndAnswers.vue","webpack:///./Scripts/components/challenges/RegistrationDisclosure.vue","webpack:///./Scripts/components/challenges/ResetPassword.vue","webpack:///./Scripts/components/challenges/StartForgotPassword.vue","webpack:///./Scripts/components/challenges/StartForgotUsername.vue","webpack:///./Scripts/components/challenges/StartRegistration.vue","webpack:///./Scripts/components/challenges/StepUp.vue","webpack:///./Scripts/components/stepup/Biometric.vue","webpack:///./Scripts/components/stepup/EmailCode.vue","webpack:///./Scripts/components/RememberDevice.vue","webpack:///./Scripts/components/stepup/PushNotification.vue","webpack:///./Scripts/components/stepup/QuestionsAndAnswers.vue","webpack:///./Scripts/components/stepup/SmsCode.vue","webpack:///./Scripts/components/stepup/TOTP.vue","webpack:///./Scripts/components/TokenStepup.vue","webpack:///./Scripts/components/stepup/Token.vue","webpack:///./Scripts/components/stepup/Unknown.vue","webpack:///./Scripts/components/stepup/VoiceCode.vue","webpack:///./Scripts/components/stepup/VoicePrompt.vue","webpack:///./Scripts/components/stepup/WebAuthn.vue","webpack:///./Scripts/components/challenges/StepUpForgot.vue","webpack:///./Scripts/components/challenges/TemporaryPassword.vue","webpack:///./Scripts/components/challenges/Tethered.vue","webpack:///./Scripts/components/Turnstile.vue","webpack:///./Scripts/components/challenges/UpdateBusiness.vue","webpack:///./Scripts/components/challenges/UsernameAndPassword.vue","webpack:///./Scripts/components/challenges/UsernameRecovered.vue","webpack:///./Scripts/components/challenges/OneTimeCodeDestination.vue?d24b","webpack:///./Scripts/components/challenges/OneTimeCodeDestination.vue?f77a","webpack:///Scripts/components/challenges/OneTimeCodeDestination.vue","webpack:///./Scripts/components/challenges/OneTimeCodeDestination.vue","webpack:///./Scripts/app.ts","webpack:///./Scripts/App.vue","webpack:///./Scripts/router.ts","webpack:///external \"VueRouter\"","webpack:///./Scripts/views/Authentication.vue","webpack:///./Scripts/enums/UserTelemetry.ts","webpack:///./Scripts/interfaces/IUserTelemetry.ts","webpack:///./Scripts/views/Registration.vue","webpack:///./Scripts/views/ForgotUsername.vue","webpack:///./Scripts/views/ForgotPassword.vue","webpack:///./Scripts/views/LoginGrouping.vue","webpack:///./Scripts/api/index.ts","webpack:///./Scripts/enums/Validations.ts","webpack:///./Scripts/enums/MachineSecretProviderType.ts","webpack:///./Scripts/lib/EntrustMachineSecretProvider.ts","webpack:///./Scripts/lib/DefaultMachineSecretProvider.ts","webpack:///./Scripts/components/challenges sync ^\\.\\/.*$","webpack:///../node_modules/lottie-web/build/player/lottie.js","webpack:///../node_modules/webpack/buildin/amd-options.js","webpack:///./Scripts/assets/confirmation-error-64.ts","webpack:///./Scripts/components/ProgressBar.vue","webpack:///./Scripts/enums/UserLookupType.ts","webpack:///./Scripts/components/confirmIdentity/UserIdentifyingFieldGroup.vue","webpack:///./Scripts/components/confirmIdentity/UserIdentifyingField.vue","webpack:///./Scripts/components/stepup sync ^\\.\\/.*$","webpack:///./Scripts/components/ForgotLinks.vue","webpack:///./tests/e2e/setup/index.ts","webpack:///./tests/e2e/setup/injectResources.ts","webpack:///./tests/e2e/setup/setupSiteText.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","options","_compiled","functional","_scopeId","context","this","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","concat","extendStatics","b","setPrototypeOf","__proto__","Array","__extends","__","constructor","__assign","assign","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","desc","getOwnPropertyDescriptor","Reflect","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","iterator","v","op","TypeError","pop","push","__createBinding","k","k2","undefined","__exportStar","__values","__read","ar","error","__spread","__spreadArrays","il","a","j","jl","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__importStar","mod","default","__importDefault","__classPrivateFieldGet","receiver","privateMap","has","__classPrivateFieldSet","set","Vue","vue_1","SiteText_1","siteText","extend","methods","siteTextKey","replacements","store","$store","siteTextMap","getters","debug","debugSiteText","getSiteTextItem","siteTextFilter","tslib_1","store_1","optionsFn","ChallengeStatus","ICustomTelemetryEvent","userAction","stepName","stepType","workflowName","getWorkflowName","getStepName","telemetry","ChallengeType_1","Workflow_1","UserTelemetry_1","IUserTelemetry_1","_userTelemetry","status","enabled","retries","delay","cachedEvents","requests","Map","checkTelemetry","async","_a","_b","window","Alkami","UserTelemetry","setTimeout","event","type","page","custom","identify","workflow","isDupe","logPageEventAsync","action","eventProperties","logCustomEventAsync","identifyAuthenticatedUserAsync","timeout","ms","now","Date","prev","size","forEach","userTelemetryObj","challenge","retail_registration","ChallengeType","ChooseRegistrationType","registration_type","RegistrationDisclosure","disclosure","ConfirmIdentity","confirm_your_identity","StepUp","verify_your_identity","OneTimeCode","verification_code","CreateUsername","create_username","CreateUser","create_password","UpdateBusiness","business_information","unknown","Workflow","Registration","factory","component","ElementIds","AuthenticationFactor","fromEntries_1","entries","keys","map","challengeType","filter","x","ScenarioType","AuthenticationFactor_1","stepupType","computed","currentChallengeType","watch","previousChallengeType","CustomEvent","bubbles","cancelable","detail","$el","dispatchEvent","userTelemetry_1","props","authenticatedModel","isSyncing","newAuthenticatedModel","username","nonce","$nextTick","formElement","document","querySelector","commit","submit","checkSyncResultChallenge","dispatch","components","configuration","loginCredentials","UserName","ChallengeTypeValue","initialChallengeType","Progression","StepUpForgot","OneTimeCodeForgotContainer","CheckSyncResult","CheckSyncResultForgot","newAuthenticationModel","state","currentChallenge","UsernameAndPassword","StartForgotUsername","preventDefault","nextChallenge","nextRequestedChallenge","index","destinationIndex","StepUpCategories","category","$id","toString","StepUpModel","Destinations","destination","Slide_vue_1","SyncFailure_vue_1","baseUrl","IsotopeSlide","SyncFailure","$slots","header","footer","siteText_1","sitetext_1","SlideHeader_vue_1","lottie_web_1","confirmation_error_64_1","buttonText","String","url","mixins","filters","sitetext","errors","errorCode","CustomSubCode","startsWith","getSiteText","SlideHeader","loadAnimation","container","renderer","animationData","ConfirmationError64","loop","autoplay","subtitle","$refs","heading","focus","ContainerSlide_vue_1","SlideHeaderWithNav_vue_1","isRegistering","isForgotPasswordWorkflow","ContainerSlide","SlideHeaderWithNav","isMobile","ChallengeStatus_1","ProgressBar_vue_1","vuex_1","data","contentToggle","displayErrorMessage","suppressedChallengeStatus","InvalidOneTimeCode","PdfCodeInvalid","SyncError","OTPExpired","mapGetters","mapState","errorMessage","hasSessionExpiredError","includes","challengeStatus","hasInvalidChallengeStatus","SessionInfo","Id","hasServerError","setDisplayError","isForgotUsernameWorkflow","toggleOption","option","slide","scrollIntoView","behavior","progression","cancel_clicked","toggleSheet","cancellation","quit_confirmation","yes_clicked","isCypress","location","href","sheet_closed","_c","setAttribute","ProgressBar","currentWorkflowMaxSteps","currentWorkflowStep","currentCompletion","ChooseScenario_vue_1","ChooseScenario","ScenarioType_1","UserLookupType_1","IsotopeHeader_vue_1","selectedScenario","cardName","required","validator","prop","isSubmittingChallenge","Scenarios","scenarios","ScenarioTypeValue","selectedItem","lookupType","find","UserLookupTypeValue","UserLookupType","None","Business","business_account_clicked","individual_account_clicked","submitForm","submitting","chosenScenario","validationResults","ErrorCode","Field","ItemIndex","Message","join","Origin","Severity","SubCode","ChosenScenarioId","Unknown","IsotopeHeader","classes","UserIdentifyingFieldType_1","ElementIds_1","UserIdentifyingFieldGroup_vue_1","showNotification","fieldValidationStatus","hasInvalidField","confirmIdentityChallenge","properties","Scenario","FieldGroups","reduce","acc","val","Fields","Value","trim","continue_clicked","scenarioType","UserIdentifyingFieldType","fieldType","isValid","hasInvalidStatus","values","elementIds","notificationMessage","UserIdentifyingFieldGroup","UserIdentifyingField_vue_1","Number","fields","scenarioName","bankName","$emit","UserIdentifyingField","MothersMaidenName","isRequired","Boolean","isSensitive","regex","states","inputVal","IsBusiness","sName","scenarioTypeSpecificLabel","scenarioTypeSpecificHelperText","isOfFieldType","fieldTypeName","validationRegex","test","RegExp","ex","console","TaxId","EIN","HomePhone","WorkPhone","CellPhone","Email","State","toggleMode","toggleText","currentScrollPosition","screenY","pageYOffset","textFieldPosition","getBoundingClientRect","top","scrollTo","innerHeight","password","confirmPassword","invalidPassword","passwordMismatch","PasswordRegex","PasswordStrengthEnabled","PasswordStrengthMinLength","PasswordMediumStrengthRegex","PasswordStrongStrengthRegex","isSubmittingAuthenticatedModel","passwordRegex","inputUserName","passwordStrengthEnabled","passwordStrengthMinLength","passwordStrongStrengthRegex","passwordMediumStrengthRegex","telemetryPromise","create_password_clicked","Password","createPasswordPromise","all","inputValue","usernameMinLength","usernameMaxLength","isValidUsername","SuggestedUsernames","suggestedUsernames","HasExceededTries","hasExceededTries","UsernameRegex","UsernameMinLength","UsernameMaxLength","usernameRegex","ev","input","validateUsername","triesExceeded","Username","create_username_clicked","IsAvailable","ConfirmIdentity_vue_1","Disclosure_vue_1","disclosureAccepted","DisclosureContent","DisclosureId","disclosureContent","Success","DisclosureID","disclosureID","Accepted","Disclosure","content","checkboxLabel","printLinkText","DisclosureName","nearestQuarter","agree_clicked","print_pdf_clicked","scrollPercent","scrollTop","scrollHeight","clientHeight","Math","round","disclosure_scroll","oneTimeCode","resendingCode","navigatingBack","canResendCode","clearError","$data","codeSentText","AuthenticationFactorValue","EmailCode","Destination","MaskedAddress","toLowerCase","SmsCode","VoiceCode","lastDigits","slice","isManualMfa","MinutesToLive","ValidationKey","RememberDevice","rememberDevice","DeviceName","deviceName","hasError","oneTimeCodeUpdated","OneTimeCodeDestination","authenticationFactor","Token","replace","TOTP","valid","tokenLength","code","resend_code_clicked","change_method_clicked","OneTimeCodeForgot_vue_1","isSubmitting","userPdfCode","pdfEnabled","siteTextName","pdfDisclosureLocation","some","er","ShouldCheckPdf","UserSubmittedPdfCode","open_pdf_clicked","open","pdfUrl","stepup_1","selectedStepUpCategoryId","selectedStepUpCategory","id","stepUpCategories","getMetaData","icon","selectedCategory","manualMfaEnabled","NextChallenge","CodeStepup_vue_1","stepUpCategory","CodeStepup","RememberDevice_vue_1","selectedDestinationId","selectedDestination","destinations","newDestinationId","DeviceNameAlreadyExists","canRememberDevice","newValue","isStepUpMandatory","isSelectedCategory","internalSelectedDestination","getText","items","dest","destinationId","resource","TokenStepup_vue_1","TokenStepup","tokenCode","isNavigatingBack","currentAuthenticationFactorValue","helperText","isTOTP","ProviderId","tokenCodeUpdated","StepUpOption_vue_1","tokenTOTP","show","stepUpChallenge","authModel","isRedirecting","OTPVerify","StepUpContinue","verificationType","verification_type_chosen","nextStepNum","previousStepNum","StepUpOption","circle_indeterminate_40_json_1","Turnstile_vue_1","turnstileValidationStatus","turnstileToken","turnstileError","NotApplicable","getAnimationJSON","turnstileEnabled","turnstileSitekey","Failed","currentChallengeStatus","InProgress","Succeeded","token","err","decodeURIComponent","BotDetected","Turnstile","filterAction","sitekey","language","src","widgetId","filteredErrors","disable","renderOptions","theme","callback","response","expired","retry","turnstile","turnstileContainer","reset","remove","filteredError","script","createElement","addEventListener","head","appendChild","formatPhoneNumber","phone","phoneNumber","exec","businessName","BusinessName","businessPhone","BusinessPhoneNumber","businessPhoneType","BusinessPhoneType","businessAddressLine1","BusinessAddressLine1","businessAddressLine2","BusinessAddressLine2","businessCity","BusinessCity","businessState","BusinessState","businessZip","BusinessPostalCode","businessEin","BusinessEin","hasPhoneError","hasZipError","hasEinError","phoneTypes","updateBusinessChallenge","formattedPhone","zipCodeRegex","_d","_e","_f","_g","_h","ForgotLinks_vue_1","rememberUsername","mobileInfoPanel","showSheet","hasResetError","FUFPToggle","logoPath","widgetConfig","background","displayForgotPasswordLink","displayAccountOpeningLink","displayForgotUsernameLink","ellipsisConfig","InvalidCredentials","mobileRegistrationEnabled","disableDesktopRegistration","isNativeApplication","isOauthRedirect","layers","enableRememberMe","remember_me_checked","entry","login","showSheetNewValue","element","bottomSheetRef","classList","changingUsername","skipReset","challengeHistory","Tethered","LockedOut","selectedMenuItem","item","iconName","getReturnUrl","URLSearchParams","search","returnUrl","internalUrlParams","redirect_uri","from","endsWith","alkamiThemesRef","Themes","baseAssetUrl","logoFileName","Config","brandLogos","wide","fileName","widgetConfigFromServer","getWidgetConfig","log","loginPage","style","setProperty","color","bgColor","image","attachment","baseWidgetUrl","positionX","positionY","repeat","opacity","overflow_menu_clicked","register_account_clicked","registrationRedirectUrl","ForgotLinks","rememberedUsername","mobileInfoPanelElement","getElementById","innerHTML","mobileInfoEllipsisConfig","loadedEvent","setupThemeBuilderItems","showForgotUsernameLink","showForgotPasswordLink","linkText","useIrisSheetForFUFP","forgotUsernameUrl","forgotPasswordUrl","uCount","pCount","match","count","irisSheetCloseButton","getAttribute","forgot_username_clicked","forgot_password_clicked","RecoveredUsername","usernameRecovered","$createElement","_self","staticClass","class","$route","attrs","_vm","tag","redirectUrl","directives","rawName","expression","domProps","on","$event","composing","$set","slot","_l","group","Name","validationCheck","ConfirmIdentityContinue","buttonDisabled","_v","_s","instructions","linkForCreateNewPassword","passwordStrengths","checkPasswordStrength","checkPasswordValid","checkPasswordMatches","model","$$v","confirmPasswordErrorMessage","isLoading","getSubheading","validateBlur","usernameSuggestionHeading","suggestion","chooseUsername","ref","toggleAccepted","DisclosureContinue","canContinue","UsernameChooseScenarioCard","errorText","codeEntryHelperText","onFocus","resendButtonText","resendCode","navigateBack","subHeadingText","OTPCodeInput","actionText","inputHelperText","OTPResendCode","OTPChangeMethod","changeMethod","changeStepupMethod","otpCodeEntered","htmlBeforeDisclosure","PDFOpen","pdfCodeErrorMessages","handleTextfieldFocus","submitManualMfa","authenticationFactorMetaData","categoryChanged","headerText","stepupCategorySelected","stepupDestinationSelected","buttonID","turnstileSiteKey","setTurnstileToken","turnstileTokenExpired","setTurnstileError","disableTurnstile","displayError","getCustomErrorMessage","phoneHasErrorCheck","getPhoneErrorMessage","validatePhone","getPhoneTypeSiteText","zipHasErrorCheck","getZipErrorMessage","validateZip","einHasErrorCheck","getEinErrorMessage","validateEin","mobileInfoPanelClass","contentToggled","scopedSlots","_u","fn","proxy","desktopLoginLayers","kind","variation","ellipsisItemSelected","ellipsisToggled","wrongCredentials","resetValidationError","rememberMeDesktopText","toggleRememberMe","serverErrorMessage","displayServerError","AuthenticationSubmit","submitDisabled","shouldHideRegistration","showAccountOpeningLink","goToRegistration","openAccountRedirectUrl","recoveredUsername","_t","mainIconName","closeButtonText","clickCloseButton","closeNotification","sheetClosed","cancelConfirmText","clickConfirmClose","clickCancelClose","scenario","selectScenario","_k","keyCode","cssClasses","textForGroup","field","IdentifyingFieldType","IsRequired","IsSensitive","MatchRegEx","scrollDisclosure","DisclosureCheckbox","disclosurePrintLink","printClicked","stepUpType","StepUpCategory","buttonChanged","StepUpDestination","getStrings","getItems","FUFPText","handleClick","click","mobileForgotUsernameOrPassword","progressBarHeading","width","percentComplete","getNameForField","optionalText","validationRules","requiredText","toggleHiddenText","sendCode","ariaDescriptionId","changeDestinationSelection","verifyCode","elementId","toggleRememberStatus","api_1","use","Store","Empty","machineSecretProvider","remainOnStepUpScreenOnFailure","hasRememberedUsername","showRememberDevice","isResendingOTP","currentMachineSecretProvider","JSON","parse","stringify","SessionExpired","StartForgotPassword","StartRegistration","ForgotPassword","ForgotUsername","Authentication","enableAppStoreNavigationPrompt","toLocaleLowerCase","mutations","provider","bool","clearLoginCredentials","setRememberDevice","setDeviceName","setRemainOnStepUpScreenOnFailure","setRememberUsername","updateEllipsisConfig","setRememberedUsername","setShowRememberDevice","setIsStepUpMandatory","setCurrentWorkflowMaxSteps","setCurrentWorkflowStep","setIsResendingOTP","resendingOTP","setIsSubmittingAuthenticatedModel","setTurnstileEnableState","setUserName","actions","initializeIsotope","payload","submitChallenge","challengeProcessor","ChallengeProcessor","json","ChallengeStatusValue","ValidationResults","postSubmitChallenge","goToPreviousChallenge","previousChallenge","Nonce","previousStep","resetErrorStatus","getRememberedUsername","GetRememberedUsername","setChallengeStatus","remember","Helpers","f_rememberMeSwitch","postMessage","rememberMe","RemoveRememberedUsername","Vuex","MachineSecretProviderType_1","EntrustMachineSecretProvider_1","DefaultMachineSecretProvider_1","DefaultMachineSecretProvider","machineSecretProviderType","MachineSecretProviderType","EntrustRememberedDevicesProvider","EntrustMachineSecretProvider","iterable","obj","init","App_vue_1","router_1","MachineSecretManager_1","challenges_1","setup_1","vm","config","mockPromise","$destroy","providedConfig","clientKey","Error","sessionId","componentOverrides","challengeTypes","configuredComponentOverrides","findIndex","splice","globalComponents","router","createProvider","sessionStorage","getItem","removeItem","ALBUS_LOCAL_DEV","$mount","global","Isotope","fetch","vue_router_1","Authentication_vue_1","Registration_vue_1","ForgotUsername_vue_1","ForgotPassword_vue_1","LoginGrouping_vue_1","base","routes","path","redirect","VueRouter","getChallenges","Validations_1","ok","text","rootUrl","headers","bankUri","method","request","preSubmitChallenge","lastSentResponse","initialize","sessionInfo","AdditionalParameters","rememberUserName","persistentSessionIdentifier","Global_PersistentSessionIdentifier","isTetheredLogin","MachineInfo","read","submittedChallenge","UserAgentString","navigator","userAgent","Request","BankIdentifier","BankUri","SubmittedChallenge","RedirectUrl","getChallengeUrl","credentials","ForgotPasswordDisclosure","ForgotPasswordChooseScenario","ForgotPasswordConfirmIdentity","ForgotUsernameChooseScenario","ForgotUsernameConfirmIdentity","setItem","reload","NextRequestedChallenge","updateMachineInfo","getNumberOfSteps","updateCurrentStep","handleLockout","Done","handleDoneChallenge","handleStepUpChallenge","handleCheckSyncResultChallenge","repeatStep","HasError","handleValidationErrors","UpdateMachineInfo","write","_j","numSteps","NumberOfStepsRequired","maxSteps","parseInt","isNaN","currentStep","doneChallenge","Grant","stepupChallenge","IsRememberDeviceOptionSupported","IsStepUpMandatory","Fatal","machineSecret","setDebugOn","setStorageTypeExclusions","setMachineNonceName","getMachineNonceName","setSequenceNonceName","getSequenceNonceName","MachineNonce","fetchMachineNonce","SequenceNonce","fetchSequenceNonce","DeviceFingerprint","cleanUpFingerprint","getDeviceFingerprint","storeMachineNonce","storeSequenceNonce","hostname","getHash","getRealm","prefix","keyArray","CryptoJS","enc","Utf8","inputArray","hash","HmacSHA1","Hex","toUpperCase","fingerPrintStr","fingerPrintObj","webGL","attributes","intIndexes","director","hasPlugin","mimeTypes","getMimeTypes","mimeTypesCount","plugins","getPlugins","pluginsCount","quickTime","realPlayer","windowsMediaPlayer","accrobatReader","svgViewer","clearType","screenColorDepth","screen","colorDepth","screenHeight","height","screenPixelDepth","pixelDepth","screenWidth","screenAvailHeigth","availHeight","screenAvailWidth","availWidth","appName","appVersion","appMinorVersion","cookieEnabled","cpuClass","systemLanguage","userLanguage","javaEnabled","platform","appCodeName","oscpu","vendor","vendorSub","product","productSub","taintEnabled","mimeType","plugin","pluginName","PluginDetect","getVersion","webpackContext","req","webpackContextResolve","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","sourcePrototype","len","attr","getDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","pause","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","idPrefix","isSafari","_shouldRoundValues","bmPow","pow","bmSqrt","sqrt","bmFloor","floor","bmMax","max","bmMin","min","BMMath","ProjectInterface$1","propertyNames","random","abs","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","styleDiv","position","left","display","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","offset","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","_workerSelf","setupWorker","Worker","Blob","blob","URL","createObjectURL","createWorker","completeLayers","comps","layerData","jLen","kLen","completed","tt","td","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","comp","findComp","__used","ks","it","checkVersion","minimum","animVersionString","animVersion","split","minimumVersion","checkText","iterateLayers","textLayer","documentData","assets","checkChars","chars","charData","ip","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","responseText","load","fullPath","errorCallback","XMLHttpRequest","onreadystatechange","readyState","send","completeData","animation","process","onComplete","onError","createProcess","processId","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","ctx","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","u","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","destroy","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","append","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","args","_cbs","callbacks","removeEventListener","markerParser","parsePayloadLines","line","lines","keysCount","_markers","markers","_marker","markerData","time","tm","duration","dr","cm","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","animationID","timeCompleted","segmentPos","isSubframeEnabled","segments","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","setParams","params","wrapper","animType","RendererClass","rendererSettings","globalData","defs","setProjectInterface","autoloadSegments","initialSegment","setupAnimation","lastIndexOf","substr","trigger","setData","wrapperAttributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","updateContainerSize","setSubframe","renderFrame","triggerRenderFrameError","togglePause","stop","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","end","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","getPath","getAssetData","hide","getDuration","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","str","beziers","bezEasing","BezierEasing","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","point","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","storedData","buildBezierData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","caching","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","to","ti","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","out","quat","qx","qy","qz","qw","atan2","attitude","asin","bank","quaternionToEuler","omega","cosom","sinom","scale0","scale1","ax","ay","az","aw","bx","by","bz","bw","acos","sin","slerp","createQuaternion","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","getProp","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","pos","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","translate","tx","tz","transform","a2","b2","d2","e2","f2","g2","h2","i2","j2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","queryString","setLocation","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","pair","useWebWorker","setIDPrefix","__getFactory","version","scripts","myScript","bodymovin","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","getFontProperties","fontData","styles","fStyle","fWeight","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","itemsTransform","cont","hasReloaded","copies","ceil","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","FontManager","emptyChar","w","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","family","parentNode","fontFamily","node","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","createHelper","def","tHelper","fontProps","fFamily","textContent","fClass","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","_char3","found","ch","list","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","rel","sc","helper","cache","getCharData","_char","charCodeAt","warn","getFontByName","fName","measureText","_char2","fontName","doubleSize","getComputedTextLength","singleSize","loadedCount","removeChild","RenderableElement","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","MaskManagerInterface","MaskInterface","mask","_mask","_data","maskManager","_masksInterfaces","viewData","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","getVelocityAtTime","numKeys","valueProp","valueAtTime","speedAtTime","getSpeedAtTime","velocityAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","rotation","xRotation","yRotation","xPosition","yPosition","zPosition","anchorPoint","_px","_py","_pz","_transformFactory","LayerExpressionInterface","getMatrix","toWorldMat","_elem","toWorldVec","applyPoint","toWorld","fromWorldVec","invertPoint","fromWorld","hierarchy","fromComp","sampleImage","transformInterface","_thisLayerFunction","shapeInterface","effect","textInterface","toComp","anchorPointDescriptor","defineProperties","hasParent","layerInterface","anchor_point","active","startTime","source","inPoint","outPoint","_name","registerMaskInterface","registerEffectsInterface","effects","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","EffectsExpressionInterface","createGroupInterface","groupInterface","ef","mn","effectElements","_propertyGroup","createValueInterface","numProperties","np","en","expressionProperty","setGroupProperty","createEffectsInterface","effectsManager","effectsData","CompExpressionInterface","layer","pixelAspect","compSize","frameDuration","displayStartTime","numLayers","ShapePathInterface","view","propertyIndex","ShapeExpressionInterface","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","defaultInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dataProps","strokeWidth","dash","start","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","TextExpressionInterface","_sourceText","sourceText","textProperty","stringValue","currentData","_prevValue","getBlendMode","blendModeEnums","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effectItem","GroupEffect","BaseElement","FrameElement","_typeof$2","eff","checkMasks","effectsInterface","shapesData","itemsData","setBlendMode","blendModeValue","bm","baseElement","layerElement","initBaseData","layerId","getType","prepareProperties","isVisible","_isParent","FootageInterface","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","getFootageData","searchProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","FootageElement","imageLoader","AudioElement","_isPlaying","_canPlay","_currentTime","_placeholder","BaseRenderer","TransformElement","MaskElement","maskElement","solidPath","rect","expansor","feMorph","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","getBaseElement","timeRemapped","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","setAsParent","setHierarchy","addPendingElement","pendingElements","setupGlobalData","fontsContainer","animationItem","initTransform","_matMdf","_opMdf","ao","renderTransform","finalMat","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","createFilter","filId","skipCoordinates","fil","createAlphaToLuminanceFilter","feColorMatrix","featureSupport","SVGTintFilter","filterManager","matrixFilter","feMergeNode","feMerge","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","filterSize","feGaussianBlur","feOffset","feFlood","feComposite","originalNodeAdded","colorBlack","colorWhite","groupPath","elemChildren","children","childNodes","masker","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","feFunc","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","matteElement","transformedElement","SVGGaussianBlurEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","insertBefore","setElementAsMask","symbol","hd","setMatte","sigma","dimensions","sigmaX","sigmaY","edgeMode","registeredEffects","SVGEffects","Effect","countsAsEffect","registerEffect","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","_sizeChanged","gg","layerElementParent","maskGroup","maskGrouper","feCTr","alphaRect","ln","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","lj","ml","of","ost","buildShapeString","_o","_i","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","dist","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charCode","charactersArray","shouldCombine","charAt","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","updateDocumentData","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","rot","atan","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","className","focusable","destroyed","CVContextData","saved","cArrPos","cTr","cO","savedOp","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVEffects","CVMaskElement","hasMasks","CVBaseElement","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","CVShapeElement","CVTextElement","stroke","fill","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","clearCanvas","dpr","devicePixelRatio","currentGlobalAlpha","contextData","transformMat","CVCompElement","CanvasRenderer","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","fromCharCode","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","appendElementInPos","nextElement","setElements","getElements","destroyElements","duplicate","newLength","currentSavedOp","sequence","processSequence","processSequences","getNewKey","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","createElements","blendMode","globalCompositeOperation","hideElement","showElement","forceRealStack","ctxTransform","ctxOpacity","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","lineJoin","miterLimit","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","drawImage","cProps","trProps","globalAlpha","actionFlag","popped","containerStyle","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","clearRect","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","right","yMax","bottom","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","currentBoxContains","box","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","lineHeight","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","svg","cWidth","cHeight","floatingContainer","_createBaseContainerElements","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","_typeof$1","seedRandom","startdenom","significance","ARC4","keylen","me","S","copy","mixkey","seed","smear","stringseed","tostring","shortseed","flatten","depth","typ","entropy","nodecrypto","Uint8Array","crypto","msCrypto","getRandomValues","browser","autoseed","arc4","prng","int32","quick","pass","is_math_call","initialize$2","propTypes","SHAPE","_typeof","ExpressionManager","frames","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","loopIn","loop_in","loopOut","loop_out","smooth","fromCompToSurface","thisLayer","thisComp","scoped_bm_rt","expression_function","eval","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","substring","posterizeTime","framesPerSecond","executeExpression","_value","frameExpressionId","__preventDeadCodeRemoval","expressionHelpers","searchExpressions","speed","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","current","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","__webpack_amd_options__","injectResources_1","setupSiteText_1","cssToInject","jsToInject","Cypress","setupSiteText","injectResources","injectLottie","onResourceLoad","promises","_promise","scriptElement","createScriptElement","loadPromise","linkElement","createLinkElement","mockSiteTextMap","Localization","SiteText"],"mappings":"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O,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAAO,KAAMpG,MAAO,MACtB,CAAEoG,MAA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A2C,iBAAI,IAAM,mBAC9EA,EAAyBA,EAA6C,mBAAI,IAAM,qBAChFA,EAAyBA,EAA6C,mBAAI,IAAM,qBA/BpF,CAgC8Brd,EAAQqd,2BAA6Brd,EAAQqd,yBAA2B,M,6BCpCtG,mIAOIlN,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,0IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,0IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,0IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,0IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,0IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,0IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,mIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,2IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,2IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCCnBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,oIAOIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,KACA,MAIa,UAAAA,E,sCClBf,2IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,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","file":"isotope.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 275);\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","module.exports = Vue;","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst SiteText_1 = require(\"../lib/SiteText\");\r\nconst siteText = vue_1.default.extend({\r\n methods: {\r\n getSiteText(siteTextKey, ...replacements) {\r\n const store = this.$store;\r\n const siteTextMap = store.getters.siteTextMap || {};\r\n const debug = store.getters.debugSiteText || false;\r\n return (0, SiteText_1.getSiteTextItem)(siteTextKey, {\r\n debug,\r\n replacements,\r\n siteTextMap,\r\n });\r\n },\r\n },\r\n});\r\nexports.default = siteText;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.siteTextFilter = void 0;\r\nconst tslib_1 = require(\"tslib\");\r\nconst SiteText_1 = require(\"../lib/SiteText\");\r\nconst store_1 = tslib_1.__importDefault(require(\"../store\"));\r\nfunction getSiteTextFilter(optionsFn) {\r\n return (key, replacements, debug) => {\r\n const options = optionsFn();\r\n replacements = replacements || options.replacements;\r\n if (debug === undefined) {\r\n debug = options.debug || false;\r\n }\r\n const siteTextMap = options.siteTextMap || {};\r\n return (0, SiteText_1.getSiteTextItem)(key, { debug, replacements, siteTextMap });\r\n };\r\n}\r\nexports.siteTextFilter = getSiteTextFilter(() => {\r\n return {\r\n siteTextMap: store_1.default.getters.siteTextMap,\r\n debug: store_1.default.getters.debugSiteText,\r\n };\r\n});\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChallengeStatus = void 0;\r\nvar ChallengeStatus;\r\n(function (ChallengeStatus) {\r\n ChallengeStatus[\"DeviceNameAlreadyExists\"] = \"DeviceNameAlreadyExists\";\r\n ChallengeStatus[\"Disabled\"] = \"Disabled\";\r\n ChallengeStatus[\"InvalidCaptchaResponse\"] = \"InvalidCaptchaResponse\";\r\n ChallengeStatus[\"InvalidCredentials\"] = \"InvalidCredentials\";\r\n ChallengeStatus[\"InvalidOneTimeCode\"] = \"InvalidOneTimeCode\";\r\n ChallengeStatus[\"LockedOut\"] = \"LockedOut\";\r\n ChallengeStatus[\"SyncError\"] = \"SyncError\";\r\n ChallengeStatus[\"Success\"] = \"Success\";\r\n ChallengeStatus[\"Unknown\"] = \"Unknown\";\r\n ChallengeStatus[\"SessionExpired\"] = \"SessionExpired\";\r\n ChallengeStatus[\"LockedOutinExternalIdentityProvider\"] = \"LockedOutinExternalIdentityProvider\";\r\n ChallengeStatus[\"UserNotFound\"] = \"UserNotFound\";\r\n ChallengeStatus[\"MaximumAttemptsReached\"] = \"MaximumAttemptsReached\";\r\n ChallengeStatus[\"PdfCodeInvalid\"] = \"PdfCodeInvalid\";\r\n ChallengeStatus[\"OTPExpired\"] = \"OTPExpired\";\r\n ChallengeStatus[\"BotDetected\"] = \"BotDetected\";\r\n})(ChallengeStatus = exports.ChallengeStatus || (exports.ChallengeStatus = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ICustomTelemetryEvent = exports.userAction = exports.stepName = exports.stepType = exports.workflowName = exports.getWorkflowName = exports.getStepName = exports.telemetry = void 0;\r\nconst ChallengeType_1 = require(\"../enums/ChallengeType\");\r\nconst Workflow_1 = require(\"../enums/Workflow\");\r\nconst UserTelemetry_1 = require(\"../enums/UserTelemetry\");\r\nObject.defineProperty(exports, \"workflowName\", { enumerable: true, get: function () { return UserTelemetry_1.workflowName; } });\r\nObject.defineProperty(exports, \"userAction\", { enumerable: true, get: function () { return UserTelemetry_1.userAction; } });\r\nObject.defineProperty(exports, \"stepType\", { enumerable: true, get: function () { return UserTelemetry_1.stepType; } });\r\nObject.defineProperty(exports, \"stepName\", { enumerable: true, get: function () { return UserTelemetry_1.stepName; } });\r\nconst IUserTelemetry_1 = require(\"../interfaces/IUserTelemetry\");\r\nObject.defineProperty(exports, \"ICustomTelemetryEvent\", { enumerable: true, get: function () { return IUserTelemetry_1.ICustomTelemetryEvent; } });\r\nclass _userTelemetry {\r\n constructor() {\r\n this.status = {\r\n enabled: false,\r\n retries: 10,\r\n delay: 100,\r\n cachedEvents: new Array(),\r\n };\r\n this.requests = new Map();\r\n this.checkTelemetry = async () => {\r\n var _a, _b;\r\n if (((_a = window.Alkami) === null || _a === void 0 ? void 0 : _a.UserTelemetry) !== null && ((_b = window.Alkami) === null || _b === void 0 ? void 0 : _b.UserTelemetry) !== undefined) {\r\n this.status.enabled = true;\r\n // send cached events\r\n if (this.status.cachedEvents.length > 0) {\r\n for (const event of this.status.cachedEvents) {\r\n switch (event.type) {\r\n case 'page':\r\n await this.page(event.event);\r\n break;\r\n case 'custom':\r\n await this.custom(event.event);\r\n break;\r\n case 'identify':\r\n await this.identify();\r\n break;\r\n }\r\n }\r\n this.status.cachedEvents = [];\r\n }\r\n return;\r\n }\r\n // Retries exhausted - telemetry not enabled\r\n if (--this.status.retries <= 0) {\r\n this.status.cachedEvents = [];\r\n return;\r\n }\r\n setTimeout(() => { void this.checkTelemetry(); }, this.status.delay);\r\n };\r\n this.page = async (workflow) => {\r\n var _a;\r\n if (this.enabled({ type: 'page', event: workflow }) === false || this.isDupe(`${workflow}|page`))\r\n return;\r\n await ((_a = window.Alkami.UserTelemetry) === null || _a === void 0 ? void 0 : _a.logPageEventAsync(workflow));\r\n };\r\n this.custom = async (event) => {\r\n var _a, _b;\r\n if (this.enabled({ type: 'custom', event }) === false || this.isDupe(`${event.workflowName}|custom|${event.action}`))\r\n return;\r\n event.eventProperties = (_a = event.eventProperties) !== null && _a !== void 0 ? _a : {};\r\n event.eventProperties.stepType = event.stepType;\r\n event.eventProperties.stepName = event.stepName;\r\n await ((_b = window.Alkami.UserTelemetry) === null || _b === void 0 ? void 0 : _b.logCustomEventAsync(event.workflowName, event.action, event.eventProperties));\r\n };\r\n this.identify = async () => {\r\n var _a;\r\n if (this.enabled({ type: 'identify' }) === false || this.isDupe('identify'))\r\n return;\r\n await ((_a = window.Alkami.UserTelemetry) === null || _a === void 0 ? void 0 : _a.identifyAuthenticatedUserAsync());\r\n };\r\n this.timeout = async (ms) => {\r\n return new Promise(resolve => {\r\n setTimeout(resolve, ms);\r\n });\r\n };\r\n this.isDupe = (event) => {\r\n const now = Date.now();\r\n const prev = this.requests.get(event);\r\n // reject duplicate events that are less than 50ms apart\r\n if (prev != null && now - prev < 50) {\r\n return true;\r\n }\r\n this.requests.set(event, now);\r\n // keep the map from getting too big\r\n if (this.requests.size > 50) {\r\n const t = new Map();\r\n this.requests.forEach((value, key) => {\r\n if (now - value < 50)\r\n t.set(key, value);\r\n });\r\n this.requests = t;\r\n }\r\n return false;\r\n };\r\n void this.checkTelemetry();\r\n }\r\n static get factory() {\r\n if (!(userTelemetryObj instanceof _userTelemetry))\r\n userTelemetryObj = new _userTelemetry();\r\n return userTelemetryObj;\r\n }\r\n get context() {\r\n var _a;\r\n return (_a = window.Alkami.UserTelemetry) === null || _a === void 0 ? void 0 : _a.context;\r\n }\r\n enabled(event) {\r\n if (this.status.enabled === true)\r\n return true;\r\n if (this.status.retries > 0)\r\n this.status.cachedEvents.push(event);\r\n return false;\r\n }\r\n}\r\n_userTelemetry.getStepName = (workflow, challenge) => {\r\n // for now only the retail_registration workflow exists\r\n if (workflow === UserTelemetry_1.workflowName.retail_registration) {\r\n switch (challenge) {\r\n case ChallengeType_1.ChallengeType.ChooseRegistrationType:\r\n return UserTelemetry_1.stepName.registration_type;\r\n case ChallengeType_1.ChallengeType.RegistrationDisclosure:\r\n return UserTelemetry_1.stepName.disclosure;\r\n case ChallengeType_1.ChallengeType.ConfirmIdentity:\r\n return UserTelemetry_1.stepName.confirm_your_identity;\r\n case ChallengeType_1.ChallengeType.StepUp:\r\n return UserTelemetry_1.stepName.verify_your_identity;\r\n case ChallengeType_1.ChallengeType.OneTimeCode:\r\n return UserTelemetry_1.stepName.verification_code;\r\n case ChallengeType_1.ChallengeType.CreateUsername:\r\n return UserTelemetry_1.stepName.create_username;\r\n case ChallengeType_1.ChallengeType.CreateUser:\r\n return UserTelemetry_1.stepName.create_password;\r\n case ChallengeType_1.ChallengeType.UpdateBusiness:\r\n return UserTelemetry_1.stepName.business_information;\r\n }\r\n }\r\n return UserTelemetry_1.stepName.unknown;\r\n};\r\n_userTelemetry.getWorkflowName = (workflow) => {\r\n // currently only the registration workflow exists\r\n switch (workflow) {\r\n case Workflow_1.Workflow.Registration:\r\n return UserTelemetry_1.workflowName.retail_registration;\r\n }\r\n return UserTelemetry_1.workflowName.unknown;\r\n};\r\nlet userTelemetryObj;\r\nconst telemetry = _userTelemetry.factory;\r\nexports.telemetry = telemetry;\r\nconst getStepName = _userTelemetry.getStepName;\r\nexports.getStepName = getStepName;\r\nconst getWorkflowName = _userTelemetry.getWorkflowName;\r\nexports.getWorkflowName = getWorkflowName;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChallengeType = void 0;\r\nvar ChallengeType;\r\n(function (ChallengeType) {\r\n ChallengeType[\"ChangePassword\"] = \"ChangePassword\";\r\n ChallengeType[\"CheckSyncResult\"] = \"CheckSyncResult\";\r\n ChallengeType[\"ForgotUsernameChooseScenario\"] = \"ForgotUsernameChooseScenario\";\r\n ChallengeType[\"ForgotPasswordChooseScenario\"] = \"ForgotPasswordChooseScenario\";\r\n ChallengeType[\"ChooseRegistrationType\"] = \"ChooseRegistrationType\";\r\n ChallengeType[\"ForgotUsernameConfirmIdentity\"] = \"ForgotUsernameConfirmIdentity\";\r\n ChallengeType[\"CreateUsername\"] = \"CreateUsername\";\r\n ChallengeType[\"Done\"] = \"Done\";\r\n ChallengeType[\"Empty\"] = \"Empty\";\r\n ChallengeType[\"OneTimeCode\"] = \"OneTimeCode\";\r\n ChallengeType[\"OneTimeCodeDestination\"] = \"OneTimeCodeDestination\";\r\n ChallengeType[\"QuestionsAndAnswers\"] = \"QuestionsAndAnswers\";\r\n ChallengeType[\"RegistrationComplete\"] = \"RegistrationComplete\";\r\n ChallengeType[\"StartForgotPassword\"] = \"StartForgotPassword\";\r\n ChallengeType[\"StartForgotUsername\"] = \"StartForgotUsername\";\r\n ChallengeType[\"StartRegistration\"] = \"StartRegistration\";\r\n ChallengeType[\"StartSync\"] = \"StartSync\";\r\n ChallengeType[\"StepUp\"] = \"StepUp\";\r\n ChallengeType[\"TemporaryPassword\"] = \"TemporaryPassword\";\r\n ChallengeType[\"UsernameAndPassword\"] = \"UsernameAndPassword\";\r\n ChallengeType[\"UsernameRecovered\"] = \"UsernameRecovered\";\r\n ChallengeType[\"Tethered\"] = \"Tethered\";\r\n ChallengeType[\"ConvertedUser\"] = \"ConvertedUser\";\r\n ChallengeType[\"ForgotPasswordDisclosure\"] = \"ForgotPasswordDisclosure\";\r\n ChallengeType[\"ForgotPasswordConfirmIdentity\"] = \"ForgotPasswordConfirmIdentity\";\r\n ChallengeType[\"StepUpForgot\"] = \"StepUpForgot\";\r\n ChallengeType[\"OneTimeCodeForgotContainer\"] = \"OneTimeCodeForgotContainer\";\r\n ChallengeType[\"CheckSyncResultForgot\"] = \"CheckSyncResultForgot\";\r\n ChallengeType[\"RegistrationDisclosure\"] = \"RegistrationDisclosure\";\r\n ChallengeType[\"ConfirmIdentity\"] = \"ConfirmIdentity\";\r\n ChallengeType[\"CreateUser\"] = \"CreateUser\";\r\n ChallengeType[\"UpdateBusiness\"] = \"UpdateBusiness\";\r\n})(ChallengeType = exports.ChallengeType || (exports.ChallengeType = {}));\r\n","import { render, staticRenderFns } from \"./Slide.vue?vue&type=template&id=763dad63&\"\nimport script from \"./Slide.vue?vue&type=script&lang=ts&\"\nexport * from \"./Slide.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ElementIds = void 0;\r\n/**\r\n * Enum for Element IDs that are referenced by other systems or services - for analytics, security, or any other purpose.\r\n * These IDs stored here to remain constant, and should not be updated unless also updated by the consuming system or service.\r\n *\r\n * @readonly\r\n * @enum {string}\r\n */\r\nvar ElementIds;\r\n(function (ElementIds) {\r\n ElementIds[\"Username\"] = \"username\";\r\n ElementIds[\"Password\"] = \"password\";\r\n ElementIds[\"AuthenticationSubmit\"] = \"btn_submitCredentials\";\r\n ElementIds[\"DisclosureCheckbox\"] = \"acceptDisclosureCheckbox\";\r\n ElementIds[\"DisclosureContinue\"] = \"disclosureAcceptanceBtn\";\r\n ElementIds[\"UsernameChooseScenarioCard\"] = \"usernameType\";\r\n ElementIds[\"UserIdentifyingField\"] = \"UserIdentifyingField\";\r\n ElementIds[\"ConfirmIdentityContinue\"] = \"btn_submitConfirmIdentity\";\r\n ElementIds[\"StepUpCategory\"] = \"stepUpCategory\";\r\n ElementIds[\"StepUpDestination\"] = \"stepUpDestination\";\r\n ElementIds[\"StepUpContinue\"] = \"btn_chooseStepUpOptions\";\r\n ElementIds[\"OTPCodeInput\"] = \"codeInput\";\r\n ElementIds[\"OTPChangeMethod\"] = \"btn_changeMethod\";\r\n ElementIds[\"OTPResendCode\"] = \"btn_resendOTP\";\r\n ElementIds[\"OTPVerify\"] = \"btn_submitOTPCode\";\r\n ElementIds[\"CreateUsername\"] = \"btn_createUsername\";\r\n ElementIds[\"UpdateBusiness\"] = \"btn_updateBusiness\";\r\n})(ElementIds = exports.ElementIds || (exports.ElementIds = {}));\r\n","import { render, staticRenderFns } from \"./ContainerSlide.vue?vue&type=template&id=53cc26a2&scoped=true&\"\nimport script from \"./ContainerSlide.vue?vue&type=script&lang=ts&\"\nexport * from \"./ContainerSlide.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ContainerSlide.vue?vue&type=style&index=0&id=53cc26a2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53cc26a2\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./SlideHeaderWithNav.vue?vue&type=template&id=6fdc3c83&scoped=true&\"\nimport script from \"./SlideHeaderWithNav.vue?vue&type=script&lang=ts&\"\nexport * from \"./SlideHeaderWithNav.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SlideHeaderWithNav.vue?vue&type=style&index=0&id=6fdc3c83&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6fdc3c83\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./IsotopeHeader.vue?vue&type=template&id=e64a4382&\"\nimport script from \"./IsotopeHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./IsotopeHeader.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AuthenticationFactor = void 0;\r\nvar AuthenticationFactor;\r\n(function (AuthenticationFactor) {\r\n AuthenticationFactor[\"Unknown\"] = \"Unknown\";\r\n AuthenticationFactor[\"SmsCode\"] = \"SmsCode\";\r\n AuthenticationFactor[\"EmailCode\"] = \"EmailCode\";\r\n AuthenticationFactor[\"VoiceCode\"] = \"VoiceCode\";\r\n AuthenticationFactor[\"TOTP\"] = \"TOTP\";\r\n AuthenticationFactor[\"WebAuthn\"] = \"WebAuthn\";\r\n AuthenticationFactor[\"PushNotification\"] = \"PushNotification\";\r\n AuthenticationFactor[\"VoicePrompt\"] = \"VoicePrompt\";\r\n AuthenticationFactor[\"QuestionsAndAnswers\"] = \"QuestionsAndAnswers\";\r\n AuthenticationFactor[\"Token\"] = \"Token\";\r\n AuthenticationFactor[\"Biometric\"] = \"Biometric\";\r\n})(AuthenticationFactor = exports.AuthenticationFactor || (exports.AuthenticationFactor = {}));\r\n","import { render, staticRenderFns } from \"./SlideHeader.vue?vue&type=template&id=3599c1ff&\"\nimport script from \"./SlideHeader.vue?vue&type=script&lang=ts&\"\nexport * from \"./SlideHeader.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst ChallengeType_1 = require(\"../../enums/ChallengeType\");\r\nconst fromEntries_1 = tslib_1.__importDefault(require(\"../../lib/fromEntries\"));\r\nconst entries = Object.keys(ChallengeType_1.ChallengeType)\r\n .map((challengeType) => [challengeType, () => Promise.resolve().then(() => tslib_1.__importStar(require(`./${challengeType}`)))])\r\n .filter((x) => x);\r\nexports.default = (0, fromEntries_1.default)(entries);\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ScenarioType = void 0;\r\nvar ScenarioType;\r\n(function (ScenarioType) {\r\n ScenarioType[ScenarioType[\"Unknown\"] = 0] = \"Unknown\";\r\n ScenarioType[ScenarioType[\"Registration\"] = 1] = \"Registration\";\r\n ScenarioType[ScenarioType[\"AdminRegistration\"] = 2] = \"AdminRegistration\";\r\n ScenarioType[ScenarioType[\"ForgotPassword\"] = 3] = \"ForgotPassword\";\r\n ScenarioType[ScenarioType[\"ForgotUsername\"] = 4] = \"ForgotUsername\";\r\n ScenarioType[ScenarioType[\"UserSearch\"] = 5] = \"UserSearch\";\r\n})(ScenarioType = exports.ScenarioType || (exports.ScenarioType = {}));\r\n","import { render, staticRenderFns } from \"./ConfirmIdentity.vue?vue&type=template&id=a9a99156&scoped=true&\"\nimport script from \"./ConfirmIdentity.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConfirmIdentity.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ConfirmIdentity.vue?vue&type=style&index=0&id=a9a99156&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a9a99156\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./OneTimeCodeForgot.vue?vue&type=template&id=7827f44a&scoped=true&\"\nimport script from \"./OneTimeCodeForgot.vue?vue&type=script&lang=ts&\"\nexport * from \"./OneTimeCodeForgot.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OneTimeCodeForgot.vue?vue&type=style&index=0&id=7827f44a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7827f44a\",\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst fromEntries_1 = tslib_1.__importDefault(require(\"../../lib/fromEntries\"));\r\nconst AuthenticationFactor_1 = require(\"../../enums/AuthenticationFactor\");\r\nconst entries = Object.keys(AuthenticationFactor_1.AuthenticationFactor)\r\n .map((stepupType) => [stepupType, () => Promise.resolve().then(() => tslib_1.__importStar(require(`./${stepupType}`)))]);\r\nexports.default = (0, fromEntries_1.default)(entries);\r\n","import mod from \"-!../../node_modules/ts-loader/index.js??ref--3-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/ts-loader/index.js??ref--3-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'app',\r\n computed: {\r\n currentChallengeType() {\r\n return this.$store.getters.currentChallengeType;\r\n },\r\n },\r\n watch: {\r\n currentChallengeType(currentChallengeType, previousChallengeType) {\r\n const event = new CustomEvent('challengetypechange', {\r\n bubbles: true,\r\n cancelable: false,\r\n detail: {\r\n currentChallengeType,\r\n previousChallengeType,\r\n },\r\n });\r\n this.$el.dispatchEvent(event);\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Authentication.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Authentication.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst userTelemetry_1 = require(\"../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'authentication',\r\n props: {},\r\n computed: {\r\n authenticatedModel() {\r\n return this.$store.getters.authenticatedModel;\r\n },\r\n isSyncing() {\r\n return this.$store.getters.isSyncing;\r\n },\r\n currentChallengeType() {\r\n return this.$store.getters.currentChallengeType;\r\n },\r\n },\r\n watch: {\r\n authenticatedModel(newAuthenticatedModel) {\r\n if (newAuthenticatedModel && typeof newAuthenticatedModel.username == 'string' && typeof newAuthenticatedModel.nonce == 'string') {\r\n this.$nextTick(() => {\r\n const formElement = document.querySelector('#form_authenticated');\r\n if (formElement) {\r\n this.$store.commit('setIsSubmittingAuthenticatedModel', true);\r\n formElement.submit();\r\n }\r\n });\r\n }\r\n },\r\n async isSyncing() {\r\n while (this.$store.getters.isSyncing && !this.authenticatedModel.username.length) {\r\n const challenge = {\r\n ...this.$store.getters.checkSyncResultChallenge,\r\n };\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n await new Promise((r) => setTimeout(r, 1000));\r\n }\r\n },\r\n },\r\n components: {},\r\n async mounted() {\r\n var _a;\r\n void userTelemetry_1.telemetry.page(userTelemetry_1.workflowName.retail_registration);\r\n if (((_a = this.$store.getters.configuration.loginCredentials) === null || _a === void 0 ? void 0 : _a.UserName) === '') {\r\n await this.$store.dispatch('getRememberedUsername');\r\n }\r\n this.$store.commit('currentChallenge', {\r\n ChallengeTypeValue: this.$store.getters.configuration.initialChallengeType,\r\n Progression: [],\r\n });\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Registration.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Registration.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeType_1 = require(\"../enums/ChallengeType\");\r\nconst userTelemetry_1 = require(\"../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'registration',\r\n props: {},\r\n computed: {\r\n currentChallengeType() {\r\n const challengeType = this.$store.getters.currentChallengeType;\r\n switch (challengeType) {\r\n case ChallengeType_1.ChallengeType.StepUp:\r\n return ChallengeType_1.ChallengeType.StepUpForgot;\r\n case ChallengeType_1.ChallengeType.OneTimeCode:\r\n return ChallengeType_1.ChallengeType.OneTimeCodeForgotContainer;\r\n case ChallengeType_1.ChallengeType.CheckSyncResult:\r\n return ChallengeType_1.ChallengeType.CheckSyncResultForgot;\r\n default:\r\n return challengeType;\r\n }\r\n },\r\n authenticatedModel() {\r\n return this.$store.getters.authenticatedModel;\r\n },\r\n isSyncing() {\r\n return this.$store.getters.isSyncing;\r\n },\r\n },\r\n watch: {\r\n authenticatedModel(newAuthenticationModel) {\r\n if (newAuthenticationModel && typeof newAuthenticationModel.username == 'string' && typeof newAuthenticationModel.nonce == 'string') {\r\n this.$nextTick(() => {\r\n const formElement = document.querySelector('#form_authenticated');\r\n if (formElement) {\r\n this.$store.commit('setIsSubmittingAuthenticatedModel', true);\r\n formElement.submit();\r\n }\r\n });\r\n }\r\n },\r\n async isSyncing() {\r\n while (this.$store.getters.isSyncing) {\r\n const challenge = { ...this.$store.getters.checkSyncResultChallenge };\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n await new Promise(r => setTimeout(r, 1000));\r\n }\r\n },\r\n },\r\n components: {},\r\n mounted() {\r\n this.$store.commit('currentChallenge', {\r\n ChallengeTypeValue: this.$store.getters.configuration.initialChallengeType,\r\n Progression: [],\r\n });\r\n void this.$store.dispatch('submitChallenge', this.$store.state.currentChallenge);\r\n void userTelemetry_1.telemetry.page(userTelemetry_1.workflowName.retail_registration);\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotUsername.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotUsername.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeType_1 = require(\"../enums/ChallengeType\");\r\nexports.default = vue_1.default.extend({\r\n name: 'authentication',\r\n props: {},\r\n computed: {\r\n currentChallengeType() {\r\n const challengeType = this.$store.getters.currentChallengeType;\r\n switch (challengeType) {\r\n case ChallengeType_1.ChallengeType.StepUp:\r\n return ChallengeType_1.ChallengeType.StepUpForgot;\r\n case ChallengeType_1.ChallengeType.OneTimeCode:\r\n return ChallengeType_1.ChallengeType.OneTimeCodeForgotContainer;\r\n case ChallengeType_1.ChallengeType.UsernameAndPassword:\r\n this.$store.commit('currentChallenge', {\r\n ChallengeTypeValue: ChallengeType_1.ChallengeType.StartForgotUsername,\r\n Progression: [],\r\n });\r\n void this.$store.dispatch('submitChallenge', this.$store.state.currentChallenge);\r\n return ChallengeType_1.ChallengeType.StartForgotUsername;\r\n default:\r\n return challengeType;\r\n }\r\n },\r\n },\r\n methods: {\r\n submitForm(event) {\r\n void this.$store.dispatch('submitChallenge', this.$store.state.currentChallenge);\r\n event.preventDefault();\r\n },\r\n },\r\n components: {},\r\n mounted() {\r\n this.$store.commit('currentChallenge', {\r\n ChallengeTypeValue: this.$store.getters.configuration.initialChallengeType,\r\n Progression: [],\r\n });\r\n void this.$store.dispatch('submitChallenge', this.$store.state.currentChallenge);\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPassword.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeType_1 = require(\"../enums/ChallengeType\");\r\nexports.default = vue_1.default.extend({\r\n name: 'forgotpassword',\r\n props: {},\r\n computed: {\r\n currentChallengeType() {\r\n const challengeType = this.$store.getters.currentChallengeType;\r\n switch (challengeType) {\r\n case ChallengeType_1.ChallengeType.StepUp:\r\n return ChallengeType_1.ChallengeType.StepUpForgot;\r\n case ChallengeType_1.ChallengeType.OneTimeCode:\r\n return ChallengeType_1.ChallengeType.OneTimeCodeForgotContainer;\r\n case ChallengeType_1.ChallengeType.CheckSyncResult:\r\n return ChallengeType_1.ChallengeType.CheckSyncResultForgot;\r\n default:\r\n return challengeType;\r\n }\r\n },\r\n },\r\n methods: {\r\n submitForm(event) {\r\n void this.$store.dispatch('submitChallenge', this.$store.state.currentChallenge);\r\n event.preventDefault();\r\n },\r\n },\r\n components: {},\r\n mounted() {\r\n this.$store.commit('currentChallenge', {\r\n ChallengeTypeValue: this.$store.getters.configuration.initialChallengeType,\r\n Progression: [],\r\n });\r\n void this.$store.dispatch('submitChallenge', this.$store.state.currentChallenge);\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginGrouping.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LoginGrouping.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeType_1 = require(\"../enums/ChallengeType\");\r\nexports.default = vue_1.default.extend({\r\n name: 'logingrouping',\r\n props: {},\r\n computed: {\r\n currentChallengeType() {\r\n const challengeType = this.$store.getters.currentChallengeType;\r\n switch (challengeType) {\r\n case ChallengeType_1.ChallengeType.StepUp:\r\n return ChallengeType_1.ChallengeType.StepUpForgot;\r\n case ChallengeType_1.ChallengeType.OneTimeCode:\r\n return ChallengeType_1.ChallengeType.OneTimeCodeForgotContainer;\r\n case ChallengeType_1.ChallengeType.CheckSyncResult:\r\n return ChallengeType_1.ChallengeType.CheckSyncResultForgot;\r\n default:\r\n return challengeType;\r\n }\r\n },\r\n },\r\n methods: {\r\n submitForm(event) {\r\n void this.$store.dispatch('submitChallenge', this.$store.state.currentChallenge);\r\n event.preventDefault();\r\n },\r\n },\r\n components: {},\r\n mounted() {\r\n var _a;\r\n let nextChallenge = { ...this.$store.state.configuration.nextRequestedChallenge };\r\n nextChallenge.ChallengeTypeValue = ChallengeType_1.ChallengeType.StepUp;\r\n this.$store.commit('currentChallenge', nextChallenge);\r\n // We had to add this so the selected step up option gets expanded properly.\r\n // Not sure why it didn't work initally, we'll have to figure this one out later.\r\n let stepUpChallenge = nextChallenge;\r\n if (stepUpChallenge) {\r\n let index = 0;\r\n let destinationIndex = 0;\r\n (_a = stepUpChallenge.StepUpCategories) === null || _a === void 0 ? void 0 : _a.forEach(function (category) {\r\n var _a;\r\n category.$id = index.toString();\r\n category.StepUpModel.$id = index.toString();\r\n (_a = category.StepUpModel.Destinations) === null || _a === void 0 ? void 0 : _a.forEach(function (destination) {\r\n destination.$id = destinationIndex.toString();\r\n destinationIndex++;\r\n });\r\n index++;\r\n });\r\n }\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangePassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangePassword.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'change-password',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckSyncResult.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckSyncResult.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nconst SyncFailure_vue_1 = tslib_1.__importDefault(require(\"../SyncFailure.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'check-sync-result',\r\n props: {},\r\n computed: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n },\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n SyncFailure: SyncFailure_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Slide.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Slide.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'isotope-slide',\r\n props: {},\r\n computed: {\r\n hasHeader() {\r\n return !!this.$slots.header;\r\n },\r\n hasFooter() {\r\n return !!this.$slots.footer;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SyncFailure.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SyncFailure.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../filters/sitetext\");\r\nconst SlideHeader_vue_1 = tslib_1.__importDefault(require(\"./SlideHeader.vue\"));\r\nconst lottie_web_1 = tslib_1.__importDefault(require(\"lottie-web\"));\r\nconst confirmation_error_64_1 = require(\"../assets/confirmation-error-64\");\r\nexports.default = vue_1.default.extend({\r\n name: 'sync-failure',\r\n props: {\r\n buttonText: {\r\n type: String,\r\n default: '',\r\n },\r\n url: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n errorMessage() {\r\n const errors = this.$store.state.errors;\r\n let errorCode = '';\r\n if (errors.length > 0) {\r\n errorCode = errors[0].CustomSubCode;\r\n }\r\n if (errorCode !== null && errorCode.startsWith('AEC')) {\r\n return this.getSiteText(`Sync.SyncError.${errorCode}`);\r\n }\r\n else {\r\n return this.getSiteText('Error.Generic');\r\n }\r\n },\r\n },\r\n components: {\r\n SlideHeader: SlideHeader_vue_1.default,\r\n },\r\n mounted() {\r\n lottie_web_1.default.loadAnimation({\r\n container: document.querySelector('.syncAnimation.error'),\r\n renderer: 'svg',\r\n animationData: confirmation_error_64_1.ConfirmationError64,\r\n loop: false,\r\n autoplay: true,\r\n });\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlideHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlideHeader.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'slide-header',\r\n props: {\r\n header: {\r\n type: String,\r\n default: '',\r\n },\r\n subtitle: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n mounted() {\r\n if (this.header !== '')\r\n this.$refs.heading.focus();\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckSyncResultForgot.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckSyncResultForgot.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst SyncFailure_vue_1 = tslib_1.__importDefault(require(\"../SyncFailure.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'check-sync-result',\r\n props: {},\r\n computed: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n url() {\r\n switch (true) {\r\n case this.$store.getters.isRegistering:\r\n return `${this.baseUrl}Registration`;\r\n case this.$store.getters.isForgotPasswordWorkflow:\r\n return `${this.baseUrl}ForgotPassword`;\r\n }\r\n return `${this.baseUrl}ForgotPassword`;\r\n },\r\n },\r\n components: {\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n SyncFailure: SyncFailure_vue_1.default,\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContainerSlide.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContainerSlide.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'container-slide',\r\n computed: {\r\n hasHeader() {\r\n return !!this.$slots.header;\r\n },\r\n hasFooter() {\r\n return !!this.$slots.footer;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlideHeaderWithNav.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SlideHeaderWithNav.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../filters/sitetext\");\r\nconst ChallengeStatus_1 = require(\"../enums/ChallengeStatus\");\r\nconst ProgressBar_vue_1 = tslib_1.__importDefault(require(\"./ProgressBar.vue\"));\r\nconst vuex_1 = require(\"vuex\");\r\nconst userTelemetry_1 = require(\"../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'slide-header-with-nav',\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n data() {\r\n return {\r\n contentToggle: false,\r\n displayErrorMessage: false,\r\n // suppressed challenge status messaging is typically handled by their specific components\r\n suppressedChallengeStatus: [\r\n ChallengeStatus_1.ChallengeStatus.InvalidOneTimeCode,\r\n ChallengeStatus_1.ChallengeStatus.PdfCodeInvalid,\r\n ChallengeStatus_1.ChallengeStatus.SyncError,\r\n ChallengeStatus_1.ChallengeStatus.OTPExpired,\r\n ],\r\n };\r\n },\r\n props: {\r\n url: {\r\n type: String,\r\n default: '/',\r\n },\r\n workflowName: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n computed: {\r\n ...(0, vuex_1.mapGetters)(['hasSessionExpiredError', 'hasInvalidChallengeStatus', 'hasServerError', 'currentChallengeType',\r\n 'isForgotPasswordWorkflow', 'isForgotUsernameWorkflow', 'isRegistering']),\r\n ...(0, vuex_1.mapState)(['challengeStatus', 'currentChallenge', 'isCypress']),\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n errorMessage() {\r\n var _a;\r\n let errorMessage = '';\r\n if (this.hasSessionExpiredError) {\r\n errorMessage = this.getSiteText('ChallengeStatus.SessionExpired');\r\n }\r\n else if (!this.suppressedChallengeStatus.includes(this.challengeStatus)) {\r\n if (this.hasInvalidChallengeStatus) {\r\n let siteTextKey = `ChallengeStatus.${this.challengeStatus}`;\r\n if (this.workflowName.length > 0)\r\n siteTextKey = `${this.workflowName}.${siteTextKey}`;\r\n errorMessage = this.getSiteText(siteTextKey, (_a = this.currentChallenge.SessionInfo) === null || _a === void 0 ? void 0 : _a.Id);\r\n }\r\n else if (this.hasServerError) {\r\n errorMessage = this.getSiteText('Error.Generic');\r\n }\r\n }\r\n this.setDisplayError(errorMessage.length > 0);\r\n return errorMessage;\r\n },\r\n closeButtonText() {\r\n if (this.isForgotPasswordWorkflow)\r\n return this.getSiteText('ForgotPassword.Close.Text');\r\n else if (this.isForgotUsernameWorkflow)\r\n return this.getSiteText('ForgotUsername.Close.Text');\r\n else if (this.isRegistering)\r\n return this.getSiteText('Registration.Close.Text');\r\n return 'Cancel';\r\n },\r\n },\r\n methods: {\r\n toggleSheet(toggleOption, event) {\r\n this.contentToggle = toggleOption;\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n },\r\n cancelConfirmText() {\r\n if (this.$store.getters.isForgotPasswordWorkflow)\r\n return this.getSiteText('ForgotPassword.Close.Confirm.Text');\r\n else if (this.$store.getters.isForgotUsernameWorkflow)\r\n return this.getSiteText('ForgotUsername.Close.Confirm.Text');\r\n else if (this.$store.getters.isRegistering)\r\n return this.getSiteText('Registration.Close.Confirm.Text');\r\n return '';\r\n },\r\n setDisplayError(option) {\r\n this.$nextTick(() => {\r\n this.displayErrorMessage = option;\r\n if (option) {\r\n this.$refs.slide.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n });\r\n },\r\n closeNotification() {\r\n this.displayErrorMessage = false;\r\n },\r\n clickCloseButton(event) {\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: (0, userTelemetry_1.getStepName)(workflow, this.currentChallengeType),\r\n action: userTelemetry_1.userAction.cancel_clicked,\r\n });\r\n }\r\n this.toggleSheet(true, event);\r\n },\r\n async clickConfirmClose() {\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n await userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.cancellation,\r\n stepName: userTelemetry_1.stepName.quit_confirmation,\r\n action: userTelemetry_1.userAction.yes_clicked,\r\n });\r\n }\r\n if (this.isCypress)\r\n return;\r\n document.location.href = this.url;\r\n },\r\n clickCancelClose() {\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.cancellation,\r\n stepName: userTelemetry_1.stepName.quit_confirmation,\r\n action: userTelemetry_1.userAction.cancel_clicked,\r\n });\r\n }\r\n this.toggleSheet(false);\r\n },\r\n sheetClosed() {\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.cancellation,\r\n stepName: userTelemetry_1.stepName.quit_confirmation,\r\n action: userTelemetry_1.userAction.sheet_closed,\r\n });\r\n }\r\n },\r\n },\r\n mounted() {\r\n var _a, _b, _c;\r\n // The following are workarounds for button elements in iris components not having a type set, thus acting as submit buttons\r\n // The red x to exit the flow\r\n (_a = document.querySelector('#closeButton button')) === null || _a === void 0 ? void 0 : _a.setAttribute('type', 'button');\r\n // The button to close notifications\r\n (_b = document.querySelector('[aria-label=\"Close notification\"]')) === null || _b === void 0 ? void 0 : _b.setAttribute('type', 'button');\r\n // The hidden close button in the side sheet\r\n (_c = document.querySelector('[aria-label=\"navigation menu\"]')) === null || _c === void 0 ? void 0 : _c.setAttribute('type', 'button');\r\n if (this.$store.getters.hasSessionExpiredError) {\r\n this.setDisplayError(true);\r\n }\r\n },\r\n components: {\r\n ProgressBar: ProgressBar_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgressBar.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../filters/sitetext\");\r\nexports.default = vue_1.default.extend({\r\n name: 'progress-bar',\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n showProgressBar() {\r\n return this.currentWorkflowMaxSteps > 0;\r\n },\r\n currentWorkflowMaxSteps() {\r\n return this.$store.getters.currentWorkflowMaxSteps;\r\n },\r\n currentWorkflowStep() {\r\n return this.$store.getters.currentWorkflowStep;\r\n },\r\n percentComplete() {\r\n const currentCompletion = this.currentWorkflowStep * 100 / this.currentWorkflowMaxSteps;\r\n return currentCompletion > 100 ? 100 : currentCompletion;\r\n },\r\n progressBarHeading() {\r\n return this.getSiteText('Forgot.Progressbar.Heading', this.currentWorkflowStep, this.currentWorkflowMaxSteps);\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChooseRegistrationType.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChooseRegistrationType.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChooseScenario_vue_1 = tslib_1.__importDefault(require(\"../confirmIdentity/ChooseScenario.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'choose-registration-type',\r\n components: {\r\n ChooseScenario: ChooseScenario_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChooseScenario.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChooseScenario.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst ScenarioType_1 = require(\"../../enums/ScenarioType\");\r\nconst UserLookupType_1 = require(\"../../enums/UserLookupType\");\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst IsotopeHeader_vue_1 = tslib_1.__importDefault(require(\"../IsotopeHeader.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'choose-scenario',\r\n data: () => {\r\n return {\r\n selectedScenario: 0,\r\n };\r\n },\r\n props: {\r\n cardName: {\r\n type: String,\r\n required: false,\r\n validator: prop => typeof prop === 'string' || prop === null,\r\n default: null,\r\n },\r\n },\r\n computed: {\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n canContinue() {\r\n return this.selectedScenario !== 0;\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge;\r\n },\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n scenarios() {\r\n return this.$store.state.currentChallenge.Scenarios || [];\r\n },\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n scenarioType() {\r\n const type = this.scenarios.length > 0 ? this.scenarios[0].ScenarioTypeValue : 0;\r\n return ScenarioType_1.ScenarioType[type];\r\n },\r\n async selectScenario(selectedItem) {\r\n var _a, _b;\r\n this.selectedScenario = selectedItem;\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n let lookupType = (_b = (_a = this.scenarios.find(s => s.Id === selectedItem)) === null || _a === void 0 ? void 0 : _a.UserLookupTypeValue) !== null && _b !== void 0 ? _b : UserLookupType_1.UserLookupType.None;\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n action: lookupType === UserLookupType_1.UserLookupType.Business ? userTelemetry_1.userAction.business_account_clicked : userTelemetry_1.userAction.individual_account_clicked,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.registration_type,\r\n });\r\n }\r\n await this.submitForm();\r\n },\r\n async submitForm() {\r\n if (this.submitting) {\r\n return;\r\n }\r\n let chosenScenario = this.selectedScenario;\r\n if (!chosenScenario) {\r\n const validationResults = [\r\n {\r\n CustomSubCode: '',\r\n ErrorCode: 0,\r\n Field: 'Choose Scenario Type',\r\n ItemIndex: 0,\r\n Message: `Unable to determine scenario Selected: ${this.selectedScenario} Allowed:${this.scenarios.join('|')}`,\r\n Origin: 'ChooseScenario (FrontEnd)',\r\n Severity: 1,\r\n SubCode: 0,\r\n },\r\n ];\r\n this.$store.commit('errors', validationResults);\r\n return;\r\n }\r\n let challenge = {\r\n ...this.currentChallenge,\r\n ChosenScenarioId: chosenScenario,\r\n };\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n // submit the challenge\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n },\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n IsotopeHeader: IsotopeHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IsotopeHeader.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IsotopeHeader.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst sitetext_1 = require(\"../filters/sitetext\");\r\nexports.default = vue_1.default.extend({\r\n name: 'isotope-header',\r\n props: {\r\n siteText: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n cssClasses() {\r\n let classes = ['mar-bottom--md', 'text--capitalize'];\r\n if (this.isMobile)\r\n classes.push('mar-top--xl', 'font-medium-heading');\r\n else\r\n classes.push('mar-top--2xl', 'font-small-heading');\r\n return classes;\r\n },\r\n },\r\n mounted() {\r\n this.$refs.heading.focus();\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmIdentity.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmIdentity.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst ScenarioType_1 = require(\"../../enums/ScenarioType\");\r\nconst UserIdentifyingFieldType_1 = require(\"../../enums/UserIdentifyingFieldType\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst UserIdentifyingFieldGroup_vue_1 = tslib_1.__importDefault(require(\"../confirmIdentity/UserIdentifyingFieldGroup.vue\"));\r\nconst IsotopeHeader_vue_1 = tslib_1.__importDefault(require(\"../IsotopeHeader.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'confirm-identity',\r\n data() {\r\n return {\r\n showNotification: false,\r\n fieldValidationStatus: new Map(),\r\n hasInvalidField: true,\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n async submitForm() {\r\n if (this.submitting) {\r\n return;\r\n }\r\n const challenge = {\r\n ...this.confirmIdentityChallenge,\r\n };\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n // submit the challenge\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n // filter down to just fields that have data\r\n const datapoints = challenge.Scenario.FieldGroups\r\n .reduce((acc, val) => acc.concat(val.Fields), [])\r\n .filter(x => x.Value !== null && typeof x.Value === 'string' && x.Value.trim().length > 0);\r\n let properties = {\r\n 'numDataPoints': datapoints.length,\r\n };\r\n if (this.$store.getters.hasInvalidChallengeStatus) {\r\n properties.error = this.$store.getters.challengeStatus;\r\n }\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.confirm_your_identity,\r\n action: userTelemetry_1.userAction.continue_clicked,\r\n eventProperties: properties,\r\n });\r\n }\r\n },\r\n notificationMessage() {\r\n return this.getSiteText(`${this.scenarioType}.ConfirmIdentity.Notification`);\r\n },\r\n validationCheck(data) {\r\n this.fieldValidationStatus.set(UserIdentifyingFieldType_1.UserIdentifyingFieldType[data.fieldType], data.isValid);\r\n let hasInvalidStatus = false;\r\n for (let value of this.fieldValidationStatus.values()) {\r\n if (!value) {\r\n hasInvalidStatus = true;\r\n break;\r\n }\r\n }\r\n this.hasInvalidField = hasInvalidStatus;\r\n },\r\n },\r\n computed: {\r\n scenarioType() {\r\n return ScenarioType_1.ScenarioType[this.confirmIdentityChallenge.Scenario.ScenarioTypeValue];\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge;\r\n },\r\n confirmIdentityChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n buttonDisabled() {\r\n return this.submitting || this.hasInvalidField;\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n },\r\n mounted() {\r\n var _a;\r\n if (this.notificationMessage()) {\r\n this.showNotification = true;\r\n }\r\n // Fix an issue with the notification message close button causing the form to submit\r\n (_a = document.querySelector('[data-cy=\"notificationMessage\"] button')) === null || _a === void 0 ? void 0 : _a.setAttribute('type', 'button');\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n UserIdentifyingFieldGroup: UserIdentifyingFieldGroup_vue_1.default,\r\n IsotopeHeader: IsotopeHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserIdentifyingFieldGroup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserIdentifyingFieldGroup.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst UserIdentifyingField_vue_1 = tslib_1.__importDefault(require(\"./UserIdentifyingField.vue\"));\r\nconst ScenarioType_1 = require(\"../../enums/ScenarioType\");\r\nexports.default = vue_1.default.extend({\r\n name: 'user-identifying-field-group',\r\n props: {\r\n index: {\r\n type: Number,\r\n default: 0,\r\n },\r\n name: {\r\n type: String,\r\n default: '',\r\n },\r\n fields: {\r\n type: Array,\r\n default: () => [],\r\n },\r\n scenarioType: {\r\n type: Number,\r\n default: 0,\r\n },\r\n scenarioName: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n textForGroup(scenarioType, index) {\r\n const bankName = this.$store.state.configuration.bankName;\r\n return this.getSiteText(`${ScenarioType_1.ScenarioType[scenarioType]}.UserIdentifyingFieldGroup.${index + 1}.Text`, bankName);\r\n },\r\n validationCheck(data) {\r\n this.$emit('validation-check', data);\r\n },\r\n },\r\n components: {\r\n UserIdentifyingField: UserIdentifyingField_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserIdentifyingField.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UserIdentifyingField.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst UserIdentifyingFieldType_1 = require(\"../../enums/UserIdentifyingFieldType\");\r\nconst ScenarioType_1 = require(\"../../enums/ScenarioType\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nexports.default = vue_1.default.extend({\r\n name: 'user-identifying-field',\r\n props: {\r\n fieldType: {\r\n type: Number,\r\n default: UserIdentifyingFieldType_1.UserIdentifyingFieldType.MothersMaidenName,\r\n },\r\n isRequired: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n isSensitive: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n value: {\r\n type: String,\r\n default: '',\r\n },\r\n scenarioType: {\r\n type: Number,\r\n default: ScenarioType_1.ScenarioType.Unknown,\r\n },\r\n scenarioName: {\r\n type: String,\r\n default: '',\r\n },\r\n regex: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n data: () => {\r\n return {\r\n states: [\r\n { label: 'AL', value: 'AL' },\r\n { label: 'AK', value: 'AK' },\r\n { label: 'AZ', value: 'AZ' },\r\n { label: 'AR', value: 'AR' },\r\n { label: 'CA', value: 'CA' },\r\n { label: 'CO', value: 'CO' },\r\n { label: 'CT', value: 'CT' },\r\n { label: 'DE', value: 'DE' },\r\n { label: 'FL', value: 'FL' },\r\n { label: 'GA', value: 'GA' },\r\n { label: 'HI', value: 'HI' },\r\n { label: 'ID', value: 'ID' },\r\n { label: 'IL', value: 'IL' },\r\n { label: 'IN', value: 'IN' },\r\n { label: 'IA', value: 'IA' },\r\n { label: 'KS', value: 'KS' },\r\n { label: 'KY', value: 'KY' },\r\n { label: 'LA', value: 'LA' },\r\n { label: 'ME', value: 'ME' },\r\n { label: 'MD', value: 'MD' },\r\n { label: 'MA', value: 'MA' },\r\n { label: 'MI', value: 'MI' },\r\n { label: 'MN', value: 'MN' },\r\n { label: 'MS', value: 'MS' },\r\n { label: 'MO', value: 'MO' },\r\n { label: 'MT', value: 'MT' },\r\n { label: 'NE', value: 'NE' },\r\n { label: 'NV', value: 'NV' },\r\n { label: 'NH', value: 'NH' },\r\n { label: 'NJ', value: 'NJ' },\r\n { label: 'NM', value: 'NM' },\r\n { label: 'NY', value: 'NY' },\r\n { label: 'NC', value: 'NC' },\r\n { label: 'ND', value: 'ND' },\r\n { label: 'OH', value: 'OH' },\r\n { label: 'OK', value: 'OK' },\r\n { label: 'OR', value: 'OR' },\r\n { label: 'PA', value: 'PA' },\r\n { label: 'RI', value: 'RI' },\r\n { label: 'SC', value: 'SC' },\r\n { label: 'SD', value: 'SD' },\r\n { label: 'TN', value: 'TN' },\r\n { label: 'TX', value: 'TX' },\r\n { label: 'UT', value: 'UT' },\r\n { label: 'VT', value: 'VT' },\r\n { label: 'VA', value: 'VA' },\r\n { label: 'WA', value: 'WA' },\r\n { label: 'WV', value: 'WV' },\r\n { label: 'WI', value: 'WI' },\r\n { label: 'WY', value: 'WY' },\r\n ],\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n inputVal: {\r\n get() {\r\n if (this.fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.IsBusiness) {\r\n if (!this.value)\r\n return false;\r\n else {\r\n if (this.value.toString() === 'True' || this.value.toString() === 'true')\r\n return true;\r\n else\r\n return false;\r\n }\r\n }\r\n return this.value;\r\n },\r\n set(val) {\r\n if (this.fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.IsBusiness) {\r\n val = val === null ? 'false' : val.toString();\r\n }\r\n this.$emit('input', val.trim());\r\n },\r\n },\r\n elementIds() {\r\n return ElementIds_1.ElementIds;\r\n },\r\n },\r\n methods: {\r\n label(fieldType, scenarioType) {\r\n var sName = this.scenarioName === '' ? '' : this.scenarioName + '.';\r\n var scenarioTypeSpecificLabel = this.getSiteText(`${ScenarioType_1.ScenarioType[scenarioType]}.${sName}UserIdentifyingField.${UserIdentifyingFieldType_1.UserIdentifyingFieldType[fieldType]}.Label`);\r\n if (!scenarioTypeSpecificLabel.startsWith('__Localize_Me__'))\r\n return scenarioTypeSpecificLabel;\r\n return this.getSiteText(`UserIdentifyingField.${UserIdentifyingFieldType_1.UserIdentifyingFieldType[fieldType]}.Label`);\r\n },\r\n helperText(fieldType, scenarioType) {\r\n var sName = this.scenarioName === '' ? '' : this.scenarioName + '.';\r\n var scenarioTypeSpecificHelperText = this.getSiteText(`${ScenarioType_1.ScenarioType[scenarioType]}.${sName}UserIdentifyingField.${UserIdentifyingFieldType_1.UserIdentifyingFieldType[fieldType]}.HelperText`);\r\n if (!scenarioTypeSpecificHelperText.startsWith('__Localize_Me__'))\r\n return scenarioTypeSpecificHelperText;\r\n return this.getSiteText(`UserIdentifyingField.${UserIdentifyingFieldType_1.UserIdentifyingFieldType[fieldType]}.HelperText`);\r\n },\r\n requiredText(fieldType, scenarioType) {\r\n return `${this.getSiteText('UserIdentifyingField.Required', this.label(fieldType, scenarioType))}`;\r\n },\r\n optionalText() {\r\n return this.getSiteText('UserIdentifyingField.Optional');\r\n },\r\n isOfFieldType(fieldType, fieldTypeName) {\r\n return fieldTypeName === UserIdentifyingFieldType_1.UserIdentifyingFieldType[fieldType];\r\n },\r\n validationRules(fieldType, scenarioType) {\r\n const regex = this.validationRegex(fieldType);\r\n if (regex !== null) {\r\n return [(value) => {\r\n return value === '' || value === null || regex.test(value) || this.getSiteText('UserIdentifyingField.ErrorMessage', this.label(fieldType, scenarioType));\r\n }];\r\n }\r\n else\r\n return null;\r\n },\r\n validationRegex(fieldType) {\r\n if (this.regex != null && this.regex.length > 0) {\r\n try {\r\n return new RegExp(this.regex);\r\n }\r\n catch (ex) {\r\n // A MatchRegEx is defined on the field but cannot be parsed. Log an error and continue\r\n // eslint-disable-next-line no-console\r\n console.error(`Invalid regex for field ${this.scenarioName}: ${this.label(this.fieldType, this.scenarioType)}`);\r\n }\r\n }\r\n if (fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.TaxId || fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.EIN) {\r\n return /^(\\d{3}-?\\d{2}-?\\d{4}|\\d{1,9}|\\d{2}-\\d{7})$/;\r\n }\r\n else if (fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.HomePhone || fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.WorkPhone || fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.CellPhone) {\r\n return /^$|^(?:(?:\\+?1\\s*(?:[.-]\\s*)?)?(?:\\(\\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\\s*\\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\\s*(?:[.-]\\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\\s*(?:[.-]\\s*)?([0-9]{4})(?:\\s*(?:#|x\\.?|ext\\.?|extension)\\s*(\\d+))?$/;\r\n }\r\n else if (fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.Email) {\r\n return /(^$|^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$)/;\r\n }\r\n else if (fieldType === UserIdentifyingFieldType_1.UserIdentifyingFieldType.State) {\r\n return /^(A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$/;\r\n }\r\n return null;\r\n },\r\n validationCheck(data) {\r\n this.$emit('validation-check', {\r\n fieldType: this.fieldType,\r\n isValid: data && Object.keys(data).length === 0, // Object.keys is intentional. A blank textfield will return an empty object instead of an array\r\n });\r\n },\r\n getNameForField(fieldType) {\r\n return `${this.elementIds.UserIdentifyingField}_${UserIdentifyingFieldType_1.UserIdentifyingFieldType[fieldType]}`;\r\n },\r\n toggleHiddenText(fieldType, toggleMode) {\r\n const label = this.getSiteText(`UserIdentifyingField.${UserIdentifyingFieldType_1.UserIdentifyingFieldType[fieldType]}.Label`);\r\n const toggleText = this.getSiteText(`UserIdentifyingField.${toggleMode}`);\r\n if (!toggleText.startsWith('__Localize_Me__'))\r\n return `${toggleText} ${label}`;\r\n return `${toggleMode} ${label}`;\r\n },\r\n handleTextfieldFocus(event) {\r\n if (this.$store.getters.isMobile) {\r\n const currentScrollPosition = window.screenY || window.pageYOffset;\r\n const targetField = event.target;\r\n const textFieldPosition = targetField.getBoundingClientRect().top;\r\n window.scrollTo({\r\n top: currentScrollPosition + textFieldPosition - window.innerHeight * 0.10,\r\n behavior: 'smooth',\r\n });\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConvertedUser.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConvertedUser.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'converted-user',\r\n props: {},\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {},\r\n methods: {\r\n linkForCreateNewPassword() {\r\n const link = `${this.$store.state.configuration.baseUrl}ForgotPassword`;\r\n return link;\r\n },\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n instructions() {\r\n const bankName = this.$store.state.configuration.bankName;\r\n return this.getSiteText('ConvertedUser.Text', bankName);\r\n },\r\n },\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateUser.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateUser.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst IsotopeHeader_vue_1 = tslib_1.__importDefault(require(\"../IsotopeHeader.vue\"));\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'create-user',\r\n data: () => {\r\n return {\r\n password: '',\r\n confirmPassword: '',\r\n invalidPassword: false,\r\n passwordMismatch: false,\r\n submitting: false,\r\n };\r\n },\r\n computed: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n buttonDisabled() {\r\n return this.password.length === 0 || this.confirmPassword.length === 0 || this.submitting || this.invalidPassword || this.passwordMismatch;\r\n },\r\n confirmPasswordErrorMessage() {\r\n if (this.confirmPassword.length > 0 && this.passwordMismatch) {\r\n return [this.getSiteText('Registration.CreateUser.PasswordDoesNotMatch')];\r\n }\r\n return [];\r\n },\r\n showConfirmPasswordMessage() {\r\n return this.confirmPassword.length > 0 && !this.passwordMismatch;\r\n },\r\n passwordRegex() {\r\n return this.$store.state.currentChallenge.PasswordRegex;\r\n },\r\n passwordStrengthEnabled() {\r\n return this.$store.state.currentChallenge.PasswordStrengthEnabled;\r\n },\r\n passwordStrengthMinLength() {\r\n return this.$store.state.currentChallenge.PasswordStrengthMinLength;\r\n },\r\n passwordMediumStrengthRegex() {\r\n return this.$store.state.currentChallenge.PasswordMediumStrengthRegex;\r\n },\r\n passwordStrongStrengthRegex() {\r\n return this.$store.state.currentChallenge.PasswordStrongStrengthRegex;\r\n },\r\n isLoading() {\r\n return this.submitting || this.$store.getters.isSyncing || this.$store.getters.isSubmittingAuthenticatedModel;\r\n },\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n passwordStrengths() {\r\n return {\r\n 'weak': this.getSiteText('Registration.CreateUser.PasswordStrength.Weak'),\r\n 'fair': this.getSiteText('Registration.CreateUser.PasswordStrength.Fair'),\r\n 'strong': this.getSiteText('Registration.CreateUser.PasswordStrength.Strong'),\r\n };\r\n },\r\n checkPasswordValid(password) {\r\n const passwordRegex = new RegExp(this.passwordRegex);\r\n this.invalidPassword = !passwordRegex.test(password);\r\n let inputUserName = this.$store.getters.username;\r\n if (this.password.includes(inputUserName)) {\r\n return this.getSiteText('Registration.CreateUser.PasswordIncludesUsername');\r\n }\r\n if (!this.invalidPassword)\r\n return;\r\n return this.getSiteText('Registration.CreateUser.PasswordDoesNotMeetRequirements');\r\n },\r\n checkPasswordStrength() {\r\n if (!this.passwordStrengthEnabled || this.password.length < this.passwordStrengthMinLength) {\r\n return 'none';\r\n }\r\n const strongRegex = new RegExp(this.passwordStrongStrengthRegex);\r\n if (strongRegex.test(this.password)) {\r\n return 'strong';\r\n }\r\n const fairRegex = new RegExp(this.passwordMediumStrengthRegex);\r\n if (fairRegex.test(this.password)) {\r\n return 'fair';\r\n }\r\n return 'weak';\r\n },\r\n checkPasswordMatches() {\r\n this.passwordMismatch = this.password !== this.confirmPassword;\r\n },\r\n async submitForm() {\r\n if (this.submitting) {\r\n return;\r\n }\r\n this.submitting = true;\r\n const telemetryPromise = userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.create_password,\r\n action: userTelemetry_1.userAction.create_password_clicked,\r\n });\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n const challenge = {\r\n ...this.$store.state.currentChallenge,\r\n Password: this.password,\r\n };\r\n const createPasswordPromise = this.$store.dispatch('submitChallenge', challenge);\r\n // run async tasks in parallel\r\n await Promise.all([telemetryPromise, createPasswordPromise]);\r\n this.submitting = false;\r\n },\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n IsotopeHeader: IsotopeHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateUsername.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CreateUsername.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst IsotopeHeader_vue_1 = tslib_1.__importDefault(require(\"../IsotopeHeader.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'create-username',\r\n data: () => {\r\n return {\r\n inputValue: '',\r\n submitting: false,\r\n username: '',\r\n errors: [],\r\n };\r\n },\r\n computed: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n getSubheading() {\r\n return this.getSiteText('Registration.CreateUsername.SubHeading', this.usernameMinLength, this.usernameMaxLength);\r\n },\r\n buttonDisabled() {\r\n return this.submitting || !this.isValidUsername;\r\n },\r\n suggestedUsernames() {\r\n var _a;\r\n if (((_a = this.$store.state.currentChallenge.SuggestedUsernames) === null || _a === void 0 ? void 0 : _a.length) > 0)\r\n return this.$store.state.currentChallenge.SuggestedUsernames;\r\n return [];\r\n },\r\n showSuggestedUsernames() {\r\n return this.suggestedUsernames.length > 0;\r\n },\r\n hasExceededTries() {\r\n return this.$store.state.currentChallenge.HasExceededTries;\r\n },\r\n usernameSuggestionHeading() {\r\n if (this.hasExceededTries === true)\r\n return this.getSiteText('Registration.CreateUsername.Suggestions.Exceeded');\r\n return this.getSiteText('Registration.CreateUsername.Suggestions');\r\n },\r\n usernameRegex() {\r\n return new RegExp(this.$store.state.currentChallenge.UsernameRegex);\r\n },\r\n usernameMinLength() {\r\n return this.$store.state.currentChallenge.UsernameMinLength;\r\n },\r\n usernameMaxLength() {\r\n return this.$store.state.currentChallenge.UsernameMaxLength;\r\n },\r\n isValidUsername() {\r\n return this.username.length >= this.usernameMinLength && this.username.length <= this.usernameMaxLength\r\n && this.usernameRegex.test(this.username) && this.errors.length === 0;\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n validateBlur(ev) {\r\n const input = ev.target.value;\r\n this.validateUsername(input);\r\n },\r\n validateUsername(val) {\r\n // don't validate if the input is disabled\r\n if (this.hasExceededTries)\r\n return;\r\n this.username = '';\r\n if (val.length === 0) {\r\n this.errors = [this.getSiteText('Registration.CreateUsername.Input.Required')];\r\n return;\r\n }\r\n if (val.length < this.usernameMinLength || val.length > this.usernameMaxLength) {\r\n this.errors = [this.getSiteText('Registration.CreateUsername.Input.InvalidLength', this.usernameMinLength, this.usernameMaxLength)];\r\n return;\r\n }\r\n if (!this.usernameRegex.test(val)) {\r\n this.errors = [this.getSiteText('Registration.CreateUsername.Input.Invalid')];\r\n return;\r\n }\r\n this.username = val;\r\n this.errors = [];\r\n return true;\r\n },\r\n chooseUsername(val) {\r\n this.username = val;\r\n this.inputValue = val;\r\n this.errors = [];\r\n },\r\n async submitForm() {\r\n if (this.submitting) {\r\n return;\r\n }\r\n this.submitting = true;\r\n // store off whether the username is generated for telemetry purposes prior to submitting the request\r\n const triesExceeded = this.hasExceededTries;\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n this.$store.commit('setUserName', this.username);\r\n const challenge = {\r\n ...this.$store.state.currentChallenge,\r\n Username: this.username,\r\n };\r\n // submit the challenge\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n this.submitting = false;\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.create_username,\r\n action: userTelemetry_1.userAction.create_username_clicked,\r\n eventProperties: {\r\n 'isAvailable': this.$store.state.currentChallenge.IsAvailable === false ? false : true,\r\n 'usernameType': triesExceeded === true ? 'generated' : 'custom',\r\n },\r\n });\r\n if (this.$store.state.currentChallenge.IsAvailable === false)\r\n this.errors = [this.getSiteText('Registration.CreateUsername.Input.Unavailable')];\r\n },\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n IsotopeHeader: IsotopeHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Empty.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Empty.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'empty',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPassword.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'forgot-password',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPasswordChooseScenario.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPasswordChooseScenario.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChooseScenario_vue_1 = tslib_1.__importDefault(require(\"../confirmIdentity/ChooseScenario.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'forgot-password-choose-scenario',\r\n components: {\r\n ChooseScenario: ChooseScenario_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPasswordConfirmIdentity.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPasswordConfirmIdentity.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ConfirmIdentity_vue_1 = tslib_1.__importDefault(require(\"./ConfirmIdentity.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'forgot-password-confirm-identity',\r\n components: {\r\n ConfirmIdentity: ConfirmIdentity_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPasswordDisclosure.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPasswordDisclosure.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst Disclosure_vue_1 = tslib_1.__importDefault(require(\"../Disclosure.vue\"));\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nexports.default = vue_1.default.extend({\r\n name: 'forgot-password-disclosure',\r\n data: () => {\r\n return {\r\n disclosureAccepted: false,\r\n };\r\n },\r\n computed: {\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n canContinue() {\r\n return !this.disclosureAccepted;\r\n },\r\n disclosureContent() {\r\n return this.$store.state.currentChallenge.DisclosureContent || '';\r\n },\r\n disclosureID() {\r\n return this.$store.state.currentChallenge.DisclosureId || '';\r\n },\r\n doesDisclosureExists() {\r\n return this.disclosureContent !== '';\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge;\r\n },\r\n hasError() {\r\n return (this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Success &&\r\n this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Unknown);\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n async submitForm() {\r\n if (this.submitting || !this.disclosureAccepted) {\r\n return;\r\n }\r\n const challenge = {\r\n ...this.currentChallenge,\r\n DisclosureID: this.disclosureID,\r\n Accepted: this.disclosureAccepted,\r\n };\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n // submit the challenge\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n },\r\n toggleAccepted() {\r\n this.disclosureAccepted = !this.disclosureAccepted;\r\n },\r\n },\r\n mounted() {\r\n this.$refs.heading.focus();\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n Disclosure: Disclosure_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Disclosure.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Disclosure.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../mixins/siteText\"));\r\nconst ElementIds_1 = require(\"../enums/ElementIds\");\r\nconst userTelemetry_1 = require(\"../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'disclosure',\r\n props: {\r\n content: {\r\n type: String,\r\n required: true,\r\n },\r\n checkboxLabel: {\r\n type: String,\r\n required: true,\r\n },\r\n printLinkText: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n computed: {\r\n elementIds: () => ElementIds_1.ElementIds,\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n disclosurePrintLink() {\r\n return `/Content/Disclosures/Print?name=${this.$store.state.currentChallenge.DisclosureName}`;\r\n },\r\n },\r\n data: () => {\r\n return {\r\n disclosureAccepted: false,\r\n nearestQuarter: -1,\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n methods: {\r\n toggleAccepted(val) {\r\n this.disclosureAccepted = val;\r\n this.$emit('toggleDisclosureAccepted', val);\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.disclosure,\r\n action: userTelemetry_1.userAction.agree_clicked,\r\n eventProperties: {\r\n 'value': val,\r\n },\r\n });\r\n }\r\n },\r\n printClicked() {\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.disclosure,\r\n action: userTelemetry_1.userAction.print_pdf_clicked,\r\n });\r\n }\r\n },\r\n scrollDisclosure(event) {\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n const target = event.target;\r\n const scrollPercent = target.scrollTop / (target.scrollHeight - target.clientHeight);\r\n // rounded to nearest 25%\r\n const nearestQuarter = Math.round(Math.round(scrollPercent * 4) / 4 * 100);\r\n if (nearestQuarter > this.nearestQuarter) {\r\n this.nearestQuarter = nearestQuarter;\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.disclosure,\r\n action: userTelemetry_1.userAction.disclosure_scroll,\r\n eventProperties: {\r\n 'position': `${nearestQuarter}%`,\r\n },\r\n });\r\n }\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotUsername.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotUsername.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'forgot-username',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotUsernameChooseScenario.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotUsernameChooseScenario.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChooseScenario_vue_1 = tslib_1.__importDefault(require(\"../confirmIdentity/ChooseScenario.vue\"));\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nexports.default = vue_1.default.extend({\r\n name: 'forgot-username-choose-scenario',\r\n components: {\r\n ChooseScenario: ChooseScenario_vue_1.default,\r\n },\r\n computed: {\r\n elementIds: () => ElementIds_1.ElementIds,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotUsernameConfirmIdentity.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotUsernameConfirmIdentity.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ConfirmIdentity_vue_1 = tslib_1.__importDefault(require(\"./ConfirmIdentity.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'forgot-username-confirm-identity',\r\n components: {\r\n ConfirmIdentity: ConfirmIdentity_vue_1.default,\r\n },\r\n});\r\n","import { render, staticRenderFns } from \"./OneTimeCode.vue?vue&type=template&id=6413f83e&scoped=true&\"\nimport script from \"./OneTimeCode.vue?vue&type=script&lang=ts&\"\nexport * from \"./OneTimeCode.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OneTimeCode.vue?vue&type=style&index=0&id=6413f83e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6413f83e\",\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneTimeCode.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneTimeCode.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst ChallengeType_1 = require(\"../../enums/ChallengeType\");\r\nconst AuthenticationFactor_1 = require(\"../../enums/AuthenticationFactor\");\r\nconst SlideHeader_vue_1 = tslib_1.__importDefault(require(\"../SlideHeader.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'one-time-code',\r\n data: () => {\r\n return {\r\n oneTimeCode: '',\r\n resendingCode: false,\r\n navigatingBack: false,\r\n canResendCode: true,\r\n clearError: false,\r\n };\r\n },\r\n props: {},\r\n computed: {\r\n hasError() {\r\n return (!this.$data.clearError && this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Success &&\r\n this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Unknown);\r\n },\r\n errorText() {\r\n return this.getSiteText(`ChallengeStatus.${this.$store.state.challengeStatus}`);\r\n },\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n codeSentText() {\r\n const currentChallenge = this.$store.state.currentChallenge;\r\n let codeSentText = '';\r\n if (currentChallenge.AuthenticationFactorValue === AuthenticationFactor_1.AuthenticationFactor.EmailCode) {\r\n codeSentText = this.getSiteText('CodeStepup.Verify.Email.CodeSent', [\r\n currentChallenge.Destination.MaskedAddress.toLowerCase(),\r\n ]);\r\n }\r\n else if (currentChallenge.AuthenticationFactorValue === AuthenticationFactor_1.AuthenticationFactor.SmsCode ||\r\n currentChallenge.AuthenticationFactorValue === AuthenticationFactor_1.AuthenticationFactor.VoiceCode) {\r\n const lastDigits = currentChallenge.Destination.MaskedAddress.slice(-3);\r\n codeSentText = this.getSiteText('CodeStepup.Verify.Phone.CodeSent', [lastDigits]);\r\n }\r\n else if (currentChallenge.AuthenticationFactorValue === AuthenticationFactor_1.AuthenticationFactor.Unknown &&\r\n currentChallenge.Destination.MaskedAddress === 'Manual') {\r\n codeSentText = this.getSiteText('CodeStepup.Verify.ManualMfa.CodeSent');\r\n }\r\n return codeSentText;\r\n },\r\n resendButtonText() {\r\n if (this.isManualMfa) {\r\n return '';\r\n }\r\n return this.canResendCode ?\r\n this.getSiteText('CodeStepup.Verify.ResendCode') :\r\n this.getSiteText('CodeStepup.Verify.CodeSent');\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge || this.$store.getters.isSubmittingAuthenticatedModel;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n codeEntryHelperText() {\r\n if (this.isManualMfa) {\r\n return '';\r\n }\r\n const currentChallenge = this.$store.state.currentChallenge;\r\n return this.getSiteText('StepUp.OneTimeCode.DisplayInput.HelperText', [currentChallenge.MinutesToLive]);\r\n },\r\n isManualMfa() {\r\n const currentChallenge = this.$store.state.currentChallenge;\r\n if (currentChallenge.AuthenticationFactorValue === AuthenticationFactor_1.AuthenticationFactor.Unknown &&\r\n currentChallenge.Destination.MaskedAddress === 'Manual') {\r\n return true;\r\n }\r\n return false;\r\n },\r\n },\r\n mounted() {\r\n this.$el.querySelector('#txt_OTP').focus();\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n oneTimeCodeUpdated(value) {\r\n this.$data.oneTimeCode = value;\r\n },\r\n onFocus() {\r\n this.$data.clearError = true;\r\n },\r\n async submitForm() {\r\n if (this.submitting) {\r\n return;\r\n }\r\n this.$data.clearError = false;\r\n const challenge = {\r\n ...this.currentChallenge,\r\n ValidationKey: this.$data.oneTimeCode,\r\n // add remember device settings\r\n RememberDevice: this.$store.getters.rememberDevice,\r\n DeviceName: this.$store.getters.deviceName,\r\n };\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n // submit the challenge\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n // reset code if there are errors\r\n if (this.hasError) {\r\n this.oneTimeCodeUpdated('');\r\n }\r\n },\r\n async navigateBack() {\r\n if (this.navigatingBack) {\r\n return;\r\n }\r\n this.navigatingBack = true;\r\n this.oneTimeCode = '';\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n await this.$store.dispatch('goToPreviousChallenge');\r\n this.navigatingBack = false;\r\n },\r\n async resendCode() {\r\n if (this.resendingCode) {\r\n return;\r\n }\r\n this.resendingCode = true;\r\n const challenge = {\r\n ...this.currentChallenge,\r\n ChallengeTypeValue: ChallengeType_1.ChallengeType.OneTimeCodeDestination,\r\n };\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n this.resendingCode = false;\r\n // reset code after resending it, disable the resend button and create timer to enable it after 1 minute\r\n this.oneTimeCodeUpdated('');\r\n this.canResendCode = false;\r\n setTimeout(() => this.canResendCode = true, 60000);\r\n },\r\n },\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n SlideHeader: SlideHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneTimeCodeForgot.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneTimeCodeForgot.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst ChallengeType_1 = require(\"../../enums/ChallengeType\");\r\nconst AuthenticationFactor_1 = require(\"../../enums/AuthenticationFactor\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'one-time-code',\r\n data: () => {\r\n return {\r\n resendingCode: false,\r\n canResendCode: true,\r\n };\r\n },\r\n props: {\r\n authenticationFactor: {\r\n type: String,\r\n required: true,\r\n },\r\n oneTimeCode: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n computed: {\r\n tokenLength() {\r\n if (this.authenticationFactor === AuthenticationFactor_1.AuthenticationFactor.Token)\r\n return 8;\r\n return 6;\r\n },\r\n subHeadingText() {\r\n let type = '';\r\n let replace = [];\r\n switch (this.authenticationFactor) {\r\n case AuthenticationFactor_1.AuthenticationFactor.SmsCode:\r\n case AuthenticationFactor_1.AuthenticationFactor.VoiceCode:\r\n type = 'Phone';\r\n replace = [this.currentChallenge.Destination.MaskedAddress];\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.EmailCode:\r\n type = 'Email';\r\n replace = [this.currentChallenge.Destination.MaskedAddress];\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.Token:\r\n type = 'Token';\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.TOTP:\r\n type = 'TOTP';\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.Unknown:\r\n type = 'Unknown';\r\n break;\r\n }\r\n return this.getSiteText(`Forgot.VerificationCode.SubHeading.${type}`, replace);\r\n },\r\n actionText() {\r\n return this.isMobile ? '' : this.getSiteText('Forgot.VerificationCode.EnterCode');\r\n },\r\n hasError() {\r\n return (this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Success &&\r\n this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Unknown);\r\n },\r\n errorText() {\r\n return this.getSiteText(`ChallengeStatus.${this.$store.state.challengeStatus}`);\r\n },\r\n inputHelperText() {\r\n let type = '';\r\n let replace = [];\r\n switch (this.authenticationFactor) {\r\n case AuthenticationFactor_1.AuthenticationFactor.SmsCode:\r\n case AuthenticationFactor_1.AuthenticationFactor.VoiceCode:\r\n case AuthenticationFactor_1.AuthenticationFactor.EmailCode:\r\n type = 'Expiration';\r\n replace = [this.currentChallenge.MinutesToLive.toString()];\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.Token:\r\n type = 'Token';\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.TOTP:\r\n type = 'TOTP';\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.Unknown:\r\n type = 'Unknown';\r\n break;\r\n }\r\n return this.getSiteText(`Forgot.VerificationCode.HelperText.${type}`, replace);\r\n },\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n displayResendCode() {\r\n switch (this.authenticationFactor) {\r\n case AuthenticationFactor_1.AuthenticationFactor.SmsCode:\r\n case AuthenticationFactor_1.AuthenticationFactor.VoiceCode:\r\n case AuthenticationFactor_1.AuthenticationFactor.EmailCode:\r\n return true;\r\n }\r\n return false;\r\n },\r\n resendButtonText() {\r\n return this.canResendCode ?\r\n this.getSiteText('Forgot.VerificationCode.ResendCode') :\r\n this.getSiteText('Forgot.VerificationCode.CodeSent');\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n authenticatedModel() {\r\n return this.$store.getters.authenticatedModel;\r\n },\r\n isSyncing() {\r\n return this.$store.getters.isSyncing;\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n oneTimeCodeUpdated(value) {\r\n // Clear any errors when user starts typing in a new code\r\n if (this.hasError)\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n this.$emit('code-entered', {\r\n valid: value.length === this.tokenLength,\r\n code: value,\r\n });\r\n },\r\n async resendCode() {\r\n if (this.resendingCode) {\r\n return;\r\n }\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.verification_code,\r\n action: userTelemetry_1.userAction.resend_code_clicked,\r\n });\r\n }\r\n this.resendingCode = true;\r\n // update is resending OTP property\r\n this.$store.commit('setIsResendingOTP', this.resendingCode);\r\n const challenge = {\r\n ...this.currentChallenge,\r\n ChallengeTypeValue: ChallengeType_1.ChallengeType.OneTimeCodeDestination,\r\n };\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n this.resendingCode = false;\r\n // update after code is sent\r\n this.$store.commit('setIsResendingOTP', this.resendingCode);\r\n // reset code after resending it, disable the resend button and create timer to enable it after 1 minute\r\n this.oneTimeCodeUpdated('');\r\n this.canResendCode = false;\r\n setTimeout(() => this.canResendCode = true, 60000);\r\n },\r\n changeMethod() {\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.verification_code,\r\n action: userTelemetry_1.userAction.change_method_clicked,\r\n });\r\n }\r\n // switch the challengeStatus to unknown to clear any OTP failed message when changing method\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n this.$emit('change-stepup-method');\r\n },\r\n },\r\n watch: {\r\n async isSyncing() {\r\n while (this.$store.getters.isSyncing && !this.authenticatedModel.username.length) {\r\n const challenge = {\r\n ...this.$store.getters.checkSyncResultChallenge,\r\n };\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n await new Promise((r) => setTimeout(r, 1000));\r\n }\r\n },\r\n authenticatedModel(newAuthenticatedModel) {\r\n if (newAuthenticatedModel && typeof newAuthenticatedModel.username == 'string' && typeof newAuthenticatedModel.nonce == 'string') {\r\n this.$nextTick(() => {\r\n const formElement = document.querySelector('#form_authenticated');\r\n if (formElement) {\r\n this.$store.commit('setIsSubmittingAuthenticatedModel', true);\r\n formElement.submit();\r\n }\r\n });\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneTimeCodeForgotContainer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneTimeCodeForgotContainer.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst OneTimeCodeForgot_vue_1 = tslib_1.__importDefault(require(\"./OneTimeCodeForgot.vue\"));\r\nconst IsotopeHeader_vue_1 = tslib_1.__importDefault(require(\"../IsotopeHeader.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'one-time-code-container',\r\n data: () => {\r\n return {\r\n oneTimeCode: '',\r\n valid: false,\r\n isSubmitting: false,\r\n navigatingBack: false,\r\n };\r\n },\r\n computed: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n actionText() {\r\n return this.getSiteText('Forgot.VerificationCode.EnterCode');\r\n },\r\n hasError() {\r\n return (this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Success &&\r\n this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Unknown);\r\n },\r\n errorText() {\r\n return this.getSiteText(`ChallengeStatus.${this.$store.state.challengeStatus}`);\r\n },\r\n buttonText() {\r\n var _a;\r\n return (_a = this.$options.filters) === null || _a === void 0 ? void 0 : _a.sitetext('Forgot.VerificationCode.Verify');\r\n },\r\n buttonDisabled() {\r\n return !this.valid;\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n scenarioType() {\r\n if (this.$store.getters.isForgotUsernameWorkflow)\r\n return 'ForgotUsername';\r\n if (this.$store.getters.isForgotPasswordWorkflow)\r\n return 'ForgotPassword';\r\n return 'Registration';\r\n },\r\n isSyncing() {\r\n return this.$store.getters.isSyncing;\r\n },\r\n isLoading() {\r\n return this.isSubmitting || this.isSyncing || this.$store.getters.isSubmittingAuthenticatedModel;\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n async submitForm() {\r\n if (this.isSubmitting || !this.valid) {\r\n return;\r\n }\r\n let challenge = {\r\n ...this.currentChallenge,\r\n ValidationKey: this.oneTimeCode,\r\n };\r\n // set the state to remain on the same screen for invalid code\r\n this.$store.commit('setRemainOnStepUpScreenOnFailure', true);\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n this.isSubmitting = true;\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n this.isSubmitting = false;\r\n // reset code if there are errors\r\n if (this.hasError) {\r\n this.oneTimeCode = '';\r\n }\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n let event = {\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.verification_code,\r\n action: userTelemetry_1.userAction.continue_clicked,\r\n };\r\n if (this.hasError) {\r\n event.eventProperties = {\r\n 'error': this.$store.state.challengeStatus,\r\n };\r\n }\r\n void userTelemetry_1.telemetry.custom(event);\r\n }\r\n },\r\n async changeStepupMethod() {\r\n // Switching back from OTP input to method selection\r\n if (this.navigatingBack) {\r\n return;\r\n }\r\n this.navigatingBack = true;\r\n this.oneTimeCode = '';\r\n await this.$store.dispatch('goToPreviousChallenge');\r\n this.navigatingBack = false;\r\n },\r\n otpCodeEntered({ valid, code }) {\r\n this.valid = valid;\r\n this.oneTimeCode = code;\r\n },\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n OneTimeCode: OneTimeCodeForgot_vue_1.default,\r\n IsotopeHeader: IsotopeHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionsAndAnswers.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionsAndAnswers.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'questions-and-answers',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegistrationDisclosure.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegistrationDisclosure.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst Disclosure_vue_1 = tslib_1.__importDefault(require(\"../Disclosure.vue\"));\r\nconst IsotopeHeader_vue_1 = tslib_1.__importDefault(require(\"../IsotopeHeader.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'registration-disclosure',\r\n props: {},\r\n data: () => {\r\n return {\r\n disclosureAccepted: false,\r\n userPdfCode: '',\r\n };\r\n },\r\n computed: {\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n canContinue() {\r\n // we can continue once the disclosure is accepted and the pdf code is entered (or if the pdf is disabled)\r\n return this.disclosureAccepted && (this.userPdfCode !== '' || !this.pdfEnabled);\r\n },\r\n disclosureContent() {\r\n return this.$store.state.currentChallenge.DisclosureContent || '';\r\n },\r\n disclosureID() {\r\n return this.$store.state.currentChallenge.DisclosureId || '';\r\n },\r\n doesDisclosureExists() {\r\n return this.disclosureContent !== '';\r\n },\r\n htmlBeforeDisclosure() {\r\n const bankName = this.$store.state.configuration.bankName;\r\n const isBusiness = this.$store.state.currentChallenge.IsBusiness;\r\n const siteTextName = `Registration.Disclosure.HtmlBefore${isBusiness ? 'Business' : ''}RegistrationDisclosure`;\r\n return this.getSiteText(siteTextName, bankName);\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge;\r\n },\r\n pdfUrl() {\r\n return this.$store.state.configuration.pdfDisclosureLocation;\r\n },\r\n hasError() {\r\n return (this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Success &&\r\n this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Unknown);\r\n },\r\n pdfCodeErrorMessages() {\r\n const errors = this.$store.state.errors;\r\n if (errors.some(er => er.CustomSubCode === 'BAD_CODE')) {\r\n return [this.getSiteText('Registration.PDF.Error')];\r\n }\r\n return [];\r\n },\r\n pdfEnabled() {\r\n return this.$store.state.currentChallenge.ShouldCheckPdf && !!this.$store.state.configuration.pdfDisclosureLocation;\r\n },\r\n isCypress() {\r\n return this.$store.state.isCypress;\r\n },\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n async submitForm() {\r\n if (this.submitting || !this.disclosureAccepted) {\r\n return;\r\n }\r\n const challenge = {\r\n ...this.currentChallenge,\r\n DisclosureID: this.disclosureID,\r\n Accepted: this.disclosureAccepted,\r\n UserSubmittedPdfCode: this.userPdfCode,\r\n };\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.disclosure,\r\n action: userTelemetry_1.userAction.continue_clicked,\r\n });\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n // submit the challenge\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n },\r\n toggleAccepted(val) {\r\n this.disclosureAccepted = val;\r\n },\r\n handleTextfieldFocus(event) {\r\n if (this.isMobile) {\r\n const currentScrollPosition = window.screenY || window.pageYOffset;\r\n const targetField = event.target;\r\n const textFieldPosition = targetField.getBoundingClientRect().top;\r\n window.scrollTo({\r\n top: currentScrollPosition + textFieldPosition,\r\n behavior: 'smooth',\r\n });\r\n }\r\n },\r\n PDFOpen() {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.disclosure,\r\n action: userTelemetry_1.userAction.open_pdf_clicked,\r\n });\r\n if (this.isCypress)\r\n return;\r\n window.open(this.pdfUrl, '_blank');\r\n },\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n Disclosure: Disclosure_vue_1.default,\r\n IsotopeHeader: IsotopeHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResetPassword.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'reset-password',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartForgotPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartForgotPassword.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'start-forget-password',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartForgotUsername.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartForgotUsername.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'start-forgot-username',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartRegistration.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartRegistration.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'start-registration',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepUp.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepUp.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst AuthenticationFactor_1 = require(\"../../enums/AuthenticationFactor\");\r\nconst stepup_1 = tslib_1.__importDefault(require(\"../stepup\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst SlideHeader_vue_1 = tslib_1.__importDefault(require(\"../SlideHeader.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'step-up',\r\n props: {},\r\n data: () => {\r\n return {\r\n selectedStepUpCategoryId: null,\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n stepUpCategories() {\r\n const categories = this.$store.state.currentChallenge.StepUpCategories || [];\r\n const displayCategories = categories\r\n .filter(category => category.StepUpModel.AuthenticationFactorValue !== 'Unknown');\r\n return displayCategories;\r\n },\r\n selectedStepUpCategory: {\r\n get() {\r\n const id = this.selectedStepUpCategoryId;\r\n return this.stepUpCategories.find((category) => category.$id === id) || this.stepUpCategories[0];\r\n },\r\n set(category) {\r\n this.selectedStepUpCategoryId = category.$id;\r\n },\r\n },\r\n authenticationFactorMetaData() {\r\n const getMetaData = (type) => {\r\n switch (type) {\r\n case AuthenticationFactor_1.AuthenticationFactor.SmsCode:\r\n return {\r\n icon: 'mobile-sms',\r\n label: this.getSiteText('Stepup.Icon.Label.SMS'),\r\n };\r\n case AuthenticationFactor_1.AuthenticationFactor.EmailCode:\r\n return {\r\n icon: 'email-alt',\r\n label: this.getSiteText('Stepup.Icon.Label.EmailCode'),\r\n };\r\n case AuthenticationFactor_1.AuthenticationFactor.VoiceCode:\r\n return {\r\n icon: 'receive-call',\r\n label: this.getSiteText('Stepup.Icon.Label.VoiceCode'),\r\n };\r\n case AuthenticationFactor_1.AuthenticationFactor.TOTP:\r\n return {\r\n icon: 'phone2',\r\n label: this.getSiteText('Stepup.Icon.Label.TOTP'),\r\n };\r\n case AuthenticationFactor_1.AuthenticationFactor.Token:\r\n return {\r\n icon: 'lock',\r\n label: this.getSiteText('Stepup.Icon.Label.Token'),\r\n };\r\n default:\r\n return {\r\n icon: 'cut-out',\r\n label: this.getSiteText('Stepup.Icon.Label.Unknown'),\r\n };\r\n }\r\n };\r\n const metadata = {};\r\n this.stepUpCategories.forEach((category) => {\r\n metadata[category.StepUpModel.AuthenticationFactorValue] = getMetaData(category.StepUpModel.AuthenticationFactorValue);\r\n });\r\n return metadata;\r\n },\r\n manualMfaEnabled() {\r\n const categories = this.$store.state.currentChallenge.StepUpCategories || [];\r\n const selectedCategory = categories\r\n .find(category => category.StepUpModel.AuthenticationFactorValue === 'Unknown');\r\n const manualDestination = selectedCategory === null || selectedCategory === void 0 ? void 0 : selectedCategory.StepUpModel.Destinations.find(x => x.MaskedAddress === 'Manual');\r\n if (manualDestination !== undefined) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n },\r\n methods: {\r\n categoryChanged(selectedCategory) {\r\n this.selectedStepUpCategory = selectedCategory;\r\n this.$store.commit('setRememberDevice', false);\r\n this.$store.commit('setDeviceName', '');\r\n },\r\n async submitManualMfa() {\r\n if (this.manualMfaEnabled) {\r\n const categories = this.$store.state.currentChallenge.StepUpCategories || [];\r\n const selectedCategory = categories\r\n .find(category => category.StepUpModel.AuthenticationFactorValue === 'Unknown');\r\n const challenge = {\r\n ...selectedCategory === null || selectedCategory === void 0 ? void 0 : selectedCategory.NextChallenge,\r\n Destination: { ...selectedCategory === null || selectedCategory === void 0 ? void 0 : selectedCategory.StepUpModel.Destinations.find(x => x.MaskedAddress === 'Manual') },\r\n };\r\n await this.$store\r\n .dispatch('submitChallenge', {\r\n ...challenge,\r\n Destination: { ...selectedCategory === null || selectedCategory === void 0 ? void 0 : selectedCategory.StepUpModel.Destinations.find(x => x.MaskedAddress === 'Manual') },\r\n });\r\n }\r\n },\r\n },\r\n mounted() {\r\n this.selectedStepUpCategory = this.stepUpCategories[0];\r\n },\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n ...stepup_1.default,\r\n SlideHeader: SlideHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Biometric.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Biometric.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'biometric',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailCode.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EmailCode.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst CodeStepup_vue_1 = tslib_1.__importDefault(require(\"../CodeStepup.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'email-code',\r\n props: {\r\n stepUpCategory: {\r\n type: Object,\r\n required: true,\r\n },\r\n },\r\n computed: {},\r\n methods: {},\r\n components: {\r\n CodeStepup: CodeStepup_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeStepup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeStepup.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"./Slide.vue\"));\r\nconst RememberDevice_vue_1 = tslib_1.__importDefault(require(\"./RememberDevice.vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../filters/sitetext\");\r\nconst SlideHeader_vue_1 = tslib_1.__importDefault(require(\"./SlideHeader.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'code-stepup',\r\n props: {\r\n stepUpCategory: {\r\n type: Object,\r\n required: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n selectedDestinationId: null,\r\n navigatingBack: false,\r\n header: '',\r\n subtitle: '',\r\n isSubmitting: false,\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n destinations() {\r\n return this.stepUpCategory.StepUpModel.Destinations;\r\n },\r\n selectedDestination: {\r\n get() {\r\n const id = this.selectedDestinationId;\r\n return this.destinations.find((destination) => destination.$id === id) || this.destinations[0];\r\n },\r\n set(destination) {\r\n this.selectedDestinationId = destination.$id;\r\n },\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n hasServerError() {\r\n return this.$store.state.errors.length > 0;\r\n },\r\n ariaDescriptionId() {\r\n return `destinationDescription${this.stepUpCategory.StepUpModel.AuthenticationFactorValue}`;\r\n },\r\n },\r\n methods: {\r\n async sendCode() {\r\n if (this.isSubmitting) {\r\n return;\r\n }\r\n this.isSubmitting = true;\r\n await this.$store\r\n .dispatch('submitChallenge', {\r\n ...this.stepUpCategory.NextChallenge,\r\n Destination: { ...this.selectedDestination },\r\n });\r\n this.isSubmitting = false;\r\n },\r\n async navigateBack() {\r\n if (this.navigatingBack) {\r\n return;\r\n }\r\n this.navigatingBack = true;\r\n this.selectedDestinationId = null;\r\n await this.$store.dispatch('goToPreviousChallenge');\r\n this.navigatingBack = false;\r\n },\r\n changeDestinationSelection(newDestinationId) {\r\n this.selectedDestinationId = newDestinationId;\r\n },\r\n },\r\n mounted() {\r\n if (this.destinations.length > 0) {\r\n this.selectedDestination = this.destinations[0];\r\n }\r\n },\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n RememberDevice: RememberDevice_vue_1.default,\r\n SlideHeader: SlideHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RememberDevice.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RememberDevice.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../filters/sitetext\");\r\nconst ChallengeStatus_1 = require(\"../enums/ChallengeStatus\");\r\nexports.default = vue_1.default.extend({\r\n name: 'remember-device',\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n toggleRememberStatus() {\r\n this.rememberDevice = !this.rememberDevice;\r\n },\r\n },\r\n computed: {\r\n hasError() {\r\n return this.$store.getters.challengeStatus === ChallengeStatus_1.ChallengeStatus.DeviceNameAlreadyExists ? true : false;\r\n },\r\n errorText() {\r\n return this.$store.getters.challengeStatus === ChallengeStatus_1.ChallengeStatus.DeviceNameAlreadyExists ? this.getSiteText('RDM.DeviceAlreadyExists') : '';\r\n },\r\n canRememberDevice() {\r\n return this.$store.getters.canRememberDevice;\r\n },\r\n rememberDevice: {\r\n get() {\r\n return this.$store.getters.rememberDevice;\r\n },\r\n set(newValue) {\r\n this.$store.commit('setRememberDevice', newValue);\r\n },\r\n },\r\n deviceName: {\r\n get() {\r\n return this.$store.getters.deviceName;\r\n },\r\n set(newValue) {\r\n this.$store.commit('setDeviceName', newValue);\r\n },\r\n },\r\n showMandatory2faMessage() {\r\n return !this.$store.getters.canRememberDevice && this.$store.getters.isStepUpMandatory;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PushNotification.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PushNotification.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'push-notification',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionsAndAnswers.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./QuestionsAndAnswers.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'questions-and-answers',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmsCode.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmsCode.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst CodeStepup_vue_1 = tslib_1.__importDefault(require(\"../CodeStepup.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'sms-code',\r\n props: {\r\n stepUpCategory: {\r\n type: Object,\r\n required: true,\r\n },\r\n },\r\n computed: {},\r\n methods: {},\r\n components: {\r\n CodeStepup: CodeStepup_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepUpOption.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepUpOption.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst AuthenticationFactor_1 = require(\"../../enums/AuthenticationFactor\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nexports.default = vue_1.default.extend({\r\n name: 'step-up-option',\r\n props: {\r\n stepUpCategory: {\r\n type: Object,\r\n required: true,\r\n },\r\n isSelectedCategory: {\r\n type: Boolean,\r\n required: true,\r\n default: false,\r\n },\r\n },\r\n data: () => {\r\n return {\r\n internalSelectedDestination: null,\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n stepUpType() {\r\n return this.stepUpCategory.StepUpModel.AuthenticationFactorValue;\r\n },\r\n showDropdown() {\r\n var _a;\r\n return this.isSelectedCategory && ((_a = this.stepUpCategory.StepUpModel.Destinations) === null || _a === void 0 ? void 0 : _a.length) > 0;\r\n },\r\n getStrings() {\r\n return {\r\n label: this.getText('Dropdown.Label'),\r\n };\r\n },\r\n getItems() {\r\n let items = [];\r\n this.stepUpCategory.StepUpModel.Destinations.forEach((destination) => {\r\n items.push({\r\n label: destination.MaskedAddress,\r\n value: destination.$id,\r\n });\r\n });\r\n return items;\r\n },\r\n selectedDestination: {\r\n get() {\r\n var _a;\r\n const id = (_a = this.internalSelectedDestination) === null || _a === void 0 ? void 0 : _a.$id;\r\n if (!id)\r\n return [];\r\n const destination = this.stepUpCategory.StepUpModel.Destinations.find(dest => dest.$id === id);\r\n if (!destination)\r\n return [];\r\n return [destination.$id];\r\n },\r\n set(destinationId) {\r\n const destination = this.stepUpCategory.StepUpModel.Destinations.find(dest => dest.$id === destinationId[0]);\r\n this.internalSelectedDestination = destination ? destination : null;\r\n this.$emit('stepup-destination-selected', this.internalSelectedDestination);\r\n },\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n },\r\n methods: {\r\n buttonChanged() {\r\n this.$emit('stepup-option-selected', this.stepUpCategory);\r\n this.$emit('stepup-destination-selected', this.internalSelectedDestination);\r\n },\r\n getText(resource) {\r\n let type = '';\r\n switch (this.stepUpCategory.StepUpModel.AuthenticationFactorValue) {\r\n case AuthenticationFactor_1.AuthenticationFactor.SmsCode:\r\n type = 'SMS';\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.EmailCode:\r\n type = 'Email';\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.VoiceCode:\r\n type = 'VoiceCall';\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.Token:\r\n type = 'Token';\r\n break;\r\n case AuthenticationFactor_1.AuthenticationFactor.TOTP:\r\n type = 'TOTP';\r\n break;\r\n }\r\n return this.getSiteText(`Forgot.${type}.${resource}`);\r\n },\r\n },\r\n mounted() {\r\n var _a;\r\n if (((_a = this.stepUpCategory.StepUpModel.Destinations) === null || _a === void 0 ? void 0 : _a.length) > 0) {\r\n this.internalSelectedDestination = this.stepUpCategory.StepUpModel.Destinations[0];\r\n }\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TOTP.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TOTP.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst TokenStepup_vue_1 = tslib_1.__importDefault(require(\"../TokenStepup.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'totp',\r\n props: {\r\n stepUpCategory: {\r\n type: Object,\r\n required: true,\r\n },\r\n },\r\n computed: {},\r\n methods: {},\r\n components: {\r\n TokenStepup: TokenStepup_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TokenStepup.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TokenStepup.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"./Slide.vue\"));\r\nconst RememberDevice_vue_1 = tslib_1.__importDefault(require(\"./RememberDevice.vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../mixins/siteText\"));\r\nconst AuthenticationFactor_1 = require(\"../enums/AuthenticationFactor\");\r\nconst ChallengeStatus_1 = require(\"../enums/ChallengeStatus\");\r\nconst ChallengeType_1 = require(\"../enums/ChallengeType\");\r\nconst sitetext_1 = require(\"../filters/sitetext\");\r\nconst SlideHeader_vue_1 = tslib_1.__importDefault(require(\"./SlideHeader.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'token-stepup',\r\n props: {\r\n stepUpCategory: {\r\n type: Object,\r\n required: true,\r\n },\r\n tokenLength: {\r\n type: Number,\r\n required: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n tokenCode: '',\r\n isNavigatingBack: false,\r\n header: '',\r\n subtitle: '',\r\n clearError: false,\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n hasError() {\r\n return (!this.$data.clearError && this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Success &&\r\n this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Unknown);\r\n },\r\n errorText() {\r\n return this.getSiteText(`ChallengeStatus.${this.$store.state.challengeStatus}`);\r\n },\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n inputHelperText() {\r\n const currentAuthenticationFactorValue = this.stepUpCategory.StepUpModel.AuthenticationFactorValue;\r\n let helperText = '';\r\n if (currentAuthenticationFactorValue === AuthenticationFactor_1.AuthenticationFactor.TOTP) {\r\n helperText = this.getSiteText('StepUp.TOTP.DisplayInput.HelperText');\r\n }\r\n else if (currentAuthenticationFactorValue === AuthenticationFactor_1.AuthenticationFactor.Token) {\r\n helperText = this.getSiteText('StepUp.Token.DisplayInput.HelperText');\r\n }\r\n return helperText;\r\n },\r\n isTOTP() {\r\n return this.stepUpCategory.StepUpModel.AuthenticationFactorValue === AuthenticationFactor_1.AuthenticationFactor.TOTP;\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n elementId() {\r\n return this.isTOTP ? 'txt_TOTP' : 'txt_Token';\r\n },\r\n hasServerError() {\r\n return this.$store.state.errors.length > 0;\r\n },\r\n },\r\n methods: {\r\n tokenCodeUpdated(value) {\r\n this.$data.tokenCode = value;\r\n },\r\n onFocus() {\r\n this.$data.clearError = true;\r\n },\r\n async navigateBack() {\r\n if (this.isNavigatingBack) {\r\n return;\r\n }\r\n this.isNavigatingBack = true;\r\n await this.$store.dispatch('goToPreviousChallenge');\r\n this.isNavigatingBack = false;\r\n },\r\n async verifyCode() {\r\n if (this.submitting) {\r\n return;\r\n }\r\n this.$data.clearError = false;\r\n const challenge = {\r\n ...this.currentChallenge,\r\n ValidationKey: this.$data.tokenCode,\r\n AuthenticationFactorValue: this.isTOTP ? AuthenticationFactor_1.AuthenticationFactor.TOTP : AuthenticationFactor_1.AuthenticationFactor.Token,\r\n // add remember device settings\r\n RememberDevice: this.$store.getters.rememberDevice,\r\n DeviceName: this.$store.getters.deviceName,\r\n };\r\n challenge.ProviderId = this.stepUpCategory.NextChallenge.ProviderId;\r\n challenge.ChallengeTypeValue = ChallengeType_1.ChallengeType.OneTimeCode;\r\n // set the state to remain on the same screen for invalid code\r\n this.$store.commit('setRemainOnStepUpScreenOnFailure', true);\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n // clear the code if error\r\n if (this.hasError) {\r\n this.tokenCodeUpdated('');\r\n }\r\n },\r\n },\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n RememberDevice: RememberDevice_vue_1.default,\r\n SlideHeader: SlideHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Token.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Token.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst TokenStepup_vue_1 = tslib_1.__importDefault(require(\"../TokenStepup.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'token',\r\n props: {\r\n stepUpCategory: {\r\n type: Object,\r\n required: true,\r\n },\r\n },\r\n computed: {},\r\n methods: {},\r\n components: {\r\n TokenStepup: TokenStepup_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Unknown.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Unknown.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'unknown-stepup',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VoiceCode.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VoiceCode.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst CodeStepup_vue_1 = tslib_1.__importDefault(require(\"../CodeStepup.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'voice-code',\r\n props: {\r\n stepUpCategory: {\r\n type: Object,\r\n required: true,\r\n },\r\n },\r\n computed: {},\r\n methods: {},\r\n components: {\r\n CodeStepup: CodeStepup_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VoicePrompt.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VoicePrompt.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'voice-prompt',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WebAuthn.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WebAuthn.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'web-authn',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepUpForgot.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StepUpForgot.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst ChallengeType_1 = require(\"../../enums/ChallengeType\");\r\nconst AuthenticationFactor_1 = require(\"../../enums/AuthenticationFactor\");\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst OneTimeCodeForgot_vue_1 = tslib_1.__importDefault(require(\"./OneTimeCodeForgot.vue\"));\r\nconst IsotopeHeader_vue_1 = tslib_1.__importDefault(require(\"../IsotopeHeader.vue\"));\r\nconst StepUpOption_vue_1 = tslib_1.__importDefault(require(\"../stepup/StepUpOption.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'step-up',\r\n props: {},\r\n data: () => {\r\n return {\r\n selectedCategory: null,\r\n selectedDestination: null,\r\n isSubmitting: false,\r\n tokenTOTP: {\r\n show: false,\r\n valid: false,\r\n code: '',\r\n },\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n stepUpChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n scenarioType() {\r\n if (this.$store.getters.isForgotUsernameWorkflow)\r\n return 'ForgotUsername';\r\n if (this.$store.getters.isForgotPasswordWorkflow)\r\n return 'ForgotPassword';\r\n return 'Registration';\r\n },\r\n headerText() {\r\n let siteTextKey = !this.tokenTOTP.show ? `${this.scenarioType}.StepUp.Heading` : `${this.scenarioType}.VerificationCode.Heading`;\r\n return siteTextKey;\r\n },\r\n stepUpCategories() {\r\n const categories = this.stepUpChallenge.StepUpCategories || [];\r\n const displayCategories = categories\r\n .filter(category => category.StepUpModel.AuthenticationFactorValue !== 'Unknown');\r\n return displayCategories;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n buttonDisabled() {\r\n if (this.isSubmitting || !this.selectedCategory)\r\n return true;\r\n if (!this.tokenTOTP.show) {\r\n switch (this.selectedCategory.StepUpModel.AuthenticationFactorValue) {\r\n case AuthenticationFactor_1.AuthenticationFactor.Token:\r\n case AuthenticationFactor_1.AuthenticationFactor.TOTP:\r\n return false;\r\n }\r\n if (this.selectedDestination === null)\r\n return true;\r\n }\r\n else {\r\n // Code to disable the continue button on the TOTP/Token screen\r\n return !this.tokenTOTP.valid;\r\n }\r\n return false;\r\n },\r\n buttonText() {\r\n var _a, _b;\r\n if (!this.tokenTOTP.show) {\r\n return (_a = this.$options.filters) === null || _a === void 0 ? void 0 : _a.sitetext('ForgotWorkflow.ActionButtonText');\r\n }\r\n return (_b = this.$options.filters) === null || _b === void 0 ? void 0 : _b.sitetext('Forgot.VerificationCode.Verify');\r\n },\r\n hasError() {\r\n return (this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Success &&\r\n this.$store.state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Unknown);\r\n },\r\n isSyncing() {\r\n return this.$store.getters.isSyncing;\r\n },\r\n isRedirecting() {\r\n const authModel = this.$store.getters.authenticatedModel;\r\n if (!authModel || authModel.username.length === 0 || authModel.nonce.length === 0)\r\n return false;\r\n return true;\r\n },\r\n isLoading() {\r\n return this.isSubmitting || this.isSyncing || this.isRedirecting;\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n buttonID() {\r\n if (!this.tokenTOTP.show) {\r\n return this.elementIds.StepUpContinue;\r\n }\r\n return this.elementIds.OTPVerify;\r\n },\r\n showManualGeneratedMFA() {\r\n const categories = this.$store.state.currentChallenge.StepUpCategories || [];\r\n const selectedCategory = categories\r\n .find(category => category.StepUpModel.AuthenticationFactorValue === 'Unknown');\r\n const manualDestination = selectedCategory === null || selectedCategory === void 0 ? void 0 : selectedCategory.StepUpModel.Destinations.find(x => x.MaskedAddress === 'Manual');\r\n if (manualDestination !== undefined) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n },\r\n methods: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n isSelectedCategory(id) {\r\n if (!this.selectedCategory || this.selectedCategory.$id !== id)\r\n return false;\r\n return true;\r\n },\r\n stepupCategorySelected(category) {\r\n this.selectedCategory = category;\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n const verificationType = category.StepUpModel.AuthenticationFactorValue.toLowerCase().replace('code', '');\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.verify_your_identity,\r\n action: userTelemetry_1.userAction.verification_type_chosen,\r\n eventProperties: {\r\n verificationType,\r\n },\r\n });\r\n }\r\n },\r\n stepupDestinationSelected(destination) {\r\n this.selectedDestination = destination;\r\n },\r\n async submitForm() {\r\n if (this.isSubmitting || !this.selectedCategory) {\r\n return;\r\n }\r\n const workflow = (0, userTelemetry_1.getWorkflowName)(this.$store.getters.workflow);\r\n if (workflow !== userTelemetry_1.workflowName.unknown) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: workflow,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.verify_your_identity,\r\n action: userTelemetry_1.userAction.continue_clicked,\r\n });\r\n }\r\n let challenge;\r\n switch (this.selectedCategory.StepUpModel.AuthenticationFactorValue) {\r\n case AuthenticationFactor_1.AuthenticationFactor.Token:\r\n case AuthenticationFactor_1.AuthenticationFactor.TOTP:\r\n if (!this.tokenTOTP.show) {\r\n // update steps\r\n if (this.$store.getters.currentWorkflowMaxSteps > 0 &&\r\n this.$store.getters.currentWorkflowStep < this.$store.getters.currentWorkflowMaxSteps) {\r\n const nextStepNum = this.$store.getters.currentWorkflowStep;\r\n this.$store.commit('setCurrentWorkflowStep', nextStepNum + 1);\r\n }\r\n // switch to show the token/totp code input\r\n this.tokenTOTP.show = true;\r\n // Focus the updated heading for accessibility\r\n this.$refs.heading.focus();\r\n return;\r\n }\r\n // submit the token/totp challenge\r\n challenge = {\r\n ...this.stepUpChallenge,\r\n ValidationKey: this.tokenTOTP.code,\r\n AuthenticationFactorValue: this.selectedCategory.StepUpModel.AuthenticationFactorValue,\r\n ProviderId: this.selectedCategory.NextChallenge.ProviderId,\r\n ChallengeTypeValue: ChallengeType_1.ChallengeType.OneTimeCode,\r\n };\r\n // set the state to remain on the same screen for invalid code\r\n this.$store.commit('setRemainOnStepUpScreenOnFailure', true);\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n break;\r\n default:\r\n challenge = {\r\n ...this.selectedCategory.NextChallenge,\r\n Destination: { ...this.selectedDestination },\r\n };\r\n break;\r\n }\r\n // Everything else sends to the backend to send the OTP code\r\n this.isSubmitting = true;\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n this.isSubmitting = false;\r\n // reset code if there are errors\r\n if (this.hasError) {\r\n this.tokenTOTP.code = '';\r\n }\r\n },\r\n changeStepupMethod() {\r\n // Update the steps\r\n if (this.$store.getters.currentWorkflowMaxSteps > 0) {\r\n const previousStepNum = this.$store.getters.currentWorkflowStep - 1;\r\n this.$store.commit('setCurrentWorkflowStep', previousStepNum);\r\n }\r\n // Switching back from TOTP/Token input to method selection\r\n this.tokenTOTP = {\r\n show: false,\r\n valid: false,\r\n code: '',\r\n };\r\n // Focus the heading for accessibility\r\n this.$refs.heading.focus();\r\n },\r\n otpCodeEntered({ valid, code }) {\r\n this.tokenTOTP.valid = valid;\r\n this.tokenTOTP.code = code;\r\n },\r\n async submitManualMfa() {\r\n if (this.isSubmitting) {\r\n return;\r\n }\r\n this.isSubmitting = true;\r\n const categories = this.$store.state.currentChallenge.StepUpCategories || [];\r\n const selectedCategory = categories\r\n .find(category => category.StepUpModel.AuthenticationFactorValue === 'Unknown');\r\n const challenge = {\r\n ...selectedCategory === null || selectedCategory === void 0 ? void 0 : selectedCategory.NextChallenge,\r\n Destination: { ...selectedCategory === null || selectedCategory === void 0 ? void 0 : selectedCategory.StepUpModel.Destinations.find(x => x.MaskedAddress === 'Manual') },\r\n };\r\n await this.$store\r\n .dispatch('submitChallenge', {\r\n ...challenge,\r\n Destination: { ...selectedCategory === null || selectedCategory === void 0 ? void 0 : selectedCategory.StepUpModel.Destinations.find(x => x.MaskedAddress === 'Manual') },\r\n });\r\n this.isSubmitting = false;\r\n },\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n StepUpOption: StepUpOption_vue_1.default,\r\n OneTimeCode: OneTimeCodeForgot_vue_1.default,\r\n IsotopeHeader: IsotopeHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemporaryPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemporaryPassword.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'temporary-password',\r\n props: {},\r\n computed: {},\r\n methods: {},\r\n components: {},\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tethered.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Tethered.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst circle_indeterminate_40_json_1 = tslib_1.__importDefault(require(\"../../assets/circle-indeterminate-40.json\"));\r\nconst Turnstile_vue_1 = tslib_1.__importDefault(require(\"../Turnstile.vue\"));\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nvar turnstileValidationStatus;\r\n(function (turnstileValidationStatus) {\r\n turnstileValidationStatus[\"NotApplicable\"] = \"NotApplicable\";\r\n turnstileValidationStatus[\"InProgress\"] = \"InProgress\";\r\n turnstileValidationStatus[\"Succeeded\"] = \"Succeeded\";\r\n turnstileValidationStatus[\"Failed\"] = \"Fails\";\r\n})(turnstileValidationStatus || (turnstileValidationStatus = {}));\r\nexports.default = vue_1.default.extend({\r\n name: 'tethered',\r\n data: () => {\r\n return {\r\n turnstileToken: '',\r\n turnstileError: '',\r\n turnstileValidationStatus: turnstileValidationStatus.NotApplicable,\r\n };\r\n },\r\n computed: {\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n currentChallengeStatus() {\r\n return this.$store.state.challengeStatus;\r\n },\r\n getAnimationJSON() {\r\n return circle_indeterminate_40_json_1.default;\r\n },\r\n turnstileEnabled() {\r\n return this.$store.state.configuration.turnstileEnabled;\r\n },\r\n turnstileSiteKey() {\r\n return this.$store.state.configuration.turnstileSitekey;\r\n },\r\n errorMessage() {\r\n var _a;\r\n if (this.turnstileValidationStatus === turnstileValidationStatus.Failed)\r\n return this.getSiteText(`ChallengeStatus.${this.currentChallengeStatus}`, (_a = this.currentChallenge.SessionInfo) === null || _a === void 0 ? void 0 : _a.Id);\r\n return this.getSiteText('UsernameAndPassword.Error.WithReference', this.turnstileError);\r\n },\r\n displayError() {\r\n return this.turnstileError !== '' || this.turnstileValidationStatus === turnstileValidationStatus.Failed;\r\n },\r\n showTurnstile() {\r\n return this.turnstileValidationStatus === turnstileValidationStatus.InProgress || this.turnstileValidationStatus === turnstileValidationStatus.Failed;\r\n },\r\n showLoadingAnimation() {\r\n return this.turnstileValidationStatus === turnstileValidationStatus.NotApplicable || this.turnstileValidationStatus === turnstileValidationStatus.Succeeded;\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n async setTurnstileToken(token) {\r\n // Don't update token and submit form if we received a server-side rejection\r\n if (this.turnstileValidationStatus === turnstileValidationStatus.Failed)\r\n return;\r\n this.turnstileError = '';\r\n this.turnstileToken = token;\r\n await this.submitForm();\r\n },\r\n setTurnstileError(err) {\r\n this.turnstileError = err;\r\n },\r\n disableTurnstile() {\r\n // Turnstile has hit an unrecoverable problem. Disable to not block login attempts\r\n this.$store.commit('setTurnstileEnableState', false);\r\n },\r\n turnstileTokenExpired() {\r\n this.turnstileError = '';\r\n this.turnstileToken = '';\r\n },\r\n async submitForm() {\r\n const loginCredentials = this.$store.getters.loginCredentials;\r\n if (this.turnstileEnabled) {\r\n this.$store.commit('setTurnstileToken', this.turnstileToken);\r\n }\r\n const challenge = {\r\n ...this.currentChallenge,\r\n Username: decodeURIComponent(loginCredentials.UserName),\r\n Password: decodeURIComponent(loginCredentials.Password),\r\n };\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n if (this.currentChallengeStatus === ChallengeStatus_1.ChallengeStatus.BotDetected) {\r\n this.turnstileValidationStatus = turnstileValidationStatus.Failed;\r\n }\r\n else if (this.turnstileEnabled) {\r\n this.turnstileValidationStatus = turnstileValidationStatus.Succeeded;\r\n }\r\n this.$store.commit('clearLoginCredentials');\r\n },\r\n },\r\n components: {\r\n Turnstile: Turnstile_vue_1.default,\r\n },\r\n mounted() {\r\n if (this.turnstileEnabled) {\r\n this.turnstileValidationStatus = turnstileValidationStatus.InProgress;\r\n return;\r\n }\r\n void this.submitForm();\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Turnstile.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Turnstile.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nvar filterAction;\r\n(function (filterAction) {\r\n filterAction[filterAction[\"retry\"] = 0] = \"retry\";\r\n filterAction[filterAction[\"disable\"] = 1] = \"disable\";\r\n})(filterAction || (filterAction = {}));\r\nexports.default = vue_1.default.extend({\r\n name: 'turnstile',\r\n props: {\r\n sitekey: {\r\n type: String,\r\n required: true,\r\n },\r\n language: {\r\n type: String,\r\n required: false,\r\n default: null,\r\n },\r\n action: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n data: () => {\r\n return {\r\n src: 'https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit',\r\n widgetId: undefined,\r\n filteredErrors: [\r\n { error: 'invalid_sitekey', action: filterAction.disable },\r\n ],\r\n retries: 0,\r\n };\r\n },\r\n methods: {\r\n render() {\r\n var _a;\r\n const renderOptions = {\r\n action: this.action,\r\n sitekey: this.sitekey,\r\n language: this.language || 'en',\r\n theme: 'light',\r\n callback: (token) => this.response(token),\r\n 'error-callback': (err) => this.error(err),\r\n 'expired-callback': () => this.expired(),\r\n retry: 'never',\r\n };\r\n this.widgetId = (_a = window.turnstile) === null || _a === void 0 ? void 0 : _a.render(this.$refs.turnstileContainer, renderOptions);\r\n },\r\n response(response) {\r\n this.$emit('response', response);\r\n },\r\n reset() {\r\n var _a;\r\n (_a = window.turnstile) === null || _a === void 0 ? void 0 : _a.reset(this.widgetId);\r\n },\r\n disable() {\r\n var _a;\r\n (_a = window.turnstile) === null || _a === void 0 ? void 0 : _a.remove(this.widgetId);\r\n this.$emit('disable');\r\n },\r\n error(err) {\r\n const filteredError = this.filteredErrors.find(x => x.error === err);\r\n if (filteredError !== undefined) {\r\n switch (filteredError.action) {\r\n case filterAction.disable:\r\n this.disable();\r\n // eslint-disable-next-line no-console\r\n console.error(`Turnstile disabled due to error ${filteredError.error}`);\r\n return true;\r\n case filterAction.retry:\r\n if (this.retries < 3) {\r\n this.retries++;\r\n this.reset();\r\n return true;\r\n }\r\n break;\r\n }\r\n }\r\n this.$emit('error', err);\r\n return true;\r\n },\r\n expired() {\r\n this.$emit('expired');\r\n },\r\n },\r\n mounted() {\r\n if (window.turnstile === null || !window.turnstile) {\r\n const script = document.createElement('script');\r\n script.src = this.src;\r\n script.addEventListener('load', () => this.render());\r\n script.addEventListener('error', () => this.disable());\r\n document.head.appendChild(script);\r\n return;\r\n }\r\n this.render();\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateBusiness.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UpdateBusiness.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst IsotopeHeader_vue_1 = tslib_1.__importDefault(require(\"../IsotopeHeader.vue\"));\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nfunction formatPhoneNumber(phone) {\r\n var _a;\r\n const phoneNumber = (_a = phone === null || phone === void 0 ? void 0 : phone.replace(/\\D/g, '')) !== null && _a !== void 0 ? _a : '';\r\n if (phoneNumber.length > 10)\r\n return phoneNumber;\r\n var x = /(\\d{0,3})(\\d{0,3})(\\d{0,4})/.exec(phoneNumber);\r\n if (!x)\r\n return phone;\r\n return !x[2] ? x[1] : '(' + x[1] + ') ' + x[2] + (x[3] ? '-' + x[3] : '');\r\n}\r\nexports.default = vue_1.default.extend({\r\n name: 'update-business',\r\n data() {\r\n var _a;\r\n let challenge = this.$store.state.currentChallenge;\r\n return {\r\n businessName: challenge.BusinessName,\r\n businessPhone: formatPhoneNumber(challenge.BusinessPhoneNumber),\r\n businessPhoneType: [(_a = challenge.BusinessPhoneType) !== null && _a !== void 0 ? _a : 'Work'],\r\n businessAddressLine1: challenge.BusinessAddressLine1,\r\n businessAddressLine2: challenge.BusinessAddressLine2,\r\n businessCity: challenge.BusinessCity,\r\n businessState: challenge.BusinessState,\r\n businessZip: challenge.BusinessPostalCode,\r\n businessEin: challenge.BusinessEin,\r\n hasPhoneError: false,\r\n hasZipError: false,\r\n hasEinError: false,\r\n phoneTypes: [\r\n { label: this.getSiteText('Registration.UpdateBusiness.PhoneTypes.Home'), value: 'Home' },\r\n { label: this.getSiteText('Registration.UpdateBusiness.PhoneTypes.Mobile'), value: 'Mobile' },\r\n { label: this.getSiteText('Registration.UpdateBusiness.PhoneTypes.Work'), value: 'Work' },\r\n ],\r\n };\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n async submitForm() {\r\n if (this.submitting) {\r\n return;\r\n }\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n stepType: userTelemetry_1.stepType.progression,\r\n stepName: userTelemetry_1.stepName.business_information,\r\n action: userTelemetry_1.userAction.continue_clicked,\r\n });\r\n const challenge = {\r\n ...this.updateBusinessChallenge,\r\n BusinessName: this.businessName,\r\n BusinessPhoneNumber: this.businessPhone.replace(/\\D/g, ''),\r\n BusinessPhoneType: this.businessPhoneType[0],\r\n BusinessAddressLine1: this.businessAddressLine1,\r\n BusinessAddressLine2: this.businessAddressLine2,\r\n BusinessCity: this.businessCity,\r\n BusinessState: this.businessState,\r\n BusinessPostalCode: this.businessZip,\r\n BusinessEin: this.businessEin.replace(/\\D/g, ''),\r\n };\r\n // reset the challenge status before submitting so we pick up a new one\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n // submit the challenge\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n },\r\n validatePhone() {\r\n let formattedPhone = formatPhoneNumber(this.businessPhone);\r\n this.businessPhone = formattedPhone !== null && formattedPhone !== void 0 ? formattedPhone : this.businessPhone;\r\n this.hasPhoneError = !(formattedPhone.replace(/\\D/g, '').length >= 10);\r\n },\r\n validateZip() {\r\n this.hasZipError = this.zipCodeRegex().exec(this.businessZip) === null;\r\n },\r\n validateEin() {\r\n var _a;\r\n this.hasEinError = ((_a = this.businessEin) !== null && _a !== void 0 ? _a : '').replace(/\\D/g, '').length !== 9;\r\n },\r\n zipCodeRegex() {\r\n return /^\\d{5}([-]|\\s*)?(\\d{4})?$/;\r\n },\r\n getCustomErrorMessage(val) {\r\n return this.getSiteText('UserIdentifyingField.Required', this.getSiteText(`UserIdentifyingField.${val}.Label`));\r\n },\r\n },\r\n computed: {\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge;\r\n },\r\n getSubheading() {\r\n return this.getSiteText('Registration.UpdateBusiness.Subheading');\r\n },\r\n getPhoneTypeSiteText() {\r\n return { 'label': this.getSiteText('Registration.UpdateBusiness.Input.BusinessPhoneType') };\r\n },\r\n buttonDisabled() {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n const isValidState = ((_b = (_a = this.businessName) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0\r\n && ((_d = (_c = this.businessAddressLine1) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) > 0\r\n && ((_f = (_e = this.businessCity) === null || _e === void 0 ? void 0 : _e.length) !== null && _f !== void 0 ? _f : 0) > 0\r\n && this.businessState\r\n && this.zipCodeRegex().exec(this.businessZip) !== null\r\n && ((_h = (_g = this.businessPhone) === null || _g === void 0 ? void 0 : _g.replace(/\\D/g, '').length) !== null && _h !== void 0 ? _h : 0) >= 10\r\n && this.businessPhoneType;\r\n return !isValidState;\r\n },\r\n updateBusinessChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n zipHasErrorCheck() {\r\n return this.hasZipError;\r\n },\r\n einHasErrorCheck() {\r\n return this.hasEinError;\r\n },\r\n phoneHasErrorCheck() {\r\n return this.hasPhoneError;\r\n },\r\n getZipErrorMessage() {\r\n return this.hasZipError ? [this.getSiteText('Registration.UpdateBusiness.Errors.Zip')] : [];\r\n },\r\n getPhoneErrorMessage() {\r\n return this.hasPhoneError ? [this.getSiteText('Registration.UpdateBusiness.Errors.Phone')] : [];\r\n },\r\n getEinErrorMessage() {\r\n return this.hasEinError ? [this.getSiteText('Registration.UpdateBusiness.Errors.Ein')] : [];\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n IsotopeHeader: IsotopeHeader_vue_1.default,\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsernameAndPassword.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsernameAndPassword.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst ChallengeStatus_1 = require(\"../../enums/ChallengeStatus\");\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst Slide_vue_1 = tslib_1.__importDefault(require(\"../Slide.vue\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst ChallengeType_1 = require(\"../../enums/ChallengeType\");\r\nconst ElementIds_1 = require(\"../../enums/ElementIds\");\r\nconst Turnstile_vue_1 = tslib_1.__importDefault(require(\"../Turnstile.vue\"));\r\nconst userTelemetry_1 = require(\"../../api/userTelemetry\");\r\nconst ForgotLinks_vue_1 = tslib_1.__importDefault(require(\"../ForgotLinks.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'username-and-password',\r\n props: {},\r\n data: () => {\r\n return {\r\n username: null,\r\n password: null,\r\n rememberUsername: false,\r\n mobileInfoPanel: null,\r\n showSheet: false,\r\n hasResetError: false,\r\n hasInvalidChallengeStatus: false,\r\n hasServerError: false,\r\n FUFPToggle: false,\r\n logoPath: '',\r\n widgetConfig: {\r\n background: [],\r\n },\r\n turnstileToken: '',\r\n turnstileError: '',\r\n };\r\n },\r\n computed: {\r\n currentChallenge() {\r\n return this.$store.state.currentChallenge;\r\n },\r\n registrationRedirectUrl() {\r\n const redirect = `${this.$store.state.configuration.baseUrl}Registration`;\r\n return redirect;\r\n },\r\n openAccountRedirectUrl() {\r\n return this.getSiteText('DigitalAccountOpening.DisplayLink.URL');\r\n },\r\n showForgotPasswordLink() {\r\n return this.$store.getters.displayForgotPasswordLink;\r\n },\r\n showAccountOpeningLink() {\r\n return this.$store.getters.displayAccountOpeningLink;\r\n },\r\n showForgotUsernameLink() {\r\n return this.$store.getters.displayForgotUsernameLink;\r\n },\r\n ellipsisConfig() {\r\n return this.$store.getters.ellipsisConfig;\r\n },\r\n mobileInfoPanelClass() {\r\n var hiddenDesktop = 'isotope-hidden--desktop';\r\n var additionalStyling = this.showSheet ? 'info-sheet' : 'info-sheet hidden';\r\n return `${hiddenDesktop} ${additionalStyling}`;\r\n },\r\n wrongCredentials() {\r\n return this.$store.state.challengeStatus === ChallengeStatus_1.ChallengeStatus.InvalidCredentials;\r\n },\r\n shouldHideRegistration() {\r\n if (this.isMobile && this.$store.state.configuration.mobileRegistrationEnabled !== 'True') {\r\n return true;\r\n }\r\n if (this.$store.getters.disableDesktopRegistration) {\r\n return true;\r\n }\r\n if (!this.$store.getters.isNativeApplication && this.isOauthRedirect()) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n submitting() {\r\n return this.$store.getters.isSubmittingChallenge || this.$store.getters.isSubmittingAuthenticatedModel;\r\n },\r\n errorMessage() {\r\n var _a;\r\n if (this.$store.getters.hasInvalidChallengeStatus) {\r\n return this.getSiteText(`ChallengeStatus.${this.currentChallengeStatus}`, (_a = this.currentChallenge.SessionInfo) === null || _a === void 0 ? void 0 : _a.Id);\r\n }\r\n return '';\r\n },\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n elementIds: () => ElementIds_1.ElementIds,\r\n bankName() {\r\n return this.$store.state.configuration.bankName;\r\n },\r\n desktopLoginLayers() {\r\n let layers = [];\r\n if (this.widgetConfig && this.widgetConfig.background.length > 0) {\r\n layers = this.widgetConfig.background;\r\n }\r\n return layers;\r\n },\r\n turnstileEnabled() {\r\n return this.$store.state.configuration.turnstileEnabled;\r\n },\r\n turnstileSiteKey() {\r\n return this.$store.state.configuration.turnstileSitekey;\r\n },\r\n submitDisabled() {\r\n return this.submitting || this.turnstileEnabled && this.turnstileToken === '';\r\n },\r\n displayServerError() {\r\n return this.hasServerError || this.turnstileEnabled && this.turnstileError !== '';\r\n },\r\n serverErrorMessage() {\r\n if (this.turnstileEnabled && this.turnstileError !== '')\r\n return this.getSiteText('UsernameAndPassword.Error.WithReference', this.turnstileError);\r\n return this.getSiteText('Error.Generic');\r\n },\r\n currentChallengeStatus() {\r\n return this.$store.state.challengeStatus;\r\n },\r\n isCypress() {\r\n return this.$store.state.isCypress;\r\n },\r\n enableRememberMe() {\r\n return this.$store.getters.enableRememberMe;\r\n },\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n methods: {\r\n async submitForm() {\r\n if (this.submitting) {\r\n return;\r\n }\r\n this.hasServerError = false;\r\n await this.$store.dispatch('resetErrorStatus');\r\n if (this.turnstileEnabled) {\r\n this.$store.commit('setTurnstileToken', this.turnstileToken);\r\n }\r\n const challenge = {\r\n ...this.currentChallenge,\r\n Username: this.$data.username,\r\n Password: this.$data.password,\r\n };\r\n await this.$store.dispatch('submitChallenge', challenge);\r\n if (this.$store.getters.hasInvalidChallengeStatus) {\r\n this.hasInvalidChallengeStatus = true;\r\n if (this.turnstileEnabled && this.currentChallengeStatus === ChallengeStatus_1.ChallengeStatus.InvalidCredentials) {\r\n // Turnstile tokens are only good once, so if authentication fails, reset the turnstile widget to generate a new token\r\n this.turnstileToken = '';\r\n this.$refs.turnstile.reset();\r\n }\r\n }\r\n if (this.$store.getters.hasServerError) {\r\n this.hasServerError = true;\r\n }\r\n },\r\n getIconClassFromSiteText(siteTextKey) {\r\n const icon = this.getSiteText(siteTextKey);\r\n return `font-icon-${icon}`;\r\n },\r\n async toggleRememberMe(enabled) {\r\n this.rememberUsername = enabled;\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n action: userTelemetry_1.userAction.remember_me_checked,\r\n stepType: userTelemetry_1.stepType.entry,\r\n stepName: userTelemetry_1.stepName.login,\r\n eventProperties: {\r\n 'value': enabled,\r\n },\r\n });\r\n await this.$store.dispatch('setRememberUsername', this.rememberUsername);\r\n },\r\n toggleSheet(showSheetNewValue) {\r\n this.showSheet = showSheetNewValue;\r\n },\r\n contentToggled() {\r\n if (this.showSheet === false) {\r\n var bottomSheet = this.$refs.bottomSheetRef.$el;\r\n var element = bottomSheet.querySelector('.irisv-sheet__content--opened');\r\n if (element != null) {\r\n element.classList.remove('irisv-sheet__content--opened');\r\n }\r\n }\r\n },\r\n rememberMeDesktopText() {\r\n return this.getSiteText('UsernameAndPassword.RememberUsername.Desktop.Message');\r\n },\r\n resetValidationError(changingUsername) {\r\n const skipReset = this.$store.getters.challengeHistory[this.$store.getters.challengeHistory.length - 2].ChallengeTypeValue === ChallengeType_1.ChallengeType.Tethered && !this.hasResetError;\r\n this.hasResetError = true;\r\n if (!skipReset && (this.$store.state.challengeStatus === ChallengeStatus_1.ChallengeStatus.InvalidCredentials ||\r\n this.$store.state.challengeStatus === ChallengeStatus_1.ChallengeStatus.LockedOut && changingUsername)) {\r\n this.hasInvalidChallengeStatus = false;\r\n }\r\n },\r\n ellipsisItemSelected({ selectedMenuItem: item }) {\r\n if (this.mobileInfoPanel !== null &&\r\n item.iconName === this.getSiteText('UsernameAndPassword.InfoPanel.Ellipsis.IconName') &&\r\n item.label === this.getSiteText('UsernameAndPassword.InfoPanel.Ellipsis.Label') &&\r\n item.href === '#') {\r\n this.toggleSheet(true);\r\n }\r\n },\r\n getReturnUrl() {\r\n const urlParams = new URLSearchParams(window.location.search);\r\n return urlParams.get('ReturnUrl');\r\n },\r\n getOAuthRedirectUri() {\r\n const returnUrl = this.getReturnUrl();\r\n if (returnUrl) {\r\n const internalUrlParams = new URLSearchParams(returnUrl);\r\n const redirect_uri = Array.from(internalUrlParams.keys()).find(x => x.toLowerCase() === 'redirect_uri' || x.toLowerCase().endsWith('?redirect_uri'));\r\n if (redirect_uri)\r\n return internalUrlParams.get(redirect_uri);\r\n }\r\n return null;\r\n },\r\n isOauthRedirect() {\r\n const returnUrl = this.getReturnUrl();\r\n if (returnUrl) {\r\n const re = /^(?:(?:\\/)?mobile)?(?:\\/)?oauth\\/authorize/;\r\n return re.test(returnUrl);\r\n }\r\n return false;\r\n },\r\n async setupThemeBuilderItems() {\r\n const alkamiThemesRef = window.Alkami.Themes;\r\n const baseAssetUrl = alkamiThemesRef.baseAssetUrl || `${alkamiThemesRef.baseUrl}/assets`;\r\n const themeConfigFromServer = await alkamiThemesRef.Config;\r\n const logoFileName = themeConfigFromServer.brandLogos.wide.fileName;\r\n if (logoFileName !== null && logoFileName !== undefined && logoFileName !== '') {\r\n this.logoPath = `${baseAssetUrl}/${logoFileName}`;\r\n }\r\n const widgetName = 'alkami.webapps.isotope';\r\n let widgetConfigFromServer;\r\n try {\r\n widgetConfigFromServer = await alkamiThemesRef.getWidgetConfig(widgetName);\r\n }\r\n catch (error) {\r\n // eslint-disable-next-line no-console\r\n console.log('This FI may not have configued the Login Page Brand Image in Theme Builder.', error);\r\n return;\r\n }\r\n if (widgetConfigFromServer && widgetConfigFromServer.background && widgetConfigFromServer.background.length === 2) {\r\n const loginPage = this.$refs.loginPage;\r\n this.widgetConfig = { ...widgetConfigFromServer };\r\n loginPage.style.setProperty('--widgetIsotopeColorBgLayer0', `${this.widgetConfig.background[0].color.bgColor}`);\r\n loginPage.style.setProperty('--widgetIsotopeImageAttachmentLayer1', `${this.widgetConfig.background[1].image.attachment}`);\r\n if (this.widgetConfig.background[1].image.fileName !== '') { // No need to set this css var if there is no file name and just causes a console error\r\n loginPage.style.setProperty('--widgetIsotopeImageLayer1', `url(${alkamiThemesRef.baseWidgetUrl}/${widgetName}/assets/${this.widgetConfig.background[1].image.fileName})`);\r\n }\r\n loginPage.style.setProperty('--widgetIsotopeImagePositionXLayer1', `${this.widgetConfig.background[1].image.positionX}`);\r\n loginPage.style.setProperty('--widgetIsotopeImagePositionYLayer1', `${this.widgetConfig.background[1].image.positionY}`);\r\n loginPage.style.setProperty('--widgetIsotopeImageRepeatLayer1', `${this.widgetConfig.background[1].image.repeat}`);\r\n loginPage.style.setProperty('--widgetIsotopeImageSizeLayer1', `${this.widgetConfig.background[1].image.size}`);\r\n loginPage.style.setProperty('--widgetIsotopeImageOpacityLayer1', `${this.widgetConfig.background[1].image.opacity}`);\r\n }\r\n },\r\n setTurnstileToken(token) {\r\n this.turnstileError = '';\r\n this.turnstileToken = token;\r\n },\r\n setTurnstileError(err) {\r\n this.turnstileError = err;\r\n },\r\n disableTurnstile() {\r\n // Turnstile has hit an unrecoverable problem. Disable to not block login attempts\r\n this.$store.commit('setTurnstileEnableState', false);\r\n },\r\n turnstileTokenExpired() {\r\n this.turnstileError = '';\r\n this.turnstileToken = '';\r\n },\r\n ellipsisToggled(open) {\r\n void userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n action: userTelemetry_1.userAction.overflow_menu_clicked,\r\n stepType: userTelemetry_1.stepType.entry,\r\n stepName: userTelemetry_1.stepName.login,\r\n eventProperties: {\r\n 'value': open === true ? 'open' : 'close',\r\n },\r\n });\r\n },\r\n async goToRegistration() {\r\n try {\r\n await userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n action: userTelemetry_1.userAction.register_account_clicked,\r\n stepType: userTelemetry_1.stepType.entry,\r\n stepName: userTelemetry_1.stepName.login,\r\n });\r\n }\r\n catch {\r\n // ignoring any exceptions\r\n }\r\n if (this.isCypress) {\r\n return;\r\n }\r\n document.location = this.registrationRedirectUrl;\r\n },\r\n },\r\n components: {\r\n IsotopeSlide: Slide_vue_1.default,\r\n Turnstile: Turnstile_vue_1.default,\r\n ForgotLinks: ForgotLinks_vue_1.default,\r\n },\r\n async mounted() {\r\n var _a, _b, _c, _d, _e, _f;\r\n if (this.currentChallenge.Username && this.currentChallenge.Username.length) {\r\n this.username = this.currentChallenge.Username;\r\n }\r\n if (((_a = this.$store.getters.configuration.loginCredentials) === null || _a === void 0 ? void 0 : _a.UserName) !== '') {\r\n this.username = (_b = this.$store.getters.configuration.loginCredentials) === null || _b === void 0 ? void 0 : _b.UserName;\r\n }\r\n // set remembered username\r\n const rememberedUsername = this.$store.state.rememberedUsername;\r\n // make sure rememberedUsername doesn't have falsy value, set the checkbox\r\n if (rememberedUsername) {\r\n this.rememberUsername = true;\r\n this.username = rememberedUsername;\r\n this.$store.commit('setRememberUsername', true);\r\n }\r\n /*\r\n Lots of hacking going on to load the Info sheet on the page\r\n 1) First need to check if the element is loaded by the theme or not\r\n -> The div id is expected to always be \"mobile_info_panel\"\r\n 2) If it is present, then add the info to the ellipsis dropdown\r\n 3) Set the info button to trigger event to open sheet (done in click handler, method ellipsisItemSelected)\r\n */\r\n // check to see if FI has configured mobile info panel, if yes, add info sidesheet button\r\n var mobileInfoPanelElement = document.getElementById('mobile_info_panel');\r\n if (mobileInfoPanelElement) {\r\n this.mobileInfoPanel = mobileInfoPanelElement.innerHTML;\r\n const mobileInfoEllipsisConfig = {\r\n iconName: this.getSiteText('UsernameAndPassword.InfoPanel.Ellipsis.IconName'),\r\n label: this.getSiteText('UsernameAndPassword.InfoPanel.Ellipsis.Label'),\r\n href: '#',\r\n target: '_self',\r\n };\r\n // get ellipsis config from state\r\n var ellipsisConfig = this.$store.getters.ellipsisConfig;\r\n // add the info panel\r\n ellipsisConfig.push(mobileInfoEllipsisConfig);\r\n // update the state with new list\r\n this.$store.commit('updateEllipsisConfig', ellipsisConfig);\r\n }\r\n var helpLi = document.querySelector('a[href=\"/Content/Help/ShowVisitorContent?name=VisitorHelp\"]');\r\n if (helpLi) {\r\n const event = new CustomEvent('helpLinkLoaded', {\r\n bubbles: true,\r\n cancelable: false,\r\n });\r\n this.$el.dispatchEvent(event);\r\n }\r\n let loadedEvent = new CustomEvent('UsernameAndPasswordUIInitialized', {\r\n bubbles: true,\r\n cancelable: false,\r\n });\r\n this.$el.dispatchEvent(loadedEvent);\r\n if (this.$store.getters.hasInvalidChallengeStatus) {\r\n this.hasInvalidChallengeStatus = true;\r\n }\r\n if (this.$store.getters.hasServerError) {\r\n this.hasServerError = true;\r\n }\r\n // Workaround for iris-menu-dropdown not setting a type on the button. A setTimeout is needed since this iris-vue component loads another iris-vue component and a nextTick will also not work here\r\n // Make a point to remove this once UX-Dev fixes a bug where quick action buttons should have a settable type.\r\n setTimeout(() => {\r\n var _a;\r\n (_a = document.querySelector('#ellipsis_menu button')) === null || _a === void 0 ? void 0 : _a.setAttribute('type', 'button');\r\n }, 0);\r\n // Workaround for the iris-switch not setting a type on its internal button - DEV-107201\r\n (_c = document.querySelector('#rememberMeCheckBox button')) === null || _c === void 0 ? void 0 : _c.setAttribute('type', 'button');\r\n // Workaround for iris-textfield-password not handling passthrough attributes\r\n (_d = document.querySelector('#password')) === null || _d === void 0 ? void 0 : _d.setAttribute('autocomplete', 'current-password');\r\n // Fixes for accessibility issues\r\n (_e = document.querySelector('body.Authentication h1#widget_title')) === null || _e === void 0 ? void 0 : _e.setAttribute('aria-hidden', 'true');\r\n (_f = document.querySelector('body.Authentication ul#widget_nav')) === null || _f === void 0 ? void 0 : _f.setAttribute('aria-hidden', 'true');\r\n // Fetch wide logo for theme builder themes\r\n let themeBuilderTheme = document.querySelector('body.theme--theme-builder');\r\n if (themeBuilderTheme) {\r\n await this.setupThemeBuilderItems();\r\n }\r\n },\r\n beforeCreate() {\r\n document.body.classList.add('username-and-password');\r\n },\r\n beforeDestroy() {\r\n document.body.classList.remove('username-and-password');\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotLinks.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--3-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotLinks.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../filters/sitetext\");\r\nconst userTelemetry_1 = require(\"../api/userTelemetry\");\r\nexports.default = vue_1.default.extend({\r\n name: 'forgot-links',\r\n mixins: [siteText_1.default],\r\n data: () => {\r\n return {\r\n FUFPToggle: false,\r\n };\r\n },\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n computed: {\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n showForgotPasswordLink() {\r\n return this.$store.getters.displayForgotPasswordLink;\r\n },\r\n forgotUsernameUrl() {\r\n return `${this.$store.state.configuration.baseUrl}ForgotUsername`;\r\n },\r\n showForgotUsernameLink() {\r\n return this.$store.getters.displayForgotUsernameLink;\r\n },\r\n forgotPasswordUrl() {\r\n return `${this.$store.state.configuration.baseUrl}ForgotPassword`;\r\n },\r\n useIrisSheetForFUFP() {\r\n return this.isMobile && this.showForgotUsernameLink && this.showForgotPasswordLink;\r\n },\r\n FUFPText() {\r\n let linkText = '';\r\n switch (true) {\r\n case this.showForgotUsernameLink && this.showForgotPasswordLink:\r\n linkText = this.getSiteText('UsernameAndPassword.Link.Forgot.UsernameAndPassword');\r\n break;\r\n case this.showForgotUsernameLink:\r\n linkText = this.getSiteText('UsernameAndPassword.Link.Forgot.Username');\r\n break;\r\n case this.showForgotPasswordLink:\r\n linkText = this.getSiteText('UsernameAndPassword.Link.Forgot.Password');\r\n break;\r\n }\r\n if (this.isMobile) {\r\n let href = '';\r\n switch (true) {\r\n case this.useIrisSheetForFUFP:\r\n href = ' tabindex=\"0\"';\r\n break;\r\n case this.showForgotUsernameLink:\r\n href = ` href=\"${this.forgotUsernameUrl}\"`;\r\n break;\r\n case this.showForgotPasswordLink:\r\n href = ` href=\"${this.forgotPasswordUrl}\"`;\r\n break;\r\n }\r\n linkText = `${linkText.replace(/{linku}|{linkp}/ig, '')}`;\r\n }\r\n else {\r\n let uCount = 0;\r\n let pCount = 0;\r\n linkText = linkText.replace(/{linku}|{linkp}/ig, (match) => {\r\n let count;\r\n if (match.toLowerCase() === '{linku}')\r\n count = ++uCount;\r\n else\r\n count = ++pCount;\r\n if (count % 2 === 0)\r\n return '';\r\n return ``;\r\n });\r\n }\r\n return linkText;\r\n },\r\n isCypress() {\r\n return this.$store.state.isCypress;\r\n },\r\n },\r\n methods: {\r\n mobileForgotUsernameOrPassword() {\r\n this.FUFPToggle = true;\r\n // Workaround for the iris-sheet close button not setting a type on the button\r\n // Unfortunately, the button isn't rendered until after mounted() has finished, so have to do it here\r\n let irisSheetCloseButton = document.querySelector('.forgotLinks [aria-label=\"close\"]');\r\n if (irisSheetCloseButton) {\r\n irisSheetCloseButton.setAttribute('type', 'button');\r\n }\r\n },\r\n async handleClick(event) {\r\n const href = event.target.getAttribute('href');\r\n if (href === null)\r\n return;\r\n if (href === this.forgotUsernameUrl) {\r\n await userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n stepType: userTelemetry_1.stepType.entry,\r\n stepName: userTelemetry_1.stepName.login,\r\n action: userTelemetry_1.userAction.forgot_username_clicked,\r\n });\r\n }\r\n else if (href === this.forgotPasswordUrl) {\r\n await userTelemetry_1.telemetry.custom({\r\n workflowName: userTelemetry_1.workflowName.retail_registration,\r\n stepType: userTelemetry_1.stepType.entry,\r\n stepName: userTelemetry_1.stepName.login,\r\n action: userTelemetry_1.userAction.forgot_password_clicked,\r\n });\r\n }\r\n if (this.isCypress)\r\n return;\r\n document.location.href = href;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsernameRecovered.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/ts-loader/index.js??ref--3-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UsernameRecovered.vue?vue&type=script&lang=ts&\"","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst siteText_1 = tslib_1.__importDefault(require(\"../../mixins/siteText\"));\r\nconst sitetext_1 = require(\"../../filters/sitetext\");\r\nconst SlideHeaderWithNav_vue_1 = tslib_1.__importDefault(require(\"../SlideHeaderWithNav.vue\"));\r\nconst ContainerSlide_vue_1 = tslib_1.__importDefault(require(\"../ContainerSlide.vue\"));\r\nexports.default = vue_1.default.extend({\r\n name: 'username-recovered',\r\n props: {},\r\n computed: {\r\n isMobile() {\r\n return this.$store.getters.isMobile;\r\n },\r\n },\r\n methods: {\r\n baseUrl() {\r\n return this.$store.state.configuration.baseUrl;\r\n },\r\n recoveredUsername() {\r\n var usernameRecoveredChallenge = this.$store.state.currentChallenge;\r\n return usernameRecoveredChallenge.RecoveredUsername || '';\r\n },\r\n },\r\n mixins: [siteText_1.default],\r\n filters: {\r\n sitetext: sitetext_1.siteTextFilter,\r\n },\r\n mounted() {\r\n this.$refs.usernameRecovered.focus();\r\n },\r\n components: {\r\n SlideHeaderWithNav: SlideHeaderWithNav_vue_1.default,\r\n ContainerSlide: ContainerSlide_vue_1.default,\r\n },\r\n});\r\n","import { render, staticRenderFns } from \"./ChooseScenario.vue?vue&type=template&id=9c7e7f4a&scoped=true&\"\nimport script from \"./ChooseScenario.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChooseScenario.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChooseScenario.vue?vue&type=style&index=0&id=9c7e7f4a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9c7e7f4a\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./CodeStepup.vue?vue&type=template&id=e4373eda&\"\nimport script from \"./CodeStepup.vue?vue&type=script&lang=ts&\"\nexport * from \"./CodeStepup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CodeStepup.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./StepUpOption.vue?vue&type=template&id=cd485526&scoped=true&\"\nimport script from \"./StepUpOption.vue?vue&type=script&lang=ts&\"\nexport * from \"./StepUpOption.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./StepUpOption.vue?vue&type=style&index=0&id=cd485526&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cd485526\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-app\",class:_vm.$route.name,attrs:{\"id\":\"app\"}},[_c('router-view',{staticClass:\"isotope-page\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-page--authentication\"},[_c(_vm.currentChallengeType,{tag:\"component\",staticClass:\"isotope-challenge-type\"}),_c('form',{attrs:{\"id\":\"form_authenticated\",\"method\":\"POST\",\"action\":_vm.$store.state.configuration.redirectUrl}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.authenticatedModel.username),expression:\"authenticatedModel.username\"}],attrs:{\"type\":\"hidden\",\"name\":\"username\"},domProps:{\"value\":(_vm.authenticatedModel.username)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.authenticatedModel, \"username\", $event.target.value)}}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.authenticatedModel.nonce),expression:\"authenticatedModel.nonce\"}],attrs:{\"type\":\"hidden\",\"name\":\"nonce\"},domProps:{\"value\":(_vm.authenticatedModel.nonce)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.authenticatedModel, \"nonce\", $event.target.value)}}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-page--registration\"},[_c(_vm.currentChallengeType,{tag:\"component\",staticClass:\"isotope-challenge-type\"}),_c('form',{attrs:{\"id\":\"form_authenticated\",\"method\":\"POST\",\"action\":_vm.$store.state.configuration.redirectUrl}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.authenticatedModel.username),expression:\"authenticatedModel.username\"}],attrs:{\"type\":\"hidden\",\"name\":\"username\"},domProps:{\"value\":(_vm.authenticatedModel.username)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.authenticatedModel, \"username\", $event.target.value)}}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.authenticatedModel.nonce),expression:\"authenticatedModel.nonce\"}],attrs:{\"type\":\"hidden\",\"name\":\"nonce\"},domProps:{\"value\":(_vm.authenticatedModel.nonce)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.authenticatedModel, \"nonce\", $event.target.value)}}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"authentication_page\"},[_c(_vm.currentChallengeType,{tag:\"component\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"forgotPassword_page forgotpassword-component--container\"},[_c(_vm.currentChallengeType,{tag:\"component\",staticClass:\"isotope-challenge-type\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c(_vm.currentChallengeType,{tag:\"component\"})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--change-password\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--check-sync-result\"},[_c('isotope-slide',{staticClass:\"check-sync-result\"},[_c('sync-failure',{attrs:{\"buttonText\":\"Sync.SyncError.Button.Back\",\"url\":_vm.baseUrl}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--check-sync-result\"},[_c('container-slide',{staticClass:\"check-sync-result\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl}})],1),_c('sync-failure',{attrs:{\"buttonText\":\"ForgotPassword.SyncError.Button.Back\",\"url\":_vm.url}})],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('choose-scenario')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--confirm-identity\"},[_c('container-slide',{staticClass:\"confirm-identity\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl(),\"workflowName\":_vm.scenarioType}})],1),_c('IsotopeHeader',{attrs:{\"siteText\":(_vm.scenarioType + \".ConfirmIdentity.Heading\")}}),_c('div',{staticClass:\"mar-child-bottom--small\",attrs:{\"data-cy\":\"notificationMessage\"}},[_c('iris-notification',{attrs:{\"roleType\":\"alertdialog\",\"kind\":\"inline\",\"messageType\":\"info-light\",\"message\":_vm.notificationMessage(),\"showCloseIcon\":false,\"show\":_vm.showNotification,\"closeAriaLabel\":\"Close\"},on:{\"update:show\":function($event){_vm.showNotification=$event}}})],1),_vm._l((_vm.confirmIdentityChallenge.Scenario.FieldGroups),function(group,index){return _c('user-identifying-field-group',{key:group.Id,attrs:{\"index\":index,\"name\":group.Name,\"fields\":group.Fields,\"scenarioType\":_vm.confirmIdentityChallenge.Scenario.ScenarioTypeValue,\"scenarioName\":_vm.confirmIdentityChallenge.Scenario.Name},on:{\"validation-check\":_vm.validationCheck}})}),_c('template',{slot:\"footer\"},[_c('iris-button',{staticClass:\"mar-top--2xl\",attrs:{\"id\":_vm.elementIds.ConfirmIdentityContinue,\"fullWidth\":false,\"isDisabled\":_vm.buttonDisabled,\"text\":_vm._f(\"sitetext\")('ForgotWorkflow.ActionButtonText'),\"isLoading\":_vm.submitting,\"type\":\"submit\"}})],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--converted-user\"},[_c('isotope-slide',{staticClass:\"text--center\"},[_c('iris-avatar',{staticClass:\"pad-bottom--base\",attrs:{\"mainIconName\":\"lock-token\",\"isStatic\":\"true\",\"backgroundColor\":\"transparent\",\"size\":\"large\",\"letterIconColor\":\"#0267C1\",\"ariaLabel\":\"security\"}}),_c('h2',{staticClass:\"font-small-heading mar-bottom--small mar-top--0\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('ConvertedUser.Header'))+\"\\n \")]),_c('div',{staticClass:\"mar-bottom--big\",attrs:{\"id\":\"converted_user_instructions\"}},[_vm._v(\"\\n \"+_vm._s(_vm.instructions())+\"\\n \")]),_c('iris-button',{staticClass:\"mar-right--tiny\",attrs:{\"text\":_vm._f(\"sitetext\")('ConvertedUser.Button.Primary'),\"fullWidth\":false,\"kind\":\"highEmphasis\",\"href\":_vm.linkForCreateNewPassword()}}),_c('iris-button',{staticClass:\"mar-left--tiny\",attrs:{\"text\":_vm._f(\"sitetext\")('ConvertedUser.Button.Secondary'),\"fullWidth\":false,\"href\":_vm.baseUrl(),\"kind\":\"lowEmphasis\"}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--create-user\"},[_c('container-slide',{staticClass:\"create-user\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl}})],1),_c('isotope-header',{attrs:{\"siteText\":\"Registration.CreateUser.Heading\"}}),_c('div',{staticClass:\"subHeading mar-bottom--big\",class:[ _vm.isMobile ? 'mar-top--xl' : 'mar-top--small' ]},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('Registration.CreateUser.Subheading'))+\"\\n \")]),_c('iris-textfield-password',{staticClass:\"mar-top--small\",attrs:{\"data-cy\":\"passwordInput\",\"label\":_vm._f(\"sitetext\")('Registration.CreateUser.TextField.Password.Label'),\"passwordStrengthLabel\":_vm.passwordStrengths(),\"passwordStrength\":_vm.checkPasswordStrength(),\"validationRules\":[_vm.checkPasswordValid]},on:{\"textfield-input\":function($event){return _vm.checkPasswordMatches()}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_c('iris-textfield-password',{staticClass:\"mar-top--small\",attrs:{\"data-cy\":\"confirmPasswordInput\",\"label\":_vm._f(\"sitetext\")('Registration.CreateUser.TextField.ConfirmPassword.Label'),\"hasError\":_vm.passwordMismatch,\"errorMessages\":_vm.confirmPasswordErrorMessage},on:{\"textfield-input\":function($event){return _vm.checkPasswordMatches()}},model:{value:(_vm.confirmPassword),callback:function ($$v) {_vm.confirmPassword=$$v},expression:\"confirmPassword\"}}),(_vm.showConfirmPasswordMessage)?_c('div',{staticClass:\"irisv-textfield__messages\",attrs:{\"data-cy\":\"confirmPasswordMatchLabel\"}},[_c('div',{staticClass:\"irisv-textfield__messages-help-text font-caption\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('Registration.CreateUser.PasswordMatches'))+\"\\n \")])]):_vm._e(),_c('template',{slot:\"footer\"},[_c('iris-button',{staticClass:\"mar-top--2xl\",attrs:{\"data-cy\":\"createPasswordButton\",\"fullWidth\":false,\"isDisabled\":_vm.buttonDisabled,\"text\":_vm._f(\"sitetext\")('Registration.CreateUser.ButtonText'),\"isLoading\":_vm.isLoading,\"type\":\"submit\"}})],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--create-username\"},[_c('container-slide',{staticClass:\"create-username\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl}})],1),_c('div',[_c('isotope-header',{attrs:{\"siteText\":\"Registration.CreateUsername.Heading\"}}),_c('div',{staticClass:\"subHeading mar-bottom--xl\",class:[ _vm.isMobile ? 'mar-top--xl' : 'mar-top--small' ],attrs:{\"data-cy\":\"createUsernameSubHeading\"}},[_vm._v(\"\\n \"+_vm._s(_vm.getSubheading)+\"\\n \")]),_c('iris-textfield',{attrs:{\"data-cy\":\"usernameInput\",\"label\":_vm._f(\"sitetext\")('Registration.CreateUsername.Input.Label'),\"hasError\":_vm.errors.length > 0,\"errorMessages\":_vm.errors,\"isDisabled\":_vm.hasExceededTries,\"value\":_vm.inputValue,\"requiredValidationErrorMessaging\":\"\"},on:{\"textfield-input\":_vm.validateUsername,\"textfield-blur\":_vm.validateBlur}}),(_vm.showSuggestedUsernames)?_c('div',{staticClass:\"showSuggestedUsernames\"},[_c('div',{attrs:{\"data-cy\":\"suggestedUsernames\"}},[_vm._v(\"\\n \"+_vm._s(_vm.usernameSuggestionHeading)+\"\\n \")]),_c('div',{staticClass:\"suggestions\"},_vm._l((_vm.suggestedUsernames),function(suggestion,index){return _c('iris-radio-button',{key:index,attrs:{\"label\":suggestion,\"value\":suggestion,\"name\":\"chooseUsername\"},on:{\"radio-button-change\":_vm.chooseUsername}})}),1)]):_vm._e()],1),_c('template',{slot:\"footer\"},[_c('iris-button',{staticClass:\"mar-top--2xl\",attrs:{\"id\":_vm.elementIds.CreateUsername,\"data-cy\":\"create-username-button\",\"fullWidth\":_vm.isMobile,\"isDisabled\":_vm.buttonDisabled,\"text\":_vm._f(\"sitetext\")('Registration.ButtonText.CreateUsername'),\"isLoading\":_vm.submitting,\"loadingText\":_vm._f(\"sitetext\")('Registration.ButtonText.CreateUsername'),\"type\":\"submit\"}})],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--empty\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--forgot-password\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('choose-scenario')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm-identity',{attrs:{\"requiresUsername\":true}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--forgot-password-disclosure\"},[_c('container-slide',{staticClass:\"forgot-password-disclosure\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl()}}),_c('div',{ref:\"heading\",attrs:{\"tabindex\":\"-1\"}},[(_vm.isMobile)?_c('div',{staticClass:\"font-medium-heading mar-top--xl mar-bottom--md\",attrs:{\"role\":\"heading\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('ForgotWorkflow.Disclosure.Mobile.Heading'))+\"\\n \")]):_vm._e()])],1),_c('Disclosure',{attrs:{\"content\":_vm.disclosureContent,\"checkboxLabel\":_vm._f(\"sitetext\")('ForgotWorkflow.Disclosure.AcceptCheckbox.Label'),\"printLinkText\":_vm._f(\"sitetext\")('Disclosure.PrintLinkText')},on:{\"toggleDisclosureAccepted\":_vm.toggleAccepted}}),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"forgot-password-disclosure--footer\",class:{ 'disclosure-footer': !_vm.isMobile }},[_c('iris-button',{class:{ 'disclosure-button--mobile': _vm.isMobile },attrs:{\"id\":_vm.elementIds.DisclosureContinue,\"data-cy\":\"accept-disclosure-button\",\"text\":_vm._f(\"sitetext\")('ForgotWorkflow.ActionButtonText'),\"fullWidth\":_vm.isMobile,\"type\":\"submit\",\"isDisabled\":_vm.canContinue,\"isLoading\":_vm.submitting,\"kind\":\"highEmphasis\"}})],1)])],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--forgot-username\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('choose-scenario',{attrs:{\"cardName\":_vm.elementIds.UsernameChooseScenarioCard}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('confirm-identity')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--one-time-code\"},[_c('isotope-slide',{staticClass:\"one-time-code\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('slide-header',{attrs:{\"header\":_vm._f(\"sitetext\")('StepUp.OneTimeCode.Header'),\"subtitle\":_vm.codeSentText}})],1),_c('div',{staticClass:\"isotope-actions\",attrs:{\"role\":\"heading\",\"tabindex\":\"-1\"}},[_c('iris-display-input-field-specified',{attrs:{\"elementId\":\"txt_OTP\",\"actiontext\":_vm._f(\"sitetext\")('StepUp.OneTimeCode.DisplayInput.ActionText'),\"align\":\"center\",\"hasError\":_vm.hasError,\"errortext\":_vm.errorText,\"helpertext\":_vm.codeEntryHelperText,\"maxlength\":6,\"minlength\":6,\"keyboardType\":\"numeric\"},on:{\"display-input-field-input\":_vm.oneTimeCodeUpdated,\"display-input-field-focus\":_vm.onFocus},model:{value:(_vm.$data.oneTimeCode),callback:function ($$v) {_vm.$set(_vm.$data, \"oneTimeCode\", $$v)},expression:\"$data.oneTimeCode\"}})],1),_c('div',{staticClass:\"isotope-actions isotope-actions--row mar-top--base\"},[(!_vm.isManualMfa)?_c('iris-button',{attrs:{\"id\":\"btn_resendOTP\",\"kind\":\"compact\",\"text\":_vm.resendButtonText,\"isDisabled\":!_vm.canResendCode},on:{\"button-click\":function($event){return _vm.resendCode()}}}):_vm._e()],1),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"isotope-actions isotope-actions--row-reverse\",class:{ 'mar-bottom--small': _vm.isMobile }},[_c('iris-button',{class:{ 'mar-bottom--tiny' : _vm.isMobile },attrs:{\"id\":\"btn_submitOTP\",\"isLoading\":_vm.submitting,\"isDisabled\":_vm.navigatingBack || _vm.submitting,\"text\":_vm._f(\"sitetext\")('StepUp.OneTimeCode.Button.Verify'),\"type\":\"submit\"}}),_c('iris-button',{class:{ 'mar-right--tiny' : !_vm.isMobile },attrs:{\"kind\":\"lowEmphasis\",\"text\":_vm._f(\"sitetext\")('MFA.Button.Navigate.Back'),\"disabled\":_vm.navigatingBack || _vm.submitting,\"isLoading\":_vm.navigatingBack},on:{\"button-click\":function($event){return _vm.navigateBack()}}})],1)])],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"codeInput\"},[_c('div',{staticClass:\"subHeading mar-bottom--big\",class:[ _vm.isMobile ? 'mar-top--xl' : 'mar-top--small' ]},[_vm._v(\"\\n \"+_vm._s(_vm.subHeadingText)+\"\\n \")]),_c('iris-display-input-field-specified',{staticClass:\"codeInputField\",attrs:{\"value\":_vm.oneTimeCode,\"elementId\":_vm.elementIds.OTPCodeInput,\"actiontext\":_vm.actionText,\"align\":\"center\",\"hasError\":_vm.hasError,\"errortext\":_vm.errorText,\"helpertext\":_vm.inputHelperText,\"keyboardType\":\"numeric\",\"maxlength\":_vm.tokenLength,\"minlength\":_vm.tokenLength},on:{\"display-input-field-input\":_vm.oneTimeCodeUpdated}}),_c('div',{staticClass:\"optionButtons mar-top--md\"},[(_vm.displayResendCode)?_c('iris-button',{staticClass:\"width--Button pad-x--0\",attrs:{\"id\":_vm.elementIds.OTPResendCode,\"kind\":\"compact\",\"text\":_vm.resendButtonText,\"isDisabled\":!_vm.canResendCode},on:{\"button-click\":function($event){return _vm.resendCode()}}}):_vm._e(),(_vm.displayResendCode)?_c('span',{staticClass:\"verificationCodeOr\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('Forgot.VerificationCode.Or'))+\"\\n \")]):_vm._e(),_c('iris-button',{staticClass:\"width--Button pad-x--0\",attrs:{\"id\":_vm.elementIds.OTPChangeMethod,\"kind\":\"compact\",\"text\":_vm.getSiteText('Forgot.VerificationCode.ChangeMethod')},on:{\"button-click\":function($event){return _vm.changeMethod()}}})],1),_c('form',{attrs:{\"id\":\"form_authenticated\",\"method\":\"POST\",\"action\":_vm.$store.state.configuration.redirectUrl}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.authenticatedModel.username),expression:\"authenticatedModel.username\"}],attrs:{\"type\":\"hidden\",\"name\":\"username\"},domProps:{\"value\":(_vm.authenticatedModel.username)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.authenticatedModel, \"username\", $event.target.value)}}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.authenticatedModel.nonce),expression:\"authenticatedModel.nonce\"}],attrs:{\"type\":\"hidden\",\"name\":\"nonce\"},domProps:{\"value\":(_vm.authenticatedModel.nonce)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.authenticatedModel, \"nonce\", $event.target.value)}}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--otp-code\"},[_c('container-slide',{staticClass:\"forgot-otp\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl,\"workflowName\":_vm.$store.getters.workflow}})],1),_c('div',[_c('isotope-header',{attrs:{\"siteText\":(_vm.scenarioType + \".VerificationCode.Heading\")}}),_c('one-time-code',{attrs:{\"authenticationFactor\":_vm.currentChallenge.AuthenticationFactorValue,\"oneTimeCode\":_vm.oneTimeCode},on:{\"change-stepup-method\":_vm.changeStepupMethod,\"code-entered\":_vm.otpCodeEntered}})],1),_c('template',{slot:\"footer\"},[_c('iris-button',{attrs:{\"id\":_vm.elementIds.OTPVerify,\"fullWidth\":_vm.isMobile,\"isDisabled\":_vm.buttonDisabled,\"text\":_vm.buttonText,\"isLoading\":_vm.isLoading,\"type\":\"submit\"}})],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--questions-and-answers\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--registration-disclosure\"},[_c('container-slide',{staticClass:\"registration-disclosure\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl()}})],1),_c('isotope-header',{attrs:{\"siteText\":\"Registration.Disclosure.Heading\"}}),_c('div',{staticClass:\"font-body-2\",domProps:{\"innerHTML\":_vm._s(_vm.htmlBeforeDisclosure)}}),_c('Disclosure',{attrs:{\"content\":_vm.disclosureContent,\"checkboxLabel\":_vm._f(\"sitetext\")('Global.Disclosures.Registration.LabelFor.AgreementCheckbox'),\"printLinkText\":_vm._f(\"sitetext\")('Disclosure.PrintLinkText')},on:{\"toggleDisclosureAccepted\":_vm.toggleAccepted}}),(_vm.disclosureAccepted && _vm.pdfEnabled)?_c('div',{staticClass:\"mar-top--small\",attrs:{\"data-cy\":\"PDFAccessConfirmation\"}},[_c('div',{staticClass:\"font-mar--tiny\"},[_c('div',{staticClass:\"font-subtitle-2\",attrs:{\"data-cy\":\"PDFHeading\",\"role\":\"heading\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('Registration.PDF.Heading'))+\"\\n \")]),_c('div',{staticClass:\"font-caption mar-y--small\",attrs:{\"data-cy\":\"PDFInstructions\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('Registration.PDF.Instructions'))+\"\\n \")]),_c('ol',{staticClass:\"pdf-steps\",attrs:{\"type\":\"1\"}},[_c('li',{staticClass:\"font-caption\"},[_c('a',{attrs:{\"data-cy\":\"PDFOpen\",\"href\":_vm.pdfUrl,\"target\":\"_blank\"},on:{\"click\":function($event){$event.preventDefault();return _vm.PDFOpen.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('Registration.PDF.OpenPDF'))+\"\\n \")])]),_c('li',{staticClass:\"font-caption\",attrs:{\"data-cy\":\"PDFVerifyCode\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('Registration.PDF.VerifyCode'))+\"\\n \")])]),_c('iris-textfield',{staticClass:\"mar-bottom--small\",attrs:{\"data-cy\":\"PDFCodeInput\",\"label\":_vm._f(\"sitetext\")('Registration.PDF.AccessCodeLabel'),\"hasError\":_vm.pdfCodeErrorMessages.length > 0,\"errorMessages\":_vm.pdfCodeErrorMessages},on:{\"textfield-focus\":_vm.handleTextfieldFocus},model:{value:(_vm.userPdfCode),callback:function ($$v) {_vm.userPdfCode=$$v},expression:\"userPdfCode\"}})],1)]):_vm._e(),_c('template',{slot:\"footer\"},[_c('iris-button',{staticClass:\"mar-top--xl\",attrs:{\"data-cy\":\"accept-disclosure-button\",\"text\":_vm._f(\"sitetext\")('Registration.ButtonText.Continue'),\"fullWidth\":_vm.isMobile,\"type\":\"submit\",\"isDisabled\":!_vm.canContinue,\"isLoading\":_vm.submitting,\"kind\":\"highEmphasis\"}})],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--reset-password\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--start-forgot-password\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--start-forgot-username\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--start-registration\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--step-up\"},[(_vm.stepUpCategories.length)?_c('isotope-slide',{staticClass:\"isotope-slide--squash isotope-slide--stepupOptions\"},[_c('template',{slot:\"header\"},[_c('slide-header',{attrs:{\"header\":_vm._f(\"sitetext\")('StepUp.Verification.Header'),\"subtitle\":_vm._f(\"sitetext\")('StepUp.Verification.HelperText')}}),(_vm.manualMfaEnabled)?_c('div',[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('StepUp.Verification.HelperText.ManualMfa'))+\"\\n \"),_c('a',{attrs:{\"data-cy\":\"manualMfa\"},on:{\"click\":function($event){return _vm.submitManualMfa()}}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('StepUp.Verification.HelperText.ManualMfaLink'))+\"\\n \")])]):_vm._e()],1),_c('div',{staticClass:\"isotope-selectable-category-list\"},_vm._l((_vm.stepUpCategories),function(stepUpCategory){return _c('iris-selectable-tile',{key:stepUpCategory.$id,staticClass:\"mar-right--tiny mar-bottom--tiny isotope-selectable-category-item\",attrs:{\"iconName\":_vm.authenticationFactorMetaData[stepUpCategory.StepUpModel.AuthenticationFactorValue].icon,\"isChecked\":stepUpCategory.$id === _vm.selectedStepUpCategoryId,\"label\":_vm.authenticationFactorMetaData[stepUpCategory.StepUpModel.AuthenticationFactorValue].label,\"isSingleSelection\":\"\",\"name\":\"group1\",\"value\":stepUpCategory.$id},on:{\"selectable-tile-change\":function($event){return _vm.categoryChanged(stepUpCategory)}}})}),1)],2):_vm._e(),_vm._l((_vm.stepUpCategories),function(stepUpCategory){return _c(stepUpCategory.StepUpModel.AuthenticationFactorValue,{directives:[{name:\"show\",rawName:\"v-show\",value:(stepUpCategory.$id === _vm.selectedStepUpCategoryId),expression:\"stepUpCategory.$id === selectedStepUpCategoryId\"}],key:stepUpCategory.$id,tag:\"component\",staticClass:\"isotope-step-up-category\",attrs:{\"stepUpCategory\":stepUpCategory}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--step-up\"},[_c('container-slide',{staticClass:\"forgot-stepup\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl(),\"workflowName\":_vm.$store.getters.workflow}})],1),_c('div',[_c('isotope-header',{attrs:{\"siteText\":_vm.headerText}}),(_vm.showManualGeneratedMFA)?_c('div',[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('StepUp.Verification.HelperText.ManualMfa'))+\"\\n \"),_c('a',{attrs:{\"data-cy\":\"manualMfa\"},on:{\"click\":function($event){return _vm.submitManualMfa()}}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('StepUp.Verification.HelperText.ManualMfaLink'))+\"\\n \")])]):_vm._e(),(!_vm.tokenTOTP.show)?_c('div',{staticClass:\"stepUpOptions\"},_vm._l((_vm.stepUpCategories),function(stepUpCategory){return _c('step-up-option',{key:stepUpCategory.$id,attrs:{\"stepUpCategory\":stepUpCategory,\"isSelectedCategory\":_vm.isSelectedCategory(stepUpCategory.$id)},on:{\"stepup-option-selected\":_vm.stepupCategorySelected,\"stepup-destination-selected\":_vm.stepupDestinationSelected}})}),1):_c('div',[_c('one-time-code',{attrs:{\"authenticationFactor\":_vm.selectedCategory.StepUpModel.AuthenticationFactorValue,\"oneTimeCode\":_vm.tokenTOTP.code},on:{\"change-stepup-method\":_vm.changeStepupMethod,\"code-entered\":_vm.otpCodeEntered}})],1)],1),_c('template',{slot:\"footer\"},[_c('iris-button',{attrs:{\"id\":_vm.buttonID,\"fullWidth\":_vm.isMobile,\"isDisabled\":_vm.buttonDisabled,\"text\":_vm.buttonText,\"isLoading\":_vm.isLoading,\"type\":\"submit\"}})],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--temporary-password\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--tethered\"},[(_vm.showTurnstile)?_c('div',{staticClass:\"turnstile\"},[_c('turnstile',{ref:\"turnstile\",attrs:{\"sitekey\":_vm.turnstileSiteKey,\"language\":_vm.getSiteText('Turnstile.Language'),\"action\":\"tetheredLogin\"},on:{\"response\":_vm.setTurnstileToken,\"expired\":_vm.turnstileTokenExpired,\"error\":_vm.setTurnstileError,\"disable\":_vm.disableTurnstile}}),_c('iris-notification',{class:[_vm.isMobile ? 'mar-top--small' : 'mar-top--base'],attrs:{\"kind\":\"inline\",\"roleType\":\"alertdialog\",\"messageType\":\"error\",\"message\":_vm.errorMessage,\"showCloseIcon\":false,\"showTrailingContent\":false,\"iconAriaLabel\":\"error\",\"show\":_vm.displayError,\"data-cy\":\"tetheredError\",\"closeAriaLabel\":\"Close notification\"}}),(_vm.displayError)?_c('iris-button',{staticClass:\"mar-top--base\",attrs:{\"data-cy\":\"returnToLoginButton\",\"type\":\"button\",\"text\":_vm._f(\"sitetext\")('Tethered.Loading.Button.Back'),\"href\":_vm.baseUrl}}):_vm._e()],1):_vm._e(),(_vm.showLoadingAnimation)?_c('div',{staticClass:\"animationContainer\"},[_c('iris-lottie-animation',{attrs:{\"alt\":_vm.getSiteText('Tethered.Loading.AnimationAlt'),\"isLooping\":true,\"animationJSON\":_vm.getAnimationJSON,\"isAriaHidden\":true,\"width\":64,\"data-cy\":\"loadingAnimation\"}}),_c('h2',{staticClass:\"font-content-heading--activity\",attrs:{\"data-cy\":\"heading\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('Tethered.Loading'))+\"\\n \")])],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--update-business\"},[_c('container-slide',{staticClass:\"update-business\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl()}})],1),_c('isotope-header',{attrs:{\"siteText\":\"Registration.UpdateBusiness.Heading\"}}),_c('div',{staticClass:\"subHeading mar-top--small mar-bottom--xl\",attrs:{\"data-cy\":\"updateBusinessSubHeading\"}},[_vm._v(\"\\n \"+_vm._s(_vm.getSubheading)+\"\\n \")]),_c('iris-textfield',{staticClass:\"mar-child-bottom--small\",attrs:{\"data-cy\":\"businessNameInput\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessName'),\"requiredValidationErrorMessaging\":_vm.getCustomErrorMessage('BusinessName')},model:{value:(_vm.businessName),callback:function ($$v) {_vm.businessName=$$v},expression:\"businessName\"}}),_c('iris-textfield',{staticClass:\"mar-child-bottom--small\",attrs:{\"data-cy\":\"businessPhoneInput\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessPhone'),\"hasError\":_vm.phoneHasErrorCheck,\"errorMessages\":_vm.getPhoneErrorMessage,\"validation\":false},on:{\"textfield-input\":_vm.validatePhone,\"textfield-blur\":_vm.validatePhone},model:{value:(_vm.businessPhone),callback:function ($$v) {_vm.businessPhone=$$v},expression:\"businessPhone\"}}),_c('iris-select-dropdown',{staticClass:\"mar-child-bottom--small\",attrs:{\"data-cy\":\"businessPhoneTypeInput\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessPhoneType'),\"items\":_vm.phoneTypes,\"strings\":_vm.getPhoneTypeSiteText,\"requiredValidationErrorMessaging\":_vm._f(\"sitetext\")('Registration.Input.Required')},model:{value:(_vm.businessPhoneType),callback:function ($$v) {_vm.businessPhoneType=$$v},expression:\"businessPhoneType\"}}),_c('iris-textfield',{staticClass:\"mar-child-bottom--small\",attrs:{\"data-cy\":\"businessAddressLine1Input\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessAddressLine1'),\"requiredValidationErrorMessaging\":_vm.getCustomErrorMessage('Address')},model:{value:(_vm.businessAddressLine1),callback:function ($$v) {_vm.businessAddressLine1=$$v},expression:\"businessAddressLine1\"}}),_c('iris-textfield',{staticClass:\"mar-child-bottom--small\",attrs:{\"data-cy\":\"businessAddressLine2Input\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessAddressLine2'),\"isOptional\":true},model:{value:(_vm.businessAddressLine2),callback:function ($$v) {_vm.businessAddressLine2=$$v},expression:\"businessAddressLine2\"}}),_c('iris-textfield',{staticClass:\"mar-child-bottom--small\",attrs:{\"data-cy\":\"businessCityInput\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessCity'),\"requiredValidationErrorMessaging\":_vm.getCustomErrorMessage('City')},model:{value:(_vm.businessCity),callback:function ($$v) {_vm.businessCity=$$v},expression:\"businessCity\"}}),_c('div',{staticClass:\"row\"},[_c('iris-textfield',{staticClass:\"mar-child-bottom--small column\",attrs:{\"data-cy\":\"businessStateInput\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessState'),\"minlength\":2,\"maxlength\":2,\"minLengthValidationErrorMessage\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Errors.State'),\"maxLengthValidationErrorMessage\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Errors.State')},model:{value:(_vm.businessState),callback:function ($$v) {_vm.businessState=$$v},expression:\"businessState\"}}),_c('iris-textfield',{staticClass:\"mar-child-bottom--small column\",attrs:{\"data-cy\":\"businessZipInput\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessZip'),\"hasError\":_vm.zipHasErrorCheck,\"errorMessages\":_vm.getZipErrorMessage,\"validation\":false},on:{\"textfield-input\":_vm.validateZip,\"textfield-blur\":_vm.validateZip},model:{value:(_vm.businessZip),callback:function ($$v) {_vm.businessZip=$$v},expression:\"businessZip\"}})],1),_c('iris-textfield',{staticClass:\"mar-child-bottom--small\",attrs:{\"data-cy\":\"businessEinInput\",\"label\":_vm._f(\"sitetext\")('Registration.UpdateBusiness.Input.BusinessEin'),\"hasError\":_vm.einHasErrorCheck,\"errorMessages\":_vm.getEinErrorMessage,\"validation\":false},on:{\"textfield-input\":_vm.validateEin,\"textfield-blur\":_vm.validateEin},model:{value:(_vm.businessEin),callback:function ($$v) {_vm.businessEin=$$v},expression:\"businessEin\"}}),_c('template',{slot:\"footer\"},[_c('iris-button',{staticClass:\"mar-top--xl\",attrs:{\"id\":_vm.elementIds.UpdateBusiness,\"data-cy\":\"update-business-button\",\"fullWidth\":false,\"isDisabled\":_vm.buttonDisabled,\"text\":_vm._f(\"sitetext\")('Registration.ActionButtonText'),\"isLoading\":_vm.submitting,\"type\":\"submit\"}})],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"loginPage\",staticClass:\"isotope-challenge-type--username-and-password\"},[_c('iris-sheet',{ref:\"bottomSheetRef\",class:_vm.mobileInfoPanelClass,attrs:{\"kind\":\"partial\",\"contentToggle\":_vm.showSheet,\"showScrim\":true,\"showCompactButton\":false,\"irisSheetHeader\":true,\"irisSheetHeaderText\":_vm._f(\"sitetext\")('UsernameAndPassword.InfoPanel.Header.Label'),\"suppressed\":true,\"data-cy\":\"mobileInfoPanel\"},on:{\"update:contentToggle\":function($event){_vm.showSheet=$event},\"update:content-toggle\":function($event){_vm.showSheet=$event},\"sheet:closing\":function($event){return _vm.toggleSheet(false)},\"sheet:content-toggle-request\":_vm.contentToggled},scopedSlots:_vm._u([{key:\"irisSheetContent\",fn:function(){return [_c('div',{attrs:{\"id\":\"mobile-info-panel\"},domProps:{\"innerHTML\":_vm._s(_vm.mobileInfoPanel)}})]},proxy:true}])}),_c('div',{staticClass:\"login-image-container\"},[_c('isotope-slide',{class:[\n 'usernameAndPasswordForm',\n _vm.desktopLoginLayers.length > 0 ? 'usernameAndPasswordForm--graphic-present' : '' ],on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm.apply(null, arguments)}}},[_c('div',{staticClass:\"ellipsis\",attrs:{\"id\":\"usernameAndPassword_ellipsis\"}},[_c('iris-menu-dropdown',{attrs:{\"id\":\"ellipsis_menu\",\"kind\":\"action\",\"menuAlignment\":\"right\",\"triggerType\":\"quickactionbutton\",\"items\":_vm.ellipsisConfig,\"quickActionButtonProps\":{\n kind: 'mediumEmphasis',\n variation: 'embedded',\n }},on:{\"menu-dropdown-item-selected\":_vm.ellipsisItemSelected,\"menu-dropdown-opened\":function($event){return _vm.ellipsisToggled(true)},\"menu-dropdown-closed\":function($event){return _vm.ellipsisToggled(false)}}})],1),(_vm.logoPath)?_c('div',{staticClass:\"logo isotope-hidden--mobile\"},[_c('img',{attrs:{\"src\":_vm.logoPath}})]):_vm._e(),_c('div',{staticClass:\"mar-top--small isotope-hidden--desktop\"}),_c('iris-textfield',{attrs:{\"elementId\":_vm.elementIds.Username,\"label\":_vm._f(\"sitetext\")('UsernameAndPassword.TextField.Username.Label'),\"isOptional\":false,\"kind\":\"underline\",\"isClearable\":false,\"hasError\":_vm.wrongCredentials,\"requiredValidationErrorMessaging\":_vm._f(\"sitetext\")('UsernameAndPassword.TextField.Username.Required'),\"autocomplete\":\"username\",\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"spellcheck\":\"false\"},on:{\"textfield-input\":function($event){return _vm.resetValidationError(true)}},model:{value:(_vm.username),callback:function ($$v) {_vm.username=$$v},expression:\"username\"}}),_c('iris-textfield-password',{staticClass:\"mar-top--small\",attrs:{\"autocomplete\":\"current-password\",\"elementId\":_vm.elementIds.Password,\"label\":_vm._f(\"sitetext\")('UsernameAndPassword.TextField.Password.Label'),\"kind\":\"underline\",\"isOptional\":false,\"hasError\":_vm.wrongCredentials,\"requiredValidationErrorMessaging\":_vm._f(\"sitetext\")('UsernameAndPassword.TextField.Password.Required')},on:{\"textfield-input\":function($event){return _vm.resetValidationError(false)}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),(_vm.enableRememberMe)?_c('div',{staticClass:\"rememberMe\"},[_c('iris-switch',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.isMobile ? null : _vm.rememberMeDesktopText()),expression:\"isMobile ? null : rememberMeDesktopText()\"}],attrs:{\"id\":\"rememberMeCheckBox\",\"ariaLabel\":_vm.getSiteText('UsernameAndPassword.RememberUsername.Label'),\"isSelected\":_vm.rememberUsername},on:{\"switch-change\":_vm.toggleRememberMe}}),_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('UsernameAndPassword.RememberUsername.Label'))+\"\\n \")],1):_vm._e(),(_vm.turnstileEnabled)?_c('div',{staticClass:\"turnstile\",class:[_vm.isMobile ? 'mar-top--small' : 'mar-top--base']},[_c('turnstile',{ref:\"turnstile\",attrs:{\"sitekey\":_vm.turnstileSiteKey,\"language\":_vm.getSiteText('Turnstile.Language'),\"action\":\"login\"},on:{\"response\":_vm.setTurnstileToken,\"expired\":_vm.turnstileTokenExpired,\"error\":_vm.setTurnstileError,\"disable\":_vm.disableTurnstile}})],1):_vm._e(),_c('div',{class:[_vm.isMobile ? 'mar-top--small' : 'mar-top--base']},[_c('iris-notification',{attrs:{\"roleType\":\"alertdialog\",\"useDuration\":false,\"kind\":\"inline\",\"showLeadingIcon\":true,\"messageType\":\"error-light\",\"message\":_vm.errorMessage,\"showCloseIcon\":false,\"showTrailingContent\":false,\"showTimeoutBar\":false,\"iconName\":\"alert-line\",\"iconIsIconDecorative\":false,\"iconAriaLabel\":\"error\",\"show\":_vm.hasInvalidChallengeStatus,\"data-cy\":\"invalidChallenge\",\"closeAriaLabel\":\"Close notification\"}})],1),_c('div',{class:[_vm.isMobile ? 'mar-top--small' : 'mar-top--base']},[_c('iris-notification',{attrs:{\"roleType\":\"alertdialog\",\"useDuration\":false,\"kind\":\"inline\",\"showLeadingIcon\":true,\"messageType\":\"error\",\"message\":_vm.serverErrorMessage,\"showCloseIcon\":false,\"showTrailingContent\":false,\"showTimeoutBar\":false,\"iconName\":\"alert-line\",\"iconIsIconDecorative\":false,\"iconAriaLabel\":\"error\",\"show\":_vm.displayServerError,\"data-cy\":\"serverError\",\"closeAriaLabel\":\"Close notification\"}})],1),_c('div',{class:['isotope-actions', _vm.isMobile? 'mar-top--small' : 'mar-top--base']},[_c('iris-button',{attrs:{\"id\":_vm.elementIds.AuthenticationSubmit,\"fullWidth\":true,\"isDisabled\":_vm.submitDisabled,\"text\":_vm._f(\"sitetext\")('UsernameAndPassword.Button.Login'),\"isLoading\":_vm.submitting,\"loadingText\":_vm._f(\"sitetext\")('UsernameAndPassword.Button.Login.Loading'),\"type\":\"submit\"}}),(_vm.showForgotUsernameLink || _vm.showForgotPasswordLink)?_c('forgot-links',{class:['forgotLinks', !_vm.isMobile ? 'mar-bottom--sm' : '']}):_vm._e(),(!_vm.isMobile && !_vm.shouldHideRegistration)?_c('iris-button',{class:['registration', !_vm.showAccountOpeningLink ? 'mar-top--base' : ''],attrs:{\"kind\":\"lowEmphasis\",\"fullWidth\":true,\"text\":_vm._f(\"sitetext\")('UsernameAndPassword.Button.Register')},on:{\"button-click\":_vm.goToRegistration}}):_vm._e(),(_vm.isMobile && !_vm.shouldHideRegistration)?_c('a',{staticClass:\"registration mar-top--sm\",on:{\"click\":_vm.goToRegistration}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('UsernameAndPassword.Button.Register'))+\"\\n \")]):_vm._e(),(_vm.showAccountOpeningLink)?_c('div',{class:['openAccountDiv', !_vm.isMobile? '' : 'mar-top--small']},[_c('a',{staticClass:\"openAccount\",attrs:{\"href\":_vm.openAccountRedirectUrl}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('DigitalAccountOpening.DisplayLink.Label'))+\"\\n \")])]):_vm._e()],1)],1),(_vm.desktopLoginLayers.length > 0)?_c('div',{staticClass:\"graphicPanelContainer isotope-hidden--mobile\"},_vm._l((_vm.desktopLoginLayers),function(item,index){return _c('div',{key:(\"layer_\" + index),class:['graphicPanelContainer__layer', (\"graphicPanelContainer__layer\" + index + \"--\" + (item.type))]})}),0):_vm._e(),_c('div',{staticClass:\"mar-bottom--small isotope-hidden--desktop\"})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--username-recovered\"},[_c('container-slide',{staticClass:\"username-recovered\"},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl()}})],1),_c('div',{staticClass:\"username-recovered-center\",class:[ _vm.isMobile ? 'mar-top--xl' : 'mar-top--2xl' ]},[_c('div',{staticClass:\"username-recovered-container\"},[_c('div',{ref:\"usernameRecovered\",staticClass:\"username-recovered-content\",attrs:{\"tabindex\":\"-1\"}},[_c('div',{staticClass:\"username-recovered-heading\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('ForgotUsername.Complete.Heading'))+\"\\n \")]),_c('div',{staticClass:\"username-recovered-name\"},[_vm._v(\"\\n \"+_vm._s(_vm.recoveredUsername())+\"\\n \")])]),_c('div',{staticClass:\"username-recovered-footer\"},[_c('iris-button',{attrs:{\"id\":\"loginBtn\",\"text\":_vm._f(\"sitetext\")('ForgotUsername.Complete.Button.Text'),\"fullWidth\":false,\"href\":_vm.baseUrl(),\"kind\":\"highEmphasis\"}})],1)])])],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{staticClass:\"isotope-slide\",attrs:{\"role\":\"form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.$emit('submit', $event)}}},[(_vm.hasHeader)?_c('div',{staticClass:\"isotope-slide__header\"},[_vm._t(\"header\")],2):_vm._e(),_c('div',{staticClass:\"isotope-slide__content\"},[_vm._t(\"default\")],2),(_vm.hasFooter)?_c('div',{staticClass:\"isotope-slide__footer\"},[_vm._t(\"footer\")],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"syncFailure\"},[_c('div',{staticClass:\"syncAnimation error\"}),_c('div',{staticClass:\"mar-top--base\"},[_c('div',[_c('slide-header',{attrs:{\"data-cy\":\"header\",\"header\":_vm._f(\"sitetext\")('Sync.SyncError.Header'),\"subtitle\":_vm.errorMessage}}),_c('iris-button',{staticClass:\"mar-top--big\",attrs:{\"data-cy\":\"button\",\"type\":\"button\",\"text\":_vm._f(\"sitetext\")(_vm.buttonText),\"href\":_vm.url}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h1',{ref:\"heading\",staticClass:\"font-medium-heading\",attrs:{\"tabindex\":\"-1\"}},[_vm._v(\"\\n \"+_vm._s(_vm.header)+\"\\n \")]),_c('p',{staticClass:\"mar-top--small font-body-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.subtitle)+\"\\n \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form',{staticClass:\"container-slide container-slide--content\",class:{ 'container-slide--mobile': _vm.isMobile },attrs:{\"role\":\"form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.$emit('submit', $event)}}},[_c('div',{staticClass:\"slide__header\"},[_vm._t(\"header\")],2),_c('div',{staticClass:\"slide__content\"},[_vm._t(\"default\")],2),(_vm.hasFooter)?_c('div',{staticClass:\"slide__footer\",class:{ 'container-slide-footer--mobile': _vm.isMobile }},[_vm._t(\"footer\")],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"slide\",staticClass:\"slide-header-with-nav\"},[_c('div',{staticClass:\"slide-header-close\",class:{ 'slide-header-close--mobile': _vm.isMobile }},[_c('iris-quick-action-button',{attrs:{\"id\":\"closeButton\",\"kind\":\"mediumEmphasis\",\"avatarProps\":{\n mainIconName: 'cancel-x',\n size: 'small'\n },\"label\":_vm.closeButtonText},on:{\"quick-action-button-click\":function($event){return _vm.clickCloseButton($event)}}})],1),_c('ProgressBar',{staticClass:\"progress\"}),_c('iris-notification',{staticClass:\"slide-header-notification\",attrs:{\"data-cy\":\"slideHeaderNotification\",\"roleType\":\"alert\",\"useDuration\":false,\"kind\":\"inline\",\"showLeadingIcon\":true,\"messageType\":\"error-light\",\"message\":_vm.errorMessage,\"showCloseIcon\":false,\"showTrailingContent\":false,\"showTimeoutBar\":false,\"iconName\":\"alert-line\",\"iconIsIconDecorative\":false,\"iconAriaLabel\":\"closeError\",\"show\":_vm.displayErrorMessage,\"closeAriaLabel\":\"Close notification\"},on:{\"update:show\":function($event){_vm.displayErrorMessage=$event},\"notification-close\":_vm.closeNotification}}),_c('iris-sheet',{attrs:{\"contentToggle\":_vm.contentToggle,\"irisSheetHeader\":false,\"irisSheetFooter\":true,\"kind\":\"partial\",\"suppressed\":true,\"showCloseButton\":false},on:{\"update:contentToggle\":function($event){_vm.contentToggle=$event},\"update:content-toggle\":function($event){_vm.contentToggle=$event},\"sheet:closed\":_vm.sheetClosed},scopedSlots:_vm._u([{key:\"irisSheetContent\",fn:function(){return [_c('div',{staticClass:\"close-confirm-heading text--center mar-top--xl mar-bottom--md\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('ForgotWorkflow.Close.Confirm.Header'))+\"\\n \")]),_c('div',{staticClass:\"text--center close-confirm-text\"},[_vm._v(\"\\n \"+_vm._s(_vm.cancelConfirmText())+\"\\n \")])]},proxy:true},{key:\"irisSheetFooter\",fn:function(){return [_c('iris-button',{attrs:{\"id\":\"btn_confirmClose\",\"kind\":\"highEmphasis\",\"text\":_vm._f(\"sitetext\")('ForgotWorkflow.Close.Confirm.Button.Text'),\"fullWidth\":true},on:{\"button-click\":function($event){return _vm.clickConfirmClose()}}}),_c('iris-button',{attrs:{\"id\":\"btn_cancelClose\",\"kind\":\"lowEmphasis\",\"text\":_vm._f(\"sitetext\")('ForgotWorkflow.Close.Cancel.Button.Text'),\"fullWidth\":true},on:{\"button-click\":function($event){return _vm.clickCancelClose()}}})]},proxy:true}])})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"isotope-challenge-type--choose-scenario\"},[_c('container-slide',{staticClass:\"choose-scenario--container-slide\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm()}}},[_c('template',{slot:\"header\"},[_c('SlideHeaderWithNav',{attrs:{\"url\":_vm.baseUrl()}})],1),_c('isotope-header',{attrs:{\"siteText\":_vm.scenarioType() + '.ChooseScenario.Heading'}}),_c('div',{staticClass:\"choose-scenario--container\"},_vm._l((_vm.scenarios),function(scenario){return _c('span',{key:scenario.Id,attrs:{\"role\":\"button\",\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.selectScenario(scenario.Id)},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.selectScenario(scenario.Id)}}},[_c('iris-card',{staticClass:\"choose-scenario--card\",attrs:{\"name\":_vm.cardName,\"hasHoverState\":true,\"hasActiveState\":true,\"cardCursorPointer\":\"pointer\"}},[_c('h2',{staticClass:\"font-content-heading--activity-description choose-scenario--text mar--0 font-size--sm\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")(_vm.scenarioType() + '.ChooseScenario.' + scenario.Name + '.Text'))+\"\\n \")]),_c('div',{staticClass:\"font-content-heading--activity-description-label choose-scenario--description mar--0 font-size--xs\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")(_vm.scenarioType() + '.ChooseScenario.' + scenario.Name + '.Description'))+\"\\n \")])])],1)}),0)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"heading\",class:_vm.cssClasses,attrs:{\"tabindex\":\"-1\",\"role\":\"heading\",\"data-cy\":\"isotope-header\",\"aria-level\":\"1\"}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")(_vm.siteText))+\"\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"field-group\"},[_c('div',{staticClass:\"mar-child-bottom--small\"},[_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.textForGroup(_vm.scenarioType,_vm.index))+\"\\n \")])]),_vm._l((_vm.fields),function(field){return _c('user-identifying-field',{key:field.Id,staticClass:\"mar-child-bottom--small\",attrs:{\"id\":field.Id,\"fieldType\":field.IdentifyingFieldType,\"isRequired\":field.IsRequired,\"isSensitive\":field.IsSensitive,\"scenarioType\":_vm.scenarioType,\"scenarioName\":_vm.scenarioName,\"regex\":field.MatchRegEx},on:{\"validation-check\":_vm.validationCheck},model:{value:(field.Value),callback:function ($$v) {_vm.$set(field, \"Value\", $$v)},expression:\"field.Value\"}})})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"disclosure\",attrs:{\"data-cy\":\"disclosure-text\"},domProps:{\"innerHTML\":_vm._s(_vm.content)},on:{\"scroll\":_vm.scrollDisclosure}}),_c('div',{attrs:{\"id\":\"accept-disclosure-wrapper\"}},[_c('iris-checkbox',{staticClass:\"accept-disclosure-checkbox\",class:{ 'disclosure-checkbox--mobile': _vm.isMobile },attrs:{\"id\":_vm.elementIds.DisclosureCheckbox,\"data-cy\":\"accept-disclosure-checkbox\",\"label\":_vm.checkboxLabel,\"isLowEmphasis\":false},on:{\"checkbox-change\":_vm.toggleAccepted}}),_c('iris-quick-action-button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:(_vm.printLinkText),expression:\"printLinkText\"}],staticClass:\"disclosure-print\",class:{ 'hidden': _vm.isMobile },attrs:{\"data-cy\":\"disclosure-print\",\"label\":_vm.printLinkText,\"kind\":\"mediumEmphasis\",\"variation\":\"embedded\",\"alignment\":\"left\",\"avatar-props\":{ mainIconName: 'print', size: 'small' },\"target\":\"_blank\",\"href\":_vm.disclosurePrintLink},on:{\"quick-action-button-click\":_vm.printClicked}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"stepUpOption\"},[_c('iris-radio-button',{attrs:{\"label\":_vm.getText('Label'),\"value\":_vm.stepUpType,\"name\":_vm.elementIds.StepUpCategory},on:{\"radio-button-change\":_vm.buttonChanged}}),_c('div',{staticClass:\"stepUpDetails\"},[_c('div',{staticClass:\"stepUpDescription\"},[_vm._v(\"\\n \"+_vm._s(_vm.getText('Description'))+\"\\n \")]),(_vm.showDropdown)?_c('iris-select-dropdown',{staticClass:\"stepUpDestinations\",attrs:{\"name\":_vm.elementIds.StepUpDestination,\"strings\":_vm.getStrings,\"items\":_vm.getItems,\"showListDividers\":true},model:{value:(_vm.selectedDestination),callback:function ($$v) {_vm.selectedDestination=$$v},expression:\"selectedDestination\"}}):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"turnstileContainer\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('span',_vm._g({class:{'font-caption': !_vm.isMobile},attrs:{\"data-cy\":\"FUFPText\"},domProps:{\"innerHTML\":_vm._s(_vm.FUFPText)},on:{\"click\":function($event){$event.preventDefault();return _vm.handleClick.apply(null, arguments)}}},_vm.useIrisSheetForFUFP ? { click: _vm.mobileForgotUsernameOrPassword } : {})),(_vm.useIrisSheetForFUFP)?_c('iris-sheet',{attrs:{\"kind\":\"partial\",\"irisSheetHeader\":false,\"showScrim\":true,\"suppressed\":true,\"contentToggle\":_vm.FUFPToggle,\"data-cy\":\"FUFPSheet\"},on:{\"update:contentToggle\":function($event){_vm.FUFPToggle=$event},\"update:content-toggle\":function($event){_vm.FUFPToggle=$event}},scopedSlots:_vm._u([{key:\"irisSheetContent\",fn:function(){return [_c('a',{staticClass:\"FUFPLink\",attrs:{\"data-cy\":\"username\",\"href\":_vm.forgotUsernameUrl},on:{\"click\":function($event){$event.preventDefault();return _vm.handleClick.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('UsernameAndPassword.Link.ForgotUsername'))+\"\\n \"),_c('iris-avatar',{attrs:{\"mainIconName\":\"angle\",\"letterIconColor\":\"rgb(var(--colorBrandedAffordanceAccessible))\"}})],1),_c('hr',{staticClass:\"irisv-divider\"}),_c('a',{staticClass:\"FUFPLink\",attrs:{\"data-cy\":\"password\",\"href\":_vm.forgotPasswordUrl},on:{\"click\":function($event){$event.preventDefault();return _vm.handleClick.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('UsernameAndPassword.Link.ForgotPassword'))+\"\\n \"),_c('iris-avatar',{attrs:{\"mainIconName\":\"angle\",\"letterIconColor\":\"rgb(var(--colorBrandedAffordanceAccessible))\"}})],1)]},proxy:true}],null,false,1202909185)}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('isotope-slide',{staticClass:\"stepup-biometric\"},[_vm._v(\"\\n Biometric\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('code-stepup',{staticClass:\"isotope-step-up-category--email-code\",attrs:{\"stepUpCategory\":_vm.stepUpCategory}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('isotope-slide',{staticClass:\"stepup-push-notification\"},[_vm._v(\"\\n Push Notification\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('isotope-slide',{staticClass:\"stepup-questions-and-answers\"},[_vm._v(\"\\n Questions And Answers\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('code-stepup',{staticClass:\"isotope-step-up-category--sms-code\",attrs:{\"stepUpCategory\":_vm.stepUpCategory}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('token-stepup',{staticClass:\"isotope-step-up-category--totp\",attrs:{\"stepUpCategory\":_vm.stepUpCategory,\"tokenLength\":6}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('token-stepup',{staticClass:\"isotope-step-up-category--token\",attrs:{\"stepUpCategory\":_vm.stepUpCategory,\"tokenLength\":8}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('isotope-slide',{staticClass:\"stepup-unknown\"},[_vm._v(\"\\n Unknown MFA Option\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('code-stepup',{staticClass:\"isotope-step-up-category--voice-code\",attrs:{\"stepUpCategory\":_vm.stepUpCategory}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('isotope-slide',{staticClass:\"stepup-voice-prompt\"},[_vm._v(\"\\n Voice Prompt\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('isotope-slide',{staticClass:\"stepup-web-authn\"},[_vm._v(\"\\n Web Authn\\n\")])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showProgressBar)?_c('div',{staticClass:\"progressBarContainer\"},[_c('div',{staticClass:\"progressBarHeading\"},[_vm._v(\"\\n \"+_vm._s(_vm.progressBarHeading)+\"\\n \")]),_c('div',{staticClass:\"progressBarBackground\"},[_c('div',{staticClass:\"progressBar\",style:({ width: _vm.percentComplete + '%' })})])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.isOfFieldType(_vm.fieldType,'IsBusiness'))?_c('iris-checkbox',{attrs:{\"name\":_vm.getNameForField(_vm.fieldType),\"label\":_vm.label(_vm.fieldType, _vm.scenarioType)},model:{value:(_vm.inputVal),callback:function ($$v) {_vm.inputVal=$$v},expression:\"inputVal\"}}):(_vm.isOfFieldType(_vm.fieldType,'State'))?_c('iris-textfield-dropdown',{attrs:{\"name\":_vm.getNameForField(_vm.fieldType),\"label\":_vm.label(_vm.fieldType, _vm.scenarioType),\"isOptional\":!_vm.isRequired,\"helperText\":_vm.helperText(_vm.fieldType,_vm.scenarioType),\"optionalText\":_vm.optionalText(),\"items\":_vm.states,\"validationRules\":_vm.validationRules(_vm.fieldType,_vm.scenarioType)},on:{\"validation-check\":_vm.validationCheck,\"textfield-focus\":_vm.handleTextfieldFocus},model:{value:(_vm.inputVal),callback:function ($$v) {_vm.inputVal=$$v},expression:\"inputVal\"}}):(_vm.isOfFieldType(_vm.fieldType,'DateOfBirth'))?_c('iris-textfield-date',{attrs:{\"name\":_vm.getNameForField(_vm.fieldType),\"label\":_vm.label(_vm.fieldType, _vm.scenarioType),\"isOptional\":!_vm.isRequired,\"optionalText\":_vm.optionalText(),\"validationRules\":_vm.validationRules(_vm.fieldType,_vm.scenarioType)},on:{\"validation-check\":_vm.validationCheck,\"textfield-focus\":_vm.handleTextfieldFocus},model:{value:(_vm.inputVal),callback:function ($$v) {_vm.inputVal=$$v},expression:\"inputVal\"}}):(_vm.isSensitive && _vm.validationRules(_vm.fieldType)!==null)?_c('iris-textfield-password',{attrs:{\"name\":_vm.getNameForField(_vm.fieldType),\"label\":_vm.label(_vm.fieldType, _vm.scenarioType),\"isOptional\":!_vm.isRequired,\"helperText\":_vm.helperText(_vm.fieldType,_vm.scenarioType),\"optionalText\":_vm.optionalText(),\"requiredValidationErrorMessaging\":_vm.requiredText(_vm.fieldType,_vm.scenarioType),\"validationRules\":_vm.validationRules(_vm.fieldType,_vm.scenarioType),\"hidePasswordIconAriaLabel\":_vm.toggleHiddenText(_vm.fieldType, 'Hide'),\"showPasswordIconAriaLabel\":_vm.toggleHiddenText(_vm.fieldType, 'Show')},on:{\"validation-check\":_vm.validationCheck,\"textfield-focus\":_vm.handleTextfieldFocus},model:{value:(_vm.inputVal),callback:function ($$v) {_vm.inputVal=$$v},expression:\"inputVal\"}}):(_vm.isSensitive && _vm.validationRules(_vm.fieldType)===null)?_c('iris-textfield-password',{attrs:{\"name\":_vm.getNameForField(_vm.fieldType),\"label\":_vm.label(_vm.fieldType, _vm.scenarioType),\"isOptional\":!_vm.isRequired,\"helperText\":_vm.helperText(_vm.fieldType,_vm.scenarioType),\"optionalText\":_vm.optionalText(),\"requiredValidationErrorMessaging\":_vm.requiredText(_vm.fieldType,_vm.scenarioType),\"hidePasswordIconAriaLabel\":_vm.toggleHiddenText(_vm.fieldType, 'Hide'),\"showPasswordIconAriaLabel\":_vm.toggleHiddenText(_vm.fieldType, 'Show')},on:{\"validation-check\":_vm.validationCheck,\"textfield-focus\":_vm.handleTextfieldFocus},model:{value:(_vm.inputVal),callback:function ($$v) {_vm.inputVal=$$v},expression:\"inputVal\"}}):(!_vm.isSensitive && _vm.validationRules(_vm.fieldType)!==null)?_c('iris-textfield',{attrs:{\"name\":_vm.getNameForField(_vm.fieldType),\"label\":_vm.label(_vm.fieldType, _vm.scenarioType),\"isOptional\":!_vm.isRequired,\"helperText\":_vm.helperText(_vm.fieldType,_vm.scenarioType),\"optionalText\":_vm.optionalText(),\"requiredValidationErrorMessaging\":_vm.requiredText(_vm.fieldType,_vm.scenarioType),\"validationRules\":_vm.validationRules(_vm.fieldType,_vm.scenarioType)},on:{\"validation-check\":_vm.validationCheck,\"textfield-focus\":_vm.handleTextfieldFocus},model:{value:(_vm.inputVal),callback:function ($$v) {_vm.inputVal=$$v},expression:\"inputVal\"}}):_c('iris-textfield',{attrs:{\"name\":_vm.getNameForField(_vm.fieldType),\"label\":_vm.label(_vm.fieldType, _vm.scenarioType),\"isOptional\":!_vm.isRequired,\"helperText\":_vm.helperText(_vm.fieldType,_vm.scenarioType),\"optionalText\":_vm.optionalText(),\"requiredValidationErrorMessaging\":_vm.requiredText(_vm.fieldType,_vm.scenarioType)},on:{\"validation-check\":_vm.validationCheck,\"textfield-focus\":_vm.handleTextfieldFocus},model:{value:(_vm.inputVal),callback:function ($$v) {_vm.inputVal=$$v},expression:\"inputVal\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('isotope-slide',{staticClass:\"code-stepup\",on:{\"submit\":function($event){$event.preventDefault();return _vm.sendCode()}}},[_c('div',{staticClass:\"isotope-hidden--mobile\"},[_c('slide-header',{attrs:{\"header\":_vm.header,\"subtitle\":_vm.subtitle}}),_c('div',{staticClass:\"mar-bottom--gigantic\"})],1),_c('div',{staticClass:\"mar-bottom--small\"},[_c('div',{staticClass:\"mar-top--small stepup-error\"},[_c('iris-notification',{attrs:{\"roleType\":\"alertdialog\",\"useDuration\":false,\"kind\":\"inline\",\"showLeadingIcon\":true,\"messageType\":\"error\",\"message\":_vm._f(\"sitetext\")('Error.Generic'),\"showCloseIcon\":false,\"showTrailingContent\":false,\"showTimeoutBar\":false,\"iconName\":\"alert-line\",\"iconIsIconDecorative\":false,\"iconAriaLabel\":\"error\",\"show\":_vm.hasServerError,\"closeAriaLabel\":\"Close notification\"}})],1),_c('div',{attrs:{\"id\":_vm.ariaDescriptionId}},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")((\"StepUp.OneTimeCode.Destination.\" + (_vm.stepUpCategory.StepUpModel.AuthenticationFactorValue) + \".Description\")))+\"\\n \")]),(_vm.destinations.length)?_c('fieldset',{staticClass:\"select-destination isotope-actions\",attrs:{\"aria-describedby\":_vm.ariaDescriptionId}},_vm._l((_vm.destinations),function(destination){return _c('iris-cloaked-checkmark',{key:destination.$id,staticClass:\"code-stepup--row-destinations no-title\",attrs:{\"name\":\"destinations\",\"isSingleSelection\":\"\",\"isChecked\":_vm.selectedDestinationId === destination.$id,\"label\":destination.MaskedAddress.toLowerCase(),\"value\":destination.$id,\"hasRightAlignCheckmark\":\"\"},on:{\"cloaked-checkmark-change\":function($event){return _vm.changeDestinationSelection(destination.$id)}}})}),1):_vm._e()]),_c('div',{staticClass:\"isotope-actions\"},[_c('remember-device')],1),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"isotope-actions isotope-actions--row-reverse\",class:{ 'mar-bottom--small': _vm.isMobile }},[_c('iris-button',{class:{ 'mar-bottom--tiny' : _vm.isMobile },attrs:{\"data-cy\":\"sendCode\",\"type\":\"submit\",\"isDisabled\":_vm.isSubmitting || _vm.navigatingBack,\"isLoading\":_vm.isSubmitting,\"text\":_vm._f(\"sitetext\")('CodeStepup.Button.SendCode')}}),_c('iris-button',{class:{ 'mar-right--tiny' : !_vm.isMobile },attrs:{\"kind\":\"lowEmphasis\",\"disabled\":_vm.isSubmitting || _vm.navigatingBack,\"isLoading\":_vm.navigatingBack,\"text\":_vm._f(\"sitetext\")('MFA.Button.Navigate.Back')},on:{\"button-click\":function($event){return _vm.navigateBack()}}})],1)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('isotope-slide',{staticClass:\"isotope-step-up-category--token\",on:{\"submit\":function($event){$event.preventDefault();return _vm.verifyCode()}}},[_c('div',{staticClass:\"isotope-hidden--mobile\"},[_c('slide-header',{attrs:{\"header\":_vm.header,\"subtitle\":_vm.subtitle}}),_c('div',{staticClass:\"mar-bottom--gigantic\"})],1),_c('div',{staticClass:\"isotope-actions mar-bottom--big\"},[_c('div',{staticClass:\"mar-top--small stepup-error\"},[_c('iris-notification',{attrs:{\"roleType\":\"alertdialog\",\"useDuration\":false,\"kind\":\"inline\",\"showLeadingIcon\":true,\"messageType\":\"error\",\"message\":_vm._f(\"sitetext\")('Error.Generic'),\"showCloseIcon\":false,\"showTrailingContent\":false,\"showTimeoutBar\":false,\"iconName\":\"alert-line\",\"iconIsIconDecorative\":false,\"iconAriaLabel\":\"error\",\"show\":_vm.hasServerError,\"closeAriaLabel\":\"Close notification\"}})],1),_c('iris-display-input-field-specified',{attrs:{\"elementId\":_vm.elementId,\"actiontext\":_vm._f(\"sitetext\")('StepUp.Token.DisplayInput.ActionText'),\"align\":\"center\",\"hasError\":_vm.hasError,\"errortext\":_vm.errorText,\"helpertext\":_vm.inputHelperText,\"keyboardType\":\"numeric\",\"maxlength\":_vm.tokenLength,\"minlength\":_vm.tokenLength},on:{\"display-input-field-input\":_vm.tokenCodeUpdated,\"display-input-field-focus\":_vm.onFocus},model:{value:(_vm.$data.tokenCode),callback:function ($$v) {_vm.$set(_vm.$data, \"tokenCode\", $$v)},expression:\"$data.tokenCode\"}})],1),_c('div',{staticClass:\"isotope-actions\"},[_c('remember-device')],1),_c('template',{slot:\"footer\"},[_c('div',{staticClass:\"isotope-actions isotope-actions--row-reverse\",class:{ 'mar-bottom--small': _vm.isMobile }},[_c('iris-button',{class:{ 'mar-bottom--tiny' : _vm.isMobile },attrs:{\"id\":\"btn_SubmitTOTP\",\"isLoading\":_vm.submitting,\"isDisabled\":_vm.submitting || !_vm.tokenCode,\"type\":\"submit\",\"text\":_vm._f(\"sitetext\")('StepUp.Token.Button.Verify')}}),_c('iris-button',{class:{ 'mar-right--tiny' : !_vm.isMobile },attrs:{\"kind\":\"lowEmphasis\",\"disabled\":_vm.isNavigatingBack || _vm.submitting,\"text\":_vm._f(\"sitetext\")('MFA.Button.Navigate.Back'),\"isLoading\":_vm.isNavigatingBack},on:{\"button-click\":function($event){return _vm.navigateBack()}}})],1)])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.canRememberDevice)?_c('div',[_c('div',{staticClass:\"remember-device--checkbox mar-bottom--small\"},[_c('iris-checkbox',{key:\"rememberDevice\",attrs:{\"id\":\"rememberDeviceCheckBox\",\"value\":_vm.rememberDevice,\"isChecked\":_vm.rememberDevice,\"label\":_vm._f(\"sitetext\")('RememberDevice.RememberThisDevice')},on:{\"checkbox-change\":_vm.toggleRememberStatus}})],1),(_vm.rememberDevice)?_c('div',[_c('iris-textfield',{staticClass:\"mar-bottom--small\",attrs:{\"label\":_vm._f(\"sitetext\")('RememberDevice.DeviceName'),\"hasError\":_vm.hasError,\"errorMessages\":_vm.errorText,\"kind\":\"underline\"},model:{value:(_vm.deviceName),callback:function ($$v) {_vm.deviceName=$$v},expression:\"deviceName\"}})],1):_vm._e(),(!_vm.rememberDevice)?_c('div',{staticClass:\"deviceName-placeholder isotope-hidden--mobile\"}):_vm._e()]):_vm._e(),(_vm.showMandatory2faMessage)?_c('div',{staticClass:\"mandatory2fa mar-bottom--small\"},[_vm._v(\"\\n \"+_vm._s(_vm._f(\"sitetext\")('RememberDevice.Unavailable.Mandatory2fa'))+\"\\n \")]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.Workflow = void 0;\r\nvar Workflow;\r\n(function (Workflow) {\r\n Workflow[\"Authentication\"] = \"Authentication\";\r\n Workflow[\"ForgotUsername\"] = \"ForgotUsername\";\r\n Workflow[\"ForgotPassword\"] = \"ForgotPassword\";\r\n Workflow[\"Registration\"] = \"Registration\";\r\n})(Workflow = exports.Workflow || (exports.Workflow = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst vuex_1 = tslib_1.__importDefault(require(\"vuex\"));\r\nconst api_1 = require(\"../api\");\r\nconst ChallengeType_1 = require(\"../enums/ChallengeType\");\r\nconst Workflow_1 = require(\"../enums/Workflow\");\r\nconst ChallengeStatus_1 = require(\"../enums/ChallengeStatus\");\r\nvue_1.default.use(vuex_1.default);\r\nexports.default = new vuex_1.default.Store({\r\n state: {\r\n challengeStatus: ChallengeStatus_1.ChallengeStatus.Unknown,\r\n currentChallenge: { ChallengeTypeValue: ChallengeType_1.ChallengeType.Empty },\r\n challengeHistory: [{ ChallengeTypeValue: ChallengeType_1.ChallengeType.Empty }],\r\n configuration: {},\r\n errors: [],\r\n machineSecretProvider: {},\r\n nonce: null,\r\n progression: [ChallengeType_1.ChallengeType.Empty],\r\n isSubmittingChallenge: false,\r\n rememberDevice: false,\r\n deviceName: '',\r\n remainOnStepUpScreenOnFailure: false,\r\n rememberUsername: false,\r\n rememberedUsername: '',\r\n hasRememberedUsername: false,\r\n authenticatedModel: { username: '', nonce: '' },\r\n isSyncing: false,\r\n checkSyncResultChallenge: { ChallengeTypeValue: ChallengeType_1.ChallengeType.CheckSyncResult },\r\n showRememberDevice: false,\r\n isStepUpMandatory: false,\r\n currentWorkflowMaxSteps: 0,\r\n currentWorkflowStep: 0,\r\n isResendingOTP: false,\r\n isSubmittingAuthenticatedModel: false,\r\n turnstileToken: '',\r\n isCypress: false,\r\n username: '',\r\n },\r\n getters: {\r\n currentChallengeType: (state) => {\r\n return state.currentChallenge.ChallengeTypeValue;\r\n },\r\n currentChallenge: (state) => {\r\n return state.currentChallenge;\r\n },\r\n siteTextMap: (state) => {\r\n return state.configuration.siteTextMap;\r\n },\r\n debugSiteText: (state) => {\r\n return state.configuration.debugSiteText || false;\r\n },\r\n loginCredentials: (state) => {\r\n return state.configuration.loginCredentials;\r\n },\r\n rememberDevice: (state) => {\r\n return state.rememberDevice;\r\n },\r\n deviceName: (state) => {\r\n return state.deviceName;\r\n },\r\n remainOnStepUpScreenOnFailure: (state) => {\r\n return state.remainOnStepUpScreenOnFailure;\r\n },\r\n canRememberDevice: (state) => {\r\n const currentMachineSecretProvider = state.configuration.machineSecretProvider;\r\n return state.showRememberDevice && (currentMachineSecretProvider !== null && currentMachineSecretProvider !== '');\r\n },\r\n challengeStatus: (state) => {\r\n return state.challengeStatus;\r\n },\r\n rememberUsername: (state) => {\r\n return state.rememberUsername;\r\n },\r\n ellipsisConfig: (state) => {\r\n return JSON.parse(JSON.stringify(state.configuration.ellipsisConfig));\r\n },\r\n hasServerError: (state) => {\r\n return state.errors.length > 0;\r\n },\r\n hasInvalidChallengeStatus: (state) => {\r\n return state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Success &&\r\n state.challengeStatus !== ChallengeStatus_1.ChallengeStatus.Unknown;\r\n },\r\n hasSessionExpiredError: (state) => {\r\n return state.challengeStatus === ChallengeStatus_1.ChallengeStatus.SessionExpired;\r\n },\r\n isSubmittingChallenge: (state) => {\r\n return state.isSubmittingChallenge;\r\n },\r\n authenticatedModel: (state) => {\r\n return state.authenticatedModel;\r\n },\r\n isSyncing: (state) => {\r\n return state.isSyncing;\r\n },\r\n checkSyncResultChallenge: (state) => {\r\n return state.checkSyncResultChallenge;\r\n },\r\n configuration: (state) => {\r\n return state.configuration;\r\n },\r\n challengeHistory: (state) => {\r\n return state.challengeHistory;\r\n },\r\n showRememberDevice: (state) => {\r\n return state.showRememberDevice;\r\n },\r\n isStepUpMandatory: (state) => {\r\n return state.isStepUpMandatory;\r\n },\r\n isMobile: (state) => {\r\n if (state.configuration.baseUrl)\r\n return state.configuration.baseUrl.toLowerCase().includes('mobile');\r\n return false;\r\n },\r\n isNativeApplication: (state) => {\r\n return state.configuration.isNativeApplication.toLowerCase() === 'true';\r\n },\r\n isForgotPasswordWorkflow: (state) => {\r\n if (state.currentChallenge) {\r\n const currentChallenge = state.currentChallenge;\r\n return currentChallenge.Progression.includes(ChallengeType_1.ChallengeType.StartForgotPassword);\r\n }\r\n return false;\r\n },\r\n isForgotUsernameWorkflow: (state) => {\r\n if (state.currentChallenge) {\r\n const currentChallenge = state.currentChallenge;\r\n return currentChallenge.Progression.includes(ChallengeType_1.ChallengeType.StartForgotUsername);\r\n }\r\n return false;\r\n },\r\n isRegistering: (state) => {\r\n if (state.currentChallenge) {\r\n const currentChallenge = state.currentChallenge;\r\n return currentChallenge.Progression.includes(ChallengeType_1.ChallengeType.StartRegistration);\r\n }\r\n return false;\r\n },\r\n workflow: (state, getters) => {\r\n if (getters.isForgotPasswordWorkflow)\r\n return Workflow_1.Workflow.ForgotPassword;\r\n else if (getters.isForgotUsernameWorkflow)\r\n return Workflow_1.Workflow.ForgotUsername;\r\n else if (getters.isRegistering)\r\n return Workflow_1.Workflow.Registration;\r\n return Workflow_1.Workflow.Authentication;\r\n },\r\n currentWorkflowMaxSteps: (state) => {\r\n return state.currentWorkflowMaxSteps;\r\n },\r\n currentWorkflowStep: (state) => {\r\n return state.currentWorkflowStep;\r\n },\r\n isResendingOTP: (state) => {\r\n return state.isResendingOTP;\r\n },\r\n isSubmittingAuthenticatedModel: (state) => {\r\n return state.isSubmittingAuthenticatedModel;\r\n },\r\n displayAccountOpeningLink: (state) => {\r\n var _a;\r\n return ((_a = state.configuration.displayAccountOpeningLink) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'true';\r\n },\r\n displayForgotPasswordLink: (state) => {\r\n var _a;\r\n return ((_a = state.configuration.displayForgotPasswordLink) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'true';\r\n },\r\n displayForgotUsernameLink: (state) => {\r\n var _a;\r\n return ((_a = state.configuration.displayForgotUsernameLink) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'true';\r\n },\r\n enableAppStoreNavigationPrompt: (state) => {\r\n var _a;\r\n return ((_a = state.configuration.enableAppStoreNavigationPrompt) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'true';\r\n },\r\n disableDesktopRegistration: (state) => {\r\n var _a;\r\n return ((_a = state.configuration.disableDesktopRegistration) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === 'true';\r\n },\r\n enableRememberMe: (state) => {\r\n var _a;\r\n return ((_a = state.configuration.enableRememberMe) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase()) === 'true';\r\n },\r\n initialChallengeType: (state) => {\r\n return state.configuration.initialChallengeType;\r\n },\r\n username: (state) => {\r\n return state.username;\r\n },\r\n },\r\n mutations: {\r\n configuration: (state, configuration) => {\r\n state.configuration = configuration;\r\n },\r\n errors: (state, errors) => {\r\n state.errors = errors;\r\n },\r\n machineSecretProvider: (state, provider) => {\r\n state.machineSecretProvider = provider;\r\n },\r\n currentChallenge: (state, challengeType) => {\r\n state.currentChallenge = challengeType;\r\n state.challengeHistory.push(challengeType);\r\n },\r\n challengeStatus: (state, status) => {\r\n state.challengeStatus = status;\r\n },\r\n isSubmittingChallenge: (state, bool) => {\r\n state.isSubmittingChallenge = bool;\r\n },\r\n clearLoginCredentials: (state) => {\r\n state.configuration.loginCredentials = undefined;\r\n },\r\n setRememberDevice: (state, bool) => {\r\n state.rememberDevice = bool;\r\n },\r\n setDeviceName: (state, name) => {\r\n state.deviceName = name;\r\n },\r\n setRemainOnStepUpScreenOnFailure: (state, bool) => {\r\n state.remainOnStepUpScreenOnFailure = bool;\r\n },\r\n setRememberUsername: (state, rememberUsername) => {\r\n state.rememberUsername = rememberUsername;\r\n },\r\n updateEllipsisConfig: (state, ellipsisConfig) => {\r\n state.configuration.ellipsisConfig = ellipsisConfig;\r\n },\r\n setRememberedUsername: (state, rememberedUsername) => {\r\n state.rememberedUsername = rememberedUsername;\r\n },\r\n hasRememberedUsername: (state, hasRememberedUsername) => {\r\n state.hasRememberedUsername = hasRememberedUsername;\r\n },\r\n authenticatedModel: (state, authenticatedModel) => {\r\n state.authenticatedModel = authenticatedModel;\r\n },\r\n isSyncing: (state, isSyncing) => {\r\n state.isSyncing = isSyncing;\r\n },\r\n setShowRememberDevice: (state, showRememberDevice) => {\r\n state.showRememberDevice = showRememberDevice;\r\n },\r\n setIsStepUpMandatory: (state, isStepUpMandatory) => {\r\n state.isStepUpMandatory = isStepUpMandatory;\r\n },\r\n setCurrentWorkflowMaxSteps: (state, currentWorkflowMaxSteps) => {\r\n state.currentWorkflowMaxSteps = currentWorkflowMaxSteps;\r\n },\r\n setCurrentWorkflowStep: (state, currentWorkflowStep) => {\r\n state.currentWorkflowStep = currentWorkflowStep;\r\n },\r\n setIsResendingOTP: (state, resendingOTP) => {\r\n state.isResendingOTP = resendingOTP;\r\n },\r\n setIsSubmittingAuthenticatedModel: (state, submitting) => {\r\n state.isSubmittingAuthenticatedModel = submitting;\r\n },\r\n setTurnstileToken: (state, token) => {\r\n state.turnstileToken = token;\r\n },\r\n setTurnstileEnableState: (state, enabled) => {\r\n state.configuration.turnstileEnabled = enabled;\r\n },\r\n isCypress: (state, isCypress) => {\r\n state.isCypress = isCypress;\r\n },\r\n setUserName: (state, name) => {\r\n state.username = name;\r\n },\r\n },\r\n actions: {\r\n debug: (context, bool) => {\r\n context.commit('configuration', {\r\n ...context.state.configuration,\r\n debugSiteText: bool,\r\n });\r\n return;\r\n },\r\n initializeIsotope: async (context, payload) => {\r\n const configuration = payload.configuration;\r\n context.commit('configuration', configuration);\r\n return context.dispatch('submitChallenge', {});\r\n },\r\n submitChallenge: async (context, challenge) => {\r\n const challengeProcessor = new api_1.ChallengeProcessor(context, challenge);\r\n let response = null;\r\n try {\r\n response = await challengeProcessor.submitChallenge();\r\n }\r\n catch (error) {\r\n if (typeof error.json == 'function') {\r\n try {\r\n response = await error.json();\r\n }\r\n catch (ex) {\r\n // Do nothing\r\n }\r\n }\r\n else\r\n response = error;\r\n }\r\n if (response == null || response.ChallengeStatusValue == null && response.ValidationResults == null) {\r\n context.commit('errors', [\r\n {\r\n CustomSubCode: '',\r\n ErrorCode: 0,\r\n Field: '',\r\n ItemIndex: 0,\r\n Message: 'An unknown error occurred.',\r\n Origin: challenge.ChallengeTypeValue,\r\n Severity: 1,\r\n SubCode: 0,\r\n },\r\n ]);\r\n context.commit('isSubmittingChallenge', false);\r\n return response;\r\n }\r\n return challengeProcessor.postSubmitChallenge(response);\r\n },\r\n goToPreviousChallenge: (context) => {\r\n const currentChallenge = context.state.challengeHistory.pop();\r\n let previousChallenge = context.state.challengeHistory.pop();\r\n while (currentChallenge.ChallengeTypeValue === previousChallenge.ChallengeTypeValue) {\r\n previousChallenge = context.state.challengeHistory.pop();\r\n }\r\n if (!currentChallenge ||\r\n currentChallenge.ChallengeTypeValue === ChallengeType_1.ChallengeType.Empty ||\r\n !previousChallenge ||\r\n previousChallenge.ChallengeTypeValue === ChallengeType_1.ChallengeType.Empty) {\r\n return;\r\n }\r\n const challenge = {\r\n ...currentChallenge,\r\n ...previousChallenge,\r\n Nonce: currentChallenge.Nonce,\r\n Progression: currentChallenge.Progression,\r\n };\r\n if (context.state.currentWorkflowMaxSteps > 0) {\r\n const previousStep = context.state.currentWorkflowStep - 1;\r\n context.commit('setCurrentWorkflowStep', previousStep);\r\n }\r\n context.commit('currentChallenge', challenge);\r\n },\r\n resetErrorStatus: (context) => {\r\n context.commit('errors', []);\r\n context.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.Unknown);\r\n },\r\n getRememberedUsername: async (context) => {\r\n try {\r\n const configuration = context.state.configuration;\r\n if (configuration.initialChallengeType !== ChallengeType_1.ChallengeType.Tethered) {\r\n const rememberedUsername = await (0, api_1.GetRememberedUsername)(configuration);\r\n if (rememberedUsername !== '')\r\n context.commit('hasRememberedUsername', true);\r\n context.commit('setRememberedUsername', rememberedUsername);\r\n }\r\n }\r\n catch (ex) {\r\n //\r\n }\r\n },\r\n setChallengeStatus: (context, status) => {\r\n context.commit('challengeStatus', status);\r\n return;\r\n },\r\n setRememberUsername: async (context, remember) => {\r\n var _a;\r\n context.commit('setRememberUsername', remember);\r\n // for native applications, call the remember me switch channel\r\n if (window.Alkami.Helpers.isNativeApplication() === true\r\n && typeof ((_a = window.f_rememberMeSwitch) === null || _a === void 0 ? void 0 : _a.postMessage) === 'function') {\r\n window.f_rememberMeSwitch.postMessage(JSON.stringify({ rememberMe: remember }));\r\n }\r\n if (!remember && context.state.hasRememberedUsername === true) {\r\n try {\r\n context.commit('hasRememberedUsername', false);\r\n const configuration = context.state.configuration;\r\n await (0, api_1.RemoveRememberedUsername)(configuration);\r\n }\r\n catch (ex) {\r\n // eslint-disable-next-line no-console\r\n console.error('Error unsetting remember username', ex);\r\n context.commit('hasRememberedUsername', true);\r\n }\r\n }\r\n },\r\n }, // Asynchronous actions that ultimately end in mutating state.\r\n});\r\n","module.exports = Vuex;","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst MachineSecretProviderType_1 = require(\"../enums/MachineSecretProviderType\");\r\nconst EntrustMachineSecretProvider_1 = require(\"./EntrustMachineSecretProvider\");\r\nconst DefaultMachineSecretProvider_1 = require(\"./DefaultMachineSecretProvider\");\r\nclass MachineSecretProviderManager {\r\n constructor() {\r\n this.provider = new DefaultMachineSecretProvider_1.DefaultMachineSecretProvider();\r\n }\r\n createProvider(machineSecretProviderType) {\r\n let machineSecretProvider;\r\n switch (machineSecretProviderType) {\r\n case MachineSecretProviderType_1.MachineSecretProviderType.EntrustRememberedDevicesProvider:\r\n machineSecretProvider = new EntrustMachineSecretProvider_1.EntrustMachineSecretProvider();\r\n break;\r\n default:\r\n machineSecretProvider = new DefaultMachineSecretProvider_1.DefaultMachineSecretProvider();\r\n }\r\n this.provider = machineSecretProvider;\r\n return machineSecretProvider;\r\n }\r\n get machineSecretProvider() {\r\n return this.provider;\r\n }\r\n}\r\nexports.default = new MachineSecretProviderManager();\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nfunction fromEntries(iterable) {\r\n return Array.from(iterable).reduce((obj, entry) => {\r\n const key = entry[0];\r\n const val = entry[1];\r\n obj[key] = val;\r\n return obj;\r\n }, {});\r\n}\r\nexports.default = fromEntries;\r\n","import { render, staticRenderFns } from \"./ChangePassword.vue?vue&type=template&id=4e7c4e8c&\"\nimport script from \"./ChangePassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChangePassword.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./CheckSyncResult.vue?vue&type=template&id=7c4541be&\"\nimport script from \"./CheckSyncResult.vue?vue&type=script&lang=ts&\"\nexport * from \"./CheckSyncResult.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CheckSyncResult.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./SyncFailure.vue?vue&type=template&id=ee18a92c&scoped=true&\"\nimport script from \"./SyncFailure.vue?vue&type=script&lang=ts&\"\nexport * from \"./SyncFailure.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SyncFailure.vue?vue&type=style&index=0&id=ee18a92c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ee18a92c\",\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.getSiteTextItem = void 0;\r\nfunction getSiteTextItem(key, options = {}) {\r\n const { debug = false, replacements = [], siteTextMap = {} } = options;\r\n let value = siteTextMap[key];\r\n if (debug) {\r\n if (value === null || value === undefined) {\r\n key = `__Localize_Me__${key}`;\r\n }\r\n return [key, ...replacements].join(' ');\r\n }\r\n if (value === null || value === undefined) {\r\n return `__Localize_Me__${key}`;\r\n }\r\n if (replacements.length > 0) {\r\n value = value.replace(/{(\\d+)}/g, (match, index) => {\r\n if (typeof replacements[index] !== 'undefined') {\r\n return replacements[index].toString();\r\n }\r\n return match;\r\n });\r\n }\r\n return value;\r\n}\r\nexports.getSiteTextItem = getSiteTextItem;\r\n","import { render, staticRenderFns } from \"./CheckSyncResultForgot.vue?vue&type=template&id=7cb37c0b&scoped=true&\"\nimport script from \"./CheckSyncResultForgot.vue?vue&type=script&lang=ts&\"\nexport * from \"./CheckSyncResultForgot.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CheckSyncResultForgot.vue?vue&type=style&index=0&id=7cb37c0b&lang=scss&scoped=true&\"\nimport style1 from \"./CheckSyncResultForgot.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7cb37c0b\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ChooseRegistrationType.vue?vue&type=template&id=7b0f66f6&\"\nimport script from \"./ChooseRegistrationType.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChooseRegistrationType.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UserIdentifyingFieldType = void 0;\r\nvar UserIdentifyingFieldType;\r\n(function (UserIdentifyingFieldType) {\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"FirstName\"] = 0] = \"FirstName\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"LastName\"] = 1] = \"LastName\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"TaxId\"] = 4] = \"TaxId\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"HomePhone\"] = 5] = \"HomePhone\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"WorkPhone\"] = 6] = \"WorkPhone\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"CellPhone\"] = 7] = \"CellPhone\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"Address\"] = 8] = \"Address\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"City\"] = 9] = \"City\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"State\"] = 10] = \"State\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"ZipCode\"] = 11] = \"ZipCode\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"DateOfBirth\"] = 12] = \"DateOfBirth\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"MothersMaidenName\"] = 14] = \"MothersMaidenName\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"AccountNumber\"] = 15] = \"AccountNumber\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"IsBusiness\"] = 17] = \"IsBusiness\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"BusinessName\"] = 18] = \"BusinessName\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"Password\"] = 19] = \"Password\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"MemberNumber\"] = 21] = \"MemberNumber\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"Email\"] = 22] = \"Email\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"DriversLicenseNumber\"] = 23] = \"DriversLicenseNumber\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"CustomField\"] = 24] = \"CustomField\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"DebitCardNumber\"] = 25] = \"DebitCardNumber\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"CreditCardNumber\"] = 26] = \"CreditCardNumber\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"AccountHolderNumber\"] = 27] = \"AccountHolderNumber\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"Codeword\"] = 28] = \"Codeword\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"PIN\"] = 29] = \"PIN\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"EIN\"] = 30] = \"EIN\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"Username\"] = 31] = \"Username\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"BusinessFirstName\"] = 32] = \"BusinessFirstName\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"BusinessLastName\"] = 33] = \"BusinessLastName\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"ConfigurableField1\"] = 34] = \"ConfigurableField1\";\r\n UserIdentifyingFieldType[UserIdentifyingFieldType[\"ConfigurableField2\"] = 35] = \"ConfigurableField2\";\r\n})(UserIdentifyingFieldType = exports.UserIdentifyingFieldType || (exports.UserIdentifyingFieldType = {}));\r\n","import { render, staticRenderFns } from \"./ConvertedUser.vue?vue&type=template&id=6a23d81e&\"\nimport script from \"./ConvertedUser.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConvertedUser.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./CreateUser.vue?vue&type=template&id=beefd568&scoped=true&\"\nimport script from \"./CreateUser.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateUser.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CreateUser.vue?vue&type=style&index=0&id=beefd568&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"beefd568\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./CreateUsername.vue?vue&type=template&id=7cc8a3fc&scoped=true&\"\nimport script from \"./CreateUsername.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateUsername.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CreateUsername.vue?vue&type=style&index=0&id=7cc8a3fc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7cc8a3fc\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./Empty.vue?vue&type=template&id=05e69a30&\"\nimport script from \"./Empty.vue?vue&type=script&lang=ts&\"\nexport * from \"./Empty.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotPassword.vue?vue&type=template&id=594d4619&\"\nimport script from \"./ForgotPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotPassword.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotPasswordChooseScenario.vue?vue&type=template&id=6e2cbf3e&\"\nimport script from \"./ForgotPasswordChooseScenario.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotPasswordChooseScenario.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotPasswordConfirmIdentity.vue?vue&type=template&id=c0616538&\"\nimport script from \"./ForgotPasswordConfirmIdentity.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotPasswordConfirmIdentity.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotPasswordDisclosure.vue?vue&type=template&id=1a6ea58d&scoped=true&\"\nimport script from \"./ForgotPasswordDisclosure.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotPasswordDisclosure.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ForgotPasswordDisclosure.vue?vue&type=style&index=0&id=1a6ea58d&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a6ea58d\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./Disclosure.vue?vue&type=template&id=3b1a05f1&scoped=true&\"\nimport script from \"./Disclosure.vue?vue&type=script&lang=ts&\"\nexport * from \"./Disclosure.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Disclosure.vue?vue&type=style&index=0&id=3b1a05f1&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3b1a05f1\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotUsername.vue?vue&type=template&id=66974d1e&\"\nimport script from \"./ForgotUsername.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotUsername.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotUsernameChooseScenario.vue?vue&type=template&id=0a3c2e47&\"\nimport script from \"./ForgotUsernameChooseScenario.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotUsernameChooseScenario.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotUsernameConfirmIdentity.vue?vue&type=template&id=6dc6d087&\"\nimport script from \"./ForgotUsernameConfirmIdentity.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotUsernameConfirmIdentity.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./OneTimeCodeForgotContainer.vue?vue&type=template&id=0d06e3c4&scoped=true&\"\nimport script from \"./OneTimeCodeForgotContainer.vue?vue&type=script&lang=ts&\"\nexport * from \"./OneTimeCodeForgotContainer.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OneTimeCodeForgotContainer.vue?vue&type=style&index=0&id=0d06e3c4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d06e3c4\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./QuestionsAndAnswers.vue?vue&type=template&id=8d5ff01c&\"\nimport script from \"./QuestionsAndAnswers.vue?vue&type=script&lang=ts&\"\nexport * from \"./QuestionsAndAnswers.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./RegistrationDisclosure.vue?vue&type=template&id=8c1853a8&scoped=true&\"\nimport script from \"./RegistrationDisclosure.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegistrationDisclosure.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RegistrationDisclosure.vue?vue&type=style&index=0&id=8c1853a8&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8c1853a8\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ResetPassword.vue?vue&type=template&id=646ae2db&\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./StartForgotPassword.vue?vue&type=template&id=11730be7&\"\nimport script from \"./StartForgotPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./StartForgotPassword.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./StartForgotUsername.vue?vue&type=template&id=08590462&\"\nimport script from \"./StartForgotUsername.vue?vue&type=script&lang=ts&\"\nexport * from \"./StartForgotUsername.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./StartRegistration.vue?vue&type=template&id=b8f2a698&\"\nimport script from \"./StartRegistration.vue?vue&type=script&lang=ts&\"\nexport * from \"./StartRegistration.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./StepUp.vue?vue&type=template&id=776f7154&scoped=true&\"\nimport script from \"./StepUp.vue?vue&type=script&lang=ts&\"\nexport * from \"./StepUp.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./StepUp.vue?vue&type=style&index=0&id=776f7154&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"776f7154\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./Biometric.vue?vue&type=template&id=3288c4c1&\"\nimport script from \"./Biometric.vue?vue&type=script&lang=ts&\"\nexport * from \"./Biometric.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./EmailCode.vue?vue&type=template&id=9defb5a8&\"\nimport script from \"./EmailCode.vue?vue&type=script&lang=ts&\"\nexport * from \"./EmailCode.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./RememberDevice.vue?vue&type=template&id=740f5c3d&\"\nimport script from \"./RememberDevice.vue?vue&type=script&lang=ts&\"\nexport * from \"./RememberDevice.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RememberDevice.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./PushNotification.vue?vue&type=template&id=76cb7caa&\"\nimport script from \"./PushNotification.vue?vue&type=script&lang=ts&\"\nexport * from \"./PushNotification.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./QuestionsAndAnswers.vue?vue&type=template&id=3c07a7c3&\"\nimport script from \"./QuestionsAndAnswers.vue?vue&type=script&lang=ts&\"\nexport * from \"./QuestionsAndAnswers.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./SmsCode.vue?vue&type=template&id=60ad0862&\"\nimport script from \"./SmsCode.vue?vue&type=script&lang=ts&\"\nexport * from \"./SmsCode.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./TOTP.vue?vue&type=template&id=a0706818&\"\nimport script from \"./TOTP.vue?vue&type=script&lang=ts&\"\nexport * from \"./TOTP.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./TokenStepup.vue?vue&type=template&id=2a8ec210&\"\nimport script from \"./TokenStepup.vue?vue&type=script&lang=ts&\"\nexport * from \"./TokenStepup.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./Token.vue?vue&type=template&id=81859b34&\"\nimport script from \"./Token.vue?vue&type=script&lang=ts&\"\nexport * from \"./Token.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./Unknown.vue?vue&type=template&id=31b23688&\"\nimport script from \"./Unknown.vue?vue&type=script&lang=ts&\"\nexport * from \"./Unknown.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./VoiceCode.vue?vue&type=template&id=66594df0&\"\nimport script from \"./VoiceCode.vue?vue&type=script&lang=ts&\"\nexport * from \"./VoiceCode.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./VoicePrompt.vue?vue&type=template&id=14a4fbda&\"\nimport script from \"./VoicePrompt.vue?vue&type=script&lang=ts&\"\nexport * from \"./VoicePrompt.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./WebAuthn.vue?vue&type=template&id=5ebc067f&\"\nimport script from \"./WebAuthn.vue?vue&type=script&lang=ts&\"\nexport * from \"./WebAuthn.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./StepUpForgot.vue?vue&type=template&id=5750e5a7&scoped=true&\"\nimport script from \"./StepUpForgot.vue?vue&type=script&lang=ts&\"\nexport * from \"./StepUpForgot.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./StepUpForgot.vue?vue&type=style&index=0&id=5750e5a7&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5750e5a7\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./TemporaryPassword.vue?vue&type=template&id=5929379d&\"\nimport script from \"./TemporaryPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./TemporaryPassword.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./Tethered.vue?vue&type=template&id=6031e1e4&scoped=true&\"\nimport script from \"./Tethered.vue?vue&type=script&lang=ts&\"\nexport * from \"./Tethered.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Tethered.vue?vue&type=style&index=0&id=6031e1e4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6031e1e4\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./Turnstile.vue?vue&type=template&id=ee916bb4&scoped=true&\"\nimport script from \"./Turnstile.vue?vue&type=script&lang=ts&\"\nexport * from \"./Turnstile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Turnstile.vue?vue&type=style&index=0&id=ee916bb4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ee916bb4\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./UpdateBusiness.vue?vue&type=template&id=39135195&scoped=true&\"\nimport script from \"./UpdateBusiness.vue?vue&type=script&lang=ts&\"\nexport * from \"./UpdateBusiness.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UpdateBusiness.vue?vue&type=style&index=0&id=39135195&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"39135195\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./UsernameAndPassword.vue?vue&type=template&id=5e4cf579&scoped=true&\"\nimport script from \"./UsernameAndPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsernameAndPassword.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UsernameAndPassword.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./UsernameAndPassword.vue?vue&type=style&index=1&id=5e4cf579&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e4cf579\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./UsernameRecovered.vue?vue&type=template&id=d33611bc&scoped=true&\"\nimport script from \"./UsernameRecovered.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsernameRecovered.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UsernameRecovered.vue?vue&type=style&index=0&id=d33611bc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d33611bc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('one-time-code')}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneTimeCodeDestination.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OneTimeCodeDestination.vue?vue&type=script&lang=js&\"","\r\n\r\n\r\n","import { render, staticRenderFns } from \"./OneTimeCodeDestination.vue?vue&type=template&id=5e892f4c&\"\nimport script from \"./OneTimeCodeDestination.vue?vue&type=script&lang=js&\"\nexport * from \"./OneTimeCodeDestination.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.init = exports.reset = void 0;\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst App_vue_1 = tslib_1.__importDefault(require(\"./App.vue\"));\r\nconst router_1 = tslib_1.__importDefault(require(\"./router\"));\r\nconst store_1 = tslib_1.__importDefault(require(\"./store\"));\r\nconst MachineSecretManager_1 = tslib_1.__importDefault(require(\"./lib/MachineSecretManager\"));\r\nconst challenges_1 = tslib_1.__importDefault(require(\"./components/challenges\"));\r\nconst ChallengeType_1 = require(\"./enums/ChallengeType\");\r\nconst setup_1 = tslib_1.__importDefault(require(\"../tests/e2e/setup\"));\r\nconst ChallengeStatus_1 = require(\"./enums/ChallengeStatus\");\r\nlet mockPromise = null;\r\nif (process.env.ALBUS_LOCAL_DEV === 'cypress') {\r\n mockPromise = (0, setup_1.default)();\r\n}\r\nif (process.env.NODE_ENV === 'development') {\r\n vue_1.default.config.devtools = true;\r\n}\r\nlet vm;\r\nlet config;\r\nfunction reset() {\r\n if (vm) {\r\n vm.$destroy();\r\n }\r\n}\r\nexports.reset = reset;\r\nfunction init(providedConfig) {\r\n if (vm) {\r\n reset();\r\n }\r\n config = providedConfig;\r\n // Let's do some validation checks\r\n if (!config.clientKey) {\r\n throw new Error('You must specify a clientKey as a Guid');\r\n }\r\n if (!config.redirectUrl) {\r\n throw new Error('A redirectUrl was not specified.');\r\n }\r\n if (!config.sessionId) {\r\n throw new Error('A sessionId was not specified.');\r\n }\r\n if (!config.elementId || !document.getElementById(config.elementId)) {\r\n throw new Error('A valid elementId must be provided');\r\n }\r\n const componentOverrides = {};\r\n const challengeTypes = Object.keys(ChallengeType_1.ChallengeType);\r\n // Sanitize list so extra components don't get added.\r\n // We don't want someone inserting components in the global scope willy nilly.\r\n const configuredComponentOverrides = config.componentOverrides || {};\r\n if (configuredComponentOverrides) {\r\n const keys = Object.keys(configuredComponentOverrides);\r\n keys.forEach((key) => {\r\n if (challengeTypes.includes(key)) {\r\n componentOverrides[key] = configuredComponentOverrides[key];\r\n }\r\n });\r\n }\r\n // make sure we do not have a ellipsis config with info href as we are replacing it\r\n if (config.ellipsisConfig) {\r\n const index = config.ellipsisConfig.findIndex((obj) => obj.href === '/Mobile/Info');\r\n if (index >= 0) {\r\n config.ellipsisConfig.splice(index, 1);\r\n }\r\n }\r\n const globalComponents = { ...challenges_1.default, ...componentOverrides };\r\n Object.entries(globalComponents).forEach((entry) => {\r\n vue_1.default.component(entry[0], entry[1]);\r\n });\r\n vm = new vue_1.default({\r\n router: (0, router_1.default)(config),\r\n store: store_1.default,\r\n created() {\r\n MachineSecretManager_1.default.createProvider(config.machineSecretProvider);\r\n this.$store.commit('configuration', config);\r\n if (sessionStorage.getItem(ChallengeStatus_1.ChallengeStatus.SessionExpired) === 'true') {\r\n this.$store.commit('challengeStatus', ChallengeStatus_1.ChallengeStatus.SessionExpired);\r\n sessionStorage.removeItem(ChallengeStatus_1.ChallengeStatus.SessionExpired);\r\n }\r\n if (process.env.ALBUS_LOCAL_DEV === 'cypress') {\r\n this.$store.commit('isCypress', true);\r\n }\r\n },\r\n render: (h) => h(App_vue_1.default), // This will render the App.vue component imported above\r\n }).$mount('#' + config.elementId); // This will search for an element in the DOM with an ID of \"app\"\r\n}\r\nexports.init = init;\r\nconst global = window;\r\nglobal.Alkami = global.Alkami || {};\r\nglobal.Alkami.Isotope = {\r\n init,\r\n};\r\nif (mockPromise) {\r\n void mockPromise.then(() => fetch('/Isotope/Configuration')\r\n .then(response => response.json())\r\n .then((data) => {\r\n var _a;\r\n // add some CSS classes that get lost in Cypress\r\n if ((_a = data.baseUrl) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes('mobile')) {\r\n document.body.classList.add('isotope-mobile');\r\n }\r\n switch (data.initialChallengeType) {\r\n case 'UsernameAndPassword':\r\n document.body.classList.add('Authentication');\r\n break;\r\n case 'StartForgotPassword':\r\n document.body.classList.add('ForgotPassword');\r\n break;\r\n case 'StartForgotUsername':\r\n document.body.classList.add('ForgotUsername');\r\n break;\r\n }\r\n init(data);\r\n }));\r\n}\r\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=57f45051&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst tslib_1 = require(\"tslib\");\r\nconst vue_1 = tslib_1.__importDefault(require(\"vue\"));\r\nconst vue_router_1 = tslib_1.__importDefault(require(\"vue-router\"));\r\n// ONLY the entry point or global views should be imported in this way.\r\nconst Authentication_vue_1 = tslib_1.__importDefault(require(\"./views/Authentication.vue\"));\r\nconst Registration_vue_1 = tslib_1.__importDefault(require(\"./views/Registration.vue\"));\r\nconst ForgotUsername_vue_1 = tslib_1.__importDefault(require(\"./views/ForgotUsername.vue\"));\r\nconst ForgotPassword_vue_1 = tslib_1.__importDefault(require(\"./views/ForgotPassword.vue\"));\r\nconst LoginGrouping_vue_1 = tslib_1.__importDefault(require(\"./views/LoginGrouping.vue\"));\r\nvue_1.default.use(vue_router_1.default); // Call a use statement to tell Vue to use the router\r\nfunction getRouter(config) {\r\n return new vue_router_1.default({\r\n mode: 'history',\r\n base: config.baseUrl || '/',\r\n routes: [\r\n {\r\n path: '/Authentication',\r\n component: Authentication_vue_1.default,\r\n },\r\n {\r\n path: '/Registration',\r\n component: Registration_vue_1.default,\r\n },\r\n {\r\n path: '/ForgotUsername',\r\n component: ForgotUsername_vue_1.default,\r\n },\r\n {\r\n path: '/ForgotPassword',\r\n component: ForgotPassword_vue_1.default,\r\n },\r\n {\r\n path: '/Authentication/LoginGrouping',\r\n component: LoginGrouping_vue_1.default,\r\n },\r\n {\r\n path: '*',\r\n redirect: '/Authentication',\r\n },\r\n ],\r\n });\r\n}\r\nexports.default = getRouter;\r\n","module.exports = VueRouter;","import { render, staticRenderFns } from \"./Authentication.vue?vue&type=template&id=2bf6665a&\"\nimport script from \"./Authentication.vue?vue&type=script&lang=ts&\"\nexport * from \"./Authentication.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Authentication.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.userAction = exports.stepName = exports.stepType = exports.workflowName = void 0;\r\nvar workflowName;\r\n(function (workflowName) {\r\n workflowName[\"unknown\"] = \"unknown\";\r\n workflowName[\"retail_registration\"] = \"retail_registration\";\r\n})(workflowName = exports.workflowName || (exports.workflowName = {}));\r\nvar stepType;\r\n(function (stepType) {\r\n stepType[\"unknown\"] = \"unknown\";\r\n stepType[\"entry\"] = \"entry\";\r\n stepType[\"progression\"] = \"progression\";\r\n stepType[\"cancellation\"] = \"cancellation\";\r\n})(stepType = exports.stepType || (exports.stepType = {}));\r\nvar stepName;\r\n(function (stepName) {\r\n stepName[\"unknown\"] = \"unknown\";\r\n stepName[\"login\"] = \"login\";\r\n stepName[\"registration_type\"] = \"registration_type\";\r\n stepName[\"disclosure\"] = \"disclosure\";\r\n stepName[\"confirm_your_identity\"] = \"confirm_your_identity\";\r\n stepName[\"verify_your_identity\"] = \"verify_your_identity\";\r\n stepName[\"verification_code\"] = \"verification_code\";\r\n stepName[\"business_information\"] = \"business_information\";\r\n stepName[\"create_username\"] = \"create_username\";\r\n stepName[\"create_password\"] = \"create_password\";\r\n stepName[\"confirm_contact\"] = \"confirm_contact\";\r\n stepName[\"quit_confirmation\"] = \"quit_confirmation\";\r\n})(stepName = exports.stepName || (exports.stepName = {}));\r\nvar userAction;\r\n(function (userAction) {\r\n userAction[\"unknown\"] = \"unknown\";\r\n userAction[\"overflow_menu_clicked\"] = \"overflow_menu_clicked\";\r\n userAction[\"password_show_toggled\"] = \"password_show_toggled\";\r\n userAction[\"remember_me_checked\"] = \"remember_me_checked\";\r\n userAction[\"forgot_username_clicked\"] = \"forgot_username_clicked\";\r\n userAction[\"forgot_password_clicked\"] = \"forgot_password_clicked\";\r\n userAction[\"register_account_clicked\"] = \"register_account_clicked\";\r\n userAction[\"cancel_clicked\"] = \"cancel_clicked\";\r\n userAction[\"individual_account_clicked\"] = \"individual_account_clicked\";\r\n userAction[\"business_account_clicked\"] = \"business_account_clicked\";\r\n userAction[\"new_account_selected\"] = \"new_account_selected\";\r\n userAction[\"continue_clicked\"] = \"continue_clicked\";\r\n userAction[\"agree_clicked\"] = \"agree_clicked\";\r\n userAction[\"open_pdf_clicked\"] = \"open_pdf_clicked\";\r\n userAction[\"print_pdf_clicked\"] = \"print_pdf_clicked\";\r\n userAction[\"disclosure_scroll\"] = \"disclosure_scroll\";\r\n userAction[\"verification_type_chosen\"] = \"verification_type_chosen\";\r\n userAction[\"resend_code_clicked\"] = \"resend_code_clicked\";\r\n userAction[\"change_method_clicked\"] = \"change_method_clicked\";\r\n userAction[\"create_username_clicked\"] = \"create_username_clicked\";\r\n userAction[\"create_password_clicked\"] = \"create_password_clicked\";\r\n userAction[\"confirm_clicked\"] = \"confirm_clicked\";\r\n userAction[\"estatements_accept_checked\"] = \"estatements_accept_checked\";\r\n userAction[\"email_preferences_checked\"] = \"email_preferences_checked\";\r\n userAction[\"subscribe_pfm_clicked\"] = \"subscribe_pfm_clicked\";\r\n userAction[\"yes_clicked\"] = \"yes_clicked\";\r\n userAction[\"sheet_closed\"] = \"sheet_closed\";\r\n})(userAction = exports.userAction || (exports.userAction = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n","import { render, staticRenderFns } from \"./Registration.vue?vue&type=template&id=4c71b976&\"\nimport script from \"./Registration.vue?vue&type=script&lang=ts&\"\nexport * from \"./Registration.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotUsername.vue?vue&type=template&id=1e29e738&scoped=true&\"\nimport script from \"./ForgotUsername.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotUsername.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1e29e738\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./ForgotPassword.vue?vue&type=template&id=2f7bc142&\"\nimport script from \"./ForgotPassword.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotPassword.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ForgotPassword.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./LoginGrouping.vue?vue&type=template&id=28829a29&\"\nimport script from \"./LoginGrouping.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoginGrouping.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoginGrouping.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ChallengeProcessor = exports.RemoveRememberedUsername = exports.GetRememberedUsername = exports.getChallenges = void 0;\r\nconst tslib_1 = require(\"tslib\");\r\nconst ChallengeType_1 = require(\"../enums/ChallengeType\");\r\nconst Validations_1 = require(\"../enums/Validations\");\r\nconst ChallengeStatus_1 = require(\"../enums/ChallengeStatus\");\r\nconst MachineSecretManager_1 = tslib_1.__importDefault(require(\"../lib/MachineSecretManager\"));\r\nasync function getChallenges() {\r\n const response = await fetch('/Authentication/Challenges');\r\n if (!response.ok) {\r\n throw new Error(await response.text());\r\n }\r\n const data = (await response.json());\r\n return data;\r\n}\r\nexports.getChallenges = getChallenges;\r\nasync function GetRememberedUsername(configuration) {\r\n const response = await fetch(`${configuration.rootUrl}API/Isotope/GetRememberedUsername`, {\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'BankIdentifier': configuration.clientKey,\r\n 'BankUri': configuration.bankUri,\r\n },\r\n method: 'GET',\r\n });\r\n if (!response.ok) {\r\n return '';\r\n }\r\n return (await response.json());\r\n}\r\nexports.GetRememberedUsername = GetRememberedUsername;\r\nasync function RemoveRememberedUsername(configuration) {\r\n await fetch(`${configuration.rootUrl}API/Isotope/RememberedUsername`, {\r\n method: 'DELETE',\r\n });\r\n}\r\nexports.RemoveRememberedUsername = RemoveRememberedUsername;\r\nclass ChallengeProcessor {\r\n constructor(context, request) {\r\n this.context = context;\r\n this.request = request;\r\n this.response = null;\r\n this.preSubmitChallenge();\r\n }\r\n // Any logic needed prior to sending the request\r\n preSubmitChallenge() {\r\n // Remove any server errors when submitting a new challenge\r\n this.context.state.errors = [];\r\n if (this.request.ChallengeTypeValue === ChallengeType_1.ChallengeType.Tethered) {\r\n this.request.ChallengeTypeValue = ChallengeType_1.ChallengeType.UsernameAndPassword;\r\n }\r\n // CheckSyncResult uses state.checkSyncResultChallenge instead of state.currentChallenge\r\n if (this.request.ChallengeTypeValue !== ChallengeType_1.ChallengeType.CheckSyncResult) {\r\n this.context.commit('isSubmittingChallenge', true);\r\n // Update the challenge being submitted with the correct nonce and progression the webapp sent last\r\n const lastSentResponse = this.context.state.currentChallenge;\r\n if (lastSentResponse.Nonce && lastSentResponse.Progression.length) {\r\n this.request.Nonce = lastSentResponse.Nonce;\r\n this.request.Progression = lastSentResponse.Progression;\r\n }\r\n }\r\n }\r\n async submitChallenge() {\r\n const username = this.request.Username;\r\n const challengeType = this.request.ChallengeTypeValue;\r\n if (challengeType === ChallengeType_1.ChallengeType.UsernameAndPassword) {\r\n MachineSecretManager_1.default.machineSecretProvider.initialize(username);\r\n }\r\n const configuration = this.context.state.configuration;\r\n const rememberUsername = this.context.state.rememberUsername;\r\n const sessionInfo = {\r\n AdditionalParameters: {\r\n isMobile: configuration.baseUrl != null && configuration.baseUrl.toLowerCase().includes('mobile')\r\n ? 'true'\r\n : 'false',\r\n rememberUserName: rememberUsername ? 'true' : 'false',\r\n persistentSessionIdentifier: typeof Global_PersistentSessionIdentifier === 'string' ? Global_PersistentSessionIdentifier : '',\r\n isTetheredLogin: configuration.initialChallengeType === ChallengeType_1.ChallengeType.Tethered ? 'true' : 'false',\r\n },\r\n Id: configuration.sessionId,\r\n MachineInfo: MachineSecretManager_1.default.machineSecretProvider.read(),\r\n };\r\n if (configuration.turnstileEnabled && challengeType === ChallengeType_1.ChallengeType.UsernameAndPassword) {\r\n sessionInfo.AdditionalParameters.token = this.context.state.turnstileToken;\r\n }\r\n const submittedChallenge = {\r\n ...this.request,\r\n SessionInfo: sessionInfo,\r\n UserAgentString: navigator.userAgent,\r\n };\r\n const request = {\r\n BankIdentifier: configuration.clientKey,\r\n BankUri: configuration.bankUri,\r\n SubmittedChallenge: submittedChallenge,\r\n };\r\n const model = {\r\n Request: request,\r\n RedirectUrl: configuration.redirectUrl,\r\n };\r\n const url = this.getChallengeUrl(submittedChallenge, configuration.rootUrl);\r\n const response = await fetch(url, {\r\n body: JSON.stringify(model),\r\n credentials: 'include',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n method: 'POST',\r\n });\r\n if (!response.ok) {\r\n throw response;\r\n }\r\n return (await response.json());\r\n }\r\n getChallengeUrl(challenge, rootUrl) {\r\n let url;\r\n switch (challenge.ChallengeTypeValue) {\r\n case ChallengeType_1.ChallengeType.StartRegistration:\r\n case ChallengeType_1.ChallengeType.ChooseRegistrationType:\r\n case ChallengeType_1.ChallengeType.RegistrationDisclosure:\r\n case ChallengeType_1.ChallengeType.ConfirmIdentity:\r\n case ChallengeType_1.ChallengeType.UpdateBusiness:\r\n case ChallengeType_1.ChallengeType.CreateUsername:\r\n case ChallengeType_1.ChallengeType.CreateUser:\r\n url = `${rootUrl}API/Registration/${challenge.ChallengeTypeValue}`;\r\n break;\r\n case ChallengeType_1.ChallengeType.UsernameAndPassword:\r\n url = `${rootUrl}API/Isotope/Credentials`;\r\n break;\r\n case ChallengeType_1.ChallengeType.StartForgotPassword:\r\n case ChallengeType_1.ChallengeType.ForgotPasswordDisclosure:\r\n case ChallengeType_1.ChallengeType.ForgotPasswordChooseScenario:\r\n case ChallengeType_1.ChallengeType.ForgotPasswordConfirmIdentity:\r\n url = `${rootUrl}API/ForgotPassword/${challenge.ChallengeTypeValue}`;\r\n break;\r\n case ChallengeType_1.ChallengeType.StartForgotUsername:\r\n case ChallengeType_1.ChallengeType.ForgotUsernameChooseScenario:\r\n case ChallengeType_1.ChallengeType.ForgotUsernameConfirmIdentity:\r\n url = `${rootUrl}API/ForgotUsername/${challenge.ChallengeTypeValue}`;\r\n break;\r\n default:\r\n url = `${rootUrl}API/Isotope`;\r\n break;\r\n }\r\n return url;\r\n }\r\n // Logic after receiving the response\r\n postSubmitChallenge(response) {\r\n this.response = response;\r\n // If session has expired, redirect to the first page of the workflow. Set session cache with session expired key.\r\n // Delete it from session cache after reload\r\n if (response.ChallengeStatusValue === ChallengeStatus_1.ChallengeStatus.SessionExpired) {\r\n sessionStorage.setItem(ChallengeStatus_1.ChallengeStatus.SessionExpired, 'true');\r\n window.location.reload();\r\n return response;\r\n }\r\n if (response.NextRequestedChallenge) {\r\n // Used for remember device\r\n this.updateMachineInfo();\r\n // Used by FUFP for step progress\r\n this.getNumberOfSteps();\r\n this.updateCurrentStep();\r\n // Handle if the user account gets locked out\r\n if (this.handleLockout())\r\n return response;\r\n // Prepare the next challenge\r\n let nextChallenge = { ...response.NextRequestedChallenge };\r\n // Handle challenge-specific processing\r\n switch (response.NextRequestedChallenge.ChallengeTypeValue) {\r\n case ChallengeType_1.ChallengeType.Done:\r\n // If Done challenge is issued, redirect the user directly\r\n this.handleDoneChallenge();\r\n return response;\r\n case ChallengeType_1.ChallengeType.StepUp:\r\n this.handleStepUpChallenge();\r\n break;\r\n case ChallengeType_1.ChallengeType.CheckSyncResult:\r\n if (this.handleCheckSyncResultChallenge())\r\n return response;\r\n break;\r\n case ChallengeType_1.ChallengeType.OneTimeCode:\r\n // Remain on the StepUp page for failed validations for specific types\r\n // The webapp returns the challenge time at OTP which will load the One Time Code template.\r\n // We want to prevent this for some cases\r\n if (this.context.state.remainOnStepUpScreenOnFailure)\r\n nextChallenge = this.repeatStep(nextChallenge);\r\n break;\r\n case ChallengeType_1.ChallengeType.OneTimeCodeDestination:\r\n // HasError = true means there was an issue sending stepup, so re-display the stepup challenge\r\n if (response.HasError)\r\n nextChallenge = this.repeatStep(nextChallenge);\r\n break;\r\n case ChallengeType_1.ChallengeType.ForgotPasswordConfirmIdentity:\r\n case ChallengeType_1.ChallengeType.ForgotUsernameConfirmIdentity:\r\n case ChallengeType_1.ChallengeType.ConfirmIdentity:\r\n if (nextChallenge.Scenario == null && this.request.ChallengeTypeValue === nextChallenge.ChallengeTypeValue) {\r\n nextChallenge = this.repeatStep(nextChallenge);\r\n }\r\n break;\r\n case ChallengeType_1.ChallengeType.UsernameAndPassword:\r\n if (response.ChallengeStatusValue === ChallengeStatus_1.ChallengeStatus.BotDetected && this.context.getters.initialChallengeType === ChallengeType_1.ChallengeType.Tethered) {\r\n // Tethered login that failed the bot test. Remain on the tethered screen.\r\n nextChallenge = this.repeatStep(nextChallenge);\r\n }\r\n break;\r\n }\r\n this.context.commit('currentChallenge', nextChallenge);\r\n // reset the state to block transition\r\n this.context.commit('setRemainOnStepUpScreenOnFailure', false);\r\n }\r\n this.handleValidationErrors();\r\n // In some cases we can get a response with a body but no ChallengeStatusValue.\r\n // This check makes sure we don't commit an undefined challenge status.\r\n if (response.ChallengeStatusValue)\r\n this.context.commit('challengeStatus', response.ChallengeStatusValue);\r\n this.context.commit('isSubmittingChallenge', false);\r\n return response;\r\n }\r\n updateMachineInfo() {\r\n var _a, _b, _c, _d;\r\n if (((_d = (_c = (_b = (_a = this.response) === null || _a === void 0 ? void 0 : _a.NextRequestedChallenge) === null || _b === void 0 ? void 0 : _b.SessionInfo) === null || _c === void 0 ? void 0 : _c.AdditionalParameters) === null || _d === void 0 ? void 0 : _d.UpdateMachineInfo) === 'True') {\r\n MachineSecretManager_1.default.machineSecretProvider.write(this.response.NextRequestedChallenge.SessionInfo.MachineInfo);\r\n }\r\n }\r\n getNumberOfSteps() {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\r\n // Unfortunately I have to do this null check for the linter's sake, even though parseInt would handle a null just fine\r\n const numSteps = (_d = (_c = (_b = (_a = this.response) === null || _a === void 0 ? void 0 : _a.NextRequestedChallenge) === null || _b === void 0 ? void 0 : _b.SessionInfo) === null || _c === void 0 ? void 0 : _c.AdditionalParameters) === null || _d === void 0 ? void 0 : _d.NumberOfStepsRequired;\r\n if (numSteps == null)\r\n return;\r\n const maxSteps = parseInt(numSteps, 10);\r\n if (!isNaN(maxSteps) && maxSteps > 0) {\r\n this.context.commit('setCurrentWorkflowMaxSteps', maxSteps);\r\n // Since we only get the max step in the first step of the workflow, reset it back to 0 if we get it again\r\n // This might happen due to session expiration\r\n if (this.request.ChallengeTypeValue !== ((_e = this.response) === null || _e === void 0 ? void 0 : _e.NextRequestedChallenge.ChallengeTypeValue)) {\r\n this.context.commit('setCurrentWorkflowStep', 0);\r\n }\r\n // set the max steps in body back to 0 to prevent it from being sent back\r\n if (((_j = (_h = (_g = (_f = this.response) === null || _f === void 0 ? void 0 : _f.NextRequestedChallenge) === null || _g === void 0 ? void 0 : _g.SessionInfo) === null || _h === void 0 ? void 0 : _h.AdditionalParameters) === null || _j === void 0 ? void 0 : _j.NumberOfStepsRequired) != null)\r\n this.response.NextRequestedChallenge.SessionInfo.AdditionalParameters.NumberOfStepsRequired = '0';\r\n }\r\n }\r\n updateCurrentStep() {\r\n var _a;\r\n if (this.context.state.currentWorkflowMaxSteps > 0\r\n && this.context.state.currentWorkflowStep < this.context.state.currentWorkflowMaxSteps\r\n && this.request.ChallengeTypeValue !== ((_a = this.response) === null || _a === void 0 ? void 0 : _a.NextRequestedChallenge.ChallengeTypeValue)) {\r\n if (!this.context.state.isResendingOTP) {\r\n const currentStep = this.context.state.currentWorkflowStep + 1;\r\n this.context.commit('setCurrentWorkflowStep', currentStep);\r\n }\r\n }\r\n }\r\n handleLockout() {\r\n var _a, _b;\r\n // If the challenge is not username and password (implying that the user is on the MFA page)\r\n // and the status is locked out redirect user to the locked out page\r\n if (((_a = this.response) === null || _a === void 0 ? void 0 : _a.NextRequestedChallenge.ChallengeTypeValue) !== ChallengeType_1.ChallengeType.UsernameAndPassword &&\r\n ((_b = this.response) === null || _b === void 0 ? void 0 : _b.ChallengeStatusValue) === ChallengeStatus_1.ChallengeStatus.LockedOut) {\r\n // baseUrl is only set if using mobile site, if it's null, we'll need to redirect to desktop site\r\n const redirect = this.context.state.configuration.baseUrl ? `${this.context.state.configuration.bankUri}${this.context.state.configuration.baseUrl}\\\\Authentication\\\\LockedOut`\r\n : `${this.context.state.configuration.bankUri}\\\\Authentication\\\\LockedOut`;\r\n window.location.href = redirect;\r\n return true;\r\n }\r\n return false;\r\n }\r\n handleDoneChallenge() {\r\n var _a;\r\n const doneChallenge = (_a = this.response) === null || _a === void 0 ? void 0 : _a.NextRequestedChallenge;\r\n this.context.commit('isSyncing', false);\r\n this.context.commit('authenticatedModel', { username: doneChallenge.Username, nonce: doneChallenge.Grant });\r\n }\r\n handleStepUpChallenge() {\r\n var _a;\r\n const stepupChallenge = (_a = this.response) === null || _a === void 0 ? void 0 : _a.NextRequestedChallenge;\r\n this.context.commit('setShowRememberDevice', stepupChallenge.IsRememberDeviceOptionSupported);\r\n this.context.commit('setIsStepUpMandatory', stepupChallenge.IsStepUpMandatory);\r\n }\r\n handleCheckSyncResultChallenge() {\r\n var _a, _b;\r\n switch ((_a = this.response) === null || _a === void 0 ? void 0 : _a.ChallengeStatusValue) {\r\n // account sync is still in progress\r\n case ChallengeStatus_1.ChallengeStatus.Success:\r\n this.context.commit('isSyncing', true);\r\n this.context.state.checkSyncResultChallenge = { ...(_b = this.response) === null || _b === void 0 ? void 0 : _b.NextRequestedChallenge };\r\n return true;\r\n case ChallengeStatus_1.ChallengeStatus.SyncError:\r\n this.context.commit('isSyncing', false);\r\n break;\r\n }\r\n return false;\r\n }\r\n handleValidationErrors() {\r\n var _a;\r\n if (((_a = this.response) === null || _a === void 0 ? void 0 : _a.ValidationResults) && this.response.ValidationResults instanceof Array) {\r\n const errors = this.response.ValidationResults.filter((error) => {\r\n return error.Severity === Validations_1.Severity.Error || error.Severity === Validations_1.Severity.Fatal;\r\n });\r\n this.context.commit('errors', errors);\r\n }\r\n }\r\n repeatStep(nextChallenge) {\r\n const currentChallenge = this.context.state.challengeHistory.pop();\r\n if (currentChallenge && this.response) {\r\n nextChallenge = {\r\n ...currentChallenge,\r\n ...this.response.NextRequestedChallenge,\r\n ChallengeTypeValue: currentChallenge.ChallengeTypeValue,\r\n };\r\n }\r\n return nextChallenge;\r\n }\r\n}\r\nexports.ChallengeProcessor = ChallengeProcessor;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SubCode = exports.Severity = exports.ErrorCode = void 0;\r\nvar ErrorCode;\r\n(function (ErrorCode) {\r\n ErrorCode[ErrorCode[\"Unknown\"] = 0] = \"Unknown\";\r\n ErrorCode[ErrorCode[\"Informational\"] = 100] = \"Informational\";\r\n ErrorCode[ErrorCode[\"ValidationError\"] = 200] = \"ValidationError\";\r\n ErrorCode[ErrorCode[\"DataRequestError\"] = 300] = \"DataRequestError\";\r\n ErrorCode[ErrorCode[\"UnsupportedError\"] = 310] = \"UnsupportedError\";\r\n ErrorCode[ErrorCode[\"PermissionError\"] = 320] = \"PermissionError\";\r\n ErrorCode[ErrorCode[\"SystemNonFatalError\"] = 400] = \"SystemNonFatalError\";\r\n ErrorCode[ErrorCode[\"SystemFatalError\"] = 500] = \"SystemFatalError\";\r\n})(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {}));\r\nvar Severity;\r\n(function (Severity) {\r\n Severity[Severity[\"Warning\"] = 0] = \"Warning\";\r\n Severity[Severity[\"Error\"] = 1] = \"Error\";\r\n Severity[Severity[\"Fatal\"] = 2] = \"Fatal\";\r\n})(Severity = exports.Severity || (exports.Severity = {}));\r\nvar SubCode;\r\n(function (SubCode) {\r\n SubCode[SubCode[\"None\"] = 0] = \"None\";\r\n SubCode[SubCode[\"Custom\"] = 1] = \"Custom\";\r\n SubCode[SubCode[\"NoDataInRequest\"] = 300] = \"NoDataInRequest\";\r\n SubCode[SubCode[\"NoRecordsFound\"] = 302] = \"NoRecordsFound\";\r\n SubCode[SubCode[\"BadRequest\"] = 400] = \"BadRequest\";\r\n SubCode[SubCode[\"LoginInvalid\"] = 401] = \"LoginInvalid\";\r\n SubCode[SubCode[\"SessionTokenExpired\"] = 402] = \"SessionTokenExpired\";\r\n SubCode[SubCode[\"UserTokenExpired\"] = 403] = \"UserTokenExpired\";\r\n SubCode[SubCode[\"SubCode409\"] = 409] = \"SubCode409\";\r\n SubCode[SubCode[\"IncompleteRequest\"] = 411] = \"IncompleteRequest\";\r\n SubCode[SubCode[\"PreviousRequestRequired\"] = 412] = \"PreviousRequestRequired\";\r\n SubCode[SubCode[\"ValueOutOfRange\"] = 413] = \"ValueOutOfRange\";\r\n SubCode[SubCode[\"ValueUnsupported\"] = 415] = \"ValueUnsupported\";\r\n SubCode[SubCode[\"UnprocessableEntity\"] = 422] = \"UnprocessableEntity\";\r\n SubCode[SubCode[\"AccountLocked\"] = 423] = \"AccountLocked\";\r\n SubCode[SubCode[\"MfaLoginFailed\"] = 424] = \"MfaLoginFailed\";\r\n SubCode[SubCode[\"MacInvalid\"] = 425] = \"MacInvalid\";\r\n SubCode[SubCode[\"EncryptionError\"] = 426] = \"EncryptionError\";\r\n SubCode[SubCode[\"TooManyRequests\"] = 429] = \"TooManyRequests\";\r\n SubCode[SubCode[\"InvalidLanguage\"] = 430] = \"InvalidLanguage\";\r\n SubCode[SubCode[\"InvalidEmailFormat\"] = 431] = \"InvalidEmailFormat\";\r\n SubCode[SubCode[\"InvalidPhoneFormat\"] = 432] = \"InvalidPhoneFormat\";\r\n SubCode[SubCode[\"InvalidDataSourceId\"] = 433] = \"InvalidDataSourceId\";\r\n SubCode[SubCode[\"InvalidFinancialInstitutionId\"] = 434] = \"InvalidFinancialInstitutionId\";\r\n SubCode[SubCode[\"MalformedRequest\"] = 435] = \"MalformedRequest\";\r\n SubCode[SubCode[\"AccessDenied\"] = 436] = \"AccessDenied\";\r\n SubCode[SubCode[\"ArtifactNotFound\"] = 437] = \"ArtifactNotFound\";\r\n SubCode[SubCode[\"UpdateToFieldNotAllowed\"] = 438] = \"UpdateToFieldNotAllowed\";\r\n SubCode[SubCode[\"ArtifactCannotBeDecompressed\"] = 439] = \"ArtifactCannotBeDecompressed\";\r\n SubCode[SubCode[\"MimeTypeNotSupported\"] = 440] = \"MimeTypeNotSupported\";\r\n SubCode[SubCode[\"ArtifactArchived\"] = 441] = \"ArtifactArchived\";\r\n SubCode[SubCode[\"ArtifactTooLarge\"] = 442] = \"ArtifactTooLarge\";\r\n SubCode[SubCode[\"ArtifactTooSmall\"] = 443] = \"ArtifactTooSmall\";\r\n SubCode[SubCode[\"ArtifactRejected\"] = 444] = \"ArtifactRejected\";\r\n SubCode[SubCode[\"InvalidDataLength\"] = 445] = \"InvalidDataLength\";\r\n SubCode[SubCode[\"InvalidFormat\"] = 475] = \"InvalidFormat\";\r\n SubCode[SubCode[\"InvalidEnvironment\"] = 476] = \"InvalidEnvironment\";\r\n SubCode[SubCode[\"DatesOutOfOrder\"] = 497] = \"DatesOutOfOrder\";\r\n SubCode[SubCode[\"DateRangeTooLarge\"] = 498] = \"DateRangeTooLarge\";\r\n SubCode[SubCode[\"GeneralError\"] = 499] = \"GeneralError\";\r\n SubCode[SubCode[\"ServiceTemporarilyUnavailable\"] = 503] = \"ServiceTemporarilyUnavailable\";\r\n})(SubCode = exports.SubCode || (exports.SubCode = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.MachineSecretProviderType = void 0;\r\nvar MachineSecretProviderType;\r\n(function (MachineSecretProviderType) {\r\n MachineSecretProviderType[\"DefaultProvider\"] = \"Default Provider\";\r\n MachineSecretProviderType[\"EntrustRememberedDevicesProvider\"] = \"Entrust Remembered Devices Provider\";\r\n})(MachineSecretProviderType = exports.MachineSecretProviderType || (exports.MachineSecretProviderType = {}));\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EntrustMachineSecretProvider = void 0;\r\nclass EntrustMachineSecretProvider {\r\n initialize(username) {\r\n machineSecret\r\n .setDebugOn(false)\r\n .setStorageTypeExclusions('flash')\r\n .setMachineNonceName(this.getMachineNonceName(username))\r\n .setSequenceNonceName(this.getSequenceNonceName(username));\r\n }\r\n read() {\r\n const map = {};\r\n map.MachineNonce = machineSecret.fetchMachineNonce();\r\n map.SequenceNonce = machineSecret.fetchSequenceNonce();\r\n map.DeviceFingerprint = this.cleanUpFingerprint(machineSecret.getDeviceFingerprint());\r\n return map;\r\n }\r\n write(map) {\r\n machineSecret.storeMachineNonce(map.MachineNonce);\r\n machineSecret.storeSequenceNonce(map.SequenceNonce);\r\n }\r\n getRealm() {\r\n return 'https://' + window.location.hostname + '/';\r\n }\r\n getMachineNonceName(username) {\r\n const prefix = 'ob_mn';\r\n return this.getHash(this.getRealm(), username, prefix);\r\n }\r\n getSequenceNonceName(username) {\r\n const prefix = 'ob_sn';\r\n return this.getHash(this.getRealm(), username, prefix);\r\n }\r\n getHash(url, username, prefix) {\r\n const input = prefix + username.toLowerCase();\r\n const keyArray = CryptoJS.enc.Utf8.parse(url);\r\n const inputArray = CryptoJS.enc.Utf8.parse(input);\r\n const hash = CryptoJS.HmacSHA1(inputArray, keyArray);\r\n const hashInHex = CryptoJS.enc.Hex.stringify(hash);\r\n return hashInHex.toUpperCase();\r\n }\r\n cleanUpFingerprint(fingerPrintStr) {\r\n /* tslint:disable */\r\n // Here is a sample fingerprint string from Android: {\"platform\":\"web\",\"version\":\"2.0.0\",\"attributes\":{\"browserName\":\"Chrome\",\"browserVersion\":\"74.0.3729.112\",\"osName\":\"Android\",\"osVersion\":\"5.1.1\",\"plugins\":[],\"platform\":\"Linux aarch64\",\"appVersion\":\"5.0 (Linux; Android 5.1.1; SAMSUNG-SM-G920A Build/LMY47X; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.112 Mobile Safari/537.36 NATIVEAPP NATIVEMENU NATIVEPIN\",\"cssVendorPrefix\":\"webkit\",\"cookiesEnabled\":true,\"javaEnabled\":false,\"flashEnabled\":false,\"flashVersion\":\"0.0.0\",\"language\":\"en-US\",\"doNotTrack\":\"unknown\",\"timezoneOffset\":-240,\"width\":360,\"height\":640,\"availWidth\":360,\"availHeight\":640,\"colorDepth\":24,\"localStorage\":true,\"sessionStorage\":true,\"indexedDB\":true,\"fonts\":[25,43,48,63,64,65,72,127,128,148,198,199,200,229,236,324,326,369,447,455,456,471,476,488,489],\"canvas\":\"a27f593234a369488586c2b56655c33bbf9fbc37a22e697f884a13c7e176e576\",\"webGL\":[\"b1b8461e148f9d45a438852f32b732093ff4c1d95535cf92b72811d13fc22e08\",\"ANGLE_instanced_arrays;EXT_blend_minmax;EXT_sRGB;OES_element_index_uint;OES_standard_derivatives;OES_vertex_array_object;WEBGL_compressed_texture_astc;WEBGL_compressed_texture_etc1;WEBGL_debug_renderer_info;WEBGL_debug_shaders;WEBGL_depth_texture;WEBKIT_WEBGL_depth_texture;WEBGL_lose_context;WEBKIT_WEBGL_lose_context\",\"(1 x 4095.9375)\",\"(1 x 1024)\",8,true,8,24,8,null,48,4096,1024,8192,16,4096,15,16,16,1024,\"(8192 x 8192)\",8,\"WebKit WebGL\",\"WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)\",0,\"WebKit\",\"WebGL 1.0 (OpenGL ES 2.0 Chromium)\"],\"ioBlackbox\":null}}\r\n // Here is a sample fingerprint string from IOS: {\"platform\":\"web\",\"version\":\"2.0.0\",\"attributes\":{\"browserName\":\"WebKit\",\"browserVersion\":\"605.1.15\",\"osName\":\"iOS\",\"osVersion\":\"12.1.2\",\"plugins\":[],\"platform\":\"iPhone\",\"appVersion\":\"3000.7.5 (com.alkamitech.iccuqa1; build:10743) Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16C101 NATIVEAPP ORB NATIVEMENU\",\"cssVendorPrefix\":\"webkit\",\"cookiesEnabled\":true,\"javaEnabled\":false,\"flashEnabled\":false,\"flashVersion\":\"0.0.0\",\"language\":\"en-US\",\"doNotTrack\":\"unknown\",\"timezoneOffset\":-300,\"width\":375,\"height\":667,\"availWidth\":375,\"availHeight\":667,\"colorDepth\":32,\"localStorage\":true,\"sessionStorage\":true,\"indexedDB\":true,\"fonts\":[1,11,21,22,25,27,30,37,40,43,48,63,64,65,72,74,99,100,110,117,127,128,134,137,139,148,158,183,193,198,199,200,202,216,221,226,227,229,230,233,234,235,236,258,261,293,297,298,306,324,356,364,365,369,371,373,394,401,427,432,444,448,451,454,455,456,461,471,476,488,489,493],\"canvas\":\"68ba9359e54939a9f42afd911348455624170828a4417834d4d058f4a5140cc3\",\"webGL\":[\"a1208499aca2742879fdb9fc517a4686ff899142d43b23785c36e50791630ed3\",\"EXT_blend_minmax;EXT_sRGB;OES_texture_float;OES_texture_float_linear;OES_texture_half_float;OES_texture_half_float_linear;OES_standard_derivatives;EXT_shader_texture_lod;EXT_texture_filter_anisotropic;OES_vertex_array_object;OES_element_index_uint;WEBGL_lose_context;WEBKIT_WEBGL_compressed_texture_pvrtc;WEBGL_depth_texture;ANGLE_instanced_arrays;WEBGL_debug_renderer_info\",\"(1 x 16)\",\"(1 x 511)\",8,true,8,24,8,16,8,4096,64,4096,8,4096,8,16,8,128,\"(4096 x 4096)\",8,\"WebKit WebGL\",\"WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.00)\",0,\"WebKit\",\"WebGL 1.0 (OpenGL ES 2.0 Metal - 58.4)\"],\"ioBlackbox\":null}}\r\n /* tslint:enable */\r\n const fingerPrintObj = JSON.parse(fingerPrintStr);\r\n const webGL = fingerPrintObj.attributes.webGL;\r\n const intIndexes = [4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 24];\r\n for (let i = 0; i < webGL.length; i++) {\r\n if (webGL[i] == null && intIndexes.indexOf(i) > -1) {\r\n webGL[i] = 0;\r\n }\r\n }\r\n return JSON.stringify(fingerPrintObj);\r\n }\r\n}\r\nexports.EntrustMachineSecretProvider = EntrustMachineSecretProvider;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.DefaultMachineSecretProvider = void 0;\r\nclass DefaultMachineSecretProvider {\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n initialize() { }\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n write(map) { }\r\n read() {\r\n const map = {};\r\n map.director = this.hasPlugin('Shockwave');\r\n map.mimeTypes = this.getMimeTypes();\r\n map.mimeTypesCount = navigator.mimeTypes.length;\r\n map.plugins = this.getPlugins();\r\n map.pluginsCount = navigator.plugins.length;\r\n map.quickTime = this.hasPlugin('QuickTime');\r\n map.realPlayer = this.hasPlugin('RealPlayer');\r\n map.windowsMediaPlayer = this.hasPlugin('WindowsMediaPlayer');\r\n map.accrobatReader = this.hasPlugin('AdobeReader');\r\n map.svgViewer = false;\r\n map.clearType = false;\r\n map.screenColorDepth = screen.colorDepth;\r\n map.screenHeight = screen.height;\r\n map.screenPixelDepth = screen.pixelDepth;\r\n map.screenWidth = screen.width;\r\n map.screenAvailHeigth = screen.availHeight;\r\n map.screenAvailWidth = screen.availWidth;\r\n // map[\"screenBufferDepth\"] = screen.bufferDepth;\r\n map.appName = navigator.appName;\r\n map.appVersion = navigator.appVersion;\r\n map.appMinorVersion = navigator.appMinorVersion;\r\n map.cookieEnabled = navigator.cookieEnabled;\r\n map.cpuClass = navigator.cpuClass;\r\n map.systemLanguage = navigator.systemLanguage;\r\n map.userAgent = navigator.userAgent;\r\n map.userLanguage = navigator.userLanguage;\r\n map.javaEnabled = navigator.javaEnabled();\r\n map.platform = navigator.platform;\r\n map.appCodeName = navigator.appCodeName;\r\n map.language = navigator.language;\r\n map.oscpu = navigator.oscpu;\r\n map.vendor = navigator.vendor;\r\n map.vendorSub = navigator.vendorSub;\r\n map.product = navigator.product;\r\n map.productSub = navigator.productSub;\r\n if (typeof navigator.taintEnabled !== 'undefined') {\r\n map.taintEnabled = navigator.taintEnabled();\r\n }\r\n return map;\r\n }\r\n getMimeTypes() {\r\n if (navigator.mimeTypes && navigator.mimeTypes.length) {\r\n return Array.from(navigator.mimeTypes)\r\n .map((mimeType) => mimeType.type)\r\n .join(',');\r\n }\r\n return '';\r\n }\r\n getPlugins() {\r\n if (navigator.plugins && navigator.plugins.length) {\r\n return Array.from(navigator.plugins)\r\n .map((plugin) => plugin.name.replace(/&/g, ''))\r\n .join(',');\r\n }\r\n return '';\r\n }\r\n hasPlugin(pluginName) {\r\n const PluginDetect = window.PluginDetect;\r\n if (PluginDetect) {\r\n return PluginDetect.getVersion(pluginName) !== null;\r\n }\r\n return false;\r\n }\r\n}\r\nexports.DefaultMachineSecretProvider = DefaultMachineSecretProvider;\r\n","var map = {\n\t\"./\": 15,\n\t\"./ChangePassword\": 227,\n\t\"./ChangePassword.vue\": 227,\n\t\"./CheckSyncResult\": 228,\n\t\"./CheckSyncResult.vue\": 228,\n\t\"./CheckSyncResultForgot\": 231,\n\t\"./CheckSyncResultForgot.vue\": 231,\n\t\"./ChooseRegistrationType\": 232,\n\t\"./ChooseRegistrationType.vue\": 232,\n\t\"./ConfirmIdentity\": 17,\n\t\"./ConfirmIdentity.vue\": 17,\n\t\"./ConvertedUser\": 234,\n\t\"./ConvertedUser.vue\": 234,\n\t\"./CreateUser\": 235,\n\t\"./CreateUser.vue\": 235,\n\t\"./CreateUsername\": 236,\n\t\"./CreateUsername.vue\": 236,\n\t\"./Empty\": 237,\n\t\"./Empty.vue\": 237,\n\t\"./ForgotPassword\": 238,\n\t\"./ForgotPassword.vue\": 238,\n\t\"./ForgotPasswordChooseScenario\": 239,\n\t\"./ForgotPasswordChooseScenario.vue\": 239,\n\t\"./ForgotPasswordConfirmIdentity\": 240,\n\t\"./ForgotPasswordConfirmIdentity.vue\": 240,\n\t\"./ForgotPasswordDisclosure\": 241,\n\t\"./ForgotPasswordDisclosure.vue\": 241,\n\t\"./ForgotUsername\": 243,\n\t\"./ForgotUsername.vue\": 243,\n\t\"./ForgotUsernameChooseScenario\": 244,\n\t\"./ForgotUsernameChooseScenario.vue\": 244,\n\t\"./ForgotUsernameConfirmIdentity\": 245,\n\t\"./ForgotUsernameConfirmIdentity.vue\": 245,\n\t\"./OneTimeCode\": 86,\n\t\"./OneTimeCode.vue\": 86,\n\t\"./OneTimeCodeDestination\": 274,\n\t\"./OneTimeCodeDestination.vue\": 274,\n\t\"./OneTimeCodeForgot\": 18,\n\t\"./OneTimeCodeForgot.vue\": 18,\n\t\"./OneTimeCodeForgotContainer\": 246,\n\t\"./OneTimeCodeForgotContainer.vue\": 246,\n\t\"./QuestionsAndAnswers\": 247,\n\t\"./QuestionsAndAnswers.vue\": 247,\n\t\"./RegistrationDisclosure\": 248,\n\t\"./RegistrationDisclosure.vue\": 248,\n\t\"./ResetPassword\": 249,\n\t\"./ResetPassword.vue\": 249,\n\t\"./StartForgotPassword\": 250,\n\t\"./StartForgotPassword.vue\": 250,\n\t\"./StartForgotUsername\": 251,\n\t\"./StartForgotUsername.vue\": 251,\n\t\"./StartRegistration\": 252,\n\t\"./StartRegistration.vue\": 252,\n\t\"./StepUp\": 253,\n\t\"./StepUp.vue\": 253,\n\t\"./StepUpForgot\": 267,\n\t\"./StepUpForgot.vue\": 267,\n\t\"./TemporaryPassword\": 268,\n\t\"./TemporaryPassword.vue\": 268,\n\t\"./Tethered\": 269,\n\t\"./Tethered.vue\": 269,\n\t\"./UpdateBusiness\": 271,\n\t\"./UpdateBusiness.vue\": 271,\n\t\"./UsernameAndPassword\": 272,\n\t\"./UsernameAndPassword.vue\": 272,\n\t\"./UsernameRecovered\": 273,\n\t\"./UsernameRecovered.vue\": 273,\n\t\"./index\": 15,\n\t\"./index.ts\": 15\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 291;","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var idPrefix = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.tt) {\n layers[i - 1].td = layerData.tt;\n }\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n xhr.open('GET', path, true);\n } catch (error) {\n xhr.open('GET', fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i]\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n this.setParams(params);\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function () {\n this.renderer.updateContainerSize();\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.renderer = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n case 'drawnFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var PropertyFactory = function () {\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n function getProp(elem, data, type, mult, container) {\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.9.1';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString;\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src.replace(/^[^\\?]+\\??/, ''); // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n if (!this.a.k) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n var zeroWidthJoiner = [65039, 8205];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(def, fontData) {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n var fontProps = getFontProperties(fontData);\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n var tCanvasHelper = createTag('canvas').getContext('2d');\n tCanvasHelper.font = fontData.fWeight + ' ' + fontData.fStyle + ' 100px ' + fontData.fFamily; // tCanvasHelper.font = ' 100px '+ fontData.fFamily;\n\n return tHelper;\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(defs, fontArr[i]);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName);\n\n var index = _char2.charCodeAt(0);\n\n if (!fontData.cache[index + 1]) {\n var tHelper = fontData.helper; // Canvas version\n // fontData.cache[index] = tHelper.measureText(char).width / 100;\n // SVG version\n // console.log(tHelper.getBBox().width)\n\n if (_char2 === ' ') {\n tHelper.textContent = '|' + _char2 + '|';\n var doubleSize = tHelper.getComputedTextLength();\n tHelper.textContent = '||';\n var singleSize = tHelper.getComputedTextLength();\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n } else {\n tHelper.textContent = _char2;\n fontData.cache[index + 1] = tHelper.getComputedTextLength() / 100;\n }\n }\n\n return fontData.cache[index + 1] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\n if (!secondCharCode) {\n return firstCharCode === zeroWidthJoiner[1];\n }\n\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isCombinedCharacter = isCombinedCharacter;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _prevValue;\n\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (stringValue !== _prevValue) {\n elem.textProperty.currentData.t = _prevValue;\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this.audio.volume(volumeValue);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _opMdf: false,\n mat: new Matrix()\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n return ob;\n }();\n\n function SVGTintFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', 'f1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', 'f2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n\n if (filterManager.effectElements[2].p.v !== 100 || filterManager.effectElements[2].p.k) {\n var feMerge = createNS('feMerge');\n filter.appendChild(feMerge);\n var feMergeNode;\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', 'SourceGraphic');\n feMerge.appendChild(feMergeNode);\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', 'f2');\n feMerge.appendChild(feMergeNode);\n }\n }\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(elem, filterManager) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', 'f1');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB); // var opacity = this.filterManager.effectElements[2].p.v/100;\n // this.matrixFilter.setAttribute('values',(colorWhite[0]- colorBlack[0])+' 0 0 0 '+ colorBlack[0] +' '+ (colorWhite[1]- colorBlack[1]) +' 0 0 0 '+ colorBlack[1] +' '+ (colorWhite[2]- colorBlack[2]) +' 0 0 0 '+ colorBlack[2] +' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer');\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n }\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n }\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n }\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n feComponentTransfer = createNS('feComponentTransfer');\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager) {\n var filterSize = filterManager.container.globalData.renderConfig.filterSize;\n filter.setAttribute('x', filterSize.x);\n filter.setAttribute('y', filterSize.y);\n filter.setAttribute('width', filterSize.width);\n filter.setAttribute('height', filterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', 'drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', 'drop_shadow_1');\n feOffset.setAttribute('result', 'drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', 'drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', 'drop_shadow_3');\n feComposite.setAttribute('in2', 'drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', 'drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = createNS('feMerge');\n filter.appendChild(feMerge);\n var feMergeNode;\n feMergeNode = createNS('feMergeNode');\n feMerge.appendChild(feMergeNode);\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', 'SourceGraphic');\n this.feMergeNode = feMergeNode;\n this.feMerge = feMerge;\n this.originalNodeAdded = false;\n feMerge.appendChild(feMergeNode);\n }\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n /* if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n this.feMerge.removeChild(this.feMergeNode);\r\n this.originalNodeAdded = false;\r\n } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n this.feMerge.appendChild(this.feMergeNode);\r\n this.originalNodeAdded = true;\r\n }\r\n } */\n\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n var registeredEffects = {};\n\n function SVGEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem);\n\n if (registeredEffects[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (elem.data.ef[i].ty === 20) {\n count += 1;\n filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 21) {\n count += 1;\n filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 22) {\n filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 23) {\n count += 1;\n filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 24) {\n count += 1;\n filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 25) {\n count += 1;\n filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]);\n } else if (elem.data.ef[i].ty === 28) {\n // count += 1;\n filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem);\n } else if (elem.data.ef[i].ty === 29) {\n count += 1;\n filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n function registerEffect(id, effect, countsAsEffect) {\n registeredEffects[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n var filId;\n var fil;\n var gg;\n\n if (this.data.td) {\n if (this.data.td == 3 || this.data.td == 1) {\n // eslint-disable-line eqeqeq\n var masker = createNS('mask');\n masker.setAttribute('id', this.layerId);\n masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\n\n masker.appendChild(this.layerElement);\n layerElementParent = masker;\n this.globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha\n\n if (!featureSupport.maskType && this.data.td == 1) {\n // eslint-disable-line eqeqeq\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (this.data.td == 2) {\n // eslint-disable-line eqeqeq\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', this.layerId);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n // This solution doesn't work on Android when meta tag with viewport attribute is set\n\n /* var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n fil.appendChild(feColorMatrix); */\n /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n maskGrouper.appendChild(this.layerElement);\n layerElementParent = maskGrouper;\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._matMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var props;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n props = itemData.transformers[k].mProps.v.props;\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n\n while (i < len) {\n charCode = text.charCodeAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n shouldCombine = false;\n } else {\n charactersArray.push(text.substr(i, 2));\n }\n\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\n shouldCombine = true;\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n shouldCombine = true;\n } else {\n charactersArray.push(text.charAt(i));\n }\n\n i += 1;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement;\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = charData.data;\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement);\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\n this.buildItem(pos - 1);\n this.addPendingElement(element);\n } else {\n element.setMatte(elements[pos - 1].layerId);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n element.setMatte(this.elements[i - 1].layerId);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function CVContextData() {\n this.saved = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n this.cO = 1;\n var i;\n var len = 15;\n this.savedOp = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = len;\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var currentSavedOp = this.savedOp;\n this.savedOp = createTypedArray('float32', newLength);\n this.savedOp.set(currentSavedOp);\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.cO = 1;\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n var props;\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n props = sequence.transforms[i].transform.mProps.v.props;\n sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n function CVEffects() {}\n\n CVEffects.prototype.renderFrame = function () {};\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n this.canvasContext = this.globalData.canvasContext;\n this.renderableEffectsManager = new CVEffects(this);\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n ctx.lineWidth = currentStyle.wi;\n ctx.lineCap = currentStyle.lc;\n ctx.lineJoin = currentStyle.lj;\n ctx.miterLimit = currentStyle.ml || 0;\n } else {\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n ctx.stroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n ctx.fill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n this.globalData.renderer.save();\n this.globalData.renderer.ctxTransform(renderedLetter.p);\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n lastFill = renderedLetter.fc;\n ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.fillStyle = this.data.sc;\n ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\n };\n\n function CanvasRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n return;\n }\n\n this.transformMat.cloneFromProps(props);\n var cProps = this.contextData.cTr.props;\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\n\n this.contextData.cTr.cloneFromProps(this.transformMat.props);\n var trProps = this.contextData.cTr.props;\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n /* if(op === 1){\r\n return;\r\n } */\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n return;\n }\n\n this.contextData.cO *= op < 0 ? 0 : op;\n\n if (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\n this.canvasContext.globalAlpha = this.contextData.cO;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n }\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.save();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.save();\n }\n\n var props = this.contextData.cTr.props;\n\n if (this.contextData._length <= this.contextData.cArrPos) {\n this.contextData.duplicate();\n }\n\n var i;\n var arr = this.contextData.saved[this.contextData.cArrPos];\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = props[i];\n }\n\n this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\n this.contextData.cArrPos += 1;\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.restore();\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.cArrPos -= 1;\n var popped = this.contextData.saved[this.contextData.cArrPos];\n var i;\n var arr = this.contextData.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = popped[i];\n }\n\n this.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n popped = this.contextData.savedOp[this.contextData.cArrPos];\n this.contextData.cO = popped;\n\n if (this.globalData.currentGlobalAlpha !== popped) {\n this.canvasContext.globalAlpha = popped;\n this.globalData.currentGlobalAlpha = popped;\n }\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function () {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n this.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\n this.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\n } else {\n elementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\n elementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n this.elements[i].destroy();\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$1(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n initialize$2(BMMath);\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof(a);\n\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath];\n return ob;\n }();\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect(20, SVGTintFilter, true);\n registerEffect(21, SVGFillFilter, true);\n registerEffect(22, SVGStrokeEffect, false);\n registerEffect(23, SVGTritoneFilter, true);\n registerEffect(24, SVGProLevelsFilter, true);\n registerEffect(25, SVGDropShadowEffect, true);\n registerEffect(28, SVGMatte3Effect, false);\n registerEffect(29, SVGGaussianBlurEffect, true);\n\n return lottie;\n\n}));\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ConfirmationError64 = void 0;\r\n/* eslint-disable id-denylist */\r\nexports.ConfirmationError64 = {\r\n v: '5.6.10',\r\n fr: 60,\r\n ip: 0,\r\n op: 91,\r\n w: 64,\r\n h: 64,\r\n nm: 'Error 40',\r\n ddd: 0,\r\n assets: [],\r\n layers: [\r\n {\r\n ddd: 0,\r\n ind: 1,\r\n ty: 3,\r\n nm: 'Controller',\r\n sr: 1,\r\n ks: {\r\n o: { a: 0, k: 0, ix: 11 },\r\n r: { a: 0, k: 0, ix: 10 },\r\n p: { a: 0, k: [32.438, 31.125, 0], ix: 2 },\r\n a: { a: 0, k: [60, 60, 0], ix: 1 },\r\n s: {\r\n a: 1,\r\n k: [\r\n {\r\n i: { x: [0.593, 0.593, 0.2], y: [1, 1, 1] },\r\n o: { x: [0.998, 0.998, 0.5], y: [0, 0, 0] },\r\n t: 30,\r\n s: [100, 100, 100],\r\n },\r\n {\r\n i: { x: [0.2, 0.2, 0.2], y: [1, 1, 1] },\r\n o: { x: [0.719, 0.719, 0.5], y: [0, 0, 0] },\r\n t: 49,\r\n s: [112, 112, 100],\r\n },\r\n { t: 63, s: [100, 100, 100] },\r\n ],\r\n ix: 6,\r\n },\r\n },\r\n ao: 0,\r\n ip: 30,\r\n op: 210,\r\n st: -90,\r\n bm: 0,\r\n },\r\n {\r\n ddd: 0,\r\n ind: 2,\r\n ty: 4,\r\n nm: 'Dot',\r\n parent: 1,\r\n sr: 1,\r\n ks: {\r\n o: { a: 0, k: 100, ix: 11 },\r\n r: { a: 0, k: 0, ix: 10 },\r\n p: { a: 0, k: [59.562, 69.875, 0], ix: 2 },\r\n a: { a: 0, k: [0, 0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100, 100], ix: 6 },\r\n },\r\n ao: 0,\r\n shapes: [\r\n {\r\n ty: 'gr',\r\n it: [\r\n {\r\n ty: 'rc',\r\n d: 1,\r\n s: {\r\n a: 1,\r\n k: [\r\n {\r\n i: { x: [0.2, 0.2], y: [1, 1] },\r\n o: { x: [0.5, 0.5], y: [0, 0] },\r\n t: 41,\r\n s: [0, 0],\r\n },\r\n { t: 48, s: [4, 4] },\r\n ],\r\n ix: 2,\r\n },\r\n p: { a: 0, k: [0, 0], ix: 3 },\r\n r: { a: 0, k: 0, ix: 4 },\r\n nm: 'Rectangle Path 1',\r\n mn: 'ADBE Vector Shape - Rect',\r\n hd: false,\r\n },\r\n {\r\n ty: 'fl',\r\n c: { a: 0, k: [0.75686275959, 0.0941176489, 0.149019613862, 1], ix: 4 },\r\n o: { a: 0, k: 100, ix: 5 },\r\n r: 1,\r\n bm: 0,\r\n nm: '.colorBrandedErrorFill',\r\n mn: 'ADBE Vector Graphic - Fill',\r\n hd: false,\r\n cl: 'colorBrandedErrorFill',\r\n },\r\n {\r\n ty: 'tr',\r\n p: { a: 0, k: [0, 0], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: 'Transform',\r\n },\r\n ],\r\n nm: 'Rectangle 1',\r\n np: 2,\r\n cix: 2,\r\n bm: 0,\r\n ix: 1,\r\n mn: 'ADBE Vector Group',\r\n hd: false,\r\n },\r\n ],\r\n ip: 41,\r\n op: 180,\r\n st: 11,\r\n bm: 0,\r\n },\r\n {\r\n ddd: 0,\r\n ind: 3,\r\n ty: 4,\r\n nm: 'Bar',\r\n parent: 1,\r\n sr: 1,\r\n ks: {\r\n o: { a: 0, k: 100, ix: 11 },\r\n r: { a: 0, k: 0, ix: 10 },\r\n p: {\r\n s: true,\r\n x: { a: 0, k: 59.533, ix: 3 },\r\n y: {\r\n a: 1,\r\n k: [\r\n { i: { x: [0.34], y: [1] }, o: { x: [0.88], y: [0] }, t: 30, s: [52.875] },\r\n { i: { x: [0], y: [1] }, o: { x: [0.172], y: [0] }, t: 48, s: [57.875] },\r\n { i: { x: [0.697], y: [0.724] }, o: { x: [0.157], y: [0] }, t: 55, s: [56.875] },\r\n { i: { x: [0.778], y: [1] }, o: { x: [0.428], y: [0.618] }, t: 67, s: [56.792] },\r\n { t: 69, s: [56.783] },\r\n ],\r\n ix: 4,\r\n },\r\n },\r\n a: { a: 0, k: [0.13, -5.083, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100, 100], ix: 6 },\r\n },\r\n ao: 0,\r\n shapes: [\r\n {\r\n ty: 'gr',\r\n it: [\r\n {\r\n ind: 0,\r\n ty: 'sh',\r\n ix: 1,\r\n ks: {\r\n a: 0,\r\n k: {\r\n i: [\r\n [0, 0],\r\n [0, 0],\r\n ],\r\n o: [\r\n [0, 0],\r\n [0, 0],\r\n ],\r\n v: [\r\n [0.132, -12.666],\r\n [0.152, 1.963],\r\n ],\r\n c: true,\r\n },\r\n ix: 2,\r\n },\r\n nm: 'Path 1',\r\n mn: 'ADBE Vector Shape - Group',\r\n hd: false,\r\n },\r\n {\r\n ty: 'tm',\r\n s: { a: 0, k: 0, ix: 1 },\r\n e: {\r\n a: 1,\r\n k: [\r\n { i: { x: [0.2], y: [1] }, o: { x: [0.5], y: [0] }, t: 30, s: [0] },\r\n { t: 50, s: [100] },\r\n ],\r\n ix: 2,\r\n },\r\n o: { a: 0, k: 0, ix: 3 },\r\n m: 1,\r\n ix: 2,\r\n nm: 'Trim Paths 1',\r\n mn: 'ADBE Vector Filter - Trim',\r\n hd: false,\r\n },\r\n {\r\n ty: 'st',\r\n c: { a: 0, k: [0.756862745098, 0.094117647059, 0.149019607843, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 4, ix: 5 },\r\n lc: 1,\r\n lj: 1,\r\n ml: 4,\r\n bm: 0,\r\n nm: '.colorBrandedErrorStroke',\r\n mn: 'ADBE Vector Graphic - Stroke',\r\n hd: false,\r\n cl: 'colorBrandedErrorStroke',\r\n },\r\n {\r\n ty: 'tr',\r\n p: { a: 0, k: [0, 0], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: 'Transform',\r\n },\r\n ],\r\n nm: 'Shape 1',\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 1,\r\n mn: 'ADBE Vector Group',\r\n hd: false,\r\n },\r\n ],\r\n ip: 30,\r\n op: 180,\r\n st: 0,\r\n bm: 0,\r\n },\r\n {\r\n ddd: 0,\r\n ind: 4,\r\n ty: 4,\r\n nm: 'Fill circle',\r\n parent: 1,\r\n sr: 1,\r\n ks: {\r\n o: { a: 0, k: 100, ix: 11 },\r\n r: {\r\n a: 1,\r\n k: [\r\n { i: { x: [0.833], y: [0.833] }, o: { x: [0.167], y: [0.167] }, t: 0, s: [0] },\r\n { t: 90, s: [418] },\r\n ],\r\n ix: 10,\r\n },\r\n p: { a: 0, k: [59.562, 60.875, 0], ix: 2 },\r\n a: { a: 0, k: [0, 0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100, 100], ix: 6 },\r\n },\r\n ao: 0,\r\n shapes: [\r\n {\r\n ty: 'gr',\r\n it: [\r\n {\r\n d: 1,\r\n ty: 'el',\r\n s: { a: 0, k: [40, 40], ix: 2 },\r\n p: { a: 0, k: [0, 0], ix: 3 },\r\n nm: 'Ellipse Path 1',\r\n mn: 'ADBE Vector Shape - Ellipse',\r\n hd: false,\r\n },\r\n {\r\n ty: 'tm',\r\n s: {\r\n a: 1,\r\n k: [\r\n { i: { x: [0.2], y: [1] }, o: { x: [0.5], y: [0] }, t: 0, s: [0] },\r\n { t: 30, s: [0] },\r\n ],\r\n ix: 1,\r\n },\r\n e: {\r\n a: 1,\r\n k: [\r\n { i: { x: [0.2], y: [1] }, o: { x: [0.5], y: [0] }, t: 0, s: [16] },\r\n { t: 30, s: [100] },\r\n ],\r\n ix: 2,\r\n },\r\n o: { a: 0, k: 0, ix: 3 },\r\n m: 1,\r\n ix: 2,\r\n nm: 'Trim Paths 1',\r\n mn: 'ADBE Vector Filter - Trim',\r\n hd: false,\r\n },\r\n {\r\n ty: 'st',\r\n c: { a: 0, k: [0.756862745098, 0.094117647059, 0.149019607843, 1], ix: 3 },\r\n o: { a: 0, k: 100, ix: 4 },\r\n w: { a: 0, k: 4, ix: 5 },\r\n lc: 1,\r\n lj: 1,\r\n ml: 4,\r\n bm: 0,\r\n nm: '.colorBrandedErrorStroke',\r\n mn: 'ADBE Vector Graphic - Stroke',\r\n hd: false,\r\n cl: 'colorBrandedErrorStroke',\r\n },\r\n {\r\n ty: 'tr',\r\n p: { a: 0, k: [0, 0], ix: 2 },\r\n a: { a: 0, k: [0, 0], ix: 1 },\r\n s: { a: 0, k: [100, 100], ix: 3 },\r\n r: { a: 0, k: 0, ix: 6 },\r\n o: { a: 0, k: 100, ix: 7 },\r\n sk: { a: 0, k: 0, ix: 4 },\r\n sa: { a: 0, k: 0, ix: 5 },\r\n nm: 'Transform',\r\n },\r\n ],\r\n nm: 'Ellipse 1',\r\n np: 3,\r\n cix: 2,\r\n bm: 0,\r\n ix: 1,\r\n mn: 'ADBE Vector Group',\r\n hd: false,\r\n },\r\n ],\r\n ip: 0,\r\n op: 180,\r\n st: -90,\r\n bm: 0,\r\n },\r\n ],\r\n markers: [],\r\n};\r\n","import { render, staticRenderFns } from \"./ProgressBar.vue?vue&type=template&id=7d3e7582&scoped=true&\"\nimport script from \"./ProgressBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProgressBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ProgressBar.vue?vue&type=style&index=0&id=7d3e7582&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7d3e7582\",\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.UserLookupType = void 0;\r\nvar UserLookupType;\r\n(function (UserLookupType) {\r\n UserLookupType[UserLookupType[\"None\"] = 0] = \"None\";\r\n UserLookupType[UserLookupType[\"Retail\"] = 1] = \"Retail\";\r\n UserLookupType[UserLookupType[\"Business\"] = 2] = \"Business\";\r\n})(UserLookupType = exports.UserLookupType || (exports.UserLookupType = {}));\r\n","import { render, staticRenderFns } from \"./UserIdentifyingFieldGroup.vue?vue&type=template&id=b1f66e40&scoped=true&\"\nimport script from \"./UserIdentifyingFieldGroup.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserIdentifyingFieldGroup.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UserIdentifyingFieldGroup.vue?vue&type=style&index=0&id=b1f66e40&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b1f66e40\",\n null\n \n)\n\nexport default component.exports","import { render, staticRenderFns } from \"./UserIdentifyingField.vue?vue&type=template&id=c778b9ec&scoped=true&\"\nimport script from \"./UserIdentifyingField.vue?vue&type=script&lang=ts&\"\nexport * from \"./UserIdentifyingField.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c778b9ec\",\n null\n \n)\n\nexport default component.exports","var map = {\n\t\"./\": 19,\n\t\"./Biometric\": 254,\n\t\"./Biometric.vue\": 254,\n\t\"./EmailCode\": 255,\n\t\"./EmailCode.vue\": 255,\n\t\"./PushNotification\": 257,\n\t\"./PushNotification.vue\": 257,\n\t\"./QuestionsAndAnswers\": 258,\n\t\"./QuestionsAndAnswers.vue\": 258,\n\t\"./SmsCode\": 259,\n\t\"./SmsCode.vue\": 259,\n\t\"./StepUpOption\": 155,\n\t\"./StepUpOption.vue\": 155,\n\t\"./TOTP\": 260,\n\t\"./TOTP.vue\": 260,\n\t\"./Token\": 262,\n\t\"./Token.vue\": 262,\n\t\"./Unknown\": 263,\n\t\"./Unknown.vue\": 263,\n\t\"./VoiceCode\": 264,\n\t\"./VoiceCode.vue\": 264,\n\t\"./VoicePrompt\": 265,\n\t\"./VoicePrompt.vue\": 265,\n\t\"./WebAuthn\": 266,\n\t\"./WebAuthn.vue\": 266,\n\t\"./index\": 19,\n\t\"./index.ts\": 19\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 299;","import { render, staticRenderFns } from \"./ForgotLinks.vue?vue&type=template&id=c5cc61ec&\"\nimport script from \"./ForgotLinks.vue?vue&type=script&lang=ts&\"\nexport * from \"./ForgotLinks.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst injectResources_1 = require(\"./injectResources\");\r\nconst setupSiteText_1 = require(\"./setupSiteText\");\r\nconst cssToInject = [\r\n 'https://staging-iris.alkamitech.com/cdn/iris-vue/latest/iris-components.shim.desktop.min.css',\r\n 'https://iris.alkamitech.com/cdn/iris-foundation/latest/iris-foundation.min.css',\r\n 'https://staging-iris.alkamitech.com/cdn/iris-vue/latest/iris-components.min.css',\r\n];\r\nconst jsToInject = [\r\n 'https://staging-iris.alkamitech.com/cdn/iris-vue/latest/iris-vue.umd.min.js',\r\n];\r\nasync function default_1() {\r\n if (window.Cypress) {\r\n (0, setupSiteText_1.setupSiteText)();\r\n await (0, injectResources_1.injectResources)({ jsToInject, cssToInject, injectLottie: true });\r\n }\r\n}\r\nexports.default = default_1;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.injectResources = void 0;\r\nfunction createLinkElement(href) {\r\n const linkElement = document.createElement('link');\r\n linkElement.rel = 'stylesheet';\r\n linkElement.type = 'text/css';\r\n linkElement.href = href;\r\n return linkElement;\r\n}\r\nfunction createScriptElement(src) {\r\n const scriptElement = document.createElement('script');\r\n scriptElement.type = 'text/javascript';\r\n scriptElement.src = src;\r\n return scriptElement;\r\n}\r\nfunction onResourceLoad(element) {\r\n return new Promise((resolve, reject) => {\r\n element.addEventListener('load', () => {\r\n resolve();\r\n });\r\n element.addEventListener('error', () => {\r\n reject(new Error('Unable to load resource.'));\r\n });\r\n });\r\n}\r\nasync function injectResources(options) {\r\n const promises = [];\r\n if (options.jsToInject) {\r\n promises.push(options.jsToInject.reduce(async (_promise, src) => {\r\n const scriptElement = createScriptElement(src);\r\n const loadPromise = onResourceLoad(scriptElement);\r\n document.body.appendChild(scriptElement);\r\n return await loadPromise;\r\n }, Promise.resolve()));\r\n }\r\n if (options.cssToInject) {\r\n promises.push(options.cssToInject.reduce(async (_promise, src) => {\r\n const linkElement = createLinkElement(src);\r\n const loadPromise = onResourceLoad(linkElement);\r\n document.head.appendChild(linkElement);\r\n return await loadPromise;\r\n }, Promise.resolve()));\r\n }\r\n if (options.injectLottie) {\r\n window.lottie = {\r\n loadAnimation: (config) => {\r\n config.container.innerHTML = '
A Fake lottie animation
';\r\n return {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n setSpeed: (speed) => {\r\n // this is just a mock so the iris-lottie-animation component won't throw an exception\r\n },\r\n };\r\n },\r\n };\r\n }\r\n await Promise.all(promises);\r\n}\r\nexports.injectResources = injectResources;\r\n","\"use strict\";\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.setupSiteText = exports.mockSiteTextMap = void 0;\r\n/* eslint-disable @typescript-eslint/quotes */\r\nconst mockSiteTextMap = {\r\n \"UsernameAndPassword.Header\": \"Welcome to Online Banking!\",\r\n \"UsernameAndPassword.TextField.Username.Label\": \"Username\",\r\n \"UsernameAndPassword.TextField.Username.Required\": \"Username is required\",\r\n \"UsernameAndPassword.TextField.Password.Label\": \"Password\",\r\n \"UsernameAndPassword.TextField.Password.Required\": \"Password is required\",\r\n \"UsernameAndPassword.Link.Forgot\": \"Forgot Username or Password?\",\r\n \"UsernameAndPassword.Link.Forgot.UsernameAndPassword\": \"Forgot {linku}Username{linku} or {linkp}Password{linkp}?\",\r\n \"UsernameAndPassword.Link.Forgot.Username\": \"{linku}Forgot Username{linku}?\",\r\n \"UsernameAndPassword.Link.Forgot.Password\": \"{linkp}Forgot Password{linkp}?\",\r\n \"UsernameAndPassword.Link.Forgot.Forgot\": \"Forgot\",\r\n \"UsernameAndPassword.Link.Forgot.Or\": \"or\",\r\n \"UsernameAndPassword.Link.Forgot.QuestionMark\": \"?\",\r\n \"UsernameAndPassword.Link.ForgotUsername\": \"Forgot Username\",\r\n \"UsernameAndPassword.Link.ForgotPassword\": \"Forgot Password\",\r\n \"UsernameAndPassword.Button.Login\": \"Login\",\r\n \"UsernameAndPassword.Button.Register\": \"Register a New Account\",\r\n \"DigitalAccountOpening.DisplayLink.Label\": \"Become a Member\",\r\n \"DigitalAccountOpening.DisplayLink.URL\": \"http://www.google.com\",\r\n \"UsernameAndPassword.Desktop.SideBar.Header\": \"On a mobile device?\",\r\n \"UsernameAndPassword.Desktop.SideBar.Text\": \"Download the app for convenient and secure access to your accounts.\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.First.Icon\": \"touchid\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.First.Header\": \"Biometric Login\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.First.Text\": \"Use your device hardware\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.Second.Icon\": \"atm\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.Second.Header\": \"Nearby ATMs\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.Second.Text\": \"Enable location services\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.Third.Icon\": \"phone2\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.Third.Header\": \"Snapshot\",\r\n \"UsernameAndPassword.Desktop.SideBar.List.Third.Text\": \"Preview accounts without login\",\r\n \"UsernameAndPassword.Desktop.SideBar.Link.ToMobile\": \"Go to mobile site\",\r\n \"StepUp.OneTimeCode.Header\": \"Enter Code\",\r\n \"StepUp.OneTimeCode.DisplayInput.ActionText\": \"Enter Code\",\r\n \"StepUp.OneTimeCode.DisplayInput.HelperText\": \"Code will expire in {0} minutes\",\r\n \"StepUp.OneTimeCode.Button.Verify\": \"Verify\",\r\n \"StepUp.Verification.Header\": \"Verification needed\",\r\n \"StepUp.Verification.HelperText\": \"Choose a verification method\",\r\n \"CodeStepup.Button.SendCode\": \"Send code\",\r\n \"MFA.Button.Navigate.Back\": \"Back\",\r\n \"RememberDevice.RememberThisDevice\": \"Remember this device\",\r\n \"RememberDevice.DeviceName\": \"Device name\",\r\n \"StepUp.Token.Button.Verify\": \"Verify\",\r\n \"StepUp.Token.DisplayInput.ActionText\": \"Enter code\",\r\n \"StepUp.TOTP.DisplayInput.HelperText\": \"Enter code shown in your two-factor authentication app\",\r\n \"StepUp.Token.DisplayInput.HelperText\": \"Enter code shown in your Entrust Token App\",\r\n \"CodeStepup.Destination.SendCodeTo\": \"Send code to\",\r\n \"CodeStepup.Verify.ResendCode\": \"Resend code\",\r\n \"CodeStepup.Verify.CodeSent\": \"Code sent\",\r\n \"CodeStepup.Verify.Phone.CodeSent\": \"A 6-digit code has been sent to your phone number ending in {0}\",\r\n \"CodeStepup.Verify.Email.CodeSent\": \"A 6-digit code has been sent to your email {0}\",\r\n \"Stepup.Icon.Label.SMS\": \"SMS\",\r\n \"Stepup.Icon.Label.EmailCode\": \"Email\",\r\n \"Stepup.Icon.Label.VoiceCode\": \"Call\",\r\n \"Stepup.Icon.Label.TOTP\": \"2FA\",\r\n \"Stepup.Icon.Label.Token\": \"Token\",\r\n \"Stepup.Icon.Label.Unknown\": \"Unknown\",\r\n \"ChallengeStatus.InvalidCredentials\": \"Invalid Credentials!\",\r\n \"ChallengeStatus.LockedOut\": \"Your account is locked. To reset it, click forgot password.\",\r\n \"ChallengeStatus.LockedOutinExternalIdentityProvider\": \"Your account is locked. Call the call-center for assistance with your account.\",\r\n \"ChallengeStatus.InvalidOneTimeCode\": \"Invalid code\",\r\n \"ChallengeStatus.InvalidCaptchaResponse\": \"Invalid CAPTCHA response\",\r\n \"ChallengeStatus.OTPExpired\": \"Your code has expired. Please request a new one.\",\r\n \"ChallengeStatus.DeclinedByRisk\": \"Your request has been declined.\",\r\n \"ChallengeStatus.SessionExpired\": \"Your session has expired.\",\r\n \"ChallengeStatus.TemporaryPasswordExpired\": \"Your temporary password has expired. To reset it, click forgot password.\",\r\n \"Error.Generic\": \"An unexpected error has occurred. Please try again later.\",\r\n \"AppStore.Link\": \"/appStore\",\r\n \"GooglePlay.Link\": \"/playStore\",\r\n \"Sync.Header\": \"Loading your accounts\",\r\n \"Sync.SyncError.Header\": \"Sync failed\",\r\n \"Sync.SyncError.Button.Back\": \"Login Sync Error Button\",\r\n \"ForgotPassword.SyncError.Button.Back\": \"ForgotPassword Sync Error Button\",\r\n \"Sync.SyncError.AEC.Unknown\": \"AEC.Unknown encountered\",\r\n \"Sync.SyncError.AEC.ProviderError\": \"AEC.ProviderError encountered\",\r\n \"Sync.SyncError.AEC.UnhandledProviderException\": \"AEC.UnhandledProviderException encountered\",\r\n \"Sync.SyncError.AEC.AccountTypeNotFound\": \"AEC.AccountTypeNotFound encountered\",\r\n \"Sync.SyncError.AEC.TimeOut\": \"AEC.TimeOut encountered\",\r\n \"Sync.SyncError.AEC.MemberIsNotEligibleToLogin\": \"AEC.MemberIsNotEligibleToLogin encountered\",\r\n \"Sync.SyncError.AEC.CacheExpired\": \"AEC.CacheExpired encountered\",\r\n \"Tethered.Loading\": \"Redirecting you to online banking...\",\r\n \"UsernameAndPassword.RememberUsername.Label\": \"Remember Me\",\r\n \"UsernameAndPassword.RememberUsername.Desktop.Message\": \"Do not select if you are using a public computer.\",\r\n \"UsernameAndPassword.InfoPanel.Ellipsis.IconName\": \"info\",\r\n \"UsernameAndPassword.InfoPanel.Ellipsis.Label\": \"Ellipsis Info Link\",\r\n \"UsernameAndPassword.InfoPanel.Header.Label\": \"Info Panel Header Label\",\r\n \"RememberDevice.Unavailable.Mandatory2fa\": \"Mandatory Two Factor Authentication has been enabled.\",\r\n \"ForgotWorkflow.Close.Confirm.Header\": \"Are you sure you want to quit?\",\r\n \"ForgotPassword.Close.Confirm.Text\": \"You will need to go through the forgot password flow again to reset password.\",\r\n \"ForgotPassword.Close.Text\": \"Cancel forgot password recovery\",\r\n \"ForgotUsername.Close.Confirm.Text\": \"You will need to go through the forgot username flow again to recover your username.\",\r\n \"ForgotUsername.Close.Text\": \"Cancel forgot username recovery\",\r\n \"ForgotWorkflow.Close.Confirm.Button.Text\": \"Yes\",\r\n \"ForgotWorkflow.Close.Cancel.Button.Text\": \"Cancel\",\r\n \"ForgotWorkflow.Disclosure.AcceptCheckbox.Label\": \"I Accept\",\r\n \"ForgotWorkflow.ActionButtonText\": \"Continue\",\r\n \"ForgotWorkflow.Disclosure.Mobile.Heading\": \"Please accept the disclosure\",\r\n \"ForgotUsername.ChooseScenario.Heading\": \"I want to\",\r\n \"ForgotUsername.ChooseScenario.Retail Forgot Username.Text\": \"Find My Personal Username\",\r\n \"ForgotUsername.ChooseScenario.Retail Forgot Username.Description\": \"Choose this if you are an individual and you forgot your username\",\r\n \"ForgotUsername.ChooseScenario.Business Forgot Username.Text\": \"Find My Business Username\",\r\n \"ForgotUsername.ChooseScenario.Business Forgot Username.Description\": \"Choose this if you are a business and you forgot your username\",\r\n \"ForgotUsername.Complete.Heading\": \"Your username is\",\r\n \"ForgotUsername.Complete.Button.Text\": \"Login\",\r\n \"ForgotPassword.ChooseScenario.Heading\": \"I want to\",\r\n \"ForgotPassword.ChooseScenario.Forgot Password.Text\": \"Reset My Password\",\r\n \"ForgotPassword.ChooseScenario.Forgot Password.Description\": \"Choose this if you're an individual or a business and forgot your password\",\r\n \"ForgotPassword.ChooseScenario.Business Sub User Forgot Password.Text\": \"Reset My Business Sub User Password\",\r\n \"ForgotPassword.ChooseScenario.Business Sub User Forgot Password.Description\": \"Choose this if you are a business sub user and you forgot your password\",\r\n \"ForgotUsername.Challenge.Heading\": \"Forgot Username\",\r\n \"ForgotUsername.ConfirmIdentity.Heading\": \"Verify your identity\",\r\n \"ForgotUsername.ConfirmIdentity.Notification\": \"\",\r\n \"ForgotUsername.UserIdentifyingFieldGroup.1.Text\": \"The following information is used to verify you have an account with us and that you are the owner of the account. We match your answers against our records.\",\r\n \"ForgotUsername.UserIdentifyingFieldGroup.2.Text\": \"Answer any one of the questions below\",\r\n \"ForgotPassword.Challenge.Heading\": \"Forgot Password\",\r\n \"ForgotPassword.ConfirmIdentity.Heading\": \"Verify your identity\",\r\n \"ForgotPassword.ConfirmIdentity.Notification\": \"\",\r\n \"ForgotPassword.UserIdentifyingFieldGroup.1.Text\": \"The following information is used to verify you have an account with us and that you are the owner of the account. We match your answers against our records.\",\r\n \"ForgotPassword.UserIdentifyingFieldGroup.2.Text\": \"Answer any one of the questions below\",\r\n \"UserIdentifyingField.Required\": \"Input is required\",\r\n \"UserIdentifyingField.ErrorMessage\": \"Invalid input\",\r\n \"UserIdentifyingField.Optional\": \"(Optional)\",\r\n \"UserIdentifyingField.LastName.Label\": \"Last Name\",\r\n \"UserIdentifyingField.LastName.HelperText\": \"\",\r\n \"UserIdentifyingField.EIN.Label\": \"EIN\",\r\n \"UserIdentifyingField.EIN.HelperText\": \"\",\r\n \"UserIdentifyingField.EIN.ErrorMessage\": \"\",\r\n \"UserIdentifyingField.AccountNumber.Label\": \"Account Number\",\r\n \"UserIdentifyingField.AccountNumber.HelperText\": \"\",\r\n \"UserIdentifyingField.AccountNumber.ErrorMessage\": \"\",\r\n \"UserIdentifyingField.DebitCardNumber.Label\": \"Debit Card Number\",\r\n \"UserIdentifyingField.DebitCardNumber.HelperText\": \"\",\r\n \"UserIdentifyingField.DebitCardNumber.ErrorMessage\": \"\",\r\n \"UserIdentifyingField.CreditCardNumber.Label\": \"Credit Card Number\",\r\n \"UserIdentifyingField.CreditCardNumber.HelperText\": \"\",\r\n \"UserIdentifyingField.CreditCardNumber.ErrorMessage\": \"\",\r\n \"UserIdentifyingField.Username.Label\": \"Confirm Username\",\r\n \"UserIdentifyingField.Username.HelperText\": \"\",\r\n \"UserIdentifyingField.TaxId.Label\": \"Social Security Number\",\r\n \"UserIdentifyingField.TaxId.HelperText\": \"\",\r\n \"UserIdentifyingField.TaxId.ErrorMessage\": \"Invalid {0}\",\r\n \"UserIdentifyingField.DateOfBirth.Label\": \"Date of Birth\",\r\n \"UserIdentifyingField.DateOfBirth.HelperText\": \"\",\r\n \"UserIdentifyingField.DateOfBirth.ErrorMessage\": \"Invalid {0}\",\r\n \"UserIdentifyingField.FirstName.Label\": \"First Name\",\r\n \"UserIdentifyingField.FirstName.HelperText\": \"\",\r\n \"UserIdentifyingField.MiddleName.Label\": \"Middle Name\",\r\n \"UserIdentifyingField.MiddleName.HelperText\": \"\",\r\n \"UserIdentifyingField.Suffix.Label\": \"Suffix\",\r\n \"UserIdentifyingField.Suffix.HelperText\": \"\",\r\n \"UserIdentifyingField.HomePhone.Label\": \"Home Phone\",\r\n \"UserIdentifyingField.HomePhone.HelperText\": \"\",\r\n \"UserIdentifyingField.WorkPhone.Label\": \"Work Phone\",\r\n \"UserIdentifyingField.WorkPhone.HelperText\": \"\",\r\n \"UserIdentifyingField.CellPhone.Label\": \"Cell Phone\",\r\n \"UserIdentifyingField.CellPhone.HelperText\": \"\",\r\n \"UserIdentifyingField.Address.Label\": \"Address\",\r\n \"UserIdentifyingField.Address.HelperText\": \"\",\r\n \"UserIdentifyingField.City.Label\": \"City\",\r\n \"UserIdentifyingField.City.HelperText\": \"\",\r\n \"UserIdentifyingField.State.Label\": \"State\",\r\n \"UserIdentifyingField.State.HelperText\": \"\",\r\n \"UserIdentifyingField.ZipCode.Label\": \"ZipCode\",\r\n \"UserIdentifyingField.ZipCode.HelperText\": \"\",\r\n \"UserIdentifyingField.PlaceOfBirth.Label\": \"Place of Birth\",\r\n \"UserIdentifyingField.PlaceOfBirth.HelperText\": \"\",\r\n \"UserIdentifyingField.MothersMaidenName.Label\": \"Mother's Maiden Name\",\r\n \"UserIdentifyingField.MothersMaidenName.HelperText\": \"\",\r\n \"UserIdentifyingField.AccountType.Label\": \"Account Type\",\r\n \"UserIdentifyingField.AccountType.HelperText\": \"\",\r\n \"UserIdentifyingField.IsBusiness.Label\": \"Is Business\",\r\n \"UserIdentifyingField.IsBusiness.HelperText\": \"\",\r\n \"UserIdentifyingField.Password.Label\": \"Password\",\r\n \"UserIdentifyingField.Password.HelperText\": \"\",\r\n \"UserIdentifyingField.None.Label\": \"None\",\r\n \"UserIdentifyingField.None.HelperText\": \"\",\r\n \"UserIdentifyingField.MemberNumber.Label\": \"Member Number\",\r\n \"UserIdentifyingField.MemberNumber.HelperText\": \"\",\r\n \"UserIdentifyingField.Email.Label\": \"Email\",\r\n \"UserIdentifyingField.Email.HelperText\": \"\",\r\n \"UserIdentifyingField.DriversLicenseNumber.Label\": \"Drivers License Number\",\r\n \"UserIdentifyingField.DriversLicenseNumber.HelperText\": \"\",\r\n \"UserIdentifyingField.CustomField.Label\": \"Custom Field\",\r\n \"UserIdentifyingField.CustomField.HelperText\": \"\",\r\n \"UserIdentifyingField.AccountHolderNumber.Label\": \"Account Holder Number\",\r\n \"UserIdentifyingField.AccountHolderNumber.HelperText\": \"\",\r\n \"UserIdentifyingField.Codeword.Label\": \"Codeword\",\r\n \"UserIdentifyingField.Codeword.HelperText\": \"\",\r\n \"UserIdentifyingField.PIN.Label\": \"PIN\",\r\n \"UserIdentifyingField.PIN.HelperText\": \"\",\r\n \"UserIdentifyingField.BusinessFirstName.Label\": \"Business First Name\",\r\n \"UserIdentifyingField.BusinessFirstName.HelperText\": \"\",\r\n \"UserIdentifyingField.BusinessLastName.Label\": \"Business Last Name\",\r\n \"UserIdentifyingField.BusinessLastName.HelperText\": \"\",\r\n \"UserIdentifyingField.BusinessName.Label\": \"Business Name\",\r\n \"UserIdentifyingField.BusinessName.HelperText\": \"\",\r\n \"ForgotPassword.StepUp.Heading\": \"Password reset method\",\r\n \"ForgotUsername.StepUp.Heading\": \"Username recovery method\",\r\n \"Forgot.SMS.Label\": \"SMS Text\",\r\n \"Forgot.SMS.Description\": \"A one-time code will be sent to your mobile phone.\",\r\n \"Forgot.SMS.Dropdown.Label\": \"Select Phone Number\",\r\n \"Forgot.Token.Label\": \"Token\",\r\n \"Forgot.Token.Description\": \"A one-time code generated through Entrust.\",\r\n \"Forgot.VoiceCall.Label\": \"Voice Call\",\r\n \"Forgot.VoiceCall.Description\": \"You will get a call that reads a one-time code to you.\",\r\n \"Forgot.VoiceCall.Dropdown.Label\": \"Select Phone Number\",\r\n \"Forgot.TOTP.Label\": \"Time-Based One Time Passcode\",\r\n \"Forgot.TOTP.Description\": \"A one-time passcode generated on your security application.\",\r\n \"Forgot.Email.Label\": \"Email\",\r\n \"Forgot.Email.Description\": \"A one-time code will be sent to your email address.\",\r\n \"Forgot.Email.Dropdown.Label\": \"Select Email\",\r\n \"ForgotPassword.VerificationCode.Heading\": \"Verification Code\",\r\n \"ForgotUsername.VerificationCode.Heading\": \"Verification Code\",\r\n \"Forgot.VerificationCode.SubHeading.Email\": \"A 6-digit code has been sent to your email.\",\r\n \"Forgot.VerificationCode.SubHeading.Token\": \"Enter the 8 digit code for your Token.\",\r\n \"Forgot.VerificationCode.SubHeading.Phone\": \"A 6-digit code has been sent to your phone number.\",\r\n \"Forgot.VerificationCode.SubHeading.TOTP\": \"Enter the 6 digit time-based one time passcode from your security application.\",\r\n \"Forgot.VerificationCode.EnterCode\": \"Enter Code\",\r\n \"Forgot.VerificationCode.HelperText.Expiration\": \"Code will expire in 5 minutes\",\r\n \"Forgot.VerificationCode.HelperText.Token\": \"Enter code shown in your Entrust token app\",\r\n \"Forgot.VerificationCode.HelperText.TOTP\": \"Enter code shown in your two - factor authentication app\",\r\n \"Forgot.VerificationCode.ResendCode\": \"Resend code\",\r\n \"Forgot.VerificationCode.CodeSent\": \"Code sent\",\r\n \"Forgot.VerificationCode.Or\": \"or\",\r\n \"Forgot.VerificationCode.ChangeMethod\": \"Change method\",\r\n \"Forgot.VerificationCode.Verify\": \"Verify\",\r\n \"Forgot.Progressbar.Heading\": \"Step {0} of {1}\",\r\n \"ForgotUsername.ChallengeStatus.UnableToLocateUser\": \"Unable to locate user, forgot username flow. Reference Code: 12345\",\r\n \"ForgotPassword.ChallengeStatus.UnableToLocateUser\": \"Unable to locate user, forgot password flow. Reference Code: 12345\",\r\n \"ForgotUsername.ChallengeStatus.MaximumAttemptsReached\": \"Username - Maximum number of lookup attempts reached.\",\r\n \"ForgotPassword.ChallengeStatus.MaximumAttemptsReached\": \"Password - Maximum number of lookup attempts reached.\",\r\n \"Registration.ChallengeStatus.MaximumAttemptsReached\": \"Registration - Maximum number of lookup attempts reached.\",\r\n \"Registration.ChooseScenario.Heading\": \"I want to\",\r\n \"Registration.ChooseScenario.Retail Registration.Text\": \"Register to my individual account\",\r\n \"Registration.ChooseScenario.Retail Registration.Description\": \"Select this if you have a personal account\",\r\n \"Registration.ChooseScenario.Business Registration.Text\": \"Register to my business account\",\r\n \"Registration.ChooseScenario.Business Registration.Description\": \"Select this if you have a business account\",\r\n \"Registration.ActionButtonText\": \"Next\",\r\n \"Registration.Disclosure.AcceptCheckbox.Label\": \"I agree\",\r\n \"Registration.ConfirmIdentity.Heading\": \"Confirm Your Identity\",\r\n \"Registration.ConfirmIdentity.Notification\": \"\",\r\n \"Registration.UserIdentifyingFieldGroup.1.Text\": \"The following information is used to verify you have an account with FI Central and that you are the owner of the account. We match your answers against our records.\",\r\n \"Registration.UserIdentifyingFieldGroup.2.Text\": \"Answer any one of the questions below\",\r\n \"Registration.Close.Confirm.Text\": \"You will need to go through the registration flow again to register your account\",\r\n \"Registration.Close.Text\": \"Cancel registration\",\r\n \"Registration.StepUp.Heading\": \"Verify Your Identity\",\r\n \"Registration.Progressbar.Heading\": \"Step {0} of {1}\",\r\n \"Registration.VerificationCode.Heading\": \"Verification Code\",\r\n \"Registration.ChallengeStatus.UnableToLocateUser\": \"We are unable to locate your account. The information you provided does not match out records. Please try again. Reference Code: 12345\",\r\n \"Registration.Disclosure.Heading\": \"Disclosure\",\r\n \"Registration.PDF.Heading\": \"PDF access confirmation\",\r\n \"Registration.PDF.Instructions\": \"Before you proceed, we need to make sure you can open PDF documents.\",\r\n \"Registration.PDF.OpenPDF\": \"Open PDF\",\r\n \"Registration.PDF.VerifyCode\": \"Copy the 5 character code into the text below.\",\r\n \"Registration.PDF.AccessCodeLabel\": \"Access Code\",\r\n \"Registration.PDF.Error\": \"We are unable to verify your PDF confirmation. Please use the Open PDF link to open the PDF and copy the provided code.\",\r\n \"Registration.Disclosure.HtmlBeforeRegistrationDisclosure\": \"\",\r\n \"Registration.Disclosure.HtmlBeforeBusinessRegistrationDisclosure\": \"\",\r\n \"Global.Disclosures.Registration.LabelFor.AgreementCheckbox\": \"I agree\",\r\n \"Registration.ButtonText.Continue\": \"Continue\",\r\n \"ChallengeStatus.Error\": \"An unexpected error has occurred. Please try again later.\",\r\n \"Registration.CreateUsername.Heading\": \"Create Username\",\r\n \"Registration.CreateUsername.SubHeading\": \"Create a unique, alphanumeric username between 6 and 10 characters in length.\",\r\n \"Registration.CreateUsername.Input.Label\": \"Username\",\r\n \"Registration.CreateUsername.Input.Unavailable\": \"Username unavailable\",\r\n \"Registration.CreateUsername.Input.Required\": \"This input field is required (English)\",\r\n \"Registration.CreateUsername.Input.Invalid\": \"Username is invalid\",\r\n \"Registration.CreateUsername.Input.InvalidLength\": \"Username must be between 6 and 30 characters in length.\",\r\n \"Registration.CreateUsername.Input.Available\": \"Username available\",\r\n \"Registration.CreateUsername.Suggestions\": \"Enter a new username or choose from the following options:\",\r\n \"Registration.CreateUsername.Suggestions.Exceeded\": \"You have exceeded your limit attempts. Choose a username from the following:\",\r\n \"Registration.ButtonText.CreateUsername\": \"Create Username\",\r\n \"Registration.ChallengeStatus.GenericError\": \"An unexpected error has occurred. Please try again later. Reference code: {0}\",\r\n \"Registration.ChallengeStatus.InsufficientContactInformation\": \"To log in to your account your contact information needs to be on file with your financial institution. Call the call-center to add your contact information.\",\r\n \"Registration.CreateUser.Heading\": \"Create Password\",\r\n \"Registration.CreateUser.Subheading\": \"Your password must be at least 8 characters long and contain at least one uppercase letter and one number.\",\r\n \"Registration.CreateUser.PasswordStrength.Weak\": \"Password strength is Weak\",\r\n \"Registration.CreateUser.PasswordStrength.Fair\": \"Password strength is Fair\",\r\n \"Registration.CreateUser.PasswordStrength.Strong\": \"Password strength is Strong\",\r\n \"Registration.CreateUser.PasswordMatches\": \"Password matches\",\r\n \"Registration.CreateUser.PasswordDoesNotMatch\": \"Password does not match\",\r\n \"Registration.CreateUser.InvalidPassword\": \"Password does not meet the requirements\",\r\n \"Registration.CreateUser.PasswordIncludesUsername\": \"Username can not be used in password\",\r\n \"Registration.CreateUser.ButtonText\": \"Create Password\",\r\n \"Registration.CreateUser.TextField.Password.Label\": \"Password\",\r\n \"Registration.CreateUser.TextField.ConfirmPassword.Label\": \"Confirm password\",\r\n \"Registration.CreateUser.PasswordDoesNotMeetRequirements\": \"The password does not meet the requirements\",\r\n \"Registration.Input.Required\": \"This input field is required\",\r\n \"Registration.UpdateBusiness.Heading\": \"Business Information\",\r\n \"Registration.UpdateBusiness.Subheading\": \"Enter your business information to register your business account for online banking.\",\r\n \"Registration.UpdateBusiness.Input.BusinessName\": \"Business Name\",\r\n \"Registration.UpdateBusiness.Input.BusinessPhone\": \"Business Phone\",\r\n \"Registration.UpdateBusiness.Input.BusinessPhoneType\": \"Type of Number\",\r\n \"Registration.UpdateBusiness.Input.BusinessAddressLine1\": \"Business Address 1\",\r\n \"Registration.UpdateBusiness.Input.BusinessAddressLine2\": \"Business Address 2\",\r\n \"Registration.UpdateBusiness.Input.BusinessCity\": \"City\",\r\n \"Registration.UpdateBusiness.Input.BusinessState\": \"State\",\r\n \"Registration.UpdateBusiness.Input.BusinessZip\": \"Zip\",\r\n \"Registration.UpdateBusiness.Input.BusinessEin\": \"EIN\",\r\n \"Registration.UpdateBusiness.PhoneTypes.Home\": \"Home\",\r\n \"Registration.UpdateBusiness.PhoneTypes.Mobile\": \"Mobile\",\r\n \"Registration.UpdateBusiness.PhoneTypes.Work\": \"Work\",\r\n \"Registration.UpdateBusiness.Errors.Phone\": \"Enter a valid phone number with an area code.\",\r\n \"Registration.UpdateBusiness.Errors.Zip\": \"Enter a valid 5 digit or 9 digit zip code.\",\r\n \"Registration.UpdateBusiness.Errors.State\": \"Enter a 2 letter state code.\",\r\n \"Registration.UpdateBusiness.Errors.Ein\": \"Enter a valid 9 digit number.\",\r\n \"UsernameAndPassword.AppStore.NavigationPrompt.Title\": \"You are now leaving the Alpha Financial website\",\r\n \"UsernameAndPassword.AppStore.NavigationPrompt.Content\": \"The website you are accessing is not operated by Alpha Financial and we are not responsible for any content or information posted on this external website. Please review their Terms, Privacy and Security policies to see how they apply to you.\",\r\n \"UsernameAndPassword.AppStore.NavigationPrompt.Continue\": \"Continue\",\r\n \"UsernameAndPassword.AppStore.NavigationPrompt.Cancel\": \"Cancel\",\r\n \"ConvertedUser.Header\": \"Secure your account\",\r\n \"ConvertedUser.Text\": \"{0} requires you to create a new password before you log in.\",\r\n \"ConvertedUser.Button.Primary\": \"Create new password\",\r\n \"ConvertedUser.Button.Secondary\": \"Return to login\",\r\n \"ChallengeStatus.MaximumAttemptsReached\": \"Login maximum attempts reached\",\r\n \"StepUp.OneTimeCode.Destination.SmsCode.Description\": \"Choose a phone number to verify.\",\r\n \"StepUp.OneTimeCode.Destination.VoiceCode.Description\": \"Choose a phone number to verify.\",\r\n \"StepUp.OneTimeCode.Destination.EmailCode.Description\": \"Choose an email to verify.\",\r\n \"UsernameAndPassword.Turnstile.Language\": \"tlh\",\r\n \"UsernameAndPassword.Error.WithReference\": \"An error has occurred. Reference code: {0}\",\r\n \"ChallengeStatus.BotDetected\": \"Bot detected: {0}\",\r\n \"Tethered.Loading.AnimationAlt\": \"Alternative site text for the tethered loading animation\",\r\n \"Tethered.Loading.Button.Back\": \"Back to login\",\r\n};\r\nexports.mockSiteTextMap = mockSiteTextMap;\r\nfunction setupSiteText() {\r\n window.Alkami.Localization.SiteText.get = (key, params) => {\r\n let result = mockSiteTextMap[key];\r\n if (params && params.length > 0 && result) {\r\n for (let i = 0; i < params.length; i++) {\r\n result = result.replace('{' + i.toString() + '}', params[i]);\r\n }\r\n }\r\n if (result === undefined) {\r\n result = `__LOCALIZE_ME__${key}`;\r\n }\r\n return result;\r\n };\r\n}\r\nexports.setupSiteText = setupSiteText;\r\n"],"sourceRoot":""}