{"version":3,"sources":["webpack:///./client/components/common/ppgf_inset/ppgf_inset.less","webpack:///./node_modules/@paypalcorp/instance-location/geo sync ^\\.\\/.*$","webpack:///./client/lib/server_params.js","webpack:///./shared/shared_consts.js","webpack:///./client/lib/store.js","webpack:///./client/intl/index.js","webpack:///./client/init_localization_resources.js","webpack:///./shared/helpers/campaign.js","webpack:///./shared/campaign_url.js","webpack:///./client/redux/selectors/login.js","webpack:///./client/lib/venice_bridge.js","webpack:///./client/redux/selectors/venice.js","webpack:///./client/lib/fetch_client.js","webpack:///./client/server_routes.js","webpack:///./shared/helpers/math_helpers.js","webpack:///./client/lib/campaign.js","webpack:///./client/lib/serializer.js","webpack:///./shared/helpers/datetime_helpers.js","webpack:///./client/lib/cookies_utils.js","webpack:///./shared/cookie_key.js","webpack:///./client/redux/modules/send_iframe.js","webpack:///./client/redux/modules/user_txns.js","webpack:///./client/lib/category.js","webpack:///./client/redux/selectors/campaign.js","webpack:///./shared/helpers/obj_helpers.js","webpack:///./client/redux/modules/dnw_transaction.js","webpack:///./client/redux/modules/campaign.js","webpack:///./client/redux/analytics.js","webpack:///./client/lib/fpti_global.js","webpack:///./client/lib/fpti_analytics.js","webpack:///./client/redux/normalizers/end_date.js","webpack:///./client/redux/normalizers/forms/index.js","webpack:///./client/redux/normalizers/forms/edit_tracking.js","webpack:///./client/redux/modules/form.js","webpack:///./client/redux/plugins/form_history.js","webpack:///./client/redux/modules/nop.js","webpack:///./client/redux/modules/funding_sources.js","webpack:///./client/redux/modules/url.js","webpack:///./client/redux/modules/toast_notification.js","webpack:///./client/redux/modules/index.js","webpack:///./client/redux/modules/current_user.js","webpack:///./client/redux/modules/server.js","webpack:///./client/lib/deploy_env.js","webpack:///./client/redux/store.js","webpack:///./client/lib/route_utils.js","webpack:///./client/lib/tab_disabler.js","webpack:///./client/lib/scroll.js","webpack:///./client/components/common/modal/modal.js","webpack:///./client/components/common/back_button/back_button.js","webpack:///./client/components/modal_wizard/modal_wizard.js","webpack:///./client/components/modal_wizard/modal_wizard_container.js","webpack:///./client/lib/fpti_utils.js","webpack:///./client/lib/glimpse.js","webpack:///./client/components/glimpses/edit_glimpse/edit_glimpse.js","webpack:///./client/components/glimpses/edit_glimpse/edit_glimpse_container.js","webpack:///./client/components/common/flat_progress/flat_progress.js","webpack:///./client/components/common/alert/alert.js","webpack:///./client/components/pages/campaign/no_currency_alert/no_currency_alert.js","webpack:///./client/components/common/toast_container/toast_container.js","webpack:///./client/components/pages/campaign/campaign_balance/campaign_balance.js","webpack:///./client/components/pages/campaign/campaign_balance/campaign_balance_container.js","webpack:///./client/components/common/transitions/reveal.js","webpack:///./client/redux/modules/txns.js","webpack:///./client/components/contributions_list/contributions_list.js","webpack:///./client/redux/selectors/contributions.js","webpack:///./client/components/contributions_list/owner_activity_list.js","webpack:///./client/components/common/avatar/avatar.js","webpack:///./shared/helpers/name_helpers.js","webpack:///./client/components/common/avatar/avatar_container.js","webpack:///./shared/helpers/string_helpers.js","webpack:///./client/components/contributions_list/rows/activity_row.js","webpack:///./client/components/glimpses/edit_glimpse/activity/crowdfunding_activity.js","webpack:///./client/components/glimpses/edit_glimpse/organizer_update_detail/organizer_update_detail.js","webpack:///./client/components/contributions_list/rows/update_row.js","webpack:///./client/components/common/pictograms/pictograms.js","webpack:///./client/components/glimpses/edit_glimpse/updates/updates_activity.js","webpack:///./client/components/crowdfunding_campaign_header/helper_components/end_date_badge/index.js","webpack:///./client/components/crowdfunding_campaign_header/crowdfunding_campaign_header.js","webpack:///./client/components/crowdfunding_campaign_header/crowdfunding_campaign_header_container.js","webpack:///./client/components/glimpses/edit_glimpse/manage_cf/manage_cf.js","webpack:///./client/components/glimpses/edit_glimpse/manage_cf/manage_cf_container.js","webpack:///./client/components/glimpses/edit_glimpse/activity/activity.js","webpack:///./client/components/common/charity_card/charity_card.js","webpack:///./client/components/common/transitions/cross_fade.js","webpack:///./client/lib/image_utils.js","webpack:///./client/components/common/image_upload_field/image_upload_field.js","webpack:///./shared/helpers/poolCategory.js","webpack:///./shared/helpers/image_helper.js","webpack:///./client/components/common/cropper/cropper.js","webpack:///./client/components/crowdfunding_image_adjust/crowdfunding_image_adjust.js","webpack:///./client/components/strip/strip.js","webpack:///./client/components/common/image_file_field/image_file_field.js","webpack:///./client/components/crowdfunding_image_preview/crowdfunding_image_preview.js","webpack:///./client/components/crowdfunding_cover_image/crowdfunding_cover_image.js","webpack:///./client/components/common/collapsible_text/collapsible_text.js","webpack:///./client/components/pages/campaign/campaign_details/campaign_details.js","webpack:///./client/components/pages/campaign/campaign_details/campaign_details_container.js","webpack:///./client/components/crowdfunding_tab_layout/crowdfunding_tab_layout.js","webpack:///./client/components/crowdfunding_tab_layout/crowdfunding_tab_layout_container.js","webpack:///./client/components/common/count_down/count_down.js","webpack:///./client/lib/campaign_url.js","webpack:///./client/redux/selectors/share.js","webpack:///./client/lib/share.js","webpack:///./client/components/common/share_buttons/clipboard_sharing.js","webpack:///./client/components/common/share_buttons/clipboard_sharing_container.js","webpack:///./client/components/common/share_buttons/share_buttons.js","webpack:///./client/components/common/share_button/share_button.js","webpack:///./client/lib/generate_share_message.js","webpack:///./client/components/common/share_button/share_button_container.js","webpack:///./client/components/pages/crowdfunding/donate_button/donate_button.js","webpack:///./client/components/pages/crowdfunding/donate_button/donate_button_container.js","webpack:///./client/components/common/first_child/first_child.js","webpack:///./client/components/common/copy_box/copy_box.js","webpack:///./client/components/common/share_campaign_compact/share_campaign_compact.js","webpack:///./client/components/common/share_campaign_compact/share_campaign_compact_container.js","webpack:///./client/components/pages/campaign/report_link/report_link.js","webpack:///./client/components/pages/campaign/report_link/report_link_container.js","webpack:///./client/components/common/transitions/modal_animations/modal_animations.js","webpack:///./client/components/common/ppgf_inset/ppgf_inset.js","webpack:///./client/components/common/charity_details_modal/charity_details_modal.js","webpack:///./client/components/common/standard_error/standard_error.js","webpack:///./client/components/common/payments_token_sheet/payments_token_sheet.js","webpack:///./shared/helpers/helperDisclaimer.js","webpack:///./client/components/common/mock_text/mock_text.js","webpack:///./client/components/contributions_list/rows/public_contribution_row.js","webpack:///./client/components/contributions_list/public_contributions_list.js","webpack:///./client/components/contributions_list/helpers/index.js","webpack:///./client/components/pages/crowdfunding/enrich_charity_card/enrich_charity_card.js","webpack:///./client/lib/enrich_charity_utils.js","webpack:///./client/components/pages/crowdfunding/enrich_charity_card/enrich_charity_card_container.js","webpack:///./client/components/common/header_footer/useMoveDOMElementToRef.js","webpack:///./client/components/common/header_footer/index.js","webpack:///./client/images/rocket.svg","webpack:///./client/images/pools_logo.svg","webpack:///./client/components/common/icon/icon.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_banner/crowdfunding_banner.js","webpack:///./client/components/common/paypal_page/paypal_page.js","webpack:///./client/components/common/paypal_page/paypal_page_container.js","webpack:///./client/components/profile_cover/profile_cover.js","webpack:///./client/components/profile_cover/profile_cover_container.js","webpack:///./client/components/avatar_collection/avatar_collection.js","webpack:///./client/components/crowdfunding_detail_view/crowdfunding_detail_view.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_preview/crowdfunding_preview_container.js","webpack:///./client/components/common/standard_dialog/standard_dialog.js","webpack:///./client/lib/form_utils.js","webpack:///./client/lib/validators.js","webpack:///./client/components/common/date_input_box/date_input_box.js","webpack:///./client/components/common/currency_input/currency_input_box.js","webpack:///./client/components/glimpses/edit_glimpse/edit_main_cf/partials/privateEditForm.js","webpack:///./client/lib/cfpb.js","webpack:///./client/components/glimpses/edit_glimpse/transfer_review_box/transfer_review_box.js","webpack:///./client/components/glimpses/edit_glimpse/transfer_review_box/transfer_review_box_container.js","webpack:///./client/components/glimpses/edit_glimpse/delete_error/delete_review.js","webpack:///./client/components/glimpses/edit_glimpse/edit_main_cf/partials/delete_fundraiser.js","webpack:///./client/components/glimpses/edit_glimpse/edit_main_cf/partials/personal_or_charity_edit.js","webpack:///./client/components/glimpses/edit_glimpse/edit_main_cf/edit_main_cf.js","webpack:///./shared/lengths.js","webpack:///./client/lib/end_date_validators.js","webpack:///./client/components/glimpses/edit_glimpse/edit_main_cf/edit_main_cf_container.js","webpack:///./client/components/glimpses/edit_glimpse/edit_error/edit_error.js","webpack:///./client/components/glimpses/edit_glimpse/edit_error/edit_error_container.js","webpack:///./client/lib/ensighten_analytics.js","webpack:///./client/components/glimpses/chip_in_glimpse/pledge/pledge.js","webpack:///./client/components/glimpses/chip_in_glimpse/pledge/pledge_container.js","webpack:///./client/components/glimpses/chip_in_glimpse/pledge/pledge_success/pledge_success.js","webpack:///./client/components/glimpses/chip_in_glimpse/pledge/pledge_success/pledge_success_container.js","webpack:///./client/lib/global.js","webpack:///./client/components/common/country_blocked/country_blocked.js","webpack:///./client/components/common/country_blocked/country_blocked_container.js","webpack:///./client/components/common/campaign_eligibility/campaign_eligibility.js","webpack:///./client/lib/create_campaign_eligibility.js","webpack:///./client/components/common/share_campaign_textarea/share_campaign_textarea.js","webpack:///./client/components/common/share_campaign_textarea/share_campaign_textarea_container.js","webpack:///./client/components/common/half_sheet/half_sheet.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_share/partials/fundraiser_share_info.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_share/crowdfunding_share.js","webpack:///./client/components/common/prevent_navigation/prevent_navigation.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_share/crowdfunding_share_container.js","webpack:///./client/components/glimpses/edit_glimpse/delete_error/delete_error.js","webpack:///./client/components/glimpses/edit_glimpse/delete_error/delete_error_container.js","webpack:///./client/components/glimpses/edit_glimpse/transfer/transfer.js","webpack:///./client/components/glimpses/edit_glimpse/transfer/transfer_container.js","webpack:///./client/components/glimpses/edit_glimpse/transfer_complete/transfer_complete.js","webpack:///./client/components/glimpses/edit_glimpse/transfer_complete/transfer_complete_container.js","webpack:///./client/lib/is_owner.js","webpack:///./client/routes/edit.js","webpack:///./client/components/glimpses/edit_glimpse/delete_organizer_update/delete_update_activity.js","webpack:///./client/redux/modules/organizer_update.js","webpack:///./client/components/glimpses/edit_glimpse/delete_organizer_update/delete_update_activity_container.js","webpack:///./client/components/glimpses/edit_glimpse/post_update_cf/post_update_cf.js","webpack:///./client/lib/organizerupdate.js","webpack:///./client/components/glimpses/edit_glimpse/post_update_cf/post_update_cf_container.js","webpack:///./client/components/common/share_update_activity/share_update_activity.js","webpack:///./client/lib/share_update.js","webpack:///./client/components/common/share_update_activity/share_update_activity_container.js","webpack:///./client/components/pages/crowdfunding/postupdate_share/postupdate_share.js","webpack:///./client/components/pages/crowdfunding/postupdate_share/postupdate_share_container.js","webpack:///./client/components/glimpses/edit_glimpse/post_update_error/post_update_error.js","webpack:///./client/components/glimpses/edit_glimpse/post_update_error/post_update_error_container.js","webpack:///./client/components/glimpses/edit_glimpse/viewupdates/view_updates_activity.js","webpack:///./client/components/glimpses/edit_glimpse/viewupdates/view_updates_container.js","webpack:///./client/components/glimpses/edit_glimpse/organizer_update_detail/organizer_update_detail_container.js","webpack:///./client/routes/post_update.js","webpack:///./client/routes/send.js","webpack:///./client/lib/contribute.js","webpack:///./client/routes/guest.js","webpack:///./client/components/pages/campaign_not_found/campaign_not_found.js","webpack:///./client/components/pages/campaign_not_found/campaign_not_found_container.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_details/crowdfunding_details_container.js","webpack:///./client/components/pages/hub/left_side_hub_campaign/left_side_hub_campaign.js","webpack:///./client/components/pages/hub/empty_hub/empty_hub.js","webpack:///./client/components/pages/create_fundraiser_error/create_fundraiser_error.js","webpack:///./client/components/pages/create_fundraiser_error/create_fundraiser_error_container.js","webpack:///./client/components/pages/create/create.js","webpack:///./client/components/common/create_card/create_card.js","webpack:///./client/components/pages/introduction/partials/private.js","webpack:///./client/components/pages/introduction/partials/personal.js","webpack:///./client/components/pages/introduction/partials/charity.js","webpack:///./client/components/pages/introduction/partials/disclaimer.js","webpack:///./client/components/pages/introduction/introduction.js","webpack:///./client/components/pages/introduction/introduction_container.js","webpack:///./client/components/pages/create/create_type_small_group/create_type_small_group.js","webpack:///./client/components/pages/hub/zero_fundraiser/zero_fundraiser.js","webpack:///./client/lib/create_util.js","webpack:///./client/components/pages/hub/zero_fundraiser/zero_fundraiser_container.js","webpack:///./client/components/pages/hub/fundraiser_skeleton/index.js","webpack:///./client/components/pages/hub/zero_fundraiser_or_skeleton/index.js","webpack:///./client/components/pages/hub/manage_all_page/manage_all_page.js","webpack:///./client/components/pages/hub/manage_all_page/manage_all_page_container.js","webpack:///./client/components/pages/create/create_container.js","webpack:///./client/components/pages/create/create_type_small_group/create_type_small_group_container.js","webpack:///./client/redux/selectors/cip.js","webpack:///./client/routes/create.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_basics_small_group/partials/personalBasicsForm.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_basics_small_group/partials/privateBasicsForm.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_basics_small_group/partials/charityBasicsForm.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_basics_small_group/crowdfunding_basics.js","webpack:///./client/lib/disclaimer_utils.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_basics_small_group/crowdfunding_basics_container.js","webpack:///./client/components/common/type_ahead_search/type_ahead_search.js","webpack:///./client/components/horizontal_scroller/HorizontalScroller.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_nonprofit/crowdfunding_nonprofit.js","webpack:///./client/redux/selectors/charity.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_nonprofit/crowdfunding_nonprofit_container.js","webpack:///./client/redux/modules/charity.js","webpack:///./client/components/common/tip_box/tip_box.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_story/partials/private.js","webpack:///./client/components/pages/crowdfunding/tip_box_personal/tip_box_personal.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_story/crowdfunding_story.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_story/crowdfunding_story_container.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_select_cover/partials/custom_image.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_select_cover/partials/private_cover.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_select_cover/partials/personal_charity_cover.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_select_cover/partials/default_images.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_select_cover/crowdfunding_select_cover.js","webpack:///./client/lib/user_consent.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_cover/partials/position_photo.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_cover/partials/add_photo.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_cover/crowdfunding_cover.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_cover/crowdfunding_cover_container.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_publish/create_publish_container.js","webpack:///./client/routes/create_crowdfunding.js","webpack:///./client/routes/hub.js","webpack:///./client/routes/campaign.js","webpack:///./client/routes/index.js","webpack:///./client/router.js","webpack:///./client/components/session_timeout/session_timeout.js","webpack:///./client/components/session_timeout/session_timeout_container.js","webpack:///./client/lib/errors.js","webpack:///./client/lib/datadog.js","webpack:///./client/app.js","webpack:///./client/components/common/share_button/share_button.modules.less","webpack:///./client/components/pages/introduction/introduction.less","webpack:///./client/components/pages/crowdfunding/crowdfunding_select_cover/crowdfunding_select_cover.less","webpack:///./client/components/common/share_update_activity/share_update_activity.less","webpack:///./client/components/pages/create/create.less","webpack:///./client/components/pages/crowdfunding/crowdfunding_basics/crowdfunding_basics.less","webpack:///./client/components/pages/crowdfunding/crowdfunding_cover/crowdfunding_cover.less","webpack:///./client/components/glimpses/edit_glimpse/edit_main_cf/edit_main_cf.less","webpack:///./client/components/common/transitions/reveal.less","webpack:///./client/components/common/transitions/cross_fade.less","webpack:///./client/components/crowdfunding_detail_view/crowdfunding_detail_view.less","webpack:///./client/components/pages/crowdfunding/crowdfunding_share/partials/fundraiser_share_info.less","webpack:///./client/components/pages/crowdfunding/crowdfunding_share/crowdfunding_share.less","webpack:///./client/components/glimpses/edit_glimpse/activity/activity.less","webpack:///./client/components/contributions_list/rows/public_contribution_row.less","webpack:///./client/components/crowdfunding_campaign_header/crowdfunding_campaign_header.less","webpack:///./client/components/glimpses/chip_in_glimpse/pledge/pledge.less","webpack:///./client/components/pages/crowdfunding/crowdfunding_story/crowdfunding_story.less","webpack:///./client/components/pages/campaign/campaign_details/campaign_details.less","webpack:///./client/components/common/type_ahead_search/type_ahead_search.less","webpack:///./client/components/pages/crowdfunding/tip_box_personal/tip_box_personal.less","webpack:///./client/components/common/share_campaign_compact/share_campaign_compact.less","webpack:///./client/components/common/payments_token_sheet/payments_token_sheet.less","webpack:///./client/components/pages/hub/manage_all_page/manage_all_page.less","webpack:///./client/components/pages/crowdfunding/crowdfunding_nonprofit/crowdfunding_nonprofit.less","webpack:///./client/components/common/modal/modal.less","webpack:///./client/components/common/back_button/back_button.less","webpack:///./client/components/modal_wizard/modal_wizard.less","webpack:///./client/components/glimpses/edit_glimpse/manage_cf/manage_cf.less","webpack:///./client/components/common/flat_progress/flat_progress.less","webpack:///./client/components/pages/campaign/no_currency_alert/no_currency_alert.less","webpack:///./client/components/common/alert/alert.less","webpack:///./client/components/pages/campaign/campaign_balance/campaign_balance.less","webpack:///./client/components/contributions_list/contributions_list.less","webpack:///./client/components/common/avatar/avatar.less","webpack:///./client/components/contributions_list/rows/activity_row.less","webpack:///./client/components/glimpses/edit_glimpse/updates/updates.less","webpack:///./client/components/contributions_list/rows/update_row.less","webpack:///./client/components/glimpses/edit_glimpse/organizer_update_detail/organizer_update_detail.less","webpack:///./client/components/common/pictograms/pictograms.less","webpack:///./client/components/common/charity_card/charity_card.less","webpack:///./client/components/crowdfunding_cover_image/crowdfunding_cover_image.less","webpack:///./client/components/common/image_upload_field/image_upload_field.less","webpack:///./client/components/crowdfunding_image_adjust/crowdfunding_image_adjust.less","webpack:///./client/components/common/cropper/cropper.less","webpack:///./client/components/crowdfunding_image_preview/crowdfunding_image_preview.less","webpack:///./client/components/strip/strip.less","webpack:///./client/components/common/collapsible_text/collapsible_text.less","webpack:///./client/components/crowdfunding_tab_layout/crowdfunding_tab_layout.less","webpack:///./client/components/common/count_down/count_down.less","webpack:///./client/components/common/share_buttons/share_buttons.less","webpack:///./client/components/pages/crowdfunding/donate_button/donate_button.less","webpack:///./client/components/common/copy_box/copy_box.less","webpack:///./client/components/pages/campaign/report_link/report_link.less","webpack:///./client/components/common/charity_details_modal/charity_details_modal.less","webpack:///./client/components/common/standard_error/standard_error.less","webpack:///./client/components/common/mock_text/mock_text.less","webpack:///./client/components/pages/crowdfunding/enrich_charity_card/enrich_charity_card.less","webpack:///./client/components/common/paypal_page/paypal_page.less","webpack:///./client/components/common/header_footer/index.less","webpack:///./client/components/pages/crowdfunding/crowdfunding_banner/crowdfunding_banner.less","webpack:///./client/components/common/icon/icon.less","webpack:///./client/components/profile_cover/profile_cover.less","webpack:///./client/components/avatar_collection/avatar_collection.less","webpack:///./client/components/common/standard_dialog/standard_dialog.less","webpack:///./client/components/common/dialog/dialog.less","webpack:///./client/components/glimpses/edit_glimpse/transfer_review_box/transfer_review_box.less","webpack:///./client/components/glimpses/edit_glimpse/delete_error/delete_review.less","webpack:///./client/components/common/campaign_eligibility/campaign_eligibility.less","webpack:///./client/components/glimpses/edit_glimpse/transfer/transfer.less","webpack:///./client/components/glimpses/edit_glimpse/transfer_complete/transfer_complete.less","webpack:///./client/components/glimpses/edit_glimpse/post_update_cf/post_update_cf.less","webpack:///./client/components/glimpses/edit_glimpse/delete_organizer_update/delete_update_activity.less","webpack:///./client/components/pages/crowdfunding/postupdate_share/postupdate_share.less","webpack:///./client/components/glimpses/edit_glimpse/post_update_error/post_update_error.less","webpack:///./client/components/glimpses/edit_glimpse/viewupdates/view_updates.less","webpack:///./client/components/pages/campaign_not_found/campaign_not_found.less","webpack:///./client/components/pages/hub/left_side_hub_campaign/left_side_hub_campaign.less","webpack:///./client/components/pages/hub/empty_hub/empty_hub.less","webpack:///./client/components/pages/hub/zero_fundraiser_or_skeleton/fundraiser_skeleton.less","webpack:///./client/components/pages/create_fundraiser_error/create_fundraiser_error.less","webpack:///./client/components/pages/create/create_type_small_group/create_type_small_group.less","webpack:///./client/components/common/create_card/create_card.less","webpack:///./client/components/pages/hub/fundraiser_skeleton/fundraiser_skeleton.less","webpack:///./client/components/horizontal_scroller/horizontal_scroller.less","webpack:///./client/components/common/tip_box/tip_box.less","webpack:///./client/components/session_timeout/session_timeout.less"],"names":["module","exports","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","_cache","getJSONFromScript","scriptId","element","document","getElementById","parsedElement","JSON","parse","innerHTML","_typeof","Array","isArray","concat","error","getDataAttr","dataKey","body","getAttribute","SCRIPT_IDS","ALLOWED_IMAGE_TYPES","UNALLOWED_ENCODED_IMAGE_TYPES","USER_AGREEMENT_LINK_COUNTRIES","AMOUNT_TYPES","CROWDFUNDING_GOAL_AMOUNT","EUR","MAX_AMOUNT","MIN_AMOUNT","AUD","CAD","GBP","NOK","DKK","USD","PLN","SEK","COVER_IMAGE_UPLOAD_ERRORS","SUBSCRIPTION_TYPES","WALLET","CASH","CASH_PLUS","POOLS_CAMPAIGN_TYPES","join","CIP_ELIGIBILITY_CODES","USER_REACHED_CAMPAIGN_CREATION_LIMIT","RUGS_CHECK_HIT_WITH_DC_NEED_MORE_DATA","RUGS_CHECK_HIT_WITH_DC_MANUAL_REVIEW","RUGS_CHECK_HIT_WITH_DC_PENDING_VERIFICATION","RUGS_CHECK_HIT_WITH_DC_PENDING","RUGS_CHECK_HIT_FAILED","RUGS_CHECK_FAILED","NO_DESCRIPTION_ERRORS","DEXTER_SPECIFIC_ERRORS","CIP_ERROR_CODE","ELIGIBILITY_STATUS","PRODUCT_TYPES","DIRECT","INTEGRATION_IDENTIFIER","PPGF_ENROLLED_LINKS","freeze","US","CA","GB","IE","AU","INTEGRATION_IDENTIFIER_BY_COUNTRY","AT","BE","DE","DK","ES","FR","GR","IT","LU","NL","NO","PL","PT","COUNTRIES_SMALL_LEGAL_TEXT_GNC","TNC_COUNTRIES","GN_DISCLAIMERS","consumerLink","merchantLink","termsAndConditions","userAgreement","donationDeliveryPolicy","SE","GNC_DISCLAIMERS","reassigningConditionsUrl","termsUrl","failToDonateUrl","timeframeUrl","IR","INSTRUMENT_EVENTS","INSTRUMENT_TAGS","KEY_PRESS_EVENTS","TOAST_NOTIFICATIONS","SCREEN_NAME_MAPPING","types","basics","story","cover","publish","CROWDFUNDING_TAB_PRESS","POOLS_STATUS","DEAFULT_COVER_IMAGES","SOLID_BACKGROUND_IMAGE","EXTEND_SESSION","URL","SHOW_TIMEOUT_SCREEN_AT","SHOW_EU_TIMEOUT_SCREEN_AT","RESET_TIMER_TIMEOUT","SESSION_TIMEOUT","POOL_TYPE","SPRIG_SURVEY","_defineProperty","USER_CONSENT_STATUS","PENDING","COMPLETED","CHARITY_INSTRUMENTATION","NPO_LINK_PRESSED","CHARITY_LINK_PRESSED","READMORE_LINK_PRESSED","SHOWLESS_LINK_PRESSED","PPGF_TNC_LINK_PRESSED","FUNDRAISER_SCREEN_SHOWN","COLLAPSIBLE_STATE","COLLAPSED","UNCOLLAPSED","AUDIENCE","getStore","worldReadyMarketData","getDefaultCurrencyCode","defaultCurrencyCode","getTimeZone","locality","timezone","getPlainWorldReadyContext","worldReadyLocale","WorldReady","getMaximumFractionDigits","value","maximumFractionDigits","Number","isInteger","formatCurrency","_ref","currencyCode","additionalConfig","_ref$worldReady","worldReady","number","isNaN","floatValue","parseFloat","CurrencyFormat","_objectSpread","currency","format","formatDate","options","date","Date","DateTimeFormat","style","timeZone","legacyFormatDate","arguments","length","undefined","formatMessage","contentId","formatOptions","MessageFormat","formatName","worldready","name","NameFormat","nameRegion","country","useIntl","useContext","WorldReadyContext","formatPercent","numberFormatter","NumberFormat","getI18n","filePath","path","replaceAll","key","values","load","getMinMaxAmount","campaign","baseUrl","hostname","requestUri","campaignUrl","campaignId","meDomain","shortenedCampaign","campaignPath","encodeCampaignId","replace","test","base62Encode","decodeCampaignId","base62Decode","toString","dexterURL","returnUrl","redirectUrl","firstComplianceUrl","nextComplianceUrl","validateImagePath","some","extension","toLowerCase","endsWith","loginInfoSelector","state","login_info","countrySelector","loginUrlSelector","returnUri","onboardData","_ref$showGuest","showGuest","createSelector","loginInfo","baseLoginUrl","login_url","localeParams","locale","country_code","encodedURI","encodeURIComponent","guest","ctxId","mayfly_key","loginUrl","logoutUrlSelector","_ref2","_ref2$returnUri","baseLogoutUrl","logout_url","isLoggedInSelector","logged_in","veniceBridge","window","venice","callBridgeFunction","funcName","bridge","_len","args","_key","apply","mobileAppSelector","mobile_app","fromVeniceSelector","mobileApp","from_app","can_manage","canShareVeniceSelector","can_share","_fetchClient","cookieMiddleware","request","credentials","response","XHRMiddleware","headers","handleAuthFailure","fromVenice","location","href","Promise","reject","fetchClient","csrfToken","store","createClient","addMiddleware","fetchPlusJson","authFailure","bind","ok","status","json","then","fetchPlusCsrf","generatePathFunction","route","ids","clonedRoute","GLOBAL_CONSTS","forEach","index","api","end","withdraw","chip_in","create_payments_token","get_payments_token_transaction","organizer_update","contributors","transactions","funding_sources","balances","charity","getCharities","inverseLerp","start","safeNumber","parsedValue","_isNil","getCampaignTotalValue","currentValue","pledge","getNonDiscoverable","discoverable","serializeCampaignToServer","campaignData","_ref$alwaysIncludePan","alwaysIncludePan","user_legal_agreement_version","serializedData","campaign_type","amount_type","amount","background_image","background_image_filename","background_pan","description","event_name","postal_code","end_date","toISOString","goal","gradient_color","title","share_progress","share_contributors","share_contributions","npid","non_discoverable","categories","category","daysUntilToday","startDate","daysFromTo","daysFromToday","endDate","hoursFromToday","Math","floor","endOfDay","getFullYear","getMonth","getDate","formatTime","hours","minutes","detailDaysFromToday","timestamp","today","days","seconds","delta","abs","saveTxnInCookie","userId","txn","userTxns","userTxnsCookiesKey","txnsCookieKey","rawUserTxns","Cookies","get","decodeURIComponent","err","push","userTxnExpiryTime","getTime","set","stringify","expires","FINISH_IFRAME_SEND_SUCCESSFULLY","DEFAULT_STATE","loading_done","iframe_loading","sending_iframe","send_successful","send_done","gs_bypass","search","indexOf","INFLATE","i18nBase","getTranslatedCategoryList","_get","listItem","label","sortKey","primaryText","sort","catA","catB","isValidCategory","_find","getCategoryLabel","campaignCategoryValue","categoryLabel","getCategoryDefaultCover","categoryList","selectedCategory","getMainCategory","crowdfundingCategoryKey","filterDepreciatedCategory","isNewCategoryEnabled","filter","includes","sortCategory","a","b","localeCompare","CROWD_FUNDING","getCampaigns","getCampaignFromProps","getLastCreatedCampaignSelector","last_creation_id","getCampaignSelector","getNewCampaignSelector","campaigns","NEW_CAMPAIGN_ID","isValidCampaign","obj","deleted","allCampaignsSelector","allCampaigns","fundraisersExpiringIn48Hours","fundraisersEndedWithBalance","activeFundraisersMoreThan48Hours","closedFundraisers","hoursToExpire","campaignBalance","moneybox_amount","event_status","campaign1","campaign2","valueOf","openFundraisers","getAllCampaign","isGNSelector","hasCrowdfinding","Boolean","getCampaignCategorySelector","getPersonalizationStudioBannerSelector","personalizationStudio","banner","getAllowEntryBannerSelector","bannerIcon","bannerButtonText","bannerLink","bannerTitleText","initialState","isLoading","buildTransaction","config","transaction_details","anonymous","contributor_name","campaign_id","contributor_id","payer_id","note","note_to_payee","createDNWTransaction","hasFullPageDonationRedirect","dispatch","getState","setIsLoading","routes","method","token","type","Donation","Checkout","onComplete","onCompleteResponse","_ref3","sender","createDNWTransactionSuccess","full_name","catch","createDNWTransactionFailure","renderTo","payload","prevTxnCount","SET_CURRENT_CAMPAIGN_ID","CREATE","DELETE","SET_DATA","CAMPAIGN_CREATED","FINISH_CHIP_IN_SUCCESSFULLY","FINISH_WITHDRAW_SUCCESSFULLY","SET_TXN_LIST","resetExpiration","persistExpiresAt","setInCampaign","startRemoteOperation","finishRemoteOperation","failedCampaignRemoteOperation","create","campaignType","_getState$current_use","_getState$charity","owner","current_user","primary_currency_code","npoCharity","setData","data","parseInt","share_amount","createRemotely","serialize","newId","trackImpression","pageName","console","updateRemotely","returnValue","existingKeys","colocate","preview","can_chip_in","background_thumbnail_image","updateData","deleteRemotely","deleteCampaign","PAGE_NAMES","EVENT_NAMES","getCurrentCampaignId","pathname","find","sanitizePathnameForFpti","fptiPageName","getCurrentCampaign","currentCampaignId","getCampignId","getFlow","getCRID","getEventSource","getUserAccountCountry","getUserAccountType","ANALYTICS_TYPES","noop","PAYPAL","emptyAnalytics","recordClick","recordImpression","analytics","Analytics","device_info","isMobile","paypalAnalyticsSetupCompleted","_initialized","instance","_q","ev","shift","track","_flushQueue","trackEventNameClick","dismiss_method","trackClick","clickName","product","enhancedPayload","globalProperties","charity_type","audience","flow","charityname","crid","event_source","acct_cntry","account_type","comp","fundraiser_expired","addGlobalProperties","_ref$data","fpti","pgln","page","pglk","pgrp","link","_trackClick","_ref2$campaignId","_ref2$flow","_ref2$poolOwner","poolOwner","_ref2$erpg","erpg","_ref2$eccd","eccd","_ref2$contingency","contingency","_ref2$amount","_ref2$currency","_ref2$event_name","_ref2$charityname","_ref2$charity_name","charity_name","_ref2$npid","_ref2$crid","_ref2$error_code","error_code","_ref2$screen","screen","_ref2$error_desc","error_desc","_ref2$event_type","event_type","_ref2$status","_ref2$state","_ref2$count","count","_ref2$rank","rank","_ref2$update_state","update_state","_ref2$fundraiser_expi","_ref2$context_id","context_id","others","_objectWithoutProperties","_excluded","cmpn_id","encr_rcvr_id","platform","pool_id","csci","getAudience","tagKey","txnAmt","txn_amt","_trackImpression","_enqueueEvent","previousValue","allValues","edit_tracking","shareContributionsAmount","shareProgress","edit_end_date","create_basics","formReducer","formName","normalize","normalizers","plugin","action","savedState","cloneDeep","reducer","START_FUNDING_SOURCES","FINISH_FUNDING_SOURCES","FAILED_FUNDING_SOURCES","setFundingSources","onUpdateQueryParams","urlData","_urlData$query","query","updateQueryParams","SHOW","HIDE","show","toastId","message","hide","combineReducers","routing","routerReducer","form","operatingRemotely","newTxns","txns","list","_toConsumableArray","transactionSummary","current_value","total_amount","net_amount","total_available_balance","_action$payload","organizerUpdate","_state$action$payload","_state$action$payload2","_state$action$payload3","organizerUpdateList","items","totalOrganiserUpdates","total","updatedData","ins","fou_id","_state$action$payload4","_state$action$payload5","_state$action$payload6","newList","previousList","_state$action$payload7","_state$action$payload8","organizerUpdateData","udpatedList","reduce","updatableList","newActvities","activitiyList","activities","_action$payload2","start_date","can_donate","nonprofit_id","INFLATE_USER_TXNS","totalInflatedAmount","sum","totalMoneyBoxInflatedAmount","LOCATION_CHANGE","_action$payload$txn","contributionsCount","totalTransactions","total_number_of_contributions","total_number_of_transactions","txn_count","selectedCampaignId","user_txns","newTxn","paymentId","pending","owner_chip_in","contributor_photo","photo","send_iframe","iframe_error","payment_id","has_campaigns","server","isReturningFromWallet","queryParams","dnw_transaction","nop","flags","links","user_config","features","group_features","social","categoryData","can_pledge","rampdown","isContributionEligible","deployEnv","preloadSendValues","geo","toast_notification","DEPLOY_ENV_DEFAULT","isDev","isTest","isStage","isSandbox","isLive","VALID_DEPLOY_ENV_FLAGS","getDeployEnv","deployEnvStore","entries","_slicedToArray","flag","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","middleware","routerMiddleware","browserHistory","thunkMiddleware","next","lastPathName","_sanitizePathnameForF","decodedCampaignId","isCrowdfundingCampaign","_includes","setTimeout","trackCPL","configureStore","callback","createStore","applyMiddleware","subscribe","newStore","jsonObject","newObject","updatedJsonString","assign","appendPath","basepath","appendage","glimpselessRoute","glimpseName","rx","RegExp","glimpseRoute","currentGlimpseName","subPathString","getStepName","glimpseRouteIndex","findIndex","assertInitialStep","flowName","initialStep","nextState","stepName","assignActionToRouterParams","params","tabbedDisabledNodes","disableTabs","node","getElementsByTagName","decendant","tabIndex","getSiblings","siblings","sibling","nextSibling","isWebkit","documentElement","bodyScrollY","disableBodyScrollability","modalNode","nodes","siblingNodes","scrollY","prototype","call","transform","fixedNodes","querySelectorAll","i","fixedNode","xform","originalTransform","classList","add","disableTabsForNodes","enableBodyScrollability","remove","scrollTo","scrollToTop","Tweenable","tween","from","x","scrollLeft","y","scrollTop","to","duration","easing","step","currentState","finish","ENTER_KEY","Modal","_React$Component","_this","_classCallCheck","_assertThisInitialized","_callSuper","props","onClose","container","event","keyCode","which","handleClose","addEventListener","onKeyUp","removeEventListener","_inherits","this","registerForEscKey","glimpse","setAttribute","unregisterForEscKey","removeAttribute","_this2","_this$props","isWideView","progressPercent","showProgressBar","isPadding","hasTopPart","leftHeader","showClose","React","createElement","styleName","ref","aria-modal","role","aria-label","clsx","className","showSpinner","data-autofocus-inside","hideTopWithoutHeader","Fragment","data-testid","onClick","onKeyPress","_CloseIcon","size","_ProgressMeter","max","children","Component","cssModules","styles","allowMultiple","BackButton","data-pa-click","_ArrowLeftIcon","ModalWizard","modal","attempts","removeStaleClass","successCallback","_step","confirmNavigation","previousURL","router","newProps","child","Children","only","newChild","movingForward","hideClose","hideBack","handleBack","transitionNameSuffix","transitionNames","enter","enterActive","leave","leaveActive","ReactCSSTransitionGroup","transitionName","transitionEnterTimeout","transitionLeaveTimeout","component","cloneElement","onScrollTop","handleScrollTop","withRouter","connect","trackFPTI","eventType","updateState","order","charityName","charityId","fundraiserExpired","fptiPayload","organizerUpdateState","organizerUpdateTotal","stateValue","glimpseHistories","firstInGlimpse","trackEnter","getLocationGlimpse","trackChange","prevState","historyStack","stackItemIndex","slice","forward","exitGlimpse","routePath","manageBackForNewTab","currentPathName","go","goBack","isForward","EditGlimpse","reloadTransactions","getRoutes","routeName","errorObject","_this$props$params","isDelete","progressValue","min","goalReached","FlatProgress","dataTestId","detailsPageSpace","_useIntl","percent","totalAmount","goalAmount","formattedGoalAmount","formattedTotalAmount","amountOrPercent","displayTotalAmount","amountOrPercentContentKey","_CaptionText","clampAtLine","titleIcon","_HeadingText","showProgress","steps","_BodyText","Message","defaultProps","Alert","i18n","NoCurrencyAlert","currencyUrl","paypalDomain","target","ToastContainer","visible","delayTime","setState","_this$props2","_this$props2$duration","isSuccess","_Toast","zIndex","campaign_balance","moneyboxAmount","netAmount","leftAlignFlag","as","_Tooltip","strong","injectWorldReady","CampaignBalance","RevealTransition","showMoreTxns","pageSize","transactionType","contribution_type","finishShowMoreActivities","finishShowMoreTxns","ContributionList","showMoreState","pagesShown","txnsPerPage","contributions","onShowMore","resp","hideEmpty","elements","contribution","shouldShowDateRowBetweenContributions","isDate","prevContribution","thisDate","prevDate","toDateString","shouldSkipRenderingList","shownElements","shownContributions","showDaysRows","addDatesBetweenContributions","topElement","rowElement","bottomElement","totalTxnsCount","_Link","handleShowMore","ownProps","getTxnsSelector","getActivityTxnsSelector","sharingOptionsSelector","sharingProgress","sharingContributors","sharingContributions","currencySelector","fullContributionsListSelector","fullActivitiesListSelector","pendingContributionsListSelector","fullContributionsList","completedContributionsListSelector","publicContributionsListSelector","fullContributorsList","sharingOptions","shareContributorDetails","PendingContributionsList","UnboundContributionsList","CompletedActivityList","FullActivityList","avatarColors","Avatar","noAvatarElement","blank","imageUrl","_Avatar","src","initials","color","backgroundColor","generic","getInitials","fullName","splitName","split","firstName","lastName","toUpperCase","campaignOwner","showInitials","profile_photo","getHash","input","hash","len","charCodeAt","ActivityRow","sysColorAccent3Main","_PAYPAL_THEME","sysColorBackgroundHighContrast","amountSign","subjectName","activityType","_Card","UnboundAvatar","uniqueNumericId","getAvatarBackgroundColor","contributionStyles","CrowdfundingActivity","transactionId","txn_id","activitiesCount","activityItem","credit_txn_id","handleFPTI","_extends","OrganizerUpdateDetail","organizerUpdateRow","postUpdateUrl","enableEditButton","truncateDescription","truncateSubject","isDonerView","eventName","time_created","subject","text","edited","_Row","_Button","RouterLink","UpdateRow","showLatest","row","Pictograms","svg","alt","cdnHost","classname","getCdnHostName","viewpostUpdateUrl","organizerUpdatesCount","secondary","iconComponent","_AddIcon","_IconButton","buttonType","svgIconComponent","canChipIn","topAlignment","badgeType","badgeContentId","_Col","lg","md","xs","_Badge","leftIcon","_ClockIcon","CrowdFundingCampaignHeader","isCharityLink","_CausesIcon","mwebheaderCaptionText","categoryName","showDaysRemaining","poolName","getCharityNameComponent","EndDateBadge","getCategoryComponent","ownerName","business_name","givenName","first_name","surname","last_name","generateCategoryName","creatorName","profileImage","CampaignHeader","Manage","hasMoneybox","onTransfer","preventDefault","onDonate","currentTarget","canDonateGNC","canPledge","hasChippedIn","hasCurrencyBalance","loadingActivities","isOrganizerUpdatesEnabled","showUpdateSuccess","showDeleteSuccess","isCharity","manageCampaignUrl","editCampaignUrl","shareCampaignUrl","pledgeCampaignUrl","CrowdfundingHeader","fptitag","data-nemo","_EditIcon","_PreviewIcon","ftpiTag","_ShareIcon","handleTransferClick","disabled","_TransferIcon","_PledgeIcon","handleDonateClick","_CharitiesIcon","_LoadingSpinner","screenReaderText","CrowdfundingUpdate","canChipInAndCanDonate","is_owner","has_currency_balance","transferCampaignUrl","Activity","balance","moneyBoxAmount","moneyBoxCurrency","dangerouslySetInnerHTML","__html","url","CharityCard","logoURL","logo_url","CrossFadeTransition","normalizeImage","dataUrl","toWidth","toHeight","_ref$normalizeImageSi","normalizeImageSize","_ref$mimeType","mimeType","img","onload","changed","canvas","ctx","getContext","resizeWidth","width","resizeHeight","height","EXIF","getData","exifdata","Orientation","drawImage","toDataURL","isValidImageFileType","fileType","ImageUploadField","stopPropagation","click","dropZone","current","open","fileSelectEvent","readFiles","files","file","fileReader","FileReader","onImageLoad","onLoadEvent","result","fileSignature","str","raw","atob","hex","base64ToHex","onError","prevStage","dynamicClass","onChange","restrictedTotalSize","restrictedSize","normalizedUrl","readAsDataURL","dataTransfer","evt","createRef","Dropzone","multiple","noDragEventsBubbling","accept","onDrop","handleDragDrop","onDragEnter","handleDragEnter","onDragOver","handleDragOver","onDragLeave","handleDragLeave","getRootProps","getInputProps","CATEGORY_IMAGES_PATH","defaultCover","poolCategory","getDefaultCover","mainCategory","isImageDefaultCover","image","Cropper","imgSrc","_React$useState2","useState","cropper","setCropper","_React$useState4","setImage","_React$useState6","initialZoom","zoom","setZoom","_React$useState8","initialRotate","rotate","setRotate","useEffect","updatedCropper","_updatedCropper$getCr","_updatedCropper$getCr2","getCroppedCanvas","updateImageData","handleRotate","direction","rotateTo","handleZoomIn","zoomTo","handleZoomOut","_ZoomInIcon","_ZoomOutIcon","_RefreshIcon","span","offset","_DeleteIcon","onImageRemove","ReactCropper","initialAspectRatio","viewMode","cropBoxResizable","cropBoxMovable","background","responsive","autoCropArea","checkOrientation","onInitialized","ready","cropend","detail","ratio","guides","dragMode","cropperProps","mime","quality","croppedCanvasProps","onDiscard","onCompleted","CrowdFundingImageAdjust","onImageChange","Strip","bg_image","backgroundImage","categoryImage","prevProps","onUpdate","customStyleInput","styleNames","responsiveStyle","isFullscreen","isResponsive","customStyle","initialStyle","mergedStyle","backgroundPosition","backgroundPan","staticHeight","gradientColor","stripRef","onImageError","ImageFileField","handleOpenFileDialog","display","handleFileSelect","CrowdFundingImagePreview","pan","Image","imageWidth","imageHeight","previewWidth","strip","offsetWidth","previewHeight","offsetHeight","previewZoom","imageInput","val","refreshImageSize","panStart","lastAbsolutePan","remainingHeight","absolutePan","deltaY","relativePan","round","onPanChange","Hammer","onPanStart","handlePanStart","onPan","handlePan","onPanEnd","handlePanEnd","recognizers","threshold","tertiary","handleImageChangeIntent","handleImageChange","FILE_INVALID_TYPE","_useState2","setLoading","_useState4","uploadError","setUploadError","updateImage","fileName","_props$fields","fields","backgroundImageFilename","handleImageRemove","_props$fields2","_props$fields2$backgr","showDoneButton","showTitle","showPreviewComponent","imageLoadError","_PictureIcon","_Alert","getErrorMessage","CollapsibleText","header","footer","maxLines","showToggle","toggleContent","textElement","setTextElement","currentWidth","setCurrentWidth","_useState6","isCollapsed","setIsCollapsed","_useState8","hasEnoughText","setHasEnoughText","toggleButtonText","closed","overrideFPTI","checkWrapperWidth","ro","ResizeObserver","_iterator","_createForOfIteratorHelper","s","n","done","_entry$target","scrollHeight","clientHeight","f","onLoad","observe","WebkitLineClamp","collapsed","collapsedState","CampaignDetails","details","tab_layout","creatorFullName","supportingCharityName","creatorFullNameStyle","supportingCharityNameStyle","Linkify","properties","isPreview","CrowdFundingTabLayout","selectedTabIdx","organizerUpdateItem","dataset","CLICK_NAME","_SegmentedController","tabs","panelId","tabHandler","_SegmentedControllerPanel","tabId","updatesComponent","TabLayout","CountDown","detailDaysFromTodayState","datetime","isShowingDetail","updateSeconds","updateCountDown","interval","intervalId","setInterval","cdItem","time","timeFormat","_this3","defaultFormat","_this4","separator","getTimeFormat","showRemainingInDetail","showRemainingInDays","clearInterval","_this5","startCountDown","clearCountDowns","renderComponents","hubPageUrl","shouldHaveMeDomain","generalCampaignUrl","campaignUrlWithMeDomain","isMeDomainAllowed","campaignUrlForDisplay","canShareSelector","canShareVenice","getShareProps","isGNCEnabled","is_gnc_enabled","countryCode","canShare","shareUrl","campaignTitle","isGncCampaign","textPlaceholder","emailSubjectTextGN","emailSubjectTextGNC","emailBodyTextGN","emailBodyTextGNC","shareMsgWhatsappGNC","shareMsgFB","fundraiser_name","shareMsgTwitter","shareMsgWhatsapp","hashtags","emailSubject","emailBody","shareable","displayUrl","appId","app_id","showFacebook","showMessenger","showTwitter","showWhatsApp","showEmail","showSms","ClipboardSharingButton","isCopied","onShowToast","enabled","copyText","copyBoxTextRef","copyBoxText","clipboard","Clipboard","copyLink","on","handleCopySuccess","destroy","handleClick","handleKeyUp","_LinkIcon","showSubtext","i18n2","readOnly","position","left","aria-hidden","ClipboardSharing","i18nText","handleIconClick","PropTypes","bool","string","socialNetwork","popupWidth","popupHeight","top","shareText","fbUrl","encodeURI","whatsappText","whatsappUrl","featureType","clientWidth","shareURLByMessenger","shareByTwitter","shareByEmail","shareBySMS","link_name","opt_sel","SubText","prop","inline","contentkey","EmailSharing","_EmailIcon","TwitterSharing","_ShareTwitterIcon","FacebookSharing","_ShareFacebookIcon","MessengerSharing","_ShareMessengerIcon","WhatsAppSharing","_ShareWhatsappIcon","SmsSharing","_PhoneIcon","ShareButton","propsToPass","_propsToPass$options","isSheetOpen","setIsSheetOpen","_props$secondary","isCopySuccess","_Sheet","isOpen","onHideToast","divider","option","generateShareMessage","isSmallGroup","urlWithMeDomain","baseMessage","expiryDate","shareProps","shareMessage","DonateButton","canDonate","mapDispatchToProps","FirstChild","toArray","CopyBox","showTooltip","htmlFor","ShareCampaignCompact","shareIconStyle","ShareCampaign","ReportLink","currentUserCountryCode","getReportPoolLink","handleReportPoolClick","TRANSITION_DURATION","appear","appearActive","ModalAnimations","transitionAppear","transitionAppearTimeout","PpgfInset","sysColorBackgroundMain","currentPage","setCurrentPage","handlePageChange","donationDeliveryPolicyUrl","MediaQuery","minWidth","_steps$steps","step1","step2","step3","textAlign","maxHeight","renderBig","maxWidth","_HorizontalScrollDesktop","itemClassName","renderItem","item","justifyContent","numOfVisibleItems","onPageChange","renderSmall","CharityDetailsModal","IconUrl","isCountryCodeUS","showGivingFundTermsModal","onGivingFundTermsModalClose","noPadding","noGutters","align","StandardError","backButton","onTryAgain","icon","iconType","ICON_NAME","ICON_URL","isShowingImage","iconClass","iconName","_PasskeyIcon","_InternationalIcon","_PersonalInfoIcon","_UndoIcon","_FundraiserIcon","_CashIcon","renderIcon","subtitle","showButton","handleButtonClick","extraContent","i18nErrors","i18nBack","PaymentsTokenSheet","reload","paymentsTokenError","hostName","isDonationTokenMerchantUnableReceiveMoney","hideTitle","containerClassName","mobileFixedHeight","center","COUNTRY_CODES","getDisclaimerVariables","isGnc","MockText","i18ns","texts","PublicContributionRow","amountStyleName","bodyTextStyleNames","isPledge","contributor","contributorName","minHeight","formattedDate","removeExistingCommentFlag","UnboundPublicContributionsList","hideChipIn","goalRemaining","shouldShowCallToChipIn","contributionArray","contributionList","unshift","ownerId","ContributionsList","showTxnsDates","txnCount","daysRemaining","removeExistingComment","EnrichCharityCard","openWebsite","sourceContent","charityUrl","websiteUrl","einContent","cityState","_WebsiteIcon","disclaimerContent","unEnrolledLink","learnMoreCharityLink","source","charityDescription","charityType","charityCity","charityState","ein","city","address","charityCityState","_enrichCharityData","enrichCharityData","formattedEin","substring","ein_number","charityNumberFormat","useMoveDOMElementToRef","elementId","useRef","_element$parentElemen","originalParentId","parentElement","appendChild","RenderHeader","RenderFooter","SVG","viewBox","xmlns","fill","d","stroke","strokeLinecap","strokeLinejoin","fillRule","ICON_SIZES","normal","big","huge","Icon","IconSVG","disableFill","_AddCameraIcon","_PartySuppliesIcon","_GiftCardIcon","Rocket","_ShopIcon","_SendMoneyIcon","_UserProfileIcon","_BankIcon","People","_PaypalAppIcon","strokeColor","iconSize","CrowdfundingBanner","uri","_this$props$analytics","impressionUrl","fetch","sysColorPrimaryContrastHover","_Container","fluid","entryBannerContainer","isLoggedIn","handleHelpNow","cta","PayPalPage","_document$getElementB","headerContent","showHeader","alwaysShowHeaderNavigation","showBanner","allowEntryBanner","alwaysShowBanner","contentStyles","showFooter","useWhiteBg","renderAvatar","ProfileCover","contributionCount","_AvatarStack","donationCount","i18nCharity","PageSpinner","pageLoading","CanDonateOrChipIn","formattedEndDate","donateDisabledWrapper","_CalendarIcon","donateDisabledText","_WarningIcon","CrowdfundingDetailView","gnc","modalRoot","_this$props$campaign","_this$props$campaign$","_this$props$campaign$2","category_image","isLoadingDNWTransaction","_this$props$isEdit","isEdit","clearDNWTransactionError","hasMarketplaceTreatment","isPPGFCharity","_INTEGRATION_IDENTIFI","hasPPGFIntegrationIdentifier","showFindMoreLink","ReactDOM","createPortal","PaypalPage","handleClickFindMore","data-test","_Elevation","level","defaultCategoryCover","AvatarCollection","Link","inverse","reversed","small","PublicContributionsList","renderEmptyDiv","renderReportingLink","invokeGivingFundTermsModal","editedCampaign","getStagingHostName","edit","StandardDialog","_LogoutIcon","_Dialog","dialogStyles","okButtonTitle","onOk","onQuit","closeButtonTitle","formUtils","_Class","errors","field","touched","active","anyInactiveFieldsTouchedWithError","displayName","domOnlyProps","initialValue","autofill","valid","invalid","dirty","pristine","visited","autofilled","maxLength","minLength","minRequiredLength","_values$field","required","match","atMost","atLeast","mergeErrors","err1","err2","combine","validators","_i","_validators","validator","getFormError","hasError","DateInputBox","selectedDate","setSelectedDate","isCalendarVisible","setCalenderVisible","handleSelection","useEndOfDay","onBlur","calendarElm","_Calendar","onSelection","legendSelectedDateLabel","legendTodayLabel","_DateInput","dataNemo","errorText","onFocus","overflow","calendar","onShowCalendar","CurrencyInputBox","_props$isControlledCo","isControlledComponent","commonProps","maskOptions","scale","disableCents","_CurrencyInput","currencyType","onAccept","unmaskedValue","typedValue","autoComplete","helperText","PrivateEditForm","formattedMaxGoalAmount","_TextInput","CFPB_STRING_ID_EXTENSIONS","productSubscription","toCFPBStringId","stringId","productSubscriptions","_ref4","_ref5","TransferReviewBox","showAmount","onDelete","DeleteFundraiser","showDeleteReviewModal","onDeleteClick","showDeleteDialog","setShowDeleteDialog","trackEvents","money_box_amount","maxGoalAmount","showCategoryInput","handleSubmit","setIsOpen","editedCampagin","setEditedCampagin","showBackDialog","setShowBackDialog","showDeleteReview","setShowDeleteReview","newCampaign","handleEditSubmit","isExpired","onSave","editBack","onToggleToast","_props$router$params","_props$router$params3","handleDeleteOk","DeleteReview","onSubmit","ended","PersonalOrCharityEdit","_DropdownMenu","_TextArea","minRows","showCharacterCounter","maxCharacters","isAndroid","CrowdFundingCoverImage","showDelete","date-testid","CrowdFundingPreview","dateFormatValidator","parseDate","maxDaysValidator","fieldName","maxDays","dateInQuestion","maxTime","endDateValidators","stringifyContributionPrefs","stringifyPublicTrackingPrefs","octal","reduxForm","enable_new_category","isTitleInfoAndMinDescriptionEnabled","amountCommons","removeTrailingZeros","formattedMinGoalAmount","min_amount_donation","isPrivateFundraiser","maxCharLength","maxdays","now","minMaxAmount","validate","initialValues","contribPrefs","tracking","deviceOS","formValues","EditMain","EditError","errorCodeMappping","UNDER_REVIEW_ERROR","INVALID_IMAGE","isCrowdfunding","subTitle","sendEnsightenEvent","Bootstrapper","ensEvent","trigger","onPledge","minAmount","nextPathname","postPledge","autoFocus","destroyOnUnmount","touchOnChange","touchOnBlur","maxAmount","max_amount","Pledge","object","formattedPledgeAmount","PledgeSuccess","getMoneyPoolTNCLink","CountryBlocked","money_pool_creation_blocked","crowdfunding_enabled","countryName","isFundRaiserEnabled","titleJSX","tc_link","JsxParser","jsx","crowdfundingEnabledSubtitle","button","country_name","CampaignEligibility","isCreationLimitReached","CIPStatusCode","verificationFlow","dialog","REJECTED","ctaInfo","handleAnalyticsEvent","_ownProps$route","cipStatusObj","CIPEligibility","CIPStatus","getCIPStatus","nextStep","GENEROSITY_NETWORK_FUNDRAISER_CHARITY","GENEROSITY_NETWORK_FUNDRAISER","getDexterReturnUrl","relativeUrl","sysColorSuccessMain","ShareCampaignTextarea","errorMsg","sm","copyValidation","_CheckmarkIcon","HalfSheet","onCloseComplete","skipFormFocus","FundraiserShareInfo","shareInfoHeader","shareInfoFooter","hasSocialShare5xEnabled","hasSocialShare7xEnabled","titleId","subTitleId","shareInfoList","mb24","footerInfo","CrowdfundingShare","showMobileSharePage","campaignCreated","shareDescription","survey","latmconf","trackSprigEvent","creationError","onPublish","_window$Sprig","_window$latmconf","hideLogo","hideButton","isPublishPath","isSprigEnabled","Sprig","loaded","Feedback","feedback","handleSurvey","renderShareComponent","poolUrl","hasOwnProperty","renderReviewError","renderNeedMoreData","renderCampaignEligibility","renderCountryNotSupported","renderStandardError","renderPublishContainer","renderCreateIndicatorContainer","preventNavigation","ComponentWithPreventedNavigation","shouldPrevent","_class","setRouteLeaveHook","routerWillLeave","nextLocation","enable_ces_link","DeleteError","Transfer","transferAll","onTransferAll","transferAmount","handleTransfer","handleTransferAllClick","shouldAutoFocus","campaignName","change","withdrawAmount","withdrawRemotely","TransferComplete","nextProps","transferError","withdrawlUrl","getValues","transfer","onDone","isCampaignOwner","history","indexRoute","getComponent","EditMainCrowdfunding","onEnter","inPreview","childRoutes","ManageCrowdfunding","prevStep","onLeave","deleteOrganizerActivity","setDeleteDailog","getOrganizerUpdate","searchParams","updatePage","setOrganizerUpdateList","deleteOrganizerUpdate","removeOrganizerUpdate","createOrganizerUpdate","addOrganizerUpdate","editOrganizerUpdate","updatableInstance","modifyOrganizerUpdate","DeleteUpdateActivity","organizerUpdateId","handleUpdateSubmit","goToSharePage","errorSubject","auocomplete","filterorganizerUpdate","organizerUpdateItems","postupdate","campaignError","formattedPayload","op","fetchOrganizerUpdateList","PostUpdate","ShareUpdateActivity","organizerName","getUpdateActivityShareDetails","PostUpdateShare","PostUpdateError","isLimitReachedError","primary","ViewUpdatesActivity","donerViewUrl","trackPostUpdateEvent","ceil","isDonerEventName","selectedOrganizerUpdate","_store$getState","isOwnerView","CountryBlockedError","isOwner","isGN","childRoute","hasSendChildRoute","GENEROSITY_NETWORK_URL","CampaignNotFound","WARNING_SVG_URL","has_marketplace_treatment","_props$campaign","hasGoalAmount","moneyBoxAmountFormatted","endDateFormatted","leftSideHubCallback","selectedCard","Content","EmptyHub","isOpenTab","i18nError","blockType","email","logoutUrl","shouldShowButton","CREATION_BLOCKS","byAccountType","byUnconfirmed","sysColorPrimaryMain","byGNAccountRestricted","genericError","currencyMismatchError","CreateFundraiserError","byKillSwitch","byCountry","byAccountRestricted","CreatePage","showCloseDialog","currentStep","stepToEventNameMapping","nonprofit","currentStepInCreateFlow","handleDismissEvents","handleCloseDialogOk","referrer","prevStepName","isInitialState","initial","getErrorComponent","closeDialog","CreateCard","data_nemo","cartIcon","disclaimerContentKey","fundraiserType","feesDetailsClickEventName","eventDetails","startEventName","closeEventName","pageImpression","Introduction","isBtnProcessing","hideFullHalfSheet","fundraiserButton","onPageLoad","closeSheet","noCloseButton","PrivateIntroductionContent","PersonalIntroductionContent","CharityIntroductionContent","Disclaimer","Button","host","selectionType","TYPE_MAP","PoolTypeSmallGroup","showErrorDialog","isCampaignLimitReached","limitDialogToggle","_this$props$location","poolType","showDialogIfTypePresentInQueryString","userHasCampaigns","charityCampaignSubtitle","hasDirectIntegrationIdentifier","closeFullHalfSheet","gnHref","gncHref","ZeroFundraiser","isWide","onComponentMount","content","deprecatedMessage","CreateTypeSmallGroup","paddingTop","fundraiserDeprecatedBlockedTitle","fundraiserDeprecatedEligibility","getBlockType","_state$country","enable_crowdfunding_business_account","moneypools_country_blocked","allow_creation","blockCreationByCurrencyMismatch","ZeroFundraiserOrSkeleton","showImageHeader","FundraiserSkeleton","ManageAllPage","defaultSelectedCampaigns","setCurrentCampaignId","fetchTransactions","_isEmpty","transactionsCall","fetchTransaction","fetchActivities","all","smoothScrollPolyfill","polyfill","managePageCallback","segmentIndex","LeftSideHubCampaign","pageSpinner","_state$current_user$C","getMaxLimitReachedSelector","moneypools_blocked","INITIAL_STEP","PersonalBasicsForm","disclaimer","helpTextId","pledgeAmount","pledgeContentKey","disclaimerCharity","untouchAll","PrivateBasicsForm","CharityBasicsForm","renderForm","hasDisclaimer","copy","i18nHalfFullSheet","initialDate","defaultDate","setDate","getCharityDisclaimer","disclaimer1","disclaimer2","hasSmallLegalTexGnc","combinedDisclaimer","_state$charity","_campaign$charity","_state$charity2","getCategoryList","categoryQueryParam","dateAtLeast24HrsFromNow","CrowdfundingBasics","TypeAheadSearch","_Component","suggestionsNode","querySelector","contains","showSuggestions","userInput","isCampaignLoading","debounceSearch","filteredSuggestions","getSelectedItem","closeSuggestions","datasource","_this$state","highlightedSuggestionIndex","loadingElement","_assertThisInitialize2","onItemClick","getItemProps","getListProps","getLoadingElement","_assertThisInitialize3","suggestionList","suggestion","area_selected","aria-selected","setItemDecoration","_SearchIcon","fns","_len2","_key2","fn","onKeyDown","rest","eventHandlers","callAllEvents","_excluded2","_excluded3","_search","onDocumentMouseDown","_debounce","delay","userText","focus","getOptions","_x","_x2","_this$state2","getTemplate","HorizontalScroller","renderCards","isImageVisible","setIsImageVisible","_HorizontalScroll","featuredCharities","search_all","page_size","Typeahead","selectCharity","getFeaturedCharities","NonProfitPage","TipBox","_InformationIcon","_LightBulbIcon","PersonalTipBox","continer","initializeForm","isPersonalFundraiser","Private","form__buttom_margin","initialize","handleChange","PoolDescription","selectedPhoto","defaultImage1","defaultImage2","defaultImage3","handleSelectCover","setSelectedPhoto","sysColorPrimaryMainActive","onAddNewPhotoClick","isDefaultSelected","selectPhoto","isNotDefaultImage","_PhysicalCard","backgroundSize","cursor","CustomImageSelection","borderRadius","Checkbox","checked","defaultImgGen","random","getDefaultImage2","getDefaultImgGen3","coverForSelectedCategory","checkIfUploadedImg","isPrivateCampaign","CoverComponent","PrivateCover","PersonalAndCharityCover","DefaultImages","getMajorMinorAgreementVersion","userLegalAgreementVersion","_userLegalAgreementVe2","_userLegalAgreementVe3","policy_major_version","_userLegalAgreementVe4","policy_minor_version","coverImage","handleCoverSelect","PERSONAL","contentKeys","bullets","CrowdFundingCover","isPhotoModal","photo_uploaded_flag","userConsentBtnText","submitCoverPage","submit","handlePhotoModalClose","userConsentDisclaimer","_fields$backgroundIma","_this$props3","termsAndConditionLink","CrowdFundingSelectCover","PositionPhoto","AddPhoto","handleTcClick","handleModalClick","handleModalClose","closeButtonProps","container_class","handleAddPhoto","activeUserConsent","_state$current_user","userConsent","user_consent","user_consent_data","getActiveUserConsent","shouldDisplayTipBox","disclaimer_message","cta_text","encodedCampaignId","cipStatus","next_compliance_Url","createCampaignEligibilityCheck","selectedPoolType","_getState$campaign","_nextState$location","_nextState$location2","_nextState$location3","__new_campaign__","CrowdfundingBasicsSmallGroup","prevSteps","CrowdfundingStory","CrowdfundingNonprofit","CrowdfundingCover","PoolPublish","send","excludeKeys","getCampaignCount","hubRoute","createRoute","createCrowdfundingRoute","queryToken","isCancel","finally","CrowdFundingDetailsPage","postUpdate","campaignRoute","SessionTimeout","_throttle","clearTimeout","sheetTimer","sessionTimer","startSheetTimer","displayTimeoutPageAt","isEuCountry","resetTimer","startSessionTimer","isSCA","startErrorTracking","onerror","line","column","stack","userAgent","navigator","log","packageJson","require","APPLICATION_ID","CLIENT_ID","getClientEnvironment","addCorrelationIdToContext","correlationId","context","ddTraceLink","getDDTraceLink","calLogLink","getCalLogLink","renderMainView","PoolsRouter","syncHistoryWithStore","Router","poolsRouter","render","Provider","ContextProvider","WorldReadyProvider","ThemeProvider","theme","DD_RUM","getInitConfiguration","rumWasNotInitialized","datadogRum","init","applicationId","getApplicationId","clientToken","getClientToken","site","service","version","env","process","sessionSampleRate","sessionReplaySampleRate","trackUserInteractions","trackResources","trackLongTasks","defaultPrivacyLevel","enablePrivacyForActionName","excludedActivityUrls","allowedTracingUrls","beforeSend","_context$response","xhr","getResponseHeader","setupComplete"],"mappings":"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1BqB,GAAI,CACFpB,uBAAwBD,GAE1BsB,GAAI,CACFrB,uBAAwBD,GAE1BI,GAAI,CACFH,uBApFS,SAwFAsB,EAAiC,CAAC,KAAM,KAAM,KAAM,MACpDC,EAAgB,CAC3B,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEWC,EAAiB,CAC5Bf,GAAI,CACFgB,aAAc,oDACdC,aAAc,sDACdC,mBACE,8DACFC,cACE,+DAEJrB,GAAI,CACFkB,aAAc,oDACdC,aAAc,sDACdC,mBACE,8DACFC,cACE,8DACFC,uBACE,+EAEJnB,GAAI,CACFe,aAAc,oDACdC,aAAc,sDACdC,mBACE,8DACFC,cACE,+DAEJxB,GAAI,CACFqB,aAAc,oDACdC,aAAc,sDACdC,mBACE,8DACFC,cACE,+DAEJjB,GAAI,CACFc,aAAc,oDACdC,aAAc,sDACdC,mBACE,8DACFC,cACE,+DAEJhB,GAAI,CACFa,aAAc,oDACdC,aAAc,sDACdC,mBACE,iEACFC,cACE,+DAEJf,GAAI,CACFY,aAAc,oDACdC,aAAc,sDACdC,mBACE,8DACFC,cACE,+DAEJvB,GAAI,CACFoB,aAAc,oDACdC,aAAc,sDACdC,mBACE,8DACFC,cACE,+DAEJb,GAAI,CACFU,aAAc,oDACdC,aAAc,sDACdC,mBACE,8DACFC,cACE,+DAEJZ,GAAI,CACFS,aAAc,oDACdC,aAAc,sDACdC,mBACE,8DACFC,cACE,+DAEJX,GAAI,CACFQ,aAAc,oDACdC,aAAc,sDACdC,mBACE,8DACFC,cACE,+DAEJV,GAAI,CACFO,aAAc,oDACdC,aAAc,sDACdC,mBACE,8DACFC,cACE,+DAEJT,GAAI,CACFM,aAAc,oDACdC,aAAc,sDACdC,mBACE,8DACFC,cACE,+DAEJR,GAAI,CACFK,aAAc,oDACdC,aAAc,sDACdC,mBACE,8DACFC,cACE,+DAEJzB,GAAI,CACFsB,aAAc,oDACdC,aAAc,sDACdC,mBACE,8DACFC,cACE,+DAEJE,GAAI,CACFL,aAAc,oDACdC,aAAc,sDACdC,mBACE,8DACFC,cACE,gEAQOG,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","file":"js/app.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"margin-bottom-12\":\"ppgf_inset__margin-bottom-12___23IQ4\",\"ppgf-all-items-container\":\"ppgf_inset__ppgf-all-items-container___1dOvi\",\"ppgf-flex-container\":\"ppgf_inset__ppgf-flex-container___3uI5p\",\"ppgf-step-detail\":\"ppgf_inset__ppgf-step-detail___gjBOh\",\"ppgf-right-arrow-container\":\"ppgf_inset__ppgf-right-arrow-container___1gwXm\",\"more-details-button\":\"ppgf_inset__more-details-button___1TU8j\",\"ppgf-container\":\"ppgf_inset__ppgf-container___1POeK\",\"ppgf-container-title\":\"ppgf_inset__ppgf-container-title___1mQ02\",\"sub-text\":\"ppgf_inset__sub-text___1psL9\",\"ppgf-carousel-container\":\"ppgf_inset__ppgf-carousel-container___1rg54\",\"ppgf-carousel-title\":\"ppgf_inset__ppgf-carousel-title___20pG9\",\"ppgf-carousel-image\":\"ppgf_inset__ppgf-carousel-image___1KsXe\",\"ppgf-carousel-slide\":\"ppgf_inset__ppgf-carousel-slide___jc0Fi\",\"ppgf-container-title-small\":\"ppgf_inset__ppgf-container-title-small___2C0YE\",\"ppgf-horizontal-scroll\":\"ppgf_inset__ppgf-horizontal-scroll___NfqND\",\"ppgf-step-text\":\"ppgf_inset__ppgf-step-text___27q9a\",\"ppgf-button-container\":\"ppgf_inset__ppgf-button-container___1X_na\"};","var map = {\n\t\"./\": 363,\n\t\"./common\": 298,\n\t\"./common.js\": 298,\n\t\"./index\": 363,\n\t\"./index.js\": 363,\n\t\"./msgeo\": 848,\n\t\"./msgeo.js\": 848,\n\t\"./pp_cn\": 501,\n\t\"./pp_cn.js\": 501\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 = 1259;","const _cache = {}\n\nexport function getJSONFromScript(scriptId) {\n if (_cache[scriptId]) {\n return _cache[scriptId]\n }\n\n const element = document.getElementById(scriptId)\n\n try {\n const parsedElement = JSON.parse(element.innerHTML)\n\n if (\n parsedElement &&\n typeof parsedElement === 'object' &&\n !Array.isArray(parsedElement)\n ) {\n _cache[scriptId] = parsedElement\n\n return parsedElement\n } else {\n throw new Error(\n `Parsed element with scriptId=${scriptId} should be an object.`\n )\n }\n } catch (error) {\n throw new Error(\n `Parsed element with scriptId=${scriptId} could not be parsed.`\n )\n }\n}\n\nexport function getDataAttr(dataKey) {\n return document.body.getAttribute(`data-${dataKey}`)\n}\n\nexport function getJSONDataAttr(dataKey) {\n const attrib = getDataAttr(dataKey)\n if (!attrib) {\n return {}\n }\n return JSON.parse(attrib)\n}\n","export const SCRIPT_IDS = {\n STORE: 'store',\n MESSAGES: 'messages',\n NAVIGATION: 'navigation',\n WORLD_READY_MARKET_DATA: 'worldReadyMarketData',\n}\n\nexport const ALLOWED_IMAGE_TYPES = [\n 'image/jpg',\n 'image/jpeg',\n 'image/png',\n 'image/bmp',\n 'image/tiff',\n]\n\nexport const UNALLOWED_ENCODED_IMAGE_TYPES = [\n '52494646', // Webp\n '57454250', // Webp\n]\nexport const USER_AGREEMENT_LINK_COUNTRIES = ['FI', 'JP', 'LI']\n\nexport const DEFAULT_LOCALE = {\n LANGUAGE: 'en',\n COUNTRY: 'US',\n}\n\nexport const TEST_OPTIONS_HEADER = 'X-PP-Test-Options'\n\nexport const AMOUNT_TYPES = {\n any: 'any',\n at_least: 'at_least',\n exactly: 'exactly',\n}\n\nexport const GRADIENT_COLORS = {\n blue: 'blue',\n purple: 'purple',\n fuchsia: 'fuchsia',\n red: 'red',\n teal: 'teal',\n gray: 'gray',\n green: 'green',\n sky: 'sky',\n pink: 'pink',\n orange: 'orange',\n}\n\nexport const EDITABLE_FIELDS = [\n 'title',\n 'end_date',\n 'description',\n 'category',\n 'goal',\n 'gradient_color',\n 'background_image',\n 'background_image_filename',\n 'background_pan',\n 'amount_type',\n 'share_contributions',\n 'share_contributors',\n 'share_progress',\n 'amount',\n 'pledge',\n]\n\nexport const DEFAULT_GRADIENT_COLOR = 'teal'\n\nexport const DAYS_THRESHOLD = 28\n\nexport const COVER_IMAGE_MAX_TOTAL_SIZE = 1600\nexport const CROWDFUNDING_COVER_IMAGE_MAX_TOTAL_SIZE = 5000000\n\nexport const CROWDFUNDING_GOAL_AMOUNT = {\n EUR: {\n MAX_AMOUNT: 20000,\n MIN_AMOUNT: 1,\n },\n AUD: {\n MAX_AMOUNT: 25000,\n MIN_AMOUNT: 1,\n },\n CAD: {\n MAX_AMOUNT: 25000,\n MIN_AMOUNT: 1,\n },\n GBP: {\n MAX_AMOUNT: 20000,\n MIN_AMOUNT: 1,\n },\n NOK: {\n MAX_AMOUNT: 140000,\n MIN_AMOUNT: 10,\n },\n DKK: {\n MAX_AMOUNT: 140000,\n MIN_AMOUNT: 10,\n },\n USD: {\n MAX_AMOUNT: 20000,\n MIN_AMOUNT: 1,\n },\n PLN: {\n MAX_AMOUNT: 50000,\n MIN_AMOUNT: 2,\n },\n SEK: {\n MAX_AMOUNT: 210000,\n MIN_AMOUNT: 10,\n },\n}\n\nexport const CROWDFUNDING_CAMPAIGN_MAX_DAYS = 30\nexport const MONEY_POOLS_MAX_DAYS = CROWDFUNDING_CAMPAIGN_MAX_DAYS\n\nexport const COVER_IMAGE_UPLOAD_ERRORS = {\n FILE_INVALID_TYPE: 'file-invalid-type',\n FILE_TOO_LARGE: 'file-too-large',\n FILE_TOO_SMALL: 'file-too-small',\n TOO_MANY_FILES: 'too-many-files',\n}\n\nexport const CONTRIBUTIONS_PAGE_SIZE = {\n mobile: 5,\n desktop: 10,\n}\n\nexport const MIN_CONTRIBUTOR_ROW_HEIGHT = '1.6em'\n\nexport const MIN_ACTIVITY_ROW_HEIGHT = '1.1em'\n\nexport const USR_TXNS_COOKIE_EXPIRY = 15 * 60 * 1000\n\nexport const UNDER_REVIEW_ERROR = 'UNDER_REVIEW'\nexport const FOU_LIMIT_REACHED_ERROR = 'FOU_LIMIT_REACHED'\n\nexport const INVALID_IMAGE = 'INVALID_IMAGE'\n\nexport const IMAGE_SCAN_RESPONSES = {\n NOT_AVAILABLE: 'NOT_AVAILABLE',\n MATCH: 'MATCH',\n NO_MATCH: 'NO_MATCH',\n}\n\nexport const STORAGE_EXPIRATION = 1000 * 60 * 30 // 30 mins\n\nexport const FUNDING_SOURCES = {\n HOLDING: 'HOLDING',\n BANK_ACCOUNT: 'BANK_ACCOUNT',\n}\n\nexport const CFS_INTENT = 'MONEYPOOLS'\nexport const CFS_ELIGIBILITY_URL = '/myaccount/bundle/product-eligibility'\nexport const BRAZIL_ELIGIBILITY_URL = '/policy/hub/cip'\n\nexport const TRANSACTION_DETAILS_URL = '/myaccount/transactions/details/'\n\nexport const CIP_FLOW_URL = {\n HOMEINFO_URL: '/myaccount/info/flow/educate',\n RETURN_URL: '/myaccount/summary',\n ENTRY_POINT: 'POOLS',\n}\n\nexport const AUTH_STATES = {\n LOGGEDIN: 'LOGGEDIN',\n IDENTIFIED: 'IDENTIFIED',\n}\n\nexport const ACCOUNT_TYPES = {\n PERSONAL: 'PERSONAL',\n PREMIER: 'PREMIER',\n BUSINESS: 'BUSINESS',\n}\n\nexport const SUBSCRIPTION_TYPES = {\n WALLET: 'WALLET',\n CASH: 'CASH',\n CASH_PLUS: 'CASH_PLUS',\n}\nexport const FEATURES_TYPES = {\n CROSS_BORDER: 'SEND_MONEY_CROSS_BORDER_FRIENDS_AND_FAMILY',\n DOMESTIC: 'SEND_MONEY_DOMESTIC_FRIENDS_AND_FAMILY',\n}\nexport const FLOW_DETAILS = {\n FEATURE: 'PERSONAL',\n SUB_FLOW: 'CONTRIBUTE',\n}\n\nexport const EXPERIMENTS = {\n MONEY_POOLS_CROWDFUNDING_CREATION: {\n TREATMENT: 'Trmt_fundraiser_creation_web',\n CONTROL: 'Ctrl_fundraiser_creation_web',\n },\n MONEY_POOLS_CROWDFUNDING: {\n TREATMENT: 'Trmt_money_pools_crowdfunding_1',\n CONTROL: 'Ctrl_money_pools_crowdfunding',\n },\n AUCIP: {\n TREATMENT: 'PAYPALWALLET_FEATURES_RAMP_TRMT',\n CONTROL: 'PAYPALWALLET_FEATURES_RAMP_CTRL',\n },\n GENEROSITY_NETWORK_FOR_CHARITY: {\n TREATMENT: 'Trmt_Generosity_Network_For_Charity',\n CONTROL: 'Ctrl_Generosity_Network_For_Charity',\n },\n // poolsnodeweb & crowdfundingnodeweb elmo joint experiment\n // we are using this in both apps\n GENEROSITY_NETWORK_RAMP: {\n RESOURCE: 'main:generosity:network:ramp',\n CONTROL: 'Ctrl_generosity_network_ramp',\n TREATMENT: 'Trmt_generosity_network_ramp',\n },\n GENEROSITY_NETWORK_DISCOVERABLE_GN: {\n RESOURCE: 'main:generosity:network:discoverable',\n CONTROL: 'Ctrl_generosity_network_discoverable_gn_v2',\n TREATMENT: 'Trmt_generosity_network_discoverable_gn_v2',\n },\n GENEROSITY_NETWORK_DISCOVERABLE_GNC: {\n RESOURCE: 'main:generosity:network:discoverable',\n CONTROL: 'Ctrl_generosity_network_discoverable_gnc_v2',\n TREATMENT: 'Trmt_generosity_network_discoverable_gnc_v2',\n },\n GENEROSITY_NETWORK_DISCOVERABLE_TOOLTIP: {\n RESOURCE: 'main:generosity:network:discoverable',\n CONTROL: 'Ctrl_generosity_network_discoverable_tooltip_v2',\n TREATMENT: 'Trmt_generosity_network_discoverable_tooltip_v2',\n },\n PP_FUNDRAISER_PRICING_DISCLAIMER: {\n RESOURCE: 'PP_Fundraiser_Pricing_Disclaimer',\n CONTROL: 'Ctrl_PayPal_Fundraisers_Pricing_Disclaimer_Client',\n TREATMENT: 'Trmt_PayPal_Fundraisers_Pricing_Disclaimer_Client',\n },\n PP_ORGANIZER_UPDATES: {\n RESOURCE: 'main:fundraiser:organizer_updates',\n CONTROL: 'Ctrl_organizer_update_ramp_web',\n TREATMENT: 'Trmt_organizer_update_ramp_web',\n },\n UNENROLLED_CHARITY: {\n RESOURCE: 'main:fundraiserserv:giving_unenrolled_charity_fundraising',\n CONTROL: 'Ctrl_dw2_giving_unenrolled_charity_fundraising',\n TREATMENT: 'Trmt_dw2_giving_unenrolled_charity_fundraising',\n },\n PERSONAL_FUNDRAISER_TITLE_AND_MIN_DESCRIPTION: {\n RESOURCE: 'main:fundraiser::title_minimum_description_length',\n CONTROL:\n 'Ctrl_dw2_giving_listed_fundraiser_title_info_text_min_description_length',\n TREATMENT:\n 'Trmt_dw2_giving_listed_fundraiser_title_info_text_min_description_length',\n },\n PERSONAL_FUNDRAISER_SOCIAL_SHARE: {\n RESOURCE: 'main:fundraiser::social_share',\n CONTROL: 'Ctrl_dw2_giving_listed_fundraiser_social_share',\n TREATMENT: 'Trmt_dw2_giving_listed_fundraiser_lift_in_amount_raised',\n TREATMENT2:\n 'Trmt_dw2_giving_listed_fundraiser_duration_amount_can_be_raised',\n },\n}\n\nexport const ELMO_RESOURCE_NAME = [\n 'main:walletweb:transfer',\n 'main:paypalwallet:feature',\n].join(',')\nexport const ELMO_CROWDFUNDING_RESOURCE_NAME = 'main:crowdfunding:pool'\n\nexport const ELMO_GN_IMAGE_SCAN = 'main:generosity:network:image_scan'\n\nexport const ELMO_GN_DNW_INTEGRATION = 'main:generosity:network:dnw_integration'\n\nexport const ELMO_GN_CHARITY = 'main:generosity:network:charity'\n\nexport const PXP_PAGE_NAME = 'cfpb_paypal_cash_us'\n\nexport const POOLS_CAMPAIGN_TYPES = {\n CROWD_FUNDING: 'CROWD_FUNDING',\n}\nexport const CHARITY = 'charity'\n\nexport const CROWD_FUNDING_HOME_URI = '/generosity-network'\nexport const CIP_ELIGIBILITY_CODES = {\n USER_REACHED_CAMPAIGN_CREATION_LIMIT: 'USER_REACHED_CAMPAIGN_CREATION_LIMIT',\n RUGS_CHECK_HIT_WITH_DC_NEED_MORE_DATA: 'NEED_MORE_DATA',\n RUGS_CHECK_HIT_WITH_DC_MANUAL_REVIEW: 'MANUAL_REVIEW',\n RUGS_CHECK_HIT_WITH_DC_PENDING_VERIFICATION: 'PENDING_VERIFICATION',\n RUGS_CHECK_HIT_WITH_DC_PENDING: 'PENDING',\n RUGS_CHECK_HIT_FAILED: 'RUGS_CHECK_HIT_FAILED',\n RUGS_CHECK_FAILED: 'RUGS_CHECK_FAILED',\n}\n\nexport const GENEROSITY_NETWORK_FLOWS = {\n GENEROSITY_NETWORK_FUNDRAISER_CHARITY:\n 'GENEROSITY_NETWORK_FUNDRAISER_CHARITY',\n GENEROSITY_NETWORK_FUNDRAISER: 'GENEROSITY_NETWORK_FUNDRAISER',\n}\n\nexport const NO_DESCRIPTION_ERRORS = ['REJECTED']\n\nexport const DEXTER_SPECIFIC_ERRORS = [\n 'REJECTED',\n 'AUTO_VERIFICATION_FAILED',\n 'NOT_APPLICABLE',\n 'SERVICE_UNAVAILABLE',\n 'INVALID_REQUEST',\n]\n\nexport const CIP_ERROR_CODE = [\n 'REJECTED',\n 'SERVICE_UNAVAILABLE',\n 'MANUAL_REVIEW',\n 'AUTO_VERIFICATION_FAILED',\n 'NOT_APPLICABLE',\n]\n\nexport const ELIGIBILITY_STATUS = {\n INELIGIBLE: 'INELIGIBLE',\n ELIGIBLE: 'ELIGIBLE',\n UNKNOWN: 'UNKNOWN',\n}\n\nexport const MIN_TRANSFER_AMOUNT = 0\n\nexport const VERIFICATION_FLOW = {\n RUGS: 'RUGS',\n DEXTER: 'DEXTER',\n}\n\nexport const PRODUCT_TYPES = {\n GENEROSITY_NETWORK: 'GENEROSITY_NETWORK',\n SMALL_GROUP: 'SMALL_GROUP',\n GENEROSITY_NETWORK_CHARITIES: 'GENEROSITY_NETWORK_CHARITIES',\n PAYPAL_FUNDRAISER_LISTED_CAMPAIGN: 'PAYPAL_FUNDRAISER_LISTED_CAMPAIGN',\n PAYPAL_FUNDRAISER_UNLISTED_CAMPAIGN: 'PAYPAL_FUNDRAISER_UNLISTED_CAMPAIGN',\n}\n\nconst DIRECT = 'DIRECT'\nconst PPGF = 'PPGF'\n\nexport const INTEGRATION_IDENTIFIER = {\n DIRECT,\n PPGF,\n}\nexport const DIRECT_MODEL_ENROLLED = 'DIRECT_MODEL_ENROLLED'\nexport const PPGF_ENROLLED = 'PPGF_ENROLLED'\nexport const PPGF_UNENROLLED = 'PPGF_UNENROLLED'\n\nexport const CHARITY_TYPES = {\n DIRECT_MODEL_ENROLLED: DIRECT_MODEL_ENROLLED,\n PPGF_ENROLLED: PPGF_ENROLLED,\n PPGF_UNENROLLED: PPGF_UNENROLLED,\n}\n\nexport const PPGF_ENROLLED_LINKS = Object.freeze({\n US:\n 'https://www.paypal.com/us/webapps/mpp/givingfund/policies/donation-delivery-policy#statement-3',\n CA:\n 'https://www.paypal.com/ca/non-profit/paypal-giving-fund/policies/charity-certification',\n GB:\n 'https://www.paypal.com/uk/webapps/mpp/givingfund/policies#DonationDeliveryPolicy',\n IE:\n 'https://www.paypal.com/ie/webapps/mpp/givingfund/donation-delivery-policy#Unenrolled%20Charities',\n AU:\n 'https://www.paypal.com/au/webapps/mpp/givingfund/policies/donation-delivery',\n})\n\nexport const PAYMENTS_TOKEN_DEFAULT_AMOUNT = '0'\n\nexport const INTEGRATION_IDENTIFIER_BY_COUNTRY = {\n AT: {\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n AU: {\n INTEGRATION_IDENTIFIER: PPGF,\n },\n BE: {\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n CA: {\n INTEGRATION_IDENTIFIER: PPGF,\n },\n DE: {\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n DK: {\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n ES: {\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n FR: {\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n GB: {\n INTEGRATION_IDENTIFIER: PPGF,\n },\n GR: {\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n IE: {\n INTEGRATION_IDENTIFIER: PPGF,\n },\n IT: {\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n LU: {\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n NL: {\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n NO: {\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n PL: {\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n PT: {\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n US: {\n INTEGRATION_IDENTIFIER: PPGF,\n },\n}\n\nexport const COUNTRIES_SMALL_LEGAL_TEXT_GNC = ['US', 'GB', 'AU', 'CA']\nexport const TNC_COUNTRIES = [\n 'GB',\n 'DE',\n 'CA',\n 'IT',\n 'ES',\n 'PL',\n 'NL',\n 'AT',\n 'BE',\n 'DK',\n 'NO',\n 'GR',\n 'LU',\n 'SE',\n]\nexport const GN_DISCLAIMERS = {\n AT: {\n consumerLink: 'https://www.paypal.com/al/webapps/mpp/paypal-fees',\n merchantLink: 'https://www.paypal.com/al/webapps/mpp/merchant-fees',\n termsAndConditions:\n 'https://www.paypal.com/at/webapps/mpp/ua/pp-fundraisers-tnc',\n userAgreement:\n 'https://www.paypal.com/at/webapps/mpp/ua/useragreement-full',\n },\n AU: {\n consumerLink: 'https://www.paypal.com/au/webapps/mpp/paypal-fees',\n merchantLink: 'https://www.paypal.com/au/webapps/mpp/merchant-fees',\n termsAndConditions:\n 'https://www.paypal.com/au/webapps/mpp/ua/pp-fundraisers-tnc',\n userAgreement:\n 'https://www.paypal.com/au/webapps/mpp/ua/useragreement-full',\n donationDeliveryPolicy:\n 'https://www.paypal.com/au/webapps/mpp/givingfund/policies/donation-delivery',\n },\n BE: {\n consumerLink: 'https://www.paypal.com/be/webapps/mpp/paypal-fees',\n merchantLink: 'https://www.paypal.com/be/webapps/mpp/merchant-fees',\n termsAndConditions:\n 'https://www.paypal.com/be/webapps/mpp/ua/pp-fundraisers-tnc',\n userAgreement:\n 'https://www.paypal.com/be/webapps/mpp/ua/useragreement-full',\n },\n CA: {\n consumerLink: 'https://www.paypal.com/ca/webapps/mpp/paypal-fees',\n merchantLink: 'https://www.paypal.com/ca/webapps/mpp/merchant-fees',\n termsAndConditions:\n 'https://www.paypal.com/ca/webapps/mpp/ua/pp-fundraisers-tnc',\n userAgreement:\n 'https://www.paypal.com/ca/webapps/mpp/ua/useragreement-full',\n },\n DE: {\n consumerLink: 'https://www.paypal.com/de/webapps/mpp/paypal-fees',\n merchantLink: 'https://www.paypal.com/de/webapps/mpp/merchant-fees',\n termsAndConditions:\n 'https://www.paypal.com/de/webapps/mpp/ua/pp-fundraisers-tnc',\n userAgreement:\n 'https://www.paypal.com/de/webapps/mpp/ua/useragreement-full',\n },\n DK: {\n consumerLink: 'https://www.paypal.com/dk/webapps/mpp/paypal-fees',\n merchantLink: 'https://www.paypal.com/dk/webapps/mpp/merchant-fees',\n termsAndConditions:\n 'https://www.paypal.com/DK/webapps/mpp/ua/generositynetwork-tnc',\n userAgreement:\n 'https://www.paypal.com/dk/webapps/mpp/ua/useragreement-full',\n },\n ES: {\n consumerLink: 'https://www.paypal.com/es/webapps/mpp/paypal-fees',\n merchantLink: 'https://www.paypal.com/es/webapps/mpp/merchant-fees',\n termsAndConditions:\n 'https://www.paypal.com/es/webapps/mpp/ua/pp-fundraisers-tnc',\n userAgreement:\n 'https://www.paypal.com/es/webapps/mpp/ua/useragreement-full',\n },\n GB: {\n consumerLink: 'https://www.paypal.com/uk/webapps/mpp/paypal-fees',\n merchantLink: 'https://www.paypal.com/uk/webapps/mpp/merchant-fees',\n termsAndConditions:\n 'https://www.paypal.com/uk/webapps/mpp/ua/pp-fundraisers-tnc',\n userAgreement:\n 'https://www.paypal.com/uk/webapps/mpp/ua/useragreement-full',\n },\n GR: {\n consumerLink: 'https://www.paypal.com/gr/webapps/mpp/paypal-fees',\n merchantLink: 'https://www.paypal.com/gr/webapps/mpp/merchant-fees',\n termsAndConditions:\n 'https://www.paypal.com/gr/webapps/mpp/ua/pp-fundraisers-tnc',\n userAgreement:\n 'https://www.paypal.com/gr/webapps/mpp/ua/useragreement-full',\n },\n IT: {\n consumerLink: 'https://www.paypal.com/it/webapps/mpp/paypal-fees',\n merchantLink: 'https://www.paypal.com/it/webapps/mpp/merchant-fees',\n termsAndConditions:\n 'https://www.paypal.com/it/webapps/mpp/ua/pp-fundraisers-tnc',\n userAgreement:\n 'https://www.paypal.com/it/webapps/mpp/ua/useragreement-full',\n },\n LU: {\n consumerLink: 'https://www.paypal.com/lu/webapps/mpp/paypal-fees',\n merchantLink: 'https://www.paypal.com/lu/webapps/mpp/merchant-fees',\n termsAndConditions:\n 'https://www.paypal.com/lu/webapps/mpp/ua/pp-fundraisers-tnc',\n userAgreement:\n 'https://www.paypal.com/lu/webapps/mpp/ua/useragreement-full',\n },\n NL: {\n consumerLink: 'https://www.paypal.com/nl/webapps/mpp/paypal-fees',\n merchantLink: 'https://www.paypal.com/nl/webapps/mpp/merchant-fees',\n termsAndConditions:\n 'https://www.paypal.com/nl/webapps/mpp/ua/pp-fundraisers-tnc',\n userAgreement:\n 'https://www.paypal.com/nl/webapps/mpp/ua/useragreement-full',\n },\n NO: {\n consumerLink: 'https://www.paypal.com/no/webapps/mpp/paypal-fees',\n merchantLink: 'https://www.paypal.com/no/webapps/mpp/merchant-fees',\n termsAndConditions:\n 'https://www.paypal.com/no/webapps/mpp/ua/pp-fundraisers-tnc',\n userAgreement:\n 'https://www.paypal.com/no/webapps/mpp/ua/useragreement-full',\n },\n PL: {\n consumerLink: 'https://www.paypal.com/pl/webapps/mpp/paypal-fees',\n merchantLink: 'https://www.paypal.com/pl/webapps/mpp/merchant-fees',\n termsAndConditions:\n 'https://www.paypal.com/pl/webapps/mpp/ua/pp-fundraisers-tnc',\n userAgreement:\n 'https://www.paypal.com/pl/webapps/mpp/ua/useragreement-full',\n },\n US: {\n consumerLink: 'https://www.paypal.com/us/webapps/mpp/paypal-fees',\n merchantLink: 'https://www.paypal.com/us/webapps/mpp/merchant-fees',\n termsAndConditions:\n 'https://www.paypal.com/us/webapps/mpp/ua/pp-fundraisers-tnc',\n userAgreement:\n 'https://www.paypal.com/us/webapps/mpp/ua/useragreement-full',\n },\n SE: {\n consumerLink: 'https://www.paypal.com/se/webapps/mpp/paypal-fees',\n merchantLink: 'https://www.paypal.com/se/webapps/mpp/merchant-fees',\n termsAndConditions:\n 'https://www.paypal.com/se/webapps/mpp/ua/pp-fundraisers-tnc',\n userAgreement:\n 'https://www.paypal.com/se/webapps/mpp/ua/useragreement-full',\n },\n}\n\nexport const COUNTRY_NOT_SUPPORTED = 'country_not_supported'\n\nexport const CROWD_FUNDING = 'CROWD_FUNDING'\n\nexport const GNC_DISCLAIMERS = {\n AU: {\n reassigningConditionsUrl:\n 'https://www.paypal.com/au/webapps/mpp/givingfund/policies/donation-delivery',\n donationDeliveryPolicy:\n 'https://www.paypal.com/au/webapps/mpp/givingfund/policies/donation-delivery',\n },\n CA: {\n reassigningConditionsUrl:\n 'https://www.paypal.com/ca/webapps/mpp/givingfund/policies/donation-delivery-policy',\n donationDeliveryPolicy:\n 'https://www.paypal.com/ca/webapps/mpp/givingfund/policies/donation-delivery-policy',\n },\n GB: {\n reassigningConditionsUrl:\n 'https://www.paypal.com/uk/webapps/mpp/givingfund/policies#DonationDeliveryPolicy',\n donationDeliveryPolicy:\n 'https://www.paypal.com/uk/webapps/mpp/givingfund/policies#DonationDeliveryPolicy',\n },\n US: {\n termsUrl:\n 'https://www.paypal.com/webapps/mpp/givingfund/policies/donor-terms-of-service',\n failToDonateUrl:\n 'https://www.paypal.com/us/webapps/mpp/givingfund/policies/donation-delivery-policy',\n timeframeUrl:\n 'https://www.paypal.com/us/webapps/mpp/givingfund/policies/donation-delivery-policy',\n donationDeliveryPolicy:\n 'https://www.paypal.com/us/webapps/mpp/givingfund/policies/donation-delivery-policy',\n },\n IR: {\n donationDeliveryPolicy:\n 'https://www.paypal.com/ie/webapps/mpp/givingfund/donation-delivery-policy',\n },\n}\n\nexport const INSTRUMENT_EVENTS = {\n DW_GIVING: 'dw_giving',\n DW_GIVING_DETAIL_DONATE_PRESSED: 'dw_giving_detail_donate_pressed',\n DW_GIVING_MANAGE_FUNDRASIER_DONATE_PRESSED:\n 'dw_giving_manage_fundraiser_donate_pressed',\n}\n\nexport const INSTRUMENT_TAGS = {\n CL: 'cl',\n DONATE: 'donate',\n WEB: 'web',\n}\n\nexport const KEY_PRESS_EVENTS = {\n ENTER_KEY: 'Enter',\n}\n\nexport const TOAST_NOTIFICATIONS = {\n EDIT_SUCCESS: 'edit_success',\n COPY_SUCCESS: 'copy_success',\n DELETE_SUCCESS: 'delete_success',\n}\n\nexport const SCREEN_NAME_MAPPING = {\n types: 'start_fundraiser',\n basics: 'create_fundraiser',\n story: 'tell_story',\n cover: 'add_photo',\n publish: 'publish',\n}\n\nexport const ONE_DAY_IN_MILLISECONDS = 86400000\n\n/**------PATHS------------- */\nexport const PATHS = {\n CREATE_CROWDFUNDING: 'create-crowdfunding',\n}\n\nexport const CROWDFUNDING_TAB_PRESS = {\n ABOUT_TAB: 'about-tab',\n CONTRIBUTORS_TAB: 'contributors-tab',\n}\n\nexport const GLOBAL_PPUI_THEME = 'v2'\n\nexport const DISCOVERABLE = 'DISCOVERABLE'\nexport const NON_DISCOVERABLE = 'NON_DISCOVERABLE'\nexport const ONLY_PEOPLE_WITH_LINK = 'only_people_with_link'\nexport const EVERYONE = 'everyone'\n\nexport const POOLS_STATUS = {\n EXPIRE_SOON: 'expire_soon',\n EXPIRED: 'expired',\n OPEN: 'open',\n}\nexport const DEAFULT_COVER_IMAGES = [\n 'https://www.paypalobjects.com/paypal-ui/illustrations/scenic/svg/blue-waves.svg',\n 'https://www.paypalobjects.com/paypal-ui/illustrations/scenic/svg/green-circles.svg',\n 'https://www.paypalobjects.com/paypal-ui/illustrations/scenic/svg/magenta-rings.svg',\n 'https://www.paypalobjects.com/paypal-ui/illustrations/scenic/svg/orange-plaid.svg',\n 'https://www.paypalobjects.com/paypal-ui/illustrations/scenic/svg/purple-mountain.svg',\n 'https://www.paypalobjects.com/paypal-ui/illustrations/scenic/svg/yellow-stones.svg',\n]\n\nexport const SOLID_BACKGROUND_IMAGE =\n 'https://www.paypalobjects.com/paypal-ui/illustrations/scenic/svg/blue-waves.svg'\n\n/**\n * For European Countries the session expiration time is 5 minutes\n * for an idle user, this is why we have 2 different sets of timers and resets\n */\nconst MINUTE = 1000 * 60\nexport const EXTEND_SESSION = {\n URL: '/pools/extendSession',\n\n SHOW_TIMEOUT_SCREEN_AT: 14 * MINUTE, // Show screen at the 14th minute of inactivity\n SHOW_EU_TIMEOUT_SCREEN_AT: 4 * MINUTE, // Show screen at the 4th minute of inactivity\n\n RESET_TIMER_TIMEOUT: 3 * MINUTE, // Only do an automatic extendSession call once every 3 minutes\n\n SESSION_TIMEOUT: 1 * MINUTE, // How much time after showing the screen should I close the session\n}\nexport const CONTRIBUTION_TRANSACTIONS_PER_PAGE = 10\nexport const ACTIVITIES_TRANSACTIONS_PER_PAGE = 5\n\n/**\n * Type of pools available\n *\n * PRIVATE: Unlisted(Non-Discoverable) pools\n * PERSONAL: Listed(Discoverable) pools\n * CHARITY: Listed(Discoverable) pools\n *\n * TODO: DTRAINIER-5301 Consolidate the use of GN|GNC|SGF terminology\n */\nexport const POOL_TYPE = {\n PRIVATE: 'small',\n PERSONAL: 'gn',\n CHARITY: 'gnc',\n}\n\nexport const SPRIG_SURVEY = {\n [POOL_TYPE.PRIVATE]:\n 'poolsnodeweb-gnFundraiserCreation-feedbacklink-web-dec2023',\n [POOL_TYPE.PERSONAL]:\n 'poolsnodeweb-gnFundraiserCreation-feedbacklink-web-dec2023',\n [POOL_TYPE.CHARITY]:\n 'poolsnodeweb-gncFundraiserCreation-feedbacklink-web-dec2023',\n}\n\nexport const USER_CONSENT_STATUS = Object.freeze({\n PENDING: 'PENDING',\n COMPLETED: 'COMPLETED',\n})\n\nexport const CHARITY_INSTRUMENTATION = Object.freeze({\n NPO_LINK_PRESSED: 'dw_giving_view_charity_fundraiser_npo_link_pressed',\n CHARITY_LINK_PRESSED:\n 'dw_giving_view_charity_fundraiser_charity_link_pressed',\n READMORE_LINK_PRESSED:\n 'dw_giving_view_charity_fundraiser_readmore_link_pressed',\n SHOWLESS_LINK_PRESSED:\n 'dw_giving_view_charity_fundraiser_showless_link_pressed',\n PPGF_TNC_LINK_PRESSED:\n 'dw_giving_view_charity_fundraiser_ppgf_tnc_link_pressed',\n FUNDRAISER_SCREEN_SHOWN: 'dw_giving_view_fundraiser_screen_shown',\n})\n\nexport const COLLAPSIBLE_STATE = Object.freeze({\n COLLAPSED: 'collapsed',\n UNCOLLAPSED: 'uncollapsed',\n})\n\nexport const AUDIENCE = Object.freeze({\n [DISCOVERABLE]: EVERYONE,\n [NON_DISCOVERABLE]: ONLY_PEOPLE_WITH_LINK,\n})\n","import { getJSONFromScript } from 'lib/server_params'\n\nimport { SCRIPT_IDS } from 'shared/shared_consts'\n\nexport function getStore() {\n return getJSONFromScript(SCRIPT_IDS.STORE)\n}\n\n/**\n * Synchronizes the script inserted in the header with the\n * latest value from the redux store in the client side.\n *\n * @param {object} newStore - The new Redux store object.\n */\nexport function syncScriptAndStore(newStore) {\n const jsonObject = getStore()\n const newObject = Object.assign(jsonObject, newStore)\n const updatedJsonString = JSON.stringify(newObject)\n\n // Update current store in script with new values\n document.getElementById(SCRIPT_IDS.STORE).innerHTML = updatedJsonString\n}\n","import { useContext } from 'react'\nimport { getStore } from 'lib/store'\nimport {\n CurrencyFormat,\n DateTimeFormat,\n MessageFormat,\n NumberFormat,\n WorldReady,\n NameFormat,\n} from '@paypalcorp/worldready'\nimport { Context as WorldReadyContext } from '@paypalcorp/worldready-react'\nimport { getJSONFromScript } from '../lib/server_params'\n\nfunction getWorldReadyRules() {\n return getJSONFromScript('worldReady')\n}\n\nfunction getWorldReadyMarketData() {\n return getJSONFromScript('worldReadyMarketData')\n}\n\nconst worldReadyMarketData = getWorldReadyMarketData()\n\nfunction getDefaultCurrencyCode() {\n return worldReadyMarketData.defaultCurrencyCode\n}\n\n/**\n * Get user's timeZone from Store\n *\n * @returns {string}\n */\nfunction getTimeZone() {\n return getStore().locality.timezone\n}\n\n/**\n * Get user's country from Store\n *\n * @returns {string}\n */\nfunction getCountry() {\n return getStore().locality.country\n}\n\n/**\n * Get WorldReady context based on store locality\n *\n * When hooks are used then the worldReady object can be get from the context\n * when the function is called directly hooks can't be used, therefore, we need\n * to create the context based on the locale\n *\n * @returns {Object}\n */\nfunction getPlainWorldReadyContext() {\n const worldReadyLocale = getStore().locality.worldReadyLocale\n return new WorldReady(worldReadyLocale)\n}\n\n/**\n * Return the amount of decimals a number should have\n * according to product rules: decimal positions are only displayed\n * when they are > 0 i.e. 10 or 10.50, but not 10.00 or when value\n * is exactly 0 i.e. 0.00\n *\n * @param {Number} value\n * @returns {Number}\n */\nfunction getMaximumFractionDigits(value) {\n let maximumFractionDigits = 2\n if (Number.isInteger(value) && value > 0) {\n maximumFractionDigits = 0\n }\n\n return maximumFractionDigits\n}\n\n/**\n * Receives the localization context and a currency value and code,\n * formats the currency value as per currency code and locale\n * and adds the proper currency symbol based on the localization\n *\n * @param {string} value\n * @param {string} currencyCode\n * @param {Object} additionalConfig\n * @param {Object} worldReady\n * @returns {string}\n *\n * @see go/worldreadyjs => Currency => Displaying Currencies\n */\nfunction formatCurrency({\n value,\n currencyCode,\n additionalConfig,\n worldReady = getPlainWorldReadyContext(),\n}) {\n const number = isNaN(value) ? 0 : value\n const floatValue = parseFloat(number)\n const maximumFractionDigits = getMaximumFractionDigits(floatValue)\n\n return new CurrencyFormat(worldReady, {\n currency: currencyCode,\n maximumFractionDigits,\n ...additionalConfig,\n }).format(floatValue)\n}\n\n/**\n * Receives the localization context,\n * the a date string or instance and extra options if required\n * and returns a formated date based on the default style or\n * provided options\n *\n * @param {Object} worldReady\n * @param {date|string} value\n * @param {Object} options\n * @returns {string}\n */\nfunction formatDate(worldReady, value, options) {\n const date = value instanceof Date ? value : new Date(value)\n return new DateTimeFormat(worldReady, {\n style: 'date-medium',\n timeZone: getTimeZone(),\n ...options,\n }).format(date)\n}\n\n/**\n * This function mimics the current Griffin's formatDate function\n * TODO: This function can be removed once everything is migrated\n * @param date\n * @param style\n * @returns {string}\n */\nexport function legacyFormatDate(date, style = 'date-short') {\n const worldReady = getPlainWorldReadyContext()\n return formatDate(worldReady, date, { style })\n}\n\n/*\n* Parses a string into a Date\n* @param {string} text\n* @param {Object} options\n* @param {Object} worldReady\n* @returns {Date}\n*/\nexport function parseDate(\n text,\n options,\n worldReady = getPlainWorldReadyContext()\n) {\n if (typeof text !== 'string') {\n return null\n }\n return new DateTimeFormat(worldReady, {\n style: 'date-medium',\n timeZone: getTimeZone(),\n ...options,\n }).parse(text)\n}\n\n/**\n * Receives the worldReady localization context contentId, formatOptions\n * and returns a formatted/localized string\n *\n * @param {Object} worldReady\n * @param {string} contentId\n * @param {Object} formatOptions\n * @returns {string}\n */\nfunction formatMessage(worldReady, contentId, formatOptions) {\n return new MessageFormat(worldReady, { id: contentId }).format(formatOptions)\n}\n\n/**\n * Receives the worldReady localization context contentId, formatOptions\n * and returns a formatted/localized string\n * name schema -> https://github.paypal.com/ApiSpecifications-R/CommonComponentsSpecification/blob/v3/schema/name.json\n * @param {Object} worldReady\n * @param {Object} name\n * @param {Object} formatOptions\n * @returns {string}\n */\nfunction formatName(worldready, name, options) {\n return new NameFormat(worldready, {\n nameRegion: getCountry(),\n ...options,\n }).format(name)\n}\n\n/**\n * Returns a decimal number formatted as percent\n * i.e. 0.125 returns as 12.5%\n *\n * @param {string|number} value\n * @param {Object} formatOptions\n * @param {Object} worldReady\n * @returns {string}\n */\nfunction formatPercent(\n value,\n formatOptions = {},\n worldReady = getPlainWorldReadyContext()\n) {\n const number = isNaN(value) ? 0 : value\n const floatValue = parseFloat(number)\n const maximumFractionDigits = getMaximumFractionDigits(floatValue)\n\n const numberFormatter = new NumberFormat(worldReady, {\n style: 'percent',\n maximumFractionDigits,\n ...formatOptions,\n })\n return numberFormatter.format(floatValue)\n}\n\n/**\n * Custom hook to avoid the use of the HOC injectWorldReady in every component\n *\n * @returns {Object} Depends on the called function\n */\nfunction useIntl() {\n const worldReady = useContext(WorldReadyContext)\n\n return {\n formatCurrency: (value, currencyCode, additionalConfig) => {\n return formatCurrency({\n value,\n worldReady,\n currencyCode,\n additionalConfig,\n })\n },\n formatDate: (value, options) => {\n return formatDate(worldReady, value, options)\n },\n formatMessage: (contentId, formatOptions) => {\n return formatMessage(worldReady, contentId, formatOptions)\n },\n formatName: (name, formatOptions) => {\n return formatName(worldReady, name, formatOptions)\n },\n formatPercent: (number, formatOptions) => {\n return formatPercent(number, formatOptions, worldReady)\n },\n }\n}\n\nexport function getI18n(filePath) {\n const path = filePath.replaceAll('/', '.')\n\n return (key, values) => {\n const worldReady = getPlainWorldReadyContext()\n const contentId = `${path}.${key}`\n return formatMessage(worldReady, contentId, values)\n }\n}\n\nexport function getMergedI18n(filePaths) {\n const i18ns = filePaths.map(getI18n)\n return (key, values) => {\n const texts = i18ns.map(i18n => i18n(key, values))\n return texts.find(text => !text.includes(key)) || texts[0]\n }\n}\n\nexport {\n useIntl,\n formatCurrency,\n formatDate,\n formatMessage,\n formatName,\n formatPercent,\n getDefaultCurrencyCode,\n getTimeZone,\n getWorldReadyRules,\n}\n","import { WorldReady } from '@paypalcorp/worldready'\nimport { getWorldReadyRules } from 'intl'\n\n// WorldReady should be loaded first before creating any instance of it\nWorldReady.load(getWorldReadyRules())\n","import {\n CROWDFUNDING_GOAL_AMOUNT,\n INTEGRATION_IDENTIFIER_BY_COUNTRY,\n INTEGRATION_IDENTIFIER,\n NON_DISCOVERABLE,\n ONLY_PEOPLE_WITH_LINK,\n EVERYONE,\n} from '../shared_consts'\n\nexport function getMinMaxAmount(campaign) {\n return CROWDFUNDING_GOAL_AMOUNT[campaign.currency] || {}\n}\n\nexport function hasPPGFIntegrationIdentifier(countryCode) {\n return Boolean(\n INTEGRATION_IDENTIFIER_BY_COUNTRY[countryCode]?.INTEGRATION_IDENTIFIER ===\n INTEGRATION_IDENTIFIER.PPGF\n )\n}\n\nexport function getAudience(type) {\n const audience = type === NON_DISCOVERABLE ? ONLY_PEOPLE_WITH_LINK : EVERYONE\n return audience\n}\n","import { decode as base62Decode, encode as base62Encode } from 'base-62.js'\n// returns the full base url of the app\nexport function baseUrl(hostname, requestUri) {\n return `https://${hostname}${requestUri}`\n}\n\n// returns a url to campaign\n// @meDomain - whether the url should be in the .me domain or the default one (.com domain)\n// @shortenedCampaign - whether to generate a url with the short campaign path (`/c/:encoded_id`) or the full one (`/campaign/:base_10_id`)\nexport function campaignUrl(\n campaignId,\n hostname,\n requestUri,\n meDomain = false,\n shortenedCampaign = true\n) {\n const campaignPath = shortenedCampaign ? 'c' : 'campaign'\n campaignId = shortenedCampaign ? encodeCampaignId(campaignId) : campaignId\n if (meDomain) {\n hostname = hostname.replace('.com', '.me').replace('www.', '')\n }\n return `${baseUrl(hostname, requestUri)}/${campaignPath}/${encodeCampaignId(\n campaignId\n )}`\n}\n\nexport function encodeCampaignId(campaignId) {\n if (/^\\d+$/.test(campaignId)) {\n return base62Encode(campaignId)\n }\n return campaignId\n}\n\nexport function decodeCampaignId(campaignId) {\n return base62Decode(campaignId).toString()\n}\n\nexport function dexterURL(returnUrl, redirectUrl) {\n //for AU Country there 2 urls CIP and CRS in any order (first_compliance_Url & next_compliance_Url)\n //for a country other than AU there is only one url first_compliance_Url\n const firstComplianceUrl = Array.isArray(redirectUrl) && redirectUrl[0]\n const nextComplianceUrl = Array.isArray(redirectUrl) && redirectUrl[1]\n\n if (firstComplianceUrl) {\n const url = nextComplianceUrl\n ? `${firstComplianceUrl}?returnUrl=${returnUrl}?next_compliance_Url=${nextComplianceUrl}`\n : `${firstComplianceUrl}?returnUrl=${returnUrl}`\n return url\n }\n return `/policydashboard/process/compliance/cip?returnUrl=${returnUrl}&attempt_intention=moneypool_creation&pp_flow=moneypool_creation_web_app`\n}\nexport function validateImagePath(path) {\n const imageExtensions = ['.jpg', '.jpeg', '.png', '.svg']\n return imageExtensions.some(extension =>\n path?.toLowerCase().endsWith(extension)\n )\n ? path\n : false\n}\n","import { createSelector } from 'reselect'\n\nconst loginInfoSelector = state => state.login_info\nconst countrySelector = state => state.country\n\nexport function loginUrlSelector({\n returnUri,\n onboardData,\n showGuest = false,\n}) {\n return createSelector(\n [loginInfoSelector, countrySelector],\n (loginInfo, country) => {\n const baseLoginUrl = loginInfo.login_url\n const localeParams = country\n ? `&locale.x=${country.locale}&country.x=${country.country_code}`\n : ''\n\n const encodedURI = encodeURIComponent(returnUri)\n const guest = showGuest ? '&intent=signin' : ''\n const ctxId = showGuest ? `&ctxId=${loginInfo.mayfly_key}` : ''\n let loginUrl = `${baseLoginUrl}?returnUri=${encodedURI}${guest}${ctxId}${localeParams}`\n\n // NOTE: The Unified Login page which has the \"Contribute as a Guest\" CTA\n // doesn't support signup through Tesla at this point, so\n // onboarding data is useless\n if (!showGuest && onboardData !== undefined) {\n loginUrl += '&' + onboardData\n }\n return loginUrl\n }\n )\n}\n\nexport function logoutUrlSelector({ returnUri = '/' } = {}) {\n return createSelector([loginInfoSelector], loginInfo => {\n const baseLogoutUrl = loginInfo.logout_url\n return `${baseLogoutUrl}?returnUri=${encodeURIComponent(returnUri)}`\n })\n}\n\nexport const isLoggedInSelector = createSelector(\n [loginInfoSelector],\n loginInfo => loginInfo.logged_in\n)\n","function veniceBridge() {\n return window.venice\n}\n\nfunction callBridgeFunction(funcName, ...args) {\n const bridge = veniceBridge()\n if (bridge) {\n if (typeof bridge[funcName] === 'function') {\n bridge[funcName].apply(bridge, args)\n }\n }\n}\n\nexport function campaignCreated() {\n callBridgeFunction('created')\n}\n\nexport function reAuth() {\n callBridgeFunction('reAuth')\n}\n","import { createSelector } from 'reselect'\n\nconst mobileAppSelector = state => state.mobile_app\n\nexport function fromVeniceSelector() {\n return createSelector(mobileAppSelector, mobileApp => mobileApp.from_app)\n}\n\nexport const canManageVeniceSelector = createSelector(\n mobileAppSelector,\n mobileApp => mobileApp.can_manage\n)\n\nexport const canShareVeniceSelector = createSelector(\n mobileAppSelector,\n mobileApp => mobileApp.can_share\n)\n","import { createClient } from 'fetch-plus'\nimport { getDataAttr, getJSONFromScript } from './server_params'\nimport fetchPlusJson from 'fetch-plus-json'\nimport fetchPlusCsrf from 'fetch-plus-csrf'\nimport { TEST_OPTIONS_HEADER } from 'shared/shared_consts'\nimport { loginUrlSelector } from 'redux/selectors/login'\nimport { reAuth } from 'lib/venice_bridge'\nimport { fromVeniceSelector } from 'redux/selectors/venice'\n\nlet _fetchClient = null\n\nconst cookieMiddleware = request => {\n request.options.credentials = 'same-origin'\n return response => response\n}\n\nconst XHRMiddleware = request => {\n request.options.headers['X-Requested-With'] = 'XMLHttpRequest'\n return response => response\n}\n\nconst testMiddleware = options => request => {\n request.options.headers[TEST_OPTIONS_HEADER] = options\n}\n\nfunction handleAuthFailure(loginUrl, fromVenice) {\n if (fromVenice) {\n reAuth()\n } else {\n location.href = loginUrl\n }\n // We want to wait until redirect / venice handling is complete, so we return a promise that will never be resolved\n return new Promise((resolve, reject) => {})\n}\n\n// Apparently, fetch-plus-json doesn't handle errors properly so we have to do this.\n// See also https://github.com/RickWong/fetch-plus/issues/24\n// First parameter is the function to call when there was an authentication failure (HTTP 401)\nconst jsonErrorMiddleware = authFailure => request => {\n return {\n error: response => {\n if (!response.ok) {\n if (response.status === 401) {\n return authFailure()\n } else if (typeof response.json === 'function') {\n const json = response.json()\n if (json.then) {\n return json.then(body => {\n throw body // reject the promise with the new json\n })\n }\n throw json\n }\n }\n throw response // fatal error\n },\n }\n}\n\nfunction createFetchClient(csrfToken) {\n const store = getJSONFromScript('store')\n const loginUrl = loginUrlSelector({ returnUri: window.location.href })(store)\n const fromVenice = fromVeniceSelector()(store)\n _fetchClient = createClient('')\n _fetchClient.addMiddleware(fetchPlusJson())\n _fetchClient.addMiddleware(\n jsonErrorMiddleware(handleAuthFailure.bind(null, loginUrl, fromVenice))\n )\n _fetchClient.addMiddleware(XHRMiddleware)\n _fetchClient.addMiddleware(cookieMiddleware)\n if (csrfToken) {\n _fetchClient.addMiddleware(fetchPlusCsrf('X-CSRF-Token', csrfToken))\n }\n\n if (process.env.NODE_ENV !== 'production') {\n const testOptions = getDataAttr('test-options')\n if (testOptions) {\n _fetchClient.addMiddleware(testMiddleware(testOptions))\n }\n }\n return _fetchClient\n}\n\nexport default function fetchClient() {\n return _fetchClient || createFetchClient(getDataAttr('csrf'))\n}\n","/*\n * USAGE EXAMPLE:\n *\n * import routes from 'server_routes'\n *\n * let url = paths.campaign.activity({id: 12345})\n * console.log(url)\n * > /pools/c/12345/activity\n */\n\nfunction generatePathFunction(route) {\n return (ids = {}) => {\n let clonedRoute = `${GLOBAL_CONSTS.REQUEST_URI}${route}`\n Object.keys(ids).forEach(key => {\n clonedRoute = clonedRoute.replace(`:${key}`, encodeURIComponent(ids[key]))\n })\n return clonedRoute\n }\n}\n\nexport default {\n error: generatePathFunction('/error'),\n campaign: {\n index: generatePathFunction('/c'),\n id: generatePathFunction('/c/:id'),\n api: {\n index: generatePathFunction('/api/campaign'),\n id: generatePathFunction('/api/campaign/:id'),\n end: generatePathFunction('/api/campaign/:id/end'),\n withdraw: generatePathFunction('/api/campaign/:id/withdraw'),\n chip_in: generatePathFunction('/api/campaign/:id/chip_in'),\n create_payments_token: generatePathFunction(\n '/api/campaign/payments_token'\n ),\n get_payments_token_transaction: generatePathFunction(\n '/api/campaign/payments_token/:id'\n ),\n },\n },\n organizer_update: {\n api: {\n index: generatePathFunction('/api/organizer_update'),\n },\n },\n contributors: {\n api: {\n transactions: generatePathFunction('/api/contributors/transactions'),\n },\n },\n funding_sources: {\n api: {\n index: generatePathFunction('/api/funding_sources'),\n balances: generatePathFunction('/api/funding_sources/balances'),\n },\n },\n charity: {\n api: {\n getCharities: generatePathFunction('/api/charity'),\n },\n },\n}\n","import { isNil } from 'lodash'\n\nexport function inverseLerp(start, end, value) {\n return (value - start) / (end - start)\n}\n\n/**\n * Returns a safe number from the given value\n * validating that is not null, undefined, an empty string, or not a number.\n *\n * @param {string|number} value - The value to parse.\n * @returns {float} - The given value as float or 0.\n */\nexport function safeNumber(value) {\n const parsedValue = parseFloat(value)\n if (isNil(value) || value === '' || isNaN(parsedValue)) {\n return 0\n } else {\n return parsedValue\n }\n}\n","import {\n INTEGRATION_IDENTIFIER,\n INTEGRATION_IDENTIFIER_BY_COUNTRY,\n NON_DISCOVERABLE,\n} from '../../shared/shared_consts'\nimport { safeNumber } from 'shared/helpers/math_helpers'\n\n/**\n * Get total value of campaign including any creator pledge. This can be\n * different the pool balance due to pledges, pool withdrawls, creator having\n * a negative balance when a contributor chips-in, etc.\n * @param {number|string} currentValue - total value of contributions to pool\n * @param {number|string} pledge - total pledge made by pool creator\n * @returns {float} total value of campaign contributions including pledge\n *\n * Keep in mind: If we ever handle cents, this needs to be checked because\n * 95.15 + 10.15 = 105.30000000000001 because of parseFloat issues but\n * probably WorldReadyJS will take care of this, is good to be aware though\n */\nexport function getCampaignTotalValue({ currentValue, pledge }) {\n return safeNumber(currentValue) + safeNumber(pledge)\n}\n\nexport function getCampaignType(store, campaignId) {\n const state = store.getState()\n return (\n state.campaign &&\n state.campaign[campaignId] &&\n state.campaign[campaignId].campaign_type\n )\n}\n\nexport function getNonDiscoverable(discoverable) {\n if (discoverable === NON_DISCOVERABLE) {\n return true\n }\n // if discoverable is not set the default is discoverable\n // which makes non_discoverable false\n return false\n}\n\nexport function hasDirectIntegrationIdentifier(countryCode) {\n return Boolean(\n INTEGRATION_IDENTIFIER_BY_COUNTRY[countryCode]?.INTEGRATION_IDENTIFIER ===\n INTEGRATION_IDENTIFIER.DIRECT\n )\n}\n","import { getNonDiscoverable } from './campaign'\n\nexport function serializeCampaignToServer(\n campaignData,\n { alwaysIncludePan = false } = {}\n) {\n const { user_legal_agreement_version } = campaignData\n const serializedData = {\n campaign_type: campaignData.campaign_type,\n amount_type: campaignData.amount_type,\n amount: campaignData.amount,\n currency: campaignData.currency,\n background_image: campaignData.background_image,\n background_image_filename: campaignData.background_image\n ? campaignData.background_image_filename\n : undefined,\n background_pan:\n campaignData.background_image || alwaysIncludePan\n ? campaignData.background_pan\n : undefined,\n description: campaignData.description,\n event_name: campaignData.event_name,\n postal_code: campaignData.postal_code,\n end_date: campaignData.end_date\n ? new Date(campaignData.end_date).toISOString()\n : undefined,\n goal: campaignData.goal,\n gradient_color: campaignData.gradient_color,\n title: campaignData.title,\n share_progress: campaignData.share_progress,\n share_contributors: campaignData.share_contributors,\n //If we don't share progress we don't share contributions as well. This change has to be done after the redux form.\n share_contributions:\n campaignData.share_progress && campaignData.share_contributions,\n pledge: campaignData.pledge,\n npid: campaignData.npid,\n non_discoverable: getNonDiscoverable(campaignData.discoverable),\n }\n if (campaignData.npid) {\n serializedData.categories = campaignData.category\n } else {\n serializedData.category = campaignData.category\n }\n if (user_legal_agreement_version) {\n serializedData.user_legal_agreement_version = user_legal_agreement_version\n }\n return serializedData\n}\n","export function daysUntilToday(startDate) {\n return daysFromTo(startDate, new Date())\n}\n\nexport function daysFromToday(endDate) {\n return daysFromTo(new Date(), endDate)\n}\n\nexport function hoursFromToday(endDate) {\n return (endDate - new Date()) / 1000 / 60 / 60\n}\n\nexport function daysFromTo(startDate, endDate) {\n return Math.floor((endDate - startDate) / 1000 / 60 / 60 / 24)\n}\n\nexport function endOfDay(date) {\n return new Date(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n 23,\n 59,\n 59\n )\n}\n\nexport const formatTime = {\n hours: 'H',\n minutes: 'M',\n}\n\nexport function detailDaysFromToday(timestamp) {\n const endDate = new Date(timestamp)\n const today = new Date()\n let days = 0\n let hours = 0\n let minutes = 0\n let seconds = 0\n\n if (endDate < today) {\n return {\n days,\n hours,\n minutes,\n seconds,\n }\n }\n\n let delta = Math.abs(endDate - today) / 1000\n // calculate (and subtract) whole days\n days = daysFromToday(endDate)\n\n delta -= days * 86400\n\n // calculate (and subtract) whole hours\n hours = Math.floor(delta / 3600) % 24\n delta -= hours * 3600\n\n // calculate (and subtract) whole minutes\n minutes = Math.floor(delta / 60) % 60\n delta -= minutes * 60\n\n // what's left is seconds\n seconds = Math.floor(delta % 60)\n\n return {\n days,\n hours,\n minutes,\n seconds,\n }\n}\n","import Cookies from 'js-cookie'\nimport { USR_TXNS_COOKIE_EXPIRY } from 'shared/shared_consts'\nimport { txnsCookieKey } from 'shared/cookie_key'\n\nexport function saveTxnInCookie(campaignId, userId, txn) {\n const userTxnsCookiesKey = txnsCookieKey(campaignId, userId)\n const rawUserTxns = Cookies.get(userTxnsCookiesKey)\n let userTxns\n try {\n userTxns = rawUserTxns ? JSON.parse(decodeURIComponent(rawUserTxns)) : []\n } catch (err) {\n userTxns = []\n }\n userTxns.push(txn)\n const userTxnExpiryTime = new Date(\n new Date().getTime() + USR_TXNS_COOKIE_EXPIRY\n )\n Cookies.set(userTxnsCookiesKey, JSON.stringify(userTxns), {\n expires: userTxnExpiryTime,\n })\n}\n","export function txnsCookieKey(campaignId, userId) {\n return `${campaignId}-${userId}-txns`\n}\n","import { getValues } from 'redux-form'\nimport { saveTxnInCookie } from '../../lib/cookies_utils'\nimport { trackImpression } from 'lib/fpti_analytics'\nimport { decodeCampaignId } from 'shared/campaign_url'\nimport { LOCATION_CHANGE } from 'react-router-redux'\n\nconst RESET_IFRAME_STATE = 'pools/campaign/RESET_IFRAME_STATE'\nconst START_IFRAME_LOAD = 'pools/campaign/START_IFRAME_LOAD'\nconst FINISH_IFRAME_LOAD = 'pools/campaign/FINISH_IFRAME_LOAD'\nconst REPORT_ERROR_FROM_IFRAME = 'pools/campaign/REPORT_ERROR_FROM_IFRAME'\nconst FAILED_IFRAME_LOAD = 'pools/campaign/FAILED_IFRAME_LOAD'\nconst START_IFRAME_SEND = 'pools/campaign/START_IFRAME_SEND'\nexport const FINISH_IFRAME_SEND_SUCCESSFULLY =\n 'pools/campaign/FINISH_IFRAME_SEND_SUCCESSFULLY'\n\nconst DEFAULT_STATE = {\n loading_done: false,\n iframe_loading: false,\n sending_iframe: false,\n send_successful: false,\n send_done: false,\n gs_bypass: window.location.search.indexOf('gsbps=true') >= 0,\n}\n\nexport default function reducer(state = DEFAULT_STATE, action) {\n if (action.type === RESET_IFRAME_STATE) {\n return DEFAULT_STATE\n } else if (action.type === START_IFRAME_LOAD) {\n return { ...state, iframe_loading: true, loading_done: false }\n } else if (action.type === FINISH_IFRAME_LOAD) {\n return { ...state, iframe_loading: false, loading_done: true }\n } else if (action.type === REPORT_ERROR_FROM_IFRAME) {\n return { ...state, iframe_error: action.message }\n } else if (action.type === START_IFRAME_SEND) {\n return { ...state, send_done: false, amount: undefined }\n } else if (action.type === FINISH_IFRAME_SEND_SUCCESSFULLY) {\n return {\n ...state,\n campaign_id: action.payload.txn.campaignId,\n send_done: true,\n send_successful: true,\n amount: action.payload.txn.amount,\n payment_id: action.payload.txn.paymentId,\n }\n } else if (action.type === LOCATION_CHANGE) {\n return {\n ...state,\n iframe_loading: false,\n }\n }\n return state\n}\n\nexport function resetIFrameState() {\n return { type: RESET_IFRAME_STATE }\n}\n\nexport function startIFrameLoad() {\n return { type: START_IFRAME_LOAD }\n}\n\nexport function finishIFrameLoad() {\n return { type: FINISH_IFRAME_LOAD }\n}\n\nexport function reportErrorFromIFrame(message) {\n return { type: REPORT_ERROR_FROM_IFRAME, message }\n}\n\nexport function failedIFrameLoad() {\n return { type: FAILED_IFRAME_LOAD }\n}\n\nexport function startIFrameSend() {\n return { type: START_IFRAME_SEND }\n}\n\nexport function finishIFrameSendSuccessfully(\n campaignId,\n amount,\n currency,\n paymentId\n) {\n return (dispatch, getState) => {\n const state = getState()\n\n if (!getState().send_iframe.send_done) {\n let sendForm\n if (state.server.isReturningFromWallet) {\n sendForm = { ...state.preloadSendValues }\n } else {\n sendForm = getValues(getState().form.send)\n }\n const anonymous = sendForm.anonymous\n const note = sendForm.note\n const date = new Date().toISOString()\n let sender\n const txn = {\n amount: parseFloat(amount),\n campaignId,\n currency,\n note,\n paymentId,\n anonymous,\n date,\n }\n if (anonymous) {\n sender = {}\n } else {\n sender = {\n id: getState().current_user.id,\n name:\n getState().current_user.business_name ||\n getState().current_user.full_name,\n photo: getState().current_user.profile_photo,\n }\n }\n saveTxnInCookie(campaignId, getState().current_user.id, txn)\n trackImpression({\n pageName: 'campaign-xxx-send-success',\n campaignId: decodeCampaignId(campaignId),\n amount: amount,\n currency: currency,\n })\n // since there's no actual router change - need to track this manually\n dispatch({\n type: FINISH_IFRAME_SEND_SUCCESSFULLY,\n payload: { txn, sender },\n })\n }\n }\n}\n","import { FINISH_IFRAME_SEND_SUCCESSFULLY } from './send_iframe'\nimport {\n FINISH_CHIP_IN_SUCCESSFULLY,\n FINISH_WITHDRAW_SUCCESSFULLY,\n} from './campaign'\n\nconst INFLATION_DELAY = 500\n\nexport const INFLATE = 'pools/user_txns/INFLATE'\n\nexport default function reducer(state = { list: [] }, action) {\n switch (action.type) {\n case FINISH_CHIP_IN_SUCCESSFULLY:\n case FINISH_IFRAME_SEND_SUCCESSFULLY:\n case FINISH_WITHDRAW_SUCCESSFULLY: {\n const newTxn = {\n id: action.payload.txn.paymentId,\n campaign_id: action.payload.txn.campaignId,\n date: action.payload.txn.date,\n amount: action.payload.txn.amount,\n note: action.payload.txn.note,\n anonymous: action.payload.txn.anonymous,\n pending: action.payload.txn.pending,\n owner_chip_in: action.type === FINISH_CHIP_IN_SUCCESSFULLY, // chipper gets feedback that the txn succeeded, even if pending.\n withdraw: action.payload.txn.withdraw,\n contributor_id: action.payload.sender && action.payload.sender.id,\n contributor_name: action.payload.sender && action.payload.sender.name,\n contributor_photo: action.payload.sender && action.payload.sender.photo,\n }\n // TODO: the `no-extra-parens` rule will be fixed in a future ESLint version to work well with spread operators.\n // eslint-disable-next-line no-extra-parens\n return { ...state, list: [newTxn, ...(state.list || [])] }\n }\n case INFLATE: {\n return { ...state, list: [] }\n }\n default:\n return state\n }\n}\n\nexport function inflateUserTxns(id) {\n return (dispatch, getState) => {\n setTimeout(() => {\n let list = getState().user_txns.list || []\n list = list.filter(txn => txn.campaign_id === id)\n dispatch({ type: INFLATE, payload: { id, list } })\n }, INFLATION_DELAY)\n }\n}\n","import _ from 'lodash'\nimport { getI18n } from 'intl'\n\nconst i18nBase = getI18n('components/crowdfunding_category')\n\nexport const getTranslatedCategoryList = state => {\n const catList = _.get(state, 'categoryData', [])\n const options = catList.map(listItem => {\n return {\n key: listItem.key,\n value: listItem.key,\n label: i18nBase(`category.${listItem.key}.name`),\n sortKey: i18nBase(`category.${listItem.key}.sortkey`),\n primaryText: i18nBase(`category.${listItem.key}.name`),\n }\n })\n options.sort((catA, catB) => catA.sortKey - catB.sortKey)\n return options\n}\n\nexport const isValidCategory = (state, value = '') => {\n return _.find(\n getTranslatedCategoryList(state),\n listItem => listItem.value === value\n )\n}\n\nexport const getCategoryLabel = (state, value = '') => {\n const campaignCategoryValue = value?.toString()\n const category =\n _.find(\n getTranslatedCategoryList(state),\n listItem => listItem.value === campaignCategoryValue\n ) || {}\n const categoryLabel = _.get(category, 'label', '')\n return categoryLabel\n}\n\nexport const getCategoryDefaultCover = (state, value = '') => {\n const categoryList = _.get(state, 'categoryData', [])\n const selectedCategory = _.find(\n categoryList,\n category => category.key === value\n )\n\n return selectedCategory && selectedCategory.cover\n}\n\nexport const getMainCategory = category => {\n if (Array.isArray(category)) {\n return category[0]\n }\n return category\n}\n\nconst crowdfundingCategoryKey = [\n '1001',\n '1002',\n '1003',\n '1004',\n '1005',\n '1006',\n '1007',\n '1008',\n '1009',\n '1014',\n '1015',\n '1017',\n '1018',\n '1019',\n '1020',\n '1021',\n '1022',\n]\n\nexport const filterDepreciatedCategory = (\n categoryList,\n isNewCategoryEnabled = true\n) => {\n if (isNewCategoryEnabled) {\n return categoryList.filter(category =>\n crowdfundingCategoryKey.includes(category.key)\n )\n } else {\n return categoryList.filter(category => isNaN(category.key))\n }\n}\n\nexport const sortCategory = categoryList => {\n return categoryList.sort((a, b) => a.label.localeCompare(b.label))\n}\n\nexport const generateCategoryName = (state, category) => {\n if (!category) {\n return ''\n }\n if (Array.isArray(category)) {\n const categories = category.map(element => getCategoryLabel(state, element))\n return categories.join(', ')\n }\n return getCategoryLabel(state, category)\n}\n\nexport default {\n getTranslatedCategoryList,\n filterDepreciatedCategory,\n isValidCategory,\n getCategoryLabel,\n getCategoryDefaultCover,\n}\n","import { createSelector } from 'reselect'\n\nimport { isObject } from 'shared/helpers/obj_helpers'\nimport { NEW_CAMPAIGN_ID } from 'redux/modules/campaign'\nimport {\n POOLS_CAMPAIGN_TYPES,\n POOLS_STATUS,\n USER_CONSENT_STATUS,\n} from 'shared/shared_consts'\nimport { getMainCategory } from 'client/lib/category'\nimport { hoursFromToday } from 'shared/helpers/datetime_helpers'\n\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\n\nexport const getCurrentUserId = state => {\n return state.current_user && state.current_user.id\n ? state.current_user.id\n : ''\n}\n\nexport const getActiveUserConsent = state => {\n const userConsent = state.current_user?.user_consent?.user_consent_data\n return userConsent?.status === USER_CONSENT_STATUS.PENDING ? userConsent : {}\n}\n\nexport const getCampaigns = state => state.campaign\n\nexport const getCampaignFromProps = (state, { campaignId }) => {\n return state.campaign[campaignId]\n}\nconst getCampaignFromLastCreationId = state =>\n state.campaign[state.campaign.last_creation_id]\n\nexport const getLastCreatedCampaignSelector = createSelector(\n getCampaignFromLastCreationId,\n campaign => campaign\n)\n\nexport const getCampaignSelector = createSelector(\n getCampaignFromProps,\n campaign => campaign\n)\n\nexport const getNewCampaignSelector = createSelector(\n getCampaigns,\n campaigns => {\n return campaigns[NEW_CAMPAIGN_ID]\n }\n)\n\nfunction isValidCampaign(campaign) {\n if (!isObject(campaign)) {\n return false\n }\n\n if (campaign.deleted || campaign.id === NEW_CAMPAIGN_ID) {\n return false\n }\n\n return true\n}\n\nexport const allCampaignsSelector = createSelector(getCampaigns, campaigns => {\n let allCampaigns = Object.values(campaigns).filter(isValidCampaign)\n allCampaigns.forEach(campaign => {\n campaign.category = getMainCategory(campaign.category)\n })\n return getAllCampaign(allCampaigns)\n})\n\nexport const isGNSelector = createSelector(getCampaignSelector, campaign => {\n const hasCrowdfinding = Boolean(\n campaign && campaign.campaign_type === CROWD_FUNDING\n )\n const hasCharity = Boolean(campaign && campaign.charity)\n\n if (hasCharity) {\n return false\n }\n return hasCrowdfinding\n})\n\nexport const isGNCSelector = createSelector(getCampaignSelector, campaign => {\n const hasCrowdfinding = Boolean(\n campaign && campaign.campaign_type === CROWD_FUNDING\n )\n const hasCharity = Boolean(campaign && campaign.charity)\n\n if (!hasCharity) {\n return false\n }\n return hasCrowdfinding\n})\n\nexport const getCampaignCategorySelector = createSelector(\n getCampaignFromProps,\n campaign => {\n if (!campaign || !campaign.category) {\n return undefined\n }\n return campaign.category\n }\n)\n\nexport const getPersonalizationStudioBannerSelector = createSelector(\n state => state.personalizationStudio.banner,\n banner => banner || {}\n)\n\nexport const getAllowEntryBannerSelector = createSelector(\n getPersonalizationStudioBannerSelector,\n banner => {\n const { bannerIcon, bannerButtonText, bannerLink, bannerTitleText } = banner\n return Boolean(\n bannerIcon && bannerButtonText && bannerLink && bannerTitleText\n )\n }\n)\n\n/*\nOpen Fundraisers\n 1. Fundraisers ending in next 48 hrs order by end time ascending.\n 2. Inactive GN Fundraisers with balance in descending order of balance.\n 3. Active Fundraisers ascending order of end date.\n Closed Fundraisers\n 1. Fundraisers ended in descending order of expiry_date after the money is transferred\n*/\nexport function getAllCampaign(allCampaigns) {\n let fundraisersExpiringIn48Hours = []\n let fundraisersEndedWithBalance = []\n let activeFundraisersMoreThan48Hours = []\n let closedFundraisers = []\n\n allCampaigns.forEach(campaign => {\n let hoursToExpire = hoursFromToday(new Date(campaign.end_date))\n let campaignBalance = campaign.moneybox_amount\n ? campaign.moneybox_amount\n : 0\n\n if (hoursToExpire <= 48 && hoursToExpire >= 0) {\n campaign.event_status = POOLS_STATUS.EXPIRE_SOON\n fundraisersExpiringIn48Hours.push(campaign)\n } else if (campaignBalance > 0 && hoursToExpire < 0) {\n campaign.event_status = POOLS_STATUS.OPEN\n fundraisersEndedWithBalance.push(campaign)\n } else if (hoursToExpire > 48) {\n campaign.event_status = POOLS_STATUS.OPEN\n activeFundraisersMoreThan48Hours.push(campaign)\n } else {\n campaign.event_status = POOLS_STATUS.EXPIRED\n closedFundraisers.push(campaign)\n }\n })\n //Fundraisers ending in next 48 hrs order by end time ascending.\n fundraisersExpiringIn48Hours.sort(\n (campaign1, campaign2) =>\n new Date(campaign1.end_date).valueOf() -\n new Date(campaign2.end_date).valueOf()\n )\n //Inactive GN Fundraisers with balance in descending order of balance.\n fundraisersEndedWithBalance.sort(\n (campaign1, campaign2) =>\n campaign2.moneybox_amount - campaign1.moneybox_amount\n )\n //Active Fundraisers ascending order of end date.\n activeFundraisersMoreThan48Hours.sort(\n (campaign1, campaign2) =>\n new Date(campaign1.end_date).valueOf() -\n new Date(campaign2.end_date).valueOf()\n )\n //Fundraisers ended in descending order of expiry_date after the money is transferred\n closedFundraisers.sort(\n (campaign1, campaign2) =>\n new Date(campaign2.end_date).valueOf() -\n new Date(campaign1.end_date).valueOf()\n )\n return {\n openFundraisers: [\n ...fundraisersExpiringIn48Hours,\n ...fundraisersEndedWithBalance,\n ...activeFundraisersMoreThan48Hours,\n ],\n closedFundraisers,\n }\n}\n\n/**\n * Get an integer from how many valid campaigns are in the state\n *\n * @param {object} state\n * @returns {int} Amount of valid campaigns\n */\nexport function getCampaignCount(state) {\n const campaigns = getCampaigns(state)\n const excludeKeys = ['undefined']\n const filteredCampaigns = Object.keys(campaigns).filter(\n key => isValidCampaign(campaigns[key]) && !excludeKeys.includes(key)\n )\n\n return filteredCampaigns.length\n}\n","export function values(obj) {\n return Object.keys(obj).map(key => obj[key])\n}\n\n// makes sure that all of the keys are in the obj, or none of them are\nexport function colocate(obj, ...keys) {\n let returnValue = { ...obj }\n const existingKeys = keys.filter(key => !!obj[key])\n\n if (existingKeys.length !== 0 && existingKeys.length !== keys.length) {\n existingKeys.forEach(key => {\n delete returnValue[key]\n })\n }\n\n return returnValue\n}\n\nexport function isEmptyObject(obj) {\n return Object.keys(obj).length === 0 && obj.constructor === Object\n}\n\nexport function isObject(obj) {\n return obj !== null && typeof obj === 'object'\n}\n","import fetchClient from 'lib/fetch_client'\nimport routes from 'server_routes'\n\nexport const CREATE_DNW_TRANSACTION_REQUEST = 'CREATE_DNW_TRANSACTION_REQUEST'\nexport const CREATE_DNW_TRANSACTION_SUCCESS = 'CREATE_DNW_TRANSACTION_SUCCESS'\nexport const CREATE_DNW_TRANSACTION_FAILURE = 'CREATE_DNW_TRANSACTION_FAILURE'\nexport const CLEAR_DNW_TRANSACTION_ERROR = 'CLEAR_DNW_TRANSACTION_ERROR'\nexport const SET_IS_LOADING = 'SET_IS_LOADING'\n\nconst initialState = {\n isLoading: false,\n error: '',\n}\n\nexport default function reducer(state = initialState, action) {\n switch (action.type) {\n case SET_IS_LOADING: {\n return {\n ...state,\n isLoading: action.payload.isLoading,\n }\n }\n case CREATE_DNW_TRANSACTION_FAILURE: {\n const { payload } = action\n const error =\n payload.error.name || payload.error.error || payload.error.message\n return {\n ...state,\n error,\n isLoading: false,\n }\n }\n case CREATE_DNW_TRANSACTION_SUCCESS: {\n return {\n ...state,\n isLoading: false,\n }\n }\n case CLEAR_DNW_TRANSACTION_ERROR: {\n return {\n ...state,\n error: '',\n }\n }\n default:\n return state\n }\n}\n\nexport const buildTransaction = config => {\n return {\n amount: parseFloat(Number(config.transaction_details.amount.value)),\n anonymous: config.anonymous,\n contributor_name: config.contributor_name,\n campaign_id: config.campaign_id,\n ...(config.anonymous\n ? { contributor_id: false }\n : { contributor_id: config.transaction_details.payer_id }),\n currency: config.transaction_details.amount.currency,\n date: config.date,\n id: config.transaction_details.id,\n note: config.transaction_details.note_to_payee,\n }\n}\n\nexport function createDNWTransaction({\n campaignId,\n hasFullPageDonationRedirect,\n}) {\n return (dispatch, getState) => {\n dispatch(setIsLoading(true))\n\n return fetchClient()\n .request(routes.campaign.api.create_payments_token(), {\n method: 'POST',\n body: { campaignId },\n })\n .then(({ baseUrl, token }) => {\n dispatch(createDNWTransactionRequest())\n if (hasFullPageDonationRedirect) {\n window.location.href = `${baseUrl}/donate?token=${token}`\n } else {\n dispatch(setIsLoading(false))\n\n // eslint-disable-next-line new-cap\n const instance = window.Donation.Checkout({\n baseUrl,\n token,\n type: 'remote',\n onComplete(onCompleteResponse) {\n dispatch(setIsLoading(true))\n return fetchClient()\n .request(\n routes.campaign.api.get_payments_token_transaction({\n id: token,\n }),\n {\n method: 'GET',\n }\n )\n .then(({ anonymous, sender, transaction_details }) => {\n dispatch(\n createDNWTransactionSuccess(\n buildTransaction({\n anonymous: anonymous,\n contributor_name: sender.full_name,\n campaign_id: campaignId,\n date: new Date().toISOString(),\n transaction_details: {\n ...transaction_details,\n },\n }),\n sender\n )\n )\n })\n .catch(error => {\n dispatch(createDNWTransactionFailure(error))\n return error\n })\n },\n })\n instance.renderTo(window)\n }\n\n return token\n })\n .catch(error => {\n dispatch(createDNWTransactionFailure(error))\n return error\n })\n }\n}\n\nexport function setIsLoading(isLoading) {\n return {\n payload: {\n isLoading: isLoading,\n },\n type: SET_IS_LOADING,\n }\n}\n\nexport function createDNWTransactionRequest() {\n return {\n type: CREATE_DNW_TRANSACTION_REQUEST,\n }\n}\nexport function createDNWTransactionSuccess(txn, sender, prevTxnCount) {\n return {\n type: CREATE_DNW_TRANSACTION_SUCCESS,\n payload: { txn, sender, prevTxnCount },\n }\n}\nexport function createDNWTransactionFailure(error) {\n return {\n payload: { error },\n type: CREATE_DNW_TRANSACTION_FAILURE,\n }\n}\n\nexport function clearDNWTransactionError() {\n return {\n payload: {},\n type: CLEAR_DNW_TRANSACTION_ERROR,\n }\n}\n","import fetchClient from 'lib/fetch_client'\nimport routes from 'server_routes'\nimport { getDefaultCurrencyCode } from 'intl'\nimport { colocate } from 'shared/helpers/obj_helpers'\nimport { encodeCampaignId } from 'shared/campaign_url'\nimport { serializeCampaignToServer as serialize } from '../../lib/serializer'\nimport { AMOUNT_TYPES, STORAGE_EXPIRATION } from 'shared/shared_consts'\nimport { endOfDay } from 'shared/helpers/datetime_helpers'\nimport { INFLATE as INFLATE_USER_TXNS } from './user_txns'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { saveTxnInCookie } from 'lib/cookies_utils'\nimport { trackImpression } from 'lib/fpti_analytics'\nimport { LOCATION_CHANGE } from 'react-router-redux'\nimport * as venice from 'lib/venice_bridge'\nimport { CREATE_DNW_TRANSACTION_SUCCESS } from './dnw_transaction'\nimport _get from 'lodash/get'\n\nexport const NEW_CAMPAIGN_ID = '__new_campaign__'\nexport const SET_CURRENT_CAMPAIGN_ID = 'pools/campaign/SET_CURRENT_CAMPAIGN_ID'\n\nconst DEFAULT_PAN = 50\n\nconst CREATE = 'pools/campaign/CREATE'\nconst DELETE = 'pools/campaign/DELETE'\n\nconst SET_DATA = 'pools/campaign/SET_DATA'\n\nconst RESET_REMOTE_OPERATION = 'pools/campaign/RESET_REMOTE_OPERATION'\nconst START_CAMPAIGN_REMOTE_OPERATION =\n 'pools/campaign/START_CAMPAIGN_REMOTE_OPERATION'\nconst FINISH_CAMPAIGN_REMOTE_OPERATION =\n 'pools/campaign/FINISH_CAMPAIGN_REMOTE_OPERATION'\nconst FAILED_CAMPAIGN_REMOTE_OPERATION =\n 'pools/campaign/FAILED_CAMPAIGN_REMOTE_OPERATION'\n\nexport const CAMPAIGN_CREATED = 'pools/campaign/CAMPAIGN_CREATED'\nexport const FINISH_CHIP_IN_SUCCESSFULLY =\n 'pools/campaign/FINISH_CHIP_IN_SUCCESSFULLY'\nexport const FINISH_WITHDRAW_SUCCESSFULLY =\n 'pools/campaign/FINISH_WITHDRAW_SUCCESSFULLY'\nexport const SET_TXN_LIST = 'pools/campaign/SET_TXN_LIST'\nexport const SET_ACTIVITIES_LIST = 'pools/campaign/SET_ACTIVITIES_LIST'\nexport const SET_ORGANIZER_UPDATE_LIST =\n 'pools/campaign/SET_ORGANIZER_UPDATE_LIST'\nexport const DELETE_ORGANIZER_UPDATE = 'pools/campaign/DELETE_ORGANIZER_UPDATE'\nexport const ADD_ORGANIZER_UPDATE = 'pools/campaign/ADD_ORGANIZER_UPDATE'\nexport const EDIT_ORGANIZER_UPDATE = 'pools/campaign/EDIT_ORGANIZER_UPDATE'\nexport const APPEND_ORGANIZER_UPDATE = 'pools/campaign/APPEND_ORGANIZER_UPDATE'\n\nfunction resetExpiration() {\n return { persistExpiresAt: new Date().valueOf() + STORAGE_EXPIRATION }\n}\n\nfunction setInCampaign(state, id, obj) {\n return { ...state, [id]: { ...state[id], ...obj, ...resetExpiration() } }\n}\n\nexport default function reducer(state = {}, action) {\n switch (action.type) {\n case START_CAMPAIGN_REMOTE_OPERATION:\n return setInCampaign(state, action.payload.id, {\n operatingRemotely: true,\n })\n case FINISH_CAMPAIGN_REMOTE_OPERATION:\n return setInCampaign(state, action.payload.id, {\n operatingRemotely: false,\n err: null,\n })\n case SET_TXN_LIST: {\n const newTxns = action.payload.response && action.payload.response.txns\n const list =\n action.page === 1\n ? [...newTxns.list]\n : [...state[action.payload.id].transactions, ...newTxns.list]\n const transactionSummary =\n action.page === 1\n ? { ...newTxns.transactionSummary }\n : { ...state[action.payload.id].transactionSummary }\n return setInCampaign(state, action.payload.id, {\n transactionSummary,\n transactions: list,\n current_value: parseFloat(transactionSummary.total_amount),\n net_amount: parseFloat(transactionSummary.net_amount),\n moneybox_amount: parseFloat(transactionSummary.total_available_balance),\n })\n }\n case SET_ORGANIZER_UPDATE_LIST: {\n const organizerUpdate = action?.payload?.response\n return setInCampaign(state, action.payload.id, {\n organizerUpdate,\n })\n }\n case DELETE_ORGANIZER_UPDATE: {\n const organizerUpdateList =\n state[action.payload.campaignId]?.organizerUpdate?.items || []\n const totalOrganiserUpdates =\n state[action.payload.campaignId]?.organizerUpdate?.total || 0\n\n const updatedData = organizerUpdateList.filter(\n ins => action.payload.id !== ins.fou_id\n )\n return setInCampaign(state, action.payload.campaignId, {\n organizerUpdate: {\n ...(state[action.payload.campaignId]?.organizerUpdate || {}),\n items: updatedData,\n total: totalOrganiserUpdates - 1,\n },\n })\n }\n\n case ADD_ORGANIZER_UPDATE: {\n const list =\n state[action.payload.campaignId]?.organizerUpdate?.items || []\n const totalOrganiserUpdates =\n state[action.payload.campaignId]?.organizerUpdate?.total || 0\n\n const newList = [action.payload.response, ...list]\n return setInCampaign(state, action.payload.campaignId, {\n organizerUpdate: {\n ...(state[action.payload.campaignId]?.organizerUpdate || {}),\n items: newList,\n total: totalOrganiserUpdates + 1,\n },\n })\n }\n case APPEND_ORGANIZER_UPDATE: {\n const previousList = _get(\n state[action.payload.id],\n 'organizerUpdate.items',\n []\n )\n\n return setInCampaign(state, action.payload.id, {\n organizerUpdate: {\n ...action.payload.response,\n items: [\n ...previousList,\n ..._get(action.payload, 'response.items', []),\n ],\n },\n })\n }\n case EDIT_ORGANIZER_UPDATE: {\n const organizerUpdateData =\n state[action.payload.campaignId]?.organizerUpdate?.items || []\n\n const udpatedList = organizerUpdateData.reduce((updatableList, ins) => {\n if (action.payload.response.fou_id === ins.fou_id) {\n updatableList.push(action.payload.response)\n } else {\n updatableList.push(ins)\n }\n return updatableList\n }, [])\n return setInCampaign(state, action.payload.campaignId, {\n organizerUpdate: {\n ...(state[action.payload.campaignId]?.organizerUpdate || {}),\n items: udpatedList,\n },\n })\n }\n\n case SET_ACTIVITIES_LIST: {\n const newActvities =\n action.payload.response && action.payload.response.txns\n const activitiyList =\n action.page === 1\n ? [...newActvities.list]\n : [...state[action.payload.id].activities, ...newActvities.list]\n const transactionSummary =\n action.page === 1\n ? { ...newActvities.transactionSummary }\n : { ...state[action.payload.id].transactionSummary }\n return setInCampaign(state, action.payload.id, {\n transactionSummary,\n activities: activitiyList,\n current_value: parseFloat(transactionSummary.total_amount),\n net_amount: parseFloat(transactionSummary.net_amount),\n moneybox_amount: parseFloat(transactionSummary.total_available_balance),\n })\n }\n\n case RESET_REMOTE_OPERATION:\n return {\n ...state,\n ...setInCampaign(state, action.payload.id, {\n operatingRemotely: false,\n err: null,\n }),\n last_creation_id: null,\n }\n case FAILED_CAMPAIGN_REMOTE_OPERATION:\n return setInCampaign(state, action.payload.id, {\n operatingRemotely: false,\n err: action.payload.err,\n })\n case CREATE: {\n const {\n owner,\n currencyCode,\n campaignType,\n charity,\n type,\n } = action.payload\n return {\n ...state,\n [NEW_CAMPAIGN_ID]: {\n id: NEW_CAMPAIGN_ID,\n owner,\n currency: currencyCode,\n charity,\n campaign_type: campaignType,\n start_date: new Date(),\n current_value: 0,\n can_chip_in: true,\n can_donate: true,\n preview: true, // new campaigns that haven't been saved to server are in preview\n\n // Default values for new campaign\n share_progress: true,\n share_contributors: true,\n share_contributions: true,\n background_pan: DEFAULT_PAN,\n amount_type: AMOUNT_TYPES.any,\n pledge: 0,\n npid: charity?.nonprofit_id,\n type,\n\n ...resetExpiration(),\n },\n }\n }\n case DELETE: {\n return setInCampaign(state, action.payload.id, { deleted: true })\n }\n case CAMPAIGN_CREATED:\n return {\n ...state,\n [action.payload.newId]: {\n ...state[NEW_CAMPAIGN_ID],\n id: action.payload.newId,\n\n // the assumption here is that when we have an id, we're saved in the server, therefore we're\n // no longer in preview mode.\n preview: false,\n\n ...resetExpiration(),\n },\n last_creation_id: action.payload.newId,\n }\n case SET_DATA:\n return setInCampaign(state, action.payload.id, action.payload.data)\n case INFLATE_USER_TXNS: {\n const id = action.payload.id\n const totalInflatedAmount = action.payload.list.reduce((sum, txn) => {\n return txn.withdraw ? sum : sum + txn.amount\n }, 0)\n const totalMoneyBoxInflatedAmount = action.payload.list.reduce(\n (sum, txn) => {\n return txn.withdraw ? sum - txn.amount : sum\n },\n 0\n )\n return {\n ...state,\n [id]: {\n ...state[id],\n current_value:\n (state[id].current_value ? state[id].current_value : 0) +\n totalInflatedAmount,\n moneybox_amount:\n (state[id].moneybox_amount ? state[id].moneybox_amount : 0) +\n totalMoneyBoxInflatedAmount,\n activities: [...action.payload.list, ...state[id].activities],\n ...resetExpiration(),\n },\n }\n }\n case LOCATION_CHANGE: {\n return {\n ...state,\n operatingRemotely: false,\n }\n }\n case CREATE_DNW_TRANSACTION_SUCCESS: {\n const { amount, campaign_id } = action.payload.txn\n const prevTxnCount = action.payload.prevTxnCount\n const transactionSummary = _get(\n state[campaign_id],\n 'transactionSummary',\n {}\n )\n let contributionsCount = _get(\n state[campaign_id],\n 'transactionSummary.total_number_of_contributions',\n 0\n )\n let totalTransactions = _get(\n state[campaign_id],\n 'transactionSummary.total_number_of_transactions',\n 0\n )\n if (isNaN(prevTxnCount) || prevTxnCount === contributionsCount) {\n contributionsCount = contributionsCount + 1\n totalTransactions = totalTransactions + 1\n }\n //if transaction summary is not there transaction summary will be initialised with 0 value of these props\n transactionSummary.total_number_of_contributions = contributionsCount\n transactionSummary.total_number_of_transactions = totalTransactions\n\n return {\n ...state,\n [campaign_id]: {\n ...state[campaign_id],\n current_value:\n (state[campaign_id].current_value\n ? state[campaign_id].current_value\n : 0) + amount,\n txn_count: state[campaign_id].txn_count + 1,\n transactionSummary,\n transactions: [\n action.payload.txn,\n ...state[campaign_id].transactions,\n ],\n },\n }\n }\n case SET_CURRENT_CAMPAIGN_ID: {\n return {\n ...state,\n selectedCampaignId: action.payload,\n }\n }\n default:\n return state\n }\n}\n\nexport function startRemoteOperation(id) {\n return { type: START_CAMPAIGN_REMOTE_OPERATION, payload: { id } }\n}\n\nexport function finishRemoteOperation(id) {\n return { type: FINISH_CAMPAIGN_REMOTE_OPERATION, payload: { id } }\n}\n\nexport function failedCampaignRemoteOperation(id, err) {\n return { type: FAILED_CAMPAIGN_REMOTE_OPERATION, payload: { id, err } }\n}\n\nexport function resetRemoteOperation(id) {\n return { type: RESET_REMOTE_OPERATION, payload: { id } }\n}\n\nexport function create(campaignType, type) {\n return (dispatch, getState) => {\n dispatch({\n type: CREATE,\n payload: {\n owner: getState().current_user,\n currencyCode:\n getState().current_user?.primary_currency_code ||\n getDefaultCurrencyCode(),\n campaignType,\n type,\n charity: getState().charity?.npoCharity,\n },\n })\n }\n}\n\nexport function deleteCampaign(id) {\n return { type: DELETE, payload: { id } }\n}\n\nexport function campaignCreated(newId) {\n return { type: CAMPAIGN_CREATED, payload: { newId } }\n}\n\nexport function setData(id, data) {\n if (data.goal != null) {\n data.goal = parseFloat(data.goal)\n }\n\n if (data.end_date != null) {\n data.end_date = data.end_date\n ? endOfDay(new Date(data.end_date)).toISOString()\n : undefined\n }\n\n if (data.background_pan != null) {\n data.background_pan = parseInt(data.background_pan, 10)\n }\n\n if (data.share_progress === false) {\n // YES, this must be like that to differentiate the case where it's not there\n data.share_amount = false\n }\n\n return { type: SET_DATA, payload: { id, data } }\n}\n\nexport function createRemotely() {\n return (dispatch, getState) => {\n const campaignData = getCampaignSelector(getState(), {\n campaignId: NEW_CAMPAIGN_ID,\n })\n dispatch(startRemoteOperation(NEW_CAMPAIGN_ID))\n return fetchClient()\n .request(routes.campaign.api.index(), {\n method: 'POST',\n body: serialize(campaignData),\n })\n .then(response => {\n const campaignId = response.campaign.id\n trackImpression({\n pageName: 'campaign-create-success',\n campaignId: campaignId,\n })\n // since the success page doesn't have a route\n venice.campaignCreated()\n dispatch(finishRemoteOperation(NEW_CAMPAIGN_ID))\n dispatch(campaignCreated(encodeCampaignId(campaignId)))\n })\n .catch(err => {\n console.error(err) // eslint-disable-line\n dispatch(failedCampaignRemoteOperation(NEW_CAMPAIGN_ID, err))\n })\n }\n}\n\nexport function updateRemotely(id, data) {\n return (dispatch, getState) => {\n const campaignData = getCampaignSelector(getState(), { campaignId: id })\n\n data = colocate(data, 'background_image', 'background_image_filename')\n\n // skip the server if we're in preview since the campaign doesn't exist there yet\n if (campaignData.preview || campaignData.id === NEW_CAMPAIGN_ID) {\n dispatch(setData(id, data))\n return Promise.resolve()\n }\n\n const body = serialize(data, { alwaysIncludePan: true })\n\n // these fields are not editable for GNC\n if (campaignData.charity) {\n delete body.category\n }\n //discoverable is not editable field\n if (campaignData.discoverable) {\n delete body.non_discoverable\n }\n dispatch(startRemoteOperation(id))\n return fetchClient()\n .request(routes.campaign.api.id({ id }), {\n method: 'PATCH',\n body,\n })\n .then(response => {\n data.can_chip_in = response.can_chip_in\n if (data.title) {\n document.title = data.title\n }\n data.background_image = _get(response, 'background_image', '')\n data.background_thumbnail_image = _get(\n response,\n 'background_thumbnail_image',\n ''\n )\n data.event_name = _get(response, 'title', '')\n dispatch(setData(id, data))\n dispatch(finishRemoteOperation(id))\n })\n .catch(err => {\n err.updateData = data\n dispatch(failedCampaignRemoteOperation(id, err))\n return Promise.reject(err)\n })\n }\n}\n\nexport function deleteRemotely(id) {\n return (dispatch, getState) => {\n dispatch(startRemoteOperation(id))\n return fetchClient()\n .request(routes.campaign.api.id({ id }), {\n method: 'DELETE',\n })\n .then(response => {\n dispatch(deleteCampaign(id))\n })\n .catch(err => {\n dispatch(failedCampaignRemoteOperation(id, err))\n return Promise.reject(err)\n })\n }\n}\n\nexport function endNowRemotely(id) {\n return (dispatch, getState) => {\n const campaignData = getCampaignSelector(getState(), { campaignId: id })\n\n // fail it if we're in preview since it's irrelevant\n if (campaignData.preview || campaignData.id === NEW_CAMPAIGN_ID) {\n return Promise.reject()\n }\n\n dispatch(startRemoteOperation(id))\n return fetchClient()\n .request(routes.campaign.api.end({ id }), {\n method: 'POST',\n })\n .then(response => {\n dispatch(\n setData(id, {\n end_date: response.end_date,\n can_chip_in: response.can_chip_in,\n })\n )\n dispatch(finishRemoteOperation(id))\n })\n .catch(err => {\n dispatch(failedCampaignRemoteOperation(id, err))\n return Promise.reject(err)\n })\n }\n}\n\nexport function withdrawRemotely(id, amount) {\n return (dispatch, getState) => {\n const campaignData = getCampaignSelector(getState(), { campaignId: id })\n\n // fail it if we're in preview since it's irrelevant\n if (campaignData.preview || campaignData.id === NEW_CAMPAIGN_ID) {\n return Promise.reject()\n }\n\n dispatch(startRemoteOperation(id))\n return fetchClient()\n .request(routes.campaign.api.withdraw({ id }), {\n method: 'POST',\n body: { amount },\n })\n .then(response => {\n const { payment_id: paymentId } = response\n const date = new Date().toISOString()\n const txn = {\n paymentId,\n amount,\n campaignId: id,\n pending: true,\n withdraw: true,\n date,\n }\n saveTxnInCookie(id, getState().current_user.id, txn)\n dispatch({\n type: FINISH_WITHDRAW_SUCCESSFULLY,\n payload: { txn, withdrawAmount: amount },\n })\n dispatch(finishRemoteOperation(id))\n })\n .catch(err => {\n dispatch(failedCampaignRemoteOperation(id, err))\n return Promise.reject(err)\n })\n }\n}\n\nexport function chipInRemotely(id, fields) {\n return (dispatch, getState) => {\n dispatch(startRemoteOperation(id))\n return fetchClient()\n .request(routes.campaign.api.chip_in({ id }), {\n method: 'POST',\n body: { ...fields },\n })\n .then(response => {\n const { payment_id: paymentId } = response\n const { amount, anonymous } = fields\n const date = new Date().toISOString()\n const txn = {\n paymentId,\n pending: true,\n amount: parseFloat(amount),\n campaignId: id,\n anonymous,\n date,\n }\n const sender = {\n id: getState().current_user.id,\n name:\n getState().current_user.business_name ||\n getState().current_user.full_name,\n photo: getState().current_user.profile_photo,\n }\n saveTxnInCookie(id, getState().current_user.id, txn)\n dispatch({\n type: FINISH_CHIP_IN_SUCCESSFULLY,\n payload: { txn, sender },\n })\n dispatch(finishRemoteOperation(id))\n })\n .catch(err => {\n dispatch(failedCampaignRemoteOperation(id, err))\n return Promise.reject(err)\n })\n }\n}\n","import { trackImpression } from 'lib/fpti_analytics'\nimport { LOCATION_CHANGE } from 'react-router-redux'\nimport { decodeCampaignId } from 'shared/campaign_url'\nimport { POOLS_CAMPAIGN_TYPES } from 'shared/shared_consts'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\n\nimport { get, includes } from 'lodash'\nimport { SET_CURRENT_CAMPAIGN_ID } from './modules/campaign'\n\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\nconst DONT_TRACK = 'NONE'\n\nconst PAGE_NAMES = {\n '': 'hub::main',\n 'c-create': DONT_TRACK,\n 'c-create-types': 'create::type',\n 'c-create-category': 'create::category',\n 'c-create-basics': 'create::basics',\n 'c-create-preferences': 'create::preferences',\n 'c-create-description': 'create::description',\n 'c-create-cover': 'create::cover',\n 'c-create-preview': 'create::preview',\n 'c-create-prepublish': 'create::prepublish',\n 'c-create-publish': 'create::publish',\n 'c-create-success': 'create::success',\n 'c-create-share': 'create::share',\n\n 'c-create-crowdfunding-basics': 'create::basics',\n 'c-create-crowdfunding-story': 'create::description',\n 'c-create-crowdfunding-cover': 'create::photo',\n 'c-create-crowdfunding-nonprofit': 'create::nonprofit',\n\n 'c-xxx': 'campaign::page',\n 'c-xxx-nochipin': 'campaign::nochipin',\n 'c-xxx-send': DONT_TRACK,\n 'c-xxx-send-amount': 'send::amount',\n 'c-xxx-send-note': 'send::note',\n\n 'c-xxx-guest': DONT_TRACK,\n 'c-xxx-guest-amount': 'guest::amount',\n 'c-xxx-guest-note': 'guest::note',\n\n 'c-xxx-send-confirm': 'send::confirm',\n 'c-xxx-send-review': 'send::review',\n 'c-xxx-send-success': 'send::success',\n 'c-xxx-chip_in': DONT_TRACK,\n 'c-xxx-chip_in-amount': 'chipin::amount',\n 'c-xxx-chip_in-review': 'chipin::review',\n 'c-xxx-chip_in-complete': 'chipin::complete',\n 'c-xxx-edit-manage': 'manage::main',\n 'c-xxx-edit-transfer': 'withdraw::amount',\n 'c-xxx-edit-transfer-review': 'withdraw::review',\n 'c-xxx-edit-transfer-complete': 'withdraw::complete',\n 'c-xxx-edit-manage-activity': 'manage::activity',\n 'c-xxx-edit': 'edit::main',\n 'c-xxx-edit-name': 'edit::name',\n 'c-xxx-edit-cover': 'edit::cover',\n 'c-xxx-edit-amount': 'edit::amount',\n 'c-xxx-edit-end_date': 'edit::enddate',\n 'c-xxx-edit-description': 'edit::description',\n 'c-xxx-edit-contribution': 'edit::preferences',\n 'c-xxx-edit-tracking': 'edit::tracking',\n 'c-xxx-edit-delete': 'delete::confirm',\n 'c-xxx-edit-delete-review': 'delete::review',\n}\n\nconst EVENT_NAMES = {\n '': 'dw_giving_my_fundraiser_screen_shown',\n 'c-create-types': 'dw_giving_intro_fundraiser_screen_shown',\n 'c-create-crowdfunding-nonprofit':\n 'dw_giving_find_fundraiser_charity_screen_shown',\n 'c-create-crowdfunding-basics': 'dw_giving_create_fundraiser_screen_shown',\n 'c-create-crowdfunding-story': 'dw_giving_fundraiser_tell_story_screen_shown',\n 'c-create-crowdfunding-cover': 'dw_giving_fundraiser_add_photo_screen_shown',\n 'c-xxx': 'dw_giving_view_fundraiser_screen_shown',\n 'c-xxx-edit-manage': 'dw_giving_manage_fundraiser_screen_shown',\n 'c-xxx-edit': 'dw_giving_edit_fundraiser_screen_shown',\n 'c-xxx-edit-transfer': 'dw_giving_fundraiser_transfer_screen_shown',\n 'c-xxx-edit-share': 'dw_giving_share_screen_shown',\n 'c-xxx-edit-transfer-complete':\n 'dw_giving_fundraiser_transfer_success_screen_shown',\n 'c-xxx-edit-pledge': 'dw_giving_fundraiser_pledge_screen_shown',\n 'c-xxx-edit-pledge-complete': 'dw_giving_pledge_confirmation_screen_shown',\n}\n\nfunction getCurrentCampaignId(state, pathname) {\n // An owner could have multiple campaigns (our store groups them all together).\n // If we're on a campaign page, let's get the campaignId for that page from store.\n return Object.keys(state.campaign || []).find(key => pathname.includes(key))\n}\n\nfunction isCrowdfundingCampaign(state, campaignId) {\n if (campaignId !== '__new_campaign__') {\n return (\n state.campaign &&\n state.campaign[campaignId].campaign_type === CROWD_FUNDING\n )\n }\n return false\n}\nexport const sanitizePathnameForFpti = (state, pathname) => {\n const campaignId = getCurrentCampaignId(state, pathname)\n if (campaignId) {\n pathname = pathname.replace(campaignId, decodeCampaignId(campaignId)) // replace encoded campaign id\n }\n pathname = pathname.replace(GLOBAL_CONSTS.REQUEST_URI + '/', '') // remove initial path\n pathname = pathname.replace(/\\/$/, '') // remove trailing slash\n pathname = pathname.replace(/\\//g, '-') // replace / with - since this is what they want in FPTI for non-mapped pages\n pathname = pathname.replace(/[0-9]+/g, 'xxx') // remove numeric ids to make the path generic\n\n const matchingPageName = PAGE_NAMES[pathname]\n const event_name = EVENT_NAMES[pathname]\n // if there's no matching page name, just track the sanitized path name as it is\n return {\n fptiPageName: matchingPageName || pathname,\n event_name,\n }\n}\n\nexport const middleware = store => next => {\n let lastPathName\n return action => {\n if (action.type === LOCATION_CHANGE) {\n const pathname = action.payload.pathname\n // checking if new pathname is different than the last, no need to track the same impression twice\n if (pathname && pathname !== lastPathName) {\n let { fptiPageName, event_name } = sanitizePathnameForFpti(\n store.getState(),\n pathname\n )\n\n if (fptiPageName !== DONT_TRACK) {\n let decodedCampaignId = ''\n const campaignId =\n getCurrentCampaignId(store.getState(), pathname) ||\n '__new_campaign__'\n\n // And update store during load with default value for selected campaign\n store.dispatch({\n type: SET_CURRENT_CAMPAIGN_ID,\n payload: campaignId,\n })\n\n const campaign = getCampaignSelector(store.getState(), { campaignId })\n const charityname = get(campaign, 'charity.name', '')\n const crid = get(campaign, 'charity.nonprofit_id', '')\n const charity_type = get(campaign, 'charity.charity_type', '')\n const discoverable = get(campaign, 'discoverable', '')\n\n if (campaignId !== '__new_campaign__') {\n decodedCampaignId = decodeCampaignId(campaignId)\n }\n\n const isCrowfunding = isCrowdfundingCampaign(\n store.getState(),\n campaignId\n )\n let flow =\n isCrowfunding || includes(pathname, 'crowdfunding', false)\n ? 'GENEROSITY_NETWORK'\n : undefined\n if (charityname || includes(pathname, 'nonprofit', false))\n flow = 'GENEROSITY_NETWORK_CHARITIES'\n\n const CIPStatusCode = get(\n store.getState(),\n `current_user.CIPEligibility.CROWD_FUNDING.CIPStatus`,\n ''\n )\n const contingency = CIPStatusCode === 'ELIGIBLE' ? 'cip' : undefined\n\n /**\n * 0. Client-Side: Location change\n * 1. react-router-redux: sends LOCATION_CHANGE message\n * - This middleware gets the message\n * + Schedules an action after call-stack is empty, a campaign is needed\n * 2. react-router: executes `onEnter` actions\n * - Campaign created\n * 3. ... other function calls\n * 4. Scheduled action is called\n */\n setTimeout(() => {\n trackImpression({\n pageName: fptiPageName,\n campaignId: decodedCampaignId,\n flow: flow,\n contingency: contingency,\n crid: crid,\n event_name,\n charityname,\n trackCPL: true,\n charity_type,\n discoverable,\n })\n }, 0)\n\n lastPathName = pathname\n }\n }\n }\n next(action)\n }\n}\n","import { getStore } from './store'\nimport _get from 'lodash/get'\nimport {\n DISCOVERABLE,\n NON_DISCOVERABLE,\n POOL_TYPE,\n AUDIENCE,\n PRODUCT_TYPES,\n} from '../../shared/shared_consts'\nimport { decodeCampaignId } from '../../shared/campaign_url'\nimport { NEW_CAMPAIGN_ID } from '../redux/modules/campaign'\nimport { sanitizePathnameForFpti } from '../redux/analytics'\n\nfunction getCurrentCampaign() {\n const store = getStore()\n const currentCampaignId = _get(store, 'campaign.selectedCampaignId')\n return _get(store, `campaign.${currentCampaignId}`)\n}\n\n/**\n * Retrieves the charity type from the current campaign in the store.\n * @returns {string|null} The charity type of the current campaign, or null if it is not found.\n */\n\nfunction getCharityType() {\n return _get(getCurrentCampaign(), 'charity.charity_type', '')\n}\n\nfunction getAudience() {\n const type = _get(getCurrentCampaign(), 'type', '')\n\n if (type) {\n const discoverable =\n type === POOL_TYPE.PRIVATE ? NON_DISCOVERABLE : DISCOVERABLE\n\n return AUDIENCE[discoverable]\n }\n\n return ''\n}\n\nfunction getCampignId() {\n const store = getStore()\n const currentCampaignId = _get(store, 'campaign.selectedCampaignId')\n return currentCampaignId && currentCampaignId !== NEW_CAMPAIGN_ID\n ? decodeCampaignId(currentCampaignId)\n : ''\n}\n\nfunction getFlow() {\n const type = _get(getCurrentCampaign(), 'type', '')\n switch (type) {\n case POOL_TYPE.CHARITY:\n return PRODUCT_TYPES.GENEROSITY_NETWORK_CHARITIES\n\n case POOL_TYPE.PERSONAL:\n case POOL_TYPE.PRIVATE:\n return PRODUCT_TYPES.GENEROSITY_NETWORK\n\n default:\n return ''\n }\n}\n\nfunction getCharityName() {\n return _get(getCurrentCampaign(), 'charity.name', '')\n}\n\nfunction getCRID() {\n return _get(getCurrentCampaign(), 'charity.nonprofit_id')\n}\n\nfunction getEventSource() {\n const store = getStore()\n return _get(store, 'device_info.isMobile') ? 'mobile' : 'web'\n}\n\nfunction getUserAccountCountry() {\n const store = getStore()\n return _get(store, 'user_config.country', '')\n}\n\nfunction getUserAccountType() {\n const store = getStore()\n return _get(store, 'current_user.accountType', '')\n}\n\nfunction getFundraiserStatus() {\n return _get(getCurrentCampaign(), 'event_status', '')\n}\n\nfunction getPageName() {\n const store = getStore()\n const pathname = window.location.pathname\n const { fptiPageName } = sanitizePathnameForFpti(store, pathname)\n return fptiPageName\n}\n\n/**\n * Adds global properties to the payload object.\n * @param {object} payload - The payload object to add global properties to.\n * @returns {object} The updated payload object with global properties added.\n */\nexport function addGlobalProperties(payload) {\n const globalProperties = {\n pageName: getPageName(),\n charity_type: getCharityType(),\n audience: getAudience(),\n campaign_id: getCampignId(),\n flow: getFlow(),\n charityname: getCharityName(),\n crid: getCRID(),\n npid: getCRID(),\n event_source: getEventSource(),\n acct_cntry: getUserAccountCountry(),\n account_type: getUserAccountType(),\n comp: 'poolsnodeweb',\n fundraiser_expired: getFundraiserStatus() === 'expired' ? 'yes' : 'no',\n }\n\n if (payload.data) {\n return {\n ...payload,\n data: { ...globalProperties, ...payload.data },\n }\n } else {\n return { ...globalProperties, ...payload }\n }\n}\n","import { formatCurrency } from 'intl'\nimport {\n INSTRUMENT_EVENTS,\n INSTRUMENT_TAGS,\n CHARITY_INSTRUMENTATION,\n} from 'shared/shared_consts'\nimport { getAudience } from 'shared/helpers/campaign'\nimport { getStore } from './store'\nimport { addGlobalProperties } from './fpti_global'\n\nconst store = getStore()\n\nexport const ANALYTICS_TYPES = {\n TRACK_CLICK: 'analytics/track_click',\n TRACK_IMPRESSION: 'analytics/track_impression',\n}\n\nconst noop = () => {}\nconst PAYPAL = window.PAYPAL\nconst emptyAnalytics = { recordClick: noop, recordImpression: noop }\nconst analytics =\n PAYPAL && PAYPAL.analytics ? new PAYPAL.analytics.Analytics() : emptyAnalytics\n\nexport function initialize() {\n if (window.PAYPAL && window.PAYPAL.analytics) {\n window.PAYPAL.analytics.setupComplete = paypalAnalyticsSetupCompleted\n // call it anyway,\n // in case there's a weird race condition where `setupComplete` is already called from the analytics lib\n // before this was loaded.\n paypalAnalyticsSetupCompleted()\n }\n}\n\nfunction getEventSource() {\n return store.device_info.isMobile ? 'mobile' : 'web'\n}\n\nexport function paypalAnalyticsSetupCompleted() {\n if (_initialized) {\n return // don't init twice\n }\n if (!window.PAYPAL.analytics.instance) {\n return // don't init if the analytic lib doesn't have a an instance yet\n }\n\n _initialized = true\n _flushQueue()\n}\n\nexport function trackImpression(payload) {\n track(ANALYTICS_TYPES.TRACK_IMPRESSION, payload)\n}\n\nexport function trackEventNameClick(payload) {\n const { event_name, dismiss_method } = payload\n trackClick({\n clickName: event_name,\n data: {\n event_name: event_name,\n product: INSTRUMENT_EVENTS.DW_GIVING,\n dismiss_method: dismiss_method,\n },\n })\n}\n\nexport function trackClick(payload) {\n if (!payload.clickName) {\n return\n }\n\n track(ANALYTICS_TYPES.TRACK_CLICK, payload)\n}\n\nexport function track(type, payload) {\n const enhancedPayload = addGlobalProperties(payload)\n\n if (_initialized) {\n switch (type) {\n case ANALYTICS_TYPES.TRACK_CLICK:\n _trackClick(enhancedPayload)\n break\n case ANALYTICS_TYPES.TRACK_IMPRESSION:\n _trackImpression(enhancedPayload)\n break\n default:\n break\n }\n } else {\n _enqueueEvent(type, enhancedPayload)\n }\n}\n\nlet _initialized = false\n\n// This queue is here to prevent a race condition.\n// Since an analytics event can fire before the analytics client-side script\n// has been initialized, we're queuing the events that fired while it's initializing,\n// and fire all of them sequentially once initialization has completed.\nconst _q = []\n\nfunction _flushQueue() {\n while (_q.length) {\n const ev = _q.shift()\n track(ev.type, ev.payload)\n }\n}\n\nfunction _enqueueEvent(type, payload) {\n _q.push({ type, payload })\n}\n\nfunction _trackClick({ clickName, data = {} }) {\n if (clickName) {\n const fpti = {\n data: {\n ...window.fpti,\n ...data,\n },\n }\n\n fpti.data.pgln = `${window.fpti.page}|${clickName}`\n fpti.data.pglk = `${window.fpti.pgrp}|${clickName}`\n fpti.data.link = clickName\n\n // actually record the click\n analytics.recordClick(fpti)\n\n // remove those additional keys for subsequent calls\n Object.keys(data).forEach(key => {\n delete window.fpti[key]\n })\n }\n}\n\nexport function _trackImpression({\n pageName,\n campaignId = '',\n flow = '',\n poolOwner = '',\n erpg = '',\n eccd = '',\n contingency = '',\n amount = '',\n currency = '',\n event_name = '',\n charityname = '',\n charity_name = '',\n npid = '',\n crid = '',\n error_code = '',\n screen = '',\n error_desc = '',\n event_type = '',\n status = '',\n state = '',\n count = '',\n rank = '',\n update_state = '',\n fundraiser_expired = '',\n context_id = '',\n discoverable,\n ...others\n}) {\n pageName = `main:pools:${pageName}`\n\n window.fpti = {\n page: pageName + ':::',\n pgrp: pageName,\n link: undefined, //NOSONAR\n cmpn_id: campaignId,\n encr_rcvr_id: poolOwner,\n erpg,\n eccd,\n flow: flow || window.fpti.flow,\n contingency,\n event_name,\n charityname: charityname || charity_name || window.fpti.charityname,\n crid: crid || npid || window.fpti.crid,\n product: INSTRUMENT_EVENTS.DW_GIVING,\n platform: INSTRUMENT_TAGS.WEB,\n pool_id: campaignId,\n campaign_id: campaignId,\n error_code,\n screen,\n error_desc,\n event_type,\n status,\n state,\n count,\n rank,\n update_state,\n fundraiser_expired,\n context_id: context_id || window.fpti.csci,\n event_source: getEventSource(),\n }\n\n if (CHARITY_INSTRUMENTATION.FUNDRAISER_SCREEN_SHOWN === event_name) {\n window.fpti.audience = getAudience(discoverable)\n }\n\n Object.keys(others || {}).forEach(tagKey => {\n window.fpti[tagKey] = others[tagKey]\n })\n\n if (amount && currency) {\n const txnAmt = formatCurrency({ value: amount, currencyCode: currency })\n window.fpti.txn_amt = `${txnAmt} ${currency}`\n }\n\n window.PAYPAL.analytics.instance.recordImpression()\n}\n","export default {\n endDate(value, previousValue, allValues) {\n if (/^[ \\/\\.]+$/.test(value)) {\n return ''\n }\n return value\n },\n}\n","import edit_tracking from './edit_tracking'\nimport endDate from '../end_date'\n\nexport default {\n edit_tracking,\n edit_end_date: endDate,\n create_basics: endDate,\n}\n","export default {\n shareContributionsAmount(value, previousValue, allValues) {\n if (!allValues.shareProgress) {\n return false\n }\n return value\n },\n}\n","import { reducer as formReducer } from 'redux-form'\nimport normalizers from '../normalizers/forms'\nimport { reduxFormPlugin as formHistory } from '../plugins/form_history'\n\nexport default formReducer.normalize(normalizers).plugin(formHistory('create'))\n","import cloneDeep from 'lodash.clonedeep'\n\nconst SET_CHECKPOINT = 'pools/form_history/SET_CHECKPOINT'\nconst RESTORE_CHECKPOINT = 'pools/form_history/RESTORE_CHECKPOINT'\n\nexport function setCheckpoint(formName) {\n return { type: SET_CHECKPOINT, formName }\n}\n\nexport function restoreCheckpoint(formName) {\n return { type: RESTORE_CHECKPOINT, formName }\n}\n\nexport function reduxFormPlugin(formName) {\n return {\n [formName]: (state, action) => {\n if (action.type === SET_CHECKPOINT && action.formName === formName) {\n return { ...state, savedState: cloneDeep(state) }\n } else if (\n action.type === RESTORE_CHECKPOINT &&\n action.formName === formName\n ) {\n return { ...state.savedState }\n }\n return state\n },\n }\n}\n","export function defaultStateReducer(state = {}) {\n return state\n}\n\nexport default function reducer(state = null) {\n return state\n}\n","import fetchClient from 'lib/fetch_client'\nimport routes from 'server_routes'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { FUNDING_SOURCES } from 'shared/shared_consts'\nimport { LOCATION_CHANGE } from 'react-router-redux'\n\nconst START_FUNDING_SOURCES = 'pools/funding_sources/START_FUNDING_SOURCES'\nconst FINISH_FUNDING_SOURCES = 'pools/funding_sources/FINISH_FUNDING_SOURCES'\nconst FAILED_FUNDING_SOURCES = 'pools/funding_sources/FAILED_FUNDING_SOURCES'\n\nfunction setFundingSources(state, obj) {\n return { ...state, ...obj }\n}\n\nexport default function reducer(state = {}, action) {\n switch (action.type) {\n case START_FUNDING_SOURCES:\n return setFundingSources(state, { operatingRemotely: true })\n case FINISH_FUNDING_SOURCES:\n return setFundingSources(state, {\n operatingRemotely: false,\n err: null,\n ...action.payload.data,\n })\n case FAILED_FUNDING_SOURCES:\n return setFundingSources(state, {\n operatingRemotely: false,\n err: action.payload.err,\n })\n case LOCATION_CHANGE:\n return { ...state, operatingRemotely: false }\n default:\n return state\n }\n}\n\nexport function startRemoteOperation() {\n return { type: START_FUNDING_SOURCES, payload: {} }\n}\n\nexport function finishRemoteOperation(data) {\n return { type: FINISH_FUNDING_SOURCES, payload: { data } }\n}\n\nexport function failedRemoteOperation(err) {\n return { type: FAILED_FUNDING_SOURCES, payload: { err } }\n}\n\nexport function getFundingSources(campaignId) {\n return (dispatch, getState) => {\n dispatch(startRemoteOperation())\n return fetchClient()\n .request(routes.funding_sources.api.index(), {\n method: 'GET',\n })\n .then(response => {\n const campaignCurrency = getCampaignSelector(getState(), { campaignId })\n .currency\n const fundingSources = response.fundingSources.reduce(\n (reducedSources, source) => {\n if (\n source.type !== FUNDING_SOURCES.HOLDING ||\n (source.currency === campaignCurrency && source.balance.value > 0)\n ) {\n reducedSources[source.id] = source\n }\n return reducedSources\n },\n {}\n )\n dispatch(finishRemoteOperation({ map: fundingSources }))\n })\n .catch(err => {\n dispatch(failedRemoteOperation(err))\n return Promise.reject(err)\n })\n }\n}\n","export const UPDATE_QUERY_PARAMS = 'pools/campaign/RESET_REMOTE_OPERATION'\n\nconst onUpdateQueryParams = (state, urlData) => {\n const { query = {} } = urlData\n return { ...state, ...query }\n}\n\nexport const updateQueryParams = payload => {\n return { type: UPDATE_QUERY_PARAMS, payload }\n}\n\nexport default function reducer(state = {}, action) {\n switch (action.type) {\n case UPDATE_QUERY_PARAMS:\n return onUpdateQueryParams(state, action.payload)\n default:\n return state\n }\n}\n","const SHOW = 'pools/toast_notification/SHOW'\nconst HIDE = 'pools/toast_notification/HIDE'\n\nexport function show(toastId, message) {\n return { type: SHOW, payload: { id: toastId, message } }\n}\n\nexport function hide(toastId) {\n return { type: HIDE, payload: { id: toastId } }\n}\n\nexport default function reducer(state = {}, action) {\n if (action.type === HIDE) {\n return { [action.payload.id]: false }\n }\n if (action.type === SHOW) {\n return {\n [action.payload.id]: { message: action.payload.message, status: true },\n }\n }\n return state\n}\n","import { combineReducers } from 'redux'\nimport { routerReducer } from 'react-router-redux'\n\nimport form from './form'\nimport campaign from './campaign'\nimport user_txns from './user_txns'\nimport send_iframe from './send_iframe'\nimport nop, { defaultStateReducer } from './nop'\nimport funding_sources from './funding_sources'\nimport current_user from './current_user'\nimport server from './server'\nimport url from './url'\nimport dnw_transaction from './dnw_transaction'\nimport toast_notification from './toast_notification'\n\nexport const reducer = combineReducers({\n routing: routerReducer,\n form,\n campaign,\n user_txns,\n send_iframe,\n funding_sources,\n current_user,\n server,\n queryParams: url,\n dnw_transaction,\n // This is just data passed from the server. We use the nop reducer\n // (which does nothing) to prevent redux's unrecognized keys warning\n charity: nop,\n locality: nop,\n login_info: nop,\n flags: nop,\n device_info: nop,\n links: nop,\n user_config: nop,\n features: nop,\n group_features: nop,\n country: nop,\n social: nop,\n mobile_app: nop,\n categoryData: nop,\n personalizationStudio: defaultStateReducer,\n // TODO we should consider putting all of these in an 'experiments' reducer\n can_pledge: nop,\n rampdown: nop,\n isContributionEligible: nop,\n deployEnv: nop,\n preloadSendValues: nop,\n geo: nop,\n toast_notification,\n})\n","import { CAMPAIGN_CREATED } from './campaign'\n\nexport default function reducer(state = {}, action) {\n switch (action.type) {\n case CAMPAIGN_CREATED: {\n return { ...state, has_campaigns: true }\n }\n default:\n return state\n }\n}\n","const RESET_IS_RETURNING_FROM_WALLET =\n 'pools/current_user/RESET_IS_RETURNING_FROM_WALLET'\n\nexport default function reducer(state = {}, action) {\n switch (action.type) {\n case RESET_IS_RETURNING_FROM_WALLET: {\n return { ...state, isReturningFromWallet: false }\n }\n default:\n return state\n }\n}\n\nexport function resetIsReturningFromWallet() {\n return { type: RESET_IS_RETURNING_FROM_WALLET }\n}\n","import { getJSONFromScript } from 'lib/server_params'\n\nimport { SCRIPT_IDS } from 'shared/shared_consts'\n\nconst DEPLOY_ENV_DEFAULT = {\n isDev: true,\n isTest: false,\n isStage: false,\n isSandbox: false,\n isLive: false,\n}\nconst VALID_DEPLOY_ENV_FLAGS = Object.keys(DEPLOY_ENV_DEFAULT)\n\nexport function isDev() {\n return getDeployEnv().isDev\n}\n\nexport function isTest() {\n return getDeployEnv().isTest\n}\n\nexport function isStage() {\n return getDeployEnv().isStage\n}\n\nexport function isSandbox() {\n return getDeployEnv().isSandbox\n}\n\nexport function isLive() {\n return getDeployEnv().isLive\n}\n\nfunction getDeployEnv() {\n const store = getJSONFromScript(SCRIPT_IDS.STORE)\n\n if (store.deployEnv && typeof store.deployEnv === 'object') {\n const deployEnvStore = store.deployEnv\n\n if (\n Object.entries(deployEnvStore).some(\n ([flag, value]) =>\n VALID_DEPLOY_ENV_FLAGS.includes(flag) && value === true\n )\n ) {\n return deployEnvStore\n } else {\n return DEPLOY_ENV_DEFAULT\n }\n } else {\n return DEPLOY_ENV_DEFAULT\n }\n}\n","import { createStore, applyMiddleware, compose } from 'redux'\nimport { browserHistory } from 'react-router'\nimport thunkMiddleware from 'redux-thunk'\n\nimport { reducer } from './modules'\nimport { middleware as analyticsMiddleware } from './analytics'\nimport { routerMiddleware } from 'react-router-redux'\nimport { isStage, isDev } from 'client/lib/deploy_env'\nimport { syncScriptAndStore } from '../lib/store'\n\nconst getComposeEnhancers = () => {\n const isUsingDevTools =\n (isDev() || isStage()) &&\n typeof window === 'object' &&\n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\n if (isUsingDevTools) {\n return window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({})\n }\n return compose\n}\nconst composeEnhancers = getComposeEnhancers()\n\nconst middleware = [\n routerMiddleware(browserHistory),\n thunkMiddleware,\n analyticsMiddleware,\n]\n\nexport function configureStore(initialState, callback) {\n const store = createStore(\n reducer,\n initialState,\n composeEnhancers(applyMiddleware(...middleware))\n )\n\n store.subscribe(() => {\n // The callback function will be called on every store update\n const state = store.getState()\n // Sync the client redux store with the injected script\n syncScriptAndStore(state)\n })\n\n callback(store)\n}\n","import { CIP_FLOW_URL, FLOW_DETAILS } from '../../shared/shared_consts'\n\nexport function appendPath(basepath, appendage) {\n if (basepath[basepath.length - 1] === '/') {\n return basepath + appendage\n }\n return basepath + '/' + appendage\n}\n\nexport function glimpselessRoute(glimpseName) {\n const rx = new RegExp(`/${glimpseName}(/.*)?`)\n return window.location.pathname.replace(rx, '')\n}\n\nexport function glimpseRoute(\n glimpseName,\n name,\n currentGlimpseName = glimpseName\n) {\n const pathname = window.location.pathname\n const subPathString = name ? `${glimpseName}/${name}` : `${glimpseName}`\n // no relative links, so we're doing it like this\n const rx = new RegExp(`/${currentGlimpseName}(/.*)?`)\n if (rx.test(pathname)) {\n return pathname.replace(rx, '/' + subPathString)\n }\n\n return appendPath(pathname, subPathString)\n}\n\nexport function getStepName(glimpseName, routes) {\n let glimpseRouteIndex = routes.findIndex(route => route.path === glimpseName)\n return (routes[glimpseRouteIndex + 1] || {}).path\n}\n\nexport function assertInitialStep(flowName, initialStep, nextState, replace) {\n const stepName = getStepName(flowName, nextState.routes)\n if (Array.isArray(initialStep) && initialStep.indexOf(stepName) < 0) {\n replace(glimpseRoute(flowName, initialStep[0]))\n }\n if (typeof initialStep === 'string' && stepName !== initialStep) {\n replace(glimpseRoute(flowName, initialStep))\n }\n}\n\nexport function assertNoDeepLink(flowName, initialStep, nextState, replace) {\n if (getStepName(flowName, nextState.routes) !== initialStep) {\n replace(glimpselessRoute(flowName))\n }\n}\n\n// we need this since the action on the nextstate is for some reason different than the one\n// we'll get on the `location` param (which is always `POP`...)\nexport function assignActionToRouterParams(nextState) {\n nextState.params.action = nextState.location.action\n}\n\nexport function completeCipVerification(campaignId) {\n const successUrl = `/pools/c/${campaignId}/send/cip`,\n returnUrl = `/pools/c/${campaignId}`,\n homeInfoParams = `?feature=${FLOW_DETAILS.FEATURE}&entryPoint=${\n CIP_FLOW_URL.ENTRY_POINT\n }&subFlow=${FLOW_DETAILS.SUB_FLOW}&successUrl=${encodeURIComponent(\n successUrl\n )}&returnUrl=${encodeURIComponent(returnUrl)}`\n return `${CIP_FLOW_URL.HOMEINFO_URL}${homeInfoParams}`\n}\n\nexport const pathNameToFTPI = {\n types: 'dw_giving_intro_fundraiser_dismiss_pressed',\n nonprofit: 'dw_giving_find_fundraiser_charity_dismiss_pressed',\n basics: 'dw_giving_create_fundraiser_dismiss_pressed',\n story: 'dw_giving_fundraiser_tell_story_dismiss_pressed',\n cover: 'dw_giving_fundraiser_add_photo_dismiss_pressed',\n 'select-cover': 'dw_giving_fundraiser_select_photo_dismiss_pressed',\n}\n","// This little util helps disable tabbing for a section of the document\n// Based on http://stackoverflow.com/questions/5206813/restrict-tabindex-focusing-to-a-section-of-the-page\n\nlet tabbedDisabledNodes = []\n\n// Disables tabs for all decendant elements of a given node which can be focusable (i.e. have tabindex > -1)\nexport function disableTabs(node) {\n ;[...node.getElementsByTagName('*')].forEach(decendant => {\n if (decendant.tabIndex > -1) {\n let tabIndex = decendant.tabIndex\n decendant.tabIndex = -1\n tabbedDisabledNodes.push({ node: decendant, tabIndex })\n }\n })\n}\n\n// Disables tabs for all decendant elements of a list of nodes\nexport function disableTabsForNodes(nodes) {\n tabbedDisabledNodes = []\n nodes.forEach(disableTabs)\n}\n\n// Re-enables tabs that were disabled from\nexport function reEnableTabs() {\n tabbedDisabledNodes.forEach(({ node, tabIndex }) => {\n node.tabIndex = tabIndex\n })\n tabbedDisabledNodes = []\n}\n","import { disableTabsForNodes, reEnableTabs } from './tab_disabler'\nimport Tweenable from 'shifty'\n\nconst LIMIT_SCROLLABILITY_CLASS = 'limit-scrollability'\nconst SCROLL_ANIMATION_DURATION = 400\n\n// rerturns all of a node's siblings\nfunction getSiblings(node) {\n const siblings = []\n let sibling = node\n while ((sibling = sibling.nextSibling) !== null) {\n siblings.push(sibling)\n }\n return siblings\n}\n\nfunction isWebkit() {\n // We could theoretically query device_info for the engine, but this info is available\n // only in production.\n return 'WebkitAppearance' in document.documentElement.style\n}\n\n// -------------------------------------------------------------------------\n\n// These two functions work around the bug(?) in webkit where\n// setting overflow-y: hidden on an element zeroes out its scroll position.\n// The solution here is on modal open, save the scroll position in a variable,\n// and translateY the content that is not part of the modal, so that it won't 'jump'.\n// When the modal closes, remove the translateY and restore the body's scroll position.\n\nlet bodyScrollY = 0\n\nexport function fixWebKitScrollPosition(nodes) {\n if (!isWebkit()) {\n return\n }\n bodyScrollY = window.scrollY\n Array.prototype.forEach.call(nodes, node => {\n if (node.getAttribute('data-fixed') !== 'true') {\n node.style.transform = `translateY(-${bodyScrollY}px)`\n\n // Traverse all decendants which have position: fixed and\n // counteract the translation\n const fixedNodes = node.querySelectorAll(\"*[data-fixed='true']\")\n for (let i = 0; i < fixedNodes.length; i++) {\n let fixedNode = fixedNodes[i]\n let xform = fixedNode.style.transform\n fixedNode.style.transform = `translateY(${bodyScrollY}px)`\n fixedNode.originalTransform = xform\n }\n }\n })\n}\n\nexport function restoreWebKitScrollPosition(nodes) {\n if (!isWebkit()) {\n return\n }\n window.scrollTo(0, bodyScrollY)\n bodyScrollY = 0\n Array.prototype.forEach.call(nodes, node => {\n if (node.getAttribute('data-fixed') !== 'true') {\n node.style.transform = null\n\n // Traverse all decendants that used to have have position: fixed and\n // revert the translation counteraction\n const fixedNodes = node.querySelectorAll(\"*[data-fixed='true']\")\n for (let i = 0; i < fixedNodes.length; i++) {\n let fixedNode = fixedNodes[i]\n fixedNode.style.transform = fixedNode.originalTransform\n delete fixedNode.originalTransform\n }\n }\n })\n}\n\n// -------------------------------------------------------------------------\n\n// Gateway functions to the module. Call the first when showing the modal,\n// and call the second when hiding it.\n\nexport function disableBodyScrollability(modalNode) {\n const siblingNodes = getSiblings(modalNode)\n fixWebKitScrollPosition(siblingNodes)\n document.body.classList.add(LIMIT_SCROLLABILITY_CLASS)\n disableTabsForNodes(siblingNodes)\n}\n\nexport function enableBodyScrollability(modalNode) {\n const siblingNodes = getSiblings(modalNode)\n document.body.classList.remove(LIMIT_SCROLLABILITY_CLASS)\n restoreWebKitScrollPosition(siblingNodes)\n reEnableTabs()\n}\n\nexport function scrollToTop(element) {\n const tweenable = new Tweenable()\n\n tweenable.tween({\n from: { x: element.scrollLeft, y: element.scrollTop },\n to: { x: 0, y: 0 },\n duration: SCROLL_ANIMATION_DURATION,\n easing: 'easeInOutQuad',\n step(currentState) {\n element.scrollLeft = currentState.x\n element.scrollTop = currentState.y\n },\n finish(currentState) {\n element.scrollLeft = currentState.x\n element.scrollTop = currentState.y\n },\n })\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './modal.less'\nimport clsx from 'clsx'\n\nimport {\n disableBodyScrollability,\n enableBodyScrollability,\n scrollToTop,\n} from 'lib/scroll'\nimport { KEY_PRESS_EVENTS } from 'shared/shared_consts'\nimport { ProgressMeter, CloseIcon } from '@paypalcorp/pp-react'\n\nconst { ENTER_KEY } = KEY_PRESS_EVENTS\n\nconst ESC_KEY_CODE = 27\n\nclass Modal extends React.Component {\n static propTypes = {\n children: PropTypes.any.isRequired,\n styles: PropTypes.object,\n leftHeader: PropTypes.any,\n onClose: PropTypes.func,\n glimpse: PropTypes.bool,\n showSpinner: PropTypes.bool,\n showClose: PropTypes.bool,\n hideTopWithoutHeader: PropTypes.bool,\n isWideView: PropTypes.bool,\n progressPercent: PropTypes.number,\n showProgressBar: PropTypes.bool,\n isPadding: PropTypes.bool,\n }\n\n static defaultProps = {\n showClose: true,\n hideTopWithoutHeader: false,\n isWideView: false,\n isPadding: false,\n }\n\n handleClose = () => {\n if (this.props.onClose) {\n this.props.onClose()\n }\n }\n\n scrollToTop = () => {\n scrollToTop(this.container)\n }\n\n onKeyUp = event => {\n if (event.keyCode === ESC_KEY_CODE || event.which === ESC_KEY_CODE) {\n this.handleClose()\n }\n }\n\n registerForEscKey = () => {\n window.addEventListener('keyup', this.onKeyUp)\n }\n\n unregisterForEscKey = () => {\n window.removeEventListener('keyup', this.onKeyUp)\n }\n\n componentDidMount() {\n this.registerForEscKey()\n if (this.props.glimpse) {\n disableBodyScrollability(this.container)\n }\n document.body.setAttribute('style', 'overflow-y:hidden')\n }\n\n componentWillUnmount() {\n this.unregisterForEscKey()\n if (this.props.glimpse) {\n enableBodyScrollability(this.container)\n }\n document.body.removeAttribute('style')\n }\n\n render() {\n const {\n isWideView,\n progressPercent,\n showProgressBar,\n isPadding,\n } = this.props\n\n const hasTopPart = !!(this.props.leftHeader || this.props.showClose)\n\n return (\n {\n this.container = container\n }}\n tabIndex={0}\n aria-modal=\"true\"\n role=\"dialog\"\n aria-label=\"modal\"\n >\n
\n \n
\n {(hasTopPart || !this.props.hideTopWithoutHeader) && (\n <>\n
{this.props.leftHeader}
\n {this.props.showClose && (\n {\n if (e.key === ENTER_KEY) {\n this.handleClose()\n }\n }}\n >\n \n \n )}\n \n )}\n
\n {showProgressBar && (\n
\n \n
\n )}\n \n {this.props.children}\n
\n \n \n \n )\n }\n}\n\nexport default cssModules(Modal, styles, { allowMultiple: true })\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './back_button.less'\nimport { ArrowLeftIcon } from '@paypalcorp/pp-react'\nimport { KEY_PRESS_EVENTS } from 'shared/shared_consts'\n\nconst { ENTER_KEY } = KEY_PRESS_EVENTS\n\nclass BackButton extends React.Component {\n static propTypes = {\n onClick: PropTypes.func,\n }\n\n render() {\n return (\n {\n if (e.key === ENTER_KEY) {\n this.props.onClick()\n }\n }}\n role=\"link\"\n tabIndex=\"0\"\n data-testid=\"back_button\"\n >\n \n \n )\n }\n}\n\nexport default cssModules(BackButton, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport ReactCSSTransitionGroup from 'react-transition-group/CSSTransitionGroup'\nimport cssModules from 'react-css-modules'\nimport { withRouter } from 'react-router'\nimport { routerShape } from 'react-router/lib/PropTypes'\n\nimport Modal from 'components/common/modal'\nimport BackButton from 'components/common/back_button'\n\nimport styles from './modal_wizard.less'\n\nconst TRANSITION_DURATION = 250 // in ms\n\nclass ModalWizard extends React.Component {\n static propTypes = {\n movingForward: PropTypes.bool,\n styles: PropTypes.object,\n glimpse: PropTypes.bool,\n showSpinner: PropTypes.bool,\n hideBack: PropTypes.bool,\n hideClose: PropTypes.bool,\n children: PropTypes.any,\n router: routerShape.isRequired,\n onClose: PropTypes.func,\n hideTopWithoutHeader: PropTypes.bool,\n isWideView: PropTypes.bool,\n progressPercent: PropTypes.number,\n showProgressBar: PropTypes.bool,\n isPadding: PropTypes.bool,\n previousURL: PropTypes.string,\n step: PropTypes.string,\n }\n\n handleScrollTop = () => {\n this.modal.scrollToTop()\n }\n\n removeStaleClass = (attempts = 4) => {\n if (attempts === 0) {\n return\n }\n setTimeout(() => {\n this.removeStaleClass(attempts - 1)\n }, TRANSITION_DURATION)\n }\n\n componentDidMount() {\n setTimeout(\n function() {\n this.removeStaleClass()\n }.bind(this),\n TRANSITION_DURATION\n )\n }\n\n confirmNavigation = successCallback => {\n if (this._step && this._step.confirmNavigation) {\n return\n } else {\n successCallback()\n }\n }\n\n handleBack = () => {\n if (this.props.previousURL) {\n this.props.router.push({\n pathname: `${GLOBAL_CONSTS.REQUEST_URI}/c/create-crowdfunding/${\n this.props.previousURL\n }`,\n })\n }\n }\n\n handleClose = () => {\n if (this.props.onClose) {\n this.confirmNavigation(this.props.onClose)\n }\n }\n\n UNSAFE_componentWillUpdate = newProps => {\n const child = React.Children.only(this.props.children)\n const newChild = React.Children.only(newProps.children)\n\n if (child.key !== newChild.key) {\n // will be set when the new step is mounted\n this._step = this.props.step\n }\n }\n\n render() {\n const {\n movingForward,\n showSpinner,\n glimpse,\n hideClose,\n hideBack,\n isWideView,\n progressPercent,\n showProgressBar,\n isPadding,\n } = this.props\n\n const leftHeader = !hideBack && \n\n const transitionNameSuffix = movingForward ? 'forward' : 'backward'\n const transitionNames = {\n enter: this.props.styles[`step-enter-${transitionNameSuffix}`],\n enterActive: this.props.styles[\n `step-enter-${transitionNameSuffix}-active`\n ],\n leave: this.props.styles[`step-leave-${transitionNameSuffix}`],\n leaveActive: this.props.styles[\n `step-leave-${transitionNameSuffix}-active`\n ],\n }\n\n const child = React.Children.only(this.props.children)\n\n return (\n {\n this.modal = modal\n }}\n progressPercent={progressPercent}\n showProgressBar={showProgressBar}\n >\n \n {/* TODO: the above style should be applied only while transitioning. However, ReactCSSTransitionGroup\n\t\t\t\t\t\twon't tell us whether we're transitioning. Relevant question in Stack Overflow:\n\t\t\t\t\t\thttp://stackoverflow.com/questions/38419560/lifecycle-events-on-reactcsstransitiongroups-component */}\n {React.cloneElement(child, {\n onScrollTop: this.handleScrollTop,\n })}\n \n \n )\n }\n}\n\nexport default withRouter(cssModules(ModalWizard, styles))\n","import ModalWizard from './modal_wizard'\nimport { connect } from 'react-redux'\n\nimport { fromVeniceSelector } from 'redux/selectors/venice'\n\nexport const mapStateToProps = (state, { hideBack, hideClose }) => {\n const fromVenice = fromVeniceSelector()(state)\n let hideTopWithoutHeader = false\n if (fromVenice) {\n hideBack = true\n hideClose = true\n hideTopWithoutHeader = true\n }\n\n return { hideBack, hideClose, hideTopWithoutHeader }\n}\n\nexport default connect(mapStateToProps)(ModalWizard)\n","import { trackClick, trackImpression } from 'lib/fpti_analytics'\nimport { decodeCampaignId } from 'shared/campaign_url'\nimport _get from 'lodash/get'\n\nexport function trackFPTI(\n props,\n eventType,\n event,\n method,\n error,\n count,\n updateState,\n order\n) {\n const listEvents = [\n 'dw_giving_manage_fundraiser_post_update_button_pressed',\n 'dw_giving_create_update_screen_shown',\n 'dw_giving_create_update_save_pressed',\n 'dw_giving_create_update_dismiss_pressed',\n 'dw_giving_share_update_screen_shown',\n 'dw_giving_share_update_channel_pressed',\n 'dw_giving_share_update_dismiss_pressed',\n 'dw_giving_organizer_update_list_post_pressed',\n 'dw_giving_edit_update_screen_shown',\n 'dw_giving_edit_update_save_pressed',\n 'dw_giving_edit_update_delete_pressed',\n 'dw_giving_edit_update_dismiss_pressed',\n 'dw_giving_update_post_success_occurred',\n 'dw_giving_post_update_error_screen_shown',\n 'dw_giving_post_update_error_dismiss_pressed',\n 'dw_giving_post_update_form_error_occurred',\n 'dw_giving_post_update_quit_screen_shown',\n 'dw_giving_post_update_quit_finish_update_pressed',\n 'dw_giving_post_update_quit_cancel_pressed',\n 'dw_giving_post_update_quit_dismiss_pressed',\n ]\n const charity = _get(props, 'charity')\n const charityName = _get(charity, 'name')\n const charityId = _get(charity, 'nonprofit_id')\n const fundraiserId = _get(props, 'id')\n const campaignId = decodeCampaignId(fundraiserId)\n const fundraiserExpired = _get(props, 'event_status')\n const fptiPayload = {\n event_name: event,\n flow: charityName ? 'GENEROSITY_NETWORK_CHARITIES' : 'GENEROSITY_NETWORK',\n charityname: charityName ? charityName : '',\n crid: charityId ? charityId : '',\n order: order && Number(order) && Number(order) + 1,\n }\n if (method) {\n fptiPayload.dismiss_method = method\n }\n if (count) {\n fptiPayload.count = count\n }\n if (updateState) {\n fptiPayload.update_state = updateState\n }\n if (listEvents.indexOf(event) > -1) {\n if (fundraiserExpired === 'expired') {\n fptiPayload.fundraiser_expired = 'yes'\n } else if (fundraiserExpired === 'open') {\n fptiPayload.fundraiser_expired = 'no'\n }\n }\n if (error) {\n fptiPayload.error_desc = error.error_desc\n fptiPayload.error_code = error.error_code\n }\n if (order) {\n fptiPayload.order = order\n }\n if (eventType === 'impression') {\n fptiPayload.campaignId = campaignId\n trackImpression(fptiPayload)\n } else if (eventType === 'ac') {\n fptiPayload.campaignId = campaignId\n fptiPayload.event_type = eventType\n trackImpression(fptiPayload)\n } else if (eventType === 'click') {\n fptiPayload.campaign_id = campaignId\n trackClick({\n clickName: event,\n data: fptiPayload,\n })\n }\n}\n\nexport function organizerUpdateState(organizerUpdate) {\n const organizerUpdateTotal = _get(organizerUpdate, 'total', 0)\n let stateValue = 'multiple'\n if (organizerUpdateTotal === 0) {\n stateValue = 'zero'\n } else if (organizerUpdateTotal === 1) {\n stateValue = 'one'\n }\n return stateValue\n}\n","import { glimpseRoute, glimpselessRoute } from 'lib/route_utils'\nimport { get } from 'lodash'\n\nlet glimpseHistories = {}\n\nexport function firstInGlimpse(glimpseName) {\n return glimpseHistories[glimpseName].length === 1\n}\n\nexport function trackEnter(glimpseName, nextState, replace) {\n glimpseHistories[glimpseName] = [nextState.location]\n\n if (!getLocationGlimpse(nextState.location)) {\n replace({\n ...nextState.location,\n state: { ...nextState.location.state, glimpse: glimpseName },\n })\n }\n}\n\nexport function trackChange(glimpseName, prevState, nextState, replace) {\n if (nextState.location.action === 'PUSH') {\n glimpseHistories[glimpseName].push(nextState.location)\n } else if (nextState.location.action === 'POP') {\n const historyStack = glimpseHistories[glimpseName] || []\n\n // Since 'POP' can mean either browser back or browser forward (!), we need to check for that\n // by inspecting the stack. If the history stack contains the location, it's a back, and if not,\n // it's forward.\n const stackItemIndex = historyStack.findIndex(\n location => location.pathname === nextState.location.pathname\n )\n\n if (stackItemIndex >= 0 || !historyStack.length) {\n // it's really a back action\n glimpseHistories[glimpseName] = historyStack.slice(0, stackItemIndex + 1)\n } else {\n // it's a forward action\n nextState.location.state = {\n ...(nextState.location.state || {}),\n forward: true,\n }\n historyStack.push(nextState.location)\n }\n }\n\n if (!getLocationGlimpse(nextState.location)) {\n replace({\n ...nextState.location,\n state: { ...nextState.location.state, glimpse: glimpseName },\n })\n }\n}\n\nexport function exitGlimpse(\n glimpseName,\n router,\n routePath,\n manageBackForNewTab\n) {\n const currentPathName = get(router, 'location.pathname', '')\n if (\n glimpseName === 'send' &&\n routePath &&\n currentPathName.endsWith('review')\n ) {\n router.push(routePath)\n } else if (\n Object.keys(glimpseHistories).length === 1 &&\n manageBackForNewTab\n ) {\n router.replace(routePath)\n } else if (Object.keys(glimpseHistories).length > 0) {\n router.go(-glimpseHistories[glimpseName].length)\n } else {\n router.goBack()\n }\n delete glimpseHistories[glimpseName]\n}\n\nexport function addGlimpselessRouteToHistory(\n glimpseName,\n nextState,\n replace,\n history\n) {\n if (nextState.location.state && nextState.location.state.initial) {\n replace({\n pathname: glimpselessRoute(glimpseName),\n })\n\n // we need to do this on the next tick to give a chance to the replace() do to its thing first.\n setTimeout(() => {\n history.push(glimpseRoute(glimpseName))\n }, 0)\n }\n}\n\nexport function getLocationGlimpse(location) {\n if (location.state) {\n return location.state.glimpse\n }\n return null\n}\n\nexport function isForward(location) {\n return location.action !== 'POP' || (location.state && location.state.forward)\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nimport ModalWizard from 'components/modal_wizard'\nimport { routerShape } from 'react-router/lib/PropTypes'\nimport { withRouter } from 'react-router'\nimport { trackFPTI } from 'lib/fpti_utils'\nimport { get } from 'lodash'\nimport { FOU_LIMIT_REACHED_ERROR } from 'shared/shared_consts'\n\nimport { exitGlimpse, isForward } from 'lib/glimpse'\n\nclass EditGlimpse extends React.Component {\n static propTypes = {\n operatingRemotely: PropTypes.bool,\n children: PropTypes.any,\n routes: PropTypes.array.isRequired,\n params: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n router: routerShape.isRequired,\n route: PropTypes.any,\n progressValue: PropTypes.number,\n goalReached: PropTypes.bool,\n charity: PropTypes.object,\n campaign: PropTypes.object,\n campaignId: PropTypes.string,\n }\n\n handleClose = () => {\n //reload transaction when user is coming from transfer route\n const reloadTransactions = this.props?.location?.pathname.includes(\n 'transfer'\n )\n ? true\n : false\n const route = {\n pathname: '/pools',\n state: { reloadTransactions, campaignId: this.props.campaignId },\n }\n\n if (this.props.route.path === 'viewupdates') {\n //We need to work on glimpse routing and fix this later. This is temporary solve\n //When doner clicks on close ICON on organizer update sheet, take the user to fundraiser page\n this.props.router.push({ pathname: `/pools/c/${this.props.campaignId}` })\n } else {\n exitGlimpse('edit', this.props.router, route, true)\n }\n const getRoutes = get(this.props, 'routes')\n const routeName = getRoutes[getRoutes.length - 1].path\n const campaign = this.props.campaign\n const count = get(this.props, 'campaign.organizerUpdate.total', 0)\n\n if (routeName === 'viewupdates') {\n trackFPTI(\n campaign,\n 'click',\n 'dw_giving_organizer_update_list_dismiss_pressed',\n 'close',\n '',\n count\n )\n } else if (routeName === ':fouId/share') {\n trackFPTI(\n campaign,\n 'click',\n 'dw_giving_share_update_dismiss_pressed',\n 'close'\n )\n } else if (routeName === ':fouId/updatedetails') {\n trackFPTI(\n campaign,\n 'click',\n 'dw_giving_update_detail_dismiss_pressed',\n 'close',\n count\n )\n } else if (routeName === 'error') {\n let errorObject = campaign.err\n const errName = get(campaign, 'err.name')\n\n if (errName === FOU_LIMIT_REACHED_ERROR) {\n errorObject = {\n error_desc: 'reached_limit',\n error_code: '422',\n }\n }\n trackFPTI(\n campaign,\n 'click',\n 'dw_giving_post_update_error_dismiss_pressed',\n 'close',\n errorObject,\n count\n )\n } else {\n trackFPTI(\n campaign,\n 'click',\n 'dw_giving_donor_update_list_dismiss_pressed',\n 'close',\n count\n )\n trackFPTI(\n campaign,\n 'click',\n 'dw_giving_manage_fundraiser_dismiss_pressed',\n 'close'\n )\n }\n }\n\n render() {\n const child = React.Children.only(this.props.children)\n const stepName =\n this.props.routes && this.props.routes[this.props.routes.length - 1].path\n const isDelete = stepName === 'delete'\n const isPadding = stepName === 'viewupdates'\n return (\n \n {React.cloneElement(child, { key: stepName })}\n \n )\n }\n}\n\nexport default withRouter(EditGlimpse)\n","import EditGlimpse from './edit_glimpse'\nimport { connect } from 'react-redux'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n const progressValue = campaign.goal\n ? Math.min((campaign.current_value + campaign.pledge) / campaign.goal, 1)\n : 0\n return {\n operatingRemotely: campaign.operatingRemotely,\n progressValue: progressValue,\n goalReached: progressValue >= 1,\n charity: campaign.charity,\n campaign: campaign,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {}\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(EditGlimpse)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './flat_progress.less'\nimport { useIntl } from 'intl'\nimport {\n ProgressMeter,\n HeadingText,\n CaptionText,\n BodyText,\n} from '@paypalcorp/pp-react'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { POOL_TYPE } from 'shared/shared_consts'\nimport clsx from 'clsx'\n\nconst FlatProgress = props => {\n const { dataTestId, size, campaignType, detailsPageSpace } = props\n const { formatCurrency, formatPercent, formatMessage } = useIntl()\n\n const percent = formatPercent(props.totalAmount / props.goalAmount)\n\n const formattedGoalAmount = formatCurrency(\n props.goalAmount,\n props.currencyCode\n )\n\n const formattedTotalAmount = formatCurrency(\n props.totalAmount,\n props.currencyCode\n )\n\n const amountOrPercent = props.displayTotalAmount\n ? formattedTotalAmount\n : percent\n\n let amountOrPercentContentKey = props.displayTotalAmount\n ? 'amount_of_goal'\n : 'raised_amount_goal'\n\n if (campaignType === POOL_TYPE.PRIVATE) {\n amountOrPercentContentKey = 'collected_amount_goal'\n }\n\n return (\n
\n
\n {props.title ? (\n \n {props.titleIcon} {props.title}\n \n ) : (\n \n {formatCurrency(props.totalAmount, props.currencyCode)}\n \n )}\n
\n {props.showProgress && props.goalAmount > 0 ? (\n \n ) : (\n \n \n \n )}\n
\n )\n}\n\nFlatProgress.propTypes = {\n currencyCode: PropTypes.string,\n totalAmount: PropTypes.number,\n goalAmount: PropTypes.value,\n showProgress: PropTypes.bool,\n title: PropTypes.string,\n titleIcon: PropTypes.element,\n displayTotalAmount: PropTypes.bool,\n dataTestId: PropTypes.string,\n size: PropTypes.string,\n campaignType: PropTypes.string,\n detailsPageSpace: PropTypes.bool,\n}\n\nFlatProgress.defaultProps = {\n titleIcon: '',\n showProgress: true,\n displayTotalAmount: false,\n dataTestId: 'flat-progress',\n}\n\nexport default cssModules(FlatProgress, styles, { allowMultiple: true })\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './alert.less'\n\nconst TYPES = ['help', 'warning', 'critical', 'success']\n\nclass Alert extends React.Component {\n static propTypes = {\n type: PropTypes.oneOf(TYPES),\n children: PropTypes.any,\n }\n\n render() {\n return (\n
\n

{this.props.children}

\n
\n )\n }\n}\n\nexport default cssModules(Alert, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './no_currency_alert.less'\nimport { getI18n } from 'intl'\nimport Alert from 'components/common/alert'\n\nconst i18n = getI18n('components/no_currency_alert')\n\nclass NoCurrencyAlert extends React.Component {\n static propTypes = {\n currency: PropTypes.string,\n paypalDomain: PropTypes.string,\n }\n\n render() {\n const currency = this.props.currency\n const currencyUrl = `https://${\n this.props.paypalDomain\n }/il/cgi-bin/webscr?cmd=_profile-currencies`\n\n return (\n \n {i18n('need_to_add_currency', { currency })}\n  \n \n {i18n('add_currency')}\n \n \n )\n }\n}\n\nexport default cssModules(NoCurrencyAlert, styles)\n","import React from 'react'\nimport { PropTypes } from 'prop-types'\nimport { connect } from 'react-redux'\nimport { Toast } from '@paypalcorp/pp-react'\nimport { hide } from 'redux/modules/toast_notification'\n\nclass ToastContainer extends React.Component {\n static propTypes = {\n dispatch: PropTypes.func,\n message: PropTypes.node,\n duration: PropTypes.number,\n visible: PropTypes.object,\n delayTime: PropTypes.number,\n id: PropTypes.string,\n isSuccess: PropTypes.bool,\n }\n\n state = {\n show:\n this.props.visible[this.props.id] && this.props.delayTime ? false : true,\n }\n\n handleClose = () => {\n const { dispatch, id } = this.props\n dispatch(hide(id))\n }\n\n componentDidMount() {\n const { delayTime } = this.props\n if (delayTime) {\n setTimeout(() => this.setState({ show: true }), delayTime)\n }\n }\n\n render() {\n const { duration = 7000, id, isSuccess, message } = this.props\n return this.state.show ? (\n \n ) : null\n }\n}\n\nexport default connect(state => ({\n visible: state.toast_notification,\n}))(ToastContainer)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './campaign_balance.less'\nimport { getI18n, formatCurrency } from 'intl'\nimport { BodyText, HeadingText, Tooltip } from '@paypalcorp/pp-react'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\n\nconst i18n = getI18n('components/campaign_balance')\n\nclass campaign_balance extends React.Component {\n static propTypes = {\n pledge: PropTypes.number,\n withdraw: PropTypes.number,\n campaignId: PropTypes.string,\n currencyCode: PropTypes.string,\n moneyboxAmount: PropTypes.number,\n netAmount: PropTypes.number,\n leftAlignFlag: PropTypes.bool,\n worldReady: PropTypes.Object,\n }\n\n render() {\n const {\n currencyCode,\n moneyboxAmount,\n netAmount,\n pledge,\n leftAlignFlag,\n } = this.props\n return (\n
\n {!leftAlignFlag ? (\n \n {i18n('donations')}\n \n ) : null}\n
\n {!leftAlignFlag ? (\n
\n
\n {i18n('amount_received')}\n \n
\n
\n \n {formatCurrency({\n value: netAmount,\n currencyCode,\n additionalConfig: {},\n worldReady: this.props.worldReady,\n })}\n \n
\n
\n ) : null}\n
\n {leftAlignFlag ? (\n <>\n
\n {i18n('available')}\n \n
\n
\n \n {formatCurrency({\n value: moneyboxAmount,\n currencyCode,\n additionalConfig: {},\n worldReady: this.props.worldReady,\n })}\n \n
\n \n ) : (\n <>\n
\n {i18n('available')}\n \n
\n
\n \n {formatCurrency({\n value: moneyboxAmount,\n currencyCode,\n additionalConfig: {},\n worldReady: this.props.worldReady,\n })}\n \n
\n \n )}\n
\n
\n {leftAlignFlag ? (\n <>\n
\n {i18n('pledge_by')}\n
\n
\n \n {formatCurrency({\n value: pledge,\n currencyCode,\n additionalConfig: {},\n worldReady: this.props.worldReady,\n })}\n \n
\n \n ) : (\n <>\n
\n {i18n('pledge_by')}\n
\n
\n \n {formatCurrency({\n value: pledge,\n currencyCode,\n additionalConfig: {},\n worldReady: this.props.worldReady,\n })}\n \n
\n \n )}\n
\n
\n
\n )\n }\n}\n\nexport default injectWorldReady(cssModules(campaign_balance, styles))\n","import CampaignBalance from './campaign_balance'\nimport { connect } from 'react-redux'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n\n return {\n pledge: campaign.pledge,\n currencyCode: campaign.currency,\n withdraw: campaign.current_value - campaign.moneybox_amount,\n moneyboxAmount: campaign.moneybox_amount,\n netAmount: campaign.net_amount,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {}\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(CampaignBalance)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport ReactCSSTransitionGroup from 'react-transition-group/CSSTransitionGroup'\nimport cssModules from 'react-css-modules'\nimport styles from './reveal.less'\n\nconst DURATION = 300\n\nclass RevealTransition extends React.Component {\n static propTypes = {\n children: PropTypes.any,\n }\n\n render() {\n const transitionNames = {\n enter: styles['reveal-enter'],\n enterActive: styles['reveal-enter-active'],\n leave: styles['reveal-leave'],\n leaveActive: styles['reveal-leave-active'],\n }\n\n return (\n \n {this.props.children}\n \n )\n }\n}\n\nexport default cssModules(RevealTransition, styles)\n","import fetchClient from 'lib/fetch_client'\nimport routes from 'server_routes'\nimport { SET_TXN_LIST, SET_ACTIVITIES_LIST } from './campaign'\n\nexport function showMoreTxns(campaignId, page, pageSize, transactionType) {\n // show more actually fetches just the photos of the additional txns, since the txns are already in the client.\n return (dispatch, getState) => {\n return fetchClient()\n .request(routes.contributors.api.transactions(), {\n method: 'GET',\n query: {\n page,\n pageSize,\n campaignId: campaignId,\n contribution_type: transactionType || 'CONTRIBUTION',\n },\n })\n .then(response => {\n if (transactionType === 'ALL') {\n dispatch(\n finishShowMoreActivities(page, campaignId, {\n ...response,\n })\n )\n } else {\n dispatch(\n finishShowMoreTxns(page, campaignId, {\n ...response,\n })\n )\n }\n return response\n })\n .catch(e => {\n dispatch(finishShowMoreTxns(page, {}))\n })\n }\n}\n\nexport function finishShowMoreTxns(page, id, response) {\n return { page, type: SET_TXN_LIST, payload: { id, response } }\n}\n\nexport function finishShowMoreActivities(page, id, response) {\n return { page, type: SET_ACTIVITIES_LIST, payload: { id, response } }\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { legacyFormatDate as formatDate } from 'intl'\nimport RevealTransition from 'components/common/transitions/reveal'\nimport { connect } from 'react-redux'\nimport cssModules from 'react-css-modules'\nimport styles from './contributions_list.less'\nimport { showMoreTxns } from 'redux/modules/txns'\nimport { CaptionText, Link } from '@paypalcorp/pp-react'\nimport { CONTRIBUTION_TRANSACTIONS_PER_PAGE } from 'shared/shared_consts'\nimport { Message } from '@paypalcorp/worldready-react'\n\nconst IDLE_STATE = 'idle'\nconst LOADING_STATE = 'loading'\n\nclass ContributionList extends React.Component {\n static propTypes = {\n title: PropTypes.string,\n hideEmpty: PropTypes.bool,\n onShowMore: PropTypes.func.isRequired,\n contributions: PropTypes.array,\n showDaysRows: PropTypes.bool,\n preview: PropTypes.bool,\n txnsPerPage: PropTypes.number.isRequired,\n topElement: PropTypes.element,\n bottomElement: PropTypes.element,\n rowElement: PropTypes.func.isRequired,\n transactionType: PropTypes.string,\n totalTxnsCount: PropTypes.number.isRequired,\n }\n\n static defaultProps = {\n topElement: '',\n }\n\n state = {\n showMoreState: IDLE_STATE,\n pagesShown: 1,\n }\n\n totalShown = () => {\n return this.props.txnsPerPage * this.state.pagesShown\n }\n\n shownContributions = () => {\n return this.props.contributions\n }\n\n handleShowMore = page => {\n this.setState({ showMoreState: LOADING_STATE })\n this.props\n .onShowMore(\n this.state.pagesShown + 1,\n this.props.txnsPerPage,\n this.props.transactionType\n )\n .then(resp => {\n this.setState({\n showMoreState: IDLE_STATE,\n pagesShown: this.state.pagesShown + 1,\n })\n })\n .catch(() => {\n this.setState({\n showMoreState: IDLE_STATE,\n pagesShown: this.state.pagesShown + 1,\n })\n })\n }\n\n shouldSkipRenderingList = () => {\n return (\n !this.props.contributions ||\n (this.props.contributions.length === 0 && this.props.hideEmpty)\n )\n }\n\n addDatesBetweenContributions = contributions => {\n return contributions.reduce((elements, contribution, index) => {\n if (\n this.shouldShowDateRowBetweenContributions(\n contribution,\n contributions[index - 1]\n )\n ) {\n elements.push({ isDate: true, date: contribution.date })\n }\n elements.push(contribution)\n return elements\n }, [])\n }\n\n shouldShowDateRowBetweenContributions = (contribution, prevContribution) => {\n if (!prevContribution) {\n return true\n }\n const thisDate = new Date(contribution.date)\n const prevDate = new Date(prevContribution.date)\n return thisDate.toDateString() !== prevDate.toDateString()\n }\n\n render() {\n if (this.shouldSkipRenderingList()) {\n return null\n }\n\n let shownElements = this.shownContributions()\n\n if (this.props.showDaysRows) {\n shownElements = this.addDatesBetweenContributions(shownElements)\n }\n\n return (\n \n {this.props.topElement}\n\n {this.props.title && (\n
\n {this.props.title} {`(${this.props.contributions.length})`}\n
\n )}\n \n {shownElements.length > 0 &&\n shownElements.map((element, index) => {\n if (element.isDate) {\n return (\n
\n \n {formatDate(element.date, 'MMMd')}\n \n
\n )\n } else {\n return this.props.rowElement(element, element.id)\n }\n })}\n {this.props.bottomElement}\n {this.props.contributions.length < this.props.totalTxnsCount && (\n <>\n
\n \n \n \n
\n \n )}\n
\n \n )\n }\n}\n\nexport default connect(\n (state, ownProps) => {\n return {\n txnsPerPage: ownProps.txnsPerPage || CONTRIBUTION_TRANSACTIONS_PER_PAGE,\n }\n },\n (dispatch, { campaignId }) => {\n return {\n onShowMore(page, pageSize, transactionType) {\n return dispatch(\n showMoreTxns(campaignId, page, pageSize, transactionType)\n )\n },\n }\n }\n)(cssModules(ContributionList, styles))\n","// a merger between contributors and the txns\n\nimport { createSelector } from 'reselect'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\n\nexport const getTxnsSelector = createSelector(\n [getCampaignSelector],\n campaign => campaign.transactions || []\n)\n\nexport const getActivityTxnsSelector = createSelector(\n [getCampaignSelector],\n campaign => campaign.activities || []\n)\n\nexport const contributorsMapSelector = state => state.contributors.map\n\nexport const activityContributorsMapSelector = state =>\n state.activities && state.activities.contributors.map\n\nconst sharingOptionsSelector = createSelector(\n [getCampaignSelector],\n campaign => {\n return {\n sharingProgress: campaign.share_progress,\n sharingContributors: campaign.share_contributors,\n sharingContributions: campaign.share_contributions,\n }\n }\n)\nconst currencySelector = createSelector(\n getCampaignSelector,\n campaign => campaign.currency\n)\n\n// used for owner perspective.\n// includes all txns along poplated with their contributions,\n// regardless of sharing options or contributor anonymous choice.\n// it doesn't matter to have it \"selecting\" when an anonymous user views client,\n// because we hide that data in the server-side already\nexport const fullContributionsListSelector = createSelector(\n [getTxnsSelector, currencySelector],\n (txns, currency) => {\n return txns.map(txn => {\n return {\n ...txn,\n currency,\n contributor_name: txn.contributor_name,\n contributor_photo: txn.contributor_photo,\n }\n })\n }\n)\n\nexport const fullActivitiesListSelector = createSelector(\n [getActivityTxnsSelector, currencySelector],\n (txns, currency) => {\n return txns.map(txn => {\n return {\n ...txn,\n currency,\n contributor_name: txn.contributor_name,\n contributor_photo: txn.contributor_photo,\n }\n })\n }\n)\n\nexport const pendingContributionsListSelector = createSelector(\n [fullActivitiesListSelector],\n fullContributionsList =>\n fullContributionsList.filter(contribution => contribution.pending)\n)\n\nexport const completedContributionsListSelector = createSelector(\n [fullActivitiesListSelector],\n fullContributionsList =>\n fullContributionsList.filter(contribution => !contribution.pending)\n)\n\n// includes all txns along with their contributions\n// but hides data based on sharing options or contributor anonymous choice\nexport const publicContributionsListSelector = createSelector(\n [fullContributionsListSelector, sharingOptionsSelector],\n (fullContributorsList, sharingOptions) => {\n const showContributionsAtAll =\n sharingOptions.sharingProgress || sharingOptions.sharingContributors\n if (!showContributionsAtAll) {\n return null\n }\n return fullContributorsList\n .filter(\n contribution =>\n (!contribution.withdraw && !contribution.pending) ||\n contribution.owner_chip_in\n )\n .map(contribution => {\n const shareContributorDetails =\n sharingOptions.sharingContributors && !contribution.anonymous\n return {\n ...contribution,\n contributor_id: shareContributorDetails\n ? contribution.contributor_id\n : undefined,\n contributor_name: shareContributorDetails\n ? contribution.contributor_name\n : undefined,\n contributor_photo: shareContributorDetails\n ? contribution.contributor_photo\n : undefined,\n amount: sharingOptions.sharingContributions\n ? contribution.amount\n : undefined,\n }\n })\n }\n)\n","import { connect } from 'react-redux'\nimport UnboundContributionsList from './contributions_list'\nimport {\n pendingContributionsListSelector,\n completedContributionsListSelector,\n fullActivitiesListSelector,\n} from 'redux/selectors/contributions'\n\nexport const PendingContributionsList = connect((state, props) => {\n return {\n contributions: pendingContributionsListSelector(state, props),\n transactionType: 'ALL',\n }\n})(UnboundContributionsList)\n\nexport const CompletedActivityList = connect((state, props) => {\n return {\n contributions: completedContributionsListSelector(state, props),\n transactionType: 'ALL',\n }\n})(UnboundContributionsList)\n\nexport const FullActivityList = connect((state, props) => {\n return {\n contributions: fullActivitiesListSelector(state, props),\n transactionType: 'ALL',\n }\n})(UnboundContributionsList)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport { Avatar as AvatarIcon } from '@paypalcorp/pp-react'\nimport styles from './avatar.less'\n\nexport const avatarColors = ['blue', 'purple', 'green']\n\nclass Avatar extends React.Component {\n static propTypes = {\n imageUrl: PropTypes.string,\n initials: PropTypes.string,\n backgroundColor: PropTypes.oneOf(avatarColors),\n blank: PropTypes.bool,\n }\n\n render() {\n let noAvatarElement = ''\n if (!this.props.blank) {\n if (this.props.imageUrl) {\n noAvatarElement = (\n \n )\n }\n\n if (!this.props.imageUrl) {\n if (this.props.initials) {\n noAvatarElement = (\n \n )\n } else {\n noAvatarElement = (\n \n )\n }\n }\n }\n\n return
{noAvatarElement}
\n }\n}\n\nexport default cssModules(Avatar, styles, { allowMultiple: true })\n","export function getInitials(fullName) {\n // TODO: l10n?\n if (fullName == null || fullName.length < 1) {\n return ''\n }\n\n const splitName = fullName.split(/ +/g).filter(e => e)\n const firstName = splitName.length > 0 ? splitName[0] : null\n const lastName = splitName.length > 1 ? splitName[splitName.length - 1] : null\n return (\n (firstName ? firstName[0].toUpperCase() : '') +\n (lastName ? lastName[0].toUpperCase() : '')\n )\n}\n","import Avatar from './avatar'\nimport { connect } from 'react-redux'\n\nimport { getInitials } from 'shared/helpers/name_helpers'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n const campaignOwner = campaign.owner\n const initials = props.showInitials\n ? getInitials(campaignOwner.full_name)\n : null\n\n return {\n imageUrl: campaignOwner.profile_photo,\n initials,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {}\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(Avatar)\n","// taken from here: http://stackoverflow.com/questions/40958727/javascript-generate-unique-number-based-on-string\nexport function getHash(input) {\n let hash = 0,\n len = input.length\n for (let i = 0; i < len; i++) {\n hash = (hash << 5) - hash + input.charCodeAt(i) // eslint-disable-line no-bitwise\n hash |= 0 // eslint-disable-line no-bitwise\n }\n return hash\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { UnboundAvatar, avatarColors } from 'components/common/avatar'\nimport cssModules from 'react-css-modules'\nimport styles from './activity_row.less'\nimport { getHash } from 'shared/helpers/string_helpers'\nimport { getInitials } from 'shared/helpers/name_helpers'\nimport { BodyText, Card, PAYPAL_THEME } from '@paypalcorp/pp-react'\nimport { useIntl } from 'intl'\nimport { Message } from '@paypalcorp/worldready-react'\nimport contributionStyles from './public_contribution_row.less'\n\nconst ActivityRow = props => {\n const { sysColorAccent3Main, sysColorBackgroundHighContrast } = PAYPAL_THEME\n\n const { formatMessage, formatCurrency } = useIntl()\n const getAvatarBackgroundColor = () => {\n if (props.withdraw) {\n return 'blue'\n }\n if (!props.contributor_id) {\n return 'white'\n }\n const uniqueNumericId = getHash(props.contributor_id.toString())\n return avatarColors[uniqueNumericId % avatarColors.length]\n }\n\n const amountSign = props.withdraw ? '-' : '+'\n const subjectName = props.withdraw\n ? formatMessage('components.txn_row.txn_row.paypal_balance')\n : props.contributor_name\n const activityType = props.withdraw\n ? formatMessage('components.txn_row.txn_row.transfer')\n : formatMessage('components.txn_row.txn_row.donation')\n const imageUrl = props.withdraw\n ? 'https://www.paypalobjects.com/paypal-ui/logos/svg/paypal-mark-color.svg'\n : props.contributor_photo\n\n return (\n \n
\n
\n \n
\n
\n
\n \n {subjectName}\n \n \n {activityType}\n {props.pending && (\n \n {' \\u2022 '}\n \n \n )}\n \n
\n \n {amountSign}\n {formatCurrency(props.net_amount, props.currency)}\n \n
\n
\n {props.note && (\n
\n {props.note}\n
\n )}\n
\n )\n}\n\nActivityRow.defaultProps = {\n note: '',\n amount: null,\n currency: '',\n contributor_id: '',\n contributor_name: '',\n contributor_photo: '',\n pending: false,\n withdraw: false,\n net_amount: null,\n}\n\nActivityRow.propTypes = {\n id: PropTypes.string,\n note: PropTypes.string,\n amount: PropTypes.number,\n currency: PropTypes.string,\n contributor_id: PropTypes.string,\n contributor_name: PropTypes.string,\n contributor_photo: PropTypes.string,\n pending: PropTypes.bool,\n withdraw: PropTypes.bool,\n net_amount: PropTypes.number,\n}\n\nexport default cssModules(ActivityRow, styles)\n","import React from 'react'\nimport { HeadingText, Link } from '@paypalcorp/pp-react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport { getI18n } from 'intl'\nimport styles from './activity.less'\nimport { FullActivityList } from 'components/contributions_list/owner_activity_list'\nimport ActivityRow from 'components/contributions_list/rows/activity_row'\nimport { trackClick } from 'lib/fpti_analytics'\nimport { ACTIVITIES_TRANSACTIONS_PER_PAGE } from 'shared/shared_consts'\n\nconst i18n = getI18n('components/edit_glimpse/activity')\n\nclass CrowdfundingActivity extends React.Component {\n static propTypes = {\n campaignId: PropTypes.string,\n activitiesCount: PropTypes.string,\n }\n\n handleFPTI = transactionId => {\n trackClick({\n clickName: 'dw_giving_manage_fundraiser_activity_tile_pressed',\n data: {\n event_name: 'dw_giving_manage_fundraiser_activity_tile_pressed',\n txn_id: transactionId,\n },\n })\n }\n\n render() {\n return (\n
\n \n {i18n('crowdfunding_activity.title')}\n {`(${this.props.activitiesCount})`}\n \n
\n (\n {\n this.handleFPTI(activityItem.credit_txn_id)\n }}\n >\n \n \n )}\n />\n
\n
\n )\n }\n}\n\nexport default cssModules(CrowdfundingActivity, styles, {\n allowMultiple: true,\n})\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './organizer_update_detail.less'\nimport { glimpseRoute } from 'lib/route_utils'\nimport { Link as RouterLink } from 'react-router'\nimport {\n BodyText,\n HeadingText,\n CaptionText,\n Button,\n Row,\n} from '@paypalcorp/pp-react'\nimport { Message, injectWorldReady } from '@paypalcorp/worldready-react'\nimport clsx from 'clsx'\nimport { daysUntilToday } from 'shared/helpers/datetime_helpers'\nimport { trackFPTI } from 'lib/fpti_utils'\nimport { formatDate } from 'intl'\n\nexport class OrganizerUpdateDetail extends React.Component {\n static propTypes = {\n organizerUpdateRow: PropTypes.object.isRequired,\n postUpdateUrl: PropTypes.string.isRequired,\n enableEditButton: PropTypes.bool,\n truncateSubject: PropTypes.bool,\n truncateDescription: PropTypes.bool,\n isDonerView: PropTypes.bool,\n campaign: PropTypes.object,\n eventName: PropTypes.string,\n updateState: PropTypes.string,\n shown: PropTypes.string,\n worldReady: PropTypes.Object,\n }\n render() {\n const {\n organizerUpdateRow,\n postUpdateUrl,\n enableEditButton,\n truncateDescription,\n truncateSubject,\n isDonerView,\n campaign,\n eventName,\n updateState,\n worldReady,\n } = this.props\n\n const days = Math.abs(\n daysUntilToday(new Date(organizerUpdateRow.time_created))\n )\n const key = days === 0 || days === 1 ? `days_ago_${days}` : 'days_ago_other'\n if (enableEditButton || isDonerView) {\n const isDonerEventName = isDonerView\n ? 'dw_giving_donor_update_detail_screen_shown'\n : eventName\n trackFPTI(\n campaign,\n 'impression',\n isDonerEventName,\n '',\n '',\n '',\n updateState\n )\n }\n return (\n \n
\n \n {organizerUpdateRow.subject}\n \n \n {days <= 28 ? (\n \n ) : (\n formatDate(worldReady, organizerUpdateRow.time_created)\n )}\n \n
\n \n \n {organizerUpdateRow.text}\n {organizerUpdateRow.edited && (\n \n \n \n )}\n \n \n {enableEditButton && (\n \n {\n trackFPTI(\n campaign,\n 'click',\n 'dw_giving_update_detail_edit_pressed'\n )\n }}\n >\n \n \n \n )}\n \n )\n }\n}\n\nexport default injectWorldReady(\n cssModules(OrganizerUpdateDetail, styles, {\n allowMultiple: true,\n })\n)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './update_row.less'\nimport { glimpseRoute } from 'lib/route_utils'\nimport { Card, Link } from '@paypalcorp/pp-react'\nimport { Link as RouterLink } from 'react-router'\nimport OrganizerUpdateDetail from 'components/glimpses/edit_glimpse/organizer_update_detail/organizer_update_detail'\nimport { trackFPTI } from 'lib/fpti_utils'\nimport { get } from 'lodash'\n\nclass UpdateRow extends React.Component {\n static propTypes = {\n organizerUpdate: PropTypes.Array.isRequired,\n postUpdateUrl: PropTypes.string,\n charity: PropTypes.object,\n campaignId: PropTypes.string,\n eventName: PropTypes.string,\n updateState: PropTypes.string,\n showLatest: PropTypes.boolean,\n truncateDescription: PropTypes.boolean,\n truncateSubject: PropTypes.boolean,\n isDonerView: PropTypes.boolean,\n campaign: PropTypes.object,\n count: PropTypes.number,\n }\n\n render() {\n const {\n organizerUpdate,\n postUpdateUrl,\n showLatest,\n truncateDescription,\n truncateSubject,\n isDonerView,\n updateState,\n eventName,\n campaign,\n count,\n } = this.props\n\n let organizerUpdateList = get(organizerUpdate, 'items', [])\n if (showLatest && organizerUpdateList.length) {\n organizerUpdateList = [organizerUpdateList[0]]\n }\n return (\n <>\n {organizerUpdateList.map((row, index) => (\n {\n trackFPTI(\n campaign,\n 'click',\n eventName,\n '',\n '',\n count,\n updateState,\n index\n )\n }}\n >\n \n \n \n \n ))}\n \n )\n }\n}\n\nexport default cssModules(UpdateRow, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './pictograms.less'\nimport { getCdnHostName } from '@paypalcorp/instance-location'\n\nclass Pictograms extends React.Component {\n static propTypes = {\n type: PropTypes.string,\n svg: PropTypes.string,\n alt: PropTypes.string,\n classname: PropTypes.string,\n cdnHost: PropTypes.string,\n dataTestId: PropTypes.string,\n }\n\n static defaultProps = {\n type: 'multicolored',\n cdnHost: getCdnHostName(),\n alt: '',\n }\n\n render() {\n const { type, svg, alt, cdnHost, classname, dataTestId } = this.props\n return (\n \n )\n }\n}\n\nexport default cssModules(Pictograms, styles)\n","import React from 'react'\nimport {\n HeadingText,\n Button,\n Link,\n BodyText,\n IconButton,\n AddIcon,\n} from '@paypalcorp/pp-react'\nimport { Link as RouterLink } from 'react-router'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './updates.less'\nimport UpdateRow from 'components/contributions_list/rows/update_row'\nimport { glimpseRoute } from 'lib/route_utils'\nimport _ from 'lodash'\nimport { Message } from '@paypalcorp/worldready-react'\nimport Pictograms from 'components/common/pictograms'\nimport { trackFPTI } from 'lib/fpti_utils'\n\nclass CrowdfundingActivity extends React.Component {\n static propTypes = {\n campaignId: PropTypes.string,\n activitiesCount: PropTypes.string,\n cdnHost: PropTypes.string,\n organizerUpdate: PropTypes.object,\n showLatest: PropTypes.bool,\n charity: PropTypes.object,\n params: PropTypes.object,\n campaign: PropTypes.object,\n }\n render() {\n const {\n campaignId,\n organizerUpdate,\n showLatest,\n cdnHost,\n charity,\n campaign,\n } = this.props\n const postUpdateUrl = `c/${campaignId}/postupdate`\n const viewpostUpdateUrl = `${postUpdateUrl}/viewupdates`\n const organizerUpdatesCount = _.get(organizerUpdate, 'total') || 0\n let updateState = 'multiple'\n if (organizerUpdatesCount === 0) {\n updateState = 'zero'\n } else if (organizerUpdatesCount === 1) {\n updateState = 'one'\n }\n return (\n <>\n
\n \n \n \n {organizerUpdatesCount > 0 && (\n <>\n {\n trackFPTI(\n campaign,\n 'click',\n 'dw_giving_manage_fundraiser_post_update_button_pressed',\n '',\n '',\n '',\n updateState\n )\n }}\n >\n \n \n
\n {\n trackFPTI(\n campaign,\n 'click',\n 'dw_giving_manage_fundraiser_post_update_button_pressed',\n '',\n '',\n '',\n updateState\n )\n }}\n />\n
\n \n )}\n
\n {organizerUpdatesCount > 0 ? (\n \n ) : (\n
\n \n \n \n \n {\n trackFPTI(\n campaign,\n 'click',\n 'dw_giving_manage_fundraiser_post_update_button_pressed',\n '',\n '',\n '',\n updateState\n )\n }}\n >\n \n \n
\n )}\n\n {organizerUpdatesCount > 1 && (\n
\n {\n trackFPTI(\n campaign,\n 'click',\n 'dw_giving_manage_fundraiser_show_previous_update_pressed',\n '',\n '',\n '',\n updateState\n )\n }}\n >\n \n \n
\n )}\n \n )\n }\n}\n\nexport default cssModules(CrowdfundingActivity, styles)\n","import React from 'react'\nimport { useIntl } from 'intl'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport { Message } from '@paypalcorp/worldready-react'\nimport styles from '../../crowdfunding_campaign_header.less'\nimport { Col, Badge, ClockIcon } from '@paypalcorp/pp-react'\nimport { daysFromToday } from 'shared/helpers/datetime_helpers'\nimport clsx from 'clsx'\n\nconst DaysComponent = ({ endDate, canChipIn, topAlignment }) => {\n const { formatDate } = useIntl()\n const days = daysFromToday(new Date(endDate))\n\n const badgeType = canChipIn ? 'warning' : 'neutral'\n const badgeContentId = canChipIn\n ? 'components.crowdfunding_campaign_header.end_in'\n : 'components.crowdfunding_campaign_header.ended_on'\n\n return (\n \n \n \n \n \n )\n}\n\nDaysComponent.propTypes = {\n endDate: PropTypes.string,\n canChipIn: PropTypes.bool,\n topAlignment: PropTypes.bool,\n}\n\nexport default cssModules(DaysComponent, styles, {\n allowMultiple: true,\n})\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './crowdfunding_campaign_header.less'\nimport {\n Badge,\n CaptionText,\n Col,\n HeadingText,\n Row,\n Link as PPLink,\n CausesIcon,\n} from '@paypalcorp/pp-react'\nimport EndDateBadge from './helper_components/end_date_badge'\nimport clsx from 'clsx'\nimport { trackEventNameClick } from 'lib/fpti_analytics'\nimport { CHARITY_INSTRUMENTATION } from 'shared/shared_consts'\n\nclass CrowdFundingCampaignHeader extends React.Component {\n static propTypes = {\n campaignId: PropTypes.string.isRequired,\n canChipIn: PropTypes.bool.isRequired,\n categoryName: PropTypes.string.isRequired,\n charity: PropTypes.object,\n creatorName: PropTypes.string.isRequired,\n end_date: PropTypes.string,\n initials: PropTypes.string.isRequired,\n paypalDomain: PropTypes.string.isRequired,\n poolName: PropTypes.string.isRequired,\n profileImage: PropTypes.string.isRequired,\n showDaysRemaining: PropTypes.bool,\n isCharityLink: PropTypes.bool,\n discoverable: PropTypes.string,\n }\n static defaultProps = { isCharityLink: false }\n\n getCharityNameComponent(charity) {\n const { paypalDomain, isCharityLink } = this.props\n return (\n \n \n \n \n {charity.nonprofit_id && isCharityLink ? (\n \n {charity.name}\n \n ) : (\n charity.name\n )}\n \n \n \n )\n }\n\n handleFPTI = () => {\n const { charity } = this.props\n if (charity) {\n trackEventNameClick({\n event_name: CHARITY_INSTRUMENTATION.NPO_LINK_PRESSED,\n })\n }\n }\n\n getCategoryComponent() {\n return (\n \n {this.props.categoryName.split(',').map(name => {\n return (\n name && (\n \n {name}\n \n )\n )\n })}\n \n )\n }\n\n render() {\n const {\n charity,\n end_date,\n showDaysRemaining,\n canChipIn,\n categoryName,\n } = this.props\n return (\n \n \n \n \n {this.props.poolName}\n \n \n \n {charity && this.getCharityNameComponent(charity)}\n \n {showDaysRemaining && (\n \n )}\n {this.props.categoryName && this.getCategoryComponent()}\n \n \n )\n }\n}\n\nexport default cssModules(CrowdFundingCampaignHeader, styles, {\n allowMultiple: true,\n})\n","import CampaignHeader from './crowdfunding_campaign_header'\nimport { connect } from 'react-redux'\nimport { formatName } from 'intl'\nimport {\n getCampaignSelector,\n getCampaignCategorySelector,\n} from 'redux/selectors/campaign'\nimport { getInitials } from 'shared/helpers/name_helpers'\nimport { generateCategoryName } from 'client/lib/category'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\n\nconst mapStateToProps = (state, ownProps) => {\n const campaign = getCampaignSelector(state, ownProps)\n const ownerName =\n campaign.owner.business_name ||\n formatName(ownProps.worldReady, {\n givenName: campaign.owner.first_name,\n surname: campaign.owner.last_name,\n })\n const category = getCampaignCategorySelector(state, ownProps)\n const categoryName = generateCategoryName(state, category)\n\n return {\n campaignId: campaign.id,\n canChipIn: campaign.can_chip_in,\n categoryName,\n charity: campaign.charity,\n creatorName: ownerName,\n end_date: campaign.end_date,\n initials: getInitials(ownerName),\n paypalDomain: state.geo.paypalDomain,\n poolName: campaign.title,\n profileImage: campaign.owner.profile_photo,\n discoverable: campaign.discoverable,\n ...ownProps,\n }\n}\n\nexport default injectWorldReady(connect(mapStateToProps)(CampaignHeader))\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport { getI18n } from 'intl'\nimport styles from './manage_cf.less'\nimport { Link as RouterLink, withRouter } from 'react-router'\nimport { glimpseRoute } from 'lib/route_utils'\nimport FlatProgress from 'components/common/flat_progress'\nimport NoCurrencyAlert from 'components/pages/campaign/no_currency_alert'\nimport {\n Row,\n Col,\n CaptionText,\n Link,\n IconButton,\n CharitiesIcon,\n EditIcon,\n PreviewIcon,\n ShareIcon,\n TransferIcon,\n PledgeIcon,\n LoadingSpinner,\n} from '@paypalcorp/pp-react'\nimport ToastContainer from 'components/common/toast_container'\nimport CampaignBalance from 'components/pages/campaign/campaign_balance'\nimport CrowdfundingActivity from 'components/glimpses/edit_glimpse/activity/crowdfunding_activity'\nimport CrowdfundingUpdate from 'components/glimpses/edit_glimpse/updates/updates_activity'\nimport CrowdfundingHeader from 'components/crowdfunding_campaign_header'\nimport { routerShape } from 'react-router/lib/PropTypes'\nimport { trackClick } from '../../../../lib/fpti_analytics'\n\nimport {\n INSTRUMENT_EVENTS,\n INSTRUMENT_TAGS,\n KEY_PRESS_EVENTS,\n TOAST_NOTIFICATIONS,\n} from 'shared/shared_consts'\n\nconst { ENTER_KEY } = KEY_PRESS_EVENTS\nconst i18n = getI18n('components/edit_glimpse/manage_cf')\n\nclass Manage extends React.Component {\n static propTypes = {\n campaignId: PropTypes.string,\n canDonateGNC: PropTypes.bool,\n canPledge: PropTypes.bool,\n charity: PropTypes.object,\n currencyCode: PropTypes.string,\n currentValue: PropTypes.number,\n dispatch: PropTypes.func,\n goal: PropTypes.number,\n hasChippedIn: PropTypes.bool,\n hasCurrencyBalance: PropTypes.bool,\n hasMoneybox: PropTypes.bool,\n onDonate: PropTypes.func,\n onTransfer: PropTypes.func,\n router: routerShape.isRequired,\n showUpdateSuccess: PropTypes.object,\n showDeleteSuccess: PropTypes.object,\n paypalDomain: PropTypes.string,\n cdnHost: PropTypes.string,\n activitiesCount: PropTypes.number,\n leftAlignFlag: PropTypes.bool,\n loadingActivities: PropTypes.bool,\n organizerUpdate: PropTypes.object,\n campaign: PropTypes.object,\n isOrganizerUpdatesEnabled: PropTypes.bool,\n }\n\n handleTransferClick = event => {\n this.handleFPTI(event)\n if (!this.props.hasMoneybox) {\n event.preventDefault()\n } else {\n this.props.onTransfer()\n }\n }\n\n handleDonateClick = event => {\n event.preventDefault()\n\n trackClick({\n clickName: INSTRUMENT_TAGS.DONATE,\n data: {\n event_name:\n INSTRUMENT_EVENTS.DW_GIVING_MANAGE_FUNDRASIER_DONATE_PRESSED,\n },\n })\n\n this.props.onDonate(this.props.campaignId)\n }\n\n handleFPTI = event => {\n if (event && event.currentTarget) {\n trackClick({\n clickName: event.currentTarget.getAttribute('fptitag'),\n data: {\n event_name: event.currentTarget.getAttribute('fptitag'),\n },\n })\n }\n }\n\n render() {\n const {\n campaignId,\n canDonateGNC,\n canPledge,\n charity,\n currencyCode,\n currentValue,\n goal,\n hasChippedIn,\n hasCurrencyBalance,\n hasMoneybox,\n paypalDomain,\n activitiesCount,\n leftAlignFlag,\n loadingActivities,\n organizerUpdate,\n cdnHost,\n campaign,\n isOrganizerUpdatesEnabled,\n showUpdateSuccess,\n showDeleteSuccess,\n } = this.props\n const isCharity = !!charity && charity.name\n const manageCampaignUrl = `c/${campaignId}`\n const editCampaignUrl = `${manageCampaignUrl}/edit`\n const shareCampaignUrl = `${manageCampaignUrl}/edit/share`\n const pledgeCampaignUrl = `${manageCampaignUrl}/edit/pledge`\n\n const message =\n showUpdateSuccess?.message ||\n showDeleteSuccess?.message ||\n i18n('update_success_message')\n\n return (\n
\n {!hasCurrencyBalance && (\n \n )}\n {(showUpdateSuccess || showDeleteSuccess) && (\n \n )}\n
\n
\n \n
\n
\n \n
\n \n \n \n \n \n {i18n('edit_fundraiser')}\n \n \n \n \n {\n if (e.key === ENTER_KEY) {\n this.handleFPTI()\n }\n }}\n tabIndex={0}\n >\n \n \n {i18n('show_fundraiser')}\n \n \n \n \n \n \n \n {i18n('share')}\n \n \n \n {hasChippedIn &&\n !isCharity && (\n \n {\n if (e.key === ENTER_KEY) {\n this.handleTransferClick()\n }\n }}\n styleName=\"manage-link\"\n tabIndex={0}\n >\n \n \n {i18n('transfer_link')}\n \n \n \n )}\n {canPledge &&\n !isCharity && (\n \n \n \n \n {i18n('pledge')}\n \n \n \n )}\n {canDonateGNC && (\n \n \n \n \n {i18n('donate')}\n \n \n \n )}\n \n
\n {!isCharity && (\n \n )}\n {loadingActivities && (\n
\n \n
\n )}\n {isOrganizerUpdatesEnabled && (\n \n )}\n {!isCharity && (\n \n )}\n
\n )\n }\n}\n\nexport default withRouter(cssModules(Manage, styles))\n","import Manage from './manage_cf'\nimport { connect } from 'react-redux'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { push } from 'react-router-redux'\nimport { glimpseRoute } from 'lib/route_utils'\nimport { createDNWTransaction } from 'client/redux/modules/dnw_transaction'\nimport { TOAST_NOTIFICATIONS } from 'shared/shared_consts'\nimport { get } from 'lodash'\nimport { getCampaignTotalValue } from 'lib/campaign'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n const canChipInAndCanDonate = campaign.can_chip_in && campaign.can_donate\n const canDonateGNC =\n Boolean(campaign.charity) &&\n canChipInAndCanDonate &&\n Boolean(campaign.is_owner)\n const canPledge =\n (campaign.is_owner && campaign.can_chip_in) || canChipInAndCanDonate\n\n return {\n canDonateGNC: canDonateGNC,\n canPledge: canPledge,\n charity: campaign.charity,\n currencyCode: campaign.currency,\n currentValue: getCampaignTotalValue({\n currentValue: campaign.current_value,\n pledge: campaign.pledge,\n }),\n goal: campaign.goal,\n hasChippedIn: campaign.current_value > 0,\n hasCurrencyBalance: campaign.has_currency_balance,\n hasMoneybox: campaign.moneybox_amount > 0,\n isOrganizerUpdatesEnabled: state.flags.isOrganizerUpdatesEnabled,\n activitiesCount: get(\n campaign,\n 'transactionSummary.total_number_of_transactions',\n 0\n ),\n showUpdateSuccess:\n state.toast_notification[TOAST_NOTIFICATIONS.EDIT_SUCCESS],\n showDeleteSuccess:\n state.toast_notification[TOAST_NOTIFICATIONS.DELETE_SUCCESS],\n paypalDomain: state.geo.paypalDomain,\n organizerUpdate: campaign.organizerUpdate,\n cdnHost: state.geo.cdnHost,\n campaign: campaign,\n }\n}\n\nconst mapDispatchToProps = (dispatch, { campaignId }) => {\n const transferCampaignUrl = `c/${campaignId}/edit/transfer`\n return {\n onTransfer() {\n dispatch(push({ pathname: glimpseRoute('pools', transferCampaignUrl) }))\n },\n onDonate(id) {\n dispatch(\n createDNWTransaction({\n campaignId: id,\n hasFullPageDonationRedirect: true,\n })\n )\n },\n }\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(Manage)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport { getI18n, formatCurrency } from 'intl'\nimport styles from './activity.less'\nimport {\n CompletedActivityList,\n PendingContributionsList,\n} from 'components/contributions_list/owner_activity_list'\nimport ActivityRow from 'components/contributions_list/rows/activity_row'\nimport { withRouter } from 'react-router'\nimport { connect } from 'react-redux'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\n\nconst i18n = getI18n('components/edit_glimpse/activity')\n\nclass Activity extends React.Component {\n static propTypes = {\n campaignId: PropTypes.string,\n moneyBoxAmount: PropTypes.number,\n moneyBoxCurrency: PropTypes.string,\n worldReady: PropTypes.Object,\n }\n\n render() {\n const balance = formatCurrency({\n value: this.props.moneyBoxAmount,\n currencyCode: this.props.moneyBoxCurrency,\n additionalConfig: {},\n worldReady: this.props.worldReady,\n })\n\n return (\n
\n
{i18n('activity.title')}
\n
{i18n('activity.balance', { balance })}
\n \n
\n (\n \n )}\n />\n
\n
\n (\n \n )}\n />\n
\n
\n )\n }\n}\n\nexport default injectWorldReady(\n connect((state, ownProps) => {\n const campaign = getCampaignSelector(state, ownProps)\n return {\n moneyBoxAmount: campaign.moneybox_amount,\n moneyBoxCurrency: campaign.currency,\n }\n })(withRouter(cssModules(Activity, styles)))\n)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Avatar, CaptionText } from '@paypalcorp/pp-react'\nimport cssModules from 'react-css-modules'\nimport styles from './charity_card.less'\nimport { validateImagePath } from 'shared/campaign_url'\n\nclass CharityCard extends React.Component {\n static propTypes = {\n charity: PropTypes.object,\n dataTestId: PropTypes.string,\n }\n static defaultProps = {\n dataTestId: 'charity-tile',\n }\n render() {\n const { charity, dataTestId } = this.props\n const logoURL = validateImagePath(charity.logo_url)\n return (\n
\n
\n {logoURL ? (\n \n ) : (\n \n )}\n {charity.name}\n
\n
\n )\n }\n}\n\nexport default cssModules(CharityCard, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport ReactCSSTransitionGroup from 'react-transition-group/CSSTransitionGroup'\nimport cssModules from 'react-css-modules'\nimport styles from './cross_fade.less'\n\nconst DURATION = 500\n\nclass CrossFadeTransition extends React.Component {\n static propTypes = {\n children: PropTypes.any,\n }\n\n render() {\n const transitionNames = {\n enter: styles['crossfade-enter'],\n enterActive: styles['crossfade-enter-active'],\n leave: styles['crossfade-leave'],\n leaveActive: styles['crossfade-leave-active'],\n }\n\n return (\n \n {this.props.children}\n \n )\n }\n}\n\nexport default cssModules(CrossFadeTransition, styles)\n","import EXIF from 'exif-js'\nimport { includes } from 'lodash'\nimport { ALLOWED_IMAGE_TYPES } from 'shared/shared_consts'\n\n//options are:\n//normalizeImageSize - decrease image size to fit in toWidth and toHeight\nexport function normalizeImage(\n dataUrl,\n toWidth,\n toHeight,\n { normalizeImageSize = false, mimeType = 'image/jpeg' } = {},\n callback\n) {\n const img = document.createElement('img')\n\n img.onload = () => {\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n let changed\n let resizeWidth = img.width\n let resizeHeight = img.height\n\n // PNGs weigh too much\n if (mimeType === 'image/png') {\n mimeType = 'image/jpeg'\n }\n\n if (normalizeImageSize) {\n if (resizeWidth > toWidth) {\n resizeHeight *= toWidth / resizeWidth\n resizeWidth = toWidth\n changed = true\n }\n\n if (resizeHeight > toHeight) {\n resizeWidth *= toHeight / resizeHeight\n resizeHeight = toHeight\n changed = true\n }\n\n if (changed) {\n resizeWidth = Math.floor(resizeWidth)\n resizeHeight = Math.floor(resizeHeight)\n canvas.width = resizeWidth\n canvas.height = resizeHeight\n }\n }\n\n EXIF.getData(img, () => {\n if (img.exifdata && img.exifdata.Orientation) {\n if (!changed) {\n canvas.width = resizeWidth = img.width\n canvas.height = resizeHeight = img.height\n }\n\n // in exif orientations 5,6,7,8 the image width and height flips, so we need to flip\n // the canvas dimensions as well\n if (img.exifdata.Orientation >= 5 && img.exifdata.Orientation <= 8) {\n ;[canvas.width, canvas.height] = [canvas.height, canvas.width]\n }\n\n switch (img.exifdata.Orientation) {\n case 2:\n ctx.transform(-1, 0, 0, 1, resizeWidth, 0)\n break\n case 3:\n ctx.transform(-1, 0, 0, -1, resizeWidth, resizeHeight)\n break\n case 4:\n ctx.transform(1, 0, 0, -1, 0, resizeHeight)\n break\n case 5:\n ctx.transform(0, 1, 1, 0, 0, 0)\n break\n case 6:\n ctx.transform(0, 1, -1, 0, resizeHeight, 0)\n break\n case 7:\n ctx.transform(0, -1, -1, 0, resizeHeight, resizeWidth)\n break\n case 8:\n ctx.transform(0, -1, 1, 0, 0, resizeWidth)\n break\n default:\n ctx.transform(1, 0, 0, 1, 0, 0)\n }\n ctx.drawImage(img, 0, 0, resizeWidth, resizeHeight)\n return callback(canvas.toDataURL(mimeType))\n } else if (changed) {\n ctx.drawImage(img, 0, 0, resizeWidth, resizeHeight)\n return callback(canvas.toDataURL(mimeType))\n }\n return callback(dataUrl)\n })\n }\n img.src = dataUrl\n}\n\nexport function isValidImageFileType(fileType = '') {\n return includes(ALLOWED_IMAGE_TYPES, fileType)\n}\n\nexport function base64ToHex(str) {\n const raw = atob(str)\n let result = ''\n for (let i = 0; i < raw.length; i++) {\n const hex = raw.charCodeAt(i).toString(16)\n result += hex.length === 2 ? hex : '0' + hex\n }\n return result.toUpperCase()\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport Dropzone from 'react-dropzone'\nimport _ from 'lodash'\n\nimport styles from './image_upload_field.less'\n\nimport {\n normalizeImage,\n isValidImageFileType,\n base64ToHex,\n} from '../../../lib/image_utils'\nimport {\n ALLOWED_IMAGE_TYPES,\n COVER_IMAGE_UPLOAD_ERRORS,\n UNALLOWED_ENCODED_IMAGE_TYPES,\n} from 'shared/shared_consts'\n\nclass ImageUploadField extends React.Component {\n constructor(props) {\n super(props)\n this.state = {\n dynamicClass: '',\n }\n this.dropZone = React.createRef()\n }\n\n static propTypes = {\n children: PropTypes.any,\n onChange: PropTypes.func,\n onError: PropTypes.func,\n restrictedTotalSize: PropTypes.number,\n onImageLoad: PropTypes.func,\n }\n\n preventDefault = e => {\n e.preventDefault()\n e.stopPropagation()\n }\n\n handleOpenFileDialog = () => {\n this.input.click()\n }\n\n openFileDialog = () => {\n this.dropZone.current.open()\n }\n\n handleFileSelect = fileSelectEvent => {\n this.readFiles(fileSelectEvent.target.files)\n }\n\n readFiles = files => {\n let fileReader = new FileReader()\n let file\n this.props.onImageLoad(true)\n fileReader.onload = onLoadEvent => {\n let url = onLoadEvent.target.result\n // Get file signature from magic bytes\n const magicNumber = url.split('base64,')[1].slice(0, 6)\n const fileSignature = base64ToHex(magicNumber)\n // Look for specific unallowed file types using file signature\n if (UNALLOWED_ENCODED_IMAGE_TYPES.includes(fileSignature)) {\n const error = { code: COVER_IMAGE_UPLOAD_ERRORS.FILE_INVALID_TYPE }\n this.props.onError(error)\n this.props.onImageLoad(false)\n this.setState(prevStage => {\n return { dynamicClass: 'not-supported' }\n })\n return null\n }\n let options = { mimeType: file.type }\n if (this.props.onChange) {\n if (this.props.restrictedTotalSize) {\n const restrictedSize = this.props.restrictedTotalSize\n options.normalizeImageSize = true\n normalizeImage(\n url,\n restrictedSize,\n restrictedSize,\n options,\n normalizedUrl => {\n this.props.onChange({\n url: normalizedUrl,\n name: file && file.name,\n })\n this.props.onImageLoad(false)\n }\n )\n } else {\n normalizeImage(url, null, null, options, normalizedUrl => {\n this.props.onChange({ url: normalizedUrl, name: file && file.name })\n this.props.onImageLoad(false)\n })\n }\n }\n this.props.onImageLoad(false)\n }\n file = files[0]\n\n if (file) {\n fileReader.readAsDataURL(file)\n }\n }\n\n handleDragEnter = e => {\n this.preventDefault(e)\n }\n\n handleDragLeave = e => {\n this.preventDefault(e)\n this.setState(prevStage => ({\n dynamicClass: '',\n }))\n }\n\n handleDragOver = e => {\n this.preventDefault(e)\n const data = e.dataTransfer\n const fileType = data.items[0].type\n this.setState(prevStage => {\n return isValidImageFileType(fileType)\n ? { dynamicClass: 'dragover' }\n : { dynamicClass: 'not-supported' }\n })\n }\n\n handleDragDrop = (files, evt) => {\n const error = _.get(evt, '0.errors.0')\n if (error) {\n return this.props.onError(error)\n }\n const fileType = files[0].type\n if (isValidImageFileType(fileType)) this.readFiles(files)\n }\n\n render() {\n return (\n \n \n {({ getRootProps, getInputProps }) => (\n
\n \n {this.props.children}\n \n \n
\n )}\n \n \n )\n }\n}\n\nexport default cssModules(ImageUploadField, styles, { allowMultiple: true })\n","import _ from 'lodash'\nimport { getCdnHostName } from '@paypalcorp/instance-location'\n\nconst CATEGORY_IMAGES_PATH = 'cause-gn-images/categories'\n\nconst defaultCover = `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/catergory-default-cover.svg`\n\nexport const poolCategory = [\n {\n key: 'A_BUSINESS',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/business-employment.png`,\n },\n {\n key: 'ANIMALS_AND_PETS',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/animal-wildlife.png`,\n },\n {\n key: 'ARTS_AND_ENTERTAINMENT',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/arts-culture.png`,\n },\n {\n key: 'BILLS',\n cover: defaultCover,\n },\n {\n key: 'CHARITY',\n cover: defaultCover,\n },\n {\n key: 'EDUCATION',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/education.png`,\n },\n {\n key: 'EMPLOYEES',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/business-employment.png`,\n },\n {\n key: 'FAMILY_CARE',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/family-support.png`,\n },\n {\n key: 'FOOD',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/housing-hunger.png`,\n },\n {\n key: 'GENERAL_SUPPORT',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/general-support.png`,\n },\n {\n key: 'MEDICAL_HELP',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/health-medicine.png`,\n },\n {\n key: 'MEMORIAL_EXPENSES',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/memorial-expenses.png`,\n },\n {\n key: 'MY_COMMUNITY',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/community.png`,\n },\n {\n key: 'DISASTER_RELIEF',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/disaster-relief.png`,\n },\n {\n key: 'THE_ENVIRONMENT',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/enviroment.png`,\n },\n {\n key: 'FAITH_AND_SPIRITUALITY',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/faith-spirituality.png`,\n },\n { key: 'GRANTS_AND_SCHOLARSHIPS', cover: defaultCover },\n {\n key: 'HOUSING_AND_RENT',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/housing-hunger.png`,\n },\n {\n key: 'SOCIAL_ACTIVISM',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/social-justice.png`,\n },\n {\n key: 'TECHNOLOGY',\n cover: defaultCover,\n },\n {\n key: 'TRAVEL_AND_TRANSPORTATION',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/international.png`,\n },\n {\n key: 'VETERANS',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/military-veterans.png`,\n },\n {\n key: 'VOLUNTEERING',\n cover: defaultCover,\n },\n {\n key: '1001',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/arts-culture.png`,\n },\n {\n key: '1002',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/education.png`,\n },\n {\n key: '1003',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/enviroment.png`,\n },\n {\n key: '1004',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/animal-wildlife.png`,\n },\n {\n key: '1005',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/health-medicine.png`,\n },\n {\n key: '1006',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/social-justice.png`,\n },\n {\n key: '1007',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/business-employment.png`,\n },\n {\n key: '1008',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/housing-hunger.png`,\n },\n {\n key: '1009',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/disaster-relief.png`,\n },\n {\n key: '1010',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/sports-recreation.png`,\n },\n {\n key: '1011',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/children-youth.png`,\n },\n {\n key: '1012',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/human-services.png`,\n },\n {\n key: '1013',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/international.png`,\n },\n {\n key: '1014',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/community.png`,\n },\n {\n key: '1015',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/philanthropy-grants.png`,\n },\n {\n key: '1016',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/science-research.png`,\n },\n {\n key: '1017',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/military-veterans.png`,\n },\n {\n key: '1018',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/faith-spirituality.png`,\n },\n {\n key: '1019',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/general-support.png`,\n },\n {\n key: '1020',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/family-support.png`,\n },\n {\n key: '1021',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/memorial-expenses.png`,\n },\n {\n key: '1022',\n cover: `https://${getCdnHostName()}/${CATEGORY_IMAGES_PATH}/crime-justice.png`,\n },\n]\n\nexport function getDefaultCover(value) {\n let mainCategory = []\n if (Array.isArray(value)) {\n mainCategory = value[0]\n } else {\n mainCategory = value\n }\n const selectedCategory = _.find(\n poolCategory,\n category => category.key === mainCategory\n )\n\n return selectedCategory && selectedCategory.cover\n}\n\nexport default { poolCategory, getDefaultCover }\n","import { DEAFULT_COVER_IMAGES } from '../shared_consts'\nimport { getDefaultCover } from './poolCategory'\n\nexport function isImageDefaultCover(image, category) {\n //do not scan or upload the image to mediaserve if image is from default image covers\n //those image urls are trusted images from paypal CDN\n return (\n DEAFULT_COVER_IMAGES.indexOf(image) > -1 ||\n image === getDefaultCover(category)\n )\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {\n Row,\n Col,\n ZoomInIcon,\n ZoomOutIcon,\n RefreshIcon,\n DeleteIcon,\n} from '@paypalcorp/pp-react'\nimport ReactCropper from 'react-cropper'\nimport cssModules from 'react-css-modules'\nimport styles from './cropper.less'\nimport 'cropperjs/dist/cropper.css'\nimport { isImageDefaultCover } from 'shared/helpers/image_helper'\n\nconst CLOCKWISE = 'clockwise'\nconst ROTATE_DEGREE = 90\nconst ADJUST_ZOOM_VALUE = 0.1\n\nfunction Cropper(props) {\n const { imgSrc } = props\n const [cropper, setCropper] = React.useState(null)\n const [image, setImage] = React.useState(imgSrc)\n const [zoom, setZoom] = React.useState(props.initialZoom)\n const [rotate, setRotate] = React.useState(props.initialRotate)\n\n React.useEffect(\n () => {\n setImage(image)\n },\n [image]\n )\n\n const updateData = updatedCropper => {\n const value = updatedCropper?.getCroppedCanvas?.()?.toDataURL?.()\n if (value && !isImageDefaultCover(image)) {\n props.updateImageData(value)\n }\n }\n\n const handleRotate = direction => {\n const value =\n direction === CLOCKWISE ? rotate + ROTATE_DEGREE : rotate - ROTATE_DEGREE\n setRotate(value)\n cropper.rotateTo(value)\n updateData(cropper)\n }\n\n const handleZoomIn = () => {\n const value = zoom <= 0.3 ? 0.4 : zoom + ADJUST_ZOOM_VALUE\n cropper.zoomTo(value)\n updateData(cropper)\n }\n\n const handleZoomOut = () => {\n const value = zoom <= 0.3 ? zoom : zoom - ADJUST_ZOOM_VALUE\n cropper.zoomTo(value)\n updateData(cropper)\n }\n\n return (\n
\n \n \n handleZoomIn()}\n tabIndex={0}\n onKeyUp={e => {\n if (e.key === 'Enter') {\n handleZoomIn()\n }\n }}\n />\n handleZoomOut()}\n tabIndex={0}\n onKeyUp={e => {\n if (e.key === 'Enter') {\n handleZoomOut()\n }\n }}\n />\n handleRotate('clockwise')}\n tabIndex={0}\n onKeyUp={e => {\n if (e.key === 'Enter') {\n handleRotate('clockwise')\n }\n }}\n />\n \n \n {\n if (e.key === 'Enter') {\n props.onImageRemove(e)\n }\n }}\n />\n \n \n \n {image && (\n {\n setCropper(instance)\n }}\n ready={instance => {\n updateData(instance.currentTarget.cropper)\n }}\n cropend={event => updateData(event.currentTarget.cropper)}\n zoom={event => {\n updateData(event.currentTarget.cropper)\n setZoom(event.detail.ratio)\n }}\n guides={true}\n dragMode=\"move\"\n {...props.cropperProps}\n />\n )}\n \n
\n )\n}\n\nCropper.propTypes = {\n initialZoom: PropTypes.number,\n initialRotate: PropTypes.number,\n mime: PropTypes.string,\n quality: PropTypes.number,\n file: PropTypes.object,\n cropperProps: PropTypes.object,\n croppedCanvasProps: PropTypes.object,\n onDiscard: PropTypes.func,\n onCompleted: PropTypes.func,\n imgSrc: PropTypes.string,\n updateImageData: PropTypes.func,\n onImageRemove: PropTypes.func,\n}\n\nCropper.defaultProps = {\n initialZoom: 0,\n initialRotate: 0,\n mime: null,\n quality: 70,\n cropperProps: {},\n croppedCanvasProps: {},\n onDiscard: () => {},\n onCompleted: () => {},\n}\n\nexport default cssModules(Cropper, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './crowdfunding_image_adjust.less'\nimport Cropper from 'components/common/cropper'\n\nclass CrowdFundingImageAdjust extends React.Component {\n static propTypes = {\n imageUrl: PropTypes.string.isRequired,\n onImageChange: PropTypes.func,\n onImageRemove: PropTypes.func,\n }\n\n render() {\n return (\n
\n
\n
\n this.props.onImageChange({ url })}\n />\n
\n
\n
\n )\n }\n}\n\nexport default cssModules(CrowdFundingImageAdjust, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './strip.less'\n\nimport {\n DEFAULT_GRADIENT_COLOR,\n SOLID_BACKGROUND_IMAGE,\n} from 'shared/shared_consts'\n\nclass Strip extends React.Component {\n static propTypes = {\n stripRef: PropTypes.func,\n isResponsive: PropTypes.bool,\n isFullscreen: PropTypes.bool,\n staticHeight: PropTypes.number,\n backgroundImage: PropTypes.string,\n categoryImage: PropTypes.string,\n backgroundPan: PropTypes.number,\n gradientColor: PropTypes.string,\n customStyle: PropTypes.object,\n customStyleInput: PropTypes.bool,\n }\n\n static defaultProps = {\n gradientColor: DEFAULT_GRADIENT_COLOR,\n }\n\n state = {\n bg_image: this.props.backgroundImage,\n }\n\n onImageError = () => {\n const { categoryImage } = this.props\n this.setState({\n bg_image: categoryImage ? categoryImage : SOLID_BACKGROUND_IMAGE,\n })\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.backgroundImage !== this.props.backgroundImage) {\n this.onUpdate(this.props.backgroundImage)\n }\n }\n\n onUpdate = backgroundImage => {\n this.setState({ bg_image: backgroundImage })\n }\n\n render() {\n const { bg_image } = this.state\n const { backgroundImage, customStyleInput } = this.props\n let styleNames = []\n const responsiveStyle =\n this.props.isFullscreen && this.props.isResponsive\n ? 'responsive-fullscreen'\n : 'responsive'\n styleNames.push(this.props.isResponsive ? responsiveStyle : 'static')\n let customStyle = this.props.customStyle || {}\n let initialStyle = {}\n let mergedStyle = {}\n if (this.props.backgroundImage) {\n initialStyle.backgroundImage = `url(${bg_image})`\n initialStyle.backgroundPosition = `50% ${this.props.backgroundPan}%`\n mergedStyle = { ...customStyle, ...initialStyle }\n styleNames.push('strip-with-image')\n if (customStyleInput) {\n styleNames.push('strip-image')\n }\n } else {\n customStyle = {\n height: this.props.staticHeight || '100%',\n }\n styleNames.push(\n `strip-${this.props.gradientColor || DEFAULT_GRADIENT_COLOR}`\n )\n styleNames.push('strip-image')\n }\n\n const stripComponent = backgroundImage ? (\n \n \n \n ) : (\n \n )\n return stripComponent\n }\n}\n\nexport default cssModules(Strip, styles, { allowMultiple: true })\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { normalizeImage } from '../../../lib/image_utils'\nimport { ALLOWED_IMAGE_TYPES } from 'shared/shared_consts'\n\nclass ImageFileField extends React.Component {\n static propTypes = {\n children: PropTypes.any,\n onChange: PropTypes.func,\n restrictedTotalSize: PropTypes.number,\n onImageLoad: PropTypes.func,\n }\n\n handleOpenFileDialog = () => {\n this.input.click()\n }\n\n handleFileSelect = fileSelectEvent => {\n const fileReader = new FileReader()\n let file\n this.props.onImageLoad(true)\n fileReader.onload = onLoadEvent => {\n const url = onLoadEvent.target.result\n const options = { mimeType: file.type }\n if (this.props.onChange) {\n if (this.props.restrictedTotalSize) {\n const restrictedSize = this.props.restrictedTotalSize\n options.normalizeImageSize = true\n normalizeImage(\n url,\n restrictedSize,\n restrictedSize,\n options,\n normalizedUrl => {\n this.props.onChange({\n url: normalizedUrl,\n name: file && file.name,\n })\n this.props.onImageLoad(false)\n }\n )\n } else {\n normalizeImage(url, null, null, options, normalizedUrl => {\n this.props.onChange({ url: normalizedUrl, name: file && file.name })\n this.props.onImageLoad(false)\n })\n }\n }\n this.props.onImageLoad(false)\n }\n file = fileSelectEvent.target.files[0]\n if (file) {\n fileReader.readAsDataURL(file)\n }\n }\n\n render() {\n return (\n
\n {this.props.children}\n {\n this.input = input\n }}\n onChange={this.handleFileSelect}\n />\n
\n )\n }\n}\n\nexport default ImageFileField\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './crowdfunding_image_preview.less'\nimport Hammer from 'react-hammerjs'\nimport Strip from 'components/strip'\nimport { CaptionText, Button } from '@paypalcorp/pp-react'\nimport ImageFileField from 'components/common/image_file_field'\nimport { inverseLerp } from 'shared/helpers/math_helpers'\nimport { COVER_IMAGE_MAX_TOTAL_SIZE } from 'shared/shared_consts'\nimport { Message } from '@paypalcorp/worldready-react'\n\nexport const DEFAULT_RELATIVE_PAN = 50\n\nclass CrowdFundingImagePreview extends React.Component {\n static propTypes = {\n imageUrl: PropTypes.string.isRequired,\n categoryImage: PropTypes.string,\n pan: PropTypes.number,\n onPanChange: PropTypes.func,\n onImageChange: PropTypes.func,\n onImageLoad: PropTypes.func,\n onImageRemove: PropTypes.func,\n }\n\n state = {\n pan: this.props.pan,\n imageUrl: this.props.imageUrl,\n categoryImage: this.props.categoryImage,\n }\n\n componentDidMount() {\n this.refreshImageSize()\n }\n\n refreshImageSize = () => {\n let image = new Image()\n image.addEventListener('load', () => {\n this.imageWidth = image.width\n this.imageHeight = image.height\n this.previewWidth = this.strip.offsetWidth\n this.previewHeight = this.strip.offsetHeight\n this.previewZoom = this.previewWidth / this.imageWidth\n })\n image.src = this.state.imageUrl\n }\n\n handleImageChangeIntent = e => {\n e.preventDefault()\n this.imageInput.handleOpenFileDialog()\n }\n\n handleImageChange = val => {\n this.setState(\n {\n pan: DEFAULT_RELATIVE_PAN,\n imageUrl: val.url,\n },\n () => {\n this.refreshImageSize()\n }\n )\n this.props.onImageChange(val)\n }\n\n handlePanStart = () => {\n this.panStart = this.lastAbsolutePan || 0\n }\n\n handlePan = evt => {\n const remainingHeight =\n (this.previewZoom * this.imageHeight - this.previewHeight) / 2\n let absolutePan = this.panStart + evt.deltaY\n absolutePan = Math.min(\n Math.max(-remainingHeight, absolutePan),\n remainingHeight\n )\n const relativePan = Math.round(\n inverseLerp(remainingHeight, -remainingHeight, absolutePan) * 100\n )\n this.lastAbsolutePan = absolutePan\n this.setState({ pan: relativePan })\n }\n\n handlePanEnd = () => {\n this.props.onPanChange(this.state.pan)\n }\n\n render() {\n // TODO Figure out a way to do this in scalable way.\n const customStyle = {\n height: '201px',\n }\n\n return (\n \n
\n \n \n \n \n \n
\n {\n this.strip = strip\n }}\n categoryImage={this.state.categoryImage}\n />\n
\n
\n \n \n \n \n \n \n
\n {\n this.imageInput = imageInput\n }}\n onImageLoad={this.props.onImageLoad}\n restrictedTotalSize={COVER_IMAGE_MAX_TOTAL_SIZE}\n onChange={this.handleImageChange}\n />\n
\n \n )\n }\n}\n\nexport default cssModules(CrowdFundingImagePreview, styles)\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport clsx from 'clsx'\nimport {\n Alert,\n BodyText,\n Button,\n CaptionText,\n HeadingText,\n PictureIcon,\n} from '@paypalcorp/pp-react'\nimport styles from './crowdfunding_cover_image.less'\nimport CrossFadeTransition from 'components/common/transitions/cross_fade'\nimport ImageUploadField from 'components/common/image_upload_field'\nimport { trackClick } from 'lib/fpti_analytics'\nimport CrowdFundingImageAdjust from '../crowdfunding_image_adjust'\nimport CrowdFundingImagePreview from 'components/crowdfunding_image_preview'\nimport {\n COVER_IMAGE_MAX_TOTAL_SIZE,\n COVER_IMAGE_UPLOAD_ERRORS,\n} from 'shared/shared_consts'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { useIntl } from 'intl'\n\nconst { FILE_INVALID_TYPE } = COVER_IMAGE_UPLOAD_ERRORS\n\nconst DEFAULT_PAN = 50\n\nfunction CrowdFundingCoverImage(props) {\n const { formatMessage } = useIntl()\n const child = React.createRef()\n const [isLoading, setLoading] = useState(false)\n const [uploadError, setUploadError] = useState(false)\n\n const updateImage = (eventName, url, fileName) => {\n const {\n fields: { backgroundImage, backgroundImageFilename, backgroundPan },\n } = props\n trackClick({\n clickName: eventName,\n data: {\n event_name: eventName,\n },\n })\n setUploadError(null)\n backgroundPan.onChange(DEFAULT_PAN)\n backgroundImage.onChange(url)\n backgroundImageFilename.onChange(fileName)\n }\n\n const handleImageRemove = e => {\n e.preventDefault()\n updateImage('dw_giving_edit_fundraiser_remove_photo_pressed')\n }\n\n const handleImageChange = val => {\n const {\n fields: { backgroundImageFilename },\n } = props\n\n updateImage(\n 'dw_giving_edit_fundraiser_change_photo_pressed',\n val.url,\n val.name || backgroundImageFilename.value\n )\n }\n\n const handleImageUploadError = imageLoadError => {\n setUploadError(imageLoadError)\n }\n\n const getErrorMessage = () => {\n const key = uploadError.code || FILE_INVALID_TYPE\n return formatMessage(\n `components.pages.crowdfunding.crowdfunding_cover_image.${key}`\n )\n }\n\n const {\n fields: { backgroundImage = {}, backgroundPan },\n showDoneButton,\n showTitle,\n showPreviewComponent,\n categoryImage,\n } = props\n\n return (\n
\n {showTitle && (\n \n \n \n )}\n \n {backgroundImage.value ? (\n
\n \n {/* To manage older version from cf edit */}\n {showPreviewComponent ? (\n \n ) : (\n \n )}\n
\n
\n ) : (\n
\n
\n \n
\n \n \n \n \n
\n \n \n \n \n {uploadError && (\n \n {getErrorMessage()}\n \n )}\n
\n
\n )}\n {showDoneButton && (\n \n \n \n )}\n \n \n )\n}\n\nCrowdFundingCoverImage.propTypes = {\n fields: PropTypes.object.isRequired,\n showDoneButton: PropTypes.bool,\n showTitle: PropTypes.bool,\n showPreviewComponent: PropTypes.bool,\n categoryImage: PropTypes.string,\n}\n\nexport default cssModules(CrowdFundingCoverImage, styles)\n","import clsx from 'clsx'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './collapsible_text.less'\nimport { Button } from '@paypalcorp/pp-react'\nimport React, { useState, useEffect } from 'react'\nimport ResizeObserver from 'resize-observer-polyfill'\nimport { COLLAPSIBLE_STATE } from 'shared/shared_consts'\n\n/**\n\nA collapsible text component that shows ellipsis after a certain number of lines and can be expanded and collapsed on click.\n\n@component\n\n@param {string} [props.header] - The text to display in the header of the component.\n@param {string} [props.footer] - The text to display in the footer of the component.\n@param {number} [props.maxLines=5] - The maximum number of lines to show before displaying ellipsis.\n@param {boolean} [props.showToggle=true] - Whether or not to show the toggle button to expand and collapse the text.\n@param {Object} [props.toggleContent={ open: \"\", closed: \"\" }] - The text to display on the toggle button when the text is open or closed.\n@param {string} props.toggleContent.open - The text to display on the toggle button when the text is open.\n@param {string} props.toggleContent.closed - The text to display on the toggle button when the text is closed.\n@param {Object} [props.fpti={ onLoad: ()=>{}, onClick: (isCollapsedState)=>{} }] - FPTI events to be called when the component loads or when the toggle is clicked.\n@param {string} props.fpti.onLoad - The FPTI function to be executed when the component loads for the first time.\n@param {string} props.fpti.onClick=(isCollapsedState)=>{} - The FPTI function to be executed when the btn toggles to open or close the collapsed text, receives the collapsed state\n@param {ReactNode} props.children - The text content to display in the component.\n@param {string} props.dataTestId - The ID to identify the wrapper for testing and to set the element's ID for observation.\n@return {JSX.Element}\n*/\n\nconst CollapsibleText = ({\n fpti,\n header,\n footer,\n maxLines,\n children,\n showToggle,\n dataTestId,\n toggleContent,\n}) => {\n const [textElement, setTextElement] = useState({})\n const [currentWidth, setCurrentWidth] = useState(0)\n const [isCollapsed, setIsCollapsed] = useState(true)\n const [hasEnoughText, setHasEnoughText] = useState(null)\n const toggleButtonText = isCollapsed\n ? toggleContent.closed\n : toggleContent.open\n const overrideFPTI = { ...defaultProps.fpti, ...fpti }\n const toggleCollapsedState = () => {\n const collapsedState = !isCollapsed\n overrideFPTI.onClick(\n collapsedState\n ? COLLAPSIBLE_STATE.COLLAPSED\n : COLLAPSIBLE_STATE.UNCOLLAPSED\n )\n setIsCollapsed(collapsedState)\n }\n\n const checkTextOverflow = () => {\n setHasEnoughText(textElement.scrollHeight > textElement.clientHeight)\n }\n\n // If the screen is resized, the description could need a button now\n const checkWrapperWidth = () => {\n setCurrentWidth(textElement.offsetWidth)\n }\n\n /**\n * For some reason Safari wasn't recognizing the initial dimensions, and read both:\n * scroll and client's height as same, even when they are not when there is a lot\n * of content, this is why we need this observer, this dependency is able to\n * properly recognize the difference between both and is able to set the values\n * that are later used with the useEffect hook\n */\n const ro = new ResizeObserver(entries => {\n for (const entry of entries) {\n const { scrollHeight, clientHeight } = entry.target\n setTextElement({ scrollHeight, clientHeight })\n }\n })\n\n /**\n * The triggers are required because of the following:\n * currentWidth = A not clamped div could get clamped after resizing the screen like in mWeb\n * isCollapsed = To make sure a previously clamped div that no longer requires the button, hides it\n * will no longer need it if it is bigger, like in screen resize\n * textElement = To check the overflow as soon as the element is painted or if the height changes\n */\n useEffect(\n () => {\n if (isCollapsed) {\n checkTextOverflow()\n }\n },\n [currentWidth, isCollapsed, textElement]\n )\n\n useEffect(() => {\n overrideFPTI.onLoad()\n ro.observe(document.getElementById(dataTestId))\n window.addEventListener('resize', checkWrapperWidth)\n return () => window.removeEventListener('resize', checkWrapperWidth)\n }, [])\n\n return (\n
\n {header &&
{header}
}\n\n \n {children}\n
\n\n {footer &&
{footer}
}\n\n {showToggle &&\n hasEnoughText && (\n
\n \n
\n )}\n \n )\n}\nconst defaultProps = {\n header: null,\n footer: null,\n showToggle: true,\n maxLines: 5,\n toggleContent: { open: '', closed: '' },\n fpti: { onLoad: () => {}, onClick: () => {} },\n}\n\nCollapsibleText.propTypes = {\n fpti: PropTypes.object,\n header: PropTypes.string,\n footer: PropTypes.string,\n showToggle: PropTypes.bool,\n maxLines: PropTypes.number,\n toggleContent: PropTypes.object,\n children: PropTypes.node.isRequired,\n dataTestId: PropTypes.string.isRequired,\n}\n\nCollapsibleText.defaultProps = defaultProps\n\nexport default cssModules(CollapsibleText, styles, { allowMultiple: true })\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Linkify from 'react-linkify'\nimport cssModules from 'react-css-modules'\nimport styles from './campaign_details.less'\nimport {\n Col,\n Row,\n Avatar,\n BodyText,\n CaptionText,\n HeadingText,\n} from '@paypalcorp/pp-react'\nimport CollapsibleText from 'components/common/collapsible_text/collapsible_text'\nimport { useIntl } from 'intl'\n\nconst CampaignDetails = props => {\n const { formatMessage } = useIntl()\n const {\n charity,\n details,\n initials,\n isCharity,\n ownerName,\n profileImage,\n tab_layout,\n } = props\n\n if (!details) {\n return null\n }\n let title\n if (isCharity) {\n title = formatMessage(\n 'components.crowdfunding_charity_detail_view.about_fundraiser'\n )\n } else {\n title = tab_layout ? '' : formatMessage('components.campaign_details.title')\n }\n\n return (\n \n {isCharity && (\n \n \n
\n \n \n
\n \n
\n )}\n
\n {title}}\n toggleContent={{\n open: formatMessage('components.expandable_paragraph.show_less'),\n closed: formatMessage('components.expandable_paragraph.read_more'),\n }}\n >\n \n {details}\n \n \n
\n
\n )\n}\n\nCampaignDetails.propTypes = {\n details: PropTypes.string,\n tab_layout: PropTypes.bool,\n profileImage: PropTypes.string,\n initials: PropTypes.string,\n isCharity: PropTypes.bool,\n charity: PropTypes.any,\n isPreview: PropTypes.bool,\n ownerName: PropTypes.string,\n}\n\nCampaignDetails.defaultProps = {\n tab_layout: false,\n}\n\nexport default cssModules(CampaignDetails, styles)\n","import CampaignDetails from './campaign_details'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { connect } from 'react-redux'\nimport { getInitials } from 'shared/helpers/name_helpers'\nimport { formatName } from 'intl'\nimport { NEW_CAMPAIGN_ID } from 'redux/modules/campaign'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n const ownerName =\n campaign.owner.business_name ||\n formatName(props.worldReady, {\n givenName: campaign.owner.first_name,\n surname: campaign.owner.last_name,\n })\n return {\n details: campaign.description,\n campaign: campaign,\n profileImage: campaign.owner.profile_photo,\n initials: getInitials(ownerName),\n ownerName: ownerName,\n isCharity: !!campaign.charity && campaign.charity.name,\n charity: campaign.charity,\n isPreview: campaign.id === NEW_CAMPAIGN_ID,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {}\n}\n\nexport default injectWorldReady(\n connect(\n mapStateToProps,\n mapDispatchToProps\n )(CampaignDetails)\n)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {\n SegmentedController,\n SegmentedControllerPanel,\n Link,\n BodyText,\n} from '@paypalcorp/pp-react'\nimport cssModules from 'react-css-modules'\nimport { Link as RouterLink } from 'react-router'\nimport { getI18n } from 'intl'\nimport _get from 'lodash/get'\nimport CampaignDetails from 'components/pages/campaign/campaign_details'\nimport styles from './crowdfunding_tab_layout.less'\nimport { CROWDFUNDING_TAB_PRESS } from 'shared/shared_consts'\nimport { glimpseRoute } from 'lib/route_utils'\nimport { Message } from '@paypalcorp/worldready-react'\nimport OrganizerUpdateDetail from 'components/glimpses/edit_glimpse/organizer_update_detail/organizer_update_detail'\nimport { trackFPTI, organizerUpdateState } from 'lib/fpti_utils'\nimport { trackImpression } from 'lib/fpti_analytics'\n\nconst i18n = getI18n('components/crowdfunding_tab_layout')\n\nclass CrowdFundingTabLayout extends React.Component {\n static propTypes = {\n charity: PropTypes.object,\n campaign: PropTypes.object,\n campaignId: PropTypes.string,\n organizerUpdate: PropTypes.object,\n contributions: PropTypes.array,\n contributionsCount: PropTypes.number,\n pledge: PropTypes.number,\n }\n\n state = {\n selectedTabIdx: 0,\n }\n\n tabHandler(e) {\n this.setState({ selectedTabIdx: e.currentTarget.dataset.tabIndex })\n const CLICK_NAME =\n e.currentTarget.id === CROWDFUNDING_TAB_PRESS.ABOUT_TAB\n ? 'dw_giving_detail_about_tab_pressed'\n : 'dw_giving_detail_updates_tab_pressed'\n const getorganizerUpdate = _get(this.props, 'organizerUpdate') || {}\n const updateState = organizerUpdateState(getorganizerUpdate)\n trackFPTI(this.props.campaign, 'click', CLICK_NAME, '', '', '', updateState)\n }\n\n updatesComponent = (\n organizerUpdateItem,\n campaignId,\n campaign,\n updateState,\n postUpdateUrl\n ) => {\n if (organizerUpdateItem.length > 0) {\n return (\n
\n \n {organizerUpdateItem.length > 1 && (\n
\n {\n trackFPTI(\n campaign,\n 'click',\n 'dw_giving_detail_updates_tab_show_previous_pressed',\n '',\n '',\n '',\n updateState\n )\n }}\n >\n \n \n
\n )}\n
\n )\n } else {\n return (\n
\n \n \n \n
\n )\n }\n }\n\n render() {\n const { campaignId, organizerUpdate, campaign } = this.props\n const postUpdateUrl = `c/${campaignId}/postupdate`\n const organizerUpdateItem = _get(organizerUpdate, 'items', [])\n const updateState = organizerUpdateState(organizerUpdate)\n trackImpression({\n event_name: 'dw_giving_detail_about_tab_shown',\n })\n trackImpression({\n event_name: 'dw_giving_detail_updates_tab_shown',\n updateState,\n })\n return (\n \n ),\n id: 'contributors-tab',\n panelId: 'contributors-tab',\n },\n ]}\n onClick={this.tabHandler.bind(this)}\n >\n \n \n \n \n {this.updatesComponent(\n organizerUpdateItem,\n campaignId,\n campaign,\n updateState,\n postUpdateUrl\n )}\n \n \n )\n }\n}\nexport default cssModules(CrowdFundingTabLayout, styles, {\n allowMultiple: true,\n})\n","import TabLayout from './crowdfunding_tab_layout'\nimport { connect } from 'react-redux'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { publicContributionsListSelector } from 'redux/selectors/contributions'\nimport { get } from 'lodash'\n\nconst mapStateToProps = (state, ownProps) => {\n const campaign = getCampaignSelector(state, ownProps)\n return {\n charity: campaign.charity,\n organizerUpdate: campaign.organizerUpdate,\n cdnHost: state.geo.cdnHost,\n contributions: publicContributionsListSelector(state, ownProps),\n contributionsCount: get(\n campaign,\n 'transactionSummary.total_number_of_contributions'\n ),\n pledge: campaign.pledge,\n ...ownProps,\n campaign,\n }\n}\n\nexport default connect(mapStateToProps)(TabLayout)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport {\n detailDaysFromToday,\n formatTime,\n} from 'shared/helpers/datetime_helpers'\nimport { HeadingText } from '@paypalcorp/pp-react'\nimport { Message } from '@paypalcorp/worldready-react'\n\nimport styles from './count_down.less'\n\nclass CountDown extends React.Component {\n static propTypes = {\n datetime: PropTypes.string,\n showSeconds: PropTypes.boolean,\n format: PropTypes.Array,\n }\n\n intervalId = null\n defaultFormat = ['days']\n updateSeconds = false\n separator = ':'\n\n constructor(props) {\n super(props)\n const detailDaysFromTodayState = detailDaysFromToday(props.datetime)\n\n this.state = {\n ...detailDaysFromTodayState,\n isShowingDetail: detailDaysFromTodayState.days < 2,\n }\n // only update seconds if we have default format or in custom format\n this.updateSeconds =\n !this.props.format || this.props.format.indexOf('seconds') > -1\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.datetime !== this.props.datetime) {\n this.updateCountDown()\n }\n }\n\n updateCountDown() {\n const detailDaysFromTodayState = detailDaysFromToday(this.props.datetime)\n this.setState(() => {\n return {\n ...detailDaysFromTodayState,\n isShowingDetail: detailDaysFromTodayState.days < 2,\n }\n })\n }\n\n // function to start the countdown and update the state every minute\n startCountDown(interval = 1) {\n this.updateCountDown()\n this.intervalId = setInterval(() => this.updateCountDown(), interval * 1000)\n }\n\n getTimeFormat(cdItem) {\n let time = this.state[cdItem] || 0\n if (cdItem === 'hours') {\n time += 24 * this.state.days\n }\n const timeFormat = `${time}${formatTime[cdItem]}`\n return time < 10 ? `0${timeFormat}` : `${timeFormat}`\n }\n\n showRemainingInDays() {\n return this.defaultFormat.map((cdItem, index) => {\n return (\n
\n
\n \n {`${this.state[cdItem]} `}\n \n \n
\n
\n )\n })\n }\n\n showRemainingInDetail() {\n return (this.props.format || this.defaultFormat).map((cdItem, index) => {\n return (\n
\n {index > 0 ? (\n \n {this.separator}\n \n ) : null}\n\n
\n \n {`${this.getTimeFormat(cdItem)}`}\n \n
\n
\n )\n })\n }\n\n renderComponents() {\n return this.state.isShowingDetail\n ? this.showRemainingInDetail()\n : this.showRemainingInDays()\n }\n\n clearCountDowns() {\n if (this.intervalId) {\n clearInterval(this.intervalId)\n }\n }\n\n componentWillMount() {\n // initiate the countdown to run every min after roll over seconds.\n if (this.updateSeconds) {\n return this.startCountDown()\n }\n\n setTimeout(() => this.startCountDown(60), this.state.seconds * 1000)\n }\n\n componentWillUnmount() {\n this.clearCountDowns()\n }\n\n render() {\n return (\n \n {this.renderComponents()}\n \n )\n }\n}\n\nexport default cssModules(CountDown, styles, {\n allowMultiple: true,\n})\n","import { baseUrl, campaignUrl as generalCampaignUrl } from 'shared/campaign_url'\nimport { POOLS_CAMPAIGN_TYPES } from 'shared/shared_consts.js'\n\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\n\nexport function hubPageUrl() {\n return baseUrl(location.hostname, GLOBAL_CONSTS.REQUEST_URI)\n}\n\n// returns a url to campaign page with all the arguments filled based on the client's hostname\nexport function campaignUrl(campaignId, meDomain = false) {\n // don't show .me domain in staging (no support for this)\n const shouldHaveMeDomain =\n meDomain &&\n location.hostname.indexOf('.qa.paypal.com') === -1 &&\n location.hostname.indexOf('.qa.paypal.cn') === -1 &&\n location.hostname.indexOf('.stage.paypal.cn') === -1 &&\n location.hostname.indexOf('.stage.paypal.com') === -1\n return generalCampaignUrl(\n campaignId,\n location.hostname,\n GLOBAL_CONSTS.REQUEST_URI,\n shouldHaveMeDomain\n )\n}\n\nexport function campaignUrlWithMeDomain(campaignId, campaignType) {\n return campaignUrl(campaignId, isMeDomainAllowed(campaignType))\n}\n\n// a beautified url helper that drops the https protocol (for display purposes)\nexport function campaignUrlForDisplay(campaignId, campaignType) {\n const url = campaignUrl(campaignId, isMeDomainAllowed(campaignType))\n return url.replace('https://', '')\n}\n\nfunction isMeDomainAllowed(campaignType) {\n return campaignType === CROWD_FUNDING ? false : true\n}\n","import { createSelector } from 'reselect'\n\nimport { fromVeniceSelector, canShareVeniceSelector } from './venice'\n\nexport const canShareSelector = createSelector(\n [fromVeniceSelector(), canShareVeniceSelector],\n (fromVenice, canShareVenice) => !fromVenice || canShareVenice\n)\n","import { getI18n } from 'intl'\nimport {\n campaignUrlForDisplay,\n campaignUrlWithMeDomain,\n} from 'lib/campaign_url'\nimport { canShareSelector } from 'redux/selectors/share'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\n\nconst i18nBase = getI18n('components/pages/crowdfunding/pool_share')\n\nexport function getPopupOptionsString(popupWidth, popupHeight) {\n const left = (document.body.clientWidth - popupWidth) * 0.5\n const top = (document.body.clientHeight - popupHeight) * 0.5\n return `width=${popupWidth},height=${popupHeight},top=${top},left=${left}`\n}\n\nexport function getShareProps(state, ownProps) {\n const isGNCEnabled = state.flags.is_gnc_enabled\n const countryCode = state.country.country_code\n const canShare = canShareSelector(state)\n const campaign = getCampaignSelector(state, ownProps)\n const shareUrl = campaignUrlWithMeDomain(campaign.id, campaign.campaign_type)\n const campaignTitle = campaign.title\n const charityName = campaign.charity && campaign.charity.name\n const isGncCampaign = campaign.charity && campaign.charity.name\n const textPlaceholder = i18nBase('text_placeholder')\n\n const emailSubjectTextGN = i18nBase('email_subject_gn', {\n campaignTitle: campaign.title,\n })\n\n const emailSubjectTextGNC = i18nBase(`email_subject_gnc_${countryCode}`, {\n campaignTitle,\n charityName,\n })\n\n const emailBodyTextGN = `${i18nBase('email_body_section_1_gn', {\n shareUrl,\n campaignTitle,\n })}\n\t`\n\n const emailBodyTextGNC = `${i18nBase('email_body_heading')}\\n\\n${i18nBase(\n `email_body_section_1_gnc_${countryCode}`,\n {\n charityName,\n }\n )}\\n\\n${i18nBase(`email_body_section_2_gnc_${countryCode}`, {\n shareUrl: shareUrl,\n })}\\n\\n${i18nBase('email_body_section_3_gn')}\n `\n const shareMsgWhatsappGNC = `${i18nBase(\n `share_whatsapp_gnc_1_${countryCode}`,\n {\n charityName: charityName,\n shareUrl: shareUrl,\n }\n )}\\n\\n${i18nBase(`share_whatsapp_gnc_2_${countryCode}`, {\n shareUrl: shareUrl,\n })}\\n\\n${i18nBase('email_body_section_3_gn')}`\n\n const shareMsgFB =\n isGNCEnabled && isGncCampaign\n ? i18nBase(`share_fb_gnc_${countryCode}`, {\n charityName: charityName,\n shareUrl: shareUrl,\n })\n : i18nBase('share_message_gn', {\n fundraiser_name: campaignTitle,\n shareUrl: '',\n })\n\n const shareMsgTwitter =\n isGNCEnabled && isGncCampaign\n ? i18nBase(`share_twitter_gnc_${countryCode}`, {\n charityName: charityName,\n shareUrl: shareUrl,\n })\n : i18nBase('share_message_gn', {\n fundraiser_name: campaignTitle,\n shareUrl: shareUrl,\n })\n\n const shareMsgWhatsapp =\n isGNCEnabled && isGncCampaign ? shareMsgWhatsappGNC : emailBodyTextGN\n const hashtags =\n isGNCEnabled && isGncCampaign\n ? `#GenerosityNetwork\\n#${charityName.replace(/\\s/g, '')}`\n : `#GenerosityNetwork\\n#PeopleHelpingPeople`\n\n const emailSubject =\n isGNCEnabled && isGncCampaign ? emailSubjectTextGNC : emailSubjectTextGN\n const emailBody =\n isGNCEnabled && isGncCampaign ? emailBodyTextGNC : emailBodyTextGN\n\n let props = {\n shareable: true,\n shareUrl: shareUrl,\n displayUrl: campaignUrlForDisplay(campaign.id, campaign.campaign_type),\n appId: state.social.app_id,\n emailBody,\n emailSubject,\n textPlaceholder,\n isMobile: state.device_info.isMobile,\n shareMsgFB,\n shareMsgTwitter: `${shareMsgTwitter}\\n${hashtags}`,\n shareMsgWhatsapp,\n charity: campaign.charity,\n }\n\n if (!canShare) {\n props.showFacebook = false\n props.showMessenger = false\n props.showTwitter = false\n props.showWhatsApp = false\n props.showEmail = false\n props.showSms = false\n }\n\n return props\n}\n","import React from 'react'\nimport Clipboard from 'clipboard'\nimport PropTypes from 'prop-types'\nimport { LinkIcon } from '@paypalcorp/pp-react'\n\nexport default class ClipboardSharingButton extends React.Component {\n static defaultProps = { enabled: true }\n\n state = {\n isCopied: false,\n }\n\n handleCopySuccess = () => {\n this.props.onShowToast()\n }\n\n componentDidMount() {\n if (this.props.enabled) {\n const copyText = this.state.copyText\n const copyBoxTextRef = this.copyBoxText\n this.clipboard = new Clipboard(this.copyLink, {\n text() {\n return copyText\n },\n target() {\n return copyBoxTextRef\n },\n })\n this.clipboard.on('success', this.handleCopySuccess)\n }\n }\n\n componentWillUnmount() {\n if (this.clipboard) {\n this.clipboard.destroy()\n }\n }\n\n render() {\n return (\n {\n this.copyLink = copyLink\n }}\n onClick={e => this.props.handleClick('copy', this.props, e)}\n onKeyUp={e => this.props.handleKeyUp('copy', this.props, e)}\n tabIndex={0}\n className={this.props.className}\n >\n \n {this.props.showSubtext && (\n
{this.props.i18n2('clipboard')}
\n )}\n {!this.state.isCopied && (\n {\n this.copyBoxText = copyBoxText\n }}\n value={this.props.shareUrl}\n data-nemo=\"share\"\n readOnly={true}\n name=\"share\"\n style={{\n position: 'absolute',\n left: '-999em',\n }}\n aria-hidden={true}\n />\n )}\n \n )\n }\n}\n\nClipboardSharingButton.propTypes = {\n showFacebook: PropTypes.bool,\n showMessenger: PropTypes.bool,\n showTwitter: PropTypes.bool,\n showWhatsApp: PropTypes.bool,\n showEmail: PropTypes.bool,\n showSms: PropTypes.bool,\n showClipboard: PropTypes.bool,\n showSubtext: PropTypes.bool,\n shareText: PropTypes.string,\n className: PropTypes.string,\n emailSubject: PropTypes.string,\n emailBody: PropTypes.string,\n shareMsgFB: PropTypes.string,\n shareMsgTwitter: PropTypes.string,\n shareMsgWhatsapp: PropTypes.string,\n shareUrl: PropTypes.string,\n enabled: PropTypes.bool,\n handleClick: PropTypes.func,\n handleKeyUp: PropTypes.func,\n i18n2: PropTypes.func,\n onShowToast: PropTypes.func,\n}\n","import ClipboardSharing from './clipboard_sharing'\nimport { connect } from 'react-redux'\nimport { show } from 'redux/modules/toast_notification'\nimport { TOAST_NOTIFICATIONS } from 'shared/shared_consts'\n\nconst mapStateToProps = (state, ownProps) => {\n return { ...ownProps }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {\n onShowToast() {\n dispatch(show(TOAST_NOTIFICATIONS.COPY_SUCCESS))\n },\n }\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(ClipboardSharing)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { getI18n } from 'intl'\nimport {\n PhoneIcon,\n ShareWhatsappIcon,\n EmailIcon,\n ShareFacebookIcon,\n ShareMessengerIcon,\n ShareTwitterIcon,\n CaptionText,\n} from '@paypalcorp/pp-react'\nimport { getPopupOptionsString } from 'lib/share'\nimport {\n shareURLByMessenger,\n shareByTwitter,\n shareByEmail,\n shareBySMS,\n} from 'consumerweb-sharing'\nimport { KEY_PRESS_EVENTS } from 'shared/shared_consts'\nimport { trackClick } from 'lib/fpti_analytics'\nimport ClipboardSharingButton from './clipboard_sharing_container'\nimport _get from 'lodash/get'\nimport styles from './share_buttons.less'\n\nconst { ENTER_KEY } = KEY_PRESS_EVENTS\n\nconst i18n = getI18n('components/share_buttons')\nconst i18nText = getI18n('components/share_campaign_textarea')\n\nconst propTypes = {\n showFacebook: PropTypes.bool,\n showMessenger: PropTypes.bool,\n showTwitter: PropTypes.bool,\n showWhatsApp: PropTypes.bool,\n showEmail: PropTypes.bool,\n showSms: PropTypes.bool,\n showClipboard: PropTypes.bool,\n showSubtext: PropTypes.bool,\n shareText: PropTypes.string,\n className: PropTypes.string,\n emailSubject: PropTypes.string,\n emailBody: PropTypes.string,\n shareMsgFB: PropTypes.string,\n shareMsgTwitter: PropTypes.string,\n shareMsgWhatsapp: PropTypes.string,\n shareUrl: PropTypes.string,\n inline: PropTypes.bool,\n eventName: PropTypes.string,\n}\n\nconst handleIconClick = (socialNetwork, props, event) => {\n event.preventDefault()\n const shareText = props.shareText\n const fbUrl = `https://www.facebook.com/dialog/share?app_id=${\n props.appId\n }&display=popup"e=${props.shareMsgFB}&href=${encodeURI(props.shareUrl)}`\n const whatsappText = shareText || props.shareMsgWhatsapp\n const whatsappUrl =\n `https://${props.isMobile ? 'api' : 'web'}.whatsapp.com/send?text=` +\n encodeURIComponent(whatsappText)\n let clickName = 'social_media'\n const featureType = _get(props, 'featureType')\n const fundraiser_expired = _get(props, 'event_status')\n switch (socialNetwork) {\n case 'facebook':\n window.open(fbUrl, 'facebook', getPopupOptionsString(640, 480))\n break\n\n case 'messenger':\n shareURLByMessenger(shareText, props.appId, window.location.href)\n break\n\n case 'twitter':\n shareByTwitter(shareText || props.shareMsgTwitter, 640, 480)\n break\n\n case 'whats-app':\n window.open(whatsappUrl)\n break\n\n case 'email':\n shareByEmail(props.emailSubject, shareText || props.emailBody)\n break\n\n case 'sms':\n shareBySMS(shareText)\n break\n\n case 'copy':\n clickName = 'copy'\n break\n\n default:\n break\n }\n trackClick({\n clickName,\n data: {\n event_name:\n featureType === 'share_update'\n ? 'dw_giving_share_update_channel_pressed'\n : props.eventName,\n link_name: socialNetwork,\n opt_sel: socialNetwork,\n fundraiser_expired: fundraiser_expired === 'expired' ? 'yes' : 'no',\n },\n })\n}\n\nconst handleKeyUp = (socialNetwork, props, event) => {\n if (event.key === ENTER_KEY) {\n handleIconClick(socialNetwork, props, event)\n }\n}\n\nconst displayComponent = display => {\n if (!display) {\n return\n }\n}\n\nconst SubText = prop => {\n const Component = prop.inline ? (\n
{i18n(prop.contentkey)}
\n ) : (\n \n {i18nText(prop.contentkey)}\n \n )\n return Component\n}\n\nexport const EmailSharing = props => {\n displayComponent(props.showEmail)\n\n return (\n handleIconClick('email', props, e)}\n onKeyUp={e => handleKeyUp('email', props, e)}\n tabIndex={0}\n data-testid=\"email-sharing\"\n >\n \n {props.showSubtext && (\n \n )}\n \n )\n}\n\nexport const TwitterSharing = props => {\n displayComponent(props.showTwitter)\n\n return (\n handleIconClick('twitter', props, e)}\n onKeyUp={e => handleKeyUp('twitter', props, e)}\n tabIndex={0}\n data-testid=\"twitter-sharing\"\n >\n \n {props.showSubtext && (\n \n )}\n \n )\n}\n\nexport const FacebookSharing = props => {\n displayComponent(props.showFacebook)\n\n return (\n handleIconClick('facebook', props, e)}\n onKeyUp={e => handleKeyUp('facebook', props, e)}\n tabIndex={0}\n data-testid=\"facebook-sharing\"\n >\n \n {props.showSubtext && (\n \n )}\n \n )\n}\n\nexport const MessengerSharing = props => {\n displayComponent(props.showMessenger)\n\n return (\n handleIconClick('messenger', props, e)}\n onKeyUp={e => handleKeyUp('messenger', props, e)}\n tabIndex={0}\n >\n \n {props.showSubtext && (\n \n )}\n \n )\n}\n\nexport const WhatsAppSharing = props => {\n displayComponent(props.showWhatsApp)\n\n return (\n handleIconClick('whats-app', props, e)}\n onKeyUp={e => handleKeyUp('whats-app', props, e)}\n tabIndex={0}\n data-testid=\"whatsapp-sharing\"\n >\n \n {props.showSubtext && (\n \n )}\n \n )\n}\n\nexport const SmsSharing = props => {\n displayComponent(props.showSms)\n\n return (\n handleIconClick('sms', props, e)}\n onKeyUp={e => handleKeyUp('sms', props, e)}\n tabIndex={0}\n data-testid=\"sms-sharing\"\n >\n \n {props.showSubtext && (\n \n )}\n \n )\n}\n\nexport const ClipboardSharing = props => {\n return (\n \n )\n}\n\nSmsSharing.propTypes = propTypes\nEmailSharing.propTypes = propTypes\nTwitterSharing.propTypes = propTypes\nWhatsAppSharing.propTypes = propTypes\nFacebookSharing.propTypes = propTypes\nMessengerSharing.propTypes = propTypes\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport 'node_modules/@paypalcorp/pp-vx/dist/components/icons/icons.css'\nimport { Button, Sheet } from '@paypalcorp/pp-react'\nimport {\n EmailSharing,\n FacebookSharing,\n MessengerSharing,\n SmsSharing,\n TwitterSharing,\n WhatsAppSharing,\n ClipboardSharing,\n} from 'components/common/share_buttons'\nimport ToastContainer from 'components/common/toast_container'\nimport { TOAST_NOTIFICATIONS } from 'shared/shared_consts'\nimport * as styles from './share_button.modules.less'\nimport { trackFPTI } from 'lib/fpti_utils'\n\nconst ShareButton = props => {\n const [isSheetOpen, setIsSheetOpen] = useState(false)\n const closeSheet = () => {\n if (props.isCopySuccess) {\n props.onHideToast()\n }\n setIsSheetOpen(false)\n }\n const handleOnClick = () => {\n trackFPTI(props.campaign, 'click', 'dw_giving_detail_share_pressed')\n setIsSheetOpen(true)\n }\n\n const generateOptions = propsToPass => {\n const {\n options = [\n 'email',\n 'sms',\n 'facebook',\n 'messenger',\n 'twitter',\n 'whatsapp',\n 'clipboard',\n ],\n } = propsToPass\n return options.map(option => {\n switch (option) {\n case 'email':\n return (\n
  • \n \n
  • \n )\n case 'sms':\n return (\n
  • \n \n
  • \n )\n case 'facebook':\n return (\n
  • \n \n
  • \n )\n case 'messenger':\n return (\n
  • \n \n
  • \n )\n case 'twitter':\n return (\n
  • \n \n
  • \n )\n case 'whatsapp':\n return (\n
  • \n \n
  • \n )\n case 'clipboard':\n return (\n
  • \n \n
  • \n )\n default:\n return null\n }\n })\n }\n\n const { secondary = true, text, i18n } = props\n\n return (\n <>\n {props.isCopySuccess && (\n \n )}\n \n \n
      {generateOptions(props)}
    \n \n \n )\n}\n\nShareButton.propTypes = {\n text: PropTypes.string,\n options: PropTypes.array,\n secondary: PropTypes.bool,\n shareSheetTitle: PropTypes.element,\n shareUrl: PropTypes.string.isRequired,\n displayUrl: PropTypes.string.isRequired,\n shareable: PropTypes.bool.isRequired,\n appId: PropTypes.number.isRequired,\n onClickOverride: PropTypes.func,\n emailBody: PropTypes.string,\n emailSubject: PropTypes.string,\n isMobile: PropTypes.bool,\n charity: PropTypes.object,\n i18n: PropTypes.func,\n isCopySuccess: PropTypes.bool,\n onHideToast: PropTypes.func,\n campaign: PropTypes.object,\n}\n\nexport default ShareButton\n","import { formatMessage, formatDate, formatCurrency } from 'intl'\n\nexport const generateShareMessage = (\n isSmallGroup,\n campaign,\n urlWithMeDomain,\n worldReady\n) => {\n const baseMessage = {\n expiryDate: formatDate(worldReady, campaign.end_date, {\n style: 'date-short',\n }),\n shareUrl: urlWithMeDomain,\n campaignTitle: campaign.title,\n }\n\n let message = 'components.pages.crowdfunding.pool_share.share_message'\n\n if (isSmallGroup) {\n message = campaign.goal\n ? 'components.pages.crowdfunding.pool_share.share_message_small_with_amount'\n : 'components.pages.crowdfunding.pool_share.share_message_small_no_amount'\n }\n\n return formatMessage(worldReady, message, {\n goalAmount: formatCurrency({\n value: campaign.goal,\n currencyCode: campaign.currency,\n additionalConfig: {},\n worldReady,\n }),\n ...baseMessage,\n })\n}\n","import ShareButton from './share_button'\nimport { connect } from 'react-redux'\nimport { getShareProps } from 'lib/share'\nimport { hide } from 'redux/modules/toast_notification'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { TOAST_NOTIFICATIONS, POOL_TYPE } from 'shared/shared_consts'\nimport { campaignUrlWithMeDomain } from 'lib/campaign_url'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\nimport { generateShareMessage } from '../../../lib/generate_share_message'\n\nconst mapStateToProps = (state, ownProps) => {\n const campaign = getCampaignSelector(state, ownProps)\n const isCopySuccess =\n state.toast_notification[TOAST_NOTIFICATIONS.COPY_SUCCESS]\n const shareProps = getShareProps(state, ownProps)\n const urlWithMeDomain = campaignUrlWithMeDomain(\n campaign.id,\n campaign.campaign_type\n )\n\n const { type, is_owner } = campaign\n const isSmallGroup = type === POOL_TYPE.PRIVATE\n\n const shareMessage = generateShareMessage(\n isSmallGroup,\n campaign,\n urlWithMeDomain,\n ownProps.worldReady\n )\n\n return {\n campaign,\n isCopySuccess,\n shareText: is_owner ? shareMessage : '',\n ...shareProps,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {\n onHideToast() {\n dispatch(hide(TOAST_NOTIFICATIONS.COPY_SUCCESS))\n },\n }\n}\n\nexport default injectWorldReady(\n connect(\n mapStateToProps,\n mapDispatchToProps\n )(ShareButton)\n)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './donate_button.less'\nimport { Button } from '@paypalcorp/pp-react'\nimport { trackClick } from '../../../../lib/fpti_analytics'\nimport { INSTRUMENT_EVENTS, INSTRUMENT_TAGS } from 'shared/shared_consts'\nimport { Message } from '@paypalcorp/worldready-react'\n\nclass DonateButton extends React.Component {\n static propTypes = {\n campaign: PropTypes.object,\n canChipIn: PropTypes.bool,\n canDonate: PropTypes.bool,\n createDNWTransaction: PropTypes.func,\n onClick: PropTypes.func,\n preview: PropTypes.bool,\n }\n\n handleClick = e => {\n const { campaign } = this.props\n trackClick({\n clickName: INSTRUMENT_TAGS.DONATE,\n data: {\n event_name: INSTRUMENT_EVENTS.DW_GIVING_DETAIL_DONATE_PRESSED,\n },\n })\n this.props.createDNWTransaction({ campaignId: campaign.id })\n }\n\n render() {\n if (this.props.preview) {\n return (\n \n \n \n )\n } else if (!this.props.canDonate || !this.props.canChipIn) {\n return null\n } else {\n return (\n <>\n \n \n \n
    \n \n )\n }\n }\n}\n\nexport default cssModules(DonateButton, styles, { allowMultiple: true })\n","import DonateButton from './donate_button'\nimport { connect } from 'react-redux'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { createDNWTransaction } from 'client/redux/modules/dnw_transaction'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n return {\n campaign,\n canChipIn: campaign.can_chip_in,\n canDonate: campaign.can_donate,\n endDate: campaign.end_date,\n preview: campaign.preview || props.isPreview,\n }\n}\n\nconst mapDispatchToProps = {\n createDNWTransaction,\n}\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(DonateButton)\n","import React from 'react'\n\nclass FirstChild extends React.Component {\n render() {\n const children = React.Children.toArray(this.props.children) // eslint-disable-line react/prop-types\n return children[0] || null\n }\n}\n\nexport default FirstChild\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Clipboard from 'clipboard'\nimport ReactCSSTransitionGroup from 'react-transition-group/CSSTransitionGroup'\nimport cssModules from 'react-css-modules'\nimport styles from './copy_box.less'\nimport FirstChild from 'components/common/first_child'\nimport { trackClick } from 'lib/fpti_analytics'\nimport { Message } from '@paypalcorp/worldready-react'\n\nconst TOOLTIP_ANIMATION_DURATION = 250\nconst TOOLTIP_SHOW_DELAY = 750\n\nclass CopyBox extends React.Component {\n static propTypes = {\n text: PropTypes.string.isRequired, // Text to show the user\n copyText: PropTypes.string, // Text to copy to clipboard when user clicks 'copy'. defaults to props.text.\n styles: PropTypes.object,\n enabled: PropTypes.bool,\n charity: PropTypes.object,\n eventName: PropTypes.string,\n }\n\n static defaultProps = { enabled: true }\n\n state = {\n copyText: this.props.copyText || this.props.text,\n showTooltip: false,\n }\n\n componentDidMount() {\n if (this.props.enabled) {\n const copyText = this.state.copyText\n const copyBoxTextRef = this.copyBoxText\n this.clipboard = new Clipboard(this.copyLink, {\n text() {\n return copyText\n },\n target() {\n return copyBoxTextRef\n },\n })\n this.clipboard.on('success', this.handleCopySuccess)\n }\n }\n\n componentWillUnmount() {\n if (this.clipboard) {\n this.clipboard.destroy()\n }\n }\n\n handleCopySuccess = e => {\n this.setState({ showTooltip: true })\n setTimeout(() => {\n this.setState({ showTooltip: false })\n }, TOOLTIP_SHOW_DELAY)\n }\n\n handleFPTI = () => {\n trackClick({\n clickName: 'copy',\n data: {\n event_name: this.props.eventName,\n link_name: 'copy',\n },\n })\n }\n\n render() {\n const transitionNames = {\n enter: this.props.styles['tooltip-enter'],\n enterActive: this.props.styles['tooltip-enter-active'],\n leave: this.props.styles['tooltip-leave'],\n leaveActive: this.props.styles['tooltip-leave-active'],\n }\n\n return (\n
    \n
    \n \n {this.props.enabled && (\n \n {\n this.copyLink = copyLink\n }}\n >\n \n \n \n {this.state.showTooltip && (\n
    \n \n
    \n )}\n \n
    \n )}\n
    \n
    \n )\n }\n}\n\nexport default cssModules(CopyBox, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './share_campaign_compact.less'\nimport CopyBox from 'components/common/copy_box'\nimport 'node_modules/@paypalcorp/pp-vx/dist/components/icons/icons.css'\nimport {\n EmailSharing,\n TwitterSharing,\n FacebookSharing,\n MessengerSharing,\n WhatsAppSharing,\n SmsSharing,\n} from 'components/common/share_buttons'\nimport { useIntl } from 'intl'\n\nShareCampaignCompact.propTypes = {\n shareUrl: PropTypes.string.isRequired,\n displayUrl: PropTypes.string.isRequired,\n shareable: PropTypes.bool.isRequired,\n appId: PropTypes.number.isRequired,\n onClickOverride: PropTypes.func,\n showFacebook: PropTypes.bool,\n showMessenger: PropTypes.bool,\n showTwitter: PropTypes.bool,\n showWhatsApp: PropTypes.bool,\n showEmail: PropTypes.bool,\n showSms: PropTypes.bool,\n showSubtext: PropTypes.bool,\n emailBody: PropTypes.string,\n emailSubject: PropTypes.string,\n isMobile: PropTypes.bool,\n charity: PropTypes.object,\n eventName: PropTypes.string,\n}\nShareCampaignCompact.defaultProps = {\n shareable: true,\n showFacebook: true,\n showMessenger: true,\n showTwitter: true,\n showWhatsApp: true,\n showEmail: true,\n showSms: true,\n showSubtext: false,\n isMobile: false,\n}\n\n// using a common const due to sonarqube warning\nconst shareIconStyle = styles['share-icon']\n\nfunction ShareCampaignCompact(props) {\n const { formatMessage } = useIntl()\n const shareText = props.shareable\n ? props.displayUrl\n : formatMessage('components.share_campaign_compact.link_placeholder')\n return (\n
    \n
    \n
    \n \n\n \n\n {props.isMobile && (\n \n )}\n\n \n\n \n\n \n
    \n
    \n \n
    \n )\n}\n\nexport default cssModules(ShareCampaignCompact, styles)\n","import ShareCampaign from './share_campaign_compact'\nimport { connect } from 'react-redux'\nimport { getShareProps } from 'lib/share'\nimport { campaignUrlWithMeDomain } from 'lib/campaign_url'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { POOL_TYPE } from 'shared/shared_consts'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\nimport { generateShareMessage } from '../../../lib/generate_share_message'\n\nconst mapStateToProps = (state, ownProps) => {\n const campaign = getCampaignSelector(state, ownProps)\n const shareProps = getShareProps(state, ownProps)\n const urlWithMeDomain = campaignUrlWithMeDomain(\n campaign.id,\n campaign.campaign_type\n )\n\n const { type, is_owner } = campaign\n const isSmallGroup = type === POOL_TYPE.PRIVATE\n\n const shareMessage = generateShareMessage(\n isSmallGroup,\n campaign,\n urlWithMeDomain,\n ownProps.worldReady\n )\n\n return {\n shareText: is_owner ? shareMessage : '',\n ...shareProps,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {}\n}\n\nexport default injectWorldReady(\n connect(\n mapStateToProps,\n mapDispatchToProps\n )(ShareCampaign)\n)\n","import React from 'react'\n\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './report_link.less'\nimport { getI18n } from 'intl'\nimport { trackClick } from 'lib/fpti_analytics'\nimport { POOLS_CAMPAIGN_TYPES } from 'shared/shared_consts'\nimport { CaptionText, Link } from '@paypalcorp/pp-react'\n\nconst i18n = getI18n('components/report_link')\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\n\nclass ReportLink extends React.Component {\n static propTypes = {\n currentUserCountryCode: PropTypes.string,\n campaignId: PropTypes.string,\n campaignType: PropTypes.string,\n paypalDomain: PropTypes.string,\n charity: PropTypes.object,\n }\n\n static defaultProps = {\n currentUserCountryCode: 'US',\n }\n\n getReportPoolLink = (country = 'US') => {\n return `https://${\n this.props.paypalDomain\n }/${country}/smarthelp/contact-us?email=paypalme`\n }\n\n handleReportPoolClick = () => {\n trackClick({\n clickName: 'report_pool_pressed',\n data: {\n event_name: 'dw_giving_view_fundraiser_report_pressed',\n },\n })\n }\n\n render() {\n const { currentUserCountryCode } = this.props\n\n return (\n \n \n {this.props.campaignType === CROWD_FUNDING\n ? i18n('report_this_campaign')\n : i18n('report_this_pool')}\n \n \n )\n }\n}\n\nexport default cssModules(ReportLink, styles)\n","import { connect } from 'react-redux'\n\nimport ReportLink from './report_link'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n const campaignType = campaign ? campaign.campaign_type : ''\n\n return {\n currentUserCountryCode: state.country.country_code,\n campaignType,\n paypalDomain: state.geo.paypalDomain,\n charity: campaign && campaign.charity,\n }\n}\n\nexport default connect(mapStateToProps)(ReportLink)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport ReactCSSTransitionGroup from 'react-transition-group/CSSTransitionGroup'\nimport FirstChild from 'components/common/first_child'\nimport styles from './modal_animations.less'\n\nconst ANIMATION_DURATION = 250\n\nconst TRANSITION_DURATION = {\n enter: 'modal-enter',\n enterActive: 'modal-enter-active',\n appear: 'modal-enter',\n appearActive: 'modal-enter-active',\n leave: 'modal-leave',\n leaveActive: 'modal-leave-active',\n}\n\nclass ModalAnimations extends React.Component {\n static propTypes = {\n children: PropTypes.any,\n styles: PropTypes.object,\n }\n\n render() {\n return (\n \n {this.props.children && React.Children.only(this.props.children)}\n \n )\n }\n}\n\nexport default cssModules(ModalAnimations, styles)\n","import {\n BodyText,\n Button,\n PAYPAL_THEME,\n Row,\n Col,\n HorizontalScrollDesktop,\n HeadingText,\n} from '@paypalcorp/pp-react'\nimport React, { useState } from 'react'\nimport MediaQuery from 'react-responsive'\nimport { getI18n } from 'intl'\nimport PropTypes from 'prop-types'\nimport { GNC_DISCLAIMERS } from 'shared/shared_consts'\nimport styles from './ppgf_inset.less'\n\nconst i18n = getI18n('components/crowdfunding_charity_detail_view')\n\nPpgfInset.propTypes = {\n invokeGivingFundTermsModal: PropTypes.func,\n isPreview: PropTypes.boolean,\n cdnHost: PropTypes.string,\n countryCode: PropTypes.string,\n}\n\nexport default function PpgfInset(props) {\n const { sysColorBackgroundMain } = PAYPAL_THEME\n const { isPreview, cdnHost, countryCode } = props\n const [currentPage, setCurrentPage] = useState(1)\n const handlePageChange = index => {\n setCurrentPage(index)\n }\n const donationDeliveryPolicyUrl = `${\n GNC_DISCLAIMERS[countryCode].donationDeliveryPolicy\n }`\n\n const renderBig = steps => {\n const [step1, step2, step3] = steps.steps\n return (\n \n \n {i18n('charity_donating_to_paypal_title')}\n \n
    \n \n \n \n \n {step1.text}\n \n \n \n \n \n \n \n \n \n {step3.text}\n \n \n \n
    \n
    \n )\n }\n\n const renderSmall = steps => {\n const renderCard = item => {\n const { image, text, index } = item\n return (\n \n \n \n \n {index === 2 ? (\n
    \n \n
    \n ) : (\n {text}\n )}\n
    \n \n \n )\n }\n\n return (\n
    \n \n {i18n('charity_donating_to_paypal_title')}\n \n \n
    \n )\n }\n\n const renderButton = () => {\n return (\n (isPreview ? event.preventDefault() : null)}\n >\n {i18n('giving_fund_more_details_link_2')}\n \n )\n }\n\n const steps = {\n title: i18n('label.donationStep-title'),\n steps: [\n {\n index: 1,\n step: i18n('charity_donating_to_paypal_text1'),\n text: i18n('charity_donating_to_paypal_text1'),\n image: `https://${cdnHost}/paypal-ui/pictograms/blue/svg/giving-fund-blue.svg`,\n },\n {\n index: 2,\n step: i18n('charity_donating_to_paypal_text2', {\n donationDeliveryPolicyUrl,\n }),\n text: i18n('charity_donating_to_paypal_text2', {\n donationDeliveryPolicyUrl,\n }),\n image: `https://${cdnHost}/paypal-ui/pictograms/blue/svg/transfer-money-blue.svg`,\n },\n {\n index: 3,\n step: i18n('charity_donating_to_paypal_text3'),\n text: i18n('charity_donating_to_paypal_text3'),\n image: `https://${cdnHost}/paypal-ui/pictograms/blue/svg/invoices-blue.svg`,\n },\n ],\n }\n\n return (\n
    \n {renderBig(steps)}\n {renderSmall(steps)}\n \n \n
    \n {renderButton()}\n
    \n \n
    \n
    \n )\n}\n","import React from 'react'\nimport cssModules from 'react-css-modules'\nimport { PropTypes } from 'prop-types'\nimport styles from './charity_details_modal.less'\nimport { Sheet, HeadingText, BodyText, Row } from '@paypalcorp/pp-react'\nimport { Message } from '@paypalcorp/worldready-react'\n\nconst US = 'US'\n\nclass CharityDetailsModal extends React.Component {\n static propTypes = {\n onGivingFundTermsModalClose: PropTypes.function,\n showGivingFundTermsModal: PropTypes.bool,\n countryCode: PropTypes.string,\n cdnHost: PropTypes.string,\n }\n\n constructor(props) {\n super(props)\n }\n\n render() {\n const { countryCode, cdnHost } = this.props\n const IconUrl = `https://${cdnHost}/images/Cause/hub/ic_blueheart.svg`\n const isCountryCodeUS = countryCode === US\n\n return (\n \n
    \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n
      \n
    1. \n \n
    2. \n\n
    3. \n \n
    4. \n\n
    5. \n \n
    6. \n\n
    7. \n \n
    8. \n\n
    9. \n \n
    10. \n\n {isCountryCodeUS && (\n
    11. \n \n
    12. \n )}\n
    \n
    \n
    \n
    \n \n )\n }\n}\n\nexport default cssModules(CharityDetailsModal, styles, { allowMultiple: true })\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './standard_error.less'\nimport { withRouter } from 'react-router'\nimport { routerShape } from 'react-router/lib/PropTypes'\nimport {\n Button,\n HeadingText,\n BodyText,\n InternationalIcon,\n PersonalInfoIcon,\n UndoIcon,\n PasskeyIcon,\n FundraiserIcon,\n CashIcon,\n} from '@paypalcorp/pp-react'\nimport { getCdnHostName } from '@paypalcorp/instance-location'\nimport { Message } from '@paypalcorp/worldready-react'\n\nconst ERROR = 'error'\nconst WARNING = 'warning'\nclass StandardError extends React.Component {\n static propTypes = {\n title: PropTypes.string,\n subtitle: PropTypes.string,\n iconType: PropTypes.oneOf([WARNING, ERROR]),\n showButton: PropTypes.bool,\n onTryAgain: PropTypes.func,\n backButton: PropTypes.bool,\n extraContent: PropTypes.element,\n router: routerShape,\n icon: PropTypes.element,\n iconName: PropTypes.string,\n }\n\n static defaultProps = { iconType: WARNING }\n\n handleButtonClick = () => {\n if (this.props.backButton) {\n this.props.router.goBack()\n } else if (this.props.onTryAgain) {\n this.props.onTryAgain()\n }\n }\n\n renderIcon = () => {\n const { icon, iconType } = this.props\n if (icon) {\n return
    {icon}
    \n }\n\n const ICON_NAME = iconType === WARNING ? 'empty-warning' : 'empty-critical'\n const ICON_URL = `https://${getCdnHostName()}/paypal-ui/illustrations/focused/svg/${ICON_NAME}.svg`\n const isShowingImage = iconType === WARNING || iconType === ERROR\n\n const iconClass = (() => {\n switch (iconType) {\n case WARNING:\n return ICON_URL\n case ERROR:\n return ICON_URL\n default:\n return ''\n }\n })()\n\n return isShowingImage ? (\n {iconType}\n ) : (\n \n )\n }\n\n icon = iconName => {\n let iconComponent\n if (iconName === 'passkey') {\n iconComponent = \n } else if (iconName === 'international') {\n iconComponent = (\n \n )\n } else if (iconName === 'personal') {\n iconComponent = \n } else if (iconName === 'undo') {\n iconComponent = \n } else if (iconName === 'fundraiser') {\n iconComponent = \n } else if (iconName === 'cash') {\n iconComponent = \n }\n return
    {iconComponent}
    \n }\n\n render() {\n const { iconName } = this.props\n return (\n
    \n {iconName ? this.icon(iconName) : this.renderIcon()}\n \n {this.props.title}\n \n \n {this.props.subtitle}\n \n {this.props.showButton && (\n \n {this.props.backButton ? (\n \n ) : (\n \n )}\n \n )}\n {this.props.extraContent}\n
    \n )\n }\n}\n\nexport default withRouter(cssModules(StandardError, styles))\n","import * as React from 'react'\nimport PropTypes from 'prop-types'\n\nimport cssModules from 'react-css-modules'\nimport { Button, Sheet } from '@paypalcorp/pp-react'\nimport StandardError from 'components/common/standard_error'\nimport styles from './payments_token_sheet.less'\nimport { getI18n } from 'intl'\n\nconst i18nErrors = getI18n('errors/errors')\nconst i18n = getI18n('components/common/campaign_eligibility')\nconst i18nBack = getI18n('components/back_button')\nconst DONATION_TOKEN_MERCHANT_UNABLE_RECEIVE_MONEY =\n 'DONATION_TOKEN_MERCHANT_UNABLE_RECEIVE_MONEY'\n\nclass PaymentsTokenSheet extends React.Component {\n static propTypes = {\n hostName: PropTypes.string,\n isOpen: PropTypes.bool,\n onClose: PropTypes.function,\n paymentsTokenError: PropTypes.string,\n subTitle: PropTypes.string,\n title: PropTypes.string,\n }\n\n constructor(props) {\n super(props)\n this.handleClose = this.handleClose.bind(this)\n }\n\n handleClose() {\n this.props.onClose()\n location.reload(true)\n }\n\n render() {\n const { isOpen, paymentsTokenError, hostName } = this.props\n\n const isDonationTokenMerchantUnableReceiveMoney =\n paymentsTokenError === DONATION_TOKEN_MERCHANT_UNABLE_RECEIVE_MONEY\n\n return (\n <>\n {isOpen && (\n \n
    \n {isDonationTokenMerchantUnableReceiveMoney ? (\n \n {i18nErrors('cta_error_1')}\n \n }\n />\n ) : (\n \n {i18nBack('back')}\n \n }\n />\n )}\n
    \n \n )}\n \n )\n }\n}\nexport default cssModules(PaymentsTokenSheet, styles)\n","import { GNC_DISCLAIMERS } from 'shared/shared_consts'\n\nconst COUNTRY_CODES = {\n US: 'US',\n GB: 'GB',\n AU: 'AU',\n CA: 'CA',\n}\n\nexport const getDisclaimerVariables = ({ countryCode, isGnc }) => {\n if (isGnc) {\n switch (countryCode) {\n case COUNTRY_CODES.AU:\n return GNC_DISCLAIMERS.AU\n case COUNTRY_CODES.CA:\n return GNC_DISCLAIMERS.CA\n case COUNTRY_CODES.GB:\n return GNC_DISCLAIMERS.GB\n case COUNTRY_CODES.US:\n return GNC_DISCLAIMERS.US\n default:\n return {}\n }\n }\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './mock_text.less'\n\nclass MockText extends React.Component {\n static propTypes = {\n // string or number, so that we could do things like '100%'\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n }\n\n render() {\n let width = this.props.width\n if (typeof width === 'number') {\n width = width + 'px'\n }\n return (\n \n \n \n \n )\n }\n}\n\nexport default cssModules(MockText, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { UnboundAvatar, avatarColors } from 'components/common/avatar'\nimport MockText from 'components/common/mock_text'\nimport cssModules from 'react-css-modules'\nimport styles from './public_contribution_row.less'\nimport { getMergedI18n, formatDate, formatCurrency } from 'intl'\nimport { getHash } from 'shared/helpers/string_helpers'\nimport { getInitials } from 'shared/helpers/name_helpers'\nimport { daysUntilToday } from 'shared/helpers/datetime_helpers'\nimport {\n DAYS_THRESHOLD,\n MIN_CONTRIBUTOR_ROW_HEIGHT,\n} from 'shared/shared_consts'\nimport { BodyText, CaptionText } from '@paypalcorp/pp-react'\nimport clsx from 'clsx'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\n\nconst i18n = getMergedI18n(['components/txn_row', 'components/txns_list'])\n\nexport class PublicContributionRow extends React.Component {\n static propTypes = {\n id: PropTypes.string,\n date: PropTypes.string,\n note: PropTypes.string,\n amount: PropTypes.number,\n currency: PropTypes.string,\n contributor_id: PropTypes.string,\n contributor_name: PropTypes.string,\n contributor_photo: PropTypes.string,\n preview: PropTypes.bool,\n isPledge: PropTypes.bool,\n removeExistingCommentFlag: PropTypes.bool,\n worldReady: PropTypes.Object,\n }\n\n static defaultProps = {\n isPledge: false,\n }\n\n getAvatarBackgroundColor = () => {\n if (!this.props.contributor_id) return 'anonymous-grey'\n const uniqueNumericId = getHash(this.props.contributor_id.toString())\n return avatarColors[uniqueNumericId % avatarColors.length]\n }\n\n formattedDate = () => {\n let date = this.props.date\n // this checks if a string is a valid date, and if so, translates it to a 'days ago' syntax\n if (!Number.isNaN(Date.parse(date))) {\n const days = daysUntilToday(new Date(date))\n if (days > DAYS_THRESHOLD) {\n date = i18n('on_date', {\n date: formatDate(this.props.worldReady, date, {\n style: 'date-short',\n }),\n })\n } else {\n const key =\n days === 0 || days === 1 ? `days_ago_${days}` : 'days_ago_other'\n date = i18n(key, { days })\n }\n }\n return date\n }\n\n render() {\n const amountStyleName = this.props.preview ? 'amount-preview' : 'amount'\n const bodyTextStyleNames = clsx({\n 'contributor-name': !this.props.preview,\n 'contributor-name-preview': this.props.preview,\n 'pledge-contribution-row': this.props.isPledge,\n })\n\n const contributor = this.props.isPledge\n ? i18n('organizer_name', { name: this.props.contributor_name })\n : this.props.contributor_name\n let contributorName = this.props.contributor_name\n ? contributor\n : i18n('anonymous')\n\n return (\n
    \n
    \n \n
    \n {this.props.preview ? (\n
    \n

    \n \n

    \n

    \n \n

    \n
    \n ) : (\n
    \n \n {contributorName}\n \n \n {this.formattedDate()}\n \n
    \n )}\n {this.props.amount != null && (\n \n {formatCurrency({\n value: this.props.amount,\n currencyCode: this.props.currency,\n additionalConfig: {},\n worldReady: this.props.worldReady,\n })}\n \n )}\n {this.props.note &&\n !this.props.removeExistingCommentFlag && (\n
    \n {this.props.note}\n
    \n )}\n
    \n )\n }\n}\n\nexport default injectWorldReady(\n cssModules(PublicContributionRow, styles, {\n allowMultiple: true,\n })\n)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport ContributionsList from './contributions_list'\nimport { publicContributionsListSelector } from 'redux/selectors/contributions'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { daysFromToday } from 'shared/helpers/datetime_helpers'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\nimport { formatName } from 'intl'\nimport PublicContributionRow from './rows/public_contribution_row'\nimport {\n POOLS_CAMPAIGN_TYPES,\n CONTRIBUTION_TRANSACTIONS_PER_PAGE,\n} from 'shared/shared_consts'\nimport { get } from 'lodash'\nimport { addPledgeToContributionList } from './helpers/'\n\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\n\nclass UnboundPublicContributionsList extends React.Component {\n static propTypes = {\n campaignId: PropTypes.string.isRequired,\n contributions: PropTypes.array,\n txnsPerPage: PropTypes.number.isRequired,\n totalTxnsCount: PropTypes.number.isRequired,\n txnCount: PropTypes.number,\n goalRemaining: PropTypes.number,\n daysRemaining: PropTypes.number,\n currency: PropTypes.string.isRequired,\n ownerId: PropTypes.string.isRequired,\n ownerName: PropTypes.string.isRequired,\n canChipIn: PropTypes.bool.isRequired,\n preview: PropTypes.bool,\n onChipInClick: PropTypes.func,\n hideChipIn: PropTypes.bool,\n pledge: PropTypes.number,\n campaignType: PropTypes.string.isRequired,\n removeExistingCommentFlag: PropTypes.bool,\n }\n\n static defaultProps = {\n txnCount: 0,\n hideChipIn: false,\n }\n\n shouldShowCallToChipIn = () => {\n return this.props.hideChipIn\n ? false\n : this.props.canChipIn && this.props.goalRemaining > 0\n }\n\n shouldSkipRenderingList = () => {\n return !this.shouldShowCallToChipIn() && !this.props.contributions\n }\n\n render() {\n if (this.shouldSkipRenderingList()) {\n return null\n }\n let contributionList = this.props.contributions\n ? [...this.props.contributions]\n : null\n if (this.props.campaignType === CROWD_FUNDING && this.props.pledge) {\n contributionList = addPledgeToContributionList(this.props)\n }\n\n return (\n (\n \n )}\n />\n )\n }\n}\n\nexport default injectWorldReady(\n connect((state, props) => {\n const campaign = getCampaignSelector(state, props)\n let daysRemaining\n if (campaign.end_date != null) {\n daysRemaining = daysFromToday(new Date(campaign.end_date))\n }\n\n let goalRemaining\n const currentValue = campaign.current_value + campaign.pledge\n if (campaign.goal != null && currentValue != null) {\n goalRemaining = campaign.goal - currentValue\n }\n\n return {\n contributions: publicContributionsListSelector(state, props),\n txnsPerPage: props.txnsPerPage || CONTRIBUTION_TRANSACTIONS_PER_PAGE,\n txnCount: campaign.txn_count,\n totalTxnsCount: get(\n campaign,\n 'transactionSummary.total_number_of_contributions',\n 0\n ),\n goalRemaining,\n daysRemaining,\n preview: campaign.preview,\n canChipIn: campaign.can_chip_in,\n pledge: campaign.pledge,\n currency: campaign.currency,\n campaignId: campaign.id,\n ownerId: campaign.owner.id,\n campaignType: campaign.campaign_type,\n removeExistingCommentFlag:\n state.flags && state.flags.removeExistingComment,\n ownerName:\n campaign.owner.business_name ||\n formatName(props.worldReady, {\n givenName: campaign.owner.first_name,\n surname: campaign.owner.last_name,\n }),\n }\n })(UnboundPublicContributionsList)\n)\n","export const addPledgeToContributionList = props => {\n const contributionArray = props.contributions ? [...props.contributions] : []\n\n contributionArray.unshift({\n amount: props.pledge,\n anonymous: false,\n campaign_id: props.campaignId,\n contributor_id: props.ownerId,\n contributor_name: props.ownerName,\n contributor_photo: undefined,\n currency: props.currency,\n date: '',\n isPledge: true,\n })\n\n return contributionArray\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './enrich_charity_card.less'\nimport {\n HeadingText,\n BodyText,\n CaptionText,\n WebsiteIcon,\n Alert,\n Avatar,\n Link,\n} from '@paypalcorp/pp-react'\nimport CollapsibleText from 'components/common/collapsible_text'\nimport { getI18n } from 'intl'\nimport {\n KEY_PRESS_EVENTS,\n CHARITY_INSTRUMENTATION,\n COLLAPSIBLE_STATE,\n} from 'shared/shared_consts'\nimport { trackEventNameClick } from 'lib/fpti_analytics'\n\nconst i18n = getI18n('components/expandable_paragraph')\n\nconst { ENTER_KEY } = KEY_PRESS_EVENTS\nclass EnrichCharityCard extends React.Component {\n static propTypes = {\n charityName: PropTypes.string,\n charityUrl: PropTypes.string,\n sourceContent: PropTypes.string,\n disclaimerContent: PropTypes.string,\n unEnrolledLink: PropTypes.string,\n learnMoreCharityLink: PropTypes.string,\n cityState: PropTypes.string,\n einContent: PropTypes.string,\n charityDescription: PropTypes.string,\n websiteUrl: PropTypes.string,\n campaign: PropTypes.object,\n }\n\n openWebsite = url => {\n window.open(url, '_blank')\n this.handleFPTI(CHARITY_INSTRUMENTATION.CHARITY_LINK_PRESSED)\n }\n\n handleKeyUp = (url, event) => {\n if (event.key === ENTER_KEY) {\n this.openWebsite(url)\n }\n }\n\n handleFPTI = eventName => {\n const { campaign } = this.props\n const { charity } = campaign\n if (charity) {\n trackEventNameClick({\n event_name: eventName,\n discoverable: campaign?.discoverable,\n })\n }\n }\n\n source = () =>\n this.props.sourceContent && (\n {this.props.sourceContent}\n )\n\n header = () => {\n const {\n charityName,\n charityUrl,\n websiteUrl,\n einContent,\n cityState,\n } = this.props\n return (\n <>\n
    \n
    \n \n
    \n
    \n {charityName}\n
    \n
    \n
    \n
    \n {cityState && {cityState}}\n {einContent && {einContent}}\n
    \n {websiteUrl && (\n this.handleKeyUp(websiteUrl, e)}\n onClick={() => this.openWebsite(websiteUrl)}\n tabIndex={0}\n />\n )}\n
    \n \n )\n }\n\n render() {\n const {\n disclaimerContent,\n unEnrolledLink,\n learnMoreCharityLink,\n } = this.props\n\n return (\n <>\n {\n this.handleFPTI(\n status === COLLAPSIBLE_STATE.COLLAPSED\n ? CHARITY_INSTRUMENTATION.SHOWLESS_LINK_PRESSED\n : CHARITY_INSTRUMENTATION.READMORE_LINK_PRESSED\n )\n },\n }}\n >\n {this.props.charityDescription}\n \n {disclaimerContent && (\n <>\n \n {disclaimerContent}\n \n
    \n \n this.handleFPTI(CHARITY_INSTRUMENTATION.PPGF_TNC_LINK_PRESSED)\n }\n >\n {learnMoreCharityLink}\n \n
    \n \n )}\n \n )\n }\n}\n\nexport default cssModules(EnrichCharityCard, styles, { allowMultiple: true })\n","import {\n PPGF_ENROLLED,\n PPGF_UNENROLLED,\n DIRECT_MODEL_ENROLLED,\n PPGF_ENROLLED_LINKS,\n} from 'shared/shared_consts'\nimport { getI18n } from 'intl'\n\nconst i18n = getI18n('components/enrich_charity_card')\n\nexport function charityNumberFormat(ein, country) {\n let formattedEin\n if (ein.length > 2 && country === 'US') {\n formattedEin = `${ein.substring(0, 2)}-${ein.substring(2)}`\n } else {\n formattedEin = ein\n }\n const charityNumber = i18n(`charity_number_${country}`, {\n ein_number: formattedEin,\n })\n return charityNumber\n}\n\nexport function charityCityState(city, state) {\n const address = []\n if (city) {\n address.push(city)\n }\n if (state) {\n address.push(state)\n }\n return address.join(', ')\n}\n\nexport function enrichCharityData(charityType, countryCode) {\n switch (charityType) {\n case PPGF_ENROLLED:\n return { sourceContent: i18n(`source_enrolled`) }\n case PPGF_UNENROLLED:\n return {\n sourceContent: i18n(`source_unenrolled_${countryCode}`),\n disclaimerContent: i18n(`disclaimer_unenrolled_${countryCode}`),\n unEnrolledLink: PPGF_ENROLLED_LINKS[countryCode],\n learnMoreCharityLink: i18n(`learn_more_charity_link`),\n }\n case DIRECT_MODEL_ENROLLED:\n return { sourceContent: i18n(`source_directModel`) }\n default:\n return {}\n }\n}\n","import EnrichCharityCard from './enrich_charity_card'\nimport { connect } from 'react-redux'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport _get from 'lodash/get'\nimport {\n charityNumberFormat,\n charityCityState,\n enrichCharityData,\n} from 'lib/enrich_charity_utils'\n\nconst mapStateToProps = (state, ownProps) => {\n const campaign = getCampaignSelector(state, ownProps)\n const { charity, country_code: countryCode } = campaign\n\n const charityName = _get(charity, 'name', '')\n const charityUrl = _get(charity, 'logo_url', '')\n const charityType = _get(charity, 'charity_type', '')\n const charityCity = _get(charity, 'address.city', '')\n const charityState = _get(charity, 'address.state', '')\n const ein = _get(charity, 'ein', '')\n const charityDescription = _get(charity, 'description', '')\n const websiteUrl = _get(charity, 'website_url', '')\n const cityState = charityCityState(charityCity, charityState)\n const {\n sourceContent,\n disclaimerContent,\n unEnrolledLink,\n learnMoreCharityLink,\n } = enrichCharityData(charityType, countryCode)\n const einContent = ein ? charityNumberFormat(ein, countryCode) : ''\n\n return {\n charityName,\n charityUrl,\n sourceContent,\n disclaimerContent,\n unEnrolledLink,\n learnMoreCharityLink,\n cityState,\n einContent,\n charityDescription,\n websiteUrl,\n campaign,\n }\n}\nexport default connect(mapStateToProps)(EnrichCharityCard)\n","import { useEffect, useRef } from 'react'\n\n/**\n * Moves one DOM element to another DOM element through a Ref. If the DOM\n * element ends up orphaned then it is returned to its original parent, but only\n * if the original parent has an id.\n *\n * Useful to move elements rendered by the server. Elements not present in the virtual DOM.\n * @param elementId\n * @returns {{ref: React.MutableRefObject}}\n */\nexport default function useMoveDOMElementToRef(elementId) {\n const ref = useRef()\n useEffect(\n () => {\n const element = document.getElementById(elementId)\n if (element) {\n element.originalParentId =\n element.originalParentId === undefined\n ? element.parentElement?.id\n : element.originalParentId // ??= not supported\n element.remove()\n ref.current.appendChild(element)\n }\n\n return () => {\n if (element?.originalParentId) {\n element.remove()\n document.getElementById(element.originalParentId).appendChild(element)\n }\n }\n },\n [elementId]\n )\n\n return { ref }\n}\n","import React from 'react'\nimport cssModules from 'react-css-modules'\nimport styles from './index.less'\nimport useMoveDOMElementToRef from './useMoveDOMElementToRef'\n\nexport const RenderHeader = cssModules(() => {\n const { ref } = useMoveDOMElementToRef('globalnav-header')\n return (\n \n )\n}, styles)\n\nexport const RenderFooter = () => {\n const { ref } = useMoveDOMElementToRef('globalnav-footer')\n return
    \n}\n","import React from \"react\";\nexport default class SVG extends React.Component {\n render() {\n return ;\n }\n\n}","import React from \"react\";\nexport default class SVG extends React.Component {\n render() {\n return ;\n }\n\n}","import React from 'react'\nimport clsx from 'clsx'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './icon.less'\nimport {\n AddCameraIcon,\n SendMoneyIcon,\n PaypalAppIcon,\n BankIcon,\n UserProfileIcon,\n PartySuppliesIcon,\n GiftCardIcon,\n ShopIcon,\n} from '@paypalcorp/pp-react'\n\nimport Rocket from '!!babel-loader!react-svg-loader!images/rocket.svg' // eslint-disable-line import/no-unresolved\nimport People from '!!babel-loader!react-svg-loader!images/pools_logo.svg' // eslint-disable-line import/no-unresolved\n\nexport const ICON_SIZES = {\n normal: '35%',\n big: '45%',\n huge: '75%',\n}\n\nexport const STROKE_COLORS = ['black', 'blue', 'white']\n\nclass Icon extends React.Component {\n static propTypes = {\n type: PropTypes.string.isRequired,\n iconSize: PropTypes.oneOf(Object.keys(ICON_SIZES)),\n strokeColor: PropTypes.oneOf(STROKE_COLORS),\n }\n\n static defaultProps = {\n iconSize: 'normal',\n strokeColor: 'black',\n }\n\n render() {\n let IconSVG\n let disableFill // some icons are buggy when using the `fill` css option\n switch (this.props.type) {\n case 'add-photo':\n IconSVG = AddCameraIcon\n break\n case 'party':\n IconSVG = PartySuppliesIcon\n break\n case 'gift':\n IconSVG = GiftCardIcon\n break\n case 'rocket':\n IconSVG = Rocket\n break\n case 'shop':\n IconSVG = ShopIcon\n break\n case 'money-out':\n IconSVG = SendMoneyIcon\n break\n case 'profile':\n IconSVG = UserProfileIcon\n disableFill = true\n break\n case 'bank':\n IconSVG = BankIcon\n disableFill = true\n break\n case 'people':\n IconSVG = People\n disableFill = true\n break\n case 'paypal-icon':\n IconSVG = PaypalAppIcon\n disableFill = true\n break\n default:\n IconSVG = ''\n }\n\n if (!IconSVG) {\n return null\n }\n\n return (\n \n )\n }\n}\n\nexport default cssModules(Icon, styles, { allowMultiple: true })\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { getI18n } from 'intl'\nimport styles from './crowdfunding_banner.less'\nimport cssModules from 'react-css-modules'\nimport { baseUrl } from 'shared/campaign_url'\nimport { CROWD_FUNDING_HOME_URI } from 'shared/shared_consts'\nimport {\n PAYPAL_THEME,\n Button,\n Col,\n Container,\n HeadingText,\n Row,\n} from '@paypalcorp/pp-react'\nimport Icon from '../../../common/icon/icon'\nimport clsx from 'clsx'\n\nconst i18n = getI18n('components/crowdfunding_banner')\n\nclass CrowdfundingBanner extends React.Component {\n static propTypes = {\n bannerButtonText: PropTypes.string,\n bannerIcon: PropTypes.string,\n bannerLink: PropTypes.string,\n bannerTitleText: PropTypes.string,\n cta: PropTypes.string,\n isLoggedIn: PropTypes.any,\n analytics: PropTypes.object,\n }\n\n handleHelpNow = () => {\n const { bannerLink } = this.props\n const uri = bannerLink || CROWD_FUNDING_HOME_URI\n open(baseUrl(location.hostname, uri))\n }\n\n componentDidMount() {\n if (this.props.analytics?.impressionUrl) {\n fetch(this.props.analytics.impressionUrl)\n }\n }\n\n render() {\n const { bannerIcon, bannerButtonText, bannerTitleText } = this.props\n const { sysColorPrimaryContrastHover } = PAYPAL_THEME\n\n return (\n \n \n \n \n \n {bannerTitleText || i18n('crowdfunding_banner_info')}\n \n \n \n \n {bannerButtonText || i18n('crowdfunding_banner_cta')}\n \n \n \n \n )\n }\n}\n\nexport default cssModules(CrowdfundingBanner, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './paypal_page.less'\nimport clsx from 'clsx'\nimport { RenderFooter, RenderHeader } from '../header_footer'\nimport CrowdfundingBanner from 'components/pages/crowdfunding/crowdfunding_banner'\n\nclass PayPalPage extends React.Component {\n static propTypes = {\n showHeader: PropTypes.bool,\n showFooter: PropTypes.bool,\n children: PropTypes.any,\n useWhiteBg: PropTypes.bool,\n isLoggedIn: PropTypes.any,\n isPreview: PropTypes.bool,\n paypalDomain: PropTypes.string,\n campaignId: PropTypes.string.isRequired,\n alwaysShowHeaderNavigation: PropTypes.bool.isRequired,\n alwaysShowBanner: PropTypes.bool.isRequired,\n allowEntryBanner: PropTypes.bool,\n banner: PropTypes.any,\n }\n\n static defaultProps = {\n showHeader: true,\n showFooter: true,\n useWhiteBg: false,\n alwaysShowHeaderNavigation: true,\n alwaysShowBanner: false, //alwaysShowBanner will be true from crowdfunding page\n }\n\n showHeaderNavigation = () => {\n const headerContent = document.getElementById('data-header')?.innerHTML\n const { showHeader, alwaysShowHeaderNavigation } = this.props\n if (!showHeader) {\n return false\n }\n\n return alwaysShowHeaderNavigation ? true : !headerContent\n }\n\n render() {\n const showBanner =\n this.props.allowEntryBanner &&\n !this.props.isPreview &&\n this.props.alwaysShowBanner\n\n const contentStyles = clsx('content-inside', {\n 'no-header': !this.props.showHeader,\n 'no-footer': !this.props.showFooter,\n 'white-bg': this.props.useWhiteBg,\n })\n\n return (\n
    \n {this.props.showHeader && (\n \n )}\n {this.props.showHeader && }\n \n {showBanner && (\n \n )}\n\n \n {this.props.children}\n
    \n \n {this.props.showFooter && (\n
    \n \n
    \n )}\n
    \n
    \n )\n }\n}\n\nexport default cssModules(PayPalPage, styles, { allowMultiple: true })\n","import PayPalPage from './paypal_page'\nimport { connect } from 'react-redux'\nimport { fromVeniceSelector } from 'redux/selectors/venice'\nimport { getAllowEntryBannerSelector } from 'redux/selectors/campaign'\n\nconst mapStateToProps = (state, { campaignId, showHeader, showFooter }) => {\n const fromVenice = fromVeniceSelector()(state)\n if (fromVenice) {\n showHeader = false\n showFooter = false\n }\n\n return {\n showHeader,\n showFooter,\n isLoggedIn: state.login_info && state.login_info.logged_in,\n allowEntryBanner: getAllowEntryBannerSelector(state, { campaignId }),\n paypalDomain: state.geo.paypalDomain,\n banner: state.personalizationStudio.banner,\n }\n}\nexport default connect(mapStateToProps)(PayPalPage)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './profile_cover.less'\nimport { Avatar, CaptionText } from '@paypalcorp/pp-react'\n\nconst ProfileCover = props => {\n const { charity } = props\n\n const renderAvatar = link => {\n return (\n \n )\n }\n\n const renderCharityLogo = () => {\n return charity.logo_url ? (\n renderAvatar(charity.logo_url)\n ) : (\n \n \n
    \n )\n }\n\n return (\n
    \n
    \n {charity ? (\n renderCharityLogo()\n ) : (\n <>\n
    {renderAvatar(props.profileImage)}
    \n
    \n \n {props.creatorName}\n \n
    \n \n )}\n
    \n
    \n )\n}\n\nProfileCover.propTypes = {\n charity: PropTypes.object.isRequired,\n creatorName: PropTypes.string.isRequired,\n initials: PropTypes.string.isRequired,\n profileImage: PropTypes.string.isRequired,\n id: PropTypes.string.isRequired,\n}\n\nexport default cssModules(ProfileCover, styles, {\n allowMultiple: true,\n})\n","import { get } from 'lodash'\nimport { connect } from 'react-redux'\nimport { formatName } from 'intl'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { getInitials } from 'shared/helpers/name_helpers'\nimport ProfileCover from './profile_cover'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\n\nconst mapStateToProps = (state, ownProps) => {\n const campaign = getCampaignSelector(state, ownProps)\n const ownerName =\n get(campaign, 'owner.business_name', '') ||\n formatName(ownProps.worldReady, {\n givenName: get(campaign, 'owner.first_name', ''),\n surname: get(campaign, 'owner.last_name', ''),\n })\n\n return {\n charity: campaign?.charity,\n creatorName: ownerName,\n initials: getInitials(ownerName),\n profileImage: get(campaign, 'owner.profile_photo'),\n }\n}\n\nexport default injectWorldReady(connect(mapStateToProps)(ProfileCover))\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './avatar_collection.less'\nimport { useIntl } from 'intl'\nimport { AvatarStack } from '@paypalcorp/pp-react'\nimport { UnboundAvatar } from '../common/avatar'\nimport { getInitials } from '../../../shared/helpers/name_helpers'\n\nconst AvatarCollection = ({ contributions, contributionCount }) => {\n const { formatMessage } = useIntl()\n\n return (\n \n {contributions\n .slice(0, 3)\n .map(({ contributor_name, contributor_photo, contributor_id }) => {\n return (\n \n )\n })}\n \n )\n}\n\nAvatarCollection.propTypes = {\n contributions: PropTypes.array.isRequired,\n contributionCount: PropTypes.number.isRequired,\n}\n\nexport default cssModules(AvatarCollection, styles)\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport PropTypes from 'prop-types'\nimport _get from 'lodash/get'\nimport cssModules from 'react-css-modules'\nimport { Link } from 'react-router'\nimport { glimpseRoute } from 'lib/route_utils'\nimport CrowdFundingCampaignHeader from 'components/crowdfunding_campaign_header'\nimport CrowdFundingTabLayout from 'components/crowdfunding_tab_layout'\nimport styles from './crowdfunding_detail_view.less'\nimport {\n HeadingText,\n Button,\n BodyText,\n Container,\n LoadingSpinner,\n ArrowLeftIcon,\n Link as PPLink,\n CaptionText,\n Elevation,\n CalendarIcon,\n WarningIcon,\n Badge,\n} from '@paypalcorp/pp-react'\nimport clsx from 'clsx'\nimport Strip from 'components/strip'\nimport FlatProgress from 'components/common/flat_progress'\nimport CountDown from 'components/common/count_down'\nimport ShareButton from 'components/common/share_button'\nimport DonateButton from 'components/pages/crowdfunding/donate_button'\nimport ShareCampaign from 'components/common/share_campaign_compact'\nimport ReportLink from 'components/pages/campaign/report_link'\nimport ModalAnimations from 'components/common/transitions/modal_animations'\nimport PpgfInset from 'components/common/ppgf_inset'\nimport CharityDetailsModal from 'components/common/charity_details_modal'\nimport { trackClick, trackImpression } from 'lib/fpti_analytics'\nimport PaymentsTokenSheet from '../common/payments_token_sheet/payments_token_sheet'\nimport { getDisclaimerVariables } from 'shared/helpers/helperDisclaimer'\nimport { hasPPGFIntegrationIdentifier } from 'shared/helpers/campaign'\nimport PublicContributionsList from 'components/contributions_list/public_contributions_list'\nimport EnrichCharityCard from 'components/pages/crowdfunding/enrich_charity_card'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { getI18n, legacyFormatDate as formatDate } from 'intl'\nimport PaypalPage from '../common/paypal_page/index'\nimport { getCampaignTotalValue } from 'lib/campaign'\nimport ProfileCover from '../profile_cover'\nimport AvatarCollection from '../avatar_collection/avatar_collection'\n\nconst i18n = getI18n('components/crowdfunding_detail_view')\nconst i18n2 = getI18n('components/donate_button')\nconst i18nCharity = getI18n('components/crowdfunding_charity_detail_view')\n\nconst PageSpinner = () => {\n return (\n
    \n \n
    \n )\n}\nconst CanDonateOrChipInProptypes = {\n endDate: PropTypes.string,\n canDonate: PropTypes.bool,\n canChipIn: PropTypes.bool,\n}\n\nconst CanDonateOrChipIn = ({ endDate, canDonate, canChipIn }) => {\n const formattedEndDate = formatDate(endDate)\n\n if (!canDonate) {\n return (\n
    \n \n \n \n
    \n )\n } else if (!canChipIn) {\n return (\n
    \n \n \n {i18n2('expired', { date: formattedEndDate })}\n \n
    \n )\n }\n if (canChipIn) {\n return (\n
    \n {i18n('expires')}\n \n
    \n )\n }\n return null\n}\nCanDonateOrChipIn.propTypes = CanDonateOrChipInProptypes\n\nclass CrowdfundingDetailView extends React.Component {\n static propTypes = {\n paymentsTokenError: PropTypes.string,\n campaign: PropTypes.Object,\n campaignId: PropTypes.string,\n clearDNWTransactionError: PropTypes.func,\n setIsLoading: PropTypes.func,\n countryCode: PropTypes.string,\n defaultCategoryCover: PropTypes.string,\n geo: PropTypes.Object,\n glimpse: PropTypes.element,\n isEdit: PropTypes.bool,\n isLoadingDNWTransaction: PropTypes.bool,\n isMobile: PropTypes.bool,\n preview: PropTypes.bool,\n reversed: PropTypes.string,\n secondary: PropTypes.string,\n small: PropTypes.string,\n hostName: PropTypes.string,\n hasMarketplaceTreatment: PropTypes.bool,\n contributions: PropTypes.array,\n }\n\n constructor(props) {\n super(props)\n this.state = { showGivingFundTermsModal: false }\n this.modalRoot = document.getElementById('modal-root')\n }\n\n invokeGivingFundTermsModal = e => {\n e.preventDefault()\n this.setState({\n showGivingFundTermsModal: true,\n })\n this.trackFPTI('click', 'dw_giving_detail_giving_fund_info_pressed')\n this.trackFPTI('impression', 'dw_giving_paypal_fund_info_screen_shown')\n }\n\n onGivingFundTermsModalClose = () => {\n this.setState({\n showGivingFundTermsModal: false,\n })\n this.trackFPTI('click', 'dw_giving_paypal_fund_info_close_pressed')\n }\n\n trackFPTI = (eventType, event) => {\n if (eventType === 'impression') {\n trackImpression({ event_name: event })\n } else {\n trackClick({\n clickName: event,\n data: {\n event_name: event,\n },\n })\n }\n }\n\n renderReportingLink = (isPreview, is_owner, id, isGnc = false) => (\n
    \n {!isPreview && !is_owner && }\n
    \n )\n\n renderEmptyDiv = () =>
    \n\n handleClickFindMore = event => {\n const CLICK_NAME = 'dw_giving_detail_find_more_fundraisers_pressed'\n trackClick({\n clickName: CLICK_NAME,\n data: {\n event_name: CLICK_NAME,\n },\n })\n }\n\n render() {\n let {\n background_image,\n background_pan,\n currency,\n current_value = 0,\n end_date,\n goal,\n id,\n is_owner,\n pledge = 0,\n charity,\n can_chip_in: canChipIn,\n can_donate: canDonate,\n transactionSummary,\n category_image: categoryImage,\n } = this.props.campaign\n const {\n isLoadingDNWTransaction,\n isEdit = false,\n paymentsTokenError,\n clearDNWTransactionError,\n setIsLoading,\n hostName,\n countryCode,\n hasMarketplaceTreatment,\n contributions,\n } = this.props\n let isCharity = !!charity && charity.name\n const isPPGFCharity = hasPPGFIntegrationIdentifier(countryCode) && isCharity\n const customStyle = {\n height: '100%',\n }\n const isPreview = id === '__new_campaign__' || isEdit\n const showHeader = !isPreview\n const { isMobile } = this.props\n const showFindMoreLink = hasMarketplaceTreatment && showHeader\n let contributionCount = _get(\n transactionSummary,\n 'total_number_of_contributions',\n 0\n )\n if (pledge > 0) {\n contributionCount = contributionCount + 1\n }\n\n return (\n
    \n {isLoadingDNWTransaction && }\n {\n setIsLoading(true)\n clearDNWTransactionError()\n }}\n paymentsTokenError={paymentsTokenError}\n hostName={hostName}\n />\n {ReactDOM.createPortal(\n {this.props.glimpse},\n this.modalRoot\n )}\n \n \n
    \n {showFindMoreLink && (\n }\n styleName=\"findMoreLink\"\n onClick={this.handleClickFindMore}\n data-test=\"find-more-link\"\n >\n {i18n('find_more')}\n \n )}\n
    \n \n
    \n
    \n
    \n \n \n \n \n
    \n
    \n {!!contributions?.length && (\n
    \n \n
    \n )}\n
    \n \n
    \n \n {is_owner && !isPreview ? (\n \n this.trackFPTI(\n 'click',\n 'dw_giving_view_fundraiser_manage_pressed'\n )\n }\n styleName=\"manage-button\"\n data-nemo=\"manage\"\n >\n {i18n('manage')}\n \n ) : (\n
    \n \n
    \n )}\n {!isPreview &&\n isMobile && (\n
    \n \n
    \n )}\n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n
    \n {isCharity && (\n
    \n \n
    \n )}\n {this.renderEmptyDiv()}\n
    \n {!isPreview &&\n !isMobile && (\n
    \n {i18n('social_share_heading')}\n \n
    \n )}\n {(!isMobile || (isMobile && !charity)) &&\n this.renderReportingLink(isPreview, is_owner, id)}\n
    \n
    \n
    \n {isPPGFCharity && (\n \n \n
    \n \n
    \n\n {this.state.showGivingFundTermsModal && (\n \n )}\n
    \n )}\n\n {charity &&\n isMobile &&\n this.renderReportingLink(isPreview, is_owner, id, true)}\n \n
    \n )\n }\n}\n\nexport default cssModules(CrowdfundingDetailView, styles, {\n allowMultiple: true,\n})\n","import { connect } from 'react-redux'\n\nimport CrowdfundingDetailView from 'components/crowdfunding_detail_view'\nimport { getNewCampaignSelector } from 'redux/selectors/campaign'\nimport { getCategoryDefaultCover, getMainCategory } from 'client/lib/category'\nimport { getStagingHostName } from '@paypalcorp/instance-location'\n\nconst mapStateToProps = (state, ownProps) => {\n const campaign = ownProps.isEdit\n ? ownProps.editedCampaign\n : getNewCampaignSelector(state, ownProps)\n const mainCategory = getMainCategory(campaign.category)\n const defaultCategoryCover = getCategoryDefaultCover(state, mainCategory)\n const countryCode = campaign.countryCode || state.country.country_code // create flow doesnt have countryCode set\n const hostName = [state.deployEnv.isDev, state.deployEnv.isStage].includes(\n true\n )\n ? getStagingHostName()\n : state.geo.paypalDomain\n return {\n campaign,\n countryCode,\n defaultCategoryCover,\n edit: ownProps.isEdit,\n geo: state.geo,\n hostName,\n }\n}\n\nexport default connect(mapStateToProps)(CrowdfundingDetailView)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './standard_dialog.less'\nimport * as dialogStyles from './../dialog/dialog.less'\nimport { Link } from 'react-router'\nimport {\n Dialog,\n Button,\n HeadingText,\n BodyText,\n DeleteIcon,\n FundraiserIcon,\n LogoutIcon,\n} from '@paypalcorp/pp-react'\n\nclass StandardDialog extends React.Component {\n static propTypes = {\n title: PropTypes.string,\n subtitle: PropTypes.string,\n okButtonTitle: PropTypes.string,\n closeButtonTitle: PropTypes.string,\n onOk: PropTypes.func,\n onClose: PropTypes.func,\n onQuit: PropTypes.func,\n isDelete: PropTypes.bool,\n size: PropTypes.string,\n iconName: PropTypes.string,\n }\n icon = name => {\n if (name === 'delete') {\n return \n } else if (name === 'fundraiser') {\n return \n } else if (name === 'logout') {\n return \n } else {\n return ''\n }\n }\n render() {\n const { iconName } = this.props\n const propsToTransfer = { ...this.props }\n delete propsToTransfer.styles\n return (\n \n
    \n
    {this.icon(iconName)}
    \n \n {this.props.title}\n \n {this.props.subtitle}\n {this.props.okButtonTitle &&\n !this.props.isDelete && (\n \n {this.props.okButtonTitle}\n \n )}\n {this.props.okButtonTitle &&\n this.props.isDelete && (\n \n {this.props.okButtonTitle}\n \n )}\n \n {this.props.closeButtonTitle}\n \n
    \n \n )\n }\n}\n\nexport default cssModules(StandardDialog, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\n// This is a React HoC which adds all kinds of utils (as props) that are relevant for a redux-form component\n// Should be wrapped by the redux-form HoC, e.g.:\n// reduxForm(...)(formUtils(MyForm))\nconst formUtils = Component => {\n return class extends React.Component {\n static propTypes = {\n errors: PropTypes.any.isRequired,\n fields: PropTypes.object.isRequired,\n }\n\n anyInactiveFieldsTouchedWithError = () => {\n const { fields, errors } = this.props\n for (const field in fields) {\n if (\n fields[field].touched &&\n errors[field] &&\n errors[field].length &&\n !fields[field].active\n ) {\n return true\n }\n }\n return false\n }\n\n static displayName = `formUtils(${Component.displayName ||\n Component.name ||\n '???'})`\n\n render() {\n const newProps = {\n ...this.props,\n anyInactiveFieldsTouchedWithError: this.anyInactiveFieldsTouchedWithError(),\n }\n return \n }\n }\n}\n\nexport default formUtils\n\nexport const domOnlyProps = ({\n initialValue,\n autofill,\n onUpdate,\n valid,\n invalid,\n dirty,\n pristine,\n active,\n touched,\n visited,\n autofilled,\n error,\n ...domProps\n}) => domProps\n","import { ONE_DAY_IN_MILLISECONDS } from 'shared/shared_consts'\n\nexport function length(field, maxLength, message) {\n return values => {\n if (values[field] && values[field].length > maxLength) {\n return { [field]: [message] }\n }\n return {}\n }\n}\n\nexport function minLength(field, minRequiredLength, message) {\n return values => {\n if (values[field]?.length < minRequiredLength) {\n return { [field]: [message] }\n }\n return {}\n }\n}\n\nexport function required(field, message) {\n return values => {\n const value = values[field]\n if (!value || (typeof value === 'string' && value.match(/^\\s*$/))) {\n return { [field]: [message] }\n } else {\n return {}\n }\n }\n}\n\nexport function regex(field, rx, message) {\n return values => {\n if (!values[field]) {\n return {}\n }\n if (!rx.test(values[field])) {\n return { [field]: [message] }\n }\n return {}\n }\n}\n\nexport function futureDate(field, message) {\n return values => {\n const now = new Date()\n const dateInQuestion = values[field]\n\n // if it's not a date, user is probably still typing, so ignore that\n if (!(dateInQuestion instanceof Date)) {\n return {}\n }\n\n if (dateInQuestion.getTime() < now.getTime()) {\n return { [field]: [message] }\n }\n return {}\n }\n}\n\nexport function futureCreationEndDate(field, message) {\n return values => {\n const now = new Date()\n const dateInQuestion = values[field]\n const dateAtLeast24HrsFromNow = now.getTime() + ONE_DAY_IN_MILLISECONDS\n\n // if it's not a date, user is probably still typing, so ignore that\n if (!(dateInQuestion instanceof Date)) {\n return {}\n }\n\n // this func is used soley for creation end date validation\n // end_date can not be set on current day must be 24hrs in future\n if (dateInQuestion.getTime() < dateAtLeast24HrsFromNow) {\n return { [field]: [message] }\n }\n return {}\n }\n}\n\nexport function atMost(field, value, message) {\n return values => {\n if (values[field] && values[field] > value) {\n return { [field]: [message] }\n }\n return {}\n }\n}\n\nexport function atLeast(field, value, message) {\n return values => {\n if (values[field] && values[field] < value) {\n return { [field]: [message] }\n }\n return {}\n }\n}\n\nfunction mergeErrors(err1, err2) {\n let result = { ...err1 }\n for (const field in err2) {\n // TODO: the `no-extra-parens` rule will be fixed in ESLint 4 to work well with spread operators.\n // eslint-disable-next-line no-extra-parens\n result[field] = [...(result[field] || []), ...(err2[field] || [])]\n }\n\n return result\n}\n\nexport function combine(...validators) {\n return values => {\n let errors = {}\n for (const validator of validators) {\n errors = mergeErrors(errors, validator(values))\n }\n return errors\n }\n}\n\nexport function getFormError(field) {\n let error = field.error\n let hasError = false\n if (error) {\n if (!Array.isArray(error)) {\n error = [error]\n }\n error = error.filter(e => !!e)\n hasError = error.length > 0\n }\n return hasError && field.touched ? error[0] : ''\n}\n","import { DateInput, Calendar } from '@paypalcorp/pp-react'\nimport React, { useState, useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport { endOfDay } from 'shared/helpers/datetime_helpers'\nimport { useIntl } from 'intl'\n\nDateInputBox.propTypes = {\n onBlur: PropTypes.func,\n disabled: PropTypes.boolean,\n initialValue: PropTypes.string,\n timeZone: PropTypes.string,\n errorText: PropTypes.any,\n label: PropTypes.string,\n dataNemo: PropTypes.string,\n dataTestId: PropTypes.string,\n isCalenderEnable: PropTypes.boolean,\n id: PropTypes.string,\n name: PropTypes.string,\n useEndOfDay: PropTypes.boolean,\n}\n\nfunction DateInputBox(props) {\n const initialValue = props.initialValue\n const [selectedDate, setSelectedDate] = useState(\n new Date(\n initialValue.getFullYear(),\n initialValue.getMonth(),\n initialValue.getDate()\n )\n )\n const [isCalendarVisible, setCalenderVisible] = useState()\n const { formatMessage } = useIntl()\n\n const handleBlur = evt => {\n setCalenderVisible(false)\n props.onBlur(selectedDate)\n }\n\n const handleSelection = date => {\n setCalenderVisible(false)\n\n if (props.useEndOfDay) {\n setSelectedDate(endOfDay(date))\n } else {\n setSelectedDate(date)\n }\n }\n const handleFocus = e => {\n //To Do - Need to find better solution\n document.getElementById('formContent').style.overflow = 'visible'\n }\n\n useEffect(\n () => {\n props.onBlur(selectedDate)\n },\n [selectedDate]\n )\n\n const calendarElm = (\n \n )\n\n return (\n \n )\n}\n\nexport default DateInputBox\n","import { CurrencyInput } from '@paypalcorp/pp-react'\nimport React from 'react'\nimport PropTypes from 'prop-types'\n\nCurrencyInputBox.propTypes = {\n onBlur: PropTypes.func,\n disabled: PropTypes.boolean,\n currencyCode: PropTypes.string,\n errorText: PropTypes.any,\n initialValue: PropTypes.string,\n label: PropTypes.string,\n disableCents: PropTypes.string,\n value: PropTypes.string,\n dataNemo: PropTypes.string,\n dataTestId: PropTypes.string,\n id: PropTypes.string,\n isControlledComponent: PropTypes.boolean,\n helperText: PropTypes.string,\n}\n\nfunction CurrencyInputBox(props) {\n const { isControlledComponent = true } = props\n const onAccept = (value, unmaskedValue, typedValue) => {\n props.onBlur(typedValue)\n }\n\n const commonProps = isControlledComponent\n ? { value: props.value.toString() }\n : {}\n\n const maskOptions = {\n scale: props.disableCents ? 0 : 2,\n }\n\n return (\n \n )\n}\n\nexport default CurrencyInputBox\n","import React from 'react'\nimport { useIntl, getDefaultCurrencyCode } from 'intl'\nimport PropTypes from 'prop-types'\nimport styles from '../edit_main_cf.less'\nimport cssModules from 'react-css-modules'\n\nimport { domOnlyProps } from 'lib/form_utils'\nimport { getFormError } from 'lib/validators'\n\nimport { TextInput } from '@paypalcorp/pp-react'\nimport DateInputBox from 'components/common/date_input_box'\nimport CurrencyInputBox from 'components/common/currency_input'\n\nconst PrivateEditForm = ({\n campaign,\n currency,\n endDate,\n formattedMaxGoalAmount,\n goalAmount,\n poolName,\n}) => {\n const { formatMessage } = useIntl()\n return (\n <>\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n \n )\n}\n\nPrivateEditForm.propTypes = {\n campaign: PropTypes.object.isRequired,\n currency: PropTypes.string,\n endDate: PropTypes.string.isRequired,\n formattedMaxGoalAmount: PropTypes.string.isRequired,\n goalAmount: PropTypes.string.isRequired,\n poolName: PropTypes.string.isRequired,\n}\n\nPrivateEditForm.defaultProps = {\n currency: getDefaultCurrencyCode(),\n}\n\nexport default cssModules(PrivateEditForm, styles)\n","import { getStore } from 'client/lib/store'\n\nimport { SUBSCRIPTION_TYPES } from 'shared/shared_consts'\n\nconst store = getStore()\n\nexport const CFPB_STRING_ID_BASE_EXTENSION = 'cfpb'\n\nexport const CFPB_STRING_ID_EXTENSIONS = Object.assign(\n {},\n ...Object.entries(SUBSCRIPTION_TYPES).map(\n ([productSubscriptionKey, productSubscription]) => {\n return {\n [productSubscription]: productSubscription.toLowerCase(),\n }\n }\n )\n)\n\n/**\n * Converts i18n stringId key into the CFPB equivalent (when applicable)\n *\n * Any product subscription type passed from the server identifies\n * that the current user is under CFPB jurisdiction and should see CFPB\n * dynamic content, otherwise the product subscription type will be\n * undefined and the user should NOT see CFPB dynamic content\n *\n * For accounts that should see CFPB dynamic content the account product\n * subscription type determines the specific CFPB translation\n *\n * @param {string} stringId - i18n stringId key\n * @returns {string} - if the current user is under CFPB jurisdiction then\n * an i18n stringId key that has been transformed\n * into the CFPB equivalent, otherwise the original\n * i18n stringId key\n */\nexport function toCFPBStringId(stringId) {\n const productSubscriptions = Object.entries(SUBSCRIPTION_TYPES).map(\n ([productSubscriptionKey, productSubscription]) => productSubscription\n )\n\n const productSubscription =\n store.current_user && store.current_user.productSubscription\n\n if (productSubscriptions.includes(productSubscription)) {\n return `${stringId}_${CFPB_STRING_ID_BASE_EXTENSION}_${\n CFPB_STRING_ID_EXTENSIONS[productSubscription]\n }`\n } else {\n return stringId\n }\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport { getI18n, formatCurrency } from 'intl'\nimport styles from './transfer_review_box.less'\nimport { toCFPBStringId } from 'client/lib/cfpb'\nimport { BodyText, CaptionText } from '@paypalcorp/pp-react'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\n\nconst i18n = getI18n('components/edit_glimpse/transfer_review')\n\nclass TransferReviewBox extends React.Component {\n static propTypes = {\n title: PropTypes.string.isRequired,\n amount: PropTypes.number,\n currency: PropTypes.string.isRequired,\n showAmount: PropTypes.bool,\n showFrom: PropTypes.bool,\n worldReady: PropTypes.Object,\n }\n\n static defaultProps = { showAmount: true }\n\n render() {\n return (\n
    \n {this.props.showAmount && (\n
    \n \n {i18n('transfer_review.amount')}\n \n \n {formatCurrency({\n value: this.props.amount,\n currencyCode: this.props.currency,\n additionalConfig: {},\n worldReady: this.props.worldReady,\n })}\n \n
    \n )}\n \n {i18n('transfer_review.to')}\n \n {i18n(toCFPBStringId('transfer_review.balance'))}\n \n {i18n('transfer_review.from')}\n \n {this.props.title}\n
    \n )\n }\n}\n\nexport default injectWorldReady(cssModules(TransferReviewBox, styles))\n","import TransferReviewBox from './transfer_review_box'\nimport { connect } from 'react-redux'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n return {\n title: campaign.title,\n currency: campaign.currency,\n amount: props.amount || campaign.moneybox_amount,\n }\n}\n\nexport default connect(mapStateToProps)(TransferReviewBox)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport TransferReviewBox from '../transfer_review_box'\nimport styles from './delete_review.less'\nimport { Message } from '@paypalcorp/worldready-react'\n\nconst DeleteReview = ({ onDelete, campaignId }) => {\n return (\n
    \n
    \n \n
    \n \n \n \n \n
    \n )\n}\n\nDeleteReview.propTypes = {\n campaignId: PropTypes.string.isRequired,\n onDelete: PropTypes.func.isRequired,\n}\n\nexport default cssModules(DeleteReview, styles)\n","import React, { useState } from 'react'\nimport { Button, DeleteIcon, Link } from '@paypalcorp/pp-react'\nimport { trackClick, trackImpression } from 'lib/fpti_analytics'\nimport { useIntl } from 'intl'\nimport StandardDialog from 'components/common/standard_dialog'\nimport { Message } from '@paypalcorp/worldready-react'\nimport PropTypes from 'prop-types'\n\nconst DeleteFundraiser = ({\n campaign,\n showDeleteReviewModal,\n onDeleteClick,\n charity,\n}) => {\n const [showDeleteDialog, setShowDeleteDialog] = useState()\n const { formatMessage } = useIntl()\n\n const handledeleteDialogClose = () => {\n trackEvents('dw_giving_delete_fundraiser_cancel_pressed')\n setShowDeleteDialog(false)\n }\n\n const handleDelete = () => {\n setShowDeleteDialog(true)\n trackEvents('dw_giving_edit_fundraiser_delete_pressed')\n trackImpression({\n event_name: 'dw_giving_delete_fundraiser_screen_shown',\n })\n }\n\n const trackEvents = eventName => {\n trackClick({\n clickName: eventName,\n data: {\n event_name: eventName,\n },\n })\n }\n\n const onOkHandler = event => {\n if (campaign.money_box_amount) {\n showDeleteReviewModal()\n } else {\n setShowDeleteDialog(false)\n onDeleteClick()\n }\n }\n\n return (\n <>\n {showDeleteDialog && (\n \n )}\n \n \n \n \n )\n}\n\nDeleteFundraiser.propTypes = {\n campaign: PropTypes.object,\n charity: PropTypes.object,\n showDeleteReviewModal: PropTypes.func,\n onDeleteClick: PropTypes.func,\n}\n\nexport default DeleteFundraiser\n","import React from 'react'\nimport { useIntl, getDefaultCurrencyCode } from 'intl'\nimport PropTypes from 'prop-types'\nimport styles from '../edit_main_cf.less'\nimport cssModules from 'react-css-modules'\nimport { domOnlyProps } from 'lib/form_utils'\nimport { getFormError } from 'lib/validators'\nimport { TextInput } from '@paypalcorp/pp-react'\nimport DateInputBox from 'components/common/date_input_box'\nimport CurrencyInputBox from 'components/common/currency_input'\nimport { POOL_TYPE } from 'shared/shared_consts'\n\nconst PersonalOrCharityEdit = props => {\n const { formatMessage } = useIntl()\n const {\n poolName,\n goalAmount,\n endDate,\n campaign,\n currency,\n timeZone,\n formattedMaxGoalAmount,\n } = props\n\n return (\n <>\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n \n )\n}\n\nPersonalOrCharityEdit.propTypes = {\n campaign: PropTypes.object.isRequired,\n currency: PropTypes.string,\n formattedMaxGoalAmount: PropTypes.string.isRequired,\n timeZone: PropTypes.string,\n endDate: PropTypes.object.isRequired,\n goalAmount: PropTypes.string.isRequired,\n poolName: PropTypes.string.isRequired,\n}\n\nexport default cssModules(PersonalOrCharityEdit, styles)\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport CharityCard from 'components/common/charity_card'\nimport CrowdFundingCoverImage from 'components/crowdfunding_cover_image'\nimport CrowdFundingPreview from 'components/pages/crowdfunding/crowdfunding_preview'\nimport StandardDialog from 'components/common/standard_dialog'\nimport {\n DESCRIPTION_ROWS,\n CROWDFUNDING_DESCRIPTION_LENGTH,\n} from 'shared/lengths'\nimport styles from './edit_main_cf.less'\nimport { appendPath } from 'lib/route_utils'\nimport { domOnlyProps } from 'lib/form_utils'\nimport { getFormError } from 'lib/validators'\nimport {\n HeadingText,\n Dialog,\n Button,\n DropdownMenu,\n TextArea,\n BodyText,\n} from '@paypalcorp/pp-react'\nimport { trackClick, trackImpression } from 'lib/fpti_analytics'\nimport _get from 'lodash/get'\nimport {\n INVALID_IMAGE,\n POOL_TYPE,\n TOAST_NOTIFICATIONS,\n} from 'shared/shared_consts'\nimport { hoursFromToday } from 'shared/helpers/datetime_helpers'\nimport PrivateEditForm from './partials/privateEditForm'\nimport { hubPageUrl } from '../../../../lib/campaign_url'\nimport DeleteReview from '../delete_error/delete_review'\nimport DeleteFundraiser from './partials/delete_fundraiser'\nimport { useIntl } from 'intl'\nimport PersonalOrCharityEdit from './partials/personal_or_charity_edit'\nimport { Message } from '@paypalcorp/worldready-react'\n\nconst EditMain = props => {\n const { formatMessage, formatDate } = useIntl()\n\n const {\n fields: {\n poolName,\n goalAmount,\n endDate,\n category,\n description,\n anyInactiveFieldsTouchedWithError,\n backgroundImage,\n backgroundImageFilename,\n backgroundPan,\n gradientColor,\n },\n charity,\n formattedMaxGoalAmount,\n timeZone,\n currency,\n showCategoryInput,\n campaign: { category_image: categoryImage },\n campaignId,\n handleSubmit,\n } = props\n\n const [isOpen, setIsOpen] = useState(false)\n const [editedCampagin, setEditedCampagin] = useState(props.campaign)\n const [showBackDialog, setShowBackDialog] = useState(false)\n const [showDeleteReview, setShowDeleteReview] = useState(false)\n\n const handleModalClick = e => {\n e.preventDefault()\n trackEvents('dw_giving_edit_fundraiser_preview_pressed')\n setData()\n }\n\n const handleModalClose = () => {\n setIsOpen(false)\n trackClick({\n clickName: 'dw_giving_fundraiser_preview_dismiss_pressed',\n data: {\n event_name: 'dw_giving_fundraiser_preview_dismiss_pressed',\n dismiss_method: 'close',\n },\n })\n trackEvents('dw_giving_fundraiser_preview_dismiss_pressed')\n }\n\n const setData = () => {\n const newCampaign = Object.assign(editedCampagin, {\n goal: goalAmount.value || 0,\n category: category.value,\n description: description.value,\n end_date: endDate.value,\n title: poolName.value,\n event_name: poolName.value,\n gradient_color: gradientColor.value,\n background_image: backgroundImage.value,\n background_image_filename: backgroundImageFilename.value,\n background_pan: backgroundPan.value,\n })\n setEditedCampagin(newCampaign)\n setIsOpen(true)\n trackImpression({\n event_name: 'dw_giving_fundraiser_preview_screen_shown',\n })\n }\n\n const handleEditSubmit = () => {\n const saveEvent = showBackDialog\n ? 'dw_giving_quit_editing_fundraiser_save_pressed'\n : 'dw_giving_edit_fundraiser_save_pressed'\n trackEvents(saveEvent)\n setShowBackDialog(false)\n\n const { value, initialValue } = backgroundImage || {}\n const request = {\n poolName: poolName.value,\n endDate: endDate.value,\n goalAmount: parseInt(goalAmount.value || 0),\n category: category.value,\n description: description.value,\n gradientColor: gradientColor.value,\n backgroundImage: value,\n backgroundImageFilename:\n value === initialValue ? '' : backgroundImageFilename.value,\n backgroundPan: backgroundPan.value,\n isExpired: hoursFromToday(new Date(props.campaign.end_date)) <= 0,\n }\n\n return props\n .onSave(request)\n .then(() => {\n editBack()\n props.onToggleToast(TOAST_NOTIFICATIONS.EDIT_SUCCESS)\n })\n .catch(err => {\n if (err.error === INVALID_IMAGE) {\n props.router.push({\n pathname: appendPath(location.pathname, 'manage/error'),\n })\n return\n }\n props.router.push({\n pathname: appendPath(location.pathname, 'error'),\n state: { updateData: err.updateData },\n })\n })\n }\n\n const editBack = () => {\n const { params: { hideBack = false } = {} } = props.router\n if (hideBack) {\n props.router.push({\n pathname: '/pools',\n state: { reloadTransactions: false, campaignId: props.campaignId },\n })\n } else {\n props.router.goBack()\n }\n }\n\n const handleDialogClose = () => setShowBackDialog(false)\n\n const handleDeleteOk = () => {\n trackEvents('dw_giving_delete_fundraiser_confirm_pressed')\n props\n .onDelete()\n .then(() => {\n location.href = hubPageUrl()\n })\n .catch(err => {\n props.router.push({\n pathname: appendPath(location.pathname, 'delete/error'),\n state: { updateData: err },\n })\n })\n }\n\n const handleQuit = () => {\n trackEvents('dw_giving_quit_editing_fundraiser_without_save_pressed')\n editBack()\n setShowBackDialog(false)\n }\n\n const trackEvents = eventName => {\n trackClick({\n clickName: eventName,\n data: {\n event_name: eventName,\n },\n })\n }\n\n if (showDeleteReview) {\n return (\n \n )\n }\n\n return (\n
    \n {showBackDialog && (\n \n )}\n\n \n \n \n {charity && (\n <>\n
    \n \n
    \n \n
    \n \n
    \n \n )}\n \n \n \n {props.ended && (\n
    \n \n
    \n )}\n\n {props.campaign.type === POOL_TYPE.PRIVATE ? (\n \n ) : (\n \n )}\n \n \n \n {showCategoryInput && (\n
    \n category.onChange(event.target.value)}\n data-testid=\"edit-category\"\n disabled={!props.campaign.can_chip_in}\n />\n
    \n )}\n
    \n
    \n \n
    \n
    \n {!props.isAndroid && (\n <>\n \n \n \n
    \n \n
    \n \n )}\n {props.showDelete && (\n setShowDeleteReview(true)}\n charity={charity}\n campaign={props.campaign}\n date-testid=\"edit_main_cf-delete-link\"\n />\n )}\n \n \n \n \n \n \n \n \n \n }\n >\n \n \n \n )\n}\n\nEditMain.propTypes = {\n fields: PropTypes.object.isRequired,\n ended: PropTypes.bool,\n showDelete: PropTypes.bool,\n location: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n onSave: PropTypes.func,\n handleSubmit: PropTypes.func,\n isAndroid: PropTypes.bool,\n category: PropTypes.string,\n categoryList: PropTypes.array,\n router: PropTypes.object,\n campaign: PropTypes.object,\n dirty: PropTypes.bool,\n formattedMaxGoalAmount: PropTypes.string,\n charity: PropTypes.object,\n onToggleToast: PropTypes.func,\n timeZone: PropTypes.string,\n currency: PropTypes.string,\n campaignId: PropTypes.string,\n showCategoryInput: PropTypes.boolean,\n onDelete: PropTypes.func,\n worldReady: PropTypes.object,\n}\n\nexport default cssModules(EditMain, styles)\n","/* istanbul ignore file */\nexport const TITLE_LENGTH = 70\nexport const DESCRIPTION_LENGTH = 2000\nexport const CROWDFUNDING_DESCRIPTION_LENGTH = 2000\nexport const CROWDFUNDING_DESCRIPTION_MIN_LENGTH = 30\nexport const NOTE_LENGTH = 400\n\nexport const DESCRIPTION_ROWS = 10\nexport const SEND_NOTE_ROWS = 3\n\nexport const SHARE_MESSAGE_LENGTH = 250\n","import { getJSONFromScript } from 'lib/server_params'\nimport { parseDate } from 'intl'\n\nexport function dateFormatValidator(field, message) {\n return values => {\n if (!(values[field] instanceof Date)) {\n if (!values[field]) {\n return {}\n }\n\n const dateObj = parseDate(values[field], {\n style: 'yMMdd',\n })\n\n if (dateObj.errors) {\n return { [field]: [message] }\n }\n return {}\n }\n\n if (isNaN(values[field].valueOf())) {\n return { [field]: [message] }\n }\n return {}\n }\n}\n\nexport function maxDaysValidator(\n fieldName,\n start = new Date(),\n maxDays,\n message\n) {\n return values => {\n const START_DATE_BUFFER = 0\n const dateInQuestion = values[fieldName]\n const maxTime = (START_DATE_BUFFER + maxDays) * 86400000\n // if it's not a date, user is probably still typing, so ignore that\n if (!(dateInQuestion instanceof Date)) {\n return {}\n }\n\n if (dateInQuestion.getTime() - start.getTime() > maxTime) {\n return { [fieldName]: [message] }\n }\n return {}\n }\n}\n\nexport function endDateValidators(fieldName, message) {\n const validators = []\n\n const deviceInfo = getJSONFromScript('store').device_info\n if (!deviceInfo.isMobile) {\n validators.push(dateFormatValidator(fieldName, message))\n }\n\n return validators\n}\n","import {\n AMOUNT_TYPES,\n CROWDFUNDING_CAMPAIGN_MAX_DAYS,\n POOL_TYPE,\n} from 'shared/shared_consts'\nimport {\n CROWDFUNDING_DESCRIPTION_LENGTH,\n CROWDFUNDING_DESCRIPTION_MIN_LENGTH,\n TITLE_LENGTH,\n} from 'shared/lengths'\nimport EditMain from './edit_main_cf'\nimport {\n getTranslatedCategoryList,\n getCategoryLabel,\n filterDepreciatedCategory,\n sortCategory,\n} from 'lib/category'\nimport {\n combine,\n required,\n atMost,\n atLeast,\n length,\n futureDate,\n minLength,\n} from 'lib/validators'\nimport { endDateValidators, maxDaysValidator } from 'lib/end_date_validators'\nimport { reduxForm } from 'redux-form'\nimport { deleteRemotely, updateRemotely } from 'redux/modules/campaign'\nimport formUtils from 'lib/form_utils'\nimport { getCampaignSelector, isGNSelector } from 'redux/selectors/campaign'\nimport { show } from 'redux/modules/toast_notification'\nimport { getMinMaxAmount } from 'shared/helpers/campaign'\nimport { formatMessage, formatCurrency, getTimeZone } from 'intl'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\n\nfunction stringifyContributionPrefs(campaign, worldReady) {\n const amount = formatCurrency({\n value: campaign.amount,\n currencyCode: campaign.currency,\n additionalConfig: {},\n worldReady,\n })\n\n switch (campaign.amount_type) {\n case AMOUNT_TYPES.any:\n return formatMessage(worldReady, 'components.edit_glimpse.edit_main.any')\n case AMOUNT_TYPES.at_least:\n return formatMessage(\n worldReady,\n 'components.edit_glimpse.edit_main.at_least',\n {\n amount,\n }\n )\n case AMOUNT_TYPES.exactly:\n return formatMessage(\n worldReady,\n 'components.edit_glimpse.edit_main.exactly',\n {\n amount,\n }\n )\n default:\n return 'UNKNOWN'\n }\n}\n\nfunction stringifyPublicTrackingPrefs(campaign, worldReady) {\n const octal =\n (campaign.share_progress ? 1 : 0) +\n (campaign.share_contributors ? 2 : 0) +\n (campaign.share_progress && campaign.share_contributions ? 4 : 0)\n\n return formatMessage(\n worldReady,\n `components.edit_glimpse.edit_main.tracking_prefs_${octal}`\n )\n}\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n const startDate = campaign.start_date\n ? new Date(campaign.start_date)\n : new Date()\n const isNewCategoryEnabled = state.flags.enable_new_category\n const charity = campaign.charity\n const isTitleInfoAndMinDescriptionEnabled =\n state.flags.isTitleInfoAndMinDescriptionEnabled &&\n campaign.type === POOL_TYPE.PERSONAL\n\n const amountCommons = {\n value: campaign.amount,\n currencyCode: campaign.currency,\n additionalConfig: {\n removeTrailingZeros: true,\n },\n worldReady: props.worldReady,\n }\n\n let MIN_AMOUNT\n let MAX_AMOUNT\n let formattedMaxGoalAmount\n let formattedMinGoalAmount = formatCurrency({\n value: state.flags.min_amount_donation,\n ...amountCommons,\n })\n\n /*\n * Checking elmo for new flow and discoverable type for private fundraiser\n * TODO: DTRAINIER-5332 - Instead of relying on ELMO we should pass the type\n\t * and have this populated and passed in the object\n */\n\n const isPrivateFundraiser = campaign.type === POOL_TYPE.PRIVATE\n\n let categoryList = getTranslatedCategoryList(state)\n\n categoryList = filterDepreciatedCategory(categoryList, isNewCategoryEnabled)\n categoryList = sortCategory(categoryList)\n\n let category = campaign?.category\n\n let validators = [\n required(\n 'description',\n formatMessage(\n props.worldReady,\n 'components.edit_glimpse.edit_main.description_required'\n )\n ),\n length(\n 'description',\n CROWDFUNDING_DESCRIPTION_LENGTH,\n formatMessage(\n props.worldReady,\n 'components.edit_glimpse.edit_main.description_too_long',\n {\n maxLength: CROWDFUNDING_DESCRIPTION_LENGTH,\n }\n )\n ),\n length(\n 'poolName',\n TITLE_LENGTH,\n formatMessage(\n props.worldReady,\n 'components.edit_glimpse.edit_main.pool_name_too_long'\n )\n ),\n required(\n 'poolName',\n formatMessage(\n props.worldReady,\n 'components.edit_glimpse.edit_main.pool_name_is_required_cf',\n { maxCharLength: TITLE_LENGTH }\n )\n ),\n required(\n 'endDate',\n formatMessage(\n props.worldReady,\n 'components.edit_glimpse.edit_end_date.end_date_required_cf'\n )\n ),\n ...endDateValidators(\n 'endDate',\n formatMessage(\n props.worldReady,\n 'components.edit_glimpse.edit_end_date.invalid_date',\n {\n maxdays: CROWDFUNDING_CAMPAIGN_MAX_DAYS,\n }\n )\n ),\n maxDaysValidator(\n 'endDate',\n startDate,\n CROWDFUNDING_CAMPAIGN_MAX_DAYS,\n formatMessage(\n props.worldReady,\n 'components.edit_glimpse.edit_end_date.invalid_date_limit_cf',\n {\n maxdays: CROWDFUNDING_CAMPAIGN_MAX_DAYS,\n }\n )\n ),\n ]\n\n if (campaign && campaign.can_chip_in) {\n validators.push(\n futureDate(\n 'endDate',\n formatMessage(\n props.worldReady,\n 'components.edit_glimpse.edit_end_date.date_must_be_future'\n )\n )\n )\n }\n\n if (isTitleInfoAndMinDescriptionEnabled) {\n validators.push(\n minLength(\n 'description',\n CROWDFUNDING_DESCRIPTION_MIN_LENGTH,\n formatMessage(\n props.worldReady,\n `components.pages.crowdfunding.pool_story.description_too_short`,\n {\n minLength: CROWDFUNDING_DESCRIPTION_MIN_LENGTH,\n }\n )\n )\n )\n }\n\n if (isGNSelector(state, props)) {\n const minMaxAmount = getMinMaxAmount(campaign)\n MIN_AMOUNT = minMaxAmount.MIN_AMOUNT\n MAX_AMOUNT = minMaxAmount.MAX_AMOUNT\n\n formattedMaxGoalAmount = formatCurrency({\n value: MAX_AMOUNT,\n ...amountCommons,\n })\n\n formattedMinGoalAmount = formatCurrency({\n value: MIN_AMOUNT,\n ...amountCommons,\n })\n\n validators.push(\n atMost(\n 'goalAmount',\n MAX_AMOUNT,\n formatMessage(\n props.worldReady,\n 'components.edit_glimpse.edit_main.goal_amount_invalid',\n {\n amount: formattedMaxGoalAmount,\n }\n )\n )\n )\n }\n\n // For PRIVATE fundraisers goal is expected to be optional\n // and with no minimum\n if (campaign.type !== POOL_TYPE.PRIVATE) {\n validators.push(\n required(\n 'goalAmount',\n formatMessage(\n props.worldReady,\n 'components.edit_glimpse.edit_main.goal_amount_required_cf',\n { amount: formattedMinGoalAmount }\n )\n ),\n atLeast(\n 'goalAmount',\n MIN_AMOUNT || state.flags.min_amount_donation,\n formatMessage(\n props.worldReady,\n 'components.edit_glimpse.edit_main.goal_amount_invalid_min',\n {\n amount: formattedMinGoalAmount,\n }\n )\n )\n )\n }\n\n return {\n validate: combine(...validators),\n initialValues: {\n poolName: campaign.title,\n goalAmount: campaign.goal\n ? campaign.goal && campaign.goal.toString()\n : '',\n endDate: campaign.end_date ? new Date(campaign.end_date) : undefined,\n category: category,\n description: campaign.description,\n backgroundImage: campaign.background_image,\n backgroundPan: campaign.background_pan,\n backgroundImageFilename: campaign.background_image_filename,\n gradientColor: campaign.gradient_color,\n },\n ended: !campaign.can_chip_in,\n contribPrefs: stringifyContributionPrefs(campaign, props.worldReady),\n tracking: stringifyPublicTrackingPrefs(campaign, props.worldReady),\n currency: campaign.currency,\n showDelete: !campaign.preview,\n categoryName: getCategoryLabel(state, campaign.category),\n isAndroid:\n state.device_info.isMobile && state.device_info.deviceOS === 'Android',\n maxDays: CROWDFUNDING_CAMPAIGN_MAX_DAYS,\n maxGoalAmount: MAX_AMOUNT,\n categoryList: categoryList,\n campaign: campaign,\n charity: charity,\n formattedMaxGoalAmount: formattedMaxGoalAmount,\n // use timezone of user session for ppui dateInput & calendar to display\n // correct date after selection\n timeZone: getTimeZone(),\n // Show category field when there is not charity or private fundraiser.\n showCategoryInput: !(charity || isPrivateFundraiser),\n isTitleInfoAndMinDescriptionEnabled,\n }\n}\n\nconst mapDispatchToProps = (dispatch, { campaignId }) => {\n return {\n onSave(formValues) {\n // Patch call when the fundraiser is expired needs to only send \"description\"\n const data = formValues.isExpired\n ? { description: formValues.description }\n : {\n goal: formValues.goalAmount || 0,\n category: formValues.category,\n description: formValues.description,\n title: formValues.poolName,\n end_date: formValues.endDate,\n gradient_color: formValues.gradientColor,\n background_image: formValues.backgroundImage || '',\n background_image_filename: formValues.backgroundImageFilename,\n background_pan: formValues.backgroundPan,\n }\n return dispatch(updateRemotely(campaignId, data))\n },\n onToggleToast(toastId) {\n dispatch(show(toastId))\n },\n onDelete() {\n return dispatch(deleteRemotely(campaignId))\n },\n }\n}\n\nexport default injectWorldReady(\n reduxForm(\n {\n form: 'edit',\n fields: [\n 'poolName',\n 'goalAmount',\n 'endDate',\n 'category',\n 'description',\n 'backgroundImage',\n 'backgroundImageFilename',\n 'backgroundPan',\n 'gradientColor',\n ],\n },\n mapStateToProps,\n mapDispatchToProps\n )(formUtils(EditMain))\n)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { getI18n } from 'intl'\nimport StandardError from 'components/common/standard_error'\nimport {\n UNDER_REVIEW_ERROR,\n INVALID_IMAGE,\n POOLS_CAMPAIGN_TYPES,\n GN_DISCLAIMERS,\n} from 'shared/shared_consts'\nimport { trackImpression } from 'lib/fpti_analytics'\nimport { Button } from '@paypalcorp/pp-react'\n\nconst i18n = getI18n('components/edit_glimpse/edit_error')\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\n\nclass EditError extends React.Component {\n static propTypes = {\n fieldNames: PropTypes.arrayOf(PropTypes.string),\n onTryAgain: PropTypes.func,\n error: PropTypes.object,\n campaignType: PropTypes.string,\n countryCode: PropTypes.string,\n }\n\n render() {\n const error = this.props.error && this.props.error.error\n const errorCodeMappping = {\n UNDER_REVIEW_ERROR: 400,\n INVALID_IMAGE: 403,\n }\n\n trackImpression({\n event_name: 'dw_giving_failed_customer_interaction_occurred',\n event_type: 'ac',\n error_desc: error,\n error_code:\n error && errorCodeMappping[error] ? errorCodeMappping[error] : 500,\n screen: 'edit_fundraiser',\n })\n const { countryCode } = this.props\n\n if (error === UNDER_REVIEW_ERROR) {\n return (\n \n )\n } else if (error === INVALID_IMAGE) {\n const isCrowdfunding = this.props.campaignType === CROWD_FUNDING\n const title = isCrowdfunding\n ? 'error_account_restricted_title'\n : 'account_resrticted_title'\n const subTitle = isCrowdfunding\n ? 'error_account_restricted_sub_title'\n : 'account_resrticted_subtitle'\n return (\n \n {i18n('error_account_restricted_button')}\n \n ) : null\n }\n iconName=\"passkey\"\n />\n )\n }\n return (\n \n )\n }\n}\n\nexport default EditError\n","import EditError from './edit_error'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router'\nimport { updateRemotely } from 'redux/modules/campaign'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n return {\n error: campaign.err,\n campaignType: campaign.campaign_type,\n countryCode: state.country.country_code,\n }\n}\n\nconst mapDispatchToProps = (dispatch, props) => {\n return {\n onTryAgain() {\n dispatch(\n updateRemotely(props.params.campaignId, props.location.state.updateData)\n )\n .then(() => {\n props.router.go(-2) // 1st back - to edit page, second back - to edit_main\n })\n .catch(err => {\n // Do nothing, because we're already in the error page\n console.error(err) // eslint-disable-line no-console\n })\n },\n }\n}\n\nexport default withRouter(\n connect(\n mapStateToProps,\n mapDispatchToProps\n )(EditError)\n)\n","export function sendEnsightenEvent(eventName, attempts = 3) {\n if (\n window.Bootstrapper &&\n window.Bootstrapper.ensEvent &&\n typeof window.Bootstrapper.ensEvent.trigger === 'function'\n ) {\n window.Bootstrapper.ensEvent.trigger(eventName)\n } else if (attempts > 0) {\n // wait for it to load maybe? it's a disgusting heuristic, but it works\n setTimeout(() => {\n sendEnsightenEvent(eventName, attempts - 1)\n }, 1250)\n }\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './pledge.less'\nimport CurrencyInputBox from 'components/common/currency_input'\nimport { routerShape } from 'react-router/lib/PropTypes'\nimport { sendEnsightenEvent } from 'lib/ensighten_analytics'\nimport { trackClick } from 'lib/fpti_analytics'\nimport { HeadingText, Button } from '@paypalcorp/pp-react'\nimport { getFormError } from 'lib/validators'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { useIntl, getDefaultCurrencyCode } from 'intl'\n\nconst Pledge = props => {\n const {\n router,\n currency,\n onPledge,\n minAmount,\n handleSubmit,\n campaignTitle,\n fields: { pledge },\n } = props\n\n const { formatMessage } = useIntl()\n\n const postPledge = formValues => {\n const { pathname } = router.location\n const nextPathname = `${pathname}/complete`\n router.push({\n pathname: `${nextPathname}`,\n state: {\n params: {\n currency,\n campaignTitle,\n pledge: formValues.pledge,\n },\n },\n })\n }\n\n const handleOnSubmit = formValues => {\n sendEnsightenEvent('MoneyPoolPledgeFin')\n trackClick({\n clickName: 'dw_giving_fundraiser_pledge_confirm_pressed',\n data: {\n event_name: 'dw_giving_fundraiser_pledge_confirm_pressed',\n amount: formValues && formValues.pledge,\n currency,\n },\n })\n return onPledge(formValues).then(() => postPledge(formValues))\n }\n\n return (\n
    \n \n \n \n\n \n }\n dataTestId=\"pledge__currency-input\"\n />\n\n
    \n \n
    \n \n )\n}\n\nPledge.propTypes = {\n fields: PropTypes.object.isRequired,\n onPledge: PropTypes.func,\n currency: PropTypes.string,\n handleSubmit: PropTypes.func,\n router: routerShape.isRequired,\n minAmount: PropTypes.number,\n campaignTitle: PropTypes.string,\n}\n\nexport default cssModules(Pledge, styles)\n","import Pledge from './pledge'\nimport { reduxForm } from 'redux-form'\nimport { updateRemotely } from 'redux/modules/campaign'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n\n return {\n currency: campaign.currency,\n maxAmount: campaign.max_amount,\n initialValues: {\n pledge: campaign.pledge || 0,\n },\n minAmount: state.flags.min_amount_donation,\n campaignTitle: campaign.title,\n }\n}\n\nconst mapDispatchToProps = (dispatch, { campaignId }) => {\n return {\n onPledge(fields) {\n return dispatch(\n updateRemotely(campaignId, { pledge: fields.pledge || 0 })\n )\n },\n }\n}\n\nexport default reduxForm(\n {\n form: 'pledge',\n fields: ['pledge'],\n destroyOnUnmount: false,\n touchOnChange: false,\n touchOnBlur: true,\n },\n mapStateToProps,\n mapDispatchToProps\n)(Pledge)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './../pledge.less'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { useIntl } from 'intl'\nimport { Button, HeadingText } from '@paypalcorp/pp-react'\nimport { Link as RouterLink } from 'react-router'\nimport { trackClick } from 'lib/fpti_analytics'\n\nconst propTypes = {\n location: PropTypes.object,\n router: PropTypes.object,\n geo: PropTypes.object,\n campaignId: PropTypes.string,\n}\nconst PledgeSuccess = props => {\n const nextPathname = '/pools'\n const { params } = props.location.state\n const { currency, campaignTitle, pledge } = params || {}\n const { formatCurrency } = useIntl()\n const formattedPledgeAmount = formatCurrency(pledge, currency)\n const { cdnHost } = props.geo\n\n if (!params) {\n return null\n }\n return (\n
    \n \n \n \n \n\n
    \n {\n trackClick({\n clickName: 'dw_giving_pledge_confirmation_dismiss_pressed',\n data: {\n event_name: 'dw_giving_pledge_confirmation_dismiss_pressed',\n dismiss_method: 'quit',\n },\n })\n }}\n data-testid=\"pledge-success-done-button\"\n >\n \n \n
    \n
    \n )\n}\n\nPledgeSuccess.propTypes = propTypes\n\nexport default cssModules(PledgeSuccess, styles)\n","import { connect } from 'react-redux'\nimport PledgeSuccess from './pledge_success'\n\nexport default connect(state => ({\n geo: state.geo,\n}))(PledgeSuccess)\n","import { USER_AGREEMENT_LINK_COUNTRIES } from 'shared/shared_consts'\n\nexport function getMoneyPoolTNCLink(paypalDomain, countryCode) {\n const baseUrl = `https://${paypalDomain}/${countryCode}/webapps/mpp/ua/`\n if (USER_AGREEMENT_LINK_COUNTRIES.indexOf(countryCode) > -1) {\n return `${baseUrl}useragreement-full`\n } else {\n return `${baseUrl}moneypool-tnc`\n }\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport Modal from 'components/common/modal'\nimport StandardError from 'components/common/standard_error'\nimport { exitGlimpse } from 'lib/glimpse'\nimport { getMoneyPoolTNCLink } from 'lib/global'\nimport { routerShape } from 'react-router/lib/PropTypes'\nimport { Button } from '@paypalcorp/pp-react'\nimport { glimpseRoute } from 'lib/route_utils'\nimport { Link } from 'react-router'\nimport JsxParser from 'react-jsx-parser'\nimport { baseUrl } from 'shared/campaign_url'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { useIntl } from 'intl'\n\nconst CountryBlocked = props => {\n const { formatMessage } = useIntl()\n const handleClose = () => {\n exitGlimpse('send', props.router)\n }\n\n const {\n money_pool_creation_blocked,\n crowdfunding_enabled,\n paypalDomain,\n countryCode,\n countryName,\n showClose,\n isFundRaiserEnabled,\n } = props\n\n const titleJSX = formatMessage(\n 'components.pages.create.create.moneypool_blocked_title',\n { tc_link: getMoneyPoolTNCLink(paypalDomain, countryCode) }\n )\n let title\n\n if (!isFundRaiserEnabled || !money_pool_creation_blocked) {\n title = formatMessage('components.pages.create.create.blocked_title')\n } else {\n title = \n }\n\n const crowdfundingEnabledSubtitle =\n !crowdfunding_enabled || !isFundRaiserEnabled\n ? formatMessage('components.pages.create.create.error_eligible_sub_title')\n : ''\n\n const subtitle = money_pool_creation_blocked\n ? crowdfundingEnabledSubtitle\n : formatMessage(`components.pages.create.create.blocked_subtitle`, {\n country: countryName,\n })\n\n let button = null\n const iconType =\n money_pool_creation_blocked &&\n (!crowdfunding_enabled && !isFundRaiserEnabled)\n ? 'empty-critical'\n : 'warning'\n\n if (\n money_pool_creation_blocked &&\n (!crowdfunding_enabled || !isFundRaiserEnabled)\n ) {\n button = (\n \n \n \n )\n } else if (money_pool_creation_blocked && crowdfunding_enabled) {\n button = (\n \n )\n }\n\n return (\n \n \n \n )\n}\n\nCountryBlocked.propTypes = {\n countryName: PropTypes.string,\n countryCode: PropTypes.string,\n showClose: PropTypes.bool,\n router: routerShape.isRequired,\n money_pool_creation_blocked: PropTypes.bool,\n crowdfunding_enabled: PropTypes.bool,\n paypalDomain: PropTypes.string,\n isFundRaiserEnabled: PropTypes.bool,\n}\n\nCountryBlocked.defaultProps = {\n showClose: false,\n}\n\nexport default CountryBlocked\n","import CountryBlocked from './country_blocked'\nimport { connect } from 'react-redux'\n\nconst mapStateToProps = (state, props) => {\n return {\n countryName: state.country.country_name,\n countryCode: state.country.country_code,\n money_pool_creation_blocked: state.current_user.money_pool_creation_blocked,\n crowdfunding_enabled: state.current_user.crowdfunding_enabled,\n paypalDomain: state.geo.paypalDomain,\n isFundRaiserEnabled: state.current_user.isFundRaiserEnabled,\n }\n}\nexport default connect(mapStateToProps)(CountryBlocked)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport StandardError from 'components/common/standard_error'\nimport Modal from 'components/common/modal'\nimport { includes } from 'lodash'\nimport cssModules from 'react-css-modules'\nimport styles from './campaign_eligibility.less'\nimport { getI18n } from 'intl'\nimport {\n NO_DESCRIPTION_ERRORS,\n DEXTER_SPECIFIC_ERRORS,\n CIP_ELIGIBILITY_CODES,\n CIP_ERROR_CODE,\n} from 'shared/shared_consts'\nimport { trackImpression, trackClick } from 'lib/fpti_analytics'\nimport { getCIPStatus } from 'lib/create_campaign_eligibility'\nimport StandardDialog from './../../common/standard_dialog'\n\nconst i18n = getI18n('components/common/campaign_eligibility')\n\nclass CampaignEligibility extends React.Component {\n static propTypes = {\n dispatch: PropTypes.func,\n CIPStatusCode: PropTypes.string,\n verificationFlow: PropTypes.string,\n onClose: PropTypes.func,\n dialog: PropTypes.bool,\n iconName: PropTypes.string,\n }\n\n handleAnalyticsEvent(flow) {\n trackClick({\n clickName: 'account_overview',\n })\n }\n\n render() {\n let isCreationLimitReached = false\n let { iconName: icon } = this.props\n let { CIPStatusCode, verificationFlow, dialog } = this.props\n const flow = includes(window.location.href, 'crowdfunding', false)\n ? 'GENEROSITY_NETWORK'\n : undefined\n let pageName, erpg, eccd\n if (CIPStatusCode === 'USER_REACHED_CAMPAIGN_CREATION_LIMIT') {\n pageName = 'create:duplicate_error'\n erpg = 'active_campaign_exists'\n isCreationLimitReached = true\n } else if (includes(CIP_ERROR_CODE, CIPStatusCode, false)) {\n pageName = 'create:cip_error'\n eccd = 'Pass through CIP error'\n } else if (verificationFlow === 'RUGS') {\n pageName = 'create:rugs_error'\n eccd = 'Pass through RUGS error'\n } else {\n pageName = 'create:generic_error'\n eccd = `generic error: ${CIPStatusCode}`\n }\n\n trackImpression({\n pageName: pageName,\n erpg: erpg,\n eccd: eccd,\n event_name: 'dw_giving_failed_customer_interaction_occurred',\n event_type: 'ac',\n error_desc: CIPStatusCode,\n error_code: 200,\n screen: 'create_fundraiser',\n })\n CIPStatusCode =\n includes(DEXTER_SPECIFIC_ERRORS, CIPStatusCode) ||\n includes(CIP_ELIGIBILITY_CODES, CIPStatusCode)\n ? CIPStatusCode\n : 'ERROR'\n\n if (CIP_ELIGIBILITY_CODES.RUGS_CHECK_HIT_FAILED === CIPStatusCode) {\n icon = 'personal'\n } else if (CIP_ELIGIBILITY_CODES.RUGS_CHECK_FAILED === CIPStatusCode) {\n icon = 'undo'\n } else if (DEXTER_SPECIFIC_ERRORS.REJECTED === CIPStatusCode) {\n icon = 'international'\n }\n\n const title = i18n(`title.${CIPStatusCode}`)\n const description = includes(NO_DESCRIPTION_ERRORS, CIPStatusCode)\n ? ''\n : i18n(`description.${CIPStatusCode}`)\n const ctaInfo = {}\n if (isCreationLimitReached) {\n ctaInfo.label = i18n('manage_your_fundraiser')\n ctaInfo.target = '/pools'\n icon = 'fundraiser'\n } else {\n ctaInfo.label = i18n('go_to_account_button')\n ctaInfo.target = '/myaccount/summary'\n icon = 'undo'\n }\n return !isCreationLimitReached || !dialog ? (\n \n
    \n \n this.handleAnalyticsEvent(flow)}\n className=\"vx_btn vx_btn-block vx_btn-secondary\"\n styleName=\"go-to-account-button\"\n >\n {ctaInfo.label}\n \n
    \n
    \n ) : (\n (window.location = ctaInfo.target)}\n iconName={icon}\n />\n )\n }\n}\nexport default connect((state, ownProps) => {\n const campaignType = ownProps.route?.campaignType || ownProps.campaignType\n const cipStatusObj =\n state.current_user.CIPEligibility &&\n state.current_user.CIPEligibility[campaignType]\n return {\n CIPStatus:\n cipStatusObj && getCIPStatus(campaignType, cipStatusObj, ownProps, state),\n CIPStatusCode: cipStatusObj && cipStatusObj.CIPStatusCode,\n verificationFlow: state.current_user.verificationFlow,\n ...ownProps,\n }\n})(cssModules(CampaignEligibility, styles))\n","import React from 'react'\nimport { dexterURL, baseUrl } from 'shared/campaign_url'\nimport CountryBlockedError from 'components/common/country_blocked'\nimport CampaignEligibility from 'components/common/campaign_eligibility'\nimport { ELIGIBILITY_STATUS, POOLS_CAMPAIGN_TYPES } from 'shared/shared_consts'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { isStage, isDev } from './deploy_env'\n\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\n\nexport function createCampaignEligibilityCheck(\n state,\n nextState,\n campaignType,\n CreatePage,\n callback\n) {\n const cipStatus =\n state.current_user.CIPEligibility &&\n state.current_user.CIPEligibility[campaignType]\n if (state.current_user.moneypools_blocked) {\n return callback(null, CountryBlockedError)\n } else if (\n campaignType === CROWD_FUNDING &&\n !state.current_user.crowdfunding_enabled\n ) {\n //when elmo is not enabled for GN pools based on country\n window.location.href = baseUrl(location.hostname, '')\n return\n } else if (\n cipStatus &&\n getCIPStatus(campaignType, cipStatus, nextState.params, state) ===\n ELIGIBILITY_STATUS.INELIGIBLE\n ) {\n if (cipStatus.CIPStatusCode === 'NEED_MORE_DATA') {\n const returnUrl = getDexterReturnUrl(nextState.location.pathname)\n location.href = dexterURL(returnUrl, cipStatus.redirectUrl)\n return\n }\n return callback(null, props => {\n return \n })\n } else if (\n cipStatus &&\n getCIPStatus(campaignType, cipStatus, nextState.params, state) ===\n ELIGIBILITY_STATUS.ELIGIBLE &&\n state.queryParams &&\n state.queryParams.next_compliance_Url\n ) {\n //When user visited the first url which returns success from dexter but user has a second url to verify\n const returnUrl = getDexterReturnUrl(nextState.location.pathname)\n location.href = dexterURL(returnUrl, [\n state.queryParams.next_compliance_Url,\n ])\n return\n }\n return callback(null, CreatePage)\n}\n\nexport function getCIPStatus(campaignType, cipStatusObj, params, state) {\n const campaign = getCampaignSelector(state, params)\n if (\n (params && params.nextStep === 'nonprofit') ||\n (campaign && campaign.charity)\n ) {\n return cipStatusObj.CIPStatus.GENEROSITY_NETWORK_FUNDRAISER_CHARITY\n } else {\n return cipStatusObj.CIPStatus.GENEROSITY_NETWORK_FUNDRAISER\n }\n}\n\nexport function getDexterReturnUrl(relativeUrl) {\n if (isDev() || isStage()) {\n return baseUrl(location.hostname, relativeUrl)\n }\n return relativeUrl\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from '../share_update_activity/share_update_activity.less'\nimport Clipboard from 'clipboard'\nimport {\n Link,\n LinkIcon,\n CheckmarkIcon,\n PAYPAL_THEME,\n CaptionText,\n Row,\n Col,\n} from '@paypalcorp/pp-react'\nimport clsx from 'clsx'\nimport { Message } from '@paypalcorp/worldready-react'\nimport {\n EmailSharing,\n TwitterSharing,\n FacebookSharing,\n WhatsAppSharing,\n SmsSharing,\n} from 'components/common/share_buttons'\nimport { trackClick } from 'lib/fpti_analytics'\n\nconst TOOLTIP_SHOW_DELAY = 750\nconst { sysColorSuccessMain } = PAYPAL_THEME\n\nclass ShareCampaignTextarea extends React.Component {\n static propTypes = {\n shareUrl: PropTypes.string.isRequired,\n displayUrl: PropTypes.string.isRequired,\n shareable: PropTypes.bool.isRequired,\n appId: PropTypes.number.isRequired,\n onClickOverride: PropTypes.func,\n showFacebook: PropTypes.bool,\n showMessenger: PropTypes.bool,\n showTwitter: PropTypes.bool,\n showWhatsApp: PropTypes.bool,\n showEmail: PropTypes.bool,\n showSms: PropTypes.bool,\n showSubtext: PropTypes.bool,\n description: PropTypes.string,\n styles: PropTypes.object,\n isMobile: PropTypes.bool,\n campaignId: PropTypes.string,\n charity: PropTypes.object,\n eventName: PropTypes.string,\n }\n\n static defaultProps = {\n shareable: true,\n showFacebook: true,\n showMessenger: true,\n showTwitter: true,\n showWhatsApp: true,\n showEmail: true,\n showSms: true,\n showSubtext: false,\n isMobile: false,\n inline: true,\n }\n\n state = {\n copyText: this.props.description || this.props.displayUrl,\n showTooltip: false,\n errorMsg: false,\n }\n\n componentDidMount() {\n if (this.props.shareable) {\n this.clipboard = new Clipboard(this.copyLink, {\n text: () => this.props.shareUrl,\n })\n this.clipboard.on('success', this.handleCopySuccess)\n }\n }\n\n componentWillUnmount() {\n if (this.clipboard) {\n this.clipboard.destroy()\n }\n }\n\n copyValidation = () => {\n if (this.state.copyText === '') {\n this.setState({ errorMsg: true })\n } else {\n this.setState({ errorMsg: false })\n }\n trackClick({\n clickName: 'copy',\n data: {\n event_name: this.props.eventName,\n link_name: 'copy',\n },\n })\n }\n\n handleChange = event => {\n this.setState({ copyText: event.target.value, errorMsg: false })\n }\n\n handleCopySuccess = e => {\n this.setState({ showTooltip: true })\n setTimeout(() => {\n this.setState({ showTooltip: false })\n }, TOOLTIP_SHOW_DELAY)\n }\n\n render() {\n const { showTooltip } = this.state\n\n const commonProps = {\n ...this.props,\n className: styles['share-icon'],\n inline: false,\n showSubtext: true,\n shareText: this.state.copyText,\n eventName: this.props.eventName,\n }\n\n return (\n
    \n {this.state.errorMsg && (\n \n \n \n )}\n \n \n \n \n {this.props.isMobile && (\n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n {\n this.copyLink = copyLink\n }}\n onClick={this.copyValidation}\n title=\"copy\"\n >\n {showTooltip ? (\n \n ) : (\n \n )}\n \n {this.props.showSubtext && (\n
    \n \n
    \n )}\n
    \n this.copyLink.click()}\n styleName=\"share-label share-label-cursor\"\n >\n \n \n \n \n
    \n )\n }\n}\n\nexport default cssModules(ShareCampaignTextarea, styles, {\n allowMultiple: true,\n})\n","import ShareCampaign from './share_campaign_textarea'\nimport { connect } from 'react-redux'\nimport { getShareProps } from 'lib/share'\n\nconst mapStateToProps = (state, ownProps) => {\n return getShareProps(state, ownProps)\n}\n\nconst mapDispatchToProps = dispatch => {\n return {}\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(ShareCampaign)\n","import React from 'react'\nimport { Sheet } from '@paypalcorp/pp-react'\nimport PropTypes from 'prop-types'\n\nconst HalfSheet = props => {\n const {\n mobileFixedHeight,\n children,\n show,\n onClose,\n title,\n containerClassName,\n } = props\n\n return (\n \n {children}\n \n )\n}\n\nHalfSheet.propTypes = {\n children: PropTypes.any.isRequired,\n show: PropTypes.boolean,\n onClose: PropTypes.func.isRequired,\n mobileFixedHeight: PropTypes.string,\n title: PropTypes.string,\n containerClassName: PropTypes.string,\n}\n\nHalfSheet.defaultProps = {\n show: false,\n mobileFixedHeight: '90',\n title: '',\n containerClassName: '',\n}\n\nexport default HalfSheet\n","import React from 'react'\nimport { BodyText, HeadingText } from '@paypalcorp/pp-react'\nimport { POOL_TYPE } from 'shared/shared_consts'\nimport { Message } from '@paypalcorp/worldready-react'\nimport PropTypes from 'prop-types'\nimport styles from './fundraiser_share_info.less'\n\nexport const FundraiserShareInfo = ({\n campaignType,\n hasSocialShare5xEnabled,\n hasSocialShare7xEnabled,\n}) => {\n let titleId = 'components.pages.crowdfunding.pool_share.share_title'\n let subTitleId =\n 'components.pages.crowdfunding.pool_share.share_your_page_new'\n let shareInfoList = [\n 'share_your_page_more_1',\n 'share_your_page_more_2',\n 'share_your_page_more_3',\n ]\n\n let shareInfoHeader\n let shareInfoFooter\n\n if (campaignType === POOL_TYPE.PRIVATE) {\n titleId = 'components.pages.crowdfunding.pool_share.share_title'\n subTitleId = 'flow.private.publish.description'\n shareInfoList = []\n } else if (\n campaignType === POOL_TYPE.PERSONAL &&\n (hasSocialShare5xEnabled || hasSocialShare7xEnabled) //Experiment for social share\n ) {\n shareInfoHeader = 'components.pages.crowdfunding.pool_share.some_share_tips'\n shareInfoFooter =\n 'components.pages.crowdfunding.pool_story.personal_tip_box_details_footer'\n\n //When hasSocialShare5xEnabled is enabled\n titleId =\n 'components.pages.crowdfunding.pool_share.share_title_for_personal'\n subTitleId =\n 'components.pages.crowdfunding.pool_share.share_page_subheader_raise_5x'\n\n if (hasSocialShare7xEnabled) {\n titleId =\n 'components.pages.crowdfunding.pool_share.share_title_for_personal'\n subTitleId =\n 'components.pages.crowdfunding.pool_share.share_page_subheader_raise_7x'\n }\n }\n\n return (\n <>\n \n \n \n \n \n \n {shareInfoHeader && (\n \n \n \n )}\n
      \n {shareInfoList.map(key => {\n return (\n
    • \n \n \n \n
    • \n )\n })}\n
    \n {shareInfoFooter && (\n \n \n \n )}\n \n )\n}\n\nFundraiserShareInfo.defaultProps = {\n hasSocialShare7xEnabled: false,\n hasSocialShare5xEnabled: false,\n}\n\nFundraiserShareInfo.propTypes = {\n campaignType: PropTypes.string.isRequired,\n hasSocialShare7xEnabled: PropTypes.bool,\n hasSocialShare5xEnabled: PropTypes.bool,\n}\n\nexport default FundraiserShareInfo\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { get } from 'lodash'\nimport cssModules from 'react-css-modules'\nimport styles from './crowdfunding_share.less'\nimport { getI18n } from 'intl'\nimport StandardError from 'components/common/standard_error'\nimport CrossFadeTransition from 'components/common/transitions/cross_fade'\nimport {\n CIP_ELIGIBILITY_CODES,\n COUNTRY_NOT_SUPPORTED,\n SPRIG_SURVEY,\n UNDER_REVIEW_ERROR,\n} from 'shared/shared_consts'\nimport { NEW_CAMPAIGN_ID } from 'redux/modules/campaign'\nimport { sendEnsightenEvent } from 'lib/ensighten_analytics'\nimport { getDexterReturnUrl } from 'lib/create_campaign_eligibility'\nimport ShareCampaignTextarea from 'components/common/share_campaign_textarea'\nimport { Button } from '@paypalcorp/pp-react'\nimport CampaignEligibility from 'components/common/campaign_eligibility'\nimport { dexterURL } from 'shared/campaign_url'\nimport { trackImpression, trackEventNameClick } from 'lib/fpti_analytics'\nimport Pictograms from 'components/common/pictograms'\nimport HalfSheet from '../../../common/half_sheet/half_sheet'\nimport { Message } from '@paypalcorp/worldready-react'\nimport FundraiserShareInfo from './partials/fundraiser_share_info'\n\nexport const I18N_CONTEXT = 'components/pages/crowdfunding/pool_share'\nconst i18n = getI18n(I18N_CONTEXT)\nclass CrowdfundingShare extends React.Component {\n static propTypes = {\n onPublish: PropTypes.func.isRequired,\n operatingRemotely: PropTypes.bool,\n campaignId: PropTypes.string,\n poolUrl: PropTypes.string.isRequired,\n creationError: PropTypes.object,\n shareDescription: PropTypes.string,\n params: PropTypes.object,\n paypalDomain: PropTypes.string,\n route: PropTypes.object,\n cdnHost: PropTypes.string,\n campaignType: PropTypes.string,\n hasSocialShare5xEnabled: PropTypes.bool,\n hasSocialShare7xEnabled: PropTypes.bool,\n }\n\n state = {\n showMobileSharePage: false,\n }\n\n campaignCreated = ({ campaignId }) => {\n return campaignId !== NEW_CAMPAIGN_ID\n }\n\n componentDidMount() {\n const { operatingRemotely, creationError } = this.props\n\n // Checking if the campaign has already been created so that we don't create it twice.\n // This can happen when going back from the share page to here.\n if (\n !operatingRemotely &&\n !creationError &&\n !this.campaignCreated(this.props)\n ) {\n this.props.onPublish()\n }\n }\n\n UNSAFE_componentWillReceiveProps = newProps => {\n if (this.campaignCreated(newProps) && !this.campaignCreated(this.props)) {\n sendEnsightenEvent('MoneyPoolFin')\n }\n }\n\n renderShareComponent = () => (\n
    \n \n
    \n )\n\n renderReviewError() {\n return (\n \n )\n }\n\n renderNeedMoreData() {\n const returnUrl = getDexterReturnUrl('/pools/c/create-crowdfunding/basics')\n location.href = dexterURL(returnUrl)\n }\n\n renderCampaignEligibility(creationError) {\n return (\n \n )\n }\n\n renderCountryNotSupported(paypalDomain) {\n return (\n \n \n \n }\n />\n )\n }\n\n renderStandardError() {\n return (\n \n )\n }\n\n renderCreateIndicatorContainer() {\n return (\n
    \n
    \n
    \n \n
    \n
    \n )\n }\n\n handleSurvey = () => {\n const survey = SPRIG_SURVEY[this.props.campaignType]\n window.latmconf.trackSprigEvent(survey)\n }\n\n renderPublishContainer(props, state) {\n const {\n campaignType,\n hasSocialShare5xEnabled,\n hasSocialShare7xEnabled,\n route,\n } = props\n const hideLogo = get(props, 'params.hideLogo', false)\n const hideButton = get(props, 'params.hideButton', false)\n const isPublishPath = route && route.path === 'publish'\n const isSprigEnabled =\n window.Sprig?.loaded && window.latmconf?.trackSprigEvent\n const { showMobileSharePage } = state\n\n const handleShareButtonClick = () => {\n this.setState({ showMobileSharePage: true })\n trackEventNameClick({\n event_name: 'dw_giving_fundraiser_publish_share_pressed',\n })\n }\n\n const handleGoToPoolButtonClick = () => {\n trackEventNameClick({\n event_name: 'dw_giving_fundraiser_publish_view_pressed',\n })\n }\n\n const renderMobileSharePage = () => (\n this.setState({ showMobileSharePage: false })}\n containerClassName={styles['mshare-container']}\n >\n {this.renderShareComponent()}\n \n )\n\n const Feedback = () => (\n
    \n \n \n \n
    \n )\n\n return (\n
    \n {!hideLogo && (\n
    \n \n
    \n )}\n\n {showMobileSharePage && renderMobileSharePage()}\n\n \n\n {isPublishPath && isSprigEnabled && }\n\n
    {this.renderShareComponent()}
    \n\n \n \n \n\n {!hideButton && (\n \n \n \n )}\n
    \n )\n }\n\n render() {\n let Component\n const { creationError, paypalDomain, route } = this.props\n const isPublishPath = route && route.path === 'publish'\n\n if (creationError) {\n if (!CIP_ELIGIBILITY_CODES.hasOwnProperty(creationError.error)) {\n trackImpression({\n error_desc: creationError.error || 'CREATE_ERROR',\n error_code: 500,\n event_type: 'ac',\n event_name: 'dw_giving_failed_customer_interaction_occurred',\n screen: 'publish',\n })\n }\n\n if (creationError.error === UNDER_REVIEW_ERROR) {\n Component = this.renderReviewError()\n } else if (CIP_ELIGIBILITY_CODES.hasOwnProperty(creationError.error)) {\n if (CIP_ELIGIBILITY_CODES[creationError.error] === 'NEED_MORE_DATA') {\n this.renderNeedMoreData()\n return\n } else {\n Component = this.renderCampaignEligibility(creationError)\n }\n } else if (creationError.error === COUNTRY_NOT_SUPPORTED) {\n Component = this.renderCountryNotSupported(paypalDomain)\n } else {\n Component = this.renderStandardError()\n }\n } else if (this.campaignCreated(this.props)) {\n if (isPublishPath) {\n trackImpression({\n event_name: 'dw_giving_fundraiser_publish_screen_shown',\n })\n }\n\n Component = this.renderPublishContainer(this.props, this.state)\n } else {\n // assume operatingRemotely\n trackImpression({\n pageName: 'create:spinner',\n })\n Component = this.renderCreateIndicatorContainer()\n }\n\n return {Component}\n }\n}\n\nexport default cssModules(CrowdfundingShare, styles, { allowMultiple: true })\n","// This is an HoC which prevents navigating away from the current route,\n// when a certain condition is true. This condition is given by the result of\n// a function which is the first parameter. The parameter to this function\n// the the component's props.\n\n// Example:\n// preventedComponent = preventNavigation(MyComponent, props => props.doingWork)\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { routerShape } from 'react-router/lib/PropTypes'\n\nconst preventNavigation = (ComponentWithPreventedNavigation, shouldPrevent) => {\n return class extends React.Component {\n static propTypes = {\n router: routerShape.isRequired,\n route: PropTypes.any,\n }\n\n componentDidMount = () => {\n this.props.router.setRouteLeaveHook(\n this.props.route,\n this.routerWillLeave\n )\n }\n\n routerWillLeave = nextLocation => {\n if (shouldPrevent(this.props, nextLocation)) {\n return false\n }\n return null\n }\n\n render() {\n return \n }\n }\n}\n\nexport default preventNavigation\n","import CrowdfundingShare from './crowdfunding_share'\nimport { connect } from 'react-redux'\nimport { createRemotely } from 'redux/modules/campaign'\nimport { campaignUrlWithMeDomain } from 'lib/campaign_url'\nimport {\n getCampaignSelector,\n getLastCreatedCampaignSelector,\n} from 'redux/selectors/campaign'\nimport preventNavigation from 'components/common/prevent_navigation'\nimport { POOL_TYPE } from 'shared/shared_consts'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\nimport { generateShareMessage } from '../../../../lib/generate_share_message'\n\nconst mapStateToProps = (state, props) => {\n const lastCreatedCampaign = getLastCreatedCampaignSelector(state)\n const campaign = lastCreatedCampaign || getCampaignSelector(state, props)\n const campaignId = campaign.id\n const urlWithMeDomain = campaignUrlWithMeDomain(\n campaign.id,\n campaign.campaign_type\n )\n\n const { type } = campaign\n const isSmallGroup = type === POOL_TYPE.PRIVATE\n\n const shareMessage = generateShareMessage(\n isSmallGroup,\n campaign,\n urlWithMeDomain,\n props.worldReady\n )\n\n return {\n campaignId,\n charity: campaign.charity,\n operatingRemotely: campaign.operatingRemotely,\n poolUrl: urlWithMeDomain,\n creationError: campaign.err,\n shareDescription: shareMessage,\n paypalDomain: state.geo.paypalDomain,\n enable_ces_link: state.flags.enable_ces_link,\n cdnHost: state.geo.cdnHost,\n campaignType: campaign.type,\n hasSocialShare5xEnabled: state.flags.hasSocialShare5xEnabled,\n hasSocialShare7xEnabled: state.flags.hasSocialShare7xEnabled,\n }\n}\n\nconst mapDispatchToProps = (dispatch, { campaignId }) => {\n return {\n onPublish() {\n dispatch(createRemotely(campaignId))\n },\n }\n}\n\nexport default injectWorldReady(\n connect(\n mapStateToProps,\n mapDispatchToProps\n )(preventNavigation(CrowdfundingShare, props => props.operatingRemotely))\n)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport StandardError from 'components/common/standard_error'\nimport { useIntl } from 'intl'\n\nconst DeleteError = ({ onDelete }) => {\n const { formatMessage } = useIntl()\n\n return (\n \n )\n}\n\nDeleteError.propTypes = {\n onDelete: PropTypes.func.isRequired,\n}\n\nexport default DeleteError\n","import DeleteError from './delete_error'\nimport { connect } from 'react-redux'\nimport { deleteRemotely } from 'redux/modules/campaign'\nimport { hubPageUrl } from 'lib/campaign_url'\n\nconst mapDispatchToProps = (dispatch, { campaignId }) => {\n return {\n onDelete() {\n return dispatch(deleteRemotely(campaignId)).then(() => {\n location.href = hubPageUrl()\n })\n },\n }\n}\n\nexport default connect(\n null,\n mapDispatchToProps\n)(DeleteError)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport { getI18n, formatCurrency, getDefaultCurrencyCode } from 'intl'\nimport styles from './transfer.less'\nimport CurrencyInputBox from 'components/common/currency_input'\nimport TransferReviewBox from '../transfer_review_box'\nimport { MIN_TRANSFER_AMOUNT } from 'shared/shared_consts'\nimport { trackClick } from 'lib/fpti_analytics'\nimport { getFormError } from 'lib/validators'\nimport { BodyText, Button, HeadingText, Link } from '@paypalcorp/pp-react'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\n\nconst i18n = getI18n('components/edit_glimpse/transfer')\n\nclass Transfer extends React.Component {\n static propTypes = {\n campaignId: PropTypes.string.isRequired,\n campaignName: PropTypes.string.isRequired,\n moneyboxAmount: PropTypes.number.isRequired,\n currency: PropTypes.string.isRequired,\n fields: PropTypes.object.isRequired,\n anyInactiveFieldsTouchedWithError: PropTypes.bool,\n onTransferAll: PropTypes.func,\n handleSubmit: PropTypes.func.isRequired,\n shouldAutoFocus: PropTypes.bool,\n onTransfer: PropTypes.func.isRequired,\n countryCode: PropTypes.string.isRequired,\n isCrowdfunding: PropTypes.bool,\n worldReady: PropTypes.Object,\n }\n\n state = {\n transferAll: false,\n }\n\n handleTransferAllClick = () => {\n this.props.onTransferAll(this.props.moneyboxAmount)\n this.setState({ transferAll: true })\n }\n\n handleTransfer = fields => {\n trackClick({\n clickName: 'dw_giving_fundraiser_transfer_confirm_pressed',\n data: {\n event_name: 'dw_giving_fundraiser_transfer_confirm_pressed',\n },\n })\n this.props.onTransfer(fields.transferAmount)\n }\n\n render() {\n const {\n fields: { transferAmount },\n anyInactiveFieldsTouchedWithError,\n isCrowdfunding,\n } = this.props\n\n return (\n
    \n \n {i18n('title')}\n \n \n {i18n(`current_balance${isCrowdfunding ? '_cf' : ''}`)}\n  \n {formatCurrency({\n value: this.props.moneyboxAmount,\n currencyCode: this.props.currency,\n additionalConfig: {},\n worldReady: this.props.worldReady,\n })}\n \n \n {i18n('transfer_all')}\n \n
    \n \n
    \n\n \n\n
    \n \n {i18n('transfer_money')}\n \n
    \n \n )\n }\n}\n\nexport default injectWorldReady(cssModules(Transfer, styles))\n","import Transfer from './transfer'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { reduxForm, change } from 'redux-form'\nimport formUtils from 'lib/form_utils'\nimport { glimpseRoute } from 'lib/route_utils'\nimport { push } from 'react-router-redux'\nimport { required, atMost, combine } from 'lib/validators'\nimport { getI18n } from 'intl'\nimport { withdrawRemotely } from 'redux/modules/campaign'\nimport { CROWD_FUNDING } from 'shared/shared_consts'\n\nconst i18n = getI18n('components/edit_glimpse/transfer')\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n const isCrowdfunding = campaign.campaign_type === CROWD_FUNDING\n return {\n shouldAutoFocus: props.router.params.action !== 'POP',\n campaignName: campaign.title,\n currency: campaign.currency,\n moneyboxAmount: campaign.moneybox_amount,\n countryCode: state.country.country_code,\n isCrowdfunding: isCrowdfunding,\n validate: combine(\n required('transferAmount', i18n('amount_required')),\n atMost(\n 'transferAmount',\n campaign.moneybox_amount,\n i18n('amount_too_much')\n )\n ),\n }\n}\n\nconst mapDispatchToProps = (dispatch, { campaignId }) => {\n return {\n onTransferAll(amount) {\n dispatch(\n change('transfer', 'transferAmount', amount && amount.toString())\n )\n },\n onSubmit(formValues) {\n dispatch(push({ pathname: glimpseRoute('edit', 'transfer/review') }))\n },\n onTransfer(amount) {\n dispatch(withdrawRemotely(campaignId, amount))\n .then(() => {\n dispatch(\n push({ pathname: glimpseRoute('edit', 'transfer/complete') })\n )\n })\n .catch(() => {\n dispatch(\n push({ pathname: glimpseRoute('edit', 'transfer/complete') })\n )\n })\n },\n }\n}\n\nexport default reduxForm(\n {\n form: 'transfer',\n destroyOnUnmount: false,\n fields: ['transferAmount'],\n },\n mapStateToProps,\n mapDispatchToProps\n)(formUtils(Transfer))\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport { getI18n, formatCurrency } from 'intl'\nimport styles from './transfer_complete.less'\nimport StandardError from 'components/common/standard_error'\nimport { toCFPBStringId } from 'client/lib/cfpb'\nimport { trackClick } from 'lib/fpti_analytics'\nimport { isStage, isDev } from 'client/lib/deploy_env'\nimport { BodyText, Button, HeadingText } from '@paypalcorp/pp-react'\nimport Pictograms from 'components/common/pictograms'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\n\nconst i18n = getI18n('components/edit_glimpse/transfer')\n\nclass TransferComplete extends React.Component {\n static propTypes = {\n title: PropTypes.string.isRequired,\n amount: PropTypes.number,\n currency: PropTypes.string.isRequired,\n transferError: PropTypes.any,\n onDone: PropTypes.func.isRequired,\n fromVenice: PropTypes.bool.isRequired,\n paypalDomain: PropTypes.string,\n cdnHost: PropTypes.string.isRequired,\n worldReady: PropTypes.Object,\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // since the form this relies on might be destroyed while this transitions, we don't want to re-render if amount is non-existent.\n return nextProps.amount != null\n }\n\n handleFPTI = e => {\n trackClick({\n clickName: 'dw_giving_fundraiser_transfer_success_withdraw_pressed',\n data: {\n event_name: 'dw_giving_fundraiser_transfer_success_withdraw_pressed',\n },\n })\n }\n\n render() {\n const hostName =\n isDev() || isStage() ? location.hostname : this.props.paypalDomain\n if (this.props.transferError) {\n return \n }\n const withdrawlUrl = `https://${hostName}/myaccount/wallet/withdraw`\n return (\n
    \n
    \n \n
    \n \n {i18n(toCFPBStringId('complete_title'), {\n amount: formatCurrency({\n value: this.props.amount,\n currencyCode: this.props.currency,\n additionalConfig: {},\n worldReady: this.props.worldReady,\n }),\n title: this.props.title,\n })}\n \n \n {i18n(toCFPBStringId('complete_sub_title'))}\n \n
    \n \n {i18n('withdraw_to_bank')}\n \n
    \n
    \n )\n }\n}\n\nexport default injectWorldReady(cssModules(TransferComplete, styles))\n","import TransferComplete from './transfer_complete'\nimport { connect } from 'react-redux'\n\nimport { getValues } from 'redux-form'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { inflateUserTxns } from 'redux/modules/user_txns'\nimport { go } from 'react-router-redux'\n\nconst mapStateToProps = (state, props) => {\n const formValues = getValues(state.form.transfer)\n const campaign = getCampaignSelector(state, props)\n return {\n title: campaign.title,\n currency: campaign.currency,\n amount: formValues && formValues.transferAmount,\n transferError: campaign.err,\n paypalDomain: state.geo.paypalDomain,\n cdnHost: state.geo.cdnHost,\n }\n}\n\nconst mapDispatchToProps = (dispatch, { campaignId }) => {\n return {\n onDone() {\n dispatch(inflateUserTxns(campaignId))\n // 1 - back to transfer review\n // 2 - back to transfer form\n // 3 - back to manage page\n dispatch(go(-3))\n },\n }\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(TransferComplete)\n","export function isCampaignOwner(store, campaignId) {\n const state = store.getState()\n return (\n state.campaign &&\n state.campaign[campaignId] &&\n state.campaign[campaignId].is_owner\n )\n}\n","import EditGlimpse from 'components/glimpses/edit_glimpse'\nimport ManageCrowdfunding from 'components/glimpses/edit_glimpse/manage_cf'\nimport Activity from 'components/glimpses/edit_glimpse/activity'\nimport EditMainCrowdfunding from 'components/glimpses/edit_glimpse/edit_main_cf'\nimport EditError from 'components/glimpses/edit_glimpse/edit_error'\nimport Pledge from 'components/glimpses/chip_in_glimpse/pledge'\nimport PledgeSuccess from 'components/glimpses/chip_in_glimpse/pledge/pledge_success'\nimport CrowdfundingShare from 'components/pages/crowdfunding/crowdfunding_share'\nimport DeleteError from 'components/glimpses/edit_glimpse/delete_error'\nimport Transfer from 'components/glimpses/edit_glimpse/transfer'\nimport TransferComplete from 'components/glimpses/edit_glimpse/transfer_complete'\n\nimport { sendEnsightenEvent } from 'lib/ensighten_analytics'\n\nimport { trackEnter, trackChange, firstInGlimpse } from 'lib/glimpse'\nimport {\n getStepName,\n glimpselessRoute,\n assignActionToRouterParams,\n assertNoDeepLink,\n} from 'lib/route_utils'\nimport { isCampaignOwner } from 'lib/is_owner'\nimport { NEW_CAMPAIGN_ID } from 'redux/modules/campaign'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { destroy } from 'redux-form'\nimport { fromVeniceSelector } from 'redux/selectors/venice'\nimport { POOLS_CAMPAIGN_TYPES, INVALID_IMAGE } from 'shared/shared_consts'\n\nconst LAST_TRANSFER_STEP = 'complete'\nconst INITIAL_STEP = 'manage'\nconst INITIAL_STEP_IN_PREVIEW = undefined\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\n\nexport default (store, history) => ({\n path: 'edit',\n component: { glimpse: EditGlimpse },\n indexRoute: {\n getComponent(nextState, callback) {\n const campaign = getCampaignSelector(store.getState(), {\n campaignId: nextState.params.campaignId,\n })\n\n if (campaign.campaign_type === CROWD_FUNDING) {\n return callback(null, EditMainCrowdfunding)\n }\n },\n },\n onEnter(nextState, replace) {\n const campaignId = nextState.params.campaignId\n const inPreview = campaignId === NEW_CAMPAIGN_ID\n if (isCampaignOwner(store, campaignId) || inPreview) {\n trackEnter('edit', nextState, replace)\n nextState.params.hideBack = true\n const stepName = getStepName('edit', nextState.routes)\n if (stepName !== 'transfer') {\n // Only support deep linking into edit flow is the user is coming from Venice\n const isVeniceUser = true || fromVeniceSelector()(store.getState())\n if (!isVeniceUser) {\n assertNoDeepLink(\n 'edit',\n inPreview ? INITIAL_STEP_IN_PREVIEW : INITIAL_STEP,\n nextState,\n replace\n )\n }\n }\n } else {\n replace(glimpselessRoute('edit'))\n }\n },\n onChange(prevState, nextState, replace) {\n trackChange('edit', prevState, nextState, replace)\n nextState.params.hideBack = firstInGlimpse('edit')\n },\n childRoutes: [\n {\n path: 'manage',\n getComponent(nextState, callback) {\n const campaign = getCampaignSelector(store.getState(), {\n campaignId: nextState.params.campaignId,\n })\n\n if (campaign.campaign_type === CROWD_FUNDING) {\n return callback(null, ManageCrowdfunding)\n }\n },\n },\n { path: 'manage/activity', component: Activity },\n { path: 'delete/error', component: DeleteError },\n {\n path: 'error',\n component: EditError,\n },\n {\n path: ':part/error',\n component: EditError,\n onEnter(nextState) {\n let campaign = getCampaignSelector(store.getState(), {\n campaignId: nextState.params.campaignId,\n })\n if (campaign.err && campaign.err.error === INVALID_IMAGE) {\n nextState.params.hideBack = true\n }\n },\n },\n {\n path: 'transfer',\n indexRoute: {\n component: Transfer,\n onEnter(nextState) {\n if (\n nextState.location.action !== 'POP' ||\n !nextState.params.prevStep\n ) {\n sendEnsightenEvent('MoneyPoolWithdrawStart')\n }\n },\n },\n childRoutes: [\n {\n path: 'complete',\n component: TransferComplete,\n onEnter(nextState) {\n sendEnsightenEvent('MoneyPoolWithdrawFin')\n },\n },\n ],\n onChange(prevState, nextState) {\n assignActionToRouterParams(nextState)\n nextState.params.hideBack =\n getStepName('transfer', nextState.routes) === LAST_TRANSFER_STEP\n },\n onLeave() {\n store.dispatch(destroy('transfer'))\n },\n },\n {\n path: 'pledge',\n indexRoute: {\n component: Pledge,\n onEnter(nextState, replace) {\n sendEnsightenEvent('MoneyPoolPledgeStart')\n },\n },\n childRoutes: [\n {\n path: 'complete',\n component: PledgeSuccess,\n onEnter(nextState, replace) {\n nextState.params.hideBack = true\n const { params } = nextState.location.state\n if (!params) {\n location.href = GLOBAL_CONSTS.REQUEST_URI\n }\n },\n },\n ],\n },\n {\n path: 'share',\n component: CrowdfundingShare,\n onEnter(nextState, replace) {\n nextState.params.hideLogo = true\n nextState.params.hideButton = true\n },\n },\n ],\n})\n","import React, { useState } from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport { DeleteIcon, Button } from '@paypalcorp/pp-react'\nimport styles from './delete_update_activity.less'\nimport StandardDialog from '../../../common/standard_dialog/standard_dialog'\nimport { trackFPTI } from 'lib/fpti_utils'\nimport { TOAST_NOTIFICATIONS } from 'shared/shared_consts'\nimport { trackEventNameClick } from 'lib/fpti_analytics'\nimport { useIntl } from 'intl'\nimport { Message } from '@paypalcorp/worldready-react'\n\nexport const DeleteUpdateActivity = ({\n campaignId,\n id,\n deleteOrganizerActivity,\n onClose,\n campaign,\n onToggleToast,\n}) => {\n const { formatMessage } = useIntl()\n const [showDeleteDialog, setDeleteDailog] = useState(false)\n\n const handledeleteDialogClose = () => {\n trackFPTI(\n campaign,\n 'click',\n 'dw_giving_delete_update_dismiss_pressed',\n 'close'\n )\n setDeleteDailog(false)\n }\n\n const handleQuit = () => {\n trackFPTI(\n campaign,\n 'click',\n 'dw_giving_delete_update_keep_pressed',\n 'close'\n )\n setDeleteDailog(false)\n }\n\n const handleDeleteOk = e => {\n e.preventDefault()\n setDeleteDailog(false)\n trackFPTI(campaign, 'click', 'dw_giving_delete_update_confirm_pressed')\n deleteOrganizerActivity(campaignId, id)\n .then(() => {\n trackFPTI(campaign, 'ac', 'dw_giving_delete_update_success_occurred')\n onToggleToast(\n TOAST_NOTIFICATIONS.DELETE_SUCCESS,\n formatMessage(\n 'components.edit_glimpse.post_update.delete_notification'\n )\n )\n onClose()\n })\n .catch(() => null)\n }\n\n return (\n
    \n {\n e.preventDefault()\n trackFPTI(\n campaign,\n 'impression',\n 'dw_giving_delete_update_screen_shown'\n )\n trackEventNameClick({\n event_name: 'dw_giving_edit_update_delete_pressed',\n })\n setDeleteDailog(true)\n }}\n data-nemo=\"delete-btn\"\n >\n \n \n {showDeleteDialog && (\n \n )}\n
    \n )\n}\n\nDeleteUpdateActivity.propTypes = {\n campaignId: PropTypes.string.isRequired,\n id: PropTypes.string.isRequired,\n deleteOrganizerActivity: PropTypes.func,\n onClose: PropTypes.func,\n campaign: PropTypes.object,\n onToggleToast: PropTypes.func,\n}\n\nexport default cssModules(DeleteUpdateActivity, styles)\n","import fetchClient from 'lib/fetch_client'\nimport routes from 'server_routes'\nimport {\n ADD_ORGANIZER_UPDATE,\n DELETE_ORGANIZER_UPDATE,\n EDIT_ORGANIZER_UPDATE,\n SET_ORGANIZER_UPDATE_LIST,\n startRemoteOperation,\n finishRemoteOperation,\n failedCampaignRemoteOperation,\n APPEND_ORGANIZER_UPDATE,\n} from './campaign'\n\n/**\n * @param {searchParams: {page: int, size: int, campaignId: string}}\n * Returns a list of organizerUpdate list with pagesize and pagenumber\n */\n\nexport function getOrganizerUpdate({ page, ...searchParams }) {\n return dispatch => {\n dispatch(startRemoteOperation(searchParams.campaignId))\n return fetchClient()\n .request(routes.organizer_update.api.index(), {\n method: 'GET',\n query: { ...searchParams, updatePage: page },\n })\n .then(response => {\n dispatch(\n setOrganizerUpdateList(\n searchParams.page > 1\n ? APPEND_ORGANIZER_UPDATE\n : SET_ORGANIZER_UPDATE_LIST,\n searchParams.campaignId,\n response\n )\n )\n dispatch(finishRemoteOperation(searchParams.campaignId))\n return Promise.resolve(response)\n })\n .catch(err => {\n dispatch(failedCampaignRemoteOperation(searchParams.campaignId, err))\n return Promise.reject(err)\n })\n }\n}\n\n/**\n * @param {campaignId: string, id: string}\n * Returns success after deleting the data\n */\nexport function deleteOrganizerUpdate(campaignId, id) {\n return dispatch => {\n dispatch(startRemoteOperation(campaignId))\n return fetchClient()\n .request(routes.organizer_update.api.index(), {\n method: 'DELETE',\n query: { id, campaignId },\n })\n .then(response => {\n dispatch(removeOrganizerUpdate(campaignId, id))\n dispatch(finishRemoteOperation(campaignId))\n return Promise.resolve()\n })\n .catch(err => {\n dispatch(failedCampaignRemoteOperation(campaignId, err))\n return Promise.reject(err)\n })\n }\n}\n\n/**\n * @param {body: {campaignId: string, subject: string, text: string}}\n * Returns a newly created instance of organizer update\n */\nexport function createOrganizerUpdate(body) {\n return dispatch => {\n dispatch(startRemoteOperation(body.campaignId))\n return fetchClient()\n .request(routes.organizer_update.api.index(), {\n method: 'POST',\n body,\n })\n .then(response => {\n dispatch(addOrganizerUpdate(body.campaignId, response))\n dispatch(finishRemoteOperation(body.campaignId))\n return Promise.resolve(response)\n })\n .catch(err => {\n dispatch(failedCampaignRemoteOperation(body.campaignId, err))\n return Promise.reject(err)\n })\n }\n}\n\n/**\n * @param {\n * campaignId: string,\n * id: string,\n * updatableInstance: [{op: string, path: string, value: string}]\n * }\n * Returns the updated instance of organizer update\n */\n\nexport function editOrganizerUpdate(campaignId, id, updatableInstance) {\n return dispatch => {\n dispatch(startRemoteOperation(campaignId))\n return fetchClient()\n .request(routes.organizer_update.api.index(), {\n method: 'PATCH',\n body: {\n id,\n campaignId,\n updatableInstance,\n },\n })\n .then(response => {\n dispatch(modifyOrganizerUpdate(campaignId, response))\n dispatch(finishRemoteOperation(campaignId))\n return Promise.resolve(response)\n })\n .catch(err => {\n err.updateData = err.message\n dispatch(failedCampaignRemoteOperation(campaignId, err))\n return Promise.reject(err)\n })\n }\n}\n\nexport function setOrganizerUpdateList(type, id, response) {\n return { type, payload: { id, response } }\n}\n\nexport function removeOrganizerUpdate(campaignId, id) {\n return {\n type: DELETE_ORGANIZER_UPDATE,\n payload: { campaignId, id },\n }\n}\n\nexport function modifyOrganizerUpdate(campaignId, response) {\n return {\n type: EDIT_ORGANIZER_UPDATE,\n payload: { campaignId, response },\n }\n}\n\nexport function addOrganizerUpdate(campaignId, response) {\n return {\n type: ADD_ORGANIZER_UPDATE,\n payload: { campaignId, response },\n }\n}\n","import { connect } from 'react-redux'\nimport DeleteUpdateActivity from './delete_update_activity'\nimport { deleteOrganizerUpdate } from '../../../../redux/modules/organizer_update'\nimport { show } from 'redux/modules/toast_notification'\n\nconst mapDispatchToProps = dispatch => {\n return {\n deleteOrganizerActivity(campaignId, id) {\n return dispatch(deleteOrganizerUpdate(campaignId, id))\n },\n onToggleToast(toastId, message) {\n dispatch(show(toastId, message))\n },\n }\n}\n\nexport default connect(\n null,\n mapDispatchToProps\n)(DeleteUpdateActivity)\n","import React, { useEffect, useState } from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport StandardDialog from 'components/common/standard_dialog'\nimport {\n DESCRIPTION_ROWS,\n CROWDFUNDING_DESCRIPTION_LENGTH,\n} from 'shared/lengths'\nimport styles from './post_update_cf.less'\nimport { domOnlyProps } from 'lib/form_utils'\nimport {\n TextInput,\n HeadingText,\n Button,\n TextArea,\n BodyText,\n CaptionText,\n} from '@paypalcorp/pp-react'\nimport { getFormError } from 'lib/validators'\nimport { TOAST_NOTIFICATIONS } from 'shared/shared_consts'\nimport { Message } from '@paypalcorp/worldready-react'\nimport DeleteUpdateActivity from '../delete_organizer_update/delete_update_activity_container'\nimport { appendPath } from 'lib/route_utils'\nimport { trackFPTI } from 'lib/fpti_utils'\nimport { get } from 'lodash'\nimport { trackEventNameClick } from 'lib/fpti_analytics'\nimport { useIntl } from 'intl'\n\nconst PostUpdate = props => {\n const { formatMessage } = useIntl()\n const [showBackDialog, setShowBackDialog] = useState(false)\n\n useEffect(() => {\n if (props.organizerUpdateId) {\n trackFPTI(\n props.campaign,\n 'impression',\n 'dw_giving_edit_update_screen_shown'\n )\n } else {\n trackFPTI(\n props.campaign,\n 'impression',\n 'dw_giving_create_update_screen_shown'\n )\n }\n }, [])\n\n const handleUpdateSubmit = () => {\n trackFPTI(\n props.campaign,\n 'click',\n 'dw_giving_post_update_quit_finish_update_pressed'\n )\n setShowBackDialog(false)\n const request = {\n subject: props.fields.subject.value,\n text: props.fields.text.value,\n }\n return props\n .onSave(request, props.organizerUpdateId)\n .then(response => {\n if (props.organizerUpdateId) {\n props.onToggleToast(TOAST_NOTIFICATIONS.EDIT_SUCCESS)\n editBack()\n props.onToggleToast(\n TOAST_NOTIFICATIONS.EDIT_SUCCESS,\n formatMessage(\n 'components.edit_glimpse.post_update.edit_notification'\n )\n )\n } else {\n goToSharePage(response)\n }\n trackFPTI(\n props.campaign,\n 'ac',\n 'dw_giving_update_post_success_occurred'\n )\n })\n .catch(err => {\n props.router.push({\n pathname: appendPath(location.pathname, 'error'),\n state: { error: err },\n })\n })\n }\n\n const goToSharePage = updateData => {\n const pathname = appendPath(location.pathname, `${updateData.fou_id}/share`)\n props.router.push({\n pathname,\n state: { updateData },\n })\n }\n\n const editBack = params => {\n const { params: { hideBack = false } = {} } = props.router\n if (hideBack || params?.hideBack) {\n props.router.push({\n pathname: '/pools',\n state: { campaignId: props.campaignId },\n })\n } else {\n props.router.goBack()\n }\n }\n\n const handleDialogClose = () => {\n setShowBackDialog(false)\n trackFPTI(\n props.campaign,\n 'click',\n 'dw_giving_post_update_quit_dismiss_pressed',\n 'close'\n )\n }\n\n const handleQuit = () => {\n trackFPTI(\n props.campaign,\n 'click',\n 'dw_giving_post_update_quit_cancel_pressed',\n 'close'\n )\n editBack()\n }\n const {\n fields: { subject, text },\n handleSubmit,\n showDelete,\n organizerUpdateId,\n campaign,\n } = props\n const description = get(props, 'values.text', '')\n if (description.length > CROWDFUNDING_DESCRIPTION_LENGTH) {\n const error = {\n error_desc: `exceed_max_${CROWDFUNDING_DESCRIPTION_LENGTH}_characters`,\n error_code: 'MATCH',\n }\n trackFPTI(\n campaign,\n 'ac',\n 'dw_giving_post_update_form_error_occurred',\n '',\n error\n )\n }\n\n return (\n
    \n {showBackDialog && (\n {\n const { text: errorText, subject: errorSubject } =\n props.errors || {}\n if (errorText || errorSubject) {\n setShowBackDialog(false)\n } else {\n handleUpdateSubmit()\n }\n }}\n onQuit={handleQuit}\n data-testid=\"edit-update\"\n iconName=\"logout\"\n />\n )}\n \n {showDelete ? (\n \n ) : (\n \n )}\n \n \n \n \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {showDelete ? (\n editBack({ hideBack: true })}\n campaign={props.campaign}\n data-testid=\"delete_update_activity\"\n />\n ) : (\n \n \n \n )}\n {\n if (organizerUpdateId) {\n trackEventNameClick({\n event_name: 'dw_giving_edit_update_save_pressed',\n })\n } else {\n trackEventNameClick({\n event_name: 'dw_giving_create_update_save_pressed',\n })\n }\n }}\n >\n \n \n \n )\n}\n\nPostUpdate.propTypes = {\n fields: PropTypes.object.isRequired,\n showDelete: PropTypes.bool,\n location: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n onSave: PropTypes.func,\n handleSubmit: PropTypes.func,\n router: PropTypes.object,\n campaign: PropTypes.object,\n dirty: PropTypes.bool,\n onToggleToast: PropTypes.func,\n organizerUpdateId: PropTypes.string,\n resetError: PropTypes.func,\n campaignId: PropTypes.string,\n campaignError: PropTypes.object,\n errors: PropTypes.object,\n}\n\nexport default cssModules(PostUpdate, styles)\n","export function organizerUpdate(organizerUpdateId, organizerUpdateData) {\n const filterorganizerUpdate = organizerUpdateData.filter(\n element => element.fou_id === organizerUpdateId\n )\n return filterorganizerUpdate.length > 0 ? filterorganizerUpdate[0] : {}\n}\nexport function formUpdatePayload(object) {\n return Object.keys(object).map(key => ({\n op: 'replace',\n path: `/${key}`,\n value: object[key],\n }))\n}\n","import PostUpdate from './post_update_cf'\nimport { reduxForm } from 'redux-form'\nimport formUtils from 'lib/form_utils'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { show } from 'redux/modules/toast_notification'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\nimport { formatMessage } from 'intl'\nimport { combine, required, length } from 'lib/validators'\nimport { TITLE_LENGTH, CROWDFUNDING_DESCRIPTION_LENGTH } from 'shared/lengths'\nimport {\n getOrganizerUpdate,\n editOrganizerUpdate,\n createOrganizerUpdate,\n} from 'redux/modules/organizer_update'\nimport { organizerUpdate, formUpdatePayload } from 'lib/organizerupdate'\nimport _ from 'lodash'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n const organizerUpdateItems = _.get(campaign, 'organizerUpdate.items') || []\n const organizerUpdateId = _.get(props, 'routeParams.fouId') || ''\n const postupdate = organizerUpdate(organizerUpdateId, organizerUpdateItems)\n\n const subject = _.get(postupdate, 'subject') || ''\n const text = _.get(postupdate, 'text') || ''\n const validators = [\n required(\n 'text',\n formatMessage(\n props.worldReady,\n 'components.edit_glimpse.post_update.text_required'\n )\n ),\n length(\n 'text',\n CROWDFUNDING_DESCRIPTION_LENGTH,\n formatMessage(\n props.worldReady,\n 'components.edit_glimpse.post_update.text_too_long',\n { maxLength: CROWDFUNDING_DESCRIPTION_LENGTH }\n )\n ),\n length(\n 'subject',\n TITLE_LENGTH,\n formatMessage(\n props.worldReady,\n 'components.edit_glimpse.post_update.subject_too_long',\n { maxLength: TITLE_LENGTH }\n )\n ),\n required(\n 'subject',\n formatMessage(\n props.worldReady,\n 'components.edit_glimpse.post_update.subject_required'\n )\n ),\n ]\n return {\n validate: combine(...validators),\n initialValues: {\n subject: subject,\n text: text,\n },\n showDelete: organizerUpdateId,\n organizerUpdateId: organizerUpdateId,\n campaignId: props.campaignId,\n campaignError: campaign.err,\n campaign: campaign,\n }\n}\n\nconst mapDispatchToProps = (dispatch, { campaignId }) => {\n return {\n onSave(formValues, organizerUpdateId) {\n if (organizerUpdateId) {\n const formattedPayload = formUpdatePayload(formValues)\n return dispatch(\n editOrganizerUpdate(campaignId, organizerUpdateId, formattedPayload)\n )\n } else {\n return dispatch(\n createOrganizerUpdate({\n campaignId,\n subject: formValues.subject,\n text: formValues.text,\n })\n )\n }\n },\n onToggleToast(toastId, message) {\n dispatch(show(toastId, message))\n },\n fetchOrganizerUpdateList(page = 1, size = 1) {\n return dispatch(\n getOrganizerUpdate(campaignId, { page, size, campaignId })\n )\n },\n }\n}\n\nexport default injectWorldReady(\n reduxForm(\n {\n form: 'postupdate',\n fields: ['subject', 'text'],\n },\n mapStateToProps,\n mapDispatchToProps\n )(formUtils(PostUpdate))\n)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './share_update_activity.less'\nimport Clipboard from 'clipboard'\nimport FirstChild from 'components/common/first_child'\nimport ReactCSSTransitionGroup from 'react-transition-group/CSSTransitionGroup'\nimport { CaptionText, Link, LinkIcon, Row, Col } from '@paypalcorp/pp-react'\nimport { Message } from '@paypalcorp/worldready-react'\n\nimport {\n EmailSharing,\n TwitterSharing,\n FacebookSharing,\n WhatsAppSharing,\n SmsSharing,\n} from 'components/common/share_buttons'\n\nconst TOOLTIP_SHOW_DELAY = 750\nconst TOOLTIP_ANIMATION_DURATION = 250\n\nclass ShareUpdateActivity extends React.Component {\n static propTypes = {\n shareUrl: PropTypes.string.isRequired,\n displayUrl: PropTypes.string.isRequired,\n shareable: PropTypes.bool.isRequired,\n appId: PropTypes.number.isRequired,\n\n onClickOverride: PropTypes.func,\n\n showFacebook: PropTypes.bool,\n showMessenger: PropTypes.bool,\n showTwitter: PropTypes.bool,\n showWhatsApp: PropTypes.bool,\n showEmail: PropTypes.bool,\n showSms: PropTypes.bool,\n showSubtext: PropTypes.bool,\n description: PropTypes.string,\n styles: PropTypes.object,\n isMobile: PropTypes.bool,\n campaignId: PropTypes.string,\n }\n\n static defaultProps = {\n shareable: true,\n showFacebook: true,\n showMessenger: true,\n showTwitter: true,\n showWhatsApp: true,\n showEmail: true,\n showSms: true,\n showSubtext: false,\n isMobile: false,\n inline: true,\n }\n\n state = {\n copyText: this.props.displayUrl,\n showTooltip: false,\n errorMsg: false,\n }\n\n componentDidMount() {\n if (this.props.shareable) {\n this.clipboard = new Clipboard(this.copyLink, {\n text: () => this.state.copyText,\n })\n this.clipboard.on('success', this.handleCopySuccess)\n }\n }\n\n componentWillUnmount() {\n if (this.clipboard) {\n this.clipboard.destroy()\n }\n }\n\n copyValidation = () => {\n if (this.state.copyText === '') {\n this.setState({ errorMsg: true })\n } else {\n this.setState({ errorMsg: false })\n }\n }\n\n handleChange = event => {\n this.setState({ copyText: event.target.value, errorMsg: false })\n }\n\n handleCopySuccess = e => {\n this.setState({ showTooltip: true })\n setTimeout(() => {\n this.setState({ showTooltip: false })\n }, TOOLTIP_SHOW_DELAY)\n }\n\n render() {\n const transitionNames = {\n enter: this.props.styles['tooltip-enter'],\n enterActive: this.props.styles['tooltip-enter-active'],\n leave: this.props.styles['tooltip-leave'],\n leaveActive: this.props.styles['tooltip-leave-active'],\n }\n\n return (\n
    \n {this.state.errorMsg && (\n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n {\n this.copyLink = copyLink\n }}\n onClick={this.copyValidation}\n title=\"copy\"\n data-testid=\"copy-text\"\n >\n \n \n {this.props.showSubtext && (\n
    \n \n
    \n )}\n \n {this.state.showTooltip && (\n
    \n \n
    \n )}\n \n
    \n this.copyLink.click()}\n styleName=\"share-label share-label-cursor\"\n >\n \n \n \n
    \n
    \n )\n }\n}\n\nexport default cssModules(ShareUpdateActivity, styles, {\n allowMultiple: true,\n})\n","import { getI18n } from 'intl'\nimport {\n campaignUrlForDisplay,\n campaignUrlWithMeDomain,\n} from 'lib/campaign_url'\nimport { canShareSelector } from 'redux/selectors/share'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\n\nconst i18nBase = getI18n('components/pages/crowdfunding/update_share')\n\nexport function getUpdateActivityShareDetails(state, ownProps) {\n const canShare = canShareSelector(state)\n const campaign = getCampaignSelector(state, ownProps)\n const shareUrl = campaignUrlWithMeDomain(campaign.id, campaign.campaign_type)\n const campaignTitle = campaign.title\n\n const emailSubject = i18nBase('email_subject', {\n campaignTitle,\n organizerName: campaign.owner.full_name,\n })\n\n const body = i18nBase('body', {\n campaignTitle,\n shareUrl,\n })\n\n let props = {\n shareable: true,\n displayUrl: campaignUrlForDisplay(campaign.id, campaign.campaign_type),\n appId: state.social.app_id,\n emailBody: body,\n emailSubject,\n isMobile: state.device_info.isMobile,\n shareMsgFB: body,\n shareMsgTwitter: `${body}\\n#PeopleHelpingPeople`,\n shareMsgWhatsapp: body,\n }\n\n if (!canShare) {\n props.showFacebook = false\n props.showMessenger = false\n props.showTwitter = false\n props.showWhatsApp = false\n props.showEmail = false\n props.showSms = false\n }\n\n return props\n}\n","import ShareUpdateActivity from './share_update_activity'\nimport { connect } from 'react-redux'\nimport { getUpdateActivityShareDetails } from 'lib/share_update'\n\nconst mapStateToProps = (state, ownProps) => {\n return getUpdateActivityShareDetails(state, ownProps)\n}\n\nexport default connect(\n mapStateToProps,\n {}\n)(ShareUpdateActivity)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './postupdate_share.less'\nimport CrossFadeTransition from 'components/common/transitions/cross_fade'\nimport ShareUpdateActivity from 'components/common/share_update_activity'\nimport { BodyText, HeadingText } from '@paypalcorp/pp-react'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { trackFPTI } from 'lib/fpti_utils'\nimport Pictograms from 'components/common/pictograms/pictograms'\n\nclass PostUpdateShare extends React.Component {\n static propTypes = {\n campaignId: PropTypes.string,\n cdnHost: PropTypes.string,\n campaign: PropTypes.object,\n }\n\n render() {\n const { campaign } = this.props\n trackFPTI(campaign, 'impression', 'dw_giving_share_update_screen_shown')\n const Component = (\n
    \n
    \n \n
    \n \n \n \n \n \n \n
    \n \n
    \n
    \n )\n\n return {Component}\n }\n}\n\nexport default cssModules(PostUpdateShare, styles)\n","import PostUpdateShare from './postupdate_share'\nimport { connect } from 'react-redux'\nimport preventNavigation from 'components/common/prevent_navigation'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n return {\n cdnHost: state.geo.cdnHost,\n campaign,\n }\n}\n\nconst mapDispatchToProps = (dispatch, { campaignId }) => {\n return {}\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(preventNavigation(PostUpdateShare, props => props.operatingRemotely))\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { getI18n } from 'intl'\nimport StandardError from 'components/common/standard_error'\nimport { FOU_LIMIT_REACHED_ERROR } from 'shared/shared_consts'\nimport { Button } from '@paypalcorp/pp-react'\nimport { get } from 'lodash'\nimport styles from './post_update_error.less'\nimport cssModules from 'react-css-modules'\nimport { withRouter } from 'react-router'\nimport { trackFPTI } from 'lib/fpti_utils'\nimport { Message } from '@paypalcorp/worldready-react'\n\nconst i18n = getI18n('components/edit_glimpse/post_update')\n\nclass PostUpdateError extends React.Component {\n static propTypes = {\n error: PropTypes.object,\n router: PropTypes.routerShape,\n campaign: PropTypes.object,\n }\n handleBack = () => {\n this.props.router.push({ pathname: `/pools` })\n }\n\n componentDidMount() {\n const { campaign, error } = this.props\n const errorName = get(this.props, 'error.name')\n let errorObject = error\n if (errorName === FOU_LIMIT_REACHED_ERROR) {\n errorObject = {\n error_desc: 'reached_limit',\n error_code: '422',\n }\n }\n trackFPTI(\n campaign,\n 'impression',\n 'dw_giving_post_update_error_screen_shown',\n '',\n errorObject\n )\n }\n render() {\n const error = get(this.props, 'error.name')\n const isLimitReachedError = error === FOU_LIMIT_REACHED_ERROR\n\n return (\n
    \n : null}\n title={\n isLimitReachedError\n ? i18n('error_max_update_title')\n : i18n('error_title')\n }\n subtitle={\n isLimitReachedError ? (\n i18n('error_max_update_subtitle')\n ) : (\n <>\n {' '}\n \n \n )\n }\n backButton={isLimitReachedError ? false : true}\n extraContent={\n \n {isLimitReachedError\n ? i18n('error_max_update_done_button')\n : i18n('back')}\n \n }\n iconName={isLimitReachedError ? '' : 'undo'}\n />\n
    \n )\n }\n}\n\nexport default withRouter(cssModules(PostUpdateError, styles))\n","import PostUpdateError from './post_update_error'\nimport { connect } from 'react-redux'\nimport { withRouter } from 'react-router'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n return {\n error: campaign.err,\n campaign,\n }\n}\n\nexport default withRouter(connect(mapStateToProps)(PostUpdateError))\n","import React from 'react'\nimport {\n HeadingText,\n Button,\n Link,\n IconButton,\n AddIcon,\n} from '@paypalcorp/pp-react'\nimport { Link as RouterLink } from 'react-router'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './view_updates.less'\nimport UpdateRow from 'components/contributions_list/rows/update_row'\nimport { glimpseRoute } from 'lib/route_utils'\nimport _ from 'lodash'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { trackFPTI } from 'lib/fpti_utils'\nimport { trackClick, trackImpression } from 'lib/fpti_analytics'\n\nclass ViewUpdatesActivity extends React.Component {\n static propTypes = {\n campaignId: PropTypes.string,\n activitiesCount: PropTypes.string,\n organizerUpdate: PropTypes.object,\n fetchOrganizerUpdateList: PropTypes.func,\n router: PropTypes.object,\n isDonerView: PropTypes.bool,\n campaign: PropTypes.object,\n }\n state = {\n page: 1,\n }\n onShowMore = (eventType, eventName) => {\n this.props\n .fetchOrganizerUpdateList(this.state.page, 5)\n .then(data => {\n this.setState({ page: this.state.page + 1 })\n const count = _.get(data, 'total') || 0\n\n if (eventType === 'impression') {\n trackImpression({ event_name: eventName, count })\n } else {\n trackClick({\n clickName: eventName,\n data: {\n event_name: eventName,\n count,\n },\n })\n }\n })\n .catch(err => {\n const { pathname } = this.props.router.location\n const nextPathname = `${pathname}/error`\n this.props.router.push({\n pathname: `${nextPathname}`,\n state: { updateData: err.updateData },\n })\n })\n }\n componentDidMount() {\n const eventName = this.props.isDonerView\n ? 'dw_giving_donor_update_list_screen_shown'\n : 'dw_giving_organizer_update_list_screen_shown'\n this.onShowMore('impression', eventName)\n }\n confirmNavigation = callback => {\n this.trackFPTI(\n this.props.campaign,\n 'click',\n 'dw_giving_create_update_dismiss_pressed',\n 'close'\n )\n }\n\n trackPostUpdateEvent = total => {\n trackFPTI(\n this.props.campaign,\n 'click',\n 'dw_giving_organizer_update_list_post_pressed',\n '',\n '',\n total\n )\n }\n render() {\n const { campaignId, organizerUpdate, isDonerView, campaign } = this.props\n const postUpdateUrl = `c/${campaignId}/postupdate`\n const donerViewUrl = `c/${campaignId}/viewupdates`\n const total = _.get(organizerUpdate, 'total', 0)\n let updateState = 'multiple'\n if (total === 0) {\n updateState = 'zero'\n } else if (total === 1) {\n updateState = 'one'\n }\n return (\n <>\n
    \n \n \n \n {total > 0 &&\n !isDonerView && (\n <>\n this.trackPostUpdateEvent(total)}\n >\n \n \n
    \n this.trackPostUpdateEvent(total)}\n />\n
    \n \n )}\n
    \n \n {Math.ceil(total / 5) >= this.state.page && (\n
    \n {\n const isDonerEventName = isDonerView\n ? 'dw_giving_donor_update_list_show_previous_pressed'\n : 'dw_giving_organizer_update_list_show_previous_pressed'\n this.onShowMore('click', isDonerEventName)\n }}\n data-testid=\"show-more-button\"\n >\n \n \n
    \n )}\n \n )\n }\n}\n\nexport default cssModules(ViewUpdatesActivity, styles)\n","import ViewUpdatesActivity from './view_updates_activity'\nimport { connect } from 'react-redux'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { getOrganizerUpdate } from 'redux/modules/organizer_update'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n return {\n organizerUpdate: campaign.organizerUpdate,\n campaign,\n }\n}\n\nconst mapDispatchToProps = (dispatch, { campaignId }) => {\n return {\n fetchOrganizerUpdateList(page = 1, size = 1) {\n return dispatch(getOrganizerUpdate({ page, size, campaignId }))\n },\n }\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(ViewUpdatesActivity)\n","import OrganizerUpdateDetail from './organizer_update_detail'\nimport { connect } from 'react-redux'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { get } from 'lodash'\nimport { organizerUpdate } from 'lib/organizerupdate'\nimport { organizerUpdateState } from 'lib/fpti_utils'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n const organizerUpdateItems = get(campaign, 'organizerUpdate.items') || []\n const organizerUpdateId = get(props, 'routeParams.fouId', '')\n const selectedOrganizerUpdate = organizerUpdate(\n organizerUpdateId,\n organizerUpdateItems\n )\n const getOrganizerUpdate = get(campaign, 'organizerUpdate') || {}\n const updateState = organizerUpdateState(getOrganizerUpdate)\n return {\n organizerUpdateRow: selectedOrganizerUpdate,\n postUpdateUrl: `c/${campaign.id}/postupdate`,\n enableEditButton: get(props, 'params.enableEditButton', false),\n campaign,\n eventName: 'dw_giving_update_detail_screen_shown',\n updateState,\n }\n}\n\nexport default connect(mapStateToProps)(OrganizerUpdateDetail)\n","import EditGlimpse from 'components/glimpses/edit_glimpse'\nimport PostUpdate from 'components/glimpses/edit_glimpse/post_update_cf'\nimport PostUpdateShare from 'components/pages/crowdfunding/postupdate_share'\nimport PostUpdateError from 'components/glimpses/edit_glimpse/post_update_error'\nimport ViewUpdatesActivity from 'components/glimpses/edit_glimpse/viewupdates'\nimport { trackEnter, trackChange, firstInGlimpse } from 'lib/glimpse'\nimport {\n getStepName,\n glimpselessRoute,\n assertNoDeepLink,\n} from 'lib/route_utils'\nimport { isCampaignOwner } from 'lib/is_owner'\nimport { NEW_CAMPAIGN_ID } from 'redux/modules/campaign'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { fromVeniceSelector } from 'redux/selectors/venice'\nimport { POOLS_CAMPAIGN_TYPES } from 'shared/shared_consts'\nimport OrganizerUpdateDetail from 'components/glimpses/edit_glimpse/organizer_update_detail'\n\nconst INITIAL_STEP = 'manage'\nconst INITIAL_STEP_IN_PREVIEW = undefined\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\n\nexport default (store, history) => ({\n path: 'postupdate',\n component: { glimpse: EditGlimpse },\n indexRoute: {\n getComponent(nextState, callback) {\n const campaign = getCampaignSelector(store.getState(), {\n campaignId: nextState.params.campaignId,\n })\n\n if (campaign.campaign_type === CROWD_FUNDING) {\n return callback(null, PostUpdate)\n }\n },\n },\n onEnter(nextState, replace) {\n const campaignId = nextState.params.campaignId\n const inPreview = campaignId === NEW_CAMPAIGN_ID\n if (!store.getState()?.flags?.isOrganizerUpdatesEnabled) {\n replace('/pools')\n return\n }\n if (isCampaignOwner(store, campaignId) || inPreview) {\n trackEnter('postupdate', nextState, replace)\n nextState.params.hideBack = true\n const stepName = getStepName('postupdate', nextState.routes)\n if (stepName !== 'transfer') {\n // Only support deep linking into edit flow is the user is coming from Venice\n const isVeniceUser = true || fromVeniceSelector()(store.getState())\n if (!isVeniceUser) {\n assertNoDeepLink(\n 'postupdate',\n inPreview ? INITIAL_STEP_IN_PREVIEW : INITIAL_STEP,\n nextState,\n replace\n )\n }\n }\n } else {\n replace(glimpselessRoute('postupdate'))\n }\n },\n onChange(prevState, nextState, replace) {\n trackChange('postupdate', prevState, nextState, replace)\n nextState.params.hideBack = firstInGlimpse('postupdate')\n },\n childRoutes: [\n {\n path: 'viewupdates',\n component: ViewUpdatesActivity,\n onEnter(nextState, replace) {\n nextState.params.isOwnerView = true\n },\n },\n {\n path: ':fouId/updatedetails',\n component: OrganizerUpdateDetail,\n onEnter(nextState, replace) {\n nextState.params.enableEditButton = true\n nextState.params.hideLogo = true\n nextState.params.hideButton = true\n },\n },\n {\n path: 'error',\n component: PostUpdateError,\n },\n {\n path: ':fouId',\n component: PostUpdate,\n onEnter(nextState, replace) {\n nextState.params.hideLogo = true\n nextState.params.hideButton = true\n },\n },\n {\n path: ':fouId/share',\n component: PostUpdateShare,\n onEnter(nextState, replace) {\n nextState.params.hideLogo = true\n nextState.params.hideButton = true\n },\n },\n ],\n})\n","import React from 'react'\nimport CountryBlockedError from 'components/common/country_blocked'\nimport { trackEnter } from 'lib/glimpse'\nimport { isCampaignOwner } from 'lib/is_owner'\nimport { hasSendChildRoute } from 'lib/contribute'\nimport { isGNSelector } from 'redux/selectors/campaign'\nimport { glimpselessRoute, glimpseRoute } from 'lib/route_utils'\n\nexport default (store, history) => ({\n path: 'send',\n getComponent(nextState, callback) {\n if (!store.getState().isContributionEligible) {\n return callback(null, {\n glimpse: props => ,\n })\n }\n return null\n },\n onEnter(nextState, replace) {\n trackEnter('send', nextState, replace)\n const isOwner = isCampaignOwner(store, nextState.params.campaignId)\n const isGN = isGNSelector(store.getState(), {\n campaignId: nextState.params.campaignId,\n })\n const isMobilePledgeRoute = isOwner && isGN\n\n if (isMobilePledgeRoute) {\n const childRoutes = ['amount', 'nochipin', 'note', 'review']\n if (!hasSendChildRoute(childRoutes, nextState.location.pathname)) {\n replace(glimpseRoute('edit', 'pledge', 'send'))\n return\n }\n }\n replace(glimpselessRoute('send'))\n return\n },\n})\n","export function hasSendChildRoute(childRoutes, pathname) {\n return childRoutes.some(childRoute => {\n return pathname.includes(childRoute)\n })\n}\n","import { trackEnter } from 'lib/glimpse'\nimport { glimpselessRoute } from 'lib/route_utils'\n\nexport default (store, history) => ({\n path: 'guest',\n getComponent(nextState, callback) {\n return null\n },\n onEnter(nextState, replace) {\n trackEnter('guest', nextState, replace)\n replace(glimpselessRoute('guest'))\n return\n },\n})\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\n\nimport Modal from 'components/common/modal'\n\nimport cssModules from 'react-css-modules'\nimport styles from './campaign_not_found.less'\nimport { getI18n } from 'intl'\nimport { baseUrl } from 'shared/campaign_url'\nimport { trackClick, trackImpression } from 'lib/fpti_analytics'\n\nconst i18n = getI18n('components/pages/campaign_not_found')\n\nconst GENEROSITY_NETWORK_URL = baseUrl(\n window.location.hostname,\n '/generosity-network'\n)\n\nclass CampaignNotFound extends React.Component {\n static propTypes = {\n dispatch: PropTypes.func,\n cdnHost: PropTypes.string,\n }\n\n componentDidMount() {\n trackImpression({\n event_name: 'dw_giving_detail_fundraiser_unavailable_screen_shown',\n })\n }\n\n render() {\n const WARNING_SVG_URL = `https://${\n this.props.cdnHost\n }/paypal-ui/illustrations/svg/warning.svg`\n return (\n \n
    \n
    \n \n
    \n
    {i18n('title_cf')}
    \n
    {i18n('description_cf')}
    \n {\n trackClick({\n clickName: 'dw_giving_detail_fundraiser_unavailable_gn_pressed',\n data: {\n event_name:\n 'dw_giving_detail_fundraiser_unavailable_gn_pressed',\n },\n })\n }}\n >\n {i18n('cta_cf')}\n \n
    \n
    \n )\n }\n}\n\nexport default connect()(cssModules(CampaignNotFound, styles))\n","import CampaignNotFound from './campaign_not_found'\nimport { connect } from 'react-redux'\n\nconst mapStateToProps = (state, props) => {\n return {\n cdnHost: state.geo.cdnHost,\n }\n}\n\nexport default connect(mapStateToProps)(CampaignNotFound)\n","import { connect } from 'react-redux'\nimport CrowdfundingDetailView from 'components/crowdfunding_detail_view'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { getCategoryDefaultCover, getMainCategory } from 'client/lib/category'\nimport {\n clearDNWTransactionError,\n setIsLoading,\n} from 'redux/modules/dnw_transaction'\nimport { getStagingHostName } from '@paypalcorp/instance-location'\nimport { publicContributionsListSelector } from 'redux/selectors/contributions'\n\nconst mapStateToProps = (state, ownProps) => {\n const campaign = getCampaignSelector(state, ownProps)\n const mainCategory = getMainCategory(campaign.category)\n const defaultCategoryCover = getCategoryDefaultCover(state, mainCategory)\n const isLoadingDNWTransaction = state.dnw_transaction.isLoading\n const countryCode = campaign.country_code\n const geo = state.geo\n const isMobile = state.device_info.isMobile\n const paymentsTokenError = state.dnw_transaction.error\n const hasMarketplaceTreatment = state.flags.has_marketplace_treatment\n const hostName = [state.deployEnv.isDev, state.deployEnv.isStage].includes(\n true\n )\n ? getStagingHostName()\n : state.geo.paypalDomain\n\n return {\n campaign,\n countryCode,\n defaultCategoryCover,\n geo,\n hasMarketplaceTreatment,\n hostName,\n isLoadingDNWTransaction,\n isMobile,\n paymentsTokenError,\n contributions: publicContributionsListSelector(state, ownProps),\n }\n}\nconst mapDispatchToProps = {\n clearDNWTransactionError,\n setIsLoading,\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(CrowdfundingDetailView)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './left_side_hub_campaign.less'\nimport Strip from 'components/strip'\nimport { getCampaignTotalValue } from 'lib/campaign'\nimport FlatProgress from 'components/common/flat_progress'\nimport {\n Badge,\n BodyText,\n Card,\n CaptionText,\n CausesIcon,\n ClockIcon,\n} from '@paypalcorp/pp-react'\nimport { useIntl } from 'intl'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { POOL_TYPE } from 'shared/shared_consts'\nimport clsx from 'clsx'\n\nconst LeftSideHubCampaign = props => {\n const {\n campaign: {\n background_pan,\n background_thumbnail_image,\n can_chip_in,\n category_image: categoryImage,\n charity,\n currency,\n current_value,\n end_date,\n goal,\n gradient_color,\n moneybox_amount,\n pledge,\n title,\n type,\n },\n } = props\n\n const hasGoalAmount = goal > 0\n const isCharity = !!charity && charity.name\n const { formatCurrency, formatDate, formatMessage } = useIntl()\n\n const moneyBoxAmountFormatted = formatCurrency(moneybox_amount || 0, currency)\n\n const trackFPTI = () => {\n props.leftSideHubCallback(props.index)\n }\n\n const currentValue = getCampaignTotalValue({\n currentValue: current_value,\n pledge,\n })\n\n const contentId = can_chip_in\n ? 'components.pages.hub.hub_campaign.ends_on'\n : 'components.pages.hub.hub_campaign.ended_on'\n\n const endDateFormatted = formatMessage(contentId, {\n date: formatDate(end_date, { style: 'date-short' }),\n })\n\n return (\n \n \n
    \n
    \n \n {endDateFormatted}\n \n
    \n\n
    \n {type !== POOL_TYPE.CHARITY && (\n <>\n \n \n \n \n {moneyBoxAmountFormatted}\n \n \n )}\n\n {type === POOL_TYPE.PRIVATE &&\n !hasGoalAmount && (\n <>\n \n \n \n \n {formatCurrency(currentValue, currency)}\n \n \n )}\n
    \n\n
    \n {type === POOL_TYPE.PRIVATE && !hasGoalAmount ? (\n {title}\n ) : (\n \n )\n }\n displayTotalAmount={true}\n size=\"sm\"\n />\n )}\n
    \n
    \n
    \n \n
    \n
    \n \n )\n}\n\nLeftSideHubCampaign.propTypes = {\n campaign: PropTypes.object,\n index: PropTypes.number,\n selectedCard: PropTypes.number,\n leftSideHubCallback: PropTypes.func,\n}\n\nexport default cssModules(LeftSideHubCampaign, styles, {\n allowMultiple: true,\n})\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport {\n Row,\n Col,\n Link,\n Button,\n Container,\n CaptionText,\n HeadingText,\n} from '@paypalcorp/pp-react'\nimport styles from './empty_hub.less'\nimport { Message } from '@paypalcorp/worldready-react'\nimport Pictograms from 'components/common/pictograms'\n\nclass EmptyHub extends React.Component {\n static propTypes = {\n title: PropTypes.string.isRequired,\n }\n\n isOpenTab = this.props.title === 'open'\n\n render() {\n return (\n \n \n \n \n {this.isOpenTab ? (\n <>\n \n \n \n ) : (\n <>\n \n \n \n )}\n \n\n {this.isOpenTab ? (\n <>\n \n \n \n \n \n \n \n ) : (\n \n \n \n )}\n \n \n \n )\n }\n}\n\nexport default cssModules(EmptyHub, styles, { allowMultiple: true })\n","import React from 'react'\nimport StandardError from 'components/common/standard_error'\nimport { GN_DISCLAIMERS } from 'shared/shared_consts'\nimport { trackImpression } from 'lib/fpti_analytics'\nimport { CREATION_BLOCKS } from '../create/create'\nimport { PAYPAL_THEME, UserProfileIcon, Button } from '@paypalcorp/pp-react'\nimport PropTypes from 'prop-types'\nimport styles from './create_fundraiser_error.less'\nimport cssModules from 'react-css-modules'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { useIntl, getI18n } from 'intl'\n\nconst i18n = getI18n('components/pages/create/create')\nconst i18nError = getI18n('errors/errors')\n\nCreateFundraiserError.propTypes = {\n blockType: PropTypes.oneOf(Object.values(CREATION_BLOCKS)),\n countryName: PropTypes.string,\n email: PropTypes.string,\n countryCode: PropTypes.string,\n charity: PropTypes.object,\n logoutUrl: PropTypes.string,\n}\n\nfunction CreateFundraiserError({\n blockType,\n charity,\n countryCode,\n email,\n logoutUrl,\n countryName,\n}) {\n const { formatMessage } = useIntl()\n const shouldShowButton =\n blockType === CREATION_BLOCKS.byAccountType ||\n blockType === CREATION_BLOCKS.byUnconfirmed\n\n const { sysColorPrimaryMain } = PAYPAL_THEME\n\n if (charity) {\n trackImpression({\n error_desc: blockType || 'CREATE_ERROR',\n error_code: 500,\n event_name: 'dw_giving_failed_customer_interaction_occurred',\n screen: 'start_fundraiser',\n event_type: 'ac',\n })\n }\n\n if (blockType === CREATION_BLOCKS.byGNAccountRestricted) {\n return (\n \n {i18n('error_account_restricted_button')}\n \n }\n iconName=\"passkey\"\n />\n )\n } else if (blockType === CREATION_BLOCKS.byAccountType) {\n return (\n \n }\n title={i18n(`${blockType}_title`)}\n backButton={shouldShowButton}\n extraContent={\n \n {i18n('signin_link')}\n \n }\n />\n )\n } else if (blockType === CREATION_BLOCKS.genericError) {\n return (\n \n )\n } else if (blockType === CREATION_BLOCKS.currencyMismatchError) {\n trackImpression({\n error_desc: blockType || 'CREATE_ERROR',\n event_name: 'dw_giving_Create_fundraiser_with_Cross_Currency_mismatch',\n screen: 'start_fundraiser',\n event_type: 'ac',\n })\n return (\n \n \n
    \n }\n extraContent={\n <>\n
    \n \n \n \n
    \n
    \n \n \n \n
    \n \n }\n iconName=\"cash\"\n />\n )\n }\n return (\n \n {i18n('unconfirmed_settings_link')}\n \n ) : (\n undefined\n )\n }\n />\n )\n}\n\nexport default cssModules(CreateFundraiserError, styles)\n","import CreateFundraiserError from './create_fundraiser_error'\nimport { connect } from 'react-redux'\nimport { loginUrlSelector, logoutUrlSelector } from 'redux/selectors/login'\n\nconst mapStateToProps = (state, props) => {\n const countryCode = state.country.country_code || 'US'\n const loginUrl = loginUrlSelector({ returnUri: window.location.href })(state)\n\n return {\n countryCode,\n email: state.current_user.email,\n countryName: state.country.country_name,\n logoutUrl: logoutUrlSelector({ returnUri: loginUrl })(state),\n }\n}\n\nexport default connect(mapStateToProps)(CreateFundraiserError)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport ReactCSSTransitionGroup from 'react-transition-group/CSSTransitionGroup'\nimport cssModules from 'react-css-modules'\nimport { getStepName } from 'lib/route_utils'\nimport { hubPageUrl } from 'lib/campaign_url'\nimport StandardDialog from 'components/common/standard_dialog'\nimport ModalWizard from 'components/modal_wizard'\nimport Modal from 'components/common/modal'\nimport ModalAnimations from 'components/common/transitions/modal_animations'\nimport { POOLS_CAMPAIGN_TYPES, SCREEN_NAME_MAPPING } from 'shared/shared_consts'\nimport {\n trackImpression,\n trackClick,\n trackEventNameClick,\n} from 'lib/fpti_analytics'\nimport styles from './create.less'\nimport CreateFundraiserError from '../create_fundraiser_error/create_fundraiser_error_container'\nimport { Message } from '@paypalcorp/worldready-react'\n\nexport const TRANSITION_DURATION = 750\nexport const CREATION_BLOCKS = {\n byKillSwitch: 'kill_switched',\n byCountry: 'blocked',\n byAccountType: 'fundraiser_blocked',\n byUnconfirmed: 'unconfirmed',\n byAccountRestricted: 'account_resrticted',\n byGNAccountRestricted: 'error_account_restricted_title',\n genericError: 'genericError',\n currencyMismatchError: 'currencyMismatchError',\n}\n\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\n\nclass CreatePage extends React.Component {\n static propTypes = {\n blockType: PropTypes.oneOf(Object.values(CREATION_BLOCKS)),\n campaignType: PropTypes.string,\n children: PropTypes.any,\n countryName: PropTypes.string,\n creationError: PropTypes.object,\n email: PropTypes.string,\n hideClose: PropTypes.bool,\n location: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n operatingRemotely: PropTypes.bool,\n countryCode: PropTypes.string,\n charity: PropTypes.object,\n cdnHost: PropTypes.string,\n params: PropTypes.object,\n routes: PropTypes.array.isRequired,\n }\n\n state = {\n showCloseDialog: false,\n }\n\n trackFPTI = (type, eventName, link) => {\n const currentStep = getStepName('create-crowdfunding', this.props.routes)\n let eccd\n if (\n this.props.blockType === CREATION_BLOCKS.byAccountRestricted ||\n this.props.blockType === CREATION_BLOCKS.byGNAccountRestricted\n ) {\n eccd = 'MATCH'\n } else {\n return false\n }\n\n if (type === 'impression') {\n trackImpression({\n event_name: eventName,\n screen: SCREEN_NAME_MAPPING[currentStep],\n eccd: eccd,\n error_desc: this.props.blockType,\n })\n } else {\n trackClick({\n event_name: eventName,\n eccd: eccd,\n link: link,\n })\n }\n }\n\n handleDismissEvents = currentStep => {\n const stepToEventNameMapping = {\n types: 'dw_giving_intro_fundraiser_dismiss_pressed',\n basics: 'dw_giving_create_fundraiser_dismiss_pressed',\n story: 'dw_giving_fundraiser_tell_story_dismiss_pressed',\n cover: 'dw_giving_fundraiser_add_photo_dismiss_pressed',\n 'select-cover': 'dw_giving_fundraiser_select_photo_dismiss_pressed',\n nonprofit: 'dw_giving_find_fundraiser_charity_dismiss_pressed',\n }\n if (stepToEventNameMapping[currentStep]) {\n trackEventNameClick({\n event_name: stepToEventNameMapping[currentStep],\n dismiss_method: 'close',\n })\n } else {\n this.trackFPTI('click', 'pools_create_error_close_pressed', 'close')\n }\n }\n\n handleClose = () => {\n const currentStep = getStepName('create-crowdfunding', this.props.routes)\n const currentStepInCreateFlow = getStepName('create', this.props.routes)\n\n this.handleDismissEvents(currentStep)\n if (\n currentStepInCreateFlow === 'types' ||\n currentStep === 'types' ||\n currentStep === 'publish' ||\n currentStep === 'share/:campaignId' ||\n currentStep === 'basics' ||\n currentStep === 'nonprofit'\n ) {\n this.handleCloseDialogOk()\n } else {\n this.setState({ showCloseDialog: true })\n trackImpression({\n event_name: 'dw_giving_quit_creating_fundraiser_screen_shown',\n })\n }\n }\n\n closeDialog = () => {\n this.setState({ showCloseDialog: false })\n trackEventNameClick({\n event_name: 'dw_giving_quit_creating_fundraiser_cancel_pressed',\n })\n }\n\n handleCloseDialogOk = () => {\n trackEventNameClick({\n event_name: 'dw_giving_quit_creating_fundraiser_quit_pressed',\n })\n if (document.referrer.indexOf('/create-crowdfunding') > -1) {\n // sometimes the referrer is the same page\n location.href = hubPageUrl()\n } else if (\n document.referrer.indexOf('/signin') > -1 &&\n window.history.length > 2\n ) {\n window.history.go(-2)\n } else {\n location.href = document.referrer || hubPageUrl()\n }\n }\n\n getErrorComponent = () => {\n const { charity, blockType } = this.props\n\n return (\n \n \n \n )\n }\n\n render() {\n const child = React.Children.only(this.props.children)\n const stepName = this.props.params.nextStep\n const prevStepName = this.props.params.prevStep\n const isInitialState =\n this.props.location.state && this.props.location.state.initial\n\n const movingForward = this.props.location.action !== 'POP'\n let transitionNames\n\n if (prevStepName === 'preview') {\n transitionNames = {\n enter: styles['create-modal-enter'],\n enterActive: styles['create-modal-enter-active'],\n leave: styles['preview-leave'],\n leaveActive: styles['preview-leave-active'],\n }\n } else if (stepName === 'preview') {\n transitionNames = {\n enter: styles['preview-enter'],\n enterActive: styles['preview-enter-active'],\n leave: styles['create-modal-leave'],\n leaveActive: styles['create-modal-leave-active'],\n }\n } else {\n transitionNames = {}\n }\n\n if (this.props.blockType) {\n return this.getErrorComponent(this.props.blockType)\n }\n\n const crowdfundingStep = getStepName(\n 'create-crowdfunding',\n this.props.routes\n )\n\n let progressPercent = 0\n let showProgressBar = false\n let previousURL = null\n switch (crowdfundingStep) {\n case 'basics':\n progressPercent = 25\n showProgressBar = true\n if (this.props.charity) {\n previousURL = 'nonprofit'\n }\n break\n case 'nonprofit':\n break\n case 'story':\n progressPercent = 75\n showProgressBar = true\n previousURL = 'basics'\n break\n case 'select-cover':\n previousURL = 'story'\n break\n case 'cover':\n progressPercent = 100\n showProgressBar = true\n previousURL = 'select-cover'\n break\n default:\n break\n }\n return (\n
    \n {this.state.showCloseDialog && (\n \n }\n subtitle={\n \n }\n closeButtonTitle={\n this.props.campaignType === CROWD_FUNDING ? (\n \n ) : (\n \n )\n }\n okButtonTitle={\n this.props.campaignType === CROWD_FUNDING ? (\n \n ) : (\n \n )\n }\n onClose={this.closeDialog}\n onOk={this.handleCloseDialogOk}\n iconName={CROWD_FUNDING ? 'logout' : ''}\n />\n )}\n \n \n \n {React.cloneElement(child, { key: stepName })}\n \n \n \n
    \n )\n }\n}\n\nexport default cssModules(CreatePage, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport styles from './create_card.less'\nimport cssModules from 'react-css-modules'\nimport { Link } from 'react-router'\nimport { BodyText, CaptionText, Card } from '@paypalcorp/pp-react'\nimport { trackClick } from 'lib/fpti_analytics'\n\nclass CreateCard extends React.Component {\n static propTypes = {\n to: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string,\n cartIcon: PropTypes.elementType.isRequired,\n event_name: PropTypes.string,\n data_nemo: PropTypes.string,\n onClick: PropTypes.func,\n href: PropTypes.string,\n dataTestId: PropTypes.string,\n isSmallGroup: PropTypes.bool,\n }\n\n render() {\n return (\n {\n if (this.props.onClick) {\n this.props.onClick()\n }\n trackClick({\n clickName: this.props.event_name,\n data: {\n event_name: this.props.event_name,\n },\n })\n }}\n onKeyUp={e => {\n if (e.key === 'Enter' && this.props.onClick) {\n this.props.onClick()\n }\n }}\n >\n \n {this.props.cartIcon}\n \n {this.props.title}\n \n {this.props.subtitle}\n \n \n \n \n )\n }\n}\n\nexport default cssModules(CreateCard, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { HeadingText, BodyText } from '@paypalcorp/pp-react'\n\nimport cssModules from 'react-css-modules'\nimport styles from '../introduction.less'\n\nconst PrivateIntroductionContent = ({ formattedMaxGoalAmount }) => {\n return (\n <>\n \n \n \n \n \n \n\n
      \n
    • \n \n \n \n
    • \n
    • \n \n \n \n
    • \n
    \n \n )\n}\n\nPrivateIntroductionContent.propTypes = {\n formattedMaxGoalAmount: PropTypes.string.isRequired,\n}\n\nexport default cssModules(PrivateIntroductionContent, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { HeadingText, BodyText } from '@paypalcorp/pp-react'\n\nimport cssModules from 'react-css-modules'\nimport styles from '../introduction.less'\n\nconst PersonalIntroductionContent = ({ formattedMaxGoalAmount }) => {\n return (\n <>\n \n \n \n \n \n \n\n
      \n {[\n { id: 'components.pages.halfFullSheet.half_full_sheet.gn_list_one' },\n {\n id: 'components.pages.halfFullSheet.half_full_sheet.gn_list_two',\n amount: formattedMaxGoalAmount,\n },\n ].map(instance => (\n
    • \n \n \n \n
    • \n ))}\n
    \n \n )\n}\n\nPersonalIntroductionContent.propTypes = {\n formattedMaxGoalAmount: PropTypes.string.isRequired,\n}\n\nexport default cssModules(PersonalIntroductionContent, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { HeadingText, BodyText } from '@paypalcorp/pp-react'\n\nimport cssModules from 'react-css-modules'\nimport styles from '../introduction.less'\n\nconst CharityIntroductionContent = ({ formattedMaxGoalAmount }) => {\n return (\n <>\n \n \n \n \n \n \n\n
      \n {[\n { id: 'components.pages.halfFullSheet.half_full_sheet.gnc_list_one' },\n {\n id: 'components.pages.halfFullSheet.half_full_sheet.gnc_list_two',\n amount: formattedMaxGoalAmount,\n },\n ].map(instance => (\n
    • \n \n \n \n
    • \n ))}\n
    \n \n )\n}\n\nCharityIntroductionContent.propTypes = {\n formattedMaxGoalAmount: PropTypes.string.isRequired,\n}\n\nexport default cssModules(CharityIntroductionContent, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { CaptionText } from '@paypalcorp/pp-react'\n\nimport cssModules from 'react-css-modules'\nimport styles from '../introduction.less'\n\nimport { trackClick } from 'lib/fpti_analytics'\nimport { GN_DISCLAIMERS, POOL_TYPE } from 'shared/shared_consts'\nimport { useIntl } from 'intl'\n\nconst Disclaimer = ({ event, countryCode, fundraiserType }) => {\n const { formatMessage } = useIntl()\n const { consumerLink } = GN_DISCLAIMERS[countryCode] || ''\n\n let disclaimerContentKey\n if (fundraiserType === POOL_TYPE.PRIVATE) {\n // This config is just to avoid the lint warning\n // \"It is not recommended to have Country specific logic inside the code\"\n // and is not in the config.json because there are only 2, with more we could move it\n const introDisclaimerConfig = {\n US: 'flow.private.intro.disclaimer_us_market',\n AU: 'flow.private.intro.disclaimer_us_market',\n }\n\n const privateDisclaimerContentKey =\n introDisclaimerConfig[countryCode] ||\n 'flow.private.intro.disclaimer_eu_market'\n\n disclaimerContentKey = formatMessage(privateDisclaimerContentKey)\n } else if (fundraiserType === POOL_TYPE.PERSONAL) {\n disclaimerContentKey = formatMessage(\n `components.pages.halfFullSheet.half_full_sheet.disclaimer_gn_common_${countryCode}`,\n { consumerLink }\n )\n } else if (fundraiserType === POOL_TYPE.CHARITY) {\n disclaimerContentKey = formatMessage(\n `components.pages.halfFullSheet.half_full_sheet.disclaimer_gnc_${countryCode}`\n )\n }\n\n return (\n disclaimerContentKey && (\n {\n if (event.feesDetailsClickEventName) {\n trackClick({\n clickName: event.feesDetailsClickEventName,\n data: {\n event_name: event.feesDetailsClickEventName,\n },\n })\n }\n }}\n dangerouslySetInnerHTML={{ __html: disclaimerContentKey }}\n />\n )\n )\n}\n\nDisclaimer.propTypes = {\n event: PropTypes.object.isRequired,\n countryCode: PropTypes.string.isRequired,\n fundraiserType: PropTypes.string.isRequired,\n}\n\nexport default cssModules(Disclaimer, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './introduction.less'\nimport { Sheet } from '@paypalcorp/pp-react'\nimport { Button } from '@paypalcorp/pp-react-buttons'\nimport Pictograms from 'components/common/pictograms'\nimport { POOL_TYPE } from 'shared/shared_consts'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { trackClick, trackImpression } from 'lib/fpti_analytics'\nimport clsx from 'clsx'\nimport PrivateIntroductionContent from './partials/private'\nimport PersonalIntroductionContent from './partials/personal'\nimport CharityIntroductionContent from './partials/charity'\nimport Disclaimer from './partials/disclaimer'\n\nconst eventDetails = Object.freeze({\n [POOL_TYPE.PERSONAL]: {\n startEventName: 'dw_giving_create_listed_fundraiser_info_start_pressed',\n closeEventName: 'dw_giving_create_listed_fundraiser_info_dismiss_pressed',\n feesDetailsClickEventName:\n 'dw_giving_create_listed_fundraiser_info_disclaimer_pressed',\n pageImpression: 'dw_giving_create_listed_fundraiser_info_screen_shown',\n },\n [POOL_TYPE.PRIVATE]: {\n startEventName:\n 'dw_giving_create_small_group_fundraiser_info_start_pressed',\n closeEventName:\n 'dw_giving_create_small_group_fundraiser_info_dismiss_pressed',\n feesDetailsClickEventName: '',\n pageImpression: 'dw_giving_create_small_group_fundraiser_info_screen_shown',\n },\n [POOL_TYPE.CHARITY]: {\n startEventName: 'dw_giving_create_charity_fundraiser_info_start_pressed',\n closeEventName: 'dw_giving_create_charity_fundraiser_info_dismiss_pressed',\n feesDetailsClickEventName: '',\n pageImpression: 'dw_giving_create_charity_fundraiser_info_screen_shown',\n },\n})\n\nclass Introduction extends React.Component {\n static propTypes = {\n disclaimer: PropTypes.string,\n type: PropTypes.string,\n hideFullHalfSheet: PropTypes.func,\n onPageLoad: PropTypes.func,\n gnHref: PropTypes.string,\n gncHref: PropTypes.string,\n formattedMaxGoalAmount: PropTypes.string,\n countryCode: PropTypes.string,\n }\n state = {\n isSheetOpen: true,\n isBtnProcessing: false,\n }\n\n event = eventDetails[this.props.type]\n\n closeSheet = e => {\n trackClick({\n clickName: this.event.closeEventName,\n data: {\n event_name: this.event.closeEventName,\n dismiss_method: e?.type === 'touchstart' ? 'background' : 'close',\n },\n })\n this.setState({ isSheetOpen: false })\n this.props.hideFullHalfSheet()\n }\n\n render() {\n const { type, countryCode } = this.props\n // default values for POOL_TYPE.PERSONAL\n let image = 'announce'\n let dataTestId = 'intro-personal-pictogram'\n // TODO: DTRAINIER-5298 Extract pictograms logic to component\n let pathname = `/pools/c/create-crowdfunding/basics?type=${\n POOL_TYPE.PERSONAL\n }`\n let fundraiserButton =\n 'components.pages.halfFullSheet.half_full_sheet.start_fundraiser'\n if (type === POOL_TYPE.CHARITY) {\n image = 'collect-donations'\n fundraiserButton =\n 'components.pages.halfFullSheet.half_full_sheet.start_fundraiser_charity'\n pathname = '/pools/c/create-crowdfunding/nonprofit'\n dataTestId = 'intro-gnc-half-sheet-image'\n } else if (type === POOL_TYPE.PRIVATE) {\n image = 'create-profile'\n fundraiserButton = 'flow.private.intro.cta_collect_money'\n dataTestId = 'intro-unlisted-fundraiser-half-sheet-image'\n pathname = `/pools/c/create-crowdfunding/basics?type=${POOL_TYPE.PRIVATE}`\n }\n\n // Save the type of pool(flow) selected on page load\n this.props.onPageLoad(type)\n\n if (this.props.type) {\n trackImpression({\n event_name: this.event.pageImpression,\n })\n }\n\n return (\n \n
    \n \n
    \n\n
    \n {type === POOL_TYPE.PRIVATE && (\n \n )}\n {type === POOL_TYPE.PERSONAL && (\n \n )}\n {type === POOL_TYPE.CHARITY && (\n \n )}\n
    \n\n \n\n
    \n {\n this.setState({ isBtnProcessing: true })\n trackClick({\n clickName: this.event.startEventName,\n data: {\n event_name: this.event.startEventName,\n },\n })\n }}\n >\n \n \n
    \n \n )\n }\n}\n\nexport default cssModules(Introduction, styles)\n","import Introduction from './introduction'\nimport { connect } from 'react-redux'\nimport { NEW_CAMPAIGN_ID, setData } from 'redux/modules/campaign'\nimport { destroy } from 'redux-form'\nimport { formatCurrency } from 'intl'\nimport { getMinMaxAmount } from 'shared/helpers/campaign'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\n\nconst mapStateToProps = (state, { type, worldReady }) => {\n const campaign = state.campaign[NEW_CAMPAIGN_ID]\n const minMaxAmount = getMinMaxAmount(campaign)\n const countryCode = state.country.country_code\n const isFundRaiserEnabled = state.flags.isFundRaiserEnabled\n\n return {\n countryCode,\n host: state.geo.cdnHost,\n type,\n formattedMaxGoalAmount: formatCurrency({\n value: minMaxAmount.MAX_AMOUNT,\n currencyCode: campaign.currency,\n additionalConfig: {},\n worldReady,\n }),\n isFundRaiserEnabled,\n }\n}\n\nconst mapDispatchToProps = dispatch => ({\n onPageLoad(selectionType) {\n dispatch(\n setData(NEW_CAMPAIGN_ID, {\n type: selectionType,\n })\n )\n dispatch(destroy('crowdfunding_basics'))\n },\n})\n\nexport default injectWorldReady(\n connect(\n mapStateToProps,\n mapDispatchToProps\n )(Introduction)\n)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './create_type_small_group.less'\nimport CampaignEligibility from 'components/common/campaign_eligibility'\nimport { getI18n } from 'intl'\nimport { sendEnsightenEvent } from 'lib/ensighten_analytics'\nimport { HeadingText } from '@paypalcorp/pp-react'\nimport CreateCard from 'components/common/create_card'\nimport { trackClick } from 'lib/fpti_analytics'\nimport { POOLS_CAMPAIGN_TYPES, POOL_TYPE } from 'shared/shared_consts'\nimport { hasDirectIntegrationIdentifier } from 'client/lib/campaign'\nimport { Message } from '@paypalcorp/worldready-react'\nimport Pictograms from 'components/common/pictograms'\nimport Introduction from 'components/pages/introduction'\n\nexport const I18N_CONTEXT = 'components/pages/create/small_group'\n\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\nconst i18n = getI18n(I18N_CONTEXT)\nconst COUNTRY_CODE_DEFAULT = 'US'\n\nconst TYPE_MAP = {\n 'reach-lot-of-people': POOL_TYPE.PERSONAL,\n 'charity-fundraiser': POOL_TYPE.CHARITY,\n 'collect-money-with-friends': POOL_TYPE.PRIVATE,\n}\n\nclass PoolTypeSmallGroup extends React.Component {\n static propTypes = {\n countryCode: PropTypes.string,\n formattedMaxGoalAmount: PropTypes.string,\n isGNCEnabled: PropTypes.bool,\n isCampaignLimitReached: PropTypes.bool,\n gnHref: PropTypes.string,\n gncHref: PropTypes.string,\n userHasCampaigns: PropTypes.bool,\n location: PropTypes.shape({\n query: PropTypes.shape({\n type: PropTypes.string,\n }),\n }),\n }\n\n static defaultProps = {\n userHasCampaigns: true,\n countryCode: COUNTRY_CODE_DEFAULT,\n }\n\n state = {\n showErrorDialog: false,\n }\n\n showDialogIfTypePresentInQueryString() {\n const poolType = TYPE_MAP[(this.props.location?.query?.type)]\n if (poolType) {\n this.limitDialogToggle(poolType)\n }\n }\n\n componentDidMount() {\n this.showDialogIfTypePresentInQueryString()\n sendEnsightenEvent('MoneyPoolStart')\n }\n\n limitDialogToggle = type => {\n if (this.props.isCampaignLimitReached && type !== POOL_TYPE.CHARITY) {\n this.setState(prevState => ({\n showErrorDialog: !prevState.showErrorDialog,\n }))\n } else if (type) {\n this.setState({ type })\n }\n }\n closeFullHalfSheet = () => {\n this.setState({ type: '' })\n }\n //This Method will be used until GN elmo is not enabled\n trackGNEvent = () => {\n this.limitDialogToggle()\n trackClick({\n clickName: 'dw_giving_intro_create_fundraiser_individual_pressed',\n data: {\n event_name: 'dw_giving_intro_create_fundraiser_individual_pressed',\n },\n })\n }\n\n render() {\n const { countryCode, isGNCEnabled, userHasCampaigns } = this.props\n const charityCampaignSubtitle = hasDirectIntegrationIdentifier(countryCode)\n ? 'charity_campaign_subtitle_direct1'\n : 'charity_campaign_subtitle1'\n const { type } = this.state\n return (\n
    \n
    \n \n
    \n {this.state.showErrorDialog && (\n \n )}\n \n {userHasCampaigns ? (\n \n ) : (\n \n )}\n \n this.limitDialogToggle(POOL_TYPE.PERSONAL)}\n />\n }\n subtitle={}\n event_name={'dw_giving_intro_create_fundraiser_small_group_pressed'}\n data_nemo=\"gn_small_group_creation_link\"\n dataTestId=\"create_type-private-flow\"\n onClick={() => this.limitDialogToggle(POOL_TYPE.PRIVATE)}\n />\n\n {isGNCEnabled && (\n //If gnc is enabled then we need to show the chatiry card.\n this.limitDialogToggle(POOL_TYPE.CHARITY)}\n />\n )}\n {type && (\n \n )}\n
    \n )\n }\n}\n\nexport default cssModules(PoolTypeSmallGroup, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport PayPalPage from 'components/common/paypal_page'\nimport { Container, Row, Col, HeadingText } from '@paypalcorp/pp-react'\nimport { CREATION_BLOCKS } from '../../create/create'\nimport CreateFundraiserError from '../../create_fundraiser_error/create_fundraiser_error_container'\nimport CreateTypeSmallGroup from 'components/pages/create/create_type_small_group/create_type_small_group'\n\nclass ZeroFundraiser extends React.Component {\n static propTypes = {\n isWide: PropTypes.bool,\n showHeader: PropTypes.bool,\n showFooter: PropTypes.bool,\n blockType: PropTypes.oneOf(Object.values(CREATION_BLOCKS)),\n onComponentMount: PropTypes.func,\n isFundRaiserEnabled: PropTypes.bool,\n deprecatedMessage: PropTypes.Object,\n }\n\n static defaultProps = {\n isWide: false,\n showHeader: true,\n showFooter: true,\n }\n\n size = !this.props.isWide && {\n md: 8,\n lg: 5,\n }\n\n componentDidMount() {\n if (this.props.onComponentMount) {\n this.props.onComponentMount()\n }\n }\n\n render() {\n const {\n blockType,\n showHeader,\n showFooter,\n isFundRaiserEnabled,\n deprecatedMessage,\n } = this.props\n let content\n\n if (!isFundRaiserEnabled) {\n content = (\n \n \n {deprecatedMessage.fundraiserDeprecatedBlockedTitle}\n \n \n {deprecatedMessage.fundraiserDeprecatedEligibility}\n \n \n )\n } else if (blockType) {\n content = \n } else {\n content = \n }\n return (\n \n \n \n {content}\n \n \n \n )\n }\n}\n\nexport default ZeroFundraiser\n","import { POOLS_CAMPAIGN_TYPES, INVALID_IMAGE } from 'shared/shared_consts'\nimport { CREATION_BLOCKS } from 'components/pages/create/create'\n\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\n\nexport function getBlockType(state, props, campaign) {\n let blockType\n if (state.current_user.enable_crowdfunding_business_account === false) {\n if (state?.country?.country_code === 'US') {\n blockType = CREATION_BLOCKS.byAccountType\n } else {\n blockType = CREATION_BLOCKS.genericError\n }\n } else if (state.current_user.moneypools_country_blocked) {\n blockType = CREATION_BLOCKS.byCountry\n } else if (!state.flags.allow_creation) {\n blockType = CREATION_BLOCKS.byKillSwitch\n } else if (campaign.err && campaign.err.error === INVALID_IMAGE) {\n blockType =\n campaign.campaign_type === CROWD_FUNDING\n ? CREATION_BLOCKS.byGNAccountRestricted\n : CREATION_BLOCKS.byAccountRestricted\n } else if (state.current_user.blockCreationByCurrencyMismatch) {\n blockType = CREATION_BLOCKS.currencyMismatchError\n }\n return blockType\n}\n","import ZeroFundraiser from './zero_fundraiser'\nimport { connect } from 'react-redux'\nimport { formatCurrency } from 'intl'\nimport { NEW_CAMPAIGN_ID } from 'redux/modules/campaign'\nimport { getBlockType } from 'lib/create_util'\nimport { getMinMaxAmount } from 'shared/helpers/campaign'\nimport { destroy } from 'redux-form'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\n\nexport const mapStateToProps = (state, props) => {\n const campaign = state.campaign[NEW_CAMPAIGN_ID]\n const isGNCEnabled = state.flags.is_gnc_enabled\n const countryCode = state.country.country_code || 'US'\n const gnHref = `${GLOBAL_CONSTS.REQUEST_URI}/c/create-crowdfunding/basics`\n const gncHref = `${GLOBAL_CONSTS.REQUEST_URI}/c/create-crowdfunding/nonprofit`\n const userHasCampaigns = false\n const isFundRaiserEnabled = state.flags.isFundRaiserEnabled\n\n const minMaxAmount = getMinMaxAmount(campaign)\n const formattedMaxGoalAmount = minMaxAmount.MAX_AMOUNT\n ? formatCurrency({\n value: minMaxAmount.MAX_AMOUNT,\n currencyCode: campaign.currency,\n additionalConfig: {},\n worldReady: props.worldReady,\n })\n : ''\n\n /**\n * Being an almost static page, this won't even be validated\n * but is required for create_type (CreateType) component\n * to work properly\n */\n const isCampaignLimitReached = false\n\n return {\n blockType: getBlockType(state, props, campaign),\n gnHref,\n gncHref,\n countryCode,\n isGNCEnabled,\n userHasCampaigns,\n formattedMaxGoalAmount,\n isCampaignLimitReached,\n isFundRaiserEnabled,\n }\n}\n\nconst mapDispatchToProps = (dispatch, { campaignId }) => {\n return {\n onComponentMount() {\n dispatch(destroy('crowdfunding_basics'))\n },\n }\n}\n\nexport default injectWorldReady(\n connect(\n mapStateToProps,\n mapDispatchToProps\n )(ZeroFundraiser)\n)\n","import React from 'react'\nimport cssModules from 'react-css-modules'\nimport styles from './fundraiser_skeleton.less'\n\nconst FundraiserSkeleton = () => {\n return (\n <>\n
    \n\n
    \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n )\n}\n\nexport default cssModules(FundraiserSkeleton, styles, { allowMultiple: true })\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './fundraiser_skeleton.less'\nimport ZeroFundraiser from '../zero_fundraiser'\nimport FundraiserSkeleton from '../fundraiser_skeleton'\n\nconst ZeroFundraiserOrSkeleton = ({ selectedTabIdx }) => {\n return selectedTabIdx === '0' ? (\n
    \n \n
    \n ) : (\n \n )\n}\n\nZeroFundraiserOrSkeleton.propTypes = {\n selectedTabIdx: PropTypes.string,\n}\n\nZeroFundraiserOrSkeleton.defaultProps = {\n selectedTabIdx: '0',\n}\n\nexport default cssModules(ZeroFundraiserOrSkeleton, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './manage_all_page.less'\nimport LeftSideHubCampaign from '../left_side_hub_campaign'\nimport smoothScrollPolyfill from 'smoothscroll-polyfill'\nimport PayPalPage from 'components/common/paypal_page'\nimport ReactDOM from 'react-dom'\nimport ModalAnimations from 'components/common/transitions/modal_animations'\nimport {\n Link,\n Button,\n HeadingText,\n SegmentedController,\n SegmentedControllerPanel,\n ArrowLeftIcon,\n LoadingSpinner,\n} from '@paypalcorp/pp-react'\nimport 'node_modules/@paypalcorp/pp-vx/dist/components/text/text.css'\nimport ManageCrowdfunding from 'components/glimpses/edit_glimpse/manage_cf'\nimport EmptyHub from '../empty_hub'\nimport _get from 'lodash/get'\nimport _isEmpty from 'lodash/isEmpty'\nimport clsx from 'clsx'\nimport ZeroFundraiserOrSkeleton from '../zero_fundraiser_or_skeleton'\nimport { Message } from '@paypalcorp/worldready-react'\n\nclass ManageAllPage extends React.Component {\n static propTypes = {\n campaigns: PropTypes.array.isRequired,\n glimpse: PropTypes.bool,\n isLoadingDNWTransaction: PropTypes.bool,\n fetchTransaction: PropTypes.func,\n fetchActivities: PropTypes.func,\n reloadTransactions: PropTypes.bool,\n fetchOrganizerUpdateList: PropTypes.func,\n isOrganizerUpdatesEnabled: PropTypes.bool,\n setCurrentCampaignId: PropTypes.func,\n isFundRaiserEnabled: PropTypes.bool,\n }\n\n constructor(props) {\n super(props)\n const campaignId = _get(this.props, 'campaignId', '')\n let selectedCard = -1\n let selectedTabIdx =\n this.props.campaigns.openFundraisers.length > 0 ? '0' : '1'\n if (campaignId) {\n selectedCard = this.props.campaigns.openFundraisers.findIndex(\n campaign => campaign.id === campaignId\n )\n selectedTabIdx = '0'\n if (selectedCard === -1) {\n selectedCard = this.props.campaigns.closedFundraisers.findIndex(\n campaign => campaign.id === campaignId\n )\n selectedTabIdx = '1'\n }\n }\n\n if (selectedCard === -1) {\n selectedCard = 0\n }\n\n this.state = {\n selectedTabIdx,\n isOpen: false,\n openFundraisers: _get(this.props, 'campaigns.openFundraisers', {}),\n closedFundraisers: _get(this.props, 'campaigns.closedFundraisers', {}),\n defaultSelectedCampaigns:\n _get(this.props, `campaigns.openFundraisers[${selectedCard}]`) ||\n _get(this.props, `campaigns.closedFundraisers[${selectedCard}]`, {}),\n selectedCard,\n }\n this.modalRoot = document.getElementById('modal-root')\n }\n\n componentDidMount() {\n smoothScrollPolyfill.polyfill()\n this.managePageCallback(this.state.selectedCard)\n }\n\n componentDidUpdate(prevProps) {\n const previousCapaign = JSON.stringify(prevProps.campaigns.openFundraisers)\n const currentCampaign = JSON.stringify(this.props.campaigns.openFundraisers)\n if (previousCapaign !== currentCampaign) {\n this.onUpdate()\n }\n }\n\n onUpdate = () => {\n this.setState({\n openFundraisers: _get(this.props, 'campaigns.openFundraisers', {}),\n closedFundraisers: _get(this.props, 'campaigns.closedFundraisers', {}),\n })\n }\n\n tabHandler(e) {\n const segmentIndex = e.currentTarget.dataset.tabIndex\n const defaultSelectedCampaigns =\n segmentIndex === '0'\n ? _get(this.props, 'campaigns.openFundraisers[0]')\n : _get(this.props, 'campaigns.closedFundraisers[0]')\n this.props.setCurrentCampaignId(defaultSelectedCampaigns?.id)\n this.setState({\n selectedCard: 0,\n selectedTabIdx: segmentIndex,\n defaultSelectedCampaigns,\n })\n this.fetchTransactions(defaultSelectedCampaigns, true)\n }\n\n managePageCallback = (index, reloadTransactions) => {\n const defaultSelectedCampaigns =\n this.state.selectedTabIdx === '0'\n ? this.state.openFundraisers[index]\n : this.state.closedFundraisers[index]\n this.props.setCurrentCampaignId(defaultSelectedCampaigns?.id)\n this.setState({\n defaultSelectedCampaigns,\n selectedCard: index,\n isOpen: true,\n })\n\n this.fetchTransactions(defaultSelectedCampaigns, reloadTransactions)\n }\n\n fetchTransactions = (defaultSelectedCampaigns, reloadTransactions) => {\n reloadTransactions = reloadTransactions || this.props.reloadTransactions\n if (_isEmpty(defaultSelectedCampaigns) || !reloadTransactions) {\n return false\n }\n this.setState({ loadingActivities: true })\n const transactionsCall = [\n this.props.fetchTransaction(defaultSelectedCampaigns.id),\n ]\n if (this.props.isOrganizerUpdatesEnabled) {\n transactionsCall.push(\n this.props.fetchOrganizerUpdateList(defaultSelectedCampaigns.id)\n )\n }\n //We display activities only for GN campaign not for GNC\n if (defaultSelectedCampaigns && !defaultSelectedCampaigns.charity) {\n transactionsCall.push(\n this.props.fetchActivities(defaultSelectedCampaigns.id)\n )\n }\n Promise.all(transactionsCall)\n .then(() => {\n this.setState({ loadingActivities: false })\n })\n .catch(() => {\n this.setState({ loadingActivities: false })\n })\n }\n\n pageSpinner = () => {\n return (\n
    \n \n
    \n )\n }\n handleBack = () => {\n this.setState({ isOpen: false })\n }\n render() {\n const { isLoadingDNWTransaction, isFundRaiserEnabled } = this.props\n const campaignId = _get(this.state, 'defaultSelectedCampaigns.id')\n\n return (\n \n
    \n
    \n \n \n \n {isFundRaiserEnabled &&\n ((this.state.selectedTabIdx === '1' ||\n this.state.openFundraisers.length > 0) && (\n \n \n \n ))}\n
    \n\n
    \n
    \n
    \n \n ),\n id: 'open-tab',\n panelId: 'open-tab',\n },\n {\n label: (\n \n ),\n id: 'closed-tab',\n panelId: 'closed-tab',\n },\n ]}\n onClick={this.tabHandler.bind(this)}\n >\n \n {this.state.openFundraisers.length > 0 ? (\n
    \n {this.state.openFundraisers.map((campaign, index) => (\n \n this.managePageCallback(index, true)\n }\n selectedCard={this.state.selectedCard}\n />\n ))}\n\n \n \n \n
    \n ) : (\n \n )}\n \n \n {this.state.closedFundraisers.length > 0 ? (\n
    \n {this.state.closedFundraisers.map((campaign, index) => (\n \n this.managePageCallback(index, true)\n }\n selectedCard={this.state.selectedCard}\n />\n ))}\n
    \n ) : (\n \n )}\n \n \n
    \n \n {isLoadingDNWTransaction && this.pageSpinner()}\n <>\n \n\n {campaignId ? (\n \n ) : (\n \n )}\n \n
    \n
    \n
    \n
    \n {ReactDOM.createPortal(\n {this.props.glimpse},\n this.modalRoot\n )}\n \n )\n }\n}\n\nexport default cssModules(ManageAllPage, styles, { allowMultiple: true })\n","import ManageAllPage from './manage_all_page'\nimport { connect } from 'react-redux'\nimport { allCampaignsSelector } from 'redux/selectors/campaign'\nimport { showMoreTxns } from 'redux/modules/txns'\nimport {\n CONTRIBUTION_TRANSACTIONS_PER_PAGE,\n ACTIVITIES_TRANSACTIONS_PER_PAGE,\n} from 'shared/shared_consts'\nimport { getOrganizerUpdate } from 'redux/modules/organizer_update'\nimport { SET_CURRENT_CAMPAIGN_ID } from 'redux/modules/campaign'\n\nconst mapStateToProps = state => {\n return {\n campaigns: allCampaignsSelector(state),\n isMobile: state.device_info.isMobile,\n isLoadingDNWTransaction: state.dnw_transaction.isLoading,\n isOrganizerUpdatesEnabled: state.flags.isOrganizerUpdatesEnabled,\n isFundRaiserEnabled: state.flags.isFundRaiserEnabled,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {\n fetchTransaction(campaignId) {\n return dispatch(\n showMoreTxns(\n campaignId,\n 1,\n CONTRIBUTION_TRANSACTIONS_PER_PAGE,\n 'CONTRIBUTION'\n )\n )\n },\n fetchActivities(campaignId) {\n return dispatch(\n showMoreTxns(campaignId, 1, ACTIVITIES_TRANSACTIONS_PER_PAGE, 'ALL')\n )\n },\n fetchOrganizerUpdateList(campaignId, page = 1, size = 1) {\n return dispatch(getOrganizerUpdate({ page, size, campaignId }))\n },\n setCurrentCampaignId(campaignId = '') {\n return dispatch({\n type: SET_CURRENT_CAMPAIGN_ID,\n payload: campaignId,\n })\n },\n }\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(ManageAllPage)\n","import CreatePage from './create'\nimport { connect } from 'react-redux'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { getBlockType } from 'lib/create_util'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n\n return {\n blockType: getBlockType(state, props, campaign),\n countryName: state.country.country_name,\n creationError: campaign.err,\n email: state.current_user.email,\n hideClose: campaign.operatingRemotely,\n operatingRemotely: campaign.operatingRemotely,\n campaignType: campaign.campaign_type,\n countryCode: state.country.country_code,\n charity: campaign.charity,\n cdnHost: state.geo.cdnHost,\n }\n}\n\nexport default connect(mapStateToProps)(CreatePage)\n","import CreateTypeSmallGroup from './create_type_small_group'\nimport { connect } from 'react-redux'\nimport { formatCurrency } from 'intl'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { getMaxLimitReachedSelector } from 'redux/selectors/cip'\nimport { getMinMaxAmount } from 'shared/helpers/campaign'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\n\nexport const mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n const minMaxAmount = getMinMaxAmount(campaign)\n const isGNCEnabled = state.flags.is_gnc_enabled\n const countryCode = state.country.country_code\n\n const formattedMaxGoalAmount = minMaxAmount.MAX_AMOUNT\n ? formatCurrency({\n value: minMaxAmount.MAX_AMOUNT,\n currencyCode: campaign.currency,\n additionalConfig: {},\n worldReady: props.worldReady,\n })\n : ''\n\n const isCampaignLimitReached = getMaxLimitReachedSelector(state)\n return {\n countryCode,\n formattedMaxGoalAmount,\n isGNCEnabled,\n isCampaignLimitReached,\n }\n}\n\nexport default injectWorldReady(connect(mapStateToProps)(CreateTypeSmallGroup))\n","import { CIP_ELIGIBILITY_CODES } from 'shared/shared_consts'\n\nexport const getMaxLimitReachedSelector = state => {\n const statusCode =\n state.current_user.CIPEligibility.CROWD_FUNDING?.CIPStatusCode\n return (\n statusCode === CIP_ELIGIBILITY_CODES.USER_REACHED_CAMPAIGN_CREATION_LIMIT\n )\n}\n","import CreatePage from 'components/pages/create'\nimport PoolTypeSmallGroup from 'components/pages/create/create_type_small_group'\nimport CountryBlockedError from 'components/common/country_blocked'\nimport { POOLS_CAMPAIGN_TYPES } from 'shared/shared_consts'\nimport { NEW_CAMPAIGN_ID, create } from 'redux/modules/campaign'\nimport { updateQueryParams } from 'redux/modules/url'\nimport {\n getStepName,\n assertInitialStep,\n assignActionToRouterParams,\n} from 'lib/route_utils'\n\nconst POOLS_INITIAL_STEP = 'basics'\nconst CROWDFUNDING_INITIAL_STEP = 'types'\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\n\nexport default (store, history) => ({\n path: 'create',\n getComponent(nextState, callback) {\n if (\n store.getState().current_user.moneypools_blocked ||\n !store.getState().current_user.isFundRaiserEnabled\n ) {\n return callback(null, CountryBlockedError)\n }\n return callback(null, CreatePage)\n },\n onEnter(nextState, replace) {\n store.dispatch((d, getState) => {\n d(create(CROWD_FUNDING)) // creates the new campaign object.\n d(updateQueryParams(nextState.location)) // updates the state with query params\n })\n nextState.params.nextStep = getStepName('create', nextState.routes)\n if (nextState.params.nextStep !== 'share/:campaignId') {\n nextState.params.campaignId = NEW_CAMPAIGN_ID\n let INITIAL_STEP = POOLS_INITIAL_STEP\n\n // set initial step to 80/20 if user falls into the treatment unless is in the initial step\n if (\n store.getState().current_user.crowdfunding_enabled &&\n nextState.params.nextStep !== POOLS_INITIAL_STEP\n ) {\n INITIAL_STEP = CROWDFUNDING_INITIAL_STEP\n }\n\n assertInitialStep('create', INITIAL_STEP, nextState, replace)\n }\n },\n onChange(prevState, nextState) {\n assignActionToRouterParams(nextState)\n nextState.params.campaignId = NEW_CAMPAIGN_ID\n nextState.params.prevStep = getStepName('create', prevState.routes)\n nextState.params.nextStep = getStepName('create', nextState.routes)\n },\n childRoutes: [\n {\n path: 'types',\n component: PoolTypeSmallGroup,\n },\n ],\n})\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from '../../crowdfunding_basics/crowdfunding_basics.less'\nimport DateInputBox from 'components/common/date_input_box'\nimport CurrencyInputBox from 'components/common/currency_input'\nimport { CROWDFUNDING_CAMPAIGN_MAX_DAYS } from 'shared/shared_consts'\nimport {\n CaptionText,\n TextInput,\n DropdownMenu,\n HeadingText,\n} from '@paypalcorp/pp-react'\nimport { domOnlyProps } from 'lib/form_utils'\nimport { getFormError } from 'lib/validators'\nimport { useIntl, getDefaultCurrencyCode } from 'intl'\nimport { Message } from '@paypalcorp/worldready-react'\n\nconst PersonalBasicsForm = props => {\n const {\n categoryList,\n currency,\n disclaimer,\n fields: { poolName, goalAmount, endDate, category },\n formattedMaxGoalAmount,\n shouldAutoFocus,\n timeZone,\n isTitleInfoAndMinDescriptionEnabled,\n } = props\n\n const { formatMessage } = useIntl()\n const helpTextId = isTitleInfoAndMinDescriptionEnabled\n ? 'components.pages.crowdfunding.pool_basics.personal_tip_description'\n : 'components.pages.crowdfunding.pool_basics.tip_description'\n return (\n <>\n \n \n \n\n
    \n \n
    \n\n
    \n category.onChange(event.target.value)}\n />\n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n {disclaimer && (\n {disclaimer}\n )}\n \n )\n}\n\nPersonalBasicsForm.defaultProps = {\n isTitleInfoAndMinDescriptionEnabled: false,\n}\n\nPersonalBasicsForm.propTypes = {\n categoryList: PropTypes.array,\n currency: PropTypes.string,\n disclaimer: PropTypes.string,\n fields: PropTypes.object.isRequired,\n formattedMaxGoalAmount: PropTypes.string,\n shouldAutoFocus: PropTypes.bool,\n timeZone: PropTypes.string,\n isTitleInfoAndMinDescriptionEnabled: PropTypes.bool,\n}\n\nexport default cssModules(PersonalBasicsForm, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from '../../crowdfunding_basics/crowdfunding_basics.less'\nimport DateInputBox from 'components/common/date_input_box'\nimport CurrencyInputBox from 'components/common/currency_input'\nimport { CROWDFUNDING_CAMPAIGN_MAX_DAYS } from 'shared/shared_consts'\nimport { CaptionText, TextInput, HeadingText } from '@paypalcorp/pp-react'\nimport { domOnlyProps } from 'lib/form_utils'\nimport { getFormError } from 'lib/validators'\nimport { useIntl, getDefaultCurrencyCode } from 'intl'\nimport { Message } from '@paypalcorp/worldready-react'\n\nconst PrivateBasicsForm = props => {\n const {\n currency,\n countryCode,\n disclaimer,\n fields: { poolName, goalAmount, endDate, pledgeAmount },\n formattedMaxGoalAmount,\n timeZone,\n } = props\n\n const { formatMessage } = useIntl()\n const pledgeContentKey =\n // eslint-disable-next-line i18n-scan/no-country-dependency\n countryCode === 'DE'\n ? 'flow.private.basics.input_pledge_label_DE'\n : 'flow.private.basics.input_pledge_label'\n return (\n <>\n \n \n \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n {disclaimer && (\n {disclaimer}\n )}\n \n )\n}\n\nPrivateBasicsForm.propTypes = {\n currency: PropTypes.string,\n countryCode: PropTypes.string,\n disclaimer: PropTypes.string,\n fields: PropTypes.object.isRequired,\n formattedMaxGoalAmount: PropTypes.string,\n shouldAutoFocus: PropTypes.bool,\n timeZone: PropTypes.string,\n}\n\nexport default cssModules(PrivateBasicsForm, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from '../../crowdfunding_basics/crowdfunding_basics.less'\nimport DateInputBox from 'components/common/date_input_box'\nimport CurrencyInputBox from 'components/common/currency_input'\nimport CharityCard from 'components/common/charity_card'\nimport { CROWDFUNDING_CAMPAIGN_MAX_DAYS } from 'shared/shared_consts'\nimport { CaptionText, TextInput, HeadingText } from '@paypalcorp/pp-react'\nimport { domOnlyProps } from 'lib/form_utils'\nimport { getFormError } from 'lib/validators'\nimport { useIntl, getDefaultCurrencyCode } from 'intl'\nimport { Message } from '@paypalcorp/worldready-react'\n\nconst CharityBasicsForm = props => {\n const {\n charity,\n currency,\n disclaimerCharity,\n fields: { poolName, goalAmount, endDate },\n shouldAutoFocus,\n } = props\n\n const { formatMessage } = useIntl()\n\n return (\n <>\n \n \n \n\n
    \n \n
    \n\n \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n {disclaimerCharity && (\n \n )}\n \n )\n}\n\nCharityBasicsForm.propTypes = {\n charity: PropTypes.object,\n currency: PropTypes.string,\n disclaimerCharity: PropTypes.string,\n fields: PropTypes.object.isRequired,\n shouldAutoFocus: PropTypes.bool,\n}\n\nexport default cssModules(CharityBasicsForm, styles)\n","import React, { useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from '../crowdfunding_basics/crowdfunding_basics.less'\nimport { sendEnsightenEvent } from 'lib/ensighten_analytics'\nimport { POOL_TYPE } from 'shared/shared_consts'\nimport { Button } from '@paypalcorp/pp-react'\nimport { trackEventNameClick } from 'lib/fpti_analytics'\nimport clsx from 'clsx'\nimport PersonalBasicsForm from './partials/personalBasicsForm'\nimport PrivateBasicsForm from './partials/privateBasicsForm'\nimport CharityBasicsForm from './partials/charityBasicsForm'\nimport { Message } from '@paypalcorp/worldready-react'\n\nconst CrowdfundingBasics = props => {\n const { anyInactiveFieldsTouchedWithError, type } = props\n\n useEffect(() => {\n props.untouchAll()\n sendEnsightenEvent('MoneyPoolStart')\n }, [])\n\n const renderForm = () => {\n switch (type) {\n case POOL_TYPE.PERSONAL:\n return \n case POOL_TYPE.PRIVATE:\n return \n case POOL_TYPE.CHARITY:\n default:\n return \n }\n }\n\n return (\n \n {renderForm()}\n\n
    \n \n trackEventNameClick({\n event_name: 'dw_giving_create_fundraiser_next_pressed',\n })\n }\n >\n \n \n
    \n \n )\n}\n\nCrowdfundingBasics.propTypes = {\n anyInactiveFieldsTouchedWithError: PropTypes.bool.isRequired,\n charity: PropTypes.object,\n fields: PropTypes.object.isRequired,\n handleSubmit: PropTypes.func.isRequired,\n type: PropTypes.string,\n untouchAll: PropTypes.func.isRequired,\n}\n\nexport default cssModules(CrowdfundingBasics, styles, { allowMultiple: true })\n","import {\n COUNTRIES_SMALL_LEGAL_TEXT_GNC,\n TNC_COUNTRIES,\n} from '../../shared/shared_consts'\n\nexport function hasDisclaimer(countryCode) {\n return TNC_COUNTRIES.includes(countryCode)\n}\n\nexport function hasSmallLegalTexGnc(countryCode) {\n return COUNTRIES_SMALL_LEGAL_TEXT_GNC.includes(countryCode)\n}\n","import CrowdfundingBasics from './crowdfunding_basics'\nimport { reduxForm } from 'redux-form'\nimport formUtils from 'lib/form_utils'\nimport _get from 'lodash/get'\nimport {\n combine,\n required,\n futureCreationEndDate,\n atMost,\n atLeast,\n length,\n} from 'lib/validators'\nimport {\n getTranslatedCategoryList,\n isValidCategory,\n filterDepreciatedCategory,\n sortCategory,\n} from 'lib/category'\nimport { endDateValidators, maxDaysValidator } from 'lib/end_date_validators'\nimport { TITLE_LENGTH } from 'shared/lengths'\nimport { push } from 'react-router-redux'\nimport { NEW_CAMPAIGN_ID, setData } from 'redux/modules/campaign'\nimport { getCampaignSelector, isGNSelector } from 'redux/selectors/campaign'\nimport { getI18n, formatCurrency, getTimeZone } from 'intl'\nimport {\n POOLS_CAMPAIGN_TYPES,\n CROWDFUNDING_CAMPAIGN_MAX_DAYS,\n DISCOVERABLE,\n NON_DISCOVERABLE,\n POOL_TYPE,\n PPGF_UNENROLLED,\n} from 'shared/shared_consts'\nimport { trackClick } from 'lib/fpti_analytics'\nimport { endOfDay } from 'shared/helpers/datetime_helpers'\nimport { getMinMaxAmount } from 'shared/helpers/campaign'\nimport { getDisclaimerVariables } from '../../../../../shared/helpers/helperDisclaimer'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\nimport {\n hasDisclaimer,\n hasSmallLegalTexGnc,\n} from '../../../../lib/disclaimer_utils'\n\nconst i18n = getI18n('components/pages/crowdfunding/pool_basics')\nconst i18nCharity = getI18n(\n 'components/pages/crowdfunding/crowdfunding_nonprofit'\n)\n\nconst i18nHalfFullSheet = getI18n(\n 'components/pages/halfFullSheet/half_full_sheet'\n)\n\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\n\nconst addDays = (date, days) => {\n const copy = new Date(Number(date.valueOf()))\n copy.setDate(date.getDate() + days)\n return endOfDay(copy)\n}\n\nconst initialDate = new Date()\nconst defaultDate = addDays(initialDate, CROWDFUNDING_CAMPAIGN_MAX_DAYS)\nconst getCharityDisclaimer = (countryCode, charityType, npoCharity) => {\n const disclaimer1 = i18nHalfFullSheet(`disclaimer_gnc_${countryCode}`)\n const disclaimer2 = hasSmallLegalTexGnc(countryCode)\n ? i18nCharity(\n `small_legal_text_gnc_${countryCode}`,\n getDisclaimerVariables({ countryCode, isGnc: true })\n )\n : ''\n const combinedDisclaimer = npoCharity\n ? `${disclaimer1} ${disclaimer2}`\n : disclaimer2\n\n return charityType === PPGF_UNENROLLED\n ? i18nCharity(\n `legal_text_unenrolled_gnc_${countryCode}`,\n getDisclaimerVariables({ countryCode, isGnc: true })\n )\n : combinedDisclaimer\n}\n\nconst getCategoryList = (state, countryCode) => {\n let categoryList = getTranslatedCategoryList(state)\n const isNewCategoryEnabled = state.flags.enable_new_category\n categoryList = filterDepreciatedCategory(categoryList, isNewCategoryEnabled)\n\n if (countryCode === 'DE') {\n categoryList = categoryList.filter(category => category.key !== '1017')\n }\n\n return sortCategory(categoryList)\n}\n\nconst mapStateToProps = (state, props) => {\n const countryCode = state.country.country_code\n const campaign = getCampaignSelector(state, props)\n const { type, currency } = campaign\n const categoryList = getCategoryList(state, countryCode)\n const categoryQueryParam = _get(state, 'queryParams.category')\n // category initial/default value\n let category =\n campaign.category ||\n (isValidCategory(state, categoryQueryParam)\n ? categoryQueryParam\n : categoryList[0] && categoryList[0].value)\n\n if (campaign.npid) {\n const categories = _get(campaign, 'charity.cause_area', [])\n category = categories.map(element => element.code)\n }\n\n if (type === POOL_TYPE.PRIVATE) {\n category = null\n }\n\n let MIN_AMOUNT\n let MAX_AMOUNT\n let formattedMaxGoalAmount\n let formattedMinGoalAmount = formatCurrency({\n value: state.flags.min_amount_donation,\n currencyCode: campaign.currency,\n additionalConfig: {},\n worldReady: props.worldReady,\n })\n\n const validators = [\n required('endDate', i18n('end_date_required')),\n futureCreationEndDate('endDate', i18n('date_must_be_future_2')),\n length(\n 'poolName',\n TITLE_LENGTH,\n i18n('pool_name_too_long', { maxCharLength: TITLE_LENGTH })\n ),\n required(\n 'poolName',\n i18n('pool_name_is_required', { maxCharLength: TITLE_LENGTH })\n ),\n ...endDateValidators('endDate', i18n('invalid_date')),\n ]\n\n if (isGNSelector(state, props)) {\n const minMaxAmount = getMinMaxAmount(campaign)\n MIN_AMOUNT = minMaxAmount.MIN_AMOUNT\n MAX_AMOUNT = minMaxAmount.MAX_AMOUNT\n\n formattedMaxGoalAmount = formatCurrency({\n value: MAX_AMOUNT,\n currencyCode: campaign.currency,\n additionalConfig: {},\n worldReady: props.worldReady,\n })\n formattedMinGoalAmount = formatCurrency({\n value: MIN_AMOUNT,\n currencyCode: campaign.currency,\n additionalConfig: {},\n worldReady: props.worldReady,\n })\n\n validators.push(\n atMost(\n 'goalAmount',\n MAX_AMOUNT,\n i18n('goal_amount_invalid', {\n amount: formattedMaxGoalAmount,\n })\n )\n )\n }\n\n // For PRIVATE fundraisers goal is expected to be optional\n // and with no minimum\n if (type !== POOL_TYPE.PRIVATE) {\n validators.push(\n required(\n 'goalAmount',\n i18n('goal_amount_required', {\n amount: formattedMinGoalAmount,\n })\n ),\n atLeast(\n 'goalAmount',\n MIN_AMOUNT || state.flags.min_amount_donation,\n i18n('goal_amount_invalid_min', {\n amount: formattedMinGoalAmount,\n })\n )\n )\n }\n\n return {\n validate: combine(\n ...validators,\n maxDaysValidator(\n 'endDate',\n new Date(),\n CROWDFUNDING_CAMPAIGN_MAX_DAYS,\n i18n('invalid_date_limit', {\n maxdays: CROWDFUNDING_CAMPAIGN_MAX_DAYS,\n })\n )\n ),\n initialValues: {\n category,\n poolName: campaign.title,\n goalAmount: campaign.goal && campaign.goal.toString(),\n pledgeAmount:\n campaign.pledge > 0 ? campaign.pledge.toString() : undefined,\n endDate: campaign.end_date ? new Date(campaign.end_date) : defaultDate,\n charity: campaign.charity,\n discoverable:\n type === POOL_TYPE.PRIVATE ? NON_DISCOVERABLE : DISCOVERABLE,\n },\n formattedMaxGoalAmount,\n currency,\n charity: campaign.charity,\n // if user is coming from NPO page. he will be having charity as query parameter\n npoCharity: state.charity?.npoCharity,\n // use timezone of user session for ppui dateInput & calendar to display\n // correct date after selection\n timeZone: getTimeZone(),\n categoryList,\n category,\n npid: campaign.npid,\n disclaimer:\n hasDisclaimer(countryCode) && i18n(`disclaimer_new_flow_${countryCode}`),\n disclaimerCharity: getCharityDisclaimer(\n countryCode,\n campaign.charity?.charity_type,\n state.charity?.npoCharity\n ),\n type,\n isTitleInfoAndMinDescriptionEnabled:\n state.flags.isTitleInfoAndMinDescriptionEnabled &&\n type === POOL_TYPE.PERSONAL,\n }\n}\n\nconst mapDispatchToProps = dispatch => ({\n onSubmit(formValues) {\n trackClick({\n clickName: 'next',\n })\n dispatch(\n setData(NEW_CAMPAIGN_ID, {\n title: formValues.poolName,\n goal: formValues.goalAmount,\n pledge: formValues.pledgeAmount,\n category: formValues.category,\n end_date: formValues.endDate,\n campaign_type: CROWD_FUNDING,\n discoverable: formValues.discoverable,\n })\n )\n dispatch(\n push({\n pathname: `${GLOBAL_CONSTS.REQUEST_URI}/c/create-crowdfunding/story`,\n })\n )\n },\n})\n\nexport default injectWorldReady(\n reduxForm(\n {\n form: 'crowdfunding_basics',\n destroyOnUnmount: false,\n touchOnBlur: true,\n touchOnChange: false,\n fields: [\n 'poolName',\n 'goalAmount',\n 'pledgeAmount',\n 'endDate',\n 'charity',\n 'category',\n 'discoverable',\n ],\n },\n mapStateToProps,\n mapDispatchToProps\n )(formUtils(CrowdfundingBasics))\n)\n","import React, { Component, Fragment } from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './type_ahead_search.less'\nimport { debounce } from 'lodash'\n\nimport { SearchIcon, TextInput, LoadingSpinner } from '@paypalcorp/pp-react'\n\nclass TypeAheadSearch extends Component {\n static propTypes = {\n children: PropTypes.func,\n data: PropTypes.array,\n name: PropTypes.string,\n label: PropTypes.string,\n id: PropTypes.string,\n getOptions: PropTypes.func,\n getSelectedItem: PropTypes.func,\n delay: PropTypes.number,\n setItemDecoration: PropTypes.func,\n loadingElement: PropTypes.func,\n datasource: PropTypes.string,\n }\n static defaultProps = {\n datasource: 'label',\n }\n\n constructor(props) {\n super(props)\n\n this.state = {\n highlightedSuggestionIndex: -1,\n filteredSuggestions: [],\n showSuggestions: false,\n userInput: '',\n isCampaignLoading: false,\n }\n }\n\n componentDidMount() {\n document.addEventListener('mousedown', this.onDocumentMouseDown)\n this.debounceSearch = debounce(\n (items, userInput) => this.search(items, userInput),\n this.props.delay || 0\n )\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.onDocumentMouseDown)\n }\n\n onDocumentMouseDown = event => {\n const suggestionsNode = document.querySelector('#suggestions')\n if (\n !(\n event.target.id === this.props.id ||\n (suggestionsNode && suggestionsNode.contains(event.target))\n )\n ) {\n this.setState({\n showSuggestions: false,\n })\n }\n }\n\n closeSuggestions(userInput) {\n const userText = userInput || this.state.userInput\n this.setState({\n highlightedSuggestionIndex: -1,\n filteredSuggestions: [],\n showSuggestions: false,\n userInput: userText,\n isCampaignLoading: false,\n })\n document.querySelector(`#${this.props.id || 'typeAheadSearchBox'}`).focus()\n }\n\n getOptions(items, userInput) {\n const { datasource } = this.props\n return items.filter(\n suggestion =>\n suggestion[datasource] &&\n suggestion[datasource].toLowerCase().includes(userInput.toLowerCase())\n )\n }\n\n onChange = e => {\n const userInput = e.currentTarget.value\n const items = this.props.data\n this.setState({ isCampaignLoading: true, userInput, showSuggestions: true })\n this.debounceSearch(items, userInput)\n }\n\n async search(items, userInput) {\n const getOptions = this.props.getOptions\n ? this.props.getOptions\n : this.getOptions\n const filteredSuggestions = await getOptions(items, userInput)\n this.setState({\n highlightedSuggestionIndex: -1,\n filteredSuggestions,\n showSuggestions: true,\n isCampaignLoading: false,\n })\n }\n\n onItemClick = index => {\n const {\n state: { filteredSuggestions },\n } = this\n const item = filteredSuggestions[index]\n this.props.getSelectedItem(item)\n this.closeSuggestions(item[this.props.datasource])\n }\n\n onKeyDown = event => {\n const keyCode = event.key || event.keyCode\n const { highlightedSuggestionIndex, filteredSuggestions } = this.state\n switch (keyCode) {\n case 13: //On Enter\n case 'Enter':\n case 'ENTER':\n this.closeSuggestions(\n filteredSuggestions[highlightedSuggestionIndex][this.props.datasource]\n )\n break\n case 38: //up arrow, decrement the index\n case 'Up':\n case 'ArrowUp':\n if (highlightedSuggestionIndex === 0) {\n this.setState({\n highlightedSuggestionIndex: filteredSuggestions.length - 1,\n })\n return\n }\n this.setState({\n highlightedSuggestionIndex: highlightedSuggestionIndex - 1,\n })\n break\n case 40: //down arrow, increment the index\n case 'Down':\n case 'ArrowDown':\n if (highlightedSuggestionIndex - 1 === filteredSuggestions.length) {\n this.setState({\n highlightedSuggestionIndex: 0,\n })\n return\n }\n this.setState({\n highlightedSuggestionIndex: highlightedSuggestionIndex + 1,\n })\n break\n //Tab\n case 9:\n case 'Tab':\n this.closeSuggestions()\n break\n //ESC\n case 27:\n case 'Escape':\n case 'Esc':\n this.closeSuggestions()\n break\n default:\n break\n }\n }\n\n getLoadingElement = () => {\n return (\n this.props.loadingElement ||\n (this.state.isCampaignLoading && (\n
    \n \n
    \n ))\n )\n }\n\n getTemplate = () => {\n const {\n onItemClick,\n getItemProps,\n getListProps,\n getInputProps,\n getLoadingElement,\n state: {\n highlightedSuggestionIndex,\n filteredSuggestions,\n userInput,\n showSuggestions,\n isCampaignLoading,\n },\n } = this\n const suggestionList =\n (showSuggestions && (\n 0 || isCampaignLoading\n ? 'suggestions'\n : 'suggestions suggestionborder'\n }\n {...getListProps({})}\n aria-hidden={!showSuggestions}\n >\n {getLoadingElement()}\n {filteredSuggestions.map((suggestion, index) => {\n let className,\n area_selected = false\n\n // Flag the active suggestion with a class\n if (index === highlightedSuggestionIndex) {\n className = 'highlightedSuggestion'\n area_selected = true\n }\n return (\n onItemClick(index) })}\n aria-selected={area_selected}\n >\n {this.props.setItemDecoration\n ? this.props.setItemDecoration(suggestion)\n : suggestion[this.props.datasource]}\n \n )\n })}\n \n )) ||\n null\n return (\n \n }\n className={`${styles['ppvx_text-input']} ${\n styles['search-input-border-radius']\n }`}\n {...getInputProps({})}\n />\n {suggestionList}\n \n )\n }\n\n callAllEvents = (...fns) => (event, ...args) =>\n fns.forEach(fn => fn && fn(event, ...args))\n\n getInputProps = ({ onKeyDown, onChange, onBlur, ...rest }) => {\n const eventHandlers = {\n onKeyDown: this.callAllEvents(onKeyDown, this.onKeyDown),\n onChange: this.callAllEvents(onChange, this.onChange),\n onBlur: this.callAllEvents(onBlur),\n }\n return {\n name: this.props.name || 'search',\n id: this.props.id || 'typeAheadSearchBox',\n label: this.props.label || 'search',\n autoComplete: 'off',\n 'aria-owns': 'suggestions',\n 'aria-expanded': 'false',\n 'aria-autocomplete': 'both',\n 'aria-activedescendant': '',\n ...eventHandlers,\n ...rest,\n }\n }\n\n getListProps = ({ id, ...rest }) => {\n return {\n className: 'suggestions',\n id: id || 'suggestions',\n role: 'listbox',\n ...rest,\n }\n }\n\n getItemProps = ({ onClick, className, ...rest }) => {\n return {\n className: className,\n onClick: this.callAllEvents(onClick, this.onClick),\n role: 'option',\n ...rest,\n }\n }\n\n render() {\n const {\n onItemClick,\n getItemProps,\n getListProps,\n getInputProps,\n state: {\n highlightedSuggestionIndex,\n filteredSuggestions,\n userInput,\n showSuggestions,\n },\n } = this\n return this.props.children\n ? this.props.children({\n onItemClick,\n getItemProps,\n getListProps,\n getInputProps,\n highlightedSuggestionIndex,\n filteredSuggestions,\n userInput,\n showSuggestions,\n })\n : this.getTemplate()\n }\n}\n\nexport default cssModules(TypeAheadSearch, styles, { allowMultiple: true })\n","import React, { useState } from 'react'\nimport clsx from 'clsx'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './horizontal_scroller.less'\nimport { Card, Avatar, BodyText, HorizontalScroll } from '@paypalcorp/pp-react'\n\nconst HorizontalScroller = props => {\n const { isMobile, dataTestId, items, onClick } = props\n const [currentPage, setCurrentPage] = useState(1)\n\n const handlePageChange = index => {\n setCurrentPage(index)\n }\n\n const renderCard = item => {\n const { name, logo_url } = item\n /**\n * Shimmer depends on actually having something to load\n * so, when there is a logo, it's assumed that something should load\n * otherwise there is no need to even display the shimmer, this is why\n * isLoading state depends on logo_url having a value or not\n */\n const [isLoading, setIsLoading] = useState(!!logo_url)\n const [isImageVisible, setIsImageVisible] = useState(false)\n\n const handleImageLoad = () => {\n setIsLoading(false)\n setIsImageVisible(true)\n }\n\n const handleImageError = () => {\n setIsLoading(false)\n }\n\n return (\n onClick(item)}>\n \n
    \n {logo_url && (\n \n )}\n\n {!isImageVisible && (\n \n )}\n
    \n
    \n {name}\n
    \n
    \n
    \n )\n }\n\n const renderCards = cssModules(renderCard, styles, { allowMultiple: true })\n\n return (\n \n )\n}\n\nHorizontalScroller.propTypes = {\n isMobile: PropTypes.bool,\n onClick: PropTypes.func,\n dataTestId: PropTypes.string,\n items: PropTypes.object.isRequired,\n}\n\nHorizontalScroller.defaultProps = {\n isMobile: false,\n dataTestId: 'main',\n}\n\nexport default HorizontalScroller\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './crowdfunding_nonprofit.less'\nimport { BodyText, HeadingText, Avatar } from '@paypalcorp/pp-react'\nimport { trackEventNameClick } from 'lib/fpti_analytics'\nimport Typeahead from 'components/common/type_ahead_search'\nimport HorizontalScroller from 'components/horizontal_scroller'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { validateImagePath } from 'shared/campaign_url'\n\nfunction NonProfitPage(props) {\n const { featuredCharities, isMobile } = props\n\n const getOptions = async (options, userText) => {\n if (!userText) {\n return []\n }\n const response =\n (await props.getCharities({\n search_all: userText,\n page: 1,\n page_size: 30,\n })) || []\n\n return response\n }\n\n const getSelectedItem = item => {\n trackEventNameClick({\n event_name: 'dw_giving_browse_fundraiser_charity_selection_pressed',\n charity_name: item.name,\n npid: item.nonprofit_id,\n })\n props.selectCharity(item)\n }\n\n const handleCardOnClick = item => {\n trackEventNameClick({\n event_name: 'dw_giving_find_fundraiser_charity_recommendation_pressed',\n charity_name: item.name,\n npid: item.nonprofit_id,\n })\n\n props.selectCharity(item)\n }\n\n const setItemDecoration = item => {\n const logoURL = validateImagePath(item.logo_url)\n return (\n \n {logoURL ? (\n \n ) : (\n \n )}\n

    \n {item.name}\n

    {`${item.address.city}, ${item.address.country_code}`}
    \n

    \n
    \n )\n }\n\n return (\n
    \n \n \n \n \n trackEventNameClick({\n event_name: 'dw_giving_find_fundraiser_charity_search_pressed',\n })\n }\n >\n \n }\n />\n
    \n {featuredCharities.length && (\n <>\n \n \n \n \n \n )}\n
    \n )\n}\n\nNonProfitPage.propTypes = {\n featuredCharities: PropTypes.arrays,\n selectCharity: PropTypes.func,\n getCharities: PropTypes.func.isRequired,\n isMobile: PropTypes.bool,\n}\n\nexport default cssModules(NonProfitPage, styles)\n","import { createSelector } from 'reselect'\n\nconst getCharity = state => state.charity\n\nexport const getFeaturedCharities = createSelector(getCharity, charity => {\n if (!(charity && charity.featuredCharities)) {\n return []\n }\n return charity.featuredCharities\n})\n","import NonProfitPage from './crowdfunding_nonprofit'\nimport { connect } from 'react-redux'\nimport { push } from 'react-router-redux'\nimport { NEW_CAMPAIGN_ID, setData } from 'redux/modules/campaign'\nimport { getFeaturedCharities } from 'redux/selectors/charity'\nimport { getCharities } from 'redux/modules/charity'\n\nconst mapStateToProps = (state, props) => {\n const featuredCharities = getFeaturedCharities(state, props)\n\n return {\n isMobile: state.device_info.isMobile,\n featuredCharities: featuredCharities,\n }\n}\nconst mapDispatchToProps = dispatch => {\n return {\n selectCharity(charity) {\n dispatch(\n setData(NEW_CAMPAIGN_ID, {\n charity: charity,\n npid: charity.nonprofit_id,\n })\n )\n dispatch(\n push({\n pathname: `${GLOBAL_CONSTS.REQUEST_URI}/c/create-crowdfunding/basics`,\n })\n )\n },\n getCharities(searchParams) {\n return dispatch(getCharities(searchParams))\n },\n }\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(NonProfitPage)\n","import fetchClient from 'lib/fetch_client'\nimport routes from 'server_routes'\n\nexport function getCharities(searchParams) {\n return (dispatch, getState) => {\n return fetchClient()\n .request(routes.charity.api.getCharities(), {\n method: 'GET',\n query: searchParams,\n })\n .then(response => {\n return response\n })\n .catch(err => {\n return err\n })\n }\n}\n","import React from 'react'\nimport styles from './tip_box.less'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport {\n CaptionText,\n LightBulbIcon,\n InformationIcon,\n} from '@paypalcorp/pp-react'\n\nclass TipBox extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n type: PropTypes.string,\n }\n renderIcon = type => {\n let icon\n if (type === 'cover') {\n icon = \n } else if (type === 'story') {\n icon = \n }\n return icon\n }\n render() {\n const { type } = this.props\n return (\n
    \n
    {this.renderIcon(type)}
    \n {this.props.text}\n
    \n )\n }\n}\n\nexport default cssModules(TipBox, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from '../crowdfunding_story.less'\nimport { domOnlyProps } from 'lib/form_utils'\nimport { getFormError } from 'lib/validators'\nimport {\n DESCRIPTION_ROWS,\n CROWDFUNDING_DESCRIPTION_LENGTH,\n} from 'shared/lengths'\nimport { BodyText, HeadingText, TextArea } from '@paypalcorp/pp-react'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { useIntl } from 'intl'\n\nconst Private = ({ description }) => {\n const { formatMessage } = useIntl()\n return (\n <>\n \n \n \n\n \n \n \n\n \n \n )\n}\n\nPrivate.propTypes = {\n description: PropTypes.string.isRequired,\n}\n\nexport default cssModules(Private, styles)\n","import React from 'react'\nimport { CaptionText, Card } from '@paypalcorp/pp-react'\nimport { Message } from '@paypalcorp/worldready-react'\nimport styles from './tip_box_personal.less'\n\nconst PersonalTipBox = () => {\n return (\n \n \n \n \n \n
      \n {[\n 'personal_tip_box_details_1',\n 'personal_tip_box_details_2',\n 'personal_tip_box_details_3',\n ].map(item => (\n \n \n \n ))}\n
    \n \n \n \n
    \n
    \n )\n}\n\nexport default PersonalTipBox\n","import React, { useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './crowdfunding_story.less'\nimport TipBox from 'components/common/tip_box'\nimport { domOnlyProps } from 'lib/form_utils'\nimport { getFormError } from 'lib/validators'\nimport {\n DESCRIPTION_ROWS,\n CROWDFUNDING_DESCRIPTION_LENGTH,\n} from 'shared/lengths'\nimport { BodyText, Button, HeadingText, TextArea } from '@paypalcorp/pp-react'\nimport { trackEventNameClick } from 'lib/fpti_analytics'\nimport clsx from 'clsx'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { POOL_TYPE } from 'shared/shared_consts'\nimport Private from './partials/private'\nimport { useIntl } from 'intl'\nimport PersonalTipBox from '../tip_box_personal/tip_box_personal'\n\nfunction PoolDescription(props) {\n useEffect(() => {\n const { initializeForm, description } = props\n initializeForm({\n description,\n })\n }, [])\n const { formatMessage } = useIntl()\n const handleNextClick = () => {\n const eventName = 'dw_giving_fundraiser_select_photo_screen_shown'\n trackEventNameClick({\n event_name: eventName,\n })\n trackEventNameClick({\n event_name: 'dw_giving_fundraiser_tell_story_next_pressed',\n })\n }\n\n const {\n fields: { description },\n handleSubmit,\n anyInactiveFieldsTouchedWithError,\n type,\n } = props\n\n const isPersonalFundraiser = type === POOL_TYPE.PERSONAL\n return (\n
    \n {type === POOL_TYPE.PRIVATE ? (\n \n ) : (\n <>\n \n {isPersonalFundraiser ? (\n \n ) : (\n \n )}\n \n {!isPersonalFundraiser && (\n \n \n \n )}\n\n \n {isPersonalFundraiser ? (\n \n ) : (\n \n )}\n \n )}\n\n
    \n \n \n \n
    \n \n )\n}\n\nPoolDescription.propTypes = {\n fields: PropTypes.object.isRequired,\n handleSubmit: PropTypes.func.isRequired,\n shouldAutoFocus: PropTypes.bool,\n onChangeCover: PropTypes.func,\n anyInactiveFieldsTouchedWithError: PropTypes.bool.isRequired,\n npid: PropTypes.string,\n charity: PropTypes.object,\n initializeForm: PropTypes.func,\n description: PropTypes.string,\n values: PropTypes.object.isRequired,\n handleChange: PropTypes.func,\n type: PropTypes.string,\n}\n\nexport default cssModules(PoolDescription, styles, {\n allowMultiple: true,\n})\n","/* istanbul ignore file */\n\n/**\n * This file is complex to test because it calls many functions\n * on deeper levels, a refactor might be needed, this is why\n * I'm adding the ignore line at the top\n */\nimport PoolDescription from './crowdfunding_story'\nimport { reduxForm, initialize, change } from 'redux-form'\nimport {\n CROWDFUNDING_DESCRIPTION_LENGTH,\n CROWDFUNDING_DESCRIPTION_MIN_LENGTH,\n} from 'shared/lengths'\nimport { required, length, combine, minLength } from 'lib/validators'\nimport formUtils from 'lib/form_utils'\nimport { push } from 'react-router-redux'\nimport { injectWorldReady } from '@paypalcorp/worldready-react'\n\nimport { NEW_CAMPAIGN_ID, setData } from 'redux/modules/campaign'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { formatMessage } from 'intl'\nimport { POOL_TYPE } from 'shared/shared_consts'\n\nconst validators = (value, props) =>\n [\n required(\n 'description',\n formatMessage(\n props.worldReady,\n 'components.pages.crowdfunding.pool_story.description_required'\n )\n ),\n length(\n 'description',\n CROWDFUNDING_DESCRIPTION_LENGTH,\n formatMessage(\n props.worldReady,\n `components.pages.crowdfunding.pool_story.description_too_long`,\n {\n maxLength: CROWDFUNDING_DESCRIPTION_LENGTH,\n }\n )\n ),\n props.isTitleInfoAndMinDescriptionEnabled &&\n minLength(\n 'description',\n CROWDFUNDING_DESCRIPTION_MIN_LENGTH,\n formatMessage(\n props.worldReady,\n `components.pages.crowdfunding.pool_story.description_too_short`,\n {\n minLength: CROWDFUNDING_DESCRIPTION_MIN_LENGTH,\n }\n )\n ),\n ].filter(Boolean)\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n\n return {\n shouldAutoFocus: props.router.params.action !== 'POP',\n initialValues: {\n description: campaign.description,\n },\n charity: campaign.charity,\n npid: campaign.npid,\n description: campaign.description,\n type: campaign.type,\n isTitleInfoAndMinDescriptionEnabled:\n state.flags.isTitleInfoAndMinDescriptionEnabled &&\n campaign.type === POOL_TYPE.PERSONAL,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n // event_name is hardcoded for crowdfunding phase 1\n return {\n onSubmit(formValues) {\n dispatch(\n setData(NEW_CAMPAIGN_ID, {\n description: formValues.description,\n event_name: 'COVID-19',\n })\n )\n dispatch(\n push({\n pathname: `${\n GLOBAL_CONSTS.REQUEST_URI\n }/c/create-crowdfunding/select-cover`,\n })\n )\n },\n initializeForm: data => initialize('crowdfunding_story', data),\n handleChange: (field, value) => change('crowdfunding_story', field, value),\n }\n}\n\nexport default injectWorldReady(\n reduxForm(\n {\n form: 'crowdfunding_story',\n destroyOnUnmount: false,\n fields: ['description'],\n touchOnBlur: true,\n touchOnChange: false,\n validate: (...data) => combine(...validators(...data))(...data),\n },\n mapStateToProps,\n mapDispatchToProps\n )(formUtils(PoolDescription))\n)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {\n CaptionText,\n PhysicalCard,\n Col,\n PAYPAL_THEME,\n DeleteIcon,\n PictureIcon,\n} from '@paypalcorp/pp-react'\nimport { trackEventNameClick } from 'lib/fpti_analytics'\nimport { DEAFULT_COVER_IMAGES } from 'shared/shared_consts'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { isImageDefaultCover } from 'shared/helpers/image_helper'\nimport styles from '../crowdfunding_select_cover.less'\nimport cssModules from 'react-css-modules'\n\nconst CustomImageSelection = ({\n selectedPhoto,\n defaultImage1,\n defaultImage2,\n defaultImage3,\n fields,\n handleSelectCover,\n charity,\n setSelectedPhoto,\n defaultCategoryCover,\n}) => {\n const { sysColorPrimaryMainActive } = PAYPAL_THEME\n const onAddNewPhotoClick = () => {\n trackEventNameClick({\n event_name: 'dw_giving_fundraiser_add_photo_screen_shown',\n })\n trackEventNameClick({\n event_name: 'dw_giving_fundraiser_select_photo_customize_pressed',\n })\n /* defaultImage3 is index of the DEAFULT_COVER_IMAGES array, it should be zero */\n if (\n selectedPhoto === defaultCategoryCover ||\n selectedPhoto === DEAFULT_COVER_IMAGES[defaultImage1] ||\n selectedPhoto === DEAFULT_COVER_IMAGES[defaultImage2] ||\n (defaultImage3 >= 0 &&\n selectedPhoto === DEAFULT_COVER_IMAGES[defaultImage3])\n ) {\n fields.backgroundImage.onChange('')\n setSelectedPhoto('')\n }\n handleSelectCover()\n }\n\n const isDefaultSelected = [\n defaultCategoryCover,\n DEAFULT_COVER_IMAGES[defaultImage1],\n DEAFULT_COVER_IMAGES[defaultImage2],\n DEAFULT_COVER_IMAGES[defaultImage3],\n ]\n .filter(Boolean)\n .includes(fields.backgroundImage.value)\n\n const selectPhoto = () => {\n fields.backgroundImage.onChange('')\n setSelectedPhoto(defaultCategoryCover)\n }\n\n const isNotDefaultImage = !isImageDefaultCover(selectedPhoto)\n\n return (\n \n {!isDefaultSelected &&\n isNotDefaultImage &&\n fields.backgroundImage.value ? (\n
    \n \n
    \n selectPhoto()}\n onKeyUp={e => {\n if (e.key === 'Enter') {\n selectPhoto()\n }\n }}\n tabIndex={0}\n >\n \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n ) : (\n {\n if (e.key === 'Enter') {\n onAddNewPhotoClick()\n }\n }}\n >\n
    \n \n \n \n \n
    \n \n )}\n \n )\n}\n\nCustomImageSelection.propTypes = {\n handleSelectCover: PropTypes.func,\n defaultCategoryCover: PropTypes.string,\n fields: PropTypes.shape({\n backgroundImage: PropTypes.shape({\n value: PropTypes.string,\n onChange: PropTypes.func,\n }),\n }),\n charity: PropTypes.object,\n defaultImage1: PropTypes.string,\n defaultImage2: PropTypes.string,\n defaultImage3: PropTypes.string,\n selectedPhoto: PropTypes.string,\n setSelectedPhoto: PropTypes.func,\n}\n\nexport default cssModules(CustomImageSelection, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {\n PhysicalCard,\n Row,\n Col,\n HeadingText,\n BodyText,\n} from '@paypalcorp/pp-react'\nimport { Checkbox } from '@paypalcorp/pp-react-checkbox'\nimport { DEAFULT_COVER_IMAGES } from 'shared/shared_consts'\nimport { Message } from '@paypalcorp/worldready-react'\nimport CustomImageSelection from './custom_image'\n\nimport styles from '../crowdfunding_select_cover.less'\nimport cssModules from 'react-css-modules'\n\nconst PrivateCover = props => {\n const { defaultImage3, setSelectedPhoto, selectedPhoto } = props\n return (\n
    \n \n \n \n \n \n \n\n \n \n \n \n setSelectedPhoto(DEAFULT_COVER_IMAGES[defaultImage3])\n }\n tabIndex={0}\n onKeyUp={e => {\n if (e.key === 'Enter') {\n setSelectedPhoto(DEAFULT_COVER_IMAGES[defaultImage3])\n }\n }}\n data-testid=\"default_image_3\"\n />\n
    \n \n setSelectedPhoto(DEAFULT_COVER_IMAGES[defaultImage3])\n }\n tabIndex={-1}\n />\n
    \n \n
    \n
    \n )\n}\n\n//Few props are using by its children component\nPrivateCover.propTypes = {\n defaultImage3: PropTypes.string,\n setSelectedPhoto: PropTypes.func,\n selectedPhoto: PropTypes.string,\n defaultCategoryCover: PropTypes.string,\n defaultImage1: PropTypes.string,\n defaultImage2: PropTypes.string,\n handleSelectCover: PropTypes.func,\n fields: PropTypes.shape({\n backgroundImage: PropTypes.shape({\n value: PropTypes.string,\n onChange: PropTypes.func,\n }),\n }),\n charity: PropTypes.object,\n}\n\nexport default cssModules(PrivateCover, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport {\n PhysicalCard,\n Row,\n Col,\n HeadingText,\n BodyText,\n} from '@paypalcorp/pp-react'\nimport { Checkbox } from '@paypalcorp/pp-react-checkbox'\nimport styles from '../crowdfunding_select_cover.less'\nimport CustomImageSelection from './custom_image'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { POOL_TYPE } from 'shared/shared_consts'\n\nconst PersonalAndCharityCover = props => {\n const {\n campaignType,\n defaultCategoryCover,\n setSelectedPhoto,\n selectedPhoto,\n } = props\n const title =\n 'components.pages.crowdfunding.crowdfunding_cover.select_cover_title'\n\n const subtitle =\n campaignType === POOL_TYPE.PERSONAL\n ? 'components.pages.crowdfunding.crowdfunding_cover.personal_select_cover_sub_title'\n : 'components.pages.crowdfunding.crowdfunding_cover.select_cover_sub_title'\n\n return (\n
    \n \n \n \n \n \n \n \n \n \n {defaultCategoryCover && (\n <>\n setSelectedPhoto(defaultCategoryCover)}\n tabIndex={0}\n onKeyUp={e => {\n if (e.key === 'Enter') {\n setSelectedPhoto(defaultCategoryCover)\n }\n }}\n data-testid=\"category-cover-image-card\"\n />\n
    \n setSelectedPhoto(defaultCategoryCover)}\n tabIndex={-1}\n />\n
    \n \n )}\n \n
    \n
    \n )\n}\n\n//Few props are using by its children component\nPersonalAndCharityCover.propTypes = {\n defaultCategoryCover: PropTypes.string,\n setSelectedPhoto: PropTypes.func,\n selectedPhoto: PropTypes.string,\n defaultImage1: PropTypes.string,\n defaultImage2: PropTypes.string,\n handleSelectCover: PropTypes.func,\n fields: PropTypes.shape({\n backgroundImage: PropTypes.shape({\n value: PropTypes.string,\n onChange: PropTypes.func,\n }),\n }),\n charity: PropTypes.object,\n defaultImage3: PropTypes.string,\n campaignType: PropTypes.string.isRequired,\n}\n\nexport default cssModules(PersonalAndCharityCover, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { PhysicalCard, Row, Col } from '@paypalcorp/pp-react'\nimport { Checkbox } from '@paypalcorp/pp-react-checkbox'\nimport { DEAFULT_COVER_IMAGES } from 'shared/shared_consts'\nimport styles from '../crowdfunding_select_cover.less'\nimport cssModules from 'react-css-modules'\n\nconst DefaultImages = ({\n defaultImage1,\n defaultImage2,\n setSelectedPhoto,\n selectedPhoto,\n}) => {\n return (\n \n \n setSelectedPhoto(DEAFULT_COVER_IMAGES[defaultImage1])}\n tabIndex={0}\n onKeyUp={e => {\n if (e.key === 'Enter') {\n setSelectedPhoto(DEAFULT_COVER_IMAGES[defaultImage1])\n }\n }}\n data-testid=\"default_images__pysical_card_1\"\n />\n
    \n \n setSelectedPhoto(DEAFULT_COVER_IMAGES[defaultImage1])\n }\n tabIndex={-1}\n data-testid=\"default_images__checkbox_1\"\n />\n
    \n \n \n setSelectedPhoto(DEAFULT_COVER_IMAGES[defaultImage2])}\n tabIndex={0}\n onKeyUp={e => {\n if (e.key === 'Enter') {\n setSelectedPhoto(DEAFULT_COVER_IMAGES[defaultImage2])\n }\n }}\n data-testid=\"default_images__pysical_card_2\"\n />\n
    \n \n setSelectedPhoto(DEAFULT_COVER_IMAGES[defaultImage2])\n }\n tabIndex={-1}\n data-testid=\"default_images__checkbox_2\"\n />\n
    \n \n
    \n )\n}\n\nDefaultImages.propTypes = {\n defaultImage1: PropTypes.string,\n defaultImage2: PropTypes.string,\n selectedPhoto: PropTypes.string,\n setSelectedPhoto: PropTypes.func,\n}\n\nexport default cssModules(DefaultImages, styles)\n","import React, { useState, useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './crowdfunding_select_cover.less'\nimport { DEAFULT_COVER_IMAGES } from 'shared/shared_consts'\nimport PrivateCover from './partials/private_cover'\nimport PersonalAndCharityCover from './partials/personal_charity_cover'\nimport DefaultImages from './partials/default_images'\n\nconst defaultImgGen = () =>\n Math.floor(Math.random() * DEAFULT_COVER_IMAGES.length) // NOSONAR - Not used in a security context\nconst defaultImage1 = defaultImgGen()\nlet defaultImage2 = defaultImgGen()\n\n//Generate 2nd default image\nconst getDefaultImage2 = () => {\n if (defaultImage2 === defaultImage1) {\n defaultImage2 = defaultImgGen()\n getDefaultImage2()\n }\n}\ngetDefaultImage2()\n\nlet defaultImage3 = defaultImgGen()\n\nconst getDefaultImgGen3 = () => {\n if (defaultImage2 === defaultImage3 || defaultImage1 === defaultImage3) {\n defaultImage3 = defaultImgGen()\n getDefaultImgGen3()\n }\n}\n\n// Generate third default image for private fundraiser\ngetDefaultImgGen3()\n\nfunction CrowdFundingSelectCover(props) {\n const coverForSelectedCategory = props.defaultCategoryCover\n const checkIfUploadedImg = Boolean(\n props.fields.backgroundImage.value &&\n !DEAFULT_COVER_IMAGES.includes(props.fields.backgroundImage.value)\n )\n\n const [selectedPhoto, setSelectedPhoto] = useState(\n checkIfUploadedImg\n ? props.fields.backgroundImage.value\n : coverForSelectedCategory\n )\n useEffect(\n () => {\n if (props.fields.backgroundImage.value !== selectedPhoto) {\n props.fields.backgroundImage.onChange(selectedPhoto)\n }\n },\n [selectedPhoto]\n )\n\n useEffect(() => {\n // Select default photo for private fundraiser\n if (props.isPrivateCampaign && !selectedPhoto) {\n setSelectedPhoto(DEAFULT_COVER_IMAGES[defaultImage3])\n }\n }, [])\n\n const commonProps = {\n defaultImage1,\n defaultImage2,\n defaultImage3,\n setSelectedPhoto,\n selectedPhoto,\n }\n\n const CoverComponent = props.isPrivateCampaign\n ? PrivateCover\n : PersonalAndCharityCover\n\n return (\n <>\n \n \n \n )\n}\n\nCrowdFundingSelectCover.propTypes = {\n cdnHost: PropTypes.string,\n handleSelectCover: PropTypes.func,\n defaultCategoryCover: PropTypes.string,\n fields: PropTypes.shape({\n backgroundImage: PropTypes.shape({\n value: PropTypes.string,\n onChange: PropTypes.func,\n }),\n }),\n charity: PropTypes.object,\n isPrivateCampaign: PropTypes.boolean,\n campaignType: PropTypes.string.isRequired,\n}\n\nexport default cssModules(CrowdFundingSelectCover, styles)\n","export function getMajorMinorAgreementVersion(userLegalAgreementVersion) {\n const [\n policy_major_version = '0',\n policy_minor_version = '0',\n ] = userLegalAgreementVersion.split('.')\n\n return { policy_major_version, policy_minor_version }\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from '../crowdfunding_cover.less'\nimport { BodyText, Button, HeadingText } from '@paypalcorp/pp-react'\nimport CrowdFundingCoverImage from 'components/crowdfunding_cover_image'\nimport { trackEventNameClick } from 'lib/fpti_analytics'\nimport { Message } from '@paypalcorp/worldready-react'\n\nconst PositionPhoto = props => {\n const { categoryImage, coverImage, fields, handleCoverSelect } = props\n\n return (\n <>\n \n \n \n\n \n \n \n\n \n trackEventNameClick({\n event_name: 'dw_giving_fundraiser_add_photo_upload_pressed',\n })\n }\n >\n \n
    \n\n
    \n \n handleCoverSelect(\n `${GLOBAL_CONSTS.REQUEST_URI}/c/create-crowdfunding/select-cover`\n )\n }\n data-nemo=\"add-photo-\"\n data-testid=\"position-photo__add-photo-btn\"\n type=\"button\"\n >\n \n \n
    \n \n )\n}\n\nPositionPhoto.propTypes = {\n categoryImage: PropTypes.string.isRequired,\n coverImage: PropTypes.any.isRequired,\n fields: PropTypes.object.isRequired,\n handleCoverSelect: PropTypes.func.isRequired,\n}\n\nexport default cssModules(PositionPhoto, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport { BodyText, HeadingText } from '@paypalcorp/pp-react'\nimport styles from '../crowdfunding_cover.less'\nimport CrowdFundingCoverImage from 'components/crowdfunding_cover_image'\nimport { trackEventNameClick } from 'lib/fpti_analytics'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { POOL_TYPE } from 'shared/shared_consts'\n\nconst AddPhoto = props => {\n const { categoryImage, coverImage, fields, campaignType } = props\n const { PERSONAL, PRIVATE } = POOL_TYPE\n const contentKeys = [PERSONAL, PRIVATE].includes(campaignType)\n ? {\n title: 'flow.private.cover.header',\n subtitle: 'flow.private.cover.description',\n bullets: [\n 'flow.private.cover.bullet_good_image',\n 'flow.private.cover.bullet_exact_image',\n 'flow.private.cover.bullet_good_size_image',\n ],\n }\n : {\n title: 'components.pages.crowdfunding.crowdfunding_cover.title',\n subtitle:\n 'components.pages.crowdfunding.crowdfunding_cover.sub_title_noimage',\n bullets: [\n 'components.pages.crowdfunding.crowdfunding_cover.body_text_noimage_1',\n 'components.pages.crowdfunding.crowdfunding_cover.body_text_noimage_2',\n 'components.pages.crowdfunding.crowdfunding_cover.body_text_noimage_3',\n ],\n }\n\n if (campaignType === PERSONAL) {\n contentKeys.bullets[1] =\n 'components.pages.crowdfunding.crowdfunding_cover.body_text_noimage_personal_2'\n }\n\n return (\n <>\n \n \n \n \n \n \n\n \n
      \n {contentKeys.bullets.map((item, index) => (\n
    • \n \n
    • \n ))}\n
    \n
    \n\n \n trackEventNameClick({\n event_name: 'dw_giving_fundraiser_add_photo_upload_pressed',\n })\n }\n >\n \n
    \n \n )\n}\n\nAddPhoto.propTypes = {\n categoryImage: PropTypes.string,\n coverImage: PropTypes.any.isRequired,\n fields: PropTypes.object.isRequired,\n campaignType: PropTypes.string.isRequired,\n}\n\nexport default cssModules(AddPhoto, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport {\n CaptionText,\n BodyText,\n Button,\n Dialog,\n HeadingText,\n PictureIcon,\n Sheet,\n} from '@paypalcorp/pp-react'\nimport styles from './crowdfunding_cover.less'\nimport CrowdFundingPreview from 'components/pages/crowdfunding/crowdfunding_preview'\nimport CrowdFundingSelectCover from 'components/pages/crowdfunding/crowdfunding_select_cover'\nimport {\n trackClick,\n trackEventNameClick,\n trackImpression,\n} from 'lib/fpti_analytics'\nimport TipBox from 'components/common/tip_box'\nimport { getI18n } from 'intl'\nimport clsx from 'clsx'\nimport { getMajorMinorAgreementVersion } from 'lib/user_consent'\nimport { Message } from '@paypalcorp/worldready-react'\nimport PositionPhoto from './partials/position_photo'\nimport AddPhoto from './partials/add_photo'\nimport { POOL_TYPE } from 'shared/shared_consts'\n\nexport const I18N_CONTEXT = 'components/pages/crowdfunding/crowdfunding_cover'\nconst i18n = getI18n(I18N_CONTEXT)\n\nclass CrowdFundingCover extends React.Component {\n static propTypes = {\n anyInactiveFieldsTouchedWithError: PropTypes.bool.isRequired,\n backgroundImage: PropTypes.string,\n backgroundPan: PropTypes.number,\n charity: PropTypes.object,\n countryCode: PropTypes.string,\n fields: PropTypes.object.isRequired,\n gradientColor: PropTypes.string,\n handleSubmit: PropTypes.func.isRequired,\n isAndroid: PropTypes.bool,\n onChangeCover: PropTypes.func,\n setData: PropTypes.func,\n shouldAutoFocus: PropTypes.bool,\n submit: PropTypes.func,\n handleCoverSelect: PropTypes.func,\n termsAndConditionLink: PropTypes.string,\n cdnHost: PropTypes.string,\n route: PropTypes.object,\n router: PropTypes.object,\n defaultCategoryCover: PropTypes.string,\n isPrivateCampaign: PropTypes.bool,\n userConsentDisclaimer: PropTypes.string,\n userConsentBtnText: PropTypes.string,\n userLegalAgreementVersion: PropTypes.string,\n categoryImage: PropTypes.string,\n isMobile: PropTypes.bool,\n campaignType: PropTypes.string,\n }\n\n constructor(props) {\n super(props)\n this.coverImage = React.createRef()\n this.path = 'select-cover'\n }\n\n state = {\n isOpen: false,\n isPhotoModal: false,\n }\n setData() {\n this.props.setData({\n background_image: this.props.fields.backgroundImage.value,\n background_image_filename:\n this.props.fields.backgroundImageFilename.value ||\n this.props.fields.backgroundImage.value,\n background_pan: this.props.fields.backgroundPan.value,\n user_legal_agreement_version: this.props.userLegalAgreementVersion,\n })\n }\n handleModalClick = e => {\n e.preventDefault()\n this.setData()\n this.setState({ isOpen: true })\n const eventName =\n this.props.route && this.props.route.path === this.path\n ? 'dw_giving_fundraiser_select_photo_preview_pressed'\n : 'dw_giving_fundraiser_add_photo_preview_pressed'\n trackClick({\n clickName: eventName,\n data: {\n event_name: eventName,\n photo_uploaded_flag: this.props.fields.backgroundImage.value ? 1 : 0,\n },\n })\n trackImpression({\n pageName: 'Preview',\n event_name: 'dw_giving_fundraiser_preview_screen_shown',\n })\n }\n\n handleModalClose = () => {\n this.setState({ isOpen: false })\n trackClick({\n clickName: 'dw_giving_fundraiser_preview_dismiss_pressed',\n data: {\n event_name: 'dw_giving_fundraiser_preview_dismiss_pressed',\n dismiss_method: 'close',\n },\n })\n }\n\n handleSubmit = e => {\n e.preventDefault()\n\n const { userConsentBtnText, userLegalAgreementVersion } = this.props\n\n const eventName =\n this.props.route && this.props.route.path === this.path\n ? 'dw_giving_fundraiser_select_photo_publish_pressed'\n : 'dw_giving_fundraiser_add_photo_publish_pressed'\n trackClick({\n clickName: eventName,\n data: {\n event_name: eventName,\n photo_uploaded_flag: this.props.fields.backgroundImage.value ? 1 : 0,\n },\n })\n\n if (userConsentBtnText) {\n trackClick({\n clickName: 'active_consent_disclaimer_agree_pressed',\n data: {\n event_name: 'active_consent_disclaimer_agree_pressed',\n ...getMajorMinorAgreementVersion(userLegalAgreementVersion),\n },\n })\n }\n if (this.props.fields.backgroundImage.value) {\n this.submitCoverPage()\n } else {\n trackImpression({\n pageName: 'no-photo-screen-shown',\n event_name: 'dw_giving_fundraiser_no_photo_screen_shown',\n })\n this.setState({ isPhotoModal: true })\n }\n }\n submitCoverPage = () => {\n if (this.state.isPhotoModal) {\n trackEventNameClick({\n event_name: 'dw_giving_fundraiser_no_photo_proceed_pressed',\n })\n }\n\n this.setData()\n return this.props.submit(\n `${GLOBAL_CONSTS.REQUEST_URI}/c/create-crowdfunding/publish`\n )\n }\n\n handlePhotoModalClose = e => {\n if (e) {\n trackEventNameClick({\n event_name: 'dw_giving_fundraiser_no_photo_dismiss_pressed',\n dismiss_method: 'close',\n })\n }\n this.setState({ isPhotoModal: false })\n }\n\n handleAddPhoto = () => {\n trackEventNameClick({\n event_name: 'dw_giving_fundraiser_no_photo_add_pressed',\n })\n this.handlePhotoModalClose()\n this.props.router.push({\n pathname: `${GLOBAL_CONSTS.REQUEST_URI}/c/create-crowdfunding/cover`,\n })\n }\n\n handleSelectCover = () => {\n return this.props.handleCoverSelect(\n `${GLOBAL_CONSTS.REQUEST_URI}/c/create-crowdfunding/cover`\n )\n }\n\n handleTcClick = () => {\n const { userConsentDisclaimer, userLegalAgreementVersion } = this.props\n const event_name =\n this.props.route && this.props.route.path === this.path\n ? 'dw_giving_fundraiser_select_photo_terms_pressed'\n : 'dw_giving_fundraiser_add_photo_terms_pressed'\n trackClick({\n clickName: event_name,\n data: {\n event_name,\n },\n })\n\n // User consent event\n if (userConsentDisclaimer) {\n trackClick({\n clickName: 'active_consent_disclaimer_terms_pressed',\n data: {\n event_name: 'active_consent_disclaimer_terms_pressed',\n ...getMajorMinorAgreementVersion(userLegalAgreementVersion),\n },\n })\n }\n }\n\n render() {\n const {\n anyInactiveFieldsTouchedWithError,\n termsAndConditionLink,\n route,\n fields,\n defaultCategoryCover,\n userConsentDisclaimer,\n userConsentBtnText,\n userLegalAgreementVersion,\n isMobile,\n } = this.props\n const disclaimer =\n userConsentDisclaimer ||\n i18n('disclaimer', { tc_link: termsAndConditionLink })\n\n if (userConsentDisclaimer) {\n trackImpression({\n pageName: 'crowdfunding-cover',\n event_name: 'active_consent_disclaimer_shown',\n ...getMajorMinorAgreementVersion(userLegalAgreementVersion),\n })\n }\n return (\n
    \n {route && route.path === this.path ? (\n \n ) : (\n <>\n {fields.backgroundImage?.value ? (\n \n ) : (\n \n )}\n \n )}\n {route?.path === this.path && (\n <>\n {this.props.campaignType === POOL_TYPE.CHARITY && (\n \n }\n type=\"cover\"\n />\n )}\n \n
    \n \n {userConsentBtnText || (\n \n )}\n \n \n \n \n
    \n {isMobile ? (\n \n \n \n }\n >\n \n \n ) : (\n \n }\n divider\n styleName=\"modal\"\n >\n \n \n )}\n \n
    \n \n
    \n \n \n \n \n }\n >\n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n \n \n )}\n \n )\n }\n}\n\nexport default cssModules(CrowdFundingCover, styles)\n","import CrowdFundingCover, { I18N_CONTEXT } from './crowdfunding_cover'\nimport { getI18n } from 'intl'\nimport { reduxForm } from 'redux-form'\nimport { DESCRIPTION_LENGTH } from 'shared/lengths'\nimport { DISCOVERABLE, GN_DISCLAIMERS, POOL_TYPE } from 'shared/shared_consts'\nimport formUtils from 'lib/form_utils'\nimport { length } from 'lib/validators'\nimport { push } from 'react-router-redux'\n\nimport { NEW_CAMPAIGN_ID, setData } from 'redux/modules/campaign'\nimport {\n getActiveUserConsent,\n getCampaignSelector,\n} from 'redux/selectors/campaign'\nimport { getCategoryDefaultCover, getMainCategory } from 'client/lib/category'\nimport { get } from 'lodash'\n\nconst i18n = getI18n(I18N_CONTEXT)\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n // only set the prop if no category is defined.\n const mainCategory = getMainCategory(campaign.category)\n const defaultCategoryCover = getCategoryDefaultCover(state, mainCategory)\n\n const activeUserConsent = getActiveUserConsent(state)\n\n const isPrivateCampaign = campaign.type === POOL_TYPE.PRIVATE\n return {\n isAndroid:\n state.device_info.isMobile && state.device_info.deviceOS === 'Android',\n defaultCategoryCover,\n initialValues: {\n backgroundImage: campaign.background_image,\n backgroundPan: campaign.background_pan,\n backgroundImageFilename: campaign.background_image_filename,\n },\n charity: campaign.charity,\n termsAndConditionLink:\n GN_DISCLAIMERS[state.country.country_code].termsAndConditions,\n shouldDisplayTipBox: Boolean(campaign.discoverable === DISCOVERABLE),\n cdnHost: state.geo.cdnHost,\n isPrivateCampaign,\n userConsentDisclaimer: activeUserConsent.disclaimer_message,\n userConsentBtnText: activeUserConsent.cta_text,\n userLegalAgreementVersion: activeUserConsent.userLegalAgreementVersion,\n categoryImage: get(campaign, 'category_image', ''),\n campaignType: campaign.type,\n isMobile: state.device_info.isMobile,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {\n setData: ({\n background_image,\n background_image_filename,\n background_pan,\n user_legal_agreement_version,\n }) => {\n dispatch(\n setData(NEW_CAMPAIGN_ID, {\n background_image,\n background_image_filename,\n background_pan,\n user_legal_agreement_version,\n })\n )\n },\n submit: pathname => {\n return dispatch(push({ pathname }))\n },\n handleCoverSelect: pathname => {\n return dispatch(push({ pathname }))\n },\n }\n}\n\nexport default reduxForm(\n {\n form: 'create_description',\n destroyOnUnmount: false,\n fields: [\n 'description',\n 'backgroundImage',\n 'backgroundImageFilename',\n 'backgroundPan',\n ],\n touchOnBlur: false,\n touchOnChange: true,\n validate: length(\n 'description',\n DESCRIPTION_LENGTH,\n i18n('description_too_long', {\n maxLength: DESCRIPTION_LENGTH,\n })\n ),\n },\n mapStateToProps,\n mapDispatchToProps\n)(formUtils(CrowdFundingCover))\n","import CrowdfundingShare from '../crowdfunding_share'\nimport { connect } from 'react-redux'\nimport { createRemotely } from 'redux/modules/campaign'\nimport { glimpseRoute } from 'lib/route_utils'\nimport { encodeCampaignId } from 'shared/campaign_url'\nimport {\n campaignUrlForDisplay,\n campaignUrlWithMeDomain,\n} from 'lib/campaign_url'\nimport {\n getCampaignSelector,\n getLastCreatedCampaignSelector,\n} from 'redux/selectors/campaign'\nimport preventNavigation from 'components/common/prevent_navigation'\n\nconst mapStateToProps = (state, props) => {\n const lastCreatedCampaign = getLastCreatedCampaignSelector(state)\n const campaign = lastCreatedCampaign || getCampaignSelector(state, props)\n const campaignId = campaign.id\n const encodedCampaignId = encodeCampaignId(campaignId)\n\n return {\n campaignId,\n encodedCampaignId,\n operatingRemotely: campaign.operatingRemotely,\n shareUrl: glimpseRoute('create-crowdfunding', 'share/' + encodedCampaignId),\n poolUrl: campaignUrlWithMeDomain(campaign.id, campaign.campaign_type),\n displayUrl: campaignUrlForDisplay(campaign.id, campaign.campaign_type),\n creationError: campaign.err,\n }\n}\n\nconst mapDispatchToProps = (dispatch, { campaignId }) => {\n return {\n onPublish() {\n dispatch(createRemotely(campaignId))\n },\n }\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(preventNavigation(CrowdfundingShare, props => props.operatingRemotely))\n","import edit from './edit'\nimport send from './send'\nimport guest from './guest'\nimport CreatePage from 'components/pages/create'\nimport { sendEnsightenEvent } from 'lib/ensighten_analytics'\nimport { createCampaignEligibilityCheck } from 'lib/create_campaign_eligibility'\nimport CrowdfundingBasicsSmallGroup from 'components/pages/crowdfunding/crowdfunding_basics_small_group'\nimport CrowdfundingNonprofit from 'components/pages/crowdfunding/crowdfunding_nonprofit'\nimport CrowdfundingStory from 'components/pages/crowdfunding/crowdfunding_story'\nimport CrowdfundingCover from 'components/pages/crowdfunding/crowdfunding_cover'\nimport CrowdfundingShare from 'components/pages/crowdfunding/crowdfunding_share'\nimport PoolPublish from 'components/pages/crowdfunding/crowdfunding_publish'\nimport { POOLS_CAMPAIGN_TYPES, POOL_TYPE } from 'shared/shared_consts'\nimport CountryBlockedError from 'components/common/country_blocked'\n\nimport { updateQueryParams } from 'redux/modules/url'\n\nimport {\n NEW_CAMPAIGN_ID,\n create,\n resetRemoteOperation,\n} from 'redux/modules/campaign'\n\nimport {\n getStepName,\n assertInitialStep,\n assignActionToRouterParams,\n glimpseRoute,\n} from 'lib/route_utils'\n\nconst INITIAL_STEP = 'basics'\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\n\nexport default (store, history) => ({\n path: 'create-crowdfunding',\n campaignType: CROWD_FUNDING,\n getComponent(nextState, callback) {\n const state = store.getState()\n if (!state.current_user.isFundRaiserEnabled) {\n return callback(null, CountryBlockedError)\n } else\n return createCampaignEligibilityCheck(\n store.getState(),\n nextState,\n CROWD_FUNDING,\n CreatePage,\n callback\n )\n },\n onEnter(nextState, replace) {\n nextState.params.nextStep = getStepName(\n 'create-crowdfunding',\n nextState.routes\n )\n\n let selectedPoolType\n store.dispatch((d, getState) => {\n // This updates the selected type if previously selected\n selectedPoolType =\n getState().campaign?.__new_campaign__?.type ||\n (nextState.location?.query?.npid && POOL_TYPE.CHARITY) //When user is creating from hub page\n\n //When user refresh the charity select page\n if (!selectedPoolType && nextState.params.nextStep === 'nonprofit') {\n selectedPoolType = POOL_TYPE.CHARITY\n } else if (nextState.location?.query?.type === POOL_TYPE.PRIVATE) {\n selectedPoolType = POOL_TYPE.PRIVATE\n } else if (nextState.location?.query?.type === POOL_TYPE.PERSONAL) {\n selectedPoolType = POOL_TYPE.PERSONAL\n }\n\n d(create(CROWD_FUNDING, selectedPoolType)) // creates the new campaign object.\n d(updateQueryParams(nextState.location)) // updates the state with query params\n })\n\n if (nextState.params.nextStep !== 'share/:campaignId') {\n nextState.params.campaignId = NEW_CAMPAIGN_ID\n if (\n !(\n store.getState().flags &&\n store.getState().flags.is_gnc_enabled &&\n nextState.params.nextStep === 'nonprofit'\n )\n ) {\n assertInitialStep(\n 'create-crowdfunding',\n INITIAL_STEP,\n nextState,\n replace\n )\n }\n }\n\n /**\n * While refreshing the any step of create flow, poolType is undefined\n * Then we need to redirect to the select pool type page\n */\n\n if (!selectedPoolType) {\n replace({ pathname: glimpseRoute('pools', `c/create/types`) })\n }\n },\n onChange(prevState, nextState) {\n assignActionToRouterParams(nextState)\n nextState.params.campaignId = NEW_CAMPAIGN_ID\n nextState.params.prevStep = getStepName(\n 'create-crowdfunding',\n prevState.routes\n )\n nextState.params.nextStep = getStepName(\n 'create-crowdfunding',\n nextState.routes\n )\n },\n childRoutes: [\n {\n path: INITIAL_STEP,\n component: CrowdfundingBasicsSmallGroup,\n onEnter(nextState) {\n if (\n nextState.location.action !== 'POP' ||\n !nextState.params.prevSteps\n ) {\n sendEnsightenEvent('MoneyPoolStart')\n }\n },\n },\n { path: 'story', component: CrowdfundingStory },\n { path: 'nonprofit', component: CrowdfundingNonprofit },\n { path: 'select-cover', component: CrowdfundingCover },\n { path: 'cover', component: CrowdfundingCover },\n {\n path: 'publish',\n component: PoolPublish,\n onEnter(nextState) {\n if (nextState.location.action !== 'POP') {\n store.dispatch(resetRemoteOperation(NEW_CAMPAIGN_ID))\n }\n },\n },\n { path: 'share/:campaignId', component: CrowdfundingShare },\n edit(store, history),\n send(store, history),\n guest(store, history),\n ],\n})\n","import React from 'react'\nimport CountryBlockedError from 'components/common/country_blocked'\nimport ManageAllPage from 'components/pages/hub/manage_all_page'\nimport { get } from 'lodash'\nimport { getCampaignCount } from 'redux/selectors/campaign'\nimport ZeroFundraiser from 'components/pages/hub/zero_fundraiser'\nimport { create } from 'redux/modules/campaign'\nimport { POOLS_CAMPAIGN_TYPES } from 'shared/shared_consts'\nimport { useIntl } from 'intl'\n\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\n\nexport default function(store, history) {\n const { formatMessage } = useIntl()\n const blockedTitle = formatMessage(\n 'components.pages.create.create.kill_switched_title'\n )\n const errorEligibility = formatMessage(\n 'components.pages.create.create.error_eligible_sub_title'\n )\n const deprecatedMessage = {\n fundraiserDeprecatedBlockedTitle: blockedTitle,\n fundraiserDeprecatedEligibility: errorEligibility,\n }\n return {\n getComponent(nextState, callback) {\n const state = store.getState()\n if (state.current_user.moneypools_blocked) {\n return callback(null, CountryBlockedError)\n } else {\n return callback(null, props => {\n const campaignCount = getCampaignCount(state)\n\n return campaignCount > 0 ? (\n \n ) : (\n \n )\n })\n }\n },\n onEnter() {\n store.dispatch(d => {\n d(create(CROWD_FUNDING)) // creates the new campaign object.\n })\n },\n }\n}\n","import React from 'react'\nimport edit from './edit'\nimport postUpdate from './post_update'\nimport send from './send'\nimport guest from './guest'\nimport CampaignNotFound from 'components/pages/campaign_not_found'\nimport CountryBlocked from 'components/common/country_blocked'\nimport CrowdFundingDetailsPage from 'components/pages/crowdfunding/crowdfunding_details'\nimport ManageAllPage from 'components/pages/hub/manage_all_page'\nimport ViewUpdatesActivity from 'components/glimpses/edit_glimpse/viewupdates'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport createRoute from './create'\nimport createCrowdfundingRoute from './create_crowdfunding'\nimport hubRoute from './hub'\nimport fetchClient from 'lib/fetch_client'\nimport routes from 'server_routes'\nimport {\n buildTransaction,\n createDNWTransactionSuccess,\n createDNWTransactionFailure,\n setIsLoading,\n} from 'redux/modules/dnw_transaction'\nimport EditGlimpse from 'components/glimpses/edit_glimpse'\nimport OrganizerUpdateDetail from 'components/glimpses/edit_glimpse/organizer_update_detail'\n\nexport default (store, history, path) => ({\n indexRoute: hubRoute(store, history),\n path,\n childRoutes: [\n createRoute(store),\n createCrowdfundingRoute(store),\n {\n path: ':campaignId',\n onEnter(nextState) {\n const queryToken = nextState.location.query.token\n const isCancel = nextState.location.query.type === 'cancel'\n const prevTxnCount = nextState.location.query.txn_count\n ? Number(nextState.location.query.txn_count)\n : 0\n const campaign = getCampaignSelector(store.getState(), {\n campaignId: nextState.params.campaignId,\n })\n const txnCount = campaign ? campaign.txn_count : undefined\n const shouldRequestTnxDetails =\n prevTxnCount === txnCount && Boolean(queryToken) && !isCancel\n\n if (shouldRequestTnxDetails) {\n store.dispatch(setIsLoading(true))\n return fetchClient()\n .request(\n routes.campaign.api.get_payments_token_transaction({\n id: queryToken,\n }),\n {\n method: 'GET',\n }\n )\n .then(({ anonymous, sender, transaction_details }) => {\n const campaignId = nextState.params.campaignId\n store.dispatch(\n createDNWTransactionSuccess(\n buildTransaction({\n anonymous: anonymous,\n contributor_name: sender.full_name,\n campaign_id: campaignId,\n date: new Date().toISOString(),\n transaction_details: {\n ...transaction_details,\n },\n }),\n sender,\n prevTxnCount\n )\n )\n })\n .catch(error => {\n store.dispatch(createDNWTransactionFailure(error))\n return error\n })\n .finally(() => {\n history.replace(nextState.location.pathname)\n })\n } else if (nextState.location.query.txn_count) {\n // when a user cancels DNW flow the return url will have query param txn_count\n // we remove it here\n history.replace(nextState.location.pathname)\n }\n },\n getComponent(nextState, callback) {\n if (!store.getState().user_config) {\n return callback(null, CountryBlocked)\n }\n const campaign = getCampaignSelector(store.getState(), {\n campaignId: nextState.params.campaignId,\n })\n if (!campaign) {\n return callback(null, CampaignNotFound)\n }\n\n if (nextState.location.pathname.indexOf('postupdate') > 0) {\n return callback(null, ManageAllPage)\n }\n if (nextState.location.pathname.indexOf('edit') === -1) {\n return callback(null, CrowdFundingDetailsPage)\n }\n return callback(null, ManageAllPage)\n },\n childRoutes: [\n edit(store, history),\n postUpdate(store, history),\n send(store, history),\n guest(store, history),\n {\n path: 'viewupdates',\n component: { glimpse: EditGlimpse },\n indexRoute: {\n getComponent(nextState, callback) {\n return callback(null, props => (\n \n ))\n },\n onEnter(nextState, replace) {\n if (!store.getState()?.flags?.isOrganizerUpdatesEnabled) {\n replace('/pools')\n return\n }\n nextState.params.hideLogo = true\n nextState.params.hideButton = true\n nextState.params.isOwnerView = true\n },\n },\n childRoutes: [\n {\n path: ':fouId/updatedetails',\n getComponent(nextState, callback) {\n return callback(null, props => (\n \n ))\n },\n onEnter(nextState, replace) {\n nextState.params.enableEditButton = false\n nextState.params.hideLogo = true\n nextState.params.hideButton = true\n },\n },\n ],\n },\n ],\n },\n ],\n})\n","import { appendPath } from 'lib/route_utils'\nimport campaignRoute from './campaign'\nimport hubRoute from './hub'\n\nexport default (store, history) => [\n {\n path: GLOBAL_CONSTS.REQUEST_URI,\n onEnter(nextState, replace) {\n if (!nextState.location.state || !nextState.location.state.initial) {\n replace({\n ...nextState.location,\n state: { initial: true },\n })\n }\n },\n indexRoute: hubRoute(store, history),\n childRoutes: [campaignRoute(store, history, 'c')],\n },\n {\n path: '*',\n onEnter() {\n location.href = appendPath(GLOBAL_CONSTS.REQUEST_URI, 'not_found')\n },\n },\n]\n","import React from 'react'\nimport { Router, browserHistory } from 'react-router'\nimport { syncHistoryWithStore } from 'react-router-redux'\n\nimport routes from './routes'\n\nfunction createElement(Component, props) {\n return React.createElement(Component, {\n campaignId: props.params.campaignId, // eslint-disable-line react/prop-types\n ...props,\n })\n}\n\nexport default store => {\n const history = syncHistoryWithStore(browserHistory, store)\n return () => (\n \n )\n}\n","import React from 'react'\nimport { throttle } from 'lodash'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './session_timeout.less'\nimport { Sheet, BodyText, Button, HeadingText } from '@paypalcorp/pp-react'\nimport { EXTEND_SESSION } from 'shared/shared_consts'\nimport { Message } from '@paypalcorp/worldready-react'\n\nconst {\n URL,\n SHOW_TIMEOUT_SCREEN_AT,\n SHOW_EU_TIMEOUT_SCREEN_AT,\n RESET_TIMER_TIMEOUT,\n SESSION_TIMEOUT,\n} = EXTEND_SESSION\n\nclass SessionTimeout extends React.Component {\n static propTypes = {\n isLoggedIn: PropTypes.bool,\n loginUrl: PropTypes.string,\n isEuCountry: PropTypes.bool,\n }\n\n constructor(props) {\n super(props)\n this.state = { isSheetOpen: false }\n this.sheetTimer = null\n this.sessionTimer = null\n this.displayTimeoutPageAt = this.isEuCountry\n ? SHOW_EU_TIMEOUT_SCREEN_AT\n : SHOW_TIMEOUT_SCREEN_AT\n }\n\n resetTimer = throttle(() => {\n this.setState({ isSheetOpen: false })\n clearTimeout(this.sheetTimer)\n clearTimeout(this.sessionTimer)\n return fetch(URL).then(() => this.startSheetTimer())\n }, RESET_TIMER_TIMEOUT)\n\n startSheetTimer() {\n this.sheetTimer = setTimeout(() => {\n this.setState({ isSheetOpen: true })\n }, this.displayTimeoutPageAt)\n }\n\n startSessionTimer() {\n this.sessionTimer = setTimeout(() => {\n location.href = this.props.loginUrl\n }, SESSION_TIMEOUT)\n }\n\n componentDidMount() {\n if (this.props.isLoggedIn) {\n this.startSheetTimer()\n window.addEventListener('click', this.resetTimer)\n }\n }\n\n render() {\n if (this.state.isSheetOpen) {\n this.startSessionTimer()\n }\n return (\n this.resetTimer}\n >\n \n \n \n \n \n \n \n \n \n )\n }\n}\n\nexport default cssModules(SessionTimeout, styles)\n","import SessionTimeout from './session_timeout'\nimport { connect } from 'react-redux'\nimport { isLoggedInSelector, loginUrlSelector } from 'redux/selectors/login'\n\nconst mapStateToProps = (state, ownProps) => {\n return {\n isLoggedIn: isLoggedInSelector(state),\n loginUrl: loginUrlSelector({ returnUri: window.location.href })(state),\n isEuCountry: state.country.isSCA,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {}\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(SessionTimeout)\n","import fetchClient from 'lib/fetch_client'\n\nconst MAX_ERRORS = 2\nlet errors = 0\n\nfunction log(url, message, file, line, column, error) {\n fetchClient().request(url, {\n method: 'POST',\n body: {\n message,\n href: window.location.href,\n file,\n line,\n column,\n stack: error ? error.stack : '',\n userAgent: navigator.userAgent,\n },\n })\n}\n\nexport function startErrorTracking(url) {\n window.onerror = function(message, file, line, column, error) {\n if (errors > MAX_ERRORS) {\n return\n }\n\n errors++\n\n log(url, message, file, line, column, error)\n }\n}\n","/* eslint-disable no-param-reassign */\nimport { datadogRum } from '@datadog/browser-rum'\n\n/* istanbul ignore next */\nconst packageJson = require('../../package.json')\n\n/* istanbul ignore next */\nconst SERVICE_NAME = 'poolsnodeweb'\n/* istanbul ignore next */\nconst APPLICATION_ID = {\n PRODUCTION: '82555848-9961-44ed-b3a7-5cd1c01b9dc8',\n SANDBOX: 'b248cbac-90ea-4c54-b83b-bcdb40b97ab7',\n QA: 'b3ea49e5-a6ed-4f5a-9e2e-6bad38a47fd1',\n}\n/* istanbul ignore next */\nconst CLIENT_ID = {\n PRODUCTION: 'pubf8ecdca232be55007f7a4586bb2ffc90',\n SANDBOX: 'pubb4a167414d5bcf875b639bfcfb2f75eb',\n QA: 'pubc439fdaa13d0f8e965e51afe2a49ad0c',\n}\n\n/* istanbul ignore next */\nconst DATADOG_RUM_SITE = 'us5.datadoghq.com'\n\n/* istanbul ignore next */\nfunction getClientEnvironment() {\n const hostname = typeof window !== 'undefined' ? window.location.host : ''\n if (hostname.includes('localhost')) {\n return 'DEVELOPMENT'\n }\n if (hostname.includes('qa.paypal.com')) {\n return 'STAGE'\n }\n if (hostname.includes('sandbox.paypal.com')) {\n return 'SANDBOX'\n }\n if (hostname.includes('paypal.com')) {\n return 'PRODUCTION'\n }\n return undefined\n}\n\n/* istanbul ignore next */\nfunction getDDTraceLink(correlationId) {\n const environment = getClientEnvironment()\n switch (environment) {\n case 'PRODUCTION':\n return `https://go/ddprod/trace?${correlationId}`\n case 'SANDBOX':\n return `https://go/ddsb/trace?${correlationId}`\n default:\n return `https://go/ddqa/trace?${correlationId}`\n }\n}\n\n/* istanbul ignore next */\nfunction getCalLogLink(correlationId) {\n const environment = getClientEnvironment()\n switch (environment) {\n case 'PRODUCTION':\n return `https://go/ddprod/tocal?${correlationId}`\n case 'SANDBOX':\n return `https://go/ddsb/tocal?${correlationId}`\n default:\n return `https://go/ddqa/tocal?${correlationId}`\n }\n}\n\n/* istanbul ignore next */\nfunction getApplicationId() {\n const environment = getClientEnvironment()\n switch (environment) {\n case 'PRODUCTION':\n return APPLICATION_ID.PRODUCTION\n case 'SANDBOX':\n return APPLICATION_ID.SANDBOX\n default:\n return APPLICATION_ID.QA\n }\n}\n\n/* istanbul ignore next */\nfunction getClientToken() {\n const environment = getClientEnvironment()\n switch (environment) {\n case 'PRODUCTION':\n return CLIENT_ID.PRODUCTION\n case 'SANDBOX':\n return CLIENT_ID.SANDBOX\n default:\n return CLIENT_ID.QA\n }\n}\n\n/* istanbul ignore next */\nfunction addCorrelationIdToContext(event, correlationId) {\n if (correlationId && typeof correlationId === 'string') {\n event.context.correlationId = correlationId\n\n const ddTraceLink = getDDTraceLink(correlationId)\n const calLogLink = getCalLogLink(correlationId)\n event.context['dd-trace-url'] = ddTraceLink\n event.context['external-cal-url'] = calLogLink\n }\n}\n\n/* istanbul ignore next */\nfunction rumWasNotInitialized() {\n try {\n return (\n typeof window.DD_RUM === 'undefined' ||\n typeof window.DD_RUM.getInitConfiguration === 'undefined'\n )\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error)\n return true\n }\n}\n\n/* istanbul ignore next */\nif (typeof window !== 'undefined' && rumWasNotInitialized()) {\n // init Datadog RUM\n /* istanbul ignore next */\n datadogRum.init({\n // properties for idntifying and authenticating the application with RUM\n applicationId: getApplicationId(),\n clientToken: getClientToken(),\n site: DATADOG_RUM_SITE,\n service: SERVICE_NAME,\n version: packageJson.version,\n env: process.env.NODE_ENV,\n // sampling must be set at 100 for session and 0 for recording. retention will be controlled on the backend in Datadog\n sessionSampleRate: 100,\n sessionReplaySampleRate: 0,\n // auto-instrumentations\n trackUserInteractions: true,\n trackResources: true,\n trackLongTasks: true,\n // privacy defaults to prevent leaking PII\n defaultPrivacyLevel: 'mask',\n enablePrivacyForActionName: true,\n // exclude log, tealeaf, and fpti endpoints which are not tied to user interactions from activity tracking\n excludedActivityUrls: [/log/i, /fpti/i, /tealeaf/i, /tracking\\/ts/i],\n // exclude log, tealeaf, and fpti endpoints which are not tied to user interactions from universal tracing\n allowedTracingUrls: [\n url =>\n !(\n url.toLowerCase().includes('log') ||\n url.toLowerCase().includes('fpti') ||\n url.toLowerCase().includes('tealeaftarget') ||\n url.toLowerCase().includes('tracking/ts')\n ) && url.includes('paypal.com'),\n ],\n beforeSend(event, context) {\n // modify RUM events to include the correlationId and links to logs and traces\n // for the request because we don't yet have universal tracing\n if (event.type === 'resource') {\n // handle fetch\n if (\n 'response' in context &&\n context?.response &&\n context?.response?.headers\n ) {\n const correlationId = context.response.headers.get('Paypal-Debug-Id')\n addCorrelationIdToContext(event, correlationId)\n }\n // handle XHR\n if (\n 'xhr' in context &&\n context.xhr &&\n 'getResponseHeader' in context.xhr &&\n typeof context.xhr.getResponseHeader === 'function'\n ) {\n const correlationId = context.xhr.getResponseHeader('Paypal-Debug-Id')\n addCorrelationIdToContext(event, correlationId)\n }\n }\n return true\n },\n })\n}\n","import 'core-js/stable'\nimport 'regenerator-runtime/runtime'\nimport 'window-location-origin'\nimport 'whatwg-fetch'\nimport './stylesheets/app.less'\nimport './init_localization_resources'\nimport React from 'react'\nimport { initialize as fptiInitialize } from 'lib/fpti_analytics'\nimport { render } from 'react-dom'\nimport { Provider } from 'react-redux'\nimport { configureStore } from './redux/store'\nimport { getJSONFromScript, getDataAttr } from './lib/server_params'\nimport poolsRouter from './router'\nimport SessionTimeout from 'components/session_timeout'\nimport { startErrorTracking } from 'lib/errors'\nimport routes from 'server_routes'\nimport { PAYPAL_THEME } from '@paypalcorp/pp-react'\nimport { ContextProvider } from '@paypalcorp/worldready-react'\nimport { WorldReadyProvider } from '@paypalcorp/pp-react-worldready'\nimport { ThemeProvider } from '@emotion/react'\nimport './lib/datadog'\n\nfunction renderMainView() {\n configureStore(getJSONFromScript('store'), store => {\n const PoolsRouter = poolsRouter(store)\n const locale =\n store.getState() &&\n store.getState().locality &&\n store.getState().locality.worldReadyLocale\n render(\n \n \n \n \n
    \n \n \n
    \n
    \n
    \n
    \n
    ,\n document.getElementById('main')\n )\n })\n}\n\nfunction main(/* int argc, char *argv[] */) {\n startErrorTracking(routes.error())\n\n fptiInitialize()\n\n // since errors are rendered in the server-side, don't activate react rendering when there is one.\n if (!getDataAttr('error')) {\n renderMainView()\n }\n}\n\nmain()\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonContainer\":\"share_button-modules__buttonContainer___3Lp_r\",\"listContainer\":\"share_button-modules__listContainer___2k5QD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sheet__pictogram\":\"introduction__sheet__pictogram___3yqIO\",\"sheet__body\":\"introduction__sheet__body___1-PAY\",\"sheet__disclaimer\":\"introduction__sheet__disclaimer___AP-Vt\",\"body__title\":\"introduction__body__title___1NYMs\",\"body__subtitle\":\"introduction__body__subtitle___3UtzJ\",\"sheet__cta\":\"introduction__sheet__cta___-nuXR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"crowdfunding_select_cover__title___3T4Ea\",\"sub-title\":\"crowdfunding_select_cover__sub-title___2c5b_\",\"row-margin\":\"crowdfunding_select_cover__row-margin___1Yc_O\",\"upload-card\":\"crowdfunding_select_cover__upload-card___dkS3d\",\"image-checkbox-container\":\"crowdfunding_select_cover__image-checkbox-container___Am3ME\",\"image-delete-container\":\"crowdfunding_select_cover__image-delete-container___2CRqF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"errorMsg\":\"share_update_activity__errorMsg___NWsGD\",\"sub-text\":\"share_update_activity__sub-text___29zvP _type__vx_text-6_lighter___2qDBi\",\"copy-box-wrapper\":\"share_update_activity__copy-box-wrapper___3SNoM\",\"copy-wrapper\":\"share_update_activity__copy-wrapper___1giRy\",\"copied-tooltip\":\"share_update_activity__copied-tooltip___3Pwgm\",\"tooltip-enter\":\"share_update_activity__tooltip-enter___rIw7Z\",\"tooltip-enter-active\":\"share_update_activity__tooltip-enter-active___3fgMR\",\"tooltip-leave\":\"share_update_activity__tooltip-leave___WKa2p\",\"tooltip-leave-active\":\"share_update_activity__tooltip-leave-active___Hzwsn\",\"share-icon-color\":\"share_update_activity__share-icon-color___3PaZH\",\"share-button-container\":\"share_update_activity__share-button-container___cD2rV\",\"share-icon\":\"share_update_activity__share-icon___9HIUJ\",\"share-label\":\"share_update_activity__share-label___2YiOn\",\"share-label-cursor\":\"share_update_activity__share-label-cursor___CElNV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"preview-animation-container\":\"create__preview-animation-container___ZNS-f\",\"create-modal-enter\":\"create__create-modal-enter___3Qxa1\",\"create-modal-enter-active\":\"create__create-modal-enter-active___30myP\",\"create-modal-leave\":\"create__create-modal-leave___3uckH\",\"create-modal-leave-active\":\"create__create-modal-leave-active___1g8xV\",\"preview-enter\":\"create__preview-enter___37cKz\",\"preview-enter-active\":\"create__preview-enter-active___2TOHR\",\"preview-leave\":\"create__preview-leave___1NFFO\",\"preview-leave-active\":\"create__preview-leave-active___1rtmw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"crowdfunding_basics__title___38lhg\",\"category\":\"crowdfunding_basics__category___3M8Eh\",\"category-dropdown\":\"crowdfunding_basics__category-dropdown___1PNE2\",\"textbox-wrapper\":\"crowdfunding_basics__textbox-wrapper___3eQzU\",\"zipcode\":\"crowdfunding_basics__zipcode___21ZeA\",\"tip-wrapper\":\"crowdfunding_basics__tip-wrapper___LC-EU\",\"charity-header\":\"crowdfunding_basics__charity-header___3Uy3D\",\"gn-disclaimer\":\"crowdfunding_basics__gn-disclaimer___1cGYF\",\"form__button\":\"crowdfunding_basics__form__button___ix3Jk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"crowdfunding_cover__title___1jJSv\",\"sub-title\":\"crowdfunding_cover__sub-title___39Wp6\",\"uploader\":\"crowdfunding_cover__uploader___2RunY\",\"disclaimer\":\"crowdfunding_cover__disclaimer___VWTBh\",\"modal\":\"crowdfunding_cover__modal___3bPm7\",\"modal_title\":\"crowdfunding_cover__modal_title___3jiMf\",\"no_photo_row\":\"crowdfunding_cover__no_photo_row___2QUX1\",\"no_photo-button\":\"crowdfunding_cover__no_photo-button___1U1Dn\",\"button_offset\":\"crowdfunding_cover__button_offset___39ORY\",\"container_class\":\"crowdfunding_cover__container_class___3StXa\",\"icon-alignment\":\"crowdfunding_cover__icon-alignment___2gAtd\",\"text-alignment\":\"crowdfunding_cover__text-alignment___LLqzN\",\"buttons\":\"crowdfunding_cover__buttons___30bH1\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ended-title\":\"edit_main_cf__ended-title___cu7VR _type__vx_text-5___2iJ3U\",\"title\":\"edit_main_cf__title___gprp2 _type__vx_text-2___Qizsf\",\"goal-cover-title\":\"edit_main_cf__goal-cover-title___3gGk_\",\"textbox-wrapper\":\"edit_main_cf__textbox-wrapper___3wDrm\",\"category\":\"edit_main_cf__category___2v9sv\",\"fs-option\":\"edit_main_cf__fs-option___BXg0h _type__vx_text-5_lighter___2ilC-\",\"description-container\":\"edit_main_cf__description-container___3DgaM\",\"char-count\":\"edit_main_cf__char-count___3Js5b _type__vx_text-legal___ZEtis\",\"uploader\":\"edit_main_cf__uploader___UyFWe\",\"delete-link\":\"edit_main_cf__delete-link___h5Z8d _type__vx_text-5___2iJ3U\",\"delete-icon\":\"edit_main_cf__delete-icon___13Mag _type__vx_text-5___2iJ3U\",\"save-button\":\"edit_main_cf__save-button___3l7Lu\",\"modal\":\"edit_main_cf__modal___H847p\",\"modal_title\":\"edit_main_cf__modal_title___na1xS\",\"btn\":\"edit_main_cf__btn___2fXEm\",\"charity-header\":\"edit_main_cf__charity-header___2vxBH\",\"charity-subtitle\":\"edit_main_cf__charity-subtitle___N_Vpq\",\"detail-title\":\"edit_main_cf__detail-title___aodIf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reveal-enter\":\"reveal__reveal-enter___1-LPk\",\"reveal-enter-active\":\"reveal__reveal-enter-active___mRhvD\",\"reveal-leave\":\"reveal__reveal-leave___2sm7R\",\"reveal-leave-active\":\"reveal__reveal-leave-active___39k1f\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"crossfade-container\":\"cross_fade__crossfade-container___3glsY\",\"crossfade-enter\":\"cross_fade__crossfade-enter___1rdn3\",\"crossfade-enter-active\":\"cross_fade__crossfade-enter-active___3jLQy\",\"crossfade-leave\":\"cross_fade__crossfade-leave___2CEKL\",\"crossfade-leave-active\":\"cross_fade__crossfade-leave-active___CUZkO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"campaign_container_row\":\"crowdfunding_detail_view__campaign_container_row___IU1n5\",\"donate-button\":\"crowdfunding_detail_view__donate-button___1T_HM\",\"manage-button\":\"crowdfunding_detail_view__manage-button___2Dgyb\",\"text-center\":\"crowdfunding_detail_view__text-center___2e-6M\",\"social-share-container\":\"crowdfunding_detail_view__social-share-container___1Sadw\",\"btn\":\"crowdfunding_detail_view__btn___is7sz\",\"donateDisabledWrapper\":\"crowdfunding_detail_view__donateDisabledWrapper___3uQsM\",\"donateDisabledText\":\"crowdfunding_detail_view__donateDisabledText___2-KSp\",\"campaign_container\":\"crowdfunding_detail_view__campaign_container___3Xe5v\",\"share-caption\":\"crowdfunding_detail_view__share-caption___1CV1R\",\"campaignHeader\":\"crowdfunding_detail_view__campaignHeader___3TAUE\",\"campaignManage\":\"crowdfunding_detail_view__campaignManage___1a-NU\",\"campaignCover\":\"crowdfunding_detail_view__campaignCover___N0D19\",\"campaignProgress\":\"crowdfunding_detail_view__campaignProgress___NtqKA\",\"progress-bar\":\"crowdfunding_detail_view__progress-bar___3ZxmG\",\"campaignTabs\":\"crowdfunding_detail_view__campaignTabs___3EbJZ\",\"campaignSharing\":\"crowdfunding_detail_view__campaignSharing___3Rdod\",\"campaignReporting\":\"crowdfunding_detail_view__campaignReporting___2qTD0\",\"charity\":\"crowdfunding_detail_view__charity___2ZrPg\",\"emptyDiv\":\"crowdfunding_detail_view__emptyDiv___2COME\",\"gnc\":\"crowdfunding_detail_view__gnc___2T5KP\",\"emptyColumn\":\"crowdfunding_detail_view__emptyColumn___1iM3q\",\"donations\":\"crowdfunding_detail_view__donations___1kHUf\",\"pageLoading\":\"crowdfunding_detail_view__pageLoading___2ENMb\",\"share-button\":\"crowdfunding_detail_view__share-button___1NlQA\",\"findMoreLink\":\"crowdfunding_detail_view__findMoreLink___2Kbs6\",\"gncDisclaimerContainer\":\"crowdfunding_detail_view__gncDisclaimerContainer___1dd2P\",\"fundraiser_header\":\"crowdfunding_detail_view__fundraiser_header___iaAFV\",\"p-15\":\"crowdfunding_detail_view__p-15___1B6dL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mb24\":\"fundraiser_share_info__mb24___2nFJ6\",\"title\":\"fundraiser_share_info__title___3biuh\",\"subtitle\":\"fundraiser_share_info__subtitle___1d0fh\",\"footerInfo\":\"fundraiser_share_info__footerInfo___Z7S6P\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"spinner-title\":\"crowdfunding_share__spinner-title___PUQXo _type__vx_text-2___Qizsf\",\"mb-16\":\"crowdfunding_share__mb-16___ji_Uw\",\"mb-24\":\"crowdfunding_share__mb-24___1Lmok\",\"mb-2rem\":\"crowdfunding_share__mb-2rem___pfKmF\",\"create-indicator-container\":\"crowdfunding_share__create-indicator-container___2Qzmn\",\"go-to-pool-button\":\"crowdfunding_share__go-to-pool-button___uxo_f\",\"feedback\":\"crowdfunding_share__feedback___2jy7g\",\"feedback-button\":\"crowdfunding_share__feedback-button___3abkv\",\"create-indicator\":\"crowdfunding_share__create-indicator___3uxuB\",\"title\":\"crowdfunding_share__title___32UPS\",\"subtitle\":\"crowdfunding_share__subtitle___Iy7PZ\",\"textarea-wrapper\":\"crowdfunding_share__textarea-wrapper___2OilI\",\"success\":\"crowdfunding_share__success___2D48U\",\"img-container-header\":\"crowdfunding_share__img-container-header___1s0Ag\",\"publish-container\":\"crowdfunding_share__publish-container___WwJ3A\",\"mshare-container\":\"crowdfunding_share__mshare-container___2NcS4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"activity__title___1FdbK _type__vx_text-2___Qizsf\",\"subtitle\":\"activity__subtitle___TycZM _type__vx_text-legal___ZEtis\",\"balance\":\"activity__balance___33HIC _type__vx_text-5_lighter___2ilC-\",\"list-container\":\"activity__list-container___2Sxx6\",\"activity-title\":\"activity__activity-title___19Ca_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"row\":\"public_contribution_row__row___3OM2F\",\"avatar-wrapper\":\"public_contribution_row__avatar-wrapper___2nOio\",\"details-wrapper\":\"public_contribution_row__details-wrapper___25Efs\",\"details-note\":\"public_contribution_row__details-note___1nCRg\",\"details-wrapper-preview\":\"public_contribution_row__details-wrapper-preview___3gW_R public_contribution_row__details-wrapper___25Efs\",\"amount\":\"public_contribution_row__amount___17L-0 _type__vx_text-3_lighter___ZZcjB\",\"amount-preview\":\"public_contribution_row__amount-preview___M3_ej public_contribution_row__amount___17L-0 _type__vx_text-3_lighter___ZZcjB\",\"contributor-name\":\"public_contribution_row__contributor-name___3zP0i _type__vx_text-5_lighter___2ilC-\",\"days-ago\":\"public_contribution_row__days-ago___2q87c _type__vx_text-6_lighter___2qDBi\",\"note\":\"public_contribution_row__note___3hoh1 _type__vx_text-6_lighter___2qDBi\",\"pledge-contribution-row\":\"public_contribution_row__pledge-contribution-row___1bAWx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"headerCaptionText\":\"crowdfunding_campaign_header__headerCaptionText___16yv7\",\"iconCaptionContainer\":\"crowdfunding_campaign_header__iconCaptionContainer___3lxLS\",\"categoryBadge\":\"crowdfunding_campaign_header__categoryBadge___1urZ0\",\"iconCaptionWrapper\":\"crowdfunding_campaign_header__iconCaptionWrapper___9I8PM\",\"avatarImage\":\"crowdfunding_campaign_header__avatarImage___340a4\",\"heading\":\"crowdfunding_campaign_header__heading___3dthe\",\"charity-header\":\"crowdfunding_campaign_header__charity-header___26_2h\",\"top-alignment\":\"crowdfunding_campaign_header__top-alignment___1lTbT\",\"charity-name-link\":\"crowdfunding_campaign_header__charity-name-link___1_YAL\",\"campaign_padding\":\"crowdfunding_campaign_header__campaign_padding___1iMsW\",\"mwebheaderCaptionText\":\"crowdfunding_campaign_header__mwebheaderCaptionText___18RPA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pledge__success\":\"pledge__pledge__success___uVLM8\",\"form__title\":\"pledge__form__title___3u9i7\",\"form__currency-input\":\"pledge__form__currency-input___rovaI\",\"success__icon\":\"pledge__success__icon___2kKxq\",\"success__title\":\"pledge__success__title___1bNQ2\",\"cta\":\"pledge__cta___1nrJm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form__title\":\"crowdfunding_story__form__title___40AxL\",\"form__subtitle\":\"crowdfunding_story__form__subtitle___2a9Z5\",\"form__buttom_margin\":\"crowdfunding_story__form__buttom_margin___3EVUG\",\"form__button\":\"crowdfunding_story__form__button___3aAl2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"charityOrganiserDetailsContainer\":\"campaign_details__charityOrganiserDetailsContainer___1CrzH\",\"charityTextLight\":\"campaign_details__charityTextLight___3WZYz\",\"charityOrganiserDetails\":\"campaign_details__charityOrganiserDetails___3_kcl\",\"charityOrganiserDetailsCaption\":\"campaign_details__charityOrganiserDetailsCaption___2TrOO\",\"details-margin\":\"campaign_details__details-margin___3P0r9\",\"expandable-content\":\"campaign_details__expandable-content___3163V\",\"strong\":\"campaign_details__strong___17KiU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"suggestions\":\"type_ahead_search__suggestions___3HJ2-\",\"suggestionborder\":\"type_ahead_search__suggestionborder___1gCJL\",\"highlightedSuggestion\":\"type_ahead_search__highlightedSuggestion___M2AEm\",\"loadingSpinner\":\"type_ahead_search__loadingSpinner___1hSS8\",\"search-input-border-radius\":\"type_ahead_search__search-input-border-radius___2LJKG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"continer\":\"tip_box_personal__continer___2xsVi\",\"header\":\"tip_box_personal__header___2fn-Y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"share-icons\":\"share_campaign_compact__share-icons___1PGbw\",\"share-icon\":\"share_campaign_compact__share-icon___35fu4\",\"sub-text\":\"share_campaign_compact__sub-text___3ydkU _type__vx_text-6_lighter___2qDBi\",\"row\":\"share_campaign_compact__row___3F-Nh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"error-wrapper\":\"payments_token_sheet__error-wrapper___2Zpju\",\"back-button\":\"payments_token_sheet__back-button___2vX3s\",\"container_class\":\"payments_token_sheet__container_class___16dWU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"manage_all_page__container___dMkfG\",\"container__top\":\"manage_all_page__container__top___3LKDE\",\"container__body\":\"manage_all_page__container__body___3Q2rN\",\"body__content\":\"manage_all_page__body__content___2_K2c\",\"content__sidebar\":\"manage_all_page__content__sidebar___v6Sws\",\"content__details\":\"manage_all_page__content__details___3zjmK\",\"sidebar__cards\":\"manage_all_page__sidebar__cards___2b4Sl\",\"cards__start-fundraiser-btn\":\"manage_all_page__cards__start-fundraiser-btn___N5Bd3\",\"visible-md\":\"manage_all_page__visible-md___1C29I\",\"top__heading-text\":\"manage_all_page__top__heading-text___1NSVa\",\"hidden-md\":\"manage_all_page__hidden-md___2lCin\",\"content__details--slide-in\":\"manage_all_page__content__details--slide-in___1zwen\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"crowdfunding_nonprofit__title____Vb-e\",\"legend\":\"crowdfunding_nonprofit__legend___3jy-l\",\"textbox-wrapper\":\"crowdfunding_nonprofit__textbox-wrapper___vlbgt\",\"thumbnail\":\"crowdfunding_nonprofit__thumbnail___2orwt\",\"item-text\":\"crowdfunding_nonprofit__item-text___eZFw0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modal-overflow-container\":\"modal__modal-overflow-container___3ougJ\",\"modal-wrapper\":\"modal__modal-wrapper___KjzEp\",\"glimpse\":\"modal__glimpse___1hwIv\",\"white-part\":\"modal__white-part___23boo\",\"outer-wide-view-container\":\"modal__outer-wide-view-container___Si1Qi\",\"modal-header\":\"modal__modal-header___ouD8L\",\"left-header\":\"modal__left-header___3fgqR\",\"x-button\":\"modal__x-button___34RUF\",\"contents\":\"modal__contents___2XqTe\",\"inner-wide-view-container\":\"modal__inner-wide-view-container___2CwqO\",\"modal-progress\":\"modal__modal-progress___3gMuF\",\"progress-bar\":\"modal__progress-bar___3updS\",\"stepName\":\"modal__stepName___D7P4i\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"back-button\":\"back_button__back-button___25hPo _type__vx_text-6_lighter___2qDBi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"step-animation-container\":\"modal_wizard__step-animation-container___1BDQt\",\"step-enter-forward\":\"modal_wizard__step-enter-forward___3rqJx\",\"step-enter-forward-active\":\"modal_wizard__step-enter-forward-active___2N5tT\",\"step-leave-forward\":\"modal_wizard__step-leave-forward___3La1F\",\"step-leave-forward-active\":\"modal_wizard__step-leave-forward-active___3dZPz\",\"step-enter-backward\":\"modal_wizard__step-enter-backward___2O0q_\",\"step-enter-backward-active\":\"modal_wizard__step-enter-backward-active___KsJYL\",\"step-leave-backward\":\"modal_wizard__step-leave-backward___3WeHM\",\"step-leave-backward-active\":\"modal_wizard__step-leave-backward-active___37vlA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"manage_cf__container___2kANE\",\"edit-link\":\"manage_cf__edit-link___1L_Gg\",\"no-one\":\"manage_cf__no-one___mCPk4\",\"add-currency\":\"manage_cf__add-currency___25-Pm\",\"progress-bar\":\"manage_cf__progress-bar___D5Jsa\",\"manage-icons\":\"manage_cf__manage-icons___2z5W6\",\"manage-icon-row\":\"manage_cf__manage-icon-row___25MgE\",\"manage-icon-col\":\"manage_cf__manage-icon-col___1nvvc\",\"manage-icon-text-align\":\"manage_cf__manage-icon-text-align___3RkQj\",\"manage-link\":\"manage_cf__manage-link___2cAza\",\"contributors\":\"manage_cf__contributors___lzyEE\",\"btn\":\"manage_cf__btn___3YEEY\",\"text-center\":\"manage_cf__text-center___1IvUi\",\"text-left\":\"manage_cf__text-left___1sWpf\",\"pool-header\":\"manage_cf__pool-header___2Y1Ls\",\"pool-header-left\":\"manage_cf__pool-header-left___331W5\",\"activityLoader\":\"manage_cf__activityLoader___2HRsu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"flat-progress\":\"flat_progress__flat-progress___2hCBJ\",\"amount\":\"flat_progress__amount___2A_At\",\"amount--mb\":\"flat_progress__amount--mb___2wgds\",\"title\":\"flat_progress__title___2c9H8\",\"meter-component\":\"flat_progress__meter-component____X_qM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"add-currency\":\"no_currency_alert__add-currency___29uOV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"alert\":\"alert__alert___1SGjJ\",\"alert-help\":\"alert__alert-help___2CAVD alert__alert___1SGjJ\",\"alert-warning\":\"alert__alert-warning___2ko_N alert__alert___1SGjJ\",\"alert-critical\":\"alert__alert-critical___3ClW2 alert__alert___1SGjJ\",\"alert-success\":\"alert__alert-success___Itvps alert__alert___1SGjJ\",\"alert-text\":\"alert__alert-text___UdNJH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"balance\":\"campaign_balance__balance___1-8hj\",\"pledge-row\":\"campaign_balance__pledge-row___3L0LY\",\"amount-row\":\"campaign_balance__amount-row___2FXGB\",\"label\":\"campaign_balance__label___ZV0l8\",\"value\":\"campaign_balance__value___bkxke\",\"bold-value\":\"campaign_balance__bold-value___2wRuN\",\"balance-wrapper\":\"campaign_balance__balance-wrapper___2PvAJ\",\"donation-title\":\"campaign_balance__donation-title___1G1YK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"contributions_list__title___1rZvc _type__vx_text-5_lighter___2ilC-\",\"row\":\"contributions_list__row___3NYvO\",\"more-link\":\"contributions_list__more-link___LNoVN _type__vx_text-5___2iJ3U\",\"date-row\":\"contributions_list__date-row___3-s7p\",\"activity-link\":\"contributions_list__activity-link___Xk-2N\",\"show-more\":\"contributions_list__show-more___3EzOJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"initials\":\"avatar__initials___144FT _type__vx_text-3___2w6B6\",\"small-initials\":\"avatar__small-initials___2xdAF avatar__initials___144FT _type__vx_text-3___2w6B6 _type__vx_text-5___2iJ3U\",\"anonymous-avatar\":\"avatar__anonymous-avatar___31pG5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"activity-row\":\"activity_row__activity-row___3MKf7\",\"avatar-wrapper\":\"activity_row__avatar-wrapper___2SdlL\",\"details-wrapper\":\"activity_row__details-wrapper___30LU3\",\"details-content\":\"activity_row__details-content___jHUxq\",\"subject-name\":\"activity_row__subject-name___2aTDH\",\"activity-status\":\"activity_row__activity-status___31ghF\",\"activity-owner-details\":\"activity_row__activity-owner-details___1SHJ6\",\"details-note\":\"activity_row__details-note___2BC5D\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"updates__title___iEoGL\",\"list-container\":\"updates__list-container___2PKR-\",\"activity-title\":\"updates__activity-title___3jNtM\",\"show-more\":\"updates__show-more___34sbd\",\"update-heading\":\"updates__update-heading___1NQ93\",\"activity-empty\":\"updates__activity-empty___2b4SL\",\"empty-post-button\":\"updates__empty-post-button___3Ztv_\",\"postupdate-link\":\"updates__postupdate-link___12C3X\",\"postupdate-icon\":\"updates__postupdate-icon___1svkE\",\"empty-update-right-side\":\"updates__empty-update-right-side___Wcl06\",\"empty_text\":\"updates__empty_text___3h_oY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"activity-row\":\"update_row__activity-row___99Mjt\",\"update-tile\":\"update_row__update-tile___2L9Ya\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"activity-row\":\"organizer_update_detail__activity-row___3jyxF\",\"details-content\":\"organizer_update_detail__details-content___2nori\",\"details-content-mweb\":\"organizer_update_detail__details-content-mweb___1P2sl\",\"truncate-subject\":\"organizer_update_detail__truncate-subject___3L8Z4\",\"subject-name\":\"organizer_update_detail__subject-name___26gXE\",\"row-edit-link\":\"organizer_update_detail__row-edit-link___3h7P1\",\"subject-timestamp\":\"organizer_update_detail__subject-timestamp____obBz\",\"edit-button\":\"organizer_update_detail__edit-button___pFleS\",\"subject-description\":\"organizer_update_detail__subject-description___VrWpt\",\"update-button\":\"organizer_update_detail__update-button___1FJga\",\"parentheses\":\"organizer_update_detail__parentheses___1uveH\",\"truncate-description\":\"organizer_update_detail__truncate-description___3vdO7\",\"organizer-update\":\"organizer_update_detail__organizer-update___XgqjJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"empty-image\":\"pictograms__empty-image___3culh\",\"category-selection-image\":\"pictograms__category-selection-image___28RqE\",\"creation-share-image\":\"pictograms__creation-share-image___4yjOt\",\"state-image\":\"pictograms__state-image___1nUy0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"charity-tile-logo\":\"charity_card__charity-tile-logo___2lIl-\",\"charity-wrap\":\"charity_card__charity-wrap___17lpB\",\"charity-title\":\"charity_card__charity-title___3dBaB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"done-btn\":\"crowdfunding_cover_image__done-btn___3PnHQ\",\"title\":\"crowdfunding_cover_image__title___M8nAr _type__vx_text-2___Qizsf\",\"tip\":\"crowdfunding_cover_image__tip___2_owM\",\"remove-image\":\"crowdfunding_cover_image__remove-image___rcexY _type__vx_text-5_lighter___2ilC-\",\"title_cf\":\"crowdfunding_cover_image__title_cf___1vOdq\",\"image-container\":\"crowdfunding_cover_image__image-container___3BSlj\",\"upload-info\":\"crowdfunding_cover_image__upload-info___1QXIY\",\"upload-info-text\":\"crowdfunding_cover_image__upload-info-text___29Z-M\",\"upload-info-icon\":\"crowdfunding_cover_image__upload-info-icon___2X3jU\",\"choose-background\":\"crowdfunding_cover_image__choose-background___23Ksg _type__vx_text-5_lighter___2ilC-\",\"choose-color\":\"crowdfunding_cover_image__choose-color___Xloid _type__vx_text-legal___ZEtis\",\"color-form-container\":\"crowdfunding_cover_image__color-form-container___3ptmQ\",\"color-form\":\"crowdfunding_cover_image__color-form___1oRNI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dragzone\":\"image_upload_field__dragzone___2nzOY\",\"dragover\":\"image_upload_field__dragover___YKSei\",\"not-supported\":\"image_upload_field__not-supported___34Kr9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"preview-container\":\"crowdfunding_image_adjust__preview-container___c5POv\",\"viewer\":\"crowdfunding_image_adjust__viewer___1nBYf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"image-cropper\":\"cropper__image-cropper___14oez\",\"icon-panel\":\"cropper__icon-panel___2TZDJ\",\"action-button-row\":\"cropper__action-button-row___2mCiL\",\"cropper-wrapper\":\"cropper__cropper-wrapper___2Ofbn\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"preview-container\":\"crowdfunding_image_preview__preview-container___2o34w\",\"drag\":\"crowdfunding_image_preview__drag___1JSWz\",\"actions\":\"crowdfunding_image_preview__actions___3Rjbn\",\"action\":\"crowdfunding_image_preview__action___1O0Ui\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"strip\":\"strip__strip___2ZIG4\",\"static\":\"strip__static___2XOR_\",\"strip-image\":\"strip__strip-image___x2vdA\",\"strip-with-image\":\"strip__strip-with-image___hM8gO strip__strip___2ZIG4\",\"responsive\":\"strip__responsive___IKuHm\",\"responsive-fullscreen\":\"strip__responsive-fullscreen___2hFqo\",\"strip-with-gradient\":\"strip__strip-with-gradient___3KMlf strip__strip___2ZIG4\",\"strip-blue\":\"strip__strip-blue___3SMy0 strip__strip-with-gradient___3KMlf strip__strip___2ZIG4\",\"strip-purple\":\"strip__strip-purple___OTBkC strip__strip-with-gradient___3KMlf strip__strip___2ZIG4\",\"strip-fuchsia\":\"strip__strip-fuchsia___1EFrs strip__strip-with-gradient___3KMlf strip__strip___2ZIG4\",\"strip-red\":\"strip__strip-red___2R-mq strip__strip-with-gradient___3KMlf strip__strip___2ZIG4\",\"strip-teal\":\"strip__strip-teal___17ozk strip__strip-with-gradient___3KMlf strip__strip___2ZIG4\",\"strip-gray\":\"strip__strip-gray___3G2HH strip__strip-with-gradient___3KMlf strip__strip___2ZIG4\",\"strip-green\":\"strip__strip-green___MxXTf strip__strip-with-gradient___3KMlf strip__strip___2ZIG4\",\"strip-sky\":\"strip__strip-sky___2rRAU strip__strip-with-gradient___3KMlf strip__strip___2ZIG4\",\"strip-pink\":\"strip__strip-pink___2RDQD strip__strip-with-gradient___3KMlf strip__strip___2ZIG4\",\"strip-orange\":\"strip__strip-orange___lh6un strip__strip-with-gradient___3KMlf strip__strip___2ZIG4\",\"alternative-image\":\"strip__alternative-image___iSxTo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"collapsible\":\"collapsible_text__collapsible___1CeN1\",\"collapsed\":\"collapsible_text__collapsed___2_X6Z\",\"header\":\"collapsible_text__header___37V-f\",\"footer\":\"collapsible_text__footer___3zcnR\",\"button\":\"collapsible_text__button___3Nwfq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tab_layout\":\"crowdfunding_tab_layout__tab_layout___1ZDEM\",\"tab_content\":\"crowdfunding_tab_layout__tab_content___HrhVX\",\"contribution_content\":\"crowdfunding_tab_layout__contribution_content___1hEPw\",\"organizer-update-doner\":\"crowdfunding_tab_layout__organizer-update-doner___TlKZJ\",\"show-more\":\"crowdfunding_tab_layout__show-more___25kSt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"count_down_container\":\"count_down__count_down_container___2cH8Y\",\"unit_container\":\"count_down__unit_container___yklnT\",\"unit_value\":\"count_down__unit_value___1M2C-\",\"unit_text\":\"count_down__unit_text___3eg6m\",\"unit_separator\":\"count_down__unit_separator___Rba8b\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sub-text\":\"share_buttons__sub-text___NkpL3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"donate-button\":\"donate_button__donate-button___3tDcl\",\"preview\":\"donate_button__preview___2cFqo\",\"donate-disabled-wrapper\":\"donate_button__donate-disabled-wrapper___2dSK3\",\"donate-disabled-text\":\"donate_button__donate-disabled-text___1SsfW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"copy-box-wrapper\":\"copy_box__copy-box-wrapper___3NE47\",\"copy-box\":\"copy_box__copy-box___t4btt _type__vx_text-5_lighter___2ilC-\",\"copy-box-disabled\":\"copy_box__copy-box-disabled___1j0l8 copy_box__copy-box___t4btt _type__vx_text-5_lighter___2ilC-\",\"copy-link\":\"copy_box__copy-link___sEyx7\",\"copied-tooltip\":\"copy_box__copied-tooltip___3Hn_t\",\"tooltip-enter\":\"copy_box__tooltip-enter___Qp8Xo\",\"tooltip-enter-active\":\"copy_box__tooltip-enter-active___2u5Ce\",\"tooltip-leave\":\"copy_box__tooltip-leave___3B3PY\",\"tooltip-leave-active\":\"copy_box__tooltip-leave-active___3EXNP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"report-link-container\":\"report_link__report-link-container___2tmkR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"margin-bottom-24\":\"charity_details_modal__margin-bottom-24___o6j3l\",\"charity-modal-content-header\":\"charity_details_modal__charity-modal-content-header___1KQup\",\"charity-modal-content\":\"charity_details_modal__charity-modal-content___3VRry\",\"charity-heart-image\":\"charity_details_modal__charity-heart-image___14sme\",\"charity-details-modal-body\":\"charity_details_modal__charity-details-modal-body___3Ob1_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"large-icon\":\"standard_error__large-icon___iKWcY\",\"standardError\":\"standard_error__standardError___hndaU\",\"error-icon\":\"standard_error__error-icon___1g5Vx\",\"custom-icon\":\"standard_error__custom-icon___365AX\",\"title\":\"standard_error__title___3oBrF _type__vx_text-2___Qizsf\",\"subtitle\":\"standard_error__subtitle___3c6CF _type__vx_text-5_lighter___2ilC-\",\"iconAlign\":\"standard_error__iconAlign___2wVY2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mock-text-container\":\"mock_text__mock-text-container___3gSqM\",\"mock-text-aligner\":\"mock_text__mock-text-aligner___2f1S0\",\"mock-text\":\"mock_text__mock-text___3-He-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"charity-row-one\":\"enrich_charity_card__charity-row-one___2u2oC\",\"charity-name-section\":\"enrich_charity_card__charity-name-section___2KKYp\",\"charity-row-two\":\"enrich_charity_card__charity-row-two___3f2Vf\",\"web-icon\":\"enrich_charity_card__web-icon___1yTmD\",\"alert\":\"enrich_charity_card__alert___3xKQ8\",\"un-enrolled-link\":\"enrich_charity_card__un-enrolled-link___3fuCe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content-inside\":\"paypal_page__content-inside___1vVPu\",\"white-bg\":\"paypal_page__white-bg___1wDM3\",\"no-header\":\"paypal_page__no-header___1psOo\",\"no-footer\":\"paypal_page__no-footer___1hU7b\",\"clear\":\"paypal_page__clear___jyj-e\",\"marketing-header-background\":\"paypal_page__marketing-header-background___z8HKG\",\"background\":\"paypal_page__background___2oWZv\",\"sticky-footer-container\":\"paypal_page__sticky-footer-container___1DBEn\",\"sticky-footer\":\"paypal_page__sticky-footer___25Q75\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header__container\":\"index__header__container___J46pc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"crowdfunding-banner\":\"crowdfunding_banner__crowdfunding-banner___1UpPE\",\"crowdfunding-banner-icon\":\"crowdfunding_banner__crowdfunding-banner-icon___3ZyTs\",\"crowdfunding-banner-button\":\"crowdfunding_banner__crowdfunding-banner-button___EogfS\",\"banner-text\":\"crowdfunding_banner__banner-text___390Bk\",\"entryBannerContainer\":\"crowdfunding_banner__entryBannerContainer___mziEd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"icon__icon___E40AR\",\"stroke-color-black\":\"icon__stroke-color-black___3FTeH\",\"stroke-color-blue\":\"icon__stroke-color-blue___2cWKT\",\"stroke-color-white\":\"icon__stroke-color-white___TqD_t\",\"disable-fill\":\"icon__disable-fill___1XBGp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"profile-cover__creator-name\":\"profile_cover__profile-cover__creator-name___1b5oS\",\"profile-cover\":\"profile_cover__profile-cover___2x6kC\",\"profile-avatar\":\"profile_cover__profile-avatar___3hJ5W\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"avatar-container\":\"avatar_collection__avatar-container___3_TeD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"standard_dialog__title___20Wpm\",\"subtitle\":\"standard_dialog__subtitle___1uldV\",\"close-button\":\"standard_dialog__close-button___2Qscn\",\"ok-button\":\"standard_dialog__ok-button___2YcDu\",\"delete-button\":\"standard_dialog__delete-button___1S2RZ\",\"dialog-content\":\"standard_dialog__dialog-content___z_n6M\",\"icon\":\"standard_dialog__icon___1p7Bq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dialog-container\":\"dialog__dialog-container___10lBh\",\"dialog\":\"dialog__dialog___3WB3L\",\"small-dialog\":\"dialog__small-dialog___2ePtF dialog__dialog___3WB3L\",\"medium-dialog\":\"dialog__medium-dialog___3iU5n dialog__dialog___3WB3L\",\"large-dialog\":\"dialog__large-dialog___Lvnhn dialog__dialog___3WB3L\",\"dialog-contents\":\"dialog__dialog-contents___1J8VL\",\"x-button\":\"dialog__x-button___1VjCa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"detail-name\":\"transfer_review_box__detail-name___1VHnH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"delete_review__title___UNSzF _type__vx_text-2___Qizsf\",\"delete-button\":\"delete_review__delete-button___384_e\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"eligibilty-errors\":\"campaign_eligibility__eligibilty-errors___2Q0K7\",\"icon-container\":\"campaign_eligibility__icon-container___1vYF5\",\"title\":\"campaign_eligibility__title___zFTit _type__vx_text-2___Qizsf\",\"description\":\"campaign_eligibility__description___1qliN _type__vx_text-5_lighter___2ilC-\",\"go-to-account-button\":\"campaign_eligibility__go-to-account-button___1SB9z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"transfer__title___2ords\",\"amount-container\":\"transfer__amount-container___2Wnjn\",\"amount-description\":\"transfer__amount-description___hn4C- _type__vx_text-legal___ZEtis\",\"transfer-btn\":\"transfer__transfer-btn___1tfc9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"transfer_complete__title___ZmINz\",\"done-button\":\"transfer_complete__done-button___226y0\",\"sub-title\":\"transfer_complete__sub-title___1YJa5\",\"actions\":\"transfer_complete__actions___pO2Ag\",\"withdraw-button\":\"transfer_complete__withdraw-button___7MC2u\",\"success-image\":\"transfer_complete__success-image___YxyUr\",\"transfer-container\":\"transfer_complete__transfer-container___3Eb_9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"ended-title\":\"post_update_cf__ended-title___1bHoP\",\"title\":\"post_update_cf__title___195pB\",\"subtitle\":\"post_update_cf__subtitle___10e56\",\"textbox-wrapper\":\"post_update_cf__textbox-wrapper___1JY2B\",\"description-container\":\"post_update_cf__description-container___38F5c\",\"delete-link\":\"post_update_cf__delete-link___3n0oZ\",\"delete-icon\":\"post_update_cf__delete-icon___14cFo\",\"save-button\":\"post_update_cf__save-button___2pe6C\",\"delete-update\":\"post_update_cf__delete-update___3lzzL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"delete-update\":\"delete_update_activity__delete-update___19Ifl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"postupdate_share__title___2IDaC\",\"subtitle\":\"postupdate_share__subtitle___Dszew\",\"textarea-wrapper\":\"postupdate_share__textarea-wrapper___317pc\",\"img-container-header\":\"postupdate_share__img-container-header___anf-n\",\"publish-container\":\"postupdate_share__publish-container___2kQIx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"topAlign\":\"post_update_error__topAlign___r1X-r\",\"extraContent\":\"post_update_error__extraContent___rynOa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"view_updates__title___2oiqV _type__vx_text-2___Qizsf\",\"list-container\":\"view_updates__list-container___3Adoq\",\"activity-title\":\"view_updates__activity-title___3RpP4\",\"show-more\":\"view_updates__show-more___3KpVv\",\"update-heading\":\"view_updates__update-heading___37WbG\",\"activity-empty\":\"view_updates__activity-empty___3QaE3\",\"empty-image\":\"view_updates__empty-image___1Drku\",\"empty-update-text\":\"view_updates__empty-update-text___rIigE\",\"empty-post-button\":\"view_updates__empty-post-button___30GIQ\",\"postupdate-link\":\"view_updates__postupdate-link___1CMA9\",\"postupdate-icon\":\"view_updates__postupdate-icon___3XjTB\",\"list-updates\":\"view_updates__list-updates___2yC0v\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"campaign-not-found\":\"campaign_not_found__campaign-not-found___Q78tj\",\"icon-container\":\"campaign_not_found__icon-container___3BSjb\",\"title\":\"campaign_not_found__title___1yDZ7 _type__vx_text-2___Qizsf\",\"description\":\"campaign_not_found__description___2xqIq _type__vx_text-5_lighter___2ilC-\",\"cta-button\":\"campaign_not_found__cta-button___1qzHA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"card--selected\":\"left_side_hub_campaign__card--selected___KnRhn\",\"campaign__icon\":\"left_side_hub_campaign__campaign__icon___29Jdv\",\"card__content\":\"left_side_hub_campaign__card__content___3-V1O\",\"content__column-left\":\"left_side_hub_campaign__content__column-left___2kih7\",\"content__column-right\":\"left_side_hub_campaign__content__column-right___-9_q-\",\"column-left__top\":\"left_side_hub_campaign__column-left__top___1PmFE\",\"column-left__bottom\":\"left_side_hub_campaign__column-left__bottom___3zSPe\",\"middle__formatted-amount\":\"left_side_hub_campaign__middle__formatted-amount___Rd0HH\",\"column-left__middle\":\"left_side_hub_campaign__column-left__middle___2jBXE\",\"card\":\"left_side_hub_campaign__card___3YuXf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zero-fundraiser\":\"empty_hub__zero-fundraiser___3IzHl\",\"zero-fundraiser__illustration-image\":\"empty_hub__zero-fundraiser__illustration-image___2I0h8\",\"zero-fundraiser__title\":\"empty_hub__zero-fundraiser__title___362ok\",\"zero-fundraiser__subtitle\":\"empty_hub__zero-fundraiser__subtitle___3gJEp\",\"state-pictograms\":\"empty_hub__state-pictograms___2PeEi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"zero-fundraiser\":\"fundraiser_skeleton__zero-fundraiser___tjS6y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"settings-link\":\"create_fundraiser_error__settings-link___2-reK _type__vx_text-5___2iJ3U\",\"mt-10\":\"create_fundraiser_error__mt-10___1qg4n\",\"mb-25\":\"create_fundraiser_error__mb-25___1KEWA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header-section\":\"create_type_small_group__header-section___3h1NM\",\"title\":\"create_type_small_group__title___1V4O2\",\"button-cf\":\"create_type_small_group__button-cf___LonAn\",\"top-alignment\":\"create_type_small_group__top-alignment___3xgti\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content-wrapper\":\"create_card__content-wrapper___33NJx\",\"content-icon\":\"create_card__content-icon___3cBar\",\"content-tile\":\"create_card__content-tile___3WYAH\",\"card-link\":\"create_card__card-link___1cMmR\",\"caption-text\":\"create_card__caption-text___ZQUZE\",\"caption-text-small-group\":\"create_card__caption-text-small-group___MXYbY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"plaque\":\"fundraiser_skeleton__plaque___3CyXK\",\"circle\":\"fundraiser_skeleton__circle___1ULJu\",\"title\":\"fundraiser_skeleton__title___38m4P\",\"badge\":\"fundraiser_skeleton__badge___kgq6l\",\"amount\":\"fundraiser_skeleton__amount___qoK5p\",\"progress-bar\":\"fundraiser_skeleton__progress-bar___2Sx36\",\"amount-raised\":\"fundraiser_skeleton__amount-raised___3PLjU\",\"actions\":\"fundraiser_skeleton__actions___1dAhS\",\"actions__action\":\"fundraiser_skeleton__actions__action___2sgAC\",\"activity\":\"fundraiser_skeleton__activity___3GvHv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"card__content\":\"horizontal_scroller__card__content___eslCC\",\"content__top\":\"horizontal_scroller__content__top___1N3DQ\",\"content__bottom\":\"horizontal_scroller__content__bottom___8qFMV\",\"top__image\":\"horizontal_scroller__top__image___MpAZv\",\"top__image--visible\":\"horizontal_scroller__top__image--visible___XzoBD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tip-wrapper\":\"tip_box__tip-wrapper___YYeAO\",\"tip-avatar-wrapper\":\"tip_box__tip-avatar-wrapper___adRJQ\",\"tip-icon\":\"tip_box__tip-icon___2u9Ed\",\"tip-text\":\"tip_box__tip-text___qGH2R\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sheet__description\":\"session_timeout__sheet__description___3ggJu\"};"],"sourceRoot":""}