{"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?5277","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?0876","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","ChallengeTypeValue","configuration","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","loginCredentials","decodeURIComponent","UserName","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","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","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","method","request","preSubmitChallenge","lastSentResponse","initialize","sessionInfo","AdditionalParameters","rememberUserName","persistentSessionIdentifier","Global_PersistentSessionIdentifier","isTetheredLogin","MachineInfo","read","submittedChallenge","UserAgentString","navigator","userAgent","Request","BankIdentifier","BankUri","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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AIa,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,UAAAA,E,sCCnBf,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,2IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,2IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCnBf,kJASIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,sCCpBf,2IAQIA,EAAY,YACd,UACA,IACA,KACA,EACA,KACA,WACA,MAIa,UAAAA,E,6CCnBf,I,wBCA+J,ECOhJ,IAAIvF,OAAO,CACtBnK,KAAM,4BACNgS,WAAY,CACRlD,cAAA,W,OCHJY,EAAY,YACd,GHRW,WAAa,IAAiBkf,EAATpsB,KAAgBiyB,eAAuC,OAAvDjyB,KAA0CkyB,MAAM/b,IAAIiW,GAAa,mBAC7E,IGUpB,EACA,KACA,KACA,MAIa,UAAAlf,E,sCCjBfvP,OAAOC,eAAeb,EAAS,aAAc,CAA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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 mounted() {\r\n void userTelemetry_1.telemetry.page(userTelemetry_1.workflowName.retail_registration);\r\n // if (this.$store.getters.configuration.loginCredentials?.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 },\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.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 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=15c992f8&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=15c992f8&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 \"15c992f8\",\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\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=32f29c17&\"\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 },\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":""}