{"version":3,"file":"js/app-513b39e7ff353e81faa9.js","mappings":"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","sources":["webpack://mba-web-client/./src/app/components/advisor/nested_views/advisors_recommend_carousel/classes.module.scss?7545","webpack://mba-web-client/./src/app/components/advisor_avatar/classes.module.scss?e210","webpack://mba-web-client/./src/app/components/advisor_profile_avatar/top_icons/classes.module.scss?0141","webpack://mba-web-client/./src/app/components/created_chat/classes.module.scss?96eb","webpack://mba-web-client/./src/app/components/header/classes.module.scss?24f8","webpack://mba-web-client/./src/app/components/home_page/nested_views/advisor_preview/classes.module.scss?8b26","webpack://mba-web-client/./src/app/components/home_page/nested_views/advisors_section/classes.module.scss?d2d0","webpack://mba-web-client/./src/app/components/rate_review/classes.module.scss?d2f7","webpack://mba-web-client/./src/app/components/settings/classes.module.scss?ca83","webpack://mba-web-client/./src/app/components/shared/classes.module.scss?3749","webpack://mba-web-client/./src/app/project_items/chat_bubble/classes.module.scss?4020","webpack://mba-web-client/./src/app/project_items/coupon_items/coupon_bubble/classes.module.scss?8d2b","webpack://mba-web-client/./src/app/project_items/coupon_items/coupon_label/classes.module.scss?88ad","webpack://mba-web-client/./src/app/project_items/my_orders_order_cell/classes.module.scss?5629","webpack://mba-web-client/./src/app/shared.js","webpack://mba-web-client/./src/app/main.module.scss?dd6e","webpack://mba-web-client/./src/app/components/routes/localized_navigate.js","webpack://mba-web-client/./src/app/components/routes/localized_switch.js","webpack://mba-web-client/./src/app/components/routes/hooks/useSEOData.js","webpack://mba-web-client/./src/app/components/routes/hooks/useNavigationStackUpdate.js","webpack://mba-web-client/./src/app/components/routes/hooks/useSmartBannerVisibility.js","webpack://mba-web-client/./src/app/components/routes/localized_router.js","webpack://mba-web-client/./src/app/components/routes/hooks/usePathValidation.js","webpack://mba-web-client/./src/app/components/popover/classes.module.scss?b582","webpack://mba-web-client/./src/app/components/popover/popover.js","webpack://mba-web-client/./src/app/components/popover/index.js","webpack://mba-web-client/./src/app/components/registration/classes.module.scss?6ff9","webpack://mba-web-client/./src/app/components/registration/inner_components/google_btn.js","webpack://mba-web-client/./src/app/components/analytics/common_logic_component.js","webpack://mba-web-client/./src/app/components/analytics/index.js","webpack://mba-web-client/./src/app/components/general_popup/classes.module.scss?3cd6","webpack://mba-web-client/./src/app/components/general_popup/general_popup.js","webpack://mba-web-client/./src/app/components/general_popup/index.js","webpack://mba-web-client/./src/common/cookies_popover/index.js","webpack://mba-web-client/./src/app/components/promo_code_sign_up/classes.module.scss?a88d","webpack://mba-web-client/./src/app/components/promo_code_sign_up/promo_code_sign_up.js","webpack://mba-web-client/./src/app/components/promo_code_sign_up/index.js","webpack://mba-web-client/./src/app/components/registration/inner_components/facebook_btn.js","webpack://mba-web-client/./src/app/components/registration/inner_components/social.js","webpack://mba-web-client/./src/app/components/registration/inner_components/input.js","webpack://mba-web-client/./src/app/components/forgot_password/classes.module.scss?b03e","webpack://mba-web-client/./src/app/components/forgot_password/forgot_password.js","webpack://mba-web-client/./src/app/components/forgot_password/index.js","webpack://mba-web-client/./src/app/actions/forgot_password.js","webpack://mba-web-client/./src/app/components/registration/inner_components/log_in.js","webpack://mba-web-client/./src/app/components/registration/inner_components/sign_up.js","webpack://mba-web-client/./src/app/components/registration/registration.js","webpack://mba-web-client/./src/app/components/registration/index.js","webpack://mba-web-client/./src/app/components/routes/hoc/with_current_path.js","webpack://mba-web-client/./src/app/components/routes/hoc/with_router.js","webpack://mba-web-client/./src/app/components/notify_me/classes.module.scss?abf0","webpack://mba-web-client/./src/app/components/notify_me/notify_me.js","webpack://mba-web-client/./src/app/components/notify_me/index.js","webpack://mba-web-client/./src/app/components/message_to_app/message_to_app.js","webpack://mba-web-client/./src/app/components/message_to_app/index.js","webpack://mba-web-client/./src/app/components/routes/protected_route.js","webpack://mba-web-client/./src/app/components/not_found/classes.module.scss?62b3","webpack://mba-web-client/./src/app/components/not_found/not_found.js","webpack://mba-web-client/./src/app/components/not_found/index.js","webpack://mba-web-client/./src/app/components/push_notifcation/classes.module.scss?0298","webpack://mba-web-client/./src/app/components/push_notifcation/push_notification.js","webpack://mba-web-client/./src/app/components/push_notifcation/index.js","webpack://mba-web-client/./src/app/components/general_error/general_error.js","webpack://mba-web-client/./src/app/components/general_error/index.js","webpack://mba-web-client/./src/app/components/shared/smart_banner/smart_banner.js","webpack://mba-web-client/./src/app/components/shared/smart_banner/index.js","webpack://mba-web-client/./src/app/components/auto_redeme_promo_code/classes.module.scss?8791","webpack://mba-web-client/./src/app/components/auto_redeme_promo_code/auto_redeme_promo_code.js","webpack://mba-web-client/./src/app/components/auto_redeme_promo_code/index.js","webpack://mba-web-client/./src/app/components/routes/overlays/overlays.js","webpack://mba-web-client/./src/app/components/chat_overlay/select_chat_credit/classes.module.scss?5c04","webpack://mba-web-client/./src/app/components/chat_overlay/select_chat_credit/continue_call/classes.module.scss?a24b","webpack://mba-web-client/./src/app/components/chat_overlay/select_chat_credit/continue_call/continue.js","webpack://mba-web-client/./src/app/components/chat_overlay/select_chat_credit/continue_call/index.js","webpack://mba-web-client/./src/app/components/chat_overlay/select_chat_credit/start_call/classes.module.scss?99ff","webpack://mba-web-client/./src/app/components/chat_overlay/select_chat_credit/start_call/start_call.js","webpack://mba-web-client/./src/app/components/chat_overlay/select_chat_credit/start_call/index.js","webpack://mba-web-client/./src/app/components/chat_overlay/select_chat_credit/duration_selector/classes.module.scss?7328","webpack://mba-web-client/./src/app/components/chat_overlay/select_chat_credit/duration_selector/duration_selector_utils.js","webpack://mba-web-client/./src/app/components/chat_overlay/select_chat_credit/duration_selector/duration_item.js","webpack://mba-web-client/./src/app/components/chat_overlay/select_chat_credit/duration_selector/duration_selector.js","webpack://mba-web-client/./src/app/components/chat_overlay/select_chat_credit/duration_selector/img/left_arrow.js","webpack://mba-web-client/./src/app/components/chat_overlay/select_chat_credit/duration_selector/img/right_arrow.js","webpack://mba-web-client/./src/app/components/chat_overlay/select_chat_credit/select_chat_credit_utils.js","webpack://mba-web-client/./src/app/components/chat_overlay/select_chat_credit/select_chat_credit.js","webpack://mba-web-client/./src/app/components/chat_overlay/select_chat_credit/index.js","webpack://mba-web-client/./src/app/components/chat_overlay/not_in_live_mode/classes.module.scss?cd89","webpack://mba-web-client/./src/app/components/chat_overlay/not_in_live_mode/not_in_live_mode.js","webpack://mba-web-client/./src/app/components/chat_overlay/not_in_live_mode/index.js","webpack://mba-web-client/./src/app/components/chat_overlay/error/classes.module.scss?12e8","webpack://mba-web-client/./src/app/components/chat_overlay/error/error.js","webpack://mba-web-client/./src/app/components/chat_overlay/error/index.js","webpack://mba-web-client/./src/app/components/chat_overlay/cant_create/cant_create.js","webpack://mba-web-client/./src/app/components/chat_overlay/cant_create/index.js","webpack://mba-web-client/./src/app/components/created_chat/chat_ended/classes.module.scss?7484","webpack://mba-web-client/./src/app/components/created_chat/chat_ended/download_app_popup/classes.module.scss?0742","webpack://mba-web-client/./src/app/components/created_chat/chat_ended/download_app_popup/download_app_popup.js","webpack://mba-web-client/./src/app/components/created_chat/chat_ended/download_app_popup/index.js","webpack://mba-web-client/./src/app/components/rate_review/rate_review_after_chat/rate_review_after_chat.js","webpack://mba-web-client/./src/app/components/rate_review/rate_review_after_chat/index.js","webpack://mba-web-client/./src/app/components/created_chat/chat_ended/chat_ended.js","webpack://mba-web-client/./src/app/components/created_chat/chat_ended/index.js","webpack://mba-web-client/./src/app/components/voip_chat/voip_alert.js","webpack://mba-web-client/./src/app/components/voip_chat/classes.module.scss?eb81","webpack://mba-web-client/./src/app/components/square_animation/classes.module.scss?38d2","webpack://mba-web-client/./src/app/components/square_animation/square_animation.js","webpack://mba-web-client/./src/app/components/chat_overlay/outgoin_call/classes.module.scss?03aa","webpack://mba-web-client/./src/app/components/chat_overlay/outgoin_call/call_animation.js","webpack://mba-web-client/./src/app/components/voip_chat/timer_label.js","webpack://mba-web-client/./src/app/components/voip_chat/voip_utils.js","webpack://mba-web-client/./src/app/components/voip_chat/voip_controls.js","webpack://mba-web-client/./src/app/components/voip_chat/voice_overlay.js","webpack://mba-web-client/./src/app/components/voip_chat/auto_hangup_timer.js","webpack://mba-web-client/./src/app/components/voip_chat/disconnect_session_timer.js","webpack://mba-web-client/./src/app/components/voip_chat/call_duration_timer.js","webpack://mba-web-client/./src/app/components/voip_chat/blink_timer.js","webpack://mba-web-client/./src/app/components/voip_chat/voip_chat.js","webpack://mba-web-client/./src/app/components/voip_chat/index.js","webpack://mba-web-client/./src/app/components/chat_overlay/outgoin_call/outgoing.js","webpack://mba-web-client/./src/app/components/chat_overlay/outgoin_call/index.js","webpack://mba-web-client/./src/app/components/chat_overlay/starting/starting.js","webpack://mba-web-client/./src/app/components/chat_overlay/starting/index.js","webpack://mba-web-client/./src/app/components/voip_chat/advisor_ended/advisor_ended.js","webpack://mba-web-client/./src/app/components/voip_chat/advisor_ended/index.js","webpack://mba-web-client/./src/app/components/created_voip_chat/created_voip_chat.js","webpack://mba-web-client/./src/app/components/created_voip_chat/index.js","webpack://mba-web-client/./src/app/components/chat_overlay/general_error/index.js","webpack://mba-web-client/./src/app/components/intro/classes.module.scss?bc2a","webpack://mba-web-client/./src/app/components/radio_group/classes.module.scss?8def","webpack://mba-web-client/./src/app/components/radio_group/radio_group.js","webpack://mba-web-client/./src/app/components/radio_group/index.js","webpack://mba-web-client/./src/common/date_picker/classes.module.scss?4626","webpack://mba-web-client/./src/common/date_picker/date_picker_utils.js","webpack://mba-web-client/./src/common/date_picker/date_picker.js","webpack://mba-web-client/./src/common/date_picker/index.js","webpack://mba-web-client/./src/app/components/intro/intro_utils.js","webpack://mba-web-client/./src/app/components/intro/intro.js","webpack://mba-web-client/./src/app/components/intro/index.js","webpack://mba-web-client/./src/app/actions/introduce_yourself.js","webpack://mba-web-client/./src/app/components/chat_overlay/no_answer/no_answer.js","webpack://mba-web-client/./src/app/components/chat_overlay/no_answer/index.js","webpack://mba-web-client/./src/app/components/voip_chat_overlay/classes.module.scss?e36e","webpack://mba-web-client/./src/app/components/voip_chat_overlay/voip_chat_overlay.js","webpack://mba-web-client/./src/app/components/voip_chat_overlay/index.js","webpack://mba-web-client/./src/app/components/created_chat/waiting/classes.module.scss?d937","webpack://mba-web-client/./src/app/components/created_chat/waiting/waiting_component.js","webpack://mba-web-client/./src/app/components/created_chat/waiting/index.js","webpack://mba-web-client/./src/app/components/created_chat/created_chat.js","webpack://mba-web-client/./src/app/components/created_chat/index.js","webpack://mba-web-client/./src/app/components/chat_overlay/classes.module.scss?88d4","webpack://mba-web-client/./src/app/components/chat_overlay/chat_overlay.js","webpack://mba-web-client/./src/app/components/chat_overlay/index.js","webpack://mba-web-client/./src/app/components/routes/routes.js","webpack://mba-web-client/./src/app/components/routes/index.js","webpack://mba-web-client/./src/app/index.js","webpack://mba-web-client/./src/app.js","webpack://mba-web-client/./src/app/actions/advisor_orders.js","webpack://mba-web-client/./src/app/actions/advisors.js","webpack://mba-web-client/./src/app/actions/affiliate_promo_popup.js","webpack://mba-web-client/./src/app/actions/analytics.js","webpack://mba-web-client/./src/app/actions/aplication_error.js","webpack://mba-web-client/./src/app/actions/application.js","webpack://mba-web-client/./src/app/actions/auth.js","webpack://mba-web-client/./src/app/actions/aws.js","webpack://mba-web-client/./src/app/actions/b_events.js","webpack://mba-web-client/./src/app/actions/chat.js","webpack://mba-web-client/./src/app/actions/connected_chat.js","webpack://mba-web-client/./src/app/actions/facebook_analytics.js","webpack://mba-web-client/./src/app/actions/favorite_advisors.js","webpack://mba-web-client/./src/app/actions/firebase_messaging.js","webpack://mba-web-client/./src/app/actions/firebase_realtime_database.js","webpack://mba-web-client/./src/app/actions/funds.js","webpack://mba-web-client/./src/app/actions/general_popup.js","webpack://mba-web-client/./src/app/actions/google_tag_mahager_events.js","webpack://mba-web-client/./src/app/actions/home_page.js","webpack://mba-web-client/./src/app/actions/hotjar.js","webpack://mba-web-client/./src/app/actions/mixpanel.js","webpack://mba-web-client/./src/app/actions/my_orders.js","webpack://mba-web-client/./src/app/actions/notify_me.js","webpack://mba-web-client/./src/app/actions/order_details.js","webpack://mba-web-client/./src/app/actions/payment_options.js","webpack://mba-web-client/./src/app/actions/payment_sources.js","webpack://mba-web-client/./src/app/actions/popover.js","webpack://mba-web-client/./src/app/actions/promo_code.js","webpack://mba-web-client/./src/app/actions/purchase_details.js","webpack://mba-web-client/./src/app/actions/search_results.js","webpack://mba-web-client/./src/app/actions/shared_actions.js","webpack://mba-web-client/./src/app/actions/user.js","webpack://mba-web-client/./src/app/actions/voip_chat.js","webpack://mba-web-client/./src/app/components/advisor/img/free_min_icon.js","webpack://mba-web-client/./src/app/components/advisor/nested_views/advisor_header/classes.module.scss?66ab","webpack://mba-web-client/./src/app/components/advisor/nested_views/advisor_cta/style_config.js","webpack://mba-web-client/./src/app/components/advisor/nested_views/advisor_cta/classes.module.scss?3c73","webpack://mba-web-client/./src/app/components/advisor/nested_views/advisor_cta/advisor_cta_utils.js","webpack://mba-web-client/./src/app/components/advisor/nested_views/advisor_cta/advisor_cta_themes.js","webpack://mba-web-client/./src/app/components/advisor/nested_views/advisor_cta/advisor_cta.js","webpack://mba-web-client/./src/app/components/advisor/nested_views/advisor_cta/index.js","webpack://mba-web-client/./src/app/components/advisor_profile_avatar/top_icons/top_icons.js","webpack://mba-web-client/./src/app/components/advisor_profile_avatar/top_icons/index.js","webpack://mba-web-client/./src/app/components/advisor_profile_avatar/classes.module.scss?92e8","webpack://mba-web-client/./src/app/components/advisor_profile_avatar/advisor_profile_avatar.js","webpack://mba-web-client/./src/app/components/advisor_profile_avatar/index.js","webpack://mba-web-client/./src/app/components/advisor/nested_views/classes.module.scss?a023","webpack://mba-web-client/./src/app/components/advisor/nested_views/reviews_items.js","webpack://mba-web-client/./src/app/components/advisor/nested_views/advisor_header/advisor_header.js","webpack://mba-web-client/./src/app/components/advisor/nested_views/advisor_header/index.js","webpack://mba-web-client/./src/app/components/advisor/classes.module.scss?fbbe","webpack://mba-web-client/./src/app/components/advisor/nested_views/advisor_main_content/classes.module.scss?2423","webpack://mba-web-client/./src/app/components/advisor/nested_views/reviews_section/classes.module.scss?157c","webpack://mba-web-client/./src/app/components/advisor/nested_views/reviews_section/reviews_section.js","webpack://mba-web-client/./src/app/components/advisor/nested_views/reviews_section/index.js","webpack://mba-web-client/./src/app/components/advisor/some_other_advisors/classes.module.scss?1bb4","webpack://mba-web-client/./src/app/components/advisor/some_other_advisors/some_other_advisors.js","webpack://mba-web-client/./src/app/components/advisor/some_other_advisors/index.js","webpack://mba-web-client/./src/app/components/advisor/nested_views/advisor_main_content/advisor_specialities.js","webpack://mba-web-client/./src/app/components/advisor/nested_views/advisor_main_content/advisor_main_content.js","webpack://mba-web-client/./src/app/components/advisor/nested_views/advisor_static_container.js","webpack://mba-web-client/./src/app/components/advisor/terminated_advisor/classes.module.scss?96a9","webpack://mba-web-client/./src/app/components/advisor/terminated_advisor/terminated_advisor.js","webpack://mba-web-client/./src/app/components/advisor/terminated_advisor/index.js","webpack://mba-web-client/./src/app/components/advisor/nested_views/advisors_recommend_carousel/index.js","webpack://mba-web-client/./src/app/components/advisor/advisor.js","webpack://mba-web-client/./src/app/components/advisor/index.js","webpack://mba-web-client/./src/app/components/advisor/nested_views/readingSinceAndCountItem/classes.module.scss?9271","webpack://mba-web-client/./src/app/components/advisor/nested_views/readingSinceAndCountItem/readingSinceAndCountItem.js","webpack://mba-web-client/./src/app/components/advisor/nested_views/readingSinceAndCountItem/index.js","webpack://mba-web-client/./src/app/components/advisor_avatar/advisor_avatar.js","webpack://mba-web-client/./src/app/components/advisor_avatar/index.js","webpack://mba-web-client/./src/app/components/advisor_avatar/rating/rating.js","webpack://mba-web-client/./src/app/components/advisor_profile_avatar/top_icons/top_icons_utils.js","webpack://mba-web-client/./src/app/components/advisor_video_player/classes.module.scss?6e28","webpack://mba-web-client/./src/app/components/advisor_video_player/advisor_video_player.js","webpack://mba-web-client/./src/app/components/advisor_video_player/index.js","webpack://mba-web-client/./src/app/components/advisors_list/classes.module.scss?5888","webpack://mba-web-client/./src/app/components/advisors_list/see_more_btn/classes.module.scss?7f24","webpack://mba-web-client/./src/app/components/advisors_list/pagination_pages/classes.module.scss?98d0","webpack://mba-web-client/./src/app/components/advisors_list/pagination_pages/pagination_pages.js","webpack://mba-web-client/./src/app/components/advisors_list/pagination_pages/index.js","webpack://mba-web-client/./src/app/components/advisors_list/see_more_btn/see_more_btn.js","webpack://mba-web-client/./src/app/components/advisors_list/see_more_btn/index.js","webpack://mba-web-client/./src/app/components/advisors_list/advisors_list.js","webpack://mba-web-client/./src/app/components/advisors_list/index.js","webpack://mba-web-client/./src/app/components/affiliate_promo_popup/affiliate_promo_popup.js","webpack://mba-web-client/./src/app/components/affiliate_promo_popup/index.js","webpack://mba-web-client/./src/app/components/change_language/classes.module.scss?cac7","webpack://mba-web-client/./src/app/components/change_language/advisor_not_provide_services_popup.js","webpack://mba-web-client/./src/app/components/change_language/change_language.js","webpack://mba-web-client/./src/app/components/change_language/index.js","webpack://mba-web-client/./src/app/components/purchases/pay_pal_processing/pay_pal_processing.js","webpack://mba-web-client/./src/app/components/purchases/pay_pal_processing/index.js","webpack://mba-web-client/./src/common/threeDSecure/threeDSecure.js","webpack://mba-web-client/./src/common/threeDSecure/index.js","webpack://mba-web-client/./src/common/credit_card_payment/credit_card_payment.js","webpack://mba-web-client/./src/app/components/purchases/credit_card_processing/credit_card_processing.js","webpack://mba-web-client/./src/app/actions/credit_card_processing.js","webpack://mba-web-client/./src/app/components/purchases/credit_card_processing/index.js","webpack://mba-web-client/./src/app/components/chat_overlay/purchase_details/purchase_details.js","webpack://mba-web-client/./src/app/components/chat_overlay/purchase_details/index.js","webpack://mba-web-client/./src/app/components/created_chat/form.js","webpack://mba-web-client/./src/app/components/created_chat/timer/timer_component.js","webpack://mba-web-client/./src/app/components/created_chat/timer/index.js","webpack://mba-web-client/./src/app/components/created_chat/chat_network_state/classes.module.scss?d20e","webpack://mba-web-client/./src/app/components/created_chat/chat_network_state/network_state.js","webpack://mba-web-client/./src/app/components/created_chat/chat_network_state/index.js","webpack://mba-web-client/./src/app/components/created_chat/chat.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/hero_banner/classes.module.scss?c33e","webpack://mba-web-client/./src/app/components/header/search_bar.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/hero_banner/hero_banner_sources.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/hero_banner/hero_banner.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/hero_banner/index.js","webpack://mba-web-client/./src/app/components/home_page/classes.module.scss?a5c0","webpack://mba-web-client/./src/app/components/home_page/nested_views/specialities_section.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/staff_pick_section/classes.module.scss?52d1","webpack://mba-web-client/./src/app/components/home_page/nested_views/staff_pick_section/staff_pick_section.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/staff_pick_section/index.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/personal_section/classes.module.scss?e9ce","webpack://mba-web-client/./src/app/components/home_page/nested_views/personal_section/personal_section.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/personal_section/index.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/button_section/button_section.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/all_advisors_section/all_advisors_section.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/all_advisors_section/index.js","webpack://mba-web-client/./src/app/components/home_page/home_page.js","webpack://mba-web-client/./src/app/components/home_page/index.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/advisor_modes/classes.module.scss?fb18","webpack://mba-web-client/./src/app/components/home_page/nested_views/advisor_modes/advisor_modes.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/advisor_modes/index.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/advisor_preview/use_intersection.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/advisor_preview/advisor_preview_with_analytics.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/advisor_preview/advisor_preview.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/advisor_preview/index.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/advisors_section/advisor_section_title.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/advisors_section/img/left_arrow.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/advisors_section/img/right_arrow.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/advisors_section/advisor_section.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/advisors_section/index.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/price_text/classes.module.scss?fe73","webpack://mba-web-client/./src/app/components/home_page/nested_views/price_text/price_text.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/price_text/index.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/promotion_label/classes.module.scss?4fa4","webpack://mba-web-client/./src/app/components/home_page/nested_views/promotion_label/promotion_label.js","webpack://mba-web-client/./src/app/components/home_page/nested_views/promotion_label/index.js","webpack://mba-web-client/./src/app/components/home_page/prop_types.js","webpack://mba-web-client/./src/app/components/purchases/credit_card_validate_processing/classes.module.scss?bd70","webpack://mba-web-client/./src/app/components/purchases/credit_card_validate_processing/credit_card_validate_processing.js","webpack://mba-web-client/./src/app/actions/credit_card_validate_processing.js","webpack://mba-web-client/./src/app/components/purchases/credit_card_validate_processing/index.js","webpack://mba-web-client/./src/app/components/purchases/purchases_utils.js","webpack://mba-web-client/./src/app/components/rate_review/review_section.js","webpack://mba-web-client/./src/app/components/rate_review/rate_review.js","webpack://mba-web-client/./src/app/components/rate_review/index.js","webpack://mba-web-client/./src/app/components/rate_review/feeback_switcher.js","webpack://mba-web-client/./src/app/components/rate_review/rate_section.js","webpack://mba-web-client/./src/app/components/registration/gdpr_consern_popup/classes.module.scss?2aa2","webpack://mba-web-client/./src/app/components/registration/gdpr_consern_popup/gdpr_consern_popup.js","webpack://mba-web-client/./src/app/components/registration/gdpr_consern_popup/index.js","webpack://mba-web-client/./src/app/components/routes/app_link.js","webpack://mba-web-client/./src/app/components/routes/hooks/useLocalizedNavigate.js","webpack://mba-web-client/./src/app/components/routes/hooks/useLocalizedPath.js","webpack://mba-web-client/./src/app/components/routes/routes_helpers.js","webpack://mba-web-client/./src/app/components/search_results/inner_views/filters/classes.module.scss?a605","webpack://mba-web-client/./src/app/components/search_results/inner_views/filters/filter_dropdown.js","webpack://mba-web-client/./src/app/components/search_results/inner_views/filters/filter_slider/filter_handle.js","webpack://mba-web-client/./src/app/components/search_results/inner_views/filters/filter_slider/slider_track.js","webpack://mba-web-client/./src/app/components/search_results/inner_views/filters/filter_slider/filter_slider.js","webpack://mba-web-client/./src/app/components/search_results/inner_views/filters/filter_switcher.js","webpack://mba-web-client/./src/app/components/search_results/inner_views/filters/filter_utils.js","webpack://mba-web-client/./src/app/components/search_results/inner_views/filters/filters_container.js","webpack://mba-web-client/./src/app/components/search_results/inner_views/filters/index.js","webpack://mba-web-client/./src/app/components/settings/sign_out/index.js","webpack://mba-web-client/./src/app/components/settings/sign_out/sign_out.js","webpack://mba-web-client/./src/app/components/side_menu/classes.module.scss?4c50","webpack://mba-web-client/./src/app/components/side_menu/menu_item.js","webpack://mba-web-client/./src/app/components/badge/classes.module.scss?8adf","webpack://mba-web-client/./src/app/components/badge/badge.js","webpack://mba-web-client/./src/app/components/badge/index.js","webpack://mba-web-client/./src/app/components/header/my_orders_badge/classes.module.scss?7c5e","webpack://mba-web-client/./src/app/components/header/my_orders_badge/index.js","webpack://mba-web-client/./src/app/components/header/message_count_badge/classes.module.scss?94b4","webpack://mba-web-client/./src/app/components/header/message_count_badge/message_count_badge.js","webpack://mba-web-client/./src/app/components/header/message_count_badge/index.js","webpack://mba-web-client/./src/app/components/side_menu/specialities_menu_item/classes.module.scss?f919","webpack://mba-web-client/./src/app/components/side_menu/specialities_menu_item/specialities_menu_item.js","webpack://mba-web-client/./src/app/components/side_menu/specialities_menu_item/index.js","webpack://mba-web-client/./src/app/components/header/component_styles.js","webpack://mba-web-client/./src/app/components/header/header_logo.js","webpack://mba-web-client/./src/app/components/side_menu/side_menu.js","webpack://mba-web-client/./src/app/components/side_menu/index.js","webpack://mba-web-client/./src/app/components/crop/classes.module.scss?a9de","webpack://mba-web-client/./src/app/components/crop/crop_image_util.js","webpack://mba-web-client/./src/common/helpers/custom_sliderder/classes.module.scss?bb5a","webpack://mba-web-client/./src/common/helpers/custom_sliderder/custom_sliderder.js","webpack://mba-web-client/./src/common/helpers/custom_sliderder/index.js","webpack://mba-web-client/./src/app/components/crop/cropper.js","webpack://mba-web-client/./src/app/components/crop/index.js","webpack://mba-web-client/./src/app/components/file_picker/classes.module.scss?7c67","webpack://mba-web-client/./src/app/components/file_picker/file_picker.js","webpack://mba-web-client/./src/app/components/file_picker/index.js","webpack://mba-web-client/./src/app/components/user_avatar_picker/user_avatar_picker.js","webpack://mba-web-client/./src/app/components/user_avatar_picker/index.js","webpack://mba-web-client/./src/app/components/header/profile_info_popover.js","webpack://mba-web-client/./src/app/components/header/header_search.js","webpack://mba-web-client/./src/app/components/header/header.js","webpack://mba-web-client/./src/app/components/header/index.js","webpack://mba-web-client/./src/app/components/shared/footer/classes.module.scss?ddd8","webpack://mba-web-client/./src/app/components/shared/footer/footer.js","webpack://mba-web-client/./src/app/components/shared/footer/index.js","webpack://mba-web-client/./src/app/components/shared/seo_data/classes.module.scss?23ea","webpack://mba-web-client/./src/app/components/shared/seo_data/seo_data.js","webpack://mba-web-client/./src/app/components/shared/seo_data/index.js","webpack://mba-web-client/./src/app/components/navigation_stack_bar/classes.module.scss?d23f","webpack://mba-web-client/./src/app/components/navigation_stack_bar/navigation_stack_bar.js","webpack://mba-web-client/./src/app/components/navigation_stack_bar/index.js","webpack://mba-web-client/./src/app/components/shared/content.js","webpack://mba-web-client/./src/app/components/stopwatch/classes.module.scss?d894","webpack://mba-web-client/./src/app/components/stopwatch/stopwatch.js","webpack://mba-web-client/./src/app/components/stopwatch/index.js","webpack://mba-web-client/./src/app/components/video_player/classes.module.scss?2429","webpack://mba-web-client/./src/app/components/video_player/video_player.js","webpack://mba-web-client/./src/app/components/video_player/index.js","webpack://mba-web-client/./src/app/actions/impersonated.js","webpack://mba-web-client/./src/app/config/api.js","webpack://mba-web-client/./src/app/config/app_routes.js","webpack://mba-web-client/./src/app/config/bugsnag.js","webpack://mba-web-client/./src/app/config/const.js","webpack://mba-web-client/./src/app/config/cookies_action.js","webpack://mba-web-client/./src/app/config/debouncer.js","webpack://mba-web-client/./src/app/config/device_id.js","webpack://mba-web-client/./src/app/config/i18n.js","webpack://mba-web-client/./src/app/config/infinite_scroll.js","webpack://mba-web-client/./src/app/config/store.js","webpack://mba-web-client/./src/app/config/themes.js","webpack://mba-web-client/./src/app/config/util.js","webpack://mba-web-client/./src/app/logo/logo.js","webpack://mba-web-client/./src/app/project_items/coupon_items/coupon_bubble/img/ka_coupon_logo.js","webpack://mba-web-client/./src/app/project_items/coupon_items/coupon_bubble/img/pg_coupon_logo.js","webpack://mba-web-client/./src/app/project_items/coupon_items/coupon_bubble/img/ps_coupon_logo.js","webpack://mba-web-client/./src/app/project_items/coupon_items/coupon_label/index.js","webpack://mba-web-client/./src/app/project_items/coupon_items/coupon_utils.js","webpack://mba-web-client/./src/app/project_items/helper_functions.js","webpack://mba-web-client/./src/app/project_items/image_renderer/image_renderer.js","webpack://mba-web-client/./src/app/reducers/advisor_prop_types.js","webpack://mba-web-client/./src/app/reducers/spending_limits.js","webpack://mba-web-client/./src/common/config/const.js","webpack://mba-web-client/./src/common/config/utils.js","webpack://mba-web-client/./src/common/cookies_popover/cookies_popover.js","webpack://mba-web-client/./src/common/helpers/alert/classes.module.scss?06fa","webpack://mba-web-client/./src/common/helpers/alert/alert.js","webpack://mba-web-client/./src/common/helpers/alert/index.js","webpack://mba-web-client/./src/common/helpers/expanded_text/classes.module.scss?22fd","webpack://mba-web-client/./src/common/helpers/expanded_text/expanded_text.js","webpack://mba-web-client/./src/common/helpers/expanded_text/index.js","webpack://mba-web-client/./src/common/helpers/switch/classes.module.scss?2a13","webpack://mba-web-client/./src/common/helpers/switch/switch.js","webpack://mba-web-client/./src/common/helpers/switch/index.js","webpack://mba-web-client/./src/app/components/advisor/nested_views/advisors_recommend_carousel/advisor_recommend_preview.tsx","webpack://mba-web-client/./src/app/components/advisor/nested_views/advisors_recommend_carousel/advisors_recommend_carousel.tsx","webpack://mba-web-client/./src/app/components/home_page/nested_views/nested_views_utils.tsx","webpack://mba-web-client/./src/app/project_items/chat_bubble/chat_bubble.tsx","webpack://mba-web-client/./src/app/project_items/context_renderer/context_renderer.tsx","webpack://mba-web-client/./src/app/project_items/context_renderer/index.ts","webpack://mba-web-client/./src/app/project_items/coupon_items/coupon_bubble/coupon_bubble.tsx","webpack://mba-web-client/./src/app/project_items/coupon_items/coupon_label/coupon_label.tsx","webpack://mba-web-client/./src/app/project_items/marketing_img/marketing_image.tsx","webpack://mba-web-client/./src/app/project_items/mbw_colors/ka/mbw_colors.tsx","webpack://mba-web-client/./src/app/project_items/mbw_colors/pg/mbw_colors.tsx","webpack://mba-web-client/./src/app/project_items/mbw_colors/ps/mbw_colors.tsx","webpack://mba-web-client/./src/app/project_items/my_orders_order_cell/my_orders_order_cell.tsx","webpack://mba-web-client/./src/common/sprites/loadSprite.tsx","webpack://mba-web-client/./src/app/project_items/image_renderer/ sync ^\\.\\/.*$","webpack://mba-web-client/./src/app/project_items/ sync ^\\.\\/.*\\.tsx$"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"advisorRecommendContainer\":\"advisorRecommendContainer--wHbbZ\",\"advisorInfo\":\"advisorInfo--vT6n1\",\"basicInfoContainer\":\"basicInfoContainer--GgPDl\",\"ratingContainer\":\"ratingContainer--qNcru\",\"advsiorTitleContainer\":\"advsiorTitleContainer--QCTkv\",\"avatarHolder\":\"avatarHolder--w9BEJ\",\"advisorViewLink\":\"advisorViewLink--ZFYzX\",\"advisrNickName\":\"advisrNickName--DmaTc\",\"advisorServiceTitleContainer\":\"advisorServiceTitleContainer--Gil78\",\"bottomSection\":\"bottomSection--VwgHo\",\"recommendedCarouselContainer\":\"recommendedCarouselContainer--hVuZ2\",\"recommendedCarousel\":\"recommendedCarousel--u9BVA\",\"recommendedCarouselMobile\":\"recommendedCarouselMobile--qH6Nf\",\"recommendedAdvisors\":\"recommendedAdvisors--cSE_g\",\"recommendAdvisor\":\"recommendAdvisor--h5hS0\",\"iconsSectionContainer\":\"iconsSectionContainer--JEEiJ\",\"badgeContainer\":\"badgeContainer--jNXFx\",\"wrapperFreeMinutes\":\"wrapperFreeMinutes--Y1A3B\",\"animation-bzdot9\":\"animation-bzdot9--wFy89\"};","// extracted by mini-css-extract-plugin\nexport default {\"mainContentContainer\":\"mainContentContainer--MAC1m\",\"sectionHeader\":\"sectionHeader--yuQ9j\",\"sectionHeaderSeparator\":\"sectionHeaderSeparator--Q0Ngy\",\"sectionIcon\":\"sectionIcon--DKv1X\",\"advisorContainer\":\"advisorContainer--pp2Tt\",\"avatarHolder\":\"avatarHolder--k0Il9\",\"avatarContainer\":\"avatarContainer--joIZT\",\"advisorInfoContainer\":\"advisorInfoContainer--Ypbz3\",\"advisorInfoHeader\":\"advisorInfoHeader--q7WbF\",\"advisorTitle\":\"advisorTitle--HZY7H\",\"advisorSubtitle\":\"advisorSubtitle--PJMas\",\"rating\":\"rating--JtRRp\",\"footer\":\"footer--R9nN9\",\"v2\":\"v2--TAErj\",\"staffPickDescription\":\"staffPickDescription--Rgr5l\",\"advisorViewLink\":\"advisorViewLink--PA5Yn\",\"serviceTitleContainer\":\"serviceTitleContainer--nd13x\",\"previewAdvisorCTAContainer\":\"previewAdvisorCTAContainer--ys_JC\",\"imgContainerHolder\":\"imgContainerHolder--WFN1A\",\"statusLabel\":\"statusLabel--b3spB\",\"imgContainer\":\"imgContainer--jSHLb\",\"statusContainer\":\"statusContainer--cEZwt\",\"image\":\"image--VmYts\",\"indicatorContainer\":\"indicatorContainer--C6Xlc\",\"onlineIndicator\":\"onlineIndicator--B5Hfp\",\"offlineIndicator\":\"offlineIndicator--S8oR1\",\"busyIndicator\":\"busyIndicator--XrDmx\",\"indicatorSkeleton\":\"indicatorSkeleton--srpV4\",\"animation-bzdot9\":\"animation-bzdot9--gCUws\",\"newAdvisorText\":\"newAdvisorText--ER6QX\",\"ratingText\":\"ratingText--Vl2vl\",\"ratingTextSkeleton\":\"ratingTextSkeleton--LSja4\",\"ratingContainer\":\"ratingContainer--UDHsE\",\"new\":\"new--ivXaI\",\"ratingContainerSkeleton\":\"ratingContainerSkeleton--dC3ht\",\"advisorNickNameContainer\":\"advisorNickNameContainer--ncJUR\",\"rateAndFavouriteContainer\":\"rateAndFavouriteContainer--HfL8A\",\"playVideoBtnContainerHolder\":\"playVideoBtnContainerHolder--qJS4q\",\"playVideoBtnContainer\":\"playVideoBtnContainer--b6anH\",\"playVideoImg\":\"playVideoImg--gGeFL\",\"nickNameAndServiseTitleConatiner\":\"nickNameAndServiseTitleConatiner--M518D\",\"readingSinceAndCountItemContainer\":\"readingSinceAndCountItemContainer--NcsJZ\",\"starImg\":\"starImg--QUMMT\",\"personal\":\"personal--Wizlo\",\"favouriteContainer\":\"favouriteContainer--aDLfG\",\"badge\":\"badge--iH0ZN\",\"favoriteImg\":\"favoriteImg--G3C9U\",\"nickNameContainer\":\"nickNameContainer--AErAt\",\"nickNameText\":\"nickNameText--LoWuQ\",\"serviceTitleText\":\"serviceTitleText--AOJGz\",\"staff_pick\":\"staff_pick--OsLKF\",\"mainContainer\":\"mainContainer--gdb1e\",\"badge_end_to_end\":\"badge_end_to_end--eOvtD\",\"searchResult\":\"searchResult--fnzr1\",\"someOtherAdvisor\":\"someOtherAdvisor--IXPaD\",\"homePageAllAdvisors\":\"homePageAllAdvisors--qrVw9\",\"recommendedCarousel\":\"recommendedCarousel--a2yJs\",\"recommendedAdvisor\":\"recommendedAdvisor--bcqYu\",\"profileSmallAvatar\":\"profileSmallAvatar--WtcQA\",\"activityAvatar\":\"activityAvatar--jVubp\"};","// extracted by mini-css-extract-plugin\nexport default {\"ratingContainer\":\"ratingContainer--tVf7r\",\"starImg\":\"starImg--nocPO\",\"ratingText\":\"ratingText--xTrOd\",\"notifyContainer\":\"notifyContainer--ldkwd\",\"favouriteContainer\":\"favouriteContainer--r77ut\",\"shareContainer\":\"shareContainer--jO_2o\",\"topIconImgBlack\":\"topIconImgBlack--zLRQl\",\"topIconImgWhite\":\"topIconImgWhite--B49lB\",\"notifyMeTooltipContainer\":\"notifyMeTooltipContainer--WE5C0\",\"tooltip-bottom\":\"tooltip-bottom--SVHxj\",\"nickNameText\":\"nickNameText--Hk_yW\",\"serviceTitleContainer\":\"serviceTitleContainer--PvIBi\",\"serviceTitleText\":\"serviceTitleText--xMVuD\",\"iconsSectionContainer\":\"iconsSectionContainer--YQhVU\",\"iconButton\":\"iconButton--H8KJt\",\"popoverOverlay\":\"popoverOverlay--Mz_dZ\",\"sticky_icons\":\"sticky_icons--Y6W1b\",\"terminatedAdvisor\":\"terminatedAdvisor--iC6Bk\",\"animation-bzdot9\":\"animation-bzdot9--yvyNK\"};","// extracted by mini-css-extract-plugin\nexport default {\"layout\":\"layout--FJB0O\",\"callingScreen\":\"callingScreen--a4MuA\",\"chatContainerMobile\":\"chatContainerMobile--Q983E\",\"chatContainerBrowser\":\"chatContainerBrowser--AAxvo\",\"chatHeaderContainer\":\"chatHeaderContainer--fNujW\",\"avatar\":\"avatar--bKgRS\",\"chatHeaderContainerBrowser\":\"chatHeaderContainerBrowser--vQIG8\",\"chatHeader\":\"chatHeader--ElOc1\",\"chatMessagesContainer\":\"chatMessagesContainer--bq4Bh\",\"chatBaseBubbleContainer\":\"chatBaseBubbleContainer--eA45g\",\"chatSystemMessageContainer\":\"chatSystemMessageContainer--wbA5q\",\"chatSystemBubbleContainer\":\"chatSystemBubbleContainer--BiL4O\",\"chatOwnMessageContainer\":\"chatOwnMessageContainer--C7C3S\",\"chatOwnBubbleContainer\":\"chatOwnBubbleContainer--l7Rug\",\"chatAdvisorMessageContainer\":\"chatAdvisorMessageContainer--jwmc8\",\"chatAdvisorBubbleContainer\":\"chatAdvisorBubbleContainer--_DfXK\",\"bubbdleText\":\"bubbdleText--PUOSa\",\"chatSendContainer\":\"chatSendContainer--__toO\",\"chatSendArea\":\"chatSendArea--vzCQ5\",\"sendBtn\":\"sendBtn--_XfB9\",\"typingContainer\":\"typingContainer--DKwZ9\",\"nickname\":\"nickname--jMqW_\",\"hangupBtn\":\"hangupBtn--EGCTW\",\"hangupImg\":\"hangupImg--g1X0l\",\"advisorTimeToken\":\"advisorTimeToken--t4QLW\",\"clientTimeToken\":\"clientTimeToken--xWb3x\",\"advisorNameText\":\"advisorNameText--yJ7yN\",\"addCreditContainer\":\"addCreditContainer--U7HFe\",\"advisorImage\":\"advisorImage--YQMc8\",\"animation-bzdot9\":\"animation-bzdot9--GFZOi\"};","// extracted by mini-css-extract-plugin\nexport default {\"headerContainer\":\"headerContainer--ZJCPa\",\"headerContent\":\"headerContent--w5agA\",\"contentHolder\":\"contentHolder--JVpC4\",\"title\":\"title--mNJSV\",\"headerTitle\":\"headerTitle--EzGzO\",\"headerTitleTM\":\"headerTitleTM--wZxQ6\",\"profilePicture\":\"profilePicture--cE__g\",\"balanceLabel\":\"balanceLabel--NIuQo\",\"popoverContainer\":\"popoverContainer--uNsWu\",\"popoverItem\":\"popoverItem--CEguW\",\"divider\":\"divider--zLSAE\",\"backArrow\":\"backArrow--JBZSM\",\"transparentHeader\":\"transparentHeader--ozLB3\",\"whiteBackArrow\":\"whiteBackArrow--D9UMS\",\"badgeContainerRow\":\"badgeContainerRow--T0N7x\",\"left\":\"left--JbqDa\",\"innerWrapper\":\"innerWrapper--Why51\",\"right\":\"right--t9iDO\",\"centerTitle\":\"centerTitle--jRayo\",\"signInButtonsContainer\":\"signInButtonsContainer--1R_QI\",\"loginButtonContainer\":\"loginButtonContainer--r7uit\",\"signIn\":\"signIn--elaId\",\"avatar\":\"avatar--e_6rk\",\"popoverAvatar\":\"popoverAvatar--OAqsg\",\"profileInfoContainer\":\"profileInfoContainer--Qclw_\",\"profileInfoContainerDivider\":\"profileInfoContainerDivider--Tti9L\",\"infoContainer\":\"infoContainer--CxAMf\",\"badge\":\"badge--XKuBz\",\"menuButton\":\"menuButton--uALyj\",\"menuButtonImg\":\"menuButtonImg--glEIe\",\"headerLink\":\"headerLink--ANL2m\",\"profileInfoPopoverContainer\":\"profileInfoPopoverContainer--pifaK\",\"profileInfoPopoverInnerContainer\":\"profileInfoPopoverInnerContainer--dmrE6\",\"profileInfoPopoverTopArrow\":\"profileInfoPopoverTopArrow--P9FY7\",\"profileInfoPopoverInner\":\"profileInfoPopoverInner--seDtg\",\"profileInfoPopoverTitle\":\"profileInfoPopoverTitle--doVn8\",\"profileInfoPopoverInnerContent\":\"profileInfoPopoverInnerContent--GCfry\",\"profilePopoverHeaderAvatarContainer\":\"profilePopoverHeaderAvatarContainer--lBV1n\",\"popoverItemText\":\"popoverItemText--YW63V\",\"headerLogoContainer\":\"headerLogoContainer--DQP7b\",\"headerLogoH1Container\":\"headerLogoH1Container--ZDNAt\",\"logoImg\":\"logoImg--iGSCR\",\"searchContainer\":\"searchContainer--DhMSY\",\"searchField\":\"searchField--QZbcz\",\"inputSearchIconContainer\":\"inputSearchIconContainer--ILa17\",\"inputSearchIcon\":\"inputSearchIcon--deOYB\",\"searchButton\":\"searchButton--zl5Mn\",\"searchButtonTitle\":\"searchButtonTitle--WfnYC\",\"searchButtonIcon\":\"searchButtonIcon--g7xbu\",\"searchInput\":\"searchInput--KWmPn\",\"headerSearchAndProfileContainer\":\"headerSearchAndProfileContainer--WVTrA\",\"headerSearchMainContainer\":\"headerSearchMainContainer--nCrXO\",\"headerSearchButton\":\"headerSearchButton--t8pEi\",\"headerSearchButtonImg\":\"headerSearchButtonImg--EzyD4\",\"headerSearchLineContainer\":\"headerSearchLineContainer--V5Z2l\",\"headerSearchLineSearchIconAndInputContainer\":\"headerSearchLineSearchIconAndInputContainer--wKc8l\",\"headerSearchLineDivider\":\"headerSearchLineDivider--CsWUP\",\"headerSearchLineForm\":\"headerSearchLineForm--WMrGS\",\"headerSearchLineInput\":\"headerSearchLineInput--hzIsS\",\"headerSearchLineButton\":\"headerSearchLineButton--iuug7\",\"headerSearchLineCloseButton\":\"headerSearchLineCloseButton--seZNk\",\"headerSearchLineCloseButtonImg\":\"headerSearchLineCloseButtonImg--mnJBx\",\"headerSearchLineInputContainer\":\"headerSearchLineInputContainer--hURFP\",\"headerSearchLineSearchCloseButtonContainer\":\"headerSearchLineSearchCloseButtonContainer--vYje3\",\"headerSearchGreyIcon\":\"headerSearchGreyIcon--B5NfG\",\"headerAffiliatePromoBannerContainer\":\"headerAffiliatePromoBannerContainer--ppnmx\",\"profilePopoverHeaderWrapper\":\"profilePopoverHeaderWrapper--rhruR\",\"profilePopoverHeaderRightSide\":\"profilePopoverHeaderRightSide--tstsM\",\"avatarContainer\":\"avatarContainer--jZsOf\",\"avatarIconContainer\":\"avatarIconContainer--Bhe8n\",\"nicknameContainer\":\"nicknameContainer--KtadD\",\"empty\":\"empty--E6XzV\",\"addCreditsButton\":\"addCreditsButton--zTp2Z\",\"animation-bzdot9\":\"animation-bzdot9--F50mL\"};","// extracted by mini-css-extract-plugin\nexport default {\"advisorViewLink\":\"advisorViewLink--ipK8c\",\"advisorServiceTitleContainer\":\"advisorServiceTitleContainer--Qqgj8\",\"advisorServiceTitle\":\"advisorServiceTitle--byNUq\",\"serviceDescriptionContainer\":\"serviceDescriptionContainer--O3vko\",\"customTextStyle\":\"customTextStyle--ti4lV\",\"advisrServiceText\":\"advisrServiceText--Y_6C2\",\"advisorNickNameContainer\":\"advisorNickNameContainer--J0RZm\",\"advisrNickName\":\"advisrNickName--nVily\",\"advisornickNameAndServiceContainer\":\"advisornickNameAndServiceContainer--IhMw_\",\"advisorReadingSinceAndCountItemContainer\":\"advisorReadingSinceAndCountItemContainer--CK3GY\",\"personal\":\"personal--GBa4A\",\"advisorView\":\"advisorView--KolxW\",\"advisrServiceContainer\":\"advisrServiceContainer--XSYgp\",\"bottomSection\":\"bottomSection--wwbG8\",\"badge\":\"badge--a5l2C\",\"advisorServiseActionsContainer\":\"advisorServiseActionsContainer--gpRmH\",\"advisorServiseActionsIconsContainer\":\"advisorServiseActionsIconsContainer--zaWe5\",\"advisorServiseActionsMinPriceText\":\"advisorServiseActionsMinPriceText--A6L0O\",\"advisorServiseActionsMinPriceBoltText\":\"advisorServiseActionsMinPriceBoltText--T2YSm\",\"advisorServiseActionsIcon\":\"advisorServiseActionsIcon--b9S3n\",\"badge_end_to_end\":\"badge_end_to_end--HZ_x7\",\"searchResult\":\"searchResult--NX8vh\",\"someOtherAdvisor\":\"someOtherAdvisor--S3Ocf\",\"homePageAllAdvisors\":\"homePageAllAdvisors--CrOJX\",\"recommendedCarousel\":\"recommendedCarousel--nRtPJ\",\"previewAdvisorCTAContainer\":\"previewAdvisorCTAContainer--yu2KN\",\"advisorFreeMinutes\":\"advisorFreeMinutes--aed49\",\"wrapperFreeMinutes\":\"wrapperFreeMinutes--wTJxz\",\"modesInfoContainer\":\"modesInfoContainer--D6ZKx\",\"advisrService\":\"advisrService--yH8c1\",\"notifyMeButton\":\"notifyMeButton--CQQh3\",\"priceText\":\"priceText--aGnYq\",\"modesInfoContainerWithIcons\":\"modesInfoContainerWithIcons--XyS8n\",\"previewAdvisorCTA\":\"previewAdvisorCTA--_AB1R\",\"animation-bzdot9\":\"animation-bzdot9--GCIbq\"};","// extracted by mini-css-extract-plugin\nexport default {\"advisorTitleDescription\":\"advisorTitleDescription--jZvmO\",\"advisorDescriptionSkeleton\":\"advisorDescriptionSkeleton--KFbTB\",\"animation-bzdot9\":\"animation-bzdot9--dl9mi\",\"advisorShortDescription\":\"advisorShortDescription--cT3YW\",\"advisorShortDescriptionSkeleton\":\"advisorShortDescriptionSkeleton--XYiGq\",\"seeAllItmeMobile\":\"seeAllItmeMobile--w_9XG\",\"sectionMainContainer\":\"sectionMainContainer--r2lJm\",\"advisorsSectionContainer\":\"advisorsSectionContainer--ahN21\",\"advisorsContainer\":\"advisorsContainer--WZ5KT\",\"advisorsContainerScroller\":\"advisorsContainerScroller--WogyH\",\"advisorTitleContainer\":\"advisorTitleContainer--ksyut\",\"advisorTitle\":\"advisorTitle--BommV\",\"advisorTitleImg\":\"advisorTitleImg--abe7h\",\"advisorTitleText\":\"advisorTitleText--wC6i7\",\"advisorTitleTextSkeleton\":\"advisorTitleTextSkeleton--AGl0i\",\"seeAllBtn\":\"seeAllBtn--xh62w\",\"seeAllBtnTextContainer\":\"seeAllBtnTextContainer--IDIuo\",\"seeAllBtnRightArrow\":\"seeAllBtnRightArrow--EnrkR\",\"scrollLeftElementContainer\":\"scrollLeftElementContainer--MZUsS\",\"scrollRightElementContainer\":\"scrollRightElementContainer--duBzy\",\"seeAllItmeMobileContainer\":\"seeAllItmeMobileContainer--Oslf2\",\"arrowImg\":\"arrowImg--pBsDM\",\"all_advisors_section\":\"all_advisors_section--piLI4\",\"personal\":\"personal--YB93F\",\"badge\":\"badge--ECs3K\",\"badge_end_to_end\":\"badge_end_to_end--rnMQk\",\"recommend_advisors\":\"recommend_advisors--JDX7z\",\"scrollElementImgContainer\":\"scrollElementImgContainer--CYxVF\"};","// extracted by mini-css-extract-plugin\nexport default {\"feedbackSwitcherContainer\":\"feedbackSwitcherContainer--LSwmy\",\"negativeFeedbackButtonDEFAULT\":\"negativeFeedbackButtonDEFAULT--zn0JW\",\"positiveFeedbackButtonDEFAULT\":\"positiveFeedbackButtonDEFAULT--LPa4Z\",\"negativeFeedbackButtonCHATENDED\":\"negativeFeedbackButtonCHATENDED--Sr5h7\",\"positiveFeedbackButtonCHATENDED\":\"positiveFeedbackButtonCHATENDED--vX7N4\",\"smileyIconDEFAULT\":\"smileyIconDEFAULT--u_mQ6\",\"smileyIconCHATENDED\":\"smileyIconCHATENDED--aFkCW\",\"inputArea\":\"inputArea--DEfxn\",\"divider\":\"divider--CeA6i\",\"rateReviewContainer\":\"rateReviewContainer--q0z29\",\"reviewSectionContainer\":\"reviewSectionContainer--KUzdf\",\"rateReviewSectionTitle\":\"rateReviewSectionTitle--nd0tq\",\"advisorNameText\":\"advisorNameText--IrjAj\",\"submitButton\":\"submitButton--NHGnE\",\"starImage\":\"starImage--kbK5W\",\"skipButtonContainer\":\"skipButtonContainer--PmLxD\",\"skipButton\":\"skipButton--Js01J\",\"skipTopButtonContainer\":\"skipTopButtonContainer--Wy2dk\",\"skipTopButton\":\"skipTopButton--kd0SR\",\"flexDiv\":\"flexDiv--ovJQ7\",\"rateReviewCHATENDED\":\"rateReviewCHATENDED--qtquS\",\"rateSectionDEFAULT\":\"rateSectionDEFAULT--MxLbi\",\"rateSectionChatEndedContainer\":\"rateSectionChatEndedContainer--FSsAu\",\"chatEndedTitle\":\"chatEndedTitle--Ux4MG\",\"chatEndedSubTitle\":\"chatEndedSubTitle--i2fPk\",\"smallModalContentContainer\":\"smallModalContentContainer--SfFVy\",\"animation-bzdot9\":\"animation-bzdot9--UXOcH\"};","// extracted by mini-css-extract-plugin\nexport default {\"rootContainer\":\"rootContainer--g8jig\",\"container\":\"container--cgp95\",\"contentDiv\":\"contentDiv--PiJ2f\",\"listContent\":\"listContent--S9vCr\",\"listItemContent\":\"listItemContent--vSUxS\",\"arrowListItem\":\"arrowListItem--WinSr\",\"passwordInput\":\"passwordInput--cCfzl\",\"signOutContainer\":\"signOutContainer--NyXUW\",\"signOutContainerModal\":\"signOutContainerModal--Mjc2_\",\"signOutButton\":\"signOutButton--RhMad\",\"signOutButtonModal\":\"signOutButtonModal--D1XuS\",\"signOutImage\":\"signOutImage--QJoNK\",\"popoverLogoutImage\":\"popoverLogoutImage--c9sU7\",\"arrow\":\"arrow--B7geI\",\"notificationPreferencesSpinerContainer\":\"notificationPreferencesSpinerContainer--vK5O2\",\"listTitle\":\"listTitle--ojjEh\",\"fullDivider\":\"fullDivider--xdDKa\",\"marginDivider\":\"marginDivider--Djeq6\",\"signOutYesBtnContainer\":\"signOutYesBtnContainer--XC52F\",\"signOutCancelBtnContainer\":\"signOutCancelBtnContainer--B2Wcp\",\"signOutYesButton\":\"signOutYesButton--OZlrw\",\"filterYesButton\":\"filterYesButton--WplNM\",\"signOutCancelButton\":\"signOutCancelButton--vnF_I\",\"footer\":\"footer--yNV2t\",\"signOutContentContainer\":\"signOutContentContainer--oNh8J\",\"signOutHeader\":\"signOutHeader--BtbS3\",\"signOutBody\":\"signOutBody--_3DwQ\",\"linkContainer\":\"linkContainer--JvAM4\",\"modalSignOutText\":\"modalSignOutText--A0_IZ\",\"userEmailContainer\":\"userEmailContainer--RFj03\",\"userEmailSentToContainer\":\"userEmailSentToContainer--rcog8\",\"userEmailText\":\"userEmailText--v2GJw\",\"animation-bzdot9\":\"animation-bzdot9--u8l4J\"};","// extracted by mini-css-extract-plugin\nexport default {\"appRoot\":\"appRoot--OOAPJ\",\"drawerHolder\":\"drawerHolder--xjyYP\",\"rootHeader\":\"rootHeader--WbrpR\",\"rootContent\":\"rootContent--pdrmU\",\"container\":\"container--L0bAd\",\"fullHeightContainer\":\"fullHeightContainer--NFZtT\",\"childrenContainer\":\"childrenContainer--DRYVx\",\"closeButton\":\"closeButton--fukm4\",\"headerTitle\":\"headerTitle--jmDN7\",\"transparentOverlay\":\"transparentOverlay--caXT3\",\"drawer\":\"drawer--YalKV\",\"drawerMask\":\"drawerMask--gZRNd\",\"invisibleScrollBar\":\"invisibleScrollBar--ravL8\",\"smartBannerContainer\":\"smartBannerContainer--VUQ9g\",\"smartBanner\":\"smartBanner--X9PqG\",\"smartBannerTitle\":\"smartBannerTitle--mJ4FF\",\"iosIcon\":\"iosIcon--Co97A\",\"androidIcon\":\"androidIcon--BbQkk\",\"cancelBtnContainer\":\"cancelBtnContainer--rlGY1\",\"cancelButton\":\"cancelButton--cZa5u\",\"animation-bzdot9\":\"animation-bzdot9--BNxuN\"};","// extracted by mini-css-extract-plugin\nexport default {\"chatContainer\":\"chatContainer--in4XZ\",\"chatBubbleWrapper\":\"chatBubbleWrapper--AUV6b\",\"chatBubbleOther\":\"chatBubbleOther--_XYAo\",\"chatBubbleUser\":\"chatBubbleUser--vsmLY\",\"chatBubbleMessage\":\"chatBubbleMessage--KYtJC\",\"chatBubbleMessageText\":\"chatBubbleMessageText--n2ssQ\",\"chatBubbleMessageTimeText\":\"chatBubbleMessageTimeText--Te8tv\",\"chatBubbleTime\":\"chatBubbleTime--AGP01\",\"chatBubbleLoader\":\"chatBubbleLoader--wKjU1\",\"chatBubbleLoaderCircle\":\"chatBubbleLoaderCircle--dlYpQ\",\"mbw-chat-loader-animation\":\"mbw-chat-loader-animation--uIWto\",\"chatBubbleAvatarContainer\":\"chatBubbleAvatarContainer--eqI8J\",\"animation-bzdot9\":\"animation-bzdot9--ouayA\"};","// extracted by mini-css-extract-plugin\nexport default {\"chatContainer\":\"chatContainer--U93pR\",\"couponBubbleWrapper\":\"couponBubbleWrapper--zIeUZ\",\"couponBubbleContainer\":\"couponBubbleContainer--dMtkG\",\"couponBubbleLabelContainer\":\"couponBubbleLabelContainer--Jc7AK\",\"couponBubbleLabelBadgeContainerExpired\":\"couponBubbleLabelBadgeContainerExpired--AnKJX\",\"couponBubbleLabelBadgeContainerReached\":\"couponBubbleLabelBadgeContainerReached--XS3Mg\",\"couponBubbleMessage\":\"couponBubbleMessage--LDEhY\",\"couponBubbleMessageText\":\"couponBubbleMessageText--UG2wA\",\"couponBubbleNoteMessage\":\"couponBubbleNoteMessage--o_ncs\",\"couponBubbleTime\":\"couponBubbleTime--nkOoC\",\"couponBubbleMessageTimeText\":\"couponBubbleMessageTimeText--XlDVg\",\"couponBubbleAvatarContainer\":\"couponBubbleAvatarContainer--nfWsL\",\"animation-bzdot9\":\"animation-bzdot9--nfQ8M\"};","// extracted by mini-css-extract-plugin\nexport default {\"couponLabelContainer\":\"couponLabelContainer--JvLEP\",\"couponLabelIconContainer_small\":\"couponLabelIconContainer_small--neL5O\",\"couponLabelIconContainer_medium\":\"couponLabelIconContainer_medium--UCOlU\",\"couponLabelHoursToRedeemContainer_small\":\"couponLabelHoursToRedeemContainer_small--Bx1rJ\",\"couponLabelHoursToRedeemContainer_medium\":\"couponLabelHoursToRedeemContainer_medium--vfV5w\",\"couponLabelOfferEndsIn1HoursToRedeemContainer_small\":\"couponLabelOfferEndsIn1HoursToRedeemContainer_small--Wxbos\",\"couponLabelOfferEndsIn1HoursToRedeemContainer_medium\":\"couponLabelOfferEndsIn1HoursToRedeemContainer_medium--fa8iY\",\"animation-bzdot9\":\"animation-bzdot9--cEjDy\"};","// extracted by mini-css-extract-plugin\nexport default {\"orderCellContainer\":\"orderCellContainer--utDZL\",\"borderDefault\":\"borderDefault--nhOUG\",\"kaBorderChat\":\"kaBorderChat--spCUa\",\"kaBorderVoice\":\"kaBorderVoice--lTcNg\",\"orderCellContentContainer\":\"orderCellContentContainer--t4vVm\",\"orderTitleLabelsContainer\":\"orderTitleLabelsContainer--Dr1yE\",\"orderCellTitleContainer\":\"orderCellTitleContainer--ZXOmG\",\"orderCellSubjectContainer\":\"orderCellSubjectContainer--_hXy8\",\"labelsHolderContainer\":\"labelsHolderContainer--DBi7P\",\"orderCellLabelContainer\":\"orderCellLabelContainer--YuLTn\",\"orderDataContainer\":\"orderDataContainer--tfXCD\",\"orderCreatedAtContainer\":\"orderCreatedAtContainer--TxOpz\",\"orderDescriptionContainer\":\"orderDescriptionContainer--C96jE\",\"orderDescriptionIcon\":\"orderDescriptionIcon--nPXV8\",\"rightArrowContainer\":\"rightArrowContainer--AEvIe\",\"orderCellIcon\":\"orderCellIcon--MPPCc\",\"orderSubjectName\":\"orderSubjectName--LKOyx\",\"orderDescription\":\"orderDescription--TyEQY\",\"orderRightDataContainer\":\"orderRightDataContainer--TpZgU\",\"animation-bzdot9\":\"animation-bzdot9--d0Ob9\"};","import shared from './main.module.scss';\n\nwindow.shared = shared;\n","// extracted by mini-css-extract-plugin\nexport default {\"middlePhoneOnlyUpSize\":\"680\",\"phoneOnlyUpSize\":\"1080\",\"appColor\":\"var(--app-color)\",\"xfmLabelColor\":\"var(--duration-option-xfm-label-color)\",\"advisorBusyColor\":\"var(--advisor-busy-color)\",\"darkTheme\":\"darkTheme--UUTyc\",\"layout\":\"layout--G3_G_\",\"animation-bzdot9\":\"animation-bzdot9--R503R\"};","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useLocalizedNavigate } from './hooks/useLocalizedNavigate';\n\nconst LocalizedNavigate = ({ pathKey, params, options }) => {\n const navigate = useLocalizedNavigate();\n\n useEffect(() => {\n navigate(pathKey, { params, options });\n }, [pathKey, params, options]);\n\n return <></>;\n};\n\nLocalizedNavigate.propTypes = {\n pathKey: PropTypes.string.isRequired,\n params: PropTypes.object,\n options: PropTypes.object\n};\n\nLocalizedNavigate.defaultProps = {\n params: {},\n options: {}\n};\n\nexport default LocalizedNavigate;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Route, Routes } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { DEFAULT_LANGUAGE, SUPPORTED_LANGUAGES } from '../../config/i18n';\nimport { useSEOData } from './hooks/useSEOData';\nimport { useNavigationStackUpdate } from './hooks/useNavigationStackUpdate';\nimport { useSmartBannerVisibility } from './hooks/useSmartBannerVisibility';\nimport { appRoutes } from '../../config/app_routes';\nimport LocalizedNavigate from './localized_navigate';\n\nfunction LocalizedSwitch({\n children\n}) {\n useSEOData();\n useNavigationStackUpdate();\n useSmartBannerVisibility();\n\n const { t } = useTranslation();\n\n const localizeRoutePaths = (key, lang) => {\n const route = t(key, { lng: lang });\n\n const localizedRoutes = [`/${ lang }${ route }`];\n\n if (lang === DEFAULT_LANGUAGE) localizedRoutes.push(route);\n\n return localizedRoutes;\n };\n\n return (\n <Routes>\n {SUPPORTED_LANGUAGES.flatMap(lang => (\n React.Children.map(children, (child) => (React.isValidElement(child)\n ? localizeRoutePaths(child.props.path, lang).map(path => (\n React.cloneElement(child, {\n ...child.props,\n path\n })\n ))\n : child))\n ))}\n <Route path=\"*\" element={ <LocalizedNavigate pathKey={ appRoutes.home } options={ { replace: true } } /> } />\n </Routes>\n );\n}\n\nLocalizedSwitch.propTypes = {\n children: PropTypes.node\n};\n\nLocalizedSwitch.defaultProps = {\n children: null\n};\n\nexport default LocalizedSwitch;\n","import { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useLocation } from 'react-router';\nimport { getSEOData } from '../../../actions/application';\n\nexport const useSEOData = () => {\n const dispatch = useDispatch();\n const location = useLocation();\n\n useEffect(() => {\n dispatch(getSEOData(location.pathname));\n }, [location.pathname]);\n};\n","import { useEffect } from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useLocation } from 'react-router';\nimport { updateNavigationStack } from '../../../actions/application';\n\nexport const useNavigationStackUpdate = () => {\n const dispatch = useDispatch();\n const location = useLocation();\n\n useEffect(() => {\n dispatch(updateNavigationStack({}));\n }, [location.pathname]);\n};\n","import { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useLocation } from 'react-router';\nimport { updateSmartBannerVisibility } from '../../../actions/application';\nimport { appRoutes } from '../../../config/app_routes';\nimport { useCurrentPath } from './useCurrentPath';\n\nexport const useSmartBannerVisibility = () => {\n const dispatch = useDispatch();\n const loading = useSelector((state) => state.homePage?.loading);\n const location = useLocation();\n const { routeKey } = useCurrentPath();\n\n useEffect(() => {\n if (loading && routeKey === appRoutes.home) return;\n dispatch(updateSmartBannerVisibility(routeKey));\n }, [location.pathname, loading, routeKey]);\n};\n","import PropTypes from 'prop-types';\nimport { updateLastHit } from '../../actions/mixpanel';\nimport { usePathValidation } from './hooks/usePathValidation';\n\nfunction LocalizedRouter({ children }) {\n updateLastHit();\n usePathValidation();\n\n return children;\n}\n\nLocalizedRouter.propTypes = {\n children: PropTypes.node.isRequired\n};\n\nexport default LocalizedRouter;\n","import { useLocation, useNavigate } from 'react-router';\nimport { useEffect } from 'react';\nimport { useLocalizedPath } from './useLocalizedPath';\nimport { getCurrentPath } from '../routes_helpers';\nimport { applicationRoutes } from '../../../config/app_routes';\n\nexport const usePathValidation = () => {\n const history = useNavigate();\n const location = useLocation();\n const generatePath = useLocalizedPath();\n\n useEffect(() => {\n const { search = '', pathname, state } = location;\n const { routeKey, params } = getCurrentPath(Object.keys(applicationRoutes));\n const newPath = generatePath(params?.lang, routeKey, params);\n\n if (newPath !== pathname) {\n history(newPath + search, { state, replace: true });\n }\n }, [location.pathname]);\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"popoverContainer\":\"popoverContainer--DcXGg\",\"closeButtonContainer\":\"closeButtonContainer--Sfj79\",\"closeButton\":\"closeButton--Oj03_\",\"animation-bzdot9\":\"animation-bzdot9--pW3uY\"};","/* eslint-disable jsx-a11y/no-autofocus */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { popoverKinds } from '../../config/const';\nimport FiltersContainer from '../search_results/inner_views/filters';\nimport classes from './classes.module.scss';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport { SvgIcon } from '../../../common/sprites';\n\nconst generatePopoverForKind = (kind, payload) => {\n const popovers = {\n [popoverKinds.filter]: (<FiltersContainer\n popoverView\n autofocus={ payload.autoFocus }\n dissmissPopover={ payload.dissmissPopover }\n history={ payload.history }\n location={ payload.location }\n />)\n };\n return popovers[kind];\n};\n\nfunction Popover({ kind, dissmissPopover, payload }) {\n const renderCloseBtn = () => (\n <div className={ classes.closeButtonContainer }>\n <button className={ classes.closeButton } type=\"button\" onClick={ dissmissPopover }>\n <SvgIcon id=\"close_icon\" size={ 22 } />\n </button>\n </div>\n );\n\n const bottomPopover = (children) => (\n <AppGeneralPopup\n visible={ !!kind }\n customTopHeader={ renderCloseBtn() }\n closable={ dissmissPopover }\n >\n <div className={ classes.popoverContainer }>\n {children}\n </div>\n </AppGeneralPopup>\n );\n\n return bottomPopover(\n generatePopoverForKind(kind, { ...payload, dissmissPopover })\n );\n}\n\nPopover.propTypes = {\n kind: PropTypes.string,\n dissmissPopover: PropTypes.func.isRequired,\n payload: PropTypes.object\n};\n\nPopover.defaultProps = {};\n\nexport default Popover;\n","import { connect } from 'react-redux';\nimport Popover from './popover';\nimport { dissmissPopover } from '../../actions/popover';\nimport withPGTranslation from '../../config/withPGTranslation';\n\nconst mapStateProps = ({ popover }) => ({ ...popover });\n\nexport default connect(mapStateProps, {\n dissmissPopover\n})(withPGTranslation(Popover));\n","// extracted by mini-css-extract-plugin\nexport default {\"browserContainer\":\"browserContainer--D4TOt\",\"mobileContainer\":\"mobileContainer--rGmuI\",\"popover\":\"popover--xUC4t\",\"scrollContainerBrowser\":\"scrollContainerBrowser--kGU2A\",\"scrollContainerMobile\":\"scrollContainerMobile--_zuNC\",\"contentHolder\":\"contentHolder--x_KmX\",\"input\":\"input--bsywD\",\"inputError\":\"inputError--M9hkV\",\"actionButton\":\"actionButton--UxfDy\",\"signUpAffiliatePromoactionButton\":\"signUpAffiliatePromoactionButton--N6oS5\",\"disableActionBtn\":\"disableActionBtn--Pp7AW\",\"navigationButtonContainer\":\"navigationButtonContainer--w6xr_\",\"navigationButton\":\"navigationButton--Iufm8\",\"fbButton\":\"fbButton--No0AB\",\"fbProcessing\":\"fbProcessing--Z5asH\",\"socialDisabled\":\"socialDisabled--ikrCc\",\"googleButton\":\"googleButton--UpZFS\",\"googleProcessing\":\"googleProcessing--NrGlI\",\"socialImg\":\"socialImg--PipEQ\",\"logoContainer\":\"logoContainer--Na9I9\",\"logoImg\":\"logoImg--uuMx4\",\"error\":\"error--vSSPp\",\"confirmPpTofTextContainer\":\"confirmPpTofTextContainer--UV8a3\",\"confirmPpTofTextLink\":\"confirmPpTofTextLink--wmu_N\",\"confirmPpTofSwitcherRowsignUp\":\"confirmPpTofSwitcherRowsignUp--R5FNm\",\"confirmPpTofSwitcherRowsignUpAffiliatePromo\":\"confirmPpTofSwitcherRowsignUpAffiliatePromo--D_jxv\",\"sicialBtnContainer\":\"sicialBtnContainer--WV0OD\",\"socialLeftBtnContainer\":\"socialLeftBtnContainer--ufRVB\",\"socialRightBtnContainer\":\"socialRightBtnContainer--PuY2C\",\"ppTosSwitcher\":\"ppTosSwitcher--Be1RS\",\"rememberMeContainer\":\"rememberMeContainer--LKZL2\",\"rememberMeCheckboxInput\":\"rememberMeCheckboxInput--m5p_y\",\"remeberMeMarginsignIn\":\"remeberMeMarginsignIn--f1Tec\",\"remeberMeMarginsignUp\":\"remeberMeMarginsignUp--rR1NU\",\"remeberMeMarginsignUpAffiliatePromo\":\"remeberMeMarginsignUpAffiliatePromo--tR4uB\",\"cancelContainer\":\"cancelContainer--tZDWL\",\"cancelButton\":\"cancelButton--r34yW\",\"cancelButtonImg\":\"cancelButtonImg--t2ThT\",\"connectTitle\":\"connectTitle--MMpnj\",\"inputsignUpAffiliatePromo\":\"inputsignUpAffiliatePromo--E9md6\",\"autofill\":\"autofill--MbTku\",\"topLogoContainerBrowser\":\"topLogoContainerBrowser--b369g\",\"topLogoContainerMobile\":\"topLogoContainerMobile--G5UPv\",\"topLogoImg\":\"topLogoImg--O73FN\",\"affiliatePromoHeaderContainer\":\"affiliatePromoHeaderContainer--cG3f6\",\"affiliatePromoHeaderTitle\":\"affiliatePromoHeaderTitle--_9iKA\",\"affiliatePromoHeaderBodyText\":\"affiliatePromoHeaderBodyText--TW9N2\",\"affiliatePromoHeaderBottomText\":\"affiliatePromoHeaderBottomText--LCSH7\",\"signUpAffiliatePromoLabel\":\"signUpAffiliatePromoLabel--Rvds1\",\"animation-bzdot9\":\"animation-bzdot9--ssSRC\"};","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classes from '../classes.module.scss';\nimport env from '../../../config/variables';\n\nconst { GOOGLE_CLIENT_ID } = env;\n\nexport const gogleLoginScript = () => <script src=\"https://accounts.google.com/gsi/client\" async defer />;\n\nfunction GoogleLoginBtn({ googleCallback }) {\n const [googleConfig, setGoogleConfig] = useState(window.google);\n const googleLoginCallback = (response) => {\n googleCallback(response.credential);\n };\n\n const listenToPopstate = () => {\n const windowGoogle = window.google;\n setGoogleConfig(windowGoogle);\n };\n\n useEffect(() => {\n window.addEventListener('load', listenToPopstate, false);\n return () => {\n window.removeEventListener('load', listenToPopstate, false);\n };\n }, []);\n\n useEffect(() => {\n if (googleConfig) {\n googleConfig.accounts.id.initialize({\n client_id: GOOGLE_CLIENT_ID,\n callback: googleLoginCallback\n });\n googleConfig.accounts.id.renderButton(\n document.getElementById('google_button_holder'),\n {\n theme: 'outline',\n size: 'large',\n text: 'signin',\n width: 150\n }\n );\n }\n }, [googleConfig]);\n\n return (\n <div\n className={ classes.googleButton }\n id=\"google_button_holder\"\n />\n );\n}\nGoogleLoginBtn.propTypes = {\n googleCallback: PropTypes.func.isRequired\n};\n\nGoogleLoginBtn.defaultProps = {\n};\n\nexport default GoogleLoginBtn;\n","/* eslint-disable react/no-danger */\nimport React, { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Helmet } from 'react-helmet';\nimport Cookies from 'universal-cookie';\nimport { useNavigate, useLocation } from 'react-router-dom';\nimport { trackQueuedEvents, facebookPixelScript, facebookPixelNoscript } from '../../actions/facebook_analytics';\nimport { initFirebaseMessaging } from '../../actions/firebase_messaging';\nimport { hotJarInitialize, hotJarIdentifyUser } from '../../actions/hotjar';\nimport { sectionIds } from '../home_page/prop_types';\nimport { gogleLoginScript } from '../registration/inner_components/google_btn';\nimport { getAppTheme, fromMobileApp, compareObjects } from '../../../common/config/utils';\nimport { appThemes } from '../../../common/config/const';\nimport { trackQueuedOptimoveEvents, trackFirstVisitEventGtm } from '../../actions/google_tag_mahager_events';\nimport env from '../../config/variables';\nimport { isPrerenderMode } from '../../config/util';\nimport { checkActivePromoTypeProperty } from '../../actions/mixpanel';\nimport { getSpriteUrl, loadSVGSprite } from '../../../common/sprites/loadSprite';\n\nconst { shared } = window;\n\nconst cookies = new Cookies();\n\nconst cookieValue = (valueName) => {\n const valueString = document.cookie.split('; ').find(row => row.startsWith(`${ valueName }=`));\n const value = valueString ? valueString.split('=')[1] : null;\n return value;\n};\n\nconst { PAYMENT_PROCESSING_INTERVAL_SEC } = env;\n\nfunction AnalyticsAndCommonLogicComponent({\n userId,\n configureMP,\n trackPeoplePropertiesAction,\n getUser,\n requestPermission,\n uploadLogs,\n logKey,\n logUrl,\n parseAndUploadLogs,\n identifyOrAliasUserOnMP,\n user,\n loadHomePage,\n userPaymentProcessing,\n getMyAccountCredits,\n appLoading,\n getAnonymousUser,\n userAnalytics,\n anonymousUser,\n userFirstActivePromotion,\n initFirebaseDatabase,\n signOutFromFBDatabase\n}) {\n const setAppTheme = () => {\n const appTheme = getAppTheme();\n if (appTheme === appThemes.dark) {\n document.body.classList.add(`${ shared.darkTheme }`);\n }\n };\n\n useEffect(() => {\n loadSVGSprite(getSpriteUrl(), 'svg-sprite-container');\n }, []);\n\n useEffect(() => {\n setAppTheme();\n setTimeout(() => appLoading(), 1000);\n if (!cookieValue('visited')) {\n trackFirstVisitEventGtm();\n cookies.set('visited', true, {\n path: '/'\n });\n }\n }, []);\n\n useEffect(() => {\n getUser(window.currentUserId);\n initFirebaseMessaging();\n configureMP();\n hotJarInitialize();\n if (!fromMobileApp && !isPrerenderMode()) {\n loadHomePage(false, { section_ids: sectionIds.salesBanner });\n if (!window.currentUserId) {\n getAnonymousUser();\n }\n }\n }, []);\n\n // should be removed later:\n useEffect(() => {\n if (!userId) return;\n checkActivePromoTypeProperty(user);\n }, [userId, userAnalytics]);\n\n useEffect(() => {\n if (!anonymousUser || userId) return;\n checkActivePromoTypeProperty(anonymousUser);\n }, [anonymousUser]);\n\n useEffect(() => {\n trackQueuedEvents();\n }, [window.facebookPixelConfigured, window.FB, userId]);\n\n useEffect(() => {\n if (window.optimoveSDK && window.optimoveSDK !== undefined) {\n trackQueuedOptimoveEvents();\n }\n }, [window.optimoveSDK]);\n\n useEffect(() => {\n if (!userId) {\n signOutFromFBDatabase();\n return;\n }\n identifyOrAliasUserOnMP();\n trackPeoplePropertiesAction();\n initFirebaseDatabase(user);\n }, [userId]);\n\n useEffect(() => {\n if (!userId) return;\n hotJarIdentifyUser({ user });\n }, [user]);\n\n useEffect(() => {\n if (!userId) return;\n requestPermission();\n }, [userId]);\n\n useEffect(() => {\n if (uploadLogs) {\n parseAndUploadLogs(logUrl, logKey);\n }\n }, [uploadLogs]);\n\n useEffect(() => {\n if (userPaymentProcessing) {\n const interval = setInterval(() => {\n getMyAccountCredits();\n }, PAYMENT_PROCESSING_INTERVAL_SEC * 1000);\n return () => {\n if (interval) clearInterval(interval);\n };\n }\n return () => { };\n }, [userPaymentProcessing]);\n\n const history = useNavigate();\n const location = useLocation();\n\n const [userFirstActivePromotionState, setUserFirstActivePromotionState] = useState(userFirstActivePromotion);\n\n const shouldUpdatePageWithAdvisors = useMemo(() => !compareObjects({ ...userFirstActivePromotion, promoTimer: undefined }, { ...userFirstActivePromotionState, promoTimer: undefined })\n && (userFirstActivePromotion.refreshStrategy === 'all_advisors'), [userFirstActivePromotion, userFirstActivePromotionState]);\n\n useEffect(() => {\n if (shouldUpdatePageWithAdvisors) {\n setUserFirstActivePromotionState(prevState => {\n if (compareObjects(userFirstActivePromotion, prevState)) return prevState;\n return {\n ...prevState,\n ...userFirstActivePromotion\n };\n });\n history(`${ location.pathname }${ location.search }`, {\n state: {\n ...location.state, needReloadHomePage: true, needReloadSearchResults: true, needReloadAdvisorPage: true\n },\n replace: true\n });\n }\n }, [shouldUpdatePageWithAdvisors]);\n\n const addFacebookPixelNoscript = () => {\n if (!document.getElementById('facebook_pixel_noscript')) {\n document.body.appendChild(facebookPixelNoscript());\n }\n };\n\n const addScriptsToBody = () => {\n addFacebookPixelNoscript();\n };\n\n const addScripts = () => (\n <>\n <Helmet>\n {facebookPixelScript()}\n {gogleLoginScript()}\n </Helmet>\n {addScriptsToBody()}\n <div\n id=\"svg-sprite-container\"\n style={ { position: 'absolute', top: '-1500px' } }\n suppressHydrationWarning\n dangerouslySetInnerHTML={ { __html: '<svg />' } }\n />\n </>\n );\n\n return addScripts();\n}\n\nAnalyticsAndCommonLogicComponent.propTypes = {\n configureMP: PropTypes.func.isRequired,\n trackPeoplePropertiesAction: PropTypes.func.isRequired,\n getUser: PropTypes.func.isRequired,\n requestPermission: PropTypes.func.isRequired,\n userId: PropTypes.number,\n uploadLogs: PropTypes.bool,\n logUrl: PropTypes.string,\n logKey: PropTypes.string,\n parseAndUploadLogs: PropTypes.func.isRequired,\n identifyOrAliasUserOnMP: PropTypes.func.isRequired,\n user: PropTypes.object,\n loadHomePage: PropTypes.func.isRequired,\n userPaymentProcessing: PropTypes.bool,\n getMyAccountCredits: PropTypes.func.isRequired,\n appLoading: PropTypes.func.isRequired,\n getAnonymousUser: PropTypes.func.isRequired,\n userAnalytics: PropTypes.object,\n anonymousUser: PropTypes.object,\n userFirstActivePromotion: PropTypes.object,\n initFirebaseDatabase: PropTypes.func.isRequired,\n signOutFromFBDatabase: PropTypes.func.isRequired\n};\n\nAnalyticsAndCommonLogicComponent.defaultProps = {\n userId: null,\n uploadLogs: false,\n logUrl: null,\n logKey: null,\n user: null,\n userPaymentProcessing: null,\n userAnalytics: null,\n anonymousUser: null,\n userFirstActivePromotion: null\n};\n\nexport default AnalyticsAndCommonLogicComponent;\n","import { connect } from 'react-redux';\nimport AnalyticsAndCommonLogicComponent from './common_logic_component';\nimport { parseAndUploadLogs } from '../../actions/aws';\n\nimport { configureMP, trackPeoplePropertiesAction, identifyOrAliasUserOnMP } from '../../actions/mixpanel';\nimport { getMyAccountCredits, getUser } from '../../actions/user';\nimport { requestPermission } from '../../actions/firebase_messaging';\nimport { loadHomePage } from '../../actions/home_page';\nimport { appLoading, getAnonymousUser } from '../../actions/application';\nimport { getUserFirstActivePromotion } from '../../config/util';\nimport { initFirebaseDatabase, signOutFromFBDatabase } from '../../actions/firebase_realtime_database';\n\nconst mapStateToProps = ({ user, application }) => ({\n userId: user && user.user && user.user.id,\n userEmail: user && user.user && user.user.email,\n user: user && user.user,\n uploadLogs: ((user || {}).user || {}).uploadLogs,\n logUrl: ((user || {}).user || {}).logUrl,\n logKey: ((user || {}).user || {}).logKey,\n userPaymentProcessing: ((user || {}).user || {}).paymentProcessing,\n userAnalytics: ((user || {}).user || {}).analytics,\n anonymousUser: application.anonymousUser,\n userFirstActivePromotion: getUserFirstActivePromotion({ user, application })\n});\n\nexport default connect(\n mapStateToProps,\n {\n configureMP,\n trackPeoplePropertiesAction,\n getUser,\n requestPermission,\n parseAndUploadLogs,\n identifyOrAliasUserOnMP,\n loadHomePage,\n getMyAccountCredits,\n appLoading,\n getAnonymousUser,\n initFirebaseDatabase,\n signOutFromFBDatabase\n }\n)(AnalyticsAndCommonLogicComponent);\n","// extracted by mini-css-extract-plugin\nexport default {\"generalPopupContentContainer\":\"generalPopupContentContainer--t1D7F\",\"title\":\"title--Bgdu_\",\"link\":\"link--EPo51\",\"okBtnContainer\":\"okBtnContainer--vgMah\",\"okBtn\":\"okBtn--hygwk\"};","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { linkType } from '../../actions/general_popup';\nimport { downloadAppLink } from '../../../common/config/utils';\nimport classes from './classes.module.scss';\nimport { appGeneralPopupTheme } from '../../../common/config/const';\nimport AppGeneralPopup from '../../../common/app_general_popup';\n\nfunction GeneralPopup({\n t, show, title, dissmissPopup, link\n}) {\n const onClicked = useCallback(() => {\n dissmissPopup();\n }, []);\n\n const appLinkAFChanel = () => {\n switch (link) {\n case linkType.videoNotSupported:\n return 'video_button';\n case linkType.voiceNotSupported:\n return 'voice_button';\n case linkType.notificationNotSupported:\n return 'no_notification_support';\n default:\n return null;\n }\n };\n const appLink = (\n <a href={ downloadAppLink(appLinkAFChanel()) } target=\"_blank\" rel=\"noopener noreferrer\" className={ classes.link }>\n { t('app_general.download_link') }\n </a>\n );\n\n const renderLink = () => {\n if (!link) return null;\n switch (link) {\n case linkType.videoNotSupported:\n case linkType.voiceNotSupported:\n return (\n <div>\n { t('general.this_feature_is_not_supported_yet') }\n { appLink }\n { `for ${ link === linkType.videoNotSupported ? 'video' : 'voice' } call.`}\n </div>\n );\n case linkType.notificationNotSupported:\n return (\n <div>\n { t('general.this_feature_is_not_supported_in_this_browser') }\n { appLink }\n </div>\n );\n default:\n return null;\n }\n };\n\n const renderGeneralPopupContent = () => (\n <div className={ classes.generalPopupContentContainer }>\n <div className={ classes.title }>\n { title }\n { renderLink() }\n </div>\n <div className={ classes.okBtnContainer }>\n <button type=\"button\" className={ classes.okBtn } onClick={ onClicked } key=\"ok_button\">\n {t('general.ok')}\n </button>\n </div>\n </div>\n );\n\n const renderGeneralPopup = () => (\n <AppGeneralPopup\n visible={ show }\n theme={ appGeneralPopupTheme.CENTERED }\n closable={ onClicked }\n >\n { renderGeneralPopupContent() }\n </AppGeneralPopup>\n );\n\n return renderGeneralPopup();\n}\n\nGeneralPopup.propTypes = {\n t: PropTypes.func.isRequired,\n show: PropTypes.bool,\n dissmissPopup: PropTypes.func.isRequired,\n title: PropTypes.string,\n link: PropTypes.string\n};\n\nGeneralPopup.defaultProps = {\n show: false,\n title: '',\n link: null\n};\n\nexport default GeneralPopup;\n","import { connect } from 'react-redux';\nimport GeneralPopup from './general_popup';\nimport { dissmissPopup } from '../../actions/general_popup';\nimport withPGTranslation from '../../config/withPGTranslation';\n\nconst mapStateToProps = ({ generalPopup }) => generalPopup;\n\nexport default connect(\n mapStateToProps,\n { dissmissPopup }\n)(withPGTranslation(GeneralPopup));\n","import CookiesPopover from './cookies_popover';\n\nexport default CookiesPopover;\n","// extracted by mini-css-extract-plugin\nexport default {\"inputContent\":\"inputContent--ql2g8\",\"submitButton\":\"submitButton--UZni0\",\"text\":\"text--F2sGA\",\"modalFooter\":\"modalFooter--QE97F\",\"promoCodeModalContainer\":\"promoCodeModalContainer--Iqp6Y\",\"promoCodeModalHeader\":\"promoCodeModalHeader--e5xoC\",\"promoCodeModalBody\":\"promoCodeModalBody--eyVfs\",\"promoCodeModalButtonContainer\":\"promoCodeModalButtonContainer--SY6Ay\",\"promoCodeModalButton\":\"promoCodeModalButton--_Lput\",\"animation-bzdot9\":\"animation-bzdot9--d1d6r\"};","import React, { useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport { appGeneralPopupTheme } from '../../../common/config/const';\nimport { trackPageVisit } from '../../actions/analytics';\n\nconst onCodeSent = (code, applyCode, onOkClickSignUpPromoReadAction) => {\n if (code && code.length !== 0) {\n applyCode(code, 'signup');\n } else {\n onOkClickSignUpPromoReadAction();\n }\n};\n\nconst onShowModal = (modalText) => {\n if (modalText) return true;\n return false;\n};\n\nconst renderModalButtons = (success, onOkClickSignUpPromoReadAction, clearShowModal, t) => {\n if (!success) {\n return (\n <div className={ classes.promoCodeModalButtonContainer }>\n <button type=\"button\" value=\"Promo Code\" className={ classes.promoCodeModalButton } onClick={ onOkClickSignUpPromoReadAction }>\n <b>{ t('promoCode.continue_without_promo') }</b>\n </button>\n <button type=\"button\" value=\"Promo Code\" className={ classes.promoCodeModalButton } onClick={ clearShowModal }>\n <b>{ t('promoCode.reenter_promo') }</b>\n </button>\n </div>\n );\n }\n return (\n <div className={ classes.promoCodeModalButtonContainer }>\n <button type=\"button\" value=\"Promo Code\" className={ classes.promoCodeModalButton } onClick={ clearShowModal }>\n <b>{ t('promoCode.ok') }</b>\n </button>\n </div>\n );\n};\n\nfunction PromoCodeSignUp({\n loading, applyCode, clearModalText, modalText, onOkClickSignUpPromoRead, success\n}) {\n const { t } = useTranslation();\n const codeInput = useRef();\n\n useEffect(() => {\n trackPageVisit('promo code sign up complete', true);\n }, []);\n\n const clearShowModal = () => {\n if (success) onOkClickSignUpPromoRead();\n clearModalText();\n };\n\n const renderPromoText = () => (\n <div className={ classes.text }>\n <br />\n <b>{ t('promoCode.sign_up_complete') }</b>\n <br />\n <br />\n { t('promoCode.if_you_have_a_promo_code') }\n <br />\n { t('promoCode.please_enter_it_below') }\n </div>\n );\n\n const onOkClickSignUpPromoReadAction = () => {\n onOkClickSignUpPromoRead();\n clearModalText();\n };\n\n const codeSent = () => {\n const code = codeInput.current.value;\n onCodeSent(code, applyCode, onOkClickSignUpPromoReadAction);\n };\n\n const handleKeyPress = (e) => {\n if (e.key === 'Enter') {\n codeSent();\n }\n };\n\n const showModal = () => onShowModal(modalText);\n\n const renderModalContent = () => (\n <div className={ classes.promoCodeModalContainer }>\n <div className={ classes.promoCodeModalHeader }>\n <b>{ t('app_name_title') }</b>\n </div>\n <div className={ classes.promoCodeModalBody }>\n { modalText }\n </div>\n <div className={ classes.modalFooter }>\n { renderModalButtons(success, onOkClickSignUpPromoReadAction, clearShowModal, t) }\n </div>\n </div>\n );\n\n return (\n <div>\n { renderPromoText() }\n <div>\n <input\n placeholder = { t('promoCode.enter_code_optional') }\n ref={ codeInput }\n className = { classes.inputContent }\n onKeyDown={ handleKeyPress }\n defaultValue={ window.attribution.promo }\n />\n </div>\n <div>\n <button type=\"button\" value=\"Promo Code\" disabled={ loading } onClick={ codeSent } className={ classes.submitButton }>\n { t('promoCode.continue') }\n </button>\n </div>\n <AppGeneralPopup visible={ showModal() } theme={ appGeneralPopupTheme.CENTERED }>\n { renderModalContent()}\n </AppGeneralPopup>\n </div>\n );\n}\n\nPromoCodeSignUp.propTypes = {\n promoCode: PropTypes.object,\n loading: PropTypes.bool.isRequired,\n applyCode: PropTypes.func.isRequired,\n clearModalText: PropTypes.func.isRequired,\n modalText: PropTypes.string,\n t: PropTypes.func.isRequired,\n onOkClickSignUpPromoRead: PropTypes.func,\n success: PropTypes.bool.isRequired\n};\n\nPromoCodeSignUp.defaultProps = {\n promoCode: null,\n modalText: null,\n onOkClickSignUpPromoRead: null\n};\n\nexport default PromoCodeSignUp;\n","import { connect } from 'react-redux';\nimport PromoCodeSignUp from './promo_code_sign_up';\nimport { applyCode, clearModalText } from '../../actions/promo_code';\nimport withPGTranslation from '../../config/withPGTranslation';\n\nconst mapStateProps = ({ promoCode }) => promoCode;\n\nexport default connect(mapStateProps, { applyCode, clearModalText })(withPGTranslation(PromoCodeSignUp));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport FacebookLogin from 'react-facebook-login/dist/facebook-login-render-props';\nimport classnames from 'classnames';\nimport classes from '../classes.module.scss';\nimport env from '../../../config/variables';\n\nconst { FACEBOOK_ID, FACEBOOK_REDIRECT, FACEBOOK_VERSION } = env;\n\nconst fbLogo = require('../img/fb_login.svg');\n\nfunction FacebookBtn({ facebookCallback }) {\n const renderFBBtn = renderProps => {\n const {\n onClick, isDisabled, isProcessing, isSdkLoaded\n } = renderProps;\n const disabled = isDisabled || !isSdkLoaded;\n return (\n <button\n type=\"button\"\n className={ classnames(\n classes.fbButton,\n isProcessing ? classes.fbProcessing : null,\n disabled ? classes.socialDisabled : null\n ) }\n onClick={ onClick }\n >\n <img className={ classes.socialImg } src={ fbLogo } alt=\"\" width={ 21 } />\n Facebook\n <div />\n </button>\n );\n };\n\n return (\n <FacebookLogin\n appId={ FACEBOOK_ID }\n fields=\"email,picture\"\n callback={ facebookCallback }\n cookie\n xfbml\n version={ FACEBOOK_VERSION }\n disableMobileRedirect\n redirectUri={ FACEBOOK_REDIRECT }\n render={ renderFBBtn }\n />\n );\n}\n\nFacebookBtn.propTypes = {\n facebookCallback: PropTypes.func.isRequired\n};\n\nFacebookBtn.defaultProps = {\n};\n\nexport default FacebookBtn;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { browserName } from 'react-device-detect';\nimport withPGTranslation from '../../../config/withPGTranslation';\nimport FacebookBtn from './facebook_btn';\nimport GoogleLoginBtn from './google_btn';\nimport classes from '../classes.module.scss';\nimport { log, LOG_LEVELS } from '../../../../common/config/app_logger';\nimport GDPRConsernPopup from '../gdpr_consern_popup';\nimport { GDPRConsernPopupThemes } from '../../../config/themes';\n\nfunction Social({\n facebookCallback, googleCallback, t, error,\n gdprSwitcherValueChanged, shouldShowGDPRConsent\n}) {\n const onSocialPpTofModalCancelClick = () => {\n shouldShowGDPRConsent({ [GDPRConsernPopupThemes.social]: false });\n gdprSwitcherValueChanged(false);\n };\n\n const responseFacebook = (responce) => {\n log(LOG_LEVELS.INFO, 'Register', 'on Facebook response');\n const { accessToken } = responce;\n if (!accessToken) {\n log(LOG_LEVELS.ERROR, 'Register', `on Facebook missingToken ${ responce }`);\n onSocialPpTofModalCancelClick();\n return;\n }\n shouldShowGDPRConsent({ [GDPRConsernPopupThemes.social]: false });\n facebookCallback(accessToken);\n };\n\n const responseGoogle = credentials => {\n log(LOG_LEVELS.INFO, 'Register', 'on Google response');\n if (!credentials) {\n log(LOG_LEVELS.ERROR, 'Register', `on Google missingToken ${ credentials }`);\n onSocialPpTofModalCancelClick();\n return;\n }\n shouldShowGDPRConsent({ [GDPRConsernPopupThemes.social]: false });\n googleCallback(credentials);\n };\n\n useEffect(() => {\n if (error) onSocialPpTofModalCancelClick();\n }, [error]);\n\n const renderSocialLeftBtnContainer = () => (\n <div className={ classes.socialLeftBtnContainer }>\n <FacebookBtn\n facebookCallback={ responseFacebook }\n />\n </div>\n );\n\n const renderSocialRightBtnContainer = () => {\n if (browserName.toLowerCase() === 'facebook') return null;\n return (\n <div className={ classes.socialRightBtnContainer }>\n <GoogleLoginBtn\n googleCallback={ responseGoogle }\n />\n </div>\n );\n };\n\n const render = () => (\n <div style={ { marginTop: '24px' } }>\n <div>\n <span className={ classes.connectTitle }>{ t('connect_with') }</span>\n </div>\n <div className={ classes.sicialBtnContainer }>\n { renderSocialLeftBtnContainer() }\n { renderSocialRightBtnContainer() }\n </div>\n <GDPRConsernPopup theme={ GDPRConsernPopupThemes.social } />\n </div>\n );\n\n return render();\n}\n\nSocial.propTypes = {\n facebookCallback: PropTypes.func.isRequired,\n googleCallback: PropTypes.func.isRequired,\n t: PropTypes.func.isRequired,\n inEu: PropTypes.bool.isRequired,\n signUpSwitcherChecked: PropTypes.bool.isRequired,\n clearError: PropTypes.func.isRequired,\n error: PropTypes.object,\n shouldShowGDPRConsent: PropTypes.func.isRequired\n};\n\nSocial.defaultProps = {\n error: null\n};\n\nexport default withPGTranslation(Social);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport classes from '../classes.module.scss';\nimport withPGTranslation from '../../../config/withPGTranslation';\nimport Const from '../../../config/const';\n\nexport const LOGIN_EMAIL = 0;\nexport const LOGIN_PASSWORD = 1;\nexport const SIGNUP_EMAIL = 2;\nexport const SIGNUP_RETYPE_EMAIL = 3;\nexport const SIGNUP_PASSWORD = 4;\n\nfunction Input({\n onChange, onKeyDown, inputType, value, disabled, error, t, id, theme\n}) {\n const placeholder = typer => {\n if (theme === Const.authScreens.signUpAffiliatePromo) return null;\n switch (typer) {\n case SIGNUP_EMAIL:\n case LOGIN_EMAIL:\n return t('email');\n case SIGNUP_PASSWORD:\n case LOGIN_PASSWORD:\n return t('password');\n case SIGNUP_RETYPE_EMAIL:\n return t('retype_email');\n default:\n return '';\n }\n };\n\n const isPasswordField = inputType === LOGIN_PASSWORD || inputType === SIGNUP_PASSWORD;\n return (\n <div>\n <div>\n <input\n id={ id }\n placeholder={ placeholder(inputType) }\n className={ classnames(classes.input, error ? [classes.inputError, classes[`input${ theme }`]] : classes[`input${ theme }`]) }\n onChange={ onChange }\n onKeyDown={ onKeyDown }\n value={ value }\n disabled={ disabled }\n type={ isPasswordField ? 'password' : 'text' }\n />\n </div>\n {error ? <div className={ classes.error }>{error}</div> : null}\n </div>\n );\n}\n\nInput.propTypes = {\n inputType: PropTypes.oneOf([\n LOGIN_EMAIL,\n LOGIN_PASSWORD,\n SIGNUP_EMAIL,\n SIGNUP_RETYPE_EMAIL,\n SIGNUP_PASSWORD\n ]).isRequired,\n onChange: PropTypes.func.isRequired,\n onKeyDown: PropTypes.func,\n value: PropTypes.string.isRequired,\n disabled: PropTypes.bool.isRequired,\n error: PropTypes.string,\n id: PropTypes.string,\n t: PropTypes.func.isRequired,\n theme: PropTypes.string\n};\n\nInput.defaultProps = {\n error: null,\n id: null,\n onKeyDown: null,\n theme: null\n};\n\nexport default withPGTranslation(Input);\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container--EoGXH\",\"actionButton\":\"actionButton--PRul2\",\"disableActionBtn\":\"disableActionBtn--hSFfI\",\"navigationButton\":\"navigationButton--gMkY_\",\"error\":\"error--hZ4_S\",\"text\":\"text--jY87d\",\"arrow\":\"arrow--q18Av\",\"arrowDiv\":\"arrowDiv--HayPP\",\"forgotModalTitle\":\"forgotModalTitle--PTEJP\",\"forgotModalContentContainer\":\"forgotModalContentContainer--s9KCq\",\"modalContentOkBtnContainer\":\"modalContentOkBtnContainer--jgTIz\",\"modalContentOkBtn\":\"modalContentOkBtn--lADey\",\"animation-bzdot9\":\"animation-bzdot9--QALx8\"};","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { emailIsValid } from '../../../common/config/utils';\nimport Input, {\n LOGIN_EMAIL\n} from '../registration/inner_components/input';\nimport classes from './classes.module.scss';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport { trackPageVisit } from '../../actions/analytics';\n\nclass ForgotPassword extends PureComponent {\n static propTypes = {\n loading: PropTypes.bool.isRequired,\n error: PropTypes.string.isRequired,\n success: PropTypes.bool.isRequired,\n forgot: PropTypes.func.isRequired,\n passwordForgotClear: PropTypes.func.isRequired,\n clearError: PropTypes.func.isRequired,\n t: PropTypes.func.isRequired\n };\n\n state = {\n email: '',\n showForgotModal: false\n };\n\n componentDidMount() {\n trackPageVisit('forgot password');\n }\n\n componentDidUpdate() {\n const { success, error } = this.props;\n if (success || error) {\n this.showForgotPasswordModal();\n }\n }\n\n onFieldChanged = e => {\n this.setState({ [e.target.id]: e.target.value });\n };\n\n onForgotPasswordClicked = () => {\n const { forgot } = this.props;\n const { email } = this.state;\n forgot(email);\n };\n\n showForgotPasswordModal = () => {\n this.setState({ showForgotModal: true });\n };\n\n clearForgotPassword = () => {\n const { passwordForgotClear } = this.props;\n this.setState({ showForgotModal: false });\n passwordForgotClear();\n };\n\n handleKeyPress = (e) => {\n const { email } = this.state;\n if (e.key === 'Enter' && emailIsValid(email)) {\n this.onForgotPasswordClicked();\n }\n };\n\n renderForgotModalTitle = () => {\n const { t } = this.props;\n return <div className={ classes.forgotModalTitle }>{ t('app_name_title') }</div>;\n };\n\n renderForgotModalContent() {\n const { t } = this.props;\n return (\n <div className={ classes.forgotModalContentContainer }>\n <div>\n {t('forgot_password_modal_text')}\n </div>\n <div className={ classes.modalContentOkBtnContainer }>\n <button className={ classes.modalContentOkBtn } type=\"button\" value=\"Promo Code\" onClick={ this.clearForgotPassword }>\n { t('general.ok') }\n </button>\n </div>\n </div>\n );\n }\n\n renderForgotPassword = () => {\n const { email, showForgotModal } = this.state;\n const { loading, t } = this.props;\n const allFieldsValid = emailIsValid(email);\n return (\n <div>\n <div className={ classes.text }>\n <b>\n {t('reset_your_password')}\n <br />\n </b>\n </div>\n <div className={ classes.text }>\n {t('submit_your_email_address')}\n </div>\n <div>\n <Input\n inputType={ LOGIN_EMAIL }\n onChange={ this.onFieldChanged }\n value={ email }\n id=\"email\"\n disabled={ loading }\n onKeyDown={ this.handleKeyPress }\n />\n </div>\n <div>\n <button\n className={ classNames(\n classes.actionButton,\n allFieldsValid && !loading ? null : classes.disableActionBtn\n ) }\n type=\"button\"\n onClick={ this.onForgotPasswordClicked }\n disabled={ !allFieldsValid }\n >\n <b>{t('submit')}</b>\n </button>\n </div>\n <AppGeneralPopup\n visible = { showForgotModal }\n customTopHeader={ this.renderForgotModalTitle() }\n >\n { this.renderForgotModalContent()}\n </AppGeneralPopup>\n </div>\n );\n };\n\n render() {\n return (\n <div className={ classes.container }>\n { this.renderForgotPassword() }\n </div>\n );\n }\n}\n\nexport default ForgotPassword;\n","import { connect } from 'react-redux';\nimport ForgotPassword from './forgot_password';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport {\n forgot, passwordForgotClear, clearError\n} from '../../actions/forgot_password';\n\nconst mapStateToProps = ({ passwordForgot }) => passwordForgot;\n\nexport default connect(\n mapStateToProps,\n {\n forgot,\n passwordForgotClear,\n clearError\n }\n)(withPGTranslation(ForgotPassword));\n","import {\n passwordForgotAPI\n} from '../config/api';\nimport Const from '../config/const';\nimport { toCamelCase } from '../../common/config/utils';\n\nconst passwordForgotLoading = () => ({\n type: Const.passwordForgot.loading\n});\n\nconst passwordForgotSent = () => ({\n type: Const.passwordForgot.success\n});\n\nconst passwordForgotError = (error) => ({\n type: Const.passwordForgot.error,\n error\n});\n\nexport const passwordForgotClear = () => ({\n type: Const.passwordForgot.clear\n});\n\nexport const clearError = () => ({\n type: Const.passwordForgot.clearError\n});\n\nexport const forgot = (email) => (dispatch) => {\n dispatch(passwordForgotLoading());\n passwordForgotAPI(email)\n .then(() => dispatch(passwordForgotSent()))\n .catch((error) => error.json()\n .then((json) => {\n const fJson = toCamelCase(json);\n if (fJson.fullMessages && fJson.fullMessages.length > 0) {\n dispatch(passwordForgotError(fJson.fullMessages[0]));\n }\n }));\n};\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Input, { LOGIN_EMAIL, LOGIN_PASSWORD } from './input';\nimport classes from '../classes.module.scss';\nimport { passwordIsValid } from '../../../config/util';\nimport { emailIsValid } from '../../../../common/config/utils';\nimport Const from '../../../config/const';\nimport { trackPageVisit } from '../../../actions/analytics';\n\nconst allFieldsValid = (email, password) => emailIsValid(email) && passwordIsValid(password, true);\n\nconst onLoginClick = (email, password, checkInputErrors, onLogin) => {\n checkInputErrors();\n if (allFieldsValid(email, password)) {\n onLogin();\n }\n};\n\nfunction LogIn({\n email,\n password,\n loading,\n error,\n t,\n onFieldChanged,\n rememberMe,\n social,\n changeScreen,\n onLogin,\n checkInputErrors,\n clearError\n}) {\n useEffect(() => {\n trackPageVisit('log in with email');\n }, []);\n\n const navigate = (e) => {\n changeScreen(e.target.id);\n clearError();\n };\n\n const onLoginClickAction = () => {\n onLoginClick(email, password, checkInputErrors, onLogin);\n };\n\n const handleKeyPress = (e) => {\n if (e.key === 'Enter') {\n onLoginClick(email, password, checkInputErrors, onLogin);\n }\n };\n\n return (\n <div>\n <div>\n <Input\n inputType={ LOGIN_EMAIL }\n onKeyDown={ handleKeyPress }\n onChange={ onFieldChanged }\n value={ email }\n id=\"email\"\n disabled={ loading }\n error={ error && error.email && error.email[0] }\n />\n </div>\n <div>\n <Input\n inputType={ LOGIN_PASSWORD }\n onKeyDown={ handleKeyPress }\n onChange={ onFieldChanged }\n value={ password }\n id=\"password\"\n disabled={ loading }\n error={ error && error.password && error.password[0] }\n />\n </div>\n { rememberMe }\n <div>\n <button\n className={ classNames(\n classes.actionButton,\n !loading ? null : classes.disableActionBtn\n ) }\n type=\"button\"\n onClick={ onLoginClickAction }\n >\n <b>{t('login')}</b>\n </button>\n </div>\n <div className={ classes.navigationButtonContainer }>\n <button\n id={ Const.authScreens.forgotPassword }\n className={ classes.navigationButton }\n type=\"button\"\n onClick={ navigate }\n >\n {t('forgot_password')}\n </button>\n </div>\n <div>{social}</div>\n <div className={ classes.navigationButtonContainer }>\n <button\n id={ Const.authScreens.signUp }\n className={ classes.navigationButton }\n type=\"button\"\n onClick={ navigate }\n >\n {t('not_have_account')}\n </button>\n </div>\n </div>\n );\n}\n\nLogIn.propTypes = {\n email: PropTypes.string.isRequired,\n password: PropTypes.string.isRequired,\n loading: PropTypes.bool.isRequired,\n error: PropTypes.object,\n t: PropTypes.func.isRequired,\n onFieldChanged: PropTypes.func.isRequired,\n rememberMe: PropTypes.node.isRequired,\n social: PropTypes.node.isRequired,\n changeScreen: PropTypes.func.isRequired,\n onLogin: PropTypes.func.isRequired,\n checkInputErrors: PropTypes.func.isRequired,\n clearError: PropTypes.func.isRequired\n};\n\nLogIn.defaultProps = {\n error: null\n};\n\nexport default LogIn;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Input, { SIGNUP_EMAIL, SIGNUP_PASSWORD, SIGNUP_RETYPE_EMAIL } from './input';\nimport classes from '../classes.module.scss';\nimport { passwordIsValid, formatCurrency } from '../../../config/util';\nimport { emailIsValid } from '../../../../common/config/utils';\nimport Const from '../../../config/const';\nimport GDPRConsernPopup from '../gdpr_consern_popup';\nimport { GDPRConsernPopupThemes } from '../../../config/themes';\nimport { trackPageVisit } from '../../../actions/analytics';\n\nfunction SignUp({\n email, password, confirmEmail, switcherChecked, loading, error, t, social, onRegister,\n onFieldChanged, rememberMe, changeScreen, theme, checkInputErrors, clearError,\n shouldShowGDPRConsent, userMatchUpBonusInfo\n}) {\n useEffect(() => {\n trackPageVisit('sign up with email');\n }, []);\n\n const allFieldsAreValid = emailIsValid(email)\n && passwordIsValid(password, true) && email === confirmEmail;\n\n const showPrivacyModal = () => {\n if (allFieldsAreValid) {\n shouldShowGDPRConsent({ [GDPRConsernPopupThemes.regular]: true });\n }\n };\n\n const onRegisterClicked = () => {\n checkInputErrors();\n if (allFieldsAreValid) {\n onRegister();\n }\n };\n\n const handleKeyPress = (e) => {\n if (e.key === 'Enter') {\n if (!switcherChecked) {\n showPrivacyModal();\n } else {\n onRegisterClicked();\n }\n }\n };\n\n const renderPrivacyText = () => (\n <div className = { classes.confirmPpTofTextContainer }>\n { t('app_ppTof.you_must_be_at_least_18_years') }\n </div>\n );\n\n const renderaAffiliatePromoHeader = () => {\n if (theme !== Const.authScreens.signUpAffiliatePromo) return null;\n return (\n <div className={ classes.affiliatePromoHeaderContainer }>\n <div className={ classes.affiliatePromoHeaderTitle }>\n { t('affitiate_promo_sign_up.claim_your_special_matching_bonus') }\n </div>\n <div className={ classes.affiliatePromoHeaderBottomText }>\n { t('affitiate_promo_sign_up.buy_credit', { amount: formatCurrency(userMatchUpBonusInfo?.requiredPurchasesAmount), extra_amount: formatCurrency(userMatchUpBonusInfo?.bonus) }) }\n </div>\n </div>\n );\n };\n\n const navigateToSignIn = () => {\n changeScreen(Const.authScreens.signIn);\n clearError();\n };\n\n const renderAlreadyHaveAnAccountButton = () => {\n if (theme === Const.authScreens.signUpAffiliatePromo) return null;\n return (\n <div className={ classes.navigationButtonContainer }>\n <button className={ classes.navigationButton } type=\"button\" onClick={ navigateToSignIn }>\n <b>{t('already_have')}</b>\n </button>\n </div>\n );\n };\n\n const renderSignUpAffiliatePromoLabel = (text) => (\n theme === Const.authScreens.signUpAffiliatePromo\n ? (\n <div className={ classes.signUpAffiliatePromoLabel }>\n { text }\n </div>\n ) : null\n );\n\n return (\n <div>\n { renderaAffiliatePromoHeader() }\n {social}\n <div className={ classes.connectTitle }>\n { theme === Const.authScreens.signUpAffiliatePromo\n ? (\n <div className={ classes.signUpAffiliatePromoLabel }>\n { t('affitiate_promo_sign_up.or') }\n </div>\n ) : (\n <div style={ { paddingTop: '24px' } }>\n { t('or_create_account') }\n </div>\n )}\n </div>\n <div>\n { renderSignUpAffiliatePromoLabel(t('email')) }\n <Input\n inputType={ SIGNUP_EMAIL }\n onKeyDown={ handleKeyPress }\n onChange={ onFieldChanged }\n value={ email }\n id=\"email\"\n disabled={ loading }\n error={ error && error.email && error.email[0] }\n theme={ theme }\n />\n </div>\n <div>\n { renderSignUpAffiliatePromoLabel(t('retype_email')) }\n <Input\n inputType={ SIGNUP_RETYPE_EMAIL }\n onKeyDown={ handleKeyPress }\n onChange={ onFieldChanged }\n value={ confirmEmail }\n id=\"confirmEmail\"\n disabled={ loading }\n error={ error && error.confirmEmail && error.confirmEmail[0] }\n theme={ theme }\n />\n </div>\n <div>\n { renderSignUpAffiliatePromoLabel(t('password')) }\n <Input\n inputType={ SIGNUP_PASSWORD }\n onKeyDown={ handleKeyPress }\n onChange={ onFieldChanged }\n value={ password }\n id=\"password\"\n disabled={ loading }\n error={ error && error.password && error.password[0] }\n theme={ theme }\n />\n </div>\n {rememberMe}\n <div>\n <button\n className={ classNames(\n classes.actionButton,\n theme === Const.authScreens.signUpAffiliatePromo\n ? classes.signUpAffiliatePromoactionButton : null\n ) }\n type=\"button\"\n onClick={ !switcherChecked ? showPrivacyModal : onRegisterClicked }\n >\n <b>{theme === Const.authScreens.signUpAffiliatePromo ? t('affitiate_promo_sign_up.sign_up') : t('create_account')}</b>\n </button>\n </div>\n { renderPrivacyText() }\n { renderAlreadyHaveAnAccountButton() }\n <GDPRConsernPopup onRegisterClicked={ onRegisterClicked } theme={ GDPRConsernPopupThemes.regular } />\n </div>\n );\n}\n\nSignUp.propTypes = {\n email: PropTypes.string.isRequired,\n password: PropTypes.string.isRequired,\n confirmEmail: PropTypes.string.isRequired,\n switcherChecked: PropTypes.bool.isRequired,\n loading: PropTypes.bool.isRequired,\n error: PropTypes.object,\n t: PropTypes.func.isRequired,\n social: PropTypes.node.isRequired,\n onRegister: PropTypes.func.isRequired,\n onFieldChanged: PropTypes.func.isRequired,\n rememberMe: PropTypes.node.isRequired,\n changeScreen: PropTypes.func.isRequired,\n theme: PropTypes.string,\n checkInputErrors: PropTypes.func.isRequired,\n clearError: PropTypes.func.isRequired,\n shouldShowGDPRConsent: PropTypes.func.isRequired,\n userMatchUpBonusInfo: PropTypes.object\n};\n\nSignUp.defaultProps = {\n error: null,\n theme: Const.authScreens.signUp,\n userMatchUpBonusInfo: null\n};\nexport default SignUp;\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { isMobile } from 'react-device-detect';\nimport env from '../../config/variables';\nimport {\n convertErrorArrayToString, passwordIsValid\n} from '../../config/util';\nimport PromoCodeSignUp from '../promo_code_sign_up';\nimport Social from './inner_components/social';\nimport classes from './classes.module.scss';\nimport { log, LOG_LEVELS } from '../../../common/config/app_logger';\nimport Const from '../../config/const';\nimport ForgotPassword from '../forgot_password';\nimport LogIn from './inner_components/log_in';\nimport SignUp from './inner_components/sign_up';\nimport { appRoutes, applicationRoutes } from '../../config/app_routes';\nimport {\n hideBodyScroll, unlockBodyScroll, emailIsValid, withCaptcha\n} from '../../../common/config/utils';\nimport { dissmissPopup } from '../../actions/general_popup';\nimport Spiner from '../../../common/helpers/spiner';\nimport Alert from '../../../common/helpers/alert';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport { appGeneralPopupTheme } from '../../../common/config/const';\nimport { appLogo } from '../../logo/logo';\nimport { getImageByEnvironment } from '../../project_items/image_renderer/image_renderer';\nimport { SvgIcon } from '../../../common/sprites';\n\nconst { shared } = window;\n\nconst { IN_EU, MATCH_UP_BONUS_INFO } = env;\n\nconst isAffiliatePromo = ({ userMatchUpBonusInfo, userShowMatchUpBonusInfo }) => {\n const creditMatchingInfo = userMatchUpBonusInfo || MATCH_UP_BONUS_INFO;\n return !!(creditMatchingInfo\n && Object.keys(creditMatchingInfo).length !== 0\n && (userShowMatchUpBonusInfo === null || userShowMatchUpBonusInfo));\n};\n\nclass Registration extends PureComponent {\n static propTypes = {\n loading: PropTypes.bool.isRequired,\n error: PropTypes.object,\n logIn: PropTypes.func.isRequired,\n register: PropTypes.func.isRequired,\n clearError: PropTypes.func.isRequired,\n authSocial: PropTypes.func.isRequired,\n authPendingAction: PropTypes.func,\n authPendingCloseAction: PropTypes.func,\n t: PropTypes.func.isRequired,\n visible: PropTypes.bool,\n displayRegister: PropTypes.func.isRequired,\n signUpFlow: PropTypes.string,\n currentScreen: PropTypes.string.isRequired,\n screenStack: PropTypes.array.isRequired,\n changeScreen: PropTypes.func.isRequired,\n navigationPop: PropTypes.func.isRequired,\n authComplete: PropTypes.bool,\n loadHomePage: PropTypes.func.isRequired,\n clearAffiliatePromoPopup: PropTypes.func.isRequired,\n authClearPendingAction: PropTypes.func.isRequired,\n authErrorActionCreator: PropTypes.func.isRequired,\n gdprSwitcherValueChanged: PropTypes.func.isRequired,\n consentedToGDPR: PropTypes.bool,\n shouldShowGDPRConsent: PropTypes.func.isRequired,\n userMatchUpBonusInfo: PropTypes.object,\n userShowMatchUpBonusInfo: PropTypes.bool,\n updateCurrentScreen: PropTypes.func.isRequired,\n router: PropTypes.object.isRequired,\n currentPath: PropTypes.object.isRequired\n };\n\n static defaultProps = {\n error: null,\n authPendingAction: null,\n authPendingCloseAction: null,\n visible: false,\n signUpFlow: 'menu',\n authComplete: false,\n consentedToGDPR: false,\n userMatchUpBonusInfo: null,\n userShowMatchUpBonusInfo: null\n };\n\n state = {\n email: '',\n password: '',\n confirmEmail: '',\n rememberMe: false\n };\n\n componentDidUpdate(prevProps) {\n const {\n authComplete,\n authPendingAction,\n visible,\n currentScreen,\n userMatchUpBonusInfo,\n userShowMatchUpBonusInfo,\n updateCurrentScreen\n } = this.props;\n\n if (currentScreen === Const.authScreens.signUp && isAffiliatePromo({ userMatchUpBonusInfo, userShowMatchUpBonusInfo })) {\n updateCurrentScreen(Const.authScreens.signUpAffiliatePromo);\n }\n\n if (visible && !prevProps.visible) {\n hideBodyScroll();\n }\n\n if (!visible && prevProps.visible) {\n unlockBodyScroll();\n }\n\n if (authComplete && !prevProps.authComplete) {\n if (authPendingAction) {\n authPendingAction();\n return;\n }\n this.redirectToPsychics(true);\n }\n }\n\n checkInputErrors = () => {\n const { email, confirmEmail, password } = this.state;\n const { authErrorActionCreator, t, currentScreen } = this.props;\n if (!passwordIsValid(password, true)) {\n authErrorActionCreator({ password: [t('error.registration_please_enter_your_password')] });\n }\n if (\n (currentScreen === Const.authScreens.signUp\n || currentScreen === Const.authScreens.signUpAffiliatePromo)\n && email !== confirmEmail) {\n authErrorActionCreator({ email: [t('error.registration_email_not_much')] });\n }\n if (!emailIsValid(email)) {\n authErrorActionCreator({ email: [t('error.registration_please_enter_a_valid_email_address')] });\n }\n };\n\n onFieldChanged = e => {\n const { error, clearError } = this.props;\n if (error) clearError();\n this.setState({ [e.target.id]: e.target.value });\n };\n\n onCancelClicked = () => {\n const {\n currentScreen, screenStack, navigationPop, authClearPendingAction,\n authPendingCloseAction, clearError\n } = this.props;\n\n if (currentScreen === Const.authScreens.signUpAffiliatePromo) {\n authClearPendingAction();\n }\n\n if (screenStack.length <= 0) {\n dissmissPopup();\n authClearPendingAction();\n if (authPendingCloseAction) {\n authPendingCloseAction();\n }\n }\n\n if (screenStack.length >= 1) {\n navigationPop();\n clearError();\n return;\n }\n\n this.redirectToPsychics();\n clearError();\n };\n\n redirectToPsychics = (authCompleteSusses) => {\n const {\n loadHomePage,\n displayRegister,\n router: { navigate },\n currentPath: { routeKey }\n } = this.props;\n\n displayRegister({ shouldDisplay: false });\n\n switch (true) {\n case routeKey === appRoutes.home:\n loadHomePage(true);\n break;\n case [appRoutes.signin, appRoutes.register].includes(routeKey):\n navigate(appRoutes.home, { options: { replace: true } });\n break;\n case applicationRoutes[routeKey]?.isProtected && !authCompleteSusses:\n navigate(appRoutes.psychics, { options: { replace: true } });\n break;\n default: break;\n }\n };\n\n onLoginClicked = () => {\n log(LOG_LEVELS.INFO, 'Register', 'on login');\n const { logIn, signUpFlow } = this.props;\n const { email, password, rememberMe } = this.state;\n withCaptcha('login', (token) => logIn(email, password, rememberMe, signUpFlow, token));\n };\n\n onRegisterClicked = () => {\n log(LOG_LEVELS.INFO, 'Register', 'on register');\n const { register, signUpFlow } = this.props;\n const { email, password, rememberMe } = this.state;\n withCaptcha('login', (token) => register(email, password, rememberMe, signUpFlow, token));\n };\n\n onOkClickSignUpPromoRead = () => {\n const { displayRegister } = this.props;\n displayRegister({ shouldDisplay: false });\n };\n\n renderSignUpPromoRead = () => (\n <PromoCodeSignUp\n onOkClickSignUpPromoRead={ this.onOkClickSignUpPromoRead }\n />\n );\n\n renderGeneralError = () => {\n const { error, clearError } = this.props;\n\n if (error && (error.hasOwnProperty('email') || error.hasOwnProperty('password'))) return null;\n\n const errorString = error && convertErrorArrayToString(\n Object.keys(error).map((key) => error[key])\n );\n log(LOG_LEVELS.ERROR, 'Register', `on error: ${ errorString }`);\n return (\n <Alert\n errorString={ errorString }\n onClose={ clearError }\n />\n );\n };\n\n navigateToSignIn = () => {\n const { changeScreen } = this.props;\n changeScreen(Const.authScreens.signIn);\n this.screenChanged();\n };\n\n navigateToSignUp = () => {\n const { changeScreen } = this.props;\n changeScreen(Const.authScreens.signUp);\n this.screenChanged();\n };\n\n navigateToForgotPassword = () => {\n const { changeScreen } = this.props;\n changeScreen(Const.authScreens.forgotPassword);\n };\n\n screenChanged = () => {\n const { clearError } = this.props;\n clearError();\n };\n\n facebookResponse = facebookToken => {\n const { rememberMe } = this.state;\n const { authSocial, signUpFlow } = this.props;\n authSocial({ facebookToken, rememberMe }, signUpFlow);\n };\n\n googleResponse = googleToken => {\n const { rememberMe } = this.state;\n const { authSocial, signUpFlow } = this.props;\n authSocial({ googleToken, rememberMe }, signUpFlow);\n };\n\n renderSocial = () => {\n const {\n clearError, error, consentedToGDPR, shouldShowGDPRConsent,\n gdprSwitcherValueChanged\n } = this.props;\n return (\n <Social\n facebookCallback={ this.facebookResponse }\n googleCallback={ this.googleResponse }\n inEu={ IN_EU }\n signUpSwitcherChecked={ consentedToGDPR }\n clearError={ clearError }\n error={ error }\n gdprSwitcherValueChanged={ gdprSwitcherValueChanged }\n shouldShowGDPRConsent={ shouldShowGDPRConsent }\n />\n );\n };\n\n onRemeberMeCheckedChanged = (e) => {\n this.setState({ rememberMe: e.target.checked });\n };\n\n renderRememberMe = () => {\n const { rememberMe } = this.state;\n const { t, currentScreen } = this.props;\n return (\n <div className={ classes.rememberMeContainer }>\n <input type=\"checkbox\" checked={ rememberMe } onChange={ this.onRemeberMeCheckedChanged } className={ classes.rememberMeCheckboxInput } />\n <span className={ classes[`remeberMeMargin${ currentScreen }`] }>{t('remember_me')}</span>\n </div>\n );\n };\n\n renderContent = () => {\n const {\n currentScreen, loading, error, t, changeScreen, clearError,\n consentedToGDPR, shouldShowGDPRConsent, userMatchUpBonusInfo\n } = this.props;\n const {\n email, password, confirmEmail\n } = this.state;\n switch (currentScreen) {\n case Const.authScreens.signIn:\n return (\n <LogIn\n email={ email }\n password={ password }\n loading={ loading }\n error={ error }\n t={ t }\n onFieldChanged={ this.onFieldChanged }\n rememberMe={ this.renderRememberMe() }\n social={ this.renderSocial() }\n changeScreen={ changeScreen }\n onLogin={ this.onLoginClicked }\n checkInputErrors={ this.checkInputErrors }\n clearError={ clearError }\n />\n );\n case Const.authScreens.signUp:\n case Const.authScreens.signUpAffiliatePromo:\n return (\n <SignUp\n email={ email }\n password={ password }\n confirmEmail={ confirmEmail }\n switcherChecked={ consentedToGDPR }\n shouldShowGDPRConsent={ shouldShowGDPRConsent }\n loading={ loading }\n error={ error }\n t={ t }\n onRegister={ this.onRegisterClicked }\n onFieldChanged={ this.onFieldChanged }\n rememberMe={ this.renderRememberMe() }\n social={ this.renderSocial() }\n changeScreen={ changeScreen }\n checkInputErrors={ this.checkInputErrors }\n clearError={ clearError }\n theme={ currentScreen }\n userMatchUpBonusInfo={ userMatchUpBonusInfo || MATCH_UP_BONUS_INFO }\n />\n );\n case Const.authScreens.promoRead:\n return this.renderSignUpPromoRead();\n case Const.authScreens.forgotPassword:\n return <ForgotPassword />;\n default:\n return null;\n }\n };\n\n renderBackButton = () => {\n const { currentScreen } = this.props;\n if (currentScreen !== Const.authScreens.promoRead) {\n return (\n <div className={ classes.cancelContainer }>\n <button\n type=\"button\"\n onClick={ this.onCancelClicked }\n className={ classes.cancelButton }\n >\n <SvgIcon className={ classes.cancelButtonImg } id=\"back_arrow\" size={ 25 } />\n </button>\n </div>\n );\n }\n return null;\n };\n\n renderTopLogo = () => {\n const { currentScreen } = this.props;\n if (currentScreen !== Const.authScreens.signUpAffiliatePromo) return null;\n return (\n <div\n className={ isMobile ? classes.topLogoContainerMobile : classes.topLogoContainerBrowser }\n >\n <img src={ appLogo() } alt=\"\" className={ classes.topLogoImg } />\n </div>\n );\n };\n\n renderLogo = () => {\n const { currentScreen } = this.props;\n if (currentScreen === Const.authScreens.signUpAffiliatePromo) return null;\n return (\n <div className={ classes.logoContainer }>\n <img src={ this.getLogo() } alt=\"\" className={ classes.logoImg } />\n </div>\n );\n };\n\n renderLoading = () => {\n const { loading } = this.props;\n if (loading) return <Spiner loaderColor={ shared.appColor } />;\n return null;\n };\n\n getLogo = () => {\n const { currentScreen } = this.props;\n return currentScreen === Const.authScreens.promoRead ? getImageByEnvironment('signup_complete_checkmark') : appLogo();\n };\n\n getHeight = () => {\n const { currentScreen } = this.props;\n if (currentScreen === Const.authScreens.signUpAffiliatePromo) return '100%';\n return '';\n };\n\n getBackgroundColor = () => {\n const { currentScreen } = this.props;\n if (currentScreen !== Const.authScreens.signUpAffiliatePromo) return '#FFFFFF';\n return '#1b1945';\n };\n\n render() {\n const { visible } = this.props;\n return (\n <AppGeneralPopup\n visible={ visible }\n logoImg={ this.renderTopLogo() }\n customTopHeader={ this.renderBackButton() }\n theme={ appGeneralPopupTheme.REGISTER }\n >\n <div className={ classes.popover }>\n <div\n className={ isMobile ? classes.mobileContainer : classes.browserContainer }\n style={ { '--backgroundColor': this.getBackgroundColor() } }\n >\n <div className={ classes.contentHolder }>\n <div style={ { zIndex: 9 } }>\n {this.renderLogo()}\n {this.renderContent()}\n </div>\n {this.renderGeneralError()}\n </div>\n {this.renderLoading()}\n </div>\n </div>\n </AppGeneralPopup>\n );\n }\n}\n\nexport default Registration;\n","import { connect } from 'react-redux';\nimport { compose } from 'redux';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport Registration from './registration';\nimport {\n logIn,\n register,\n clearError,\n authSocial,\n displayRegister,\n changeScreen,\n navigationPop,\n authClearPendingAction,\n authErrorActionCreator,\n gdprSwitcherValueChanged,\n shouldShowGDPRConsent,\n updateCurrentScreen\n} from '../../actions/auth';\nimport { loadHomePage } from '../../actions/home_page';\nimport { clearAffiliatePromoPopup } from '../../actions/affiliate_promo_popup';\nimport { getUserMatchUpBonusInfo } from '../../config/util';\nimport { withCurrentPath } from '../routes/hoc/with_current_path';\nimport { withRouter } from '../routes/hoc/with_router';\n\nconst mapStateToProps = ({ auth, user: { user }, application }) => ({\n ...auth,\n userMatchUpBonusInfo: getUserMatchUpBonusInfo({ bonusInfos: user && user.bonusInfos || application && application.anonymousUser && application.anonymousUser.bonusInfos }),\n userShowMatchUpBonusInfo: user && user.showMatchUpBonusInfo\n});\n\nexport default connect(\n mapStateToProps,\n {\n logIn,\n register,\n clearError,\n authSocial,\n displayRegister,\n changeScreen,\n navigationPop,\n loadHomePage,\n clearAffiliatePromoPopup,\n authClearPendingAction,\n authErrorActionCreator,\n gdprSwitcherValueChanged,\n shouldShowGDPRConsent,\n updateCurrentScreen\n }\n)(compose(withPGTranslation, withCurrentPath, withRouter)(Registration));\n","import React from 'react';\nimport { useCurrentPath } from '../hooks/useCurrentPath';\n\nexport const withCurrentPath = (Component) => {\n const Wrapper = (props) => {\n const currentPath = useCurrentPath();\n\n return (\n <Component\n currentPath={ currentPath }\n { ...props }\n />\n );\n };\n\n return Wrapper;\n};\n","import React from 'react';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { useLocalizedNavigate } from '../hooks/useLocalizedNavigate';\n\nexport const withRouter = (Component) => {\n const Wrapper = (props) => {\n const location = useLocation();\n const navigate = useLocalizedNavigate();\n const params = useParams();\n\n return (\n <Component\n router={ { location, navigate, params } }\n { ...props }\n />\n );\n };\n\n return Wrapper;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container--Fmqj8\",\"loadingErrorContainer\":\"loadingErrorContainer--fWV8i\",\"titleContainer\":\"titleContainer--RpRYx\",\"titleText\":\"titleText--Dp41w\",\"contentContainer\":\"contentContainer--AQllp\",\"textAndSwitchContainer\":\"textAndSwitchContainer--AfYgs\",\"textContainer\":\"textContainer--XUHes\",\"switchContainer\":\"switchContainer--jyjrT\",\"btnsContainer\":\"btnsContainer--usOBc\",\"cancelBtn\":\"cancelBtn--G1Mhz\",\"okBtn\":\"okBtn--Ynpsb\",\"animation-bzdot9\":\"animation-bzdot9--pld2R\"};","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport Spiner from '../../../common/helpers/spiner';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport { appGeneralPopupTheme } from '../../../common/config/const';\nimport Switch from '../../../common/helpers/switch';\nimport { trackPageVisit } from '../../actions/analytics';\n\nconst { shared } = window;\n\nconst isMaxSubscriptionsError = (error) => error && error.operationStatus === 'max_subscriptions';\nconst isBecameAvailableError = (error) => error && error.operationStatus === 'became_available';\n\nconst getAdditionParamsParams = (error) => {\n let additionParams = {};\n if (isMaxSubscriptionsError(error)) {\n additionParams = { context: 'force' };\n }\n return additionParams;\n};\n\nfunction NotifyMe({\n advisorId,\n loading,\n t,\n progress,\n error,\n success,\n notifyMeAction,\n clearLocalState,\n displayNotifyMe,\n visible,\n clickSource,\n availabilityNotification\n}) {\n const { title, subtitle, switchedOn } = availabilityNotification || {};\n\n const [notifyMeSwitchValue, setNotifyMeSwitchValue] = useState(false);\n\n useEffect(() => {\n if (switchedOn !== undefined && switchedOn !== notifyMeSwitchValue) {\n setNotifyMeSwitchValue(switchedOn);\n }\n }, [switchedOn]);\n\n useEffect(() => {\n if (success) {\n displayNotifyMe(false);\n }\n }, [success]);\n\n useEffect(() => {\n if (visible) {\n trackPageVisit('get notified popup');\n }\n }, [visible]);\n\n useEffect(\n () => () => {\n clearLocalState();\n },\n []\n );\n\n const renderHeader = () => {\n let titleText = title;\n if (isBecameAvailableError(error)) titleText = t('notifyMe.yay');\n return (\n <div className={ classes.titleContainer }>\n <div className={ classes.titleText }>\n { titleText || t('notifyMe.default_title') }\n </div>\n </div>\n );\n };\n\n const onChangeSwitch = (value) => {\n setNotifyMeSwitchValue(value);\n };\n\n const renderLoading = () => (\n <Spiner\n className={ classes.loadingErrorContainer }\n loaderColor={ shared.appColor }\n />\n );\n\n const onCancelClick = (id) => displayNotifyMe(false, id);\n\n const onOkBtnClick = () => {\n if (notifyMeSwitchValue === switchedOn || (error && !isMaxSubscriptionsError(error))) {\n if (isBecameAvailableError(error)) {\n onCancelClick(advisorId);\n } else {\n onCancelClick();\n }\n return;\n }\n\n const additionParams = getAdditionParamsParams(error);\n\n const notifyMeParams = {\n notifyMeSwitchValue, advisorId, clickSource, additionParams\n };\n notifyMeAction({ notifyMeParams });\n };\n\n const renderText = () => {\n let subtitleText = subtitle;\n if (isMaxSubscriptionsError(error)) subtitleText = t('notifyMe.max_subscriptions');\n if (isBecameAvailableError(error)) subtitleText = t('notifyMe.became_available');\n return (\n <div className={ classes.textContainer }>\n { subtitleText || t('notifyMe.default_sub_title') }\n </div>\n );\n };\n\n const renderSwitch = () => {\n if (isMaxSubscriptionsError(error) || isBecameAvailableError(error)) return null;\n return (\n <div className={ classes.switchContainer }>\n <Switch\n id=\"notifyMeSwitch\"\n checked={ notifyMeSwitchValue }\n onChange= { onChangeSwitch }\n onColor={ shared.appColor }\n />\n </div>\n );\n };\n\n const renderTextAndSwitch = () => (\n <div className={ classes.textAndSwitchContainer }>\n { renderText() }\n { renderSwitch() }\n </div>\n );\n\n const renderCancelBtn = () => {\n if (!isMaxSubscriptionsError(error)) return null;\n return (\n <button type=\"button\" onClick={ onCancelClick } className={ classes.cancelBtn }>\n { t('general.cancel') }\n </button>\n );\n };\n\n const renderOkBtn = () => {\n let okBtnText = t('general.ok');\n if (isMaxSubscriptionsError(error)) okBtnText = t('notifyMe.yes_i_am_sure');\n return (\n <button type=\"button\" onClick={ onOkBtnClick } className={ classes.okBtn }>\n { okBtnText }\n </button>\n );\n };\n\n const renderBtns = () => (\n <div className={ classes.btnsContainer }>\n { renderCancelBtn() }\n { renderOkBtn() }\n </div>\n );\n\n const renderError = () => (\n <div className={ classes.loadingErrorContainer }>\n <div>\n {t('general.error')}\n </div>\n { renderBtns() }\n </div>\n );\n\n const renderContent = () => {\n if (loading || progress) return renderLoading();\n if (error && !isMaxSubscriptionsError(error) && !isBecameAvailableError(error)) return renderError();\n return (\n <div className={ classes.contentContainer }>\n { renderTextAndSwitch() }\n { renderBtns() }\n </div>\n );\n };\n\n const renderNitifyMe = () => (\n <AppGeneralPopup\n visible={ visible }\n theme={ appGeneralPopupTheme.CENTERED }\n >\n <div className={ classes.container }>\n { renderHeader() }\n { renderContent() }\n </div>\n </AppGeneralPopup>\n );\n\n return renderNitifyMe();\n}\n\nNotifyMe.propTypes = {\n t: PropTypes.func.isRequired,\n advisorId: PropTypes.number,\n loading: PropTypes.bool,\n notifyMeAction: PropTypes.func.isRequired,\n clearLocalState: PropTypes.func.isRequired,\n progress: PropTypes.bool.isRequired,\n error: PropTypes.object,\n success: PropTypes.bool.isRequired,\n visible: PropTypes.bool.isRequired,\n availabilityNotification: PropTypes.object\n};\n\nNotifyMe.defaultProps = {\n error: null,\n advisorId: null,\n availabilityNotification: {},\n loading: false\n};\n\nexport default NotifyMe;\n","import { connect } from 'react-redux';\nimport NotifyMe from './notify_me';\nimport withPGTransaltion from '../../config/withPGTranslation';\nimport { notifyMeAction, clearLocalState, displayNotifyMe } from '../../actions/notify_me';\n\nconst mapStateToProps = (\n { advisors, notifyMe }\n) => {\n const advisor = (advisors || {})[parseInt(notifyMe.advisorId, 10)] || {};\n const { availabilityNotification } = advisor;\n\n return {\n // If the state doesn't contain the loading property then it means the advisor should\n // be being downloaded, so the loading property should be set to true, if the state\n // conatins it then we should pass it as the loading prop\n loading: advisors.loading,\n ...notifyMe,\n availabilityNotification\n };\n};\n\nexport default connect(\n mapStateToProps,\n {\n notifyMeAction,\n clearLocalState,\n displayNotifyMe\n }\n)(withPGTransaltion(NotifyMe));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport MessageToAppHandler from '../../../common/message_to_app_handler';\n\nfunction MessageToApp({\n messageToAppData, setMessageToAppData\n}) {\n return (\n <MessageToAppHandler\n messageToAppData={ messageToAppData }\n setMessageToAppData={ setMessageToAppData }\n />\n );\n}\n\nMessageToApp.propTypes = {\n messageToAppData: PropTypes.object.isRequired,\n setMessageToAppData: PropTypes.func.isRequired\n};\n\nMessageToApp.defaultProps = {\n};\n\nexport default MessageToApp;\n","import { connect } from 'react-redux';\nimport MessageToApp from './message_to_app';\nimport { setMessageToAppData } from '../../actions/message_to_app';\n\nconst mapStateToProps = ({ messageToApp }) => messageToApp;\n\nexport default connect(\n mapStateToProps,\n {\n setMessageToAppData\n }\n)(MessageToApp);\n","/* eslint-disable import/no-cycle */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { authPendingAction, displayRegister } from '../../actions/auth';\nimport { useCurrentPath } from './hooks/useCurrentPath';\nimport { useLocalizedNavigate } from './hooks/useLocalizedNavigate';\n\nexport const ProtectedRoute = ({ user, children }) => {\n const navigate = useLocalizedNavigate();\n const currentPath = useCurrentPath();\n\n useEffect(() => {\n if (!window.currentUserId && !user) {\n window.store.dispatch(displayRegister({ shouldDisplay: true }));\n window.store.dispatch(authPendingAction(() => {\n navigate(currentPath.routeKey, { search: currentPath.search, ...currentPath.params });\n navigate(0);\n }));\n }\n }, [user]);\n\n if (!window.currentUserId && !user) return <></>;\n\n return children;\n};\n\nProtectedRoute.propTypes = {\n user: PropTypes.object,\n children: PropTypes.node.isRequired\n};\n\nProtectedRoute.defaultProps = {\n user: null\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container--gWp58\",\"innerContainer\":\"innerContainer--ua_Jh\",\"title\":\"title--ZzzoO\",\"img\":\"img--M7yfB\",\"notFound\":\"notFound--H9Qsh\",\"subtitle\":\"subtitle--zrezO\",\"serviceUnavailableText\":\"serviceUnavailableText--fagTv\",\"serviceUnavailableErrorCode\":\"serviceUnavailableErrorCode--NT08v\",\"link\":\"link--sR0wU\"};","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { matchPath } from 'react-router';\nimport classes from './classes.module.scss';\nimport { appRoutes } from '../../config/app_routes';\nimport { SvgIcon } from '../../../common/sprites';\nimport { useLocalizedNavigate } from '../routes/hooks/useLocalizedNavigate';\n\nconst renderNotFound = (errorCode, notFoundAction, renderServiceUnavailablePage) => {\n if (errorCode === 404) return notFoundAction();\n if (errorCode >= 500) return renderServiceUnavailablePage();\n return null;\n};\n\nfunction NotFound({\n errorCode, t, clearApplicationError, statusText\n}) {\n const history = useLocalizedNavigate();\n const isAdvisorPage = matchPath(`/:lang?${ t(appRoutes.advisor) }`, window.location.pathname);\n\n const onHomePress = () => {\n clearApplicationError();\n history(appRoutes.home, { options: { replace: true } });\n };\n\n useEffect(() => {\n if (isAdvisorPage && errorCode === 404) onHomePress();\n }, [errorCode]);\n\n const renderNotFoundPage = () => (\n <div className={ classes.container }>\n <div className={ classes.innerContainer }>\n <span className={ classes.title }>\n {t('error.oops')}\n </span>\n <SvgIcon\n id=\"not_found\"\n className={ classes.img }\n size={ [400, 180] }\n />\n <span className={ classes.notFound }>\n {t('error.not_found')}\n </span>\n <span className={ classes.subtitle }>\n {t('error.404_info')}\n </span>\n <button\n type=\"button\"\n className={ classes.link }\n onClick={ onHomePress }\n >\n {t('error.home_button')}\n </button>\n </div>\n </div>\n );\n\n const notFoundAction = () => {\n if (isAdvisorPage) return null;\n return renderNotFoundPage();\n };\n\n const renderServiceUnavailablePage = () => (\n <div className={ classes.container }>\n <div className={ classes.innerContainer }>\n <span className={ classes.title }>\n {t('error.oops')}\n </span>\n <span\n className={ classes.serviceUnavailableErrorCode }\n >\n {errorCode}\n </span>\n\n <span className={ classes.serviceUnavailableText }>\n {statusText}\n </span>\n <button\n type=\"button\"\n className={ classes.link }\n onClick={ onHomePress }\n >\n {t('error.home_button')}\n </button>\n </div>\n </div>\n );\n\n return renderNotFound(errorCode, notFoundAction, renderServiceUnavailablePage);\n}\n\nNotFound.propTypes = {\n errorCode: PropTypes.number,\n t: PropTypes.func.isRequired,\n clearApplicationError: PropTypes.func.isRequired,\n statusText: PropTypes.string\n};\n\nNotFound.defaultProps = {\n errorCode: null,\n statusText: null\n};\n\nexport default NotFound;\n","import { connect } from 'react-redux';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport { clearApplicationError } from '../../actions/aplication_error';\nimport NotFound from './not_found';\n\nconst mapStateToProps = ({ applicationError }) => ({\n ...applicationError\n});\n\nexport default connect(mapStateToProps, {\n clearApplicationError\n})(withPGTranslation(NotFound));\n","// extracted by mini-css-extract-plugin\nexport default {\"pushNotificationContentContainer\":\"pushNotificationContentContainer--hexl_\",\"pushNotificationTextContainer\":\"pushNotificationTextContainer--X99mV\",\"pushNotificationTitleContainer\":\"pushNotificationTitleContainer--t6KrM\",\"pushNotificationButtonsContainer\":\"pushNotificationButtonsContainer--q3Oen\",\"pushNotificationCancelBtn\":\"pushNotificationCancelBtn--d4eAx\",\"pushNotificationOkBtn\":\"pushNotificationOkBtn--lKiai\"};","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport { appGeneralPopupTheme, NTYPE } from '../../../common/config/const';\nimport { refreshReducersFromResponse } from '../../config/api_functions';\nimport { appRoutes } from '../../config/app_routes';\nimport { getMyAccountBadgesApi } from '../../config/api';\nimport { useLocalizedNavigate } from '../routes/hooks/useLocalizedNavigate';\nimport { useCurrentPath } from '../routes/hooks/useCurrentPath';\n\nconst renderNotificationTitle = (title) => (title ? (\n <div className={ classes.pushNotificationTitleContainer }>\n { title }\n </div>\n) : null);\n\nfunction PushNotification({\n notification, t, loadHomePage, loadAdvisor, needToHandle, clearPN, userbadgeCounters, advisors\n}) {\n const history = useLocalizedNavigate();\n const currentPath = useCurrentPath();\n\n const [modalVisible, setModalVisible] = useState(false);\n\n const handlePsychicNotification = (onOpen) => {\n const { advisorId, advisorSeoName } = notification;\n if (onOpen) {\n clearPN();\n history(appRoutes.advisor, { params: { slug: advisorSeoName } });\n history(0);\n return;\n }\n\n if (parseInt(currentPath?.params?.slug, 10) === advisorId) {\n loadAdvisor(advisorSeoName);\n clearPN();\n return;\n }\n loadHomePage(true);\n setModalVisible(true);\n };\n\n const updateUserUnreadMessagesCountTotal = () => {\n const updatedUser = { badgeCounters: { ...userbadgeCounters, unreadMessagesCountTotal: userbadgeCounters.unreadMessagesCountTotal + 1 } };\n refreshReducersFromResponse({ user: updatedUser });\n };\n\n const updateUserActivityUnreadMessagesCount = () => {\n const { advisorId } = notification;\n const updatedAdvisor = {\n id: advisorId,\n liveModes: advisors[advisorId].liveModes,\n unreadMessagesCount: advisors[advisorId].unreadMessagesCount + 1\n };\n refreshReducersFromResponse({ advisor: updatedAdvisor });\n };\n\n const handleOrderMessageNotification = (onOpen) => {\n const { senderUserId, ntype, advisorId } = notification;\n getMyAccountBadgesApi({ advisorId }); // Need for update coupon label\n if (onOpen) {\n clearPN();\n history(appRoutes.advisorOrders, { params: { id: senderUserId } });\n history(0);\n return;\n }\n\n if (currentPath?.params?.advisorId === senderUserId) {\n return;\n }\n\n updateUserActivityUnreadMessagesCount();\n updateUserUnreadMessagesCountTotal();\n\n if (currentPath.routeKey === appRoutes.myOrders) {\n return;\n }\n\n if (ntype !== NTYPE.ORDER_MESSAGE) {\n setModalVisible(true);\n }\n };\n\n const handleNotification = (onOpen = true) => {\n const { ntype } = notification;\n switch (ntype) {\n case NTYPE.PSYCHICS: {\n handlePsychicNotification(onOpen);\n break;\n }\n case NTYPE.ORDER_MESSAGE: {\n handleOrderMessageNotification(onOpen);\n break;\n }\n default:\n break;\n }\n };\n\n useEffect(() => {\n if (notification && needToHandle) {\n handleNotification(false);\n }\n }, [notification]);\n\n if (!notification) return null;\n\n const renderContent = () => (\n <div className={ classes.pushNotificationContentContainer }>\n {renderNotificationTitle(notification.title)}\n <div className={ classes.pushNotificationTextContainer }>\n { notification.message || '' }\n </div>\n <div className={ classes.pushNotificationButtonsContainer }>\n <div>\n <button type=\"button\" onClick={ clearPN } className={ classes.pushNotificationCancelBtn }>\n { t('push.cancel') }\n </button>\n </div>\n <div>\n <button type=\"button\" onClick={ handleNotification } className={ classes.pushNotificationOkBtn }>\n { t('push.open') }\n </button>\n </div>\n </div>\n </div>\n );\n\n return (\n <AppGeneralPopup\n visible={ modalVisible && !!notification }\n theme={ appGeneralPopupTheme.CENTERED }\n >\n {renderContent()}\n </AppGeneralPopup>\n );\n}\n\nPushNotification.propTypes = {\n notification: PropTypes.object,\n t: PropTypes.func.isRequired,\n loadHomePage: PropTypes.func.isRequired,\n loadAdvisor: PropTypes.func.isRequired,\n needToHandle: PropTypes.bool.isRequired,\n clearPN: PropTypes.func.isRequired,\n loadOrderDetails:PropTypes.func.isRequired,\n userbadgeCounters: PropTypes.object,\n advisors: PropTypes.object\n};\n\nPushNotification.defaultProps = {\n notification: null,\n userbadgeCounters: null,\n advisors: null\n};\n\nexport default PushNotification;\n","import { connect } from 'react-redux';\nimport PushNotification from './push_notification';\nimport { loadAdvisor } from '../../actions/advisors';\nimport { clearPN } from '../../actions/firebase_messaging';\nimport { loadOrderDetails } from '../../actions/order_details';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport { loadHomePage } from '../../actions/home_page';\n\nconst mapStateToProps = ({\n pushNotification, chat, user:{ user }, advisors\n}) => ({\n ...pushNotification,\n needToHandle: !chat.state,\n userbadgeCounters: user && user.badgeCounters,\n advisors\n});\n\nexport default connect(\n mapStateToProps,\n {\n clearPN,\n loadAdvisor,\n loadOrderDetails,\n loadHomePage\n }\n)(withPGTranslation(PushNotification));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Alert from '../../../common/helpers/alert';\n\nfunction GeneralError({\n clearApplicationError, errorText\n}) {\n if (errorText) {\n return (\n <Alert\n errorString={ errorText }\n onClose={ clearApplicationError }\n />\n );\n }\n return null;\n}\n\nGeneralError.propTypes = {\n errorText: PropTypes.string,\n clearApplicationError: PropTypes.func.isRequired\n};\n\nGeneralError.defaultProps = {\n errorText: null\n};\n\nexport default GeneralError;\n","import { connect } from 'react-redux';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport { clearApplicationError } from '../../actions/aplication_error';\nimport GeneralError from './general_error';\n\nconst mapStateToProps = ({ applicationError }) => ({\n ...applicationError\n});\n\nexport default connect(mapStateToProps, {\n clearApplicationError\n})(withPGTranslation(GeneralError));\n","import React, { useEffect, useRef } from 'react';\nimport { isMobile, isIOS } from 'react-device-detect';\nimport PropTypes from 'prop-types';\nimport Cookies from 'universal-cookie';\nimport env from '../../../config/variables';\nimport 'node_modules/react-smartbanner/dist/main.css';\nimport classes from '../classes.module.scss';\nimport { getDataFromStorage, shouldShowAffiliateBanner } from '../../../config/util';\nimport { fromMobileApp, downloadAppLink } from '../../../../common/config/utils';\nimport { useCurrentPath } from '../../routes/hooks/useCurrentPath';\n\nconst {\n SMART_BANNER_SHOW,\n SMART_BANNER_DAYS_HIDDEN,\n SMART_BANNER_DAYS_REMINDEER,\n PGWEB_HIDE_SMART_BANNER_SECONDS\n} = env;\n\nconst cookies = new Cookies();\n\nconst link = downloadAppLink('smart_banner');\n\nconst androidIcon = require('./img/android_icon.svg');\nconst iosIcon = require('./img/ios_icon.svg');\n\nconst getIconStyles = () => {\n let iconStyle = `${ classes.androidIcon }`;\n let iconImg = `${ androidIcon }`;\n\n if (isIOS) {\n iconStyle = `${ classes.iosIcon }`;\n iconImg = `${ iosIcon }`;\n }\n return {\n iconStyle, iconImg\n };\n};\n\nconst cookieValue = (valueName) => {\n const valueString = document.cookie.split('; ').find(row => row.startsWith(`${ valueName }=`));\n const value = valueString ? valueString.split('=')[1] : null;\n return value;\n};\n\nconst smartBannerDisplayValidation = (hasOrders, promoBannerIsOn, showAffiliatePromoBanner) => (\n (SMART_BANNER_SHOW && !fromMobileApp)\n && hasOrders\n && isMobile\n && !promoBannerIsOn\n && !window.attribution.promo\n && !showAffiliatePromoBanner\n && !cookieValue('cancelSmartBanner')\n && !cookieValue('smartBannerImg')\n);\n\nconst addEventListenerForRef = (smartBannerRef, cancelButtonRef, bannerImgClick, cancelClick) => {\n const smartBanner = smartBannerRef.current;\n const cancelButton = cancelButtonRef.current;\n if (smartBanner && cancelButton) {\n smartBanner.addEventListener('click', bannerImgClick);\n cancelButton.addEventListener('click', cancelClick);\n return () => {\n smartBanner.removeEventListener('click', bannerImgClick);\n cancelButton.removeEventListener('click', cancelClick);\n };\n }\n return undefined;\n};\n\nfunction SmartBanner({\n hasOrders,\n promoBannerIsOn,\n updateSmartBannerVisibility,\n smartBannerVisible,\n trackSmartBannerEvent,\n userMatchUpBonusInfo,\n userShowMatchUpBonusInfo,\n userLoading\n}) {\n const title = 'download the app';\n const { routeKey } = useCurrentPath();\n\n let startDate;\n\n const mpTrackSmartBannerEvent = () => {\n const params = {\n sessionsCount: (parseInt(getDataFromStorage('BROWSER_SESSIONS'), 10) || 0),\n secondsFromSessionBegan: ((new Date() - startDate) / 1000).toFixed(2)\n };\n trackSmartBannerEvent(params);\n };\n\n const cancelClick = (e) => {\n const smartBannerContainer = document.getElementById('bannerContainerID');\n smartBannerContainer.style.display = 'none';\n const date = new Date();\n date.setTime(date.getTime() + (SMART_BANNER_DAYS_HIDDEN * 24 * 60 * 60 * 1000));\n cookies.set('cancelSmartBanner', true, {\n path: '/',\n expires: date\n });\n e.stopPropagation();\n };\n\n const bannerImgClick = () => {\n const smartBannerContainer = document.getElementById('bannerContainerID');\n smartBannerContainer.style.display = 'none';\n mpTrackSmartBannerEvent();\n const date = new Date();\n date.setTime(date.getTime() + (SMART_BANNER_DAYS_REMINDEER * 24 * 60 * 60 * 1000));\n cookies.set('smartBannerImg', true, {\n path: '/',\n expires: date\n });\n window.open(link, '_blank');\n };\n\n const smartBannerRef = useRef();\n const cancelButtonRef = useRef();\n\n useEffect(() => {\n startDate = new Date();\n return addEventListenerForRef(smartBannerRef, cancelButtonRef, bannerImgClick, cancelClick);\n }, [smartBannerRef.current, cancelButtonRef.current]);\n\n setTimeout(() => {\n updateSmartBannerVisibility(routeKey);\n }, PGWEB_HIDE_SMART_BANNER_SECONDS * 1000);\n\n const { MATCH_UP_BONUS_INFO } = env;\n const creditMatchingInfo = userMatchUpBonusInfo || MATCH_UP_BONUS_INFO;\n\n if (!smartBannerVisible || !smartBannerDisplayValidation(hasOrders, promoBannerIsOn, shouldShowAffiliateBanner(creditMatchingInfo, userShowMatchUpBonusInfo, userLoading, routeKey))) return null;\n\n return (\n <div id= \"bannerContainerID\" className = { classes.smartBannerContainer }>\n <div className = { classes.smartBanner } ref= { smartBannerRef }>\n <div className = { classes.cancelBtnContainer } ref= { cancelButtonRef }>\n <div className= { classes.cancelButton } />\n </div>\n <svg id= \"bannerImgID\" display= \"flex\" viewBox=\"-2 0 100 100\" width=\"100\" height=\"100\">\n <defs>\n <path id=\"circle\" d=\"M 53.2,39 m -41 0 2,1 -0,1 a 35,36 2 1,1 56,37 a 32,65 3 1,1 -75,7\" />\n </defs>\n <text className = { classes.smartBannerTitle }>\n <textPath xlinkHref=\"#circle\">\n {title}\n </textPath>\n </text>\n </svg>\n <img className= { getIconStyles().iconStyle } src={ getIconStyles().iconImg } alt=\"\" />\n </div>\n </div>\n );\n}\n\nSmartBanner.propTypes = {\n hasOrders: PropTypes.bool,\n promoBannerIsOn: PropTypes.bool,\n updateSmartBannerVisibility: PropTypes.func.isRequired,\n smartBannerVisible: PropTypes.bool,\n trackSmartBannerEvent: PropTypes.func.isRequired,\n userShowMatchUpBonusInfo: PropTypes.object,\n userMatchUpBonusInfo: PropTypes.object,\n userLoading: PropTypes.bool\n};\nSmartBanner.defaultProps = {\n hasOrders: false,\n promoBannerIsOn: false,\n smartBannerVisible: false,\n userMatchUpBonusInfo: {},\n userShowMatchUpBonusInfo: {},\n userLoading: false\n};\n\nexport default SmartBanner;\n","import { connect } from 'react-redux';\nimport SmartBanner from './smart_banner';\nimport { updateSmartBannerVisibility } from '../../../actions/application';\nimport { trackSmartBannerEvent } from '../../../actions/analytics';\nimport { getUserMatchUpBonusInfo } from '../../../config/util';\n\nconst mapStateToProps = ({\n user: { user }, homePage, application\n}) => ({\n hasOrders: !!((user || {}).numberOfChatOrders || (user || {}).numberOfVcOrders\n || (user || {}).numberOfVoiceCallOrders),\n promoBannerIsOn: !!((homePage.salesBanner || {}).content),\n smartBannerVisible: application.smartBannerVisible,\n userMatchUpBonusInfo: getUserMatchUpBonusInfo({ bonusInfos: user && user.bonusInfos }),\n userShowMatchUpBonusInfo: user && user.showMatchUpBonusInfo,\n userLoading: false\n});\n\nexport default connect(\n mapStateToProps,\n {\n updateSmartBannerVisibility,\n trackSmartBannerEvent\n }\n)(SmartBanner);\n","// extracted by mini-css-extract-plugin\nexport default {\"generalLoadingOverlayContainer\":\"generalLoadingOverlayContainer--oluDG\",\"generalLoadingOverlayLoaderContainer\":\"generalLoadingOverlayLoaderContainer--F5s2k\",\"autoRedemePromoCodeBonusPopupContainer\":\"autoRedemePromoCodeBonusPopupContainer--QQlj6\",\"autoRedemePromoCodeBonusPopupHeader\":\"autoRedemePromoCodeBonusPopupHeader--_Vpx9\",\"autoRedemePromoCodeBonusPopupDescription\":\"autoRedemePromoCodeBonusPopupDescription--Yda02\",\"autoRedemePromoCodeBonusPopupFooter\":\"autoRedemePromoCodeBonusPopupFooter--LwIzb\",\"autoRedemePromoCodeBonusPopupOkButton\":\"autoRedemePromoCodeBonusPopupOkButton--U2mfI\"};","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useNavigate } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport queryString from 'query-string';\nimport classes from './classes.module.scss';\nimport { hideBodyScroll, unlockBodyScroll, toCamelCase } from '../../../common/config/utils';\nimport Spiner from '../../../common/helpers/spiner';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport { appGeneralPopupTheme } from '../../../common/config/const';\nimport { setCookie } from '../../config/cookies_action';\n\nconst { shared } = window;\n\nfunction AutoRedemePromoCode({\n loading, autoRedemPromoCode, authHandlerSuccess, justSignedUpAuthHandlerSuccess, bonusPopup, autoRedemSetBonusPopup\n}) {\n const history = useNavigate();\n const { t } = useTranslation();\n\n useEffect(() => {\n const { promo } = toCamelCase(queryString.parse(window.location.search));\n if (promo) {\n const date = new Date();\n date.setTime(date.getTime() + (30 * 60 * 1000));\n\n setCookie({\n cookieName: 'autoRedemePromoCode',\n cookieValue: promo,\n cookieOptions: {\n path: '/',\n expires: date\n }\n });\n }\n }, []);\n\n useEffect(() => {\n if (window.currentUserId) {\n autoRedemPromoCode({ history, needShowErrorPoppup: true });\n }\n }, []);\n\n useEffect(() => {\n if (authHandlerSuccess) {\n autoRedemPromoCode({ history, needShowErrorPoppup: false, authHandlerSuccess });\n }\n }, [authHandlerSuccess]);\n\n useEffect(() => {\n if (justSignedUpAuthHandlerSuccess) {\n autoRedemPromoCode({ history, needShowErrorPoppup: false, justSignedUpAuthHandlerSuccess });\n }\n }, [justSignedUpAuthHandlerSuccess]);\n\n useEffect(() => {\n if (loading) {\n hideBodyScroll();\n return () => {\n unlockBodyScroll();\n };\n }\n return () => {};\n }, [loading]);\n\n const clearBonusPopup = () => {\n autoRedemSetBonusPopup({ bonusPopup: null });\n };\n\n const renderBonusPopup = () => (\n <AppGeneralPopup visible={ !!bonusPopup } theme={ appGeneralPopupTheme.CENTERED }>\n <div className={ classes.autoRedemePromoCodeBonusPopupContainer }>\n <div className={ classes.autoRedemePromoCodeBonusPopupHeader }>\n <b>{ bonusPopup?.title }</b>\n </div>\n <div className={ classes.autoRedemePromoCodeBonusPopupDescription }>\n { bonusPopup?.description }\n </div>\n <div className={ classes.autoRedemePromoCodeBonusPopupFooter }>\n <button type=\"button\" value=\"Promo Code\" className={ classes.autoRedemePromoCodeBonusPopupOkButton } onClick={ clearBonusPopup }>\n <b>{ t('promoCode.ok') }</b>\n </button>\n </div>\n </div>\n </AppGeneralPopup>\n );\n\n const renderAutoRedemePromoCode = () => {\n if (loading) {\n return (\n <div className={ classes.generalLoadingOverlayContainer }>\n <Spiner loaderColor={ shared.appColor } className={ classes.generalLoadingOverlayLoaderContainer } />\n </div>\n );\n }\n return renderBonusPopup();\n };\n\n return renderAutoRedemePromoCode();\n}\n\nAutoRedemePromoCode.propTypes = {\n loading: PropTypes.bool,\n authHandlerSuccessAction: PropTypes.func\n};\n\nAutoRedemePromoCode.defaultProps = {\n loading: false,\n authHandlerSuccessAction: null\n};\n\nexport default AutoRedemePromoCode;\n","import { connect } from 'react-redux';\nimport AutoRedemePromoCode from './auto_redeme_promo_code';\nimport { autoRedemPromoCode, autoRedemSetBonusPopup } from '../../actions/promo_code';\n\nconst mapStateToProps = ({\n promoCode\n}) => ({\n loading: promoCode.autoRedem?.loading,\n authHandlerSuccess: promoCode.autoRedem?.authHandlerSuccess,\n justSignedUpAuthHandlerSuccess: promoCode.autoRedem?.justSignedUpAuthHandlerSuccess,\n bonusPopup: promoCode.autoRedem?.bonusPopup\n});\n\nexport default connect(\n mapStateToProps,\n {\n autoRedemPromoCode,\n autoRedemSetBonusPopup\n }\n)(AutoRedemePromoCode);\n","import React from 'react';\nimport NotFound from '../../not_found';\nimport ChangeLanguage from '../../change_language';\nimport PushNotification from '../../push_notifcation';\nimport GeneralError from '../../general_error';\nimport SmartBanner from '../../shared/smart_banner';\nimport AutoRedemePromoCode from '../../auto_redeme_promo_code';\n\nfunction Overlays() {\n return (\n <>\n <NotFound />\n <ChangeLanguage />\n <PushNotification />\n <GeneralError />\n <SmartBanner />\n <AutoRedemePromoCode />\n </>\n );\n}\n\nexport default Overlays;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container--VjS15\",\"containerWithIcon\":\"containerWithIcon--u9faq\",\"newUserContainerWithIcon\":\"newUserContainerWithIcon--SAwZS\",\"topImageContainer\":\"topImageContainer--PBAZw\",\"topImage\":\"topImage--G8VCR\",\"dialogContainer\":\"dialogContainer--WJGY2\",\"closeBtn\":\"closeBtn--KvTru\",\"closeIcon\":\"closeIcon--Ov3Fc\",\"paygLabelText\":\"paygLabelText--wPxuO\",\"descriptionText\":\"descriptionText--Wvkff\",\"infoBottomContainer\":\"infoBottomContainer--krYqV\",\"selectTitleContainer\":\"selectTitleContainer--zckVf\",\"additionalOption\":\"additionalOption--Ym_Dy\",\"clientCreditBalanceContainer\":\"clientCreditBalanceContainer--rhmLp\",\"clientAvailableCreditSkeleton\":\"clientAvailableCreditSkeleton--a5jy8\",\"animation-bzdot9\":\"animation-bzdot9--hS3XH\",\"divider\":\"divider--Z44_s\",\"additionalOptionContainer\":\"additionalOptionContainer--_Qtk_\",\"loader\":\"loader--WiXhT\",\"carouselMain\":\"carouselMain--mcOUh\",\"titleContainer\":\"titleContainer--mQcoa\",\"continueCallText\":\"continueCallText--UZ_TW\",\"advisorNameText\":\"advisorNameText--fhrxR\",\"saveUpLabelContainer\":\"saveUpLabelContainer--aqNZS\",\"saveUpLabelTextContainer\":\"saveUpLabelTextContainer--pUO6Y\",\"saveUpLabelText\":\"saveUpLabelText--stNoZ\",\"saveUpLabelAmount\":\"saveUpLabelAmount--xFZ8s\",\"saveUpDiscountLabelText\":\"saveUpDiscountLabelText--VOynn\",\"saveUpDiscountLabelAmount\":\"saveUpDiscountLabelAmount--jAuJS\",\"zenModeLabelContainer\":\"zenModeLabelContainer--MwWtL\",\"newUserPaygYourAvailableBalanceContainer\":\"newUserPaygYourAvailableBalanceContainer--hKhdf\",\"colorAdditionalText\":\"colorAdditionalText--uKdjB\"};","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container--M1Uz8\",\"containerWithIcon\":\"containerWithIcon--wrqY_\",\"newUserContainerWithIcon\":\"newUserContainerWithIcon--wqdZh\",\"topImageContainer\":\"topImageContainer--vKGvW\",\"topImage\":\"topImage--B8EPf\",\"dialogContainer\":\"dialogContainer--hKBe6\",\"closeBtn\":\"closeBtn--wqORN\",\"closeIcon\":\"closeIcon--TRVZb\",\"paygLabelText\":\"paygLabelText--OsNDm\",\"descriptionText\":\"descriptionText--HyN5n\",\"infoBottomContainer\":\"infoBottomContainer--jSc46\",\"selectTitleContainer\":\"selectTitleContainer--EJc3v\",\"additionalOption\":\"additionalOption--jBmTR\",\"clientCreditBalanceContainer\":\"clientCreditBalanceContainer--tH2sl\",\"clientAvailableCreditSkeleton\":\"clientAvailableCreditSkeleton--iFiEf\",\"animation-bzdot9\":\"animation-bzdot9--YUq_C\",\"divider\":\"divider--NZORa\",\"additionalOptionContainer\":\"additionalOptionContainer--nmu5V\",\"loader\":\"loader--hCg64\",\"carouselMain\":\"carouselMain--RF6xz\",\"titleContainer\":\"titleContainer--YYmaz\",\"continueCallText\":\"continueCallText--gYOtb\",\"advisorNameText\":\"advisorNameText--Megb8\",\"saveUpLabelContainer\":\"saveUpLabelContainer--MxDky\",\"saveUpLabelTextContainer\":\"saveUpLabelTextContainer--Vvdi7\",\"saveUpLabelText\":\"saveUpLabelText--DNbIX\",\"saveUpLabelAmount\":\"saveUpLabelAmount--P_Fy1\",\"saveUpDiscountLabelText\":\"saveUpDiscountLabelText--Uz3YA\",\"saveUpDiscountLabelAmount\":\"saveUpDiscountLabelAmount--AvLta\",\"zenModeLabelContainer\":\"zenModeLabelContainer--SE53e\",\"newUserPaygYourAvailableBalanceContainer\":\"newUserPaygYourAvailableBalanceContainer--IQ9TO\",\"colorAdditionalText\":\"colorAdditionalText--YfDoh\",\"continueContainer\":\"continueContainer--A1JAI\",\"endChatBtn\":\"endChatBtn--jgy1M\",\"addTimeBtn\":\"addTimeBtn--Rt682\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from '@barges/react';\nimport '@barges/scss/lib/button.css';\nimport '@barges/scss/lib/title.css';\nimport Const from '../../../../config/const';\nimport classes from './classes.module.scss';\nimport withPGTranslation from '../../../../config/withPGTranslation';\nimport { log, LOG_LEVELS } from '../../../../../common/config/app_logger';\n\nfunction ContinueCallFooter({\n selectCredit, hangupChat, option, t, hangingUp, disabledStartChatButton, selectedDuration,\n chatType, clearAffiliatePromoPopup, trackDurationPickExit,\n defaultDurationChanged, selectorOpenedTime\n}) {\n const onAddTimeClicked = () => {\n const exitSelectorTime = new Date();\n const time = exitSelectorTime - selectorOpenedTime;\n log(LOG_LEVELS.INFO, 'Chat', `on start chat isContinue: ${ true }`);\n const arg = chatType === Const.chatType.text ? option : selectedDuration;\n selectCredit(arg, time, defaultDurationChanged);\n };\n\n const hangupChatAction = () => {\n const exitSelectorTime = new Date();\n const time = exitSelectorTime - selectorOpenedTime;\n const arg = chatType === Const.chatType.text ? option : selectedDuration;\n trackDurationPickExit(arg, time, defaultDurationChanged);\n clearAffiliatePromoPopup();\n hangupChat();\n };\n\n return (\n <div className={ classes.continueContainer }>\n <div className={ classes.endChatBtn }>\n <Button\n type=\"secondary\"\n title={ t('chat.end_chat') }\n disabled={ hangingUp }\n onClick={ hangupChatAction }\n />\n </div>\n <div className={ classes.addTimeBtn }>\n <Button\n title={ t('chat.add_time') }\n disabled={ chatType === Const.chatType.text && disabledStartChatButton }\n onClick={ onAddTimeClicked }\n />\n </div>\n </div>\n );\n}\n\nContinueCallFooter.propTypes = {\n selectCredit: PropTypes.func.isRequired,\n hangupChat: PropTypes.func.isRequired,\n option: PropTypes.object,\n t: PropTypes.func.isRequired,\n hangingUp: PropTypes.bool.isRequired,\n disabledStartChatButton: PropTypes.bool.isRequired,\n chatType: PropTypes.string.isRequired,\n selectedDuration: PropTypes.number,\n clearAffiliatePromoPopup: PropTypes.func.isRequired,\n trackDurationPickExit: PropTypes.func.isRequired,\n defaultDurationChanged: PropTypes.bool.isRequired,\n selectorOpenedTime: PropTypes.instanceOf(Date).isRequired\n};\n\nContinueCallFooter.defaultProps = {\n option: {},\n selectedDuration: null\n};\n\nexport default withPGTranslation(ContinueCallFooter);\n","import { connect } from 'react-redux';\nimport ContinueCallFooter from './continue';\nimport { selectCredit, hangupChat, trackDurationPickExit } from '../../../../actions/chat';\nimport { continueVoipChat, hangupVoipChat, trackVoipDurationPickExit } from '../../../../actions/voip_chat';\nimport { clearAffiliatePromoPopup } from '../../../../actions/affiliate_promo_popup';\nimport Const from '../../../../config/const';\nimport withPGTranslation from '../../../../config/withPGTranslation';\n\nconst mapStateToProps = ({ chat: { hangingUp, state }, voipChat: { voipState } }, { chatType }) => {\n switch (chatType) {\n case Const.chatType.text:\n return ({\n hangingUp: hangingUp || state === Const.chatStates.ended,\n disabledStartChatButton: state !== Const.chatStates.paused\n });\n case Const.chatType.voice:\n case Const.chatType.video:\n return ({\n hangingUp: voipState === Const.voipChatStates.endedConversation,\n disabledStartChatButton: voipState !== Const.voipChatStates.paused\n });\n default:\n return null;\n }\n};\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n switch (ownProps.chatType) {\n case Const.chatType.text:\n return ({\n selectCredit: (option, time, defaultDurationChanged) => dispatch(selectCredit(option, time, defaultDurationChanged, true)),\n hangupChat: () => dispatch(hangupChat()),\n clearAffiliatePromoPopup: () => dispatch(clearAffiliatePromoPopup()),\n trackDurationPickExit: (option, time, defaultDurationChanged) => dispatch(\n trackDurationPickExit(option, time, defaultDurationChanged)\n )\n });\n case Const.chatType.voice:\n case Const.chatType.video:\n return ({\n selectCredit: (duration, time, defaultDurationChanged) => dispatch(continueVoipChat(duration, time, defaultDurationChanged, ownProps.option.selectedCarouselIndex, ownProps.option?.discountData)),\n hangupChat: () => dispatch(hangupVoipChat()),\n clearAffiliatePromoPopup: () => dispatch(clearAffiliatePromoPopup()),\n trackDurationPickExit: (duration, time, defaultDurationChanged) => dispatch(\n trackVoipDurationPickExit(duration, time, defaultDurationChanged)\n )\n });\n default:\n return null;\n }\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(withPGTranslation(ContinueCallFooter));\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container--H3Fcq\",\"containerWithIcon\":\"containerWithIcon--vpBNy\",\"newUserContainerWithIcon\":\"newUserContainerWithIcon--mVY3K\",\"topImageContainer\":\"topImageContainer--wCEWV\",\"topImage\":\"topImage--S7wi0\",\"dialogContainer\":\"dialogContainer--e5hl8\",\"closeBtn\":\"closeBtn--Rsxa4\",\"closeIcon\":\"closeIcon--R4_Ea\",\"paygLabelText\":\"paygLabelText--UPbeo\",\"descriptionText\":\"descriptionText--cN9sL\",\"infoBottomContainer\":\"infoBottomContainer--rO2tj\",\"selectTitleContainer\":\"selectTitleContainer--nzbJn\",\"additionalOption\":\"additionalOption--R4kNm\",\"clientCreditBalanceContainer\":\"clientCreditBalanceContainer--LyUlW\",\"clientAvailableCreditSkeleton\":\"clientAvailableCreditSkeleton--aetFg\",\"animation-bzdot9\":\"animation-bzdot9--MefHe\",\"divider\":\"divider--RBRdG\",\"additionalOptionContainer\":\"additionalOptionContainer--JiVSQ\",\"loader\":\"loader--lphUY\",\"carouselMain\":\"carouselMain--pP1kn\",\"titleContainer\":\"titleContainer--oVpgC\",\"continueCallText\":\"continueCallText--UTIb8\",\"advisorNameText\":\"advisorNameText--gHAIx\",\"saveUpLabelContainer\":\"saveUpLabelContainer--ibRL6\",\"saveUpLabelTextContainer\":\"saveUpLabelTextContainer--XaVmY\",\"saveUpLabelText\":\"saveUpLabelText--pHZ_W\",\"saveUpLabelAmount\":\"saveUpLabelAmount--B3YRk\",\"saveUpDiscountLabelText\":\"saveUpDiscountLabelText--RATu9\",\"saveUpDiscountLabelAmount\":\"saveUpDiscountLabelAmount--TIsrH\",\"zenModeLabelContainer\":\"zenModeLabelContainer--gAqCZ\",\"newUserPaygYourAvailableBalanceContainer\":\"newUserPaygYourAvailableBalanceContainer--L4O_m\",\"colorAdditionalText\":\"colorAdditionalText--Gsh72\",\"startBtnContainer\":\"startBtnContainer--D27vr\",\"nextBtnContainer\":\"nextBtnContainer--j5F1o\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from '@barges/react';\nimport '@barges/scss/lib/button.css';\nimport '@barges/scss/lib/title.css';\nimport classes from './classes.module.scss';\nimport withPGTranslation from '../../../../config/withPGTranslation';\nimport { log, LOG_LEVELS } from '../../../../../common/config/app_logger';\nimport Const from '../../../../config/const';\nimport { isPayg } from '../../../../config/util';\n\nconst renderStartCallFooterBtn = (btnClass, title, disabledStartChatButton, startChat) => (\n <div className={ btnClass }>\n <Button\n title={ title }\n disabled={ disabledStartChatButton }\n onClick={ startChat }\n />\n </div>\n);\n\nconst renderStartCallFooterContent = ({\n clientAvailableCredit, option, startChat, disabledStartChatButton, t, selectDurationKind\n}) => {\n if (selectDurationKind === Const.selectDurationKind.newUserPayg) {\n return renderStartCallFooterBtn(classes.startBtnContainer, t('chat.start_your_session'), disabledStartChatButton, startChat);\n }\n if ((clientAvailableCredit >= option.price && selectDurationKind === Const.selectDurationKind.oldUser)) {\n const title = isPayg({ duration: option.duration }) ? t('chat.continue') : t('chat.start');\n return renderStartCallFooterBtn(classes.startBtnContainer, title, disabledStartChatButton, startChat);\n }\n return renderStartCallFooterBtn(classes.nextBtnContainer, t('chat.next'), disabledStartChatButton, startChat);\n};\n\nfunction StartCallFooter({\n selectCredit, option, t, clientAvailableCredit, disabledStartChatButton,\n selectorOpenedTime, defaultDurationChanged, chatType, selectDurationKind\n}) {\n const startChat = () => {\n log(LOG_LEVELS.INFO, 'Chat', `on start chat isContinue: ${ false }`);\n const exitTime = new Date();\n const time = exitTime - selectorOpenedTime;\n selectCredit(option, time, defaultDurationChanged);\n };\n\n const renderStartCallFooter = () => {\n if ((!clientAvailableCredit || !option.price) && !isPayg({ duration: option.duration })) return null;\n return renderStartCallFooterContent({\n clientAvailableCredit, option, startChat, disabledStartChatButton, chatType, t, selectDurationKind\n });\n };\n\n return (\n <>\n { renderStartCallFooter() }\n </>\n );\n}\n\nStartCallFooter.propTypes = {\n option: PropTypes.object,\n t: PropTypes.func.isRequired,\n selectCredit: PropTypes.func.isRequired,\n clientAvailableCredit: PropTypes.string.isRequired,\n disabledStartChatButton: PropTypes.bool.isRequired,\n selectorOpenedTime: PropTypes.instanceOf(Date).isRequired,\n defaultDurationChanged: PropTypes.bool.isRequired,\n chatType: PropTypes.string.isRequired,\n selectDurationKind: PropTypes.string\n};\n\nStartCallFooter.defaultProps = {\n option: {},\n selectDurationKind: null\n};\n\nexport default withPGTranslation(StartCallFooter);\n","import { connect } from 'react-redux';\nimport StartCallFooter from './start_call';\nimport { selectCredit } from '../../../../actions/chat';\nimport { selectVoipCredit } from '../../../../actions/voip_chat';\nimport Const from '../../../../config/const';\nimport withPGTranslation from '../../../../config/withPGTranslation';\n\nconst mapStateToProps = ({ chat, voipChat, user: { user } }, { chatType }) => {\n switch (chatType) {\n case Const.chatType.text:\n return ({\n clientAvailableCredit: user && user.clientAvailableCredit,\n disabledStartChatButton:\n chat.state !== Const.chatStates.appInitial\n && chat.state !== Const.chatStates.paused\n });\n case Const.chatType.voice:\n case Const.chatType.video:\n return ({\n clientAvailableCredit: user && user.clientAvailableCredit,\n disabledStartChatButton:\n voipChat.voipState !== Const.voipChatStates.initial\n && voipChat.voipState !== Const.voipChatStates.paused\n });\n default:\n return null;\n }\n};\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n switch (ownProps.chatType) {\n case Const.chatType.text:\n return ({\n selectCredit: (option, time, defaultDurationChanged) => dispatch(\n selectCredit(option, time, defaultDurationChanged, false)\n )\n });\n case Const.chatType.voice:\n case Const.chatType.video:\n return ({\n selectCredit: (option, time, defaultDurationChanged) => dispatch(\n selectVoipCredit(option, time, defaultDurationChanged, false)\n )\n });\n default:\n return null;\n }\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(withPGTranslation(StartCallFooter));\n","// extracted by mini-css-extract-plugin\nexport default {\"carouselArrowPrevContainer\":\"carouselArrowPrevContainer--_mdfy\",\"carouselArrowPrevContent\":\"carouselArrowPrevContent--NMwwA\",\"arrowImgContainer\":\"arrowImgContainer--bSijc\",\"carouselArrowNextContainer\":\"carouselArrowNextContainer--gbV3W\",\"carouselArrowNextContent\":\"carouselArrowNextContent--p_UML\",\"carouselItem\":\"carouselItem--CR8M0\",\"durationItem\":\"durationItem--qG0j_\",\"durationItemContextCol\":\"durationItemContextCol--DXv5v\",\"durationItemMinutesCountContainer\":\"durationItemMinutesCountContainer--GS3bG\",\"durationItemMinutesTextContainer\":\"durationItemMinutesTextContainer--TMcms\",\"durationItemNewUserPaygPayContainer\":\"durationItemNewUserPaygPayContainer--s7CfI\",\"durationItemNewUserPaygText\":\"durationItemNewUserPaygText--yg5sp\",\"durationItemPayAsYouGoText\":\"durationItemPayAsYouGoText--W7qJX\",\"durationOptinsContainer\":\"durationOptinsContainer--reGk9\",\"item\":\"item--VZhex\",\"durationItemPriceTextContainer\":\"durationItemPriceTextContainer--QPixl\",\"mostPopularContainer\":\"mostPopularContainer--TnFIH\",\"mostPopularIcon\":\"mostPopularIcon--aKRjP\",\"mostPopularText\":\"mostPopularText--IJgnE\",\"tapHeroToUseYourBalanceForLabelContainer\":\"tapHeroToUseYourBalanceForLabelContainer--alBnl\",\"carouselSelectedItem\":\"carouselSelectedItem--b0_or\",\"durationItemPriceContainerDefault\":\"durationItemPriceContainerDefault--yeLzN\",\"mostPopularHeartInCircleContainer\":\"mostPopularHeartInCircleContainer--WEyym\",\"newUserDurationOptions\":\"newUserDurationOptions--lwuQ8\",\"mostPopularHeartInCircleIcon\":\"mostPopularHeartInCircleIcon--eIl72\",\"durationItemPriceContainerNewUser\":\"durationItemPriceContainerNewUser--epb2U\",\"freeMinLabelContainer\":\"freeMinLabelContainer--pzFZh\",\"freeMinTextContainer\":\"freeMinTextContainer--M5ejw\",\"freeMinIcon\":\"freeMinIcon--Nwy_I\",\"newUserPaygContainer\":\"newUserPaygContainer--n03mv\",\"newUserPaygImgContainer\":\"newUserPaygImgContainer--HL5aj\",\"newUserPaygImg\":\"newUserPaygImg--Oc0YL\",\"newUserPaygTitle\":\"newUserPaygTitle--cSgBH\",\"newUserPaygPayAsYouGoText\":\"newUserPaygPayAsYouGoText--eTzYy\",\"durationItemPriceContainerPrice\":\"durationItemPriceContainerPrice--MBHsQ\",\"durationItemPriceContainerSalesPrice\":\"durationItemPriceContainerSalesPrice--wS3iW\",\"durationItemPriceContainerSaleCrosPrice\":\"durationItemPriceContainerSaleCrosPrice--iJ7NR\",\"durationItemPriceContainerMinText\":\"durationItemPriceContainerMinText--m9hul\",\"newUserPaygPriceContainer\":\"newUserPaygPriceContainer--KS_oY\",\"newUserPaygPrice\":\"newUserPaygPrice--h9oiR\",\"newUserPaygMinText\":\"newUserPaygMinText--O0Yuh\",\"newUserPaygSalesPrice\":\"newUserPaygSalesPrice--HDb4a\",\"newUserPaygSaleCrosPrice\":\"newUserPaygSaleCrosPrice--nhdbX\",\"durationItemDiscountLabelContainer\":\"durationItemDiscountLabelContainer--t1EW4\",\"durationItemDiscountLabelTitle\":\"durationItemDiscountLabelTitle--q8QOI\",\"durationItemMaxDiscountLabelImgTextContainer\":\"durationItemMaxDiscountLabelImgTextContainer--SXPlr\",\"durationItemMaxDiscountLabelTitle\":\"durationItemMaxDiscountLabelTitle--r4EfM\",\"durationItemMaxDiscountLabelImg\":\"durationItemMaxDiscountLabelImg--ND6mL\",\"durationItemDiscountLabelImgTextContainer\":\"durationItemDiscountLabelImgTextContainer--hogsa\",\"durationItemDiscountLabelImg\":\"durationItemDiscountLabelImg--EpqGM\",\"durationItemDiscountLabelText\":\"durationItemDiscountLabelText--wE5FJ\",\"newUserPaygBonusLabelsHolder\":\"newUserPaygBonusLabelsHolder--Zupjh\",\"newUserPaygBonusLabelsHolderCentered\":\"newUserPaygBonusLabelsHolderCentered--ZINtK\",\"newUserPaygBonusLabelContainer\":\"newUserPaygBonusLabelContainer--v8tMu\",\"newUserPaygBonusLabelImg\":\"newUserPaygBonusLabelImg--l53nw\",\"newUserPaygBonusLabelTextContainer\":\"newUserPaygBonusLabelTextContainer--fyJuH\",\"newUserPaygBonusLabelText\":\"newUserPaygBonusLabelText--jq_IM\",\"newUserPaygBonusLabelSubText\":\"newUserPaygBonusLabelSubText--CHTSv\",\"animation-bzdot9\":\"animation-bzdot9--Lnt8U\"};","import React from 'react';\nimport classes from './classes.module.scss';\nimport { roundCredits, isPayg } from '../../../../config/util';\nimport Const from '../../../../config/const';\nimport { rightArrow } from './img/right_arrow';\nimport { leftArrow } from './img/left_arrow';\nimport { SvgIcon } from '../../../../../common/sprites';\n\nconst shouldScrollRight = (carouselRef, pricingOptions) => {\n if (!carouselRef || !carouselRef.current) return false;\n const { current: { state: { selectedItem } } } = carouselRef;\n return selectedItem !== pricingOptions.length - 1;\n};\n\nconst shouldScrollLeft = (carouselRef) => {\n if (!carouselRef || !carouselRef.current) return false;\n const { current: { state: { selectedItem } } } = carouselRef;\n return selectedItem !== 0;\n};\n\nexport const carouselHandleKeyPress = (\n e,\n carouselOnclickArrowNext,\n carouselOnclickArrowPrev,\n carouselRef,\n pricingOptions\n) => {\n if (e.code === 'ArrowRight' && shouldScrollRight(carouselRef, pricingOptions)) {\n carouselOnclickArrowNext();\n }\n if (e.code === 'ArrowLeft' && shouldScrollLeft(carouselRef)) {\n carouselOnclickArrowPrev();\n }\n};\n\nconst getDelta = ({ carouselSwipeCurrentPosition, swipeChange }) => {\n let delta = 0;\n if (carouselSwipeCurrentPosition > swipeChange) {\n delta = (carouselSwipeCurrentPosition - swipeChange) * (-1);\n }\n if (carouselSwipeCurrentPosition < swipeChange) {\n delta = swipeChange - carouselSwipeCurrentPosition;\n }\n return delta;\n};\n\nconst carouselSwipeMoveLeftActionHandler = ({\n setCarouselSwipeCurrentPosition, e, carouselRef, carouselSetSelected\n}) => {\n setCarouselSwipeCurrentPosition(e.changedTouches[0].pageX);\n if (!shouldScrollLeft(carouselRef)) return;\n carouselRef.current.onSwipeBackwards();\n carouselSetSelected();\n};\n\nconst carouselSwipeMoveRightActionHandler = ({\n setCarouselSwipeCurrentPosition, e, carouselRef, pricingOptions,\n carouselSetSelected\n}) => {\n setCarouselSwipeCurrentPosition(e.changedTouches[0].pageX);\n if (!shouldScrollRight(carouselRef, pricingOptions)) return;\n carouselRef.current.onSwipeForward();\n carouselSetSelected();\n};\n\nexport const carouselSwipeMoveAction = ({\n e,\n carouselRef,\n carouselSwipeCurrentPosition,\n setCarouselSwipeCurrentPosition,\n carouselSetSelected,\n pricingOptions,\n getCarouselPosition\n}) => {\n const swipeChange = e.changedTouches[0].pageX;\n const currentPosition = getCarouselPosition(carouselRef.current.state.selectedItem, carouselRef.current.props);\n const delta = getDelta({ carouselSwipeCurrentPosition, swipeChange });\n carouselRef.current.listRef.setAttribute('style', `transform: translate3d(${ currentPosition + delta }%, 0px, 0px)`);\n if (carouselSwipeCurrentPosition && swipeChange > carouselSwipeCurrentPosition + 64) {\n carouselSwipeMoveLeftActionHandler({\n setCarouselSwipeCurrentPosition, e, carouselRef, carouselSetSelected\n });\n }\n if (carouselSwipeCurrentPosition && swipeChange < carouselSwipeCurrentPosition - 64) {\n carouselSwipeMoveRightActionHandler({\n setCarouselSwipeCurrentPosition,\n e,\n carouselRef,\n pricingOptions,\n carouselSetSelected\n });\n }\n};\n\nexport const getDurationOptionsClass = (option, selected, index, selectedCarouselIndex, isNewUser) => {\n if (isNewUser && index === selectedCarouselIndex) return classes.carouselSelectedItem;\n if (option.duration === selected.duration) return classes.carouselSelectedItem;\n return classes.carouselItem;\n};\n\nexport const onCarouselSetSelected = (carouselRef, pricingOptions, onSelect) => {\n if (!carouselRef || !carouselRef.current) return null;\n const selectedIndex = carouselRef.current.state.selectedItem;\n const option = pricingOptions[selectedIndex];\n const defaultDuration = pricingOptions[selectedIndex].default;\n onSelect({\n defaultDuration, ...option, selectedCarouselIndex: selectedIndex\n });\n return () => {};\n};\n\nexport const carouselArrowPrevHandler = ({\n carouselRef, carouselOnclickArrowPrev, onKeyDown, carouselArrowPrevRef\n}) => {\n if (!carouselRef || !carouselRef.current) return null;\n const disableArrow = carouselRef.current.state.selectedItem === 0;\n return (\n <div\n className={ classes.carouselArrowPrevContainer }\n onClick={ disableArrow ? null : carouselOnclickArrowPrev }\n onKeyDown={ onKeyDown }\n ref={ carouselArrowPrevRef }\n style={ disableArrow ? { opacity: 0, cursor:'auto' } : null }\n >\n <div className={ classes.carouselArrowPrevContent }>\n <div className={ classes.arrowImgContainer }>\n {leftArrow()}\n </div>\n </div>\n </div>\n );\n};\n\nexport const carouselArrowNextHandler = ({\n carouselRef, pricingOptions, carouselOnclickArrowNext, onKeyDown,\n carouselArrowNextRef\n}) => {\n if (!carouselRef || !carouselRef.current) return null;\n const disableArrow = carouselRef.current.state.selectedItem\n === pricingOptions.length - 1;\n return (\n <div\n className={ classes.carouselArrowNextContainer }\n onClick={ disableArrow ? null : carouselOnclickArrowNext }\n onKeyDown={ onKeyDown }\n ref={ carouselArrowNextRef }\n style={ disableArrow ? { opacity: 0, cursor:'auto' } : null }\n >\n <div className={ classes.carouselArrowNextContent }>\n <div className={ classes.arrowImgContainer }>\n {rightArrow()}\n </div>\n </div>\n </div>\n );\n};\n\nexport const renderNewUserPaygPrice = ({ price, availableSalesPrice }) => {\n let content = (\n <div key={ `NewUserPaygPrice_price_${ price }` } className={ classes.newUserPaygPriceContainer }>\n <div className={ classes.newUserPaygPrice }>\n {`$${ roundCredits(price) }`}\n </div>\n <div className={ classes.newUserPaygMinText }>\n /min\n </div>\n </div>\n );\n\n if (availableSalesPrice) {\n content = (\n <div key={ `NewUserPaygPrice_price_${ price }_availableSalesPrice_${ availableSalesPrice }` } className={ classes.newUserPaygPriceContainer }>\n <div className={ classes.newUserPaygSalesPrice }>\n {`$${ roundCredits(availableSalesPrice) }`}\n </div>\n <div className={ classes.newUserPaygSaleCrosPrice }>\n {`$${ roundCredits(price) }`}\n </div>\n <div className={ classes.newUserPaygMinText }>\n /min\n </div>\n </div>\n );\n }\n return content;\n};\n\nexport const renderDurationItemPriceContainer = ({\n price, priceWithoutDiscount, isNewUser, additional, duration, availableSalesPrice, advisorModePricePerMinute\n}) => {\n if (additional) return null;\n let amount = price;\n let saleAmount = null;\n\n if (priceWithoutDiscount) {\n amount = priceWithoutDiscount;\n saleAmount = price;\n }\n\n let minTextContainer = null;\n if (isPayg({ duration })) {\n amount = advisorModePricePerMinute;\n\n if (availableSalesPrice) {\n saleAmount = availableSalesPrice;\n }\n\n minTextContainer = (\n <div className={ classes.durationItemPriceContainerMinText }>\n /min\n </div>\n );\n }\n\n const durationItemPriceContainerClannName = isNewUser ? classes.durationItemPriceContainerNewUser : classes.durationItemPriceContainerDefault;\n\n let content = (\n <div className={ durationItemPriceContainerClannName }>\n <div className={ classes.durationItemPriceContainerPrice }>\n {`$${ roundCredits(amount) }`}\n </div>\n { minTextContainer }\n </div>\n );\n\n if (saleAmount) {\n content = (\n <div className={ durationItemPriceContainerClannName }>\n <div className={ classes.durationItemPriceContainerSalesPrice }>\n {`$${ roundCredits(saleAmount) }`}\n </div>\n <div className={ classes.durationItemPriceContainerSaleCrosPrice }>\n {`$${ roundCredits(amount) }`}\n </div>\n { minTextContainer }\n </div>\n );\n }\n return content;\n};\n\nconst renderDurationItemDiscountLabelTitle = ({ discountData, t }) => {\n let title;\n switch (discountData?.kind) {\n case Const.discountDataKind.discountApplied:\n title = (\n <div className={ classes.durationItemDiscountLabelTitle }>\n { t('chat.discount_applied') }\n </div>\n );\n break;\n case Const.discountDataKind.maxDiscountApplied:\n title = (\n <div className={ classes.durationItemMaxDiscountLabelImgTextContainer }>\n <SvgIcon id=\"max_discount_applied_icon\" className={ classes.durationItemMaxDiscountLabelImg } size={ 14 } />\n <span className={ classes.durationItemMaxDiscountLabelTitle }>\n { t('chat.max_discount_applied') }\n </span>\n </div>\n );\n break;\n\n case Const.discountDataKind.advisorSpecialOffer:\n title = (\n <div className={ classes.durationItemDiscountLabelTitle }>\n { t('chat.advisor_special_offer') }\n </div>\n );\n break;\n default:\n break;\n }\n return title;\n};\n\nconst renderDurationItemDiscountLabeSubTitle = ({ discountData }) => {\n let subTitle;\n switch (discountData?.kind) {\n case Const.discountDataKind.discountApplied:\n subTitle = (\n <div className={ classes.durationItemDiscountLabelImgTextContainer }>\n <SvgIcon id=\"discount_applied_icon\" className={ classes.durationItemDiscountLabelImg } size={ 17 } />\n <span className={ classes.durationItemDiscountLabelText }>\n { discountData?.description }\n </span>\n </div>\n );\n break;\n case Const.discountDataKind.maxDiscountApplied:\n subTitle = (\n <span className={ classes.durationItemDiscountLabelText }>\n { discountData?.description }\n </span>\n );\n break;\n case Const.discountDataKind.advisorSpecialOffer:\n subTitle = (\n <div className={ classes.durationItemDiscountLabelImgTextContainer }>\n <SvgIcon id=\"advisor_special_offer_icon\" className={ classes.durationItemDiscountLabelImg } size={ 17 } />\n <span className={ classes.durationItemDiscountLabelText }>\n { discountData?.description }\n </span>\n </div>\n );\n break;\n default:\n break;\n }\n return subTitle;\n};\n\nexport const renderDurationItemDiscountLabel = ({ discountData, t }) => {\n if (!discountData?.description) return null;\n return (\n <div className={ classes.durationItemDiscountLabelContainer }>\n {renderDurationItemDiscountLabelTitle({ discountData, t })}\n {renderDurationItemDiscountLabeSubTitle({ discountData })}\n </div>\n );\n};\n\nconst renderNewUserPaygLabelContent = ({\n kind, iconId, title, subtitle, color\n}) => (\n <div key={ `newUserPaygBonusItem_${ kind }` } className={ classes.newUserPaygBonusLabelContainer }>\n <SvgIcon id={ iconId } className={ classes.newUserPaygBonusLabelImg } size={ 30 } />\n <div className={ classes.newUserPaygBonusLabelTextContainer }>\n <div className={ classes.newUserPaygBonusLabelText } style={ { color } }>\n { title }\n </div>\n <div className={ classes.newUserPaygBonusLabelSubText }>\n { subtitle }\n </div>\n </div>\n </div>\n);\n\nexport const renderNewUserPaygLabel = ({ bonusItem }) => {\n const { kind, title, subtitle } = bonusItem;\n let content;\n let iconId;\n switch (kind) {\n case Const.newUserPaygBonusItemKind.xfm:\n iconId = 'new_user_payg_free_min_icon';\n content = renderNewUserPaygLabelContent({\n kind, iconId, title, subtitle, color: '#7BD137'\n });\n break;\n case Const.newUserPaygBonusItemKind.cardValidationBonus:\n iconId = 'new_user_payg_free_credits_icon';\n content = renderNewUserPaygLabelContent({\n kind, iconId, title, subtitle\n });\n break;\n default:\n content = null;\n break;\n }\n return content;\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { DurationItem } from '@barges/react';\nimport { useTranslation } from 'react-i18next';\nimport '@barges/scss/lib/duration-item.css';\nimport '@barges/scss/lib/title.css';\nimport classes from './classes.module.scss';\nimport { isXfmProgram, isPayg, getXfmFreeSetupMin } from '../../../../config/util';\nimport { renderDurationItemDiscountLabel, renderDurationItemPriceContainer } from './duration_selector_utils';\nimport { convertStringToCamelCase } from '../../../../../common/config/utils';\nimport Const from '../../../../config/const';\nimport { freeMinIcon } from '../../../advisor/img/free_min_icon';\nimport { SvgIcon } from '../../../../../common/sprites';\n\nconst { shared } = window;\n\nconst renderAdditionalOptionText = (additional, duration, selected, t) => (additional && duration === selected.duration) && t('chat.tap_hero_to_use_your_balance');\n\nconst renderMostPopularHeartInCircle = (mostPopular) => {\n if (!mostPopular) return null;\n return (\n <div className={ classes.mostPopularHeartInCircleContainer }>\n <SvgIcon id=\"heart_in_circle\" className={ classes.mostPopularHeartInCircleIcon } size={ 40 } />\n </div>\n );\n};\n\nconst renderFreeMinText = (freeMin, advisorXfmProgram, userXfmProgram, t) => {\n if (!freeMin || !isXfmProgram({ advisorXfmProgram, userXfmProgram })) return null;\n const freeMinText = t('advisor_profile.plus_free_min', { amount: getXfmFreeSetupMin() });\n return (\n <div className={ classes.freeMinLabelContainer }>\n <div className={ classes.freeMinIcon }>{ freeMinIcon({ color: shared.xfmLabelColor }) }</div>\n <div className={ classes.freeMinTextContainer }>{ freeMinText }</div>\n </div>\n );\n};\n\nconst renderDurationItemMinutesCount = (duration) => {\n let minutesCount = parseInt(duration / 60, 10);\n if (isPayg({ duration })) minutesCount = '∞'; // ∞\n return minutesCount;\n};\n\nconst renderDurationItemSecondsCount = (duration, t) => {\n if (isPayg({ duration })) return null;\n const minutes = parseInt(duration / 60, 10);\n const letfSeconds = (duration - minutes * 60);\n return letfSeconds && `${ letfSeconds } ${ t('chat.seconds') }`;\n};\n\nconst renderDurationItemMinutesText = (duration, texts, titleKey, subtitleKey, t) => {\n let text = t('chat.minutes');\n if (isPayg({ duration })) {\n text = (\n <div className={ classes.durationItemZenModePayContainer }>\n <div className={ classes.durationItemZenModeText }>\n {titleKey && texts[convertStringToCamelCase(titleKey)]}\n </div>\n <div className={ classes.durationItemPayAsYouGoText }>\n {subtitleKey && texts[convertStringToCamelCase(subtitleKey)]}\n </div>\n </div>\n );\n }\n return (\n <div className={ classes.durationItemMinutesTextContainer }>\n { text }\n </div>\n );\n};\n\nconst renderBottomContainer = ({\n duration, discountData, selected, selectDurationKind, t\n}) => {\n if (duration !== selected.duration) return null;\n if (selectDurationKind === Const.selectDurationKind.newUser) return null;\n return renderDurationItemDiscountLabel({ discountData, t });\n};\n\nfunction DurationItemComponent({\n duration, price, mostPopular, onClickAction, disabledStartChatButton, freeMin,\n isNewUser, advisorXfmProgram, userXfmProgram, selected, additional, titleKey, subtitleKey, texts, discountData, priceWithoutDiscount, selectDurationKind, availableSalesPrice, advisorModePricePerMinute\n}) {\n const { t } = useTranslation();\n const onClick = () => {\n if (disabledStartChatButton) return;\n onClickAction();\n };\n\n const onKeyDown = () => {};\n\n const renderDurationItem = () => (\n <div\n className={ classNames(classes.durationItem) }\n onClick={ onClick }\n onKeyDown={ onKeyDown }\n >\n <DurationItem\n key={ `DurationItem_duration_${ duration }_price_${ price }_priceWithoutDiscount_${ priceWithoutDiscount }` }\n selected={ duration === selected.duration }\n duration={ renderDurationItemMinutesCount(duration) }\n durationText={ renderDurationItemMinutesText(duration, texts, titleKey, subtitleKey, t) }\n durationSubText={ renderFreeMinText(freeMin, advisorXfmProgram, userXfmProgram, t) }\n priceContainer={ renderDurationItemPriceContainer({\n price, priceWithoutDiscount, isNewUser, additional, duration, availableSalesPrice, advisorModePricePerMinute\n }) }\n mostPopular={ renderMostPopularHeartInCircle(mostPopular) }\n isNewUser={ isNewUser }\n useYourBalanceText={ renderAdditionalOptionText(additional, duration, selected, t) }\n secondsText= { renderDurationItemSecondsCount(duration, t) }\n bottomContainer={ renderBottomContainer({\n duration, discountData, selected, selectDurationKind, t\n }) }\n />\n </div>\n );\n\n return renderDurationItem();\n}\n\nDurationItemComponent.propTypes = {\n duration: PropTypes.number.isRequired,\n price: PropTypes.number.isRequired,\n onClickAction: PropTypes.func.isRequired,\n disabledStartChatButton: PropTypes.bool.isRequired,\n mostPopular: PropTypes.bool,\n freeMin: PropTypes.number,\n isNewUser: PropTypes.bool.isRequired,\n advisorXfmProgram: PropTypes.object,\n userXfmProgram: PropTypes.object,\n selected: PropTypes.object,\n additional: PropTypes.bool,\n texts: PropTypes.object,\n titleKey: PropTypes.string,\n subtitleKey: PropTypes.string,\n discountData: PropTypes.object,\n priceWithoutDiscount: PropTypes.number,\n selectDurationKind: PropTypes.string,\n availableSalesPrice: PropTypes.number,\n advisorModePricePerMinute: PropTypes.string.isRequired\n};\n\nDurationItemComponent.defaultProps = {\n mostPopular: null,\n freeMin: null,\n advisorXfmProgram: {},\n userXfmProgram: {},\n selected: {},\n additional: false,\n texts: {},\n titleKey: null,\n subtitleKey: null,\n discountData: null,\n priceWithoutDiscount: null,\n selectDurationKind: null,\n availableSalesPrice: null\n};\n\nexport default DurationItemComponent;\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport 'react-responsive-carousel/lib/styles/carousel.min.css';\nimport { useTranslation } from 'react-i18next';\nimport { Carousel } from 'react-responsive-carousel';\nimport { getPosition } from 'react-responsive-carousel/lib/js/components/Carousel/utils';\nimport classes from './classes.module.scss';\nimport DurationItem from './duration_item';\nimport withPGTranslation from '../../../../config/withPGTranslation';\nimport {\n carouselHandleKeyPress, carouselSwipeMoveAction, getDurationOptionsClass, onCarouselSetSelected,\n carouselArrowPrevHandler, carouselArrowNextHandler, renderNewUserPaygPrice, renderNewUserPaygLabel, renderDurationItemDiscountLabel\n} from './duration_selector_utils';\nimport { trackPageVisit } from '../../../../actions/analytics';\nimport Const from '../../../../config/const';\nimport { getAvailableSalesPrice } from '../../../../config/util';\nimport { convertStringToCamelCase } from '../../../../../common/config/utils';\nimport { SvgIcon } from '../../../../../common/sprites';\n\nconst renderNewUserPaygBonusLabel = (bonusItems) => (bonusItems?.length > 0 ? (\n <div className={ bonusItems?.length > 1 ? classes.newUserPaygBonusLabelsHolder : classes.newUserPaygBonusLabelsHolderCentered }>\n {\n bonusItems?.map(bonusItem => (\n renderNewUserPaygLabel({ bonusItem })\n ))\n }\n </div>\n) : null);\n\nfunction DurationSelector({\n selected, isContinue, pricingOptions, onDurationClick,\n selectedCarouselDefaultItem, disabledStartChatButton, carouselRef, texts,\n isNewUser, setDefaultTransform, onKeyDown, loading, onSelect, selectedCarouselIndex, advisorXfmProgram, userXfmProgram, selectDurationKind, userAdvisorModeSalePrice, promoPrices, advisorModePricePerMinute\n}) {\n const { t } = useTranslation();\n const [carouselSwipeCurrentPosition, setCarouselSwipeCurrentPosition] = useState(0);\n const carouselArrowPrevRef = useRef(null);\n const carouselArrowNextRef = useRef(null);\n\n const carouselSwipeStartAction = (e) => {\n setCarouselSwipeCurrentPosition(e.changedTouches[0].pageX);\n };\n\n const carouselSetSelected = () => {\n setTimeout(() => {\n onCarouselSetSelected(carouselRef, pricingOptions, onSelect);\n return () => {};\n }, 100);\n };\n\n const carouselOnclickArrowNext = () => {\n carouselRef.current.onClickNext();\n carouselSetSelected();\n };\n\n const carouselOnclickArrowPrev = () => {\n carouselRef.current.onClickPrev();\n carouselSetSelected();\n };\n\n const carouselSwipeEndAction = () => {\n const currentPosition = getPosition(carouselRef.current.state.selectedItem, carouselRef.current.props);\n const transform = `translate3d(${ currentPosition }%, 0px, 0px);`;\n setDefaultTransform(\n carouselRef.current.state.selectedItem,\n carouselRef,\n pricingOptions,\n transform\n );\n };\n\n const onCarouselKeyPress = (e) => {\n carouselHandleKeyPress(\n e,\n carouselOnclickArrowNext,\n carouselOnclickArrowPrev,\n carouselRef,\n pricingOptions\n );\n };\n\n useEffect(() => {\n if (isContinue) {\n trackPageVisit('add time popup');\n } else trackPageVisit('duration picker popup');\n document.activeElement.blur();\n }, []);\n\n const onCarouselSwipe = (e) => {\n carouselSwipeMoveAction({\n e, carouselRef, carouselSwipeCurrentPosition, setCarouselSwipeCurrentPosition, carouselSetSelected,\n pricingOptions, getCarouselPosition: getPosition\n });\n };\n\n useEffect(() => {\n if (!carouselRef.current) return () => {};\n const list = carouselRef.current.listRef || null;\n if (list) {\n list.addEventListener('touchmove', onCarouselSwipe, { passive: true });\n return () => list.removeEventListener('touchmove', onCarouselSwipe, { passive: true });\n }\n return () => {};\n }, [carouselSwipeCurrentPosition]);\n\n useEffect(() => {\n const list = carouselRef.current && carouselRef.current.listRef;\n const carouselWrapper = carouselRef.current && carouselRef.current.carouselWrapperRef;\n if (!loading && list && carouselWrapper) {\n list.addEventListener('touchstart', carouselSwipeStartAction, { passive: true });\n list.addEventListener('touchend', carouselSwipeEndAction);\n carouselWrapper.addEventListener('keydown', onCarouselKeyPress);\n carouselWrapper.focus();\n return () => {\n list.removeEventListener('touchstart', carouselSwipeStartAction, { passive: true });\n list.removeEventListener('touchend', carouselSwipeEndAction);\n carouselWrapper.removeEventListener('keydown', onCarouselKeyPress);\n };\n }\n return () => {};\n }, [loading, carouselRef.current]);\n\n const carouselArrowPrev = () => (\n carouselArrowPrevHandler({\n carouselRef, carouselOnclickArrowPrev, onKeyDown, carouselArrowPrevRef\n })\n );\n\n const carouselArrowNext = () => (\n carouselArrowNextHandler({\n carouselRef,\n pricingOptions,\n carouselOnclickArrowNext,\n onKeyDown,\n carouselArrowNextRef\n })\n );\n\n const renderDurationOptions = (options) => (\n options.map((option, index) => (\n <div\n key={ option.duration }\n className={\n getDurationOptionsClass(option, selected, index, selectedCarouselIndex, isNewUser)\n }\n >\n <DurationItem\n { ...option }\n priceWithoutDiscount={ parseFloat(option?.priceWithoutDiscount) }\n onClickAction={ () => onDurationClick(option, index) }\n isContinue={ isContinue }\n disabledStartChatButton={ disabledStartChatButton }\n isNewUser={ isNewUser }\n advisorXfmProgram={ advisorXfmProgram }\n userXfmProgram={ userXfmProgram }\n selected={ selected }\n texts={ texts }\n selectDurationKind={ selectDurationKind }\n availableSalesPrice={ parseFloat(getAvailableSalesPrice({ promoPrices, userAdvisorModeSalePrice })) }\n advisorModePricePerMinute={ advisorModePricePerMinute }\n />\n </div>\n ))\n );\n\n const renderNewUserDurationOptions = () => (\n <div className={ classes.newUserDurationOptions }>{renderDurationOptions(pricingOptions.filter(({ additional }) => !additional))}</div>\n );\n\n const renderNewUserPayg = () => {\n const {\n price, bonusItems, discountData, titleKey, subtitleKey\n } = selected;\n const availableSalesPrice = getAvailableSalesPrice({ promoPrices, userAdvisorModeSalePrice });\n return (\n <div key={ `NewUserPayg_${ price }_${ availableSalesPrice }_${ userAdvisorModeSalePrice }` } className={ classes.newUserPaygContainer }>\n <div className={ classes.newUserPaygImgContainer }>\n <SvgIcon id=\"new_user_payg_icon\" className={ classes.newUserPaygImg } size={ [101, 50] } />\n </div>\n <div className={ classes.newUserPaygTitle }>\n {titleKey && texts[convertStringToCamelCase(titleKey)]}\n </div>\n <div className={ classes.newUserPaygPayAsYouGoText }>\n {subtitleKey && texts[convertStringToCamelCase(subtitleKey)]}\n </div>\n { renderNewUserPaygPrice({ price, availableSalesPrice }) }\n { renderDurationItemDiscountLabel({ discountData, t }) }\n { renderNewUserPaygBonusLabel(bonusItems) }\n </div>\n );\n };\n\n const renderCarousel = () => (\n <Carousel\n showIndicators={ false }\n showThumbs={ false }\n showStatus={ false }\n className = \"select-chat-credit-carousel\"\n selectedItem={ selectedCarouselDefaultItem }\n ref={ carouselRef }\n renderArrowPrev={ carouselArrowPrev }\n renderArrowNext={ carouselArrowNext }\n swipeable={ false }\n centerSlidePercentage= { 66 }\n centerMode\n showArrows={ false }\n onClickItem={ carouselSetSelected }\n >\n {renderDurationOptions(pricingOptions)}\n </Carousel>\n );\n\n const renderDurationSelector = () => {\n let content;\n switch (selectDurationKind) {\n case Const.selectDurationKind.newUser:\n content = renderNewUserDurationOptions();\n break;\n case Const.selectDurationKind.newUserPayg:\n content = renderNewUserPayg();\n break;\n default:\n content = renderCarousel();\n break;\n }\n return content;\n };\n\n return (\n <div key={ `DurationSelector_${ loading }_${ userAdvisorModeSalePrice }` } className={ classes.durationOptinsContainer } style={ isNewUser ? { overflow: 'unset' } : {} }>\n <div onKeyDown={ onKeyDown }>\n { renderDurationSelector() }\n </div>\n </div>\n );\n}\n\nDurationSelector.propTypes = {\n selected: PropTypes.object,\n isContinue: PropTypes.bool,\n pricingOptions: PropTypes.array,\n selectedCarouselDefaultItem: PropTypes.number,\n disabledStartChatButton: PropTypes.bool.isRequired,\n carouselRef: PropTypes.object,\n onDurationClick: PropTypes.func.isRequired,\n loading: PropTypes.bool,\n isNewUser: PropTypes.bool,\n setDefaultTransform: PropTypes.func.isRequired,\n onKeyDown: PropTypes.func.isRequired,\n onSelect: PropTypes.func.isRequired,\n selectedCarouselIndex: PropTypes.number,\n advisorXfmProgram: PropTypes.object,\n userXfmProgram: PropTypes.object,\n selectDurationKind: PropTypes.string,\n userAdvisorModeSalePrice: PropTypes.string,\n promoPrices: PropTypes.object,\n texts: PropTypes.object,\n advisorModePricePerMinute: PropTypes.string.isRequired\n};\n\nDurationSelector.defaultProps = {\n selected: null,\n isContinue: false,\n pricingOptions: [],\n selectedCarouselDefaultItem: null,\n carouselRef: null,\n loading: false,\n isNewUser: false,\n selectedCarouselIndex: null,\n advisorXfmProgram: {},\n userXfmProgram: {},\n selectDurationKind: null,\n userAdvisorModeSalePrice: null,\n promoPrices: {},\n texts: {}\n};\n\nexport default withPGTranslation(DurationSelector);\n","import React from 'react';\n\nexport const leftArrow = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M20 12H4M4 12L10 6M4 12L10 18\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\n","import React from 'react';\n\nexport const rightArrow = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M4 12H20M20 12L14 6M20 12L14 18\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\n","import React from 'react';\nimport { Trans } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport Const from '../../../config/const';\nimport { isPayg } from '../../../config/util';\nimport { renderDurationItemDiscountLabel } from './duration_selector/duration_selector_utils';\n\nconst continueDefaultDuration = (\n onSelect,\n setSelectedCarouselDefaultItem,\n pricingOptions,\n setDefaultDurationChanged,\n isNewUser\n) => {\n pricingOptions.map((option, index) => { //eslint-disable-line\n if (option.default && !(isNewUser && option.additional)) {\n onSelect({ ...option, selectedCarouselIndex: index });\n setSelectedCarouselDefaultItem(index);\n setDefaultDurationChanged(false);\n }\n });\n};\n\nexport const setDefaultSelected = (\n onSelect,\n pricingOptions,\n selectedCarouselIndex,\n setSelectedCarouselDefaultItem,\n setDefaultDurationChanged,\n newUserPaygPricingOption,\n isNewUser\n) => {\n if (newUserPaygPricingOption && Object.keys(newUserPaygPricingOption).length > 0) {\n const { price } = newUserPaygPricingOption;\n onSelect({\n ...newUserPaygPricingOption, price: parseFloat(price), duration: -1, payAsYouGo: true\n });\n return;\n }\n if (selectedCarouselIndex !== null\n && selectedCarouselIndex <= pricingOptions.length - 1) {\n const selectedOption = pricingOptions[selectedCarouselIndex];\n onSelect({ ...selectedOption, selectedCarouselIndex });\n setSelectedCarouselDefaultItem(selectedCarouselIndex);\n }\n if (selectedCarouselIndex === null) {\n continueDefaultDuration(\n onSelect,\n setSelectedCarouselDefaultItem,\n pricingOptions,\n setDefaultDurationChanged,\n isNewUser\n );\n }\n};\n\nexport const setDefaultTransform = (index, carouselRef, pricingOptions, transform) => {\n if (!carouselRef || !carouselRef.current || !carouselRef.current.listRef) return;\n const selectedIndex = index;\n const currentTransform = transform || carouselRef.current.listRef.style.transform;\n if (selectedIndex === 0) {\n carouselRef.current.listRef.setAttribute('style', `left:18%; transform: ${ currentTransform };`);\n return;\n }\n if (selectedIndex === pricingOptions.length - 1) {\n carouselRef.current.listRef.setAttribute('style', `right:18%; transform: ${ currentTransform };`);\n return;\n }\n carouselRef.current.listRef.setAttribute('style', `left:0; right:0; transform: ${ currentTransform };`);\n};\n\nconst renderNumber = number => (number < 10 ? `0${ number }` : number);\n\nconst renderAdditionalTime = (additionalOption) => {\n const minutes = renderNumber(parseInt(additionalOption.duration / 60, 10));\n const remainigSeconds = renderNumber(additionalOption.duration % 60);\n const additionalTime = additionalOption.duration % 60 ? `${ minutes }:${ remainigSeconds }` : parseInt(additionalOption.duration / 60, 10);\n return additionalTime;\n};\n\nexport const renderAdditionalOption = (additionalOption, onClickCurrentBalance, onKeyDown, t, selectDurationKind) => (\n (additionalOption && selectDurationKind === Const.selectDurationKind.newUser) ? (\n <div className={ classes.additionalOptionContainer }>\n <div\n className={ classes.additionalOption }\n onClick={ onClickCurrentBalance }\n onKeyDown={ onKeyDown }\n >\n <Trans\n i18nKey=\"chat.use_your_balance\"\n components={ {\n bold:<b className={ classes.colorAdditionalText } />\n } }\n values={ {\n balance: parseFloat(additionalOption.price).toFixed(2),\n duration: renderAdditionalTime(additionalOption)\n } }\n />\n </div>\n </div>\n ) : null);\n\nexport const renderTitle = (chatType, isContinue, name, t, selectDurationKind) => {\n if (selectDurationKind === Const.selectDurationKind.newUserPayg) return null;\n let titleLabel;\n switch (chatType) {\n case Const.chatType.text:\n titleLabel = t('chat.select_chat_duration');\n break;\n case Const.chatType.video:\n titleLabel = t('chat.select_video_duration');\n break;\n case Const.chatType.voice:\n titleLabel = t('chat.select_voice_duration');\n break;\n default:\n break;\n }\n if (isContinue && selectDurationKind === Const.selectDurationKind.newUser) {\n return (\n <div className={ classes.titleContainer }>\n <div className={ classes.continueCallText }>{t('chat.continue_call')}</div>\n <div className={ classes.advisorNameText }>{t('chat.advisor_name', { name })}</div>\n </div>\n );\n }\n if (isContinue) return t('chat.add_time');\n\n return titleLabel;\n};\n\nexport const renderThisChargeTakesIntoAccountLabel = ({ duration, clientAvailableCredit }) => {\n if (isPayg({ duration })) return null;\n if (clientAvailableCredit >= 0) return null;\n const formater = Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD'\n });\n\n return (\n <span className={ classes.paygLabelText }>\n <Trans\n i18nKey= \"chat.this_charge_takes_into_account_your_current_debt_of\"\n values={ { amount: formater.format(Math.abs(clientAvailableCredit)) } }\n />\n </span>\n );\n};\n\nexport const renderInfoLabel = ({ infoLabelText, selectDurationKind }) => {\n if (selectDurationKind === Const.selectDurationKind.newUserPayg) return null;\n return (\n <span className={ classes.descriptionText }>\n { infoLabelText }\n </span>\n );\n};\n\nconst renderSaveOverText = ({ saveAmount }) => {\n if (!saveAmount || saveAmount <= 0) return null;\n return (\n <div className={ classes.saveUpDiscountLabelAmount }>\n <Trans\n i18nKey= \"chat.save_up_save_over\"\n values={ { saveAmount: Math.floor(saveAmount) } }\n />\n </div>\n );\n};\n\nexport const renderSaveUpLabel = ({ newUserPaygPricingOption }) => {\n const { saveAmount, discount } = newUserPaygPricingOption;\n const parsedSaveAmount = parseFloat(saveAmount);\n if (discount) {\n return (\n <div className={ classes.saveUpLabelContainer }>\n <div className={ classes.saveUpLabelTextContainer }>\n <div className={ classes.saveUpDiscountLabelText }>\n <Trans\n i18nKey= \"chat.save_up_sale\"\n values={ { discount } }\n />\n </div>\n { renderSaveOverText({ saveAmount: parsedSaveAmount }) }\n </div>\n </div>\n );\n }\n if (saveAmount && parsedSaveAmount > 0) {\n return (\n <div className={ classes.saveUpLabelContainer }>\n <div className={ classes.saveUpLabelTextContainer }>\n <div className={ classes.saveUpLabelText }>\n <Trans\n i18nKey= \"chat.save_up_to\"\n />\n </div>\n <div className={ classes.saveUpLabelAmount }>\n { `$${ parsedSaveAmount.toFixed(2) }` }\n </div>\n </div>\n </div>\n );\n }\n return null;\n};\n\nexport const renderZenModeLabel = ({ selectDurationKind, infoLabelText }) => {\n if (selectDurationKind !== Const.selectDurationKind.newUserPayg) return null;\n return (\n <div className={ classes.zenModeLabelContainer }>\n { infoLabelText}\n </div>\n );\n};\n\nexport const renderNewUserPaygAvailableBalanceLabel = ({ selectDurationKind, clientAvailableCredit, t }) => {\n const parsedClientAvailableCredit = parseFloat(clientAvailableCredit);\n if (selectDurationKind !== Const.selectDurationKind.newUserPayg || parsedClientAvailableCredit <= 0) return null;\n return (\n <div className={ classes.newUserPaygYourAvailableBalanceContainer }>\n { t('chat.your_available_balance_is', { balance: parsedClientAvailableCredit.toFixed(2) }) }\n </div>\n );\n};\n\nexport const renderDurationItemDiscountLabelForNewUser = ({ discountData, selectDurationKind, t }) => {\n if (selectDurationKind !== Const.selectDurationKind.newUser) return null;\n return renderDurationItemDiscountLabel({ discountData, t });\n};\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport Const from '../../../config/const';\nimport { purchaseDetailsTypes } from '../../../../common/config/const';\nimport classes from './classes.module.scss';\nimport ContinueCallFooter from './continue_call';\nimport StartCallFooter from './start_call';\nimport withPGTranslation from '../../../config/withPGTranslation';\nimport { log, LOG_LEVELS } from '../../../../common/config/app_logger';\nimport env from '../../../config/variables';\nimport DurationSelector from './duration_selector/duration_selector';\nimport {\n setDefaultTransform, setDefaultSelected, renderTitle, renderThisChargeTakesIntoAccountLabel, renderInfoLabel, renderAdditionalOption, renderSaveUpLabel, renderZenModeLabel, renderNewUserPaygAvailableBalanceLabel,\n renderDurationItemDiscountLabelForNewUser\n} from './select_chat_credit_utils';\nimport Spiner from '../../../../common/helpers/spiner';\nimport { isWebView, convertStringToCamelCase } from '../../../../common/config/utils';\nimport { SvgIcon } from '../../../../common/sprites';\n\nconst { shared } = window;\n\nconst durationChanged = (selected, option, setDefaultDurationChanged) => {\n if (selected.duration && !(option.duration === selected.duration) && !option.default) setDefaultDurationChanged(true);\n if (option.default) setDefaultDurationChanged(false);\n};\n\nconst renderClientAvailableCredit = ({ loading, clientAvailableCredit }) => {\n if (loading) return <span className={ classes.clientAvailableCreditSkeleton } />;\n return `$${ clientAvailableCredit }`;\n};\n\nfunction SelectChatCredit({\n pricingOptions, cancelChat, selectCredit, advisorId, name, selectDurationOption,\n isContinue, clientAvailableCredit, t, loadPricingOptions, loading, selectedCarouselIndex,\n disabledStartChatButton, chatType, displayAffiliatePromoPopupAction, userMatchUpBonusInfo,\n userShowMatchUpBonusInfo, clearAffiliatePromoPopup, isNewUser, trackDurationPickExit, selectorOpenedTime,\n selectDurationKind, advisorXfmProgram, userXfmProgram, newUserPaygPricingOption, userAdvisorModeSalePrice, texts, promoPrices, advisorModePricePerMinute\n}) {\n const [selected, setSelected] = useState({});\n const [defaultDurationChanged, setDefaultDurationChanged] = useState(false);\n const [selectedCarouselDefaultItem, setSelectedCarouselDefaultItem] = useState(0);\n const carouselRef = useRef(null);\n const additionalOption = pricingOptions.find(({ additional }) => additional);\n\n const onBackButtonEvent = () => {\n if (!isContinue) {\n cancelChat();\n }\n };\n\n const onSelect = (option) => {\n log(LOG_LEVELS.INFO, 'Chat', `selected option ${ JSON.stringify(option) } isContinue: ${ isContinue }`);\n durationChanged(selected, option, setDefaultDurationChanged);\n setSelected(option);\n };\n\n useEffect(() => {\n setDefaultTransform(selected.selectedCarouselIndex, carouselRef, pricingOptions);\n }, [selected]);\n\n useEffect(() => {\n if (((!pricingOptions || pricingOptions.length === 0) && !isContinue)) {\n loadPricingOptions(advisorId);\n }\n window.history.pushState(null, null, window.location.pathname);\n window.addEventListener('popstate', onBackButtonEvent);\n return () => {\n window.removeEventListener('popstate', onBackButtonEvent);\n };\n }, []);\n\n useEffect(() => {\n setDefaultSelected(onSelect, pricingOptions, selectedCarouselIndex, setSelectedCarouselDefaultItem, setDefaultDurationChanged, newUserPaygPricingOption, isNewUser);\n }, [pricingOptions, newUserPaygPricingOption]);\n\n const startChat = () => {\n log(LOG_LEVELS.INFO, 'Chat', `on start chat isContinue: ${ isContinue }`);\n const exitTime = new Date();\n const time = exitTime - selectorOpenedTime;\n selectCredit(selected, time, defaultDurationChanged, isContinue);\n };\n\n const onKeyDown = (e) => {\n if (e.key === 'Enter') { startChat(); }\n };\n\n const onClickCurrentBalance = () => {\n log(LOG_LEVELS.INFO, 'Chat', `on use current balance, isContinue: ${ isContinue }`);\n const exitTime = new Date();\n const time = exitTime - selectorOpenedTime;\n onSelect(additionalOption);\n selectCredit(additionalOption, time, defaultDurationChanged, isContinue);\n };\n\n const renderClientCreditBalance = () => (\n clientAvailableCredit > 0 && selectDurationKind !== Const.selectDurationKind.newUserPayg ? (\n <div\n className={ classes.clientCreditBalanceContainer }\n >\n { t('chat.credit_balance') }\n :\n {' '}\n {renderClientAvailableCredit({ loading, clientAvailableCredit: parseFloat(clientAvailableCredit).toFixed(2) })}\n </div>\n ) : null\n );\n\n const renderFooter = () => {\n const { duration, descriptionKey } = selected;\n const infoLabelText = descriptionKey ? texts[convertStringToCamelCase(descriptionKey)] : null;\n const content = isContinue ? (\n <ContinueCallFooter chatType={ chatType } option={ selected } selectedDuration={ duration } defaultDurationChanged={ defaultDurationChanged } selectorOpenedTime={ selectorOpenedTime } />\n ) : (\n <StartCallFooter option={ selected } chatType={ chatType } defaultDurationChanged={ defaultDurationChanged } selectorOpenedTime={ selectorOpenedTime } selectDurationKind={ selectDurationKind } />\n );\n\n return (\n <div className={ classes.infoBottomContainer }>\n { renderThisChargeTakesIntoAccountLabel({ duration, clientAvailableCredit, t }) }\n { renderInfoLabel({ infoLabelText, selectDurationKind }) }\n {content}\n { renderNewUserPaygAvailableBalanceLabel({ selectDurationKind, clientAvailableCredit, t }) }\n { renderZenModeLabel({ selectDurationKind, infoLabelText }) }\n </div>\n );\n };\n\n const onCloseIconClick = () => {\n const exitTime = new Date();\n const time = exitTime - selectorOpenedTime;\n const arg = chatType === Const.chatType.text ? selected : selected.duration;\n clearAffiliatePromoPopup();\n trackDurationPickExit(arg, time, defaultDurationChanged);\n cancelChat();\n };\n\n const renderCloseIcon = () => (isContinue ? null : (\n <button type=\"button\" className={ classes.closeBtn } onClick={ onCloseIconClick }>\n <SvgIcon id=\"close_icon\" className={ classes.closeIcon } size={ 20 } />\n </button>\n ));\n\n useEffect(() => {\n const { MATCH_UP_BONUS_INFO } = env;\n const creditMatchingInfo = userMatchUpBonusInfo || MATCH_UP_BONUS_INFO;\n if (creditMatchingInfo\n && Object.keys(creditMatchingInfo).length !== 0\n && (userShowMatchUpBonusInfo === null || userShowMatchUpBonusInfo)\n && Object.keys(selected).length !== 0) {\n const additionParams = {\n noNeedCloseIcon: true, chatType, needUpdatePricingOptions: true, onSelectDuration: true, onCloseIconClick\n };\n if (!isWebView()) {\n displayAffiliatePromoPopupAction(creditMatchingInfo, purchaseDetailsTypes.AFFILIATE_PROMO_POPUP, additionParams);\n }\n }\n }, [userMatchUpBonusInfo, userShowMatchUpBonusInfo, selected]);\n\n const onSelectDurationOption = (option, index) => {\n selectDurationOption(option, isContinue, isNewUser, index);\n onSelect({ ...option, selectedCarouselIndex: index });\n };\n\n const onDurationClick = (option, index) => (!isNewUser ? startChat()\n : onSelectDurationOption(option, index));\n\n const getDurationsSelectorProps = () => {\n const durationsSelectorProps = {\n selected, isContinue, pricingOptions, onDurationClick, selectedCarouselDefaultItem, disabledStartChatButton, carouselRef,\n isNewUser, setDefaultTransform, onKeyDown, loading, onSelect, selectedCarouselIndex, selectDurationKind, advisorXfmProgram,\n userXfmProgram, clientAvailableCredit, userAdvisorModeSalePrice, texts, promoPrices, advisorModePricePerMinute\n };\n return durationsSelectorProps;\n };\n\n return (\n <div key={ `SelectChatCredit__${ clientAvailableCredit }_${ userAdvisorModeSalePrice }_${ loading }` } className={ classes.container }>\n { loading ? <Spiner loaderColor={ shared.appColor } className={ classes.loader } /> : null }\n {renderCloseIcon()}\n {renderSaveUpLabel({ newUserPaygPricingOption })}\n <div className={ selectDurationKind === Const.selectDurationKind.newUser ? classes.newUserContainerWithIcon : classes.containerWithIcon }>\n <div className={ classes.dialogContainer } style={ selectDurationKind === Const.selectDurationKind.newUserPayg ? { background: 'var(--app-white)' } : {} }>\n <div className={ classes.selectTitleContainer } style={ { marginTop: isContinue && selectDurationKind === Const.selectDurationKind.newUser ? '80px' : '40px' } }>\n <b>{renderTitle(chatType, isContinue, name, t, selectDurationKind)}</b>\n </div>\n <DurationSelector key={ `DurationSelector_${ clientAvailableCredit }_${ userAdvisorModeSalePrice }_${ loading }` } { ...getDurationsSelectorProps() } />\n { renderDurationItemDiscountLabelForNewUser({ discountData: selected.discountData, selectDurationKind, t }) }\n {renderAdditionalOption(additionalOption, onClickCurrentBalance, onKeyDown, t, selectDurationKind) || renderClientCreditBalance()}\n {renderFooter()}\n </div>\n </div>\n </div>\n );\n}\n\nSelectChatCredit.propTypes = {\n cancelChat: PropTypes.func.isRequired,\n selectCredit: PropTypes.func.isRequired,\n t: PropTypes.func.isRequired,\n pricingOptions: PropTypes.arrayOf(\n PropTypes.shape({\n price: PropTypes.number.isRequired,\n duration: PropTypes.number.isRequired,\n default: PropTypes.bool.isRequired,\n additional: PropTypes.bool.isRequired\n })\n ),\n clientAvailableCredit: PropTypes.string,\n isContinue: PropTypes.bool,\n loadPricingOptions: PropTypes.func.isRequired,\n advisorId: PropTypes.number.isRequired,\n loading: PropTypes.bool,\n selectedCarouselIndex: PropTypes.number,\n disabledStartChatButton: PropTypes.bool.isRequired,\n chatType: PropTypes.string.isRequired,\n displayAffiliatePromoPopupAction: PropTypes.func.isRequired,\n userMatchUpBonusInfo: PropTypes.object,\n userShowMatchUpBonusInfo: PropTypes.bool,\n clearAffiliatePromoPopup: PropTypes.func.isRequired,\n requestParams: PropTypes.object,\n isNewUser: PropTypes.bool,\n name: PropTypes.string.isRequired,\n trackDurationPickExit: PropTypes.func.isRequired,\n selectorOpenedTime: PropTypes.instanceOf(Date).isRequired,\n selectDurationOption: PropTypes.func.isRequired,\n selectDurationKind: PropTypes.string,\n advisorXfmProgram: PropTypes.object,\n userXfmProgram: PropTypes.object,\n newUserPaygPricingOption: PropTypes.object,\n userAdvisorModeSalePrice: PropTypes.string,\n texts: PropTypes.object,\n promoPrices: PropTypes.object,\n advisorModePricePerMinute: PropTypes.string.isRequired\n};\n\nSelectChatCredit.defaultProps = {\n isContinue: false,\n clientAvailableCredit: null,\n pricingOptions: [],\n loading: false,\n selectedCarouselIndex: null,\n userMatchUpBonusInfo: null,\n userShowMatchUpBonusInfo: null,\n requestParams: null,\n isNewUser: false,\n selectDurationKind: null,\n advisorXfmProgram: {},\n userXfmProgram: {},\n newUserPaygPricingOption: {},\n userAdvisorModeSalePrice: null,\n texts: {},\n promoPrices: {}\n};\n\nexport default withPGTranslation(SelectChatCredit);\n","import { connect } from 'react-redux';\nimport Const from '../../../config/const';\nimport SelectChatCredit from './select_chat_credit';\nimport {\n selectCredit,\n cancelChat,\n loadPricingOptions,\n trackDurationPickExit,\n selectDurationOption\n} from '../../../actions/chat';\nimport {\n cancelVoipChat,\n loadVoipPricingOptions,\n selectVoipCredit,\n trackVoipDurationPickExit,\n selectVoipDurationOption\n} from '../../../actions/voip_chat';\nimport withPGTranslation from '../../../config/withPGTranslation';\nimport { displayAffiliatePromoPopupAction, clearAffiliatePromoPopup } from '../../../actions/affiliate_promo_popup';\nimport { getUserFirstActivePromotion, getUserMatchUpBonusInfo } from '../../../config/util';\n\nconst getAdvisorXfmProgram = ({ advisors, advisorId }) => {\n const advisor = (advisors || {})[parseInt(advisorId, 10)];\n return advisor && advisor.xfmProgram;\n};\n\nconst getAdvisorMode = ({ advisors, advisorId, chatType }) => {\n const advisor = (advisors || {})[parseInt(advisorId, 10)];\n const liveModes = advisor && advisor.liveModes;\n const advisorMode = liveModes.find(mode => mode.mode === Const.chatTypeToModeName[chatType]);\n return advisorMode;\n};\n\nconst getAdvisorModePromoPrices = ({ advisors, advisorId, chatType }) => {\n const advisorMode = getAdvisorMode({ advisors, advisorId, chatType });\n return advisorMode.promoPrices;\n};\n\nconst getAdvisorModePricePerMinute = ({ advisors, advisorId, chatType }) => {\n const advisorMode = getAdvisorMode({ advisors, advisorId, chatType });\n return advisorMode.price;\n};\n\nconst mapStateToProps = ({\n chat, voipChat, user: { user }, advisors, application\n}, { isContinue, chatType }) => {\n switch (chatType) {\n case Const.chatType.text:\n return ({\n ...chat,\n isContinue,\n clientAvailableCredit: user && user.clientAvailableCredit,\n disabledStartChatButton:\n chat.state !== Const.chatStates.appInitial\n && chat.state !== Const.chatStates.paused,\n userMatchUpBonusInfo: getUserMatchUpBonusInfo({ bonusInfos: user && user.bonusInfos }),\n userShowMatchUpBonusInfo: user && user.showMatchUpBonusInfo,\n isNewUser: chat && chat.selectDurationKind === Const.selectDurationKind.newUser,\n advisorXfmProgram: getAdvisorXfmProgram({ advisors, advisorId: chat.advisorId }),\n userXfmProgram: user && user.xfmProgram,\n loading: chat.loading || (user && user.paymentProcessing),\n selectDurationKind: chat && chat.selectDurationKind,\n userAdvisorModeSalePrice: getUserFirstActivePromotion({ user, application })?.advisorModeSalePrice,\n promoPrices: getAdvisorModePromoPrices({ advisors, advisorId: chat.advisorId, chatType }),\n advisorModePricePerMinute: getAdvisorModePricePerMinute({ advisors, advisorId: chat.advisorId, chatType })\n });\n case Const.chatType.voice:\n case Const.chatType.video:\n return ({\n ...voipChat,\n isContinue,\n clientAvailableCredit: user && user.clientAvailableCredit,\n disabledStartChatButton:\n voipChat.voipState !== Const.voipChatStates.initial\n && voipChat.voipState !== Const.voipChatStates.paused,\n userMatchUpBonusInfo: getUserMatchUpBonusInfo({ bonusInfos: user && user.bonusInfos }),\n userShowMatchUpBonusInfo: user && user.showMatchUpBonusInfo,\n isNewUser: voipChat && voipChat.selectDurationKind === Const.selectDurationKind.newUser,\n advisorXfmProgram: getAdvisorXfmProgram({ advisors, advisorId: voipChat.advisorId }),\n userXfmProgram: user && user.xfmProgram,\n loading: voipChat.loading || (user && user.paymentProcessing),\n selectDurationKind: voipChat && voipChat.selectDurationKind,\n userAdvisorModeSalePrice: getUserFirstActivePromotion({ user, application })?.advisorModeSalePrice,\n promoPrices: getAdvisorModePromoPrices({ advisors, advisorId: voipChat.advisorId, chatType }),\n advisorModePricePerMinute: getAdvisorModePricePerMinute({ advisors, advisorId: voipChat.advisorId, chatType })\n });\n default:\n return null;\n }\n};\n\nconst defaultFunctions = (dispatch) => ({\n displayAffiliatePromoPopupAction: (creditMatchingInfo, type, additionParams) => {\n dispatch(displayAffiliatePromoPopupAction(creditMatchingInfo, type, additionParams));\n },\n clearAffiliatePromoPopup: () => dispatch(clearAffiliatePromoPopup())\n});\n\nconst defaultVoipFunctions = (dispatch) => ({\n selectCredit: (option, time, defaultDurationChanged, isContinue) => dispatch(\n selectVoipCredit(option, time, defaultDurationChanged, isContinue)\n ),\n cancelChat: () => dispatch(cancelVoipChat()),\n trackDurationPickExit: (duration, time, defaultDurationChanged) => dispatch(\n trackVoipDurationPickExit(duration, time, defaultDurationChanged)\n ),\n selectDurationOption: (option, onContinue, isNewUser, index) => dispatch(\n selectVoipDurationOption(option, onContinue, isNewUser, index)\n )\n});\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n switch (ownProps.chatType) {\n case Const.chatType.text:\n return ({\n selectCredit: (option, time, defaultDurationChanged, isContinue) => dispatch(\n selectCredit(option, time, defaultDurationChanged, isContinue)\n ),\n cancelChat: () => dispatch(cancelChat()),\n loadPricingOptions: (advisorId) => dispatch(loadPricingOptions('chat', advisorId)),\n trackDurationPickExit: (option, time, defaultDurationChanged) => dispatch(\n trackDurationPickExit(option, time, defaultDurationChanged)\n ),\n selectDurationOption: (option, isContinue, isNewUser, index) => dispatch(\n selectDurationOption(option, isContinue, isNewUser, index)\n ),\n ...defaultFunctions(dispatch)\n });\n case Const.chatType.video:\n return ({\n loadPricingOptions: (advisorId) => dispatch(loadVoipPricingOptions('video', advisorId)),\n ...defaultVoipFunctions(dispatch),\n ...defaultFunctions(dispatch)\n });\n case Const.chatType.voice:\n return ({\n loadPricingOptions: (advisorId) => dispatch(loadVoipPricingOptions('voice', advisorId)),\n ...defaultVoipFunctions(dispatch),\n ...defaultFunctions(dispatch)\n });\n default:\n return null;\n }\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(withPGTranslation(SelectChatCredit));\n","// extracted by mini-css-extract-plugin\nexport default {\"notInLiveModeContainer\":\"notInLiveModeContainer--hB9nT\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport AppGeneralPopup from '../../../../common/app_general_popup';\n\nfunction NotInLiveMode({ cancelChat, t }) {\n return (\n <AppGeneralPopup closeButtonAction={ cancelChat }>\n <div className={ classes.notInLiveModeContainer }>\n { t('advisor_cannot_accept_the_chat_now') }\n </div>\n </AppGeneralPopup>\n );\n}\n\nNotInLiveMode.propTypes = {\n cancelChat: PropTypes.func.isRequired,\n t: PropTypes.func.isRequired\n};\n\nexport default NotInLiveMode;\n","import { connect } from 'react-redux';\nimport Const from '../../../config/const';\nimport NotInLiveMode from './not_in_live_mode';\nimport { cancelChat } from '../../../actions/chat';\nimport { cancelVoipChat } from '../../../actions/voip_chat';\nimport withPGTranslation from '../../../config/withPGTranslation';\n\nconst mapStateToProps = ({ chat, voipChat }, { chatType }) => {\n switch (chatType) {\n case Const.chatType.text:\n return ({ ...chat });\n case Const.chatType.voice:\n case Const.chatType.video:\n return ({ ...voipChat });\n default:\n return null;\n }\n};\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n switch (ownProps.chatType) {\n case Const.chatType.text:\n return ({\n cancelChat: () => dispatch(cancelChat())\n });\n case Const.chatType.voice:\n case Const.chatType.video:\n return ({\n cancelChat: () => dispatch(cancelVoipChat())\n });\n default:\n return null;\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withPGTranslation(NotInLiveMode));\n","// extracted by mini-css-extract-plugin\nexport default {\"dialogTitle\":\"dialogTitle--aQEZ1\",\"dialogText\":\"dialogText--wT6um\",\"cancelButton\":\"cancelButton--po68L\",\"link\":\"link--L3soH\",\"okBtn\":\"okBtn--Sjmqk\",\"animation-bzdot9\":\"animation-bzdot9--U7jga\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { browserName } from 'react-device-detect';\nimport { Trans, useTranslation } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport { downloadAppLink } from '../../../../common/config/utils';\nimport Const, { appGeneralPopupTheme } from '../../../config/const';\nimport AppGeneralPopup from '../../../../common/app_general_popup';\n\nconst extractErrors = (error) => {\n if (error.errors) {\n return error.errors.map((e, i) => <div key={ i }>{e}</div>);\n }\n if (error.voipErrors) {\n return error.voipErrors.map((e, i) => <div key={ i }>{e}</div>);\n }\n return null;\n};\n\nconst getLearnMoreLink = () => {\n switch (browserName) {\n case 'Chrome':\n return 'https://support.google.com/chrome/answer/2693767?co=GENIE.Platform%3DDesktop&hl=en';\n case 'Firefox':\n return 'https://support.mozilla.org/en-US/kb/how-manage-your-camera-and-microphone-permissions';\n case 'Safar':\n return 'https://support.apple.com/en-il/guide/safari/ibrwe2159f50/mac';\n case 'Opera':\n return 'https://help.opera.com/en/opera36/set-web-preferences/';\n default:\n return 'https://www.online-tech-tips.com/computer-tips/how-to-block-camera-and-mic-access-in-every-major-browser/';\n }\n};\n\nconst renderTitle = (permissionDeniedError) => {\n if (permissionDeniedError) {\n return (\n <div className={ classes.dialogTitle }>\n Microphone and/or camera blocked\n </div>\n );\n }\n return null;\n};\n\nconst renderText = (permissionDeniedError, error, onCancelClicked) => {\n if (permissionDeniedError) {\n return (\n <>\n To order a live voice/video call,\n you'll need to allow access to your microphone and/or camera. \n <a href={ getLearnMoreLink() } target=\"_blank\" rel=\"noopener noreferrer\" className={ classes.link } onClick={ onCancelClicked }>\n Learn more\n </a>\n .\n </>\n );\n }\n return (extractErrors(error));\n};\n\nconst appLinkAFChanel = (chatType) => {\n switch (chatType) {\n case Const.chatType.video:\n return 'video_button';\n case Const.chatType.voice:\n return 'voice_button';\n case Const.chatType.text:\n return 'chat_button';\n default:\n return null;\n }\n};\n\nfunction Error({\n error, onCancelClicked, chatType, permissionDeniedError\n}) {\n const { t } = useTranslation();\n return (\n <AppGeneralPopup theme={ appGeneralPopupTheme.CENTERED }>\n { renderTitle(permissionDeniedError) }\n <div className={ classes.dialogText }>\n {' '}\n { renderText(permissionDeniedError, error, onCancelClicked) }\n <a href={ downloadAppLink(appLinkAFChanel(chatType)) } target=\"_blank\" rel=\"noopener noreferrer\" className={ classes.link } onClick={ onCancelClicked }>\n <Trans\n i18nKey=\"app_general.download_link\"\n components={ {\n downloadLink: <a href={ downloadAppLink(appLinkAFChanel(chatType)) } target=\"_blank\" rel=\"noopener noreferrer\" className={ classes.link } onClick={ onCancelClicked } />\n } }\n />\n </a>\n </div>\n <div\n className={ classes.cancelButton }\n onClick={ onCancelClicked }\n onKeyDown={ onCancelClicked }\n >\n <div className={ classes.okBtn }>{t('general.ok')}</div>\n </div>\n </AppGeneralPopup>\n );\n}\n\nError.propTypes = {\n error: PropTypes.object.isRequired,\n onCancelClicked: PropTypes.func.isRequired,\n chatType: PropTypes.string,\n permissionDeniedError: PropTypes.bool\n};\n\nError.defaultProps = {\n permissionDeniedError: null,\n chatType: null\n};\n\nexport default Error;\n","import Error from './error';\n\nexport default Error;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Error from '../error';\nimport { getAdvisorSlug } from '../../../project_items/helper_functions';\n// import classes from './classes.module.scss';\n\nfunction NotInLiveMode({\n cancelChat, errors, loadAdvisor, advisorId\n}) {\n const onCancel = () => {\n cancelChat();\n if (advisorId) {\n loadAdvisor(getAdvisorSlug({ advisorId }));\n }\n };\n\n return (\n <Error onCancelClicked={ onCancel } error={ { errors } } />\n );\n}\n\nNotInLiveMode.propTypes = {\n cancelChat: PropTypes.func.isRequired,\n errors: PropTypes.arrayOf(PropTypes.string).isRequired,\n loadAdvisor: PropTypes.func.isRequired,\n advisorId: PropTypes.number\n};\n\nNotInLiveMode.defaultProps = {\n advisorId: null\n};\n\nexport default NotInLiveMode;\n","import { connect } from 'react-redux';\nimport CantCreate from './cant_create';\nimport Const from '../../../config/const';\nimport { cancelChat } from '../../../actions/chat';\nimport { cancelVoipChat } from '../../../actions/voip_chat';\nimport { loadAdvisor } from '../../../actions/advisors';\n\nconst mapStateToProps = ({ chat, voipChat }, { chatType }) => {\n switch (chatType) {\n case Const.chatType.text:\n return ({ ...chat });\n case Const.chatType.voice:\n case Const.chatType.video:\n return ({ ...voipChat });\n default:\n return null;\n }\n};\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n switch (ownProps.chatType) {\n case Const.chatType.text:\n return ({\n cancelChat: () => dispatch(cancelChat()),\n loadAdvisor: (advisorId) => dispatch(loadAdvisor(advisorId))\n });\n case Const.chatType.voice:\n case Const.chatType.video:\n return ({\n cancelChat: () => dispatch(cancelVoipChat()),\n loadAdvisor: (advisorId) => dispatch(loadAdvisor(advisorId))\n });\n default:\n return null;\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CantCreate);\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container--KH87V\",\"chatEndedContainer\":\"chatEndedContainer--SEhd2\",\"titleContainer\":\"titleContainer--i6BcJ\",\"discountBlock\":\"discountBlock--YjSS8\",\"titleContainerBrowser\":\"titleContainerBrowser--WTi2B\",\"hangupErrorBlock\":\"hangupErrorBlock--PZWD4\",\"hangupError\":\"hangupError--B8h5h\",\"alertBlock\":\"alertBlock--BHam5\",\"alert\":\"alert--yDA0R\",\"alertHint\":\"alertHint--bF6nZ\",\"totalWrapper\":\"totalWrapper--ufAhB\",\"totalLabel\":\"totalLabel--xiEeY\",\"totalValue\":\"totalValue--iTijP\",\"totalHint\":\"totalHint--NubPp\",\"totalHintHighlighted\":\"totalHintHighlighted--DWWvU\",\"descriptionDataBrowser\":\"descriptionDataBrowser--GrQN_\",\"smallBlockLine\":\"smallBlockLine--WIK3P\",\"smallBlockLabel\":\"smallBlockLabel--q4j_b\",\"smallBlockValue\":\"smallBlockValue--GRQbW\",\"chatInfoContainer\":\"chatInfoContainer--bNz1W\",\"chatInfoContainerBrowser\":\"chatInfoContainerBrowser--eTe2b\",\"doneButtonContainer\":\"doneButtonContainer--UXkun\",\"doneButtonContainerBrowser\":\"doneButtonContainerBrowser--F0wIQ\",\"closeAction\":\"closeAction--PZjYI\",\"descriptionText\":\"descriptionText--TN4Qq\",\"descriptionTextBrowser\":\"descriptionTextBrowser--uQkcb\",\"doneBtn\":\"doneBtn--O6ufI\",\"doneBtnBrowser\":\"doneBtnBrowser--llCuC\",\"animation-bzdot9\":\"animation-bzdot9--92qmr\"};","// extracted by mini-css-extract-plugin\nexport default {\"downloadAppPopupContentContainer\":\"downloadAppPopupContentContainer--lp5T6\",\"downloadAppPopupTitle\":\"downloadAppPopupTitle--ydVeF\",\"logoContainer\":\"logoContainer--_YpO4\",\"logoImg\":\"logoImg--Pb9YV\",\"mobileBonusPopupBackgroundImgContainer\":\"mobileBonusPopupBackgroundImgContainer--rk5b9\",\"mobileBonusPopupBackgroundImg\":\"mobileBonusPopupBackgroundImg--Nm24g\",\"downloadAppPopupText\":\"downloadAppPopupText--wjSHm\",\"boldText\":\"boldText--VQuIN\",\"normalText\":\"normalText--_q2G1\",\"purpleText\":\"purpleText--F7Jav\",\"downloadAppPopupCloseContainer\":\"downloadAppPopupCloseContainer--cViRR\",\"downloadAppPopupCloseBtn\":\"downloadAppPopupCloseBtn--E9rKR\",\"downloadAppPopupCloseImg\":\"downloadAppPopupCloseImg--U57uv\",\"desktopContentContainer\":\"desktopContentContainer--mOsLD\",\"qrCodeContainer\":\"qrCodeContainer--NWsi1\",\"backgroundImg\":\"backgroundImg--U1iNC\",\"qrCodeIcon\":\"qrCodeIcon--pT02Q\",\"qrCodeText\":\"qrCodeText--qI6QE\",\"qrCodeTextContainer\":\"qrCodeTextContainer--ryb_v\",\"downloadAppPopupLink\":\"downloadAppPopupLink--vWmJV\",\"bonusDownloadAppPopupLink\":\"bonusDownloadAppPopupLink--ec6Mk\",\"animation-bzdot9\":\"animation-bzdot9--IwotL\"};","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { isMobile } from 'react-device-detect';\nimport QRCode from 'react-qr-code';\nimport classes from './classes.module.scss';\nimport AppGeneralPopup from '../../../../../common/app_general_popup';\nimport { appGeneralPopupTheme } from '../../../../config/const';\nimport { downloadAppLink } from '../../../../../common/config/utils';\nimport env from '../../../../config/variables';\nimport { SvgIcon } from '../../../../../common/sprites';\nimport { appLogo } from '../../../../logo/logo';\n\nconst { PG_CASHBACK_PERCENT } = env;\nconst backgroundImg = require('./img/bonus_promo_img.png');\n\nconst renderDesktopContent = (downloadLink) => (downloadLink ? (\n <div className={ classes.desktopContentContainer }>\n <div className={ classes.qrCodeContainer }>\n <SvgIcon className={ classes.backgroundImg } id=\"qrcode_background\" size={ [317, 193] } />\n <QRCode\n size={ 170 }\n bgColor=\"white\"\n fgColor=\"black\"\n style={ { position: 'absolute', width: '170px' } }\n value={ downloadLink }\n viewBox=\"0 0 170 170\"\n />\n </div>\n <div className={ classes.qrCodeTextContainer }>\n <SvgIcon className={ classes.qrCodeIcon } id=\"qrcode_icon\" size={ [13, 22] } />\n <span className={ classes.qrCodeText }>\n <Trans\n i18nKey=\"app_download_app_popup.scan_to_download\"\n components={ {\n bold:<b className={ classes.boldText } />,\n normal:<span className={ classes.normalText } />\n } }\n />\n </span>\n </div>\n </div>\n) : null);\n\nconst cashBackPopupContent = (renderDownloadBtn, popupDownloadAppLink) => (\n isMobile ? renderDownloadBtn(classes.downloadAppPopupLink, popupDownloadAppLink)\n : renderDesktopContent(popupDownloadAppLink));\n\nconst bonusPopupContent = (renderMobileContent, showDownloadAppPopupLink) => (\n isMobile ? renderMobileContent() : renderDesktopContent(showDownloadAppPopupLink)\n);\n\nfunction DownloadAppPopup({\n showDownloadAppPopupKind, showDownloadAppPopupLink, matchingBonus\n}) {\n const [downloadAppPopupVisible, setDownloadAppPopupVisible] = useState(\n !!showDownloadAppPopupKind\n );\n const { t } = useTranslation();\n const popupDownloadAppLink = downloadAppLink('web_session_ended_download_popup');\n\n const closeCashbackPoppup = () => {\n setDownloadAppPopupVisible(false);\n };\n\n const renderCloseBtn = (popupCloseBtnStyle) => (\n <div className={ classes.downloadAppPopupCloseContainer }>\n <button type=\"button\" className={ popupCloseBtnStyle } onClick={ closeCashbackPoppup }>\n <SvgIcon id=\"close_icon\" className={ classes.downloadAppPopupCloseImg } />\n </button>\n </div>\n );\n const renderLogo = () => (\n <div className={ classes.logoContainer }>\n <img src={ appLogo() } alt=\"\" className={ classes.logoImg } />\n </div>\n );\n\n const onDownloadBtnClick = () => {\n setDownloadAppPopupVisible(false);\n };\n\n const renderDownloadBtn = (style, link) => (\n <a\n href={ link }\n onClick={ onDownloadBtnClick }\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={ style }\n >\n { t('app_download_app_popup.download_app') }\n </a>\n );\n\n const renderMobileContent = () => (\n <>\n <div className={ classes.mobileBonusPopupBackgroundImgContainer }>\n <img src={ backgroundImg } alt=\"\" className={ classes.mobileBonusPopupBackgroundImg } />\n </div>\n { renderDownloadBtn(classes.bonusDownloadAppPopupLink, showDownloadAppPopupLink) }\n </>\n );\n\n const renderCashBackPopupContent = () => cashBackPopupContent(renderDownloadBtn, popupDownloadAppLink);\n const renderBonusPopupContent = () => bonusPopupContent(renderMobileContent, showDownloadAppPopupLink);\n\n const renderDownloadPoppup = (title, text, renderContent) => (\n <AppGeneralPopup\n visible={ downloadAppPopupVisible }\n theme={ appGeneralPopupTheme.CENTERED }\n customTopHeader={ renderCloseBtn(classes.downloadAppPopupCloseBtn) }\n >\n <div className={ classes.downloadAppPopupContentContainer }>\n { renderLogo() }\n <div className={ classes.downloadAppPopupTitle }>\n { title }\n </div>\n\n <div className={ classes.downloadAppPopupText }>\n <Trans\n i18nKey={ text }\n components={ {\n bold:<b className={ classes.boldText } />,\n normal:<span className={ classes.normalText } />,\n purpleText:<span className={ classes.purpleText } />\n } }\n values={ {\n matchingBonus: parseInt(matchingBonus, 10), cashbackPercent: PG_CASHBACK_PERCENT\n } }\n />\n </div>\n {renderContent()}\n </div>\n </AppGeneralPopup>\n );\n\n const renderPopup = () => {\n if (showDownloadAppPopupKind === 1) {\n return renderDownloadPoppup(\n t('download_app_popup.did_you_know'),\n 'app_download_app_popup.by_downloading_the_app',\n renderCashBackPopupContent\n );\n }\n if (showDownloadAppPopupKind === 2) {\n return renderDownloadPoppup(\n t('download_app_popup.its_a_match'),\n 'app_download_app_popup.download_the_app_and_get_a_bonus',\n renderBonusPopupContent\n );\n }\n return null;\n };\n\n return renderPopup();\n}\n\nDownloadAppPopup.propTypes = {\n showDownloadAppPopupKind: PropTypes.number,\n showDownloadAppPopupLink: PropTypes.string,\n matchingBonus: PropTypes.string\n};\n\nDownloadAppPopup.defaultProps = {\n showDownloadAppPopupKind: null,\n showDownloadAppPopupLink: null,\n matchingBonus: null\n};\n\nexport default DownloadAppPopup;\n","import { connect } from 'react-redux';\nimport DownloadAppPopup from './download_app_popup';\n\nconst mapStateToProps = ({ chat, voipChat: { order } }) => ({\n ...chat,\n ...order\n});\n\nexport default connect(\n mapStateToProps,\n {}\n)(DownloadAppPopup);\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classes from '../classes.module.scss';\nimport RateSection from '../rate_section';\nimport RateReview from '..';\nimport withPGTranslation from '../../../config/withPGTranslation';\nimport AppGeneralPopup from '../../../../common/app_general_popup';\nimport { appGeneralPopupTheme } from '../../../../common/config/const';\nimport { rateReviewTheme } from '../../../config/const';\nimport { isMobile } from '../../../config/util';\nimport { trackPageVisit } from '../../../actions/analytics';\n\nfunction RateReviewAfterChat({\n visible,\n onCancel,\n orderId,\n advisorName,\n t,\n clickSource,\n advisorId,\n profileLanguage,\n createdAt,\n chatType\n}) {\n const [like, setLike] = useState(null);\n const [showSmallModal, setShowSmallModal] = useState(false);\n const [showFullModal, setShowFullModal] = useState(false);\n\n useEffect(() => {\n setShowSmallModal(visible);\n if (visible) trackPageVisit('live session ended review draw');\n }, []);\n\n const onSkipClick = () => {\n setLike(null);\n setShowSmallModal(false);\n onCancel();\n };\n\n const renderSkipButton = () => (\n <div className={ classes.skipTopButtonContainer }>\n <button type =\"button\" className={ classes.skipTopButton } onClick={ onSkipClick }>\n { t('rate_review.skip') }\n </button>\n </div>\n );\n\n const fullModalOnCancel = () => {\n setShowFullModal(false);\n onCancel();\n };\n\n const renderFullModal = () => (\n <RateReview\n visible={ showFullModal }\n onCancel={ fullModalOnCancel }\n existingLike={ like }\n advisorName={ advisorName }\n orderId={ orderId }\n advisorId={ advisorId }\n profileLanguage={ profileLanguage }\n createdAt={ createdAt }\n clickSource={ clickSource }\n chatType={ chatType }\n />\n );\n\n const renderSmallModalContent = () => (\n <div className={ classes.smallModalContentContainer }>\n <RateSection\n value={ like }\n onSmallModal\n onValueChanged={ (liked) => {\n setLike(liked);\n setShowSmallModal(false);\n setShowFullModal(true);\n } }\n />\n { renderSkipButton() }\n </div>\n );\n\n const renderSmallModal = () => (\n <AppGeneralPopup\n visible={ showSmallModal }\n theme={ appGeneralPopupTheme.BOTTOM }\n >\n { renderSmallModalContent() }\n </AppGeneralPopup>\n );\n\n const renderMobileView = () => (\n <div>\n {renderSmallModal()}\n {renderFullModal()}\n </div>\n );\n\n const onCloseButtonAction = () => {\n onCancel();\n };\n\n const renderBrowserViewFull = () => (\n <AppGeneralPopup\n closeButtonAction={ onCloseButtonAction }\n visible={ visible }\n >\n <RateReview\n visible={ visible }\n onCancel={ onCancel }\n existingLike={ like }\n advisorName={ advisorName }\n orderId={ orderId }\n advisorId={ advisorId }\n profileLanguage={ profileLanguage }\n createdAt={ createdAt }\n clickSource={ clickSource }\n theme={ rateReviewTheme.CHAT_ENDED }\n chatType={ chatType }\n />\n </AppGeneralPopup>\n );\n\n const renderBrowserView = () => (\n <>\n { renderBrowserViewFull() }\n </>\n );\n\n return (\n isMobile() ? renderMobileView() : renderBrowserView()\n );\n}\n\nRateReviewAfterChat.propTypes = {\n visible: PropTypes.bool.isRequired,\n onCancel: PropTypes.func.isRequired,\n existingComment: PropTypes.string,\n existingLike: PropTypes.bool,\n orderId: PropTypes.number.isRequired,\n advisorName: PropTypes.string.isRequired,\n t: PropTypes.func.isRequired,\n clickSource: PropTypes.string,\n advisorId: PropTypes.number,\n profileLanguage: PropTypes.string,\n createdAt: PropTypes.string,\n chatType: PropTypes.string\n};\n\nRateReviewAfterChat.defaultProps = {\n existingComment: '',\n existingLike: null,\n clickSource: null,\n advisorId: null,\n profileLanguage: null,\n createdAt: null,\n chatType: null\n};\n\nexport default withPGTranslation(RateReviewAfterChat);\n","import RateReviewAfterChat from './rate_review_after_chat';\n\nexport default RateReviewAfterChat;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport AppGeneralPopup from '../../../../common/app_general_popup';\nimport { appGeneralPopupTheme } from '../../../../common/config/const';\nimport DownloadAppPopup from './download_app_popup';\nimport { trackPageVisit, getSessionType } from '../../../actions/analytics';\nimport RateReviewAfterChat from '../../rate_review/rate_review_after_chat';\nimport { appRoutes } from '../../../config/app_routes';\nimport { SvgIcon } from '../../../../common/sprites';\nimport { useLocalizedNavigate } from '../../routes/hooks/useLocalizedNavigate';\n\nconst STATE_NEED_REVIEW = 'need_review';\n\nconst getNeedShowReviewBrowser = ({ orderState }) => STATE_NEED_REVIEW === orderState;\n\nfunction ChatEnded({\n cancelChat,\n t,\n clearAffiliatePromoPopup,\n clientSummaryScreen,\n orderState,\n name,\n orderId,\n advisorId,\n profileLanguage,\n createdAt,\n chatType\n}) {\n const {\n title, alert, largeNumbers, smallNumbers, total, hangupError\n } = clientSummaryScreen || {};\n\n const history = useLocalizedNavigate();\n const [needShowReviewBrowser, setNeedShowReviewBrowser] = useState(getNeedShowReviewBrowser({ orderState }));\n\n useEffect(() => {\n trackPageVisit(`${ getSessionType(chatType) } ended`);\n }, []);\n\n const redirectTo = () => {\n history(appRoutes.orderDetails, { params: { advisorId, orderId } });\n };\n\n const cancelAction = () => {\n cancelChat();\n clearAffiliatePromoPopup();\n };\n\n const cancelRateReviewBrowser = () => {\n clearAffiliatePromoPopup();\n setNeedShowReviewBrowser(false);\n redirectTo();\n };\n\n const renderTitleBlock = () => (\n <div className={ classes.titleContainerBrowser }>\n <h4>{title}</h4>\n </div>\n );\n\n const renderHangupErrorBlock = () => (\n hangupError && (\n <div className={ classes.hangupErrorBlock }>\n <div className={ classes.hangupError }>{hangupError?.label}</div>\n </div>\n )\n );\n\n const renderAlertBlock = () => (\n alert && (\n <div className={ classes.alertBlock }>\n <div className={ classes.alert }>{alert?.label}</div>\n <div className={ classes.alertHint }>{alert?.hint}</div>\n </div>\n )\n );\n\n const renderLargeNumbersBlock = () => (\n <div style={ { overflowY: 'auto', height: 300 } } className={ classes.chatInfoContainerBrowser }>\n {largeNumbers?.map((line, index) => (\n <div key={ index }>\n <span className={ classes.descriptionTextBrowser }>{ line?.label }</span>\n <br />\n <div className={ classes.descriptionDataBrowser }>\n {line?.value}\n </div>\n </div>\n ))}\n </div>\n );\n\n const renderSmallNumbersBlock = () => (\n smallNumbers?.length > 0 && (\n <div className={ classes.discountBlock }>\n {smallNumbers?.map((line, index) => (\n <div key={ index } className={ classes.smallBlockLine }>\n <div className={ classes.smallBlockLabel }>{line?.label}</div>\n <div className={ classes.smallBlockValue }>{line?.value}</div>\n </div>\n ))}\n </div>\n )\n );\n\n const renderTotalHint = () => {\n if (!total?.hint) return null;\n return (\n <div className={ classes.totalHint }>\n { total?.hint }\n <span className={ classes.totalHintHighlighted }>{ ` ${ total?.hintHighlighted }` }</span>\n </div>\n );\n };\n\n const renderTotalBlock = () => (\n <div className={ classes.totalWrapper }>\n <div className={ classes.totalLabel }>{total?.label}</div>\n <div className={ classes.totalValue }>{total?.value}</div>\n { renderTotalHint() }\n </div>\n );\n\n const closeButton = () => (\n <button\n onClick={ () => {\n cancelAction();\n redirectTo();\n } }\n type=\"button\"\n className={ classes.closeAction }\n >\n <SvgIcon id=\"close_icon\" size={ 28 } />\n </button>\n );\n\n const renderChatModalContentNumbers = () => (\n <>\n {renderTitleBlock()}\n {renderHangupErrorBlock()}\n {renderLargeNumbersBlock()}\n {renderSmallNumbersBlock()}\n </>\n );\n\n const renderChatEndedModalContentHeader = () => (\n <>\n {renderChatModalContentNumbers()}\n {renderTotalBlock()}\n {renderAlertBlock()}\n {closeButton()}\n </>\n );\n\n const renderChatEndedModalContent = () => (\n <>\n {renderChatEndedModalContentHeader()}\n </>\n );\n\n const renderChatEndedModal = () => (\n <AppGeneralPopup theme={ needShowReviewBrowser ? appGeneralPopupTheme.CHAT_ENDED_RATE_REVIEW : appGeneralPopupTheme.CHAT_ENDED }>\n <div className={ classes.container }>\n {renderChatEndedModalContent()}\n <RateReviewAfterChat\n visible={ needShowReviewBrowser }\n onCancel={ cancelRateReviewBrowser }\n advisorName={ name }\n orderId={ orderId }\n advisorId={ advisorId }\n profileLanguage= { profileLanguage }\n createdAt={ createdAt }\n clickSource = \"chat ended\"\n chatType={ chatType }\n />\n </div>\n <div className={ classes.doneButtonContainerBrowser }>\n <button\n type=\"button\"\n className={ classes.doneBtnBrowser }\n onClick={ () => {\n cancelAction();\n redirectTo();\n } }\n onKeyDown={ () => {\n cancelAction();\n redirectTo();\n } }\n >\n {t('chat.continue')}\n </button>\n </div>\n </AppGeneralPopup>\n );\n\n const renderChatEnded = () => (\n <>\n { renderChatEndedModal() }\n <DownloadAppPopup />\n </>\n );\n\n return renderChatEnded();\n}\n\nChatEnded.propTypes = {\n cancelChat: PropTypes.func.isRequired,\n t: PropTypes.func.isRequired,\n clearAffiliatePromoPopup: PropTypes.func.isRequired,\n clientSummaryScreen: PropTypes.object.isRequired,\n textChatReason: PropTypes.string\n};\n\nexport default ChatEnded;\n","import { connect } from 'react-redux';\nimport Const from '../../../config/const';\nimport ChatEnded from './chat_ended';\nimport { cancelChat } from '../../../actions/chat';\nimport { cancelVoipChat } from '../../../actions/voip_chat';\nimport { requestPermission } from '../../../actions/firebase_messaging';\nimport withPGTranslation from '../../../config/withPGTranslation';\nimport { clearAffiliatePromoPopup } from '../../../actions/affiliate_promo_popup';\n\nconst getFeedback = (order) => order && order.feedbackComment;\nconst getFeedbackIsPoste = (orderIdsSame, feedback) => orderIdsSame && !!feedback;\n\nconst mapStateToProps = ({ orderDetails, chat, voipChat }, { chatType }) => {\n const { orderId } = chat;\n const order = (orderDetails && orderDetails.orderDetails) || {};\n const orderIdsSame = ((order && order.id) || -1) === orderId;\n const feedback = getFeedback(order);\n const feedbackIsPosted = getFeedbackIsPoste(orderIdsSame, feedback);\n switch (chatType) {\n case Const.chatType.text:\n return {\n feedbackIsPosted,\n textChatReason: chat && chat.reason,\n ...chat\n };\n case Const.chatType.voice:\n case Const.chatType.video:\n return {\n feedbackIsPosted,\n ...voipChat,\n ...voipChat.order,\n orderState: voipChat.order.state\n };\n default:\n return null;\n }\n};\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n switch (ownProps.chatType) {\n case Const.chatType.text:\n return ({\n cancelChat: () => dispatch(cancelChat()),\n requestPermission: () => dispatch(requestPermission()),\n clearAffiliatePromoPopup: () => dispatch(clearAffiliatePromoPopup())\n });\n case Const.chatType.voice:\n case Const.chatType.video:\n return ({\n cancelChat: () => dispatch(cancelVoipChat()),\n requestPermission: () => dispatch(requestPermission()),\n clearAffiliatePromoPopup: () => dispatch(clearAffiliatePromoPopup())\n });\n default:\n return null;\n }\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(withPGTranslation(ChatEnded));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Alert from '../../../common/helpers/alert';\n\nfunction VoipAlert({ error, clearError }) {\n if (!error) {\n return null;\n }\n return (\n <Alert\n errorString={ error }\n onClose={ clearError }\n />\n );\n}\n\nVoipAlert.propTypes = {\n error: PropTypes.object,\n clearError: PropTypes.func.isRequired\n};\n\nVoipAlert.defaultProps = {\n error: null\n};\n\nexport default VoipAlert;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container--ysbYw\",\"freeSetupFadeOut\":\"freeSetupFadeOut--Euqeg\",\"freeSetupFadeIn\":\"freeSetupFadeIn--fMbC0\",\"callAnimation\":\"callAnimation--QJsOc\",\"voiceContainer\":\"voiceContainer--TFoIh\",\"backgroundImage\":\"backgroundImage--q65nS\",\"voiceOverlay\":\"voiceOverlay--ar03z\",\"muteActiveButton\":\"muteActiveButton--xBmQe\",\"muteNotActiveButton\":\"muteNotActiveButton--bcMmt\",\"muteIcon\":\"muteIcon--P_36G\",\"controlsContainer\":\"controlsContainer--Oaga5\",\"controlsHolder\":\"controlsHolder--h6FE3\",\"hangupButton\":\"hangupButton--TVgoP\",\"hangupIcon\":\"hangupIcon--QcFss\",\"timer\":\"timer--PXLUu\",\"reconnectLabel\":\"reconnectLabel--_YKG2\",\"setupLabel\":\"setupLabel--vNCt0\",\"publisherContainer\":\"publisherContainer--XsFsw\",\"timerContainer\":\"timerContainer--vKpzE\",\"nameAndDiscountLabelContainer\":\"nameAndDiscountLabelContainer--uxfkc\",\"callWithContainer\":\"callWithContainer--h5iEC\",\"nameText\":\"nameText--KLE65\",\"discountLabelContainer\":\"discountLabelContainer--La1mb\",\"discountLabelImg\":\"discountLabelImg--dkvt7\",\"discountLabelText\":\"discountLabelText--aFzPc\",\"animation-bzdot9\":\"animation-bzdot9--FhaRV\"};","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container--UPb7t\",\"squares\":\"squares--NKpJw\",\"squareGif\":\"squareGif--j1qRM\"};","import React from 'react';\nimport classes from './classes.module.scss';\n\nfunction SquareAnimation() {\n return (\n <div className={ classes.container }>\n <div className={ classes.squareGif } />\n </div>\n );\n}\n\nexport default SquareAnimation;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container--bcChk\",\"frameOut\":\"frameOut--KEQFG\",\"outAnimation\":\"outAnimation--gTl9U\",\"frameMid\":\"frameMid--w5lCG\",\"midAnimation\":\"midAnimation--Q0Seg\",\"frameIn\":\"frameIn--BdIVf\",\"inAnimation\":\"inAnimation--nE7sf\",\"profilePicture\":\"profilePicture--fSBvS\",\"contactingContainer\":\"contactingContainer--GOKm4\",\"contacting\":\"contacting--pfmVi\",\"buttonContainer\":\"buttonContainer--uD0Dr\",\"button\":\"button--cuj8J\",\"hangingUp\":\"hangingUp--P2KxB\",\"buttonImage\":\"buttonImage--SFIFb\",\"voipButtonImage\":\"voipButtonImage--UHjKG\",\"blurImage\":\"blurImage--jk255\",\"overlay\":\"overlay--S4ElD\",\"publisherContainer\":\"publisherContainer--ZMLCw\",\"animation-bzdot9\":\"animation-bzdot9--NQ1St\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport withPGTranslation from '../../../config/withPGTranslation';\n\nfunction CallAnimation({\n pictureSrc, borderColor\n}) {\n return (\n <div className= { classes.frameOut }>\n <div className={ classes.frameMid }>\n <div className={ classes.frameIn }>\n <img\n className={ classes.profilePicture }\n style={ { '--color': borderColor } }\n src={ pictureSrc }\n alt=\"Profile\"\n />\n </div>\n </div>\n </div>\n );\n}\n\nCallAnimation.propTypes = {\n pictureSrc: PropTypes.string.isRequired,\n borderColor: PropTypes.string.isRequired\n};\n\nexport default withPGTranslation(CallAnimation);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classesModule from './classes.module.scss';\nimport Const from '../../config/const';\nimport Stopwatch from '../stopwatch';\n\nconst kFreeTimeIc = require('./img/ring_animation_icon.png');\n\nconst formattedTime = (time) => (`0${ time }`).slice(-2);\n\nconst textLabel = (t, voipState) => (\n <div className={ classesModule.setupLabel }>\n { voipState === Const.voipChatStates.finishing\n ? t('chat.end_call_time_label') : t('chat.free_setup_time') }\n </div>\n);\n\nconst timer = (callDurationNow) => {\n const hours = Math.floor(callDurationNow / 3600);\n const minutes = Math.floor((callDurationNow % 3600) / 60);\n const seconds = Math.floor(callDurationNow % 3600 % 60);\n const hoursDisplay = hours > 0 ? formattedTime(hours) : '00';\n const minutesDisplay = minutes > 0 ? formattedTime(minutes) : '00';\n const secondsDispaly = seconds > 0 ? formattedTime(seconds) : '00';\n const fulltime = `${ hoursDisplay }:${ minutesDisplay }:${ secondsDispaly }`;\n return (\n <div className={ classesModule.setupLabel }>\n { fulltime }\n </div>\n );\n};\n\nfunction TimerLabel({\n callDurationNow, paidDuration, blinkSetup, t, voipState, buyerDurationCounterDirection\n}) {\n const propsExists = callDurationNow && paidDuration;\n const showTimer = propsExists && voipState !== Const.voipChatStates.finishing && (callDurationNow <= paidDuration);\n\n const renderTimer = () => (\n <>\n <img\n src={ kFreeTimeIc }\n alt=\"\"\n className={ blinkSetup ? classesModule.freeSetupFadeOut : classesModule.freeSetupFadeIn }\n />\n {!showTimer ? textLabel(t, voipState) : timer(callDurationNow)}\n </>\n );\n\n const renderStopwatchTimer = () => (\n <Stopwatch\n secondsCount={ callDurationNow }\n callType=\"voip_chat\"\n paidDuration={ paidDuration }\n />\n );\n\n const renderTimerContent = () => {\n if (buyerDurationCounterDirection === 'stopwatch') {\n return renderStopwatchTimer();\n }\n return renderTimer();\n };\n\n return (\n <div className={ classesModule.timer }>\n <div className={ classesModule.timerContainer }>\n {renderTimerContent()}\n </div>\n </div>\n );\n}\n\nTimerLabel.propTypes = {\n callDurationNow: PropTypes.number,\n paidDuration: PropTypes.number,\n blinkSetup: PropTypes.bool.isRequired,\n t: PropTypes.func.isRequired,\n voipState: PropTypes.string.isRequired,\n buyerDurationCounterDirection: PropTypes.string.isRequired\n};\n\nTimerLabel.defaultProps = {\n callDurationNow: null,\n paidDuration: null\n};\n\nexport default TimerLabel;\n","import React from 'react';\nimport classes from './classes.module.scss';\nimport Const from '../../config/const';\nimport { SvgIcon } from '../../../common/sprites';\n\nconst getDiscountLabelId = ({ discountData }) => {\n let icon;\n switch (discountData?.kind) {\n case Const.discountDataKind.discountApplied:\n icon = 'discount_applied_icon';\n break;\n case Const.discountDataKind.maxDiscountApplied:\n icon = 'max_discount_applied_icon';\n break;\n case Const.discountDataKind.advisorSpecialOffer:\n icon = 'advisor_special_offer_icon';\n break;\n default:\n break;\n }\n return icon;\n};\n\nconst getDiscountLabelText = ({ discountData, t }) => {\n let text;\n switch (discountData?.kind) {\n case Const.discountDataKind.discountApplied:\n text = t('chat.discount_applied');\n break;\n case Const.discountDataKind.maxDiscountApplied:\n text = t('chat.max_discount_applied');\n break;\n case Const.discountDataKind.advisorSpecialOffer:\n text = t('chat.advisor_special_offer_applied');\n break;\n default:\n break;\n }\n return text;\n};\n\nconst renderDiscountLabel = ({ discountData, t }) => {\n if (!discountData || !discountData?.description) return null;\n return (\n <div className={ classes.discountLabelContainer }>\n <SvgIcon id={ getDiscountLabelId({ discountData }) } className={ classes.discountLabelImg } />\n <span className={ classes.discountLabelText }>\n { getDiscountLabelText({ discountData, t }) }\n \n { discountData?.description }\n </span>\n </div>\n );\n};\n\nconst getCallWithText = ({ voipType, t }) => {\n if (voipType === Const.chatType.voice) return t('chat.voice_call_with');\n if (voipType === Const.chatType.video) return t('chat.video_call_with');\n return null;\n};\n\nexport const renderNameAndDiscountLabel = ({\n voipType, discountData, name, t\n}) => (\n <div className={ classes.nameAndDiscountLabelContainer }>\n <div className={ classes.callWithContainer }>\n { getCallWithText({ voipType, t }) }\n </div>\n <div className={ classes.nameText }>\n { name }\n </div>\n { renderDiscountLabel({ discountData, t }) }\n </div>\n);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport Const from '../../config/const';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport classesModule from './classes.module.scss';\nimport TimerLabel from './timer_label';\nimport {\n hangupVoipChat, setEnableMic, setEnableVideo\n} from '../../actions/voip_chat';\nimport { trackEvent } from '../../actions/mixpanel';\nimport Switch from '../../../common/helpers/switch';\nimport { renderNameAndDiscountLabel } from './voip_utils';\n\nconst kMuteActive = require('./img/mic_active.png');\nconst kMuteNotActive = require('./img/mic_non_active.png');\n\nconst kHangupIc = require('./img/ic_phone.png');\n\nconst cameraNotActive = require('./img/camera_non_active.svg');\nconst cameraActive = require('./img/camera_active.svg');\nconst micNotActive = require('./img/mic_non_active.svg');\nconst micActive = require('./img/mic_active.svg');\n\nconst renderVoiceMuteButton = (micEnabled, setMicEnabled) => {\n const muteIcon = micEnabled ? kMuteNotActive : kMuteActive;\n const muteClassName = micEnabled\n ? classesModule.muteNotActiveButton : classesModule.muteActiveButton;\n return (\n <div>\n <button\n type=\"button\"\n onClick={ () => setMicEnabled(!micEnabled) }\n className={ muteClassName }\n >\n <img\n className={ classesModule.muteIcon }\n src={ muteIcon }\n alt=\"\"\n />\n </button>\n </div>\n );\n};\n\nconst renderVideoSwitcher = (\n micEnabled,\n videoEnabled,\n setMicEnabled,\n setVideoEnabled,\n trackMPEvent,\n advisorId,\n orderId\n) => (\n <div>\n <div style={ { marginBottom: 10, marginTop: 2 } }>\n <Switch\n id=\"voipCameraSwitcher\"\n checked={ videoEnabled }\n onChange={ () => {\n setVideoEnabled(!videoEnabled);\n if (!videoEnabled) {\n trackMPEvent({\n 'advisor id': advisorId,\n 'order id': orderId\n });\n }\n } }\n offColor=\"rgb(255, 255, 255, 0.16)\"\n onColor=\"rgb(255, 255, 255, 0.16)\"\n offSliderImg={ cameraNotActive }\n onSliderImg={ cameraActive }\n offSliderColor=\"rgb(255, 255, 255, 0.16)\"\n onSliderColor=\"#16C5F0\"\n width={ 50 }\n height={ 25 }\n handleDiameter={ 22 }\n />\n </div>\n <div>\n <Switch\n id=\"voipMicSwitcher\"\n checked={ micEnabled }\n onChange={ () => setMicEnabled(!micEnabled) }\n offColor=\"rgb(255, 255, 255, 0.16)\"\n onColor=\"rgb(255, 255, 255, 0.16)\"\n offSliderImg={ micNotActive }\n onSliderImg={ micActive }\n offSliderColor=\"rgb(255, 255, 255, 0.16)\"\n onSliderColor=\"#16C5F0\"\n width={ 50 }\n height={ 25 }\n handleDiameter={ 22 }\n />\n </div>\n </div>\n);\n\nconst renderReconnectLabel = (reconnecting) => {\n if (!reconnecting) return null;\n return (\n <div className={ classesModule.reconnectLabel }>\n <div className={ classesModule.timerContainer }>\n <div className={ classesModule.setupLabel }>Trying to reconnect...</div>\n </div>\n </div>\n );\n};\n\nconst renderHangupButton = (hangupCall) => (\n <div>\n <button\n type=\"button\"\n onClick={ hangupCall }\n className={ classesModule.hangupButton }\n >\n <img\n className={ classesModule.hangupIcon }\n src={ kHangupIc }\n alt=\"\"\n />\n </button>\n </div>\n);\n\nconst renderDiscountLabelIfNeed = ({\n voipType, discountData, name, t\n}) => {\n if (voipType !== Const.chatType.video) return null;\n return renderNameAndDiscountLabel({\n voipType, discountData, name, t\n });\n};\n\nfunction VoipControls({\n voipType, paidDuration, blinkSetup,\n callDurationNow, t, hangupChat, trackMPEvent,\n advisorId, orderId, enableMic, enableVideo, toggleMic,\n toggleVideo, reconnecting, voipState, buyerDurationCounterDirection, discountData, name\n}) {\n const switcherContent = voipType === Const.chatType.video\n ? renderVideoSwitcher(\n enableMic,\n enableVideo,\n toggleMic,\n toggleVideo,\n trackMPEvent,\n advisorId,\n orderId\n ) : renderVoiceMuteButton(enableMic, toggleMic);\n return (\n <div className={ classesModule.controlsContainer }>\n { renderReconnectLabel(reconnecting) }\n { renderDiscountLabelIfNeed({\n voipType, discountData, name, t\n }) }\n <div className={ classesModule.controlsHolder }>\n { renderHangupButton(hangupChat) }\n { switcherContent }\n </div>\n <TimerLabel\n callDurationNow={ callDurationNow }\n paidDuration={ paidDuration }\n blinkSetup={ blinkSetup }\n t={ t }\n voipState={ voipState }\n buyerDurationCounterDirection={ buyerDurationCounterDirection }\n />\n </div>\n );\n}\n\nVoipControls.propTypes = {\n voipType: PropTypes.string.isRequired,\n paidDuration: PropTypes.number,\n blinkSetup: PropTypes.bool.isRequired,\n callDurationNow: PropTypes.number,\n t: PropTypes.func.isRequired,\n hangupChat: PropTypes.func.isRequired,\n trackMPEvent: PropTypes.func.isRequired,\n advisorId: PropTypes.number.isRequired,\n orderId: PropTypes.number.isRequired,\n enableMic: PropTypes.bool.isRequired,\n enableVideo: PropTypes.bool.isRequired,\n toggleMic: PropTypes.func.isRequired,\n toggleVideo: PropTypes.func.isRequired,\n reconnecting: PropTypes.bool.isRequired,\n voipState: PropTypes.string.isRequired,\n buyerDurationCounterDirection: PropTypes.string.isRequired,\n setupTimeLabels: PropTypes.array.isRequired,\n notifyDate: PropTypes.string,\n discountData: PropTypes.object,\n name: PropTypes.string.isRequired\n};\n\nVoipControls.defaultProps = {\n paidDuration: null,\n callDurationNow: null,\n notifyDate: null,\n discountData: null\n};\n\nconst mapStateToProps = ({ voipChat }) => ({ ...voipChat, ...voipChat.conversationOption });\n\nconst mapDispatchToProps = (dispatch) => ({\n hangupChat: () => dispatch(hangupVoipChat()),\n toggleMic: (enable) => dispatch(setEnableMic(enable)),\n toggleVideo: (enable) => dispatch(setEnableVideo(enable)),\n trackMPEvent: (eventProperties) => dispatch(trackEvent('vc mute video', eventProperties))\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withPGTranslation(VoipControls));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CallAnimation from '../chat_overlay/outgoin_call/call_animation';\nimport classes from './classes.module.scss';\nimport VoipControls from './voip_controls';\nimport { renderNameAndDiscountLabel } from './voip_utils';\nimport Const from '../../config/const';\nimport { getModeColor } from '../../config/util';\n\nfunction VoiceOverlay({\n profilePictureUrl, blinkSetup, callDurationNow, discountData, t, voipType, name\n}) {\n return (\n <div className={ classes.voiceContainer }>\n <img\n className={ classes.backgroundImage }\n src={ profilePictureUrl }\n alt=\"\"\n />\n <div className={ classes.voiceOverlay } />\n <div className={ classes.callAnimation }>\n <CallAnimation\n pictureSrc={ profilePictureUrl }\n borderColor={ getModeColor(Const.chatTypeToModeName[voipType]) }\n />\n { renderNameAndDiscountLabel({\n voipType, discountData, name, t\n }) }\n </div>\n <VoipControls\n blinkSetup={ blinkSetup }\n callDurationNow={ callDurationNow }\n />\n </div>\n );\n}\n\nVoiceOverlay.propTypes = {\n profilePictureUrl: PropTypes.string.isRequired,\n blinkSetup: PropTypes.bool.isRequired,\n callDurationNow: PropTypes.number,\n discountData: PropTypes.object,\n t: PropTypes.func.isRequired,\n voipType: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired\n};\n\nVoiceOverlay.defaultProps = {\n callDurationNow: null,\n discountData: null\n};\n\nexport default VoiceOverlay;\n","import React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport {\n noAnswer\n} from '../../actions/voip_chat';\n\nfunction AutoHangupTimer({ noAnswerCall, automaticHangupIn, timerRef }) {\n if (!timerRef) {\n return null;\n }\n const timer = timerRef;\n useEffect(() => {\n timer.current = setTimeout(() => {\n noAnswerCall();\n }, automaticHangupIn * 1000);\n return () => clearTimeout(timer.current);\n }, [automaticHangupIn]);\n return <div />;\n}\n\nAutoHangupTimer.propTypes = {\n automaticHangupIn: PropTypes.number.isRequired,\n noAnswerCall: PropTypes.func.isRequired,\n timerRef: PropTypes.object\n};\n\nAutoHangupTimer.defaultProps = {\n timerRef: null\n};\n\nconst mapStateToProps = ({ voipChat }) => ({ ...voipChat, ...voipChat.conversationOption });\n\nconst mapDispatchToProps = (dispatch) => ({\n noAnswerCall: () => dispatch(noAnswer())\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AutoHangupTimer);\n","import React, { useEffect } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nfunction DisconnectSessionTimer({\n onTimeOut, stream, timers, timerRef\n}) {\n useEffect(() => {\n const timer = timerRef;\n if (timer && timers) {\n timer.current = setTimeout(() => {\n if (stream) {\n onTimeOut();\n }\n }, timers.diconnectTimer * 1000);\n return () => clearInterval(timer.current);\n }\n return () => {};\n }, [timers]);\n\n return <div />;\n}\n\nDisconnectSessionTimer.propTypes = {\n timers: PropTypes.object,\n onTimeOut: PropTypes.func.isRequired,\n stream: PropTypes.object,\n timerRef: PropTypes.object\n};\n\nDisconnectSessionTimer.defaultProps = {\n timers: null,\n stream: null,\n timerRef: null\n};\n\nconst mapStateToProps = ({ voipChat }) => ({ ...voipChat, ...voipChat.conversationOption });\n\nexport default connect(mapStateToProps, {})(DisconnectSessionTimer);\n","import React, { useEffect, useState } from 'react';\nimport { connect } from 'react-redux';\nimport { formatISO, differenceInSeconds, parseISO } from 'date-fns';\nimport PropTypes from 'prop-types';\nimport { timerEndConversation, pullConversation, trackSessionHireEventIfNeeded } from '../../actions/voip_chat';\nimport { isXfmProgram } from '../../config/util';\n\nconst checkTimerStop = (timerEndCall, callDurationNow, pullTimer, timer, xfmProgramActive, setXfmProgramActive) => {\n const callDuration = callDurationNow();\n if (xfmProgramActive && callDuration <= 0) {\n clearInterval(timer);\n setXfmProgramActive(false);\n return;\n }\n if (callDuration <= 3 && pullTimer) {\n clearInterval(pullTimer);\n }\n if (callDuration <= 0) {\n timerEndCall();\n clearInterval(timer);\n }\n};\n\nfunction CallDurationTimer({\n notifyDate, conversationOption, timerEndCall, pullCall, onCallDurationUpdate,\n advisorXfmProgram, userXfmProgram, updateXfmProgramActive, continuedSession,\n voipType, trackSessionHireEvent\n}) {\n const [xfmProgramActive, setXfmProgramActive] = useState(continuedSession === 0 && isXfmProgram({ advisorXfmProgram, userXfmProgram }));\n const [seconds, setSecondsPast] = useState(null);\n\n let timer;\n let pullTimer;\n let secondsTimer;\n\n const getSecondsPast = () => {\n const dateNow = formatISO(new Date());\n const secondsPast = differenceInSeconds(parseISO(dateNow), parseISO(notifyDate));\n return secondsPast;\n };\n\n const callDurationNow = () => {\n const secondsPast = getSecondsPast();\n const newCallDurationNow = (conversationOption || {}).callDurationTimer - secondsPast;\n return newCallDurationNow;\n };\n\n useEffect(() => {\n updateXfmProgramActive(xfmProgramActive);\n }, [xfmProgramActive]);\n\n useEffect(() => {\n if (seconds && seconds >= conversationOption.freeSetupSeconds) {\n trackSessionHireEvent(voipType);\n }\n }, [seconds]);\n\n useEffect(() => {\n if (conversationOption) {\n pullTimer = setTimeout(() => {\n pullCall();\n }, conversationOption.pullConversationStatusTimer * 1000);\n timer = setInterval(() => {\n checkTimerStop(timerEndCall, callDurationNow, pullTimer, timer, xfmProgramActive, setXfmProgramActive);\n onCallDurationUpdate(callDurationNow());\n }, 500);\n secondsTimer = setInterval(() => {\n setSecondsPast(getSecondsPast);\n }, 1000);\n return () => {\n clearInterval(timer);\n clearInterval(pullTimer);\n clearInterval(secondsTimer);\n };\n }\n return () => {};\n }, [conversationOption, xfmProgramActive]);\n\n return <div />;\n}\n\nCallDurationTimer.propTypes = {\n notifyDate: PropTypes.string,\n conversationOption: PropTypes.object,\n timerEndCall: PropTypes.func.isRequired,\n pullCall: PropTypes.func.isRequired,\n onCallDurationUpdate: PropTypes.func,\n advisorXfmProgram: PropTypes.object,\n userXfmProgram: PropTypes.object,\n advisorId: PropTypes.number.isRequired,\n updateXfmProgramActive: PropTypes.func.isRequired,\n continuedSession: PropTypes.number.isRequired,\n voipType: PropTypes.string.isRequired,\n trackSessionHireEvent: PropTypes.func.isRequired\n};\n\nCallDurationTimer.defaultProps = {\n notifyDate: null,\n conversationOption: null,\n onCallDurationUpdate: null,\n advisorXfmProgram: {},\n userXfmProgram: {}\n};\n\nconst mapStateToProps = ({ voipChat, advisors, user: { user } }) => {\n const { advisorId } = voipChat;\n const advisor = (advisors || {})[parseInt(advisorId, 10)];\n return ({\n ...voipChat,\n ...voipChat.conversationOption,\n advisorXfmProgram: advisor && advisor.xfmProgram,\n userXfmProgram: user && user.xfmProgram\n });\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n timerEndCall: () => dispatch(timerEndConversation()),\n pullCall: () => dispatch(pullConversation()),\n trackSessionHireEvent: () => dispatch(trackSessionHireEventIfNeeded())\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CallDurationTimer);\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction BlinkTimer({ onTick }) {\n useEffect(() => {\n const timer = setInterval(() => {\n onTick();\n }, 500);\n return () => clearInterval(timer);\n }, []);\n return <div />;\n}\n\nBlinkTimer.propTypes = {\n onTick: PropTypes.func.isRequired\n};\n\nexport default BlinkTimer;\n","import React, { PureComponent, createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { OTPublisher, OTSubscriber, createSession } from 'opentok-react';\nimport VoipAlert from './voip_alert';\nimport Const from '../../config/const';\nimport classesModule from './classes.module.scss';\nimport classes from './classes.css'; // eslint-disable-line\nimport SquareAnimation from '../square_animation/square_animation';\nimport { log, LOG_LEVELS } from '../../../common/config/app_logger';\nimport VoiceOverlay from './voice_overlay';\nimport VoipControls from './voip_controls';\nimport AutoHangupTimer from './auto_hangup_timer';\nimport DisconnectSessionTimer from './disconnect_session_timer';\nimport CallDurationTimer from './call_duration_timer';\nimport BlinkTimer from './blink_timer';\n\nexport default class VoipChat extends PureComponent {\n static propTypes = {\n tokboxSessionId: PropTypes.string,\n tokboxApiKey: PropTypes.number,\n tokboxBuyerToken: PropTypes.string,\n subscribed: PropTypes.func.isRequired,\n receivedSignal: PropTypes.func.isRequired,\n conversationOption: PropTypes.object,\n voipType: PropTypes.string.isRequired,\n profilePictureUrl: PropTypes.string.isRequired,\n enableMic: PropTypes.bool.isRequired,\n enableVideo: PropTypes.bool.isRequired,\n setReconnecting: PropTypes.func.isRequired,\n pauseVoipChat: PropTypes.func.isRequired,\n voipState: PropTypes.string.isRequired,\n forceHangupVoipChat: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n t: PropTypes.func.isRequired,\n discountData: PropTypes.object\n };\n\n static defaultProps = {\n tokboxSessionId: null,\n tokboxApiKey: null,\n tokboxBuyerToken: null,\n conversationOption: null,\n discountData: null\n };\n\n state = {\n stream: null,\n blinkSetup: true,\n callDurationNow: null,\n showHUD: true,\n error: null,\n chatReady: false,\n xfmProgramActive: false\n };\n\n componentDidMount() {\n window.history.pushState(null, null, window.location.href);\n window.addEventListener('onpopstate', this.disableBackButton);\n this.sessionHelper = null;\n this.autoHangupTimer = createRef();\n this.disconnectSessiontimer = createRef();\n const { setReconnecting } = this.props;\n this.sessionHandlers = {\n sessionDisconnected: () => {\n log(LOG_LEVELS.INFO, 'VOIP CHAT', 'Session disconnected');\n this.setState({ showHUD: true });\n },\n sessionReconnected: () => {\n log(LOG_LEVELS.INFO, 'VOIP CHAT', 'Session reconnected');\n setReconnecting(false);\n this.setState({ showHUD: false });\n },\n sessionReconnecting: () => {\n log(LOG_LEVELS.INFO, 'VOIP CHAT', 'Session reconnecting');\n setReconnecting(true);\n this.setState({ showHUD: true });\n }\n };\n this.createOpentokSession();\n }\n\n componentDidUpdate(prevProps) {\n const { conversationOption, tokboxApiKey } = this.props;\n if (conversationOption && !prevProps.conversationOption) this.onReceivedConversationOptions();\n if (tokboxApiKey && !prevProps.tokboxApiKey) this.createOpentokSession();\n }\n\n componentWillUnmount() {\n window.removeEventListener('onpopstate', this.disableBackButton);\n if (this.sessionHelper) {\n this.sessionHelper.disconnect();\n }\n }\n\n disableBackButton = () => {\n window.history.go(1);\n };\n\n onPublisherError = (error) => {\n if (error.code === 1500) {\n this.setState({\n error: 'Access to camera or microphone is blocked, please check your browser settings'\n });\n }\n log(LOG_LEVELS.ERROR, 'VOIP CHAT', 'Publisher error', error);\n };\n\n onStreamsUpdated = (streams) => {\n const { pauseVoipChat, voipState, forceHangupVoipChat } = this.props;\n this.setState({ stream: streams[0] });\n if (streams.length === 0) {\n if (voipState === Const.voipChatStates.finishing) {\n clearTimeout(this.disconnectSessiontimer.current);\n log(LOG_LEVELS.DEBUG, 'VOIP CHAT', 'Disconnect timer was cleared from streams update');\n pauseVoipChat();\n } else {\n log(LOG_LEVELS.INFO, 'VOIP CHAT', 'Forced voip chat hang up');\n forceHangupVoipChat();\n }\n }\n log(LOG_LEVELS.DEBUG, 'VOIP CHAT', 'Streams updated');\n };\n\n onSubscriberSubscribed = () => {\n const { subscribed } = this.props;\n log(LOG_LEVELS.INFO, 'VOIP CHAT', 'Subscription initiated');\n subscribed();\n clearTimeout(this.autoHangupTimer.current);\n this.setState({ showHUD: false });\n };\n\n onReceivedConversationOptions = () => {\n const { conversationOption } = this.props;\n this.setState({ callDurationNow: conversationOption.callDurationTimer });\n };\n\n blinkOnTimer = () => {\n const { blinkSetup } = this.state;\n this.setState({ blinkSetup: !blinkSetup });\n };\n\n updateCallDuration = (newCallDurationNow) => this.setState({\n callDurationNow: newCallDurationNow\n });\n\n updateXfmProgramActive = (newXfmProgramActive) => this.setState({\n xfmProgramActive: newXfmProgramActive\n });\n\n clearError = () => this.setState({ error: null });\n\n createOpentokSession = () => {\n const {\n tokboxApiKey, tokboxSessionId,\n tokboxBuyerToken, receivedSignal\n } = this.props;\n if (tokboxApiKey && tokboxSessionId && tokboxBuyerToken) {\n log(LOG_LEVELS.INFO, 'VOIP', 'Creating OPENTOK SESSION');\n this.sessionHelper = createSession({\n apiKey: tokboxApiKey,\n sessionId: tokboxSessionId,\n token: tokboxBuyerToken,\n onStreamsUpdated: this.onStreamsUpdated,\n onConnect: () => log(LOG_LEVELS.INFO, 'VOIP CHAT', 'ON SESSION CONNECT')\n });\n this.setState({ chatReady: true });\n this.sessionHelper.session.on('signal', (event) => {\n const { callDurationNow } = this.state;\n receivedSignal(event.data, callDurationNow);\n });\n this.sessionHelper.session.on(this.sessionHandlers);\n }\n };\n\n renderSubscriber() {\n const { session } = this.sessionHelper;\n const { stream } = this.state;\n if (!stream) return null;\n return (\n <OTSubscriber\n key={ stream.id }\n session={ session }\n stream={ stream }\n properties={ {\n showControls: false\n } }\n onSubscribe={ this.onSubscriberSubscribed }\n />\n );\n }\n\n renderPublisher() {\n const { session } = this.sessionHelper;\n const { stream } = this.state;\n if (!stream) return null;\n const { voipType, enableMic, enableVideo } = this.props;\n const showVideo = voipType === Const.chatType.video && enableVideo;\n return (\n <OTPublisher\n session={ session }\n onError={ this.onPublisherError }\n properties={ {\n publishAudio: enableMic,\n publishVideo: showVideo,\n showControls: false,\n height: '150',\n width: '100%',\n videoSource: voipType === Const.chatType.video ? true : null\n } }\n />\n );\n }\n\n renderTimers() {\n const { stream } = this.state;\n const { pauseVoipChat } = this.props;\n return [\n <AutoHangupTimer timerRef={ this.autoHangupTimer } key=\"hangup_timer\" />,\n <DisconnectSessionTimer timerRef={ this.disconnectSessiontimer } stream={ stream } onTimeOut={ pauseVoipChat } key=\"disconnect_session_timer\" />,\n <CallDurationTimer onCallDurationUpdate={ this.updateCallDuration } updateXfmProgramActive={ this.updateXfmProgramActive } key=\"call_duration_timer\" />,\n <BlinkTimer onTick={ this.blinkOnTimer } key=\"blink_timer\" />\n ];\n }\n\n renderVoiceChatOverlay() {\n const {\n profilePictureUrl, voipType, discountData, name, t\n } = this.props;\n const { blinkSetup, callDurationNow } = this.state;\n const voiceChat = voipType === Const.chatType.voice;\n if (!voiceChat) return null;\n return (\n <VoiceOverlay profilePictureUrl={ profilePictureUrl } blinkSetup={ blinkSetup } callDurationNow={ callDurationNow } voipType={ voipType } discountData={ discountData } name={ name } t={ t } />\n );\n }\n\n renderControls() {\n const { voipType } = this.props;\n const voiceChat = voipType === Const.chatType.voice;\n const { blinkSetup, callDurationNow, xfmProgramActive } = this.state;\n if (voiceChat) return null;\n return <VoipControls blinkSetup={ blinkSetup } callDurationNow={ callDurationNow } xfmProgramActive={ xfmProgramActive } />;\n }\n\n render() {\n const {\n showHUD, error, chatReady\n } = this.state;\n if (!chatReady) return null;\n const HUD = showHUD ? <SquareAnimation /> : null;\n return (\n <div className={ classesModule.container }>\n { this.renderTimers() }\n <div>\n { this.renderSubscriber() }\n <div className={ classesModule.publisherContainer }>\n { this.renderPublisher() }\n </div>\n { this.renderControls() }\n </div>\n { this.renderVoiceChatOverlay() }\n <VoipAlert error={ error } clearError={ this.clearError } />\n { HUD }\n </div>\n );\n }\n}\n","import { connect } from 'react-redux';\nimport {\n preloadScript\n} from 'opentok-react';\nimport VoipChat from './voip_chat';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport {\n subscribed, receivedSignal,\n hangupVoipChat, noAnswer,\n timerEndConversation, pullConversation,\n setReconnecting, pauseVoipChat, forceHangupVoipChat\n} from '../../actions/voip_chat';\nimport { trackEvent } from '../../actions/mixpanel';\n\nconst mapStateToProps = ({ voipChat }) => ({ ...voipChat, ...voipChat.conversationOption });\n\nexport default preloadScript(connect(\n mapStateToProps,\n {\n subscribed,\n receivedSignal,\n hangupVoipChat,\n noAnswer,\n timerEndConversation,\n pullConversation,\n trackEvent,\n setReconnecting,\n pauseVoipChat,\n forceHangupVoipChat\n }\n)(withPGTranslation(VoipChat)));\n","import React, { PureComponent } from 'react';\nimport Webcam from 'react-webcam';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Const from '../../../config/const';\nimport classes from './classes.module.scss';\nimport CallAnimation from './call_animation';\nimport { getModeColor } from '../../../config/util';\n\nconst cancelBtn = require('./img/cross_icn.png');\nconst voipCancelButton = require('./img/ic_phone.png');\n\nconst videoConstraints = {\n width: 100,\n height: 150,\n facingMode: 'user'\n};\n\nexport default class Outgoing extends PureComponent {\n static propTypes = {\n cancelChat: PropTypes.func.isRequired,\n profilePictureUrl: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n hangingUp: PropTypes.bool,\n t: PropTypes.func.isRequired,\n chatType: PropTypes.string.isRequired,\n soundUrl: PropTypes.string.isRequired,\n createChat: PropTypes.func,\n orderId: PropTypes.number\n };\n\n static defaultProps = {\n hangingUp: false,\n createChat: null,\n orderId: null\n };\n\n constructor(props) {\n super(props);\n\n this.renderWebcam = this.renderWebcam.bind(this);\n }\n\n componentDidMount() {\n const { soundUrl } = this.props;\n this.audio = new Audio(soundUrl);\n if (this.audio) {\n this.audio.play();\n this.audio.loop = true;\n }\n const { createChat } = this.props;\n if (createChat) createChat();\n }\n\n componentWillUnmount() {\n this.audio?.pause();\n }\n\n onHangUP = () => {\n const { cancelChat, hangingUp, orderId } = this.props;\n if (hangingUp || !orderId) return;\n cancelChat();\n };\n\n renderWebcam() {\n const { chatType } = this.props;\n if (chatType !== Const.chatType.video) {\n return null;\n }\n return (\n <div className={ classes.publisherContainer }>\n <Webcam\n audio={ false }\n height={ 150 }\n width={ 100 }\n videoConstraints={ videoConstraints }\n mirrored\n />\n </div>\n );\n }\n\n render() {\n const {\n profilePictureUrl, name,\n hangingUp, t, chatType\n } = this.props;\n const borderColor = getModeColor(Const.chatTypeToModeName[chatType]);\n\n return (\n <div className={ classes.container }>\n <img className={ classes.blurImage } src={ profilePictureUrl } alt=\"Blur\" />\n <div className={ classes.overlay } />\n <CallAnimation\n pictureSrc={ profilePictureUrl }\n borderColor={ borderColor }\n />\n <div className={ classes.contactingContainer }>\n <span className={ classes.contacting }>\n {hangingUp ? t('chat.hanging_up') : t('chat.contacting') }\n </span>\n <br />\n {name}\n </div>\n <div className={ classes.buttonContainer }>\n <div\n className={ classNames(classes.button, hangingUp ? classes.hangingUp : null) }\n onClick={ this.onHangUP }\n onKeyDown={ this.onHangUP }\n >\n <img\n className={\n chatType === Const.chatType.text ? classes.buttonImage : classes.voipButtonImage\n }\n src={ chatType === Const.chatType.text ? cancelBtn : voipCancelButton }\n alt=\"Cancel\"\n />\n </div>\n </div>\n { this.renderWebcam() }\n </div>\n );\n }\n}\n","import { connect } from 'react-redux';\nimport Const from '../../../config/const';\nimport Outgoing from './outgoing';\nimport { hangupChat, createChat } from '../../../actions/chat';\nimport { hangupVoipChat } from '../../../actions/voip_chat';\nimport withPGTranslation from '../../../config/withPGTranslation';\n\nconst mapStateToProps = ({ chat, voipChat }, { chatType }) => {\n switch (chatType) {\n case Const.chatType.text:\n return ({ ...chat, soundUrl: 'https://dpam6lhev4yyd.cloudfront.net/assets/outgoing_ring_live_chat_pg.mp4' });\n case Const.chatType.voice:\n return ({ ...voipChat, soundUrl: 'https://dpam6lhev4yyd.cloudfront.net/assets/outgoing_voice_call.wav' });\n case Const.chatType.video:\n return ({ ...voipChat, soundUrl: 'https://dpam6lhev4yyd.cloudfront.net/assets/outgoing_video_call.mp3' });\n default:\n return null;\n }\n};\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n switch (ownProps.chatType) {\n case Const.chatType.text:\n return ({\n cancelChat: () => dispatch(hangupChat()),\n createChat: () => dispatch(createChat())\n });\n case Const.chatType.voice:\n case Const.chatType.video:\n return ({\n cancelChat: () => dispatch(hangupVoipChat(true))\n });\n default:\n return null;\n }\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(withPGTranslation(Outgoing));\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport OutgoingScreen from '../outgoin_call';\n\nexport default class Starting extends PureComponent {\n static propTypes = {\n createChat: PropTypes.func.isRequired,\n profilePictureUrl: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n chatType: PropTypes.string.isRequired\n };\n\n componentDidMount() {\n const { createChat } = this.props;\n createChat();\n }\n\n render() {\n const { chatType } = this.props;\n return <OutgoingScreen chatType={ chatType } />;\n }\n}\n","import { connect } from 'react-redux';\nimport Starting from './starting';\nimport { createChat } from '../../../actions/chat';\nimport { createVoipChat } from '../../../actions/voip_chat';\nimport Const from '../../../config/const';\n\nconst mapStateToProps = ({ chat, voipChat }, { chatType }) => {\n switch (chatType) {\n case Const.chatType.text:\n return chat;\n case Const.chatType.voice:\n case Const.chatType.video:\n return voipChat;\n default:\n return null;\n }\n};\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n switch (ownProps.chatType) {\n case Const.chatType.text:\n return ({\n createChat: () => dispatch(createChat())\n });\n case Const.chatType.video:\n return ({\n createChat: () => dispatch(createVoipChat('video', false))\n });\n case Const.chatType.voice:\n return ({\n createChat: () => dispatch(createVoipChat('voice_call', false))\n });\n default:\n return null;\n }\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(Starting);\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Const from '../../../config/const';\n\nfunction AdvisorEnded({\n notification, voipChatState, clearPN\n}) {\n if (voipChatState === Const.voipChatStates.endedConversation) return <div />;\n useEffect(() => {\n if (notification && notification.ntype === 'advisor_ended') {\n // chatData[chatType].hangupAction();\n // showGeneralPopup(t('advisor_ended.was_ended', { callType: chatData[chatType].type }), null);\n clearPN();\n }\n return () => {};\n }, [notification]);\n return <div />;\n}\n\nAdvisorEnded.propTypes = {\n notification: PropTypes.object,\n voipChatState: PropTypes.string,\n clearPN: PropTypes.func.isRequired\n};\n\nAdvisorEnded.defaultProps = {\n notification: null,\n voipChatState: null\n};\n\nexport default AdvisorEnded;\n","import { connect } from 'react-redux';\nimport AdvisorEnded from './advisor_ended';\nimport withPGTranslation from '../../../config/withPGTranslation';\nimport { hangupVoipChat } from '../../../actions/voip_chat';\nimport { hangupChat } from '../../../actions/chat';\nimport { showGeneralPopup } from '../../../actions/general_popup';\nimport { clearPN } from '../../../actions/firebase_messaging';\n\nconst mapStateToProps = ({ voipChat, chat, pushNotification }) => ({\n voipChatState: voipChat && voipChat.voipState,\n textChatstate: chat && chat.state,\n ...pushNotification\n});\n\nexport default connect(mapStateToProps, {\n hangupVoipChat,\n hangupChat,\n showGeneralPopup,\n clearPN\n})(withPGTranslation(AdvisorEnded));\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport ChatEnded from '../created_chat/chat_ended';\nimport Constants from '../../config/const';\nimport VoipChat from '../voip_chat';\nimport Starting from '../chat_overlay/starting';\nimport SelectChatCredit from '../chat_overlay/select_chat_credit';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport PurchaseDetails from '../chat_overlay/purchase_details';\nimport classes from '../created_chat/classes.module.scss';\nimport AdvisorEnded from '../voip_chat/advisor_ended';\nimport { trackEventSpentCredit } from '../../actions/analytics';\nimport { trackChatEndedEventGTM } from '../../actions/google_tag_mahager_events';\n\nconst renderTopImg = (isNewUser, profilePictureUrl) => (isNewUser ? (\n <img\n className={ classes.advisorImage }\n src={ profilePictureUrl }\n alt=\"\"\n />\n) : null);\n\nconst renderSelectCredit = (voipType, isNewUser, profilePictureUrl) => (\n <div className={ classes.addCreditContainer }>\n <AppGeneralPopup logoImg={ renderTopImg(isNewUser, profilePictureUrl) }>\n <SelectChatCredit chatType={ voipType } isContinue selectorOpenedTime={ new Date() } />\n </AppGeneralPopup>\n <AdvisorEnded chatType={ voipType } />\n </div>\n);\n\nconst renderPurchaseDetails = (voipType, voipPurchaseOnBack) => (\n <div className={ classes.addCreditContainer }>\n <AppGeneralPopup>\n <PurchaseDetails\n chatType={ voipType }\n backArrowAction={ voipPurchaseOnBack }\n isContinue\n />\n </AppGeneralPopup>\n </div>\n);\n\nconst voipActionList = (voipType, voipPurchaseOnBack, isNewUser, profilePictureUrl) => ({\n [Constants.voipChatStates.connectProvider]: {\n voipChat: <VoipChat />, content: <Starting chatType={ voipType } />\n },\n [Constants.voipChatStates.connecting]: {\n voipChat: <VoipChat />, content: <Starting chatType={ voipType } />\n },\n [Constants.voipChatStates.starting]: {\n voipChat: <VoipChat />, content: <Starting chatType={ voipType } />\n },\n [Constants.voipChatStates.endedConversation]: {\n voipChat: null, content: <ChatEnded chatType={ voipType } />\n },\n [Constants.voipChatStates.inConversation]: {\n voipChat: <VoipChat />, content: null\n },\n [Constants.voipChatStates.finishing]: {\n voipChat: <VoipChat />, content: null\n },\n [Constants.voipChatStates.subscribed]: {\n voipChat: <VoipChat />, content: null\n },\n [Constants.voipChatStates.paused]: {\n voipChat: null,\n content: renderSelectCredit(voipType, isNewUser, profilePictureUrl)\n },\n [Constants.voipChatStates.paymentRequiredOnContinue]: {\n voipChat: null,\n content: renderPurchaseDetails(voipType, voipPurchaseOnBack)\n },\n [Constants.voipChatStates.continue]: {\n voipChat: <VoipChat />, content: null\n }\n});\n\nexport default class CreatedVoipChat extends PureComponent {\n static propTypes = {\n voipState: PropTypes.string.isRequired,\n voipType: PropTypes.string.isRequired,\n t: PropTypes.func.isRequired,\n voipPurchaseOnBack: PropTypes.func.isRequired,\n totalCharged: PropTypes.string,\n orderId: PropTypes.number,\n userId: PropTypes.number.isRequired,\n advisorId: PropTypes.number.isRequired,\n totalDuration: PropTypes.number,\n profilePictureUrl: PropTypes.string.isRequired,\n isNewUser: PropTypes.bool\n };\n\n static defaultProps = {\n totalCharged: null,\n orderId: null,\n totalDuration: null,\n isNewUser: false\n };\n\n componentDidUpdate(prevProps) {\n const {\n voipState, totalCharged, orderId, userId, advisorId, voipType, totalDuration\n } = this.props;\n if (prevProps.voipState !== Constants.voipChatStates.endedConversation\n && voipState === Constants.voipChatStates.endedConversation) {\n trackEventSpentCredit(parseFloat(totalCharged).toFixed(2), 'USD', userId, orderId);\n const voipEndedEventGTMParams = {\n 'advisor id': advisorId,\n 'user id': userId,\n 'order id': orderId,\n 'total charged': parseFloat(totalCharged).toFixed(2),\n 'total duration': parseFloat(totalDuration / 60).toFixed(2)\n };\n trackChatEndedEventGTM(voipType, voipEndedEventGTMParams);\n }\n }\n\n render() {\n const {\n voipState, voipType, voipPurchaseOnBack, isNewUser, profilePictureUrl\n } = this.props;\n const { voipChat, content } = voipActionList(voipType, voipPurchaseOnBack, isNewUser, profilePictureUrl)[voipState];\n\n return (\n <div className={ classes.callingScreen }>\n { voipChat }\n { content }\n <AdvisorEnded chatType={ voipType } />\n </div>\n );\n }\n}\n","import { connect } from 'react-redux';\nimport CreatedVoipChat from './created_voip_chat';\nimport Const from '../../config/const';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport { voipPurchaseOnBack } from '../../actions/voip_chat';\nimport { trackEventSpentCredit } from '../../actions/analytics';\n\nconst mapStateToProps = ({ voipChat, user: { user } }) => ({\n ...voipChat,\n ...voipChat.order,\n userId: user && user.id,\n isNewUser: voipChat && voipChat.selectDurationKind === Const.selectDurationKind.newUser\n});\n\nexport default connect(mapStateToProps, {\n voipPurchaseOnBack,\n trackEventSpentCredit\n})(withPGTranslation(CreatedVoipChat));\n","import { connect } from 'react-redux';\nimport Const from '../../../config/const';\nimport Error from '../error';\nimport { hangupVoipChat } from '../../../actions/voip_chat';\nimport { hangupChat } from '../../../actions/chat';\n\nconst mapStateToProps = ({ chat: { errors }, voipChat: { errors: voipErrors, permissionDeniedError } }, { chatType }) => {\n switch (chatType) {\n case Const.chatType.text:\n return ({ error: { errors }, chatType });\n case Const.chatType.voice:\n case Const.chatType.video:\n return ({ error: { voipErrors }, chatType, permissionDeniedError });\n default:\n return null;\n }\n};\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n switch (ownProps.chatType) {\n case Const.chatType.text:\n return ({\n onCancelClicked: () => dispatch(hangupChat())\n });\n case Const.chatType.voice:\n case Const.chatType.video:\n return ({\n onCancelClicked: () => dispatch(hangupVoipChat())\n });\n default:\n return null;\n }\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(Error);\n","// extracted by mini-css-extract-plugin\nexport default {\"introScreenContainer\":\"introScreenContainer--BWwSA\",\"introContainer\":\"introContainer--TCts_\",\"buttonDisabled\":\"buttonDisabled--mIfw1\",\"introduceYourself\":\"introduceYourself--xH2wh\",\"nickNameContainer\":\"nickNameContainer--XxA1h\",\"nicknameDescriptionContainer\":\"nicknameDescriptionContainer--YQioT\",\"nicknameDescriptionText\":\"nicknameDescriptionText--bXJJd\",\"nicknameDescriptionBoldText\":\"nicknameDescriptionBoldText--TelRG\",\"fullWidth\":\"fullWidth--VDHDd\",\"genderSelectorContainer\":\"genderSelectorContainer--ljHn1\",\"radioBtnNotSelectedContent\":\"radioBtnNotSelectedContent--VrSXY\",\"radioBtnSelectedContent\":\"radioBtnSelectedContent--DHxjl\",\"radioBtnContentGenderIcon\":\"radioBtnContentGenderIcon--QM0GQ\",\"dateContainer\":\"dateContainer--kvuXG\",\"dateDescriptionContainer\":\"dateDescriptionContainer--GD2cp\",\"startBtn\":\"startBtn--hwhZM\",\"introPopupXContent\":\"introPopupXContent--ih8UB\",\"introPopupXButton\":\"introPopupXButton--ygrB3\",\"errorModalFooter\":\"errorModalFooter--mLK2m\",\"errorModalHeader\":\"errorModalHeader--gr_w1\",\"errorModalBody\":\"errorModalBody--dc38s\",\"errorModalOkButton\":\"errorModalOkButton--eQHlN\",\"popupTitleContainer\":\"popupTitleContainer--_5_Ar\",\"popupTitleTextContainer\":\"popupTitleTextContainer--FSPi2\",\"popupTitle\":\"popupTitle--mj0LQ\",\"popupSubTitle\":\"popupSubTitle--AfLZT\",\"popupCloseBtn\":\"popupCloseBtn--HFdH7\",\"datePickerConfirmBtn\":\"datePickerConfirmBtn--KZit4\",\"labelContainer\":\"labelContainer--rh0wJ\",\"labelText\":\"labelText--l2AzA\",\"labelSubText\":\"labelSubText--nkcaG\",\"inputClass\":\"inputClass--DG6nI\",\"errorContainer\":\"errorContainer--vYVA5\"};","// extracted by mini-css-extract-plugin\nexport default {\"radioGroupContainer\":\"radioGroupContainer--qVbId\",\"radioBtn\":\"radioBtn--BgvVb\",\"radioBtnChecked\":\"radioBtnChecked--FngQ4\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport { log, LOG_LEVELS } from '../../../common/config/app_logger';\n\nconst getRadioBtnStyle = ({ value, selectedValue }) => {\n if (value === selectedValue) return classes.radioBtnChecked;\n return classes.radioBtn;\n};\n\nconst getBorderColor = ({ error }) => {\n if (error) return { borderColor: '#FF4242' };\n return {};\n};\n\nfunction RadioGroup({\n children, onChange, selectedValue, error\n}) {\n const onSelectionChanged = e => {\n const newValue = e.currentTarget.getAttribute('value');\n log(LOG_LEVELS.DEBUG, 'General', 'RadioGroup value changed', { value: newValue });\n onChange(newValue);\n };\n\n const renderRadioBtn = ({ child }) => {\n if (child.value === selectedValue) return child.radioBtnSelectedContent;\n return child.radioBtnNotSelectedContent;\n };\n\n const renderRadioGroup = () => (\n <div className={ classes.radioGroupContainer } style={ { ...getBorderColor({ error }) } }>\n { children.map((child) => (\n <div\n key={ child.key }\n className={ getRadioBtnStyle({ value: child.value, selectedValue }) }\n onClick={ onSelectionChanged }\n onKeyDown={ onSelectionChanged }\n value={ child.value }\n style={ { ...getBorderColor({ error }) } }\n >\n { renderRadioBtn({ child }) }\n </div>\n ))}\n </div>\n );\n\n return renderRadioGroup();\n}\n\nRadioGroup.propTypes = {\n children: PropTypes.array,\n onChange: PropTypes.func.isRequired,\n selectedValue: PropTypes.string,\n error: PropTypes.string\n};\n\nRadioGroup.defaultProps = {\n children: null,\n selectedValue: null,\n error: null\n};\n\nexport default RadioGroup;\n","import { connect } from 'react-redux';\nimport RadioGroup from './radio_group';\n\nconst mapStateToProps = () => ({});\n\nexport default connect(\n mapStateToProps,\n {}\n)(RadioGroup);\n","// extracted by mini-css-extract-plugin\nexport default {\"datePickerHolder\":\"datePickerHolder--TGImB\",\"datePickerInput\":\"datePickerInput--x0pit\"};","import { differenceInYears } from 'date-fns';\n\nexport const validateDate = ({ t, date }) => {\n let error;\n if (!date) error = t('date_picker.please_enter_your_date_of_birth');\n if (Number.isNaN(Number(date)) || differenceInYears(new Date(), new Date(date)) > 100) error = t('date_picker.please_enter_valid_date');\n if (differenceInYears(new Date(), new Date(date)) < 18) error = t('app_date_picker.you_must_be_18');\n return error;\n};\n\nexport const generateDate = ({ datePickerValue }) => {\n let day;\n let month;\n let year;\n if (datePickerValue) {\n const datePickerValueSplit = datePickerValue.split('/');\n [month, day, year] = datePickerValueSplit;\n }\n const updatedDay = day || 0;\n const updatedMonth = month;\n const updatedYear = (year && year.length === 4 && year[0] !== '0') ? year : null;\n return new Date(`${ updatedMonth }/${ updatedDay }/${ updatedYear }`);\n};\n\nconst getIndices = (s, t) => [...s].flatMap((char, i) => (char === t ? i + 1 : []));\n\nexport const addDividerToDateString = ({ dataString, divider }) => {\n const indexsWhenNeedSetDivider = [2, 5];\n let dataStringWithDivider = dataString;\n indexsWhenNeedSetDivider.forEach((i, index) => {\n if (dataString.length - 1 >= i && getIndices(dataString, divider).length < 2) {\n const prevDataStringPart = dataString.slice(indexsWhenNeedSetDivider[index - 1] + 1, i);\n if (dataString[i] !== divider && !prevDataStringPart.includes(divider)) {\n dataStringWithDivider = `${ dataString.slice(0, i) }${ divider }${ dataString.slice(i) }`;\n }\n }\n });\n return dataStringWithDivider;\n};\n\nconst isLeapYear = (year) => (\n (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0\n);\n\nconst getFebruaryDaysCount = (year) => {\n if (year && year.length === 4) {\n if (isLeapYear(parseInt(year, 10))) {\n return 29;\n }\n return 28;\n }\n return 29;\n};\n\nconst getMonthList = (year) => (\n {\n January: 31,\n February: getFebruaryDaysCount(year),\n March: 31,\n April: 30,\n May: 31,\n June: 30,\n July: 31,\n August: 31,\n September: 30,\n October: 31,\n November: 30,\n December: 31\n }\n);\n\nconst emptyDatePartValues = ['', '0', '00'];\n\nexport const validateDateString = ({ dateString, divider }) => {\n const dateStringSplit = dateString.split(divider);\n if (dateStringSplit[0] && dateStringSplit[0] > 12) {\n dateStringSplit[1] = `${ dateStringSplit[0][1] }`;\n dateStringSplit[0] = `0${ dateStringSplit[0][0] }`;\n }\n if (dateStringSplit[1]) {\n const monthList = getMonthList(dateStringSplit[2]);\n const monthKey = Object.keys(monthList)[parseInt(dateStringSplit[0], 10) - 1];\n if (dateStringSplit[1] > monthList[monthKey]) dateStringSplit[1] = monthList[monthKey];\n }\n if (dateStringSplit[2]?.length > 4) {\n dateStringSplit[2] = dateStringSplit[2].slice(0, 4);\n }\n dateStringSplit.forEach((item, index) => {\n const isEmptyDatePart = emptyDatePartValues.includes(item);\n if (isEmptyDatePart && dateStringSplit[index + 1]) {\n dateStringSplit[index] = '01';\n }\n });\n const updatedDateString = dateStringSplit.join(divider);\n return addDividerToDateString({ dataString: updatedDateString, divider });\n};\n\nexport const cleanupDateValue = (stringValue) => stringValue.replace(/[^0-9/]/g, '');\n\nexport const getDatePickerPlaceholder = ({ datePickerValue, divider }) => {\n let placeholder = 'MM/DD/YYYY';\n const placeholderSplit = placeholder.split(divider);\n const datePickerValueSplit = datePickerValue.split(divider);\n datePickerValueSplit.forEach((item, index) => {\n if (item && datePickerValueSplit[index + 1] !== undefined) {\n placeholderSplit[index] = item;\n } else {\n for (let i = 0; i < item.length; i++) {\n placeholderSplit[index] = placeholderSplit[index]\n .replace(placeholderSplit[index][i], item[i]);\n }\n }\n });\n placeholder = placeholderSplit.join(divider);\n return placeholder;\n};\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { format } from 'date-fns';\nimport classes from './classes.module.scss';\nimport {\n generateDate, validateDate, addDividerToDateString, validateDateString, getDatePickerPlaceholder,\n cleanupDateValue\n} from './date_picker_utils';\n\nfunction DatePicker({\n className, t, setError, clearError, setDate, datePickerInputStyle, datePickerHolderStyle,\n setedDate\n}) {\n const [datePickerValue, setDatePickerValue] = useState('');\n const divider = '/';\n\n useEffect(() => {\n if (setedDate) {\n const formatedDateString = format(new Date(setedDate), 'MM-dd-yyyy');\n const formatedDateStringSplit = formatedDateString.split('-');\n const month = formatedDateStringSplit[0];\n const day = formatedDateStringSplit[1];\n const year = formatedDateStringSplit[2];\n const dateArray = [month, day, year];\n const dateArrayJoined = dateArray.join(divider);\n setDatePickerValue(addDividerToDateString({ dataString: dateArrayJoined, divider }));\n }\n }, []);\n\n const onKeyDownDatePicker = (e) => {\n if (e.key === '/') {\n e.preventDefault();\n }\n };\n\n const onChangeDatePicker = (e) => {\n const updatedValue = cleanupDateValue(e.target.value);\n let dataStringWithDivider = addDividerToDateString({ dataString: updatedValue, divider });\n dataStringWithDivider = validateDateString({ dateString: dataStringWithDivider, divider });\n setDatePickerValue(dataStringWithDivider);\n };\n\n const onClickDatePicker = () => {\n clearError();\n };\n\n const onBlurDatePicker = () => {\n const date = generateDate({ datePickerValue });\n const error = validateDate({ t, date });\n if (error) setError(error);\n setDate(date);\n };\n\n const renderDatePicker = () => (\n <div\n className={ classNames(className, classes.datePickerHolder) }\n data-placeholder={ `${ getDatePickerPlaceholder({ datePickerValue, divider }) }` }\n style={ datePickerHolderStyle }\n >\n <input\n inputMode=\"numeric\"\n value={ datePickerValue }\n className={ classes.datePickerInput }\n onChange={ onChangeDatePicker }\n maxLength={ 10 }\n onBlur={ onBlurDatePicker }\n onClick={ onClickDatePicker }\n style={ datePickerInputStyle }\n onKeyDown={ onKeyDownDatePicker }\n />\n </div>\n );\n\n return renderDatePicker();\n}\n\nDatePicker.defaultProps = {\n className: PropTypes.string,\n t: PropTypes.func.isRequired,\n setError: PropTypes.func.isRequired,\n clearError: PropTypes.func.isRequired,\n setDate: PropTypes.func.isRequired,\n datePickerInputStyle: PropTypes.object,\n datePickerHolderStyle: PropTypes.object,\n date: PropTypes.string\n};\n\nDatePicker.defaultProps = {\n className: null,\n style: null,\n datePickerHolderStyle: null,\n date: null\n};\n\nexport default DatePicker;\n","import DatePicker from './date_picker';\n\nexport default DatePicker;\n","import React from 'react';\nimport classes from './classes.module.scss';\nimport { SvgIcon } from '../../../common/sprites';\n\nexport const errorTypes = {\n nickname: 'nickname',\n gender: 'gender',\n birthDate: 'birthDate',\n error: 'error'\n};\n\nexport const validateNickname = ({\n nickname, t, introErrors, setIntroErrors, returnErrors = false\n}) => {\n let errors = {};\n if (!nickname) errors = { [errorTypes.nickname]: t('intro.please_pick_a_username') };\n errors = { ...introErrors, ...errors };\n if (returnErrors) return errors;\n return setIntroErrors(errors);\n};\n\nexport const validateGender = ({\n gender, t, introErrors, setIntroErrors, returnErrors = false\n}) => {\n let errors = {};\n if (!gender) errors = { [errorTypes.gender]: t('intro.please_select_your_gender') };\n errors = { ...introErrors, ...errors };\n if (returnErrors) return errors;\n return setIntroErrors(errors);\n};\n\nexport const renderPopupTitle = ({\n title, subTitle, onCloseBtnClick, closeIconId\n}) => (\n <div className={ classes.popupTitleContainer }>\n <div className={ classes.popupTitleTextContainer }>\n <div className={ classes.popupTitle }>{ title }</div>\n <div className={ classes.popupSubTitle }>{ subTitle }</div>\n </div>\n <button type=\"button\" onClick={ onCloseBtnClick } className={ classes.popupCloseBtn }>\n <SvgIcon id={ closeIconId } size={ 16 } />\n </button>\n </div>\n);\n\nexport const renderRadioBtnContent = ({\n name, value, iconId, iconSelectedId\n}) => {\n const radioBtn = {\n radioBtnNotSelectedContent: (\n <div className={ classes.radioBtnNotSelectedContent }>\n <SvgIcon id={ iconId } className={ classes.radioBtnContentGenderIcon } size={ 18 } />\n { name }\n </div>\n ),\n radioBtnSelectedContent: (\n <div className={ classes.radioBtnSelectedContent }>\n <SvgIcon id={ iconSelectedId } className={ classes.radioBtnContentGenderIcon } size={ 18 } />\n { name }\n </div>\n ),\n value,\n key: `${ name }NotSelected`\n };\n return radioBtn;\n};\n\nexport const renderErrorModalContent = ({ introErrors, clearShowErrorModal, t }) => (\n <div>\n <div className={ classes.errorModalHeader }>\n <b>{t('app_name_title')}</b>\n </div>\n <div className={ classes.errorModalBody }>\n { introErrors.error }\n </div>\n <div className={ classes.errorModalFooter }>\n <button type=\"button\" value=\"Promo Code\" className={ classes.errorModalOkButton } onClick={ clearShowErrorModal }>\n <b>{ t('promoCode.ok') }</b>\n </button>\n </div>\n </div>\n);\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport classes from './classes.module.scss';\nimport { log, LOG_LEVELS } from '../../../common/config/app_logger';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport { appGeneralPopupTheme } from '../../../common/config/const';\nimport RadioGroup from '../radio_group';\nimport DatePicker from '../../../common/date_picker';\nimport { validateDate } from '../../../common/date_picker/date_picker_utils';\nimport {\n errorTypes, validateNickname, validateGender, renderPopupTitle,\n renderRadioBtnContent, renderErrorModalContent\n} from './intro_utils';\nimport { trackPageVisit } from '../../actions/analytics';\nimport Const from '../../config/const';\n\nconst getButtonTitle = (chatType, t) => {\n switch (chatType) {\n case Const.chatType.text:\n return t('chat.start_chat');\n case Const.chatType.video:\n return t('chat.start_video_call');\n case Const.chatType.voice:\n return t('chat.start_voice_call');\n default:\n return null;\n }\n};\n\nfunction IntroComponent({\n updateUserBaseInfo, loading, t, error, closeButtonAction, clearErrorAction, chatType\n}) {\n const [nickname, setNickName] = useState(null);\n const [gender, setGenderChanged] = useState(null);\n const [birthDate, setBirthDate] = useState(null);\n const [introErrors, setIntroErrors] = useState({});\n\n const clearError = ({ type }) => {\n if (!type) {\n setIntroErrors(null);\n return;\n }\n const clearedErrorKeys = Object.keys(introErrors).filter((err) => err !== type);\n const clearedError = {};\n clearedErrorKeys.forEach((key) => { clearedError[key] = introErrors[key]; });\n setIntroErrors(clearedError);\n };\n\n const genderSelectorOnChange = (value) => {\n setGenderChanged(value);\n clearError({ type: errorTypes.gender });\n };\n\n const renderInputError = ({ type }) => (\n <div className={ classes.errorContainer }>\n { introErrors[type] }\n </div>\n );\n\n const renderGenderSelector = () => (\n <>\n <RadioGroup\n selectedValue={ gender }\n onChange={ genderSelectorOnChange }\n error={ introErrors[errorTypes.gender] }\n >\n {renderRadioBtnContent({\n name: t('intro.female'), value: 'F', iconId: 'female_icon', iconSelectedId: 'female_selected_icon'\n })}\n {renderRadioBtnContent({\n name: t('intro.male'), value: 'M', iconId: 'male_icon', iconSelectedId: 'male_selected_icon'\n })}\n {renderRadioBtnContent({\n name: t('intro.other'), value: 'O', iconId: 'other_icon', iconSelectedId: 'other_selected_icon'\n })}\n </RadioGroup>\n { renderInputError({ type: errorTypes.gender }) }\n </>\n );\n useEffect(() => {\n trackPageVisit('introduce yourself popup');\n }, []);\n\n useEffect(() => {\n if (error) setIntroErrors({ ...introErrors, [errorTypes.error]: error.error });\n }, [error]);\n\n const getBorderColor = ({ type }) => {\n if (introErrors[type]) return { borderColor: '#FF4242' };\n return {};\n };\n\n const onNickNameChanged = e => {\n log(LOG_LEVELS.VERBOSE, 'General', `on nickname changed ${ e.target.value }`);\n e.preventDefault();\n setNickName(e.target.value);\n clearError({ type: errorTypes.nickname });\n };\n\n const validateNicknameAction = () => {\n validateNickname({\n nickname, t, introErrors, setIntroErrors\n });\n };\n\n const onStartBtnClicked = () => {\n log(LOG_LEVELS.INFO, 'General', 'on User info Start Clicked');\n const nicknameErrors = validateNickname({\n nickname, t, introErrors, setIntroErrors, returnErrors: true\n });\n const genderErrors = validateGender({\n gender, t, introErrors, setIntroErrors, returnErrors: true\n });\n const validateDateError = validateDate({ t, date: birthDate });\n const birthDateErrors = validateDateError ? { [errorTypes.birthDate]: validateDateError } : {};\n\n const errors = { ...nicknameErrors, ...genderErrors, ...birthDateErrors };\n setIntroErrors(errors);\n if (Object.keys(errors).length > 0) return;\n updateUserBaseInfo({ nickname, gender, dateOfBirth: birthDate });\n };\n\n const isBtnEnabled = () => !loading;\n\n const clearShowErrorModal = () => clearError({ type: errorTypes.error });\n\n const closeIntroPopupAction = () => {\n closeButtonAction();\n clearErrorAction();\n clearError({});\n };\n\n const setDateOfBirthError = (err) => {\n setIntroErrors({ ...introErrors, [errorTypes.birthDate]: err });\n };\n\n const clearDateOfBirthError = () => {\n clearError({ type: errorTypes.birthDate });\n };\n\n const renderDatePicker = () => (\n <>\n <DatePicker\n className={ classes.inputClass }\n t={ t }\n setError={ setDateOfBirthError }\n clearError={ clearDateOfBirthError }\n setDate={ setBirthDate }\n datePickerInputStyle={ { fontSize: '16px', fontWeight: 600, color: '#000000' } }\n datePickerHolderStyle={ { ...getBorderColor({ type: errorTypes.birthDate }), color: '#ABABAB' } }\n />\n { renderInputError({ type: errorTypes.birthDate }) }\n </>\n );\n\n return (\n <AppGeneralPopup\n theme={ appGeneralPopupTheme.SCROLLED_POPUP }\n customTopHeader={ renderPopupTitle({\n title: t('intro.introduce_yourself'), subTitle: t('intro.our_advisors_provide'), onCloseBtnClick: closeIntroPopupAction, closeIconId: 'close_icon'\n }) }\n >\n <div className={ classes.introScreenContainer }>\n <div className={ classes.introContainer }>\n <div className={ classes.nickNameContainer }>\n <div className={ classes.labelContainer } style={ { paddingTop: 0 } }>\n <div className={ classes.labelText }>{ t('intro.your_nickname') }</div>\n </div>\n <input\n className={ classes.inputClass }\n placeholder={ t('intro.nickname') }\n onChange={ onNickNameChanged }\n onBlur={ validateNicknameAction }\n style={ { ...getBorderColor({ type: errorTypes.nickname }) } }\n />\n { renderInputError({ type: errorTypes.nickname }) }\n </div>\n <div className={ classes.nicknameDescriptionContainer }>\n <span>\n <span className={ classes.nicknameDescriptionText }>{ t('intro.this_will_be_your_user_name') }</span>\n <span className={ classes.nicknameDescriptionBoldText }>{ t('intro.cannot_be_changed_later') }</span>\n </span>\n </div>\n <div className={ classes.labelContainer }>\n <div className={ classes.labelText }>{ t('intro.your_gender') }</div>\n </div>\n <div className={ classes.genderSelectorContainer }>\n {renderGenderSelector()}\n </div>\n <div className={ classes.dateContainer }>\n <div className={ classes.labelContainer }>\n <div className={ classes.labelText }>{ t('intro.date_of_birth') }</div>\n </div>\n { renderDatePicker() }\n </div>\n <div>\n <button\n type=\"button\"\n className={ classNames(\n classes.startBtn,\n isBtnEnabled() ? null : classes.buttonDisabled\n ) }\n onClick={ onStartBtnClicked }\n disabled={ !isBtnEnabled() }\n >\n <span>{ getButtonTitle(chatType, t) }</span>\n </button>\n </div>\n </div>\n <AppGeneralPopup\n visible = { !!introErrors.error }\n theme={ appGeneralPopupTheme.CENTERED }\n >\n { renderErrorModalContent({ introErrors, clearShowErrorModal, t }) }\n </AppGeneralPopup>\n </div>\n </AppGeneralPopup>\n );\n}\n\nIntroComponent.propTypes = {\n updateUserBaseInfo: PropTypes.func.isRequired,\n loading: PropTypes.bool.isRequired,\n error: PropTypes.object,\n user: PropTypes.object,\n t: PropTypes.func.isRequired,\n closeButtonAction: PropTypes.func.isRequired,\n clearErrorAction: PropTypes.func.isRequired,\n chatType: PropTypes.string\n};\n\nIntroComponent.defaultProps = {\n error: null,\n user: null,\n chatType: ''\n};\n\nexport default IntroComponent;\n","import { connect } from 'react-redux';\nimport IntroComponent from './intro';\nimport { updateUserBaseInfo, clearErrorAction } from '../../actions/introduce_yourself';\nimport withPGTranslation from '../../config/withPGTranslation';\n\nconst mapStateToProps = ({ intro }) => ({\n ...intro\n});\n\nexport default connect(\n mapStateToProps,\n {\n updateUserBaseInfo,\n clearErrorAction\n }\n)(withPGTranslation(IntroComponent));\n","import { format } from 'date-fns';\nimport { checkNickname, introduceYourselfUpdate } from '../config/api';\nimport Const from '../config/const';\n\nconst inProgressAction = () => ({\n type: Const.introduce.inProgress\n});\n\nconst errorAction = error => ({\n type: Const.introduce.error,\n payload: {\n error\n }\n});\n\nexport const clearErrorAction = () => ({\n type: Const.introduce.clearError\n});\n\nconst successAction = user => ({\n type: Const.introduce.user,\n payload: {\n user\n }\n});\n\nexport const updateUserBaseInfo = ({ nickname, gender, dateOfBirth }) => (dispatch) => {\n dispatch(inProgressAction());\n checkNickname(nickname)\n .then(() => introduceYourselfUpdate({ nickname, gender, date: format(dateOfBirth, 'yyyy-MM-dd') }))\n .then(user => {\n dispatch(successAction(user));\n })\n .catch(error => {\n error.json()\n .then(errorJson => {\n dispatch(errorAction(errorJson));\n });\n });\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Error from '../error';\n\nfunction NoAnswer({ t, onCancelClicked }) {\n return <Error error={ { errors: [t('chat.no_answer')] } } onCancelClicked={ onCancelClicked } />;\n}\n\nNoAnswer.propTypes = {\n t: PropTypes.func.isRequired,\n onCancelClicked: PropTypes.func.isRequired\n};\n\nexport default NoAnswer;\n","import { connect } from 'react-redux';\nimport Const from '../../../config/const';\nimport { cancelChat } from '../../../actions/chat';\nimport { cancelVoipChat } from '../../../actions/voip_chat';\nimport NoAnswer from './no_answer';\nimport withTranslation from '../../../config/withPGTranslation';\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n switch (ownProps.chatType) {\n case Const.chatType.text:\n return ({\n onCancelClicked: () => dispatch(cancelChat())\n });\n case Const.chatType.voice:\n case Const.chatType.video:\n return ({\n onCancelClicked: () => dispatch(cancelVoipChat())\n });\n default:\n return null;\n }\n};\n\nexport default connect(\n null,\n mapDispatchToProps\n)(withTranslation(NoAnswer));\n","// extracted by mini-css-extract-plugin\nexport default {\"layout\":\"layout--rDGjt\",\"callingScreen\":\"callingScreen--zsK5O\",\"animation-bzdot9\":\"animation-bzdot9--NPmGZ\"};","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport SelectChatCredit from '../chat_overlay/select_chat_credit';\nimport NotInLiveMode from '../chat_overlay/not_in_live_mode';\nimport CantCreate from '../chat_overlay/cant_create';\nimport CreatedVoipChat from '../created_voip_chat';\nimport GeneralError from '../chat_overlay/general_error';\nimport Constants from '../../config/const';\nimport IntroComponent from '../intro';\nimport PurchaseDetails from '../chat_overlay/purchase_details';\nimport NoAnswer from '../chat_overlay/no_answer';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport classes from './classes.module.scss';\nimport { log, LOG_LEVELS } from '../../../common/config/app_logger';\nimport Spiner from '../../../common/helpers/spiner';\nimport { changeAppStateAPI } from '../../config/api';\n\nconst { shared } = window;\n\nfunction VoipChatOverlay({\n voipState, purchaseOnBack, cancelChat, voipType, continuedSession, orderId\n}) {\n let content = null;\n\n useEffect(() => {\n const { onbeforeunload, onunload } = window;\n window.onbeforeunload = () => {\n log(LOG_LEVELS.INFO, 'VOIP CHAT', 'Page refreshed');\n return 'Test message';\n };\n\n window.onunload = () => {\n changeAppStateAPI(orderId, 'closed_window');\n };\n\n return () => {\n window.onbeforeunload = onbeforeunload;\n window.onunload = onunload;\n };\n }, [orderId]);\n\n useEffect(() => {\n const originalOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n return () => {\n document.body.style.overflow = originalOverflow;\n };\n }, []);\n\n switch (voipState) {\n case Constants.voipChatStates.showSpin:\n log(LOG_LEVELS.DEBUG, 'VOIP CHAT', 'State changed', { state: 'showSpin' });\n content = (\n <div className={ classes.callingScreen }>\n <Spiner loaderColor={ shared.appColor } />\n </div>\n );\n break;\n case Constants.voipChatStates.paymentRequired:\n log(LOG_LEVELS.DEBUG, 'VOIP CHAT', 'State changed', { state: 'paymentRequired' });\n content = (\n <AppGeneralPopup>\n <PurchaseDetails\n chatType={ voipType }\n backArrowAction={ purchaseOnBack }\n />\n </AppGeneralPopup>\n );\n break;\n case Constants.voipChatStates.initial:\n log(LOG_LEVELS.DEBUG, 'VOIP CHAT', 'State changed', { state: 'appInitial' });\n content = (\n <AppGeneralPopup>\n <SelectChatCredit\n chatType={ voipType }\n isContinue={ continuedSession > 0 }\n selectorOpenedTime={ new Date() }\n />\n </AppGeneralPopup>\n );\n break;\n case Constants.voipChatStates.introduce:\n log(LOG_LEVELS.DEBUG, 'VOIP CHAT', 'State changed', { state: 'introduce' });\n content = (\n <div className={ classes.callingScreen }>\n <IntroComponent chatType={ voipType } closeButtonAction={ cancelChat } />\n </div>\n );\n break;\n case Constants.voipChatStates.noAnswer:\n log(LOG_LEVELS.DEBUG, 'VOIP CHAT', 'State changed', { state: 'noAnswer' });\n content = (\n <div className={ classes.callingScreen }>\n <NoAnswer chatType={ voipType } />\n </div>\n );\n break;\n case Constants.voipChatStates.notInLiveMode:\n log(LOG_LEVELS.DEBUG, 'VOIP CHAT', 'State changed', { state: 'appNotInLiveMode' });\n content = (\n <div className={ classes.callingScreen }>\n <NotInLiveMode chatType={ voipType } />\n </div>\n );\n break;\n case Constants.voipChatStates.appCantCreate:\n log(LOG_LEVELS.DEBUG, 'VOIP CHAT', 'State changed', { state: 'appCantCreate' });\n content = (\n <div className={ classes.callingScreen }>\n <CantCreate chatType={ voipType } />\n </div>\n );\n break;\n case Constants.voipChatStates.unknownError:\n log(LOG_LEVELS.ERROR, 'VOIP CHAT', 'Error state', { error: 'generalError' });\n content = (\n <div className={ classes.callingScreen }>\n <GeneralError chatType={ voipType } />\n </div>\n );\n break;\n default:\n // once we have an id, it means that CreatedChat will take care of the rendering\n log(LOG_LEVELS.INFO, 'VOIP CHAT', 'Chat created');\n content = <CreatedVoipChat />;\n break;\n }\n\n return <div className={ classes.layout }>{content}</div>;\n}\n\nVoipChatOverlay.propTypes = {\n voipState: PropTypes.string.isRequired,\n error: PropTypes.object,\n purchaseOnBack: PropTypes.func.isRequired,\n cancelChat: PropTypes.func.isRequired,\n voipType: PropTypes.string,\n continuedSession: PropTypes.number.isRequired,\n orderId: PropTypes.number\n};\n\nVoipChatOverlay.defaultProps = {\n error: null,\n voipType: null,\n orderId: null\n};\n\nexport default VoipChatOverlay;\n","import { connect } from 'react-redux';\nimport VoipChatOverlay from './voip_chat_overlay';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport { voipPurchaseOnBack, cancelVoipChat } from '../../actions/voip_chat';\n\nconst mapStateToProps = ({ voipChat }) => voipChat;\n\nexport default connect(mapStateToProps, {\n purchaseOnBack: voipPurchaseOnBack,\n cancelChat: cancelVoipChat\n})(withPGTranslation(VoipChatOverlay));\n","// extracted by mini-css-extract-plugin\nexport default {\"waitingContainer\":\"waitingContainer--ATVqv\"};","import React from 'react';\nimport classes from './classes.module.scss';\n\nfunction WaitingComponent() {\n return (\n <div className={ classes.waitingContainer }>\n <div>Waiting...</div>\n </div>\n );\n}\n\nexport default WaitingComponent;\n","import WaitingComponent from './waiting_component';\n\nexport default WaitingComponent;\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport Chat from './chat';\nimport ChatEnded from './chat_ended';\nimport SelectChatCredit from '../chat_overlay/select_chat_credit';\nimport PurchaseDetails from '../chat_overlay/purchase_details';\nimport Constants from '../../config/const';\nimport Ringing from '../chat_overlay/outgoin_call';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport WaitingComponent from './waiting';\nimport classes from './classes.module.scss';\nimport { trackEventSpentCredit } from '../../actions/analytics';\nimport { trackChatEndedEventGTM } from '../../actions/google_tag_mahager_events';\nimport AdvisorEnded from '../voip_chat/advisor_ended';\nimport Spiner from '../../../common/helpers/spiner';\n\nconst { shared } = window;\n\nexport default class CreatedChat extends PureComponent {\n static propTypes = {\n connectChatProvider: PropTypes.func.isRequired,\n disconnectChatProvider: PropTypes.func.isRequired,\n hangupChat: PropTypes.func.isRequired,\n hangingUp: PropTypes.bool,\n state: PropTypes.string.isRequired,\n t: PropTypes.func.isRequired,\n purchaseOnBack: PropTypes.func,\n totalCharged: PropTypes.string,\n uuid: PropTypes.string,\n orderId: PropTypes.number,\n userId: PropTypes.number.isRequired,\n advisorId: PropTypes.number.isRequired,\n totalDuration: PropTypes.number,\n profilePictureUrl: PropTypes.string.isRequired,\n isNewUser: PropTypes.bool,\n analyticEvents: PropTypes.object\n };\n\n static defaultProps = {\n hangingUp: false,\n purchaseOnBack: null,\n totalCharged: null,\n uuid: null,\n orderId: null,\n totalDuration: null,\n isNewUser: false,\n analyticEvents: null\n };\n\n componentDidUpdate(prevProps) {\n const {\n state, totalCharged, connectChatProvider, uuid, userId, orderId, advisorId, totalDuration\n } = this.props;\n if (prevProps.state !== Constants.chatStates.ended\n && state === Constants.chatStates.ended) {\n trackEventSpentCredit(parseFloat(totalCharged).toFixed(2), 'USD', userId, orderId);\n const chatEndedEventGTMParams = {\n 'advisor id': advisorId,\n 'user id': userId,\n 'order id': orderId,\n 'total charged': parseFloat(totalCharged).toFixed(2),\n 'total duration': parseFloat(totalDuration / 60).toFixed(2)\n };\n trackChatEndedEventGTM(Constants.chatType.text, chatEndedEventGTMParams);\n }\n\n if (!prevProps.uuid && uuid) {\n connectChatProvider();\n }\n }\n\n componentWillUnmount() {\n const { disconnectChatProvider } = this.props;\n disconnectChatProvider();\n }\n\n render() {\n const {\n state, purchaseOnBack, profilePictureUrl, isNewUser\n } = this.props;\n const renderTopImg = () => (isNewUser ? (\n <img\n className={ classes.advisorImage }\n src={ profilePictureUrl }\n alt=\"\"\n />\n ) : null);\n let content = null;\n let overlay = null;\n const shouldShowChatContent = state === Constants.chatStates.started\n || state === Constants.chatStates.paused\n || state === Constants.chatStates.paymentRequiredOnContinue;\n const ringingArray = [Constants.chatStates.appStarting,\n Constants.chatStates.appConnecting,\n Constants.chatStates.ringing,\n Constants.chatStates.appConnectProvider];\n\n if (ringingArray.includes(state)) {\n content = <Ringing chatType={ Constants.chatType.text } />;\n } else if (state === Constants.chatStates.waiting) {\n content = <WaitingComponent />;\n } else if (shouldShowChatContent) {\n content = <Chat { ...this.props } disabled={ state !== Constants.chatStates.started } />;\n if (state === Constants.chatStates.paused) {\n overlay = (\n <div className={ classes.addCreditContainer }>\n <AppGeneralPopup logoImg={ renderTopImg() }>\n <SelectChatCredit\n chatType={ Constants.chatType.text }\n isContinue\n selectorOpenedTime={ new Date() }\n />\n </AppGeneralPopup>\n </div>\n );\n } else if (state === Constants.chatStates.paymentRequiredOnContinue) {\n overlay = (\n <div className={ classes.addCreditContainer }>\n <AppGeneralPopup>\n <PurchaseDetails\n chatType={ Constants.chatType.text }\n backArrowAction={ purchaseOnBack }\n isContinue\n />\n </AppGeneralPopup>\n </div>\n );\n }\n } else if (state === Constants.chatStates.ended) {\n content = (\n <>\n <ChatEnded chatType={ Constants.chatType.text } />\n <AdvisorEnded chatType={ Constants.chatType.text } />\n </>\n );\n } else if (state === Constants.chatStates.continuingChat) {\n overlay = <Spiner loaderColor={ shared.appColor } />;\n } else {\n content = (\n <div>\n TODO:\n {state}\n </div>\n );\n }\n\n // overlay over the content\n\n return (\n <div className={ classes.callingScreen }>\n {content}\n {overlay}\n </div>\n );\n }\n}\n","import { connect } from 'react-redux';\nimport CreatedChat from './created_chat';\nimport Const from '../../config/const';\nimport {\n connectChatProvider,\n disconnectChatProvider,\n sendMessage,\n sendTyping,\n sendStopTyping\n} from '../../actions/connected_chat';\nimport {\n cancelChat, hangupChat, purchaseOnBack\n} from '../../actions/chat';\nimport withPGTranslation from '../../config/withPGTranslation';\n\nconst mapStateToProps = ({\n chat, pubnub: { ownUuid }, user: { user }\n}) => ({\n ...chat,\n ownUuid,\n uuid: (chat.pubnub || {}).uuid,\n userId: user && user.id,\n isNewUser: chat && chat.selectDurationKind === Const.selectDurationKind.newUser\n});\n\nexport default connect(\n mapStateToProps,\n {\n connectChatProvider,\n disconnectChatProvider,\n cancelChat,\n sendMessage,\n sendTyping,\n sendStopTyping,\n hangupChat,\n purchaseOnBack\n }\n)(withPGTranslation(CreatedChat));\n","// extracted by mini-css-extract-plugin\nexport default {\"layout\":\"layout--Kkcmk\",\"callingScreen\":\"callingScreen--H29ho\",\"animation-bzdot9\":\"animation-bzdot9--syqQN\"};","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport SelectChatCredit from './select_chat_credit';\nimport NotInLiveMode from './not_in_live_mode';\nimport CantCreate from './cant_create';\nimport CreatedChat from '../created_chat';\nimport GeneralError from './general_error';\nimport Constants from '../../config/const';\nimport IntroComponent from '../intro';\nimport PurchaseDetails from './purchase_details';\nimport NoAnswer from './no_answer';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport classes from './classes.module.scss';\nimport { log, LOG_LEVELS } from '../../../common/config/app_logger';\nimport { hideBodyScroll, unlockBodyScroll } from '../../../common/config/utils';\nimport { changeAppStateAPI } from '../../config/api';\n\nfunction ChatOverlay({\n state, purchaseOnBack, cancelChat, orderId\n}) {\n let content = null;\n\n useEffect(() => {\n const { onbeforeunload, onunload } = window;\n window.onbeforeunload = () => {\n log(LOG_LEVELS.INFO, 'Chat', 'Page is refreshed');\n return 'Test message';\n };\n\n window.onunload = () => {\n changeAppStateAPI(orderId, 'closed_window');\n };\n\n return () => {\n window.onbeforeunload = onbeforeunload;\n window.onunload = onunload;\n };\n }, [orderId]);\n\n useEffect(() => {\n hideBodyScroll();\n return () => {\n unlockBodyScroll();\n };\n }, [state]);\n\n switch (state) {\n case Constants.chatStates.paymentRequired:\n log(LOG_LEVELS.INFO, 'Chat', 'state paymentRequired');\n content = (\n <AppGeneralPopup>\n <PurchaseDetails\n chatType={ Constants.chatType.text }\n backArrowAction={ purchaseOnBack }\n />\n </AppGeneralPopup>\n );\n break;\n case Constants.chatStates.appInitial:\n log(LOG_LEVELS.INFO, 'Chat', 'state appInitial');\n content = (\n <AppGeneralPopup>\n <SelectChatCredit\n chatType={ Constants.chatType.text }\n selectorOpenedTime={ new Date() }\n />\n </AppGeneralPopup>\n );\n break;\n case Constants.chatStates.introduce:\n log(LOG_LEVELS.INFO, 'Chat', 'state introduce');\n content = (\n <IntroComponent chatType={ Constants.chatType.text } closeButtonAction={ cancelChat } />\n );\n break;\n case Constants.chatStates.appNotInLiveMode:\n log(LOG_LEVELS.INFO, 'Chat', 'state appNotInLiveMode');\n content = (\n <div className={ classes.callingScreen }>\n <NotInLiveMode chatType={ Constants.chatType.text } />\n </div>\n );\n break;\n case Constants.chatStates.appCantCreate:\n log(LOG_LEVELS.INFO, 'Chat', 'state appCantCreate');\n content = (\n <div className={ classes.callingScreen }>\n <CantCreate chatType={ Constants.chatType.text } />\n </div>\n );\n break;\n case Constants.chatStates.generalError:\n log(LOG_LEVELS.ERROR, 'Chat', 'state generalError');\n content = (\n <div className={ classes.callingScreen }>\n <GeneralError chatType={ Constants.chatType.text } />\n </div>\n );\n break;\n case Constants.chatStates.noAnswer:\n log(LOG_LEVELS.INFO, 'Chat', 'state noAnswer');\n content = (\n <div className={ classes.callingScreen }>\n <NoAnswer chatType={ Constants.chatType.text } />\n </div>\n );\n break;\n default:\n // once we have an id, it means that CreatedChat will take care of the rendering\n log(LOG_LEVELS.INFO, 'Chat', 'created');\n content = <CreatedChat />;\n break;\n }\n\n return <div className={ classes.layout }>{content}</div>;\n}\n\nChatOverlay.propTypes = {\n state: PropTypes.string.isRequired,\n error: PropTypes.object,\n purchaseOnBack: PropTypes.func.isRequired,\n cancelChat: PropTypes.func.isRequired,\n orderId: PropTypes.number\n};\n\nChatOverlay.defaultProps = {\n error: null,\n orderId: null\n};\n\nexport default ChatOverlay;\n","import { connect } from 'react-redux';\nimport ChatOverlay from './chat_overlay';\nimport { purchaseOnBack, cancelChat } from '../../actions/chat';\n\nconst mapStateToProps = ({ chat }) => chat;\n\nexport default connect(\n mapStateToProps,\n {\n purchaseOnBack,\n cancelChat\n }\n)(ChatOverlay);\n","import React, { Suspense } from 'react';\nimport {\n Route,\n BrowserRouter,\n useLocation,\n useParams,\n useMatch,\n useNavigate\n} from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { LastLocationProvider } from 'react-router-dom-last-location';\nimport { useTranslation } from 'react-i18next';\nimport LocalizedSwitch from './localized_switch';\nimport LocalizedRouter from './localized_router';\nimport BugsnagErrorBoundary from '../../config/bugsnag';\nimport { applicationRoutes } from '../../config/app_routes';\nimport { appLinks } from '../../config/const';\n\nimport Popover from '../popover';\nimport AnalyticsAndCommonLogicComponent from '../analytics';\nimport GeneralPopup from '../general_popup';\nimport CookiesPopover from '../../../common/cookies_popover';\nimport Registration from '../registration';\nimport NotifyMe from '../notify_me';\nimport MessageToApp from '../message_to_app';\nimport { ProtectedRoute } from './protected_route';\nimport { useCurrentPath } from './hooks/useCurrentPath';\nimport Overlays from './overlays/overlays';\nimport VoipChatOverlay from '../voip_chat_overlay';\nimport ChatOverlay from '../chat_overlay';\n\nconst routeComponents = {\n HomePage: require('../home_page').default,\n Advisor: require('../advisor').default,\n SearchResults: React.lazy(() => import('../search_results')),\n NoSearchResults: React.lazy(() => import('../no_search_results/no_search_results')),\n MyOrders : React.lazy(() => import('../my_orders')),\n AdvisorOrders : React.lazy(() => import('../advisor_orders')),\n OrderDetails : React.lazy(() => import('../order_details')),\n AddFunds : React.lazy(() => import('../add_funds')),\n PromoCode : React.lazy(() => import('../promo_code')),\n Transcript : React.lazy(() => import('../chat_transcript')),\n Settings : React.lazy(() => import('../settings')),\n Cashback : React.lazy(() => import('../cashback')),\n PaymentSources : React.lazy(() => import('../payment_sources')),\n EmptyPreload : React.lazy(() => import('../empty_preload/empty_preload')),\n SpendLimitsVerifications : React.lazy(() => import('../spend_limits_verification')),\n SignInPage : React.lazy(() => import('../signin_page')),\n PurchaseDetailsForMobileApp : React.lazy(() => import('../purchase_details_for_mobile_app')),\n Categories : React.lazy(() => import('../categories')),\n NotificationPreferences : React.lazy(() => import('../settings/notification_preferences'))\n};\n\nconst suspenseComponent = (component) => <Suspense>{component}</Suspense>;\nconst protectedRoute = (component, user) => <ProtectedRoute user={ user }>{component}</ProtectedRoute>;\n\nconst RenderRoutes = ({ user }) => {\n const { t } = useTranslation();\n const location = useLocation();\n const params = useParams();\n const history = useNavigate();\n const currentPath = useCurrentPath();\n\n const getRoutes = () => {\n const routes = [];\n Object.keys(applicationRoutes).forEach((key) => {\n const match = useMatch(`/:lang?${ t(key) }`);\n\n const { name, withoutSuspense, isProtected } = applicationRoutes[key];\n\n const Component = routeComponents[name];\n let child = <Component location={ location } params={ params } match={ match } history={ history } currentPath={ currentPath } />;\n if (!withoutSuspense) child = suspenseComponent(child);\n if (isProtected) child = protectedRoute(child, user);\n\n routes.push(\n <Route\n key={ key }\n exact\n path={ key }\n element={ (\n <LastLocationProvider>\n {child}\n </LastLocationProvider>\n ) }\n />\n );\n });\n return routes;\n };\n\n const routes = getRoutes();\n\n return (\n <LocalizedSwitch>\n {routes.map((r) => r)}\n </LocalizedSwitch>\n );\n};\n\nfunction RoutesComponent({\n state, voipState, popoverVisibility, user\n}) {\n return (\n <BugsnagErrorBoundary>\n <div suppressHydrationWarning id=\"layout\" style={ { width: '100%', backgroundColor: 'var(--app-background-color)' } }>\n <BrowserRouter basename=\"/\">\n <LocalizedRouter>\n <RenderRoutes user={ user } />\n </LocalizedRouter>\n <Overlays />\n {state ? <ChatOverlay /> : null}\n {voipState ? <VoipChatOverlay /> : null}\n {popoverVisibility ? <Popover /> : null}\n <AnalyticsAndCommonLogicComponent />\n <GeneralPopup />\n <CookiesPopover\n wpccMessageText=\"cookies_popover.wpcc_message_text\"\n wpccPrivacyText=\"cookies_popover.wpcc_privacy_text\"\n wpccPrivacyHref={ appLinks.privacyPolicy }\n wpccBtnText=\"cookies_popover.wpcc_btn_text\"\n />\n <Registration />\n <NotifyMe />\n <MessageToApp />\n </BrowserRouter>\n </div>\n </BugsnagErrorBoundary>\n );\n}\n\nRoutesComponent.propTypes = {\n state: PropTypes.string,\n errorCode: PropTypes.number,\n errorUrl: PropTypes.string,\n clearApplicationError: PropTypes.func.isRequired,\n logOutClear: PropTypes.func.isRequired,\n displayRegister: PropTypes.func.isRequired,\n voipState: PropTypes.string,\n popoverVisibility: PropTypes.bool,\n user: PropTypes.object\n};\n\nRoutesComponent.defaultProps = {\n state: null,\n errorCode: null,\n voipState: null,\n errorUrl: null,\n popoverVisibility: false,\n user: null\n};\n\nRenderRoutes.propTypes = {\n user: PropTypes.object\n};\n\nRenderRoutes.defaultProps = {\n user: null\n};\n\nexport default RoutesComponent;\n","import { connect } from 'react-redux';\nimport { clearApplicationError } from '../../actions/aplication_error';\nimport { logOutClear, displayRegister } from '../../actions/auth';\n\nimport RoutesComponent from './routes';\n\nconst mapStateToProps = ({\n chat, applicationError, voipChat, popover, user\n}) => ({\n ...chat, ...applicationError, voipState: voipChat.voipState, popoverVisibility: !!popover.kind, user: user?.user\n});\n\nexport default connect(\n mapStateToProps,\n { clearApplicationError, logOutClear, displayRegister }\n)(RoutesComponent);\n","/* eslint-disable no-console */\nimport React from 'react';\nimport { Provider } from 'react-redux';\nimport { I18nextProvider } from 'react-i18next';\nimport i18n from './config/i18n';\nimport './shared';\nimport { buildStore } from './config/store';\nimport RoutesComponent from './components/routes';\n\nimport 'react-loading-skeleton/dist/skeleton.css';\n\nimport './main.css';\n\nimport ContextRenderer from './project_items/context_renderer';\n\nconst store = buildStore();\n\nfunction App() {\n return (\n <I18nextProvider i18n={ i18n }>\n <ContextRenderer componentName=\"mbw_colors\" />\n <Provider store={ store }>\n <RoutesComponent />\n </Provider>\n </I18nextProvider>\n );\n}\nexport default App;\n","/* eslint no-console:0 */\n// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n//\n// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate\n// layout file, like app/views/layouts/application.html.erb\n\nimport React from 'react';\nimport Application from 'app/index';\nimport { createRoot, hydrateRoot } from 'react-dom/client';\nimport { advisorUpdated, userUpdated } from './app/actions/shared_actions';\nimport { reviewsLoaded, updateAdvisorNavigationStack } from './app/actions/advisors';\nimport { getAdvisorDataIfSsrMode, getHomePageDataIfSsrMode, isPrerenderMode } from './app/config/util';\nimport { homeLoadedActions } from './app/actions/home_page';\nimport { updateSEOData } from './app/actions/application';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const container = document.getElementById('app-root');\n\n // hydrate advisor page if need\n const advisorData = getAdvisorDataIfSsrMode();\n if (advisorData) {\n const {\n advisor, reviews, user\n } = advisorData;\n if (advisor) {\n window.store.dispatch(advisorUpdated(advisor));\n updateAdvisorNavigationStack({ advisor, dispatch: window.store.dispatch });\n }\n if (reviews) {\n window.store.dispatch(reviewsLoaded({\n reviews, id: advisor?.id, initial: true\n }));\n }\n if (user) {\n window.store.dispatch(userUpdated(user));\n }\n\n if (!isPrerenderMode()) {\n hydrateRoot(container, <Application />);\n return;\n }\n }\n\n // hydrate home page if need\n const homePageData = getHomePageDataIfSsrMode();\n if (homePageData) {\n const { sections, seoData } = homePageData;\n if (sections) {\n window.store.dispatch(homeLoadedActions(sections));\n }\n\n if (seoData) {\n window.store.dispatch(updateSEOData(seoData.slug, { seoData }));\n }\n\n if (!isPrerenderMode()) {\n hydrateRoot(container, <Application />);\n return;\n }\n }\n\n const root = createRoot(container);\n root.render(<Application />);\n});\n","import Const from '../config/const';\nimport { getActivityApi, createActivityMessage } from '../config/api';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { updateNavigationStack, navigationStackLoadingAction } from './application';\nimport { clearPN } from './firebase_messaging';\nimport { parseAndTrackAnalyticEvents } from './analytics';\nimport { subscribeAdvisorsToDB } from './firebase_realtime_database';\n\nconst loading = () => ({\n type: Const.advisorOrders.loading\n});\n\nconst activitiesLoading = () => ({\n type: Const.advisorOrders.activitiesLoading\n});\n\nconst activitiesLoaded = (payload) => ({\n type: Const.advisorOrders.activitiesLoaded,\n payload\n});\n\nconst activitiesLoadedReset = (payload) => ({\n type: Const.advisorOrders.activitiesResetLoaded,\n payload\n});\n\nconst activityLoaded = (payload) => ({\n type: Const.advisorOrders.activityLoaded,\n payload\n});\n\nconst setErrorStatus = (errorStatus) => ({\n type: Const.advisorOrders.setErrorStatus,\n errorStatus\n});\n\nconst advisorOrdersDeleteAction = (orderId) => ({\n type: Const.advisorOrders.advisorOrdersDelete,\n orderId\n});\n\nexport const resetAdvisorOrders = () => (dispatch) => {\n dispatch(clearPN());\n dispatch({ type: Const.advisorOrders.reset });\n};\n\nexport const resetActivities = () => (dispatch) => {\n dispatch({ type: Const.advisorOrders.resetActivities });\n dispatch(clearPN());\n};\n\nconst updateAdvisorOrdersNavigationStack = ({ advisor, dispatch }) => {\n dispatch(updateNavigationStack(\n {\n itemData: { slug: advisor.slug, name: advisor.nickname },\n navigationStackLoading: false\n }\n ));\n};\n\nexport const loadStartMessagesFeed = (advisorId, filter, paginationParams) => (dispatch) => {\n dispatch(loading());\n dispatch(clearPN()); // need for clear notification bage\n dispatch(navigationStackLoadingAction());\n getActivityApi(advisorId, filter, paginationParams).then((payload) => {\n parseAndTrackAnalyticEvents(payload.analyticEvents);\n updateAdvisorOrdersNavigationStack({ advisor: payload.advisor, dispatch });\n dispatch(activitiesLoaded(payload));\n dispatch(subscribeAdvisorsToDB([payload.advisor]));\n }).catch((error) => log(LOG_LEVELS.ERROR, 'Advisor', 'Failed to load start messages feed', error));\n};\n\nexport const loadMessagesFeed = (advisorId, filter, paginationParams) => (dispatch) => {\n dispatch(activitiesLoading());\n getActivityApi(advisorId, filter, paginationParams).then((payload) => {\n parseAndTrackAnalyticEvents(payload.analyticEvents);\n dispatch(activitiesLoaded(payload));\n }).catch((error) => log(LOG_LEVELS.ERROR, 'Advisor', 'Failed to load messages feed', error));\n};\n\nexport const loadMessagesFeedFilter = (advisorId, filter, paginationParams) => (dispatch) => {\n dispatch(activitiesLoading());\n dispatch(clearPN()); // need for clear notification bage\n getActivityApi(advisorId, filter, paginationParams).then((payload) => {\n parseAndTrackAnalyticEvents(payload.analyticEvents);\n dispatch(activitiesLoadedReset(payload));\n }).catch((error) => log(LOG_LEVELS.ERROR, 'Advisor', 'Failed to filter messages feed', error));\n};\n\nexport const sendMessage = (id, text, filteredBySessions) => (dispatch) => {\n if (filteredBySessions) {\n dispatch(activitiesLoading());\n }\n createActivityMessage(id, text).then((payload) => {\n parseAndTrackAnalyticEvents(payload.analyticEvents);\n if (filteredBySessions) {\n dispatch(loadMessagesFeedFilter(id, 'all'));\n } else dispatch(activityLoaded(payload));\n }).catch((error) => {\n dispatch(setErrorStatus(true));\n log(LOG_LEVELS.ERROR, 'Advisor', 'Failed to send message', error);\n });\n};\n\nexport const advisorOrdersDelete = (orderId) => (dispatch) => {\n dispatch(advisorOrdersDeleteAction(orderId));\n};\n","import queryString from 'query-string';\nimport Const from '../config/const';\nimport {\n loadAdvisorAPI, loadAdvisorFeedbacksAPI, getDirectMessagesApi, getSimilarOnlineAdvisorsApi\n} from '../config/api';\nimport { setApplicationError } from './aplication_error';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { updateNavigationStack, navigationStackLoadingAction } from './application';\nimport { toCamelCase } from '../../common/config/utils';\nimport { authPendingAction, authPendingCloseAction, displayRegister } from './auth';\nimport { trackEvent } from './mixpanel';\nimport { isPrerenderMode, getAdvisorDataIfSsrMode } from '../config/util';\nimport { advisorsListUpdated } from './shared_actions';\nimport { subscribeAdvisorsToDB } from './firebase_realtime_database';\n\nexport const reviewsLoaded = ({\n reviews, id, initial\n}) => (dispatch) => {\n dispatch({\n type: Const.advisors.reviewsLoaded,\n id,\n reviews,\n initial\n });\n};\n\nexport const advisorsReviewsReset = (id) => (dispatch) => {\n dispatch({\n type: Const.advisors.reviewsReset,\n id\n });\n};\n\nexport const loadAdvisorReviews = (id) => (dispatch, getState) => {\n const { advisors } = getState();\n const params = advisors[id].reviews?.paginationParams;\n dispatch({ type: Const.advisors.reviewsLoading, id });\n loadAdvisorFeedbacksAPI(id, params).then((res) => {\n dispatch(reviewsLoaded({\n id,\n initial: params === undefined,\n reviews:{\n items: res.feedbacks,\n paginationParams: res.paginationParams\n }\n }));\n }).catch((e) => log(LOG_LEVELS.ERROR, 'Advisors', 'Error load feedback API', e));\n};\n\nexport const updateAdvisorNavigationStack = ({ advisor, dispatch }) => {\n dispatch(updateNavigationStack(\n {\n itemData: { slug: advisor.slug, name: advisor.nickname },\n navigationStackLoading: false\n }\n ));\n};\n\nconst removeDmIdFromSearch = ({ directMessageAnalytics, history, location }) => {\n const search = toCamelCase(queryString.parse(location.search));\n delete search.dmId;\n const updatedSearch = queryString.stringify(search);\n const analitycsPrams = directMessageAnalytics\n ? { ...directMessageAnalytics, startChatClickSource: directMessageAnalytics.clickSource } : {};\n history(`${ location.pathname }?${ updatedSearch }`, {\n search: updatedSearch,\n state: { ...location.state, ...analitycsPrams }\n });\n};\n\nconst trackProfileViewEvents = ({\n dmId, dispatch, analyticsActions, conversionEventId, history, location, advisor\n}) => {\n const {\n nickname, serviceTitle, profilePictureUrl, rating, readingsCount, yearJoined, profileVideoUrl\n } = advisor;\n const extraParams = {\n nickname,\n serviceTitle,\n profilePictureUrl,\n rating,\n readingsCount,\n yearJoined,\n profileVideoUrl,\n conversionEventId,\n history,\n location,\n advisorId: advisor.id\n };\n if (!dmId) {\n analyticsActions.forEach((a) => a(extraParams));\n return;\n }\n getDirectMessagesApi(dmId).then(({ directMessage }) => {\n dispatch(trackEvent('dm user connected', {\n 'dm id': dmId,\n 'advisor id': directMessage.advisor.id,\n 'dm channel': 'email'\n }));\n removeDmIdFromSearch({ directMessageAnalytics: directMessage.analytics, history, location });\n analyticsActions.forEach((a) => a(extraParams));\n }).catch(() => {\n removeDmIdFromSearch({ history, location });\n analyticsActions.forEach((a) => a(extraParams));\n });\n};\n\nconst handleAnalyticsAction = ({\n analyticsparams, conversionEventId, advisor, dispatch\n}) => {\n const {\n fromAdvisorProfile, analyticsActions, history, location\n } = analyticsparams;\n if (!fromAdvisorProfile) return;\n const search = toCamelCase(queryString.parse(window.location.search));\n const { dmId } = search;\n if (window.currentUserId || !dmId) {\n trackProfileViewEvents({\n dmId, dispatch, analyticsActions, conversionEventId, history, location, advisor\n });\n return;\n }\n dispatch(authPendingAction(() => {\n trackProfileViewEvents({\n dmId, dispatch, analyticsActions, conversionEventId, history, location, advisor\n });\n }));\n dispatch(authPendingCloseAction(() => {\n trackProfileViewEvents({\n dmId, dispatch, analyticsActions, conversionEventId, history, location, advisor\n });\n }));\n dispatch(displayRegister({ shouldDisplay: true }));\n};\n\nexport const loadSimilarOnlineAdvisors = (res, id) => (dispatch) => {\n dispatch({\n type: Const.advisors.loadSimilarOnlineAdvisors,\n similarOnlineAdvisors: res.length ? { similarOnlineAdvisors: res } : res,\n id\n });\n};\n\nexport const getSimilarOnlineAdvisors = (id) => (dispatch) => {\n getSimilarOnlineAdvisorsApi(id).then((res) => {\n dispatch(advisorsListUpdated(res?.similarOnlineAdvisors));\n dispatch(loadSimilarOnlineAdvisors(res, id));\n });\n};\n\nexport const loadAdvisor = (\n slug,\n analyticsparams = { fromAdvisorProfile : false }\n) => (dispatch, getState) => {\n if (isPrerenderMode()) return;\n dispatch({ type: Const.advisors.loading });\n if (!getAdvisorDataIfSsrMode()) dispatch(navigationStackLoadingAction());\n const { fromAdvisorProfile } = analyticsparams;\n const additionalParams = fromAdvisorProfile ? { context: 'profile_page' } : {};\n loadAdvisorAPI(slug, additionalParams).then(({\n advisor, reviews, error, conversionEventId, similarOnlineAdvisors\n }) => {\n if (error) {\n dispatch(setApplicationError({ errorCode: error.errorStatus, errorUrl: error.errorUrl }));\n if (error.errorStatus !== 410) return;\n }\n handleAnalyticsAction({\n advisorId: advisor.id, analyticsparams: { ...analyticsparams, advisorId: advisor.id }, conversionEventId, dispatch, advisor\n });\n dispatch(reviewsLoaded({\n reviews, id: advisor.id, initial: true\n }));\n dispatch(subscribeAdvisorsToDB([advisor]));\n updateAdvisorNavigationStack({ advisor, dispatch, getState });\n if (similarOnlineAdvisors) {\n dispatch(advisorsListUpdated(similarOnlineAdvisors));\n dispatch(loadSimilarOnlineAdvisors(similarOnlineAdvisors, advisor.id));\n }\n }).catch((error) => {\n log(LOG_LEVELS.ERROR, 'Advisors', 'Error loadAdvisorAPI', error);\n if (error.status !== 404) {\n dispatch(setApplicationError({ errorCode: error.status, errorUrl: error.url }));\n }\n });\n};\n\nexport const trackBusyCarouselEvent = (eventName, advisors) => (dispatch) => {\n const properties = {\n 'advisor ids shown': advisors?.map((adv) => adv.id)\n };\n dispatch(trackEvent(eventName, properties));\n};\n","import Const from '../config/const';\nimport { doneManagingPaymentSource } from './payment_sources';\nimport { changingPaymentSource, updatePurchaseDetails, clearPurchaseDetails } from './purchase_details';\nimport { getUser } from './user';\nimport { updatePricingOptions as chatUpdatePricingOptions } from './connected_chat';\nimport { updatePricingOptionsOnContinueIfNeed as voipChatUpdatePricingOptions } from './voip_chat';\nimport { getAddCreditUrl } from '../../common/config/utils';\n\nexport const showAffiliatePromoPopup = (show, additionParams) => ({\n type: Const.affiliatePromoPopup.displayDetails,\n display: show,\n additionParams\n});\n\nexport const paymentSelected = (details, type) => (dispatch) => {\n dispatch(updatePurchaseDetails({\n details,\n clickSource: 'affiliate promo',\n purchaseType: type\n }));\n};\n\nexport const hideAffiliatePromoPopup = () => (dispatch) => {\n dispatch(showAffiliatePromoPopup(false));\n dispatch(doneManagingPaymentSource());\n dispatch(changingPaymentSource(false));\n dispatch(clearPurchaseDetails());\n};\n\nexport const purchaseSuccess = (chatType, needUpdatePricingOptions) => (dispatch, getState) => {\n dispatch(showAffiliatePromoPopup(false));\n dispatch(getUser());\n if (needUpdatePricingOptions) {\n switch (chatType) {\n case Const.chatType.text:\n chatUpdatePricingOptions(false, dispatch, getState);\n break;\n case Const.chatType.voice:\n case Const.chatType.video:\n dispatch(voipChatUpdatePricingOptions(false));\n break;\n default:\n break;\n }\n }\n};\n\nexport const showAffiliatePromoPopupAfterPromo = () => (dispatch, getState) => {\n const { arg, purchaseType } = getState().affiliatePromoPopup;\n dispatch(showAffiliatePromoPopup(true));\n const {\n price, url, bonus, expiresAt\n } = arg;\n dispatch(paymentSelected({\n price, url, bonus, expiresAt\n }, purchaseType));\n};\n\nconst displayAffiliatePromoPopup = (arg, type, additionParams) => (dispatch) => {\n const {\n price, url, bonus, expiresAt\n } = arg;\n dispatch(showAffiliatePromoPopup(true, additionParams));\n dispatch(paymentSelected({\n price, url, bonus, expiresAt\n }, type));\n};\n\nexport const displayAffiliatePromoPopupAction = (creditMatchingInfo, type, additionParams) => (dispatch) => {\n const url = getAddCreditUrl({ credit: creditMatchingInfo.requiredPurchasesAmount });\n const arg = {\n price: parseFloat(creditMatchingInfo.requiredPurchasesAmount),\n url,\n bonus: parseFloat(creditMatchingInfo.bonus),\n expiresAt: creditMatchingInfo.expiresAt\n };\n dispatch(displayAffiliatePromoPopup(arg, type, additionParams));\n};\n\nexport const clearAffiliatePromoPopup = () => (dispatch) => {\n dispatch({ type: Const.affiliatePromoPopup.clear });\n};\n\nexport const noThanksLinkClickedAction = () => (dispatch) => {\n dispatch({\n type: Const.affiliatePromoPopup.noThanksLinkClicked,\n noThanksLinkClicked: true\n });\n};\n","// eslint-disable-next-line import/no-cycle\nimport queryString from 'query-string';\nimport { trackEvent } from './mixpanel';\nimport {\n paramOrNul, toLowerCaseSpaced, paymentKindToAnalyticsName, getPurchaseScreenForPaymentSourcesEvent, getClientPlatform, matchPaths,\n toCamelCase\n} from '../../common/config/utils';\nimport env from '../config/variables';\nimport { getAdditionalPurchaseInfoFromURL } from '../config/api';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport {\n getClickSourceForEvent, isPrerenderMode, getPayAsYouGoUsedProperty, getDataFromStorage\n} from '../config/util';\nimport {\n trackEventAddToCardFB,\n trackEventSpentCreditFB,\n trackPurchaseEventFB,\n trackEventRegisterFB,\n trackEventAddToCardActionFB,\n trackFirstPurchaseEventFB,\n trackEventViewewContentFB,\n trackPurchaseStartedEventFB,\n trackEventProfileButtonFB\n} from './facebook_analytics';\nimport { trackFirstPurchaseEventGtm, trackGTMEvent } from './google_tag_mahager_events';\nimport Const, { purchaseFlowTypes } from '../config/const';\nimport { appRoutes } from '../config/app_routes';\n\n// Chat Related\nexport const StatusSuccess = 'success';\nexport const StatusBusy = 'busy';\nexport const StatusHangUp = 'hangup';\nexport const StatusNoAnswer = 'no answer';\n\nexport const getFlow = ({ additional, payAsYouGo }) => {\n if (additional) return purchaseFlowTypes.balance;\n if (payAsYouGo) return purchaseFlowTypes.payAsYouGo;\n return purchaseFlowTypes.minutes;\n};\n\n// Advisor profile View\nconst { ADVISOR_PROFILE_VIEW_MP_EVENT } = env;\n\nconst getContinueSessionValue = (getState) => {\n const { chat: { continuedSession }, voipChat } = getState();\n if (!(continuedSession || voipChat?.continuedSession)) {\n return {};\n }\n return { 'continued session': continuedSession || voipChat?.continuedSession || 0 };\n};\n\nexport const clearProps = (props) => {\n const clearedProps = {};\n Object.keys(props).forEach((k) => {\n clearedProps[k] = undefined;\n });\n window.dataLayer.push({\n ...clearedProps\n });\n};\n\nexport const aditionalPurchaseProps = () => {\n const { purchaseDetails: { isPayg, flow } } = window.store.getState();\n let purchaseFlow = flow;\n const matchPaymentSources = matchPaths({ pathname: appRoutes.paymentSources, path: window.location.pathname });\n if (!purchaseFlow && matchPaymentSources) {\n purchaseFlow = purchaseFlowTypes.paymentMethods;\n }\n const props = {\n ...getPayAsYouGoUsedProperty({ flow: purchaseFlow, isPayg }),\n flow: purchaseFlow\n };\n return props;\n};\n\nexport const trackPurchaseStartedEvent = (purchaseData, conversionEventId) => (dispatch, getState) => {\n const eventName = 'purchase started';\n const properties = {\n ...purchaseData,\n ...getContinueSessionValue(getState),\n ...aditionalPurchaseProps()\n };\n dispatch(trackEvent(eventName, properties));\n trackPurchaseStartedEventFB(conversionEventId);\n};\n\nexport const getDestination = ({ spendingLimits }) => {\n const destination = !!spendingLimits && !!spendingLimits.length ? { destination: 'jumio' } : null;\n return destination;\n};\n\nconst purchaseEventAdditionalParams = (purchaseRes) => {\n const {\n paypalPayerId, paypalTransactionId, paypalBillingAgreementId, paypalInvoiceId,\n spendingLimits\n } = purchaseRes;\n\n const destination = getDestination({ spendingLimits });\n return ({\n ...paramOrNul('paypal payer id', paypalPayerId),\n ...paramOrNul('paypal transaction id', paypalTransactionId),\n ...paramOrNul('paypal billing agreement id', paypalBillingAgreementId),\n ...paramOrNul('paypal invoice id', paypalInvoiceId),\n ...paramOrNul('spending limits exceeded', spendingLimits),\n ...destination\n });\n};\n\nconst addAdditonalPurchasePropsAndTrackEvent = (eventName, params, purchaseURL, getUser) => (dispatch) => {\n const trackPurchase = (extraParams) => {\n dispatch(trackEvent(eventName, { ...params, ...extraParams }));\n if (getUser) getUser();\n };\n if (!purchaseURL) {\n log(LOG_LEVELS.DEBUG, 'Mixpanel', 'has no URL, tracking default params');\n trackPurchase();\n return;\n }\n getAdditionalPurchaseInfoFromURL(purchaseURL)\n .then((res) => {\n log(LOG_LEVELS.DEBUG, 'Mixpanel', 'got extra params, tracking with params');\n trackPurchase(purchaseEventAdditionalParams(res));\n }).catch(() => {\n log(LOG_LEVELS.DEBUG, 'Mixpanel', 'got extra params, tracking default params');\n trackPurchase();\n dispatch(trackEvent(eventName, params));\n });\n};\n\nexport const trackPurchaseEvent = (purchaseData, purchaseURL, getUser, conversionEventId) => (dispatch, getState) => {\n const { user: { user: { purchasesCount, email } } } = getState();\n const price = purchaseData['base price'];\n const currency = purchaseData['local currency'];\n const eventName = 'Purchase';\n const properties = {\n ...purchaseData,\n ...getContinueSessionValue(getState),\n 'transaction total': purchaseData.credit,\n ...aditionalPurchaseProps()\n };\n const propertiesGTM = {\n price,\n currency,\n 'email address': email\n };\n trackPurchaseEventFB(price, currency, conversionEventId);\n if (purchasesCount === 0) {\n trackFirstPurchaseEventFB(price, currency, conversionEventId);\n trackFirstPurchaseEventGtm(propertiesGTM);\n }\n dispatch(addAdditonalPurchasePropsAndTrackEvent(eventName, properties, purchaseURL, getUser));\n};\n\nexport const trackPurchaseFailedEvent = (purchaseData, purchaseURL) => (dispatch, getState) => {\n const { extraEventParams } = purchaseData;\n const eventName = 'purchase failed';\n const properties = {\n ...getContinueSessionValue(getState),\n ...purchaseData,\n ...aditionalPurchaseProps()\n };\n dispatch(addAdditonalPurchasePropsAndTrackEvent(eventName, properties, purchaseURL));\n if (extraEventParams && extraEventParams.length !== 0) clearProps({ ...toLowerCaseSpaced(extraEventParams) });\n};\n\nconst mapLoginTypeToSignUpMethod = loginType => {\n const typesList = {\n google: 'Google Plus',\n email: 'Email',\n facebook: 'Facebook'\n };\n return typesList[loginType];\n};\n\nexport const trackLoginEvent = (signupFlow) => (dispatch, getState) => {\n const { user: { user: { loginType } } } = getState();\n const eventName = 'sign in';\n const properties = {\n 'signup flow': signupFlow,\n 'signup method': mapLoginTypeToSignUpMethod(loginType)\n };\n dispatch(trackEvent(eventName, properties));\n};\n\nexport const trackRegisterEvent = (signupFlow, conversionEventId) => (dispatch, getState) => {\n const eventName = 'signup';\n const { user: { user: { loginType, countryName } } } = getState();\n const properties = {\n 'signup flow': signupFlow,\n 'signup method': mapLoginTypeToSignUpMethod(loginType),\n 'registration country name': countryName\n };\n dispatch(trackEvent(eventName, properties));\n trackEventRegisterFB(loginType, conversionEventId);\n};\n\nexport const trackLogoutEvent = () => (dispatch) => {\n const eventName = 'sign out';\n dispatch(trackEvent(eventName));\n};\n\nexport const trackCategoryEvent = (categoryEventParams) => (dispatch) => {\n const eventName = 'category';\n const properties = {\n 'category id': categoryEventParams.categoryId,\n 'category name': categoryEventParams.categoryName,\n 'click souce': categoryEventParams.clickSource,\n ...paramOrNul('advisor id', categoryEventParams.advisorId)\n };\n dispatch(trackEvent(eventName, properties));\n};\n\nexport const getSessionType = (chatType) => {\n let sessionType = '';\n switch (chatType) {\n case Const.chatType.text:\n sessionType = 'chat';\n break;\n case Const.chatType.voice:\n sessionType = 'voice';\n break;\n case Const.chatType.video:\n sessionType = 'vc';\n break;\n default:\n break;\n }\n return sessionType;\n};\n\nconst startChatProperties = (chat, sessionType, analytics) => {\n const {\n advisorId, orderId, name, continuedSession, startChatClickSource, homepageSection, isPayg, flow\n } = chat;\n return {\n ...toLowerCaseSpaced(analytics),\n ...paramOrNul('advisor id', advisorId),\n ...paramOrNul('advisor name', name),\n ...paramOrNul('session type', sessionType),\n ...paramOrNul('click source', startChatClickSource),\n ...paramOrNul('order id', orderId),\n 'continued session': !continuedSession || continuedSession === undefined ? 0 : continuedSession,\n ...paramOrNul('homepage section', homepageSection),\n ...getPayAsYouGoUsedProperty({ flow, isPayg }),\n flow\n };\n};\n\nconst trackPaygRelatedProps = (payAsYouGo, propValue) => (payAsYouGo ? undefined : propValue);\n\nexport const trackChatAttemptEvent = (chatType, chat, dispatch) => {\n const {\n initialDuration, initialCharged, analytics, initialVoipCharged, initialVoipDuration, isPayg\n } = chat;\n const eventNameOpt = 'live session attempt';\n const eventNameMP = `${ getSessionType(chatType) } attempt`;\n const chatProps = {\n ...startChatProperties(chat, getSessionType(chatType), analytics),\n ...paramOrNul(`${ getSessionType(chatType) } initial minutes`, trackPaygRelatedProps(isPayg, (initialDuration || initialVoipDuration) / 60)),\n ...paramOrNul(`${ getSessionType(chatType) } initial credit`, trackPaygRelatedProps(isPayg, initialCharged || initialVoipCharged))\n };\n trackGTMEvent(eventNameOpt, { ...chatProps, platform: getClientPlatform() });\n dispatch(trackEvent(eventNameMP, { ...chatProps }));\n clearProps({ ...toLowerCaseSpaced(analytics) });\n};\n\nconst getSessionEventsProps = (chatType, status, chatData, user, analytics) => {\n const { numberOfChatOrders, numberOfVcOrders, numberOfVoiceCallOrders } = user;\n const {\n initialDuration, initialCharged, initialVoipCharged, initialVoipDuration, isPayg,\n advisorId, name: advisorName, orderId\n } = chatData;\n\n const { utmCampaign, utmSource } = toCamelCase(queryString.parse(window.location.search));\n const lastHit = getDataFromStorage('LAST_HIT');\n const lastHitSec = (new Date() - new Date(lastHit)) / 1000;\n const sessionCount = parseInt(getDataFromStorage('BROWSER_SESSIONS'), 10) || 0;\n\n const chatProps = {\n ...startChatProperties(chatData, getSessionType(chatType), analytics),\n ...paramOrNul('number of chat orders', numberOfChatOrders),\n ...paramOrNul('number of voice orders', numberOfVoiceCallOrders),\n ...paramOrNul('number of vc orders', numberOfVcOrders)\n };\n\n const mpProps = {\n ...paramOrNul(`${ getSessionType(chatType) } initial minutes`, trackPaygRelatedProps(isPayg, (initialDuration || initialVoipDuration) / 60)),\n ...paramOrNul(`${ getSessionType(chatType) } initial credit`, trackPaygRelatedProps(isPayg, initialCharged || initialVoipCharged)),\n ...paramOrNul([`${ getSessionType(chatType) } status`], status),\n ...paramOrNul('session initial minutes', trackPaygRelatedProps(isPayg, (initialDuration || initialVoipDuration) / 60)),\n ...paramOrNul('session initial credit', trackPaygRelatedProps(isPayg, initialCharged || initialVoipCharged)),\n ...paramOrNul('session status', status),\n platform: getClientPlatform()\n };\n\n const gtmProps = {\n orderId,\n advisorId,\n advisorName,\n ...paramOrNul('utmCampaign', utmCampaign),\n ...paramOrNul('utmSource', utmSource),\n sessionsCount: sessionCount,\n timeFromLastSession: parseInt(lastHitSec, 10)\n };\n\n return { ...chatProps, ...mpProps, ...gtmProps };\n};\n\nexport const trackChatStartedEvent = (chatType, status, chatData, user, dispatch) => {\n const { analytics } = chatData;\n const props = getSessionEventsProps(chatType, status, chatData, user, analytics);\n const eventNameOpt = 'live session started';\n trackGTMEvent(eventNameOpt, { ...props, platform: getClientPlatform() });\n dispatch(trackEvent(`${ getSessionType(chatType) } started`, props));\n clearProps({ ...toLowerCaseSpaced(analytics) });\n};\n\nexport const trackDurationPickExitdMPEvent = (chatType, payload) => (dispatch) => {\n dispatch(trackEvent(`${ getSessionType(chatType) } duration pick exit`, payload));\n};\n\nexport const trackDurationPickedMPEvent = (chatType, payload) => (dispatch) => {\n let eventName = '';\n switch (chatType) {\n case Const.chatType.text:\n eventName = 'chat duration picked';\n break;\n case Const.chatType.voice:\n eventName = 'voice duration picked';\n break;\n case Const.chatType.video:\n eventName = 'vc duration picked';\n break;\n default:\n break;\n }\n dispatch(trackEvent(eventName, payload));\n};\n\nexport const trackBaseFavoriteEventMP = (isFavorite, advisorId, clickSource, dispatch, conversionEventId) => {\n const eventName = isFavorite ? 'favorite advisor' : 'unfavorite advisor';\n const properties = {\n 'advisor id': advisorId,\n 'click source': clickSource\n };\n if (isFavorite) {\n trackEventAddToCardFB(advisorId, conversionEventId);\n }\n dispatch(trackEvent(eventName, properties));\n};\n\nexport const parseAndTrackAnalyticEvents = (analyticEvents, extraProps) => {\n if (!analyticEvents) return;\n const convertedAnalyticEvents = toLowerCaseSpaced(analyticEvents);\n Object.keys(convertedAnalyticEvents).forEach((eventName) => {\n window.store.dispatch(trackEvent(eventName, { ...convertedAnalyticEvents[eventName], ...extraProps }));\n clearProps({ ...convertedAnalyticEvents[eventName] });\n });\n};\n\nexport const trackEventDeleteOrder = (order) => (dispatch) => {\n const {\n id, advisorId, orderType, state\n } = order;\n const properties = {\n 'order id': id,\n 'advisor id': advisorId,\n 'order type': orderType,\n 'order state': state\n };\n dispatch(trackEvent('order deleted', properties));\n};\n\nexport const trackRedeemPromoFailedEvent = ({\n fullMessages, code, error, clickSource, dispatch\n}) => {\n const eventName = 'redeem promo failed';\n const properties = {\n 'promo status': fullMessages,\n promo: code,\n 'promo error': `${ error.status }`,\n ...paramOrNul('click source', clickSource)\n };\n dispatch(trackEvent(eventName, properties));\n};\n\nexport const trackRedeemPromoEvent = ({\n res, code, clickSource, dispatch\n}) => {\n const eventName = 'redeem promo';\n const properties = {\n 'promo status': res.creditText,\n 'promo ': code,\n 'credits ': res.creditAmount,\n ...paramOrNul('promo type', res.promoType),\n ...paramOrNul('click source', clickSource),\n ...paramOrNul('referring user', res.referringUserId)\n };\n dispatch(trackEvent(eventName, properties));\n};\n\nexport const trackAdvisorProfileViewEvent = (params) => (dispatch) => {\n const eventName = 'advisor profile view';\n const {\n advisorId, section, conversionEventId, location, nickname,\n serviceTitle, profilePictureUrl, rating, readingsCount, yearJoined, profileVideoUrl\n } = params;\n trackEventViewewContentFB(advisorId, conversionEventId);\n if (ADVISOR_PROFILE_VIEW_MP_EVENT) {\n const { clickSource } = getClickSourceForEvent({ location });\n const properties = {\n 'advisor id': advisorId,\n 'click source': clickSource.toLowerCase(),\n ...paramOrNul('user id', window.currentUserId),\n ...paramOrNul('section', section),\n 'advisor name': nickname,\n 'advisor subtitle': serviceTitle,\n 'advisor image url': profilePictureUrl,\n 'advisor rating': rating,\n 'advisor readings since data': `${ readingsCount } readings since ${ yearJoined }`,\n 'advisor video url': profileVideoUrl\n };\n dispatch(trackEvent(eventName, properties));\n }\n};\n\nexport const trackProfileChatButton = (params) => (dispatch) => {\n const {\n ppm, advisorId, mode, clickSource, section\n } = params;\n const payload = {\n ppm,\n tryout: false,\n 'advisor id': advisorId,\n 'click source': clickSource,\n ...paramOrNul('section', section)\n };\n let eventName = '';\n switch (mode) {\n case 'voice':\n eventName = 'profile voice button';\n break;\n case 'video':\n eventName = 'profile vc button';\n break;\n default:\n eventName = 'profile chat button';\n break;\n }\n dispatch(trackEvent(eventName, payload));\n};\n\nexport const trackPlayingAdvisorProfileVideoEvent = (params) => (dispatch) => {\n const eventName = 'Playing advisor profile video';\n const {\n id, clickSource, section, duration\n } = params;\n const properties = {\n 'advisor id': id,\n 'click source': clickSource.toLowerCase(),\n ...paramOrNul('section', section),\n 'play time': duration\n };\n dispatch(trackEvent(eventName, properties));\n};\n\nexport const trackEventSpentCredit = (price, currency, ordetType, userId, orderId) => {\n if (price > 0) trackEventSpentCreditFB(price, currency, ordetType, userId, orderId);\n};\n\nexport const trackEventAddToCardAction = (advisorId) => () => {\n trackEventAddToCardActionFB(advisorId);\n};\n\nexport const trackTranscriptEvent = (advisorId, duration) => (dispatch) => {\n const eventName = 'transcript view';\n if (!advisorId) return;\n const properties = {\n 'advisor id': advisorId,\n 'transcript view duration': duration\n };\n dispatch(trackEvent(eventName, properties));\n};\n\nexport const trackEventProfileButton = (conversionEventId) => () => {\n trackEventProfileButtonFB(conversionEventId);\n};\n\nexport const trackPaymentSourcesEvent = (clickSource) => (dispatch, getState) => {\n const eventName = 'payment sources screen';\n const { paymentSources } = getState();\n if (!paymentSources) return;\n let paymentKind = 'none';\n if (paymentSources.current) {\n const { paymentSources: { current: { kind } } } = getState();\n paymentKind = kind;\n }\n const numberOfCC = (paymentSources.existing || []).filter(\n source => !source.errorText && source.kind === 'cc'\n ).length;\n const properties = {\n 'purchase screen': getPurchaseScreenForPaymentSourcesEvent(clickSource),\n 'default payment method': paymentKindToAnalyticsName(paymentKind),\n 'number of credit cards': numberOfCC,\n ...aditionalPurchaseProps()\n };\n dispatch(trackEvent(eventName, properties));\n};\n\nexport const trackSmartBannerEvent = (params) => (dispatch) => {\n const eventName = 'smart banner';\n const {\n sessionsCount, secondsFromSessionBegan\n } = params;\n const properties = {\n 'sessions count': sessionsCount,\n 'seconds from session began': secondsFromSessionBegan\n };\n dispatch(trackEvent(eventName, properties));\n};\n\nexport const purchase3DSRequiredEvent = (params) => (dispatch) => {\n const eventName = 'purchase 3DS required';\n const properties = params;\n dispatch(trackEvent(eventName, properties));\n};\n\nexport const purchase3DSFailedEvent = (params) => (dispatch) => {\n const eventName = 'purchase 3DS failed';\n const properties = params;\n dispatch(trackEvent(eventName, properties));\n};\n\nconst checkOptimoveUserId = ({ eventName, params }) => {\n let optimoveSDKAPIGetUserId = window.optimoveSDK?.API.getUserId();\n if (!optimoveSDKAPIGetUserId) {\n const interval = setInterval(() => {\n optimoveSDKAPIGetUserId = window.optimoveSDK?.API.getUserId();\n if (optimoveSDKAPIGetUserId) {\n trackGTMEvent(eventName, params);\n clearInterval(interval);\n }\n }, 1000);\n }\n};\n\nexport const trackPageVisit = (pageTitle, withUserId = false) => {\n if (isPrerenderMode()) return;\n const eventName = 'page visit';\n const optimoveUserId = window.optimoveSDK?.API.getUserId();\n const params = { url: window.location.href, 'page title': pageTitle };\n log(LOG_LEVELS.INFO, 'Optimove', `track page visit: ${ pageTitle }`);\n if (withUserId && !optimoveUserId) {\n checkOptimoveUserId({ eventName, params });\n return;\n }\n trackGTMEvent(eventName, params);\n};\n\nexport const trackSessionHireEvent = (chatType, status, chatData, user, dispatch) => {\n const { analytics, manualAnalyticEvents } = chatData;\n const props = getSessionEventsProps(chatType, status, chatData, user, analytics);\n\n dispatch(trackEvent('session hire', props));\n clearProps({ ...toLowerCaseSpaced(analytics) });\n parseAndTrackAnalyticEvents(manualAnalyticEvents, analytics);\n};\n","import Const from '../config/const';\n\nconst setError = (errorCode, errorText, errorUrl, statusText) => ({\n type: Const.applicationError.error,\n errorCode,\n errorText,\n errorUrl,\n statusText\n});\n\nexport const setApplicationError = ({\n errorCode, errorText, errorUrl, statusText\n}) => (dispatch) => {\n dispatch(setError(errorCode, errorText, errorUrl, statusText));\n};\n\nconst clearError = () => ({\n type: Const.applicationError.clearError\n});\n\nexport const clearApplicationError = () => (dispatch) => {\n dispatch(clearError());\n};\n","import React from 'react';\nimport queryString from 'query-string';\nimport Const from '../config/const';\nimport { getSEODataAPI, welcomePromoCodesAPI } from '../config/api';\nimport { getValueOrDefault, isPrerenderMode, pathsNameWithLocalization } from '../config/util';\nimport {\n navigationStackBarRoutesData,\n applicationRoutes\n} from '../config/app_routes';\nimport { matchPaths, toCamelCase } from '../../common/config/utils';\nimport { findMatchingRouteKey, getCurrentPath } from '../components/routes/routes_helpers';\nimport { SUPPORTED_LANGUAGES } from '../config/i18n';\n\nexport const navigationStackItemProp = {\n itemScope: 'itemscope',\n itemType: 'https://schema.org/BreadcrumbList',\n navigationStackItem: {\n itemProp:'itemListElement',\n itemScope: 'itemscope',\n itemType:'https://schema.org/ListItem',\n link: {\n appLink: { itemProp: 'item' },\n span: { itemProp: 'name' }\n },\n meta: {\n position: (itemPropPosition) => <meta itemProp=\"position\" content={ itemPropPosition } />\n }\n }\n};\n\nexport const routMatch = ({ pathName, paths }) => {\n const match = matchPaths({ pathname: [...pathsNameWithLocalization(paths)], path: pathName });\n return match || {};\n};\n\nconst createPathData = ({\n routeKey, getState, itemData, dataKey\n}) => {\n const key = dataKey || routeKey;\n let pathData = navigationStackBarRoutesData[key];\n const { application } = getState();\n if (itemData) {\n pathData = { ...pathData, ...itemData };\n }\n if (Object.keys(application.screenStack).length === 0) {\n return { ...pathData.directScreenStack, [key]: pathData };\n }\n\n return { [key]: pathData };\n};\n\nexport const updateNavigationStackAction = ({\n showNavigationStackBar, pathData, navigationStackLoading\n}) => ({\n type: Const.application.updateNavigationStack,\n pathData,\n showNavigationStackBar,\n navigationStackLoading\n});\n\nexport const navigationStackLoadingAction = () => ({\n type: Const.application.navigationStackLoading\n});\n\nconst clearNavigationStackAction = () => ({\n type: Const.application.clearNavigationStack\n});\n\nconst clearNavigationStackIfNeed = ({ routeKey, dispatch, getState }) => {\n const { shouldClearNavigationStackBar = false } = getValueOrDefault(applicationRoutes, routeKey);\n if (shouldClearNavigationStackBar) {\n const { application: { screenStack } } = getState();\n if (Object.keys(screenStack).length > 1) { // if not only Home\n dispatch(clearNavigationStackAction());\n }\n }\n};\n\nexport const updateNavigationStack = ({\n dataKey, itemData, navigationStackLoading\n}) => (dispatch, getState) => {\n const routes = Object.keys(applicationRoutes);\n const { routeKey } = getCurrentPath(routes);\n if (dataKey) {\n // remove language to match path\n const langPattern = new RegExp(`^/(?:${ SUPPORTED_LANGUAGES.join('|') })/`);\n dataKey = findMatchingRouteKey(dataKey.replace(langPattern, '/'));\n }\n clearNavigationStackIfNeed({ routeKey, dispatch, getState });\n const { shouldSetNavigationStackBar = false, shouldShowNavigationStackBar = false } = getValueOrDefault(applicationRoutes, routeKey);\n if (!shouldSetNavigationStackBar) {\n const { application: { showNavigationStackBar } } = getState();\n if (showNavigationStackBar) {\n dispatch(updateNavigationStackAction({ showNavigationStackBar: false, pathData: {} }));\n }\n return;\n }\n const pathData = createPathData({\n routeKey, getState, itemData, dataKey\n });\n dispatch(updateNavigationStackAction({\n showNavigationStackBar: shouldShowNavigationStackBar, pathData, navigationStackLoading\n }));\n};\n\nconst updateSmartBannerVisibilityAction = ({ visible, needPresent }) => ({\n type: Const.application.updateSmartBannerVisibility,\n visible,\n needPresent\n});\n\nexport const updateSmartBannerVisibility = (routeKey) => (dispatch, getState) => {\n const { application: { needPresent } } = getState();\n if (!needPresent) return;\n const { showSmartBanner = false } = getValueOrDefault(applicationRoutes, routeKey);\n let aditionParams = { needPresent };\n if (needPresent && !showSmartBanner) {\n aditionParams = { needPresent: false };\n }\n dispatch(updateSmartBannerVisibilityAction({ visible: showSmartBanner, ...aditionParams }));\n};\n\nconst setNewToPG = (value) => ({\n type: Const.application.setNewToPG,\n value\n});\n\nexport const setNewToPGAction = (value) => (dispatch) => {\n dispatch(setNewToPG(value));\n};\n\nexport const updateSEOData = (route, { seoData }) => ({\n type: Const.application.udpateSEOData,\n route,\n seoData\n});\n\nexport const getSEOData = (route) => (dispatch) => {\n if (isPrerenderMode()) return;\n\n getSEODataAPI(route).then((res) => {\n dispatch(updateSEOData(route, res));\n });\n};\n\nexport const appLoading = () => ({\n type: Const.application.appLoading\n});\n\nconst setAnonymousUserAction = (anonymousUser) => ({\n type: Const.application.setAnonymousUser,\n anonymousUser\n});\n\nexport const getAnonymousUser = () => (dispatch) => {\n const { promo } = toCamelCase(queryString.parse(window.location.search));\n let deeplink = null;\n if (promo) deeplink = `promo/${ promo }`;\n welcomePromoCodesAPI(deeplink).then(res => {\n const { anonymousUser } = res;\n dispatch(setAnonymousUserAction(anonymousUser));\n });\n};\n","import {\n logInAPI,\n registerAPI,\n authSocAPI,\n logOutAPI\n} from '../config/api';\nimport Const from '../config/const';\nimport {\n resetMP,\n identifyOrAliasUserOnMP\n} from './mixpanel';\nimport { hotJarReset } from './hotjar';\nimport {\n trackLoginEvent, trackRegisterEvent, trackLogoutEvent\n} from './analytics';\nimport { getDataFromStorage, saveDataToStorage } from '../config/util';\nimport { toCamelCase } from '../../common/config/utils';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { loadHomePage } from './home_page';\nimport { GDPRConsernPopupThemes } from '../config/themes';\nimport { getAnonymousUser } from './application';\nimport { autoRedemSetAuthHandlerSuccessAction, autoRedemSetJustSignedUpAuthHandlerSuccessAction } from './promo_code';\n\nconst operationsStatuses = {\n no_consent_privacy_policy: 'noConsent'\n};\n\nexport const shouldShowGDPRConsent = (shouldDisplay, socialParams) => (dispatch) => {\n dispatch({\n type: Const.auth.showGDPRConsernPopup,\n display: shouldDisplay,\n socialParams\n });\n};\n\nconst authProgressActionCreator = () => ({\n type: Const.auth.loading\n});\n\nexport const authErrorActionCreator = error => ({\n type: Const.auth.error,\n payload: {\n error\n }\n});\n\nconst authSuccessActionCreator = (user) => ({\n type: Const.auth.success,\n payload: {\n user\n }\n});\n\nexport const navigationPop = () => ({\n type: Const.auth.navigationPop\n});\n\nexport const authClearPendingAction = () => ({\n type: Const.auth.clearPendingAction\n});\n\nexport const authClearPendingCloseAction = () => ({\n type: Const.auth.clearPendingCloseAction\n});\n\nexport const changeScreen = (screen) => ({\n type: Const.auth.screenChange,\n nextScreen:screen\n});\n\nexport const updateCurrentScreen = (screen) => ({\n type: Const.auth.updateCurrentScreen,\n newScreen:screen\n});\n\nexport const gdprSwitcherValueChanged = (value) => ({\n type: Const.auth.consentToGDPRChanged,\n value\n});\n\nexport const displayRegister = ({ shouldDisplay, signUpFlow, screen }) => {\n const wasLogin = getDataFromStorage('WAS_LOGIN');\n const getScreen = () => {\n if (screen) return screen;\n return wasLogin ? Const.authScreens.signIn : Const.authScreens.signUp;\n };\n return ({\n type: Const.auth.displayRegister,\n shouldDisplay,\n signUpFlow,\n currentScreen: getScreen()\n });\n};\n\nexport const clearError = () => ({\n type: Const.auth.clearError\n});\n\nexport const authPendingAction = pendingAction => dispatch => {\n const pendingDecorator = () => {\n pendingAction();\n dispatch(authClearPendingAction());\n dispatch(authClearPendingCloseAction());\n };\n dispatch({\n type: Const.auth.pendingAction,\n payload: {\n pendingAction: pendingDecorator\n }\n });\n};\n\nexport const authPendingCloseAction = pendingCloseAction => dispatch => {\n const pendingCloseDecorator = () => {\n pendingCloseAction();\n dispatch(authClearPendingCloseAction());\n dispatch(authClearPendingAction());\n };\n dispatch({\n type: Const.auth.pendingCloseAction,\n payload: {\n pendingCloseAction: pendingCloseDecorator\n }\n });\n};\n\nconst authHandlerSuccessAction = (user, dispatch, resolve) => {\n dispatch(authSuccessActionCreator(user));\n saveDataToStorage('WAS_LOGIN', true);\n resolve(user);\n};\n\nconst authHandler = (promise, dispatch, socialParams) => new Promise(async (resolve, reject) => promise\n .then(user => {\n const {\n user: { id, justSignedUp }\n } = user;\n window.currentUserId = id;\n\n const authHandlerSuccessActionWithResUserIfNeed = (resUser) => {\n if (resUser) {\n user.user = { ...user.user, ...resUser };\n }\n authHandlerSuccessAction(user, dispatch, resolve);\n };\n\n if (justSignedUp) {\n dispatch(autoRedemSetJustSignedUpAuthHandlerSuccessAction({ justSignedUpAuthHandlerSuccess: authHandlerSuccessActionWithResUserIfNeed }));\n return;\n }\n dispatch(autoRedemSetAuthHandlerSuccessAction({ authHandlerSuccess: authHandlerSuccessActionWithResUserIfNeed }));\n })\n .catch(error => {\n error\n .json()\n .then(jsonError => {\n const { errors, operationStatus } = toCamelCase(jsonError);\n if (operationsStatuses[operationStatus]) {\n dispatch(shouldShowGDPRConsent({ [GDPRConsernPopupThemes.social]: true }, socialParams));\n return;\n }\n dispatch(authErrorActionCreator(errors || jsonError));\n reject(errors || jsonError);\n })\n .catch(e => {\n dispatch(authErrorActionCreator(e));\n reject(e);\n });\n }));\n\nexport const authSocial = (socRequest, signupFlow) => (dispatch, getState) => {\n const { consentedToGDPR, loading } = getState().auth;\n if (loading) return;\n dispatch(authProgressActionCreator());\n const params = { ...socRequest, consentedToGDPR };\n const socialParams = { socRequest, signupFlow };\n authHandler(authSocAPI(params)\n .then(user => {\n dispatch(identifyOrAliasUserOnMP(user));\n return user;\n }), dispatch, socialParams)\n .then(user => {\n if (user) {\n if (user.user.justSignedUp) {\n dispatch(trackRegisterEvent(signupFlow, user.conversionEventId));\n } else {\n dispatch(trackLoginEvent(signupFlow));\n }\n }\n }).catch(e => { log(LOG_LEVELS.ERROR, 'Auth', 'log in error', e); });\n};\n\nexport const logIn = (email, password, rememberMe, signupFlow, recaptchaToken) => (dispatch, getState) => {\n const { loading } = getState().auth;\n if (loading) return;\n dispatch(authProgressActionCreator());\n authHandler(logInAPI(email, password, rememberMe, recaptchaToken), dispatch)\n .then(user => {\n dispatch(identifyOrAliasUserOnMP(user));\n return user;\n })\n .then(user => {\n if (user) {\n dispatch(loadHomePage(true));\n dispatch(trackLoginEvent(signupFlow));\n }\n }).catch(e => { log(LOG_LEVELS.ERROR, 'Auth', 'log in error', e); });\n};\n\nexport const register = (email, password, rememberMe, signupFlow, recaptchaToken) => (dispatch, getState) => {\n const { loading } = getState().auth;\n if (loading) return;\n dispatch(authProgressActionCreator());\n authHandler(registerAPI(email, password, rememberMe, recaptchaToken)\n .then(user => {\n dispatch(loadHomePage(true));\n dispatch(identifyOrAliasUserOnMP(user));\n return user;\n }), dispatch)\n .then(user => {\n if (user) {\n if (user.user.justSignedUp) {\n dispatch(trackRegisterEvent(signupFlow, user.conversionEventId));\n } else {\n dispatch(trackLoginEvent(signupFlow));\n }\n }\n }).catch(e => { log(LOG_LEVELS.ERROR, 'Auth', 'log in error', e); });\n};\n\nconst logOutLoading = () => ({\n type: Const.logOut.loading\n});\n\nconst logOutSuccess = () => ({\n type: Const.logOut.success\n});\n\nexport const logOutClear = () => {\n window.currentUserId = 0;\n return ({\n type: Const.logOut.clear\n });\n};\nexport const logOutAction = () => (dispatch) => {\n dispatch(logOutLoading());\n logOutAPI()\n .then(() => {\n dispatch(trackLogoutEvent(dispatch));\n dispatch(loadHomePage(true));\n resetMP();\n hotJarReset();\n dispatch(getAnonymousUser());\n window.currentUserId = 0;\n dispatch(logOutSuccess());\n })\n // eslint-disable-next-line no-console\n .catch((error) => log(LOG_LEVELS.ERROR, 'Auth', 'Error logging out', error));\n};\n","import { json2csv } from 'json-2-csv';\nimport Const from '../config/const';\nimport { updateUser } from './user';\nimport { getAvatarPresignedURL } from '../config/api';\nimport { getDataFromStorage } from '../config/util';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\n\nconst csvContentType = 'application/csv';\nconst jpegContentType = 'image/jpeg';\n\nconst uploadingAWS = () => ({\n type: Const.aws.uploading\n});\n\nconst uploadingAWSSuccess = () => ({\n type: Const.aws.success\n});\n\nconst uploadingAWSFailed = error => ({\n type: Const.aws.failed,\n payload: error\n});\n\nexport const uploadClear = () => ({\n type: Const.aws.reset\n});\n\nconst upload = (file, presignedUrl, contentType) => {\n const headers = new Headers({\n 'Content-Type': contentType\n });\n const request = new Request(\n presignedUrl,\n {\n method: 'PUT',\n headers,\n body: file\n }\n );\n return fetch(request);\n};\n\nexport const uploadUserAvatar = file => (dispatch) => {\n dispatch(uploadingAWS());\n getAvatarPresignedURL().then((res) => {\n const { presignedUrlKey, presignedUrl } = res;\n log(LOG_LEVELS.INFO, 'Amazon', 'uplaoding user avatar');\n upload(file, presignedUrl, jpegContentType).then((amazonRes) => {\n if (amazonRes.ok) {\n dispatch(uploadingAWSSuccess());\n dispatch(updateUser({ avatarUid : presignedUrlKey }));\n dispatch(uploadClear());\n }\n dispatch(uploadingAWSFailed());\n log(LOG_LEVELS.ERROR, 'Amazon', 'avatar responce error');\n }).catch((error) => {\n dispatch(uploadingAWSFailed(error));\n log(LOG_LEVELS.ERROR, 'Amazon', `uploading user avatar error ${ error }`);\n });\n }).catch((error) => {\n dispatch(uploadingAWSFailed(error));\n });\n};\n\nconst uploadUserLogs = (file, key, presignedUrl) => (dispatch) => {\n log(LOG_LEVELS.INFO, 'Amazon', 'uploading user logs');\n upload(file, presignedUrl, csvContentType).then((res) => {\n if (res.ok) {\n log(LOG_LEVELS.INFO, 'Amazon', 'uploading user logs success');\n dispatch(uploadingAWSSuccess());\n dispatch(updateUser({ logUploadedTo: key }));\n dispatch(uploadClear());\n }\n }).catch((error) => {\n dispatch(uploadingAWSFailed(error));\n log(LOG_LEVELS.ERROR, 'Amazon', `uploading user logs error ${ error }`);\n });\n};\n\nexport const parseAndUploadLogs = (url, key) => (dispatch) => {\n const currentLogs = getDataFromStorage('logs_batch');\n json2csv(JSON.parse(currentLogs), (err, csv) => {\n if (err) {\n log(LOG_LEVELS.ERROR, 'Amazon', `JSON to csv parse error ${ err }`);\n }\n dispatch(uploadUserLogs(csv, key, url));\n });\n};\n","import { getMixpanelInstance } from './mixpanel';\n\nconst events = [];\nlet lastEventAt = (new Date()).getTime();\nconst RETRY_INTERVAL = 1000;\nconst MAX_EVENTS_BUFFER = 5000;\n\nconst generateUID = () => (\n Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10)\n);\n\nconst buildUrl = () => `${ window.config.clAnalyticsEndpoint }?local_time=${ (new Date()).getTime() }`;\n\nconst buildBody = (list, mixpanel) => JSON.stringify({\n events: list,\n batch_id: generateUID(),\n distinct_id: mixpanel.get_distinct_id(),\n key: window.config.clAnalyticsKey\n});\n\nconst doSendEvents = (list) => {\n getMixpanelInstance((mixpanel) => {\n window.fetch(buildUrl(), {\n method: 'POST',\n body: buildBody(list, mixpanel)\n }).then(response => {\n if (response.status === 200 || response.status === 201) {\n lastEventAt = (new Date()).getTime();\n } else {\n setTimeout(() => { doSendEvents(list); }, RETRY_INTERVAL);\n }\n }).catch(() => {\n setTimeout(() => { doSendEvents(list); }, RETRY_INTERVAL);\n });\n });\n};\n\nconst sendEvents = () => {\n const sendingEvents = [...events];\n events.length = 0;\n setTimeout(() => {\n doSendEvents(sendingEvents);\n }, 0);\n};\n\n// every MAX_EVENTS_BUFFER seconds\nsetInterval(() => {\n if ((new Date()).getTime() - lastEventAt > MAX_EVENTS_BUFFER && events.length > 0) {\n sendEvents();\n }\n}, MAX_EVENTS_BUFFER);\n\n// on page unload\n// TODO: consider https://github.com/mixpanel/mixpanel-js/blob/7c83946d2aa4b28e0cd10464b3d3ed21b94e5412/src/mixpanel-core.js#L267\ndocument.addEventListener('visibilitychange', () => {\n if (window.config.clAnalyticsEndpoint) {\n if (document.visibilityState === 'hidden' && events.length) {\n getMixpanelInstance((mixpanel) => {\n if (navigator.sendBeacon(buildUrl(), buildBody(events, mixpanel))) {\n events.length = 0;\n }\n });\n }\n }\n});\n\nexport const trackBEvent = (event, properties) => (dispatch, getState) => {\n if (!window.config.clAnalyticsEndpoint) { return; }\n const { user } = getState();\n const userId = ((user || {}).user || {}).id;\n // console.log('trackBEvent', event, properties);\n const updatedProps = {\n ...properties,\n $current_url: window.location.href,\n $screen_height: window.screen_height,\n $screen_width: window.screen_width,\n $insert_id: generateUID()\n };\n events.push([event, userId, updatedProps, (new Date()).getTime()]);\n};\n","/* eslint-disable object-property-newline */\nimport Const from '../config/const';\nimport { purchaseDetailsTypes } from '../../common/config/const';\nimport {\n createChatApi, hangupChatApi, continueChatApi,\n getPricingOptions\n} from '../config/api';\nimport { toCamelCase } from '../../common/config/utils';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport {\n trackChatStartedEvent, trackDurationPickedMPEvent, StatusBusy, StatusHangUp,\n trackChatAttemptEvent, trackEventProfileButton, trackDurationPickExitdMPEvent, getFlow,\n trackSessionHireEvent,\n StatusSuccess\n} from './analytics';\nimport {\n getDurationPickRelatedProps, isPayg, getDefaultDuration, getDurationOptions\n} from '../config/util';\nimport { updatePurchaseDetails, clearPurchaseDetails } from './purchase_details';\nimport { loadAdvisor } from './advisors';\nimport { getAdvisorSlug } from '../project_items/helper_functions';\n\nexport const valiateUser = (user) => {\n const { gender, dateOfBirth, nickname } = user;\n return !(gender && dateOfBirth && nickname);\n};\n\nconst continueChatActionCreator = (duration, price) => ({\n type: Const.chat.continueChat,\n payload: {\n duration,\n price\n }\n});\n\nexport const pricingLoading = () => ({\n type: Const.chat.pricingLoading\n});\n\nexport const loadPricingOptions = (type, advisorId) => (dispatch, getState) => {\n dispatch(pricingLoading());\n const { chat: { requestParams } } = getState();\n getPricingOptions(advisorId, { liveModes: type, ...requestParams }).then((res) => {\n const {\n chatPricingOptions, conversionEventId, selectDurationKind, user: { xfmProgram }, newUserPaygPricingOption, texts\n } = res;\n if (conversionEventId) dispatch(trackEventProfileButton(conversionEventId));\n dispatch({\n type: Const.chat.start,\n advisorId,\n pricingOptions: chatPricingOptions || [],\n selectDurationKind,\n xfmProgram,\n newUserPaygPricingOption,\n texts\n });\n });\n};\n\nexport const chatInit = (\n advisorId,\n name,\n profilePictureUrl,\n pricePerMinute,\n startChatClickSource,\n requestParams\n) => dispatch => {\n dispatch({\n type: Const.chat.init,\n advisorId,\n name,\n profilePictureUrl,\n pricePerMinute,\n startChatClickSource,\n requestParams\n });\n};\n\nexport const startChat = (\n advisorId,\n pricePerMinute,\n profilePictureUrl,\n name,\n startChatClickSource,\n homepageSection,\n requestParams\n) => ({\n type: Const.chat.start,\n advisorId,\n pricePerMinute,\n profilePictureUrl,\n name,\n startChatClickSource,\n homepageSection,\n requestParams\n});\n\nconst doContinueChat = (orderId, duration, dispatch) => (continueChatApi(orderId, duration)\n .then(success => {\n log(LOG_LEVELS.INFO, 'Chat', 'everything is fine, chat should be continued now', success);\n })\n .catch(error => {\n // TODO: handle 404 - advisor is not in a live mode\n switch (error.status) {\n case 422: {\n error.json().then(jsonError => {\n const { fullMessages } = toCamelCase(jsonError);\n dispatch({\n type: Const.chat.generalError,\n errors: fullMessages\n });\n });\n break;\n }\n default: {\n dispatch({ type: Const.chat.unknownError, error: error.json() });\n log(LOG_LEVELS.ERROR, 'Chat', 'Error continuing the chat', error);\n }\n }\n })\n);\n\nconst purchaseBack = continueFlow => ({\n type: Const.chat.purchaseBack,\n payload: {\n continueFlow\n }\n});\n\nconst continueChat = (duration) => (dispatch, getState) => {\n const {\n chat: { orderId, pricingOptions }\n } = getState();\n\n const item = pricingOptions.find((i) => i.duration === duration);\n\n // Duration and Pirce need to be updated here in order to track\n // correct properties in chat started event\n dispatch(continueChatActionCreator(duration, item.price));\n doContinueChat(orderId, duration, dispatch);\n};\n\nexport const purchaseOnBack = () => (dispatch, getState) => {\n const { chat: { orderId } } = getState();\n dispatch(purchaseBack(!!orderId));\n dispatch(clearPurchaseDetails());\n};\n\nconst continueCall = (dispatch, getState) => {\n const { chat: { duration } } = getState();\n dispatch(continueChat(duration));\n};\n\nexport const purchaseSuccess = () => (dispatch, getState) => {\n const { user: { user }, chat: { orderId } } = getState();\n\n if (orderId) {\n continueCall(dispatch, getState);\n return;\n }\n\n dispatch({\n type: Const.chat.paymentComplete,\n introduce: valiateUser(user)\n });\n};\n\nconst durationSelected = ({\n duration, price, selectedCarouselIndex, user, hasEnoughtCredit, isContinue, isNewUser, flow\n}) => ({\n type: Const.chat.durationSelected,\n duration,\n price,\n selectedCarouselIndex,\n introduce: valiateUser(user),\n isPayg: isPayg({ duration }),\n paymentRequired: !hasEnoughtCredit,\n onContinue: isContinue,\n isNewUser,\n flow\n});\n\nconst trackDurationPickRelatedAction = ({\n option, time, defaultDurationChanged, mpEvent, dispatch, getState\n}) => {\n const {\n price, duration, payAsYouGo, additional\n } = option;\n const {\n user: { user: { clientAvailableCredit } },\n chat: {\n advisorId, pricingOptions, selectDurationKind,\n continuedSession, homepageSection, startChatClickSource\n }\n } = getState();\n const displayVersion = selectDurationKind === Const.selectDurationKind.newUser ? 'version 1' : 'original';\n const defaultDuration = getDefaultDuration({ pricingOptions, payAsYouGo });\n const durationOptions = getDurationOptions({ pricingOptions, payAsYouGo });\n const hasEnoughtCredit = clientAvailableCredit >= price;\n const requiredAmount = hasEnoughtCredit ? null : { 'purchase required' : (price - clientAvailableCredit).toFixed(2) };\n const flow = getFlow({ additional, payAsYouGo });\n const durationPickRelatedProps = getDurationPickRelatedProps({\n requiredAmount, continuedSession, selectedDuration: duration, price, advisorId,\n homepageSection, startChatClickSource, displayVersion, defaultDuration, defaultDurationChanged,\n durationOptions, time, payAsYouGo, flow, additional\n });\n dispatch(mpEvent(Const.chatType.text, durationPickRelatedProps));\n};\n\nconst trackDurationPicked = (option, time, defaultDurationChanged) => (dispatch, getState) => {\n trackDurationPickRelatedAction({\n option, time, defaultDurationChanged, mpEvent: trackDurationPickedMPEvent, dispatch, getState\n });\n};\n\nexport const trackDurationPickExit = (option, time, defaultDurationChanged) => (dispatch, getState) => {\n trackDurationPickRelatedAction({\n option, time, defaultDurationChanged, mpEvent: trackDurationPickExitdMPEvent, dispatch, getState\n });\n};\n\nexport const selectCredit = (option, time, defaultDurationChanged, isContinue) => (dispatch, getState) => {\n const {\n price, duration, selectedCarouselIndex, additional\n } = option;\n const {\n user: { user, user: { clientAvailableCredit } },\n chat: { advisorId }\n } = getState();\n const hasEnoughtCredit = clientAvailableCredit >= price;\n dispatch(trackDurationPicked(option, time, defaultDurationChanged));\n if (hasEnoughtCredit && isContinue) {\n dispatch(continueChat(duration));\n return;\n }\n const flow = getFlow({ additional, payAsYouGo: isPayg({ duration }) });\n dispatch(updatePurchaseDetails({\n clickSource: 'live chat', purchaseType: purchaseDetailsTypes.CHAT, details: {\n advisorId, duration, price, isPayg: isPayg({ duration }), flow\n }\n }));\n dispatch(durationSelected({\n duration, price, selectedCarouselIndex, user, hasEnoughtCredit, isContinue, option, isPayg: isPayg({ duration }), flow\n }));\n};\n\nexport const selectDurationOption = (option, isContinue, isNewUser, index) => (dispatch, getState) => {\n const { price, duration, additional } = option;\n const { user: { user }, user: { clientAvailableCredit } } = getState();\n const hasEnoughtCredit = clientAvailableCredit >= price;\n const flow = getFlow({ additional, payAsYouGo: isPayg({ duration }) });\n dispatch(durationSelected({\n duration,\n price,\n selectedCarouselIndex: index,\n user,\n hasEnoughtCredit,\n isContinue,\n option,\n isNewUser,\n flow\n }));\n};\n\nexport const cancelChat = () => ({\n type: Const.chat.cancel\n});\n\nconst trackMPBusyEventIdNeeded = (fullMessages, dispatch, getState) => {\n const { chat, user: { user } } = getState();\n fullMessages.forEach(element => {\n if (element.includes(StatusBusy)) {\n trackChatStartedEvent(Const.chatType.text, StatusBusy, chat, user, dispatch);\n }\n });\n};\n\nexport const createChat = () => (dispatch, getState) => {\n dispatch({\n type: Const.chat.connect\n });\n const {\n chat: {\n pricePerMinute, duration, advisorId, startChatClickSource\n }, chat\n } = getState();\n trackChatAttemptEvent(Const.chatType.text, chat, dispatch);\n createChatApi(pricePerMinute, duration, advisorId, startChatClickSource)\n .then(config => {\n dispatch({\n type: Const.chat.connectProvider,\n config\n });\n })\n .catch(error => {\n switch (error.status) {\n case 404: {\n dispatch({\n type: Const.chat.notInLiveMode,\n error: 'Advisor is not in live mode anyomre'\n });\n break;\n }\n case 422: {\n error.json().then(jsonError => {\n const { fullMessages } = toCamelCase(jsonError);\n trackMPBusyEventIdNeeded(fullMessages, dispatch, getState);\n dispatch({\n type: Const.chat.cantCreate,\n errors: fullMessages\n });\n });\n break;\n }\n default: {\n dispatch({ type: Const.chat.unknownError, error: error.json() });\n }\n }\n });\n};\n\nconst processAdminMessageIfNeed = () => ({ adminMessage }, dispatch, getState) => {\n if (!adminMessage) return;\n const { chat: { clientSummaryScreen, advisorId } } = getState();\n if (clientSummaryScreen) return;\n const { state: messageState, reason, ...details } = adminMessage;\n if (advisorId) {\n dispatch(loadAdvisor(getAdvisorSlug({ advisorId })));\n }\n dispatch({\n type: Const.chat.adminUpdate, state: messageState, details: toCamelCase(details), reason\n });\n};\n\nexport const hangupChat = () => (dispatch, getState) => {\n dispatch({\n type: Const.chat.hangingUp\n });\n const { orderId, state } = getState().chat;\n // We need to keep the old state, because we need data from the old state\n // like duration, ppm etc. When the API request finishes then the state will be a fresh state,\n // so we can't track the MP event correctly\n const { chat, user: { user } } = getState();\n hangupChatApi(orderId).then((response) => {\n if (state === Const.chatStates.ringing) {\n trackChatStartedEvent(Const.chatType.text, StatusHangUp, chat, user, dispatch);\n }\n processAdminMessageIfNeed(response, dispatch, getState);\n log(LOG_LEVELS.INFO, 'Chat', 'is supposed to be ended');\n });\n};\n\nexport const cancelChatOnPPActions = (isContinue) => ({\n type: Const.chat.cancelOnPP,\n isContinue\n});\n\nexport const setNeedTrackSessionHireEventAvtion = (value) => ({\n type: Const.chat.setNeedTrackSessionHireEvent,\n value\n});\n\nexport const trackSessionHireEventIfNeeded = () => (dispatch, getState) => {\n const { chat, user: { user } } = getState();\n const { needTrackSessionHireEvent } = chat;\n\n if (!needTrackSessionHireEvent) return;\n\n trackSessionHireEvent(Const.chatType.text, StatusSuccess, chat, user, dispatch);\n dispatch(setNeedTrackSessionHireEventAvtion(false));\n};\n","import { formatISO } from 'date-fns';\nimport Const from '../config/const';\nimport { toCamelCase } from '../../common/config/utils';\nimport {\n trackChatStartedEvent, StatusSuccess, StatusNoAnswer, trackPageVisit\n} from './analytics';\nimport { getUser } from './user';\nimport { getPricingOptions } from '../config/api';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { loadAdvisor } from './advisors';\nimport { cancelChat, pricingLoading, cancelChatOnPPActions } from './chat';\nimport { getAdvisorSlug } from '../project_items/helper_functions';\n\nconst NO_ANSWER = 'no_answer';\nconst ADVISOR_CONNECTION_LOST = 'advisor_connection_lost';\n\nlet pubNub = null;\nlet listener = null;\n\nconst CATGEORY_ACTIONS = {\n PNConnectedCategory: Const.pubnub.actions.connected,\n PNNetworkDownCategory: Const.pubnub.actions.down,\n PNNetworkUpCategory: Const.pubnub.actions.up\n};\n\nconst updatePricingOptionsActionCreator = (pricingOptions, selectDurationKind, newUserPaygPricingOption, xfmProgram) => ({\n type: Const.chat.updatePricingOptions,\n payload: {\n pricingOptions, selectDurationKind, newUserPaygPricingOption, xfmProgram\n }\n});\n\nconst trackMPChatStartedEventIfNeeded = (chatState, dispatch, getState) => {\n if (chatState !== Const.chatStates.started) return;\n\n const { chat, user: { user } } = getState();\n trackChatStartedEvent(Const.chatType.text, StatusSuccess, chat, user, dispatch);\n trackPageVisit('live session page');\n};\n\nconst trackNoAnswerEventIfNeeded = (reason, dispatch, getState) => {\n if (reason !== NO_ANSWER) return;\n\n const { chat, user: { user } } = getState();\n trackChatStartedEvent(Const.chatType.text, StatusNoAnswer, chat, user, dispatch);\n};\n\nconst updateUserIfNeeded = (state, dispatch) => {\n if (!(state === Const.chatStates.ended || state === Const.chatStates.paused)) return;\n\n dispatch(getUser());\n};\n\nconst updateAdvisorIfEnded = (state, dispatch, getState) => {\n if (state !== Const.chatStates.ended) return;\n\n const { chat: { advisorId } } = getState();\n if (advisorId === null) return;\n dispatch(loadAdvisor(getAdvisorSlug({ advisorId })));\n};\n\nexport const updatePricingOptions = (onContinue, dispatch, getState) => {\n dispatch(pricingLoading());\n const { chat: { advisorId } } = getState();\n const additionalParams = onContinue ? { context: 'followup' } : {};\n getPricingOptions(advisorId, { liveModes:'chat', ...additionalParams }).then((res) => {\n dispatch(updatePricingOptionsActionCreator(res.chatPricingOptions || [], res.selectDurationKind, res.newUserPaygPricingOption, res.user.xfmProgram));\n });\n};\n\nconst updatePricingOptionsOnContinueIfNeed = (state, dispatch, getState) => {\n if (state !== Const.chatStates.paused) return;\n updatePricingOptions(true, dispatch, getState);\n};\n\nexport const cancelChatOnPP = (isContinue) => (dispatch, getState) => {\n updatePricingOptions(isContinue, dispatch, getState);\n dispatch(cancelChatOnPPActions(isContinue));\n};\n\nconst updateActions = (state, dispatch, getState) => {\n updateAdvisorIfEnded(state, dispatch, getState);\n updateUserIfNeeded(state, dispatch);\n updatePricingOptionsOnContinueIfNeed(state, dispatch, getState);\n};\n\nconst dispatchAdminMessage = ({ state, reason, ...details }, dispatch, getState) => {\n const { chat: { clientSummaryScreen } } = getState();\n if (state === Const.chatStates.ended && !!clientSummaryScreen) return;\n\n trackMPChatStartedEventIfNeeded(state, dispatch, getState);\n trackNoAnswerEventIfNeeded(reason, dispatch, getState);\n\n updateActions(state, dispatch, getState);\n\n log(LOG_LEVELS.INFO, 'State', `state: ${ state }, reason: ${ reason }`);\n if (reason === NO_ANSWER) {\n dispatch({ type: Const.chat.noAnswer });\n return;\n }\n\n const chatState = getState().chat.state;\n // const id = getState().chat.chatId;\n if (chatState === null || (state === chatState && state !== Const.chatStates.ended)) return;\n // Close chat without complete screen if user hangup before the advisor answered\n if (\n (chatState === Const.chatStates.appConnectProvider\n || chatState === Const.chatStates.ringing\n ) && state === Const.chatStates.ended) {\n dispatch(cancelChat());\n return;\n }\n dispatch({\n type: Const.chat.adminUpdate, state, details: toCamelCase(details), reason\n });\n};\n\nconst handleTextUserMessage = (body, reason, uuid, arrayIndex, timetoken, dispatch) => {\n if (reason === Const.message.status.offlineMessage) {\n dispatch({ type: Const.chat.messageUpdate, message: { timetoken, arrayIndex } });\n return;\n }\n dispatch({ type: Const.chat.message, message: { body, uuid, timetoken } });\n};\n\nconst dispatchUserMessage = ({\n body, kind, reason, uuid, arrayIndex\n}, timetoken, dispatch, getState) => {\n if (kind === Const.message.kinds.text) {\n handleTextUserMessage(body, reason, parseInt(uuid, 10), arrayIndex, timetoken, dispatch);\n return;\n }\n\n if (kind === Const.message.kinds.textSystemMessage) {\n dispatch({ type: Const.chat.systemMessage, systemMessage: { body, uuid, timetoken } });\n return;\n }\n\n if (kind !== Const.message.kinds.notification) {\n log(LOG_LEVELS.ERROR, 'PubNub', `unknown kind: ${ kind }, reason: ${ reason }`);\n }\n\n const {\n pubnub: { ownUuid }\n } = getState();\n if (parseInt(ownUuid, 10) === parseInt(uuid, 10)) return;\n\n if (reason === Const.message.typing.stop) {\n dispatch({ type: Const.chat.stopPeerTyping, uuid });\n return;\n }\n\n if (reason === Const.message.typing.start) dispatch({ type: Const.chat.startPeerTyping, uuid });\n};\n\nconst connectPubNub = getState => {\n const {\n chat: { channelId }\n } = getState();\n\n pubNub.subscribe({ channels: [channelId], withPresence: true });\n};\n\nconst saveStorePubNubMessage = (message) => (dispatch) => {\n dispatch({ type: Const.chat.message, message });\n};\n\nconst doSendMessage = ({\n kind, reason, body, arrayIndex\n}) => (dispatch, getState) => {\n const {\n chat: { channelId },\n pubnub: { ownUuid, state }\n } = getState();\n const config = {\n channel: channelId,\n sendByPost: true,\n storeInHistory: kind === Const.message.kinds.text,\n message: {\n user: {\n kind, reason, body: (body && body.trim()) || '', uuid: parseInt(ownUuid, 10)\n }\n }\n };\n if (state === Const.pubnub.states.down) {\n if (kind === 'text') {\n const message = {\n body,\n uuid: parseInt(ownUuid, 10),\n offline: true,\n arrayIndex: getState().chat.messages.length\n };\n log(LOG_LEVELS.INFO, 'PubNub', `saveStorePubNubMessage kind: ${ kind }, reason: ${ reason }, uuid: ${ message.uuid }`);\n dispatch(saveStorePubNubMessage(message));\n }\n return;\n }\n\n if (reason === Const.message.status.offlineMessage) {\n if (kind === 'text') { config.message.user.arrayIndex = arrayIndex; }\n }\n log(LOG_LEVELS.INFO, 'PubNub', `pubnub sending channel: ${ config.channel }, kind: ${ kind }, reason: ${ reason }, uuid: ${ config.message.user.uuid }`);\n pubNub.publish(config);\n};\n\nconst sendStorePubNubMessage = (dispatch, getState) => {\n const {\n chat: { messages }\n } = getState();\n messages.forEach((m) => {\n if (m.offline) {\n log(LOG_LEVELS.INFO, 'PubNub', `sendStorePubNubMessage kind: ${ Const.message.kinds.textreason }, reason: ${ Const.message.status.offlineMessage }`);\n dispatch(doSendMessage({\n kind: Const.message.kinds.text,\n body: m.body,\n reason: Const.message.status.offlineMessage,\n arrayIndex: m.arrayIndex\n }));\n }\n });\n};\n\nexport const setAadvisorConnectionLost = (dispatch) => {\n dispatch({ type: Const.chat.advisorConnectionLost });\n};\n\nexport const clearAdvisorConnectionLost = () => dispatch => {\n dispatch({ type: Const.chat.clearAdvisorConnectionLost });\n};\n\nconst createListener = (dispatch, getState) => ({\n message: (props) => {\n const { message, publisher, timetoken } = props;\n const { admin, user, sm } = message;\n const {\n pubnub: { ownUuid }\n } = getState();\n log(LOG_LEVELS.DEBUG, 'PubNub', 'message');\n log(LOG_LEVELS.DEBUG, 'PubNub', 'message details', { ...message });\n dispatch({ type: Const.pubnub.actions.timetoken, timetoken });\n\n if (admin) {\n const { peers } = getState().chat;\n if (!peers || peers.findIndex(p => p.uuid === publisher) === -1) {\n dispatchAdminMessage(admin, dispatch, getState);\n }\n if (admin.reason === ADVISOR_CONNECTION_LOST) {\n setAadvisorConnectionLost(dispatch);\n }\n return;\n }\n\n if (sm && sm.receiver_ids.includes(parseInt(ownUuid, 10))) {\n dispatchUserMessage(sm, formatISO(new Date(timetoken / 10000)), dispatch, getState);\n }\n if (user) {\n dispatchUserMessage(user, formatISO(new Date(timetoken / 10000)), dispatch, getState);\n }\n },\n status: (props) => {\n const { category, ...rest } = props;\n const type = CATGEORY_ACTIONS[category];\n if (type === Const.pubnub.actions.up) {\n connectPubNub(getState);\n }\n\n if (type === Const.pubnub.actions.connected) {\n sendStorePubNubMessage(dispatch, getState);\n }\n\n if (type) {\n dispatch({ type });\n return;\n }\n log(LOG_LEVELS.ERROR, 'PubNub', `status unknown category: ${ category }`);\n log(LOG_LEVELS.DEBUG, 'PubNub', 'status props', { ...rest });\n },\n presence: presence => {\n log(LOG_LEVELS.DEBUG, 'PubNub', 'presence');\n log(LOG_LEVELS.DEBUG, 'PubNub', 'presence details', { ...presence });\n }\n});\n\nexport const connectChatProvider = () => (dispatch, getState) => {\n const {\n chat: { pubnub }\n } = getState();\n import('pubnub').then((module) => {\n pubNub = new module.default({ ...pubnub, ssl: true, restore: true });\n listener = createListener(dispatch, getState);\n pubNub.addListener(listener);\n const { uuid } = pubnub;\n dispatch({ type: Const.pubnub.actions.connect, ownUuid: uuid });\n connectPubNub(getState);\n });\n};\n\nexport const disconnectChatProvider = () => dispatch => {\n if (!pubNub) {\n return;\n }\n if (listener) {\n pubNub.removeListener(listener);\n }\n pubNub.stop();\n dispatch({ type: Const.pubnub.actions.shutdown });\n};\n\nexport const sendMessage = body => doSendMessage({ kind: Const.message.kinds.text, body });\n\nexport const sendTyping = () => doSendMessage({\n kind: Const.message.kinds.notification,\n reason: Const.message.typing.start\n});\n\nexport const sendStopTyping = () => doSendMessage({\n kind: Const.message.kinds.notification,\n reason: Const.message.typing.stop\n});\n","/* eslint-disable max-len */\nimport React from 'react';\nimport env from '../config/variables';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { cookieValue } from '../../common/cookies_popover/cookies_popover';\nimport { paramOrNul } from '../../common/config/utils';\n\nconst { FB_PIXEL_ID } = env;\n\nconst pixelScript = `!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init', ${ FB_PIXEL_ID });fbq('track', 'PageView');`;\nconst pixelNoscript = `\n<img\n alt=\"\"\n height=\"1\"\n width=\"1\"\n style={ { display: 'none' } }\n src=\"https://www.facebook.com/tr?id=${ FB_PIXEL_ID }&ev=PageView&noscript=1\"\n/>`;\n\nexport const facebookPixelScript = () => {\n if (!FB_PIXEL_ID) return null;\n return (\n <script\n async\n >\n {pixelScript}\n </script>\n );\n};\n\nexport const facebookPixelNoscript = () => {\n const noscript = document.createElement('noscript');\n noscript.id = 'facebook_pixel_noscript';\n noscript.innerHTML = pixelNoscript;\n return noscript;\n};\n\nconst extraFacebookPixelEventParams = () => {\n const { user : { user } } = window.store.getState();\n const {\n id, email, dateOfBirth, gender, facebookId\n } = user;\n // https://developers.facebook.com/docs/marketing-api/conversions-api/parameters/customer-information-parameters\n const extraParams = {\n ...paramOrNul('external_id', id), // id\n ...paramOrNul('em', email), // email\n client_user_agent: window.navigator.userAgent, // user_agent\n ...paramOrNul('fbp', cookieValue('_fbp')), // browser_id\n ...paramOrNul('fbc', cookieValue('_fbc')), // click_id\n ...paramOrNul('db', dateOfBirth), // date_of_birth\n ...paramOrNul('ge', gender), // gender\n ...paramOrNul('fb_login_id', facebookId) // facebook_login_id\n };\n return extraParams;\n};\n\nconst trackFacebookPixelEvent = (eventName, params, eventIdData, isCustomEvent) => {\n if (!window.currentUserId) return;\n const eventProperties = {\n ...params,\n ...extraFacebookPixelEventParams()\n };\n log(LOG_LEVELS.INFO, 'FB', `event: ${ eventName }, params: `, eventProperties, eventIdData);\n if (isCustomEvent) {\n window.fbq(\n 'trackCustom',\n eventName,\n eventProperties,\n eventIdData\n );\n return;\n }\n window.fbq(\n 'track',\n eventName,\n eventProperties,\n eventIdData\n );\n};\n\nlet eventsQueue = [];\n\nconst facebookPixelInitialized = () => {\n const { user } = window.store.getState();\n return !!window.fbq && !user.loading;\n};\n\nconst saveEventToQueue = (eventFunc, ...eventParams) => {\n if (!FB_PIXEL_ID) return;\n log(LOG_LEVELS.DEBUG, 'FB', `saving event to queue ${ eventFunc }, params:`, eventParams);\n eventsQueue.push({ eventFunc, params: eventParams });\n};\n\nexport const trackQueuedEvents = () => {\n if (eventsQueue.length === 0) return;\n eventsQueue.forEach((event) => {\n const { eventFunc, params } = event;\n eventFunc(...params);\n });\n eventsQueue = [];\n};\n\nexport const trackEventAddToCardFB = (advisorId, conversionEventId) => {\n if (!facebookPixelInitialized()) {\n saveEventToQueue(trackEventAddToCardFB, advisorId, conversionEventId);\n return;\n }\n const eventName = 'AddToCart';\n const params = {\n [window.FB.AppEvents.ParameterNames.CONTENT_TYPE]: 'product',\n [window.FB.AppEvents.ParameterNames.CONTENT_ID]: advisorId\n };\n const eventIdData = {\n eventID: conversionEventId\n };\n trackFacebookPixelEvent(eventName, params, eventIdData);\n};\n\nexport const trackEventAddToCardActionFB = (advisorId) => () => {\n trackEventAddToCardFB(advisorId);\n};\n\nexport const trackEventViewewContentFB = (advisorId, conversionEventId) => {\n if (!facebookPixelInitialized()) {\n saveEventToQueue(trackEventViewewContentFB, advisorId, conversionEventId);\n return;\n }\n const eventName = 'ViewContent';\n const params = {\n [window.FB.AppEvents.ParameterNames.CONTENT_TYPE]: 'product',\n [window.FB.AppEvents.ParameterNames.CONTENT_ID]: advisorId\n };\n const eventIdData = {\n eventID: conversionEventId\n };\n trackFacebookPixelEvent(eventName, params, eventIdData);\n};\n\nexport const trackPurchaseEventFB = (purchaseBasePrice, purchaseLocalCurrency, conversionEventId) => {\n if (!facebookPixelInitialized()) {\n saveEventToQueue(trackPurchaseEventFB, purchaseBasePrice, purchaseLocalCurrency, conversionEventId);\n return;\n }\n const eventName = 'Purchase';\n const params = {\n value: purchaseBasePrice, /* number */\n currency: purchaseLocalCurrency /* string, http://en.wikipedia.org/wiki/ISO_4217 */\n };\n const eventIdData = {\n eventID: conversionEventId\n };\n trackFacebookPixelEvent(eventName, params, eventIdData);\n};\n\nexport const trackFirstPurchaseEventFB = (price, currency, conversionEventId) => {\n if (!facebookPixelInitialized()) {\n saveEventToQueue(trackFirstPurchaseEventFB, price, currency, conversionEventId);\n return;\n }\n const eventName = 'first purchase';\n const params = {\n [window.FB.AppEvents.ParameterNames.CURRENCY]: currency,\n [window.FB.AppEvents.ParameterNames.NUM_ITEMS]: price\n };\n const eventIdData = {\n eventID: conversionEventId\n };\n trackFacebookPixelEvent(eventName, params, eventIdData, true);\n};\n\nexport const trackPurchaseStartedEventFB = (conversionEventId) => {\n if (!facebookPixelInitialized()) {\n saveEventToQueue(trackFirstPurchaseEventFB, conversionEventId);\n return;\n }\n const eventName = 'InitiateCheckout';\n const params = {};\n\n const eventIdData = {\n eventID: conversionEventId\n };\n trackFacebookPixelEvent(eventName, params, eventIdData);\n};\n\nexport const trackEventRegisterFB = (loginType, conversionEventId) => {\n if (!facebookPixelInitialized()) {\n saveEventToQueue(trackEventRegisterFB, loginType, conversionEventId);\n return;\n }\n const eventName = 'CompleteRegistration';\n const params = {\n value: 0,\n currency: 'USD',\n [window.FB.AppEvents.ParameterNames.REGISTRATION_METHOD]: loginType\n };\n const eventIdData = {\n eventID: conversionEventId\n };\n trackFacebookPixelEvent(eventName, params, eventIdData);\n};\n\nexport const trackEventSpentCreditFB = (price, currency, userId, orderId) => {\n if (!facebookPixelInitialized()) {\n saveEventToQueue(trackEventSpentCreditFB, price, currency);\n return;\n }\n const eventName = 'SpentCredits';\n const eventId = `${ userId }${ orderId }`;\n const params = {\n [window.FB.AppEvents.ParameterNames.CURRENCY]: currency,\n [window.FB.AppEvents.ParameterNames.NUM_ITEMS]: price\n };\n const eventIdData = {\n eventID: eventId\n };\n trackFacebookPixelEvent(eventName, params, eventIdData);\n};\n\nexport const trackEventProfileButtonFB = (conversionEventId) => {\n if (!facebookPixelInitialized()) {\n saveEventToQueue(trackEventProfileButtonFB, conversionEventId);\n return;\n }\n const eventName = 'AchievementUnlocked';\n const params = {};\n const eventIdData = {\n eventID: conversionEventId\n };\n trackFacebookPixelEvent(eventName, params, eventIdData, true);\n};\n","import { loadFavoriteAfvisorsAPI, favoriteAdvisorAPI, unFavoriteAdvisorAPI } from '../config/api';\nimport Const from '../config/const';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { trackBaseFavoriteEventMP } from './analytics';\n\nconst loadedFavoriteAdvisorsAction = advisors => ({\n type: Const.favoriteAdvisors.advisors,\n payload: {\n advisors\n }\n});\n\nconst loadingFavoriteAdvisorsAction = (loading) => ({\n type: Const.favoriteAdvisors.loading,\n loading\n});\n\nconst errorFavoriteAdvisors = error => ({\n type: Const.favoriteAdvisors.error,\n payload: {\n error\n }\n});\n\nconst markFavoriteAction = advisor => ({\n type: Const.favoriteAdvisors.markFavorite,\n payload: {\n advisor\n }\n});\n\nconst markUnFavoriteAction = id => ({\n type: Const.favoriteAdvisors.markUnFavorite,\n payload: {\n id\n }\n});\n\nconst trackFavoriteEventMP = (advisorId, clickSource, dispatch, conversionEventId) => {\n trackBaseFavoriteEventMP(true, advisorId, clickSource, dispatch, conversionEventId);\n};\n\nconst trackUnFavoriteEventMP = (advisorId, clickSource, dispatch) => {\n trackBaseFavoriteEventMP(false, advisorId, clickSource, dispatch);\n};\n\nconst markFavoriteAdvisor = (advisorId, clickSource, dispatch) => {\n favoriteAdvisorAPI(advisorId)\n .then(advisor => {\n const { conversionEventId } = advisor;\n trackFavoriteEventMP(advisorId, clickSource, dispatch, conversionEventId);\n dispatch(markFavoriteAction(advisor));\n dispatch(loadingFavoriteAdvisorsAction(false));\n })\n .catch(error => log(LOG_LEVELS.ERROR, 'Advisors', 'ERROR markFavoriteAdvisor', error));\n};\n\nconst markUnfavoriteAdvisor = (advisorId, clickSource, dispatch) => {\n unFavoriteAdvisorAPI(advisorId)\n .then(() => {\n trackUnFavoriteEventMP(advisorId, clickSource, dispatch);\n dispatch(markUnFavoriteAction(advisorId));\n dispatch(loadingFavoriteAdvisorsAction(false));\n })\n .catch(error => log(LOG_LEVELS.ERROR, 'Advisors', 'ERROR markUnfavoriteAdvisor', error));\n};\n\nexport const loadFavoriteAdvisors = () => dispatch => {\n dispatch(loadingFavoriteAdvisorsAction(true));\n loadFavoriteAfvisorsAPI()\n .then(advisors => {\n dispatch(loadedFavoriteAdvisorsAction(advisors));\n })\n .catch(error => {\n error\n .json()\n .then(jsonError => dispatch(errorFavoriteAdvisors(jsonError)))\n .catch(() => dispatch(errorFavoriteAdvisors({ error: 'Something went wrong' })));\n })\n .catch((error) => log(LOG_LEVELS.ERROR, 'Advisors', 'Error loadFavoriteAdvisors', error));\n};\n\nexport const favoriteAdvisor = (favorite, advisorId, clickSource) => dispatch => {\n dispatch(loadingFavoriteAdvisorsAction(true));\n if (!favorite) {\n markFavoriteAdvisor(advisorId, clickSource, dispatch);\n } else {\n markUnfavoriteAdvisor(advisorId, clickSource, dispatch);\n }\n};\n","/* eslint no-use-before-define: [\"error\", { \"variables\": false }] */\nimport {\n getMessaging, getToken, isSupported, onMessage\n} from 'firebase/messaging';\nimport { sendPNTokenToServerAPI } from '../config/api';\nimport ENV from '../config/variables';\nimport { toCamelCase } from '../../common/config/utils';\nimport Const from '../config/const';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { initFirebaseOrGetFBApp } from './firebase_init';\n\nconst { VAPID_KEY } = ENV;\n\nlet messaging = null;\n\nconst pushNotificationReceived = (notification) => ({\n type: Const.notification.received,\n notification\n});\n\nconst monitorForMessages = (dispatch) => {\n onMessage(messaging, (payload) => {\n const { data } = payload;\n dispatch(pushNotificationReceived(toCamelCase(data)));\n });\n};\n\nconst monitorRefreshToken = () => dispatch => {\n messaging\n .onTokenRefresh(() => {\n dispatch(retriveRegistrationToken());\n })\n .catch(error => {\n log(LOG_LEVELS.ERROR, 'ERROR: retriveRegistrationToken: ', error);\n });\n};\n\nexport const clearPN = () => (dispatch, getState) => {\n const { notification } = getState().pushNotification;\n if (notification) dispatch({ type: Const.notification.clear });\n};\n\nexport const isNotificationSupported = () => 'Notification' in window\n && 'navigator' in window\n && 'serviceWorker' in navigator\n && isSupported();\n\nexport const requestNotificationPermissionAndMakeAction = ({ supportedAction, notSupportedAction }) => {\n if (!isNotificationSupported()) {\n notSupportedAction();\n log(LOG_LEVELS.ERROR, 'Notification', 'This browser does not support desktop notification on requestNotificationPermissionAndMakeAction');\n return;\n }\n\n Notification.requestPermission().then(p => {\n if (p === 'granted') {\n supportedAction();\n log(LOG_LEVELS.INFO, 'Notification', 'requestPermission granted');\n } else {\n notSupportedAction();\n log(LOG_LEVELS.ERROR, 'Notification', 'requestPermission error: Unable to get permission to notify on requestNotificationPermissionAndMakeAction');\n }\n });\n};\n\nconst sendTokenToServer = token => {\n if (!window.currentUserId) return;\n\n sendPNTokenToServerAPI(token)\n .catch(error => log(LOG_LEVELS.ERROR, 'ERROR: sendPNTokenToServerAPI', error));\n};\n\nexport const initFirebaseMessaging = () => {\n if (!isNotificationSupported()) return;\n initFirebaseOrGetFBApp(() => {\n messaging = getMessaging();\n });\n};\n\nconst retriveRegistrationToken = () => (dispatch, getState) => {\n if (!isNotificationSupported()) {\n return;\n }\n\n if (Notification.permission !== 'granted') {\n log(LOG_LEVELS.ERROR, 'Notification', 'Permission is not granted');\n return;\n }\n\n const { user: { user: { webPushToken } } } = getState();\n getToken(messaging, { vapidKey: VAPID_KEY })\n .then(currentToken => {\n log(LOG_LEVELS.INFO, 'FCM TOKEN: ', currentToken);\n if (webPushToken !== currentToken) {\n sendTokenToServer(currentToken);\n }\n })\n .catch(error => {\n log(LOG_LEVELS.ERROR, 'Notification', 'retriveRegistrationToken: Error in FCM Token: ', error);\n });\n monitorForMessages(dispatch);\n monitorRefreshToken();\n};\n\nexport const requestPermission = () => dispatch => {\n if (!isNotificationSupported()) {\n log(LOG_LEVELS.ERROR, 'Notification', 'This browser does not support desktop notification on request permision');\n return;\n }\n\n Notification.requestPermission().then(p => {\n if (p === 'granted') {\n dispatch(retriveRegistrationToken());\n } else {\n log(LOG_LEVELS.ERROR, 'Notification', 'requestPermission error: Unable to get permission to notify.');\n }\n });\n};\n","import {\n getAuth, signInWithCustomToken, signOut\n} from 'firebase/auth';\nimport { getApps } from 'firebase/app';\nimport {\n getDatabase, ref, onValue, off\n} from 'firebase/database';\nimport Const, { liveModeState } from '../config/const';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { initFirebaseOrGetFBApp } from './firebase_init';\n\nconst advisorDataUpdate = ({\n id, liveModes, timeStamp, status\n}) => (dispatch) => {\n dispatch({\n type: Const.advisors.databaseUpdated,\n id,\n liveModes,\n timeStamp,\n status\n });\n};\n\nconst clearDBSubscribedAdvisors = () => (dispatch) => {\n dispatch({\n type: Const.application.clearDBSubscribedAdvisors\n });\n};\n\nconst updateDbSubscribedAdvisors = (advisorId) => (dispatch) => {\n dispatch({\n type: Const.application.dbSubscribedAdvisors,\n advisorId\n });\n};\n\nconst getModeState = (mode) => {\n switch (mode) {\n case 'o':\n return liveModeState.online;\n case 'b':\n return liveModeState.busy;\n default: return liveModeState.offline;\n }\n};\n\nconst getAdvisorState = (modes) => {\n if (modes?.some(m => m.modeState === liveModeState.busy)) return liveModeState.busy;\n if (modes?.some(m => m.modeState === liveModeState.online)) return liveModeState.online;\n return liveModeState.offline;\n};\n\nconst getUpdateAdvisorLiveModes = (mode, updatedProps) => {\n const {\n voiceCallState, chatState, videoCallState\n } = updatedProps;\n switch (mode.mode) {\n case 'chat':\n return {\n modeState: getModeState(chatState)\n // price: cp\n };\n case 'voice':\n return {\n modeState: getModeState(voiceCallState)\n // price: ap\n };\n case 'video':\n return {\n modeState: getModeState(videoCallState)\n // price: vp\n };\n default: return null;\n }\n};\n\nconst onDataUpdate = (advisor) => (dispatch, getState) => {\n const database = getDatabase();\n const advisorRef = ref(database, `advisors/${ advisor.id }`);\n onValue(advisorRef, (snapshot) => {\n const { liveModes, timeStamp } = getState().advisors[advisor.id] || {};\n const data = snapshot.val();\n if (data) {\n const parsedData = {\n chatState: data.c, voiceCallState: data.a, videoCallState: data.v, timeStamp: data.t\n };\n if (!timeStamp || parsedData.timeStamp > timeStamp) {\n const updatedAdvisorLiveModes = liveModes?.map((mode) => ({ ...mode, ...getUpdateAdvisorLiveModes(mode, parsedData) }));\n dispatch(advisorDataUpdate({\n id:advisor.id, liveModes: updatedAdvisorLiveModes, timeStamp: parsedData.timeStamp, status: getAdvisorState(updatedAdvisorLiveModes)\n }));\n }\n } else {\n dispatch(advisorDataUpdate({\n id:advisor.id,\n liveModes: liveModes?.map((mode) => ({ ...mode, modeState: liveModeState.offline })),\n status: liveModeState.offline\n }));\n }\n }, (error) => { log(LOG_LEVELS.ERROR, 'Firebase Realtime Database', 'Error onAdvisorDBDataUpdate', error); });\n};\n\nexport const subscribeAdvisorsToDB = (advisorsArray) => (dispatch, getState) => {\n initFirebaseOrGetFBApp((app) => {\n const { currentUser } = getAuth(app);\n if (!currentUser) return;\n const { dbSubscribedAdvisors } = getState().application;\n advisorsArray?.forEach((advisor) => {\n if (!dbSubscribedAdvisors?.includes(advisor.id)) {\n dispatch(updateDbSubscribedAdvisors(advisor.id));\n dispatch(onDataUpdate(advisor));\n }\n });\n });\n};\n\nexport const initFirebaseDatabase = (user) => (dispatch) => {\n initFirebaseOrGetFBApp((app) => {\n const auth = getAuth(app);\n const { advisors } = window.store.getState();\n const advisorsArray = Object.keys(advisors).map((k) => advisors[k]);\n const token = user?.realtimeUpdatesAuthToken;\n signInWithCustomToken(auth, token)\n .then(() => { dispatch(subscribeAdvisorsToDB(advisorsArray)); })\n .catch((error) => { log(LOG_LEVELS.ERROR, 'Firebase Realtime Database', 'Error initFirebaseDatabase', error); });\n });\n};\n\nexport const signOutFromFBDatabase = () => (dispatch, getState) => {\n const { application: { dbSubscribedAdvisors } } = getState();\n if (!getApps().length) return;\n const auth = getAuth();\n signOut(auth).then(() => {\n if (dbSubscribedAdvisors.length > 0) {\n const database = getDatabase();\n dbSubscribedAdvisors?.forEach(advId => off(ref(database, `advisors/${ advId }`)));\n dispatch(clearDBSubscribedAdvisors());\n }\n }).catch((error) => { log(LOG_LEVELS.ERROR, 'Firebase Realtime Database', 'Error signOutFromFBDatabase', error); });\n};\n","import { getCreditsAPI } from '../config/api';\nimport Const from '../config/const';\nimport { purchaseDetailsTypes } from '../../common/config/const';\nimport { doneManagingPaymentSource } from './payment_sources';\nimport { changingPaymentSource, updatePurchaseDetails, clearPurchaseDetails } from './purchase_details';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\n\nconst fundsLoading = () => ({\n type: Const.funds.loading\n});\n\nconst fundsLoadingError = error => ({\n type: Const.funds.error,\n payload: {\n error\n }\n});\n\nconst fundsSuccess = credits => ({\n type: Const.funds.credits,\n payload: {\n credits\n }\n});\n\nexport const getFunds = () => (dispatch) => {\n dispatch(fundsLoading());\n getCreditsAPI()\n .then(({ products }) => {\n dispatch(fundsSuccess(products));\n })\n .catch(error => {\n error\n .json()\n .then(errorModel => {\n dispatch(fundsLoadingError(errorModel));\n })\n .catch(() => {\n dispatch(fundsLoadingError(error));\n });\n })\n .catch((error) => {\n log(LOG_LEVELS.ERROR, 'Funds', 'Error getFunds', error);\n dispatch(fundsLoadingError(error));\n });\n};\n\nconst showPaymentDetails = (show) => ({\n type: Const.funds.displayDetails,\n display: show\n});\n\nexport const paymentSelected = (details) => (dispatch) => {\n dispatch(showPaymentDetails(true));\n dispatch(updatePurchaseDetails({\n details,\n clickSource: 'credit screen',\n purchaseType: purchaseDetailsTypes.SIDE_MENU\n }));\n};\n\nexport const hidePaymentDetails = () => (dispatch) => {\n dispatch(showPaymentDetails(false));\n // dispatch(doneEditingPaymentSource());\n dispatch(doneManagingPaymentSource());\n dispatch(changingPaymentSource(false));\n dispatch(clearPurchaseDetails());\n};\n\nexport const purchaseSuccess = () => (dispatch) => {\n dispatch(showPaymentDetails(false));\n dispatch(getFunds());\n};\n","import Const from '../config/const';\n\nexport const linkType = {\n videoNotSupported: 'video_not_supported',\n voiceNotSupported: 'voice_not_supported',\n notificationNotSupported: 'notification_not_supported',\n none: 'none'\n};\n\nexport const dissmissPopup = () => dispatch => {\n dispatch({\n type: Const.generalPopup.hide\n });\n};\n\nexport const showGeneralPopup = (title, link = linkType.none) => dispatch => {\n dispatch({\n type: Const.generalPopup.show,\n title,\n link\n });\n};\n\nexport const setChatPopupRightItem = (item) => dispatch => {\n dispatch({\n type: Const.generalPopup.setRightCustomItem,\n item\n });\n};\n\nexport const clearChatPopupRightItem = () => dispatch => {\n dispatch({\n type: Const.generalPopup.clearRightCustomItem\n });\n};\n\nexport const updateChatPopupBackAction = (action) => dispatch => {\n dispatch({\n type: Const.generalPopup.updateBackAction,\n action\n });\n};\n\nexport const cleanUpdatedBackAction = () => dispatch => {\n dispatch({\n type: Const.generalPopup.clearBackAction\n });\n};\n","import Const from '../config/const';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { toCamelCase } from '../../common/config/utils';\nimport { isPrerenderMode } from '../config/util';\nimport { getBaseSuperProperties, getBaseProfileProperties } from './mixpanel_properties';\n\nlet eventsQueue = [];\n\nconst eventsWaitingOptimoveInit = ['session began', 'page visit'];\n\nconst saveEventToQueue = (eventName, eventParams) => {\n log(LOG_LEVELS.INFO, 'Optimove', `saving event to queue ${ eventName }, params:`, eventParams);\n eventsQueue.push({ eventName, params: eventParams });\n};\n\nexport const trackQueuedOptimoveEvents = () => {\n if (eventsQueue.length === 0) return;\n eventsQueue.forEach((event) => {\n const { eventName, params } = event;\n window.dataLayer.push({\n event: eventName,\n ...params\n });\n });\n eventsQueue = [];\n};\n\nexport const trackGTMEvent = (eventName, eventProperties) => {\n if (isPrerenderMode()) return;\n window.dataLayer = window.dataLayer || [];\n if (isPrerenderMode()) return;\n if ((!window.optimoveSDK || window.optimoveSDK === undefined) && eventsWaitingOptimoveInit.includes(eventName)) {\n saveEventToQueue(eventName, eventProperties);\n } else {\n const logEventProperties = { ...eventProperties };\n log(LOG_LEVELS.INFO, 'GTM', `track event: ${ eventName }`);\n log(LOG_LEVELS.DEBUG, 'GTM', 'eventProperties', logEventProperties);\n window.dataLayer.push({\n event: eventName,\n ...eventProperties\n });\n }\n};\n\nexport const trackFirstPurchaseEventGtm = (params) => {\n trackGTMEvent('first purchase', params);\n};\n\nexport const trackChatEndedEventGTM = (chatType, params) => {\n let chatName = '';\n switch (chatType) {\n case Const.chatType.text:\n chatName = 'chat';\n break;\n case Const.chatType.voice:\n chatName = 'voice';\n break;\n case Const.chatType.video:\n chatName = 'vc';\n break;\n default:\n break;\n }\n const eventName = `${ chatName } ended`;\n const { user: { user } } = window.store.getState();\n const eventProps = {\n ...params,\n ...toCamelCase(getBaseSuperProperties({ user })),\n ...toCamelCase(getBaseProfileProperties())\n };\n trackGTMEvent(eventName, eventProps);\n};\n\nexport const trackFirstVisitEventGtm = () => {\n trackGTMEvent('first visit');\n};\n","import React from 'react';\nimport { getHomePage } from '../config/api';\nimport Const, { socialLinks, downloadLink } from '../config/const';\nimport { sectionIds as allSectionIds } from '../components/home_page/prop_types';\nimport { refreshReducersFromResponse } from '../config/api_functions';\nimport { getAppName } from '../../common/config/utils';\nimport { appRoutes } from '../config/app_routes';\nimport { isPrerenderMode } from '../config/util';\nimport i18n from '../config/i18n';\n\nexport const itemProp = {\n itemScope: 'itemscope',\n itemType: 'https://schema.org/WebSite',\n meta: {\n name: <meta key=\"name\" itemProp=\"name\" content={ getAppName() } />,\n url: <meta key=\"url\" itemProp=\"url\" content={ `${ window.location.href }` } suppressHydrationWarning />,\n sameAs1: <meta key=\"sameAs1\" itemProp=\"sameAs\" content={ downloadLink.appleItune } />,\n sameAs2: <meta key=\"sameAs2\" itemProp=\"sameAs\" content={ downloadLink.googlePlay } />,\n sameAs3: <meta key=\"sameAs3\" itemProp=\"sameAs\" content={ socialLinks.ig } />,\n sameAs4: <meta key=\"sameAs4\" itemProp=\"sameAs\" content={ socialLinks.fb } />,\n description: <meta key=\"description\" itemProp=\"description\" content=\"Live Psychic readings on love, romance, money, and more! Unlock life secrets by connecting with some of the highest rated advisors in the world!\" />,\n link: <link key=\"link\" itemProp=\"mainEntityOfPage\" href={ window.location.href } suppressHydrationWarning />\n },\n image: {\n itemScope: 'itemscope',\n itemType: 'https://schema.org/ImageObject',\n imageItemProp: 'image',\n imageContentUrl: 'url',\n meta: {\n width: <meta key=\"width\" itemProp=\"width\" content=\"60\" />,\n height: <meta key=\"height\" itemProp=\"height\" content=\"600\" />\n }\n },\n search: {\n itemProp: 'potentialAction',\n itemScope: 'itemscope',\n itemType: 'https://schema.org/SearchAction',\n input: { itemProp: 'query-input', name: 'search_term_string', required: true },\n meta: {\n target: <meta key=\"target\" itemProp=\"target\" content={ `${ window.location.origin }${ i18n.t(appRoutes.psychics) }?q={search_term_string}` } suppressHydrationWarning />\n }\n }\n};\n\nconst homeLoading = () => ({\n type: Const.homePage.loading\n});\n\nconst sectionsloadingHomeLoading = (sectionsIds) => ({\n type: Const.homePage.sectionsloading,\n sectionsIds\n});\n\nconst homeError = (error) => ({\n type: Const.homePage.error,\n error\n});\n\nconst homeLoaded = (sections, fullReload) => ({\n type: Const.homePage.loaded,\n fullReload,\n sections\n});\n\nconst getUpdatedSections = (sections, param) => {\n const sectionIds = [];\n if (!sections) return sectionIds;\n sections.forEach((s) => {\n if ((s || {}).refresh) {\n sectionIds.push(s.id);\n }\n if (param && param.section_ids.includes(s.id)) {\n sectionIds.push(s.id);\n }\n if (s.id === 'sales_banner' && !!s.content) {\n sectionIds.push(s.id);\n }\n });\n return sectionIds;\n};\n\nconst buildQueryString = (sections, param) => {\n const sectionIds = getUpdatedSections(sections, param);\n return sectionIds.length === 0 ? null : { section_ids:sectionIds.join() };\n};\n\nconst getHomePageParams = (fullReload, homePage, param) => {\n if (fullReload) return null;\n return buildQueryString((homePage || {}).sections, param);\n};\n\nconst homePageLoadingAction = (fullReload, homePage, param, dispatch) => {\n if (fullReload) {\n dispatch(homeLoading());\n } else {\n const sectionsIds = getUpdatedSections((homePage || {}).sections, param);\n dispatch(sectionsloadingHomeLoading(sectionsIds));\n }\n};\n\nconst loadedSalesBannerAction = salesBanner => ({\n type: Const.homePage.salesBanner,\n payload: {\n salesBanner\n }\n});\n\nconst saveAdvisorsFromSections = (sections) => {\n const sectionsWithAdvisors = sections.filter((s) => s?.content?.advisors);\n let advisors = [];\n sectionsWithAdvisors.forEach((s) => {\n advisors = [...advisors, ...s.content.advisors];\n });\n refreshReducersFromResponse({ advisors });\n};\n\nconst cleanAdvisorsArray = (advisors) => (\n Array.from(new Set(advisors.map(a => a.id))).map(id => (\n advisors.find(a => a.id === id)\n ))\n);\n\nexport const homeLoadedActions = (sections, fullReload) => (dispatch) => {\n dispatch(homeLoaded(sections, fullReload));\n saveAdvisorsFromSections(sections);\n};\n\nconst updateSalesBannerIfNeed = (sections, dispatch) => {\n const salesBanner = sections.find(\n (section) => section && section.id === allSectionIds.salesBanner\n );\n if (salesBanner) {\n dispatch(loadedSalesBannerAction(salesBanner));\n }\n};\n\nconst saveAllAdvisorsListSection = (res, fullReload, param, dispatch, getState) => {\n if (param.section_ids && param.page) {\n let allAdvisorsListSection = res.sections.find((section) => section.id === allSectionIds.allAdvisorsList);\n if (!allAdvisorsListSection) return;\n let lastPageNum = param.page + 2;\n const newAdvisors = allAdvisorsListSection?.content?.advisors;\n if (newAdvisors.length < 16) lastPageNum = param.page;\n const { homePage } = getState();\n const prevAdvisors = homePage?.sections.find((section) => section.id === allSectionIds.allAdvisorsList)?.content?.advisors;\n const advisors = cleanAdvisorsArray([...prevAdvisors, ...newAdvisors]);\n const advisorsSliceCounter = (4 + (param.page - 1) * 16);\n allAdvisorsListSection = [{\n ...allAdvisorsListSection, content: { advisors: advisors.slice(0, advisorsSliceCounter) }, page: param.page, lastPageNum\n }];\n dispatch(homeLoadedActions(allAdvisorsListSection, fullReload));\n }\n};\n\nexport const loadHomePage = (fullReload, param) => (dispatch, getState) => {\n if (isPrerenderMode()) return;\n const { homePage } = getState();\n const sectionsLoaded = ((homePage || {}).sections || {}).length > 0;\n const params = getHomePageParams(fullReload, homePage, param);\n\n if (sectionsLoaded && !params && !fullReload) return;\n homePageLoadingAction(fullReload, homePage, param, dispatch);\n getHomePage(param || params).then((res) => {\n if (param) {\n const { sections } = res;\n updateSalesBannerIfNeed(sections, dispatch);\n saveAllAdvisorsListSection(res, fullReload, param, dispatch, getState);\n } else {\n const sections = res.sections.filter((section) => section !== null);\n dispatch(homeLoadedActions(sections, fullReload));\n updateSalesBannerIfNeed(sections, dispatch);\n }\n }).catch((e) => {\n dispatch(homeError(e));\n });\n};\n","import 'navigator.locks';\nimport env from '../config/variables';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport {\n paramOrNul, getData, calculateDifference, getDateFromServerUTC\n} from '../../common/config/utils';\nimport { getCurrentLocalization } from '../config/i18n';\nimport { isPrerenderMode } from '../config/util';\n\nconst { HOTJAR_ID, BACKEND_VERSION, NEED_TRACKING_HOTJAR } = env;\n\nconst getAttribution = () => (window.attribution || {}).mixpanel;\n\nlet hotJarInitialized;\nlet hotjarInstance;\n\nconst getHotjarInstance = (callback) => {\n navigator.locks.request('hotjarInstance', async () => {\n if (!hotjarInstance) {\n const { hotjar } = await import('react-hotjar');\n hotjarInstance = hotjar;\n }\n callback(hotjarInstance);\n });\n};\n\nexport const getUserAttributes = ({ user }) => {\n const language = getCurrentLocalization();\n const date = getDateFromServerUTC();\n let baseAttributes = {\n 'day of week': getData({ date, type: 'day' }),\n 'hour of day': getData({ date, type: 'hours' }),\n year: getData({ date, type: 'year' }),\n month: getData({ date, type: 'month' }),\n 'year-month': `${ getData({ date, type: 'year' }) }-${ getData({ date, type: 'month' }) }`,\n ...paramOrNul('language', language)\n };\n\n if (user && Object.keys(user).length !== 0) {\n const baseUserAttributes = {\n 'user type': 'client',\n 'credit balance': parseFloat(user.clientAvailableCredit),\n 'total purchased': parseFloat(user.totalPurchased),\n 'total purchase fees paid': parseFloat(user.totalPurchaseFeesPaid),\n 'purchases count': user.purchasesCount,\n ...paramOrNul('last purchase date', user.lastPurchaseDate),\n email: user.email,\n 'login type': user.loginType,\n ...paramOrNul('gender', user.gender),\n ...paramOrNul('age', calculateDifference({ date1: date, date2: user.dateOfBirth, type: 'years' })),\n ...paramOrNul('install date', user.installDate),\n 'days from install': calculateDifference({ date1: date, date2: user.installDate, type: 'days' }),\n 'signup date': user.createdAt,\n 'days from signup': calculateDifference({ date1: date, date2: user.createdAt, type: 'days' }),\n 'backend version': parseInt(BACKEND_VERSION, 10),\n ...paramOrNul('paypal total charged', user.paypalTotalCharged),\n ...paramOrNul('credit card total charged', user.creditCardTotalCharged),\n ...getAttribution()\n };\n baseAttributes = { ...baseAttributes, ...baseUserAttributes };\n } else {\n baseAttributes['user type'] = 'anonymous';\n }\n return baseAttributes;\n};\n\nexport const hotJarInitialize = () => {\n if (!NEED_TRACKING_HOTJAR) return;\n if (isPrerenderMode()) return;\n getHotjarInstance((hotjar) => {\n hotjar.initialize(HOTJAR_ID);\n hotJarInitialized = true;\n log(LOG_LEVELS.INFO, 'Hotjar', 'initialize');\n });\n};\n\nexport const hotJarIdentifyUser = ({ user }) => {\n getHotjarInstance((hotjar) => {\n if (!hotJarInitialized) return;\n const userAttributes = getUserAttributes({ user });\n hotjar.identify(`${ user.id }`, { ...userAttributes });\n log(LOG_LEVELS.INFO, 'Hotjar', 'identifyUser', user.id, userAttributes);\n });\n};\n\nexport const hotJarReset = () => {\n getHotjarInstance((hotjar) => {\n if (!hotJarInitialized) return;\n const userAttributes = getUserAttributes({});\n hotjar.identify(null, { ...userAttributes });\n log(LOG_LEVELS.INFO, 'Hotjar', 'reset', userAttributes);\n });\n};\n","import 'navigator.locks';\nimport { getUA } from 'react-device-detect';\nimport env from '../config/variables';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { updateUser, userMPIdentify } from './user';\nimport { saveDataToStorage, getDataFromStorage, isPrerenderMode } from '../config/util';\nimport {\n fromMobileApp, removeEmptyValueInObject, getDateFromServer, toLowerCaseSpaced\n} from '../../common/config/utils';\nimport { trackGTMEvent } from './google_tag_mahager_events';\nimport { getBaseSuperProperties, getBaseProfileProperties } from './mixpanel_properties';\nimport { getDiscountPercent } from '../project_items/coupon_items/coupon_utils';\n\nconst {\n MP_TOKEN, REPORT_SESSION_BEGAN, SESSION_BEGAN_TIMER\n} = env;\n\nlet mpConfigured = false;\nlet sessionBeganTracked = false;\nlet identifyId = 0;\nlet mixpanelInstance;\n\nexport const getMixpanelInstance = (callback) => {\n navigator.locks.request('mixpanelInstance', async () => {\n if (!mixpanelInstance) {\n mixpanelInstance = await import('mixpanel-browser').then(module => module.default);\n }\n callback(mixpanelInstance);\n });\n};\n\nconst trackGTMWithSuperProperties = (getState) => {\n const { user: { user } } = getState();\n const baseSuperProperties = getBaseSuperProperties({ user });\n return baseSuperProperties;\n};\n\nconst trackPeopleProperties = (getState) => {\n if (!mpConfigured || !window.currentUserId) return;\n // This is not needed because according to MP documentation\n // MP doesn't creat profile on MP if identify was not called,\n // only stores the profile locally\n // if (identify === 0) return;\n const { user } = getState().user || {};\n if (user && user.id) {\n const baseProfileProperties = getBaseProfileProperties();\n getMixpanelInstance((mixpanel) => {\n mixpanel.people.set(baseProfileProperties);\n });\n }\n};\n\nexport const trackPeoplePropertiesAction = () => (dispatch, getState) => {\n trackPeopleProperties(getState);\n};\n\nconst trackSuperProperties = (getState) => {\n const { user: { user } } = getState();\n getMixpanelInstance((mixpanel) => {\n log(LOG_LEVELS.INFO, 'Mixpanel', 'Super properties are being tracked');\n const baseSuperProperties = getBaseSuperProperties({ user, mixpanel });\n log(LOG_LEVELS.DEBUG, 'Mixpanel', 'baseSuperProperties!!', baseSuperProperties);\n mixpanel.register(baseSuperProperties);\n });\n};\n\nconst handleTimedAnalytics = (getState) => {\n // MAP every timedAnalytics inside user.\n // In case different items of timedAnalytics will have same array - we are merging them\n const { user: { user } } = getState();\n const timedAnalyticsProps = {};\n if (user?.analyticsObject?.timedAnalytics?.length > 0) {\n const { analyticsObject: { timedAnalytics } } = user;\n\n timedAnalytics.forEach(timedAnalytic => {\n const { analytics, expiresAt } = timedAnalytic;\n if (new Date(expiresAt) > getDateFromServer()) {\n Object.keys(analytics).forEach((key) => {\n if (Array.isArray(analytics[key]) && !!timedAnalyticsProps[key]) {\n timedAnalyticsProps[key] = Array.isArray(timedAnalyticsProps[key])\n ? [...timedAnalyticsProps[key], ...analytics[key]] : [timedAnalyticsProps[key], ...analytics[key]];\n return;\n }\n timedAnalyticsProps[key] = analytics[key];\n });\n }\n });\n }\n return toLowerCaseSpaced(timedAnalyticsProps);\n};\n\nconst turnArrayToStringForAnalyticsObject = (object) => {\n const updatedAnalyticsObject = {};\n Object.keys(object).forEach((key) => {\n if (Array.isArray(object[key])) {\n updatedAnalyticsObject[key] = object[key].join(', ');\n } else {\n updatedAnalyticsObject[key] = object[key];\n }\n });\n return updatedAnalyticsObject;\n};\n\nconst getUserAnalytics = (user, anonymousUser) => (user?.user ? toLowerCaseSpaced(user.user.analytics) : toLowerCaseSpaced(anonymousUser?.analytics));\n\nconst getActiveAdvisorDiscount = ({ eventProperties, getState }) => { // if user have coupon with this advisor\n const { advisors } = getState();\n if (!eventProperties) return {};\n const advisorId = eventProperties['advisor id'];\n const advisor = advisors[advisorId];\n const discountCouponId = advisor?.discountOffer?.discountCouponId;\n if (!advisor || !discountCouponId) return {};\n return { 'active advisor discount': `${ getDiscountPercent({ discountCouponId }) }%` };\n};\n\nexport const trackEvent = (eventName, eventProperties) => (dispatch, getState) => {\n if (isPrerenderMode()) return;\n if (!mpConfigured) return;\n if (isPrerenderMode()) return;\n const { user } = window.store.getState();\n const { application: { anonymousUser } } = getState();\n if (user && user.impersonated) return;\n\n const mergedEventProperties = {\n ...eventProperties, ...handleTimedAnalytics(getState), ...getUserAnalytics(user, anonymousUser), ...getActiveAdvisorDiscount({ eventProperties, getState })\n };\n const logEventProperties = { ...mergedEventProperties };\n log(LOG_LEVELS.INFO, 'Mixpanel', `track event: ${ eventName }`);\n log(LOG_LEVELS.DEBUG, 'Mixpanel', 'eventProperties', logEventProperties);\n trackPeopleProperties(getState);\n trackSuperProperties(getState);\n getMixpanelInstance((mixpanel) => {\n mixpanel.track(eventName, { ...mergedEventProperties });\n trackGTMEvent(eventName, { ...turnArrayToStringForAnalyticsObject(mergedEventProperties), ...trackGTMWithSuperProperties(getState) });\n });\n};\n\nexport const resetMP = () => {\n identifyId = 0;\n getMixpanelInstance((mixpanel) => {\n mixpanel.reset();\n });\n};\n\nexport const updateLastHit = () => {\n if (!mpConfigured || !sessionBeganTracked) return;\n saveDataToStorage('LAST_HIT', new Date());\n};\n\nconst ignoreBySessionParamLogic = () => {\n if (REPORT_SESSION_BEGAN === 'none') return true;\n if (REPORT_SESSION_BEGAN === 'user' && !window.currentUserId) return true;\n if (REPORT_SESSION_BEGAN === 'attributed'\n && (window.attribution.mixpanel.media_status === 'Organic'\n || window.currentUserId === undefined)) return true;\n return false;\n};\n\nconst ignoreTrackSessionBeganEvent = (lastHit, lastHitSec) => {\n if (getUA.includes('HeadlessChrome') || fromMobileApp) return true;\n if (lastHit && lastHitSec / 60 < parseInt(SESSION_BEGAN_TIMER, 10)) return true;\n return ignoreBySessionParamLogic();\n};\n\nconst trackSessionBeganEvent = () => (dispatch) => {\n sessionBeganTracked = true;\n const lastHit = getDataFromStorage('LAST_HIT');\n const lastHitSec = (new Date() - new Date(lastHit)) / 1000;\n if (ignoreTrackSessionBeganEvent(lastHit, lastHitSec)) return;\n const sessionCount = parseInt(getDataFromStorage('BROWSER_SESSIONS'), 10) || 0;\n dispatch(trackEvent('session began', {\n 'sessions count': sessionCount,\n 'time from last session': parseInt(lastHitSec, 10)\n }));\n saveDataToStorage('BROWSER_SESSIONS', sessionCount + 1);\n updateLastHit();\n};\n\nconst addMPAttributions = () => {\n if (window.attribution && window.attribution.mixpanel) {\n getMixpanelInstance((mixpanel) => {\n mixpanel.register(removeEmptyValueInObject(window.attribution.mixpanel));\n });\n }\n};\n\nconst resetMPIfNeed = () => {\n getMixpanelInstance((mixpanel) => {\n if (!window.currentUserId && mixpanel.get_property('user id')) resetMP();\n if (window.currentUserId && mixpanel.get_property('user id') && window.currentUserId !== mixpanel.get_property('user id')) resetMP();\n });\n};\n\nexport const configureMP = () => (dispatch) => {\n if (isPrerenderMode()) return;\n if (mpConfigured) return;\n getMixpanelInstance((mixpanel) => {\n mixpanel.init(MP_TOKEN, { loaded: resetMPIfNeed });\n });\n addMPAttributions();\n mpConfigured = true;\n if (!window.currentUserId) {\n dispatch(trackSessionBeganEvent());\n }\n};\n\nconst identify = (id) => {\n getMixpanelInstance((mixpanel) => {\n identifyId = id;\n mixpanel.identify(id);\n });\n};\n\nconst registerUser = (id) => {\n getMixpanelInstance((mixpanel) => {\n if (!mpConfigured) return;\n identifyId = id;\n mixpanel.alias(id);\n });\n};\n\nexport const identifyOrAliasUserOnMP = (user) => (dispatch, getState) => {\n const mpUser = user || getState().user;\n const { user: { id, mixpanelAliasCreated } } = mpUser;\n if (!mpConfigured || id === identifyId) return;\n if (mixpanelAliasCreated) {\n log(LOG_LEVELS.INFO, 'Mixpanel', 'identify');\n identify(id);\n dispatch(userMPIdentify());\n dispatch(trackSessionBeganEvent());\n return;\n }\n log(LOG_LEVELS.INFO, 'Mixpanel', 'registerUser');\n registerUser(id);\n dispatch(updateUser({ mixpanelAliasCreated: true }));\n dispatch(userMPIdentify());\n};\n\n// should be removed later:\nexport const checkActivePromoTypeProperty = (user) => {\n const { activePromoType, activePromoName } = user.analytics || {};\n\n getMixpanelInstance((mixpanel) => {\n // unset or reset active promo type property if need\n if (mixpanel.get_property('active promo type') && !activePromoType) {\n mixpanel.unregister('active promo type');\n }\n\n // unset or reset active promo name property if need\n if (mixpanel.get_property('active promo name') && !activePromoName) {\n mixpanel.unregister('active promo name');\n }\n });\n};\n","import Const from '../config/const';\nimport Debouncer from '../config/debouncer';\nimport { loadMyOrdersAPI } from '../config/api';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { clearPN } from './firebase_messaging';\n\nconst debouncer = new Debouncer();\n\nconst loadingMyOrders = () => ({\n type: Const.myOrders.loading\n});\n\nconst loadedMyOrders = (orders, initialLoad) => ({\n type: Const.myOrders.loaded,\n orders,\n initialLoad\n});\n\nconst loadMyOrderList = (page) => (dispatch, getState) => {\n dispatch(loadingMyOrders());\n dispatch(clearPN()); // need for clear notification bage\n const paginationParams = page === 0 ? null : {\n ...getState().myOrders.myOrders.paginationParams\n };\n loadMyOrdersAPI(paginationParams).then(orders => {\n dispatch(loadedMyOrders(orders, !paginationParams));\n })\n .catch((error) => log(LOG_LEVELS.ERROR, 'MyOrders', 'Error loadMyOrdersAPI', error));\n};\n\nexport const loadMyOrders = (page) => (dispatch) => {\n debouncer.loadWithDebounce(() => {\n dispatch(loadMyOrderList(page));\n });\n};\n","import Const from '../config/const';\nimport { parseAndTrackAnalyticEvents } from './analytics';\nimport { createNotifyMeAPI, deleteNotifyMeAPI } from '../config/api';\nimport { loadAdvisor } from './advisors';\nimport { toCamelCase } from '../../common/config/utils';\nimport { getAdvisorSlug } from '../project_items/helper_functions';\n\nconst createProgressAction = () => ({\n type: Const.notifyMe.progress\n});\n\nconst createErrorAction = error => ({\n type: Const.notifyMe.error,\n payload: {\n error\n }\n});\n\nconst createSuccessAction = advisor => ({\n type: Const.notifyMe.success,\n payload: {\n advisor\n }\n});\n\nconst trackNotifyMeEvents = ({ notifyMeParams, analyticEvents }) => {\n const { clickSource } = notifyMeParams;\n parseAndTrackAnalyticEvents(analyticEvents, { 'click source': clickSource });\n};\n\nconst responseHandler = (promise, notifyMeParams, dispatch) => {\n promise\n .then((res) => {\n const { advisor, analyticEvents } = res;\n trackNotifyMeEvents({ notifyMeParams, analyticEvents });\n dispatch(createSuccessAction(advisor));\n })\n .catch(error => {\n error\n .json()\n .then(jsonError => {\n dispatch(createErrorAction(toCamelCase(jsonError)));\n })\n .catch(e => {\n dispatch(createErrorAction(e));\n });\n });\n};\n\nexport const notifyMeAction = ({ notifyMeParams }) => (dispatch) => {\n const { notifyMeSwitchValue, advisorId, additionParams } = notifyMeParams;\n dispatch(createProgressAction());\n if (notifyMeSwitchValue) {\n responseHandler(createNotifyMeAPI(advisorId, additionParams), notifyMeParams, dispatch);\n } else {\n responseHandler(deleteNotifyMeAPI(advisorId), notifyMeParams, dispatch);\n }\n};\n\nconst getNotifyMeData = advisorId => (dispatch) => {\n if (advisorId) {\n dispatch(loadAdvisor(getAdvisorSlug({ advisorId })));\n }\n};\n\nexport const clearLocalState = () => ({\n type: Const.notifyMe.clear\n});\n\nconst displayNotifyMeAction = (shouldDisplay, advisorId, clickSource) => ({\n type: Const.notifyMe.displayNotifyMe,\n shouldDisplay,\n advisorId,\n clickSource\n});\n\nexport const displayNotifyMe = (shouldDisplay, advisorId, clickSource, needToLoadAdv = true) => (dispatch) => {\n if (advisorId && needToLoadAdv) {\n dispatch(getNotifyMeData(advisorId));\n }\n dispatch(displayNotifyMeAction(shouldDisplay, advisorId, clickSource));\n};\n","import Const from '../config/const';\nimport { trackEventDeleteOrder, parseAndTrackAnalyticEvents } from './analytics';\nimport {\n loadOrderDetailsAPI,\n sendOrderReviewAPI,\n deleteOrderAPI,\n sendOrderMessageAPI\n} from '../config/api';\nimport { advisorOrdersDelete } from './advisor_orders';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { toCamelCase } from '../../common/config/utils';\n\nconst loadingOrderDetails = () => ({\n type: Const.orderDetails.loading\n});\n\nconst loadedOrderDetails = (orderDetails) => ({\n type: Const.orderDetails.loaded,\n orderDetails\n});\n\nconst sendedOrderReview = (orderDetails) => ({\n type: Const.orderDetails.sendedOrderReview,\n orderDetails\n});\n\nconst sendOrderReviewError = (error) => ({\n type: Const.orderDetails.sendedOrderReviewError,\n error\n});\n\nexport const sendedOrderReviewClearError = () => ({\n type: Const.orderDetails.sendedOrderReviewClearError\n});\n\nexport const loadOrderDetails = (orderId) => (dispatch) => {\n dispatch(loadingOrderDetails());\n loadOrderDetailsAPI(orderId)\n .then((orderDetails) => {\n dispatch(loadedOrderDetails(orderDetails));\n })\n .catch((error) => log(LOG_LEVELS.ERROR, 'Order', 'Error loadOrderDetails', error));\n};\n\nexport const sendOrderReview = (orderId, feedback, feedbackData) => (dispatch) => {\n dispatch(loadingOrderDetails());\n sendOrderReviewAPI(feedback, orderId).then((payload) => {\n parseAndTrackAnalyticEvents(payload.analyticEvents, feedbackData);\n dispatch(sendedOrderReview(payload));\n })\n .catch((error) => {\n error.json()\n .then(jsonError => {\n log(LOG_LEVELS.ERROR, 'Order', 'Error sendOrderReviewAPI', toCamelCase(jsonError));\n dispatch(sendOrderReviewError(toCamelCase(jsonError).fullMessages[0]));\n })\n .catch(() => {\n log(LOG_LEVELS.ERROR, 'Order', 'Error sendOrderReviewAPI', error);\n dispatch(sendOrderReviewError(error.statusText));\n });\n });\n};\n\nexport const deleteOrder = (order) => (dispatch) => {\n const { id } = order;\n dispatch(loadingOrderDetails());\n deleteOrderAPI(id).then(orderDetails => {\n dispatch(trackEventDeleteOrder(order));\n dispatch(advisorOrdersDelete(id));\n dispatch(loadedOrderDetails(orderDetails));\n })\n .catch((error) => log(LOG_LEVELS.ERROR, 'Order', 'Error deleteOrderAPI', error));\n};\n\nexport const sendOrderMessage = (orderId, authorName, text, onComplete) => (dispatch) => {\n dispatch(loadingOrderDetails());\n sendOrderMessageAPI(orderId, authorName, text)\n .then(() => {\n dispatch(loadOrderDetails(orderId));\n onComplete();\n })\n .catch((error) => log(LOG_LEVELS.ERROR, 'Order', 'Error sendOrderMessageAPI', error));\n};\n\nexport const clearOrderDetails = () => (dispatch) => {\n dispatch(({ type: Const.orderDetails.clear }));\n};\n","import {\n loadPaymentOptionsApi\n} from '../config/api';\nimport Const from '../config/const';\nimport { trackEvent } from './mixpanel';\nimport {\n clickSourceOrMobileClickSource, paramOrNul, noPaymentMethodsEventData, withCaptcha\n} from '../../common/config/utils';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { checkIfCanMakeApplePayPayments } from './purchase_details';\nimport { getPayAsYouGoUsedProperty } from '../config/util';\n\nconst kindToAnalyticsName = (kind) => {\n if (kind === 'cc') {\n return 'credit card';\n }\n if (kind === 'pp') {\n return 'paypal';\n }\n return '';\n};\n\nconst { reportAddFundsScreen } = window.config;\n\nexport const trackMPEventAdditionalFundsRequired = (\n additionalFundsParams\n) => (dispatch, getState) => {\n const {\n options, clickSource, credit, bonus, initialChargedPropName,\n initialDurationPropName, payAsYouGo, flow\n } = additionalFundsParams;\n const {\n paymentSources: { current }, chat: { initialCharged, initialDuration },\n voipChat: { initialVoipCharged, initialVoipDuration }\n } = getState();\n if (reportAddFundsScreen === 'no') return;\n if (reportAddFundsScreen === 'new' && !current) return;\n\n const eventName = 'add funds screen';\n const noPaymentMethodsData = noPaymentMethodsEventData(options);\n\n let params = {\n 'purchase screen' : clickSourceOrMobileClickSource(clickSource),\n ...paramOrNul('credit', !payAsYouGo ? (credit + bonus) : null),\n ...paramOrNul('base price', !payAsYouGo ? credit : null),\n ...paramOrNul(initialDurationPropName, !payAsYouGo ? (initialCharged || initialVoipCharged) : null),\n ...paramOrNul(initialChargedPropName, !payAsYouGo ? (initialDuration || initialVoipDuration) : null),\n ...getPayAsYouGoUsedProperty({ flow, isPayg: payAsYouGo }),\n flow\n };\n if (noPaymentMethodsData) {\n params = {\n ...params,\n ...noPaymentMethodsData\n };\n } else {\n options.forEach((o) => {\n const { kind, context: { type }, id } = o;\n params = {\n ...params,\n 'payment method': kindToAnalyticsName(kind),\n 'payment id': id,\n ...paramOrNul('error', o.errorText),\n ...paramOrNul('payment gateway', o.gatewayName)\n };\n if (type) {\n params['cc type'] = type;\n }\n });\n }\n dispatch(trackEvent(eventName, params));\n};\n\nexport const loadPaymentOptionsOnClose = () => (dispatch, getState) => {\n const { current, existing } = getState().paymentSources;\n if (!current && existing?.length > 0) {\n dispatch({ type: Const.paymentOptions.load });\n withCaptcha('checkout', (token) => loadPaymentOptionsApi(token).then(newOptions => {\n dispatch({ type: Const.paymentOptions.loaded, options: newOptions });\n }).catch((error) => log(LOG_LEVELS.ERROR, 'Payment', 'Error loadPaymentOptionsApi', error)));\n }\n};\n\nexport const loadPaymentOptions = ({ ignoreSkip = false } = {}) => (dispatch, getState) => {\n const { skipNextLoad, options } = getState().paymentOptions;\n if (skipNextLoad && !ignoreSkip) {\n dispatch({ type: Const.paymentOptions.loaded, options });\n return;\n }\n dispatch({ type: Const.paymentOptions.load });\n withCaptcha('checkout', (token) => loadPaymentOptionsApi(token).then(newOptions => {\n checkIfCanMakeApplePayPayments().then(() => {\n dispatch({ type: Const.paymentOptions.loaded, options: newOptions });\n });\n dispatch({ type: Const.paymentOptions.loaded, options: newOptions });\n }).catch((error) => log(LOG_LEVELS.ERROR, 'Payment', 'Error loadPaymentOptionsApi', error)));\n};\n\nexport const reset = () => (dispatch) => {\n dispatch({ type: Const.paymentOptions.reset });\n};\n","/* eslint-disable object-curly-newline */\nimport queryString from 'query-string';\nimport {\n loadAvailablePaymentSourcesApi, addPaymentSourceApi, editPaymentSourceApi,\n removePaymentSourceApi\n} from '../config/api';\nimport { checkIfCanMakeApplePayPayments, doneChangingPaymentSource } from './purchase_details';\nimport { trackEvent } from './mixpanel';\nimport Const from '../config/const';\nimport {\n fromMobileApp, clickSourceOrMobileClickSource, paramOrNul,\n noPaymentMethodsEventData, paymentKindToAnalyticsName, currentPaymentMethodData, toCamelCase\n} from '../../common/config/utils';\nimport { trackPageVisit, aditionalPurchaseProps } from './analytics';\nimport { refreshReducersFromResponse } from '../config/api_functions';\n\nexport const startEditingPaymentSource = (id) => ({\n type: Const.paymentSources.edit,\n id\n});\n\nexport const managePaymentSource = (id) => ({\n type: Const.paymentSources.manage,\n id\n});\n\nexport const doneManagingPaymentSource = () => managePaymentSource(null);\n// export const doneEditingPaymentSource = () => startEditingPaymentSource(null);\nexport const doneAddCard = () => ({ type: Const.paymentSources.doneAddCard });\n\nexport const loadAvailable = (forceReload = false) => (dispatch, getState) => {\n if (!forceReload) {\n const { existing } = getState().paymentSources;\n if (existing) {\n // at least not null\n return;\n }\n }\n dispatch({ type: Const.paymentSources.load });\n loadAvailablePaymentSourcesApi().then((sources) => {\n checkIfCanMakeApplePayPayments().then(() => {\n dispatch({ type: Const.paymentSources.loaded, ...sources });\n });\n }).catch(() => {\n dispatch({ type: Const.paymentSources.done });\n // alert('Cannot load payment sources');\n });\n};\n\nexport const trackPaymentMethodRemovedEvent = () => (dispatch) => {\n const eventName = 'payment method removed';\n const { getState } = window.store;\n const { paymentSources } = getState();\n const { current, managingSource, existing } = paymentSources;\n const paymentMethodRemovedParams = {\n 'deleted payment method': paymentKindToAnalyticsName(managingSource.kind),\n 'default payment method': paymentKindToAnalyticsName(current.kind),\n 'num of payment methods': existing.length,\n 'default payment method removed': managingSource.isDefault,\n ...aditionalPurchaseProps()\n };\n dispatch(trackEvent(eventName, paymentMethodRemovedParams));\n};\n\nexport const removeSource = (id) => (dispatch) => {\n dispatch({ type: Const.paymentSources.load });\n removePaymentSourceApi(id).then((sources) => {\n dispatch(trackPaymentMethodRemovedEvent());\n dispatch({ type: Const.paymentSources.loaded, ...sources });\n }).catch(() => {\n dispatch({ type: Const.paymentSources.done });\n // alert('Cannot load payment sources');\n });\n};\n\nexport const trackStartAddingCreditCard = (clickSource) => (dispatch, getState) => {\n const { paymentOptions: { options } } = getState();\n trackPageVisit('add new card draw');\n const properties = {\n ...noPaymentMethodsEventData(options),\n ...currentPaymentMethodData(),\n 'purchase screen' : clickSourceOrMobileClickSource(clickSource),\n ...aditionalPurchaseProps()\n };\n dispatch(trackEvent('add credit card started', properties));\n};\n\nexport const trackCreditCardAdded = (params, clickSource) => (dispatch, getState) => {\n const { paymentOptions: { options } } = getState();\n const eventName = 'credit card added';\n const eventProperties = {\n 'purchase screen' : clickSourceOrMobileClickSource(clickSource),\n ...params,\n ...currentPaymentMethodData(),\n ...noPaymentMethodsEventData(options),\n ...aditionalPurchaseProps()\n };\n dispatch(trackEvent(eventName, eventProperties));\n};\n\nexport const trackAddCreditCardFailed = (params) => (dispatch) => {\n const {\n scheme, failedReason, errorCode, error, errorName\n } = params;\n const properties = {\n 'cc type': scheme ? (scheme).toLowerCase() : undefined,\n ...paramOrNul('failed reason error code', errorCode),\n ...paramOrNul('error message', error),\n ...paramOrNul('failed reason description', errorName),\n ...paramOrNul('failed reason', failedReason),\n ...aditionalPurchaseProps()\n };\n dispatch(trackEvent('add credit card failed', properties));\n};\n\nexport const trackPaymentMethodChanged = (properties, clickSource) => (dispatch) => {\n let purchaseScreen = clickSourceOrMobileClickSource(clickSource);\n if (window.location.pathname.includes('/payment_source')) purchaseScreen = 'payment methods';\n dispatch(trackEvent('payment method changed', {\n ...properties,\n ...currentPaymentMethodData(),\n 'purchase screen' : purchaseScreen,\n ...aditionalPurchaseProps()\n }));\n};\n\nexport const addSource = (kind) => (dispatch) => {\n dispatch({ type: Const.paymentSources.load });\n addPaymentSourceApi(kind)\n .then(({ source: { id, gatewayName }, options }) => {\n dispatch(loadAvailable(true));\n if (gatewayName === 'pp' || gatewayName === 'apcko_pg' || gatewayName === 'apcko_ka' || gatewayName === 'apcko_ps') {\n dispatch({ type: Const.paymentOptions.loaded, options, skipNextLoad: true });\n dispatch(doneChangingPaymentSource());\n return;\n }\n dispatch(startEditingPaymentSource(id));\n })\n .catch(() => {\n dispatch({ type: Const.paymentSources.done });\n // alert('Cannot create a payment source');\n });\n};\n\nexport const clearAddingCardError = () => ({\n type: Const.paymentSources.clearAddingCardError\n});\n\nconst setAddingCardError = (error) => (dispatch) => {\n dispatch({\n type: Const.paymentSources.addingCardError,\n error\n });\n};\n\nexport const editCardIfSecurityReasons = (id, kind) => (dispatch) => {\n const params = { generate_tokens: true };\n editPaymentSourceApi({ id, params, type: 'editPaymentSourceApi' }).then(() => {\n dispatch(addSource(kind));\n });\n};\n\nexport const editPaymentSource = (id) => (dispatch) => {\n // dispatch({ type: Const.editPaymentSources.load, id });\n // dispatch({ type: Const.paymentSources.load });\n const params = { generate_tokens: true };\n editPaymentSourceApi({ id, params, type: 'editPaymentSourceApi' }).then((config) => {\n dispatch({ type: Const.paymentSources.addingCardData, config });\n }).catch(() => {\n dispatch({ type: Const.paymentSources.addingCardData });\n });\n};\n\nexport const updatePaymentSource = (paymentSourceParams) => (dispatch) => {\n const { id, context, callback } = paymentSourceParams;\n const params = { context };\n editPaymentSourceApi({ id, params, type: 'updatePaymentSourceApi' })\n .then(() => {\n if (callback) callback();\n dispatch(loadAvailable(true));\n dispatch(doneAddCard());\n dispatch(doneChangingPaymentSource());\n })\n .catch((error) => {\n const { cardData: { scheme } } = context;\n try {\n error.json().then(errorJson => {\n dispatch(setAddingCardError(errorJson.error || errorJson.error_name || error.statusText));\n const { errorCode, errorName, error: errorMessage } = errorJson;\n const addCreditCardFailedParams = { scheme, failedReason: 'api error', errorCode, error: errorMessage, errorName };\n\n refreshReducersFromResponse(toCamelCase(errorJson)); // Need for update user\n\n dispatch(trackAddCreditCardFailed(addCreditCardFailedParams));\n });\n } catch (err2) {\n const addCreditCardFailedParams = { scheme, failedReason: 'api error', errorCode: error.status, error: error.statusText };\n dispatch(trackAddCreditCardFailed(addCreditCardFailedParams));\n dispatch(setAddingCardError(error.statusText));\n }\n });\n};\n\nconst doneMakeDefault = (history, location) => (dispatch) => {\n if (fromMobileApp) {\n const search = queryString.stringify({ state: 'completed', ...(queryString.parse(location.search)) });\n history(`${ location.pathname }?${ search }`, {\n state: { ...location.state },\n replace: true\n });\n }\n dispatch(doneChangingPaymentSource());\n};\n\nexport const onMakeDefault = (history, location, makeDefParams) => (dispatch, getState) => {\n const {\n kind, type, clickSource, id\n } = makeDefParams;\n const { paymentSources: { current } } = getState();\n if (current && id === current.id) {\n dispatch(doneMakeDefault(history, location));\n return;\n }\n dispatch({ type: Const.paymentSources.load });\n const params = { set_default: true };\n editPaymentSourceApi({ id, params, type: 'makeDefaultSourceApi' })\n .then(({ sources, options }) => {\n const ccType = kind === 'cc' ? { 'cc type': type } : null;\n dispatch(trackPaymentMethodChanged({\n 'payment method' : paymentKindToAnalyticsName(kind),\n 'payment id': id,\n ...ccType\n }, clickSource));\n dispatch({ type: Const.paymentSources.loaded, options, ...sources });\n dispatch(doneMakeDefault(history, location));\n }).catch(() => { dispatch({ type: Const.paymentSources.done }); });\n};\n\nexport const cleanUp = () => (dispatch) => {\n dispatch(doneAddCard());\n dispatch(doneManagingPaymentSource());\n};\n","import Const from '../config/const';\n\nexport const showPopover = (kind, payload) => (dispatch) => {\n dispatch({\n type: Const.popover.show,\n kind,\n payload\n });\n};\n\nexport const dissmissPopover = () => (dispatch) => {\n dispatch({\n type: Const.popover.hide\n });\n};\n","import queryString from 'query-string';\nimport { promoCodeAPI, welcomePromoCodesAPI } from '../config/api';\nimport { toCamelCase } from '../../common/config/utils';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { parseAndTrackAnalyticEvents } from './analytics';\nimport { getUser } from './user';\nimport Const from '../config/const';\nimport { setApplicationError } from './aplication_error';\nimport { getCookie, removeCookie } from '../config/cookies_action';\n\nconst promoCodeLoading = () => ({\n type: Const.promoCode.loading\n});\n\nconst promoError = (error) => ({\n type: Const.promoCode.error,\n error\n});\n\nconst promoSuccess = (creditText) => ({\n type: Const.promoCode.success,\n creditText\n});\n\nexport const clearModalText = () => ({\n type: Const.promoCode.clearModalText\n});\n\nexport const applyCode = (code) => (dispatch) => {\n dispatch(promoCodeLoading());\n promoCodeAPI(code)\n .then((res) => {\n dispatch(getUser());\n dispatch(promoSuccess(res.creditText));\n if (res.analyticEvents) { // track redeem promo code event\n parseAndTrackAnalyticEvents(res.analyticEvents);\n }\n })\n .catch((error) => error.json()\n .then((json) => {\n const fJson = toCamelCase(json);\n if (fJson.analyticEvents) { // track redeem promo failed code event\n parseAndTrackAnalyticEvents(fJson.analyticEvents);\n }\n if (fJson.fullMessages && fJson.fullMessages.length > 0) {\n dispatch(promoError(fJson.fullMessages[0]));\n return;\n }\n if (fJson?.errors?.promoCodeId) {\n dispatch(promoError(fJson?.errors?.promoCodeId[0]));\n }\n })\n .catch((toJsonError) => log(LOG_LEVELS.ERROR, 'PromoCode', 'toJsonError!', toJsonError)));\n};\n\nconst autoRedemSetLoadingAction = ({ loading }) => ({\n type: Const.promoCode.autoRedemSetLoading,\n loading\n});\n\nexport const autoRedemSetAuthHandlerSuccessAction = ({ authHandlerSuccess }) => ({\n type: Const.promoCode.autoRedemSetAuthHandlerSuccess,\n authHandlerSuccess\n});\n\nexport const autoRedemSetJustSignedUpAuthHandlerSuccessAction = ({ justSignedUpAuthHandlerSuccess }) => ({\n type: Const.promoCode.autoRedemSetJustSignedUpAuthHandlerSuccess,\n justSignedUpAuthHandlerSuccess\n});\n\nexport const autoRedemSetBonusPopup = ({ bonusPopup }) => ({\n type: Const.promoCode.autoRedemSetBonusPopup,\n bonusPopup\n});\n\nconst removePromoFromSearch = ({ history }) => {\n if (!history) return;\n const search = toCamelCase(queryString.parse(window.location.search));\n if (!search.promo) return;\n delete search.promo;\n const updatedSearch = queryString.stringify(search);\n history(`${ window.location.pathname }?${ updatedSearch }`, {\n search: updatedSearch,\n state: { ...window.location.state }\n });\n};\n\nconst autoRedemPromoCodeAfterAction = ({\n authHandlerSuccess, history, dispatch, resUser\n}) => {\n dispatch(autoRedemSetLoadingAction({ loading: false }));\n removePromoFromSearch({ history });\n if (authHandlerSuccess) {\n authHandlerSuccess(resUser);\n dispatch(autoRedemSetAuthHandlerSuccessAction({ authHandlerSuccess: null }));\n }\n};\n\nconst getAutoRedemPromoCode = () => {\n let promo = toCamelCase(queryString.parse(window.location.search))?.promo;\n if (!promo) {\n promo = getCookie({ cookieName: 'autoRedemePromoCode' });\n }\n if (getCookie({ cookieName: 'autoRedemePromoCode' })) {\n removeCookie({ cookieName: 'autoRedemePromoCode', cookieOptions: { path: '/' } });\n }\n return promo;\n};\n\nconst autoRedemPromoCodeJustSignedUp = ({ history, justSignedUpAuthHandlerSuccess, dispatch }) => {\n const promo = getAutoRedemPromoCode();\n let deeplink = null;\n if (promo) {\n deeplink = `promo/${ promo }`;\n window.attribution.promo = '';\n }\n welcomePromoCodesAPI(deeplink).then((res) => {\n if (res.analyticEvents) { // track redeem promo code event\n parseAndTrackAnalyticEvents(res.analyticEvents);\n }\n if (res.bonusPopup) {\n dispatch(autoRedemSetBonusPopup({ bonusPopup: res.bonusPopup }));\n }\n dispatch(autoRedemSetLoadingAction({ loading: false }));\n removePromoFromSearch({ history });\n justSignedUpAuthHandlerSuccess(res.user);\n dispatch(autoRedemSetJustSignedUpAuthHandlerSuccessAction({ justSignedUpAuthHandlerSuccess: null }));\n });\n};\n\nexport const autoRedemPromoCode = ({\n history, needShowErrorPoppup, authHandlerSuccess, justSignedUpAuthHandlerSuccess\n}) => (dispatch) => {\n if (justSignedUpAuthHandlerSuccess) {\n dispatch(autoRedemSetLoadingAction({ loading: true }));\n autoRedemPromoCodeJustSignedUp({ history, justSignedUpAuthHandlerSuccess, dispatch });\n return;\n }\n const promo = getAutoRedemPromoCode();\n if (!promo) {\n autoRedemPromoCodeAfterAction({ authHandlerSuccess, history, dispatch });\n return;\n }\n dispatch(autoRedemSetLoadingAction({ loading: true }));\n window.attribution.promo = '';\n promoCodeAPI(promo)\n .then((res) => {\n if (res.analyticEvents) { // track redeem promo code event\n parseAndTrackAnalyticEvents(res.analyticEvents);\n }\n if (res.bonusPopup) {\n dispatch(autoRedemSetBonusPopup({ bonusPopup: res.bonusPopup }));\n }\n autoRedemPromoCodeAfterAction({\n authHandlerSuccess, history, dispatch, resUser: res?.user\n });\n })\n .catch((error) => {\n autoRedemPromoCodeAfterAction({ authHandlerSuccess, history, dispatch });\n error.json()\n .then((jsonError) => {\n const jsonErrorCamelCase = toCamelCase(jsonError);\n\n if (jsonErrorCamelCase.analyticEvents) { // track redeem promo failed code event\n parseAndTrackAnalyticEvents(jsonErrorCamelCase.analyticEvents);\n }\n\n if (needShowErrorPoppup) {\n dispatch(setApplicationError({ errorText: jsonErrorCamelCase.fullMessages[0] }));\n }\n })\n .catch(() => { dispatch(setApplicationError({ errorCode: error.status, statusText: error.statusText })); });\n });\n};\n","import Const from '../config/const';\nimport { getFeesApi } from '../config/api';\nimport { calculateDiffHandler, calculateRequiredFunds, getMinPrice } from '../../common/config/utils';\nimport { purchaseDetailsTypes } from '../../common/config/const';\n\nexport const changingPaymentSource = (changing) => (dispatch) => {\n dispatch({ type: Const.purchaseDetails.changingPaymentSource, changing });\n};\n\nexport const doneChangingPaymentSource = () => (dispatch) => dispatch(changingPaymentSource(false));\n\nexport const updatePurchaseDetails = ({\n clickSource, purchaseType, details\n}) => (dispatch, getState) => {\n const { user: { clientAvailableCredit } } = getState().user;\n const { price, isPayg } = details;\n const diffPrice = calculateDiffHandler({\n purchaseType, price, clientAvailableCredit\n });\n const isMinPurchase = (diffPrice < getMinPrice() && !isPayg && purchaseType !== purchaseDetailsTypes.AFFILIATE_PROMO_POPUP);\n const requiredCredit = calculateRequiredFunds({ diffPrice, purchaseType });\n getFeesApi({ amountToPay: requiredCredit }).then((fees) => {\n dispatch({\n type: Const.purchaseDetails.updateDetails,\n purchaseType,\n clickSource,\n details: {\n ...details,\n diffPrice,\n isMinPurchase,\n requiredCredit,\n fees\n }\n });\n });\n};\n\nexport const clearPurchaseDetails = () => ({\n type: Const.purchaseDetails.clearDetails\n});\n\nexport const checkIfCanMakeApplePayPayments = () => new Promise((resolve) => {\n const appleMerchantId = window.config.appleypayMerchantId ?? null;\n if (window.ApplePaySession && appleMerchantId) {\n window.ApplePaySession.canMakePaymentsWithActiveCard(appleMerchantId).then((canMakeApplePayPayments) => {\n window.store.dispatch({ type: Const.purchaseDetails.updateApplePayEligibility, canMakeApplePayPayments });\n resolve(canMakeApplePayPayments);\n });\n return;\n }\n window.store.dispatch({ type: Const.purchaseDetails.updateApplePayEligibility, canMakeApplePayPayments: false });\n resolve(false);\n});\n","import Const from '../config/const';\nimport { getSearchList } from '../config/api';\nimport { subscribeAdvisorsToDB } from './firebase_realtime_database';\n\nconst loading = (path, searchPage) => ({\n type: Const.searchResults.loading,\n path,\n searchPage\n});\n\nconst loadSuccess = (res, path, searchPage, needRefresh) => ({\n type: Const.searchResults.loaded,\n payload: res,\n path,\n searchPage,\n needRefresh\n});\n\nconst loadError = (error, path) => ({\n type: Const.searchResults.error,\n error,\n path\n});\n\nexport const loadAdvisors = (params, path, searchPage, needRefresh) => (dispatch) => {\n dispatch(loading(path, searchPage));\n getSearchList(params).then((res) => {\n dispatch(loadSuccess(res, path, searchPage, needRefresh));\n dispatch(subscribeAdvisorsToDB(res.advisors));\n }).catch((e) => {\n dispatch(loadError(e, path));\n });\n};\n","import Const from '../config/const';\nimport { roundCredits } from '../config/util';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { subscribeAdvisorsToDB } from './firebase_realtime_database';\n\nconst userRoundCreditsIfCan = ({ user, propName }) => roundCredits(user[propName]) || user[propName] || window.store.getState().user.user?.[propName];\n\nconst normalizeUser = user => ({\n user: {\n ...user,\n clientAvailableCredit: userRoundCreditsIfCan({ user, propName: 'clientAvailableCredit' }),\n cashbackAmount: userRoundCreditsIfCan({ user, propName: 'cashbackAmount' }),\n referrerCreditAmount: userRoundCreditsIfCan({ user, propName: 'referrerCreditAmount' }),\n totalPurchased: userRoundCreditsIfCan({ user, propName: 'totalPurchased' }),\n clientLockedCredit: userRoundCreditsIfCan({ user, propName: 'clientLockedCredit' }),\n paypalTotalCharged: userRoundCreditsIfCan({ user, propName: 'paypalTotalCharged' }),\n creditCardTotalCharged: userRoundCreditsIfCan({ user, propName: 'creditCardTotalCharged' })\n }\n});\n\nexport const userUpdated = (user) => (dispatch) => {\n if (!user) return;\n log(LOG_LEVELS.INFO, 'User', 'update', user);\n dispatch({\n type: Const.user.user,\n payload: {\n user: normalizeUser(user)\n }\n });\n};\n\nexport const advisorUpdated = (advisor) => (dispatch) => {\n if (!advisor) return;\n dispatch(subscribeAdvisorsToDB([advisor]));\n dispatch({\n type: Const.advisors.loaded,\n advisor: {\n ...advisor,\n liveModes: advisor.liveModes?.liveModes ?? advisor.liveModes\n }\n });\n};\n\nexport const advisorsListUpdated = (advisors) => (dispatch) => {\n if (!advisors) return;\n dispatch(subscribeAdvisorsToDB(advisors));\n dispatch({\n type: Const.advisors.listLoaded,\n advisors\n });\n};\n\nexport const setAnalyticsProps = (analyticProps) => ({\n type: Const.user.analyticProps,\n analyticProps\n});\n","import Bugsnag from '@bugsnag/js';\nimport { getCurrentUserAPI, updateUserAPI, getMyAccountCreditsApi } from '../config/api';\nimport Const from '../config/const';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { userUpdated } from './shared_actions';\n\nconst userLoadingCreator = () => ({\n type: Const.user.loading\n});\n\nconst userErrorCreator = error => ({\n type: Const.user.error,\n payload: {\n error\n }\n});\n\nconst getUserPromise = (dispatch) => (getCurrentUserAPI()\n .then(user => {\n const { user: { id, nickname, email } } = user;\n Bugsnag.setUser(id, nickname, email);\n dispatch(userUpdated(user.user));\n })\n);\n\nexport const getUser = (currentUserId = window.currentUserId) => (dispatch, getState) => {\n // empty page needed for mobile preload\n // no need to load user in this case\n if (window.location.pathname.includes('/empty')) return;\n if (!currentUserId) return;\n const { loading } = getState().user;\n if (loading) return;\n dispatch(userLoadingCreator());\n getUserPromise(dispatch)\n .catch(error => {\n error\n .json()\n .then(jsonError => {\n dispatch(userErrorCreator(jsonError));\n })\n .catch(() => {\n dispatch(userErrorCreator(error));\n });\n })\n .catch((error) => {\n log(LOG_LEVELS.ERROR, 'User', 'Error getUserPromise', error);\n dispatch(userErrorCreator(error));\n });\n};\n\nexport const updateUser = (payload) => (dispatch) => {\n dispatch(userLoadingCreator());\n updateUserAPI(payload).then((res) => {\n dispatch(userUpdated(res.user));\n }).catch((error) => {\n dispatch(userErrorCreator(error));\n });\n};\n\nexport const userMPIdentify = () => (dispatch) => {\n dispatch({ type: Const.user.MPIdentify });\n};\n\nexport const getMyAccountCredits = () => (dispatch, getState) => {\n const { paymentProcessingSequence } = getState().user;\n getMyAccountCreditsApi(paymentProcessingSequence).then(() => {\n dispatch({\n type: Const.user.updatePaymentProcessingSequence\n });\n });\n};\n","import {\n voipStartCallAPI,\n getPricingOptions,\n voipContinueCallAPI,\n voipHangupConversationAPI,\n voipPingAPI,\n voipTimerEndConversationAPI,\n voipNotifyPeerConnectedAPI,\n voipPullConversationAPI,\n voipForceHangupConversationAPI,\n hangupChatApi\n} from '../config/api';\nimport { valiateUser } from './chat';\nimport { updatePurchaseDetails, clearPurchaseDetails } from './purchase_details';\nimport { toCamelCase } from '../../common/config/utils';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { getUser } from './user';\nimport { showGeneralPopup, linkType } from './general_popup';\nimport { purchaseDetailsTypes } from '../../common/config/const';\nimport Const from '../config/const';\nimport { loadAdvisor } from './advisors';\nimport {\n trackDurationPickedMPEvent, trackChatAttemptEvent, trackChatStartedEvent,\n trackEventProfileButton, trackDurationPickExitdMPEvent, trackPageVisit, StatusBusy, getFlow,\n trackSessionHireEvent,\n StatusSuccess\n} from './analytics';\nimport {\n getDurationPickRelatedProps, isPayg, getDefaultDuration, getDurationOptions\n} from '../config/util';\nimport { getAdvisorSlug } from '../project_items/helper_functions';\n\nconst voipLoading = () => ({\n type: Const.voip.loading,\n loading: true\n});\n\nconst chatType = (voipChat) => (voipChat.voipType === Const.chatType.video\n ? Const.chatType.video : Const.chatType.voice);\n\nconst creditRequiredOnContinueFlow = (duration, price, selectedCarouselIndex, discountData) => ({\n type: Const.voip.creditRequiredOnContinue,\n payload: {\n duration,\n price,\n selectedCarouselIndex,\n discountData\n }\n});\n\nconst continueChatActionCreator = (duration, price, response, discountData) => ({\n type: Const.voip.continueChat,\n payload: {\n duration,\n price,\n ...response,\n discountData\n }\n});\n\nconst trackMPBusyEventIdNeeded = (fullMessages, dispatch, getState) => {\n const { voipChat, user: { user } } = getState();\n fullMessages.forEach(element => {\n if (element.includes(StatusBusy)) {\n trackChatStartedEvent(chatType(voipChat), StatusBusy, voipChat, user, dispatch);\n }\n });\n};\n\nconst doContinueChat = (orderId, duration, ppm, price, dispatch, discountData) => {\n dispatch({ type: Const.voip.showSpin });\n voipContinueCallAPI(orderId, duration, ppm).then(response => {\n dispatch(continueChatActionCreator(duration, price, response, discountData));\n log(LOG_LEVELS.INFO, 'VOIP CHAT', 'everying is fine, chat should be continued now', response);\n })\n .catch(error => {\n switch (error.status) {\n case 404: {\n dispatch({ type: Const.voip.notInLiveMode, error: 'Advisor is not in live video mode anyomre' });\n break;\n }\n case 422: {\n error.json().then(json => dispatch({ type: Const.voip.generalError, orderSummary : toCamelCase(json).orderSummary, error: json.errors.base }));\n break;\n }\n default: {\n error.json().then(json => dispatch({ type: Const.voip.unknownError, error: json.error }));\n log(LOG_LEVELS.ERROR, 'VOIP CHAT', 'error continuing the chat', error);\n }\n }\n });\n};\n\nconst updatePurchaseDetailsAction = (voipType, duration, price, advisorId, additional) => dispatch => {\n const purchaseType = voipType === Const.chatType.voice\n ? purchaseDetailsTypes.VOICE_CHAT : purchaseDetailsTypes.VIDEO_CHAT;\n const clickSource = voipType === Const.chatType.voice\n ? 'voice call' : 'video call';\n const flow = getFlow({ additional, payAsYouGo: isPayg({ duration }) });\n dispatch(updatePurchaseDetails({\n clickSource, purchaseType, details: {\n advisorId, duration, price, isPayg: isPayg({ duration }), flow\n }\n }));\n};\n\nconst trackVoipDurationPickRelatedAction = (selectedDuration, time, defaultDurationChanged, mpEvent) => (dispatch, getState) => {\n const {\n user: { user: { clientAvailableCredit } },\n voipChat: {\n continuedSession, advisorId, homepageSection, startChatClickSource, pricingOptions, voipType, selectDurationKind, newUserPaygPricingOption\n }\n } = getState();\n const item = pricingOptions.find((i) => i.duration === selectedDuration) || newUserPaygPricingOption;\n const hasEnoughtCredit = clientAvailableCredit >= item.price;\n const displayVersion = selectDurationKind === Const.selectDurationKind.newUser ? 'version 1' : 'original';\n const payAsYouGo = item.payAsYouGo || (newUserPaygPricingOption && Object.keys(newUserPaygPricingOption).length > 0);\n const defaultDuration = getDefaultDuration({ pricingOptions, payAsYouGo });\n const durationOptions = getDurationOptions({ pricingOptions, payAsYouGo });\n const requiredAmount = hasEnoughtCredit ? null : { 'purchase required' : (item.price - clientAvailableCredit).toFixed(2) };\n const flow = getFlow({ additional: item.additional, payAsYouGo });\n const durationPickRelatedProps = getDurationPickRelatedProps({\n requiredAmount, continuedSession, selectedDuration, price: item.price, advisorId,\n homepageSection, startChatClickSource, displayVersion, defaultDuration, defaultDurationChanged,\n durationOptions, time, payAsYouGo, flow, additional: item.additional\n });\n dispatch(mpEvent(voipType, durationPickRelatedProps));\n};\n\nconst trackVoipDurationPickedAction = (selectedDuration, time, defaultDurationChanged) => (dispatch) => {\n dispatch(trackVoipDurationPickRelatedAction(selectedDuration, time, defaultDurationChanged, trackDurationPickedMPEvent));\n};\n\nexport const trackVoipDurationPickExit = (selectedDuration, time, defaultDurationChanged) => (dispatch) => {\n dispatch(trackVoipDurationPickRelatedAction(selectedDuration, time, defaultDurationChanged, trackDurationPickExitdMPEvent));\n};\n\nexport const continueVoipChat = (duration, time, defaultDurationChanged, selectedCarouselIndex, discountData) => (dispatch, getState) => {\n const {\n voipChat: { orderId, pricingOptions, ppm },\n user: {\n user: {\n clientAvailableCredit\n }\n },\n voipChat: {\n voipType, advisorId\n }\n } = getState();\n\n const item = pricingOptions.find((i) => i.duration === duration);\n\n dispatch(updatePurchaseDetailsAction(voipType, duration, item.price, advisorId, item.additional));\n dispatch(trackVoipDurationPickedAction(duration, time, defaultDurationChanged));\n if (item && clientAvailableCredit < item.price) {\n dispatch(creditRequiredOnContinueFlow(duration, item.price, selectedCarouselIndex, discountData));\n return;\n }\n\n // Duration and Pirce need to be updated here in order to track\n // correct properties in chat started event\n doContinueChat(orderId, duration, ppm, item.price, dispatch, discountData);\n};\n\nexport const selectVoipCredit = (option, time, defaultDurationChanged, onContinue) => (dispatch, getState) => {\n const {\n price, duration, selectedCarouselIndex, additional, discountData\n } = option;\n const {\n user: { user },\n voipChat: { voipState, voipType, advisorId }\n } = getState();\n const { id, clientAvailableCredit } = user;\n\n if (!id) return;\n\n if (voipState === Const.voipChatStates.paused) {\n dispatch(continueVoipChat(duration, time, defaultDurationChanged, selectedCarouselIndex, discountData));\n return;\n }\n\n dispatch(updatePurchaseDetailsAction(voipType, duration, price, advisorId, additional));\n const hasEnoughtCredit = clientAvailableCredit >= price;\n const flow = getFlow({ additional, payAsYouGo: isPayg({ duration }) });\n dispatch({\n type: Const.voip.durationSelected,\n duration,\n price,\n selectedCarouselIndex,\n introduce: valiateUser(user),\n isPayg: isPayg({ duration }),\n paymentRequired: !hasEnoughtCredit,\n onContinue,\n flow,\n discountData\n });\n dispatch(trackVoipDurationPickedAction(duration, time, defaultDurationChanged));\n};\n\nexport const selectVoipDurationOption = (option, onContinue, isNewUser, index) => (dispatch, getState) => {\n const {\n price, duration, additional, discountData\n } = option;\n const { user: { user }, user: { clientAvailableCredit } } = getState();\n const hasEnoughtCredit = clientAvailableCredit >= price;\n const flow = getFlow({ additional, payAsYouGo: isPayg({ duration }) });\n dispatch({\n type: Const.voip.durationSelected,\n duration,\n price,\n selectedCarouselIndex: index,\n introduce: valiateUser(user),\n isPayg: isPayg({ duration }),\n paymentRequired: !hasEnoughtCredit,\n onContinue,\n isNewUser,\n flow,\n discountData\n });\n};\n\nconst updatePricingOptionsActionCreator = (pricingOptions, selectDurationKind, xfmProgram, newUserPaygPricingOption, texts) => ({\n type: Const.voip.updatePricingOptions,\n payload: {\n pricingOptions, selectDurationKind, xfmProgram, newUserPaygPricingOption, texts\n }\n});\n\nexport const loadVoipPricingOptions = (type, advisorId, additionalParams = {}) => (dispatch, getState) => {\n dispatch(voipLoading());\n const { voipChat: { requestParams } } = getState();\n\n getPricingOptions(advisorId, { liveModes: type, ...requestParams, ...additionalParams })\n .then((res) => {\n const {\n pricingOptions, voiceCallPricingOptions, conversionEventId, selectDurationKind, user: { xfmProgram }, newUserPaygPricingOption, texts\n } = res;\n if (conversionEventId) dispatch(trackEventProfileButton(conversionEventId));\n dispatch(updatePricingOptionsActionCreator(type === 'video'\n ? pricingOptions || [] : voiceCallPricingOptions || [], selectDurationKind, xfmProgram, newUserPaygPricingOption, texts));\n })\n .catch((error) => {\n error.json().then(json => dispatch({ type: Const.voip.unknownError, error: json.error }));\n });\n};\n\nexport const updatePricingOptionsOnContinueIfNeed = (isContinue) => (dispatch, getState) => {\n const { voipChat: { advisorId, voipType } } = getState();\n const additionalParams = isContinue ? { context: 'followup' } : {};\n dispatch(loadVoipPricingOptions(voipType === Const.chatType.video ? 'video' : 'voice', advisorId, additionalParams));\n};\n\nconst getMediaAndCreateChat = (\n constraints,\n dispatch,\n advisorId,\n ppm,\n profilePictureUrl,\n name,\n startChatClickSource,\n homePageSection,\n voipType,\n requestParams\n) => {\n navigator.mediaDevices.getUserMedia(constraints)\n .then((stream) => {\n log(LOG_LEVELS.INFO, 'VOIP CHAT', 'Media permission granted');\n stream.getTracks().forEach(track => track.stop());\n dispatch({\n type: Const.voip.init,\n advisorId,\n ppm,\n profilePictureUrl,\n name,\n startChatClickSource,\n homePageSection,\n voipType,\n requestParams\n });\n })\n .catch(reason => {\n dispatch({\n type: Const.voip.generalError,\n errors: [`Media error: ${ reason.message }`],\n voipType,\n permissionDeniedError: reason.name === 'NotAllowedError' || reason.name === 'PermissionDeniedError'\n });\n log(LOG_LEVELS.ERROR, 'VOIP CHAT', reason);\n });\n};\n\nexport const initVoipChat = (\n advisorId,\n ppm,\n profilePictureUrl,\n name,\n startChatClickSource,\n homePageSection,\n voipType,\n requestParams\n) => (dispatch) => {\n const constraints = {\n audio: true,\n video: voipType === Const.chatType.video ? {\n facingMode: 'user'\n } : false\n };\n\n getMediaAndCreateChat(\n constraints,\n dispatch,\n advisorId,\n ppm,\n profilePictureUrl,\n name,\n startChatClickSource,\n homePageSection,\n voipType,\n requestParams\n );\n};\n\nexport const cancelVoipChat = () => (dispatch) => {\n dispatch({\n type: Const.voip.cancel\n });\n};\n\nconst purchaseBack = continueFlow => ({\n type: Const.voip.purchaseBack,\n payload: {\n continueFlow\n }\n});\n\nexport const voipPurchaseOnBack = () => (dispatch, getState) => {\n const { voipChat: { orderId } } = getState();\n dispatch(purchaseBack(!!orderId));\n dispatch(clearPurchaseDetails());\n};\n\nconst continueCall = (dispatch, getState) => {\n const { voipChat: { duration, selectedCarouselIndex } } = getState();\n dispatch(continueVoipChat(duration, selectedCarouselIndex));\n};\n\nexport const voipPurchaseSuccess = () => (dispatch, getState) => {\n const { user: { user }, voipChat: { orderId } } = getState();\n\n if (orderId) {\n continueCall(dispatch, getState);\n return;\n }\n\n dispatch({\n type: Const.voip.paymentComplete,\n introduce: valiateUser(user)\n });\n};\n\nexport const voipPurchaseSuccessOnContinue = () => (dispatch, getState) => {\n const {\n voipChat: {\n orderId, pricingOptions, ppm, duration\n }\n } = getState();\n\n const item = pricingOptions.find((i) => i.duration === duration);\n doContinueChat(orderId, duration, ppm, item.price, dispatch, item.discountData);\n};\n\nconst processCreateChatError = (getState, dispatch, error) => {\n const { voipChat, user: { user } } = getState();\n trackChatStartedEvent(chatType(voipChat), 'busy', voipChat, user, dispatch);\n switch (error.status) {\n case 404: {\n dispatch({ type: Const.voip.notInLiveMode, error: 'Advisor is not in live video mode anyomre' });\n break;\n }\n case 422: {\n error.json().then(jsonError => {\n const { fullMessages } = toCamelCase(jsonError);\n trackMPBusyEventIdNeeded(fullMessages, dispatch, getState);\n dispatch({ type: Const.voip.cantCreate, errors: fullMessages });\n });\n break;\n }\n default: {\n error.json().then(json => dispatch({ type: Const.voip.unknownError, error: json.error }));\n }\n }\n};\n\nexport const createVoipChat = (type, tryout) => (dispatch, getState) => {\n dispatch({\n type: Const.voip.connect\n });\n const {\n voipChat\n } = getState();\n const {\n ppm, duration, advisorId, startChatClickSource\n } = voipChat;\n trackChatAttemptEvent(chatType(voipChat), voipChat, dispatch);\n voipStartCallAPI(advisorId, duration, ppm, type, tryout, startChatClickSource)\n .then(response => {\n dispatch({\n type: Const.voip.connectProvider,\n response\n });\n })\n .catch(error => {\n processCreateChatError(getState, dispatch, error);\n });\n};\n\nconst showNotSupportPopup = (voipType, allowVoice, allowVideo, dispatch) => {\n let show = false;\n if (voipType === Const.chatType.voice && !allowVoice) {\n dispatch(showGeneralPopup(null, linkType.voiceNotSupported));\n trackPageVisit('service unavailable popup');\n show = true;\n }\n if (voipType === Const.chatType.video && !allowVideo) {\n dispatch(showGeneralPopup(null, linkType.videoNotSupported));\n trackPageVisit('service unavailable popup');\n show = true;\n }\n return show;\n};\n\nexport const makeCallOrShowPopup = (\n {\n id, ppm, profilePictureUrl,\n name, startChatClickSource, homepageSection, voipType, requestParams\n }\n) => (dispatch, getState) => {\n const { user } = getState();\n const allowVoice = (user.user || {}).pgwebVoiceAllowance;\n const allowVideo = (user.user || {}).pgwebVideoAllowance;\n const notSupport = showNotSupportPopup(voipType, allowVoice, allowVideo, dispatch);\n if (notSupport) return;\n dispatch(initVoipChat(\n id,\n ppm,\n profilePictureUrl,\n name,\n startChatClickSource,\n homepageSection,\n voipType,\n requestParams\n ));\n};\n\nexport const hangupVoipChat = (onOngoingScreen) => (dispatch, getState) => {\n const {\n user: { user }, voipChat, voipChat: {\n orderId, conversationId, subscriberConnected, advisorId\n }\n } = getState();\n dispatch({ type: Const.voip.startHangingUp });\n if (!orderId) {\n dispatch({ type: Const.voip.cancel });\n return;\n }\n voipHangupConversationAPI(orderId, conversationId).then((response) => {\n if (onOngoingScreen) trackChatStartedEvent(chatType(voipChat), 'hangup', voipChat, user, dispatch);\n if (subscriberConnected) {\n dispatch({ type: Const.voip.hangingUp, details: response });\n } else { dispatch({ type: Const.voip.cancel }); }\n dispatch(getUser());\n dispatch(loadAdvisor(getAdvisorSlug({ advisorId })));\n }).catch(error => {\n error.json().then(json => dispatch({ type: Const.voip.unknownError, error: json.error }));\n });\n};\n\nexport const forceHangupVoipChat = () => (dispatch, getState) => {\n const {\n orderId, conversationId, subscriberConnected, advisorId\n } = getState().voipChat;\n if (!orderId) {\n dispatch({ type: Const.voip.cancel });\n return;\n }\n dispatch(getUser());\n voipForceHangupConversationAPI(orderId, conversationId).then(response => {\n if (subscriberConnected) {\n dispatch({\n type: Const.voip.hangingUp,\n details: response\n });\n } else {\n dispatch({ type: Const.voip.cancel });\n }\n dispatch(loadAdvisor(getAdvisorSlug({ advisorId })));\n }).catch(error => {\n error.json().then(json => dispatch({ type: Const.voip.unknownError, error: json.error }));\n });\n};\n\nexport const pullConversation = () => (dispatch, getState) => {\n const { orderId, conversationId } = getState().voipChat;\n voipPullConversationAPI(orderId, conversationId)\n .then((response) => {\n dispatch({\n type: Const.voip.pulled,\n order: response.order,\n connectionStatus: response.connectionStatus || response.connection\n });\n })\n .catch((error) => {\n error.json().then(json => dispatch({ type: Const.voip.unknownError, error: json.error }));\n });\n};\n\nexport const subscribed = () => (dispatch, getState) => {\n const { user: { user }, voipChat, voipChat: { orderId, conversationId } } = getState();\n voipNotifyPeerConnectedAPI(orderId, conversationId)\n .then((response) => {\n dispatch({\n type: Const.voip.subscribed,\n conversationOption: response\n });\n trackChatStartedEvent(chatType(voipChat), 'success', voipChat, user, dispatch);\n trackPageVisit('live session page');\n })\n .catch((error) => {\n error.json().then(json => dispatch({ type: Const.voip.unknownError, json }));\n });\n};\n\nexport const receivedSignal = (data, callDurationNow) => (dispatch, getState) => {\n const {\n pingUrl,\n pingSequence\n } = getState().voipChat;\n voipPingAPI(pingUrl, callDurationNow, data, pingSequence)\n .then(() => {\n dispatch({\n type: Const.voip.ping\n });\n });\n};\n\nexport const noAnswer = () => (dispatch, getState) => {\n const { user: { user }, voipChat } = getState();\n dispatch({ type: Const.voip.noAnswer });\n trackChatStartedEvent(chatType(voipChat), 'no answer', voipChat, user, dispatch);\n hangupChatApi(voipChat.orderId);\n};\n\nexport const timerEndConversation = () => (dispatch, getState) => {\n const { orderId, conversationId } = getState().voipChat;\n const { id } = getState().user.user;\n voipTimerEndConversationAPI(orderId, conversationId)\n .then((response) => {\n dispatch(getUser(id));\n dispatch({\n type: Const.voip.finishing,\n timers: response.timers\n });\n })\n .catch((error) => {\n error.json().then(json => dispatch({ type: Const.voip.unknownError, error: json.error }));\n });\n};\n\nexport const pauseVoipChat = () => (dispatch) => {\n dispatch(updatePricingOptionsOnContinueIfNeed(true));\n dispatch({ type: Const.voip.pause });\n};\n\nexport const setEnableMic = (enable) => (dispatch) => {\n dispatch({\n type: Const.voip.enableMic,\n enable\n });\n};\n\nexport const setEnableVideo = (enable) => (dispatch) => {\n dispatch({\n type: Const.voip.enableVideo,\n enable\n });\n};\n\nexport const setEnableSound = (enable) => (dispatch) => {\n dispatch({\n type: Const.voip.enableSound,\n enable\n });\n};\n\nexport const setReconnecting = (reconnecting) => (dispatch) => {\n dispatch({\n type: Const.voip.setReconnecting,\n reconnecting\n });\n};\n\nexport const cancelVoipChatOnPPAction = (isContinue) => ({\n type: Const.voip.cancelOnPP,\n isContinue\n});\n\nexport const cancelVoipChatOnPP = (isContinue) => (dispatch, getState) => {\n const { voipChat: { advisorId, voipType } } = getState();\n const additionalParams = isContinue ? { context: 'followup' } : {};\n loadVoipPricingOptions(voipType, advisorId, additionalParams);\n dispatch(cancelVoipChatOnPPAction(isContinue));\n};\n\nexport const setNeedTrackSessionHireEventAvtion = (value) => ({\n type: Const.voip.setNeedTrackSessionHireEvent,\n value\n});\n\nexport const trackSessionHireEventIfNeeded = () => (dispatch, getState) => {\n const { voipChat, user: { user } } = getState();\n const { needTrackSessionHireEvent } = voipChat;\n\n if (!needTrackSessionHireEvent) return;\n\n trackSessionHireEvent(voipChat.voipType, StatusSuccess, voipChat, user, dispatch);\n dispatch(setNeedTrackSessionHireEventAvtion(false));\n};\n","/* eslint-disable max-len */\nimport React from 'react';\n\nexport const freeMinIcon = ({ color }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M7.49199 1.23047C4.63645 1.23325 3.15899 1.28434 2.22166 2.22166C1.28434 3.15899 1.23325 4.63645 1.23047 7.492H4.55662C4.31903 7.19523 4.14151 6.84518 4.04471 6.45798C3.68035 5.00052 5.00052 3.68035 6.45798 4.04471C6.84518 4.14151 7.19523 4.31903 7.49199 4.55662V1.23047Z\" fill={ color } />\n <path d=\"M1.23047 8.5074C1.23325 11.3629 1.28434 12.8404 2.22166 13.7777C3.15899 14.7151 4.63645 14.7661 7.49199 14.7689V9.43728C6.96423 10.4914 5.87413 11.2152 4.615 11.2152C4.33461 11.2152 4.1073 10.9879 4.1073 10.7075C4.1073 10.4271 4.33461 10.1998 4.615 10.1998C5.65532 10.1998 6.52699 9.47769 6.75619 8.5074H1.23047Z\" fill={ color } />\n <path d=\"M8.5074 14.7689C11.3629 14.7661 12.8404 14.7151 13.7777 13.7777C14.7151 12.8404 14.7661 11.3629 14.7689 8.5074H9.24321C9.47241 9.47769 10.3441 10.1998 11.3844 10.1998C11.6648 10.1998 11.8921 10.4271 11.8921 10.7075C11.8921 10.9879 11.6648 11.2152 11.3844 11.2152C10.1253 11.2152 9.03517 10.4914 8.5074 9.43728V14.7689Z\" fill={ color } />\n <path d=\"M14.7689 7.492C14.7661 4.63645 14.7151 3.15899 13.7777 2.22166C12.8404 1.28434 11.3629 1.23325 8.5074 1.23047V4.55662C8.80417 4.31903 9.15422 4.14151 9.54142 4.04471C10.9989 3.68035 12.319 5.00052 11.9547 6.45798C11.8579 6.84518 11.6804 7.19523 11.4428 7.492H14.7689Z\" fill={ color } />\n <path d=\"M6.21171 5.0298C6.96414 5.21791 7.49199 5.89398 7.49199 6.66957V7.492H6.66957C5.89398 7.492 5.21791 6.96414 5.0298 6.21171C4.85136 5.49791 5.49791 4.85136 6.21171 5.0298Z\" fill={ color } />\n <path d=\"M8.5074 6.66957V7.492H9.32983C10.1054 7.492 10.7815 6.96414 10.9696 6.21171C11.148 5.49791 10.5015 4.85136 9.78769 5.0298C9.03526 5.21791 8.5074 5.89398 8.5074 6.66957Z\" fill={ color } />\n </svg>\n);\n","// extracted by mini-css-extract-plugin\nexport default {\"advisorHeaderContainer\":\"advisorHeaderContainer--eDo3k\",\"avatarHolder\":\"avatarHolder--LV8dj\",\"advisorInfo\":\"advisorInfo--nbfjz\",\"basicInfoContainer\":\"basicInfoContainer--ASMGp\",\"advsiorTitleContainer\":\"advsiorTitleContainer--kNNhW\",\"topIconsAndRatingContainer\":\"topIconsAndRatingContainer--_IhtH\",\"ratingHolder\":\"ratingHolder--fd56Y\",\"advisorModesContainer\":\"advisorModesContainer--mdKDE\",\"advisorTitleContainer\":\"advisorTitleContainer--fjTsV\",\"advisorTitle\":\"advisorTitle--aWR5b\",\"advisorTitleText\":\"advisorTitleText--FR20R\",\"advisorSubtitle\":\"advisorSubtitle--JVj1l\",\"advisorSubtitleText\":\"advisorSubtitleText--QqOI2\",\"reviewsContainer\":\"reviewsContainer--fM0j6\",\"noReviews\":\"noReviews--Z1ZgT\",\"advsiorReadingsContainer\":\"advsiorReadingsContainer--VXGKD\",\"advisorCTAs\":\"advisorCTAs--oHBcI\",\"ctaSkeletonContainer\":\"ctaSkeletonContainer--UfdXN\",\"ctaSkeleton\":\"ctaSkeleton--zuiK7\",\"animation-bzdot9\":\"animation-bzdot9--lvBPe\",\"ctaSkeletonFullWidth\":\"ctaSkeletonFullWidth--vnjN9\",\"busyLableContainer\":\"busyLableContainer--CHmhf\",\"couponLabelContainerBrowser\":\"couponLabelContainerBrowser--NGJQN\",\"couponLabelContainerMobile\":\"couponLabelContainerMobile--t2hFW\",\"terminatedAdvisor\":\"terminatedAdvisor--VCJWd\",\"aboutMyServicesContainer\":\"aboutMyServicesContainer--vf4im\",\"aboutMyServicesText\":\"aboutMyServicesText--L4vPv\",\"aboutMyServicesReadMoreBtn\":\"aboutMyServicesReadMoreBtn--w4nw7\",\"promotionLabelContainerBrowser\":\"promotionLabelContainerBrowser--WvzTs\",\"promotionLabelContainerMobile\":\"promotionLabelContainerMobile--kOAGv\"};","/* eslint-disable camelcase */\nimport { isAdvisorBusy, getModeColor } from '../../../../config/util';\nimport { isWebView } from '../../../../../common/config/utils';\n\nexport const modeIsOnline = (modeState) => modeState === 'online';\nexport const getBGColor = (mode, modeState) => {\n if (modeState !== 'online') return '#EAEAEA';\n if (isWebView() && (mode === 'voice' || mode === 'video')) {\n return '#EAEAEA';\n }\n const defaultModeColors = { chat: getModeColor('chat'), voice: getModeColor('voice'), video: getModeColor('video') };\n return defaultModeColors[mode];\n};\n\nexport const getModeShadowColor = ({ modeState }) => {\n if (modeState !== 'online') return null;\n return { boxShadow: 'inset 0px -2px 0px rgba(0, 0, 0, 0.25)' };\n};\n\nexport const getModeStatusColor = ({\n mode, modeState, liveModes, isFreeMinLabel = false\n}) => {\n if (isAdvisorBusy({ liveModes }) && !isFreeMinLabel) return { color: 'transparent', backgroundColor: 'transparent' };\n if (modeState === 'busy') return { color: window.shared.advisorBusyColor };\n if (modeState !== 'online') return { color: '#A1A1A1' };\n if (isWebView() && (mode === 'voice' || mode === 'video')) {\n return { color: '#A1A1A1' };\n }\n const modeColors = { chat:{ color: getModeColor('chat') }, voice: { color: getModeColor('voice') }, video: { color: getModeColor('video') } };\n return modeColors[mode];\n};\n\nexport const getModeTitleColor = (modeState, mode) => {\n if (isWebView() && (mode === 'voice' || mode === 'video')) {\n return { color: '#A1A1A1' };\n }\n if (modeState === 'disabled') return { color: '#A1A1A1' };\n if (modeState !== 'online') return { color: '#363636' };\n return { color: '#FFFFFF' };\n};\n\nexport const getModePriceColor = (modeState, mode) => {\n if (isWebView() && (mode === 'voice' || mode === 'video')) {\n return { color: '#7D7D7D' };\n }\n if (modeState !== 'online') return { color: '#7D7D7D' };\n return { color: '#FFFFFF' };\n};\n\nexport const modeStatusStrings = {\n online: 'advisor_profile.live', offline: 'advisor_profile.offline', busy: 'advisor_profile.busy', disabled: 'advisor_profile.disabled'\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"fullWidth\":\"fullWidth--VAFfS\",\"modeUnavailablePoppupContainer\":\"modeUnavailablePoppupContainer--um4M3\",\"modeUnavailablePoppupBtn\":\"modeUnavailablePoppupBtn--BQQky\",\"default\":\"default--qX13t\",\"modeTitle\":\"modeTitle--KFD4l\",\"modePrice\":\"modePrice--Dl5PX\",\"sale\":\"sale--QvuT7\",\"modeStatus\":\"modeStatus--a_T2W\",\"pricesContainer\":\"pricesContainer--fmLoy\",\"modeImage\":\"modeImage--r1SjU\",\"freeMinContainer\":\"freeMinContainer--jGMeQ\",\"advisorFixContainer\":\"advisorFixContainer--Oes_i\",\"previewAdvisorCTA\":\"previewAdvisorCTA--JWJbd\",\"previewCtaIcon\":\"previewCtaIcon--TD_Tc\",\"staffPick\":\"staffPick--eyd95\",\"freeMinIcon\":\"freeMinIcon--lCPdg\",\"freeMinTextContainer\":\"freeMinTextContainer--olfw0\",\"animation-bzdot9\":\"animation-bzdot9--mb1p3\"};","import React from 'react';\nimport queryString from 'query-string';\nimport classNames from 'classnames';\nimport {\n isWebView, toCamelCase, getStartChatClickSource,\n isPG\n} from '../../../../../common/config/utils';\nimport Const from '../../../../config/const';\nimport {\n isAdvisorBusy, getSectionForEvent, getClickSourceForEvent, getAvailableSalesPrice\n} from '../../../../config/util';\nimport classes from './classes.module.scss';\nimport { freeMinIcon } from '../../img/free_min_icon';\n\nimport { getModePriceColor } from './style_config';\n\nexport const getAltMessage = ({ mode }) => {\n const altMessageForModes = { chat: 'Live chat', voice: 'Voice call', video: 'Video call' };\n return altMessageForModes[mode];\n};\n\nexport const getModeTitle = ({ mode, name, t }) => {\n if (mode === 'chat') return t('advisor_profile.chat_mode_name');\n return name;\n};\n\nconst triggerLogin = (args) => {\n const {\n completion, authPendingAction, displayRegister, mode\n } = args;\n authPendingAction(() => { completion(args); });\n let signUpFlow = '';\n switch (mode) {\n case 'voice': signUpFlow = 'voice profile'; break;\n case 'video': signUpFlow = 'video profile'; break;\n default: signUpFlow = 'chat profile'; break;\n }\n displayRegister({ shouldDisplay: true, signUpFlow });\n};\n\nexport const onStartChat = ({\n id, name, profilePictureUrl, price,\n location, chatInit, startChat, mode, displayRegister, authPendingAction, requestParams\n}) => {\n const { section } = location.state || {};\n const homepageSection = section;\n const startChatAction = () => {\n chatInit(id, name, profilePictureUrl, price, getStartChatClickSource(location), requestParams);\n startChat(\n id,\n parseFloat(price),\n profilePictureUrl,\n name,\n getStartChatClickSource(location),\n homepageSection,\n requestParams\n );\n };\n if (!window.currentUserId) {\n triggerLogin({\n name,\n profilePictureUrl,\n price,\n id,\n mode,\n displayRegister,\n authPendingAction,\n completion: startChatAction,\n requestParams\n });\n return;\n }\n startChatAction();\n};\n\nexport const onStartVoip = ({\n id, name, profilePictureUrl, price,\n location, makeCallOrShowPopup, mode, displayRegister, authPendingAction, requestParams\n}) => {\n const { section } = location.state || {};\n const homepageSection = section;\n const startVoipAction = () => {\n makeCallOrShowPopup({\n id, ppm: parseFloat(price), profilePictureUrl, name, startChatClickSource: getStartChatClickSource(location),\n homepageSection, voipType: mode === 'voice' ? Const.chatType.voice : Const.chatType.video, requestParams\n });\n };\n if (!window.currentUserId) {\n triggerLogin({\n name,\n profilePictureUrl,\n price,\n id,\n mode,\n displayRegister,\n authPendingAction,\n completion: startVoipAction,\n requestParams\n });\n return;\n }\n startVoipAction();\n};\n\nexport const getImage = ({ mode, modeState, liveModes }) => {\n if (isWebView() && (mode === 'voice' || mode === 'video')) {\n return `${ mode }_offline`;\n }\n if (modeState === 'online') return `${ mode }_${ modeState }`;\n if (isAdvisorBusy({ liveModes })) return `${ mode }_busy`;\n return `${ mode }_offline`;\n};\n\nexport const renderPrice = ({\n promoPrices, price, userAdvisorModeSalePrice, modeState, mode\n}) => {\n const availableSalesPrice = getAvailableSalesPrice({ promoPrices, userAdvisorModeSalePrice });\n return (\n <span className={ classes.modePrice } style={ { ...getModePriceColor(modeState, mode) } }>\n <span className={ availableSalesPrice ? classes.sale : '' }>\n {price ? `$${ parseFloat(price).toFixed(2) }/min` : '\\n'}\n </span>\n {availableSalesPrice && (\n <div>\n {`$${ parseFloat(availableSalesPrice).toFixed(2) }/min`}\n </div>\n )}\n </span>\n );\n};\n\nexport const trackProfileChatButtonAction = ({\n price, id, mode, location, trackProfileChatButton\n}) => {\n const params = {\n ppm: parseFloat(price),\n advisorId: id,\n mode,\n ...getClickSourceForEvent({ location }),\n ...getSectionForEvent({ location })\n };\n trackProfileChatButton(params);\n};\n\nexport const getAdvisorCTABtnClassName = ({ theme }) => {\n if (isPG()) return classes[`${ theme }`];\n return classNames(classes[`${ theme }`], classes.fullWidth);\n};\n\nconst getAction = () => {\n const availableAction = { chat_init: 'chat', voice_init: 'voice', video_init: 'video' };\n const { action } = toCamelCase(queryString.parse(window.location.search));\n return availableAction[action];\n};\n\nexport const makeActionIfNeed = ({\n mode, advisorCTAOnClick, location, history\n}) => {\n const action = getAction();\n if (action === mode) {\n const search = toCamelCase(queryString.parse(location.search));\n delete search.action;\n const updatedSearch = queryString.stringify(search);\n history(`${ location.pathname }?${ updatedSearch }`, {\n search: updatedSearch,\n state: { ...location.state }\n });\n advisorCTAOnClick({ action });\n }\n};\n\nexport const renderfreeMinLabel = (color, freeMinText) => (\n <div className={ classes.freeMinContainer } style={ { '--free-min-color': color } }>\n <div className={ classes.freeMinIcon }>{ freeMinIcon({ color }) }</div>\n <div className={ classes.freeMinTextContainer }>{ freeMinText }</div>\n </div>\n);\n","export const advisorCtaThemes = {\n default: 'default',\n advisorFixContainer: 'advisorFixContainer'\n};\n","/* eslint-disable object-property-newline */\n/* eslint-disable camelcase */\nimport React, { useEffect, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport { LiveModePropType, LiveModeDefaultProps } from '../../../../reducers/advisor_prop_types';\nimport { appGeneralPopupTheme, salesPriceType } from '../../../../config/const';\nimport { isXfmProgram, getXfmFreeSetupMin } from '../../../../config/util';\nimport {\n modeIsOnline, getBGColor, getModeShadowColor,\n getModeStatusColor, getModeTitleColor, modeStatusStrings\n} from './style_config';\nimport classes from './classes.module.scss';\nimport ExpandedText from '../../../../../common/helpers/expanded_text';\nimport AppGeneralPopup from '../../../../../common/app_general_popup';\nimport {\n getAltMessage, getModeTitle, onStartChat, onStartVoip, getImage, renderPrice,\n trackProfileChatButtonAction, getAdvisorCTABtnClassName, makeActionIfNeed, renderfreeMinLabel\n} from './advisor_cta_utils';\nimport { isWebView } from '../../../../../common/config/utils';\nimport { SvgIcon } from '../../../../../common/sprites';\nimport { advisorCtaThemes } from './advisor_cta_themes';\n\nconst getImageId = (mode) => {\n if (mode === 'chat') return 'chat_preview_cta';\n return isWebView() ? 'voice_preview_cta_disabled' : 'voice_preview_cta';\n};\n\nconst renderPreviewAdvisorCTA = (mode, onClick, t) => (\n <button disabled={ isWebView() && mode !== 'chat' } style={ isWebView() && mode !== 'chat' ? { backgroundColor: '#EAEAEA', color: '#A1A1A1' } : {} } type=\"button\" className={ classes.previewAdvisorCTA } onClick={ (e) => onClick({ e }) }>\n <SvgIcon id={ getImageId(mode) } className={ classes.previewCtaIcon } />\n {mode === 'chat' ? t('advisor_profile.chat_now') : t('advisor_profile.call_now')}\n </button>\n);\n\nconst getActualPrice = ({ promoPrices, userAdvisorModeSalePrice, price }) => {\n if (userAdvisorModeSalePrice === salesPriceType.personalSalesPrice) return price;\n const { salesPrice } = promoPrices;\n if (salesPrice) return salesPrice;\n return price;\n};\n\nfunction AdvisorCTA({\n id, mode, modeState, price, displayRegister, authPendingAction, startChat, name, advisorCallProps, type,\n chatInit, makeCallOrShowPopup, theme, promoPrices, t, trackProfileChatButton, liveModes, xfmProgram, userXfmProgram, needCheckAction, userAdvisorModeSalePrice\n}) {\n const [modeUnavailablePoppupVisible, setModeUnavailablePoppupVisible] = useState(null);\n const location = useLocation();\n const history = useNavigate();\n\n const defaultStartProps = () => ({\n price: getActualPrice({ promoPrices, userAdvisorModeSalePrice, price }), displayRegister, authPendingAction, location,\n mode, startChat, chatInit\n });\n\n const hideModeUnavailablePoppup = () => {\n setModeUnavailablePoppupVisible(false);\n };\n\n const renderModeUnavailablePoppup = () => (\n <AppGeneralPopup\n visible={ modeUnavailablePoppupVisible }\n theme={ appGeneralPopupTheme.CENTERED }\n >\n <div className={ classes.modeUnavailablePoppupContainer }>\n {t('advisor_profile.advisor_mode_just_becomes_unavailable')}\n <div\n onClick={ hideModeUnavailablePoppup }\n onKeyDown={ hideModeUnavailablePoppup }\n className={ classes.modeUnavailablePoppupBtn }\n >\n { t('general.ok') }\n </div>\n </div>\n </AppGeneralPopup>\n );\n\n const advisorCTAOnClick = ({ action, e }) => {\n e?.preventDefault();\n if (isWebView() && (mode === 'voice' || mode === 'video')) {\n return;\n }\n if (!modeIsOnline(modeState)) {\n if (action) setModeUnavailablePoppupVisible(true);\n return;\n }\n const requestParams = { context: 'advisor_cta' };\n trackProfileChatButtonAction({\n price, id, mode, location, trackProfileChatButton\n });\n if (mode === 'chat') {\n onStartChat({ ...defaultStartProps(), ...advisorCallProps, requestParams });\n return;\n }\n onStartVoip({\n ...defaultStartProps(), makeCallOrShowPopup, ...advisorCallProps, requestParams\n });\n };\n\n useEffect(() => {\n if (needCheckAction) {\n makeActionIfNeed({\n mode, advisorCTAOnClick, location, history\n });\n }\n }, []);\n\n const freeMinLabel = useMemo(() => {\n if (theme === advisorCtaThemes.advisorFixContainer) return null;\n if (!isXfmProgram({ advisorXfmProgram: xfmProgram, userXfmProgram })) return null;\n const { color } = getModeStatusColor({\n mode, modeState, liveModes, isFreeMinLabel: true\n });\n const freeMinText = t('advisor_profile.free_min', { amount: getXfmFreeSetupMin() });\n return renderfreeMinLabel(color, freeMinText);\n }, [xfmProgram, userXfmProgram, modeState]);\n\n const renderAdvisorCTA = () => (type === 'advisorPreviewCta' ? renderPreviewAdvisorCTA(mode, advisorCTAOnClick, t) : (\n <button\n onKeyDown={ e => { e.preventDefault(); } }\n type=\"button\"\n onClick={ (event) => advisorCTAOnClick({ e: event }) }\n className={ getAdvisorCTABtnClassName({ theme }) }\n style={ { backgroundColor: getBGColor(mode, modeState), ...getModeShadowColor({ modeState }) } }\n >\n { freeMinLabel }\n <SvgIcon className={ classes.modeImage } id={ `${ getImage({ mode, modeState, liveModes }) }` } title={ getAltMessage({ mode }) } />\n <div className={ classes.pricesContainer }>\n <span className={ classes.modeTitle } style={ { ...getModeTitleColor(modeState, mode) } }>\n <ExpandedText\n customClasses={ { text: classes.modeTitle } }\n ellipsis\n >\n { getModeTitle({ name, mode, t }) }\n </ExpandedText>\n </span>\n { renderPrice({\n promoPrices, price, userAdvisorModeSalePrice, modeState, mode\n }) }\n </div>\n <span className={ classes.modeStatus } style={ { ...getModeStatusColor({ mode, modeState, liveModes }) } }>\n {isWebView() && t(modeStatusStrings[modeState])}\n </span>\n { renderModeUnavailablePoppup() }\n </button>\n ));\n\n return renderAdvisorCTA();\n}\n\nAdvisorCTA.propTypes = {\n ...LiveModePropType,\n displayRegister: PropTypes.func.isRequired,\n authPendingAction: PropTypes.func.isRequired,\n trackProfileChatButton: PropTypes.func.isRequired,\n startChat: PropTypes.func.isRequired,\n makeCallOrShowPopup: PropTypes.func.isRequired,\n chatInit: PropTypes.func.isRequired,\n advisorCallProps: PropTypes.object.isRequired,\n theme: PropTypes.string,\n index: PropTypes.number,\n t: PropTypes.func.isRequired,\n id: PropTypes.number.isRequired,\n liveModes: PropTypes.array.isRequired,\n xfmProgram: PropTypes.object,\n userXfmProgram: PropTypes.object,\n needCheckAction: PropTypes.bool,\n type: PropTypes.string,\n userAdvisorModeSalePrice: PropTypes.string\n};\n\nAdvisorCTA.defaultProps = {\n ...LiveModeDefaultProps,\n index: null,\n xfmProgram: {},\n userXfmProgram: {},\n needCheckAction: null,\n type: null,\n userAdvisorModeSalePrice: null\n};\n\nexport default AdvisorCTA;\n","import { connect } from 'react-redux';\nimport { withLastLocation } from 'react-router-dom-last-location';\nimport AdvisorCTA from './advisor_cta';\nimport {\n trackEventAddToCardAction,\n trackProfileChatButton\n} from '../../../../actions/analytics';\nimport { makeCallOrShowPopup } from '../../../../actions/voip_chat';\nimport { startChat, chatInit } from '../../../../actions/chat';\nimport { authPendingAction, displayRegister } from '../../../../actions/auth';\nimport withPGTranslation from '../../../../config/withPGTranslation';\nimport { showGeneralPopup } from '../../../../actions/general_popup';\nimport { advisorCtaThemes } from './advisor_cta_themes';\nimport { getUserFirstActivePromotion } from '../../../../config/util';\n\nconst mapStateToProps = (\n { advisors, user, application },\n { advisorId, theme }\n) => ({\n ...((advisors || {})[parseInt(advisorId, 10)] || {}),\n theme: theme || advisorCtaThemes.default,\n userXfmProgram: user && user.user && user.user.xfmProgram,\n userAdvisorModeSalePrice: getUserFirstActivePromotion({ user, application })?.advisorModeSalePrice\n});\n\nexport default connect(\n mapStateToProps,\n {\n startChat,\n authPendingAction,\n trackEventAddToCardAction,\n displayRegister,\n trackProfileChatButton,\n showGeneralPopup,\n makeCallOrShowPopup,\n chatInit\n }\n)(withLastLocation(withPGTranslation(AdvisorCTA)));\n","/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { useLocation } from 'react-router-dom';\nimport {\n handleFavoriteClick, handleNotifyClick, renderNotify, renderFav\n} from './top_icons_utils';\nimport { AdvisorPropType, AdvisorDefaultProps } from '../../../reducers/advisor_prop_types';\nimport classes from './classes.module.scss';\nimport { isWebView } from '../../../../common/config/utils';\nimport { SvgIcon } from '../../../../common/sprites';\n\nfunction TopIcons({\n id, favoriteAdvisor, favorite, t,\n displayRegister, authPendingAction, displayNotifyMe, showGeneralPopup,\n loader, theme, favoriteLoading, availabilityNotification, advisorStatus\n}) {\n const location = useLocation();\n const onFavClick = (e) => {\n handleFavoriteClick(e, favoriteAdvisor, favorite, id, displayRegister, authPendingAction, location, favoriteLoading);\n };\n\n const onNotifyClick = (e) => {\n handleNotifyClick(e, displayNotifyMe, id, showGeneralPopup, authPendingAction, displayRegister, location);\n };\n\n const onShare = () => {\n navigator.share({\n text: t('advisor_profile.share_message'),\n url: window.location.href\n });\n };\n\n const shareTopIcon = () => (\n <button\n type=\"button\"\n onClick={ onShare }\n className={ classes.iconButton }\n >\n <SvgIcon id=\"black_share\" className={ classes.topIconImgBlack } />\n <SvgIcon id=\"white_share\" className={ classes.topIconImgWhite } />\n </button>\n );\n\n if (loader) return null;\n\n return (\n <div className={ classes[theme] }>\n <div className={ classes.iconsSectionContainer } suppressHydrationWarning>\n {!isWebView() && renderNotify({\n onNotifyClick, availabilityNotification, advisorStatus, t\n }) }\n { renderFav(onFavClick, favorite) }\n { navigator.share ? shareTopIcon() : null }\n </div>\n </div>\n );\n}\n\nTopIcons.propTypes = {\n ...AdvisorPropType,\n showBagde: PropTypes.bool,\n needTrackProfileVideoEvent: PropTypes.bool,\n favoriteAdvisor: PropTypes.func.isRequired,\n authPendingAction: PropTypes.func.isRequired,\n displayRegister: PropTypes.func.isRequired,\n onNotifyClick: PropTypes.func,\n displayNotifyMe: PropTypes.func.isRequired,\n showGeneralPopup: PropTypes.func,\n loader: PropTypes.bool,\n showPopover: PropTypes.func,\n showSharePopup: PropTypes.func,\n advisorShareLink: PropTypes.string.isRequired,\n theme: PropTypes.string,\n t: PropTypes.func.isRequired,\n favoriteLoading: PropTypes.bool.isRequired,\n advisorStatus: PropTypes.string\n};\n\nTopIcons.defaultProps = {\n ...AdvisorDefaultProps,\n showBagde: false,\n needTrackProfileVideoEvent: false,\n showGeneralPopup: null,\n loader: false,\n showPopover: null,\n onNotifyClick: null,\n theme: null,\n advisorStatus: null\n};\n\nexport default TopIcons;\n","import { connect } from 'react-redux';\nimport TopIcons from './top_icons';\nimport { showGeneralPopup } from '../../../actions/general_popup';\nimport { authPendingAction, displayRegister } from '../../../actions/auth';\nimport { favoriteAdvisor } from '../../../actions/favorite_advisors';\nimport { displayNotifyMe } from '../../../actions/notify_me';\nimport { showPopover } from '../../../actions/popover';\nimport withPGTranslation from '../../../config/withPGTranslation';\n\nconst mapStateToProps = (\n { favoriteAdvisors: { loading } }\n) => ({\n favoriteLoading: loading\n});\n\nexport default connect(\n mapStateToProps,\n {\n showGeneralPopup,\n favoriteAdvisor,\n authPendingAction,\n displayRegister,\n displayNotifyMe,\n showPopover\n }\n)(withPGTranslation(TopIcons));\n","// extracted by mini-css-extract-plugin\nexport default {\"profileContainer\":\"profileContainer--wwUgJ\",\"avatarContainer\":\"avatarContainer--tJrEX\",\"advisorProfile\":\"advisorProfile--GDqLO\",\"profileImg\":\"profileImg--X741Z\",\"transparentOverlay\":\"transparentOverlay--OhR3w\",\"videoContainer\":\"videoContainer--vPRCK\",\"text\":\"text--EWag_\",\"playButtonContainer\":\"playButtonContainer--ZVuQM\",\"playButtonImg\":\"playButtonImg--J07y4\",\"statusContainer\":\"statusContainer--LMVIZ\",\"indicatorContainer\":\"indicatorContainer--iiKek\",\"statusTitle\":\"statusTitle--mrDM3\",\"onlineIndicator\":\"onlineIndicator--h_yTT\",\"offlineIndicator\":\"offlineIndicator--hLHqg\",\"busyIndicator\":\"busyIndicator--qGETZ\",\"indicatorSkeleton\":\"indicatorSkeleton--X9gO4\",\"animation-bzdot9\":\"animation-bzdot9--oPsTb\",\"profileImageContainer\":\"profileImageContainer--FQTqi\",\"badgeContainer\":\"badgeContainer--kbNQ1\",\"highRatedContainer\":\"highRatedContainer--lPevL\",\"ratedImg\":\"ratedImg--R7fsm\",\"badgeText\":\"badgeText--V7OxY\",\"textRated\":\"textRated--arFoq\",\"avatar\":\"avatar--qnHr2\",\"topItemsContainer\":\"topItemsContainer--UhSyE\",\"ratingContainer\":\"ratingContainer--t8_Kg\",\"starImg\":\"starImg--Oj7TC\",\"ratingText\":\"ratingText--asKdU\",\"notifyContainer\":\"notifyContainer--apcvr\",\"favouriteContainer\":\"favouriteContainer--dyPSI\",\"shareContainer\":\"shareContainer--vrsHX\",\"nameSectionContainer\":\"nameSectionContainer--WcAw2\",\"nickNameContainer\":\"nickNameContainer--he52x\",\"nickNameText\":\"nickNameText--fhdzk\",\"serviceTitleContainer\":\"serviceTitleContainer--pyOg3\",\"serviceTitleText\":\"serviceTitleText--_qUT4\",\"iconsSectionContainer\":\"iconsSectionContainer--Y66zR\",\"notifyFavorite\":\"notifyFavorite--jJ3P1\",\"container\":\"container--EyYEo\",\"radioBtnContainer\":\"radioBtnContainer--DJcNL\",\"radioBtnClone\":\"radioBtnClone--DSxOX\",\"radioBtnSelected\":\"radioBtnSelected--ycpLY\",\"advisorInfo\":\"advisorInfo--BRF8y\",\"terminatedAdvisor\":\"terminatedAdvisor--R2ixS\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Skeleton from 'react-loading-skeleton';\nimport Rating from '../advisor_avatar/rating/rating';\nimport TopIcons from './top_icons';\nimport { AdvisorPropType, AdvisorDefaultProps } from '../../reducers/advisor_prop_types';\nimport classes from './classes.module.scss';\nimport AdvisorVideoPlayer from '../advisor_video_player';\nimport { advisorProfileAvatarTheme } from '../../config/themes';\nimport ExpandedText from '../../../common/helpers/expanded_text';\nimport { getReviewCount, isPrerenderMode } from '../../config/util';\nimport env from '../../config/variables';\n\nconst { BADGES } = env;\n\nconst defaultAvatar = require('../header/img/home_placeholder.png');\n\nconst renderBadge = (advisorBadgeData) => {\n const backgroundColor = advisorBadgeData.color;\n return (\n <div className= { classes.badgeContainer } style={ { backgroundColor } } suppressHydrationWarning>\n <img\n className = { classes.ratedImg }\n src = { advisorBadgeData.icon_url }\n alt=\"\"\n suppressHydrationWarning\n />\n <span className={ classes.badgeText } suppressHydrationWarning>{ advisorBadgeData.name }</span>\n </div>\n );\n};\n\nconst renderNameSectionContent = ({ nickname, serviceTitle, loading }) => (\n <div className={ classes.nameSectionContainer } itemProp=\"author\" itemScope itemType=\"http://schema.org/Person\">\n <div id=\"product-name-for-ref-to\" itemProp=\"name\" className={ classes.nickNameContainer }>\n <ExpandedText\n customClasses={ { text: classes.nickNameText } }\n skeleton={ <Skeleton width={ 170 } /> }\n loading={ loading }\n ellipsis\n >\n { nickname }\n </ExpandedText>\n </div>\n <div id=\"product-name-for-ref-to\" itemProp=\"name\" className={ classes.serviceTitleContainer }>\n <ExpandedText\n customClasses={ { text: classes.serviceTitleText } }\n skeleton={ <Skeleton width={ 170 } /> }\n loading={ loading }\n ellipsis\n >\n { serviceTitle }\n </ExpandedText>\n </div>\n </div>\n);\n\nconst renderNameSection = ({\n nickname, serviceTitle, likesCount, dislikesCount, rating, loading\n}) => {\n const reviewCount = getReviewCount({ likesCount, dislikesCount });\n if (reviewCount > 0 && rating > 0) {\n return (\n <div itemProp=\"review\" itemScope itemType=\"https://schema.org/Review\">\n { renderNameSectionContent({ nickname, serviceTitle, loading }) }\n </div>\n );\n }\n return renderNameSectionContent({ nickname, serviceTitle, loading });\n};\n\nconst renderBadges = (badges) => {\n if (!badges || !badges.length) return null;\n if (!BADGES || !BADGES.length) return null;\n const advisorBadge = badges.find(item => item !== 'tryout');\n if (!advisorBadge) return null;\n const advisorBadgeData = BADGES.find((badge) => advisorBadge === badge.id);\n return renderBadge(advisorBadgeData);\n};\n\nconst getAdvisorStatusClassName = ({ loading, status }) => {\n if (isPrerenderMode() || loading || !status) return classes.indicatorSkeleton;\n return classes[`${ status }Indicator`];\n};\n\nconst renderAdvisorStatus = ({ status, t, loading }) => (\n <div className={ classes.indicatorContainer }>\n <div className={ getAdvisorStatusClassName({ loading, status }) }>\n <span className={ classes.statusTitle } suppressHydrationWarning>{ t(`advisor_profile.status_label_${ status }`).toUpperCase()}</span>\n </div>\n </div>\n);\n\nconst renderTopIcons = (\n id,\n favoriteAdvisor,\n favorite,\n loading,\n theme,\n availabilityNotification,\n status\n) => (\n <TopIcons\n id = { id }\n favoriteAdvisor = { favoriteAdvisor }\n favorite = { favorite }\n loader = { loading }\n theme={ theme }\n availabilityNotification={ availabilityNotification }\n advisorStatus={ status }\n />\n);\n\nconst renderRating = (loading, rating, isNewAdvisor) => {\n if (loading) return null;\n return (\n <Rating\n className={ classes.ratingContainer }\n rating={ rating }\n isNewAdvisor={ isNewAdvisor }\n />\n );\n};\n\nconst renderTopIconsContainer = (\n loading,\n rating,\n isNewAdvisor,\n id,\n favoriteAdvisor,\n favorite,\n theme,\n availabilityNotification,\n status\n) => (\n <div className={ classes.topItemsContainer }>\n { renderRating(loading, rating, isNewAdvisor) }\n { renderTopIcons(\n id,\n favoriteAdvisor,\n favorite,\n loading,\n theme,\n availabilityNotification,\n status\n ) }\n </div>\n);\n\nfunction AdvisorProfileAvatar({\n profilePictureUrl, profileVideoUrl, nickname, serviceTitle, rating, id, loading,\n favoriteAdvisor, favorite, isNewAdvisor,\n profileVideoThumbUrl, badges, status, theme, t,\n likesCount, dislikesCount, availabilityNotification\n}) {\n const renderVideoPlayer = () => {\n if (theme !== advisorProfileAvatarTheme.default) return null;\n return (\n <AdvisorVideoPlayer\n profileVideoUrl={ profileVideoUrl }\n profilePictureUrl={ profileVideoThumbUrl }\n profileVideoThumbUrl={ profileVideoThumbUrl }\n needTrackProfileVideoEvent\n advisorId={ id }\n />\n );\n };\n\n const advisorInfo = () => (\n <div className={ classes.advisorInfo }>\n { renderBadges(badges) }\n { renderNameSection({\n nickname, serviceTitle, likesCount, dislikesCount, rating, loading\n }) }\n </div>\n );\n\n const renderProfileAvatar = () => (\n <div className = { classes.profileContainer }>\n <div className={ classes.avatarContainer }>\n { renderTopIconsContainer(\n loading,\n rating,\n isNewAdvisor,\n id,\n favoriteAdvisor,\n favorite,\n theme,\n availabilityNotification,\n status\n ) }\n <div className = { classes.profileImageContainer }>\n <div className={ classes.transparentOverlay } />\n <img\n suppressHydrationWarning\n src={ profilePictureUrl || defaultAvatar }\n itemScope\n itemProp=\"image\"\n className={ classes.profileImg }\n alt={ nickname }\n style={ !profilePictureUrl ? { objectFit: 'scale-down' } : null }\n />\n { renderVideoPlayer() }\n { advisorInfo() }\n </div>\n <div className={ classes.statusContainer }>\n { renderAdvisorStatus({ status, t, loading }) }\n </div>\n </div>\n </div>\n );\n\n return (\n <div className={ classes[theme] }>\n {renderProfileAvatar()}\n </div>\n );\n}\n\nAdvisorProfileAvatar.propTypes = {\n ...AdvisorPropType,\n showBagde: PropTypes.bool,\n needTrackProfileVideoEvent: PropTypes.bool,\n favoriteAdvisor: PropTypes.func.isRequired,\n onNotifyClick: PropTypes.func,\n loading: PropTypes.bool,\n badges:PropTypes.array,\n theme: PropTypes.string,\n t: PropTypes.func.isRequired\n};\n\nAdvisorProfileAvatar.defaultProps = {\n ...AdvisorDefaultProps,\n showBagde: false,\n needTrackProfileVideoEvent: false,\n loading: null,\n badges: [],\n onNotifyClick: null,\n theme: advisorProfileAvatarTheme.default\n};\n\nexport default AdvisorProfileAvatar;\n","import { connect } from 'react-redux';\nimport { showGeneralPopup } from '../../actions/general_popup';\nimport { favoriteAdvisor } from '../../actions/favorite_advisors';\nimport AdvisorProfileAvatar from './advisor_profile_avatar';\nimport withPGTranslation from '../../config/withPGTranslation';\n\nconst mapStateToProps = ({\n advisors\n}, { advisorId }) => ({\n ...(advisors || {})[parseInt(advisorId, 10)] || {}\n});\n\nexport default connect(\n mapStateToProps,\n {\n showGeneralPopup,\n favoriteAdvisor\n }\n)(withPGTranslation(AdvisorProfileAvatar));\n","// extracted by mini-css-extract-plugin\nexport default {\"avatarBrowserContainer\":\"avatarBrowserContainer--x9bTx\",\"rating\":\"rating--ZN9I3\",\"advsiorReadingsContainer\":\"advsiorReadingsContainer--xKoxV\",\"topIconsContainer\":\"topIconsContainer--ZHHjA\",\"reviewItem\":\"reviewItem--jaEeH\",\"reviewImg\":\"reviewImg--Q5CMV\",\"reviewItemAdvisorHeader\":\"reviewItemAdvisorHeader--lW7Ew\",\"reviewItemReviewsSection\":\"reviewItemReviewsSection--HBFqK\",\"fixedContainerBrowser\":\"fixedContainerBrowser--VQy27\",\"fixedTopContainerMobile\":\"fixedTopContainerMobile--IvU0r\",\"fixedTopContentMobile\":\"fixedTopContentMobile--ICAKk\",\"fixedBottomContainerMobile\":\"fixedBottomContainerMobile--WJvPG\",\"fixedContentBrowser\":\"fixedContentBrowser--dxupP\",\"fixedContainerAvatarContainer\":\"fixedContainerAvatarContainer--bsY2r\",\"fixedContainerAvatarHolder\":\"fixedContainerAvatarHolder--A3UHL\",\"advisorStaticTitleContainer\":\"advisorStaticTitleContainer--qH2j0\",\"advisorNameContainer\":\"advisorNameContainer--JbvyU\",\"advisorNameText\":\"advisorNameText--xlgkd\",\"advisorServiceTitleContainer\":\"advisorServiceTitleContainer--fdRcS\",\"advisorServiceTitleText\":\"advisorServiceTitleText--F1nu3\",\"optionsContainer\":\"optionsContainer--IbPTc\",\"ctaHolder\":\"ctaHolder--nHWJO\",\"topIconsContaner\":\"topIconsContaner--EnVi1\",\"ctaSkeletonContainer\":\"ctaSkeletonContainer--i_jAE\",\"ctaSkeleton\":\"ctaSkeleton--afpu4\",\"animation-bzdot9\":\"animation-bzdot9--iIPu4\",\"ctaSkeletonFullWidth\":\"ctaSkeletonFullWidth--AQl4U\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport { SvgIcon } from '../../../../common/sprites';\n\nexport const reviewItemThemes = {\n advisorHeader: 'reviewItemAdvisorHeader',\n reviewsSection: 'reviewItemReviewsSection'\n};\n\nfunction ReviewItem({\n isPositive, value, ignoreLeftMargin, theme\n}) {\n return (\n <div data-testid={ `header-${ isPositive ? 'likes' : 'dislikes' }-count` } className={ classes[theme] } style={ ignoreLeftMargin ? { marginLeft: 0 } : {} } suppressHydrationWarning>\n <div className={ classes.reviewItem } suppressHydrationWarning>\n <SvgIcon className={ classes.reviewImg } id={ isPositive ? 'rate_positive' : 'rate_negative' } />\n { value }\n </div>\n </div>\n );\n}\n\nReviewItem.propTypes = {\n value: PropTypes.number,\n isPositive: PropTypes.bool,\n ignoreLeftMargin: PropTypes.bool,\n theme: PropTypes.string\n};\n\nReviewItem.defaultProps = {\n value: 0,\n isPositive: false,\n ignoreLeftMargin: false,\n theme: reviewItemThemes.reviewsSection\n};\n\nexport default ReviewItem;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Skeleton from 'react-loading-skeleton';\nimport classNames from 'classnames';\nimport classes from './classes.module.scss';\nimport Rating from '../../../advisor_avatar/rating/rating';\nimport AdvisorCTA from '../advisor_cta';\nimport AdvisorProfileAvatar from '../../../advisor_profile_avatar';\nimport { AdvisorPropType, AdvisorDefaultProps } from '../../../../reducers/advisor_prop_types';\nimport ReviewItem, { reviewItemThemes } from '../reviews_items';\nimport TopIcons from '../../../advisor_profile_avatar/top_icons';\nimport { isAdvisorBusy, getReviewCount, isPrerenderMode } from '../../../../config/util';\nimport ReadingSinceAndCountItem, { readingSinceAndCountItemThemes } from '../readingSinceAndCountItem';\nimport { advisorHeaderTheme } from '../../../../config/themes';\nimport ExpandedText from '../../../../../common/helpers/expanded_text';\nimport { isPG } from '../../../../../common/config/utils';\nimport CouponLabel from '../../../../project_items/coupon_items/coupon_label';\n\nconst shouldRenderReviews = (likesCount, dislikesCount) => likesCount > 0 || dislikesCount > 0;\n\nconst reviewItemsContent = (likesCount, dislikesCount, t) => (shouldRenderReviews(likesCount, dislikesCount)\n ? [<ReviewItem key=\"positive\" value={ likesCount } isPositive theme={ reviewItemThemes.advisorHeader } />,\n <ReviewItem key=\"negative\" value={ dislikesCount } isPositive={ false } theme={ reviewItemThemes.advisorHeader } />]\n : <div className={ classes.noReviews } data-testid=\"header-no-reviews\">{t('advisor_profile.no_reviews')}</div>);\n\nconst renderBusyLable = ({ liveModes, t }) => {\n if (!isAdvisorBusy({ liveModes })) return null;\n return (\n <div className={ classes.busyLableContainer }>\n { t('advisor_profile.advisor_busy') }\n </div>\n );\n};\n\nconst advisorCTAs = ({\n loading, liveModes, id, nickname, profilePictureUrl, t, advisorXfmProgram, userXfmProgram\n}) => {\n if (loading || isPrerenderMode() || liveModes.length === 0) {\n const skeletonCount = isPG() ? 3 : 2;\n const skeletonClassName = isPG() ? classes.ctaSkeleton : classNames(classes.ctaSkeleton, classes.ctaSkeletonFullWidth);\n return (\n <div className={ classes.ctaSkeletonContainer }>\n {\n [...Array(skeletonCount)].map((s, index) => (\n <div id={ `ctaSkeleton${ index }` } key={ `ctaSkeleton${ index }` } className={ skeletonClassName } />\n ))\n }\n </div>\n );\n }\n return (\n <div className = { classes.advisorCTAs }>\n {\n liveModes.map((mode) => (\n <AdvisorCTA\n key={ mode.mode }\n { ...mode }\n advisorId={ id }\n advisorCallProps={ {\n id,\n name: nickname,\n profilePictureUrl\n } }\n liveModes={ liveModes }\n advisorXfmProgram={ advisorXfmProgram }\n userXfmProgram={ userXfmProgram }\n needCheckAction\n userActivePromotion\n />\n ))\n }\n {renderBusyLable({ liveModes, t })}\n </div>\n );\n};\n\nconst renderAdvsiorTitleContent = ({ nickname, serviceTitle }) => (\n <div className={ classes.advisorTitleContainer } itemProp=\"author\" itemScope itemType=\"http://schema.org/Person\">\n <div className={ classes.advisorTitle }>\n <ExpandedText\n customClasses={ { text: classes.advisorTitleText } }\n ellipsis\n >\n <h1 className={ classes.advisorTitleText } itemProp=\"name\" suppressHydrationWarning>\n { nickname || '' }\n </h1>\n </ExpandedText>\n </div>\n <div className={ classes.advisorSubtitle }>\n <ExpandedText\n customClasses={ { text: classes.advisorSubtitleText } }\n ellipsis\n >\n <div suppressHydrationWarning data-testid=\"header-service-title\">\n { serviceTitle || '' }\n </div>\n </ExpandedText>\n </div>\n </div>\n);\n\nconst renderAdvsiorTitle = ({\n nickname, serviceTitle, likesCount, dislikesCount, rating\n}) => {\n const reviewCount = getReviewCount({ likesCount, dislikesCount });\n if (reviewCount > 0 && rating > 0) {\n return (\n <div itemProp=\"review\" itemScope itemType=\"https://schema.org/Review\" suppressHydrationWarning>\n { renderAdvsiorTitleContent({ nickname, serviceTitle }) }\n </div>\n );\n }\n return (\n <div suppressHydrationWarning>\n { renderAdvsiorTitleContent({ nickname, serviceTitle }) }\n </div>\n );\n};\n\nfunction AdvisorHeader({\n nickname, serviceTitle, rating, liveModes, id, profilePictureUrl, readingsCount, yearJoined,\n likesCount, dislikesCount, t, favorite, isNewAdvisor, loading, availabilityNotification,\n favoriteAdvisor, theme, serviceDescription, advisorXfmProgram, userXfmProgram, status, discountOffer\n}) {\n const reviewsItems = () => (\n <div className={ classes.reviewsContainer } suppressHydrationWarning>\n {reviewItemsContent(likesCount, dislikesCount, t) }\n </div>\n );\n\n const readingsStats = () => {\n if (loading) return <Skeleton height={ 55 } className={ classes.advsiorReadingsContainer } />;\n return (\n <div className={ classes.advsiorReadingsContainer }>\n <ReadingSinceAndCountItem\n readingsTitleKey=\"advisor_profile.readings_since\"\n readingsCount={ readingsCount }\n yearJoined={ yearJoined }\n theme={ readingSinceAndCountItemThemes.default }\n loading={ loading }\n />\n {reviewsItems()}\n </div>\n );\n };\n\n const renderAboutMyServices = () => (\n <div className={ classes.aboutMyServicesContainer }>\n <div className={ classes.aboutMyServicesTitle }>\n { t('advisorProfile.about_my_services') }\n </div>\n <ExpandedText\n customClasses={ {\n text: classes.aboutMyServicesText,\n readMoreBtn: classes.aboutMyServicesReadMoreBtn\n } }\n skeleton={ <Skeleton className={ classes.ctaSkeleton } /> }\n itemProp=\"description\"\n loading={ loading }\n readMoreKind=\"limitTextByRows\"\n limit={ 4 }\n >\n <div suppressHydrationWarning>\n { serviceDescription || ''}\n </div>\n </ExpandedText>\n </div>\n );\n\n const renderAdvisorModes = () => {\n if (theme === advisorHeaderTheme.terminatedAdvisor) return renderAboutMyServices();\n return advisorCTAs({\n loading, liveModes, id, nickname, profilePictureUrl, t, advisorXfmProgram, userXfmProgram\n });\n };\n\n const renderAdvisorHeader = () => (\n <div className={ classes.advisorHeaderContainer }>\n <div className={ classes.avatarHolder }>\n <AdvisorProfileAvatar advisorId={ id } theme={ theme } loading={ loading } />\n </div>\n <div className={ classes.advisorInfo }>\n <div className={ classes.basicInfoContainer }>\n <div className={ classes.advsiorTitleContainer }>\n { renderAdvsiorTitle({\n nickname, serviceTitle, likesCount, dislikesCount, rating\n })}\n </div>\n <div className={ classes.topIconsAndRatingContainer }>\n <TopIcons\n id = { id }\n favoriteAdvisor = { favoriteAdvisor }\n favorite = { favorite }\n loader = { loading }\n theme={ theme }\n availabilityNotification={ availabilityNotification }\n advisorStatus={ status }\n />\n <div className={ classes.ratingHolder }>\n <Rating\n rating={ rating }\n isNewAdvisor={ isNewAdvisor }\n needAddItemProp\n likesCount={ likesCount }\n dislikesCount={ dislikesCount }\n />\n </div>\n </div>\n </div>\n <div className={ classes.couponLabelContainerBrowser }>\n <CouponLabel type=\"medium\" advisorId={ id } discountOffer={ discountOffer } />\n {/* <CouponLabel type=\"medium\" advisorId={ 200 } discountOffer={ { discountCouponId: 1, expiresAt: '2025-01-10T20:56:00.00Z' } } /> */}\n </div>\n <div className={ classes.advisorModesContainer } id=\"advisorModesContainer\">\n { renderAdvisorModes() }\n </div>\n <div className={ classes.couponLabelContainerMobile }>\n <CouponLabel type=\"small\" discountOffer={ discountOffer } />\n </div>\n {readingsStats()}\n </div>\n </div>\n );\n\n return (\n <div className={ classes[theme] }>\n { renderAdvisorHeader() }\n </div>\n );\n}\n\nAdvisorHeader.propTypes = {\n ...AdvisorPropType,\n onNotifyClick: PropTypes.func,\n badges:PropTypes.array,\n t: PropTypes.func.isRequired,\n theme: PropTypes.string,\n advisorXfmProgram: PropTypes.object,\n userXfmProgram: PropTypes.object,\n discountOffer: PropTypes.object\n};\n\nAdvisorHeader.defaultProps = {\n ...AdvisorDefaultProps,\n badges: [],\n onNotifyClick: null,\n theme: advisorHeaderTheme.default,\n advisorXfmProgram: {},\n userXfmProgram: {},\n discountOffer: {}\n};\n\nexport default AdvisorHeader;\n","import { connect } from 'react-redux';\nimport AdvisorHeader from './advisor_header';\nimport withPGTranslation from '../../../../config/withPGTranslation';\n\nconst mapStateToProps = () => ({});\n\nexport default connect(\n mapStateToProps,\n {}\n)(withPGTranslation(AdvisorHeader));\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container--yDFbA\",\"selectedFilter\":\"selectedFilter--KcMok\",\"smileContainer\":\"smileContainer--ruqft\",\"actionImage\":\"actionImage--eb30h\",\"actionImageBellIcon\":\"actionImageBellIcon--me3AC\",\"actionImageHeartIcon\":\"actionImageHeartIcon--iPFmJ\",\"descriptionTitle\":\"descriptionTitle--rmCVx\",\"descriptionText\":\"descriptionText--_0EAH\",\"mostAccuracyContainer\":\"mostAccuracyContainer--nQiCC\",\"mostAccuracyContainerBrowser\":\"mostAccuracyContainerBrowser--fnLky\",\"mostAccuracyAbsoluteContainerBrowser\":\"mostAccuracyAbsoluteContainerBrowser--NS8Wx\",\"accuracyDetails\":\"accuracyDetails--GOObv\",\"accuracyBtn\":\"accuracyBtn--vIl9K\",\"accuracyContainer\":\"accuracyContainer--Zhldo\",\"accuracyDescription\":\"accuracyDescription--YzATI\",\"crossedPrice\":\"crossedPrice--mTZ0W\",\"accurateModalOkBtn\":\"accurateModalOkBtn--QywRJ\",\"accuracyText\":\"accuracyText--MvW3W\",\"accurateModa\":\"accurateModa--iK1bl\",\"headerButton\":\"headerButton--ZT2SQ\",\"lastOrderStripeRoot\":\"lastOrderStripeRoot--sEvl_\",\"lastOrderStripeRow\":\"lastOrderStripeRow--WHX7s\",\"lastOrderStripeStaticText\":\"lastOrderStripeStaticText--VEAv4\",\"lastOrderStripeTextContainer\":\"lastOrderStripeTextContainer--cmNVV\",\"lastOrderStripeText\":\"lastOrderStripeText--C7r0_\",\"stripeArrowIcon\":\"stripeArrowIcon--zuHws\",\"avisorInfoContainerNames\":\"avisorInfoContainerNames--f8Zfr\",\"infoData\":\"infoData--sWZd7\",\"infoDataBrowser\":\"infoDataBrowser--ZZmrg\",\"advisorInfoNameTextMobile\":\"advisorInfoNameTextMobile--Jma0M\",\"advisorInfoNameTextH1MobileContent\":\"advisorInfoNameTextH1MobileContent--daWzq\",\"advisorInfoServiceTitleTextMobile\":\"advisorInfoServiceTitleTextMobile--AvS_x\",\"advisorInfoTextBrovserView\":\"advisorInfoTextBrovserView--Kwu3m\",\"advisorInfoTextH1BrovserViewContent\":\"advisorInfoTextH1BrovserViewContent--NlL8k\",\"advisorInfoStarBrovserView\":\"advisorInfoStarBrovserView--odUKt\",\"rateCol\":\"rateCol--zB5d6\",\"scrollContainer\":\"scrollContainer--Gk0iA\",\"withoutHeaderContainer\":\"withoutHeaderContainer--uGaaR\",\"headerContainer\":\"headerContainer--UVbnU\",\"fullScreen\":\"fullScreen--tugae\",\"fullDivider\":\"fullDivider--dx5EC\",\"marginDivider\":\"marginDivider--LIKYi\",\"marginDividerBrowser\":\"marginDividerBrowser--E1nun\",\"actionContainer\":\"actionContainer--hX0FS\",\"readingsYearJoinedContainer\":\"readingsYearJoinedContainer--O782n\",\"readingsCount\":\"readingsCount--rNgdQ\",\"yearJoinedCount\":\"yearJoinedCount--HXlc6\",\"advisorInfoContainerBrowser\":\"advisorInfoContainerBrowser--fKS_M\",\"advisorSupportInfoContainerFullScreenBrowser\":\"advisorSupportInfoContainerFullScreenBrowser--UKP88\",\"advisorCoreInfoContainerBrowser\":\"advisorCoreInfoContainerBrowser--Q56dy\",\"advisorSupportInfoContainerBrowser\":\"advisorSupportInfoContainerBrowser--ooK9F\",\"mobileViewContainer\":\"mobileViewContainer--U4A3J\",\"browserViewContainer\":\"browserViewContainer--IyAyg\",\"advisorSupportInfoBrowserDeepRow\":\"advisorSupportInfoBrowserDeepRow--TEkfT\",\"advisorIsOfflineLabel\":\"advisorIsOfflineLabel--h92Jl\",\"advisorIsOfflineLabelCol\":\"advisorIsOfflineLabelCol--TwfbR\",\"advisorIsOfflineLabelNotifyMeButton\":\"advisorIsOfflineLabelNotifyMeButton--wYZre\",\"advisorIsOfflinelabelIcon\":\"advisorIsOfflinelabelIcon--ty1S9\",\"viewContainer\":\"viewContainer--Ngza2\",\"statsHolder\":\"statsHolder--KOmKz\",\"advisorServiseContainer\":\"advisorServiseContainer--CCS9l\",\"categoriesHolder\":\"categoriesHolder--XpoDc\",\"categoriesContainer\":\"categoriesContainer--VPDLL\",\"promotionHolder\":\"promotionHolder--WUInS\",\"promotionFooter\":\"promotionFooter--zvK38\",\"promoLabelContainer\":\"promoLabelContainer--TTyfe\",\"animation-bzdot9\":\"animation-bzdot9--MOw5l\"};","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container--eHFFh\",\"descriptionHolder\":\"descriptionHolder--jd8WT\",\"description\":\"description--YG0CN\",\"specialitiesContainer\":\"specialitiesContainer--mgUia\",\"speciality\":\"speciality--qwZlj\",\"specialityIcon\":\"specialityIcon--JLBg1\",\"specialitiesSeparator\":\"specialitiesSeparator--yFIaf\",\"specialitySkeletonContainer\":\"specialitySkeletonContainer--MUrju\",\"specialitySkeleton\":\"specialitySkeleton--lF2rX\",\"animation-bzdot9\":\"animation-bzdot9--cmxPF\"};","// extracted by mini-css-extract-plugin\nexport default {\"headerContainer\":\"headerContainer--STOKu\",\"item\":\"item--hEDkr\",\"reviewItemHolder\":\"reviewItemHolder--GurQH\",\"reviewsContainer\":\"reviewsContainer--WgHgz\",\"emptyReviewsContainer\":\"emptyReviewsContainer--dCsX8\",\"reviewContainer\":\"reviewContainer--PDnd6\",\"reviewerName\":\"reviewerName--PG5tf\",\"reviewImgContainer\":\"reviewImgContainer--jSCzO\",\"reviewImage\":\"reviewImage--iDffX\",\"noReviews\":\"noReviews--T3ASM\",\"comment\":\"comment--xOdUq\",\"reviewBuyerNicknameContainer\":\"reviewBuyerNicknameContainer--NpEzw\",\"reviewBuyerNickname\":\"reviewBuyerNickname--dxtoE\",\"reviewDateContainer\":\"reviewDateContainer--xrmYG\",\"showMoreButton\":\"showMoreButton--TNdVJ\",\"animation-bzdot9\":\"animation-bzdot9--F_4c2\"};","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useNavigate } from 'react-router-dom';\nimport { format } from 'date-fns';\nimport queryString from 'query-string';\nimport Skeleton from 'react-loading-skeleton';\nimport classes from './classes.module.scss';\nimport ReviewItem, { reviewItemThemes } from '../reviews_items';\nimport ExpandedText from '../../../../../common/helpers/expanded_text';\nimport { SvgIcon } from '../../../../../common/sprites';\n\nconst filters = {\n positive: 'positive',\n negative: 'negative',\n default: 'default'\n};\n\nconst reviewImage = (like, loader) => (loader ? <Skeleton width={ 15 } /> : <SvgIcon className={ classes.reviewImage } id={ like ? 'rate_positive' : 'rate_negative' } size={ 23 } />);\n\nfunction Review({ review, loader }) {\n const {\n like, buyerNickname, comment, createdAt\n } = review || {};\n return (\n <div className={ classes.reviewContainer }>\n <div className={ classes.reviewerName }>\n <div className={ classes.reviewImgContainer }>\n {reviewImage(like, loader)}\n </div>\n <div className={ classes.reviewBuyerNicknameContainer }>\n <ExpandedText ellipsis>\n <div className={ classes.reviewBuyerNickname } suppressHydrationWarning>\n {buyerNickname || <Skeleton width={ 60 } />}\n </div>\n </ExpandedText>\n </div>\n <div className={ classes.reviewDateContainer } suppressHydrationWarning>\n {createdAt ? format(new Date(createdAt), 'dd MMM yy') : <Skeleton width={ 15 } />}\n </div>\n </div>\n <span className={ classes.comment } suppressHydrationWarning>\n {comment || <Skeleton count={ 3 } />}\n </span>\n </div>\n );\n}\n\nReview.propTypes = {\n review: PropTypes.object,\n loader: PropTypes.bool\n};\n\nReview.defaultProps = {\n review: null,\n loader: false\n};\n\nconst defaultSelectedFilter = () => {\n const {\n positive, negative\n } = queryString.parse(window.location.search);\n if (positive) {\n return filters.positive;\n }\n if (negative) {\n return filters.negative;\n }\n return filters.default;\n};\n\nconst updateQuery = (name, history) => {\n if (name === filters.positive) {\n history(`${ window.location.pathname }?${ queryString.stringify({ positive:true }) }`, { replace: true });\n return;\n }\n if (name === filters.negative) {\n history(`${ window.location.pathname }?${ queryString.stringify({ negative:true }) }`, { replace: true });\n return;\n }\n history(`${ window.location.pathname }`, { replace: true });\n};\n\nconst reviewItems = (items, loading) => {\n if (!items || !items.length) return null;\n const itemsArray = items.map((r) => <Review key={ r.orderId } review={ r } />);\n if (loading) {\n itemsArray.push(...[\n <Review loader key=\"loader_1\" />,\n <Review loader key=\"loader_2\" />,\n <Review loader key=\"loader_3\" />,\n <Review loader key=\"loader_4\" />]);\n }\n return itemsArray;\n};\n\nconst getSelectedButtonStyle = (buttonId, selectedId) => ({\n height: '4px',\n backgroundColor: buttonId === selectedId ? '#000' : '#FFF',\n width:'100%'\n});\n\nconst needShowPlaceHolder = (likesCount, dislikesCount) => !(likesCount || dislikesCount);\n\nconst reviewShowMore = (showMore, onShowMore, t) => (\n !showMore ? null : (\n <button\n type=\"button\"\n className={ classes.showMoreButton }\n onClick={ onShowMore }\n >\n {t('advisor_profile.show_more')}\n </button>\n ));\nfunction ReviewsSection({\n likesCount, dislikesCount, reviews, loadAdvisorReviews, id, t, advisorsReviewsReset\n}) {\n const {\n items, showMore, loading\n } = reviews || {};\n\n const history = useNavigate();\n const [selectedId, setSelectedId] = useState(defaultSelectedFilter());\n\n const onItemTap = (e) => {\n advisorsReviewsReset(id);\n updateQuery(filters[e.currentTarget.id], history);\n setSelectedId(filters[e.currentTarget.id]);\n loadAdvisorReviews(id);\n };\n\n const buttonItem = (count, buttonId, children) => (count === 0 ? null : (\n <div\n id={ buttonId }\n onClick={ onItemTap }\n onKeyDown={ onItemTap }\n className={ classes.item }\n >\n <div className={ classes.reviewItemHolder }>\n { children }\n </div>\n <div style={ getSelectedButtonStyle(buttonId, selectedId) } suppressHydrationWarning />\n </div>\n ));\n\n const onShowMore = () => {\n loadAdvisorReviews(id);\n };\n\n const placeHolder = () => (\n <div className={ classes.emptyReviewsContainer }>\n <div className={ classes.noReviews }>{t('advisor_profile.no_reviews')}</div>\n </div>\n );\n\n const reviewsSection = () => (\n <div className={ classes.reviewsContainer }>\n { reviewItems(items, loading) }\n { reviewShowMore(showMore, onShowMore, t) }\n </div>\n );\n\n const reviewsContent = React.useMemo(() => {\n if (needShowPlaceHolder(likesCount || dislikesCount)) {\n return placeHolder();\n }\n return reviewsSection();\n }, [reviews]);\n\n return (\n <div className={ classes.container }>\n <div className={ classes.headerContainer }>\n {buttonItem(1, filters.default, t('advisor_profile.reviews'))}\n {buttonItem(\n likesCount,\n filters.positive,\n <ReviewItem\n value={ likesCount }\n isPositive\n ignoreLeftMargin\n theme={ reviewItemThemes.reviewsSection }\n />\n )}\n {buttonItem(\n dislikesCount,\n filters.negative,\n <ReviewItem\n value={ dislikesCount }\n isPositive={ false }\n ignoreLeftMargin\n theme={ reviewItemThemes.reviewsSection }\n />\n )}\n </div>\n {reviewsContent}\n </div>\n );\n}\nReviewsSection.propTypes = {\n likesCount: PropTypes.number,\n dislikesCount: PropTypes.number,\n reviews: PropTypes.object,\n loadAdvisorReviews: PropTypes.func.isRequired,\n id:PropTypes.any,\n t: PropTypes.func.isRequired,\n advisorsReviewsReset: PropTypes.func.isRequired\n};\n\nReviewsSection.defaultProps = {\n likesCount:0,\n dislikesCount:0,\n reviews: null,\n id:null\n};\n\nexport default ReviewsSection;\n","import { connect } from 'react-redux';\nimport { withLastLocation } from 'react-router-dom-last-location';\nimport ReviewsSection from './reviews_section';\nimport {\n loadAdvisorReviews, advisorsReviewsReset\n} from '../../../../actions/advisors';\nimport withPGTranslation from '../../../../config/withPGTranslation';\n\nconst mapStateToProps = (\n { advisors },\n { id }\n) => ({\n ...(advisors || {})[id] || {}\n});\n\nexport default connect(\n mapStateToProps,\n {\n loadAdvisorReviews,\n advisorsReviewsReset\n }\n)(withLastLocation(withPGTranslation(ReviewsSection)));\n","// extracted by mini-css-extract-plugin\nexport default {\"homeButtonContainer\":\"homeButtonContainer--c2l5a\",\"homeButton\":\"homeButton--serdS\",\"TERMINATED\":\"TERMINATED--t8bxR\",\"titleContainer\":\"titleContainer--IKqHU\",\"title\":\"title--zDIDz\",\"subTitle\":\"subTitle--AF9su\",\"NOTAVAILABLEFORPG\":\"NOTAVAILABLEFORPG--mV6ku\",\"animation-bzdot9\":\"animation-bzdot9--A1H5y\"};","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport AdvisorsList, { advisorsListThemes } from '../../advisors_list';\nimport classes from './classes.module.scss';\nimport AppLink from '../../routes/app_link';\n\nfunction SomeOtherAdvisors({\n t, theme, title, subTitle, loading, clickSource, loadAdvisors, advisors, pathname\n}) {\n const startChatClickSource = (window.location.state && window.location.state.startChatClickSource) ? window.location.state.startChatClickSource : 'direct';\n\n useEffect(() => {\n loadAdvisors({ page: 1 }, pathname);\n }, []);\n\n const generateData = () => {\n const advisorsArray = advisors.slice(0, 4);\n return advisorsArray;\n };\n\n const generateAnalytics = () => {\n const analyticsData = {\n clickSource,\n startChatClickSource\n };\n return analyticsData;\n };\n\n const renderTitle = () => (\n <div className={ classes.titleContainer }>\n <div className={ classes.title }>\n { title }\n </div>\n <div className={ classes.subTitle }>\n { subTitle }\n </div>\n </div>\n );\n\n const renderHomeButton = () => (\n <div className={ classes.homeButtonContainer }>\n <AppLink\n to=\"/\"\n className={ classes.homeButton }\n replace\n >\n { t('terminatedAdvisor.back_to_homepage')}\n </AppLink>\n </div>\n );\n\n const renderSomeOtherAdvisors = () => (\n <div className={ classes[theme] }>\n { renderTitle() }\n <AdvisorsList\n advisors={ generateData() }\n theme={ advisorsListThemes.someOtherAdvisor }\n loading={ loading }\n analytics={ generateAnalytics() }\n />\n { renderHomeButton() }\n </div>\n );\n\n return renderSomeOtherAdvisors();\n}\n\nSomeOtherAdvisors.propTypes = {\n t: PropTypes.func.isRequired,\n theme: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n subTitle: PropTypes.string.isRequired,\n loadAdvisors: PropTypes.func.isRequired,\n advisors: PropTypes.array.isRequired,\n pathname: PropTypes.string.isRequired\n};\n\nSomeOtherAdvisors.defaultProps = {\n advisors: []\n};\n\nexport default SomeOtherAdvisors;\n","import { connect } from 'react-redux';\nimport { withLastLocation } from 'react-router-dom-last-location';\nimport withPGTranslation from '../../../config/withPGTranslation';\nimport { clearApplicationError } from '../../../actions/aplication_error';\nimport SomeOtherAdvisors from './some_other_advisors';\nimport { loadAdvisors } from '../../../actions/search_results';\n\nconst mapStateToProps = ({\n applicationError,\n searchResults\n}, {\n location: { pathname }\n}) => ({\n ...applicationError,\n pathname,\n ...searchResults[pathname]\n});\n\nexport default withLastLocation(withPGTranslation(connect(mapStateToProps, {\n clearApplicationError,\n loadAdvisors\n})(SomeOtherAdvisors)));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Skeleton from 'react-loading-skeleton';\nimport { Speciality } from '@barges/react';\nimport '@barges/scss/lib/speciality.css';\nimport '@barges/scss/lib/title.css';\nimport withPGTranslation from '../../../../config/withPGTranslation';\nimport { AdvisorPropType, AdvisorDefaultProps } from '../../../../reducers/advisor_prop_types';\nimport classes from './classes.module.scss';\nimport AppLink from '../../../routes/app_link';\nimport { specialitiesClickSource } from '../../../../config/const';\nimport { advisorSpecialitiesTheme } from '../../../../config/themes';\nimport { isPG } from '../../../../../common/config/utils';\n\nconst renderSpecialitiesContent = (specialities, loading, specialitiesContent) => (\n !(specialities || []).length && !loading ? null : specialitiesContent()\n);\n\nfunction AdvisorSpecialities({\n specialities, advisorId, t, loading\n}) {\n const speciality = (spec) => {\n const {\n iconUrl, name, slug, params, iconName\n } = spec;\n return (\n <AppLink\n to={ {\n pathname: slug,\n state: {\n needRefresh: true,\n trackCategoryEvent: true,\n clickSource: specialitiesClickSource.advisorProfile,\n advisorId,\n params\n }\n } }\n key={ `speciality_${ name }` }\n >\n <Speciality\n type=\"advisor-profile\"\n speciality={ { iconName: isPG() ? iconName : null, name, iconUrl } }\n suppressHydrationWarning\n />\n </AppLink>\n );\n };\n\n const specialitiesContent = () => (\n <div className={ classes.descriptionHolder } suppressHydrationWarning>\n {t('advisor_profile.specialities_title')}\n <div className={ classes.specialitiesContainer } suppressHydrationWarning>\n { loading\n ? (\n <Skeleton\n count={ 3 }\n containerClassName={ classes.specialitySkeletonContainer }\n className={ classes.specialitySkeleton }\n />\n ) : specialities.map((s) => speciality(s))}\n </div>\n </div>\n );\n\n return renderSpecialitiesContent(specialities, loading, specialitiesContent);\n}\n\nAdvisorSpecialities.propTypes = {\n advisorId: AdvisorPropType.id,\n specialities: AdvisorPropType.specialities,\n t: PropTypes.func.isRequired,\n loading: PropTypes.bool\n};\n\nAdvisorSpecialities.defaultProps = {\n ...AdvisorDefaultProps,\n theme: advisorSpecialitiesTheme.default,\n loading: false\n};\n\nexport default withPGTranslation(AdvisorSpecialities);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withLastLocation } from 'react-router-dom-last-location';\nimport Skeleton from 'react-loading-skeleton';\nimport { useLocation } from 'react-router-dom';\nimport { AdvisorPropType, AdvisorDefaultProps } from '../../../../reducers/advisor_prop_types';\nimport classes from './classes.module.scss';\nimport ReviewsSection from '../reviews_section';\nimport { makeMoreReadable } from '../../../../config/util';\nimport SomeOtherAdvisors from '../../some_other_advisors';\nimport { psychicsListTypes } from '../../../../config/const';\nimport AdvisorSpecialities from './advisor_specialities';\n\nconst descriptionContent = (title, description, needAddItemProp) => (\n <div className={ classes.descriptionHolder }>\n {title}\n <span className={ classes.description } itemProp={ needAddItemProp ? 'description' : '' }>\n {makeMoreReadable(description) || <Skeleton count={ 4 } height={ 17 } />}\n </span>\n </div>\n);\n\nconst reviewsContent = (id) => (!id ? null : (\n <ReviewsSection id={ id } />\n));\n\nconst specialitiesContent = (specialities, advisorId, loading) => (\n <AdvisorSpecialities specialities={ specialities } advisorId={ advisorId } loading={ loading } />\n);\n\nconst renderNoAavailableForPG = (liveModes, t, loading, location) => {\n const advisorAvalibalForPG = liveModes.find((item) => item.modeState !== 'disabled');\n if (liveModes.length > 0 && !advisorAvalibalForPG && typeof (loading) !== 'undefined' && !loading) {\n return (\n <SomeOtherAdvisors\n theme={ psychicsListTypes.NOTAVAILABLEFORPG }\n title={ t('notAvailableForPg.sorry_this_advisor_is_not_available_for_live_readings_now') }\n subTitle={ t('notAvailableForPg.here_are_some_other_advisors_who_may_interest_you') }\n location={ location }\n />\n );\n }\n return null;\n};\n\nfunction AdvisorMainContent({\n serviceDescription, aboutMe, specialities, id, t, liveModes, loading\n}) {\n const location = useLocation();\n return (\n <div className={ classes.container }>\n {descriptionContent(t('advisorProfile.about_my_services'), serviceDescription, true)}\n {descriptionContent(t('advisorProfile.about_me'), aboutMe)}\n {specialitiesContent(specialities, id, loading)}\n {renderNoAavailableForPG(liveModes, t, loading, location)}\n {reviewsContent(id)}\n </div>\n );\n}\n\nAdvisorMainContent.propTypes = {\n ...AdvisorPropType,\n t: PropTypes.func.isRequired\n};\n\nAdvisorMainContent.defaultProps = {\n ...AdvisorDefaultProps\n};\n\nexport default withLastLocation(AdvisorMainContent);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport classes from './classes.module.scss';\nimport AdvisorCta from './advisor_cta';\nimport { AdvisorPropType, AdvisorDefaultProps } from '../../../reducers/advisor_prop_types';\nimport AdvisorAvatar, { advisorThemes } from '../../advisor_avatar';\nimport TopIcons from '../../advisor_profile_avatar/top_icons';\nimport ExpandedText from '../../../../common/helpers/expanded_text';\nimport { isPrerenderMode, getHeaderHeight } from '../../../config/util';\nimport { isKA } from '../../../../common/config/utils';\nimport { advisorCtaThemes } from './advisor_cta/advisor_cta_themes';\n\nfunction AdvisorStaticContainer({\n modesContainerVisible, profilePictureUrl, nickname, serviceTitle, loading, liveModes, id,\n favoriteAdvisor, loader, favorite, availabilityNotification, status\n}) {\n const renderAvatarSection = () => (\n <div className={ classes.fixedContainerAvatarContainer }>\n <div className={ classes.fixedContainerAvatarHolder } suppressHydrationWarning>\n <AdvisorAvatar\n profilePictureUrl={ profilePictureUrl }\n loading={ loading }\n theme={ advisorThemes.profileSmallAvatar }\n />\n </div>\n <div className={ classes.advisorStaticTitleContainer }>\n <div className={ classes.advisorNameContainer } suppressHydrationWarning>\n <ExpandedText\n customClasses={ { text: classes.advisorNameText } }\n ellipsis\n >\n { nickname }\n </ExpandedText>\n </div>\n\n <div className={ classes.advisorServiceTitleContainer } suppressHydrationWarning>\n <ExpandedText\n customClasses={ { text: classes.advisorServiceTitleText } }\n ellipsis\n >\n { serviceTitle }\n </ExpandedText>\n </div>\n </div>\n </div>\n );\n\n const renderCtaSection = () => {\n if (loading || isPrerenderMode() || liveModes.length === 0) {\n const skeletonCount = isKA() ? 2 : 3;\n const skeletonClassName = isKA() ? classNames(classes.ctaSkeleton, classes.ctaSkeletonFullWidth) : classes.ctaSkeleton;\n return (\n <div className={ classes.ctaSkeletonContainer }>\n {\n [...Array(skeletonCount)].map((s, index) => (\n <div id={ `ctaSkeleton${ index }` } key={ `ctaSkeleton${ index }` } className={ skeletonClassName } />\n ))\n }\n </div>\n );\n }\n return (\n <div className={ classes.ctaHolder }>\n {liveModes.map((mode) => (\n <AdvisorCta\n key={ mode.mode }\n { ...mode }\n advisorId={ id }\n advisorCallProps={ {\n id,\n name: nickname,\n profilePictureUrl\n } }\n theme={ advisorCtaThemes.advisorFixContainer }\n liveModes={ liveModes }\n />\n )) }\n </div>\n );\n };\n\n const renderTopIconContainer = () => (\n <div className={ classes.topIconsContaner }>\n <TopIcons\n id = { id }\n favoriteAdvisor = { favoriteAdvisor }\n favorite = { favorite }\n loader = { loader }\n theme = { advisorThemes.sticky_icons }\n availabilityNotification={ availabilityNotification }\n advisorStatus={ status }\n />\n </div>\n );\n\n const modesContainerStyle = () => (modesContainerVisible ? { '--display':'none' } : { '--display':'flex', '--top': getHeaderHeight() });\n const renderContentBrowser = () => (\n <div\n className={ classes.fixedContainerBrowser }\n style={ modesContainerStyle() }\n suppressHydrationWarning\n >\n <div className={ classes.fixedContentBrowser }>\n { renderAvatarSection() }\n <div className={ classes.optionsContainer }>\n { renderCtaSection() }\n { renderTopIconContainer() }\n </div>\n </div>\n </div>\n );\n\n const renderContentMobile = () => (\n <>\n <div\n className={ classes.fixedTopContainerMobile }\n style={ modesContainerStyle() }\n suppressHydrationWarning\n >\n <div className={ classes.fixedTopContentMobile }>\n { renderAvatarSection() }\n <div className={ classes.optionsContainer }>\n { renderTopIconContainer() }\n </div>\n </div>\n </div>\n <div\n className={ classes.fixedBottomContainerMobile }\n style={ modesContainerStyle() }\n suppressHydrationWarning\n >\n { renderCtaSection() }\n </div>\n </>\n );\n\n return (\n <>\n {renderContentBrowser()}\n {renderContentMobile()}\n </>\n );\n}\n\nAdvisorStaticContainer.propTypes = {\n ...AdvisorPropType,\n modesContainerVisible: PropTypes.bool.isRequired\n};\n\nAdvisorStaticContainer.defaultProps = {\n ...AdvisorDefaultProps\n};\n\nexport default AdvisorStaticContainer;\n","// extracted by mini-css-extract-plugin\nexport default {\"homeButtonContainer\":\"homeButtonContainer--SYmZR\",\"homeButton\":\"homeButton--cBDQv\",\"aboutMeContainer\":\"aboutMeContainer--Li93O\",\"aboutMeText\":\"aboutMeText--BeBG4\",\"aboutMeReadMoreBtn\":\"aboutMeReadMoreBtn--t2xWo\",\"skeleton\":\"skeleton--aUsxv\",\"specialitiesAndAboutMeContainer\":\"specialitiesAndAboutMeContainer--eFvv2\",\"animation-bzdot9\":\"animation-bzdot9--bgvEH\"};","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Skeleton from 'react-loading-skeleton';\nimport { useLocation } from 'react-router-dom';\nimport SomeOtherAdvisors from '../some_other_advisors';\nimport { psychicsListTypes } from '../../../config/const';\nimport { AdvisorDefaultProps } from '../../../reducers/advisor_prop_types';\nimport AdvisorHeader from '../nested_views/advisor_header';\nimport { advisorHeaderTheme } from '../../../config/themes';\nimport AdvisorSpecialities from '../nested_views/advisor_main_content/advisor_specialities';\nimport classes from './classes.module.scss';\nimport AppLink from '../../routes/app_link';\nimport ExpandedText from '../../../../common/helpers/expanded_text';\n\nfunction TerminatedAdvisor({\n t, clearApplicationError, advisor\n}) {\n const {\n specialities, id, aboutMe, loading\n } = advisor;\n\n const location = useLocation();\n\n useEffect(() => () => {\n clearApplicationError();\n }, [window.location.pathname]);\n\n const renderHomeButton = () => (\n <div className={ classes.homeButtonContainer }>\n <AppLink\n to=\"/\"\n className={ classes.homeButton }\n replace\n >\n { t('terminatedAdvisor.back_to_homepage')}\n </AppLink>\n </div>\n );\n\n const renderAboutMe = () => (\n <div className={ classes.aboutMeContainer }>\n <div className={ classes.aboutMeTitle }>\n { t('advisorProfile.about_me') }\n </div>\n <ExpandedText\n customClasses={ {\n text: classes.aboutMeText,\n readMoreBtn: classes.aboutMeReadMoreBtn\n } }\n skeleton={ <Skeleton className={ classes.skeleton } /> }\n limit={ 4 }\n loading={ loading }\n readMoreKind=\"limitTextByRows\"\n >\n { aboutMe }\n </ExpandedText>\n </div>\n );\n\n const renderTerminatedAdvisor = () => (\n <>\n <AdvisorHeader { ...advisor } theme={ advisorHeaderTheme.terminatedAdvisor } />\n <SomeOtherAdvisors\n theme={ psychicsListTypes.TERMINATED }\n title={ t('terminatedAdvisor.this_advisor_is_no_longer_available') }\n subTitle={ t('terminatedAdvisor.here_are_some_other_advisors_who_may_interest_you') }\n location={ location }\n />\n <div className={ classes.specialitiesAndAboutMeContainer }>\n <AdvisorSpecialities\n specialities={ specialities }\n advisorId={ id }\n loading={ loading }\n />\n { renderAboutMe() }\n </div>\n { renderHomeButton() }\n </>\n );\n\n return renderTerminatedAdvisor();\n}\n\nTerminatedAdvisor.propTypes = {\n advisor: PropTypes.object.isRequired,\n t: PropTypes.func.isRequired,\n clearApplicationError: PropTypes.func.isRequired\n};\n\nTerminatedAdvisor.defaultProps = {\n ...AdvisorDefaultProps\n};\n\nexport default TerminatedAdvisor;\n","import { connect } from 'react-redux';\nimport withPGTranslation from '../../../config/withPGTranslation';\nimport { clearApplicationError } from '../../../actions/aplication_error';\nimport TerminatedAdvisor from './terminated_advisor';\n\nconst mapStateToProps = ({\n applicationError,\n advisors\n}, { advisorId }) => ({\n ...applicationError,\n advisor: { ...(advisors || {})[parseInt(advisorId, 10)] || {} }\n});\n\nexport default connect(mapStateToProps, {\n clearApplicationError\n})(withPGTranslation(TerminatedAdvisor));\n","import { connect } from 'react-redux';\nimport AdvisorRecommendCarousel from './advisors_recommend_carousel';\nimport { getSimilarOnlineAdvisors, trackBusyCarouselEvent } from '../../../../actions/advisors';\n\nconst mapStateToProps = ({ user: { user }, advisors }, { similarOnlineAdvisors, advisorId }) => ({\n userId: user && user.id,\n advisorStatus: advisors[advisorId]?.status,\n carouselAvailability: window.config.available_busy_carousel === 'true',\n advisors: similarOnlineAdvisors?.map((adv) => (advisors[adv.id])),\n userXfmProgram: user && user.userXfmProgram\n});\n\nexport default connect(mapStateToProps, {\n getSimilarOnlineAdvisors,\n trackBusyCarouselEvent\n})(AdvisorRecommendCarousel);\n","import React, {\n useEffect, useState, useRef, useCallback\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { Helmet } from 'react-helmet';\nimport { useNavigate } from 'react-router-dom';\nimport { add, formatISO } from 'date-fns';\nimport {\n textTruncate, decodeHtmlBracketCharCodes, renderCanonicalLink, getSectionForEvent,\n cleanupAdvisorFieldsForAnalytics\n} from '../../config/util';\nimport AppLayout from '../shared/content';\nimport AdvisorHeader from './nested_views/advisor_header';\nimport classes from './classes.module.scss';\nimport { AdvisorPropType, AdvisorDefaultProps } from '../../reducers/advisor_prop_types';\nimport AdvisorMainContent from './nested_views/advisor_main_content/advisor_main_content';\nimport AdvisorStaticContainer from './nested_views/advisor_static_container';\nimport env from '../../config/variables';\nimport TerminatedAdvisor from './terminated_advisor';\nimport AffiliatePromoPopup from '../affiliate_promo_popup';\nimport { trackPageVisit } from '../../actions/analytics';\nimport UsePreviousValue, { isKA } from '../../../common/config/utils';\nimport AdvisorRecommendCarousel from './nested_views/advisors_recommend_carousel';\nimport { liveModeState, promotionLabelTypeScreens } from '../../config/const';\nimport PromotionLabel from '../home_page/nested_views/promotion_label';\nimport { updatePathTrailingSlashes } from '../routes/routes_helpers';\n\nconst NICKNAME = '<NICKNAME>';\nconst SERVICE_DESCRIPTION = '<SERVICE DESCRIPTION>';\n\nconst getMetaTagContent = () => (isKA() ? 'Kasamba' : 'PurpleGarden');\n\nconst getTitleMetaTags = (nickname, serviceTitle) => {\n if (!nickname || !serviceTitle) return null;\n if (isKA()) {\n return `${ nickname } - Psychic Reader - Ratings and Reviews`;\n }\n if (nickname.toLowerCase().includes('psychic') || serviceTitle.toLowerCase().includes('psychic')) {\n return `${ nickname } | ${ serviceTitle } - purplegarden.co`;\n }\n return `${ nickname } | ${ serviceTitle } - psychic readings - purplegarden.co`;\n};\n\nconst getOGTitle = (serviceTitle, nickname, t) => {\n if (isKA()) return `${ nickname } - Psychic Reader - Ratings and Reviews`;\n return `${ serviceTitle } ${ t('app_meta_tag.page_title_advisor') } ${ nickname }`;\n};\n\nconst getAdvisorDescriptionMetaTagText = (props) => {\n const { PGWEB_ADVISOR_DESCRIPTION_TAG } = env;\n const { serviceDescription, nickname } = props;\n return decodeHtmlBracketCharCodes(PGWEB_ADVISOR_DESCRIPTION_TAG)\n .replace(NICKNAME, nickname).replace(SERVICE_DESCRIPTION, serviceDescription);\n};\n\nconst getMinPricePerMinute = (liveModes) => {\n if (!liveModes) return null;\n const prices = [];\n let minPricePerMinute = 0;\n liveModes?.forEach((mode) => {\n const modePrice = Number.parseFloat(mode.price);\n if (modePrice) prices.push(modePrice);\n });\n if (prices.length === 0) return minPricePerMinute.toFixed(2);\n minPricePerMinute = Math.min(...prices).toFixed(2);\n return minPricePerMinute;\n};\n\nconst getSku = ({ id }) => {\n const skuPrefix = 'pur';\n const minLength = 5;\n const numberOnPart = 3;\n const addvisorId = parseInt(id, 10);\n let addvisorIdSkuString = addvisorId.toString();\n if (addvisorIdSkuString.length < minLength) {\n const delta = minLength - addvisorIdSkuString.length;\n let extra = '';\n for (let i = 0; i < delta; i += 1) {\n extra += '0';\n }\n addvisorIdSkuString = extra + addvisorIdSkuString;\n }\n const partArray = [];\n do {\n const lastPart = addvisorIdSkuString.substring(addvisorIdSkuString.length - numberOnPart);\n partArray.push(lastPart);\n const leftPart = addvisorIdSkuString.substring(0, addvisorIdSkuString.length - numberOnPart);\n addvisorIdSkuString = leftPart;\n }\n while (addvisorIdSkuString.length > 0);\n partArray.push(skuPrefix);\n partArray.reverse();\n const sku = partArray.join('/');\n return sku;\n};\n\nconst getGtin8 = ({ id }) => {\n const advisorId = parseInt(id, 10);\n const gtin8 = 10000000 + advisorId;\n return gtin8.toString();\n};\n\nconst removeMetaTags = (metaTagsName) => {\n metaTagsName.forEach((metaTagName) => {\n const metaTag = document.getElementById(metaTagName);\n if (metaTag) metaTag.remove();\n });\n};\n\nconst updateSimilarAdvisors = (status, similarOnlineAdvisors, getSimilarOnlineAdvisors, id) => {\n if ((status === liveModeState.offline || status === liveModeState.busy) && similarOnlineAdvisors?.length > 0) getSimilarOnlineAdvisors(id);\n};\n\nconst verifyBusyCarouselRender = (userId, advisorStatus, carouselAvailability, similarOnlineAdvisors) => (userId && (advisorStatus === liveModeState.busy || advisorStatus === liveModeState.offline)\n&& carouselAvailability && similarOnlineAdvisors?.length > 0);\n\nconst onScroll = (setModesContainerVisible) => {\n const el = document.getElementById('advisorModesContainer');\n const position = el.getBoundingClientRect();\n if (position.bottom - 64 < 0) setModesContainerVisible(false);\n if (position.bottom - 64 >= 0) setModesContainerVisible(true);\n};\n\nconst areArraysEqual = (arr1, arr2) => {\n if (arr1?.length !== arr2?.length) return false;\n return arr1.every((val, index) => val === arr2[index]);\n};\n\nconst trackBusyCarouselEventIfNeeded = ({\n userId, advisorStatus, carouselAvailability, similarOnlineAdvisors, prevSimilarOnlineAdvisorsRef, trackBusyCarouselEvent\n}) => {\n const prevSimilarOnlineAdvisors = prevSimilarOnlineAdvisorsRef.current;\n const similarOnlineAdvisorsIds = similarOnlineAdvisors?.map((adv) => adv.id);\n if (verifyBusyCarouselRender(userId, advisorStatus, carouselAvailability, similarOnlineAdvisors)) {\n if (!areArraysEqual(prevSimilarOnlineAdvisors, similarOnlineAdvisorsIds)) {\n trackBusyCarouselEvent('busy carousel shown', similarOnlineAdvisors);\n }\n prevSimilarOnlineAdvisorsRef.current = similarOnlineAdvisorsIds;\n }\n};\n\nfunction Advisor(props) {\n const {\n match:{ params: { slug } }, id, loadAdvisor, nickname, serviceTitle, profilePictureUrl,\n liveModes, specialities, t, errorCode, trackAdvisorProfileViewEvent, location, trackBusyCarouselEvent,\n trackBEvent, userId, loading, userLoading, similarOnlineAdvisors, analytics, status, getSimilarOnlineAdvisors\n } = props;\n const history = useNavigate();\n const [modesContainerVisible, setModesContainerVisible] = useState(true);\n const [userIdState, setUserIdState] = useState(userId);\n let appearedAt = null;\n const carouselAvailability = window.config.available_busy_carousel === 'true';\n const prevSimilarOnlineAdvisorsRef = useRef(null);\n\n const handleScroll = () => {\n onScroll(setModesContainerVisible);\n };\n\n const trackInitialEvents = (extraParams) => {\n trackAdvisorProfileViewEvent({\n ...getSectionForEvent({ location }), history, location, ...extraParams\n });\n };\n\n const isInitialMount = useRef(true);\n\n useEffect(() => {\n updateSimilarAdvisors(status, similarOnlineAdvisors, getSimilarOnlineAdvisors, id);\n }, [status]);\n\n useEffect(() => {\n trackBusyCarouselEventIfNeeded({\n userId, advisorStatus: status, carouselAvailability, similarOnlineAdvisors, prevSimilarOnlineAdvisorsRef, trackBusyCarouselEvent\n });\n }, [similarOnlineAdvisors]);\n\n useEffect(() => {\n if (isInitialMount.current) {\n isInitialMount.current = false;\n } else {\n const analitycsPrams = {\n fromAdvisorProfile: true, analyticsActions: [trackInitialEvents], history, location\n };\n loadAdvisor(slug, analitycsPrams);\n trackBusyCarouselEventIfNeeded({\n userId, advisorStatus: status, carouselAvailability, similarOnlineAdvisors, prevSimilarOnlineAdvisorsRef, trackBusyCarouselEvent\n });\n trackPageVisit('advisor profile');\n }\n }, [slug]);\n\n useEffect(() => {\n if (id && nickname) {\n const params = cleanupAdvisorFieldsForAnalytics(props);\n appearedAt = (new Date()).getTime();\n trackBEvent('advisor profile - enter', params);\n }\n return () => {\n if (appearedAt) {\n const params = cleanupAdvisorFieldsForAnalytics(props);\n trackBEvent('advisor profile - leave', { ...params, duration: (new Date()).getTime() - appearedAt });\n }\n };\n }, [id, nickname]);\n\n useEffect(() => {\n const analitycsPrams = {\n fromAdvisorProfile: true, analyticsActions: [trackInitialEvents], history, location\n };\n loadAdvisor(slug, analitycsPrams);\n window.scrollTo(0, 0);\n window.addEventListener('scroll', handleScroll);\n trackPageVisit('advisor profile');\n return () => {\n window.removeEventListener('scroll', handleScroll);\n // Remove metaTag\n const metaTagsName = ['metaTagOgImage', 'metaTagItemPropRatingCount', 'metaTagItemPropRatingValue', 'schemaOrgBrand', 'metaTagItemPropCategory', 'schemaOrgOffers'];\n removeMetaTags(metaTagsName);\n };\n }, []);\n\n useEffect(() => {\n if (userId !== userIdState) setUserIdState(userId);\n const prevUserId = <UsePreviousValue value={ userIdState } />;\n if (userId !== prevUserId.props.value && !userLoading && !loading) {\n loadAdvisor(slug);\n }\n }, [userId]);\n\n const renderAdvisorRecommendCarousel = useCallback(() => (verifyBusyCarouselRender(userId, status, carouselAvailability, similarOnlineAdvisors) ? (\n <AdvisorRecommendCarousel similarOnlineAdvisors={ similarOnlineAdvisors } loading={ loading } advisorId={ id } analytics={ analytics } />\n ) : null), [userId, status, carouselAvailability, similarOnlineAdvisors]);\n\n const renderPromoLabel = (\n <div className={ classes.promoLabelContainer }>\n <PromotionLabel className={ classes.promotionLabelContainerMobile } promotionLabelTypeScreen={ promotionLabelTypeScreens.advisorProfile } />\n </div>\n );\n\n useEffect(() => {\n const needReloadAdvisorPage = location.state?.needReloadAdvisorPage;\n if (needReloadAdvisorPage) {\n loadAdvisor(slug);\n history(`${ location.pathname }${ location.search }`, {\n state: { ...location.state, needReloadAdvisorPage: false },\n replace: true\n });\n }\n }, [location.state]);\n\n const renderContent = () => {\n if (errorCode === 410) return <TerminatedAdvisor advisorId={ id } />;\n return (\n <>\n <AdvisorHeader { ...props } />\n {renderAdvisorRecommendCarousel()}\n {renderPromoLabel}\n <AdvisorMainContent { ...props } />\n <AdvisorStaticContainer modesContainerVisible={ modesContainerVisible } { ...props } />\n </>\n );\n };\n\n return (\n <AppLayout\n topGradientColor=\"#F5F5F5\"\n footerMobileBottomHeight={ 82 }\n >\n <AffiliatePromoPopup />\n <Helmet>\n <title>{ getTitleMetaTags(nickname, serviceTitle) }</title>\n <meta property=\"og:description\" content={ textTruncate(getAdvisorDescriptionMetaTagText(props), 150, '...') } suppressHydrationWarning />\n <meta name=\"description\" content={ textTruncate(getAdvisorDescriptionMetaTagText(props), 150, '...') } suppressHydrationWarning />\n <meta id=\"metaTagOgImage\" property=\"og:image\" content={ profilePictureUrl } suppressHydrationWarning />\n <meta property=\"og:title\" content={ getOGTitle(serviceTitle, nickname, t) } suppressHydrationWarning />\n </Helmet>\n { renderCanonicalLink(updatePathTrailingSlashes(`${ window.location.origin }${ window.location.pathname }`)) }\n <div className={ classes.container } itemScope itemType=\"http://schema.org/Product\" itemRef=\"product-name-for-ref-to\">\n <meta itemProp=\"gtin8\" content={ getGtin8({ id }) } suppressHydrationWarning />\n <div id=\"schemaOrgBrand\" itemProp=\"brand\" itemType=\"https://schema.org/Brand\" itemScope>\n <meta id=\"metaTagItemPropBrand\" itemProp=\"name\" content={ getMetaTagContent() } suppressHydrationWarning />\n </div>\n <meta id=\"metaTagItemPropSku\" itemProp=\"sku\" content={ getSku({ id }) } suppressHydrationWarning />\n <meta id=\"metaTagItemPropCategory\" itemProp=\"category\" content={ `Psychic Readings > ${ (specialities[0] || {}).name }` } suppressHydrationWarning />\n <div id=\"schemaOrgOffers\" itemProp=\"offers\" itemScope itemType=\"https://schema.org/Offer\">\n <meta id=\"metaTagItemPropPriceCurrency\" itemProp=\"priceCurrency\" content=\"USD\" />\n <meta id=\"metaTagItemPropPrice\" itemProp=\"price\" content={ getMinPricePerMinute(liveModes) } suppressHydrationWarning />\n <meta id=\"metaTagItemPropUrl\" itemProp=\"url\" content={ `${ window.location.origin }${ window.location.pathname }` } suppressHydrationWarning />\n <meta id=\"metaTagItemPropAvailability\" itemProp=\"availability\" content=\"https://schema.org/OnlineOnly\" />\n <meta id=\"metaTagItemPropPriceValidUntil\" itemProp=\"priceValidUntil\" content={ formatISO(add(new Date(), { days: 2 })) } suppressHydrationWarning />\n </div>\n { renderContent() }\n </div>\n </AppLayout>\n );\n}\n\nAdvisor.propTypes = {\n ...AdvisorPropType,\n loadAdvisor: PropTypes.func.isRequired,\n match: PropTypes.object.isRequired,\n t: PropTypes.func.isRequired,\n errorCode: PropTypes.number,\n trackAdvisorProfileViewEvent: PropTypes.func.isRequired,\n trackBEvent: PropTypes.func.isRequired,\n userId: PropTypes.number,\n userLoading: PropTypes.bool,\n getSimilarOnlineAdvisors: PropTypes.func.isRequired,\n trackBusyCarouselEvent: PropTypes.func.isRequired\n};\n\nAdvisor.defaultProps = {\n ...AdvisorDefaultProps,\n errorCode: null,\n userId: null,\n userLoading: null\n};\n\nexport default Advisor;\n","import { connect } from 'react-redux';\nimport { withLastLocation } from 'react-router-dom-last-location';\nimport Advisor from './advisor';\nimport { loadAdvisor, getSimilarOnlineAdvisors, trackBusyCarouselEvent } from '../../actions/advisors';\nimport { trackBEvent } from '../../actions/b_events';\nimport { trackAdvisorProfileViewEvent } from '../../actions/analytics';\nimport { startChat } from '../../actions/chat';\nimport { initVoipChat } from '../../actions/voip_chat';\nimport { showGeneralPopup } from '../../actions/general_popup';\nimport { displayNotifyMe } from '../../actions/notify_me';\nimport { favoriteAdvisor } from '../../actions/favorite_advisors';\nimport { authPendingAction, displayRegister } from '../../actions/auth';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport { matchPaths } from '../../../common/config/utils';\nimport { getAdvisorDataIfSsrMode } from '../../config/util';\n\nconst mapStateToProps = (\n {\n advisors, applicationError, user: { loading: userLoading, user }\n },\n ownProps\n) => {\n const { match } = ownProps;\n const { pathname } = match;\n const knownPaths = ((advisors || {}).knownPaths || {});\n const matchPathname = matchPaths({ pathname: Object.keys(knownPaths), path: pathname });\n const id = knownPaths[matchPathname?.pattern?.path];\n const advisor = (advisors || {})[id];\n return {\n ...(advisor || {}),\n ...applicationError,\n advisorLoaded: !!advisor,\n userId: user && user.id,\n userLoading,\n loading: (advisors.loading || !advisor) && !getAdvisorDataIfSsrMode()\n };\n};\n\nexport default connect(\n mapStateToProps,\n {\n loadAdvisor,\n startChat,\n showGeneralPopup,\n trackAdvisorProfileViewEvent,\n initVoipChat,\n displayNotifyMe,\n favoriteAdvisor,\n authPendingAction,\n displayRegister,\n trackBEvent,\n getSimilarOnlineAdvisors,\n trackBusyCarouselEvent\n }\n)(withLastLocation(withPGTranslation(Advisor)));\n","// extracted by mini-css-extract-plugin\nexport default {\"mainContentContainer\":\"mainContentContainer--YH40r\",\"sectionHeader\":\"sectionHeader--SuuB4\",\"sectionHeaderSeparator\":\"sectionHeaderSeparator--j0VpR\",\"sectionIcon\":\"sectionIcon--PT9eg\",\"advisorContainer\":\"advisorContainer--bZgR2\",\"avatarHolder\":\"avatarHolder--MipgR\",\"avatarContainer\":\"avatarContainer--J4C9C\",\"advisorInfoContainer\":\"advisorInfoContainer--_vRiO\",\"advisorInfoHeader\":\"advisorInfoHeader--X2L2Q\",\"advisorTitle\":\"advisorTitle--rjnyx\",\"advisorSubtitle\":\"advisorSubtitle--PA8FY\",\"rating\":\"rating--uPyix\",\"footer\":\"footer--XppAq\",\"v2\":\"v2--cEzvI\",\"staffPickDescription\":\"staffPickDescription--sKoE6\",\"advisorViewLink\":\"advisorViewLink--oAyNV\",\"serviceTitleContainer\":\"serviceTitleContainer--B1LD9\",\"previewAdvisorCTAContainer\":\"previewAdvisorCTAContainer--CxB8J\",\"readingsSinceContainer\":\"readingsSinceContainer--bmZqo\",\"readingsSinceMobileContainer\":\"readingsSinceMobileContainer--NuVKQ\",\"default\":\"default--Favhy\",\"countContainer\":\"countContainer--Lz3v9\",\"onHomePageSecriceContainer\":\"onHomePageSecriceContainer--lsta9\",\"onHomePageAdvisorAvatar\":\"onHomePageAdvisorAvatar--MLoJB\",\"staffPick\":\"staffPick--ycD4a\",\"staffPickMobile\":\"staffPickMobile--Yrm_p\",\"recommendAdvisor\":\"recommendAdvisor--oTQrW\",\"animation-bzdot9\":\"animation-bzdot9--Mjjhj\"};","/* eslint-disable import/no-cycle */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Skeleton from 'react-loading-skeleton';\nimport classes from './classes.module.scss';\nimport { separateThousands } from '../../../../config/util';\nimport ExpandedText from '../../../../../common/helpers/expanded_text';\n\nfunction ReadingSinceAndCountItem({\n readingsCount, yearJoined, t, theme, loading\n}) {\n const renderContent = () => {\n if (loading) return <Skeleton width={ 170 } />;\n return (\n <ExpandedText ellipsis limit={ 2 } className={ classes[theme] } textStyle={ { wordBreak: 'initial' } }>\n <span className={ classes.countContainer } suppressHydrationWarning data-testid=\"readings-count\">\n {separateThousands(readingsCount)}\n </span>\n <span className={ classes.readingsSinceContainer } suppressHydrationWarning data-testid=\"year-joined\">\n {t('home_page.readings_since')}\n <span suppressHydrationWarning>\n {` ${ yearJoined || '' }`}\n </span>\n </span>\n <span className={ classes.readingsSinceMobileContainer } suppressHydrationWarning>\n {t('home_page.readings_since_mobile')}\n <span suppressHydrationWarning>\n {` (${ yearJoined || '' })`}\n </span>\n </span>\n </ExpandedText>\n );\n };\n return renderContent();\n}\n\nReadingSinceAndCountItem.propTypes = {\n readingsCount: PropTypes.number,\n yearJoined: PropTypes.number,\n t: PropTypes.func.isRequired,\n theme: PropTypes.string.isRequired,\n loading: PropTypes.bool\n};\n\nReadingSinceAndCountItem.defaultProps = {\n readingsCount: null,\n yearJoined: null,\n loading: null\n};\n\nexport default ReadingSinceAndCountItem;\n","/* eslint-disable import/no-cycle */\nimport { connect } from 'react-redux';\nimport ReadingSinceAndCountItem from './readingSinceAndCountItem';\nimport withPGTranslation from '../../../../config/withPGTranslation';\n\nexport const readingSinceAndCountItemThemes = {\n default: 'default',\n staffPick: 'staffPick',\n staffPickMobile: 'staffPickMobile',\n onHomePageAdvisorAvatar: 'onHomePageAdvisorAvatar',\n onHomePageSecriceContainer: 'onHomePageSecriceContainer',\n recommendAdvisor: 'recommendAdvisor'\n};\n\nconst mapStateToProps = () => (\n {}\n);\n\nexport default connect(\n mapStateToProps,\n {\n }\n)(withPGTranslation(ReadingSinceAndCountItem));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { AdvisorPropType, AdvisorDefaultProps } from '../../reducers/advisor_prop_types';\nimport Rating from './rating/rating';\nimport classes from './classes.module.scss';\nimport ReadingSinceAndCountItem, { readingSinceAndCountItemThemes } from '../advisor/nested_views/readingSinceAndCountItem';\nimport AdvisorVideoPlayer from '../advisor_video_player';\nimport ExpandedText from '../../../common/helpers/expanded_text';\nimport { isPrerenderMode } from '../../config/util';\nimport { isKA } from '../../../common/config/utils';\nimport { SvgIcon } from '../../../common/sprites';\n\nconst defaultAvatar = require('../header/img/home_placeholder.png');\n\nconst onPlayVideoBtnContainerClick = (e) => {\n e.preventDefault();\n};\n\nconst renderPlayVideoBtnContainer = (profileVideoUrl, id, analytics) => (isKA() ? null : (\n <div className={ classes.playVideoBtnContainerHolder } suppressHydrationWarning>\n <div\n className={ classes.playVideoBtnContainer }\n onClick={ onPlayVideoBtnContainerClick }\n onKeyDown={ onPlayVideoBtnContainerClick }\n suppressHydrationWarning\n >\n <AdvisorVideoPlayer\n profileVideoUrl={ profileVideoUrl }\n needTrackProfileVideoEvent\n advisorId={ id }\n playImg = { (\n <SvgIcon className={ classes.playVideoImg } id=\"home_play\" />\n ) }\n analytics={ analytics }\n />\n </div>\n </div>\n));\n\nconst renderRateAndFaforite = ({\n loading, rating, isFavorite, isNewAdvisor, profileVideoUrl, id, analytics, theme\n}) => {\n if (loading || theme === readingSinceAndCountItemThemes.recommendAdvisor) return null;\n return (\n <div className={ classes.rateAndFavouriteContainer }>\n <Rating rating={ rating } isNewAdvisor={ isNewAdvisor } />\n <div className={ classes.favouriteContainer } suppressHydrationWarning>\n <SvgIcon className={ classes.favoriteImg } id={ isFavorite && window.currentUserId ? 'fav_fill' : 'fav_empty' } />\n </div>\n {renderPlayVideoBtnContainer(profileVideoUrl, id, analytics)}\n </div>\n );\n};\n\nconst renderNameSection = ({\n loading, nickname, serviceTitle, readingsCount, yearJoined\n}) => {\n if (loading) return null;\n return (\n <div className = { classes.nickNameAndServiseTitleConatiner } suppressHydrationWarning>\n <div className={ classes.advisorNickNameContainer } suppressHydrationWarning>\n <ExpandedText\n customClasses={ { text: classes.nickNameText } }\n ellipsis\n >\n { nickname }\n </ExpandedText>\n </div>\n <div className={ classes.serviceTitleContainer } suppressHydrationWarning>\n <ExpandedText\n customClasses={ { text: classes.serviceTitleText } }\n ellipsis\n >\n { serviceTitle }\n </ExpandedText>\n </div>\n <div className={ classes.readingSinceAndCountItemContainer } suppressHydrationWarning>\n <ReadingSinceAndCountItem\n readingsCount={ readingsCount }\n yearJoined={ yearJoined }\n theme={ readingSinceAndCountItemThemes.onHomePageAdvisorAvatar }\n loading={ loading }\n />\n </div>\n </div>\n );\n};\n\nconst getAvatarUrl = (loading, profilePictureUrl) => {\n if (loading || !profilePictureUrl) return defaultAvatar;\n return profilePictureUrl || defaultAvatar;\n};\n\nconst getAdvisorStatusClassName = ({ loading, status }) => {\n if (isPrerenderMode() || loading || !status) return classes.indicatorSkeleton;\n return classes[`${ status }Indicator`];\n};\n\nfunction AdvisorAvatar({\n profilePictureUrl, nickname, serviceTitle, status, isFavorite, rating, theme, loading,\n isNewAdvisor, readingsCount, yearJoined, profileVideoUrl, id, analytics, t\n}) {\n const renderAdvisorStatus = () => (\n <div className={ classes.indicatorContainer }>\n <div className={ getAdvisorStatusClassName({ loading, status }) } suppressHydrationWarning>\n <span className={ classes.statusLabel } suppressHydrationWarning>\n { t(`advisor_profile.status_label_${ status }`).toUpperCase() }\n </span>\n </div>\n </div>\n );\n\n const renderAvatar = () => (\n <div className={ classes.mainContainer }>\n <div className={ classes.imgContainerHolder }>\n <div className={ classes.imgContainer }>\n <img\n src={ getAvatarUrl(loading, profilePictureUrl) }\n className={ classes.image }\n alt={ nickname }\n style={ !profilePictureUrl ? { objectFit: 'scale-down' } : null }\n suppressHydrationWarning\n />\n { renderRateAndFaforite({\n loading, rating, isFavorite, isNewAdvisor, profileVideoUrl, id, analytics, theme\n }) }\n { renderNameSection({\n loading, nickname, serviceTitle, readingsCount, yearJoined\n }) }\n </div>\n </div>\n <div className={ classes.statusContainer }>\n { renderAdvisorStatus() }\n </div>\n </div>\n );\n\n return (\n <div className={ classes[`${ theme }`] }>\n { renderAvatar() }\n </div>\n );\n}\n\nAdvisorAvatar.propTypes = {\n ...AdvisorPropType,\n theme: PropTypes.string.isRequired,\n loading: PropTypes.bool,\n t: PropTypes.func.isRequired,\n analytics: PropTypes.object\n};\n\nAdvisorAvatar.defaultProps = {\n ...AdvisorDefaultProps,\n theme: null,\n loading: false,\n analytics: null\n};\n\nexport default AdvisorAvatar;\n","import { connect } from 'react-redux';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport AdvisorAvatar from './advisor_avatar';\nimport { favoriteAdvisor } from '../../actions/favorite_advisors';\nimport { authPendingAction, displayRegister } from '../../actions/auth';\n\nexport const advisorThemes = {\n staff_pick: 'staff_pick',\n personal: 'personal',\n badge: 'badge',\n badge_end_to_end: 'badge_end_to_end',\n searchResult: 'searchResult',\n someOtherAdvisor: 'someOtherAdvisor',\n profileSmallAvatar: 'profileSmallAvatar',\n sticky_icons: 'sticky_icons',\n homePageAllAdvisors: 'homePageAllAdvisors',\n activityAvatar: 'activityAvatar',\n recommendedCarousel: 'recommendedCarousel'\n};\n\nconst mapStateToProps = () => ({\n});\n\nexport default connect(mapStateToProps, {\n favoriteAdvisor,\n authPendingAction,\n displayRegister\n})(withPGTranslation(AdvisorAvatar));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport withPGTranslation from '../../../config/withPGTranslation';\nimport classes from '../classes.module.scss';\nimport { getReviewCount } from '../../../config/util';\nimport { SvgIcon } from '../../../../common/sprites';\n\nconst getRatingText = (isNewAdvisor, rating, t) => {\n if (isNewAdvisor) return t('home_page.rating_new_advisor');\n if (!rating && rating !== 0) return <div className={ classes.ratingTextSkeleton } suppressHydrationWarning />;\n return parseFloat(rating).toFixed(1);\n};\n\nconst getRatingTextClass = (isNewAdvisor) => {\n if (isNewAdvisor) return classes.newAdvisorText;\n return classes.ratingText;\n};\n\nconst getRatingContaineritemProp = (reviewCount, rating, needAddItemProp) => {\n if (reviewCount > 0 && rating > 0 && needAddItemProp) {\n return { itemProp:'aggregateRating', itemScope:'itemScope', itemType:'http://schema.org/AggregateRating' };\n }\n return null;\n};\n\nconst addMetaTag = (reviewCount, rating, needAddItemProp) => {\n if (reviewCount > 0 && rating > 0 && needAddItemProp) {\n return (\n <>\n <meta id=\"metaTagItemPropRatingCount\" content={ `${ reviewCount }` } itemProp=\"ratingCount\" suppressHydrationWarning />\n <meta id=\"metaTagItemPropRatingValue\" content={ `${ (parseFloat(rating)) }` } itemProp=\"ratingValue\" suppressHydrationWarning />\n </>\n );\n }\n return null;\n};\n\nfunction Rating({\n rating, isNewAdvisor, t, likesCount, dislikesCount, needAddItemProp, theme, className\n}) {\n if (!rating && !isNewAdvisor) {\n return null;\n }\n\n const reviewCount = getReviewCount({ likesCount, dislikesCount });\n\n const renderRating = () => (\n <div className={ classes[`${ theme }`] }>\n <div\n className={ classNames(classes.ratingContainer, className, { [classes.new]: isNewAdvisor }) }\n { ...getRatingContaineritemProp(reviewCount, rating, needAddItemProp) }\n suppressHydrationWarning\n >\n <SvgIcon id={ isNewAdvisor ? 'new_advisor' : 'star_icon' } className={ classes.starImg } suppressHydrationWarning />\n <div className={ getRatingTextClass(isNewAdvisor) } suppressHydrationWarning>\n { getRatingText(isNewAdvisor, rating, t) }\n </div>\n { addMetaTag(reviewCount, rating, needAddItemProp) }\n </div>\n </div>\n );\n\n return renderRating();\n}\n\nRating.propTypes = {\n rating: PropTypes.number,\n isNewAdvisor: PropTypes.bool,\n t: PropTypes.func.isRequired,\n needAddItemProp: PropTypes.bool,\n likesCount: PropTypes.number,\n dislikesCount: PropTypes.number,\n theme: PropTypes.string,\n className: PropTypes.string\n};\n\nRating.defaultProps = {\n isNewAdvisor: null,\n rating: null,\n needAddItemProp: null,\n likesCount: null,\n dislikesCount: null,\n theme: null,\n className: null\n};\n\nexport default withPGTranslation(Rating);\n","import React from 'react';\nimport classes from './classes.module.scss';\nimport { isNotificationSupported } from '../../../actions/firebase_messaging';\nimport { linkType } from '../../../actions/general_popup';\nimport { subscribedToAdvisor, isPrerenderMode } from '../../../config/util';\nimport { trackPageVisit } from '../../../actions/analytics';\nimport { isWebView } from '../../../../common/config/utils';\nimport { SvgIcon } from '../../../../common/sprites';\n\nconst navigateToRegisterScreen = (displayRegister) => {\n displayRegister({ shouldDisplay: true });\n};\n\nconst callCallbackOrSetItPending = (authorizedCallback, needToAuthCallback) => (\n window.currentUserId ? authorizedCallback() : needToAuthCallback()\n);\n\nexport const renderFav = (onFavoriteClick, favorite) => (\n <button\n type=\"button\"\n onClick={ onFavoriteClick }\n className={ classes.iconButton }\n suppressHydrationWarning\n >\n <SvgIcon id={ favorite && window.currentUserId ? 'white_favorite_active' : 'white_favorite_empty' } className={ classes.topIconImgWhite } />\n <SvgIcon id={ favorite && window.currentUserId ? 'black_favorite_active' : 'black_favorite_empty' } className={ classes.topIconImgBlack } />\n </button>\n);\n\nexport const renderNotify = ({\n onNotifyClick, availabilityNotification, advisorStatus, t\n}) => {\n if (advisorStatus === 'online' || !advisorStatus || isPrerenderMode()) return null;\n return (\n <button\n type=\"button\"\n onClick={ onNotifyClick }\n className={ classes.iconButton }\n suppressHydrationWarning\n >\n <SvgIcon id={ subscribedToAdvisor(availabilityNotification) ? 'white_notify_active' : 'white_notify' } className={ classes.topIconImgWhite } />\n <SvgIcon id={ subscribedToAdvisor(availabilityNotification) ? 'black_notify_active' : 'black_notify' } className={ classes.topIconImgBlack } />\n\n {!isWebView() && (<div className={ classes.notifyMeTooltipContainer } data-tooltip={ t('notifyMe.default_title') } suppressHydrationWarning />) }\n </button>\n );\n};\n\nconst getClickSource = (location) => {\n if (location.state && location.state.clickSource) return location.state.clickSource;\n return 'advisor profile';\n};\n\nexport const handleFavoriteClick = (\n e,\n favoriteAdvisor,\n favorite,\n id,\n displayRegister,\n authPendingAction,\n location,\n favoriteLoading\n) => {\n if (favoriteLoading) return;\n e.preventDefault();\n const favoriteAction = () => {\n favoriteAdvisor(favorite, id, getClickSource(location), true);\n };\n\n const authNeedAction = () => {\n authPendingAction(() => {\n if (!favorite) favoriteAction(favorite, id, favoriteAdvisor);\n });\n navigateToRegisterScreen(displayRegister);\n };\n\n callCallbackOrSetItPending(favoriteAction, authNeedAction);\n};\n\nexport const handleNotifyClick = (\n e,\n displayNotifyMe,\n id,\n showGeneralPopup,\n authPendingAction,\n displayRegister,\n location,\n needToLoadAdv\n) => {\n e.preventDefault();\n const notifyClickAction = () => {\n if (isNotificationSupported()) {\n displayNotifyMe(true, parseInt(id, 10), getClickSource(location), needToLoadAdv);\n } else {\n showGeneralPopup(null, linkType.notificationNotSupported);\n trackPageVisit('service unavailable popup');\n }\n };\n const authNeedAction = () => {\n authPendingAction(() => {\n notifyClickAction(id, displayNotifyMe, showGeneralPopup);\n });\n navigateToRegisterScreen(displayRegister);\n };\n callCallbackOrSetItPending(notifyClickAction, authNeedAction);\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"closeImg\":\"closeImg--CVL1j\",\"profileImageContainer\":\"profileImageContainer--hKtb7\",\"reactPlayerContainer\":\"reactPlayerContainer--rqVMH\",\"playerContent\":\"playerContent--C6YUi\",\"playBtnContainer\":\"playBtnContainer--mErMo\",\"playButtonimg\":\"playButtonimg--p2XLA\",\"closeButton\":\"closeButton--i5Wd9\",\"animation-bzdot9\":\"animation-bzdot9--Cp93T\"};","/* eslint-disable jsx-a11y/media-has-caption */\n/* eslint-disable react/destructuring-assignment */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React, {\n useState, useEffect, useMemo, useRef\n} from 'react';\nimport { isSafari } from 'react-device-detect';\nimport PropTypes from 'prop-types';\nimport { useLocation } from 'react-router-dom';\nimport classes from './classes.module.scss';\nimport { log, LOG_LEVELS } from '../../../common/config/app_logger';\nimport {\n isMobile, getSectionForEvent, getClickSourceForEvent\n} from '../../config/util';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport VideoPlayer from '../video_player';\nimport { trackPageVisit } from '../../actions/analytics';\nimport { appGeneralPopupTheme } from '../../../common/config/const';\nimport { SvgIcon } from '../../../common/sprites';\nimport { isKA } from '../../../common/config/utils';\n\nexport const SCREEN_THEME = {\n HOME: 'HOME',\n PROFILE: 'PROFILE'\n};\n\nconst xIcon = require('./img/x_icon.png');\n\nconst isInFullScreenForBrowserCheck = () => (\n (document.webkitFullscreenElement && document.webkitFullscreenElement !== null)\n || (document.mozFullScreenElement && document.mozFullScreenElement !== null)\n || (document.msFullscreenElement && document.msFullscreenElement !== null)\n);\n\nconst isInFullScreen = () => (\n (document.fullscreenElement && document.fullscreenElement !== null)\n || isInFullScreenForBrowserCheck()\n);\n\nconst requestFullScreenHandler = ({ video }) => {\n if (video.requestFullScreen) {\n // W3C API\n video.requestFullScreen();\n } else if (video.mozRequestFullScreen) {\n // Mozilla current API\n video.mozRequestFullScreen();\n } else if (video.webkitRequestFullScreen) {\n // Webkit current API\n video.webkitRequestFullScreen();\n } else if (video.webkitEnterFullscreen) {\n // This is the iOS Mobile edge case\n video.webkitEnterFullscreen();\n }\n};\n\nconst onPlayingHandler = ({ videoRef }) => {\n const video = videoRef.current;\n if (!isMobile()) return;\n if (!isInFullScreen() && !video.paused) {\n requestFullScreenHandler({ video });\n }\n};\n\nconst getReactPlayerContainerStyle = () => {\n if (isMobile()) return { '--reactPlayerContainerWidth': '100%', '--reactPlayerContainerHeight': '100%' };\n return { '--reactPlayerContainerWidth': '50%', '--reactPlayerContainerHeight': '50%' };\n};\n\nconst getCloseButtonTopStyle = () => {\n if (isMobile()) return { '--closeButtonTop': '10px', '--closeButtonRight': '10px' };\n return { '--closeButtonTop': '-18px', '--closeButtonRight': '-25px' };\n};\n\nconst getPlayBtn = ({ playImg }) => {\n if (playImg) return playImg;\n return <SvgIcon id=\"profile_play\" className={ classes.playButtonimg } />;\n};\n\nconst setMutedForSafari = ({ playerVisible, setMuted }) => {\n if (playerVisible && isSafari && !isMobile()) {\n setMuted(true);\n }\n};\n\nconst trackPlayVideoEvent = ({\n videoRef, needTrackProfileVideoEvent, advisorId, location, analytics,\n trackPlayingAdvisorProfileVideoEvent\n}) => {\n const videoPlayingDuration = videoRef.current.currentTime;\n if (needTrackProfileVideoEvent && videoPlayingDuration >= 4) {\n const params = {\n id: advisorId,\n ...getClickSourceForEvent({ location }),\n ...getSectionForEvent({ location }),\n duration: parseFloat(videoPlayingDuration).toFixed(),\n ...analytics\n };\n trackPlayingAdvisorProfileVideoEvent(params);\n }\n};\n\nconst onFullScreenChangeHandler = ({ e, onClose }) => {\n if (isMobile() && !isInFullScreen()) onClose(e);\n};\n\nfunction AdvisorVideoPlayer({\n profileVideoUrl, trackPlayingAdvisorProfileVideoEvent, advisorId, needTrackProfileVideoEvent,\n playImg, analytics\n}) {\n const [playerVisible, setPlayerVisible] = useState(false);\n const [muted, setMuted] = useState(false);\n const videoRef = useRef();\n const closeBtnRef = useRef();\n const playerContentRef = useRef();\n const location = useLocation();\n\n const onPlayerClick = (e) => {\n e.stopPropagation();\n };\n\n const onClose = (e) => {\n log(LOG_LEVELS.INFO, 'Player', 'on close');\n e.stopPropagation();\n setMuted(false);\n trackPlayVideoEvent({\n videoRef,\n needTrackProfileVideoEvent,\n advisorId,\n location,\n analytics,\n trackPlayingAdvisorProfileVideoEvent\n });\n videoRef.current.pause();\n videoRef.current.currentTime = 0;\n setPlayerVisible(false);\n };\n\n const onFullScreenChange = (e) => {\n onFullScreenChangeHandler({ e, onClose });\n };\n\n useEffect(() => {\n setMutedForSafari({ playerVisible, setMuted });\n const video = videoRef.current;\n if (playerVisible && video) {\n video.play();\n if (isMobile()) {\n // Webkit\n video.onfullscreenchange = onFullScreenChange;\n video.onwebkitfullscreenchange = onFullScreenChange;\n // iOS Mobile\n video.addEventListener('webkitendfullscreen', onFullScreenChange, false);\n return () => video.removeEventListener('webkitendfullscreen', onFullScreenChange, false);\n }\n const playerContent = playerContentRef.current;\n const closeBtn = closeBtnRef.current;\n if (playerContent) {\n playerContent.addEventListener('click', onClose, false);\n closeBtn.addEventListener('click', onClose, false);\n video.addEventListener('click', onPlayerClick, false);\n return () => {\n playerContent.removeEventListener('click', onClose, false);\n closeBtn.removeEventListener('click', onClose, false);\n video.removeEventListener('click', onPlayerClick, false);\n };\n }\n }\n return () => {};\n }, [playerVisible]);\n\n const showPlayerVisible = () => {\n log(LOG_LEVELS.INFO, 'Player', 'on set Player Visible');\n trackPageVisit('media player');\n if (!profileVideoUrl) return;\n setPlayerVisible(true);\n };\n\n const onPlaying = () => (\n onPlayingHandler({ videoRef })\n );\n\n const player = useMemo(() => (\n <div className={ classes.playerContent } ref={ playerContentRef }>\n <div\n className={ classes.reactPlayerContainer }\n style={ getReactPlayerContainerStyle() }\n >\n <button\n ref={ closeBtnRef }\n className={ classes.closeButton }\n type=\"button\"\n style={ getCloseButtonTopStyle() }\n >\n <img src={ xIcon } alt=\"\" className={ classes.closeImg } suppressHydrationWarning />\n </button>\n <VideoPlayer\n videoUrl={ profileVideoUrl }\n videoRef={ videoRef }\n onPlayerClick={ onPlayerClick }\n onPlaying={ onPlaying }\n muted={ muted }\n />\n </div>\n </div>\n ), [playerVisible, profileVideoUrl]);\n\n const renderPlayBtn = () => {\n if (isKA()) return null;\n const playBtn = getPlayBtn({ playImg });\n return (\n <div\n className={ classes.playBtnContainer }\n onClick={ showPlayerVisible }\n >\n { playBtn }\n </div>\n );\n };\n\n const renderAdvisorVideoPlayer = () => {\n if (!profileVideoUrl) return null;\n return (\n <>\n { renderPlayBtn() }\n <AppGeneralPopup\n visible={ playerVisible }\n needOpenOnAppRoot\n theme={ appGeneralPopupTheme.VIDEO_POPOVER }\n >\n { player }\n </AppGeneralPopup>\n </>\n );\n };\n\n return renderAdvisorVideoPlayer();\n}\n\nAdvisorVideoPlayer.propTypes = {\n profileVideoUrl: PropTypes.string,\n profilePictureUrl: PropTypes.string,\n ratingCount: PropTypes.string,\n children: PropTypes.node,\n trackPlayingAdvisorProfileVideoEvent: PropTypes.func.isRequired,\n advisorId: PropTypes.number,\n needTrackProfileVideoEvent: PropTypes.bool,\n theme: PropTypes.oneOf([\n SCREEN_THEME.HOME,\n SCREEN_THEME.PROFILE]),\n t: PropTypes.func.isRequired,\n playImg: PropTypes.node,\n analytics: PropTypes.object\n};\n\nAdvisorVideoPlayer.defaultProps = {\n profileVideoUrl: null,\n profilePictureUrl: null,\n ratingCount: null,\n children: null,\n needTrackProfileVideoEvent: false,\n theme: SCREEN_THEME.PROFILE,\n playImg: null,\n advisorId: null,\n analytics: null\n};\n\nexport default AdvisorVideoPlayer;\n","import { connect } from 'react-redux';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport AdvisorVideoPlayer from './advisor_video_player';\nimport { trackPlayingAdvisorProfileVideoEvent } from '../../actions/analytics';\n\nexport default connect(\n () => ({}),\n {\n trackPlayingAdvisorProfileVideoEvent\n }\n)(withPGTranslation(AdvisorVideoPlayer));\n","// extracted by mini-css-extract-plugin\nexport default {\"noFilterTitle\":\"noFilterTitle--xmdEK\",\"advisorsContainer\":\"advisorsContainer--kAEtZ\",\"filterButtonContainer\":\"filterButtonContainer--Hq1ni\",\"cleanFiltersContainer\":\"cleanFiltersContainer--AqPAW\",\"bottomButton\":\"bottomButton--WGngV\",\"clearFilterIcon\":\"clearFilterIcon--S9wJU\",\"searchResult\":\"searchResult--d2CTN\",\"someOtherAdvisor\":\"someOtherAdvisor--sTNWs\",\"homePageAllAdvisors\":\"homePageAllAdvisors--UYqMx\",\"animation-bzdot9\":\"animation-bzdot9--lQ43F\"};","// extracted by mini-css-extract-plugin\nexport default {\"bottomButtonContainer\":\"bottomButtonContainer--VpHVn\",\"bottomButton\":\"bottomButton--U2gna\",\"searchResult\":\"searchResult--RSawo\",\"someOtherAdvisor\":\"someOtherAdvisor--PKkfi\",\"seeMoreBtnContainer\":\"seeMoreBtnContainer--nrVaC\",\"seeMoreBtn\":\"seeMoreBtn--e86Hv\",\"homePageAllAdvisors\":\"homePageAllAdvisors--xg3sR\",\"seeMoreBtnImg\":\"seeMoreBtnImg--dHJNG\",\"seeMoreBtnText\":\"seeMoreBtnText--doeU4\",\"animation-bzdot9\":\"animation-bzdot9--rtOL1\"};","// extracted by mini-css-extract-plugin\nexport default {\"paginationPagesContainer\":\"paginationPagesContainer--Vwhpa\",\"paginationPageItemNotActive\":\"paginationPageItemNotActive--hwZLw\",\"paginationPageItemActive\":\"paginationPageItemActive--NTcIh\",\"paginationPageItemSeen\":\"paginationPageItemSeen--SJ_3X\",\"paginationPageArrowContainer\":\"paginationPageArrowContainer--xzwN7\",\"animation-bzdot9\":\"animation-bzdot9--YuEzu\"};","import React, { useState, useEffect } from 'react';\nimport queryString from 'query-string';\nimport PropTypes from 'prop-types';\nimport { useNavigate, useLocation } from 'react-router';\nimport classes from './classes.module.scss';\nimport AppLink from '../../routes/app_link';\nimport { toCamelCase } from '../../../../common/config/utils';\nimport { SvgIcon } from '../../../../common/sprites';\n\nconst left = 2;\nconst right = 3;\n\nconst getPaginationPageItemClassName = ({ page, paginationPage, seenPages }) => {\n if (page === paginationPage) return classes.paginationPageItemActive;\n if (seenPages.includes(page)) return classes.paginationPageItemSeen;\n return classes.paginationPageItemNotActive;\n};\n\nconst getSearchWithPage = ({ page, location }) => {\n const srarch = queryString.parse(location.search);\n delete srarch.page;\n const searchWithPage = queryString.stringify({\n ...srarch,\n ...(page > 1 ? { page } : null)\n });\n return searchWithPage;\n};\n\nconst sortPaginationPagesNumbers = ({ paginationPagesNumbers, lastPageNum }) => {\n paginationPagesNumbers.sort((a, b) => a - b);\n if (paginationPagesNumbers[paginationPagesNumbers.length - 1] !== lastPageNum) {\n paginationPagesNumbers[paginationPagesNumbers.length - 1] = lastPageNum;\n paginationPagesNumbers[paginationPagesNumbers.length - 2] = '...';\n }\n paginationPagesNumbers = paginationPagesNumbers.filter((item) => item > 0 || item === '...');\n return paginationPagesNumbers;\n};\n\nconst generatePaginationPageNumbers = ({ lastPageNum, paginationPage }) => {\n let paginationPagesNumbers = [];\n for (let i = left; i >= -right; i--) {\n let page = paginationPage - i;\n if (page <= 0) {\n page = paginationPage + right + (1 - page);\n }\n if (page > lastPageNum) {\n page = paginationPage - left - (page - lastPageNum);\n }\n paginationPagesNumbers.push(page);\n }\n paginationPagesNumbers = sortPaginationPagesNumbers({ paginationPagesNumbers, lastPageNum });\n return paginationPagesNumbers;\n};\n\nconst generatePaginationPageItems = ({\n lastPageNum, paginationPage, seenPages, location, setPaginationPageAction\n}) => {\n const paginationPagesNumbers = generatePaginationPageNumbers({ lastPageNum, paginationPage });\n const paginationPageItems = [];\n paginationPagesNumbers.forEach((page) => {\n if (page === '...') {\n paginationPageItems.push(\n <div key={ page } className={ classes.paginationPageItemNotActive }>\n { page }\n </div>\n );\n } else {\n paginationPageItems.push(\n <AppLink\n to={ {\n pathname: window.location.pathname,\n search: getSearchWithPage({ page, location }),\n state: { ...location.state }\n } }\n key={ page }\n className={ getPaginationPageItemClassName({ page, paginationPage, seenPages }) }\n onClick={ () => setPaginationPageAction(page) }\n blank={ page === paginationPage }\n >\n {page}\n </AppLink>\n );\n }\n });\n return paginationPageItems;\n};\n\nconst renderPaginationPageLeftArrow = ({ paginationPage, leftArrowClick }) => {\n if (paginationPage === 1) return null;\n return (\n <div\n className={ classes.paginationPageArrowContainer }\n onKeyDown={ leftArrowClick }\n onClick={ leftArrowClick }\n >\n <SvgIcon id=\"left_arrow\" className={ classes.paginationPageArrow } size={ 12 } />\n </div>\n );\n};\n\nconst renderPaginationPageRightArrow = ({ paginationPage, lastPageNum, rightArrowClick }) => {\n if (paginationPage === lastPageNum) return null;\n return (\n <div\n className={ classes.paginationPageArrowContainer }\n onKeyDown={ rightArrowClick }\n onClick={ rightArrowClick }\n >\n <SvgIcon id=\"right_arrow\" className={ classes.paginationPageArrow } size={ 12 } />\n </div>\n );\n};\n\nfunction PaginationPages({\n loadAdvisors, params, path, seenPages, lastPageNum\n}) {\n const history = useNavigate();\n const location = useLocation();\n const [paginationPage, setPaginationPage] = useState(\n toCamelCase(queryString.parse(window.location.search)).page && typeof toCamelCase(queryString.parse(window.location.search)).page !== 'undefined'\n ? parseFloat(toCamelCase(queryString.parse(window.location.search)).page) : 1\n );\n const setPaginationPageAction = (page) => {\n setPaginationPage(parseFloat(page));\n loadAdvisors({ ...params, page }, path, page);\n };\n\n const seeMoreBtnClick = ({ page }) => {\n const srarch = queryString.parse(location.search);\n const searchWithPage = queryString.stringify({ ...srarch, page });\n history(`${ location.pathname }?${ searchWithPage }`, {\n state: { ...location.state },\n replace: true\n });\n setPaginationPageAction(page);\n };\n\n useEffect(() => {\n if (lastPageNum && paginationPage > lastPageNum) {\n seeMoreBtnClick({ page: lastPageNum });\n }\n }, []);\n\n const renderPaginationPageItems = () => {\n const paginationPageItems = generatePaginationPageItems({\n lastPageNum, paginationPage, seenPages, location, setPaginationPageAction\n });\n return paginationPageItems.map((item) => item);\n };\n\n const leftArrowClick = () => {\n seeMoreBtnClick({ page: paginationPage - 1 });\n };\n\n const rightArrowClick = () => {\n seeMoreBtnClick({ page: paginationPage + 1 });\n };\n\n const renderPaginationPages = () => (\n <div className={ classes.paginationPagesContainer }>\n { renderPaginationPageLeftArrow({ paginationPage, leftArrowClick }) }\n { renderPaginationPageItems() }\n { renderPaginationPageRightArrow({ paginationPage, lastPageNum, rightArrowClick }) }\n </div>\n );\n\n return renderPaginationPages();\n}\n\nPaginationPages.propTypes = {\n loadAdvisors: PropTypes.func,\n params: PropTypes.object,\n path: PropTypes.string,\n lastPageNum: PropTypes.number,\n seenPages: PropTypes.array\n};\n\nPaginationPages.defaultProps = {\n loadAdvisors: null,\n path: null,\n params: null,\n lastPageNum: null,\n seenPages: []\n};\n\nexport default PaginationPages;\n","/* eslint-disable import/no-cycle */\nimport { connect } from 'react-redux';\nimport withPGTranslation from '../../../config/withPGTranslation';\nimport PaginationPages from './pagination_pages';\n\nconst mapStateToProps = ({ searchResult }) => ({\n ...searchResult\n});\n\nexport default connect(\n mapStateToProps,\n { }\n)(withPGTranslation(PaginationPages));\n","/* eslint-disable import/no-cycle */\nimport React from 'react';\nimport queryString from 'query-string';\nimport PropTypes from 'prop-types';\nimport { useNavigate, useLocation } from 'react-router';\nimport classes from './classes.module.scss';\nimport AppLink from '../../routes/app_link';\nimport { isKA, toCamelCase } from '../../../../common/config/utils';\nimport { SvgIcon } from '../../../../common/sprites';\nimport { seeMoreBtnThemes } from './index';\nimport PaginationPages from '../pagination_pages';\n\nconst getPage = (page) => {\n const search = toCamelCase(queryString.parse(window.location.search));\n const searchPage = typeof search.page !== 'undefined' && search.page;\n const usedPage = searchPage ? parseFloat(searchPage) : page;\n return { usedPage, searchPage };\n};\nconst needRenderSeeMoreBtnDefault = ({ loading, lastPageNum }) => !loading && lastPageNum;\n\nconst renderSeeMoreBtnDefault = ({\n loading, lastPageNum, seeMoreBtnClick, t, loadAdvisors, theme, params, path, seenPages, page\n}) => {\n if (!needRenderSeeMoreBtnDefault({ loading, lastPageNum })) return null;\n const { usedPage, searchPage } = getPage(page);\n if (!searchPage || usedPage === 1) {\n if (lastPageNum <= usedPage) return null;\n return (\n <div className={ classes.bottomButtonContainer }>\n <button type=\"button\" className={ classes.bottomButton } onClick={ seeMoreBtnClick }>\n { t('home_page.see_more') }\n </button>\n </div>\n );\n }\n return (\n <PaginationPages\n loadAdvisors={ loadAdvisors }\n theme={ theme }\n params={ params }\n path={ path }\n lastPageNum={ lastPageNum }\n seenPages={ seenPages }\n />\n );\n};\n\nfunction SeeMoreBtn({\n theme, loadAdvisors, loading, params, t, slug, path, seenPages, lastPageNum, page\n}) {\n const history = useNavigate();\n const location = useLocation();\n\n const seeMoreBtnClick = () => {\n const { usedPage, searchPage } = getPage(page);\n const nextPage = usedPage + 1;\n loadAdvisors({ ...params, page: nextPage }, path, searchPage);\n if (searchPage) {\n const srarch = queryString.parse(location.search);\n const searchWithPage = queryString.stringify({ ...srarch, page: nextPage });\n history(`${ location.pathname }?${ searchWithPage }`, {\n state: { ...location.state },\n replace: true\n });\n }\n };\n\n const renderSeeMoreBtnDefaultHomePageAllAdvisors = () => (\n <div className={ classes.bottomButtonContainer }>\n <AppLink\n to={ {\n pathname: slug,\n state: {\n needRefresh: true,\n params\n }\n } }\n style={ isKA() ? { padding: '10px 50px' } : {} }\n className={ classes.bottomButton }\n >\n {!isKA() && <div><SvgIcon id=\"see_more_btn\" className={ classes.seeMoreBtnImg } /></div>}\n <span className={ classes.seeMoreBtnText }>\n { t('home_page.see_more_advisors') }\n </span>\n </AppLink>\n </div>\n );\n\n const renderSeeMoreBtn = () => {\n if (theme === seeMoreBtnThemes.homePageAllAdvisors) {\n return renderSeeMoreBtnDefaultHomePageAllAdvisors();\n }\n return renderSeeMoreBtnDefault({\n loading, lastPageNum, seeMoreBtnClick, t, loadAdvisors, theme, params, path, seenPages, page\n });\n };\n\n return (\n <div className={ classes[`${ theme }`] }>\n { renderSeeMoreBtn() }\n </div>\n );\n}\n\nSeeMoreBtn.propTypes = {\n theme: PropTypes.string,\n t: PropTypes.func.isRequired,\n loading: PropTypes.bool,\n loadAdvisors: PropTypes.func,\n isLastPage: PropTypes.bool,\n params: PropTypes.object,\n path: PropTypes.string,\n slug: PropTypes.string,\n lastPageNum: PropTypes.number,\n seenPages: PropTypes.array,\n page: PropTypes.number\n};\n\nSeeMoreBtn.defaultProps = {\n theme: 'searchResult',\n isLastPage: true,\n loadAdvisors: null,\n path: null,\n loading: null,\n params: null,\n slug: null,\n lastPageNum: null,\n seenPages: [],\n page: 1\n};\n\nexport default SeeMoreBtn;\n","/* eslint-disable import/no-cycle */\nimport { connect } from 'react-redux';\nimport withPGTranslation from '../../../config/withPGTranslation';\nimport SeeMoreBtn from './see_more_btn';\n\nexport const seeMoreBtnThemes = {\n searchResult: 'searchResult',\n someOtherAdvisor: 'someOtherAdvisor',\n homePageAllAdvisors: 'homePageAllAdvisors'\n};\n\nconst mapStateToProps = ({ searchResult }) => ({\n ...searchResult\n});\n\nexport default connect(\n mapStateToProps,\n { }\n)(withPGTranslation(SeeMoreBtn));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useNavigate } from 'react-router';\nimport AdvisorPreview from '../home_page/nested_views/advisor_preview';\nimport classes from './classes.module.scss';\nimport { advisorsEmptyList, filterIsApplied } from '../../config/util';\nimport { SvgIcon } from '../../../common/sprites';\nimport SeeMoreBtn from './see_more_btn';\n\nconst cleanFiltersItem = (isLastPage, t, clearFilters, advisors) => {\n if (!filterIsApplied({ withSearch: true })) return null;\n if (isLastPage || (advisors || []).length === 0) {\n return (\n <div className={ classes.filterButtonContainer }>\n <span className={ classes.noFilterTitle }>\n { t('home_page.did_not_find_what_you_wer_looking_for') }\n <br />\n { t('home_page.clear_your_search_filters') }\n </span>\n <button type=\"button\" className={ classes.bottomButton } onClick={ clearFilters }>\n <SvgIcon id=\"clear_filters\" className={ classes.clearFilterIcon } />\n { t('home_page.clear_filters') }\n </button>\n </div>\n );\n }\n return null;\n};\n\nconst renderAdvisorsList = (loading, advisors, renderAdvisorListSection) => {\n const loadingAdvisors = loading ? advisorsEmptyList(5, true) : [];\n const advisorsList = [...advisors, ...loadingAdvisors];\n return (\n <div className={ classes.advisorsContainer }>\n { advisorsList.map((advisor, index) => (renderAdvisorListSection(advisor, index))) }\n </div>\n );\n};\n\nfunction AdvisorsList({\n advisors, theme, isLastPage, loadAdvisors, loading, analytics, params, path, t, slug,\n lastPageNum, seenPages, page\n}) {\n const history = useNavigate();\n\n const renderAdvisorListSection = (advisor, index) => (\n <AdvisorPreview\n key={ !loading ? advisor.id : `emptyAdvisorSection_${ index }` }\n advisor ={ advisor }\n theme={ theme }\n advisorCount={ 4 }\n loading={ advisor.loading }\n analytics={ analytics }\n sectionSlug={ slug }\n />\n );\n\n const clearFilters = () => {\n history(`${ window.location.pathname }`, { state: { needRefresh: true }, replace: true });\n };\n return (\n <div className={ classes[`${ theme }`] }>\n { renderAdvisorsList(loading, advisors, renderAdvisorListSection) }\n { cleanFiltersItem(isLastPage, t, clearFilters, advisors) }\n <SeeMoreBtn\n isLastPage={ isLastPage }\n loading={ loading }\n loadAdvisors={ loadAdvisors }\n theme={ theme }\n slug={ slug }\n analytics={ analytics }\n params={ params }\n path={ path }\n lastPageNum={ lastPageNum }\n seenPages={ seenPages }\n page={ page }\n />\n </div>\n );\n}\n\nAdvisorsList.propTypes = {\n advisors: PropTypes.array,\n theme: PropTypes.string,\n t: PropTypes.func.isRequired,\n loading: PropTypes.bool,\n loadAdvisors: PropTypes.func,\n isLastPage: PropTypes.bool,\n page: PropTypes.number,\n analytics: PropTypes.object,\n params: PropTypes.object,\n path: PropTypes.string,\n slug: PropTypes.string,\n lastPageNum: PropTypes.number,\n seenPages: PropTypes.array\n};\n\nAdvisorsList.defaultProps = {\n advisors: [],\n theme: 'searchResult',\n analytics: null,\n page: 1,\n isLastPage: true,\n loadAdvisors: null,\n path: null,\n loading: null,\n params: null,\n slug: null,\n lastPageNum: null,\n seenPages: []\n};\n\nexport default AdvisorsList;\n","import { connect } from 'react-redux';\nimport AdvisorsList from './advisors_list';\nimport withPGTranslation from '../../config/withPGTranslation';\n\nexport const advisorsListThemes = {\n searchResult: 'searchResult',\n someOtherAdvisor: 'someOtherAdvisor',\n homePageAllAdvisors: 'homePageAllAdvisors'\n};\n\nconst mapStateToProps = () => ({});\n\nexport default connect(\n mapStateToProps,\n {\n }\n)(withPGTranslation(AdvisorsList));\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport { appGeneralPopupTheme } from '../../../common/config/const';\nimport PurchaseDetails from '../chat_overlay/purchase_details';\nimport Const from '../../config/const';\nimport { isPrerenderMode } from '../../config/util';\n\nconst noNeedRenderAffiliatePromoItem = ({ showItem, noThanksLinkClicked }) => {\n const noNeed = !showItem || noThanksLinkClicked || isPrerenderMode();\n return noNeed;\n};\n\nconst affiliatePromoPopupCloseButtonAction = (noNeedCloseIcon, hideAffiliatePromoPopup) => {\n if (noNeedCloseIcon) return null;\n return hideAffiliatePromoPopup;\n};\n\nfunction AffiliatePromoPopup({\n showAffiliatePromoPopup, hideAffiliatePromoPopup, noNeedCloseIcon,\n chatType, needUpdatePricingOptions, noThanksLinkClicked\n}) {\n const [needShowAffiliatePromoPopup, setNeedShowAffiliatePromoPopup] = useState(false);\n\n useEffect(() => {\n setTimeout(() => setNeedShowAffiliatePromoPopup(true), 1000);\n }, []);\n\n const renderAffiliatePromoPopup = () => {\n const noNeed = noNeedRenderAffiliatePromoItem({\n showItem: showAffiliatePromoPopup, noThanksLinkClicked\n });\n return (\n <AppGeneralPopup\n visible={ !noNeed }\n closeButtonAction={\n affiliatePromoPopupCloseButtonAction(noNeedCloseIcon, hideAffiliatePromoPopup)\n }\n theme={ appGeneralPopupTheme.AFFILIATE_PROMO }\n >\n <PurchaseDetails\n chatType={ chatType }\n hidePaymentDetails = {\n affiliatePromoPopupCloseButtonAction(noNeedCloseIcon, hideAffiliatePromoPopup)\n }\n needUpdatePricingOptions={ needUpdatePricingOptions }\n />\n </AppGeneralPopup>\n );\n };\n\n const renderAffiliatePromoPopupContent = () => {\n if (!needShowAffiliatePromoPopup && isPrerenderMode()) return null;\n return (\n <>\n { renderAffiliatePromoPopup() }\n </>\n );\n };\n\n return renderAffiliatePromoPopupContent();\n}\n\nAffiliatePromoPopup.propTypes = {\n showAffiliatePromoPopup: PropTypes.bool.isRequired,\n hideAffiliatePromoPopup: PropTypes.func.isRequired,\n noNeedCloseIcon: PropTypes.bool,\n chatType: PropTypes.string,\n needUpdatePricingOptions: PropTypes.bool,\n noThanksLinkClicked: PropTypes.bool.isRequired\n};\n\nAffiliatePromoPopup.defaultProps = {\n noNeedCloseIcon: false,\n chatType: Const.chatType.text,\n needUpdatePricingOptions: false\n};\n\nexport default AffiliatePromoPopup;\n","import { connect } from 'react-redux';\nimport AffiliatePromoPopup from './affiliate_promo_popup';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport { hideAffiliatePromoPopup } from '../../actions/affiliate_promo_popup';\n\nconst mapStateToProps = ({ affiliatePromoPopup }) => affiliatePromoPopup;\nexport default connect(\n mapStateToProps,\n {\n hideAffiliatePromoPopup\n }\n)(withPGTranslation(AffiliatePromoPopup));\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container--P7Yhk\",\"titleContainer\":\"titleContainer--Jb5yz\",\"radioBtnContainer\":\"radioBtnContainer--bV7Pe\",\"radioBtnLeft\":\"radioBtnLeft--VmIbQ\",\"radioBtnRight\":\"radioBtnRight--HrTr9\",\"radioBtnSelected\":\"radioBtnSelected--d2buK\",\"closeBtnContainer\":\"closeBtnContainer--zOQam\",\"closeBtn\":\"closeBtn--sBbsI\",\"advisorNotProvideServicesPopupContainer\":\"advisorNotProvideServicesPopupContainer--MurxA\",\"advisorNotProvideServicesPopupTitle\":\"advisorNotProvideServicesPopupTitle--yBVxC\",\"advisorNotProvideServicesPopupBody\":\"advisorNotProvideServicesPopupBody--GICL6\",\"advisorNotProvideServicesPopupButtonsContainer\":\"advisorNotProvideServicesPopupButtonsContainer--bQuH8\",\"advisorNotProvideServicesPopupButtonContainer\":\"advisorNotProvideServicesPopupButtonContainer--oVXoo\",\"advisorNotProvideServicesPopupContinueReadingButton\":\"advisorNotProvideServicesPopupContinueReadingButton--kiiu8\",\"advisorNotProvideServicesPopupExploreOthersButton\":\"advisorNotProvideServicesPopupExploreOthersButton--XVnj9\",\"animation-bzdot9\":\"animation-bzdot9--N_nwa\"};","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport { appGeneralPopupTheme } from '../../../common/config/const';\n\nfunction AdvisorNotProvideServicesPopup({\n onCloseCliked, advisorNotProvideServicesPopupData, setAdvisorNotProvideServicesPopupData, makeChangeLanguage\n}) {\n const { t } = useTranslation();\n\n const onAdvisorNotProvideServicesPopupContinueReadingClick = useCallback(() => {\n onCloseCliked();\n setAdvisorNotProvideServicesPopupData({});\n }, []);\n\n const advisorNotProvideServicesPopupExploreOthersClick = (e) => {\n makeChangeLanguage({ target: e.target, lang: advisorNotProvideServicesPopupData.lang });\n };\n\n const renderAdvisorNotProvideServicesPopup = () => {\n const advisorNotProvideServicesPopupDataShow = !!advisorNotProvideServicesPopupData.show;\n if (!advisorNotProvideServicesPopupDataShow) return null;\n return (\n <AppGeneralPopup\n visible={ advisorNotProvideServicesPopupDataShow }\n theme={ appGeneralPopupTheme.CENTERED }\n >\n <div className={ classes.advisorNotProvideServicesPopupContainer }>\n <div className={ classes.advisorNotProvideServicesPopupTitle }>\n {t('change_language.the_advisor_doesnt_provide_services')}\n </div>\n <div className={ classes.advisorNotProvideServicesPopupBody }>\n {t('change_language.this_advisor_does_not_support')}\n </div>\n <div className={ classes.advisorNotProvideServicesPopupButtonsContainer }>\n <div className={ classes.advisorNotProvideServicesPopupButtonContainer }>\n <button type=\"button\" className={ classes.advisorNotProvideServicesPopupContinueReadingButton } onClick={ onAdvisorNotProvideServicesPopupContinueReadingClick }>\n { t('change_language.continue_reading') }\n </button>\n </div>\n <div className={ classes.advisorNotProvideServicesPopupButtonContainer }>\n <button type=\"button\" className={ classes.advisorNotProvideServicesPopupExploreOthersButton } onClick={ advisorNotProvideServicesPopupExploreOthersClick }>\n { t('change_language.explore_others') }\n </button>\n </div>\n </div>\n </div>\n </AppGeneralPopup>\n );\n };\n\n return renderAdvisorNotProvideServicesPopup();\n}\n\nAdvisorNotProvideServicesPopup.propTypes = {\n onClose: PropTypes.func,\n show: PropTypes.bool\n};\n\nAdvisorNotProvideServicesPopup.defaultProps = {\n show: false,\n onClose: null\n};\n\nexport default AdvisorNotProvideServicesPopup;\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport { SUPPORTED_LANGUAGES, getCurrentLocalization } from '../../config/i18n';\nimport { log, LOG_LEVELS } from '../../../common/config/app_logger';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport { SvgIcon } from '../../../common/sprites';\nimport { appGeneralPopupTheme } from '../../../common/config/const';\nimport { trackPageVisit } from '../../actions/analytics';\nimport { appRoutes } from '../../config/app_routes';\nimport AdvisorNotProvideServicesPopup from './advisor_not_provide_services_popup';\nimport { useCurrentPath } from '../routes/hooks/useCurrentPath';\nimport { useLocalizedPath } from '../routes/hooks/useLocalizedPath';\nimport { getAdvisorIdBySlug } from '../../project_items/helper_functions';\n\nfunction ChangeLanguage({\n show, onClose, advisors\n}) {\n const language = getCurrentLocalization();\n const { t } = useTranslation();\n const [advisorNotProvideServicesPopupData, setAdvisorNotProvideServicesPopupData] = useState({});\n const currentPath = useCurrentPath();\n const generatePath = useLocalizedPath();\n\n useEffect(() => {\n if (show) trackPageVisit('language setting');\n }, [show]);\n\n const onCloseCliked = useCallback(() => {\n onClose({ show: false });\n }, []);\n\n const makeChangeLanguage = ({ target, lang }) => {\n target.disabled = true;\n const redirecPath = generatePath(lang, currentPath.routeKey, currentPath.params);\n log(LOG_LEVELS.INFO, 'General', `On popup language changed from ${ language } to ${ lang }`);\n log(LOG_LEVELS.INFO, 'General', `Redirect from ${ window.location.pathname } to ${ redirecPath }`);\n window.location.replace(redirecPath);\n };\n\n const onLanguageChanged = useCallback(e => {\n if (e.target.id !== language) {\n if (currentPath.routeKey !== appRoutes.advisor) {\n makeChangeLanguage({ target: e.target, lang: e.target.id });\n return;\n }\n const advisorId = getAdvisorIdBySlug({ advisorSlug: currentPath.params.slug });\n const advisorProfileLanguages = advisors[advisorId]?.profileLanguages;\n if (!advisorProfileLanguages.includes(e.target.id)) {\n setAdvisorNotProvideServicesPopupData({ show: true, lang: e.target.id });\n return;\n }\n makeChangeLanguage({ target: e.target, lang: e.target.id });\n }\n }, [currentPath.routeKey, advisors]);\n\n const renderCloseBtn = () => (\n <div className={ classes.closeBtnContainer }>\n <button type=\"button\" onClick={ onCloseCliked } className={ classes.closeBtn }>\n <SvgIcon id=\"close_icon\" size={ 16 } />\n </button>\n </div>\n );\n\n const renderContent = () => (\n <div className={ classes.container }>\n <div className={ classes.titleContainer }>\n <b>{t('language.title')}</b>\n </div>\n <div className={ classes.radioBtnContainer }>\n {SUPPORTED_LANGUAGES.map(lang => (\n <button\n key={ lang }\n type=\"button\"\n id={ lang }\n onClick={ onLanguageChanged }\n className={ classnames(\n classes.radioBtnLeft,\n lang === language ? classes.radioBtnSelected : null\n ) }\n >\n {t(`language.${ lang }`)}\n </button>\n ))}\n </div>\n </div>\n );\n\n const renderChangeLanguage = () => {\n if (!show) return null;\n return (\n <>\n <AppGeneralPopup\n visible={ show && !advisorNotProvideServicesPopupData.show }\n customTopHeader={ renderCloseBtn() }\n closable={ onCloseCliked }\n theme={ appGeneralPopupTheme.CENTERED }\n >\n {renderContent()}\n </AppGeneralPopup>\n <AdvisorNotProvideServicesPopup\n onCloseCliked={ onCloseCliked }\n advisorNotProvideServicesPopupData={ advisorNotProvideServicesPopupData }\n setAdvisorNotProvideServicesPopupData={ setAdvisorNotProvideServicesPopupData }\n makeChangeLanguage={ makeChangeLanguage }\n />\n </>\n );\n };\n\n return renderChangeLanguage();\n}\n\nChangeLanguage.propTypes = {\n onClose: PropTypes.func,\n show: PropTypes.bool,\n advisors: PropTypes.object.isRequired\n};\n\nChangeLanguage.defaultProps = {\n show: false,\n onClose: null\n};\n\nexport default ChangeLanguage;\n","import { connect } from 'react-redux';\nimport ChangeLanguage from './change_language';\n\nconst mapStateToProps = ({\n advisors\n}) => ({\n advisors\n});\n\nexport default connect(\n mapStateToProps,\n {}\n)(ChangeLanguage);\n","/* eslint-disable object-property-newline */\nimport React, { useEffect, useState, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport { useLocation } from 'react-router';\nimport { log, LOG_LEVELS } from '../../../../common/config/app_logger';\nimport ProcessingStatus from '../processing_status/processing_status';\nimport { purchaseDetailsTypes } from '../../../../common/config/const';\nimport { PaymentOptionSlimType } from '../../../../common/payment_methods_list/payment_sources_prop_types';\nimport {\n getFollowupParam, payingWithCreditCard, renderButtonTitle, selectCloseButtonActionIfNeed,\n isAffiliatePromoPopup, isSideMenu, sign, onRetryButtonClick, onConfirmButton,\n mpTrackPurchaseStartedEvent, mpTrackPurchaseEvent, mpTrackPurchaseFailedEvent\n} from '../purchases_utils';\nimport { browserContext, tryParseJSONObject } from '../../../../common/config/utils';\nimport { useLocalizedNavigate } from '../../routes/hooks/useLocalizedNavigate';\n\nconst shouldRenderProcessingStatus = ({\n payPalWindow, errorMessage, okMessage\n}) => payPalWindow || errorMessage || okMessage;\n\nconst closePayPalWindow = ({ payPalWindow, claerPaypalWindow }) => {\n window.focus();\n if (payPalWindow) {\n payPalWindow.close();\n claerPaypalWindow();\n }\n};\n\nconst closePurchaseDetailsOnSideMenu = (onPurchaseComplete, type) => {\n if (onPurchaseComplete && isSideMenu({ type })) onPurchaseComplete();\n};\n\nconst closePayPalWindowOnMpTrackPayPalProcessingEventsIfNeed = ({\n okMessage, errorMessage, payPalWindow, claerPaypalWindow\n}) => {\n if (okMessage || errorMessage) { closePayPalWindow({ payPalWindow, claerPaypalWindow }); }\n};\n\nconst mpTrackPayPalProcessingEvents = ({\n needTrackPurchaseStarted, purchaseResponce, retryCount, type, purchaseAmount, bonus, getUser,\n hasPaypalBillingAgreement, currentPaymentOption, chatType, dispatch, setNeedTrackPurchaseStarted,\n payPalWindow, claerPaypalWindow, purchaseFees, location\n}) => {\n const {\n errorType, okMessage, errorMessage, errorName, errorCode, gatewayName, errorPathname,\n threeDAuthResult, conversionEventId, extraEventParams\n } = purchaseResponce;\n if (needTrackPurchaseStarted && conversionEventId) {\n mpTrackPurchaseStartedEvent({\n retryCount, conversionEventId, type, purchaseAmount, bonus, hasPaypalBillingAgreement,\n threeDAuthResult, currentPaymentOption, chatType, dispatch, purchaseFees, location\n });\n setNeedTrackPurchaseStarted(false);\n }\n if (okMessage) {\n mpTrackPurchaseEvent({\n retryCount, conversionEventId, type, purchaseAmount, bonus, hasPaypalBillingAgreement,\n threeDAuthResult, currentPaymentOption, chatType, dispatch,\n pathname: purchaseResponce.pathname, getUser, extraEventParams, location\n });\n }\n if (errorMessage) {\n mpTrackPurchaseFailedEvent({\n errorType, errorMessage, errorName, errorCode, gatewayName, errorPathname, threeDAuthResult,\n retryCount, type, purchaseAmount, bonus, hasPaypalBillingAgreement, currentPaymentOption,\n chatType, dispatch, extraEventParams, location\n });\n }\n closePayPalWindowOnMpTrackPayPalProcessingEventsIfNeed({\n okMessage, errorMessage, payPalWindow, claerPaypalWindow\n });\n};\n\nconst setPurchaseResponceDataIfNeed = ({ e, setPurchaseResponce }) => {\n const parsedPurchaseResponceData = tryParseJSONObject(JSON.stringify(e.data));\n if (parsedPurchaseResponceData) {\n log(LOG_LEVELS.DEBUG, 'Purchase', `window got message ${ JSON.stringify(e.data) }`);\n if (e.origin !== window.location.origin) return;\n setPurchaseResponce(e.data);\n }\n};\n\nconst focusPayPalWindowIfNeed = ({ payPalWindow }) => { if (payPalWindow) payPalWindow.focus(); };\n\nconst openPayPalIfNeed = ({ openPayPal, disabled, purchaseURL }) => {\n if (disabled) return;\n openPayPal(purchaseURL);\n};\n\nfunction PayPalProcessing({\n purchaseURL, onPurchaseComplete, getUser, hasPaypalBillingAgreement, loadAdvisor,\n type, children, purchaseAmount, t, bonus, cancelChat, userLoading,\n currentPaymentOption, isContinue, disabled, hidePaymentDetails,\n advisorId, cancelChatOnPP, chatType, hideAffiliatePromoPopup, dispatch, fees\n}) {\n const location = useLocation();\n const history = useLocalizedNavigate();\n const [purchaseResponce, setPurchaseResponce] = useState({});\n const [payPalWindow, setPaypalWindow] = useState(null);\n const [retryCount, setRetryCount] = useState(0);\n const [closeWindowEventListenerMessage, setCloseWindowEventListenerMessage] = useState(null);\n const [needTrackPurchaseStarted, setNeedTrackPurchaseStarted] = useState(true);\n const { purchaseFees } = fees;\n\n const setPurchaseResponceData = (e) => {\n setPurchaseResponceDataIfNeed({ e, setPurchaseResponce });\n };\n\n const clearPurchaseResponceData = () => { setPurchaseResponce({}); };\n\n const claerPaypalWindow = () => {\n setPaypalWindow(null);\n if (closeWindowEventListenerMessage) closeWindowEventListenerMessage();\n };\n\n const openPayPal = (URL) => {\n if (!URL) return;\n const paramsString = queryString.stringify({\n use_reference_transaction: true,\n with3ds: true,\n ...getFollowupParam({ isContinue, type }),\n ...browserContext\n });\n const fullURL = `${ URL }${ sign({ URL }) }${ paramsString }`;\n const {\n frames: { innerHeight, innerWidth },\n top: {\n outerWidth, outerHeight, screenY, screenX\n }\n } = window;\n log(LOG_LEVELS.INFO, 'Purchase', `Opening paypal window with URL:${ fullURL }`);\n const windowTop = outerHeight / 2 + screenY - innerHeight / 2;\n const windowLeft = outerWidth / 2 + screenX - innerWidth / 2;\n const openingwindow = window.open(fullURL, '_blank', `left=${ windowLeft },top=${ windowTop }menubar=false,location=false,toolbar=false,centerscreen=yes,innerWidth=${ innerWidth },innerHeight=${ innerHeight }`);\n setPaypalWindow(openingwindow);\n window.addEventListener('message', setPurchaseResponceData);\n const removeEventListenerMessage = () => { window.removeEventListener('message', setPurchaseResponceData); };\n setCloseWindowEventListenerMessage(() => removeEventListenerMessage);\n };\n\n useEffect(() => {\n mpTrackPayPalProcessingEvents({\n needTrackPurchaseStarted, purchaseResponce, retryCount, type, purchaseAmount, bonus, getUser,\n hasPaypalBillingAgreement, currentPaymentOption, chatType, dispatch,\n setNeedTrackPurchaseStarted, payPalWindow, claerPaypalWindow, purchaseFees, location\n });\n }, [purchaseResponce]);\n\n let interval = null;\n useEffect(() => {\n if (payPalWindow && !interval) {\n interval = setInterval(() => {\n if (payPalWindow && payPalWindow.closed) {\n log(LOG_LEVELS.INFO, 'Purchase', 'user closed PayPal window');\n mpTrackPurchaseFailedEvent({\n reason: 'user canceled', retryCount, type, purchaseAmount, bonus, hasPaypalBillingAgreement, currentPaymentOption, chatType, dispatch, purchaseFees, location\n });\n claerPaypalWindow();\n setNeedTrackPurchaseStarted(true);\n }\n }, 1500);\n }\n return () => {\n if (interval) clearInterval(interval);\n };\n }, [payPalWindow]);\n\n const onConfirmButtonClick = () => {\n onConfirmButton({\n clearPurchaseAction: clearPurchaseResponceData, setRetryCount, onPurchaseComplete\n });\n };\n\n const onFocusWindow = useCallback(() => {\n log(LOG_LEVELS.VERBOSE, 'Purchase', 'on focus window');\n focusPayPalWindowIfNeed({ payPalWindow });\n }, [payPalWindow]);\n\n const onCloseButtonClick = () => {\n clearPurchaseResponceData();\n claerPaypalWindow();\n setNeedTrackPurchaseStarted(true);\n selectCloseButtonActionIfNeed({ type, cancelChatOnPP, hideAffiliatePromoPopup });\n closePurchaseDetailsOnSideMenu(onPurchaseComplete, type);\n };\n\n const onRetry = (e) => {\n e.preventDefault();\n setRetryCount(retryCount + 1);\n setNeedTrackPurchaseStarted(true);\n onRetryButtonClick({\n purchaseResponce, hidePaymentDetails, cancelChat, history, loadAdvisor, advisorId,\n purchaseURL, startPurchaseAction: openPayPal,\n clearPurchaseAction: clearPurchaseResponceData, clearAdditionalAction: claerPaypalWindow\n });\n };\n\n const renderProcessingStatus = () => {\n const { errorMessage, okMessage } = purchaseResponce;\n return (\n <ProcessingStatus\n purchaseResponce={ purchaseResponce }\n t={ t }\n isSideMenu={ isSideMenu({ type }) }\n isAffiliatePromoPopup={ isAffiliatePromoPopup({ type }) }\n onClose={ onCloseButtonClick }\n onFocusProcessingWindow={ onFocusWindow }\n userLoading={ userLoading }\n onRetry={ onRetry }\n onConfirm={ onConfirmButtonClick }\n isCreditCard={ payingWithCreditCard({ currentPaymentOption }) }\n purchaseURL={ purchaseURL }\n buttonTitle={ renderButtonTitle({ isContinue, type, t }) }\n chatType={ chatType }\n purchaseAmount={ purchaseAmount }\n bonus={ bonus }\n visible= { !!shouldRenderProcessingStatus({ payPalWindow, errorMessage, okMessage }) }\n />\n );\n };\n\n const onPurchaseClicked = (e) => {\n e.preventDefault();\n openPayPalIfNeed({ openPayPal, disabled, purchaseURL });\n };\n\n return (\n <>\n <a href={ purchaseURL } target=\"blank\" onClick={ onPurchaseClicked } disabled={ disabled }>\n { children }\n </a>\n { renderProcessingStatus() }\n </>\n );\n}\n\nPayPalProcessing.propTypes = {\n purchaseURL: PropTypes.string,\n purchaseAmount: PropTypes.number.isRequired,\n getUser: PropTypes.func.isRequired,\n hasPaypalBillingAgreement: PropTypes.bool,\n type: PropTypes.oneOf(Object.keys(purchaseDetailsTypes).map((key) => purchaseDetailsTypes[key])),\n children: PropTypes.node,\n onPurchaseComplete: PropTypes.func,\n t: PropTypes.func.isRequired,\n bonus: PropTypes.number,\n cancelChat: PropTypes.func.isRequired,\n userLoading: PropTypes.bool.isRequired,\n currentPaymentOption: PropTypes.shape(PaymentOptionSlimType),\n isContinue: PropTypes.bool,\n disabled: PropTypes.bool,\n hidePaymentDetails: PropTypes.func.isRequired,\n advisorId: PropTypes.number,\n loadAdvisor: PropTypes.func.isRequired,\n cancelChatOnPP: PropTypes.func.isRequired,\n chatType: PropTypes.string.isRequired,\n hideAffiliatePromoPopup: PropTypes.func,\n dispatch: PropTypes.func.isRequired,\n fees: PropTypes.object\n};\n\nPayPalProcessing.defaultProps = {\n purchaseURL: null,\n hasPaypalBillingAgreement: false,\n type: purchaseDetailsTypes.SIDE_MENU,\n children: null,\n onPurchaseComplete: null,\n currentPaymentOption: null,\n bonus: 0,\n isContinue: false,\n disabled: false,\n advisorId: null,\n fees: {},\n hideAffiliatePromoPopup: null\n};\n\nexport default PayPalProcessing;\n","import { connect } from 'react-redux';\nimport PayPalProcessing from './pay_pal_processing';\nimport { getUser } from '../../../actions/user';\nimport { cancelChat } from '../../../actions/chat';\nimport { cancelChatOnPP } from '../../../actions/connected_chat';\nimport { cancelVoipChatOnPP, cancelVoipChat } from '../../../actions/voip_chat';\nimport { hidePaymentDetails } from '../../../actions/funds';\nimport { loadAdvisor } from '../../../actions/advisors';\nimport { hideAffiliatePromoPopup } from '../../../actions/affiliate_promo_popup';\nimport Const from '../../../config/const';\n\nimport withPGTranslation from '../../../config/withPGTranslation';\n\nconst mapStateToProps = ({\n user: { user, loading },\n purchaseDetails: { advisorId, fees }\n}) => ({\n ...user,\n userLoading: loading,\n advisorId,\n fees\n});\n\nconst defaultFunctions = (dispatch) => ({\n getUser: () => dispatch(getUser()),\n hidePaymentDetails: () => dispatch(hidePaymentDetails()),\n loadAdvisor: (advisorId) => dispatch(loadAdvisor(advisorId)),\n dispatch: (func) => dispatch(func)\n});\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n switch (ownProps.chatType) {\n case Const.chatType.text:\n return ({\n cancelChat: () => dispatch(cancelChat()),\n cancelChatOnPP: () => dispatch(cancelChatOnPP(ownProps.isContinue)),\n hideAffiliatePromoPopup: () => dispatch(hideAffiliatePromoPopup()),\n ...defaultFunctions(dispatch)\n });\n case Const.chatType.voice:\n case Const.chatType.video:\n return ({\n cancelChat: () => dispatch(cancelVoipChat()),\n cancelChatOnPP: () => dispatch(cancelVoipChatOnPP(ownProps.isContinue)),\n ...defaultFunctions(dispatch)\n });\n default:\n return null;\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withPGTranslation(PayPalProcessing));\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { browserContext, getClientPlatformForAPI, toLowerCaseSpaced } from '../config/utils';\nimport { LOG_LEVELS } from '../config/app_logger';\n\nfunction ThreeDSecure({\n paymentsParams, createCreditCardProcessingPurchase, log,\n purchase3DSRequiredEventAction, purchase3DSFailedEventAction\n}) {\n const [jsReady, setJsReady] = useState(window.bluesnap);\n\n useEffect(() => () => {\n setJsReady(false);\n }, []);\n\n useEffect(() => {\n if (jsReady) {\n const { threeDsMixpanelProps, threeDsConfig, requiredParams } = paymentsParams;\n purchase3DSRequiredEventAction('purchase 3DS required', toLowerCaseSpaced(threeDsMixpanelProps));\n window.bluesnap.threeDsPaymentsSetup(`${ threeDsConfig.token }`, (sdkResponse) => {\n if (sdkResponse.code === '1') {\n const { threeDSecure } = sdkResponse;\n const params = {\n threed_secure_reference_id: threeDSecure.threeDSecureReferenceId,\n threed_auth_result: threeDSecure.authResult,\n sdk_response: sdkResponse,\n ...requiredParams,\n ...browserContext,\n platform: getClientPlatformForAPI()\n };\n createCreditCardProcessingPurchase(params);\n } else {\n const params = {\n ...threeDsMixpanelProps,\n 'ThreeDS Auth Errors': (sdkResponse.info.errors || []).join(' '),\n 'ThreeDS Auth Warnings': (sdkResponse.info.warnings || []).join(' '),\n 'ThreeDS Auth Response': sdkResponse\n };\n purchase3DSFailedEventAction('purchase 3DS failed', params);\n }\n });\n window.bluesnap.threeDsPaymentsSubmitData(threeDsConfig.threeDsPaymentsSubmitData);\n }\n }, [jsReady]);\n\n const renderThreeDSecure = () => {\n if (!paymentsParams) return;\n const { threeDsConfig } = paymentsParams;\n if (!jsReady && threeDsConfig) {\n log(LOG_LEVELS.INFO, 'CC', 'Loading ThreeDSecure script');\n const scr = document.createElement('script');\n scr.onload = () => {\n setJsReady(true);\n };\n scr.setAttribute('src', threeDsConfig.jsSrc);\n document.head.appendChild(scr);\n }\n };\n\n return (\n <>\n { renderThreeDSecure() }\n </>\n );\n}\n\nThreeDSecure.propTypes = {\n createCreditCardProcessingPurchase: PropTypes.func.isRequired,\n paymentsParams: PropTypes.object,\n log: PropTypes.func.isRequired,\n purchase3DSRequiredEventAction: PropTypes.func.isRequired,\n purchase3DSFailedEventAction: PropTypes.func.isRequired\n};\n\nThreeDSecure.defaultProps = {\n paymentsParams: null\n};\n\nexport default ThreeDSecure;\n","import ThreeDSecure from './threeDSecure';\n\nexport default ThreeDSecure;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { browserContext } from '../config/utils';\n\nfunction CreditCardPayment({\n paymentsParams, createCreditCardProcessingPurchase, getCreditCardProcessingPurchaseResponce,\n paymentsData, paymentsResponce, setCreditCardPaymentStatusHandler\n}) {\n const [purchaseResponceInterval, setPurchaseResponceInterval] = useState(null);\n\n useEffect(() => {\n if (paymentsParams) {\n setCreditCardPaymentStatusHandler({ purchaseStarted: true });\n if (paymentsParams.threeDsConfig) {\n setCreditCardPaymentStatusHandler({ showThreeDSecure: true });\n return;\n }\n const params = {\n ...paymentsParams.requiredParams,\n ...browserContext\n };\n createCreditCardProcessingPurchase(params);\n }\n }, [paymentsParams]);\n\n useEffect(() => {\n if (paymentsData && !purchaseResponceInterval) {\n const int = setInterval(() => {\n getCreditCardProcessingPurchaseResponce(paymentsData.id);\n }, 1500);\n setPurchaseResponceInterval(int);\n }\n }, [paymentsData]);\n\n useEffect(() => {\n if (paymentsResponce) {\n const { okMessage, errorMessage } = paymentsResponce;\n if (okMessage) setCreditCardPaymentStatusHandler({ okMessage: paymentsResponce });\n if (errorMessage) setCreditCardPaymentStatusHandler({ errorMessage: paymentsResponce });\n if (purchaseResponceInterval && (okMessage || errorMessage)) {\n clearInterval(purchaseResponceInterval);\n setPurchaseResponceInterval(null);\n }\n }\n }, [paymentsResponce]);\n\n return <></>;\n}\n\nCreditCardPayment.propTypes = {\n createCreditCardProcessingPurchase: PropTypes.func.isRequired,\n getCreditCardProcessingPurchaseResponce: PropTypes.func.isRequired,\n paymentsParams: PropTypes.object,\n paymentsData: PropTypes.object,\n paymentsResponce: PropTypes.object,\n setCreditCardPaymentStatusHandler: PropTypes.func.isRequired\n};\n\nCreditCardPayment.defaultProps = {\n paymentsParams: null,\n paymentsData: null,\n paymentsResponce: null\n};\n\nexport default CreditCardPayment;\n","/* eslint-disable object-property-newline */\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useLocation } from 'react-router';\nimport ProcessingStatus from '../processing_status/processing_status';\nimport { purchaseDetailsTypes, purchaseErrorText } from '../../../../common/config/const';\nimport { PaymentOptionSlimType } from '../../../../common/payment_methods_list/payment_sources_prop_types';\nimport ThreeDSecure from '../../../../common/threeDSecure';\nimport {\n getFollowupParam, payingWithCreditCard, renderButtonTitle, selectCloseButtonActionIfNeed,\n isAffiliatePromoPopup, isSideMenu, sign, onRetryButtonClick, onConfirmButton,\n mpTrackPurchaseStartedEvent, mpTrackPurchaseEvent, mpTrackPurchaseFailedEvent\n} from '../purchases_utils';\nimport { browserContext } from '../../../../common/config/utils';\nimport CreditCardPayment from '../../../../common/credit_card_payment/credit_card_payment';\nimport { log } from '../../../../common/config/app_logger';\nimport { useLocalizedNavigate } from '../../routes/hooks/useLocalizedNavigate';\n\nconst shouldRenderProcessingStatus = ({\n errorMessage, okMessage, userLoading\n}) => errorMessage || okMessage || userLoading;\n\nconst onPurchaseClickedHandler = ({\n e, disabled, startCreditCardProcessingPurchase, purchaseURL\n}) => {\n e.preventDefault();\n if (disabled) return;\n startCreditCardProcessingPurchase(purchaseURL);\n};\n\nconst closePurchaseDetailsOnSideMenu = (onPurchaseComplete, type) => {\n if (onPurchaseComplete && isSideMenu({ type })) onPurchaseComplete();\n};\n\nfunction CreditCardProcessing({\n purchaseURL, onPurchaseComplete, getUser, hasPaypalBillingAgreement, loadAdvisor, type, children,\n purchaseAmount, t, bonus, cancelChat, userLoading, currentPaymentOption, isContinue, disabled,\n hidePaymentDetails, advisorId, cancelChatOnPP, chatType, hideAffiliatePromoPopup, error,\n getCreditCardProcessingData, purchaseData, purchaseResponce, createCreditCardProcessingPurchase,\n getCreditCardProcessingPurchaseResponce, clearCreditCardProcessing, purchaseParams, dispatch,\n loadPaymentOptions, purchase3DSRequiredEvent, purchase3DSFailedEvent, fees\n}) {\n const location = useLocation();\n const history = useLocalizedNavigate();\n const [retryCount, setRetryCount] = useState(0);\n const [creditCardPaymentStatus, setCreditCardPaymentStatus] = useState({});\n const { purchaseFees } = fees;\n\n const setCreditCardPaymentStatusHandler = (value) => {\n setCreditCardPaymentStatus(pendingCreditCardPaymentStatus => ({\n ...pendingCreditCardPaymentStatus,\n ...value\n }));\n };\n\n const clearCreditCardPaymentStatus = () => {\n setCreditCardPaymentStatus({});\n };\n\n const startCreditCardProcessingPurchase = (URL) => {\n if (!URL) return;\n const params = {\n use_reference_transaction: true,\n with3ds: true,\n ...getFollowupParam({ isContinue, type }),\n ...browserContext\n };\n const url = `${ URL }${ sign({ URL }) }`;\n getCreditCardProcessingData({ url, params });\n };\n\n useEffect(() => {\n if (creditCardPaymentStatus.purchaseStarted) {\n mpTrackPurchaseStartedEvent({\n retryCount, conversionEventId: purchaseParams.conversionEventId, type, purchaseAmount,\n bonus, hasPaypalBillingAgreement, threeDAuthResult: purchaseResponce.threedAuthResult,\n currentPaymentOption, chatType, dispatch, purchaseFees, location\n });\n setCreditCardPaymentStatusHandler({ purchaseStarted: false });\n }\n if (creditCardPaymentStatus.okMessage) {\n const {\n conversionEventId, pathname, threedAuthResult, extraEventParams\n } = creditCardPaymentStatus.okMessage;\n mpTrackPurchaseEvent({\n retryCount, conversionEventId, type, purchaseAmount, bonus, hasPaypalBillingAgreement,\n threeDAuthResult: threedAuthResult, currentPaymentOption, chatType, dispatch,\n pathname, getUser, extraEventParams, location\n });\n }\n if (creditCardPaymentStatus.errorMessage) {\n const {\n errorType, errorPathname, errorMessage, errorName, errorCode, gatewayName,\n threedAuthResult, extraEventParams, spendingLimits\n } = creditCardPaymentStatus.errorMessage;\n mpTrackPurchaseFailedEvent({\n errorType, errorMessage, errorName, errorCode, gatewayName, errorPathname,\n threeDAuthResult: threedAuthResult, retryCount, type, purchaseAmount, bonus,\n hasPaypalBillingAgreement, currentPaymentOption, chatType, dispatch, extraEventParams, spendingLimits, location\n });\n }\n }, [creditCardPaymentStatus]);\n\n const renderCreditCardPayment = () => {\n const creditCardPaymentProps = {\n paymentsParams: purchaseParams,\n createCreditCardProcessingPurchase,\n getCreditCardProcessingPurchaseResponce,\n paymentsData: purchaseData,\n paymentsResponce: purchaseResponce,\n setCreditCardPaymentStatusHandler\n };\n return <CreditCardPayment { ...creditCardPaymentProps } />;\n };\n\n const purchase3DSRequiredEventHandler = (eventName, params) => {\n purchase3DSRequiredEvent(params);\n };\n\n const purchase3DSFailedEventHandler = (eventName, params) => {\n purchase3DSFailedEvent(params);\n };\n\n const renderThreeDSecure = () => {\n if (!creditCardPaymentStatus.showThreeDSecure) return null;\n const threeDSecureProps = {\n createCreditCardProcessingPurchase, paymentsParams: purchaseParams,\n purchase3DSRequiredEventAction: purchase3DSRequiredEventHandler,\n purchase3DSFailedEventAction: purchase3DSFailedEventHandler, log\n };\n return <ThreeDSecure { ...threeDSecureProps } />;\n };\n\n useEffect(() => {\n if (error && error.error === purchaseErrorText.paymentMethodCannotBeUsed) {\n loadPaymentOptions();\n }\n }, [error]);\n\n const onConfirmButtonClick = () => {\n onConfirmButton({\n clearPurchaseAction: clearCreditCardProcessing, setRetryCount, onPurchaseComplete\n });\n };\n\n const onCloseButtonClick = () => {\n clearCreditCardProcessing();\n clearCreditCardPaymentStatus();\n selectCloseButtonActionIfNeed({ type, cancelChatOnPP, hideAffiliatePromoPopup });\n closePurchaseDetailsOnSideMenu(onPurchaseComplete, type);\n };\n\n const onRetry = (e) => {\n e.preventDefault();\n setRetryCount(retryCount + 1);\n onRetryButtonClick({\n purchaseResponce, hidePaymentDetails, cancelChat, history, loadAdvisor, advisorId,\n purchaseURL, startPurchaseAction: startCreditCardProcessingPurchase,\n clearPurchaseAction: clearCreditCardProcessing,\n clearAdditionalAction: clearCreditCardPaymentStatus\n });\n };\n\n const renderProcessingStatus = () => {\n const { errorMessage, okMessage } = purchaseResponce;\n return (\n <ProcessingStatus\n purchaseResponce={ purchaseResponce }\n t={ t }\n isSideMenu={ isSideMenu({ type }) }\n isAffiliatePromoPopup={ isAffiliatePromoPopup({ type }) }\n onClose={ onCloseButtonClick }\n userLoading={ userLoading }\n onRetry={ onRetry }\n onConfirm={ onConfirmButtonClick }\n isCreditCard={ payingWithCreditCard({ currentPaymentOption }) }\n purchaseURL={ purchaseURL }\n buttonTitle={ renderButtonTitle({ isContinue, type, t }) }\n chatType={ chatType }\n purchaseAmount={ purchaseAmount }\n bonus={ bonus }\n error={ error }\n visible= { !!shouldRenderProcessingStatus({\n errorMessage, okMessage, userLoading\n }) }\n />\n );\n };\n\n const onPurchaseClicked = (e) => {\n onPurchaseClickedHandler({\n e, disabled, startCreditCardProcessingPurchase, purchaseURL\n });\n };\n\n const onKeyDown = (e) => {\n e.preventDefault();\n };\n\n return (\n <>\n <a href={ purchaseURL } target=\"blank\" onClick={ onPurchaseClicked } disabled={ disabled } onKeyDown={ onKeyDown }>\n { children }\n </a>\n { renderCreditCardPayment() }\n { renderThreeDSecure() }\n { renderProcessingStatus() }\n </>\n );\n}\n\nCreditCardProcessing.propTypes = {\n purchaseURL: PropTypes.string,\n purchaseAmount: PropTypes.number.isRequired,\n getUser: PropTypes.func.isRequired,\n hasPaypalBillingAgreement: PropTypes.bool,\n type: PropTypes.oneOf(Object.keys(purchaseDetailsTypes).map((key) => purchaseDetailsTypes[key])),\n children: PropTypes.node,\n onPurchaseComplete: PropTypes.func,\n t: PropTypes.func.isRequired,\n bonus: PropTypes.number,\n cancelChat: PropTypes.func.isRequired,\n userLoading: PropTypes.bool.isRequired,\n currentPaymentOption: PropTypes.shape(PaymentOptionSlimType),\n isContinue: PropTypes.bool,\n disabled: PropTypes.bool,\n hidePaymentDetails: PropTypes.func.isRequired,\n advisorId: PropTypes.number,\n loadAdvisor: PropTypes.func.isRequired,\n cancelChatOnPP: PropTypes.func.isRequired,\n chatType: PropTypes.string.isRequired,\n hideAffiliatePromoPopup: PropTypes.func,\n getCreditCardProcessingData: PropTypes.func.isRequired,\n createCreditCardProcessingPurchase: PropTypes.func.isRequired,\n getCreditCardProcessingPurchaseResponce: PropTypes.func.isRequired,\n clearCreditCardProcessing: PropTypes.func.isRequired,\n purchaseParams: PropTypes.object,\n purchaseData: PropTypes.object,\n purchaseResponce: PropTypes.object,\n dispatch: PropTypes.func.isRequired,\n error: PropTypes.object,\n loadPaymentOptions: PropTypes.func.isRequired,\n purchase3DSRequiredEvent: PropTypes.func.isRequired,\n purchase3DSFailedEvent: PropTypes.func.isRequired,\n fees:PropTypes.object\n};\n\nCreditCardProcessing.defaultProps = {\n purchaseURL: null,\n hasPaypalBillingAgreement: false,\n type: purchaseDetailsTypes.SIDE_MENU,\n children: null,\n onPurchaseComplete: null,\n currentPaymentOption: null,\n hideAffiliatePromoPopup: null,\n bonus: 0,\n isContinue: false,\n disabled: false,\n advisorId: null,\n purchaseParams: null,\n purchaseData: null,\n purchaseResponce: {},\n error: null,\n fees: {}\n};\n\nexport default CreditCardProcessing;\n","import { getClientPlatformForAPI } from '../../common/config/utils';\nimport {\n getCreditCardProcessingDataApi,\n createCreditCardProcessingPurchaseApi,\n getCreditCardProcessingPurchaseResponceApi\n} from '../config/api';\nimport Const from '../config/const';\n\nconst creditCardProcessingLoading = () => ({\n type: Const.creditCardProcessing.loading\n});\n\nconst creditCardProcessingDataloaded = (result) => ({\n type: Const.creditCardProcessing.dataLoaded,\n payload: result\n});\n\nconst createCreditCardProcessingPurchaseLoaded = (result) => ({\n type: Const.creditCardProcessing.purchaseLoaded,\n payload: result\n});\n\nexport const getCreditCardProcessingPurchaseResponceLoaded = (result) => ({\n type: Const.creditCardProcessing.purchaseResponceLoaded,\n payload: result\n});\n\nconst creditCardProcessingError = (error) => ({\n type: Const.creditCardProcessing.error,\n error\n});\n\nconst clearCreditCardProcessingAction = () => ({\n type: Const.creditCardProcessing.clearCreditCardProcessing\n});\n\nexport const getCreditCardProcessingData = ({ url, params }) => (dispatch) => {\n dispatch(creditCardProcessingLoading());\n getCreditCardProcessingDataApi({ url, params })\n .then((result) => {\n dispatch(creditCardProcessingDataloaded(result));\n })\n .catch((error) => {\n error.json()\n .then((jsonError) => { dispatch(creditCardProcessingError(jsonError)); })\n .catch(() => { dispatch(creditCardProcessingError(error)); });\n });\n};\n\nexport const createCreditCardProcessingPurchase = (params) => (dispatch) => {\n createCreditCardProcessingPurchaseApi(params)\n .then((result) => {\n dispatch(createCreditCardProcessingPurchaseLoaded(result));\n })\n .catch((error) => {\n if (typeof error.json === 'function') {\n error.json()\n .then((jsonError) => { dispatch(creditCardProcessingError(jsonError)); })\n .catch(() => { dispatch(creditCardProcessingError(error)); });\n }\n dispatch(creditCardProcessingError(error));\n });\n};\n\nexport const getCreditCardProcessingPurchaseResponce = (id) => (dispatch) => {\n getCreditCardProcessingPurchaseResponceApi(id, { platform: getClientPlatformForAPI() })\n .then((result) => {\n dispatch(getCreditCardProcessingPurchaseResponceLoaded(result));\n })\n .catch((error) => {\n error.json()\n .then((jsonError) => { dispatch(creditCardProcessingError(jsonError)); })\n .catch(() => { dispatch(creditCardProcessingError(error)); });\n });\n};\n\nexport const clearCreditCardProcessing = () => (dispatch) => {\n dispatch(clearCreditCardProcessingAction());\n};\n","import { connect } from 'react-redux';\nimport CreditCardProcessing from './credit_card_processing';\nimport { getUser } from '../../../actions/user';\nimport { cancelChat } from '../../../actions/chat';\nimport { cancelChatOnPP } from '../../../actions/connected_chat';\nimport { cancelVoipChatOnPP, cancelVoipChat } from '../../../actions/voip_chat';\nimport { hidePaymentDetails } from '../../../actions/funds';\nimport { loadAdvisor } from '../../../actions/advisors';\nimport { hideAffiliatePromoPopup } from '../../../actions/affiliate_promo_popup';\nimport {\n getCreditCardProcessingData, createCreditCardProcessingPurchase,\n getCreditCardProcessingPurchaseResponce, clearCreditCardProcessing\n} from '../../../actions/credit_card_processing';\nimport { loadPaymentOptions } from '../../../actions/payment_options';\nimport Const from '../../../config/const';\nimport { purchase3DSRequiredEvent, purchase3DSFailedEvent } from '../../../actions/analytics';\n\nimport withPGTranslation from '../../../config/withPGTranslation';\n\nconst mapStateToProps = ({\n user: { user, loading },\n purchaseDetails: { advisorId, fees },\n creditCardProcessing\n}) => ({\n ...user,\n userLoading: loading || creditCardProcessing.loading,\n advisorId,\n ...creditCardProcessing,\n fees\n});\n\nconst defaultFunctions = (dispatch) => ({\n getUser: () => dispatch(getUser()),\n hidePaymentDetails: () => dispatch(hidePaymentDetails()),\n loadAdvisor: (advisorId) => dispatch(loadAdvisor(advisorId)),\n getCreditCardProcessingData: ({ url, params }) => dispatch(\n getCreditCardProcessingData({ url, params })\n ),\n createCreditCardProcessingPurchase: (params) => dispatch(\n createCreditCardProcessingPurchase(params)\n ),\n getCreditCardProcessingPurchaseResponce: (id) => dispatch(\n getCreditCardProcessingPurchaseResponce(id)\n ),\n clearCreditCardProcessing: () => dispatch(clearCreditCardProcessing()),\n dispatch: (func) => dispatch(func),\n loadPaymentOptions: (params) => dispatch(loadPaymentOptions(params)),\n purchase3DSRequiredEvent: (params) => dispatch(purchase3DSRequiredEvent(params)),\n purchase3DSFailedEvent: (params) => dispatch(purchase3DSFailedEvent(params))\n});\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n switch (ownProps.chatType) {\n case Const.chatType.text:\n return ({\n cancelChat: () => dispatch(cancelChat()),\n cancelChatOnPP: () => dispatch(cancelChatOnPP(ownProps.isContinue)),\n hideAffiliatePromoPopup: () => dispatch(hideAffiliatePromoPopup()),\n ...defaultFunctions(dispatch)\n });\n case Const.chatType.voice:\n case Const.chatType.video:\n return ({\n cancelChat: () => dispatch(cancelVoipChat()),\n cancelChatOnPP: () => dispatch(cancelVoipChatOnPP(ownProps.isContinue)),\n ...defaultFunctions(dispatch)\n });\n default:\n return null;\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withPGTranslation(CreditCardProcessing));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport withPGTranslation from '../../../config/withPGTranslation';\nimport { purchaseDetailsTypes, paymentSourcesTheme } from '../../../../common/config/const';\nimport PurchaseDetailsCommon from '../../../../common/purchase_details_common/purchase_details_common';\nimport { PaymentSourcesListType } from '../../../../common/payment_methods_list/payment_sources_prop_types';\nimport { log, LOG_LEVELS } from '../../../../common/config/app_logger';\nimport PayPalProcessing from '../../purchases/pay_pal_processing';\nimport CreditCardProcessing from '../../purchases/credit_card_processing';\nimport { getCurrentLocalization } from '../../../config/i18n';\nimport { getAddFundsInitialChargedAndInitialDurationPropsNames } from '../../../config/util';\nimport { trackPageVisit } from '../../../actions/analytics';\nimport CreditCardValidateProcessing from '../../purchases/credit_card_validate_processing';\n\nfunction PurchaseDetails({\n purchaseDetails, clientAvailableCredit, hidePaymentDetails, loadAvailable,\n purchaseSuccess, options, loadingOptions, trackPaymentMethodChanged,\n sideMenuPurcahseSuccess, isContinue, chatType, affiliatePromoPurcahseSuccess,\n doneChangingPaymentSource, doneAddCard, paymentSources,\n addSource, startEditingPaymentSource, trackPaymentSourcesEvent,\n managePaymentSource, onMakeDefault, loadingSources, doneManagingPaymentSource,\n editPaymentSource, updatePaymentSource, trackStartAddingCreditCard,\n trackCreditCardAdded, trackAddCreditCardFailed, clearAddingCardError,\n loadPaymentOptions, changingPaymentSource, trackMPEventAdditionalFundsRequired,\n reset, hideAffiliatePromoPopup, noThanksLinkClickedAction, backArrowAction, userMPIdentify,\n editCardIfSecurityReasons, isPayg, creditCardValidateError, loadPaymentOptionsOnClose, affiliatePromoPopupOnCloseIconClick, advisorId, cancelChatOnPP\n}) {\n const {\n bonus, clickSource, purchaseType, flow\n } = purchaseDetails;\n\n const trackAddFundsScreenEvent = (funds) => {\n const {\n initialChargedPropName, initialDurationPropName\n } = getAddFundsInitialChargedAndInitialDurationPropsNames({ chatType });\n const additionalFundsParams = {\n options,\n clickSource,\n credit: funds,\n bonus: bonus || 0,\n initialChargedPropName,\n initialDurationPropName,\n payAsYouGo: isPayg,\n flow\n };\n trackMPEventAdditionalFundsRequired(additionalFundsParams);\n };\n\n const onPurchaseDetailsScreenOpened = () => {\n loadPaymentOptions({ ignoreSkip:true });\n loadAvailable(isPayg);\n trackPageVisit('purchase credit? draw');\n return () => {\n reset();\n };\n };\n\n const onPurchaseComplete = () => {\n if (purchaseType === purchaseDetailsTypes.SIDE_MENU) {\n sideMenuPurcahseSuccess();\n return;\n }\n if (purchaseType === purchaseDetailsTypes.AFFILIATE_PROMO_POPUP) {\n affiliatePromoPurcahseSuccess();\n return;\n }\n purchaseSuccess();\n };\n\n const paymentProcessing = (currentPaymentOption, purchaseURL, purchaseAmount, callback) => (\n <PayPalProcessing\n purchaseURL={ purchaseURL }\n onPurchaseComplete={ onPurchaseComplete }\n type={ purchaseType }\n purchaseAmount={ purchaseAmount }\n currentPaymentOption={ currentPaymentOption }\n hasPaypalBillingAgreement={ (currentPaymentOption.context || {}).hasPaypalBillingAgreement }\n bonus={ bonus }\n isContinue={ isContinue }\n chatType={ chatType }\n >\n { callback() }\n </PayPalProcessing>\n );\n\n const renderCreditCardProcessing = (disableBuyButton, isMinPurchase, currentPaymentOption, purchaseURL, purchaseAmount, callback) => (\n <CreditCardProcessing\n purchaseURL={ purchaseURL }\n onPurchaseComplete={ onPurchaseComplete }\n type={ purchaseType }\n purchaseAmount={ purchaseAmount }\n isMinPurchase= { isMinPurchase }\n disabled={ !!disableBuyButton }\n currentPaymentOption={ currentPaymentOption }\n bonus={ bonus }\n isContinue={ isContinue }\n chatType={ chatType }\n >\n { callback() }\n </CreditCardProcessing>\n );\n\n const renderPayPalProcessing = (disableBuyButton, isMinPurchase, currentPaymentOption, purchaseURL, purchaseAmount, callback) => (\n <PayPalProcessing\n purchaseURL={ purchaseURL }\n onPurchaseComplete={ onPurchaseComplete }\n type={ purchaseType }\n purchaseAmount={ purchaseAmount }\n isMinPurchase= { isMinPurchase }\n disabled={ !!disableBuyButton }\n currentPaymentOption={ currentPaymentOption }\n bonus={ bonus }\n isContinue={ isContinue }\n chatType={ chatType }\n >\n { callback() }\n </PayPalProcessing>\n );\n\n const renderCreditCardValidateProcessing = ({ disableBuyButton, requiresPayAsYouGoValidation }) => (\n <CreditCardValidateProcessing\n onCreditCardValidated={ onPurchaseComplete }\n disableBuyButton={ disableBuyButton }\n loading={ loadingSources }\n requiresPayAsYouGoValidation={ requiresPayAsYouGoValidation }\n advisorId={ advisorId }\n chatType={ chatType }\n />\n );\n\n const hideAffiliatePromoPopupAction = () => {\n hideAffiliatePromoPopup();\n noThanksLinkClickedAction();\n };\n\n const closeAffiliatePromoPopupAction = () => {\n if (affiliatePromoPopupOnCloseIconClick) {\n affiliatePromoPopupOnCloseIconClick();\n }\n };\n\n const showPaymentSources = (kind) => {\n log(LOG_LEVELS.INFO, 'CC', '<Option/> changing PaymentSource');\n changingPaymentSource(kind || true);\n };\n\n const addCreditCard = () => {\n log(LOG_LEVELS.INFO, 'CC', 'on add Credit card');\n addSource('cc');\n showPaymentSources('cc');\n };\n\n const paymentMethodListActions = {\n loadAvailable,\n addSource,\n startEditingPaymentSource,\n managePaymentSource,\n doneManagingPaymentSource,\n getAddCardCinfig: editPaymentSource,\n updatePaymentSource,\n doneAddCard,\n clearAddingCardError,\n doneChangingPaymentSource,\n showPaymentSources,\n loadPaymentOptions,\n editCardIfSecurityReasons\n };\n\n const paymentMethodListAnalyticsEvents = {\n trackPaymentSourcesEvent,\n trackPaymentMethodChanged,\n trackStartAddingCreditCard,\n trackCreditCardAdded,\n trackAddCreditCardFailed\n };\n\n const purchaseDetailsActions = {\n hidePaymentDetails : hidePaymentDetails ?? closeAffiliatePromoPopupAction,\n backArrowAction,\n onPurchaseDetailsScreenOpened,\n renderCreditCardProcessing,\n renderPayPalProcessing,\n paymentProcessing,\n getCurrentLocalization,\n addCreditCard,\n renderCreditCardValidateProcessing,\n hideAffiliatePromoPopupAction,\n onPurchaseComplete,\n cancelChatOnPP\n };\n\n const renderPurchaseDetailsCommon = () => {\n const purchaseDetailsCommonProps = {\n ...purchaseDetailsActions,\n paymentMethodListActions,\n paymentMethodListAnalyticsEvents,\n trackAddFundsScreenEvent,\n showPaymentSources,\n onMakeDefault,\n log,\n clientAvailableCredit,\n options,\n loadingOptions,\n loadingSources,\n paymentSources,\n theme: paymentSourcesTheme.purchase,\n userMPIdentify,\n purchaseDetails,\n trackPageVisit,\n isPayg,\n creditCardValidateError,\n loadPaymentOptionsOnClose,\n chatType,\n isContinue\n };\n return <PurchaseDetailsCommon { ...purchaseDetailsCommonProps } />;\n };\n\n return renderPurchaseDetailsCommon();\n}\n\nPurchaseDetails.propTypes = {\n purchaseDetails: PropTypes.object,\n clientAvailableCredit: PropTypes.string,\n purchaseSuccess: PropTypes.func.isRequired,\n hasPaypalBillingAgreement: PropTypes.bool,\n isContinue: PropTypes.bool,\n sideMenuPurcahseSuccess: PropTypes.func.isRequired,\n chatType: PropTypes.string.isRequired,\n affiliatePromoPurcahseSuccess: PropTypes.func.isRequired,\n doneChangingPaymentSource: PropTypes.func.isRequired,\n paymentSources: PropTypes.shape(PaymentSourcesListType),\n loadAvailable: PropTypes.func.isRequired,\n addSource: PropTypes.func.isRequired,\n startEditingPaymentSource: PropTypes.func.isRequired,\n managePaymentSource: PropTypes.func.isRequired,\n trackPaymentSourcesEvent: PropTypes.func.isRequired,\n onMakeDefault: PropTypes.func.isRequired,\n loadingSources: PropTypes.bool.isRequired,\n doneManagingPaymentSource: PropTypes.func.isRequired,\n trackPaymentMethodChanged: PropTypes.func.isRequired,\n hidePaymentDetails: PropTypes.func,\n options: PropTypes.array,\n loadPaymentOptions: PropTypes.func.isRequired,\n changingPaymentSource: PropTypes.func.isRequired,\n trackMPEventAdditionalFundsRequired: PropTypes.func.isRequired,\n reset: PropTypes.func.isRequired,\n hideAffiliatePromoPopup: PropTypes.func.isRequired,\n noThanksLinkClickedAction: PropTypes.func.isRequired,\n loadingOptions: PropTypes.bool.isRequired,\n backArrowAction: PropTypes.func,\n editPaymentSource: PropTypes.func.isRequired,\n updatePaymentSource: PropTypes.func.isRequired,\n trackStartAddingCreditCard: PropTypes.func.isRequired,\n doneAddCard: PropTypes.func.isRequired,\n trackCreditCardAdded: PropTypes.func.isRequired,\n trackAddCreditCardFailed: PropTypes.func.isRequired,\n clearAddingCardError: PropTypes.func.isRequired,\n userMPIdentify: PropTypes.bool.isRequired,\n editCardIfSecurityReasons: PropTypes.func.isRequired,\n creditCardValidateError: PropTypes.object,\n loadPaymentOptionsOnClose: PropTypes.func.isRequired,\n affiliatePromoPopupOnCloseIconClick: PropTypes.func.isRequired,\n advisorId: PropTypes.number.isRequired,\n cancelChatOnPP: PropTypes.func.isRequired\n};\n\nPurchaseDetails.defaultProps = {\n purchaseDetails: {},\n hasPaypalBillingAgreement: false,\n clientAvailableCredit: '0',\n isContinue: false,\n paymentSources: {},\n options: [],\n backArrowAction: null,\n hidePaymentDetails: null,\n creditCardValidateError: null\n};\nexport default withPGTranslation(PurchaseDetails);\n","import { connect } from 'react-redux';\nimport PurchaseDetails from './purchase_details';\nimport { purchaseSuccess, purchaseOnBack } from '../../../actions/chat';\nimport { cancelChatOnPP } from '../../../actions/connected_chat';\nimport {\n voipPurchaseSuccess, voipPurchaseOnBack, voipPurchaseSuccessOnContinue, cancelVoipChatOnPP\n} from '../../../actions/voip_chat';\nimport { purchaseSuccess as sideMenuPurcahseSuccess } from '../../../actions/funds';\nimport {\n purchaseSuccess as affiliatePromoPurcahseSuccess,\n hideAffiliatePromoPopup,\n noThanksLinkClickedAction\n} from '../../../actions/affiliate_promo_popup';\nimport { doneChangingPaymentSource, changingPaymentSource } from '../../../actions/purchase_details';\nimport {\n loadPaymentOptions, trackMPEventAdditionalFundsRequired, reset, loadPaymentOptionsOnClose\n} from '../../../actions/payment_options';\nimport {\n setChatPopupRightItem,\n clearChatPopupRightItem,\n updateChatPopupBackAction,\n cleanUpdatedBackAction\n} from '../../../actions/general_popup';\nimport {\n loadAvailable, addSource, startEditingPaymentSource,\n managePaymentSource, onMakeDefault, cleanUp, removeSource,\n doneManagingPaymentSource, trackPaymentMethodChanged,\n editPaymentSource, updatePaymentSource, trackStartAddingCreditCard,\n trackCreditCardAdded, trackAddCreditCardFailed, clearAddingCardError,\n doneAddCard, editCardIfSecurityReasons\n} from '../../../actions/payment_sources';\nimport { trackPaymentSourcesEvent } from '../../../actions/analytics';\nimport withTranslation from '../../../config/withPGTranslation';\nimport Const from '../../../config/const';\n\nconst mapStateToProps = ({\n chat,\n voipChat,\n user: { user, userMPIdentify },\n user: { loading },\n purchaseDetails,\n paymentOptions,\n paymentSources,\n creditCardValidateProcessing,\n affiliatePromoPopup: { onCloseIconClick }\n}, { chatType }) => {\n switch (chatType) {\n case Const.chatType.text:\n return ({\n ...chat,\n ...user,\n purchaseDetails,\n options: paymentOptions.options,\n paymentSources,\n loadingSources: paymentSources.loading || loading || creditCardValidateProcessing.validating,\n loadingOptions: paymentOptions.loading,\n userMPIdentify,\n creditCardValidateError: creditCardValidateProcessing.error,\n affiliatePromoPopupOnCloseIconClick: onCloseIconClick\n });\n case Const.chatType.voice:\n case Const.chatType.video: {\n return ({\n ...voipChat,\n ...user,\n purchaseDetails,\n options: paymentOptions.options,\n paymentSources,\n loadingSources: paymentSources.loading || loading || creditCardValidateProcessing.validating,\n loadingOptions: paymentOptions.loading,\n userMPIdentify,\n creditCardValidateError: creditCardValidateProcessing.error,\n affiliatePromoPopupOnCloseIconClick: onCloseIconClick\n });\n }\n default:\n return null;\n }\n};\n\nconst defaultFunctions = (dispatch, ownProps) => ({\n affiliatePromoPurcahseSuccess: () => {\n dispatch(affiliatePromoPurcahseSuccess(ownProps.chatType, ownProps.needUpdatePricingOptions));\n },\n updateChatPopupBackAction: (action) => dispatch(updateChatPopupBackAction(action)),\n cleanUpdatedBackAction: () => dispatch(cleanUpdatedBackAction()),\n doneChangingPaymentSource: () => dispatch(doneChangingPaymentSource()),\n trackMPEventAdditionalFundsRequired:\n (additionalFundsParams) => dispatch(trackMPEventAdditionalFundsRequired(additionalFundsParams)),\n loadAvailable: (forceReload) => dispatch(loadAvailable(forceReload)),\n addSource: (kind) => dispatch(addSource(kind)),\n startEditingPaymentSource: (id) => dispatch(startEditingPaymentSource(id)),\n managePaymentSource: (id) => dispatch(managePaymentSource(id)),\n trackPaymentSourcesEvent: (clickSource) => dispatch(trackPaymentSourcesEvent(clickSource)),\n onMakeDefault: (history, location, makeDefParams) => dispatch(\n onMakeDefault(history, location, makeDefParams)\n ),\n cleanUp: () => dispatch(cleanUp()),\n setChatPopupRightItem: (item) => dispatch(setChatPopupRightItem(item)),\n clearChatPopupRightItem: () => dispatch(clearChatPopupRightItem()),\n removeSource: (id) => dispatch(removeSource(id)),\n doneManagingPaymentSource: () => dispatch(doneManagingPaymentSource()),\n trackPaymentMethodChanged:\n (properties, clickSourc) => dispatch(trackPaymentMethodChanged(properties, clickSourc)),\n editPaymentSource: (id) => dispatch(editPaymentSource(id)),\n updatePaymentSource: (paymentSourceParams) => dispatch(updatePaymentSource(paymentSourceParams)),\n trackStartAddingCreditCard: (clickSource) => dispatch(trackStartAddingCreditCard(clickSource)),\n doneAddCard: () => dispatch(doneAddCard()),\n trackCreditCardAdded:\n (params, clickSource) => dispatch(trackCreditCardAdded(params, clickSource)),\n trackAddCreditCardFailed: (params) => dispatch(trackAddCreditCardFailed(params)),\n clearAddingCardError: () => dispatch(clearAddingCardError()),\n loadPaymentOptions: (params) => dispatch(loadPaymentOptions(params)),\n loadPaymentOptionsOnClose: () => dispatch(loadPaymentOptionsOnClose()),\n changingPaymentSource: (changing) => dispatch(changingPaymentSource(changing)),\n reset: () => dispatch(reset()),\n hideAffiliatePromoPopup: () => dispatch(hideAffiliatePromoPopup()),\n noThanksLinkClickedAction: () => dispatch(noThanksLinkClickedAction()),\n editCardIfSecurityReasons: (id, kind) => dispatch(editCardIfSecurityReasons(id, kind))\n});\n\nconst mapDispatchToProps = (dispatch, ownProps) => {\n switch (ownProps.chatType) {\n case Const.chatType.text:\n return ({\n purchaseSuccess: () => dispatch(purchaseSuccess()),\n cancelChatOnPP: () => dispatch(cancelChatOnPP(ownProps.isContinue)),\n purchaseOnBack: () => dispatch(purchaseOnBack()),\n sideMenuPurcahseSuccess: () => dispatch(sideMenuPurcahseSuccess()),\n ...defaultFunctions(dispatch, ownProps)\n });\n case Const.chatType.voice:\n case Const.chatType.video:\n const voipPurchaseSuccessAction = ownProps.isContinue ? voipPurchaseSuccessOnContinue() : voipPurchaseSuccess(); //eslint-disable-line\n return ({\n purchaseSuccess: () => dispatch(voipPurchaseSuccessAction),\n cancelChatOnPP: () => dispatch(cancelVoipChatOnPP(ownProps.isContinue)),\n purchaseOnBack: () => dispatch(voipPurchaseOnBack()),\n sideMenuPurcahseSuccess: () => dispatch(sideMenuPurcahseSuccess()),\n ...defaultFunctions(dispatch, ownProps)\n });\n default:\n return null;\n }\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(withTranslation(PurchaseDetails));\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport withPGTranslation from '../../config/withPGTranslation';\n\nclass Form extends PureComponent {\n static propTypes = {\n sendMessage: PropTypes.func.isRequired,\n sendTyping: PropTypes.func.isRequired,\n sendStopTyping: PropTypes.func.isRequired,\n typingTimeout: PropTypes.number.isRequired,\n disabled: PropTypes.bool.isRequired,\n t: PropTypes.func.isRequired,\n textAreaRef: PropTypes.object.isRequired\n };\n\n state = {\n body: ''\n };\n\n onStopTyping = () => {\n clearTimeout(this.typingTimer);\n this.typingTimer = null;\n const { sendStopTyping } = this.props;\n sendStopTyping();\n };\n\n onChange = event => {\n this.setState({ body: event.target.value });\n const { typingTimeout, sendTyping } = this.props;\n if (this.typingTimer) {\n clearTimeout(this.typingTimer);\n } else {\n sendTyping();\n }\n this.typingTimer = setTimeout(this.onStopTyping * 1000, typingTimeout);\n };\n\n onSend = e => {\n e.preventDefault();\n const { sendStopTyping, sendMessage, textAreaRef } = this.props;\n const { body } = this.state;\n\n if (this.typingTimer) {\n clearTimeout(this.typingTimer);\n this.typingTimer = null;\n sendStopTyping();\n }\n\n sendMessage(body);\n this.setState({ body: '' });\n textAreaRef.current.focus();\n };\n\n isSendAllowed = () => {\n const { body } = this.state;\n\n return body.trim() !== '';\n };\n\n onKeyPressed = e => {\n if (!this.isSendAllowed()) return;\n\n if (e.keyCode === 13 && e.shiftKey === false) {\n this.onSend(e);\n }\n };\n\n render() {\n const { body } = this.state;\n const { disabled, t, textAreaRef } = this.props;\n const sendButton = disabled ? null : (\n <button\n className={ classes.sendBtn }\n type=\"button\"\n onClick={ this.onSend }\n disabled={ !this.isSendAllowed() }\n >\n { t('chat.send') }\n </button>\n );\n\n return (\n <div className={ classes.chatSendContainer }>\n <textarea\n className={ classes.chatSendArea }\n placeholder={ t('chat.your_message') }\n value={ body }\n onChange={ this.onChange }\n onKeyDown={ this.onKeyPressed }\n rows=\"3\"\n disabled={ disabled }\n ref={ textAreaRef }\n />\n {sendButton}\n </div>\n );\n }\n}\nexport default withPGTranslation(Form);\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport Const from '../../../config/const';\nimport { isXfmProgram } from '../../../config/util';\nimport Stopwatch from '../../stopwatch';\nimport { getAdvisorSlug } from '../../../project_items/helper_functions';\n\nfunction TimerComponent({\n freeDuration, paidDuration, state, t, advisorXfmProgram, userXfmProgram, advisorId, loadAdvisor, buyerDurationCounterDirection, trackSessionHireEventIfNeeded\n}) {\n const [seconds, setSecondsLeft] = useState(null);\n const [interval, setTimerInterval] = useState(null);\n\n const calculateEndDate = ({ duration }) => {\n const currentDate = new Date();\n return currentDate.setSeconds(currentDate.getSeconds() + duration);\n };\n\n const stopTimer = () => {\n if (interval) {\n clearInterval(interval);\n setTimerInterval(null);\n }\n };\n\n const getDuration = () => freeDuration + paidDuration;\n\n const startTimer = () => {\n const endDate = calculateEndDate({ duration: getDuration() });\n stopTimer();\n const timer = setInterval(() => {\n const datesSecondsDiff = (new Date(endDate).getTime() - new Date().getTime()) / 1000;\n setSecondsLeft(Math.round(datesSecondsDiff));\n }, 1000);\n setTimerInterval(timer);\n };\n\n useEffect(() => {\n if (state === Const.chatStates.paused || state === Const.chatStates.ended) {\n stopTimer();\n if (isXfmProgram({ advisorXfmProgram, userXfmProgram })) loadAdvisor(getAdvisorSlug({ advisorId }));\n }\n if (state === Const.chatStates.started) {\n startTimer();\n }\n return () => {\n stopTimer();\n };\n }, [state]);\n\n useEffect(() => {\n if (seconds && seconds <= paidDuration) {\n trackSessionHireEventIfNeeded();\n }\n }, [seconds]);\n\n const renderNumber = number => (number < 10 ? `0${ number }` : number);\n\n const renderRemainingTime = () => {\n const minutes = parseInt(seconds / 60, 10);\n const remainigSeconds = seconds % 60;\n\n return (\n <div>\n {renderNumber(minutes)}\n :\n {renderNumber(remainigSeconds)}\n </div>\n );\n };\n\n const renderFreeSetupTime = () => <div>{ t('chat.free_setup_time') }</div>;\n\n const renderTimer = () => {\n if (seconds <= 0) return null;\n if (buyerDurationCounterDirection === 'stopwatch') {\n return (\n <Stopwatch\n secondsCount={ seconds }\n paidDuration={ paidDuration }\n callType=\"chat\"\n />\n );\n }\n return (\n <div>\n {seconds <= paidDuration ? renderRemainingTime() : renderFreeSetupTime()}\n </div>\n );\n };\n\n return renderTimer();\n}\n\nTimerComponent.propTypes = {\n freeDuration: PropTypes.number.isRequired,\n paidDuration: PropTypes.number.isRequired,\n state: PropTypes.string.isRequired,\n t: PropTypes.func.isRequired,\n advisorXfmProgram: PropTypes.object,\n userXfmProgram: PropTypes.object,\n loadAdvisor: PropTypes.func.isRequired,\n advisorId: PropTypes.number.isRequired,\n buyerDurationCounterDirection: PropTypes.string.isRequired\n};\n\nTimerComponent.defaultProps = {\n advisorXfmProgram: {},\n userXfmProgram: {}\n};\n\nexport default TimerComponent;\n","import { connect } from 'react-redux';\nimport TimerComponent from './timer_component';\nimport withPGTranslation from '../../../config/withPGTranslation';\nimport { loadAdvisor } from '../../../actions/advisors';\nimport { trackSessionHireEventIfNeeded } from '../../../actions/chat';\n\nconst mapeStateToProps = ({\n chat: {\n paidDuration,\n freeDuration, state, advisorId, durationCounterDisplay, buyerDurationCounterDirection\n },\n user: { user },\n advisors\n}) => {\n const advisor = (advisors || {})[parseInt(advisorId, 10)];\n return ({\n paidDuration,\n freeDuration,\n state,\n advisorXfmProgram: advisor && advisor.xfmProgram,\n userXfmProgram: user && user.xfmProgram,\n advisorId,\n buyerDurationCounterDirection,\n durationCounterDisplay\n });\n};\n\nexport default connect(\n mapeStateToProps,\n {\n loadAdvisor,\n trackSessionHireEventIfNeeded\n }\n)(withPGTranslation(TimerComponent));\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container--AoLyr\",\"holder\":\"holder--ScP_U\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport Const from '../../../config/const';\n\nfunction NetworkStateComponent({ state, t }) {\n const renderNetworkState = () => <div>{ t('chat.network_seems_to_be_offline') }</div>;\n\n return state !== Const.pubnub.states.down ? null : (\n <div className={ classes.container }>\n <div className={ classes.holder }>\n {renderNetworkState()}\n </div>\n </div>\n );\n}\n\nNetworkStateComponent.propTypes = {\n state: PropTypes.string.isRequired,\n t: PropTypes.func.isRequired\n};\n\nexport default NetworkStateComponent;\n","import { connect } from 'react-redux';\nimport NetworkStateComponent from './network_state';\nimport withPGTranslation from '../../../config/withPGTranslation';\n\nconst mapStateToProps = ({ pubnub }) => pubnub;\n\nexport default connect(mapStateToProps)(withPGTranslation(NetworkStateComponent));\n","import React, { PureComponent, createRef, memo } from 'react';\nimport PropTypes from 'prop-types';\nimport { format } from 'date-fns';\nimport classNames from 'classnames';\nimport parse from 'html-react-parser';\nimport { isMobile, isBrowser } from 'react-device-detect';\nimport Form from './form';\nimport classes from './classes.module.scss';\nimport TimerComponent from './timer';\nimport NetworkStateComponent from './chat_network_state';\nimport Spiner from '../../../common/helpers/spiner';\nimport { SvgIcon } from '../../../common/sprites';\n\nlet pendingUpdate = false;\nexport default class Chat extends PureComponent {\n lastMessageRef = createRef();\n\n textAreaRef = createRef();\n\n static propTypes = {\n peerTyping: PropTypes.bool,\n messages: PropTypes.arrayOf(\n PropTypes.shape({\n body: PropTypes.string.isRequired,\n uuid: PropTypes.number.isRequired,\n timetoken: PropTypes.string\n })\n ),\n systemMessages: PropTypes.arrayOf(\n PropTypes.shape({\n body: PropTypes.string.isRequired,\n timetoken: PropTypes.string\n })\n ),\n peers: PropTypes.arrayOf(\n PropTypes.shape({\n imageUrl: PropTypes.string,\n nickname: PropTypes.string.isRequired,\n uuid: PropTypes.number\n })\n ).isRequired,\n disabled: PropTypes.bool.isRequired,\n\n typingTimeout: PropTypes.number.isRequired,\n sendMessage: PropTypes.func.isRequired,\n sendTyping: PropTypes.func.isRequired,\n sendStopTyping: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n profilePictureUrl: PropTypes.string.isRequired,\n hangupChat: PropTypes.func.isRequired,\n ownUuid: PropTypes.string.isRequired,\n t: PropTypes.func.isRequired,\n hangingUp: PropTypes.bool.isRequired\n };\n\n static defaultProps = {\n peerTyping: false,\n messages: [],\n systemMessages: []\n };\n\n state = {\n faviconIconHref: null\n };\n\n constructor() {\n super();\n this.liveIndecatorInterval = null;\n }\n\n componentDidMount() {\n window.history.pushState(null, null, window.location.href);\n window.addEventListener('onpopstate', this.disableBackButton);\n window.visualViewport.addEventListener('scroll', this.viewportHandler);\n window.visualViewport.addEventListener('resize', this.viewportHandler);\n if (isBrowser) {\n const faviconLinkElement = document.getElementById('favicon_link');\n this.setState({ faviconIconHref: faviconLinkElement.href });\n const canvas = document.createElement('canvas');\n canvas.id = 'canvas';\n canvas.width = 32;\n canvas.height = 32;\n canvas.style.display = 'none';\n this.liveIndicatorAnimation(canvas);\n }\n this.textAreaRef.current.focus();\n this.scrollToBottom();\n }\n\n componentDidUpdate() {\n this.scrollToBottom();\n }\n\n componentWillUnmount() {\n window.removeEventListener('onpopstate', this.disableBackButton);\n window.visualViewport.removeEventListener('scroll', this.viewportHandler);\n window.visualViewport.removeEventListener('resize', this.viewportHandler);\n const { faviconIconHref } = this.state;\n if (isBrowser) {\n if (this.liveIndecatorInterval) clearInterval(this.liveIndecatorInterval);\n document.getElementById('favicon_link').href = faviconIconHref;\n }\n }\n\n getAvatarFromUuuId(uuid) {\n const { peers } = this.props;\n const peer = peers.find(p => parseInt(p.uuid, 10) === parseInt(uuid, 10));\n const avatar = <img className={ classes.avatar } src={ peer.imageUrl } alt=\"\" style={ { '--size': '32px' } } />;\n\n return avatar;\n }\n\n disableBackButton = () => {\n window.history.go(1);\n };\n\n renderHeader = () => {\n const {\n name,\n profilePictureUrl,\n hangupChat,\n t,\n hangingUp\n } = this.props;\n return (\n <div\n className={ isMobile ? classes.chatHeaderContainer : classes.chatHeaderContainerBrowser }\n >\n <div className={ classes.chatHeader } style={ { justifyContent: 'start' } }>\n <button className={ classes.hangupBtn } type=\"button\" onClick={ hangupChat } disabled={ hangingUp }>\n <SvgIcon className={ classes.hangupImg } id=\"ic_chat_hangup\" size={ 10 } />\n { t('chat.hang_up') }\n </button>\n </div>\n <div className={ classes.chatHeader } style={ { justifyContent: 'center' } }>\n <img className={ classes.avatar } src={ profilePictureUrl } alt=\"\" style={ { '--size': '40px' } } />\n <b className={ classes.advisorNameText }>{name}</b>\n </div>\n <div className={ classes.chatHeader } style={ { justifyContent: 'flex-end' } }>\n <TimerComponent />\n </div>\n </div>\n );\n };\n\n liveIndicatorAnimation = (canvas) => {\n let pulseFactor = 1;\n const minPulse = 0.6;\n const maxPulse = 0.9;\n\n this.liveIndecatorInterval = setInterval(() => {\n // Update the pulse factor with easing\n const range = maxPulse - minPulse;\n const halfRange = range / 2;\n const center = minPulse + halfRange;\n const easing = Math.sin(Date.now() / 300) * halfRange;\n pulseFactor = center + easing;\n\n const newFavicon = this.createFavicon(canvas, pulseFactor);\n this.setFavicon(newFavicon);\n }, 300);\n };\n\n createFavicon = (canvas, pulseFactor) => {\n const ctx = canvas.getContext('2d');\n\n // Clear the canvas\n ctx.clearRect(0, 0, 32, 32);\n\n // Draw the pulsing circle\n const radius = (32 / 2) * pulseFactor;\n ctx.beginPath();\n ctx.arc(32 / 2, 32 / 2, radius, 0, Math.PI * 2);\n ctx.fillStyle = '#73C940';\n ctx.fill();\n\n // Create a data URL from the canvas\n return canvas.toDataURL('image/png');\n };\n\n setFavicon = (dataURL) => {\n let favicon = document.getElementById('favicon_link');\n if (!favicon) {\n favicon = document.createElement('link');\n favicon.rel = 'icon';\n document.head.appendChild(favicon);\n }\n favicon.href = dataURL;\n };\n\n viewportHandler = () => {\n if (pendingUpdate) return;\n pendingUpdate = true;\n\n const chatContainer = document.getElementById('chatContainer');\n const chatMessagesContainer = document.getElementById('chatMessagesContainer');\n chatContainer.ontouchmove = (e) => {\n if (chatMessagesContainer.contains(e.target)) return;\n e.preventDefault();\n };\n };\n\n scrollToBottom() {\n this.lastMessageRef.current.scrollIntoView({ behavior: 'smooth' });\n }\n\n renderMessage = (message, index) => {\n const { ownUuid } = this.props;\n const { uuid } = message;\n if (parseInt(ownUuid, 10) === uuid) {\n return this.renderMyMessage(message, index);\n }\n return this.renderAdvisorMessage(message);\n };\n\n renderSystemMessage = ({\n body, timetoken\n }, index) => (\n <SystemMessage key={ index } body={ body } timetoken={ timetoken || '' } />\n );\n\n renderMyMessage({\n body, uuid, timetoken, offline\n }, index) {\n const { peers } = this.props;\n const peer = peers.find(p => parseInt(p.uuid, 10) === parseInt(uuid, 10));\n return (\n <ClientMessage\n key={ index }\n body={ body }\n timetoken={ timetoken || '' }\n imageUrl={ peer.imageUrl }\n offline= { offline }\n />\n );\n }\n\n renderAdvisorMessage({ body, uuid, timetoken }) {\n const { peers } = this.props;\n const peer = peers.find(p => parseInt(p.uuid, 10) === parseInt(uuid, 10));\n return (\n <AdvisorMessage\n key={ timetoken }\n body={ body }\n timetoken={ timetoken }\n imageUrl={ peer.imageUrl }\n />\n );\n }\n\n renderPeerTyping() {\n const {\n peerTyping, ownUuid, peers, t\n } = this.props;\n const { uuid, nickname } = peers.find(p => parseInt(p.uuid, 10) !== parseInt(ownUuid, 10));\n\n return peerTyping ? (\n <div className={ classes.typingContainer }>\n {this.getAvatarFromUuuId(uuid)}\n <span className={ classes.nickname }>{` ${ nickname } ${ t('chat.is_typing') }`}</span>\n </div>\n ) : (\n <div className={ classes.typingContainer } />\n );\n }\n\n render() {\n const {\n messages, systemMessages, sendMessage, sendTyping, sendStopTyping,\n typingTimeout, disabled\n } = this.props;\n const formProps = {\n sendMessage, sendTyping, sendStopTyping, typingTimeout, disabled\n };\n return (\n <div id=\"chatContainer\" className={ isMobile ? classes.chatContainerMobile : classes.chatContainerBrowser }>\n {this.renderHeader()}\n <NetworkStateComponent />\n <div id=\"chatMessagesContainer\" className={ classes.chatMessagesContainer }>\n {systemMessages.map(this.renderSystemMessage) }\n {messages.map(this.renderMessage) }\n <div ref={ this.lastMessageRef } />\n </div>\n {this.renderPeerTyping()}\n <Form { ...formProps } textAreaRef={ this.textAreaRef } />\n </div>\n );\n }\n}\n\nexport const SystemMessage = memo(({ body, timetoken }) => (\n <div key={ timetoken } className={ classes.chatSystemMessageContainer } data-hj-suppress>\n <div className={\n classNames(classes.chatSystemBubbleContainer, classes.chatBaseBubbleContainer)\n}\n >\n <span className={ classes.bubbdleText }>\n {parse(body)}\n </span>\n </div>\n </div>\n));\n\nSystemMessage.propTypes = {\n body: PropTypes.string.isRequired,\n timetoken: PropTypes.string.isRequired\n};\n\nexport const ClientMessage = memo(({ body, timetoken, offline }) => (\n <div key={ timetoken } className={ classes.chatOwnMessageContainer } data-hj-suppress>\n <div className={ classNames(classes.chatOwnBubbleContainer, classes.chatBaseBubbleContainer) }>\n <span className={ classes.bubbdleText }>\n {body}\n {\n offline\n ? <LoadIndicator classname={ classes.clientTimeToken } />\n : <TimeToken timetoken={ timetoken } classname={ classes.clientTimeToken } />\n }\n </span>\n </div>\n </div>\n));\n\nClientMessage.propTypes = {\n body: PropTypes.string.isRequired,\n timetoken: PropTypes.string.isRequired,\n imageUrl: PropTypes.string,\n offline: PropTypes.bool\n};\n\nClientMessage.defaultProps = {\n imageUrl: null,\n offline: false\n};\n\nexport const AdvisorMessage = memo(({ body, timetoken, imageUrl }) => (\n <div key={ timetoken } className={ classes.chatAdvisorMessageContainer }>\n <img className={ classes.avatar } src={ imageUrl } alt=\"\" style={ { '--size': '32px' } } />\n <div\n className={ classNames(classes.chatAdvisorBubbleContainer, classes.chatBaseBubbleContainer) }\n data-hj-suppress\n >\n <span className={ classes.bubbdleText }>\n {body}\n <TimeToken timetoken={ timetoken } classname={ classes.advisorTimeToken } />\n </span>\n </div>\n </div>\n));\n\nAdvisorMessage.propTypes = {\n body: PropTypes.string.isRequired,\n timetoken: PropTypes.string.isRequired,\n imageUrl: PropTypes.string\n};\n\nAdvisorMessage.defaultProps = {\n imageUrl: null\n};\n\nfunction TimeToken({ timetoken, classname }) {\n return <span className={ classname }>{format(new Date(timetoken), 'HH:mm')}</span>;\n}\n\nTimeToken.propTypes = {\n timetoken: PropTypes.string.isRequired,\n classname: PropTypes.string.isRequired\n};\n\nfunction LoadIndicator({ classname }) {\n return <span className={ classname }><Spiner /></span>;\n}\n\nLoadIndicator.propTypes = {\n classname: PropTypes.string.isRequired\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"bannerContainer\":\"bannerContainer--J5Z5Q\",\"bannerVideoContainer\":\"bannerVideoContainer--wodgA\",\"bannerVideoPlayer\":\"bannerVideoPlayer--xnonT\",\"bannerContent\":\"bannerContent--JoLL0\",\"bannerTitleContainer\":\"bannerTitleContainer--RWQbv\",\"bannerTitle\":\"bannerTitle--zckft\",\"bannerTitleMobile\":\"bannerTitleMobile--onut8\",\"findYourWayContainer\":\"findYourWayContainer--VGmXr\",\"findYourWayMobileContainer\":\"findYourWayMobileContainer--lAwv2\",\"boldBanner\":\"boldBanner--EFjXl\",\"searchContainer\":\"searchContainer--lNYfH\",\"promotionHolder\":\"promotionHolder--wU6YJ\",\"animation-bzdot9\":\"animation-bzdot9--JYKI4\"};","import React, { useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport classes from './classes.module.scss';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport { onHeaderSearchClick, renderItemPropMeta } from '../../config/util';\nimport { SvgIcon } from '../../../common/sprites';\nimport { useCurrentPath } from '../routes/hooks/useCurrentPath';\nimport { useLocalizedNavigate } from '../routes/hooks/useLocalizedNavigate';\n\nfunction SearchBar({\n t, itemProp\n}) {\n const history = useLocalizedNavigate();\n const searchInputRef = useRef();\n const currentPath = useCurrentPath();\n const [searchInputValue, setSearchInputValue] = useState(\n queryString.parse(currentPath.search).query\n );\n const itemPropSearch = (itemProp || {}).search || {};\n const onSearch = () => {\n onHeaderSearchClick({\n searchInputRef, setSearchInputValue, history, currentPath\n });\n };\n\n const onSearchKeyDown = (e) => {\n if (e.key === 'Enter') onSearch();\n };\n\n const searchInputValueChange = (e) => {\n setSearchInputValue(e.target.value);\n };\n\n return (\n <div\n className={ classes.searchContainer }\n itemProp={ itemPropSearch.itemProp }\n itemScope={ itemPropSearch.itemScope }\n itemType={ itemPropSearch.itemType }\n >\n <div className={ classes.searchInput }>\n <div className={ classes.inputSearchIconContainer }>\n <SvgIcon className={ classes.inputSearchIcon } id=\"gray_search_icon\" size={ 21 } />\n </div>\n { renderItemPropMeta(itemPropSearch) }\n <input\n type=\"text\"\n ref={ searchInputRef }\n value={ searchInputValue || '' }\n className={ classes.searchField }\n onChange={ searchInputValueChange }\n onKeyDown={ onSearchKeyDown }\n placeholder={ t('search_placeholder') }\n itemProp={ (itemPropSearch.input || {}).itemProp }\n name={ (itemPropSearch.input || {}).name }\n required={ (itemPropSearch.input || {}).required }\n />\n </div>\n <button type=\"button\" onClick={ onSearch } className={ classes.searchButton }>\n <div className={ classes.searchButtonTitle }>\n {t('search_button_title')}\n </div>\n <SvgIcon className={ classes.searchButtonIcon } id=\"white_search_icon\" />\n </button>\n </div>\n );\n}\n\nSearchBar.propTypes = {\n t:PropTypes.func.isRequired,\n itemProp: PropTypes.object\n};\n\nSearchBar.defaultProps = {\n itemProp: null\n};\n\nexport default withPGTranslation(SearchBar);\n","const { isKA, isPS } = require('../../../../../common/config/utils');\n\nexport const heroBannerSources = () => {\n if (isKA()) {\n return {\n thumbMobile: 'https://k3cdn.kassrv.com/eyJrZXkiOiJoZXJvX3RodW1icy9zdGF0aWNfaGVyb19tb2JpbGVfa2EuanBnIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjo1MTIsImZpdCI6ImNvbnRhaW4ifX19',\n videoMobile: 'https://customer-b7ut0ov42z708uha.cloudflarestream.com/98dc928bae97440b2c073c99dd6beebd/manifest/video.m3u8',\n thumbDesktop: 'https://k3cdn.kassrv.com/eyJrZXkiOiJoZXJvX3RodW1icy9zdGF0aWNfaGVyb19kZXNrdG9wX2thLmpwZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6MTAyNCwiZml0IjoiY29udGFpbiJ9fX0=',\n videoDesktop: 'https://customer-b7ut0ov42z708uha.cloudflarestream.com/54218777a6c4a0829f611a6b973ddcfb/manifest/video.m3u8'\n };\n }\n if (isPS()) {\n return {\n thumbMobile: 'https://psi-production.s3.us-east-1.amazonaws.com/hero_thumbs/static_hero_mobile_psi.jpg',\n videoMobile: 'https://customer-6291eiomcwwadf7s.cloudflarestream.com/25310e92fecb634d30a782a4906bb58b/manifest/video.m3u8',\n thumbDesktop: 'https://psi-production.s3.us-east-1.amazonaws.com/hero_thumbs/static_hero_desktop_psi.jpg',\n videoDesktop: 'https://customer-6291eiomcwwadf7s.cloudflarestream.com/90b7a5395a5e0f2f3d45a8375444792d/manifest/video.m3u8'\n };\n }\n return {\n thumbMobile: 'https://purple.brgsrv.com/eyJrZXkiOiJoZXJvX3RodW1icy9zdGF0aWNfaGVyb19tb2JpbGVfcGcuanBnIiwiZWRpdHMiOnsicmVzaXplIjp7IndpZHRoIjo1MTIsImZpdCI6ImNvbnRhaW4ifX19',\n videoMobile: 'https://customer-6291eiomcwwadf7s.cloudflarestream.com/100e918e1903ca3501400e651ec5aeb0/manifest/video.m3u8',\n thumbDesktop: 'https://purple.brgsrv.com/eyJrZXkiOiJoZXJvX3RodW1icy9zdGF0aWNfaGVyb19kZXNrdG9wX3BnLmpwZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6MTAyNCwiZml0IjoiY29udGFpbiJ9fX0=',\n videoDesktop: 'https://customer-6291eiomcwwadf7s.cloudflarestream.com/a3fea829572877e5795559fbc01b0ff9/manifest/video.m3u8'\n };\n};\n","import React, { useEffect, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { Trans } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport SearchBar from '../../../header/search_bar';\nimport withPGTranslation from '../../../../config/withPGTranslation';\nimport VideoPlayer from '../../../video_player';\nimport { isMiddleMobile } from '../../../../config/util';\nimport { isKA } from '../../../../../common/config/utils';\nimport { heroBannerSources } from './hero_banner_sources';\n\nconst {\n thumbMobile, videoMobile, thumbDesktop, videoDesktop\n} = heroBannerSources();\n\nconst getHeroVideoUrl = () => {\n if (isMiddleMobile()) return videoMobile;\n return videoDesktop;\n};\n\nconst getHeroPosterUrl = () => {\n if (isMiddleMobile()) return thumbMobile;\n return thumbDesktop;\n};\n\nfunction HeroBanner({ itemProp }) {\n const [videoUrl, setVideoUrl] = useState();\n const [posterUrl, setPosterUrl] = useState();\n const videoRef = useRef();\n\n const handleResize = () => {\n setVideoUrl(getHeroVideoUrl());\n setPosterUrl(getHeroPosterUrl());\n };\n\n useEffect(() => {\n window.addEventListener('resize', handleResize, false);\n return () => {\n window.removeEventListener('resize', handleResize, false);\n };\n }, []);\n\n useEffect(() => {\n const video = videoRef.current;\n if (video) {\n const resizeObserver = new ResizeObserver(handleResize);\n resizeObserver.observe(video);\n return () => {\n resizeObserver.disconnect();\n };\n }\n return () => {};\n }, [videoRef.current]);\n\n const renderFindYourWay = () => {\n if (!isKA()) return null;\n return (\n <>\n <p className={ classes.findYourWayContainer }>\n <Trans\n i18nKey= \"find_your_way_to_love_and_happiness\"\n />\n </p>\n <p className={ classes.findYourWayMobileContainer }>\n <Trans\n i18nKey= \"find_your_way_to_love_and_happiness_mobile\"\n />\n </p>\n </>\n );\n };\n\n const renderHeroBanner = () => (\n <div className={ classes.bannerContainer }>\n <div className={ classes.bannerContent }>\n <div className={ classes.bannerTitleContainer }>\n <h1 className={ classes.bannerTitle }>\n <Trans\n i18nKey= \"hero_banner_title\"\n components={ {\n bold: <b className={ classes.boldBanner } />\n } }\n />\n </h1>\n <h1 className={ classes.bannerTitleMobile }>\n <Trans\n i18nKey= \"hero_banner_title_mobile\"\n components={ {\n bold: <b className={ classes.boldBanner } />\n } }\n />\n </h1>\n { renderFindYourWay() }\n </div>\n <div className={ classes.searchContainer }>\n <SearchBar itemProp={ itemProp } />\n </div>\n </div>\n <div className={ classes.bannerVideoContainer }>\n <VideoPlayer\n videoUrl={ videoUrl }\n videoRef={ videoRef }\n poster={ posterUrl }\n controls={ false }\n muted\n className={ classes.bannerVideoPlayer }\n loop\n />\n </div>\n </div>\n );\n\n return renderHeroBanner();\n}\n\nHeroBanner.propTypes = {\n t: PropTypes.func.isRequired,\n itemProp: PropTypes.object\n};\n\nHeroBanner.defaultProps = {\n itemProp: null\n};\nexport default withPGTranslation(HeroBanner);\n","import { connect } from 'react-redux';\nimport HeroBanner from './hero_banner';\n\nconst mapStateProps = () => ({});\n\nexport default connect(\n mapStateProps\n)(HeroBanner);\n","// extracted by mini-css-extract-plugin\nexport default {\"contentContainer\":\"contentContainer--teHG9\",\"sectionsMainContainer\":\"sectionsMainContainer--LjihG\",\"specialitiesContainer\":\"specialitiesContainer--liBq4\",\"speciality\":\"speciality--EsgvG\",\"specialityName\":\"specialityName--Xcrjl\",\"specialityPG\":\"specialityPG--stJyH\",\"specialityKA\":\"specialityKA--A5mTi\",\"appBannersContainer\":\"appBannersContainer--O0Uqg\",\"appBanner\":\"appBanner--RryUU\",\"poBannerGradient\":\"poBannerGradient--fJS_z\",\"ptBannerGradient\":\"ptBannerGradient--_84hz\",\"appBannerTitle\":\"appBannerTitle--Onz2U\",\"openAppLink\":\"openAppLink--kMqh7\",\"promotionFooter\":\"promotionFooter--qU0Zj\",\"allAdvisorsButtonContainer\":\"allAdvisorsButtonContainer--xkSBN\",\"allAdvisorsButton\":\"allAdvisorsButton--QKJoc\",\"allAdvisorsButtonText\":\"allAdvisorsButtonText--qTTqx\",\"promotionHolder\":\"promotionHolder--bN31G\",\"animation-bzdot9\":\"animation-bzdot9--_KFn_\"};","import React from 'react';\nimport { Speciality } from '@barges/react';\nimport '@barges/scss/lib/speciality.css';\nimport '@barges/scss/lib/title.css';\nimport { SectionProps, SectionDefaultProps } from '../prop_types';\nimport classes from '../classes.module.scss';\nimport AppLink from '../../routes/app_link';\nimport { specialitiesClickSource } from '../../../config/const';\nimport { isKA, isPG } from '../../../../common/config/utils';\n\nconst specialityClass = isKA() ? classes.specialityKA : classes.specialityPG;\n\nfunction SpecialitiesSection({ content }) {\n const renderSpeciality = (speciality, index) => {\n const {\n iconUrl, name, slug, params, iconName\n } = speciality;\n return (\n <AppLink\n to={ {\n pathname: slug,\n state: {\n needRefresh: true,\n trackCategoryEvent: true,\n clickSource: specialitiesClickSource.homePage,\n params\n }\n } }\n key={ index }\n className={ `${ classes.speciality } ${ specialityClass }` }\n >\n <Speciality\n type=\"button\"\n speciality={ { iconName: isPG() ? iconName : null, name, iconUrl } }\n />\n </AppLink>\n );\n };\n\n const renderContent = () => {\n if (!(content || {}).specialities) return null;\n return (\n <div className={ classes.specialitiesContainer }>\n { content.specialities.map((speciality, index) => renderSpeciality(speciality, index)) }\n </div>\n );\n };\n\n return renderContent();\n}\n\nSpecialitiesSection.propTypes = {\n ...SectionProps\n};\nSpecialitiesSection.defaultProps = {\n ...SectionDefaultProps\n};\n\nexport default SpecialitiesSection;\n","// extracted by mini-css-extract-plugin\nexport default {\"mainContentContainer\":\"mainContentContainer--NPzhz\",\"sectionHeader\":\"sectionHeader--oVkNJ\",\"sectionHeaderSeparator\":\"sectionHeaderSeparator--tb45Q\",\"sectionIcon\":\"sectionIcon--IJBb3\",\"advisorContainer\":\"advisorContainer--qq50h\",\"avatarHolder\":\"avatarHolder--LY1GE\",\"avatarContainer\":\"avatarContainer--zkqGz\",\"advisorInfoContainer\":\"advisorInfoContainer--A5he0\",\"advisorInfoHeader\":\"advisorInfoHeader--nysOR\",\"advisorTitle\":\"advisorTitle--dAn1W\",\"advisorSubtitle\":\"advisorSubtitle--zZyaf\",\"rating\":\"rating--iJRqT\",\"footer\":\"footer--Y04T6\",\"v2\":\"v2--xKaku\",\"staffPickDescription\":\"staffPickDescription--_kPTt\",\"advisorViewLink\":\"advisorViewLink--Q_jaC\",\"serviceTitleContainer\":\"serviceTitleContainer--rfWIC\",\"previewAdvisorCTAContainer\":\"previewAdvisorCTAContainer--aJKGo\",\"animation-bzdot9\":\"animation-bzdot9--LgIjg\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport AppLink from '../../../routes/app_link';\nimport { SectionProps, SectionDefaultProps } from '../../prop_types';\nimport Rating from '../../../advisor_avatar/rating/rating';\nimport classes from './classes.module.scss';\nimport AdvisorAvatar, { advisorThemes } from '../../../advisor_avatar';\nimport AdvisorModes from '../advisor_modes';\nimport ReadingSinceAndCountItem, { readingSinceAndCountItemThemes } from '../../../advisor/nested_views/readingSinceAndCountItem';\nimport ExpandedText from '../../../../../common/helpers/expanded_text';\nimport { AdvisorModesThemes } from '../../../../config/const';\nimport PriceText from '../price_text';\nimport { isKA } from '../../../../../common/config/utils';\n\nconst handleLinkClickAction = ({\n e, loading, sectionSlug, updateNavigationStack\n}) => {\n if (loading) {\n e.preventDefault();\n return;\n }\n if (sectionSlug) { updateNavigationStack({ dataKey: sectionSlug }); }\n};\n\nconst getObjectValue = (object) => object || {};\n\nconst renderLeftSideFooter = (liveModeMinPrice, liveModeMinPromoPrices, liveModes, theme, text) => (isKA()\n ? (\n <PriceText\n liveModeMinPrice={ liveModeMinPrice }\n liveModeMinPromoPrices={ liveModeMinPromoPrices }\n text={ text }\n theme={ theme }\n liveModes={ liveModes }\n />\n )\n : (\n <AdvisorModes\n liveModeMinPrice={ liveModeMinPrice }\n liveModes={ liveModes }\n liveModeMinPromoPrices={ liveModeMinPromoPrices }\n text={ text }\n theme={ theme }\n />\n )\n);\n\nfunction StaffPickSection({\n iconUrl, title, analytics, content, t, onAnalyticsClick, loading, sectionSlug, updateNavigationStack\n}) {\n const { advisor } = getObjectValue(content);\n const {\n liveModeMinPrice, nickname, serviceTitle, rating, staffPickText, readingsCount, yearJoined,\n liveModes, liveModeMinPromoPrices, slug, isNewAdvisor\n } = getObjectValue(advisor);\n\n const advisorHeader = () => (\n <div className={ classes.advisorInfoHeader }>\n <div className={ classes.advisorTitle }>\n {nickname}\n <div className={ classes.advisorSubtitle }>\n {serviceTitle}\n </div>\n </div>\n <Rating rating={ rating } isNewAdvisor={ isNewAdvisor } />\n </div>\n );\n\n const onDescriptionExpand = (e) => {\n e.preventDefault();\n };\n\n const staffPickDescription = () => (\n <div className={ classes.staffPickDescription }>\n <ReadingSinceAndCountItem\n readingsCount={ readingsCount }\n yearJoined={ yearJoined }\n theme={ readingSinceAndCountItemThemes.staffPickMobile }\n />\n <ExpandedText\n className={ classes.serviceTitleContainer }\n ellipsis\n limit={ 4 }\n readMoreKind=\"limitTextByRows\"\n readMoreClick={ onDescriptionExpand }\n t={ t }\n >\n {staffPickText}\n </ExpandedText>\n </div>\n );\n\n const handleLinkClick = (e) => {\n if (onAnalyticsClick) { onAnalyticsClick(); }\n handleLinkClickAction({\n e, loading, sectionSlug, updateNavigationStack\n });\n };\n\n const footer = () => (\n <div\n className={ `${ classes.footer } ${ isKA() ? classes.v2 : '' }` }\n >\n {renderLeftSideFooter(liveModeMinPrice, liveModeMinPromoPrices, liveModes, AdvisorModesThemes.staffPick, t('home_page.from'))}\n <ReadingSinceAndCountItem\n readingsCount={ readingsCount }\n yearJoined={ yearJoined }\n theme={ readingSinceAndCountItemThemes.staffPick }\n />\n {isKA() && (\n <AdvisorModes\n liveModes={ liveModes }\n theme={ AdvisorModesThemes.staffPick }\n showPrice={ false }\n />\n )}\n </div>\n );\n\n const header = () => (\n <div className={ classes.sectionHeader }>\n <img src={ iconUrl } alt=\"\" className={ classes.sectionIcon } />\n <div className={ classes.sectionHeaderSeparator } />\n <div className={ classes.headerTitle }>{title || 'In the spotlight'}</div>\n </div>\n );\n\n const renderContent = () => {\n if (!advisor) return null;\n return (\n <div className={ classes.mainContentContainer }>\n {header()}\n <AppLink onClick={ handleLinkClick } to={ { pathname: slug, state: { ...analytics } } } className={ classes.advisorViewLink }>\n <div className={ classes.advisorContainer }>\n <div className={ classes.avatarHolder }>\n <AdvisorAvatar { ...advisor } theme={ advisorThemes.staff_pick } analytics={ analytics } />\n </div>\n <div className={ classes.advisorInfoContainer }>\n {advisorHeader()}\n {staffPickDescription()}\n {footer()}\n </div>\n </div>\n </AppLink>\n </div>\n );\n };\n\n return renderContent();\n}\n\nStaffPickSection.propTypes = {\n ...SectionProps,\n t: PropTypes.func.isRequired,\n displayNotifyMe: PropTypes.func.isRequired,\n showGeneralPopup: PropTypes.func.isRequired,\n authPendingAction: PropTypes.func.isRequired,\n displayRegister: PropTypes.func.isRequired,\n onAnalyticsClick: PropTypes.func,\n sectionSlug: PropTypes.string,\n updateNavigationStack: PropTypes.func.isRequired,\n loading: PropTypes.bool\n};\n\nStaffPickSection.defaultProps = {\n ...SectionDefaultProps,\n onAnalyticsClick: null,\n loading: null,\n sectionSlug: null\n};\n\nexport default StaffPickSection;\n","import { connect } from 'react-redux';\nimport StaffPickSection from './staff_pick_section';\nimport withPGTranslation from '../../../../config/withPGTranslation';\nimport { showGeneralPopup } from '../../../../actions/general_popup';\nimport { authPendingAction, displayRegister } from '../../../../actions/auth';\nimport { displayNotifyMe } from '../../../../actions/notify_me';\nimport { updateNavigationStack } from '../../../../actions/application';\n\nconst mapStateToProps = (state, props) => {\n const advisorID = props.content?.advisor?.id;\n if (!props?.content?.advisor === undefined) return { ...props };\n return (\n {\n ...state.advisors[advisorID],\n ...props\n }\n );\n};\n\nexport default connect(\n mapStateToProps,\n {\n displayNotifyMe,\n showGeneralPopup,\n authPendingAction,\n displayRegister,\n updateNavigationStack\n }\n)(withPGTranslation(StaffPickSection));\n","// extracted by mini-css-extract-plugin\nexport default {\"personalSectionsContainer\":\"personalSectionsContainer--PgBsK\",\"personalSectionsMenuItemsContainer\":\"personalSectionsMenuItemsContainer--P6i5m\",\"personalSectionsMenuItemContainer\":\"personalSectionsMenuItemContainer--WvTVM\",\"personalSectionsMenuItemSelected\":\"personalSectionsMenuItemSelected--PrqDw\",\"personalSectionsMenuItem\":\"personalSectionsMenuItem--SUwpa\",\"personalSectionsAdvosorsContainer\":\"personalSectionsAdvosorsContainer--E4AcN\",\"personalSectionsMenuContainer\":\"personalSectionsMenuContainer--Ouehw\",\"divider\":\"divider--bQ063\",\"smallDivider\":\"smallDivider--eTxjN\",\"animation-bzdot9\":\"animation-bzdot9--FiiX7\"};","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport AdvisorSection from '../advisors_section';\nimport { advisorsSectionThemes } from '../../prop_types';\nimport classes from './classes.module.scss';\n\nfunction PersonalSection({\n personalSections\n}) {\n const [selectedSection, setSelectedSection] = useState(\n (personalSections[Object.keys(personalSections)[0]] || {}).id\n );\n useEffect(() => {\n if (!!personalSections && (!selectedSection || selectedSection === undefined)) {\n setSelectedSection(\n (personalSections[Object.keys(personalSections)[0]] || {}).id\n );\n }\n }, [personalSections]);\n\n const personalSectionsMenuItemClick = (e) => {\n setSelectedSection(e.target.id);\n };\n\n const renderPersonalSection = () => (\n <div className={ classes.personalSectionsContainer }>\n <div className={ classes.personalSectionsMenuContainer }>\n <div className={ classes.personalSectionsMenuItemsContainer }>\n { Object.keys(personalSections).map((key) => (\n <div\n key={ personalSections[key].id }\n className={ classes.personalSectionsMenuItemContainer }\n >\n <button\n id={ personalSections[key].id }\n type=\"button\"\n className={\n selectedSection === personalSections[key].id\n ? classes.personalSectionsMenuItemSelected\n : classes.personalSectionsMenuItem\n }\n onClick={ personalSectionsMenuItemClick }\n >\n { personalSections[key].title }\n </button>\n <div className={ classes.smallDivider } />\n </div>\n )) }\n </div>\n <div className={ classes.divider } />\n </div>\n <div className={ classes.personalSectionsAdvosorsContainer }>\n <AdvisorSection\n { ...personalSections[selectedSection] }\n theme={ advisorsSectionThemes.personal }\n personalSection\n />\n </div>\n </div>\n );\n\n return (\n <>\n { renderPersonalSection() }\n </>\n );\n}\n\nPersonalSection.propTypes = {\n personalSections: PropTypes.object,\n t: PropTypes.func.isRequired\n};\n\nPersonalSection.defaultProps = {\n personalSections: {}\n};\n\nexport default PersonalSection;\n","import { connect } from 'react-redux';\nimport { withLastLocation } from 'react-router-dom-last-location';\nimport PersonalSection from './personal_section';\nimport withPGTranslation from '../../../../config/withPGTranslation';\n\nconst parseSections = (sections, adviosrsState) => {\n const updatedSections = sections;\n Object.keys(sections).forEach((s) => {\n if (sections[s]?.content?.advisors === undefined) {\n updatedSections[s] = { ...sections[s] };\n return;\n }\n updatedSections[s] = {\n ...sections[s],\n content: {\n advisors: updatedSections[s]?.content?.advisors?.map((adv) => (adviosrsState[adv.id] || adv))\n }\n };\n });\n return updatedSections;\n};\n\nconst mapStateToProps = ({ homePage: { personalSections }, advisors }) => (\n {\n personalSections: parseSections(personalSections, advisors),\n advisors\n }\n);\nexport default connect(\n mapStateToProps,\n {\n }\n)(withLastLocation(withPGTranslation(PersonalSection)));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Title } from '@barges/react';\nimport classes from '../../classes.module.scss';\nimport AppLink from '../../../routes/app_link';\nimport { appRoutes } from '../../../../config/app_routes';\nimport withPGTranslation from '../../../../config/withPGTranslation';\n\nimport '@barges/scss/lib/title.css';\nimport '@barges/scss/lib/button.css';\n\nfunction ButtonSection({\n title, t, params\n}) {\n return (\n <div className={ classes.allAdvisorsButtonContainer }>\n <div className={ classes.allAdvisorsButtonText }>\n <Title fontStyle=\"heading-h5\" bold>{ t('home_page.all_advisors_button_text_1') }</Title>\n <Title fontStyle=\"heading-h5\">{ t('home_page.all_advisors_button_text_2') }</Title>\n </div>\n <AppLink\n to={ {\n pathname: appRoutes.psychics,\n state: {\n needRefresh: true,\n params\n }\n } }\n className={ classes.allAdvisorsButton }\n >\n <Button type=\"primary\" title={ title } />\n </AppLink>\n </div>\n );\n}\n\nButtonSection.propTypes = {\n id: PropTypes.string,\n title: PropTypes.string,\n t: PropTypes.func.isRequired,\n params: PropTypes.object.isRequired\n};\n\nButtonSection.defaultProps = {\n id: null,\n title: ''\n};\n\nexport default withPGTranslation(ButtonSection);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport AdvisorsList, { advisorsListThemes } from '../../../advisors_list';\nimport {\n SectionProps, SectionDefaultProps, advisorsSectionThemes, sectionIds\n} from '../../prop_types';\nimport AdvisorSectionTitle from '../advisors_section/advisor_section_title';\nimport { isKA } from '../../../../../common/config/utils';\n\nfunction AllAdvisorsSection({\n title, loading, iconUrl, showMore, slug, content, analytics, params, loadHomePage, allAdvisorsListSection\n}) {\n const renderTitle = () => (\n <AdvisorSectionTitle\n title={ title }\n loading={ loading }\n iconUrl={ iconUrl }\n showMore={ showMore }\n slug={ slug }\n theme={ advisorsSectionThemes.all_advisors_section }\n params={ params }\n />\n );\n\n const loadAdvisorsForHomePageAllAdvisors = (param) => {\n loadHomePage(false, { section_ids: [sectionIds.allAdvisorsList].join(), ...param });\n };\n\n const renderAdvisorsList = () => {\n if (isKA()) {\n return (\n <AdvisorsList\n advisors={ content.advisors }\n theme={ advisorsListThemes.homePageAllAdvisors }\n loading={ loading }\n analytics={ analytics }\n slug={ slug }\n params={ params }\n loadAdvisors={ loadAdvisorsForHomePageAllAdvisors }\n page={ allAdvisorsListSection.page }\n lastPageNum={ allAdvisorsListSection.lastPageNum || 2 }\n />\n );\n }\n return (\n <AdvisorsList\n advisors={ content.advisors }\n theme={ advisorsListThemes.homePageAllAdvisors }\n loading={ loading }\n analytics={ analytics }\n slug={ slug }\n params={ params }\n />\n );\n };\n\n const renderContent = () => {\n if (!(content || {}).advisors) return null;\n return (\n <div style={ { width: '100%' } } suppressHydrationWarning>\n { renderTitle() }\n {renderAdvisorsList() }\n </div>\n );\n };\n\n return renderContent();\n}\n\nAllAdvisorsSection.propTypes = {\n ...SectionProps,\n loadHomePage: PropTypes.func.isRequired,\n allAdvisorsListSection: PropTypes.object\n};\n\nAllAdvisorsSection.defaultProps = {\n SectionDefaultProps,\n allAdvisorsListSection: {}\n};\n\nexport default AllAdvisorsSection;\n","import { connect } from 'react-redux';\nimport AllAdvisorsSection from './all_advisors_section';\nimport { loadHomePage } from '../../../../actions/home_page';\nimport { sectionIds } from '../../prop_types';\n\nexport const AdvisorPreviewThemes = {\n staff_pick: 'staff_pick',\n personal: 'personal',\n badge: 'badge',\n badge_end_to_end: 'badge_end_to_end',\n searchResult: 'searchResult',\n someOtherAdvisor: 'someOtherAdvisor'\n};\n\nconst mapStateToProps = ({ homePage: { sections } }) => ({\n allAdvisorsListSection: sections.find((s) => s.id === sectionIds.allAdvisorsList)\n});\n\nexport default connect(\n mapStateToProps,\n {\n loadHomePage\n }\n)(AllAdvisorsSection);\n","import React, { useEffect, useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport { Helmet } from 'react-helmet';\nimport { useNavigate, useLocation } from 'react-router-dom';\nimport AppLayout from '../shared/content';\nimport {\n SectionProps, SectionDefaultProps,\n advisorsSectionThemes, sectionIds, sectionTypes\n} from './prop_types';\nimport AdvisorSection from './nested_views/advisors_section';\nimport HeroBanner from './nested_views/hero_banner';\nimport classes from './classes.module.scss';\nimport SpecialitiesSection from './nested_views/specialities_section';\nimport StaffPickSection from './nested_views/staff_pick_section';\nimport PersonalSection from './nested_views/personal_section';\nimport AffiliatePromoPopup from '../affiliate_promo_popup';\nimport {\n advisorsEmptyList, renderCanonicalLink, isMobile\n} from '../../config/util';\nimport ButtonSection from './nested_views/button_section/button_section';\nimport AllAdvisorsSection from './nested_views/all_advisors_section';\nimport { itemProp } from '../../actions/home_page';\nimport { trackPageVisit } from '../../actions/analytics';\nimport { promotionLabelTypeScreens } from '../../config/const';\nimport PromotionLabel from './nested_views/promotion_label';\n\nconst getAdvisorSectionTheme = (sectionType, sectionSubtype) => {\n if (advisorsSectionThemes[sectionType] === null) {\n return advisorsSectionThemes.bage;\n }\n if (advisorsSectionThemes[`${ sectionType }_${ sectionSubtype }`]) {\n return advisorsSectionThemes[`${ sectionType }_${ sectionSubtype }`];\n }\n return advisorsSectionThemes[sectionType];\n};\n\nconst getIdentifySection = (section, showPersonalSectionBrowser) => {\n const identifySections = {\n [sectionIds.staffPick]: <StaffPickSection key={ section.id } { ...section } />,\n [sectionIds.specialities]: <SpecialitiesSection key={ section.id } { ...section } />,\n [sectionTypes.personal]: <PersonalSection key={ section.id } />,\n [sectionIds.all_advisors]: <ButtonSection key={ section.id } { ...section } />,\n [sectionIds.allAdvisorsList]: <AllAdvisorsSection key={ section.id } { ...section } />\n };\n\n if (section.type === sectionTypes.personal && showPersonalSectionBrowser) {\n return identifySections[section.type];\n }\n return identifySections[section.id];\n};\n\nfunction HomePage({\n loadHomePage, sections, t, loading\n}) {\n const history = useNavigate();\n const location = useLocation();\n\n useEffect(() => {\n loadHomePage(false);\n trackPageVisit('homepage');\n }, []);\n\n useEffect(() => {\n const needReloadHomePage = location.state?.needReloadHomePage;\n if (needReloadHomePage) {\n loadHomePage(needReloadHomePage);\n history(`${ location.pathname }${ location.search }`, {\n state: { ...location.state, needReloadHomePage: false },\n replace: true\n });\n }\n }, [location.state]);\n\n const renderSectionLoading = () => {\n const emptySectionArray = [\n { content: { advisors: advisorsEmptyList(2) } },\n { content: { advisors: advisorsEmptyList(2) } }\n ];\n return (\n emptySectionArray.map((emptySection, index) => (\n <AdvisorSection\n { ...emptySection }\n key={ `emptySection_${ index }` }\n theme={ advisorsSectionThemes.badge }\n personalSection={ false }\n loading={ loading }\n />\n ))\n );\n };\n\n const renderSections = useCallback(() => {\n if (loading) return renderSectionLoading();\n let showPersonalSectionBrowser = !isMobile();\n return sections.map((section, index) => {\n const identifySection = getIdentifySection(section, showPersonalSectionBrowser);\n if (identifySection) {\n if (section.type === sectionTypes.personal\n && showPersonalSectionBrowser) { showPersonalSectionBrowser = false; }\n return identifySection;\n }\n return (\n <div key={ `${ section.id }_${ index }` } className={ classes.sectionsMainContainer }>\n <AdvisorSection\n { ...section }\n isRequired={ null }\n key={ `AdvisorSection_${ section.id }_${ index }` }\n theme={ getAdvisorSectionTheme(section.type, section.subtype) }\n personalSection={ false }\n loading={ loading }\n />\n </div>\n );\n });\n }, [sections]);\n\n return (\n <AppLayout\n noNeedMarginTop\n needsHeaderTransparentTransition\n footerMobileBottomHeight={ 30 }\n itemProp={ itemProp }\n >\n <AffiliatePromoPopup />\n <Helmet>\n <title>{ t('app_meta_tag.psychics_page_title') }</title>\n <meta property=\"og:title\" content={ t('app_meta_tag.psychics_page_title') } />\n </Helmet>\n { renderCanonicalLink() }\n <HeroBanner\n itemProp={ itemProp }\n />\n <div\n className={ classes.contentContainer }\n >\n <PromotionLabel className={ classes.promotionHolder } promotionLabelTypeScreen={ promotionLabelTypeScreens.homePage } />\n {renderSections()}\n </div>\n </AppLayout>\n );\n}\n\nHomePage.propTypes = {\n loadHomePage: PropTypes.func.isRequired,\n filters: PropTypes.shape(SectionProps),\n sections: PropTypes.arrayOf(PropTypes.shape(SectionProps)),\n t: PropTypes.func.isRequired,\n loading: PropTypes.bool.isRequired,\n userFirstActivePromotion: PropTypes.object\n};\n\nHomePage.defaultProps = {\n filters: SectionDefaultProps,\n sections: [],\n userFirstActivePromotion: null\n};\nexport default HomePage;\n","import { connect } from 'react-redux';\nimport HomePage from './home_page';\nimport { loadHomePage } from '../../actions/home_page';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport { parseAdvisorsFromAdvisorsState, getHomePageDataIfSsrMode } from '../../config/util';\n\nconst updateSectionsContent = (sections) => {\n const newSections = sections?.map((s) => {\n if (s?.content?.advisors === undefined) return s;\n return ({\n ...s,\n content: {\n ...s.content,\n advisors: parseAdvisorsFromAdvisorsState(s?.content?.advisors)\n }\n });\n });\n return newSections;\n};\n\nconst mapStateToProps = ({\n homePage\n}) => ({\n ...homePage,\n sections: updateSectionsContent(homePage.sections),\n loading: homePage?.loading && !getHomePageDataIfSsrMode()\n});\n\nexport default connect(\n mapStateToProps,\n {\n loadHomePage\n }\n)(withPGTranslation(HomePage));\n","// extracted by mini-css-extract-plugin\nexport default {\"mainContentContainer\":\"mainContentContainer--aqT0X\",\"sectionHeader\":\"sectionHeader--hAnrV\",\"sectionHeaderSeparator\":\"sectionHeaderSeparator--A4eFI\",\"sectionIcon\":\"sectionIcon--USS6N\",\"advisorContainer\":\"advisorContainer--z78jh\",\"avatarHolder\":\"avatarHolder--dhQgh\",\"avatarContainer\":\"avatarContainer--L6Pgf\",\"advisorInfoContainer\":\"advisorInfoContainer--XYQGl\",\"advisorInfoHeader\":\"advisorInfoHeader--g9rBf\",\"advisorTitle\":\"advisorTitle--rOQkx\",\"advisorSubtitle\":\"advisorSubtitle--gsLpd\",\"rating\":\"rating--szLMx\",\"footer\":\"footer--Yakz8\",\"v2\":\"v2--gClno\",\"staffPickDescription\":\"staffPickDescription--jyCuL\",\"advisorViewLink\":\"advisorViewLink--g5sKr\",\"serviceTitleContainer\":\"serviceTitleContainer--E3zkZ\",\"previewAdvisorCTAContainer\":\"previewAdvisorCTAContainer--oURI3\",\"preview\":\"preview--mFRQe\",\"mainContainer\":\"mainContainer--LXHFJ\",\"reverse\":\"reverse--hUBI8\",\"iconsContainer\":\"iconsContainer--powCY\",\"modesHolder\":\"modesHolder--EuyJ2\",\"modesHolderSkeleton\":\"modesHolderSkeleton--535eF\",\"animation-bzdot9\":\"animation-bzdot9--Tz6SF\",\"modeIconContainer\":\"modeIconContainer--oaK2a\",\"withBg\":\"withBg--NShk8\",\"modeIcon\":\"modeIcon--KpgND\",\"big\":\"big--Qyos7\",\"staffPick\":\"staffPick--mxw2b\",\"recommendedCarousel\":\"recommendedCarousel--uw2Rt\",\"recommendedAdvisor\":\"recommendedAdvisor--dJ2uy\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport { HomePageAdvisorLiveModes } from '../../prop_types';\nimport PriceText from '../price_text';\nimport { isPrerenderMode } from '../../../../config/util';\nimport { AdvisorModesThemes } from '../../../../config/const';\nimport { isKA, isPS } from '../../../../../common/config/utils';\nimport { SvgIcon } from '../../../../../common/sprites';\n\nconst modeStateToIconId = {\n online: 'online',\n busy: 'online',\n offline: 'offline'\n};\n\nfunction AdvisorModes({\n liveModeMinPrice, liveModes, theme, liveModeMinPromoPrices, text, loading, showPrice\n}) {\n const renderMode = (liveMode) => {\n const { modeState, mode } = liveMode;\n if (modeState === 'disabled') return null;\n\n const classContainer = theme === AdvisorModesThemes.recommendedAdvisor && isPS() ? classes[theme] : classes.modeIconContainer;\n return (\n <div className={ `${ classContainer } ${ isPS() ? classes.withBg : '' }` } key={ mode }>\n <SvgIcon id={ `mode_${ mode }_${ modeStateToIconId[modeState] || 'offline' }` } className={ `${ classes.modeIcon } ${ isKA() ? classes.big : '' }` } />\n </div>\n );\n };\n\n const renderModes = () => {\n if (isPrerenderMode() || loading || liveModes.length === 0) return <div className={ classes.modesHolderSkeleton } />;\n return liveModes.map((mode) => renderMode(mode));\n };\n\n return (\n <div className={ `${ classes[theme] || classes[AdvisorModesThemes.preview] } ${ isKA() ? classes.v2 : '' }` }>\n <div className={ `${ classes.mainContainer } ${ isKA() ? classes.reverse : '' }` }>\n <div className={ classes.modesHolder }>\n { renderModes() }\n </div>\n { showPrice && <PriceText liveModeMinPrice={ liveModeMinPrice } liveModeMinPromoPrices={ liveModeMinPromoPrices } text={ text } liveModes={ liveModes } /> }\n </div>\n </div>\n );\n}\n\nAdvisorModes.propTypes = {\n liveModeMinPrice: PropTypes.string,\n liveModeMinPromoPrices: PropTypes.object,\n liveModes: PropTypes.arrayOf(PropTypes.shape(HomePageAdvisorLiveModes)),\n theme: PropTypes.string,\n text: PropTypes.string,\n loading: PropTypes.bool,\n showPrice: PropTypes.bool\n};\n\nAdvisorModes.defaultProps = {\n liveModeMinPrice: null,\n liveModes: [],\n liveModeMinPromoPrices: {},\n theme: AdvisorModesThemes.preview,\n text: null,\n loading: false,\n showPrice: true\n};\n\nexport default AdvisorModes;\n","import { connect } from 'react-redux';\nimport AdvisorModes from './advisor_modes';\n\nconst mapStateToProps = () => (\n {}\n);\n\nexport default connect(\n mapStateToProps,\n {}\n)((AdvisorModes));\n","import { useState, useEffect } from 'react';\n\nexport const useIntersection = (element, rootMargin) => {\n const [isVisible, setState] = useState(false);\n\n useEffect(() => {\n if (!window.IntersectionObserver) { return () => {}; }\n\n const observer = new IntersectionObserver(([entry]) => {\n setState(entry.isIntersecting);\n }, { rootMargin });\n\n if (element.current) { observer.observe(element.current); }\n\n return () => observer.disconnect(element.current);\n }, [element.current, rootMargin]);\n\n return isVisible;\n};\n","/* eslint-disable func-names */\n/* eslint-disable react/prop-types */\nimport React, { useEffect, useRef, useState } from 'react';\nimport { useIntersection } from './use_intersection';\nimport { cleanupAdvisorFieldsForAnalytics } from '../../../../config/util';\n\nexport const withAnalytics = (WrappedComponent) => function ({\n advisor,\n theme,\n sectionSlug,\n analytics,\n trackBEvent,\n ...rest\n}) {\n const ref = useRef(null);\n const [renderedAt] = useState((new Date()).getTime());\n const [visibleSince, setVisibleSince] = useState(null);\n\n const onAnalyticsClick = () => {\n if (advisor && advisor.id) {\n const opts = {\n ...cleanupAdvisorFieldsForAnalytics(advisor),\n ...analytics,\n theme,\n sectionSlug,\n pathname: window.location.pathname,\n timeSinceFirstRender: (new Date()).getTime() - renderedAt\n };\n if (visibleSince) {\n opts.timeVisible = (new Date()).getTime() - visibleSince;\n }\n trackBEvent('advisor box - click', opts);\n }\n };\n\n const isVisible = useIntersection(ref, '-10px');\n\n useEffect(() => {\n if (advisor && advisor.id) {\n let sendEvent = false;\n const wasVisibleSince = visibleSince;\n if (isVisible && !visibleSince) {\n setVisibleSince((new Date()).getTime());\n sendEvent = true;\n } else if (!isVisible && visibleSince) {\n setVisibleSince(null);\n sendEvent = true;\n }\n const action = isVisible ? 'appears' : 'hides';\n if (!sendEvent) { return; }\n const opts = {\n ...cleanupAdvisorFieldsForAnalytics(advisor),\n ...analytics,\n theme,\n sectionSlug,\n pathname: window.location.pathname,\n timeSinceFirstRender: (new Date()).getTime() - renderedAt\n };\n if (action === 'hides' && wasVisibleSince) {\n opts.timeVisible = (new Date()).getTime() - wasVisibleSince;\n }\n trackBEvent(`advisor box - ${ action }`, opts);\n }\n }, [isVisible]);\n\n const props = {\n advisor,\n theme,\n sectionSlug,\n analytics,\n onAnalyticsClick,\n ...rest\n };\n\n return (\n <WrappedComponent { ...props } innerRef={ ref } />\n );\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useLocation } from 'react-router-dom';\nimport classNames from 'classnames';\nimport Skeleton from 'react-loading-skeleton';\nimport AdvisorAvatar, { advisorThemes } from '../../../advisor_avatar';\nimport { SectionDefaultProps } from '../../prop_types';\nimport AdvisorModes from '../advisor_modes';\nimport PriceText from '../price_text';\nimport classes from './classes.module.scss';\nimport AppLink from '../../../routes/app_link';\nimport {\n isMobile, isXfmProgram, subscribedToAdvisor\n} from '../../../../config/util';\nimport ReadingSinceAndCountItem, { readingSinceAndCountItemThemes } from '../../../advisor/nested_views/readingSinceAndCountItem';\nimport ExpandedText from '../../../../../common/helpers/expanded_text';\nimport { withAnalytics } from './advisor_preview_with_analytics';\nimport { isKA, isWebView } from '../../../../../common/config/utils';\nimport { SvgIcon } from '../../../../../common/sprites';\nimport { handleNotifyClick } from '../../../advisor_profile_avatar/top_icons/top_icons_utils';\nimport { renderFreeMinutesLabel, skeletonOrItem } from '../nested_views_utils';\n\nconst maxServiceDescriptionChars = 100;\n\nconst getadvisorSlug = (advisorSlug) => {\n if (advisorSlug !== undefined) return advisorSlug;\n return '';\n};\n\nconst renderAdvisorModes = (loading, advisor, text, theme) => <AdvisorModes { ...advisor } loading={ loading } text={ text } theme={ theme } />;\n\nconst renderPriceText = (loading, advisor) => {\n if (loading) return <Skeleton width={ 70 } />;\n return <PriceText { ...advisor } />;\n};\n\nconst getKey = (advisor) => (advisor || {}).id;\n\nconst getServiceDescriptionRowsCount = () => {\n if (isMobile()) return 3;\n return 4;\n};\n\nconst handleLinkClickAction = ({\n e, loading, sectionSlug, updateNavigationStack\n}) => {\n if (loading) {\n e.preventDefault();\n return;\n }\n if (sectionSlug) { updateNavigationStack({ dataKey: sectionSlug }); }\n};\n\nconst getNotifyIconId = () => (isWebView() ? 'notify_icon_disabled' : 'notify_icon');\n\nconst renderNotifyMeButton = (onNotifyClick, availabilityNotification) => (\n <button disabled={ isWebView() } style={ isWebView() ? { backgroundColor: '#EAEAEA', color: '#A1A1A1' } : {} } type=\"button\" onClick={ onNotifyClick } className={ classes.notifyMeButton }>\n <SvgIcon id={ subscribedToAdvisor(availabilityNotification) ? 'notify_set_icon' : getNotifyIconId() } size={ [16, 18] } />\n {subscribedToAdvisor(availabilityNotification) ? 'Notification set' : 'Notify me'}\n </button>\n);\nconst getStartCallMode = (liveModes) => {\n if (!liveModes || !liveModes.find(m => m.modeState === 'online')) return null;\n if (liveModes.find(m => m.mode === 'chat').modeState === 'online') return liveModes.find(m => m.mode === 'chat');\n return liveModes.find(m => m.mode === 'voice');\n};\n\nexport const renderStartCallButton = (advisor, displayNotifyMe, showGeneralPopup, authPendingAction, displayRegister, location, analytics, handleLinkClick, t) => {\n if (!isKA()) return null;\n const {\n id, liveModes, availabilityNotification, slug\n } = advisor;\n const onNotifyClick = (e) => handleNotifyClick(e, displayNotifyMe, id, showGeneralPopup, authPendingAction, displayRegister, location, false);\n const mode = getStartCallMode(liveModes);\n return mode ? (\n // start call from advisor preview //\n // <AdvisorCta\n // { ...advisor }\n // { ...mode }\n // loading={ loading }\n // advisorId={ id }\n // advisorCallProps={ {\n // id,\n // name: nickname,\n // profilePictureUrl\n // } }\n // liveModes={ liveModes }\n // advisorXfmProgram={ xfmProgram }\n // type=\"advisorPreviewCta\"\n // />\n <AppLink\n to={ {\n pathname: getadvisorSlug(slug),\n state: { ...analytics, startChatClickSource: (analytics || {}).clickSource }\n } }\n className={ classes.previewAdvisorCTA }\n onClick={ handleLinkClick }\n >\n {t('advisor_profile.connect')}\n </AppLink>\n ) : renderNotifyMeButton(onNotifyClick, availabilityNotification);\n};\n\nconst renderNotifyButton = (advisor, displayNotifyMe, showGeneralPopup, authPendingAction, displayRegister, location) => {\n if (!isKA()) return null;\n const {\n id, liveModes, availabilityNotification\n } = advisor;\n const onNotifyClick = (e) => handleNotifyClick(e, displayNotifyMe, id, showGeneralPopup, authPendingAction, displayRegister, location, false);\n const mode = getStartCallMode(liveModes);\n if (mode) return null;\n return (\n <div className={ classes.previewAdvisorCTAContainer }>\n {renderNotifyMeButton(onNotifyClick, availabilityNotification)}\n </div>\n );\n};\n\nconst renderNotifyMeButtonContainer = (advisor, displayNotifyMe, showGeneralPopup, authPendingAction, displayRegister, location, analytics, handleLinkClick, t) => (isKA()\n ? renderNotifyButton(advisor, displayNotifyMe, showGeneralPopup, authPendingAction, displayRegister, location, analytics, handleLinkClick, t)\n : null);\n\nconst adjustModesInfo = (valueWithoutModes, valueWithModes, advisor) => {\n if (!isKA() || advisor?.liveModes?.some(mode => mode.modeState === 'online')) return valueWithModes;\n return valueWithoutModes;\n};\n\nconst renderModesInfo = ({\n renderAdvisorFreeMinutes, loading, advisor, t\n}) => (\n <div className={ classes.modesInfoContainerWithIcons }>\n {renderAdvisorFreeMinutes}\n {adjustModesInfo(renderPriceText(loading, advisor), renderAdvisorModes(loading, advisor, t('home_page.from')), advisor)}\n </div>\n);\n\nfunction AdvisorPreview({\n theme, advisor, advisorCount, loading, analytics, content, style, className,\n updateNavigationStack, sectionSlug, onAnalyticsClick, innerRef, t, userXfmProgram,\n displayNotifyMe, showGeneralPopup, authPendingAction, displayRegister\n}) {\n const location = useLocation();\n\n const renderAdvisorFreeMinutes = React.useMemo(() => {\n if (!isXfmProgram({ advisorXfmProgram: advisor?.xfmProgram, userXfmProgram })) return null;\n return renderFreeMinutesLabel(t);\n }, [advisor?.xfmProgram?.active, userXfmProgram?.credits]);\n\n const renderAdvisorService = () => (\n <div className={ classes.advisrServiceContainer }>\n <div className={ classes.advisrService }>\n <ReadingSinceAndCountItem\n readingsCount={ advisor.readingsCount }\n yearJoined={ advisor.yearJoined }\n theme={ readingSinceAndCountItemThemes.onHomePageSecriceContainer }\n loading={ loading }\n />\n <div className={ classes.advisornickNameAndServiceContainer }>\n <ExpandedText ellipsis className={ classes.advisorNickNameContainer }>\n <span className={ classes.advisrNickName } suppressHydrationWarning>\n {skeletonOrItem({ item: advisor.nickname, skeletonWidth: 170 })}\n </span>\n </ExpandedText>\n <ExpandedText ellipsis className={ classes.advisorServiceTitleContainer }>\n <span className={ classes.advisorServiceTitle } suppressHydrationWarning>\n {skeletonOrItem({ item: advisor.serviceTitle, skeletonWidth: 170 })}\n </span>\n </ExpandedText>\n </div>\n <ExpandedText\n ellipsis\n className={ classes.serviceDescriptionContainer }\n limit={ getServiceDescriptionRowsCount() }\n textStyle={ { lineHeight: '14px' } }\n >\n <span className={ classes.advisrServiceText } suppressHydrationWarning>\n {skeletonOrItem({ item: advisor.serviceDescription, skeletonWidth: 170, maxChars: maxServiceDescriptionChars })}\n </span>\n </ExpandedText>\n </div>\n </div>\n );\n\n const handleLinkClick = (e) => {\n if (onAnalyticsClick) { onAnalyticsClick(); }\n handleLinkClickAction({\n e, loading, sectionSlug, updateNavigationStack\n });\n };\n\n const renderBottomSection = () => (content || (\n <div className={ classes.bottomSection }>\n {renderModesInfo({\n renderAdvisorFreeMinutes, loading, advisor, theme, t\n })}\n {renderNotifyMeButtonContainer(advisor, displayNotifyMe, showGeneralPopup, authPendingAction, displayRegister, location, analytics, handleLinkClick, t)}\n </div>\n ));\n\n const renderAdvisorContent = () => {\n if (content) return content;\n return (\n <AppLink\n to={ {\n pathname: getadvisorSlug(advisor.slug),\n state: { ...analytics, startChatClickSource: (analytics || {}).clickSource }\n } }\n className={ classes.advisorViewLink }\n onClick={ handleLinkClick }\n >\n <AdvisorAvatar { ...advisor } theme={ advisorThemes[theme] } loading={ loading } analytics={ analytics } />\n { renderAdvisorService() }\n {renderBottomSection()}\n </AppLink>\n );\n };\n\n const renderAdvisor = () => (\n <div key={ getKey(advisor) } className={ classNames(classes.advisorView, className) } style={ style } suppressHydrationWarning>\n { renderAdvisorContent() }\n </div>\n );\n\n return (\n <div className={ classes[theme] } style={ { '--advisorCount': `${ advisorCount }` } } ref={ innerRef } suppressHydrationWarning>\n { renderAdvisor() }\n </div>\n );\n}\n\nAdvisorPreview.propTypes = {\n advisor: PropTypes.object,\n theme: PropTypes.string,\n advisorCount: PropTypes.number,\n advisorIndex: PropTypes.number,\n loading: PropTypes.bool,\n analytics: PropTypes.object,\n content: PropTypes.node,\n style: PropTypes.object,\n className: PropTypes.string,\n updateNavigationStack: PropTypes.func.isRequired,\n sectionSlug: PropTypes.string,\n t: PropTypes.func.isRequired,\n onAnalyticsClick: PropTypes.func,\n innerRef: PropTypes.object,\n userXfmProgram: PropTypes.object,\n displayNotifyMe: PropTypes.func.isRequired,\n showGeneralPopup: PropTypes.func.isRequired,\n authPendingAction: PropTypes.func.isRequired,\n displayRegister: PropTypes.func.isRequired\n};\n\nAdvisorPreview.defaultProps = {\n ...SectionDefaultProps,\n advisor: null,\n loading: null,\n theme: 'badge',\n iconUrl: null,\n name: null,\n advisorCount: 1,\n analytics: null,\n content: null,\n style: null,\n className: null,\n sectionSlug: null,\n onAnalyticsClick: null,\n innerRef: null,\n userXfmProgram: {}\n};\n\n// wrap here in case someone wants to include it directly\nexport default withAnalytics(AdvisorPreview);\n","import { connect } from 'react-redux';\nimport AdvisorPreview from './advisor_preview';\nimport withPGTranslation from '../../../../config/withPGTranslation';\nimport { showGeneralPopup } from '../../../../actions/general_popup';\nimport { authPendingAction, displayRegister } from '../../../../actions/auth';\nimport { displayNotifyMe } from '../../../../actions/notify_me';\nimport { updateNavigationStack } from '../../../../actions/application';\nimport { trackBEvent } from '../../../../actions/b_events';\n\nexport const AdvisorPreviewThemes = {\n staff_pick: 'staff_pick',\n personal: 'personal',\n badge: 'badge',\n badge_end_to_end: 'badge_end_to_end',\n searchResult: 'searchResult',\n someOtherAdvisor: 'someOtherAdvisor'\n};\n\nconst mapStateToProps = ({\n user: { user }\n}) => (\n {\n userXfmProgram: user && user.xfmProgram\n }\n);\n\nexport default connect(\n mapStateToProps,\n {\n updateNavigationStack,\n trackBEvent,\n showGeneralPopup,\n authPendingAction,\n displayRegister,\n displayNotifyMe\n }\n)(withPGTranslation(AdvisorPreview));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport AppLink from '../../../routes/app_link';\nimport { SectionProps, SectionDefaultProps } from '../../prop_types';\nimport { SvgIcon } from '../../../../../common/sprites';\n\nconst renderSeeAllBtnText = ({ showMore, slug, params }) => {\n if (!showMore || !slug) return null;\n const seeAllBtnText = showMore.title ? (\n <div className={ classes.seeAllBtnTextContainer }>\n { showMore.subtitle }\n {` (${ showMore.title })`}\n <SvgIcon className={ classes.seeAllBtnRightArrow } id=\"right_arrow\" size={ 12 } />\n </div>\n ) : (\n showMore.subtitle\n );\n return (\n <AppLink\n to={ {\n pathname: slug,\n state: {\n needRefresh: true,\n params\n }\n } }\n className={ classes.seeAllBtn }\n >\n { seeAllBtnText }\n </AppLink>\n );\n};\n\nconst renderTitleTextSection = ({\n title, iconUrl, slug, params\n}) => {\n if (slug) {\n return (\n <AppLink\n to={ {\n pathname: slug,\n state: {\n needRefresh: true,\n params\n }\n } }\n rel=\"nofollow\"\n >\n <h2 className={ classes.advisorTitleText } style={ !iconUrl ? { marginLeft: '0px' } : {} }>\n { title || <div className={ classes.advisorTitleTextSkeleton } /> }\n </h2>\n </AppLink>\n );\n }\n return (\n <h2 className={ classes.advisorTitleText } style={ !iconUrl ? { marginLeft: '0px' } : {} }>\n { title || <div className={ classes.advisorTitleTextSkeleton } /> }\n </h2>\n );\n};\n\nconst getIconUrlStyle = (iconUrl) => {\n if (!iconUrl) return { display: 'none' };\n return {};\n};\n\nfunction AdvisorSectionTitle({\n title, loading, iconUrl, description, shortDescription, showMore, slug, theme, params\n}) {\n const renderSectionTitle = () => {\n if (!title && !loading) return null;\n return (\n <div className={ classes.advisorTitleContainer }>\n <div style={ { display: 'flex', alignItems: 'center', justifyContent: 'space-between' } } suppressHydrationWarning>\n <div className={ classes.advisorTitle }>\n <img src={ iconUrl } alt=\"\" className={ classes.advisorTitleImg } style={ getIconUrlStyle(iconUrl) } />\n { renderTitleTextSection({\n title, iconUrl, slug, params\n }) }\n </div>\n { renderSeeAllBtnText({ showMore, slug, params }) }\n </div>\n <div className={ classes.advisorTitleDescription }>\n { description || <div className={ classes.advisorDescriptionSkeleton } /> }\n </div>\n <div className={ classes.advisorShortDescription }>\n { shortDescription || <div className={ classes.advisorShortDescriptionSkeleton } /> }\n </div>\n </div>\n );\n };\n return (\n <div className={ classes[theme] }>\n { renderSectionTitle() }\n </div>\n );\n}\n\nAdvisorSectionTitle.propTypes = {\n ...SectionProps,\n theme: PropTypes.string\n};\n\nAdvisorSectionTitle.defaultProps = {\n ...SectionDefaultProps,\n theme: null\n};\n\nexport default AdvisorSectionTitle;\n","/* eslint-disable max-len */\nimport React from 'react';\nimport classes from '../classes.module.scss';\n\nexport const leftArrow = (\n <svg width=\"8\" height=\"19\" viewBox=\"0 0 8 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" className={ classes.arrowImg }>\n <g filter=\"url(#filter0_d_1030_12130)\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M7.5647 0.206639C8.03673 0.557462 8.14109 1.23291 7.79779 1.71529L2.6135 9L7.79779 16.2847C8.14109 16.7671 8.03673 17.4425 7.5647 17.7934C7.09267 18.1442 6.43172 18.0375 6.08842 17.5552L0 9L6.08842 0.444847C6.43172 -0.0375337 7.09267 -0.144183 7.5647 0.206639Z\" fill=\"#531FA5\" />\n </g>\n <defs>\n <filter id=\"filter0_d_1030_12130\" x=\"0\" y=\"0\" width=\"8\" height=\"19\" filterUnits=\"userSpaceOnUse\" colorInterpolationFilters=\"sRGB\">\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\n <feOffset dy=\"1\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.5 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1030_12130\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_1030_12130\" result=\"shape\" />\n </filter>\n </defs>\n </svg>\n);\n","/* eslint-disable max-len */\nimport React from 'react';\nimport classes from '../classes.module.scss';\n\nexport const rightArrow = (\n <svg width=\"8\" height=\"19\" viewBox=\"0 0 8 19\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" className={ classes.arrowImg }>\n <g filter=\"url(#filter0_d_1030_12131)\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M0.435302 0.206639C-0.0367289 0.557462 -0.141089 1.23291 0.202205 1.71529L5.3865 9L0.202205 16.2847C-0.141089 16.7671 -0.0367289 17.4425 0.435302 17.7934C0.907332 18.1442 1.56828 18.0375 1.91158 17.5552L8 9L1.91158 0.444847C1.56828 -0.0375337 0.907332 -0.144183 0.435302 0.206639Z\" fill=\"#531FA5\" />\n </g>\n <defs>\n <filter id=\"filter0_d_1030_12131\" x=\"-4.76837e-07\" y=\"0\" width=\"8\" height=\"19\" filterUnits=\"userSpaceOnUse\" colorInterpolationFilters=\"sRGB\">\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\n <feOffset dy=\"1\" />\n <feComposite in2=\"hardAlpha\" operator=\"out\" />\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.5 0\" />\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1030_12131\" />\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_1030_12131\" result=\"shape\" />\n </filter>\n </defs>\n </svg>\n);\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport AdvisorPreview from '../advisor_preview';\nimport {\n SectionProps, SectionDefaultProps, sectionSubTypes, advisorsSectionThemes\n} from '../../prop_types';\nimport { advisorsEmptyList, isPrerenderMode } from '../../../../config/util';\nimport classes from './classes.module.scss';\nimport AppLink from '../../../routes/app_link';\nimport AdvisorSectionTitle from './advisor_section_title';\nimport AdvisorRecommendPreview from '../../../advisor/nested_views/advisors_recommend_carousel/advisor_recommend_preview';\nimport { leftArrow } from './img/left_arrow';\nimport { rightArrow } from './img/right_arrow';\n\nconst scrollElementTypes = {\n left: 'Left',\n right: 'Right'\n};\n\nconst getJustifyContentStyle = ({ subtype, scrollElementsContentWidth, windowInnerWidth }) => {\n if (scrollElementsContentWidth <= windowInnerWidth && subtype === sectionSubTypes.endToEnd) return { justifyContent: 'center' };\n return { justifyContent: 'unset' };\n};\n\nconst getPersonalContentStyle = (personalSection) => {\n if (personalSection) return { '--displayRulePersonalBrowser': 'flex', '--displayRulePersonalMobile': 'none' };\n return { '--displayRulePersonalBrowser': 'none', '--displayRulePersonalMobile': 'flex' };\n};\n\nconst cantBePresented = (content) => (content || {}).advisors;\n\nconst calcScrollElementContantWidth = ({ id, setScrollElementsContentWidth }) => {\n const contentContainer = document.getElementById(`${ id }advisorsContainerScroller`);\n if (!contentContainer) return;\n const contentContainerChildrenArray = Array.from(contentContainer.children);\n let contentWidth = 0;\n contentContainerChildrenArray.forEach((el) => {\n const style = window.getComputedStyle(el);\n contentWidth += parseFloat(style.marginLeft) + parseFloat(style.width);\n });\n if (setScrollElementsContentWidth) setScrollElementsContentWidth(contentWidth);\n return { contentWidth, contentContainer }; //eslint-disable-line\n};\n\nconst needShowScrollElement = ({\n id, setShowLeftScrollElement, setShowRightScrollElement\n}) => {\n const data = calcScrollElementContantWidth({ id });\n if (!data) return;\n const { contentWidth } = data;\n const mainScrollContainer = document.getElementById(`${ id }advisorsContainerfalse`);\n if (mainScrollContainer) {\n if (contentWidth <= mainScrollContainer.offsetWidth) {\n setShowLeftScrollElement(false);\n setShowRightScrollElement(false);\n return;\n }\n\n if (mainScrollContainer.scrollLeft === 0 && contentWidth > mainScrollContainer.offsetWidth) {\n setShowLeftScrollElement(false);\n setShowRightScrollElement(true);\n return;\n }\n\n if (mainScrollContainer.scrollLeft > 0 && contentWidth > mainScrollContainer.offsetWidth) {\n setShowLeftScrollElement(true);\n setShowRightScrollElement(true);\n }\n\n if (mainScrollContainer.scrollLeft > 0 && contentWidth > mainScrollContainer.offsetWidth\n && mainScrollContainer.scrollLeft + mainScrollContainer.offsetWidth + 1\n >= mainScrollContainer.scrollWidth) {\n setShowLeftScrollElement(true);\n setShowRightScrollElement(false);\n }\n }\n};\n\nconst onScrollBtnClickAction = ({ e, id }) => {\n const scrollContainer = document.getElementById(`${ id }advisorsContainerfalse`);\n if (e.currentTarget.id === scrollElementTypes.left) {\n scrollContainer.scrollTo({ left: scrollContainer.scrollLeft - scrollContainer.clientWidth, behavior: 'smooth' });\n return;\n }\n scrollContainer.scrollTo({ left: scrollContainer.scrollLeft + scrollContainer.offsetWidth, behavior: 'smooth' });\n};\n\nconst renderSeeAllItmeMobile = ({\n showMore, slug, theme, windowInnerWidth, params\n}) => {\n if (!showMore || !slug) return null;\n const seeAllBtnText = showMore.title ? (\n <div className={ classes.seeAllBtnTextContainer }>\n { showMore.subtitle }\n {` (${ showMore.title })`}\n </div>\n ) : (\n showMore.subtitle\n );\n const seeAll = (\n <AppLink\n to={ {\n pathname: slug,\n state: {\n needRefresh: true,\n params\n }\n } }\n className={ classes.seeAllItmeMobile }\n >\n { seeAllBtnText }\n </AppLink>\n );\n if (windowInnerWidth >= window.shared.phoneOnlyUpSize) return null;\n return (\n <AdvisorPreview\n key=\"seeAllItmeMobileItem\"\n theme={ theme }\n content={ seeAll }\n style={ { height: '100%' } }\n className={ classes.seeAllItmeMobileContainer }\n />\n );\n};\n\nconst renderScrollLeftElement = (showLeftScrollElement, onScrollBtnClick) => {\n if (!showLeftScrollElement && !isPrerenderMode()) return null;\n return (\n <div className={ classes.scrollLeftElementContainer }>\n <button\n id={ scrollElementTypes.left }\n type=\"button\"\n className={ classes.scrollElementImgContainer }\n style={ { border: '1px solid #ededed', borderTopRightRadius:'8px', borderBottomRightRadius: '8px' } }\n onClick={ onScrollBtnClick }\n suppressHydrationWarning\n >\n {leftArrow}\n </button>\n </div>\n );\n};\n\nconst renderScrollRightElement = (showRightScrollElement, onScrollBtnClick) => {\n if (!showRightScrollElement && !isPrerenderMode()) return null;\n return (\n <div className={ classes.scrollRightElementContainer }>\n <button\n id={ scrollElementTypes.right }\n type=\"button\"\n className={ classes.scrollElementImgContainer }\n style={ { border: '1px solid #ededed', borderTopLeftRadius:'8px', borderBottomLeftRadius: '8px' } }\n onClick={ onScrollBtnClick }\n suppressHydrationWarning\n >\n {rightArrow}\n </button>\n </div>\n );\n};\n\nconst renderAdvisorLoading = (theme, loading) => {\n const emptyList = advisorsEmptyList(4);\n const emptyListForRecommended = advisorsEmptyList(3);\n return theme === advisorsSectionThemes.recommend_advisors ? (\n emptyListForRecommended.map((emptyAdvisor, index) => (\n <AdvisorRecommendPreview\n key={ `emptyAdvisorSection_${ index }` }\n advisor ={ emptyAdvisor }\n loading={ loading }\n />\n ))\n ) : (\n emptyList.map((emptyAdvisor, index) => (\n <AdvisorPreview\n key={ `emptyAdvisorSection_${ index }` }\n advisor={ emptyAdvisor }\n theme={ theme }\n advisorCount={ 4 }\n loading={ loading }\n />\n ))\n );\n};\n\nconst renderContent = (content, theme, advisorSectionContent) => (!cantBePresented(content) && theme !== advisorsSectionThemes.recommend_advisors ? null : advisorSectionContent());\n\nfunction AdvisorSection({\n iconUrl, title, description, content, shortDescription, advisors, advisorAnalytics,\n theme, id, personalSection, loading, analytics, slug, showMore, subtype, sectionLoading, params, userXfmProgram, sectionTitleTheme, onAnalyticsClick\n}) {\n const [windowInnerWidth, setWindowInnerWidth] = useState(window.innerWidth);\n const [scrollElementsContentWidth, setScrollElementsContentWidth] = useState();\n const [showLeftScrollElement, setShowLeftScrollElement] = useState(true);\n const [showRightScrollElement, setShowRightScrollElement] = useState(true);\n const advisorsContainerRef = useRef(null);\n const advisorsContainerScrollerRef = useRef();\n const onScrollBtnClick = (e) => onScrollBtnClickAction({\n e, id, setShowLeftScrollElement, setShowRightScrollElement\n });\n\n const handleResize = () => {\n setWindowInnerWidth(window.innerWidth);\n needShowScrollElement({ id, setShowLeftScrollElement, setShowRightScrollElement });\n };\n\n const handleScroll = () => {\n needShowScrollElement({ id, setShowLeftScrollElement, setShowRightScrollElement });\n };\n\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n useEffect(() => {\n calcScrollElementContantWidth({ id, setScrollElementsContentWidth });\n needShowScrollElement({ id, setShowLeftScrollElement, setShowRightScrollElement });\n }, [advisorsContainerScrollerRef, advisors]);\n\n useEffect(() => {\n if (!loading && windowInnerWidth >= window.shared.phoneOnlyUpSize && advisorsContainerRef.current) {\n const advisorsContainer = advisorsContainerRef.current;\n advisorsContainer.addEventListener('scroll', handleScroll);\n return () => {\n advisorsContainer.removeEventListener('scroll', handleScroll);\n };\n }\n return () => {};\n }, [windowInnerWidth, loading, advisorsContainerRef.current]);\n\n const renderScrollElements = () => (\n <>\n { renderScrollLeftElement(showLeftScrollElement, onScrollBtnClick, theme) }\n { renderScrollRightElement(showRightScrollElement, onScrollBtnClick, theme) }\n </>\n );\n\n const renderAdvisors = () => {\n if (loading) return renderAdvisorLoading(theme, loading);\n return theme === advisorsSectionThemes.recommend_advisors ? (\n advisors.map((advisor) => (\n <AdvisorRecommendPreview key={ advisor.id } advisor ={ advisor } loading={ loading } analytics = { advisorAnalytics } userXfmProgram={ userXfmProgram } onAnalyticsClick={ onAnalyticsClick } />\n ))\n ) : (\n [\n content.advisors.map((advisor) => (\n <AdvisorPreview key={ advisor.id } advisor={ advisor } theme={ theme } advisorCount={ 4 } loading={ loading || sectionLoading } analytics={ analytics } sectionSlug={ slug } />\n )),\n renderSeeAllItmeMobile({\n showMore, slug, theme, windowInnerWidth, params\n })\n ]\n );\n };\n\n const renderSectionAdvisor = () => (\n <div\n className={ classes.sectionMainContainer }\n >\n { renderScrollElements() }\n <div\n id={ `${ id }advisorsContainer${ personalSection }` }\n className={ classes.advisorsContainer }\n ref= { advisorsContainerRef }\n >\n <div\n className={ classes.advisorsContainerScroller }\n id={ `${ id }advisorsContainerScroller` }\n ref={ advisorsContainerScrollerRef }\n style={ getJustifyContentStyle({\n subtype, scrollElementsContentWidth, windowInnerWidth\n }) }\n suppressHydrationWarning\n >\n { renderAdvisors() }\n </div>\n </div>\n </div>\n );\n\n const advisorSectionContent = () => (\n <div\n className={ classes[theme] }\n style={ getPersonalContentStyle(personalSection) }\n suppressHydrationWarning\n >\n <AdvisorSectionTitle\n title={ title }\n loading={ loading }\n iconUrl={ iconUrl }\n description={ description }\n shortDescription={ shortDescription }\n showMore={ showMore }\n slug={ slug }\n params={ params }\n theme={ sectionTitleTheme }\n />\n { renderSectionAdvisor() }\n </div>\n );\n\n return renderContent(content, theme, advisorSectionContent);\n}\n\nAdvisorSection.propTypes = {\n ...SectionProps,\n theme: PropTypes.string,\n t: PropTypes.func.isRequired,\n personalSection: PropTypes.bool,\n loading: PropTypes.bool.isRequired,\n showMore: PropTypes.object,\n sectionLoading: PropTypes.bool,\n advisors: PropTypes.array,\n userXfmProgram: PropTypes.object,\n advisorAnalytics: PropTypes.object,\n sectionTitleTheme: PropTypes.string,\n onAnalyticsClick: PropTypes.func\n};\n\nAdvisorSection.defaultProps = {\n ...SectionDefaultProps,\n theme: 'badge',\n iconUrl: null,\n title: null,\n personalSection: false,\n showMore:null,\n sectionLoading: null,\n advisors: [],\n userXfmProgram: null,\n advisorAnalytics: null,\n sectionTitleTheme: null,\n onAnalyticsClick: null\n};\n\nexport default AdvisorSection;\n","import { connect } from 'react-redux';\nimport AdvisorSection from './advisor_section';\nimport withPGTranslation from '../../../../config/withPGTranslation';\n\nconst mapStateToProps = ({ homePage, user: { user } }, { id, loading }) => (\n {\n ...homePage,\n sectionLoading: ((homePage.sections || []).find(s => (s || {}).id === id) || {}).loading,\n userXfmProgram: user && user.xfmProgram,\n loading\n }\n);\n\nexport default connect(\n mapStateToProps,\n {\n }\n)(withPGTranslation(AdvisorSection));\n","// extracted by mini-css-extract-plugin\nexport default {\"mainContentContainer\":\"mainContentContainer--VzrKZ\",\"sectionHeader\":\"sectionHeader--jUctg\",\"sectionHeaderSeparator\":\"sectionHeaderSeparator--nBHyi\",\"sectionIcon\":\"sectionIcon--AEpV1\",\"advisorContainer\":\"advisorContainer--r3wS3\",\"avatarHolder\":\"avatarHolder--nBv81\",\"avatarContainer\":\"avatarContainer--_oT4t\",\"advisorInfoContainer\":\"advisorInfoContainer--lGTWm\",\"advisorInfoHeader\":\"advisorInfoHeader--cFXoF\",\"advisorTitle\":\"advisorTitle--GqqlT\",\"advisorSubtitle\":\"advisorSubtitle--Zbp_a\",\"rating\":\"rating--Tbalt\",\"footer\":\"footer--fMU3E\",\"v2\":\"v2--InHOA\",\"staffPickDescription\":\"staffPickDescription--FXjrz\",\"advisorViewLink\":\"advisorViewLink--yUTve\",\"serviceTitleContainer\":\"serviceTitleContainer--x2Eaj\",\"previewAdvisorCTAContainer\":\"previewAdvisorCTAContainer--wufoc\",\"preview\":\"preview--uxz3Z\",\"mainContainer\":\"mainContainer--tcZCq\",\"reverse\":\"reverse--uVDTo\",\"iconsContainer\":\"iconsContainer--qnu6x\",\"modesHolder\":\"modesHolder--OpEZO\",\"modesHolderSkeleton\":\"modesHolderSkeleton--cuxL0\",\"animation-bzdot9\":\"animation-bzdot9--lCv8H\",\"modeIconContainer\":\"modeIconContainer--RfpMl\",\"withBg\":\"withBg--hNlAU\",\"modeIcon\":\"modeIcon--gd5RO\",\"big\":\"big--RlhMt\",\"staffPick\":\"staffPick--wKkAg\",\"recommendedCarousel\":\"recommendedCarousel--B1sLp\",\"recommendedAdvisor\":\"recommendedAdvisor--FFDUq\",\"priceSeparator\":\"priceSeparator--SIJPi\",\"piceTextContainer\":\"piceTextContainer--enGYr\",\"discountCouponIcon\":\"discountCouponIcon--SJWWj\",\"textColumnContainer\":\"textColumnContainer--ea7Dv\",\"crosoutPrice\":\"crosoutPrice--JPMvQ\",\"textContainer\":\"textContainer--F27Yd\",\"minPriceText\":\"minPriceText--bDbOq\",\"salePriceText\":\"salePriceText--u3Dol\",\"salePriceTextWithCoupon\":\"salePriceTextWithCoupon--lkTQ1\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport { isKA, convertStringToCamelCase } from '../../../../../common/config/utils';\nimport { getAvailableMinSalesPrice, getAvailableSalesPrice } from '../../../../config/util';\nimport { minSalesPriceType, liveModeState } from '../../../../config/const';\nimport { SvgIcon } from '../../../../../common/sprites';\n\nconst needRenderCoupon = ({ liveModeMinPromoPrices, userAdvisorModeMinSalesPrice }) => (\n liveModeMinPromoPrices\n && userAdvisorModeMinSalesPrice === minSalesPriceType.couponLiveModeMinSalesPrice\n && liveModeMinPromoPrices[convertStringToCamelCase(minSalesPriceType.couponLiveModeMinSalesPrice)]\n);\n\nconst renderCouponImg = ({ liveModeMinPromoPrices, userAdvisorModeMinSalesPrice }) => (needRenderCoupon({ liveModeMinPromoPrices, userAdvisorModeMinSalesPrice }) ? (\n <SvgIcon id=\"advisor_special_offer_icon\" className={ classes.discountCouponIcon } size={ 21 } />\n) : null);\n\nconst priceColor = ({ availableMinSalesPrice, userAdvisorModeMinSalesPrice, liveModeMinPromoPrices }) => {\n if (needRenderCoupon({ liveModeMinPromoPrices, userAdvisorModeMinSalesPrice })) return classes.salePriceTextWithCoupon;\n if (availableMinSalesPrice) return classes.salePriceText;\n return classes.priceText;\n};\n\nconst prePriceText = ({\n availableMinSalesPrice, availableMinPrice, text\n}) => {\n if (availableMinSalesPrice) {\n return <span className={ classes.crosoutPrice }>{isKA() ? `$${ parseFloat(availableMinPrice).toFixed(2) }/min` : `$${ parseFloat(availableMinPrice).toFixed(2) }`}</span>;\n }\n return <span className={ classes.minPriceText }>{ text }</span>;\n};\n\nconst getPrices = ({\n liveModes, liveModeMinPrice, userAdvisorModeSalePrice, liveModeMinPromoPrices, userAdvisorModeMinSalesPrice\n}) => {\n const onlineLiveModePrices = [];\n liveModes?.forEach((mode) => {\n if (mode.modeState === liveModeState.online) {\n const { price, promoPrices } = mode;\n\n const parsedPrice = parseFloat(price);\n const availableSalesPrice = getAvailableSalesPrice({ promoPrices, userAdvisorModeSalePrice });\n const parsedAvailableSalesPrice = parseFloat(availableSalesPrice);\n onlineLiveModePrices.push({ availableMinPrice: parsedPrice, availableMinSalesPrice: parsedAvailableSalesPrice });\n }\n });\n\n const minPrice = Math.min(\n ...onlineLiveModePrices.flatMap(item => [item.availableMinPrice, item.availableMinSalesPrice]).filter(value => !Number.isNaN(value))\n );\n\n const minPriceObject = onlineLiveModePrices.find(item => item.availableMinPrice === minPrice || item.availableMinSalesPrice === minPrice);\n\n if (minPriceObject) return minPriceObject;\n\n return { availableMinPrice: liveModeMinPrice, availableMinSalesPrice: getAvailableMinSalesPrice({ liveModeMinPromoPrices, userAdvisorModeMinSalesPrice }) };\n};\n\nfunction PriceText({\n liveModeMinPrice, liveModeMinPromoPrices, text, userAdvisorModeMinSalesPrice, userAdvisorModeSalePrice, liveModes\n}) {\n const { availableMinPrice, availableMinSalesPrice } = getPrices({\n liveModes, liveModeMinPrice, userAdvisorModeSalePrice, liveModeMinPromoPrices, userAdvisorModeMinSalesPrice\n });\n\n if (!availableMinPrice && !availableMinSalesPrice) return null;\n\n const price = () => parseFloat(availableMinSalesPrice || availableMinPrice).toFixed(2);\n return (\n <div className={ `${ isKA() ? classes.v2 : '' }` }>\n { renderCouponImg({ liveModeMinPromoPrices, userAdvisorModeMinSalesPrice }) }\n <div className={ isKA() ? classes.textColumnContainer : classes.textContainer }>\n {prePriceText({ availableMinSalesPrice, availableMinPrice, text })}\n <div className={ classes.priceSeparator } />\n <span className={ priceColor({ availableMinSalesPrice, userAdvisorModeMinSalesPrice, liveModeMinPromoPrices }) } suppressHydrationWarning>\n {`$${ price() }/min`}\n </span>\n </div>\n </div>\n );\n}\n\nPriceText.propTypes = {\n liveModeMinPrice: PropTypes.string,\n liveModeMinPromoPrices: PropTypes.object,\n loading: PropTypes.bool,\n theme: PropTypes.string,\n text: PropTypes.string,\n userAdvisorModeMinSalesPrice: PropTypes.string,\n userAdvisorModeSalePrice: PropTypes.string,\n liveModes: PropTypes.array\n};\n\nPriceText.defaultProps = {\n liveModeMinPrice: null,\n liveModeMinPromoPrices: {},\n loading: false,\n theme: '',\n text: null,\n userAdvisorModeMinSalesPrice: null,\n userAdvisorModeSalePrice: null,\n liveModes: []\n};\n\nexport default PriceText;\n","import { connect } from 'react-redux';\nimport PriceText from './price_text';\nimport { getUserFirstActivePromotion } from '../../../../config/util';\n\nconst mapStateToProps = ({\n user, application\n}) => (\n {\n userAdvisorModeMinSalesPrice: getUserFirstActivePromotion({ user, application })?.advisorModeMinSalesPrice,\n userAdvisorModeSalePrice: getUserFirstActivePromotion({ user, application })?.advisorModeSalePrice\n }\n);\n\nexport default connect(\n mapStateToProps,\n {}\n)((PriceText));\n","// extracted by mini-css-extract-plugin\nexport default {\"promotionLabelContainer\":\"promotionLabelContainer--VvluG\",\"mainContent\":\"mainContent--avrrD\",\"promoContent\":\"promoContent--KrZaH\",\"bgImage\":\"bgImage--E0yhF\",\"textContainer\":\"textContainer--XwcA3\",\"title\":\"title--jU0s2\",\"subtitle\":\"subtitle--YkMZo\",\"countdownTitle\":\"countdownTitle--VBXSh\",\"countdownContainer\":\"countdownContainer--qOXrO\",\"countDownTimer\":\"countDownTimer--RznDy\",\"countdown\":\"countdown--LcqW5\",\"countdownSubtitle\":\"countdownSubtitle--dxvLc\",\"animation-bzdot9\":\"animation-bzdot9--FkWoF\"};","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport { PromotionContent, PromotionDefaultProps } from '../../prop_types';\nimport ExpandedText from '../../../../../common/helpers/expanded_text';\nimport { promotionLabelTypeScreens } from '../../../../config/const';\n\nconst countDownTitle = (countdownBeforeEndInSeconds, countdownBeforeEventInSeconds) => {\n if (countdownBeforeEndInSeconds) return 'ENDS IN:';\n if (countdownBeforeEventInSeconds) return 'STARTS IN:';\n return null;\n};\n\nconst promotionActive = (\n countdownBeforeEndInSeconds,\n countdownBeforeEventInSeconds\n) => !!countdownBeforeEndInSeconds || !!countdownBeforeEventInSeconds;\n\nconst renderContdownContainer = (promotionIsActive, contdownContainer) => {\n if (!promotionIsActive) return null;\n return contdownContainer();\n};\n\nconst renderPromoLabel = ({ userActivePromotion, promoLabel, bannerImg }) => {\n if (Object.keys(userActivePromotion).length === 0) return null;\n if (!bannerImg) return null;\n return promoLabel();\n};\n\nconst getImageObjectForWindowSize = ({ imageObject, windowInnerWidth }) => {\n if (windowInnerWidth <= window.shared.phoneOnlyUpSize) return imageObject?.banner;\n return imageObject?.webBanner;\n};\n\nconst getImageObject = ({ images, promotionLabelTypeScreen, windowInnerWidth }) => {\n let imageObject = null;\n\n switch (promotionLabelTypeScreen) {\n case promotionLabelTypeScreens.homePage:\n case promotionLabelTypeScreens.searchResult:\n imageObject = getImageObjectForWindowSize({ imageObject: images?.large, windowInnerWidth });\n break;\n case promotionLabelTypeScreens.advisorProfile:\n imageObject = getImageObjectForWindowSize({ imageObject: images?.small, windowInnerWidth });\n break;\n default:\n break;\n }\n return imageObject;\n};\n\nconst getBannerImg = ({ images, promotionLabelTypeScreen, windowInnerWidth }) => {\n const imageObject = getImageObject({ images, promotionLabelTypeScreen, windowInnerWidth });\n const bannerImg = imageObject?.imgSrc;\n return bannerImg;\n};\n\nconst getBannerAspectRation = ({ images, promotionLabelTypeScreen, windowInnerWidth }) => {\n const imageObject = getImageObject({ images, promotionLabelTypeScreen, windowInnerWidth });\n let aspectRation = 'auto';\n const width = imageObject?.width;\n const height = imageObject?.height;\n if (width && height) {\n aspectRation = width / height;\n }\n return aspectRation;\n};\n\nfunction PromotionLabel({\n loadHomePage, userActivePromotion, className, promotionLabelTypeScreen\n}) {\n const {\n promotionSaleTitle,\n promotionShortDescription, images, promoTimer\n } = userActivePromotion;\n\n const { countdownBeforeEndInSeconds, countdownBeforeEventInSeconds } = promoTimer || {};\n\n const [windowInnerWidth, setWindowInnerWidth] = useState(window.innerWidth);\n\n const handleResize = () => {\n setWindowInnerWidth(window.innerWidth);\n };\n\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const bannerImg = getBannerImg({ images, promotionLabelTypeScreen, windowInnerWidth });\n\n let timer = null;\n let seconds = countdownBeforeEndInSeconds || countdownBeforeEventInSeconds;\n\n const [currentSeconds, setCurrentSeconds] = useState(seconds);\n\n const promotionIsActive = promotionActive(\n countdownBeforeEndInSeconds,\n countdownBeforeEventInSeconds\n ) && currentSeconds;\n\n const startTimer = () => {\n timer = setInterval(() => {\n if (seconds <= 1) {\n loadHomePage(true);\n clearInterval(timer);\n timer = null;\n }\n seconds -= 1;\n setCurrentSeconds(seconds);\n }, 1000);\n };\n\n useEffect(() => {\n if (!timer && seconds > 0) {\n startTimer();\n }\n return () => {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n };\n }, [promoTimer]);\n\n const contdownContainer = () => (\n <div className={ classes.countdownContainer }>\n <div className={ classes.countdownTitle }>\n {countDownTitle(countdownBeforeEndInSeconds, countdownBeforeEventInSeconds)}\n </div>\n <div className={ classes.countDownTimer }>\n <div className={ classes.countdown }>\n {Math.floor(currentSeconds / 3600).toLocaleString('en-US', { minimumIntegerDigits:2 })}\n <div className={ classes.countdownSubtitle }> HOURS </div>\n </div>\n <div className={ classes.countdown }>\n {Math.floor((currentSeconds % 3600) / 60).toLocaleString('en-US', { minimumIntegerDigits:2 })}\n <div className={ classes.countdownSubtitle }> MIN </div>\n </div>\n <div className={ classes.countdown }>\n {Math.floor((currentSeconds % 60) % 60).toLocaleString('en-US', { minimumIntegerDigits:2 })}\n <div className={ classes.countdownSubtitle }> SEC </div>\n </div>\n </div>\n </div>\n );\n\n const promoLabel = () => (\n <div className={ className }>\n <div className={ classes.promotionLabelContainer }>\n <img className={ classes.bgImage } src={ bannerImg } alt=\"\" style={ { '--promotion-label-banner-aspect-ration': getBannerAspectRation({ images, promotionLabelTypeScreen, windowInnerWidth }) } } />\n <div className={ classes.mainContent }>\n <div className={ classes.promoContent }>\n <div className={ classes.textContainer }>\n <ExpandedText\n className={ classes.title }\n ellipsis\n customClasses={ { text: classes.title } }\n >\n {promotionSaleTitle}\n </ExpandedText>\n <ExpandedText\n className={ classes.title }\n ellipsis\n customClasses={ { text: classes.subtitle } }\n >\n <span className={ classes.subtitle }>\n {promotionShortDescription}\n </span>\n </ExpandedText>\n </div>\n {renderContdownContainer(promotionIsActive, contdownContainer)}\n </div>\n </div>\n </div>\n </div>\n );\n\n return renderPromoLabel({ userActivePromotion, promoLabel, bannerImg });\n}\nPromotionLabel.propTypes = {\n ...PromotionContent,\n loadHomePage: PropTypes.func.isRequired,\n userActivePromotion: PropTypes.object,\n promotionLabelTypeScreen: PropTypes.string.isRequired\n};\n\nPromotionLabel.defaultProps = {\n ...PromotionDefaultProps,\n userActivePromotion: null\n};\n\nexport default PromotionLabel;\n","import { connect } from 'react-redux';\nimport PromotionLabel from './promotion_label';\nimport withPGTranslation from '../../../../config/withPGTranslation';\nimport { loadHomePage } from '../../../../actions/home_page';\nimport { getUserFirstActivePromotion } from '../../../../config/util';\n\nconst mapStateToProps = ({ user, application }) => ({\n userActivePromotion: getUserFirstActivePromotion({ user, application })\n});\n\nexport default connect(\n mapStateToProps,\n {\n loadHomePage\n }\n)(withPGTranslation(PromotionLabel));\n","import PropTypes from 'prop-types';\n\nexport const sectionIds = {\n salesBanner: 'sales_banner',\n filters: 'filters',\n staffPick: 'staff_pick',\n specialities: 'specialities',\n recentlyViewed: 'recently_viewed',\n favorites: 'favorite_advisors',\n contactAgain: 'contact_again',\n tryout: 'tryout_advisors',\n votedMostAccurate: 'voted_most_accurate',\n highestRated: 'highest_rated',\n trending:'pg_trending',\n recomended: 'recommended',\n all_advisors:'all_advisors',\n redeemCahsback: 'redeem_cashback',\n allAdvisorsList: 'all_advisors_list',\n topAdvisorsTarotReadings: 'top_advisors_tarot_readings',\n pathHeadingAdvisors: 'path_heading_advisors',\n tensionRelationshipAdvisors: 'tension_relationship_advisors',\n soulmateAdvisors: 'soulmate_advisors',\n recommend_advisors: 'recommend_advisors'\n};\n\nexport const sectionTypes = {\n salesBanner: 'sales_banner',\n staffPick: 'staff_pick',\n specialities: 'specialities',\n personal: 'personal',\n filters: 'filters',\n badge: 'badge',\n button: 'button',\n list: 'list'\n};\n\nexport const sectionSubTypes = {\n endToEnd: 'end_to_end'\n};\n\nexport const advisorsSectionTypes = {\n staffPick: 'staff_pick',\n personal: 'personal',\n badge: 'badge'\n};\n\nexport const advisorsSectionThemes = {\n staff_pick: 'staff_pick',\n personal: 'personal',\n badge: 'badge',\n badge_end_to_end: `${ advisorsSectionTypes.badge }_${ sectionSubTypes.endToEnd }`,\n all_advisors_section: 'all_advisors_section',\n recommend_advisors: 'recommend_advisors'\n};\n\nexport const advisorsSectionTypesArray = Object.keys(advisorsSectionTypes)\n .map((advisorsSectionType) => sectionTypes[advisorsSectionType]);\n\nexport const typesToArray = (object) => Object.keys(object)\n .map((item) => object[item]);\n\nconst idsArray = Object.keys(sectionIds).map((sectionId) => sectionIds[sectionId]);\nconst typesArray = Object.keys(sectionTypes).map((sectionType) => sectionTypes[sectionType]);\n\nexport const SectionProps = {\n type: PropTypes.oneOf(typesArray),\n id: PropTypes.oneOf(idsArray),\n analytics: PropTypes.object,\n content: PropTypes.object,\n title: PropTypes.string,\n params: PropTypes.object,\n refresh: PropTypes.bool,\n showMore: PropTypes.object,\n iconUrl: PropTypes.string,\n slug: PropTypes.string,\n subtype: PropTypes.string\n};\n\nexport const SectionDefaultProps = {\n id:null,\n type: null,\n analytics: null,\n content: null,\n title: null,\n description: '',\n params: null,\n refresh: false,\n showMore: null,\n iconUrl: null,\n slug:null,\n subtype: null\n};\n\nexport const HomePageAdvisorLiveModes = {\n mode: PropTypes.string,\n modeState: PropTypes.string,\n name: PropTypes.string,\n price: PropTypes.string,\n salesPrice: PropTypes.string\n};\n\nexport const HomePageAdvisorLiveModesDefaultProps = {\n mode: '',\n modeState: '',\n name: '',\n price: ''\n};\n\n// badges\nexport const AdvisorBadgesProps = {\n ig: PropTypes.string,\n name: PropTypes.string,\n color: PropTypes.string\n};\n\nexport const AdvisorBadgesDefaultProps = {\n ig: '',\n name: '',\n color: ''\n};\n\nexport const HomePageAdvisorProps = {\n id: PropTypes.number,\n liveModeMinPrice: PropTypes.string,\n liveModes: PropTypes.arrayOf(HomePageAdvisorLiveModes),\n nickname: PropTypes.string,\n profilePictureUrl: PropTypes.string,\n rating: PropTypes.number,\n readingsCount: PropTypes.number,\n serviceTitle: PropTypes.string,\n status: PropTypes.string,\n yearJoined: PropTypes.number\n};\n\nexport const HomePageAdvisorDefaultProps = {\n id: null,\n liveModeMinPrice: '',\n liveModes: [],\n nickname: '',\n profilePictureUrl: '',\n rating: 0,\n readingsCount: 0,\n serviceTitle: '',\n status: '',\n yearJoined: null\n};\n\nexport const FullAdvisorDetails = {\n id: PropTypes.number,\n busy_status: PropTypes.string,\n is_available: PropTypes.string,\n status: PropTypes.string,\n profilePictureUrl: PropTypes.string,\n nickname: PropTypes.string,\n serviceTitle: PropTypes.string,\n serviceDescription: PropTypes.string,\n instructions: PropTypes.string,\n aboutMe: PropTypes.string,\n profile_video_thumb_url: PropTypes.string,\n profile_video_url: PropTypes.string,\n advisor_share_link: PropTypes.string,\n isFavorite: PropTypes.bool,\n readingsCount: PropTypes.number,\n yearJoined: PropTypes.number,\n rating: PropTypes.number,\n isNewAdvisor: PropTypes.bool\n};\n\nexport const FullAdvisorDefaultDetails = {\n id: null,\n busy_status: '',\n is_available: '',\n status: '',\n profilePictureUrl: '',\n nickname: '',\n serviceTitle: '',\n serviceDescription: '',\n instructions: '',\n about_me: '',\n profile_video_thumb_url: '',\n profile_video_url: '',\n advisor_share_link: '',\n badges: [],\n isFavorite: false,\n readingsCount: 0,\n yearJoined: 0,\n rating: 0,\n isNewAdvisor: false\n};\n\nexport const PromotionContent = {\n countdownBeforeEndInSeconds: PropTypes.number,\n countdownBeforeEventInSeconds: PropTypes.number,\n promotionSaleCampaign: PropTypes.string,\n promotionSaleTitle: PropTypes.string,\n promotionShortDescription: PropTypes.string,\n shareBanner: PropTypes.bool,\n webBannerImgSrc: PropTypes.string\n};\n\nexport const PromotionDefaultProps = {\n countdownBeforeEndInSeconds: null,\n countdownBeforeEventInSeconds: null,\n promotionSaleCampaign: null,\n promotionSaleTitle: null,\n promotionShortDescription: null,\n shareBanner: false,\n webBannerImgSrc: null\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"creditCardValidateContainer\":\"creditCardValidateContainer--dPH2f\",\"creditCardValidateBuyBtnContainer\":\"creditCardValidateBuyBtnContainer--hHUyo\",\"creditCardValidateDisableBuyButton\":\"creditCardValidateDisableBuyButton--VbsIB\",\"skeleton\":\"skeleton--Hbb8P\",\"animation-bzdot9\":\"animation-bzdot9--TNHzH\",\"creditCardValidateErrorContainer\":\"creditCardValidateErrorContainer--skDzW\",\"creditCardValidateErrorImgContainer\":\"creditCardValidateErrorImgContainer--Yopma\",\"creditCardValidateErrorImg\":\"creditCardValidateErrorImg--vCRX5\",\"creditCardValidateErrorTitle\":\"creditCardValidateErrorTitle--gR34X\",\"creditCardValidateErrorText\":\"creditCardValidateErrorText--J7yQI\"};","import React, { useEffect, useState } from 'react';\nimport queryString from 'query-string';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport { chatTypeToOrderType, purchaseTypeToOrderType } from '../../../config/const';\nimport { toCamelCase } from '../../../../common/config/utils';\nimport { SvgIcon } from '../../../../common/sprites';\n\nconst getBuyBtnClassName = ({ loading, disableBuyButton }) => {\n if (loading) return classnames(classes.creditCardValidateBuyBtnContainer, classes.skeleton);\n if (disableBuyButton) {\n return classnames(classes.creditCardValidateBuyBtnContainer, classes.creditCardValidateDisableBuyButton);\n }\n return classes.creditCardValidateBuyBtnContainer;\n};\n\nconst renderError = ({ t, error }) => {\n if (!error) return null;\n return (\n <div className={ classes.creditCardValidateErrorContainer }>\n <div className={ classes.creditCardValidateErrorImgContainer }>\n <SvgIcon id=\"error_icon\" className={ classes.creditCardValidateErrorImg } />\n </div>\n <div className={ classes.creditCardValidateErrorTitle }>\n { t('credit_card_validate_processing.card_validation_failed') }\n </div>\n <div className={ classes.creditCardValidateErrorText }>\n { t('credit_card_validate_processing.there_was_a_failure_validating_your_card') }\n </div>\n </div>\n );\n};\n\nconst getValidateCreditCardRequestParams = ({ advisorId, chatType }) => {\n const {\n intendedAdvisorId, purchaseType\n } = toCamelCase(queryString.parse(window.location.search));\n const requestParams = {\n intended_advisor_id: parseFloat(intendedAdvisorId) || advisorId,\n order_type: purchaseTypeToOrderType[purchaseType] || chatTypeToOrderType[chatType]\n };\n return requestParams;\n};\n\nfunction CreditCardValidateProcessing({\n disableBuyButton, loading, onCreditCardValidated, validateCreditCardAction, validatedData,\n error, validateCreditCardClearAction, getValidateCreditCardStatus, creditCardValidateProcessingValidating, requiresPayAsYouGoValidation, advisorId, chatType\n}) {\n const { t } = useTranslation();\n\n const [getValidateCreditCardStatusInterval, setGetValidateCreditCardStatusInterval] = useState(null);\n\n useEffect(() => {\n if (validatedData) {\n const { id, state } = validatedData || {};\n if (state === 'pending' && !getValidateCreditCardStatusInterval) {\n const int = setInterval(() => {\n getValidateCreditCardStatus({ id });\n }, 1500);\n setGetValidateCreditCardStatusInterval(int);\n return () => {\n clearInterval(int);\n setGetValidateCreditCardStatusInterval(null);\n };\n }\n if (state !== 'pending' || error) {\n clearInterval(getValidateCreditCardStatusInterval);\n setGetValidateCreditCardStatusInterval(null);\n creditCardValidateProcessingValidating({ validating: false });\n }\n if (state === 'validated') {\n onCreditCardValidated();\n }\n }\n return () => {};\n }, [validatedData]);\n\n useEffect(() => () => {\n clearInterval(getValidateCreditCardStatusInterval);\n setGetValidateCreditCardStatusInterval(null);\n validateCreditCardClearAction();\n }, []);\n\n const validateCreditCardActionHandler = () => {\n const requestParams = getValidateCreditCardRequestParams({ advisorId, chatType });\n validateCreditCardAction({ requestParams });\n };\n\n const renderCreditCardValidateBtn = () => {\n let onClickBtn = onCreditCardValidated;\n let text = t('purchase.purchase_start_session');\n if (requiresPayAsYouGoValidation) {\n onClickBtn = validateCreditCardActionHandler;\n }\n if (error) {\n text = t('general.ok');\n onClickBtn = validateCreditCardClearAction;\n }\n return (\n <button type=\"button\" onClick={ onClickBtn } className={ getBuyBtnClassName({ loading, disableBuyButton, error }) }>\n { text }\n </button>\n );\n };\n\n const renderCreditCardValidateProcessing = () => (\n <div className={ classes.creditCardValidateContainer }>\n { renderError({ t, error }) }\n { renderCreditCardValidateBtn() }\n </div>\n );\n\n return renderCreditCardValidateProcessing();\n}\n\nCreditCardValidateProcessing.propTypes = {\n onCreditCardValidated: PropTypes.func.isRequired,\n loading: PropTypes.bool,\n disableBuyButton: PropTypes.bool,\n validateCreditCardAction: PropTypes.func.isRequired,\n validateCreditCardClearAction: PropTypes.func.isRequired,\n requiresPayAsYouGoValidation: PropTypes.bool,\n advisorId: PropTypes.number,\n chatType: PropTypes.string\n};\n\nCreditCardValidateProcessing.defaultProps = {\n loading: null,\n disableBuyButton: null,\n validatedData: null,\n requiresPayAsYouGoValidation: null,\n advisorId: null,\n chatType: null\n};\n\nexport default CreditCardValidateProcessing;\n","import Const from '../config/const';\nimport { validateCreditCardApi, getValidateCreditCardStatusApi } from '../config/api';\n\nexport const creditCardValidateProcessingValidating = ({ validating }) => ({\n type: Const.creditCardValidateProcessing.validating,\n validating\n});\n\nconst creditCardValidateProcessingValidated = ({ validatedData }) => ({\n type: Const.creditCardValidateProcessing.setValidatedData,\n validatedData\n});\n\nconst creditCardValidateProcessingError = (error) => ({\n type: Const.creditCardValidateProcessing.error,\n error\n});\n\nexport const validateCreditCardAction = ({ requestParams }) => (dispatch) => {\n dispatch(creditCardValidateProcessingValidating({ validating: true }));\n validateCreditCardApi({ requestParams })\n .then((validatedData) => {\n dispatch(creditCardValidateProcessingValidated({ validatedData }));\n })\n .catch((error) => {\n error.json()\n .then((jsonError) => { dispatch(creditCardValidateProcessingError(jsonError)); })\n .catch(() => { dispatch(creditCardValidateProcessingError(error)); });\n });\n};\n\nexport const getValidateCreditCardStatus = ({ id }) => (dispatch) => {\n getValidateCreditCardStatusApi({ id })\n .then((validatedData) => {\n dispatch(creditCardValidateProcessingValidated({ validatedData }));\n })\n .catch((error) => {\n error.json()\n .then((jsonError) => { dispatch(creditCardValidateProcessingError(jsonError)); })\n .catch(() => { dispatch(creditCardValidateProcessingError(error)); });\n });\n};\n\nexport const validateCreditCardClearAction = () => ({\n type: Const.creditCardValidateProcessing.clear\n});\n","import { connect } from 'react-redux';\nimport CreditCardValidateProcessing from './credit_card_validate_processing';\nimport {\n validateCreditCardAction,\n getValidateCreditCardStatus,\n validateCreditCardClearAction,\n creditCardValidateProcessingValidating\n} from '../../../actions/credit_card_validate_processing';\n\nconst mapStateToProps = ({ creditCardValidateProcessing }, ownProp) => ({\n ...creditCardValidateProcessing,\n loading: ownProp.loading || creditCardValidateProcessing.validating\n});\n\nexport default connect(\n mapStateToProps,\n {\n validateCreditCardAction,\n getValidateCreditCardStatus,\n validateCreditCardClearAction,\n creditCardValidateProcessingValidating\n }\n)(CreditCardValidateProcessing);\n","/* eslint-disable object-property-newline */\nimport queryString from 'query-string';\nimport { payPalProcessingFailReason } from '../../config/util';\nimport {\n paramOrNul, toLowerCaseSpaced, paymentKindToAnalyticsName, toCamelCase, getStartChatClickSource\n} from '../../../common/config/utils';\nimport Const from '../../config/const';\nimport { purchaseDetailsTypes } from '../../../common/config/const';\nimport {\n trackPurchaseStartedEvent, trackPurchaseEvent, trackPurchaseFailedEvent, getDestination\n} from '../../actions/analytics';\nimport { log, LOG_LEVELS } from '../../../common/config/app_logger';\nimport { appRoutes } from '../../config/app_routes';\nimport { getAdvisorSlug } from '../../project_items/helper_functions';\n\nexport const endPurchaseErrorTypes = [\n 'advisor_busy',\n 'advisor_offline',\n 'spending_limits'\n];\n\nexport const isSideMenu = ({ type }) => (type === purchaseDetailsTypes.SIDE_MENU);\n\nexport const isAffiliatePromoPopup = ({ type }) => (\n type === purchaseDetailsTypes.AFFILIATE_PROMO_POPUP\n);\n\nexport const sign = ({ URL }) => (URL.indexOf('?') === -1 ? '?' : '&');\n\nexport const getFollowupParam = ({ isContinue, type }) => {\n const { context } = toCamelCase(queryString.parse(window.location.search));\n if (context) return { context };\n if (isContinue) return { context: 'followup' };\n let followupParam;\n switch (type) {\n case purchaseDetailsTypes.CHAT: {\n followupParam = { context: 'live_chat' };\n break;\n }\n case purchaseDetailsTypes.VIDEO_CHAT: {\n followupParam = { context: 'video_call' };\n break;\n }\n case purchaseDetailsTypes.VOICE_CHAT: {\n followupParam = { context: 'voice_call' };\n break;\n }\n default: {\n followupParam = { context: 'credit_screen' };\n break;\n }\n }\n return followupParam;\n};\n\nexport const renderButtonTitle = ({ isContinue, type, t }) => {\n if (isContinue) {\n return t('general.continue');\n }\n switch (type) {\n case purchaseDetailsTypes.CHAT:\n return t('chat.start_chat');\n case purchaseDetailsTypes.VIDEO_CHAT:\n return t('chat.start_video_call');\n case purchaseDetailsTypes.VOICE_CHAT:\n return t('chat.start_voice_call');\n case purchaseDetailsTypes.AFFILIATE_PROMO_POPUP:\n return t('purchase.affiliate_promo_popup_confirm_button');\n default:\n return 'OK';\n }\n};\n\nexport const selectCloseButtonActionIfNeed = ({\n type, cancelChatOnPP, hideAffiliatePromoPopup\n}) => {\n if (type !== purchaseDetailsTypes.SIDE_MENU\n && type !== purchaseDetailsTypes.AFFILIATE_PROMO_POPUP) {\n if (cancelChatOnPP) cancelChatOnPP();\n }\n if (type === purchaseDetailsTypes.AFFILIATE_PROMO_POPUP) {\n if (hideAffiliatePromoPopup) hideAffiliatePromoPopup();\n }\n};\n\nconst paymentOptionEventData = ({ currentPaymentOption }) => {\n if (!currentPaymentOption) return null;\n const { context, id, gatewayName } = currentPaymentOption;\n return ({\n ...paramOrNul('payment id', id),\n ...paramOrNul('cc type', (context || {}).type),\n ...paramOrNul('payment gateway', gatewayName)\n });\n};\n\nconst getChatPurchaseScreenName = ({ chatType }) => {\n switch (chatType) {\n case Const.chatType.text:\n return 'live chat';\n case Const.chatType.voice:\n return 'voice call';\n case Const.chatType.video:\n return 'video call';\n default:\n return null;\n }\n};\n\nconst hidePaymentDetailsAndCancelChatIfNeed = ({\n errorType, advisorId, loadAdvisor, hidePaymentDetails, cancelChat\n}) => {\n if (endPurchaseErrorTypes.includes(errorType)) {\n if (advisorId) loadAdvisor(getAdvisorSlug({ advisorId }));\n hidePaymentDetails();\n cancelChat();\n }\n};\n\nexport const onRetryButtonClick = ({\n purchaseResponce, hidePaymentDetails, cancelChat, history, loadAdvisor, advisorId,\n purchaseURL, startPurchaseAction, clearPurchaseAction, clearAdditionalAction\n}) => {\n const {\n errorOrigin, errorPathname, recoverable, retriable, errorType\n } = purchaseResponce;\n log(LOG_LEVELS.INFO, 'Purchase', 'Retry button clicked');\n log(LOG_LEVELS.INFO, 'Purchase', 'Retry button clicked', { recoverable, retriable });\n if (recoverable) {\n const recoverableParams = { recover: true };\n const recoverableURL = `${ errorOrigin }${ errorPathname }?${ queryString.stringify(recoverableParams) }`;\n startPurchaseAction(recoverableURL);\n } else if (retriable) {\n startPurchaseAction(purchaseURL);\n } else {\n clearPurchaseAction();\n clearAdditionalAction(false);\n }\n hidePaymentDetailsAndCancelChatIfNeed({\n errorType, advisorId, loadAdvisor, hidePaymentDetails, cancelChat\n });\n if (errorType === 'spending_limits') {\n window.onbeforeunload = null;\n history(appRoutes.spendLimits, { options: { state: { clickSource: 'popup' } } });\n window.location.reload();\n }\n log(LOG_LEVELS.INFO, 'Purchase', `retry Button click recoverable: ${ recoverable }, retriable: ${ retriable }`);\n};\n\nexport const onConfirmButton = ({\n clearPurchaseAction, setRetryCount, onPurchaseComplete\n}) => {\n clearPurchaseAction();\n setRetryCount(0);\n if (onPurchaseComplete) {\n onPurchaseComplete();\n }\n};\n\nexport const payingWithCreditCard = ({ currentPaymentOption }) => {\n if (!currentPaymentOption) { return false; }\n return currentPaymentOption.kind === 'cc';\n};\n\nconst getPurchaseBillingAgreementProperty = ({\n currentPaymentOption, hasPaypalBillingAgreement\n}) => {\n if (currentPaymentOption?.kind !== 'pp') return null;\n return { 'purchase billing agreement': hasPaypalBillingAgreement };\n};\n\nconst set3DSAuthResult = (hash, threeDAuthResult) => {\n if (!threeDAuthResult) { return hash; }\n return {\n ...hash,\n 'ThreeDS Auth Result': threeDAuthResult\n };\n};\n\nconst extraEventParamsData = ({ extraEventParams }) => {\n if (extraEventParams && extraEventParams.length === 0) return {};\n return { ...toLowerCaseSpaced(extraEventParams) };\n};\n\nexport const getPurchaseClickSource = (type, location) => {\n const mobileClickSource = (queryString.parse(window.location.search) || {}).click_source;\n return mobileClickSource || (type === purchaseDetailsTypes.SIDE_MENU ? 'add funds' : getStartChatClickSource(location));\n};\n\nexport const getPurchaseScreenProp = (type, chatType) => {\n const mobilePurchaseScreenProp = (queryString.parse(window.location.search) || {}).purchase_screen || (queryString.parse(window.location.search) || {}).click_source;\n return mobilePurchaseScreenProp || (type === purchaseDetailsTypes.SIDE_MENU ? 'credit screen' : getChatPurchaseScreenName({ chatType }));\n};\n\nexport const buildEventData = ({\n retryCount, type, purchaseAmount, bonus, hasPaypalBillingAgreement, threeDAuthResult,\n currentPaymentOption, chatType, purchaseFees, extraEventParams, location, clickSource = null\n}) => {\n const purchaseAmountFloat = parseFloat(purchaseAmount);\n return set3DSAuthResult({\n 'purchase screen': getPurchaseScreenProp(type, chatType),\n 'click source': clickSource || getPurchaseClickSource(type, location),\n credit: (purchaseAmountFloat + parseFloat(bonus) ?? 0).toFixed(2),\n 'base price': purchaseAmountFloat.toFixed(2),\n 'purchase amount': purchaseAmountFloat.toFixed(2),\n 'payment method': paymentKindToAnalyticsName(currentPaymentOption?.kind),\n ...getPurchaseBillingAgreementProperty({ currentPaymentOption, hasPaypalBillingAgreement }),\n 'purchase source': 'web',\n 'retry count': retryCount === undefined ? 0 : retryCount,\n ...paymentOptionEventData({ currentPaymentOption }),\n ...paramOrNul('purchase fees', purchaseFees || purchaseFees === 0 ? purchaseFees.toFixed(2) : null),\n ...extraEventParamsData({ extraEventParams })\n }, threeDAuthResult);\n};\n\nexport const mpTrackPurchaseStartedEvent = ({\n retryCount, conversionEventId, type, purchaseAmount, bonus, hasPaypalBillingAgreement,\n threeDAuthResult, currentPaymentOption, chatType, dispatch, purchaseFees, location\n}) => {\n dispatch(trackPurchaseStartedEvent(\n buildEventData({\n retryCount, type, purchaseAmount, bonus, hasPaypalBillingAgreement, threeDAuthResult,\n currentPaymentOption, chatType, purchaseFees, location\n }),\n conversionEventId\n ));\n};\n\nexport const mpTrackPurchaseEvent = ({\n retryCount, conversionEventId, type, purchaseAmount, bonus, hasPaypalBillingAgreement,\n threeDAuthResult, currentPaymentOption, chatType, dispatch, pathname, getUser, extraEventParams, location\n}) => {\n dispatch(trackPurchaseEvent({\n ...buildEventData({\n retryCount, type, purchaseAmount, bonus, hasPaypalBillingAgreement, threeDAuthResult,\n currentPaymentOption, chatType, extraEventParams, location\n }),\n 'local currency': 'USD'\n }, pathname, getUser, conversionEventId));\n};\n\nconst getFailReason = ({ errorType, currentPaymentOption }) => {\n if (errorType) {\n return payPalProcessingFailReason(errorType);\n }\n if (currentPaymentOption?.kind === 'ap') {\n return 'apple pay failed';\n }\n if (currentPaymentOption?.kind === 'pp') {\n return 'paypal failed';\n }\n if (currentPaymentOption?.kind === 'cc') {\n return 'credit card failed';\n }\n return 'error';\n};\n\nexport const getPurchaseFailedPropsForMobileApp = ({\n type, purchaseAmount, bonus, currentPaymentOption, chatType, purchaseFees, extraEventParams, reason, errorType, errorMessage,\n errorName, errorCode, gatewayName, spendingLimits, location\n}) => ({\n ...buildEventData({\n type, purchaseAmount, bonus,\n currentPaymentOption, chatType, purchaseFees, extraEventParams, location\n }),\n 'failed reason': reason || getFailReason({ errorType, currentPaymentOption }),\n 'payment error message': errorMessage !== undefined ? errorMessage : null,\n isCreditCard: payingWithCreditCard({ currentPaymentOption }),\n ...paramOrNul('failed reason description', errorName),\n ...paramOrNul('failed reason error code', errorCode),\n ...paramOrNul('payment gateway', gatewayName || currentPaymentOption?.gatewayName),\n ...paramOrNul('spending limits exceeded', spendingLimits),\n ...getDestination({ spendingLimits })\n});\n\nexport const mpTrackPurchaseFailedEvent = ({\n errorType, errorMessage, errorName, errorCode, gatewayName, errorPathname, threeDAuthResult,\n retryCount, type, purchaseAmount, bonus, hasPaypalBillingAgreement, currentPaymentOption,\n chatType, dispatch, reason, purchaseFees, extraEventParams, spendingLimits, location, clickSource = null\n}) => dispatch(trackPurchaseFailedEvent(\n {\n ...buildEventData({\n retryCount, type, purchaseAmount, bonus, hasPaypalBillingAgreement, threeDAuthResult,\n currentPaymentOption, chatType, purchaseFees, extraEventParams, location, clickSource\n }),\n 'failed reason': reason || getFailReason({ errorType, currentPaymentOption }),\n 'payment error message': errorMessage !== undefined ? errorMessage : null,\n isCreditCard: payingWithCreditCard({ currentPaymentOption }),\n ...paramOrNul('failed reason description', errorName),\n ...paramOrNul('failed reason error code', errorCode),\n ...paramOrNul('payment gateway', gatewayName || currentPaymentOption?.gatewayName),\n ...paramOrNul('spending limits exceeded', spendingLimits),\n ...getDestination({ spendingLimits })\n },\n errorPathname\n));\n","import React, { useCallback, useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport withPGTranslation from '../../config/withPGTranslation';\n\nfunction ReviewSection({\n advisorName, onSubmit, comment, t\n}) {\n const [text, setText] = useState('');\n\n useEffect(() => {\n setText(comment);\n }, [comment]);\n\n const onValueChanged = useCallback((e) => {\n setText(e.target.value);\n }, [comment]);\n\n return [\n <div className={ classes.divider } key=\"divider\" />,\n <div className={ classes.reviewSectionContainer } key=\"main\">\n <div className={ classes.flexDiv }>\n <div className={ classes.rateReviewSectionTitle }>{ t('rate_review.section_title') }</div>\n </div>\n <div className={ classes.flexDiv } style={ { marginBottom: 12 } }>\n <div className={ classes.advisorNameText }>{ advisorName }</div>\n </div>\n <div className={ classes.flexDiv } style={ { marginBottom: 12 } }>\n <textarea\n value={ text }\n onChange={ onValueChanged }\n placeholder={ t('rate_review.section_placeholder') }\n className={ classes.inputArea }\n rows=\"7\"\n />\n </div>\n <div className={ classes.flexDiv } style={ { marginBottom: 12 } }>\n <button\n type=\"button\"\n className={ classes.submitButton }\n onClick={ () => onSubmit(text || '') }\n >\n { t('rate_review.submit') }\n </button>\n </div>\n </div>\n ];\n}\n\nReviewSection.propTypes = {\n advisorName: PropTypes.string.isRequired,\n onSubmit: PropTypes.func.isRequired,\n comment: PropTypes.string,\n t: PropTypes.func.isRequired\n};\n\nReviewSection.defaultProps = {\n comment: null\n};\n\nexport default withPGTranslation(ReviewSection);\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { differenceInDays } from 'date-fns';\nimport classes from './classes.module.scss';\nimport RateSection from './rate_section';\nimport ReviewSection from './review_section';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport Const, { rateReviewTheme } from '../../config/const';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport { appGeneralPopupTheme } from '../../../common/config/const';\nimport Alert from '../../../common/helpers/alert';\nimport { paramOrNul } from '../../../common/config/utils';\nimport { getSessionType } from '../../actions/analytics';\n\nconst checkCanPostLikeComment = (like, comment, t) => {\n let canPost = true;\n const errors = [];\n if (like === null) {\n errors.push(t('rate_review.please_rate_the_advisor'));\n canPost = false;\n }\n if (!like && comment.length < 10) {\n errors.push(t('rate_review.please_provide_some_details_about_your_experience'));\n canPost = false;\n }\n if (like && comment.length < 3) {\n errors.push(t('rate_review.please_provide_some_details_about_your_experience'));\n canPost = false;\n }\n return { canPost, errors };\n};\n\nconst checkCanPost = (like, comment, setAlerts, t) => {\n const { canPost, errors } = checkCanPostLikeComment(like, comment, t);\n if (!canPost) {\n const uniqErrors = [...new Set(errors)];\n setAlerts([...uniqErrors]);\n }\n return canPost;\n};\n\nconst getFeedbackData = (props) => {\n const {\n like, comment, xfm, orderId, ppm, undiscountedPpm, advisorName,\n clickSource, advisorId, profileLanguage, createdAt, totalCharged, chatType, discountValue\n } = props;\n const totalChargedNumber = totalCharged ? Number(totalCharged) : undefined;\n const feedbackData = {\n ...paramOrNul('advisor name', advisorName),\n ...paramOrNul('ppm', ppm),\n ...paramOrNul('undiscounted ppm', undiscountedPpm),\n ...paramOrNul('session amount', totalChargedNumber),\n ...paramOrNul(`${ getSessionType(chatType) } charged`, totalChargedNumber || totalCharged),\n ...paramOrNul('xfm', xfm),\n ...paramOrNul('discount value', discountValue),\n ...paramOrNul('click source', clickSource),\n ...paramOrNul('advisor id', advisorId),\n ...paramOrNul('order id', orderId),\n ...paramOrNul('sentiment', like),\n ...paramOrNul('review length', comment.length),\n ...paramOrNul('chat call', chatType === Const.chatType.text),\n ...paramOrNul('voice call', chatType === Const.chatType.voice),\n ...paramOrNul('video call', chatType === Const.chatType.video),\n ...paramOrNul('profile language', profileLanguage),\n ...paramOrNul('days after order', differenceInDays(new Date(), new Date(createdAt)))\n };\n return feedbackData;\n};\n\nconst checkSendFeedback = (props) => {\n const {\n like, comment, sendOrderReview, orderId, setAlerts, t, onCancel, redirectTo\n } = props;\n if (!checkCanPost(like, comment, setAlerts, t)) return;\n const feedback = { feedbackVote: like, feedbackComment: comment };\n const feedbackData = getFeedbackData({ ...props });\n sendOrderReview(orderId, feedback, feedbackData);\n onCancel();\n if (redirectTo) redirectTo();\n};\n\nconst alertsContent = (alerts) => {\n if (alerts.length > 0) {\n return alerts.map((alert, index) => <Alert key={ index } message=\"\" errorString={ alert } banner />);\n }\n return null;\n};\n\nconst redirectIfNeed = ({ redirectTo }) => {\n if (redirectTo) redirectTo();\n};\n\nfunction RateReview({\n visible, onCancel, orderId, advisorName, sendOrderReview, totalCharged,\n existingComment, existingLike, t, clickSource, advisorId, chatType,\n profileLanguage, createdAt, redirectTo,\n theme, analytics\n}) {\n const [like, setLike] = useState(null);\n const [alerts, setAlerts] = useState([]);\n const [shouldValidate, setShouldValidate] = useState(false);\n const [comment, setComment] = useState('');\n\n useEffect(() => {\n setLike(existingLike);\n setComment(existingComment);\n }, [existingLike, existingComment]);\n\n useEffect(() => {\n if (alerts.length === 0 && shouldValidate) {\n checkSendFeedback({\n like, comment, sendOrderReview, orderId, advisorName, setAlerts, t, chatType, clickSource,\n advisorId, profileLanguage, createdAt, onCancel, redirectTo, totalCharged, ...analytics\n });\n setShouldValidate(false);\n }\n }, [alerts, shouldValidate]);\n\n const onSkipClick = () => {\n setLike(existingLike);\n setComment(existingComment);\n setAlerts([]);\n onCancel();\n redirectIfNeed({ redirectTo });\n };\n\n const onSubmit = (c) => {\n setComment(c);\n if (alerts.length > 0) {\n setAlerts([]);\n setShouldValidate(true);\n return;\n }\n checkSendFeedback({\n like, comment: c, sendOrderReview, orderId, advisorName, chatType, setAlerts, t, clickSource,\n advisorId, profileLanguage, createdAt, onCancel, redirectTo, totalCharged, ...analytics\n });\n };\n\n const renderRateReviewDEFAULT = () => (\n <AppGeneralPopup\n visible={ visible }\n closable={ onCancel }\n theme={ appGeneralPopupTheme.CENTERED }\n >\n <div className={ classes.rateReviewContainer }>\n {alertsContent(alerts)}\n <RateSection value={ like } onValueChanged={ (liked) => setLike(liked) } />\n <ReviewSection\n comment={ comment }\n advisorName={ advisorName }\n onSubmit={ onSubmit }\n />\n <div className={ classes.skipButtonContainer }>\n <button type=\"button\" className={ classes.skipButton } onClick={ onSkipClick }>\n {t('rate_review.skip')}\n </button>\n </div>\n </div>\n </AppGeneralPopup>\n\n );\n\n const renderRateReviewCHATENDED = () => (\n <div className={ classes.rateReviewCHATENDED }>\n {alertsContent(alerts)}\n <RateSection\n value={ like }\n onValueChanged={ (liked) => setLike(liked) }\n theme={ rateReviewTheme.CHAT_ENDED }\n />\n <ReviewSection\n comment={ comment }\n advisorName={ advisorName }\n onSubmit={ onSubmit }\n />\n </div>\n );\n\n return (\n <div>\n { { renderRateReviewDEFAULT, renderRateReviewCHATENDED }[`renderRateReview${ theme }`]() }\n </div>\n );\n}\n\nRateReview.propTypes = {\n visible: PropTypes.bool.isRequired,\n onCancel: PropTypes.func.isRequired,\n existingComment: PropTypes.string,\n existingLike: PropTypes.bool,\n orderId: PropTypes.number,\n advisorName: PropTypes.string.isRequired,\n sendOrderReview: PropTypes.func.isRequired,\n t: PropTypes.func.isRequired,\n clickSource: PropTypes.string,\n advisorId: PropTypes.number,\n profileLanguage: PropTypes.string,\n createdAt: PropTypes.string,\n redirectTo: PropTypes.func,\n theme: PropTypes.string,\n analytics: PropTypes.object,\n totalCharged: PropTypes.string,\n chatType: PropTypes.string\n};\n\nRateReview.defaultProps = {\n existingComment: '',\n existingLike: null,\n clickSource: null,\n advisorId: null,\n profileLanguage: null,\n createdAt: null,\n redirectTo: null,\n theme: rateReviewTheme.DEFAULT,\n analytics: null,\n orderId: null,\n totalCharged: null,\n chatType: null\n};\n\nexport default withPGTranslation(RateReview);\n","import { connect } from 'react-redux';\nimport RateReview from './rate_review';\nimport { sendOrderReview } from '../../actions/order_details';\n\nconst mapStateToProps = ({\n chat, voipChat\n}, { orderId, advisorId }) => {\n const sessionData = chat?.orderId ? chat : { ...voipChat, ...voipChat?.order };\n return {\n ...sessionData,\n orderId,\n advisorId\n };\n};\n\nexport default connect(\n mapStateToProps,\n { sendOrderReview }\n)(RateReview);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport { rateReviewTheme } from '../../config/const';\nimport { SvgIcon } from '../../../common/sprites';\nimport { isPS } from '../../../common/config/utils';\n\nconst convertValue = value => {\n if (value === true) {\n return 1;\n } if (value === false) {\n return 0;\n }\n return 2;\n};\n\nfunction FeedbackSwitcher({ value, onValueChanged, theme }) {\n return (\n <div className={ classes.feedbackSwitcherContainer }>\n <div>\n <button\n type=\"button\"\n onClick={ () => {\n onValueChanged(false);\n } }\n className={ classes[`negativeFeedbackButton${ theme }`] }\n style={ { backgroundColor: convertValue(value) === 0 ? 'var(--app-negative-feedback-btn-color)' : '#ffffff00' } }\n >\n <SvgIcon\n className={ classes[`smileyIcon${ theme }`] }\n id={ !isPS() && convertValue(value) === 0 ? 'rate_negative_selected' : 'rate_negative' }\n />\n </button>\n </div>\n <div>\n <button\n type=\"button\"\n onClick={ () => {\n onValueChanged(true);\n } }\n className={ classes[`positiveFeedbackButton${ theme }`] }\n style={ { backgroundColor: convertValue(value) === 1 ? 'var(--app-positive-feedback-btn-color)' : '#ffffff00' } }\n >\n <SvgIcon\n className={ classes[`smileyIcon${ theme }`] }\n id={ !isPS() && convertValue(value) === 1 ? 'rate_positive_selected' : 'rate_positive' }\n />\n </button>\n </div>\n </div>\n );\n}\n\nFeedbackSwitcher.propTypes = {\n onValueChanged: PropTypes.func.isRequired,\n value: PropTypes.bool,\n theme: PropTypes.string\n};\n\nFeedbackSwitcher.defaultProps = {\n value: null,\n theme: rateReviewTheme.DEFAULT\n};\n\nexport default FeedbackSwitcher;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport FeedbackSwitcher from './feeback_switcher';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport { rateReviewTheme } from '../../config/const';\nimport classes from './classes.module.scss';\n\nfunction RateSection({\n value,\n onValueChanged,\n t,\n onSmallModal,\n theme\n}) {\n const styleMarging = (marginTopSmallModal, marginBottom, marginBottomSmallModal, display) => (\n onSmallModal ? {\n marginTop: marginTopSmallModal,\n marginBottom: marginBottomSmallModal,\n display\n } : {\n marginBottom,\n display\n }\n );\n const renderRateSectionDEFAULT = () => (\n <div className={ classes.rateSectionDEFAULT }>\n <div className={ classes.flexDiv } style={ styleMarging(25, 12) }>\n <b>{ t('rate_review.title') }</b>\n </div>\n <div className={ classes.flexDiv } style={ styleMarging(5, 40) }>\n { t('rate_review.subTitle') }\n </div>\n <div style={ styleMarging(5, 20, 10, 'block') }>\n <FeedbackSwitcher value={ value } onValueChanged={ onValueChanged } />\n </div>\n </div>\n );\n\n const renderRateSectionCHATENDED = () => (\n <div className={ classes.rateSectionChatEndedContainer }>\n <div className={ classes.flexDiv } style={ styleMarging(25, 12) }>\n <div className={ classes.chatEndedTitle }>\n { t('rate_review.chat_ended_title') }\n </div>\n </div>\n <div className={ classes.flexDiv } style={ styleMarging(5, 40) }>\n <div className={ classes.chatEndedSubTitle }>\n { t('rate_review.chat_ended_subTitle1') }\n <br />\n { t('rate_review.chat_ended_subTitle2') }\n <br />\n { t('rate_review.chat_ended_subTitle3') }\n </div>\n </div>\n <div style={ styleMarging(5, 20, 10, 'block') }>\n <FeedbackSwitcher\n value={ value }\n onValueChanged={ onValueChanged }\n theme={ rateReviewTheme.CHAT_ENDED }\n />\n </div>\n </div>\n );\n return { renderRateSectionDEFAULT, renderRateSectionCHATENDED }[`renderRateSection${ theme }`]();\n}\n\nRateSection.propTypes = {\n onValueChanged: PropTypes.func.isRequired,\n value: PropTypes.bool,\n t: PropTypes.func.isRequired,\n onSmallModal: PropTypes.bool,\n theme: PropTypes.string\n};\n\nRateSection.defaultProps = {\n value: null,\n onSmallModal: false,\n theme: rateReviewTheme.DEFAULT\n};\n\nexport default withPGTranslation(RateSection);\n","// extracted by mini-css-extract-plugin\nexport default {\"ppTofModalSignUpContent\":\"ppTofModalSignUpContent--I0lkq\",\"ppTofModalSignUpButton\":\"ppTofModalSignUpButton--Imglp\",\"ppTofModalCancelButton\":\"ppTofModalCancelButton--hRBYg\",\"ppTofModalSignUpHeader\":\"ppTofModalSignUpHeader--TFI3u\",\"socialPpTofModalButtonsRow\":\"socialPpTofModalButtonsRow--TZED6\",\"socialPpTofModalContent\":\"socialPpTofModalContent--w4R9g\",\"socialPpTofModalCancelButton\":\"socialPpTofModalCancelButton--M87ee\",\"socialPpTofModalOkButton\":\"socialPpTofModalOkButton--Fh4fT\",\"socialPpTofModalText\":\"socialPpTofModalText--s6_KX\",\"confirmPpTofSwitcherRowsignUp\":\"confirmPpTofSwitcherRowsignUp--U3NrL\",\"tcpBannerText\":\"tcpBannerText--WO0Bv\",\"animation-bzdot9\":\"animation-bzdot9--psJS0\"};","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactMarkdown from 'react-markdown';\nimport classes from './classes.module.scss';\nimport AppGeneralPopup from '../../../../common/app_general_popup';\nimport { appGeneralPopupTheme } from '../../../../common/config/const';\nimport { GDPRConsernPopupThemes } from '../../../config/themes';\nimport { appLogo } from '../../../logo/logo';\nimport env from '../../../config/variables';\nimport { updateTcpBanner } from '../../../config/api';\nimport { parseAndTrackAnalyticEvents } from '../../../actions/analytics';\n\nconst {\n TCP_BANNER\n} = env;\n\nconst termsAndPoliciesUpdateViewedEvent = (tcpBanner, termsAndPpUpdateViewed, termsAndPoliciesUpdateViewed) => {\n if (tcpBanner && termsAndPpUpdateViewed && termsAndPoliciesUpdateViewed) {\n parseAndTrackAnalyticEvents({ termsAndPoliciesUpdateViewed });\n }\n};\n\nconst handleLinkClick = (url, setPrivacyPolicyClicked, setTermsOfUseClicked) => {\n if (url?.includes('privacy')) {\n setPrivacyPolicyClicked(true);\n } else setTermsOfUseClicked(true);\n};\n\nfunction GDPRConsernPopup({\n GDPRConsernPopupVisible, gdprSwitcherValueChanged, shouldShowGDPRConsent, theme,\n socialParams, authSocial, clearError, tcpBanner, onRegisterClicked, termsAndPoliciesUpdateViewed\n}) {\n const [termsOfUseClicked, setTermsOfUseClicked] = useState(false);\n const [privacyPolicyClicked, setPrivacyPolicyClicked] = useState(false);\n const [termsAndPpUpdateViewed, setTermsAndPpUpdateViewed] = useState(false);\n\n const hideGDPRConsernPopup = () => {\n shouldShowGDPRConsent({ [theme]: false });\n };\n\n useEffect(() => {\n if (tcpBanner) {\n shouldShowGDPRConsent({ [GDPRConsernPopupThemes.server]: true });\n setTermsAndPpUpdateViewed(true);\n }\n }, [tcpBanner]);\n\n useEffect(() => {\n termsAndPoliciesUpdateViewedEvent(tcpBanner, termsAndPpUpdateViewed, termsAndPoliciesUpdateViewed);\n }, [termsAndPpUpdateViewed]);\n\n const serverContentBtnOnClick = () => {\n const properties = {\n 'terms of use clicked': termsOfUseClicked,\n 'privacy policy clicked': privacyPolicyClicked\n };\n updateTcpBanner().then((payload) => {\n parseAndTrackAnalyticEvents(payload.analyticEvents, properties);\n });\n hideGDPRConsernPopup();\n gdprSwitcherValueChanged(true);\n };\n\n const regularContentBtnOnClick = () => {\n gdprSwitcherValueChanged(true);\n onRegisterClicked();\n hideGDPRConsernPopup();\n };\n\n const socialContinueOnClick = () => {\n clearError();\n gdprSwitcherValueChanged(true);\n authSocial(socialParams.socRequest, socialParams.signupFlow);\n hideGDPRConsernPopup();\n };\n\n const serverContentLinkOnClick = (href) => {\n if (href) {\n handleLinkClick(href, setPrivacyPolicyClicked, setTermsOfUseClicked);\n }\n };\n\n const renderServerContent = () => (\n <div className={ classes.ppTofModalSignUpContent }>\n <img src={ appLogo() } width={ 60 } height={ 60 } alt=\"\" />\n <div className={ classes.ppTofModalSignUpHeader }>\n {tcpBanner?.header || ''}\n </div>\n <div className={ classes.tcpBannerText }>\n <ReactMarkdown\n components={ {\n a: ({ href, children, ...props }) => (\n <a\n href={ href }\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n { ...props }\n onClick={ () => serverContentLinkOnClick(href) }\n >\n {children}\n </a>\n )\n } }\n >\n {tcpBanner?.body || ''}\n </ReactMarkdown>\n </div>\n <div className={ classes.tcpBannerText }>\n <ReactMarkdown>{tcpBanner?.description || ''}</ReactMarkdown>\n </div>\n <div>\n <button\n type=\"button\"\n onClick={ serverContentBtnOnClick }\n className={ classes.ppTofModalSignUpButton }\n >\n {tcpBanner?.button || ''}\n </button>\n </div>\n </div>\n );\n\n const renderRegularContent = () => (\n <div className={ classes.ppTofModalSignUpContent }>\n <img src={ appLogo() } width={ 60 } height={ 60 } alt=\"\" />\n <div className={ classes.ppTofModalSignUpHeader }>\n <ReactMarkdown>{TCP_BANNER.header}</ReactMarkdown>\n </div>\n <div>\n <div className={ classes.tcpBannerBodyText }>\n <ReactMarkdown\n components={ {\n a: ({ href, children, ...props }) => (\n <a\n href={ href }\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n { ...props }\n >\n {children}\n </a>\n )\n } }\n >\n {TCP_BANNER.body || ''}\n </ReactMarkdown>\n </div>\n </div>\n <div>\n <ReactMarkdown>{TCP_BANNER.description || ''}</ReactMarkdown>\n </div>\n <div>\n <button\n type=\"button\"\n onClick={ theme === GDPRConsernPopupThemes.social ? socialContinueOnClick : regularContentBtnOnClick }\n className={ classes.ppTofModalSignUpButton }\n >\n {TCP_BANNER.button}\n </button>\n <button\n type=\"button\"\n onClick={ hideGDPRConsernPopup }\n className={ classes.ppTofModalCancelButton }\n >\n {TCP_BANNER.cancel}\n </button>\n </div>\n </div>\n );\n\n const renderModalContent = () => {\n if (theme === GDPRConsernPopupThemes.server) return renderServerContent();\n return renderRegularContent();\n };\n\n const renderGDPRConsernPopup = () => (\n <AppGeneralPopup\n visible={ (GDPRConsernPopupVisible && GDPRConsernPopupVisible[theme]) || false }\n theme={ appGeneralPopupTheme.CENTERED }\n >\n {renderModalContent()}\n </AppGeneralPopup>\n );\n\n return renderGDPRConsernPopup();\n}\n\nGDPRConsernPopup.propTypes = {\n GDPRConsernPopupVisible: PropTypes.object,\n tcpBanner: PropTypes.object,\n gdprSwitcherValueChanged: PropTypes.func.isRequired,\n shouldShowGDPRConsent: PropTypes.func.isRequired,\n theme: PropTypes.string.isRequired,\n socialOriginOnClick: PropTypes.func,\n authSocial: PropTypes.func,\n onRegisterClicked: PropTypes.func,\n termsAndPoliciesUpdateViewed: PropTypes.object\n};\n\nGDPRConsernPopup.defaultProps = {\n GDPRConsernPopupVisible: null,\n socialOriginOnClick: null,\n tcpBanner: null,\n authSocial: null,\n onRegisterClicked: null,\n termsAndPoliciesUpdateViewed: null\n};\nexport default GDPRConsernPopup;\n","/* eslint-disable import/no-cycle */\nimport { connect } from 'react-redux';\nimport GDPRConsernPopup from './gdpr_consern_popup';\nimport {\n gdprSwitcherValueChanged,\n shouldShowGDPRConsent,\n authSocial,\n clearError\n} from '../../../actions/auth';\n\nconst mapStateToProps = ({\n auth: {\n consentedToGDPR, GDPRConsernPopupVisible, socialParams\n },\n user: { user, analyticProps }\n}) => ({\n consentedToGDPR,\n GDPRConsernPopupVisible,\n socialParams,\n tcpBanner: user?.tcPpBanner,\n termsAndPoliciesUpdateViewed: analyticProps?.termsAndPoliciesUpdateViewed\n});\n\nexport default connect(\n mapStateToProps,\n {\n gdprSwitcherValueChanged,\n shouldShowGDPRConsent,\n authSocial,\n clearError\n }\n)(GDPRConsernPopup);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { Link, useNavigate, useLocation } from 'react-router-dom';\nimport { appRoutes } from '../../config/app_routes';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport { useLocalizedPath } from './hooks/useLocalizedPath';\nimport { getCurrentLocalization } from '../../config/i18n';\n\nconst getUpdatedLink = (to, lang, path, location) => {\n let link = to;\n let state = { ...location.state };\n let search = '';\n if (typeof to === 'object') {\n link = to.pathname;\n state = { ...state, ...to.state };\n search = to.search || '';\n }\n\n const updatedLink = path(lang, link, to.params);\n if (updatedLink) link = updatedLink;\n\n return { link, state, search };\n};\n\nfunction AppLink({\n to, className, children, replace, onClick, alt, style, itemProp, blank, rel, reloadDocument\n}) {\n const history = useNavigate();\n const location = useLocation();\n const generatePath = useLocalizedPath();\n const lang = getCurrentLocalization();\n const { link, state, search } = getUpdatedLink(to, lang, generatePath, location);\n\n const onLinkClick = (e) => {\n if (blank) {\n e.preventDefault();\n return;\n }\n if (onClick) {\n onClick(e);\n }\n\n if (window.location.pathname === link) {\n e.preventDefault();\n history({ pathname: link, search }, { state, replace: true });\n return;\n }\n if (link === appRoutes.home) {\n window.scrollTo(0, 0);\n }\n };\n\n const renderAppLink = () => (\n <Link\n to={ `${ link }${ search || '' }` }\n state={ state }\n rel={ rel }\n className={ className }\n replace={ replace }\n onClick={ onLinkClick }\n alt={ alt }\n style={ style }\n itemProp={ itemProp }\n suppressHydrationWarning\n reloadDocument={ reloadDocument }\n >\n { children }\n </Link>\n );\n\n return renderAppLink();\n}\n\nAppLink.propTypes = {\n to: PropTypes.any,\n className: PropTypes.string,\n children: PropTypes.node,\n replace: PropTypes.bool,\n onClick: PropTypes.func,\n alt: PropTypes.string,\n style: PropTypes.object,\n itemProp: PropTypes.string,\n blank: PropTypes.bool,\n reloadDocument: PropTypes.bool\n};\n\nAppLink.defaultProps = {\n to: null,\n className: '',\n children: null,\n replace: false,\n onClick: null,\n alt: null,\n style: null,\n itemProp: null,\n blank: null,\n reloadDocument: false\n};\nconst mapStateToProps = () => ({});\n\nexport default connect(mapStateToProps, {})(withPGTranslation(AppLink));\n","import { useNavigate, useMatch } from 'react-router';\nimport { useLocalizedPath } from './useLocalizedPath';\n\nexport const useLocalizedNavigate = () => {\n const history = useNavigate();\n const match = useMatch('/:lang?/*');\n const generatePath = useLocalizedPath();\n\n return (pathKey, { params, options } = {}) => {\n if (pathKey === 0) {\n history(0);\n return;\n }\n\n const path = generatePath(match.params.lang, pathKey, params);\n\n history({ pathname: path, search: params?.search }, options);\n };\n};\n","import { generatePath } from 'react-router';\nimport i18n, { DEFAULT_LANGUAGE, SUPPORTED_LANGUAGES } from '../../../config/i18n';\nimport { findFullRouteKey, updatePathTrailingSlashes } from '../routes_helpers';\n\nexport const useLocalizedPath = (needUpdatePathTrailingSlashes = true) => (lang, key, params = {}) => {\n const matchingRouteKey = i18n.exists(key) ? key : findFullRouteKey(key);\n const matchingRoute = i18n.t(matchingRouteKey, { lng: lang });\n\n if (!matchingRoute) return null;\n\n let path = generatePath(matchingRoute, params);\n if (needUpdatePathTrailingSlashes) path = updatePathTrailingSlashes(path);\n\n if (lang === DEFAULT_LANGUAGE || !SUPPORTED_LANGUAGES.includes(lang)) {\n return path || '/';\n }\n\n return `/${ lang }${ path }`;\n};\n","import { matchPath, matchRoutes } from 'react-router';\nimport i18n, {\n DEFAULT_LANGUAGE, getCurrentLocalization, routesTranslationKeys\n} from '../../config/i18n';\nimport { isKA } from '../../../common/config/utils';\n\nexport const findMatchingRouteKey = (route, isPattern = false) => {\n for (let i = 0; i < routesTranslationKeys.length; ++i) {\n const translationObject = routesTranslationKeys[i];\n const json = i18n.t(translationObject, { returnObjects: true });\n\n const translationKey = Object.keys(json).find(key => {\n const [pattern, pathname] = isPattern ? [route, json[key]] : [json[key], route];\n return matchPath(pattern, pathname);\n });\n if (translationKey) return `${ translationObject }.${ translationKey }`;\n }\n\n return null;\n};\n\nexport const findFullRouteKey = (key) => {\n for (let i = 0; i < routesTranslationKeys.length; ++i) {\n const translationObject = routesTranslationKeys[i];\n const json = i18n.t(translationObject, { returnObjects: true });\n if (json && key in json) return `${ translationObject }.${ key }`;\n }\n return null;\n};\n\nexport const isActiveRoute = (key) => {\n const routeKey = i18n.exists(key) ? key : findFullRouteKey(key);\n const route = i18n.t(routeKey, key);\n const lang = getCurrentLocalization();\n const pattern = lang === DEFAULT_LANGUAGE ? '/:path' : '/:lang/:path';\n\n const match = matchPath(pattern, window.location.pathname);\n return `/${ match?.params.path || '' }` === route;\n};\n\nexport const updatePathTrailingSlashes = (path) => {\n const lastChar = path.slice(-1);\n\n if (isKA() && lastChar !== '/') {\n return `${ path }/`;\n }\n\n if (!isKA() && lastChar === '/') {\n return path.slice(0, -1);\n }\n\n return path;\n};\n\nexport const getCurrentPath = (routes) => {\n const [{ route, params }] = matchRoutes(routes.map(x => ({ path: `/:lang?${ i18n.t(x) }` })), window.location.pathname);\n const routeKey = findMatchingRouteKey(route.path, true);\n\n return { route, params, routeKey };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"filterContainer\":\"filterContainer--cAtoy\",\"popoverFilters\":\"popoverFilters--AdEtG\",\"filterFieldsContainer\":\"filterFieldsContainer--_gaeU\",\"itemContainer\":\"itemContainer--hU680\",\"itemHolder\":\"itemHolder--t9izx\",\"switcherContainer\":\"switcherContainer--acg4r\",\"filterButtonContainer\":\"filterButtonContainer--aIqLr\",\"displayFilterButton\":\"displayFilterButton--UaUD1\",\"displayFilterButtonImg\":\"displayFilterButtonImg--h0JsB\",\"searchButton\":\"searchButton--CioWQ\",\"dropdown\":\"dropdown--T5DJK\",\"arrowImg\":\"arrowImg--cIJN_\",\"itemTitle\":\"itemTitle--f5MSV\",\"dropdownMenu\":\"dropdownMenu--oAzsT\",\"dropdownOption\":\"dropdownOption--JXJnV\",\"selectedDropdownOption\":\"selectedDropdownOption--yDiKM\",\"sliderRoot\":\"sliderRoot--nyGR4\",\"rail\":\"rail--YVzq7\",\"sliderContainer\":\"sliderContainer--OVABC\",\"sliderLeftHandle\":\"sliderLeftHandle--IlNpY\",\"sliderRigthHandle\":\"sliderRigthHandle--J37pP\",\"sliderArrowImg\":\"sliderArrowImg--L3Iry\",\"sliderHandlePrice\":\"sliderHandlePrice--J4iHP\",\"sliderTrack\":\"sliderTrack--uciw0\",\"sliderPrices\":\"sliderPrices--eyKoG\",\"switcherTitle\":\"switcherTitle--YNN6P\",\"applyButton\":\"applyButton--lZNlc\",\"popoverContainer\":\"popoverContainer--BIW6r\",\"filterSearchContainer\":\"filterSearchContainer--DWLlf\",\"input\":\"input--zHgWu\",\"searchTitle\":\"searchTitle--AbKc3\",\"searchIcon\":\"searchIcon--ZPN2q\",\"searchIconImg\":\"searchIconImg--O4ZQe\",\"selectedPriceContainer\":\"selectedPriceContainer--ur46q\",\"newToPGSectionContainer\":\"newToPGSectionContainer--gkqi9\",\"viewForNewAffiliateUser\":\"viewForNewAffiliateUser--wetL6\",\"newToPGSectionMarksContainer\":\"newToPGSectionMarksContainer--KOjvm\",\"newToPGSectionMarkContainer\":\"newToPGSectionMarkContainer--o0DSZ\",\"newToPGSectionMarkImg\":\"newToPGSectionMarkImg--gx2pp\",\"newToPGSectionMarkTextContainer\":\"newToPGSectionMarkTextContainer--_ADkX\",\"newToPGMobileSectionContainer\":\"newToPGMobileSectionContainer--AK24e\",\"filtersFieldsContainer\":\"filtersFieldsContainer--DDlSY\",\"closeButton\":\"closeButton--FitdU\",\"clickHereBtn\":\"clickHereBtn--MENSm\",\"clickHereText\":\"clickHereText--GyYna\",\"boldText\":\"boldText--efBVW\",\"normalText\":\"normalText--qZMuL\",\"bullet\":\"bullet--hejAx\",\"mobileViewForNewAffiliateUser\":\"mobileViewForNewAffiliateUser--eisud\",\"animation-bzdot9\":\"animation-bzdot9--OkCIt\"};","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport withPGTranslation from '../../../../config/withPGTranslation';\nimport { SvgIcon } from '../../../../../common/sprites';\n\nconst handleClickAction = (e, dropdownId, setOpen, onOptionClick) => {\n if (document[dropdownId] && !document[dropdownId].parentNode.contains(e.target)) {\n e.stopPropagation();\n setOpen(false);\n }\n if (document[dropdownId] && document[dropdownId].parentNode.contains(e.target)) {\n e.stopPropagation();\n onOptionClick(e);\n }\n};\n\nfunction FilterDropdown({\n title, options, selectedOptionId, onChange, dropdownId, t\n}) {\n const [open, setOpen] = useState(false);\n\n const onOptionClick = (e) => {\n setOpen(false);\n if (e.target.id && e.target.id !== 'null' && e.target.id !== 'undefined') onChange(e.target.id);\n };\n\n const handleClick = e => {\n handleClickAction(e, dropdownId, setOpen, onOptionClick);\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClick, true);\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, []);\n\n const onDropdownClick = () => {\n setOpen(!open);\n };\n\n const dropdownMenu = () => {\n if (!open) return null;\n return (\n <div\n className={ classes.dropdownMenu }\n ref={ node => { document[dropdownId] = node; } }\n id={ `${ document[dropdownId] }` }\n >\n {Object.keys(options).map((key) => (\n <button\n key={ key }\n id={ key }\n type=\"button\"\n className={\n key === selectedOptionId ? classes.selectedDropdownOption : classes.dropdownOption\n}\n onClick={ onOptionClick }\n >\n {t(options[key])}\n </button>\n ))}\n </div>\n );\n };\n\n return (\n <div className={ classes.itemContainer }>\n <div className={ classes.itemHolder }>\n <span className={ classes.itemTitle }>\n {title}\n </span>\n <button\n type=\"button\"\n className={ classes.dropdown }\n onClick={ onDropdownClick }\n >\n { t(options[selectedOptionId]) }\n <SvgIcon id={ open ? 'filter_arrow_open' : 'filter_arrow_closed' } className={ classes.arrowImg } />\n </button>\n {dropdownMenu()}\n </div>\n </div>\n );\n}\n\nFilterDropdown.propTypes = {\n options: PropTypes.object,\n title: PropTypes.string.isRequired,\n selectedOptionId: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n dropdownId: PropTypes.string.isRequired,\n t: PropTypes.func.isRequired\n};\n\nFilterDropdown.defaultProps = {\n options: [],\n selectedOptionId: null\n};\n\nexport default withPGTranslation(FilterDropdown);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classes from '../classes.module.scss';\nimport { SvgIcon } from '../../../../../../common/sprites';\n\nfunction Handle({ handle:{ id, percent }, getHandleProps, isLeft }) {\n return (\n <div\n className={ isLeft ? classes.sliderLeftHandle : classes.sliderRigthHandle }\n { ...getHandleProps(id) }\n style={ {\n left: `${ percent }%`\n } }\n >\n <SvgIcon\n id={ isLeft ? 'slider_arrow_left' : 'slider_arrow_right' }\n className={ classes.sliderArrowImg }\n />\n\n </div>\n );\n}\nHandle.propTypes = {\n handle: PropTypes.object.isRequired,\n getHandleProps: PropTypes.func.isRequired,\n isLeft: PropTypes.bool.isRequired\n};\n\nexport default Handle;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classes from '../classes.module.scss';\n\nfunction Track({ source, target, getTrackProps }) {\n return (\n <div\n className={ classes.sliderTrack }\n style={ {\n left: `${ source.percent }%`,\n width: `${ target.percent - source.percent }%`\n } }\n { ...getTrackProps() }\n />\n );\n}\n\nTrack.propTypes = {\n source: PropTypes.object.isRequired,\n target: PropTypes.object.isRequired,\n getTrackProps: PropTypes.func.isRequired\n};\nexport default Track;\n","import React from 'react';\nimport {\n Slider, Handles, Tracks, Rail\n} from 'react-compound-slider';\nimport PropTypes from 'prop-types';\nimport classes from '../classes.module.scss';\nimport Handle from './filter_handle';\nimport Track from './slider_track';\nimport withPGTranslation from '../../../../../config/withPGTranslation';\n\nfunction FilterSlider({\n currentPPMRange, onRangeChange, t\n}) {\n const { min, max, step } = window.config.filterPricePerMinute;\n const priceValues = () => (\n <div className={ classes.sliderPrices }>\n <span>{`$${ min }`}</span>\n <span className={ classes.selectedPriceContainer }>{`$${ currentPPMRange[0] }-$${ currentPPMRange[1] }/min`}</span>\n <span>{`$${ max }`}</span>\n </div>\n );\n\n return (\n <div className={ classes.itemContainer }>\n <div className={ classes.itemHolder }>\n <span className={ classes.itemTitle }>\n { t('home_page.price_per_minute') }\n </span>\n <div className={ classes.sliderContainer }>\n <Slider\n className={ classes.sliderRoot }\n domain={ [min, max] }\n step={ step }\n values={ currentPPMRange }\n mode={ 2 }\n onUpdate={ onRangeChange }\n >\n <Rail>\n {({ getRailProps }) => (\n <div className={ classes.rail } { ...getRailProps() } />\n )}\n </Rail>\n <Handles>\n {({ handles, getHandleProps }) => (\n <div>\n {handles.map((handle, index) => (\n <Handle\n key={ handle.id }\n handle={ handle }\n getHandleProps={ getHandleProps }\n isLeft={ index === 0 }\n />\n ))}\n </div>\n )}\n </Handles>\n <Tracks right={ false } left={ false }>\n {({ tracks, getTrackProps }) => (\n <div>\n {tracks.map(({ id, source, target }) => (\n <Track\n key={ id }\n source={ source }\n target={ target }\n getTrackProps={ getTrackProps }\n />\n ))}\n </div>\n )}\n </Tracks>\n </Slider>\n {priceValues()}\n </div>\n </div>\n </div>\n );\n}\n\nFilterSlider.propTypes = {\n currentPPMRange: PropTypes.array.isRequired,\n onRangeChange: PropTypes.func.isRequired,\n t: PropTypes.func.isRequired\n};\nexport default withPGTranslation(FilterSlider);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport withPGTranslation from '../../../../config/withPGTranslation';\nimport Switch from '../../../../../common/helpers/switch';\n\nfunction FilterSwitcher({\n onChange, checked, t, filterSwitcherId\n}) {\n return (\n <div className={ classes.switcherContainer }>\n <div>\n <Switch\n id={ filterSwitcherId }\n onChange={ onChange }\n checked={ checked }\n offColor=\"#DDDDDD\"\n onColor=\"var(--app-filter-switcher-color)\"\n width={ 56 }\n height={ 29 }\n handleDiameter={ 19 }\n />\n </div>\n <div className={ classes.switcherTitle }>\n { t('home_page.show_offline_advisors') }\n </div>\n </div>\n );\n}\n\nFilterSwitcher.propTypes = {\n checked: PropTypes.bool.isRequired,\n onChange:PropTypes.func.isRequired,\n t: PropTypes.func.isRequired,\n filterSwitcherId: PropTypes.string.isRequired\n};\n\nexport default withPGTranslation(FilterSwitcher);\n","/* eslint-disable camelcase */\n/* eslint-disable jsx-a11y/no-autofocus */\nimport React from 'react';\nimport queryString from 'query-string';\nimport { Trans } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport {\n numberOfReviewsFilters, filtersAllowedParams, readingViaFilters\n} from '../../../../config/const';\nimport { paramOrNul } from '../../../../../common/config/utils';\nimport { SvgIcon } from '../../../../../common/sprites';\n\nexport const buildQueryString = ({\n readingVia, numberOfReviews, ppmRange, includeOffline, query, historySearch\n}) => {\n const parsedHistorySearch = queryString.parse(historySearch);\n let searchWithoutFilters = { };\n Object.keys(parsedHistorySearch).filter((el) => !filtersAllowedParams.includes(el))\n .forEach((el) => {\n searchWithoutFilters = { ...searchWithoutFilters, [el]: parsedHistorySearch[el] };\n });\n return queryString.stringify({\n ...(readingViaFilters[readingVia] === readingViaFilters.default ? null : { reading_via:readingVia }),\n ...(numberOfReviewsFilters[numberOfReviews] === numberOfReviewsFilters['0'] ? null : { min_number_of_reviews_ge:numberOfReviews }),\n ...(ppmRange[0] === window.config.filterPricePerMinute.min ? null : { ppm_ge: ppmRange[0] }),\n ...(ppmRange[1] === window.config.filterPricePerMinute.max ? null : { ppm_le: ppmRange[1] }),\n ...(includeOffline ? null : { include_offline: includeOffline }),\n ...paramOrNul('query', query),\n ...searchWithoutFilters\n });\n};\n\nexport const getInitialState = (state) => {\n const {\n include_offline, min_number_of_reviews_ge, ppm_ge, ppm_le, reading_via, query\n } = queryString.parse(window.location.search);\n const { min, max } = window.config.filterPricePerMinute;\n const states = {\n readingVia: reading_via || 'default',\n numberOfReviews: min_number_of_reviews_ge || '0',\n ppmRange: [ppm_ge || min, ppm_le || max],\n includeOffline: include_offline !== 'false',\n searchQuery: query\n };\n return states[state];\n};\n\nconst renderAffiliatFilterViewBullet = (iconId, localizationKey) => (\n <div className={ classes.newToPGSectionMarksContainer }>\n <div className={ classes.newToPGSectionMarkContainer }>\n <SvgIcon className={ classes.newToPGSectionMarkImg } id={ iconId } />\n <div className={ classes.bullet } />\n <div className={ classes.newToPGSectionMarkTextContainer }>\n <Trans\n i18nKey={ localizationKey }\n components={ {\n bold:<b className={ classes.boldText } />,\n normal:<span className={ classes.normalText } />\n } }\n />\n </div>\n </div>\n </div>\n);\n\nexport const renderViewForNewAffiliateUser = ({\n showFilterPopover, title, t\n}) => (\n <div className={ classes.viewForNewAffiliateUser }>\n <Trans\n i18nKey={ title }\n components={ {\n bold:<b className={ classes.boldText } />,\n normal:<span className={ classes.normalText } />\n } }\n />\n <div className={ classes.newToPGSectionMarksContainer }>\n {renderAffiliatFilterViewBullet('filter_to_new_browse', t('search_results.browse_and_find'))}\n {renderAffiliatFilterViewBullet('filter_to_new_account', t('search_results.create_an_account'))}\n {renderAffiliatFilterViewBullet('filter_to_new_connect', t('search_results.select_chat_duration_and'))}\n </div>\n <div key=\"short_view\" className={ classes.filterButtonContainer }>\n <button type=\"button\" className={ classes.displayFilterButton } onClick={ showFilterPopover }>\n {t('search_results.need_help')}\n \n <span className={ classes.clickHereBtn }>{t('search_results.click_here')}</span>\n </button>\n </div>\n </div>\n);\n\nexport const renderFiltersMobileView = ({\n popoverView, showFilterPopover, searchIconTap, t,\n eligibleForNewAffiliateUserView\n}) => {\n if (popoverView) return null;\n const title = t('app_search_results.new_to_purple_garden');\n return eligibleForNewAffiliateUserView ? (\n <div className={ classes.mobileViewForNewAffiliateUser }>\n {renderViewForNewAffiliateUser({ showFilterPopover, title, t })}\n </div>\n ) : (\n <div key=\"short_view\" className={ classes.filterButtonContainer }>\n <button type=\"button\" className={ classes.displayFilterButton } onClick={ showFilterPopover }>\n <SvgIcon id=\"filter_icon\" className={ classes.displayFilterButtonImg } />\n { t('home_page.filters') }\n </button>\n <button key=\"search_button\" type=\"button\" className={ classes.searchButton } onClick={ searchIconTap }>\n <SvgIcon id=\"black_search_icon\" className={ classes.searchIconImg } />\n </button>\n </div>\n );\n};\n\nexport const searchSection = ({\n popoverView, t, searchQuery, onSearchChanged, autofocus, onPopoverSearchInputKeyDown\n}) => {\n if (!popoverView) return null;\n return [\n <span key=\"title\" className={ classes.searchTitle }>\n { t('home_page.search_and_filters') }\n </span>,\n <div key=\"container\" className={ classes.filterSearchContainer }>\n <SvgIcon id=\"black_search_icon\" className={ classes.searchIcon } />\n <input value={ searchQuery || '' } onChange={ onSearchChanged } type=\"text\" className={ classes.input } autoFocus={ autofocus } onKeyDown={ onPopoverSearchInputKeyDown } />\n </div>\n ];\n};\n\nexport const renderCancelBtn = (showFilters, eligibleForNewAffiliateUserView, popoverView, closeFilters) => (\n showFilters && eligibleForNewAffiliateUserView && !popoverView ? (\n <button type=\"button\" className={ classes.closeButton } onClick={ closeFilters }>\n <SvgIcon id=\"circle_close_icon\" />\n </button>\n ) : null\n);\n\nexport const getFilterSwitcherId = ({ popoverView }) => {\n if (popoverView) return 'filterSwitcherPopover';\n return 'filterSwitcher';\n};\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport { useTranslation } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport FilterDropdown from './filter_dropdown';\nimport FilterSlider from './filter_slider/filter_slider';\nimport FilterSwitcher from './filter_switcher';\nimport {\n popoverKinds, readingViaFilters, numberOfReviewsFilters\n} from '../../../../config/const';\nimport withPGTranslation from '../../../../config/withPGTranslation';\nimport UsePreviousValue from '../../../../../common/config/utils';\nimport {\n getInitialState, buildQueryString, renderViewForNewAffiliateUser,\n renderCancelBtn, searchSection, renderFiltersMobileView, getFilterSwitcherId\n} from './filter_utils';\nimport { trackPageVisit } from '../../../../actions/analytics';\n\nfunction FiltersContainer({\n showPopover, popoverView, autofocus, dissmissPopover,\n history, newToPG, lastPurchaseDate, location\n}) {\n const { t } = useTranslation();\n const [readingVia, setReadingVia] = useState(getInitialState('readingVia'));\n const [numberOfReviews, setNumberOfReviews] = useState(getInitialState('numberOfReviews'));\n const [ppmRange, setPPMRange] = useState(getInitialState('ppmRange'));\n const [includeOffline, setIncludeOffline] = useState(getInitialState('includeOffline'));\n const [searchQuery, setSearchQuery] = useState(getInitialState('searchQuery'));\n const [historySearch, setHistorySearch] = useState(location.search);\n const [showFilters, setShowFilters] = useState(!newToPG);\n const eligibleForNewAffiliateUserView = !lastPurchaseDate && newToPG;\n\n const closeFilters = () => {\n setShowFilters(false);\n };\n\n const openFilters = () => {\n setShowFilters(true);\n };\n\n useEffect(() => {\n if (popoverView) trackPageVisit('search and filter');\n }, []);\n\n useEffect(() => {\n setReadingVia(getInitialState('readingVia'));\n setNumberOfReviews(getInitialState('numberOfReviews'));\n setPPMRange(getInitialState('ppmRange'));\n setIncludeOffline(getInitialState('includeOffline'));\n setSearchQuery(queryString.parse(window.location.search).query);\n setHistorySearch(location.search.replace('?', ''));\n }, [window.location.search]);\n\n useEffect(() => {\n if (window.currentUserId) setShowFilters(true);\n else if (eligibleForNewAffiliateUserView) setShowFilters(false);\n }, [window.currentUserId, newToPG]);\n\n const onReadingViaChanged = (id) => { setReadingVia(id); };\n const onNumverOfReviewsChanged = (id) => { setNumberOfReviews(id); };\n const onSliderChanged = (values) => { setPPMRange(values); };\n const onIncludeOfflineChanged = (value) => { setIncludeOffline(value); };\n\n const searchIconTap = () => {\n showPopover(popoverKinds.filter, {\n autoFocus:true, popoverId: 'searchPopover', history, location\n });\n };\n const showFilterPopover = () => {\n showPopover(popoverKinds.filter, { popoverId: 'filterPopover', history, location });\n };\n const onSearchChanged = (e) => { setSearchQuery(e.target.value); };\n\n const onFilterApply = () => {\n const prevHistorySearch = <UsePreviousValue value={ historySearch } />;\n const search = buildQueryString({\n readingVia, numberOfReviews, ppmRange, includeOffline, query: (searchQuery || '').trim(), historySearch\n });\n if (search === prevHistorySearch.props.value) return;\n history(`${ location.pathname }?${ search }`, {\n state: { needRefresh: true, params: (location.state || {}).params },\n replace: true\n });\n if (popoverView) dissmissPopover();\n };\n\n const onPopoverSearchInputKeyDown = (e) => { if (e.key === 'Enter') onFilterApply(); };\n\n const renderClickHereBtn = () => (\n <div className={ classes.clickHereText }>\n {t('search_results.need_help')}\n \n <button type=\"button\" className={ classes.clickHereBtn } onClick={ openFilters }>{t('search_results.click_here')}</button>\n </div>\n );\n\n const showNewToPGSection = () => (eligibleForNewAffiliateUserView && !popoverView ? (\n <div className={ classes.newToPGSectionContainer } style={ showFilters ? { borderBottom: '1px solid #EADDED' } : { borderBottom: 'none' } }>\n {renderViewForNewAffiliateUser({\n showFilterPopover, title: t('app_search_results.this_is_how_it_works'), t\n })}\n { showFilters ? null : renderClickHereBtn() }\n </div>\n ) : null);\n\n const renderFiltersSection = () => (\n <div className={ classes.filterFieldsContainer } style={ eligibleForNewAffiliateUserView ? { paddingTop: '0px' } : { paddingTop: '30px' } }>\n <FilterDropdown\n title={ t('home_page.show_only') }\n options={ readingViaFilters }\n selectedOptionId={ readingVia }\n onChange={ onReadingViaChanged }\n dropdownId=\"readingViaDropdown\"\n />\n <FilterDropdown\n title={ t('home_page.number_of_reviews') }\n options={ numberOfReviewsFilters }\n selectedOptionId={ numberOfReviews }\n onChange={ onNumverOfReviewsChanged }\n dropdownId=\"numberOfReviewsDropdown\"\n />\n <FilterSlider currentPPMRange={ ppmRange } onRangeChange={ onSliderChanged } />\n <FilterSwitcher\n filterSwitcherId={ getFilterSwitcherId({ popoverView }) }\n checked={ includeOffline }\n onChange={ onIncludeOfflineChanged }\n />\n <button type=\"button\" className={ classes.applyButton } onClick={ onFilterApply }>\n { t('home_page.apply') }\n </button>\n </div>\n );\n\n return [\n <div\n key=\"expanded_view\"\n className={ popoverView ? classes.popoverFilters : classes.filterContainer }\n >\n {showNewToPGSection()}\n {renderCancelBtn(showFilters, eligibleForNewAffiliateUserView, popoverView, closeFilters)}\n {searchSection({\n popoverView, t, searchQuery, onSearchChanged, autofocus, onPopoverSearchInputKeyDown\n })}\n { popoverView || showFilters ? renderFiltersSection() : null}\n </div>,\n renderFiltersMobileView({\n popoverView, showFilterPopover, searchIconTap, t, eligibleForNewAffiliateUserView\n })\n ];\n}\n\nFiltersContainer.propTypes = {\n showPopover:PropTypes.func.isRequired,\n popoverView:PropTypes.bool,\n loadAdvisors: PropTypes.func,\n autofocus: PropTypes.bool,\n dissmissPopover: PropTypes.func,\n history: PropTypes.func.isRequired,\n newToPG: PropTypes.bool.isRequired,\n lastPurchaseDate: PropTypes.string,\n location: PropTypes.object.isRequired\n};\n\nFiltersContainer.defaultProps = {\n popoverView: false,\n autofocus: false,\n dissmissPopover: null,\n lastPurchaseDate: null\n};\n\nexport default withPGTranslation(FiltersContainer);\n","import { connect } from 'react-redux';\nimport FiltersContainer from './filters_container';\nimport { showPopover, dissmissPopover } from '../../../../actions/popover';\nimport { loadAdvisors } from '../../../../actions/search_results';\n\nconst mapStateProps = ({ searchResults, application, user }) => ({\n ...searchResults,\n newToPG: application.newToPG,\n lastPurchaseDate: ((user || {}).user || {}).lastPurchaseDate\n});\n\nexport default connect(\n mapStateProps,\n {\n showPopover,\n dissmissPopover,\n loadAdvisors\n }\n)(FiltersContainer);\n","/* eslint-disable import/no-cycle */\nimport { connect } from 'react-redux';\nimport SignOut from './sign_out';\nimport { logOutAction, logOutClear } from '../../../actions/auth';\nimport withPGTranslation from '../../../config/withPGTranslation';\n\nconst mapStateProps = ({ logOut }) => ({ ...logOut });\n\nexport default connect(mapStateProps, {\n logOutAction,\n logOutClear\n})(withPGTranslation(SignOut));\n","/* eslint-disable import/no-cycle */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from '@barges/react';\nimport classes from '../classes.module.scss';\nimport { appGeneralPopupTheme } from '../../../../common/config/const';\nimport AppGeneralPopup from '../../../../common/app_general_popup';\nimport { trackPageVisit } from '../../../actions/analytics';\nimport { SvgIcon } from '../../../../common/sprites';\n\nimport '@barges/scss/lib/title.css';\nimport '@barges/scss/lib/button.css';\n\nexport const MODAL = 'modal';\nexport const SETTINGS = 'settings';\nexport default class SignOut extends PureComponent {\n static propTypes = {\n success: PropTypes.bool.isRequired,\n loading: PropTypes.bool.isRequired,\n logOutAction: PropTypes.func.isRequired,\n logOutClear: PropTypes.func.isRequired,\n t: PropTypes.func.isRequired,\n theme: PropTypes.oneOf([MODAL, SETTINGS])\n };\n\n static defaultProps = {\n theme: SETTINGS\n };\n\n state = {\n showSignOutModal: false\n };\n\n componentDidUpdate(prevProps) {\n const { success, logOutClear } = this.props;\n if (!prevProps.success && success) {\n logOutClear();\n }\n }\n\n signOutClick = () => {\n this.setState({ showSignOutModal: true });\n trackPageVisit('sign out? popup');\n };\n\n signOutCancel = () => {\n this.setState({ showSignOutModal: false });\n };\n\n signOutOk = () => {\n this.setState({ showSignOutModal: false });\n const { logOutAction } = this.props;\n logOutAction();\n };\n\n renderSingOutContent = () => {\n const { t } = this.props;\n return (\n <div className={ classes.signOutContentContainer }>\n <div className={ classes.signOutHeader }>\n <b>{ t('app_name_title') }</b>\n </div>\n <div className={ classes.signOutBody }>\n { t('settings.are_you_sure_you_want_sign_out') }\n </div>\n <div className={ classes.footer }>\n <div className={ classes.signOutYesBtnContainer }>\n <button type=\"button\" onClick={ this.signOutCancel } className={ classes.signOutCancelButton }>{ t('settings.cancel') }</button>\n </div>\n <div className={ classes.signOutCancelBtnContainer }>\n <button type=\"button\" onClick={ this.signOutOk } className={ classes.signOutYesButton }>{ t('settings.yes') }</button>\n </div>\n </div>\n </div>\n );\n };\n\n renderBoldText = (text) => (\n <div>\n <b>{ text }</b>\n </div>\n );\n\n renderSignOutButton = () => {\n const { t, theme } = this.props;\n const isModal = theme === MODAL;\n if (isModal) {\n return (\n <button\n type=\"button\"\n className = { classes.signOutButtonModal }\n onClick = { this.signOutClick }\n >\n <SvgIcon\n id=\"popover_logout\"\n size={ 24 }\n />\n <div className={ isModal ? classes.modalSignOutText : '' }>{ t('settings.sign_out') }</div>\n </button>\n );\n }\n const icon = (\n <SvgIcon\n size={ 24 }\n id=\"sign_out\"\n className = { classes.signOutImage }\n />\n );\n return (\n <div className={ classes.signOutButton }>\n <Button type=\"secondary\" title={ t('settings.sign_out') } onClick={ this.signOutClick } icon={ icon } />\n </div>\n );\n };\n\n render() {\n const { showSignOutModal } = this.state;\n const { theme } = this.props;\n const isModal = theme === MODAL;\n return (\n <div className={ isModal ? classes.signOutContainerModal : classes.signOutContainer }>\n { this.renderSignOutButton() }\n <AppGeneralPopup\n visible={ showSignOutModal }\n closable={ this.signOutCancel }\n theme={ appGeneralPopupTheme.CENTERED }\n >\n { this.renderSingOutContent()}\n </AppGeneralPopup>\n </div>\n );\n }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"psychicApplyHerModalContent\":\"psychicApplyHerModalContent--aNfXC\",\"psychicApplyHerModalXContent\":\"psychicApplyHerModalXContent--dxzih\",\"psychicApplyHerModalXButton\":\"psychicApplyHerModalXButton--Aule6\",\"psychicApplyHerModalHeader\":\"psychicApplyHerModalHeader--EBUK7\",\"psychicApplyHerModalBody\":\"psychicApplyHerModalBody--C4CrC\",\"psychicApplyHerModalLink\":\"psychicApplyHerModalLink--UCYzL\",\"psychicApplyHerModalButton\":\"psychicApplyHerModalButton--qCCld\",\"menuDividers\":\"menuDividers--h4pYW\",\"languageSign\":\"languageSign--Pbkf9\",\"cashbackInactive\":\"cashbackInactive--U6U3V\",\"cashbackActive\":\"cashbackActive--Az1n4\",\"sideMenu\":\"sideMenu--R0V7n\",\"sideMenuHeaderLogoContainer\":\"sideMenuHeaderLogoContainer--eIAbI\",\"sideMenuItem\":\"sideMenuItem--FyNlr\",\"actionLink\":\"actionLink--oHWCL\",\"menuItemIcon\":\"menuItemIcon--yHghL\",\"sideMenuItemTitleContainer\":\"sideMenuItemTitleContainer--by7j7\",\"menuItemTitle\":\"menuItemTitle--CfEBu\",\"menuItemTitleActive\":\"menuItemTitleActive--_D_TW\",\"menuItemTitleBold\":\"menuItemTitleBold--CHLiN\",\"menuItemTitleBoldActive\":\"menuItemTitleBoldActive--pVeFk\",\"sideMenuItemContainer\":\"sideMenuItemContainer--vPSZ1\",\"badgeContainer\":\"badgeContainer--wAcKG\",\"drawer\":\"drawer--hV7On\",\"drawerMask\":\"drawerMask--mXhDM\",\"animation-bzdot9\":\"animation-bzdot9--FzEvA\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport AppLink from '../routes/app_link';\nimport classes from './classes.module.scss';\nimport { isKA } from '../../../common/config/utils';\n\nconst { shared } = window;\n\nconst getMenuItemClass = (title) => {\n if (isKA()) {\n return title.active ? classes.menuItemTitleBoldActive : classes.menuItemTitleBold;\n }\n return title.active ? classes.menuItemTitleActive : classes.menuItemTitle;\n};\n\nconst renderContent = (icon, title, extraNode, rightPos, onClick) => (\n <div\n className={ classes.sideMenuItemContainer }\n onClick={ onClick }\n onKeyDown={ onClick }\n suppressHydrationWarning\n >\n\n <div className={ classes.sideMenuItemTitleContainer } suppressHydrationWarning>\n { icon }\n <div className={ getMenuItemClass(title) } suppressHydrationWarning>\n { title.text || title }\n </div>\n </div>\n { extraNode || null }\n </div>\n);\n\nconst renderInnerLink = (linkTo, icon, title, extraNode, rightPos) => (\n <AppLink\n to={ linkTo }\n className={ classes.actionLink }\n activeStyle={ { color: shared.appcolor } } // activeClassName - doesn't work\n >\n { renderContent(icon, title, extraNode, rightPos) }\n </AppLink>\n);\n\nconst renderRemoteLink = (linkTo, icon, title, extraNode, rightPos, openInNewTab) => (\n openInNewTab ? (\n <a href={ linkTo } target=\"_blank\" rel=\"noopener noreferrer\" className={ classes.actionLink }>\n { renderContent(icon, title, extraNode, rightPos) }\n </a>\n ) : (\n <a href={ linkTo } className={ classes.actionLink }>\n { renderContent(icon, title, extraNode, rightPos) }\n </a>\n )\n);\n\nconst renderActionLink = (icon, title, extraNode, rightPos, onClick) => (\n <div className={ classes.actionLink } suppressHydrationWarning>\n { renderContent(icon, title, extraNode, rightPos, onClick) }\n </div>\n);\n\nfunction MenuItem({\n title, icon, linkTo, extraNode, rightPos, asHref, onClick, openInNewTab\n}) {\n const renderItem = () => {\n if (onClick) {\n return renderActionLink(icon, title, extraNode, rightPos, onClick);\n }\n return asHref\n ? renderRemoteLink(linkTo, icon, title, extraNode, rightPos, openInNewTab)\n : renderInnerLink(linkTo, icon, title, extraNode, rightPos);\n };\n return (<div className={ classes.sideMenuItem }>{ renderItem() }</div>);\n}\n\nMenuItem.propTypes = {\n title: PropTypes.object.isRequired,\n icon: PropTypes.node,\n linkTo: PropTypes.any,\n extraNode: PropTypes.node,\n rightPos: PropTypes.bool,\n asHref: PropTypes.bool,\n openInNewTab: PropTypes.bool,\n onClick: PropTypes.func\n};\n\nMenuItem.defaultProps = {\n icon: null,\n extraNode: null,\n linkTo: null,\n rightPos: false,\n asHref: false,\n openInNewTab: false,\n onClick: null\n};\n\nexport default MenuItem;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"container--q0T1I\",\"badgeContainer\":\"badgeContainer--_Pi8K\",\"badgeContainerAsChild\":\"badgeContainerAsChild--b4TLn\",\"badgeText\":\"badgeText--AprDR\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport classes from './classes.module.scss';\n\nconst renderBadge = (count, overflowCount, visible, customClass) => (count > 0 && visible ? (\n <div className={ classnames(classes.badgeContainer, customClass) } />\n\n) : null);\n\nconst renderBadgeAroundAComponent = (count, overflowCount, children, visible, customClass) => (\n <div className={ classes.container }>\n <div>{children}</div>\n {renderBadge(\n count,\n overflowCount,\n visible,\n classnames(classes.badgeContainerAsChild, customClass)\n )}\n </div>\n);\n\nfunction Badge({\n count, overflowCount, children, visible, customClass\n}) {\n return children\n ? renderBadgeAroundAComponent(count, overflowCount, children, visible, customClass)\n : renderBadge(count, overflowCount, visible, customClass);\n}\n\nBadge.propTypes = {\n count: PropTypes.number.isRequired,\n overflowCount: PropTypes.number,\n children: PropTypes.node,\n visible: PropTypes.bool,\n customClass: PropTypes.string\n};\n\nBadge.defaultProps = {\n overflowCount: 99,\n visible: true,\n children: null,\n customClass: null\n};\n\nexport default Badge;\n","import Badge from './badge';\n\nexport default Badge;\n","// extracted by mini-css-extract-plugin\nexport default {\"badgeContainer\":\"badgeContainer--Wa2jc\"};","import { connect } from 'react-redux';\nimport Badge from '../../badge';\nimport classes from './classes.module.scss';\n\nconst mapStateToProps = ({ myOrders: { myOrders } }) => ({\n count: (myOrders && myOrders.needReview && myOrders.needReview.length) || 0,\n customClass: classes.badgeContainer\n});\n\nexport default connect(mapStateToProps)(Badge);\n","// extracted by mini-css-extract-plugin\nexport default {\"messageImage\":\"messageImage--HcXLS\",\"messageContainer\":\"messageContainer--emelr\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport { SvgIcon } from '../../../../common/sprites';\n\nconst renderMessages = count => (\n <div className={ classes.messageContainer }>\n <SvgIcon size={ 18 } className={ classes.messageImage } id=\"message_count_badge_icon\" />\n { count }\n </div>\n);\n\nfunction MessageCountBadge({ count }) {\n return <div>{count > 0 ? renderMessages(count) : null}</div>;\n}\n\nMessageCountBadge.propTypes = {\n count: PropTypes.number\n};\n\nMessageCountBadge.defaultProps = {\n count: 0\n};\n\nexport default MessageCountBadge;\n","import { connect } from 'react-redux';\nimport MessageCountBadge from './message_count_badge';\n\nconst mapStateToProps = ({ user: { user } }) => ({\n count: user && user.badgeCounters?.unreadMessagesCountTotal\n});\n\nexport default connect(mapStateToProps)(MessageCountBadge);\n","// extracted by mini-css-extract-plugin\nexport default {\"specialitiesArrow\":\"specialitiesArrow--BQXS4\",\"specialitiesContainer\":\"specialitiesContainer--oD0fK\",\"specialitiesArrowBtn\":\"specialitiesArrowBtn--LObqA\",\"specialitiesArrowBtnLogedIn\":\"specialitiesArrowBtnLogedIn--I4QvO\",\"animation-bzdot9\":\"animation-bzdot9--Fki8v\"};","/* eslint-disable import/no-cycle */\nimport React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { useLocation } from 'react-router';\nimport MenuItem from '../menu_item';\nimport { renderSideMenuIcon } from '../side_menu';\nimport { specialitiesClickSource } from '../../../config/const';\nimport { dynamicRoutes, dynamicRoutesKeys, getSpecialitiesRoutes } from '../../../config/app_routes';\nimport classes from './classes.module.scss';\nimport { isKA } from '../../../../common/config/utils';\nimport { getCurrentLocalization } from '../../../config/i18n';\nimport { isActiveRoute } from '../../routes/routes_helpers';\nimport { useCurrentPath } from '../../routes/hooks/useCurrentPath';\nimport { SvgIcon } from '../../../../common/sprites';\n\nconst sideMenuArrow = (iconToUse) => (\n <SvgIcon id={ iconToUse } className={ classes.specialitiesArrow } />\n);\n\nconst renderSideMenuSpecialitiesArrow = (specialitiesShow) => {\n const iconName = 'specialities_arrow';\n const iconToUse = specialitiesShow ? `${ iconName }_top` : `${ iconName }_down`;\n return (\n <div className={ isKA() ? classes.specialitiesArrowBtn : null }>\n {sideMenuArrow(iconToUse)}\n </div>\n );\n};\n\nconst getSpecialitiesStyle = () => {\n if (isKA()) return { width: '24px', height: '24px' };\n return {};\n};\n\nconst getNeedChekActive = () => {\n if (isKA()) return false;\n return true;\n};\n\nconst renderSpecialities = (specialities) => {\n if (!specialities) return null;\n return (\n specialities.map((s) => (\n <MenuItem\n key={ s.id + s.name }\n title={ { text: s.name, active: isActiveRoute(s.slug) } }\n icon={ renderSideMenuIcon({\n iconName: s.iconName, path: s.slug, needChekActive: getNeedChekActive(), style: getSpecialitiesStyle()\n }) }\n linkTo={ {\n pathname: s.slug,\n state: {\n needRefresh: true,\n trackCategoryEvent: true,\n clickSource: specialitiesClickSource.menu,\n params: s.params\n }\n } }\n />\n ))\n );\n};\n\nfunction SpecialitiesMenuItem({ userId, t }) {\n const { routeKey } = useCurrentPath();\n const [specialitiesShow, setSpecialitiesShow] = useState(\n dynamicRoutesKeys.includes(routeKey)\n );\n\n const showSpecialities = () => {\n setSpecialitiesShow(!specialitiesShow);\n };\n\n const currentLang = getCurrentLocalization();\n const location = useLocation();\n\n // needed to update isActive property on changing routes\n useEffect(() => { }, [location.pathname]);\n\n const userLoggedIn = userId;\n\n const specialities = getSpecialitiesRoutes()\n .map(key => ({ ...dynamicRoutes[key], ...dynamicRoutes[key].translations?.[currentLang], slug: key }));\n\n const renderSpecialitiesMenuItem = () => {\n if (userLoggedIn) {\n return (\n <>\n <MenuItem\n title={ { text: t('sideMenu.specialities') } }\n icon={ renderSideMenuIcon({ iconName: 'specialities_menu_icon', path: ' ' }) }\n onClick={ showSpecialities }\n extraNode={ renderSideMenuSpecialitiesArrow(specialitiesShow) }\n />\n {specialitiesShow ? (\n <div className={ classes.specialitiesContainer }>\n {renderSpecialities(specialities)}\n </div>\n ) : null}\n </>\n );\n }\n return renderSpecialities(specialities);\n };\n\n return renderSpecialitiesMenuItem();\n}\n\nSpecialitiesMenuItem.propTypes = {\n t: PropTypes.func.isRequired,\n specialities: PropTypes.array\n};\n\nSpecialitiesMenuItem.defaultProps = {\n specialities: null\n};\n\nexport default SpecialitiesMenuItem;\n","/* eslint-disable import/no-cycle */\nimport { connect } from 'react-redux';\nimport withPGTranslation from '../../../config/withPGTranslation';\nimport SpecialitiesMenuItem from './specialities_menu_item';\n\nconst mapStateToProps = ({\n user\n}) => ({\n userId: user && user.user && user.user.id\n});\n\nexport default connect(mapStateToProps, {})(withPGTranslation(SpecialitiesMenuItem));\n","import { appLogo } from '../../logo/logo';\n\nconst { shared } = window;\n\nexport const componentStyles = {\n appLogo: 'appLogo',\n sideMenuIcon: 'sideMenuIcon',\n titleColor: 'titleColor',\n joinButton: 'joinButton',\n mainContainer: 'mainContainer',\n headerTitle: 'headerTitle',\n profileInfoContainer: 'profileInfoContainer',\n headerContainer: 'headerContainer',\n signIn: 'signIn'\n};\n\nconst transparentStyles = {\n [componentStyles.appLogo]: appLogo(),\n [componentStyles.sideMenuIcon]: 'header_menu_transparent',\n [componentStyles.titleColor]: { color: '#FFFFFF' },\n\n [componentStyles.joinButton]: {\n backgroundColor: shared.appColor,\n borderColor: '',\n borderStyle: 'none',\n borderRadius: 'var(--app-default-btn-md-border-radius)'\n },\n [componentStyles.mainContainer]: {\n backgroundColor: '#FFFFFF00',\n borderBottomStyle:'none',\n borderBottomWidth: '0',\n borderBottomColor: 'none'\n },\n [componentStyles.headerTitle]: {\n color: '#FFFFFF'\n },\n [componentStyles.profileInfoContainer]: {\n color: '#FFFFFF'\n },\n [componentStyles.signIn]: {\n color: '#FFFFFF'\n }\n};\n\nconst regularStyles = {\n [componentStyles.appLogo]: appLogo(),\n [componentStyles.sideMenuIcon]: 'header_menu',\n [componentStyles.titleColor]: { color: '#000000' },\n\n [componentStyles.joinButton]: {\n backgroundColor: shared.appColor,\n borderColor: '',\n borderStyle: 'none',\n borderRadius: 'var(--app-default-btn-md-border-radius)'\n },\n [componentStyles.mainContainer]: {\n backgroundColor: '#FFFFFF',\n borderBottomStyle: 'solid',\n borderBottomWidth: '1px',\n borderBottomColor: '#D6D6D6'\n },\n [componentStyles.headerTitle]: {\n color: '#000000'\n },\n [componentStyles.profileInfoContainer]: {\n color: '#000000'\n },\n [componentStyles.headerContainer]: {\n backgroundColor: '#FFFFFF',\n borderBottom: '1px solid #E4E4E4'\n },\n [componentStyles.signIn]: {\n color: '#000000'\n }\n};\n\nexport const getComponentStyle = (transparent, component) => (\n transparent ? transparentStyles[component] : regularStyles[component]);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport Badge from '../badge';\nimport AppLink from '../routes/app_link';\nimport { getComponentStyle, componentStyles } from './component_styles';\nimport { appLogo } from '../../logo/logo';\nimport { SvgIcon } from '../../../common/sprites';\nimport { appRoutes } from '../../config/app_routes';\n\nconst logo = window.config.logo.url;\n\nconst getAltLogo = ({ t }) => {\n const altLogo = window.config.logo.alt_text;\n if (altLogo) return altLogo;\n return `${ t('app_name_title').toLowerCase() } live psychic readings`;\n};\n\nconst renderLogoImg = ({ itemPropImage, t }) => (\n <img\n src= { logo || appLogo() }\n alt= { getAltLogo({ t }) }\n className={ classes.logoImg }\n itemProp={ itemPropImage.imageContentUrl }\n suppressHydrationWarning\n />\n);\n\nconst renderLogoMeta = (itemPropImage) => {\n if (!itemPropImage.meta) return null;\n return Object.keys(itemPropImage.meta).map((meta) => itemPropImage.meta[meta]);\n};\n\nconst renderLogo = ({ onSideMenu, itemProp, t }) => {\n if (onSideMenu) return null;\n const itemPropImage = (itemProp || {}).image || {};\n return (\n <span\n className={ classes.headerLogoH1Container }\n itemProp={ itemPropImage.imageItemProp }\n itemScope= { itemPropImage.itemScope }\n itemType= { itemPropImage.itemType }\n >\n { renderLogoImg({ itemPropImage, t }) }\n { renderLogoMeta(itemPropImage) }\n </span>\n );\n};\n\nfunction HeaderLogo({\n toggleDrawer, sideMenuIcon, badgeCount, transparent, onSideMenu, itemProp\n}) {\n const { t } = useTranslation();\n return (\n <div className={ classes.headerLogoContainer } suppressHydrationWarning>\n <button type=\"button\" onClick={ toggleDrawer } className={ classes.menuButton } suppressHydrationWarning>\n <SvgIcon id={ sideMenuIcon } className={ classes.menuButtonImg } suppressHydrationWarning />\n <Badge customClass={ classes.badge } count={ badgeCount || 0 } suppressHydrationWarning />\n </button>\n <AppLink to={ appRoutes.home } className={ classes.headerLink }>\n <div>\n { renderLogo({ onSideMenu, itemProp, t }) }\n </div>\n <div suppressHydrationWarning style={ onSideMenu ? { display: 'none' } : {} }>\n <div\n suppressHydrationWarning\n className={ classes.headerTitle }\n style={ getComponentStyle(transparent, componentStyles.headerTitle) }\n >\n {t('logo_text')}\n <div className={ classes.headerTitleTM }>TM</div>\n </div>\n </div>\n </AppLink>\n </div>\n );\n}\n\nHeaderLogo.propTypes = {\n toggleDrawer: PropTypes.func.isRequired,\n sideMenuIcon: PropTypes.string.isRequired,\n badgeCount: PropTypes.number,\n transparent: PropTypes.bool,\n onSideMenu: PropTypes.bool,\n itemProp: PropTypes.object\n};\n\nHeaderLogo.defaultProps = {\n badgeCount: null,\n transparent: false,\n onSideMenu: null,\n itemProp: null\n};\n\nexport default HeaderLogo;\n","/* eslint-disable import/no-cycle */\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { createPortal } from 'react-dom';\nimport MenuItem from './menu_item';\nimport MyOrdersBadge from '../header/my_orders_badge';\nimport MessageCountBadge from '../header/message_count_badge';\nimport SpecialitiesMenuItem from './specialities_menu_item';\nimport classes from './classes.module.scss';\nimport { appLinks } from '../../config/const';\nimport HeaderLogo from '../header/header_logo';\nimport { getCurrentLocalization, DEFAULT_LANGUAGE } from '../../config/i18n';\nimport { appRoutes } from '../../config/app_routes';\nimport { isKA, isPGW } from '../../../common/config/utils';\nimport ChangeLanguage from '../change_language';\nimport { isActiveRoute } from '../routes/routes_helpers';\nimport { getRouteSettings } from '../../config/util';\nimport { SvgIcon } from '../../../common/sprites';\n\nconst sideMenuIconNames = {\n home: 'home',\n promo: 'promo',\n blog: 'blog',\n language: 'language',\n cashback: 'cashback',\n support: 'support',\n forAdvisors: 'for_advisors',\n settings: 'settings',\n myOrders: 'my_orders',\n favAdvisors: 'fav_advisors',\n credit: 'credit',\n paymentSources: 'payment_sources',\n sideMenuClosed: 'side_menu_closed',\n horoscope: 'horoscope'\n};\n\nconst language = getCurrentLocalization();\n\nconst getIconToUse = ({ iconName, path, needChekActive }) => {\n let iconToUse = iconName;\n if (needChekActive) {\n const pathActive = isActiveRoute(path);\n iconToUse = pathActive ? `${ iconName }_active` : iconName;\n }\n return iconToUse;\n};\n\nexport const renderSideMenuIcon = ({\n iconName, path, needChekActive = true, style = {}\n}) => {\n if (isKA()) return null;\n const iconToUse = getIconToUse({ iconName, path, needChekActive });\n return (\n <SvgIcon id={ iconToUse } className={ classes.menuItemIcon } style={ { ...style } } />\n );\n};\n\nexport const renderChangeLanguageMenuItem = ({ t, showChangeLanguage, toggleChangeLanguagePopup }) => {\n if (isKA()) return null;\n return (\n <>\n <MenuItem\n title={ { text: t('sideMenu.language') } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.language, path: '/language' }) }\n onClick={ () => toggleChangeLanguagePopup({ show: true }) }\n extraNode={ <div className={ classes.languageSign }>{ language }</div> }\n rightPos\n />\n {createPortal(\n <ChangeLanguage\n show={ showChangeLanguage }\n onClose={ toggleChangeLanguagePopup }\n />,\n document.body\n )}\n </>\n );\n};\n\nconst renderBlogMenuItem = (t) => (isPGW() ? (\n <MenuItem\n title={ { text: t('sideMenu.blog') } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.blog, path: appLinks.blog }) }\n asHref\n linkTo={ language === DEFAULT_LANGUAGE ? appLinks.blog : `${ appLinks.blog }/${ language }` }\n openInNewTab\n />\n) : (\n <MenuItem\n title={ { text: t('sideMenu.articles') } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.blog, path: appLinks.articles }) }\n asHref\n linkTo={ appLinks.articles }\n openInNewTab\n />\n));\n\nconst renderMyHoroscopeMenuItem = (t, userLoggedIn) => (\n <>\n {!userLoggedIn ? <div className={ classes.sideMenuItem }><div className={ classes.menuDividers } /></div> : null}\n <MenuItem\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.horoscope, path: appLinks.myHoroscope, needChekActive: false }) }\n title={ { text: t('sideMenu.myHoroscope') } }\n linkTo={ appLinks.myHoroscope }\n asHref\n />\n </>\n);\n\nfunction SideMenu({\n t, isSufficientForCashback, cashbackAmount, shouldShowPayoutMethodMenuItem, toggleDrawer, visible\n}) {\n const userLoggedIn = window.currentUserId;\n const [showChangeLanguage, setShowChangeLanguage] = useState(false);\n\n const toggleChangeLanguagePopup = ({ show }) => {\n setShowChangeLanguage(show);\n };\n\n const cashbackItem = () => {\n if (!isPGW()) return null;\n return (\n <MenuItem\n title={ { text: t('sideMenu.cashback'), active: isActiveRoute(appRoutes.cashback) } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.cashback, path: appRoutes.cashback }) }\n linkTo={ appRoutes.cashback }\n extraNode={ isSufficientForCashback ? (\n <div className={\n isSufficientForCashback ? classes.cashbackActive : classes.cashbackInactive\n }\n >\n { `$${ parseFloat(cashbackAmount).toFixed(2) }` }\n </div>\n ) : null }\n />\n );\n };\n\n function renderLoggedOutSideMenu() {\n return (\n <div className={ classes.sideMenu }>\n <MenuItem\n title={ { text: t('sideMenu.home'), active: isActiveRoute(appRoutes.home) } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.home, path: appRoutes.home }) }\n linkTo={ appRoutes.home }\n />\n <div className={ classes.sideMenuItem }><div className={ classes.menuDividers } /></div>\n <SpecialitiesMenuItem />\n {renderMyHoroscopeMenuItem(t, userLoggedIn)}\n <div className={ classes.sideMenuItem }><div className={ classes.menuDividers } /></div>\n <MenuItem\n title={ { text: t('sideMenu.apply_promo_code'), active: isActiveRoute(appRoutes.promoCode) } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.promo, path: appRoutes.promoCode }) }\n linkTo={ appRoutes.promoCode }\n />\n <div className={ classes.sideMenuItem }><div className={ classes.menuDividers } /></div>\n {renderBlogMenuItem(t)}\n { renderChangeLanguageMenuItem({ t, showChangeLanguage, toggleChangeLanguagePopup }) }\n <MenuItem\n title={ { text: t('sideMenu.customer_support') } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.support, path: appLinks.customerSupport }) }\n asHref\n openInNewTab\n linkTo= { appLinks.customerSupport }\n />\n <div className={ classes.sideMenuItem }><div className={ classes.menuDividers } /></div>\n <MenuItem\n title={ { text: t('sideMenu.menu_apply_advisor') } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.forAdvisors, path: appLinks.forAdvisors }) }\n linkTo={ appLinks.forAdvisors }\n asHref\n openInNewTab\n />\n </div>\n );\n }\n\n function renderLoggedInSideMenu() {\n const favoriteRouteSettings = getRouteSettings({ routeKey: appRoutes.favoriteAdvisors });\n return (\n <div className={ classes.sideMenu }>\n <MenuItem\n title={ { text: t('sideMenu.home'), active: isActiveRoute(appRoutes.home) } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.home, path: appRoutes.home }) }\n linkTo={ appRoutes.home }\n />\n <div className={ classes.sideMenuItem }><div className={ classes.menuDividers } /></div>\n <SpecialitiesMenuItem />\n <div className={ classes.sideMenuItem }><div className={ classes.menuDividers } /></div>\n {renderMyHoroscopeMenuItem(t, userLoggedIn)}\n <MenuItem\n title={ { text: t('activity.my_activity'), active: isActiveRoute(appRoutes.myOrders) } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.myOrders, path: appRoutes.myOrders }) }\n linkTo={ appRoutes.myOrders }\n extraNode={ (\n <div className={ classes.badgeContainer }>\n <MyOrdersBadge />\n <MessageCountBadge />\n </div>\n ) }\n />\n <MenuItem\n title={ { text: t('sideMenu.favorite_advisors'), active: isActiveRoute(appRoutes.favoriteAdvisors) } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.favAdvisors, path: appRoutes.favoriteAdvisors }) }\n linkTo={ { pathname: appRoutes.favoriteAdvisors, state: { needRefresh: true, params: favoriteRouteSettings.params } } }\n />\n <MenuItem\n title={ { text: t('sideMenu.add_funds'), active: isActiveRoute(appRoutes.addFunds) } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.credit, path: appRoutes.addFunds }) }\n linkTo={ appRoutes.addFunds }\n />\n { shouldShowPayoutMethodMenuItem ? (\n <MenuItem\n title={ { text:t('sideMenu.payment_methods'), active: isActiveRoute(appRoutes.paymentSources) } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.paymentSources, path: appRoutes.paymentSources }) }\n linkTo={ appRoutes.paymentSources }\n />\n ) : null}\n {cashbackItem()}\n <div className={ classes.sideMenuItem }><div className={ classes.menuDividers } /></div>\n <MenuItem\n title={ { text: t('sideMenu.apply_promo_code'), active: isActiveRoute(appRoutes.promoCode) } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.promo, path: appRoutes.promoCode }) }\n linkTo={ appRoutes.promoCode }\n />\n <div className={ classes.sideMenuItem }><div className={ classes.menuDividers } /></div>\n {renderBlogMenuItem(t)}\n { renderChangeLanguageMenuItem({ t, showChangeLanguage, toggleChangeLanguagePopup }) }\n <MenuItem\n title={ { text: t('sideMenu.customer_support') } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.support, path: appLinks.customerSupport }) }\n asHref\n openInNewTab\n linkTo= { appLinks.customerSupport }\n />\n <MenuItem\n title={ { text: t('sideMenu.menu_apply_advisor') } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.forAdvisors, path: appLinks.forAdvisors }) }\n linkTo={ appLinks.forAdvisors }\n asHref\n openInNewTab\n />\n <MenuItem\n title={ { text: t('sideMenu.settings'), active: isActiveRoute(appRoutes.settings) } }\n icon={ renderSideMenuIcon({ iconName: sideMenuIconNames.settings, path: appRoutes.settings }) }\n linkTo={ appRoutes.settings }\n />\n </div>\n );\n }\n\n const renderContent = () => (\n <div>\n <div suppressHydrationWarning className={ classes.drawer } style={ visible ? { '--display': 'flex' } : { '--display': 'none' } }>\n <div className={ classes.sideMenuHeaderLogoContainer } suppressHydrationWarning>\n <HeaderLogo toggleDrawer={ toggleDrawer } sideMenuIcon={ sideMenuIconNames.sideMenuClosed } onSideMenu />\n </div>\n { userLoggedIn ? renderLoggedInSideMenu() : renderLoggedOutSideMenu() }\n </div>\n <div suppressHydrationWarning className={ classes.drawerMask } onClick={ toggleDrawer } onKeyDown={ toggleDrawer } style={ visible ? { '--display': 'flex' } : { '--display': 'none' } } />\n </div>\n );\n\n return renderContent();\n}\n\nSideMenu.propTypes = {\n t: PropTypes.func.isRequired,\n isSufficientForCashback: PropTypes.bool,\n cashbackAmount: PropTypes.string,\n shouldShowPayoutMethodMenuItem: PropTypes.bool.isRequired,\n toggleDrawer: PropTypes.func.isRequired,\n visible: PropTypes.bool.isRequired\n};\n\nSideMenu.defaultProps = {\n isSufficientForCashback: false,\n cashbackAmount: '0.0'\n};\n\nexport default SideMenu;\n","import { connect } from 'react-redux';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport SideMenu from './side_menu';\n\nconst mapStateToProps = ({ user }) => ({\n isSufficientForCashback: user.user ? user.user.isSufficientForCashback : false,\n cashbackAmount: user.user ? user.user.cashbackAmount : '0.0',\n shouldShowPayoutMethodMenuItem:\n user.user && user.user.settings\n ? !!user.user.settings.showPaymentMethodMenuItem : true\n});\n\nexport default connect(\n mapStateToProps\n)(withPGTranslation(SideMenu));\n","// extracted by mini-css-extract-plugin\nexport default {\"popupOverlay\":\"popupOverlay--vbYOt\",\"mobileContainer\":\"mobileContainer--Xf0GX\",\"popupContainer\":\"popupContainer--tX0ar\",\"header\":\"header--WWQnb\",\"cropperFrame\":\"cropperFrame--M53ML\",\"mobileCroperFrame\":\"mobileCroperFrame--n_nhi\",\"footer\":\"footer--yW_Ic\",\"confirmButton\":\"confirmButton--w_aLL\",\"cancelButton\":\"cancelButton--h8erj\"};","const IMAGE_SIZE = 580;\n\nconst createImage = url => new Promise((resolve, reject) => {\n const image = new Image();\n image.addEventListener('load', () => resolve(image));\n image.addEventListener('error', error => reject(error));\n image.setAttribute('crossOrigin', 'anonymous'); // needed to avoid cross-origin issues on CodeSandbox\n image.src = url;\n});\n\nexport default async function getCroppedImg(imageSrc, pixelCrop) {\n const image = await createImage(imageSrc);\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n\n const maxSize = Math.max(image.width, image.height);\n const safeArea = 2 * ((maxSize / 2) * Math.sqrt(2));\n\n // set each dimensions to double largest dimension to allow for a safe area for the\n // image to rotate in without being clipped by canvas context\n canvas.width = safeArea;\n canvas.height = safeArea;\n\n // translate canvas context to a central location on image to allow rotating around the center.\n ctx.translate(safeArea / 2, safeArea / 2);\n ctx.translate(-safeArea / 2, -safeArea / 2);\n\n // draw rotated image and store data.\n ctx.drawImage(\n image,\n safeArea / 2 - image.width * 0.5,\n safeArea / 2 - image.height * 0.5\n );\n const data = ctx.getImageData(0, 0, safeArea, safeArea);\n\n // set canvas width to final desired crop size - this will clear existing context\n canvas.width = pixelCrop.width;\n canvas.height = pixelCrop.height;\n\n // paste generated rotate image with correct offsets for x,y crop values.\n ctx.putImageData(\n data,\n 0 - safeArea / 2 + image.width * 0.5 - pixelCrop.x,\n 0 - safeArea / 2 + image.height * 0.5 - pixelCrop.y\n );\n\n ctx.width = IMAGE_SIZE;\n ctx.height = IMAGE_SIZE;\n // As Base64 string\n // return canvas.toDataURL('image/jpeg');\n\n // As a blob\n return new Promise(resolve => {\n canvas.toBlob(file => {\n resolve(file);\n }, 'image/jpeg');\n });\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"antSliderHandle\":\"antSliderHandle--JOZx7\",\"sliderTrack\":\"sliderTrack--gVh_a\",\"sliderRoot\":\"sliderRoot--xKkOa\",\"rail\":\"rail--HmXQ1\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Slider, Handles, Tracks, Rail\n} from 'react-compound-slider';\nimport classes from './classes.module.scss';\n\nfunction CustomSlider({\n min, max, step, value, onUpdate\n}) {\n const onSliderUpdate = (v) => {\n onUpdate(v[0]);\n };\n\n const renderCustomSlider = () => (\n <Slider\n className={ classes.sliderRoot }\n domain={ [min, max] }\n step={ step }\n values={ [value] }\n onUpdate={ onSliderUpdate }\n >\n <Rail>\n {({ getRailProps }) => (\n <div className={ classes.rail } { ...getRailProps() } />\n )}\n </Rail>\n <Handles>\n {({ handles, getHandleProps }) => (\n <div>\n {handles.map((handle, index) => (\n <div\n key={ index }\n className={ classes.antSliderHandle }\n style={ {\n left: `${ handle.percent }%`\n } }\n { ...getHandleProps(handle.id) }\n />\n ))}\n </div>\n )}\n </Handles>\n <Tracks right={ false }>\n {({ tracks, getTrackProps }) => (\n <div>\n {tracks.map(({ id, source, target }) => (\n <div\n key={ id }\n className={ classes.sliderTrack }\n style={ {\n left: `${ source.percent }%`,\n width: `${ target.percent - source.percent }%`\n } }\n { ...getTrackProps() }\n />\n ))}\n </div>\n )}\n </Tracks>\n </Slider>\n );\n\n return renderCustomSlider();\n}\n\nCustomSlider.propTypes = {\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n step: PropTypes.number.isRequired,\n value: PropTypes.number.isRequired,\n onUpdate: PropTypes.func.isRequired\n};\n\nCustomSlider.defaultProps = {\n className: null\n};\n\nexport default CustomSlider;\n","import CustomSlider from './custom_sliderder';\n\nexport default (CustomSlider);\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactCrop from 'react-easy-crop';\nimport { isMobile } from 'react-device-detect';\nimport classes from './classes.module.scss';\nimport getCroppedImage from './crop_image_util';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport { log, LOG_LEVELS } from '../../../common/config/app_logger';\nimport Spiner from '../../../common/helpers/spiner';\nimport CustomSlider from '../../../common/helpers/custom_sliderder';\nimport { hideBodyScroll, unlockBodyScroll } from '../../../common/config/utils';\nimport AppGeneralPopup from '../../../common/app_general_popup';\nimport { appGeneralPopupTheme } from '../../../common/config/const';\n\nconst { shared } = window;\n\nfunction Cropper({\n file, onCropFinished, onCancel, visible, loading, t\n}) {\n const [crop, onCropChange] = useState({ x: 0, y: 0 });\n const [zoom, onZoomChange] = React.useState(1);\n const [croppedArea, setCroppedArea] = useState(null);\n const [extracting, setExtracting] = useState(false);\n\n useEffect(() => {\n if (visible) {\n hideBodyScroll();\n } else unlockBodyScroll();\n }, [visible]);\n\n const onCropComplete = (area, croppedAreaPixels) => {\n log(LOG_LEVELS.DEBUG, 'Cropper', 'on crop complete');\n setCroppedArea(croppedAreaPixels);\n };\n\n const extractCropedImage = async () => {\n log(LOG_LEVELS.DEBUG, 'Cropper', 'extracting croped image');\n setExtracting(true);\n const croppedIMG = await getCroppedImage(file, croppedArea);\n setExtracting(false);\n onCropFinished(croppedIMG);\n };\n\n const renderLoading = () => {\n if (!loading && !extracting) return null;\n return <Spiner loaderColor={ shared.appColor } />;\n };\n\n const renderHeader = () => (\n <div className={ classes.header }>\n { t('settings.add_profile_image') }\n </div>\n );\n\n const renderSlider = () => (\n <div style={ { width: '50%' } }>\n <CustomSlider\n min={ 1 }\n max={ 3 }\n step={ 0.1 }\n value={ zoom }\n onUpdate={ onZoomChange }\n />\n </div>\n );\n\n const renderFooter = () => (\n <div className={ classes.footer }>\n { renderSlider() }\n <div>\n <button\n type=\"button\"\n className={ classes.cancelButton }\n onClick={ onCancel }\n >\n { t('settings.cancel') }\n </button>\n <button\n type=\"button\"\n className={ classes.confirmButton }\n onClick={ extractCropedImage }\n >\n { t('settings.save') }\n </button>\n </div>\n </div>\n );\n\n const renderCroper = () => (\n <ReactCrop\n image={ file }\n crop={ crop }\n zoom={ zoom }\n onCropChange={ onCropChange }\n onZoomChange={ onZoomChange }\n onCropComplete={ onCropComplete }\n />\n );\n\n const renderMobileCropperContent = () => (\n <div className={ classes.mobileContainer }>\n { renderHeader() }\n { renderLoading() }\n <div className={ classes.mobileCroperFrame }>\n { renderCroper() }\n </div>\n { renderFooter() }\n </div>\n );\n\n const renderCropperContent = () => (\n <div className={ classes.popupContainer }>\n { renderLoading() }\n { renderHeader() }\n <div className={ classes.cropperFrame }>\n { renderCroper() }\n </div>\n { renderFooter() }\n </div>\n );\n\n return (\n <AppGeneralPopup needOpenOnAppRoot visible={ visible } theme={ appGeneralPopupTheme.JUMIO_POPOVER }>\n {isMobile ? renderMobileCropperContent() : renderCropperContent()}\n </AppGeneralPopup>\n );\n}\n\nCropper.propTypes = {\n file: PropTypes.string,\n onCropFinished: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n visible: PropTypes.bool.isRequired,\n loading: PropTypes.bool.isRequired,\n t: PropTypes.func.isRequired\n};\n\nCropper.defaultProps = {\n file: null\n};\n\nexport default withPGTranslation(Cropper);\n","import Cropper from './cropper';\n\nexport default Cropper;\n","// extracted by mini-css-extract-plugin\nexport default {\"button\":\"button--HxDTz\"};","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\n\nfunction FilePicker({ onFilePicked, children }) {\n const inputFile = useRef(null);\n\n const onAvatartClicked = () => {\n inputFile.current.click();\n };\n\n const inputOnPick = (e) => {\n if (e.target.files.length === 0) return;\n onFilePicked({ file: e.target.files[0] });\n e.target.value = null;\n };\n\n return (\n <button type=\"button\" onClick={ onAvatartClicked } className={ classes.button }>\n {children}\n <input\n ref={ inputFile }\n type=\"file\"\n id=\"avatar\"\n name=\"avatar\"\n accept=\"image/png, image/jpeg\"\n style={ { display: 'none' } }\n onChange={ inputOnPick }\n suppressHydrationWarning\n />\n </button>\n );\n}\n\nFilePicker.propTypes = {\n onFilePicked: PropTypes.func,\n children: PropTypes.node.isRequired\n};\n\nFilePicker.defaultProps = {\n onFilePicked: null\n};\n\nexport default FilePicker;\n","import FilePicker from './file_picker';\n\nexport default FilePicker;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Cropper from '../crop';\nimport FilePicker from '../file_picker';\nimport { log, LOG_LEVELS } from '../../../common/config/app_logger';\n\nfunction UserAvatarPicker({\n children, uploadUserAvatar, success, loading\n}) {\n const [pickedFile, setPickedFile] = useState(null);\n\n useEffect(() => {\n if (!success) return;\n setPickedFile(null);\n }, [success]);\n\n const onModalCancel = () => {\n log(LOG_LEVELS.INFO, 'Picker', 'picker cancel');\n setPickedFile(null);\n };\n\n const filePicked = ({ file }) => {\n log(LOG_LEVELS.INFO, 'Picker', 'file picked');\n setPickedFile(URL.createObjectURL(file));\n };\n\n const onFileCropped = croppedFile => {\n log(LOG_LEVELS.INFO, 'Picker', 'file cropped');\n uploadUserAvatar(croppedFile);\n setPickedFile(null);\n };\n\n return (\n <>\n <FilePicker onFilePicked={ filePicked }>{children}</FilePicker>\n <Cropper\n file={ pickedFile }\n onCropFinished={ onFileCropped }\n onCancel={ onModalCancel }\n visible={ !!pickedFile }\n loading={ loading }\n />\n </>\n );\n}\n\nUserAvatarPicker.propTypes = {\n children: PropTypes.node.isRequired,\n uploadUserAvatar: PropTypes.func.isRequired,\n success: PropTypes.bool,\n loading: PropTypes.bool.isRequired\n};\n\nUserAvatarPicker.defaultProps = {\n success: false\n};\n\nexport default UserAvatarPicker;\n","import { connect } from 'react-redux';\nimport { uploadUserAvatar } from '../../actions/aws';\nimport UserAvatarPicker from './user_avatar_picker';\n\nconst mapStateToProps = ({ aws }) => ({ ...aws });\n\nexport default connect(\n mapStateToProps,\n { uploadUserAvatar }\n)(UserAvatarPicker);\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\n\nfunction ProfileInfoPopover(props) {\n const [isPopoverVisible, setIsPopoverVisible] = useState(false);\n const {\n children, content, title\n } = props;\n\n const handleClick = e => {\n if (document.triggerNode && document.triggerNode.contains(e.target) && e.target.className !== 'close') {\n setIsPopoverVisible(!isPopoverVisible);\n return;\n }\n if (e.target.className === 'close') {\n setIsPopoverVisible(false);\n } else {\n const showPopover = document.contentNode\n && document.titleNode\n && (document.contentNode.parentNode.contains(e.target)\n || document.titleNode.parentNode.contains(e.target));\n setIsPopoverVisible(showPopover);\n }\n };\n\n useEffect(() => {\n document.addEventListener('click', handleClick);\n return () => {\n document.removeEventListener('click', handleClick);\n };\n }, []);\n\n const renderContent = () => (\n <div\n className={ classes.profileInfoPopoverInnerContent }\n ref={ node => { document.contentNode = node; } }\n >\n {content}\n </div>\n );\n\n const renderTitle = () => (\n <div\n className={ classes.profileInfoPopoverTitle }\n ref={ node => { document.titleNode = node; } }\n suppressHydrationWarning\n >\n {title}\n </div>\n );\n\n return (\n <div suppressHydrationWarning>\n <div ref={ node => { document.triggerNode = node; } } suppressHydrationWarning>{children}</div>\n <div\n className={ classes.profileInfoPopoverContainer }\n style={ { '--display': isPopoverVisible ? 'flex' : 'none' } }\n suppressHydrationWarning\n >\n <div className={ classes.profileInfoPopoverInnerContainer }>\n <div className={ classes.profileInfoPopoverTopArrow } />\n <div\n className={ classes.profileInfoPopoverInner }\n suppressHydrationWarning\n >\n { renderTitle() }\n { renderContent() }\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nProfileInfoPopover.propTypes = {\n children: PropTypes.node.isRequired,\n content: PropTypes.node.isRequired,\n title: PropTypes.node.isRequired\n};\n\nexport default ProfileInfoPopover;\n","import React, { useEffect, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport classes from './classes.module.scss';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport { SvgIcon } from '../../../common/sprites';\nimport { onHeaderSearchClick } from '../../config/util';\nimport { useCurrentPath } from '../routes/hooks/useCurrentPath';\nimport { useLocalizedNavigate } from '../routes/hooks/useLocalizedNavigate';\nimport { appRoutes } from '../../config/app_routes';\n\nconst innerSearchKinds = {\n button: 'button',\n input:'input'\n};\nconst getInnerSearchItemDisplay = (showHeaderSearchLine, kind) => {\n if (kind === innerSearchKinds.button) {\n return { display: showHeaderSearchLine ? 'none' : 'flex' };\n }\n return { display: showHeaderSearchLine ? 'flex' : 'none' };\n};\n\nfunction HeaderSearch({ t }) {\n const history = useLocalizedNavigate();\n const currentPath = useCurrentPath();\n const searchInputRef = useRef();\n const [showHeaderSearchLine, setShowHeaderSearchLine] = useState(false);\n const [searchInputValue, setSearchInputValue] = useState(\n queryString.parse(currentPath.search).query\n );\n\n useEffect(() => {\n setSearchInputValue(queryString.parse(currentPath.search).query);\n }, [currentPath.search]);\n\n useEffect(() => {\n if ((searchInputRef || {}).current) searchInputRef.current.focus();\n }, [showHeaderSearchLine]);\n\n const onHeaderSearchLineButtonClick = () => {\n onHeaderSearchClick({\n searchInputRef, setSearchInputValue, history, currentPath\n });\n };\n\n const onHeaderSearchLineButtonKeyDown = (e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n onHeaderSearchLineButtonClick();\n }\n };\n\n const searchInputValueChange = (e) => {\n setSearchInputValue(e.target.value);\n };\n\n const headerSearchButtonClick = () => {\n setShowHeaderSearchLine(true);\n };\n\n const headerSearchLineCloseButtonClick = () => {\n onHeaderSearchClick({\n searchInputRef,\n setSearchInputValue,\n history,\n currentPath,\n isSearchLineCloseButtonClick: true\n });\n setShowHeaderSearchLine(false);\n };\n\n const closeButton = () => (\n <div className={ classes.headerSearchLineSearchCloseButtonContainer }>\n <button\n type=\"button\"\n className={ classes.headerSearchLineButton }\n onClick={ onHeaderSearchLineButtonClick }\n >\n { t('search_button_title') }\n </button>\n <button\n type=\"button\"\n className={ classes.headerSearchLineCloseButton }\n onClick={ headerSearchLineCloseButtonClick }\n >\n <SvgIcon className={ classes.headerSearchLineCloseButtonImg } id=\"close_icon\" />\n </button>\n </div>\n );\n\n const searchInput = () => (\n <div\n suppressHydrationWarning\n className={ classes.headerSearchLineContainer }\n style={ getInnerSearchItemDisplay(showHeaderSearchLine, innerSearchKinds.input) }\n >\n <div className={ classes.headerSearchLineInputContainer }>\n <div className={ classes.headerSearchLineSearchIconAndInputContainer }>\n <SvgIcon className={ classes.headerSearchGreyIcon } id=\"gray_search_icon\" size={ 20 } />\n <form className={ classes.headerSearchLineForm }>\n <input\n type=\"text\"\n ref={ searchInputRef }\n value={ searchInputValue || '' }\n onChange={ searchInputValueChange }\n className={ classes.headerSearchLineInput }\n placeholder={ t('search_placeholder') }\n onKeyDown={ onHeaderSearchLineButtonKeyDown }\n autoComplete=\"off\"\n />\n </form>\n </div>\n <div className={ classes.headerSearchLineDivider } />\n </div>\n {closeButton()}\n </div>\n );\n\n const renderSearch = () => {\n if (currentPath.routeKey === appRoutes.home) return null;\n return (\n <div className={ classes.headerSearchMainContainer } suppressHydrationWarning>\n <button\n suppressHydrationWarning\n type=\"button\"\n className={ classes.headerSearchButton }\n onClick={ headerSearchButtonClick }\n style={ getInnerSearchItemDisplay(showHeaderSearchLine, innerSearchKinds.button) }\n >\n <SvgIcon className={ classes.headerSearchButtonImg } id=\"black_search_icon\" size={ 20 } />\n </button>\n {searchInput()}\n </div>\n );\n };\n\n return renderSearch();\n}\n\nHeaderSearch.propTypes = {\n t:PropTypes.func.isRequired\n};\n\nexport default withPGTranslation(HeaderSearch);\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport SignOut from '../settings/sign_out';\nimport { MODAL } from '../settings/sign_out/sign_out';\nimport classes from './classes.module.scss';\nimport AppLink from '../routes/app_link';\nimport UserAvatarPicker from '../user_avatar_picker';\nimport ProfileInfoPopover from './profile_info_popover';\nimport HeaderSearch from './header_search';\nimport { getComponentStyle, componentStyles } from './component_styles';\nimport HeaderLogo from './header_logo';\nimport Const from '../../config/const';\n\nimport '@barges/scss/lib/title.css';\nimport '@barges/scss/lib/marketing-banner.css';\nimport TopBanner from './top_banner';\nimport { SvgIcon } from '../../../common/sprites';\nimport { appRoutes } from '../../config/app_routes';\n\nconst defaultAvatar = require('./img/home_placeholder.png');\nconst plusIcon = require('./img/popover_plus_icon.svg');\nconst filledPlusIcon = require('./img/popover_filled_plus_icon.svg');\nconst editIcon = require('./img/popover_edit_icon.svg');\n\nconst handleScroll = ({\n withTranparentTransition, transparent, setTransparent, xfmProgram\n}) => {\n if (!withTranparentTransition || xfmProgram) return;\n if (!transparent && window.scrollY === 0) setTransparent(true);\n if (transparent && window.scrollY > 0) setTransparent(false);\n};\n\nconst getAvatar = ({ avatarUrlResize, avatarUrl }) => avatarUrlResize || avatarUrl || defaultAvatar;\nconst getAvatarIcon = ({ avatarUrlResize, avatarUrl }) => (avatarUrlResize || avatarUrl ? editIcon : plusIcon);\nconst getCreditButtonText = ({ clientAvailableCredit, t }) => {\n const availableCredit = parseFloat(clientAvailableCredit);\n if (availableCredit === 0) return t('header.addCredit');\n const formattedNumber = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n maximumFractionDigits: 2,\n minimumFractionDigits: 0\n }).format(availableCredit);\n return `${ t('header.credits') } ${ formattedNumber }`;\n};\n\nfunction AppHeader({\n badgeCount, t, avatarUrl, avatarUrlResize, toggleDrawer, displayRegister,\n nickname, withTranparentTransition, itemProp, logOutSuccess, logOutClear, xfmProgram, clientAvailableCredit\n}) {\n const [transparent, setTransparent] = useState(\n window.scrollY === 0 && withTranparentTransition && !xfmProgram\n );\n const onScroll = () => {\n handleScroll({\n withTranparentTransition, transparent, setTransparent, xfmProgram\n });\n };\n\n useEffect(() => {\n window.addEventListener('scroll', onScroll);\n return () => {\n window.removeEventListener('scroll', onScroll);\n };\n }, [transparent]);\n\n useEffect(() => {\n if (logOutSuccess) logOutClear();\n }, [logOutSuccess]);\n\n const getNicknameContainerClasses = () => {\n if (nickname) return classes.nicknameContainer;\n return `${ classes.nicknameContainer } ${ classes.empty }`;\n };\n\n function renderProfilePopoverHeader() {\n return (\n <div className={ classes.profilePopoverHeaderWrapper } suppressHydrationWarning>\n <div className={ classes.profilePopoverHeaderAvatarContainer }>\n <UserAvatarPicker>\n <div\n suppressHydrationWarning\n className={ classes.avatarContainer }\n style={ { '--size': '64px', '--radius':'24px' } }\n >\n <img\n suppressHydrationWarning\n alt=\"\"\n src={ getAvatar({ avatarUrlResize, avatarUrl }) }\n style={ { '--radius': '20px' } }\n className={ classes.popoverAvatar }\n />\n <div className={ classes.avatarIconContainer }>\n <img className={ classes.avatarIcon } alt=\"\" src={ getAvatarIcon({ avatarUrlResize, avatarUrl }) } />\n </div>\n </div>\n </UserAvatarPicker>\n </div>\n <div className={ classes.profilePopoverHeaderRightSide }>\n <div className={ getNicknameContainerClasses() } suppressHydrationWarning>\n { nickname || t('header.emptyNickname')}\n </div>\n <AppLink to={ appRoutes.addFunds } className={ classes.addCreditsButton }>\n <span>{ getCreditButtonText({ clientAvailableCredit, t }) }</span>\n <img src={ filledPlusIcon } alt={ t('header.addCredit') } />\n </AppLink>\n </div>\n </div>\n );\n }\n\n function renderProfilePopoverContent() {\n return (\n <div className={ classes.popoverContainer }>\n <div>\n <AppLink to={ appRoutes.settings } className={ classes.popoverItem }>\n <SvgIcon id=\"popover_settings\" size={ 24 } />\n <div className={ classes.popoverItemText }>{ t('sideMenu.settings') }</div>\n </AppLink>\n </div>\n <SignOut theme={ MODAL } />\n </div>\n );\n }\n\n const showSignUp = () => {\n displayRegister({ shouldDisplay: true, signUpFlow: 'menu', screen: Const.authScreens.signUp });\n };\n\n const showSignIn = () => {\n displayRegister({ shouldDisplay: true, signUpFlow: 'menu', screen: Const.authScreens.signIn });\n };\n\n const renderJoinButton = () => (\n <button\n onClick={ showSignUp }\n type=\"button\"\n className={ classes.loginButtonContainer }\n style={ getComponentStyle('transparent', componentStyles.joinButton) }\n suppressHydrationWarning\n >\n {t('join_now')}\n </button>\n );\n\n function renderProfileInfo() {\n if (window.currentUserId) {\n return (\n <div className={ classes.popoverContainer } suppressHydrationWarning>\n <ProfileInfoPopover\n title={ renderProfilePopoverHeader() }\n content={ renderProfilePopoverContent() }\n >\n <div\n className={ classes.profileInfoContainer }\n type=\"button\"\n style={ getComponentStyle(transparent, componentStyles.profileInfoContainer) }\n suppressHydrationWarning\n >\n <div suppressHydrationWarning>\n { nickname || '' }\n </div>\n <div className={ classes.profileInfoContainerDivider } suppressHydrationWarning />\n <img className={ classes.avatar } src={ getAvatar({ avatarUrlResize, avatarUrl }) } alt=\"\" />\n </div>\n </ProfileInfoPopover>\n </div>\n );\n }\n return (\n <div className={ classes.signInButtonsContainer }>\n <button onClick={ showSignIn } type=\"button\" className={ classes.signIn } style={ getComponentStyle(transparent, componentStyles.signIn) } suppressHydrationWarning>\n { t('sign_in') }\n </button>\n {renderJoinButton()}\n </div>\n );\n }\n\n return (\n <div id=\"mainHeaderID\">\n <TopBanner />\n <div\n suppressHydrationWarning\n className={ classes.headerContainer }\n style={ getComponentStyle(transparent, componentStyles.headerContainer) }\n >\n <div className={ classes.headerContent } suppressHydrationWarning>\n <div className={ classes.contentHolder } suppressHydrationWarning>\n <HeaderLogo\n toggleDrawer={ toggleDrawer }\n sideMenuIcon={ getComponentStyle(transparent, componentStyles.sideMenuIcon) }\n badgeCount={ badgeCount }\n transparent={ transparent }\n itemProp={ itemProp }\n />\n <div className={ classes.headerSearchAndProfileContainer }>\n <HeaderSearch />\n { renderProfileInfo() }\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}\n\nAppHeader.propTypes = {\n children: PropTypes.node,\n t: PropTypes.func.isRequired,\n badgeCount: PropTypes.number,\n avatarUrl: PropTypes.string,\n avatarUrlResize: PropTypes.string,\n nickname: PropTypes.string,\n toggleDrawer: PropTypes.func.isRequired,\n displayRegister: PropTypes.func.isRequired,\n withTranparentTransition: PropTypes.bool,\n itemProp: PropTypes.object,\n logOutSuccess: PropTypes.bool.isRequired,\n logOutClear: PropTypes.func.isRequired,\n xfmProgram: PropTypes.object,\n clientAvailableCredit: PropTypes.string\n};\n\nAppHeader.defaultProps = {\n children: null,\n badgeCount: 0,\n avatarUrl: null,\n avatarUrlResize: null,\n nickname: null,\n withTranparentTransition: false,\n itemProp: null,\n xfmProgram: null,\n clientAvailableCredit: '0'\n};\n\nexport default AppHeader;\n","import { connect } from 'react-redux';\nimport Header from './header';\nimport withPGTranslation from '../../config/withPGTranslation';\nimport { displayRegister, logOutClear } from '../../actions/auth';\n\nconst mapStateProps = ({\n user: { user }, myOrders: { myOrders }, application, logOut\n}) => ({\n ...user,\n badgeCount: (myOrders && myOrders.needReview && myOrders.needReview.length) || 0,\n ...application,\n logOutSuccess: logOut.success,\n xfmProgram: user && user.xfm_program\n});\n\nexport default connect(mapStateProps, {\n displayRegister,\n logOutClear\n})(withPGTranslation(Header));\n","// extracted by mini-css-extract-plugin\nexport default {\"footerHolder\":\"footerHolder--tiJEl\",\"footerContent\":\"footerContent--OQswX\",\"animation-bzdot9\":\"animation-bzdot9--RK8EC\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Footer as FooterOrganism } from '@barges/react';\nimport classes from './classes.module.scss';\nimport {\n appLinks, socialLinks\n} from '../../../config/const';\nimport { fromMobileApp, isKA, isPGW } from '../../../../common/config/utils';\n\nimport '@barges/scss/lib/title.css';\nimport '@barges/scss/lib/footer.css';\nimport { appRoutes, dynamicRoutes, getSpecialitiesRoutes } from '../../../config/app_routes';\nimport { getCurrentLocalization, DEFAULT_LANGUAGE } from '../../../config/i18n';\nimport { SvgIcon } from '../../../../common/sprites';\nimport { useLocalizedPath } from '../../routes/hooks/useLocalizedPath';\nimport { footerLogo } from '../../../logo/logo';\n\nconst socialLinksArray = [{\n href: socialLinks.x,\n key: 1,\n icon: <SvgIcon id=\"twitter_footer\" size={ 28 } />\n}, {\n href: socialLinks.fb,\n key: 2,\n icon: <SvgIcon id=\"fb_footer\" size={ 28 } />\n}, {\n href: socialLinks.ig,\n key: 3,\n icon: <SvgIcon id=\"ig_footer\" size={ 28 } />\n}, {\n href: socialLinks.tt,\n key: 4,\n icon: <SvgIcon id=\"tiktok_footer\" size={ 28 } />\n}, {\n href: socialLinks.yt,\n key: 5,\n icon: <SvgIcon id=\"yt_footer\" size={ 28 } />\n}];\n\nconst getInc = () => {\n if (isKA()) return 'Kasamba Inc.';\n return 'Barges Technologies, Inc.';\n};\n\nconst onIconTap = () => {\n window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });\n};\n\nconst companyInfo = `${ new Date().getFullYear() } `;\n\nconst language = getCurrentLocalization();\n\nconst logoSrc = () => <img alt=\"logo\" src={ footerLogo() } />;\n\nconst Footer = ({ t }) => {\n const currentLang = getCurrentLocalization();\n const generatePath = useLocalizedPath();\n\n if (fromMobileApp) return null;\n\n const specialities = getSpecialitiesRoutes()\n .map(key => ({ name: (dynamicRoutes[key].translations?.[currentLang].name || dynamicRoutes[key].name), key }));\n\n return (\n <div className={ classes.footerHolder }>\n <div className={ classes.footerContent }>\n <FooterOrganism\n companyInfo={ `© ${ companyInfo }${ getInc() }` }\n logo={ logoSrc() }\n termsLinks={ [\n { name: t('privacy_policy'), path: appLinks.privacyPolicy },\n { name: t('terms_of_use'), path: appLinks.tos },\n { name: t('affiliation'), path: appLinks.affiliation }\n ] }\n logoAction={ onIconTap }\n socialLinks={ socialLinksArray }\n links={ [\n {\n title: t('footerLinks.explore'),\n children: [\n { name: t('footerLinks.advisors'), path: generatePath(currentLang, appRoutes.psychics) },\n ...isKA()\n ? [\n { name: t('footerLinks.specialities'), path: generatePath(currentLang, appRoutes.specialities) },\n { name: t('footerLinks.horoscope'), path: appLinks.myHoroscope }\n ]\n : [],\n ...isPGW()\n ? [{ name: t('footerLinks.our_blog'), path: language === DEFAULT_LANGUAGE ? appLinks.blog : `${ appLinks.blog }/${ language }` }]\n : [{ name: t('footerLinks.articles'), path: appLinks.articles }]\n ]\n },\n {\n title: t('footerLinks.specialities'),\n children: specialities?.map(({ name, key }) => ({ name, path: generatePath(currentLang, key) })) || []\n },\n {\n title: t('footerLinks.more'),\n children: [\n { name: t('footerLinks.apply_promo_code'), path: generatePath(currentLang, appRoutes.promoCode) },\n { name: t('footerLinks.customer_support'), path: appLinks.customerSupport },\n { name: t('footerLinks.about_us'), path: appLinks.aboutUs },\n { name: t('footerLinks.psychic_apply_here'), path: appLinks.forAdvisors }\n ]\n }\n ] }\n />\n </div>\n </div>\n );\n};\n\nFooter.propTypes = {\n t: PropTypes.func.isRequired\n};\n\nexport default Footer;\n","import withPGTranslation from '../../../config/withPGTranslation';\nimport Footer from './footer';\n\nexport default withPGTranslation(Footer);\n","// extracted by mini-css-extract-plugin\nexport default {\"mainContainer\":\"mainContainer--ymhQ4\",\"specialtyContentAreaContainer\":\"specialtyContentAreaContainer--i3Y3o\",\"specialtyContentArea\":\"specialtyContentArea--WPa1w\",\"articleTitle\":\"articleTitle--r7YY2\",\"articleSubtitle\":\"articleSubtitle--sBoI1\",\"articleTextBox\":\"articleTextBox--CDu0t\",\"showMoreOrLessBtn\":\"showMoreOrLessBtn--g2fdr\",\"articleText\":\"articleText--iO7KU\",\"animation-bzdot9\":\"animation-bzdot9--Ng9Bg\"};","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Helmet } from 'react-helmet';\nimport queryString from 'query-string';\nimport parse, { attributesToProps } from 'html-react-parser';\nimport { toCamelCase } from '../../../../common/config/utils';\nimport classes from './classes.module.scss';\nimport ExpandedText from '../../../../common/helpers/expanded_text';\n\nconst anyArticleDataExcist = (title, content) => title && content;\n\nconst metaElements = (value) => ({\n htmlDescription: <meta name=\"description\" content={ value } key=\"htmlDescription\" />,\n htmlTitle: <title key=\"htmlTitle\">{value}</title>,\n ogTitle: <meta property=\"og:title\" content={ value } key=\"ogTitle\" />,\n ogType: <meta property=\"og:type\" content={ value } key=\"ogType\" />,\n ogDescription: <meta property=\"og:description\" content={ value } key=\"ogDescription\" />,\n ogImage: <meta property=\"og:image\" content={ value } key=\"ogImage\" />\n});\n\nconst renderArticleTitle = (articleTitle) => {\n if (!articleTitle) return null;\n return (\n <h2 className={ classes.articleTitle }>\n { parse(articleTitle) }\n </h2>\n );\n};\n\nconst renderArticleSubtitle = (articleSubtitle) => {\n if (!articleSubtitle) return null;\n return (\n <h2 className={ classes.articleSubtitle }>\n { parse(articleSubtitle) }\n </h2>\n );\n};\n\nconst renderArticleText = (text, alwaysExpanded) => (alwaysExpanded ? (\n <div className={ classes.articleTextBox }>\n <span className={ classes.articleText } style={ { whiteSpace: 'pre-wrap', display: 'block' } } suppressHydrationWarning>\n {parse(text, {\n transform(reactNode, domNode, index) {\n if (!reactNode.props) return reactNode;\n const props = attributesToProps({\n ...reactNode.props, custom: 'qux', suppressHydrationWarning: true, key: `parse element index: ${ index }`\n });\n return React.createElement(`${ reactNode.type }`, { ...props });\n }\n })}\n </span>\n </div>\n) : (\n <ExpandedText\n limit={ 4 }\n ellipsis\n className={ classes.articleTextBox }\n customClasses={ {\n text: classes.articleText,\n readMoreBtn: classes.showMoreOrLessBtn\n } }\n readMoreKind=\"limitTextByRows\"\n >\n <span suppressHydrationWarning>\n {parse(text)}\n </span>\n </ExpandedText>\n));\n\nconst needRenderNewToPGSection = ({ setNewToPGAction, newToPG }) => {\n const { utmCampaign, utmSource } = toCamelCase(queryString.parse(window.location.search));\n const isNewToPG = !!(((utmCampaign || utmSource) || newToPG));\n if (isNewToPG !== newToPG) setNewToPGAction(isNewToPG);\n return isNewToPG;\n};\n\nfunction SeoData({\n setNewToPGAction, newToPG, userId, seoData\n}) {\n const {\n articleTitle, seoScript,\n articleSubtitle, articleContent, alwaysExpanded,\n ...rest\n } = seoData[window.location.pathname] || {};\n\n useEffect(() => {\n needRenderNewToPGSection({ setNewToPGAction, newToPG });\n }, [window.location.search, window.location.pathname, userId]);\n\n const replaceScript = () => {\n let currentElement = document.getElementById('seo_pages_script');\n if (!currentElement) {\n currentElement = React.createElement('div', { id: 'seo_pages_script' });\n document.body.appendChild(currentElement);\n }\n currentElement.innerHTML = seoScript || null;\n };\n\n useEffect(() => {\n replaceScript();\n }, [seoData]);\n\n const metaData = () => (\n <Helmet>{Object.keys(rest).map((key) => metaElements(rest[key])[key])}</Helmet>\n );\n\n const contentArea = () => {\n if (!anyArticleDataExcist(articleTitle, articleContent)) return null;\n return (\n <div className= { classes.specialtyContentAreaContainer }>\n <div className= { classes.specialtyContentArea } suppressHydrationWarning>\n { renderArticleTitle(articleTitle) }\n { renderArticleSubtitle(articleSubtitle) }\n { renderArticleText(articleContent, alwaysExpanded) }\n </div>\n </div>\n );\n };\n\n return (\n <>\n {metaData()}\n {contentArea()}\n {replaceScript()}\n </>\n );\n}\n\nSeoData.propTypes = {\n setNewToPGAction: PropTypes.func.isRequired,\n newToPG: PropTypes.bool.isRequired,\n userId: PropTypes.number,\n seoData: PropTypes.object\n};\n\nSeoData.defaultProps = {\n userId: null,\n seoData: null\n};\n\nexport default (SeoData);\n","import { connect } from 'react-redux';\nimport SeoData from './seo_data';\n\nimport { setNewToPGAction } from '../../../actions/application';\n\nconst mapStateProps = ({ user: { user }, application }) => ({\n newToPG: application.newToPG,\n userId: user && user.id,\n seoData: application.seoData\n});\n\nexport default connect(\n mapStateProps,\n {\n setNewToPGAction\n }\n)(SeoData);\n","// extracted by mini-css-extract-plugin\nexport default {\"navigationStackBarContainer\":\"navigationStackBarContainer--hN7m4\",\"navigationStackBarContentHolder\":\"navigationStackBarContentHolder--f8Luc\",\"navigationItemContainer\":\"navigationItemContainer--CN4mt\",\"navigationItemTitle\":\"navigationItemTitle--NYz8i\",\"navigationItemArrow\":\"navigationItemArrow--sSOR_\",\"animation-bzdot9\":\"animation-bzdot9--Jz5ZD\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport AppLink from '../routes/app_link';\nimport { navigationStackItemProp } from '../../actions/application';\n\nconst rightArrow = (color) => (\n <svg width=\"100%\" viewBox=\"0 0 8 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1 1L6 8.5L1 16\" stroke={ color || '#BBBBBB' } strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n);\n\nconst getLinkStyle = (isLast, textColor) => {\n if (isLast) return { '--textColor': textColor || '#9D9D9D', cursor: 'auto' };\n return { '--textColor': textColor || '#000000' };\n};\n\nconst presentPightArrow = (isLast) => {\n if (isLast) return { display:'none' };\n return {};\n};\n\nfunction NavigationStackBar({\n showNavigationStackBar, screenStack, navigationStackLoading, routeSettings\n}) {\n const { textColor } = routeSettings;\n const renderItem = ({ item, isLast, itemPropPosition }) => (\n <div\n className={ classes.navigationItemContainer }\n key={ `${ item?.name }_navigationItem` }\n itemProp={ navigationStackItemProp.navigationStackItem.itemProp }\n itemScope={ navigationStackItemProp.navigationStackItem.itemScope }\n itemType={ navigationStackItemProp.navigationStackItem.itemType }\n >\n <AppLink\n to={ {\n pathname: item?.slug || '',\n state: { ...item?.params }\n } }\n className={ classes.navigationItemTitle }\n style={ { ...getLinkStyle(isLast, textColor) } }\n itemProp={ navigationStackItemProp.navigationStackItem.link.appLink.itemProp }\n blank={ isLast }\n >\n <span\n itemProp={ navigationStackItemProp.navigationStackItem.link.span.itemProp }\n suppressHydrationWarning\n >\n { item?.name }\n </span>\n </AppLink>\n <span\n className={ classes.navigationItemArrow }\n style={ { ...presentPightArrow(isLast) } }\n suppressHydrationWarning\n >\n { rightArrow(textColor) }\n </span>\n { navigationStackItemProp.navigationStackItem.meta.position(itemPropPosition) }\n </div>\n );\n\n const renderNavigationItems = () => (\n Object.keys(screenStack).map((item, index) => {\n if (screenStack[item] && screenStack[item]?.slug) {\n return renderItem({\n item: screenStack[item],\n isLast: index === Object.keys(screenStack).length - 1,\n itemPropPosition: index + 1\n });\n }\n return null;\n })\n );\n\n const renderNavigationStackBar = () => {\n if (!showNavigationStackBar || navigationStackLoading) return null;\n return (\n <div className={ classes.navigationStackBarContainer } suppressHydrationWarning>\n <div\n className={ classes.navigationStackBarContentHolder }\n itemScope={ navigationStackItemProp.itemScope }\n itemType={ navigationStackItemProp.itemType }\n suppressHydrationWarning\n >\n { renderNavigationItems() }\n </div>\n </div>\n );\n };\n\n return renderNavigationStackBar();\n}\n\nNavigationStackBar.propTypes = {\n showNavigationStackBar: PropTypes.bool,\n screenStack: PropTypes.object.isRequired,\n navigationStackLoading: PropTypes.bool,\n routeSettings: PropTypes.object.isRequired\n};\n\nNavigationStackBar.defaultProps = {\n showNavigationStackBar: null,\n navigationStackLoading: null\n};\n\nexport default NavigationStackBar;\n","import { connect } from 'react-redux';\nimport { withLastLocation } from 'react-router-dom-last-location';\nimport NavigationStackBar from './navigation_stack_bar';\nimport withPGTranslation from '../../config/withPGTranslation';\n\nimport { loadMyOrders } from '../../actions/my_orders';\nimport { resetAdvisorOrders } from '../../actions/advisor_orders';\nimport { getRouteSettings } from '../../config/util';\n\nconst mapStateToProps = ({\n application\n}, ownProps) => {\n const { currentPath: { routeKey } } = ownProps;\n return ({\n ...application,\n routeSettings: getRouteSettings({ routeKey })\n });\n};\n\nexport default withLastLocation(withPGTranslation(connect(\n mapStateToProps,\n { loadMyOrders, resetAdvisorOrders }\n)(NavigationStackBar)));\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport 'node_modules/react-smartbanner/dist/main.css';\nimport { Helmet } from 'react-helmet';\nimport { useTranslation } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport SideMenu from '../side_menu';\nimport AppHeader from '../header';\nimport { renderItemPropMeta, getHeaderHeight } from '../../config/util';\nimport Footer from './footer';\nimport SeoData from './seo_data';\nimport NavigationStackBar from '../navigation_stack_bar';\nimport { hideBodyScroll, unlockBodyScroll } from '../../../common/config/utils';\nimport GDPRConsernPopup from '../registration/gdpr_consern_popup';\nimport { GDPRConsernPopupThemes } from '../../config/themes';\nimport { useCurrentPath } from '../routes/hooks/useCurrentPath';\n\nfunction AppLayout({\n children, removeHeader, topGradientColor,\n needsHeaderTransparentTransition, fullHeight, itemProp, noNeedFooter\n}) {\n const { t } = useTranslation();\n const [visible, setVisible] = useState(false);\n const appLayoutItemProp = (itemProp || {});\n\n const calculateScrollbarWidth = () => {\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n document.documentElement.style.setProperty('--scrollbar-width', `${ scrollbarWidth }px`);\n document.documentElement.style.setProperty('--window-width', `${ window.innerWidth }`);\n document.documentElement.style.setProperty('--window-height', `${ window.innerHeight }px`);\n document.documentElement.style.setProperty('--header-height', `${ getHeaderHeight() || '0px' }`);\n };\n\n const toggleDrawer = () => {\n setVisible(!visible);\n if (!visible) {\n hideBodyScroll();\n } else {\n unlockBodyScroll();\n }\n };\n\n useEffect(() => {\n if (visible) {\n setVisible(false);\n unlockBodyScroll();\n }\n }, [window.location.pathname]);\n\n useEffect(() => {\n // recalculate on resize\n window.addEventListener('resize', calculateScrollbarWidth, false);\n // recalculate on dom load\n document.addEventListener('DOMContentLoaded', calculateScrollbarWidth, false);\n // recalculate on load (assets loaded as well)\n window.addEventListener('load', calculateScrollbarWidth, false);\n return () => {\n window.removeEventListener('resize', calculateScrollbarWidth, false);\n document.removeEventListener('DOMContentLoaded', calculateScrollbarWidth, false);\n window.removeEventListener('load', calculateScrollbarWidth);\n unlockBodyScroll();\n };\n }, []);\n\n useEffect(() => {\n calculateScrollbarWidth();\n }, [document.documentElement.clientWidth]);\n\n const renderHeader = () => {\n if (removeHeader) return null;\n return (\n <div className={ classes.rootHeader }>\n <AppHeader\n toggleDrawer={ toggleDrawer }\n withTranparentTransition = { needsHeaderTransparentTransition }\n topGradientColor={ topGradientColor }\n itemProp={ itemProp }\n />\n </div>\n );\n };\n\n const renderFooter = () => {\n if (noNeedFooter) return null;\n return (\n <div className={ classes.footer }>\n <Footer />\n </div>\n );\n };\n\n return (\n <div suppressHydrationWarning style={ { display: 'flex' } }>\n <div\n id=\"appRoot\"\n className={ classes.appRoot }\n itemScope={ appLayoutItemProp.itemScope }\n itemType={ appLayoutItemProp.itemType }\n suppressHydrationWarning\n >\n <Helmet>\n <title>{ t('app_name_title') }</title>\n <meta property=\"og:url\" content={ window.location.href } suppressHydrationWarning />\n <meta property=\"og:title\" content={ `${ t('app_name_title') } 1` } />\n <meta name=\"description\" content=\"Live Psychic readings on love, romance, money, and more! Unlock life secrets by connecting with some of the highest rated advisors in the world!\" />\n <meta property=\"og:description\" content=\"Personalized psychic video readings on love, romance, money, and more! Unlock life secrets by connecting with some of the highest rated advisors in the world!\" />\n </Helmet>\n { renderItemPropMeta(appLayoutItemProp) }\n { renderHeader() }\n <SideMenu\n visible={ visible }\n toggleDrawer={ toggleDrawer }\n />\n <div\n className={ classes.rootContent }\n suppressHydrationWarning\n style={ { '--topGradientColor':topGradientColor } }\n >\n <div\n suppressHydrationWarning\n className={ fullHeight\n ? classNames(classes.container, classes.fullHeightContainer)\n : classNames(classes.container) }\n >\n <NavigationStackBar currentPath={ useCurrentPath() } />\n <div className={ classes.childrenContainer }>\n { children }\n </div>\n <SeoData />\n <GDPRConsernPopup theme={ GDPRConsernPopupThemes.server } />\n { renderFooter() }\n </div>\n </div>\n </div>\n <div className={ classes.invisibleScrollBar } />\n </div>\n );\n}\n\nAppLayout.propTypes = {\n children: PropTypes.node,\n noNeedMarginTop: PropTypes.bool,\n removeHeader: PropTypes.bool,\n needsHeaderTransparentTransition: PropTypes.bool,\n topGradientColor: PropTypes.string,\n fullHeight: PropTypes.bool,\n showNavigationStackBar: PropTypes.bool,\n itemProp: PropTypes.object,\n noNeedFooter: PropTypes.bool\n};\n\nAppLayout.defaultProps = {\n children: null,\n noNeedMarginTop: null,\n removeHeader: null,\n needsHeaderTransparentTransition: false,\n topGradientColor:null,\n fullHeight: false,\n showNavigationStackBar: null,\n itemProp: null,\n noNeedFooter: null\n};\n\nexport default AppLayout;\n","// extracted by mini-css-extract-plugin\nexport default {\"timerContainer\":\"timerContainer--XTa86\",\"timerHighlightedContainer\":\"timerHighlightedContainer--HCJja\",\"pulse\":\"pulse--Ulprv\",\"timerAnimation\":\"timerAnimation--IK3eQ\",\"reveal\":\"reveal--LmCI5\",\"timerTextColumnContainer\":\"timerTextColumnContainer--HZJ2L\",\"timerMin\":\"timerMin--XagFM\",\"timerMinDuration\":\"timerMinDuration--R38qN\",\"timerSecDuration\":\"timerSecDuration--WAaYD\",\"timerSec\":\"timerSec--Ow8Q9\",\"timerTextRowContainer\":\"timerTextRowContainer--Gc37d\",\"freeTimeContainer\":\"freeTimeContainer--EKbSo\",\"freeTimeDuration\":\"freeTimeDuration--Rp_Vl\",\"freeTimeText\":\"freeTimeText--SBu2o\",\"freeTimeVoipContainer\":\"freeTimeVoipContainer--MdtRs\",\"callStatusDotImg\":\"callStatusDotImg--m9Yri\",\"freeTimeVoipText\":\"freeTimeVoipText--pHhAS\"};","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { formatISO, differenceInSeconds, parseISO } from 'date-fns';\nimport { useTranslation } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport { SvgIcon } from '../../../common/sprites';\n\nconst getTimerSize = (callType) => (callType === 'chat' ? '35px' : '65px');\n\nconst renderDurationText = (secondsCount, secondsPast, countdownSecondsToShow, callType, t) => (\n <div className={ callType === 'chat' ? classes.timerTextColumnContainer : classes.timerTextRowContainer }>\n { countdownSecondsToShow ? (\n <>\n <span className={ classes.timerSecDuration }>{Math.floor(secondsCount)}</span>\n <span className={ classes.timerSec }>{t('chat.sec')}</span>\n </>\n ) : (\n <>\n <span className={ classes.timerMinDuration }>{Math.ceil(secondsPast / 60) }</span>\n <span className={ classes.timerMin }>{t('chat.min')}</span>\n </>\n )}\n </div>\n);\n\nconst renderTimerPath = (callType) => (callType === 'chat' ? (\n <g id=\"gg\">\n <path\n id=\"rect\"\n d=\"M17,3 h10 a5,5 0 0 1 5,5 v26 a0,0 0 0 1 -5,0 h-20 a5,5 0 0 1 -5,-5 v-21 a5,5 0 0 1 5,-5 z\"\n />\n </g>\n) : (\n <g id=\"gg\">\n <path\n id=\"rect\"\n d=\"M32,5 h26 a5,5 0 0 1 5,5 v20 a0,0 0 0 1 -5,0 h-50 a5,5 0 0 1 -5,-5 v-15 a5,5 0 0 1 5,-5 z\"\n />\n </g>\n));\n\nconst renderFreeTime = (setupTimeLabels, callType, t) => {\n let durationText = t('chat.free');\n let setupTimeLabelsText = t('chat.setup_time');\n let setupTimeLabelsVoipText = t('chat.free_setup_time');\n if (setupTimeLabels.length) {\n const [text1, ...remainingText] = setupTimeLabels;\n durationText = text1;\n setupTimeLabelsText = remainingText.join(' ');\n setupTimeLabelsVoipText = setupTimeLabels.join(' ');\n }\n if (callType === 'chat') {\n return (\n <div className={ classes.freeTimeContainer }>\n <span className={ classes.freeTimeDuration }>{durationText}</span>\n <span className={ classes.freeTimeText }>{setupTimeLabelsText}</span>\n </div>\n );\n }\n return (\n <div className={ classes.freeTimeVoipContainer }>\n <SvgIcon className={ classes.callStatusDotImg } id=\"call_status_dot\" />\n <span className={ classes.freeTimeVoipText }>{setupTimeLabelsVoipText}</span>\n </div>\n );\n};\n\nconst getTimerAnimationStrokeValue = (callType) => (callType === 'chat' ? '117' : '167');\n\nconst getStopwatchStyle = (secondsCount, sessionEndingHighlightedCountdownSeconds) => (\n secondsCount <= sessionEndingHighlightedCountdownSeconds ? classes.timerHighlightedContainer : classes.timerContainer\n);\n\nconst Stopwatch = ({\n secondsCount, callType, sessionEndingCountdownSeconds, sessionEndingHighlightedCountdownSeconds, setupTimeLabels, paidDuration\n}) => {\n const { t } = useTranslation();\n const [notifyDate, setNotifyDate] = useState(formatISO(new Date()));\n const countdownSecondsToShow = secondsCount < sessionEndingCountdownSeconds;\n\n useEffect(() => {\n setNotifyDate(formatISO(new Date()));\n }, [secondsCount <= paidDuration]);\n\n const renderTimer = () => {\n const dateNow = formatISO(new Date());\n const secondsPast = differenceInSeconds(parseISO(dateNow), parseISO(notifyDate)) + 1;\n return (\n <div className={ getStopwatchStyle(secondsCount, sessionEndingHighlightedCountdownSeconds) }>\n {renderDurationText(secondsCount, secondsPast, countdownSecondsToShow, callType, t)}\n <svg width={ getTimerSize(callType) } height=\"35px\" fillOpacity=\"0%\">\n <defs>{renderTimerPath(callType)}</defs>\n <g fill=\"none\" stroke=\"#EEE\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><use xlinkHref=\"#gg\" /></g>\n <g\n className={ classes.timerAnimation }\n style={ { '--strokeValue': getTimerAnimationStrokeValue(callType) } }\n fill=\"none\"\n stroke={ countdownSecondsToShow ? 'var(--mbw-warning-color)' : 'var(--mbw-success-color)' }\n strokeWidth=\"2\"\n strokeLinecap=\"butt\"\n strokeLinejoin=\"round\"\n >\n <use xlinkHref=\"#rect\" />\n </g>\n </svg>\n </div>\n );\n };\n\n const renderStopwatch = () => {\n if (secondsCount <= 0) return null;\n if (secondsCount <= paidDuration) return renderTimer();\n return renderFreeTime(setupTimeLabels, callType, t);\n };\n\n return renderStopwatch();\n};\n\nStopwatch.propTypes = {\n secondsCount: PropTypes.number,\n callType: PropTypes.string.isRequired,\n setupTimeLabels: PropTypes.array,\n sessionEndingCountdownSeconds: PropTypes.number,\n sessionEndingHighlightedCountdownSeconds: PropTypes.number,\n paidDuration: PropTypes.number\n};\n\nStopwatch.defaultProps = {\n secondsCount: null,\n sessionEndingCountdownSeconds: null,\n sessionEndingHighlightedCountdownSeconds: null,\n setupTimeLabels: [],\n paidDuration: null\n};\n\nexport default Stopwatch;\n","import { connect } from 'react-redux';\nimport Stopwatch from './stopwatch';\n\nconst mapeStateToProps = ({ chat, voipChat }) => ({\n ...chat,\n ...voipChat\n});\n\nexport default connect(mapeStateToProps)(Stopwatch);\n","// extracted by mini-css-extract-plugin\nexport default {\"player\":\"player--kAMsD\"};","/* eslint-disable jsx-a11y/media-has-caption */\n\nimport React, { useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Hls from 'hls.js';\nimport classes from './classes.module.scss';\n\nfunction VideoPlayer({\n videoUrl, videoRef, onPlayerClick, onPlaying, muted, controls, className, loop, poster\n}) {\n useEffect(() => {\n const video = videoRef.current;\n if (video && videoUrl) {\n if (videoUrl.includes('.m3u8')) {\n if (Hls.isSupported()) {\n const hls = new Hls();\n hls.loadSource(videoUrl);\n hls.attachMedia(video);\n hls.on(Hls.Events.MANIFEST_PARSED, () => {\n if (video.muted) video.play();\n });\n } else if (video.canPlayType('application/vnd.apple.mpegurl')) {\n video.src = videoUrl;\n }\n } else {\n video.src = videoUrl;\n }\n video.muted = muted;\n }\n return () => {\n if (video && Hls.isSupported()) {\n const hls = new Hls();\n hls.destroy();\n }\n };\n }, [videoUrl]);\n\n useEffect(() => {\n const video = videoRef.current;\n if (video && poster) {\n video.poster = poster;\n }\n }, [poster]);\n\n const onPlayerClickHandler = () => {\n if (onPlayerClick) {\n onPlayerClick();\n }\n };\n\n const videoPlayer = useMemo(() => (\n <video\n ref={ videoRef }\n controls={ controls }\n width=\"100%\"\n height=\"100%\"\n playsInline\n className={ classNames(classes.player, className) }\n onClick={ onPlayerClickHandler }\n onTouchStart={ onPlayerClick }\n onPlaying={ onPlaying }\n muted= { muted }\n autoPlay\n loop={ loop }\n poster={ poster }\n preload=\"auto\"\n suppressHydrationWarning\n />\n ), []);\n\n return videoPlayer;\n}\n\nVideoPlayer.propTypes = {\n videoUrl: PropTypes.string,\n videoRef: PropTypes.object,\n onPlayerClick: PropTypes.func,\n onPlaying: PropTypes.func,\n muted: PropTypes.bool,\n controls: PropTypes.bool,\n className: PropTypes.string,\n loop: PropTypes.bool,\n poster: PropTypes.string\n};\n\nVideoPlayer.defaultProps = {\n videoUrl: null,\n videoRef: null,\n onPlayerClick: null,\n onPlaying: null,\n muted: null,\n controls: true,\n className: null,\n loop: null,\n poster: null\n};\n\nexport default VideoPlayer;\n","import VideoPlayer from './video_player';\n\nexport default VideoPlayer;\n","import Const from '../config/const';\n\nexport const userSetImpersonate = (impersonated) => ({\n type: Const.user.impersonated,\n impersonated\n});\n\nexport const setImpersonated = (impersonated) => dispatch => {\n const { user } = window.store.getState();\n if (user && user.impersonated !== impersonated) {\n dispatch(userSetImpersonate(impersonated));\n }\n};\n","import queryString from 'query-string';\nimport { setApplicationError } from '../actions/aplication_error';\nimport { getDeviceId } from './device_id';\nimport {\n fromMobileApp, browserContext, toCamelCase, toSnakeCase,\n isKA, withCkoGetDeviceSessionIdApi, isPS\n} from '../../common/config/utils';\nimport { setImpersonated } from '../actions/impersonated';\nimport { getCurrentLocalization } from './i18n';\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\nimport { refreshReducersFromResponse } from './api_functions';\n\nconst getWebClient = () => {\n if (isKA()) return 'KAWeb';\n if (isPS()) return 'PSWeb';\n return 'PGWeb';\n};\n\nconst defaultHeaders = (deviceId) => {\n const deviceHeader = deviceId ? { WEBDEVICE_ID: deviceId } : null;\n return ({\n headers: {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n 'X-CSRF-TOKEN': document.querySelector('meta[name=\"csrf-token\"]')?.getAttribute('content'),\n ...deviceHeader,\n 'Language-Code': getCurrentLocalization(),\n WEB_CLIENT: getWebClient()\n }\n });\n};\n\nconst request = (url, {\n opts = {}, ignoreBaseUrl = false, ignorError404, ignoreUserUpdate = false\n} = {}) => new Promise(async (resolve, reject) => {\n const deviceId = fromMobileApp ? null : await getDeviceId();\n const apiMethod = opts && opts.method ? opts.method : 'GET';\n log(LOG_LEVELS.DEBUG, 'API', `request started URL: ${ apiMethod } ${ url }; TOKEN: ${ document.querySelector('meta[name=\"csrf-token\"]')?.getAttribute('content') }`);\n log(LOG_LEVELS.DEBUG, 'API request options:', opts);\n // https://staging.purplegarden.co - save for later use\n // https://staging.kasamba.com - save for later use\n\n const endpoint = ignoreBaseUrl ? url : window.endpoint + url;\n window.fetch(endpoint, {\n ...opts,\n ...defaultHeaders(deviceId),\n credentials: 'include'\n }).then((response) => {\n if (response.ok) {\n if (response.statusText === 'No Content') {\n resolve(toCamelCase({ success: 'ok' }));\n return;\n }\n window.store.dispatch(setImpersonated(response.headers.get('X-Impersonated')));\n response.json().then((responseJson) => {\n log(LOG_LEVELS.INFO, 'API', `URL ${ apiMethod } ${ url } request success`);\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.log('response', responseJson);\n }\n const res = toCamelCase(responseJson);\n refreshReducersFromResponse(res, { ignoreUserUpdate });\n resolve(res);\n }).catch((error) => {\n if (response.status === 204) resolve();\n log(LOG_LEVELS.ERROR, 'API', `URL ${ apiMethod } ${ url } error parsing responce with error ${ error }`);\n reject(error);\n });\n return;\n }\n if (response.status === 401 || response.status === 404 || response.status >= 500) {\n log(LOG_LEVELS.INFO, 'API', `URL ${ apiMethod } ${ url } request responce status ${ response.status }`);\n if (ignorError404 && response.status === 404) {\n reject();\n return;\n }\n const { user } = window.store.getState();\n if (user && user.impersonated) {\n response.json().then((res) => {\n window.store.dispatch(setApplicationError({ errorCode: response.status, errorText: res.error, errorUrl: url }));\n });\n return;\n }\n window.store.dispatch(setApplicationError({ errorCode: response.status, errorUrl: url, statusText: response.statusText }));\n }\n\n log(LOG_LEVELS.ERROR, 'API', `URL ${ apiMethod } ${ url } response error ${ response.statusText }`);\n reject(response);\n }).catch((error) => {\n log(LOG_LEVELS.ERROR, 'API', `URL ${ apiMethod } ${ url } request error ${ error }`);\n reject(error);\n });\n});\n\nexport const validateApplePayMerchantApi = (paymentSourceId, paymentSessionUrl) => {\n log('API', 'validateApplePayMerchantApi');\n return request('/my/apple_pay_sessions', {\n opts: {\n method: 'POST',\n body: JSON.stringify(toSnakeCase({\n paymentSourceId,\n paymentSessionUrl\n }))\n }\n });\n};\n\nexport const loadAdvisorAPI = (slug, params) => {\n log(LOG_LEVELS.INFO, 'API', 'loadAdvisorAPI');\n const queryParameters = queryString.stringify(toSnakeCase(params));\n return request(`/mba_s/advisors/${ slug }?${ queryParameters }`);\n};\n\nexport const loadAdvisorFeedbacksAPI = (id, params) => {\n const {\n positive, negative\n } = toCamelCase(queryString.parse(window.location.search));\n const queryParameters = queryString.stringify(toSnakeCase({\n ...params, positive, negative\n }));\n return request(`/advisors/${ id }/feedbacks?${ queryParameters }`);\n};\n\nexport const loadFavoriteAfvisorsAPI = () => {\n log(LOG_LEVELS.INFO, 'API', 'loadFavoriteAfvisorsAPI');\n return request('/my/favorite_advisors');\n};\n\nexport const favoriteAdvisorAPI = (advisorId) => {\n log(LOG_LEVELS.INFO, 'API', 'favoriteAdvisorAPI');\n return request('/mba/my/favorite_advisors', {\n opts:{\n method: 'POST',\n body: JSON.stringify(toSnakeCase({ advisorId }))\n }\n });\n};\nexport const unFavoriteAdvisorAPI = (advisorId) => {\n log(LOG_LEVELS.INFO, 'API', 'unFavoriteAdvisorAPI');\n return request(`/mba/my/favorite_advisors/${ advisorId }`, { opts: { method: 'DELETE' } });\n};\n\nexport const getPricingOptions = (advisorId, options) => {\n log(LOG_LEVELS.INFO, 'API', 'getPricingOptions');\n const params = queryString.stringify(toSnakeCase(options));\n return request(`/advisors/${ advisorId }/pricing_options?${ params }`);\n};\n\nexport const createChatApi = (pricePerMinute, duration, advisorId, clickSource) => {\n log(LOG_LEVELS.INFO, 'API', 'createChatApi');\n return request('/my/chats', {\n opts: {\n method: 'POST',\n body: JSON.stringify(toSnakeCase({\n advisorId, duration, pricePerMinute, clickSource\n }))\n }\n });\n};\n\nexport const loadMyOrdersAPI = (params) => {\n log(LOG_LEVELS.INFO, 'API', 'loadMyOrdersAPI');\n return request(`/mba/my/orders?${ queryString.stringify(params) }`);\n};\n\nexport const loadAdvisorOrdersAPI = (page, advisorID) => {\n log(LOG_LEVELS.INFO, 'API', 'loadAdvisorOrdersAPI');\n return request(`/my/orders?advisor_id=${ advisorID }¤t_page=${ page }`);\n};\n\nexport const hangupChatApi = (orderId) => {\n log(LOG_LEVELS.INFO, 'API', 'hangupChatApi');\n return request(`/my/orders/${ orderId }`, {\n opts: {\n method: 'DELETE'\n }\n });\n};\n\nexport const continueChatApi = (orderId, duration) => {\n log(LOG_LEVELS.INFO, 'API', 'continueChatApi');\n return request(`/orders/${ orderId }/chats?duration=${ duration }`, {\n opts: {\n method: 'POST'\n }\n });\n};\n\nexport const loadOrderDetailsAPI = (orderId) => {\n log(LOG_LEVELS.INFO, 'API', 'loadOrderDetailsAPI');\n return request(`/my/orders/${ orderId }`);\n};\n\nexport const logInAPI = (email, password, remeberMe, recaptchaToken) => {\n log(LOG_LEVELS.INFO, 'API', 'logInAPI');\n return request('/users/sign_in', {\n opts: {\n method: 'POST',\n body: JSON.stringify({\n user: {\n email,\n password,\n remember_me: remeberMe\n },\n rc_token: recaptchaToken\n })\n }\n });\n};\n\nexport const registerAPI = (email, password, rememberMe, recaptchaToken) => {\n log(LOG_LEVELS.INFO, 'API', 'registerAPI');\n return request('/users', {\n opts:{\n method: 'POST',\n body: JSON.stringify({\n user: {\n email,\n password,\n intention: 'client',\n remember_me: rememberMe\n },\n rc_token: recaptchaToken\n })\n }\n });\n};\n\nexport const authSocAPI = ({\n facebookToken, googleToken, rememberMe, consentedToGDPR\n}) => {\n log(LOG_LEVELS.INFO, 'API', 'authSocAPI');\n return request('/users', {\n opts: {\n method: 'POST',\n body: JSON.stringify({\n user: {\n facebook_token: facebookToken,\n google_id_token: googleToken,\n remember_me: rememberMe,\n consent_to_privacy_policy: consentedToGDPR,\n intention: 'client'\n }\n })\n }\n });\n};\n\nexport const getCurrentUserAPI = () => {\n log(LOG_LEVELS.INFO, 'API', 'getCurrentUserAPI');\n const query = queryString.stringify({ with_verification: true });\n return request(`/my/account?${ query }`);\n};\n\nexport const updateUserAPI = (payload) => request('/my/account/', {\n opts: {\n method: 'PUT',\n body: JSON.stringify(toSnakeCase({ user:{ ...payload } }))\n }\n});\n\nexport const updateTcpBanner = () => request('/my/account/update_tc_and_pp_version', {\n opts: {\n method: 'PUT'\n }\n});\n\nexport const checkNickname = nickname => {\n log(LOG_LEVELS.INFO, 'API', 'checkNickname');\n const queryParameters = queryString.stringify({ nickname });\n return request(`/my/account/check?${ queryParameters }`);\n};\n\nexport const introduceYourselfUpdate = ({ nickname, gender, date }) => {\n log(LOG_LEVELS.INFO, 'API', 'introduceYourselfUpdate');\n return request('/my/account/', {\n opts: {\n method: 'PUT',\n body: JSON.stringify({ nickname, gender, date_of_birth: date })\n }\n });\n};\n\nexport const sendOrderReviewAPI = (feedback, orderId) => {\n log(LOG_LEVELS.INFO, 'API', 'sendOrderReviewAPI');\n return request(`/my/orders/${ orderId }`, {\n opts: {\n method: 'PUT',\n body: JSON.stringify(toSnakeCase(feedback))\n }\n });\n};\n\nexport const deleteOrderAPI = (orderId) => {\n log(LOG_LEVELS.INFO, 'API', 'deleteOrderAPI');\n return request(`/my/orders/${ orderId }`, {\n opts: {\n method: 'PUT',\n body: JSON.stringify({ delete: true })\n }\n });\n};\n\nexport const sendOrderMessageAPI = (orderId, authorName, text) => {\n log(LOG_LEVELS.INFO, 'API', 'sendOrderMessageAPI');\n return request(`/my/orders/${ orderId }/messages`, {\n opts: {\n method: 'POST',\n body: JSON.stringify(toSnakeCase({ message: { authorName, text } }))\n }\n });\n};\n\nexport const passwordUpdateAPI = (password, confirmPassword) => {\n log(LOG_LEVELS.INFO, 'API', 'passwordUpdateAPI');\n return request('/my/account', {\n opts:{\n method: 'PUT',\n body: JSON.stringify({ user: { password, password_confirmation: confirmPassword } })\n }\n });\n};\n\nexport const loadNotificationPreferencesAPI = () => {\n log(LOG_LEVELS.INFO, 'API', 'loadNotificationPreferencesAPI');\n return request('/my/notification_preferences');\n};\n\nexport const updateNotificationPreferencesAPI = (preferences) => {\n log(LOG_LEVELS.INFO, 'API', 'updateNotificationPreferencesAPI');\n return request('/my/notification_preferences', {\n opts: {\n method: 'PUT',\n body: JSON.stringify(toSnakeCase(preferences))\n }\n });\n};\n\nexport const logOutAPI = () => {\n log(LOG_LEVELS.INFO, 'API', 'logOutAPI');\n return request('/users/logout/', {\n opts: {\n method: 'DELETE'\n }\n });\n};\n\nexport const getCreditsAPI = () => {\n log(LOG_LEVELS.INFO, 'API', 'getCreditsAPI');\n const queryParameters = queryString.stringify({\n with_payment_sources: true, ...browserContext\n });\n return request(`/my/app_credits?${ queryParameters }`);\n};\n\nexport const createNotifyMeAPI = (advisorId, additionParams) => {\n log(LOG_LEVELS.INFO, 'API', 'postNotifyMeAPI');\n return request(`/mba/advisors/${ advisorId }/availability_notification`, {\n opts: {\n method: 'POST',\n body: JSON.stringify(toSnakeCase(additionParams))\n }\n });\n};\n\nexport const deleteNotifyMeAPI = (advisorId) => {\n log(LOG_LEVELS.INFO, 'API', 'postNotifyMeAPI');\n return request(`/mba/advisors/${ advisorId }/availability_notification`, {\n opts: {\n method: 'DELETE'\n }\n });\n};\n\nexport const promoCodeAPI = (code) => {\n log(LOG_LEVELS.INFO, 'API', 'promoCodeAPI');\n return request('/my/promo_code_redemptions', {\n opts:{\n method: 'POST',\n body: JSON.stringify({ code })\n }\n });\n};\n\nexport const passwordForgotAPI = (email) => {\n log(LOG_LEVELS.INFO, 'API', 'passwordForgotAPI');\n return request('/users/password', {\n opts: {\n method: 'POST',\n body: JSON.stringify({ user: { email } })\n }\n });\n};\n\nexport const loadTransciptAPI = (orderId) => {\n log(LOG_LEVELS.INFO, 'API', 'loadTransciptAPI');\n return request(`/my/orders/${ orderId }/chat_messages`);\n};\n\nexport const loadCashbackStatusAPI = () => {\n log(LOG_LEVELS.INFO, 'API', 'loadCashbackStatusAPI');\n return request('/my/cashbacks/new');\n};\n\nexport const sendPNTokenToServerAPI = (token) => {\n log(LOG_LEVELS.INFO, 'API', 'sendPNTokenToServerAPI');\n\n return request('/my/account', {\n opts: {\n method: 'PUT',\n body: JSON.stringify({ user: { web_push_token: token } })\n }\n });\n};\n\nexport const changeAppStateAPI = (orderId, state) => {\n log(LOG_LEVELS.INFO, 'API', 'changeAppStateAPI');\n return request(`/my/orders/${ orderId }/client_state?state=${ state }`, {\n opts:{\n method: 'PUT'\n }\n });\n};\n\nexport const loadAvailablePaymentSourcesApi = () => {\n log(LOG_LEVELS.INFO, 'API', 'loadAvailablePaymentSourcesApi');\n const queryParameters = queryString.stringify({ ...browserContext });\n return request(`/my/payment_sources?${ queryParameters }`);\n};\n\nexport const removePaymentSourceApi = (id) => {\n log(LOG_LEVELS.INFO, 'API', 'removePaymentSourceApi');\n return request(`/my/payment_sources/${ id }`, {\n opts:{\n method: 'DELETE'\n }\n });\n};\n\nexport const addPaymentSourceApi = (method) => {\n log(LOG_LEVELS.INFO, 'API', 'addPaymentSourceApi');\n return request('/my/payment_sources', {\n opts: {\n method: 'POST',\n body: JSON.stringify({ method, ...browserContext })\n }\n });\n};\n\nexport const loadPaymentOptionsApi = (token) => {\n log(LOG_LEVELS.INFO, 'API', 'loadPaymentOptionsApi');\n return request('/my/payment_sources/current', {\n opts: {\n method: 'POST',\n body: JSON.stringify({ ...browserContext, rc_token: token })\n }\n });\n};\n\nexport const editPaymentSourceApi = ({ id, params, type }) => {\n const parameters = JSON.stringify({ ...params, ...browserContext });\n log(LOG_LEVELS.INFO, 'API', `${ type }, PARAMETERS: ${ parameters }`);\n return request(`/my/payment_sources/${ id }`, {\n opts: {\n method: 'PUT',\n body: parameters\n }\n });\n};\n\nexport const getAvatarPresignedURL = () => {\n log(LOG_LEVELS.INFO, 'API', 'getAvatarPresignedURL');\n return request('/my/account/upload_configs?asset_type=avatar');\n};\n\nexport const voipStartCallAPI = (advisorId, duration, ppm, type, tryout, clickSource) => {\n log(LOG_LEVELS.INFO, 'API', 'voipStartCallAPI', advisorId, duration, ppm, type, tryout, clickSource);\n return request('/my/conversations', {\n opts: {\n method: 'POST',\n body: JSON.stringify({\n advisor_id: advisorId,\n duration,\n price_per_minute: ppm,\n conversation_type: type,\n tryout,\n click_source: clickSource\n })\n }\n });\n};\n\nexport const voipContinueCallAPI = (orderId, duration, ppm) => {\n log(LOG_LEVELS.INFO, 'API', 'voipContinueCallAPI', orderId, duration, ppm);\n return request(`/orders/${ orderId }/conversations`, {\n opts: {\n method: 'POST',\n body: JSON.stringify({\n duration,\n price_per_minute: ppm\n })\n }\n });\n};\n\nexport const voipNotifyPeerConnectedAPI = (orderId, conversationId) => {\n log(LOG_LEVELS.INFO, 'API', 'voipNotifyPeerConnectedAPI', orderId, conversationId);\n return request(`/orders/${ orderId }/conversations/${ conversationId }/peers`, {\n opts: {\n method: 'PUT'\n }\n });\n};\n\nexport const voipPullConversationAPI = (orderId, conversationId) => {\n log(LOG_LEVELS.INFO, 'API', 'voipPullConversationAPI', orderId, conversationId);\n return request(`/orders/${ orderId }/conversations/${ conversationId }`, {\n opts: {\n method: 'PUT'\n }\n });\n};\n\nexport const voipTimerEndConversationAPI = (orderId, conversationId) => {\n log(LOG_LEVELS.INFO, 'API', 'voipTimerEndConversationAPI', orderId, conversationId);\n return request(`/orders/${ orderId }/conversations/${ conversationId }/timer`, {\n opts: {\n method: 'DELETE'\n }\n });\n};\n\nexport const voipHangupConversationAPI = (orderId, conversationId) => {\n log(LOG_LEVELS.INFO, 'API', 'voipHangupConversationAPI', orderId, conversationId);\n return request(`/orders/${ orderId }/conversations/${ conversationId }`, {\n opts: {\n method: 'DELETE'\n }\n });\n};\n\nexport const voipForceHangupConversationAPI = (orderId, conversationId) => {\n log(LOG_LEVELS.INFO, 'API', 'voipForceHangupConversationAPI', orderId, conversationId);\n return request(`/orders/${ orderId }/conversations/${ conversationId }/force`, {\n opts: {\n method: 'DELETE'\n }\n });\n};\n\nexport const voipPingAPI = (url, buyerDuration, advisorDuration, sequenceNumber) => {\n log(LOG_LEVELS.INFO, 'API', 'voipPingAPI', url, buyerDuration, advisorDuration, sequenceNumber);\n return request(`${ url }?duration_buyer=${ buyerDuration }&duration_advisor=${ advisorDuration }&sequence_number=${ sequenceNumber }`, {\n opts: {\n method: 'POST'\n },\n ignoreBaseUrl: true\n });\n};\n\nexport const getAdditionalPurchaseInfoFromURL = (URL) => {\n log(LOG_LEVELS.INFO, 'API', `getAdditionalPurchaseInfoFromURL ${ URL }`);\n return request(URL, { ignoreUserUpdate: true });\n};\n\nexport const getUserVerificationsAPI = () => {\n log(LOG_LEVELS.INFO, 'API', 'getUserVerificationsAPI');\n return request('/my/user_verifications');\n};\n\nexport const createUserVerificationAPI = (verification) => {\n log(LOG_LEVELS.INFO, 'API', 'createUserVerificationAPI');\n return request('/my/user_verifications', { opts: { method: 'POST', body: JSON.stringify(verification) } });\n};\n\nexport const getVerificationStatusAPI = (id) => {\n log(LOG_LEVELS.INFO, 'API', `getVerificationStatus for id: ${ id }`);\n return request(`/my/user_verifications/${ id }`);\n};\n\nexport const jumioUploadedAPI = (verification) => {\n const { id } = verification;\n log(LOG_LEVELS.INFO, 'API', `jumioUploadedAPI for id: ${ id }`);\n return request(`/my/user_verifications/${ id }`, { opts: { method:'PUT', body: JSON.stringify(verification) } });\n};\n\nexport const getHomePage = (params) => {\n log(LOG_LEVELS.INFO, 'API', 'getHomePage');\n const queryParameters = queryString.stringify(toSnakeCase(params));\n\n // return request(`/garden/home?${ queryParameters }`);\n return request(`/mba/home?${ queryParameters }`);\n};\n\nexport const getSearchList = (params) => {\n const {\n includeOffline, minNumberOfReviewsGe, ppmGe, ppmLe, readingVia, query\n } = toCamelCase(queryString.parse(window.location.search));\n const queryParameters = queryString.stringify(toSnakeCase({\n ...params, includeOffline, minNumberOfReviewsGe, ppmGe, ppmLe, readingVia, query\n }));\n return request(`/mba/advisors?${ queryParameters }`);\n};\n\nexport const getCreditCardProcessingDataApi = ({ url, params }) => {\n const queryParameters = queryString.stringify({ ...params });\n log(LOG_LEVELS.INFO, 'API', `getCreditCardProcessingDataApi, PARAMETERS: ${ queryParameters }`);\n return request(`${ url }${ queryParameters }`, { ignoreBaseUrl: true });\n};\n\nconst createCreditCardProcessingPurchaseRequest = (params) => {\n const parameters = JSON.stringify(toSnakeCase({ ...params }));\n log(LOG_LEVELS.INFO, 'API', `createCreditCardProcessingPurchaseRequest, PARAMETERS: ${ parameters }`);\n return request('/my/user_credits', {\n opts: {\n method: 'POST',\n body: parameters\n }\n });\n};\n\nexport const createCreditCardProcessingPurchaseApi = (params) => {\n log(LOG_LEVELS.INFO, 'API', 'createCreditCardProcessingPurchaseApi');\n return withCkoGetDeviceSessionIdApi({ callback: createCreditCardProcessingPurchaseRequest, params });\n};\n\nexport const getCreditCardProcessingPurchaseResponceApi = (id, { platform }) => {\n log(LOG_LEVELS.INFO, 'API', `getCreditCardProcessingPurchaseResponce ID: ${ id }`);\n const queryParameters = queryString.stringify(toSnakeCase({ platform }));\n return request(`/my/user_credits/${ id }?${ queryParameters }`, { ignoreUserUpdate: true });\n};\nexport const getDirectMessagesApi = (id) => {\n log(LOG_LEVELS.INFO, 'API', `getDirectMessagesApi ID: ${ id }`);\n const queryParameters = queryString.stringify(toSnakeCase({ openFrom: 'advisor_dm_email' }));\n return request(`/direct_messages/${ id }?${ queryParameters }`, { ignorError404: true });\n};\n\nexport const getSEODataAPI = (route) => {\n log(LOG_LEVELS.INFO, 'API', `getSEOData for ${ route }`);\n return request(`/seo_data${ route }`, { ignorError404: true });\n};\n\nexport const getFeesApi = ({ amountToPay }) => {\n log(LOG_LEVELS.INFO, 'API', `getFees for ${ amountToPay }`);\n const query = queryString.stringify({ amount_to_pay: amountToPay });\n return request(`/my/app_credits/calculate_fees?${ query }`);\n};\n\nexport const getActivityApi = (advisorId, filter, paginationParams) => {\n log(LOG_LEVELS.INFO, 'API', 'getActivityApi', advisorId, filter, paginationParams);\n const query = queryString.stringify({ ...paginationParams });\n return request(`/my/activity?advisor_id=${ advisorId }&show_only=${ filter }&${ query }`);\n};\n\nexport const createActivityMessage = (advisorId, message) => {\n log(LOG_LEVELS.INFO, 'API', 'createActivityMessage', advisorId, message);\n return request(`/advisors/${ advisorId }/feed_messages`, {\n opts: {\n method: 'POST',\n body: JSON.stringify({\n message_kind: message,\n content: {\n message\n }\n })\n }\n });\n};\n\nconst validateCreditCardRequest = (params) => {\n const parameters = JSON.stringify(toSnakeCase({ ...params }));\n log(LOG_LEVELS.INFO, 'API', `validateCreditCardRequest, PARAMETERS: ${ parameters }`);\n return request('/my/payment_validations', {\n opts: {\n method: 'POST',\n body: parameters\n }\n });\n};\n\nexport const validateCreditCardApi = ({ requestParams }) => {\n log(LOG_LEVELS.INFO, 'API', 'validateCreditCardApi');\n return withCkoGetDeviceSessionIdApi({ callback: validateCreditCardRequest, params: requestParams });\n};\n\nexport const getValidateCreditCardStatusApi = ({ id }) => {\n log(LOG_LEVELS.INFO, 'API', 'getValidateCreditCardStatusApi');\n return request(`/my/payment_validations/${ id }`);\n};\n\nexport const getMyAccountCreditsApi = (sequence) => {\n log(LOG_LEVELS.INFO, 'API', 'getMyAccountCreditsApi');\n return request(`/my/account/credits?sequence=${ sequence }`);\n};\n\nexport const getCategoriesAPI = () => {\n log(LOG_LEVELS.INFO, 'API', 'loadCategoriesAPI');\n return request('/categories');\n};\n\nexport const welcomePromoCodesAPI = (deeplink) => {\n log('API', 'welcomePromoCodesAPI');\n return request('/welcome_promo_codes ', {\n opts:{\n method: 'POST',\n body: JSON.stringify({\n deeplink\n })\n }\n });\n};\n\nexport const getSimilarOnlineAdvisorsApi = (id) => {\n log('API', 'getSimilarOnlineAdvisorsApi');\n return request(`/mba/similar_online_advisors?advisor_id=${ id }`);\n};\n\nexport const getMyAccountBadgesApi = ({ advisorId }) => {\n log('API', 'getMyAccountBadgesApi');\n const query = queryString.stringify({ advisor_id: advisorId });\n return request(`/my/account/badges?${ query }`);\n};\n","import { isPGW, toCamelCase } from '../../common/config/utils';\nimport i18n from './i18n';\n\nexport const appRoutes = {\n home: 'routes.home',\n psychics: 'specificRoutes.psychicList',\n advisor: 'specificRoutes.psychic',\n myOrders: 'specificRoutes.orderList',\n advisorOrders: 'specificRoutes.advisorList',\n orderDetails: 'specificRoutes.orderDetails',\n specialities: 'routes.specialities',\n favoriteAdvisors: 'dynamicRoutes.favorite_advisors',\n addFunds: 'routes.addFunds',\n promoCode: 'routes.promoCode',\n transcript: 'routes.transcript',\n settings: 'routes.settings',\n cashback: 'routes.cashback',\n paymentSources: 'routes.paymentSources',\n emptyPreload: 'routes.emptyPreload',\n spendLimits: 'routes.spendLimits',\n register: 'routes.register',\n signin: 'routes.signin',\n purchaseDetails: 'routes.purchaseDetails',\n notificationPreferences: 'routes.notificationPreferences',\n palmReadings: 'routes.palmReadings'\n};\n\nexport const dynamicRoutes = Object.fromEntries(\n Object.entries(window.config.uiSettings.routes)\n .map(([key, value]) => [`dynamicRoutes.${ toCamelCase(key) }`, toCamelCase(value)])\n);\n\nexport const dynamicRoutesKeys = Object.keys(dynamicRoutes);\nexport const specialityRoutesKeys = Object.keys(dynamicRoutes).filter(key => dynamicRoutes[key].isSpeciality);\n\nconst createCategoryData = ({ routeKey, screenStack }) => {\n const route = dynamicRoutes[routeKey];\n const routeData = {\n [routeKey]: {\n name: (route?.translations?.[i18n.language].name || route?.name),\n slug: routeKey,\n params: {\n params: { ...route?.params },\n needRefresh: true,\n trackCategoryEvent: true\n },\n directScreenStack: { ...screenStack },\n type: 'specialities'\n }\n };\n return routeData;\n};\n\nconst directScreenStackDefaultCategory = () => {\n const defaultRoute = dynamicRoutesKeys\n .find(key => dynamicRoutes[key].isDefault);\n\n if (defaultRoute) return defaultRoute;\n\n if (process.env.APP_CONTEXTS === 'ka') return 'dynamicRoutes.psychic_reading';\n\n return 'dynamicRoutes.psychic_readings';\n};\n\nconst directScreenStack = {\n advisor: {\n [appRoutes.home]: { name: i18n.t('sideMenu.home'), slug: appRoutes.home },\n ...createCategoryData({ routeKey: directScreenStackDefaultCategory() })\n },\n categoty: {\n [appRoutes.home]: { name: i18n.t('sideMenu.home'), slug: appRoutes.home }\n },\n myOrders: {\n [appRoutes.home]: { name: i18n.t('sideMenu.home'), slug: appRoutes.home }\n },\n advisorOrders: {\n [appRoutes.home]: { name: i18n.t('sideMenu.home'), slug: appRoutes.home },\n [appRoutes.myOrders]: { name: i18n.t('activity.my_activity'), slug: appRoutes.myOrders }\n },\n transcript: {\n [appRoutes.home]: { name: i18n.t('sideMenu.home'), slug: appRoutes.home },\n [appRoutes.psychics]: { name: i18n.t('all_advisors'), slug: appRoutes.psychics }\n },\n categoties: {\n [appRoutes.home]: { name: i18n.t('sideMenu.home'), slug: appRoutes.home }\n }\n};\n\nconst createCategoryNavigationStackBarRoutesData = ({ screenStack }) => dynamicRoutesKeys\n .reduce((data, routeKey) => {\n const routeData = createCategoryData({ routeKey, screenStack });\n return { ...data, ...routeData };\n }, {});\n\nexport const navigationStackBarRoutesData = {\n [appRoutes.advisor]: { directScreenStack: { ...directScreenStack.advisor }, type: 'advisor' },\n [appRoutes.home]: { name: i18n.t('sideMenu.home'), slug: appRoutes.home },\n ...createCategoryNavigationStackBarRoutesData({ screenStack: directScreenStack.categoty }),\n [appRoutes.myOrders]: {\n directScreenStack: { ...directScreenStack.myOrders }, name: i18n.t('activity.my_activity'), slug: appRoutes.myOrders, type: 'myOrders'\n },\n [appRoutes.advisorOrders]: {\n directScreenStack: { ...directScreenStack.advisorOrders }, type: 'advisor'\n },\n [appRoutes.transcript]: {\n directScreenStack: { ...directScreenStack.transcript }, type: 'advisor'\n },\n [appRoutes.specialities]: {\n directScreenStack: { ...directScreenStack.categoties }, name: i18n.t('sideMenu.specialities'), slug: appRoutes.specialities, type: 'Specialities'\n }\n};\n\n// Settings Routes\n\nconst componentsSettings = {\n HomePage: {\n name: 'HomePage',\n withoutSuspense: true\n },\n Advisor: {\n name: 'Advisor',\n withoutSuspense: true\n },\n SearchResults: {\n name: 'SearchResults'\n },\n MyOrders: {\n name: 'MyOrders'\n },\n AdvisorOrders: {\n name: 'AdvisorOrders',\n isProtected: true\n },\n OrderDetails: {\n name: 'OrderDetails',\n isProtected: true\n },\n AddFunds: {\n name: 'AddFunds',\n isProtected: true\n },\n PromoCode: {\n name: 'PromoCode',\n isProtected: true\n },\n Transcript: {\n name: 'Transcript',\n isProtected: true\n },\n Settings: {\n name: 'Settings',\n isProtected: true\n },\n Cashback: {\n name: 'Cashback',\n isProtected: true\n },\n PaymentSources: {\n name: 'PaymentSources',\n isProtected: true\n },\n EmptyPreload: {\n name: 'EmptyPreload'\n },\n SpendLimitsVerifications: {\n name: 'SpendLimitsVerifications',\n isProtected: true\n },\n SignInPage: {\n name: 'SignInPage'\n },\n PurchaseDetailsForMobileApp: {\n name: 'PurchaseDetailsForMobileApp'\n },\n Categories: {\n name: 'Categories'\n },\n NotificationPreferences: {\n name: 'NotificationPreferences',\n isProtected: true\n },\n NoSearchResults: {\n name: 'NoSearchResults'\n }\n};\n\nconst getDynamicRoutes = () => {\n const routes = Object.keys(dynamicRoutes).reduce((res, key) => {\n res[key] = {\n ...componentsSettings.SearchResults,\n needReplaceHeaderSearch: true,\n shouldShowNavigationStackBar: true,\n shouldSetNavigationStackBar: true,\n shouldClearNavigationStackBar: true,\n showSmartBanner: true,\n showBanner: true\n };\n\n return res;\n }, {});\n\n return routes;\n};\n\nexport const applicationRoutes = {\n [appRoutes.home]: {\n ...componentsSettings.HomePage,\n shouldSetNavigationStackBar: true,\n showSmartBanner: true,\n showBanner: true\n },\n [appRoutes.psychics]: { ...componentsSettings.SearchResults, needReplaceHeaderSearch: true },\n [appRoutes.favoriteAdvisors]: { ...componentsSettings.SearchResults, isProtected: true },\n [appRoutes.advisor]: {\n ...componentsSettings.Advisor,\n shouldShowNavigationStackBar: true,\n shouldSetNavigationStackBar: true,\n showBanner: true\n },\n [appRoutes.myOrders]: {\n ...componentsSettings.MyOrders,\n shouldShowNavigationStackBar: true,\n shouldSetNavigationStackBar: true,\n shouldClearNavigationStackBar: true\n },\n [appRoutes.advisorOrders]: {\n ...componentsSettings.AdvisorOrders,\n shouldShowNavigationStackBar: true,\n shouldSetNavigationStackBar: true\n },\n [appRoutes.orderDetails]: componentsSettings.OrderDetails,\n [appRoutes.addFunds]: componentsSettings.AddFunds,\n [appRoutes.promoCode]: componentsSettings.PromoCode,\n [appRoutes.transcript]: { ...componentsSettings.Transcript, shouldSetNavigationStackBar: true },\n [appRoutes.settings]: componentsSettings.Settings,\n ...isPGW() ? { [appRoutes.cashback]: componentsSettings.Cashback } : undefined,\n [appRoutes.paymentSources]: componentsSettings.PaymentSources,\n [appRoutes.emptyPreload]: componentsSettings.EmptyPreload,\n [appRoutes.spendLimits]: componentsSettings.SpendLimitsVerifications,\n [appRoutes.register]: componentsSettings.SignInPage,\n [appRoutes.signin]: componentsSettings.SignInPage,\n [appRoutes.purchaseDetails]: { ...componentsSettings.PurchaseDetailsForMobileApp, showBanner: true },\n [appRoutes.specialities]: {\n ...componentsSettings.Categories,\n shouldShowNavigationStackBar: true,\n shouldSetNavigationStackBar: true\n },\n [appRoutes.notificationPreferences]: componentsSettings.NotificationPreferences,\n ...isPGW() ? { [appRoutes.palmReadings]: componentsSettings.NoSearchResults } : undefined,\n ...getDynamicRoutes()\n};\n\nexport const getSpecialitiesRoutes = () => specialityRoutesKeys\n .sort((a, b) => dynamicRoutes[a].order - dynamicRoutes[b].order);\n","import React from 'react';\nimport Bugsnag from '@bugsnag/js';\nimport BugsnagPluginReact from '@bugsnag/plugin-react';\nimport env from './variables';\nimport {\n initLogger, log, LOG_LEVELS, sendLogsIfNeed\n} from '../../common/config/app_logger';\n\nconst onErrorFunc = (event) => {\n log(LOG_LEVELS.ERROR, 'Bugsnug', 'Uncaught error', event.originalError);\n sendLogsIfNeed();\n return env.BUGSNAG_TRACKING_EVENTS || !window.store.getState().user.impersonated;\n};\n\nBugsnag.start({\n apiKey: env.BUGSNAG_KEY,\n version: env.CLIENT_APP_VERSION,\n // <<<<<<< HEAD\n // beforeSend: (report) => {\n // if (!env.BUGSNAG_TRACKING_EVENTS) report.ignore();\n // if (window.store.getState().user.impersonated) report.ignore();\n // }\n // =======\n plugins: [new BugsnagPluginReact()],\n enabledBreadcrumbTypes: ['error', 'manual', 'navigation', 'process', 'request', 'state', 'user'],\n onError: onErrorFunc\n});\n\nconst ErrorBoundary = Bugsnag.getPlugin('react').createErrorBoundary(React);\ninitLogger(env.LOGGER_ENDPOINT, env.LOGGER_SECRET);\n\nexport default ErrorBoundary;\n","import { appContext, isKA, isPS } from '../../common/config/utils';\nimport i18n from './i18n';\n\nconst specificValues = {\n readingViaFilters: {\n pg: {\n default: 'filter.any',\n chat: 'filter.live_chat',\n vc: 'filter.video_call',\n voice_call: 'filter.voice_call'\n },\n ka: {\n default: 'filter.any',\n chat: 'filter.live_chat',\n voice_call: 'filter.voice_call'\n },\n ps: {\n default: 'filter.any',\n chat: 'filter.live_chat',\n voice_call: 'filter.voice_call'\n }\n },\n socialLinks: {\n pg: {\n fb: 'https://www.facebook.com/purplegardenpsyc',\n yt: 'https://www.youtube.com/@purplegardenpsychics',\n tt: 'https://www.tiktok.com/@purplegardenpsychics',\n ig: 'https://www.instagram.com/purplegardenpsychics',\n x: 'https://twitter.com/PurpleGarden'\n },\n ka: {\n fb: 'https://www.facebook.com/KasambaPsychics',\n yt: 'https://www.youtube.com/@Kasamba',\n tt: 'https://www.tiktok.com/@kasamba_psychics',\n ig: 'https://www.instagram.com/kasamba_psychics',\n x: 'https://twitter.com/Kasamba'\n },\n ps: {\n fb: 'https://www.facebook.com/PsiquicosMediums',\n yt: 'https://www.youtube.com/@fortunicapsiquicos-tuguiae4286',\n tt: 'https://www.tiktok.com/@psiquicosnet',\n ig: 'https://www.instagram.com/psiquicosnet',\n x: 'https://twitter.com/psiquicosnet'\n }\n },\n downloadLink: {\n pg: {\n appleItune: 'https://apps.apple.com/us/app/purple-garden-psychic-readings/id1225116346',\n googlePlay: 'https://play.google.com/store/apps/details?id=co.purplegarden.android'\n },\n ka: {\n appleItune: 'https://apps.apple.com/us/app/kasamba-live-psychic-reading/id1093474684',\n googlePlay: 'https://play.google.com/store/apps/details?id=com.liveperson.kasamba.android'\n },\n ps: {\n appleItune: 'https://apps.apple.com/us/app/purple-garden-psychic-readings/id1225116346',\n googlePlay: 'https://play.google.com/store/apps/details?id=co.purplegarden.android'\n }\n },\n contactUsLink: {\n pg: {\n contactUs: 'mailto:support@purplegarden.co'\n },\n ka: {\n contactUs: 'mailto:support@kasamba.com'\n },\n ps: {\n contactUs: 'mailto:support@purplegarden.co'\n }\n },\n projectLinks: {\n pg: {\n affiliation: 'https://bargestech.hasoffers.com/signup',\n privacyPolicy: '/inapp-privacy-pg',\n tos: '/inapp-TOS-pg',\n aboutUs: '/about-us',\n myHoroscope: '/horoscope',\n forAdvisors: '/for-advisors'\n },\n ka: {\n affiliation: 'https://bargestech.hasoffers.com/signup',\n privacyPolicy: '/lp/privacy-policy',\n tos: '/lp/terms_and_conditions/',\n aboutUs: '/lp/about-us/',\n myHoroscope: '/horoscope/',\n articles: '/articles/',\n forAdvisors: '/for-advisors/'\n },\n ps: {\n en: {\n affiliation: 'https://bargestech.hasoffers.com/signup',\n privacyPolicy: '/en/privacy_policy',\n tos: '/en/terms_of_use',\n aboutUs: '/quienes-somos',\n myHoroscope: '/horoscopos',\n articles: '/articulos',\n forAdvisors: '/conviertete-en-asesor'\n },\n es: {\n affiliation: 'https://bargestech.hasoffers.com/signup',\n privacyPolicy: '/politica_de_privacidad',\n tos: '/terminos_de_uso',\n aboutUs: '/quienes-somos',\n myHoroscope: '/horoscopos',\n articles: '/articulos',\n forAdvisors: '/conviertete-en-asesor'\n },\n pt: {\n affiliation: 'https://bargestech.hasoffers.com/signup',\n privacyPolicy: '/pt/politica_de_privacidade',\n tos: '/pt/termos_de_uso',\n aboutUs: '/pt/quem-somos',\n myHoroscope: '/pt/horoscopos',\n articles: '/pt/artigos',\n forAdvisors: '/pt/torne-se-consultor'\n }\n }\n }\n};\n\nconst getContext = () => {\n if (isKA()) return appContext.ka;\n if (isPS()) return appContext.ps;\n return appContext.pg;\n};\n\nconst context = getContext();\n\nexport const popoverKinds = {\n filter: 'filter'\n};\n\nexport const sharePopupKind = {\n share: 'share'\n};\n\nexport const filtersAllowedParams = [\n 'query',\n 'reading_via',\n 'min_number_of_reviews_ge',\n 'ppm_ge',\n 'ppm_le',\n 'include_offline'\n];\n\nexport const readingViaFilters = specificValues.readingViaFilters[context];\n\nexport const numberOfReviewsFilters = {\n 0: 'filter.over_0',\n 10: 'filter.over_10',\n 100: 'filter.over_100',\n 500: 'filter.over_500'\n};\n\nexport const socialLinks = specificValues.socialLinks[context];\n\nexport const downloadLink = specificValues.downloadLink[context];\n\nexport const contactUsLink = specificValues.contactUsLink[context];\n\nconst projectLinks = specificValues.projectLinks[context][i18n.language] || specificValues.projectLinks[context];\n\nexport const appLinks = {\n ...projectLinks,\n customerSupport: window?.config?.pgZendeskDomain,\n blog: '/blog'\n};\n\nexport const psychicsListTypes = {\n DEFAULT: 'DEFAULT',\n TERMINATED: 'TERMINATED',\n NOTAVAILABLEFORPG: 'NOTAVAILABLEFORPG'\n};\n\nexport const appGeneralPopupTheme = {\n CHAT_ENDED: 'CHAT_ENDED',\n DEFAULT: 'DEFAULT',\n AFFILIATE_PROMO: 'AFFILIATE_PROMO',\n INTRO_DATE_PICKER: 'INTRO_DATE_PICKER',\n INTRO: 'INTRO',\n ABSOLUTE_POPUP: 'ABSOLUTE_POPUP',\n SCROLLED_POPUP: 'SCROLLED_POPUP',\n CENTERED: 'CENTERED',\n BOTTOM: 'BOTTOM',\n REGISTER: 'REGISTER'\n};\n\nexport const promoCodeTheme = {\n AFFILIATE_PROMO: 'AFFILIATE_PROMO',\n DEFAULT: 'DEFAULT'\n};\n\nexport const rateReviewTheme = {\n CHAT_ENDED: 'CHATENDED',\n DEFAULT: 'DEFAULT'\n};\n\nexport const starRateTheme = {\n ADVISOR_PROFILE_BROWSER: 'ADVISOR_PROFILE_BROWSER',\n DEFAULT: 'DEFAULT'\n};\n\nexport const specialitiesClickSource = {\n homePage: 'home page',\n menu: 'menu',\n advisorProfile: 'advisor profile'\n};\n\nexport const propertiesNames = {\n appColor: '--app-color',\n backgroundSecondary: '--background-secondary',\n liveChatChannels: '--live-chat-channels',\n voiceCallChannels: '--voice-call-channels',\n borderPrimary: '--border-primary',\n appOverlayBlackColor: '--app-overlay-black-color',\n smartBannerBackground: '--smart-banner-background',\n addCreditCardZenModeContainerBackgroundColor: '--add-credit-card-zen-mode-container-background-color',\n noPaymentMethodImgWidth: '--no-payment-method-img-width',\n connectBtnMaxWidth: '--connect-btn-max-width',\n specialitiesShadow: '--specialities-shadow',\n advisprSpecialitiesMobileDirection: '--advispr-specialities-mobile-direction',\n minPriceTextDisplay: '--min-price-text-display',\n durationItemPriceContainerBackgroundColor: '--duration-item-price-container-background-color',\n recommendedAdvisorPriceFlexDirection: '--recommended-advisor-price-flex-direction',\n recommendedAdvisorPriceAlign: '--recommended-advisor-price-align',\n piceTextContainerMarginLeft: '--pice-text-container-margin-left',\n durationOptionXfmLabelColor: '--duration-option-xfm-label-color',\n durationItemPriceContainerBorderRadius: '--duration-item-price-container-border-radius',\n durationItemSelectedPriceContainerBackgroundColor: '--duration-item-selected-price-container-background-color',\n advisorPreviewXfmLabelBackground: '--advisor-preview-xfm-label-background',\n advisorPreviewXfmLabelBorderRadius: '--advisor-preview-xfm-label-border-radius',\n advisorBusyColor: '--advisor-busy-color'\n};\n\nexport const salesPriceType = {\n salesPrice: 'sales_price',\n personalSalesPrice: 'personal_sales_price',\n couponSalesPrice: 'coupon_sales_price'\n};\n\nexport const minSalesPriceType = {\n liveModeMinSalesPrice: 'live_mode_min_sales_price',\n personalLiveModeMinSalesPrice: 'personal_live_mode_min_sales_price',\n couponLiveModeMinSalesPrice: 'coupon_live_mode_min_sales_price'\n};\n\nexport const promotionLabelTypeScreens = {\n homePage: 'homePage',\n advisorProfile: 'advisorProfile',\n searchResult: 'searchResult'\n};\n\nexport const liveModeState = {\n online: 'online',\n offline: 'offline',\n busy: 'busy'\n};\n\nexport const AdvisorModesThemes = {\n preview: 'preview',\n staffPick: 'staffPick',\n recommendedAdvisor: 'recommendedAdvisor'\n};\n\nexport const purchaseFlowTypes = {\n balance: 'balance',\n payAsYouGo: 'pay as you go',\n minutes: 'minutes',\n addFunds: 'add funds',\n paymentMethods: 'payment methods'\n};\n\nexport const chatTypeToOrderType = {\n 'chat:type:text': 'chat',\n 'chat:type:video': 'video',\n 'chat:type:voice': 'voice'\n};\n\nexport const purchaseTypeToOrderType = {\n live_chat: 'chat',\n video_call: 'video',\n voice_call: 'voice'\n};\n\nexport const contextToChatType = {\n live_chat: 'chat:type:text',\n video_call: 'chat:type:video',\n voice_call: 'chat:type:voice'\n};\n\nexport const activityFeedMessageType = {\n order: 'order',\n message: 'message',\n coupon: 'coupon'\n};\n\nconst Const = {\n paymentOptions: {\n load: 'paymentOptions:load',\n loaded: 'paymentOptions:loaded',\n reset: 'paymentOptions:reset'\n },\n psychics: {\n loading: 'psychics:loading',\n loaded: 'psychics:loaded',\n pageLoaded: 'psychics:pageLoaded',\n clear: 'psychics:clear',\n updateRecentlyFavorited: 'psychics:updateRecentlyFavorited'\n },\n advisors: {\n loading: 'advisors:loading',\n loaded: 'advisors:loaded',\n listLoaded: 'advisors:listLoaded',\n reviewsLoading: 'advisors:reviewsLoading',\n reviewsLoaded: 'advisors:reviewsLoaded',\n reviewsReset: 'adviosrs:reviewsReset',\n databaseUpdated: 'advisors:databaseUpdated',\n loadSimilarOnlineAdvisors: 'advisors:loadSimilarOnlineAdvisors'\n },\n myOrders: {\n loading: 'myOrders:loading',\n loaded: 'myOrders:loaded'\n },\n orderDetails: {\n loading: 'orderDetails:loading',\n loaded: 'orderDetails:loaded',\n clear: 'orderDetails:claer',\n messagesRead: 'orderDetails:messagesRead',\n sendedOrderReview: 'orderDetails:sendedOrderReview',\n sendedOrderReviewError: 'orderDetails:sendedOrderReviewError',\n sendedOrderReviewClearError: 'orderDetails:sendedOrderReviewClearError'\n },\n advisorOrders: {\n loading: 'advisorOrders:loading',\n activitiesLoading: 'advisorOrders:activitiesLoading',\n reset: 'advisorOrders:reset',\n resetActivities: 'advisorOrders:resetActivities',\n advisorOrdersDelete: 'advisorOrders:advisorOrdersDelete',\n activitiesLoaded: 'advisorOrders:activitiesLoaded',\n activitiesResetLoaded: 'advisorOrders:activitiesResetLoaded',\n activityLoaded: 'advisorOrders:activityLoaded',\n setErrorStatus: 'advisorOrders:setErrorStatus'\n },\n\n specialities: {\n loading: 'specialities:loading',\n specialities: 'specialities:specialities',\n error: 'specialities:error',\n clear: 'specialities:clear'\n },\n chat: {\n start: 'chat:start',\n init: 'chat:init',\n cancel: 'chat:cancel',\n cancelOnPP: 'chat:cancelOnPP',\n pricingLoading: 'chat:pricingLoading',\n durationSelected: 'chat:durationSelected',\n paymentComplete: 'chat:paymentComplete',\n purchaseBack: 'chat:purchaseBack',\n connect: 'chat:connect',\n notInLiveMode: 'chat:notInLiveMode',\n cantCreate: 'chat:cantCreate',\n generalError: 'chat:generalError',\n connectProvider: 'chat:connectProvider',\n unknownError: 'chat:generalError',\n adminUpdate: 'chat:adminUpdate',\n message: 'chat:message',\n systemMessage: 'systemMessage',\n systemMessageUpdate: 'systemMessageUpdate',\n startPeerTyping: 'chat:startPeerTyping',\n stopPeerTyping: 'chat:stopPeerTyping',\n hangingUp: 'chat:hangingUp',\n updatePricingOptions: 'chat:updatePricingOptions',\n noAnswer: 'chat:noAnswer',\n creditRequiredOnContinue: 'chat:creditRequiredOnContinue',\n continueChat: 'chat:continueChat',\n changePaymentSource: 'chat:changePaymentSource',\n changePaymentSourceBack: 'chat:changePaymentSourceBack',\n messageUpdate: 'chat:messageUpdate',\n advisorConnectionLost: 'chat:advisorConnectionLost',\n clearAdvisorConnectionLost: 'chat:clearAdvisorConnectionLost',\n setNeedTrackSessionHireEvent: 'chat:setNeedTrackSessionHireEvent'\n },\n chatStates: {\n appInitial: 'app:initial',\n appStarting: 'app:starting',\n appConnecting: 'app:connecting',\n introduce: 'chatStates:introduce',\n appNotInLiveMode: 'app:notInLiveMode',\n appCantCreate: 'app:cantCreate',\n generalError: 'app:generalError',\n noAnswer: 'app:noAnswer',\n appConnectProvider: 'app:ConnectProvider',\n paymentRequired: 'app:paymentRequired',\n paymentRequiredOnContinue: 'app:paymentRequiredOnContinue',\n continuingChat: 'app:continuingChat',\n // comes from admin updates via pubnub { admin: {...} } message\n ringing: 'ringing',\n waiting: 'waiting',\n started: 'started',\n paused: 'paused',\n ended: 'ended'\n },\n voipChatStates: {\n initial: 'app:voip:initial',\n paymentRequired: 'app:voip:paymentRequired',\n ringing: 'app:voip:ringing',\n accepted: 'app:voip:accepted',\n inConversation: 'app:voip:inConversation',\n forceHangup: 'app:voip:forceHangup',\n manualHangup: 'app:voip:manualHangup',\n endedConversation: 'app:voip:endedConversation',\n buyerFinished: 'app:voip:buyerFinished',\n advisorFinished: 'app:voip:advisorFinished',\n errorHappened: 'app:voip:errorHappened',\n introduce: 'app:voip:introduce',\n paused: 'app:voip:paused',\n paymentRequiredOnContinue: 'app:voip:paymentRequiredOnContinue',\n connecting: 'app:voip:connecting',\n starting: 'app:voip:starting',\n connectProvider: 'app:voip:connectProvider',\n subscribed: 'app:voip:subscribed',\n noAnswer: 'app:voip:noAnswer',\n continue: 'app:voip:continue',\n notInLiveMode: 'app:voip:notInLiveMode',\n appCantCreate: 'app:voip:cantCreate',\n generalError: 'app:voip:generalError',\n unknownError: 'app:voip:unknownError',\n showSpin: 'app:voip:showSpin',\n finishing: 'app:voip:finishing'\n },\n favoriteAdvisors: {\n loading: 'favoriteAdvisors:loading',\n advisors: 'favoriteAdvisors:advisors',\n error: 'favoriteAdvisors:error',\n markFavorite: 'favoriteAdvisors:markFavorite',\n markUnFavorite: 'favoriteAdvisors:markUnFavorite'\n },\n pubnub: {\n states: {\n connecting: 'pns:connecting',\n connected: 'pns:connected',\n down: 'pns:down',\n up: 'pns:up'\n },\n actions: {\n connect: 'pubnnub:connect',\n connected: 'pubnnub:connected',\n down: 'pubnnub:down',\n up: 'pubnnub:up',\n shutdown: 'pubnnub:up',\n timetoken: 'pubnub:timetoken'\n }\n },\n message: {\n kinds: {\n notification: 'notification',\n text: 'text',\n textSystemMessage: 'text_system_message'\n },\n typing: {\n start: 'typing',\n stop: 'stop_typing'\n },\n status: {\n offlineMessage: 'offlineMessage'\n }\n },\n auth: {\n loading: 'auth:loading',\n error: 'auth:error',\n success: 'auth:success',\n clearError: 'auth:clearError',\n pendingAction: 'auth:pendingAction',\n pendingCloseAction: 'auth:pendingCloseAction',\n clearPendingAction: 'auth:clearPendingAction',\n clearPendingCloseAction: 'auth:clearPendingCloseAction',\n displayRegister: 'auth:displayRegister',\n screenChange: 'auth:screenChange',\n navigationPop: 'auth:navigationPop',\n showGDPRConsernPopup: 'auth:showGDPRConsernPopup',\n consentToGDPRChanged: 'auth:constentToGDPRChanged',\n updateCurrentScreen: 'auth:updateCurrentScreen'\n },\n authScreens: {\n signIn: 'signIn',\n signUp: 'signUp',\n promoRead: 'promoRead',\n forgotPassword: 'forgotPassword',\n signUpAffiliatePromo: 'signUpAffiliatePromo'\n },\n user: {\n loading: 'user:loading',\n error: 'user:error',\n user: 'user:user',\n impersonated: 'user:impersonated',\n MPIdentify: 'user.MPIdentify',\n updateUserData: 'user.updateUserData',\n updatePaymentProcessingSequence: 'user.updatePaymentProcessingSequence',\n analyticProps: 'user.analyticProps'\n },\n introduce: {\n inProgress: 'introduce:inProgress',\n error: 'introduce:error',\n user: 'introduce:user',\n clearError: 'introduce:clearError'\n },\n funds: {\n loading: 'funds:loading',\n error: 'funds:error',\n credits: 'funds:credits',\n displayDetails: 'funds:displayDetails'\n },\n affiliatePromoPopup: {\n loading: 'affiliatePromoPopup:loading',\n error: 'affiliatePromoPopup:error',\n credits: 'affiliatePromoPopup:credits',\n displayDetails: 'affiliatePromoPopup:displayDetails',\n clear: 'affiliatePromoPopup.clear',\n noThanksLinkClicked: 'affiliatePromoPopup.noThanksLinkClicked'\n },\n notifyMe: {\n progress: 'notifyMe:progress',\n error: 'notifyMe:error',\n success: 'notifyMe:success',\n clear: 'notifyMe:clear',\n displayNotifyMe: 'notifyMe.displayNotifyMe'\n },\n promoCode: {\n loading: 'promoCode:loading',\n error: 'promoCode:error',\n success: 'promoCode:success',\n clearModalText: 'promoCode:clearModalText',\n autoRedemSetLoading: 'promoCode:autoRedemSetLoading',\n autoRedemSetAuthHandlerSuccess: 'promoCode:autoRedemSetAuthHandlerSuccess',\n autoRedemSetJustSignedUpAuthHandlerSuccess: 'promoCode:autoRedemSetJustSignedUpAuthHandlerSuccess',\n autoRedemSetBonusPopup: 'promoCode:autoRedemSetBonusPopup'\n },\n transcript: {\n loading: 'transcript:loading',\n error: 'transcript:error',\n loaded: 'transcript:loaded'\n },\n settings: {\n loading: 'settings:loading',\n success: 'settings:success',\n clear: 'settings:clear',\n saveInputsValue: 'settings:saveInputsValue',\n saveButtonActive: 'settings:saveButtonActive',\n contentUpdate: 'settings:content:update',\n notificationPreferencesLoaded: 'settings:notification_preferences:loaded'\n },\n logOut: {\n loading: 'logOut:loading',\n success: 'logOut:success',\n clear: 'logOut:clear'\n },\n cashback: {\n loading: 'cashback:loading',\n error: 'cashback:error',\n cashbackStatus: 'cashback:cashbackStatus',\n clear: 'cashback:clear'\n },\n passwordForgot: {\n loading: 'passwordForgot:loading',\n success: 'passwordForgot:success',\n clear: 'passwordForgot:clear',\n error: 'passwordForgot:error',\n clearError: 'passwordForgot:clearError'\n },\n notification: {\n received: 'notification:received',\n clear: 'notification:clear'\n },\n language: {\n show: 'language:show'\n },\n generalPopup: {\n show: 'generalPopup:show',\n hide: 'generalPopup:hide',\n setRightCustomItem: 'generalPopup:setRightCustomItem',\n clearRightCustomItem: 'generalPopup:clearRightCustomItem',\n updateBackAction: 'generalPopup:updateBackAction',\n clearBackAction: 'generalPopup:clearBackAction'\n },\n sharePopup: {\n show: 'sharePopup:show',\n hide: 'sharePopup:hide'\n },\n clientSettings: {\n loading: 'clientSettings:loading',\n error: 'clientSettings:error',\n success: 'clientSettings:success'\n },\n paymentSources: {\n load: 'paymentSources:load',\n loaded: 'paymentSources:loaded',\n edit: 'paymentSources:edit',\n done: 'paymentSources:done',\n manage: 'paymentSources:manage',\n addingCardData: 'paymentSources:addingCardData',\n addingCardError: 'paymentSources:addingCardError',\n clearAddingCardError: 'paymentSources:clearAddingCardError',\n doneAddCard: 'paymentSources:doneAddCard'\n },\n applicationError: {\n error: 'applicationError:error',\n clearError: 'applicationError:clearError'\n },\n aws: {\n uploading: 'aws:uploading',\n success: 'aws:success',\n failed: 'aws:fail',\n reset: 'aws:reset'\n },\n voip: {\n error: 'voip:error',\n init: 'voip:init',\n cancel: 'voip:cancel',\n cancelOnPP: 'voip:cancelOnPP',\n loading: 'voip:loading',\n durationSelected: 'voip:durationSelected',\n paymentComplete: 'voip:paymentComplete',\n creditRequiredOnContinue: 'voip:creditRequiredOnContinue',\n continueChat: 'voip:continueChat',\n purchaseBack: 'voip:purchaseBack',\n connect: 'voip:connect',\n connectProvider: 'voip:connectProvider',\n hangingUp: 'voip:hangingUp',\n subscribed: 'voip:subscribed',\n pulled: 'voip:pulled',\n ping: 'voip:ping',\n noAnswer: 'voip:noAnswer',\n pause: 'voip:pause',\n notInLiveMode: 'voip:notInLiveMode',\n cantCreate: 'voip:cantCreate',\n generalError: 'voip:generalError',\n unknownError: 'voip:unknownError',\n pricingOptionsUpdate: 'voip:pricingOptionsUpdate',\n enableMic: 'voip:enableMic',\n enableVideo: 'voip:enableVideo',\n enableSound: 'voip:enableSound',\n setReconnecting: 'voip:setReconnecting',\n showSpin: 'voip:showSpin',\n finishing: 'voip:finishing',\n updatePricingOptions: 'voip:updatePricingOptions',\n startHangingUp: 'voip:startHangingUp',\n setNeedTrackSessionHireEvent: 'voip:setNeedTrackSessionHireEvent'\n },\n chatType: {\n video: 'chat:type:video',\n voice: 'chat:type:voice',\n text: 'chat:type:text'\n },\n chatTypeToModeName: {\n 'chat:type:video': 'video',\n 'chat:type:voice': 'voice',\n 'chat:type:text': 'chat'\n },\n purchaseDetails: {\n updateDetails: 'purchaseDetails:updateDetails',\n changingPaymentSource: 'purchaseDetails:changingPaymentSource',\n clearDetails: 'purchaseDetails:clearDetails',\n updateApplePayEligibility: 'purchaseDetails:updateApplePayEligibility'\n },\n spendingLimits: {\n loadingVerifications: 'spendingLimits:loadingVerifications',\n loadVerificationsError: 'spendingLimits:loadVerificationsError',\n verificationsLoaded: 'spendingLimits:verificationsLoaded',\n verificationSelected: 'spendLimits:verificationSelected',\n jumioEnded: 'spendLimits:jumioeEnded',\n verificationProcessed: 'spendLimits:verificationProcessed',\n verificationStatusUpdated: 'spendLimits:verificationStatusUpdated',\n cleanError: 'spendLimits:cleanError',\n jumioError: 'spendLimits:jumioError'\n },\n homePage: {\n loading: 'homePage:loading',\n sectionsloading: 'homePage:sectionsloading',\n loaded: 'homePage:loaded',\n error: 'homePage:error',\n refresh: 'homePage:refresh',\n salesBanner: 'homePage:salesBanner'\n },\n searchResults: {\n loading: 'searchResults:loading',\n loaded: 'searchResults:loaded',\n error: 'searchResults:error',\n clear: 'searchResults:clear'\n },\n popover: {\n show: 'popover:show',\n hide: 'popover:hide'\n },\n application: {\n updateNavigationStack: 'application:updateNavigationStack',\n updateSmartBannerVisibility: 'application:updateSmartBannerVisibility',\n navigationStackLoading: 'application:navigationStackLoading',\n clearNavigationStack: 'application:clearNavigationStack',\n setNewToPG: 'application:setNewToPG',\n udpateSEOData: 'application:udpateSEOData',\n appLoading: 'application.appLoading',\n setAnonymousUser: 'application:setAnonymousUser',\n dbSubscribedAdvisors: 'application:dbSubscribedAdvisors',\n clearDBSubscribedAdvisors: 'application:clearDBSubscribedAdvisors'\n },\n creditCardProcessing: {\n loading: 'creditCardProcessing:loading',\n dataLoaded: 'creditCardProcessing:dataLoaded',\n purchaseLoaded: 'creditCardProcessing:purchaseLoaded',\n purchaseResponceLoaded: 'creditCardProcessing:purchaseResponceLoaded',\n clearCreditCardProcessing: 'creditCardProcessing:clearCreditCardProcessing',\n error: 'creditCardProcessing:error'\n },\n creditCardValidateProcessing: {\n setValidatedData: 'creditCardValidateProcessing:setValidatedData',\n validating: 'creditCardValidateProcessing:validating',\n error: 'creditCardValidateProcessing:error',\n clear: 'creditCardValidateProcessing:clear'\n },\n selectDurationKind: {\n newUser: 'new_user',\n oldUser: 'default',\n newUserPayg: 'new_user_payg'\n },\n messageToApp: {\n setData: 'messageToApp:setData'\n },\n newUserPaygBonusItemKind: {\n cardValidationBonus: 'card_validation_bonus',\n xfm: 'xfm'\n },\n categories: {\n loading: 'categories:loading',\n loaded: 'categories:loaded'\n },\n discountDataKind: {\n discountApplied: 'discount_applied',\n maxDiscountApplied: 'max_discount_applied',\n advisorSpecialOffer: 'advisor_special_offer'\n }\n};\n\nexport default Const;\n","import Cookies from 'universal-cookie';\n\nconst cookies = new Cookies();\n\nexport const setCookie = ({ cookieName, cookieValue, cookieOptions }) => {\n cookies.set(cookieName, cookieValue, cookieOptions);\n};\n\nexport const getCookie = ({ cookieName, cookieOptions }) => cookies.get(cookieName, cookieOptions);\n\nexport const removeCookie = ({ cookieName, cookieOptions }) => {\n cookies.remove(cookieName, cookieOptions);\n};\n","class Debouncer {\n constructor(config) {\n this.debounceTime = (config && config.debounceTime) || 500;\n this.timer = null;\n }\n\n clearTimer = () => {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n };\n\n debounceLoad = callback => {\n this.clearTimer();\n this.timer = setTimeout(callback, this.debounceTime);\n };\n\n loadWithDebounce = (callback, delayed) => {\n if (delayed) {\n this.debounceLoad(callback);\n } else {\n this.clearTimer();\n callback();\n }\n };\n}\n\nexport default Debouncer;\n","import fingerprintjs from 'fingerprintjs2';\nimport { getDataFromStorage, saveDataToStorage } from './util';\n/* eslint-disable-next-line import/no-cycle */\nimport { log, LOG_LEVELS } from '../../common/config/app_logger';\n\nconst delayDeviceId = resolve => {\n setTimeout(() => {\n fingerprintjs.get((components) => {\n const values = components.map((component) => component.value);\n const fingerprint = fingerprintjs.x64hash128(values.join(''), 31);\n log(LOG_LEVELS.INFO, 'Device', `new fingerprint: ${ fingerprint }`);\n saveDataToStorage('DEVICE_ID', fingerprint);\n resolve(fingerprint);\n });\n }, 500);\n};\n\nconst deviceId = () => new Promise(resolve => {\n const dId = getDataFromStorage('DEVICE_ID');\n if (dId) {\n resolve(dId);\n return;\n }\n\n delayDeviceId(resolve);\n});\n\nexport const getDeviceId = async () => {\n try {\n return await deviceId();\n } catch (e) {\n log(LOG_LEVELS.ERROR, 'Device', 'Error getDeviceId', e);\n return null;\n }\n};\n","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport { matchPath } from 'react-router';\nimport { isKA, isPS } from '../../common/config/utils';\n\nlet methodsPath = './localization/pg.tsx';\nif (isKA()) {\n methodsPath = './localization/ka.tsx';\n} else if (isPS()) {\n methodsPath = './localization/ps.tsx';\n}\n\nexport const {\n DEFAULT_LANGUAGE, SUPPORTED_LANGUAGES, initResources\n} = require(`${ methodsPath }`);\n\nexport const routesTranslationKeys = ['routes', 'specificRoutes', 'dynamicRoutes'];\n\nexport const getCurrentLocalization = () => {\n const match = matchPath('/:lang?/*', window.location.pathname);\n if (!match) return DEFAULT_LANGUAGE;\n const { params: { lang } } = match;\n if (lang === 'my') return DEFAULT_LANGUAGE;\n if (SUPPORTED_LANGUAGES.includes(lang)) {\n return lang;\n }\n return DEFAULT_LANGUAGE;\n};\n\ni18n.use(initReactI18next).init({\n resources: initResources,\n lng: getCurrentLocalization(),\n fallbackLng: DEFAULT_LANGUAGE,\n supportedLngs: SUPPORTED_LANGUAGES\n});\n\nexport default i18n;\n","import React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\n\nconst InfiniteScroll = ({\n children, loadMore, loading, initialLoad, page, initialPage, loader,\n hasMore, className, threshold, scrollElementRef, paginationParams, dateLabelScrollHandler\n}) => {\n useEffect(() => {\n if (initialLoad) {\n loadMore(initialPage);\n }\n }, []);\n\n const handleScroll = () => {\n if (scrollElementRef) {\n const { scrollHeight, scrollTop, clientHeight } = scrollElementRef.current;\n if (dateLabelScrollHandler) dateLabelScrollHandler();\n if (clientHeight - scrollHeight === Math.floor(scrollTop) && hasMore && !loading) {\n loadMore();\n }\n return;\n }\n const { innerHeight, scrollY } = window;\n const contentHeight = document.getElementById('scroller')?.clientHeight;\n if (contentHeight !== null && innerHeight + scrollY > contentHeight - threshold && hasMore && !loading) {\n loadMore(page);\n }\n };\n\n useEffect(() => {\n (((scrollElementRef || {}).current) || window).addEventListener('scroll', handleScroll);\n return () => {\n ((scrollElementRef || {}).current || window).removeEventListener('scroll', handleScroll);\n };\n }, [paginationParams, page, hasMore]);\n\n return (\n <div id=\"scroller\" className={ className }>\n { children }\n { loading ? loader : null }\n </div>\n );\n};\n\nInfiniteScroll.propTypes = {\n children: PropTypes.node,\n loadMore: PropTypes.func,\n loading: PropTypes.bool.isRequired,\n initialLoad: PropTypes.bool,\n page: PropTypes.number,\n initialPage: PropTypes.number,\n loader: PropTypes.node,\n hasMore: PropTypes.bool.isRequired,\n className: PropTypes.string,\n threshold: PropTypes.number,\n scrollElementRef: PropTypes.any,\n paginationParams: PropTypes.object,\n dateLabelScrollHandler: PropTypes.func\n};\n\nInfiniteScroll.defaultProps = {\n children: null,\n initialLoad: false,\n initialPage: 0,\n loader: null,\n className: '',\n threshold: 250,\n loadMore: null,\n page: null,\n scrollElementRef: null,\n paginationParams: {},\n dateLabelScrollHandler: null\n};\n\nconst mapStateToProps = ({ advisorOrders }) => ({\n paginationParams: (advisorOrders || {}).paginationParams\n});\n\nexport default connect(mapStateToProps, {})(InfiniteScroll);\n","import { configureStore } from '@reduxjs/toolkit';\nimport thunk from 'redux-thunk';\nimport { createLogger } from 'redux-logger';\nimport reducer from '../reducers';\n\nexport const buildStore = () => {\n const logger = createLogger({ diff: false });\n let middleWares = [thunk];\n if (process.env.NODE_ENV === 'development') {\n middleWares = [...middleWares, logger];\n }\n const store = configureStore({\n reducer,\n middleware: (getDefaultMiddleware) => getDefaultMiddleware({\n immutableCheck: false,\n serializableCheck: false\n }).concat(middleWares)\n });\n if (module.hot) {\n module.hot.accept(() => {\n /* eslint-disable global-require */\n const nextRootReducer = require('../reducers/index').default;\n /* eslint-enable global-require */\n store.replaceReducer(nextRootReducer);\n });\n }\n window.store = store;\n return store;\n};\n","export const advisorHeaderTheme = {\n default: 'default',\n terminatedAdvisor: 'terminatedAdvisor'\n};\n\nexport const advisorSpecialitiesTheme = {\n default: 'default',\n terminatedAdvisor: 'terminatedAdvisor'\n};\n\nexport const advisorProfileAvatarTheme = {\n default: 'default',\n terminatedAdvisor: 'terminatedAdvisor'\n};\n\nexport const GDPRConsernPopupThemes = {\n regular: 'regular',\n social: 'social',\n server: 'server'\n};\n","import React from 'react';\nimport { Helmet } from 'react-helmet';\nimport queryString from 'query-string';\nimport {\n applicationRoutes,\n appRoutes, dynamicRoutes, dynamicRoutesKeys\n} from './app_routes';\nimport {\n isKA,\n matchPaths,\n paramOrNul,\n toCamelCase,\n convertStringToCamelCase,\n isPS\n} from '../../common/config/utils';\nimport Const, { purchaseFlowTypes } from './const';\nimport i18n from './i18n';\nimport env from './variables';\n\nconst {\n XFM_ADDITIONAL_FREE_SETUP_TIME, XFM_PROGRAM_ACTIVE, DEFAULT_XFM_CREDITS\n} = env;\n\nexport const parseAdvisorsFromAdvisorsState = (advisors) => {\n const advisorsState = window.store.getState().advisors;\n if (!advisors || advisors === undefined) return [];\n if (!advisorsState) return advisors;\n return advisors.map((a) => ({ ...a, ...advisorsState[a.id] }));\n};\n\nexport const convertErrorArrayToString = (fullMessages) => {\n let message = '';\n fullMessages.forEach((m, index) => {\n message = `${ message }${ index === 0 ? '' : ', ' }${ m }`;\n });\n return message;\n};\n\nexport const advisorModeIsActive = (modeUntil) => !!(new Date(modeUntil) > new Date());\n\nexport const filterIsApplied = ({ withSearch = false }) => {\n const {\n includeOffline, minNumberOfReviewsGe, ppmGe, ppmLe, readingVia, query\n } = toCamelCase(queryString.parse(window.location.search));\n let filters = {\n includeOffline, minNumberOfReviewsGe, ppmGe, ppmLe, readingVia\n };\n if (withSearch) filters = { ...filters, query };\n const cleanFilters = Object.keys(filters)\n .filter((key) => filters[key] !== undefined);\n return Object.keys(cleanFilters).length > 0;\n};\n\nexport const passwordIsValid = (password, isSignUp) => {\n if (typeof password !== 'string') return false;\n return isSignUp ? password.trim().length >= 1 : password.trim().length >= 6;\n};\n\nexport const saveDataToStorage = (key, data) => {\n if (!window.localStorage) return;\n try {\n localStorage.setItem(key, data);\n } catch (e) {\n if (e.code === DOMException.QUOTA_EXCEEDED_ERR) {\n localStorage.removeItem('logs_batch');\n }\n }\n};\n\nexport const getDataFromStorage = (key) => {\n if (!window.localStorage) return null;\n return localStorage.getItem(key);\n};\n\nexport const canShowAdvisorRate = (likesCount, dislikesCount, minReviewsNumberForDisplayingRating) => (\n likesCount + dislikesCount >= minReviewsNumberForDisplayingRating\n);\n\nexport const cardsIndexes = () => {\n const indexArray = [];\n for (let index = 0; index < 15; index += 1) {\n indexArray.push(index);\n }\n return indexArray;\n};\n\nexport const roundCredits = credit => {\n const formattedCredit = Number(credit);\n return Number.isNaN(formattedCredit) ? null : formattedCredit.toFixed(2);\n};\n\nexport const subscribedToAdvisor = (availabilityNotification) => availabilityNotification && availabilityNotification.switchedOn;\n\nexport const textTruncate = (str, strLength, strEnding) => {\n if (!str) return str;\n let length = strLength;\n let ending = strEnding;\n if (length == null) length = 100;\n if (ending == null) ending = '...';\n if (str.length > length) return str.substring(0, length - ending.length) + ending;\n return str;\n};\n\nexport const payPalProcessingFailReason = (errorType) => {\n if (errorType) return errorType.split('_').join(' ');\n return 'error';\n};\n\nexport const makeMoreReadable = (text) => {\n if ((text || '').length < 400) return text;\n let moreReadableText = '';\n let moreReadableTextPart = '';\n let leftText = text;\n let i = 0;\n do {\n moreReadableTextPart = '';\n if (i === 0) {\n moreReadableTextPart = leftText.substring(0, leftText.indexOf('.') + 1);\n } else {\n const firstPart = leftText.substring(0, 200);\n const secondPart = leftText.substring(200);\n const secondPartforDotOrNewLine = secondPart.substring(0, secondPart.indexOf('.') + 1) || secondPart.substring(0, secondPart.indexOf('\\n'));\n if (secondPartforDotOrNewLine) {\n moreReadableTextPart = firstPart + secondPartforDotOrNewLine;\n } else {\n moreReadableTextPart = firstPart + secondPart;\n }\n }\n moreReadableText += `${ moreReadableTextPart.replace(/^\\s+/, '') }\\n`;\n leftText = leftText.substring(moreReadableTextPart.length);\n i += 1;\n }\n while (leftText.length >= 300);\n moreReadableText += leftText.replace(/^\\s+/, '');\n return moreReadableText;\n};\n\nexport const decodeHtmlBracketCharCodes = str => str.replace(/</g, '<').replace(/>/g, '>');\n\nexport const advisorsEmptyList = (count, loading = false) => {\n const emptyList = [];\n for (let index = 0; index < count; index += 1) {\n const advisor = loading ? { loading: true } : {};\n emptyList.push({ ...advisor });\n }\n return emptyList;\n};\n\nexport const pathsNameWithLocalization = (object) => {\n const pathsArray = [];\n Object.keys(object).map((key) => pathsArray.push(object[key]));\n return pathsArray;\n};\n\nconst getOnHeaderSearchClickActionState = (currentState) => {\n const state = { needRefresh: true, ...paramOrNul('params', (currentState || {}).params) };\n return state;\n};\n\nconst onHeaderSearchClickAction = (history, currentPath, isSearchLineCloseButtonClick, searchQuery, replace) => {\n if (isSearchLineCloseButtonClick && !replace) return null;\n const { routeKey, search: qs, state: currentState } = currentPath;\n const { query, ...rest } = queryString.parse(qs);\n const search = queryString.stringify({ ...rest, ...searchQuery });\n const state = getOnHeaderSearchClickActionState(currentState);\n if (replace) {\n history(routeKey, { params: { search }, options: { state, replace: true } });\n } else {\n history(appRoutes.psychics, { params: { search }, options: { state } });\n }\n return null;\n};\n\nconst headerSearchLineButtonDisabled = ({ searchInputRef, isSearchLineCloseButtonClick }) => {\n const { query } = queryString.parse(window.location.search);\n const searchInputRefValue = ((searchInputRef || {}).current || {}).value;\n return !((searchInputRefValue.length !== 0\n && searchInputRefValue !== query) || isSearchLineCloseButtonClick);\n};\n\nexport const getValueOrDefault = (obj, ...keys) => {\n while (keys.length) {\n const key = keys.shift();\n if (!obj || !(key in obj)) {\n return {};\n }\n obj = obj[key];\n }\n\n return obj;\n};\n\nexport const onHeaderSearchClick = ({\n searchInputRef, setSearchInputValue, history, currentPath, isSearchLineCloseButtonClick\n}) => {\n if (headerSearchLineButtonDisabled({ searchInputRef, isSearchLineCloseButtonClick })) return null;\n if (isSearchLineCloseButtonClick) {\n searchInputRef.current.value = ''; //eslint-disable-line\n setSearchInputValue('');\n }\n const searchValue = searchInputRef.current.value.trim();\n if (searchValue.length <= 0) {\n searchInputRef.current.value = ''; //eslint-disable-line\n if (setSearchInputValue) setSearchInputValue('');\n return null;\n }\n const searchQuery = paramOrNul('query', searchValue);\n const { needReplaceHeaderSearch } = getValueOrDefault(applicationRoutes, currentPath.routeKey);\n onHeaderSearchClickAction(\n history,\n currentPath,\n isSearchLineCloseButtonClick,\n searchQuery,\n needReplaceHeaderSearch\n );\n return null;\n};\n\nexport const separateThousands = (value) => (value || 0).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n\nexport const specialityNameOnTwoLine = (name, specialityNameClass) => {\n const words = name.split(' ');\n const firstLine = name.substring(0, name.indexOf(words[words.length - 1]));\n const secondLine = words[words.length - 1];\n return (\n <div className={ specialityNameClass }>\n <span suppressHydrationWarning>\n { firstLine }\n </span>\n <span suppressHydrationWarning>\n { secondLine }\n </span>\n </div>\n );\n};\n\nexport const isAdvisorBusy = ({ liveModes }) => {\n let busy;\n liveModes.forEach((mode) => { if (mode.modeState === 'busy') busy = true; });\n return busy;\n};\n\nexport const renderCanonicalLink = (url) => {\n const href = url || `${ window.location.origin }${ window.location.pathname }`;\n return (\n <Helmet>\n <link rel=\"canonical\" href= { href } suppressHydrationWarning />\n </Helmet>\n );\n};\n\nexport const isMobile = () => parseInt(getComputedStyle(document.documentElement).getPropertyValue('--window-width'), 10) <= window.shared.phoneOnlyUpSize;\nexport const isMiddleMobile = () => parseInt(getComputedStyle(document.documentElement).getPropertyValue('--window-width'), 10) <= window.shared.middlePhoneOnlyUpSize;\n\nexport const renderItemPropMeta = (itemPropSearch) => {\n if (!itemPropSearch.meta) return null;\n return Object.keys(itemPropSearch.meta).map((meta) => itemPropSearch.meta[meta]);\n};\n\nexport const getSectionForEvent = ({ location }) => {\n if (location.state && location.state.section) return { section: location.state.section };\n return {};\n};\n\nexport const getClickSourceForEvent = ({ location }) => ({ clickSource: location.state && location.state.clickSource ? location.state.clickSource : 'direct' });\n\nexport const cleanupAdvisorFieldsForAnalytics = (advisor) => {\n const {\n serviceDescription,\n aboutMe,\n history,\n instructions,\n reviews,\n ...rest\n } = advisor;\n const res = {};\n Object.keys(rest).forEach(key => {\n if (!(rest[key] instanceof Function)) {\n res[key] = rest[key];\n }\n });\n return res;\n};\n\nexport const getAddFundsInitialChargedAndInitialDurationPropsNames = ({ chatType }) => {\n let initialChargedPropName = '';\n let initialDurationPropName = '';\n switch (chatType) {\n case Const.chatType.text:\n initialChargedPropName = 'chat charged initial';\n initialDurationPropName = 'chat minutes initial';\n break;\n case Const.chatType.voice:\n initialChargedPropName = 'voice charged initial';\n initialDurationPropName = 'voice minutes initial';\n break;\n case Const.chatType.video:\n initialChargedPropName = 'vc charged initial';\n initialDurationPropName = 'vc minutes initial';\n break;\n default:\n break;\n }\n return { initialChargedPropName, initialDurationPropName };\n};\n\nconst getMinutes = ({ selectedDuration }) => {\n const minutes = selectedDuration / 60;\n if (Number.isInteger(minutes)) return minutes.toFixed();\n return minutes.toFixed(2);\n};\n\nconst additionalOptionsName = {\n payAsYouGo: 'pay as you go',\n currentBalance: 'current balance'\n};\n\nexport const getDefaultDuration = ({ pricingOptions, payAsYouGo }) => {\n if (Object.keys(pricingOptions).length === 0 && payAsYouGo) return additionalOptionsName.payAsYouGo;\n const defaultOption = pricingOptions.find((o) => o.default && !o.additional)?.duration;\n let defaultDuration = defaultOption < 0 ? defaultOption : (defaultOption / 60).toFixed(2);\n if (!defaultOption && pricingOptions.find((o) => o.default && o.additional)) {\n defaultDuration = additionalOptionsName.currentBalance;\n }\n if (defaultDuration === -1) defaultDuration = additionalOptionsName.payAsYouGo;\n return defaultDuration;\n};\n\nexport const getDurationOptions = ({ pricingOptions, payAsYouGo }) => {\n if (Object.keys(pricingOptions).length === 0 && payAsYouGo) return [additionalOptionsName.payAsYouGo];\n const durationOptions = pricingOptions.map((o) => {\n if (o.duration === -1) return additionalOptionsName.payAsYouGo;\n if (o.additional) return additionalOptionsName.currentBalance;\n return o.duration;\n });\n return durationOptions;\n};\n\nconst trackPaygRelatedProps = (payAsYouGo, propValue) => (payAsYouGo ? null : propValue);\n\nexport const getPayAsYouGoUsedProperty = ({ flow, isPayg }) => {\n if (flow !== purchaseFlowTypes.paymentMethods && flow !== purchaseFlowTypes.addFunds) {\n return { 'pay as you go used': !!isPayg };\n }\n return null;\n};\n\nexport const getDurationPickRelatedProps = ({\n requiredAmount, continuedSession, selectedDuration, price, advisorId, homepageSection,\n startChatClickSource, displayVersion, defaultDuration, defaultDurationChanged, durationOptions, time, payAsYouGo, flow, additional\n}) => {\n const props = {\n ...requiredAmount,\n ...paramOrNul('continued session', continuedSession),\n ...paramOrNul('minutes', additional ? null : trackPaygRelatedProps(payAsYouGo, getMinutes({ selectedDuration }))),\n ...paramOrNul('expected charged seconds', trackPaygRelatedProps(payAsYouGo, selectedDuration)),\n ...paramOrNul('credits', trackPaygRelatedProps(payAsYouGo, price)),\n tryout: false,\n 'advisor id': advisorId,\n ...paramOrNul('homepage section', homepageSection),\n 'click source': startChatClickSource,\n 'display version': displayVersion,\n ...paramOrNul('default duration preselected', defaultDuration),\n 'default duration changed': defaultDurationChanged,\n 'duration options': durationOptions,\n 'time on screen': parseFloat((time / 1000).toFixed(2)),\n ...getPayAsYouGoUsedProperty({ flow, isPayg: payAsYouGo }),\n flow\n };\n return props;\n};\n\nexport const getReviewCount = ({ likesCount, dislikesCount }) => {\n const reviewCount = likesCount + dislikesCount;\n return reviewCount;\n};\n\nexport const getCurrentTimeZone = () => Intl.DateTimeFormat().resolvedOptions().timeZone;\n\nexport const convertDateTimeZone = ({ dateString, timeZoneString }) => new Date((new Date(dateString)).toLocaleString('en-US', { timeZone: timeZoneString }));\n\nconst flattenRouteSettings = (obj) => {\n const flattened = {};\n\n Object.keys(obj).forEach((key) => {\n if (key === 'translations') return;\n flattened[key] = obj[key];\n });\n\n const translationObj = obj.translations?.[i18n.language];\n\n Object.keys(translationObj).forEach((key) => {\n flattened[key] = translationObj[key];\n });\n\n return flattened;\n};\n\nexport const getRouteSettings = ({ routeKey }) => {\n const route = i18n.t(routeKey);\n\n const routesSettings = dynamicRoutesKeys\n .filter(key => (dynamicRoutes[key].translations?.[i18n.language].slug || dynamicRoutes[key].slug) === route)\n .map(key => dynamicRoutes[key]);\n\n if (!routesSettings.length) return {};\n return flattenRouteSettings(routesSettings[0]);\n};\n\nexport const isPrerenderMode = () => {\n const { mode } = toCamelCase(queryString.parse(window.location.search));\n return mode === 'prerender';\n};\n\nexport const routeMatch = (pathnames) => {\n const match = matchPaths({ pathname: pathnames, path: `${ window.location.pathname }` });\n return match || {};\n};\n\nexport const matchBannerRoutes = (routeKey) => {\n const { showBanner = false } = getValueOrDefault(applicationRoutes, routeKey);\n return showBanner;\n};\n\nexport const shouldShowAffiliateBanner = (creditMatchingInfo, userShowMatchUpBonusInfo, userLoading, routeKey) => !!(creditMatchingInfo\n && Object.keys(creditMatchingInfo).length !== 0\n && (userShowMatchUpBonusInfo === null || userShowMatchUpBonusInfo)\n && !userLoading\n && matchBannerRoutes(routeKey));\n\nexport const isXfmProgram = ({ advisorXfmProgram, userXfmProgram }) => {\n if (window.currentUserId) {\n return advisorXfmProgram?.active && userXfmProgram?.credits;\n }\n const wasLoggedIn = !!getDataFromStorage('WAS_LOGIN');\n if (wasLoggedIn) return false;\n return XFM_PROGRAM_ACTIVE === 'true';\n};\n\nexport const getXfmFreeSetupMin = () => {\n const freeSetupSeconds = XFM_ADDITIONAL_FREE_SETUP_TIME ?? 180;\n return parseInt(freeSetupSeconds / 60, 10);\n};\n\nexport const getXfmDefaultMinutes = () => {\n const xfmDefaultMinutes = DEFAULT_XFM_CREDITS ?? 3;\n return xfmDefaultMinutes;\n};\n\nexport const getModeColor = (mode) => {\n let defaultModesColors = { chat:'#62DD13', voice: '#8755F4', video: '#22B6FF' };\n if (isKA()) defaultModesColors = { chat: '#7BD137', voice: '#6C84FF', video: '#22B6FF' };\n else if (isPS()) defaultModesColors = { chat: '#2BA4FA', voice: '#B45092' };\n return defaultModesColors[mode];\n};\n\nexport const isPayg = ({ duration }) => duration === -1;\n\nexport const setElementZIndex = (decreaseElementZIndex, low, high) => (decreaseElementZIndex ? low : high);\n\nexport const getAdvisorDataIfSsrMode = () => {\n if (!window.advisorsBySlug) return null;\n const advisorMatch = matchPaths({ pathname: Object.keys(window.advisorsBySlug), path: window.location.pathname });\n const advisorData = window.advisorsBySlug[advisorMatch?.pattern.path];\n\n return toCamelCase(advisorData);\n};\n\nexport const getHomePageDataIfSsrMode = () => {\n if (!window.homePage) return null;\n const homePageData = window.homePage;\n return toCamelCase(homePageData);\n};\n\nexport const getActiveOffer = () => {\n const offers = window.currentUserId ? window.store?.getState()?.user?.user?.bonusInfos : window.bonusInfos ?? null;\n if (offers?.length) return offers[0];\n return null;\n};\n\nexport const formatCurrency = (price) => {\n const formater = Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n trailingZeroDisplay: 'stripIfInteger'\n });\n return formater.format(price);\n};\n\nexport const getHeaderHeight = () => {\n const header = document.getElementById('mainHeaderID')?.getBoundingClientRect();\n return `${ header?.height || 0 }px`;\n};\n\nexport const getUserFirstActivePromotion = ({ user, application }) => {\n const userIsPresented = user && user.user?.id || user?.id;\n if (userIsPresented) {\n return user && user.user && (user.user.activePromotions || [])[0] || user && (user.activePromotions || [])[0] || {};\n }\n return application?.anonymousUser && (application.anonymousUser.activePromotions || [])[0] || {};\n};\n\nexport const getAvailableSalesPrice = ({ promoPrices, userAdvisorModeSalePrice }) => {\n if (!userAdvisorModeSalePrice || !promoPrices) return null;\n return promoPrices[convertStringToCamelCase(userAdvisorModeSalePrice)];\n};\n\nexport const getAvailableMinSalesPrice = ({ liveModeMinPromoPrices, userAdvisorModeMinSalesPrice }) => {\n if (!userAdvisorModeMinSalesPrice || !liveModeMinPromoPrices) return null;\n return liveModeMinPromoPrices[convertStringToCamelCase(userAdvisorModeMinSalesPrice)];\n};\n\nexport const getUserMatchUpBonusInfo = ({ bonusInfos }) => {\n if (!bonusInfos) return null;\n const userMatchUpBonusInfo = bonusInfos.find((bonus) => bonus.bonusType === 'match_up');\n if (!userMatchUpBonusInfo) return {};\n return userMatchUpBonusInfo;\n};\n\nexport const getTimeOnBubble = ({ time }) => {\n const now = new Date(time);\n const hours = now.getHours();\n const minutes = now.getMinutes();\n const ampm = hours >= 12 ? 'PM' : 'AM';\n const hours12 = hours % 12 || 12;\n\n const formattedHours = hours12.toString().padStart(2, '0');\n const formattedMinutes = minutes.toString().padStart(2, '0');\n\n const timeOnBubble = `${ formattedHours }:${ formattedMinutes } ${ ampm }`;\n return timeOnBubble;\n};\n","const pgLogoIcon = require('./img/pg_logo_icon.png');\nconst kasambaLogoIcon = require('./img/kasamba_logo_icon.png');\nconst psiquicosLogoIcon = require('./img/psq_logo_icon.png');\n\nconst pgFooterLogo = require('./img/pg_footer_logo.png');\nconst kasambaFooterLogo = require('./img/kasamba_footer_logo.png');\nconst psiquicosFooterLogo = require('./img/psq_footer_logo.png');\n\nexport const appLogo = () => {\n switch (process.env.APP_CONTEXTS) {\n case 'ka':\n return kasambaLogoIcon;\n case 'ps':\n return psiquicosLogoIcon;\n default:\n return pgLogoIcon;\n }\n};\n\nexport const footerLogo = () => {\n switch (process.env.APP_CONTEXTS) {\n case 'ka':\n return kasambaFooterLogo;\n case 'ps':\n return psiquicosFooterLogo;\n default:\n return pgFooterLogo;\n }\n};\n","/* eslint-disable react/style-prop-object */\n/* eslint-disable max-len */\nimport React from 'react';\n\nexport const kaCouponLogo = (\n <svg width=\"30\" height=\"30\" viewBox=\"0 0 30 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M10.4479 15.9277H10.4417L14.0637 19.5519L14.0699 19.5457L10.4479 15.9277Z\" fill=\"white\" />\n <path d=\"M5.34721 10.8295L9.51441 14.9992V14.9929L10.4418 14.0649L6.28092 9.90147C4.94616 8.56591 4.52004 6.66603 5.00256 4.9668C4.48871 5.11101 3.99366 5.33047 3.53621 5.64398C3.32942 7.4937 3.93726 9.41866 5.35348 10.8357L5.34721 10.8295Z\" fill=\"white\" />\n <path d=\"M19.5582 15.9117L15.9292 19.543L15.9425 19.5563L19.5715 15.9251L19.5582 15.9117Z\" fill=\"white\" />\n <path d=\"M23.739 9.89674L19.5718 14.0664L20.5055 15.0007L24.6727 10.831C26.0889 9.41393 26.6905 7.50151 26.4899 5.65806C26.0325 5.34455 25.5374 5.11882 25.0173 4.97461C25.4936 6.66757 25.0737 8.56745 23.739 9.90301V9.89674Z\" fill=\"white\" />\n <path d=\"M6.28018 2.78555C8.24158 0.822967 11.4249 0.822967 13.3863 2.78555L15.0093 4.40954L16.6324 2.78555C18.5938 0.822967 21.7771 0.822967 23.7385 2.78555C23.9641 3.01128 24.1584 3.24955 24.3276 3.50036C24.9166 3.56306 25.4994 3.70727 26.0508 3.933C25.7438 3.18057 25.2801 2.47204 24.666 1.85756C22.1907 -0.619185 18.1739 -0.619185 15.6987 1.85756L15.0093 2.54728L14.32 1.85756C11.8448 -0.619185 7.82799 -0.619185 5.35274 1.85756C4.7449 2.46577 4.28118 3.1743 3.97412 3.92673C4.53184 3.701 5.10835 3.56306 5.6974 3.50036C5.86659 3.24955 6.06085 3.01128 6.28644 2.79182L6.28018 2.78555Z\" fill=\"white\" />\n <path d=\"M24.6727 19.1638L20.5055 14.9941L19.5718 15.9284L23.739 20.0981C25.0675 21.4274 25.4936 23.3147 25.0236 25.0077C25.5374 24.8635 26.0325 24.6315 26.4899 24.318C26.6842 22.4808 26.0764 20.5746 24.6664 19.1638H24.6727Z\" fill=\"white\" />\n <path d=\"M15.9351 10.4272L15.9307 10.4316L19.5686 14.0717L19.573 14.0673L15.9351 10.4272Z\" fill=\"white\" />\n <path d=\"M6.27999 20.0981L10.4472 15.9284L9.51348 14.9941L5.34629 19.1638C3.93634 20.5746 3.32849 22.4933 3.52902 24.3368C3.98647 24.644 4.48152 24.8698 4.99537 25.014C4.51912 23.321 4.94524 21.4274 6.27999 20.0981Z\" fill=\"white\" />\n <path d=\"M23.7386 27.208C21.7772 29.1706 18.5938 29.1706 16.6324 27.208L15.0094 25.584L13.3864 27.208C11.425 29.1706 8.24166 29.1706 6.28026 27.208C6.05467 26.9822 5.85414 26.7377 5.67868 26.4806C5.0959 26.4179 4.51312 26.28 3.96167 26.0543C4.26873 26.8129 4.73244 27.5278 5.34656 28.1422C7.82181 30.619 11.8386 30.619 14.3139 28.1422L15.0032 27.4525L15.6925 28.1422C18.1677 30.619 22.1845 30.619 24.6598 28.1422C25.2801 27.5215 25.7439 26.8067 26.0509 26.0417C25.4995 26.2674 24.9167 26.4117 24.3276 26.4744C24.1522 26.7314 23.9517 26.976 23.7261 27.208H23.7386Z\" fill=\"white\" />\n <path d=\"M20.487 14.9881L19.5596 15.9161L19.5721 15.9287L20.5058 15.0007L19.5721 14.0664L19.5658 14.0727L20.487 14.9881Z\" fill=\"white\" />\n <path d=\"M9.51359 14.9941L9.50732 15.0004L10.441 15.9284H10.4473L9.51359 14.9941Z\" fill=\"white\" />\n <path d=\"M14.9968 18.6179L15.0094 18.6305L18.6439 15L15.0094 11.3633L15.0031 11.3696L18.6251 14.9875L14.9968 18.6179Z\" fill=\"white\" />\n <path d=\"M10.8238 24.6567L14.991 20.487L14.0573 19.5527L9.89011 23.7224C8.56163 25.0517 6.68169 25.4781 4.98975 25.0078C5.13387 25.522 5.35947 26.0173 5.67279 26.4751C7.50886 26.6694 9.41386 26.0612 10.8176 24.6504L10.8238 24.6567Z\" fill=\"white\" />\n <path d=\"M2.78387 23.7291C0.822472 21.7665 0.822472 18.5813 2.78387 16.6187L4.40688 14.9947L2.78387 13.3707C0.822472 11.4081 0.822472 8.22284 2.78387 6.26026C3.01573 6.02826 3.26639 5.82761 3.52958 5.64578C3.59225 5.05638 3.73637 4.47951 3.96823 3.92773C3.19746 4.23498 2.47682 4.70524 1.85644 5.326C-0.618812 7.80274 -0.618812 11.822 1.85644 14.2987L2.54575 14.9884L1.85644 15.6781C-0.618812 18.1549 -0.618812 22.1741 1.85644 24.6508C2.47682 25.2716 3.19746 25.7356 3.96197 26.0491C3.73637 25.4973 3.59225 24.9142 3.52958 24.3311C3.26639 24.1555 3.01573 23.9548 2.78387 23.7229V23.7291Z\" fill=\"white\" />\n <path d=\"M9.88979 6.25317L14.0632 10.4291L14.9969 9.49487L10.8235 5.3189C9.4198 3.91437 7.52107 3.30616 5.69126 3.49426C5.37794 3.95199 5.14608 4.44734 5.00195 4.9615C6.68763 4.4975 8.56757 4.92388 9.89605 6.2469L9.88979 6.25317Z\" fill=\"white\" />\n <path d=\"M14.069 19.5469L14.0627 19.5531L14.9964 20.4874V20.4811L14.069 19.5469Z\" fill=\"white\" />\n <path d=\"M5.00265 4.96723C5.14677 4.45307 5.37863 3.95773 5.69196 3.5C5.10291 3.5627 4.5264 3.70065 3.96868 3.92638C3.74309 4.47816 3.59896 5.06129 3.53003 5.64442C3.98748 5.33718 4.48253 5.11145 4.99638 4.96723H5.00265Z\" fill=\"white\" />\n <path d=\"M18.6442 14.9957L15.0151 18.627L15.9324 19.5447L19.5614 15.9135L18.6442 14.9957Z\" fill=\"white\" />\n <path d=\"M15.0031 11.3702L15.0094 11.364L18.6439 15.0007L19.5651 14.0727L15.9305 10.4297L14.9968 11.364L15.0031 11.3702Z\" fill=\"white\" />\n <path d=\"M4.99638 25.0131C4.48253 24.8689 3.98748 24.6432 3.53003 24.3359C3.59269 24.9191 3.73682 25.5022 3.96241 26.054C4.51386 26.2797 5.09664 26.4177 5.67942 26.4804C5.3661 26.0226 5.14051 25.5273 4.99638 25.0131Z\" fill=\"white\" />\n <path d=\"M19.5638 14.0714L18.6377 14.998L19.5549 15.9158L20.481 14.9892L19.5638 14.0714Z\" fill=\"white\" />\n <path d=\"M28.1436 15.6836L27.4543 14.9939L28.1436 14.3041C30.6189 11.8274 30.6189 7.80819 28.1436 5.33144C27.5295 4.71696 26.8151 4.25296 26.0506 3.93945C26.2762 4.4975 26.4204 5.07436 26.483 5.66377C26.7399 5.83933 26.9781 6.03371 27.2099 6.25944C29.1713 8.22202 29.1713 11.4073 27.2099 13.3699L25.5869 14.9939L27.2099 16.6179C29.1713 18.5804 29.1713 21.7657 27.2099 23.7283C26.9843 23.954 26.7399 24.1484 26.4893 24.324C26.4266 24.9134 26.2888 25.4902 26.0632 26.0483C26.8214 25.741 27.5295 25.277 28.1436 24.6626C30.6189 22.1858 30.6189 18.1666 28.1436 15.6899V15.6836Z\" fill=\"white\" />\n <path d=\"M19.1703 5.32439L14.9968 9.50036L15.9243 10.4284L20.0915 6.25865C21.4199 4.92936 23.3124 4.50299 25.0044 4.97326C24.8602 4.4591 24.6284 3.95748 24.315 3.50602C22.479 3.31164 20.5677 3.91986 19.1578 5.32439H19.1703Z\" fill=\"white\" />\n <path d=\"M20.1046 23.7279L15.9437 19.5645L15.01 20.4987L19.1709 24.6622C20.5809 26.073 22.4984 26.6812 24.3408 26.4805C24.6541 26.0228 24.8797 25.5274 25.0238 25.0133C23.3319 25.4898 21.4394 25.0634 20.1046 23.7342V23.7279Z\" fill=\"white\" />\n <path d=\"M11.3697 14.9991L10.4436 15.9258L14.0638 19.5481L14.9899 18.6215L11.3697 14.9991Z\" fill=\"white\" />\n <path d=\"M25.0165 4.9735C25.5304 5.11772 26.0317 5.34972 26.4892 5.65696C26.4265 5.06756 26.2824 4.48443 26.0568 3.93265C25.4991 3.70692 24.9225 3.5627 24.3335 3.5C24.6468 3.95773 24.8787 4.45307 25.0228 4.96723L25.0165 4.9735Z\" fill=\"white\" />\n <path d=\"M15.9268 19.5442L14.9976 20.4766L15.0109 20.4898L15.9401 19.5575L15.9268 19.5442Z\" fill=\"white\" />\n <path d=\"M11.3754 14.9877L14.9974 11.3635L14.0699 10.4355L10.4417 14.066L11.3754 15.0003V14.994V14.9877Z\" fill=\"white\" />\n <path d=\"M15.0071 9.49752L15.0027 9.50195L15.9288 10.4286L15.9332 10.4242L15.0071 9.49752Z\" fill=\"white\" />\n <path d=\"M25.0231 25.0081C24.879 25.5222 24.6534 26.0176 24.3401 26.4753C24.9291 26.4126 25.5056 26.2684 26.0634 26.0427C26.289 25.4846 26.4268 24.9078 26.4895 24.3184C26.032 24.6319 25.537 24.8576 25.0231 25.0081Z\" fill=\"white\" />\n <path d=\"M10.4417 14.0675L9.51562 14.9941L10.4461 15.9252L11.3722 14.9986L10.4417 14.0675Z\" fill=\"white\" />\n <path d=\"M15.0035 9.50195H14.9973L14.0698 10.4299V10.4362L15.0035 9.50195Z\" fill=\"white\" />\n <path d=\"M15.0098 18.636L14.9973 18.6172L14.0698 19.5452L14.9973 20.4794L15.931 19.5452L15.0098 18.6297V18.636Z\" fill=\"white\" />\n <path d=\"M14.9984 9.50837L14.0679 10.4395L14.994 11.3661L15.9245 10.435L14.9984 9.50837Z\" fill=\"white\" />\n </svg>\n);\n","/* eslint-disable react/style-prop-object */\n/* eslint-disable max-len */\nimport React from 'react';\n\nexport const pgCouponLogo = (\n <svg width=\"30\" height=\"31\" viewBox=\"0 0 30 31\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <mask id=\"mask0_3400_14362\" style={ { maskType: 'alpha' } } maskUnits=\"userSpaceOnUse\" x=\"0\" y=\"0\" width=\"30\" height=\"31\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M15 30.5C24.0925 30.5 30 24.5925 30 15.5C30 6.40751 24.0925 0.5 15 0.5C5.90751 0.5 0 6.40751 0 15.5C0 24.5925 5.90751 30.5 15 30.5ZM4.10073 15.8237C4.31656 16.1115 8.99282 22.0108 14.964 22.0108C20.9353 22.0108 25.6835 16.1115 25.8273 15.8237C25.9712 15.6798 25.9712 15.3921 25.8273 15.2482C25.6115 14.9604 20.9353 9.06112 14.964 9.06112C9.39537 9.06112 4.95295 14.2544 4.20423 15.1296C4.1501 15.1929 4.11528 15.2336 4.10073 15.2482C3.95684 15.3921 3.95684 15.6798 4.10073 15.8237Z\" fill=\"#A42121\" />\n </mask>\n <g mask=\"url(#mask0_3400_14362)\">\n <path d=\"M11.7266 3.73741C11.7266 1.93885 13.1655 0.5 14.964 0.5C16.7626 0.5 18.2014 1.93885 18.2014 3.73741V27.2626C18.2014 29.0612 16.7626 30.5 14.964 30.5C13.1655 30.5 11.7266 29.0612 11.7266 27.2626V3.73741Z\" fill=\"white\" fillOpacity=\"0.6\" />\n <path d=\"M18.0576 3.66548C18.9209 2.08274 20.9353 1.57915 22.518 2.44246C24.1007 3.30577 24.6043 5.32015 23.741 6.90289L11.9425 27.2626C11.0792 28.8453 9.06477 29.3489 7.48203 28.4856C5.8993 27.6223 5.3957 25.6079 6.25901 24.0252L18.0576 3.66548Z\" fill=\"white\" fillOpacity=\"0.6\" />\n <path d=\"M23.5252 6.83091C25.1079 5.9676 27.0504 6.4712 27.9856 8.05394C28.8489 9.63667 28.3453 11.5791 26.7626 12.5144L6.40288 24.169C4.82014 25.0324 2.8777 24.5288 1.94245 22.946C1.00719 21.3633 1.58273 19.4208 3.16547 18.4856L23.5252 6.83091Z\" fill=\"white\" fillOpacity=\"0.6\" />\n <path d=\"M26.7626 12.2266C28.5612 12.2266 30 13.6655 30 15.464C30 17.2626 28.5612 18.7014 26.7626 18.7014H3.23741C1.43885 18.7014 0 17.2626 0 15.464C0 13.6655 1.43885 12.2266 3.23741 12.2266H26.7626Z\" fill=\"white\" fillOpacity=\"0.6\" />\n <path d=\"M26.7626 18.5575C28.3453 19.4208 28.8489 21.4352 27.9856 23.0179C27.1223 24.6006 25.1079 25.1042 23.5251 24.2409L3.16543 12.4424C1.5827 11.5791 1.0791 9.56468 1.94241 7.98194C2.80572 6.39921 4.82011 5.89561 6.40284 6.75892L26.7626 18.5575Z\" fill=\"white\" fillOpacity=\"0.6\" />\n <path d=\"M23.669 24.0252C24.5324 25.6079 24.0288 27.5503 22.446 28.4856C20.8633 29.3489 18.9208 28.8453 17.9856 27.2626L6.33092 6.90285C5.39566 5.39206 5.9712 3.37767 7.482 2.51436C9.06473 1.65105 11.0072 2.15465 11.9424 3.73738L23.669 24.0252Z\" fill=\"white\" fillOpacity=\"0.6\" />\n <path d=\"M11.7266 3.73741C11.7266 1.93885 13.1655 0.5 14.964 0.5C16.7626 0.5 18.2014 1.93885 18.2014 3.73741V27.2626C18.2014 29.0612 16.7626 30.5 14.964 30.5C13.1655 30.5 11.7266 29.0612 11.7266 27.2626V3.73741Z\" fill=\"white\" fillOpacity=\"0.6\" />\n <path d=\"M18.0576 3.66548C18.9209 2.08274 20.9353 1.57915 22.518 2.44246C24.1007 3.30577 24.6043 5.32015 23.741 6.90289L11.9425 27.2626C11.0792 28.8453 9.06477 29.3489 7.48203 28.4856C5.8993 27.6223 5.3957 25.6079 6.25901 24.0252L18.0576 3.66548Z\" fill=\"white\" fillOpacity=\"0.6\" />\n <path d=\"M23.5252 6.83091C25.1079 5.9676 27.0504 6.4712 27.9856 8.05394C28.8489 9.63667 28.3453 11.5791 26.7626 12.5144L6.40288 24.169C4.82014 25.0324 2.8777 24.5288 1.94245 22.946C1.00719 21.3633 1.58273 19.4208 3.16547 18.4856L23.5252 6.83091Z\" fill=\"white\" fillOpacity=\"0.6\" />\n <path d=\"M26.7626 12.2266C28.5612 12.2266 30 13.6655 30 15.464C30 17.2626 28.5612 18.7014 26.7626 18.7014H3.23741C1.43885 18.7014 0 17.2626 0 15.464C0 13.6655 1.43885 12.2266 3.23741 12.2266H26.7626Z\" fill=\"white\" fillOpacity=\"0.6\" />\n <path d=\"M26.7626 18.5575C28.3453 19.4208 28.8489 21.4352 27.9856 23.0179C27.1223 24.6006 25.1079 25.1042 23.5251 24.2409L3.16543 12.4424C1.5827 11.5791 1.0791 9.56468 1.94241 7.98194C2.80572 6.39921 4.82011 5.89561 6.40284 6.75892L26.7626 18.5575Z\" fill=\"white\" fillOpacity=\"0.6\" />\n <path d=\"M23.669 24.0252C24.5324 25.6079 24.0288 27.5503 22.446 28.4856C20.8633 29.3489 18.9208 28.8453 17.9856 27.2626L6.33092 6.90285C5.39566 5.39206 5.9712 3.37767 7.482 2.51436C9.06473 1.65105 11.0072 2.15465 11.9424 3.73738L23.669 24.0252Z\" fill=\"white\" fillOpacity=\"0.6\" />\n </g>\n <path d=\"M18.13 12.515C18.13 13.2344 17.5545 13.81 16.7631 13.81C15.9718 13.81 15.3962 13.2344 15.3962 12.4431C15.3962 11.9395 15.684 11.5078 16.1157 11.2201C15.7559 11.0762 15.3243 11.0762 14.8926 11.0762C12.4466 11.0762 10.5042 13.0186 10.5042 15.4647C10.5042 17.9107 12.4466 19.8532 14.8926 19.8532C17.3387 19.8532 19.2811 17.9107 19.2811 15.4647C19.3531 14.3136 18.9214 13.3064 18.13 12.515Z\" fill=\"white\" fillOpacity=\"0.9\" />\n </svg>\n);\n","/* eslint-disable react/style-prop-object */\n/* eslint-disable max-len */\nimport React from 'react';\n\nexport const psCouponLogo = (\n <svg width=\"30\" height=\"30\" viewBox=\"0 0 30 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clipPath=\"url(#clip0_7514_85661)\">\n <path d=\"M3.98024 4.80129C1.50903 7.48648 0 11.0709 0 15.0078C0 19.4411 1.91355 23.4275 4.95978 26.1861C3.5436 24.85 2.65968 22.9558 2.65968 20.8552C2.65968 17.8441 5.18215 16.0825 7.75856 14.2832C8.79839 13.557 9.84702 12.8247 10.7421 12.0016C10.887 11.8684 11.0298 11.7318 11.1702 11.5919L11.1843 11.5779H11.1846L11.2058 11.5566C12.7552 10.0015 13.9124 8.20333 14.6776 6.28516C13.2011 4.3 11.5865 2.65967 9.15726 2.65967C7.13605 2.65967 5.30597 3.47795 3.98024 4.80129Z\" fill=\"url(#paint0_linear_7514_85661)\" />\n <path d=\"M3.97667 25.2101C4.05708 25.3005 4.13969 25.3888 4.22422 25.4751C4.26695 25.5187 4.30993 25.562 4.35318 25.6051C4.22533 25.4757 4.0998 25.344 3.97667 25.2101Z\" fill=\"url(#paint1_linear_7514_85661)\" />\n <path d=\"M4.82436 26.0547C7.50545 28.5053 11.0749 30.0002 14.9935 30.0002C19.427 30.0002 23.4134 28.0867 26.1721 25.0406C24.836 26.4568 22.9418 27.3407 20.8411 27.3407C17.8753 27.3407 16.1517 24.8738 14.3827 22.3421C13.6244 21.2567 12.8577 20.1595 11.9813 19.2395C11.912 19.1667 11.8418 19.0946 11.7706 19.0232L11.7503 19.0029L11.7473 19C10.1057 17.3648 8.16475 16.2023 6.08589 15.509C6.0753 15.5055 6.06411 15.5055 6.05386 15.5087C4.17392 16.94 2.66016 18.5228 2.66016 20.8554C2.66016 22.888 3.48775 24.7273 4.82436 26.0547Z\" fill=\"url(#paint2_linear_7514_85661)\" />\n <path d=\"M22.2459 15.7157C21.2117 16.438 20.1689 17.1663 19.2776 17.9839C19.1282 18.1209 18.9812 18.2614 18.8366 18.4054L18.8155 18.4266L18.8155 18.4267L18.8069 18.4352C17.2621 19.9858 16.107 21.7781 15.3418 23.69C16.8129 25.6824 18.4094 27.3404 20.8408 27.3404C22.9067 27.3404 24.7729 26.4855 26.105 25.1103C28.5258 22.4356 30.0002 18.8885 30.0002 14.9969C30.0002 10.5619 28.0852 6.57415 25.0368 3.81543C26.4551 5.1517 27.3405 7.04726 27.3405 9.14959C27.3405 12.1578 24.8198 13.9182 22.2459 15.7157Z\" fill=\"url(#paint3_linear_7514_85661)\" />\n <path d=\"M25.8715 25.3626C25.8361 25.3994 25.8006 25.436 25.7648 25.4725C25.7696 25.4681 25.7743 25.4637 25.779 25.4593C25.81 25.4272 25.8408 25.3949 25.8715 25.3626Z\" fill=\"url(#paint4_linear_7514_85661)\" />\n <path d=\"M15.7242 7.75355C16.4453 8.78656 17.1723 9.82808 17.9887 10.7185C18.1267 10.8691 18.2684 11.0174 18.4136 11.1632L18.4347 11.1842V11.1845L18.456 11.2058C20.0066 12.7506 21.7989 13.9056 23.7108 14.6708C25.6977 13.1929 27.34 11.5778 27.34 9.14964C27.34 7.09522 26.4945 5.23825 25.1325 3.9077C22.4561 1.47954 18.9033 1.704e-07 15.0048 0C10.5745 -1.93648e-07 6.59051 1.91079 3.83203 4.95319C5.16783 3.54081 7.05949 2.65961 9.15697 2.65961C12.1683 2.65961 13.9278 5.18012 15.7242 7.75355Z\" fill=\"url(#paint5_linear_7514_85661)\" />\n <path d=\"M25.4518 4.20594C25.4583 4.21225 25.4648 4.21857 25.4712 4.2249C25.4703 4.22395 25.4694 4.223 25.4686 4.22205C25.463 4.21668 25.4574 4.21131 25.4518 4.20594Z\" fill=\"url(#paint6_linear_7514_85661)\" />\n </g>\n <defs>\n <linearGradient id=\"paint0_linear_7514_85661\" x1=\"13.0762\" y1=\"4.24209\" x2=\"-3.61165\" y2=\"15.0151\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"white\" stopOpacity=\"0.4\" />\n <stop offset=\"1\" stopColor=\"white\" />\n </linearGradient>\n <linearGradient id=\"paint1_linear_7514_85661\" x1=\"18.8164\" y1=\"30.0002\" x2=\"1.45438\" y2=\"25.4617\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"white\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0.4\" />\n </linearGradient>\n <linearGradient id=\"paint2_linear_7514_85661\" x1=\"18.8164\" y1=\"30.0002\" x2=\"1.45438\" y2=\"25.4617\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"white\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0.4\" />\n </linearGradient>\n <linearGradient id=\"paint3_linear_7514_85661\" x1=\"28.4009\" y1=\"5.39775\" x2=\"11.7226\" y2=\"16.1511\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"white\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0.4\" />\n </linearGradient>\n <linearGradient id=\"paint4_linear_7514_85661\" x1=\"28.4009\" y1=\"5.39775\" x2=\"11.7226\" y2=\"16.1511\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"white\" />\n <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0.4\" />\n </linearGradient>\n <linearGradient id=\"paint5_linear_7514_85661\" x1=\"27.34\" y1=\"11.8408\" x2=\"7.29222\" y2=\"9.75961\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"white\" stopOpacity=\"0.4\" />\n <stop offset=\"1\" stopColor=\"white\" />\n </linearGradient>\n <linearGradient id=\"paint6_linear_7514_85661\" x1=\"27.34\" y1=\"11.8408\" x2=\"7.29222\" y2=\"9.75961\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"white\" stopOpacity=\"0.4\" />\n <stop offset=\"1\" stopColor=\"white\" />\n </linearGradient>\n <clipPath id=\"clip0_7514_85661\">\n <rect width=\"30\" height=\"30\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n);\n","import { connect } from 'react-redux';\nimport CouponLabel from './coupon_label';\nimport { getUserFirstActivePromotion } from '../../../config/util';\nimport { loadAdvisor } from '../../../actions/advisors';\n\nconst mapStateToProps = ({\n user, application\n}) => (\n {\n userAdvisorModeMinSalesPrice: getUserFirstActivePromotion({ user, application })?.advisorModeMinSalesPrice\n }\n);\n\nexport default connect(\n mapStateToProps,\n {\n loadAdvisor\n }\n)((CouponLabel));\n","import { differenceInSeconds } from 'date-fns';\nimport { getDateFromServer } from '../../../common/config/utils';\n\nimport env from '../../config/variables';\n\nconst { DISCOUNT_COUPONS } = env;\n\nexport const getDiscountPercent = ({ discountCouponId }) => {\n const procent = DISCOUNT_COUPONS.find((c) => c.id === discountCouponId);\n return procent?.discountPercent;\n};\n\nexport const oneHourTimer = ({ expiresAt, timerEndAction, setLeftSeconds = null }) => {\n const dateNow = getDateFromServer();\n const seconds = differenceInSeconds(new Date(expiresAt), dateNow);\n if (setLeftSeconds) setLeftSeconds(seconds);\n\n const secondsLeft = seconds % 60;\n const minutesLeft = (seconds / 60) % 60;\n\n let timeIndex;\n if (seconds > 0) {\n if (secondsLeft > 0) {\n timeIndex = secondsLeft * 1000;\n } else if (minutesLeft) {\n timeIndex = minutesLeft * 60 * 1000;\n } else {\n timeIndex = 60 * 60 * 1000;\n }\n }\n\n if (seconds === 0) {\n if (timerEndAction) timerEndAction();\n }\n\n if (timeIndex && timeIndex !== 0) {\n setTimeout(() => {\n oneHourTimer({ expiresAt, timerEndAction, setLeftSeconds });\n }, timeIndex);\n }\n};\n","import { matchPath } from 'react-router';\nimport i18n from '../config/i18n';\nimport { appRoutes } from '../config/app_routes';\n\nexport const getAdvisorSlug = ({ advisorId }) => {\n const { advisors } = window.store.getState();\n const { knownPaths } = advisors;\n const knownPath = Object.keys(knownPaths).find((kp) => knownPaths[kp] === advisorId);\n const pattern = `/:lang?${ i18n.t(appRoutes.advisor) }`;\n const slugMatch = matchPath(pattern, knownPath);\n const advisorSlug = slugMatch?.params?.slug;\n return advisorSlug;\n};\n\nexport const getAdvisorIdBySlug = ({ advisorSlug }) => {\n const { advisors } = window.store.getState();\n const { knownPaths } = advisors;\n const advisorSlugPath = Object.keys(knownPaths).find((kp) => kp.includes(advisorSlug));\n const advisorId = knownPaths[advisorSlugPath];\n return advisorId;\n};\n","/* eslint-disable import/no-dynamic-require */\nimport { isKA } from '../../../common/config/utils';\n\nexport const getImageByEnvironment = (imageName, extension = '.svg') => require(`./${ isKA() ? 'ka' : 'pg' }/${ imageName }${ extension }`);\n","import PropTypes from 'prop-types';\n\nexport const SpecialityPropType = {\n id: PropTypes.number,\n name: PropTypes.string,\n analyticsName: PropTypes.string,\n backgroundColor: PropTypes.string,\n textColor: PropTypes.string,\n iconHomeUrl: PropTypes.string,\n iconDetailsUrl: PropTypes.string\n};\n\nexport const ReviewPropType = {\n like: PropTypes.bool,\n comment: PropTypes.string,\n createdAt: PropTypes.string,\n buyerNickname: PropTypes.string\n};\nexport const FavoriteData = {\n availability: PropTypes.bool,\n availabilityOnce: PropTypes.bool,\n videChat: PropTypes.bool,\n videoChatOnce: PropTypes.bool,\n voiceCall: PropTypes.bool,\n voiceCallOnce: PropTypes.bool,\n textChat: PropTypes.bool,\n textChatOnce: PropTypes.bool\n};\n\nexport const availabilityNotificationType = {\n subtitle: PropTypes.string,\n switchedOn: PropTypes.bool,\n title: PropTypes.string\n};\n\nconst ReviewItemsropType = {\n items: PropTypes.arrayOf(PropTypes.shape(ReviewPropType))\n};\n\nexport const LiveModePropType = {\n mode: PropTypes.string,\n name: PropTypes.string,\n modeState: PropTypes.string,\n price: PropTypes.string,\n salesPrice: PropTypes.string,\n promoPrices: PropTypes.object\n};\n\nexport const LiveModeDefaultProps = {\n mode: '',\n name: '',\n modeState: '',\n price: '',\n salesPrice: '',\n promoPrices: {}\n};\n\nexport const AdvisorPropType = {\n id: PropTypes.number,\n status: PropTypes.string,\n nickName: PropTypes.string,\n serviceTitle: PropTypes.string,\n serviceDescription: PropTypes.string,\n instructions: PropTypes.string,\n aboutMe: PropTypes.string,\n profileVideoThumbUrl: PropTypes.string,\n profileVideoUrl: PropTypes.string,\n advisorShareLink: PropTypes.string,\n badges:PropTypes.array,\n favorite: PropTypes.bool,\n readingsCount: PropTypes.number,\n yearJoined: PropTypes.number,\n rating: PropTypes.number,\n isNewAdvisor: PropTypes.bool,\n accuracyPercent: PropTypes.number,\n accuracyReviewersCount: PropTypes.number,\n likesCount: PropTypes.number,\n dislikesCount: PropTypes.number,\n liveModes: PropTypes.arrayOf(PropTypes.shape(LiveModePropType)),\n favoriteData: PropTypes.shape(FavoriteData),\n specialities: PropTypes.arrayOf(PropTypes.shape(SpecialityPropType)),\n reviews: PropTypes.shape(ReviewItemsropType),\n availabilityNotification: PropTypes.shape(availabilityNotificationType),\n analytics: PropTypes.object,\n similarOnlineAdvisors: PropTypes.array\n};\n\nexport const AdvisorDefaultProps = {\n id: null,\n status: '',\n nickName: '',\n serviceTitle: '',\n serviceDescription: '',\n instructions: '',\n aboutMe: '',\n profileVideoThumbUrl: '',\n profileVideoUrl: '',\n advisorShareLink: '',\n favorite: false,\n readingsCount: null,\n yearJoined: null,\n rating: null,\n isNewAdvisor: false,\n accuracyPercent: null,\n accuracyReviewersCount: null,\n likesCount: null,\n dislikesCount: null,\n badges:[],\n liveModes: [],\n favoriteData: null,\n specialities: [],\n reviews: null,\n availabilityNotification: null,\n analytics: null,\n similarOnlineAdvisors: []\n};\n","import PropTypes from 'prop-types';\nimport queryString from 'query-string';\nimport createReducer from '../config/create_reducer';\nimport Const from '../config/const';\n\nexport const UserVerificationPropType = PropTypes.shape({\n kind: PropTypes.string.isRequired,\n state: PropTypes.string.isRequired,\n id: PropTypes.number,\n uploadUrl: PropTypes.string\n});\n\nconst utilityBillStatus = (queryString.parse(window.location.search) || {}).idScanStatus;\nconst utilityBillErrorCode = (queryString.parse(window.location.search) || {}).errorCode;\n\nconst getDefaultState = () => ({\n userVerifications: [],\n selectedVerification: null,\n loading: false,\n error: null,\n jumioProcessing: false,\n verificationProcessing: false\n});\n\nconst updateVerificationsArray = (\n currentVerifications,\n newVerification\n) => currentVerifications.map((verification) => {\n if (verification.kind === newVerification.kind) {\n return newVerification;\n }\n return verification;\n});\n\nconst purchaseDetailsReducer = createReducer(getDefaultState(), {\n [Const.spendingLimits.loadingVerifications]: (state) => ({\n ...state,\n loading: true\n }),\n [Const.spendingLimits.verificationsLoaded]: (state, { userVerifications }) => ({\n ...state,\n userVerifications,\n loading: false,\n verificationProcessing : !!utilityBillStatus && utilityBillStatus === 'SUCCESS',\n selectedVerification: utilityBillStatus ? userVerifications.find((ver) => ver.kind === 'utility_bill') : state.selectedVerification,\n error: utilityBillStatus && utilityBillStatus === 'ERROR' ? utilityBillErrorCode : state.error\n }),\n [Const.spendingLimits.loadVerificationsError]: (state, { error }) => ({\n ...state,\n error,\n loading: false\n }),\n [Const.spendingLimits.verificationSelected] : (state, { verification }) => ({\n ...state,\n selectedVerification: verification,\n userVerifications: !verification\n ? state.userVerifications : updateVerificationsArray(state.userVerifications, verification),\n jumioProcessing: !!verification,\n loading: false\n }),\n [Const.spendingLimits.jumioEnded]: (state) => ({\n ...state,\n jumioProcessing: false,\n verificationProcessing: true\n }),\n [Const.spendingLimits.verificationProcessed]: (state) => ({\n ...state,\n verificationProcessing: false\n }),\n [Const.spendingLimits.verificationStatusUpdated]: (state, { verification, onError }) => ({\n ...state,\n userVerifications: updateVerificationsArray(state.userVerifications, verification),\n verificationProcessing: !onError\n && (verification.state !== 'processing_completed' && verification.state !== 'approved' && verification.state !== 'rejected')\n }),\n [Const.spendingLimits.cleanError]: (state) => ({\n ...state,\n error: null\n }),\n [Const.spendingLimits.jumioError]: (state, { error }) => ({\n ...state,\n jumioProcessing: false,\n error\n })\n});\n\nexport default purchaseDetailsReducer;\n","export const paymentSourcesTheme = {\n wallet: 'wallet',\n purchase: 'purchase'\n};\n\nexport const purchaseErrorText = {\n cannotBeUsedOnThisBrowser: 'Cannot be used on this browser',\n paymentMethodCannotBeUsed: 'Payment method cannot be used',\n pleaseReEnterTheCardDetailsForSecurityReasons: 'Please re-enter the card details for security reasons'\n};\n\nexport const appGeneralPopupTheme = {\n CHAT_ENDED: 'CHAT_ENDED',\n CHAT_ENDED_RATE_REVIEW: 'CHAT_ENDED_RATE_REVIEW',\n DEFAULT: 'DEFAULT',\n AFFILIATE_PROMO: 'AFFILIATE_PROMO',\n INTRO_DATE_PICKER: 'INTRO_DATE_PICKER',\n INTRO: 'INTRO',\n ABSOLUTE_POPUP: 'ABSOLUTE_POPUP',\n SCROLLED_POPUP: 'SCROLLED_POPUP',\n CENTERED: 'CENTERED',\n BOTTOM: 'BOTTOM',\n REGISTER: 'REGISTER',\n JUMIO_POPOVER: 'JUMIO_POPOVER',\n VIDEO_POPOVER: 'VIDEO_POPOVER'\n};\n\nexport const paymentMethodsListTitleTheme = {\n wallet: 'wallet',\n purchase: 'purchase'\n};\n\nexport const purchaseDetailsTypes = {\n SIDE_MENU: 'SIDE_MENU',\n CHAT: 'CHAT',\n VOICE_CHAT: 'VOICE_CHAT',\n VIDEO_CHAT: 'VIDEO_CHAT',\n AFFILIATE_PROMO_POPUP: 'AFFILIATE_PROMO_POPUP'\n};\n\n// Need for app rezise observer\nexport const walletHolderId = 'wallet_holder';\n\nexport const appThemes = {\n light: 'light',\n dark: 'dark'\n};\n\nexport const NTYPE = {\n PSYCHICS: 'psychic',\n ORDER_MESSAGE: 'new_order_message'\n};\n\nexport const purchaseTypeToOrderType = {\n live_chat: 'chat',\n video_call: 'video',\n voice_call: 'voice'\n};\n\nexport const supportedApplePayVer = '5.4.0';\nexport const supportedNewPOWalletVersion = '6.0.0';\n","/* eslint-disable no-empty */\nimport { useEffect, useRef } from 'react';\nimport snakeCase from 'lodash.snakecase';\nimport camelCase from 'lodash.camelcase';\nimport lowerCase from 'lodash.lowercase';\nimport queryString from 'query-string';\nimport semver from 'semver';\nimport { browserName } from 'react-device-detect';\nimport {\n differenceInDays, differenceInYears, getHours, getDay, getMonth, getYear, getDate, differenceInMilliseconds, addMilliseconds\n} from 'date-fns';\nimport { matchPath } from 'react-router-dom';\nimport { purchaseDetailsTypes, appThemes } from './const';\n\nexport const hideBodyScroll = () => {\n const invisibleScrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n document.documentElement.style.setProperty(\n '--invisible-scrollbar-width',\n `${ invisibleScrollbarWidth }px`\n );\n document.body.style.setProperty('overflow', 'hidden');\n document.body.style.setProperty('-webkit-overflow-scrolling', 'touch');\n};\n\nexport const unlockBodyScroll = () => {\n document.body.style.setProperty('overflow', 'unset');\n document.documentElement.style.setProperty('--invisible-scrollbar-width', '0px');\n};\n\nexport const paramOrNul = (key, value) => (value || value === undefined || value === 0 ? { [key]: value } : null);\n\nexport const mobileClickSource = (queryString.parse(window.location.search) || {}).purchase_screen || (queryString.parse(window.location.search) || {}).click_source;\n\nexport const clickSourceOrMobileClickSource = (clickSource) => clickSource || mobileClickSource;\n\nexport const getStartChatClickSource = (location) => {\n const startChatClickSource = location?.state && location?.state?.startChatClickSource ? location?.state?.startChatClickSource : 'direct';\n return startChatClickSource;\n};\n\nexport const isMobile = () => parseInt(getComputedStyle(document.documentElement).getPropertyValue('--window-width'), 10) <= window.shared.phoneOnlyUpSize;\n\nconst clientPlatforms = {\n pgapp: 'pgapp',\n poapp: 'poapp',\n kasamba: 'kasamba',\n psapp: 'psapp'\n};\n\nconst fromMobileAppHandler = () => {\n const search = (queryString.parse(window.location.search) || {});\n if (search.pg_client === clientPlatforms.pgapp) return true;\n if (Object.keys(clientPlatforms).map(k => clientPlatforms[k]).includes(search.client_platform)) return true;\n return false;\n};\n\nexport const fromMobileApp = fromMobileAppHandler();\n\nexport const isOldMobileApp = (queryString.parse(window.location.search) || {}).pg_client === 'pgapp';\n\nexport const getClientPlatform = () => {\n const search = (queryString.parse(window.location.search) || {});\n // posible value pgapp, poapp, kasamba, psapp\n if (search.pg_client || search.client_platform) return 'customer app';\n return 'customer web';\n};\n\nexport const getClientPlatformForAPI = () => {\n const platform = getClientPlatform();\n return platform === 'customer web' ? 'Web' : 'app';\n};\n\nexport const browserContext = { browser_context: browserName };\n\nexport const isWebView = () => {\n if (typeof window === 'undefined') { return false; }\n\n const { navigator } = window;\n\n const { standalone } = navigator;\n const userAgent = navigator.userAgent.toLowerCase();\n const safari = /safari/.test(userAgent);\n const ios = /iphone|ipod|ipad|macintosh/.test(userAgent);\n const iosIpadWebView = ios && !safari;\n\n return ios ? ((!standalone && !safari) || iosIpadWebView) : userAgent.includes('wv');\n};\n\nexport const isPGW = () => window.location.host?.includes('purplegarden');\n\nexport const isPOW = () => window.location.host?.includes('purpleocean');\n\nexport const isKA = () => process.env.APP_CONTEXTS === 'ka';\n\nexport const isPS = () => process.env.APP_CONTEXTS === 'ps';\n\nexport const isPG = () => process.env.APP_CONTEXTS.includes('pg');\n\nexport const getAppName = () => {\n if (isPOW()) return 'Purple Ocean';\n if (isKA()) return 'Kasamba';\n return 'Purple Garden';\n};\n\nexport const appContext = {\n po: 'po',\n pg: 'pg',\n ka: 'ka',\n ps: 'ps'\n};\n\nexport const getIcon = ({\n iconName, requireContext, forAppContext = false, appTheme\n}) => {\n let name = iconName;\n let appCode;\n if (forAppContext) {\n if (isPGW()) {\n appCode = appContext.pg;\n name = `${ appCode }_${ name }`;\n } else if (isKA()) {\n appCode = appContext.ka;\n name = `${ appCode }_${ name }`;\n } else {\n appCode = appContext.po;\n name = `${ appCode }_${ name }`;\n }\n }\n const images = requireContext.keys().map(requireContext);\n let img = images.find(item => item.includes(name));\n if (appTheme && Object.keys(appThemes).includes(appTheme)) {\n const nameWithTheme = `${ name }_${ appTheme }`;\n const imgWithTheme = images.find(item => item.includes(nameWithTheme));\n if (imgWithTheme) img = imgWithTheme;\n }\n if (!img) {\n const unknowImg = images.find(item => item.includes('unknow')); // Need for unknown credit card\n if (unknowImg) return unknowImg;\n if (forAppContext && appCode) {\n const nameWithoutAppContext = name.replace(`${ appCode }_`, '');\n const imgWithoutAppContext = images.find(item => item.includes(`${ nameWithoutAppContext }`));\n return imgWithoutAppContext;\n }\n }\n return img;\n};\n\nexport const compareObjects = (obj1, obj2) => JSON.stringify(obj1) === JSON.stringify(obj2);\n\nfunction UsePreviousValue({ value }) {\n const ref = useRef();\n useEffect(() => { ref.current = value; });\n return ref.current;\n}\n\nUsePreviousValue.propTypes = {};\n\nUsePreviousValue.defaultProps = {};\n\nexport default UsePreviousValue;\n\nconst convertCase = (oldObject, converterFunction) => {\n let newObject;\n\n if (!oldObject || typeof oldObject !== 'object' || !Object.keys(oldObject).length) return oldObject;\n\n if (Array.isArray(oldObject)) {\n newObject = oldObject.map(element => convertCase(element, converterFunction));\n } else {\n newObject = {};\n Object.keys(oldObject).forEach(oldKey => {\n const newKey = converterFunction(oldKey);\n newObject[newKey] = convertCase(oldObject[oldKey], converterFunction);\n });\n }\n\n return newObject;\n};\n\nexport const toCamelCase = (obj) => convertCase(obj, camelCase);\nexport const toSnakeCase = (obj) => convertCase(obj, snakeCase);\nexport const toLowerCaseSpaced = (obj) => convertCase(obj, lowerCase);\n\nexport const convertStringToSnakeCase = (str) => {\n str = str[0].toLowerCase() + str.slice(1, str.length).replace(/[A-Z]/g, letter => `_${ letter.toLowerCase() }`);\n str = str.replaceAll(' _', '_');\n\n return str.replaceAll(' ', '_').replace(/(^_*|_*$)/g, '');\n};\n\nexport const convertStringToCamelCase = (str) => {\n const arr = str.match(/[a-z]+|\\d+/gi);\n return arr.map((m, i) => {\n let low = m.toLowerCase();\n if (i !== 0) {\n low = low.split('').map((s, k) => (k === 0 ? s.toUpperCase() : s)).join``;\n }\n return low;\n }).join``;\n};\n\nexport const downloadAppLink = (afChanel) => {\n if (!window || !window.attribution || !window.attribution.url) return null;\n let parsedURL = window.attribution.url.replace(/&/gi, '&');\n parsedURL += afChanel ? `&${ queryString.stringify({ af_channel: afChanel }) }` : '';\n return parsedURL;\n};\n\nexport const emailIsValid = (email) => {\n const re = /^[A-Z0-9a-z._%+-]+@([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}$/;\n return re.test(String(email.trim()).toLowerCase());\n};\n\nexport const nicknameIsValid = (nickname) => {\n const re = /^[a-zA-Z0-9]{2,20}$/;\n return re.test(String(nickname.trim()).toLowerCase());\n};\n\nexport const paymentKindToAnalyticsName = (kind) => {\n const kindList = {\n cc: 'credit card',\n pp: 'paypal',\n iap: 'IAP',\n ap: 'apple pay',\n none: 'none'\n };\n return kindList[kind];\n};\n\nexport const noPaymentMethodsEventData = (options) => {\n if (!options) return ({ 'available methods': undefined });\n const hasNoPaymentMethodsSet = options.find((o) => o.adding);\n if (hasNoPaymentMethodsSet) {\n const availableMethods = [];\n options.forEach((o) => {\n if (o.adding) availableMethods.push(paymentKindToAnalyticsName(o.kind));\n });\n return ({ 'available methods': availableMethods.join(' + ') });\n }\n return ({ 'available methods': undefined });\n};\n\nexport const currentPaymentMethodData = () => {\n const { getState } = window.store;\n const { paymentSources: { current } } = getState();\n if (current) {\n const { kind, id, gatewayName } = current;\n const previousPaymentProps = {\n 'prev payment method': paymentKindToAnalyticsName(kind),\n 'prev payment id' : id,\n 'prev payment gateway': gatewayName\n };\n return previousPaymentProps;\n }\n return null;\n};\n\nexport const getPurchaseScreenForPaymentSourcesEvent = (clickSource) => {\n let purchaseScreen = clickSourceOrMobileClickSource(clickSource);\n if (window.location.pathname.includes('/payment_sources')) purchaseScreen = 'payment methods';\n return purchaseScreen;\n};\n\nexport const tryParseJSONObject = (jsonString) => {\n try {\n const o = JSON.parse(jsonString);\n if (o && typeof o === 'object') return o;\n } catch (e) { }\n return false;\n};\n\nexport const capitalizeFirstChar = (str) => {\n if (!str) return null;\n return str.charAt(0).toUpperCase() + str.slice(1);\n};\n\nexport const formatCardName = (str) => {\n if (!str) return null;\n const splitedString = str.split('_');\n let cardName = '';\n splitedString.map((item) => {\n let s = item;\n if (s === 'mastercard') {\n s = s.slice(0, s.indexOf('card')) + capitalizeFirstChar(s.slice(s.indexOf('card')));\n }\n cardName += ` ${ capitalizeFirstChar(s) }`;\n return null;\n });\n return cardName.trim();\n};\n\nconst purchaseTypes = {\n side_menu: purchaseDetailsTypes.SIDE_MENU,\n live_chat: purchaseDetailsTypes.CHAT,\n voice_call: purchaseDetailsTypes.VOICE_CHAT,\n video_call: purchaseDetailsTypes.VIDEO_CHAT,\n matchup_promo: purchaseDetailsTypes.AFFILIATE_PROMO_POPUP\n};\n\nexport const getPurchaseType = (purchaseType) => {\n if (purchaseType) return purchaseTypes[purchaseType];\n return purchaseDetailsTypes.SIDE_MENU;\n};\n\nexport const getPrice = (price) => parseFloat(price || 15);\nexport const getBonus = (bonus) => parseFloat(bonus || 0);\nexport const getDuration = (duration) => parseFloat(duration);\nexport const getAdvisorId = (advisorId) => parseFloat(advisorId);\nexport const getClickSource = (clickSource) => (clickSource || '').split('_').join(' ');\nexport const getIsPayg = (payg) => payg && payg.toLowerCase() === 'true';\n\nexport const hideEmailAdress = (email) => {\n if (!emailIsValid(email)) return email;\n const emailSplit = email.split('@');\n const emailFirstPart = emailSplit[0];\n const firstNCharts = emailFirstPart.slice(0, 3);\n const lastChar = emailFirstPart.length >= 4 ? emailFirstPart.slice(-1) : '';\n const hidedEmail = `${ firstNCharts }****${ lastChar }@${ emailSplit[1] }`;\n return hidedEmail;\n};\n\nexport const getMinPrice = () => {\n const userReducer = window.store.getState().user;\n return (userReducer.user?.minCreditRequestedCents || 1000) / 100;\n};\n\nexport const calculateDiffHandler = ({ purchaseType, price, clientAvailableCredit }) => {\n if (purchaseType === purchaseDetailsTypes.SIDE_MENU\n || purchaseType === purchaseDetailsTypes.AFFILIATE_PROMO_POPUP) {\n return price;\n }\n return price - parseFloat(clientAvailableCredit);\n};\n\nexport const calculateRequiredFunds = ({ diffPrice, purchaseType }) => {\n const minPrice = getMinPrice();\n if (purchaseType === purchaseDetailsTypes.AFFILIATE_PROMO_POPUP) return diffPrice;\n if (diffPrice < minPrice) return minPrice;\n return diffPrice;\n};\n\nconst localDate = new Date();\nexport const getDateFromServer = () => {\n const currentDate = new Date();\n const milliSecondsDifference = differenceInMilliseconds(currentDate, localDate);\n\n const windowConfigUtcDate = new Date(window.config.utc.replace(/-/g, '/'));\n\n const dateFromServer = addMilliseconds(windowConfigUtcDate, milliSecondsDifference);\n return dateFromServer;\n};\n\nexport const getDateFromServerUTC = () => {\n const dateFromServer = getDateFromServer();\n const dateFromServerUtc = new Date(dateFromServer.getTime() + dateFromServer.getTimezoneOffset() * 60000);\n\n return dateFromServerUtc;\n};\n\nexport const getData = ({ date, type }) => {\n const getDataTypes = {\n date: getDate,\n hours: getHours,\n day: getDay,\n month: getMonth,\n year: getYear\n };\n const itemCount = type === 'month' ? getDataTypes[type](date) + 1 : getDataTypes[type](date);\n const result = itemCount < 10 ? `0${ itemCount }` : itemCount;\n return result;\n};\n\nexport const calculateDifference = ({ date1, date2, type }) => {\n const calculateDifferenceTypes = {\n days: differenceInDays,\n years: differenceInYears\n };\n if (!date1 || !date2) return null;\n const result = calculateDifferenceTypes[type](new Date(date1), new Date(date2));\n return result;\n};\n\nexport const getAddCreditUrl = ({ credit, purchaseType, clickSource }) => {\n if (!window.config.addCreditPath) return '';\n const clickSourceParam = clickSource ? { click_source: clickSource } : {};\n let queryParams = { with_payment_sources: true, platform: getClientPlatformForAPI(), ...clickSourceParam };\n if (purchaseType === purchaseDetailsTypes.AFFILIATE_PROMO_POPUP || purchaseType === 'matchup_promo') {\n queryParams = { ...queryParams, is_affiliate_promo_purchase: true };\n }\n const {\n context, bonus, price\n } = queryString.parse(window.location.search);\n\n let url = window.config.addCreditPath.replace('{credit}', credit);\n if (context === 'credit_screen') {\n const amount = Math.ceil(parseFloat(bonus) + parseFloat(price));\n url = `/my/app_credits/${ amount }`;\n }\n return `${ url }?${ queryString.stringify(queryParams) }`;\n};\n\nexport const asyncLoadScript = (scriptURL, existingVariable) => new Promise((resolve, reject) => {\n if (existingVariable) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.src = scriptURL;\n script.async = true;\n script.onload = () => resolve();\n script.onerror = (error) => reject(error);\n document.body.appendChild(script);\n});\n\nexport const withCaptcha = (action, callback) => {\n asyncLoadScript(`https://www.google.com/recaptcha/enterprise.js?render=${ window.config.recaptchaKey }`, window.grecaptcha).then(() => {\n window.grecaptcha.enterprise.ready(() => {\n window.grecaptcha.enterprise.execute(window.config.recaptchaKey, { action })\n .then(token => callback(token));\n });\n });\n};\n\nconst ckoGetDeviceSessionIdApi = ({ publicKey, riskJsUrl }) => new Promise((resolve, reject) => {\n asyncLoadScript(riskJsUrl, window.Risk).then(() => {\n const risk = window.Risk.init(publicKey);\n risk.publishRiskData()\n .then((deviceSessionId) => resolve(deviceSessionId))\n .catch(error => reject(error));\n }).catch(error => reject(error));\n});\n\nexport const withCkoGetDeviceSessionIdApi = ({ callback, params }) => {\n const { paymentSources } = window.store.getState();\n const currentPaymentSource = paymentSources.current;\n if (currentPaymentSource.riskModel === 'riskjs') {\n const { publicKey, jsSrc } = currentPaymentSource.riskModelConfig;\n return ckoGetDeviceSessionIdApi({ publicKey, riskJsUrl: jsSrc })\n .then((deviceSessionId) => callback({ ...params, deviceSessionId }))\n .catch(() => {\n const error = { error: 'ckoGetDeviceSessionIdApi error' };\n return Promise.reject(error);\n });\n }\n return callback(params);\n};\n\nexport const getAppTheme = () => toCamelCase(queryString.parse(window.location.search)).theme;\n\nexport const getTextColorForTheme = () => {\n const theme = getAppTheme();\n if (theme === appThemes.dark) return '#EEEEEE';\n return '#121212';\n};\n\nconst match = ({ pathname, path }) => matchPath({ path: `${ pathname }`, caseSensitive: true, end: true }, `${ path }`);\n\nexport const matchPaths = ({ pathname, path }) => {\n let m;\n if (Array.isArray(pathname)) {\n pathname.find((p) => {\n m = match({ pathname: p, path });\n return m;\n });\n } else {\n m = match({ pathname, path });\n }\n return m;\n};\n\nexport const isPaygAndNotEligibleToPayAsYouGo = ({ isPayg, eligibleToPayAsYouGo }) => isPayg && eligibleToPayAsYouGo !== undefined && !eligibleToPayAsYouGo;\n\nexport const removeEmptyValueInObject = (object) => {\n let clearedObject = {};\n Object.keys(object).forEach((key) => {\n if (object[key] !== null && object[key] !== undefined) {\n clearedObject = { ...clearedObject, [key]: object[key] };\n }\n });\n return clearedObject;\n};\n\nexport const isVersionHigher = (version) => {\n const search = (queryString.parse(window.location.search) || {});\n const mobileVersion = search?.app_version;\n if (!mobileVersion) return false;\n\n return semver.gte(mobileVersion, version);\n};\n\nexport const updatedPurchaseURL = ({ purchaseURL, extraParams }) => {\n if (extraParams) {\n const purchaseURLSearch = purchaseURL.slice(purchaseURL.indexOf('?'));\n const purchaseURLPathName = purchaseURL.slice(0, purchaseURL.indexOf('?'));\n const parsedPurchaseURLSearch = queryString.parse(purchaseURLSearch);\n const parsedExtraParams = queryString.parse(extraParams);\n const updatedUrlSearch = queryString.stringify({\n ...parsedPurchaseURLSearch, ...parsedExtraParams\n });\n const updatedUrl = `${ purchaseURLPathName }?${ updatedUrlSearch }`;\n return updatedUrl;\n }\n return purchaseURL;\n};\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Cookies from 'universal-cookie';\nimport { useTranslation } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport { fromMobileApp } from '../config/utils';\nimport { isPrerenderMode } from '../../app/config/util';\nimport { SvgIcon } from '../sprites';\n\nconst cookies = new Cookies();\n\nconst cookieNames = [\n 'acceptGDPRPopover', // react\n 'gdpr_popover_accept_click' // ruby\n];\n\nexport const cookieValue = (valueName) => {\n const b = document.cookie.match(`(^|;)\\\\s*${ valueName }\\\\s*=\\\\s*([^;]+)`);\n return b ? b.pop() : '';\n};\n\nconst acceptClick = () => {\n const wpccContainer = document.getElementById('wpccContainerId');\n wpccContainer.style.display = 'none';\n const date = new Date();\n date.setTime(date.getTime() + (15 * 24 * 60 * 60 * 1000));\n cookieNames.forEach(cookieName => cookies.set(cookieName, true, { path: '/', expires: date }));\n};\n\nconst shouldDisplayPopover = () => cookieNames.every(cookieName => !cookieValue(cookieName));\n\nfunction CookiesPopover({\n wpccMessageText, wpccPrivacyText, wpccPrivacyHref, wpccBtnText\n}) {\n const { t } = useTranslation();\n const [showCookiesPopover, setshowCookiesPopover] = useState(false);\n\n useEffect(() => {\n setTimeout(() => setshowCookiesPopover(true), 1000);\n }, []);\n\n const getTranslatedString = (stringKey) => t(`${ stringKey }`) || stringKey || '';\n\n const renderCoockiesPopover = () => {\n if (fromMobileApp) return null;\n if (!shouldDisplayPopover() || isPrerenderMode() || !showCookiesPopover) return null;\n return (\n <div className = { classes.wpccContainer } id=\"wpccContainerId\" suppressHydrationWarning>\n <div className={ classes.wpccContent } suppressHydrationWarning>\n <SvgIcon className={ classes.wpccIcon } id=\"cookies_icon\" suppressHydrationWarning />\n <span className={ classes.wpccMessage } suppressHydrationWarning>\n { getTranslatedString(wpccMessageText)}\n <span suppressHydrationWarning> </span>\n <a className={ classes.wpccPrivacy } href={ wpccPrivacyHref } rel=\"noopener noreferrer\" target=\"_blank\" suppressHydrationWarning>\n { getTranslatedString(wpccPrivacyText) }\n </a>\n </span>\n <div className={ classes.wpccCompliance }>\n <button className={ classes.wpccBtn } type=\"button\" onClick={ acceptClick }>\n { getTranslatedString(wpccBtnText) }\n </button>\n </div>\n </div>\n </div>\n );\n };\n\n return renderCoockiesPopover();\n}\n\nCookiesPopover.propTypes = {\n wpccMessageText: PropTypes.string.isRequired,\n wpccPrivacyText: PropTypes.string.isRequired,\n wpccPrivacyHref: PropTypes.string.isRequired,\n wpccBtnText: PropTypes.string.isRequired\n};\n\nCookiesPopover.defaultProps = {};\n\nexport default CookiesPopover;\n","// extracted by mini-css-extract-plugin\nexport default {\"alertContentContainer\":\"alertContentContainer--CIi9m\",\"errorXImgContainer\":\"errorXImgContainer--SUxps\",\"errorXImg\":\"errorXImg--pp18E\",\"textContainer\":\"textContainer--z2UW5\",\"messageContainer\":\"messageContainer--WRxN6\",\"errorStringContainer\":\"errorStringContainer--g0npW\",\"closeBtnContainer\":\"closeBtnContainer--yxi5T\",\"closeBtnImg\":\"closeBtnImg--l99ZU\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\nimport { appGeneralPopupTheme } from '../../config/const';\nimport AppGeneralPopup from '../../app_general_popup';\n\nconst errorX = require('./img/error_x.svg');\nconst closeIcon = require('./img/close_icon.svg');\n\nfunction Alert({\n errorString, message, onClose, banner\n}) {\n const renderCloseBtn = () => {\n if (onClose) {\n return (\n <div className={ classes.closeBtnContainer } onClick={ onClose } onKeyDown={ onClose }>\n <img src={ closeIcon } alt=\"\" className={ classes.closeBtnImg } />\n </div>\n );\n }\n return null;\n };\n\n const renderAlertContent = () => (\n <div className={ classes.alertContentContainer }>\n { renderCloseBtn() }\n <div className={ classes.errorXImgContainer }>\n <img src={ errorX } alt=\"\" className={ classes.errorXImg } />\n </div>\n <div className={ classes.textContainer }>\n <div className={ classes.messageContainer }>\n { message }\n </div>\n <div className={ classes.errorStringContainer }>\n { errorString }\n </div>\n </div>\n </div>\n );\n\n const renderAlert = () => {\n if (banner) return renderAlertContent();\n return (\n <AppGeneralPopup\n visible={ !!errorString && errorString !== '' }\n closable={ onClose }\n theme={ appGeneralPopupTheme.CENTERED }\n >\n { renderAlertContent() }\n </AppGeneralPopup>\n );\n };\n\n return renderAlert();\n}\n\nAlert.propTypes = {\n errorString: PropTypes.string,\n message: PropTypes.string,\n onClose: PropTypes.func,\n banner: PropTypes.bool\n};\n\nAlert.defaultProps = {\n errorString: null,\n message: 'Error',\n onClose: null,\n banner: false\n};\n\nexport default Alert;\n","import Alert from './alert';\n\nexport default Alert;\n","// extracted by mini-css-extract-plugin\nexport default {\"text\":\"text--jqiqc\",\"readMoreBtn\":\"readMoreBtn--sQaeu\",\"skeleton\":\"skeleton--_2xg9\",\"ellipsisContainer\":\"ellipsisContainer--w8UDc\",\"ellipsisText\":\"ellipsisText--sLE8v\",\"animation-bzdot9\":\"animation-bzdot9--WI1Y1\"};","/* eslint-disable object-property-newline */\nimport React, { useState, useRef, useEffect } from 'react';\nimport parse from 'html-react-parser';\nimport PropTypes from 'prop-types';\nimport Skeleton from 'react-loading-skeleton';\nimport { useTranslation } from 'react-i18next';\nimport classes from './classes.module.scss';\n\nconst getlimitedText = (readMoreKind, text, limit) => (readMoreKind === 'limitTextByChars' ? `${ text.slice(0, limit) }` : `${ text.slice(0, limit) }...`);\n\nconst limitCharactersText = ({ text, limit, readMoreKind }) => {\n if (typeof text !== 'string') {\n const textString = text.toString();\n if (textString.length > limit) return parse(getlimitedText(readMoreKind, textString, limit));\n return text;\n }\n if (text.length > limit) return getlimitedText(readMoreKind, text, limit);\n return text;\n};\n\nconst readMoreBtnText = ({ extraInfo, t, readMoreKind }) => {\n if (extraInfo) return readMoreKind === 'limitTextByChars' ? t('seo_content_area.show_less') : t('advisor_profile.less');\n return readMoreKind === 'limitTextByChars' ? t('seo_content_area.read_more') : t('advisor_profile.read_more');\n};\n\nconst getText = ({\n extraInfo, text, limit, ellipsis, children, readMoreKind\n}) => {\n if (children) return children;\n if (ellipsis) return text;\n if (extraInfo) return text;\n return limitCharactersText({ text, limit, readMoreKind });\n};\n\nconst getTextLength = (textType, text) => (textType === 'string' ? text.length : text.toString().length);\n\nconst renderReadMoreBtn = ({\n readMoreBtnClick, customClasses, extraInfo, t, ellipsis,\n isTextClamped, limit, readMoreKind, text\n}) => {\n if (ellipsis && !readMoreKind) return null;\n if (!isTextClamped && readMoreKind !== 'limitTextByChars') return null;\n const textType = typeof text;\n if (readMoreKind === 'limitTextByChars' && getTextLength(textType, text) <= limit) return null;\n return <button type=\"button\" onClick={ readMoreBtnClick } className={ customClasses.readMoreBtn }>{ readMoreBtnText({ extraInfo, t, readMoreKind }) }</button>;\n};\n\nconst getEllipsisTextStyle = ({ extraInfo, limit, readMoreKind }) => {\n if (extraInfo && readMoreKind !== 'limitTextByChars') return { WebkitLineClamp: 'initial' };\n if (extraInfo && readMoreKind === 'limitTextByChars') return { display: 'inline' };\n if (readMoreKind === 'limitTextByChars') return { display: 'inline' };\n return { '--rows': limit };\n};\n\nfunction ExpandedText({\n text, customClasses, skeleton, loading, limit, itemProp, ellipsis, children, className,\n textStyle, readMoreClick, readMoreKind, ellipsisTextStyle\n}) {\n const { t } = useTranslation();\n const [extraInfo, setExtraInfo] = useState(false);\n const [isTextClamped, setIsTextClamped] = useState(null);\n const ellipsisTextRef = useRef();\n\n useEffect(() => {\n if (readMoreKind && ellipsisTextRef.current) {\n const elm = ellipsisTextRef.current;\n setIsTextClamped(elm.scrollHeight > elm.clientHeight);\n }\n }, [ellipsisTextRef, loading]);\n\n const readMoreBtnClick = (e) => {\n if (readMoreClick) readMoreClick(e);\n setExtraInfo(!extraInfo);\n };\n\n const renderExpandedText = () => {\n if (loading) return skeleton;\n return (\n <div className={ className }>\n <div\n className={ classes.ellipsisText }\n itemProp={ itemProp }\n style={\n { ...getEllipsisTextStyle({ extraInfo, limit, readMoreKind }), ...ellipsisTextStyle }\n }\n ref={ ellipsisTextRef }\n suppressHydrationWarning\n >\n <span className={ customClasses.text } style={ { ...textStyle, whiteSpace: 'pre-wrap' } } suppressHydrationWarning>\n {getText({\n extraInfo, text, limit, ellipsis, children, readMoreKind\n })}\n </span>\n </div>\n { renderReadMoreBtn({\n readMoreBtnClick, customClasses, extraInfo, t, ellipsis, isTextClamped,\n limit, readMoreKind, text\n }) }\n </div>\n\n );\n };\n\n return renderExpandedText();\n}\n\nExpandedText.propTypes = {\n text: PropTypes.string,\n customClasses: PropTypes.object,\n skeleton: PropTypes.node,\n loading: PropTypes.bool,\n limit: PropTypes.number,\n t: PropTypes.func,\n itemProp: PropTypes.string,\n ellipsis: PropTypes.bool,\n children: PropTypes.node,\n className: PropTypes.string,\n textStyle: PropTypes.object,\n readMoreKind: PropTypes.oneOf(['limitTextByRows', 'limitTextByChars']),\n readMoreClick: PropTypes.func,\n ellipsisTextStyle: PropTypes.object\n};\n\nExpandedText.defaultProps = {\n text: null,\n customClasses: { text: classes.text, readMoreBtn: classes.readMoreBtn },\n skeleton: <Skeleton className={ classes.ctaSkeleton } />,\n loading: null,\n limit: 1,\n itemProp: null,\n ellipsis: null,\n children: null,\n className: null,\n textStyle: null,\n readMoreKind: null,\n readMoreClick: () => {},\n t: null,\n ellipsisTextStyle: null\n};\n\nexport default ExpandedText;\n","import ExpandedText from './expanded_text';\n\nexport default (ExpandedText);\n","// extracted by mini-css-extract-plugin\nexport default {\"switch\":\"switch--wcGdC\",\"slider\":\"slider--__iFh\"};","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classes from './classes.module.scss';\n\nfunction Switch({\n id, checked, onChange, offColor, onColor, offSliderImg, onSliderImg, offSliderColor,\n onSliderColor, width, height, handleDiameter\n}) {\n const onCheckBoxChange = (e) => {\n onChange(e.target.checked);\n };\n\n const renderSwitch = () => (\n <label id={ id } htmlFor={ `checkbox${ id }` } className={ classes.switch } style={ { '--width': `${ width }px`, '--height': `${ height }px` } }>\n <input id={ `checkbox${ id }` } type=\"checkbox\" checked={ checked } onChange={ onCheckBoxChange } />\n <span\n className={ classes.slider }\n style={ {\n '--offColor': offColor,\n '--onColor': onColor,\n '--offSliderColor': offSliderColor,\n '--onSliderColor': onSliderColor,\n '--offSliderImg': `url(${ offSliderImg })`,\n '--onSliderImg': `url(${ onSliderImg })`,\n '--handleDiameter': `${ handleDiameter }px`\n } }\n />\n </label>\n );\n\n return renderSwitch();\n}\n\nSwitch.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n checked: PropTypes.bool,\n onChange: PropTypes.func,\n offColor: PropTypes.string,\n onColor: PropTypes.string,\n offSliderImg: PropTypes.string,\n onSliderImg: PropTypes.string,\n offSliderColor: PropTypes.string,\n onSliderColor: PropTypes.string,\n width: PropTypes.number,\n height: PropTypes.number,\n handleDiameter: PropTypes.number\n};\n\nSwitch.defaultProps = {\n className: null,\n checked: null,\n onChange: null,\n offColor: '#ccc',\n onColor: 'var(--app-color)',\n offSliderImg: '',\n onSliderImg: '',\n offSliderColor: '#FFFFFF',\n onSliderColor: '#FFFFFF',\n width: 44,\n height: 22,\n handleDiameter: 18,\n id: null\n};\n\nexport default Switch;\n","import Switch from './switch';\n\nexport default (Switch);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport Rating from '../../../advisor_avatar/rating/rating';\nimport AdvisorAvatar, { advisorThemes } from '../../../advisor_avatar';\nimport AdvisorModes from '../../../home_page/nested_views/advisor_modes';\nimport { isXfmProgram } from '../../../../config/util';\nimport AppLink from '../../../routes/app_link';\nimport ReadingSinceAndCountItem, { readingSinceAndCountItemThemes } from '../readingSinceAndCountItem';\nimport ExpandedText from '../../../../../common/helpers/expanded_text';\nimport { AdvisorModesThemes } from '../../../../config/const';\nimport { renderFreeMinutesLabel, skeletonOrItem } from '../../../home_page/nested_views/nested_views_utils';\n\nexport interface AdvisorRecommendPreviewProps {\n loading:boolean,\n advisor: Advisor.SingleItem,\n analytics: Analytic.Source,\n userXfmProgram: Advisor.UserXfmProgramProps,\n onAnalyticsClick: () => void\n}\n\nconst getadvisorSlug = (advisorSlug: string) => {\n if (advisorSlug !== undefined) return advisorSlug;\n return '';\n};\n\nconst renderAdvisorModes = (loading: boolean, advisor: object, text: string) => <AdvisorModes { ...advisor } loading={ loading } text={ text } theme={ AdvisorModesThemes.recommendedAdvisor } />;\n\nconst AdvisorRecommendPreview = ({\n advisor, loading, analytics, userXfmProgram, onAnalyticsClick\n}: AdvisorRecommendPreviewProps) => {\n const { t } = useTranslation();\n\n const {\n status, profilePictureUrl, id, yearJoined, readingsCount, slug, nickname, serviceTitle, xfmProgram, rating, isNewAdvisor\n } = advisor;\n\n const renderAdvisorFreeMinutes = React.useMemo(() => {\n if (!isXfmProgram({ advisorXfmProgram: xfmProgram, userXfmProgram })) return null;\n return renderFreeMinutesLabel(t);\n }, [xfmProgram?.active, userXfmProgram?.credits]);\n\n const renderAdvisorService = () => (\n <div className={ classes.advisorInfo }>\n <div className={ classes.basicInfoContainer }>\n <div className={ classes.advsiorTitleContainer }>\n <ExpandedText ellipsis customClasses={ { text: classes.advisorNickNameContainer } }>\n <span className={ classes.advisrNickName } suppressHydrationWarning>\n {skeletonOrItem({ item: nickname, skeletonWidth: 270, maxChars: null }) as React.ReactNode}\n </span>\n </ExpandedText>\n <ExpandedText ellipsis customClasses={ { text: classes.advisorServiceTitleContainer } }>\n <span className={ classes.advisorServiceTitle } suppressHydrationWarning>\n {skeletonOrItem({ item: serviceTitle, skeletonWidth: 270, maxChars: null }) as React.ReactNode}\n </span>\n </ExpandedText>\n <ReadingSinceAndCountItem\n readingsCount={ readingsCount }\n yearJoined={ yearJoined }\n theme={ readingSinceAndCountItemThemes.recommendAdvisor }\n loading={ loading }\n />\n </div>\n <div className={ classes.ratingContainer }>\n <Rating rating={ rating } isNewAdvisor={ isNewAdvisor } theme={ AdvisorModesThemes.recommendedAdvisor } />\n </div>\n </div>\n <div className={ classes.bottomSection }>\n { renderAdvisorFreeMinutes }\n {renderAdvisorModes(loading, advisor, t('home_page.from'))}\n </div>\n </div>\n );\n\n const renderAdvisorContent = () => (\n <AppLink\n to={ {\n pathname: getadvisorSlug(slug),\n state: { ...analytics, startChatClickSource: (analytics || {}).clickSource || 'busy carousel' }\n } }\n className={ classes.advisorRecommendContainer }\n key={ id }\n onClick={ onAnalyticsClick }\n >\n <div className={ classes.avatarHolder }>\n <AdvisorAvatar\n loading={ loading }\n status={ status }\n profilePictureUrl={ profilePictureUrl }\n theme={ advisorThemes.recommendedCarousel }\n />\n </div>\n { renderAdvisorService() }\n </AppLink>\n );\n\n return renderAdvisorContent();\n};\n\nAdvisorRecommendPreview.propTypes = {\n advisor: PropTypes.object,\n loading: PropTypes.bool,\n analytics: PropTypes.object,\n userXfmProgram: PropTypes.object,\n onAnalyticsClick: PropTypes.func\n};\n\nAdvisorRecommendPreview.defaultProps = {\n advisor: null,\n loading: null,\n analytics: null,\n userXfmProgram: {},\n onAnalyticsClick: null\n};\n\nexport default AdvisorRecommendPreview;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useTranslation } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport AdvisorPreview from '../../../home_page/nested_views/advisor_preview';\nimport { liveModeState } from '../../../../config/const';\nimport AdvisorSection from '../../../home_page/nested_views/advisors_section';\nimport { advisorsSectionThemes, sectionIds } from '../../../home_page/prop_types';\nimport { advisorThemes } from '../../../advisor_avatar';\nimport AdvisorSectionTitle from '../../../home_page/nested_views/advisors_section/advisor_section_title';\n\nexport interface AdvisorRecommendCarouselProps {\n loading:boolean,\n advisorId: number,\n advisors: Advisor.ListItem[],\n getSimilarOnlineAdvisors: (advisorId: number) => void,\n analytics: Analytic.Source,\n userXfmProgram: Advisor.UserXfmProgramProps,\n theme: string,\n trackBusyCarouselEvent: (eventName: string, advisors: Advisor.ListItem[]) => void\n}\n\nconst AdvisorRecommendCarousel = ({\n loading, advisors, getSimilarOnlineAdvisors, advisorId, analytics, trackBusyCarouselEvent\n}: AdvisorRecommendCarouselProps) => {\n const { t } = useTranslation();\n\n useEffect(() => {\n if (advisors?.some((adv) => (adv.status === liveModeState.offline || adv.status === liveModeState.busy))) {\n getSimilarOnlineAdvisors(advisorId);\n }\n }, [advisors]);\n\n const trackBusyCarouselClickAction = () => trackBusyCarouselEvent('busy carousel clicked', advisors);\n\n const renderAdvisorListSectionMobile = (adv: Advisor.ListItem) => (\n <AdvisorPreview\n key={ !loading ? adv.id : `emptyAdvisorSection_${ adv.id }` }\n advisor ={ adv }\n theme={ advisorThemes.recommendedCarousel }\n advisorCount={ 3 }\n loading={ adv.loading }\n analytics={ analytics || { clickSource: 'busy carousel' } }\n sectionTitleTheme={ advisorThemes.recommendedCarousel }\n onAnalyticsClick={ trackBusyCarouselClickAction }\n />\n );\n\n const renderAdvisorListSection = (props: Advisor.Section) => (\n <AdvisorSection\n id={ sectionIds.recommend_advisors }\n { ...props }\n />\n );\n\n const renderRecommendedAdvisors = () => (\n <div className={ classes.recommendedCarouselContainer }>\n <div className={ classes.recommendedCarousel }>\n { renderAdvisorListSection({\n theme: advisorsSectionThemes.recommend_advisors,\n advisors,\n loading,\n advisorAnalytics: analytics || { clickSource: 'busy carousel' },\n title: t('advisorProfile.try_these_advisors'),\n description: t('advisorProfile.explore_other_advisors'),\n onAnalyticsClick: trackBusyCarouselClickAction\n })}\n </div>\n <div className={ classes.recommendedCarouselMobile }>\n <AdvisorSectionTitle\n title={ t('advisorProfile.try_these_advisors') }\n shortDescription= { t('advisorProfile.explore_other_advisors') }\n loading={ loading }\n theme={ advisorsSectionThemes.recommend_advisors }\n />\n <div className={ classes.recommendedAdvisors }>\n { advisors.map((adv: Advisor.ListItem) => (renderAdvisorListSectionMobile(adv))) }\n </div>\n </div>\n </div>\n );\n\n return renderRecommendedAdvisors();\n};\n\nAdvisorRecommendCarousel.propTypes = {\n advisors: PropTypes.array,\n getSimilarOnlineAdvisors: PropTypes.func.isRequired,\n userXfmProgram: PropTypes.object,\n trackBusyCarouselEvent: PropTypes.func.isRequired\n};\n\nAdvisorRecommendCarousel.defaultProps = {\n advisors: [],\n userXfmProgram: {}\n};\n\nexport default AdvisorRecommendCarousel;\n","import React from 'react';\nimport Skeleton from 'react-loading-skeleton';\nimport classes from './advisor_preview/classes.module.scss';\nimport { getXfmFreeSetupMin } from '../../../config/util';\nimport { SvgIcon } from '../../../../common/sprites';\n\ninterface SkeletonOrItemProps {\n item?: string | null;\n skeletonWidth?: number | null;\n maxChars?: number | null;\n }\n\nexport const skeletonOrItem = ({ item, skeletonWidth, maxChars }: SkeletonOrItemProps) => {\n if (item) {\n return (maxChars ? item.substring(0, maxChars) : item);\n }\n return <Skeleton width={ skeletonWidth } />;\n};\n\nexport const renderFreeMinutesLabel = (t:(text:string)=>string) => (\n <div className={ classes.wrapperFreeMinutes }>\n <div className={ classes.advisorFreeMinutes }>\n <SvgIcon id=\"3fm_image\" title=\"3fm\" size={ 14 } />\n {skeletonOrItem({ item: `${ getXfmFreeSetupMin() } ${ t('free_minutes.free_min_label') }`, skeletonWidth: 100 }) as React.ReactNode}\n </div>\n </div>\n);\n","import React from 'react';\nimport { Avatar } from '@barges/react';\nimport classes from './classes.module.scss';\nimport { getTimeOnBubble } from '../../config/util';\n\ninterface ChatBubbleProps {\n id: string;\n message: string;\n isUser: boolean;\n isTyping: boolean;\n avatarSrc?: string | null;\n time: string\n}\n\nconst ChatBubble: React.FC<ChatBubbleProps> = ({\n id, message, isUser, isTyping, avatarSrc = null, time\n}) => {\n const timeOnBubble = getTimeOnBubble({ time });\n\n return (\n <div id={ id } className={ classes.chatBubbleWrapper } style={ isUser ? { alignSelf: 'flex-end' } : { alignSelf: 'flex-start' } }>\n {!isUser && (\n <div className={ classes.chatBubbleAvatarContainer }>\n <Avatar\n imgSrc={ avatarSrc }\n />\n </div>\n )}\n <div style={ !isTyping ? { paddingRight: 60 } : {} } className={ isUser ? classes.chatBubbleUser : classes.chatBubbleOther }>\n {isTyping ? (\n <div className={ classes.chatBubbleLoader }>\n <div className={ classes.chatBubbleLoaderCircle } />\n <div className={ classes.chatBubbleLoaderCircle } />\n <div className={ classes.chatBubbleLoaderCircle } />\n </div>\n ) : (\n <div className={ classes.chatBubbleMessage }>\n <div className={ classes.chatBubbleMessageText }>\n {message?.split('\\n')?.map((item, index) => (\n <div key={ index }>{item}</div>\n ))}\n </div>\n <div className={ classes.chatBubbleTime }>\n <div className={ classes.chatBubbleMessageTimeText }>{timeOnBubble}</div>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n};\nexport default ChatBubble;\n","/* eslint-disable @typescript-eslint/no-var-requires */\n/* eslint-disable import/no-dynamic-require */\nimport React from 'react';\nimport { isKA, isPS } from '../../../common/config/utils';\n\ninterface ContextRendererProps {\n componentName: string,\n params: object\n}\n\nconst ContextRenderer: React.FC<ContextRendererProps> = ({ componentName, params }) => {\n const getContextRenderer = () => {\n const componentNameToLowerCase = componentName.toLowerCase();\n let projectPrefix = 'pg';\n if (isKA()) {\n projectPrefix = 'ka';\n }\n if (isPS()) {\n projectPrefix = 'ps';\n }\n\n const ComponentModule = require(`../${ componentNameToLowerCase }/${ projectPrefix }/${ componentNameToLowerCase }.tsx`).default;\n return <ComponentModule props={ params } />;\n };\n\n return getContextRenderer();\n};\n\nexport default ContextRenderer;\n","import ContextRenderer from './context_renderer';\n\nexport default ContextRenderer;\n","/* eslint-disable react/require-default-props */\nimport React, { useEffect, useState } from 'react';\nimport { Coupon, Avatar } from '@barges/react';\nimport { useTranslation } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport { getTimeOnBubble } from '../../../config/util';\nimport { kaCouponLogo } from './img/ka_coupon_logo';\nimport { pgCouponLogo } from './img/pg_coupon_logo';\nimport { psCouponLogo } from './img/ps_coupon_logo';\nimport { isKA, isPS } from '../../../../common/config/utils';\nimport { getDiscountPercent, oneHourTimer } from '../coupon_utils';\nimport AppLink from '../../../components/routes/app_link';\n\nimport '@barges/scss/lib/coupon.css';\nimport '@barges/scss/lib/title.css';\nimport '@barges/scss/lib/icon.css';\n\nconst couponStateType = {\n pending: 'pending',\n expired: 'expired',\n reached: 'reached'\n};\n\ninterface CouponBubbleProps {\n id: string;\n message: string;\n state: string;\n discountCouponId: number;\n avatarSrc?: string | null;\n time: string,\n advisorSlug?: string,\n messageNote: string,\n expiresAt: string\n}\n\nconst CouponBubble: React.FC<CouponBubbleProps> = ({\n id, message, state, discountCouponId, avatarSrc = null, time, advisorSlug, messageNote, expiresAt\n}) => {\n const { t } = useTranslation();\n const timeOnBubble = getTimeOnBubble({ time });\n const [couponState, setCouponState] = useState<string>(state);\n\n const getLogo = () => {\n if (isKA()) return kaCouponLogo;\n if (isPS()) return psCouponLogo;\n return pgCouponLogo;\n };\n\n const couponIsActive = () => couponState === couponStateType.pending;\n\n const getBadge = () => {\n if (couponIsActive()) return null;\n\n let className = '';\n let text = '';\n\n if (couponState === couponStateType.expired) {\n className = classes.couponBubbleLabelBadgeContainerExpired;\n text = t('coupon.expired');\n }\n if (couponState === couponStateType.reached) {\n className = classes.couponBubbleLabelBadgeContainerReached;\n text = t('coupon.redeemed');\n }\n\n return (\n <div className={ className }>\n { text }\n </div>\n );\n };\n\n const timerEndAction = () => {\n setCouponState(couponStateType.expired);\n };\n\n useEffect(() => {\n if (expiresAt && couponIsActive()) {\n oneHourTimer({ expiresAt, timerEndAction });\n }\n return () => {};\n }, [expiresAt]);\n\n const renderCouponLabelContent = () => (\n <>\n {getBadge()}\n <Coupon\n couponType=\"large\"\n active = { couponIsActive() }\n discountText={ `${ getDiscountPercent({ discountCouponId }) }${ t('coupon.percent_OFF') }` }\n description={ t('coupon.your_next_live_session') }\n icon={ getLogo() }\n />\n </>\n );\n\n const renderCouponLabel = () => {\n if (couponIsActive()) {\n return (\n <AppLink\n to={ advisorSlug }\n className={ classes.couponBubbleLabelContainer }\n >\n { renderCouponLabelContent() }\n </AppLink>\n );\n }\n\n return (\n <div className={ classes.couponBubbleLabelContainer }>\n { renderCouponLabelContent() }\n </div>\n );\n };\n\n const renderCouponBubble = () => (\n <div id={ id } className={ classes.couponBubbleWrapper }>\n <div className={ classes.couponBubbleAvatarContainer }>\n <Avatar imgSrc={ avatarSrc } />\n </div>\n <div className={ classes.couponBubbleContainer }>\n <div className={ classes.couponBubbleMessage }>\n { renderCouponLabel() }\n <div className={ classes.couponBubbleMessageText }>\n {message?.split('\\n')?.map((item, index) => (\n <div key={ index }>\n {item.trim() || <br />}\n </div>\n ))}\n </div>\n <div className={ classes.couponBubbleNoteMessage }>\n { messageNote }\n </div>\n <div className={ classes.couponBubbleTime }>\n <div className={ classes.couponBubbleMessageTimeText }>{timeOnBubble}</div>\n </div>\n </div>\n </div>\n </div>\n );\n\n return renderCouponBubble();\n};\nexport default CouponBubble;\n","/* eslint-disable react/require-default-props */\nimport React, { useEffect, useState } from 'react';\nimport { Coupon } from '@barges/react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport classes from './classes.module.scss';\nimport { minSalesPriceType } from '../../../config/const';\nimport { getDiscountPercent, oneHourTimer } from '../coupon_utils';\nimport { getAdvisorSlug } from '../../helper_functions';\n\nimport '@barges/scss/lib/coupon.css';\nimport '@barges/scss/lib/title.css';\nimport '@barges/scss/lib/icon.css';\n\ninterface DiscountOfferProps {\n discountCouponId: number,\n expiresAt: string\n}\n\ninterface CouponLabelProps {\n discountOffer: DiscountOfferProps,\n userAdvisorModeMinSalesPrice?: string,\n type: 'small' | 'medium' |'large',\n advisorId: number,\n loadAdvisor: (slug: string) => void\n}\n\nconst needRenderCouponLabel = ({ discountOffer, userAdvisorModeMinSalesPrice, leftSeconds }: { discountOffer: DiscountOfferProps, userAdvisorModeMinSalesPrice: string, leftSeconds?: number }) => {\n if (!discountOffer || Object.keys(discountOffer).length === 0 || userAdvisorModeMinSalesPrice !== minSalesPriceType.couponLiveModeMinSalesPrice) return false;\n if (!leftSeconds || leftSeconds <= 0) return null;\n return true;\n};\n\nconst CouponLabel: React.FC<CouponLabelProps> = ({\n discountOffer, userAdvisorModeMinSalesPrice, type, loadAdvisor, advisorId\n}) => {\n const { t } = useTranslation();\n const [leftSeconds, setLeftSeconds] = useState<number>(0);\n\n const timerEndAction = () => {\n if (advisorId) {\n loadAdvisor(getAdvisorSlug({ advisorId }));\n }\n };\n\n useEffect(() => {\n if (discountOffer?.expiresAt) {\n oneHourTimer({ expiresAt: discountOffer?.expiresAt, timerEndAction, setLeftSeconds });\n }\n return () => {};\n }, [discountOffer?.expiresAt]);\n\n const renderLeftHours = () => {\n const leftHours = Math.ceil(leftSeconds / 60 / 60);\n\n let content = (\n <div className={ classes[`couponLabelHoursToRedeemContainer_${ type }`] }>\n <Trans\n i18nKey= \"coupon.hours_to_redeem\"\n values={ { leftHours } }\n />\n </div>\n );\n if (leftHours <= 1) {\n content = (\n <div className={ classes[`couponLabelOfferEndsIn1HoursToRedeemContainer_${ type }`] }>\n { t('coupon.offer_ends_in_1_hour') }\n </div>\n );\n }\n return content;\n };\n\n const renderCouponLabel = () => {\n if (!needRenderCouponLabel({ discountOffer, userAdvisorModeMinSalesPrice, leftSeconds })) return null;\n return (\n <div className={ classes.couponLabelContainer }>\n <div className={ classes[`couponLabelIconContainer_${ type }`] }>\n <Coupon\n couponType={ type }\n active\n discountText={ `${ getDiscountPercent({ discountCouponId: discountOffer?.discountCouponId }) }${ t('coupon.percent_OFF') }` }\n />\n </div>\n {renderLeftHours()}\n </div>\n );\n };\n\n return renderCouponLabel();\n};\nexport default CouponLabel;\n","import React from 'react';\nimport { SvgIcon } from '../../../common/sprites';\n\ninterface MarketingImageProps {\n offers: Array<{subtitle: string; title: string}>,\n}\n\nconst MarketingImage:React.FC<MarketingImageProps> = ({ offers }) => {\n const renderMarketingImage = () => {\n if (offers?.length > 1) return <SvgIcon size={ [69, 76] } id=\"marketing_img_2_items\" />;\n return <SvgIcon size={ [136, 68] } id=\"marketing_img_1_item\" />;\n };\n\n return renderMarketingImage();\n};\n\nexport default MarketingImage;\n","import React, { useEffect } from 'react';\nimport { propertiesNames } from '../../../config/const';\n\nconst colors = [\n { name: propertiesNames.appColor, value: '#6C84FF' },\n { name: propertiesNames.backgroundSecondary, value: '#F2F5FF' },\n { name: propertiesNames.liveChatChannels, value: '#7BD137' },\n { name: propertiesNames.voiceCallChannels, value: '#6C84FF' },\n { name: propertiesNames.borderPrimary, value: '#DFE2EF' },\n { name: propertiesNames.appOverlayBlackColor, value: '#00000080' },\n { name: propertiesNames.smartBannerBackground, value: 'radial-gradient(circle at 50% 50%, #A8A8FF, #6C84FF 55%, #6C84FF 72%)' },\n { name: propertiesNames.addCreditCardZenModeContainerBackgroundColor, value: '#6c84ff33' },\n { name: propertiesNames.noPaymentMethodImgWidth, value: '300px' },\n { name: propertiesNames.connectBtnMaxWidth, value: '130px' },\n { name: propertiesNames.specialitiesShadow, value: '0 14px 35px 0 rgba(237, 240, 251, 0.8)' },\n { name: propertiesNames.advisprSpecialitiesMobileDirection, value: 'column' },\n { name: propertiesNames.minPriceTextDisplay, value: 'none' },\n { name: propertiesNames.durationItemPriceContainerBackgroundColor, value: '#FFFFFF' },\n { name: propertiesNames.recommendedAdvisorPriceFlexDirection, value: 'column' },\n { name: propertiesNames.recommendedAdvisorPriceAlign, value: 'flex-start' },\n { name: propertiesNames.piceTextContainerMarginLeft, value: '0px' },\n { name: propertiesNames.durationItemPriceContainerBorderRadius, value: '8px' },\n { name: propertiesNames.durationItemSelectedPriceContainerBackgroundColor, value: '#FFFFFF' },\n { name: propertiesNames.durationOptionXfmLabelColor, value: '#7BD137' },\n { name: propertiesNames.advisorPreviewXfmLabelBackground, value: '#7FD14A' },\n { name: propertiesNames.advisorPreviewXfmLabelBorderRadius, value: '8px' },\n { name: propertiesNames.advisorBusyColor, value: '#FF5A5A' },\n\n { name: '--mbw-general-light', value: '#FFFFFF' },\n { name: '--mbw-general-dark', value: '#000000' },\n { name: '--mbw-background-primary', value: '#FFFFFF' },\n // { name: '--mbw-background-secondary', value: '#F2F5FF' } is approved by Gleb for KA in all places\n { name: '--mbw-background-secondary', value: '#F2F5FF' },\n { name: '--mbw-background-tertiary', value: '#F7F7F7' },\n { name: '--mbw-background-overlay', value: '#FFFFFF80' },\n { name: '--mbw-text-primary', value: '#121212' },\n { name: '--mbw-text-secondary', value: '#636570' },\n { name: '--mbw-text-tertiary', value: '#FFFFFF' },\n { name: '--mbw-default-border', value: '#E1E1E1' },\n { name: '--mbw-default-shadow-color', value: '#F7F7F7' },\n { name: '--mbw-icon-primary', value: '#121212' },\n { name: '--mbw-icon-secondary', value: '#7C7F89' },\n { name: '--mbw-icon-tertiary', value: '#FFFFFF' },\n { name: '--mbw-button-border-radius', value: '0.625rem' },\n { name: '--mbw-button-primary', value: '#6C84FF' },\n { name: '--mbw-button-primary-hover', value: '#8296FF' },\n { name: '--mbw-button-primary-dissabled', value: '#D3D3D3' },\n { name: '--mbw-button-secondary', value: '#121212' },\n { name: '--mbw-button-secondary-hover', value: '#6C84FF' },\n { name: '--mbw-button-secondary-disabled', value: '#636570' },\n { name: '--mbw-chat-color', value: '#7BD137' },\n { name: '--mbw-voice-color', value: '#6C84FF' },\n { name: '--mbw-video-color', value: '#1CB4FF' },\n { name: '--mbw-error-color', value: '#FF5A5A' },\n { name: '--mbw-warning-color', value: '#FF993C' },\n { name: '--mbw-info-color', value: '#6C84FF' },\n { name: '--mbw-success-color', value: '#7BD137' },\n { name: '--mbw-muted-color', value: '#ADB1B6' },\n { name: '--mbw-branding-primary', value: '#6C84FF' },\n { name: '--mbw-branding-secondary', value: '#7BD137' },\n { name: '--mbw-red-accent-color', value: '#FF5A5A' },\n { name: '--mbw-orange-accent-color', value: '#FF8717' },\n { name: '--mbw-yellow-accent-color', value: '#FFB222' },\n { name: '--mbw-green-accent-color', value: '#62DD13' },\n { name: '--mbw-sky-blue-accent-color', value: '#1CB4FF' },\n { name: '--mbw-blue-accent-color', value: '#4F60FF' },\n { name: '--mbw-purple-accent-color', value: '#8755F4' },\n { name: '--mbw-possitive-accent-color', value: '#62DD13' },\n { name: '--mbw-negative-accent-color', value: '#6C84FF' },\n { name: '--wbw-marketing-banner-first-color', value: '#6D84FF' },\n { name: '--mbw-marketing-banner-second-color', value: '#B6D69D' },\n { name: '--mbw-marketing-banner-rotation', value: '93deg' },\n { name: '--mbw-duration-item-selected-fg-color', value: '#6C84FF' },\n { name: '--mbw-duration-item-selected-bg-color', value: '#F2F5FF' },\n { name: '--mbw-select-duration-arrows-color', value: '#121212' },\n { name: '--mbw-duration-item-price-bg-color', value: '#6C84FF' },\n { name: '--mbw-duration-item-price-fg-color', value: '#FFFFFF' },\n { name: '--mbw-duration-item-selected-price-fg-color', value: '#FFFFFF' },\n // speciality\n { name:'--mbw-speciality-button-padding', value: '1.3125rem 0 1rem 0' },\n { name:'--mbw-speciality-button-mobile-padding', value: '1.3125rem 0 1rem 0' },\n { name:'--mbw-speciality-button-icon-width', value: '4rem' },\n { name:'--mbw-speciality-button-mobile-icon-width', value: '2.25rem' },\n { name:'--mbw-speciality-button-tablet-icon-width', value: '2.25rem' },\n { name:'--mbw-speciality-button-laptop-icon-width', value: '4rem' },\n { name:'--mbw-speciality-button-icon-height', value: '4rem' },\n { name:'--mbw-speciality-button-mobile-icon-height', value: '2.25rem' },\n { name:'--mbw-speciality-button-tablet-icon-height', value: '2.25rem' },\n { name:'--mbw-speciality-button-laptop-icon-height', value: '4rem' },\n { name: '--mbw-speciality-button-border-radius', value: '0px' },\n { name: '--mbw-speciality-button-mobile-border-radius', value: '0px' },\n { name: '--mbw-speciality-button-border-right', value: 'none' },\n { name: '--mbw-speciality-button-icon-margin-bottom', value: '0.625rem' },\n { name: '--mbw-speciality-button-icon-mobile-margin-bottom', value:'0.625rem' },\n { name: '--mbw-speciality-button-hover-transform', value: 'none' },\n { name:'--mbw-speciality-advisor-profile-icon-width', value: '2.5rem' },\n { name:'--mbw-speciality-advisor-profile-mobile-icon-height', value: '2.5rem' },\n { name:'--mbw-speciality-advisor-profile-icon-height', value: '2.5rem' },\n { name:'--mbw-speciality-advisor-profile-mobile-icon-width', value: '2.5rem' },\n { name:'--mbw-speciality-advisor-profile-direction', value: 'row' },\n { name: '--mbw-speciality-advisor-profile-title-width', value: 'max-content' },\n { name: '--mbw-speciality-advisor-profile-icon-margin-bottom', value: '0' },\n { name: '--mbw-speciality-advisor-profile-icon-margin-right', value: '0.313rem' },\n { name: '--mbw-speciality-advisor-profile-border', value: '1px solid #DFE2EF' },\n { name: '--mbw-speciality-advisor-profile-border-radius', value: '8px' },\n { name: '--mbw-speciality-advisor-profile-mobile-border-radius', value: '8px' },\n { name: '--mbw-speciality-advisor-profile-paddings', value: '0.4rem 0.8rem' },\n\n { name: '--app-blue-snap-input-border-radius', value: '6px' },\n { name: '--app-blue-snap-input-border-color', value: 'var(--app-border-primary-color)' },\n { name: '--app-blue-snap-placeholder-text-color', value: 'var(--app-text-secondary)' },\n { name: '--app-blue-snap-input-border-focus-color', value: 'var(--app-color)' },\n { name: '--app-blue-snap-input-error-color', value: 'var(--app-error-red)' },\n\n { name: '--coupon-bg-color-large-active', value: 'linear-gradient(92.85deg, #6D84FF 26.78%, #B6D69D 89.34%)' },\n\n { name: '--mbw-duration-item-row-gap-lg', value: '0rem' },\n\n { name: '--app-default-btn-lg-border-radius', value: '0.5rem' },\n { name: '--app-default-btn-md-border-radius', value: '0.375rem' },\n { name: '--app-default-btn-sm-border-radius', value: '0.25rem' },\n { name: '--app-default-btn-xs-border-radius', value: '0.125rem' },\n { name: '--app-online-indicator-color', value: '#73C940' },\n { name: '--app-busy-indicator-color', value: '#FF5050' },\n { name: '--app-offline-indicator-color', value: '#BBBBBB' },\n { name: '--app-badge-border-radius', value: '0.375rem' },\n { name: '--app-payment-sources-border-radius', value: '0.938rem' },\n\n { name: '--app-busy-label-color', value: '#FD4848' },\n { name: '--app-positive-feedback-btn-color', value: '#58be00' },\n { name: '--app-negative-feedback-btn-color', value: '#ff5050' },\n { name: '--app-new-advisor-badge-color', value: '#7FD14A' },\n { name: '--app-filter-switcher-color', value: '#7FD14A' },\n { name: '--app-personal-section-border-color', value: '#73C940' },\n { name: '--app-sale-price-text-color', value: '#62C124' },\n { name: '--app-rating-bg-color', value: '#FFECBC' },\n { name: '--app-rating-on-img-bg-color', value: '#FFECBC' },\n { name: '--mbw-font-family', value: '\"Inter\"' }\n];\n\nconst MBWColors = () => {\n useEffect(() => {\n colors.forEach((prop) => document.documentElement.style.setProperty(prop.name, prop.value));\n }, []);\n return (<div />);\n};\nexport default MBWColors;\n","import React, { useEffect } from 'react';\nimport { propertiesNames } from '../../../config/const';\n\nconst colors = [\n { name: propertiesNames.appColor, value: '#8F63EC' },\n { name: propertiesNames.backgroundSecondary, value: '#F7F7F7' },\n { name: propertiesNames.liveChatChannels, value: '#7BD137' },\n { name: propertiesNames.voiceCallChannels, value: '#8F63EC' },\n { name: propertiesNames.borderPrimary, value: '#EAEAEA' },\n { name: propertiesNames.appOverlayBlackColor, value: '#272727e6' },\n { name: propertiesNames.smartBannerBackground, value: 'radial-gradient(circle at 50% 50%, #9a6bff, #9a6bff 29%, #622bd8 72%)' },\n { name: propertiesNames.addCreditCardZenModeContainerBackgroundColor, value: '#E9DDED' },\n { name: propertiesNames.noPaymentMethodImgWidth, value: '185px' },\n { name: propertiesNames.connectBtnMaxWidth, value: '200px' },\n { name: propertiesNames.specialitiesShadow, value: 'none' },\n { name: propertiesNames.advisprSpecialitiesMobileDirection, value: 'row' },\n { name: propertiesNames.minPriceTextDisplay, value: 'unset' },\n { name: propertiesNames.durationItemPriceContainerBackgroundColor, value: '#F7F7F7' },\n { name: propertiesNames.recommendedAdvisorPriceFlexDirection, value: 'row' },\n { name: propertiesNames.recommendedAdvisorPriceAlign, value: 'center' },\n { name: propertiesNames.piceTextContainerMarginLeft, value: '13px' },\n { name: propertiesNames.durationItemPriceContainerBorderRadius, value: '8px' },\n { name: propertiesNames.durationItemSelectedPriceContainerBackgroundColor, value: '#FFFFFF' },\n { name: propertiesNames.durationOptionXfmLabelColor, value: '#7BD137' },\n { name: propertiesNames.advisorPreviewXfmLabelBackground, value: '#7FD14A' },\n { name: propertiesNames.advisorPreviewXfmLabelBorderRadius, value: '8px' },\n { name: propertiesNames.advisorBusyColor, value: '#FF5A5A' },\n\n { name: '--mbw-general-light', value: '#FFFFFF' },\n { name: '--mbw-general-dark', value: '#27292F' },\n { name: '--mbw-background-primary', value: '#FFFFFF' },\n { name: '--mbw-background-secondary', value: '#F7F7F7' },\n { name: '--mbw-text-primary', value: '#121212' },\n { name: '--mbw-text-secondary', value: '#636570' },\n { name: '--mbw-text-tertiary', value: '#FFFFFF' },\n { name: '--mbw-default-border', value: '#EAEAEA' },\n { name: '--mbw-default-shadow-color', value: '#F7F7F7' },\n { name: '--mbw-icon-primary', value: '#121212' },\n { name: '--mbw-icon-secondary', value: '#7C7F89' },\n { name: '--mbw-icon-tertiary', value: '#FFFFFF' },\n { name: '--mbw-button-border-radius', value: '0.625rem' },\n { name: '--mbw-button-primary', value: '#8755F4' },\n { name: '--mbw-button-primary-hover', value: '#A479FF' },\n { name: '--mbw-button-primary-dissabled', value: '#C3C5CA' },\n { name: '--mbw-button-secondary', value: '#121212' },\n { name: '--mbw-button-secondary-hover', value: '#8F63EC' },\n { name: '--mbw-button-secondary-disabled', value: '#c3c5ca' },\n { name: '--mbw-chat-color', value: '#62DD13' },\n { name: '--mbw-voice-color', value: '#8755F4' },\n { name: '--mbw-video-color', value: '#1CB4FF' },\n { name: '--mbw-error-color', value: '#FF5A5A' },\n { name: '--mbw-warning-color', value: '#FF8717' },\n { name: '--mbw-info-color', value: '#8755F4' },\n { name: '--mbw-success-color', value: '#7BD137' },\n { name: '--mbw-muted-color', value: '#9C9C9C' },\n { name: '--mbw-branding-primary', value: '#8755F4' },\n { name: '--mbw-branding-secondary', value: '#FF8717' },\n { name: '--mbw-red-accent-color', value: '#FF5A5A' },\n { name: '--mbw-orange-accent-color', value: '#FF8717' },\n { name: '--mbw-yellow-accent-color', value: '#FFB222' },\n { name: '--mbw-green-accent-color', value: '#62DD13' },\n { name: '--mbw-sky-blue-accent-color', value: '#1CB4FF' },\n { name: '--mbw-blue-accent-color', value: '#4F60FF' },\n { name: '--mbw-purple-accent-color', value: '#8755F4' },\n { name: '--mbw-possitive-accent-color', value: '#62DD13' },\n { name: '--mbw-negative-accent-color', value: '#FF5A5A' },\n { name: '--wbw-marketing-banner-first-color', value: '#B38FFF' },\n { name: '--mbw-marketing-banner-second-color', value: '#8957f5' },\n { name: '--mbw-marketing-banner-rotation', value: '93deg' },\n { name: '--mbw-duration-item-selected-fg-color', value: '#8F63EC' },\n { name: '--mbw-duration-item-selected-bg-color', value: '#8755f41a' },\n { name: '--mbw-select-duration-arrows-color', value: '#8F63EC' },\n { name: '--mbw-duration-item-price-bg-color', value: '#FFFFFF' },\n { name: '--mbw-duration-item-price-fg-color', value: '#121212' },\n { name: '--mbw-duration-item-selected-price-fg-color', value: '#8F63EC' },\n\n { name: '--app-blue-snap-input-border-radius', value: '6px' },\n { name: '--app-blue-snap-input-border-color', value: 'var(--app-border-primary-color)' },\n { name: '--app-blue-snap-placeholder-text-color', value: 'var(--app-text-secondary)' },\n { name: '--app-blue-snap-input-border-focus-color', value: 'var(--app-color)' },\n { name: '--app-blue-snap-input-error-color', value: 'var(--app-error-red)' },\n\n { name: '--coupon-bg-color-large-active', value: 'linear-gradient(90deg, #8755f4 -3.11%, #fc8d3c 100%)' },\n { name: '--mbw-duration-item-row-gap-lg', value: '0rem' },\n\n { name: '--app-default-btn-lg-border-radius', value: '0.5rem' },\n { name: '--app-default-btn-md-border-radius', value: '0.375rem' },\n { name: '--app-default-btn-sm-border-radius', value: '0.25rem' },\n { name: '--app-default-btn-xs-border-radius', value: '0.125rem' },\n { name: '--app-online-indicator-color', value: '#73C940' },\n { name: '--app-busy-indicator-color', value: '#FF5050' },\n { name: '--app-offline-indicator-color', value: '#BBBBBB' },\n { name: '--app-badge-border-radius', value: '0.375rem' },\n { name: '--app-payment-sources-border-radius', value: '0.938rem' },\n { name: '--app-busy-label-color', value: '#FD4848' },\n { name: '--app-positive-feedback-btn-color', value: '#58be00' },\n { name: '--app-negative-feedback-btn-color', value: '#ff5050' },\n { name: '--app-new-advisor-badge-color', value: '#7FD14A' },\n { name: '--app-filter-switcher-color', value: '#7FD14A' },\n { name: '--app-personal-section-border-color', value: '#73C940' },\n { name: '--app-sale-price-text-color', value: '#62C124' },\n { name: '--app-rating-bg-color', value: '#FFECBC' },\n { name: '--app-rating-on-img-bg-color', value: '#FFECBC' },\n { name: '--mbw-font-family', value: '\"Poppins\"' }\n];\n\nconst MBWColors = () => {\n useEffect(() => {\n colors.forEach((prop) => document.documentElement.style.setProperty(prop.name, prop.value));\n }, []);\n return (<div />);\n};\nexport default MBWColors;\n","import React, { useEffect } from 'react';\nimport { propertiesNames } from '../../../config/const';\n\nconst colors = [\n { name: propertiesNames.appColor, value: '#B45092' },\n { name: propertiesNames.backgroundSecondary, value: '#F7F7F7' },\n { name: propertiesNames.liveChatChannels, value: '#2BA4FA' },\n { name: propertiesNames.voiceCallChannels, value: '#B45092' },\n { name: propertiesNames.borderPrimary, value: '#E1E1E1' },\n { name: propertiesNames.appOverlayBlackColor, value: '#000000cc' },\n\n { name: propertiesNames.smartBannerBackground, value: 'radial-gradient(circle at 50% 50%, #9a6bff, #9a6bff 29%, #622bd8 72%)' },\n { name: propertiesNames.noPaymentMethodImgWidth, value: '185px' },\n { name: propertiesNames.connectBtnMaxWidth, value: '200px' },\n { name: propertiesNames.specialitiesShadow, value: 'none' },\n { name: propertiesNames.advisprSpecialitiesMobileDirection, value: 'row' },\n { name: propertiesNames.durationOptionXfmLabelColor, value: '#2BA4FA' },\n { name: propertiesNames.durationItemPriceContainerBackgroundColor, value: '#FFFFFF' },\n { name: propertiesNames.durationItemPriceContainerBorderRadius, value: '50px' },\n { name: propertiesNames.durationItemSelectedPriceContainerBackgroundColor, value: '#F7F7F7' },\n { name: propertiesNames.advisorPreviewXfmLabelBackground, value: 'linear-gradient(94deg, #2BA4FA 0%, #FF82D4 100%)' },\n { name: propertiesNames.advisorPreviewXfmLabelBorderRadius, value: '6px' },\n { name: propertiesNames.advisorBusyColor, value: '#FA4EC0' },\n\n { name: '--mbw-branding-primary', value: '#B45092' },\n { name: '--mbw-branding-secondary', value: '#2BA4FA' },\n { name: '--mbw-background-primary', value: '#FFFFFF' },\n { name: '--mbw-background-secondary', value: '#F7F7F7' },\n { name: '--mbw-background-tertiary', value: '#D0D0D0' },\n { name: '--mbw-background-overlay', value: '#000000cc' },\n { name: '--mbw-text-primary', value: '#121212' },\n { name: '--mbw-text-secondary', value: '#707070' },\n { name: '--mbw-text-tertiary', value: '#FFFFFF' },\n { name: '--mbw-default-border', value: '#E1E1E1' },\n { name: '--mbw-icon-primary', value: '#121212' },\n { name: '--mbw-icon-secondary', value: '#9C9C9C' },\n { name: '--mbw-icon-tertiary', value: '#FFFFFF' },\n { name: '--mbw-button-border-radius', value: '3.125rem' },\n { name: '--mbw-button-primary', value: '#B45092' },\n { name: '--mbw-button-primary-hover', value: '#BE579B' },\n { name: '--mbw-button-primary-dissabled', value: '#C3C5CA' },\n { name: '--mbw-button-secondary', value: '#121212' },\n { name: '--mbw-button-secondary-hover', value: '#BE579B' },\n { name: '--mbw-button-secondary-disabled', value: '#C3C5CA' },\n { name: '--mbw-chat-color', value: '#2BA4FA' },\n { name: '--mbw-voice-color', value: '#B45092' },\n { name: '--mbw-error-color', value: '#FA4EC0' },\n { name: '--mbw-warning-color', value: '#FFA72C' },\n { name: '--mbw-info-color', value: '#2BA4FA' },\n { name: '--mbw-success-color', value: '#4BCB78' },\n { name: '--mbw-muted-color', value: '#9C9C9C' },\n { name: '--mbw-general-light', value: '#FFFFFF' },\n { name: '--mbw-general-dark', value: '#27292F' },\n { name: '--mbw-default-shadow-color', value: '#F7F7F7' },\n { name: '--mbw-red-accent-color', value: '#FA4EC0' },\n { name: '--mbw-orange-accent-color', value: '#FF8717' },\n { name: '--mbw-yellow-accent-color', value: '#FFA850' },\n { name: '--mbw-green-accent-color', value: '#4BCB78' },\n { name: '--mbw-sky-blue-accent-color', value: '#1CB4FF' },\n { name: '--mbw-blue-accent-color', value: '#4F60FF' },\n { name: '--mbw-purple-accent-color', value: '#8F49D3' },\n { name: '--mbw-possitive-accent-color', value: '#4BCB78' },\n { name: '--mbw-negative-accent-color', value: '#FA4EC0' },\n\n { name: '--wbw-marketing-banner-first-color', value: '#2BA4FA' },\n { name: '--mbw-marketing-banner-second-color', value: '#FF82D4' },\n { name: '--mbw-marketing-banner-rotation', value: '93deg' },\n\n { name:'--mbw-speciality-button-padding', value: '0.313rem 0.313rem 1rem 0.313rem' },\n { name:'--mbw-speciality-button-mobile-padding', value: '0.313rem 0.313rem 1rem 0.313rem' },\n { name: '--mbw-duration-item-selected-fg-color', value: '#B45092' },\n { name: '--mbw-duration-item-selected-bg-color', value: '#FFFFFF' },\n { name: '--mbw-select-duration-arrows-color', value: '#B45092' },\n { name: '--mbw-duration-item-price-bg-color', value: '#F7F7F7' },\n { name: '--mbw-duration-item-price-fg-color', value: '#121212' },\n { name: '--mbw-duration-item-selected-price-fg-color', value: '#B45092' },\n { name: '--mbw-speciality-bg-color', value: '#F7F7F7' },\n { name: '--mbw-speciality-advisor-profile-icon-margin-bottom', value: '8px' },\n { name: '--mbw-speciality-button-icon-margin-bottom', value: '0' },\n { name: '--mbw-speciality-button-paddings', value: '1rem 0.625rem 1.125rem 0.625em' },\n { name: '--mbw-speciality-button-title-width', value: 'fit-content' },\n { name: '--mbw-speciality-advisor-profile-title-width', value: 'fit-content' },\n { name: '--mbw-speciality-advisor-profile-width', value: 'min-content' },\n { name: '--mbw-speciality-advisor-profile-mobile-icon-width', value: '5.3rem' },\n { name: '--mbw-speciality-advisor-profile-mobile-icon-height', value: '5.3rem' },\n\n { name: '--mbw-duration-item-row-gap-lg', value: '0rem' },\n { name: '--app-default-btn-lg-border-radius', value: '3.125rem' },\n { name: '--app-default-btn-md-border-radius', value: '1.563rem' },\n { name: '--app-default-btn-sm-border-radius', value: '1.563rem' },\n { name: '--app-default-btn-xs-border-radius', value: '0.7815rem' },\n { name: '--app-online-indicator-color', value: '#4BCB78' },\n { name: '--app-busy-indicator-color', value: '#FA4EC0' },\n { name: '--app-offline-indicator-color', value: '#9C9C9C' },\n { name: '--app-badge-border-radius', value: '1.563rem' },\n { name: '--app-payment-sources-border-radius', value: '0.938rem' },\n\n { name: '--app-blue-snap-input-border-color', value: 'var(--app-border-primary-color)' },\n { name: '--app-blue-snap-placeholder-text-color', value: 'var(--app-text-secondary)' },\n { name: '--app-blue-snap-input-border-focus-color', value: 'var(--app-color)' },\n { name: '--app-blue-snap-input-error-color', value: '#FA4EC0' },\n { name: '--app-blue-snap-input-border-radius', value: '6px' },\n\n { name: '--coupon-bg-color-large-active', value: 'linear-gradient(90deg, #B45092 22.1%, #2BA4FA 100%)' },\n { name: '--app-busy-label-color', value: '#FA4EC0' },\n { name: '--app-positive-feedback-btn-color', value: '#F7F7F7' },\n { name: '--app-negative-feedback-btn-color', value: '#F7F7F7' },\n { name: '--app-new-advisor-badge-color', value: '#4BCB78' },\n { name: '--app-filter-switcher-color', value: '#4BCB78' },\n { name: '--app-personal-section-border-color', value: '#4BCB78' },\n { name: '--app-sale-price-text-color', value: '#4BCB78' },\n { name: '--mbw-status-indicator-online-color', value: '#4BCB78' },\n { name: '--app-rating-bg-color', value: '#F7F7F7' },\n { name: '--app-rating-on-img-bg-color', value: '#FFFFFF' },\n { name: '--mbw-font-family', value: '\"Fira Sans\"' }\n];\n\nconst MBWColors = () => {\n useEffect(() => {\n colors.forEach((prop) => document.documentElement.style.setProperty(prop.name, prop.value));\n }, []);\n return (<div />);\n};\nexport default MBWColors;\n","/* eslint-disable @typescript-eslint/no-var-requires */\nimport React, { ReactElement } from 'react';\nimport classNames from 'classnames';\nimport classes from './classes.module.scss';\nimport { isKA } from '../../../common/config/utils';\nimport { SvgIcon } from '../../../common/sprites';\n\nconst OrderTypes = {\n 'live-chat' : 'live-chat',\n 'video-call': 'video-call',\n 'voice-call': 'voice-call'\n};\n\nconst renderOrderIcon = (type: string) => {\n switch (type) {\n case 'live-chat':\n return <SvgIcon className={ classes.orderCellIcon } id=\"live_chat\" />;\n case 'video-call':\n return <SvgIcon className={ classes.orderCellIcon } id=\"video_call\" />;\n case 'voice-call':\n return <SvgIcon className={ classes.orderCellIcon } id=\"voice_call\" />;\n default:\n return null;\n }\n};\n\nconst getCellContainerClass = (type: string) => {\n if (!isKA()) return classNames(classes.orderCellContainer, classes.borderDefault);\n switch (type) {\n case 'live-chat':\n return classNames(classes.orderCellContainer, classes.kaBorderChat);\n case 'voice-call':\n return classNames(classes.orderCellContainer, classes.kaBorderVoice);\n default:\n return null;\n }\n};\n\ninterface MyOrdersOrderCellProps {\n type: keyof typeof OrderTypes,\n orderSubject?: string,\n orderDescription?: string,\n labels?: Array<ReactElement>,\n advisorId?: string,\n activityId?: number,\n}\n\nconst MyOrdersOrderCell: React.FC<MyOrdersOrderCellProps> = ({\n type = 'live-chat',\n orderSubject,\n orderDescription = '',\n labels = []\n}) => {\n const renderLabel = () => (\n <div className={ classes.labelsHolderContainer }>\n { labels.map((label, index) => (\n <div className={ classes.orderCellLabelContainer } key={ index }>\n { label }\n </div>\n )) }\n </div>\n );\n\n const renderOrderSubject = () => (\n <div className={ classes.orderCellSubjectContainer }>\n <div className={ classes.orderSubjectName }>\n { orderSubject }\n </div>\n </div>\n );\n\n const renderOrderTitle = () => (\n <div className={ classes.orderCellTitleContainer }>\n { renderOrderIcon(type) }\n { renderOrderSubject() }\n </div>\n );\n\n const renderOrderDescription = () => (\n <div className={ classes.orderDescriptionContainer }>\n { orderDescription.length > 0 ? <SvgIcon className={ classes.orderDescriptionIcon } id=\"clock\" /> : null }\n <div className={ classes.orderDescription }>\n { orderDescription }\n </div>\n </div>\n );\n\n const renderMyOrdersAdvisorCell = () => (\n <div className={ getCellContainerClass(type) }>\n <div className={ classes.orderCellContentContainer }>\n <div className={ classes.orderTitleLabelsContainer }>\n { renderOrderTitle() }\n { renderLabel() }\n </div>\n </div>\n <div className={ classes.orderRightDataContainer }>\n <div className={ classes.orderDataContainer }>\n { renderOrderDescription() }\n </div>\n <div className={ classes.rightArrowContainer }>\n <SvgIcon id=\"right_arrow\" className={ classes.rightArrowIcon } size={ 18 } />\n </div>\n </div>\n </div>\n );\n\n return renderMyOrdersAdvisorCell();\n};\n\nexport default MyOrdersOrderCell;\n","/* eslint-disable @typescript-eslint/no-var-requires */\n/* eslint-disable import/no-dynamic-require */\nimport { FC } from 'react';\nimport {\n isKA, isPOW, isPS, getAppTheme\n} from '../config/utils';\nimport { appThemes } from '../config/const';\n\nconst getProjectPrefix = () => {\n let prefix = 'pg';\n if (isKA()) {\n prefix = 'ka';\n } else if (isPS()) {\n prefix = 'ps';\n } else if (isPOW()) {\n prefix = 'po';\n } else {\n prefix = 'pg';\n }\n return prefix;\n};\n\nexport const getSpriteUrl = () => {\n const ComponentSVG = require(`./images/${ getProjectPrefix() }/generated_sprites.svg`);\n return ComponentSVG;\n};\n\nexport const getPurchaseSpriteUrl: FC = () => {\n const theme = getAppTheme() || appThemes.light;\n const ComponentSVG = require(`./images/${ getProjectPrefix() }/generated_payments_${ theme }_sprites`);\n return ComponentSVG;\n};\n\nexport const loadSVGSprite = async (url: string, containerId: string) => {\n try {\n const response = await fetch(url);\n const svgSprite = await response.text();\n document.getElementById(containerId).innerHTML = svgSprite;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error loading SVG sprite:', error);\n }\n};\n","var map = {\n\t\"./image_renderer\": 43321,\n\t\"./image_renderer.js\": 43321,\n\t\"./ka/banner_bg\": 58433,\n\t\"./ka/banner_bg.jpg\": 58433,\n\t\"./ka/signup_complete_checkmark\": 19201,\n\t\"./ka/signup_complete_checkmark.svg\": 19201,\n\t\"./pg/banner_bg\": 38601,\n\t\"./pg/banner_bg.jpg\": 38601,\n\t\"./pg/signup_complete_checkmark\": 19295,\n\t\"./pg/signup_complete_checkmark.svg\": 19295\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 84887;","var map = {\n\t\"./chat_bubble/chat_bubble.tsx\": 25444,\n\t\"./context_renderer/context_renderer.tsx\": 53100,\n\t\"./coupon_items/coupon_bubble/coupon_bubble.tsx\": 66815,\n\t\"./coupon_items/coupon_label/coupon_label.tsx\": 48956,\n\t\"./marketing_img/marketing_image.tsx\": 11161,\n\t\"./mbw_colors/ka/mbw_colors.tsx\": 70079,\n\t\"./mbw_colors/pg/mbw_colors.tsx\": 82978,\n\t\"./mbw_colors/ps/mbw_colors.tsx\": 38773,\n\t\"./my_orders_order_cell/my_orders_order_cell.tsx\": 52007\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 91851;"],"names":["window","shared","LocalizedNavigate","_ref","pathKey","params","options","navigate","useLocalizedNavigate","useEffect","_jsx","_Fragment","propTypes","PropTypes","isRequired","defaultProps","LocalizedSwitch","dispatch","location","children","useDispatch","useLocation","getSEOData","pathname","updateNavigationStack","useNavigationStackUpdate","loading","useSelector","state","_state$homePage","homePage","routeKey","useCurrentPath","appRoutes","home","updateSmartBannerVisibility","useSmartBannerVisibility","t","useTranslation","_jsxs","Routes","SUPPORTED_LANGUAGES","flatMap","lang","React","map","child","key","route","lng","localizedRoutes","concat","DEFAULT_LANGUAGE","push","localizeRoutePaths","props","path","_objectSpread","Route","element","replace","LocalizedRouter","history","generatePath","updateLastHit","useNavigate","useLocalizedPath","_location$search","search","_getCurrentPath","getCurrentPath","Object","keys","applicationRoutes","newPath","Popover","kind","dissmissPopover","payload","_defineProperty","popoverKinds","filter","FiltersContainer","popoverView","autofocus","autoFocus","generatePopoverForKind","AppGeneralPopup","visible","customTopHeader","className","classes","type","onClick","SvgIcon","id","size","closable","connect","popover","withPGTranslation","GOOGLE_CLIENT_ID","env","GoogleLoginBtn","googleCallback","_useState2","_slicedToArray","useState","google","googleConfig","setGoogleConfig","googleLoginCallback","response","credential","listenToPopstate","windowGoogle","addEventListener","removeEventListener","accounts","initialize","client_id","callback","renderButton","document","getElementById","theme","text","width","googleButton","cookies","Cookies","PAYMENT_PROCESSING_INTERVAL_SEC","AnalyticsAndCommonLogicComponent","userId","configureMP","trackPeoplePropertiesAction","getUser","requestPermission","uploadLogs","logKey","logUrl","parseAndUploadLogs","identifyOrAliasUserOnMP","user","loadHomePage","userPaymentProcessing","getMyAccountCredits","appLoading","getAnonymousUser","userAnalytics","anonymousUser","userFirstActivePromotion","initFirebaseDatabase","signOutFromFBDatabase","loadSVGSprite","getSpriteUrl","valueName","valueString","getAppTheme","appThemes","dark","body","classList","add","darkTheme","setTimeout","cookie","split","find","row","startsWith","trackFirstVisitEventGtm","set","currentUserId","initFirebaseMessaging","hotJarInitialize","fromMobileApp","isPrerenderMode","section_ids","sectionIds","salesBanner","checkActivePromoTypeProperty","trackQueuedEvents","facebookPixelConfigured","FB","optimoveSDK","undefined","trackQueuedOptimoveEvents","hotJarIdentifyUser","interval","setInterval","clearInterval","userFirstActivePromotionState","setUserFirstActivePromotionState","shouldUpdatePageWithAdvisors","useMemo","compareObjects","promoTimer","refreshStrategy","prevState","needReloadHomePage","needReloadSearchResults","needReloadAdvisorPage","addScriptsToBody","appendChild","facebookPixelNoscript","Helmet","facebookPixelScript","src","async","defer","style","position","top","suppressHydrationWarning","dangerouslySetInnerHTML","__html","application","userEmail","email","paymentProcessing","analytics","getUserFirstActivePromotion","GeneralPopup","show","title","dissmissPopup","link","onClicked","useCallback","appLink","href","downloadAppLink","linkType","videoNotSupported","voiceNotSupported","notificationNotSupported","appLinkAFChanel","target","rel","renderLink","appGeneralPopupTheme","CENTERED","generalPopup","renderModalButtons","success","onOkClickSignUpPromoReadAction","clearShowModal","value","PromoCodeSignUp","applyCode","clearModalText","modalText","onOkClickSignUpPromoRead","codeInput","useRef","trackPageVisit","codeSent","code","length","onCodeSent","current","placeholder","ref","onKeyDown","e","defaultValue","attribution","promo","disabled","onShowModal","promoCode","FACEBOOK_ID","FACEBOOK_REDIRECT","FACEBOOK_VERSION","fbLogo","require","FacebookBtn","facebookCallback","FacebookLogin","appId","fields","xfbml","version","disableMobileRedirect","redirectUri","render","renderProps","isDisabled","isProcessing","isSdkLoaded","classnames","fbButton","fbProcessing","socialDisabled","socialImg","alt","Social","error","gdprSwitcherValueChanged","shouldShowGDPRConsent","onSocialPpTofModalCancelClick","GDPRConsernPopupThemes","social","responseFacebook","responce","log","LOG_LEVELS","INFO","accessToken","ERROR","responseGoogle","credentials","marginTop","connectTitle","sicialBtnContainer","socialLeftBtnContainer","browserName","toLowerCase","socialRightBtnContainer","GDPRConsernPopup","Input","onChange","inputType","isPasswordField","typer","Const","authScreens","signUpAffiliatePromo","input","inputError","ForgotPassword","_PureComponent","_this","_classCallCheck","_len","arguments","args","Array","_key","_callSuper","showForgotModal","onFieldChanged","setState","onForgotPasswordClicked","forgot","showForgotPasswordModal","clearForgotPassword","passwordForgotClear","handleKeyPress","emailIsValid","renderForgotModalTitle","renderForgotPassword","_this$state","_this$props","allFieldsValid","classNames","renderForgotModalContent","_inherits","_this$props2","this","PureComponent","passwordForgot","passwordForgotAPI","then","json","fJson","toCamelCase","fullMessages","passwordForgotError","clear","clearError","onLoginClick","password","checkInputErrors","onLogin","passwordIsValid","LogIn","rememberMe","changeScreen","actionButton","disableActionBtn","navigationButtonContainer","forgotPassword","navigationButton","signUp","SignUp","confirmEmail","switcherChecked","onRegister","userMatchUpBonusInfo","allFieldsAreValid","showPrivacyModal","regular","onRegisterClicked","navigateToSignIn","signIn","renderSignUpAffiliatePromoLabel","signUpAffiliatePromoLabel","affiliatePromoHeaderContainer","affiliatePromoHeaderTitle","affiliatePromoHeaderBottomText","amount","formatCurrency","requiredPurchasesAmount","extra_amount","bonus","paddingTop","signUpAffiliatePromoactionButton","confirmPpTofTextContainer","IN_EU","MATCH_UP_BONUS_INFO","Registration","authErrorActionCreator","currentScreen","onCancelClicked","_this$props3","screenStack","navigationPop","authClearPendingAction","authPendingCloseAction","redirectToPsychics","authCompleteSusses","_applicationRoutes$ro","_this$props4","displayRegister","router","currentPath","shouldDisplay","signin","register","includes","isProtected","psychics","onLoginClicked","_this$props5","logIn","signUpFlow","_this$state2","withCaptcha","token","_this$props6","_this$state3","renderSignUpPromoRead","renderGeneralError","_this$props7","hasOwnProperty","errorString","convertErrorArrayToString","Alert","onClose","screenChanged","navigateToSignUp","navigateToForgotPassword","facebookResponse","facebookToken","_this$props8","authSocial","googleResponse","googleToken","_this$props9","renderSocial","_this$props10","consentedToGDPR","inEu","signUpSwitcherChecked","onRemeberMeCheckedChanged","checked","renderRememberMe","_this$props11","rememberMeContainer","rememberMeCheckboxInput","renderContent","_this$props12","_this$state4","promoRead","renderBackButton","cancelContainer","cancelButton","cancelButtonImg","renderTopLogo","isMobile","topLogoContainerMobile","topLogoContainerBrowser","appLogo","topLogoImg","renderLogo","logoContainer","getLogo","logoImg","renderLoading","Spiner","loaderColor","appColor","getImageByEnvironment","getHeight","getBackgroundColor","prevProps","_this$props13","authComplete","authPendingAction","userShowMatchUpBonusInfo","updateCurrentScreen","creditMatchingInfo","isAffiliatePromo","hideBodyScroll","unlockBodyScroll","REGISTER","mobileContainer","browserContainer","contentHolder","zIndex","auth","getUserMatchUpBonusInfo","bonusInfos","showMatchUpBonusInfo","clearAffiliatePromoPopup","compose","Component","useParams","isMaxSubscriptionsError","operationStatus","isBecameAvailableError","NotifyMe","advisorId","progress","notifyMeAction","clearLocalState","displayNotifyMe","clickSource","_ref2","availabilityNotification","subtitle","switchedOn","notifyMeSwitchValue","setNotifyMeSwitchValue","titleText","onChangeSwitch","onCancelClick","onOkBtnClick","additionParams","context","getAdditionParamsParams","notifyMeParams","renderBtns","okBtnText","subtitleText","Switch","onColor","advisors","notifyMe","parseInt","withPGTransaltion","MessageToApp","messageToAppData","setMessageToAppData","MessageToAppHandler","messageToApp","ProtectedRoute","store","NotFound","errorCode","clearApplicationError","statusText","isAdvisorPage","matchPath","advisor","onHomePress","notFoundAction","renderServiceUnavailablePage","renderNotFound","applicationError","PushNotification","notification","loadAdvisor","needToHandle","clearPN","userbadgeCounters","modalVisible","setModalVisible","handleOrderMessageNotification","onOpen","_currentPath$params2","updatedUser","senderUserId","ntype","getMyAccountBadgesApi","advisorOrders","updatedAdvisor","liveModes","unreadMessagesCount","refreshReducersFromResponse","updateUserActivityUnreadMessagesCount","badgeCounters","unreadMessagesCountTotal","myOrders","NTYPE","ORDER_MESSAGE","handleNotification","PSYCHICS","_currentPath$params","advisorSeoName","slug","handlePsychicNotification","message","pushNotification","chat","loadOrderDetails","GeneralError","errorText","SMART_BANNER_SHOW","SMART_BANNER_DAYS_HIDDEN","SMART_BANNER_DAYS_REMINDEER","PGWEB_HIDE_SMART_BANNER_SECONDS","androidIcon","iosIcon","getIconStyles","iconStyle","iconImg","isIOS","cookieValue","SmartBanner","startDate","hasOrders","promoBannerIsOn","smartBannerVisible","trackSmartBannerEvent","userLoading","cancelClick","display","date","Date","setTime","getTime","expires","stopPropagation","bannerImgClick","sessionsCount","getDataFromStorage","secondsFromSessionBegan","toFixed","open","smartBannerRef","cancelButtonRef","smartBanner","addEventListenerForRef","showAffiliatePromoBanner","smartBannerDisplayValidation","shouldShowAffiliateBanner","smartBannerContainer","cancelBtnContainer","viewBox","height","d","smartBannerTitle","xlinkHref","numberOfChatOrders","numberOfVcOrders","numberOfVoiceCallOrders","content","AutoRedemePromoCode","autoRedemPromoCode","authHandlerSuccess","justSignedUpAuthHandlerSuccess","bonusPopup","autoRedemSetBonusPopup","queryString","parse","setCookie","cookieName","cookieOptions","needShowErrorPoppup","clearBonusPopup","description","authHandlerSuccessAction","_promoCode$autoRedem","_promoCode$autoRedem2","_promoCode$autoRedem3","_promoCode$autoRedem4","autoRedem","ChangeLanguage","ContinueCallFooter","selectCredit","hangupChat","option","hangingUp","disabledStartChatButton","selectedDuration","chatType","trackDurationPickExit","defaultDurationChanged","selectorOpenedTime","Button","time","arg","_ref$chat","voipState","voipChat","chatStates","ended","paused","voice","video","voipChatStates","endedConversation","ownProps","duration","_ownProps$option","continueVoipChat","selectedCarouselIndex","discountData","hangupVoipChat","trackVoipDurationPickExit","renderStartCallFooterBtn","btnClass","startChat","StartCallFooter","clientAvailableCredit","selectDurationKind","exitTime","price","isPayg","newUserPayg","oldUser","renderStartCallFooterContent","appInitial","initial","selectVoipCredit","shouldScrollRight","carouselRef","pricingOptions","selectedItem","shouldScrollLeft","carouselSwipeMoveAction","_ref4","carouselSwipeCurrentPosition","setCarouselSwipeCurrentPosition","carouselSetSelected","getCarouselPosition","swipeChange","changedTouches","pageX","currentPosition","delta","getDelta","listRef","setAttribute","onSwipeBackwards","carouselSwipeMoveLeftActionHandler","_ref3","onSwipeForward","carouselSwipeMoveRightActionHandler","getDurationOptionsClass","selected","index","isNewUser","carouselSelectedItem","carouselItem","renderNewUserPaygPrice","_ref7","availableSalesPrice","newUserPaygPriceContainer","newUserPaygPrice","roundCredits","newUserPaygMinText","newUserPaygSalesPrice","newUserPaygSaleCrosPrice","renderDurationItemPriceContainer","_ref8","priceWithoutDiscount","additional","advisorModePricePerMinute","saleAmount","minTextContainer","durationItemPriceContainerMinText","durationItemPriceContainerClannName","durationItemPriceContainerNewUser","durationItemPriceContainerDefault","durationItemPriceContainerPrice","durationItemPriceContainerSalesPrice","durationItemPriceContainerSaleCrosPrice","renderDurationItemDiscountLabelTitle","_ref9","discountDataKind","discountApplied","durationItemDiscountLabelTitle","maxDiscountApplied","durationItemMaxDiscountLabelImgTextContainer","durationItemMaxDiscountLabelImg","durationItemMaxDiscountLabelTitle","advisorSpecialOffer","renderDurationItemDiscountLabeSubTitle","_ref10","subTitle","durationItemDiscountLabelImgTextContainer","durationItemDiscountLabelImg","durationItemDiscountLabelText","renderDurationItemDiscountLabel","_ref11","durationItemDiscountLabelContainer","renderNewUserPaygLabelContent","_ref12","iconId","color","newUserPaygBonusLabelContainer","newUserPaygBonusLabelImg","newUserPaygBonusLabelTextContainer","newUserPaygBonusLabelText","newUserPaygBonusLabelSubText","renderAdditionalOptionText","renderMostPopularHeartInCircle","mostPopular","mostPopularHeartInCircleContainer","mostPopularHeartInCircleIcon","renderFreeMinText","freeMin","advisorXfmProgram","userXfmProgram","isXfmProgram","freeMinText","getXfmFreeSetupMin","freeMinLabelContainer","freeMinIcon","xfmLabelColor","freeMinTextContainer","renderDurationItemMinutesCount","minutesCount","renderDurationItemSecondsCount","letfSeconds","renderDurationItemMinutesText","texts","titleKey","subtitleKey","durationItemZenModePayContainer","durationItemZenModeText","convertStringToCamelCase","durationItemPayAsYouGoText","durationItemMinutesTextContainer","renderBottomContainer","newUser","DurationItemComponent","onClickAction","durationItem","DurationItem","durationText","durationSubText","priceContainer","useYourBalanceText","secondsText","bottomContainer","renderNewUserPaygBonusLabel","bonusItems","newUserPaygBonusLabelsHolder","newUserPaygBonusLabelsHolderCentered","bonusItem","_ref13","newUserPaygBonusItemKind","xfm","cardValidationBonus","renderNewUserPaygLabel","DurationSelector","isContinue","onDurationClick","selectedCarouselDefaultItem","setDefaultTransform","onSelect","userAdvisorModeSalePrice","promoPrices","carouselArrowPrevRef","carouselArrowNextRef","carouselSwipeStartAction","selectedIndex","defaultDuration","onCarouselSetSelected","carouselOnclickArrowNext","onClickNext","carouselOnclickArrowPrev","onClickPrev","carouselSwipeEndAction","getPosition","transform","onCarouselKeyPress","carouselHandleKeyPress","activeElement","blur","onCarouselSwipe","list","passive","carouselWrapper","carouselWrapperRef","focus","carouselArrowPrev","_ref5","disableArrow","carouselArrowPrevContainer","opacity","cursor","carouselArrowPrevContent","arrowImgContainer","fill","xmlns","stroke","strokeWidth","strokeLinecap","strokeLinejoin","carouselArrowPrevHandler","carouselArrowNext","_ref6","carouselArrowNextContainer","carouselArrowNextContent","carouselArrowNextHandler","renderDurationOptions","parseFloat","getAvailableSalesPrice","durationOptinsContainer","overflow","newUserDurationOptions","newUserPaygContainer","newUserPaygImgContainer","newUserPaygImg","newUserPaygTitle","newUserPaygPayAsYouGoText","Carousel","showIndicators","showThumbs","showStatus","renderArrowPrev","renderArrowNext","swipeable","centerSlidePercentage","centerMode","showArrows","onClickItem","renderDurationSelector","setDefaultSelected","setSelectedCarouselDefaultItem","setDefaultDurationChanged","newUserPaygPricingOption","payAsYouGo","continueDefaultDuration","currentTransform","renderNumber","number","renderAdditionalTime","additionalOption","minutes","remainigSeconds","renderAdditionalOption","onClickCurrentBalance","Trans","i18nKey","components","bold","values","balance","renderTitle","name","titleLabel","renderThisChargeTakesIntoAccountLabel","formater","Intl","NumberFormat","currency","format","Math","abs","renderInfoLabel","infoLabelText","renderSaveOverText","saveAmount","floor","renderSaveUpLabel","discount","parsedSaveAmount","renderZenModeLabel","renderNewUserPaygAvailableBalanceLabel","parsedClientAvailableCredit","renderDurationItemDiscountLabelForNewUser","renderClientAvailableCredit","SelectChatCredit","cancelChat","selectDurationOption","loadPricingOptions","displayAffiliatePromoPopupAction","setSelected","_useState4","_useState6","onBackButtonEvent","JSON","stringify","durationChanged","pushState","onCloseIconClick","noNeedCloseIcon","needUpdatePricingOptions","onSelectDuration","isWebView","purchaseDetailsTypes","AFFILIATE_PROMO_POPUP","descriptionKey","onSelectDurationOption","background","requestParams","getAdvisorXfmProgram","xfmProgram","getAdvisorMode","mode","chatTypeToModeName","getAdvisorModePromoPrices","getAdvisorModePricePerMinute","defaultFunctions","defaultVoipFunctions","cancelVoipChat","onContinue","selectVoipDurationOption","_getUserFirstActivePr","_getUserFirstActivePr2","advisorModeSalePrice","loadVoipPricingOptions","closeButtonAction","NotInLiveMode","getLearnMoreLink","permissionDeniedError","renderText","errors","i","voipErrors","extractErrors","Error","downloadLink","getAdvisorSlug","CantCreate","PG_CASHBACK_PERCENT","backgroundImg","renderDesktopContent","QRCode","bgColor","fgColor","normal","DownloadAppPopup","showDownloadAppPopupKind","showDownloadAppPopupLink","matchingBonus","downloadAppPopupVisible","setDownloadAppPopupVisible","popupDownloadAppLink","closeCashbackPoppup","onDownloadBtnClick","renderDownloadBtn","renderMobileContent","renderCashBackPopupContent","cashBackPopupContent","renderBonusPopupContent","bonusPopupContent","renderDownloadPoppup","popupCloseBtnStyle","purpleText","cashbackPercent","order","RateReviewAfterChat","onCancel","orderId","advisorName","profileLanguage","createdAt","like","setLike","showSmallModal","setShowSmallModal","showFullModal","setShowFullModal","onSkipClick","fullModalOnCancel","onCloseButtonAction","BOTTOM","smallModalContentContainer","RateSection","onSmallModal","onValueChanged","liked","skipTopButtonContainer","skipTopButton","RateReview","existingLike","rateReviewTheme","CHAT_ENDED","existingComment","clientSummaryScreen","orderState","alert","largeNumbers","smallNumbers","total","hangupError","needShowReviewBrowser","setNeedShowReviewBrowser","getSessionType","redirectTo","orderDetails","cancelAction","cancelRateReviewBrowser","CHAT_ENDED_RATE_REVIEW","label","overflowY","line","hint","hintHighlighted","orderIdsSame","feedback","feedbackComment","getFeedback","feedbackIsPosted","getFeedbackIsPoste","textChatReason","reason","ChatEnded","VoipAlert","pictureSrc","borderColor","kFreeTimeIc","formattedTime","slice","textLabel","classesModule","finishing","timer","callDurationNow","hours","seconds","hoursDisplay","minutesDisplay","secondsDispaly","fulltime","TimerLabel","paidDuration","blinkSetup","buyerDurationCounterDirection","showTimer","Stopwatch","secondsCount","callType","getDiscountLabelId","icon","getDiscountLabelText","renderDiscountLabel","getCallWithText","voipType","renderNameAndDiscountLabel","kMuteActive","kMuteNotActive","kHangupIc","cameraNotActive","cameraActive","micNotActive","micActive","renderReconnectLabel","reconnecting","renderDiscountLabelIfNeed","VoipControls","micEnabled","setMicEnabled","muteIcon","muteClassName","hangupCall","trackMPEvent","enableMic","enableVideo","toggleMic","toggleVideo","switcherContent","videoEnabled","setVideoEnabled","marginBottom","offColor","offSliderImg","onSliderImg","offSliderColor","onSliderColor","handleDiameter","renderVideoSwitcher","notifyDate","conversationOption","enable","setEnableMic","setEnableVideo","eventProperties","trackEvent","VoiceOverlay","profilePictureUrl","CallAnimation","getModeColor","AutoHangupTimer","noAnswerCall","automaticHangupIn","timerRef","clearTimeout","noAnswer","DisconnectSessionTimer","onTimeOut","stream","timers","diconnectTimer","CallDurationTimer","pullTimer","secondsTimer","timerEndCall","pullCall","onCallDurationUpdate","updateXfmProgramActive","continuedSession","trackSessionHireEvent","xfmProgramActive","setXfmProgramActive","setSecondsPast","getSecondsPast","dateNow","formatISO","differenceInSeconds","parseISO","secondsPast","callDurationTimer","freeSetupSeconds","pullConversationStatusTimer","callDuration","checkTimerStop","timerEndConversation","pullConversation","trackSessionHireEventIfNeeded","onTick","VoipChat","showHUD","chatReady","disableBackButton","go","onPublisherError","onStreamsUpdated","streams","pauseVoipChat","forceHangupVoipChat","disconnectSessiontimer","DEBUG","onSubscriberSubscribed","subscribed","autoHangupTimer","onReceivedConversationOptions","blinkOnTimer","updateCallDuration","newCallDurationNow","newXfmProgramActive","createOpentokSession","tokboxApiKey","tokboxSessionId","tokboxBuyerToken","receivedSignal","sessionHelper","createSession","apiKey","sessionId","onConnect","session","on","event","data","sessionHandlers","_this2","createRef","setReconnecting","sessionDisconnected","sessionReconnected","sessionReconnecting","disconnect","OTSubscriber","properties","showControls","onSubscribe","showVideo","OTPublisher","onError","publishAudio","publishVideo","videoSource","BlinkTimer","voiceChat","HUD","SquareAnimation","renderTimers","renderSubscriber","renderPublisher","renderControls","renderVoiceChatOverlay","preloadScript","cancelBtn","voipCancelButton","videoConstraints","facingMode","Outgoing","onHangUP","renderWebcam","bind","soundUrl","audio","Audio","play","loop","createChat","_this$audio","pause","Webcam","mirrored","Starting","OutgoingScreen","createVoipChat","AdvisorEnded","voipChatState","textChatstate","showGeneralPopup","renderTopImg","advisorImage","renderSelectCredit","addCreditContainer","renderPurchaseDetails","voipPurchaseOnBack","PurchaseDetails","backArrowAction","CreatedVoipChat","totalCharged","totalDuration","Constants","trackEventSpentCredit","voipEndedEventGTMParams","trackChatEndedEventGTM","_voipActionList$voipS","connectProvider","connecting","starting","inConversation","paymentRequiredOnContinue","voipActionList","callingScreen","_ref$voipChat","getBorderColor","RadioGroup","selectedValue","onSelectionChanged","newValue","currentTarget","getAttribute","renderRadioBtn","radioBtnSelectedContent","radioBtnNotSelectedContent","validateDate","Number","isNaN","differenceInYears","addDividerToDateString","dataString","divider","indexsWhenNeedSetDivider","dataStringWithDivider","forEach","s","_toConsumableArray","char","prevDataStringPart","getFebruaryDaysCount","year","isLeapYear","emptyDatePartValues","validateDateString","_dateStringSplit$","dateString","dateStringSplit","monthList","January","February","March","April","May","June","July","August","September","October","November","December","monthKey","item","updatedDateString","join","getDatePickerPlaceholder","datePickerValue","placeholderSplit","datePickerValueSplit","DatePicker","setError","setDate","datePickerInputStyle","datePickerHolderStyle","setedDate","setDatePickerValue","formatedDateStringSplit","dateArrayJoined","onKeyDownDatePicker","preventDefault","onChangeDatePicker","updatedValue","onClickDatePicker","onBlurDatePicker","day","month","_datePickerValueSplit","updatedDay","updatedMonth","updatedYear","generateDate","inputMode","maxLength","onBlur","errorTypes","validateNickname","nickname","introErrors","setIntroErrors","_ref$returnErrors","returnErrors","renderRadioBtnContent","iconSelectedId","renderErrorModalContent","clearShowErrorModal","getButtonTitle","IntroComponent","updateUserBaseInfo","clearErrorAction","setNickName","gender","setGenderChanged","birthDate","setBirthDate","_useState8","clearedErrorKeys","err","clearedError","genderSelectorOnChange","renderInputError","onCloseBtnClick","closeIconId","isBtnEnabled","setDateOfBirthError","clearDateOfBirthError","SCROLLED_POPUP","VERBOSE","fontSize","fontWeight","nicknameErrors","genderErrors","_ref2$returnErrors","validateGender","validateDateError","birthDateErrors","dateOfBirth","intro","introduce","inProgress","checkNickname","introduceYourselfUpdate","successAction","errorJson","errorAction","withTranslation","NoAnswer","VoipChatOverlay","purchaseOnBack","_window2","onbeforeunload","onunload","changeAppStateAPI","originalOverflow","showSpin","paymentRequired","notInLiveMode","appCantCreate","unknownError","CreatedChat","connectChatProvider","uuid","chatEndedEventGTMParams","disconnectChatProvider","overlay","shouldShowChatContent","started","appStarting","appConnecting","ringing","appConnectProvider","Ringing","waiting","WaitingComponent","Chat","continuingChat","analyticEvents","ownUuid","pubnub","sendMessage","sendTyping","sendStopTyping","ChatOverlay","_window","appNotInLiveMode","generalError","routeComponents","HomePage","Advisor","SearchResults","NoSearchResults","MyOrders","AdvisorOrders","OrderDetails","AddFunds","PromoCode","Transcript","Settings","Cashback","PaymentSources","EmptyPreload","SpendLimitsVerifications","SignInPage","PurchaseDetailsForMobileApp","Categories","NotificationPreferences","RenderRoutes","routes","component","match","useMatch","_applicationRoutes$ke","withoutSuspense","Suspense","protectedRoute","exact","LastLocationProvider","getRoutes","r","RoutesComponent","popoverVisibility","BugsnagErrorBoundary","backgroundColor","BrowserRouter","basename","Overlays","CookiesPopover","wpccMessageText","wpccPrivacyText","wpccPrivacyHref","appLinks","privacyPolicy","wpccBtnText","errorUrl","logOutClear","buildStore","I18nextProvider","i18n","ContextRenderer","componentName","Provider","container","advisorData","getAdvisorDataIfSsrMode","reviews","advisorUpdated","updateAdvisorNavigationStack","reviewsLoaded","userUpdated","hydrateRoot","Application","homePageData","getHomePageDataIfSsrMode","sections","seoData","homeLoadedActions","updateSEOData","createRoot","activitiesLoading","activitiesLoaded","resetAdvisorOrders","reset","resetActivities","loadStartMessagesFeed","paginationParams","navigationStackLoadingAction","getActivityApi","parseAndTrackAnalyticEvents","itemData","navigationStackLoading","subscribeAdvisorsToDB","loadMessagesFeed","loadMessagesFeedFilter","activitiesResetLoaded","activitiesLoadedReset","filteredBySessions","createActivityMessage","activityLoaded","errorStatus","setErrorStatus","advisorOrdersDelete","advisorOrdersDeleteAction","advisorsReviewsReset","reviewsReset","loadAdvisorReviews","getState","_advisors$id$reviews","reviewsLoading","loadAdvisorFeedbacksAPI","res","items","feedbacks","removeDmIdFromSearch","directMessageAnalytics","dmId","updatedSearch","analitycsPrams","startChatClickSource","trackProfileViewEvents","analyticsActions","conversionEventId","extraParams","serviceTitle","rating","readingsCount","yearJoined","profileVideoUrl","getDirectMessagesApi","directMessage","a","loadSimilarOnlineAdvisors","similarOnlineAdvisors","getSimilarOnlineAdvisors","getSimilarOnlineAdvisorsApi","advisorsListUpdated","analyticsparams","fromAdvisorProfile","additionalParams","loadAdvisorAPI","setApplicationError","handleAnalyticsAction","status","url","trackBusyCarouselEvent","eventName","adv","showAffiliatePromoPopup","affiliatePromoPopup","displayDetails","paymentSelected","details","updatePurchaseDetails","purchaseType","hideAffiliatePromoPopup","doneManagingPaymentSource","changingPaymentSource","clearPurchaseDetails","purchaseSuccess","chatUpdatePricingOptions","voipChatUpdatePricingOptions","getAddCreditUrl","credit","expiresAt","displayAffiliatePromoPopup","noThanksLinkClickedAction","noThanksLinkClicked","StatusSuccess","StatusBusy","StatusHangUp","StatusNoAnswer","getFlow","purchaseFlowTypes","ADVISOR_PROFILE_VIEW_MP_EVENT","getContinueSessionValue","_getState","clearProps","clearedProps","k","dataLayer","aditionalPurchaseProps","_window$store$getStat2","purchaseDetails","purchaseFlow","flow","matchPaymentSources","matchPaths","paymentSources","paymentMethods","getPayAsYouGoUsedProperty","trackPurchaseStartedEvent","purchaseData","trackPurchaseStartedEventFB","getDestination","spendingLimits","destination","addAdditonalPurchasePropsAndTrackEvent","purchaseURL","trackPurchase","getAdditionalPurchaseInfoFromURL","purchaseRes","paypalPayerId","paypalTransactionId","paypalBillingAgreementId","paypalInvoiceId","paramOrNul","trackPurchaseEvent","_getState2$user$user","purchasesCount","propertiesGTM","trackPurchaseEventFB","trackFirstPurchaseEventFB","trackFirstPurchaseEventGtm","trackPurchaseFailedEvent","extraEventParams","toLowerCaseSpaced","mapLoginTypeToSignUpMethod","loginType","facebook","trackLoginEvent","signupFlow","trackRegisterEvent","_getState4$user$user","countryName","trackEventRegisterFB","trackLogoutEvent","trackCategoryEvent","categoryEventParams","categoryId","categoryName","sessionType","startChatProperties","homepageSection","trackPaygRelatedProps","propValue","trackChatAttemptEvent","initialDuration","initialCharged","initialVoipCharged","initialVoipDuration","eventNameMP","chatProps","trackGTMEvent","platform","getClientPlatform","getSessionEventsProps","chatData","_toCamelCase","utmCampaign","utmSource","lastHit","lastHitSec","sessionCount","mpProps","gtmProps","timeFromLastSession","trackChatStartedEvent","trackDurationPickExitdMPEvent","trackDurationPickedMPEvent","trackBaseFavoriteEventMP","isFavorite","trackEventAddToCardFB","extraProps","convertedAnalyticEvents","trackEventDeleteOrder","orderType","trackRedeemPromoFailedEvent","trackRedeemPromoEvent","creditText","creditAmount","promoType","referringUserId","trackAdvisorProfileViewEvent","section","trackEventViewewContentFB","getClickSourceForEvent","trackProfileChatButton","ppm","tryout","trackPlayingAdvisorProfileVideoEvent","ordetType","trackEventSpentCreditFB","trackEventAddToCardAction","trackEventAddToCardActionFB","trackTranscriptEvent","trackEventProfileButton","trackEventProfileButtonFB","trackPaymentSourcesEvent","paymentKind","numberOfCC","existing","source","getPurchaseScreenForPaymentSourcesEvent","paymentKindToAnalyticsName","purchase3DSRequiredEvent","purchase3DSFailedEvent","pageTitle","_window$optimoveSDK3","withUserId","optimoveUserId","API","getUserId","_window$optimoveSDK","optimoveSDKAPIGetUserId","_window$optimoveSDK2","checkOptimoveUserId","manualAnalyticEvents","navigationStackItemProp","itemScope","itemType","navigationStackItem","itemProp","span","meta","itemPropPosition","updateNavigationStackAction","showNavigationStackBar","pathData","clearNavigationStackIfNeed","_getValueOrDefault$sh","getValueOrDefault","shouldClearNavigationStackBar","clearNavigationStack","dataKey","langPattern","RegExp","findMatchingRouteKey","_getValueOrDefault2","_getValueOrDefault2$s","shouldSetNavigationStackBar","_getValueOrDefault2$s2","shouldShowNavigationStackBar","navigationStackBarRoutesData","directScreenStack","createPathData","needPresent","_getValueOrDefault3$s","showSmartBanner","aditionParams","updateSmartBannerVisibilityAction","setNewToPGAction","setNewToPG","udpateSEOData","getSEODataAPI","deeplink","welcomePromoCodesAPI","setAnonymousUser","setAnonymousUserAction","_regeneratorRuntime","prototype","n","o","defineProperty","Symbol","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","call","h","l","f","y","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","v","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","resolve","__await","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","Promise","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","delegateYield","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","apply","getOwnPropertyDescriptors","defineProperties","toPrimitive","String","_toPrimitive","_toPropertyKey","asyncGeneratorStep","operationsStatuses","no_consent_privacy_policy","socialParams","showGDPRConsernPopup","authProgressActionCreator","clearPendingAction","authClearPendingCloseAction","clearPendingCloseAction","screen","screenChange","nextScreen","newScreen","consentToGDPRChanged","wasLogin","pendingAction","pendingCloseAction","authSuccessActionCreator","saveDataToStorage","authHandler","promise","_callee","reject","_context","_user$user","justSignedUp","authHandlerSuccessActionWithResUserIfNeed","resUser","autoRedemSetJustSignedUpAuthHandlerSuccessAction","autoRedemSetAuthHandlerSuccessAction","jsonError","_next","_throw","_x","_x2","socRequest","_getState$auth","authSocAPI","recaptchaToken","logInAPI","registerAPI","logOut","logOutAction","logOutAPI","resetMP","hotJarReset","uploadingAWSSuccess","aws","uploadingAWSFailed","failed","uploadClear","upload","file","presignedUrl","contentType","headers","Headers","request","Request","fetch","uploadUserAvatar","uploading","getAvatarPresignedURL","presignedUrlKey","amazonRes","ok","updateUser","avatarUid","currentLogs","json2csv","csv","logUploadedTo","uploadUserLogs","events","lastEventAt","generateUID","random","toString","substring","buildUrl","config","clAnalyticsEndpoint","buildBody","mixpanel","batch_id","distinct_id","get_distinct_id","clAnalyticsKey","doSendEvents","getMixpanelInstance","sendingEvents","visibilityState","navigator","sendBeacon","trackBEvent","updatedProps","$current_url","$screen_height","screen_height","$screen_width","screen_width","$insert_id","valiateUser","pricingLoading","getPricingOptions","chatPricingOptions","start","chatInit","pricePerMinute","init","continueChat","_getState2$chat","continueChatActionCreator","continueChatApi","doContinueChat","continueFlow","purchaseBack","_getState5","continueCall","paymentComplete","durationSelected","hasEnoughtCredit","trackDurationPickRelatedAction","mpEvent","_getState6","_getState6$chat","displayVersion","getDefaultDuration","durationOptions","getDurationOptions","requiredAmount","durationPickRelatedProps","getDurationPickRelatedProps","_getState7","_getState7$user","trackDurationPicked","CHAT","_getState8","cancel","_getState10","_getState10$chat","createChatApi","_getState9","trackMPBusyEventIdNeeded","cantCreate","processAdminMessageIfNeed","adminMessage","_getState11$chat","messageState","_objectWithoutProperties","_excluded","adminUpdate","_getState$chat","_getState12","hangupChatApi","cancelChatOnPPActions","cancelOnPP","_getState13","needTrackSessionHireEvent","setNeedTrackSessionHireEvent","NO_ANSWER","pubNub","listener","CATGEORY_ACTIONS","PNConnectedCategory","actions","connected","PNNetworkDownCategory","down","PNNetworkUpCategory","up","updatePricingOptions","cancelChatOnPP","updateActions","updateAdvisorIfEnded","updateUserIfNeeded","updatePricingOptionsOnContinueIfNeed","dispatchAdminMessage","chatState","trackMPChatStartedEventIfNeeded","_getState2","trackNoAnswerEventIfNeeded","dispatchUserMessage","timetoken","arrayIndex","kinds","textSystemMessage","typing","startPeerTyping","stopPeerTyping","systemMessage","offlineMessage","messageUpdate","handleTextUserMessage","connectPubNub","channelId","subscribe","channels","withPresence","doSendMessage","_getState8$pubnub","channel","sendByPost","storeInHistory","trim","states","publish","offline","messages","saveStorePubNubMessage","createListener","publisher","_message","admin","sm","peers","findIndex","advisorConnectionLost","setAadvisorConnectionLost","receiver_ids","category","rest","_excluded2","m","textreason","sendStorePubNubMessage","presence","module","ssl","restore","addListener","removeListener","shutdown","FB_PIXEL_ID","pixelScript","pixelNoscript","noscript","createElement","innerHTML","trackFacebookPixelEvent","eventIdData","isCustomEvent","facebookId","client_user_agent","userAgent","fbq","eventsQueue","facebookPixelInitialized","saveEventToQueue","eventFunc","eventParams","AppEvents","ParameterNames","CONTENT_TYPE","CONTENT_ID","eventID","purchaseBasePrice","purchaseLocalCurrency","CURRENCY","NUM_ITEMS","REGISTRATION_METHOD","eventId","loadingFavoriteAdvisorsAction","favoriteAdvisors","markFavoriteAdvisor","favoriteAdvisorAPI","trackFavoriteEventMP","markFavorite","markFavoriteAction","markUnfavoriteAdvisor","unFavoriteAdvisorAPI","trackUnFavoriteEventMP","markUnFavorite","favoriteAdvisor","favorite","VAPID_KEY","ENV","messaging","monitorForMessages","onMessage","received","monitorRefreshToken","onTokenRefresh","retriveRegistrationToken","isNotificationSupported","isSupported","initFirebaseOrGetFBApp","getMessaging","Notification","permission","webPushToken","getToken","vapidKey","currentToken","sendPNTokenToServerAPI","advisorDataUpdate","timeStamp","databaseUpdated","getModeState","liveModeState","online","busy","onDataUpdate","database","getDatabase","advisorRef","onValue","snapshot","modes","val","parsedData","voiceCallState","videoCallState","updatedAdvisorLiveModes","modeState","getUpdateAdvisorLiveModes","some","advisorsArray","app","getAuth","currentUser","dbSubscribedAdvisors","realtimeUpdatesAuthToken","signInWithCustomToken","getApps","signOut","advId","off","clearDBSubscribedAdvisors","fundsLoadingError","funds","getFunds","getCreditsAPI","credits","products","errorModel","showPaymentDetails","SIDE_MENU","hidePaymentDetails","none","hide","setChatPopupRightItem","setRightCustomItem","clearChatPopupRightItem","clearRightCustomItem","updateChatPopupBackAction","action","updateBackAction","cleanUpdatedBackAction","clearBackAction","eventsWaitingOptimoveInit","logEventProperties","chatName","eventProps","getBaseSuperProperties","getBaseProfileProperties","getAppName","sameAs1","appleItune","sameAs2","googlePlay","sameAs3","socialLinks","ig","sameAs4","fb","image","imageItemProp","imageContentUrl","required","origin","getUpdatedSections","param","refresh","getHomePageParams","fullReload","buildQueryString","homePageLoadingAction","sectionsIds","sectionsloading","sectionsloadingHomeLoading","loaded","homeLoaded","sectionsWithAdvisors","_s$content","saveAdvisorsFromSections","updateSalesBannerIfNeed","allSectionIds","loadedSalesBannerAction","saveAllAdvisorsListSection","page","_allAdvisorsListSecti","_homePage$sections$fi","allAdvisorsListSection","allAdvisorsList","lastPageNum","newAdvisors","prevAdvisors","from","Set","cleanAdvisorsArray","advisorsSliceCounter","sectionsLoaded","getHomePage","_asyncToGenerator","hotJarInitialized","hotjarInstance","HOTJAR_ID","BACKEND_VERSION","NEED_TRACKING_HOTJAR","getHotjarInstance","locks","_yield$import","hotjar","getUserAttributes","language","getCurrentLocalization","getDateFromServerUTC","baseAttributes","getData","baseUserAttributes","totalPurchased","totalPurchaseFeesPaid","lastPurchaseDate","calculateDifference","date1","date2","installDate","paypalTotalCharged","creditCardTotalCharged","userAttributes","identify","mixpanelInstance","MP_TOKEN","REPORT_SESSION_BEGAN","SESSION_BEGAN_TIMER","mpConfigured","sessionBeganTracked","identifyId","trackPeopleProperties","baseProfileProperties","people","impersonated","mergedEventProperties","_user$analyticsObject","timedAnalyticsProps","analyticsObject","timedAnalytics","timedAnalytic","getDateFromServer","isArray","handleTimedAnalytics","getUserAnalytics","_advisor$discountOffe","discountCouponId","discountOffer","getDiscountPercent","getActiveAdvisorDiscount","baseSuperProperties","trackSuperProperties","object","updatedAnalyticsObject","track","trackGTMWithSuperProperties","ignoreTrackSessionBeganEvent","getUA","media_status","trackSessionBeganEvent","resetMPIfNeed","get_property","removeEmptyValueInObject","_mpUser$user","mixpanelAliasCreated","userMPIdentify","alias","registerUser","activePromoType","activePromoName","unregister","debouncer","Debouncer","loadMyOrderList","loadMyOrdersAPI","orders","initialLoad","loadedMyOrders","loadMyOrders","loadWithDebounce","createErrorAction","responseHandler","trackNotifyMeEvents","createSuccessAction","createNotifyMeAPI","deleteNotifyMeAPI","needToLoadAdv","getNotifyMeData","displayNotifyMeAction","loadingOrderDetails","loadedOrderDetails","sendOrderReviewError","sendedOrderReviewError","sendedOrderReviewClearError","loadOrderDetailsAPI","sendOrderReview","feedbackData","sendOrderReviewAPI","sendedOrderReview","deleteOrder","deleteOrderAPI","sendOrderMessage","authorName","onComplete","sendOrderMessageAPI","clearOrderDetails","kindToAnalyticsName","reportAddFundsScreen","trackMPEventAdditionalFundsRequired","additionalFundsParams","initialChargedPropName","initialDurationPropName","_getState$voipChat","noPaymentMethodsData","noPaymentMethodsEventData","clickSourceOrMobileClickSource","gatewayName","loadPaymentOptionsOnClose","_getState$paymentSour","paymentOptions","load","loadPaymentOptionsApi","newOptions","loadPaymentOptions","_ref$ignoreSkip","ignoreSkip","_getState$paymentOpti","skipNextLoad","checkIfCanMakeApplePayPayments","startEditingPaymentSource","edit","managePaymentSource","manage","doneAddCard","loadAvailable","forceReload","loadAvailablePaymentSourcesApi","sources","removeSource","removePaymentSourceApi","managingSource","paymentMethodRemovedParams","isDefault","trackStartAddingCreditCard","currentPaymentMethodData","trackCreditCardAdded","trackAddCreditCardFailed","scheme","failedReason","errorName","trackPaymentMethodChanged","purchaseScreen","addSource","addPaymentSourceApi","_ref$source","doneChangingPaymentSource","clearAddingCardError","setAddingCardError","addingCardError","editCardIfSecurityReasons","editPaymentSourceApi","generate_tokens","editPaymentSource","addingCardData","updatePaymentSource","paymentSourceParams","cardData","error_name","errorMessage","addCreditCardFailedParams","err2","doneMakeDefault","onMakeDefault","makeDefParams","set_default","ccType","cleanUp","showPopover","promoError","promoCodeAPI","_fJson$errors","_fJson$errors2","promoCodeId","toJsonError","autoRedemSetLoadingAction","autoRedemSetLoading","autoRedemSetAuthHandlerSuccess","autoRedemSetJustSignedUpAuthHandlerSuccess","removePromoFromSearch","autoRedemPromoCodeAfterAction","getAutoRedemPromoCode","getCookie","removeCookie","autoRedemPromoCodeJustSignedUp","jsonErrorCamelCase","changing","diffPrice","calculateDiffHandler","isMinPurchase","getMinPrice","requiredCredit","calculateRequiredFunds","getFeesApi","amountToPay","fees","updateDetails","clearDetails","_window$config$appley","appleMerchantId","appleypayMerchantId","ApplePaySession","canMakePaymentsWithActiveCard","canMakeApplePayPayments","updateApplePayEligibility","loadAdvisors","searchPage","needRefresh","searchResults","getSearchList","loadSuccess","loadError","userRoundCreditsIfCan","_window$store$getStat","propName","normalizeUser","cashbackAmount","referrerCreditAmount","clientLockedCredit","_advisor$liveModes$li","_advisor$liveModes","listLoaded","setAnalyticsProps","analyticProps","userLoadingCreator","userErrorCreator","getCurrentUserAPI","Bugsnag","getUserPromise","updateUserAPI","MPIdentify","paymentProcessingSequence","getMyAccountCreditsApi","updatePaymentProcessingSequence","voip","voipContinueCallAPI","orderSummary","base","updatePurchaseDetailsAction","VOICE_CHAT","VIDEO_CHAT","trackVoipDurationPickRelatedAction","_getState2$voipChat","trackVoipDurationPickedAction","_getState3","_getState3$voipChat","_getState3$voipChat2","creditRequiredOnContinue","creditRequiredOnContinueFlow","_getState4","_getState4$voipChat","voiceCallPricingOptions","updatePricingOptionsActionCreator","_getState7$voipChat","initVoipChat","homePageSection","constraints","mediaDevices","getUserMedia","getTracks","getMediaAndCreateChat","voipPurchaseSuccess","_getState9$voipChat","voipPurchaseSuccessOnContinue","_getState11$voipChat","processCreateChatError","voipStartCallAPI","makeCallOrShowPopup","allowVoice","pgwebVoiceAllowance","allowVideo","pgwebVideoAllowance","notSupport","showNotSupportPopup","onOngoingScreen","_getState15","_getState15$voipChat","conversationId","subscriberConnected","startHangingUp","voipHangupConversationAPI","voipForceHangupConversationAPI","_getState$voipChat2","voipPullConversationAPI","pulled","connectionStatus","connection","_getState16","_getState16$voipChat","voipNotifyPeerConnectedAPI","_getState$voipChat3","pingUrl","pingSequence","voipPingAPI","ping","_getState17","_getState$voipChat4","voipTimerEndConversationAPI","cancelVoipChatOnPP","_getState18$voipChat","cancelVoipChatOnPPAction","_getState19","getBGColor","getModeStatusColor","_ref2$isFreeMinLabel","isFreeMinLabel","isAdvisorBusy","advisorBusyColor","getModeTitleColor","getModePriceColor","modeStatusStrings","getAltMessage","getModeTitle","triggerLogin","getImage","renderPrice","modePrice","sale","getAdvisorCTABtnClassName","isPG","fullWidth","makeActionIfNeed","advisorCTAOnClick","chat_init","voice_init","video_init","advisorCtaThemes","getImageId","getActualPrice","salesPriceType","personalSalesPrice","salesPrice","AdvisorCTA","advisorCallProps","needCheckAction","modeUnavailablePoppupVisible","setModeUnavailablePoppupVisible","defaultStartProps","hideModeUnavailablePoppup","modeIsOnline","getSectionForEvent","trackProfileChatButtonAction","startVoipAction","getStartChatClickSource","onStartVoip","startChatAction","onStartChat","freeMinLabel","freeMinContainer","renderfreeMinLabel","previewAdvisorCTA","previewCtaIcon","renderPreviewAdvisorCTA","boxShadow","modeImage","pricesContainer","modeTitle","ExpandedText","customClasses","ellipsis","modeStatus","modeUnavailablePoppupContainer","modeUnavailablePoppupBtn","LiveModeDefaultProps","withLastLocation","TopIcons","loader","favoriteLoading","advisorStatus","onShare","share","iconsSectionContainer","renderNotify","onNotifyClick","handleNotifyClick","renderFav","handleFavoriteClick","iconButton","topIconImgBlack","topIconImgWhite","AdvisorDefaultProps","showBagde","needTrackProfileVideoEvent","BADGES","defaultAvatar","renderNameSectionContent","nameSectionContainer","nickNameContainer","nickNameText","skeleton","Skeleton","serviceTitleContainer","serviceTitleText","renderNameSection","likesCount","dislikesCount","getReviewCount","renderBadges","badges","advisorBadge","advisorBadgeData","badgeContainer","ratedImg","icon_url","badgeText","renderBadge","badge","getAdvisorStatusClassName","indicatorSkeleton","renderAdvisorStatus","indicatorContainer","statusTitle","toUpperCase","renderTopIcons","renderRating","isNewAdvisor","Rating","ratingContainer","renderTopIconsContainer","topItemsContainer","AdvisorProfileAvatar","profileVideoThumbUrl","profileContainer","avatarContainer","profileImageContainer","transparentOverlay","profileImg","objectFit","advisorProfileAvatarTheme","AdvisorVideoPlayer","advisorInfo","statusContainer","reviewItemThemes","ReviewItem","isPositive","ignoreLeftMargin","marginLeft","reviewItem","reviewImg","reviewItemsContent","shouldRenderReviews","noReviews","renderBusyLable","busyLableContainer","renderAdvsiorTitleContent","advisorTitleContainer","advisorTitle","advisorTitleText","advisorSubtitle","advisorSubtitleText","renderAdvsiorTitle","AdvisorHeader","serviceDescription","renderAdvisorModes","advisorHeaderTheme","terminatedAdvisor","aboutMyServicesContainer","aboutMyServicesTitle","aboutMyServicesText","readMoreBtn","aboutMyServicesReadMoreBtn","ctaSkeleton","readMoreKind","limit","skeletonCount","skeletonClassName","ctaSkeletonFullWidth","ctaSkeletonContainer","advisorCTAs","userActivePromotion","advisorHeaderContainer","avatarHolder","basicInfoContainer","advsiorTitleContainer","topIconsAndRatingContainer","ratingHolder","needAddItemProp","couponLabelContainerBrowser","CouponLabel","advisorModesContainer","couponLabelContainerMobile","advsiorReadingsContainer","ReadingSinceAndCountItem","readingsTitleKey","readingSinceAndCountItemThemes","reviewsContainer","filters","positive","negative","default","reviewImage","Review","review","buyerNickname","comment","reviewContainer","reviewerName","reviewImgContainer","reviewBuyerNicknameContainer","reviewBuyerNickname","reviewDateContainer","count","reviewItems","itemsArray","getSelectedButtonStyle","buttonId","selectedId","reviewShowMore","showMore","onShowMore","showMoreButton","ReviewsSection","_queryString$parse","setSelectedId","onItemTap","updateQuery","buttonItem","reviewItemHolder","reviewsContent","needShowPlaceHolder","emptyReviewsContainer","headerContainer","SomeOtherAdvisors","titleContainer","AdvisorsList","advisorsListThemes","someOtherAdvisor","homeButtonContainer","AppLink","to","homeButton","AdvisorSpecialities","specialities","specialitiesContent","renderSpecialitiesContent","containerClassName","iconUrl","spec","iconName","specialitiesClickSource","advisorProfile","Speciality","speciality","advisorSpecialitiesTheme","descriptionContent","makeMoreReadable","renderNoAavailableForPG","advisorAvalibalForPG","psychicsListTypes","NOTAVAILABLEFORPG","AdvisorMainContent","aboutMe","AdvisorStaticContainer","modesContainerVisible","renderAvatarSection","fixedContainerAvatarContainer","fixedContainerAvatarHolder","AdvisorAvatar","advisorThemes","profileSmallAvatar","advisorStaticTitleContainer","advisorNameContainer","advisorNameText","advisorServiceTitleContainer","advisorServiceTitleText","renderCtaSection","isKA","ctaHolder","AdvisorCta","renderTopIconContainer","topIconsContaner","sticky_icons","modesContainerStyle","getHeaderHeight","fixedContainerBrowser","fixedContentBrowser","optionsContainer","fixedTopContainerMobile","fixedTopContentMobile","fixedBottomContainerMobile","TerminatedAdvisor","TERMINATED","specialitiesAndAboutMeContainer","aboutMeContainer","aboutMeTitle","aboutMeText","aboutMeReadMoreBtn","_advisors$advisorId","carouselAvailability","available_busy_carousel","AdvisorRecommendCarousel","getTitleMetaTags","getOGTitle","getAdvisorDescriptionMetaTagText","PGWEB_ADVISOR_DESCRIPTION_TAG","decodeHtmlBracketCharCodes","getMinPricePerMinute","prices","minPricePerMinute","min","getSku","addvisorIdSkuString","extra","partArray","lastPart","leftPart","getGtin8","verifyBusyCarouselRender","trackBusyCarouselEventIfNeeded","arr1","arr2","prevSimilarOnlineAdvisorsRef","prevSimilarOnlineAdvisors","similarOnlineAdvisorsIds","every","setModesContainerVisible","userIdState","setUserIdState","appearedAt","handleScroll","getBoundingClientRect","bottom","onScroll","trackInitialEvents","isInitialMount","updateSimilarAdvisors","cleanupAdvisorFieldsForAnalytics","scrollTo","metaTagsName","metaTagName","metaTag","remove","removeMetaTags","prevUserId","UsePreviousValue","renderAdvisorRecommendCarousel","renderPromoLabel","promoLabelContainer","PromotionLabel","promotionLabelContainerMobile","promotionLabelTypeScreen","promotionLabelTypeScreens","_location$state","AppLayout","topGradientColor","footerMobileBottomHeight","AffiliatePromoPopup","property","textTruncate","renderCanonicalLink","updatePathTrailingSlashes","itemRef","days","_matchPathname$patter","_ref$user","knownPaths","matchPathname","pattern","advisorLoaded","textStyle","wordBreak","countContainer","separateThousands","readingsSinceContainer","readingsSinceMobileContainer","staffPick","staffPickMobile","onHomePageAdvisorAvatar","onHomePageSecriceContainer","recommendAdvisor","onPlayVideoBtnContainerClick","renderPlayVideoBtnContainer","playVideoBtnContainerHolder","playVideoBtnContainer","playImg","playVideoImg","renderRateAndFaforite","rateAndFavouriteContainer","favouriteContainer","favoriteImg","nickNameAndServiseTitleConatiner","advisorNickNameContainer","readingSinceAndCountItemContainer","getAvatarUrl","mainContainer","imgContainerHolder","imgContainer","statusLabel","staff_pick","personal","badge_end_to_end","searchResult","homePageAllAdvisors","activityAvatar","recommendedCarousel","getRatingText","ratingTextSkeleton","getRatingTextClass","newAdvisorText","ratingText","getRatingContaineritemProp","reviewCount","addMetaTag","starImg","navigateToRegisterScreen","callCallbackOrSetItPending","authorizedCallback","needToAuthCallback","onFavoriteClick","subscribedToAdvisor","notifyMeTooltipContainer","getClickSource","favoriteAction","notifyClickAction","xIcon","isInFullScreen","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","playerVisible","setPlayerVisible","muted","setMuted","videoRef","closeBtnRef","playerContentRef","onPlayerClick","videoPlayingDuration","currentTime","trackPlayVideoEvent","onFullScreenChange","onFullScreenChangeHandler","isSafari","setMutedForSafari","onfullscreenchange","onwebkitfullscreenchange","playerContent","closeBtn","showPlayerVisible","onPlaying","requestFullScreen","mozRequestFullScreen","webkitRequestFullScreen","webkitEnterFullscreen","requestFullScreenHandler","player","VideoPlayer","videoUrl","renderPlayBtn","playBtn","getPlayBtn","needOpenOnAppRoot","VIDEO_POPOVER","ratingCount","getPaginationPageItemClassName","paginationPage","seenPages","paginationPageItemActive","paginationPageItemSeen","paginationPageItemNotActive","getSearchWithPage","srarch","renderPaginationPageLeftArrow","leftArrowClick","paginationPageArrowContainer","paginationPageArrow","renderPaginationPageRightArrow","rightArrowClick","PaginationPages","setPaginationPage","setPaginationPageAction","seeMoreBtnClick","searchWithPage","renderPaginationPageItems","paginationPageItems","paginationPagesNumbers","sort","b","sortPaginationPagesNumbers","generatePaginationPageNumbers","blank","generatePaginationPageItems","paginationPagesContainer","getPage","usedPage","SeeMoreBtn","_getPage2","nextPage","seeMoreBtnThemes","bottomButtonContainer","padding","bottomButton","seeMoreBtnImg","seeMoreBtnText","needRenderSeeMoreBtnDefault","_getPage","renderSeeMoreBtnDefault","isLastPage","cleanFiltersItem","clearFilters","filterIsApplied","withSearch","filterButtonContainer","noFilterTitle","clearFilterIcon","renderAdvisorsList","renderAdvisorListSection","loadingAdvisors","advisorsEmptyList","advisorsList","advisorsContainer","AdvisorPreview","advisorCount","sectionSlug","affiliatePromoPopupCloseButtonAction","needShowAffiliatePromoPopup","setNeedShowAffiliatePromoPopup","renderAffiliatePromoPopup","noNeed","showItem","noNeedRenderAffiliatePromoItem","AFFILIATE_PROMO","AdvisorNotProvideServicesPopup","advisorNotProvideServicesPopupDataShow","onCloseCliked","advisorNotProvideServicesPopupData","setAdvisorNotProvideServicesPopupData","makeChangeLanguage","onAdvisorNotProvideServicesPopupContinueReadingClick","advisorNotProvideServicesPopupExploreOthersClick","redirecPath","onLanguageChanged","getAdvisorIdBySlug","advisorSlug","profileLanguages","shouldRenderProcessingStatus","payPalWindow","okMessage","closePayPalWindowOnMpTrackPayPalProcessingEventsIfNeed","claerPaypalWindow","close","closePayPalWindow","PayPalProcessing","onPurchaseComplete","hasPaypalBillingAgreement","purchaseAmount","currentPaymentOption","purchaseResponce","setPurchaseResponce","setPaypalWindow","retryCount","setRetryCount","closeWindowEventListenerMessage","setCloseWindowEventListenerMessage","_useState10","needTrackPurchaseStarted","setNeedTrackPurchaseStarted","purchaseFees","setPurchaseResponceData","tryParseJSONObject","setPurchaseResponceDataIfNeed","clearPurchaseResponceData","openPayPal","URL","paramsString","use_reference_transaction","with3ds","getFollowupParam","browserContext","fullURL","sign","_window$frames","frames","innerHeight","innerWidth","_window$top","outerWidth","outerHeight","screenY","screenX","windowTop","windowLeft","openingwindow","removeEventListenerMessage","errorType","errorPathname","threeDAuthResult","mpTrackPurchaseStartedEvent","mpTrackPurchaseEvent","mpTrackPurchaseFailedEvent","mpTrackPayPalProcessingEvents","closed","onConfirmButtonClick","onConfirmButton","clearPurchaseAction","onFocusWindow","focusPayPalWindowIfNeed","onCloseButtonClick","selectCloseButtonActionIfNeed","isSideMenu","closePurchaseDetailsOnSideMenu","onRetry","onRetryButtonClick","startPurchaseAction","clearAdditionalAction","openPayPalIfNeed","ProcessingStatus","isAffiliatePromoPopup","onFocusProcessingWindow","onConfirm","isCreditCard","payingWithCreditCard","buttonTitle","renderButtonTitle","func","_ref$purchaseDetails","ThreeDSecure","paymentsParams","createCreditCardProcessingPurchase","purchase3DSRequiredEventAction","purchase3DSFailedEventAction","bluesnap","jsReady","setJsReady","threeDsMixpanelProps","threeDsConfig","requiredParams","threeDsPaymentsSetup","sdkResponse","threeDSecure","threed_secure_reference_id","threeDSecureReferenceId","threed_auth_result","authResult","sdk_response","getClientPlatformForAPI","info","warnings","threeDsPaymentsSubmitData","scr","onload","jsSrc","head","renderThreeDSecure","CreditCardPayment","getCreditCardProcessingPurchaseResponce","paymentsData","paymentsResponce","setCreditCardPaymentStatusHandler","purchaseResponceInterval","setPurchaseResponceInterval","purchaseStarted","showThreeDSecure","int","CreditCardProcessing","getCreditCardProcessingData","clearCreditCardProcessing","purchaseParams","creditCardPaymentStatus","setCreditCardPaymentStatus","pendingCreditCardPaymentStatus","clearCreditCardPaymentStatus","startCreditCardProcessingPurchase","threedAuthResult","_creditCardPaymentSta","_creditCardPaymentSta2","purchase3DSRequiredEventHandler","purchase3DSFailedEventHandler","purchaseErrorText","paymentMethodCannotBeUsed","creditCardPaymentProps","onPurchaseClickedHandler","threeDSecureProps","creditCardProcessingError","creditCardProcessing","getCreditCardProcessingDataApi","result","dataLoaded","creditCardProcessingDataloaded","createCreditCardProcessingPurchaseApi","purchaseLoaded","createCreditCardProcessingPurchaseLoaded","getCreditCardProcessingPurchaseResponceApi","purchaseResponceLoaded","getCreditCardProcessingPurchaseResponceLoaded","purchaseDetailsCommonProps","loadingOptions","sideMenuPurcahseSuccess","affiliatePromoPurcahseSuccess","loadingSources","creditCardValidateError","affiliatePromoPopupOnCloseIconClick","trackAddFundsScreenEvent","_getAddFundsInitialCh","getAddFundsInitialChargedAndInitialDurationPropsNames","showPaymentSources","paymentMethodListActions","getAddCardCinfig","paymentMethodListAnalyticsEvents","purchaseDetailsActions","onPurchaseDetailsScreenOpened","renderCreditCardProcessing","disableBuyButton","renderPayPalProcessing","addCreditCard","renderCreditCardValidateProcessing","requiresPayAsYouGoValidation","CreditCardValidateProcessing","onCreditCardValidated","hideAffiliatePromoPopupAction","paymentSourcesTheme","purchase","PurchaseDetailsCommon","clickSourc","creditCardValidateProcessing","validating","voipPurchaseSuccessAction","Form","onStopTyping","typingTimer","typingTimeout","onSend","textAreaRef","isSendAllowed","onKeyPressed","keyCode","shiftKey","sendButton","sendBtn","chatSendContainer","chatSendArea","rows","TimerComponent","freeDuration","setSecondsLeft","setTimerInterval","stopTimer","startTimer","currentDate","endDate","setSeconds","getSeconds","datesSecondsDiff","round","durationCounterDisplay","NetworkStateComponent","pendingUpdate","lastMessageRef","faviconIconHref","renderHeader","chatHeaderContainer","chatHeaderContainerBrowser","chatHeader","justifyContent","hangupBtn","hangupImg","avatar","liveIndicatorAnimation","canvas","pulseFactor","liveIndecatorInterval","halfRange","range","easing","sin","now","minPulse","newFavicon","createFavicon","setFavicon","ctx","getContext","clearRect","radius","beginPath","arc","PI","fillStyle","toDataURL","dataURL","favicon","viewportHandler","chatContainer","chatMessagesContainer","ontouchmove","contains","renderMessage","renderMyMessage","renderAdvisorMessage","renderSystemMessage","SystemMessage","visualViewport","isBrowser","faviconLinkElement","scrollToBottom","peer","imageUrl","scrollIntoView","behavior","ClientMessage","AdvisorMessage","peerTyping","_peers$find","typingContainer","getAvatarFromUuuId","systemMessages","formProps","chatContainerMobile","chatContainerBrowser","renderPeerTyping","memo","chatSystemMessageContainer","chatSystemBubbleContainer","chatBaseBubbleContainer","bubbdleText","chatOwnMessageContainer","chatOwnBubbleContainer","LoadIndicator","classname","clientTimeToken","TimeToken","chatAdvisorMessageContainer","chatAdvisorBubbleContainer","advisorTimeToken","SearchBar","searchInputRef","query","searchInputValue","setSearchInputValue","itemPropSearch","onSearch","onHeaderSearchClick","searchContainer","searchInput","inputSearchIconContainer","inputSearchIcon","renderItemPropMeta","searchField","searchButton","searchButtonTitle","searchButtonIcon","_require","isPS","_heroBannerSources","thumbMobile","videoMobile","thumbDesktop","videoDesktop","HeroBanner","setVideoUrl","posterUrl","setPosterUrl","handleResize","isMiddleMobile","resizeObserver","ResizeObserver","observe","poster","controls","specialityClass","SpecialitiesSection","renderSpeciality","SectionDefaultProps","getObjectValue","renderLeftSideFooter","liveModeMinPrice","liveModeMinPromoPrices","PriceText","AdvisorModes","StaffPickSection","onAnalyticsClick","_getObjectValue2","staffPickText","onDescriptionExpand","handleLinkClick","handleLinkClickAction","mainContentContainer","sectionHeader","sectionIcon","sectionHeaderSeparator","headerTitle","advisorViewLink","advisorContainer","advisorInfoContainer","advisorInfoHeader","staffPickDescription","readMoreClick","footer","v2","AdvisorModesThemes","showPrice","_props$content","_props$content2","advisorID","PersonalSection","personalSections","selectedSection","setSelectedSection","personalSectionsMenuItemClick","AdvisorSection","advisorsSectionThemes","personalSection","adviosrsState","updatedSections","_sections$s","_updatedSections$s","ButtonSection","Title","fontStyle","AllAdvisorsSection","loadAdvisorsForHomePageAllAdvisors","AdvisorSectionTitle","all_advisors_section","renderSections","emptySection","_createElement","showPersonalSectionBrowser","sectionType","sectionSubtype","identifySection","identifySections","sectionTypes","all_advisors","getIdentifySection","subtype","bage","noNeedMarginTop","needsHeaderTransparentTransition","_s$content2","parseAdvisorsFromAdvisorsState","modeStateToIconId","preview","modesHolder","modesHolderSkeleton","liveMode","classContainer","recommendedAdvisor","modeIconContainer","withBg","modeIcon","big","renderMode","getadvisorSlug","renderPriceText","renderNotifyMeButton","notifyMeButton","getStartCallMode","renderNotifyMeButtonContainer","previewAdvisorCTAContainer","renderNotifyButton","adjustModesInfo","valueWithoutModes","valueWithModes","renderModesInfo","renderAdvisorFreeMinutes","modesInfoContainerWithIcons","_advisor$xfmProgram","innerRef","renderFreeMinutesLabel","active","advisorView","advisrServiceContainer","advisrService","advisornickNameAndServiceContainer","advisrNickName","skeletonOrItem","skeletonWidth","advisorServiceTitle","serviceDescriptionContainer","lineHeight","advisrServiceText","maxChars","bottomSection","getKey","WrappedComponent","renderedAt","visibleSince","setVisibleSince","isVisible","rootMargin","IntersectionObserver","observer","entry","isIntersecting","useIntersection","sendEvent","wasVisibleSince","opts","timeSinceFirstRender","timeVisible","AdvisorPreviewThemes","renderSeeAllBtnText","seeAllBtnText","seeAllBtnTextContainer","seeAllBtnRightArrow","seeAllBtn","renderTitleTextSection","advisorTitleTextSkeleton","getIconUrlStyle","shortDescription","alignItems","advisorTitleImg","advisorTitleDescription","advisorDescriptionSkeleton","advisorShortDescription","advisorShortDescriptionSkeleton","leftArrow","arrowImg","fillRule","clipRule","x","filterUnits","colorInterpolationFilters","floodOpacity","in","dy","in2","operator","rightArrow","scrollElementTypes","getJustifyContentStyle","scrollElementsContentWidth","windowInnerWidth","sectionSubTypes","endToEnd","getPersonalContentStyle","calcScrollElementContantWidth","setScrollElementsContentWidth","contentContainer","contentContainerChildrenArray","contentWidth","el","getComputedStyle","needShowScrollElement","setShowLeftScrollElement","setShowRightScrollElement","mainScrollContainer","offsetWidth","scrollLeft","scrollWidth","renderSeeAllItmeMobile","seeAll","seeAllItmeMobile","phoneOnlyUpSize","seeAllItmeMobileContainer","renderScrollLeftElement","showLeftScrollElement","onScrollBtnClick","scrollLeftElementContainer","scrollElementImgContainer","border","borderTopRightRadius","borderBottomRightRadius","renderScrollRightElement","showRightScrollElement","scrollRightElementContainer","borderTopLeftRadius","borderBottomLeftRadius","advisorAnalytics","sectionLoading","sectionTitleTheme","setWindowInnerWidth","advisorsContainerRef","advisorsContainerScrollerRef","scrollContainer","left","clientWidth","onScrollBtnClickAction","renderAdvisors","emptyList","emptyListForRecommended","recommend_advisors","emptyAdvisor","AdvisorRecommendPreview","renderAdvisorLoading","advisorSectionContent","cantBePresented","sectionMainContainer","advisorsContainerScroller","needRenderCoupon","userAdvisorModeMinSalesPrice","minSalesPriceType","couponLiveModeMinSalesPrice","renderCouponImg","discountCouponIcon","priceColor","availableMinSalesPrice","salePriceTextWithCoupon","salePriceText","priceText","prePriceText","availableMinPrice","crosoutPrice","minPriceText","_getPrices","onlineLiveModePrices","parsedPrice","parsedAvailableSalesPrice","minPrice","getAvailableMinSalesPrice","getPrices","textColumnContainer","textContainer","priceSeparator","advisorModeMinSalesPrice","countDownTitle","countdownBeforeEndInSeconds","countdownBeforeEventInSeconds","renderContdownContainer","promotionIsActive","contdownContainer","getImageObjectForWindowSize","imageObject","banner","webBanner","getImageObject","images","large","small","getBannerAspectRation","aspectRation","promotionSaleTitle","promotionShortDescription","bannerImg","imgSrc","getBannerImg","currentSeconds","setCurrentSeconds","promotionActive","toLocaleString","minimumIntegerDigits","promoLabel","PromotionContent","PromotionDefaultProps","recentlyViewed","favorites","contactAgain","votedMostAccurate","highestRated","trending","recomended","redeemCahsback","topAdvisorsTarotReadings","pathHeadingAdvisors","tensionRelationshipAdvisors","soulmateAdvisors","button","advisorsSectionTypes","advisorsSectionTypesArray","advisorsSectionType","typesToArray","idsArray","sectionId","typesArray","SectionProps","HomePageAdvisorLiveModes","HomePageAdvisorLiveModesDefaultProps","AdvisorBadgesProps","AdvisorBadgesDefaultProps","HomePageAdvisorProps","HomePageAdvisorDefaultProps","FullAdvisorDetails","busy_status","is_available","instructions","profile_video_thumb_url","profile_video_url","advisor_share_link","FullAdvisorDefaultDetails","about_me","promotionSaleCampaign","shareBanner","webBannerImgSrc","getBuyBtnClassName","renderError","validateCreditCardAction","validatedData","validateCreditCardClearAction","getValidateCreditCardStatus","creditCardValidateProcessingValidating","getValidateCreditCardStatusInterval","setGetValidateCreditCardStatusInterval","onClickBtn","validateCreditCardActionHandler","intendedAdvisorId","intended_advisor_id","order_type","purchaseTypeToOrderType","chatTypeToOrderType","getValidateCreditCardRequestParams","creditCardValidateProcessingValidated","setValidatedData","creditCardValidateProcessingError","ownProp","validateCreditCardApi","getValidateCreditCardStatusApi","endPurchaseErrorTypes","indexOf","followupParam","errorOrigin","recoverable","retriable","recover","hidePaymentDetailsAndCancelChatIfNeed","spendLimits","reload","getPurchaseClickSource","click_source","getPurchaseScreenProp","purchase_screen","getChatPurchaseScreenName","buildEventData","_ref15","_ref16","_ref15$clickSource","purchaseAmountFloat","hash","set3DSAuthResult","getPurchaseBillingAgreementProperty","paymentOptionEventData","_ref14","extraEventParamsData","_ref17","_ref18","getFailReason","_ref19","payPalProcessingFailReason","getPurchaseFailedPropsForMobileApp","_ref20","_ref21","_ref21$clickSource","ReviewSection","onSubmit","setText","reviewSectionContainer","flexDiv","rateReviewSectionTitle","inputArea","submitButton","checkSendFeedback","setAlerts","_checkCanPostLikeComm","canPost","checkCanPostLikeComment","uniqErrors","checkCanPost","feedbackVote","undiscountedPpm","discountValue","totalChargedNumber","differenceInDays","getFeedbackData","alertsContent","alerts","shouldValidate","setShouldValidate","setComment","redirectIfNeed","renderRateReviewDEFAULT","rateReviewContainer","skipButtonContainer","skipButton","renderRateReviewCHATENDED","rateReviewCHATENDED","DEFAULT","sessionData","convertValue","FeedbackSwitcher","feedbackSwitcherContainer","styleMarging","marginTopSmallModal","marginBottomSmallModal","renderRateSectionDEFAULT","rateSectionDEFAULT","renderRateSectionCHATENDED","rateSectionChatEndedContainer","chatEndedTitle","chatEndedSubTitle","TCP_BANNER","GDPRConsernPopupVisible","tcpBanner","termsAndPoliciesUpdateViewed","termsOfUseClicked","setTermsOfUseClicked","privacyPolicyClicked","setPrivacyPolicyClicked","termsAndPpUpdateViewed","setTermsAndPpUpdateViewed","hideGDPRConsernPopup","server","termsAndPoliciesUpdateViewedEvent","serverContentBtnOnClick","updateTcpBanner","regularContentBtnOnClick","socialContinueOnClick","renderServerContent","ppTofModalSignUpContent","ppTofModalSignUpHeader","header","tcpBannerText","ReactMarkdown","serverContentLinkOnClick","ppTofModalSignUpButton","renderModalContent","tcpBannerBodyText","ppTofModalCancelButton","socialOriginOnClick","_ref$auth","tcPpBanner","reloadDocument","_getUpdatedLink","updatedLink","getUpdatedLink","onLinkClick","Link","needUpdatePathTrailingSlashes","matchingRouteKey","exists","findFullRouteKey","matchingRoute","_ret","isPattern","_loop","translationObject","routesTranslationKeys","returnObjects","translationKey","isActiveRoute","lastChar","_matchRoutes2$","matchRoutes","FilterDropdown","selectedOptionId","dropdownId","setOpen","onOptionClick","handleClick","parentNode","handleClickAction","node","_ref$handle","percent","getHandleProps","isLeft","getTrackProps","currentPPMRange","onRangeChange","_window$config$filter","filterPricePerMinute","max","step","Slider","domain","onUpdate","Rail","getRailProps","Handles","handles","Handle","Tracks","right","tracks","Track","filterSwitcherId","getInitialState","include_offline","min_number_of_reviews_ge","ppm_ge","ppm_le","reading_via","readingVia","numberOfReviews","ppmRange","includeOffline","searchQuery","renderAffiliatFilterViewBullet","localizationKey","renderViewForNewAffiliateUser","showFilterPopover","renderFiltersMobileView","searchIconTap","eligibleForNewAffiliateUserView","searchSection","onSearchChanged","onPopoverSearchInputKeyDown","renderCancelBtn","showFilters","closeFilters","newToPG","setReadingVia","setNumberOfReviews","setPPMRange","setIncludeOffline","setSearchQuery","_useState12","historySearch","setHistorySearch","_useState14","setShowFilters","openFilters","onReadingViaChanged","onNumverOfReviewsChanged","onSliderChanged","onIncludeOfflineChanged","popoverId","onFilterApply","prevHistorySearch","parsedHistorySearch","searchWithoutFilters","filtersAllowedParams","readingViaFilters","numberOfReviewsFilters","borderBottom","FilterSlider","FilterSwitcher","SignOut","MODAL","showSignOutModal","signOutClick","signOutCancel","signOutOk","renderSingOutContent","signOutContentContainer","signOutHeader","signOutBody","signOutYesBtnContainer","signOutCancelButton","signOutCancelBtnContainer","signOutYesButton","renderBoldText","renderSignOutButton","isModal","signOutButtonModal","modalSignOutText","signOutImage","signOutButton","signOutContainerModal","signOutContainer","getMenuItemClass","extraNode","rightPos","MenuItem","linkTo","asHref","openInNewTab","renderActionLink","renderRemoteLink","activeStyle","appcolor","renderInnerLink","overflowCount","customClass","Badge","renderBadgeAroundAComponent","needReview","renderMessages","MessageCountBadge","_user$badgeCounters","sideMenuArrow","iconToUse","renderSideMenuSpecialitiesArrow","specialitiesShow","renderSpecialities","renderSideMenuIcon","needChekActive","menu","SpecialitiesMenuItem","dynamicRoutesKeys","setSpecialitiesShow","showSpecialities","currentLang","userLoggedIn","getSpecialitiesRoutes","_dynamicRoutes$key$tr","dynamicRoutes","translations","componentStyles","transparentStyles","borderStyle","borderRadius","borderBottomStyle","borderBottomWidth","borderBottomColor","regularStyles","getComponentStyle","transparent","logo","getAltLogo","altLogo","alt_text","renderLogoImg","itemPropImage","renderLogoMeta","onSideMenu","headerLogoH1Container","HeaderLogo","toggleDrawer","sideMenuIcon","badgeCount","headerLogoContainer","menuButton","menuButtonImg","headerLink","headerTitleTM","sideMenuIconNames","_ref2$needChekActive","_ref2$style","getIconToUse","renderChangeLanguageMenuItem","showChangeLanguage","toggleChangeLanguagePopup","createPortal","renderBlogMenuItem","isPGW","blog","articles","renderMyHoroscopeMenuItem","myHoroscope","SideMenu","isSufficientForCashback","shouldShowPayoutMethodMenuItem","setShowChangeLanguage","favoriteRouteSettings","getRouteSettings","MyOrdersBadge","addFunds","cashback","customerSupport","forAdvisors","settings","showPaymentMethodMenuItem","IMAGE_SIZE","createImage","Image","getCroppedImg","_getCroppedImg","imageSrc","pixelCrop","maxSize","safeArea","sqrt","translate","drawImage","getImageData","putImageData","toBlob","CustomSlider","onSliderUpdate","_arrayWithHoles","_iterableToArrayLimit","_arrayLikeToArray","test","_unsupportedIterableToArray","_nonIterableRest","Cropper","onCropFinished","crop","onCropChange","_React$useState2","zoom","onZoomChange","croppedArea","setCroppedArea","extracting","setExtracting","onCropComplete","area","croppedAreaPixels","extractCropedImage","croppedIMG","getCroppedImage","renderFooter","renderCroper","ReactCrop","JUMIO_POPOVER","FilePicker","onFilePicked","inputFile","click","accept","files","UserAvatarPicker","pickedFile","setPickedFile","createObjectURL","croppedFile","isPopoverVisible","setIsPopoverVisible","triggerNode","contentNode","titleNode","profileInfoPopoverContainer","profileInfoPopoverInnerContainer","profileInfoPopoverTopArrow","profileInfoPopoverInner","profileInfoPopoverTitle","profileInfoPopoverInnerContent","innerSearchKinds","getInnerSearchItemDisplay","showHeaderSearchLine","setShowHeaderSearchLine","onHeaderSearchLineButtonClick","onHeaderSearchLineButtonKeyDown","searchInputValueChange","headerSearchButtonClick","headerSearchLineCloseButtonClick","isSearchLineCloseButtonClick","headerSearchMainContainer","headerSearchButton","headerSearchButtonImg","headerSearchLineContainer","headerSearchLineInputContainer","headerSearchLineSearchIconAndInputContainer","headerSearchGreyIcon","headerSearchLineForm","headerSearchLineInput","autoComplete","headerSearchLineDivider","headerSearchLineSearchCloseButtonContainer","headerSearchLineButton","headerSearchLineCloseButton","headerSearchLineCloseButtonImg","plusIcon","filledPlusIcon","editIcon","getAvatar","avatarUrlResize","avatarUrl","getAvatarIcon","getCreditButtonText","availableCredit","formattedNumber","maximumFractionDigits","minimumFractionDigits","AppHeader","withTranparentTransition","logOutSuccess","scrollY","setTransparent","getNicknameContainerClasses","nicknameContainer","empty","showSignUp","showSignIn","TopBanner","headerContent","headerSearchAndProfileContainer","HeaderSearch","popoverContainer","ProfileInfoPopover","profilePopoverHeaderWrapper","profilePopoverHeaderAvatarContainer","popoverAvatar","avatarIconContainer","avatarIcon","profilePopoverHeaderRightSide","addCreditsButton","popoverItem","popoverItemText","profileInfoContainer","profileInfoContainerDivider","signInButtonsContainer","loginButtonContainer","xfm_program","Header","socialLinksArray","tt","yt","onIconTap","companyInfo","getFullYear","FooterOrganism","footerLogo","termsLinks","tos","affiliation","logoAction","links","aboutUs","Footer","renderArticleTitle","articleTitle","renderArticleSubtitle","articleSubtitle","renderArticleText","alwaysExpanded","whiteSpace","reactNode","domNode","attributesToProps","custom","SeoData","seoScript","articleContent","isNewToPG","needRenderNewToPGSection","replaceScript","currentElement","htmlDescription","htmlTitle","ogTitle","ogType","ogDescription","ogImage","anyArticleDataExcist","getLinkStyle","isLast","textColor","presentPightArrow","NavigationStackBar","routeSettings","renderNavigationItems","_screenStack$item","renderItem","removeHeader","fullHeight","noNeedFooter","setVisible","appLayoutItemProp","calculateScrollbarWidth","scrollbarWidth","documentElement","setProperty","appRoot","rootHeader","rootContent","fullHeightContainer","childrenContainer","invisibleScrollBar","getTimerSize","renderDurationText","countdownSecondsToShow","ceil","renderTimerPath","getTimerAnimationStrokeValue","getStopwatchStyle","sessionEndingHighlightedCountdownSeconds","sessionEndingCountdownSeconds","setupTimeLabels","setNotifyDate","fillOpacity","setupTimeLabelsText","setupTimeLabelsVoipText","_setupTimeLabels","_toArray","renderFreeTime","Hls","hls","loadSource","attachMedia","MANIFEST_PARSED","canPlayType","destroy","onPlayerClickHandler","playsInline","onTouchStart","autoPlay","preload","setImpersonated","userSetImpersonate","defaultHeaders","deviceId","_document$querySelect","deviceHeader","WEBDEVICE_ID","Accept","querySelector","WEB_CLIENT","_ref$opts","_ref$ignoreBaseUrl","ignoreBaseUrl","ignorError404","_ref$ignoreUserUpdate","ignoreUserUpdate","_document$querySelect2","apiMethod","endpoint","t0","getDeviceId","get","responseJson","validateApplePayMerchantApi","paymentSourceId","paymentSessionUrl","toSnakeCase","queryParameters","loadFavoriteAfvisorsAPI","loadAdvisorOrdersAPI","remeberMe","remember_me","rc_token","intention","facebook_token","google_id_token","consent_to_privacy_policy","with_verification","date_of_birth","delete","passwordUpdateAPI","confirmPassword","password_confirmation","loadNotificationPreferencesAPI","updateNotificationPreferencesAPI","preferences","with_payment_sources","loadTransciptAPI","loadCashbackStatusAPI","web_push_token","parameters","advisor_id","price_per_minute","conversation_type","buyerDuration","advisorDuration","sequenceNumber","getUserVerificationsAPI","createUserVerificationAPI","verification","getVerificationStatusAPI","jumioUploadedAPI","_toCamelCase2","minNumberOfReviewsGe","ppmGe","ppmLe","createCreditCardProcessingPurchaseRequest","withCkoGetDeviceSessionIdApi","openFrom","amount_to_pay","message_kind","validateCreditCardRequest","sequence","getCategoriesAPI","defaultRoute","transcript","emptyPreload","notificationPreferences","palmReadings","fromEntries","entries","uiSettings","specialityRoutesKeys","isSpeciality","createCategoryData","_route$translations","categoty","categoties","reduce","routeData","componentsSettings","_objectSpread5","showBanner","needReplaceHeaderSearch","BUGSNAG_KEY","CLIENT_APP_VERSION","plugins","BugsnagPluginReact","enabledBreadcrumbTypes","originalError","sendLogsIfNeed","BUGSNAG_TRACKING_EVENTS","ErrorBoundary","createErrorBoundary","initLogger","LOGGER_ENDPOINT","LOGGER_SECRET","specificValues","pg","vc","voice_call","ka","ps","contactUsLink","contactUs","projectLinks","en","es","pt","appContext","sharePopupKind","pgZendeskDomain","INTRO_DATE_PICKER","INTRO","ABSOLUTE_POPUP","promoCodeTheme","starRateTheme","ADVISOR_PROFILE_BROWSER","propertiesNames","backgroundSecondary","liveChatChannels","voiceCallChannels","borderPrimary","appOverlayBlackColor","smartBannerBackground","addCreditCardZenModeContainerBackgroundColor","noPaymentMethodImgWidth","connectBtnMaxWidth","specialitiesShadow","advisprSpecialitiesMobileDirection","minPriceTextDisplay","durationItemPriceContainerBackgroundColor","recommendedAdvisorPriceFlexDirection","recommendedAdvisorPriceAlign","piceTextContainerMarginLeft","durationOptionXfmLabelColor","durationItemPriceContainerBorderRadius","durationItemSelectedPriceContainerBackgroundColor","advisorPreviewXfmLabelBackground","advisorPreviewXfmLabelBorderRadius","couponSalesPrice","liveModeMinSalesPrice","personalLiveModeMinSalesPrice","live_chat","video_call","contextToChatType","activityFeedMessageType","coupon","pageLoaded","updateRecentlyFavorited","messagesRead","systemMessageUpdate","changePaymentSource","changePaymentSourceBack","clearAdvisorConnectionLost","accepted","forceHangup","manualHangup","buyerFinished","advisorFinished","errorHappened","continue","updateUserData","saveInputsValue","saveButtonActive","contentUpdate","notificationPreferencesLoaded","cashbackStatus","sharePopup","clientSettings","pricingOptionsUpdate","enableSound","loadingVerifications","loadVerificationsError","verificationsLoaded","verificationSelected","jumioEnded","verificationProcessed","verificationStatusUpdated","cleanError","jumioError","setData","categories","_createClass","clearTimer","debounceLoad","debounceTime","delayed","dId","fingerprintjs","fingerprint","delayDeviceId","methodsPath","initResources","initReactI18next","resources","fallbackLng","supportedLngs","InfiniteScroll","loadMore","initialPage","hasMore","threshold","scrollElementRef","dateLabelScrollHandler","_document$getElementB","_scrollElementRef$cur","scrollHeight","scrollTop","clientHeight","contentHeight","createLogger","diff","middleWares","thunk","configureStore","reducer","middleware","getDefaultMiddleware","immutableCheck","serializableCheck","XFM_ADDITIONAL_FREE_SETUP_TIME","XFM_PROGRAM_ACTIVE","DEFAULT_XFM_CREDITS","advisorsState","advisorModeIsActive","modeUntil","_ref$withSearch","cleanFilters","isSignUp","localStorage","setItem","DOMException","QUOTA_EXCEEDED_ERR","removeItem","getItem","canShowAdvisorRate","minReviewsNumberForDisplayingRating","cardsIndexes","indexArray","formattedCredit","str","strLength","strEnding","ending","moreReadableText","moreReadableTextPart","leftText","firstPart","secondPart","secondPartforDotOrNewLine","pathsNameWithLocalization","pathsArray","onHeaderSearchClickAction","qs","currentState","getOnHeaderSearchClickActionState","obj","shift","searchInputRefValue","headerSearchLineButtonDisabled","searchValue","specialityNameOnTwoLine","specialityNameClass","words","firstLine","secondLine","getPropertyValue","middlePhoneOnlyUpSize","Function","additionalOptionsName","_pricingOptions$find","defaultOption","isInteger","getCurrentTimeZone","DateTimeFormat","resolvedOptions","timeZone","convertDateTimeZone","timeZoneString","routesSettings","_obj$translations","flattened","translationObj","flattenRouteSettings","routeMatch","pathnames","matchBannerRoutes","getXfmDefaultMinutes","defaultModesColors","setElementZIndex","decreaseElementZIndex","low","high","advisorsBySlug","advisorMatch","getActiveOffer","_window$store","_window$bonusInfos","offers","trailingZeroDisplay","activePromotions","bonusType","getTimeOnBubble","_ref22","getHours","getMinutes","ampm","formattedHours","padStart","formattedMinutes","pgLogoIcon","pgFooterLogo","kaCouponLogo","pgCouponLogo","maskType","maskUnits","mask","psCouponLogo","clipPath","x1","y1","x2","y2","gradientUnits","stopColor","stopOpacity","offset","DISCOUNT_COUPONS","procent","discountPercent","oneHourTimer","timerEndAction","_ref2$setLeftSeconds","setLeftSeconds","timeIndex","secondsLeft","minutesLeft","_slugMatch$params","knownPath","kp","slugMatch","imageName","extension","SpecialityPropType","analyticsName","iconHomeUrl","iconDetailsUrl","ReviewPropType","FavoriteData","availability","availabilityOnce","videChat","videoChatOnce","voiceCall","voiceCallOnce","textChat","textChatOnce","availabilityNotificationType","ReviewItemsropType","LiveModePropType","nickName","advisorShareLink","accuracyPercent","accuracyReviewersCount","favoriteData","uploadUrl","utilityBillStatus","idScanStatus","utilityBillErrorCode","updateVerificationsArray","currentVerifications","newVerification","purchaseDetailsReducer","createReducer","userVerifications","selectedVerification","jumioProcessing","verificationProcessing","ver","wallet","cannotBeUsedOnThisBrowser","pleaseReEnterTheCardDetailsForSecurityReasons","paymentMethodsListTitleTheme","walletHolderId","light","supportedApplePayVer","supportedNewPOWalletVersion","invisibleScrollbarWidth","mobileClickSource","_location$state2","clientPlatforms","pgapp","poapp","kasamba","psapp","pg_client","client_platform","isOldMobileApp","browser_context","standalone","safari","ios","_window$location$host","host","isPOW","_window$location$host2","process","po","getIcon","appCode","requireContext","_ref2$forAppContext","forAppContext","appTheme","img","nameWithTheme","imgWithTheme","unknowImg","nameWithoutAppContext","obj1","obj2","convertCase","oldObject","converterFunction","newObject","oldKey","newKey","camelCase","snakeCase","lowerCase","convertStringToSnakeCase","letter","replaceAll","_templateObject2","_taggedTemplateLiteral","_templateObject","afChanel","parsedURL","af_channel","nicknameIsValid","cc","pp","iap","ap","adding","availableMethods","jsonString","capitalizeFirstChar","formatCardName","splitedString","cardName","purchaseTypes","side_menu","matchup_promo","getPurchaseType","getPrice","getBonus","getDuration","getAdvisorId","getIsPayg","payg","hideEmailAdress","emailSplit","emailFirstPart","firstNCharts","_userReducer$user","minCreditRequestedCents","localDate","milliSecondsDifference","differenceInMilliseconds","windowConfigUtcDate","utc","addMilliseconds","dateFromServer","getTimezoneOffset","getDataTypes","getDate","getDay","getMonth","getYear","itemCount","calculateDifferenceTypes","years","addCreditPath","clickSourceParam","queryParams","is_affiliate_promo_purchase","asyncLoadScript","scriptURL","existingVariable","script","onerror","recaptchaKey","grecaptcha","enterprise","ready","execute","currentPaymentSource","riskModel","_currentPaymentSource","riskModelConfig","publicKey","riskJsUrl","Risk","publishRiskData","deviceSessionId","ckoGetDeviceSessionIdApi","getTextColorForTheme","caseSensitive","end","isPaygAndNotEligibleToPayAsYouGo","eligibleToPayAsYouGo","clearedObject","isVersionHigher","mobileVersion","app_version","semver","updatedPurchaseURL","purchaseURLSearch","purchaseURLPathName","parsedPurchaseURLSearch","parsedExtraParams","updatedUrlSearch","cookieNames","acceptClick","showCookiesPopover","setshowCookiesPopover","getTranslatedString","stringKey","wpccContainer","wpccContent","wpccIcon","wpccMessage","wpccPrivacy","wpccCompliance","wpccBtn","errorX","closeIcon","renderAlertContent","getlimitedText","readMoreBtnText","extraInfo","getText","textString","limitCharactersText","renderReadMoreBtn","readMoreBtnClick","isTextClamped","textType","getTextLength","getEllipsisTextStyle","WebkitLineClamp","ellipsisTextStyle","setExtraInfo","setIsTextClamped","ellipsisTextRef","elm","ellipsisText","onCheckBoxChange","htmlFor","renderAdvisorService","advisorRecommendContainer","bool","trackBusyCarouselClickAction","recommendedCarouselContainer","recommendedCarouselMobile","recommendedAdvisors","array","wrapperFreeMinutes","advisorFreeMinutes","isUser","isTyping","avatarSrc","timeOnBubble","chatBubbleWrapper","alignSelf","chatBubbleAvatarContainer","Avatar","paddingRight","chatBubbleUser","chatBubbleOther","chatBubbleLoader","chatBubbleLoaderCircle","chatBubbleMessage","chatBubbleMessageText","chatBubbleTime","chatBubbleMessageTimeText","componentNameToLowerCase","projectPrefix","ComponentModule","getContextRenderer","couponStateType","messageNote","couponState","setCouponState","couponIsActive","renderCouponLabelContent","couponBubbleLabelBadgeContainerExpired","couponBubbleLabelBadgeContainerReached","getBadge","Coupon","couponType","discountText","couponBubbleWrapper","couponBubbleAvatarContainer","couponBubbleContainer","couponBubbleMessage","couponBubbleLabelContainer","couponBubbleMessageText","couponBubbleNoteMessage","couponBubbleTime","couponBubbleMessageTimeText","renderCouponBubble","leftSeconds","leftHours","needRenderCouponLabel","couponLabelContainer","colors","prop","getCellContainerClass","orderCellContainer","borderDefault","kaBorderChat","kaBorderVoice","orderSubject","orderDescription","labels","renderOrderTitle","orderCellTitleContainer","orderCellIcon","renderOrderIcon","orderCellSubjectContainer","orderSubjectName","orderCellContentContainer","orderTitleLabelsContainer","labelsHolderContainer","orderCellLabelContainer","orderRightDataContainer","orderDataContainer","orderDescriptionContainer","orderDescriptionIcon","rightArrowContainer","rightArrowIcon","getProjectPrefix","containerId","svgSprite","console","webpackContext","req","webpackContextResolve","__webpack_require__","exports"],"sourceRoot":""}