{"version":3,"sources":["node_modules/@angular/animations/fesm2022/browser.mjs","node_modules/@angular/platform-browser/fesm2022/animations.mjs","node_modules/ng-otp-input/fesm2020/ng-otp-input.mjs","node_modules/ngx-spinner/fesm2022/ngx-spinner.mjs","node_modules/primeng/fesm2022/primeng-radiobutton.mjs","src/app/register/registercomplete/registercomplete.component.ts","src/app/register/registercomplete/registercomplete.component.html","src/app/how-it-works/how-it-works.component.ts","src/app/how-it-works/how-it-works.component.html","src/app/directive/alphabets-with-language.directive.ts","src/app/directive/debounce-click.directive.ts","src/app/register/register/register.component.ts","src/app/register/register/register.component.html","src/app/applicant/cc-lender-consent/cc-lender-consent-aff/cc-lender-consent-aff-arbitration/cc-lender-consent-aff-arbitration.component.ts","src/app/applicant/cc-lender-consent/cc-lender-consent-aff/cc-lender-consent-aff-arbitration/cc-lender-consent-aff-arbitration.component.html","src/app/applicant/cc-lender-consent/cc-lender-consent-aff/cc-lender-consent-aff-receive-calls/cc-lender-consent-aff-receive-calls.component.ts","src/app/applicant/cc-lender-consent/cc-lender-consent-aff/cc-lender-consent-aff-receive-calls/cc-lender-consent-aff-receive-calls.component.html","src/app/applicant/cc-lender-consent/cc-lender-consent-aff/cc-lender-consent-aff-terms-and-conditions/cc-lender-consent-aff-terms-and-conditions.component.ts","src/app/applicant/cc-lender-consent/cc-lender-consent-aff/cc-lender-consent-aff-terms-and-conditions/cc-lender-consent-aff-terms-and-conditions.component.html","src/app/applicant/cc-lender-consent/cc-lender-consent-cf/cc-lender-consent-cf.component.ts","src/app/applicant/cc-lender-consent/cc-lender-consent-cf/cc-lender-consent-cf.component.html","src/app/applicant/cc-lender-consent/cc-lender-consent-dd/cc-lender-consent-dd-terms-and-conditions/cc-lender-consent-dd-terms-and-conditions.component.ts","src/app/applicant/cc-lender-consent/cc-lender-consent-dd/cc-lender-consent-dd-terms-and-conditions/cc-lender-consent-dd-terms-and-conditions.component.html","src/app/applicant/cc-lender-consent/cc-lender-consent-gw/cc-lender-consent-gw-consent-to-text/cc-lender-consent-gw-consent-to-text.component.ts","src/app/applicant/cc-lender-consent/cc-lender-consent-gw/cc-lender-consent-gw-consent-to-text/cc-lender-consent-gw-consent-to-text.component.html","src/app/applicant/cc-lender-consent/cc-lender-consent-gw/cc-lender-consent-gw-terms-and-conditions/cc-lender-consent-gw-terms-and-conditions.component.ts","src/app/applicant/cc-lender-consent/cc-lender-consent-gw/cc-lender-consent-gw-terms-and-conditions/cc-lender-consent-gw-terms-and-conditions.component.html","src/app/applicant/cc-lender-consent/cc-lender-consent-jd/cc-lender-consent-jd-terms-and-auth/cc-lender-consent-jd-terms-and-auth.component.ts","src/app/applicant/cc-lender-consent/cc-lender-consent-jd/cc-lender-consent-jd-terms-and-auth/cc-lender-consent-jd-terms-and-auth.component.html","src/app/applicant/cc-lender-consent/cc-lender-consent-jd/cc-lender-consent-jd-terms-and-conditions/cc-lender-consent-jd-terms-and-conditions.component.ts","src/app/applicant/cc-lender-consent/cc-lender-consent-jd/cc-lender-consent-jd-terms-and-conditions/cc-lender-consent-jd-terms-and-conditions.component.html","src/app/applicant/cc-lender-consent/cc-lender-consent-ucfs/cc-lender-consent-ucfs-terms-and-conditions/cc-lender-consent-ucfs-terms-and-conditions.component.ts","src/app/applicant/cc-lender-consent/cc-lender-consent-ucfs/cc-lender-consent-ucfs-terms-and-conditions/cc-lender-consent-ucfs-terms-and-conditions.component.html","src/app/applicant/entity/application-stipulation-document.ts","src/app/applicant/models/upload-stipulation-document.ts","src/app/common/component/fileUpload-stipulation/fileUpload-stipulation.component.ts","src/app/common/component/fileUpload-stipulation/fileUpload-stipulation.component.html","src/app/shared/components/upload-stipulation-document/upload-stipulation-document.component.ts","src/app/shared/components/upload-stipulation-document/upload-stipulation-document.component.html","src/app/shared/enum/stipulation-statuses-enum.ts","src/app/common/pipes/safe.pipe.ts","src/app/applicant/approval-display/flex-shopper-vcard/flex-shopper-vcard.component.ts","src/app/applicant/approval-display/flex-shopper-vcard/flex-shopper-vcard.component.html","src/app/applicant/virtual-card/amex-virtual-card/amex-virtual-card.component.ts","src/app/applicant/virtual-card/amex-virtual-card/amex-virtual-card.component.html","src/app/applicant/return-URL-redirect/return-url-redirect.component.ts","src/app/applicant/return-URL-redirect/return-url-redirect.component.html","src/app/shared/enum/ApplicationModal.ts","src/app/applicant/service/ecommerce/ecommerce-integration-service.ts","src/app/applicant/models/ecommerce/ecommerce-email-config-lite.ts","src/app/applicant/models/ecommerce/ecommerce-email-notification-type.ts","src/app/applicant/existing-applications/interval-manager.ts","src/app/applicant/existing-applications/existing-applications.component.ts","src/app/applicant/existing-applications/existing-applications.component.html","src/app/call-center/models/applicant_type_ahead.ts","src/app/call-center/call-center-dashboard/call-center-dashboard.component.ts","src/app/call-center/call-center-dashboard/call-center-dashboard.component.html","src/app/disclosures-and-consents/account-creation-consent/account-creation-consent.component.ts","src/app/disclosures-and-consents/account-creation-consent/account-creation-consent.component.html","src/app/disclosures-and-consents/privacy-policy/privacy-policy.component.ts","src/app/disclosures-and-consents/privacy-policy/privacy-policy.component.html","src/app/disclosures-and-consents/terms-of-service/terms-of-service.component.ts","src/app/disclosures-and-consents/terms-of-service/terms-of-service.component.html","src/app/disclosures-and-consents/credit-score-consent/credit-score-consent.component.ts","src/app/disclosures-and-consents/credit-score-consent/credit-score-consent.component.html","src/app/disclosures-and-consents/route-application-consent/route-application-consent.component.ts","src/app/disclosures-and-consents/route-application-consent/route-application-consent.component.html","src/app/disclosures-and-consents/send-offers-consent/send-offers-consent.component.ts","src/app/disclosures-and-consents/send-offers-consent/send-offers-consent.component.html","src/app/disclosures-and-consents/disclosures-and-consents/disclosures-and-consents.component.ts","src/app/disclosures-and-consents/disclosures-and-consents/disclosures-and-consents.component.html","src/app/directive/password.toggle.directive.ts","src/app/login/login.component.ts","src/app/login/login.component.html","src/app/login/otp/otp.component.ts","src/app/login/otp/otp.component.html","src/app/shared/components/multi-language/multi-language.component.ts","src/app/shared/components/multi-language/multi-language.component.html","src/app/login/email-login/email-login.component.ts","src/app/login/email-login/email-login.component.html","src/app/home-component/home.component.ts","src/app/home-component/home.component.html","src/app/login/recoverpwd/recoverpwd.component.ts","src/app/login/recoverpwd/recoverpwd.component.html","src/app/directive/passwordStrengthBar.ts","src/app/login/resetpwd/resetpwd.component.ts","src/app/login/resetpwd/resetpwd.component.html","src/app/applicant/models/api-response.ts","src/app/redirect/redirect.component.ts","src/app/redirect/redirect.component.html","src/app/service/auth.guard.ts","src/app/service/auth.guard.maintenance.ts","src/app/shared/resolvers/merchant-routing-resolver.resolver.ts","src/app/app-routing.module.ts","src/app/applicant/entity/enums/progress-bar-steps.ts","src/app/applicant/progress-bar/progress-bar.component.ts","src/app/applicant/progress-bar/progress-bar.component.html","src/app/layout/header/header.component.ts","src/app/layout/header/header.component.html","src/app/layout/footer/footer-component.ts","src/app/layout/footer/footer-component.html","src/app/layout/menu-wizard/menu-wizard.component.ts","src/app/layout/menu-wizard/menu-wizard.component.html","src/app/app.component.ts","src/app/app.component.html","src/app/applicant/approval-display/cf-approval-display/cf-approval-display.component.ts","src/app/applicant/approval-display/cf-approval-display/cf-approval-display.component.html","src/app/applicant/approval-display/flex-shopper-approval-display/flex-shopper-approval-display.component.ts","src/app/applicant/approval-display/flex-shopper-approval-display/flex-shopper-approval-display.component.html","src/app/applicant/approval-display/uown-approval-display/uown-approval-display.component.ts","src/app/applicant/approval-display/uown-approval-display/uown-approval-display.component.html","src/app/directive/alphabetswithDashDirective.ts","src/app/directive/password.match.directive.ts","src/app/home-component/home/home-routing.module.ts","src/app/home-component/home/home.module.ts","src/app/simplified.UI/services/global-success-handler.service.ts","src/app/service/error-handler.ts","src/app/service/facebook-domain-verification.service.ts","src/app/service/facebook-pixels.service.ts","src/app/service/google-analytics.service.ts","src/app/service/hotjar-analytics.service.ts","src/app/service/jwt-handler.ts","src/app/applicant/approval-display/lst-invoice-required-display/lst-invoice-required-display.component.ts","src/app/applicant/approval-display/lst-invoice-required-display/lst-invoice-required-display.component.html","src/app/call-center/call-center-routing.module.ts","src/app/call-center/call-center.module.ts","node_modules/primeng/fesm2022/primeng-divider.mjs","src/app/disclosures-and-consents/aff-privacy-policy-consent/aff-privacy-policy-consent.component.ts","src/app/disclosures-and-consents/aff-privacy-policy-consent/aff-privacy-policy-consent.component.html","src/app/applicant/address/address.component.ts","src/app/applicant/address/address.component.html","src/app/applicant/models/applicant-income-request.ts","src/app/applicant/employed-income/employed-income.component.ts","src/app/applicant/employed-income/employed-income.component.html","src/app/shared/enum/employment-type.ts","src/app/applicant/home-applicant/open-application-alert/open-application-alert.component.ts","src/app/applicant/home-applicant/open-application-alert/open-application-alert.component.html","src/app/applicant/home-applicant/home-applicant.component.ts","src/app/applicant/home-applicant/home-applicant.component.html","src/app/applicant/uploaded-docs/uploaded-docs.component.ts","src/app/applicant/uploaded-docs/uploaded-docs.component.html","src/app/applicant/identity-information/identity-information.component.ts","src/app/applicant/identity-information/identity-information.component.html","src/app/applicant/socure-document-alert/socure-document-alert.component.ts","src/app/applicant/socure-document-alert/socure-document-alert.component.html","src/app/applicant/entity/enums/signalr-event-type.ts","src/app/applicant/models/socure-verification-details-request.ts","src/app/disclosures-and-consents/cf-consent/cf-consent.component.ts","src/app/disclosures-and-consents/cf-consent/cf-consent.component.html","src/app/applicant/models/lender.ts","src/app/applicant/models/lender-request.ts","src/app/applicant/models/mlp-address.ts","src/app/applicant/models/update-request.ts","src/app/shared/enum/aff-terms-type.ts","src/app/disclosures-and-consents/lender-terms/lender-terms.component.ts","src/app/disclosures-and-consents/lender-terms/lender-terms.component.html","src/app/entity/jd-terms-type.ts","src/app/applicant/models/applicant-consent.ts","src/app/applicant/entity/application-lender-consent-details.ts","src/app/shared/enum/gw-terms-type.ts","src/app/applicant/service/call-center.service.ts","src/app/applicant/models/consent-request.ts","src/app/applicant/models/lenderContactTranslation.ts","src/app/applicant/lender-selection/lender-selection.component.ts","src/app/applicant/lender-selection/lender-selection.component.html","src/app/applicant/loan-amount/loan-amount.component.ts","src/app/applicant/loan-amount/loan-amount.component.html","src/app/applicant/plaid-link/plaid-link.component.ts","src/app/applicant/plaid-link/plaid-link.component.html","src/app/applicant/pre-application/pre-application.component.ts","src/app/applicant/pre-application/pre-application.component.html","src/app/applicant/models/complete-applicant-request.ts","src/app/applicant/process-complete/process-complete.component.ts","src/app/applicant/process-complete/process-complete.component.html","src/app/applicant/applicant-routing.module.ts","src/app/applicant/applicant.module.ts","src/app/applicant/approval-display/lst-approval-display/lst-approval-display.component.ts","src/app/applicant/approval-display/lst-approval-display/lst-approval-display.component.html","src/app/directive/alphanumeric-with-language.directive.ts","src/app/service/theme.service.ts","src/app/app.module.ts","src/main.ts"],"sourcesContent":["/**\n * @license Angular v18.0.2\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵAnimationGroupPlayer, NoopAnimationPlayer, AUTO_STYLE, ɵPRE_STYLE, sequence, AnimationMetadataType, style } from '@angular/animations';\nimport * as i0 from '@angular/core';\nimport { ɵRuntimeError, Injectable } from '@angular/core';\nconst LINE_START = '\\n - ';\nfunction invalidTimingValue(exp) {\n return new ɵRuntimeError(3000 /* RuntimeErrorCode.INVALID_TIMING_VALUE */, ngDevMode && `The provided timing value \"${exp}\" is invalid.`);\n}\nfunction negativeStepValue() {\n return new ɵRuntimeError(3100 /* RuntimeErrorCode.NEGATIVE_STEP_VALUE */, ngDevMode && 'Duration values below 0 are not allowed for this animation step.');\n}\nfunction negativeDelayValue() {\n return new ɵRuntimeError(3101 /* RuntimeErrorCode.NEGATIVE_DELAY_VALUE */, ngDevMode && 'Delay values below 0 are not allowed for this animation step.');\n}\nfunction invalidStyleParams(varName) {\n return new ɵRuntimeError(3001 /* RuntimeErrorCode.INVALID_STYLE_PARAMS */, ngDevMode && `Unable to resolve the local animation param ${varName} in the given list of values`);\n}\nfunction invalidParamValue(varName) {\n return new ɵRuntimeError(3003 /* RuntimeErrorCode.INVALID_PARAM_VALUE */, ngDevMode && `Please provide a value for the animation param ${varName}`);\n}\nfunction invalidNodeType(nodeType) {\n return new ɵRuntimeError(3004 /* RuntimeErrorCode.INVALID_NODE_TYPE */, ngDevMode && `Unable to resolve animation metadata node #${nodeType}`);\n}\nfunction invalidCssUnitValue(userProvidedProperty, value) {\n return new ɵRuntimeError(3005 /* RuntimeErrorCode.INVALID_CSS_UNIT_VALUE */, ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);\n}\nfunction invalidTrigger() {\n return new ɵRuntimeError(3006 /* RuntimeErrorCode.INVALID_TRIGGER */, ngDevMode && \"animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))\");\n}\nfunction invalidDefinition() {\n return new ɵRuntimeError(3007 /* RuntimeErrorCode.INVALID_DEFINITION */, ngDevMode && 'only state() and transition() definitions can sit inside of a trigger()');\n}\nfunction invalidState(metadataName, missingSubs) {\n return new ɵRuntimeError(3008 /* RuntimeErrorCode.INVALID_STATE */, ngDevMode && `state(\"${metadataName}\", ...) must define default values for all the following style substitutions: ${missingSubs.join(', ')}`);\n}\nfunction invalidStyleValue(value) {\n return new ɵRuntimeError(3002 /* RuntimeErrorCode.INVALID_STYLE_VALUE */, ngDevMode && `The provided style string value ${value} is not allowed.`);\n}\nfunction invalidProperty(prop) {\n return new ɵRuntimeError(3009 /* RuntimeErrorCode.INVALID_PROPERTY */, ngDevMode && `The provided animation property \"${prop}\" is not a supported CSS property for animations`);\n}\nfunction invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {\n return new ɵRuntimeError(3010 /* RuntimeErrorCode.INVALID_PARALLEL_ANIMATION */, ngDevMode && `The CSS property \"${prop}\" that exists between the times of \"${firstStart}ms\" and \"${firstEnd}ms\" is also being animated in a parallel animation between the times of \"${secondStart}ms\" and \"${secondEnd}ms\"`);\n}\nfunction invalidKeyframes() {\n return new ɵRuntimeError(3011 /* RuntimeErrorCode.INVALID_KEYFRAMES */, ngDevMode && `keyframes() must be placed inside of a call to animate()`);\n}\nfunction invalidOffset() {\n return new ɵRuntimeError(3012 /* RuntimeErrorCode.INVALID_OFFSET */, ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`);\n}\nfunction keyframeOffsetsOutOfOrder() {\n return new ɵRuntimeError(3200 /* RuntimeErrorCode.KEYFRAME_OFFSETS_OUT_OF_ORDER */, ngDevMode && `Please ensure that all keyframe offsets are in order`);\n}\nfunction keyframesMissingOffsets() {\n return new ɵRuntimeError(3202 /* RuntimeErrorCode.KEYFRAMES_MISSING_OFFSETS */, ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`);\n}\nfunction invalidStagger() {\n return new ɵRuntimeError(3013 /* RuntimeErrorCode.INVALID_STAGGER */, ngDevMode && `stagger() can only be used inside of query()`);\n}\nfunction invalidQuery(selector) {\n return new ɵRuntimeError(3014 /* RuntimeErrorCode.INVALID_QUERY */, ngDevMode && `\\`query(\"${selector}\")\\` returned zero elements. (Use \\`query(\"${selector}\", { optional: true })\\` if you wish to allow this.)`);\n}\nfunction invalidExpression(expr) {\n return new ɵRuntimeError(3015 /* RuntimeErrorCode.INVALID_EXPRESSION */, ngDevMode && `The provided transition expression \"${expr}\" is not supported`);\n}\nfunction invalidTransitionAlias(alias) {\n return new ɵRuntimeError(3016 /* RuntimeErrorCode.INVALID_TRANSITION_ALIAS */, ngDevMode && `The transition alias value \"${alias}\" is not supported`);\n}\nfunction validationFailed(errors) {\n return new ɵRuntimeError(3500 /* RuntimeErrorCode.VALIDATION_FAILED */, ngDevMode && `animation validation failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction buildingFailed(errors) {\n return new ɵRuntimeError(3501 /* RuntimeErrorCode.BUILDING_FAILED */, ngDevMode && `animation building failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerBuildFailed(name, errors) {\n return new ɵRuntimeError(3404 /* RuntimeErrorCode.TRIGGER_BUILD_FAILED */, ngDevMode && `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.map(err => err.message).join('\\n - ')}`);\n}\nfunction animationFailed(errors) {\n return new ɵRuntimeError(3502 /* RuntimeErrorCode.ANIMATION_FAILED */, ngDevMode && `Unable to animate due to the following errors:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction registerFailed(errors) {\n return new ɵRuntimeError(3503 /* RuntimeErrorCode.REGISTRATION_FAILED */, ngDevMode && `Unable to build the animation due to the following errors: ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingOrDestroyedAnimation() {\n return new ɵRuntimeError(3300 /* RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION */, ngDevMode && \"The requested animation doesn't exist or has already been destroyed\");\n}\nfunction createAnimationFailed(errors) {\n return new ɵRuntimeError(3504 /* RuntimeErrorCode.CREATE_ANIMATION_FAILED */, ngDevMode && `Unable to create the animation due to the following errors:${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingPlayer(id) {\n return new ɵRuntimeError(3301 /* RuntimeErrorCode.MISSING_PLAYER */, ngDevMode && `Unable to find the timeline player referenced by ${id}`);\n}\nfunction missingTrigger(phase, name) {\n return new ɵRuntimeError(3302 /* RuntimeErrorCode.MISSING_TRIGGER */, ngDevMode && `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n}\nfunction missingEvent(name) {\n return new ɵRuntimeError(3303 /* RuntimeErrorCode.MISSING_EVENT */, ngDevMode && `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`);\n}\nfunction unsupportedTriggerEvent(phase, name) {\n return new ɵRuntimeError(3400 /* RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT */, ngDevMode && `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`);\n}\nfunction unregisteredTrigger(name) {\n return new ɵRuntimeError(3401 /* RuntimeErrorCode.UNREGISTERED_TRIGGER */, ngDevMode && `The provided animation trigger \"${name}\" has not been registered!`);\n}\nfunction triggerTransitionsFailed(errors) {\n return new ɵRuntimeError(3402 /* RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED */, ngDevMode && `Unable to process animations due to the following failed trigger transitions\\n ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerParsingFailed(name, errors) {\n return new ɵRuntimeError(3403 /* RuntimeErrorCode.TRIGGER_PARSING_FAILED */, ngDevMode && `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction transitionFailed(name, errors) {\n return new ɵRuntimeError(3505 /* RuntimeErrorCode.TRANSITION_FAILED */, ngDevMode && `@${name} has failed due to:\\n ${errors.map(err => err.message).join('\\n- ')}`);\n}\n\n/**\n * Set of all animatable CSS properties\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties\n */\nconst ANIMATABLE_PROP_SET = new Set(['-moz-outline-radius', '-moz-outline-radius-bottomleft', '-moz-outline-radius-bottomright', '-moz-outline-radius-topleft', '-moz-outline-radius-topright', '-ms-grid-columns', '-ms-grid-rows', '-webkit-line-clamp', '-webkit-text-fill-color', '-webkit-text-stroke', '-webkit-text-stroke-color', 'accent-color', 'all', 'backdrop-filter', 'background', 'background-color', 'background-position', 'background-size', 'block-size', 'border', 'border-block-end', 'border-block-end-color', 'border-block-end-width', 'border-block-start', 'border-block-start-color', 'border-block-start-width', 'border-bottom', 'border-bottom-color', 'border-bottom-left-radius', 'border-bottom-right-radius', 'border-bottom-width', 'border-color', 'border-end-end-radius', 'border-end-start-radius', 'border-image-outset', 'border-image-slice', 'border-image-width', 'border-inline-end', 'border-inline-end-color', 'border-inline-end-width', 'border-inline-start', 'border-inline-start-color', 'border-inline-start-width', 'border-left', 'border-left-color', 'border-left-width', 'border-radius', 'border-right', 'border-right-color', 'border-right-width', 'border-start-end-radius', 'border-start-start-radius', 'border-top', 'border-top-color', 'border-top-left-radius', 'border-top-right-radius', 'border-top-width', 'border-width', 'bottom', 'box-shadow', 'caret-color', 'clip', 'clip-path', 'color', 'column-count', 'column-gap', 'column-rule', 'column-rule-color', 'column-rule-width', 'column-width', 'columns', 'filter', 'flex', 'flex-basis', 'flex-grow', 'flex-shrink', 'font', 'font-size', 'font-size-adjust', 'font-stretch', 'font-variation-settings', 'font-weight', 'gap', 'grid-column-gap', 'grid-gap', 'grid-row-gap', 'grid-template-columns', 'grid-template-rows', 'height', 'inline-size', 'input-security', 'inset', 'inset-block', 'inset-block-end', 'inset-block-start', 'inset-inline', 'inset-inline-end', 'inset-inline-start', 'left', 'letter-spacing', 'line-clamp', 'line-height', 'margin', 'margin-block-end', 'margin-block-start', 'margin-bottom', 'margin-inline-end', 'margin-inline-start', 'margin-left', 'margin-right', 'margin-top', 'mask', 'mask-border', 'mask-position', 'mask-size', 'max-block-size', 'max-height', 'max-inline-size', 'max-lines', 'max-width', 'min-block-size', 'min-height', 'min-inline-size', 'min-width', 'object-position', 'offset', 'offset-anchor', 'offset-distance', 'offset-path', 'offset-position', 'offset-rotate', 'opacity', 'order', 'outline', 'outline-color', 'outline-offset', 'outline-width', 'padding', 'padding-block-end', 'padding-block-start', 'padding-bottom', 'padding-inline-end', 'padding-inline-start', 'padding-left', 'padding-right', 'padding-top', 'perspective', 'perspective-origin', 'right', 'rotate', 'row-gap', 'scale', 'scroll-margin', 'scroll-margin-block', 'scroll-margin-block-end', 'scroll-margin-block-start', 'scroll-margin-bottom', 'scroll-margin-inline', 'scroll-margin-inline-end', 'scroll-margin-inline-start', 'scroll-margin-left', 'scroll-margin-right', 'scroll-margin-top', 'scroll-padding', 'scroll-padding-block', 'scroll-padding-block-end', 'scroll-padding-block-start', 'scroll-padding-bottom', 'scroll-padding-inline', 'scroll-padding-inline-end', 'scroll-padding-inline-start', 'scroll-padding-left', 'scroll-padding-right', 'scroll-padding-top', 'scroll-snap-coordinate', 'scroll-snap-destination', 'scrollbar-color', 'shape-image-threshold', 'shape-margin', 'shape-outside', 'tab-size', 'text-decoration', 'text-decoration-color', 'text-decoration-thickness', 'text-emphasis', 'text-emphasis-color', 'text-indent', 'text-shadow', 'text-underline-offset', 'top', 'transform', 'transform-origin', 'translate', 'vertical-align', 'visibility', 'width', 'word-spacing', 'z-index', 'zoom']);\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new ɵAnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes$1(normalizer, keyframes, preStyles = new Map(), postStyles = new Map()) {\n const errors = [];\n const normalizedKeyframes = [];\n let previousOffset = -1;\n let previousKeyframe = null;\n keyframes.forEach(kf => {\n const offset = kf.get('offset');\n const isSameOffset = offset == previousOffset;\n const normalizedKeyframe = isSameOffset && previousKeyframe || new Map();\n kf.forEach((val, prop) => {\n let normalizedProp = prop;\n let normalizedValue = val;\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case ɵPRE_STYLE:\n normalizedValue = preStyles.get(prop);\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles.get(prop);\n break;\n default:\n normalizedValue = normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe.set(normalizedProp, normalizedValue);\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n throw animationFailed(errors);\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n break;\n case 'done':\n player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n break;\n case 'destroy':\n player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n const totalTime = player.totalTime;\n const disabled = player.disabled ? true : false;\n const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n const data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0, disabled) {\n return {\n element,\n triggerName,\n fromState,\n toState,\n phaseName,\n totalTime,\n disabled: !!disabled\n };\n}\nfunction getOrSetDefaultValue(map, key, defaultValue) {\n let value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n const separatorPos = command.indexOf(':');\n const id = command.substring(1, separatorPos);\n const action = command.slice(separatorPos + 1);\n return [id, action];\n}\nconst documentElement = /* @__PURE__ */(() => typeof document === 'undefined' ? null : document.documentElement)();\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host || null; // consider host to support shadow DOM\n if (parent === documentElement) {\n return null;\n }\n return parent;\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nlet _CACHED_BODY = null;\nlet _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? 'WebkitAppearance' in _CACHED_BODY.style : false;\n }\n let result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction validateWebAnimatableStyleProperty(prop) {\n return ANIMATABLE_PROP_SET.has(prop);\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nfunction containsElement(elm1, elm2) {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n}\nfunction invokeQuery(element, selector, multi) {\n if (multi) {\n return Array.from(element.querySelectorAll(selector));\n }\n const elem = element.querySelector(selector);\n return elem ? [elem] : [];\n}\nfunction hypenatePropsKeys(original) {\n const newMap = new Map();\n original.forEach((val, prop) => {\n const newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n newMap.set(newProp, val);\n });\n return newMap;\n}\n\n/**\n * @publicApi\n *\n * `AnimationDriver` implentation for Noop animations\n */\nclass NoopAnimationDriver {\n /**\n * @returns Whether `prop` is a valid CSS property\n */\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n /**\n *\n * @returns Whether elm1 contains elm2.\n */\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n /**\n * @returns Rhe parent of the given element or `null` if the element is the `document`\n */\n getParentElement(element) {\n return getParentElement(element);\n }\n /**\n * @returns The result of the query selector on the element. The array will contain up to 1 item\n * if `multi` is `false`.\n */\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n /**\n * @returns The `defaultValue` or empty string\n */\n computeStyle(element, prop, defaultValue) {\n return defaultValue || '';\n }\n /**\n * @returns An `NoopAnimationPlayer`\n */\n animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {\n return new NoopAnimationPlayer(duration, delay);\n }\n static {\n this.ɵfac = function NoopAnimationDriver_Factory(t) {\n return new (t || NoopAnimationDriver)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NoopAnimationDriver,\n factory: NoopAnimationDriver.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NoopAnimationDriver, [{\n type: Injectable\n }], null, null);\n})();\n/**\n * @publicApi\n */\nclass AnimationDriver {\n /**\n * @deprecated Use the NoopAnimationDriver class.\n */\n static {\n this.NOOP = new NoopAnimationDriver();\n }\n}\nclass AnimationStyleNormalizer {}\nclass NoopAnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return propertyName;\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n return value;\n }\n}\nconst ONE_SECOND = 1000;\nconst SUBSTITUTION_EXPR_START = '{{';\nconst SUBSTITUTION_EXPR_END = '}}';\nconst ENTER_CLASSNAME = 'ng-enter';\nconst LEAVE_CLASSNAME = 'ng-leave';\nconst NG_TRIGGER_CLASSNAME = 'ng-trigger';\nconst NG_TRIGGER_SELECTOR = '.ng-trigger';\nconst NG_ANIMATING_CLASSNAME = 'ng-animating';\nconst NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number') return value;\n const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2) return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default:\n // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ? timings : parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n let duration;\n let delay = 0;\n let easing = '';\n if (typeof exp === 'string') {\n const matches = exp.match(regex);\n if (matches === null) {\n errors.push(invalidTimingValue(exp));\n return {\n duration: 0,\n delay: 0,\n easing: ''\n };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n const delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n const easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n } else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n let containsErrors = false;\n let startIndex = errors.length;\n if (duration < 0) {\n errors.push(negativeStepValue());\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(negativeDelayValue());\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, invalidTimingValue(exp));\n }\n }\n return {\n duration,\n delay,\n easing\n };\n}\nfunction normalizeKeyframes(keyframes) {\n if (!keyframes.length) {\n return [];\n }\n if (keyframes[0] instanceof Map) {\n return keyframes;\n }\n return keyframes.map(kf => new Map(Object.entries(kf)));\n}\nfunction normalizeStyles(styles) {\n return Array.isArray(styles) ? new Map(...styles) : new Map(styles);\n}\nfunction setStyles(element, styles, formerStyles) {\n styles.forEach((val, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.has(prop)) {\n formerStyles.set(prop, element.style[camelProp]);\n }\n element.style[camelProp] = val;\n });\n}\nfunction eraseStyles(element, styles) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1) return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n const params = options.params || {};\n const matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach(varName => {\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidStyleParams(varName));\n }\n });\n }\n}\nconst PARAM_REGEX = new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nfunction extractStyleParams(value) {\n let params = [];\n if (typeof value === 'string') {\n let match;\n while (match = PARAM_REGEX.exec(value)) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n const original = `${value}`;\n const str = original.replace(PARAM_REGEX, (_, varName) => {\n let localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (localVal == null) {\n errors.push(invalidParamValue(varName));\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n if (previousStyles.size && keyframes.length) {\n let startingKeyframe = keyframes[0];\n let missingStyleProps = [];\n previousStyles.forEach((val, prop) => {\n if (!startingKeyframe.has(prop)) {\n missingStyleProps.push(prop);\n }\n startingKeyframe.set(prop, val);\n });\n if (missingStyleProps.length) {\n for (let i = 1; i < keyframes.length; i++) {\n let kf = keyframes[i];\n missingStyleProps.forEach(prop => kf.set(prop, computeStyle(element, prop)));\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case AnimationMetadataType.Trigger:\n return visitor.visitTrigger(node, context);\n case AnimationMetadataType.State:\n return visitor.visitState(node, context);\n case AnimationMetadataType.Transition:\n return visitor.visitTransition(node, context);\n case AnimationMetadataType.Sequence:\n return visitor.visitSequence(node, context);\n case AnimationMetadataType.Group:\n return visitor.visitGroup(node, context);\n case AnimationMetadataType.Animate:\n return visitor.visitAnimate(node, context);\n case AnimationMetadataType.Keyframes:\n return visitor.visitKeyframes(node, context);\n case AnimationMetadataType.Style:\n return visitor.visitStyle(node, context);\n case AnimationMetadataType.Reference:\n return visitor.visitReference(node, context);\n case AnimationMetadataType.AnimateChild:\n return visitor.visitAnimateChild(node, context);\n case AnimationMetadataType.AnimateRef:\n return visitor.visitAnimateRef(node, context);\n case AnimationMetadataType.Query:\n return visitor.visitQuery(node, context);\n case AnimationMetadataType.Stagger:\n return visitor.visitStagger(node, context);\n default:\n throw invalidNodeType(node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\n}\nconst DIMENSIONAL_PROP_SET = new Set(['width', 'height', 'minWidth', 'minHeight', 'maxWidth', 'maxHeight', 'left', 'top', 'bottom', 'right', 'fontSize', 'outlineWidth', 'outlineOffset', 'paddingTop', 'paddingLeft', 'paddingBottom', 'paddingRight', 'marginTop', 'marginLeft', 'marginBottom', 'marginRight', 'borderRadius', 'borderWidth', 'borderTopWidth', 'borderLeftWidth', 'borderRightWidth', 'borderBottomWidth', 'textIndent', 'perspective']);\nclass WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n let unit = '';\n const strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_SET.has(normalizedProperty) && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n } else {\n const valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(invalidCssUnitValue(userProvidedProperty, value));\n }\n }\n }\n return strVal + unit;\n }\n}\nfunction createListOfWarnings(warnings) {\n const LINE_START = '\\n - ';\n return `${LINE_START}${warnings.filter(Boolean).map(warning => warning).join(LINE_START)}`;\n}\nfunction warnValidation(warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) && console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) && console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) && console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) && console.warn(`Animation parsing for the ${name} trigger presents the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction pushUnrecognizedPropertiesWarning(warnings, props) {\n if (props.length) {\n warnings.push(`The following provided properties are not recognized: ${props.join(', ')}`);\n }\n}\nconst ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n const expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue.split(/\\s*,\\s*/).forEach(str => parseInnerTransitionStr(str, expressions, errors));\n } else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n const result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n const match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(invalidExpression(eventStr));\n return expressions;\n }\n const fromState = match[1];\n const separator = match[2];\n const toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n return;\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);\n case ':decrement':\n return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);\n default:\n errors.push(invalidTransitionAlias(alias));\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nconst TRUE_BOOLEAN_VALUES = new Set(['true', '1']);\nconst FALSE_BOOLEAN_VALUES = new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return (fromState, toState) => {\n let lhsMatch = lhs == ANY_STATE || lhs == fromState;\n let rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\n };\n}\nconst SELF_TOKEN = ':self';\nconst SELF_TOKEN_REGEX = new RegExp(`s*${SELF_TOKEN}s*,?`, 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors, warnings) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);\n}\nconst ROOT_SELECTOR = '';\nclass AnimationAstBuilderVisitor {\n constructor(_driver) {\n this._driver = _driver;\n }\n build(metadata, errors, warnings) {\n const context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n const ast = visitDslNode(this, normalizeAnimationEntry(metadata), context);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (context.unsupportedCSSPropertiesFound.size) {\n pushUnrecognizedPropertiesWarning(warnings, [...context.unsupportedCSSPropertiesFound.keys()]);\n }\n }\n return ast;\n }\n _resetContextStyleTimingState(context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = new Map();\n context.collectedStyles.set(ROOT_SELECTOR, new Map());\n context.currentTime = 0;\n }\n visitTrigger(metadata, context) {\n let queryCount = context.queryCount = 0;\n let depCount = context.depCount = 0;\n const states = [];\n const transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push(invalidTrigger());\n }\n metadata.definitions.forEach(def => {\n this._resetContextStyleTimingState(context);\n if (def.type == AnimationMetadataType.State) {\n const stateDef = def;\n const name = stateDef.name;\n name.toString().split(/\\s*,\\s*/).forEach(n => {\n stateDef.name = n;\n states.push(this.visitState(stateDef, context));\n });\n stateDef.name = name;\n } else if (def.type == AnimationMetadataType.Transition) {\n const transition = this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n } else {\n context.errors.push(invalidDefinition());\n }\n });\n return {\n type: AnimationMetadataType.Trigger,\n name: metadata.name,\n states,\n transitions,\n queryCount,\n depCount,\n options: null\n };\n }\n visitState(metadata, context) {\n const styleAst = this.visitStyle(metadata.styles, context);\n const astParams = metadata.options && metadata.options.params || null;\n if (styleAst.containsDynamicStyles) {\n const missingSubs = new Set();\n const params = astParams || {};\n styleAst.styles.forEach(style => {\n if (style instanceof Map) {\n style.forEach(value => {\n extractStyleParams(value).forEach(sub => {\n if (!params.hasOwnProperty(sub)) {\n missingSubs.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs.size) {\n context.errors.push(invalidState(metadata.name, [...missingSubs.values()]));\n }\n }\n return {\n type: AnimationMetadataType.State,\n name: metadata.name,\n style: styleAst,\n options: astParams ? {\n params: astParams\n } : null\n };\n }\n visitTransition(metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n const matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: AnimationMetadataType.Transition,\n matchers,\n animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitSequence(metadata, context) {\n return {\n type: AnimationMetadataType.Sequence,\n steps: metadata.steps.map(s => visitDslNode(this, s, context)),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitGroup(metadata, context) {\n const currentTime = context.currentTime;\n let furthestTime = 0;\n const steps = metadata.steps.map(step => {\n context.currentTime = currentTime;\n const innerAst = visitDslNode(this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: AnimationMetadataType.Group,\n steps,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimate(metadata, context) {\n const timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n let styleAst;\n let styleMetadata = metadata.styles ? metadata.styles : style({});\n if (styleMetadata.type == AnimationMetadataType.Keyframes) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n } else {\n let styleMetadata = metadata.styles;\n let isEmpty = false;\n if (!styleMetadata) {\n isEmpty = true;\n const newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n const _styleAst = this.visitStyle(styleMetadata, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: AnimationMetadataType.Animate,\n timings: timingAst,\n style: styleAst,\n options: null\n };\n }\n visitStyle(metadata, context) {\n const ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n }\n _makeStyleAst(metadata, context) {\n const styles = [];\n const metadataStyles = Array.isArray(metadata.styles) ? metadata.styles : [metadata.styles];\n for (let styleTuple of metadataStyles) {\n if (typeof styleTuple === 'string') {\n if (styleTuple === AUTO_STYLE) {\n styles.push(styleTuple);\n } else {\n context.errors.push(invalidStyleValue(styleTuple));\n }\n } else {\n styles.push(new Map(Object.entries(styleTuple)));\n }\n }\n let containsDynamicStyles = false;\n let collectedEasing = null;\n styles.forEach(styleData => {\n if (styleData instanceof Map) {\n if (styleData.has('easing')) {\n collectedEasing = styleData.get('easing');\n styleData.delete('easing');\n }\n if (!containsDynamicStyles) {\n for (let value of styleData.values()) {\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: AnimationMetadataType.Style,\n styles,\n easing: collectedEasing,\n offset: metadata.offset,\n containsDynamicStyles,\n options: null\n };\n }\n _validateStyleAst(ast, context) {\n const timings = context.currentAnimateTimings;\n let endTime = context.currentTime;\n let startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(tuple => {\n if (typeof tuple === 'string') return;\n tuple.forEach((value, prop) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._driver.validateStyleProperty(prop)) {\n tuple.delete(prop);\n context.unsupportedCSSPropertiesFound.add(prop);\n return;\n }\n }\n // This is guaranteed to have a defined Map at this querySelector location making it\n // safe to add the assertion here. It is set as a default empty map in prior methods.\n const collectedStyles = context.collectedStyles.get(context.currentQuerySelector);\n const collectedEntry = collectedStyles.get(prop);\n let updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime && endTime <= collectedEntry.endTime) {\n context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles.set(prop, {\n startTime,\n endTime\n });\n }\n if (context.options) {\n validateStyleParams(value, context.options, context.errors);\n }\n });\n });\n }\n visitKeyframes(metadata, context) {\n const ast = {\n type: AnimationMetadataType.Keyframes,\n styles: [],\n options: null\n };\n if (!context.currentAnimateTimings) {\n context.errors.push(invalidKeyframes());\n return ast;\n }\n const MAX_KEYFRAME_OFFSET = 1;\n let totalKeyframesWithOffsets = 0;\n const offsets = [];\n let offsetsOutOfOrder = false;\n let keyframesOutOfRange = false;\n let previousOffset = 0;\n const keyframes = metadata.steps.map(styles => {\n const style = this._makeStyleAst(styles, context);\n let offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n let offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(invalidOffset());\n }\n if (offsetsOutOfOrder) {\n context.errors.push(keyframeOffsetsOutOfOrder());\n }\n const length = metadata.steps.length;\n let generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(keyframesMissingOffsets());\n } else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n const limit = length - 1;\n const currentTime = context.currentTime;\n const currentAnimateTimings = context.currentAnimateTimings;\n const animateDuration = currentAnimateTimings.duration;\n keyframes.forEach((kf, i) => {\n const offset = generatedOffset > 0 ? i == limit ? 1 : generatedOffset * i : offsets[i];\n const durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n }\n visitReference(metadata, context) {\n return {\n type: AnimationMetadataType.Reference,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateChild(metadata, context) {\n context.depCount++;\n return {\n type: AnimationMetadataType.AnimateChild,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateRef(metadata, context) {\n return {\n type: AnimationMetadataType.AnimateRef,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitQuery(metadata, context) {\n const parentSelector = context.currentQuerySelector;\n const options = metadata.options || {};\n context.queryCount++;\n context.currentQuery = metadata;\n const [selector, includeSelf] = normalizeSelector(metadata.selector);\n context.currentQuerySelector = parentSelector.length ? parentSelector + ' ' + selector : selector;\n getOrSetDefaultValue(context.collectedStyles, context.currentQuerySelector, new Map());\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: AnimationMetadataType.Query,\n selector,\n limit: options.limit || 0,\n optional: !!options.optional,\n includeSelf,\n animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitStagger(metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(invalidStagger());\n }\n const timings = metadata.timings === 'full' ? {\n duration: 0,\n delay: 0,\n easing: 'full'\n } : resolveTiming(metadata.timings, context.errors, true);\n return {\n type: AnimationMetadataType.Stagger,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n timings,\n options: null\n };\n }\n}\nfunction normalizeSelector(selector) {\n const hasAmpersand = selector.split(/\\s*,\\s*/).find(token => token == SELF_TOKEN) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // Note: the :enter and :leave aren't normalized here since those\n // selectors are filled in at runtime during timeline building\n selector = selector.replace(/@\\*/g, NG_TRIGGER_SELECTOR).replace(/@\\w+/g, match => NG_TRIGGER_SELECTOR + '-' + match.slice(1)).replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? {\n ...obj\n } : null;\n}\nclass AnimationAstBuilderContext {\n constructor(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = new Map();\n this.options = null;\n this.unsupportedCSSPropertiesFound = new Set();\n }\n}\nfunction consumeOffset(styles) {\n if (typeof styles == 'string') return null;\n let offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(styleTuple => {\n if (styleTuple instanceof Map && styleTuple.has('offset')) {\n const obj = styleTuple;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n });\n } else if (styles instanceof Map && styles.has('offset')) {\n const obj = styles;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n return offset;\n}\nfunction constructTimingAst(value, errors) {\n if (value.hasOwnProperty('duration')) {\n return value;\n }\n if (typeof value == 'number') {\n const duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n const strValue = value;\n const isDynamic = strValue.split(/\\s+/).some(v => v.charAt(0) == '{' && v.charAt(1) == '{');\n if (isDynamic) {\n const ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n const timings = resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = {\n ...options\n };\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n } else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return {\n duration,\n delay,\n easing\n };\n}\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {\n return {\n type: 1 /* AnimationTransitionInstructionType.TimelineAnimation */,\n element,\n keyframes,\n preStyleProps,\n postStyleProps,\n duration,\n delay,\n totalTime: duration + delay,\n easing,\n subTimeline\n };\n}\nclass ElementInstructionMap {\n constructor() {\n this._map = new Map();\n }\n get(element) {\n return this._map.get(element) || [];\n }\n append(element, instructions) {\n let existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push(...instructions);\n }\n has(element) {\n return this._map.has(element);\n }\n clear() {\n this._map.clear();\n }\n}\nconst ONE_FRAME_IN_MILLISECONDS = 1;\nconst ENTER_TOKEN = ':enter';\nconst ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\nconst LEAVE_TOKEN = ':leave';\nconst LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two within a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergeSort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill map.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = new Map(), finalStyles = new Map(), options, subInstructions, errors = []) {\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nclass AnimationTimelineBuilderVisitor {\n buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {\n subInstructions = subInstructions || new ElementInstructionMap();\n const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n context.currentTimeline.delayNextStep(delay);\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n const timelines = context.timelines.filter(timeline => timeline.containsAnimation());\n // note: we just want to apply the final styles for the rootElement, so we do not\n // just apply the styles to the last timeline but the last timeline which\n // element is the root one (basically `*`-styles are replaced with the actual\n // state style values only for the root element)\n if (timelines.length && finalStyles.size) {\n let lastRootTimeline;\n for (let i = timelines.length - 1; i >= 0; i--) {\n const timeline = timelines[i];\n if (timeline.element === rootElement) {\n lastRootTimeline = timeline;\n break;\n }\n }\n if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {\n lastRootTimeline.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ? timelines.map(timeline => timeline.buildKeyframes()) : [createTimelineInstruction(rootElement, [], [], [], 0, delay, '', false)];\n }\n visitTrigger(ast, context) {\n // these values are not visited in this AST\n }\n visitState(ast, context) {\n // these values are not visited in this AST\n }\n visitTransition(ast, context) {\n // these values are not visited in this AST\n }\n visitAnimateChild(ast, context) {\n const elementInstructions = context.subInstructions.get(context.element);\n if (elementInstructions) {\n const innerContext = context.createSubContext(ast.options);\n const startTime = context.currentTimeline.currentTime;\n const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n }\n visitAnimateRef(ast, context) {\n const innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this._applyAnimationRefDelays([ast.options, ast.animation.options], context, innerContext);\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n }\n _applyAnimationRefDelays(animationsRefsOptions, context, innerContext) {\n for (const animationRefOptions of animationsRefsOptions) {\n const animationDelay = animationRefOptions?.delay;\n if (animationDelay) {\n const animationDelayValue = typeof animationDelay === 'number' ? animationDelay : resolveTimingValue(interpolateParams(animationDelay, animationRefOptions?.params ?? {}, context.errors));\n innerContext.delayNextStep(animationDelayValue);\n }\n }\n }\n _visitSubInstructions(instructions, context, options) {\n const startTime = context.currentTimeline.currentTime;\n let furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n const duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n const delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(instruction => {\n const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime = Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n }\n visitReference(ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n }\n visitSequence(ast, context) {\n const subContextCount = context.subContextCount;\n let ctx = context;\n const options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == AnimationMetadataType.Style) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n const delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(s => visitDslNode(this, s, ctx));\n // this is here just in case the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n }\n visitGroup(ast, context) {\n const innerTimelines = [];\n let furthestTime = context.currentTimeline.currentTime;\n const delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(s => {\n const innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(timeline => context.currentTimeline.mergeTimelineCollectedStyles(timeline));\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n }\n _visitTiming(ast, context) {\n if (ast.dynamic) {\n const strValue = ast.strValue;\n const timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n return resolveTiming(timingValue, context.errors);\n } else {\n return {\n duration: ast.duration,\n delay: ast.delay,\n easing: ast.easing\n };\n }\n }\n visitAnimate(ast, context) {\n const timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n const timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n const style = ast.style;\n if (style.type == AnimationMetadataType.Keyframes) {\n this.visitKeyframes(style, context);\n } else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n }\n visitStyle(ast, context) {\n const timeline = context.currentTimeline;\n const timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.hasCurrentStyleProperties()) {\n timeline.forwardFrame();\n }\n const easing = timings && timings.easing || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n } else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n }\n visitKeyframes(ast, context) {\n const currentAnimateTimings = context.currentAnimateTimings;\n const startTime = context.currentTimeline.duration;\n const duration = currentAnimateTimings.duration;\n const innerContext = context.createSubContext();\n const innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(step => {\n const offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n }\n visitQuery(ast, context) {\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n const startTime = context.currentTimeline.currentTime;\n const options = ast.options || {};\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay && (context.previousNode.type === AnimationMetadataType.Style || startTime == 0 && context.currentTimeline.hasCurrentStyleProperties())) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n let furthestTime = startTime;\n const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n let sameElementTimeline = null;\n elms.forEach((element, i) => {\n context.currentQueryIndex = i;\n const innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n const endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n }\n visitStagger(ast, context) {\n const parentContext = context.parentContext;\n const tl = context.currentTimeline;\n const timings = ast.timings;\n const duration = Math.abs(timings.duration);\n const maxTime = duration * (context.currentQueryTotal - 1);\n let delay = duration * context.currentQueryIndex;\n let staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n const timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n const startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime = tl.currentTime - startingTime + (tl.startTime - parentContext.currentTimeline.startTime);\n }\n}\nconst DEFAULT_NOOP_PREVIOUS_NODE = {};\nclass AnimationTimelineContext {\n constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n get params() {\n return this.options.params;\n }\n updateOptions(options, skipIfExists) {\n if (!options) return;\n const newOptions = options;\n let optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n const newParams = newOptions.params;\n if (newParams) {\n let paramsToUpdate = optionsToUpdate.params;\n if (!paramsToUpdate) {\n paramsToUpdate = this.options.params = {};\n }\n Object.keys(newParams).forEach(name => {\n if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {\n paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);\n }\n });\n }\n }\n _copyOptions() {\n const options = {};\n if (this.options) {\n const oldParams = this.options.params;\n if (oldParams) {\n const params = options['params'] = {};\n Object.keys(oldParams).forEach(name => {\n params[name] = oldParams[name];\n });\n }\n }\n return options;\n }\n createSubContext(options = null, element, newTime) {\n const target = element || this.element;\n const context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n }\n transformIntoNewTimeline(newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n }\n appendInstructionToTimeline(instruction, duration, delay) {\n const updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n }\n incrementTime(time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n }\n delayNextStep(delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n }\n invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {\n let results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) {\n // only if :self is used then the selector can be empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n const multi = limit != 1;\n let elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) : elements.slice(0, limit);\n }\n results.push(...elements);\n }\n if (!optional && results.length == 0) {\n errors.push(invalidQuery(originalSelector));\n }\n return results;\n }\n}\nclass TimelineBuilder {\n constructor(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this.easing = null;\n this._previousKeyframe = new Map();\n this._currentKeyframe = new Map();\n this._keyframes = new Map();\n this._styleSummary = new Map();\n this._localTimelineStyles = new Map();\n this._pendingStyles = new Map();\n this._backFill = new Map();\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n containsAnimation() {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.hasCurrentStyleProperties();\n default:\n return true;\n }\n }\n hasCurrentStyleProperties() {\n return this._currentKeyframe.size > 0;\n }\n get currentTime() {\n return this.startTime + this.duration;\n }\n delayNextStep(delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n const hasPreStyleStep = this._keyframes.size === 1 && this._pendingStyles.size;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n } else {\n this.startTime += delay;\n }\n }\n fork(element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n }\n _loadKeyframe() {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = new Map();\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n }\n forwardFrame() {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n }\n forwardTime(time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n }\n _updateStyle(prop, value) {\n this._localTimelineStyles.set(prop, value);\n this._globalTimelineStyles.set(prop, value);\n this._styleSummary.set(prop, {\n time: this.currentTime,\n value\n });\n }\n allowOnlyTimelineStyles() {\n return this._currentEmptyStepKeyframe !== this._currentKeyframe;\n }\n applyEmptyStep(easing) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n for (let [prop, value] of this._globalTimelineStyles) {\n this._backFill.set(prop, value || AUTO_STYLE);\n this._currentKeyframe.set(prop, AUTO_STYLE);\n }\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n }\n setStyles(input, easing, errors, options) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n const params = options && options.params || {};\n const styles = flattenStyles(input, this._globalTimelineStyles);\n for (let [prop, value] of styles) {\n const val = interpolateParams(value, params, errors);\n this._pendingStyles.set(prop, val);\n if (!this._localTimelineStyles.has(prop)) {\n this._backFill.set(prop, this._globalTimelineStyles.get(prop) ?? AUTO_STYLE);\n }\n this._updateStyle(prop, val);\n }\n }\n applyStylesToKeyframe() {\n if (this._pendingStyles.size == 0) return;\n this._pendingStyles.forEach((val, prop) => {\n this._currentKeyframe.set(prop, val);\n });\n this._pendingStyles.clear();\n this._localTimelineStyles.forEach((val, prop) => {\n if (!this._currentKeyframe.has(prop)) {\n this._currentKeyframe.set(prop, val);\n }\n });\n }\n snapshotCurrentStyles() {\n for (let [prop, val] of this._localTimelineStyles) {\n this._pendingStyles.set(prop, val);\n this._updateStyle(prop, val);\n }\n }\n getFinalKeyframe() {\n return this._keyframes.get(this.duration);\n }\n get properties() {\n const properties = [];\n for (let prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n }\n mergeTimelineCollectedStyles(timeline) {\n timeline._styleSummary.forEach((details1, prop) => {\n const details0 = this._styleSummary.get(prop);\n if (!details0 || details1.time > details0.time) {\n this._updateStyle(prop, details1.value);\n }\n });\n }\n buildKeyframes() {\n this.applyStylesToKeyframe();\n const preStyleProps = new Set();\n const postStyleProps = new Set();\n const isEmpty = this._keyframes.size === 1 && this.duration === 0;\n let finalKeyframes = [];\n this._keyframes.forEach((keyframe, time) => {\n const finalKeyframe = new Map([...this._backFill, ...keyframe]);\n finalKeyframe.forEach((value, prop) => {\n if (value === ɵPRE_STYLE) {\n preStyleProps.add(prop);\n } else if (value === AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe.set('offset', time / this.duration);\n }\n finalKeyframes.push(finalKeyframe);\n });\n const preProps = [...preStyleProps.values()];\n const postProps = [...postStyleProps.values()];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n const kf0 = finalKeyframes[0];\n const kf1 = new Map(kf0);\n kf0.set('offset', 0);\n kf1.set('offset', 1);\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n }\n}\nclass SubTimelineBuilder extends TimelineBuilder {\n constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {\n super(driver, element, timings.delay);\n this.keyframes = keyframes;\n this.preStyleProps = preStyleProps;\n this.postStyleProps = postStyleProps;\n this._stretchStartingKeyframe = _stretchStartingKeyframe;\n this.timings = {\n duration: timings.duration,\n delay: timings.delay,\n easing: timings.easing\n };\n }\n containsAnimation() {\n return this.keyframes.length > 1;\n }\n buildKeyframes() {\n let keyframes = this.keyframes;\n let {\n delay,\n duration,\n easing\n } = this.timings;\n if (this._stretchStartingKeyframe && delay) {\n const newKeyframes = [];\n const totalTime = duration + delay;\n const startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n const newFirstKeyframe = new Map(keyframes[0]);\n newFirstKeyframe.set('offset', 0);\n newKeyframes.push(newFirstKeyframe);\n const oldFirstKeyframe = new Map(keyframes[0]);\n oldFirstKeyframe.set('offset', roundOffset(startingGap));\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still rendered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n delay=1000, duration=1000, keyframes = 0 .5 1\n turns into\n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n const limit = keyframes.length - 1;\n for (let i = 1; i <= limit; i++) {\n let kf = new Map(keyframes[i]);\n const oldOffset = kf.get('offset');\n const timeAtKeyframe = delay + oldOffset * duration;\n kf.set('offset', roundOffset(timeAtKeyframe / totalTime));\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n }\n}\nfunction roundOffset(offset, decimalPoints = 3) {\n const mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n const styles = new Map();\n let allProperties;\n input.forEach(token => {\n if (token === '*') {\n allProperties ??= allStyles.keys();\n for (let prop of allProperties) {\n styles.set(prop, AUTO_STYLE);\n }\n } else {\n for (let [prop, val] of token) {\n styles.set(prop, val);\n }\n }\n });\n return styles;\n}\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* AnimationTransitionInstructionType.TransitionAnimation */,\n element,\n triggerName,\n isRemovalTransition,\n fromState,\n fromStyles,\n toState,\n toStyles,\n timelines,\n queriedElements,\n preStyleProps,\n postStyleProps,\n totalTime,\n errors\n };\n}\nconst EMPTY_OBJECT = {};\nclass AnimationTransitionFactory {\n constructor(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n match(currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n }\n buildStyles(stateName, params, errors) {\n let styler = this._stateStyles.get('*');\n if (stateName !== undefined) {\n styler = this._stateStyles.get(stateName?.toString()) || styler;\n }\n return styler ? styler.buildStyles(params, errors) : new Map();\n }\n build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n const errors = [];\n const transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n const currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n const nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n const queriedElements = new Set();\n const preStyleMap = new Map();\n const postStyleMap = new Map();\n const isRemoval = nextState === 'void';\n const animationOptions = {\n params: applyParamDefaults(nextAnimationParams, transitionAnimationParams),\n delay: this.ast.options?.delay\n };\n const timelines = skipAstBuild ? [] : buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n let totalTime = 0;\n timelines.forEach(tl => {\n totalTime = Math.max(tl.duration + tl.delay, totalTime);\n });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach(tl => {\n const elm = tl.element;\n const preProps = getOrSetDefaultValue(preStyleMap, elm, new Set());\n tl.preStyleProps.forEach(prop => preProps.add(prop));\n const postProps = getOrSetDefaultValue(postStyleMap, elm, new Set());\n tl.postStyleProps.forEach(prop => postProps.add(prop));\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n checkNonAnimatableInTimelines(timelines, this._triggerName, driver);\n }\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, [...queriedElements.values()], preStyleMap, postStyleMap, totalTime);\n }\n}\n/**\n * Checks inside a set of timelines if they try to animate a css property which is not considered\n * animatable, in that case it prints a warning on the console.\n * Besides that the function doesn't have any other effect.\n *\n * Note: this check is done here after the timelines are built instead of doing on a lower level so\n * that we can make sure that the warning appears only once per instruction (we can aggregate here\n * all the issues instead of finding them separately).\n *\n * @param timelines The built timelines for the current instruction.\n * @param triggerName The name of the trigger for the current instruction.\n * @param driver Animation driver used to perform the check.\n *\n */\nfunction checkNonAnimatableInTimelines(timelines, triggerName, driver) {\n if (!driver.validateAnimatableStyleProperty) {\n return;\n }\n const allowedNonAnimatableProps = new Set([\n // 'easing' is a utility/synthetic prop we use to represent\n // easing functions, it represents a property of the animation\n // which is not animatable but different values can be used\n // in different steps\n 'easing']);\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({\n keyframes\n }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach(keyframe => {\n const entriesToCheck = Array.from(keyframe.entries()).filter(([prop]) => !allowedNonAnimatableProps.has(prop));\n for (const [prop, value] of entriesToCheck) {\n if (!driver.validateAnimatableStyleProperty(prop)) {\n if (nonAnimatablePropsInitialValues.has(prop) && !invalidNonAnimatableProps.has(prop)) {\n const propInitialValue = nonAnimatablePropsInitialValues.get(prop);\n if (propInitialValue !== value) {\n invalidNonAnimatableProps.add(prop);\n }\n } else {\n nonAnimatablePropsInitialValues.set(prop, value);\n }\n }\n }\n });\n });\n if (invalidNonAnimatableProps.size > 0) {\n console.warn(`Warning: The animation trigger \"${triggerName}\" is attempting to animate the following` + ' not animatable properties: ' + Array.from(invalidNonAnimatableProps).join(', ') + '\\n' + '(to check the list of all animatable properties visit https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties)');\n }\n}\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some(fn => fn(currentState, nextState, element, params));\n}\nfunction applyParamDefaults(userParams, defaults) {\n const result = {\n ...defaults\n };\n Object.entries(userParams).forEach(([key, value]) => {\n if (value != null) {\n result[key] = value;\n }\n });\n return result;\n}\nclass AnimationStateStyles {\n constructor(styles, defaultParams, normalizer) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n this.normalizer = normalizer;\n }\n buildStyles(params, errors) {\n const finalStyles = new Map();\n const combinedParams = applyParamDefaults(params, this.defaultParams);\n this.styles.styles.forEach(value => {\n if (typeof value !== 'string') {\n value.forEach((val, prop) => {\n if (val) {\n val = interpolateParams(val, combinedParams, errors);\n }\n const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);\n val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);\n finalStyles.set(prop, val);\n });\n }\n });\n return finalStyles;\n }\n}\nfunction buildTrigger(name, ast, normalizer) {\n return new AnimationTrigger(name, ast, normalizer);\n}\nclass AnimationTrigger {\n constructor(name, ast, _normalizer) {\n this.name = name;\n this.ast = ast;\n this._normalizer = _normalizer;\n this.transitionFactories = [];\n this.states = new Map();\n ast.states.forEach(ast => {\n const defaultParams = ast.options && ast.options.params || {};\n this.states.set(ast.name, new AnimationStateStyles(ast.style, defaultParams, _normalizer));\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(ast => {\n this.transitionFactories.push(new AnimationTransitionFactory(name, ast, this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states, this._normalizer);\n }\n get containsQueries() {\n return this.ast.queryCount > 0;\n }\n matchTransition(currentState, nextState, element, params) {\n const entry = this.transitionFactories.find(f => f.match(currentState, nextState, element, params));\n return entry || null;\n }\n matchStyles(currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n }\n}\nfunction createFallbackTransition(triggerName, states, normalizer) {\n const matchers = [(fromState, toState) => true];\n const animation = {\n type: AnimationMetadataType.Sequence,\n steps: [],\n options: null\n };\n const transition = {\n type: AnimationMetadataType.Transition,\n animation,\n matchers,\n options: null,\n queryCount: 0,\n depCount: 0\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(stateMap, key1, key2) {\n if (stateMap.has(key1)) {\n if (!stateMap.has(key2)) {\n stateMap.set(key2, stateMap.get(key1));\n }\n } else if (stateMap.has(key2)) {\n stateMap.set(key1, stateMap.get(key2));\n }\n}\nconst EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nclass TimelineAnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = new Map();\n this._playersById = new Map();\n this.players = [];\n }\n register(id, metadata) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw registerFailed(errors);\n } else {\n if (warnings.length) {\n warnRegister(warnings);\n }\n this._animations.set(id, ast);\n }\n }\n _buildPlayer(i, preStyles, postStyles) {\n const element = i.element;\n const keyframes = normalizeKeyframes$1(this._normalizer, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n }\n create(id, element, options = {}) {\n const errors = [];\n const ast = this._animations.get(id);\n let instructions;\n const autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, new Map(), new Map(), options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(inst => {\n const styles = getOrSetDefaultValue(autoStylesMap, inst.element, new Map());\n inst.postStyleProps.forEach(prop => styles.set(prop, null));\n });\n } else {\n errors.push(missingOrDestroyedAnimation());\n instructions = [];\n }\n if (errors.length) {\n throw createAnimationFailed(errors);\n }\n autoStylesMap.forEach((styles, element) => {\n styles.forEach((_, prop) => {\n styles.set(prop, this._driver.computeStyle(element, prop, AUTO_STYLE));\n });\n });\n const players = instructions.map(i => {\n const styles = autoStylesMap.get(i.element);\n return this._buildPlayer(i, new Map(), styles);\n });\n const player = optimizeGroupPlayer(players);\n this._playersById.set(id, player);\n player.onDestroy(() => this.destroy(id));\n this.players.push(player);\n return player;\n }\n destroy(id) {\n const player = this._getPlayer(id);\n player.destroy();\n this._playersById.delete(id);\n const index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n }\n _getPlayer(id) {\n const player = this._playersById.get(id);\n if (!player) {\n throw missingPlayer(id);\n }\n return player;\n }\n listen(id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n const baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return () => {};\n }\n command(id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n const options = args[0] || {};\n this.create(id, element, options);\n return;\n }\n const player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\n }\n }\n}\nconst QUEUED_CLASSNAME = 'ng-animate-queued';\nconst QUEUED_SELECTOR = '.ng-animate-queued';\nconst DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst DISABLED_SELECTOR = '.ng-animate-disabled';\nconst STAR_CLASSNAME = 'ng-star-inserted';\nconst STAR_SELECTOR = '.ng-star-inserted';\nconst EMPTY_PLAYER_ARRAY = [];\nconst NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nconst NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true\n};\nconst REMOVAL_FLAG = '__ng_removed';\nclass StateValue {\n get params() {\n return this.options.params;\n }\n constructor(input, namespaceId = '') {\n this.namespaceId = namespaceId;\n const isObj = input && input.hasOwnProperty('value');\n const value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n // we drop the value property from options.\n const {\n value,\n ...options\n } = input;\n this.options = options;\n } else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n absorbOptions(options) {\n const newParams = options.params;\n if (newParams) {\n const oldParams = this.options.params;\n Object.keys(newParams).forEach(prop => {\n if (oldParams[prop] == null) {\n oldParams[prop] = newParams[prop];\n }\n });\n }\n }\n}\nconst VOID_VALUE = 'void';\nconst DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nclass AnimationTransitionNamespace {\n constructor(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = new Map();\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n listen(element, name, phase, callback) {\n if (!this._triggers.has(name)) {\n throw missingTrigger(phase, name);\n }\n if (phase == null || phase.length == 0) {\n throw missingEvent(name);\n }\n if (!isTriggerEventValid(phase)) {\n throw unsupportedTriggerEvent(phase, name);\n }\n const listeners = getOrSetDefaultValue(this._elementListeners, element, []);\n const data = {\n name,\n phase,\n callback\n };\n listeners.push(data);\n const triggersWithStates = getOrSetDefaultValue(this._engine.statesByElement, element, new Map());\n if (!triggersWithStates.has(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates.set(name, DEFAULT_STATE_VALUE);\n }\n return () => {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n this._engine.afterFlush(() => {\n const index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!this._triggers.has(name)) {\n triggersWithStates.delete(name);\n }\n });\n };\n }\n register(name, ast) {\n if (this._triggers.has(name)) {\n // throw\n return false;\n } else {\n this._triggers.set(name, ast);\n return true;\n }\n }\n _getTrigger(name) {\n const trigger = this._triggers.get(name);\n if (!trigger) {\n throw unregisteredTrigger(name);\n }\n return trigger;\n }\n trigger(element, triggerName, value, defaultToFallback = true) {\n const trigger = this._getTrigger(triggerName);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n let triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = new Map());\n }\n let fromState = triggersWithStates.get(triggerName);\n const toState = new StateValue(value, this.id);\n const isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates.set(triggerName, toState);\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n const isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n const errors = [];\n const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n const toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n } else {\n this._engine.afterFlush(() => {\n eraseStyles(element, fromStyles);\n setStyles(element, toStyles);\n });\n }\n }\n return;\n }\n const playersOnElement = getOrSetDefaultValue(this._engine.playersByElement, element, []);\n playersOnElement.forEach(player => {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new player)\n if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n let transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n let isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback) return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition\n });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(() => {\n removeClass(element, QUEUED_CLASSNAME);\n });\n }\n player.onDone(() => {\n let index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n const players = this._engine.playersByElement.get(element);\n if (players) {\n let index = players.indexOf(player);\n if (index >= 0) {\n players.splice(index, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n }\n deregister(name) {\n this._triggers.delete(name);\n this._engine.statesByElement.forEach(stateMap => stateMap.delete(name));\n this._elementListeners.forEach((listeners, element) => {\n this._elementListeners.set(element, listeners.filter(entry => {\n return entry.name != name;\n }));\n });\n }\n clearElementCache(element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n const elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(player => player.destroy());\n this._engine.playersByElement.delete(element);\n }\n }\n _signalRemovalForInnerTriggers(rootElement, context) {\n const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach(elm => {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG]) return;\n const namespaces = this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach(ns => ns.triggerLeaveAnimation(elm, context, false, true));\n } else {\n this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(() => elements.forEach(elm => this.clearElementCache(elm)));\n }\n triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {\n const triggerStates = this._engine.statesByElement.get(element);\n const previousTriggersValues = new Map();\n if (triggerStates) {\n const players = [];\n triggerStates.forEach((state, triggerName) => {\n previousTriggersValues.set(triggerName, state.value);\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (this._triggers.has(triggerName)) {\n const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players.push(player);\n }\n }\n });\n if (players.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));\n }\n return true;\n }\n }\n return false;\n }\n prepareLeaveAnimationListeners(element) {\n const listeners = this._elementListeners.get(element);\n const elementStates = this._engine.statesByElement.get(element);\n // if this statement fails then it means that the element was picked up\n // by an earlier flush (or there are no listeners at all to track the leave).\n if (listeners && elementStates) {\n const visitedTriggers = new Set();\n listeners.forEach(listener => {\n const triggerName = listener.name;\n if (visitedTriggers.has(triggerName)) return;\n visitedTriggers.add(triggerName);\n const trigger = this._triggers.get(triggerName);\n const transition = trigger.fallbackTransition;\n const fromState = elementStates.get(triggerName) || DEFAULT_STATE_VALUE;\n const toState = new StateValue(VOID_VALUE);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition: true\n });\n });\n }\n }\n removeNode(element, context) {\n const engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true)) return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n let containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n const currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n } else {\n let parent = element;\n while (parent = parent.parentNode) {\n const triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n } else {\n const removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(() => this.clearElementCache(element));\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n }\n insertNode(element, parent) {\n addClass(element, this._hostClassName);\n }\n drainQueuedTransitions(microtaskId) {\n const instructions = [];\n this._queue.forEach(entry => {\n const player = entry.player;\n if (player.destroyed) return;\n const element = entry.element;\n const listeners = this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach(listener => {\n if (listener.name == entry.triggerName) {\n const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n this._engine.afterFlush(() => {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n } else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort((a, b) => {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n const d0 = a.transition.ast.depCount;\n const d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n }\n destroy(context) {\n this.players.forEach(p => p.destroy());\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n }\n}\nclass TransitionAnimationEngine {\n /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\n constructor(bodyNode, driver, _normalizer) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => {};\n }\n get queuedPlayers() {\n const players = [];\n this._namespaceList.forEach(ns => {\n ns.players.forEach(player => {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n }\n createNamespace(namespaceId, hostElement) {\n const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {\n this._balanceNamespaceList(ns, hostElement);\n } else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is a part of the animation code, it\n // may or may not be inserted by a parent node that is of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n }\n _balanceNamespaceList(ns, hostElement) {\n const namespaceList = this._namespaceList;\n const namespacesByHostElement = this.namespacesByHostElement;\n const limit = namespaceList.length - 1;\n if (limit >= 0) {\n let found = false;\n // Find the closest ancestor with an existing namespace so we can then insert `ns` after it,\n // establishing a top-down ordering of namespaces in `this._namespaceList`.\n let ancestor = this.driver.getParentElement(hostElement);\n while (ancestor) {\n const ancestorNs = namespacesByHostElement.get(ancestor);\n if (ancestorNs) {\n // An animation namespace has been registered for this ancestor, so we insert `ns`\n // right after it to establish top-down ordering of animation namespaces.\n const index = namespaceList.indexOf(ancestorNs);\n namespaceList.splice(index + 1, 0, ns);\n found = true;\n break;\n }\n ancestor = this.driver.getParentElement(ancestor);\n }\n if (!found) {\n // No namespace exists that is an ancestor of `ns`, so `ns` is inserted at the front to\n // ensure that any existing descendants are ordered after `ns`, retaining the desired\n // top-down ordering.\n namespaceList.unshift(ns);\n }\n } else {\n namespaceList.push(ns);\n }\n namespacesByHostElement.set(hostElement, ns);\n return ns;\n }\n register(namespaceId, hostElement) {\n let ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n }\n registerTrigger(namespaceId, name, trigger) {\n let ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n }\n destroy(namespaceId, context) {\n if (!namespaceId) return;\n this.afterFlush(() => {});\n this.afterFlushAnimationsDone(() => {\n const ns = this._fetchNamespace(namespaceId);\n this.namespacesByHostElement.delete(ns.hostElement);\n const index = this._namespaceList.indexOf(ns);\n if (index >= 0) {\n this._namespaceList.splice(index, 1);\n }\n ns.destroy(context);\n delete this._namespaceLookup[namespaceId];\n });\n }\n _fetchNamespace(id) {\n return this._namespaceLookup[id];\n }\n fetchNamespacesByElement(element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply deduplicate\n // the namespaces in case (for the reason described above) there are multiple triggers\n const namespaces = new Set();\n const elementStates = this.statesByElement.get(element);\n if (elementStates) {\n for (let stateValue of elementStates.values()) {\n if (stateValue.namespaceId) {\n const ns = this._fetchNamespace(stateValue.namespaceId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n }\n trigger(namespaceId, element, name, value) {\n if (isElementNode(element)) {\n const ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n }\n insertNode(namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element)) return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n const index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n const ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n }\n collectEnterElement(element) {\n this.collectedEnterElements.push(element);\n }\n markElementAsDisabled(element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n } else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n }\n removeNode(namespaceId, element, context) {\n if (isElementNode(element)) {\n const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n } else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n } else {\n this._onRemovalComplete(element, context);\n }\n }\n markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId,\n setForRemoval: context,\n hasAnimation,\n removedBeforeQueried: false,\n previousTriggersValues\n };\n }\n listen(namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return () => {};\n }\n _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n }\n destroyInnerAnimations(containerElement) {\n let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(element => this.destroyActiveAnimationsForElement(element));\n if (this.playersByQueriedElement.size == 0) return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach(element => this.finishActiveQueriedAnimationOnElement(element));\n }\n destroyActiveAnimationsForElement(element) {\n const players = this.playersByElement.get(element);\n if (players) {\n players.forEach(player => {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n } else {\n player.destroy();\n }\n });\n }\n }\n finishActiveQueriedAnimationOnElement(element) {\n const players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(player => player.finish());\n }\n }\n whenRenderingDone() {\n return new Promise(resolve => {\n if (this.players.length) {\n return optimizeGroupPlayer(this.players).onDone(() => resolve());\n } else {\n resolve();\n }\n });\n }\n processLeaveNode(element) {\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n const ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if (element.classList?.contains(DISABLED_CLASSNAME)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n this.markElementAsDisabled(node, false);\n });\n }\n flush(microtaskId = -1) {\n let players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (let i = 0; i < this.collectedEnterElements.length; i++) {\n const elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length && (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n const cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n } finally {\n for (let i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n } else {\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(fn => fn());\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n const quietFns = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(() => {\n quietFns.forEach(fn => fn());\n });\n } else {\n quietFns.forEach(fn => fn());\n }\n }\n }\n reportError(errors) {\n throw triggerTransitionsFailed(errors);\n }\n _flushAnimations(cleanupFns, microtaskId) {\n const subTimelines = new ElementInstructionMap();\n const skippedPlayers = [];\n const skippedPlayersMap = new Map();\n const queuedInstructions = [];\n const queriedElements = new Map();\n const allPreStyleElements = new Map();\n const allPostStyleElements = new Map();\n const disabledElementsSet = new Set();\n this.disabledNodes.forEach(node => {\n disabledElementsSet.add(node);\n const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n for (let i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n const bodyNode = this.bodyNode;\n const allTriggerElements = Array.from(this.statesByElement.keys());\n const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n const enterNodeMapIds = new Map();\n let i = 0;\n enterNodeMap.forEach((nodes, root) => {\n const className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n const allLeaveNodes = [];\n const mergedLeaveNodes = new Set();\n const leaveNodesWithoutAnimations = new Set();\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver.query(element, STAR_SELECTOR, true).forEach(elm => mergedLeaveNodes.add(elm));\n } else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n const leaveNodeMapIds = new Map();\n const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach((nodes, root) => {\n const className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n cleanupFns.push(() => {\n enterNodeMap.forEach((nodes, root) => {\n const className = enterNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n leaveNodeMap.forEach((nodes, root) => {\n const className = leaveNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n allLeaveNodes.forEach(element => {\n this.processLeaveNode(element);\n });\n });\n const allPlayers = [];\n const erroneousTransitions = [];\n for (let i = this._namespaceList.length - 1; i >= 0; i--) {\n const ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n const player = entry.player;\n const element = entry.element;\n allPlayers.push(player);\n if (this.collectedEnterElements.length) {\n const details = element[REMOVAL_FLAG];\n // animations for move operations (elements being removed and reinserted,\n // e.g. when the order of an *ngFor list changes) are currently not supported\n if (details && details.setForMove) {\n if (details.previousTriggersValues && details.previousTriggersValues.has(entry.triggerName)) {\n const previousValue = details.previousTriggersValues.get(entry.triggerName);\n // we need to restore the previous trigger value since the element has\n // only been moved and hasn't actually left the DOM\n const triggersWithStates = this.statesByElement.get(entry.element);\n if (triggersWithStates && triggersWithStates.has(entry.triggerName)) {\n const state = triggersWithStates.get(entry.triggerName);\n state.value = previousValue;\n triggersWithStates.set(entry.triggerName, state);\n }\n }\n player.destroy();\n return;\n }\n }\n const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);\n const leaveClassName = leaveNodeMapIds.get(element);\n const enterClassName = enterNodeMapIds.get(element);\n const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be in the DOM, it may still\n // be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important to still style the element.\n if (nodeIsOrphaned) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // if an unmatched transition is queued and ready to go\n // then it SHOULD NOT render an animation and cancel the\n // previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub-trigger\n // then it will instruct the timeline builder not to add a player delay, but\n // instead stretch the first keyframe gap until the animation starts. This is\n // important in order to prevent extra initialization styles from being\n // required by the user for the animation.\n const timelines = [];\n instruction.timelines.forEach(tl => {\n tl.stretchStartingKeyframe = true;\n if (!this.disabledNodes.has(tl.element)) {\n timelines.push(tl);\n }\n });\n instruction.timelines = timelines;\n subTimelines.append(element, instruction.timelines);\n const tuple = {\n instruction,\n player,\n element\n };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(element => getOrSetDefaultValue(queriedElements, element, []).push(player));\n instruction.preStyleProps.forEach((stringMap, element) => {\n if (stringMap.size) {\n let setVal = allPreStyleElements.get(element);\n if (!setVal) {\n allPreStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n }\n });\n instruction.postStyleProps.forEach((stringMap, element) => {\n let setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n });\n });\n }\n if (erroneousTransitions.length) {\n const errors = [];\n erroneousTransitions.forEach(instruction => {\n errors.push(transitionFailed(instruction.triggerName, instruction.errors));\n });\n allPlayers.forEach(player => player.destroy());\n this.reportError(errors);\n }\n const allPreviousPlayersMap = new Map();\n // this map tells us which element in the DOM tree is contained by\n // which animation. Further down this map will get populated once\n // the players are built and in doing so we can use it to efficiently\n // figure out if a sub player is skipped due to a parent player having priority.\n const animationElementMap = new Map();\n queuedInstructions.forEach(entry => {\n const element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(player => {\n const element = player.element;\n const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(prevPlayer => {\n getOrSetDefaultValue(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed either by\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or \"auto\" since the element\n // passed to getComputedStyle will not be visible (since * === destination)\n const replaceNodes = allLeaveNodes.filter(node => {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n const postStylesMap = new Map();\n const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach(node => {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n const preStylesMap = new Map();\n enterNodeMap.forEach((nodes, root) => {\n cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, ɵPRE_STYLE);\n });\n replaceNodes.forEach(node => {\n const post = postStylesMap.get(node);\n const pre = preStylesMap.get(node);\n postStylesMap.set(node, new Map([...(post?.entries() ?? []), ...(pre?.entries() ?? [])]));\n });\n const rootPlayers = [];\n const subPlayers = [];\n const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach(entry => {\n const {\n element,\n player,\n instruction\n } = entry;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n let elm = element;\n const parentsToAdd = [];\n while (elm = elm.parentNode) {\n const detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach(parent => animationElementMap.set(parent, parentWithAnimation));\n }\n const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n } else {\n const parentPlayers = this.playersByElement.get(parentWithAnimation);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n } else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation players\n subPlayers.forEach(player => {\n // even if no players are found for a sub animation it\n // will still complete itself after the next tick since it's Noop\n const playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n const innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(player => {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n } else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (let i = 0; i < allLeaveNodes.length; i++) {\n const element = allLeaveNodes[i];\n const details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation) continue;\n let players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n let queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push(...queriedPlayerResults);\n }\n let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (let j = 0; j < queriedInnerElements.length; j++) {\n let queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push(...queriedPlayers);\n }\n }\n }\n const activePlayers = players.filter(p => !p.destroyed);\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n } else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(player => {\n this.players.push(player);\n player.onDone(() => {\n player.destroy();\n const index = this.players.indexOf(player);\n this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n }\n afterFlush(callback) {\n this._flushFns.push(callback);\n }\n afterFlushAnimationsDone(callback) {\n this._whenQuietFns.push(callback);\n }\n _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n let players = [];\n if (isQueriedElement) {\n const queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n } else {\n const elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(player => {\n if (player.queued) return;\n if (!isRemovalAnimation && player.triggerName != triggerName) return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(player => {\n if (namespaceId && namespaceId != player.namespaceId) return false;\n if (triggerName && triggerName != player.triggerName) return false;\n return true;\n });\n }\n return players;\n }\n _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n const targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n const targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n for (const timelineInstruction of instruction.timelines) {\n const element = timelineInstruction.element;\n const isQueriedElement = element !== rootElement;\n const players = getOrSetDefaultValue(allPreviousPlayersMap, element, []);\n const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(player => {\n const realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n }\n _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n const allQueriedPlayers = [];\n const allConsumedElements = new Set();\n const allSubElements = new Set();\n const allNewPlayers = instruction.timelines.map(timelineInstruction => {\n const element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n const details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried) return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n const isQueriedElement = element !== rootElement;\n const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY).map(p => p.getRealPlayer())).filter(p => {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n const pp = p;\n return pp.element ? pp.element === element : false;\n });\n const preStyles = preStylesMap.get(element);\n const postStyles = postStylesMap.get(element);\n const keyframes = normalizeKeyframes$1(this._normalizer, timelineInstruction.keyframes, preStyles, postStyles);\n const player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(player => {\n getOrSetDefaultValue(this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n });\n allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n const player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(() => {\n allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(element => {\n getOrSetDefaultValue(skippedPlayersMap, element, []).push(player);\n });\n return player;\n }\n _buildPlayer(instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n }\n}\nclass TransitionAnimationPlayer {\n constructor(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = new Map();\n this.destroyed = false;\n this.parentPlayer = null;\n this.markedForDestroy = false;\n this.disabled = false;\n this.queued = true;\n this.totalTime = 0;\n }\n setRealPlayer(player) {\n if (this._containsRealPlayer) return;\n this._player = player;\n this._queuedCallbacks.forEach((callbacks, phase) => {\n callbacks.forEach(callback => listenOnPlayer(player, phase, undefined, callback));\n });\n this._queuedCallbacks.clear();\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n }\n getRealPlayer() {\n return this._player;\n }\n overrideTotalTime(totalTime) {\n this.totalTime = totalTime;\n }\n syncPlayerEvents(player) {\n const p = this._player;\n if (p.triggerCallback) {\n player.onStart(() => p.triggerCallback('start'));\n }\n player.onDone(() => this.finish());\n player.onDestroy(() => this.destroy());\n }\n _queueEvent(name, callback) {\n getOrSetDefaultValue(this._queuedCallbacks, name, []).push(callback);\n }\n onDone(fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n }\n onStart(fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n }\n onDestroy(fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n }\n init() {\n this._player.init();\n }\n hasStarted() {\n return this.queued ? false : this._player.hasStarted();\n }\n play() {\n !this.queued && this._player.play();\n }\n pause() {\n !this.queued && this._player.pause();\n }\n restart() {\n !this.queued && this._player.restart();\n }\n finish() {\n this._player.finish();\n }\n destroy() {\n this.destroyed = true;\n this._player.destroy();\n }\n reset() {\n !this.queued && this._player.reset();\n }\n setPosition(p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n }\n getPosition() {\n return this.queued ? 0 : this._player.getPosition();\n }\n /** @internal */\n triggerCallback(phaseName) {\n const p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n }\n}\nfunction deleteOrUnsetInMap(map, key, value) {\n let currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n const oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n const cloakVals = [];\n elements.forEach(element => cloakVals.push(cloakElement(element)));\n const failedElements = [];\n elementPropsMap.forEach((props, element) => {\n const styles = new Map();\n props.forEach(prop => {\n const value = driver.computeStyle(element, prop, defaultStyle);\n styles.set(prop, value);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n let i = 0;\n elements.forEach(element => cloakElement(element, cloakVals[i++]));\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n const rootMap = new Map();\n roots.forEach(root => rootMap.set(root, []));\n if (nodes.length == 0) return rootMap;\n const NULL_NODE = 1;\n const nodeSet = new Set(nodes);\n const localRootMap = new Map();\n function getRoot(node) {\n if (!node) return NULL_NODE;\n let root = localRootMap.get(node);\n if (root) return root;\n const parent = node.parentNode;\n if (rootMap.has(parent)) {\n // ngIf inside @trigger\n root = parent;\n } else if (nodeSet.has(parent)) {\n // ngIf inside ngIf\n root = NULL_NODE;\n } else {\n // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach(node => {\n const root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nfunction addClass(element, className) {\n element.classList?.add(className);\n}\nfunction removeClass(element, className) {\n element.classList?.remove(className);\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\nfunction flattenGroupPlayers(players) {\n const finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (let i = 0; i < players.length; i++) {\n const player = players[i];\n if (player instanceof ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n } else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n const k1 = Object.keys(a);\n const k2 = Object.keys(b);\n if (k1.length != k2.length) return false;\n for (let i = 0; i < k1.length; i++) {\n const prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop]) return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n const postEntry = allPostStyleElements.get(element);\n if (!postEntry) return false;\n let preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach(data => preEntry.add(data));\n } else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\nclass AnimationEngine {\n constructor(doc, _driver, _normalizer) {\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => {};\n this._transitionEngine = new TransitionAnimationEngine(doc.body, _driver, _normalizer);\n this._timelineEngine = new TimelineAnimationEngine(doc.body, _driver, _normalizer);\n this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);\n }\n registerTrigger(componentId, namespaceId, hostElement, name, metadata) {\n const cacheKey = componentId + '-' + name;\n let trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw triggerBuildFailed(name, errors);\n }\n if (warnings.length) {\n warnTriggerBuild(name, warnings);\n }\n trigger = buildTrigger(name, ast, this._normalizer);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n }\n register(namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n }\n destroy(namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n }\n onInsert(namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n }\n onRemove(namespaceId, element, context) {\n this._transitionEngine.removeNode(namespaceId, element, context);\n }\n disableAnimations(element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n }\n process(namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(property);\n const args = value;\n this._timelineEngine.command(id, element, action, args);\n } else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n }\n listen(namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(eventName);\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n }\n flush(microtaskId = -1) {\n this._transitionEngine.flush(microtaskId);\n }\n get players() {\n return [...this._transitionEngine.players, ...this._timelineEngine.players];\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n afterFlushAnimationsDone(cb) {\n this._transitionEngine.afterFlushAnimationsDone(cb);\n }\n}\n\n/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n let startStyles = null;\n let endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n } else if (styles instanceof Map) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return startStyles || endStyles ? new SpecialCasedStyles(element, startStyles, endStyles) : null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nclass SpecialCasedStyles {\n static {\n this.initialStylesByElement = new WeakMap();\n }\n constructor(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n this._state = 0 /* SpecialCasedStylesState.Pending */;\n let initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, initialStyles = new Map());\n }\n this._initialStyles = initialStyles;\n }\n start() {\n if (this._state < 1 /* SpecialCasedStylesState.Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n finish() {\n this.start();\n if (this._state < 2 /* SpecialCasedStylesState.Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n destroy() {\n this.finish();\n if (this._state < 3 /* SpecialCasedStylesState.Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* SpecialCasedStylesState.Destroyed */;\n }\n }\n}\nfunction filterNonAnimatableStyles(styles) {\n let result = null;\n styles.forEach((val, prop) => {\n if (isNonAnimatableStyle(prop)) {\n result = result || new Map();\n result.set(prop, val);\n }\n });\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\nclass WebAnimationsPlayer {\n constructor(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n // the following original fns are persistent copies of the _onStartFns and _onDoneFns\n // and are used to reset the fns to their original values upon reset()\n // (since the _onStartFns and _onDoneFns get deleted after they are called)\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this.time = 0;\n this.parentPlayer = null;\n this.currentSnapshot = new Map();\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n }\n _buildPlayer() {\n if (this._initialized) return;\n this._initialized = true;\n const keyframes = this.keyframes;\n // @ts-expect-error overwriting a readonly property\n this.domPlayer = this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : new Map();\n const onFinish = () => this._onFinish();\n this.domPlayer.addEventListener('finish', onFinish);\n this.onDestroy(() => {\n // We must remove the `finish` event listener once an animation has completed all its\n // iterations. This action is necessary to prevent a memory leak since the listener captures\n // `this`, creating a closure that prevents `this` from being garbage collected.\n this.domPlayer.removeEventListener('finish', onFinish);\n });\n }\n _preparePlayerBeforeStart() {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n } else {\n this.domPlayer.pause();\n }\n }\n _convertKeyframesToObject(keyframes) {\n const kfs = [];\n keyframes.forEach(frame => {\n kfs.push(Object.fromEntries(frame));\n });\n return kfs;\n }\n /** @internal */\n _triggerWebAnimation(element, keyframes, options) {\n return element.animate(this._convertKeyframesToObject(keyframes), options);\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n play() {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n }\n pause() {\n this.init();\n this.domPlayer.pause();\n }\n finish() {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n }\n reset() {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n _resetDomPlayerState() {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n }\n restart() {\n this.reset();\n this.play();\n }\n hasStarted() {\n return this._started;\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n setPosition(p) {\n if (this.domPlayer === undefined) {\n this.init();\n }\n this.domPlayer.currentTime = p * this.time;\n }\n getPosition() {\n // tsc is complaining with TS2362 without the conversion to number\n return +(this.domPlayer.currentTime ?? 0) / this.time;\n }\n get totalTime() {\n return this._delay + this._duration;\n }\n beforeDestroy() {\n const styles = new Map();\n if (this.hasStarted()) {\n // note: this code is invoked only when the `play` function was called prior to this\n // (thus `hasStarted` returns true), this implies that the code that initializes\n // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here\n const finalKeyframe = this._finalKeyframe;\n finalKeyframe.forEach((val, prop) => {\n if (prop !== 'offset') {\n styles.set(prop, this._finished ? val : computeStyle(this.element, prop));\n }\n });\n }\n this.currentSnapshot = styles;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName === 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\nclass WebAnimationsDriver {\n validateStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return validateStyleProperty(prop);\n }\n return true;\n }\n validateAnimatableStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const cssProp = camelCaseToDashCase(prop);\n return validateWebAnimatableStyleProperty(cssProp);\n }\n return true;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return computeStyle(element, prop);\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = []) {\n const fill = delay == 0 ? 'both' : 'forwards';\n const playerOptions = {\n duration,\n delay,\n fill\n };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n const previousStyles = new Map();\n const previousWebAnimationPlayers = previousPlayers.filter(player => player instanceof WebAnimationsPlayer);\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach(player => {\n player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));\n });\n }\n let _keyframes = normalizeKeyframes(keyframes).map(styles => new Map(styles));\n _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);\n const specialStyles = packageNonAnimatableStyles(element, _keyframes);\n return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);\n }\n}\nfunction createEngine(type, doc) {\n // TODO: find a way to make this tree shakable.\n if (type === 'noop') {\n return new AnimationEngine(doc, new NoopAnimationDriver(), new NoopAnimationStyleNormalizer());\n }\n return new AnimationEngine(doc, new WebAnimationsDriver(), new WebAnimationsStyleNormalizer());\n}\nclass Animation {\n constructor(_driver, input) {\n this._driver = _driver;\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(_driver, input, errors, warnings);\n if (errors.length) {\n throw validationFailed(errors);\n }\n if (warnings.length) {\n warnValidation(warnings);\n }\n this._animationAst = ast;\n }\n buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {\n const start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) : startingStyles;\n const dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) : destinationStyles;\n const errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n const result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n throw buildingFailed(errors);\n }\n return result;\n }\n}\nconst ANIMATION_PREFIX = '@';\nconst DISABLE_ANIMATIONS_FLAG = '@.disabled';\nclass BaseAnimationRenderer {\n constructor(namespaceId, delegate, engine, _onDestroy) {\n this.namespaceId = namespaceId;\n this.delegate = delegate;\n this.engine = engine;\n this._onDestroy = _onDestroy;\n // We need to explicitly type this property because of an api-extractor bug\n // See https://github.com/microsoft/rushstack/issues/4390\n this.ɵtype = 0 /* AnimationRendererType.Regular */;\n }\n get data() {\n return this.delegate.data;\n }\n destroyNode(node) {\n this.delegate.destroyNode?.(node);\n }\n destroy() {\n this.engine.destroy(this.namespaceId, this.delegate);\n this.engine.afterFlushAnimationsDone(() => {\n // Call the renderer destroy method after the animations has finished as otherwise\n // styles will be removed too early which will cause an unstyled animation.\n queueMicrotask(() => {\n this.delegate.destroy();\n });\n });\n this._onDestroy?.();\n }\n createElement(name, namespace) {\n return this.delegate.createElement(name, namespace);\n }\n createComment(value) {\n return this.delegate.createComment(value);\n }\n createText(value) {\n return this.delegate.createText(value);\n }\n appendChild(parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, false);\n }\n insertBefore(parent, newChild, refChild, isMove = true) {\n this.delegate.insertBefore(parent, newChild, refChild);\n // If `isMove` true than we should animate this insert.\n this.engine.onInsert(this.namespaceId, newChild, parent, isMove);\n }\n removeChild(parent, oldChild, isHostElement) {\n this.engine.onRemove(this.namespaceId, oldChild, this.delegate);\n }\n selectRootElement(selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n parentNode(node) {\n return this.delegate.parentNode(node);\n }\n nextSibling(node) {\n return this.delegate.nextSibling(node);\n }\n setAttribute(el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n removeAttribute(el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n }\n addClass(el, name) {\n this.delegate.addClass(el, name);\n }\n removeClass(el, name) {\n this.delegate.removeClass(el, name);\n }\n setStyle(el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n }\n removeStyle(el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {\n this.disableAnimations(el, !!value);\n } else {\n this.delegate.setProperty(el, name, value);\n }\n }\n setValue(node, value) {\n this.delegate.setValue(node, value);\n }\n listen(target, eventName, callback) {\n return this.delegate.listen(target, eventName, callback);\n }\n disableAnimations(element, value) {\n this.engine.disableAnimations(element, value);\n }\n}\nclass AnimationRenderer extends BaseAnimationRenderer {\n constructor(factory, namespaceId, delegate, engine, onDestroy) {\n super(namespaceId, delegate, engine, onDestroy);\n this.factory = factory;\n this.namespaceId = namespaceId;\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX) {\n if (name.charAt(1) == '.' && name == DISABLE_ANIMATIONS_FLAG) {\n value = value === undefined ? true : !!value;\n this.disableAnimations(el, value);\n } else {\n this.engine.process(this.namespaceId, el, name.slice(1), value);\n }\n } else {\n this.delegate.setProperty(el, name, value);\n }\n }\n listen(target, eventName, callback) {\n if (eventName.charAt(0) == ANIMATION_PREFIX) {\n const element = resolveElementFromTarget(target);\n let name = eventName.slice(1);\n let phase = '';\n // @listener.phase is for trigger animation callbacks\n // @@listener is for animation builder callbacks\n if (name.charAt(0) != ANIMATION_PREFIX) {\n [name, phase] = parseTriggerCallbackName(name);\n }\n return this.engine.listen(this.namespaceId, element, name, phase, event => {\n const countId = event['_data'] || -1;\n this.factory.scheduleListenerCallback(countId, callback, event);\n });\n }\n return this.delegate.listen(target, eventName, callback);\n }\n}\nfunction resolveElementFromTarget(target) {\n switch (target) {\n case 'body':\n return document.body;\n case 'document':\n return document;\n case 'window':\n return window;\n default:\n return target;\n }\n}\nfunction parseTriggerCallbackName(triggerName) {\n const dotIndex = triggerName.indexOf('.');\n const trigger = triggerName.substring(0, dotIndex);\n const phase = triggerName.slice(dotIndex + 1);\n return [trigger, phase];\n}\nclass AnimationRendererFactory {\n constructor(delegate, engine, _zone) {\n this.delegate = delegate;\n this.engine = engine;\n this._zone = _zone;\n this._currentId = 0;\n this._microtaskId = 1;\n this._animationCallbacksBuffer = [];\n this._rendererCache = new Map();\n this._cdRecurDepth = 0;\n engine.onRemovalComplete = (element, delegate) => {\n // Note: if a component element has a leave animation, and a host leave animation,\n // the view engine will call `removeChild` for the parent\n // component renderer as well as for the child component renderer.\n // Therefore, we need to check if we already removed the element.\n const parentNode = delegate?.parentNode(element);\n if (parentNode) {\n delegate.removeChild(parentNode, element);\n }\n };\n }\n createRenderer(hostElement, type) {\n const EMPTY_NAMESPACE_ID = '';\n // cache the delegates to find out which cached delegate can\n // be used by which cached renderer\n const delegate = this.delegate.createRenderer(hostElement, type);\n if (!hostElement || !type?.data?.['animation']) {\n const cache = this._rendererCache;\n let renderer = cache.get(delegate);\n if (!renderer) {\n // Ensure that the renderer is removed from the cache on destroy\n // since it may contain references to detached DOM nodes.\n const onRendererDestroy = () => cache.delete(delegate);\n renderer = new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine, onRendererDestroy);\n // only cache this result when the base renderer is used\n cache.set(delegate, renderer);\n }\n return renderer;\n }\n const componentId = type.id;\n const namespaceId = type.id + '-' + this._currentId;\n this._currentId++;\n this.engine.register(namespaceId, hostElement);\n const registerTrigger = trigger => {\n if (Array.isArray(trigger)) {\n trigger.forEach(registerTrigger);\n } else {\n this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger);\n }\n };\n const animationTriggers = type.data['animation'];\n animationTriggers.forEach(registerTrigger);\n return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n }\n begin() {\n this._cdRecurDepth++;\n if (this.delegate.begin) {\n this.delegate.begin();\n }\n }\n _scheduleCountTask() {\n queueMicrotask(() => {\n this._microtaskId++;\n });\n }\n /** @internal */\n scheduleListenerCallback(count, fn, data) {\n if (count >= 0 && count < this._microtaskId) {\n this._zone.run(() => fn(data));\n return;\n }\n const animationCallbacksBuffer = this._animationCallbacksBuffer;\n if (animationCallbacksBuffer.length == 0) {\n queueMicrotask(() => {\n this._zone.run(() => {\n animationCallbacksBuffer.forEach(tuple => {\n const [fn, data] = tuple;\n fn(data);\n });\n this._animationCallbacksBuffer = [];\n });\n });\n }\n animationCallbacksBuffer.push([fn, data]);\n }\n end() {\n this._cdRecurDepth--;\n // this is to prevent animations from running twice when an inner\n // component does CD when a parent component instead has inserted it\n if (this._cdRecurDepth == 0) {\n this._zone.runOutsideAngular(() => {\n this._scheduleCountTask();\n this.engine.flush(this._microtaskId);\n });\n }\n if (this.delegate.end) {\n this.delegate.end();\n }\n }\n whenRenderingDone() {\n return this.engine.whenRenderingDone();\n }\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationDriver, NoopAnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationRenderer as ɵAnimationRenderer, AnimationRendererFactory as ɵAnimationRendererFactory, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, BaseAnimationRenderer as ɵBaseAnimationRenderer, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, camelCaseToDashCase as ɵcamelCaseToDashCase, containsElement as ɵcontainsElement, createEngine as ɵcreateEngine, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, normalizeKeyframes as ɵnormalizeKeyframes, validateStyleProperty as ɵvalidateStyleProperty, validateWebAnimatableStyleProperty as ɵvalidateWebAnimatableStyleProperty };\n","/**\n * @license Angular v18.0.2\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, RendererFactory2, NgZone, ANIMATION_MODULE_TYPE, NgModule, ɵperformanceMarkFeature } from '@angular/core';\nexport { ANIMATION_MODULE_TYPE } from '@angular/core';\nimport { ɵDomRendererFactory2, BrowserModule } from '@angular/platform-browser';\nimport * as i1 from '@angular/animations/browser';\nimport { ɵAnimationEngine, ɵWebAnimationsStyleNormalizer, ɵAnimationRendererFactory, ɵAnimationStyleNormalizer, AnimationDriver, ɵWebAnimationsDriver, NoopAnimationDriver } from '@angular/animations/browser';\nimport { DOCUMENT } from '@angular/common';\nclass InjectableAnimationEngine extends ɵAnimationEngine {\n // The `ApplicationRef` is injected here explicitly to force the dependency ordering.\n // Since the `ApplicationRef` should be created earlier before the `AnimationEngine`, they\n // both have `ngOnDestroy` hooks and `flush()` must be called after all views are destroyed.\n constructor(doc, driver, normalizer) {\n super(doc, driver, normalizer);\n }\n ngOnDestroy() {\n this.flush();\n }\n static {\n this.ɵfac = function InjectableAnimationEngine_Factory(t) {\n return new (t || InjectableAnimationEngine)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i1.AnimationDriver), i0.ɵɵinject(i1.ɵAnimationStyleNormalizer));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InjectableAnimationEngine,\n factory: InjectableAnimationEngine.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(InjectableAnimationEngine, [{\n type: Injectable\n }], () => [{\n type: Document,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: i1.AnimationDriver\n }, {\n type: i1.ɵAnimationStyleNormalizer\n }], null);\n})();\nfunction instantiateDefaultStyleNormalizer() {\n return new ɵWebAnimationsStyleNormalizer();\n}\nfunction instantiateRendererFactory(renderer, engine, zone) {\n return new ɵAnimationRendererFactory(renderer, engine, zone);\n}\nconst SHARED_ANIMATION_PROVIDERS = [{\n provide: ɵAnimationStyleNormalizer,\n useFactory: instantiateDefaultStyleNormalizer\n}, {\n provide: ɵAnimationEngine,\n useClass: InjectableAnimationEngine\n}, {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [ɵDomRendererFactory2, ɵAnimationEngine, NgZone]\n}];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nconst BROWSER_ANIMATIONS_PROVIDERS = [{\n provide: AnimationDriver,\n useFactory: () => new ɵWebAnimationsDriver()\n}, {\n provide: ANIMATION_MODULE_TYPE,\n useValue: 'BrowserAnimations'\n}, ...SHARED_ANIMATION_PROVIDERS];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nconst BROWSER_NOOP_ANIMATIONS_PROVIDERS = [{\n provide: AnimationDriver,\n useClass: NoopAnimationDriver\n}, {\n provide: ANIMATION_MODULE_TYPE,\n useValue: 'NoopAnimations'\n}, ...SHARED_ANIMATION_PROVIDERS];\n\n/**\n * Exports `BrowserModule` with additional dependency-injection providers\n * for use with animations. See [Animations](guide/animations).\n * @publicApi\n */\nclass BrowserAnimationsModule {\n /**\n * Configures the module based on the specified object.\n *\n * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.\n * @see {@link BrowserAnimationsModuleConfig}\n *\n * @usageNotes\n * When registering the `BrowserAnimationsModule`, you can use the `withConfig`\n * function as follows:\n * ```\n * @NgModule({\n * imports: [BrowserAnimationsModule.withConfig(config)]\n * })\n * class MyNgModule {}\n * ```\n */\n static withConfig(config) {\n return {\n ngModule: BrowserAnimationsModule,\n providers: config.disableAnimations ? BROWSER_NOOP_ANIMATIONS_PROVIDERS : BROWSER_ANIMATIONS_PROVIDERS\n };\n }\n static {\n this.ɵfac = function BrowserAnimationsModule_Factory(t) {\n return new (t || BrowserAnimationsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: BrowserAnimationsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n imports: [BrowserModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BrowserAnimationsModule, [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_ANIMATIONS_PROVIDERS\n }]\n }], null, null);\n})();\n/**\n * Returns the set of dependency-injection providers\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideAnimations() {\n ɵperformanceMarkFeature('NgEagerAnimations');\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideAnimations` call results in app code.\n return [...BROWSER_ANIMATIONS_PROVIDERS];\n}\n/**\n * A null player that must be imported to allow disabling of animations.\n * @publicApi\n */\nclass NoopAnimationsModule {\n static {\n this.ɵfac = function NoopAnimationsModule_Factory(t) {\n return new (t || NoopAnimationsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NoopAnimationsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n imports: [BrowserModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NoopAnimationsModule, [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS\n }]\n }], null, null);\n})();\n/**\n * Returns the set of dependency-injection providers\n * to disable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to bootstrap an application using\n * the `bootstrapApplication` function, but you need to disable animations\n * (for example, when running tests).\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideNoopAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideNoopAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideNoopAnimations` call results in app code.\n return [...BROWSER_NOOP_ANIMATIONS_PROVIDERS];\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BrowserAnimationsModule, NoopAnimationsModule, provideAnimations, provideNoopAnimations, InjectableAnimationEngine as ɵInjectableAnimationEngine };\n","import * as i0 from '@angular/core';\nimport { Pipe, EventEmitter, Component, Inject, Input, Output, NgModule } from '@angular/core';\nimport * as i3 from '@angular/forms';\nimport { FormGroup, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport * as i2 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nfunction NgOtpInputComponent_div_0_input_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"input\", 4, 0);\n i0.ɵɵlistener(\"paste\", function NgOtpInputComponent_div_0_input_1_Template_input_paste_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.handlePaste($event));\n })(\"keyup\", function NgOtpInputComponent_div_0_input_1_Template_input_keyup_0_listener($event) {\n const i_r3 = i0.ɵɵrestoreView(_r1).index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onKeyUp($event, i_r3));\n })(\"input\", function NgOtpInputComponent_div_0_input_1_Template_input_input_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onInput($event));\n })(\"keydown\", function NgOtpInputComponent_div_0_input_1_Template_input_keydown_0_listener($event) {\n const i_r3 = i0.ɵɵrestoreView(_r1).index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onKeyDown($event, i_r3));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r4 = ctx.$implicit;\n const i_r3 = ctx.index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵclassMapInterpolate1(\"otp-input \", ctx_r1.config.inputClass, \"\");\n i0.ɵɵproperty(\"pattern\", ctx_r1.config.allowNumbersOnly ? \"\\\\d*\" : \"\")(\"type\", ctx_r1.inputType)(\"placeholder\", (ctx_r1.config == null ? null : ctx_r1.config.placeholder) || \"\")(\"ngStyle\", ctx_r1.config.inputStyles)(\"formControl\", ctx_r1.otpForm.controls[item_r4])(\"id\", ctx_r1.getBoxId(i_r3));\n }\n}\nfunction NgOtpInputComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 2);\n i0.ɵɵtemplate(1, NgOtpInputComponent_div_0_input_1_Template, 2, 9, \"input\", 3);\n i0.ɵɵpipe(2, \"keys\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMapInterpolate1(\"ng-otp-input-wrapper wrapper \", ctx_r1.config.containerClass, \"\");\n i0.ɵɵpropertyInterpolate1(\"id\", \"c_\", ctx_r1.componentKey, \"\");\n i0.ɵɵproperty(\"ngStyle\", ctx_r1.config.containerStyles);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(2, 7, ctx_r1.otpForm == null ? null : ctx_r1.otpForm.controls));\n }\n}\nclass KeyboardUtil {\n static ifTab(event) {\n return this.ifKey(event, 'Tab');\n }\n static ifDelete(event) {\n return this.ifKey(event, 'Delete;Del');\n }\n static ifBackspace(event) {\n return this.ifKey(event, 'Backspace');\n }\n static ifRightArrow(event) {\n return this.ifKey(event, 'ArrowRight;Right');\n }\n static ifLeftArrow(event) {\n return this.ifKey(event, 'ArrowLeft;Left');\n }\n static ifSpacebar(event) {\n return this.ifKey(event, 'Spacebar; '); //don't remove the space after ; as this will check for space key\n }\n static ifKey(event, keys) {\n let keysToCheck = keys.split(';');\n return keysToCheck.some(k => k === event.key);\n }\n}\nclass KeysPipe {\n transform(value) {\n return Object.keys(value);\n }\n}\n/** @nocollapse */\nKeysPipe.ɵfac = function KeysPipe_Factory(t) {\n return new (t || KeysPipe)();\n};\n/** @nocollapse */\nKeysPipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"keys\",\n type: KeysPipe,\n pure: true\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(KeysPipe, [{\n type: Pipe,\n args: [{\n name: 'keys'\n }]\n }], null, null);\n})();\nclass NgOtpInputComponent {\n constructor(keysPipe, document) {\n this.keysPipe = keysPipe;\n this.document = document;\n this.config = {\n length: 4\n };\n // tslint:disable-next-line: no-output-on-prefix\n this.onInputChange = new EventEmitter();\n this.inputControls = new Array(this.config.length);\n this.componentKey = Math.random().toString(36).substring(2) + new Date().getTime().toString(36);\n }\n get inputType() {\n return this.config?.isPasswordInput ? 'password' : this.config?.allowNumbersOnly ? 'tel' : 'text';\n }\n ngOnInit() {\n this.otpForm = new FormGroup({});\n for (let index = 0; index < this.config.length; index++) {\n this.otpForm.addControl(this.getControlName(index), new FormControl());\n }\n this.otpForm.valueChanges.subscribe(v => {\n this.keysPipe.transform(this.otpForm.controls).forEach(k => {\n var val = this.otpForm.controls[k].value;\n if (val && val.length > 1) {\n if (val.length >= this.config.length) {\n this.setValue(val);\n } else {\n this.rebuildValue();\n }\n }\n });\n });\n }\n ngAfterViewInit() {\n if (!this.config.disableAutoFocus) {\n const containerItem = this.document.getElementById(`c_${this.componentKey}`);\n if (containerItem) {\n const ele = containerItem.getElementsByClassName('otp-input')[0];\n if (ele && ele.focus) {\n ele.focus();\n }\n }\n }\n }\n getControlName(idx) {\n return `ctrl_${idx}`;\n }\n onKeyDown($event, inputIdx) {\n const prevInputId = this.getBoxId(inputIdx - 1);\n const currentInputId = this.getBoxId(inputIdx);\n if (KeyboardUtil.ifSpacebar($event)) {\n $event.preventDefault();\n return false;\n }\n if (KeyboardUtil.ifBackspace($event)) {\n if (!$event.target.value) {\n this.clearInput(prevInputId, inputIdx - 1);\n this.setSelected(prevInputId);\n } else {\n this.clearInput(currentInputId, inputIdx);\n }\n this.rebuildValue();\n return;\n }\n }\n onInput($event) {\n let newVal = this.currentVal ? `${this.currentVal}${$event.target.value}` : $event.target.value;\n if (this.config.allowNumbersOnly && !this.validateNumber(newVal)) {\n $event.target.value = '';\n $event.stopPropagation();\n $event.preventDefault();\n return;\n }\n }\n onKeyUp($event, inputIdx) {\n if (KeyboardUtil.ifTab($event)) {\n inputIdx -= 1;\n }\n const nextInputId = this.getBoxId(inputIdx + 1);\n const prevInputId = this.getBoxId(inputIdx - 1);\n const currentInputId = this.getBoxId(inputIdx);\n if (KeyboardUtil.ifRightArrow($event)) {\n $event.preventDefault();\n this.setSelected(nextInputId);\n return;\n }\n if (KeyboardUtil.ifLeftArrow($event)) {\n $event.preventDefault();\n this.setSelected(prevInputId);\n return;\n }\n if (KeyboardUtil.ifDelete($event)) {\n if (!$event.target.value) {\n this.clearInput(prevInputId, inputIdx - 1);\n this.setSelected(prevInputId);\n } else {\n this.clearInput(currentInputId, inputIdx);\n }\n this.rebuildValue();\n return;\n }\n if (!$event.target.value) {\n return;\n }\n if (this.ifValidKeyCode($event)) {\n this.setSelected(nextInputId);\n }\n this.rebuildValue();\n }\n validateNumber(val) {\n return val && /^[0-9]+$/.test(val);\n }\n getBoxId(idx) {\n return `otp_${idx}_${this.componentKey}`;\n }\n clearInput(eleId, inputIdx) {\n let ctrlName = this.getControlName(inputIdx);\n this.otpForm.controls[ctrlName]?.setValue(null);\n const ele = this.document.getElementById(eleId);\n if (ele && ele instanceof HTMLInputElement) {\n ele.value = null;\n }\n }\n setSelected(eleId) {\n this.focusTo(eleId);\n const ele = this.document.getElementById(eleId);\n if (ele && ele.setSelectionRange) {\n setTimeout(() => {\n ele.setSelectionRange(0, 1);\n }, 0);\n }\n }\n ifValidKeyCode(event) {\n const inp = event.key;\n const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\n return isMobile || /[a-zA-Z0-9-_]/.test(inp);\n }\n focusTo(eleId) {\n const ele = this.document.getElementById(eleId);\n if (ele) {\n ele.focus();\n }\n }\n // method to set component value\n setValue(value) {\n if (this.config.allowNumbersOnly && isNaN(value)) {\n return;\n }\n this.otpForm.reset();\n if (!value) {\n this.rebuildValue();\n return;\n }\n value = value.toString().replace(/\\s/g, ''); // remove whitespace\n Array.from(value).forEach((c, idx) => {\n if (this.otpForm.get(this.getControlName(idx))) {\n this.otpForm.get(this.getControlName(idx)).setValue(c);\n }\n });\n if (!this.config.disableAutoFocus) {\n const containerItem = this.document.getElementById(`c_${this.componentKey}`);\n var indexOfElementToFocus = value.length < this.config.length ? value.length : this.config.length - 1;\n let ele = containerItem.getElementsByClassName('otp-input')[indexOfElementToFocus];\n if (ele && ele.focus) {\n ele.focus();\n }\n }\n this.rebuildValue();\n }\n rebuildValue() {\n let val = '';\n this.keysPipe.transform(this.otpForm.controls).forEach(k => {\n if (this.otpForm.controls[k].value) {\n let ctrlVal = this.otpForm.controls[k].value;\n let isLengthExceed = ctrlVal.length > 1;\n let isCaseTransformEnabled = !this.config.allowNumbersOnly && this.config.letterCase && (this.config.letterCase.toLocaleLowerCase() == 'upper' || this.config.letterCase.toLocaleLowerCase() == 'lower');\n ctrlVal = ctrlVal[0];\n let transformedVal = isCaseTransformEnabled ? this.config.letterCase.toLocaleLowerCase() == 'upper' ? ctrlVal.toUpperCase() : ctrlVal.toLowerCase() : ctrlVal;\n if (isCaseTransformEnabled && transformedVal == ctrlVal) {\n isCaseTransformEnabled = false;\n } else {\n ctrlVal = transformedVal;\n }\n val += ctrlVal;\n if (isLengthExceed || isCaseTransformEnabled) {\n this.otpForm.controls[k].setValue(ctrlVal);\n }\n }\n });\n if (this.formCtrl?.setValue) {\n this.formCtrl.setValue(val);\n }\n this.onInputChange.emit(val);\n this.currentVal = val;\n }\n handlePaste(e) {\n // Get pasted data via clipboard API\n let clipboardData = e.clipboardData || window['clipboardData'];\n if (clipboardData) {\n var pastedData = clipboardData.getData('Text');\n }\n // Stop data actually being pasted into div\n e.stopPropagation();\n e.preventDefault();\n if (!pastedData || this.config.allowNumbersOnly && !this.validateNumber(pastedData)) {\n return;\n }\n this.setValue(pastedData);\n }\n}\n/** @nocollapse */\nNgOtpInputComponent.ɵfac = function NgOtpInputComponent_Factory(t) {\n return new (t || NgOtpInputComponent)(i0.ɵɵdirectiveInject(KeysPipe), i0.ɵɵdirectiveInject(DOCUMENT));\n};\n/** @nocollapse */\nNgOtpInputComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgOtpInputComponent,\n selectors: [[\"ng-otp-input\"]],\n inputs: {\n config: \"config\",\n formCtrl: \"formCtrl\"\n },\n outputs: {\n onInputChange: \"onInputChange\"\n },\n decls: 1,\n vars: 1,\n consts: [[\"inp\", \"\"], [3, \"class\", \"id\", \"ngStyle\", 4, \"ngIf\"], [3, \"id\", \"ngStyle\"], [\"autocomplete\", \"one-time-code\", 3, \"pattern\", \"type\", \"placeholder\", \"ngStyle\", \"class\", \"formControl\", \"id\", \"paste\", \"keyup\", \"input\", \"keydown\", 4, \"ngFor\", \"ngForOf\"], [\"autocomplete\", \"one-time-code\", 3, \"paste\", \"keyup\", \"input\", \"keydown\", \"pattern\", \"type\", \"placeholder\", \"ngStyle\", \"formControl\", \"id\"]],\n template: function NgOtpInputComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgOtpInputComponent_div_0_Template, 3, 9, \"div\", 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.otpForm == null ? null : ctx.otpForm.controls);\n }\n },\n dependencies: [i2.NgIf, i2.NgStyle, i2.NgForOf, i3.DefaultValueAccessor, i3.PatternValidator, i3.NgControlStatus, i3.FormControlDirective, KeysPipe],\n styles: [\".otp-input[_ngcontent-%COMP%]{width:50px;height:50px;border-radius:4px;border:solid 1px #c5c5c5;text-align:center;font-size:32px}.ng-otp-input-wrapper[_ngcontent-%COMP%] .otp-input[_ngcontent-%COMP%]:not(:last-child){margin-right:8px}@media screen and (max-width: 767px){.otp-input[_ngcontent-%COMP%]{width:40px;font-size:24px;height:40px}}@media screen and (max-width: 420px){.otp-input[_ngcontent-%COMP%]{width:30px;font-size:18px;height:30px}}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgOtpInputComponent, [{\n type: Component,\n args: [{\n selector: 'ng-otp-input',\n template: \"
\\r\\n \\r\\n
\",\n styles: [\".otp-input{width:50px;height:50px;border-radius:4px;border:solid 1px #c5c5c5;text-align:center;font-size:32px}.ng-otp-input-wrapper .otp-input:not(:last-child){margin-right:8px}@media screen and (max-width: 767px){.otp-input{width:40px;font-size:24px;height:40px}}@media screen and (max-width: 420px){.otp-input{width:30px;font-size:18px;height:30px}}\\n\"]\n }]\n }], function () {\n return [{\n type: KeysPipe\n }, {\n type: Document,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, {\n config: [{\n type: Input\n }],\n onInputChange: [{\n type: Output\n }],\n formCtrl: [{\n type: Input\n }]\n });\n})();\nclass NgOtpInputModule {}\n/** @nocollapse */\nNgOtpInputModule.ɵfac = function NgOtpInputModule_Factory(t) {\n return new (t || NgOtpInputModule)();\n};\n/** @nocollapse */\nNgOtpInputModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgOtpInputModule\n});\n/** @nocollapse */\nNgOtpInputModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [KeysPipe],\n imports: [[CommonModule, FormsModule, ReactiveFormsModule]]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgOtpInputModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\n declarations: [NgOtpInputComponent, KeysPipe],\n exports: [NgOtpInputComponent],\n providers: [KeysPipe]\n }]\n }], null, null);\n})();\nclass Config {}\n\n/*\r\n * Public API Surface of ng-otp-input\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { NgOtpInputComponent, Config as NgOtpInputConfig, NgOtpInputModule };\n","import * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, Pipe, Component, ChangeDetectionStrategy, Optional, Inject, Input, ViewChild, NgModule, makeEnvironmentProviders } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport * as i1 from '@angular/platform-browser';\nimport { NgIf, NgFor, CommonModule } from '@angular/common';\nconst _c0 = [\"overlay\"];\nconst _c1 = [\"*\"];\nfunction NgxSpinnerComponent_div_0_div_2_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\");\n }\n}\nfunction NgxSpinnerComponent_div_0_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtemplate(1, NgxSpinnerComponent_div_0_div_2_div_1_Template, 1, 0, \"div\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵclassMap(ctx_r0.spinner.class);\n i0.ɵɵstyleProp(\"color\", ctx_r0.spinner.color);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r0.spinner.divArray);\n }\n}\nfunction NgxSpinnerComponent_div_0_div_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 7);\n i0.ɵɵpipe(1, \"safeHtml\");\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"innerHTML\", i0.ɵɵpipeBind1(1, 1, ctx_r0.template), i0.ɵɵsanitizeHtml);\n }\n}\nfunction NgxSpinnerComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 2, 0);\n i0.ɵɵtemplate(2, NgxSpinnerComponent_div_0_div_2_Template, 2, 5, \"div\", 3)(3, NgxSpinnerComponent_div_0_div_3_Template, 2, 3, \"div\", 4);\n i0.ɵɵelementStart(4, \"div\", 5);\n i0.ɵɵprojection(5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"background-color\", ctx_r0.spinner.bdColor)(\"z-index\", ctx_r0.spinner.zIndex)(\"position\", ctx_r0.spinner.fullScreen ? \"fixed\" : \"absolute\");\n i0.ɵɵproperty(\"@.disabled\", ctx_r0.disableAnimation)(\"@fadeIn\", \"in\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", !ctx_r0.template);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.template);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"z-index\", ctx_r0.spinner.zIndex);\n }\n}\nconst LOADERS = {\n \"ball-8bits\": 16,\n \"ball-atom\": 4,\n \"ball-beat\": 3,\n \"ball-circus\": 5,\n \"ball-climbing-dot\": 4,\n \"ball-clip-rotate\": 1,\n \"ball-clip-rotate-multiple\": 2,\n \"ball-clip-rotate-pulse\": 2,\n \"ball-elastic-dots\": 5,\n \"ball-fall\": 3,\n \"ball-fussion\": 4,\n \"ball-grid-beat\": 9,\n \"ball-grid-pulse\": 9,\n \"ball-newton-cradle\": 4,\n \"ball-pulse\": 3,\n \"ball-pulse-rise\": 5,\n \"ball-pulse-sync\": 3,\n \"ball-rotate\": 1,\n \"ball-running-dots\": 5,\n \"ball-scale\": 1,\n \"ball-scale-multiple\": 3,\n \"ball-scale-pulse\": 2,\n \"ball-scale-ripple\": 1,\n \"ball-scale-ripple-multiple\": 3,\n \"ball-spin\": 8,\n \"ball-spin-clockwise\": 8,\n \"ball-spin-clockwise-fade\": 8,\n \"ball-spin-clockwise-fade-rotating\": 8,\n \"ball-spin-fade\": 8,\n \"ball-spin-fade-rotating\": 8,\n \"ball-spin-rotate\": 2,\n \"ball-square-clockwise-spin\": 8,\n \"ball-square-spin\": 8,\n \"ball-triangle-path\": 3,\n \"ball-zig-zag\": 2,\n \"ball-zig-zag-deflect\": 2,\n cog: 1,\n \"cube-transition\": 2,\n fire: 3,\n \"line-scale\": 5,\n \"line-scale-party\": 5,\n \"line-scale-pulse-out\": 5,\n \"line-scale-pulse-out-rapid\": 5,\n \"line-spin-clockwise-fade\": 8,\n \"line-spin-clockwise-fade-rotating\": 8,\n \"line-spin-fade\": 8,\n \"line-spin-fade-rotating\": 8,\n pacman: 6,\n \"square-jelly-box\": 2,\n \"square-loader\": 1,\n \"square-spin\": 1,\n timer: 1,\n \"triangle-skew-spin\": 1\n};\nconst DEFAULTS = {\n BD_COLOR: \"rgba(51,51,51,0.8)\",\n SPINNER_COLOR: \"#fff\",\n Z_INDEX: 99999\n};\nconst PRIMARY_SPINNER = \"primary\";\nclass NgxSpinner {\n constructor(init) {\n Object.assign(this, init);\n }\n static create(init) {\n if (!init?.template && !init?.type) {\n console.warn(`[ngx-spinner]: Property \"type\" is missed. Please, provide animation type to component\n and ensure css is added to angular.json file`);\n }\n return new NgxSpinner(init);\n }\n}\nclass NgxSpinnerService {\n /**\n * Creates an instance of NgxSpinnerService.\n * @memberof NgxSpinnerService\n */\n constructor() {\n /**\n * Spinner observable\n *\n * @memberof NgxSpinnerService\n */\n // private spinnerObservable = new ReplaySubject(1);\n this.spinnerObservable = new BehaviorSubject(null);\n }\n /**\n * Get subscription of desired spinner\n * @memberof NgxSpinnerService\n **/\n getSpinner(name) {\n return this.spinnerObservable.asObservable().pipe(filter(x => x && x.name === name));\n }\n /**\n * To show spinner\n *\n * @memberof NgxSpinnerService\n */\n show(name = PRIMARY_SPINNER, spinner) {\n return new Promise((resolve, _reject) => {\n setTimeout(() => {\n if (spinner && Object.keys(spinner).length) {\n spinner[\"name\"] = name;\n this.spinnerObservable.next(new NgxSpinner({\n ...spinner,\n show: true\n }));\n resolve(true);\n } else {\n this.spinnerObservable.next(new NgxSpinner({\n name,\n show: true\n }));\n resolve(true);\n }\n }, 10);\n });\n }\n /**\n * To hide spinner\n *\n * @memberof NgxSpinnerService\n */\n hide(name = PRIMARY_SPINNER, debounce = 10) {\n return new Promise((resolve, _reject) => {\n setTimeout(() => {\n this.spinnerObservable.next(new NgxSpinner({\n name,\n show: false\n }));\n resolve(true);\n }, debounce);\n });\n }\n static {\n this.ɵfac = function NgxSpinnerService_Factory(t) {\n return new (t || NgxSpinnerService)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgxSpinnerService,\n factory: NgxSpinnerService.ɵfac,\n providedIn: \"root\"\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgxSpinnerService, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [], null);\n})();\nconst NGX_SPINNER_CONFIG = new InjectionToken(\"NGX_SPINNER_CONFIG\");\nclass SafeHtmlPipe {\n constructor(_sanitizer) {\n this._sanitizer = _sanitizer;\n }\n transform(v) {\n if (v) {\n return this._sanitizer.bypassSecurityTrustHtml(v);\n }\n }\n static {\n this.ɵfac = function SafeHtmlPipe_Factory(t) {\n return new (t || SafeHtmlPipe)(i0.ɵɵdirectiveInject(i1.DomSanitizer, 16));\n };\n }\n static {\n this.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"safeHtml\",\n type: SafeHtmlPipe,\n pure: true,\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SafeHtmlPipe, [{\n type: Pipe,\n args: [{\n name: \"safeHtml\",\n standalone: true\n }]\n }], () => [{\n type: i1.DomSanitizer\n }], null);\n})();\nclass NgxSpinnerComponent {\n // TODO: https://github.com/Napster2210/ngx-spinner/issues/259\n // @HostListener(\"document:keydown\", [\"$event\"])\n // handleKeyboardEvent(event: KeyboardEvent) {\n // if (this.spinnerDOM && this.spinnerDOM.nativeElement) {\n // if (\n // this.fullScreen ||\n // (!this.fullScreen && this.isSpinnerZone(event.target))\n // ) {\n // event.returnValue = false;\n // event.preventDefault();\n // }\n // }\n // }\n /**\n * Creates an instance of NgxSpinnerComponent.\n *\n * @memberof NgxSpinnerComponent\n */\n constructor(spinnerService, changeDetector, elementRef, globalConfig) {\n this.spinnerService = spinnerService;\n this.changeDetector = changeDetector;\n this.elementRef = elementRef;\n this.globalConfig = globalConfig;\n /**\n * To enable/disable animation\n *\n * @type {boolean}\n * @memberof NgxSpinnerComponent\n */\n this.disableAnimation = false;\n /**\n * Spinner Object\n *\n * @memberof NgxSpinnerComponent\n */\n this.spinner = new NgxSpinner();\n /**\n * Unsubscribe from spinner's observable\n *\n * @memberof NgxSpinnerComponent\n **/\n this.ngUnsubscribe = new Subject();\n /**\n * To set default ngx-spinner options\n *\n * @memberof NgxSpinnerComponent\n */\n this.setDefaultOptions = () => {\n const {\n type\n } = this.globalConfig ?? {};\n this.spinner = NgxSpinner.create({\n name: this.name,\n bdColor: this.bdColor,\n size: this.size,\n color: this.color,\n type: this.type ?? type,\n fullScreen: this.fullScreen,\n divArray: this.divArray,\n divCount: this.divCount,\n show: this.show,\n zIndex: this.zIndex,\n template: this.template,\n showSpinner: this.showSpinner\n });\n };\n this.bdColor = DEFAULTS.BD_COLOR;\n this.zIndex = DEFAULTS.Z_INDEX;\n this.color = DEFAULTS.SPINNER_COLOR;\n this.size = \"large\";\n this.fullScreen = true;\n this.name = PRIMARY_SPINNER;\n this.template = null;\n this.showSpinner = false;\n this.divArray = [];\n this.divCount = 0;\n this.show = false;\n }\n initObservable() {\n this.spinnerService.getSpinner(this.name).pipe(takeUntil(this.ngUnsubscribe)).subscribe(spinner => {\n this.setDefaultOptions();\n Object.assign(this.spinner, spinner);\n if (spinner.show) {\n this.onInputChange();\n }\n this.changeDetector.detectChanges();\n });\n }\n /**\n * Initialization method\n *\n * @memberof NgxSpinnerComponent\n */\n ngOnInit() {\n this.setDefaultOptions();\n this.initObservable();\n }\n /**\n * To check event triggers inside the Spinner Zone\n *\n * @param {*} element\n * @returns {boolean}\n * @memberof NgxSpinnerComponent\n */\n isSpinnerZone(element) {\n if (element === this.elementRef.nativeElement.parentElement) {\n return true;\n }\n return element.parentNode && this.isSpinnerZone(element.parentNode);\n }\n /**\n * On changes event for input variables\n *\n * @memberof NgxSpinnerComponent\n */\n ngOnChanges(changes) {\n for (const propName in changes) {\n if (propName) {\n const changedProp = changes[propName];\n if (changedProp.isFirstChange()) {\n return;\n } else if (typeof changedProp.currentValue !== \"undefined\" && changedProp.currentValue !== changedProp.previousValue) {\n if (changedProp.currentValue !== \"\") {\n this.spinner[propName] = changedProp.currentValue;\n if (propName === \"showSpinner\") {\n if (changedProp.currentValue) {\n this.spinnerService.show(this.spinner.name, this.spinner);\n } else {\n this.spinnerService.hide(this.spinner.name);\n }\n }\n if (propName === \"name\") {\n this.initObservable();\n }\n }\n }\n }\n }\n }\n /**\n * To get class for spinner\n *\n * @memberof NgxSpinnerComponent\n */\n getClass(type, size) {\n this.spinner.divCount = LOADERS[type];\n this.spinner.divArray = Array(this.spinner.divCount).fill(0).map((_, i) => i);\n let sizeClass = \"\";\n switch (size.toLowerCase()) {\n case \"small\":\n sizeClass = \"la-sm\";\n break;\n case \"medium\":\n sizeClass = \"la-2x\";\n break;\n case \"large\":\n sizeClass = \"la-3x\";\n break;\n default:\n break;\n }\n return \"la-\" + type + \" \" + sizeClass;\n }\n /**\n * Check if input variables have changed\n *\n * @memberof NgxSpinnerComponent\n */\n onInputChange() {\n this.spinner.class = this.getClass(this.spinner.type, this.spinner.size);\n }\n /**\n * Component destroy event\n *\n * @memberof NgxSpinnerComponent\n */\n ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n static {\n this.ɵfac = function NgxSpinnerComponent_Factory(t) {\n return new (t || NgxSpinnerComponent)(i0.ɵɵdirectiveInject(NgxSpinnerService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(NGX_SPINNER_CONFIG, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgxSpinnerComponent,\n selectors: [[\"ngx-spinner\"]],\n viewQuery: function NgxSpinnerComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.spinnerDOM = _t.first);\n }\n },\n inputs: {\n bdColor: \"bdColor\",\n size: \"size\",\n color: \"color\",\n type: \"type\",\n fullScreen: \"fullScreen\",\n name: \"name\",\n zIndex: \"zIndex\",\n template: \"template\",\n showSpinner: \"showSpinner\",\n disableAnimation: \"disableAnimation\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c1,\n decls: 1,\n vars: 1,\n consts: [[\"overlay\", \"\"], [\"class\", \"ngx-spinner-overlay\", 3, \"background-color\", \"z-index\", \"position\", 4, \"ngIf\"], [1, \"ngx-spinner-overlay\"], [3, \"class\", \"color\", 4, \"ngIf\"], [3, \"innerHTML\", 4, \"ngIf\"], [1, \"loading-text\"], [4, \"ngFor\", \"ngForOf\"], [3, \"innerHTML\"]],\n template: function NgxSpinnerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, NgxSpinnerComponent_div_0_Template, 6, 12, \"div\", 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.spinner.show);\n }\n },\n dependencies: [SafeHtmlPipe, NgIf, NgFor],\n styles: [\".ngx-spinner-overlay[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay[_ngcontent-%COMP%] > div[_ngcontent-%COMP%]:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text[_ngcontent-%COMP%]{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}\"],\n data: {\n animation: [trigger(\"fadeIn\", [state(\"in\", style({\n opacity: 1\n })), transition(\":enter\", [style({\n opacity: 0\n }), animate(300)]), transition(\":leave\", animate(200, style({\n opacity: 0\n })))])]\n },\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgxSpinnerComponent, [{\n type: Component,\n args: [{\n imports: [SafeHtmlPipe, NgIf, NgFor],\n standalone: true,\n selector: \"ngx-spinner\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [trigger(\"fadeIn\", [state(\"in\", style({\n opacity: 1\n })), transition(\":enter\", [style({\n opacity: 0\n }), animate(300)]), transition(\":leave\", animate(200, style({\n opacity: 0\n })))])],\n template: \"\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n\\n\",\n styles: [\".ngx-spinner-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ngx-spinner-overlay>div:not(.loading-text){top:50%;left:50%;margin:0;position:absolute;transform:translate(-50%,-50%)}.loading-text{position:absolute;top:60%;left:50%;transform:translate(-50%,-60%)}\\n\"]\n }]\n }], () => [{\n type: NgxSpinnerService\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: i0.ElementRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [NGX_SPINNER_CONFIG]\n }]\n }], {\n bdColor: [{\n type: Input\n }],\n size: [{\n type: Input\n }],\n color: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n fullScreen: [{\n type: Input\n }],\n name: [{\n type: Input\n }],\n zIndex: [{\n type: Input\n }],\n template: [{\n type: Input\n }],\n showSpinner: [{\n type: Input\n }],\n disableAnimation: [{\n type: Input\n }],\n spinnerDOM: [{\n type: ViewChild,\n args: [\"overlay\"]\n }]\n });\n})();\nclass NgxSpinnerModule {\n static forRoot(config) {\n return {\n ngModule: NgxSpinnerModule,\n providers: [{\n provide: NGX_SPINNER_CONFIG,\n useValue: config\n }]\n };\n }\n static {\n this.ɵfac = function NgxSpinnerModule_Factory(t) {\n return new (t || NgxSpinnerModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgxSpinnerModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgxSpinnerModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, NgxSpinnerComponent, SafeHtmlPipe],\n exports: [NgxSpinnerComponent]\n }]\n }], null, null);\n})();\nconst provideSpinnerConfig = config => {\n const providers = [{\n provide: NGX_SPINNER_CONFIG,\n useValue: config\n }];\n return makeEnvironmentProviders(providers);\n};\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DEFAULTS, LOADERS, NgxSpinner, NgxSpinnerComponent, NgxSpinnerModule, NgxSpinnerService, PRIMARY_SPINNER, provideSpinnerConfig };\n","import * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { forwardRef, Injectable, EventEmitter, booleanAttribute, numberAttribute, Component, ChangeDetectionStrategy, Input, Output, ViewChild, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, NgControl } from '@angular/forms';\nimport * as i3 from 'primeng/autofocus';\nimport { AutoFocusModule } from 'primeng/autofocus';\nimport * as i1 from 'primeng/api';\nconst _c0 = [\"input\"];\nconst _c1 = (a0, a1, a2, a3) => ({\n \"p-radiobutton p-component\": true,\n \"p-radiobutton-checked\": a0,\n \"p-radiobutton-disabled\": a1,\n \"p-radiobutton-focused\": a2,\n \"p-variant-filled\": a3\n});\nconst _c2 = (a0, a1, a2) => ({\n \"p-radiobutton-box\": true,\n \"p-highlight\": a0,\n \"p-disabled\": a1,\n \"p-focus\": a2\n});\nconst _c3 = (a0, a1, a2) => ({\n \"p-radiobutton-label\": true,\n \"p-radiobutton-label-active\": a0,\n \"p-disabled\": a1,\n \"p-radiobutton-label-focus\": a2\n});\nfunction RadioButton_label_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"label\", 7);\n i0.ɵɵlistener(\"click\", function RadioButton_label_6_Template_label_click_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r3 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r3.select($event));\n });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n const input_r2 = i0.ɵɵreference(3);\n i0.ɵɵclassMap(ctx_r3.labelStyleClass);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction3(6, _c3, input_r2.checked, ctx_r3.disabled, ctx_r3.focused));\n i0.ɵɵattribute(\"for\", ctx_r3.inputId)(\"data-pc-section\", \"label\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r3.label);\n }\n}\nconst RADIO_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioButton),\n multi: true\n};\nclass RadioControlRegistry {\n accessors = [];\n add(control, accessor) {\n this.accessors.push([control, accessor]);\n }\n remove(accessor) {\n this.accessors = this.accessors.filter(c => {\n return c[1] !== accessor;\n });\n }\n select(accessor) {\n this.accessors.forEach(c => {\n if (this.isSameGroup(c, accessor) && c[1] !== accessor) {\n c[1].writeValue(accessor.value);\n }\n });\n }\n isSameGroup(controlPair, accessor) {\n if (!controlPair[0].control) {\n return false;\n }\n return controlPair[0].control.root === accessor.control.control.root && controlPair[1].name === accessor.name;\n }\n static ɵfac = function RadioControlRegistry_Factory(t) {\n return new (t || RadioControlRegistry)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RadioControlRegistry,\n factory: RadioControlRegistry.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RadioControlRegistry, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n/**\n * RadioButton is an extension to standard radio button element with theming.\n * @group Components\n */\nclass RadioButton {\n cd;\n injector;\n registry;\n config;\n /**\n * Value of the radiobutton.\n * @group Props\n */\n value;\n /**\n * The name of the form control.\n * @group Props\n */\n formControlName;\n /**\n * Name of the radiobutton group.\n * @group Props\n */\n name;\n /**\n * When present, it specifies that the element should be disabled.\n * @group Props\n */\n disabled;\n /**\n * Label of the radiobutton.\n * @group Props\n */\n label;\n /**\n * Specifies the input variant of the component.\n * @group Props\n */\n variant = 'outlined';\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex;\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n inputId;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n ariaLabelledBy;\n /**\n * Used to define a string that labels the input element.\n * @group Props\n */\n ariaLabel;\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n /**\n * Style class of the label.\n * @group Props\n */\n labelStyleClass;\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n autofocus;\n /**\n * Callback to invoke on radio button click.\n * @param {RadioButtonClickEvent} event - Custom click event.\n * @group Emits\n */\n onClick = new EventEmitter();\n /**\n * Callback to invoke when the receives focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onFocus = new EventEmitter();\n /**\n * Callback to invoke when the loses focus.\n * @param {Event} event - Browser event.\n * @group Emits\n */\n onBlur = new EventEmitter();\n inputViewChild;\n onModelChange = () => {};\n onModelTouched = () => {};\n checked;\n focused;\n control;\n constructor(cd, injector, registry, config) {\n this.cd = cd;\n this.injector = injector;\n this.registry = registry;\n this.config = config;\n }\n ngOnInit() {\n this.control = this.injector.get(NgControl);\n this.checkName();\n this.registry.add(this.control, this);\n }\n handleClick(event, radioButton, focus) {\n event.preventDefault();\n if (this.disabled) {\n return;\n }\n this.select(event);\n if (focus) {\n radioButton.focus();\n }\n }\n select(event) {\n if (!this.disabled) {\n this.inputViewChild.nativeElement.checked = true;\n this.checked = true;\n this.onModelChange(this.value);\n this.registry.select(this);\n this.onClick.emit({\n originalEvent: event,\n value: this.value\n });\n }\n }\n writeValue(value) {\n this.checked = value == this.value;\n if (this.inputViewChild && this.inputViewChild.nativeElement) {\n this.inputViewChild.nativeElement.checked = this.checked;\n }\n this.cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onModelChange = fn;\n }\n registerOnTouched(fn) {\n this.onModelTouched = fn;\n }\n setDisabledState(val) {\n this.disabled = val;\n this.cd.markForCheck();\n }\n onInputFocus(event) {\n this.focused = true;\n this.onFocus.emit(event);\n }\n onInputBlur(event) {\n this.focused = false;\n this.onModelTouched();\n this.onBlur.emit(event);\n }\n /**\n * Applies focus to input field.\n * @group Method\n */\n focus() {\n this.inputViewChild.nativeElement.focus();\n }\n ngOnDestroy() {\n this.registry.remove(this);\n }\n checkName() {\n if (this.name && this.formControlName && this.name !== this.formControlName) {\n this.throwNameError();\n }\n if (!this.name && this.formControlName) {\n this.name = this.formControlName;\n }\n }\n throwNameError() {\n throw new Error(`\n If you define both a name and a formControlName attribute on your radio button, their values\n must match. Ex: \n `);\n }\n static ɵfac = function RadioButton_Factory(t) {\n return new (t || RadioButton)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(RadioControlRegistry), i0.ɵɵdirectiveInject(i1.PrimeNGConfig));\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: RadioButton,\n selectors: [[\"p-radioButton\"]],\n viewQuery: function RadioButton_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputViewChild = _t.first);\n }\n },\n hostAttrs: [1, \"p-element\"],\n inputs: {\n value: \"value\",\n formControlName: \"formControlName\",\n name: \"name\",\n disabled: [2, \"disabled\", \"disabled\", booleanAttribute],\n label: \"label\",\n variant: \"variant\",\n tabindex: [2, \"tabindex\", \"tabindex\", numberAttribute],\n inputId: \"inputId\",\n ariaLabelledBy: \"ariaLabelledBy\",\n ariaLabel: \"ariaLabel\",\n style: \"style\",\n styleClass: \"styleClass\",\n labelStyleClass: \"labelStyleClass\",\n autofocus: [2, \"autofocus\", \"autofocus\", booleanAttribute]\n },\n outputs: {\n onClick: \"onClick\",\n onFocus: \"onFocus\",\n onBlur: \"onBlur\"\n },\n features: [i0.ɵɵProvidersFeature([RADIO_VALUE_ACCESSOR]), i0.ɵɵInputTransformsFeature],\n decls: 7,\n vars: 31,\n consts: [[\"input\", \"\"], [3, \"click\", \"ngStyle\", \"ngClass\"], [1, \"p-hidden-accessible\"], [\"type\", \"radio\", \"pAutoFocus\", \"\", 3, \"focus\", \"blur\", \"checked\", \"disabled\", \"value\", \"autofocus\"], [3, \"ngClass\"], [1, \"p-radiobutton-icon\"], [3, \"class\", \"ngClass\", \"click\", 4, \"ngIf\"], [3, \"click\", \"ngClass\"]],\n template: function RadioButton_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵlistener(\"click\", function RadioButton_Template_div_click_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const input_r2 = i0.ɵɵreference(3);\n return i0.ɵɵresetView(ctx.handleClick($event, input_r2, true));\n });\n i0.ɵɵelementStart(1, \"div\", 2)(2, \"input\", 3, 0);\n i0.ɵɵlistener(\"focus\", function RadioButton_Template_input_focus_2_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onInputFocus($event));\n })(\"blur\", function RadioButton_Template_input_blur_2_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onInputBlur($event));\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(4, \"div\", 4);\n i0.ɵɵelement(5, \"span\", 5);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(6, RadioButton_label_6_Template, 2, 10, \"label\", 6);\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngStyle\", ctx.style)(\"ngClass\", i0.ɵɵpureFunction4(22, _c1, ctx.checked, ctx.disabled, ctx.focused, ctx.variant === \"filled\" || ctx.config.inputStyle() === \"filled\"));\n i0.ɵɵattribute(\"data-pc-name\", \"radiobutton\")(\"data-pc-section\", \"root\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"data-pc-section\", \"hiddenInputWrapper\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"checked\", ctx.checked)(\"disabled\", ctx.disabled)(\"value\", ctx.value)(\"autofocus\", ctx.autofocus);\n i0.ɵɵattribute(\"id\", ctx.inputId)(\"name\", ctx.name)(\"aria-labelledby\", ctx.ariaLabelledBy)(\"aria-label\", ctx.ariaLabel)(\"tabindex\", ctx.tabindex)(\"aria-checked\", ctx.checked)(\"data-pc-section\", \"hiddenInput\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction3(27, _c2, ctx.checked, ctx.disabled, ctx.focused));\n i0.ɵɵattribute(\"data-pc-section\", \"input\");\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"data-pc-section\", \"icon\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.label);\n }\n },\n dependencies: [i2.NgClass, i2.NgIf, i2.NgStyle, i3.AutoFocus],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RadioButton, [{\n type: Component,\n args: [{\n selector: 'p-radioButton',\n template: `\n \n
\n \n
\n
\n \n
\n \n {{ label }}\n `,\n providers: [RADIO_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'p-element'\n }\n }]\n }], () => [{\n type: i0.ChangeDetectorRef\n }, {\n type: i0.Injector\n }, {\n type: RadioControlRegistry\n }, {\n type: i1.PrimeNGConfig\n }], {\n value: [{\n type: Input\n }],\n formControlName: [{\n type: Input\n }],\n name: [{\n type: Input\n }],\n disabled: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n label: [{\n type: Input\n }],\n variant: [{\n type: Input\n }],\n tabindex: [{\n type: Input,\n args: [{\n transform: numberAttribute\n }]\n }],\n inputId: [{\n type: Input\n }],\n ariaLabelledBy: [{\n type: Input\n }],\n ariaLabel: [{\n type: Input\n }],\n style: [{\n type: Input\n }],\n styleClass: [{\n type: Input\n }],\n labelStyleClass: [{\n type: Input\n }],\n autofocus: [{\n type: Input,\n args: [{\n transform: booleanAttribute\n }]\n }],\n onClick: [{\n type: Output\n }],\n onFocus: [{\n type: Output\n }],\n onBlur: [{\n type: Output\n }],\n inputViewChild: [{\n type: ViewChild,\n args: ['input']\n }]\n });\n})();\nclass RadioButtonModule {\n static ɵfac = function RadioButtonModule_Factory(t) {\n return new (t || RadioButtonModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: RadioButtonModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, AutoFocusModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(RadioButtonModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule, AutoFocusModule],\n exports: [RadioButton],\n declarations: [RadioButton]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { RADIO_VALUE_ACCESSOR, RadioButton, RadioButtonModule, RadioControlRegistry };\n","import { Component, OnInit} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { OnlineApplicationMode } from '../../applicant/models/online-application-mode';\r\nimport { FormDataService } from '../../applicant/service/form-data.service';\r\nimport { DisclosureType } from '../../models/disclosure-consent-type';\r\nimport { MediaLayoutService } from '../../service/media.layout.service';\r\nimport { SharedService } from '../../service/shared.service';\r\n\r\n@Component({\r\n selector: 'register-complete',\r\n templateUrl: './registercomplete.component.html',\r\n styleUrls: ['./registercomplete.component.scss']\r\n})\r\nexport class RegisterCompleteComponent implements OnInit {\r\n\r\n OnlineApplicationMode: typeof OnlineApplicationMode = OnlineApplicationMode;\r\n public DisclosureType: typeof DisclosureType = DisclosureType;\r\n public isMobileDevice: boolean = false;\r\n public activIndex: string;\r\n\r\n constructor(private modalService: NgbModal, private router: Router,\r\n private formDataService: FormDataService,\r\n private sharedService: SharedService,public activeModal: NgbActiveModal, public P_MediaLayoutService: MediaLayoutService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n navigateToPreapplication() {\r\n this.activeModal.close();\r\n this.formDataService.setApplicationMode(this.OnlineApplicationMode.ONLINE_FRESH_APPLICATION);\r\n this.sharedService.getLoggedInInfo.emit(true);\r\n this.router.navigate(['productselection']);\r\n }\r\n ngAfterViewInit() {\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \"Responsive\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Press Continue to Apply

\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SharedService } from '../service/shared.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\n\r\n@Component({\r\n selector: 'app-how-it-works',\r\n templateUrl: './how-it-works.component.html',\r\n styleUrls: ['./how-it-works.component.scss'],\r\n providers: [provideTranslocoScope({scope:'how-it-works', alias:'howItWorks'})]\r\n})\r\nexport class HowItWorksComponent implements OnInit {\r\n\r\n public work: any[]\r\n constructor(public activeModal: NgbActiveModal, private _sharedService: SharedService) { }\r\n\r\n ngOnInit(): void {\r\n this.work = [{\r\n \"image\": 'register.png',\r\n \"name\": \"howItWorks.howItWorks.registerName\",\r\n \"description\":\"howItWorks.howItWorks.registerDesc\"\r\n },\r\n {\r\n \"image\": 'lender.png',\r\n \"name\": \"howItWorks.howItWorks.paymentProvidersName\",\r\n \"description\": \"howItWorks.howItWorks.paymentProvidersDesc\"\r\n },\r\n {\r\n \"image\": 'product.png',\r\n \"name\": \"howItWorks.howItWorks.selectProductName\",\r\n \"description\": \"howItWorks.howItWorks.selectProductDesc\"\r\n },\r\n {\r\n \"image\": 'e-sign.png',\r\n \"name\": \"howItWorks.howItWorks.eSignName\",\r\n \"description\": \"howItWorks.howItWorks.eSignDesc\"\r\n },\r\n {\r\n \"image\": 'e-sign.png',\r\n \"name\": \"howItWorks.howItWorks.finalizeName\",\r\n \"description\": \"howItWorks.howItWorks.finalizeDesc\"\r\n } ]\r\n }\r\n\r\n Close() {\r\n this.activeModal.close();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n
\r\n
{{'howItWorks.howItWorks.heading'|transloco}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n

{{work.name|transloco}}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n","import { Directive, ElementRef } from '@angular/core';\r\nimport { CustomTranslocoService } from '../service/transloco.service';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[allowLanguageCharacters]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: AlphabetsWithLanguageDirective, multi: true }]\r\n})\r\nexport class AlphabetsWithLanguageDirective implements Validator {\r\n\r\n constructor(private el: ElementRef, private validationService: CustomTranslocoService) { }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n if (!control.value) {\r\n return null; // Handle empty value case as needed\r\n }\r\n\r\n const validInput = this.validationService.validateInputMask(control.value);\r\n if (validInput !== control.value) {\r\n control.setValue(validInput); // Set the valid part of the input\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Directive, EventEmitter, HostListener, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { Subject, Subscription} from 'rxjs';\r\n\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\n\r\n@Directive({\r\n selector: '[appDebounceClick]'\r\n})\r\nexport class DebounceClickDirective {\r\n @Input() debounceTime = 500;\r\n @Output() debounceClick = new EventEmitter();\r\n private clicks = new Subject();\r\n private subscription: Subscription;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.subscription = this.clicks.pipe(debounceTime(this.debounceTime)).subscribe(e => this.debounceClick.emit(e));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription.unsubscribe();\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n clickEvent(event:any) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.clicks.next(event);\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, HostListener, Injectable, OnInit, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { CreateApplicantRequest } from '../../applicant/models/create-applicant-request';\r\nimport { MediaLayoutService } from '../../service/media.layout.service';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { ApplicantService } from 'src/app/applicant/service/applicant-service';\r\nimport { FormDataService } from 'src/app/applicant/service/form-data.service';\r\nimport { OnlineApplicationSource } from 'src/app/applicant/models/online-application-source';\r\nimport { isNullOrUndefined } from 'is-what';\r\nimport { OnlineApplicationMode } from '../../applicant/models/online-application-mode';\r\nimport { ApplicantFormData } from '../../applicant/models/applicant-form-data';\r\nimport { ConfirmationBox } from '../../shared/components/confirmation-box/confirmation-box.model';\r\nimport { EmailSSNValidationType } from '../../shared/enum/email-ssn-validation-type-enum';\r\nimport { AuthService } from '../../service/auth.service';\r\nimport { ApiResponse } from \"../../applicant/models/api-response\";\r\nimport { ConfirmationBoxService } from '../../shared/components/confirmation-box/confirmation-box.service';\r\nimport { Constants } from '../../shared/constant';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { RegisterCompleteComponent } from '../registercomplete/registercomplete.component';\r\nimport { environment } from '../../../environments/environment';\r\nimport { LeadDetails } from '../../models/lead-details';\r\nimport { Location } from '@angular/common';\r\nimport { HowItWorksComponent } from '../../how-it-works/how-it-works.component';\r\nimport { IFramePostMessage } from '../../applicant/models/iframe-post-message';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\ndeclare const fbq: any;\r\ndeclare const gtm: any;\r\ndeclare const nid: any;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\n@Component({\r\n selector: 'app-register',\r\n templateUrl: './register.component.html',\r\n styleUrls: ['./register.component.scss'],\r\n providers: [provideTranslocoScope({ scope: 'register' })]\r\n})\r\n\r\nexport class RegisterComponent implements OnInit {\r\n\r\n @Output() activeTabs = new EventEmitter();\r\n @HostListener('window:resize', [])\r\n public onResize() {\r\n this.checkScreenSize();\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n\r\n OnlineApplicationMode: typeof OnlineApplicationMode = OnlineApplicationMode;\r\n public applicantFormData: ApplicantFormData;\r\n public formData: CreateApplicantRequest;\r\n private applicationSource: OnlineApplicationSource;\r\n public display: boolean = false;\r\n public isInvalid: boolean = false;\r\n isMobileDevice: boolean = false;\r\n private leadDetails: LeadDetails;\r\n public isWrongAddressLine2 = false;\r\n public showFirstNameError: boolean = false;\r\n public showLastNameError: boolean = false;\r\n public emailID: any;\r\n public activIndex: string;\r\n public ssnMissMatchFoundInSystem: string;\r\n public emialMissMatchFoundInSystem: string;\r\n public emailSSNMatchForSameApplication: string;\r\n public emailSSNMatchForDifferentApplication: string;\r\n public loginConfirmationButton: string;\r\n public cancelConfirmationButton: string;\r\n public helpConfirmationButton: string;\r\n public confirmationAlertLabel: string;\r\n public ssnEmailMissMatch: string;\r\n public isDisabled: boolean = false;\r\n\r\n constructor(private router: Router,\r\n public P_MediaLayoutService: MediaLayoutService,\r\n public applicantService: ApplicantService,\r\n private formDataService: FormDataService,\r\n private sharedService: SharedService,\r\n private _authService: AuthService,\r\n private modalService: NgbModal,\r\n private _confirmationBoxService: ConfirmationBoxService,\r\n private location: Location,\r\n private translocoService: CustomTranslocoService) { }\r\n\r\n ngOnInit(): void {\r\n nid('setLinkedSiteId', 'form_palms436');\r\n this.formData = new CreateApplicantRequest();\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n this.formData.Email = this.sharedService.getEmailData();\r\n this.applicationSource = this.formDataService.getApplicationSource();\r\n this.formData.SourceId = !isNullOrUndefined(this.applicationSource.SourceId) ? this.applicationSource.SourceId : null;\r\n this.formData.SourceTypeId = !isNullOrUndefined(this.applicationSource.SourceTypeId) ? this.applicationSource.SourceTypeId : null;\r\n this.formData.LeadId = this.applicationSource.LeadId;\r\n if (!isNaN(this.checkNumber(this.applicationSource.LeadId))) {\r\n\r\n this.applicantService.getLeadDetails(this.applicationSource.LeadId).subscribe((response => {\r\n if (response.IsSuccess) {\r\n this.leadDetails = response.Result[0];\r\n this.formData.Email = this.leadDetails.Email;\r\n this.formData.FirstName = this.leadDetails.FirstName;\r\n this.formData.LastName = this.leadDetails.LastName;\r\n this.formData.CellNumber = this.leadDetails.PhoneNumber;\r\n }\r\n }), (error => {\r\n console.log(error);\r\n }));\r\n }\r\n }\r\n\r\n\r\n firstNameKeyDown(event: any) {\r\n const firstNameIsWhitespace = (event.key).trim().length === 0;\r\n if (firstNameIsWhitespace == false) {\r\n this.showFirstNameError = false;\r\n }\r\n }\r\n lastNameKeyDown(event: any) {\r\n const lastNameIsWhitespace = (event.key).trim().length === 0;\r\n if (lastNameIsWhitespace == false) {\r\n this.showLastNameError = false;\r\n }\r\n }\r\n apply(form: any): void {\r\n this.isDisabled = true;\r\n if (this.formData.FirstName !== undefined) {\r\n var firstNameIsWhitespace: any = this.formData.FirstName.trim()\r\n }\r\n if ((firstNameIsWhitespace !== undefined || firstNameIsWhitespace !== null) && (firstNameIsWhitespace == 0)) {\r\n this.showFirstNameError = true;\r\n }\r\n if (this.formData.FirstName !== undefined) {\r\n var lastNameIsWhitespace: any = this.formData.LastName.trim()\r\n }\r\n if ((lastNameIsWhitespace !== undefined || lastNameIsWhitespace !== null) && (lastNameIsWhitespace == 0)) {\r\n this.showLastNameError = true;\r\n }\r\n if (form.invalid || lastNameIsWhitespace == 0 || firstNameIsWhitespace == 0) {\r\n this.isInvalid = true;\r\n this.isDisabled = false;\r\n return;\r\n }\r\n\r\n fbq('trackCustom', 'PreApplicationContinue', { tagId: '119' });\r\n if (environment.googleTagsEnabled) {\r\n gtm.push({ 'event': 'PreApplicationContinue', \"tagId\": '119' });\r\n }\r\n if (form.valid) {\r\n this.validateUser(this.formData);\r\n }\r\n }\r\n\r\n public openRegisterComplete() {\r\n const modalRef = this.modalService.open(RegisterCompleteComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n\r\n }\r\n checkScreenSize() {\r\n this.isMobileDevice = window.innerWidth <= 600;\r\n }\r\n\r\n //#region validateUser Start\r\n public validateUser(formData: CreateApplicantRequest): void {\r\n //Selected language retrieves text from the loaded language JSON file using the Transloco service in the translate method.\r\n this.ssnMissMatchFoundInSystem = this.translocoService.translate('register.register.validateUserMessages.ssnMissMatchFoundInSystem');\r\n this.emialMissMatchFoundInSystem = this.translocoService.translate('register.register.validateUserMessages.emialMissMatchFoundInSystem');\r\n this.emailSSNMatchForSameApplication = this.translocoService.translate('register.register.validateUserMessages.emailSSNMatchForSameApplication');\r\n this.emailSSNMatchForDifferentApplication = this.translocoService.translate('register.register.validateUserMessages.emailSSNMatchForDifferentApplication');\r\n this.loginConfirmationButton = this.translocoService.translate('register.register.validateUserMessages.confirmationButtonCtl.loginButtonLabel');\r\n this.cancelConfirmationButton = this.translocoService.translate('register.register.validateUserMessages.confirmationButtonCtl.cancelButtonLabel');\r\n this.helpConfirmationButton = this.translocoService.translate('register.register.validateUserMessages.confirmationButtonCtl.helpButtonLabel');\r\n this.confirmationAlertLabel = this.translocoService.translate('register.register.validateUserMessages.confirmationAlertLabel');\r\n this.ssnEmailMissMatch = this.translocoService.translate('register.register.validateUserMessages.ssnEmailMissMatch');\r\n\r\n //for binding error language json file from backenAPI.\r\n // eg. formData.LanguageKey + 'errorMessage' + LanguageMessageCode (backend responce key)\r\n formData.LanguageKey = \"register.register.toastMessageCtrl\";\r\n var vm = this;\r\n //this.formData.PermissionToSendText = false;\r\n this._authService.validateUser(formData)\r\n .subscribe((data: ApiResponse) => {\r\n if (data.IsSuccess) {\r\n this.isDisabled = false;\r\n this.applicationSource = this.formDataService.getApplicationSource();\r\n this.formData.SourceId = !isNullOrUndefined(this.applicationSource.SourceId) ? this.applicationSource.SourceId : null;\r\n this.formData.SourceTypeId = !isNullOrUndefined(this.applicationSource.SourceTypeId) ? this.applicationSource.SourceTypeId : null;\r\n this.formData.LeadId = this.applicationSource.LeadId;\r\n this.applicantFormData = new ApplicantFormData();\r\n this.applicantFormData = this.formDataService.getFormData();\r\n if (!isNullOrUndefined(this.applicantFormData)) {\r\n this.applicantFormData.UserName = this.formData.Email;\r\n this.applicantFormData.IsLoggedIn = false;\r\n this.applicantFormData.CellNumber = this.formData.CellNumber;\r\n this.applicantFormData.FirstName = this.formData.FirstName;\r\n this.applicantFormData.LastName = this.formData.LastName;\r\n }\r\n this.formData.LanguageKey = 'register.register.toastMessageCtrl';\r\n this.applicantFormData.LeadID = this.applicationSource.LeadId;\r\n this.formDataService.setFormData(this.applicantFormData);\r\n\r\n this.formData.PreferredLanguageID = this.translocoService.getCurrentLanguage();\r\n this.applicantService.createNewApplicant(this.formData).subscribe((response => {\r\n if (response.IsSuccess) {\r\n this.sharedService.getLoggedInInfo.emit(true);\r\n this.display = true;\r\n // this.formDataService.setRoutePath(\"register\");\r\n this.formDataService.setApplicationMode(this.OnlineApplicationMode.ONLINE_FRESH_APPLICATION);\r\n this.router.navigate(['productselection']);\r\n }\r\n }), (error => {\r\n this.isDisabled = false;\r\n console.log(error);\r\n }));\r\n }\r\n if (!data.IsSuccess && data.Result == 'User is inactive') {\r\n this.isDisabled = false;\r\n return;\r\n }\r\n if (!data.IsSuccess) {\r\n this.isDisabled = false;\r\n let validationResult = data.Result;\r\n let confirmBox: ConfirmationBox = new ConfirmationBox('', '', false, false, false, true, this.loginConfirmationButton, '', '', this.helpConfirmationButton);\r\n switch (+validationResult) {\r\n case EmailSSNValidationType.SSN_MISMATCH_FOUND_IN_SYSTEM:\r\n confirmBox = new ConfirmationBox(this.confirmationAlertLabel, this.ssnMissMatchFoundInSystem,\r\n true, true, false, true, this.loginConfirmationButton, this.cancelConfirmationButton, '', this.helpConfirmationButton);\r\n break;\r\n case EmailSSNValidationType.EMAIL_MISMATCH_FOUND_IN_SYSTEM:\r\n confirmBox = new ConfirmationBox(this.confirmationAlertLabel, this.emialMissMatchFoundInSystem,\r\n true, true, false, true, this.loginConfirmationButton, this.cancelConfirmationButton, '', this.helpConfirmationButton);\r\n break;\r\n case EmailSSNValidationType.EMAIL_SSN_MATCH_FOR_SAME_APPLICANT:\r\n confirmBox = new ConfirmationBox(this.confirmationAlertLabel, this.emailSSNMatchForSameApplication,\r\n true, false, false, true, this.loginConfirmationButton, '', '', this.helpConfirmationButton);\r\n break;\r\n case EmailSSNValidationType.EMAIL_SSN_MATCH_FOR_DIFFERENT_APPLICANT:\r\n confirmBox = new ConfirmationBox(this.confirmationAlertLabel, this.emailSSNMatchForDifferentApplication,\r\n true, true, false, true, this.loginConfirmationButton, this.cancelConfirmationButton, '', this.helpConfirmationButton);\r\n break;\r\n }\r\n\r\n // start post msg for this validation to merchant\r\n let iframePostMessage = new IFramePostMessage()\r\n iframePostMessage.type = \"tfc-validation\";\r\n iframePostMessage.message = this.ssnEmailMissMatch;\r\n iframePostMessage.isSuccess = data.IsSuccess;\r\n iframePostMessage.result = null;\r\n window.parent.postMessage(JSON.stringify(iframePostMessage), \"*\");\r\n console.log(JSON.stringify(iframePostMessage));\r\n // end post msg for this validation to merchant\r\n\r\n this._confirmationBoxService.Open(confirmBox, \"md\").then((result) => {\r\n if (result == true) {\r\n if (window.innerWidth <= 600) {\r\n this.router.navigate(['login']);\r\n }\r\n else {\r\n window.location.reload();\r\n }\r\n }\r\n else if (result == null) {\r\n //vm.resetPreApplicationData();\r\n window.open(Constants.HELP_PAGE_URL, \"_blank\");\r\n }\r\n else\r\n return;\r\n });\r\n }\r\n }),\r\n ((error: any) => {\r\n this.isDisabled = false;\r\n console.log(error);\r\n })\r\n\r\n }\r\n\r\n //#endregion validateUser End\r\n\r\n //#region resetPreApplicationData Start\r\n private resetPreApplicationData(): void {\r\n this.formData = new CreateApplicantRequest();\r\n //this.formDataService.setFormData(this.formData);\r\n }\r\n //#endregion resetPreApplicationData Start\r\n\r\n private checkNumber(input: string): number {\r\n\r\n if (!input) return NaN;\r\n\r\n if (input.trim().length == 0) {\r\n return NaN;\r\n }\r\n return Number(input);\r\n }\r\n\r\n public openHowItWork() {\r\n const modalRef = this.modalService.open(HowItWorksComponent, { size: 'md', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) {\r\n }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n public NavigateToHome() {\r\n var sourceData = this.formDataService.getApplicationSource();\r\n if (sourceData.SourceId != undefined && sourceData.SourceId != null && sourceData.SourceTypeId != undefined && sourceData.SourceTypeId != null) {\r\n if (this.isMobileDevice) {\r\n window.location.href = '/onlineApplication/preApplication?source=' + sourceData.SourceTypeId + '&identifier=' + sourceData.SourceId;\r\n }\r\n else {\r\n this.activIndex = \"email\";\r\n this.activeTabs.emit(this.activIndex);\r\n window.location.href = '/onlineApplication/preApplication?source=' + sourceData.SourceTypeId + '&identifier=' + sourceData.SourceId;\r\n }\r\n }\r\n else {\r\n if (this.isMobileDevice) {\r\n this.router.navigate(['']);\r\n }\r\n else {\r\n this.activIndex = \"email\";\r\n this.activeTabs.emit(this.activIndex);\r\n }\r\n }\r\n }\r\n ngAfterViewInit() {\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {{'register.register.firstNameCtrl.requiredError'|transloco}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {{'register.register.lastNameCtrl.requiredError'|transloco}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'register.register.cellPhoneCtrl.requiredError'|transloco}}\r\n {{'register.register.cellPhoneCtrl.minLengthError'|transloco}}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{'register.register.sendTextCtrl.requiredError'|transloco}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {{'register.register.emailIdCtrl.requiredError'|transloco}}\r\n {{'register.register.emailIdCtrl.patternError'|transloco}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'register.register.ssnCtrl.requiredError'|transloco}}\r\n {{'register.register.ssnCtrl.minLengthError'|transloco}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {{'register.register.ssnCtrl.text'|transloco}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MediaLayoutService } from '../../../../service/media.layout.service';\r\n\r\n@Component({\r\n selector: 'app-cc-lender-consent-aff-arbitration',\r\n templateUrl: './cc-lender-consent-aff-arbitration.component.html',\r\n styleUrls: ['./cc-lender-consent-aff-arbitration.component.scss']\r\n})\r\nexport class CcLenderConsentAffArbitrationComponent implements OnInit {\r\n\r\n isMobileDevice: boolean = false;\r\n constructor(public P_MediaLayoutService: MediaLayoutService) { }\r\n\r\n ngOnInit(): void {\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n if (!localStorage.getItem('foo')) {\r\n localStorage.setItem('foo', 'no reload')\r\n window.location.reload()\r\n } else {\r\n localStorage.removeItem('foo')\r\n }\r\n if (this.isMobileDevice) {\r\n sessionStorage.setItem('IsFormDataSet', 'false');\r\n }\r\n }\r\n\r\n printLenderConsent() {\r\n let divToPrint = document.getElementById('affArbitration')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n\r\n private printDocument(printData: string) {\r\n let newWindow = window.open('', '_blank', 'top=-1000000px,left=0,height=100%,width=auto');\r\n newWindow?.document.write(`\r\n \r\n \r\n \r\n \r\n ${printData} \r\n \r\n \r\n `);\r\n newWindow?.document.close();\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n \r\n test\r\n\r\n\r\n
\r\n
\r\n
Arbitration Provision
\r\n \r\n
\r\n
\r\n \r\n
\r\n

\r\n VERY IMPORTANT. READ THIS ARBITRATION PROVISION CAREFULLY. IT SETS FORTH WHEN AND HOW CLAIMS (AS DEFINED BELOW UNDER THE CAPTION \"CERTAIN DEFINITIONS\") WILL BE ARBITRATED INSTEAD OF LITIGATED IN COURT. THIS ARBITRATION PROVISION GOVERNS \"CLAIMS\" YOU ASSERT AGAINST US, INCLUDING OUR SUBSIDIARIES, AFFILIATES, SUCCESSORS, ASSIGNS, SERVICE PROVIDERS, AND AGENTS OR ANY \"RELATED PARTY\" OF OURS AND \"CLAIMS\" WE OR ANY RELATED PARTY ASSERT AGAINST YOU. IF YOU DON'T REJECT THIS ARBITRATION PROVISION IN ACCORDANCE WITH SECTION 3 BELOW, UNLESS PROHIBITED BY APPLICABLE LAW, IT WILL HAVE A SUBSTANTIAL IMPACT ON THE WAY IN WHICH YOU OR WE RESOLVE ANY CLAIM. Unless prohibited by applicable law and unless you reject the Arbitration Provision in accordance with Section 3 below, you and we agree that either party may elect to require arbitration of any Claim under the following terms and conditions\r\n

\r\n
    \r\n
  1. \r\n Certain Definitions.\r\n
  2. \r\n
\r\n
    \r\n
  • The words \"you\" and \"your\" mean each applicant who has submitted or signed this Application, jointly and individually. The words \"we,' and \"our\" mean FinWise Bank and its affiliates, successors, assigns, services (including, but not limited to, American First Finance Inc.), service providers, and agents. \"Application\" means the application you have submitted to us and the application Terms and Conditions
  • \r\n
  • For purposes of this Arbitration Provision, our \"related parties\" include all parent companies, subsidiaries, and affiliates of ours and our and their employees, directors, officers, shareholders, governors, managers, and members.
  • \r\n
  • The term \"Claim\" means any claim, dispute, or controversy between you and us (or our related parties) that arises from or relates in any way to this Application or any services you request or we provide under this Application (\"Services\"); any of our marketing, advertising, solicitations, and conduct relating to your request for Services; our collection of any amounts you owe; or our disclosure of or failure to protect any information about you. \"Claim\" is to be given the broadest possible meaning and includes claims of every kind and nature, including but not limited to, initial claims, counterclaims, cross-claims and third-party claims, and claims based on any constitution, statute, requlation, ordinance, common law rule (including rules relating to contracts, negligence, fraud, or other intentional wrongs), and equity. \"Claim\" includes
  • \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MediaLayoutService } from '../../../../service/media.layout.service';\r\n\r\n@Component({\r\n selector: 'app-cc-lender-consent-aff-receive-calls',\r\n templateUrl: './cc-lender-consent-aff-receive-calls.component.html',\r\n styleUrls: ['./cc-lender-consent-aff-receive-calls.component.scss']\r\n})\r\nexport class CcLenderConsentAffReceiveCallsComponent implements OnInit {\r\n\r\n isMobileDevice: boolean = false;\r\n constructor(public P_MediaLayoutService: MediaLayoutService) { }\r\n\r\n ngOnInit(): void {\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n if (!localStorage.getItem('foo')) {\r\n localStorage.setItem('foo', 'no reload')\r\n window.location.reload()\r\n } else {\r\n localStorage.removeItem('foo')\r\n }\r\n if (this.isMobileDevice) {\r\n sessionStorage.setItem('IsFormDataSet', 'false');\r\n }\r\n }\r\n\r\n printLenderConsent() {\r\n let divToPrint = document.getElementById('affReceiveCalls')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n\r\n private printDocument(printData: string) {\r\n let newWindow = window.open('', '_blank', 'top=-1000000px,left=0,height=100%,width=auto');\r\n newWindow?.document.write(`\r\n \r\n \r\n \r\n \r\n ${printData} \r\n \r\n \r\n `);\r\n newWindow?.document.close();\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n \r\n test\r\n\r\n\r\n
\r\n
\r\n
Optional Consent to Receive Marketing Calls and Texts
\r\n \r\n
\r\n
\r\n \r\n
By clicking this checkbox, you authorize FinWise Bank, its sub-servicer American First Finance (AFF); and their affiliates, successors, assigns, service providers, and agents (collectively, 'Authorized Parties') to contact you for telemarketing purposes via telephone (including, but not limited to, calls to cell phones and any other service for which the called party is charged for the call or message) or text message at any phone number you provide to one or more Authorized Parties now or in the future, even if you are charged for the call or message. This consent includes, but is not limited to, contact by prerecorded or artificial voice messages, text messages, and/or automatic telephone dialing systems. Message and data rates may apply. You certify that the number(s) you provide to one or more Authorized Parties are for phone(s) that belong to you. You also agree to promptly notify AFF if any phone number you have provided is (i) surrendered by you, (i) changed by you, or (ili) transferred from a residential line to a wireless/cellular line. You are not required to provide consent to obtain any property, goods, or services through FinWise Bank or AFF. If you do not wish to receive telemarketing messages or calls from the Authorized Parties you should not click this checkbox.
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MediaLayoutService } from '../../../../service/media.layout.service';\r\n\r\n@Component({\r\n selector: 'app-cc-lender-consent-aff-terms-and-conditions',\r\n templateUrl: './cc-lender-consent-aff-terms-and-conditions.component.html',\r\n styleUrls: ['./cc-lender-consent-aff-terms-and-conditions.component.scss']\r\n})\r\nexport class CcLenderConsentAffTermsAndConditionsComponent implements OnInit {\r\n\r\n isMobileDevice: boolean = false;\r\n constructor(public P_MediaLayoutService: MediaLayoutService) { }\r\n\r\n ngOnInit(): void {\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n if (!localStorage.getItem('foo')) {\r\n localStorage.setItem('foo', 'no reload')\r\n window.location.reload()\r\n } else {\r\n localStorage.removeItem('foo')\r\n }\r\n if (this.isMobileDevice) {\r\n sessionStorage.setItem('IsFormDataSet', 'false');\r\n }\r\n }\r\n\r\n printLenderConsent() {\r\n let divToPrint = document.getElementById('affTermsAndCoditions')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n\r\n private printDocument(printData: string) {\r\n let newWindow = window.open('', '_blank', 'top=-1000000px,left=0,height=100%,width=auto');\r\n newWindow?.document.write(`\r\n \r\n \r\n \r\n \r\n ${printData} \r\n \r\n \r\n `);\r\n newWindow?.document.close();\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n \r\n test\r\n\r\n\r\n
\r\n
\r\n
Terms And Conditions
\r\n \r\n
\r\n
\r\n \r\n
\r\n FinWise Bank Application Terms and Conditions\r\n

\r\n Information About Procedures for Opening a New AccountTo help the government fight the funding of terrorism and money laundering activities,federal law requires all financial institutions to obtain, verify, and record information that identifies each person who opens an account. What this means for you: When you open an account, we will ask for your name, address, date of birth, and other information that will allow us to identify you. We may also ask to see your driver's license or other identifying documents.\r\n

\r\n

\r\n California Residents: If you are married, you may apply for a separate account
Maine Residents: Consumer reports (credit reports) may be obtained in connection with this application. If you request, the creditor will inform you: (1) whether or not consumer reports were obtained, and (2) if reports were obtained, the names and addresses of the consumer reporting agencies (credit bureaus) that furnished the reports.\r\n

\r\n

\r\n New York Residents: A consumer credit report may be obtained in connection with evaluating your application and subsequently in connection with updates, renewals, or extensions of any credit for which this application is made. Upon your request, you will be informed whether a report was obtained, and if so, of the name and address of the consumer reporting agency that furnished the report.\r\n

\r\n

\r\n Ohio Residents: The Ohio laws against discrimination require that all creditors make credit equally available to all creditworthy customers, and that credit reporting agencies maintain separate credit histories on each individual upon request. The Ohio Civil Rights Commission administers compliance with this law.\r\n

\r\n

\r\n Rhode Island Residents: A consumer credit report may be requested in connection with this application.\r\n

\r\n

\r\n Vermont Residents: I authorize the creditor to obtain credit reports on an ongoing basis about me from credit reporting agencies in connection with this extension of credit transaction. The creditor may obtain credit reports about me on an ongoing basis in connection with this extension of credit transaction for any one or more of the following reasons: (1) reviewing the account; (2) increasing the credit line on the account; (3) taking collection action on the account; or (4) any other legitimate purposes associated with the account.\r\n

\r\n

\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MediaLayoutService } from '../../../service/media.layout.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { CustomTranslocoService } from '../../../service/transloco.service';\r\n\r\n@Component({\r\n selector: 'app-cc-lender-consent-cf',\r\n templateUrl: './cc-lender-consent-cf.component.html',\r\n styleUrls: ['./cc-lender-consent-cf.component.scss']\r\n})\r\nexport class CcLenderConsentCfComponent implements OnInit {\r\n currentUrl: string;\r\n currentLanguagePath: string;\r\n activeLanguage: string;\r\n isMobileDevice: boolean = false;\r\n\r\n heading: string | null;\r\n paraghraphLabel: string | null;\r\n textOne: string | null;\r\n textTwo: string | null;\r\n textThree: string | null;\r\n textFour: string | null;\r\n closeButton: string | null;\r\n printButton: string | null;\r\n\r\n constructor(public P_MediaLayoutService: MediaLayoutService,\r\n private router: Router,\r\n private activateRoute: ActivatedRoute,\r\n private customTranslocoService: CustomTranslocoService) {\r\n this.currentUrl = this.router.url;\r\n let splitUrl = this.currentUrl.split('/');\r\n if (splitUrl.length > 0) {\r\n this.currentLanguagePath = splitUrl[splitUrl.length - 1];\r\n }\r\n\r\n switch (this.currentLanguagePath) {\r\n case 'es-cf-consent':\r\n this.activeLanguage = 'es';\r\n break;\r\n case 'cf-consent':\r\n this.activeLanguage = 'en';\r\n break;\r\n default:\r\n break;\r\n }\r\n this.customTranslocoService.setActiveLanguage(this.activeLanguage);\r\n this.customTranslocoService.loadLanguageWiseTranslationSingleJson('cc-lender-consent/cc-lender-consent-cf', this.activeLanguage);\r\n setTimeout(() => {\r\n this.getTranslation(this.activeLanguage);\r\n }, 2000);\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n if (!localStorage.getItem('foo')) {\r\n localStorage.setItem('foo', 'no reload')\r\n window.location.reload()\r\n } else {\r\n localStorage.removeItem('foo')\r\n }\r\n if (this.isMobileDevice) {\r\n sessionStorage.setItem('IsFormDataSet', 'false');\r\n }\r\n }\r\n\r\n printLenderConsent() {\r\n let divToPrint = document.getElementById('cfConsentText')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n private printDocument(printData: string) {\r\n let newWindow = window.open('', '_blank', 'top=-1000000px,left=0,height=100%,width=auto');\r\n newWindow?.document.write(`\r\n \r\n \r\n \r\n \r\n ${printData} \r\n \r\n \r\n `);\r\n newWindow?.document.close();\r\n }\r\n\r\n getTranslation(language: string) {\r\n let translation = this.customTranslocoService.getLanguageTranslations('cc-lender-consent/cc-lender-consent-cf',language);\r\n this.heading = translation.cfConsent.heading;\r\n this.paraghraphLabel = translation.cfConsent.para;\r\n this.textOne = translation.cfConsent.text1;\r\n this.textTwo = translation.cfConsent.text2;\r\n this.textThree = translation.cfConsent.text3;\r\n this.closeButton = translation.cfConsent.closeButton;\r\n this.printButton = translation.cfConsent.printButton;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
{{heading}}
\r\n \r\n
\r\n
\r\n

\r\n {{paraghraphLabel}} (702) 723-9155{{textOne}} application@vernancefunding.com {{textTwo}} (702) 660-9100.\r\n {{textThree}}\r\n

\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MediaLayoutService } from '../../../../service/media.layout.service';\r\n\r\n@Component({\r\n selector: 'app-cc-lender-consent-dd-terms-and-conditions',\r\n templateUrl: './cc-lender-consent-dd-terms-and-conditions.component.html',\r\n styleUrls: ['./cc-lender-consent-dd-terms-and-conditions.component.scss']\r\n})\r\nexport class CcLenderConsentDdTermsAndConditionsComponent implements OnInit {\r\n\r\n isMobileDevice: boolean = false;\r\n\r\n constructor(public P_MediaLayoutService: MediaLayoutService) { }\r\n\r\n ngOnInit(): void {\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n if (!localStorage.getItem('foo')) {\r\n localStorage.setItem('foo', 'no reload')\r\n window.location.reload()\r\n } else {\r\n localStorage.removeItem('foo')\r\n }\r\n if (this.isMobileDevice) {\r\n sessionStorage.setItem('IsFormDataSet', 'false');\r\n }\r\n }\r\n\r\n printLenderConsent() {\r\n let divToPrint = document.getElementById('jdTermsAndAuthorization')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n private printDocument(printData: string) {\r\n let newWindow = window.open('', '_blank', 'top=-1000000px,left=0,height=100%,width=auto');\r\n newWindow?.document.write(`\r\n \r\n \r\n \r\n \r\n ${printData} \r\n \r\n \r\n `);\r\n newWindow?.document.close();\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n \r\n\r\n\r\n
\r\n
\r\n
Terms And Conditions
\r\n \r\n
\r\n
\r\n \r\n
To the Applicant:
You are applying for a loan with First Community Bank, Batesville, AR. Federal law requires financial institutions to obtain sufficient information to verify your identity. You may be asked several questions and to provide one or more forms of identification to fulfill this requirement. In some instances, we may use outside sources to confirm the information. The information you provide is protected by our privacy policy and federal law.
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MediaLayoutService } from '../../../../service/media.layout.service';\r\n\r\n@Component({\r\n selector: 'app-cc-lender-consent-gw-consent-to-text',\r\n templateUrl: './cc-lender-consent-gw-consent-to-text.component.html',\r\n styleUrls: ['./cc-lender-consent-gw-consent-to-text.component.scss']\r\n})\r\nexport class CcLenderConsentGwConsentToTextComponent implements OnInit {\r\n\r\n isMobileDevice: boolean = false;\r\n constructor(public P_MediaLayoutService: MediaLayoutService) { }\r\n\r\n ngOnInit(): void {\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n if (!localStorage.getItem('foo')) {\r\n localStorage.setItem('foo', 'no reload')\r\n window.location.reload()\r\n } else {\r\n localStorage.removeItem('foo')\r\n }\r\n if (this.isMobileDevice) {\r\n sessionStorage.setItem('IsFormDataSet', 'false');\r\n }\r\n\r\n }\r\n\r\n printLenderConsent() {\r\n let divToPrint = document.getElementById('gwConsentsToText')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n\r\n private printDocument(printData: string) {\r\n let newWindow = window.open('', '_blank', 'top=-1000000px,left=0,height=100%,width=auto');\r\n newWindow?.document.write(`\r\n \r\n \r\n \r\n \r\n ${printData} \r\n \r\n \r\n `);\r\n newWindow?.document.close();\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n \r\n test\r\n\r\n\r\n
\r\n
\r\n
Consent to text
\r\n \r\n
\r\n
\r\n \r\n GWF may send text messages to you. You can unsubscribe from these messages at any time by texting \"STOP\" to the number you received the message from. We will send you a reply message to confirm that you have been unsubscribed. You may resume your subscription at any time. If at any time you forget what keywords are supported, just text \"HELP\" to recieving number. After you send the message \"HELP\" to us, we will respond with instructions on how to use our service as well as how to unsubscribe. Message frequency will vary by account. As always, message and data rates may apply for any messages sent to you from us and to us from you. The following carriers are supported by our system: Verizon Wireless, AT&T, Sprint, T-Mobile®, Boost, Virgin Mobile USA and Metro PCS. Carriers are not liable for delayed or undelivered messages. If you have any questions about your text plan or data plan, it is best to contact your wireless provider.\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MediaLayoutService } from '../../../../service/media.layout.service';\r\n\r\n@Component({\r\n selector: 'app-cc-lender-consent-gw-terms-and-conditions',\r\n templateUrl: './cc-lender-consent-gw-terms-and-conditions.component.html',\r\n styleUrls: ['./cc-lender-consent-gw-terms-and-conditions.component.scss']\r\n})\r\nexport class CcLenderConsentGwTermsAndConditionsComponent implements OnInit {\r\n\r\n isMobileDevice: boolean = false;\r\n constructor(public P_MediaLayoutService: MediaLayoutService) { }\r\n\r\n ngOnInit(): void {\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n if (!localStorage.getItem('foo')) {\r\n localStorage.setItem('foo', 'no reload')\r\n window.location.reload()\r\n } else {\r\n localStorage.removeItem('foo')\r\n }\r\n if (this.isMobileDevice) {\r\n sessionStorage.setItem('IsFormDataSet', 'false');\r\n }\r\n }\r\n\r\n printLenderConsent() {\r\n let divToPrint = document.getElementById('gwTermsAndConditions')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n\r\n private printDocument(printData: string) {\r\n let newWindow = window.open('', '_blank', 'top=-1000000px,left=0,height=100%,width=auto');\r\n newWindow?.document.write(`\r\n \r\n \r\n \r\n \r\n ${printData} \r\n \r\n \r\n `);\r\n newWindow?.document.close();\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
Terms And Conditions
\r\n \r\n
\r\n
\r\n \r\n
\r\n By checking the box below you consent and authorize Terrace Finance to forward your application to Greenwave Finance for their review. Greenwave Finance is a Rent-To-Own company offering Rent-To-Own transactions. For more information on Greenwave Finance please visit their website at www.greenwavefinance.com. In addition, by clicking the box below you agree and accept the terms and conditions and privacy policies. https://greenwavefinance.com/privacy_policy and https://greenwavefinance.com/terms.\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MediaLayoutService } from '../../../../service/media.layout.service';\r\n\r\n@Component({\r\n selector: 'app-cc-lender-consent-jd-terms-and-auth',\r\n templateUrl: './cc-lender-consent-jd-terms-and-auth.component.html',\r\n styleUrls: ['./cc-lender-consent-jd-terms-and-auth.component.scss']\r\n})\r\nexport class CcLenderConsentJdTermsAndAuthComponent implements OnInit {\r\n\r\n isMobileDevice: boolean = false;\r\n constructor(public P_MediaLayoutService: MediaLayoutService) { }\r\n\r\n ngOnInit(): void {\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n if (!localStorage.getItem('foo')) {\r\n localStorage.setItem('foo', 'no reload')\r\n window.location.reload()\r\n } else {\r\n localStorage.removeItem('foo')\r\n }\r\n if (this.isMobileDevice) {\r\n sessionStorage.setItem('IsFormDataSet', 'false');\r\n }\r\n\r\n }\r\n\r\n printLenderConsent() {\r\n let divToPrint = document.getElementById('jdTermsAndAuthorization')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n\r\n private printDocument(printData: string) {\r\n let newWindow = window.open('', '_blank', 'top=-1000000px,left=0,height=100%,width=auto');\r\n newWindow?.document.write(`\r\n \r\n \r\n \r\n \r\n ${printData} \r\n \r\n \r\n `);\r\n newWindow?.document.close();\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n \r\n test\r\n\r\n\r\n
\r\n
\r\n
Terms And Authorization
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MediaLayoutService } from '../../../../service/media.layout.service';\r\n\r\n@Component({\r\n selector: 'app-cc-lender-consent-jd-terms-and-conditions',\r\n templateUrl: './cc-lender-consent-jd-terms-and-conditions.component.html',\r\n styleUrls: ['./cc-lender-consent-jd-terms-and-conditions.component.scss']\r\n})\r\nexport class CcLenderConsentJdTermsAndConditionsComponent implements OnInit {\r\n\r\n isMobileDevice: boolean = false;\r\n constructor(public P_MediaLayoutService: MediaLayoutService) { }\r\n\r\n ngOnInit(): void {\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n if (!localStorage.getItem('foo')) {\r\n localStorage.setItem('foo', 'no reload')\r\n window.location.reload()\r\n } else {\r\n localStorage.removeItem('foo')\r\n }\r\n if (this.isMobileDevice) {\r\n sessionStorage.setItem('IsFormDataSet', 'false');\r\n }\r\n }\r\n\r\n printLenderConsent() {\r\n let divToPrint = document.getElementById('jdTermsAndConditions')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n\r\n private printDocument(printData: string) {\r\n let newWindow = window.open('', '_blank', 'top=-1000000px,left=0,height=100%,width=auto');\r\n newWindow?.document.write(`\r\n \r\n \r\n \r\n \r\n ${printData} \r\n \r\n \r\n `);\r\n newWindow?.document.close();\r\n }\r\n}\r\n","\r\n\r\n\r\n \r\n test\r\n\r\n\r\n
\r\n
\r\n
Terms And Conditions
\r\n \r\n
\r\n
\r\n \r\n
\r\n
REVOLVING PLAN TERMS AND CONDITIONS - PERSONAL USE RETAIL CREDIT AND SECURITY AGREEMENT
\r\n

If you have applied for a revolving credit account, the following disclosures apply: Account Opening, Application and Solicitation Disclosures

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Interest Rates and Interest Charges
Annual Percentage Rate (APR) for Purchases\r\n 18.25% This APR will vary with the market based on the Prime Rate.\r\n
Penalty APR and When It AppliesNone
How to Avoid Paying Interest on PurchasesYour due date is at least 25 days after the close of each billing cycle. We will not charge you interest on purchases if you pay your entire balance due by the due date each month.
Minimum Interest ChargeNone
For Credit Card Tips from the Consumer Financial Protection BureauTo learn more about factors to consider when applying for or using a credit card, visit the website of the Consumer Financial Protection Bureau at http://www.consumerfinance.gov/learnmore
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Fees Revised as of 5/01/2019
Penalty Fees
Late Payment Fee\r\n Up to $39.00\r\n
Returned Payment Fee\r\n Up to $39.00\r\n
\r\n

\r\n HOW WE CALCULATE YOUR BALANCE. We use a method called \"average daily balance (including new purchases).\" See your Account Agreement for more details.\r\n

\r\n

\r\n BILLING RIGHTS. Information on your rights to dispute transactions and how to exercise those rights is provided in your Account Agreement.\r\n

\r\n

APPLICANT(S) ACKNOWLEDGE THAT (1) SELLER HAS NOT REPRESENTED THAT THE TERMS OF THIS FINANCING ARE MORE OR LESS FAVORABLE THAN OTHER FINANCING; (2) SELLER IS NOT APPLICANTS AGENT IN OBTAINING THE FINANCING; (3) APPLICANT MAY OBTAIN FINANCING FROM OTHER SOURCES; (4) SELLER MAY BE COMPENSATED FOR SERVICES INVOLVED IN ARRANGING THIS FINANCING.

\r\n

\r\n TERMINOLOGY. In this Agreement the words you, your, and yours mean each person who applies for and is granted a Revolving Plan Account, (\"Account\") and any co-applicant identified on the application. JDF means John Deere Financial, f.s.b., or any subsequent holder of the Account or any balances arising under the Account. When the terms \"finance charge\" and \"interest charge\" are used in this Agreement and on other documents related to your Account, they have the same meaning.\r\n

\r\n

\r\n CREDIT APPROVAL. This Agreement is not binding on JDF unless and until JDF has approved your credit and given you notice of approval.\r\n

\r\n

\r\n CARD. You requested an Account and credit card (\"Card\") from JDF. You agree that this Agreement controls all purchases made on this Account or with use of the Card by you or any person you authorize to use it. This arises out of a consumer credit sale. You authorize JDF to honor any purchase you make by mail, telephone, internet, facsimile transmission (fax) or other electronic means on your Account. You agree that a signature is not necessary as identification in such cases. You agree that any authorized use of your Account or Card constitutes your acceptance of all the terms and conditions of this Agreement, as it may be amended from time to time. If you submit your application to JDF by internet, facsimile transmission (fax), or other electronic means, you agree that the application will have the same effect as a signed original. You agree that you will promptly notify JDF in writing of suspected loss, theft, or unauthorized use of your Card. You may be liable for the unauthorized use of your Card before you notify JDF in writing at John Deere Financial, P.O. Box 5327, Madison, Wisconsin 53705-0327 (800-541-2969) of the unauthorized use. In any case, your liability will not exceed $50. You consent and agree that your telephone conversations with JDF may be recorded to further improve JDF’s customer service. You agree that JDF and any affiliate and any retained debt collector may place phone calls to you using any telephone number, including a mobile phone number, you have provided to JDF, any affiliate or any retained debt collector, including calls using an automatic dialing and announcing device and prerecorded calls, and that such calls are not \"unsolicited\" under state or federal law. You agree to give JDF prompt notice of any change in your name, mailing address, telephone number or place of employment. You agree that until JDF receives notice of your new address, JDF may continue to send statements and other notices to the address you gave JDF on the application for this Account. You agree that, for the purposes of this Agreement, you will be deemed to \"reside\" in the state of your billing address as shown on JDF’s records. If more than one person or entity signed the application, each is jointly and severally responsible for all obligations, and amounts due, under this Agreement. If Maryland law applies, Subtitle 9 of Title 12 of the Maryland Commercial Law will apply.\r\n

\r\n

\r\n CREDIT LIMIT. JDF will state your credit limit for your purchases when JDF notifies you of credit approval and issues your Card. You may request a change to your credit limit by writing JDF at the address listed above. You agree that JDF may increase or decrease your Account credit limit at any time, in JDFs sole discretion, without prior notice to you.\r\n

\r\n

\r\n ACCOUNT USE. You can use your Account to purchase authorized goods and services from participating retailers up to the full amount of your credit limit. You agree you will owe JDF all amounts charged on the Account, plus interest charges and the other charges provided for in this Agreement. Unless your Account has been closed or suspended, JDF will allow a purchase of authorized goods or services from a participating retailer to be made through your Account as long as (1) you are not in default; (2) your financial condition has not materially or adversely changed; and (3) JDF has not been provided information by third parties that indicates serious charge-offs or delinquencies with other of your accounts. We will consider your Account to be inactive if, for six months or more, no purchases have been made through your Card, and your Account Balance has been zero.\r\n

\r\n

You agree that all purchases and transactions made on your Account shall be for a personal, family or household purpose, and not for a business or commercial purpose.

\r\n

You agree that JDF is not responsible for the refusal of anyone to allow a purchase to be made through your Card.

\r\n

\r\n MONTHLY STATEMENT. JDF will send you a monthly statement whenever there is activity on your Account. Your monthly statement will show your New Balance and any Late Fees and Interest Charge for purchases. In addition, it will show any available credit for purchases, an itemized list of current Purchases, Debits, Payments and Credits, the Minimum Required Payment and the Payment Due Date, as well as other pertinent information concerning your Account.\r\n

\r\n

For information about your rights regarding billing errors, refunds, or adjustments, please refer to the section - \"Your Billing Rights\".

\r\n

We will send your monthly statements on dates and in intervals determined by JDF. Such statement shall be deemed correct and accepted by you unless JDF is notified to the contrary in writing within 60 days of JDF mailing such statement. If you think your monthly statement is incorrect, write JDF on a separate sheet at the address shown on the back of your billing statement. Describe the error as best you can and include your Account number in all correspondence.

\r\n

\r\n PAYMENT. The Payment Due Date is the date the payment is due at the address shown on the front of your monthly statement. You may at any time pay your entire New Balance or pay more than the Minimum Required Payment, and you will avoid or reduce Interest Charges by doing so. If your Payment Due Date falls on a date on which we do not receive or accept payments by mail (including weekends and holidays) we will not treat the payment received the next business day as late for any purpose. All payments must be in U.S. dollars and drawn on funds on deposit in the United States. Payments must be sent to John Deere Financial at the address designated on your monthly payment stub or to any other payment address JDF later designates on your monthly statement payment stub. We will not accept any payments at our offices.\r\n

\r\n

INTEREST CHARGE RATES.

\r\n
\r\n

NO INTEREST IF PAID IN FULL. JDF will add an INTEREST CHARGE calculated at the Regular Purchase Rate, as explained in the Special Promotions/No Interest if Paid in Full Transactions section of this Agreement.

\r\n

REGULAR PURCHASES. On Regular Purchases, (not No Interest if Paid in Full Special Promotions) JDF will add an INTEREST CHARGE calculated at the following rate, if your New Balance is not paid in full on or before the Payment Due Date listed on your statement.

\r\n

Interest Charges on your Account for Regular Purchases may be calculated using a variable rate that will be determined by reference to a \"Base Rate\" to which is added a \"Spread\" to arrive at the current rate. The same Spread will be used for purchase(s) within your Account.

\r\n

The Base Rate from which your variable rate will be determined is the annual percentage rate of interest announced publicly from time to time by Citibank, N.A. in New York, New York, as the base rate it uses for interest rate determinations, which was in effect at the close of business on the fifteenth (15th) calendar day of each month, or the next succeeding business day if the fifteenth is not a business day (\"Reference Day\"). The Spread added to the Base Rate to determine the ANNUAL PERCENTAGE RATE (APR) that will apply to your Account will be:

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Spread
Regular Purchase Rate15%
\r\n

Rate increases and decreases, that result from changes in the Base Rate will take effect on the first day of the month, or the next succeeding business day if the first day is not a business day, after the Reference Day on which the Base Rate changes.

\r\n

Changes in your variable rate will apply to your existing Account Balance as well as to future purchases. An increase in your rate will increase the total Interest Charge accruing on your Account and the balance on which your Minimum Required Payment is calculated. For example, if the Base Rate (and thus the applicable variable rate) were to increase by 5%, and the average daily balance to which the new rate applied was $1,000, your INTEREST CHARGE for that month would increase by $4.17 as a result of the increase in the variable rate.

\r\n
\r\n

Current effective rates are shown below:

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Daily Periodic RateANNUAL PERCENTAGE RATE
REGULAR PURCHASE RATE.050%18.25%
\r\n

The above rate is correct as of the date of printing, 04/01/2020, but is subject to change after that date. To find out what may have changed, write to JDF at John Deere Financial, P.O. Box 5327, Madison, Wisconsin 53705-0327; or call Customer Service at 1-800-541-2969.

\r\n

\r\n INTEREST CHARGE CALCULATION. The amount of INTEREST CHARGE is determined in the following manner. JDF uses the daily periodic rates and corresponding APR shown in this Agreement. The applicable periodic rate is applied to the \"Average Daily Balance\" of your corresponding purchases, including current transactions, during the current billing cycle.\r\n

\r\n

To get the \"Average Daily Balance\", JDF takes the beginning balance of those purchases each day, starting with any Previous Balance outstanding on the first day of the monthly billing cycle, adds new purchases and debits (other than late payment fees), and subtracts payments or credits. This determines the daily balance. Unless JDF elects to use a later date, purchases are added to the daily balance as of the date of purchase.

\r\n

JDF totals the daily balances for the billing cycle and divides the total by the number of days in the billing cycle. This gives JDF each \"Average Daily Balance\" which is shown on your monthly statement.

\r\n

\r\n MINIMUM MONTHLY PAYMENT. You agree to pay each month a Minimum Required Payment equal to:\r\n

\r\n
    \r\n
  1. \r\n Any late payment fee due; plus\r\n
  2. \r\n
  3. \r\n Any additional fees; plus\r\n
  4. \r\n
  5. \r\n Any amount past due; plus\r\n
  6. \r\n
  7. \r\n For purchases:
      \r\n
    1. \r\n Either the greater of: (i) $50 or (ii) 2.50% of your highest balance;\r\n
    2. \r\n
    3. \r\n Or your entire New Balance, if it is $50 or less.\r\n
    4. \r\n
    \r\n
  8. \r\n
\r\n

\r\n SPECIAL PROMOTIONS. From time to time special financing terms, such as extended free periods, incentive interest rates on certain purchases or other promotions may be available. This may be limited to certain purchases from participating retailers. These special terms will be disclosed by the retailer at the time of purchase or on the next monthly statement sent to you and will govern the APR and repayment terms. Purchases you make during these special promotions will be separately identified on your monthly statement and will become part of the balance on which your INTEREST CHARGE and Minimum Required Payment are calculated at the time provided in the special terms disclosure. Final payment due for these transactions may be slightly larger. Any introductory low rate may be followed by a higher rate, which may be as high as the Regular Purchase Rate.\r\n

\r\n
\r\n

\r\n NO INTEREST IF PAID IN FULL TRANSACTIONS. Unless otherwise disclosed, minimum monthly payments will be made and Interest Charge will accrue from the transaction date during the No Interest if Paid in Full period described on your monthly statement at the Regular Purchase Rate as explained in the Regular Purchase Rate section of this Agreement. No Interest Charge will be due until the end of the No Interest if Paid in Full period and any accrued Interest Charge will be waived if the entire No Interest if Paid in Full balance is paid in full by the end of this No Interest if Paid in Full period. If the No Interest if Paid in Full transaction balance is not paid in full during the introductory No Interest if Paid in Full period, interest charge will accrue from the transaction date at the Regular Purchase Rate.\r\n

\r\n

\r\n NO INTEREST WITH PAYMENT TRANSACTIONS. Interest Charges will not accrue during any no interest period described on your monthly statement. Minimum required payments will be required during the no interest period. If the no interest transaction is not paid in full during the introductory no interest period, interest charge will accrue at the Regular Purchase Rate.\r\n

\r\n
\r\n

\r\n OTHER FEES AND CHARGES. JDF will add to your Account: (1) A Late Payment Fee of $28 may be applied for the first time JDF does not receive a payment of at least the current portion of your Minimum Required Payment (Minimum Required Payment plus unpaid late payment fees and past due amounts) by the Payment Due Date shown on your statement and a $39 fee for any additional late payments during the next six statement billing cycles; (2) A Returned Payment Fee of $28 may be applied on the first check or electronic payment authorization JDF receives which is dishonored and a $39 fee for any additional dishonored payments during the next six statement billing cycles; and (3) expenses incurred in connection with the enforcement of our remedies upon default, including, without limitation, (a) repossession, repair and collection costs, and (b) any attorney fees plus court costs and related fees, including any bankruptcy fees and costs, to the extent permitted by applicable law. If New Hampshire law applies, those fees may be awarded to you if you prevail in any such action, suit or proceeding. Any credit balance in excess of $1 on your Account will be refunded within 7 business days from JDF’s receipt of your written request. Otherwise, JDF will refund to you any credit balance remaining on your Account after six months. JDF will retain any credit balance if it is less than $1 or if JDF does not know your address and it cannot be traced through the last address or telephone number provided JDF.\r\n

\r\n

\r\n ACCEPTING PAYMENT. JDF can accept late or partial payments, as well as payments marked \"paid in full\" or with other restrictive endorsements, without losing any of JDFs rights under this Agreement.\r\n

\r\n

\r\n CREDIT REPORTS. JDF may report your performance under this Agreement to credit reporting agencies and others who request a credit reference from JDF. JDF may ask credit reporting agencies or others you list as a credit reference for consumer reports or information regarding your credit history at any time for all legitimate purposes, including credit decisions and the review and collection of your Account. If you request, you will be provided with the name and address of any credit reporting agency that provided a report in connection with this application. As required by law, you are hereby notified that a negative credit report reflecting on your credit record may be submitted to a credit reporting agency if you fail to fulfill the terms of your credit obligations. You also authorize JDF to disclose financial information about you as described in this Agreement and future notices JDF may send you.\r\n

\r\n

\r\n CANCELLATION. You may close your Account to future purchases at any time by notifying JDF in writing and returning all Cards. JDF may close or suspend your Account to future purchases at any time without prior notice. Regardless of the expiration, closing or suspension of your Account, you remain responsible for paying the amount you owe JDF according to the terms of this Agreement.\r\n

\r\n

\r\n SECURITY INTEREST. You grant JDF a purchase money security interest in all merchandise purchased through your Account, and its proceeds, including insurance proceeds, but this provision does not apply if you reside in NC and the APR on a purchase or transaction exceeds 15%. JDFs security interest continues until such merchandise is paid for in full by application of your payments in the manner described in this Agreement. You agree to execute and authorize JDF to file (or to sign for you and file) any financing statement(s) or other document(s) needed to perfect the security interest that you have given JDF or that JDF may deem necessary before your debt is paid in full.\r\n

\r\n

\r\n PROPERTY INSURANCE. While JDFs security interest in the merchandise continues, you must maintain all-risk physical damage insurance on each merchandise item of which $5,000 or more is financed through your Account. You may obtain such coverage from any source and, if it is not available from or through JDF, you will name John Deere Financial, f.s.b. as a loss payee of the insurance, entitled to at least 10 days advance notice of its cancellation, and at JDFs request you will provide evidence thereof. You assign and direct the insurer to pay JDF the proceeds of such insurance. You authorize JDF to make and settle claims, and to endorse in your name(s) and apply, any instrument for such proceeds to the unpaid purchase price of the item or, at JDFs option, to its restoration, returning any excess to you.\r\n

\r\n

\r\n PAYMENT APPLICATION. You agree that your Minimum Required Payment will be applied as JDF determines in its sole discretion. You agree that JDF has this discretion and that JDF may exercise it to suit its own convenience and interests, without further notice to you. You also agree that JDF may change how it applies your Minimum Required Payment at any time without notice to you. You acknowledge that the exercise of this discretion by JDF may result in cases in which the application of the Minimum Required Payment to the Account creates higher Interest Charges than other payment application methods and that this may include payments allocated to balances with lower APRs before balances with higher APRs and/or to balances with longer promotional periods before balances with shorter or no promotional periods. JDF shall apply amounts paid by you in excess of the Minimum Required Payment amount first to the transaction balance bearing the highest rate of interest, and then to each successive transaction balance bearing the next highest rate of interest, until all the amount you paid is applied to the Account. If you have a deferred interest transaction(s) on the Account, JDF will allocate the entire amount paid by you in excess of the Minimum Required Payment amount to the balances on which interest is deferred during the last 2 billing cycles immediately preceding the expiration of the period during which interest is deferred. JDF may, in its sole discretion, consider requests by you to apply amounts paid in excess of the Minimum Required Payment in other ways.\r\n

\r\n

You agree that your payments will be credited as of the date of receipt at the address on the payment stub of your Monthly Statement if received by 5:00 p.m. Central Time Monday through Friday (otherwise next business day). If payment is not accompanied by the payment stub or Account number, is not received at that location, or is not made in U.S. Dollars, by check or money order, credit may be delayed up to two business days.

\r\n

\r\n RETAILER CHARGEBACKS. JDF may chargeback to a retailer who sold goods or services to you on your Account, any part of your Account balance related to those purchases. In such an event, this Agreement will be deemed assigned to the retailer to the extent of the chargeback. You agree to such an assignment and further agree to pay the retailer the amount of such chargeback in accordance with the terms of this Agreement.\r\n

\r\n

\r\n DEFAULT. You agree that you will be in default if: (a) you fail to pay the Minimum Required Payment by the Payment Due Date on two occasions within any 12 month period; (b) the value of JDFs security interest in any collateral is materially impaired; (c) your ability to repay is materially reduced by your exceeding your credit limit, by a change in your employment, by a change in your obligations, by bankruptcy or insolvency proceedings involving you, or (for community property state residents only) by a change in your marital status or domicile; (d) if you die or are declared incompetent; (e) you provided JDF false or misleading information relating to your credit application or Account; (f) any purchase or transaction on your Account is not for a personal, family or household purpose; (g) you fail to perform any other of your obligations under the terms of this Agreement as it may be amended; or (h) you are in default under any other agreement you have with JDF or any of its affiliates.\r\n

\r\n

You agree that upon your default, JDF may close your Account to future purchases and demand immediate payment of your entire Account balance, after giving you any notice and opportunity to cure the default required by applicable law. In addition, you agree that JDF shall have all the rights of a secured creditor under the Uniform Commercial Code and other applicable law.

\r\n

\r\n ELECTRONIC DISCLOSURE. You agree that any notices and disclosures related to your Account can be delivered to you in printed form or by electronic means by sending them to any electronic mail address that you provided to JDF when you applied for this Account or at a later date. Until JDF receives notice of a new electronic mail address, JDF may continue to send such notices and disclosures to the electronic mail address you most recently provided to JDF.\r\n

\r\n

\r\n ERRORS IN CREDIT BUREAU INFORMATION. If you believe JDF has reported inaccurate information about you to a credit bureau, please contact JDF at John Deere Financial, P.O. Box 5327, Madison, Wisconsin 53705-0327, and identify the inaccurate information and tell JDF why you believe it is incorrect.\r\n

\r\n

\r\n DELAY IN ENFORCEMENT. JDF can delay enforcing our rights under this Agreement without losing them.\r\n

\r\n

\r\n OTHER SERVICES. Third parties may offer additional features, services and enhancements related to the Account. You acknowledge that JDF is not liable for those and that they are the sole responsibility of those third parties. If you receive insurance services, you understand that you will receive all the information on those services from the insurer. That insurance may be cancelled if you are in default under this Agreement.\r\n

\r\n

\r\n GOVERNING LAW. This Agreement must be approved, and all charges and payments to your Account processed by JDF, at our office in Madison, Wisconsin. Therefore this Agreement and your Account will be governed by the substantive law of the United States and to the extent state law applies to this Agreement, the substantive law of the State of Wisconsin, regardless of whether or not you reside in Wisconsin. The law of your state of residence may apply to JDFs recovery of any collateral located there. This is the entire Agreement between you and JDF and no oral changes can be made to it.\r\n

\r\n

\r\n VALIDITY. Invalidity of any provision of this Agreement shall not affect the validity and enforceability of the remainder of its terms.\r\n

\r\n

\r\n CHANGING THIS AGREEMENT. IMPORTANT: READ BEFORE SIGNING. THE TERMS OF THIS AGREEMENT SHOULD BE READ CAREFULLY BECAUSE ONLY THOSE TERMS IN WRITING IN THIS AGREEMENT ARE ENFORCEABLE. NO OTHER TERMS OR ORAL PROMISES NOT CONTAINED IN THIS WRITTEN AGREEMENT MAY BE LEGALLY ENFORCED. YOU MAY CHANGE THE TERMS OF THIS AGREEMENT ONLY BY ANOTHER WRITTEN AGREEMENT BETWEEN YOU AND JDF. JDF may change this Agreement, including the Annual Percentage Rate and the Interest Charge Calculation, at any time. JDF will provide you prior written notice. To the extent that the law permits and JDF indicates in our notice, the changes will apply to your existing Account balance as well as to future transactions.\r\n

\r\n

\r\n NOTICE TO ACTIVE DUTY SERVICEMEMBERS AND THEIR DEPENDENTS. Federal law provides important protections to members of the Armed Forces and their dependents relating to extensions of consumer credit. In general, the cost of consumer credit to a member of the Armed Forces and his or her dependent may not exceed an annual percentage rate of 36 percent. This rate must include, as applicable to the credit transaction or account: the costs associated with credit insurance premiums; fees for ancillary products sold in connection with the credit transaction; any application fee charged (other than certain application fees for specified credit transactions or accounts); and any participation fee charged (other than certain participation fees for a credit card account)\r\n

\r\n

\r\n TOLL-FREE NUMBER FOR ACTIVE DUTY SERVICEMEMBERS AND THEIR DEPENDENTS. If you would like to receive a statement of the Military Annual Percentage Rate applicable to this extension of consumer credit, and/or a clear description of the payment obligation of the covered borrower, please contact us at: 1-800-519-2242.\r\n

\r\n

\r\n ARBITRATION OF DISPUTES. In the event of any past, present or future claim or dispute between you and JDF arising from or relating to your Account, any prior account you have had with JDF, your application, the relationships which result from your Account or the enforceability or scope of this arbitration provision, of the Agreement or of any prior agreement, you or JDF may elect to resolve the claim or dispute by binding arbitration.\r\n

\r\n

FEDERAL LAW PROVIDES THAT JDF CANNOT REQUIRE CERTAIN ACTIVE DUTY MILITARY SERVICEMEMBERS OR THEIR DEPENDENTS (“COVERED BORROWERS”) TO RESOLVE THESE CLAIMS OR DISPUTES BY BINDING ARBITRATION. IF YOU QUALIFY UNDER FEDERAL LAW AS A COVERED BORROWER, THEN THIS SECTION DOES NOT APPLY TO YOU AND NEITHER JDF NOR YOU MAY ELECT TO RESOLVE SUCH CLAIMS OR DISPUTES BY BINDING ARBITRATION. IF YOU DO NOT QUALIFY UNDER FEDERAL LAW AS A COVERED BORROWER, THEN THIS SECTION DOES APPLY TO YOU.

\r\n

This includes any such claim or dispute, whether based upon contract, property, tort, statute, common law or equity, other than a claim relating to JDFs right to repossess the merchandise purchased through your Account by self-help, if permitted, or by judicial process. The parties agree and understand that the arbitration shall have all Powers provided by law and the Contract. These Powers shall include all legal and equitable remedies including, but not limited, to money damages, declaratory relief and injunctive relief.

\r\n

The parties agree and understand that they choose arbitration instead of litigation to resolve disputes. The parties understand that they have the right or opportunity to litigate disputes in court, but that they prefer to resolve their disputes through arbitration, except as provided herein.

\r\n

IF EITHER YOU OR JDF ELECT ARBITRATION, NEITHER YOU NOR JDF SHALL HAVE THE RIGHT TO LITIGATE THAT CLAIM IN COURT OR TO HAVE A JURY TRIAL ON THAT CLAIM. PRE-HEARING DISCOVERY RIGHTS AND POST-HEARING APPEAL RIGHTS WILL BE LIMITED. THE PARTIES VOLUNTARILY AND KNOWINGLY WAIVE ANY RIGHT THEY HAVE TO A JURY TRIAL, EITHER PURSUANT TO ARBITRATION UNDER THIS CLAUSE OR PURSUANT TO A COURT ACTION.

\r\n

NEITHER YOU NOR JDF SHALL BE ENTITLED TO JOIN OR CONSOLIDATE CLAIMS IN ARBITRATION BY OR AGAINST OTHER CUSTOMERS WITH RESPECT TO OTHER ACCOUNTS, OR ARBITRATE ANY CLAIMS AS A REPRESENTATIVE OR MEMBER OF A CLASS OR IN A PRIVATE ATTORNEY GENERAL CAPACITY.

\r\n

Even if all parties have opted to litigate a claim in court, you or JDF may elect arbitration with respect to any claim made by a new party or any new claims later asserted in that lawsuit, and nothing undertaken therein shall constitute a waiver of any rights under this arbitration provision. Arbitration may be elected at any time, regardless of whether a lawsuit has been filed, unless the lawsuit involving that claim or dispute has resulted in a final judgment. JDF will not invoke our right to arbitrate an individual claim you bring in small claims court or your states equivalent court, if any, so long as the claim is pending only in that court and does not exceed $5,000.

\r\n

Your Account involves interstate commerce, and this provision shall be governed by the Federal Arbitration Act (FAA). The arbitration shall be conducted by JAMS or American Arbitration Association (AAA), at the option of the party electing arbitration, in accordance with their procedures in effect when the claim is filed. As of \"date of print\", for a copy of their procedures, to file a claim or for other information, contact AAAs customer service at 1-800-778-7879 or visit their website at www.adr.org or contact JAMS at 1-800-352-5267 or by visiting their website at www.jamsadr.com. All claims may be filed at any JAMS or AAA office. At your written request, JDF will advance any arbitration filing, administrative and hearing fees which you would be required to pay to pursue a claim or dispute as a result of JDFs electing to arbitrate that claim or dispute. The arbitrator will decide who will ultimately be responsible for paying those fees. In no event will you be required to reimburse JDF for any arbitration filing, administrative, or hearing fees in an amount greater than what your and JDFs combined court cost would have been if the claim had been resolved in a state court with jurisdiction.

\r\n

Any arbitration hearing will take place in the federal judicial district where you reside. The arbitrator shall follow applicable substantive law to the extent consistent with the FAA and applicable statutes of limitations and shall honor claims of privilege recognized at law. If requested by any party, the arbitrator shall write an opinion containing the reasons for the award. The arbitrators decision will be final and binding except for any appeal rights under the FAA and except that if the amount in controversy exceeds $100,000, any party may appeal the award within 30 days to a three-arbitrator panel which shall review the award de novo. The costs of such an appeal shall be borne by the appealing party regardless of outcome. Judgment upon any award by the arbitrator may be enforced in any court having jurisdiction.

\r\n

Our rights and obligations under this arbitration provision shall inure to the benefit of and be binding upon JDFs parent corporations, subsidiaries, affiliates, predecessors, successors and assigns, as well as the officers, directors and employees of each of these entities, and will also inure to the benefit of any third party named as a co-defendant with JDF or with any of the foregoing in a claim which is subject to this arbitration provision. Your rights and obligations under this arbitration provision shall inure to the benefit of and be binding upon all persons contractually liable under this Agreement and all Authorized Users of the Account. This arbitration shall survive termination of your Account as well as voluntary payment in full by you, and legal proceedings by JDF to collect a debt owed by you, any bankruptcy by you and any sale by JDF of your Account.

\r\n

\r\n IMPORTANT INFORMATION ABOUT PROCEDURES FOR OPENING A NEW ACCOUNT. To help the government fight the funding of terrorism and money laundering activities, Federal law requires all financial institutions to obtain, verify, and record information that identifies each person who opens an Account. What this means for you: When you open an Account, you will be asked for your name, address, date of birth, and other information that will allow JDF to identify you. You may also be asked to show your drivers license or other identifying documents.\r\n

\r\n
YOUR BILLING RIGHTS.
\r\n
KEEP THIS NOTCE FOR YOUR FUTURE USE.
\r\n
\r\n THIS NOTICE CONTAINS IMPORTANT INFORMATION ABOUT YOUR RIGHTS AND JDFS RESPONSIBILITIES UNDER THE FAIR CREDIT BILLING ACT.
\r\n

\r\n NOTIFY JDF IN CASE OF ERRORS OR QUESTIONS ABOUT YOUR BILL. If you think your bill is wrong, or if you need more information about a transaction on your bill, write to JDF (on a separate sheet) at the address shown on the back of your billing statement. Write to JDF as soon as possible. JDF must hear from you not later than 60 days after JDF sent you the first bill on which the error or problem appeared. You can telephone JDF, but doing so will not preserve your rights. In your letter, give JDF the following information:\r\n

\r\n
\r\n
    \r\n
  • Your name and Account number
  • \r\n
  • The dollar amount of the suspected error
  • \r\n
  • Describe the error and explain, if you can, why you believe there is an error.
  • \r\n
  • If you need more information, describe the item you are unsure about
  • \r\n
\r\n
\r\n

If you have authorized JDF to pay your credit card bill automatically from your savings or checking account, you can stop the payment on any amount you think is wrong. To stop the payment your letter must reach JDF three business days before the automatic payment is scheduled to occur.

\r\n

\r\n YOUR RIGHTS AND RESPONSIBILITIES AFTER JDF RECEIVES YOUR WRITTEN NOTICE. JDF must acknowledge your letter within 30 days, unless JDF has corrected the error by then. Within 90 days, JDF must either correct the error or explain why JDF believes the bill was correct.\r\n

\r\n

After JDF receives your letter, JDF cannot try to collect any amount you question, or report that amount as delinquent. JDF can continue to bill you for the amount you question, including interest charges, and JDF can apply any unpaid amount against your credit limit. You do not have to pay any questioned amount while JDF is investigating, but you are still obligated to pay the parts of your bill that are not in question.

\r\n

If JDF finds that it made a mistake on your bill, you will not have to pay any interest charges related to any questioned amount. If JDF did not make a mistake, you may have to pay interest charges, and you will have to make up any missed payments on the questioned amount. In either case, JDF will send you a statement of the amount you owe and the date that it is due.

\r\n

If you fail to pay the amount that JDF thinks you owe, JDF may report you as delinquent. However, if JDF’s explanation does not satisfy you, and you write to JDF within 25 days telling JDF that you still refuse to pay, JDF must tell anyone it reports you to that you have a question about your bill. And, JDF must tell you the name of anyone it reports you to. JDF must tell anyone it reports you to that the matter has been settled between you and JDF when it is finally settled.

\r\n

If JDF doesn’t follow these rules, JDF can’t collect the first $50 of the questioned amount, even if your bill was correct.

\r\n

\r\n SPECIAL RULES FOR CREDIT CARD PURCHASES. If you have a problem with the quality of property or services that you purchased with your credit card and you have tried in good faith to correct the problem with the merchant, you may have the right not to pay the remaining amount due on the property or services. There are two limitations on this right:\r\n

\r\n
\r\n
    \r\n
  • You must have made the purchase in your home state or, if not within your home state, within 100 miles of your current mailing address; and
  • \r\n
  • The purchase price must have been more than $50.
  • \r\n
\r\n
\r\n

These limitations do not apply if JDF owns or operates the merchant, or if JDF mailed you the advertisement for the property or services.

\r\n

YOUR CHOICE TO LIMIT MARKETING:

\r\n
\r\n
    \r\n
  • The John Deere Financial companies are providing this notice. They include Deere & Company, Deere Credit, Inc., John Deere Construction & Forestry Company and John Deere Financial, f.s.b.
  • \r\n
  • You may limit the John Deere companies, such as the manufacturing, credit, leasing and insurance affiliates, from marketing their products or services to you based on your personal information that they receive from any John Deere Financial company. This information may include your income, account history, and credit score.
  • \r\n
  • Your choice to limit marketing offers from the John Deere companies will apply for at least 5 years from when you tell us your choice. Once that period expires, you will receive a renewal notice that will allow you to continue to limit marketing offers from the John Deere companies for at least another 5 years.
  • \r\n
  • \r\n To limit marketing offers, contact us at 1-800-541-2969.\r\n
  • \r\n
\r\n
\r\n

(19-11)

\r\n

Revolving Plan Accounts are a service of John Deere Financial, f.s.b.

\r\n

\r\n View printer friendly version of the Privacy Notice below (PDF)\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Page 1 of 2
Rev. March 2020
FACTSWHAT DOES JOHN DEERE FINANCIAL, F.S.B. DO WITH YOUR PERSONAL INFORMATION?
Why?Financial companies choose how they share your personal information. Federal law gives consumers the right to limit some but not all sharing. Federal law also requires us to tell you how we collect, share, and protect your personal information. Please read this notice carefully to understand what we do.
What?\r\n The types of personal information we collect and share depend on the product or service you have with us. This information can include:
    \r\n
  • Social Security number and income
  • \r\n
  • account balances and payment history
  • \r\n
  • credit history and credit scores
  • \r\n
\r\n
How?All financial companies need to share customers’ personal information to run their everyday business. In the section below, we list the reasons financial companies can share their customers’ personal information; the reasons John Deere Financial, f.s.b. chooses to share; and whether you can limit this sharing.
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Reasons we can share your personal informationDoes John Deere Financial, f.s.b. share?Can you limit this sharing?
\r\n For our everyday business purposes - such as to process your transactions, maintain your account(s), respond to court orders and legal investigations, or report to credit bureaus\r\n YesNo
\r\n For our marketing purposes - to offer our products and services to you\r\n YesNo
\r\n For joint marketing with other financial companies\r\n YesNo
\r\n For our affiliates everyday business purposes - information about your transactions and experiences\r\n YesNo
\r\n For our affiliates everyday business purposes - information about your creditworthiness\r\n YesYes
\r\n For our affiliates to market to you\r\n YesYes
\r\n For nonaffiliates to market to you\r\n YesYes
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
To limit our sharing\r\n

• Call 1-800-541-2969 – and at the Menu, select 0 and one of our Customer Service Representatives will be able to assist you.

\r\n

\r\n Please note: If you are a new customer, we can begin sharing your information 30 days from the date we sent this notice. When you are no longer our customer, we continue to share your information as described in this notice.\r\n

\r\n

However, you can contact us at any time to limit our sharing.

\r\n
QuestionsCall 1-800-541-2969
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Page 2 of 2
What we do
How does John Deere Financial, f.s.b. protect my personal information?To protect your personal information from unauthorized access and use, we use security measures that comply with federal law. These measures include computer safeguards and secured files and buildings.
How does John Deere Financial, f.s.b. collect my personal information:\r\n

We collect your personal information, for example, when you

\r\n
    \r\n
  • open an account
  • \r\n
  • use your credit card or give us your income information
  • \r\n
  • pay us by check or show your driver’s license
  • \r\n
\r\n

We also collect your personal information from others, such as credit bureaus, affiliates or other companies.

\r\n
Why cant I limit all sharing?\r\n

Federal law gives you the right to limit only

\r\n
    \r\n
  • sharing for affiliates everyday business purposes—information about your creditworthiness
  • \r\n
  • affiliates from using your information to market to you
  • \r\n
  • sharing for nonaffiliates to market to you
  • \r\n
\r\n

State laws and individual companies may give you additional rights to limit sharing. See below for more on your rights under state law.

\r\n
What happens when I limit sharing for an account I hold jointly with someone else?Your choice will apply to you. Others on your account may limit information sharing for the account, or you can also limit sharing information for them.
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Definitions
Affiliates\r\n

Companies related by common ownership or control. They can be financial and nonfinancial companies.

\r\n

• John Deere Companies including Deere & Company, Deere Credit, Inc., John Deere Construction and Forestry and John Deere Financial, f.s.b.

\r\n
Nonaffiliates\r\n

Companies not related by common ownership or control. They can be financial and nonfinancial companies.

\r\n

• Such as mortgage bankers, securities brokers-dealers, insurance companies and agents, retailers, direct marketers, airlines, publishers and non-profit organizations.

\r\n
Joint Marketing\r\n

A formal agreement between nonaffiliated companies that together market financial products or services to you.

\r\n

• John Deere Dealers

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Other important information
California ResidentsWe will not share information about you with nonaffiliated third parties, except as permitted by California law, such as to process your transactions, maintain your account or with your consent.
Vermont Residents\r\n

We will not disclose information about your creditworthiness to our affiliates and will not disclose your personal information, financial information, credit report, or health information to nonaffiliated third parties to market to you, other than as permitted by Vermont law, unless you authorize us to make those disclosures.

\r\n

Additional information concerning our privacy policies can be found at JohnDeere.com/Privacy or call 1-800-541-2969.

\r\n
\r\n
This is your Agreement. Please read it and keep it for your records.
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MediaLayoutService } from '../../../../service/media.layout.service';\r\n\r\n@Component({\r\n selector: 'app-cc-lender-consent-ucfs-terms-and-conditions',\r\n templateUrl: './cc-lender-consent-ucfs-terms-and-conditions.component.html',\r\n styleUrls: ['./cc-lender-consent-ucfs-terms-and-conditions.component.scss']\r\n})\r\nexport class CcLenderConsentUcfsTermsAndConditionsComponent implements OnInit {\r\n\r\n isMobileDevice: boolean = false;\r\n constructor(public P_MediaLayoutService: MediaLayoutService) { }\r\n\r\n ngOnInit(): void {\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n if (!localStorage.getItem('foo')) {\r\n localStorage.setItem('foo', 'no reload')\r\n window.location.reload()\r\n } else {\r\n localStorage.removeItem('foo')\r\n }\r\n if (this.isMobileDevice) {\r\n sessionStorage.setItem('IsFormDataSet', 'false');\r\n }\r\n }\r\n\r\n printLenderConsent() {\r\n let divToPrint = document.getElementById('usfsTermsAndConditions')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n private printDocument(printData: string) {\r\n let newWindow = window.open('', '_blank', 'top=-1000000px,left=0,height=100%,width=auto');\r\n newWindow?.document.write(`\r\n \r\n \r\n \r\n \r\n ${printData} \r\n \r\n \r\n `);\r\n newWindow?.document.close();\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n

\r\n \r\n \r\n Terms & Conditions:\r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n

\r\n \r\n \r\n \r\n

\r\n

\r\n \r\n \r\n Legal Notifications \r\n \r\n \r\n

\r\n

\r\n \r\n The Federal equal Credit Opportunity Act prohibits creditors from discriminating against credit applicants on the basis of race, color, religion, national origin, sex, marital status, age (provided the applicant has the capacity to enter into a binding contract); because all or part of the applicant’s income derives from any public assistance program; or because the applicant has in good faith exercised any right under the Consumer Credit Protection Act. The federal agency that administers compliance with the law concerning this creditor is the Federal Trade Commission, equal Credit Opportunity, Washington. DC 20580.\r\n \r\n

\r\n

\r\n \r\n NOTICE TO CALIFORNIA RESIDENTS ONLY: \r\n \r\n \r\n A married applicant may apply for a separate account. As required by law, you are hereby notified that a negative credit report reflecting on your credit record may be submitted to a credit reporting agency if you fail to fulfill the terms of your credit obligations. If we take any adverse action as defined by Section 1785.3 of the California Civil Code and the adverse action is based, in whole or in part, on any information contained in a consumer credit report, you have the right to obtain within 60 days a free copy of your consumer credit report from the consumer reporting agency who furnished us your consumer credit report and from any other consumer credit reporting agency which complies and maintains files on consumers on a nationwide basis. You have the right as described by Section 1785.16 of the California Civil Code to dispute the accuracy or completeness of any information in a consumer credit report furnished by the consumer credit reporting agency.\r\n \r\n

\r\n

\r\n \r\n NOTICE TO MAINE RESIDENTS ONLY: \r\n \r\n \r\n A consumer report may be requested in connection with this offer. Upon request, you will be informed whether or not a consumer report was requested, and if a report was requested, informed of the name and address of the consumer reporting agency that furnished the report. \r\n \r\n

\r\n

\r\n \r\n NOTICE TO MARYLAND RESIDENTS ONLY: \r\n \r\n \r\n Finance Charges will be made in amounts or at rates not in excess of those permitted by law. \r\n \r\n

\r\n

\r\n \r\n NOTICE TO NEW YORK RESIDENTS ONLY: \r\n \r\n \r\n A consumer report may be requested in connection with this offer. Upon your request, you will be informed whether or not a consumer report was requested, and if such report was requested, informed of the name and address of the consumer reporting agency that furnished the report. Subsequent consumer reports may be requested or utilized in connection with an update, renewal or extension of the credit for which application was made. \r\n \r\n

\r\n

\r\n \r\n NOTICE TO OHIO RESIDENTS ONLY: \r\n \r\n \r\n The Ohio laws against discrimination require that all creditors make credit equally available to all creditworthy customers, and that credit reporting agencies maintain separate credit histories on each individual upon request. The Ohio civil rights commission administers compliance with this law. \r\n \r\n

\r\n

\r\n \r\n NOTICE TO RHODE ISLAND RESIDENTS ONLY: \r\n \r\n \r\n A credit report may be requested in connection with this offer. \r\n \r\n

\r\n

\r\n \r\n NOTICE TO UTAH RESIDENTS ONLY: \r\n \r\n \r\n As required by Utah law, you are hereby notified that a negative credit report reflecting on your credit record may be submitted to a credit reporting agency if you fail to fulfill the terms of your credit obligations. \r\n \r\n

\r\n

\r\n \r\n NOTICE TO VERMONT RESIDENTS ONLY: \r\n \r\n \r\n You authorize United Consumer Financial Services (“UCFS”) to obtain credit reports about you now and in the future for all legitimate purposes associated with this offer or the account including, but not limited to: (a) evaluating the Acceptance Certificate, and (b) renewing, reviewing, modifying, and taking collection action on your account. \r\n \r\n

\r\n

\r\n \r\n NOTICE TO WISCONSIN RESIDENTS ONLY: \r\n \r\n \r\n For married Wisconsin resident, your signature confirms that this loan obligation is being incurred in the interest of your marriage or family. no provision of a marital property agreement, a unilateral statement under Section 766.59 of the Wisconsin Statutes or a court decree under Section 766.70 of the Wisconsin Statutes adversely affects the interests of the creditor unless the creditor, prior to the time the credit is granted, is furnished a copy of the agreement, statement or decree or has actual knowledge of the adverse provision when the obligation to the creditor is incurred. If the loan for which you are applying is granted, your spouse will also receive notification that credit has been extended to you. \r\n \r\n

\r\n

\r\n \r\n BUYER CONSENT: \r\n \r\n \r\n By submitting this application or stating yes to the seller, I understand I am applying for credit and I authorize the Seller, and its assignees United Consumer Financial Services Company, to access my credit reporting agency record and to authorize third parties to release whatever information is requested so that UCFS may evaluate my credit worthiness. \r\n \r\n

\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n","export class ApplicationStipulationDocument {\r\n\tpublic DocumentID: number;\r\n\tpublic SourceTypeID: number;\r\n\tpublic SourceID: number;\r\n\tpublic Path: string;\r\n\tpublic FileName: string;\r\n\tpublic DocumentType: string;\r\n\tpublic Description: string;\r\n\tpublic IsActive: boolean;\r\n\tpublic StatusID: number;\r\n\tpublic CreatedOn: Date;\r\n\tpublic CreatedBy: number;\r\n\tpublic UpdatedOn: Date;\r\n\tpublic UpdatedBy: number;\r\n\tpublic DocumentTypeID: number;\r\n\tpublic OriginalFileName: string;\r\n\r\n\tconstructor() {\r\n\t\tthis.DocumentID = null;\r\n\t\tthis.SourceTypeID = null;\r\n\t\tthis.SourceID = null;\r\n\t\tthis.Path = null;\r\n\t\tthis.FileName = null;\r\n\t\tthis.DocumentType = null;\r\n\t\tthis.Description = null;\r\n\t\tthis.IsActive = null;\r\n\t\tthis.StatusID = null;\r\n\t\tthis.CreatedOn = null;\r\n\t\tthis.CreatedBy = null;\r\n\t\tthis.UpdatedOn = null;\r\n\t\tthis.UpdatedBy = null;\r\n\t\tthis.DocumentTypeID = null;\r\n\t\tthis.OriginalFileName = null;\r\n\t}\r\n}\r\n","import { ApplicationStipulationDetails } from \"../entity/application-stipulation-details\";\r\nimport { ApplicationStipulationDocument } from \"../entity/application-stipulation-document\";\r\n\r\nexport class UploadStipulationDocument {\r\n\r\n\tpublic DocumentList: ApplicationStipulationDocument[];\r\n\tpublic StipulationDetailList: ApplicationStipulationDetails[];\r\n\tpublic applicationStipulationID: number;\r\n\tpublic stipulationStatusID: number;\r\n\tpublic applicationID: number;\r\n\tpublic stipulationTypeID: number\r\n\tconstructor() {\r\n\t\tthis.DocumentList = [];\r\n\t\tthis.StipulationDetailList = [];\r\n\t\tthis.applicationStipulationID = null;\r\n\t\tthis.stipulationStatusID = null;\r\n\t\tthis.applicationID = null;\r\n\t\tthis.stipulationTypeID = null;\r\n\r\n\t}\r\n}\r\n","import { AfterViewInit, ChangeDetectorRef, Component, EventEmitter, HostListener, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { forkJoin, ObservableInput } from 'rxjs';\r\nimport { ApplicantFormData } from '../../../applicant/models/applicant-form-data';\r\nimport { isFileTypeValid } from '../../../directive/fileType.validator';\r\nimport { FileUploadModel } from '../../../entity/fileUploadModal';\r\nimport { LookUp } from '../../../entity/lookup';\r\nimport { SharedService } from '../../../service/shared.service';\r\nimport { CustomTranslocoService } from '../../../service/transloco.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\nimport { Message } from 'primeng/api';\r\nimport { FileUpload } from 'primeng/fileupload';\r\n\r\n@Component({\r\n\tselector: 'app-fileUpload-stipulation',\r\n\ttemplateUrl: './fileUpload-stipulation.component.html',\r\n\tstyleUrls: ['./fileUpload-stipulation.component.scss'],\r\n\tproviders: [provideTranslocoScope({ scope: 'fileUpload-stipulation', alias: 'fileUpload-stipulation' })]\r\n})\r\nexport class FileUploadStipulationComponent implements OnInit, AfterViewInit {\r\n\r\n\t@Input() Options: FileUploadModel = new FileUploadModel();\r\n\t@Output() open: EventEmitter = new EventEmitter();\r\n\t@Input() SelectedDisabled: boolean = false;\r\n\t@Input() ShowDocumentLable: boolean = false;\r\n\t@Input() Files: any[] = [];\r\n\r\n\tpublic formData: ApplicantFormData;\r\n\tpublic idDocumentType: LookUp[];\r\n\tpublic selectedID: LookUp;\r\n\tpublic isFilesValid: boolean = true;\r\n\tpublic InvalidFileTypeMessageDetail: string;\r\n\tpublic InvalidFileTypeMessageSummary: string;\r\n\r\n\terrorMessages: Message[] = []; // Array to store error messages\r\n\tshowAlert: boolean = false;\r\n\r\n\tconstructor(private sharedService: SharedService,\r\n\t\tprivate toastrService: ToastrService,\r\n\t\tprivate translocoService: CustomTranslocoService,\r\n\t\tprivate changeDetRef: ChangeDetectorRef) { }\r\n\r\n\r\n\tonSelectFile(event: any) {\r\n\t\tif (this.Options.AcceptFile) {\r\n\t\t\tlet ArrayOfSelectedFile: File[] = [];\r\n\t\t\tthis.errorMessages = [];\r\n\t\t\tfor (let i = 0; i < event.files.length; i++) {\r\n\t\t\t\tconst file = event.files[i];\r\n\t\t\t\tthis.isFilesValid = isFileTypeValid(file, this.Options.AcceptFile);\r\n\t\t\t\tif (this.isFilesValid) {\r\n\t\t\t\t\tArrayOfSelectedFile.push(file);\r\n\t\t\t\t\tthis.showAlert = false;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tconst fileNameWithExtension = `${file.name}`;\r\n\t\t\t\t\tthis.InvalidFileTypeMessageDetail = this.Options.InvalidFileTypeMessageDetail;\r\n\t\t\t\t\tthis.InvalidFileTypeMessageSummary = `${fileNameWithExtension}: ${this.Options.InvalidFileTypeMessageSummary}`;\r\n\r\n\t\t\t\t\tthis.errorMessages.push({ severity: \"error\", summary: this.InvalidFileTypeMessageSummary, detail: this.InvalidFileTypeMessageDetail });\r\n\t\t\t\t\tthis.showAlert = true;\r\n\t\t\t\t\tthis.changeDetRef.markForCheck();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tevent.files = ArrayOfSelectedFile;\r\n\t\t\tthis.open.emit(event);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.open.emit(event);\r\n\t\t}\r\n\t}\r\n\r\n\tngAfterViewInit() {\r\n\t\tthis.changeDetRef.detectChanges();\r\n\t}\r\n\r\n\tremoveErrorMessage(message: Message) {\r\n\t\tconst index = this.errorMessages.indexOf(message);\r\n\t\tif (index !== -1) {\r\n\t\t\tthis.errorMessages.splice(index, 1);\r\n\t\t\tthis.changeDetRef.markForCheck();\r\n\t\t}\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tlet language = this.translocoService.getCurrentLanguage();\r\n\t\t//this.translocoService.setActiveLanguage(language);\r\n\t\t//load manual language json file\r\n\t\tthis.translocoService.loadLanguageWiseTranslationSingleJson('fileUpload-stipulation', language);\r\n\r\n\t\t// login languageId wise load language json file with added TranslocoService\r\n\t\tthis.translocoService.loadTransLocoScopeWithLanguageId(\"fileUpload-stipulation\", \"fileUpload-stipulation\", language);\r\n\t\tlet requestArray = [];\r\n\t\trequestArray.push(this.sharedService.getLookUpList(null));\r\n\t\tforkJoin(requestArray).subscribe(response => {\r\n\t\t\tlet lookUpData: LookUp[] = response[0].Result;\r\n\t\t\tthis.idDocumentType = lookUpData.filter(x => x.LookUpType === \"SocureDocumentType\");\r\n\t\t});\r\n\r\n\t}\r\n\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {{message.summary}}\r\n {{message.detail}}\r\n \r\n
\r\n
\r\n
\r\n
{{'fileUpload-stipulation.fileUploadStipulation.docMessage' | transloco}}
\r\n
\r\n
\r\n\r\n
\r\n
\r\n","import { ApplicantService } from '../../../applicant/service/applicant-service';\r\nimport { Component, OnInit, Input,AfterViewInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Statuses } from '../../../applicant/entity/statuses';\r\nimport { forkJoin } from 'rxjs';\r\nimport { ModalConfigurationComponent } from 'src/app/entity/modalConfigurationComponent';\r\nimport { FileUploadModel } from 'src/app/entity/fileUploadModal';\r\nimport { LookUp } from 'src/app/entity/lookup';\r\nimport { SharedService } from 'src/app/service/shared.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { Constants } from '../../constant';\r\nimport { ConfirmationBoxService } from '../confirmation-box/confirmation-box.service';\r\nimport { ConfirmationBox } from '../confirmation-box/confirmation-box.model';\r\nimport { ApplicationStipulationDocument } from 'src/app/applicant/entity/application-stipulation-document';\r\nimport { AuthService } from 'src/app/service/auth.service';\r\nimport { ApplicationStipulationDetails } from 'src/app/applicant/entity/application-stipulation-details';\r\nimport { UploadStipulationDocument } from 'src/app/applicant/models/upload-stipulation-document';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\nimport { CustomTranslocoService } from 'src/app/service/transloco.service';\r\n\r\n\r\n@Component({\r\n selector: 'upload-stipulated-docs',\r\n templateUrl: './upload-stipulation-document.component.html',\r\n styleUrls: ['./upload-stipulation-document.component.scss'],\r\n providers: [provideTranslocoScope({scope:'upload-stipulation-document', alias:'stipulaion'})]\r\n\r\n})\r\nexport class UploadStipulationDocumentComponent implements OnInit,AfterViewInit {\r\n @Input() modalConfigurationComponent: ModalConfigurationComponent;\r\n\r\n public applicationId: number;\r\n private applicantId: number;\r\n private applicationStipulationID: number;\r\n private stipulationStatusID: number;\r\n private sourceId: number;\r\n private sourceTypeId: number;\r\n public fileUploadOptions: FileUploadModel = new FileUploadModel({\r\n ChooseLabel: 'Select File',\r\n ShowUploadButton: false,\r\n ShowCancelButton: false,\r\n Draggable: true,\r\n Mode: 'advanced',\r\n Multiple: true,\r\n AcceptFile:\".pdf,image/*\",\r\n InvalidFileTypeMessageSummary:\"\"\r\n });\r\n public isFileUpload: boolean = false;\r\n public documentList: any = [];\r\n public uploadDocumentList: any = [];\r\n public totalRecords: number = null;\r\n public stipulationTypeList: LookUp[];\r\n private stipulationDetailsList: ApplicationStipulationDetails[];\r\n private language : string = 'en';\r\n private prevLang : string = 'en';\r\n //#region constructor\r\n constructor(\r\n private _applicantService: ApplicantService,\r\n private _authenticateService: AuthService,\r\n private _sharedService: SharedService,\r\n private _confirmationBoxService: ConfirmationBoxService,\r\n public activeModal: NgbActiveModal,\r\n public translocoService : CustomTranslocoService) {\r\n }\r\n //#endregion constructor\r\n\r\n //#region ngOnInit\r\n ngOnInit() {\r\n if (this.modalConfigurationComponent == null || this.modalConfigurationComponent.modalId == null) {\r\n return;\r\n }\r\n this.prevLang = this.translocoService.getLoginLanguage();\r\n this.language = (this.modalConfigurationComponent.modalData[3] != null) ? this.modalConfigurationComponent.modalData[3].toString() : this.translocoService.getCurrentLanguage();\r\n this.translocoService.setActiveLanguage(this.language);\r\n \r\n let requestArray = [];\r\n this.documentList = new Array();\r\n this.applicationId = Number(this.modalConfigurationComponent.modalData[0]);\r\n this.applicantId = Number(this.modalConfigurationComponent.modalData[1]);\r\n this.applicationStipulationID = Number(this.modalConfigurationComponent.modalData[2]);\r\n this.sourceId = Number(this.modalConfigurationComponent.modalData[3]);\r\n this.sourceTypeId = Number(this.modalConfigurationComponent.modalData[4]);\r\n this.stipulationStatusID = Number(this.modalConfigurationComponent.modalData[5]);\r\n\r\n requestArray.push(this._sharedService.getLookUpList(\"StipulationType\", this.applicationId));\r\n requestArray.push(this._applicantService.getApplicationStipulationDetailsByStipulationID(this.applicationStipulationID));\r\n requestArray.push(this._applicantService.getApplicationStipulationUploadedDocuments(this.applicationId, this.sourceTypeId));\r\n forkJoin(requestArray).subscribe((data) => {\r\n let lookupList = data[0].Result;\r\n this.stipulationDetailsList = data[1].Result;\r\n this.stipulationTypeList = lookupList.filter((x: any) => this.stipulationDetailsList.map(y => y.StipulationTypeID).includes(x.LookUpID));\r\n if (data[2].IsSuccess && data[2].Result != null && data[2].Result.length > 0) {\r\n this.documentList = data[2].Result;\r\n }\r\n }, (error => {\r\n console.log(error);\r\n }));\r\n\r\n }\r\n //#endregion ngOnInit\r\n \r\n //#region downloadDocument\r\n downloadDocument(document: any) {\r\n window.location.href = environment.apiUrl + Constants.WEB_API_URL_DOCUMENT_DOWNLOAD_BY_FILENAME + '?fileName=' + encodeURIComponent(document.OriginalFileName) + '&filePath=' + document.Path;\r\n }\r\n //#endregion downloadDocument\r\n\r\n //#region documentList\r\n viewDocument(document: any) {\r\n window.open(environment.apiUrl + Constants.WEB_API_URL_DOCUMENT_VIEW + '?fileName=' + encodeURIComponent(document.OriginalFileName) + '&filePath=' + document.Path, '_blank');\r\n }\r\n //#endregion viewDocument\r\n\r\n //#region UploadDocument\r\n public UploadDocument(event: any): void {\r\n if (event.files.length == 0) {\r\n return;\r\n }\r\n //Check already uploaded file\r\n let _uploadFileList: any = [];\r\n let isDocAvailable: boolean = false;\r\n Array.from(event.files).forEach((_file: any) => {\r\n let docFind = this.documentList.filter((doc: any) => doc.OriginalFileName.toLowerCase() === _file.name.toLowerCase());\r\n let uploadedDocFind = this.uploadDocumentList.filter((doc: any) => doc.OriginalFileName.toLowerCase() === _file.name.toLowerCase());\r\n if (docFind.length <= 0 && uploadedDocFind.length <= 0) {\r\n _uploadFileList.push(_file);\r\n }\r\n else {\r\n isDocAvailable = true;\r\n }\r\n });\r\n if (!isDocAvailable) {\r\n let languageKey: string = \"stipulaion.stipulation.toastMessageCtrl.uploadDoc\";\r\n this._applicantService.uploadStipulationDocument(_uploadFileList, this.applicationId.toString(), languageKey).subscribe((\r\n data => {\r\n Array.from(data.Result).forEach((_file: any) => {\r\n this.uploadDocumentList.push({\r\n OriginalFileName: _file.OriginalFileName,\r\n FileName: _file.FileName,\r\n Path: _file.Path\r\n });\r\n });\r\n this.totalRecords = this.uploadDocumentList.length;\r\n }), (\r\n error => {\r\n console.log(error)\r\n }));\r\n }\r\n else {\r\n let docLabel = this.translocoService.translate(\"stipulaion.stipulation.uploadDocLabel\");\r\n let docMessage = this.translocoService.translate(\"stipulaion.stipulation.duplicateDocAlert\");\r\n let okValue = this.translocoService.translate(\"stipulaion.stipulation.ok\");\r\n this._confirmationBoxService.Open(\r\n new ConfirmationBox(docLabel, docMessage, true, false, false, false, okValue, '', '', ''), \"md\").then(function (result) {\r\n });\r\n\r\n }\r\n }\r\n //#endregion UploadDocument\r\n\r\n //#region DeleteDocument\r\n public DeleteDocument(fileIndex: number, fileName: string): void {\r\n let vm = this;\r\n let header = this.translocoService.translate(\"stipulaion.stipulation.deleteDoc\");\r\n let message = this.translocoService.translate(\"stipulaion.stipulation.alertMsg\");\r\n let yesValue = this.translocoService.translate(\"stipulaion.stipulation.yes\");\r\n let noValue = this.translocoService.translate(\"stipulaion.stipulation.no\");\r\n this._confirmationBoxService.Open(\r\n new ConfirmationBox(header, message, true, true, false, false, yesValue, noValue, '', ''), \"md\").then(function (result) {\r\n if (result == true) {\r\n let languageKey: string = \"stipulaion.stipulation.toastMessageCtrl.deleteDoc\";\r\n vm._applicantService.DeleteDocument(fileName, languageKey).subscribe(\r\n (data => {\r\n vm.uploadDocumentList.splice(fileIndex, 1);\r\n vm.totalRecords = vm.uploadDocumentList.length;\r\n }\r\n ), (error => {\r\n console.log(error);\r\n }));\r\n }\r\n });\r\n }\r\n //#endregion DeleteDocument\r\n\r\n public Close() {\r\n this.translocoService.setActiveLanguage(this.prevLang);\r\n this.activeModal.close();\r\n }\r\n\r\n //#region UpdateApplicantionStipulaionDocument\r\n public UpdateApplicantionStipulaionDocument() {\r\n if ((!(this.uploadDocumentList == undefined || this.uploadDocumentList == null))\r\n && this.uploadDocumentList.length > 0) {\r\n let _documentList = [];\r\n for (let i = 0; i < this.uploadDocumentList.length; i++) {\r\n let documentInformation = new ApplicationStipulationDocument();\r\n documentInformation.SourceTypeID = this.sourceTypeId;//Source Type of Applicant\r\n documentInformation.SourceID = this.sourceId;\r\n documentInformation.FileName = this.uploadDocumentList[i].FileName;\r\n documentInformation.Path = this.uploadDocumentList[i].Path; //ToDo to give File path name \r\n documentInformation.OriginalFileName = this.uploadDocumentList[i].OriginalFileName;\r\n documentInformation.DocumentType = this.uploadDocumentList[i].FileName.split('.').pop();\r\n documentInformation.Description = 'Applicant Stipulation Document uploaded by source Id' + this.sourceId\r\n documentInformation.IsActive = true;\r\n documentInformation.StatusID = 551;\r\n documentInformation.CreatedBy = parseInt(this._authenticateService.currentUserValue.UserID);\r\n _documentList.push(documentInformation);\r\n }\r\n let uploadStipulationDocument = new UploadStipulationDocument();\r\n uploadStipulationDocument.applicationStipulationID = this.applicationStipulationID;\r\n uploadStipulationDocument.stipulationStatusID = this.stipulationStatusID;\r\n uploadStipulationDocument.applicationID = this.applicationId;\r\n uploadStipulationDocument.stipulationTypeID = null;\r\n uploadStipulationDocument.DocumentList = _documentList;\r\n uploadStipulationDocument.StipulationDetailList = this.stipulationDetailsList;\r\n\r\n this._applicantService.addUpdateApplicantStipulationDocuments(uploadStipulationDocument).subscribe((data => {\r\n if (data.IsSuccess) {\r\n this.translocoService.setActiveLanguage(this.language);\r\n this.activeModal.close(data);\r\n }\r\n }));\r\n }\r\n else {\r\n this.translocoService.setActiveLanguage(this.language);\r\n this.activeModal.dismiss('Cross click');\r\n }\r\n }\r\n //#endregion UpdateApplicantionStipulaionDocument\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n let chooseLabel: string = this.translocoService.translate('stipulaion.stipulation.fileuploadOptions.chooseLabel');\r\n let invalidFileTypeLable: string = this.translocoService.translate('stipulaion.stipulation.fileuploadOptions.invalidFileTypeLable');\r\n let invalidFilTypeSummaryLable: string = this.translocoService.translate('stipulaion.stipulation.fileuploadOptions.invalidFilTypeSummaryLable');\r\n\r\n this.fileUploadOptions = new FileUploadModel({\r\n ChooseLabel: chooseLabel,\r\n ShowUploadButton: false,\r\n ShowCancelButton: false,\r\n Draggable: true,\r\n Mode: 'advanced',\r\n Multiple: true,\r\n AcceptFile: \".pdf,image/*\",\r\n InvalidFileTypeMessageSummary: invalidFilTypeSummaryLable,\r\n InvalidFileTypeMessageDetail: invalidFileTypeLable// 'Invalid file type, allowed file types: .pdf, image/*',\r\n });\r\n }, 1000);\r\n }\r\n}\r\n","
\r\n\r\n
\r\n
\r\n
\r\n

\r\n {{'stipulaion.stipulation.header' |transloco}}\r\n {{'stipulaion.stipulation.appId' |transloco}} : {{applicationId}}\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n # \r\n {{'stipulaion.stipulation.table.fileName' |transloco}}\r\n {{'stipulaion.stipulation.table.lastUpdated' |transloco}}\r\n {{'stipulaion.stipulation.table.action' |transloco}}\r\n \r\n \r\n \r\n \r\n \r\n #\r\n {{rowIndex+1}}\r\n \r\n \r\n {{'stipulaion.stipulation.table.fileName' |transloco}}{{documentInfo.OriginalFileName}}\r\n \r\n \r\n {{'stipulaion.stipulation.table.lastUpdated' |transloco}}{{documentInfo.UpdatedOn|date:'M/d/yyyy hh:mm aa'}}\r\n \r\n \r\n {{'stipulaion.stipulation.table.action' |transloco}}\r\n
\r\n \r\n \r\n \r\n   \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{'stipulaion.stipulation.table.noData' |transloco}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{'stipulaion.stipulation.additionDoc' |transloco}}\r\n \r\n \r\n \r\n \r\n {{stipulationTypeInfo.Name}}\r\n {{stipulationTypeInfo.Description}}\r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n
0\">\r\n
\r\n \r\n \r\n \r\n # \r\n \r\n {{'stipulaion.stipulation.table.fileName' |transloco}}\r\n \r\n \r\n {{'stipulaion.stipulation.table.action' |transloco}}\r\n \r\n \r\n \r\n \r\n \r\n #{{rowIndex+1}}\r\n \r\n \r\n {{'stipulaion.stipulation.table.fileName |transloco'}}\r\n {{documentInfo.OriginalFileName}}\r\n \r\n \r\n \r\n {{'stipulaion.stipulation.table.action' |transloco}}\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","export enum StipulationStatusesEnum {\r\n STIPULATION_CREATE = 1101,\r\n STIPULATION_VIEW = 1102,\r\n STIPULATION_COMPLETE = 1103\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Pipe({\r\n name: 'safe'\r\n})\r\nexport class SafePipe implements PipeTransform {\r\n\r\n constructor(private sanitizer: DomSanitizer) { }\r\n\r\n transform(url: string) {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ModalConfigurationComponent } from 'src/app/entity/modalConfigurationComponent';\r\nimport { environment } from '../../../../environments/environment';\r\n\r\n@Component({\r\n selector: 'app-flex-shopper-vcard',\r\n templateUrl: './flex-shopper-vcard.component.html',\r\n styleUrls: ['./flex-shopper-vcard.component.scss']\r\n})\r\nexport class FlexShopperVCardComponent implements OnInit {\r\n @Input() modalConfigurationComponent: ModalConfigurationComponent;\r\n public vcardUrl: string = \"\";\r\n\r\n constructor(public activeModal: NgbActiveModal) {\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.modalConfigurationComponent == null) {\r\n return;\r\n }\r\n\r\n let offerUrl = environment.flexShopperVCardBaseUrl;\r\n this.vcardUrl = offerUrl.replace('tfcOrderID', this.modalConfigurationComponent.modalData[0]);\r\n }\r\n\r\n close() {\r\n this.activeModal.close();\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Virtual Card Offer\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ModalConfigurationComponent } from '../../../entity/modalConfigurationComponent';\r\nimport { ApplicantService } from '../../service/applicant-service';\r\nimport { Lenders } from 'src/app/shared/enum/lenders';\r\nimport { SharedService } from 'src/app/service/shared.service';\r\nimport { LenderStatusesEnum } from 'src/app/shared/enum/lender-statuses-enum';\r\nimport { ApplicantDashboardSignalRService } from '../../service/applicant-dashboard-signalr.service';\r\nimport { ApplicantDasboardBroadcast } from '../../models/applicant-dasboard-broadcast';\r\nimport { DatePipe } from '@angular/common';\r\nimport { SessionService } from '../../../service/session.service';\r\nimport { AuthService } from '../../../service/auth.service';\r\nimport { Lender } from '../../models/lender';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\nimport { CustomTranslocoService } from '../../../service/transloco.service';\r\n\r\n@Component({\r\n selector: 'app-amex-virtual-card',\r\n templateUrl: './amex-virtual-card.component.html',\r\n styleUrls: ['./amex-virtual-card.component.scss'],\r\n providers: [DatePipe,provideTranslocoScope({scope:'virtual-card/amex-virtual-card',alias:'amexVirtualCard'})]\r\n})\r\nexport class AmexVirtualCardComponent implements OnInit {\r\n @Input() modalConfigurationComponent: ModalConfigurationComponent;\r\n public applicationId: number;\r\n public lenderId: number;\r\n private lenderStatusId: number = null;\r\n public virtualCardDetails: any;\r\n public showAmexCard: boolean = null;\r\n public isPaymentReadyStatus: boolean = null;\r\n public countDown: any;\r\n public showWarnings: boolean = false;\r\n public enableRedirectionOnReturnURL: boolean = false;\r\n private returnUrlTimer: any;\r\n public waitForFulfilledFundedEvent: boolean = false;\r\n constructor(private applicantService: ApplicantService,\r\n private sharedService: SharedService,\r\n private signalService: ApplicantDashboardSignalRService,\r\n public activeModal: NgbActiveModal,\r\n private sessionService: SessionService,\r\n private authService: AuthService,\r\n private datePipe: DatePipe,\r\n private translocoService: CustomTranslocoService) { }\r\n\r\n ngOnInit(): void {\r\n this.applicationId = (this.modalConfigurationComponent.modalData[0] != null) ? Number(this.modalConfigurationComponent.modalData[0]) : 0;\r\n this.lenderId = (this.modalConfigurationComponent.modalData.length > 1 && this.modalConfigurationComponent.modalData[1] != null) ? Number(this.modalConfigurationComponent.modalData[1]) : 0;\r\n this.lenderStatusId = (this.modalConfigurationComponent.modalData.length > 2 && this.modalConfigurationComponent.modalData[2] != null) ? Number(this.modalConfigurationComponent.modalData[2]) : 0;\r\n this.waitForFulfilledFundedEvent = (this.modalConfigurationComponent.modalData.length > 3 && this.modalConfigurationComponent.modalData[3] != null) ? Boolean(this.modalConfigurationComponent.modalData[3]) : false;\r\n let isAmexCardAvailable = (this.modalConfigurationComponent.modalData.length > 4 && this.modalConfigurationComponent.modalData[4] != null) ? Boolean(this.modalConfigurationComponent.modalData[4]) : true;\r\n if (this.modalConfigurationComponent.modalData.length > 4 && this.modalConfigurationComponent.modalData[4] != null) {\r\n this.enableRedirectionOnReturnURL = Boolean(this.modalConfigurationComponent.modalData[4]) == true ? false : true;\r\n }\r\n\r\n if (this.waitForFulfilledFundedEvent === true) {\r\n this.signalService.initSignalR();\r\n this.signalService.statuschanged$.subscribe((message) => {\r\n this.refreshStatus(message);\r\n });\r\n if (isAmexCardAvailable == true) {\r\n if (this.lenderId == Lenders.Uown || this.lenderId == Lenders.Vernance_LLC) {\r\n this.showWarnings = true;\r\n this.timer(1.5);//1=one minute;\r\n }\r\n this.sharedService.GetCurrentStatusesByApplicationId(this.applicationId).subscribe(statusResponse => {\r\n let applicationstatus = statusResponse.Result;\r\n if (applicationstatus.LenderStatusID !== null && applicationstatus.LenderStatusID != undefined && (applicationstatus.LenderStatusID === LenderStatusesEnum.Fulfilled\r\n || applicationstatus.LenderStatusID === LenderStatusesEnum.Funded\r\n || (this.lenderId == Lenders.Uown && applicationstatus.LenderStatusID === LenderStatusesEnum.SigningComplete)\r\n || (this.lenderId == Lenders.Uown && applicationstatus.LenderStatusID === LenderStatusesEnum.PendingFunding))) {\r\n this.getVirtualCardDetails();\r\n }\r\n else {\r\n this.showAmexCard = false;\r\n }\r\n });\r\n }\r\n else {\r\n if (this.lenderId == Lenders.Uown || this.lenderId == Lenders.Vernance_LLC) {\r\n this.showWarnings = true;\r\n this.timer(1.5);//1=one minute;\r\n }\r\n this.showAmexCard = false;\r\n }\r\n }\r\n else {\r\n this.getVirtualCardDetails();\r\n }\r\n\r\n\r\n }\r\n\r\n close() {\r\n if (this.waitForFulfilledFundedEvent) {\r\n this.redirectToReturnURL();\r\n }\r\n else {\r\n let language = this.translocoService.getLoginLanguage();\r\n this.translocoService.setActiveLanguage(language);\r\n this.activeModal.close();\r\n }\r\n\r\n }\r\n\r\n getVirtualCardDetails() {\r\n this.applicantService.getApplicationVirtualCardByApplicationID(this.applicationId, this.lenderId)\r\n .subscribe(response => {\r\n if (response.IsSuccess == false) {\r\n this.activeModal.dismiss();\r\n }\r\n else {\r\n let cardNumber: string = response.Result.CardNumber;\r\n let formatedCardNumber: string = \"\";\r\n formatedCardNumber = cardNumber.substring(0, 4);\r\n formatedCardNumber = formatedCardNumber.concat(\" \", cardNumber.substring(4, 10));\r\n formatedCardNumber = formatedCardNumber.concat(\" \", cardNumber.substring(10, 15));\r\n this.virtualCardDetails = response.Result;\r\n this.virtualCardDetails.CardNumber = formatedCardNumber;\r\n this.showAmexCard = true;\r\n let todayDate = new Date();\r\n let activeToDate = new Date(this.datePipe.transform(this.virtualCardDetails.ActiveToDate, 'MM/dd/yyyy'));\r\n this.isPaymentReadyStatus = (activeToDate >= todayDate) ? true : false;\r\n if (this.enableRedirectionOnReturnURL == true) {\r\n this.timer(1.5);\r\n }\r\n\r\n }\r\n }, error => {\r\n console.log(error);\r\n })\r\n }\r\n private refreshStatus(message: ApplicantDasboardBroadcast) {\r\n console.log(\"Event Triggered\");\r\n console.log(message);\r\n if (this.applicationId == message.payload.ApplicationID\r\n && (message.payload.LenderStatusID === LenderStatusesEnum.Fulfilled\r\n || message.payload.LenderStatusID === LenderStatusesEnum.Funded\r\n || message.payload.LenderStatusID === LenderStatusesEnum.PendingFunding\r\n || message.payload.LenderStatusID === LenderStatusesEnum.SigningComplete)\r\n && ((message.payload.IsAmexVirtualCardAvailable != null || message.payload.IsAmexVirtualCardAvailable != undefined) && message.payload.IsAmexVirtualCardAvailable == true)) {\r\n this.getVirtualCardDetails();\r\n }\r\n }\r\n\r\n timer(minute: any) {\r\n // let minute = 1;\r\n let seconds: number = minute * 60;\r\n let textSec: any = \"0\";\r\n let statSec: number = minute * 60;\r\n\r\n const timer = setInterval(() => {\r\n seconds--;\r\n if (statSec != 0) statSec--;\r\n else statSec = 59;\r\n\r\n if (statSec < 10) {\r\n textSec = \"0\" + statSec;\r\n } else textSec = statSec;\r\n\r\n this.countDown = `${textSec}`;\r\n if (seconds == 0) {\r\n console.log(\"finished\");\r\n clearInterval(timer);\r\n this.redirectToReturnURL();\r\n }\r\n }, 1000);\r\n }\r\n\r\n private redirectToReturnURL() {\r\n this.applicantService.getMerchantReturnUrlDetails(this.applicationId)\r\n .subscribe(data => {\r\n if (data.Result.EnableReturnURL != null && data.Result.EnableReturnURL == true) {\r\n console.log(data);\r\n this.sessionService.clear();\r\n this.authService.logout();\r\n window.open(data.Result.ReturnURL, \"_self\");\r\n }\r\n else {\r\n let language = this.translocoService.getLoginLanguage();\r\n this.translocoService.setActiveLanguage(language);\r\n this.activeModal.close();\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n ngAfterViewInit() {\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n

{{countDown}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
    \r\n
  • {{'amexVirtualCard.amexWaitingMessageFirstLabel'|transloco}}
  • \r\n
  • {{'amexVirtualCard.amexWaitingMessageSecondLabel'|transloco}}
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
CVV \r\n {{virtualCardDetails.CardSecurityCode}}\r\n
\r\n ZIP CODE \r\n \r\n {{virtualCardDetails.ZipCode}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{virtualCardDetails.CardNumber}}\r\n
\r\n
\r\n
\r\n
\r\n {{virtualCardDetails.ApplicantName}}\r\n
\r\n
\r\n
\r\n
EXP DATE
\r\n
\r\n
\r\n
\r\n {{virtualCardDetails.ExpirationDate|date:'MM/yy'}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n TAX EXEMPT IF NUMBER APPEARS BELOW\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{virtualCardDetails.TaxExemptNumber}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { NgbActiveModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { ModalConfigurationComponent } from \"../../entity/modalConfigurationComponent\";\r\nimport { AuthService } from \"../../service/auth.service\";\r\nimport { SessionService } from \"../../service/session.service\";\r\nimport { LenderStatusesEnum } from \"../../shared/enum/lender-statuses-enum\";\r\nimport { ApplicantDasboardBroadcast } from \"../models/applicant-dasboard-broadcast\";\r\nimport { ApplicantDashboardSignalRService } from \"../service/applicant-dashboard-signalr.service\";\r\nimport { ApplicantService } from \"../service/applicant-service\";\r\nimport { provideTranslocoScope } from \"@jsverse/transloco\";\r\n\r\n@Component({\r\n selector: 'app-return-url-redirect',\r\n templateUrl: './return-url-redirect.component.html',\r\n styleUrls: ['./return-url-redirect.component.scss'],\r\n providers: [provideTranslocoScope({scope:'return-url-redirect',alias:'returnRedirectURL'})]\r\n})\r\nexport class ReturnURLRedirectComponent implements OnInit {\r\n @Input() modalConfigurationComponent: ModalConfigurationComponent;\r\n public applicationId: number;\r\n public countDown: any;\r\n\r\n constructor(\r\n private signalService: ApplicantDashboardSignalRService,\r\n public activeModal: NgbActiveModal,\r\n private sessionService: SessionService,\r\n private authService: AuthService,\r\n private applicantService: ApplicantService) { }\r\n\r\n ngOnInit(): void {\r\n this.applicationId = (this.modalConfigurationComponent.modalData[0] != null) ? Number(this.modalConfigurationComponent.modalData[0]) : 0;\r\n this.signalService.initSignalR();\r\n this.signalService.statuschanged$.subscribe((message) => {\r\n this.refreshStatus(message);\r\n });\r\n this.timer(2);\r\n }\r\n\r\n timer(minute: any) {\r\n // let minute = 1;\r\n let seconds: number = minute * 60;\r\n let textSec: any = \"0\";\r\n let statSec: number = minute * 60;\r\n\r\n const prefix = minute < 10 ? \"0\" : \"\";\r\n\r\n const timer = setInterval(() => {\r\n seconds--;\r\n if (statSec != 0) statSec--;\r\n else statSec = 59;\r\n\r\n if (statSec < 10) {\r\n textSec = \"0\" + statSec;\r\n } else textSec = statSec;\r\n\r\n // this.countDown = `${prefix}${Math.floor(seconds / 60)}:${textSec}`;\r\n this.countDown = `${textSec}`;\r\n if (seconds == 0) {\r\n console.log(\"finished\");\r\n clearInterval(timer);\r\n this.close();\r\n }\r\n }, 1000);\r\n }\r\n\r\n close() {\r\n this.activeModal.close();\r\n }\r\n private refreshStatus(message: ApplicantDasboardBroadcast) {\r\n if (this.applicationId == message.payload.ApplicationID\r\n && (message.payload.LenderStatusID === LenderStatusesEnum.Fulfilled\r\n || message.payload.LenderStatusID === LenderStatusesEnum.Funded)) {\r\n this.applicantService.getMerchantReturnUrlDetails(this.applicationId)\r\n .subscribe(data => {\r\n console.log(data);\r\n if (data.Result.EnableReturnURL != null || data.Result.EnableReturnURL != undefined && data.Result.EnableReturnURL == true) {\r\n this.sessionService.clear();\r\n this.authService.logout();\r\n window.open(data.Result.ReturnURL, \"_self\");\r\n }\r\n });\r\n\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \"Responsive\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n

{{countDown}}

\r\n
\r\n\r\n\r\n
\r\n
\r\n {{'returnRedirectURL.agreementSignedLabel'|transloco}}

{{'returnRedirectURL.donotCloseWindowLabel'|transloco}}\r\n {{'returnRedirectURL.contactLabel'|transloco}}\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","export enum ApplicationModal\r\n{\r\n Online_Application = 5001,\r\n Simplified_Application = 5002,\r\n BusinessRental_Application = 5003\r\n}\r\n","import { Observable } from \"rxjs/internal/Observable\";\r\nimport { ECommerceEmailConfigLite } from \"../../models/ecommerce/ecommerce-email-config-lite\";\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { environment } from \"../../../../environments/environment\";\r\nimport { Constants } from \"../../../shared/constant\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { catchError } from \"rxjs/internal/operators/catchError\";\r\nimport { throwError } from \"rxjs/internal/observable/throwError\";\r\nimport { map } from \"rxjs/internal/operators/map\";\r\nimport { Subject, switchMap } from \"rxjs\";\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n })\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ECommerceIntegrationService {\r\n constructor\r\n (\r\n private http: HttpClient\r\n ) {\r\n }\r\n\r\n public sendEmail(emailConfig: ECommerceEmailConfigLite): Observable {\r\n const apiUrl = environment.ecommerceIntegrationApiBaseUrl + Constants.ECOMMERCE_INTEGRATION_SEND_EMAIL_API_RELATIVE_URL; \r\n return this.http.post(apiUrl, emailConfig, httpOptions).pipe(\r\n map(response => {\r\n console.log(\"Send Email Response: \", response); \r\n return response;\r\n }),\r\n catchError(this.handleError)\r\n );\r\n }\r\n \r\n private handleError(error: HttpErrorResponse) {\r\n if (error.error instanceof ErrorEvent) {\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n console.error(JSON.stringify(error));\r\n }\r\n\r\n return throwError(error.error);\r\n }; \r\n}\r\n","import { ECommerceEmailNotificationType } from \"./ecommerce-email-notification-type\";\r\n\r\n// Contains basic information of ECommerce Email Configuration\r\nexport class ECommerceEmailConfigLite {\r\n leadId?: number;\r\n orderName?: string;\r\n notificationType?: ECommerceEmailNotificationType;\r\n\r\n constructor() {\r\n this.leadId = null;\r\n this.orderName = null;\r\n this.notificationType = null;\r\n }\r\n}","// Represents ECommerce Email Notification Type\r\nexport enum ECommerceEmailNotificationType {\r\n None = 0,\r\n ApplicationPendingWithPaymentProviderForLongerDuration = 1,\r\n}","export class IntervalManager {\r\n //private activeIntervals: Set = new Set();\r\n\r\n // start(callback: () => void, interval: number): number {\r\n // this.clearAll();\r\n // const intervalId = setInterval(callback, interval) as unknown as number;\r\n // this.activeIntervals.add(intervalId);\r\n // return intervalId;\r\n // }\r\n\r\n private activeIntervals: Set> = new Set();\r\n\r\n start(callback: () => void, interval: number): ReturnType {\r\n const intervalId = setInterval(callback, interval);\r\n this.activeIntervals.add(intervalId);\r\n return intervalId;\r\n }\r\n\r\n\r\n clearAll(): void {\r\n this.activeIntervals.forEach(intervalId => clearInterval(intervalId));\r\n this.activeIntervals.clear();\r\n }\r\n\r\n stop(intervalId: ReturnType): void {\r\n clearInterval(intervalId);\r\n this.activeIntervals.delete(intervalId);\r\n }\r\n\r\n \r\n\r\n}","import { DatePipe } from '@angular/common';\r\nimport { AfterViewInit, Component, HostListener, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ModalConfigurationComponent } from 'src/app/entity/modalConfigurationComponent';\r\nimport { UploadStipulationDocumentComponent } from 'src/app/shared/components/upload-stipulation-document/upload-stipulation-document.component';\r\nimport { InvoiceStatusesEnum } from 'src/app/shared/enum/invoice-statuses-enum';\r\nimport { LenderStatusesEnum } from 'src/app/shared/enum/lender-statuses-enum';\r\nimport { Statuses } from '../../entity/statuses';\r\nimport { MediaLayoutService } from '../../service/media.layout.service';\r\nimport { SessionService } from '../../service/session.service';\r\nimport { SessionService as SimplifiedSessionData } from '../../simplified.UI/services/session.service';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { Lenders } from '../../shared/enum/lenders';\r\nimport { StipulationStatusesEnum } from '../../shared/enum/stipulation-statuses-enum';\r\nimport { FlexShopperSigningRoomComponent } from '../signing-room/lender-fs/flex-shopper-signing-room/flex-shopper-signing-room.component';\r\nimport { FlexShopperVCardComponent } from '../approval-display/flex-shopper-vcard/flex-shopper-vcard.component';\r\nimport { ApplicationStatus } from '../entity/application-status-enum';\r\nimport { ApplicantDasboardBroadcast } from '../models/applicant-dasboard-broadcast';\r\nimport { ApplicantDashboardData } from '../models/applicant-dashboard-data';\r\nimport { ApplicantFormData } from '../models/applicant-form-data';\r\nimport { ApplicationStatusPostMessage } from '../models/application-status-post-message';\r\nimport { FlxLeaseAgreement } from '../models/flx/flx-lease-agreement';\r\nimport { OnlineApplicationMode } from '../models/online-application-mode';\r\nimport { ApplicantDashboardSignalRService } from '../service/applicant-dashboard-signalr.service';\r\nimport { ApplicantService } from '../service/applicant-service';\r\nimport { FormDataService } from '../service/form-data.service';\r\nimport { LenderService } from '../service/lender-service';\r\nimport { AffESignatureComponent } from '../signing-room/lender-aff/aff-e-signature/aff-e-signature.component';\r\nimport { SigningRoomCfBankDetailComponent } from '../signing-room/lender-cf/cf-bank/cf-bank-detail.component';\r\nimport { SingingRoomCfESignatureComponent } from '../signing-room/lender-cf/cf-e-signature/cf-e-signature.component';\r\nimport { SingingRoomCfOfferSelectionComponent } from '../signing-room/lender-cf/cf-offer-selection/cf-offer-selection.component';\r\nimport { UownESignatureComponent } from '../signing-room/lender-uown/uown-e-signature/uown-e-signature.component';\r\nimport { UownOfferSelectionComponent } from '../signing-room/lender-uown/uown-offer-selection/uown-offer-selection.component';\r\nimport { AmexVirtualCardComponent } from '../virtual-card/amex-virtual-card/amex-virtual-card.component';\r\nimport { IFramePostMessage } from '../models/iframe-post-message';\r\nimport { forkJoin } from 'rxjs';\r\nimport { LenderFundingPartner } from '../models/lender-funding-partner';\r\nimport { AFFConsentResponse } from '../entity/aff-terms';\r\nimport { isNullOrUndefined } from 'is-what';\r\nimport { ReturnURLRedirectComponent } from '../return-URL-redirect/return-url-redirect.component';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\nimport { DetectMerchantRoutingService } from 'src/app/service/detect-merchant-routing.service';\r\nimport { SimplifiedAuthService } from '../../simplified.UI/services/simplified-auth.service';\r\nimport { ApplicationModal } from '../../shared/enum/ApplicationModal';\r\nimport { ApplicationRedirectionInfo } from '../models/ecommerce/application-redirection-info';\r\nimport { ECommerceIntegrationService } from '../service/ecommerce/ecommerce-integration-service';\r\nimport { ECommerceEmailConfigLite } from '../models/ecommerce/ecommerce-email-config-lite';\r\nimport { ECommerceEmailNotificationType } from '../models/ecommerce/ecommerce-email-notification-type';\r\nimport { Constants } from 'src/app/shared/constant';\r\nimport { IntervalManager } from './interval-manager';\r\ndeclare const nid: any;\r\n@Component({\r\n\tselector: 'app-existing-applications',\r\n\ttemplateUrl: './existing-applications.component.html',\r\n\tstyleUrls: ['./existing-applications.component.scss'],\r\n\tproviders: [DatePipe]\r\n})\r\nexport class ExistingApplicationsComponent implements OnInit, AfterViewInit {\r\n\r\n\t//#region Variable Declaration\r\n\tpublic existingApps: ApplicantDashboardData[];\r\n\tpublic isMobileDevice: boolean = false;\r\n\tpublic formData: ApplicantFormData;\r\n\tpublic StipulationStatus: StipulationStatusesEnum;\r\n\tpublic OnlineApplicationMode: typeof OnlineApplicationMode = OnlineApplicationMode;\r\n\tpublic routelink: string = \"identity\";\r\n\tprivate readonly sourceTypeID: number = 4; //Applicant Source Type ID\r\n\tpublic statusList: Statuses[] = [];\r\n\tpublic filterApplicationStatusList: Statuses[] = [];\r\n\tpublic filterLenderStatusList: Statuses[] = [];\r\n\tpublic selectedLenderStatusId: number = 0;\r\n\tpublic selectedApplicationStatus: string;\r\n\tprivate isRefresh: boolean = false;\r\n\taffConsents: AFFConsentResponse = null;\r\n\tpublic lenderFundingPartnerList: LenderFundingPartner[];\r\n\tdealerType: LenderFundingPartner = null;\r\n\r\n\tprivate intervalManager: IntervalManager = new IntervalManager();\r\n\r\n\tpublic countdownTimerForEcommerce: number = 1;\r\n\r\n\tpublic stopInterval: boolean = false;\r\n\r\n\t//#endregion Variable Declaration\r\n\r\n\tenTranslations: any;\r\n\tesTranslations: any;\r\n\r\n\t//#region Constructor\r\n\tconstructor\r\n\t\t(\r\n\t\t\tpublic P_MediaLayoutService: MediaLayoutService,\r\n\t\t\tpublic applicantService: ApplicantService,\r\n\t\t\tprivate router: Router,\r\n\t\t\tprivate formDataService: FormDataService,\r\n\t\t\tprivate sessionService: SessionService,\r\n\t\t\tprivate SimplifiedsessionService: SimplifiedSessionData,\r\n\t\t\tprivate lenderService: LenderService,\r\n\t\t\tprivate _sharedService: SharedService,\r\n\t\t\tprivate signalService: ApplicantDashboardSignalRService,\r\n\t\t\tprivate modalService: NgbModal,\r\n\t\t\tprivate translocoService: CustomTranslocoService,\r\n\t\t\tprivate cdRef: ChangeDetectorRef,\r\n\t\t\tprivate detectMerchantRoutingService: DetectMerchantRoutingService,\r\n\t\t\tprivate authService: SimplifiedAuthService,\r\n\t\t\tprivate ecommerceIntegrationService: ECommerceIntegrationService\r\n\t\t) {\r\n\t}\r\n\t//#endregion Constructor\r\n\r\n\t//#region ngOnInit\r\n\tngOnInit(): void {\r\n\t\tlet applicantPreferredlanguage = this.translocoService.getApplicantPreferredLanguageID();\r\n\r\n\t\tthis.translocoService.setActiveLanguage(applicantPreferredlanguage);\r\n\t\t//load manual language json file\r\n\t\tthis.translocoService.loadLanguageWiseTranslationSingleJson('existing-applications', applicantPreferredlanguage);\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.enTranslations = this.translocoService.getLanguageTranslations('existing-applications', applicantPreferredlanguage);\r\n\t\t}, 2000);\r\n\r\n\t\t// applicant preferredlanguageid wise load language json file with added TranslocoService\r\n\t\tthis.translocoService.loadTransLocoScopeWithLanguageId(\"existing-applications\", \"existing-applications\", applicantPreferredlanguage);\r\n\t\tthis.translocoService.approvalDisplayLanguageId$.subscribe({\r\n\t\t\tnext: (isApproved) => {\r\n\t\t\t\tif (isApproved) {\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tthis.loadTranslations();\r\n\t\t\t\t\t}, 1500);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t\tthis.isRefresh = false;\r\n\t\tthis.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n\t\tthis.loadData();\r\n\t\tthis.signalService.initSignalR();\r\n\t\tthis.signalService.statuschanged$.subscribe((message) => {\r\n\t\t\tthis.refreshStatus(message);\r\n\t\t});\r\n\t\tthis.signalService.postMessages$.subscribe((postMessage) => {\r\n\t\t\tthis.postStatus(postMessage);\r\n\t\t});\r\n\r\n\t}\r\n\t//#endregion ngOnInit\r\n\r\n\r\n\tgetAmountLabel(translations: any, label: string): string {\r\n\t\treturn translations?.existingApp?.amountLabel[label] || '';\r\n\t}\r\n\r\n\t//#region Load Dashboard Data\r\n\tprivate loadData() {\r\n\t\tlet languageKey: string = 'existing-applications.existingApp.toastMessageCtrl';\r\n\t\tthis.applicantService.getApplicantDashboardDataUX(languageKey)\r\n\t\t\t.subscribe((data => {\r\n\t\t\t\tif (data.IsSuccess) {\r\n\t\t\t\t\tthis.existingApps = data.Result;\r\n\t\t\t\t\t//this._sharedService.eventBroadCastPageSize.emit();\r\n\r\n\t\t\t\t\t// Handles redirection of ECommerce Integration\r\n\t\t\t\t\t// If the following method is breaking any of the functionalities of this component then just comment following method call.\r\n\t\t\t\t\tthis.handleRedirection();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t//this._sharedService.eventBroadCastPageSize.emit();\r\n\t\t\t\t}\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis._sharedService.eventBroadCastPageSize.emit();\r\n\t\t\t\t}, 2000)\r\n\t\t\t}));\r\n\t\tthis.getStatuses();\r\n\t}\r\n\r\n\t//#endregion Load Dashboard Data\r\n\tpublic setLenderStatusId(lenderStatusId: number) {\r\n\t\tif (this.statusList == null) {\r\n\t\t\tthis.getStatuses();\r\n\t\t}\r\n\t\tthis.selectedLenderStatusId = lenderStatusId;\r\n\t}\r\n\tpublic setApplicationStatus(appstatus: string) {\r\n\t\tif (this.statusList == null) {\r\n\t\t\tthis.getStatuses();\r\n\t\t}\r\n\t\tthis.selectedApplicationStatus = appstatus;\r\n\t}\r\n\t//#region Resize the screen\r\n\tpublic checkScreenSize() {\r\n\t\tthis.isMobileDevice = window.innerWidth <= 600;\r\n\t}\r\n\r\n\t@HostListener('window:resize', [])\r\n\tpublic onResize() {\r\n\t\tthis.checkScreenSize();\r\n\t\tthis._sharedService.eventBroadCastPageSize.emit();\r\n\t}\r\n\t//#endregion Resize the screen\r\n\r\n\t//#region On Application Click Open Application for further modification like LQ's\r\n public openApplicationInformation(application: any) {\r\n\t\tthis.routelink = application.LandingPageLink;\r\n\t\tswitch (application.OnlineApplicationModalID) {\r\n\t\t\tcase ApplicationModal.Simplified_Application:\r\n\t\t\tcase ApplicationModal.BusinessRental_Application:\r\n\t\t\t\tthis.authService.ValidateToken(application.ApplicationID, application.MerchantID).subscribe((data: any) => {\r\n\t\t\t\t\tif (data['Status'] === 200) {\r\n\t\t\t\t\t\tthis.SimplifiedsessionService.setApplicationSource(0, application.MerchantID, 0);\r\n\t\t\t\t\t\tthis.sessionService.setFlagForSiplifiedUrl(\"simplified\", true);\r\n\t\t\t\t\t\tthis.detectMerchantRoutingService.setNavigationDisabled(true);\r\n\t\t\t\t\t\tthis.sessionService.setSessionApplicationSource(\"sourceId\", application.MerchantID);\r\n this.sessionService.setSessionFormData(\"OnlineApplicationModalID\", application.OnlineApplicationModalID);\r\n\r\n this.setNeuroIdFunnelData(application.ApplicationID, application.MerchantID)\r\n\t\t\t\t\t\tthis.router.navigate([this.routelink]);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t\terror => {\r\n\t\t\t\t\t\tconsole.log(error);\r\n\t\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tthis.sessionService.setSessionFormData(\"OnlineApplicationModalID\", application.OnlineApplicationModalID);\r\n\t\t\t\tlet requestArray = [];\r\n\t\t\t\trequestArray.push(this.applicantService.getApplicationDetailInformation(application.ApplicationID));\r\n\t\t\t\tif (application.LenderID != null && application.LenderID == Lenders.American_First_Finance) {\r\n\t\t\t\t\trequestArray.push(this.lenderService.getDealerTypeListByLenderId(application.LenderID));\r\n\t\t\t\t\trequestArray.push(this.applicantService.GetAFFConsents());\r\n\t\t\t\t}\r\n\t\t\t\tforkJoin(requestArray).subscribe((data => {\r\n\t\t\t\t\tif (data[0].IsSuccess) {\r\n\t\t\t\t\t\tif (data[0].Result !== null) {\r\n\t\t\t\t\t\t\tthis.setLanguage(data[0].Result.ApplicationInformation.SelectedLanguageID);\r\n\t\t\t\t\t\t\tthis.translocoService.setApplicationCount();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (application.LenderID == null || (application.ApplicationStatusID != null && application.ApplicationStatusID == ApplicationStatus.Staged)) {\r\n\t\t\t\t\t\t\tthis.loadLenderQuestionMenu();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t//start load dealer type\r\n\t\t\t\t\t\tif (data != null && data.length > 1) {\r\n\t\t\t\t\t\t\tthis.lenderFundingPartnerList = data[1].Result;\r\n\t\t\t\t\t\t\tif (data[2].Result !== null && data[2].Result !== undefined) {\r\n\t\t\t\t\t\t\t\tif (isNullOrUndefined(data[2].Result.Error))\r\n\t\t\t\t\t\t\t\t\tthis.affConsents = data[2].Result;\r\n\t\t\t\t\t\t\t\tif (this.lenderFundingPartnerList.length > 0)\r\n\t\t\t\t\t\t\t\t\tthis.dealerType = this.lenderFundingPartnerList.filter(x => x.ShortName.toLowerCase() === this.affConsents.dealerType.toLowerCase())[0];\r\n\t\t\t\t\t\t\t\tif (this.dealerType != null) {\r\n\t\t\t\t\t\t\t\t\tthis.formDataService.setApplicationFundingPartnerName(this.dealerType.FundingParterName);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n //end load dealer type\r\n this.loadFormData(data[0].Result, application.MerchantID);\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t}\r\n\t\t\t\t}),\r\n\t\t\t\t\t(error => {\r\n\t\t\t\t\t\tconsole.log(error);\r\n\t\t\t\t\t}));\r\n\r\n\t\t}\r\n\r\n\t}\r\n\t//#endregion On Application Click Open Application for further modification like LQ's\r\n\r\n\t//#region Load Form Data for further LQ's for selected application\r\n public loadFormData(applicationData: any, merchantID:any) {\r\n\t\tthis.formData = this.formDataService.getFormData();\r\n\t\tlet application = applicationData.ApplicationInformation;\r\n\t\tthis.formData.Identity.DocumentTypeID = application.DocumentTypeID;\r\n\t\tthis.formData.Identity.DOB = application.DOB;\r\n\t\tthis.formData.Identity.IDDocumentIssuanceState = application.IDDocumentIssuanceState;\r\n\t\tthis.formData.Identity.IdentificationDocumentID = application.IdentificationDocumentID;\r\n\t\tthis.formData.LenderID = applicationData.LenderID;\r\n\t\tthis.formData.Addresses.Address = application.Address;\r\n\t\tthis.formData.Addresses.Address2 = application.Address2;\r\n\t\tthis.formData.Addresses.City = application.City;\r\n\t\tthis.formData.Addresses.State = application.State;\r\n\t\tthis.formData.Addresses.Zip = application.Zip;\r\n\t\tthis.formData.Addresses.HousingCost = application.HousingCost;\r\n\t\tthis.formData.Addresses.IsOwnHouse = application.IsOwnHouse;\r\n\r\n\t\tthis.formData.ApplicationCreate.BestEstimate = application.BestEstimate;\r\n\t\tthis.formData.Applications.ApplicationID = application.ApplicationID;\r\n\t\tthis.formData.Applications.SelectedLanguageID = application.SelectedLanguageID\r\n\t\tthis.formData.BankDetails.BankDetailID = application.BankDetailID;\r\n\t\tthis.formData.BankDetails.RoutingNumber = application.RoutingNumber;\r\n\t\tthis.formData.BankDetails.BankName = application.BankName;\r\n\t\tthis.formData.BankDetails.AccountTypeID = application.AccountTypeID;\r\n\t\tthis.formData.BankDetails.AccountNumber = application.AccountNumber;\r\n\t\tthis.formData.BankDetails.IsAccountOlder = application.AccountAge;\r\n\t\tvar lenderPageIndex = [];\r\n\t\tlenderPageIndex.push(0);\r\n\t\tthis.sessionService.setSessionLenderPageIndex(\"LenderPageIndex\", lenderPageIndex);\r\n\t\tthis.sessionService.setSessionLenderQuestionCurrPage(\"LenderQuestionCurrPage\", 0);\r\n\t\tthis.sessionService.setSessionLenderQuestionPrevPage(\"LenderQuestionPrevPage\", 0);\r\n\t\tthis.formData.ApplicantIncomeList = applicationData.ApplicantIncomeResult;\r\n\t\tthis.formData.ApplicantIncomeList.forEach(income => income.IsActive = true);\r\n\t\tthis.formData.ApplicationCreate.ProductCategoryID = applicationData.ProductCategory;\r\n\t\tthis.formData.IsLoggedIn = JSON.parse(sessionStorage.getItem(\"Authenticate\") || 'false') as boolean;\r\n\t\tthis.formDataService.setFormData(this.formData);\r\n\t\t//for Inflight application reset this flag.\r\n\t\tthis.formDataService.savePlaidLinkVerification(false);\r\n this.formDataService.setApplicationMode(this.OnlineApplicationMode.ONLINE_INFLIGHT_APPLICATION);\r\n\r\n this.setNeuroIdFunnelData(application.ApplicationID, merchantID)\r\n\t\tthis.router.navigate([this.routelink]);\r\n\t}\r\n\t//#endregion Load Form Data for further LQ's for selected application\r\n\r\n\t//#region On Dashboard Load,Check Stipulation is available or not\r\n\tisStipulationAvailable(application: ApplicantDashboardData) {\r\n\t\tif (application.ApplicationStipulationID !== null && application.StipulationStatusID !== null\r\n\t\t\t&& application.StipulationStatusID == StipulationStatusesEnum.STIPULATION_VIEW) { return true; }\r\n\t\telse { return false; }\r\n\t}\r\n\t//#endregion On Dashboard Load,Check Stipulation is available or not\r\n\r\n\t//#region On Dashboard Load, Check any Offer applicable or not\r\n\tisOfferAvailable(application: ApplicantDashboardData) {\r\n\t\tif (application.LenderID == null || (application.ApplicationStatusID != null && application.ApplicationStatusID != ApplicationStatus.Delivered)) {\r\n\t\t\tapplication.showSeeMyOfferButton = false;\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tswitch (application.LenderID) {\r\n\t\t\tcase Lenders.FlexShopper:\r\n\t\t\t\tif ((application.LenderStatusID === LenderStatusesEnum.Approved\r\n\t\t\t\t\t|| application.LenderStatusID === LenderStatusesEnum.PendingSignature) && application.InvoiceID !== null\r\n\t\t\t\t\t&& (application.InvoiceStatusID !== null && application.InvoiceStatusID === InvoiceStatusesEnum.Submitted)) {\r\n\t\t\t\t\tapplication.showSeeMyOfferButton = true;\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tapplication.showSeeMyOfferButton = false;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase Lenders.Vernance_LLC:\r\n\t\t\t\tif (application.LenderStatusID === LenderStatusesEnum.PendingSignature && application.InvoiceID !== null\r\n\t\t\t\t\t&& (application.InvoiceStatusID !== null && application.InvoiceStatusID === InvoiceStatusesEnum.Submitted)) {\r\n\t\t\t\t\tapplication.showSeeMyOfferButton = true;\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tapplication.showSeeMyOfferButton = false;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase Lenders.Uown:\r\n\t\t\t\tif (application.LenderStatusID === LenderStatusesEnum.PendingSignature && application.InvoiceID !== null\r\n\t\t\t\t\t&& (application.InvoiceStatusID !== null && application.InvoiceStatusID === InvoiceStatusesEnum.Submitted)) {\r\n\t\t\t\t\tapplication.showSeeMyOfferButton = true;\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tapplication.showSeeMyOfferButton = false;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase Lenders.American_First_Finance:\r\n\t\t\t\tif (application.LenderStatusID === LenderStatusesEnum.PendingSignature && application.InvoiceID !== null\r\n\t\t\t\t\t&& (application.InvoiceStatusID !== null && application.InvoiceStatusID === InvoiceStatusesEnum.Submitted)) {\r\n\t\t\t\t\tif (application.FundingPartnerID != null) {\r\n\t\t\t\t\t\tif (application.FundingPartnerID !== 1) {\r\n\t\t\t\t\t\t\tapplication.showSeeMyOfferButton = true;\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tapplication.showSeeMyOfferButton = false;\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tapplication.showSeeMyOfferButton = true;\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tapplication.showSeeMyOfferButton = false;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tapplication.showSeeMyOfferButton = false;\r\n\t\t\t\treturn false;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\t//#endregion On Dashboard Load, Check any Offer applicable or not\r\n\r\n\t//#region On Dashboard Load, Check any Virtual Card applicable or not\r\n\tisVirtualCardAvailable(application: ApplicantDashboardData) {\r\n\t\tif (application.LenderID == null || (application.ApplicationStatusID != null && application.ApplicationStatusID != ApplicationStatus.Delivered)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tswitch (application.LenderID) {\r\n\t\t\tcase Lenders.Vernance_LLC:\r\n\t\t\t\tif (application.LenderStatusID === LenderStatusesEnum.Fulfilled\r\n\t\t\t\t\t&& (application.MerchantPaymentMethodID !== null && application.MerchantPaymentMethodID === 107)\r\n\t\t\t\t\t&& application.IsAmexVirtualCardAvailable === true) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase Lenders.FlexShopper:\r\n\r\n\t\t\t\tif (application.LenderStatusID === LenderStatusesEnum.Funded\r\n\t\t\t\t\t&& (application.MerchantPaymentMethodID !== null && application.MerchantPaymentMethodID === 107)\r\n\t\t\t\t\t&& application.IsAmexVirtualCardAvailable === true) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase Lenders.Uown:\r\n\t\t\t\tif ((application.LenderStatusID === LenderStatusesEnum.SigningComplete || application.LenderStatusID === LenderStatusesEnum.PendingFunding)\r\n\t\t\t\t\t&& (application.MerchantPaymentMethodID !== null && application.MerchantPaymentMethodID === 107)\r\n\t\t\t\t\t&& application.IsAmexVirtualCardAvailable === true) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\treturn false;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\t//#endregion On Dashboard Load, Check any Virtual Card applicable or not\r\n\r\n\t//#region On Stipulation Icon Click, Open Stipulation Dialogbox\r\n\tpublic OpenStipulatedDocumentModal(applicationDetails: ApplicantDashboardData): void {\r\n\t\tthis.setLanguage(applicationDetails.SelectedLanguageID);\r\n\t\tlet modalConfigurableComponent = new ModalConfigurationComponent();\r\n\t\tconst modalRef = this.modalService.open(UploadStipulationDocumentComponent, { size: 'lg', backdrop: 'static', keyboard: false });\r\n\t\tmodalConfigurableComponent.modalId = 0;\r\n\t\tmodalConfigurableComponent.modalData = [applicationDetails.ApplicationID.toString(), null, applicationDetails.ApplicationStipulationID.toString(), null, this.sourceTypeID.toString(), applicationDetails.StipulationStatusID.toString()];\r\n\t\tmodalConfigurableComponent.modalAction = \"readonly\";\r\n\t\tmodalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n\t\tmodalRef.result.then((data) => {\r\n\t\t\tif (data.IsSuccess) {\r\n\t\t\t\tthis.loadData();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t//#endregion On Stipulation Icon Click, Open Stipulation Dialogbox\r\n\r\n\t//#region On Application Click, Load Lender Question Menu if applicable\r\n\tloadLenderQuestionMenu() {\r\n\t\tthis.lenderService.getLenderMenuByLenderId().subscribe((response => {\r\n\t\t\tif (response !== null) {\r\n\t\t\t\tif (response.IsSuccess) {\r\n\t\t\t\t\tvar lenderQuestionMenu = response.Result;\r\n\t\t\t\t\tthis.sessionService.setSessionLenderQuestionData(\"lenderQuestionMenu\", lenderQuestionMenu);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}), (error => {\r\n\t\t\tconsole.log(error);\r\n\t\t}));\r\n\t}\r\n\t//#endregion On Application Click, Load Lender Question Menu if applicable\r\n\r\n\t//#region FS: Show Virtual Card Offer after signing lease and if merchant has VCard Payment Method\r\n\tpublic OpenFlexShopperVCard(fsLeaseResponse: FlxLeaseAgreement): void {\r\n\r\n\t\tlet modalConfigurableComponent = new ModalConfigurationComponent();\r\n\t\tconst modalRef = this.modalService.open(FlexShopperVCardComponent, { size: 'lg', backdrop: 'static', keyboard: false });\r\n\t\tmodalConfigurableComponent.modalId = 0;\r\n\t\tmodalConfigurableComponent.modalData = [fsLeaseResponse.referenceId];\r\n\t\tmodalConfigurableComponent.modalAction = \"readonly\";\r\n\t\tmodalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n\t\tmodalRef.result.then((data) => {\r\n\t\t\tthis.loadData();\r\n\t\t});\r\n\t}\r\n\t//#endregion FS: Show Virtual Card Offer after signing lease and if merchant has VCard Payment Method\r\n\r\n\t//#region FS: Show Virtual Card Offer after signing lease and if merchant has VCard Payment Method\r\n\tpublic OpenAmexVirtualCard(application: ApplicantDashboardData, waitForFulfilledFundedStatus: boolean): void {\r\n\t\tthis.setLanguage(application.SelectedLanguageID);\r\n\t\tlet modalConfigurableComponent = new ModalConfigurationComponent();\r\n\t\tconst modalRef = this.modalService.open(AmexVirtualCardComponent, { size: 'lg', backdrop: 'static', keyboard: false });\r\n\t\tmodalConfigurableComponent.modalId = 0;\r\n\t\tmodalConfigurableComponent.modalData = [application.ApplicationID, application.LenderID, application.LenderStatusID, waitForFulfilledFundedStatus, application.IsAmexVirtualCardAvailable];\r\n\t\tmodalConfigurableComponent.modalAction = \"readonly\";\r\n\t\tmodalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n\t\tmodalRef.result.then((data) => {\r\n\t\t\t//this.loadData();\r\n\t\t});\r\n\t}\r\n\t//#endregion FS: Show Virtual Card Offer after signing lease and if merchant has VCard Payment Method\r\n\r\n\t//#region Show Offer\r\n\tpublic OpenOffer(applicationDetails: ApplicantDashboardData) {\r\n\t\tthis.setLanguage(applicationDetails.SelectedLanguageID);\r\n\r\n\t\tswitch (applicationDetails.LenderID) {\r\n\t\t\tcase Lenders.FlexShopper:\r\n\t\t\t\tthis.OpenFlexOffer(applicationDetails);\r\n\t\t\t\tbreak;\r\n\t\t\tcase Lenders.Vernance_LLC:\r\n\t\t\t\tif (applicationDetails.OnlineApplicationModalID == ApplicationModal.Simplified_Application) {\r\n\t\t\t\t\tthis.authService.ValidateToken(applicationDetails.ApplicationID, applicationDetails.MerchantID).subscribe((data: any) => {\r\n\t\t\t\t\t\tif (data['Status'] === 200) {\r\n\t\t\t\t\t\t\tthis.sessionService.setSessionApplicationSource(\"sourceId\", applicationDetails.MerchantID);\r\n\t\t\t\t\t\t\tthis.sessionService.setFlagForSiplifiedUrl(\"simplified\", true);\r\n\t\t\t\t\t\t\tthis.detectMerchantRoutingService.setNavigationDisabled(true);\r\n\t\t\t\t\t\t\tif (applicationDetails.ESignatureUrl != null || applicationDetails.ESignatureUrl != undefined) {\r\n\t\t\t\t\t\t\t\tthis.router.navigate(['/simplifiedui/cf-electronic-signature']);\r\n\t\t\t\t\t\t\t}\r\n else {\r\n\t\t\t\t\t\t\t\tthis.router.navigate(['/simplifiedui/cf-offer-selection']);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\t\terror => {\r\n\t\t\t\t\t\t\tconsole.log(error);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.OpenCFOffer(applicationDetails);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase Lenders.Uown:\r\n\t\t\t\tif (applicationDetails.OnlineApplicationModalID == ApplicationModal.Simplified_Application) {\r\n\t\t\t\t\tthis.authService.ValidateToken(applicationDetails.ApplicationID, applicationDetails.MerchantID).subscribe((data: any) => {\r\n\t\t\t\t\t\tif (data['Status'] === 200) {\r\n\t\t\t\t\t\t\tthis.sessionService.setFlagForSiplifiedUrl(\"simplified\", true);\r\n\t\t\t\t\t\t\tthis.detectMerchantRoutingService.setNavigationDisabled(true);\r\n\t\t\t\t\t\t\tthis.router.navigate(['/simplifiedui/uown-offer-selection']);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\t\terror => {\r\n\t\t\t\t\t\t\tconsole.log(error);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.OpenUOwnOffer(applicationDetails);\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase Lenders.American_First_Finance:\r\n\t\t\t\tthis.OpenAFFOffer(applicationDetails);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tpublic OpenAFFOffer(applicationDetails: ApplicantDashboardData) {\r\n\t\tlet modalConfigurableComponent = new ModalConfigurationComponent();\r\n\t\tmodalConfigurableComponent.modalData = [\r\n\t\t\tapplicationDetails.ApplicationID,\r\n\t\t\tapplicationDetails.ESignatureUrl,\r\n applicationDetails.LenderID,\r\n applicationDetails.MerchantID\r\n\t\t];\r\n\r\n\t\tlet modalOption: NgbModalOptions = {\r\n\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tkeyboard: true,\r\n\t\t\tcentered: true\r\n\t\t}\r\n\r\n\t\t//load aff esignature url modal\r\n\t\tmodalOption.size = this.isMobileDevice == true ? 'sm' : 'xl';\r\n\t\tconst affESignatureModal = this.modalService.open(AffESignatureComponent, modalOption);\r\n\t\taffESignatureModal.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n\t\taffESignatureModal.result.then((data) => {\r\n\t\t\tconsole.log(data);\r\n\t\t},\r\n\t\t\t//Dismiss offer selection modal event\r\n\t\t\t(data) => {\r\n\t\t\t\t//Reload Dashboard with Disabling See My Offer Button\r\n\t\t\t\tthis.loadData();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tpublic OpenUOwnOffer(applicationDetails: ApplicantDashboardData) {\r\n\t\tlet modalConfigurableComponent = new ModalConfigurationComponent();\r\n\t\tmodalConfigurableComponent.modalData = [\r\n\t\t\tapplicationDetails.ApplicationID,\r\n\t\t\tapplicationDetails.MerchantID,\r\n\t\t\tapplicationDetails.LenderID\r\n\t\t];\r\n\r\n\t\tlet modalOption: NgbModalOptions = {\r\n\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tkeyboard: true,\r\n\t\t\tcentered: true\r\n\t\t};\r\n\r\n\t\t//load offer selection modal\r\n\t\tconst uownOfferSelectionModal = this.modalService.open(UownOfferSelectionComponent, modalOption);\r\n\t\tuownOfferSelectionModal.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n\t\tuownOfferSelectionModal.result.then((data) => {\r\n\t\t\t//Reload Dashboard with Disabling See My Offer Button\r\n\t\t\tif (data != null || data != undefined && data.ApplicationID != undefined) {\r\n\t\t\t\tmodalConfigurableComponent = new ModalConfigurationComponent();\r\n\t\t\t\tmodalConfigurableComponent.modalData = [\r\n\t\t\t\t\tapplicationDetails.ApplicationID,\r\n\t\t\t\t\tdata.RedirectUrl\r\n\t\t\t\t];\r\n\r\n\t\t\t\t//load uown esignature url modal\r\n\t\t\t\tmodalOption.size = this.isMobileDevice == true ? 'sm' : 'lg';\r\n\t\t\t\tconst uownOfferSelectionModal = this.modalService.open(UownESignatureComponent, modalOption);\r\n\t\t\t\tuownOfferSelectionModal.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n\t\t\t\tuownOfferSelectionModal.result.then((data) => {\r\n\t\t\t\t\t//Reload Dashboard with Disabling See My Offer Button\r\n\t\t\t\t\tif (((applicationDetails.MerchantPaymentMethodID !== undefined)\r\n\t\t\t\t\t\t&& (applicationDetails.MerchantPaymentMethodID !== null))\r\n\t\t\t\t\t\t&& (applicationDetails.MerchantPaymentMethodID === 107)) {\r\n\t\t\t\t\t\tthis.OpenAmexVirtualCard(applicationDetails, true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tlet modalConfigurableComponent = new ModalConfigurationComponent();\r\n\t\t\t\t\t\tconst modalRef = this.modalService.open(ReturnURLRedirectComponent, { size: 'lg', backdrop: 'static', keyboard: false });\r\n\t\t\t\t\t\tmodalConfigurableComponent.modalId = 0;\r\n\t\t\t\t\t\tmodalConfigurableComponent.modalData = [applicationDetails.ApplicationID, applicationDetails.ReturnURL, applicationDetails.InvoiceReturnURL];\r\n\t\t\t\t\t\tmodalConfigurableComponent.modalAction = \"readonly\";\r\n\t\t\t\t\t\tmodalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n\t\t\t\t\t\tmodalRef.result.then((data) => {\r\n\t\t\t\t\t\t\t//this.loadData();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t},//Dismiss offer selection modal Event\r\n\t\t\t\t\t(data) => {\r\n\t\t\t\t\t\t//Reload Dashboard with Disabling See My Offer Button\r\n\t\t\t\t\t\tthis.loadData();\r\n\t\t\t\t\t});\r\n\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.loadData();\r\n\t\t\t}\r\n\t\t},//Dismiss offer selection modal Event\r\n\t\t\t(data) => {\r\n\t\t\t\t//Reload Dashboard with Disabling See My Offer Button\r\n\t\t\t\tthis.loadData();\r\n\t\t\t});\r\n\t}\r\n\r\n\tpublic OpenCFOffer(applicationDetails: ApplicantDashboardData) {\r\n\t\tlet modalConfigurableComponent = new ModalConfigurationComponent();\r\n\t\tmodalConfigurableComponent.modalData = [\r\n\t\t\tapplicationDetails.ApplicationID,\r\n\t\t\tapplicationDetails.MerchantID,\r\n\t\t\tapplicationDetails.LenderID\r\n\t\t];\r\n\r\n\t\tlet modalOption: NgbModalOptions = {\r\n\t\t\tsize: (this.isMobileDevice) ? 'sm' : 'xl',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tkeyboard: true,\r\n\t\t\tcentered: true\r\n\t\t};\r\n\t\tif (applicationDetails.ESignatureUrl != null || applicationDetails.ESignatureUrl != undefined) {\r\n\t\t\t//load ESignature modal\r\n\t\t\tconst eSignatureModalRef = this.modalService.open(SingingRoomCfESignatureComponent, modalOption);\r\n\t\t\teSignatureModalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n\t\t\teSignatureModalRef.result.then((data) => {\r\n\t\t\t\t//Reload Dashboard with Disabling See My Offer Button\r\n\t\t\t\tif ((data !== null && data == true) && (applicationDetails.MerchantPaymentMethodID !== null && applicationDetails.MerchantPaymentMethodID === 107)) {\r\n\t\t\t\t\tthis.OpenAmexVirtualCard(applicationDetails, true);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tlet modalConfigurableComponent = new ModalConfigurationComponent();\r\n\t\t\t\t\tconst modalRef = this.modalService.open(ReturnURLRedirectComponent, { size: 'lg', backdrop: 'static', keyboard: false });\r\n\t\t\t\t\tmodalConfigurableComponent.modalId = 0;\r\n\t\t\t\t\tmodalConfigurableComponent.modalData = [applicationDetails.ApplicationID, applicationDetails.ReturnURL, applicationDetails.InvoiceReturnURL];\r\n\t\t\t\t\tmodalConfigurableComponent.modalAction = \"readonly\";\r\n\t\t\t\t\tmodalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n\t\t\t\t\tmodalRef.result.then((data) => {\r\n\t\t\t\t\t\t//this.loadData();\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t}\r\n\t\t\t},//Dismiss ESignature Modal Event\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\t//Reload Dashboard with Disabling See My Offer Button\r\n\t\t\t\t\tthis.loadData();\r\n\t\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\r\n\t\t\t//load Offer Selection modal\r\n\t\t\tconst offerSelectionModalRef = this.modalService.open(SingingRoomCfOfferSelectionComponent, modalOption);\r\n\t\t\tofferSelectionModalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n\t\t\tofferSelectionModalRef.result.then((data) => {\r\n\t\t\t\tif (data !== null && data == true) {\r\n\t\t\t\t\t//load bank modal\r\n\t\t\t\t\tconst bankModalRef = this.modalService.open(SigningRoomCfBankDetailComponent, modalOption);\r\n\t\t\t\t\tbankModalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n\t\t\t\t\tbankModalRef.result.then((data) => {\r\n\t\t\t\t\t\tif (data !== null && data == true) {\r\n\t\t\t\t\t\t\t//load ESignature modal\r\n\t\t\t\t\t\t\tconst eSignatureModalRef = this.modalService.open(SingingRoomCfESignatureComponent, modalOption);\r\n\t\t\t\t\t\t\teSignatureModalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n\t\t\t\t\t\t\teSignatureModalRef.result.then((data) => {\r\n\t\t\t\t\t\t\t\t//Reload Dashboard with Disabling See My Offer Button\r\n\t\t\t\t\t\t\t\tif ((data !== null && data == true) && (applicationDetails.MerchantPaymentMethodID !== null && applicationDetails.MerchantPaymentMethodID === 107)) {\r\n\t\t\t\t\t\t\t\t\tthis.OpenAmexVirtualCard(applicationDetails, true);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tlet modalConfigurableComponent = new ModalConfigurationComponent();\r\n\t\t\t\t\t\t\t\t\tconst modalRef = this.modalService.open(ReturnURLRedirectComponent, { size: 'lg', backdrop: 'static', keyboard: false });\r\n\t\t\t\t\t\t\t\t\tmodalConfigurableComponent.modalId = 0;\r\n\t\t\t\t\t\t\t\t\tmodalConfigurableComponent.modalData = [applicationDetails.ApplicationID, applicationDetails.ReturnURL, applicationDetails.InvoiceReturnURL];\r\n\t\t\t\t\t\t\t\t\tmodalConfigurableComponent.modalAction = \"readonly\";\r\n\t\t\t\t\t\t\t\t\tmodalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n\t\t\t\t\t\t\t\t\tmodalRef.result.then((data) => {\r\n\t\t\t\t\t\t\t\t\t\t//this.loadData();\r\n\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},//Dismiss ESignature Modal Event\r\n\t\t\t\t\t\t\t\t(data) => {\r\n\t\t\t\t\t\t\t\t\t//Reload Dashboard with Disabling See My Offer Button\r\n\t\t\t\t\t\t\t\t\tthis.loadData();\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},//Dismiss Bank Modal Event\r\n\t\t\t\t\t\t(data) => {\r\n\t\t\t\t\t\t\t//Reload Dashboard with Disabling See My Offer Button\r\n\t\t\t\t\t\t\tthis.loadData();\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t},//Dismiss Offer Selection Modal Event\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\t//Reload Dashboard with Disabling See My Offer Button\r\n\t\t\t\t\tthis.loadData();\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tpublic OpenFlexOffer(applicationDetails: ApplicantDashboardData) {\r\n\t\tlet modalConfigurableComponent = new ModalConfigurationComponent();\r\n\t\tmodalConfigurableComponent.modalData = [\r\n\t\t\tapplicationDetails.ApplicationID,\r\n\t\t\tapplicationDetails.MerchantID,\r\n\t\t\tapplicationDetails.ESignatureUrl\r\n\t\t];\r\n\t\tlet modalOption: NgbModalOptions = {\r\n\t\t\tsize: (this.isMobileDevice) ? 'sm' : 'sm',\r\n\t\t\tbackdrop: 'static',\r\n\t\t\tkeyboard: true,\r\n\t\t\tcentered: true\r\n\t\t};\r\n\r\n\t\tconst modalRef = this.modalService.open(FlexShopperSigningRoomComponent, modalOption);\r\n\t\tmodalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n\t\tmodalRef.result.then((data) => {\r\n\t\t\tif (data !== null) {\r\n\t\t\t\tlet flxSigningRoomResponse: FlxLeaseAgreement = data;\r\n\t\t\t\tconsole.log(flxSigningRoomResponse);\r\n\t\t\t\tflxSigningRoomResponse.applicationId = applicationDetails.ApplicationID;\r\n\t\t\t\tif (flxSigningRoomResponse.isSigned === true) {\r\n\t\t\t\t\t//Update Application Status as Fulfilled.\r\n\t\t\t\t\tthis.applicantService.updateApplicationStatus(flxSigningRoomResponse).subscribe((data => {\r\n\t\t\t\t\t\t//TODO: Send Post Message with appropriate status: Verify from Api\r\n\t\t\t\t\t\tlet applicationStatusPostMessage = new ApplicationStatusPostMessage();\r\n\t\t\t\t\t\tapplicationStatusPostMessage.ApplicationId = applicationDetails.ApplicationID;\r\n\t\t\t\t\t\tapplicationStatusPostMessage.ApplicationStatus = ApplicationStatus[ApplicationStatus.Delivered];\r\n\t\t\t\t\t\tapplicationStatusPostMessage.ApprovedAmount = data.Result.ApplicationStatusPostMessage ? data.Result.ApplicationStatusPostMessage.ApprovedAmount : null;\r\n\t\t\t\t\t\tapplicationStatusPostMessage.Lender = this.lenderService.getLenderNameFromEnum(Lenders.FlexShopper);\r\n\t\t\t\t\t\tapplicationStatusPostMessage.LenderStatus = LenderStatusesEnum[LenderStatusesEnum.Funded];\r\n\t\t\t\t\t\tapplicationStatusPostMessage.FundedAmount = flxSigningRoomResponse.order.cost ? flxSigningRoomResponse.order.cost : null;\r\n\t\t\t\t\t\twindow.parent.window.parent.window.postMessage(JSON.stringify(applicationStatusPostMessage), \"*\");\r\n\t\t\t\t\t\tconsole.log(JSON.stringify(applicationStatusPostMessage));\r\n\r\n\t\t\t\t\t\tlet iframePostMessage = new IFramePostMessage()\r\n\t\t\t\t\t\tiframePostMessage.type = \"tfc-alert\";\r\n\t\t\t\t\t\tiframePostMessage.message = \"TFC Status Update\";\r\n\t\t\t\t\t\tiframePostMessage.isSuccess = true;\r\n\t\t\t\t\t\tiframePostMessage.result = applicationStatusPostMessage;\r\n\t\t\t\t\t\twindow.parent.postMessage(JSON.stringify(iframePostMessage), \"*\");\r\n\t\t\t\t\t\tconsole.log(JSON.stringify(iframePostMessage));\r\n\r\n\t\t\t\t\t\tif (((applicationDetails.MerchantPaymentMethodID !== undefined)\r\n\t\t\t\t\t\t\t&& (applicationDetails.MerchantPaymentMethodID !== null))\r\n\t\t\t\t\t\t\t&& (applicationDetails.MerchantPaymentMethodID === 106)) {\r\n\t\t\t\t\t\t\tthis.OpenFlexShopperVCard(flxSigningRoomResponse);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (((applicationDetails.MerchantPaymentMethodID !== undefined)\r\n\t\t\t\t\t\t\t&& (applicationDetails.MerchantPaymentMethodID !== null))\r\n\t\t\t\t\t\t\t&& (applicationDetails.MerchantPaymentMethodID === 107)) {\r\n\t\t\t\t\t\t\tthis.OpenAmexVirtualCard(applicationDetails, true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.loadData();\r\n\t\t\t\t\t}),\r\n\t\t\t\t\t\t(error => {\r\n\t\t\t\t\t\t\tconsole.log(error);\r\n\t\t\t\t\t\t\tthis.loadData();\r\n\t\t\t\t\t\t}));\r\n\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},//Dismiss Modal Event\r\n\t\t\t(data) => {\r\n\t\t\t\tif (data !== null) {\r\n\t\t\t\t\tlet flxSigningRoomResponse: FlxLeaseAgreement = data;\r\n\t\t\t\t\tflxSigningRoomResponse.applicationId = applicationDetails.ApplicationID;\r\n\t\t\t\t\tif (flxSigningRoomResponse.isSigned === true) {\r\n\t\t\t\t\t\t//Update Application Status as Fulfilled.\r\n\t\t\t\t\t\tthis.applicantService.updateApplicationStatus(flxSigningRoomResponse).subscribe((data => {\r\n\t\t\t\t\t\t\t//TODO: Send Post Message with appropriate status: Verify from Api\r\n\t\t\t\t\t\t\tlet applicationStatusPostMessage = new ApplicationStatusPostMessage();\r\n\t\t\t\t\t\t\tapplicationStatusPostMessage.ApplicationId = applicationDetails.ApplicationID;\r\n\t\t\t\t\t\t\tapplicationStatusPostMessage.Lender = this.lenderService.getLenderNameFromEnum(Lenders.FlexShopper);\r\n\t\t\t\t\t\t\tapplicationStatusPostMessage.LenderStatus = LenderStatusesEnum[LenderStatusesEnum.Funded];\r\n\t\t\t\t\t\t\tapplicationStatusPostMessage.FundedAmount = flxSigningRoomResponse.order.cost ? flxSigningRoomResponse.order.cost : null;\r\n\t\t\t\t\t\t\tapplicationStatusPostMessage.ApplicationStatus = ApplicationStatus[ApplicationStatus.Delivered];\r\n\t\t\t\t\t\t\tapplicationStatusPostMessage.ApprovedAmount = data.Result.ApplicationStatusPostMessage ? data.Result.ApplicationStatusPostMessage.ApprovedAmount : null;\r\n\t\t\t\t\t\t\twindow.parent.window.parent.window.postMessage(JSON.stringify(applicationStatusPostMessage), \"*\");\r\n\t\t\t\t\t\t\tconsole.log(JSON.stringify(applicationStatusPostMessage));\r\n\r\n\t\t\t\t\t\t\tlet iframePostMessage = new IFramePostMessage()\r\n\t\t\t\t\t\t\tiframePostMessage.type = \"tfc-alert\";\r\n\t\t\t\t\t\t\tiframePostMessage.message = \"TFC Status Update\";\r\n\t\t\t\t\t\t\tiframePostMessage.isSuccess = true;\r\n\t\t\t\t\t\t\tiframePostMessage.result = applicationStatusPostMessage;\r\n\t\t\t\t\t\t\twindow.parent.postMessage(JSON.stringify(iframePostMessage), \"*\");\r\n\t\t\t\t\t\t\tconsole.log(JSON.stringify(iframePostMessage));\r\n\r\n\t\t\t\t\t\t\tif (((applicationDetails.MerchantPaymentMethodID !== undefined)\r\n\t\t\t\t\t\t\t\t&& (applicationDetails.MerchantPaymentMethodID !== null))\r\n\t\t\t\t\t\t\t\t&& (applicationDetails.MerchantPaymentMethodID === 106)) {\r\n\t\t\t\t\t\t\t\tthis.OpenFlexShopperVCard(flxSigningRoomResponse);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if (((applicationDetails.MerchantPaymentMethodID !== undefined)\r\n\t\t\t\t\t\t\t\t&& (applicationDetails.MerchantPaymentMethodID !== null))\r\n\t\t\t\t\t\t\t\t&& (applicationDetails.MerchantPaymentMethodID === 107) && applicationDetails.IsAmexVirtualCardAvailable === true) {\r\n\t\t\t\t\t\t\t\tthis.OpenAmexVirtualCard(applicationDetails, true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tthis.loadData();\r\n\t\t\t\t\t\t}),\r\n\t\t\t\t\t\t\t(error => {\r\n\t\t\t\t\t\t\t\tconsole.log(error);\r\n\t\t\t\t\t\t\t\tthis.loadData();\r\n\t\t\t\t\t\t\t}));\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\t//#endregion FS: Show Offer\r\n\r\n\t//#region On Dashboard Load, Check any lender response is pending or not\r\n\tisLenderResponsePending(application: ApplicantDashboardData) {\r\n\t\tif ((application.LenderStatusID === LenderStatusesEnum.Pending\r\n\t\t\t|| application.LenderStatusID === LenderStatusesEnum.Submitted\r\n\t\t\t|| application.LenderStatusID === LenderStatusesEnum.Declined\r\n\t\t\t|| application.LenderStatusID === LenderStatusesEnum.Received\r\n\t\t\t|| application.LenderStatusID === null)\r\n\t\t\t&& (application.ApplicationStatusID != null && application.ApplicationStatusID == ApplicationStatus.Delivered)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\t//#endregion On Dashboard Load, Check any lender response is pending or not\r\n\r\n\tprivate refreshStatus(message: ApplicantDasboardBroadcast) {\r\n\t\tif (this.existingApps != undefined) {\r\n\t\t\tvar appItem = this.existingApps.filter(item => item.ApplicationID == message.payload.ApplicationID);\r\n\t\t\tif (appItem.length > 0) {\r\n\t\t\t\tvar astatus = this.filterApplicationStatusList.filter(x => x.StatusID == message.payload.StatusID);\r\n\t\t\t\tif (astatus.length > 0)\r\n\t\t\t\t\tmessage.payload.Status = astatus[0].StatusName;\r\n\t\t\t\tvar lstatus = this.filterLenderStatusList.filter(x => x.StatusID == message.payload.LenderStatusID);\r\n\t\t\t\tif (lstatus.length > 0)\r\n\t\t\t\t\tmessage.payload.LenderStatus = lstatus[0].StatusName;\r\n\t\t\t\tmessage.payload.Product = appItem[0].Product;\r\n\t\t\t\tObject.assign(appItem[0], message.payload);\r\n\t\t\t\tappItem[0].ApplicationStatusID = message.payload.StatusID\r\n\t\t\t\tthis.isOfferAvailable(appItem[0]);\r\n\t\t\t\tthis.isLenderResponsePending(appItem[0]);\r\n\t\t\t} else {\r\n\t\t\t\tthis.existingApps.splice(0, 0, message.payload);\r\n\t\t\t}\r\n\r\n\t\t\t// Handles redirection of ECommerce Integration\r\n\t\t\t// If the following method is breaking any of the functionalities of this component then just comment following method call.\r\n\t\t\tthis.handleRedirection();\r\n\t\t}\r\n\t}\r\n\tprivate postStatus(postMessage: any) {\r\n\t\tif (postMessage.payload.IsEditable === false) {\r\n\t\t\tlet applicationStatusPostMessage = new ApplicationStatusPostMessage();\r\n\t\t\tapplicationStatusPostMessage.ApplicationId = postMessage.payload.ApplicationID;\r\n\t\t\tapplicationStatusPostMessage.Lender = (postMessage.payload.LenderID != null) ? this.lenderService.getLenderNameFromEnum(postMessage.payload.LenderID) : null;\r\n\t\t\tapplicationStatusPostMessage.LenderStatus = postMessage.payload.LenderStatus;\r\n\t\t\tapplicationStatusPostMessage.FundedAmount = (postMessage.payload.FundedAmount != null) ? postMessage.payload.FundedAmount : null;\r\n\t\t\tapplicationStatusPostMessage.FulfilledAmount = (postMessage.payload.FulfilledAmount != null) ? postMessage.payload.FulfilledAmount : null;\r\n\t\t\tapplicationStatusPostMessage.ApplicationStatus = postMessage.payload.Status;\r\n\t\t\tapplicationStatusPostMessage.ApprovedAmount = (postMessage.payload.ApprovedAmount != null) ? postMessage.payload.ApprovedAmount : null;\r\n\r\n if (postMessage.payload.LenderStatusID == LenderStatusesEnum.PendingFunding && applicationStatusPostMessage.FundedAmount == null) {\r\n applicationStatusPostMessage.FundedAmount = (postMessage.payload.PendingFundingAmount != null) ? postMessage.payload.PendingFundingAmount : null;\r\n }\r\n window.parent.window.parent.window.postMessage(JSON.stringify(applicationStatusPostMessage), \"*\");\r\n\t\t\tconsole.log(JSON.stringify(applicationStatusPostMessage));\r\n\r\n\t\t\tlet iframePostMessage = new IFramePostMessage()\r\n\t\t\tiframePostMessage.type = \"tfc-alert\";\r\n\t\t\tiframePostMessage.message = \"TFC Status Update\";\r\n\t\t\tiframePostMessage.isSuccess = true;\r\n\t\t\tiframePostMessage.result = applicationStatusPostMessage;\r\n\t\t\twindow.parent.postMessage(JSON.stringify(iframePostMessage), \"*\");\r\n\t\t\tconsole.log(JSON.stringify(iframePostMessage));\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t// #region check merchant return link available or not\r\n\tisMerchantReturnUrlAvailable(application: ApplicantDashboardData) {\r\n\t\tif (application.ReturnURL !== null && application.EnableReturnURL === true) {\r\n\r\n\t\t\tif ((application.ApplicationStatusID != null && application.ApplicationStatusID == ApplicationStatus.ChangedMind)) {\r\n\t\t\t\t//application status is draft or changed mind\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\telse if ((application.ApplicationStatusID != null && application.ApplicationStatusID == ApplicationStatus.NoLender)) {\r\n\t\t\t\t// Lender not available \r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\telse if (application.LenderStatusID === LenderStatusesEnum.Fulfilled\r\n\t\t\t\t|| application.LenderStatusID === LenderStatusesEnum.Funded\r\n\t\t\t\t|| application.LenderStatusID === LenderStatusesEnum.ChangeMind\r\n\t\t\t) {\r\n\t\t\t\t//Lender status is fulfilled or funded\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t}\r\n\t// #endregion check merchant return link available or not\r\n\r\n\tngAfterViewInit() {\r\n\t\t//this._sharedService.eventBroadCastPageSize.emit();\r\n\t}\r\n\r\n\tgetStatuses() {\r\n\t\tlet requestArray = [];\r\n\t\tlet lang = this.translocoService.getApplicantPreferredLanguageID();\r\n\t\trequestArray.push(this._sharedService.getStatusByType(lang));\r\n\r\n\t\tforkJoin(requestArray).subscribe(response => {\r\n\t\t\tthis.statusList = response[0].Result;\r\n\t\t\tthis.filterApplicationStatusList = (this.statusList == null) ? null : this.statusList.filter(x => x.StatusType.toLowerCase() == 'applicationstatus');\r\n\t\t\tthis.filterLenderStatusList = (this.statusList == null) ? null : this.statusList.filter(x => x.StatusType.toLowerCase() == 'lenderstatus');\r\n\t\t}, (error => {\r\n\t\t\tconsole.log(error);\r\n\t\t}));\r\n\t}\r\n\r\n\tsetLanguage(lang: string) {\r\n\t\tlang = lang != null && lang != undefined ? lang : 'en';\r\n\t\tthis.translocoService.setActiveLanguage(lang);\r\n\t\tthis.translocoService.setApplicationLanguage(lang);\r\n\t}\r\n\r\n\tloadTranslations() {\r\n\t\tthis.cdRef.detectChanges();\r\n\t}\r\n\r\n\t// Handles redirection of ECommerce Integration\r\n\thandleRedirection() {\r\n\t\tconst applicationRedirectionInfo = this.formDataService.getApplicationRedirectionInfo();\r\n\r\n\t\t//Check if auto redirection is required\r\n\t\tif (applicationRedirectionInfo != null && applicationRedirectionInfo != undefined\r\n\t\t\t&& applicationRedirectionInfo.IsAutoRedirectionRequired != null && applicationRedirectionInfo.IsAutoRedirectionRequired != undefined && applicationRedirectionInfo.IsAutoRedirectionRequired === true\r\n\t\t\t&& applicationRedirectionInfo.ApplicationId != null && applicationRedirectionInfo.ApplicationId != undefined && applicationRedirectionInfo.ApplicationId != 0\r\n\t\t\t&& this.existingApps != null && this.existingApps != undefined\r\n\t\t) {\r\n\t\t\tconst applications = this.existingApps.filter(a => a.ApplicationID == applicationRedirectionInfo.ApplicationId);\r\n\t\t\tif (applications.length > 0) {\r\n\t\t\t\tconst application = applications[0];\r\n\r\n\t\t\t\tconst isRedirectionRequired = Constants.ECOMMERCE_REDIRECTION_CONFIGURATIONS\r\n\t\t\t\t\t.some\r\n\t\t\t\t\t(\r\n\t\t\t\t\t\t(config) =>\r\n\t\t\t\t\t\t\tconfig.applicationStatus === application.ApplicationStatusID &&\r\n\t\t\t\t\t\t\tconfig.lenderStatus === application.LenderStatusID &&\r\n\t\t\t\t\t\t\t(config.lender === application.LenderID || config.lender === null)\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\tif (isRedirectionRequired) {\r\n\t\t\t\t\tthis.redirect(application);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Handles redirection of ECommerce Integration for pending lender status (/ payment provider status)\r\n\t\t\t\tthis.handleRedirectionOfPendingLenderStatus(application, applicationRedirectionInfo);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Handles redirection of ECommerce Integration for pending lender status (/ payment provider status)\r\n\thandleRedirectionOfPendingLenderStatus(application: ApplicantDashboardData, applicationRedirectionInfo: ApplicationRedirectionInfo) {\r\n\t\tif (application != null && application != undefined\r\n\t\t\t&& applicationRedirectionInfo != null && applicationRedirectionInfo != undefined\r\n\t\t\t&& application.ApplicationID == applicationRedirectionInfo.ApplicationId) {\r\n\t\t\tif (application.ApplicationStatusID !== applicationRedirectionInfo.LastApplicationStatusId\r\n\t\t\t\t|| application.LenderStatusID !== applicationRedirectionInfo.LastLenderStatusId\r\n\t\t\t\t|| application.LenderID !== applicationRedirectionInfo.LastLenderId) {\r\n\t\t\t\tif (this.countdownTimerForEcommerce === 1) {\r\n\t\t\t\t\tapplicationRedirectionInfo.StatusStartTimeInNumberFormat = (new Date()).getTime();\r\n\t\t\t\t\tthis.countdownTimerForEcommerce = this.countdownTimerForEcommerce + 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\tapplicationRedirectionInfo.LastApplicationStatusId = application.ApplicationStatusID;\r\n\t\t\tapplicationRedirectionInfo.LastLenderStatusId = application.LenderStatusID;\r\n\t\t\tapplicationRedirectionInfo.LastLenderId = application.LenderID;\r\n\r\n\t\t\tthis.formDataService.setApplicationRedirectionInfo(applicationRedirectionInfo);\r\n\r\n\t\t\tconst isElapsedTimeCheckRequired = applicationRedirectionInfo.LastApplicationStatusId === ApplicationStatus.Delivered\r\n\t\t\t\t&& applicationRedirectionInfo.LastLenderStatusId === LenderStatusesEnum.Pending;\r\n\r\n\t\t\tif (isElapsedTimeCheckRequired) {\r\n\t\t\t\tthis.intervalManager.start(() => {\r\n\t\t\t\t\tthis.handleElapsedTimeCheckOfPendingLenderStatus(application, applicationRedirectionInfo);\r\n\t\t\t\t}, 5000);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// Clear all intervals when not required\r\n\t\t\t\tthis.intervalManager.clearAll();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Handles elapsed time check for email notification and redirection of ECommerce Integration for pending lender status (/ payment provider status)\r\n\thandleElapsedTimeCheckOfPendingLenderStatus(application: ApplicantDashboardData, applicationRedirectionInfo: ApplicationRedirectionInfo) {\r\n\t\tconst currentTimeInNumberFormat = (new Date()).getTime();\r\n\t\tconst timeElapsedWithSameStatus = (currentTimeInNumberFormat - applicationRedirectionInfo.StatusStartTimeInNumberFormat) / 1000;\r\n\r\n\t\t//console.log(\"applicationRedirectionInfo.StatusStartTimeInNumberFormat .....\",timeElapsedWithSameStatus);\r\n\r\n\t\tlet isSendEmailProgress = this.sessionService.isCheckSendEmailOperationInProgress(\"isSendEmailOperationInProgress\");\r\n\r\n\t\tconst updatetimeElapsedWithSameStatus = Math.trunc(timeElapsedWithSameStatus); // or Math.floor(num2)\r\n\t\t//console.log(\"acctual time ...\",updatetimeElapsedWithSameStatus);\r\n\t\tif (!applicationRedirectionInfo.IsEmailNotificationSent\r\n\t\t\t&& applicationRedirectionInfo.ThresholdTimeInSecondsForSendingEmail > 0\r\n\t\t\t&& (updatetimeElapsedWithSameStatus >= applicationRedirectionInfo.ThresholdTimeInSecondsForSendingEmail)) {\r\n\t\t\tthis.stopInterval = true;\r\n\t\t\t//console.log(\"this.sessionService.isCheckSendEmailOperationInProgress\",isSendEmailProgress);\r\n\t\t\tif (isSendEmailProgress === false || isSendEmailProgress === undefined || isSendEmailProgress === null) {\r\n\t\t\t\tthis.sessionService.setIsCheckSendEmailOperationInProgress(\"isSendEmailOperationInProgress\", true);\r\n\t\t\t\tisSendEmailProgress = true;\r\n\t\t\t\tconst emailConfig = new ECommerceEmailConfigLite();\r\n\t\t\t\temailConfig.leadId = applicationRedirectionInfo.LeadId;\r\n\t\t\t\temailConfig.orderName = applicationRedirectionInfo.OrderName;\r\n\t\t\t\temailConfig.notificationType = ECommerceEmailNotificationType.ApplicationPendingWithPaymentProviderForLongerDuration;\r\n\r\n\t\t\t\tthis.ecommerceIntegrationService.sendEmail(emailConfig).subscribe(\r\n\t\t\t\t\tisEmailSent => {\r\n\t\t\t\t\t\tconsole.log(\"Send Email Response: \" + isEmailSent.Result);\r\n\t\t\t\t\t\tapplicationRedirectionInfo.IsEmailNotificationSent = isEmailSent;\r\n\t\t\t\t\t\tthis.formDataService.setApplicationRedirectionInfo(applicationRedirectionInfo);\r\n\t\t\t\t\t\tthis.sessionService.setIsCheckSendEmailOperationInProgress(\"isSendEmailOperationInProgress\", true);\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror => {\r\n\t\t\t\t\t\tconsole.log(\"Error sending email:\", error);\r\n\t\t\t\t\t\tapplicationRedirectionInfo.IsEmailNotificationSent = false;\r\n\t\t\t\t\t\tthis.formDataService.setApplicationRedirectionInfo(applicationRedirectionInfo);\r\n\t\t\t\t\t\tthis.sessionService.setIsCheckSendEmailOperationInProgress(\"isSendEmailOperationInProgress\", false);\r\n\t\t\t\t\t\tthis.stopInterval = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tconsole.log(\"isSendEmailOperationInProgress: \" + isSendEmailProgress);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (applicationRedirectionInfo.ThresholdTimeInSecondsForAutoRedirection > 0\r\n\t\t\t&& timeElapsedWithSameStatus >= applicationRedirectionInfo.ThresholdTimeInSecondsForAutoRedirection) {\r\n\t\t\tthis.redirect(application);\r\n\t\t}\r\n\t}\r\n\r\n\tredirect(application: ApplicantDashboardData) {\r\n\t\tif (application != null && application != undefined\r\n\t\t\t&& application.InvoiceReturnURL != null && application.InvoiceReturnURL != undefined && application.InvoiceReturnURL != '') {\r\n\t\t\tthis.formDataService.resetApplicationRedirectionInfo();\r\n\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (application != null && application != undefined\r\n\t\t\t\t\t&& application.InvoiceReturnURL != null && application.InvoiceReturnURL != undefined && application.InvoiceReturnURL != '') {\r\n\t\t\t\t\twindow.open(application.InvoiceReturnURL, '_self');\r\n\t\t\t\t}\r\n\t\t\t}, 2000);\r\n\t\t}\r\n\t}\r\n\r\n\t// TO DO: Remove log messages which are added for debugging purpose\r\n\tsendEmail(applicationRedirectionInfo: ApplicationRedirectionInfo, emailNotificationType: ECommerceEmailNotificationType): Promise {\r\n\t\treturn new Promise((resolve, reject) => {\r\n\t\t\tconst emailConfig = new ECommerceEmailConfigLite();\r\n\t\t\temailConfig.leadId = applicationRedirectionInfo.LeadId;\r\n\t\t\temailConfig.orderName = applicationRedirectionInfo.OrderName;\r\n\t\t\temailConfig.notificationType = emailNotificationType;\r\n\r\n\t\t\tthis.ecommerceIntegrationService.sendEmail(emailConfig).subscribe(\r\n\t\t\t\tresponse => {\r\n\t\t\t\t\tconsole.log(\"Send Email Response: \" + response.Result);\r\n\t\t\t\t\tresolve(response.Result);\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tconsole.log(\"Error sending email: \" + error);\r\n\t\t\t\t\tresolve(false);\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\tlanguageWiseDisplayStatusName(value: any) {\r\n\t\tlet translationValue: string = '';\r\n\t\tswitch (value) {\r\n\t\t\tcase \"No Lender\":\r\n\t\t\t\ttranslationValue = 'No Provider';\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"Sin prestamista\":\r\n\t\t\t\ttranslationValue = 'Sin proveedor';\r\n\t\t\t\tbreak\r\n\t\t\tdefault:\r\n\t\t\t\ttranslationValue = value;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\treturn translationValue;\r\n }\r\n\r\n setNeuroIdFunnelData(applicationID: any, merchantID: any) {\r\n nid('identify', applicationID.toString());\r\n\r\n var keyValue = `${merchantID ?? 'Organic'}|Prefill|QR-New`;\r\n nid('setVariable', 'funnel', keyValue);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n {{enTranslations?.existingApp?.moreInfo}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{enTranslations?.existingApp?.pendingResponse}}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{enTranslations?.existingApp?.labels.product}}\r\n
\r\n
\r\n {{app.Product}}\r\n
\r\n
\r\n
\r\n
\r\n {{enTranslations?.existingApp?.labels.appStatus}}\r\n
\r\n
\r\n {{languageWiseDisplayStatusName(app.Status)}} \r\n
\r\n
\r\n
\r\n
\r\n {{enTranslations?.existingApp?.labels.provider}}\r\n
\r\n
\r\n \r\n {{enTranslations?.existingApp?.NA}}    \r\n \r\n
\r\n
\r\n
\r\n {{app.Lender}} \r\n \r\n  {{app.LenderEmail}}\r\n \r\n \r\n  +1 {{app.LenderPhone | slice:0:3}} {{app.LenderPhone | slice:3:6}} {{app.LenderPhone | slice:6:10}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{enTranslations?.existingApp?.labels.merchant}}\r\n
\r\n
\r\n \r\n {{app.Merchant}}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{enTranslations?.existingApp?.labels.reqAmount}}\r\n
\r\n
\r\n \r\n ${{app.BestEstimate?.toFixed(2)}} \r\n
\r\n
\r\n \r\n {{enTranslations?.existingApp?.NA}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{enTranslations?.existingApp?.labels.appliedOn}}\r\n
\r\n
\r\n {{app.CreatedOn | date: 'MM/dd/yyyy hh:mm a'}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{enTranslations?.existingApp?.labels.providerStatus}}    \r\n
\r\n
\r\n {{app.LenderStatus}} \r\n \r\n {{enTranslations?.existingApp?.NA}}    \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{enTranslations?.existingApp?.labels.stipulation}}\r\n
\r\n
\r\n \r\n \r\n {{enTranslations?.existingApp?.labels.resolvedStipulation}} \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{enTranslations?.existingApp?.NA}}   \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{enTranslations?.existingApp?.labels.lastUpdated}}    \r\n
\r\n
\r\n {{app.LastUpdated | date: 'MM/dd/yyyy hh:mm a'}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{enTranslations?.existingApp?.labels.offer}}  \r\n
\r\n
\r\n \r\n {{enTranslations?.existingApp?.labels.offerView}}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {{enTranslations?.existingApp?.labels.retrievePaymentInfo}}\r\n \r\n \r\n \r\n {{enTranslations?.existingApp?.NA}}    \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
{{ getAmountLabel(enTranslations, app.AmountLabel) }}
\r\n
\r\n ${{app.LenderAmount?.toFixed(2)}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\t
\r\n\t\t
\r\n\r\n \r\n
\r\n
\r\n {{enTranslations?.existingApp?.statusModal.labels.appStatus}}\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{enTranslations?.existingApp?.statusModal?.header?.status}}\r\n \r\n {{enTranslations?.existingApp?.statusModal?.header?.description}}\r\n \r\n {{enTranslations?.existingApp?.statusModal?.header?.nextStep}}\r\n
\r\n {{languageWiseDisplayStatusName(status.StatusName)}} \r\n \r\n {{status.StatusDescription}}\r\n \r\n {{status.NextStep}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n\t\t
\r\n\t
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n {{enTranslations?.existingApp?.statusModal.labels.providerStatus}}\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{enTranslations?.existingApp?.statusModal?.header?.status}}\r\n \r\n {{enTranslations?.existingApp?.statusModal?.header?.description}}\r\n \r\n {{enTranslations?.existingApp?.statusModal?.header?.nextStep}}\r\n
\r\n {{status.StatusName}}\r\n \r\n {{status.StatusDescription}}\r\n \r\n {{status.NextStep}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n\t\t
\r\n\t
\r\n
\r\n\r\n
\r\n\t
\r\n\t\t
\r\n\r\n \r\n
\r\n
\r\n {{enTranslations?.existingApp?.statusModal.labels.requestedAmt}}\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{enTranslations?.existingApp?.statusModal?.requestedAmtheader?.name}}\r\n \r\n {{enTranslations?.existingApp?.statusModal?.requestedAmtheader?.description}}\r\n
\r\n {{enTranslations?.existingApp?.requestedAmtModal.fieldName}}\r\n \r\n {{enTranslations?.existingApp?.requestedAmtModal.descriptionValue}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n\t\t
\r\n\t
\r\n
\r\n","export class ApplicantTypeAhead {\r\n public ID: number;\r\n public Name: string;\r\n constructor(id: number, name: string) {\r\n this.ID = id;\r\n this.Name = name;\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { debounceTime, distinctUntilChanged, Subject } from \"rxjs\";\r\nimport { ApplicantDasboardBroadcast } from \"../../applicant/models/applicant-dasboard-broadcast\";\r\nimport { ApplicantFormData } from \"../../applicant/models/applicant-form-data\";\r\nimport { OnlineApplicationMode } from \"../../applicant/models/online-application-mode\";\r\nimport { ApplicantDashboardSignalRService } from \"../../applicant/service/applicant-dashboard-signalr.service\";\r\nimport { ApplicantService } from \"../../applicant/service/applicant-service\";\r\nimport { FormDataService } from \"../../applicant/service/form-data.service\";\r\nimport { LenderService } from \"../../applicant/service/lender-service\";\r\nimport { AuthService } from \"../../service/auth.service\";\r\nimport { MediaLayoutService } from \"../../service/media.layout.service\";\r\nimport { SessionService } from \"../../service/session.service\";\r\nimport { SharedService } from \"../../service/shared.service\";\r\nimport { ApplicantTypeAhead } from \"../models/applicant_type_ahead\";\r\nimport { CallCenterDashboardData } from \"../models/call-center-dashboard-data\";\r\nimport { provideTranslocoScope } from \"@jsverse/transloco\";\r\nimport { CustomTranslocoService } from \"../../service/transloco.service\";\r\n\r\n@Component({\r\n selector: 'app-call-center-dashboard',\r\n templateUrl: './call-center-dashboard.component.html',\r\n styleUrls: ['./call-center-dashboard.component.scss'],\r\n providers: [provideTranslocoScope({scope:'callcenterdashboard'})]\r\n})\r\nexport class CallCenterDashboard implements OnInit {\r\n\r\n public callCenterDashboardData:CallCenterDashboardData[];\r\n public routelink: string = \"\";\r\n public isMobileDevice: boolean = false;\r\n public formData: ApplicantFormData;\r\n public applicationID: number = 0; \r\n public OnlineApplicationMode: typeof OnlineApplicationMode = OnlineApplicationMode;\r\n public searchOptionList = [\r\n { key: 'name', value: 'Name' },\r\n { key: 'email', value: 'Email' },\r\n { key: 'ssn', value: 'SSN' },\r\n { key: 'phone', value: 'Phone' },\r\n { key: 'applicationID', value: 'Application #' }\r\n ];\r\n public searchList: ApplicantTypeAhead[] = [];\r\n public isVisible = false;\r\n public isSearchOptionSelected = true;\r\n public SearchID = \"\";\r\n public searchfield = \"\";\r\n public globalSearchUpdate = new Subject();\r\n private isRefresh: boolean = false;\r\n public lableSearch:string=null;\r\n\r\n public translatedOptions: { key: string, value: string }[] = [];\r\n public selectedOption: string;\r\n\r\n constructor(\r\n private applicantService: ApplicantService,\r\n private router: Router,\r\n private formDataService: FormDataService,\r\n private sharedService: SharedService,\r\n private sessionService: SessionService,\r\n private lenderService: LenderService,\r\n private authService: AuthService,\r\n public P_MediaLayoutService: MediaLayoutService,\r\n private signalService: ApplicantDashboardSignalRService,\r\n private customeTranslocoService:CustomTranslocoService ) {}\r\n\r\n ngOnInit(): void {\r\n this.customeTranslocoService.setActiveLanguage('en');\r\n this.getTranslatedSearchOptions();\r\n\r\n this.isRefresh = false;\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n //this.loadData();\r\n this.signalService.initSignalR();\r\n this.signalService.statuschanged$.subscribe((message) => {\r\n this.refreshStatus(message);\r\n });\r\n this.globalSearchUpdate.pipe(\r\n debounceTime(500),\r\n distinctUntilChanged())\r\n .subscribe(value => {\r\n this.SearchResult(value, this.SearchID)\r\n });\r\n this.formData = this.formDataService.getFormData();\r\n this.sessionService.remove(\"lenderQuestionMenu\");\r\n this.formData.LenderData = null;\r\n \r\n }\r\n\r\n getTranslatedSearchOptions(): void {\r\n //provided searchOptionList and assets/i18n/component/language.json file\r\n this.translatedOptions = this.customeTranslocoService.translateDropdown(this.searchOptionList,'callcenterdashboard.dropdown');\r\n }\r\n \r\n //#region On Application Click Open Application for further modification like LQ's\r\n public openApplicationInformation(application: any) {\r\n this.routelink = application.LandingPageLink;\r\n this.applicantService.getApplicationDetailInformationForCallCenter(application.ApplicationID)\r\n .subscribe((data => {\r\n if (data.IsSuccess) {\r\n this.setLanguage(data.Result.ApplicationInformation.SelectedLanguageID);\r\n this.loadLenderQuestionMenu();\r\n this.loadFormData(data.Result);\r\n } else {\r\n }\r\n }),\r\n (error => {\r\n console.log(error);\r\n }));\r\n }\r\n //#endregion On Application Click Open Application for further modification like LQ's\r\n\r\n public loadFormData(applicationData: any) {\r\n let application = applicationData.ApplicationInformation;\r\n this.formData.Identity.DocumentTypeID = application.DocumentTypeID;\r\n this.formData.Identity.DOB = application.DOB;\r\n this.formData.Identity.IDDocumentIssuanceState = application.IDDocumentIssuanceState;\r\n this.formData.Identity.IdentificationDocumentID = application.IdentificationDocumentID;\r\n this.formData.LenderID = applicationData.LenderID;\r\n this.formData.Addresses.Address = application.Address;\r\n this.formData.Addresses.Address2 = application.Address2;\r\n this.formData.Addresses.City = application.City;\r\n this.formData.Addresses.State = application.State;\r\n this.formData.Addresses.Zip = application.Zip;\r\n this.formData.Addresses.HousingCost = application.HousingCost;\r\n this.formData.Addresses.IsOwnHouse = application.IsOwnHouse;\r\n\r\n this.formData.ApplicationCreate.BestEstimate = application.BestEstimate;\r\n this.formData.Applications.ApplicationID = application.ApplicationID;\r\n\r\n this.formData.BankDetails.BankDetailID = application.BankDetailID;\r\n this.formData.BankDetails.RoutingNumber = application.RoutingNumber;\r\n this.formData.BankDetails.BankName = application.BankName;\r\n this.formData.BankDetails.AccountTypeID = application.AccountTypeID;\r\n this.formData.BankDetails.AccountNumber = application.AccountNumber;\r\n this.formData.BankDetails.IsAccountOlder = application.AccountAge;\r\n var lenderPageIndex = [];\r\n lenderPageIndex.push(0);\r\n this.sessionService.setSessionLenderPageIndex(\"LenderPageIndex\", lenderPageIndex);\r\n this.sessionService.setSessionLenderQuestionCurrPage(\"LenderQuestionCurrPage\", 0);\r\n this.sessionService.setSessionLenderQuestionPrevPage(\"LenderQuestionPrevPage\", 0);\r\n this.formData.ApplicantIncomeList = applicationData.ApplicantIncomeResult;\r\n this.formData.ApplicantIncomeList.forEach(income => income.IsActive = true);\r\n this.formData.ApplicationCreate.ProductCategoryID = applicationData.ProductCategory;\r\n this.formData.IsLoggedIn = JSON.parse(sessionStorage.getItem(\"Authenticate\") || 'false') as boolean;\r\n this.formDataService.setFormData(this.formData);\r\n //for Inflight application reset this flag.\r\n this.formDataService.savePlaidLinkVerification(false);\r\n this.formDataService.setApplicationMode(this.OnlineApplicationMode.ONLINE_INFLIGHT_APPLICATION);\r\n this.router.navigate([this.routelink]);\r\n }\r\n //#endregion Load Form Data for further LQ's for selected application\r\n\r\n //#region On Application Click, Load Lender Question Menu if applicable\r\n loadLenderQuestionMenu() {\r\n this.lenderService.getLenderMenuByLenderId().subscribe((response => {\r\n if (response !== null) {\r\n if (response.IsSuccess) {\r\n var lenderQuestionMenu = response.Result;\r\n this.sessionService.setSessionLenderQuestionData(\"lenderQuestionMenu\", lenderQuestionMenu);\r\n }\r\n }\r\n }), (error => {\r\n console.log(error);\r\n }));\r\n }\r\n //#endregion On Application Click, Load Lender Question Menu if applicable\r\n\r\n private refreshStatus(message: ApplicantDasboardBroadcast) {\r\n if (this.callCenterDashboardData != undefined) {\r\n var appItem = this.callCenterDashboardData.filter(item => item.ApplicationID == message.payload.ApplicationID);\r\n if (appItem.length > 0) {\r\n Object.assign(appItem[0], message.payload);\r\n } else {\r\n this.callCenterDashboardData.splice(0, 0, message.payload);\r\n }\r\n }\r\n }\r\n\r\n //#region start Search\r\n public onOptionsSelected(SearchID:any) {\r\n if (SearchID != '') {\r\n this.isVisible = true;\r\n }\r\n else {\r\n this.isVisible = false;\r\n }\r\n this.searchfield = \"\";\r\n this.searchList = [];\r\n this.callCenterDashboardData = [];\r\n this.selectedOption = SearchID;\r\n }\r\n\r\n public checkValidations() {\r\n if (this.SearchID == \"\") {\r\n this.isSearchOptionSelected = false;\r\n }\r\n else {\r\n this.isSearchOptionSelected = true;\r\n }\r\n }\r\n public resetFilter() {\r\n this.searchfield = \"\";\r\n this.SearchID = \"\";\r\n this.callCenterDashboardData =[];\r\n }\r\n public async SearchResult(event:any, searchID:any) {\r\n //this.SearchTo = event.query;\r\n\r\n let searchList: ApplicantTypeAhead[] = [];\r\n if (this.searchfield == null || this.searchfield == '' || this.searchfield.length < 3) {\r\n this.searchList = searchList;\r\n return;\r\n }\r\n if (searchID == \"\")\r\n return;\r\n if (searchID == 'phone' && this.searchfield.length < 5) {\r\n this.searchList = searchList;\r\n return;\r\n }\r\n //if (event.keyCode != 13)\r\n // return;\r\n try {\r\n switch (searchID) {\r\n case \"name\":\r\n this.applicantService.getApplicantsByFilter(\"Name\", this.searchfield.toLowerCase())\r\n .subscribe((data => {\r\n if (!data.IsSuccess || (data.IsSuccess && data.Result === null)) {\r\n searchList = [];\r\n this.searchList = searchList;\r\n }\r\n else {\r\n if (data.Result.length != 0) {\r\n data.Result.forEach(function (item:any) {\r\n searchList.push(new ApplicantTypeAhead(item.ID, `${item.Name} - (${item.ID})`));\r\n });\r\n this.searchList = searchList\r\n }\r\n }\r\n }));\r\n await this.delay(60000);\r\n break;\r\n case \"email\":\r\n this.applicantService.getApplicantsByFilter(\"Email\", this.searchfield.toLowerCase())\r\n .subscribe((data => {\r\n if (!data.IsSuccess || (data.IsSuccess && data.Result === null)) {\r\n searchList = [];\r\n this.searchList = searchList;\r\n }\r\n else {\r\n if (data.Result.length != 0) {\r\n data.Result.forEach(function (item: any) {\r\n searchList.push(new ApplicantTypeAhead(item.ID, `${item.Email} - (${item.Name})`));\r\n });\r\n this.searchList = searchList\r\n }\r\n }\r\n }));\r\n await this.delay(60000);\r\n break;\r\n case \"ssn\":\r\n this.applicantService.getApplicantsBySSN(this.searchfield.toLowerCase())\r\n .subscribe((data => {\r\n if (!data.IsSuccess || (data.IsSuccess && data.Result === null)) {\r\n searchList = [];\r\n this.searchList = searchList;\r\n }\r\n else {\r\n if (data.Result.length != 0) {\r\n data.Result.forEach(function (item: any) {\r\n searchList.push(new ApplicantTypeAhead(item.ID, `${item.SSN} - (${item.Name})`));\r\n });\r\n this.searchList = searchList\r\n }\r\n }\r\n }));\r\n await this.delay(60000);\r\n break;\r\n case \"phone\":\r\n this.applicantService.getApplicantsByFilter(\"Phone\", this.searchfield.toLowerCase())\r\n .subscribe((data => {\r\n if (!data.IsSuccess || (data.IsSuccess && data.Result === null)) {\r\n searchList = [];\r\n this.searchList = searchList;\r\n }\r\n else {\r\n if (data.Result.length != 0) {\r\n data.Result.forEach(function (item: any) {\r\n if (item.CellNumber != null)\r\n searchList.push(new ApplicantTypeAhead(item.ID, `${item.CellNumber} - (${item.Name})`));\r\n else if (item.HomeNumber != null) {\r\n searchList.push(new ApplicantTypeAhead(item.ID, `${item.HomeNumber} - (${item.Name})`));\r\n }\r\n else if (item.WorkNumber != null) {\r\n searchList.push(new ApplicantTypeAhead(item.ID, `${item.WorkNumber} - (${item.Name})`));\r\n }\r\n });\r\n this.searchList = searchList\r\n }\r\n }\r\n }));\r\n await this.delay(60000);\r\n break;\r\n case \"applicationID\":\r\n this.applicantService.getApplicantsByFilter(\"ApplicationID\", this.searchfield.toLowerCase())\r\n .subscribe((data => {\r\n if (!data.IsSuccess || (data.IsSuccess && data.Result === null)) {\r\n searchList = [];\r\n this.searchList = searchList;\r\n }\r\n else {\r\n if (data.Result.length != 0) {\r\n data.Result.forEach(function (item: any) {\r\n searchList.push(new ApplicantTypeAhead(item.ID, `${item.ID} - (${item.Name})`));\r\n });\r\n this.searchList = searchList\r\n }\r\n }\r\n }));\r\n await this.delay(60000);\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n console.log(e);\r\n return;\r\n }\r\n\r\n //this.searchList = searchList;\r\n }\r\n\r\n\r\n public showSelection(selectedField: any): void {\r\n this.applicantService.getCallCenterDashboardData(this.SearchID,selectedField.ID)\r\n .subscribe((data => {\r\n if (!data.IsSuccess || (data.IsSuccess && data.Result === null)) {\r\n return;\r\n }\r\n else {\r\n this.callCenterDashboardData = data.Result;\r\n this.formData.applicantEmail = this.callCenterDashboardData[0].Email;\r\n this.formDataService.setFormData(this.formData);\r\n }\r\n }));\r\n }\r\n\r\n private delay(ms: number) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n //#region end Search\r\n setLanguage(lang: string) {\r\n this.customeTranslocoService.setActiveLanguage(lang);\r\n this.customeTranslocoService.setApplicationLanguage(lang);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {{ item.value | transloco }}\r\n \r\n \r\n {{ item.value | transloco}}\r\n \r\n \r\n
\r\n Please Select Search Option.\r\n
\r\n
\r\n
\r\n \r\n \r\n {{result.Name}}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Please click on the ? for more information about your status.\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Product
\r\n
\r\n {{app.Product}}\r\n
\r\n
\r\n
\r\n
Application Status
\r\n
\r\n {{app.Status}}\r\n \r\n
\r\n
\r\n
\r\n
Applied On
\r\n
\r\n {{app.CreatedOn | date: 'MM/dd/yyyy hh:mm a'}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Merchant
\r\n
\r\n {{app.Merchant}}\r\n
\r\n
\r\n
\r\n
Requested Amount
\r\n
\r\n ${{app.BestEstimate?.toFixed(2)}}\r\n
\r\n
\r\n Not Available\r\n
\r\n
\r\n\r\n
\r\n
Last Updated    
\r\n
\r\n {{app.UpdatedOn | date: 'MM/dd/yyyy hh:mm a'}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Payment Provider Status    
\r\n
\r\n \r\n \r\n {{app.LenderStatus}}\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
Payment Provider
\r\n
\r\n {{app.Lender}}    \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { PrintService } from './../../service/print.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\n\r\n@Component({\r\n selector: 'app-account-creation-consent',\r\n templateUrl: './account-creation-consent.component.html',\r\n styleUrls: ['./account-creation-consent.component.scss'],\r\n providers: [provideTranslocoScope({ scope: 'account-creation-consent' , alias: 'accountConsent' })]\r\n})\r\nexport class AccountCreationConsentComponent implements OnInit {\r\n\r\n constructor(public activeModal: NgbActiveModal,\r\n private printService: PrintService, private _sharedService: SharedService) { }\r\n\r\n ngOnInit() { }\r\n\r\n printAccountCreationConsent() {\r\n let divToPrint = document.getElementById('accountcreationPrint')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printService.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n closeAccountCreationConsent() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._sharedService.eventBroadCastPageSize.emit();\r\n }\r\n\r\n}\r\n","\r\n
\r\n

{{'accountConsent.accountConsent.title'|transloco}}

\r\n
\r\n
\r\n
\r\n
\r\n {{'accountConsent.accountConsent.subTitle'|transloco}}\r\n

{{'accountConsent.accountConsent.para'|transloco}}

\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { PrintService } from './../../service/print.service';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\n\r\n@Component({\r\n selector: 'app-privacy-policy',\r\n templateUrl: './privacy-policy.component.html',\r\n styleUrls: ['./privacy-policy.component.scss']\r\n})\r\nexport class PrivacyPolicyComponent implements OnInit {\r\n\r\n public phoneNumber: string = \"888-509-1370\";\r\n TranslationsObject: any;\r\n public isUserLoggedin: boolean = false;\r\n\r\n constructor(public activeModal: NgbActiveModal,\r\n private printService: PrintService,\r\n private _sharedService: SharedService,\r\n private translocoService:CustomTranslocoService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.isUserLoggedin = JSON.parse(sessionStorage.getItem(\"Authenticate\") || 'false') as boolean;\r\n let language;\r\n if (this.isUserLoggedin)\r\n {\r\n language = this.translocoService.getApplicantPreferredLanguageID();\r\n }\r\n else\r\n { \r\n language = this.translocoService.getLoginLanguage();\r\n }\r\n this.loadTranslations(language);\r\n }\r\n \r\n printPrivacyPolicy() {\r\n let divToPrint = document.getElementById('privacyPolicyPrint')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printService.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n closePrivacyPolicy() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._sharedService.eventBroadCastPageSize.emit();\r\n }\r\n\r\n loadTranslations(language: string): void {\r\n this.translocoService.loadLanguageWiseTranslationSingleJson('privacy-policy', language).then(() => {\r\n this.TranslationsObject = this.translocoService.getLanguageTranslations('privacy-policy', language);\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n

{{TranslationsObject?.privacyPolicy?.heading}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.privacyPolicy?.privacyNoticeCtrl?.heading}}\r\n

{{TranslationsObject?.privacyPolicy?.privacyNoticeCtrl?.text1}} TerraceFinance.com {{TranslationsObject?.privacyPolicy?.privacyNoticeCtrl?.para1}}

\r\n

{{TranslationsObject?.privacyPolicy?.privacyNoticeCtrl?.para2}}


\r\n

\r\n {{TranslationsObject?.privacyPolicy?.privacyNoticeCtrl?.text2}} www.terracefinance.com/privacy. {{TranslationsObject?.privacyPolicy?.privacyNoticeCtrl?.para3}}
\r\n {{TranslationsObject?.privacyPolicy?.privacyNoticeCtrl?.text3}}\r\n

\r\n
    \r\n
  1. {{TranslationsObject?.privacyPolicy?.privacyNoticeCtrl?.list.item1}}
  2. \r\n
  3. {{TranslationsObject?.privacyPolicy?.privacyNoticeCtrl?.list.item2}}
  4. \r\n
  5. {{TranslationsObject?.privacyPolicy?.privacyNoticeCtrl?.list.item3}}
  6. \r\n
  7. {{TranslationsObject?.privacyPolicy?.privacyNoticeCtrl?.list.item4}}
  8. \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.privacyPolicy?.ageCtrl?.heading}}\r\n

{{TranslationsObject?.privacyPolicy?.ageCtrl?.para}} {{phoneNumber}} {{TranslationsObject?.privacyPolicy?.ageCtrl?.text}} info@terracefinance.com.

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.privacyPolicy?.informationCtrl?.heading}} \r\n

{{TranslationsObject?.privacyPolicy?.informationCtrl?.para1}}

\r\n

\r\n {{TranslationsObject?.privacyPolicy?.informationCtrl?.para2}}\r\n
\r\n

\r\n
    \r\n
  1. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list1?.item1}}
  2. \r\n
  3. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list1?.item2}}
  4. \r\n
  5. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list1?.item3}}
  6. \r\n
  7. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list1?.item4}}
  8. \r\n
  9. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list1?.item5}}
  10. \r\n
  11. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list1?.item6}}
  12. \r\n
  13. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list1?.item7}}
  14. \r\n
  15. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list1?.item8}}
  16. \r\n
  17. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list1?.item9}}
  18. \r\n
\r\n

\r\n {{TranslationsObject?.privacyPolicy?.informationCtrl?.para3}}
\r\n

    \r\n
  1. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list2?.item1}}
  2. \r\n
  3. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list2?.item2}}
  4. \r\n
  5. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list2?.item3}}
  6. \r\n
  7. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list2?.item4}}
  8. \r\n
  9. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list2?.item5}}
  10. \r\n
  11. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list2?.item6}}
  12. \r\n
  13. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list2?.item7}}
  14. \r\n
  15. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list2?.item8}}
  16. \r\n
\r\n \r\n

{{TranslationsObject?.privacyPolicy?.informationCtrl?.para4}}

\r\n

\r\n {{TranslationsObject?.privacyPolicy?.informationCtrl?.para5}}\r\n
\r\n

\r\n
    \r\n
  1. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list3?.item1}}\r\n
  2. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list3?.item2}}\r\n
  3. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list3?.item3}}\r\n
  4. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list3?.item4}}\r\n
  5. \r\n {{TranslationsObject?.privacyPolicy?.informationCtrl?.list3?.item5}}\r\n
      \r\n
    1. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list3?.subItem1}}
    2. \r\n
    3. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list3?.subItem2}}
    4. \r\n
    5. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list3?.subItem3}}
    6. \r\n
    7. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list3?.subItem4}}
    8. \r\n
    9. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list3?.subItem5}}
    10. \r\n
    \r\n
  6. \r\n
  7. {{TranslationsObject?.privacyPolicy?.informationCtrl?.list3?.item6}}
  8. \r\n
\r\n \r\n

{{TranslationsObject?.privacyPolicy?.informationCtrl?.para6}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.privacyPolicy?.surveyCtrl?.heading}}\r\n

{{TranslationsObject?.privacyPolicy?.surveyCtrl?.para}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.privacyPolicy?.dataCollectionCtrl?.heading}}\r\n

{{TranslationsObject?.privacyPolicy?.dataCollectionCtrl?.para1}}

\r\n

{{TranslationsObject?.privacyPolicy?.dataCollectionCtrl?.para2}}

\r\n

{{TranslationsObject?.privacyPolicy?.dataCollectionCtrl?.para3}}

\r\n

{{TranslationsObject?.privacyPolicy?.dataCollectionCtrl?.para4}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.privacyPolicy?.securityCtrl?.heading}}\r\n

{{TranslationsObject?.privacyPolicy?.securityCtrl?.para1}}

\r\n

{{TranslationsObject?.privacyPolicy?.securityCtrl?.para2}}

\r\n

{{TranslationsObject?.privacyPolicy?.securityCtrl?.para3}}

\r\n

{{TranslationsObject?.privacyPolicy?.securityCtrl?.para4}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.privacyPolicy?.accessCtrl?.heading}}\r\n

{{TranslationsObject?.privacyPolicy?.accessCtrl?.para1}} {{phoneNumber}} {{TranslationsObject?.privacyPolicy?.accessCtrl?.para2}} info@terracefinance.com. {{TranslationsObject?.privacyPolicy?.accessCtrl?.text2}}

\r\n

\r\n {{TranslationsObject?.privacyPolicy?.accessCtrl?.para2}}
\r\n {{TranslationsObject?.privacyPolicy?.accessCtrl?.para2}} {{phoneNumber}} {{TranslationsObject?.privacyPolicy?.accessCtrl?.para2}} info@terracefinance.com.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.privacyPolicy?.californiaRightsCtrl?.heading}}\r\n

{{TranslationsObject?.privacyPolicy?.californiaRightsCtrl?.para}} {{phoneNumber}} {{TranslationsObject?.privacyPolicy?.californiaRightsCtrl?.text}} info@terracefinance.com.

\r\n
\r\n
\r\n
\r\n
\r\n

{{TranslationsObject?.privacyPolicy?.text1}} {{phoneNumber}} {{TranslationsObject?.privacyPolicy?.text2}} info@terracefinance.com.

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { PrivacyPolicyComponent } from '../privacy-policy/privacy-policy.component';\r\nimport { PrintService } from './../../service/print.service';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\n\r\n@Component({\r\n selector: 'app-terms-of-service',\r\n templateUrl: './terms-of-service.component.html',\r\n styleUrls: ['./terms-of-service.component.scss'],\r\n //providers: [provideTranslocoScope({scope:'terms-of-service',alias:'termsOfService'})]\r\n})\r\nexport class TermsOfServiceComponent implements OnInit {\r\n\r\n public terraceFinanceUrl: string = \"https://terracefinance.com\";\r\n public updatedAt: Date = new Date();\r\n public phoneNumber: string = \"888-509-1370\";\r\n TranslationsObject:any;\r\n public isUserLoggedin: boolean = false;\r\n\r\n //#endregion Public Variable\r\n constructor(\r\n private activeModal: NgbActiveModal,\r\n private modalService: NgbModal,\r\n private printService: PrintService,\r\n private _sharedService: SharedService,\r\n private translocoService:CustomTranslocoService ) { }\r\n\r\n ngOnInit() {\r\n this.isUserLoggedin = JSON.parse(sessionStorage.getItem(\"Authenticate\") || 'false') as boolean;\r\n let language;\r\n if (this.isUserLoggedin)\r\n {\r\n language = this.translocoService.getApplicantPreferredLanguageID();\r\n }\r\n else\r\n {\r\n language = this.translocoService.getLoginLanguage();\r\n }\r\n this.loadTranslations(language);\r\n }\r\n \r\n \r\n loadTranslations(language: string): void {\r\n this.translocoService.loadLanguageWiseTranslationSingleJson('terms-of-service', language);\r\n setTimeout(() => {\r\n this.TranslationsObject = this.translocoService.getLanguageTranslations('terms-of-service', language);\r\n }, 500);\r\n }\r\n\r\n printTermsOfServicePolicy() {\r\n let divToPrint = document.getElementById('termsOfServicePrint')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printService.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n closeTermsOfServicePolicy() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n public openPrivacyPolicy() {\r\n const modalRef = this.modalService.open(PrivacyPolicyComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","
\r\n
\r\n

{{TranslationsObject?.termsOfService?.title}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.acceptanceCtrl?.heading}}\r\n
\r\n

\r\n {{TranslationsObject?.termsOfService?.acceptanceCtrl?.para1}} TerraceFinance.com {{TranslationsObject?.termsOfService?.acceptanceCtrl?.para2}}\r\n

\r\n

\r\n {{TranslationsObject?.termsOfService?.acceptanceCtrl?.para3}}\r\n

\r\n

\r\n \r\n \r\n {{TranslationsObject?.termsOfService?.acceptanceCtrl?.para4}}\r\n \r\n \r\n

\r\n

{{TranslationsObject?.termsOfService?.acceptanceCtrl?.para5}} TerraceFinance.com {{TranslationsObject?.termsOfService?.acceptanceCtrl?.para6}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.ageCtrl?.heading}}\r\n
\r\n

\r\n {{TranslationsObject?.termsOfService?.ageCtrl?.para1}}\r\n

\r\n

\r\n {{TranslationsObject?.termsOfService?.ageCtrl?.para2}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.eSignCtrl?.heading}}\r\n
\r\n

\r\n {{TranslationsObject?.termsOfService?.eSignCtrl?.para1}}\r\n

\r\n

{{TranslationsObject?.termsOfService?.eSignCtrl?.para2}}

\r\n
    \r\n
  1. {{TranslationsObject?.termsOfService?.eSignCtrl?.list?.item1}}
  2. \r\n
  3. {{TranslationsObject?.termsOfService?.eSignCtrl?.list?.item2}}
  4. \r\n
  5. {{TranslationsObject?.termsOfService?.eSignCtrl?.list?.item3}}
  6. \r\n
  7. {{TranslationsObject?.termsOfService?.eSignCtrl?.list?.item4}}
  8. \r\n
  9. \r\n {{TranslationsObject?.termsOfService?.eSignCtrl?.list?.item5}}\r\n
      \r\n
    1. {{TranslationsObject?.termsOfService?.eSignCtrl?.list?.subItem1}}
    2. \r\n
    3. {{TranslationsObject?.termsOfService?.eSignCtrl?.list?.subItem2}}
    4. \r\n
    5. {{TranslationsObject?.termsOfService?.eSignCtrl?.list?.subItem3}}
    6. \r\n
    7. {{TranslationsObject?.termsOfService?.eSignCtrl?.list?.subItem4}}
    8. \r\n
    \r\n
  10. \r\n
\r\n

\r\n {{TranslationsObject?.termsOfService?.eSignCtrl?.para3}} {{phoneNumber}} {{TranslationsObject?.termsOfService?.eSignCtrl?.text}} info@terracefinance.com. {{TranslationsObject?.termsOfService?.eSignCtrl?.text1}} {{phoneNumber}} {{TranslationsObject?.termsOfService?.eSignCtrl?.text}} info@terracefinance.com. {{TranslationsObject?.termsOfService?.eSignCtrl?.text2}}\r\n

\r\n

{{TranslationsObject?.termsOfService?.eSignCtrl?.para4}} {{phoneNumber}} {{TranslationsObject?.termsOfService?.eSignCtrl?.text}} info@terracefinance.com. {{TranslationsObject?.termsOfService?.eSignCtrl?.text3}}

\r\n

{{TranslationsObject?.termsOfService?.eSignCtrl?.para5}}

\r\n

{{TranslationsObject?.termsOfService?.eSignCtrl?.para6}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.generalTermsCtrl?.heading}}\r\n
\r\n

{{TranslationsObject?.termsOfService?.generalTermsCtrl?.para1}}

\r\n
    \r\n
  1. {{TranslationsObject?.termsOfService?.generalTermsCtrl?.list.item}} {{TranslationsObject?.termsOfService?.privacyPolicyLink}} {{TranslationsObject?.termsOfService?.generalTermsCtrl?.list.item1}}
  2. \r\n
  3. {{TranslationsObject?.termsOfService?.generalTermsCtrl?.list.item2}}
  4. \r\n
  5. {{TranslationsObject?.termsOfService?.generalTermsCtrl?.list.item3}} {{TranslationsObject?.termsOfService?.privacyPolicyLink}};
  6. \r\n
  7. {{TranslationsObject?.termsOfService?.generalTermsCtrl?.list.item4}}
  8. \r\n
  9. {{TranslationsObject?.termsOfService?.generalTermsCtrl?.list.item5}}
  10. \r\n
  11. {{TranslationsObject?.termsOfService?.generalTermsCtrl?.list.item6}}
  12. \r\n
  13. {{TranslationsObject?.termsOfService?.generalTermsCtrl?.list.item7}}
  14. \r\n
  15. {{TranslationsObject?.termsOfService?.generalTermsCtrl?.list.item8}}
  16. \r\n \r\n
\r\n

\r\n {{TranslationsObject?.termsOfService?.generalTermsCtrl?.para2}}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.truthfulInformationCtrl?.heading}}\r\n
\r\n

{{TranslationsObject?.termsOfService?.truthfulInformationCtrl?.para}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.coApplicantCtrl?.heading}}\r\n
\r\n

{{TranslationsObject?.termsOfService?.coApplicantCtrl?.para}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.accessCtrl?.heading}}\r\n

{{TranslationsObject?.termsOfService?.accessCtrl?.para}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.terminationCtrl?.heading}}\r\n
\r\n

{{TranslationsObject?.termsOfService?.terminationCtrl?.para1}}

\r\n

{{TranslationsObject?.termsOfService?.terminationCtrl?.para2}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.informationCtrl?.heading}}\r\n
\r\n

{{TranslationsObject?.termsOfService?.informationCtrl?.para1}}

\r\n

{{TranslationsObject?.termsOfService?.informationCtrl?.para2}} {{TranslationsObject?.termsOfService?.privacyPolicyLink}}.

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.websiteContentCtrl?.heading}}\r\n
\r\n

\r\n {{TranslationsObject?.termsOfService?.websiteContentCtrl?.para}}\r\n
{{TranslationsObject?.termsOfService?.websiteContentCtrl?.text}}
\r\n

\r\n
    \r\n
  1. {{TranslationsObject?.termsOfService?.websiteContentCtrl?.list.item1}}
  2. \r\n
  3. {{TranslationsObject?.termsOfService?.websiteContentCtrl?.list.item2}}
  4. \r\n
  5. {{TranslationsObject?.termsOfService?.websiteContentCtrl?.list.item3}}
  6. \r\n
  7. {{TranslationsObject?.termsOfService?.websiteContentCtrl?.list.item4}}
  8. \r\n
  9. {{TranslationsObject?.termsOfService?.websiteContentCtrl?.list.item5}} info@terracefinance.com.
  10. \r\n
  11. {{TranslationsObject?.termsOfService?.websiteContentCtrl?.list.item6}}
  12. \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.copyrightCtrl?.heading}} \r\n

© {{TranslationsObject?.termsOfService?.copyrightCtrl?.heading}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.trademarkCtrl?.heading}}\r\n

{{TranslationsObject?.termsOfService?.trademarkCtrl?.para}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.linksCtrl?.heading}}\r\n

{{TranslationsObject?.termsOfService?.linksCtrl?.para1}}

\r\n

{{TranslationsObject?.termsOfService?.linksCtrl?.para2}}

\r\n

{{TranslationsObject?.termsOfService?.linksCtrl?.para3}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.liabilityCtrl?.heading}}\r\n

{{TranslationsObject?.termsOfService?.liabilityCtrl?.para1}}

\r\n

{{TranslationsObject?.termsOfService?.liabilityCtrl?.tex1}} {{TranslationsObject?.termsOfService?.liabilityCtrl?.para2}}

\r\n

{{TranslationsObject?.termsOfService?.liabilityCtrl?.para3}}

\r\n

\r\n {{TranslationsObject?.termsOfService?.liabilityCtrl?.para4}} {{TranslationsObject?.termsOfService?.liabilityCtrl?.text2}} {{TranslationsObject?.termsOfService?.liabilityCtrl?.para5}}\r\n

    \r\n
  1. {{TranslationsObject?.termsOfService?.liabilityCtrl?.list.item1}}
  2. \r\n
  3. {{TranslationsObject?.termsOfService?.liabilityCtrl?.list.item2}}
  4. \r\n
  5. {{TranslationsObject?.termsOfService?.liabilityCtrl?.list.item3}}.
  6. \r\n
\r\n \r\n

{{TranslationsObject?.termsOfService?.liabilityCtrl?.para6}}{{TranslationsObject?.termsOfService?.liabilityCtrl?.text3}}

\r\n

{{TranslationsObject?.termsOfService?.liabilityCtrl?.text4}} {{TranslationsObject?.termsOfService?.liabilityCtrl?.para7}}

\r\n

{{TranslationsObject?.termsOfService?.liabilityCtrl?.para8}}

\r\n

{{TranslationsObject?.termsOfService?.liabilityCtrl?.para9}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.indemnificationCtrl?.heading}}\r\n

\r\n {{TranslationsObject?.termsOfService?.indemnificationCtrl?.para1}}
\r\n

    \r\n
  1. {{TranslationsObject?.termsOfService?.indemnificationCtrl?.list?.item1}}
  2. \r\n
  3. {{TranslationsObject?.termsOfService?.indemnificationCtrl?.list?.item2}} {{TranslationsObject?.termsOfService?.privacyPolicyLink}}{{TranslationsObject?.termsOfService?.indemnificationCtrl?.list?.text}}
  4. \r\n
  5. {{TranslationsObject?.termsOfService?.indemnificationCtrl?.list?.item3}}
  6. \r\n
  7. {{TranslationsObject?.termsOfService?.indemnificationCtrl?.list?.item4}}
  8. \r\n
  9. {{TranslationsObject?.termsOfService?.indemnificationCtrl?.list?.item5}}
  10. \r\n
  11. {{TranslationsObject?.termsOfService?.indemnificationCtrl?.list?.item6}}
  12. \r\n
  13. {{TranslationsObject?.termsOfService?.indemnificationCtrl?.list?.item7}}
  14. \r\n
\r\n \r\n

{{TranslationsObject?.termsOfService?.indemnificationCtrl?.para2}}

\r\n

{{TranslationsObject?.termsOfService?.indemnificationCtrl?.para3}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.privacyPolicy?.heading}}\r\n

{{TranslationsObject?.termsOfService?.privacyPolicy?.para1}} {{ TranslationsObject?.termsOfService?.privacyPolicyLink}} {{ TranslationsObject?.termsOfService?.privacyPolicy?.para3 }} https://terracefinance.com/privacy{{TranslationsObject?.termsOfService?.privacyPolicy?.para2}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.juridictionCtrl?.heading}}\r\n

{{TranslationsObject?.termsOfService?.juridictionCtrl?.para1}}

\r\n

{{TranslationsObject?.termsOfService?.juridictionCtrl?.para2}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.severabilityCtrl?.heading}}\r\n

{{TranslationsObject?.termsOfService?.severabilityCtrl?.para}}

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.contactUsCtrl?.heading}}\r\n

{{TranslationsObject?.termsOfService?.contactUsCtrl?.para1}} {{phoneNumber}} {{TranslationsObject?.termsOfService?.contactUsCtrl?.para2}} info@terracefinance.com.

\r\n
\r\n
\r\n
\r\n
\r\n {{TranslationsObject?.termsOfService?.lastUpdatedLabel}}:{{updatedAt}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { PrivacyPolicyComponent } from '../privacy-policy/privacy-policy.component';\r\nimport { TermsOfServiceComponent } from '../terms-of-service/terms-of-service.component';\r\nimport { PrintService } from './../../service/print.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\n\r\n@Component({\r\n selector: 'app-credit-score-consent',\r\n templateUrl: './credit-score-consent.component.html',\r\n styleUrls: ['./credit-score-consent.component.scss'],\r\n providers: [provideTranslocoScope({scope:'credit-score-consent', alias:'creditConsent'})]\r\n})\r\nexport class CreditScoreConsentComponent implements OnInit {\r\n\r\n constructor(public activeModal: NgbActiveModal, private modalService: NgbModal,\r\n private printService: PrintService, private _sharedService: SharedService) { }\r\n\r\n ngOnInit() { }\r\n\r\n printPullCreditPolicy() {\r\n let divToPrint = document.getElementById('pullCreditPrint')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printService.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n closePullCreditPolicy() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n public openPrivacyPolicy() {\r\n const modalRef = this.modalService.open(PrivacyPolicyComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n public openTermsOfService() {\r\n const modalRef = this.modalService.open(TermsOfServiceComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","\r\n
\r\n

{{'creditConsent.creditConsent.title'|transloco}}

\r\n
\r\n
\r\n
\r\n
\r\n {{'creditConsent.creditConsent.subTitle'|transloco}}\r\n

{{'creditConsent.creditConsent.para1'|transloco}}

\r\n

{{'creditConsent.creditConsent.para2'|transloco}}

\r\n

{{'creditConsent.creditConsent.para3'|transloco}}

\r\n

{{'creditConsent.creditConsent.paraCalifornia'|transloco}}

\r\n

{{'creditConsent.creditConsent.paraOhio'|transloco}}

\r\n

{{'creditConsent.creditConsent.paraNewYork'|transloco}}

\r\n

{{'creditConsent.creditConsent.paraRhodeIsland'|transloco}}

\r\n

{{'creditConsent.creditConsent.paraVermont'|transloco}}

\r\n

{{'creditConsent.creditConsent.paraWisconsin'|transloco}}

\r\n

{{'creditConsent.creditConsent.para4'|transloco}} {{'creditConsent.creditConsent.privacyPolicyLink'|transloco}} {{'creditConsent.creditConsent.text1'|transloco}} {{'creditConsent.creditConsent.termOfServiceLink'|transloco}}.

\r\n

{{'creditConsent.creditConsent.Para5'|transloco}}

\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { PrivacyPolicyComponent } from '../privacy-policy/privacy-policy.component';\r\nimport { TermsOfServiceComponent } from '../terms-of-service/terms-of-service.component';\r\nimport { PrintService } from './../../service/print.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\n\r\n@Component({\r\n selector: 'app-route-application-consent',\r\n templateUrl: './route-application-consent.component.html',\r\n styleUrls: ['./route-application-consent.component.scss'],\r\n providers: [provideTranslocoScope({ scope: 'route-application-consent', alias: 'routeConsent' })]\r\n})\r\nexport class RouteApplicationConsentComponent implements OnInit {\r\n\r\n constructor(public activeModal: NgbActiveModal, private modalService: NgbModal, private printService: PrintService, private _sharedService: SharedService) { }\r\n\r\n ngOnInit() { }\r\n\r\n printRouteApplicationPolicy() {\r\n let divToPrint = document.getElementById('routeApplicationPrint')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printService.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n closeRouteApplicationPolicy() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n public openPrivacyPolicy() {\r\n const modalRef = this.modalService.open(PrivacyPolicyComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n public openTermsOfService() {\r\n const modalRef = this.modalService.open(TermsOfServiceComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._sharedService.eventBroadCastPageSize.emit();\r\n }\r\n\r\n}\r\n","
\r\n

{{'routeConsent.routeConsent.title'|transloco}}

\r\n
\r\n
\r\n
\r\n
\r\n {{'routeConsent.routeConsent.subTitle'|transloco}}\r\n

{{'routeConsent.routeConsent.para'|transloco}} {{'routeConsent.routeConsent.termsOfServiceLink'|transloco}} {{'routeConsent.routeConsent.Text1'|transloco}} {{'routeConsent.routeConsent.privacyPolicyLink'|transloco}}.

\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { NgbActiveModal, NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { PrintService } from \"../../service/print.service\";\r\nimport { SharedService } from \"../../service/shared.service\";\r\nimport { PrivacyPolicyComponent } from \"../privacy-policy/privacy-policy.component\";\r\nimport { TermsOfServiceComponent } from \"../terms-of-service/terms-of-service.component\";\r\nimport { provideTranslocoScope } from \"@jsverse/transloco\";\r\n@Component({\r\n selector: 'app-send-offers-consent',\r\n templateUrl: './send-offers-consent.component.html',\r\n styleUrls: ['./send-offers-consent.component.scss'],\r\n providers: [provideTranslocoScope({ scope: 'send-offers-consent', alias:'offersConsent'})]\r\n})\r\nexport class SendOffersConsentComponent implements OnInit{\r\n constructor(\r\n public activeModal: NgbActiveModal,\r\n private modalService: NgbModal,\r\n private printService: PrintService,\r\n private _sharedService: SharedService\r\n ) { }\r\n\r\n\r\n ngOnInit() {\r\n }\r\n printSendOffersConsent() {\r\n let divToPrint = document.getElementById('sendOffersConsentPrint')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printService.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n closeSendOffersConsent() {\r\n this.activeModal.dismiss();\r\n }\r\n public openPrivacyPolicy() {\r\n const modalRef = this.modalService.open(PrivacyPolicyComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n public openTermsOfService() {\r\n const modalRef = this.modalService.open(TermsOfServiceComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n}\r\n","
\r\n

{{'offersConsent.offersConsent.title'|transloco}}

\r\n
\r\n
\r\n
\r\n
\r\n {{'offersConsent.offersConsent.subTitle'|transloco}}\r\n

\r\n {{'offersConsent.offersConsent.para'|transloco}} {{'offersConsent.offersConsent.termsOfServiceLink'|transloco}} {{'offersConsent.offersConsent.Text1'|transloco}} {{'offersConsent.offersConsent.privacyPolicyLink'|transloco}}.\r\n

\r\n
\r\n
\r\n
\r\n\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DisclosureType } from '../../models/disclosure-consent-type';\r\nimport { MediaLayoutService } from '../../service/media.layout.service';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { AccountCreationConsentComponent } from '../account-creation-consent/account-creation-consent.component';\r\nimport { CreditScoreConsentComponent } from '../credit-score-consent/credit-score-consent.component';\r\nimport { PrivacyPolicyComponent } from '../privacy-policy/privacy-policy.component';\r\nimport { RouteApplicationConsentComponent } from '../route-application-consent/route-application-consent.component';\r\nimport { SendOffersConsentComponent } from '../send-offers-consent/send-offers-consent.component';\r\nimport { TermsOfServiceComponent } from '../terms-of-service/terms-of-service.component';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\n\r\n@Component({\r\n selector: 'app-disclosures-and-consents',\r\n templateUrl: './disclosures-and-consents.component.html',\r\n styleUrls: ['./disclosures-and-consents.component.scss'],\r\n providers: [provideTranslocoScope({scope:'disclosures-and-consents', alias:'disclosures'})]\r\n})\r\nexport class DisclosuresAndConsentsComponent implements OnInit {\r\n\r\n public DisclosureType: typeof DisclosureType = DisclosureType;\r\n public isMobileDevice: boolean = false;\r\n\r\n constructor(private modalService: NgbModal, private router: Router, public activeModal: NgbActiveModal, public P_MediaLayoutService: MediaLayoutService, private _sharedService: SharedService) { }\r\n\r\n ngOnInit(): void {\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n }\r\n\r\n\r\n public openDisclosures(disclosureType: DisclosureType) {\r\n let disclosureComponent: object;\r\n switch (disclosureType) {\r\n default:\r\n case DisclosureType.PRIVACY_POLICY:\r\n disclosureComponent = PrivacyPolicyComponent;\r\n break;\r\n case DisclosureType.TERMS_OF_SERVICE:\r\n disclosureComponent = TermsOfServiceComponent;\r\n break;\r\n case DisclosureType.CONSENT_FOR_CREATE_ACCOUNT:\r\n disclosureComponent = AccountCreationConsentComponent;\r\n break;\r\n case DisclosureType.CONSENT_FOR_PULL_CREDIT_SCORE:\r\n disclosureComponent = CreditScoreConsentComponent;\r\n break;\r\n case DisclosureType.CONSENT_FOR_ROUTE_APPLICATION_TO_LENDER:\r\n disclosureComponent = RouteApplicationConsentComponent;\r\n break;\r\n case DisclosureType.CONSENT_FOR_SEND_OFFERS:\r\n disclosureComponent = SendOffersConsentComponent;\r\n break;\r\n }\r\n const modalRef = this.modalService.open(disclosureComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) { }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n close() {\r\n this.activeModal.close(true);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","
\r\n
\r\n

{{'disclosures.disclosures.title'|transloco}}

\r\n
\r\n
\r\n
\r\n
\r\n

{{'disclosures.disclosures.subTitle'|transloco}}

\r\n

{{'disclosures.disclosures.text1'|transloco}} {{'disclosures.disclosures.termsOfServiceLink'|transloco}} {{'disclosures.disclosures.text2'|transloco}} {{'disclosures.disclosures.privacyPolicyLink'|transloco}} .

\r\n
\r\n

{{'disclosures.disclosures.text3'|transloco}} {{'disclosures.disclosures.createAccountLink'|transloco}} {{'disclosures.disclosures.text4'|transloco}} {{'disclosures.disclosures.creditPullLink'|transloco}} {{'disclosures.disclosures.text5'|transloco}} {{'disclosures.disclosures.routeAppLink'|transloco}} {{'disclosures.disclosures.text6'|transloco}} {{'disclosures.disclosures.sendOffersLink'|transloco}} {{'disclosures.disclosures.text7'|transloco}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Directive, ElementRef, OnInit, Renderer2 } from '@angular/core';\r\nimport { MediaLayoutService } from '../service/media.layout.service';\r\nimport { CustomTranslocoService } from '../service/transloco.service';\r\ntype LanguageKey = 'en' | 'es';\r\n\r\nconst eye = 'data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ4OC44NSA0ODguODUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ4OC44NSA0ODguODU7IiB4bWw6c3BhY2U9InByZXNlcnZlIiB3aWR0aD0iMTZweCIgaGVpZ2h0PSIxNnB4Ij4KPGc+Cgk8cGF0aCBkPSJNMjQ0LjQyNSw5OC43MjVjLTkzLjQsMC0xNzguMSw1MS4xLTI0MC42LDEzNC4xYy01LjEsNi44LTUuMSwxNi4zLDAsMjMuMWM2Mi41LDgzLjEsMTQ3LjIsMTM0LjIsMjQwLjYsMTM0LjIgICBzMTc4LjEtNTEuMSwyNDAuNi0xMzQuMWM1LjEtNi44LDUuMS0xNi4zLDAtMjMuMUM0MjIuNTI1LDE0OS44MjUsMzM3LjgyNSw5OC43MjUsMjQ0LjQyNSw5OC43MjV6IE0yNTEuMTI1LDM0Ny4wMjUgICBjLTYyLDMuOS0xMTMuMi00Ny4yLTEwOS4zLTEwOS4zYzMuMi01MS4yLDQ0LjctOTIuNyw5NS45LTk1LjljNjItMy45LDExMy4yLDQ3LjIsMTA5LjMsMTA5LjMgICBDMzQzLjcyNSwzMDIuMjI1LDMwMi4yMjUsMzQzLjcyNSwyNTEuMTI1LDM0Ny4wMjV6IE0yNDguMDI1LDI5OS42MjVjLTMzLjQsMi4xLTYxLTI1LjQtNTguOC01OC44YzEuNy0yNy42LDI0LjEtNDkuOSw1MS43LTUxLjcgICBjMzMuNC0yLjEsNjEsMjUuNCw1OC44LDU4LjhDMjk3LjkyNSwyNzUuNjI1LDI3NS41MjUsMjk3LjkyNSwyNDguMDI1LDI5OS42MjV6IiBmaWxsPSIjMDAwMDAwIi8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==';\r\nconst eyeCrossed = 'data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTcuMS4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDM3OS41NjEgMzc5LjU2MSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzc5LjU2MSAzNzkuNTYxOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CjxwYXRoIGQ9Ik0zMjAuODM4LDEyMS45MjljLTcuMzIxLTUuNjc3LTE1LjYwNC0xMS42MS0yNC42NjQtMTcuMzYyTDM0MS40OTgsNTguNmM2LjIwNC02LjI5Miw2LjEzMy0xNi40MjMtMC4xNi0yMi42MjcgIGMtNi4yOTItNi4yMDQtMTYuNDIyLTYuMTM0LTIyLjYyNiwwLjE1OUwyNjcuMTIsODguNDU2Yy0yMy4yNTMtMTEuMDE4LTQ5LjU4Ny0xOC45NjMtNzcuMTkyLTE4Ljk2M2wtMC45OTEsMC4wMDMgIGMtNTIuMjYyLDAuMzY5LTk5Ljk4MSwyOS45MzItMTMwLjgxLDU0LjY2N0MyNy42MzIsMTQ4LjYzMS0wLjA3MywxODAuMzIsMCwxOTAuNjQ5YzAuMDgyLDExLjcwMiwyNi45ODEsNDIuMjM0LDU4LjczNyw2Ni42NzEgIGM2LjY0Niw1LjExNCwxNS4wNzMsMTEuMTQ1LDI0Ljg3NSwxNy4yNDlMMzcuODcsMzIwLjk2MmMtNi4yMDQsNi4yOTItNi4xMzMsMTYuNDIzLDAuMTYsMjIuNjI3ICBjMy4xMTcsMy4wNzQsNy4xNzUsNC42MDcsMTEuMjMzLDQuNjA3YzQuMTMyLDAsOC4yNjMtMS41OTEsMTEuMzk0LTQuNzY2bDUyLjIxLTUyLjk1MWMyMi42NjYsMTAuNTM1LDQ5LjEwMSwxOC42NTEsNzYuNzUyLDE4LjY1MSAgbDEuMDA3LTAuMDAzYzU1LjUyNS0wLjM5MiwxMDUuNzc2LTMzLjU2NiwxMzAuNzg4LTUzLjMwN2MzMS42MDMtMjQuOTQyLDU4LjIzMS01Ni4wMTEsNTguMTQ4LTY3Ljg0NSAgQzM3OS40ODQsMTc2Ljk4OCwzNTIuMDQzLDE0Ni4xMjYsMzIwLjgzOCwxMjEuOTI5eiBNMTExLjMxNCwxODkuODY0Yy0wLjMwNS00My4zMzYsMzQuNTc4LTc4LjcxNCw3Ny45MTMtNzkuMDE5ICBjMTUuOTc1LTAuMTEzLDMwLjg2LDQuNTY5LDQzLjMxNCwxMi42ODFsLTEwNy45MzgsMTA5LjQ3QzExNi4zMTgsMjIwLjY1NywxMTEuNDI3LDIwNS44MzksMTExLjMxNCwxODkuODY0eiBNMTkwLjMzNCwyNjcuNzc3ICBjLTE1Ljc4NCwwLjExMS0zMC41LTQuNDYyLTQyLjg2My0xMi4zOTZsMTA3Ljc3Ny0xMDkuMzA4YzguMTA3LDEyLjI1LDEyLjg4NywyNi45LDEyLjk5OSw0Mi42ODQgIEMyNjguNTUyLDIzMi4wOTQsMjMzLjY2OSwyNjcuNDcyLDE5MC4zMzQsMjY3Ljc3N3oiIGZpbGw9IiMwMDAwMDAiLz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==';\r\n\r\n@Directive({\r\n selector: '[passwordToggle]'\r\n})\r\nexport class NgxPasswordToggleDirective implements OnInit {\r\n visible: boolean = false;\r\n isMobileDevice: boolean = false;\r\n languageId: LanguageKey;\r\n translatedTexts: any = {}; \r\n\r\n translations: Record = {\r\n en: {\r\n showPassword: \"Show Password\",\r\n hidePassword: \"Hide Password\"\r\n },\r\n es: {\r\n showPassword: \"Mostrar Contraseña\", \r\n hidePassword: \"Ocultar Contraseña\"\r\n }\r\n };\r\n\r\n constructor(\r\n private elem: ElementRef,\r\n private renderer: Renderer2,\r\n private P_MediaLayoutService: MediaLayoutService,\r\n private translocoService: CustomTranslocoService\r\n ) { }\r\n\r\n ngOnInit() { \r\n this.languageId = this.translocoService.getCurrentLanguage() as LanguageKey;\r\n this.translatedTexts = {\r\n showPassword: this.translations[this.languageId].showPassword,\r\n hidePassword: this.translations[this.languageId].hidePassword\r\n };\r\n\r\n let inputElem = this.elem.nativeElement;\r\n let parentElem = inputElem.parentElement;\r\n this.renderer.setStyle(parentElem, 'position', 'relative');\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n let inputElemHeight = inputElem.offsetHeight;\r\n let inputElemTop = inputElem.offsetTop;\r\n this.renderer.setStyle(inputElem, 'padding-right', (inputElemHeight + 5) + 'px');\r\n \r\n // create toggle button\r\n let toggleElem = this.renderer.createElement('div');\r\n this.renderer.setStyle(toggleElem, 'position', 'absolute');\r\n this.renderer.setStyle(toggleElem, 'top', 0 + 'px');\r\n this.renderer.setStyle(toggleElem, 'left', this.isMobileDevice?'63%':'48%');\r\n this.renderer.setStyle(toggleElem, 'width', inputElemHeight + 'px');\r\n this.renderer.setStyle(toggleElem, 'height', inputElemHeight + 'px');\r\n this.renderer.setStyle(toggleElem, 'cursor', 'pointer');\r\n this.renderer.setStyle(toggleElem, 'opacity', '0.6');\r\n this.renderer.setStyle(toggleElem, 'background-color', 'transparent');\r\n this.renderer.setStyle(toggleElem, 'background-repeat', 'no-repeat');\r\n this.renderer.setStyle(toggleElem, 'background-position', 'center center');\r\n this.renderer.setStyle(toggleElem, 'background-image', `url(${eyeCrossed})`);\r\n this.renderer.setProperty(toggleElem, 'title',this.translatedTexts.showPassword)\r\n // append toggle element to input element holder\r\n this.renderer.appendChild(parentElem, toggleElem);\r\n\r\n // listen to click event on toggle button\r\n this.renderer.listen(toggleElem, 'click', (event) => {\r\n this.visible = !this.visible;\r\n this.renderer.setStyle(toggleElem, 'background-image', `url(${this.visible ? eye : eyeCrossed})`);\r\n this.renderer.setProperty(toggleElem, 'title', this.visible ? this.translatedTexts.hidePassword : this.translatedTexts.showPassword)\r\n this.renderer.setAttribute(inputElem, 'type', this.visible ? 'text' : 'password');\r\n });\r\n }\r\n \r\n}\r\n","import { Component, EventEmitter, HostListener, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { MessageService } from 'primeng/api';\r\nimport { ApplicantFormData } from '../applicant/models/applicant-form-data';\r\nimport { OnlineApplicationSource } from '../applicant/models/online-application-source';\r\nimport { ApplicantService } from '../applicant/service/applicant-service';\r\nimport { FormDataService } from '../applicant/service/form-data.service';\r\nimport { DisclosuresAndConsentsComponent } from '../disclosures-and-consents/disclosures-and-consents/disclosures-and-consents.component';\r\nimport { LeadDetails } from '../models/lead-details';\r\nimport { AuthService } from '../service/auth.service';\r\nimport { MediaLayoutService } from '../service/media.layout.service';\r\nimport { ConfirmationBox } from '../shared/components/confirmation-box/confirmation-box.model';\r\nimport { ConfirmationBoxService } from '../shared/components/confirmation-box/confirmation-box.service';\r\nimport { Constants } from \"../shared/constant\";\r\nimport { SharedService } from 'src/app/service/shared.service';\r\nimport { HowItWorksComponent } from '../how-it-works/how-it-works.component';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\ndeclare const nid: any;\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: 'login.component.html',\r\n styleUrls: ['login.component.scss'],\r\n providers: [provideTranslocoScope({ scope: 'login' })]\r\n})\r\nexport class LoginComponent implements OnInit {\r\n @Output() activeTabs = new EventEmitter();\r\n @HostListener('window:resize', [])\r\n public onResize() { this.getScreenSize(); }\r\n\r\n public loginForm: FormGroup;\r\n public emailID: string = null;\r\n public password: string = null;\r\n public isMobileDevice: boolean = false;\r\n public loading: boolean = false;\r\n public activIndex: string;\r\n public submitted = false;\r\n public returnUrl: string;\r\n public error: string;\r\n private leadDetails: LeadDetails;\r\n public formData: ApplicantFormData;\r\n private applicationSource: OnlineApplicationSource;\r\n private staffID?: number = null;\r\n public componentScope: string = \"login\";\r\n\r\n constructor(public P_MediaLayoutService: MediaLayoutService,\r\n private authenticationService: AuthService,\r\n private formBuilder: FormBuilder,\r\n private router: Router,\r\n private modalService: NgbModal,\r\n private messageService: MessageService,\r\n private formDataService: FormDataService,\r\n public applicantService: ApplicantService,\r\n private _confirmationBoxService: ConfirmationBoxService,\r\n public sharedService: SharedService) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n nid('setLinkedSiteId', 'form_palms436');\r\n this.formData = new ApplicantFormData();\r\n this.loginForm = this.formBuilder.group({\r\n emailID: ['', Validators.required],\r\n password: ['', Validators.required]\r\n });\r\n\r\n this.emailID = this.sharedService.getEmailData();\r\n this.staffID = this.formDataService.getStaffID();\r\n this.loginForm.controls['emailID'].setValue(this.emailID);\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n this.applicationSource = this.formDataService.getApplicationSource();\r\n if (!isNaN(this.checkNumber(this.applicationSource.LeadId))) {\r\n this.formData.LeadID = this.applicationSource.LeadId;\r\n this.applicantService.getLeadDetails(this.applicationSource.LeadId).subscribe((response => {\r\n if (response.IsSuccess) {\r\n this.leadDetails = response.Result[0];\r\n if (this.leadDetails != null && this.leadDetails != undefined) {\r\n if (this.applicationSource.LeadId != null && this.leadDetails.IsApplicationCreated) {\r\n this.formDataService.reSetApplicationSource();\r\n this.ValidateLead();\r\n }\r\n }\r\n }\r\n }), (error => {\r\n console.log(error);\r\n }));\r\n }\r\n }\r\n\r\n onSubmit() {\r\n this.submitted = true;\r\n // stop here if form is invalid\r\n if (this.loginForm.invalid) {\r\n return;\r\n }\r\n this.loading = true;\r\n this.activIndex = \"otp\";\r\n let loginLanguageKey: string = 'login.loginForm';\r\n let smsSendLanguageKey: string = 'login.loginForm';\r\n var sourceData = this.formDataService.getApplicationSource();\r\n this.authenticationService.login(this.f['emailID'].value, this.f['password'].value, loginLanguageKey).subscribe((data) => {\r\n var vm = this;\r\n if (data.IsSuccess) {\r\n this.formData.Email = data.Email;\r\n this.formData.FirstName = data.FirstName;\r\n this.formData.LastName = data.LastName;\r\n this.formData.LeadID = this.applicationSource.LeadId;\r\n this.formDataService.setFormData(this.formData);\r\n this.formDataService.setStaffID(this.staffID);\r\n this.loading = false;\r\n if (this.isMobileDevice)\r\n this.router.navigate(['otp']);\r\n this.activeTabs.emit(this.activIndex);\r\n this.formDataService.setRoutePath(\"login\");\r\n this.authenticationService.applicantSendOTP(smsSendLanguageKey)\r\n .subscribe((data) => { },\r\n error => {\r\n console.log(error);\r\n });\r\n }\r\n else if (data.UserID != null) {\r\n this.loading = false;\r\n let confirmBox: ConfirmationBox = new ConfirmationBox('', '', false, false, false, true, 'Login', '', '', 'Help');\r\n confirmBox = new ConfirmationBox('Alert', 'Hello.
You are a registered partner! Our team is working hard to get your new site ready.
In the meantime, we can redirect you to the current site that you are familiar with – just press Login.',\r\n true, false, false, true, 'Login', '', '', 'Help');\r\n this._confirmationBoxService.Open(confirmBox, \"md\").then((result) => {\r\n if (result == true) {\r\n window.location.href = Constants.WEB_API_URL_ADMIN_LOGIN + '/login';\r\n }\r\n else if (result == null) {\r\n vm.resetPreApplicationData();\r\n window.open(Constants.HELP_PAGE_URL, \"_blank\");\r\n }\r\n else\r\n return;\r\n });\r\n }\r\n else if (data.IsActive == 0) {\r\n this.error = data.Message;\r\n this.loading = false;\r\n }\r\n else {\r\n this.error = 'Invalid username or password';\r\n this.loading = false;\r\n }\r\n },\r\n error => {\r\n this.error = error;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n public get f() { return this.loginForm.controls; }\r\n\r\n public openDisclosures() {\r\n const modalRef = this.modalService.open(DisclosuresAndConsentsComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) {\r\n\r\n }\r\n console.log(\"modal\");\r\n this.activIndex = \"register\";\r\n this.activeTabs.emit(this.activIndex);\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n\r\n }\r\n\r\n getScreenSize() {\r\n if (this.isMobileDevice = window.innerWidth <= 600) { }\r\n else { this.router.navigate(['']) }\r\n\r\n }\r\n\r\n onForgotPassword() {\r\n this.router.navigate(['recoverpwd']);\r\n }\r\n\r\n private checkNumber(input: string): number {\r\n\r\n if (!input) return NaN;\r\n\r\n if (input.trim().length == 0) {\r\n return NaN;\r\n }\r\n return Number(input);\r\n }\r\n\r\n //#region validateLead Start\r\n public ValidateLead() {\r\n var vm = this;\r\n let confirmBox: ConfirmationBox = null;\r\n confirmBox = new ConfirmationBox('Alert', 'Application already exists against the lead.

Login to access your existing account.
Click Help to contact Terrace Finance representative.',\r\n true, false, false, true, 'OK', '', '', 'Help');\r\n this._confirmationBoxService.Open(confirmBox, \"md\").then(function (result) {\r\n if (result == true)\r\n vm.router.navigate(['']);\r\n else if (result == null) {\r\n vm.router.navigate(['']);\r\n vm.resetPreApplicationData();\r\n window.open(Constants.HELP_PAGE_URL, \"_blank\");\r\n }\r\n else\r\n return;\r\n });\r\n }\r\n //#endregion validateLead End\r\n\r\n //#region resetPreApplicationData Start\r\n private resetPreApplicationData(): void {\r\n this.formData = new ApplicantFormData();\r\n this.formDataService.setFormData(this.formData);\r\n }\r\n //#endregion resetPreApplicationData Start\r\n\r\n public openHowItWork() {\r\n const modalRef = this.modalService.open(HowItWorksComponent, { size: 'md', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) {\r\n }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n\r\n public NavigateToHome() {\r\n var sourceData = this.formDataService.getApplicationSource();\r\n if (sourceData.SourceId != undefined && sourceData.SourceId != null && sourceData.SourceTypeId != undefined && sourceData.SourceTypeId != null) {\r\n if (this.isMobileDevice) {\r\n window.location.href = '/onlineApplication/preApplication?source=' + sourceData.SourceTypeId + '&identifier=' + sourceData.SourceId;\r\n }\r\n else {\r\n this.activIndex = \"email\";\r\n this.activeTabs.emit(this.activIndex);\r\n window.location.href = '/onlineApplication/preApplication?source=' + sourceData.SourceTypeId + '&identifier=' + sourceData.SourceId;\r\n }\r\n }\r\n else {\r\n if (this.isMobileDevice) {\r\n this.router.navigate(['']);\r\n }\r\n else {\r\n this.activIndex = \"email\";\r\n this.activeTabs.emit(this.activIndex);\r\n }\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {{'login.loginForm.emailIDCtrl.requiredError'| transloco}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {{'login.loginForm.passwordCtrl.requiredError'| transloco}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, HostListener, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { OnlineApplicationSource } from '../../applicant/models/online-application-source';\r\nimport { FormDataService } from '../../applicant/service/form-data.service';\r\nimport { AuthService } from '../../service/auth.service';\r\nimport { MediaLayoutService } from '../../service/media.layout.service';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { OnlineApplicationMode } from '../../applicant/models/online-application-mode';\r\nimport { ApplicantFormData } from '../../applicant/models/applicant-form-data';\r\nimport { SocureService } from '../../service/socure.service';\r\nimport { SessionService } from '../../service/session.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\ndeclare const nid: any;\r\n@Component({\r\n selector: 'app-otp',\r\n templateUrl: './otp.component.html',\r\n styleUrls: ['./otp.component.scss'],\r\n providers: [provideTranslocoScope('otp')]\r\n})\r\nexport class OtpComponent implements OnInit {\r\n\r\n @HostListener('window:resize', [])\r\n public onResize() { this.checkScreenSize(); }\r\n otp: string;\r\n showOtpComponent = true;\r\n error: string;\r\n isRetryLimit: boolean;\r\n public loading: boolean = false;\r\n public isMobileDevice: boolean = false;\r\n private applicationSource: OnlineApplicationSource;\r\n OnlineApplicationMode: typeof OnlineApplicationMode = OnlineApplicationMode;\r\n public formData: ApplicantFormData;\r\n public isOTPViaEmail: boolean = false;\r\n public userEmail: string;\r\n public cellNumber: string;\r\n private roleID: string = null;\r\n @ViewChild('ngOtpInput', { static: false }) ngOtpInput: any;\r\n config = {\r\n allowNumbersOnly: true,\r\n length: 6,\r\n isPasswordInput: false,\r\n disableAutoFocus: false,\r\n placeholder: '',\r\n };\r\n\r\n constructor(private router: Router,\r\n private authenticationService: AuthService,\r\n public P_MediaLayoutService: MediaLayoutService,\r\n private formDataService: FormDataService,\r\n private sharedService: SharedService,\r\n private socureService: SocureService,\r\n private sessionService: SessionService,\r\n private authService: AuthService,\r\n private toastrService: ToastrService,\r\n private translocoService: CustomTranslocoService) { }\r\n\r\n ngOnInit(): void {\r\n nid('setLinkedSiteId', 'form_palms436');\r\n this.socureService.initiateDeviceSvc(\"login\");\r\n this.formData = this.formDataService.getFormData();\r\n this.applicationSource = this.formDataService.getApplicationSource();\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n if (this.authenticationService.currentUserValue != null) {\r\n let email = this.authenticationService.currentUserValue.Email;\r\n this.userEmail = this.maskEmail(email);\r\n this.cellNumber = this.authenticationService.currentUserValue.CellNumber;\r\n }\r\n }\r\n\r\n onOtpChange(otp: any) {\r\n this.otp = otp;\r\n }\r\n\r\n setVal(val: any) {\r\n this.ngOtpInput.setValue(val);\r\n }\r\n\r\n onValidateClick() {\r\n if (this.otp == null || this.otp == undefined || this.otp == '') {\r\n this.toastrService.error('Invalid OTP');\r\n return;\r\n }\r\n this.loading = true;\r\n let loginLanguageKey: string = 'otp.otpForm';\r\n this.authenticationService.verifyOTP(this.otp, loginLanguageKey)\r\n .subscribe((data) => {\r\n if (data == null || data == undefined) {\r\n this.error = 'Invalid username or password';\r\n return;\r\n }\r\n if (data.IsSuccess) {\r\n this.loading = false;\r\n if (this.formData != undefined || this.formData != null) {\r\n this.formData.IsLoggedIn = JSON.parse(sessionStorage.getItem(\"Authenticate\") || 'false') as boolean;\r\n this.formDataService.setFormData(this.formData);\r\n }\r\n this.sharedService.getLoggedInInfo.emit(true);\r\n this.formDataService.setApplicationMode(this.OnlineApplicationMode.ONLINE_ADD_NEW_APPLICATION);\r\n this.roleID = this.sessionService.getSessionRoleID(\"RoleID\") ? this.sessionService.getSessionRoleID(\"RoleID\") : this.authService.currentUserValue.RoleID;\r\n if (this.roleID == \"16\" || this.roleID == \"18\") {\r\n this.translocoService.setActiveLanguage('en');\r\n if (this.isMobileDevice) {\r\n this.router.navigate(['homeapplication']);\r\n }\r\n else {\r\n this.router.navigate(['callcenterdashboard']);\r\n }\r\n }\r\n else {\r\n if (this.isMobileDevice) {\r\n this.router.navigate(['homeapplication']);\r\n }\r\n else {\r\n this.translocoService.setActiveLanguage(this.translocoService.getApplicantPreferredLanguageID());\r\n this.router.navigate(['existingapplications']);\r\n }\r\n }\r\n }\r\n else {\r\n this.error = 'Invalid username or password';\r\n }\r\n },\r\n error => {\r\n this.loading = false;\r\n this.error = error;\r\n });\r\n }\r\n\r\n onRetryClick() {\r\n let languageKey: string = 'otp.otpForm';\r\n this.authenticationService.applicantResendOTP(languageKey).subscribe((data) => {\r\n if (data != null && data != undefined && data.IsSuccess) {\r\n this.ngOtpInput.setValue('');\r\n this.isOTPViaEmail = false;\r\n }\r\n else {\r\n this.error = 'Invalid username or password';\r\n }\r\n },\r\n error => {\r\n this.loading = false;\r\n this.error = error;\r\n });\r\n }\r\n\r\n checkScreenSize() {\r\n this.isMobileDevice = window.innerWidth <= 600;\r\n }\r\n\r\n resendOTPOnEmail() {\r\n let LanguageKey = 'otp.otpForm';\r\n this.authenticationService.applicantResendOTPOnEmail(LanguageKey)\r\n .subscribe((data) => {\r\n if (data.IsSuccess) {\r\n this.ngOtpInput.setValue('');\r\n this.isOTPViaEmail = true;\r\n }\r\n else {\r\n this.error = 'Invalid username or password';\r\n }\r\n },\r\n error => {\r\n this.loading = false;\r\n this.error = error;\r\n });\r\n }\r\n private maskEmail(email: string): string {\r\n const parts = email.split('@');\r\n if (parts.length === 2) {\r\n const username = parts[0];\r\n const maskedUsername = username.length > 2\r\n ? `${username[0]}${'*'.repeat(username.length - 2)}${username[username.length - 1]}`\r\n : username;\r\n\r\n const domain = parts[1];\r\n const maskedDomain = domain.length > 2\r\n ? `${domain[0]}${'*'.repeat(domain.length - 2)}${domain[domain.length - 1]}`\r\n : domain;\r\n\r\n return `${maskedUsername}@${maskedDomain}`;\r\n } else {\r\n return email;\r\n }\r\n }\r\n ngAfterViewInit() {\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n

{{\"otp.otpForm.header\" | transloco}}

\r\n
\r\n
\r\n
\r\n
\r\n

{{\"otp.otpForm.otpSentOnNumberText\" | transloco }} {{cellNumber}} .

\r\n

{{\"otp.otpForm.otpSentOnEmailText\" | transloco }} {{userEmail}}. {{\"otp.otpForm.typeItText\" | transloco}}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { CustomTranslocoService } from '../../../service/transloco.service';\r\nimport { LanguageData } from '../../../models/LanguageData';\r\nimport { SharedService } from '../../../service/shared.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\n\r\n@Component({\r\n selector: 'app-multi-language',\r\n standalone: false,\r\n templateUrl: './multi-language.component.html',\r\n styleUrl: './multi-language.component.scss',\r\n providers: [provideTranslocoScope({scope:'multi-language', alias:'multiLang'})]\r\n})\r\nexport class MultiLanguageComponent implements OnInit, OnChanges {\r\n @Input() languageList: LanguageData[] = [];\r\n\r\n public selectedLanguage: string;\r\n\r\n constructor(private translocoService: CustomTranslocoService, public sharedService: SharedService) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['languageList']) {\r\n this.languageList = this.languageList;\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n //When a consumer comes from a merchant link, \r\n //the preferred language is taken from the respective merchant ID in the database and set as the current active language\r\n this.translocoService.merchantPreferredLanguageId$.subscribe(languageId => {\r\n if (languageId !== null && languageId !== undefined) {\r\n //multiple mapping active lang then set merchant preferredLanguage as default lang\r\n this.selectedLanguage = languageId;\r\n }\r\n else {\r\n //console.log('Preferred language ID is null or mapping language is 0');\r\n this.changeLanguage(this.translocoService.getDefaultLanguage());\r\n }\r\n });\r\n }\r\n\r\n changeLanguage(lang: string) {\r\n this.selectedLanguage = lang;\r\n this.translocoService.setActiveLanguage(lang);\r\n this.translocoService.setLoginLanguage(lang);\r\n this.sharedService.languageChange.emit(lang);\r\n }\r\n}\r\n","\r\n\r\n\r\n","import { ChangeDetectorRef, Component, EventEmitter, HostListener, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ApplicantFormData } from 'src/app/applicant/models/applicant-form-data';\r\nimport { ApplicantService } from 'src/app/applicant/service/applicant-service';\r\nimport { FormDataService } from 'src/app/applicant/service/form-data.service';\r\nimport { DisclosuresAndConsentsComponent } from 'src/app/disclosures-and-consents/disclosures-and-consents/disclosures-and-consents.component';\r\nimport { AuthService } from 'src/app/service/auth.service';\r\nimport { MediaLayoutService } from 'src/app/service/media.layout.service';\r\nimport { ConfirmationBoxService } from 'src/app/shared/components/confirmation-box/confirmation-box.service';\r\nimport { Constants } from \"src/app/shared/constant\";\r\nimport { SharedService } from 'src/app/service/shared.service';\r\nimport { ConfirmationBox } from '../../shared/components/confirmation-box/confirmation-box.model';\r\nimport { HowItWorksComponent } from '../../how-it-works/how-it-works.component';\r\nimport { isNullOrUndefined } from 'is-what';\r\nimport { OnlineApplicationSource } from '../../applicant/models/online-application-source';\r\nimport { LeadDetails } from '../../models/lead-details';\r\nimport { TranslocoService, provideTranslocoScope } from '@jsverse/transloco';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { LanguageData } from '../../models/LanguageData';\r\nimport { forkJoin, map } from 'rxjs';\r\nimport { MerchantService } from '../../applicant/service/merchant-service';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\ndeclare const nid: any;\r\n@Component({\r\n selector: 'app-email-login',\r\n templateUrl: './email-login.component.html',\r\n styleUrls: ['./email-login.component.scss'],\r\n providers: [provideTranslocoScope({ scope: 'email' })]\r\n})\r\nexport class EmailLoginComponent implements OnInit {\r\n\r\n @Output() activeTabs = new EventEmitter();\r\n @HostListener('window:resize', [])\r\n public onResize() { this.getScreenSize(); }\r\n\r\n public emailForm: FormGroup;\r\n public emailID: string = null;\r\n public password: string = null;\r\n public isMobileDevice: boolean = false;\r\n public loading: boolean = false;\r\n public activIndex: string;\r\n public submitted = false;\r\n public returnUrl: string;\r\n public error: string;\r\n public formData: ApplicantFormData;\r\n public enableSalesPersonTracking: boolean = false;\r\n private applicationSource: OnlineApplicationSource;\r\n private sourceID?: number = null;\r\n public staffID?: any = null;\r\n public invalidSalesPerson: boolean = false;\r\n private leadDetails: LeadDetails;\r\n public componentScope: string = \"email\";\r\n public languageWiseShowDropdown: boolean = false;\r\n public isMerchantURLShowDropdown: boolean = false;\r\n public languages: LanguageData[] = [];\r\n\r\n constructor(public P_MediaLayoutService: MediaLayoutService,\r\n private authenticationService: AuthService,\r\n private formBuilder: FormBuilder,\r\n private router: Router,\r\n private modalService: NgbModal,\r\n private formDataService: FormDataService,\r\n public applicantService: ApplicantService,\r\n private _confirmationBoxService: ConfirmationBoxService,\r\n public sharedService: SharedService,\r\n private merchantService: MerchantService,\r\n private translocoService: TranslocoService,\r\n private changeDetector: ChangeDetectorRef,\r\n private customTranslocoService: CustomTranslocoService,\r\n private http: HttpClient) {\r\n }\r\n\r\n ngOnInit(): void {\r\n // Define the pattern here\r\n //const emailPattern = /^[\\p{L}\\p{N}._%+-]+@[\\p{L}\\p{N}.-]+\\.[\\p{L}]{2,}$/u; //spanish email pattern\r\n\r\n nid('setLinkedSiteId', 'form_palms436');\r\n this.sharedService.setUrlData(this.router.url);\r\n this.formData = new ApplicantFormData();\r\n this.invalidSalesPerson = false;\r\n this.emailForm = this.formBuilder.group({\r\n emailID: ['', [Validators.required, Validators.pattern(\"^[a-zA-Z0-9._-]+@[a-zA-Z.-]+\\.[a-zA-Z]{2,}$\")]]\r\n });\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n this.applicationSource = this.formDataService.getApplicationSource();\r\n this.sourceID = !isNullOrUndefined(this.applicationSource.SourceId) ? this.applicationSource.SourceId : null;\r\n var sourceTypeId = !isNullOrUndefined(this.applicationSource.SourceTypeId) ? this.applicationSource.SourceTypeId : null;\r\n if (this.sourceID != null && sourceTypeId != null) {\r\n this.isMerchantURLShowDropdown = true;\r\n this.loadMerchant();\r\n //get merchant mapping languagelist from mapping table\r\n forkJoin({\r\n languagesResponse: this.applicantService.getMerchantMappingLanguageList(this.sourceID),\r\n preferredLanguageResponse: this.merchantService.GetMerchantPreferredLanguageByMerchantId(this.sourceID)\r\n }).pipe(\r\n map(({ languagesResponse, preferredLanguageResponse }) => {\r\n const result: any = {};\r\n\r\n if (languagesResponse.IsSuccess) {\r\n result.languages = languagesResponse.Result;\r\n } else {\r\n result.languages = null;\r\n }\r\n\r\n if (preferredLanguageResponse.IsSuccess) {\r\n result.PreferredLanguageID = preferredLanguageResponse.Result.PreferredLanguageID;\r\n } else {\r\n result.PreferredLanguageID = null;\r\n }\r\n\r\n return result;\r\n })\r\n ).subscribe({\r\n next: (result) => {\r\n this.languages = result.languages != null || result.languages != undefined ? result.languages : [];\r\n let preferredLanguageId = result.PreferredLanguageID;\r\n\r\n //multiple mapping active lang then set merchant preferredLanguage as default lang\r\n if (this.languages.length >= 2) {\r\n this.changeLanguage(preferredLanguageId);\r\n this.languageWiseShowDropdown = true;\r\n }\r\n else if (this.languages.length == 1) {\r\n //single mapping active lang then set active language as default lang\r\n const mappingLangId = this.languages[0].LanguageID;\r\n this.changeLanguage(mappingLangId);\r\n this.languageWiseShowDropdown = false;\r\n }\r\n else if (this.languages.length == 0 || this.languages == null) {\r\n //zero mapping active lang then set merchant preferredLanguage as default lang\r\n this.changeLanguage(preferredLanguageId);\r\n this.languageWiseShowDropdown = false;\r\n }\r\n\r\n this.customTranslocoService.setPreferredLanguageIdToService(this.customTranslocoService.getCurrentLanguage());\r\n this.changeDetector.detectChanges();\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n }\r\n });\r\n }\r\n else {\r\n this.isMerchantURLShowDropdown = false;\r\n this.applicantService.getLanguageList().subscribe({\r\n next: (response) => {\r\n if (response.IsSuccess) {\r\n this.languages = response.Result;\r\n this.languageWiseShowDropdown = true;\r\n }\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n }\r\n })\r\n\r\n this.changeLanguage(this.customTranslocoService.getDefaultLanguage());\r\n this.changeDetector.detectChanges();\r\n }\r\n this.loadLeadDetail();\r\n\r\n }\r\n\r\n changeLanguage(lang: string) {\r\n this.customTranslocoService.setActiveLanguage(lang);\r\n this.customTranslocoService.setLoginLanguage(lang);\r\n this.sharedService.languageChange.emit(lang);\r\n }\r\n\r\n public loadMerchant() {\r\n if (!isNullOrUndefined(this.sourceID)) {\r\n this.applicantService.getMerchantById(this.sourceID)\r\n .subscribe((data => {\r\n if (data.IsSuccess) {\r\n var result = data.Result;\r\n if (!isNullOrUndefined(result.enableSalesPersonTracking)) {\r\n this.formDataService.setEnableSalesPersonTracking(result.enableSalesPersonTracking);\r\n this.enableSalesPersonTracking = result.enableSalesPersonTracking;\r\n }\r\n }\r\n }),\r\n (error => {\r\n console.log(error);\r\n }));\r\n }\r\n }\r\n public loadLeadDetail() {\r\n if (!isNaN(this.checkNumber(this.applicationSource.LeadId))) {\r\n this.formData.LeadID = this.applicationSource.LeadId;\r\n this.applicantService.getLeadDetails(this.applicationSource.LeadId).subscribe((response => {\r\n if (response.IsSuccess) {\r\n this.leadDetails = response.Result[0];\r\n this.emailForm.controls['emailID'].setValue(this.leadDetails.Email);\r\n }\r\n }), (error => {\r\n console.log(error);\r\n }));\r\n }\r\n }\r\n private checkNumber(input: string): number {\r\n\r\n if (!input) return NaN;\r\n\r\n if (input.trim().length == 0) {\r\n return NaN;\r\n }\r\n return Number(input);\r\n }\r\n //#region validateLead Start\r\n public ValidateLead() {\r\n var vm = this;\r\n let confirmBox: ConfirmationBox = null;\r\n confirmBox = new ConfirmationBox('Alert', 'Application already exists against the lead.

Login to access your existing account.
Click Help to contact Terrace Finance representative.',\r\n true, false, false, true, 'OK', '', '', 'Help');\r\n this._confirmationBoxService.Open(confirmBox, \"md\").then(function (result) {\r\n if (result == true)\r\n vm.router.navigate(['']);\r\n else if (result == null) {\r\n vm.router.navigate(['']);\r\n vm.resetPreApplicationData();\r\n window.open(Constants.HELP_PAGE_URL, \"_blank\");\r\n }\r\n else\r\n return;\r\n });\r\n }\r\n //#endregion validateLead End\r\n\r\n onSubmit() {\r\n this.submitted = true;\r\n let languageKey: string = \"email.emaillogin\";\r\n // stop here if form is invalid\r\n if (this.emailForm.invalid) {\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n this.sharedService.setEmailData(this.f['emailID'].value);\r\n var sourceData = this.formDataService.getApplicationSource();\r\n\r\n if (!isNullOrUndefined(this.staffID) && this.staffID != \"\")\r\n this.formDataService.setStaffID(this.staffID);\r\n\r\n this.authenticationService.AuthenticateEmail(this.f['emailID'].value, languageKey).subscribe((data) => {\r\n var vm = this;\r\n this.loading = false;\r\n if (data.IsSuccess) {\r\n if (!isNullOrUndefined(this.staffID) && this.staffID != \"\")\r\n this.validateSalesPserson();\r\n else {\r\n this.activIndex = \"login\";\r\n this.activeTabs.emit(this.activIndex);\r\n }\r\n }\r\n else if (data.UserID != null) {\r\n let alertLabel = this.translocoService.translate('email.emaillogin.alertBoxCtrl.label');\r\n let line1 = this.translocoService.translate('email.emaillogin.alertBoxCtrl.line1');\r\n let line2 = this.translocoService.translate('email.emaillogin.alertBoxCtrl.line2');\r\n let line3 = this.translocoService.translate('email.emaillogin.alertBoxCtrl.line3');\r\n let line4 = this.translocoService.translate('email.emaillogin.alertBoxCtrl.line4');\r\n let loginlabel = this.translocoService.translate('email.emaillogin.alertBoxCtrl.loginButton');\r\n let helplabel = this.translocoService.translate('email.emaillogin.alertBoxCtrl.helpButton');\r\n\r\n let confirmBox: ConfirmationBox = new ConfirmationBox('', '', false, false, false, true, 'Login', '', '', 'Help');\r\n confirmBox = new ConfirmationBox(alertLabel, line1 + '
' + line2 + '
' + line3 + ' ' + line4 + '',\r\n true, false, false, true, loginlabel, '', '', helplabel);\r\n this._confirmationBoxService.Open(confirmBox, \"md\").then((result) => {\r\n if (result == true) {\r\n window.location.href = Constants.WEB_API_URL_ADMIN_LOGIN + '/login';\r\n }\r\n else if (result == null) {\r\n vm.resetPreApplicationData();\r\n window.open(Constants.HELP_PAGE_URL, \"_blank\");\r\n }\r\n else\r\n return;\r\n });\r\n }\r\n else if (data.IsActive == 0 && data.Message != null && data.Message != \"\") {\r\n this.error = data.Message;\r\n this.loading = false;\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.staffID) && this.staffID != \"\")\r\n this.validateSalesPsersonFordisclosure();\r\n else\r\n this.openDisclosures();\r\n }\r\n },\r\n error => {\r\n this.error = error;\r\n this.loading = false;\r\n });\r\n }\r\n private validateSalesPserson() {\r\n this.applicantService.validateSalesPserson(this.sourceID, this.staffID).subscribe((response => {\r\n if (response !== null) {\r\n if (response.Result) {\r\n this.activIndex = \"login\";\r\n this.activeTabs.emit(this.activIndex);\r\n }\r\n else {\r\n this.invalidSalesPerson = true;\r\n }\r\n }\r\n else\r\n console.log(response);\r\n }), (error => {\r\n console.log(error);\r\n }));\r\n }\r\n\r\n private validateSalesPsersonFordisclosure() {\r\n this.applicantService.validateSalesPserson(this.sourceID, this.staffID).subscribe((response => {\r\n if (response !== null) {\r\n if (response.Result) {\r\n this.openDisclosures();\r\n }\r\n else {\r\n this.invalidSalesPerson = true;\r\n }\r\n }\r\n else\r\n console.log(response);\r\n }), (error => {\r\n console.log(error);\r\n }));\r\n }\r\n public clearText() {\r\n this.invalidSalesPerson = false;\r\n }\r\n public get f() { return this.emailForm.controls; }\r\n\r\n getScreenSize() {\r\n this.isMobileDevice = window.innerWidth <= 600;\r\n }\r\n\r\n openDisclosures() {\r\n const modalRef = this.modalService.open(DisclosuresAndConsentsComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) {\r\n\r\n }\r\n console.log(\"modal\");\r\n this.activIndex = \"register\";\r\n this.activeTabs.emit(this.activIndex);\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n\r\n }\r\n\r\n public openHowItWork() {\r\n const modalRef = this.modalService.open(HowItWorksComponent, { size: 'md', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) {\r\n }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n //#region resetPreApplicationData Start\r\n private resetPreApplicationData(): void {\r\n this.formData = new ApplicantFormData();\r\n this.formDataService.setFormData(this.formData);\r\n }\r\n //#endregion resetPreApplicationData Start\r\n ngAfterViewInit() {\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {{'email.emaillogin.emailIDCtrl.requiredError'| transloco}}\r\n \r\n \r\n {{'email.emaillogin.emailIDCtrl.patternError'| transloco}}\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {{'email.emaillogin.salesPersonTrackingCtrl.validNumberError'| transloco}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, ChangeDetectorRef, Component, HostListener, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { isNullOrUndefined } from 'is-what';\r\nimport { environment } from '../../environments/environment';\r\nimport { ApplicantFormData } from '../applicant/models/applicant-form-data';\r\nimport { ApplicantService } from '../applicant/service/applicant-service';\r\nimport { FormDataService } from '../applicant/service/form-data.service';\r\nimport { DisclosuresAndConsentsComponent } from '../disclosures-and-consents/disclosures-and-consents/disclosures-and-consents.component';\r\nimport { HowItWorksComponent } from '../how-it-works/how-it-works.component';\r\nimport { MediaLayoutService } from '../service/media.layout.service';\r\nimport { SessionService } from '../service/session.service';\r\nimport { ConfirmationBox } from '../shared/components/confirmation-box/confirmation-box.model';\r\nimport { AuthService } from 'src/app/service/auth.service';\r\nimport { ConfirmationBoxService } from 'src/app/shared/components/confirmation-box/confirmation-box.service';\r\nimport { Constants } from '../shared/constant';\r\nimport { LeadDetails } from '../models/lead-details';\r\nimport { TranslocoService, provideTranslocoScope } from '@jsverse/transloco';\r\nimport { CustomTranslocoService } from '../service/transloco.service';\r\nimport { MerchantService } from '../applicant/service/merchant-service';\r\nimport { LanguageData } from '../models/LanguageData';\r\nimport { forkJoin, map } from 'rxjs';\r\nimport { SharedService as SharedService } from '../../app/service/shared.service';\r\nimport { SharedService as SimplifiedSharedService } from '../../app/simplified.UI/services/shared.service';\r\nimport { ApplicationRedirectionInfo } from '../applicant/models/ecommerce/application-redirection-info';\r\n\r\ndeclare const nid: any;\r\ndeclare const fbq: any;\r\ndeclare const gtm: any;\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.scss'],\r\n providers: [provideTranslocoScope({ scope: 'homePage' })]\r\n})\r\nexport class HomeComponent implements OnInit, AfterViewInit {\r\n\r\n @HostListener('window:resize', [])\r\n\r\n public onResize() {\r\n this.checkScreenSize();\r\n }\r\n private _sourceTypeId: number;\r\n private _sourceId: number;\r\n private _leadId: number;\r\n merchantName: string = \"\";\r\n isMobileDevice: boolean = false;\r\n activeIndex: string = 'email';\r\n public imageName: string = \"\";\r\n public filePath: string = \"\";\r\n public formData: ApplicantFormData;\r\n public emailForm: FormGroup;\r\n public loading: boolean = false;\r\n public submitted = false;\r\n public error: string;\r\n public staffID?: any = null;\r\n public invalidSalesPerson: boolean = false;\r\n public enableSalesPersonTracking: boolean = false;\r\n public isShowShoppingImage: boolean = false;\r\n private leadDetails: LeadDetails;\r\n public languages: LanguageData[] = [];\r\n public mechantID: number;\r\n\r\n languageWiseShowDropdown: boolean = false;\r\n isMerchantURLShowDropdown:boolean=false;\r\n\r\n constructor(public P_MediaLayoutService: MediaLayoutService, private modalService: NgbModal,\r\n private currentRoute: ActivatedRoute,\r\n private authenticationService: AuthService,\r\n private _confirmationBoxService: ConfirmationBoxService,\r\n public sharedService: SharedService,\r\n private router: Router,\r\n private formBuilder: FormBuilder,\r\n public applicantService: ApplicantService,\r\n private formDataService: FormDataService,\r\n private customTranslocoService: CustomTranslocoService,\r\n private sessionService: SessionService,\r\n private translocoService: TranslocoService,\r\n private merchantService: MerchantService,\r\n private changeDetector: ChangeDetectorRef,\r\n private simplifiedSharedService:SimplifiedSharedService) {\r\n this.currentRoute.params.subscribe(params => {\r\n this._leadId = params['leadId'];\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formData = new ApplicantFormData();\r\n this.emailForm = this.formBuilder.group({\r\n emailID: ['', [Validators.required, Validators.pattern(\"^[a-zA-Z0-9._-]+@[a-zA-Z.-]+\\.[a-zA-Z]{2,}$\")]]\r\n });\r\n\r\n this.sessionService.clear();\r\n nid('setLinkedSiteId', 'form_palms436');\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n if (this.currentRoute.snapshot.queryParams.hasOwnProperty(\"source\") && this.currentRoute.snapshot.queryParams.hasOwnProperty(\"identifier\")) {\r\n this._sourceTypeId = this.currentRoute.snapshot.queryParams['source'];\r\n this._sourceId = this.currentRoute.snapshot.queryParams['identifier'];\r\n }\r\n\r\n if (this.currentRoute.snapshot.params.hasOwnProperty(\"leadId\"))\r\n this._leadId = this.currentRoute.snapshot.params['leadId'];\r\n\r\n if (!isNullOrUndefined(this._sourceTypeId) && !isNullOrUndefined(this._sourceId)) {\r\n this.formDataService.setApplicationSource(this._sourceTypeId, this._sourceId, this._leadId);\r\n }\r\n\r\n // Save redirection information in session storage for ECommerce Integration\r\n // If the following method is breaking any of the functionalities of this component then just comment following method call.\r\n this.saveApplicationRedirectionInfo();\r\n\r\n fbq('trackCustom', 'PreApplicationPageView', { tagId: '119' });\r\n if (environment.googleTagsEnabled) {\r\n gtm.push({ 'event': 'PreApplicationPageView', \"tagId\": '119' });\r\n }\r\n\r\n this.loadMerchant();\r\n this.loadLeadDetail();\r\n\r\n if (!isNullOrUndefined(this._sourceId)) {\r\n this.isMerchantURLShowDropdown = true;\r\n //get merchant mapping languagelist from mapping table\r\n forkJoin({\r\n languagesResponse: this.applicantService.getMerchantMappingLanguageList(this._sourceId),\r\n preferredLanguageResponse: this.merchantService.GetMerchantPreferredLanguageByMerchantId(this._sourceId)\r\n }).pipe(\r\n map(({ languagesResponse, preferredLanguageResponse }) => {\r\n const result: any = {};\r\n\r\n if (languagesResponse.IsSuccess) {\r\n result.languages = languagesResponse.Result;\r\n } else {\r\n result.languages = null;\r\n }\r\n\r\n if (preferredLanguageResponse.IsSuccess) {\r\n result.PreferredLanguageID = preferredLanguageResponse.Result.PreferredLanguageID;\r\n } else {\r\n result.PreferredLanguageID = null;\r\n }\r\n\r\n return result;\r\n })\r\n ).subscribe({\r\n next: (result) => {\r\n this.languages = result.languages != null || result.languages !=undefined ? result.languages:[];\r\n let preferredLanguageId = result.PreferredLanguageID;\r\n\r\n //multiple mapping active lang then set merchant preferredLanguage as default lang\r\n if (this.languages.length >= 2) {\r\n this.changeLanguage(preferredLanguageId);\r\n this.languageWiseShowDropdown = true;\r\n }\r\n else if (this.languages.length == 1) {\r\n //single mapping active lang then set active language as default lang\r\n const mappingLangId = this.languages[0].LanguageID;\r\n this.changeLanguage(mappingLangId);\r\n this.languageWiseShowDropdown = false;\r\n }\r\n else if (this.languages.length == 0 || this.languages == null) {\r\n //zero mapping active lang then set merchant preferredLanguage as default lang\r\n this.changeLanguage(preferredLanguageId);\r\n this.languageWiseShowDropdown = false;\r\n }\r\n\r\n this.customTranslocoService.setPreferredLanguageIdToService(this.customTranslocoService.getCurrentLanguage());\r\n this.changeDetector.detectChanges();\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n }\r\n });\r\n }\r\n else {\r\n this.isMerchantURLShowDropdown = false;\r\n //get languageList from Db\r\n this.applicantService.getLanguageList().subscribe({\r\n next: (response) => {\r\n if (response.IsSuccess) {\r\n this.languages = response.Result;\r\n this.languageWiseShowDropdown = true;\r\n }\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n }\r\n });\r\n\r\n this.changeLanguage(this.customTranslocoService.getDefaultLanguage());\r\n this.changeDetector.detectChanges();\r\n\r\n //enable UX dashboard layout and hide simplifiedui\r\n this.simplifiedSharedService.showOnlineApplicationLayout();\r\n }\r\n\r\n\r\n }\r\n\r\n changeLanguage(lang: string) {\r\n this.customTranslocoService.setActiveLanguage(lang);\r\n this.customTranslocoService.setLoginLanguage(lang);\r\n this.sharedService.languageChange.emit(lang);\r\n }\r\n\r\n public loadMerchant() {\r\n this.isShowShoppingImage = false;\r\n if (!isNullOrUndefined(this._sourceId)) {\r\n this.applicantService.getMerchantById(this._sourceId)\r\n .subscribe((data => {\r\n if (data.IsSuccess) {\r\n var result = data.Result;\r\n this.merchantName = result.name;\r\n result.filePath == null ? (this.isShowShoppingImage = true) : this.filePath = result.filePath;\r\n if (result.filePath != null) {\r\n this.applicantService.getMerchantLogoByFileName(this.filePath)\r\n .subscribe((data => {\r\n this.imageName = data.Result;\r\n }))\r\n }\r\n if (!isNullOrUndefined(result.enableSalesPersonTracking))\r\n this.enableSalesPersonTracking = result.enableSalesPersonTracking;\r\n this.formDataService.setEnableSalesPersonTracking(result.enableSalesPersonTracking);\r\n }\r\n else {\r\n this.isShowShoppingImage = true;\r\n }\r\n }),\r\n (error => {\r\n console.log(error);\r\n }));\r\n }\r\n else {\r\n this.isShowShoppingImage = true;\r\n }\r\n }\r\n public openDisclosures() {\r\n fbq('trackCustom', 'PreApplicationRegister', { tagId: '119' });\r\n if (environment.googleTagsEnabled) {\r\n gtm.push({ 'event': 'PreApplicationRegister', \"tagId\": '119' });\r\n }\r\n const modalRef = this.modalService.open(DisclosuresAndConsentsComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n if (data) {\r\n this.router.navigate(['register']);\r\n }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n public openHowItWork() {\r\n const modalRef = this.modalService.open(HowItWorksComponent, { size: 'md', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) {\r\n }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n navigateToLogin() {\r\n this.router.navigate(['login']);\r\n }\r\n\r\n getActiveTabIndex(activeIndex: string) {\r\n this.activeIndex = activeIndex;\r\n }\r\n\r\n checkScreenSize() {\r\n this.isMobileDevice = window.innerWidth <= 600;\r\n }\r\n\r\n openInNewTab() {\r\n window.open(\"https://cutt.ly/TFC-Google-Reviews\", '_blank');\r\n }\r\n public clearText() {\r\n this.invalidSalesPerson = false;\r\n }\r\n onSubmit() {\r\n this.submitted = true;\r\n // stop here if form is invalid\r\n if (this.emailForm.invalid) {\r\n return;\r\n }\r\n this.loading = true;\r\n this.sharedService.setEmailData(this.f['emailID'].value);\r\n var sourceData = this.formDataService.getApplicationSource();\r\n if (!isNullOrUndefined(this.staffID) && this.staffID != \"\")\r\n this.formDataService.setStaffID(this.staffID);\r\n\r\n this.authenticationService.AuthenticateEmail(this.f['emailID'].value, \"homePage\").subscribe((data) => {\r\n var vm = this;\r\n this.loading = false;\r\n if (data.IsSuccess) {\r\n if (!isNullOrUndefined(this.staffID) && this.staffID != \"\")\r\n this.validateSalesPserson();\r\n else {\r\n this.router.navigate(['login']);\r\n }\r\n }\r\n else if (data.UserID != null) {\r\n let alertLabel = this.translocoService.translate('homePage.alertBoxCtrl.label');\r\n let line1 = this.translocoService.translate('homePage.alertBoxCtrl.line1');\r\n let line2 = this.translocoService.translate('homePage.alertBoxCtrl.line2');\r\n let line3 = this.translocoService.translate('homePage.alertBoxCtrl.line3');\r\n let line4 = this.translocoService.translate('homePage.alertBoxCtrl.line4');\r\n let loginlabel = this.translocoService.translate('homePage.alertBoxCtrl.loginButton');\r\n let helplabel = this.translocoService.translate('homePage.alertBoxCtrl.helpButton');\r\n console.log(alertLabel)\r\n let confirmBox: ConfirmationBox = new ConfirmationBox('', '', false, false, false, true, 'Login', '', '', 'Help');\r\n confirmBox = new ConfirmationBox(alertLabel, line1 + '
' + line2 + '
' + line3 + ' ' + line4 + '',\r\n true, false, false, true, loginlabel, '', '', helplabel);\r\n this._confirmationBoxService.Open(confirmBox, \"md\").then((result) => {\r\n if (result == true) {\r\n window.location.href = Constants.WEB_API_URL_ADMIN_LOGIN + '/login';\r\n }\r\n else if (result == null) {\r\n vm.resetPreApplicationData();\r\n window.open(Constants.HELP_PAGE_URL, \"_blank\");\r\n }\r\n else\r\n return;\r\n });\r\n }\r\n else if (data.IsActive == 0 && data.Message != null && data.Message != \"\") {\r\n this.error = data.Message;\r\n this.loading = false;\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.staffID) && this.staffID != \"\")\r\n this.validateSalesPsersonFordisclosure();\r\n else\r\n this.openDisclosures();\r\n }\r\n },\r\n error => {\r\n this.error = error;\r\n this.loading = false;\r\n });\r\n }\r\n\r\n //#region resetPreApplicationData Start\r\n private resetPreApplicationData(): void {\r\n this.formData = new ApplicantFormData();\r\n this.formDataService.setFormData(this.formData);\r\n }\r\n //#endregion resetPreApplicationData Start\r\n\r\n public get f() { return this.emailForm.controls; }\r\n private validateSalesPsersonFordisclosure() {\r\n this.applicantService.validateSalesPserson(this._sourceId, this.staffID).subscribe((response => {\r\n if (response !== null) {\r\n if (response.Result) {\r\n this.openDisclosures();\r\n }\r\n else {\r\n this.invalidSalesPerson = true;\r\n }\r\n }\r\n else\r\n console.log(response);\r\n }), (error => {\r\n console.log(error);\r\n }));\r\n }\r\n private validateSalesPserson() {\r\n this.applicantService.validateSalesPserson(this._sourceId, this.staffID).subscribe((response => {\r\n if (response !== null) {\r\n if (response.Result) {\r\n this.router.navigate(['login']);\r\n }\r\n else {\r\n this.invalidSalesPerson = true;\r\n }\r\n }\r\n else\r\n console.log(response);\r\n }), (error => {\r\n console.log(error);\r\n }));\r\n }\r\n\r\n public loadLeadDetail() {\r\n if (this._leadId != undefined || this._leadId != null) {\r\n this.formData.LeadID = this._leadId;\r\n this.applicantService.getLeadDetails(this._leadId).subscribe((response => {\r\n if (response.IsSuccess) {\r\n this.leadDetails = response.Result[0];\r\n this.emailForm.controls['emailID'].setValue(this.leadDetails.Email);\r\n }\r\n }), (error => {\r\n console.log(error);\r\n }));\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n\r\n // Saves redirection information in session storage for ECommerce Integration\r\n saveApplicationRedirectionInfo() {\r\n var applicationRedirectionInfo = new ApplicationRedirectionInfo();\r\n applicationRedirectionInfo.LeadId = +this._leadId;\r\n applicationRedirectionInfo.OrderName = this.currentRoute.snapshot.queryParams[Constants.QUERY_STRING_PARAM_ORDER_NAME];\r\n applicationRedirectionInfo.IsAutoRedirectionRequired = this.currentRoute.snapshot.queryParams[Constants.QUERY_STRING_PARAM_IS_REDIRECTION_REQUIRED] === Constants.TRUE_BOOLEAN_VALUE_IN_STRING_FORMAT;\r\n applicationRedirectionInfo.ThresholdTimeInSecondsForSendingEmail = this.getQueryStringParamValueInIntegerFormat(Constants.QUERY_STRING_PARAM_THRESHOLD_TIME_IN_SECONDS_FOR_SENDING_EMAIL);\r\n applicationRedirectionInfo.ThresholdTimeInSecondsForAutoRedirection = this.getQueryStringParamValueInIntegerFormat(Constants.QUERY_STRING_PARAM_THRESHOLD_TIME_IN_SECONDS_FOR_AUTO_REDIRECTION);\r\n this.formDataService.setApplicationRedirectionInfo(applicationRedirectionInfo);\r\n }\r\n\r\n getQueryStringParamValueInIntegerFormat(queryStringParamName: string): number | null {\r\n const queryParams = this.currentRoute.snapshot.queryParams;\r\n const paramValue = queryParams[queryStringParamName];\r\n\r\n if (paramValue && this.isValidPositiveInteger(paramValue)) {\r\n return +paramValue;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n private isValidPositiveInteger(value: string): boolean {\r\n const numberValue = Number(value);\r\n return Number.isInteger(numberValue) && numberValue > 0;\r\n }\r\n}\r\n","\r\n
\r\n\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\"Responsive\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t

\r\n\t\t\t\t\t{{'homePage.merchant' | transloco}} : {{merchantName}}\r\n\t\t\t\t

\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{{'homePage.emailIDCtrl.requiredError'| transloco}}\r\n\t\t\t\t\t\t\t\t{{'homePage.emailIDCtrl.patternError'| transloco}}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{{'homePage.salesPersonTrackingCtrl.validNumberError'| transloco}}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n
\r\n
\r\n\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\"Responsive\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t

\r\n\t\t\t\t\t\t{{'homePage.merchant' | transloco}} : {{merchantName}}\r\n\t\t\t\t\t

\r\n\t\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormGroup, Validators, FormBuilder } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '../../service/auth.service';\r\nimport { Constants } from \"../../shared/constant\";\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\n\r\n@Component({\r\n selector: 'app-recoverpwd',\r\n templateUrl: './recoverpwd.component.html',\r\n styleUrls: ['./recoverpwd.component.scss'],\r\n providers: [provideTranslocoScope('recoverpwd')]\r\n})\r\nexport class RecoverpwdComponent implements OnInit {\r\n public recoverPwdForm: FormGroup;\r\n public loading = false;\r\n public submitted = false;\r\n public returnUrl: string;\r\n public error: string;\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private router: Router,\r\n private authenticationService: AuthService,) { }\r\n\r\n ngOnInit() {\r\n this.recoverPwdForm = this.formBuilder.group({\r\n emailAddress: ['', Validators.required]\r\n });\r\n }\r\n\r\n // convenience getter for easy access to form fields\r\n public get f() { return this.recoverPwdForm.controls; }\r\n\r\n\r\n onSubmit() {\r\n this.submitted = true;\r\n // stop here if form is invalid\r\n if (this.recoverPwdForm.invalid) {\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n let recoverpwdLanguage =\"recoverpwd.recoverPswdForm\";\r\n this.authenticationService.recoverPassword(recoverpwdLanguage,this.recoverPwdForm.value.emailAddress)\r\n .subscribe((data) => {\r\n if (data.IsSuccess) {\r\n //this.sharedService.getLoggedInInfo.emit(true);\r\n this.authenticationService.sendOTPForResetPwd(recoverpwdLanguage)\r\n .subscribe((data) => {\r\n if (data.IsSuccess) {\r\n this.router.navigate(['resetpwd']);\r\n }\r\n else {\r\n this.error = 'Invalid username or password';\r\n }\r\n },\r\n error => {\r\n this.error = error;\r\n });\r\n }\r\n else {\r\n this.error = 'Invalid Email';\r\n this.loading = false;\r\n }\r\n },\r\n error => {\r\n this.error = error;\r\n this.loading = false;\r\n });\r\n }\r\n onSignIn() {\r\n this.authenticationService.logout();\r\n this.router.navigate(['']);\r\n }\r\n}\r\n","
\r\n\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\"Responsive\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n
\r\n
\r\n\t
\r\n\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t

\r\n\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t

\r\n\t\t\t\t\t\t{{\"recoverpwd.recoverPswdForm.headerLbl\" | transloco}}\r\n\t\t\t\t\t

\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
{{\"recoverpwd.recoverPswdForm.emailAddressCtrl.requiredError\" | transloco}}
\r\n\t\t\t\t\t\t\t\t\t
{{\"recoverpwd.recoverPswdForm.emailAddressCtrl.formatError\" | transloco}}
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n
\r\n","import { Component, OnChanges, Input, SimpleChange } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'password-strength-bar',\r\n styles: [`\r\n ul#strengthBar {\r\n display:inline;\r\n list-style:none;\r\n margin:0;\r\n margin-left:2px;\r\n padding:0;\r\n vertical-align:2px;\r\n }\r\n .pointwidth li{\r\n max-width:120px !important;\r\n }\r\n .point:last {\r\n margin:0 !important;\r\n }\r\n .point {\r\n background:#DDD;\r\n border-radius:2px;\r\n display:inline-block;\r\n height:5px;\r\n margin-right:1px;\r\n width:9%;\r\n \r\n }`],\r\n template: `\r\n
\r\n \r\n{{barLabel}}\r\n
    \r\n
  • \r\n
\r\n
\r\n`\r\n})\r\nexport class PasswordStrengthBar implements OnChanges {\r\n @Input() passwordToCheck: string;\r\n @Input() barLabel: string;\r\n @Input() barHelp: string;\r\n bar0: string;\r\n bar1: string;\r\n bar2: string;\r\n bar3: string;\r\n bar4: string;\r\n\r\n private colors = ['#a94442', '#F90', '#a94442', '#9F0', '#42A948'];\r\n\r\n private static measureStrength(p: any) {\r\n var _force = 0;\r\n var _regex = /^(?=.*[A-Z])(?=.*\\d)(?=.*[$@$!%*#?&])[A-Za-z\\d$@$!%*#?&]{8,}$/g; // \"\r\n\r\n var _lowerLetters = /[a-z]+/.test(p);\r\n var _upperLetters = /[A-Z]+/.test(p);\r\n var _numbers = /[0-9]+/.test(p);\r\n var _symbols = _regex.test(p);\r\n\r\n var _flags = [_lowerLetters, _upperLetters, _numbers, _symbols];\r\n\r\n var _passedMatches = 0;\r\n for (let _flag of _flags) {\r\n _passedMatches += _flag === true ? 1 : 0;\r\n }\r\n\r\n _force += 2 * p.length + ((p.length >= 10) ? 1 : 0);\r\n _force += _passedMatches * 10;\r\n\r\n // penality (short password)\r\n _force = (p.length <= 6) ? Math.min(_force, 10) : _force;\r\n\r\n // penality (poor variety of characters)\r\n _force = (_passedMatches === 1) ? Math.min(_force, 10) : _force;\r\n _force = (_passedMatches === 2) ? Math.min(_force, 20) : _force;\r\n _force = (_passedMatches === 3) ? Math.min(_force, 40) : _force;\r\n\r\n return _force;\r\n\r\n }\r\n private getColor(s:number) {\r\n var idx = 0;\r\n if (s <= 10) {\r\n idx = 0;\r\n }\r\n else if (s <= 20) {\r\n idx = 1;\r\n }\r\n else if (s <= 30) {\r\n idx = 2;\r\n }\r\n else if (s <= 40) {\r\n idx = 3;\r\n }\r\n else {\r\n idx = 4;\r\n }\r\n return {\r\n idx: idx + 1,\r\n col: this.colors[idx]\r\n };\r\n }\r\n\r\n ngOnChanges(changes: { [propName: string]: SimpleChange }): void {\r\n var password = changes['passwordToCheck'].currentValue;\r\n this.setBarColors(5, '#DDD');\r\n if (password) {\r\n let c = this.getColor(PasswordStrengthBar.measureStrength(password));\r\n this.setBarColors(c.idx, c.col);\r\n }\r\n }\r\n private setBarColors(count:number, col:string) {\r\n for (let _n = 0; _n < count; _n++) {\r\n if (_n == 0)\r\n this.bar0 = col;\r\n else if (_n == 1)\r\n this.bar1 = col;\r\n else if (_n == 2)\r\n this.bar2 = col;\r\n else if (_n == 3)\r\n this.bar3 = col;\r\n else if (_n == 4)\r\n this.bar4 = col;\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, EventEmitter, Output } from '@angular/core';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Constants } from \"../../shared/constant\";\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { AuthService } from '../../service/auth.service';\r\nimport { ChangePwd } from '../../entity/changepwd';\r\nimport { ValueCompare } from '../../directive/valuecompare.validator';\r\nimport { SessionService } from '../../service/session.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\ntype LanguageKey = 'en' | 'es';\r\n\r\n@Component({\r\n selector: 'app-resetpwd',\r\n templateUrl: './resetpwd.component.html',\r\n styleUrls: ['./resetpwd.component.scss'],\r\n providers: [provideTranslocoScope('resetpwd')]\r\n})\r\nexport class ResetpwdComponent implements OnInit {\r\n @Output() getLoggedInInfo: EventEmitter = new EventEmitter();\r\n resetpwdForm: FormGroup;\r\n public loading = false;\r\n public submitted = false;\r\n returnUrl: string;\r\n error: string;\r\n OTP: any;\r\n otp: any;\r\n newPassword: any;\r\n confirmPwd: any;\r\n barLabel: string;\r\n barHelp: string;\r\n eyeToggle: boolean = false;\r\n passOneToggle: boolean = false;\r\n passTowToggle: boolean = false;\r\n public isSamePass: boolean = true;\r\n\r\n languageId: LanguageKey;\r\n translatedTexts: any = {}; \r\n\r\n translations: Record = {\r\n en: {\r\n showPassword: \"Show Password\",\r\n hidePassword: \"Hide Password\"\r\n },\r\n es: {\r\n showPassword: \"Mostrar Contraseña\", \r\n hidePassword: \"Ocultar Contraseña\"\r\n }\r\n };\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private authenticationService: AuthService,\r\n private sharedService: SharedService,\r\n private sessionService: SessionService,\r\n private translocoService: CustomTranslocoService\r\n ) {\r\n // redirect to home if already logged in\r\n //if (this.authenticationService.currentUserValue) {\r\n // //this.router.navigate(['/']);\r\n //}\r\n }\r\n\r\n ngOnInit() {\r\n this.languageId = this.translocoService.getCurrentLanguage() as LanguageKey;\r\n this.translatedTexts = {\r\n showPassword: this.translations[this.languageId].showPassword,\r\n hidePassword: this.translations[this.languageId].hidePassword\r\n };\r\n \r\n this.sharedService.getLoggedInInfo.emit(false);\r\n this.barLabel = \"Password strength:\";\r\n this.barHelp = \"Password should have at least 8 characters and must include one uppercase letter, one lowercase letter, one number and one special character.\";\r\n this.resetpwdForm = this.formBuilder.group({\r\n OTP: ['', Validators.required],\r\n password: ['', Validators.required],\r\n confirmpassword: ['', Validators.required]\r\n });\r\n\r\n // get return url from route parameters or default to '/'\r\n //this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';\r\n }\r\n\r\n // convenience getter for easy access to form fields\r\n get f() { return this.resetpwdForm.controls; }\r\n\r\n onLogOut() {\r\n this.authenticationService.logoutForReset()\r\n .subscribe(() => {\r\n this.sessionService.setSessionFormData('currentUser', \"\");\r\n this.router.navigate(['']);\r\n this.submitted = false;\r\n },\r\n error => {\r\n console.log(error);\r\n });\r\n }\r\n checkEmailSame() {\r\n if (this.resetpwdForm.value.password != this.resetpwdForm.value.confirmpassword) {\r\n this.isSamePass = false;\r\n return;\r\n }\r\n else {\r\n this.isSamePass = true;\r\n }\r\n }\r\n onSubmit() {\r\n this.submitted = true;\r\n \r\n // stop here if form is invalid\r\n if (this.resetpwdForm.invalid || (!this.isSamePass)) {\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n let _changePwd: ChangePwd = new ChangePwd();\r\n _changePwd.otp = this.resetpwdForm.value.OTP;\r\n _changePwd.newPwd = this.resetpwdForm.value.password;\r\n _changePwd.userName = this.authenticationService.currentUserValue.UserName;\r\n _changePwd.userID = this.authenticationService.currentUserValue.UserID;\r\n let resetpwdLanguage = \"resetpwd.resetPswdForm\";\r\n\r\n if (_changePwd.otp != null) {\r\n this.authenticationService.validateOTP(_changePwd.otp, resetpwdLanguage)\r\n .subscribe((data) => {\r\n if (data.IsSuccess) {\r\n this.authenticationService.resetPassword(_changePwd, resetpwdLanguage)\r\n .subscribe((data) => {\r\n if (data.IsSuccess) {\r\n this.onLogOut();\r\n }\r\n else {\r\n //this.error = data.Message;\r\n this.loading = false;\r\n }\r\n },\r\n error => {\r\n //this.error = error;\r\n this.loading = false;\r\n });\r\n // this.onLogOut();\r\n }\r\n else {\r\n //this.error = data.Message;\r\n this.loading = false;\r\n }\r\n },\r\n error => {\r\n //this.error = error;\r\n this.loading = false;\r\n });\r\n\r\n }\r\n }\r\n onSignIn() {\r\n this.authenticationService.logout();\r\n this.router.navigate(['']);\r\n }\r\n eyeclickToggle(eyeToggle: boolean) {\r\n let progressedElement = document.getElementById('eyeToggle');\r\n if (eyeToggle) {\r\n if (progressedElement !== null) {\r\n progressedElement.style.backgroundImage = \"url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTcuMS4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDM3OS41NjEgMzc5LjU2MSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzc5LjU2MSAzNzkuNTYxOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CjxwYXRoIGQ9Ik0zMjAuODM4LDEyMS45MjljLTcuMzIxLTUuNjc3LTE1LjYwNC0xMS42MS0yNC42NjQtMTcuMzYyTDM0MS40OTgsNTguNmM2LjIwNC02LjI5Miw2LjEzMy0xNi40MjMtMC4xNi0yMi42MjcgIGMtNi4yOTItNi4yMDQtMTYuNDIyLTYuMTM0LTIyLjYyNiwwLjE1OUwyNjcuMTIsODguNDU2Yy0yMy4yNTMtMTEuMDE4LTQ5LjU4Ny0xOC45NjMtNzcuMTkyLTE4Ljk2M2wtMC45OTEsMC4wMDMgIGMtNTIuMjYyLDAuMzY5LTk5Ljk4MSwyOS45MzItMTMwLjgxLDU0LjY2N0MyNy42MzIsMTQ4LjYzMS0wLjA3MywxODAuMzIsMCwxOTAuNjQ5YzAuMDgyLDExLjcwMiwyNi45ODEsNDIuMjM0LDU4LjczNyw2Ni42NzEgIGM2LjY0Niw1LjExNCwxNS4wNzMsMTEuMTQ1LDI0Ljg3NSwxNy4yNDlMMzcuODcsMzIwLjk2MmMtNi4yMDQsNi4yOTItNi4xMzMsMTYuNDIzLDAuMTYsMjIuNjI3ICBjMy4xMTcsMy4wNzQsNy4xNzUsNC42MDcsMTEuMjMzLDQuNjA3YzQuMTMyLDAsOC4yNjMtMS41OTEsMTEuMzk0LTQuNzY2bDUyLjIxLTUyLjk1MWMyMi42NjYsMTAuNTM1LDQ5LjEwMSwxOC42NTEsNzYuNzUyLDE4LjY1MSAgbDEuMDA3LTAuMDAzYzU1LjUyNS0wLjM5MiwxMDUuNzc2LTMzLjU2NiwxMzAuNzg4LTUzLjMwN2MzMS42MDMtMjQuOTQyLDU4LjIzMS01Ni4wMTEsNTguMTQ4LTY3Ljg0NSAgQzM3OS40ODQsMTc2Ljk4OCwzNTIuMDQzLDE0Ni4xMjYsMzIwLjgzOCwxMjEuOTI5eiBNMTExLjMxNCwxODkuODY0Yy0wLjMwNS00My4zMzYsMzQuNTc4LTc4LjcxNCw3Ny45MTMtNzkuMDE5ICBjMTUuOTc1LTAuMTEzLDMwLjg2LDQuNTY5LDQzLjMxNCwxMi42ODFsLTEwNy45MzgsMTA5LjQ3QzExNi4zMTgsMjIwLjY1NywxMTEuNDI3LDIwNS44MzksMTExLjMxNCwxODkuODY0eiBNMTkwLjMzNCwyNjcuNzc3ICBjLTE1Ljc4NCwwLjExMS0zMC41LTQuNDYyLTQyLjg2My0xMi4zOTZsMTA3Ljc3Ny0xMDkuMzA4YzguMTA3LDEyLjI1LDEyLjg4NywyNi45LDEyLjk5OSw0Mi42ODQgIEMyNjguNTUyLDIzMi4wOTQsMjMzLjY2OSwyNjcuNDcyLDE5MC4zMzQsMjY3Ljc3N3oiIGZpbGw9IiMwMDAwMDAiLz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==)\";\r\n }\r\n }\r\n else if (!eyeToggle) {\r\n if (progressedElement !== null) {\r\n progressedElement.style.backgroundImage = \"url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ4OC44NSA0ODguODUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ4OC44NSA0ODguODU7IiB4bWw6c3BhY2U9InByZXNlcnZlIiB3aWR0aD0iMTZweCIgaGVpZ2h0PSIxNnB4Ij4KPGc+Cgk8cGF0aCBkPSJNMjQ0LjQyNSw5OC43MjVjLTkzLjQsMC0xNzguMSw1MS4xLTI0MC42LDEzNC4xYy01LjEsNi44LTUuMSwxNi4zLDAsMjMuMWM2Mi41LDgzLjEsMTQ3LjIsMTM0LjIsMjQwLjYsMTM0LjIgICBzMTc4LjEtNTEuMSwyNDAuNi0xMzQuMWM1LjEtNi44LDUuMS0xNi4zLDAtMjMuMUM0MjIuNTI1LDE0OS44MjUsMzM3LjgyNSw5OC43MjUsMjQ0LjQyNSw5OC43MjV6IE0yNTEuMTI1LDM0Ny4wMjUgICBjLTYyLDMuOS0xMTMuMi00Ny4yLTEwOS4zLTEwOS4zYzMuMi01MS4yLDQ0LjctOTIuNyw5NS45LTk1LjljNjItMy45LDExMy4yLDQ3LjIsMTA5LjMsMTA5LjMgICBDMzQzLjcyNSwzMDIuMjI1LDMwMi4yMjUsMzQzLjcyNSwyNTEuMTI1LDM0Ny4wMjV6IE0yNDguMDI1LDI5OS42MjVjLTMzLjQsMi4xLTYxLTI1LjQtNTguOC01OC44YzEuNy0yNy42LDI0LjEtNDkuOSw1MS43LTUxLjcgICBjMzMuNC0yLjEsNjEsMjUuNCw1OC44LDU4LjhDMjk3LjkyNSwyNzUuNjI1LDI3NS41MjUsMjk3LjkyNSwyNDguMDI1LDI5OS42MjV6IiBmaWxsPSIjMDAwMDAwIi8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==)\";\r\n }\r\n }\r\n this.eyeToggle = !this.eyeToggle;\r\n }\r\n passwordOneToggle(passOne: boolean) {\r\n let progressedElement = document.getElementById('passOneToggle');\r\n if (passOne) {\r\n if (progressedElement !== null) {\r\n progressedElement.style.backgroundImage = \"url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTcuMS4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDM3OS41NjEgMzc5LjU2MSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzc5LjU2MSAzNzkuNTYxOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CjxwYXRoIGQ9Ik0zMjAuODM4LDEyMS45MjljLTcuMzIxLTUuNjc3LTE1LjYwNC0xMS42MS0yNC42NjQtMTcuMzYyTDM0MS40OTgsNTguNmM2LjIwNC02LjI5Miw2LjEzMy0xNi40MjMtMC4xNi0yMi42MjcgIGMtNi4yOTItNi4yMDQtMTYuNDIyLTYuMTM0LTIyLjYyNiwwLjE1OUwyNjcuMTIsODguNDU2Yy0yMy4yNTMtMTEuMDE4LTQ5LjU4Ny0xOC45NjMtNzcuMTkyLTE4Ljk2M2wtMC45OTEsMC4wMDMgIGMtNTIuMjYyLDAuMzY5LTk5Ljk4MSwyOS45MzItMTMwLjgxLDU0LjY2N0MyNy42MzIsMTQ4LjYzMS0wLjA3MywxODAuMzIsMCwxOTAuNjQ5YzAuMDgyLDExLjcwMiwyNi45ODEsNDIuMjM0LDU4LjczNyw2Ni42NzEgIGM2LjY0Niw1LjExNCwxNS4wNzMsMTEuMTQ1LDI0Ljg3NSwxNy4yNDlMMzcuODcsMzIwLjk2MmMtNi4yMDQsNi4yOTItNi4xMzMsMTYuNDIzLDAuMTYsMjIuNjI3ICBjMy4xMTcsMy4wNzQsNy4xNzUsNC42MDcsMTEuMjMzLDQuNjA3YzQuMTMyLDAsOC4yNjMtMS41OTEsMTEuMzk0LTQuNzY2bDUyLjIxLTUyLjk1MWMyMi42NjYsMTAuNTM1LDQ5LjEwMSwxOC42NTEsNzYuNzUyLDE4LjY1MSAgbDEuMDA3LTAuMDAzYzU1LjUyNS0wLjM5MiwxMDUuNzc2LTMzLjU2NiwxMzAuNzg4LTUzLjMwN2MzMS42MDMtMjQuOTQyLDU4LjIzMS01Ni4wMTEsNTguMTQ4LTY3Ljg0NSAgQzM3OS40ODQsMTc2Ljk4OCwzNTIuMDQzLDE0Ni4xMjYsMzIwLjgzOCwxMjEuOTI5eiBNMTExLjMxNCwxODkuODY0Yy0wLjMwNS00My4zMzYsMzQuNTc4LTc4LjcxNCw3Ny45MTMtNzkuMDE5ICBjMTUuOTc1LTAuMTEzLDMwLjg2LDQuNTY5LDQzLjMxNCwxMi42ODFsLTEwNy45MzgsMTA5LjQ3QzExNi4zMTgsMjIwLjY1NywxMTEuNDI3LDIwNS44MzksMTExLjMxNCwxODkuODY0eiBNMTkwLjMzNCwyNjcuNzc3ICBjLTE1Ljc4NCwwLjExMS0zMC41LTQuNDYyLTQyLjg2My0xMi4zOTZsMTA3Ljc3Ny0xMDkuMzA4YzguMTA3LDEyLjI1LDEyLjg4NywyNi45LDEyLjk5OSw0Mi42ODQgIEMyNjguNTUyLDIzMi4wOTQsMjMzLjY2OSwyNjcuNDcyLDE5MC4zMzQsMjY3Ljc3N3oiIGZpbGw9IiMwMDAwMDAiLz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==)\";\r\n }\r\n }\r\n else {\r\n if (progressedElement !== null) {\r\n progressedElement.style.backgroundImage = \"url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ4OC44NSA0ODguODUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ4OC44NSA0ODguODU7IiB4bWw6c3BhY2U9InByZXNlcnZlIiB3aWR0aD0iMTZweCIgaGVpZ2h0PSIxNnB4Ij4KPGc+Cgk8cGF0aCBkPSJNMjQ0LjQyNSw5OC43MjVjLTkzLjQsMC0xNzguMSw1MS4xLTI0MC42LDEzNC4xYy01LjEsNi44LTUuMSwxNi4zLDAsMjMuMWM2Mi41LDgzLjEsMTQ3LjIsMTM0LjIsMjQwLjYsMTM0LjIgICBzMTc4LjEtNTEuMSwyNDAuNi0xMzQuMWM1LjEtNi44LDUuMS0xNi4zLDAtMjMuMUM0MjIuNTI1LDE0OS44MjUsMzM3LjgyNSw5OC43MjUsMjQ0LjQyNSw5OC43MjV6IE0yNTEuMTI1LDM0Ny4wMjUgICBjLTYyLDMuOS0xMTMuMi00Ny4yLTEwOS4zLTEwOS4zYzMuMi01MS4yLDQ0LjctOTIuNyw5NS45LTk1LjljNjItMy45LDExMy4yLDQ3LjIsMTA5LjMsMTA5LjMgICBDMzQzLjcyNSwzMDIuMjI1LDMwMi4yMjUsMzQzLjcyNSwyNTEuMTI1LDM0Ny4wMjV6IE0yNDguMDI1LDI5OS42MjVjLTMzLjQsMi4xLTYxLTI1LjQtNTguOC01OC44YzEuNy0yNy42LDI0LjEtNDkuOSw1MS43LTUxLjcgICBjMzMuNC0yLjEsNjEsMjUuNCw1OC44LDU4LjhDMjk3LjkyNSwyNzUuNjI1LDI3NS41MjUsMjk3LjkyNSwyNDguMDI1LDI5OS42MjV6IiBmaWxsPSIjMDAwMDAwIi8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==)\";\r\n }\r\n }\r\n this.passOneToggle = !this.passOneToggle;\r\n }\r\n passwordTowToggle(pass2: boolean) {\r\n let progressedElement = document.getElementById('passTowToggle');\r\n if (pass2) {\r\n if (progressedElement !== null) {\r\n progressedElement.style.backgroundImage = \"url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTcuMS4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDM3OS41NjEgMzc5LjU2MSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzc5LjU2MSAzNzkuNTYxOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCI+CjxwYXRoIGQ9Ik0zMjAuODM4LDEyMS45MjljLTcuMzIxLTUuNjc3LTE1LjYwNC0xMS42MS0yNC42NjQtMTcuMzYyTDM0MS40OTgsNTguNmM2LjIwNC02LjI5Miw2LjEzMy0xNi40MjMtMC4xNi0yMi42MjcgIGMtNi4yOTItNi4yMDQtMTYuNDIyLTYuMTM0LTIyLjYyNiwwLjE1OUwyNjcuMTIsODguNDU2Yy0yMy4yNTMtMTEuMDE4LTQ5LjU4Ny0xOC45NjMtNzcuMTkyLTE4Ljk2M2wtMC45OTEsMC4wMDMgIGMtNTIuMjYyLDAuMzY5LTk5Ljk4MSwyOS45MzItMTMwLjgxLDU0LjY2N0MyNy42MzIsMTQ4LjYzMS0wLjA3MywxODAuMzIsMCwxOTAuNjQ5YzAuMDgyLDExLjcwMiwyNi45ODEsNDIuMjM0LDU4LjczNyw2Ni42NzEgIGM2LjY0Niw1LjExNCwxNS4wNzMsMTEuMTQ1LDI0Ljg3NSwxNy4yNDlMMzcuODcsMzIwLjk2MmMtNi4yMDQsNi4yOTItNi4xMzMsMTYuNDIzLDAuMTYsMjIuNjI3ICBjMy4xMTcsMy4wNzQsNy4xNzUsNC42MDcsMTEuMjMzLDQuNjA3YzQuMTMyLDAsOC4yNjMtMS41OTEsMTEuMzk0LTQuNzY2bDUyLjIxLTUyLjk1MWMyMi42NjYsMTAuNTM1LDQ5LjEwMSwxOC42NTEsNzYuNzUyLDE4LjY1MSAgbDEuMDA3LTAuMDAzYzU1LjUyNS0wLjM5MiwxMDUuNzc2LTMzLjU2NiwxMzAuNzg4LTUzLjMwN2MzMS42MDMtMjQuOTQyLDU4LjIzMS01Ni4wMTEsNTguMTQ4LTY3Ljg0NSAgQzM3OS40ODQsMTc2Ljk4OCwzNTIuMDQzLDE0Ni4xMjYsMzIwLjgzOCwxMjEuOTI5eiBNMTExLjMxNCwxODkuODY0Yy0wLjMwNS00My4zMzYsMzQuNTc4LTc4LjcxNCw3Ny45MTMtNzkuMDE5ICBjMTUuOTc1LTAuMTEzLDMwLjg2LDQuNTY5LDQzLjMxNCwxMi42ODFsLTEwNy45MzgsMTA5LjQ3QzExNi4zMTgsMjIwLjY1NywxMTEuNDI3LDIwNS44MzksMTExLjMxNCwxODkuODY0eiBNMTkwLjMzNCwyNjcuNzc3ICBjLTE1Ljc4NCwwLjExMS0zMC41LTQuNDYyLTQyLjg2My0xMi4zOTZsMTA3Ljc3Ny0xMDkuMzA4YzguMTA3LDEyLjI1LDEyLjg4NywyNi45LDEyLjk5OSw0Mi42ODQgIEMyNjguNTUyLDIzMi4wOTQsMjMzLjY2OSwyNjcuNDcyLDE5MC4zMzQsMjY3Ljc3N3oiIGZpbGw9IiMwMDAwMDAiLz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==)\";\r\n }\r\n }\r\n else {\r\n if (progressedElement !== null) {\r\n progressedElement.style.backgroundImage = \"url(data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDQ4OC44NSA0ODguODUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDQ4OC44NSA0ODguODU7IiB4bWw6c3BhY2U9InByZXNlcnZlIiB3aWR0aD0iMTZweCIgaGVpZ2h0PSIxNnB4Ij4KPGc+Cgk8cGF0aCBkPSJNMjQ0LjQyNSw5OC43MjVjLTkzLjQsMC0xNzguMSw1MS4xLTI0MC42LDEzNC4xYy01LjEsNi44LTUuMSwxNi4zLDAsMjMuMWM2Mi41LDgzLjEsMTQ3LjIsMTM0LjIsMjQwLjYsMTM0LjIgICBzMTc4LjEtNTEuMSwyNDAuNi0xMzQuMWM1LjEtNi44LDUuMS0xNi4zLDAtMjMuMUM0MjIuNTI1LDE0OS44MjUsMzM3LjgyNSw5OC43MjUsMjQ0LjQyNSw5OC43MjV6IE0yNTEuMTI1LDM0Ny4wMjUgICBjLTYyLDMuOS0xMTMuMi00Ny4yLTEwOS4zLTEwOS4zYzMuMi01MS4yLDQ0LjctOTIuNyw5NS45LTk1LjljNjItMy45LDExMy4yLDQ3LjIsMTA5LjMsMTA5LjMgICBDMzQzLjcyNSwzMDIuMjI1LDMwMi4yMjUsMzQzLjcyNSwyNTEuMTI1LDM0Ny4wMjV6IE0yNDguMDI1LDI5OS42MjVjLTMzLjQsMi4xLTYxLTI1LjQtNTguOC01OC44YzEuNy0yNy42LDI0LjEtNDkuOSw1MS43LTUxLjcgICBjMzMuNC0yLjEsNjEsMjUuNCw1OC44LDU4LjhDMjk3LjkyNSwyNzUuNjI1LDI3NS41MjUsMjk3LjkyNSwyNDguMDI1LDI5OS42MjV6IiBmaWxsPSIjMDAwMDAwIi8+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPGc+CjwvZz4KPC9zdmc+Cg==)\";\r\n }\r\n }\r\n this.passTowToggle = !this.passTowToggle;\r\n }\r\n ngAfterViewInit() {\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","\r\n
\r\n\t
\r\n\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t

\r\n\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t

\r\n\t\t\t\t\t\t{{\"resetpwd.resetPswdForm.headerLbl\" | transloco}}\r\n\t\t\t\t\t

\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
{{\"resetpwd.resetPswdForm.otpInputCtrl.requiredError\" | transloco}}
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t:;()+=.,{}|-])[A-Za-z\\d$@$!%*#?^&~_<>:;()+=.,{}|-]{8,}$\"\r\n\t\t\t\t\t\t\t\t\t data-placement=\"bottom\"\r\n\t\t\t\t\t\t\t\t\t reverse=\"true\"\r\n\t\t\t\t\t\t\t\t\t [(ngModel)]=\"newPassword\"\r\n\t\t\t\t\t\t\t\t\t matTooltip=\"Tooltip!\"\r\n\t\t\t\t\t\t\t\t\t (ngModelChange)=\"checkEmailSame()\"\r\n\t\t\t\t\t\t\t\t\t [ngClass]=\"{ 'is-invalid': submitted && f['password'].errors }\"\r\n\t\t\t\t\t\t\t\t\t placeholder=\"{{'resetpwd.resetPswdForm.newPswdCtrl.placeholder' | transloco}}\" required />\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
{{'resetpwd.resetPswdForm.newPswdCtrl.requiredError' | transloco}}
\r\n\t\t\t\t\t\t\t\t\t
{{'resetpwd.resetPswdForm.newPswdCtrl.pswdMinLengthError' | transloco}}
\r\n\t\t\t\t\t\t\t\t\t
{{'resetpwd.resetPswdForm.newPswdCtrl.pswdMaxLengthError' | transloco}}
\r\n\t\t\t\t\t\t\t\t\t
{{'resetpwd.resetPswdForm.newPswdCtrl.pswdPatternError' | transloco}}
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t:;()+=.,{}|-])[A-Za-z\\d$@$!%*#?^&~_<>:;()+=.,{}|-]{8,}$\"\r\n\t\t\t\t\t\t\t\t\t reverse=\"false\"\r\n\t\t\t\t\t\t\t\t\t [ngClass]=\"{ 'is-invalid': (submitted && f['confirmpassword'].errors?.['required']) || (!isSamePass && !f['confirmpassword'].errors?.['required']) }\"\r\n\t\t\t\t\t\t\t\t\t placeholder=\"{{'resetpwd.resetPswdForm.confirmPswdCtrl.placeholder' | transloco}}\" required />\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
{{'resetpwd.resetPswdForm.confirmPswdCtrl.requiredError' | transloco}}
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
{{'resetpwd.resetPswdForm.confirmPswdCtrl.matchPswdError' | transloco}}
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n
\r\n","export class ApiResponse {\r\n public Result: any;\r\n public IsSuccess: boolean;\r\n public Message: string;\r\n public Token?: string;\r\n public UserName?: string;\r\n public Error?: any;\r\n}\r\n","import { Component, EventEmitter, HostListener, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { MessageService } from 'primeng/api';\r\nimport { SessionService } from \"src/app/service/session.service\";\r\nimport { SharedService } from '../service/shared.service';\r\nimport { AuthService } from '../service/auth.service';\r\nimport { ApplicantFormData } from '../applicant/models/applicant-form-data';\r\nimport { FormDataService } from 'src/app/applicant/service/form-data.service';\r\nimport { ApiResponse } from '../applicant/models/api-response';\r\nimport { Constants } from '../shared/constant';\r\nimport { ToastrService } from 'ngx-toastr';\r\n@Component({\r\n selector: 'redirect-page',\r\n templateUrl: 'redirect.component.html'\r\n})\r\nexport class RedirectComponent implements OnInit {\r\n public loginForm: FormGroup;\r\n public emailID: string = null;\r\n public password: string = null;\r\n public isMobileDevice: boolean = false;\r\n public loading: boolean = false;\r\n public activIndex: string;\r\n public submitted = false;\r\n public returnUrl: string;\r\n public error: string;\r\n public formData: ApplicantFormData;\r\n private tokeyKey = \"currentUser\";\r\n private id: string;\r\n private name: string;\r\n @Output() selectedMenu: EventEmitter = new EventEmitter();\r\n public selectedMenuItem: string = '';\r\n constructor(\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private modalService: NgbModal,\r\n private messageService: MessageService,\r\n private authService : AuthService,\r\n private formDataService: FormDataService,\r\n private sessionService: SessionService,\r\n private toastrService: ToastrService,\r\n private sharedService: SharedService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.route.queryParams\r\n .subscribe(params => {\r\n this.id = params['id'];\r\n this.name = params['name'];\r\n this.validateRequest();\r\n }\r\n );\r\n }\r\n\r\n validateRequest() {\r\n if (this.id != \"\" || this.id != undefined) {\r\n var apiresponse = new ApiResponse();\r\n apiresponse.Result = null;\r\n apiresponse.IsSuccess = true;\r\n apiresponse.Message = \"\";\r\n apiresponse.Error = null;\r\n apiresponse.Token = this.id;\r\n apiresponse.UserName = this.name;\r\n this.sessionService.setSessionFormData(this.tokeyKey, JSON.stringify(apiresponse));\r\n this.authService.validateRequest().subscribe((response => {\r\n if (response.IsSuccess) {\r\n apiresponse = new ApiResponse();\r\n apiresponse.Result = null;\r\n apiresponse.IsSuccess = true;\r\n apiresponse.Message = \"\";\r\n apiresponse.Error = null;\r\n apiresponse.Token = response.Token;\r\n apiresponse.UserName = this.name;\r\n this.sessionService.setSessionFormData(this.tokeyKey, JSON.stringify(apiresponse));\r\n this.sessionService.setSessionFormData(\"Authenticate\", true);\r\n this.sessionService.setSessionFormData(\"IsFormDataSet\", true);\r\n this.sharedService.setSelectedMenuItem(\"Existing Applications\");\r\n this.selectedMenuItem = \"Existing Applications\";\r\n this.formData = new ApplicantFormData();\r\n this.formData.IsLoggedIn = true;\r\n this.formDataService.setFormData(this.formData);\r\n this.sharedService.getLoggedInInfo.emit(true);\r\n this.selectedMenu.emit(\"Existing Applications\");\r\n this.router.navigate(['existingapplications']);\r\n }\r\n else {\r\n this.redirectToLogin();\r\n }\r\n }), (error => {\r\n this.redirectToLogin();\r\n }));\r\n }\r\n else\r\n this.redirectToLogin();\r\n }\r\n\r\n redirectToLogin() {\r\n this.toastrService.error(\"Invalid Token\");\r\n window.location.href = Constants.WEB_API_URL_ADMIN_LOGIN + '/login';\r\n }\r\n}\r\n\r\n","\r\n\r\n\r\n \r\n \r\n\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { isNullOrUndefined } from 'is-what';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n CanActivate,\r\n Router,\r\n RouterStateSnapshot,\r\n UrlTree\r\n} from \"@angular/router\";\r\nimport { AuthService } from \"./auth.service\";\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n constructor(\r\n private authService: AuthService,\r\n private router: Router) { }\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): boolean | Promise {\r\n if (!isNullOrUndefined(this.authService.currentUserValue)) {\r\n if (!isNullOrUndefined(this.authService.currentUserValue.UserName)) {\r\n return true;\r\n }\r\n }\r\n this.router.navigate(['']);\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { isNullOrUndefined } from 'is-what';\r\nimport {\r\n CanActivate,\r\n} from \"@angular/router\";\r\nimport { environment } from \"../../environments/environment\";\r\nimport { Constants } from \"../shared/constant\";\r\n\r\n@Injectable()\r\nexport class AuthGuardMaintenance implements CanActivate {\r\n constructor() { }\r\n canActivate(): boolean | Promise {\r\n if (!isNullOrUndefined(environment.inMaintenance)) {\r\n if (environment.inMaintenance) {\r\n window.location.href = Constants.Maintenance_PAGE_URL;\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve, ActivatedRouteSnapshot, Router } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { DetectMerchantRoutingService } from '../../service/detect-merchant-routing.service';\r\nimport { MerchantService } from '../../simplified.UI/services/merchant.service';\r\nimport { FormDataService } from 'src/app/applicant/service/form-data.service';\r\nimport { ApplicationModal } from '../../simplified.UI/shared/Enum/ApplicationModal';\r\nimport { SessionService } from '../../simplified.UI/services/session.service';\r\nimport { SharedService } from '../../simplified.UI/services/shared.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MerchantRoutingResolver implements Resolve {\r\n private sourceTypeId: number;\r\n private leadId: number;\r\n\r\n constructor(private router: Router,\r\n private detectMerchantRoutingService: DetectMerchantRoutingService,\r\n private sessionService: SessionService,\r\n private merchantService: MerchantService,\r\n private formDataService: FormDataService,\r\n private sharedService: SharedService) { }\r\n\r\n resolve(route: ActivatedRouteSnapshot): Observable {\r\n const identifier = +route.queryParams['identifier'];\r\n this.sourceTypeId = +route.queryParams['source'];\r\n this.leadId = +route.params['leadId'];\r\n\r\n // If identifier is null or 0, just proceed with the current component\r\n if (identifier === null || identifier === 0) {\r\n return of(true);\r\n }\r\n return new Observable(observer => {\r\n this.merchantService.getOnlineApplicationModaByMerchantId(identifier).subscribe({\r\n next: (data) => {\r\n if (typeof window !== 'undefined') {\r\n if (data['Status'] === 200) {\r\n const result = data['Result'];\r\n // If the condition is true, navigate to simplifiedui/Bussiness application\r\n switch (result)\r\n {\r\n case ApplicationModal.Simplified_Application:\r\n case ApplicationModal.BusinessRental_Application:\r\n this.sessionService.setSessionApplicationSource(\"sourceId\", identifier);\r\n this.sessionService.setApplicationSource(this.sourceTypeId, identifier, this.leadId);\r\n this.sessionService.setSessionFormData(\"OnlineApplicationModalID\", result);\r\n this.sharedService.showSimplifiedApplicationLayout();\r\n this.router.navigate(['simplifiedui']).then(() => {\r\n observer.next(false); // Stop resolver to prevent further action\r\n observer.complete();\r\n });\r\n break;\r\n\r\n default:\r\n // If the condition is false, continue loading the current component\r\n this.sessionService.setSessionFormData(\"OnlineApplicationModalID\", result);\r\n this.sharedService.showOnlineApplicationLayout();\r\n observer.next(true); // Allow the component to load\r\n observer.complete();\r\n break;\r\n }\r\n \r\n }\r\n }\r\n },\r\n error: (err) => {\r\n console.error('Error occurred:', err);\r\n this.sessionService.setFlagForSiplifiedUrl(\"simplified\", false);\r\n observer.next(true); // Allow the component to load\r\n observer.complete();\r\n }\r\n });\r\n });\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { CcLenderConsentAffArbitrationComponent } from './applicant/cc-lender-consent/cc-lender-consent-aff/cc-lender-consent-aff-arbitration/cc-lender-consent-aff-arbitration.component';\r\nimport { CcLenderConsentAffReceiveCallsComponent } from './applicant/cc-lender-consent/cc-lender-consent-aff/cc-lender-consent-aff-receive-calls/cc-lender-consent-aff-receive-calls.component';\r\nimport { CcLenderConsentAffTermsAndConditionsComponent } from './applicant/cc-lender-consent/cc-lender-consent-aff/cc-lender-consent-aff-terms-and-conditions/cc-lender-consent-aff-terms-and-conditions.component';\r\nimport { CcLenderConsentCfComponent } from './applicant/cc-lender-consent/cc-lender-consent-cf/cc-lender-consent-cf.component';\r\nimport { CcLenderConsentDdTermsAndConditionsComponent } from './applicant/cc-lender-consent/cc-lender-consent-dd/cc-lender-consent-dd-terms-and-conditions/cc-lender-consent-dd-terms-and-conditions.component';\r\nimport { CcLenderConsentGwConsentToTextComponent } from './applicant/cc-lender-consent/cc-lender-consent-gw/cc-lender-consent-gw-consent-to-text/cc-lender-consent-gw-consent-to-text.component';\r\nimport { CcLenderConsentGwTermsAndConditionsComponent } from './applicant/cc-lender-consent/cc-lender-consent-gw/cc-lender-consent-gw-terms-and-conditions/cc-lender-consent-gw-terms-and-conditions.component';\r\nimport { CcLenderConsentJdTermsAndAuthComponent } from './applicant/cc-lender-consent/cc-lender-consent-jd/cc-lender-consent-jd-terms-and-auth/cc-lender-consent-jd-terms-and-auth.component';\r\nimport { CcLenderConsentJdTermsAndConditionsComponent } from './applicant/cc-lender-consent/cc-lender-consent-jd/cc-lender-consent-jd-terms-and-conditions/cc-lender-consent-jd-terms-and-conditions.component';\r\nimport { CcLenderConsentUcfsTermsAndConditionsComponent } from './applicant/cc-lender-consent/cc-lender-consent-ucfs/cc-lender-consent-ucfs-terms-and-conditions/cc-lender-consent-ucfs-terms-and-conditions.component';\r\nimport { ExistingApplicationsComponent } from './applicant/existing-applications/existing-applications.component';\r\nimport { CallCenterDashboard } from './call-center/call-center-dashboard/call-center-dashboard.component';\r\nimport { HomeComponent } from './home-component/home.component';\r\nimport { EmailLoginComponent } from './login/email-login/email-login.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { OtpComponent } from './login/otp/otp.component';\r\nimport { RecoverpwdComponent } from './login/recoverpwd/recoverpwd.component';\r\nimport { ResetpwdComponent } from './login/resetpwd/resetpwd.component';\r\nimport { RedirectComponent } from './redirect/redirect.component';\r\nimport { RegisterComponent } from './register/register/register.component';\r\nimport { AuthGuard } from './service/auth.guard';\r\nimport { AuthGuardMaintenance } from './service/auth.guard.maintenance';\r\nimport { MerchantRoutingResolver } from './shared/resolvers/merchant-routing-resolver.resolver';\r\n\r\n\r\nconst routes: Routes = [\r\n { path: 'simplifiedui', loadChildren: () => import('../app/simplified.UI/simplified-ui.module').then(m => m.SimplifiedUiModule) },\r\n\r\n { path: 'login', component: LoginComponent, canActivate: [AuthGuardMaintenance] },\r\n { path: 'email', component: EmailLoginComponent, canActivate: [AuthGuardMaintenance] },\r\n { path: '', component: HomeComponent, canActivate: [AuthGuardMaintenance] },\r\n { path: 'redirect', component: RedirectComponent },\r\n { path: 'existingapplications', component: ExistingApplicationsComponent, canActivate: [AuthGuardMaintenance] },\r\n { path: 'onlineApplication', component: HomeComponent, canActivate: [AuthGuardMaintenance] },\r\n {\r\n path: 'onlineApplication/preApplication', component: HomeComponent, canActivate: [AuthGuardMaintenance],\r\n resolve: {\r\n merchantRouting: MerchantRoutingResolver\r\n }\r\n },\r\n {\r\n path: 'onlineApplication/preQualification', component: HomeComponent, canActivate: [AuthGuardMaintenance]\r\n },\r\n {\r\n path: 'preApplication', component: HomeComponent, canActivate: [AuthGuardMaintenance]\r\n },\r\n {\r\n path: 'preQualification', component: HomeComponent, canActivate: [AuthGuardMaintenance]\r\n },\r\n {\r\n path: 'onlineApplication/preApplication/:leadId', component: HomeComponent, canActivate: [AuthGuardMaintenance],\r\n resolve: {\r\n merchantRouting: MerchantRoutingResolver\r\n }\r\n },\r\n {\r\n path: 'preApplication/:leadId', component: HomeComponent, canActivate: [AuthGuardMaintenance],\r\n resolve: {\r\n merchantRouting: MerchantRoutingResolver\r\n }\r\n },\r\n { path: 'register', component: RegisterComponent, canActivate: [AuthGuardMaintenance] },\r\n { path: 'otp', component: OtpComponent, canActivate: [AuthGuardMaintenance] },\r\n { path: 'recoverpwd', component: RecoverpwdComponent, canActivate: [AuthGuardMaintenance] },\r\n {\r\n path: 'resetpwd', component: ResetpwdComponent, canActivate: [AuthGuardMaintenance]\r\n },\r\n {\r\n path: ':id/signingRoom/cf-offer',\r\n loadChildren: () => import('../app/applicant/signing-room/lender-cf/cf-offer-selection/cf-offer-selection.module').then(x => x.SingingRoomCfOfferSelectionModule)\r\n },\r\n {\r\n path: ':id/signingRoom/es-cf-offer',\r\n loadChildren: () => import('../app/applicant/signing-room/lender-cf/cf-offer-selection/cf-offer-selection.module').then(x => x.SingingRoomCfOfferSelectionModule)\r\n },\r\n {\r\n path: 'signingRoom/cf-bank',\r\n loadChildren: () => import('../app/applicant/signing-room/lender-cf/cf-bank/cf-bank-detail.module').then(x => x.SingingRoomCfBankDetailModule)\r\n },\r\n {\r\n path: 'signingRoom/cf-eSignature',\r\n loadChildren: () => import('../app/applicant/signing-room/lender-cf/cf-e-signature/cf-e-signature.module').then(x => x.SingingRoomCFESignatureModule)\r\n },\r\n {\r\n path: 'signingRoom/cf-offerStatus',\r\n loadChildren: () => import('../app/applicant/signing-room/lender-cf/cf-offer-status/cf-offer-status.module').then(x => x.SingingRoomCfOfferStatusModule)\r\n },\r\n {\r\n path: ':id/signingRoom/uown-offer',\r\n loadChildren: () => import('../app/applicant/signing-room/lender-uown/uown-offer-selection/uown-offer-selection.module').then(x => x.SingingRoomUownOfferSelectionModule)\r\n },\r\n {\r\n path: 'signingRoom/uown-eSignature',\r\n loadChildren: () => import('../app/applicant/signing-room/lender-uown/uown-e-signature/uown-e-signature.module').then(x => x.SingingRoomUownESignatureModule)\r\n },\r\n {\r\n path: 'signingRoom/uown-signing-status',\r\n loadChildren: () => import('../app/applicant/signing-room/lender-uown/uown-signing-status/uown-signing-status.module').then(x => x.UownSigningStatusModule)\r\n },\r\n {\r\n path: 'callcenterdashboard', component: CallCenterDashboard, canActivate: [AuthGuardMaintenance]\r\n },\r\n {\r\n path: 'cf-consent', component: CcLenderConsentCfComponent, canActivate: [AuthGuardMaintenance]\r\n },\r\n {\r\n path: 'es-cf-consent', component: CcLenderConsentCfComponent, canActivate: [AuthGuardMaintenance]\r\n },\r\n {\r\n path: 'jd-terms-and-authorization', component: CcLenderConsentJdTermsAndAuthComponent, canActivate: [AuthGuardMaintenance]\r\n },\r\n {\r\n path: 'jd-terms-and-conditions', component: CcLenderConsentJdTermsAndConditionsComponent, canActivate: [AuthGuardMaintenance]\r\n },\r\n {\r\n path: 'ucfs-terms-and-conditions', component: CcLenderConsentUcfsTermsAndConditionsComponent, canActivate: [AuthGuardMaintenance]\r\n },\r\n {\r\n path: 'dd-terms-and-conditions', component: CcLenderConsentDdTermsAndConditionsComponent, canActivate: [AuthGuardMaintenance]\r\n },\r\n {\r\n path: 'gw-consent-to-text', component: CcLenderConsentGwConsentToTextComponent, canActivate: [AuthGuardMaintenance]\r\n },\r\n {\r\n path: 'gw-terms-and-conditions', component: CcLenderConsentGwTermsAndConditionsComponent, canActivate: [AuthGuardMaintenance]\r\n },\r\n {\r\n path: 'aff-terms-and-conditions', component: CcLenderConsentAffTermsAndConditionsComponent, canActivate: [AuthGuardMaintenance]\r\n },\r\n {\r\n path: 'aff-arbitration-provision', component: CcLenderConsentAffArbitrationComponent, canActivate: [AuthGuardMaintenance]\r\n },\r\n {\r\n path: 'aff-receive-marketing-calls-and-texts', component: CcLenderConsentAffReceiveCallsComponent, canActivate: [AuthGuardMaintenance]\r\n },\r\n {\r\n path: ':id/signingRoom/aff-eSignature',\r\n loadChildren: () => import('../app/applicant/signing-room/lender-aff/aff-e-signature/aff-e-signature.module').then(x => x.AffESignatureModule)\r\n },\r\n {\r\n path: 'signingRoom/aff-offerStatus',\r\n loadChildren: () => import('../app/applicant/signing-room/lender-aff/aff-offer-status/aff-offer-status.module').then(x => x.AffOfferStatusModule)\r\n },\r\n {\r\n path: ':id/signingRoom/fs-offer',\r\n loadChildren: () => import('../app/applicant/signing-room/lender-fs/flex-shopper-signing-room/flex-shopper-signing-room.module').then(x => x.FlexShopperSigningRoomModule)\r\n },\r\n {\r\n path: ':id/signingRoom/es-fs-offer',\r\n loadChildren: () => import('../app/applicant/signing-room/lender-fs/flex-shopper-signing-room/flex-shopper-signing-room.module').then(x => x.FlexShopperSigningRoomModule)\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule],\r\n providers: [AuthGuard, AuthGuardMaintenance]\r\n})\r\nexport class AppRoutingModule { }\r\n","export enum ProgressBarSteps {\r\n EXISTING_APPLICATIONS = 0,\r\n PRE_APPLICATION = 1,\r\n IDENTITY = 2,\r\n ADDRESS = 3,\r\n EMPLOYMENT = 4,\r\n LOANAMOUNT = 5,\r\n LENDER_SELECTION = 6,\r\n LENDER_QUESTION = 7,\r\n PROCESS_COMPLETE = 9\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit } from '@angular/core';\r\nimport { ProgressBarSteps } from '../entity/enums/progress-bar-steps';\r\n\r\n@Component({\r\n selector: 'app-progress-bar',\r\n templateUrl: './progress-bar.component.html',\r\n styleUrls: ['./progress-bar.component.scss']\r\n})\r\nexport class ProgressBarComponent implements OnInit {\r\n @Input() progressLevel: number = 1;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.updateProgressBar(this.progressLevel);\r\n }\r\n\r\n ngDoCheck() {\r\n this.updateProgressBar(this.progressLevel);\r\n }\r\n\r\n public updateProgressBar(level: number) {\r\n for (let i = 1; i <= ProgressBarSteps.PROCESS_COMPLETE; i++) {\r\n let progressedElement = document.getElementById(`progress${i + 1}`);\r\n if (progressedElement !== null) {\r\n progressedElement.style.backgroundColor = \"rgba(255,255,255,0.4)\";\r\n progressedElement.style.color = \"rgba(255,255,255,0)\";\r\n }\r\n }\r\n\r\n for (let i = 1; i <= level; i++) {\r\n let progressedElement = document.getElementById(`progress${i}`);\r\n if (progressedElement !== null) {\r\n progressedElement.style.color = \"#0052A4\";\r\n progressedElement.style.backgroundColor = \"white\";\r\n\r\n if (level === ProgressBarSteps.PRE_APPLICATION && i === ProgressBarSteps.PRE_APPLICATION) {\r\n progressedElement.style.paddingLeft = '5px';\r\n progressedElement.innerText = '1';\r\n }\r\n\r\n if (level > ProgressBarSteps.PRE_APPLICATION && i === ProgressBarSteps.PRE_APPLICATION) {\r\n progressedElement.innerHTML = '✔';\r\n progressedElement.style.paddingLeft = '1px';\r\n }\r\n\r\n if (level === ProgressBarSteps.LOANAMOUNT && i === ProgressBarSteps.LOANAMOUNT) {\r\n progressedElement.style.paddingLeft = '5px';\r\n progressedElement.innerHTML = '2';\r\n }\r\n\r\n if (level > ProgressBarSteps.LOANAMOUNT && i === ProgressBarSteps.LOANAMOUNT) {\r\n progressedElement.innerHTML = '✔';\r\n progressedElement.style.paddingLeft = '1px';\r\n }\r\n\r\n if (level === ProgressBarSteps.PROCESS_COMPLETE && i === ProgressBarSteps.PROCESS_COMPLETE) {\r\n progressedElement.innerHTML = '✔';\r\n progressedElement.style.paddingLeft = '1px';\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n}\r\n","
\r\n
 
\r\n
\r\n
\r\n
\r\n
 
\r\n
\r\n
\r\n
\r\n
 
\r\n\r\n
\r\n","import { ChangeDetectorRef, Component, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { filter } from 'rxjs';\r\nimport { isNullOrUndefined } from 'is-what';\r\nimport { ProgressBarSteps } from '../../applicant/entity/enums/progress-bar-steps';\r\nimport { AuthService } from '../../service/auth.service';\r\nimport { MediaLayoutService } from '../../service/media.layout.service';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { FormDataService } from '../../applicant/service/form-data.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\nimport { SessionService } from '../../service/session.service';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss']\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n @Input() selectedMenuItem: string = '';\r\n @Input() isUserLoggedin: boolean = false;\r\n @Input() isNewUser: boolean = false;\r\n\r\n public progressLevel: number;\r\n private ProgressBarSteps: typeof ProgressBarSteps = ProgressBarSteps;\r\n public userName: string;\r\n public profileName: string;\r\n public hideProgressBar: boolean = true;\r\n public showHeader: boolean=true;\r\n public routePath: string;\r\n public hideMobileProgressBar: boolean;\r\n public showProfileMenu: boolean = false;\r\n public route: string;\r\n\r\n @HostListener('window:resize', [])\r\n public onResize() {\r\n this.checkScreenSize();\r\n }\r\n\r\n isMobileDevice: boolean = false;\r\n public displayMenuItem: string = '';\r\n public currentActiveTab: string = '';\r\n public hidePreviousflow: boolean = false;\r\n enTranslationsForHeader: any;\r\n\r\n constructor(public P_MediaLayoutService: MediaLayoutService,\r\n private authService: AuthService,\r\n public router: Router,\r\n public sharedService: SharedService,\r\n private formDataService: FormDataService,\r\n private sessionService: SessionService,\r\n private translocoService: CustomTranslocoService,\r\n private cdRef: ChangeDetectorRef ) {\r\n this.sharedService.getLoggedInInfo.subscribe(name => { this.ngOnInit(); });\r\n }\r\n\r\n ngOnInit(): void {\r\n let applicantPreferredlanguage = this.translocoService.getApplicantPreferredLanguageID();\r\n //load manual language json file\r\n this.translocoService.loadLanguageWiseTranslationSingleJson('header', applicantPreferredlanguage);\r\n setTimeout(() => {\r\n this.enTranslationsForHeader = this.translocoService.getLanguageTranslations('header', applicantPreferredlanguage);\r\n }, 500);\r\n //this.translocoService.loadTransLocoScopeWithLanguageId(\"header\", \"header\", applicantPreferredlanguage);\r\n //this.translocoService.approvalDisplayLanguageId$.subscribe({\r\n // next: (isApproved) => {\r\n // if (isApproved) {\r\n // setTimeout(() => {\r\n // this.loadTranslations();\r\n // }, 1500);\r\n // }\r\n // }\r\n //});\r\n\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n this.progressLevel = ProgressBarSteps.PRE_APPLICATION;\r\n this.currentActiveTab = \"Pre-Application\";\r\n this.isUserLoggedin = JSON.parse(sessionStorage.getItem(\"Authenticate\") || 'false') as boolean;\r\n this.showHeader = JSON.parse(sessionStorage.getItem(\"IsFormDataSet\") || 'false') as boolean;\r\n this.routePath = this.formDataService.getRoutePath();\r\n this.routePath == \"login\" ? this.currentActiveTab = \"Existing Applications\" : this.currentActiveTab = \"Pre-Application\";\r\n if (!isNullOrUndefined(this.authService.currentUserValue)) {\r\n if (!isNullOrUndefined(this.authService.currentUserValue.UserName)) {\r\n this.userName = this.authService.currentUserValue.UserName;\r\n this.profileName = this.userName.substring(0, 1).toUpperCase();\r\n }\r\n }\r\n\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n\r\n this.router.events.pipe(filter(r => r instanceof NavigationEnd)).subscribe(r => {\r\n this.route = (r as NavigationEnd).url.slice(1);\r\n let testRoute = this.route.indexOf(\"lenderquestion\") != -1 ? \"lenderquestion\" : this.route;\r\n switch (this.route) {\r\n case 'existingapplications':\r\n this.selectedMenuItem = this.enTranslationsForHeader?.header.existingApplications;\r\n this.hideProgressBar = true;\r\n this.showProfileMenu = true;\r\n break;\r\n case '':\r\n this.hideProgressBar = true;\r\n this.hidePreviousflow = true;\r\n break;\r\n case 'register':\r\n this.hideProgressBar = true;\r\n this.hidePreviousflow = true;\r\n break;\r\n case 'otp':\r\n this.hideProgressBar = true;\r\n this.hidePreviousflow = true;\r\n break;\r\n case 'login':\r\n this.hideProgressBar = true;\r\n this.hidePreviousflow = true;\r\n break;\r\n case 'homeapplication':\r\n this.showProfileMenu = false;\r\n this.hideProgressBar = true;\r\n this.hidePreviousflow = true;\r\n break;\r\n case 'callcenterdashboard':\r\n this.selectedMenuItem = this.enTranslationsForHeader?.header.callCenterDash\r\n this.hideProgressBar = true;\r\n this.showProfileMenu = true;\r\n break;\r\n case 'cf-consent':\r\n case 'es-cf-consent':\r\n case 'jd-terms-and-authorization':\r\n case 'jd-terms-and-conditions':\r\n case 'ucfs-terms-and-conditions':\r\n case 'dd-terms-and-conditions':\r\n case 'gw-consent-to-text':\r\n case 'gw-terms-and-conditions':\r\n case 'aff-terms-and-conditions':\r\n case 'aff-arbitration-provision':\r\n case 'aff-receive-marketing-calls-and-texts':\r\n this.hideProgressBar = true;\r\n this.showProfileMenu = true;\r\n break;\r\n default:\r\n if (this.route.indexOf(\"signingRoom\") != -1) {\r\n this.showHeader = false;\r\n this.hideProgressBar = true;\r\n document.getElementById(\"main\").style.marginTop = '15px';\r\n document.getElementById(\"main\").style.display = 'contents';\r\n }\r\n else {\r\n this.hideProgressBar = false;\r\n }\r\n this.hidePreviousflow = false;\r\n break;\r\n }\r\n\r\n switch (testRoute) {\r\n case 'productselection':\r\n this.currentActiveTab = this.enTranslationsForHeader?.header.preApplication;\r\n this.progressLevel = ProgressBarSteps.PRE_APPLICATION;\r\n this.showProfileMenu = true;\r\n break;\r\n\r\n case 'existingapplications':\r\n this.showProfileMenu = true;\r\n this.currentActiveTab = this.enTranslationsForHeader?.header.existingApplications\r\n this.progressLevel = ProgressBarSteps.EXISTING_APPLICATIONS;\r\n this.hidePreviousflow = false;\r\n break;\r\n\r\n case 'identity':\r\n this.showProfileMenu = true;\r\n this.currentActiveTab = this.enTranslationsForHeader?.header.basicInfo;\r\n this.progressLevel = ProgressBarSteps.IDENTITY;\r\n break;\r\n\r\n case 'address':\r\n this.showProfileMenu = true;\r\n this.currentActiveTab = this.enTranslationsForHeader?.header.basicInfo;\r\n this.progressLevel = ProgressBarSteps.ADDRESS;\r\n break;\r\n\r\n case 'employment':\r\n this.showProfileMenu = true;\r\n this.currentActiveTab = this.enTranslationsForHeader?.header.basicInfo;\r\n this.progressLevel = ProgressBarSteps.EMPLOYMENT;\r\n break;\r\n\r\n case 'loanamount':\r\n this.showProfileMenu = true;\r\n this.currentActiveTab = this.enTranslationsForHeader?.header.basicInfo;\r\n this.progressLevel = ProgressBarSteps.LOANAMOUNT;\r\n break;\r\n\r\n case 'lenderselection':\r\n this.showProfileMenu = true;\r\n this.currentActiveTab = this.enTranslationsForHeader?.header.lenderSelection;\r\n this.progressLevel = ProgressBarSteps.LENDER_SELECTION;\r\n break;\r\n\r\n case 'lenderquestion':\r\n this.showProfileMenu = true;\r\n this.currentActiveTab = this.enTranslationsForHeader?.header.lenderQuestion;\r\n this.progressLevel = ProgressBarSteps.LENDER_QUESTION;\r\n break;\r\n\r\n case 'processcomplete':\r\n this.showProfileMenu = true;\r\n this.progressLevel = ProgressBarSteps.PROCESS_COMPLETE;\r\n break;\r\n\r\n case 'callcenterdashboard':\r\n this.showProfileMenu = true;\r\n this.progressLevel = ProgressBarSteps.EXISTING_APPLICATIONS;\r\n this.hidePreviousflow = false;\r\n this.currentActiveTab = this.enTranslationsForHeader?.header.callCenterDash;\r\n break;\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n logoClicked() {\r\n if (this.isUserLoggedin)\r\n this.router.navigate(['existingapplications']);\r\n\r\n else\r\n this.router.navigate(['']);\r\n }\r\n\r\n logout() {\r\n this.authService.logout();\r\n this.router.navigate(['']);\r\n }\r\n\r\n checkScreenSize() {\r\n this.isMobileDevice = window.innerWidth <= 600;\r\n }\r\n\r\n changePassword() {\r\n console.log(\"change password\");\r\n }\r\n\r\n goToNext() {\r\n switch (this.route) {\r\n case 'productselection':\r\n this.router.navigate(['homeapplication']);\r\n break;\r\n case 'identity':\r\n this.router.navigate(['productselection']);\r\n break;\r\n case 'address':\r\n this.router.navigate(['identity']);\r\n break;\r\n case 'employment':\r\n this.router.navigate(['address']);\r\n break;\r\n case 'loanamount':\r\n this.router.navigate(['employment']);\r\n break;\r\n case 'lenderselection':\r\n this.router.navigate(['loanamount']);\r\n break;\r\n case 'lenderquestion/cf-bank':\r\n this.router.navigate(['lenderselection']);\r\n break;\r\n case 'lenderquestion/cf-paycard':\r\n this.router.navigate(['lenderquestion/cf-bank']);\r\n break;\r\n case 'existingapplications':\r\n this.router.navigate(['homeapplication']);\r\n break;\r\n case 'callcenterdashboard':\r\n this.router.navigate(['homeapplication']);\r\n break;\r\n\r\n\r\n }\r\n }\r\n\r\n loadTranslations() {\r\n this.cdRef.detectChanges();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Responsive\r\n
\r\n
\r\n {{selectedMenuItem}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n
{{profileName}}
\r\n
\r\n
\r\n \r\n\r\n \r\n {{userName}}\r\n \r\n
\r\n \r\n {{enTranslationsForHeader?.header.signOut}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{selectedMenuItem}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
{{profileName}}
\r\n
\r\n
\r\n \r\n\r\n \r\n {{userName}}\r\n \r\n
\r\n \r\n {{enTranslationsForHeader?.header.signOut}}\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n   \r\n {{currentActiveTab | transloco}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { NavigationEnd, Router } from \"@angular/router\";\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { filter } from \"rxjs/operators\";\r\nimport { PrivacyPolicyComponent } from \"../../disclosures-and-consents/privacy-policy/privacy-policy.component\";\r\nimport { TermsOfServiceComponent } from \"../../disclosures-and-consents/terms-of-service/terms-of-service.component\";\r\nimport { DisclosureType } from '../../models/disclosure-consent-type';\r\nimport { MediaLayoutService } from \"../../service/media.layout.service\";\r\nimport { provideTranslocoScope } from \"@jsverse/transloco\";\r\nimport { SessionService } from \"../../service/session.service\";\r\nimport { CustomTranslocoService } from \"../../service/transloco.service\";\r\nimport { SharedService } from \"../../service/shared.service\";\r\n\r\n\r\n@Component({\r\n selector: \"app-footer\",\r\n templateUrl: \"./footer-component.html\",\r\n styleUrls: [\"./footer-component.scss\"],\r\n providers: [provideTranslocoScope({ scope: 'footer' })]\r\n})\r\n\r\nexport class FooterComponent implements OnInit {\r\n isSigningRoom: boolean = false;\r\n isMobileDevice: boolean = false;\r\n year: number;\r\n date: Date;\r\n route: string = null;\r\n enTranslationsForFooter: any;\r\n\r\n public DisclosureType: typeof DisclosureType = DisclosureType;\r\n\r\n constructor(\r\n private modalService: NgbModal,\r\n public P_MediaLayoutService: MediaLayoutService,\r\n private sessionService: SessionService,\r\n private translocoService: CustomTranslocoService,\r\n public sharedService: SharedService,\r\n public router: Router\r\n ) {\r\n // Subscribe to language change event\r\n this.sharedService.languageChange.subscribe((newLanguage) => {\r\n this.updateTranslations(newLanguage);\r\n });\r\n // Subscribe to logged-in info event to trigger footer refresh after login\r\n this.sharedService.getLoggedInInfo.subscribe(() => {\r\n this.initializeFooter();\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initializeFooter();\r\n }\r\n\r\n initializeFooter(): void {\r\n const activeLanguage = this.getActiveLanguage();\r\n if (activeLanguage != null) {\r\n this.translocoService.loadLanguageWiseTranslationSingleJson('privacy-policy', this.getActiveLanguage());\r\n this.loadTranslations(activeLanguage);\r\n }\r\n else {\r\n this.translocoService.loadLanguageWiseTranslationSingleJson('privacy-policy', 'en');\r\n this.loadTranslations('en');\r\n }\r\n\r\n\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n this.date = new Date();\r\n this.year = this.date.getFullYear();\r\n\r\n this.router.events.pipe(filter(r => r instanceof NavigationEnd)).subscribe(r => {\r\n this.route = (r as NavigationEnd).url.slice(1);\r\n this.isSigningRoom = this.route.indexOf(\"signingRoom\") != -1 ? true : false;\r\n });\r\n }\r\n\r\n getActiveLanguage(): string {\r\n return this.translocoService.getCurrentLanguage();\r\n }\r\n\r\n loadTranslations(language: string): void {\r\n this.translocoService.loadLanguageWiseTranslationSingleJson('footer', language);\r\n setTimeout(() => {\r\n this.enTranslationsForFooter = this.translocoService.getLanguageTranslations('footer', language);\r\n }, 500);\r\n }\r\n\r\n // Update translations when language changes\r\n updateTranslations(newLanguage: string): void {\r\n this.loadTranslations(newLanguage);\r\n }\r\n\r\n public openDisclosures(disclosureType: DisclosureType) {\r\n let disclosureComponent: object;\r\n switch (disclosureType) {\r\n default:\r\n case DisclosureType.PRIVACY_POLICY:\r\n disclosureComponent = PrivacyPolicyComponent;\r\n break;\r\n case DisclosureType.TERMS_OF_SERVICE:\r\n disclosureComponent = TermsOfServiceComponent;\r\n break;\r\n }\r\n const modalRef = this.modalService.open(disclosureComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) { }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n public openCopyRight() {\r\n // Add any specific logic here\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output, ChangeDetectorRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { ApiResponse } from '../../applicant/models/api-response';\r\nimport { ApplicantFormData } from '../../applicant/models/applicant-form-data';\r\nimport { OnlineApplicationMode } from '../../applicant/models/online-application-mode';\r\nimport { ApplicantService } from '../../applicant/service/applicant-service';\r\nimport { FormDataService } from '../../applicant/service/form-data.service';\r\nimport { Menu } from '../../entity/menu';\r\nimport { AuthService } from '../../service/auth.service';\r\nimport { SessionService } from '../../service/session.service';\r\nimport { ConfirmationBox } from '../../shared/components/confirmation-box/confirmation-box.model';\r\nimport { ConfirmationBoxService } from '../../shared/components/confirmation-box/confirmation-box.service';\r\nimport { User } from '../../shared/models/user';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\n\r\n@Component({\r\n selector: 'app-menu-wizard',\r\n templateUrl: './menu-wizard.component.html',\r\n styleUrls: ['./menu-wizard.component.scss'],\r\n //providers: [provideTranslocoScope({ scope: 'menu-wizard', alias: 'menuWizard' })]\r\n})\r\nexport class MenuWizardComponent implements OnInit {\r\n\r\n public menuElement: any;\r\n public currentUrl: string = '';\r\n public linkItems: HTMLCollectionOf;\r\n eventSubscriber: Subscription = new Subscription();\r\n public currentLanguage:string;\r\n\r\n @Input() selectedMenuItem = \"\";\r\n @Input() openMenu: boolean = true;\r\n @Input() menuClick: EventEmitter = new EventEmitter();\r\n @Output() menuChanged: EventEmitter = new EventEmitter();\r\n @Output() selectedMenu: EventEmitter = new EventEmitter();\r\n\r\n private existingApplicationsRoute = 'existingapplications';\r\n private newFinancingApplicationsRoute = 'productselection';\r\n public formData: ApplicantFormData;\r\n public currentUser: User;\r\n OnlineApplicationMode: typeof OnlineApplicationMode = OnlineApplicationMode;\r\n public menuItem: Menu[];\r\n enTranslationsForMenuWizard: any;\r\n\r\n languageKeyValue: Record={\r\n en: [\r\n { langKey: 'Key1', langValue: 'English' },\r\n { langKey: 'Key2', langValue: 'Inglés' }\r\n ],\r\n es: [\r\n { langKey: 'Key1', langValue: 'Spanish' },\r\n { langKey: 'Key2', langValue: 'Español' }\r\n ]\r\n }\r\n\r\n constructor(private router: Router,\r\n private formDataService: FormDataService,\r\n private sessionService: SessionService,\r\n private applicantService: ApplicantService,\r\n private _confirmationBoxService: ConfirmationBoxService,\r\n private authService: AuthService,\r\n private translocoService: CustomTranslocoService,\r\n private cdRef: ChangeDetectorRef) {\r\n this.menuElement = document.getElementById(\"sidebar\");\r\n this.linkItems = document.getElementsByClassName(\"nav-item\");\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.menuElement !== null) {\r\n if (!this.openMenu) {\r\n this.menuElement.style.width = \"0px\";\r\n this.menuElement.style.marginLeft = \"0px\";\r\n }\r\n else {\r\n this.menuElement.style.width = \"180px\";\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewChecked() {\r\n this.highlightMenuItem();\r\n }\r\n\r\n ngOnInit(): void {\r\n let applicantPreferredlanguage = this.translocoService.getApplicantPreferredLanguageID();\r\n this.translocoService.loadLanguageWiseTranslationSingleJson('menu-wizard', applicantPreferredlanguage);\r\n setTimeout(() => {\r\n this.enTranslationsForMenuWizard = this.translocoService.getLanguageTranslations('menu-wizard', applicantPreferredlanguage);\r\n }, 500);\r\n\r\n this.formData = this.formDataService.getFormData();\r\n this.authService.getUserMenu().subscribe((data => {\r\n if (data.IsSuccess) {\r\n this.menuItem = data.Result;\r\n }\r\n }\r\n ));\r\n this.currentUrl = this.router.url;\r\n this.menuClick.subscribe(data => {\r\n this.openMenu = data;\r\n if (this.menuElement !== null && this.openMenu)\r\n this.menuElement.style.width = \"180px\";\r\n\r\n if (this.menuElement !== null && !this.openMenu) {\r\n this.menuElement.style.width = \"0px\";\r\n this.menuElement.style.marginLeft = \"0px\";\r\n }\r\n });\r\n }\r\n\r\n closeMenu() {\r\n this.openMenu = false;\r\n this.menuChanged.emit(this.openMenu);\r\n if (this.menuElement !== null) {\r\n this.menuElement.style.width = \"0px\";\r\n this.menuElement.style.marginLeft = \"0px\";\r\n }\r\n }\r\n\r\n public removeSelection() {\r\n for (let i = 0; i < this.linkItems.length; i++) {\r\n this.linkItems[i].classList.remove(\"selectedListItem\");\r\n }\r\n }\r\n\r\n highlightMenuItem() {\r\n //if (this.selectedMenuItem === \"New Application\") {\r\n if (this.selectedMenuItem === this.enTranslationsForMenuWizard?.menu.newApp) {\r\n document.getElementById(\"37\")?.classList.add(\"selectedListItem\");\r\n document.getElementById(\"38\")?.classList.remove(\"selectedListItem\");\r\n }\r\n else {\r\n document.getElementById(\"37\")?.classList.remove(\"selectedListItem\");\r\n document.getElementById(\"38\")?.classList.add(\"selectedListItem\");\r\n }\r\n }\r\n\r\n newFinance() {\r\n //Retain applicant First Name, Last Name, Email\r\n this.currentUser = this.authService.currentUserValue;\r\n this.formDataService.startNewApplication(this.currentUser);\r\n //NOTE: Kept for Reference, will remove before production\r\n //this.formDataService.setApplicationMode(this.OnlineApplicationMode.ONLINE_ADD_NEW_APPLICATION);\r\n //this.formDataService.clearFormData();\r\n // this.formData = this.formDataService.getFormData();\r\n // this.formData.Email = this.currentUser.Email;\r\n // this.formData.FirstName = this.currentUser.FirstName;\r\n // this.formData.LastName = this.currentUser.LastName;\r\n // this.formDataService.setFormData(this.formData);\r\n\r\n //this.selectedMenu.emit(\"New Application\");\r\n this.selectedMenu.emit(this.enTranslationsForMenuWizard?.menu.newApp);\r\n this.currentUrl = this.authService.getCurrentUrl();\r\n this.checkApplicantHaveOpenApplications();\r\n }\r\n private checkApplicantHaveOpenApplications() {\r\n this.applicantService.applicantHaveOpenApplications()\r\n .subscribe((data: ApiResponse) => {\r\n if (!data.IsSuccess) {\r\n return;\r\n }\r\n else {\r\n let vm = this;\r\n let alertHeaderText: string = this.enTranslationsForMenuWizard?.alertBox.heading;\r\n let alertMessageText: string = this.enTranslationsForMenuWizard?.alertBox.openApplicationMessage;\r\n let alertOkButtonText: string = this.enTranslationsForMenuWizard?.alertBox.okButtonLabel;\r\n\r\n //merchant language and applicant preferred language is mismatch alert text\r\n let alertMerchantApplicantMismatchHeading: string = this.enTranslationsForMenuWizard?.languageConsentAlert.heading;\r\n let alertMerchantApplicantMismatchTextEnglish: string = this.enTranslationsForMenuWizard?.languageConsentAlert.consentTextEnglish;\r\n let alertMerchantApplicantMismatchTextSapnish: string = this.enTranslationsForMenuWizard?.languageConsentAlert.consentTextSpanish;\r\n let alertMerchantApplicantMismatchYesBtn: string = this.enTranslationsForMenuWizard?.languageConsentAlert.agreeButtonLabel;\r\n let alertMerchantApplicantMismatchNoBtn: string = this.enTranslationsForMenuWizard?.languageConsentAlert.cancelButtonLabel;\r\n\r\n const consentTextInEnglish = this.translocoService.replacePlaceholders(this.languageKeyValue,this.translocoService.getLoginLanguage(), alertMerchantApplicantMismatchTextEnglish);\r\n const consentTextInSpanish = this.translocoService.replacePlaceholders(this.languageKeyValue,this.translocoService.getLoginLanguage(), alertMerchantApplicantMismatchTextSapnish);\r\n\r\n let BothAlertDisplayBasedOnLanguageList = `\r\n
    \r\n
  • \r\n Spanish: \r\n
    ${consentTextInSpanish}
    \r\n
  • \r\n
  • \r\n English: \r\n
    ${consentTextInEnglish}
    \r\n
  • \r\n
`;\r\n\r\n let result = data.Result;\r\n if (result == true) {\r\n var confirmBox = new ConfirmationBox(alertHeaderText, alertMessageText, true, false, false, false, alertOkButtonText, '', '', '');\r\n\r\n this._confirmationBoxService.Open(confirmBox, \"md\").then(function (result) {\r\n if (result == true) {\r\n vm.selectedMenu.emit(vm.enTranslationsForMenuWizard?.menu.existingApp);\r\n vm.router.navigate([vm.existingApplicationsRoute]);\r\n }\r\n });\r\n }\r\n else {\r\n let loginLanguage: string = this.translocoService.getLoginLanguage();\r\n let applicantLanguage: string = \"\";\r\n let applicantID = this.sessionService.getSessionFormData(\"ApplicantID\");\r\n if (applicantID != null) {\r\n\r\n applicantLanguage = this.translocoService.getApplicantPreferredLanguageID();\r\n \r\n let appCount = this.translocoService.getApplicationCount();\r\n if(appCount >= 1){\r\n vm.translocoService.setActiveLanguage('en');\r\n }\r\n //check login language and applicant preferred language is mismatch or not\r\n if ((loginLanguage !== applicantLanguage && appCount == 0 ) || (appCount >= 1 && applicantLanguage !== this.translocoService.getDefaultLanguage())) {\r\n var confirmBox = new ConfirmationBox(alertMerchantApplicantMismatchHeading, BothAlertDisplayBasedOnLanguageList, true, true, false, false, alertMerchantApplicantMismatchYesBtn, alertMerchantApplicantMismatchNoBtn, '', '');\r\n this._confirmationBoxService.Open(confirmBox, \"md\").then(function (result) {\r\n if (result == false) {\r\n vm.selectedMenu.emit(vm.enTranslationsForMenuWizard?.menu.existingApp);\r\n vm.router.navigate([vm.existingApplicationsRoute]);\r\n } else {\r\n vm.translocoService.setActiveLanguage(loginLanguage);\r\n vm.router.navigate([vm.newFinancingApplicationsRoute]);\r\n vm.closeMenu();\r\n }\r\n });\r\n } else {\r\n vm.router.navigate([vm.newFinancingApplicationsRoute]);\r\n vm.closeMenu();\r\n }\r\n \r\n }\r\n }\r\n }\r\n }),\r\n ((error: any) => {\r\n console.log(error);\r\n })\r\n }\r\n //existingApps() {\r\n // this.selectedMenu.emit(\"Existing Applications\");\r\n // this.router.navigate([this.existingApplicationsRoute]);\r\n //}\r\n public routeTo(menu: Menu) {\r\n let translatedValue = this.enTranslationsForMenuWizard?.menu.newApp;\r\n if (menu.MenuName === translatedValue) {\r\n this.newFinance();\r\n }\r\n else {\r\n this.selectedMenu.emit(menu.MenuName);\r\n this.router.navigate([menu.Url]);\r\n }\r\n }\r\n\r\n loadTranslations() {\r\n this.cdRef.detectChanges();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","import { BreakpointObserver, MediaMatcher } from '@angular/cdk/layout';\r\nimport { ChangeDetectorRef, EventEmitter, HostListener, OnDestroy, OnInit } from '@angular/core';\r\nimport { Component } from '@angular/core';\r\nimport { NavigationEnd, NavigationStart, Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { filter, Observable, Subscription } from 'rxjs';\r\nimport { environment } from '../environments/environment';\r\nimport { ApplicantFormData } from './applicant/models/applicant-form-data';\r\nimport { IFramePostMessage } from './applicant/models/iframe-post-message';\r\nimport { OnlineApplicationMode } from './applicant/models/online-application-mode';\r\nimport { FormDataService } from './applicant/service/form-data.service';\r\nimport { ApplicationCurrentStatuses } from './entity/ApplicationCurrentStatuses';\r\nimport { AuthService } from './service/auth.service';\r\nimport { MediaLayoutService } from './service/media.layout.service';\r\nimport { SessionService } from './service/session.service';\r\nimport { SharedService } from './service/shared.service';\r\nimport { ConfirmationBox } from './shared/components/confirmation-box/confirmation-box.model';\r\nimport { ConfirmationBoxService } from './shared/components/confirmation-box/confirmation-box.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\nimport { CustomTranslocoService } from './service/transloco.service';\r\nimport { DetectMerchantRoutingService } from './service/detect-merchant-routing.service';\r\ndeclare const gtm: any;\r\ndeclare const clarity: any;\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n providers: [provideTranslocoScope({ scope: 'appRootPage' })]\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n @HostListener('window:resize', [])\r\n public onResize() {\r\n this.checkScreenSize();\r\n }\r\n public menuClick: EventEmitter = new EventEmitter();\r\n public isUserLoggedin: boolean = false;\r\n public openMenu: boolean = true;\r\n public selectedMenuItem: string = '';\r\n public isMobileDevice: boolean = false;\r\n public showHeader: boolean = false;\r\n public isNewUser: boolean = false;\r\n public isDashboardPage: boolean = true;\r\n private OnlineApplicationMode: typeof OnlineApplicationMode = OnlineApplicationMode;\r\n public configLoaded: boolean = false;\r\n public appConfigPath: string = '/assets/appConfig.json';\r\n private formData: ApplicantFormData;\r\n public currentStatuses: ApplicationCurrentStatuses;\r\n eventSubscription: Subscription;\r\n enTranslationsForApp: any;\r\n\r\n navigationDisabledBymerchantUrl$: Observable;\r\n NavigationEnabled: boolean = false;\r\n\r\n\r\n\r\n constructor(\r\n public detectMerchantRoutingService: DetectMerchantRoutingService,\r\n public breakpointObserver: BreakpointObserver,\r\n public mediaMatcher: MediaMatcher,\r\n private authService: AuthService,\r\n private formDataService: FormDataService,\r\n public router: Router,\r\n private cdr: ChangeDetectorRef,\r\n public P_MediaLayoutService: MediaLayoutService,\r\n public modalService: NgbModal,\r\n private sharedService: SharedService,\r\n private _confirmationBoxService: ConfirmationBoxService,\r\n private _customTranslocoService: CustomTranslocoService,\r\n private sessionService: SessionService) {\r\n this.sharedService.getLoggedInInfo.subscribe(name => { this.ngOnInit(); });\r\n this.sharedService.eventBroadCastPageSize.subscribe(data => { this.onBroadCastPageSizeEvent(data); });\r\n this.router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n let _eventData: any = JSON.stringify(event);\r\n let eventData: any = JSON.parse(_eventData);\r\n\r\n this.formData = this.formDataService.getFormData();\r\n let currentRoute = this.router.url.slice(1);\r\n let browserBackRoute = event.url;\r\n let isBroserBack = (eventData.navigationTrigger !== undefined && eventData.navigationTrigger == \"popstate\") ? true : false;\r\n if (isBroserBack) {\r\n if (!(this.sessionService.getFlagForSiplifiedUrl(\"simplified\"))) {\r\n if (currentRoute.toLowerCase() == 'existingapplications') {\r\n var vm = this;\r\n\r\n let alertTransalation = this.enTranslationsForApp?.alertText;\r\n let warningLine1 = this.enTranslationsForApp?.browserBackLine1Text;\r\n let warningLine2 = this.enTranslationsForApp?.browserBackLine2Text;\r\n let okBtn = this.enTranslationsForApp?.okBtn;\r\n var confirmBox = new ConfirmationBox(alertTransalation, warningLine1 + '
' + warningLine2, true, false, false, false, okBtn, '', '', '');\r\n this._confirmationBoxService.Open(confirmBox, \"md\").then(function (result) {\r\n let isUserLoggedin = JSON.parse(sessionStorage.getItem(\"Authenticate\") || 'false') as boolean;\r\n if (isUserLoggedin) {\r\n vm.formDataService.clearFormData();\r\n vm.formDataService.reSetApplicationSource();\r\n vm.router.navigate(['existingapplications']);\r\n }\r\n else {\r\n vm.login();\r\n }\r\n });\r\n }\r\n else if (currentRoute.toLowerCase() == 'lenderquestion/cf-bank') {\r\n //Note: Just a flag, once the plaid verification done, do not call it again\r\n this.formDataService.savePlaidLinkVerification(false);\r\n this.modalService.dismissAll();\r\n }\r\n else {\r\n let applicationId = (this.formData.Applications.ApplicationID == null || this.formData.Applications.ApplicationID == undefined) ? 0 : this.formData.Applications.ApplicationID;\r\n this.sharedService.GetCurrentStatusesByApplicationId(applicationId)\r\n .subscribe((data => {\r\n this.currentStatuses = (data.Result !== null && data.Result !== undefined) ? data.Result : new ApplicationCurrentStatuses;\r\n if (this.currentStatuses.isApplicationDecisionNotAvailable == false && currentRoute.toLowerCase() == 'processcomplete') {\r\n var vm = this;\r\n let alertTransalation = this.enTranslationsForApp?.alertText;\r\n let warningLine1 = this.enTranslationsForApp?.browserBackLine1Text;\r\n let warningLine2 = this.enTranslationsForApp?.browserBackLine2Text;\r\n let okBtn = this.enTranslationsForApp?.okBtn;\r\n var confirmBox = new ConfirmationBox(alertTransalation, warningLine1 + '
' + warningLine2, true, false, false, false, okBtn, '', '', '');\r\n this._confirmationBoxService.Open(confirmBox, \"md\").then(function (result) {\r\n let isUserLoggedin = JSON.parse(sessionStorage.getItem(\"Authenticate\") || 'false') as boolean;\r\n if (isUserLoggedin) {\r\n vm.formDataService.clearFormData();\r\n vm.formDataService.reSetApplicationSource();\r\n vm.router.navigate(['existingapplications']);\r\n }\r\n else {\r\n vm.login();\r\n }\r\n });\r\n }\r\n }),\r\n (error => {\r\n console.log(error);\r\n }));\r\n }\r\n }\r\n else {\r\n //need to remove this comment if browserback message required\r\n //if (currentRoute.toLowerCase() == 'simplifiedui/lender-selection' || currentRoute.toLowerCase() == 'simplifiedui/address') {\r\n // var vm = this;\r\n // vm.sessionService.setFlagForSiplifiedUrl(\"simplified\", false);\r\n // vm.detectMerchantRoutingService.setNavigationDisabled(false);\r\n // let alertTransalation = this.enTranslationsForApp?.alertText;\r\n // let warningLine1 = this.enTranslationsForApp?.browserBackLine1Text;\r\n // let warningLine2 = this.enTranslationsForApp?.browserBackLine2Text;\r\n // let okBtn = this.enTranslationsForApp?.okBtn;\r\n // var confirmBox = new ConfirmationBox(alertTransalation, warningLine1 + '
' + warningLine2, true, false, false, false, okBtn, '', '', '');\r\n // this._confirmationBoxService.Open(confirmBox, \"md\").then(function (result) {\r\n // let isUserLoggedin = JSON.parse(sessionStorage.getItem(\"Authenticate\") || 'false') as boolean;\r\n // if (isUserLoggedin) {\r\n // vm.formDataService.clearFormData();\r\n // vm.formDataService.reSetApplicationSource();\r\n // vm.router.navigate(['existingapplications']);\r\n // }\r\n // else {\r\n // vm.login();\r\n // }\r\n // });\r\n //}\r\n if (browserBackRoute.toLowerCase() == '/existingapplications')\r\n {\r\n this.sessionService.setFlagForSiplifiedUrl(\"simplified\", false);\r\n this.detectMerchantRoutingService.setNavigationDisabled(false);\r\n }\r\n }\r\n }\r\n }\r\n if (event instanceof NavigationEnd) {\r\n if (environment.googleTagsEnabled) {\r\n gtm.push({\r\n 'event': 'page',\r\n 'pageName': event.urlAfterRedirects\r\n });\r\n }\r\n }\r\n });\r\n // Subscribe to language change event\r\n this.sharedService.languageChange.subscribe((newLanguage) => {\r\n this.updateTranslations(newLanguage);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.initializeTranslations();\r\n this.navigationDisabledBymerchantUrl$ = this.detectMerchantRoutingService.navigationDisabledBymerchantUrl$;\r\n this.navigationDisabledBymerchantUrl$.subscribe(value => {\r\n if (this.sessionService.getFlagForSiplifiedUrl(\"simplified\")) {\r\n this.NavigationEnabled = this.sessionService.getFlagForSiplifiedUrl(\"simplified\");\r\n } else {\r\n this.NavigationEnabled = value;\r\n }\r\n\r\n\r\n console.log(\"value detect :\", value);\r\n this.cdr.detectChanges();\r\n });\r\n\r\n this.loadRuntimeDependencies();\r\n\r\n //-------scroll to top on route change start--------//\r\n this.router.events.subscribe((evt) => {\r\n if (!(evt instanceof NavigationEnd)) {\r\n return;\r\n }\r\n window.scrollTo(0, 0)\r\n });\r\n }\r\n private loadRuntimeDependencies() {\r\n this.sharedService.getData(this.appConfigPath)\r\n .subscribe((config: JSON) => {\r\n this.overrideStaticConfigurations(config);\r\n this.configLoaded = true;\r\n this.loadData();\r\n });\r\n\r\n this.sharedService.getLookUpList(null);\r\n this.sharedService.getStatusData();\r\n }\r\n private loadData() {\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n //this.isNewUser = this.formDataService.getApplicationMode() === this.OnlineApplicationMode.ONLINE_FRESH_APPLICATION;\r\n this.router.events.pipe(filter(r => r instanceof NavigationEnd)).subscribe(r => {\r\n let route = (r as NavigationEnd).url.slice(1);\r\n this.isDashboardPage = route === 'existingapplications';\r\n this.openMenu = route === 'existingapplications';\r\n if (this.sessionService.getSessionRoleID(\"RoleID\") == 16 || this.sessionService.getSessionRoleID(\"RoleID\") == 17) {\r\n if (this.isMobileDevice) {\r\n this.selectedMenuItem = route === 'callcenterdashboard' ? \"\" : \"Call Center Dashboard\";\r\n } else {\r\n this.selectedMenuItem = route === 'callcenterdashboard' ? \"Call Center Dashboard\" : \"Call Center Dashboard\";\r\n }\r\n }\r\n else {\r\n let newApplicationMenu = this.enTranslationsForApp?.newApplicationMenu;\r\n if (this.isMobileDevice) {\r\n this.selectedMenuItem = route === 'existingapplications' ? \"\" : newApplicationMenu;\r\n } else {\r\n let existingApplicationMenu = this.enTranslationsForApp?.existingApplicationMenu;\r\n this.selectedMenuItem = route === 'existingapplications' ? existingApplicationMenu : newApplicationMenu;\r\n }\r\n }\r\n this.isNewUser = this.formDataService.getApplicationMode() === this.OnlineApplicationMode.ONLINE_FRESH_APPLICATION;\r\n\r\n if (route !== 'existingapplications')\r\n this.authService.setCurrentUrl(route);\r\n\r\n if (route == 'login' || route == '' || route == 'existingapplications' || route == 'callcenterdashboard')\r\n this.isNewUser = false;\r\n\r\n });\r\n this.showHeader = JSON.parse(sessionStorage.getItem(\"IsFormDataSet\") || 'false') as boolean;\r\n this.isUserLoggedin = JSON.parse(sessionStorage.getItem(\"Authenticate\") || 'false') as boolean;\r\n this.sharedService.changeHeaderStatus.emit(this.isUserLoggedin);\r\n if (this.authService.currentUserValue != null) {\r\n if (this.isUserLoggedin) {\r\n if (this.authService.currentUserValue.RoleID == \"8\" && !this.openMenu) {\r\n this.openMenu = !this.openMenu;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private overrideStaticConfigurations(configObject: any) {\r\n environment.apiUrl = configObject['apiUrl'];\r\n environment.inMaintenance = configObject['inMaintenance'];\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.eventSubscription)\r\n this.eventSubscription.unsubscribe();\r\n }\r\n\r\n public getSelectedMenu(event: any) {\r\n let newApplicationMenu = this.enTranslationsForApp?.newApplicationMenu;\r\n this.selectedMenuItem = event === newApplicationMenu ? newApplicationMenu : event;\r\n }\r\n\r\n public menuChangedHandler(status: boolean) {\r\n this.openMenu = status;\r\n }\r\n\r\n public openNav() {\r\n this.openMenu = !this.openMenu;\r\n this.menuClick.emit(this.openMenu);\r\n }\r\n public checkScreenSize() {\r\n this.isMobileDevice = window.innerWidth <= 600;\r\n }\r\n\r\n public applyOpenMenuDashboardClass(): boolean {\r\n if (this.isMobileDevice) {\r\n return false;\r\n }\r\n else {\r\n return (this.openMenu && this.isDashboardPage);\r\n }\r\n }\r\n // New method to initialize translations\r\n initializeTranslations(): void {\r\n const currentLanguage = this.getPreferredLanguage();\r\n this.loadTranslations(currentLanguage);\r\n }\r\n\r\n // New method to fetch preferred language\r\n getPreferredLanguage(): string {\r\n return this._customTranslocoService.getApplicantPreferredLanguageID();\r\n }\r\n\r\n // New method to load translations for the current language\r\n loadTranslations(language: string): void {\r\n this._customTranslocoService.loadLanguageWiseTranslationSingleJson('appRootPage', language)\r\n .then(() => {\r\n this.enTranslationsForApp = this._customTranslocoService.getLanguageTranslations('appRootPage', language);\r\n this.updateSelectedMenuItem(); // Update menu item after translations are loaded\r\n })\r\n .catch(error => {\r\n console.error('Error loading translations:', error);\r\n });\r\n }\r\n updateSelectedMenuItem(): void {\r\n let route = this.router.url.slice(1);\r\n if (this.sessionService.getSessionRoleID(\"RoleID\") == 16 || this.sessionService.getSessionRoleID(\"RoleID\") == 17) {\r\n if (this.isMobileDevice) {\r\n this.selectedMenuItem = route === 'callcenterdashboard' ? \"\" : \"Call Center Dashboard\";\r\n } else {\r\n this.selectedMenuItem = route === 'callcenterdashboard' ? \"Call Center Dashboard\" : \"Call Center Dashboard\";\r\n }\r\n } else {\r\n let newApplicationMenu = this.enTranslationsForApp?.newApplicationMenu;\r\n if (this.isMobileDevice) {\r\n this.selectedMenuItem = route === 'existingapplications' ? \"\" : newApplicationMenu;\r\n } else {\r\n let existingApplicationMenu = this.enTranslationsForApp?.existingApplicationMenu;\r\n this.selectedMenuItem = route === 'existingapplications' ? existingApplicationMenu : newApplicationMenu;\r\n }\r\n }\r\n }\r\n // New method to update translations when language changes\r\n updateTranslations(newLanguage: string): void {\r\n this.loadTranslations(newLanguage);\r\n }\r\n //#regin *****Auto Login ********\r\n login() {\r\n this.authService.completeAuth()\r\n .subscribe((data) => {\r\n if (data.IsSuccess) {\r\n let _formData = this.formDataService.getFormData();\r\n _formData.IsLoggedIn = JSON.parse(sessionStorage.getItem(\"Authenticate\") || 'false') as boolean;\r\n this.formDataService.setFormData(_formData);\r\n this.sharedService.getLoggedInInfo.emit(true);\r\n this.formDataService.clearFormData();\r\n this.formDataService.reSetApplicationSource();\r\n this.router.navigate(['existingapplications']);\r\n }\r\n else {\r\n console.log('Invalid username or password');\r\n }\r\n },\r\n error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n //#region handle post height and width to iframe\r\n onBroadCastPageSizeEvent(data: any) {\r\n let iframePostMessage = new IFramePostMessage()\r\n iframePostMessage.type = \"tfc-pagesize\";\r\n iframePostMessage.message = null;\r\n iframePostMessage.isSuccess = null;\r\n iframePostMessage.result = {\r\n height: (data == null || data.height == null) ? document.getElementById(\"approot\").offsetHeight : data.height,\r\n width: (data == null || data.width == null) ? document.getElementById(\"approot\").offsetWidth : data.width\r\n };\r\n\r\n let oldPageSize = this.sessionService.getBroadcastedPageSize();\r\n if (oldPageSize != null) {\r\n let oldIframeMessage: IFramePostMessage = oldPageSize as IFramePostMessage;\r\n if ((oldIframeMessage.result.height != iframePostMessage.result.height) || (oldIframeMessage.result.width != iframePostMessage.result.width)) {\r\n this.sessionService.setBroadcastedPageSize(iframePostMessage);\r\n window.parent.postMessage(JSON.stringify(iframePostMessage), \"*\");\r\n console.log(JSON.stringify(iframePostMessage));\r\n }\r\n }\r\n else {\r\n this.sessionService.setBroadcastedPageSize(iframePostMessage);\r\n window.parent.postMessage(JSON.stringify(iframePostMessage), \"*\");\r\n console.log(JSON.stringify(iframePostMessage));\r\n }\r\n //#region Clarity custom tags\r\n let applicationId = (this.formData.Applications.ApplicationID == null || this.formData.Applications.ApplicationID == undefined) ? -1 : this.formData.Applications.ApplicationID;\r\n let applicantEmail = (this.formData.UserName == null || this.formData.UserName == undefined) ? \"N/A\" : this.formData.UserName;\r\n clarity(\"set\", \"ApplicationID\", applicationId.toString());\r\n clarity(\"set\", \"UserEmail\", applicantEmail);\r\n //#region Clarity custom tags\r\n }\r\n\r\n //#endregion handle post height and width to iframe\r\n\r\n //#endregin *****Auto Login ********\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n

{{enTranslationsForApp?.loaderText}}

\r\n
\r\n\r\n\r\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ModalConfigurationComponent } from '../../../entity/modalConfigurationComponent';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\nimport { CustomTranslocoService } from '../../../service/transloco.service';\r\ntype LanguageKey = 'en' | 'es';\r\n\r\n@Component({\r\n selector: 'app-cf-approval-display',\r\n templateUrl: './cf-approval-display.component.html',\r\n styleUrls: ['./cf-approval-display.component.scss'],\r\n providers: [CurrencyPipe] // Provide the CurrencyPipe\r\n})\r\nexport class CFApprovalDisplayComponent implements OnInit {\r\n @Input() modalConfigurationComponent: ModalConfigurationComponent;\r\n public applicationId: number;\r\n public approveAmount: number;\r\n public showInstantApprovalMessage: boolean = false;\r\n applicationLanguageId: LanguageKey;\r\n\r\n pageHeading: string | null;\r\n instantApprovalMessageFalsebeforeAmountlabel: string | null;\r\n instantApprovalMessageFalseafterAmountLabel: string | null;\r\n\r\n instantApprovalMessageTruebeforeAmountlabel: string | null;\r\n instantApprovalMessageTrueafterAmountLabel: string | null;\r\n okButtonClickLabel: string | null;\r\n enTranslations : any;\r\n\r\n translations: Record = {\r\n en: {\r\n title: \"You are approved by Vernance, LLC\",\r\n approvalText: \"Vernance, LLC is pleased to approve you for a spending limit of {{amount}}. Terrace Finance has communicated with the associate/store to submit an invoice, and with you, if any additional information is required. You will receive an e-mail shortly inviting you back to see that offer.\",\r\n instantApprovalText: \"You are approved for your purchase of {{amount}}. Press Okay to continue.\",\r\n okayButton: \"Okay\"\r\n },\r\n es: {\r\n title: \"Estás aprobado por Vernance, LLC\",\r\n approvalText: \"Vernance, LLC se complace en aprobarle un límite de gasto de {{amount}}. Terrace Finance se ha comunicado con el asociado/tienda para enviar una factura y con usted, si se requiere información adicional. En breve recibirás un correo electrónico invitándote a volver a ver esa oferta.\",\r\n instantApprovalText: \"Estás aprobado para tu compra de {{amount}}. Oprime \\\"De acuerdo\\\" para continuar\",\r\n okayButton: \"De acuerdo\"\r\n }\r\n };\r\n\r\n public formattedAmount : string;\r\n translatedTexts: any = {}; \r\n constructor(public activeModal: NgbActiveModal,\r\n private router: Router,\r\n private customTranslocoService: CustomTranslocoService,\r\n private currencyPipe: CurrencyPipe) { }\r\n\r\n ngOnInit(): void {\r\n if (this.modalConfigurationComponent == null) {\r\n return;\r\n }\r\n this.formattedAmount = this.currencyPipe.transform(this.approveAmount, 'USD', 'symbol', '1.2-2') || '';\r\n\r\n this.applicationLanguageId = (this.modalConfigurationComponent.modalData[3] != null) ? this.modalConfigurationComponent.modalData[3].toString() as LanguageKey: this.customTranslocoService.getCurrentLanguage() as LanguageKey;;\r\n\r\n this.applicationId = (this.modalConfigurationComponent.modalData[0] != null) ? Number(this.modalConfigurationComponent.modalData[0]) : null;\r\n this.approveAmount = (this.modalConfigurationComponent.modalData[1] != null) ? Number(this.modalConfigurationComponent.modalData[1]) : 0;\r\n this.formattedAmount = this.currencyPipe.transform(this.approveAmount, 'USD', 'symbol', '1.2-2');\r\n\r\n this.showInstantApprovalMessage = (this.modalConfigurationComponent.modalData[2] != null) ? JSON.parse(this.modalConfigurationComponent.modalData[2]) : false;\r\n\r\n this.loadTranslations();\r\n }\r\n\r\n close() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n // Method to get translated text\r\n loadTranslations() {\r\n this.translatedTexts = {\r\n title: this.translations[this.applicationLanguageId].title,\r\n approvalText: this.translations[this.applicationLanguageId].approvalText.replace('{{amount}}', this.formattedAmount),\r\n instantApprovalText: this.translations[this.applicationLanguageId].instantApprovalText.replace('{{amount}}', this.formattedAmount),\r\n okayButton: this.translations[this.applicationLanguageId].okayButton\r\n };\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ModalConfigurationComponent } from '../../../entity/modalConfigurationComponent';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\n\r\n@Component({\r\n selector: 'app-flex-shopper-approval-display',\r\n templateUrl: './flex-shopper-approval-display.component.html',\r\n styleUrls: ['./flex-shopper-approval-display.component.scss'],\r\n providers: [provideTranslocoScope({scope:'approval-display/flex-shopper-approval-display',alias:'flexShopApprovalDisplay'})]\r\n})\r\nexport class FlexShopperApprovalDisplayComponent implements OnInit {\r\n @Input() modalConfigurationComponent: ModalConfigurationComponent;\r\n public applicationId: number;\r\n public approveAmount: number;\r\n public showInstantApprovalMessage: boolean = false;\r\n\r\n constructor(public activeModal: NgbActiveModal, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n if (this.modalConfigurationComponent == null) {\r\n return;\r\n }\r\n this.applicationId = (this.modalConfigurationComponent.modalData[0] != null) ? Number(this.modalConfigurationComponent.modalData[0]) : null;\r\n this.approveAmount = (this.modalConfigurationComponent.modalData[1] != null) ? Number(this.modalConfigurationComponent.modalData[1]) : 0;\r\n this.showInstantApprovalMessage = (this.modalConfigurationComponent.modalData[2] != null) ? JSON.parse(this.modalConfigurationComponent.modalData[2]) : false;\r\n }\r\n\r\n close() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{'flexShopApprovalDisplay.displayPage.instantApprovalMessageFalse.beforeAmountlabel'|transloco}} {{approveAmount | currency }}. {{'flexShopApprovalDisplay.displayPage.instantApprovalMessageFalse.afterAmountLabel'|transloco}}\r\n \r\n
\r\n
\r\n \r\n {{'flexShopApprovalDisplay.displayPage.instantApprovalMessageTrue.beforeAmountlabel'|transloco}} {{approveAmount | currency }}. {{'flexShopApprovalDisplay.displayPage.instantApprovalMessageTrue.afterAmountLabel'|transloco}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ModalConfigurationComponent } from '../../../entity/modalConfigurationComponent';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\n\r\n@Component({\r\n selector: 'app-uown-approval-display',\r\n templateUrl: './uown-approval-display.component.html',\r\n styleUrls: ['./uown-approval-display.component.scss'],\r\n providers: [provideTranslocoScope({scope:'approval-display/uown-approval-display',alias:'uownApprovalDisplay'})]\r\n})\r\n\r\nexport class UownApprovalDisplayComponent implements OnInit {\r\n @Input() modalConfigurationComponent: ModalConfigurationComponent;\r\n public applicationId: number;\r\n public approveAmount: number;\r\n public showInstantApprovalMessage: boolean = false;\r\n\r\n constructor(public activeModal: NgbActiveModal, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n if (this.modalConfigurationComponent == null) {\r\n return;\r\n }\r\n this.applicationId = (this.modalConfigurationComponent.modalData[0] != null) ? Number(this.modalConfigurationComponent.modalData[0]) : null;\r\n this.approveAmount = (this.modalConfigurationComponent.modalData[1] != null) ? Number(this.modalConfigurationComponent.modalData[1]) : 0;\r\n this.showInstantApprovalMessage = (this.modalConfigurationComponent.modalData[2] != null) ? JSON.parse(this.modalConfigurationComponent.modalData[2]) : false;\r\n }\r\n\r\n close() {\r\n this.activeModal.dismiss();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{'uownApprovalDisplay.displayPage.instantApprovalMessageFalse.beforeAmountlabel'|transloco}} {{approveAmount | currency }}. {{'uownApprovalDisplay.displayPage.instantApprovalMessageFalse.afterAmountLabel'|transloco}}\r\n \r\n
\r\n
\r\n \r\n {{'uownApprovalDisplay.displayPage.instantApprovalMessageTrue.beforeAmountlabel'|transloco}} {{approveAmount | currency }}. {{'uownApprovalDisplay.displayPage.instantApprovalMessageTrue.afterAmountLabel'|transloco}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import {\r\n\tDirective,\r\n\tHostListener,\r\n\tInput,\r\n\tOptional\r\n} from \"@angular/core\";\r\nimport { NgControl } from \"@angular/forms\";\r\n\r\n@Directive({\r\n\tselector: \".alphabetsWithDash\"\r\n})\r\nexport class MaskDirective {\r\n\tnotApplied: boolean = false;\r\n\tprivate _oldvalue: string = \"\";\r\n\tprivate regExpr: any = new RegExp(/^[A-Z|a-z|0-9]+$/);\r\n\t@Input()\r\n\tset mask(value: any) {\r\n\t\tif (value == \"*\") this.notApplied = true;\r\n\t\telse this.regExpr = new RegExp(value);\r\n\t}\r\n\r\n\tconstructor(@Optional() private control: NgControl) { }\r\n\t@HostListener(\"input\", [\"$event\"])\r\n\tchange($event: any) {\r\n\t\tif (this.notApplied) return;\r\n\t\tlet item = $event.target;\r\n\t\tlet value = item.value;\r\n\t\tlet pos = item.selectionStart;\r\n\t\tlet matchvalue = value;\r\n\t\tlet noMatch: boolean = value && !this.regExpr.test(matchvalue);\r\n\t\tif (noMatch) {\r\n\t\t\titem.selectionStart = item.selectionEnd = pos - 1;\r\n\t\t\tif (item.value.length < this._oldvalue.length && pos == 0) pos = 2;\r\n\t\t\tif (this.control)\r\n\t\t\t\tthis.control.control.setValue(this._oldvalue, { emit: false });\r\n\r\n\t\t\titem.value = this._oldvalue;\r\n\t\t\titem.selectionStart = item.selectionEnd = pos - 1;\r\n\t\t} else this._oldvalue = value;\r\n\t}\r\n}\r\n","import { Directive, forwardRef, Attribute } from '@angular/core';\r\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => EqualValidator), multi: true }\r\n ]\r\n})\r\n\r\nexport class EqualValidator implements Validator {\r\n constructor(@Attribute('validateEqual') public validateEqual: string,\r\n @Attribute('reverse') public reverse: string) {\r\n\r\n }\r\n\r\n private get isReverse() {\r\n if (!this.reverse) return false;\r\n return this.reverse === 'true' ? true : false;\r\n }\r\n\r\n validate(c: AbstractControl): { [key: string]: any } {\r\n // self value\r\n let v = c.value;\r\n\r\n // control vlaue\r\n let e = c.root.get(this.validateEqual);\r\n\r\n // value not equal\r\n if (e && v !== e.value && !this.isReverse) {\r\n return {\r\n validateEqual: false\r\n }\r\n }\r\n\r\n // value equal and reverse\r\n if (e && v === e.value && this.isReverse) {\r\n if (e.errors) {\r\n delete e.errors['validateEqual'];\r\n if (!Object.keys(e.errors).length) e.setErrors(null);\r\n }\r\n }\r\n\r\n // value not equal and reverse\r\n if (e && v !== e.value && this.isReverse) {\r\n e.setErrors({\r\n validateEqual: false\r\n })\r\n }\r\n\r\n return {'': null};\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { LoginComponent } from '../../login/login.component';\r\nimport { OtpComponent } from '../../login/otp/otp.component';\r\nimport { RegisterComponent } from '../../register/register/register.component';\r\n\r\nconst routes: Routes = [\r\n { path: 'login', component: LoginComponent },\r\n { path: 'register', component: RegisterComponent },\r\n { path: 'otp', component: OtpComponent },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class HomeRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HomeRoutingModule } from './home-routing.module';\r\nimport { HomeComponent } from '../home.component';\r\nimport { LoginComponent } from '../../login/login.component';\r\nimport { RegisterComponent } from '../../register/register/register.component';\r\nimport { OtpComponent } from '../../login/otp/otp.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n //HomeComponent,\r\n //LoginComponent,\r\n //RegisterComponent,\r\n //OtpComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n HomeRoutingModule\r\n ]\r\n})\r\nexport class HomeModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslocoService } from '@jsverse/transloco';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GlobalSuccessHandlerService {\r\n\r\n constructor(private toastrService: ToastrService,\r\n private translocoService: TranslocoService,\r\n private customTranslocoService:CustomTranslocoService\r\n ) { }\r\n\r\n successHandle(messageKey:any){\r\n let scope = \"simplifiedui/translation-api-response\";\r\n let language = this.translocoService.getActiveLang();\r\n var translations = this.customTranslocoService.getLanguageTranslations(scope,language);\r\n console.log(\"success message \",translations);\r\n if(!translations || !translations?.responseMessage){\r\n this.loadGloabalAPIResponse(scope,language);\r\n setTimeout(() => {\r\n translations = this.customTranslocoService.getLanguageTranslations(scope,language);\r\n this.toastrService.success(translations?.responseMessage[messageKey]);\r\n }, 1000);\r\n }\r\n else{\r\n this.toastrService.success(translations?.responseMessage[messageKey]);\r\n }\r\n}\r\n\r\ninfoHandle(messageKey:any){\r\n let scope = \"simplifiedui/translation-api-response\";\r\n let language = this.translocoService.getActiveLang();\r\n var translations = this.customTranslocoService.getLanguageTranslations(scope,language);\r\n console.log(\"success message \",translations);\r\n if(!translations || !translations?.responseMessage){\r\n this.loadGloabalAPIResponse(scope,language);\r\n setTimeout(() => {\r\n translations = this.customTranslocoService.getLanguageTranslations(scope,language);\r\n this.toastrService.info(translations?.responseMessage[messageKey]);\r\n }, 1000);\r\n }\r\n else{\r\n this.toastrService.info(translations?.responseMessage[messageKey]);\r\n }\r\n}\r\n\r\n errorHandle(messageKey:any){\r\n let scope = \"simplifiedui/translation-api-response\";\r\n let language = this.translocoService.getActiveLang();\r\n var translations = this.customTranslocoService.getLanguageTranslations(scope,language);\r\n console.log(\"success message \",translations);\r\n if(translations == null || translations?.responseMessage == null){\r\n this.loadGloabalAPIResponse(scope,language);\r\n setTimeout(() => {\r\n translations = this.customTranslocoService.getLanguageTranslations(scope,language);\r\n this.toastrService.error(translations?.responseMessage[messageKey]);\r\n \r\n }, 1000);\r\n }\r\n else{\r\n this.toastrService.error(translations?.responseMessage[messageKey]);\r\n }\r\n }\r\n\r\n loadGloabalAPIResponse(scope:any,language:any){\r\n\t\tthis.customTranslocoService.loadLanguageWiseTranslationSingleJson(scope,language);\r\n\t}\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpHeaders, HttpClient, HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpResponse } from '@angular/common/http';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { AuthService } from './auth.service';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { isNullOrUndefined } from 'is-what';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { TranslocoService } from '@jsverse/transloco';\r\nimport { Router } from '@angular/router';\r\nimport { GlobalSuccessHandlerService } from '../simplified.UI/services/global-success-handler.service';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json'\r\n })\r\n};\r\n\r\nconst excludedUrls = [\r\n '/simplifiedui/email',\r\n '/simplifiedui/otp',\r\n '/simplifiedui/password',\r\n 'simplifiedui/register-complete',\r\n 'simplifiedui/register'\r\n];\r\n\r\n@Injectable()\r\nexport class ErrorHandler implements HttpInterceptor {\r\n private refreshTokenInProgress = false;\r\n private requestCount = 0;\r\n private refreshTokenSubject: BehaviorSubject = new BehaviorSubject(\r\n null\r\n );\r\n constructor(private spinner: NgxSpinnerService,\r\n private authenticationService: AuthService,\r\n private http: HttpClient,\r\n private toastrService: ToastrService,\r\n private translocoService: TranslocoService,\r\n private router:Router,\r\n private simplifiedSuccessHandlerService:GlobalSuccessHandlerService) { }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n this.requestCount++;\r\n if (!req.headers.get(\"skip\")) {\r\n this.spinner.show();\r\n }\r\n return next.handle(req)\r\n .pipe(tap((event: HttpEvent) => {\r\n let param: any = req.body;\r\n this.requestCount--;\r\n if (event instanceof HttpResponse && event.status === 200) {\r\n if (!req.headers.get(\"skip\")) {\r\n if (this.requestCount <= 0) {\r\n this.spinner.hide();\r\n }\r\n }\r\n var result = event.body;\r\n //simplified ui\r\n if (this.router.url.includes('/simplifiedui/') && req.method === 'POST') {\r\n if (event instanceof HttpResponse && event.status === 200) {\r\n // if (!excludedUrls.some(url => this.router.url.includes(url))) {\r\n // this.simplifiedSuccessHandlerService.successHandle('success');\r\n // }\r\n\r\n if(this.router.url.includes('/simplifiedui/email') && result?.Result==\"-2\"){\r\n this.simplifiedSuccessHandlerService.infoHandle('invaliduser');\r\n }\r\n\r\n // if(this.router.url.includes('/simplifiedui/password')){\r\n // this.simplifiedSuccessHandlerService.successHandle('emailSend');\r\n // }\r\n\r\n //after registration success send email/sms\r\n // if(this.router.url == '/simplifiedui/register' && result?.Instance == \"/api/Applicant/register\"){\r\n // this.simplifiedSuccessHandlerService.successHandle('success');\r\n // this.simplifiedSuccessHandlerService.successHandle('emailSend');\r\n // }\r\n\r\n //on registration-complete page resend otp is success then send email/sms\r\n // if(this.router.url == '/simplifiedui/register-complete' && result?.Instance == \"/api/Auth/reSendOtp\"){\r\n // this.simplifiedSuccessHandlerService.successHandle('emailSend');\r\n // }\r\n\r\n //on otp page resend otp is success then send email/sms\r\n // if(this.router.url == '/simplifiedui/otp' && result.Instance == \"/api/Auth/reSendOtp\"){\r\n // this.simplifiedSuccessHandlerService.successHandle('emailSend');\r\n // }\r\n\r\n\r\n }\r\n }\r\n else{\r\n //online application ui\r\n var responceLanguageCode = (result != undefined || result != null) ? result.LanguageMessageCode : null;\r\n if (result === true) return;\r\n if (((!isNullOrUndefined(result.Message)) && (result.Message != \"\")) ||\r\n (!isNullOrUndefined(responceLanguageCode)) && (responceLanguageCode)) {\r\n if (result.IsSuccess) {\r\n let successmessage: string = null;\r\n let scopelanguageKey: string | null = this.getScopeLanguageKey(param);\r\n if (scopelanguageKey && responceLanguageCode) {\r\n successmessage = this.translocoService.translate(`${scopelanguageKey}.successMessage.${responceLanguageCode}`);\r\n }\r\n else {\r\n scopelanguageKey = req.params.get(\"LanguageKey\");\r\n successmessage = (scopelanguageKey && responceLanguageCode) ? this.translocoService.translate(`${scopelanguageKey}.successMessage.${responceLanguageCode}`) : null;\r\n }\r\n successmessage = successmessage || result.Message;\r\n this.toastrService.success(successmessage);\r\n }\r\n else {\r\n let errormessage: string = null;\r\n let scopelanguageKey: string | null = this.getScopeLanguageKey(param);\r\n if (scopelanguageKey && responceLanguageCode) {\r\n errormessage = this.translocoService.translate(`${scopelanguageKey}.errorMessage.${responceLanguageCode}`);\r\n } else {\r\n scopelanguageKey = req.params.get(\"LanguageKey\");\r\n errormessage = (scopelanguageKey && responceLanguageCode) ? this.translocoService.translate(`${scopelanguageKey}.errorMessage.${responceLanguageCode}`) : result.Message;\r\n }\r\n errormessage = errormessage || result.Message;\r\n this.toastrService.error(errormessage);\r\n }\r\n }\r\n } \r\n \r\n }\r\n }))\r\n .pipe(\r\n catchError((error, caught) => {\r\n let errormessage: string = null;\r\n let param: any = req.body;\r\n this.spinner.hide();\r\n if (error.status === 403) {\r\n var result = error.error;\r\n if ((result != null || result != undefined) && (typeof result === 'object')) {\r\n let responceLanguageCode = result.LanguageMessageCode;\r\n let errormessage: any = null;\r\n let scopelanguageKey: string | null = this.getScopeLanguageKey(param);\r\n if (scopelanguageKey) {\r\n errormessage = this.translocoService.translate(`${scopelanguageKey}.errorMessage.${responceLanguageCode}`);\r\n }\r\n else {\r\n scopelanguageKey = req.params.get(\"LanguageKey\");\r\n errormessage = (scopelanguageKey && responceLanguageCode) ? this.translocoService.translate(`${scopelanguageKey}.errorMessage.${responceLanguageCode}`) : error.error;\r\n }\r\n this.toastrService.error(errormessage);\r\n }\r\n }\r\n throw error;\r\n })) as any;\r\n }\r\n\r\n\r\n private getScopeLanguageKey(param: any): string | null {\r\n if (param != null) {\r\n if (param instanceof FormData) {\r\n // Retrieve LanguageKey from FormData\r\n return param.get('LanguageKey') as string;\r\n }\r\n if (Array.isArray(param) && param.length > 0) {\r\n return param[0].LanguageKey;\r\n }\r\n else if (typeof param === 'string') {\r\n const parsedParam = JSON.parse(param);\r\n if (Array.isArray(parsedParam) && parsedParam.length > 0) {\r\n return parsedParam[0].LanguageKey;\r\n }\r\n else if (typeof parsedParam === 'object' && parsedParam.LanguageKey) {\r\n return parsedParam.LanguageKey;\r\n }\r\n }\r\n else if (typeof param === 'object' && param.LanguageKey) {\r\n return param.LanguageKey;\r\n }\r\n else {\r\n console.log(typeof param);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { environment } from '../../environments/environment';\r\nimport { Meta } from '@angular/platform-browser';\r\n\r\ndeclare var gtag: any;\r\ndeclare var window: any;\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FacebookDomainVerificationService {\r\n\r\n constructor(@Inject(DOCUMENT) document: any, private meta: Meta) {\r\n if (environment.facebookDomainVerificationId) {\r\n this.loadFacebookDomainVerification();\r\n }\r\n }\r\n\r\n loadFacebookDomainVerification() {\r\n // injecting GA main script asynchronously\r\n this.meta.updateTag({ name: 'facebook-domain-verification', content: '' + environment.facebookDomainVerificationId + '' });\r\n }\r\n\r\n startTracking() {\r\n // activate router navigation tracking\r\n if (environment.facebookDomainVerificationId) {\r\n //this.angulartics.startTracking();\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { environment } from '../../environments/environment';\r\n\r\ndeclare var gtag: any;\r\ndeclare var window: any;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FacebookPixelsService {\r\n constructor(\r\n @Inject(DOCUMENT) document: any\r\n ) {\r\n if (environment.facebookPixelId) {\r\n this.loadFacebookPixels();\r\n }\r\n }\r\n\r\n loadFacebookPixels() {\r\n // injecting GA main script asynchronously\r\n const script = document.createElement('script');\r\n script.innerHTML = '!function(f,b,e,v,n,t,s) ' +\r\n '{if(f.fbq)return;n=f.fbq=function(){n.callMethod?' +\r\n 'n.callMethod.apply(n,arguments):n.queue.push(arguments)};' +\r\n 'if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=\\'2.0\\';'+\r\n 'n.queue=[];t=b.createElement(e);t.async=!0;' +\r\n 't.src=v;s=b.getElementsByTagName(e)[0];' +\r\n 's.parentNode.insertBefore(t,s)}(window, document,\\'script\\',' +\r\n '\\'https://connect.facebook.net/en_US/fbevents.js\\');' +\r\n 'fbq(\\'init\\', \\'' + environment.facebookPixelId + '\\');' +\r\n 'fbq(\\'track\\', \\'PageView\\');';\r\n document.head.appendChild(script);\r\n\r\n const nonScript = document.createElement('noscript');\r\n nonScript.innerHTML = '';\r\n document.head.appendChild(nonScript);\r\n }\r\n\r\n startTracking() {\r\n // activate router navigation tracking\r\n if (environment.facebookPixelId) {\r\n //this.angulartics.startTracking();\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { environment } from '../../environments/environment';\r\nimport { SessionService } from './session.service';\r\n\r\ndeclare var gtag: any;\r\ndeclare var window: any;\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GoogleAnalyticsService {\r\n constructor(\r\n @Inject(DOCUMENT) document: any,private sessionService: SessionService\r\n ) {\r\n if (environment.googleAnalyticsId && environment.googleTagsEnabled) {\r\n this.loadGoogleAnalytics();\r\n }\r\n }\r\n public loadGoogleAnalytics() {\r\n if (environment.googleAnalyticsId && environment.googleTagsEnabled) {\r\n // injecting GA main script asynchronously\r\n const ga4script = document.createElement('script');\r\n ga4script.src = 'https://www.googletagmanager.com/gtag/js?id=' + environment.googleAnalytics4;\r\n ga4script.async = true;\r\n document.head.appendChild(ga4script);\r\n\r\n // preparing GA4 API to be usable even before the async script is loaded\r\n const ga4loadingScript = document.createElement('script');\r\n ga4loadingScript.innerHTML = `window.dataLayer = window.dataLayer || [];\r\n function gtag(){dataLayer.push(arguments);}\r\n gtag('js', new Date());\r\n\r\n gtag('config', '` + environment.googleAnalytics4 + `');\r\n gtag('config', '` + environment.googleAnalytics4GlobalId + `');\r\n gtag('config', '` + environment.googleAnalytics4FinanceMyCartId + `');`;\r\n\r\n document.head.appendChild(ga4loadingScript);\r\n\r\n const script = document.createElement('script');\r\n script.innerHTML = '(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({\\'gtm.start\\': ' +\r\n 'new Date().getTime(),event:\\'gtm.js\\'});var f=d.getElementsByTagName(s)[0],' +\r\n 'j=d.createElement(s),dl=l!=\\'dataLayer\\'?\\'&l=\\'+l:\\'\\';j.async=true;j.src=' +\r\n '\\'https://www.googletagmanager.com/gtm.js?id=\\'+i+dl;f.parentNode.insertBefore(j,f);})' +\r\n '(window,document,\\'script\\',\\'gtm\\',\\'' + environment.googleTagId + '\\');';\r\n document.head.appendChild(script);\r\n\r\n const nonScript = document.createElement('noscript');\r\n nonScript.innerHTML = '';\r\n document.body.insertBefore(nonScript, document.body.firstChild);\r\n\r\n let url = new URL(window.location.href);\r\n let identifier = url.searchParams.get('identifier');\r\n\r\n var ids = environment.kingCashMerchantIDs.split(/\\s*,\\s*/);\r\n var isExists = ids.indexOf(identifier) > -1;\r\n if (environment.googleAnalytics4KingCash && environment.kingCashGoogleTagsEnabled && isExists)\r\n {\r\n // preparing GA4 API to be usable even before the async script is loaded\r\n const kingCashloadingScript = document.createElement('script');\r\n kingCashloadingScript.innerHTML = `window.dataLayer = window.dataLayer || [];\r\n function gtag(){dataLayer.push(arguments);}\r\n gtag('js', new Date());\r\n\r\n gtag('config', '` + environment.googleAnalytics4KingCash + `');`;\r\n\r\n document.head.appendChild(kingCashloadingScript);\r\n const KingCashscript = document.createElement('script');\r\n KingCashscript.innerHTML = '(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({\\'gtm.start\\': ' +\r\n 'new Date().getTime(),event:\\'gtm.js\\'});var f=d.getElementsByTagName(s)[0],' +\r\n 'j=d.createElement(s),dl=l!=\\'dataLayer\\'?\\'&l=\\'+l:\\'\\';j.async=true;j.src=' +\r\n '\\'https://www.googletagmanager.com/gtm.js?id=\\'+i+dl;f.parentNode.insertBefore(j,f);})' +\r\n '(window,document,\\'script\\',\\'gtm\\',\\'' + environment.googleGTM4KingCash + '\\');';\r\n document.head.appendChild(KingCashscript);\r\n\r\n const kingCashnonScript = document.createElement('noscript');\r\n kingCashnonScript.innerHTML = '';\r\n document.body.insertBefore(kingCashnonScript, document.body.firstChild);\r\n }\r\n }\r\n }\r\n startTracking() {\r\n // activate router navigation tracking\r\n if (environment.googleAnalyticsId) {\r\n }\r\n }\r\n}\r\n","import { DOCUMENT } from \"@angular/common\";\r\nimport { Inject, Injectable } from \"@angular/core\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HotjarAnalyticsService {\r\n constructor(\r\n @Inject(DOCUMENT) document: any\r\n ) {\r\n console.log(environment.hotjarSiteId);\r\n if (environment.hotjarSiteId && environment.hotJarAnalyticsEnabled) {\r\n this.loadHotjarAnalytics();\r\n }\r\n }\r\n\r\n loadHotjarAnalytics() {\r\n console.log('entro');\r\n const script = document.createElement('script');\r\n script.innerHTML = `(function(h,o,t,j,a,r){\r\n h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\r\n h._hjSettings={hjid:` + environment.hotjarSiteId + `,hjsv:6};\r\n a=o.getElementsByTagName('head')[0];\r\n r=o.createElement('script');r.async=1;\r\n r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\r\n a.appendChild(r);\r\n })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');`;\r\n document.head.appendChild(script);\r\n }\r\n\r\n startTracking() {\r\n // activate router navigation tracking\r\n if (environment.hotjarSiteId) {\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { tap, catchError, switchMap } from 'rxjs/operators';\r\nimport { AuthService } from './auth.service';\r\nimport { SocureService } from './socure.service';\r\nimport { isNullOrUndefined } from 'is-what';\r\n\r\n@Injectable()\r\nexport class JwtHandler implements HttpInterceptor {\r\n refreshTokenInProgress = false;\r\n\r\n tokenRefreshedSource = new Subject();\r\n tokenRefreshed$ = this.tokenRefreshedSource.asObservable();\r\n\r\n constructor(private authenticationService: AuthService, private socureService: SocureService) { }\r\n\r\n addAuthHeader(request: any) {\r\n var currentUser = this.authenticationService.currentUserValue;\r\n var dSessionId = this.socureService.getDeviceSessionId();\r\n var applicationSource = this.authenticationService.applicationSource;\r\n if (currentUser && currentUser.Token) {\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${currentUser.Token}`\r\n }\r\n });\r\n request = request.clone({ headers: request.headers.set('Name', currentUser.UserName) });\r\n }\r\n\r\n if (!isNullOrUndefined(dSessionId))\r\n request = request.clone({ headers: request.headers.set('DsessionId', dSessionId) });\r\n if (!isNullOrUndefined(applicationSource)) \r\n request = request.clone({ headers: request.headers.set('SourceId', applicationSource.SourceId) });\r\n if (!isNullOrUndefined(applicationSource))\r\n request = request.clone({ headers: request.headers.set('SourceTypeId', applicationSource.SourceTypeId) });\r\n if (!isNullOrUndefined(applicationSource)) {\r\n if (applicationSource.LeadId != null)\r\n request = request.clone({ headers: request.headers.set('LeadId', applicationSource.LeadId == null ? 0 : applicationSource.LeadId) });\r\n }\r\n return request;\r\n }\r\n refreshToken() {\r\n if (this.refreshTokenInProgress) {\r\n return new Observable(observer => {\r\n this.tokenRefreshed$.subscribe(() => {\r\n observer.next();\r\n observer.complete();\r\n });\r\n });\r\n } else {\r\n this.refreshTokenInProgress = true;\r\n\r\n return this.authenticationService.refresh().pipe(\r\n tap(() => {\r\n this.refreshTokenInProgress = false;\r\n this.tokenRefreshedSource.next(0);\r\n }));\r\n }\r\n }\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n request = this.addAuthHeader(request);\r\n return next.handle(this.addAuthHeader(request)).pipe(\r\n catchError((error, caught) => {\r\n if (!this.isAuthError(error)) {\r\n throw error;\r\n }\r\n return this.authenticationService.refresh().pipe(switchMap((resp) => {\r\n if (!resp) {\r\n throw error;\r\n }\r\n return next.handle(this.addAuthHeader(request));\r\n }));\r\n })) as any;\r\n }\r\n private isAuthError(error: any): boolean {\r\n return error instanceof HttpErrorResponse && error.status === 401;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ModalConfigurationComponent } from '../../../entity/modalConfigurationComponent';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\n\r\n@Component({\r\n selector: 'app-lst-invoice-required-display',\r\n templateUrl: './lst-invoice-required-display.component.html',\r\n styleUrls: ['./lst-invoice-required-display.component.scss'],\r\n providers: [provideTranslocoScope({scope:'approval-display/lst-invoice-required-display',alias:'lstInvoiceRequiredDisplay'})]\r\n})\r\nexport class LSTInvoiceRequiredDisplayComponent implements OnInit {\r\n @Input() modalConfigurationComponent: ModalConfigurationComponent;\r\n public applicationId: number;\r\n public approveAmount: number;\r\n\r\n constructor(public activeModal: NgbActiveModal, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n if (this.modalConfigurationComponent == null) {\r\n return;\r\n }\r\n this.applicationId = (this.modalConfigurationComponent.modalData[0] != null) ? Number(this.modalConfigurationComponent.modalData[0]) : null;\r\n // this.approveAmount = (this.modalConfigurationComponent.modalData[1] != null) ? Number(this.modalConfigurationComponent.modalData[1]) : 0;\r\n }\r\n\r\n close() {\r\n this.activeModal.dismiss();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{'lstInvoiceRequiredDisplay.displayPage.lstApprovalLabel'|transloco}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { NgModule } from \"@angular/core\";\r\nimport { RouterModule, Routes } from \"@angular/router\";\r\nimport { AuthGuard } from \"../service/auth.guard\";\r\nimport { CallCenterDashboard } from \"./call-center-dashboard/call-center-dashboard.component\";\r\n\r\nconst routes: Routes = [\r\n { path: 'callcenterdashboard', component: CallCenterDashboard, canActivate: [AuthGuard] }\r\n];\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n providers: [AuthGuard]\r\n})\r\nexport class CallCenterRoutingModule {\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\n// import { HttpClientModule } from '@angular/common/http';\r\n// TO DO: HttpClientModule module automatically got replaced by provideHttpClient and withInterceptorsFromDi functions during Angular migration. Please validate the corresponding functionalities thoroughly.\r\nimport { provideHttpClient, withInterceptorsFromDi } from \"@angular/common/http\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { LazyLoadImageModule } from \"ng-lazyload-image\";\r\nimport { DropdownModule } from \"primeng/dropdown\";\r\nimport { PrimeModule } from \"../common/module/prime.module\";\r\nimport { DirectiveModule } from \"../directive/directive.module\";\r\nimport { CallCenterDashboard } from \"./call-center-dashboard/call-center-dashboard.component\";\r\nimport { CallCenterRoutingModule } from \"./call-center-routing.module\";\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { BrowserModule } from \"@angular/platform-browser\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { TranslocoRootModule } from \"../transloco-root.module\";\r\n\r\n@NgModule({\r\n declarations: [\r\n CallCenterDashboard\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n CallCenterRoutingModule,\r\n PrimeModule,\r\n FormsModule,\r\n LazyLoadImageModule,\r\n // HttpClientModule,\r\n DirectiveModule,\r\n DropdownModule,\r\n AutoCompleteModule,\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n TooltipModule,\r\n TranslocoRootModule\r\n\r\n ],\r\n providers: [provideHttpClient(withInterceptorsFromDi())]\r\n})\r\nexport class CallCenterModule {\r\n}\r\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\n/**\n * Divider is used to separate contents.\n * @group Components\n */\nconst _c0 = [\"*\"];\nclass Divider {\n /**\n * Inline style of the component.\n * @group Props\n */\n style;\n /**\n * Style class of the component.\n * @group Props\n */\n styleClass;\n /**\n * Specifies the orientation.\n * @group Props\n */\n layout = 'horizontal';\n /**\n * Border style type.\n * @group Props\n */\n type = 'solid';\n /**\n * Alignment of the content.\n * @group Props\n */\n align;\n containerClass() {\n return {\n 'p-divider p-component': true,\n 'p-divider-horizontal': this.layout === 'horizontal',\n 'p-divider-vertical': this.layout === 'vertical',\n 'p-divider-solid': this.type === 'solid',\n 'p-divider-dashed': this.type === 'dashed',\n 'p-divider-dotted': this.type === 'dotted',\n 'p-divider-left': this.layout === 'horizontal' && (!this.align || this.align === 'left'),\n 'p-divider-center': this.layout === 'horizontal' && this.align === 'center' || this.layout === 'vertical' && (!this.align || this.align === 'center'),\n 'p-divider-right': this.layout === 'horizontal' && this.align === 'right',\n 'p-divider-top': this.layout === 'vertical' && this.align === 'top',\n 'p-divider-bottom': this.layout === 'vertical' && this.align === 'bottom'\n };\n }\n static ɵfac = function Divider_Factory(t) {\n return new (t || Divider)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: Divider,\n selectors: [[\"p-divider\"]],\n hostAttrs: [1, \"p-element\"],\n inputs: {\n style: \"style\",\n styleClass: \"styleClass\",\n layout: \"layout\",\n type: \"type\",\n align: \"align\"\n },\n ngContentSelectors: _c0,\n decls: 3,\n vars: 6,\n consts: [[\"role\", \"separator\", 3, \"ngClass\", \"ngStyle\"], [1, \"p-divider-content\"]],\n template: function Divider_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"div\", 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.styleClass);\n i0.ɵɵproperty(\"ngClass\", ctx.containerClass())(\"ngStyle\", ctx.style);\n i0.ɵɵattribute(\"aria-orientation\", ctx.layout)(\"data-pc-name\", \"divider\");\n }\n },\n dependencies: [i1.NgClass, i1.NgStyle],\n styles: [\"@layer primeng{.p-divider-horizontal{display:flex;width:100%;position:relative;align-items:center}.p-divider-horizontal:before{position:absolute;display:block;top:50%;left:0;width:100%;content:\\\"\\\"}.p-divider-horizontal.p-divider-left{justify-content:flex-start}.p-divider-horizontal.p-divider-right{justify-content:flex-end}.p-divider-horizontal.p-divider-center{justify-content:center}.p-divider-content{z-index:1}.p-divider-vertical{min-height:100%;margin:0 1rem;display:flex;position:relative;justify-content:center}.p-divider-vertical:before{position:absolute;display:block;top:0;left:50%;height:100%;content:\\\"\\\"}.p-divider-vertical.p-divider-top{align-items:flex-start}.p-divider-vertical.p-divider-center{align-items:center}.p-divider-vertical.p-divider-bottom{align-items:flex-end}.p-divider-solid.p-divider-horizontal:before{border-top-style:solid}.p-divider-solid.p-divider-vertical:before{border-left-style:solid}.p-divider-dashed.p-divider-horizontal:before{border-top-style:dashed}.p-divider-dashed.p-divider-vertical:before{border-left-style:dashed}.p-divider-dotted.p-divider-horizontal:before{border-top-style:dotted}.p-divider-dotted.p-divider-vertical:before{border-left-style:dotted}}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Divider, [{\n type: Component,\n args: [{\n selector: 'p-divider',\n template: `\n
\n
\n \n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'p-element'\n },\n styles: [\"@layer primeng{.p-divider-horizontal{display:flex;width:100%;position:relative;align-items:center}.p-divider-horizontal:before{position:absolute;display:block;top:50%;left:0;width:100%;content:\\\"\\\"}.p-divider-horizontal.p-divider-left{justify-content:flex-start}.p-divider-horizontal.p-divider-right{justify-content:flex-end}.p-divider-horizontal.p-divider-center{justify-content:center}.p-divider-content{z-index:1}.p-divider-vertical{min-height:100%;margin:0 1rem;display:flex;position:relative;justify-content:center}.p-divider-vertical:before{position:absolute;display:block;top:0;left:50%;height:100%;content:\\\"\\\"}.p-divider-vertical.p-divider-top{align-items:flex-start}.p-divider-vertical.p-divider-center{align-items:center}.p-divider-vertical.p-divider-bottom{align-items:flex-end}.p-divider-solid.p-divider-horizontal:before{border-top-style:solid}.p-divider-solid.p-divider-vertical:before{border-left-style:solid}.p-divider-dashed.p-divider-horizontal:before{border-top-style:dashed}.p-divider-dashed.p-divider-vertical:before{border-left-style:dashed}.p-divider-dotted.p-divider-horizontal:before{border-top-style:dotted}.p-divider-dotted.p-divider-vertical:before{border-left-style:dotted}}\\n\"]\n }]\n }], null, {\n style: [{\n type: Input\n }],\n styleClass: [{\n type: Input\n }],\n layout: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n align: [{\n type: Input\n }]\n });\n})();\nclass DividerModule {\n static ɵfac = function DividerModule_Factory(t) {\n return new (t || DividerModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: DividerModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DividerModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n exports: [Divider],\n declarations: [Divider]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Divider, DividerModule };\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { DomSanitizer, SafeResourceUrl } from \"@angular/platform-browser\";\r\nimport { NgbActiveModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { ModalConfigurationComponent } from \"../../entity/modalConfigurationComponent\";\r\nimport { TranslocoService, provideTranslocoScope } from \"@jsverse/transloco\";\r\nimport { CustomTranslocoService } from \"../../service/transloco.service\";\r\n\r\n@Component({\r\n selector: 'app-aff-privacy-policy-consent',\r\n templateUrl: './aff-privacy-policy-consent.component.html',\r\n styleUrls: ['./aff-privacy-policy-consent.component.scss'],\r\n providers: [provideTranslocoScope({scope:'affprivacypolicy'})]\r\n})\r\nexport class AFFPrivacyPolicyConsentComponent implements OnInit\r\n{\r\n @Input() modalConfigurationComponent: ModalConfigurationComponent;\r\n public affPrivacyPolicyURL: SafeResourceUrl = null;\r\n public consentTitle: string;\r\n public isAFFPrivacyPolicyURLAvailable: boolean = false;\r\n constructor(public sanitizer: DomSanitizer,\r\n private activeModal: NgbActiveModal,\r\n private customeTranslocoService:CustomTranslocoService\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (this.modalConfigurationComponent != null || this.modalConfigurationComponent != undefined) {\r\n if (this.modalConfigurationComponent.modalData[0] != null) {\r\n let _affprivacypolicyUrl = this.modalConfigurationComponent.modalData[0];\r\n this.affPrivacyPolicyURL = this.sanitizer.bypassSecurityTrustResourceUrl(_affprivacypolicyUrl);\r\n this.isAFFPrivacyPolicyURLAvailable = true;\r\n }\r\n else {\r\n this.isAFFPrivacyPolicyURLAvailable = false;\r\n }\r\n }\r\n }\r\n closePrivacyPolicyConsent() {\r\n this.activeModal.dismiss();\r\n }\r\n}\r\n","\r\n
\r\n

{{'affprivacypolicy.titleCtrl' | transloco}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n {{'affprivacypolicy.ppUrlNotAvailableMsgCtrl.text' | transloco}}\r\n

\r\n
\r\n
\r\n\r\n","import { Component, HostListener, OnInit } from '@angular/core';\r\nimport { MediaLayoutService } from '../../service/media.layout.service';\r\nimport { Router } from '@angular/router';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { HousingTypeList } from '../entity/housing-type';\r\nimport { FormDataService } from '../service/form-data.service';\r\nimport { Zips } from '../../entity/zips';\r\nimport { forkJoin } from 'rxjs';\r\nimport { ApplicantService } from '../service/applicant-service';\r\nimport { ApplicantFormData } from '../models/applicant-form-data';\r\nimport { OnlineApplicationMode } from '../models/online-application-mode';\r\nimport { AddressTypes } from '../entity/enums/address-types';\r\nimport { environment } from 'src/environments/environment';\r\nimport { LeadDetails } from '../../models/lead-details';\r\nimport { AuthService } from '../../service/auth.service';\r\nimport { ApplicationCurrentStatuses } from '../../entity/ApplicationCurrentStatuses';\r\nimport { ConfirmationBoxService } from '../../shared/components/confirmation-box/confirmation-box.service';\r\nimport { LookUp } from '../../entity/lookup';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\nimport { isNullOrUndefined } from 'is-what';\r\ndeclare const fbq: any;\r\ndeclare const gtm: any;\r\ndeclare const nid: any;\r\n@Component({\r\n selector: 'app-address',\r\n templateUrl: './address.component.html',\r\n styleUrls: ['./address.component.scss'],\r\n providers: [provideTranslocoScope({ scope: 'address' })]\r\n})\r\n\r\nexport class AddressComponent implements OnInit {\r\n isExistingApplication: boolean;\r\n\r\n @HostListener('window:resize', [])\r\n public onResize() {\r\n this.checkScreenSize();\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n OnlineApplicationMode: typeof OnlineApplicationMode = OnlineApplicationMode;\r\n public isMobileDevice: boolean = false;\r\n public formData: ApplicantFormData;\r\n public housingTypes = HousingTypeList;\r\n public translatedHousingTypes: any[] = [];\r\n public isAddressInfoAvailable: boolean = false;\r\n public isWrongZipEntered = false;\r\n public isWrongAddressLine1 = false;\r\n public isWrongAddressLine2 = false;\r\n private isExistingUserApplication: boolean;\r\n public city: string = '';\r\n public state: string = '';\r\n public statecity: string = '';\r\n public stateList: Zips[];\r\n private leadDetails: LeadDetails;\r\n\r\n public isInvalid: boolean = false;\r\n public currentStatuses: ApplicationCurrentStatuses;\r\n public citizenshipList: LookUp[] = [];\r\n public translatedCitizenshipList: LookUp[] = [];\r\n public selectedCitizenship: any;\r\n\r\n constructor(\r\n public P_MediaLayoutService: MediaLayoutService,\r\n private router: Router,\r\n private sharedService: SharedService,\r\n private applicantService: ApplicantService,\r\n private _confirmationBoxService: ConfirmationBoxService,\r\n private formDataService: FormDataService,\r\n private authService: AuthService,\r\n private translocoScopeService: CustomTranslocoService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n nid('setLinkedSiteId', 'form_palms436');\r\n this.translatedHousingTypes = this.translocoScopeService.translateOnlyLabel(this.housingTypes, 'address.address.housingTypes', 'Value', 'Name')\r\n this.formData = this.formDataService.getFormData();\r\n this.formData.LeadID = this.formDataService.applicationLeadId ? this.formDataService.applicationLeadId : this.formData.LeadID;\r\n this.stateList = this.formDataService.getSavedStateList();\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n let isNewUser: boolean = this.formDataService.getApplicationMode() === this.OnlineApplicationMode.ONLINE_FRESH_APPLICATION;\r\n let isformDataAddressEmpty: boolean = this.formData.Addresses.Address === null || this.formData.Addresses.Address === '' || this.formData.Addresses.Address === undefined;\r\n this.isAddressInfoAvailable = !isformDataAddressEmpty;\r\n this.isExistingApplication = this.formDataService.getApplicationMode() === this.OnlineApplicationMode.ONLINE_INFLIGHT_APPLICATION;\r\n\r\n if (isformDataAddressEmpty)\r\n this.formData.Addresses.IsOwnHouse = true;\r\n\r\n else {\r\n if (this.formData.Addresses.Zip !== '' &&\r\n this.formData.Addresses.Zip !== undefined &&\r\n this.formData.Addresses.Zip !== null) {\r\n this.loadZipData(this.formData.Addresses.Zip);\r\n }\r\n this.checkValidAddress();\r\n\r\n }\r\n let requestArray = [];\r\n requestArray.push(this.sharedService.getStateList());\r\n requestArray.push(this.sharedService.getLookUpList(null));\r\n /*if (isformDataAddressEmpty && !isNewUser)*/\r\n {\r\n requestArray.push(this.applicantService.getApplicantAddress(AddressTypes.PermanentAddress));\r\n }\r\n if (!isNaN(this.checkNumber(this.formData.LeadID))) {\r\n requestArray.push(this.applicantService.getLeadDetails(this.formData.LeadID));\r\n }\r\n forkJoin(requestArray).subscribe((data) => {\r\n this.stateList = (data[0].Result != null) ? data[0].Result : [];\r\n let lookupData = (data[1].Result != null) ? data[1].Result : [];\r\n this.citizenshipList = lookupData.filter((x: any) => x.LookUpType == \"TFCCitizenshipType\");\r\n if (data[2].Result != null) {\r\n this.formData.Addresses = data[2].Result;\r\n this.selectedCitizenship = this.formData.Addresses.CitizenshipID;\r\n this.isAddressInfoAvailable = !(this.formData.Addresses.Address === null || this.formData.Addresses.Address === '' || this.formData.Addresses.Address === undefined)\r\n if (this.isAddressInfoAvailable && this.formData.Addresses.Zip !== '' &&\r\n this.formData.Addresses.Zip !== undefined &&\r\n this.formData.Addresses.Zip !== null) {\r\n this.loadZipData(this.formData.Addresses.Zip);\r\n }\r\n this.checkValidAddress();\r\n\r\n }\r\n if (!isNaN(this.checkNumber(this.formData.LeadID)) && !this.isAddressInfoAvailable) {\r\n if (data[3].Result[0] != null) {\r\n this.leadDetails = data[3].Result[0];\r\n this.formData.Addresses.Address = this.leadDetails.Address;\r\n this.formData.Addresses.Zip = this.leadDetails.Zip;\r\n if (this.formData.Addresses.Zip !== '' &&\r\n this.formData.Addresses.Zip !== undefined &&\r\n this.formData.Addresses.Zip !== null) {\r\n this.loadZipData(this.formData.Addresses.Zip);\r\n }\r\n this.checkValidAddress();\r\n }\r\n }\r\n\r\n if (this.formData.Addresses.CitizenshipID == undefined || this.formData.Addresses.CitizenshipID == null) {\r\n let defaultCitizenshipIndex: number = this.citizenshipList.findIndex(x => x.Name == \"US Citizen\");\r\n if (defaultCitizenshipIndex >= 0) {\r\n this.formData.Addresses.CitizenshipID = this.citizenshipList[defaultCitizenshipIndex].LookUpID;\r\n this.selectedCitizenship = this.formData.Addresses.CitizenshipID;\r\n }\r\n }\r\n\r\n var citizenship = this.citizenshipList.filter(x => x.LookUpID == this.formData.Addresses.CitizenshipID)[0];\r\n if (citizenship == undefined)\r\n this.selectedCitizenship = this.citizenshipList.filter(x => x.LookUpID == 4001)[0].LookUpID;\r\n\r\n //NOTE: After Socure Scan, if associated address is available then default value for housing type is set as null/undefine.\r\n //Hence when housing details are unavailable, set the defaullt setting what we do when address is not available.\r\n if (this.formData.Addresses.IsOwnHouse == undefined || this.formData.Addresses.IsOwnHouse == null) {\r\n this.formData.Addresses.IsOwnHouse = true;\r\n }\r\n });\r\n }\r\n\r\n zipEntered(event: any) {\r\n this.isWrongZipEntered = false;\r\n this.statecity = '';\r\n let value = event.target.value;\r\n if (value.length < 5) {\r\n this.state = '';\r\n this.city = '';\r\n return;\r\n }\r\n this.loadZipData(value);\r\n }\r\n\r\n loadZipData(value: string) {\r\n let requestArray = [this.sharedService.getZipByZip(value)];\r\n forkJoin(requestArray).subscribe(data =>\r\n {\r\n let zipData: Zips = data[0].Result;\r\n if (isNullOrUndefined(zipData) || zipData.State === '' || zipData.State === null || zipData.State === undefined)\r\n {\r\n this.statecity = \"\";\r\n this.isWrongZipEntered = true;\r\n }\r\n else {\r\n this.isWrongZipEntered = false;\r\n this.state = zipData.State;\r\n this.city = zipData.City;\r\n this.statecity = this.city + ',' + this.state;\r\n }\r\n });\r\n }\r\n\r\n\r\n save() {\r\n this.formData.Addresses.City = this.city.trim();\r\n this.formData.Addresses.State = this.stateList.filter(x => x.State === this.state)[0].StateCode;\r\n this.formDataService.setFormData(this.formData);\r\n }\r\n\r\n validateSection() {\r\n document.querySelectorAll(\".addressSection\").forEach((input: any) => {\r\n if (input.value === '' || input.value === undefined || input.value === null) {\r\n input.classList.add(\"ng-dirty\");\r\n }\r\n });\r\n }\r\n\r\n goToNext(form: any) {\r\n this.validateSection();\r\n if (!form.valid || this.isWrongZipEntered || this.isWrongAddressLine1 || this.isWrongAddressLine2) {\r\n this.isInvalid = true;\r\n return;\r\n }\r\n fbq('trackCustom', 'BasicInfoHousingContinue', { tagId: '123' });\r\n if (environment.googleTagsEnabled) {\r\n gtm.push({ 'event': 'BasicInfoHousingContinue', \"tagId\": '123' });\r\n }\r\n\r\n this.formData.Addresses.LanguageKey = 'address.address.toastMessageAddressCtrl';\r\n let object: { LanguageKey: string } = { LanguageKey: \"\" };\r\n object.LanguageKey = 'address.address.toastMessageCellPhoneCtrl';\r\n\r\n this.sharedService.GetCurrentStatusesByApplicationId(this.formData.Applications.ApplicationID)\r\n .subscribe((data => {\r\n this.currentStatuses = (data.Result !== null && data.Result !== undefined) ? data.Result : new ApplicationCurrentStatuses;\r\n if (this.currentStatuses.isApplicationDecisionNotAvailable == true) {\r\n this.formData.Addresses.AddressTypeID = AddressTypes.PermanentAddress;\r\n this.formData.Addresses.CitizenshipID = this.selectedCitizenship;\r\n this.save();\r\n let requestArray = [\r\n this.applicantService.updateApplicantContactHistory(this.formData.Identity.CellNumber, object),\r\n this.applicantService.addApplicantAddress(this.formData.Addresses)\r\n ];\r\n forkJoin(requestArray).subscribe((response => {\r\n if (response[1].IsSuccess) {\r\n this.router.navigate(['employment']);\r\n }\r\n }), (error => {\r\n console.log(error);\r\n }));\r\n }\r\n else {\r\n this.applicantService.navigateToDashboardOnApplicationDicision();\r\n }\r\n }),\r\n (error => {\r\n console.log(error);\r\n }));\r\n }\r\n\r\n checkScreenSize() {\r\n this.isMobileDevice = window.innerWidth <= 600;\r\n }\r\n\r\n private checkNumber(input: string): number {\r\n\r\n if (!input) return NaN;\r\n\r\n if (input.trim().length == 0) {\r\n return NaN;\r\n }\r\n return Number(input);\r\n }\r\n\r\n public restrictComma(event: any) {\r\n if (event.keyCode === 188 || event.code == 'Comma') {\r\n return false;\r\n\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n parseAddressLine1() {\r\n var address = this.formData.Addresses.Address;\r\n if (address.indexOf(',') != -1) {\r\n //this.formData.Addresses.Address = address.replace(/,/g, '');\r\n this.isWrongAddressLine1 = true;\r\n }\r\n else {\r\n this.isWrongAddressLine1 = false;\r\n }\r\n }\r\n parseAddressLine2() {\r\n var address = this.formData.Addresses.Address2;\r\n if (address.indexOf(',') != -1) {\r\n // this.formData.Addresses.Address2 = address.replace(/,/g, '');\r\n this.isWrongAddressLine2 = true;\r\n }\r\n else {\r\n this.isWrongAddressLine2 = false;\r\n }\r\n }\r\n checkValidAddress() {\r\n if (this.formData.Addresses.Address !== '' &&\r\n this.formData.Addresses.Address !== undefined &&\r\n this.formData.Addresses.Address !== null) {\r\n if (this.formData.Addresses.Address.indexOf(',') != -1) {\r\n this.isWrongAddressLine1 = true;\r\n }\r\n }\r\n\r\n if (this.formData.Addresses.Address2 !== '' &&\r\n this.formData.Addresses.Address2 !== undefined &&\r\n this.formData.Addresses.Address2 !== null) {\r\n if (this.formData.Addresses.Address2.indexOf(',') != -1) {\r\n\r\n this.isWrongAddressLine2 = true;\r\n }\r\n }\r\n }\r\n ngAfterViewInit() {\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n\r\n private getTranslatedCitizen(): void {\r\n //provided searchOptionList and assets/i18n/component/language.json file\r\n this.translatedCitizenshipList = this.translocoScopeService.translateLookupDropdownOptions(this.citizenshipList, 'address.address.citizenshipLookUpCtrl');\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'address.address.phoneCtrl.requiredError'|transloco}}\r\n {{'address.address.phoneCtrl.minLengthError'|transloco}}\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n {{'address.address.citizenCtrl.requiredError'|transloco}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n ({{'address.address.addressNoteLabel'|transloco}})\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {{'address.address.Address1Ctrl.requiredError'|transloco}}\r\n {{'address.address.Address1Ctrl.noPOBoxAddressError'|transloco}}\r\n \r\n {{'address.address.Address1Ctrl.minLengthError'|transloco}}\r\n \r\n
\r\n {{'address.address.Address1Ctrl.patternError'|transloco}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {{'address.address.Address2Ctrl.requiredError'|transloco}}\r\n {{'address.address.Address1Ctrl.noPOBoxAddressError'|transloco}}\r\n
\r\n
\r\n {{'address.address.Address2Ctrl.patternError'|transloco}}\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {{statecity}}\r\n
\r\n
\r\n
\r\n {{'address.address.zipCtrl.requiredError'|transloco}}\r\n {{'address.address.zipCtrl.minLengthError'|transloco}}\r\n
\r\n {{'address.address.zipCtrl.invalidZipError'|transloco}}\r\n\r\n\r\n
\r\n
\r\n {{'address.address.housingTypeCtrl.label'|transloco}}\r\n
\r\n
\r\n \r\n \r\n {{item.Name | transloco }}\r\n \r\n \r\n
\r\n
\r\n {{'address.address.housingTypeCtrl.requiredError'|transloco}}\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'address.address.housingCostCtrl.requiredError'|transloco}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{'address.address.providerNote'|transloco}}\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'address.address.phoneCtrl.requiredError'|transloco}}\r\n {{'address.address.phoneCtrl.minLengthError'|transloco}}\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n {{'address.address.citizenCtrl.requiredError'|transloco}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n ({{'address.address.addressNoteLabel'|transloco}})\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{'address.address.Address1Ctrl.requiredError'|transloco}}\r\n \r\n {{'address.address.Address1Ctrl.minLengthError'|transloco}}\r\n \r\n {{'address.address.Address1Ctrl.noPOBoxAddressError'|transloco}}\r\n
\r\n {{'address.address.Address1Ctrl.patternError'|transloco}}\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{'address.address.Address2Ctrl.requiredError'|transloco}}\r\n {{'address.address.Address1Ctrl.noPOBoxAddressError'|transloco}}\r\n
\r\n {{'address.address.Address2Ctrl.patternError'|transloco}}\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {{statecity}}\r\n
\r\n
\r\n
\r\n {{'address.address.zipCtrl.requiredError'|transloco}}\r\n \r\n {{'address.address.zipCtrl.minLengthError'|transloco}}\r\n \r\n
\r\n {{'address.address.zipCtrl.invalidZipError'|transloco}}\r\n\r\n
\r\n
\r\n {{'address.address.housingTypeCtrl.label'|transloco}}\r\n
\r\n
\r\n\r\n \r\n \r\n {{item.Name | transloco }}\r\n \r\n \r\n
\r\n
\r\n {{'address.address.housingTypeCtrl.requiredError'|transloco}}\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'address.address.housingCostCtrl.requiredError'|transloco}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{'address.address.providerNote'|transloco}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \"Responsive\r\n
\r\n\r\n
\r\n
\r\n
\r\n","export class ApplicantIncomeRequest {\r\n public ApplicantEmploymentID?: number;\r\n public ApplicantID: number;\r\n public ApplicationID?: number;\r\n public TypeOfEmploymentID: number;\r\n public EmploymentName: string;\r\n public BeginDate: any;\r\n public NetPay: number;\r\n public GrossPay: number;\r\n public PayCycleID: number;\r\n public LastPayDate: any;\r\n public IsDirectDeposit: boolean;\r\n public UpdatedOn: Date;\r\n public UpdatedBy: number;\r\n public EmploymentType: string;\r\n public PayCycle: string;\r\n public IsActive: boolean;\r\n public IncomeDescription: string;\r\n public YearAtCurrentEmployer: number;\r\n public MonthAtCurrentEmployer: number;\r\n public YearAtPreviousEmployer: number;\r\n public MonthAtPreviousEmployer: number;\r\n public Position: string;\r\n public LanguageKey:string;\r\n Constructor() {\r\n this.ApplicantEmploymentID = null;\r\n this.TypeOfEmploymentID = null;\r\n this.EmploymentName = null;\r\n this.BeginDate = null;\r\n this.NetPay = null;\r\n this.GrossPay = null;\r\n this.PayCycleID = null;\r\n this.LastPayDate = null;\r\n this.IsDirectDeposit = null;\r\n this.UpdatedOn = null;\r\n this.UpdatedBy = null;\r\n this.EmploymentType = null;\r\n this.PayCycle = null;\r\n this.IsActive = null;\r\n this.IncomeDescription = null;\r\n this.YearAtCurrentEmployer = null;\r\n this.MonthAtCurrentEmployer = null;\r\n this.YearAtPreviousEmployer = null;\r\n this.MonthAtPreviousEmployer = null;\r\n this.Position = null;\r\n this.LanguageKey=null;\r\n }\r\n}\r\n","import { Component, ElementRef, HostListener, OnInit, Renderer2 } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { forkJoin } from 'rxjs';\r\nimport { LookUp } from '../../entity/lookup';\r\nimport { MediaLayoutService } from '../../service/media.layout.service';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { ApplicantFormData } from '../models/applicant-form-data';\r\nimport { ApplicantIncomeRequest } from '../models/applicant-income-request';\r\nimport { OnlineApplicationMode } from '../models/online-application-mode';\r\nimport { ApplicantService } from '../service/applicant-service';\r\nimport { FormDataService } from '../service/form-data.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { IncomeTypes } from '../entity/enums/income.types';\r\nimport { ConfirmationBox } from '../../shared/components/confirmation-box/confirmation-box.model';\r\nimport { ConfirmationBoxService } from '../../shared/components/confirmation-box/confirmation-box.service';\r\nimport moment from 'moment';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { AuthService } from '../../service/auth.service';\r\nimport { ApplicationCurrentStatuses } from '../../entity/ApplicationCurrentStatuses';\r\nimport { OnlineApplicationSource } from '../models/online-application-source';\r\nimport { isNullOrUndefined } from 'is-what';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\nimport { EmploymentType } from '../../shared/enum/employment-type';\r\ndeclare const nid: any;\r\n@Component({\r\n selector: 'app-employed-income',\r\n templateUrl: './employed-income.component.html',\r\n styleUrls: ['./employed-income.component.scss'],\r\n providers: [DatePipe, provideTranslocoScope({ scope: 'employedIncome' })]\r\n})\r\n\r\nexport class EmployedIncomeComponent implements OnInit {\r\n @HostListener('window.resize', [])\r\n onResize() {\r\n this.checkScreenSize();\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n\r\n IncomeTypes: typeof IncomeTypes = IncomeTypes;\r\n OnlineApplicationMode: typeof OnlineApplicationMode = OnlineApplicationMode;\r\n public maxDate = new Date();\r\n public minDate = new Date();\r\n public payCycle: LookUp[];\r\n public translatedPayCycle: LookUp[] = [];\r\n public selectedOption: string;\r\n public selectedIncome: any;\r\n public incomeTypeList: LookUp[];\r\n public translatedIncomeTypeList: LookUp[] = [];\r\n public formData: ApplicantFormData;\r\n public employedIncomeDetails: LookUp;\r\n public selfEmployedIncomeDetails: LookUp;\r\n public benefitIncomeDetails: LookUp;\r\n public lookUpList: LookUp[];\r\n public isAddIncomeLimitReached: boolean = false;\r\n public removedIncomeList: ApplicantIncomeRequest[] = [];\r\n public isCurrentIncome: boolean = false;\r\n public body: any;\r\n IsEmployed: boolean[] = [];\r\n IsBenefit: boolean[] = [];\r\n IsSelfEmployed: boolean[] = [];\r\n IsIncomeSectionExpanded: boolean[] = [];\r\n ISEmploymentTypeSelected: boolean[];\r\n isMobileDevice: boolean = false;\r\n isInvalid: boolean = false;\r\n public isInvalidBeginDate: boolean = false;\r\n public isInvalidPayDate: boolean = false;\r\n public currentEmploymentTab: number[] = [];\r\n public incomeInfoForm: any;\r\n public isExistingApplication: boolean;\r\n public applicationID?: number;\r\n public isformDataEmploymentInfoAvailable: boolean = false;\r\n public currentStatuses: ApplicationCurrentStatuses;\r\n public invoiceNetTotal: number;\r\n private applicationSource: OnlineApplicationSource;\r\n employmentType: typeof EmploymentType = EmploymentType;\r\n\r\n constructor(public P_MediaLayoutService: MediaLayoutService,\r\n public router: Router,\r\n private sharedService: SharedService,\r\n private formDataService: FormDataService,\r\n private datePipe: DatePipe,\r\n private applicantService: ApplicantService,\r\n private toastrService: ToastrService,\r\n private ele: ElementRef, private ren: Renderer2,\r\n private _confirmationBoxService: ConfirmationBoxService,\r\n private customeTranslocoService: CustomTranslocoService) { }\r\n\r\n ngOnInit(): void {\r\n nid('setLinkedSiteId', 'form_palms436');\r\n this.customeTranslocoService.setTransLocoScope('employedIncome');\r\n let maxYear = this.maxDate.getFullYear();\r\n let minYear = maxYear - 39;\r\n this.isAddIncomeLimitReached = false;\r\n this.maxDate = new Date();\r\n this.minDate = new Date();\r\n\r\n let maxMonth = this.maxDate.getMonth();\r\n let maxDay = this.maxDate.getDate();\r\n this.maxDate = new Date(maxYear, maxMonth, maxDay, 0, 0, 0, 0);\r\n this.minDate = new Date(minYear, maxMonth, maxDay, 0, 0, 0, 0);\r\n\r\n this.formData = this.formDataService.getFormData();\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n this.isExistingApplication = this.formDataService.getApplicationMode() === this.OnlineApplicationMode.ONLINE_INFLIGHT_APPLICATION;\r\n this.loadEmploymentData();\r\n }\r\n modifyStyle() {\r\n let ui = this.ele.nativeElement.querySelector(\".p-datepicker\");\r\n if (ui) {\r\n this.ren.addClass(ui, 'mobile-calendar');\r\n }\r\n }\r\n private loadEmploymentData() {\r\n let requestArray = [];\r\n requestArray.push(this.sharedService.getLookUpList(null));\r\n requestArray.push(this.applicantService.getIncomeDetails());\r\n forkJoin(requestArray).subscribe(data => {\r\n //#region Set Look Up Data\r\n let lookUpData: LookUp[] = data[0].Result;\r\n this.incomeTypeList = lookUpData.filter(x => x.LookUpType.toLowerCase() === \"employmenttype\");\r\n this.incomeTypeList = this.incomeTypeList.filter(x => x.LookUpID < 55);\r\n this.payCycle = lookUpData.filter(x => x.LookUpType.toLowerCase() === \"paycycle\" && x.IsActive === true);\r\n this.employedIncomeDetails = this.incomeTypeList.filter(x => x.LookUpID === EmploymentType.Employed)[0];\r\n this.selfEmployedIncomeDetails = this.incomeTypeList.filter(x => x.LookUpID === EmploymentType.Selfemployed)[0];\r\n this.benefitIncomeDetails = this.incomeTypeList.filter(x => x.LookUpID === EmploymentType.Benefit)[0];\r\n //this.getTranslatedPayCycle();\r\n //this.getTranslatedIncomeTypeList();\r\n //#endregion Set Look Up Data\r\n\r\n //#region Set Employment Data If available\r\n if (data[1].IsSuccess && data[1].Result != null && data[1].Result.length > 0) {\r\n\r\n let applicantEmploymentList: ApplicantIncomeRequest[] = data[1].Result;\r\n let applicationMode: OnlineApplicationMode = this.formDataService.getApplicationMode();\r\n switch (applicationMode) {\r\n case OnlineApplicationMode.ONLINE_ADD_NEW_APPLICATION:\r\n if (this.formData.Applications.ApplicationID != null) {\r\n for (let i = 0; i < applicantEmploymentList.length; i++) {\r\n if (applicantEmploymentList[i].ApplicationID != this.formData.Applications.ApplicationID) {\r\n applicantEmploymentList[i].ApplicantEmploymentID = null;\r\n applicantEmploymentList[i].ApplicationID = this.formData.Applications.ApplicationID;\r\n }\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < applicantEmploymentList.length; i++) {\r\n applicantEmploymentList[i].ApplicantEmploymentID = null;\r\n applicantEmploymentList[i].ApplicationID = null;\r\n }\r\n }\r\n break;\r\n\r\n case OnlineApplicationMode.ONLINE_INFLIGHT_APPLICATION:\r\n if (this.formData.Applications.ApplicationID != null) {\r\n for (let i = 0; i < applicantEmploymentList.length; i++) {\r\n if (applicantEmploymentList[i].ApplicationID === 0) {\r\n applicantEmploymentList[i].ApplicationID = this.formData.Applications.ApplicationID;\r\n }\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < applicantEmploymentList.length; i++) {\r\n applicantEmploymentList[i].ApplicantEmploymentID = null;\r\n applicantEmploymentList[i].ApplicationID = null;\r\n }\r\n }\r\n break;\r\n\r\n case OnlineApplicationMode.ONLINE_FRESH_APPLICATION:\r\n if (this.formData.Applications.ApplicationID != null) {\r\n for (let i = 0; i < applicantEmploymentList.length; i++) {\r\n if (applicantEmploymentList[i].ApplicationID === 0) {\r\n applicantEmploymentList[i].ApplicationID = this.formData.Applications.ApplicationID;\r\n }\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < applicantEmploymentList.length; i++) {\r\n applicantEmploymentList[i].ApplicantEmploymentID = null;\r\n applicantEmploymentList[i].ApplicationID = null;\r\n }\r\n }\r\n break;\r\n }\r\n this.formData.ApplicantIncomeList = applicantEmploymentList;\r\n this.loadExistingIncomeInformation();\r\n }\r\n else {\r\n if (this.formData.ApplicantIncomeList.length == 0) {\r\n this.addIncome();\r\n this.formData.incomeCount = 1;\r\n this.addIncometoTheList(0);\r\n }\r\n else {\r\n this.loadExistingIncomeInformation();\r\n }\r\n }\r\n //#endregion Set Employment Data If available\r\n });\r\n }\r\n\r\n //Load the income information when it is present in DB or formData \r\n loadExistingIncomeInformation() {\r\n this.formData.ApplicantIncomeList.forEach((income, index, array) => {\r\n if (income.TypeOfEmploymentID === this.IncomeTypes.GREENWAVE_BENEFITS)\r\n income.TypeOfEmploymentID = this.IncomeTypes.BENEFIT;\r\n\r\n if (income.TypeOfEmploymentID != this.IncomeTypes.EMPLOYED && income.TypeOfEmploymentID != this.IncomeTypes.BENEFIT && income.TypeOfEmploymentID != this.IncomeTypes.SELF_EMPLOYED)\r\n income.TypeOfEmploymentID = null;\r\n else {\r\n this.currentEmploymentTab[index] = this.incomeTypeList.filter(x => x.LookUpID === income.TypeOfEmploymentID)[0].LookUpID;\r\n array[index].EmploymentType = this.incomeTypeList.filter(x => x.LookUpID === income.TypeOfEmploymentID)[0].Name;\r\n }\r\n\r\n income.LastPayDate = null;\r\n });\r\n\r\n this.isAddIncomeLimitReached = this.formData.ApplicantIncomeList.length >= 2;\r\n this.formData.ApplicantIncomeList.forEach((income, index, array) => {\r\n\r\n if (income.TypeOfEmploymentID === this.IncomeTypes.EMPLOYED) {\r\n this.IsEmployed[index] = true;\r\n this.IsBenefit[index] = false;\r\n this.IsSelfEmployed[index] = false;\r\n }\r\n if (income.TypeOfEmploymentID === this.IncomeTypes.BENEFIT) {\r\n this.IsBenefit[index] = true;\r\n this.IsEmployed[index] = false;\r\n this.IsSelfEmployed[index] = false;\r\n }\r\n if (income.TypeOfEmploymentID === this.IncomeTypes.SELF_EMPLOYED) {\r\n this.IsSelfEmployed[index] = true;\r\n this.IsBenefit[index] = false;\r\n this.IsEmployed[index] = false;\r\n }\r\n this.formData.incomeCount = this.formData.ApplicantIncomeList.length;\r\n this.grossPayCalculations(index);\r\n this.netPayCalculations(index);\r\n this.IsIncomeSectionExpanded[index] = true;\r\n });\r\n this.manageCollapseExpand(0);\r\n }\r\n\r\n //When employment type is changed (mobile view) \r\n OnChangeEmploymentType(event: any, i: number) {\r\n this.currentEmploymentTab[i] = event.option.LookUpID;\r\n this.formData.ApplicantIncomeList[i].EmploymentType = event.option.Name;\r\n this.formData.ApplicantIncomeList[i].TypeOfEmploymentID = event.option.LookUpID;;// this.incomeTypeList.filter(x => x.Name === event.option.Name)[0].LookUpID;\r\n\r\n if (event.option.LookUpID == EmploymentType.Employed) {\r\n this.IsEmployed[i] = true;\r\n this.IsSelfEmployed[i] = false;\r\n this.IsBenefit[i] = false;\r\n }\r\n else if (event.option.LookUpID == EmploymentType.Benefit) {\r\n this.IsBenefit[i] = true;\r\n this.IsEmployed[i] = false;\r\n this.IsSelfEmployed[i] = false;\r\n }\r\n else if (event.option.LookUpID == EmploymentType.Selfemployed) {\r\n this.IsSelfEmployed[i] = true;\r\n this.IsBenefit[i] = false;\r\n this.IsEmployed[i] = false;\r\n }\r\n this.resetIncomeType(this.formData, i);\r\n }\r\n\r\n resetIncomeType(income: ApplicantFormData, i: number) {\r\n income.grossIncomeTotal = isNaN(income.ApplicantIncomeList[i].GrossPay) ? income.grossIncomeTotal : (income.grossIncomeTotal - income.ApplicantIncomeList[i].GrossPay);\r\n income.netIncomeTotal = isNaN(income.ApplicantIncomeList[i].NetPay) ? income.netIncomeTotal : (income.netIncomeTotal - income.ApplicantIncomeList[i].NetPay);\r\n income.ApplicantIncomeList[i].GrossPay = null;\r\n income.ApplicantIncomeList[i].LastPayDate = null;\r\n income.ApplicantIncomeList[i].BeginDate = null;\r\n income.ApplicantIncomeList[i].NetPay = null;\r\n income.ApplicantIncomeList[i].IsDirectDeposit = false;\r\n income.ApplicantIncomeList[i].PayCycle = null;\r\n income.ApplicantIncomeList[i].EmploymentName = null;\r\n income.ApplicantIncomeList[i].PayCycleID = null;\r\n }\r\n\r\n //When employment type is changed (desktop view) \r\n public OnChangeEmploymentDesktop(event: any, i: number, lookupId: number) {\r\n let selectedEmploymentType: number = lookupId; // Use originalValue instead of event.srcElement.firstChild.data\r\n this.currentEmploymentTab[i] = selectedEmploymentType;\r\n this.formData.ApplicantIncomeList[i].EmploymentType = event.srcElement.firstChild.data;\r\n this.formData.ApplicantIncomeList[i].TypeOfEmploymentID = selectedEmploymentType;\r\n\r\n if (selectedEmploymentType === EmploymentType.Employed) {\r\n this.IsEmployed[i] = true;\r\n this.IsSelfEmployed[i] = false;\r\n this.IsBenefit[i] = false;\r\n } else if (selectedEmploymentType === EmploymentType.Benefit) {\r\n this.IsBenefit[i] = true;\r\n this.IsEmployed[i] = false;\r\n this.IsSelfEmployed[i] = false;\r\n } else if (selectedEmploymentType === EmploymentType.Selfemployed) {\r\n this.IsSelfEmployed[i] = true;\r\n this.IsBenefit[i] = false;\r\n this.IsEmployed[i] = false;\r\n }\r\n\r\n this.resetIncomeType(this.formData, i);\r\n }\r\n\r\n\r\n\r\n //Add new income\r\n addIncome() {\r\n let incomeSource = new ApplicantIncomeRequest();\r\n this.formData.ApplicantIncomeList.push(incomeSource);\r\n let incomeCount = this.formData.ApplicantIncomeList.length;\r\n this.addIncometoTheList(incomeCount - 1);\r\n this.manageCollapseExpand(incomeCount - 1);\r\n }\r\n\r\n //Add initial or intermittent income to the list\r\n addIncometoTheList(index: number) {\r\n let translatedKey = this.customeTranslocoService.translate('employedIncome.employedIncomeComponent.navigationItemsCtrl.employed.label');\r\n this.formData.ApplicantIncomeList[index].EmploymentType = translatedKey;\r\n this.formData.ApplicantIncomeList[index].TypeOfEmploymentID = this.IncomeTypes.EMPLOYED;\r\n this.formData.ApplicantIncomeList[index].IsActive = true;\r\n this.formData.ApplicantIncomeList[index].ApplicantEmploymentID = 0;\r\n if (index > 0) { this.formData.ApplicantIncomeList[index].ApplicationID = this.formData.ApplicantIncomeList[index - 1].ApplicationID; }\r\n else if (index === 0) { this.formData.ApplicantIncomeList[index].ApplicationID = 0; }\r\n this.currentEmploymentTab[index] = EmploymentType.Employed;\r\n this.IsEmployed[index] = true;\r\n this.IsBenefit[index] = false;\r\n this.IsSelfEmployed[index] = false;\r\n this.IsIncomeSectionExpanded[index] = true;\r\n this.isAddIncomeLimitReached = this.formData.ApplicantIncomeList.filter(x => x.IsActive).length >= 2;\r\n }\r\n\r\n removeIncome(income: ApplicantIncomeRequest) {\r\n let translateKey = 'employedIncome.employedIncomeComponent.confirmationBoxCtrl.'\r\n var vm = this;\r\n this._confirmationBoxService.Open(\r\n new ConfirmationBox(translateKey + 'editApplicationHeading', translateKey + 'deleteAdditionalIncomeMessage',\r\n true, true, false, false, translateKey + 'yes', translateKey + 'no', '', ''), \"md\").then(function (result) {\r\n if (result == true) {\r\n vm.removeIncomeFromList(income);\r\n }\r\n })\r\n }\r\n\r\n //Remove income depending on the existing / new application scenario\r\n removeIncomeFromList(income: ApplicantIncomeRequest) {\r\n let translatedRemoveMessage = this.customeTranslocoService.translate(\"employedIncome.employedIncomeComponent.removeIncomeMessage\");\r\n const index = this.formData.ApplicantIncomeList.indexOf(income);\r\n if (index != -1) {\r\n let removedIncome = this.formData.ApplicantIncomeList[index];\r\n //removed this.isExistingApplication && from below if\r\n if (removedIncome.ApplicantEmploymentID !== undefined &&\r\n removedIncome.ApplicantEmploymentID > 0) {\r\n this.toastrService.success(translatedRemoveMessage);\r\n this.formData.ApplicantIncomeList.splice(index, 1);\r\n removedIncome.IsActive = false;\r\n this.removedIncomeList.push(removedIncome);\r\n\r\n this.formData.grossIncomeTotal -= isNaN(removedIncome.GrossPay) ? 0 : removedIncome.GrossPay;\r\n this.formData.netIncomeTotal -= isNaN(removedIncome.NetPay) ? 0 : removedIncome.NetPay;\r\n this.formData.grossIncomeTotal = isNaN(this.formData.grossIncomeTotal) ? 0 : this.formData.grossIncomeTotal;\r\n this.formData.netIncomeTotal = isNaN(this.formData.netIncomeTotal) ? 0 : this.formData.netIncomeTotal;\r\n this.isAddIncomeLimitReached = this.formData.ApplicantIncomeList.filter(x => x.IsActive).length >= 2;\r\n }\r\n else {\r\n this.toastrService.success(translatedRemoveMessage);\r\n this.formData.ApplicantIncomeList.splice(index, 1);\r\n this.formData.grossIncomeTotal -= isNaN(removedIncome.GrossPay) ? 0 : removedIncome.GrossPay;\r\n this.formData.netIncomeTotal -= isNaN(removedIncome.NetPay) ? 0 : removedIncome.NetPay;\r\n this.formData.grossIncomeTotal = isNaN(this.formData.grossIncomeTotal) ? 0 : this.formData.grossIncomeTotal;\r\n this.formData.netIncomeTotal = isNaN(this.formData.netIncomeTotal) ? 0 : this.formData.netIncomeTotal;\r\n this.isAddIncomeLimitReached = this.formData.ApplicantIncomeList.filter(x => x.IsActive).length >= 2;\r\n\r\n }\r\n }\r\n }\r\n\r\n //Calculate gross pay for each income iteration\r\n grossPayCalculations(i: number) {\r\n this.isCurrentIncome = true;\r\n this.formData.grossIncomeTotal = 0;\r\n this.formData.ApplicantIncomeList.forEach((value) => {\r\n this.formData.grossIncomeTotal = !isNaN(value.GrossPay) ? this.formData.grossIncomeTotal + value.GrossPay : this.formData.grossIncomeTotal;\r\n });\r\n if (!this.IsEmployed[i]) {\r\n if (this.formData.ApplicantIncomeList.length == 1) {\r\n\r\n this.formData.netIncomeTotal = 0;\r\n this.formData.ApplicantIncomeList.forEach((value, index) => {\r\n this.formData.netIncomeTotal = !isNaN(value.NetPay) && !this.IsEmployed[index] ? this.formData.netIncomeTotal + value.GrossPay : value.GrossPay;\r\n value.NetPay = value.GrossPay;\r\n })\r\n\r\n } else {\r\n this.formData.netIncomeTotal = this.formData.ApplicantIncomeList[0].NetPay == null ? this.formData.ApplicantIncomeList[1].NetPay : this.formData.ApplicantIncomeList[0].NetPay;\r\n let incomeTypeIndex = this.formData.ApplicantIncomeList[0].NetPay == null ? 0 : 1;\r\n for (var i = incomeTypeIndex; i < this.formData.ApplicantIncomeList.length; i++) {\r\n if (this.formData.ApplicantIncomeList[i].EmploymentType !== 'Employed')\r\n this.formData.ApplicantIncomeList[i].NetPay = this.formData.ApplicantIncomeList[i].GrossPay;\r\n this.formData.netIncomeTotal += this.formData.ApplicantIncomeList[i].GrossPay;\r\n i == 0 ? i++ : i;\r\n }\r\n\r\n }\r\n }\r\n }\r\n\r\n //Calculate net pay for each income iteration\r\n netPayCalculations(i: number) {\r\n this.formData.netIncomeTotal = 0;\r\n if (this.IsEmployed[i]) {\r\n this.formData.ApplicantIncomeList.forEach((value, index) => {\r\n this.formData.netIncomeTotal = !isNaN(value.NetPay) ? this.formData.netIncomeTotal + value.NetPay : this.formData.netIncomeTotal;\r\n });\r\n }\r\n else {\r\n this.formData.ApplicantIncomeList.forEach((value, index) => {\r\n this.formData.netIncomeTotal = !isNaN(value.NetPay) ? this.formData.netIncomeTotal + value.NetPay : this.formData.netIncomeTotal;\r\n if (index = 0) {\r\n value.NetPay = value.GrossPay;\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n //Method is called when an income section on the UI is clicked to expand or collapse \r\n collapseExpandIncomeSection(i: number) {\r\n this.IsIncomeSectionExpanded[i] = !this.IsIncomeSectionExpanded[i];\r\n let summaryelement = document.getElementById(`summaryIncomeSection${i}`);\r\n let dataelement = document.getElementById(`dataIncomeSection${i}`);\r\n\r\n if (summaryelement !== null && dataelement !== null) {\r\n if (this.IsIncomeSectionExpanded[i]) {\r\n summaryelement.classList.add('hide');\r\n summaryelement.classList.remove('show');\r\n dataelement.classList.add('show');\r\n dataelement.classList.remove('hide');\r\n this.manageCollapseExpand(i);\r\n }\r\n else {\r\n summaryelement.classList.add('show');\r\n summaryelement.classList.remove('hide');\r\n dataelement.classList.add('hide');\r\n dataelement.classList.remove('show');\r\n }\r\n }\r\n }\r\n expandOnInvalidData() {\r\n for (let i = 0; i < this.formData.ApplicantIncomeList.length; i++) {\r\n let summaryelement = document.getElementById(`summaryIncomeSection${i}`);\r\n let dataelement = document.getElementById(`dataIncomeSection${i}`);\r\n\r\n summaryelement.classList.add('hide');\r\n summaryelement.classList.remove('show');\r\n dataelement.classList.add('hide');\r\n dataelement.classList.remove('show');\r\n this.manageCollapseExpand(i);\r\n }\r\n }\r\n checkScreenSize() {\r\n this.isMobileDevice = window.innerWidth <= 600;\r\n }\r\n\r\n\r\n //Collapse all the elements except the one whose index is passed as the parameter\r\n manageCollapseExpand(i: number) {\r\n this.IsIncomeSectionExpanded.forEach((_, index, array) => {\r\n let summaryelement = document.getElementById(`summaryIncomeSection${index}`);\r\n let dataelement = document.getElementById(`dataIncomeSection${index}`);\r\n if (index !== i) {\r\n array[index] = false;\r\n if (summaryelement !== null && dataelement !== null) {\r\n summaryelement.classList.add('show');\r\n summaryelement.classList.remove('hide');\r\n dataelement.classList.add('hide');\r\n dataelement.classList.remove('show');\r\n }\r\n }\r\n });\r\n }\r\n\r\n save() {\r\n if (this.removedIncomeList.length > 0) {\r\n this.removedIncomeList.forEach(x => this.formData.ApplicantIncomeList.push(x));\r\n }\r\n this.formData.ApplicantIncomeList.forEach((value, i, array) => {\r\n this.formData.ApplicantIncomeList[i].BeginDate = this.datePipe.transform(this.formData.ApplicantIncomeList[i].BeginDate, 'MM/dd/yyyy');\r\n this.formData.ApplicantIncomeList[i].LastPayDate = this.datePipe.transform(this.formData.ApplicantIncomeList[i].LastPayDate, 'MM/dd/yyyy');\r\n if (!this.IsEmployed[i])\r\n array[i].NetPay = array[i].GrossPay;\r\n });\r\n\r\n this.formDataService.setFormData(this.formData);\r\n }\r\n saveLoanAmount() {\r\n this.applicationSource = this.formDataService.getApplicationSource();\r\n this.formData.ApplicationCreate.SourceId = !isNullOrUndefined(this.applicationSource.SourceId) ? this.applicationSource.SourceId : null;\r\n this.formData.ApplicationCreate.SourceTypeId = !isNullOrUndefined(this.applicationSource.SourceTypeId) ? this.applicationSource.SourceTypeId : null;\r\n this.formData.ApplicationCreate.LeadId = !isNullOrUndefined(this.applicationSource.LeadId) ? this.applicationSource.LeadId : null;\r\n this.formDataService.setFormData(this.formData);\r\n }\r\n\r\n validateSection() {\r\n document.querySelectorAll(\".incomeSection\").forEach((input: any) => {\r\n if (input.value === '' || input.value === undefined || input.value === null) {\r\n input.classList.add(\"ng-dirty\");\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n public goToNext(form: any) {\r\n let employedIncomencomeLanguageKey: string = 'employedIncome.employedIncomeComponent.toastMessageCtrl';\r\n\r\n let secondEmploymentType = null;\r\n if (this.formData.ApplicantIncomeList.length > 1) {\r\n secondEmploymentType = this.currentEmploymentTab[1]\r\n }\r\n this.validateSection();\r\n if (!form.valid || this.isInvalidBeginDate || this.isInvalidPayDate || this.currentEmploymentTab[0] == null\r\n || ((this.formData.ApplicantIncomeList.length > 1) && secondEmploymentType == null)) {\r\n this.isInvalidPayDate == true ? true : false;\r\n this.isInvalid = true;\r\n // Got focus to the error field\r\n let invalidFields = [].slice.call(document.getElementsByClassName('ng-invalid'));\r\n if (this.formData.ApplicantIncomeList.length > 1) {\r\n this.expandOnInvalidData();\r\n this.collapseExpandIncomeSection(parseInt(invalidFields[1].id));\r\n // invalidFields[0].focus();\r\n }\r\n else if (this.formData.ApplicantIncomeList.length == 1) {\r\n if (!this.IsIncomeSectionExpanded[0]) {\r\n let summaryelement = document.getElementById(`summaryIncomeSection${0}`);\r\n let dataelement = document.getElementById(`dataIncomeSection${0}`);\r\n summaryelement.classList.add('hide');\r\n summaryelement.classList.remove('show');\r\n dataelement.classList.add('hide');\r\n dataelement.classList.remove('show');\r\n this.collapseExpandIncomeSection(0);\r\n }\r\n invalidFields[0].focus();\r\n }\r\n return;\r\n }\r\n\r\n let requestArray = [];\r\n\r\n this.formData.ApplicantIncomeList[0].LanguageKey = employedIncomencomeLanguageKey;\r\n\r\n requestArray.push(this.sharedService.GetCurrentStatusesByApplicationId(this.formData.Applications.ApplicationID));\r\n requestArray.push(this.applicantService.getInvoiceNetTotalByApplicationID());\r\n forkJoin(requestArray).subscribe((data => {\r\n this.currentStatuses = (data[0].Result !== null && data[0].Result !== undefined) ? data[0].Result : new ApplicationCurrentStatuses;\r\n this.invoiceNetTotal = data[1].Result;\r\n if (this.currentStatuses.isApplicationDecisionNotAvailable == true) {\r\n this.save();\r\n requestArray = [];\r\n requestArray.push(this.applicantService.addUpdateIncomeDetails(this.formData.ApplicantIncomeList));\r\n\r\n //If invoice is available and invoice total is greater than zero set it as requested amount.\r\n if (this.invoiceNetTotal > 0) {\r\n this.formData.ApplicationCreate.BestEstimate = this.invoiceNetTotal;\r\n this.formData.ApplicationCreate.ApplicationID = this.formData.Applications.ApplicationID;\r\n this.saveLoanAmount();\r\n requestArray.push(this.applicantService.UpdateApplicationToSetInvoiceAmountAsBestEstimate(this.formData.ApplicationCreate));\r\n }\r\n forkJoin(requestArray).subscribe((response => {\r\n if (response[0].IsSuccess) {\r\n if (this.invoiceNetTotal > 0 && response[1].IsSuccess) {\r\n this.formDataService.setFormData(this.formData);\r\n this.router.navigate(['lenderselection']);\r\n }\r\n else {\r\n this.router.navigate(['loanamount']);\r\n }\r\n }\r\n }), (error => {\r\n console.log(error);\r\n }));\r\n }\r\n else {\r\n this.applicantService.navigateToDashboardOnApplicationDicision();\r\n }\r\n }),\r\n (error => {\r\n console.log(error);\r\n }));\r\n }\r\n\r\n\r\n // For manual date start\r\n addSlashToBeginDate($event: any, i: number) {\r\n if (($event.code != \"Backspace\" && $event.code != \"Delete\") && ($event.srcElement.value.length == 2 || $event.srcElement.value.length == 5)) {\r\n $event.srcElement.value += '/';\r\n }\r\n\r\n if ($event.code == \"Enter\" || $event.code == \"Tab\") {\r\n let date = moment($event.srcElement.value, 'M/D/YYYY');\r\n if (date.isValid() == true) {\r\n var currentDate = new Date($event.srcElement.value);\r\n if (currentDate > this.maxDate) {\r\n this.isInvalidBeginDate = true;\r\n }\r\n else {\r\n this.isInvalidBeginDate = false;\r\n }\r\n let d = new Date($event.srcElement.value);\r\n $event.srcElement.value = ('0' + (d.getMonth() + 1)).slice(-2) + '/' + ('0' + d.getDate()).slice(-2) + '/' + d.getFullYear();\r\n this.formData.ApplicantIncomeList[i].BeginDate = new Date($event.srcElement.value);\r\n }\r\n else {\r\n $event.srcElement.value = '';\r\n }\r\n }\r\n\r\n }\r\n ParseManualBeginDate($event: any, i: number) {\r\n let ld = new Date(this.formData.ApplicantIncomeList[i].BeginDate);\r\n let lastInputDate = ('0' + (ld.getMonth() + 1)).slice(-2) + '/' + ('0' + ld.getDate()).slice(-2) + '/' + ld.getFullYear();\r\n\r\n let currentDate = new Date($event.srcElement.value);\r\n let setDate = ('0' + (currentDate.getMonth() + 1)).slice(-2) + '/' + ('0' + currentDate.getDate()).slice(-2) + '/' + currentDate.getFullYear();\r\n \r\n if (lastInputDate !== undefined && lastInputDate === setDate) {\r\n return;\r\n }\r\n\r\n let date = moment($event.srcElement.value, 'MM/DD/YY', true);\r\n let fullDate = moment($event.srcElement.value, 'MM/DD/YYYY', true);\r\n if (date.isValid() == true || fullDate.isValid() == true) {\r\n //var currentDate = new Date($event.srcElement.value);\r\n if (currentDate > this.maxDate) {\r\n this.isInvalidBeginDate = true;\r\n }\r\n else {\r\n this.isInvalidBeginDate = false;\r\n\r\n }\r\n //let d = new Date($event.srcElement.value);\r\n $event.srcElement.value = setDate; //('0' + (d.getMonth() + 1)).slice(-2) + '/' + ('0' + d.getDate()).slice(-2) + '/' + d.getFullYear();\r\n this.formData.ApplicantIncomeList[i].BeginDate = new Date($event.srcElement.value);\r\n }\r\n else {\r\n $event.srcElement.value = '';\r\n }\r\n\r\n\r\n }\r\n addSlashToLastPayDate($event: any, i: number) {\r\n if (($event.code != \"Backspace\" && $event.code != \"Delete\") && ($event.srcElement.value.length == 2 || $event.srcElement.value.length == 5)) {\r\n $event.srcElement.value += '/';\r\n }\r\n\r\n if ($event.code == \"Enter\" || $event.code == \"Tab\") {\r\n let date = moment($event.srcElement.value, 'M/D/YYYY');\r\n if (date.isValid() == true) {\r\n var currentDate = new Date($event.srcElement.value);\r\n if (currentDate <= this.maxDate && currentDate >= this.minDate) {\r\n this.isInvalidPayDate = false;\r\n }\r\n else {\r\n this.isInvalidPayDate = true;\r\n }\r\n let d = new Date($event.srcElement.value);\r\n $event.srcElement.value = ('0' + (d.getMonth() + 1)).slice(-2) + '/' + ('0' + d.getDate()).slice(-2) + '/' + d.getFullYear();\r\n this.formData.ApplicantIncomeList[i].LastPayDate = new Date($event.srcElement.value);\r\n }\r\n else {\r\n $event.srcElement.value = '';\r\n }\r\n }\r\n\r\n }\r\n ParseManualLastPayDate($event: any, i: number) {\r\n let ld = new Date(this.formData.ApplicantIncomeList[i].LastPayDate);\r\n let lastInputDate = ('0' + (ld.getMonth() + 1)).slice(-2) + '/' + ('0' + ld.getDate()).slice(-2) + '/' + ld.getFullYear();\r\n\r\n let currentDate = new Date($event.srcElement.value);\r\n let setDate = ('0' + (currentDate.getMonth() + 1)).slice(-2) + '/' + ('0' + currentDate.getDate()).slice(-2) + '/' + currentDate.getFullYear();\r\n \r\n if (lastInputDate !== undefined && lastInputDate === setDate) {\r\n return;\r\n }\r\n\r\n let date = moment($event.srcElement.value, 'MM/DD/YY', true);\r\n let fullDate = moment($event.srcElement.value, 'MM/DD/YYYY', true);\r\n if (date.isValid() == true || fullDate.isValid() == true) {\r\n //var currentDate = new Date($event.srcElement.value);\r\n if (currentDate <= this.maxDate && currentDate >= this.minDate) {\r\n this.isInvalidPayDate = false;\r\n }\r\n else {\r\n this.isInvalidPayDate = true;\r\n }\r\n //let d = new Date($event.srcElement.value);\r\n $event.srcElement.value = setDate; //('0' + (d.getMonth() + 1)).slice(-2) + '/' + ('0' + d.getDate()).slice(-2) + '/' + d.getFullYear();\r\n this.formData.ApplicantIncomeList[i].LastPayDate = new Date($event.srcElement.value);\r\n }\r\n else {\r\n $event.srcElement.value = '';\r\n }\r\n\r\n\r\n }\r\n onlyNumbersToDate($event: any) {\r\n\r\n if (($event.code != \"Backspace\" && $event.code != \"Delete\") && $event.srcElement.value.length == 2) {\r\n $event.srcElement.value += '/';\r\n }\r\n\r\n if (($event.code != \"Backspace\" && $event.code != \"Delete\") && $event.srcElement.value.length == 5) {\r\n $event.srcElement.value += '/';\r\n }\r\n\r\n if ($event.code == \"Backspace\"\r\n || $event.code == \"Delete\"\r\n || $event.code == \"Enter\"\r\n || $event.code == \"Tab\"\r\n || $event.code == \"ArrowLeft\"\r\n || $event.code == \"ArrowRight\") {\r\n return true;\r\n }\r\n if ($event.srcElement.value.length < 10) {\r\n if (($event.keyCode >= 48 && $event.keyCode <= 57)\r\n || ($event.keyCode >= 96 && $event.keyCode <= 105))\r\n return true;\r\n else\r\n return false;\r\n }\r\n else\r\n return false;\r\n }\r\n\r\n private getTranslatedPayCycle(): void {\r\n this.translatedPayCycle = this.customeTranslocoService.translateLookupDropdownOptions(this.payCycle, 'employedIncome.employedIncomeComponent.payCycleLookupCtrl');\r\n }\r\n private getTranslatedIncomeTypeList(): void {\r\n this.translatedIncomeTypeList = this.customeTranslocoService.translateLookupDropdownOptions(this.incomeTypeList, 'employedIncome.employedIncomeComponent.employmentTypeLookupCtrl');\r\n }\r\n // For manual date end\r\n ngAfterViewInit() {\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","\r\n
\r\n\t
\r\n\t\t
\r\n\t\t
\r\n\r\n\t\t\t
\r\n\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
{{'employedIncome.employedIncomeComponent.summarySectionLableCtrl.employedIncome' | transloco}} {{i+1}}
\r\n\t\t\t\t\t\t
{{'employedIncome.employedIncomeComponent.summarySectionLableCtrl.benefitIncome' | transloco}} {{i+1}}
\r\n\t\t\t\t\t\t
{{'employedIncome.employedIncomeComponent.summarySectionLableCtrl.selfEmployedIncome' | transloco}}{{i+1}}
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t0\" (click)=\"removeIncome(income)\">{{'employedIncome.employedIncomeComponent.removeButtonCtrl' | transloco}}\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
{{'employedIncome.employedIncomeComponent.dataSectionLableCtrl.employedIncome' | transloco}} {{i+1}}
\r\n\t\t\t\t\t\t\t
{{'employedIncome.employedIncomeComponent.dataSectionLableCtrl.benefitIncome' | transloco}} {{i+1}}
\r\n\t\t\t\t\t\t\t
{{'employedIncome.employedIncomeComponent.dataSectionLableCtrl.selfEmployedIncome' | transloco}} {{i+1}}
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t0\" (click)=\"removeIncome(income)\">{{'employedIncome.employedIncomeComponent.removeButtonCtrl' | transloco}}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\r\n
\r\n
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t
{{'employedIncome.employedIncomeComponent.subParaLableCtrl.IsEmployed' | transloco}}
\r\n\t\t\t\t\t\t\t
{{'employedIncome.employedIncomeComponent.subParaLableCtrl.IsBenefit' | transloco}}
\r\n\t\t\t\t\t\t\t
{{'employedIncome.employedIncomeComponent.subParaLableCtrl.IsSelfEmployed' | transloco}}
\r\n\t\t\t\t\t\t\t

{{'employedIncome.employedIncomeComponent.subParaLableCtrl.subPara' | transloco}}

\r\n\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.incomeTypeSelectButtonCtrl.requiredError' | transloco}}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.employmentNameInputCtrl.requiredErrors.IsEmployed' | transloco}}\r\n\t\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.employmentNameInputCtrl.requiredErrors.IsBenefit' | transloco}}\r\n\t\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.employmentNameInputCtrl.requiredErrors.IsSelfEmployed' | transloco}}\r\n\t\t\t\t\t\t\t
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'employedIncome.employedIncomeComponent.incomeBeginDateCtrl.requiredErrors.IsBenefit' | transloco}}\r\n {{'employedIncome.employedIncomeComponent.incomeBeginDateCtrl.requiredErrors.default' | transloco}}\r\n
\r\n {{'employedIncome.employedIncomeComponent.incomeBeginDateCtrl.invalidError' | transloco}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'employedIncome.employedIncomeComponent.payCycleDropdownCtrl.requiredError' | transloco}}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'employedIncome.employedIncomeComponent.grossIncomeInputCtrl.requiredError' | transloco}}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'employedIncome.employedIncomeComponent.netIncomeInputCtrl.requiredError' | transloco}}\r\n
\r\n
\r\n
\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.lastPayDateCtrl.requiredErrors.default' | transloco}}\r\n\t\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.lastPayDateCtrl.requiredErrors.IsBenefit' | transloco}}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.lastPayDateCtrl.invalidError' | transloco}}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.directDepositSwitchCtrl.label' | transloco}}\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t

\r\n\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.instructionsCtrl.text' | transloco}}\r\n\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.instructionsCtrl.cashText' | transloco}}\r\n\t\t\t\t\t

\r\n\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
{{income.EmploymentType}} {{'employedIncome.employedIncomeComponent.employmentNameLabelCtrl.label' | transloco}} {{i+1}}
\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.expandButtonCtrl' | transloco}}\r\n\t\t\t\t\t\t0\" (click)=\"removeIncome(income)\" style=\"display:inline-block;margin-left: 5px;\" class=\"removebutton\">{{'employedIncome.employedIncomeComponent.removeButtonCtrl' | transloco}}\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
{{income.EmploymentType}} {{'employedIncome.employedIncomeComponent.employmentNameLabelCtrl.label' | transloco}} {{i+1}}
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
  • \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t{{ 'employedIncome.employedIncomeComponent.navigationItemsCtrl.employed.label' | transloco }}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
  • \r\n\r\n\t\t\t\t\t
  • \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t{{ 'employedIncome.employedIncomeComponent.navigationItemsCtrl.benefit.label' | transloco }}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
  • \r\n\r\n\t\t\t\t\t
  • \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t{{ 'employedIncome.employedIncomeComponent.navigationItemsCtrl.selfEmployed.label' | transloco }}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
  • \r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
{{'employedIncome.employedIncomeComponent.subParaLableCtrl.IsBenefit' | transloco}}
\r\n\t\t\t\t\t\t\t
{{'employedIncome.employedIncomeComponent.subParaLableCtrl.IsSelfEmployed' | transloco}}
\r\n\t\t\t\t\t\t\t
{{'employedIncome.employedIncomeComponent.subParaLableCtrl.IsEmployed' | transloco}}
\r\n\t\t\t\t\t\t\t

{{'employedIncome.employedIncomeComponent.subParaLableCtrl.subPara' | transloco}}

\r\n\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.incomeTypeSelectButtonCtrl.requiredError' | transloco}}\r\n\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.employmentNameInputCtrl.requiredErrors.IsEmployed' | transloco}}\r\n\t\t\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.employmentNameInputCtrl.requiredErrors.IsBenefit' | transloco}}\r\n\t\t\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.employmentNameInputCtrl.requiredErrors.IsSelfEmployed' | transloco}}\r\n\t\t\t\t\t\t\t\t
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'employedIncome.employedIncomeComponent.incomeBeginDateCtrl.requiredErrors.default' | transloco}}\r\n {{'employedIncome.employedIncomeComponent.incomeBeginDateCtrl.requiredErrors.IsBenefit' | transloco}}\r\n
\r\n {{'employedIncome.employedIncomeComponent.incomeBeginDateCtrl.invalidError' | transloco}}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.payCycleDropdownCtrl.requiredError' | transloco}}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.grossIncomeInputCtrl.requiredError' | transloco}}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.netIncomeInputCtrl.requiredError' | transloco}}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.lastPayDateCtrl.requiredErrors.default' | transloco}}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.lastPayDateCtrl.invalidError' | transloco}}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.directDepositSwitchCtrl.label' | transloco}} \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.collapseButtonCtrl' | transloco}}\r\n\t\t\t\t\t\t0\" (click)=\"removeIncome(income)\" style=\"display:inline-block;margin-left: 5px;\" class=\"removebutton\">{{'employedIncome.employedIncomeComponent.removeButtonCtrl' | transloco}}\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
{{'employedIncome.employedIncomeComponent.calculatedIncomeDisplayCtrl.grossLabel' | transloco}}: ${{formData.grossIncomeTotal | number:'':'en_US'}}
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
{{'employedIncome.employedIncomeComponent.calculatedIncomeDisplayCtrl.netLabel' | transloco}}: ${{formData.netIncomeTotal | number:'':'en_US'}}
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.instructionsCtrl.cashText' | transloco}}\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t

\r\n\t\t\t\t\t\t{{'employedIncome.employedIncomeComponent.instructionsCtrl.text' | transloco}}\r\n\t\t\t\t\t

\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n
\r\n\r\n\r\n","export enum EmploymentType {\r\n Employed=51,\r\n Benefit=52,\r\n Selfemployed=53,\r\n Businessman=54,\r\n None=55\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { MediaLayoutService } from '../../../service/media.layout.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\n\r\n@Component({\r\n selector: 'app-open-application-alert',\r\n templateUrl: './open-application-alert.component.html',\r\n styleUrls: ['./open-application-alert.component.scss'],\r\n providers: [provideTranslocoScope({ scope: 'open-application-alert', alias:'alert' })]\r\n})\r\nexport class OpenApplicationAlertComponent implements OnInit {\r\n\r\n constructor(private router: Router,\r\n private activeModal: NgbActiveModal) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public navigateToHomeApplicant() {\r\n this.activeModal.close();\r\n this.router.navigate([\"homeapplicant\"]);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

{{'alert.alertBox.heading'|transloco}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{{'alert.alertBox.openApplicationMessage'|transloco}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { forkJoin } from 'rxjs';\r\nimport { AuthService } from 'src/app/service/auth.service';\r\nimport { DisclosuresAndConsentsComponent } from '../../disclosures-and-consents/disclosures-and-consents/disclosures-and-consents.component';\r\nimport { TermsOfServiceComponent } from '../../disclosures-and-consents/terms-of-service/terms-of-service.component';\r\nimport { SessionService } from '../../service/session.service';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { ConfirmationBox } from '../../shared/components/confirmation-box/confirmation-box.model';\r\nimport { ConfirmationBoxService } from '../../shared/components/confirmation-box/confirmation-box.service';\r\nimport { ApiResponse } from '../models/api-response';\r\nimport { ApplicantFormData } from '../models/applicant-form-data';\r\nimport { ApplicantService } from '../service/applicant-service';\r\nimport { FormDataService } from '../service/form-data.service';\r\nimport { OpenApplicationAlertComponent } from './open-application-alert/open-application-alert.component';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\ndeclare const nid: any;\r\n@Component({\r\n selector: 'app-home-applicant',\r\n templateUrl: './home-applicant.component.html',\r\n styleUrls: ['./home-applicant.component.scss'],\r\n //providers: [provideTranslocoScope({ scope: 'home-applicant', alias: 'homeApplicant' })]\r\n})\r\nexport class HomeApplicantComponent implements OnInit {\r\n public formData: ApplicantFormData;\r\n public UserName: string;\r\n public roleID: number;\r\n public TranslationsForMobileDevice: any;\r\n\r\n languageKeyValue: Record = {\r\n en: [\r\n { langKey: 'Key1', langValue: 'English' },\r\n { langKey: 'Key2', langValue: 'Inglés' }\r\n ],\r\n es: [\r\n { langKey: 'Key1', langValue: 'Spanish' },\r\n { langKey: 'Key2', langValue: 'Español' }\r\n ]\r\n }\r\n\r\n constructor(private modalService: NgbModal,\r\n private router: Router,\r\n private formDataService: FormDataService,\r\n private applicantService: ApplicantService,\r\n private authService: AuthService,\r\n private sessionService: SessionService,\r\n private sharedService: SharedService,\r\n private translocoService: CustomTranslocoService,\r\n private _confirmationBoxService: ConfirmationBoxService) { }\r\n\r\n ngOnInit(): void {\r\n nid('setLinkedSiteId', 'form_palms436');\r\n let requestArray = [];\r\n\r\n this.roleID = this.sessionService.getSessionRoleID(\"RoleID\") ? this.sessionService.getSessionRoleID(\"RoleID\") : this.authService.currentUserValue.RoleID;\r\n\r\n if (this.roleID == 16 || this.roleID == 17) {\r\n this.UserName = this.authService.currentUserValue.UserName;\r\n } else {\r\n requestArray.push(this.applicantService.getApplicantFullNameByApplicantId());\r\n forkJoin(requestArray).subscribe((data) => {\r\n this.UserName = data[0].Result;\r\n });\r\n }\r\n\r\n let applicantId = this.sessionService.getSessionFormData(\"ApplicantID\");\r\n this.applicantService.getApplicantDetailByApplicantID(applicantId).subscribe({\r\n next: (data) => {\r\n if (data.Result != null) {\r\n let applicantLanguage = (data.Result.PreferredLanguageID != null || data.Result.PreferredLanguageID != undefined) ? data.Result.PreferredLanguageID : this.translocoService.getDefaultLanguage();\r\n this.translocoService.loadLanguageWiseTranslationSingleJson('home-applicant', applicantLanguage);\r\n setTimeout(() => {\r\n this.TranslationsForMobileDevice = this.translocoService.getLanguageTranslations('home-applicant', applicantLanguage);\r\n }, 1000);\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n public openDisclosures() {\r\n const modalRef = this.modalService.open(DisclosuresAndConsentsComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n }\r\n\r\n public openTermService() {\r\n const modalRef = this.modalService.open(TermsOfServiceComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n }\r\n\r\n public navigateToPreApplication() {\r\n //Retain applicant First Name, Last Name, Email\r\n let currentUser = this.authService.currentUserValue;\r\n this.formDataService.startNewApplication(currentUser);\r\n this.formDataService.setRoutePath(\"register\");\r\n this.checkApplicantHaveOpenApplications();\r\n }\r\n\r\n public goToExistingApplications() {\r\n this.formDataService.setRoutePath(\"login\");\r\n this.router.navigate(['existingapplications'])\r\n }\r\n\r\n private checkApplicantHaveOpenApplications() {\r\n this.applicantService.applicantHaveOpenApplications()\r\n .subscribe((data: ApiResponse) => {\r\n if (!data.IsSuccess) {\r\n return;\r\n }\r\n else {\r\n let vm = this;\r\n if (data.Result) {\r\n const modalRef = this.modalService.open(OpenApplicationAlertComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n else {\r\n //merchant language and applicant preferred language is mismatch alert text\r\n let alertMerchantApplicantMismatchHeading: string = this.TranslationsForMobileDevice.languageConsentAlert.heading;\r\n let alertMerchantApplicantMismatchTextEnglish: string = this.TranslationsForMobileDevice.languageConsentAlert.consentTextEnglish;\r\n let alertMerchantApplicantMismatchTextSapnish: string = this.TranslationsForMobileDevice.languageConsentAlert.consentTextSpanish;\r\n let alertMerchantApplicantMismatchYesBtn: string = this.TranslationsForMobileDevice.languageConsentAlert.agreeButtonLabel;\r\n let alertMerchantApplicantMismatchNoBtn: string = this.TranslationsForMobileDevice.languageConsentAlert.cancelButtonLabel;\r\n\r\n const consentTextInEnglish = this.translocoService.replacePlaceholders(this.languageKeyValue, this.translocoService.getLoginLanguage(), alertMerchantApplicantMismatchTextEnglish);\r\n const consentTextInSpanish = this.translocoService.replacePlaceholders(this.languageKeyValue, this.translocoService.getLoginLanguage(), alertMerchantApplicantMismatchTextSapnish);\r\n\r\n let BothAlertDisplayBasedOnLanguageList = `\r\n
    \r\n
  • \r\n Spanish: \r\n
    ${consentTextInSpanish}
    \r\n
  • \r\n
  • \r\n English: \r\n
    ${consentTextInEnglish}
    \r\n
  • \r\n
`;\r\n\r\n let loginLanguage: string = this.translocoService.getLoginLanguage();\r\n let applicantLanguage: string = \"\";\r\n let applicantID = this.sessionService.getSessionFormData(\"ApplicantID\");\r\n\r\n if (applicantID != null) {\r\n this.applicantService.getApplicantDetailByApplicantID(applicantID).subscribe({\r\n next: (data) => {\r\n if (data.Result != null)\r\n applicantLanguage = data.Result.PreferredLanguageID;\r\n\r\n let appCount = this.translocoService.getApplicationCount();\r\n if (appCount >= 1) {\r\n vm.translocoService.setActiveLanguage('en');\r\n }\r\n\r\n //check login language and applicant preferred language is mismatch or not\r\n if ((loginLanguage !== applicantLanguage && appCount == 0) || (appCount >= 1 && applicantLanguage !== this.translocoService.getDefaultLanguage())) {\r\n var confirmBox = new ConfirmationBox(alertMerchantApplicantMismatchHeading, BothAlertDisplayBasedOnLanguageList, true, true, false, false, alertMerchantApplicantMismatchYesBtn, alertMerchantApplicantMismatchNoBtn, '', '');\r\n this._confirmationBoxService.Open(confirmBox, \"md\").then(function (result) {\r\n if (result == false) {\r\n vm.router.navigate(['homeapplication'])\r\n } else {\r\n vm.translocoService.setActiveLanguage(loginLanguage);\r\n vm.router.navigate([\"productselection\"]);\r\n }\r\n });\r\n }\r\n else {\r\n this.router.navigate([\"productselection\"]);\r\n }\r\n }\r\n })\r\n }\r\n }\r\n }\r\n }),\r\n ((error: any) => {\r\n console.log(error);\r\n })\r\n }\r\n\r\n public goToCallCenterDashbaord() {\r\n this.formDataService.setRoutePath(\"login\");\r\n this.router.navigate(['callcenterdashboard'])\r\n }\r\n ngAfterViewInit() {\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \"Responsive\r\n
\r\n
\r\n
\r\n
\r\n \"Responsive\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Responsive\r\n
\r\n
\r\n
\r\n
\r\n \"Responsive\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { forkJoin } from 'rxjs';\r\nimport { FileUploadModel } from '../../entity/fileUploadModal';\r\nimport { LookUp } from '../../entity/lookup';\r\nimport { ModalConfigurationComponent } from '../../entity/modalConfigurationComponent';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { SocureDocument } from '../entity/socure-document';\r\nimport { ApplicantService } from '../service/applicant-service';\r\nimport { ApplicantFormData } from '../models/applicant-form-data';\r\nimport { FormDataService } from '../service/form-data.service';\r\n\r\n@Component({\r\n selector: 'app-uploaded-docs',\r\n templateUrl: './uploaded-docs.component.html',\r\n styleUrls: ['./uploaded-docs.component.scss']\r\n})\r\nexport class UploadedDocsComponent implements OnInit {\r\n\r\n @Input() modalConfigurationComponent: ModalConfigurationComponent;\r\n public uploadDocumentList: any = [];\r\n public identityInfoFromSocure: any;\r\n public idDocumentType: LookUp[];\r\n public DocumentId: number;\r\n public DocumentTypeId: number;\r\n public formData: ApplicantFormData;\r\n public uploadedDocuments: any = [];\r\n\r\n public documentInformation: SocureDocument;\r\n public fileUploadOptions: FileUploadModel = new FileUploadModel({\r\n ChooseLabel: 'Attach',\r\n UploadLabel: 'Upload',\r\n ShowUploadButton: true,\r\n ShowCancelButton: true,\r\n Draggable: true,\r\n Mode: 'advanced',\r\n Multiple: true,\r\n MaxFileSize: 10000000,\r\n FileLimit: 1,\r\n AcceptFile: 'image/*',\r\n InvalidFileTypeMessageSummary: \"{0} has wrong file type,\",\r\n InvalidFileLimitMessageDetail: \"limit is {0} at most\"\r\n });\r\n constructor(private sharedService: SharedService, private _applicantService: ApplicantService, public activeModal: NgbActiveModal, private formDataService: FormDataService, private applicantService: ApplicantService) { }\r\n\r\n ngOnInit(): void {\r\n this.DocumentTypeId = this.modalConfigurationComponent.modalId;\r\n this.uploadDocumentList = [];\r\n let requestArray = [];\r\n requestArray.push(this.sharedService.getLookUpList(null));\r\n forkJoin(requestArray).subscribe(response => {\r\n let lookUpData: LookUp[] = response[0].Result;\r\n this.idDocumentType = lookUpData.filter(x => x.LookUpType === \"SocureDocumentType\");\r\n\r\n });\r\n }\r\n\r\n public UploadDocument(event: any): void {\r\n if (event.files.length == 0) { return; }\r\n Array.from(event.files).forEach((_file: any) => {\r\n if (event.files[0].type === 'image/jpeg' || event.files[0].type === 'image/png' || event.files[0].type === 'image/jpg') {\r\n this.uploadDocumentList.push(_file);\r\n }\r\n });\r\n this.applicantService.getDocumentByDocumentID().subscribe((response => {\r\n if (response.Result.FileName != null) {\r\n let fileName = response.Result.FileName;\r\n this.applicantService.DeleteDocument(fileName).subscribe((response => {\r\n if (response.IsSuccess) {\r\n if (this.uploadDocumentList.length > 0) {\r\n let documentTypeID = this.DocumentTypeId;\r\n this._applicantService.UploadSocureDocument(this.uploadDocumentList, documentTypeID).subscribe(\r\n data => {\r\n if (data.IsSuccess) {\r\n this.uploadDocumentList.push(data.Result);\r\n this.Close();\r\n }\r\n else {\r\n this.uploadDocumentList[1] = null;\r\n }\r\n });\r\n }\r\n }\r\n }));\r\n }\r\n else {\r\n if (this.uploadDocumentList.length > 0) {\r\n let documentTypeID = this.DocumentTypeId;\r\n this._applicantService.UploadSocureDocument(this.uploadDocumentList, documentTypeID).subscribe(\r\n data => {\r\n if (data.IsSuccess) {\r\n this.uploadDocumentList.push(data.Result);\r\n this.Close();\r\n }\r\n else {\r\n this.uploadDocumentList[1] = null;\r\n }\r\n });\r\n }\r\n }\r\n }))\r\n }\r\n\r\n Close() {\r\n this.activeModal.close(this.uploadDocumentList);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n\r\n}\r\n","\r\n
\r\n

Upload Document

\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n","import { ChangeDetectorRef, Component, ElementRef, HostListener, OnInit, Renderer2, TemplateRef, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { forkJoin } from 'rxjs';\r\nimport { LookUp } from '../../entity/lookup';\r\nimport { Zips } from '../../entity/zips';\r\nimport { MediaLayoutService } from '../../service/media.layout.service';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { SocureService } from '../../service/socure.service';\r\nimport { ApplicantFormData } from '../models/applicant-form-data';\r\nimport { ApplicantService } from '../service/applicant-service';\r\nimport { FormDataService } from '../service/form-data.service';\r\nimport { DatePipe } from '@angular/common';\r\nimport { OnlineApplicationMode } from '../models/online-application-mode';\r\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UploadedDocsComponent } from '../uploaded-docs/uploaded-docs.component';\r\nimport { TableOptionModel } from '../../entity/dataTableOptions';\r\nimport { ModalConfigurationComponent } from '../../entity/modalConfigurationComponent';\r\nimport { SocureDocument } from '../entity/socure-document';\r\nimport { ConfirmationBoxService } from '../../shared/components/confirmation-box/confirmation-box.service';\r\nimport { ConfirmationBox } from '../../shared/components/confirmation-box/confirmation-box.model';\r\nimport moment from 'moment';\r\nimport { SocureDocumentAlertComponent } from '../socure-document-alert/socure-document-alert.component';\r\nimport { ApplicantIdentityRequest } from '../models/applicant-identity-request';\r\nimport { SignalRService } from 'src/app/service/signalr.service';\r\nimport { SocureEventBroardcast } from 'src/app/models/SocureEventBroadcast';\r\nimport { SignalREventType } from '../entity/enums/signalr-event-type';\r\nimport { environment } from '../../../environments/environment';\r\nimport { SocureRequest } from '../../models/SocureRequest';\r\nimport { MerchantService } from '../service/merchant-service';\r\nimport { ApplicantAddressRequest } from '../models/applicant-address-request';\r\nimport { escapeLeadingUnderscores } from 'typescript';\r\nimport { AddressTypes } from '../entity/enums/address-types';\r\nimport { AuthService } from '../../service/auth.service';\r\nimport { ApplicationCurrentStatuses } from '../../entity/ApplicationCurrentStatuses';\r\nimport { SocureVerificationDetailsRequest } from '../models/socure-verification-details-request';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\n//import { SocureEventType } from '../entity/enums/socure-event-type';\r\ndeclare const SocureInitializer: any;\r\ndeclare const fbq: any;\r\ndeclare const gtm: any;\r\ndeclare const nid: any;\r\n\r\n@Component({\r\n selector: \"app-identity\",\r\n templateUrl: \"./identity-information.component.html\",\r\n styleUrls: ['./identity-information.component.scss'],\r\n providers: [DatePipe, provideTranslocoScope({ scope: 'identity' })]\r\n})\r\n\r\nexport class IdentityInformationComponent implements OnInit {\r\n @ViewChild('deleteData', { static: true }) _deleteTemplate: TemplateRef;\r\n isExistingApplication: boolean;\r\n @HostListener('window:resize', [])\r\n\r\n public onResize() {\r\n this.checkScreenSize();\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n OnlineApplicationMode: typeof OnlineApplicationMode = OnlineApplicationMode;\r\n public idDocumentType: LookUp[];\r\n public translatedidDocumentType: LookUp[];\r\n public stateList: Zips[];\r\n public applicantDOB: any;\r\n public isMobileDevice: boolean = false;\r\n public formData: ApplicantFormData;\r\n public SocureDocument: any[];\r\n public SocureDocuments: SocureDocument[];\r\n modal: ModalConfigurationComponent;\r\n public dobMaxDate = new Date();\r\n public dobMinDate = new Date();\r\n public isInvalid: boolean = false;\r\n public isExistingUserApplication: boolean = false;\r\n public isDocumentIdSelected: boolean = false;\r\n public isNewUser: boolean;\r\n public isInvalidDate: boolean = false;\r\n public DocumentVerificationRequirementID: number;\r\n public DocumentVerificationRequirementName: string;\r\n public hideForm: boolean = true;\r\n Columns: any = [];\r\n public passportLookUp: LookUp;\r\n public greencardLookUp: LookUp;\r\n public isFormDataAvailable: boolean = false;\r\n public currentStatuses: ApplicationCurrentStatuses;\r\n public body: any;\r\n public lastDOBInput: any;\r\n public applicationLanguage: string = null;\r\n TableOptions: TableOptionModel = new TableOptionModel({\r\n IsScrollable: true,\r\n ScrollHeight: '20vh',\r\n IsPaginator: false,\r\n SelectionMode: 'single',\r\n TotalWidth: \"450px\",\r\n });\r\n\r\n constructor(public P_MediaLayoutService: MediaLayoutService,\r\n public router: Router,\r\n private sharedService: SharedService,\r\n private socureService: SocureService,\r\n private formDataService: FormDataService,\r\n private applicantService: ApplicantService,\r\n private datePipe: DatePipe,\r\n private modalService: NgbModal,\r\n private confirmationBoxService: ConfirmationBoxService,\r\n private signalService: SignalRService,\r\n public merchantService: MerchantService,\r\n private ele: ElementRef, private ren: Renderer2,\r\n private cd: ChangeDetectorRef,\r\n private authService: AuthService,\r\n private translocoScopeService: CustomTranslocoService) { }\r\n\r\n\r\n ngOnInit(): void {\r\n this.formData = this.formDataService.getFormData(); \r\n nid('setLinkedSiteId', 'form_palms436');\r\n nid('identify', this.formData.Applications.ApplicationID.toString());\r\n this.initiateService();\r\n this.SocureDocuments = [];\r\n this.socureService.initiateDeviceSvc(\"profile\");\r\n let dobMaxYear = this.dobMaxDate.getFullYear() - 18;\r\n let dobMinYear = dobMaxYear - 109;\r\n let dobMaxMonth = this.dobMaxDate.getMonth();\r\n let dobMaxDay = this.dobMaxDate.getDate();\r\n this.dobMaxDate = new Date(dobMaxYear, dobMaxMonth, dobMaxDay, 0, 0, 0, 0);\r\n this.dobMinDate = new Date(dobMinYear, dobMaxMonth, dobMaxDay, 0, 0, 0, 0);\r\n this.applicationLanguage = this.translocoScopeService.getCurrentLanguage();\r\n\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n let requestArray = [];\r\n requestArray.push(this.sharedService.getLookUpList(null));\r\n requestArray.push(this.sharedService.getStateList());\r\n requestArray.push(this.merchantService.GetDocumentVerificationRequirementID(this.formData.Applications.ApplicationID));\r\n requestArray.push(this.applicantService.getApplicantIdentity());\r\n\r\n forkJoin(requestArray).subscribe(response => {\r\n let lookUpData: LookUp[] = response[0].Result;\r\n this.idDocumentType = lookUpData.filter(x => x.LookUpType === \"IDDocumentType\");\r\n this.getTranslatedIDType();\r\n this.passportLookUp = lookUpData.filter(x => x.LookUpID === 1253)[0]; //passport\r\n this.greencardLookUp = lookUpData.filter(x => x.LookUpID === 1254)[0]; //green card\r\n this.stateList = response[1].Result;\r\n\r\n this.formData.Identity = response[3].Result !== null ? response[3].Result : new ApplicantIdentityRequest();\r\n this.formData.Identity.CellNumber = response[3].Result.CellNumber != null ? response[3].Result.CellNumber : null;\r\n\r\n this.lastDOBInput = this.formData.Identity.DOB;\r\n // Document Verification Requirement start\r\n this.DocumentVerificationRequirementID = response[2].Result;\r\n if (this.DocumentVerificationRequirementID > 0) {\r\n this.DocumentVerificationRequirementName = lookUpData.filter(x => x.LookUpID === this.DocumentVerificationRequirementID)[0].Name;\r\n }\r\n else {\r\n this.DocumentVerificationRequirementName = lookUpData.filter(x => x.LookUpID === 3602)[0].Name; //without merchant - set to optional\r\n }\r\n this.isFormDataAvailable = (this.formData.Identity.DocumentTypeID != null && this.formData.Identity.DocumentTypeID > 0) ? true : false;\r\n this.hideForm = (!this.isFormDataAvailable && this.DocumentVerificationRequirementName === \"Mandatory\") ? true : false;\r\n\r\n // Document Verification Requirement end\r\n }, (error => {\r\n console.log(error);\r\n }));\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n modifyStyle() {\r\n let ui = this.ele.nativeElement.querySelector(\".p-datepicker\");\r\n if (ui)\r\n this.ren.setStyle(ui, \"top\", \"unset\")\r\n }\r\n checkScreenSize() {\r\n this.isMobileDevice = window.innerWidth <= 600;\r\n }\r\n\r\n validateSection() {\r\n document.querySelectorAll(\".identitySection\").forEach((input: any) => {\r\n if (input.value === '' || input.value === undefined || input.value === null) {\r\n input.classList.add(\"ng-dirty\");\r\n }\r\n });\r\n }\r\n\r\n save() {\r\n this.formDataService.saveStateList(this.stateList);\r\n this.formData.Identity.DOB = this.datePipe.transform(this.formData.Identity.DOB, 'MM/dd/yyyy');\r\n this.formDataService.setFormData(this.formData);\r\n }\r\n\r\n public goToNext(form: any) {\r\n this.validateSection();\r\n if (!form.valid || this.isInvalidDate) {\r\n this.isInvalid = true;\r\n return;\r\n }\r\n fbq('trackCustom', 'BasicInfoLicenseContinue', { tagId: '123' });\r\n if (environment.googleTagsEnabled) {\r\n gtm.push({ 'event': 'BasicInfoLicenseContinue', \"tagId\": '123' });\r\n }\r\n // if (!this.isIdentityInfoAvailable) {\r\n // console.log(\"add identity\");\r\n this.formData.Identity.LanguageKey = 'identity.identity.toastMessageCtrl';\r\n this.sharedService.GetCurrentStatusesByApplicationId(this.formData.Applications.ApplicationID)\r\n .subscribe((data => {\r\n this.currentStatuses = (data.Result !== null && data.Result !== undefined) ? data.Result : new ApplicationCurrentStatuses;\r\n if (this.currentStatuses.isApplicationDecisionNotAvailable == true) {\r\n this.save();\r\n this.applicantService.addApplicantIdentity(this.formData.Identity).subscribe((response => {\r\n if (response !== null) {\r\n if (response.IsSuccess) {\r\n this.router.navigate(['./address']);\r\n }\r\n }\r\n }), (error => {\r\n console.log(error);\r\n }));\r\n }\r\n else {\r\n this.applicantService.navigateToDashboardOnApplicationDicision();\r\n }\r\n }),\r\n (error => {\r\n console.log(error);\r\n }));\r\n }\r\n\r\n public openUploadedDocuments() {\r\n if (this.formData.Identity.DocumentTypeID == null || this.formData.Identity.DocumentTypeID == undefined) {\r\n this.isDocumentIdSelected = true;\r\n return;\r\n }\r\n let DocumentId = this.formData.Identity.DocumentTypeID\r\n this.modal = new ModalConfigurationComponent();\r\n const modalRef = this.modalService.open(UploadedDocsComponent, { size: 'md', backdrop: 'static', keyboard: true });\r\n this.modal.modalId = DocumentId;\r\n modalRef.componentInstance.modalConfigurationComponent = this.modal;\r\n modalRef.result.then((data) => {\r\n if (data.length > 1) {\r\n var date = this.datePipe.transform(data[1].dob, 'MM/dd/yyyy');\r\n this.formData.Identity.DOB = date;\r\n this.formData.Identity.IdentificationDocumentID = data[1].documentNumber;\r\n let address: string = data[1].address;\r\n let addressList = address.split(',');\r\n let state = (addressList.length > 1) ? addressList[1].trim().substring(0, 2) : this.formData.Identity.IDDocumentIssuanceState;\r\n this.formData.Identity.IDDocumentIssuanceState = state;\r\n }\r\n this.getUploadedDocuments();\r\n },//Dismiss Modal Event\r\n () => { });\r\n\r\n }\r\n public deleteDocument(fileName: string) {\r\n let _this = this;\r\n this.confirmationBoxService.Open(\r\n new ConfirmationBox('Delete Document', 'Are you sure you want to delete this document?', true, true, false, false, 'Yes', 'No', '', ''), \"md\").then(function (result) {\r\n if (result == true) {\r\n _this.applicantService.DeleteDocument(fileName).subscribe((response => {\r\n if (response !== null) {\r\n if (response.IsSuccess) {\r\n _this.SocureDocuments = [];\r\n _this.formData.Identity.IDDocumentIssuanceState = null;\r\n _this.formData.Identity.IdentificationDocumentID = null;\r\n _this.formData.Identity.DOB = null;\r\n _this.Columns = [];\r\n }\r\n }\r\n }), (error => {\r\n console.log(error);\r\n }));\r\n }\r\n });\r\n }\r\n\r\n getUploadedDocuments() {\r\n this.SocureDocuments = [];\r\n this.applicantService.getDocumentByDocumentID().subscribe((response => {\r\n if (response.Result != null) {\r\n let getDocResult: SocureDocument = response.Result;\r\n if (getDocResult.OriginalFileName !== \"\" &&\r\n getDocResult.OriginalFileName !== null &&\r\n getDocResult.OriginalFileName !== undefined) {\r\n this.SocureDocuments.push(response.Result);\r\n\r\n this.SocureDocuments[0].DocumentType = this.idDocumentType.find(doc => doc.LookUpID == this.SocureDocuments[0].DocumentTypeID).Name;\r\n }\r\n if (this.SocureDocuments.length > 0)\r\n this.updateDocuments();\r\n }\r\n }));\r\n }\r\n\r\n updateDocuments() {\r\n this.Columns = [\r\n {\r\n field: \"DocumentType\",\r\n header: \"Document Type\",\r\n width: '50%',\r\n sortFlag: false,\r\n searchFlag: false\r\n },\r\n {\r\n field: \"OriginalFileName\",\r\n header: \"Document Name\",\r\n width: '50px',\r\n sortFlag: false,\r\n searchFlag: false\r\n },\r\n {\r\n field: \"StatusID\",\r\n header: \"Action\",\r\n width: '30px',\r\n cellTemplate: this._deleteTemplate,\r\n sortFlag: false,\r\n searchFlag: false\r\n },\r\n ];\r\n }\r\n\r\n // For manual date start\r\n addSlashToDate($event: any) {\r\n if (($event.code != \"Backspace\" && $event.code != \"Delete\") && ($event.srcElement.value.length == 2 || $event.srcElement.value.length == 5)) {\r\n $event.srcElement.value += '/';\r\n }\r\n\r\n if ($event.code == \"Enter\" || $event.code == \"Tab\") {\r\n let date = moment($event.srcElement.value, 'M/D/YYYY');\r\n if (date.isValid() == true) {\r\n var currentDate = new Date($event.srcElement.value);\r\n if (currentDate > this.dobMaxDate || currentDate < this.dobMinDate) {\r\n this.isInvalidDate = true;\r\n }\r\n else {\r\n this.isInvalidDate = false;\r\n }\r\n let d = new Date($event.srcElement.value);\r\n $event.srcElement.value = ('0' + (d.getMonth() + 1)).slice(-2) + '/' + ('0' + d.getDate()).slice(-2) + '/' + d.getFullYear();\r\n this.formData.Identity.DOB = new Date($event.srcElement.value);\r\n }\r\n else {\r\n $event.srcElement.value = '';\r\n }\r\n }\r\n\r\n }\r\n onlyNumbersToDate($event: any) {\r\n\r\n if (($event.code != \"Backspace\" && $event.code != \"Delete\") && $event.srcElement.value.length == 2) {\r\n $event.srcElement.value += '/';\r\n }\r\n\r\n if (($event.code != \"Backspace\" && $event.code != \"Delete\") && $event.srcElement.value.length == 5) {\r\n $event.srcElement.value += '/';\r\n }\r\n\r\n if ($event.code == \"Backspace\"\r\n || $event.code == \"Delete\"\r\n || $event.code == \"Enter\"\r\n || $event.code == \"Tab\"\r\n || $event.code == \"ArrowLeft\"\r\n || $event.code == \"ArrowRight\") {\r\n return true;\r\n }\r\n if ($event.srcElement.value.length < 10) {\r\n if (($event.keyCode >= 48 && $event.keyCode <= 57)\r\n || ($event.keyCode >= 96 && $event.keyCode <= 105))\r\n return true;\r\n else\r\n return false;\r\n }\r\n else\r\n return false;\r\n }\r\n ParseManualDate($event: any) {\r\n let ld = new Date(this.lastDOBInput);\r\n let lastInputDate = ('0' + (ld.getMonth() + 1)).slice(-2) + '/' + ('0' + ld.getDate()).slice(-2) + '/' + ld.getFullYear();\r\n\r\n let currentDate = new Date($event.srcElement.value);\r\n let setDate = ('0' + (currentDate.getMonth() + 1)).slice(-2) + '/' + ('0' + currentDate.getDate()).slice(-2) + '/' + currentDate.getFullYear();\r\n\r\n if (lastInputDate !== undefined && lastInputDate === setDate) {\r\n return;\r\n }\r\n\r\n let date = moment($event.srcElement.value, 'MM/DD/YY', true);\r\n let fullDate = moment($event.srcElement.value, 'MM/DD/YYYY', true);\r\n if (date.isValid() == true || fullDate.isValid() == true) {\r\n //var currentDate = new Date($event.srcElement.value);\r\n if (currentDate > this.dobMaxDate || currentDate < this.dobMinDate) {\r\n this.isInvalidDate = true;\r\n }\r\n else {\r\n this.isInvalidDate = false;\r\n }\r\n\r\n let d = new Date($event.srcElement.value);\r\n $event.srcElement.value = setDate; //('0' + (d.getMonth() + 1)).slice(-2) + '/' + ('0' + d.getDate()).slice(-2) + '/' + d.getFullYear();\r\n this.formData.Identity.DOB = new Date($event.srcElement.value);\r\n this.lastDOBInput = new Date($event.srcElement.value);\r\n }\r\n else {\r\n $event.srcElement.value = '';\r\n }\r\n\r\n\r\n }\r\n // For manual date end\r\n\r\n processDateInput($event: any) {\r\n const inputValue = $event.target.value;\r\n const date = moment(inputValue, ['MM/DD/YY', 'MM/DD/YYYY'], true);\r\n\r\n if (date.isValid()) {\r\n const parsedDate = date.toDate();\r\n if (parsedDate > this.dobMaxDate || parsedDate < this.dobMinDate) {\r\n this.isInvalidDate = true;\r\n } else {\r\n this.isInvalidDate = false;\r\n }\r\n\r\n $event.target.value = date.format('MM/DD/YYYY');\r\n this.formData.Identity.DOB = parsedDate;\r\n this.lastDOBInput = parsedDate;\r\n }\r\n else {\r\n this.formData.Identity.DOB = ''\r\n }\r\n }\r\n\r\n onSocureVerificationProgress(progress: any) {\r\n console.log('onProgress');\r\n this.formData.Identity.SocureEventId = progress.eventId;\r\n }\r\n\r\n onSocureVerificationSuccess(response: any) {\r\n //let decision = response.verifyResult.documentVerification.decision.value;\r\n //let dob = response.verifyResult.documentVerification.documentData.dob;\r\n //let stateCode = response.verifyResult.documentVerification.documentType.state;\r\n //if (decision === \"accept\") {\r\n // this.formData.Identity.DocumentTypeID = null;\r\n // this.formData.Identity.DOB = this.datePipe.transform(dob, 'MM/dd/yyyy');\r\n // this.formData.Identity.IDDocumentIssuanceState = this.stateList.filter(x => x.StateCode == stateCode)[0].StateCode;\r\n // this.formData.Identity.IdentificationDocumentID = response.verifyResult.documentVerification.documentData.documentNumber;\r\n\r\n // if (dob > this.dobMaxDate || dob < this.dobMinDate) {\r\n // this.isDobDisable = false;\r\n // this.isInvalidDate = true;\r\n // }\r\n //}\r\n //else {\r\n // this.isDobDisable = false;\r\n // this.isReadOnly = false;\r\n // this.isInvalidDate = false;\r\n //}\r\n //this.isDocumentVerificationRequired = false;\r\n document.getElementById(\"socureWebSdk\").style.display = 'none';\r\n //this.cd.detectChanges();\r\n }\r\n\r\n onSocureVerificationError(error: any) {\r\n console.log('onSocureVerificationError Error ->');\r\n console.log(error);\r\n this.hideForm = false;\r\n }\r\n\r\n startSocureVerification() {\r\n let vm = this;\r\n let modalOption: NgbModalOptions = {\r\n size: (this.isMobileDevice) ? 'sm' : 'lg',\r\n backdrop: 'static',\r\n keyboard: true,\r\n centered: true\r\n };\r\n\r\n const webSDKInitData =\r\n {\r\n \"firstName\": this.formData.FirstName,\r\n \"surName\": this.formData.LastName,\r\n \"email\": this.formData.Email,\r\n \"shippingDetails\": {\r\n \"firstName\": this.formData.FirstName,\r\n \"surName\": this.formData.LastName,\r\n \"email\": this.formData.Email\r\n }\r\n };\r\n var modifyExperience = {\r\n \"sendMessage\": \"true\",\r\n \"flow\": {\r\n \"name\": \"socure_default\"\r\n },\r\n \"language\": vm.applicationLanguage,\r\n \"documentType\": \"license\"\r\n };\r\n const modalRef = this.modalService.open(SocureDocumentAlertComponent, modalOption);\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) {\r\n document.getElementById(\"socureWebSdk\").style.display = 'block';\r\n\r\n const socureVerificationConfig = {\r\n onProgress: (event: any) => this.onSocureVerificationProgress(event), //callback method for reading the progress status\r\n onSuccess: (event: any) => this.onSocureVerificationSuccess(event), //callback method to read the success response\r\n onError: (event: any) => this.onSocureVerificationError(event), //callback method to read the error response\r\n qrCodeNeeded: true\r\n };\r\n\r\n document.getElementById(\"socureWebSdk\").style.display = 'block';\r\n SocureInitializer.init(environment.socuresdkKey)\r\n .then((lib: any) => {\r\n lib.init(environment.socuresdkKey, \"#socureWebSdk\", socureVerificationConfig).then(function () {\r\n lib.start(2, webSDKInitData, modifyExperience).then(function (response: any) {\r\n },\r\n function (error: any) {\r\n console.log('SocureInitializer Error ->');\r\n console.log(error);\r\n }\r\n );\r\n });\r\n });\r\n }\r\n },//Dismiss Modal Event\r\n () => { //Do Something\r\n }\r\n );\r\n\r\n\r\n }\r\n private refreshIdentityInformation(message: SocureEventBroardcast) {\r\n let requestArray = [];\r\n switch (message.type) {\r\n case SignalREventType.RefreshIdentityPage:\r\n let result = JSON.parse(message.payload);\r\n\r\n if (result.reason == \"VERIFICATION_COMPLETED\") {\r\n let socureVerificationDetails: SocureVerificationDetailsRequest = new SocureVerificationDetailsRequest();\r\n socureVerificationDetails.ApplicationId = this.formData.Applications.ApplicationID;\r\n socureVerificationDetails.SocureReferenceID = result.id;\r\n socureVerificationDetails.VerificationResult = message.payload\r\n requestArray.push(this.applicantService.addApplicantionSocureVerificationDetails(socureVerificationDetails));\r\n }\r\n\r\n if (this.formData.Identity.SocureEventId == result.origId && result.reason == \"VERIFICATION_COMPLETED\") {\r\n\r\n if (result.event.data.documentVerification.documentData.documentNumber != undefined) {\r\n this.hideForm = false;\r\n this.formData.Identity.DocumentTypeID = null;\r\n this.formData.Identity.IdentificationDocumentID = result.event.data.documentVerification.documentData.documentNumber;\r\n let addressList = result.event.data.documentVerification.documentData.address.split(',');\r\n this.formData.Identity.IDDocumentIssuanceState = (addressList.length > 1) ? addressList[(addressList.length-1)].trim().substring(0, 2) : this.formData.Identity.IDDocumentIssuanceState;\r\n this.formData.Identity.DOB = this.datePipe.transform(result.event.data.documentVerification.documentData.dob, 'MM/dd/yyyy');\r\n if (message.otherData != undefined || message.otherData != null) {\r\n let documentType = JSON.parse(message.otherData);\r\n if (documentType != undefined && documentType != null && documentType !== \"\") {\r\n this.formData.Identity.DocumentTypeID = documentType.selectedDocumentTypeID;\r\n }\r\n }\r\n\r\n\r\n if (result.event.data.documentVerification.documentData.parsedAddress != undefined || result.event.data.documentVerification.documentData.parsedAddress != null) {\r\n let parsedAddress: ApplicantAddressRequest = new ApplicantAddressRequest();\r\n parsedAddress.Address = result.event.data.documentVerification.documentData.parsedAddress.physicalAddress;\r\n parsedAddress.City = result.event.data.documentVerification.documentData.parsedAddress.city;\r\n parsedAddress.State = result.event.data.documentVerification.documentData.parsedAddress.state;\r\n parsedAddress.Zip = result.event.data.documentVerification.documentData.parsedAddress.zip;\r\n parsedAddress.AddressTypeID = AddressTypes.PermanentAddress;\r\n\r\n requestArray.push(this.applicantService.addApplicantSocureAddress(parsedAddress));\r\n\r\n }\r\n }\r\n }\r\n if (requestArray.length > 0) {\r\n forkJoin(requestArray).subscribe(response => {\r\n },\r\n (error => {\r\n console.log(error);\r\n })\r\n );\r\n }\r\n break;\r\n }\r\n }\r\n\r\n\r\n\r\n private initiateService() {\r\n this.signalService.initSignalR();\r\n this.signalService.statuschanged$.subscribe((message) => {\r\n this.refreshIdentityInformation(message);\r\n });\r\n\r\n this.signalService.connectionError.subscribe(() => {\r\n //do nothnig\r\n });\r\n }\r\n private getTranslatedIDType(): void {\r\n //provided ID Type look up list and assets/i18n/component/language.json file\r\n this.translatedidDocumentType = this.translocoScopeService.translateLookupDropdownOptions(this.idDocumentType, 'identity.identity.idTypeLookUpCtrl');\r\n }\r\n}\r\n\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
    \r\n
  • {{'identity.identity.benefitsList.listItem1'|transloco}}
  • \r\n
  • {{'identity.identity.benefitsList.listItem2'|transloco}}
  • \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'identity.identity.idTypeCtrl.requiredError'|transloco}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {{'identity.identity.idNumberCtrl.requiredError'|transloco}}\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'identity.identity.issuanceStateCtrl.requiredError'|transloco}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'identity.identity.dobCtrl.requiredError'|transloco}}\r\n
\r\n {{'identity.identity.dobCtrl.invalidDOBError'|transloco}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
    \r\n
  • {{'identity.identity.benefitsList.listItem1'|transloco}}
  • \r\n
  • {{'identity.identity.benefitsList.listItem2'|transloco}}
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'identity.identity.idTypeCtrl.requiredError'|transloco}}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {{'identity.identity.idNumberCtrl.requiredError'|transloco}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'identity.identity.issuanceStateCtrl.requiredError'|transloco}}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{'identity.identity.dobCtrl.requiredError'|transloco}}\r\n
\r\n {{'identity.identity.dobCtrl.invalidDOBError'|transloco}}\r\n
\r\n
\r\n \r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ApplicantService } from '../service/applicant-service';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Router } from '@angular/router';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\n\r\n\r\n@Component({\r\n selector: 'app-socure-document-alert',\r\n templateUrl: './socure-document-alert.component.html',\r\n styleUrls: ['./socure-document-alert.component.scss'],\r\n providers:[provideTranslocoScope({scope:'sourcedocument'})]\r\n})\r\nexport class SocureDocumentAlertComponent implements OnInit {\r\n\r\n public checked: any;\r\n constructor(public activeModal: NgbActiveModal, private router: Router,\r\n private _applicantService: ApplicantService,\r\n private _sharedService: SharedService) { }\r\n\r\n ngOnInit(): void {\r\n //Do Something\r\n }\r\n closeWithSuccess() {\r\n this.activeModal.close({ error: 0, IsSuccess: true });\r\n }\r\n\r\n close() {\r\n this.activeModal.dismiss();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","\r\n
\r\n
\r\n

\r\n {{'sourcedocument.heading'|transloco}}\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n","export enum SignalREventType {\r\n RefreshIdentityPage = 5\r\n}\r\n","export class SocureVerificationDetailsRequest {\r\n public ApplicationId: number;\r\n public SocureReferenceID: string;\r\n public VerificationResult: string;\r\n\r\n constructor() {\r\n this.ApplicationId = null;\r\n this.SocureReferenceID = null;\r\n this.VerificationResult = null;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PrintService } from '../../service/print.service';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\n\r\n@Component({\r\n selector: 'app-cf-consent',\r\n templateUrl: './cf-consent.component.html',\r\n styleUrls: ['./cf-consent.component.scss'],\r\n providers: [provideTranslocoScope({ scope: 'cf-consent', alias:'cfConsent'})]\r\n})\r\nexport class CfConsentComponent implements OnInit {\r\n\r\n constructor(public activeModal: NgbActiveModal, private printService: PrintService, private _sharedService: SharedService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n close() {\r\n this.activeModal.dismiss();\r\n }\r\n printCFConsent() {\r\n let divToPrint = document.getElementById('cfConsentText')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printService.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","
\r\n
\r\n
{{'cfConsent.cfConsent.heading'|transloco}}
\r\n
\r\n
\r\n

\r\n {{'cfConsent.cfConsent.para'|transloco}} (702) 723-9155{{'cfConsent.cfConsent.text1'|transloco}} application@vernancefunding.com {{'cfConsent.cfConsent.text2'|transloco}} (702) 660-9100.\r\n {{'cfConsent.cfConsent.text3'|transloco}}\r\n

\r\n
\r\n \r\n
\r\n\r\n","\r\nexport class Lender {\r\n public LenderID: number;\r\n public LenderName: string;\r\n public Address: string;\r\n public City: string;\r\n public State: string;\r\n public Zip: string;\r\n public Email: string;\r\n public PhoneNumber: string;\r\n public ServiceNumber: string;\r\n public FaxNumber: string;\r\n public WebSite: string;\r\n public Logo: any;\r\n public ApplicantWaitPeriod: number;\r\n public StatusID: number;\r\n public CreatedOn: Date;\r\n public CreatedBy: number;\r\n public UpdatedOn: Date;\r\n public UpdatedBy: number;\r\n public ShortName: string;\r\n constructor() {\r\n this.PhoneNumber = \"\";\r\n this.FaxNumber = \"\";\r\n this.WebSite = \"\";\r\n }\r\n}\r\n","export class LenderRequest {\r\n public ProductCategoryID: number;\r\n public State: string;\r\n public NetIncome?: number;\r\n public GrossIncome?: number;\r\n}\r\n","\r\nexport class MLPAddress {\r\n public AddressId: number;\r\n public SourceTypeId: number\r\n public SourceId: number\r\n public AddressTypeId: number\r\n public Address: string;\r\n public City: string;\r\n public State: string;\r\n public Zip: string;\r\n public IsPrimary: boolean\r\n public IsActive: boolean\r\n public UpdatedOn: string;\r\n public UpdatedBy: number\r\n}\r\n","export class UpdateRequest {\r\n public LenderID?: number;\r\n public FundingPartnerID?: number;\r\n public FSApplicationStatusID?: number;\r\n public LanguageKey:string;\r\n\r\n constructor() {\r\n this.FSApplicationStatusID = null;\r\n }\r\n}\r\n","export enum AffTermsType {\r\n TERMS_AND_CONDITIONS = 1,\r\n ARBITRATION,\r\n TCPA,\r\n PP\r\n};\r\n","import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PrintService } from '../../service/print.service';\r\nimport { SharedService } from '../../service/shared.service';\r\n\r\n@Component({\r\n selector: 'app-lender-terms',\r\n templateUrl: './lender-terms.component.html',\r\n styleUrls: ['./lender-terms.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class LenderTermsComponent implements OnInit {\r\n @Input() title = `Terms And Conditions`;\r\n @Input() body = `This place is reserved for Terms and Conditions`;\r\n constructor(private activeModal: NgbActiveModal,\r\n private printService: PrintService, private _sharedService: SharedService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n closeModal() {\r\n this.activeModal.dismiss();\r\n }\r\n printLenderConsent() {\r\n let divToPrint = document.getElementById('lenderConsentText')?.innerHTML;\r\n if (divToPrint !== undefined) {\r\n this.printService.printDocument(divToPrint);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","
\r\n

{{title}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","export enum JohnDeereTermsType {\r\n TERMS_AND_AUTHORIZATION = 1,\r\n TERMS_AND_CONDITIONS = 2\r\n};\r\n","export class ApplicantConsent {\r\n\r\n public AgreeAFFTerms: boolean;\r\n public AgreeAFFArbitration: boolean;\r\n public AgreeAFFTcpa: boolean;\r\n public AgreeAFFTPP: boolean;\r\n public AgreeJDTermsAuth: boolean;\r\n public AgreeJDTermsCond: boolean;\r\n public AgreeUCFSTerms: boolean;\r\n public AgreeDDTerms: boolean;\r\n public AgreeCFTerms: boolean;\r\n public AgreeOKITerms: boolean;\r\n public AgreeGWText: boolean;\r\n public AgreeGWTc: boolean;\r\n public AgreeUownPP: boolean;\r\n public AgreeUownTos: boolean;\r\n public AgreeFlexShopperPP: boolean;\r\n public AgreeFlexShopperTos: boolean;\r\n public AgreeUSAlliancePP: boolean;\r\n public AgreeUSAllianceTos: boolean;\r\n public AgreeSDFCUPP: boolean;\r\n constructor() {\r\n this.AgreeAFFTerms = false;\r\n this.AgreeAFFArbitration = false;\r\n this.AgreeAFFTcpa = false;\r\n this.AgreeJDTermsAuth = false;\r\n this.AgreeJDTermsCond = false;\r\n this.AgreeUCFSTerms = false;\r\n this.AgreeDDTerms = false;\r\n this.AgreeCFTerms = false;\r\n this.AgreeOKITerms = false;\r\n this.AgreeGWText = false;\r\n this.AgreeGWTc = false;\r\n this.AgreeUownPP = false;\r\n this.AgreeUownTos = false;\r\n this.AgreeFlexShopperPP = false;\r\n this.AgreeFlexShopperTos = false;\r\n this.AgreeUSAlliancePP = false;\r\n this.AgreeUSAllianceTos = false;\r\n this.AgreeSDFCUPP = false;\r\n\r\n }\r\n}\r\n","export class ApplicationLenderConsentsDetails {\r\n public ApplicationLenderConsentId: number;\r\n\r\n public ApplicationID: number;\r\n\r\n public LenderConsentID: number;\r\n\r\n public IsAgree: boolean;\r\n\r\n public UpdatedBy: number;\r\n\r\n public UpdatedOn: Date;\r\n\r\n constructor() {\r\n this.ApplicationLenderConsentId = null;\r\n this.ApplicationID = null;\r\n this.LenderConsentID = null;\r\n this.IsAgree = null;\r\n this.UpdatedBy = null;\r\n this.UpdatedOn = null;\r\n }\r\n}\r\n","export enum GWTermsType {\r\n CONSENT_TO_TEXT = 1,\r\n TERMS_AND_CONDITIONS\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { environment } from '../../../environments/environment';\r\nimport { Constants } from '../../shared/constant';\r\nimport { ApiResponse } from '../models/api-response';\r\nimport { throwError } from \"rxjs/internal/observable/throwError\";\r\nimport { catchError } from \"rxjs/internal/operators/catchError\";\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n })\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CallCenterService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public sendConsentNotification(_consentRequest: any) {\r\n return this.http.post(environment.apiUrl + Constants.WEB_API_URL_SEND_CALL_CENTER_USER_CONSENTS_EMAIL, _consentRequest, httpOptions).\r\n pipe(catchError(this.handleError));\r\n }\r\n\r\n private handleError(error: HttpErrorResponse) {\r\n if (error.error instanceof ErrorEvent) {\r\n // client-side error\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // server-side error\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`;\r\n }\r\n return throwError(error.error);\r\n };\r\n}\r\n","export class ConsentRequest {\r\n public ApplicantName: string;\r\n public ApplicationID: number;\r\n public UrlKey: string[];\r\n public Url: string[];\r\n public Email: string;\r\n public LanguageKey: string;\r\n\r\n constructor() {\r\n this.ApplicantName = null;\r\n this.ApplicationID = null;\r\n this.UrlKey = [];\r\n this.Url = [];\r\n this.Email = null;\r\n this.LanguageKey = null;\r\n }\r\n}\r\n","export class LenderContactTranslation {\r\n public PhoneLabel: string;\r\n public ServiceNoLabel: string;\r\n constructor() {\r\n this.PhoneLabel = null;\r\n this.ServiceNoLabel = null;\r\n }\r\n}\r\n","import { Component, HostListener, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\r\nimport { forkJoin } from 'rxjs/internal/observable/forkJoin';\r\nimport { CfConsentComponent } from '../../disclosures-and-consents/cf-consent/cf-consent.component';\r\nimport { MediaLayoutService } from '../../service/media.layout.service';\r\nimport { CancelApplicationComponent } from '../cancel-application/cancel-application.component';\r\nimport { ApplicationStatus, ApplicationStatus as ApplicationStatusEnum } from '../entity/application-status-enum';\r\nimport { ApplicantFormData } from '../models/applicant-form-data';\r\nimport { Lender } from '../models/lender';\r\nimport { LenderConsentDetails } from '../models/lender-consent-details';\r\nimport { LenderFundingPartner } from '../models/lender-funding-partner';\r\nimport { LenderRequest } from '../models/lender-request';\r\nimport { MLPAddress } from '../models/mlp-address';\r\nimport { UpdateRequest } from '../models/update-request';\r\nimport { ApplicantService } from '../service/applicant-service';\r\nimport { MerchantService } from '../service/merchant-service';\r\nimport { FormDataService } from '../service/form-data.service';\r\nimport { LenderService } from '../service/lender-service';\r\nimport { Lenders } from '../../shared/enum/lenders';\r\nimport { AffTermsType } from '../../shared/enum/aff-terms-type';\r\nimport { LenderTermsComponent } from '../../disclosures-and-consents/lender-terms/lender-terms.component';\r\nimport { JohnDeereTermsType } from '../../entity/jd-terms-type';\r\nimport { ApplicantConsent } from '../models/applicant-consent';\r\nimport { AFFConsentResponse } from '../entity/aff-terms';\r\nimport { isNullOrUndefined } from 'is-what';\r\nimport { ApplicationLenderConsentsDetails } from '../entity/application-lender-consent-details';\r\nimport { GWTermsType } from '../../shared/enum/gw-terms-type';\r\nimport { SessionService } from '../../service/session.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ConfirmationBoxService } from '../../shared/components/confirmation-box/confirmation-box.service';\r\nimport { ConfirmationBox } from '../../shared/components/confirmation-box/confirmation-box.model';\r\nimport { LenderStatusesEnum } from '../../shared/enum/lender-statuses-enum';\r\nimport { FlxCustomerDetails } from '../models/flx/flx-customer-details';\r\nimport { AuthService } from '../../service/auth.service';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { ApplicationCurrentStatuses } from '../../entity/ApplicationCurrentStatuses';\r\nimport { CallCenterService } from '../service/call-center.service';\r\nimport { ConsentRequest } from '../models/consent-request';\r\nimport { ModalConfigurationComponent } from '../../entity/modalConfigurationComponent';\r\nimport { AFFPrivacyPolicyConsentComponent } from '../../disclosures-and-consents/aff-privacy-policy-consent/aff-privacy-policy-consent.component';\r\nimport { provideTranslocoScope } from \"@jsverse/transloco\";\r\nimport { CustomTranslocoService } from \"../../service/transloco.service\";\r\nimport { LenderContactTranslation } from '../models/lenderContactTranslation';\r\ndeclare const nid: any;\r\ndeclare const fbq: any;\r\ndeclare const gtm: any;\r\n@Component({\r\n selector: 'app-lender-selection',\r\n templateUrl: './lender-selection.component.html',\r\n styleUrls: ['./lender-selection.component.scss'],\r\n providers: [provideTranslocoScope({ scope: 'lenderselection' })]\r\n})\r\nexport class LenderSelectionComponent implements OnInit {\r\n @HostListener('window.resize', [])\r\n onResize() {\r\n this.checkScreenSize();\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n private nextPageRoute = '';\r\n private dashboardRoute = 'existingapplications';\r\n public isInvalid: boolean = false;\r\n isMobileDevice: boolean = false;\r\n checked: boolean = false;\r\n private lenderRequest: LenderRequest;\r\n public formData: ApplicantFormData;\r\n public selectedLenderId?: any = null;\r\n affConsents: AFFConsentResponse = null;\r\n public lenderConsentDetailsList: LenderConsentDetails[];\r\n public lenderFundingPartnerList: LenderFundingPartner[];\r\n dealerType: LenderFundingPartner = null;\r\n public lenderAddress: MLPAddress;\r\n public selectedLender: Lender;\r\n public selectedLenderContactTranslation: LenderContactTranslation;\r\n public currentStatuses: ApplicationCurrentStatuses;\r\n public selectedWaterfallId?: any;\r\n public isLenderSearchComplete: boolean = false;\r\n public isNoLender: boolean = true;\r\n isAFFSelected = false;\r\n isUCFSSelected = false;\r\n isDDSelected = false;\r\n isJDSelected = false;\r\n isOKISelected = false;\r\n isCFSelected = false;\r\n isGWSelected = false;\r\n isUownSelected = false;\r\n isFlexShopperSelected = false;\r\n isUSAllianceSelected = false;\r\n isSDFCUSelected = false;\r\n isAmeriCUSelected = false;\r\n canContinue = false;\r\n isSpanishLanguage = false;\r\n private applicationHasDecision: boolean = false;\r\n public isCallCenterUser: boolean = false;\r\n public isConsentSent: boolean = false;\r\n\r\n private fsReturningCustomerStatus: FlxCustomerDetails = null;\r\n public applicantConsent: ApplicantConsent;\r\n private fsApplicationStatus: number = null;\r\n\r\n vernanceLLCUrlKey: string | null;\r\n americanFirstFinanceTermsConditionUrlKey: string | null;\r\n americanFirstFinanceArbitrationProvisionUrlKey: string | null;\r\n americanFirstFinanceMarketingCallsTextsUrlKey: string | null;\r\n americanFirstFinancePrivacyPolicy: string | null;\r\n johnDeereTermsAndAuthorization: string | null;\r\n johnDeereTermsAndConditions: string | null;\r\n ucfsTermsAndConditions: string | null;\r\n dealerDirectTermsAndConditions: string | null;\r\n greenWaveConsentToText: string | null;\r\n greenWaveTermsAndConditions: string | null;\r\n uownPrivacyPolicy: string | null;\r\n uownTermsOfService: string | null;\r\n flexShopperTermsOfUse: string | null;\r\n flexShopperPrivacyPolicy: string | null;\r\n uSAllianceTermsOfUse: string | null;\r\n uSAlliancePrivacyPolicy: string | null;\r\n sdcuForms: string | null;\r\n\r\n //#region AFF Consent Label from lender itself\r\n public affTermsAndConditionsLabel: string = null;\r\n public affArbitrationProvisionLabel: string = null;\r\n public affPrivacyPolicyLabel: string = null;\r\n public affCallsTextConsentLabel: string = null;\r\n public affDisclaimerLabel: string = null;\r\n //#endregion AFF Consent Label from lender itself\r\n\r\n constructor(private router: Router,\r\n private P_MediaLayoutService: MediaLayoutService,\r\n private lenderService: LenderService,\r\n private formDataService: FormDataService,\r\n public applicantService: ApplicantService,\r\n public merchantService: MerchantService,\r\n public callCenterService: CallCenterService,\r\n private sessionService: SessionService,\r\n private modalService: NgbModal,\r\n private _confirmationBoxService: ConfirmationBoxService,\r\n private sharedService: SharedService,\r\n private authService: AuthService,\r\n private customeTranslocoService: CustomTranslocoService\r\n ) { }\r\n\r\n ngAfterViewInit() {\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n ngOnInit(): void {\r\n this.formData = this.formDataService.getFormData();\r\n nid('setLinkedSiteId', 'form_palms436');\r\n nid('identify', this.formData.Applications.ApplicationID.toString());\r\n this.isSpanishLanguage = (this.customeTranslocoService.getCurrentLanguage() == 'es') ? true : false;\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n this.SelectLender();\r\n let roleID = this.sessionService.getSessionRoleID(\"RoleID\");\r\n this.isCallCenterUser = roleID == 16 || roleID == 17 ? true : false;\r\n }\r\n\r\n private SelectLender() {\r\n this.selectedLender = new Lender();\r\n this.selectedLender.WebSite = \"\";\r\n this.selectedLender.FaxNumber = \"\";\r\n this.selectedLender.PhoneNumber = \"\";\r\n this.selectedLender.ServiceNumber = \"\";\r\n this.selectedLenderContactTranslation = new LenderContactTranslation();\r\n this.selectedLenderContactTranslation.PhoneLabel = \"\";\r\n this.selectedLenderContactTranslation.ServiceNoLabel = \"\";\r\n\r\n this.lenderAddress = new MLPAddress();\r\n this.lenderAddress.Address = \"\";\r\n this.lenderAddress.City = \"\";\r\n this.lenderAddress.State = \"\";\r\n this.lenderAddress.Zip = \"\";\r\n\r\n this.lenderRequest = new LenderRequest();\r\n this.lenderRequest.GrossIncome = this.formData.grossIncomeTotal;\r\n this.lenderRequest.NetIncome = this.formData.netIncomeTotal;\r\n this.lenderRequest.ProductCategoryID = this.formData.ApplicationCreate.ProductCategoryID;\r\n this.lenderRequest.State = this.formData.Addresses.State;\r\n this.applicantConsent = new ApplicantConsent();\r\n this.applicantService.selectLender(this.lenderRequest)\r\n .subscribe((data => {\r\n if (data.IsSuccess && data.Result != null) {\r\n let lenderId = !(isNullOrUndefined(data.Result[0])) ? data.Result[0] : 0;\r\n this.selectedLenderId = !(isNullOrUndefined(data.Result[0])) ? data.Result[0] : 0;\r\n let requestArray = [];\r\n requestArray.push(this.applicantService.getLenderDetailsWithAddressbyId(lenderId));\r\n requestArray.push(this.lenderService.getLenderConsentListByLenderId(lenderId, this.formData.Applications.SelectedLanguageID));\r\n requestArray.push(this.lenderService.getDealerTypeListByLenderId(lenderId));\r\n requestArray.push(this.lenderService.getLenderContactTranslationByLenderId(lenderId, this.formData.Applications.SelectedLanguageID));\r\n\r\n switch (lenderId) {\r\n case Lenders.American_First_Finance:\r\n this.isAFFSelected = true; //ToDo: Remove hardcoding\r\n this.canContinue = false; //ToDo: Remove hardcoding\r\n this.nextPageRoute = 'lenderquestion/aff-income';\r\n requestArray.push(this.applicantService.GetAFFConsents());\r\n break;\r\n case Lenders.John_Deere:\r\n this.isJDSelected = true;\r\n this.canContinue = false;\r\n break;\r\n case Lenders.UCFS:\r\n this.isUCFSSelected = true;\r\n this.canContinue = false; //ToDo: Remove hardcoding\r\n this.nextPageRoute = 'lenderquestion/ucfs-purchase';\r\n break;\r\n case Lenders.Dealer_Direct:\r\n this.isDDSelected = true;\r\n this.canContinue = false;\r\n this.nextPageRoute = 'lenderquestion/dd-residential';\r\n break;\r\n case Lenders.Vernance_LLC:\r\n this.isCFSelected = true;\r\n this.canContinue = false;\r\n this.nextPageRoute = 'lenderquestion/cf-bank';\r\n break;\r\n case Lenders.Greenwave:\r\n this.isGWSelected = true;\r\n this.canContinue = false;\r\n this.nextPageRoute = 'lenderquestion/gw-income';\r\n break;\r\n case Lenders.Uown:\r\n this.isUownSelected = true;\r\n this.canContinue = false;\r\n this.nextPageRoute = 'processcomplete';\r\n break;\r\n case Lenders.Okinus:\r\n this.isOKISelected = true;\r\n this.canContinue = false;\r\n break;\r\n case Lenders.FlexShopper:\r\n this.isFlexShopperSelected = true;\r\n this.canContinue = false;\r\n this.nextPageRoute = 'processcomplete';\r\n requestArray.push(this.applicantService.getFlexShopperCustomerDetails());\r\n break;\r\n case Lenders.USAlliance:\r\n this.isUSAllianceSelected = true;\r\n this.canContinue = false;\r\n this.nextPageRoute = 'lenderquestion/lst-bank';\r\n break;\r\n case Lenders.SDFCU:\r\n this.isSDFCUSelected = true;\r\n this.canContinue = false;\r\n this.nextPageRoute = 'lenderquestion/lst-bank';\r\n break;\r\n case Lenders.AmeriCU:\r\n this.isAmeriCUSelected = true;\r\n this.canContinue = true;\r\n this.nextPageRoute = 'lenderquestion/lst-bank';\r\n break;\r\n default:\r\n this.canContinue = true;\r\n //this.isAFFSelected = true;\r\n break;\r\n }\r\n\r\n //Get lender details\r\n forkJoin(requestArray).subscribe(responseArray => {\r\n let lenderData = responseArray[0];\r\n let lenderContactTranslation = !isNullOrUndefined(responseArray[3]?.Result) ? responseArray[3]?.Result : null;\r\n this.selectedLenderContactTranslation = (lenderContactTranslation != null) ? lenderContactTranslation[0] : new LenderContactTranslation();\r\n\r\n this.selectedLender = lenderData.Result.Lender;\r\n this.lenderAddress = lenderData.Result.Address;\r\n //Get AFF Consents ToDo: Remove hardcoding\r\n this.lenderConsentDetailsList = responseArray[1].Result;\r\n this.lenderFundingPartnerList = responseArray[2].Result;\r\n if (lenderId === Lenders.American_First_Finance && responseArray[4].Result !== null && responseArray[4].Result !== undefined) {\r\n\r\n if (isNullOrUndefined(responseArray[4].Result.Error))\r\n this.affConsents = responseArray[4].Result;\r\n if (this.lenderFundingPartnerList.length > 0)\r\n this.dealerType = this.lenderFundingPartnerList.filter(x => x.ShortName.toLowerCase() === this.affConsents.dealerType.toLowerCase())[0];\r\n if (this.dealerType != null) {\r\n this.selectedLender.LenderName = this.dealerType.FundingParterName;\r\n this.formDataService.setApplicationFundingPartnerName(this.dealerType.FundingParterName);\r\n }\r\n if (this.isSpanishLanguage == false) {\r\n this.affTermsAndConditionsLabel = this.affConsents.terms.title;\r\n this.affArbitrationProvisionLabel = this.affConsents.arbitration.title;\r\n this.affPrivacyPolicyLabel = this.affConsents.privacyPolicy.title;\r\n this.affCallsTextConsentLabel = this.affConsents.tcpa.title;\r\n this.affDisclaimerLabel = this.affConsents.generalConsent.html;\r\n }\r\n\r\n } else if (lenderId === Lenders.FlexShopper && responseArray[4].Result !== null && responseArray[4].Result !== undefined) {\r\n this.fsApplicationStatus = ApplicationStatus.Assigned;\r\n\r\n if (responseArray[4].IsSuccess == true) {\r\n this.fsReturningCustomerStatus = JSON.parse(responseArray[4].Result);\r\n let _message: string = null;\r\n if (this.fsReturningCustomerStatus != null &&\r\n (this.fsReturningCustomerStatus.availableBalanceAmount != null && this.fsReturningCustomerStatus.availableBalanceAmount > 0) &&\r\n (this.fsReturningCustomerStatus.lenderStatus != null && this.fsReturningCustomerStatus.lenderStatus == LenderStatusesEnum.Approved)) {\r\n\r\n //after skipping lender questions, mark application status Assigned for FlexShopper.\r\n this.fsApplicationStatus = ApplicationStatus.Assigned;\r\n let translateKey = 'lenderselection.lenderSelection.confirmationBoxCtrl'\r\n _message = 'approvedMessage';\r\n let _formatedAmount = this.fsReturningCustomerStatus.availableBalanceAmount.toLocaleString(\"en-US\", {\r\n style: \"currency\",\r\n currency: \"USD\",\r\n minimumFractionDigits: 2,\r\n });\r\n _message = _message.replace(\"{balanceAmount}\", _formatedAmount);\r\n let updatedMessage = this.customeTranslocoService.translate(translateKey + \".\" + _message);\r\n _message = updatedMessage.replace(\"{balanceAmount}\", _formatedAmount);\r\n\r\n }\r\n else if (this.fsReturningCustomerStatus != null &&\r\n this.fsReturningCustomerStatus.lenderStatus != null && this.fsReturningCustomerStatus.lenderStatus == LenderStatusesEnum.Pending) {\r\n _message = 'pendingStatusMessage';\r\n let translateKey = 'lenderselection.lenderSelection.confirmationBoxCtrl'\r\n let updatedMessage = this.customeTranslocoService.translate(translateKey + \".\" + _message);\r\n _message = updatedMessage;\r\n this.fsApplicationStatus = ApplicationStatus.Assigned;\r\n }\r\n if (_message != null) {\r\n let translateKey = 'lenderselection.lenderSelection.confirmationBoxCtrl'\r\n var vm = this;\r\n this._confirmationBoxService.Open(\r\n new ConfirmationBox(translateKey + '.heading', _message,\r\n true, false, false, false, translateKey + '.ok', '', '', ''), \"md\", true).then(function (result) {\r\n\r\n });\r\n }\r\n }\r\n }\r\n this.isLenderSearchComplete = true;\r\n });\r\n }\r\n else if (data.IsSuccess && data.Result == null) {\r\n var vm = this;\r\n this.applicationHasDecision = true\r\n var confirmBox = new ConfirmationBox('Alert', 'An error was encountered due to an unexpected browser event.
Please select “Ok” to access your dashboard where you can continue your current application or start a new one.',\r\n true, false, false, false, 'Ok', '', '', '');\r\n this._confirmationBoxService.Open(confirmBox, \"md\").then(function (result) {\r\n vm.applicantService.navigateToDashboardOnApplicationDicision();\r\n });\r\n }\r\n else {\r\n this.selectedLenderId = null;\r\n this.isLenderSearchComplete = true;\r\n this.selectedWaterfallId = null;\r\n if (data.Error != null) {\r\n this.formData.Applications.StatusID = ApplicationStatusEnum.Exception;\r\n }\r\n else {\r\n this.formData.Applications.StatusID = ApplicationStatusEnum.NoLender;\r\n this.formData.Applications.BestEstimate = this.formData.ApplicationCreate.BestEstimate;\r\n nid('applicationSubmit');\r\n }\r\n }\r\n }),\r\n (error => {\r\n console.log(error);\r\n }));\r\n }\r\n public goToNext() {\r\n fbq('trackCustom', 'LenderSelectionContinue', { tagId: '111' });\r\n if (environment.googleTagsEnabled) {\r\n gtm.push({ 'event': 'LenderSelectionContinue', \"tagId\": '111' });\r\n }\r\n if (this.applicationHasDecision == false) {\r\n if (this.selectedLenderId != null) {\r\n var lenderPageIndex = [];\r\n lenderPageIndex.push(0);\r\n this.sessionService.setSessionLenderPageIndex(\"LenderPageIndex\", lenderPageIndex);\r\n this.sessionService.setSessionLenderQuestionCurrPage(\"LenderQuestionCurrPage\", 0);\r\n this.sessionService.setSessionLenderQuestionPrevPage(\"LenderQuestionPrevPage\", 0);\r\n this.updateApplicationStatus();\r\n\r\n }\r\n else {\r\n this.formData.LenderID = this.selectedLenderId;\r\n let requestArray = [];\r\n this.formDataService.setFormData(this.formData);\r\n this.formData.Applications.ApplicantID = this.formData.Identity.ApplicantID;\r\n if (this.formData.Applications.StatusID != ApplicationStatusEnum.Exception) {\r\n requestArray.push(this.merchantService.SendMerchantEmail_NoLender(this.formData.Applications));\r\n forkJoin(requestArray).subscribe(responseArray => {\r\n });\r\n }\r\n this.router.navigate(['processcomplete']);\r\n }\r\n }\r\n else {\r\n this.applicantService.navigateToDashboardOnApplicationDicision();\r\n }\r\n }\r\n\r\n private updateApplicationStatus() {\r\n var request = new UpdateRequest();\r\n request.LenderID = this.selectedLenderId;\r\n this.formData.LenderID = this.selectedLenderId;\r\n this.formDataService.setFormData(this.formData);\r\n\r\n let requestArray = [];\r\n if (!isNullOrUndefined(this.dealerType))\r\n request.FundingPartnerID = this.dealerType.FundingPartnerID;\r\n\r\n if (this.selectedLenderId == Lenders.FlexShopper) {\r\n request.FSApplicationStatusID = this.fsApplicationStatus;\r\n }\r\n\r\n request.LanguageKey = 'lenderselection.lenderSelection';\r\n\r\n requestArray.push(this.applicantService.updateStatusPostLenderSelection(request));\r\n\r\n if (!isNullOrUndefined(this.selectedLender)) {\r\n switch (+this.selectedLender.LenderID) {\r\n\r\n case Lenders.American_First_Finance:\r\n //Save Lender Consent\r\n let tcpaConsent = new ApplicationLenderConsentsDetails();\r\n tcpaConsent.IsAgree = this.applicantConsent.AgreeAFFTcpa;\r\n tcpaConsent.LenderConsentID = this.lenderConsentDetailsList.filter(x => x.ConsentTitle.toLowerCase() === \"optional consent to receive marketing calls and texts\")[0].LenderConsentId;\r\n\r\n let arbitrationConsent = new ApplicationLenderConsentsDetails();\r\n arbitrationConsent.IsAgree = this.applicantConsent.AgreeAFFArbitration;\r\n arbitrationConsent.LenderConsentID = this.lenderConsentDetailsList.filter(x => x.ConsentTitle.toLowerCase() === \"arbitration provision\")[0].LenderConsentId;\r\n\r\n let termsConsent = new ApplicationLenderConsentsDetails();\r\n termsConsent.IsAgree = this.applicantConsent.AgreeAFFTerms;\r\n termsConsent.LenderConsentID = this.lenderConsentDetailsList.filter(x => x.ConsentTitle.toLowerCase() === \"terms and conditions\")[0].LenderConsentId;\r\n\r\n let ppConsent = new ApplicationLenderConsentsDetails();\r\n ppConsent.IsAgree = this.applicantConsent.AgreeAFFTPP;\r\n ppConsent.LenderConsentID = this.lenderConsentDetailsList.filter(x => x.ConsentTitle.toLowerCase() === \"privacy policy\")[0].LenderConsentId;\r\n\r\n let applicationLenderConsentList: ApplicationLenderConsentsDetails[] = [];\r\n applicationLenderConsentList.push(termsConsent);\r\n applicationLenderConsentList.push(arbitrationConsent);\r\n applicationLenderConsentList.push(tcpaConsent);\r\n applicationLenderConsentList.push(ppConsent);\r\n\r\n applicationLenderConsentList.forEach(consent => {\r\n consent.ApplicationID = this.formData.Applications.ApplicationID;\r\n });\r\n\r\n requestArray.push(this.applicantService.addApplicationLenderConsentList(applicationLenderConsentList));\r\n break;\r\n\r\n case Lenders.UCFS:\r\n let tcConsent = new ApplicationLenderConsentsDetails();\r\n tcConsent.IsAgree = this.applicantConsent.AgreeUCFSTerms;\r\n let ucfsConsentval = this.customeTranslocoService.translate(\"lenderselection.lenderSelection.consentCtrl.label.termsAndConditions\");\r\n tcConsent.LenderConsentID = this.lenderConsentDetailsList.filter(x => x.ConsentTitle.toLowerCase() === ucfsConsentval.toLowerCase())[0].LenderConsentId;\r\n\r\n let applicationLenderConsentListUCFS: ApplicationLenderConsentsDetails[] = [];\r\n applicationLenderConsentListUCFS.push(tcConsent);\r\n\r\n applicationLenderConsentListUCFS.forEach(consent => {\r\n consent.ApplicationID = this.formData.Applications.ApplicationID;\r\n });\r\n\r\n requestArray.push(this.applicantService.addApplicationLenderConsentList(applicationLenderConsentListUCFS));\r\n requestArray.push(this.applicantService.addUCFSInformation());\r\n break;\r\n\r\n case Lenders.Greenwave:\r\n let greenwaveTextConsent = new ApplicationLenderConsentsDetails();\r\n greenwaveTextConsent.IsAgree = this.applicantConsent.AgreeGWText;\r\n greenwaveTextConsent.LenderConsentID = this.lenderConsentDetailsList.filter(x => x.ConsentTitle.toLowerCase() === \"consent to text\")[0].LenderConsentId;\r\n\r\n let greenwaveTCConsent = new ApplicationLenderConsentsDetails();\r\n greenwaveTCConsent.IsAgree = this.applicantConsent.AgreeGWTc;\r\n greenwaveTCConsent.LenderConsentID = this.lenderConsentDetailsList.filter(x => x.ConsentTitle.toLowerCase() === \"terms and conditions\")[0].LenderConsentId;\r\n\r\n let applicationLenderConsentListGreenwave: ApplicationLenderConsentsDetails[] = [];\r\n applicationLenderConsentListGreenwave.push(greenwaveTextConsent);\r\n applicationLenderConsentListGreenwave.push(greenwaveTCConsent);\r\n\r\n applicationLenderConsentListGreenwave.forEach(consent => {\r\n consent.ApplicationID = this.formData.Applications.ApplicationID;\r\n });\r\n\r\n requestArray.push(this.applicantService.addApplicationLenderConsentList(applicationLenderConsentListGreenwave));\r\n break;\r\n\r\n case Lenders.Uown:\r\n let uownPPConsent = new ApplicationLenderConsentsDetails();\r\n uownPPConsent.IsAgree = this.applicantConsent.AgreeUownPP;\r\n uownPPConsent.LenderConsentID = this.lenderConsentDetailsList.filter(x => x.ConsentTitle.toLowerCase() === \"privacy policy\")[0].LenderConsentId;\r\n\r\n let uownTosConsent = new ApplicationLenderConsentsDetails();\r\n uownTosConsent.IsAgree = this.applicantConsent.AgreeUownTos;\r\n uownTosConsent.LenderConsentID = this.lenderConsentDetailsList.filter(x => x.ConsentTitle.toLowerCase() === \"terms of service\")[0].LenderConsentId;\r\n\r\n let applicationLenderConsentListUown: ApplicationLenderConsentsDetails[] = [];\r\n applicationLenderConsentListUown.push(uownPPConsent);\r\n applicationLenderConsentListUown.push(uownTosConsent);\r\n\r\n applicationLenderConsentListUown.forEach(consent => {\r\n consent.ApplicationID = this.formData.Applications.ApplicationID;\r\n });\r\n\r\n requestArray.push(this.applicantService.addApplicationLenderConsentList(applicationLenderConsentListUown));\r\n break;\r\n\r\n case Lenders.FlexShopper:\r\n let flexShopperPPConsent = new ApplicationLenderConsentsDetails();\r\n flexShopperPPConsent.IsAgree = this.applicantConsent.AgreeFlexShopperPP;\r\n flexShopperPPConsent.LenderConsentID = this.lenderConsentDetailsList.filter(x => x.ConsentTitle.toLowerCase() === \"privacy policy\")[0].LenderConsentId;\r\n\r\n let flexShopperTosConsent = new ApplicationLenderConsentsDetails();\r\n flexShopperTosConsent.IsAgree = this.applicantConsent.AgreeFlexShopperTos;\r\n flexShopperTosConsent.LenderConsentID = this.lenderConsentDetailsList.filter(x => x.ConsentTitle.toLowerCase() === \"terms of use\")[0].LenderConsentId;\r\n\r\n let applicationLenderConsentListFlexShopper: ApplicationLenderConsentsDetails[] = [];\r\n applicationLenderConsentListFlexShopper.push(flexShopperPPConsent);\r\n applicationLenderConsentListFlexShopper.push(flexShopperTosConsent);\r\n\r\n applicationLenderConsentListFlexShopper.forEach(consent => {\r\n consent.ApplicationID = this.formData.Applications.ApplicationID;\r\n });\r\n\r\n requestArray.push(this.applicantService.addApplicationLenderConsentList(applicationLenderConsentListFlexShopper));\r\n\r\n break;\r\n case Lenders.Dealer_Direct:\r\n let ddConsent = new ApplicationLenderConsentsDetails();\r\n ddConsent.IsAgree = this.applicantConsent.AgreeDDTerms;\r\n\r\n let ddConsentval = this.customeTranslocoService.translate(\"lenderselection.lenderSelection.consentCtrl.label.termsAndConditions\");\r\n ddConsent.LenderConsentID = this.lenderConsentDetailsList.filter(x => x.ConsentTitle.toLowerCase() === ddConsentval.toLowerCase())[0].LenderConsentId;\r\n ddConsent.ApplicationID = this.formData.Applications.ApplicationID;\r\n let applicationLenderConsentListDD: ApplicationLenderConsentsDetails[] = [];\r\n applicationLenderConsentListDD.push(ddConsent);\r\n\r\n requestArray.push(this.applicantService.addApplicationLenderConsentList(applicationLenderConsentListDD));\r\n break;\r\n\r\n case Lenders.USAlliance:\r\n //Will work on this in future\r\n //let usAllianceConsent = new ApplicationLenderConsentsDetails();\r\n //usAllianceConsent.IsAgree = this.applicantConsent.AgreeUSAlliancePP;\r\n //usAllianceConsent.LenderConsentID = this.lenderConsentDetailsList.filter(x => x.ConsentTitle.toLowerCase() === \"privacy policy\")[0].LenderConsentId;\r\n\r\n //let usAllianceTosConsent = new ApplicationLenderConsentsDetails();\r\n //usAllianceTosConsent.IsAgree = this.applicantConsent.AgreeUSAllianceTos;\r\n //usAllianceTosConsent.LenderConsentID = this.lenderConsentDetailsList.filter(x => x.ConsentTitle.toLowerCase() === \"terms of use\")[0].LenderConsentId;\r\n\r\n //let applicationLenderConsentListUSAlliance: ApplicationLenderConsentsDetails[] = [];\r\n //applicationLenderConsentListUSAlliance.push(usAllianceConsent);\r\n //applicationLenderConsentListUSAlliance.push(usAllianceTosConsent);\r\n\r\n //applicationLenderConsentListUSAlliance.forEach(consent => {\r\n // consent.ApplicationID = this.formData.Applications.ApplicationID;\r\n //});\r\n requestArray.push(this.applicantService.addLoanstarInformation());\r\n break;\r\n case Lenders.SDFCU:\r\n requestArray.push(this.applicantService.addLoanstarInformation());\r\n break;\r\n case Lenders.AmeriCU:\r\n requestArray.push(this.applicantService.addLoanstarInformation());\r\n break;\r\n }\r\n }\r\n\r\n forkJoin(requestArray).subscribe((data => {\r\n if (data[0].IsSuccess) {\r\n this.formData.LenderID = this.selectedLenderId;\r\n this.loadLenderQuestionMenu();\r\n } else {\r\n }\r\n }),\r\n (error => {\r\n //ToDo:handle error and show proper message to user.\r\n //alert(\"ERROR!\");\r\n }));\r\n }\r\n\r\n\r\n private fsUpdateApplicationStatus() {\r\n var request = new UpdateRequest();\r\n request.LenderID = this.selectedLenderId;\r\n this.formData.LenderID = this.selectedLenderId;\r\n this.formDataService.setFormData(this.formData);\r\n\r\n let flexShopperPPConsent = new ApplicationLenderConsentsDetails();\r\n flexShopperPPConsent.IsAgree = this.applicantConsent.AgreeFlexShopperPP;\r\n flexShopperPPConsent.LenderConsentID = this.lenderConsentDetailsList.filter(x => x.ConsentTitle.toLowerCase() === \"privacy policy\")[0].LenderConsentId;\r\n\r\n let flexShopperTosConsent = new ApplicationLenderConsentsDetails();\r\n flexShopperTosConsent.IsAgree = this.applicantConsent.AgreeFlexShopperTos;\r\n flexShopperTosConsent.LenderConsentID = this.lenderConsentDetailsList.filter(x => x.ConsentTitle.toLowerCase() === \"terms of use\")[0].LenderConsentId;\r\n\r\n let applicationLenderConsentListFlexShopper: ApplicationLenderConsentsDetails[] = [];\r\n applicationLenderConsentListFlexShopper.push(flexShopperPPConsent);\r\n applicationLenderConsentListFlexShopper.push(flexShopperTosConsent);\r\n\r\n applicationLenderConsentListFlexShopper.forEach(consent => {\r\n consent.ApplicationID = this.formData.Applications.ApplicationID;\r\n });\r\n request.FundingPartnerID = (!isNullOrUndefined(this.dealerType)) ? this.dealerType.FundingPartnerID : request.FundingPartnerID;\r\n\r\n let requestArray = [];\r\n requestArray.push(this.applicantService.updateStatusPostLenderSelection(request));\r\n requestArray.push(this.applicantService.addApplicationLenderConsentList(applicationLenderConsentListFlexShopper));\r\n\r\n forkJoin(requestArray).subscribe((data => {\r\n if (data[0].IsSuccess) {\r\n this.formData.LenderID = this.selectedLenderId;\r\n this.loadLenderQuestionMenu();\r\n } else {\r\n }\r\n }),\r\n (error => {\r\n //ToDo:handle error and show proper message to user.\r\n //alert(\"ERROR!\");\r\n }));\r\n }\r\n //ToDo: Remove this hardcoding\r\n public openAffDisclosures(termsType: AffTermsType) {\r\n let termsContent: String;\r\n let termsTitle: String;\r\n switch (termsType) {\r\n default:\r\n termsContent = \"\"\r\n break;\r\n case AffTermsType.TCPA:\r\n termsContent = (!isNullOrUndefined(this.affConsents)) ? this.affConsents.tcpa.html : \"TCPA Terms not available as of now.\";\r\n termsTitle = (!isNullOrUndefined(this.affConsents)) ? this.affConsents.tcpa.title : \"TCPA\";\r\n break;\r\n }\r\n\r\n const modalRef = this.modalService.open(LenderTermsComponent, { size: 'xl', backdrop: 'static', keyboard: true });\r\n modalRef.componentInstance.title = termsTitle;\r\n modalRef.componentInstance.body = termsContent;\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) { }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n public openAFFPrivacyPolicy(termsType: AffTermsType) {\r\n let consentURL = \"\";\r\n switch (termsType) {\r\n case AffTermsType.ARBITRATION:\r\n consentURL = !isNullOrUndefined(this.affConsents) ? this.affConsents.arbitration.file : null;\r\n break;\r\n case AffTermsType.PP:\r\n consentURL = !isNullOrUndefined(this.affConsents) ? this.affConsents.privacyPolicy.file : null;\r\n break;\r\n case AffTermsType.TERMS_AND_CONDITIONS:\r\n consentURL = !isNullOrUndefined(this.affConsents) ? this.affConsents.terms.file : null;\r\n break;\r\n }\r\n //Remove this if (consentURL != null) condition after IP whitelist\r\n if (consentURL != null) {\r\n window.open(consentURL, \"_blank\");\r\n }\r\n else {\r\n let modalConfigurableComponent = new ModalConfigurationComponent();\r\n modalConfigurableComponent.modalData = [\r\n consentURL\r\n ];\r\n let modalOption: NgbModalOptions = {\r\n size: 'lg',\r\n backdrop: 'static',\r\n keyboard: true,\r\n };\r\n const modalRef = this.modalService.open(AFFPrivacyPolicyConsentComponent, modalOption);\r\n modalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) { }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n }\r\n\r\n public openAFFArbitration() {\r\n let consentURL = !isNullOrUndefined(this.affConsents) ? this.affConsents.arbitration.file : null;\r\n\r\n //Remove this if (consentURL != null) condition after IP whitelist\r\n if (consentURL != null) {\r\n window.open(consentURL, \"_blank\");\r\n }\r\n else {\r\n let modalConfigurableComponent = new ModalConfigurationComponent();\r\n modalConfigurableComponent.modalData = [\r\n consentURL\r\n ];\r\n let modalOption: NgbModalOptions = {\r\n size: 'lg',\r\n backdrop: 'static',\r\n keyboard: true,\r\n };\r\n const modalRef = this.modalService.open(AFFPrivacyPolicyConsentComponent, modalOption);\r\n modalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) { }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n }\r\n\r\n public openAFFTerms() {\r\n let consentURL = !isNullOrUndefined(this.affConsents) ? this.affConsents.terms.file : null;\r\n\r\n //Remove this if (consentURL != null) condition after IP whitelist\r\n if (consentURL != null) {\r\n window.open(consentURL, \"_blank\");\r\n }\r\n else {\r\n let modalConfigurableComponent = new ModalConfigurationComponent();\r\n modalConfigurableComponent.modalData = [\r\n consentURL\r\n ];\r\n let modalOption: NgbModalOptions = {\r\n size: 'lg',\r\n backdrop: 'static',\r\n keyboard: true,\r\n };\r\n const modalRef = this.modalService.open(AFFPrivacyPolicyConsentComponent, modalOption);\r\n modalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) { }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n }\r\n\r\n //ToDo: Remove this hardcoding\r\n public openJohnDeereDisclosures(termsType: JohnDeereTermsType) {\r\n let termsContent: String;\r\n let termsTitle: String;\r\n switch (termsType) {\r\n default:\r\n termsContent = \"\"\r\n break;\r\n case JohnDeereTermsType.TERMS_AND_AUTHORIZATION:\r\n termsContent = this.lenderConsentDetailsList[0].Description;\r\n termsTitle = this.lenderConsentDetailsList[0].ConsentTitle;\r\n break;\r\n case JohnDeereTermsType.TERMS_AND_CONDITIONS:\r\n termsContent = this.lenderConsentDetailsList[1].Description;\r\n termsTitle = this.lenderConsentDetailsList[1].ConsentTitle;\r\n break;\r\n }\r\n const modalRef = this.modalService.open(LenderTermsComponent, { size: 'xl', backdrop: 'static', keyboard: true });\r\n modalRef.componentInstance.title = termsTitle;\r\n modalRef.componentInstance.body = termsContent;\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) { }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n public openUcfsDisclosures() {\r\n const modalRef = this.modalService.open(LenderTermsComponent, { size: 'xl', backdrop: 'static', keyboard: true });\r\n modalRef.componentInstance.body = (this.lenderConsentDetailsList != null) ? this.lenderConsentDetailsList[0].Description : \"Terms and Conditions not available as of now.\";\r\n modalRef.componentInstance.title = (this.lenderConsentDetailsList != null) ? this.lenderConsentDetailsList[0].ConsentTitle : \"Terms And Conditions\";;\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) { }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n public openDDDisclosures() {\r\n const modalRef = this.modalService.open(LenderTermsComponent, { size: 'xl', backdrop: 'static', keyboard: true });\r\n modalRef.componentInstance.title = (this.lenderConsentDetailsList != null) ? this.lenderConsentDetailsList[0].ConsentTitle : \"Terms And Conditions\";\r\n modalRef.componentInstance.body = (this.lenderConsentDetailsList != null) ? this.lenderConsentDetailsList[0].Description : \"Terms and Conditions not available as of now.\";\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) { }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n public openCFDisclosures() {\r\n const modalRef = this.modalService.open(LenderTermsComponent, { size: 'xl', backdrop: 'static', keyboard: true });\r\n modalRef.componentInstance.title = (this.lenderConsentDetailsList != null) ? this.lenderConsentDetailsList[0].ConsentTitle : \"Terms And Conditions\";\r\n modalRef.componentInstance.body = (this.lenderConsentDetailsList != null) ? this.lenderConsentDetailsList[0].Description : \"Terms and Conditions not available as of now.\";\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) { }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n public openOKIDisclosures() {\r\n const modalRef = this.modalService.open(LenderTermsComponent, { size: 'xl', backdrop: 'static', keyboard: true });\r\n modalRef.componentInstance.title = (this.lenderConsentDetailsList != null) ? this.lenderConsentDetailsList[0].ConsentTitle : \"Terms And Conditions\";\r\n modalRef.componentInstance.body = (this.lenderConsentDetailsList != null) ? this.lenderConsentDetailsList[0].Description : \"Terms and Conditions not available as of now.\";\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) { }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n //Greenwave disclosures open\r\n public openGWDisclosures(termsType: GWTermsType) {\r\n let termsContent: String;\r\n let termsTitle: String;\r\n switch (termsType) {\r\n default:\r\n termsContent = \"\"\r\n break;\r\n case GWTermsType.CONSENT_TO_TEXT:\r\n termsContent = this.lenderConsentDetailsList[0].Description;\r\n termsTitle = this.lenderConsentDetailsList[0].ConsentTitle;\r\n break;\r\n case GWTermsType.TERMS_AND_CONDITIONS:\r\n termsContent = this.lenderConsentDetailsList[1].Description;\r\n termsTitle = this.lenderConsentDetailsList[1].ConsentTitle;\r\n break;\r\n }\r\n const modalRef = this.modalService.open(LenderTermsComponent, { size: 'md', backdrop: 'static', keyboard: true });\r\n modalRef.componentInstance.title = termsTitle;\r\n modalRef.componentInstance.body = termsContent;\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) { }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n\r\n }\r\n\r\n\r\n\r\n //ToDo: Remove this hardcoding\r\n public affConsentClicked() {\r\n this.canContinue = this.applicantConsent.AgreeAFFTerms && this.applicantConsent.AgreeAFFArbitration && this.applicantConsent.AgreeAFFTPP;\r\n }\r\n\r\n public johndeereConsentClicked() {\r\n this.canContinue = this.applicantConsent.AgreeJDTermsAuth && this.applicantConsent.AgreeJDTermsCond;\r\n }\r\n\r\n public ucfsConsentClicked() {\r\n this.canContinue = this.applicantConsent.AgreeUCFSTerms;\r\n }\r\n\r\n public ddConsentClicked() {\r\n this.canContinue = this.applicantConsent.AgreeDDTerms;\r\n }\r\n\r\n public okiConsentClicked() {\r\n this.canContinue = this.applicantConsent.AgreeOKITerms;\r\n }\r\n\r\n public cfConsentClicked() {\r\n this.canContinue = this.applicantConsent.AgreeCFTerms;\r\n }\r\n\r\n public gwConsentClicked() {\r\n this.canContinue = this.applicantConsent.AgreeGWText && this.applicantConsent.AgreeGWTc;\r\n }\r\n\r\n public uownConsentClicked() {\r\n this.canContinue = this.applicantConsent.AgreeUownPP && this.applicantConsent.AgreeUownTos;\r\n }\r\n\r\n public flexShopperConsentClicked() {\r\n this.canContinue = this.applicantConsent.AgreeFlexShopperPP && this.applicantConsent.AgreeFlexShopperTos;\r\n }\r\n\r\n public usAllianceConsentClicked() {\r\n this.canContinue = this.applicantConsent.AgreeUSAlliancePP && this.applicantConsent.AgreeUSAllianceTos;\r\n }\r\n public sdfcuConsentClicked() {\r\n this.canContinue = this.applicantConsent.AgreeSDFCUPP;\r\n }\r\n\r\n public openCancel() {\r\n const modalRef = this.modalService.open(CancelApplicationComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) {\r\n if (this.formData.IsLoggedIn) {\r\n this.router.navigate([this.dashboardRoute]);\r\n }\r\n else {\r\n sessionStorage.setItem(\"Authenticate\", \"false\")\r\n this.router.navigate(['']);\r\n }\r\n }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n public openCFConsent() {\r\n const modalRef = this.modalService.open(CfConsentComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) {\r\n }\r\n },//Dismiss Modal Event\r\n (reason) => { });\r\n }\r\n\r\n public sendConsentNotification() {\r\n //getting translation\r\n this.getTranslation();\r\n\r\n var consentRequest: ConsentRequest = new ConsentRequest\r\n {\r\n };\r\n switch (this.selectedLenderId) {\r\n case Lenders.Vernance_LLC:\r\n //take consent path based on application language\r\n let customConsentPath: string = null;\r\n if (this.customeTranslocoService.getCurrentLanguage() === 'es') {\r\n customConsentPath = 'es-cf-consent';\r\n } else {\r\n customConsentPath = 'cf-consent';\r\n }\r\n consentRequest.UrlKey.push(this.vernanceLLCUrlKey);\r\n consentRequest.Url.push(environment.onlineApplicationUrl + customConsentPath);\r\n break;\r\n case Lenders.American_First_Finance:\r\n consentRequest.UrlKey.push(this.americanFirstFinanceTermsConditionUrlKey);\r\n consentRequest.Url.push(environment.onlineApplicationUrl + \"aff-terms-and-conditions\");\r\n consentRequest.UrlKey.push(this.americanFirstFinanceArbitrationProvisionUrlKey);\r\n consentRequest.Url.push(environment.onlineApplicationUrl + \"aff-arbitration-provision\");\r\n consentRequest.UrlKey.push(this.americanFirstFinanceMarketingCallsTextsUrlKey);\r\n consentRequest.Url.push(environment.onlineApplicationUrl + \"aff-receive-marketing-calls-and-texts\");\r\n consentRequest.UrlKey.push(this.americanFirstFinancePrivacyPolicy);\r\n consentRequest.Url.push(!isNullOrUndefined(this.affConsents) ? this.affConsents.privacyPolicy.file : this.lenderConsentDetailsList[0].ConsentUrl);\r\n break;\r\n case Lenders.John_Deere:\r\n consentRequest.UrlKey.push(this.johnDeereTermsAndAuthorization);\r\n consentRequest.Url.push(environment.onlineApplicationUrl + \"jd-terms-and-authorization\");\r\n consentRequest.UrlKey.push(this.johnDeereTermsAndConditions);\r\n consentRequest.Url.push(environment.onlineApplicationUrl + \"jd-terms-and-conditions\");\r\n break;\r\n case Lenders.UCFS:\r\n consentRequest.UrlKey.push(this.ucfsTermsAndConditions);\r\n consentRequest.Url.push(environment.onlineApplicationUrl + \"ucfs-terms-and-conditions\");\r\n break;\r\n case Lenders.Dealer_Direct:\r\n consentRequest.UrlKey.push(this.dealerDirectTermsAndConditions);\r\n consentRequest.Url.push(environment.onlineApplicationUrl + \"dd-terms-and-conditions\");\r\n break;\r\n case Lenders.Greenwave:\r\n consentRequest.UrlKey.push(this.greenWaveConsentToText);\r\n consentRequest.Url.push(environment.onlineApplicationUrl + \"gw-consent-to-text\");\r\n consentRequest.UrlKey.push(this.greenWaveTermsAndConditions);\r\n consentRequest.Url.push(environment.onlineApplicationUrl + \"gw-terms-and-conditions\");\r\n break;\r\n case Lenders.Uown:\r\n consentRequest.UrlKey.push(this.uownPrivacyPolicy);\r\n consentRequest.Url.push(this.lenderConsentDetailsList[0].ConsentUrl);\r\n consentRequest.UrlKey.push(this.uownTermsOfService);\r\n consentRequest.Url.push(this.lenderConsentDetailsList[1].ConsentUrl);\r\n break;\r\n case Lenders.Okinus:\r\n //todo: ask QA\r\n break;\r\n case Lenders.FlexShopper:\r\n consentRequest.UrlKey.push(this.flexShopperTermsOfUse);\r\n consentRequest.Url.push(this.lenderConsentDetailsList[0].ConsentUrl);\r\n consentRequest.UrlKey.push(this.flexShopperPrivacyPolicy);\r\n consentRequest.Url.push(this.lenderConsentDetailsList[1].ConsentUrl);\r\n break;\r\n case Lenders.USAlliance:\r\n consentRequest.UrlKey.push(this.uSAllianceTermsOfUse);\r\n consentRequest.Url.push(this.lenderConsentDetailsList[0].ConsentUrl);\r\n consentRequest.UrlKey.push(this.uSAlliancePrivacyPolicy);\r\n consentRequest.Url.push(this.lenderConsentDetailsList[1].ConsentUrl);\r\n break;\r\n case Lenders.SDFCU:\r\n consentRequest.UrlKey.push(this.sdcuForms);\r\n consentRequest.Url.push(this.lenderConsentDetailsList[0].ConsentUrl);\r\n break;\r\n case Lenders.AmeriCU:\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n consentRequest.ApplicationID = this.formData.Applications.ApplicationID;\r\n consentRequest.Email = this.formData.applicantEmail;\r\n consentRequest.LanguageKey = 'lenderselection.lenderSelection';\r\n this.applicantService.getApplicantFullNameByApplicantId().subscribe((data => {\r\n consentRequest.ApplicantName = data.Result;\r\n this.callCenterService.sendConsentNotification(consentRequest).subscribe((data => {\r\n this.isConsentSent = true;\r\n }), (error => {\r\n console.log(error);\r\n }));\r\n }), error => { });\r\n\r\n }\r\n\r\n private checkScreenSize() {\r\n this.isMobileDevice = window.innerWidth <= 600;\r\n }\r\n loadLenderQuestionMenu() {\r\n if (this.selectedLenderId === Lenders.FlexShopper) {\r\n //&& this.fsReturningCustomerStatus != null\r\n // && this.fsReturningCustomerStatus.applicationStatus !== null\r\n // No More Lender Question for FS\r\n // if (this.fsReturningCustomerStatus.applicationStatus === ApplicationStatus.Staged) {\r\n // this.lenderService.getLenderMenuByLenderId().subscribe((response => {\r\n // if (response !== null) {\r\n // if (response.IsSuccess) {\r\n // var lenderQuestionMenu = response.Result;\r\n // this.sessionService.setSessionLenderQuestionData(\"lenderQuestionMenu\", lenderQuestionMenu);\r\n // this.router.navigate([this.nextPageRoute]);\r\n // }\r\n // }\r\n // }), (error => {\r\n // console.log(error);\r\n // }));\r\n // }\r\n // else {\r\n this.router.navigate(['processcomplete']);\r\n // }\r\n }\r\n else {\r\n this.lenderService.getLenderMenuByLenderId().subscribe((response => {\r\n if (response !== null) {\r\n if (response.IsSuccess) {\r\n var lenderQuestionMenu = response.Result;\r\n this.sessionService.setSessionLenderQuestionData(\"lenderQuestionMenu\", lenderQuestionMenu);\r\n this.router.navigate([this.nextPageRoute]);\r\n }\r\n }\r\n }), (error => {\r\n console.log(error);\r\n }));\r\n }\r\n }\r\n\r\n getTranslation() {\r\n this.vernanceLLCUrlKey = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.vernanceLLC.urlKey');\r\n\r\n this.americanFirstFinanceTermsConditionUrlKey = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.americanFirstFinance.termsConditionUrlKey');\r\n this.americanFirstFinanceArbitrationProvisionUrlKey = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.americanFirstFinance.arbitrationProvisionUrlKey');\r\n this.americanFirstFinanceMarketingCallsTextsUrlKey = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.americanFirstFinance.marketingCallsTextsUrlKey');\r\n this.americanFirstFinancePrivacyPolicy = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.americanFirstFinance.privacyPolicy');\r\n\r\n this.johnDeereTermsAndAuthorization = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.johnDeere.termsAndAuthorization');\r\n this.johnDeereTermsAndConditions = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.johnDeere.termsAndConditions');\r\n\r\n this.ucfsTermsAndConditions = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.ucfs.termsAndConditions');\r\n\r\n this.dealerDirectTermsAndConditions = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.dealerDirect.termsAndConditions');\r\n\r\n this.greenWaveConsentToText = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.greenWave.consentToText');\r\n this.greenWaveTermsAndConditions = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.greenWave.termsAndConditions');\r\n\r\n this.uownPrivacyPolicy = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.uown.privacyPolicy');\r\n this.uownTermsOfService = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.uown.termsOfService');\r\n\r\n this.flexShopperTermsOfUse = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.flexShopper.termsOfUse');\r\n this.flexShopperPrivacyPolicy = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.flexShopper.privacyPolicy');\r\n\r\n this.uSAllianceTermsOfUse = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.uSAlliance.termsOfUse');\r\n this.uSAlliancePrivacyPolicy = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.uSAlliance.privacyPolicy');\r\n\r\n this.sdcuForms = this.customeTranslocoService.translate('lenderselection.lenderSelection.sendConsentNotification.sdcu.forms');\r\n\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n

{{'lenderselection.lenderSelection.lenderWaitingMsgCtrl.text' | transloco}}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
0\">\r\n \r\n

\r\n {{'lenderselection.lenderSelection.lenderFoundMsgCtrl.text'|transloco}}\r\n

\r\n
\r\n
\r\n

\r\n {{'lenderselection.lenderSelection.noLenderMsgCtrl.text'|transloco}}\r\n

\r\n
\r\n
\r\n\r\n
0\">\r\n
\r\n
\r\n \r\n \"Logo\"\r\n
\r\n\r\n
\r\n \r\n

{{lenderAddress.Address}} {{lenderAddress.City}} {{lenderAddress.State}} {{lenderAddress.Zip }}

\r\n \r\n

 {{selectedLenderContactTranslation.PhoneLabel}} # ({{selectedLender.PhoneNumber | slice:0:3}}) {{selectedLender.PhoneNumber | slice:3:6}} - {{selectedLender.PhoneNumber | slice:6:10}}

\r\n

 {{selectedLenderContactTranslation.ServiceNoLabel}} # ({{selectedLender.ServiceNumber | slice:0:3}}) {{selectedLender.ServiceNumber | slice:3:6}} - {{selectedLender.ServiceNumber | slice:6:10}}

\r\n

 {{selectedLender.WebSite}}

\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Terms And Conditions\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Terms And Conditions\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n

{{'lenderselection.lenderSelection.lenderWaitingMsgCtrl.text'|transloco}}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
0\">\r\n \r\n

0\">\r\n {{'lenderselection.lenderSelection.lenderFoundMsgCtrl.text'|transloco}}\r\n

\r\n
\r\n\r\n
\r\n

\r\n {{'lenderselection.lenderSelection.noLenderMsgCtrl.text'|transloco}}\r\n

\r\n
\r\n
\r\n\r\n
0\">\r\n
0\">\r\n \"Logo\"\r\n
\r\n
\r\n
\r\n

{{lenderAddress.Address}} {{lenderAddress.City}} {{lenderAddress.State}} {{lenderAddress.Zip }}

\r\n \r\n

{{selectedLenderContactTranslation.PhoneLabel}} {{selectedLender.PhoneNumber | slice:0:3}} {{selectedLender.PhoneNumber | slice:3:6}} {{selectedLender.PhoneNumber | slice:6:10}}

\r\n

{{selectedLenderContactTranslation.ServiceNoLabel}} {{selectedLender.ServiceNumber | slice:0:3}} {{selectedLender.ServiceNumber | slice:3:6}} {{selectedLender.ServiceNumber | slice:6:10}}

\r\n

{{selectedLender.WebSite}}

\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, HostListener, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MediaLayoutService } from '../../service/media.layout.service';\r\nimport { Constants } from '../../shared/constant';\r\nimport { ApplicantFormData } from '../models/applicant-form-data';\r\nimport { ApplicantService } from '../service/applicant-service';\r\nimport { FormDataService } from '../service/form-data.service';\r\nimport { OnlineApplicationSource } from 'src/app/applicant/models/online-application-source';\r\nimport { isNullOrUndefined } from 'is-what';\r\nimport { OnlineApplicationMode } from '../models/online-application-mode';\r\nimport { environment } from 'src/environments/environment';\r\nimport { ApplicationCurrentStatuses } from '../../entity/ApplicationCurrentStatuses';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { AuthService } from '../../service/auth.service';\r\nimport { ConfirmationBox } from '../../shared/components/confirmation-box/confirmation-box.model';\r\nimport { ConfirmationBoxService } from '../../shared/components/confirmation-box/confirmation-box.service';\r\nimport { forkJoin } from 'rxjs';\r\nimport { LookUp } from '../../entity/lookup';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\n\r\ndeclare const fbq: any;\r\ndeclare const gtm: any;\r\n@Component({\r\n selector: 'app-loan-amount',\r\n templateUrl: './loan-amount.component.html',\r\n styleUrls: ['./loan-amount.component.scss'],\r\n providers: [provideTranslocoScope({ scope: 'loanAmount' })]\r\n})\r\nexport class LoanAmountComponent implements OnInit {\r\n isExistingUserApplication: boolean;\r\n @HostListener('window.resize', [])\r\n onResize() {\r\n this.checkScreenSize();\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n\r\n private applicationSource: OnlineApplicationSource;\r\n public isMobileDevice: boolean;\r\n public isInvalid: boolean = false;\r\n public formData: ApplicantFormData;\r\n public minAmount: number;\r\n public amountRangeError: string = \"\";\r\n private loanAmountInfoForm: any;\r\n public loanAmount: number;\r\n public isExistingApplication: boolean = false;\r\n public isNewUser: boolean = true;\r\n public isAmountInRange: boolean = true;\r\n public maxAmount: number;\r\n private isApplicationCreated: boolean = false;\r\n public currentStatuses: ApplicationCurrentStatuses;\r\n OnlineApplicationMode: typeof OnlineApplicationMode = OnlineApplicationMode;\r\n public lookUpData: LookUp[];\r\n\r\n constructor(private router: Router,\r\n private P_MediaLayoutService: MediaLayoutService,\r\n private formDataService: FormDataService,\r\n private applicantService: ApplicantService,\r\n private sharedService: SharedService,\r\n private confirmationBoxService: ConfirmationBoxService,\r\n private authService: AuthService,\r\n private translocoService: CustomTranslocoService ) { }\r\n\r\n ngOnInit(): void {\r\n this.formData = this.formDataService.getFormData();\r\n this.isExistingUserApplication = this.formDataService.getApplicationMode() === this.OnlineApplicationMode.ONLINE_ADD_NEW_APPLICATION;\r\n this.isExistingApplication = this.formDataService.getApplicationMode() === this.OnlineApplicationMode.ONLINE_INFLIGHT_APPLICATION;\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n this.isApplicationCreated = this.formData.Applications.ApplicationID != null ? true : false;\r\n if (!this.isExistingApplication) {\r\n this.formData.ApplicationCreate.BestEstimate = null;\r\n }\r\n if (this.formData.ApplicationCreate.BestEstimate === 0) {\r\n this.formData.ApplicationCreate.BestEstimate = null;\r\n }\r\n let requestArrray = [];\r\n requestArrray.push(this.sharedService.getLookUpList(null));\r\n\r\n forkJoin(requestArrray).subscribe(data => {\r\n this.lookUpData = data[0].Result;\r\n let requestedAmount = this.lookUpData.filter(acc => acc.LookUpType === \"RequestedAmount\")\r\n this.minAmount = +(requestedAmount[0].Name);\r\n this.maxAmount = +(requestedAmount[1].Name);\r\n // this.amountRangeError = \"Please enter an amount of $\" + this.minAmount + \" to $\" + this.maxAmount + \".\"; \r\n this.amountRangeError = this.translocoService.amountRangeError(this.minAmount, this.maxAmount);\r\n });\r\n }\r\n\r\n save() {\r\n this.applicationSource = this.formDataService.getApplicationSource();\r\n this.formData.ApplicationCreate.SourceId = !isNullOrUndefined(this.applicationSource.SourceId) ? this.applicationSource.SourceId : null;\r\n this.formData.ApplicationCreate.SourceTypeId = !isNullOrUndefined(this.applicationSource.SourceTypeId) ? this.applicationSource.SourceTypeId : null;\r\n this.formData.ApplicationCreate.LeadId = !isNullOrUndefined(this.applicationSource.LeadId) ? this.applicationSource.LeadId : null;\r\n this.formDataService.setFormData(this.formData);\r\n }\r\n\r\n validateSection() {\r\n document.querySelectorAll(\"#loanAmount\").forEach((input: any) => {\r\n if (input.value === '' || input.value === undefined || input.value === null) {\r\n input.classList.add(\"ng-dirty\");\r\n }\r\n });\r\n\r\n }\r\n\r\n public goToNext(form: any) {\r\n this.validateSection();\r\n this.isInvalid = false;\r\n this.loanAmountInfoForm = form;\r\n\r\n if (this.loanAmountInfoForm.invalid) {\r\n this.isInvalid = true;\r\n this.isAmountInRange = true;\r\n return;\r\n }\r\n this.formData.ApplicationCreate.LanguageKey = \"loanAmount.loanAmountComponent.toastMessageCtrl\";\r\n\r\n if ((this.formData.ApplicationCreate.BestEstimate < this.minAmount) ||\r\n (this.formData.ApplicationCreate.BestEstimate > this.maxAmount)) {\r\n this.isAmountInRange = false;\r\n return;\r\n }\r\n fbq('trackCustom', 'SubmitApplication', { tagId: '123' });\r\n if (environment.googleTagsEnabled) {\r\n gtm.push({ 'event': 'SubmitApplication', \"tagId\": '123' });\r\n }\r\n\r\n this.sharedService.GetCurrentStatusesByApplicationId(this.formData.Applications.ApplicationID)\r\n .subscribe((data => {\r\n this.currentStatuses = !isNullOrUndefined(data.Result) ? data.Result : new ApplicationCurrentStatuses;\r\n if (this.currentStatuses.isApplicationDecisionNotAvailable == true) {\r\n this.save();\r\n if ((!this.isExistingApplication || this.isExistingUserApplication) && !this.isApplicationCreated) {\r\n this.applicantService.addLoanAmountDetails(this.formData.ApplicationCreate).subscribe((response) => {\r\n if (response != null) {\r\n if (response.IsSuccess) {\r\n this.formData.Applications.ApplicationID = response.Result;\r\n this.formDataService.setFormData(this.formData);\r\n this.router.navigate(['lenderselection']);\r\n }\r\n }\r\n }), ((error: any) => {\r\n console.log(error);\r\n });\r\n }\r\n else {\r\n this.formData.ApplicationCreate.ApplicationID = this.formData.Applications.ApplicationID;\r\n this.applicantService.updateLoanAmountDetails(this.formData.ApplicationCreate).subscribe((response) => {\r\n if (response != null) {\r\n if (response.IsSuccess)\r\n this.router.navigate(['lenderselection']);\r\n }\r\n }), ((error: any) => {\r\n console.log(error);\r\n });\r\n }\r\n }\r\n else {\r\n this.applicantService.navigateToDashboardOnApplicationDicision();\r\n }\r\n\r\n }),\r\n (error => {\r\n console.log(error);\r\n }));\r\n }\r\n\r\n checkScreenSize() {\r\n this.isMobileDevice = window.innerWidth <= 600;\r\n }\r\n ngAfterViewInit() {\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","
\r\n\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t

{{ 'loanAmount.loanAmountComponent.headerCtrl.label' | transloco }}

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t{{ 'loanAmount.loanAmountComponent.loanAmountInputCtrl.requiredError' | transloco }}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{{amountRangeError}}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t

{{ 'loanAmount.loanAmountComponent.infoTextCtrl.text' | transloco }}

\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\"Responsive\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n
\r\n\r\n
\r\n\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t

{{ 'loanAmount.loanAmountComponent.headerCtrl.label' | transloco }}

\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{{ 'loanAmount.loanAmountComponent.loanAmountInputCtrl.requiredError' | transloco }}\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t{{amountRangeError}}\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t

\r\n\t\t\t\t\t\t\t{{ 'loanAmount.loanAmountComponent.infoTextCtrl.text' | transloco }}\r\n\t\t\t\t\t\t

\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n
\r\n","import { Component, HostListener, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Constants } from 'src/app/shared/constant';\r\nimport { environment } from '../../../environments/environment';\r\nimport { SessionService } from '../../service/session.service';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { ApplicantService } from '../service/applicant-service';\r\nimport { FormDataService } from '../service/form-data.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\nimport { CustomTranslocoService } from 'src/app/service/transloco.service';\r\ndeclare let Plaid: any;\r\ndeclare var jQuery: any;\r\n@Component({\r\n selector: 'app-plaid-link',\r\n templateUrl: './plaid-link.component.html',\r\n styleUrls: ['./plaid-link.component.scss'],\r\n providers: [provideTranslocoScope({ scope: 'plaid-link', alias: 'plaid-link' })]\r\n})\r\nexport class PlaidLinkComponent implements OnInit {\r\n public _token: string;\r\n public _source: number;\r\n private lenderQuestionPageRoute = 'lenderquestion/cf-bank';\r\n public applicationLanguage: string = null;\r\n constructor(private currentRoute: ActivatedRoute,\r\n private applicantService: ApplicantService,\r\n private formDataService: FormDataService,\r\n private router: Router,\r\n private _sharedService: SharedService,\r\n private sessionService: SessionService,\r\n private _translocoService: CustomTranslocoService) { }\r\n\r\n ngOnInit() {\r\n this._source = this.currentRoute.snapshot.queryParams['source'];\r\n this._token = this.currentRoute.snapshot.queryParams['token'];\r\n this.applicationLanguage = this._translocoService.getCurrentLanguage();\r\n let vm = this;\r\n (function ($) {\r\n //#region Customer interaction handler\r\n var qs: any = getUrlVars();\r\n var applicationID = qs['source'];\r\n var linkToken = qs['token'];\r\n var applicantID = qs['id'];\r\n var handler = Plaid.create({\r\n token: linkToken,\r\n webhook: '',\r\n countryCodes: ['US'],\r\n language: vm.applicationLanguage,\r\n apiVersion: 'v2',\r\n product: ['auth', 'assets'],\r\n onSuccess: function (public_token: any, metadata: any) {\r\n $.ajax({\r\n url: environment.apiUrl + Constants.WEB_API_URL_PLAID_INSERT_PUBLIC_TOKEN,\r\n type: \"post\",\r\n contentType: \"application/json\",\r\n data: JSON.stringify({\r\n ApplicantID: applicantID,\r\n ApplicationID: applicationID,\r\n Token: public_token,\r\n Request: linkToken,\r\n }),\r\n success: function (result: any, status: any, xhr: any) {\r\n $('#divLinkPlaid').css('display', 'none');\r\n $('#divLinkPlaidMessage').css('display', 'block');\r\n $('#alert').text('Thank you! Account has been linked successfully.');\r\n var event = new CustomEvent(\"CallLenderQuestion\");\r\n window.dispatchEvent(event);\r\n },\r\n error: function (xhr: any, status: any, error: any) {\r\n $('#divLinkPlaid').css('display', 'none');\r\n $('#divLinkPlaidErrorMessage').css('display', 'block');\r\n var event = new CustomEvent(\"CallPlaidErrorSetSession\");\r\n window.dispatchEvent(event);\r\n }\r\n });\r\n },\r\n onExit: function (err: any, metadata: any) {\r\n },\r\n onEvent: function (eventName: any, metadata: any) {\r\n }\r\n });\r\n //#endregion\r\n $('#link-button').on('click', function (e: any) {\r\n handler.open();\r\n });\r\n })(jQuery);\r\n function getUrlVars() {\r\n var vars: any = [], hash: any;\r\n //Check for querystring parameters:\r\n // 1. Old URL: e.g. - https://cfportalqa.azurewebsites.net/#/plaid/linkaccount?source=1370631&token=link-sandbox-f081f787-93ae-4302-bb33-69d5fcae850a\r\n // 2. URL with oAuth State ID: e.g. -\r\n var url = window.location.href;\r\n var hashes = url.slice(window.location.href.indexOf('?') + 1).split('&');\r\n if (hashes.length > 0 && hashes[0] !== url) {\r\n for (var i = 0; i < hashes.length; i++) {\r\n hash = hashes[i].split('=');\r\n vars.push(hash[0]);\r\n vars[hash[0]] = hash[1];\r\n }\r\n }\r\n else {\r\n //Check for url parameters\r\n // New URL: e.g. - https://cfportalqa.azurewebsites.net/#/plaid/linkaccount/1370631/link-sandbox-f081f787-93ae-4302-bb33-69d5fcae850a\r\n hashes = url.slice(window.location.href.indexOf('linkaccount') + 'linkaccount'.length + 1).split('/');\r\n if (hashes.length >= 2) {\r\n //record applicationId\r\n vars.push('source');\r\n vars['source'] = hashes[0];\r\n //record plaid token\r\n vars.push('token');\r\n vars['token'] = hashes[1];\r\n }\r\n }\r\n return vars;\r\n }\r\n }\r\n @HostListener(\"window:CallLenderQuestion\")\r\n public openExistingApplication(): void {\r\n //let requestArray = [];\r\n //un comment below to get all data on redirected page\r\n\r\n //if (this._source != null) {\r\n // requestArray.push(this.applicantService.getApplicationInformation(this._source));\r\n // forkJoin(requestArray).subscribe((responseArray => {\r\n // if (!responseArray[0].IsSuccess)\r\n // return;\r\n // let formData: ApplicantInsertRequest = new ApplicantInsertRequest();\r\n // let applicationInformation: ApplicationInformation = responseArray[0].Result;\r\n // formData.Applicants = applicationInformation.Applicant;\r\n // formData.BankDetails = (applicationInformation.BankDetails != null && applicationInformation.BankDetails.length > 0) ? JSON.parse(JSON.stringify(applicationInformation.BankDetails[0])) : null;\r\n // formData.CreditCardDetails = (applicationInformation.CreditCardDetails != null) ? JSON.parse(JSON.stringify(applicationInformation.CreditCardDetails)) : null;\r\n // formData.Addresses = (applicationInformation.Addresses != null && applicationInformation.Addresses.length > 0) ? JSON.parse(JSON.stringify(applicationInformation.Addresses.filter(x => x.CoApplicantID == null && x.IsPrimary == true)[0])) : null;\r\n // formData.ApplicantEmploymentList = applicationInformation.Employments;\r\n // formData.ApplicantContactHistory = applicationInformation.ApplicantContactHistory;\r\n // formData.DealerDirectLenderQuestionDetails = (applicationInformation.DealerDirectLenderQuestionDetails != null && applicationInformation.DealerDirectLenderQuestionDetails.ApplicationID != null) ? applicationInformation.DealerDirectLenderQuestionDetails : null;\r\n // formData.Applications = applicationInformation.Application;\r\n // formData.ApplicationDetails = applicationInformation.ApplicationDetails[0];\r\n // formData.MailingAddresses = (applicationInformation.Addresses != null && applicationInformation.Addresses.length > 0)\r\n // ? (applicationInformation.Addresses.filter(x => x.AddressTypeID == ApplicantAddressType.Mailing).length > 0\r\n // ? JSON.parse(JSON.stringify(applicationInformation.Addresses.filter(x => x.AddressTypeID == ApplicantAddressType.Mailing)[0]))\r\n // : null) : null;\r\n // formData.LenderID = applicationInformation.Lender.LenderID;\r\n // if (formData.Applications.IsCoApplicantApplicable) {\r\n // formData.CoApplicantDetails = new CoApplicantInsertRequest();\r\n // formData.CoApplicantDetails.CoApplicants = applicationInformation.CoApplicant;\r\n // if (applicationInformation.Addresses.filter(x => x.CoApplicantID != null).length > 0)\r\n // formData.CoApplicantDetails.CoApplicantAddresses = (applicationInformation.Addresses != null && applicationInformation.Addresses.length > 0) ? JSON.parse(JSON.stringify(applicationInformation.Addresses.filter(x => x.CoApplicantID != null)[0])) : null;\r\n // else\r\n // formData.CoApplicantDetails.CoApplicantAddresses = null;\r\n // }\r\n // this.formDataService.setFormData(formData);\r\n // this.formDataService.setOnlineApplicationMode(OnlineApplicationMode.ONLINE_INFLIGHT_APPLICATION);\r\n // this.router.navigate([this.lenderQuestionPageRoute]);\r\n // }));\r\n //}\r\n this.sessionService.setSessionIsPlaidVerificationSuccess(\"IsPlaidVerificationSuccess\", true);\r\n this.router.navigate([this.lenderQuestionPageRoute]);\r\n }\r\n\r\n @HostListener(\"window:CallPlaidErrorSetSession\")\r\n public setSessionIsPlaidVerificationSuccess() {\r\n this.sessionService.setSessionIsPlaidVerificationSuccess(\"IsPlaidVerificationSuccess\", false);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","\r\n","import { Component, HostListener, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MediaLayoutService } from '../../service/media.layout.service';\r\nimport { ApplicantService } from '../service/applicant-service';\r\nimport { Products } from './entity/Products';\r\nimport { ApplicantFormData } from '../models/applicant-form-data';\r\nimport { FormDataService } from '../service/form-data.service';\r\nimport { environment } from 'src/environments/environment';\r\nimport { OnlineApplicationMode } from '../models/online-application-mode';\r\ndeclare const fbq: any;\r\ndeclare const gtm: any;\r\nimport { isNullOrUndefined } from 'is-what';\r\nimport { OnlineApplicationSource } from '../models/online-application-source';\r\nimport { ApplicationStatusPostMessage } from '../models/application-status-post-message';\r\nimport { AuthService } from '../../service/auth.service';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { ApplicationCurrentStatuses } from '../../entity/ApplicationCurrentStatuses';\r\nimport { ConfirmationBoxService } from '../../shared/components/confirmation-box/confirmation-box.service';\r\nimport { ConfirmationBox } from '../../shared/components/confirmation-box/confirmation-box.model';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\nimport { ApplicationRedirectionInfo } from '../models/ecommerce/application-redirection-info';\r\ndeclare const nid: any\r\n@Component({\r\n selector: 'app-pre-application',\r\n templateUrl: './pre-application.component.html',\r\n styleUrls: ['./pre-application.component.scss'],\r\n providers: [provideTranslocoScope({ scope: 'preApplication' })]\r\n})\r\nexport class PreApplicationComponent implements OnInit {\r\n\r\n @HostListener('window.resize', [])\r\n onResize() {\r\n this.checkScreenSize();\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n products: any[];\r\n docProduct: Products[];\r\n tempGroup: Products[];\r\n defaultData: Products[];\r\n private formData: ApplicantFormData;\r\n public isMobileDevice: boolean = false;\r\n public isUserLoggedin: boolean = false;\r\n public isExistingApplication: boolean = false;\r\n private isExistingUserApplication: boolean;\r\n private OnlineApplicationMode: typeof OnlineApplicationMode = OnlineApplicationMode;\r\n private applicationSource: OnlineApplicationSource;\r\n private isApplicationCreated: boolean = false;\r\n public currentStatuses: ApplicationCurrentStatuses;\r\n\r\n constructor(\r\n public P_MediaLayoutService: MediaLayoutService,\r\n private router: Router,\r\n private applicantService: ApplicantService,\r\n private formDataService: FormDataService,\r\n private confirmationBoxService: ConfirmationBoxService,\r\n private sharedService: SharedService,\r\n private authService: AuthService,\r\n private translocoService: CustomTranslocoService) {\r\n this.docProduct = [];\r\n this.tempGroup = [];\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n nid('setLinkedSiteId', 'form_palms436');\r\n this.loadProducts();\r\n this.formData = this.formDataService.getFormData();\r\n this.formData.LeadID = this.formDataService.applicationLeadId;\r\n\r\n this.isExistingUserApplication = this.formDataService.getApplicationMode() === this.OnlineApplicationMode.ONLINE_ADD_NEW_APPLICATION;\r\n this.isExistingApplication = this.formDataService.getApplicationMode() === this.OnlineApplicationMode.ONLINE_INFLIGHT_APPLICATION;\r\n this.applicationSource = this.formDataService.getApplicationSource();\r\n this.formData.ApplicationCreate.SourceId = !isNullOrUndefined(this.applicationSource.SourceId) ? this.applicationSource.SourceId : null;\r\n this.formData.ApplicationCreate.SourceTypeId = !isNullOrUndefined(this.applicationSource.SourceTypeId) ? this.applicationSource.SourceTypeId : null;\r\n this.formData.ApplicationCreate.LeadId = !isNullOrUndefined(this.applicationSource.LeadId) ? this.applicationSource.LeadId : null;\r\n this.isApplicationCreated = this.formData.Applications.ApplicationID != null ? true : false;\r\n this.formData.Applications.SelectedLanguageID = this.translocoService.getCurrentLanguage();\r\n this.formDataService.setFormData(this.formData);\r\n //for New application reset this plaid flag.\r\n this.formDataService.savePlaidLinkVerification(false);\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n this.isUserLoggedin = JSON.parse(sessionStorage.getItem(\"Authenticate\") || 'false') as boolean;\r\n\r\n }\r\n\r\n loadProducts() {\r\n let currentLanguage = this.translocoService.getCurrentLanguage();\r\n this.applicantService.getProducts(currentLanguage).subscribe((response => {\r\n if (response !== null) {\r\n if (response.IsSuccess)\r\n if (response.Result != null && response.Result != undefined) {\r\n if (response.Result.length === 1) {\r\n this.translocoService.setTransLocoScopeWithAlias('preApplication', 'preApplication');\r\n setTimeout(() => {\r\n this.goToNext(response.Result[0].ProductCategoryID);\r\n }, 3000);\r\n }\r\n else {\r\n this.products = response.Result;\r\n }\r\n }\r\n\r\n else\r\n this.products = this.defaultData;\r\n }\r\n else\r\n console.log(response);\r\n }), (error => {\r\n console.log(error);\r\n }));\r\n }\r\n\r\n\r\n public checkScreenSize() {\r\n this.isMobileDevice = window.innerWidth <= 600;\r\n }\r\n\r\n public goToNext(productCategoryID: number) {\r\n fbq('trackCustom', 'PreApplicationProduct', { tagId: '119' });\r\n if (environment.googleTagsEnabled) {\r\n gtm.push({ 'event': 'PreApplicationProduct', \"tagId\": '119' });\r\n }\r\n let applicationID = this.isApplicationCreated == true ? this.formData.Applications.ApplicationID : 0;\r\n this.sharedService.GetCurrentStatusesByApplicationId(applicationID)\r\n .subscribe((data => {\r\n this.currentStatuses = (data.Result !== null && data.Result !== undefined) ? data.Result : new ApplicationCurrentStatuses;\r\n if (this.currentStatuses.isApplicationDecisionNotAvailable == true) {\r\n this.formData.ApplicationCreate.ProductCategoryID = productCategoryID;\r\n this.formData.ApplicationCreate.StaffID = (!isNullOrUndefined(this.formDataService.getStaffID()) ? this.formDataService.getStaffID() : null);\r\n this.formData.LeadID = this.formDataService.applicationLeadId;\r\n this.formDataService.setFormData(this.formData);\r\n\r\n let lang = this.translocoService.getCurrentLanguage();\r\n this.formData.ApplicationCreate.SelectedLanguageID = lang;\r\n this.translocoService.setApplicationLanguage(lang);\r\n this.formData.ApplicationCreate.LanguageKey = 'preApplication.preApplication.toastMessageCtrl';\r\n if ((!this.isExistingApplication || this.isExistingUserApplication) && !this.isApplicationCreated) {\r\n this.applicantService.CreateDraftApplication(this.formData.ApplicationCreate).subscribe((response) => {\r\n if (response != null) {\r\n if (response.IsSuccess) {\r\n this.translocoService.setApplicationCount();\r\n this.formData.Applications.ApplicationID = response.Result;\r\n this.formDataService.setFormData(this.formData);\r\n\r\n var applicationRedirectionInfo = this.formDataService.getApplicationRedirectionInfo();\r\n if (applicationRedirectionInfo == null || applicationRedirectionInfo == undefined) {\r\n applicationRedirectionInfo = new ApplicationRedirectionInfo()\r\n }\r\n\r\n applicationRedirectionInfo.ApplicationId = response.Result;\r\n\r\n this.setNeuroIdFunnelData(applicationRedirectionInfo.ApplicationId.toString())\r\n this.formDataService.setApplicationRedirectionInfo(applicationRedirectionInfo);\r\n\r\n this.router.navigate(['identity']);\r\n }\r\n }\r\n }), ((error: any) => {\r\n console.log(error);\r\n });\r\n }\r\n else {\r\n this.formData.ApplicationCreate.ApplicationID = this.formData.Applications.ApplicationID;\r\n nid('identify', this.formData.ApplicationCreate.ApplicationID.toString());\r\n this.applicantService.updateLoanAmountDetails(this.formData.ApplicationCreate).subscribe((response) => {\r\n if (response != null) {\r\n if (response.IsSuccess)\r\n this.router.navigate(['identity']);\r\n }\r\n }), ((error: any) => {\r\n console.log(error);\r\n });\r\n }\r\n }\r\n else {\r\n this.applicantService.navigateToDashboardOnApplicationDicision();\r\n }\r\n }),\r\n (error => {\r\n console.log(error);\r\n }));\r\n }\r\n\r\n setNeuroIdFunnelData(applicationID: any) {\r\n nid('identify', applicationID);\r\n\r\n const merchantValue = this.applicationSource?.SourceId || 'Organic';\r\n const keyValue = `${merchantValue}|QR-New`;\r\n\r\n nid('setVariable', 'funnel', keyValue);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{'preApplication.preApplication.productSelection.header'|transloco}}


\r\n
{{'preApplication.preApplication.productSelection.subHeader'|transloco}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{product.Product}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","export class CompleteApplicantRequest {\r\n public IPAddress: string;\r\n public DigitalSignature: string;\r\n public Timestamp: number;\r\n public LenderID?: number;\r\n public LanguageKey: string;\r\n}\r\n","import { Component, HostListener, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\r\nimport { forkJoin } from 'rxjs/internal/observable/forkJoin';\r\nimport { environment } from 'src/environments/environment';\r\nimport { escapeLeadingUnderscores } from 'typescript';\r\nimport { ModalConfigurationComponent } from '../../entity/modalConfigurationComponent';\r\nimport { AuthService } from '../../service/auth.service';\r\nimport { MediaLayoutService } from '../../service/media.layout.service';\r\nimport { SharedService } from '../../service/shared.service';\r\nimport { LenderStatusesEnum } from '../../shared/enum/lender-statuses-enum';\r\nimport { Lenders } from '../../shared/enum/lenders';\r\nimport { CFApprovalDisplayComponent } from '../approval-display/cf-approval-display/cf-approval-display.component';\r\nimport { FlexShopperApprovalDisplayComponent } from '../approval-display/flex-shopper-approval-display/flex-shopper-approval-display.component';\r\nimport { UownApprovalDisplayComponent } from '../approval-display/uown-approval-display/uown-approval-display.component';\r\nimport { CancelApplicationComponent } from '../cancel-application/cancel-application.component';\r\nimport { ApplicationStatus } from '../entity/application-status-enum';\r\nimport { LenderApiResponse } from '../entity/lender-api-response';\r\nimport { ApplicantFormData } from '../models/applicant-form-data';\r\nimport { ApplicationStatusPostMessage } from '../models/application-status-post-message';\r\nimport { CompleteApplicantRequest } from '../models/complete-applicant-request';\r\nimport { Lender } from '../models/lender';\r\nimport { OnlineApplicationMode } from '../models/online-application-mode';\r\nimport { ApplicantService } from '../service/applicant-service';\r\nimport { FormDataService } from '../service/form-data.service';\r\nimport { LenderService } from '../service/lender-service';\r\nimport { ConfirmationBoxService } from '../../shared/components/confirmation-box/confirmation-box.service';\r\nimport { ConfirmationBox } from '../../shared/components/confirmation-box/confirmation-box.model';\r\nimport { ApplicationCurrentStatuses } from '../../entity/ApplicationCurrentStatuses';\r\nimport { LSTInvoiceRequiredDisplayComponent } from '../approval-display/lst-invoice-required-display/lst-invoice-required-display.component';\r\nimport { SessionService } from '../../service/session.service';\r\nimport { IFramePostMessage } from '../models/iframe-post-message';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\nimport { CustomTranslocoService } from '../../service/transloco.service';\r\ndeclare const nid: any;\r\ndeclare const fbq: any;\r\ndeclare const gtm: any;\r\n@Component({\r\n selector: 'app-process-complete',\r\n templateUrl: './process-complete.component.html',\r\n styleUrls: ['./process-complete.component.scss'],\r\n providers: [provideTranslocoScope({ scope: 'process-complete', alias: 'process-complete' })]\r\n})\r\nexport class ProcessCompleteComponent implements OnInit {\r\n isMobileDevice: boolean = false;\r\n public checked: boolean = false;\r\n public formData: ApplicantFormData;\r\n public currentDate = new Date();\r\n private userName: string = '';\r\n private pass: string = 'Welcome@123';\r\n public fundingParnterName: string = \"\";\r\n public lenderName: string = \"\";\r\n public lenderId: number;\r\n public selectedLender: Lender;\r\n OnlineApplicationMode: typeof OnlineApplicationMode = OnlineApplicationMode;\r\n isExistingUserApplication: boolean;\r\n isExistingApplication: boolean;\r\n public selectedLenderId?: any = null;\r\n public isProcessing: boolean = false;\r\n public currentStatuses: ApplicationCurrentStatuses;\r\n public isPageLoading: boolean = true;\r\n private roleID: number;\r\n //private loginLanguage: string;\r\n private preferredLanguageID: string;\r\n @HostListener('window:resize', [])\r\n public onResize() {\r\n this.checkScreenSize();\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n constructor(public P_MediaLayoutService: MediaLayoutService,\r\n private formDataService: FormDataService,\r\n private authService: AuthService,\r\n private applicantService: ApplicantService,\r\n private sharedService: SharedService,\r\n private lenderService: LenderService,\r\n private confirmationBoxService: ConfirmationBoxService,\r\n private modalService: NgbModal, private router: Router,\r\n private sessionService: SessionService,\r\n private translocoService: CustomTranslocoService) { }\r\n\r\n ngOnInit(): void {\r\n this.isPageLoading = true;\r\n this.isMobileDevice = this.P_MediaLayoutService.isMobileDeviceDetected();\r\n let _tempFormData = this.formDataService.getFormData();\r\n nid('setLinkedSiteId', 'form_palms436');\r\n nid('identify', _tempFormData.Applications.ApplicationID);\r\n nid('applicationSubmit');\r\n let lenderID = _tempFormData.LenderID;\r\n\r\n if (lenderID !== null) {\r\n this.applicantService.getLenderDetailsbyId(lenderID).subscribe((response: any) => {\r\n this.fundingParnterName = this.formDataService.getApplicationFundingPartnerName();\r\n this.roleID = this.sessionService.getSessionRoleID(\"RoleID\");\r\n this.formData = this.formDataService.getFormData();\r\n this.selectedLenderId = this.formData.LenderID;\r\n this.userName = this.formData.UserName;\r\n this.selectedLender = response.Result;\r\n this.lenderName = response.Result.LenderName;\r\n if (this.fundingParnterName !== null && this.fundingParnterName !== \"\" && this.fundingParnterName !== undefined && this.selectedLenderId === Lenders.American_First_Finance) {\r\n this.lenderName = this.fundingParnterName;\r\n }\r\n this.getOtherDetails();\r\n this.isPageLoading = false;\r\n }, (error => {\r\n console.log(error);\r\n }));\r\n }\r\n else {\r\n this.fundingParnterName = this.formDataService.getApplicationFundingPartnerName();\r\n this.roleID = this.sessionService.getSessionRoleID(\"RoleID\");\r\n this.formData = this.formDataService.getFormData();\r\n this.selectedLenderId = this.formData.LenderID;\r\n this.getOtherDetails();\r\n this.isPageLoading = false;\r\n }\r\n\r\n }\r\n\r\n public getOtherDetails() {\r\n let requestArray = [];\r\n requestArray.push(this.applicantService.getDigitalSignature(JSON.stringify(this.formData.Applications)));\r\n\r\n forkJoin(requestArray).subscribe((response: any[]) => {\r\n this.formData.IPAddress = response[0].Result[0].toString();\r\n this.formData.DigitalSignature = response[0].Result[1].toString();\r\n this.formData.Timestamp = this.currentDate.getTime();\r\n\r\n }, (error => {\r\n console.log(error);\r\n }));\r\n }\r\n\r\n public openCancel() {\r\n this.isProcessing = true;\r\n const modalRef = this.modalService.open(CancelApplicationComponent, { size: 'lg', backdrop: 'static', keyboard: true });\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) {\r\n }\r\n else {\r\n this.isProcessing = false;\r\n }\r\n },//Dismiss Modal Event\r\n (reason) => {\r\n this.isProcessing = false;\r\n });\r\n }\r\n\r\n public navigateToExistingApplication() {\r\n this.isProcessing = true;\r\n fbq('trackCustom', 'ConfirmAndComplete', { tagId: '113' });\r\n if (environment.googleTagsEnabled) {\r\n gtm.push({ 'event': 'ConfirmAndComplete', \"tagId\": '113' });\r\n }\r\n let applicationStatusPostMessage = new ApplicationStatusPostMessage();\r\n // this.loginLanguage = this.translocoService.getLoginLanguage();\r\n this.preferredLanguageID = this.translocoService.getApplicantPreferredLanguageID();\r\n let request = new CompleteApplicantRequest();\r\n request.LanguageKey = 'process-complete.process-complete.toastMessageCtrl';\r\n request.DigitalSignature = this.formData.DigitalSignature;\r\n request.IPAddress = this.formData.IPAddress;\r\n request.LenderID = this.formData.LenderID;\r\n request.Timestamp = this.formData.Timestamp;\r\n this.isExistingUserApplication = this.formDataService.getApplicationMode() === this.OnlineApplicationMode.ONLINE_ADD_NEW_APPLICATION;\r\n this.isExistingApplication = this.formDataService.getApplicationMode() === this.OnlineApplicationMode.ONLINE_INFLIGHT_APPLICATION;\r\n\r\n this.sharedService.GetCurrentStatusesByApplicationId(this.formData.Applications.ApplicationID)\r\n .subscribe((data => {\r\n this.currentStatuses = (data.Result !== null && data.Result !== undefined) ? data.Result : new ApplicationCurrentStatuses;\r\n if (this.currentStatuses.isApplicationDecisionNotAvailable == true) {\r\n this.applicantService.completeApplicationProcess(request).subscribe((response => {\r\n if (response.IsSuccess) {\r\n this.formDataService.reSetApplicationSource();\r\n if (response.Result != null) {\r\n let lenderResponse: LenderApiResponse = response.Result;\r\n if (lenderResponse.Properties != null && lenderResponse.Error == 0) {\r\n //For Other than CF Lender\r\n let lenderStatus: string = (lenderResponse.Properties['Status'] != null || lenderResponse.Properties['Status'] != undefined) ? lenderResponse.Properties['Status'].toString() : '';\r\n let applicationStatus: string = (lenderResponse.Properties['ApplicationStatus'] != null || lenderResponse.Properties['ApplicationStatus'] != undefined) ? lenderResponse.Properties['ApplicationStatus'].toString() : '';\r\n\r\n //For CF Lender\r\n if (this.formData.LenderID == Lenders.Vernance_LLC) {\r\n let lenderStatusID = (lenderResponse.Properties['GDSStatusID'] != null || lenderResponse.Properties['GDSStatusID'] != undefined) ? lenderResponse.Properties['GDSStatusID'].toString() : null;\r\n lenderStatus = (lenderStatusID != null) ? LenderStatusesEnum[+lenderStatusID] : lenderStatus;\r\n }\r\n //For Approved Application\r\n if (lenderStatus.toLocaleLowerCase() === \"approved\") {\r\n let approveAmount: string = (lenderResponse.Properties['ApprovedAmount'] != null || lenderResponse.Properties['ApprovedAmount'] != undefined) ? lenderResponse.Properties['ApprovedAmount'].toString() : null;\r\n let showInstantApprovalMessage: string = String(lenderResponse.ShowInstantApprovalMessage);\r\n switch (this.formData.LenderID) {\r\n case Lenders.FlexShopper:\r\n this.ShowFlexShopperApproval(approveAmount, showInstantApprovalMessage);\r\n break;\r\n case Lenders.Vernance_LLC:\r\n //If vernance approved amount is not available than refer GDS Approval Amount.\r\n approveAmount = (approveAmount == null || approveAmount == undefined || approveAmount == '') && (lenderResponse.Properties['GDSApprovedAmount'] != null || lenderResponse.Properties['GDSApprovedAmount'] != undefined) ? lenderResponse.Properties['GDSApprovedAmount'].toString() : null;\r\n this.ShowCommunityFinanceApproval(approveAmount, showInstantApprovalMessage);\r\n break;\r\n case Lenders.Uown:\r\n this.ShowUownApproval(approveAmount, showInstantApprovalMessage);\r\n break;\r\n }\r\n let applicationStatusPostMessage = new ApplicationStatusPostMessage();\r\n applicationStatusPostMessage.ApplicationId = this.formData.Applications.ApplicationID;\r\n applicationStatusPostMessage.Lender = (this.formData.LenderID != null) ? this.lenderService.getLenderNameFromEnum(this.formData.LenderID) : null;\r\n applicationStatusPostMessage.LenderStatus = (lenderStatus != null) ? lenderStatus : null;\r\n applicationStatusPostMessage.FundedAmount = null;\r\n applicationStatusPostMessage.FulfilledAmount = null;\r\n applicationStatusPostMessage.ApplicationStatus = applicationStatus;\r\n applicationStatusPostMessage.ApprovedAmount = (approveAmount != null) ? +approveAmount : null;\r\n\r\n let iframePostMessage = new IFramePostMessage()\r\n iframePostMessage.type = \"tfc-alert\";\r\n iframePostMessage.message = \"ProcessingComplete\";\r\n iframePostMessage.isSuccess = true;\r\n iframePostMessage.result = applicationStatusPostMessage;\r\n window.parent.postMessage(JSON.stringify(iframePostMessage), \"*\");\r\n console.log(JSON.stringify(iframePostMessage));\r\n }\r\n //InvoiceRequired\r\n if (applicationStatus.toLocaleLowerCase() === \"invoicerequired\") {\r\n switch (this.formData.LenderID) {\r\n case Lenders.USAlliance:\r\n this.ShowLoanstarFinanceApproval(null, null);\r\n break;\r\n case Lenders.SDFCU:\r\n this.ShowLoanstarFinanceApproval(null, null);\r\n break;\r\n case Lenders.AmeriCU:\r\n this.ShowLoanstarFinanceApproval(null, null);\r\n break;\r\n }\r\n }\r\n\r\n if (applicationStatus.toLocaleLowerCase() === \"nolender\" && (this.roleID == 16 || this.roleID == 17) == false) {\r\n if (lenderResponse.Properties['MerchantReturnUrl'] != null || lenderResponse.Properties['MerchantReturnUrl'] != undefined) {\r\n this.sessionService.clear();\r\n window.open(lenderResponse.Properties['MerchantReturnUrl'].toString(), \"_self\");\r\n }\r\n }\r\n }\r\n }\r\n if (!this.isExistingUserApplication && !this.isExistingApplication) {\r\n this.translocoService.setActiveLanguage(this.preferredLanguageID);\r\n this.translocoService.resetLoginLanguage();\r\n this.login();\r\n }\r\n else {\r\n this.translocoService.setActiveLanguage(this.preferredLanguageID);\r\n this.translocoService.resetLoginLanguage();\r\n if (this.roleID == 16 || this.roleID == 17) {\r\n this.router.navigate(['callcenterdashboard'])\r\n }\r\n else {\r\n this.router.navigate(['existingapplications']);\r\n }\r\n }\r\n }\r\n else {\r\n this.translocoService.setActiveLanguage(this.preferredLanguageID);\r\n this.translocoService.resetLoginLanguage();\r\n if (this.roleID == 16 || this.roleID == 17) {\r\n this.router.navigate(['callcenterdashboard'])\r\n }\r\n else {\r\n this.router.navigate(['existingapplications']);\r\n }\r\n }\r\n }), (error => {\r\n if (!this.isExistingUserApplication && !this.isExistingApplication) {\r\n this.login();\r\n }\r\n else {\r\n this.translocoService.setActiveLanguage(this.preferredLanguageID);\r\n this.translocoService.resetLoginLanguage();\r\n if (this.roleID == 16 || this.roleID == 17) {\r\n this.router.navigate(['callcenterdashboard'])\r\n }\r\n else {\r\n this.router.navigate(['existingapplications']);\r\n }\r\n }\r\n console.log(error);\r\n }));\r\n //this.router.navigate(['existingapplications']);\r\n }\r\n else {\r\n if (this.currentStatuses.ApplicationStatusID === ApplicationStatus.NoLender && (this.roleID == 16 || this.roleID == 17) == false) {\r\n\r\n this.applicantService.getMerchantReturnUrlDetails()\r\n .subscribe(data => {\r\n if (data.Result != null && data.Result.EnableReturnURL != null && data.Result.EnableReturnURL != undefined && data.Result.EnableReturnURL == true) {\r\n this.sessionService.clear();\r\n window.open(data.Result.ReturnURL, \"_self\");\r\n }\r\n else {\r\n this.applicantService.navigateToDashboardOnApplicationDicision();\r\n }\r\n });\r\n }\r\n else {\r\n this.applicantService.navigateToDashboardOnApplicationDicision();\r\n }\r\n }\r\n }),\r\n (error => {\r\n console.log(error);\r\n }));\r\n }\r\n\r\n checkScreenSize() {\r\n this.isMobileDevice = window.innerWidth <= 600;\r\n }\r\n\r\n //#regin *****Auto Login ********\r\n login() {\r\n this.authService.completeAuth()\r\n .subscribe((data) => {\r\n if (data.IsSuccess) {\r\n this.formData.IsLoggedIn = JSON.parse(sessionStorage.getItem(\"Authenticate\") || 'false') as boolean;\r\n this.formDataService.setFormData(this.formData);\r\n this.sharedService.getLoggedInInfo.emit(true);\r\n // this.router.navigate(['existingapplications']);\r\n if (this.roleID == 16 || this.roleID == 17) {\r\n this.router.navigate(['callcenterdashboard'])\r\n }\r\n else {\r\n this.router.navigate(['existingapplications']);\r\n }\r\n }\r\n else {\r\n console.log('Invalid username or password');\r\n }\r\n },\r\n error => {\r\n //this.router.navigate([this.nextPageRoute])\r\n console.log(error);\r\n });\r\n }\r\n //#endregin *****Auto Login ********\r\n\r\n ShowFlexShopperApproval(approveAmount: string, showInstantApprovalMessage: string) {\r\n this.isProcessing = false;\r\n let modalOption: NgbModalOptions = {\r\n size: (this.isMobileDevice) ? 'sm' : 'lg',\r\n backdrop: 'static',\r\n keyboard: true,\r\n centered: true\r\n };\r\n\r\n let modalConfigurableComponent = new ModalConfigurationComponent();\r\n modalConfigurableComponent.modalData = [this.formData.Applications.ApplicationID.toString(), approveAmount, showInstantApprovalMessage];\r\n const modalRef = this.modalService.open(FlexShopperApprovalDisplayComponent, modalOption);\r\n modalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) {\r\n this.isProcessing = false;\r\n }\r\n },//Dismiss Modal Event\r\n () => { //Do Something\r\n }\r\n );\r\n }\r\n ShowCommunityFinanceApproval(approveAmount: string, showInstantApprovalMessage: string) {\r\n this.isProcessing = false;\r\n let modalOption: NgbModalOptions = {\r\n size: (this.isMobileDevice) ? 'sm' : 'lg',\r\n backdrop: 'static',\r\n keyboard: true,\r\n centered: true\r\n };\r\n\r\n let modalConfigurableComponent = new ModalConfigurationComponent();\r\n modalConfigurableComponent.modalData = [this.formData.Applications.ApplicationID.toString(), approveAmount, showInstantApprovalMessage, this.formData.Applications.SelectedLanguageID];\r\n const modalRef = this.modalService.open(CFApprovalDisplayComponent, modalOption);\r\n modalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) {\r\n this.isProcessing = false;\r\n }\r\n },//Dismiss Modal Event\r\n () => { //Do Something\r\n }\r\n );\r\n }\r\n\r\n ShowUownApproval(approveAmount: string, showInstantApprovalMessage: string) {\r\n this.isProcessing = false;\r\n let modalOption: NgbModalOptions = {\r\n size: (this.isMobileDevice) ? 'sm' : 'lg',\r\n backdrop: 'static',\r\n keyboard: true,\r\n centered: true\r\n };\r\n\r\n let modalConfigurableComponent = new ModalConfigurationComponent();\r\n modalConfigurableComponent.modalData = [this.formData.Applications.ApplicationID.toString(), approveAmount, showInstantApprovalMessage];\r\n const modalRef = this.modalService.open(UownApprovalDisplayComponent, modalOption);\r\n modalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) {\r\n this.isProcessing = false;\r\n }\r\n },//Dismiss Modal Event\r\n () => { //Do Something\r\n }\r\n );\r\n }\r\n\r\n ShowLoanstarFinanceApproval(approveAmount: string, showInstantApprovalMessage: string) {\r\n this.isProcessing = false;\r\n let modalOption: NgbModalOptions = {\r\n size: (this.isMobileDevice) ? 'sm' : 'lg',\r\n backdrop: 'static',\r\n keyboard: true,\r\n centered: true\r\n };\r\n\r\n let modalConfigurableComponent = new ModalConfigurationComponent();\r\n modalConfigurableComponent.modalData = [this.formData.Applications.ApplicationID.toString(), approveAmount, showInstantApprovalMessage];\r\n const modalRef = this.modalService.open(LSTInvoiceRequiredDisplayComponent, modalOption);\r\n modalRef.componentInstance.modalConfigurationComponent = modalConfigurableComponent;\r\n modalRef.result.then((data) => {\r\n if (data.IsSuccess) {\r\n this.isProcessing = false;\r\n }\r\n },//Dismiss Modal Event\r\n () => { //Do Something\r\n }\r\n );\r\n }\r\n ngAfterViewInit() {\r\n this.sharedService.eventBroadCastPageSize.emit();\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
0 && selectedLenderId != 45\">\r\n

\r\n {{lenderName}}\r\n

\r\n
\r\n \r\n
\r\n

\r\n {{lenderName}}\r\n

\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{'process-complete.process-complete.applicationDetails.applicationNumberLabel'|transloco}}-{{formData.Applications.ApplicationID}}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{'process-complete.process-complete.contactDetails.contactHeader'|transloco}}
\r\n
\r\n
\r\n
\r\n
(888) 509-1370\r\n
\r\n

info@terracefinance.com
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
0 && selectedLenderId != 45\">\r\n \r\n
\r\n

\r\n {{lenderName}}\r\n

\r\n
\r\n
\r\n \r\n
\r\n

\r\n
\r\n {{lenderName}}\r\n

\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
{{'process-complete.process-complete.applicationDetails.applicationNumberLabel'|transloco}}-{{formData.Applications.ApplicationID}}
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AuthGuard } from '../service/auth.guard';\r\nimport { AddressComponent } from './address/address.component';\r\nimport { EmployedIncomeComponent } from './employed-income/employed-income.component';\r\nimport { ExistingApplicationsComponent } from './existing-applications/existing-applications.component';\r\nimport { HomeApplicantComponent } from './home-applicant/home-applicant.component';\r\nimport { IdentityInformationComponent } from './identity-information/identity-information.component';\r\nimport { LenderSelectionComponent } from './lender-selection/lender-selection.component';\r\nimport { LoanAmountComponent } from './loan-amount/loan-amount.component';\r\nimport { PlaidLinkComponent } from './plaid-link/plaid-link.component';\r\nimport { PreApplicationComponent } from './pre-application/pre-application.component';\r\nimport { ProcessCompleteComponent } from './process-complete/process-complete.component';\r\n\r\nconst routes: Routes = [\r\n { path: 'lenderselection', component: LenderSelectionComponent, canActivate: [AuthGuard] },\r\n { path: 'productselection', component: PreApplicationComponent, canActivate: [AuthGuard] },\r\n { path: 'homeapplication', component: HomeApplicantComponent, canActivate: [AuthGuard] },\r\n { path: 'employment', component: EmployedIncomeComponent, canActivate: [AuthGuard] },\r\n { path: 'address', component: AddressComponent, canActivate: [AuthGuard] },\r\n { path: 'identity', component: IdentityInformationComponent, canActivate: [AuthGuard] },\r\n { path: 'existingapplications', component: ExistingApplicationsComponent, canActivate: [AuthGuard] },\r\n { path: 'loanamount', component: LoanAmountComponent, canActivate: [AuthGuard] },\r\n { path: 'processcomplete', component: ProcessCompleteComponent, canActivate: [AuthGuard] },\r\n { path: \"plaidlink\", component: PlaidLinkComponent, canActivate: [AuthGuard] },\r\n {\r\n path: 'lenderquestion',\r\n loadChildren: () => import('./lender-question/lender-question.module').then(x => x.LenderQuestionModule),\r\n canActivate: [AuthGuard]\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n providers: [AuthGuard]\r\n})\r\nexport class ApplicantRoutingModule { }\r\n","import { CommonModule } from '@angular/common';\r\n// import { HttpClientModule } from '@angular/common/http';\r\n// TO DO: HttpClientModule module automatically got replaced by provideHttpClient and withInterceptorsFromDi functions during Angular migration. Please validate the corresponding functionalities thoroughly.\r\nimport { HttpClientModule, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { LazyLoadImageModule } from 'ng-lazyload-image';\r\nimport { UcfsIncomeInfoComponent } from '../applicant/lender-question/lender-question-ucfs/ucfs-income-info/ucfs-income-info.component';\r\nimport { PrimeModule } from '../common/module/prime.module';\r\nimport { FilterIsActivePipe } from '../common/pipes/filter-is-active.pipe';\r\nimport { DirectiveModule } from '../directive/directive.module';\r\nimport { AddressComponent } from './address/address.component';\r\nimport { ApplicantRoutingModule } from './applicant-routing.module';\r\nimport { CancelApplicationComponent } from './cancel-application/cancel-application.component';\r\nimport { EmployedIncomeComponent } from './employed-income/employed-income.component';\r\nimport { ExistingApplicationsComponent } from './existing-applications/existing-applications.component';\r\nimport { HomeApplicantComponent } from './home-applicant/home-applicant.component';\r\nimport { IdentityInformationComponent } from './identity-information/identity-information.component';\r\nimport { LenderSelectionComponent } from './lender-selection/lender-selection.component';\r\nimport { LoanAmountComponent } from './loan-amount/loan-amount.component';\r\nimport { PlaidAlertComponent } from './plaid-alert/plaid-alert.component';\r\nimport { PlaidLinkComponent } from './plaid-link/plaid-link.component';\r\nimport { PreApplicationComponent } from './pre-application/pre-application.component';\r\nimport { ProcessCompleteComponent } from './process-complete/process-complete.component';\r\nimport { SocureDocumentAlertComponent } from './socure-document-alert/socure-document-alert.component';\r\nimport { UploadedDocsComponent } from './uploaded-docs/uploaded-docs.component';\r\nimport { ApplicantSharedModule } from './applicant-shared.module';\r\nimport { TranslocoRootModule } from '../transloco-root.module';\r\nimport { TranslocoModule, TranslocoService } from '@jsverse/transloco';\r\nimport { OpenApplicationAlertComponent } from './home-applicant/open-application-alert/open-application-alert.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n LenderSelectionComponent,\r\n PreApplicationComponent,\r\n EmployedIncomeComponent,\r\n AddressComponent,\r\n ExistingApplicationsComponent,\r\n IdentityInformationComponent,\r\n HomeApplicantComponent,\r\n LoanAmountComponent,\r\n ProcessCompleteComponent,\r\n CancelApplicationComponent,\r\n PlaidAlertComponent,\r\n PlaidLinkComponent,\r\n UploadedDocsComponent,\r\n FilterIsActivePipe,\r\n UcfsIncomeInfoComponent,\r\n SocureDocumentAlertComponent,\r\n OpenApplicationAlertComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n ApplicantRoutingModule,\r\n PrimeModule,\r\n FormsModule,\r\n LazyLoadImageModule,\r\n HttpClientModule,\r\n DirectiveModule,\r\n ApplicantSharedModule,\r\n TranslocoRootModule,\r\n ],\r\n providers: [provideHttpClient(withInterceptorsFromDi()),TranslocoService]\r\n})\r\nexport class ApplicantModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ModalConfigurationComponent } from '../../../entity/modalConfigurationComponent';\r\nimport { provideTranslocoScope } from '@jsverse/transloco';\r\n\r\n@Component({\r\n selector: 'app-lst-approval-display',\r\n templateUrl: './lst-approval-display.component.html',\r\n styleUrls: ['./lst-approval-display.component.scss'],\r\n providers: [provideTranslocoScope({scope:'approval-display/lst-approval-display',alias:'lstApprovalDisplay'})]\r\n})\r\nexport class LSTApprovalDisplayComponent implements OnInit {\r\n @Input() modalConfigurationComponent: ModalConfigurationComponent;\r\n public applicationId: number;\r\n public approveAmount: number;\r\n\r\n constructor(public activeModal: NgbActiveModal, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n if (this.modalConfigurationComponent == null) {\r\n return;\r\n }\r\n this.applicationId = (this.modalConfigurationComponent.modalData[0] != null) ? Number(this.modalConfigurationComponent.modalData[0]) : null;\r\n // this.approveAmount = (this.modalConfigurationComponent.modalData[1] != null) ? Number(this.modalConfigurationComponent.modalData[1]) : 0;\r\n }\r\n\r\n close() {\r\n this.activeModal.dismiss();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{'lstApprovalDisplay.displayPage.lstApprovalLabel'|transloco}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Directive, ElementRef } from '@angular/core';\r\nimport { CustomTranslocoService } from '../service/transloco.service';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[alphanumericValidation]',\r\n providers: [{ provide: NG_VALIDATORS, useExisting: AlphanumericWithLanguageDirective, multi: true }]\r\n})\r\nexport class AlphanumericWithLanguageDirective implements Validator {\r\n\r\n constructor(private el: ElementRef, private validationService: CustomTranslocoService) { }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n if (!control.value) {\r\n return null; // Handle empty value case as needed\r\n }\r\n\r\n const validInput = this.validationService.validateInputMaskWithAlphaNumric(control.value);\r\n if (validInput !== control.value) {\r\n control.setValue(validInput); // Set the valid part of the input\r\n }\r\n return null;\r\n }\r\n}\r\n","import { Injectable, Renderer2, RendererFactory2 } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ThemeService {\r\n private renderer: Renderer2;\r\n private currentThemeLink: HTMLLinkElement | null = null;\r\n\r\n constructor(private rendererFactory: RendererFactory2, private router: Router) {\r\n this.renderer = this.rendererFactory.createRenderer(null, null);\r\n\r\n // Listen to navigation changes and update the theme accordingly\r\n this.router.events\r\n .pipe(filter(event => event instanceof NavigationEnd))\r\n .subscribe((event) => {\r\n this.updateTheme((event as NavigationEnd).urlAfterRedirects);\r\n });\r\n }\r\n\r\n public updateTheme(url: string): void {\r\n // Remove the current theme if one is applied\r\n if (this.currentThemeLink) {\r\n this.renderer.removeChild(document.head, this.currentThemeLink);\r\n }\r\n\r\n // Determine the new theme based on the URL and apply it\r\n const themePath = this.getThemePath(url);\r\n if (themePath) {\r\n // Add cache-busting parameter to ensure browser fetches latest CSS\r\n const cacheBustedPath = themePath;\r\n this.currentThemeLink = this.renderer.createElement('link');\r\n this.currentThemeLink.rel = 'stylesheet';\r\n this.currentThemeLink.href = cacheBustedPath;\r\n this.renderer.appendChild(document.head, this.currentThemeLink);\r\n } else {\r\n console.warn('No theme found for the given URL.');\r\n }\r\n }\r\n\r\n private getThemePath(url: string): string | null {\r\n // Map the URL to the correct theme CSS file\r\n if (url.includes('simplifiedui')) {\r\n return '/assets/styles/simplifiedui.css';\r\n }\r\n // Fallback to a default theme\r\n return '/assets/styles/onlineapplication.css';\r\n }\r\n}\r\n","import { LayoutModule } from '@angular/cdk/layout';\r\nimport { CommonModule } from '@angular/common';\r\n// import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\n// TO DO: HttpClientModule module automatically got replaced by provideHttpClient and withInterceptorsFromDi functions during Angular migration. Please validate the corresponding functionalities thoroughly.\r\nimport { HTTP_INTERCEPTORS, HttpClientModule, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { APP_INITIALIZER, CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgOtpInputModule } from 'ng-otp-input';\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { MessageService } from 'primeng/api';\r\nimport { CardModule } from 'primeng/card';\r\nimport { CarouselModule } from 'primeng/carousel';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { RegisterComponent } from 'src/app/register/register/register.component';\r\nimport { ConfirmationBoxComponent } from 'src/app/shared/components/confirmation-box/confirmation-box.component';\r\nimport { ConfirmationBoxService } from 'src/app/shared/components/confirmation-box/confirmation-box.service';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { CFApprovalDisplayComponent } from './applicant/approval-display/cf-approval-display/cf-approval-display.component';\r\nimport { FlexShopperApprovalDisplayComponent } from './applicant/approval-display/flex-shopper-approval-display/flex-shopper-approval-display.component';\r\nimport { FlexShopperSigningRoomComponent } from './applicant/signing-room/lender-fs/flex-shopper-signing-room/flex-shopper-signing-room.component';\r\nimport { FlexShopperVCardComponent } from './applicant/approval-display/flex-shopper-vcard/flex-shopper-vcard.component';\r\nimport { UownApprovalDisplayComponent } from './applicant/approval-display/uown-approval-display/uown-approval-display.component';\r\nimport { ProgressBarComponent } from './applicant/progress-bar/progress-bar.component';\r\nimport { SigningRoomCfBankDetailComponent } from './applicant/signing-room/lender-cf/cf-bank/cf-bank-detail.component';\r\nimport { SingingRoomCfESignatureComponent } from './applicant/signing-room/lender-cf/cf-e-signature/cf-e-signature.component';\r\nimport { SingingRoomCfOfferSelectionComponent } from './applicant/signing-room/lender-cf/cf-offer-selection/cf-offer-selection.component';\r\nimport { SingingRoomCfOfferStatusComponent } from './applicant/signing-room/lender-cf/cf-offer-status/cf-offer-status.component';\r\nimport { UownOfferSelectionComponent } from './applicant/signing-room/lender-uown/uown-offer-selection/uown-offer-selection.component';\r\nimport { UownSigningStatusComponent } from './applicant/signing-room/lender-uown/uown-signing-status/uown-signing-status.component';\r\nimport { AmexVirtualCardComponent } from './applicant/virtual-card/amex-virtual-card/amex-virtual-card.component';\r\nimport { FileUploadStipulationComponent } from './common/component/fileUpload-stipulation/fileUpload-stipulation.component';\r\nimport { PrimeModule } from './common/module/prime.module';\r\nimport { SafePipe } from './common/pipes/safe.pipe';\r\nimport { MaskDirective } from './directive/alphabetswithDashDirective';\r\nimport { DirectiveModule } from './directive/directive.module';\r\nimport {DebounceClickDirective} from './directive/debounce-click.directive';\r\nimport { EqualValidator } from './directive/password.match.directive';\r\nimport { NgxPasswordToggleDirective } from './directive/password.toggle.directive';\r\nimport { PasswordStrengthBar } from './directive/passwordStrengthBar';\r\nimport { DisclosuresAndConsentsComponent } from './disclosures-and-consents/disclosures-and-consents/disclosures-and-consents.component';\r\nimport { HomeComponent } from './home-component/home.component';\r\nimport { HomeModule } from './home-component/home/home.module';\r\nimport { HowItWorksComponent } from './how-it-works/how-it-works.component';\r\nimport { FooterComponent } from './layout/footer/footer-component';\r\nimport { HeaderComponent } from './layout/header/header.component';\r\nimport { MenuWizardComponent } from './layout/menu-wizard/menu-wizard.component';\r\nimport { EmailLoginComponent } from './login/email-login/email-login.component';\r\nimport { LoginComponent } from './login/login.component';\r\nimport { OtpComponent } from './login/otp/otp.component';\r\nimport { RecoverpwdComponent } from './login/recoverpwd/recoverpwd.component';\r\nimport { ResetpwdComponent } from './login/resetpwd/resetpwd.component';\r\nimport { AppConfigService } from './service/appconfig.service';\r\nimport { AuthService } from './service/auth.service';\r\nimport { ErrorHandler } from './service/error-handler';\r\nimport { FacebookDomainVerificationService } from './service/facebook-domain-verification.service';\r\nimport { FacebookPixelsService } from './service/facebook-pixels.service';\r\nimport { GoogleAnalyticsService } from './service/google-analytics.service';\r\nimport { HotjarAnalyticsService } from './service/hotjar-analytics.service';\r\nimport { JwtHandler } from './service/jwt-handler';\r\nimport { MediaLayoutService } from './service/media.layout.service';\r\nimport { ScriptService } from './service/script.service';\r\nimport { UploadStipulationDocumentComponent } from './shared/components/upload-stipulation-document/upload-stipulation-document.component';\r\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\r\nimport { LSTInvoiceRequiredDisplayComponent } from './applicant/approval-display/lst-invoice-required-display/lst-invoice-required-display.component';\r\nimport { ImageModule } from 'primeng/image';\r\nimport { LazyLoadImageModule } from 'ng-lazyload-image';\r\nimport { AffESignatureComponent } from './applicant/signing-room/lender-aff/aff-e-signature/aff-e-signature.component';\r\nimport { CallCenterModule } from './call-center/call-center.module';\r\nimport { CcLenderConsentCfComponent } from './applicant/cc-lender-consent/cc-lender-consent-cf/cc-lender-consent-cf.component';\r\nimport { CcLenderConsentJdTermsAndAuthComponent } from './applicant/cc-lender-consent/cc-lender-consent-jd/cc-lender-consent-jd-terms-and-auth/cc-lender-consent-jd-terms-and-auth.component';\r\nimport { CcLenderConsentJdTermsAndConditionsComponent } from './applicant/cc-lender-consent/cc-lender-consent-jd/cc-lender-consent-jd-terms-and-conditions/cc-lender-consent-jd-terms-and-conditions.component';\r\nimport { CcLenderConsentUcfsTermsAndConditionsComponent } from './applicant/cc-lender-consent/cc-lender-consent-ucfs/cc-lender-consent-ucfs-terms-and-conditions/cc-lender-consent-ucfs-terms-and-conditions.component';\r\nimport { CcLenderConsentDdTermsAndConditionsComponent } from './applicant/cc-lender-consent/cc-lender-consent-dd/cc-lender-consent-dd-terms-and-conditions/cc-lender-consent-dd-terms-and-conditions.component';\r\nimport { CcLenderConsentGwConsentToTextComponent } from './applicant/cc-lender-consent/cc-lender-consent-gw/cc-lender-consent-gw-consent-to-text/cc-lender-consent-gw-consent-to-text.component';\r\nimport { CcLenderConsentGwTermsAndConditionsComponent } from './applicant/cc-lender-consent/cc-lender-consent-gw/cc-lender-consent-gw-terms-and-conditions/cc-lender-consent-gw-terms-and-conditions.component';\r\nimport { CcLenderConsentAffTermsAndConditionsComponent } from './applicant/cc-lender-consent/cc-lender-consent-aff/cc-lender-consent-aff-terms-and-conditions/cc-lender-consent-aff-terms-and-conditions.component';\r\nimport { CcLenderConsentAffArbitrationComponent } from './applicant/cc-lender-consent/cc-lender-consent-aff/cc-lender-consent-aff-arbitration/cc-lender-consent-aff-arbitration.component';\r\nimport { CcLenderConsentAffReceiveCallsComponent } from './applicant/cc-lender-consent/cc-lender-consent-aff/cc-lender-consent-aff-receive-calls/cc-lender-consent-aff-receive-calls.component';\r\nimport { AffOfferStatusComponent } from './applicant/signing-room/lender-aff/aff-offer-status/aff-offer-status.component';\r\nimport { DividerModule } from \"primeng/divider\";\r\nimport { AFFPrivacyPolicyConsentComponent } from './disclosures-and-consents/aff-privacy-policy-consent/aff-privacy-policy-consent.component';\r\nimport { ReturnURLRedirectComponent } from './applicant/return-URL-redirect/return-url-redirect.component';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { MultiLanguageComponent } from 'src/app/shared/components/multi-language/multi-language.component';\r\nimport { ApplicantModule } from './applicant/applicant.module';\r\nimport { TranslocoRootModule } from './transloco-root.module';\r\nimport { AlphabetsWithLanguageDirective } from './directive/alphabets-with-language.directive';\r\nimport { RouteApplicationConsentComponent } from './disclosures-and-consents/route-application-consent/route-application-consent.component';\r\nimport { AccountCreationConsentComponent } from './disclosures-and-consents/account-creation-consent/account-creation-consent.component';\r\nimport { SendOffersConsentComponent } from './disclosures-and-consents/send-offers-consent/send-offers-consent.component';\r\nimport { CreditScoreConsentComponent } from './disclosures-and-consents/credit-score-consent/credit-score-consent.component';\r\nimport { TermsOfServiceComponent } from './disclosures-and-consents/terms-of-service/terms-of-service.component';\r\nimport { LSTApprovalDisplayComponent } from './applicant/approval-display/lst-approval-display/lst-approval-display.component';\r\nimport { PrivacyPolicyComponent } from './disclosures-and-consents/privacy-policy/privacy-policy.component';\r\nimport { CfConsentComponent } from './disclosures-and-consents/cf-consent/cf-consent.component';\r\nimport { AlphanumericWithLanguageDirective } from './directive/alphanumeric-with-language.directive';\r\nimport { CustomTranslocoService } from './service/transloco.service';\r\nimport { DetectMerchantRoutingService } from './service/detect-merchant-routing.service';\r\nimport { ThemeService } from './service/theme.service';\r\n\r\nexport const configFactory = (configService: AppConfigService) => {\r\n return () => configService.loadConfig();\r\n};\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n HomeComponent,\r\n DisclosuresAndConsentsComponent,\r\n RouteApplicationConsentComponent,\r\n CfConsentComponent,\r\n AccountCreationConsentComponent,\r\n CreditScoreConsentComponent,\r\n SendOffersConsentComponent,\r\n TermsOfServiceComponent,\r\n PrivacyPolicyComponent,\r\n LoginComponent,\r\n RegisterComponent,\r\n OtpComponent,\r\n HeaderComponent,\r\n LoginComponent,\r\n FooterComponent,\r\n MenuWizardComponent,\r\n ProgressBarComponent,\r\n HowItWorksComponent,\r\n ConfirmationBoxComponent,\r\n NgxPasswordToggleDirective,\r\n RecoverpwdComponent,\r\n ResetpwdComponent,\r\n PasswordStrengthBar,\r\n EqualValidator,\r\n MaskDirective,\r\n UploadStipulationDocumentComponent,\r\n FileUploadStipulationComponent,\r\n FlexShopperApprovalDisplayComponent,\r\n LSTApprovalDisplayComponent,\r\n FlexShopperSigningRoomComponent,\r\n FlexShopperVCardComponent,\r\n SafePipe,\r\n EmailLoginComponent,\r\n CFApprovalDisplayComponent,\r\n SingingRoomCfOfferSelectionComponent,\r\n SigningRoomCfBankDetailComponent,\r\n SingingRoomCfESignatureComponent,\r\n SingingRoomCfOfferStatusComponent,\r\n UownApprovalDisplayComponent,\r\n UownOfferSelectionComponent,\r\n UownSigningStatusComponent,\r\n AmexVirtualCardComponent,\r\n LSTInvoiceRequiredDisplayComponent,\r\n AffESignatureComponent,\r\n CcLenderConsentCfComponent,\r\n CcLenderConsentJdTermsAndAuthComponent,\r\n CcLenderConsentJdTermsAndConditionsComponent,\r\n CcLenderConsentUcfsTermsAndConditionsComponent,\r\n CcLenderConsentDdTermsAndConditionsComponent,\r\n CcLenderConsentGwConsentToTextComponent,\r\n CcLenderConsentGwTermsAndConditionsComponent,\r\n CcLenderConsentAffTermsAndConditionsComponent,\r\n CcLenderConsentAffArbitrationComponent,\r\n CcLenderConsentAffReceiveCallsComponent,\r\n AffOfferStatusComponent,\r\n AFFPrivacyPolicyConsentComponent,\r\n ReturnURLRedirectComponent,\r\n MultiLanguageComponent,\r\n AlphabetsWithLanguageDirective,\r\n AlphanumericWithLanguageDirective,\r\n DebounceClickDirective\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n LayoutModule,\r\n PrimeModule,\r\n BrowserAnimationsModule,\r\n HttpClientModule,\r\n NgOtpInputModule,\r\n HomeModule,\r\n TabViewModule,\r\n ApplicantModule,\r\n DirectiveModule,\r\n CarouselModule, ToastrModule.forRoot(),\r\n NgxSpinnerModule,\r\n FileUploadModule,\r\n FormsModule,\r\n RadioButtonModule,\r\n CardModule,\r\n CommonModule,\r\n ProgressSpinnerModule,\r\n ImageModule,\r\n LazyLoadImageModule,\r\n CallCenterModule,\r\n DividerModule,\r\n DropdownModule,\r\n TranslocoRootModule,\r\n ],\r\n exports: [\r\n ConfirmationBoxComponent,\r\n PasswordStrengthBar,\r\n MaskDirective,\r\n UploadStipulationDocumentComponent,\r\n FileUploadStipulationComponent,\r\n FlexShopperApprovalDisplayComponent,\r\n FlexShopperSigningRoomComponent,\r\n FlexShopperVCardComponent,\r\n CFApprovalDisplayComponent,\r\n SingingRoomCfOfferSelectionComponent,\r\n SigningRoomCfBankDetailComponent,\r\n SingingRoomCfESignatureComponent,\r\n SingingRoomCfOfferStatusComponent,\r\n UownApprovalDisplayComponent,\r\n UownOfferSelectionComponent,\r\n UownSigningStatusComponent,\r\n AmexVirtualCardComponent,\r\n LSTInvoiceRequiredDisplayComponent\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n providers: [\r\n MediaLayoutService,\r\n AuthService,\r\n MessageService,\r\n ConfirmationBoxService,\r\n ScriptService,\r\n NgbActiveModal,\r\n CustomTranslocoService,\r\n DetectMerchantRoutingService,\r\n { provide: HTTP_INTERCEPTORS, useClass: JwtHandler, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: ErrorHandler, multi: true },\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: configFactory,\r\n deps: [AppConfigService,ThemeService],\r\n multi: true\r\n },\r\n provideHttpClient(withInterceptorsFromDi())\r\n ],\r\n // entryComponents: [ConfirmationBoxComponent],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n constructor(\r\n facebookPixelsService: FacebookPixelsService,\r\n facebookDomainVerificationService: FacebookDomainVerificationService,\r\n googleAnalyticsService: GoogleAnalyticsService,\r\n hotjarAnalyticsService: HotjarAnalyticsService\r\n ) { }\r\n}\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"mappings":"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","names":["map","LINE_START","transition","style","styleMetadata","ast","element","value","trigger","player","index","state","i","map","style","trigger","delegate","fn","data","document","_c0","_c1","_c0","_c1","_c1","_c0","document","StipulationStatusesEnum","_c0","_c0","ApplicationModal","ECommerceEmailNotificationType","ApplicationModal","uownOfferSelectionModal","data","modalConfigurableComponent","SessionService","_c0","data","_c0","_c1","_c2","_c0","_c2","_c1","_c0","_c1","_c0","data","SharedService","data","_c0","data","_c0","state","SessionService","MerchantService","SharedService","ProgressBarSteps","_c0","result","_c0","_c1","_c2","vm","confirmBox","routes","httpOptions","errormessage","document","document","document","document","routes","_c0","_c0","EmploymentType","_c0","_c1","moment","data","response","import_moment","SignalREventType","state","moment","AffTermsType","JohnDeereTermsType","GWTermsType","httpOptions","vm","data","_c0","applicationStatusPostMessage","data","routes"],"x_google_ignoreList":[0,1,2,3,4,126]}