{"version":3,"sources":["webpack:///./client/components/common/share_button/share_button.modules.less","webpack:///./node_modules/@paypalcorp/instance-location/geo sync ^\\.\\/.*$","webpack:///./client/components/pages/create/create.less","webpack:///./client/lib/server_params.js","webpack:///./shared/shared_consts.js","webpack:///./client/lib/deploy_env.js","webpack:///./client/griffin.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/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/campaign_url.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/dom.js","webpack:///./client/i18n.js","webpack:///./client/lib/locale.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/modules/coming_soon_dialog.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/redux/analytics.js","webpack:///./client/redux/store.js","webpack:///./client/lib/route_utils.js","webpack:///./client/components/common/header_image/header_image.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/common/confetti/confetti.js","webpack:///./client/components/modal_wizard/modal_wizard_container.js","webpack:///./shared/helpers/math_helpers.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/images/rocket.svg","webpack:///./client/images/pools_logo.svg","webpack:///./client/components/common/icon/icon.js","webpack:///./client/components/common/icon_circle/icon_circle.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:///./client/components/common/expandable_paragraph/expandable_paragraph.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/lib/store.js","webpack:///./client/intl/index.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/date_input_box/date_input_box.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:///./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/paypal_navigation/paypal_navigation.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_banner/crowdfunding_banner.js","webpack:///./client/components/common/header_footer/header.js","webpack:///./client/components/common/header_footer/footer.js","webpack:///./client/components/crowdfunding_page/crowdfunding_page.js","webpack:///./client/components/crowdfunding_page/crowdfunding_page_container.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/pages/campaign/chip_in_button/chip_in_button.js","webpack:///./client/redux/selectors/is_owner.js","webpack:///./client/redux/selectors/has_currency_balance.js","webpack:///./client/components/pages/campaign/chip_in_button/chip_in_button_container.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/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/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/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/currency_input/currency_input_box.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:///./shared/helpers/campaign.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/lib/cfpb.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/feedback_link/feedback_link.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/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_review/delete_review.js","webpack:///./client/components/glimpses/edit_glimpse/delete_review/delete_review_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/components/glimpses/send_glimpse/send_glimpse.js","webpack:///./client/components/glimpses/send_glimpse/send_glimpse_container.js","webpack:///./client/components/common/separator/separator.js","webpack:///./client/components/common/checkbox/checkbox.js","webpack:///./client/lib/amount.js","webpack:///./client/components/common/currency_text_box/currency_text_box_regular.js","webpack:///./client/components/common/currency_text_box/currency_text_box.js","webpack:///./client/components/common/money/money.js","webpack:///./client/components/common/input_error/input_error.js","webpack:///./client/components/common/submit_link/submit_link.js","webpack:///./client/components/glimpses/send_glimpse/send_amount/send_amount.js","webpack:///./client/components/glimpses/send_glimpse/send_amount/send_amount_container.js","webpack:///./client/components/common/text_box/text_box.js","webpack:///./client/components/glimpses/send_glimpse/send_note/send_note.js","webpack:///./client/components/glimpses/send_glimpse/send_note/send_note_container.js","webpack:///./shared/send_money_url_generator.js","webpack:///./client/components/glimpses/send_glimpse/send_success/send_success.js","webpack:///./client/components/glimpses/send_glimpse/send_success/send_success_container.js","webpack:///./client/components/glimpses/send_glimpse/send_review/send_review.js","webpack:///./client/components/glimpses/send_glimpse/send_review/send_review_container.js","webpack:///./client/components/glimpses/send_glimpse/cant_chip_in/cant_chip_in.js","webpack:///./client/lib/contribute.js","webpack:///./client/routes/send.js","webpack:///./client/components/glimpses/guest_glimpse/guest_glimpse.js","webpack:///./client/components/glimpses/guest_glimpse/guest_glimpse_container.js","webpack:///./client/routes/guest.js","webpack:///./client/components/glimpses/chip_in_glimpse/chip_in_glimpse.js","webpack:///./client/components/glimpses/chip_in_glimpse/chip_in_glimpse_container.js","webpack:///./client/components/common/dropdown/dropdown.js","webpack:///./client/components/common/money_text_box/money_text_box.js","webpack:///./client/components/glimpses/chip_in_glimpse/chip_in_amount/chip_in_amount.js","webpack:///./client/components/glimpses/chip_in_glimpse/chip_in_amount/chip_in_amount_container.js","webpack:///./client/components/glimpses/chip_in_glimpse/chip_in_complete/chip_in_complete.js","webpack:///./client/components/glimpses/chip_in_glimpse/chip_in_complete/chip_in_complete_container.js","webpack:///./client/components/glimpses/chip_in_glimpse/no_chip_in/no_chip_in.js","webpack:///./client/components/glimpses/chip_in_glimpse/no_chip_in/no_chip_in_container.js","webpack:///./client/routes/chip_in.js","webpack:///./client/components/paypal_logo/paypal_logo.js","webpack:///./client/components/paypal_logo/paypal_logo_container.js","webpack:///./client/components/login_button/login_button.js","webpack:///./client/components/login_button/login_button_container.js","webpack:///./client/components/pages/campaign/header/header.js","webpack:///./client/images/addphoto.svg","webpack:///./client/components/pages/campaign/profile_header/profile_header.js","webpack:///./client/components/pages/campaign/profile_header/profile_header_container.js","webpack:///./client/components/common/paypal_page/paypal_page.js","webpack:///./client/components/common/paypal_page/paypal_page_container.js","webpack:///./client/components/pages/campaign/campaign_title/campaign_title.js","webpack:///./client/components/pages/campaign/campaign_title/campaign_title_container.js","webpack:///./client/components/pages/campaign/white_box/white_box.js","webpack:///./client/components/common/rounded_progress/rounded_progress.js","webpack:///./client/components/common/delay/delay.js","webpack:///./client/components/pages/campaign/campaign_info/campaign_info.js","webpack:///./client/components/pages/campaign/campaign_info/campaign_info_container.js","webpack:///./client/components/common/fixed_gradient/fixed_gradient.js","webpack:///./client/components/pages/campaign/campaign_action/campaign_action.js","webpack:///./client/images/facebook.svg","webpack:///./client/images/messenger.svg","webpack:///./client/images/twitter.svg","webpack:///./client/images/whatsapp.svg","webpack:///./client/components/common/share_campaign/share_campaign.js","webpack:///./client/components/common/share_campaign/share_campaign_container.js","webpack:///./client/components/pages/campaign/share/share.js","webpack:///./client/components/common/fade_out_link/fade_out_link.js","webpack:///./client/components/pages/campaign/start_your_own/start_your_own.js","webpack:///./client/components/pages/campaign/white_header/white_header.js","webpack:///./client/components/pages/campaign/campaign.js","webpack:///./client/redux/selectors/can_manage.js","webpack:///./client/components/pages/campaign/campaign_container.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/common/create_card/create_card.js","webpack:///./client/components/pages/create/create_type/create_type.js","webpack:///./client/components/page_header/create_type/index.js","webpack:///./client/components/pages/campaign/preview_header/preview_header.js","webpack:///./client/components/pages/campaign/preview_header/preview_header_container.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/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/create_type_container.js","webpack:///./client/redux/selectors/cip.js","webpack:///./client/routes/create.js","webpack:///./client/components/common/discoverable/discoverable.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_basics/crowdfunding_basics.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_basics/crowdfunding_basics_container.js","webpack:///./client/components/charity_tile/charity_tile.js","webpack:///./client/components/common/type_ahead_search/type_ahead_search.js","webpack:///./client/components/common/carousel/carousel.js","webpack:///./client/components/common/hooks/useWindowSize.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/crowdfunding_story.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_story/crowdfunding_story_container.js","webpack:///./client/components/pages/crowdfunding/crowdfunding_select_cover/crowdfunding_select_cover.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/coming_soon_dialog/coming_soon_dialog.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/app.js","webpack:///./client/components/common/carousel/carousel.less","webpack:///./client/components/common/share_campaign_compact/share_campaign_compact.less","webpack:///./client/components/common/share_campaign_textarea/share_campaign_textarea.less","webpack:///./client/components/crowdfunding_detail_view/crowdfunding_detail_view.less","webpack:///./client/components/common/share_update_activity/share_update_activity.less","webpack:///./client/components/common/transitions/reveal.less","webpack:///./client/components/common/transitions/cross_fade.less","webpack:///./client/components/glimpses/edit_glimpse/activity/activity.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/campaign/campaign_details/campaign_details.less","webpack:///./client/components/pages/crowdfunding/crowdfunding_nonprofit/crowdfunding_nonprofit.less","webpack:///./client/components/common/type_ahead_search/type_ahead_search.less","webpack:///./client/components/contributions_list/public_contributions_list.less","webpack:///./client/components/common/payments_token_sheet/payments_token_sheet.less","webpack:///./client/components/common/money/money.less","webpack:///./client/components/common/fade_out_link/fade_out_link.less","webpack:///./client/components/pages/hub/manage_all_page/manage_all_page.less","webpack:///./client/components/pages/crowdfunding/crowdfunding_cover/crowdfunding_cover.less","webpack:///./client/components/common/modal/modal.less","webpack:///./client/components/common/header_image/header_image.less","webpack:///./client/components/common/back_button/back_button.less","webpack:///./client/components/modal_wizard/modal_wizard.less","webpack:///./client/components/common/confetti/confetti.less","webpack:///./client/components/glimpses/edit_glimpse/manage_cf/manage_cf.less","webpack:///./client/components/common/icon_circle/icon_circle.less","webpack:///./client/components/common/icon/icon.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/common/expandable_paragraph/expandable_paragraph.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/crowdfunding_page/crowdfunding_page.less","webpack:///./client/components/pages/crowdfunding/crowdfunding_banner/crowdfunding_banner.less","webpack:///./client/components/crowdfunding_tab_layout/crowdfunding_tab_layout.less","webpack:///./client/components/pages/campaign/chip_in_button/chip_in_button.less","webpack:///./client/components/common/mock_text/mock_text.less","webpack:///./client/components/contributions_list/rows/public_contribution_row.less","webpack:///./client/components/common/count_down/count_down.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/standard_dialog/standard_dialog.less","webpack:///./client/components/common/dialog/dialog.less","webpack:///./client/components/glimpses/edit_glimpse/edit_main_cf/edit_main_cf.less","webpack:///./client/components/pages/crowdfunding/crowdfunding_share/crowdfunding_share.less","webpack:///./client/components/common/campaign_eligibility/campaign_eligibility.less","webpack:///./client/components/feedback_link/feedback_link.less","webpack:///./client/components/glimpses/edit_glimpse/transfer_review_box/transfer_review_box.less","webpack:///./client/components/glimpses/edit_glimpse/delete_review/delete_review.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/glimpses/send_glimpse/send_amount/send_amount.less","webpack:///./client/components/common/separator/separator.less","webpack:///./client/components/common/checkbox/checkbox.less","webpack:///./client/components/common/input_error/input_error.less","webpack:///./client/components/glimpses/send_glimpse/send_note/send_note.less","webpack:///./client/components/common/text_box/text_box.less","webpack:///./client/components/glimpses/send_glimpse/send_review/send_review.less","webpack:///./client/components/glimpses/send_glimpse/send_success/send_success.less","webpack:///./client/components/glimpses/send_glimpse/cant_chip_in/cant_chip_in.less","webpack:///./client/components/glimpses/chip_in_glimpse/chip_in_amount/chip_in_amount.less","webpack:///./client/components/common/dropdown/dropdown.less","webpack:///./client/components/glimpses/chip_in_glimpse/chip_in_complete/chip_in_complete.less","webpack:///./client/components/glimpses/chip_in_glimpse/no_chip_in/no_chip_in.less","webpack:///./client/components/pages/campaign/campaign.less","webpack:///./client/components/pages/campaign/profile_header/profile_header.less","webpack:///./client/components/pages/campaign/header/header.less","webpack:///./client/components/paypal_logo/paypal_logo.less","webpack:///./client/components/login_button/login_button.less","webpack:///./client/components/common/paypal_page/paypal_page.less","webpack:///./client/components/pages/campaign/campaign_title/campaign_title.less","webpack:///./client/components/pages/campaign/white_box/white_box.less","webpack:///./client/components/pages/campaign/campaign_info/campaign_info.less","webpack:///./client/components/common/rounded_progress/rounded_progress.less","webpack:///./client/components/pages/campaign/campaign_action/campaign_action.less","webpack:///./client/components/common/fixed_gradient/fixed_gradient.less","webpack:///./client/components/pages/campaign/share/share.less","webpack:///./client/components/common/share_campaign/share_campaign.less","webpack:///./client/components/pages/campaign/start_your_own/start_your_own.less","webpack:///./client/components/pages/campaign/white_header/white_header.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/common/ppgf_inset/ppgf_inset.less","webpack:///./client/components/pages/create/create_type/create_type.less","webpack:///./client/components/common/create_card/create_card.less","webpack:///./client/components/page_header/create_type/createType.less","webpack:///./client/components/pages/campaign/preview_header/preview_header.less","webpack:///./client/components/pages/create_fundraiser_error/create_fundraiser_error.less","webpack:///./client/components/pages/hub/fundraiser_skeleton/fundraiser_skeleton.less","webpack:///./client/components/pages/crowdfunding/crowdfunding_basics/crowdfunding_basics.less","webpack:///./client/components/common/discoverable/discoverable.less","webpack:///./client/components/charity_tile/charity_tile.less","webpack:///./client/components/pages/crowdfunding/crowdfunding_story/crowdfunding_story.less","webpack:///./client/components/common/tip_box/tip_box.less","webpack:///./client/components/pages/crowdfunding/crowdfunding_select_cover/crowdfunding_select_cover.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","Array","isArray","error","getDataAttr","dataKey","body","getAttribute","SCRIPT_IDS","ALLOWED_IMAGE_TYPES","UNALLOWED_ENCODED_IMAGE_TYPES","USER_AGREEMENT_LINK_COUNTRIES","DEFAULT_LOCALE","AMOUNT_TYPES","CROWDFUNDING_GOAL_AMOUNT","EUR","MAX_AMOUNT","MIN_AMOUNT","AUD","CAD","GBP","NOK","DKK","USD","PLN","SEK","COVER_IMAGE_UPLOAD_ERRORS","FUNDING_SOURCES","CIP_FLOW_URL","SUBSCRIPTION_TYPES","WALLET","CASH","CASH_PLUS","FLOW_DETAILS","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","INTEGRATION_IDENTIFIER_BY_COUNTRY","AT","CHARITY_TYPE","AU","BE","CA","DE","DK","ES","FR","GB","GR","IE","IT","LU","NL","NO","PL","PT","US","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","EXTEND_SESSION","URL","SESSION_TIMEOUT","CONFIRM_TIMEOUT","RESET_TIMER_TIMEOUT","CONFIRM_EU_TIMEOUT","RESET_EU_TIMER_TIMEOUT","DEPLOY_ENV_DEFAULT","isDev","isTest","isStage","isSandbox","isLive","VALID_DEPLOY_ENV_FLAGS","getDeployEnv","store","deployEnv","deployEnvStore","entries","some","flag","value","includes","rules","numberHandler","createNumberHandler","clientMetadata","nameHandler","createNameHandler","dateHandler","createDateHandler","getDefaultCurrencyCode","defaultCurrencyCode","getCurrencyFormatPart","parts","part","find","p","type","getCurrencySymbol","currency","formatCurrency","CURRENCY_FORMAT","formatPercent","formatNumber","NUMBER_FORMAT_PERCENT","formatMoney","removeTrailingZeros","showCurrencySymbol","hideCurrencyCode","filter","currencyFormat","shouldUseIntlFormat","CURRENCY_FORMAT_SYMBOLISOCURRENCY","minimumFractionDigits","countryCurrencyCodes","indexOf","getFullName","name","formatName","style","NAME_FORMAT_FULL","getDecimalPrecision","currencyCode","griffin","number","currencyInfo","digits","formatDateShort","date","formatDate","DATE_FORMAT_SHORT","getTimeZone","Date","timeZone","ANALYTICS_TYPES","noop","PAYPAL","window","emptyAnalytics","recordClick","recordImpression","analytics","Analytics","paypalAnalyticsSetupCompleted","_initialized","instance","_q","length","ev","shift","track","payload","_flushQueue","trackImpression","trackEventNameClick","event_name","charity_name","npid","flow","campaignId","dismiss_method","audience","trackClick","clickName","data","product","charityname","crid","campaign_id","fpti","pgln","page","pglk","pgrp","link","forEach","key","_trackClick","pageName","poolOwner","erpg","eccd","contingency","amount","error_code","screen","error_desc","event_type","status","state","count","rank","update_state","undefined","cmpn_id","encr_rcvr_id","platform","pool_id","txn_amt","_trackImpression","push","_enqueueEvent","endDate","previousValue","allValues","test","edit_tracking","shareContributionsAmount","shareProgress","edit_end_date","create_basics","formReducer","formName","normalize","normalizers","plugin","action","savedState","cloneDeep","loginInfoSelector","login_info","countrySelector","country","loginUrlSelector","returnUri","onboardData","showGuest","createSelector","loginInfo","baseLoginUrl","login_url","localeParams","locale","country_code","loginUrl","encodeURIComponent","mayfly_key","logoutUrlSelector","baseLogoutUrl","logout_url","isLoggedInSelector","logged_in","veniceBridge","venice","callBridgeFunction","funcName","bridge","args","apply","mobileAppSelector","mobile_app","fromVeniceSelector","mobileApp","from_app","canManageVeniceSelector","can_manage","canShareVeniceSelector","can_share","_fetchClient","cookieMiddleware","request","options","credentials","response","XHRMiddleware","headers","handleAuthFailure","fromVenice","location","href","Promise","reject","fetchClient","csrfToken","createClient","addMiddleware","fetchPlusJson","authFailure","bind","ok","json","then","fetchPlusCsrf","generatePathFunction","route","ids","clonedRoute","GLOBAL_CONSTS","replace","campaign","index","api","end","withdraw","chip_in","create_payments_token","get_payments_token_transaction","organizer_update","contributors","transactions","funding_sources","balances","charity","getCharities","baseUrl","hostname","requestUri","campaignUrl","meDomain","shortenedCampaign","campaignPath","encodeCampaignId","base62Encode","decodeCampaignId","base62Decode","toString","dexterURL","returnUrl","redirectUrl","first_compliance_Url","next_compliance_Url","getNonDiscoverable","discoverable","serializeCampaignToServer","campaignData","alwaysIncludePan","serializedData","campaign_type","amount_type","background_image","background_image_filename","background_pan","description","postal_code","end_date","toISOString","goal","gradient_color","title","share_progress","share_contributors","share_contributions","pledge","non_discoverable","categories","category","daysUntilToday","startDate","daysFromTo","daysFromToday","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","userTxnExpiryTime","getTime","set","stringify","expires","FINISH_IFRAME_SEND_SUCCESSFULLY","DEFAULT_STATE","loading_done","iframe_loading","sending_iframe","send_successful","send_done","gs_bypass","search","INFLATE","inflateUserTxns","dispatch","getState","setTimeout","list","user_txns","getHtmlElement","documentElement","htmlElement","getMessageFormat","createFormatCache","IntlMessageFormat","language","lang","split","replacerWithCountThreshold","values","threshold","overflowValue","match","word","messages","i18nBlacklist","contextId","stringId","i18nBase","messageContext","message","reduce","msgs","plmessage","KEY_REGEXP","newStringId","pluralizeMessage","format","getI18n","translation","arguments","item","props","ReactDOMServer","renderToStaticMarkup","dangerouslySetInnerHTML","__html","i18n","getI18nBase","getTranslatedCategoryList","listItem","label","sortKey","primaryText","sort","catA","catB","isValidCategory","getCategoryLabel","campaignCategoryValue","categoryLabel","getCategoryDefaultCover","categoryList","selectedCategory","getMainCategory","crowdfunding_category_key","filterDepreciatedCategory","isNewCategoryEnabled","isNaN","sortCategory","a","b","localeCompare","CROWD_FUNDING","PUBLIC_MONEY_POOL","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","isGNCSelector","isMoneyPoolSelector","getCampaignCategorySelector","getPersonalizationStudioBannerSelector","personalizationStudio","banner","getAllowEntryBannerSelector","isMoneyPool","bannerIcon","bannerButtonText","bannerLink","bannerTitleText","initialState","isLoading","buildTransaction","config","parseFloat","Number","transaction_details","anonymous","contributor_name","contributor_id","payer_id","note","note_to_payee","createDNWTransaction","hasFullPageDonationRedirect","setIsLoading","routes","method","token","Donation","Checkout","onComplete","onCompleteResponse","sender","createDNWTransactionSuccess","full_name","catch","createDNWTransactionFailure","renderTo","prevTxnCount","CREATE","DELETE","SET_DATA","CAMPAIGN_CREATED","FINISH_CHIP_IN_SUCCESSFULLY","FINISH_WITHDRAW_SUCCESSFULLY","SET_TXN_LIST","resetExpiration","persistExpiresAt","setInCampaign","startRemoteOperation","finishRemoteOperation","failedCampaignRemoteOperation","create","campaignType","owner","current_user","primary_currency_code","npoCharity","setData","parseInt","share_amount","createRemotely","serialize","newId","console","updateRemotely","returnValue","existingKeys","colocate","preview","can_chip_in","_get","background_thumbnail_image","updateData","deleteRemotely","deleteCampaign","SHOW","HIDE","show","hide","reducer","START_FUNDING_SOURCES","FINISH_FUNDING_SOURCES","FAILED_FUNDING_SOURCES","setFundingSources","getFundingSources","campaignCurrency","fundingSources","reducedSources","source","balance","failedRemoteOperation","onUpdateQueryParams","urlData","query","updateQueryParams","toastId","combineReducers","routing","routerReducer","form","operatingRemotely","newTxns","txns","transactionSummary","current_value","total_amount","net_amount","total_available_balance","organizerUpdate","organizerUpdateList","items","totalOrganiserUpdates","total","updatedData","ins","fou_id","newList","previousList","organizerUpdateData","udpatedList","updatableList","newActvities","activitiyList","activities","start_date","can_donate","nonprofit_id","INFLATE_USER_TXNS","totalInflatedAmount","sum","totalMoneyBoxInflatedAmount","LOCATION_CHANGE","contributionsCount","totalTransactions","total_number_of_contributions","total_number_of_transactions","txn_count","newTxn","paymentId","pending","owner_chip_in","contributor_photo","photo","send_iframe","iframe_error","payment_id","coming_soon_dialog","visible","has_campaigns","server","isReturningFromWallet","queryParams","dnw_transaction","nop","locality","flags","device_info","links","user_config","features","group_features","social","categoryData","can_pledge","rampdown","can_guest","isContributionEligible","preloadSendValues","isEnrolledInCFPBRamp","geo","toast_notification","PAGE_NAMES","EVENT_NAMES","getCurrentCampaignId","pathname","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","middleware","routerMiddleware","browserHistory","thunkMiddleware","next","lastPathName","fptiPageName","sanitizePathnameForFpti","decodedCampaignId","isCrowdfundingCampaign","flowTag","trackCPL","appendPath","basepath","appendage","glimpselessRoute","glimpseName","rx","RegExp","glimpseRoute","currentGlimpseName","subPathString","getStepName","glimpseRouteIndex","findIndex","path","assertInitialStep","flowName","initialStep","nextState","stepName","assignActionToRouterParams","params","HeaderImage","this","headerComponent","styleName","clsx","isWideView","React","Component","cssModules","styles","allowMultiple","tabbedDisabledNodes","disableTabs","node","getElementsByTagName","decendant","tabIndex","getSiblings","siblings","sibling","nextSibling","isWebkit","bodyScrollY","disableBodyScrollability","modalNode","nodes","siblingNodes","scrollY","prototype","call","transform","fixedNodes","querySelectorAll","i","fixedNode","xform","originalTransform","classList","add","disableTabsForNodes","enableBodyScrollability","remove","scrollTo","getScrollDist","elem","offsetParent","offsetTop","pageYOffset","scrollToTop","Tweenable","tween","from","x","scrollLeft","y","scrollTop","to","duration","easing","step","currentState","finish","ENTER_KEY","Modal","onClose","container","event","keyCode","which","handleClose","addEventListener","onKeyUp","removeEventListener","registerForEscKey","glimpse","setAttribute","unregisterForEscKey","removeAttribute","progressPercent","showProgressBar","isPadding","Background","background","hasTopPart","leftHeader","centerHeader","showClose","ref","aria-modal","role","aria-label","className","showSpinner","showHeader","data-autofocus-inside","hideTopWithoutHeader","onClick","onKeyPress","max","size","children","showIcon","animate","BackButton","data-pa-click","currentAnimationFrame","ModalWizard","modal","attempts","allStaleElements","getElementsByClassName","removeStaleClass","successCallback","_step","confirmNavigation","result","router","goBack","newProps","child","Children","only","newChild","movingForward","hideClose","hideBack","handleBack","transitionNameSuffix","transitionNames","enter","enterActive","leave","leaveActive","transitionName","transitionEnterTimeout","transitionLeaveTimeout","component","cloneElement","onScrollTop","handleScrollTop","stepRef","withRouter","connect","lerp","start","inverseLerp","Confetti","canvas","MAX_ROUNDS","maxRounds","NUM_ATOMS","numAtoms","ATOM_SPEED","atomSpeed","FADE_START","fadeStart","FADE_END","fadeEnd","context","getContext","width","offsetWidth","height","offsetHeight","atoms","Atom","ry","sx","sy","color","r","g","round","opacity","draw","cntxt","beginPath","fillStyle","arc","PI","fill","loop","min","update","clearRect","render","requestAnimationFrame","getUnsafeRandomNumber","random","t","initialize","cancelAnimationFrame","confetti","trackFPTI","eventType","updateState","order","charityName","charityId","fptiPayload","organizerUpdateState","organizerUpdateTotal","stateValue","glimpseHistories","firstInGlimpse","trackEnter","getLocationGlimpse","trackChange","prevState","historyStack","stackItemIndex","slice","forward","exitGlimpse","routePath","manageBackForNewTab","currentPathName","endsWith","go","addGlimpselessRouteToHistory","history","initial","isForward","EditGlimpse","reloadTransactions","getRoutes","routeName","errorObject","isDelete","goalReached","progressValue","SVG","viewBox","xmlns","d","stroke","strokeLinecap","strokeLinejoin","fillRule","ICON_SIZES","normal","big","huge","Icon","IconSVG","disableFill","Rocket","People","strokeColor","iconSize","IconCircle","FlatProgress","percentage","totalAmount","goalAmount","isInteger","amountOrPercentage","displayTotalAmount","amountOrPercentageContentKey","titleIcon","showProgress","compact","showPercentage","strong","Alert","NoCurrencyAlert","currencyUrl","paypalDomain","target","ToastContainer","delayTime","setState","isSuccess","zIndex","campaign_balance","moneyboxAmount","netAmount","leftAlignFlag","as","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","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","src","icon","buttonType","svgIconComponent","initials","backgroundColor","generic","getInitials","fullName","splitName","firstName","lastName","toUpperCase","campaignOwner","showInitials","profile_photo","ExpandableParagraph","open","detailsText","scrollHeight","updateHeight","handleResize","lineHeight","fontSize","lightTextStyleName","lightLinkStyleName","lightText","lightLink","detailsClass","buttonText","detailsStyle","detailsTextStyle","showMoreButton","maxRows","assign","WebkitLineClamp","titleText","getHash","input","hash","len","charCodeAt","i18nActivity","ActivityRow","uniqueNumericId","amountStyleName","amountSign","subjectName","activityType","avatarIcon","getAvatarBackgroundColor","CrowdfundingActivity","transactionId","txn_id","activitiesCount","activityItem","credit_txn_id","handleFPTI","OrganizerUpdateDetail","organizerUpdateRow","postUpdateUrl","enableEditButton","truncateDescription","truncateSubject","isDonerView","eventName","time_created","data-testid","subject","text","edited","RouterLink","dataTestId","UpdateRow","showLatest","row","Pictograms","svg","alt","cdnHost","classname","viewpostUpdateUrl","organizerUpdatesCount","secondary","iconComponent","getStore","worldReady","DateTimeFormat","timezone","formatMessage","contentId","formatOptions","MessageFormat","canChipIn","useContext","WorldReadyContext","badgeType","badgeContentId","lg","md","xs","leftIcon","CrowdFundingCampaignHeader","logo_url","profileImage","creatorName","categoryName","showDaysRemaining","getOwnerComponent","Fragment","poolName","getCharityNameComponent","getCategoryComponent","ownerName","business_name","givenName","first_name","surname","last_name","generateCategoryName","CampaignHeader","Manage","hasMoneybox","onTransfer","preventDefault","getFPTITags","onDonate","currentTarget","canDonateGNC","canPledge","currentValue","hasChippedIn","hasCurrencyBalance","loadingActivities","isOrganizerUpdatesEnabled","isCharity","manageCampaignUrl","editCampaignUrl","shareCampaignUrl","pledgeCampaignUrl","showUpdateSuccess","fptitag","data-nemo","ftpiTag","handleTransferClick","disabled","handleDonateClick","screenReaderText","canChipInAndCanDonate","is_owner","dnw_payment","has_currency_balance","isDNWPayment","transferCampaignUrl","Activity","moneyBoxCurrency","moneyBoxAmount","url","CharityCard","card","DateInputBox","useState","initialValue","selectedDate","setSelectedDate","isCalendarVisible","setCalenderVisible","handleSelection","useEndOfDay","useEffect","onBlur","calendarElm","onSelection","dataNemo","errorText","evt","overflow","onFocus","calendar","onShowCalendar","CrossFadeTransition","normalizeImage","dataUrl","toWidth","toHeight","normalizeImageSize","mimeType","callback","img","createElement","onload","changed","ctx","resizeWidth","resizeHeight","EXIF","getData","exifdata","Orientation","drawImage","toDataURL","isValidImageFileType","fileType","ImageUploadField","stopPropagation","click","dropZone","current","fileSelectEvent","readFiles","files","file","fileReader","FileReader","onImageLoad","onLoadEvent","fileSignature","str","raw","atob","hex","base64ToHex","onError","prevStage","dynamicClass","onChange","restrictedTotalSize","restrictedSize","normalizedUrl","readAsDataURL","dataTransfer","createRef","multiple","noDragEventsBubbling","accept","onDrop","handleDragDrop","onDragEnter","handleDragEnter","onDragOver","handleDragOver","onDragLeave","handleDragLeave","getRootProps","getInputProps","Cropper","imgSrc","cropper","setCropper","image","setImage","initialZoom","zoom","setZoom","initialRotate","rotate","setRotate","updatedCropper","getCroppedCanvas","updateImageData","zoomTo","handleZoomIn","handleZoomOut","direction","rotateTo","handleRotate","span","offset","onImageRemove","initialAspectRatio","viewMode","cropBoxResizable","cropBoxMovable","responsive","autoCropArea","checkOrientation","onInitialized","ready","cropend","detail","ratio","guides","dragMode","cropperProps","defaultProps","mime","quality","croppedCanvasProps","onDiscard","onCompleted","CrowdFundingImageAdjust","onImageChange","Strip","styleNames","responsiveStyle","isFullscreen","isResponsive","customStyle","backgroundImage","backgroundPosition","backgroundPan","customStyleInput","staticHeight","gradientColor","stripRef","ImageFileField","handleOpenFileDialog","display","handleFileSelect","CrowdFundingImagePreview","pan","Image","imageWidth","imageHeight","previewWidth","strip","previewHeight","previewZoom","imageInput","val","refreshImageSize","panStart","lastAbsolutePan","remainingHeight","absolutePan","deltaY","relativePan","onPanChange","onPanStart","handlePanStart","onPan","handlePan","onPanEnd","handlePanEnd","recognizers","tertiary","handleImageChangeIntent","handleImageChange","FILE_INVALID_TYPE","FILE_TOO_LARGE","FILE_TOO_SMALL","TOO_MANY_FILES","CrowdFundingCoverImage","uploadError","fields","backgroundImageFilename","openFileDialog","imageLoadError","errorCode","errorCodeMapping","mapErrorToContent","showDoneButton","showTitle","showPreviewComponent","handleImageLoad","handleImageRemove","handleImageUploadError","getErrorMessage","PayPalHeader","navigation","MoneyPoolHeader","handleClick","fetch","clickUrl","querySelector","bindings","banner_link","components","HeadingText","jsx","CrowdfundingBanner","uri","impressionUrl","sysColorPrimaryContrastHover","fluid","isLoggedIn","handleHelpNow","cta","RenderHeader","headerContent","content","contentLoggedOut","RenderFooter","footer","footerContent","localeCountry","flagHref","toLowerCase","CrowdfundingPage","showBanner","allowEntryBanner","isPreview","contentStyles","showFooter","i18nCharity","CampaignDetails","details","tab_layout","titleStrong","creatorFullName","supportingCharityName","creatorFullNameStyle","supportingCharityNameStyle","customClass","properties","ChipInButton","noCurrencyBalance","LinkElement","classes","small","reversed","linkProps","fullPageRefresh","chipInHref","Link","is_p2p_enabled","hasCurrencyBalanceSelector","origin","intent","redirect_url","sendMoneyText","isOwner","isOwnerSelector","MockText","PublicContributionRow","bodyTextStyleNames","isPledge","contributor","contributorName","minHeight","formattedDate","removeExistingCommentFlag","UnboundPublicContributionsList","goalRemaining","daysRemaining","hideChipIn","shouldShowCallToChipIn","contributionArray","unshift","ownerId","contributionList","addPledgeToContributionList","ChipInCTA","attentionMessage","reveresed","showTxnsDates","formattedAttention","txnCount","removeExistingComment","CrowdFundingTabLayout","selectedTabIdx","organizerUpdateItem","dataset","CLICK_NAME","contributionCount","tabs","panelId","tabHandler","tabId","updatesComponent","TabLayout","CountDown","detailDaysFromTodayState","datetime","isShowingDetail","updateSeconds","prevProps","updateCountDown","interval","intervalId","setInterval","cdItem","time","timeFormat","defaultFormat","separator","getTimeFormat","showRemainingInDetail","showRemainingInDays","clearInterval","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","isMobile","showFacebook","showMessenger","showTwitter","showWhatsApp","showEmail","showSms","ClipboardSharingButton","isCopied","onShowToast","enabled","copyText","copyBoxTextRef","copyBoxText","clipboard","Clipboard","copyLink","on","handleCopySuccess","destroy","handleKeyUp","showSubtext","stylename","i18n2","readOnly","position","left","aria-hidden","ClipboardSharing","handleIconClick","PropTypes","bool","string","socialNetwork","popupWidth","popupHeight","top","shareText","fbUrl","encodeURI","whatsappText","whatsappUrl","featureType","clientWidth","clientHeight","shareURLByMessenger","shareByTwitter","shareByEmail","shareBySMS","link_name","opt_sel","EmailSharing","TwitterSharing","FacebookSharing","MessengerSharing","WhatsAppSharing","SmsSharing","ShareButton","propsToPass","isSheetOpen","setIsSheetOpen","isCopySuccess","isOpen","onHideToast","divider","option","DonateButton","canDonate","mapDispatchToProps","FirstChild","toArray","CopyBox","showTooltip","htmlFor","ShareCampaignCompact","ShareCampaign","ReportLink","currentUserCountryCode","getReportPoolLink","handleReportPoolClick","TRANSITION_DURATION","appear","appearActive","ModalAnimations","transitionAppear","transitionAppearTimeout","PpgfInset","sysColorBackgroundMain","currentPage","setCurrentPage","handlePageChange","donationDeliveryPolicyUrl","steps","minWidth","step1","step2","step3","textAlign","maxHeight","renderBig","maxWidth","itemClassName","renderItem","justifyContent","numOfVisibleItems","onPageChange","renderSmall","CharityDetailsModal","IconUrl","isCountryCodeUS","showGivingFundTermsModal","onGivingFundTermsModalClose","noPadding","noGutters","align","StandardError","backButton","onTryAgain","iconType","ICON_NAME","ICON_URL","getCdnHostName","isShowingImage","iconClass","renderIcon","subtitle","showButton","handleButtonClick","extraContent","i18nErrors","i18nBack","PaymentsTokenSheet","reload","paymentsTokenError","hostName","isDonationTokenMerchantUnableReceiveMoney","hideTitle","containerClassName","mobileFixedHeight","center","COUNTRY_CODES","getDisclaimerVariables","isGnc","PageSpinner","pageLoading","CanDonateOrChipIn","formattedEndDate","donateDisabledWrapper","donateDisabledText","CrowdfundingDetailView","gnc","modalRoot","isLoadingDNWTransaction","isEdit","clearDNWTransactionError","hasMarketplaceTreatment","isPPGFCharity","hasPPGFIntegrationIdentifier","showFindMoreLink","ReactDOM","createPortal","whiteBg","handleClickFindMore","data-test","level","defaultCategoryCover","inverse","renderReportingLink","invokeGivingFundTermsModal","editedCampaign","mainCategory","getStagingHostName","edit","StandardDialog","dialogStyles","okButtonTitle","onOk","onQuit","closeButtonTitle","formUtils","errors","field","touched","active","anyInactiveFieldsTouchedWithError","displayName","domOnlyProps","autofill","onUpdate","valid","invalid","dirty","pristine","visited","autofilled","maxLength","required","atMost","atLeast","mergeErrors","err1","err2","combine","validators","validator","getFormError","hasError","CurrencyInputBox","isControlledComponent","commonProps","maskOptions","scale","disableCents","currencyType","onAccept","unmaskedValue","typedValue","autoComplete","i18nGoalAmount","getGoalAmountTitle","formattedMaxGoalAmount","maxGoalAmount","EditMain","charCount","editedCampagin","showBackDialog","showDeleteDialog","trackEvents","getFTPITags","formValues","saveEvent","onSave","editBack","onToggleToast","newCampaign","handleSubmit","onSubmit","handleDialogClose","handleQuit","handledeleteDialogClose","handleDeleteOk","ended","minRows","showCharacterCounter","maxCharacters","isAndroid","showDelete","handleDelete","handleModalClick","handleModalClose","dateFormatValidator","dateString","normalizeDate","maxDaysValidator","fieldName","maxDays","dateInQuestion","maxTime","endDateValidators","getMinMaxAmount","i18n_end_date","stringifyContributionPrefs","stringifyPublicTrackingPrefs","octal","reduxForm","enable_new_category","categoryQueryParam","formattedMinGoalAmount","min_amount_donation","maxCharLength","maxdays","now","minMaxAmount","validate","initialValues","contribPrefs","tracking","deviceOS","onReopen","showComingSoon","EditError","errorCodeMappping","UNDER_REVIEW_ERROR","INVALID_IMAGE","isCrowdfunding","subTitle","sendEnsightenEvent","Bootstrapper","ensEvent","trigger","CFPB_STRING_ID_EXTENSIONS","productSubscription","toCFPBStringId","productSubscriptions","Pledge","onPledge","postPledge","nextPathname","minAmount","autoFocus","destroyOnUnmount","touchOnChange","touchOnBlur","maxAmount","max_amount","object","formattedPledgeAmount","PledgeSuccess","getMoneyPoolTNCLink","base_url","CountryBlocked","money_pool_creation_blocked","crowdfunding_enabled","titleJSX","tc_link","crowdfunding_enabled_subtitle","countryName","button","country_name","CampaignEligibility","isCreationLimitReached","CIPStatusCode","verificationFlow","dialog","ctaInfo","handleAnalyticsEvent","cipStatusObj","CIPEligibility","CIPStatus","getCIPStatus","nextStep","GENEROSITY_NETWORK_FUNDRAISER_CHARITY","GENEROSITY_NETWORK_FUNDRAISER","getDexterReturnUrl","relativeUrl","ShareCampaignTextarea","errorMsg","handleChange","copyValidation","FeedbackLink","function","activeFeedbackName","reloadQualtrics","uniqueFeedbackName","feedbackLink","CrowdfundingShare","campaignCreated","creationError","onPublish","enable_ces_link","hideLogo","hideButton","isPublishPath","isShowingCESLink","hasOwnProperty","shareDescription","poolUrl","preventNavigation","ComponentWithPreventedNavigation","shouldPrevent","setRouteLeaveHook","routerWillLeave","nextLocation","urlWithMeDomain","shareMessage","expiryDate","TransferReviewBox","showAmount","DeleteReview","onDelete","money_box_amount","showAlert","Transfer","transferAll","onTransferAll","transferAmount","handleTransfer","handleTransferAllClick","shouldAutoFocus","campaignName","change","withdrawAmount","withdrawRemotely","TransferComplete","nextProps","transferError","withdrawlUrl","getValues","transfer","onDone","isCampaignOwner","indexRoute","getComponent","EditMainCrowdfunding","onEnter","inPreview","childRoutes","ManageCrowdfunding","prevStep","onLeave","deleteOrganizerActivity","setDeleteDailog","getOrganizerUpdate","searchParams","setOrganizerUpdateList","deleteOrganizerUpdate","removeOrganizerUpdate","createOrganizerUpdate","addOrganizerUpdate","editOrganizerUpdate","updatableInstance","modifyOrganizerUpdate","DeleteUpdateActivity","PostUpdate","organizer_update_id","goToSharePage","errorSubject","auocomplete","organizerUpdateId","filterorganizerUpdate","organizerUpdateItems","postupdate","campaignError","formattedPayload","op","fetchOrganizerUpdateList","ShareUpdateActivity","sm","organizerName","getUpdateActivityShareDetails","PostUpdateShare","PostUpdateError","isLimitReachedError","primary","ViewUpdatesActivity","prop","list_count","donerViewUrl","trackPostUpdateEvent","ceil","isDonerEventName","selectedOrganizerUpdate","isOwnerView","SendGlimpse","currentPoolPath","onUnmount","inSuccess","Separator","Checkbox","smallText","checked","NON_ASCII_TO_ASCII_AMOUNT_CHAR_MAP","normalizeAmountInput","char","CurrencyTextBoxRegular","inputElement","getInputElement","activeElement","formatValueWithGriffin","autoResize","getInput","decimalDot","amountVal","getAmountVal","isInputEmpty","allowedInputRegex","normalizedNumber","normalizeNumber","validateFormat","isInputValid","restoreUnformattedValue","newValue","prevValue","showCurrency","showIntlCurrencyCode","unformattedValue","numZeroes","majorDigits","decimalDigits","minorDigits","minorPart","zeroFractionalString","repeat","focusOnMount","focus","inputProps","onKeyDown","handleFocus","handleBlur","inputClassName","CurrencyTextBox","decSep","Money","valueFormatted","currencySymbol","symbolBeforeValue","editable","placeholder","oneOfType","array","InputError","showAsError","nonErrors","red","centered","SubmitLink","amountTypeToLabel","amountType","amountI18nlabel","SendAmount","guestP2PParams","nextRoute","isGuest","contributorCommentDisabled","gdpr","tcLink","formattedAmount","infoLabel","titleKey","anonymousKey","gdprContent","guestRoute","errorLabel","contributor_comment_disabled","minamount","TextBox","defaultValue","InputTagName","alwaysShowErrors","mask","MaskedInput","pipe","guide","keepCharPositions","disableChange","multiline","AutosizeTextarea","rows","cols","atmInput","inputMode","errorTransitionNames","inputStyles","empty","isDisabled","buttonClassNames","shouldDisableNextBtn","descriptionKey","handleRedirect","send","SendNote","PATH_BASE","SendSuccess","goalName","SendReview","goingBack","parseIFramePayload","statusMessage","disableIframeBack","onIframeMessage","iframe","contentWindow","onpopstate","contentDocument","iframeDocument","getIFrameDocument","transferPage","overpanels","overpanelHeights","el","maxOverpanelHeight","pageHeight","iframeHeight","handleIframeMessage","iframeHeightInterval","setIframeHeight","onInit","sendURL","bypassToGS","anon","log","generateSendURL","gsBypass","loadingDone","contributeKey","sendDone","iFrameError","escapeHTML","ownerDisplayName","sendFormData","loadingIFrame","sendForm","finishIFrameSendSuccessfully","_","toggleLoading","CantChipIn","blockCampaign","getCampaignType","hasCurrency","isGN","isMobilePledgeRoute","childRoute","hasSendChildRoute","successUrl","homeInfoParams","cipNotVerified","GuestGlimpse","ChipInGlimpse","DropDown","data-label-content","formField","MoneyTextBox","ChipInAmount","onLoadFundingSources","funding","fsLoading","fundingSourcesError","hasBankAccount","handleAddBankClick","onChipIn","fs","last4","firstFS","chipInRemotely","ChipInComplete","ChipInSuccess","NoChipIn","PayPalLogo","logoUrl","LoginButton","loggedIn","logoutUrl","returnPath","stayOnPageOnLogout","TopBar","dark","inGrid","getLogoType","ProfileHeader","showHubLink","fromPreview","PayPalPage","useWhiteBg","CampaignTitle","WhiteBox","RoundedProgress","meter","endAngle","normalizedValue","lineCap","lineWidth","gradient","createLinearGradient","addColorStop","strokeStyle","toFixed","updateMeter","Delay","period","clearTimeout","timeoutToken","refresh","CampaignInfo","daysPassed","historyKey","daysRemainingElement","hasGoal","hasProgress","hasDaysPassed","hasContributionsCount","goalFormatted","historyString","getHistoryString","reached","pledgeFormatted","showPledge","delayed","defaultStyle","spring","notExpired","FixedGradient","overscrolled","root","handleScroll","shouldShow","data-fixed","CampaignAction","showPreviewDialog","handlePreviewDialogClose","showManageButton","showFixedGradient","handleChipInClick","cx","cy","xmlnsXlink","xlinkHref","onClickOverride","isDefaultPrevented","shareURLByFacebook","shareByWhatsApp","isDesktop","Share","FadeOutLink","handleBodyTransitionEnd","propsToTransfer","Start","WhiteHeader","fixedDivHeight","fixedDiv","CampaignPage","whiteHeaderElement","canCreate","canManage","alertElement","showManage","customProfileHeader","onChipInClick","handleShareClick","canManageSelector","canManageVenice","moneypools_country_blocked","hasBalance","onShowComingSoon","Campaign","GENEROSITY_NETWORK_URL","CampaignNotFound","WARNING_SVG_URL","has_marketplace_treatment","LeftSideHubCampaign","leftSideHubCallback","getCampaignTotalValue","moneyBoxAmountFormatted","endDateFormatted","dataTest","selectedCard","injectWorldReady","EmptyHub","isOpenTab","CreateCard","data_nemo","cartIcon","Content","GENEROSITY_NETWORK","GENEROSITY_NETWORK_CHARITIES","PoolType","showErrorDialog","isCampaignLimitReached","limitDialogToggle","userHasCampaigns","glimpseOrRoute","gnHref","gnRoute","charityCampaignSubtitle","hasDirectIntegrationIdentifier","gncHref","trackGNEvent","CreateTypeHeader","PreviewHeader","toPath","i18nError","i18nErr","blockType","email","shouldShowButton","CREATION_BLOCKS","byAccountType","byUnconfirmed","sysColorPrimaryMain","byGNAccountRestricted","genericError","currencyMismatchError","CreateFundraiserError","byKillSwitch","byCountry","byAccountRestricted","ModalWithAnimations","CreatePage","showCloseDialog","currentStep","stepToEventNameMapping","nonprofit","handleDismissEvents","handleCloseDialogOk","referrer","WrappingComponent","prevStepName","isInitialState","animateModal","getErrorComponent","moneypoolStep","crowdfundingStep","closeDialog","ZeroFundraiser","isWide","showImageHeader","getBlockType","enable_crowdfunding_business_account","allow_creation","blockCreationByCurrencyMismatch","ZeroFundraiserOrSkeleton","ManageAllPage","defaultSelectedCampaigns","fetchTransactions","_isEmpty","transactionsCall","fetchTransaction","fetchActivities","all","smoothScrollPolyfill","polyfill","managePageCallback","segmentIndex","pageSpinner","getMaxLimitReachedSelector","CreateType","moneypools_blocked","CountryBlockedError","INITIAL_STEP","Discoverable","hasTooltip","tooltip","windowId","onOpen","handleOpenTooltip","i18nStory","AUDIENCE","CrowdfundingBasics","untouchAll","disclaimer","shouldDisplayDiscoverable","shouldDisplayDiscoverableTooltip","fptiPayloadDiscoverable","nonProfitDisclaimer","helperText","copy","i18nNonProfit","initialDate","defaultDate","setDate","fundraiserDisclaimerKey","isPricingDisclaimerEnabled","dateAtLeast24HrsFromNow","has_gn_discoverable","has_gnc_discoverable","termsAndConditionsLink","has_discoverable_tooltip","CharityTile","selectCharity","tabindex","TypeAheadSearch","suggestionsNode","contains","showSuggestions","userInput","isCampaignLoading","debounceSearch","filteredSuggestions","getSelectedItem","closeSuggestions","datasource","highlightedSuggestionIndex","loadingElement","onItemClick","getItemProps","getListProps","getLoadingElement","suggestionList","suggestion","area_selected","aria-selected","setItemDecoration","fns","fn","rest","eventHandlers","callAllEvents","onDocumentMouseDown","delay","userText","getOptions","getTemplate","Carousel","carouselContainerCss","setSize","useLayoutEffect","updateSize","innerWidth","innerHeight","useWindowSize","elementsPerPage","setElementsPerPage","currentIndex","setCurrentIndex","animationX","setAnimationX","carouselItemWidth","setCarouselItemWidth","wrapper","isEmpty","itemsPerRow","startIndex","getCurrentGroup","moveToLeft","itemWidth","onMoveCarouselIndex","isBack","visibility","right","i18nBaseTitle","NonProfitPage","search_all","page_size","getResponse","address","city","featuredCharities","slogan","renderTiles","getFeaturedCharities","TipBox","PoolDescription","initializeForm","handleNextClick","randomImgGen","random1","random2","regenRandom2","sysColorPrimaryMainActive","coverForSelectedCategory","checkIfUploadedImg","selectedPhoto","setSelectedPhoto","isDefaultSelected","backgroundSize","cursor","handleSelectCover","borderRadius","i18nBasic","CrowdFundingCover","isPhotoModal","photo_uploaded_flag","submitCoverPage","submit","coverImage","imageUploadClick","handlePhotoModalClose","handleCoverSelect","termsAndConditionLink","handleTcClick","closeButtonProps","container_class","handleAddPhoto","shouldDisplayTipBox","encodedCampaignId","cipStatus","createCampaignEligibilityCheck","prevSteps","CrowdfundingStory","CrowdfundingNonprofit","CrowdfundingCover","PoolPublish","guest","chipIn","excludeKeys","getCampaignCount","hubRoute","createRoute","createCrowdfundingRoute","queryToken","finally","CrowdFundingDetailsPage","postUpdate","campaignRoute","ComingSoonDialog","SessionTimeout","sheetTimer","sessionTimer","startSheetTimer","resetTimerTimeout","confirmTimeout","isEuCountry","resetTimer","startSessionTimer","isSCA","startErrorTracking","onerror","line","column","stack","userAgent","navigator","renderMainView","WorldReady","load","PoolsRouter","syncHistoryWithStore","poolsRouter","worldReadyLocale","theme","createStore","applyMiddleware","setupComplete"],"mappings":"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","file":"js/app.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"buttonContainer\":\"share_button-modules__buttonContainer___3Lp_r\",\"listContainer\":\"share_button-modules__listContainer___2k5QD\",\"facebookColor\":\"share_button-modules__facebookColor___1y2fE\",\"twitterColor\":\"share_button-modules__twitterColor___1LkeW\"};","var map = {\n\t\"./\": 311,\n\t\"./common\": 252,\n\t\"./common.js\": 252,\n\t\"./index\": 311,\n\t\"./index.js\": 311,\n\t\"./msgeo\": 777,\n\t\"./msgeo.js\": 777,\n\t\"./pp_cn\": 417,\n\t\"./pp_cn.js\": 417\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 = 1264;","// 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\"};","let _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 GRIFFIN: 'griffin',\n NAVIGATION: 'navigation',\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 WALLET_SETTINGS_SERV_FAIL = 'WALLET_SETTINGS_SERV_FAIL'\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 // all experiments created with Elmo, unless otherwise stated\n MONEY_POOLS_MAIN: {\n TREATMENT: 'money_pools_main_treatment',\n CONTROL: 'money_pools_main_control',\n },\n P2P_GUEST_FF: {\n TREATMENT: 'p2p_guest_friends_and_family_treatment',\n CONTROL: 'p2p_guest_friends_and_family_control',\n },\n CFPB: {\n // NOTE: these are from PXP\n TREATMENT: 'cfpb_paypal_cash_us_treatment',\n CONTROL: 'cfpb_paypal_cash_us_control',\n },\n MONEY_POOLS_CROWDFUNDING: {\n TREATMENT: 'Trmt_money_pools_crowdfunding_1',\n CONTROL: 'Ctrl_money_pools_crowdfunding',\n },\n CROWD_FUNDING_GUEST_DONATION: {\n TREATMENT: 'Trmt_crowdfunding_guest_donation_1',\n CONTROL: 'Ctrl_crowdfunding_guest_donation',\n },\n AUCIP: {\n TREATMENT: 'PAYPALWALLET_FEATURES_RAMP_TRMT',\n CONTROL: 'PAYPALWALLET_FEATURES_RAMP_CTRL',\n },\n GENEROSITY_NETWORK_IMAGE_SCAN: {\n TREATMENT: 'Trmt_generosity_network_image_scan',\n CONTROL: 'Ctrl_generosity_network_image_scan',\n },\n GENEROSITY_NETWORK_DNW_INTEGRATION: {\n TREATMENT: 'Trmt_generosity_network_dnw_integration',\n CONTROL: 'Ctrl_generosity_network_dnw_integration',\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}\n\n// We use an experiment to check whether the guest user can do guest F&F\n// and we'll check this list of countries to see if the pool owner can receive\n// guest contributions. Elmo was not allowing us to spoof the security context in\n// prod.\nexport const guestEnabledCountries = [\n 'US',\n 'AT',\n 'BE',\n 'CY',\n 'CZ',\n 'DK',\n 'EE',\n 'FI',\n 'FR',\n 'DE',\n 'GR',\n 'HU',\n 'IE',\n 'IT',\n 'LV',\n 'LI',\n 'LT',\n 'LU',\n 'MT',\n 'NL',\n 'NO',\n 'PL',\n 'SK',\n 'SI',\n 'ES',\n 'SE',\n 'GB',\n]\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 PUBLIC_MONEY_POOL: 'PUBLIC_MONEY_POOL',\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 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 PAYMENTS_TOKEN_DEFAULT_AMOUNT = '0'\n\nexport const INTEGRATION_IDENTIFIER_BY_COUNTRY = {\n AT: {\n CHARITY_TYPE: DIRECT_MODEL_ENROLLED,\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n AU: {\n CHARITY_TYPE: PPGF_ENROLLED,\n INTEGRATION_IDENTIFIER: PPGF,\n },\n BE: {\n CHARITY_TYPE: DIRECT_MODEL_ENROLLED,\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n CA: {\n CHARITY_TYPE: PPGF_ENROLLED,\n INTEGRATION_IDENTIFIER: PPGF,\n },\n DE: {\n CHARITY_TYPE: DIRECT_MODEL_ENROLLED,\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n DK: {\n CHARITY_TYPE: DIRECT_MODEL_ENROLLED,\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n ES: {\n CHARITY_TYPE: DIRECT_MODEL_ENROLLED,\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n FR: {\n CHARITY_TYPE: DIRECT_MODEL_ENROLLED,\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n GB: {\n CHARITY_TYPE: PPGF_ENROLLED,\n INTEGRATION_IDENTIFIER: PPGF,\n },\n GR: {\n CHARITY_TYPE: DIRECT_MODEL_ENROLLED,\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n IE: {\n CHARITY_TYPE: PPGF_ENROLLED,\n INTEGRATION_IDENTIFIER: PPGF,\n },\n IT: {\n CHARITY_TYPE: DIRECT_MODEL_ENROLLED,\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n LU: {\n CHARITY_TYPE: DIRECT_MODEL_ENROLLED,\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n NL: {\n CHARITY_TYPE: DIRECT_MODEL_ENROLLED,\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n NO: {\n CHARITY_TYPE: DIRECT_MODEL_ENROLLED,\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n PL: {\n CHARITY_TYPE: DIRECT_MODEL_ENROLLED,\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n PT: {\n CHARITY_TYPE: DIRECT_MODEL_ENROLLED,\n INTEGRATION_IDENTIFIER: DIRECT,\n },\n US: {\n CHARITY_TYPE: PPGF_ENROLLED,\n INTEGRATION_IDENTIFIER: PPGF,\n },\n}\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}\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/* ------------- */\n\nexport const QUALTRICS_GN_CREATION_FEEDBACKLINK =\n 'poolsnodeweb-generosityNetwork-creation-feedbacklink-aug2021'\nexport const QUALTRICS_GNC_CREATION_FEEDBACKLINK =\n 'poolsnodeweb-generosityNetworkForCharity-creation-feedbacklink-aug2021'\n\nexport const QUALTRICS_GN_CREATION_ACTIVE_FEEDBACKLINK =\n 'poolsnodeweb-generosityNetwork-creation-active-feedbacklink-dec2021'\n\nexport const QUALTRICS_GNC_CREATION_ACTIVE_FEEDBACKLINK =\n 'poolsnodeweb-generosityNetworkForCharity-creation-active-feedbacklink-dec2021'\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'\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\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 SESSION_TIMEOUT: 1 * MINUTE, // End session 1 minute after the sheet is displayed\n CONFIRM_TIMEOUT: 14 * MINUTE, // Show screen at 14 minutes\n RESET_TIMER_TIMEOUT: 5 * MINUTE, // Only reset once every 5 minutes\n CONFIRM_EU_TIMEOUT: 5 * MINUTE, // Show screen at 5 minutes for EU\n RESET_EU_TIMER_TIMEOUT: 2 * MINUTE, // Only reset once every 2 minutes for EU\n}\nexport const CONTRIBUTION_TRANSACTIONS_PER_PAGE = 10\nexport const ACTIVITIES_TRANSACTIONS_PER_PAGE = 5\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 { isDev } from './lib/deploy_env'\nimport { getJSONFromScript } from './lib/server_params'\nimport { createHandler as createNumberHandler } from 'griffin-paypal/number'\nimport { createHandler as createNameHandler } from 'griffin-paypal/name'\nimport { createHandler as createDateHandler } from 'griffin-paypal/date'\n\nexport function getGriffinRules() {\n return getJSONFromScript('griffin')\n}\n\nexport function getWorldReayRules() {\n return getJSONFromScript('worldReady')\n}\n\nconst rules = getGriffinRules()\n\nconst numberHandler = createNumberHandler(rules.clientMetadata)\nconst nameHandler = createNameHandler(rules.clientMetadata)\nconst dateHandler = createDateHandler(rules.clientMetadata)\n\nexport function getDefaultCurrencyCode() {\n return rules.defaultCurrencyCode\n}\n\nexport function getCountryCurrencyCodes() {\n return rules.countryCurrencyCodes\n}\n\nfunction getCurrencyFormatPart(parts, part) {\n return (parts.find(p => p.type === part) || {}).value || ''\n}\n\nexport function getCurrencySymbol(currency) {\n const parts = numberHandler.formatCurrency(\n { value: 0, currency },\n numberHandler.CURRENCY_FORMAT.parts()\n )\n return getCurrencyFormatPart(parts, 'symbol')\n}\n\nexport function formatAmount(value) {\n return numberHandler.formatNumber(value, numberHandler.NUMBER_FORMAT)\n}\n\nexport function formatPercent(value) {\n return numberHandler.formatNumber(value, numberHandler.NUMBER_FORMAT_PERCENT)\n}\n\nexport function formatMoney(\n currency,\n value,\n {\n removeTrailingZeros = false,\n showCurrencySymbol = true,\n hideCurrencyCode = false,\n } = {}\n) {\n if (value == null) {\n return ''\n }\n\n if (!showCurrencySymbol) {\n const parts = numberHandler.formatCurrency(\n { value, currency },\n numberHandler.CURRENCY_FORMAT.parts()\n )\n return parts\n .filter(p => p.type !== 'separator' && p.type !== 'symbol')\n .map(p => p.value)\n .join(getCurrencyFormatPart(parts, 'separator'))\n }\n\n const currencyFormat =\n shouldUseIntlFormat(currency) && !hideCurrencyCode\n ? numberHandler.CURRENCY_FORMAT_SYMBOLISOCURRENCY\n : numberHandler.CURRENCY_FORMAT\n\n if (removeTrailingZeros) {\n currencyFormat.minimumFractionDigits = 0\n }\n\n return numberHandler.formatCurrency({ currency, value }, currencyFormat)\n}\n\nexport function shouldUseIntlFormat(currency) {\n return getCountryCurrencyCodes().indexOf(currency) < 0\n}\n\nexport function isSymbolBeforeValue(currency) {\n const parts = numberHandler.formatCurrency(\n { value: 0, currency },\n numberHandler.CURRENCY_FORMAT.parts()\n )\n return (\n parts.findIndex(p => p.type === 'symbol') <\n parts.findIndex(p => p.type === 'value')\n )\n}\n\nexport function normalizeDate(\n dateString,\n options = { style: dateHandler.DATE_FORMAT_SHORT }\n) {\n return dateHandler.normalizeDate(dateString, {\n timeZone: getTimeZone(),\n ...options,\n })\n}\n\nexport function shortDatePatternLabel() {\n return dateHandler.dateInputMask().toUpperCase()\n}\n\nexport function shortDateInputMaskParts(\n options = { style: dateHandler.DATE_FORMAT_SHORT }\n) {\n return dateHandler.dateInputMask({\n parts: true,\n ...options,\n })\n}\n\nexport function shortDateInputPattern() {\n return rules.dateRules.shortDateInputPattern\n}\n\nexport function shortDateFormat() {\n return rules.dateRules.shortDateFormat\n}\n\nexport function shortDateRegex() {\n return rules.dateRules.shortDateRegex\n}\n\nexport function getInformalName(name) {\n return nameHandler.formatName(name, {\n style: nameHandler.NAME_FORMAT_INFORMAL,\n })\n}\n\nexport function getFullName(name) {\n return nameHandler.formatName(name, { style: nameHandler.NAME_FORMAT_FULL })\n}\n\nexport function getDecimalPrecision(currencyCode = getDefaultCurrencyCode()) {\n return rules.clientMetadata.griffin.number.currencyInfo[currencyCode].digits\n}\n\nexport function getDecimalSeparator() {\n return rules.decSep\n}\n\nexport function formatDateShort(date) {\n return formatDate(date, dateHandler.DATE_FORMAT_SHORT)\n}\n\nexport function formatDateExtraShort(date) {\n return formatDate(date, 'Md')\n}\n\nexport function formatDateMediumShort(date) {\n return formatDate(date, 'MMMd')\n}\n\nexport function formatDateMedium(date) {\n return formatDate(date, dateHandler.DATE_FORMAT_MEDIUM)\n}\n\n/**\n * Helper function to get timezone from griffin.\n *\n * Dev note: griffin and hub_campaing UTs fail when they run\n * locally and outside PST/PDT TZ because time is not set\n * Date uses not only local TZ but also time and the UTs\n * are thought over PST/PDT, therefore, isDev has been\n * added to allow UT to pass locally regardless of the developer's TZ\n *\n */\nexport function getTimeZone() {\n if (isDev()) {\n return 'Etc/UTC'\n }\n return (dateHandler && dateHandler.getTimeZone()) || 'Etc/UTC'\n}\n\nexport function formatDate(date, style) {\n if (!(date instanceof Date)) {\n date = new Date(date)\n }\n return dateHandler.formatDate(date, {\n timeZone: getTimeZone(),\n style,\n })\n}\n\nexport function postalCodeRegex() {\n return rules.postalCodeRegex\n}\n\nexport function validateFormat(value) {\n const normalizedNumber = numberHandler.normalizeNumber(value)\n if (value.length === 0) return true\n if (isNaN(normalizedNumber)) return false\n return true\n}\n","import { formatMoney } from 'client/griffin'\nimport { INSTRUMENT_EVENTS, INSTRUMENT_TAGS } from 'shared/shared_consts'\n\nexport const ANALYTICS_TYPES = {\n TRACK_CLICK: 'analytics/track_click',\n TRACK_IMPRESSION: 'analytics/track_impression',\n}\n\nconst noop = () => {}\nlet PAYPAL = window.PAYPAL\nlet emptyAnalytics = { recordClick: noop, recordImpression: noop }\nlet 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\nexport function paypalAnalyticsSetupCompleted() {\n if (_initialized) return // don't init twice\n if (!window.PAYPAL.analytics.instance) return // don't init if the analytic lib doesn't have a an instance yet\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 {\n event_name,\n charity_name,\n npid,\n flow,\n campaignId,\n dismiss_method,\n audience,\n } = payload\n trackClick({\n clickName: event_name,\n data: {\n event_name: event_name,\n product: INSTRUMENT_EVENTS.DW_GIVING,\n charityname: charity_name,\n crid: npid,\n flow: flow,\n campaign_id: campaignId,\n dismiss_method: dismiss_method,\n audience: audience,\n },\n })\n}\n\nexport function trackClick(payload) {\n if (!payload.data) {\n return\n }\n payload.data.flow =\n payload.data.flow ||\n (payload.data.charityname\n ? 'GENEROSITY_NETWORK_CHARITIES'\n : 'GENEROSITY_NETWORK')\n track(ANALYTICS_TYPES.TRACK_CLICK, payload)\n}\n\nexport function track(type, payload) {\n if (_initialized) {\n switch (type) {\n case ANALYTICS_TYPES.TRACK_CLICK:\n _trackClick(payload)\n break\n case ANALYTICS_TYPES.TRACK_IMPRESSION:\n _trackImpression(payload)\n break\n default:\n break\n }\n } else {\n _enqueueEvent(type, payload)\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.\nlet _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 let 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\nfunction _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}) {\n pageName = `main:pools:${pageName}`\n\n window.fpti.page = pageName + ':::'\n window.fpti.pgrp = pageName\n window.fpti.link = undefined\n window.fpti.cmpn_id = campaignId\n window.fpti.encr_rcvr_id = poolOwner\n window.fpti.erpg = erpg\n window.fpti.eccd = eccd\n window.fpti.flow = flow || window.fpti.flow\n window.fpti.contingency = contingency\n window.fpti.event_name = event_name\n window.fpti.charityname =\n charityname || charity_name || window.fpti.charityname\n window.fpti.crid = crid || npid || window.fpti.crid\n window.fpti.product = INSTRUMENT_EVENTS.DW_GIVING\n window.fpti.platform = INSTRUMENT_TAGS.WEB\n window.fpti.pool_id = campaignId\n window.fpti.campaign_id = campaignId\n window.fpti.error_code = error_code\n window.fpti.screen = screen\n window.fpti.error_desc = error_desc\n window.fpti.event_type = event_type\n window.fpti.status = status\n window.fpti.state = state\n window.fpti.count = count\n window.fpti.rank = rank\n window.fpti.update_state = update_state\n\n if (amount && currency) {\n let txn_amt = formatMoney(currency, amount, { removeTrailingZeros: false })\n window.fpti.txn_amt = `${txn_amt} ${currency}`\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","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 let loginUrl = `${baseLoginUrl}?\n\t\t\t\treturnUri=${encodeURIComponent(returnUri)}\n\t\t\t\t${showGuest ? '&intent=signin' : ''}\n\t\t\t\t${showGuest ? `&ctxId=${loginInfo.mayfly_key}` : ''}\n\t\t\t\t${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'\nimport Promise from 'bluebird'\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 let 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 { 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 first_compliance_Url = Array.isArray(redirectUrl) && redirectUrl[0]\n const next_compliance_Url = Array.isArray(redirectUrl) && redirectUrl[1]\n\n if (first_compliance_Url) {\n let url = next_compliance_Url\n ? `${first_compliance_Url}?returnUrl=${returnUrl}?next_compliance_Url=${next_compliance_Url}`\n : `${first_compliance_Url}?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}\n","import {\n INTEGRATION_IDENTIFIER,\n INTEGRATION_IDENTIFIER_BY_COUNTRY,\n NON_DISCOVERABLE,\n} from '../../shared/shared_consts'\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} currentValue - total value of contributions to pool\n * @param {number} pledge - total pledge made by pool creator\n * @reutrns {number} total value of campaign contributions including pledge\n */\nexport function getCampaignTotalValue({ currentValue = 0, pledge = 0 }) {\n return currentValue + 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\nexport function hasPPGFIntegrationIdentifier(countryCode) {\n return Boolean(\n INTEGRATION_IDENTIFIER_BY_COUNTRY[countryCode]?.INTEGRATION_IDENTIFIER ===\n INTEGRATION_IDENTIFIER.PPGF\n )\n}\n","import { getNonDiscoverable } from './campaign'\n\nexport function serializeCampaignToServer(\n campaignData,\n { alwaysIncludePan = false } = {}\n) {\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) serializedData.categories = campaignData.category\n else serializedData.category = campaignData.category\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","export function getHtmlElement() {\n return document.documentElement\n}\n","import React from 'react'\nimport ReactDOMServer from 'react-dom/server'\nimport { isEqual } from 'lodash'\n\nimport { getJSONFromScript } from './lib/server_params'\nimport { isLive } from 'client/lib/deploy_env'\nimport { getCountry, getLanguage } from 'lib/locale'\n\nimport IntlMessageFormat from 'intl-messageformat'\nimport createFormatCache from 'intl-format-cache'\n\nconst getMessageFormat = createFormatCache(IntlMessageFormat)\n\nconst language = getLanguage()\nconst country = getCountry()\n\nexport function getI18nMessages() {\n return getJSONFromScript('messages')\n}\n\nfunction replacerWithCountThreshold(values, threshold, overflowValue) {\n return (match, word) => {\n return values[word] >= threshold ? overflowValue : values[word]\n }\n}\n\nfunction pluralizeMessage(messageContext, stringId, values) {\n const KEY_REGEXP = /\\{(\\w+)\\}/g\n if (values) {\n let newStringId = stringId.replace(\n KEY_REGEXP,\n replacerWithCountThreshold(values, 3, 'other')\n )\n if (messageContext && messageContext[newStringId]) {\n return messageContext[newStringId]\n }\n\n newStringId = stringId.replace(\n KEY_REGEXP,\n replacerWithCountThreshold(values, 2, 'other')\n )\n if (messageContext && messageContext[newStringId]) {\n return messageContext[newStringId]\n }\n }\n return null\n}\n\nexport const messages = getI18nMessages()\n\n// do not attempt to translate these values to spans in development\n// TODO fix the root cause so we don't need a blacklist\nexport const i18nBlacklist = [\n {\n contextId: 'components/component-header-footer/footer/vx-footer',\n stringId: 'footer.disclaimerText',\n },\n {\n contextId: 'components/component-header-footer/footer/vx-footer',\n stringId: 'disclaimer.rewardCards',\n },\n { contextId: 'components/share', stringId: 'link_placeholder' },\n { contextId: 'components/send_glimpse/send_confirm', stringId: 'title' },\n]\n\nexport function i18n(contextId, stringId, values) {\n const translation = i18nBase(...arguments)\n\n if (\n !isLive() &&\n typeof translation === 'string' &&\n !i18nBlacklist.find(item => {\n return isEqual(item, { contextId, stringId })\n })\n ) {\n const props = {\n 'data-i18n-file': `locales/${country}/${language}/${contextId}`,\n 'data-i18n-key': stringId,\n 'data-i18n-values': JSON.stringify(values),\n }\n\n if (translation.includes('<')) {\n return ReactDOMServer.renderToStaticMarkup(\n \n )\n } else {\n return {translation}\n }\n } else {\n return translation\n }\n}\n\nfunction i18nBase(contextId, stringId, values) {\n if (contextId == null) {\n return messages\n } else if (stringId == null) {\n return messages[contextId]\n }\n\n let messageContext\n let message\n if (Array.isArray(contextId)) {\n messageContext = contextId.reduce((msgs, id) => {\n return { ...msgs, ...messages[id] }\n }, {})\n } else {\n messageContext = messages[contextId]\n }\n\n if (stringId.indexOf('.') >= 0) {\n message = messageContext\n stringId.split('.').forEach(part => {\n message = message && message[part]\n })\n } else {\n message = messageContext && messageContext[stringId]\n }\n if (!message) {\n const plmessage = pluralizeMessage(messageContext, stringId, values)\n if (plmessage) {\n message = plmessage\n } else {\n return ''\n }\n }\n\n for (let key in values) {\n if (values[key] != null) values[key] = values[key].toString()\n }\n\n return getMessageFormat(message).format(values)\n}\n\nexport function getI18n(contextId) {\n return (stringId, values) => {\n return i18n(contextId, stringId, values)\n }\n}\n\nexport function getI18nBase(contextId) {\n return (stringId, values) => {\n return i18nBase(contextId, stringId, values)\n }\n}\n","import { getHtmlElement } from 'client/lib/dom'\n\nimport { DEFAULT_LOCALE } from 'shared/shared_consts'\n\nexport function getCountry() {\n const htmlElement = getHtmlElement()\n return (\n (htmlElement && htmlElement.getAttribute('country')) ||\n DEFAULT_LOCALE.COUNTRY\n )\n}\n\nexport function getLanguage() {\n const htmlElement = getHtmlElement()\n\n const locale = htmlElement.lang\n\n return (locale && locale.split('_')[0]) || DEFAULT_LOCALE.LANGUAGE\n}\n","import _ from 'lodash'\nimport { getI18nBase } from '../i18n'\n\nconst i18nBase = getI18nBase('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 crowdfunding_category_key = [\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 crowdfunding_category_key.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) return ''\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 { POOLS_CAMPAIGN_TYPES, POOLS_STATUS } from 'shared/shared_consts'\nimport { getMainCategory } from 'client/lib/category'\nimport { hoursFromToday } from 'shared/helpers/datetime_helpers'\n\nconst { CROWD_FUNDING, PUBLIC_MONEY_POOL } = POOLS_CAMPAIGN_TYPES\n\nexport const getCurrentUserId = state => {\n return state.current_user && state.current_user.id\n ? state.current_user.id\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 isMoneyPoolSelector = createSelector(\n getCampaignSelector,\n campaign => {\n return Boolean(campaign && campaign.campaign_type === PUBLIC_MONEY_POOL)\n }\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 isMoneyPoolSelector,\n (banner, isMoneyPool) => {\n const { bannerIcon, bannerButtonText, bannerLink, bannerTitleText } = banner\n if (isMoneyPool) {\n return Boolean(bannerTitleText && bannerLink)\n }\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 pick(obj, fields) {\n let returnValue = {}\n fields.forEach(field => {\n returnValue[field] = obj[field]\n })\n return returnValue\n}\n\nexport 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 'griffin'\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__'\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 { owner, currencyCode, campaignType, charity } = 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\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 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) {\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 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 let 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 let 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) delete body.category\n //discoverable is not editable field\n if (campaignData.discoverable) 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) document.title = data.title\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 let 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 let 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","const SHOW = 'pools/coming_soon_dialog/SHOW'\nconst HIDE = 'pools/coming_soon_dialog/HIDE'\n\nexport function show() {\n return { type: SHOW }\n}\n\nexport function hide() {\n return { type: HIDE }\n}\n\nexport default function reducer(state = { visible: false }, action) {\n if (action.type === HIDE) {\n return { visible: false }\n }\n if (action.type === SHOW) {\n return { visible: true }\n }\n return state\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) {\n return { type: SHOW, payload: { id: toastId } }\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 { [action.payload.id]: true }\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 coming_soon_dialog from './coming_soon_dialog'\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 coming_soon_dialog,\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 can_guest: nop,\n isContributionEligible: nop,\n deployEnv: nop,\n preloadSendValues: nop,\n isEnrolledInCFPBRamp: 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 { 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'\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}\n\nfunction sanitizePathnameForFpti(state, pathname) {\n const campaignId = getCurrentCampaignId(state, pathname)\n if (campaignId)\n pathname = pathname.replace(campaignId, decodeCampaignId(campaignId)) // replace encoded campaign id\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 charityname\n let crid = ''\n const campaignId =\n getCurrentCampaignId(store.getState(), pathname) ||\n '__new_campaign__'\n const campaign = getCampaignSelector(store.getState(), { campaignId })\n charityname = get(campaign, 'charity.name', '')\n crid = get(campaign, 'charity.nonprofit_id', '')\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 let flowTag =\n flow === 'GENEROSITY_NETWORK' ||\n flow === 'GENEROSITY_NETWORK_CHARITIES'\n ? 'CROWD_FUNDING'\n : 'PUBLIC_MONEY_POOL'\n let CIPStatusCode = get(\n store.getState(),\n `current_user.CIPEligibility.${flowTag}.CIPStatus`,\n ''\n )\n let contingency = CIPStatusCode === 'ELIGIBLE' ? 'cip' : undefined\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 })\n lastPathName = pathname\n }\n }\n }\n next(action)\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'\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 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","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './header_image.less'\nimport clsx from 'clsx'\n\nclass HeaderImage extends React.Component {\n static propTypes = {\n src: PropTypes.string,\n isWideView: PropTypes.bool,\n headerComponent: PropTypes.any,\n }\n\n render() {\n return (\n this.props.headerComponent && (\n \n {this.props.headerComponent}\n \n )\n )\n }\n}\n\nexport default cssModules(HeaderImage, styles, { allowMultiple: true })\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 let 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\n// --------------------------------------------------------------------------\n\nexport function getScrollDist(elem) {\n if (!elem.offsetParent) {\n return 0\n }\n let sum = 0\n while (elem) {\n sum += elem.offsetTop\n elem = elem.offsetParent\n }\n return sum - window.pageYOffset - bodyScrollY\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 HeaderImage from 'components/common/header_image'\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 } 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 centerHeader: PropTypes.any,\n onClose: PropTypes.func,\n glimpse: PropTypes.bool,\n showSpinner: PropTypes.bool,\n showClose: PropTypes.bool,\n showIcon: PropTypes.bool,\n animate: PropTypes.bool,\n background: PropTypes.element,\n hideTopWithoutHeader: PropTypes.bool,\n showHeader: PropTypes.bool,\n headerComponent: PropTypes.any,\n isWideView: PropTypes.bool,\n progressPercent: PropTypes.number,\n showProgressBar: PropTypes.bool,\n isPadding: PropTypes.bool,\n }\n\n static defaultProps = {\n animate: true,\n showClose: true,\n showIcon: false,\n hideTopWithoutHeader: false,\n showHeader: 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 const Background = this.props.background\n\n const hasTopPart = !!(\n this.props.leftHeader ||\n this.props.centerHeader ||\n this.props.showClose\n )\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 {this.props.showHeader && (\n \n )}\n {(hasTopPart || !this.props.hideTopWithoutHeader) && (\n <>\n
{this.props.leftHeader}
\n
{this.props.centerHeader}
\n {this.props.showClose && (\n {\n if (e.key === ENTER_KEY) {\n this.handleClose()\n }\n }}\n />\n )}\n \n )}\n
\n {showProgressBar && (\n
\n \n
\n )}\n \n {this.props.background && (\n
\n \n
\n )}\n {this.props.children}\n \n {this.props.showIcon &&
}\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 >\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 showIcon: PropTypes.bool,\n children: PropTypes.any,\n router: routerShape.isRequired,\n onClose: PropTypes.func,\n animate: PropTypes.bool,\n background: PropTypes.element,\n route: PropTypes.any,\n hideTopWithoutHeader: PropTypes.bool,\n showHeader: PropTypes.bool,\n headerComponent: PropTypes.any,\n isWideView: PropTypes.bool,\n progressPercent: PropTypes.number,\n showProgressBar: PropTypes.bool,\n isPadding: PropTypes.bool,\n }\n\n handleScrollTop = () => {\n this.modal.scrollToTop()\n }\n\n removeStaleClass = (attempts = 4) => {\n if (attempts === 0) {\n return\n }\n const allStaleElements = document.getElementsByClassName(\n 'modal-enter-active'\n )\n for (let i = 0; i < allStaleElements.length; i++) {\n const element = allStaleElements[i]\n element.classList.remove('modal-enter-active')\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 this._step.confirmNavigation(result => result && successCallback())\n } else {\n successCallback()\n }\n }\n\n handleBack = () => {\n this.confirmNavigation(() => this.props.router.goBack())\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 = null\n }\n }\n\n render() {\n const {\n movingForward,\n showSpinner,\n glimpse,\n hideClose,\n hideBack,\n animate,\n background,\n showIcon,\n showHeader,\n headerComponent,\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 stepRef: step => {\n this._step = step\n },\n })}\n \n \n )\n }\n}\n\nexport default withRouter(cssModules(ModalWizard, styles))\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './confetti.less'\nimport { inverseLerp } from 'shared/helpers/math_helpers'\n\nlet currentAnimationFrame\n\nclass Confetti extends React.Component {\n static propTypes = {\n maxRounds: PropTypes.number,\n numAtoms: PropTypes.number,\n atomSpeed: PropTypes.number,\n fadeStart: PropTypes.number,\n fadeEnd: PropTypes.number,\n }\n\n static defaultProps = {\n maxRounds: 1,\n numAtoms: 350,\n atomSpeed: 2,\n fadeStart: 0.25,\n fadeEnd: 0.5,\n }\n\n componentWillUnmount() {\n if (currentAnimationFrame) {\n cancelAnimationFrame(currentAnimationFrame)\n }\n }\n\n confetti = canvas => {\n const MAX_ROUNDS = this.props.maxRounds\n const NUM_ATOMS = this.props.numAtoms\n const ATOM_SPEED = this.props.atomSpeed\n const FADE_START = this.props.fadeStart\n const FADE_END = this.props.fadeEnd\n\n const context = canvas.getContext('2d')\n canvas.width = canvas.offsetWidth\n canvas.height = canvas.offsetHeight\n\n const atoms = []\n function Atom(x, y, rx, ry) {\n this.x = x\n this.y = y\n this.sx = 0\n this.sy = 0\n this.rx = rx\n this.ry = ry\n this.color = { r: 0, g: 0, b: 0 }\n this.round = 0\n this.opacity = 1\n\n this.draw = cntxt => {\n cntxt.beginPath()\n cntxt.fillStyle = `rgba(${this.color.r}, ${this.color.g}, ${\n this.color.b\n }, ${0.6 * this.opacity})`\n cntxt.arc(this.x + 3, this.y + 3, this.rx, 0, 2 * Math.PI)\n cntxt.fill()\n }\n }\n\n function update() {\n for (let i = 0; i < NUM_ATOMS; i++) {\n if (atoms[i].round >= MAX_ROUNDS) {\n continue\n }\n atoms[i].x += atoms[i].sx\n atoms[i].y += atoms[i].sy\n if (atoms[i].x > canvas.width) {\n atoms[i].x = 0\n } else if (atoms[i].x < 0) {\n atoms[i].x = canvas.width\n }\n if (atoms[i].y > canvas.height) {\n atoms[i].y = 0\n atoms[i].opacity = 1\n atoms[i].round++\n }\n if (atoms[i].y > canvas.height * FADE_START) {\n atoms[i].opacity = Math.max(\n 0,\n Math.min(\n 1,\n 1 -\n inverseLerp(\n canvas.height * FADE_START,\n canvas.height * FADE_END,\n atoms[i].y\n )\n )\n )\n }\n }\n }\n\n function render() {\n context.clearRect(0, 0, canvas.width, canvas.height)\n for (let i = 0; i < NUM_ATOMS; i++) {\n if (atoms[i].round < MAX_ROUNDS) {\n atoms[i].draw(context)\n }\n }\n }\n\n function loop() {\n update()\n render()\n currentAnimationFrame = requestAnimationFrame(loop, canvas)\n }\n\n /**\n * SonarQube thinks Math.random could be a vulnerability because\n * using pseudorandom number generators is security-sensitive,\n * however, in this case it is SAFE because is not being used in\n * a security context and to avoid a misuse of this function in a\n * security context I'm making obvious it is UNSAFE, this file will\n * probably be deprecated anyway.\n *\n */\n function getUnsafeRandomNumber() {\n return Math.random() // NOSONAR\n }\n\n function initialize() {\n for (let i = 0; i < NUM_ATOMS; i++) {\n const t = new Atom(\n getUnsafeRandomNumber() * canvas.width,\n getUnsafeRandomNumber() * -canvas.height,\n 1 + getUnsafeRandomNumber() * 5,\n 1 + getUnsafeRandomNumber() * 5\n )\n t.sx = getUnsafeRandomNumber() * ATOM_SPEED * 2 - ATOM_SPEED\n t.sy = getUnsafeRandomNumber() * ATOM_SPEED + ATOM_SPEED\n t.color = {\n r: parseInt(getUnsafeRandomNumber() * 70 + 100),\n g: parseInt(getUnsafeRandomNumber() * 70 + 4),\n b: parseInt(getUnsafeRandomNumber() * 70 + 135),\n }\n atoms[i] = t\n }\n }\n\n function main() {\n initialize()\n loop()\n }\n\n main()\n }\n\n render() {\n return (\n {\n if (canvas) {\n this.confetti(canvas)\n }\n }}\n />\n )\n }\n}\n\nexport default cssModules(Confetti, styles)\n","import ModalWizard from './modal_wizard'\nimport { connect } from 'react-redux'\n\nimport { fromVeniceSelector } from 'redux/selectors/venice'\n\nconst mapStateToProps = (state, { hideBack, hideClose, showIcon }) => {\n const fromVenice = fromVeniceSelector()(state)\n let hideTopWithoutHeader = false\n if (fromVenice) {\n hideBack = true\n hideClose = true\n showIcon = false\n hideTopWithoutHeader = true\n }\n\n return { hideBack, hideClose, showIcon, hideTopWithoutHeader }\n}\n\nexport default connect(mapStateToProps)(ModalWizard)\n","export function lerp(start, end, value) {\n return (1 - value) * start + value * end\n}\n\nexport function inverseLerp(start, end, value) {\n return (value - start) / (end - start)\n}\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 charity = _get(props, 'charity')\n const charityName = _get(charity, 'name')\n const charityId = _get(charity, 'nonprofit_id')\n const fundraiser_id = _get(props, 'id')\n const campaign_id = decodeCampaignId(fundraiser_id)\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 (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 = campaign_id\n trackImpression(fptiPayload)\n } else if (eventType === 'ac') {\n fptiPayload.campaignId = campaign_id\n fptiPayload.event_type = eventType\n trackImpression(fptiPayload)\n } else if (eventType === 'click') {\n fptiPayload.campaign_id = campaign_id\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 Confetti from 'components/common/confetti'\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\";\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 cssModules from 'react-css-modules'\nimport styles from './icon_circle.less'\nimport Icon, { ICON_SIZES, STROKE_COLORS } from '../icon'\n\nclass IconCircle 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 render() {\n return (\n
\n \n
\n )\n }\n}\n\nexport default cssModules(IconCircle, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport IconCircle from 'components/common/icon_circle'\nimport styles from './flat_progress.less'\nimport { formatPercent, formatMoney } from 'client/griffin'\nimport { ProgressMeter, HeadingText, CaptionText } from '@paypalcorp/pp-react'\nimport { getI18n } from 'client/i18n'\n\nconst i18n = getI18n('components/common/flat_progress')\n\nclass FlatProgress extends React.Component {\n static propTypes = {\n currencyCode: PropTypes.string,\n totalAmount: PropTypes.number,\n goalAmount: PropTypes.value,\n showPercentage: PropTypes.bool,\n showProgress: PropTypes.bool,\n compact: PropTypes.bool,\n title: PropTypes.string,\n titleIcon: PropTypes.element,\n displayTotalAmount: PropTypes.bool,\n }\n\n static defaultProps = {\n titleIcon: '',\n showPercentage: true,\n showProgress: true,\n displayTotalAmount: false,\n }\n\n render() {\n const percentage = formatPercent(\n this.props.totalAmount / this.props.goalAmount\n )\n\n const removeTrailingZeros = number => {\n return Number.isInteger(number)\n }\n\n const amountOrPercentage = this.props.displayTotalAmount\n ? formatMoney(this.props.currencyCode, this.props.totalAmount, {\n removeTrailingZeros,\n })\n : percentage\n\n const amountOrPercentageContentKey = this.props.displayTotalAmount\n ? 'amount_of_goal'\n : 'raised_amount_goal'\n\n return (\n
\n
\n {this.props.title ? (\n \n {this.props.titleIcon} {this.props.title}\n \n ) : (\n \n {formatMoney(this.props.currencyCode, this.props.totalAmount)}\n \n )}\n
\n {this.props.showProgress ? (\n \n ) : (\n this.props.compact && (\n
\n
\n \n
\n
\n )\n )}\n {this.props.showPercentage && this.props.showProgress ? (\n
\n \n {amountOrPercentage}\n \n \n {i18n(amountOrPercentageContentKey, {\n amount: formatMoney(\n this.props.currencyCode,\n this.props.goalAmount,\n {\n removeTrailingZeros,\n }\n ),\n })}\n \n
\n ) : (\n ''\n )}\n
\n )\n }\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 'client/i18n'\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 } from 'client/i18n'\nimport { BodyText, HeadingText, Tooltip } from '@paypalcorp/pp-react'\nimport { formatMoney } from 'client/griffin'\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 removeTrailingZeros: PropTypes.bool,\n netAmount: PropTypes.number,\n leftAlignFlag: PropTypes.bool,\n }\n\n static defaultProps = {\n removeTrailingZeros: false,\n }\n\n render() {\n const {\n currencyCode,\n moneyboxAmount,\n netAmount,\n pledge,\n removeTrailingZeros,\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 {formatMoney(currencyCode, netAmount, {\n removeTrailingZeros,\n })}\n \n
\n
\n ) : null}\n
\n {leftAlignFlag ? (\n <>\n
\n {i18n('available')}\n \n
\n
\n \n {formatMoney(currencyCode, moneyboxAmount, {\n removeTrailingZeros,\n })}\n \n
\n \n ) : (\n <>\n
\n {i18n('available')}\n \n
\n
\n \n {formatMoney(currencyCode, moneyboxAmount, {\n removeTrailingZeros,\n })}\n \n
\n \n )}\n
\n
\n {leftAlignFlag ? (\n <>\n
\n {i18n('pledge_by')}\n
\n
\n \n {formatMoney(currencyCode, pledge, {\n removeTrailingZeros,\n })}\n \n
\n \n ) : (\n <>\n
\n {i18n('pledge_by')}\n
\n
\n \n {formatMoney(currencyCode, pledge, {\n removeTrailingZeros,\n })}\n \n
\n \n )}\n
\n
\n
\n )\n }\n}\n\nexport default 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 { getI18n } from 'client/i18n'\nimport { formatDate } from 'client/griffin'\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'\n\nconst IDLE_STATE = 'idle'\nconst LOADING_STATE = 'loading'\nconst i18n = getI18n('components/txns_list')\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) return true\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()) return null\n\n let shownElements = this.shownContributions()\n\n if (this.props.showDaysRows)\n shownElements = this.addDatesBetweenContributions(shownElements)\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 {i18n('show_more_action')}\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) return null\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, IconButton, AddIcon } 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 icon: PropTypes.string,\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 if (!this.props.imageUrl) {\n if (this.props.icon) {\n noAvatarElement = (\n \n )\n } else 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","import { WALLET_SETTINGS_SERV_FAIL } from '../shared_consts'\n\nexport 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\nexport function getDisplayName(\n full_name = '',\n businessNamesMappedToIds = {},\n id = ''\n) {\n if (businessNamesMappedToIds[id]) {\n return businessNamesMappedToIds[id] === WALLET_SETTINGS_SERV_FAIL\n ? ' '\n : businessNamesMappedToIds[id]\n }\n return full_name\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","// NOTE: when `maxRows` is 1, this component is buggy in FireFox and always shows \"Show More\".\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './expandable_paragraph.less'\nimport { getI18n } from 'client/i18n'\nimport { HeadingText, BodyText, Link } from '@paypalcorp/pp-react'\n\nconst TEXT_LINE_HEIGHT = 1.6\nconst LIGHT_TEXT_LINE_HEIGHT = 1.5\nconst TEXT_FONT_SIZE = 15\nconst LIGHT_TEXT_FONT_SIZE = 13\nconst i18n = getI18n('components/expandable_paragraph')\n\nclass ExpandableParagraph extends React.Component {\n static propTypes = {\n titleText: PropTypes.string,\n children: PropTypes.node,\n maxRows: PropTypes.number,\n lightText: PropTypes.bool,\n lightLink: PropTypes.bool,\n }\n\n static defaultProps = { maxRows: 3 }\n state = { open: false }\n\n updateHeight = () => {\n this.setState({ height: this.detailsText.scrollHeight })\n }\n\n componentDidMount() {\n this.updateHeight()\n window.addEventListener('resize', this.handleResize)\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleResize)\n }\n\n handleResize = () => {\n this.updateHeight()\n }\n\n onShowMore = () => {\n this.setState({ open: !this.state.open })\n }\n\n render() {\n // these are hard-coded and not derived from the CSS since the manual height set after mounting is counting on `scrollHeight`\n // which will only be set if this is hard-coded here.\n let lineHeight = TEXT_LINE_HEIGHT // in em\n let fontSize = TEXT_FONT_SIZE // in px\n let lightTextStyleName = 'details-text'\n let lightLinkStyleName = 'more-link'\n\n if (this.props.lightText) {\n lineHeight = LIGHT_TEXT_LINE_HEIGHT\n fontSize = LIGHT_TEXT_FONT_SIZE\n lightTextStyleName = 'details-text-light'\n }\n\n if (this.props.lightLink) {\n lightLinkStyleName = 'more-link-light'\n }\n\n let detailsClass = ''\n let buttonText = ''\n let detailsStyle = {}\n let detailsTextStyle = { lineHeight, fontSize }\n let showMoreButton = false\n if (this.state.height) {\n if (this.state.height > this.props.maxRows * lineHeight * fontSize) {\n showMoreButton = true\n detailsClass = 'details'\n buttonText = i18n('show_more')\n detailsStyle = {\n height: `${this.props.maxRows * lineHeight * fontSize}px`,\n }\n\n if (this.state.open) {\n // overflow\n detailsClass = 'details-open'\n buttonText = i18n('show_less')\n detailsStyle = { height: this.state.height + 'px' }\n }\n\n detailsTextStyle = Object.assign(\n this.state.open ? {} : { WebkitLineClamp: this.props.maxRows },\n detailsTextStyle\n )\n } else {\n // no overflow\n detailsClass = 'details-open'\n }\n }\n\n return (\n
\n {this.props.titleText && (\n \n {this.props.titleText}\n \n )}\n
\n {\n this.detailsText = detailsText\n }}\n style={detailsTextStyle}\n >\n {this.props.children} \n
\n {showMoreButton && (\n \n {buttonText}\n \n )}\n
\n {showMoreButton && (\n \n {buttonText}\n \n )}\n \n )\n }\n}\n\nexport default cssModules(ExpandableParagraph, styles, { allowMultiple: true })\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 ExpandableParagraph from 'components/common/expandable_paragraph'\nimport cssModules from 'react-css-modules'\nimport styles from './activity_row.less'\nimport { getI18n } from 'client/i18n'\nimport { formatMoney } from 'client/griffin'\nimport { getHash } from 'shared/helpers/string_helpers'\nimport { getInitials } from 'shared/helpers/name_helpers'\nimport { BodyText, Card } from '@paypalcorp/pp-react'\n\nconst i18n = getI18n('components/txn_row')\nconst i18nActivity = getI18n('components/edit_glimpse/activity')\n\nclass ActivityRow extends React.Component {\n static 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\n getAvatarBackgroundColor = () => {\n if (this.props.withdraw) return 'blue'\n if (!this.props.contributor_id) return 'white'\n const uniqueNumericId = getHash(this.props.contributor_id.toString())\n return avatarColors[uniqueNumericId % avatarColors.length]\n }\n\n render() {\n const amountStyleName = this.props.withdraw ? '' : 'amount-positive'\n const amountSign = this.props.withdraw ? '-' : '+'\n const subjectName = this.props.withdraw\n ? i18n('txn_row.paypal_balance')\n : this.props.contributor_name\n const activityType = this.props.withdraw\n ? i18n('txn_row.transfer')\n : i18n('txn_row.donation')\n const avatarIcon = this.props.withdraw ? 'transfer' : undefined\n return (\n \n
\n \n
\n
\n
\n \n {subjectName}\n \n \n {activityType}\n {this.props.pending ? (\n \n {' \\u2022 '}\n {i18nActivity('activity.pending')}\n \n ) : (\n ''\n )}\n \n {this.props.note && (\n \n {this.props.note} \n \n )}\n
\n \n {amountSign}\n {formatMoney(this.props.currency, this.props.net_amount)}\n \n
\n
\n )\n }\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 'client/i18n'\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 } from '@paypalcorp/worldready-react'\nimport clsx from 'clsx'\nimport { daysUntilToday } from 'shared/helpers/datetime_helpers'\nimport { trackFPTI } from 'lib/fpti_utils'\nimport { formatDateMediumShort } from 'client/griffin'\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 }\n render() {\n const {\n organizerUpdateRow,\n postUpdateUrl,\n enableEditButton,\n truncateDescription,\n truncateSubject,\n isDonerView,\n campaign,\n eventName,\n updateState,\n } = this.props\n // const time_created = \"2022-11-20T06:26:30.000Z\"\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 formatDateMediumShort(new Date(organizerUpdateRow.time_created))\n )}\n \n
\n \n \n {organizerUpdateRow.text}\n \n {organizerUpdateRow.edited && (\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 cssModules(OrganizerUpdateDetail, styles, {\n allowMultiple: true,\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'\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 }\n\n render() {\n const { type, svg, alt, cdnHost, classname } = 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 {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 { 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","import { useContext } from 'react'\nimport { getStore } from 'lib/store'\nimport { DateTimeFormat, MessageFormat } from '@paypalcorp/worldready'\nimport { Context as WorldReadyContext } from '@paypalcorp/worldready-react'\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 * 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 * 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 * 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 formatDate: (value, options) => {\n return formatDate(worldReady, value, options)\n },\n formatMessage: ({ contentId, formatOptions }) => {\n return formatMessage(worldReady, contentId, formatOptions)\n },\n }\n}\n\nexport { useIntl, formatDate, formatMessage }\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'\n\nconst DaysComponent = ({ endDate, canChipIn }) => {\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.donate_button.expired'\n\n return (\n \n \n \n \n \n )\n}\n\nDaysComponent.propTypes = {\n endDate: PropTypes.string,\n canChipIn: PropTypes.bool,\n}\n\nexport default cssModules(DaysComponent, styles)\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 Avatar,\n CaptionText,\n Col,\n HeadingText,\n Row,\n} from '@paypalcorp/pp-react'\nimport EndDateBadge from './helper_components/end_date_badge'\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 }\n\n getCharityNameComponent(charity) {\n return (\n \n \n \n \n {charity.name}\n \n \n \n )\n }\n\n getOwnerComponent() {\n return (\n \n \n \n {this.props.creatorName}\n \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 { charity, end_date, showDaysRemaining, canChipIn } = this.props\n let component\n if (showDaysRemaining) {\n component = \n } else if (charity) {\n component = null\n } else {\n component = this.getOwnerComponent()\n }\n return (\n \n \n \n \n {this.props.poolName}\n \n \n \n {charity && this.getCharityNameComponent(charity)}\n \n {component}\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 { getFullName } from 'griffin'\nimport {\n getCampaignSelector,\n getCampaignCategorySelector,\n} from 'redux/selectors/campaign'\nimport { getInitials } from 'shared/helpers/name_helpers'\nimport { generateCategoryName } from 'client/lib/category'\n\nconst mapStateToProps = (state, ownProps) => {\n const campaign = getCampaignSelector(state, ownProps)\n const ownerName =\n campaign.owner.business_name ||\n getFullName({\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 ...ownProps,\n }\n}\n\nexport default connect(mapStateToProps)(CampaignHeader)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport { getI18n } from 'client/i18n'\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.bool,\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 ...this.getFPTITags(),\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 ...this.getFPTITags(),\n },\n })\n }\n }\n\n getFPTITags = () => {\n const { charity } = this.props\n return {\n flow:\n charity && charity.name\n ? 'GENEROSITY_NETWORK_CHARITIES'\n : 'GENEROSITY_NETWORK',\n charityname: charity && charity.name,\n crid: charity && charity.nonprofit_id,\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 } = 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 return (\n
\n {!hasCurrencyBalance && (\n \n )}\n {this.props.showUpdateSuccess && (\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'\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 state.flags.dnw_payment\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: campaign.current_value + campaign.pledge,\n goal: campaign.goal,\n hasChippedIn: campaign.current_value > 0,\n hasCurrencyBalance: campaign.has_currency_balance,\n hasMoneybox: campaign.moneybox_amount > 0,\n isDNWPayment: state.flags.dnw_payment,\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 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 } from 'client/i18n'\nimport { formatMoney } from 'client/griffin'\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'\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 }\n\n render() {\n const balance = formatMoney(\n this.props.moneyBoxCurrency,\n this.props.moneyBoxAmount\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 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","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'\n\nclass CharityCard extends React.Component {\n static propTypes = {\n charity: PropTypes.object,\n }\n render() {\n const { charity } = this.props\n return (\n
\n
\n \n {charity.name}\n
\n
\n )\n }\n}\n\nexport default cssModules(CharityCard, styles)\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'\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 isCalenderEnable: PropTypes.boolean,\n id: PropTypes.string,\n name: PropTypes.string,\n useEndOfDay: PropTypes.boolean,\n}\n\nfunction DateInputBox(props) {\n const [selectedDate, setSelectedDate] = useState(props.initialValue)\n const [isCalendarVisible, setCalenderVisible] = useState()\n\n const handleBlur = evt => {\n document.getElementById('formContent').style.overflow = 'hidden'\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 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 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'\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) {\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 handleZoomOut()} />\n handleRotate('clockwise')} />\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 { DEFAULT_GRADIENT_COLOR } 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 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 render() {\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 if (this.props.backgroundImage) {\n customStyle.backgroundImage = `url(${this.props.backgroundImage})`\n customStyle.backgroundPosition = `50% ${this.props.backgroundPan}%`\n styleNames.push('strip-with-image')\n if (this.props.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 return (\n \n )\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 { getI18n } from 'client/i18n'\nimport { inverseLerp } from 'shared/helpers/math_helpers'\nimport { COVER_IMAGE_MAX_TOTAL_SIZE } from 'shared/shared_consts'\n\nexport const DEFAULT_RELATIVE_PAN = 50\n\nconst i18n = getI18n('components/crowdfunding_image_preview')\n\nclass CrowdFundingImagePreview extends React.Component {\n static propTypes = {\n imageUrl: PropTypes.string.isRequired,\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 }\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 let 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 let 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 {i18n('drag_image')}\n \n
\n {\n this.strip = strip\n }}\n />\n
\n
\n \n {i18n('change_image')}\n \n \n {i18n('remove_image')}\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 from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\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 { getI18n } from 'client/i18n'\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'\n\nconst {\n FILE_INVALID_TYPE,\n FILE_TOO_LARGE,\n FILE_TOO_SMALL,\n TOO_MANY_FILES,\n} = COVER_IMAGE_UPLOAD_ERRORS\nconst DEFAULT_PAN = 50\nconst i18n = getI18n('components/pages/crowdfunding/crowdfunding_cover_image')\n\nclass CrowdFundingCoverImage extends React.Component {\n static propTypes = {\n fields: PropTypes.object.isRequired,\n showDoneButton: PropTypes.bool,\n showTitle: PropTypes.bool,\n showPreviewComponent: PropTypes.bool,\n }\n\n state = {\n isLoading: false,\n uploadError: null,\n }\n\n constructor(props) {\n super(props)\n this.child = React.createRef()\n }\n\n handleImageRemove = e => {\n e.preventDefault()\n const {\n fields: { backgroundImage, backgroundImageFilename, backgroundPan },\n } = this.props\n this.setState({ uploadError: null })\n trackClick({\n clickName: 'dw_giving_edit_fundraiser_remove_photo_pressed',\n data: {\n event_name: 'dw_giving_edit_fundraiser_remove_photo_pressed',\n },\n })\n\n backgroundPan.onChange(DEFAULT_PAN)\n backgroundImage.onChange(undefined)\n backgroundImageFilename.onChange(undefined)\n }\n\n handleImageChange = val => {\n const {\n fields: { backgroundImage, backgroundImageFilename, backgroundPan },\n } = this.props\n this.setState({ uploadError: null })\n trackClick({\n clickName: 'dw_giving_edit_fundraiser_change_photo_pressed',\n data: {\n event_name: 'dw_giving_edit_fundraiser_change_photo_pressed',\n },\n })\n\n backgroundPan.onChange(DEFAULT_PAN)\n backgroundImage.onChange(val.url)\n backgroundImageFilename.onChange(val.name || backgroundImageFilename.value)\n }\n\n handleImageLoad = isLoading => {\n this.setState({ isLoading })\n }\n\n imageUploadClick = () => {\n this.child.current.openFileDialog()\n }\n\n handleImageUploadError = imageLoadError => {\n this.setState({ uploadError: imageLoadError })\n }\n\n mapErrorToContent = (errorCode = FILE_INVALID_TYPE) => {\n const errorCodeMapping = {}\n\n errorCodeMapping[FILE_INVALID_TYPE] = 'file_invalid_type'\n errorCodeMapping[FILE_TOO_LARGE] = 'file_too_large'\n errorCodeMapping[FILE_TOO_SMALL] = 'file_too_small'\n errorCodeMapping[TOO_MANY_FILES] = 'too_many_files'\n return errorCodeMapping[errorCode]\n }\n\n getErrorMessage = errorCode => {\n const key = this.mapErrorToContent(this.state.uploadError.code)\n return i18n(key)\n }\n\n render() {\n const {\n fields: { backgroundImage = {}, backgroundPan },\n showDoneButton,\n showTitle,\n showPreviewComponent,\n } = this.props\n\n return (\n
\n {showTitle && (\n \n {i18n('title_cf')}\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 {i18n('upload')}\n \n
\n \n {i18n('upload_tip')}\n {this.state.uploadError ? (\n \n {this.getErrorMessage(this.state.uploadError.code)}\n \n ) : null}\n
\n \n )}\n {showDoneButton && (\n \n {i18n('done')}\n \n )}\n \n \n )\n }\n}\nexport default cssModules(CrowdFundingCoverImage, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { getJSONFromScript } from 'lib/server_params'\n\nclass PayPalHeader extends React.Component {\n static propTypes = {\n element: PropTypes.string,\n }\n\n render() {\n const navigation = getJSONFromScript('navigation')\n return (\n \n )\n }\n}\n\nexport default PayPalHeader\n","import React, { useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport { getI18n } from 'client/i18n'\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 JsxParser from 'react-jsx-parser'\nimport Icon from '../../../common/icon/icon'\n\nconst i18n = getI18n('components/crowdfunding_banner')\n\nexport const MoneyPoolHeader = props => {\n const handleClick = () => {\n fetch(props.clickUrl)\n }\n\n useEffect(() => {\n const element = document.querySelector('.jsx-parser a')\n if (element && props.clickUrl) {\n element.addEventListener('click', handleClick)\n return () => {\n element.removeEventListener('click', handleClick)\n }\n }\n }, [])\n\n return (\n \n\t\t\t\t${props.bannerTitleText}\n\t\t\t\n\t\t\t`}\n />\n )\n}\n\nMoneyPoolHeader.propTypes = {\n bannerLink: PropTypes.string,\n bannerTitleText: PropTypes.string,\n clickUrl: PropTypes.string,\n}\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 isMoneyPool: PropTypes.bool,\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 {\n bannerIcon,\n bannerButtonText,\n bannerLink,\n bannerTitleText,\n isMoneyPool,\n analytics,\n } = this.props\n const { sysColorPrimaryContrastHover } = PAYPAL_THEME\n\n // Don't show money pool banner if message is missing\n if ((!bannerTitleText || !bannerLink) && isMoneyPool) {\n return null\n }\n\n return (\n \n \n \n {!isMoneyPool && (\n \n )}\n {isMoneyPool ? (\n \n ) : (\n \n {bannerTitleText || i18n('crowdfunding_banner_info')}\n \n )}\n \n \n {!isMoneyPool && (\n \n {bannerButtonText || i18n('crowdfunding_banner_cta')}\n \n )}\n \n \n \n )\n }\n}\n\nexport default cssModules(CrowdfundingBanner, styles)\n","import React from 'react'\nimport PayPalNavigation from 'components/common/paypal_navigation'\nimport Header from 'marketing-components/dist/components/organisms/header'\n\nconst RenderHeader = () => {\n const headerContent = document.getElementById('data-header')?.innerHTML\n if (headerContent) {\n try {\n const {\n content: { contentLoggedOut: content, config },\n } = JSON.parse(headerContent)\n const props = { content, config }\n\n return (\n
\n
\n
\n )\n } catch (error) {\n return \n }\n } else {\n return \n }\n}\n\nexport default RenderHeader\n","import React from 'react'\nimport PayPalNavigation from 'components/common/paypal_navigation'\nimport Footer from 'marketing-components/dist/components/organisms/footer'\n\nconst RenderFooter = () => {\n const footer = document.getElementById('data-footer')?.innerHTML\n if (footer) {\n try {\n const {\n content: { content: footerContent },\n } = JSON.parse(footer)\n const { localeCountry } = footerContent\n\n return (\n \n )\n } catch (error) {\n return \n }\n } else {\n return \n }\n}\n\nexport default RenderFooter\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './crowdfunding_page.less'\nimport PayPalNavigation from 'components/common/paypal_navigation'\nimport CrowdfundingBanner from 'components/pages/crowdfunding/crowdfunding_banner'\nimport { RenderHeader, RenderFooter } from 'components/common/header_footer'\nimport clsx from 'clsx'\n\nclass CrowdfundingPage extends React.Component {\n static propTypes = {\n allowEntryBanner: PropTypes.bool,\n banner: PropTypes.obj,\n children: PropTypes.any,\n isLoggedIn: PropTypes.any,\n isMoneyPool: PropTypes.bool,\n isPreview: PropTypes.bool,\n paypalDomain: PropTypes.string,\n showFooter: PropTypes.bool,\n showHeader: PropTypes.bool,\n campaignId: PropTypes.string.isRequired,\n }\n\n static defaultProps = {\n showHeader: true,\n showFooter: true,\n }\n\n render() {\n const showBanner = this.props.allowEntryBanner && !this.props.isPreview\n const headerContent = document.getElementById('data-header')?.innerHTML\n const contentStyles = clsx('content-inside', {\n 'no-header': !this.props.showHeader,\n 'no-footer': !this.props.showFooter,\n })\n\n return (\n
\n {this.props.showHeader && (\n \n )}\n {this.props.showHeader && }\n \n {this.props.showHeader &&\n !headerContent && }\n {showBanner && (\n \n )}\n \n {this.props.children}\n
\n \n {this.props.showFooter && }\n
\n
\n )\n }\n}\n\nexport default cssModules(CrowdfundingPage, styles, { allowMultiple: true })\n","import CrowdfundingPage from './crowdfunding_page'\nimport { connect } from 'react-redux'\nimport { fromVeniceSelector } from 'redux/selectors/venice'\nimport {\n getAllowEntryBannerSelector,\n isMoneyPoolSelector,\n} 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 const isMoneyPool = isMoneyPoolSelector(state, { campaignId })\n\n return {\n isMoneyPool,\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)(CrowdfundingPage)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { getI18n } from 'client/i18n'\nimport ExpandableParagraph from 'components/common/expandable_paragraph'\nimport Linkify from 'react-linkify'\nimport cssModules from 'react-css-modules'\nimport styles from './campaign_details.less'\nimport { Avatar, Col, Row, CaptionText } from '@paypalcorp/pp-react'\n\nconst i18n = getI18n('components/campaign_details')\nconst i18nCharity = getI18n('components/crowdfunding_charity_detail_view')\nconst MAX_ROWS = 200\nconst DEFAULT_ROWS = 3\n\nclass CampaignDetails extends React.Component {\n static 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 static defaultProps = {\n tab_layout: false,\n }\n render() {\n if (!this.props.details) {\n return null\n }\n let title\n if (this.props.isCharity) {\n title = i18nCharity('about_fundraiser')\n } else {\n title = this.props.tab_layout ? '' : i18n('title')\n }\n const titleStrong = this.props.isCharity\n const maxRows = this.props.tab_layout ? MAX_ROWS : DEFAULT_ROWS\n\n return (\n \n {this.props.isCharity && (\n \n \n
\n \n \n
\n \n
\n )}\n
\n \n \n
{this.props.details}
\n
\n \n
\n {this.props.isCharity && (\n
\n \n \n
\n {this.props.charity.description}\n
\n
\n \n
\n )}\n
\n )\n }\n}\n\nexport default cssModules(CampaignDetails, styles, { allowMultiple: true })\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 { getFullName } from 'griffin'\nimport { NEW_CAMPAIGN_ID } from 'redux/modules/campaign'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n const ownerName =\n campaign.owner.business_name ||\n getFullName({\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 connect(\n mapStateToProps,\n mapDispatchToProps\n)(CampaignDetails)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './chip_in_button.less'\nimport { getI18n } from 'client/i18n'\nimport { Link } from 'react-router'\nimport clsx from 'clsx'\n\nconst i18n = getI18n('components/chip_in')\n\nclass ChipInButton extends React.Component {\n static propTypes = {\n secondary: PropTypes.bool,\n canChipIn: PropTypes.bool,\n chipInHref: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n fullPageRefresh: PropTypes.bool,\n is_p2p_enabled: PropTypes.bool,\n isOwner: PropTypes.bool,\n noCurrencyBalance: PropTypes.bool,\n onClick: PropTypes.func,\n preview: PropTypes.bool,\n reversed: PropTypes.bool,\n small: PropTypes.bool,\n }\n\n handleClick = e => {\n if (!this.props.canChipIn || this.props.noCurrencyBalance) {\n e.preventDefault()\n }\n if (this.props.onClick) {\n this.props.onClick(e)\n }\n }\n\n render() {\n const classes = clsx('vx_btn', 'vx_btn-block', {\n 'vx_btn-small': this.props.small,\n 'vx_btn-secondary': this.props.secondary,\n 'vx_btn-secondary_reversed': this.props.secondary && this.props.reversed,\n 'vx_btn-disabled': !this.props.canChipIn || this.props.noCurrencyBalance,\n })\n\n let LinkElement,\n linkProps = {}\n if (this.props.fullPageRefresh) {\n LinkElement = 'a'\n linkProps = { href: this.props.chipInHref }\n } else {\n LinkElement = Link\n linkProps = { to: this.props.chipInHref }\n }\n\n return (\n \n {this.props.canChipIn ? i18n('chip_in') : i18n('ended')}\n \n )\n }\n}\n\nexport default cssModules(ChipInButton, styles, { allowMultiple: true })\n","import { createSelector } from 'reselect'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\n\nexport default createSelector(\n [getCampaignSelector],\n campaign => !!campaign.is_owner\n)\n","import { createSelector } from 'reselect'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\n\nexport default createSelector(\n [getCampaignSelector],\n campaign => campaign.has_currency_balance\n)\n","import ChipInButton from './chip_in_button'\nimport { connect } from 'react-redux'\nimport { glimpseRoute } from 'lib/route_utils'\nimport { loginUrlSelector, isLoggedInSelector } from 'redux/selectors/login'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport isOwnerSelector from 'redux/selectors/is_owner'\nimport hasCurrencyBalanceSelector from 'redux/selectors/has_currency_balance'\nimport { getI18n } from 'client/i18n'\n\nconst i18n = getI18n('components/send_glimpse/send_confirm')\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n let chipInHref = glimpseRoute('send')\n let fullPageRefresh = false\n const hasCurrencyBalance = hasCurrencyBalanceSelector(state, props)\n const { is_p2p_enabled } = state.flags\n if (!isLoggedInSelector(state) && hasCurrencyBalance) {\n chipInHref = window.location.origin + chipInHref\n if (state.send_iframe.gs_bypass) {\n chipInHref += '?gsbps=true'\n }\n\n const onboardData = {\n 'country.x': state.country.country_code,\n 'locale.x': state.country.locale,\n intent: 'tesla',\n redirect_url: chipInHref,\n sendMoneyText: i18n('title', {\n name: campaign.owner.full_name,\n }),\n }\n const options = {\n returnUri: chipInHref,\n onboardData: `onboardData=${encodeURIComponent(\n JSON.stringify(onboardData)\n )}`,\n showGuest: state.can_guest,\n }\n chipInHref = loginUrlSelector(options)(state)\n fullPageRefresh = true\n }\n if (!campaign.can_chip_in || !is_p2p_enabled) {\n chipInHref = ''\n }\n const isOwner = isOwnerSelector(state, props)\n return {\n chipInHref,\n fullPageRefresh,\n isOwner,\n is_p2p_enabled,\n canChipIn: campaign.can_chip_in,\n noCurrencyBalance: isOwner && !hasCurrencyBalance,\n preview: campaign.preview,\n }\n}\nexport default connect(mapStateToProps)(ChipInButton)\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 { getI18n } from 'client/i18n'\nimport { formatDateShort, formatMoney } from 'client/griffin'\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'\n\nconst i18n = getI18n(['components/txn_row', 'components/txns_list'])\n\nclass 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 }\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: formatDateShort(new Date(date)),\n })\n } else {\n date = i18n('days_ago_{days}', { 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_name2', { 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 {formatMoney(this.props.currency, this.props.amount)}\n \n )}\n {this.props.note &&\n !this.props.removeExistingCommentFlag && (\n
\n {this.props.note}\n
\n )}\n
\n )\n }\n}\n\nexport default cssModules(PublicContributionRow, styles, {\n allowMultiple: true,\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 cssModules from 'react-css-modules'\nimport styles from './public_contributions_list.less'\nimport ChipInButton from '../pages/campaign/chip_in_button'\nimport { daysFromToday } from 'shared/helpers/datetime_helpers'\nimport { getI18n } from 'client/i18n'\nimport { formatMoney, getFullName } from 'client/griffin'\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'\n\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\nconst i18n = getI18n('components/txns_list')\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 formattedAttention = () => {\n let stringId\n if (this.props.goalRemaining) {\n if (this.props.daysRemaining) {\n stringId = 'attention_goal_and_days_{days}'\n } else {\n stringId = 'attention_goal_only'\n }\n } else if (this.props.daysRemaining) {\n stringId = 'attention_days_only_{days}'\n }\n return stringId\n ? i18n(stringId, {\n amount: formatMoney(this.props.currency, this.props.goalRemaining, {\n removeTrailingZeros: true,\n }),\n days: this.props.daysRemaining,\n })\n : ''\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 addPledgeToContributionList = () => {\n let contributionArray = this.props.contributions\n ? [...this.props.contributions]\n : []\n contributionArray.unshift({\n amount: this.props.pledge,\n anonymous: false,\n campaign_id: this.props.campaignId,\n contributor_id: this.props.ownerId,\n contributor_name: this.props.ownerName,\n contributor_photo: undefined,\n currency: this.props.currency,\n date: '',\n isPledge: true,\n })\n return contributionArray\n }\n\n render() {\n if (this.shouldSkipRenderingList()) return null\n let contributionList = this.props.contributions\n ? [...this.props.contributions]\n : null\n if (this.props.campaignType === CROWD_FUNDING && this.props.pledge) {\n contributionList = this.addPledgeToContributionList()\n }\n\n const ChipInCTA =\n this.shouldShowCallToChipIn() &&\n cssModules(\n ({ name, attentionMessage }) => (\n
\n
\n
\n
\n {i18n('help_organizer', { name })}\n
\n
{attentionMessage}
\n
\n
\n \n
\n
\n
\n ),\n styles\n )\n\n return (\n \n ) : (\n undefined\n )\n }\n rowElement={(contribution, key) => (\n \n )}\n />\n )\n }\n}\n\nexport default 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: state.flags && state.flags.removeExistingComment,\n ownerName:\n campaign.owner.business_name ||\n getFullName({\n givenName: campaign.owner.first_name,\n surname: campaign.owner.last_name,\n }),\n }\n})(cssModules(UnboundPublicContributionsList, styles))\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 'client/i18n'\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 PublicContributionsList from 'components/contributions_list/public_contributions_list'\nimport OrganizerUpdateDetail from 'components/glimpses/edit_glimpse/organizer_update_detail/organizer_update_detail'\nimport { trackFPTI, organizerUpdateState } from 'lib/fpti_utils'\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 isOrganizerUpdatesEnabled: PropTypes.bool,\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
\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 } else {\n return (\n
\n \n \n \n
\n )\n }\n }\n\n render() {\n const {\n campaignId,\n organizerUpdate,\n campaign,\n isOrganizerUpdatesEnabled,\n } = this.props\n const postUpdateUrl = `c/${campaignId}/postupdate`\n const organizerUpdateItem = _get(organizerUpdate, 'items', [])\n let contributionCount = _get(this.props, 'contributionsCount', 0)\n if (this.props.pledge > 0) {\n contributionCount = contributionCount + 1\n }\n const updateState = organizerUpdateState(organizerUpdate)\n trackFPTI(campaign, 'impression', 'dw_giving_detail_about_tab_shown')\n trackFPTI(\n campaign,\n 'impression',\n 'dw_giving_detail_updates_tab_shown',\n '',\n '',\n '',\n updateState\n )\n return (\n \n ) : (\n \n ),\n id: 'contributors-tab',\n panelId: 'contributors-tab',\n },\n ]}\n onClick={this.tabHandler.bind(this)}\n >\n \n \n \n \n {isOrganizerUpdatesEnabled ? (\n this.updatesComponent(\n organizerUpdateItem,\n campaignId,\n campaign,\n updateState,\n postUpdateUrl\n )\n ) : (\n \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 isOrganizerUpdatesEnabled: state.flags.isOrganizerUpdatesEnabled,\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 { getI18n } from 'client/i18n'\nimport {\n detailDaysFromToday,\n formatTime,\n} from 'shared/helpers/datetime_helpers'\nimport { HeadingText } from '@paypalcorp/pp-react'\n\nimport styles from './count_down.less'\n\nexport const I18N_CONTEXT = 'components/common/count_down'\nconst i18n = getI18n(I18N_CONTEXT)\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 {i18n('days')}\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 { getI18nBase } from 'client/i18n'\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 = getI18nBase('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 'client/i18n'\nimport {\n PhoneIcon,\n ShareWhatsappIcon,\n EmailIcon,\n ShareFacebookIcon,\n ShareMessengerIcon,\n ShareTwitterIcon,\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 { decodeCampaignId } from 'shared/campaign_url'\nimport _get from 'lodash/get'\n\nconst { ENTER_KEY } = KEY_PRESS_EVENTS\n\nconst i18n = getI18n('components/share_buttons')\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}\n\nconst handleIconClick = (socialNetwork, props, event) => {\n event.preventDefault()\n const shareText = props.shareText || props.shareUrl\n const charity = props.charity\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 = props.shareMsgWhatsapp || shareText\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\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(props.shareMsgTwitter || shareText, 640, 480)\n break\n\n case 'whats-app':\n window.open(whatsappUrl)\n break\n\n case 'email':\n shareByEmail(props.emailSubject, props.emailBody || shareText)\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 : 'dw_giving_share_channel_pressed',\n link_name: socialNetwork,\n opt_sel: socialNetwork,\n flow:\n charity && charity.name\n ? 'GENEROSITY_NETWORK_CHARITIES'\n : 'GENEROSITY_NETWORK',\n charityname: charity && charity.name,\n crid: charity && charity.nonprofit_id,\n campaign_id: decodeCampaignId(props.campaignId),\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\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 &&
{i18n('email')}
}\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 &&
{i18n('twitter')}
}\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 &&
{i18n('facebook')}
}\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 &&
{i18n('messenger')}
}\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 &&
{i18n('whatsapp')}
}\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 &&
{i18n('sms')}
}\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 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 } from 'shared/shared_consts'\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\n return {\n campaign,\n isCopySuccess,\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 connect(\n mapStateToProps,\n mapDispatchToProps\n)(ShareButton)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './donate_button.less'\nimport { getI18n } from 'client/i18n'\nimport { Button } from '@paypalcorp/pp-react'\nimport { trackClick } from '../../../../lib/fpti_analytics'\nimport { INSTRUMENT_EVENTS, INSTRUMENT_TAGS } from 'shared/shared_consts'\n\nconst i18n = getI18n('components/donate_button')\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 charityname: campaign.charity && campaign.charity.name,\n crid: campaign.charity && campaign.charity.nonprofit_id,\n },\n })\n this.props.createDNWTransaction({ campaignId: campaign.id })\n }\n\n render() {\n if (this.props.preview) {\n return (\n \n {i18n('donate')}\n \n )\n } else if (!this.props.canDonate || !this.props.canChipIn) {\n return null\n } else {\n return (\n <>\n \n {i18n('donate')}\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 { getI18n } from 'client/i18n'\nimport FirstChild from 'components/common/first_child'\nimport { trackClick } from 'lib/fpti_analytics'\n\nconst TOOLTIP_ANIMATION_DURATION = 250\nconst TOOLTIP_SHOW_DELAY = 750\n\nconst i18n = getI18n('components/common/copy_box')\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 }\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 const { charity } = this.props\n trackClick({\n clickName: 'copy',\n data: {\n event_name: 'dw_giving_share_channel_pressed',\n link_name: 'copy',\n flow:\n charity && charity.name\n ? 'GENEROSITY_NETWORK_CHARITIES'\n : 'GENEROSITY_NETWORK',\n charityname: charity && charity.name,\n crid: charity && charity.nonprofit_id,\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 {i18n('copy')}\n \n \n {this.state.showTooltip && (\n
    {i18n('copied')}
    \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 { getI18n } from 'client/i18n'\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'\n\nconst i18n = getI18n('components/share_campaign_compact')\n\nclass ShareCampaignCompact 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 emailBody: PropTypes.string,\n emailSubject: PropTypes.string,\n isMobile: PropTypes.bool,\n charity: PropTypes.object,\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 }\n\n render() {\n let shareText = this.props.displayUrl\n if (!this.props.shareable) {\n shareText = i18n('link_placeholder')\n }\n\n return (\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\nexport default cssModules(ShareCampaignCompact, styles)\n","import ShareCampaign from './share_campaign_compact'\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'\n\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './report_link.less'\nimport { getI18n } from 'client/i18n'\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 flow: this.props.charity\n ? 'GENEROSITY_NETWORK_CHARITIES'\n : 'GENEROSITY_NETWORK',\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 let 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 'client/i18n'\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/illustrations/focused/svg/find-a-charity.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/illustrations/focused/svg/deliver-donation.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/illustrations/focused/svg/donation-receipt.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 { getI18n } from 'client/i18n'\n\nconst i18n = getI18n('components/crowdfunding_charity_detail_view')\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 \"charity\n \n\n \n {i18n('powered_by')}\n \n\n \n {i18n('secure_funds')}\n \n\n \n {i18n('how_it_works')}\n \n\n \n \n
      \n
    1. {i18n('charity_donation_process_step1')}
    2. \n\n
    3. {i18n(`charity_donation_process_step2_${countryCode}`)}
    4. \n\n
    5. {i18n('charity_donation_process_step3')}
    6. \n\n
    7. {i18n('charity_donation_process_step4')}
    8. \n\n
    9. {i18n('charity_donation_process_step5')}
    10. \n\n {isCountryCodeUS && (\n
    11. {i18n('charity_donation_process_step6')}
    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 { getI18n } from 'client/i18n'\nimport { Button, HeadingText, BodyText } from '@paypalcorp/pp-react'\nimport { getCdnHostName } from '@paypalcorp/instance-location'\n\nconst i18n = getI18n('components/common/standard_error')\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 }\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) return
    {icon}
    \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 render() {\n return (\n
    \n {this.renderIcon()}\n \n {this.props.title}\n \n \n {this.props.subtitle}\n \n {this.props.showButton && (\n \n {this.props.backButton ? i18n('back') : i18n('try_again')}\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 'client/i18n'\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 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 CrowdFundingPage from 'components/crowdfunding_page'\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 GoalsIcon,\n} from '@paypalcorp/pp-react'\nimport clsx from 'clsx'\n\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 { formatDate } from 'client/griffin'\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 'lib/campaign'\nimport PublicContributionsList from 'components/contributions_list/public_contributions_list'\nimport { Message } from '@paypalcorp/worldready-react'\nimport { getI18n } from 'client/i18n'\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 {i18n2('limit-reached')}\n {` ${formattedEndDate}`}\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 isOrganizerUpdatesEnabled: PropTypes.bool,\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 const charity = this.props.campaign && this.props.campaign.charity\n const fptiPayload = {\n event_name: event,\n flow:\n charity && charity.name\n ? 'GENEROSITY_NETWORK_CHARITIES'\n : 'GENEROSITY_NETWORK',\n charityname: charity && charity.name,\n crid: charity && charity.nonprofit_id,\n }\n if (eventType === 'impression') {\n trackImpression(fptiPayload)\n } else {\n trackClick({\n clickName: event,\n data: fptiPayload,\n })\n }\n }\n\n renderReportingLink = (isPreview, is_owner, id, isGnc = false) => (\n
    \n {!isPreview && !is_owner && }\n
    \n )\n\n handleClickFindMore = event => {\n const { charity } = this.props.campaign\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 flow:\n charity && charity.name\n ? 'GENEROSITY_NETWORK_CHARITIES'\n : 'GENEROSITY_NETWORK',\n charityname: charity && charity.name,\n crid: charity && charity.nonprofit_id,\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 } = this.props.campaign\n const {\n isLoadingDNWTransaction,\n isEdit = false,\n paymentsTokenError,\n clearDNWTransactionError,\n setIsLoading,\n hostName,\n countryCode,\n hasMarketplaceTreatment,\n isOrganizerUpdatesEnabled,\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 \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 {isOrganizerUpdatesEnabled && (\n
    \n \n \n \n \n
    \n )}\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 {isPPGFCharity && (\n \n \n
    \n \n
    \n\n {this.state.showGivingFundTermsModal && (\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 { glimpseRoute } from 'lib/route_utils'\nimport { Dialog, Button, HeadingText, BodyText } 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 }\n\n render() {\n let propsToTransfer = { ...this.props }\n delete propsToTransfer.styles\n return (\n \n
    \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 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 { 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 id: PropTypes.string,\n isControlledComponent: PropTypes.boolean,\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 PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport { Link } from 'react-router'\nimport { getI18n, getI18nBase } from 'client/i18n'\nimport CharityCard from 'components/common/charity_card'\nimport DateInputBox from 'components/common/date_input_box'\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 { formatDateShort, getDefaultCurrencyCode } from 'client/griffin'\nimport {\n TextInput,\n HeadingText,\n Dialog,\n Button,\n DropdownMenu,\n TextArea,\n BodyText,\n Link as PPLink,\n DeleteIcon,\n} from '@paypalcorp/pp-react'\nimport { trackClick, trackImpression } from 'lib/fpti_analytics'\nimport _get from 'lodash/get'\nimport { INVALID_IMAGE, TOAST_NOTIFICATIONS } from 'shared/shared_consts'\nimport { decodeCampaignId } from 'shared/campaign_url'\nimport CurrencyInputBox from 'components/common/currency_input'\n\nconst i18n = getI18n('components/edit_glimpse/edit_main')\nconst i18nBase = getI18nBase('components/edit_glimpse/edit_main')\nconst i18nGoalAmount = getI18n('components/pages/crowdfunding/pool_basics')\n\nconst getGoalAmountTitle = (charity, formattedMaxGoalAmount) => {\n if (charity) {\n return i18nGoalAmount('goal_amount_title_gnc')\n }\n return i18nBase('amount_cf', {\n maxGoalAmount: formattedMaxGoalAmount,\n })\n}\nclass EditMain extends React.Component {\n static propTypes = {\n fields: PropTypes.object.isRequired,\n ended: PropTypes.bool,\n showDelete: PropTypes.bool,\n location: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n onReopen: PropTypes.func,\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 stepRef: PropTypes.func,\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 }\n\n state = {\n charCount: 0,\n isOpen: false,\n editedCampagin: this.props.campaign,\n showBackDialog: false,\n callback: null,\n showDeleteDialog: false,\n }\n\n handleKeyUp = e => {\n const content = e.target.value.length\n this.setState({\n charCount: content,\n })\n }\n handleModalClick = e => {\n e.preventDefault()\n this.trackEvents('dw_giving_edit_fundraiser_preview_pressed')\n this.setData()\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 ...this.getFTPITags(),\n },\n })\n this.trackEvents('dw_giving_fundraiser_preview_dismiss_pressed')\n }\n\n setData() {\n const {\n fields: {\n poolName,\n endDate,\n goalAmount,\n category,\n description,\n backgroundImage,\n backgroundImageFilename,\n backgroundPan,\n gradientColor,\n },\n } = this.props\n let newCampaign = Object.assign(this.state.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 this.setState({\n editedCampagin: newCampaign,\n isOpen: true,\n })\n trackImpression({\n event_name: 'dw_giving_fundraiser_preview_screen_shown',\n ...this.getFTPITags(),\n })\n }\n\n handleSubmit = formValues => {\n const saveEvent = this.state.showBackDialog\n ? 'dw_giving_quit_editing_fundraiser_save_pressed'\n : 'dw_giving_edit_fundraiser_save_pressed'\n this.trackEvents(saveEvent)\n this.setState({ showBackDialog: false, callback: null })\n return this.props\n .onSave(formValues)\n .then(() => {\n this.editBack()\n this.props.onToggleToast(TOAST_NOTIFICATIONS.EDIT_SUCCESS)\n })\n .catch(err => {\n if (err.error === INVALID_IMAGE) {\n this.props.router.push({\n pathname: appendPath(location.pathname, 'manage/error'),\n })\n return\n }\n this.props.router.push({\n pathname: appendPath(location.pathname, 'error'),\n state: { updateData: err.updateData },\n })\n })\n }\n\n componentDidMount() {\n if (this.props.stepRef) {\n this.props.stepRef(this)\n }\n }\n\n editBack = () => {\n const { params: { hideBack = false } = {} } = this.props.router\n if (hideBack) {\n this.props.router.push({\n pathname: '/pools',\n state: { reloadTransactions: false, campaignId: this.props.campaignId },\n })\n } else {\n this.props.router.goBack()\n }\n }\n\n confirmNavigation = callback => {\n this.trackEvents('dw_giving_edit_fundraiser_quit_pressed')\n if (this.props.dirty) {\n this.setState({ showBackDialog: true, callback })\n trackImpression({\n event_name: 'dw_giving_quit_editing_fundraiser_screen_shown',\n ...this.getFTPITags(),\n })\n } else {\n this.editBack()\n }\n }\n\n getFTPITags = () => {\n const { campaign } = this.props\n return {\n flow: this.props.charity\n ? 'GENEROSITY_NETWORK_CHARITIES'\n : 'GENEROSITY_NETWORK',\n campaignId: decodeCampaignId(campaign.id),\n }\n }\n\n handleDialogClose = () => {\n this.setState({ showBackDialog: false })\n }\n\n handledeleteDialogClose = () => {\n this.trackEvents('dw_giving_delete_fundraiser_cancel_pressed')\n this.setState({ showDeleteDialog: false })\n }\n\n handleDeleteOk = () => {\n this.trackEvents('dw_giving_delete_fundraiser_confirm_pressed')\n }\n\n handleQuit = () => {\n this.trackEvents('dw_giving_quit_editing_fundraiser_without_save_pressed')\n this.editBack()\n this.setState({ showBackDialog: false, callback: null })\n }\n\n trackEvents = event_name => {\n trackClick({\n clickName: event_name,\n data: {\n event_name,\n ...this.getFTPITags(),\n },\n })\n }\n\n handleDelete = () => {\n this.trackEvents('dw_giving_edit_fundraiser_delete_pressed')\n\n this.setState({\n showDeleteDialog: true,\n })\n trackImpression({\n event_name: 'dw_giving_delete_fundraiser_screen_shown',\n ...this.getFTPITags(),\n })\n }\n\n render() {\n const {\n fields: {\n poolName,\n goalAmount,\n endDate,\n category,\n description,\n anyInactiveFieldsTouchedWithError,\n },\n charity,\n formattedMaxGoalAmount,\n timeZone,\n currency,\n } = this.props\n const { handleSubmit } = this.props\n\n return (\n
    \n {this.state.showBackDialog && (\n \n )}\n {this.state.showDeleteDialog && (\n \n )}\n \n {i18n('edit_title_cf')}\n \n {charity && (\n <>\n
    {i18n('charity')}
    \n \n
    {i18n('charity_subtitle')}
    \n \n )}\n {i18n('detail_title_cf')}\n {this.props.ended && (\n
    \n {i18n('ended', {\n endDate: formatDateShort(endDate.value),\n })}\n
    \n )}\n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n \n {i18n('about_titile_cf')}\n \n {!charity && (\n
    \n category.onChange(event.target.value)}\n />\n
    \n )}\n
    \n
    \n \n
    \n
    \n {!this.props.isAndroid && (\n <>\n \n {i18n('photo_titile_cf')}\n \n
    \n \n
    \n \n )}\n\n {this.props.showDelete && (\n {\n if (e.key === 'Enter') {\n this.handleDelete()\n }\n }}\n tabIndex={0}\n leftIcon={}\n >\n {i18n('delete_cf_title')}\n \n )}\n \n {i18n('save_cf')}\n \n \n {i18n('preview_cf')}\n \n \n {i18n('preview_cf')}\n \n }\n >\n \n \n \n )\n }\n}\n\nexport default cssModules(EditMain, styles)\n","export const TITLE_LENGTH = 70\nexport const DESCRIPTION_LENGTH = 1000\nexport const CROWDFUNDING_DESCRIPTION_LENGTH = 1000\nexport const NOTE_LENGTH = 400\n\nexport const DESCRIPTION_ROWS = 6\nexport const SEND_NOTE_ROWS = 3\n\nexport const SHARE_MESSAGE_LENGTH = 250\n","import { normalizeDate, getTimeZone } from 'client/griffin'\nimport { getJSONFromScript } from 'lib/server_params'\n\nfunction dateFormatValidator(field, message) {\n return values => {\n if (!(values[field] instanceof Date)) {\n if (!values[field]) {\n return {}\n }\n\n const dateObj = normalizeDate(values[field], {\n timeZone: getTimeZone(),\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 = 1\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 let validators = []\n\n let deviceInfo = getJSONFromScript('store').device_info\n if (!deviceInfo.isMobile) {\n validators.push(dateFormatValidator(fieldName, message))\n }\n\n return validators\n}\n","import { CROWDFUNDING_GOAL_AMOUNT } from '../shared_consts'\n\nexport function getMinMaxAmount(campaign) {\n return CROWDFUNDING_GOAL_AMOUNT[campaign.currency] || {}\n}\n","import { getI18n } from 'client/i18n'\nimport {\n AMOUNT_TYPES,\n CROWDFUNDING_CAMPAIGN_MAX_DAYS,\n} from 'shared/shared_consts'\nimport { CROWDFUNDING_DESCRIPTION_LENGTH, TITLE_LENGTH } from 'shared/lengths'\nimport EditMain from './edit_main_cf'\nimport {\n getTranslatedCategoryList,\n isValidCategory,\n getCategoryLabel,\n filterDepreciatedCategory,\n sortCategory,\n} from 'lib/category'\nimport {\n combine,\n required,\n atMost,\n atLeast,\n length,\n futureDate,\n} from 'lib/validators'\nimport { endDateValidators, maxDaysValidator } from 'lib/end_date_validators'\nimport { reduxForm } from 'redux-form'\nimport { updateRemotely } from 'redux/modules/campaign'\nimport formUtils from 'lib/form_utils'\nimport { formatMoney, getTimeZone } from 'client/griffin'\nimport { show as showComingSoon } from 'redux/modules/coming_soon_dialog'\nimport { getCampaignSelector, isGNSelector } from 'redux/selectors/campaign'\nimport { show } from 'redux/modules/toast_notification'\nimport _get from 'lodash/get'\nimport { getMinMaxAmount } from 'shared/helpers/campaign'\n\nconst i18n = getI18n('components/edit_glimpse/edit_main')\nconst i18n_end_date = getI18n('components/edit_glimpse/edit_end_date')\n\nfunction stringifyContributionPrefs(campaign) {\n switch (campaign.amount_type) {\n case AMOUNT_TYPES.any:\n return i18n('any')\n case AMOUNT_TYPES.at_least:\n return i18n('at_least', {\n amount: formatMoney(campaign.currency, campaign.amount),\n })\n case AMOUNT_TYPES.exactly:\n return i18n('exactly', {\n amount: formatMoney(campaign.currency, campaign.amount),\n })\n default:\n return 'UNKNOWN'\n }\n}\n\nfunction stringifyPublicTrackingPrefs(campaign) {\n let 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 i18n('tracking_prefs_' + octal)\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 categoryQueryParam = _get(state, 'queryParams.category')\n const charity = campaign.charity\n\n let MIN_AMOUNT\n let MAX_AMOUNT\n let formattedMaxGoalAmount\n let formattedMinGoalAmount = formatMoney(\n campaign.currency,\n state.flags.min_amount_donation,\n {\n removeTrailingZeros: true,\n }\n )\n\n let categoryList = getTranslatedCategoryList(state)\n\n categoryList = filterDepreciatedCategory(categoryList, isNewCategoryEnabled)\n categoryList = sortCategory(categoryList)\n\n // category initial/default value\n const category =\n campaign.category ||\n (isValidCategory(state, categoryQueryParam)\n ? categoryQueryParam\n : categoryList[0].value)\n\n let validators = [\n required('description', i18n('description_required')),\n length(\n 'description',\n CROWDFUNDING_DESCRIPTION_LENGTH,\n i18n('description_too_long', {\n maxLength: CROWDFUNDING_DESCRIPTION_LENGTH,\n })\n ),\n length('poolName', TITLE_LENGTH, i18n('pool_name_too_long')),\n required(\n 'poolName',\n i18n('pool_name_is_required_cf', { maxCharLength: TITLE_LENGTH })\n ),\n required('endDate', i18n_end_date('end_date_required_cf')),\n ...endDateValidators(\n 'endDate',\n i18n_end_date('invalid_date', {\n maxdays: CROWDFUNDING_CAMPAIGN_MAX_DAYS,\n })\n ),\n maxDaysValidator(\n 'endDate',\n startDate,\n CROWDFUNDING_CAMPAIGN_MAX_DAYS,\n i18n_end_date('invalid_date_limit_cf', {\n maxdays: CROWDFUNDING_CAMPAIGN_MAX_DAYS,\n })\n ),\n ]\n\n if (campaign && campaign.can_chip_in) {\n validators.push(futureDate('endDate', i18n_end_date('date_must_be_future')))\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 formattedMaxGoalAmount = formatMoney(campaign.currency, MAX_AMOUNT, {\n removeTrailingZeros: true,\n })\n formattedMinGoalAmount = formatMoney(campaign.currency, MIN_AMOUNT, {\n removeTrailingZeros: true,\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 return {\n validate: combine(\n ...validators,\n required(\n 'goalAmount',\n i18n('goal_amount_required_cf', { amount: formattedMinGoalAmount })\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 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),\n tracking: stringifyPublicTrackingPrefs(campaign),\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 }\n}\n\nconst mapDispatchToProps = (dispatch, { campaignId }) => {\n return {\n onReopen() {\n dispatch(showComingSoon())\n },\n onSave(formValues) {\n return dispatch(\n updateRemotely(campaignId, {\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 )\n },\n onToggleToast(toastId) {\n dispatch(show(toastId))\n },\n }\n}\n\nexport default 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","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { getI18n } from 'client/i18n'\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 />\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 { 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 styles from './pledge.less'\nimport { getI18n, getI18nBase } from 'client/i18n'\nimport CurrencyInputBox from 'components/common/currency_input'\nimport { exitGlimpse } from 'lib/glimpse'\nimport { routerShape } from 'react-router/lib/PropTypes'\nimport { sendEnsightenEvent } from 'lib/ensighten_analytics'\nimport { trackClick } from 'lib/fpti_analytics'\nimport { toCFPBStringId } from 'client/lib/cfpb'\nimport { POOLS_CAMPAIGN_TYPES } from 'shared/shared_consts'\nimport { HeadingText, Button } from '@paypalcorp/pp-react'\nimport { getDefaultCurrencyCode } from 'client/griffin'\nimport { getFormError } from 'lib/validators'\n\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\n\nconst i18n = getI18n('components/chip_in_glimpse/pledge')\nconst i18nBase = getI18nBase('components/chip_in_glimpse/pledge')\n\nclass Pledge extends React.Component {\n static propTypes = {\n fields: PropTypes.object.isRequired,\n onPledge: PropTypes.func,\n currency: PropTypes.string,\n campaignType: PropTypes.string,\n handleSubmit: PropTypes.func,\n router: routerShape.isRequired,\n minAmount: PropTypes.number,\n isCrowdfunding: PropTypes.bool,\n campaignTitle: PropTypes.string,\n }\n\n handleSubmit = 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: this.props.currency,\n },\n })\n return this.props\n .onPledge(formValues)\n .then(() => this.postPledge(formValues))\n }\n postPledge = formValues => {\n if (this.props.campaignType === CROWD_FUNDING) {\n const { pathname } = this.props.router.location\n const nextPathname = `${pathname}/complete`\n this.props.router.push({\n pathname: `${nextPathname}`,\n state: {\n params: {\n currency: this.props.currency,\n campaignTitle: this.props.campaignTitle,\n pledge: formValues.pledge,\n },\n },\n })\n } else {\n exitGlimpse('chip_in', this.props.router)\n }\n }\n\n render() {\n const {\n fields: { pledge },\n handleSubmit,\n minAmount,\n isCrowdfunding,\n } = this.props\n\n const subTitle = isCrowdfunding ? (\n \n {i18n('subtitle_cf')}\n \n ) : (\n i18n('subtitle')\n )\n\n return (\n
    \n {!isCrowdfunding &&
    {i18n('title')}
    }\n
    \n
    {subTitle}
    \n \n
    \n {i18n(`${isCrowdfunding ? 'text_cf' : toCFPBStringId('text')}`)}\n
    \n \n \n
    \n )\n }\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'\nimport { CROWD_FUNDING } from 'shared/shared_consts'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n const isCrowdfunding = campaign.campaign_type === CROWD_FUNDING\n\n return {\n currency: campaign.currency,\n maxAmount: campaign.max_amount,\n campaignType: campaign.campaign_type,\n initialValues: {\n pledge: campaign.pledge || 0,\n },\n minAmount: state.flags.min_amount_donation,\n isCrowdfunding: isCrowdfunding,\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 { getI18n } from 'client/i18n'\nimport { Button, HeadingText } from '@paypalcorp/pp-react'\nimport { formatMoney } from 'client/griffin'\nimport { Link as RouterLink } from 'react-router'\nimport { trackClick } from 'lib/fpti_analytics'\n\nconst i18n = getI18n('components/edit_glimpse/pledge_success')\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 formattedPledgeAmount = formatMoney(currency, pledge)\n const { cdnHost } = props.geo\n\n if (!params) {\n return null\n }\n return (\n
    \n \n \n {i18n('success_title', {\n pledge: formattedPledgeAmount,\n campaignTitle: campaignTitle,\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 >\n {i18n('done_button')}\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 base_url = `https://${paypalDomain}/${countryCode}/webapps/mpp/ua/`\n if (USER_AGREEMENT_LINK_COUNTRIES.indexOf(countryCode) > -1) {\n return `${base_url}useragreement-full`\n } else {\n return `${base_url}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 { getI18n } from 'client/i18n'\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'\n\nconst i18n = getI18n('components/pages/create/create')\n\nclass CountryBlocked extends React.Component {\n static 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 }\n\n static defaultProps = {\n showClose: false,\n }\n\n handleClose = () => {\n exitGlimpse('send', this.props.router)\n }\n\n render() {\n const {\n money_pool_creation_blocked,\n crowdfunding_enabled,\n paypalDomain,\n countryCode,\n } = this.props\n let titleJSX = i18n('moneypool_blocked_title', {\n tc_link: getMoneyPoolTNCLink(paypalDomain, countryCode),\n })\n\n const title = money_pool_creation_blocked ? (\n \n ) : (\n i18n('blocked_title')\n )\n\n const crowdfunding_enabled_subtitle = !crowdfunding_enabled\n ? i18n('error_eligible_sub_title')\n : ''\n const subtitle = money_pool_creation_blocked\n ? crowdfunding_enabled_subtitle\n : i18n('blocked_subtitle', { country: this.props.countryName })\n let button = null\n const iconType =\n money_pool_creation_blocked && !crowdfunding_enabled\n ? 'empty-critical'\n : 'warning'\n if (money_pool_creation_blocked && !crowdfunding_enabled) {\n button = (\n \n {i18n('error_not_enabled_button')}\n \n )\n } else if (money_pool_creation_blocked && crowdfunding_enabled) {\n button = (\n \n )\n }\n return (\n \n \n \n )\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 }\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 'client/i18n'\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 }\n\n handleAnalyticsEvent(flow) {\n trackClick({\n clickName: 'account_overview',\n data: {\n flow: flow,\n },\n })\n }\n\n render() {\n let isCreationLimitReached = false\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 flow: flow,\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 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 } else {\n ctaInfo.label = i18n('go_to_account_button')\n ctaInfo.target = '/myaccount/summary'\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 />\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 if (campaignType === CROWD_FUNDING) {\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 } else {\n return cipStatusObj.CIPStatus.PUBLIC_MONEY_POOL\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_campaign_textarea.less'\nimport { getI18n } from 'client/i18n'\nimport Clipboard from 'clipboard'\nimport FirstChild from 'components/common/first_child'\nimport ReactCSSTransitionGroup from 'react-transition-group/CSSTransitionGroup'\nimport { DESCRIPTION_ROWS, SHARE_MESSAGE_LENGTH } from 'shared/lengths'\nimport { TextArea, Link, LinkIcon } from '@paypalcorp/pp-react'\nimport { trackClick } from 'lib/fpti_analytics'\nimport clsx from 'clsx'\n\nimport {\n EmailSharing,\n TwitterSharing,\n FacebookSharing,\n MessengerSharing,\n WhatsAppSharing,\n SmsSharing,\n} from 'components/common/share_buttons'\n\nconst TOOLTIP_SHOW_DELAY = 750\nconst TOOLTIP_ANIMATION_DURATION = 250\n\nconst i18n = getI18n('components/share_campaign_textarea')\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 textPlaceholder: PropTypes.string,\n charity: PropTypes.object,\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 }\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.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 const charity = this.props.charity\n trackClick({\n clickName: 'copy',\n data: {\n event_name: 'dw_giving_share_channel_pressed',\n link_name: 'copy',\n flow:\n charity && charity.name\n ? 'GENEROSITY_NETWORK_CHARITIES'\n : 'GENEROSITY_NETWORK',\n charityname: charity && charity.name,\n crid: charity && charity.nonprofit_id,\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 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 {this.state.errorMsg && (\n <>\n {i18n('error')}\n \n )}\n
    \n \n\n {this.props.isMobile && (\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 \n \n {this.props.showSubtext && (\n
    {i18n('copy')}
    \n )}\n \n {this.state.showTooltip && (\n
    {i18n('copied')}
    \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 { Link, ChatIcon } from '@paypalcorp/pp-react'\nimport PropTypes from 'prop-types'\nimport styles from './feedback_link.less'\nimport { getI18n } from 'client/i18n'\n\nexport const I18N_CONTEXT = 'components/pages/crowdfunding/pool_share'\nconst i18n = getI18n(I18N_CONTEXT)\n\nconst propTypes = {\n activeFeedbackName: PropTypes.string,\n reloadQualtrics: PropTypes.function,\n uniqueFeedbackName: PropTypes.string,\n}\n\nconst FeedbackLink = ({\n activeFeedbackName,\n reloadQualtrics,\n uniqueFeedbackName,\n}) => {\n const handleClick = e => {\n e.preventDefault()\n reloadQualtrics(uniqueFeedbackName)\n }\n\n // activeFeedback is called once on page load, to manually trigger call for\n // survey but it will only open when qualtrics config allows which is currently\n // set to 10%\n React.useEffect(() => {\n reloadQualtrics(activeFeedbackName)\n }, [])\n\n return (\n
    \n \n \n {i18n('feedback_link')}\n \n
    \n )\n}\n\nFeedbackLink.propTypes = propTypes\nexport default FeedbackLink\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 'client/i18n'\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 QUALTRICS_GN_CREATION_ACTIVE_FEEDBACKLINK,\n QUALTRICS_GN_CREATION_FEEDBACKLINK,\n QUALTRICS_GNC_CREATION_ACTIVE_FEEDBACKLINK,\n QUALTRICS_GNC_CREATION_FEEDBACKLINK,\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 { BodyText, Button, HeadingText } from '@paypalcorp/pp-react'\nimport CampaignEligibility from 'components/common/campaign_eligibility'\nimport { dexterURL, decodeCampaignId } from 'shared/campaign_url'\nimport { trackImpression, trackEventNameClick } from 'lib/fpti_analytics'\nimport FeedbackLink from 'components/feedback_link'\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 charity: PropTypes.object,\n paypalDomain: PropTypes.string,\n route: PropTypes.object,\n enable_ces_link: PropTypes.bool,\n cdnHost: PropTypes.string,\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 render() {\n let Component\n const {\n creationError,\n charity,\n enable_ces_link,\n paypalDomain,\n route,\n } = this.props\n const hideLogo = get(this.props, 'params.hideLogo', false)\n const hideButton = get(this.props, 'params.hideButton', false)\n const isPublishPath = route && route.path === 'publish'\n const isShowingCESLink = isPublishPath && enable_ces_link\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 flow: charity ? 'GENEROSITY_NETWORK_CHARITIES' : 'GENEROSITY_NETWORK',\n event_name: 'dw_giving_failed_customer_interaction_occurred',\n screen: 'publish',\n })\n }\n\n if (creationError.error === UNDER_REVIEW_ERROR) {\n Component = (\n \n )\n } else if (CIP_ELIGIBILITY_CODES.hasOwnProperty(creationError.error)) {\n if (CIP_ELIGIBILITY_CODES[creationError.error] === 'NEED_MORE_DATA') {\n const returnUrl = getDexterReturnUrl(\n '/pools/c/create-crowdfunding/basics'\n )\n location.href = dexterURL(returnUrl)\n return\n } else {\n Component = (\n \n )\n }\n } else if (creationError.error === COUNTRY_NOT_SUPPORTED) {\n Component = (\n \n {i18n('error_country_eligible_button')}\n \n }\n />\n )\n } else {\n Component = (\n \n )\n }\n } else if (this.campaignCreated(this.props)) {\n if (isPublishPath) {\n trackImpression({\n event_name: 'dw_giving_fundraiser_publish_screen_shown',\n charity_name: charity && charity.name,\n flow:\n charity && charity.name\n ? 'GENEROSITY_NETWORK_CHARITIES'\n : 'GENEROSITY_NETWORK',\n npid: charity && charity.nonprofit_id,\n campaignId: decodeCampaignId(this.props.campaignId),\n })\n }\n\n Component = (\n
    \n {!hideLogo && (\n
    \n \n
    \n )}\n\n \n {i18n('share_title')}\n \n {i18n('share_your_page')}\n
    \n \n
    \n {!hideButton && (\n \n trackEventNameClick({\n event_name: 'dw_giving_fundraiser_publish_view_pressed',\n charity_name: charity && charity.name,\n npid: charity && charity.nonprofit_id,\n campaignId: decodeCampaignId(this.props.campaignId),\n flow:\n charity && charity.name\n ? 'GENEROSITY_NETWORK_CHARITIES'\n : 'GENEROSITY_NETWORK',\n })\n }\n >\n {i18n('see_my_story')}\n \n )}\n {isShowingCESLink && (\n \n )}\n
    \n )\n } else {\n // assume operatingRemotely\n trackImpression({\n pageName: 'create:spinner',\n flow:\n charity && charity.name\n ? 'GENEROSITY_NETWORK_CHARITIES'\n : 'GENEROSITY_NETWORK',\n })\n Component = (\n
    \n
    \n
    {i18n('creating')}
    \n
    \n )\n }\n\n return {Component}\n }\n}\n\nexport default cssModules(CrowdfundingShare, styles)\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, { I18N_CONTEXT } 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 { formatDateShort, formatMoney } from 'client/griffin'\nimport { getI18n } from 'client/i18n'\nimport _get from 'lodash/get'\n\nconst i18n = getI18n(I18N_CONTEXT)\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 const shareMessage = i18n('share_message', {\n goalAmount: formatMoney(campaign.currency, campaign.goal, {\n removeTrailingZeros: true,\n }),\n expiryDate: formatDateShort(campaign.end_date),\n shareUrl: urlWithMeDomain,\n campaignTitle: campaign.title,\n })\n const shareDescription = _get(shareMessage, 'props.children', shareMessage)\n\n return {\n campaignId,\n charity: campaign.charity,\n operatingRemotely: campaign.operatingRemotely,\n poolUrl: urlWithMeDomain,\n creationError: campaign.err,\n shareDescription,\n paypalDomain: state.geo.paypalDomain,\n enable_ces_link: state.flags.enable_ces_link,\n cdnHost: state.geo.cdnHost,\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 React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport { getI18n } from 'client/i18n'\nimport styles from './transfer_review_box.less'\nimport { formatMoney } from 'client/griffin'\nimport { toCFPBStringId } from 'client/lib/cfpb'\nimport { BodyText, CaptionText } from '@paypalcorp/pp-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 }\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 {formatMoney(this.props.currency, this.props.amount)}\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 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 { getI18n } from 'client/i18n'\nimport TransferReviewBox from '../transfer_review_box'\nimport StandardError from 'components/common/standard_error'\nimport styles from './delete_review.less'\n\nconst i18n = getI18n('components/edit_glimpse/edit_delete')\n\nclass DeleteReview extends React.Component {\n static propTypes = {\n campaignId: PropTypes.string.isRequired,\n moneyBoxAmount: PropTypes.number,\n onDelete: PropTypes.func.isRequired,\n error: PropTypes.any,\n }\n\n componentDidMount() {\n if (!this.props.moneyBoxAmount) {\n this.props.onDelete()\n }\n }\n\n render() {\n if (this.props.error) {\n return (\n \n )\n }\n\n if (!this.props.moneyBoxAmount) {\n return null\n }\n\n return (\n
    \n
    {i18n('review_title')}
    \n \n \n {i18n('review_delete_action')}\n \n
    \n )\n }\n}\n\nexport default cssModules(DeleteReview, styles)\n","import DeleteReview from './delete_review'\nimport { connect } from 'react-redux'\nimport { deleteRemotely } from 'redux/modules/campaign'\nimport { hubPageUrl } from 'lib/campaign_url'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport preventNavigation from 'components/common/prevent_navigation'\nimport { show } from 'redux/modules/toast_notification'\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n return {\n operatingRemotely: campaign.operatingRemotely,\n moneyBoxAmount: campaign.money_box_amount,\n error: campaign.err,\n }\n}\n\nconst mapDispatchToProps = (dispatch, { campaignId }) => {\n return {\n onDelete() {\n return dispatch(deleteRemotely(campaignId)).then(() => {\n location.href = hubPageUrl()\n })\n },\n showAlert(toastId) {\n dispatch(show(toastId))\n },\n }\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(preventNavigation(DeleteReview, props => props.operatingRemotely))\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport { getI18n } from 'client/i18n'\nimport styles from './transfer.less'\nimport { formatMoney, getDefaultCurrencyCode } from 'client/griffin'\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'\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 }\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 {formatMoney(this.props.currency, this.props.moneyboxAmount)}\n \n \n {i18n('transfer_all')}\n \n
    \n \n
    \n\n \n\n \n {i18n('transfer_money')}\n \n \n )\n }\n}\n\nexport default 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 'client/i18n'\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 } from 'client/i18n'\nimport styles from './transfer_complete.less'\nimport { formatMoney } from 'client/griffin'\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'\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 }\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 {i18n(toCFPBStringId('complete_title'), {\n amount: formatMoney(this.props.currency, this.props.amount),\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 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 DeleteReview from 'components/glimpses/edit_glimpse/delete_review'\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 let 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 let 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/review', component: DeleteReview },\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 { getI18n } from '../../../../i18n'\nimport StandardDialog from '../../../common/standard_dialog/standard_dialog'\nimport { trackFPTI } from 'lib/fpti_utils'\n\nconst i18n = getI18n('components/edit_glimpse/post_update')\n\nexport const DeleteUpdateActivity = ({\n campaignId,\n id,\n deleteOrganizerActivity,\n onClose,\n campaign,\n}) => {\n const [showDeleteDialog, setDeleteDailog] = useState(false)\n const handledeleteDialogClose = () => {\n trackFPTI(\n campaign,\n 'click',\n 'dw_giving_delete_update_dismiss_pressed',\n 'close'\n )\n setDeleteDailog(false)\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 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 onClose()\n })\n .catch(() => null)\n }\n return (\n
    \n {\n e.preventDefault()\n trackFPTI(\n campaign,\n 'impression',\n 'dw_giving_delete_update_screen_shown'\n )\n trackFPTI(campaign, 'click', 'dw_giving_edit_update_delete_pressed')\n setDeleteDailog(true)\n }}\n data-nemo=\"delete-btn\"\n onKeyUp={e => {\n if (e.key === 'Enter') {\n trackFPTI(\n campaign,\n 'impression',\n 'dw_giving_delete_update_screen_shown'\n )\n trackFPTI(campaign, 'click', 'dw_giving_edit_update_delete_pressed')\n setDeleteDailog(true)\n }\n }}\n >\n {i18n('delete_cf_title')}\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}\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(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,\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'\n\nconst mapDispatchToProps = dispatch => {\n return {\n deleteOrganizerActivity(campaignId, id) {\n return dispatch(deleteOrganizerUpdate(campaignId, id))\n },\n }\n}\n\nexport default connect(\n null,\n mapDispatchToProps\n)(DeleteUpdateActivity)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport { getI18n } from 'client/i18n'\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'\n\nconst i18n = getI18n('components/edit_glimpse/post_update')\n\nclass PostUpdate extends React.Component {\n static 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 stepRef: PropTypes.func,\n dirty: PropTypes.bool,\n onToggleToast: PropTypes.func,\n organizer_update_id: PropTypes.string,\n resetError: PropTypes.func,\n campaignId: PropTypes.string,\n campaignError: PropTypes.object,\n errors: PropTypes.object,\n }\n\n state = {\n isOpen: false,\n editedCampagin: this.props.campaign,\n showBackDialog: false,\n callback: null,\n showDeleteDialog: false,\n }\n\n handleSubmit = () => {\n trackFPTI(\n this.props.campaign,\n 'click',\n 'dw_giving_post_update_quit_finish_update_pressed'\n )\n this.setState({ showBackDialog: false, callback: null })\n const request = {\n subject: this.props.fields.subject.value,\n text: this.props.fields.text.value,\n }\n return this.props\n .onSave(request, this.props.organizer_update_id)\n .then(response => {\n if (this.props.organizer_update_id) {\n this.editBack()\n } else {\n this.goToSharePage(response)\n }\n trackFPTI(\n this.props.campaign,\n 'ac',\n 'dw_giving_update_post_success_occurred'\n )\n this.props.onToggleToast(TOAST_NOTIFICATIONS.EDIT_SUCCESS)\n })\n .catch(err => {\n this.props.router.push({\n pathname: appendPath(location.pathname, 'error'),\n state: { error: err },\n })\n })\n }\n\n componentDidMount() {\n if (this.props.stepRef) {\n this.props.stepRef(this)\n }\n if (this.props.organizer_update_id) {\n trackFPTI(\n this.props.campaign,\n 'impression',\n 'dw_giving_edit_update_screen_shown'\n )\n } else {\n trackFPTI(\n this.props.campaign,\n 'impression',\n 'dw_giving_create_update_screen_shown'\n )\n }\n }\n\n goToSharePage = updateData => {\n const pathname = appendPath(location.pathname, `${updateData.fou_id}/share`)\n this.props.router.push({\n pathname,\n state: { updateData },\n })\n }\n\n editBack = params => {\n const { params: { hideBack = false } = {} } = this.props.router\n if (hideBack || params?.hideBack) {\n this.props.router.push({\n pathname: '/pools',\n state: { campaignId: this.props.campaignId },\n })\n } else {\n this.props.router.goBack()\n }\n }\n\n handleDialogClose = () => {\n this.setState({ showBackDialog: false })\n trackFPTI(\n this.props.campaign,\n 'click',\n 'dw_giving_post_update_quit_dismiss_pressed',\n 'close'\n )\n }\n\n confirmNavigation = callback => {\n if (this.props.dirty) {\n this.setState({ showBackDialog: true, callback })\n trackFPTI(\n this.props.campaign,\n 'impression',\n 'dw_giving_post_update_quit_screen_shown'\n )\n } else {\n if (this.props.organizer_update_id) {\n trackFPTI(\n this.props.campaign,\n 'click',\n 'dw_giving_edit_update_dismiss_pressed',\n 'close'\n )\n } else {\n trackFPTI(\n this.props.campaign,\n 'click',\n 'dw_giving_create_update_dismiss_pressed',\n 'close'\n )\n }\n this.editBack()\n }\n }\n\n handleQuit = () => {\n trackFPTI(\n this.props.campaign,\n 'click',\n 'dw_giving_post_update_quit_cancel_pressed',\n 'close'\n )\n this.editBack()\n }\n render() {\n const {\n fields: { subject, text },\n handleSubmit,\n showDelete,\n organizer_update_id,\n campaign,\n } = this.props\n const description = get(this.props, 'values.text', '')\n if (description.length > CROWDFUNDING_DESCRIPTION_LENGTH) {\n const error = {\n error_desc: 'exceed_max_1000_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 {this.state.showBackDialog && (\n {\n const { text: errorText, subject: errorSubject } =\n this.props.errors || {}\n if (errorText || errorSubject) {\n this.setState({ showBackDialog: false })\n } else {\n this.handleSubmit()\n }\n }}\n onQuit={this.handleQuit}\n data-testid=\"edit-update\"\n />\n )}\n \n {showDelete ? (\n \n ) : (\n \n )}\n \n \n \n \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n {showDelete ? (\n this.editBack({ hideBack: true })}\n campaign={this.props.campaign}\n />\n ) : (\n \n \n \n )}\n {\n if (organizer_update_id) {\n trackFPTI(campaign, 'click', 'dw_giving_edit_update_save_pressed')\n } else {\n trackFPTI(\n campaign,\n 'click',\n 'dw_giving_create_update_save_pressed'\n )\n }\n }}\n >\n \n \n \n )\n }\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 { getI18n } from 'client/i18n'\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 i18n = getI18n('components/edit_glimpse/post_update')\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n const organizerUpdateItems = _.get(campaign, 'organizerUpdate.items') || []\n const organizer_update_id = _.get(props, 'routeParams.fouId') || ''\n const postupdate = organizerUpdate(organizer_update_id, organizerUpdateItems)\n\n const subject = _.get(postupdate, 'subject') || ''\n const text = _.get(postupdate, 'text') || ''\n let validators = [\n required('text', i18n('text_required')),\n length(\n 'text',\n CROWDFUNDING_DESCRIPTION_LENGTH,\n i18n('text_too_long', { maxLength: CROWDFUNDING_DESCRIPTION_LENGTH })\n ),\n length(\n 'subject',\n TITLE_LENGTH,\n i18n('subject_too_long', { maxLength: TITLE_LENGTH })\n ),\n required('subject', i18n('subject_required')),\n ]\n return {\n validate: combine(...validators),\n initialValues: {\n subject: subject,\n text: text,\n },\n showDelete: organizer_update_id,\n organizer_update_id: organizer_update_id,\n campaignId: props.campaignId,\n campaignError: campaign.err,\n campaign: campaign,\n }\n}\n\nconst mapDispatchToProps = (dispatch, { campaignId }) => {\n return {\n onSave(formValues, organizer_update_id) {\n if (organizer_update_id) {\n const formattedPayload = formUpdatePayload(formValues)\n return dispatch(\n editOrganizerUpdate(campaignId, organizer_update_id, 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) {\n dispatch(show(toastId))\n },\n fetchOrganizerUpdateList(page = 1, size = 1) {\n return dispatch(\n getOrganizerUpdate(campaignId, { page, size, campaignId })\n )\n },\n }\n}\n\nexport default reduxForm(\n {\n form: 'postupdate',\n fields: ['subject', 'text'],\n },\n mapStateToProps,\n mapDispatchToProps\n)(formUtils(PostUpdate))\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './share_update_activity.less'\nimport { getI18n } from 'client/i18n'\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'\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\nconst i18n = getI18n('components/share_campaign_textarea')\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 }\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 {i18n('error')}\n \n )}\n \n \n \n {i18n('email')}\n \n \n \n {i18n('sms')}\n \n \n \n \n {i18n('facebook')}\n \n \n \n \n {i18n('twitter')}\n \n \n \n \n {i18n('whatsapp')}\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
    {i18n('copy')}
    \n )}\n \n {this.state.showTooltip && (\n
    \n {i18n('copied')}\n
    \n )}\n \n
    \n \n {i18n('copylink')}\n \n \n
    \n
    \n )\n }\n}\n\nexport default cssModules(ShareUpdateActivity, styles, {\n allowMultiple: true,\n})\n","import { getI18nBase } from 'client/i18n'\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 = getI18nBase('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'\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 let Component\n 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 'client/i18n'\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 />\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'\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 = (prop, eventType, event) => {\n this.props\n .fetchOrganizerUpdateList(this.state.page, 5)\n .then(data => {\n this.setState({ page: this.state.page + 1 })\n const list_count = _.get(data, 'total') || 0\n trackFPTI(prop, eventType, event, '', '', list_count)\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(this.props.campaign, '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 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(campaign, '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 organizer_update_id = get(props, 'routeParams.fouId', '')\n const selectedOrganizerUpdate = organizerUpdate(\n organizer_update_id,\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 PropTypes from 'prop-types'\nimport ModalWizard from 'components/modal_wizard'\nimport { withRouter } from 'react-router'\nimport { routerShape } from 'react-router/lib/PropTypes'\n\nimport { exitGlimpse, isForward } from 'lib/glimpse'\n\nclass SendGlimpse extends React.Component {\n static propTypes = {\n onClose: PropTypes.func,\n onUnmount: PropTypes.func,\n showSpinner: PropTypes.bool,\n children: PropTypes.any,\n routes: PropTypes.array.isRequired,\n location: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n router: routerShape.isRequired,\n campaignId: PropTypes.string,\n isOwner: PropTypes.bool,\n inSuccess: PropTypes.bool,\n isReturningFromWallet: PropTypes.bool,\n }\n\n handleClose = () => {\n const { router, isReturningFromWallet, campaignId } = this.props\n const currentPoolPath = `/pools/c/${campaignId}`\n if (isReturningFromWallet) {\n router.push({ pathname: currentPoolPath })\n } else {\n exitGlimpse('send', this.props.router, currentPoolPath)\n }\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) {\n this.props.onUnmount()\n }\n }\n\n render() {\n const child = React.Children.only(this.props.children)\n const stepName = this.props.routes[this.props.routes.length - 1].path\n\n return (\n \n {React.cloneElement(child, { key: stepName })}\n \n )\n }\n}\n\nexport default withRouter(SendGlimpse)\n","import SendGlimpse from './send_glimpse'\nimport { connect } from 'react-redux'\nimport { destroy } from 'redux-form'\nimport { inflateUserTxns } from 'redux/modules/user_txns'\nimport { getStepName } from 'lib/route_utils'\nimport isOwnerSelector from 'redux/selectors/is_owner'\nimport { resetIsReturningFromWallet } from 'redux/modules/server'\n\nconst mapStateToProps = (state, props) => {\n return {\n showSpinner: state.send_iframe.iframe_loading,\n inSuccess:\n getStepName('send', props.routes) === 'review' &&\n state.send_iframe.send_done,\n isOwner: isOwnerSelector(state, props),\n isReturningFromWallet: state.server.isReturningFromWallet,\n }\n}\n\nconst mapDispatchToProps = (dispatch, { campaignId }) => {\n return {\n onUnmount() {\n // This is here (and not in the route's onLeave) because of lifecycle cosiderations. The onLeave callback\n // is called before everything is unmounted, so if we clear the form (and other things)\n // when before the send flow's components are unmounted, they will do unneccsary update, or worse -\n /// they will do updates with null (or undefined) values.\n dispatch(destroy('send'))\n dispatch(resetIsReturningFromWallet())\n dispatch(inflateUserTxns(campaignId))\n },\n }\n}\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(SendGlimpse)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './separator.less'\n\nclass Separator extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n type: PropTypes.oneOf(['solid', 'dotted']),\n }\n\n static defaultProps = { type: 'solid' }\n\n render() {\n if (this.props.text) {\n return (\n
    \n
    \n {this.props.text && (\n
    {this.props.text}
    \n )}\n
    \n )\n }\n return
    \n }\n}\n\nexport default cssModules(Separator, styles, { allowMultiple: true })\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './checkbox.less'\nimport clsx from 'clsx'\n\nclass Checkbox extends React.Component {\n static propTypes = {\n name: PropTypes.string,\n label: PropTypes.string,\n onChange: PropTypes.func,\n value: PropTypes.bool,\n description: PropTypes.string,\n disabled: PropTypes.bool,\n smallText: PropTypes.bool,\n dataNemo: PropTypes.string,\n 'data-pa-click': PropTypes.string,\n }\n\n render() {\n return (\n
    \n \n \n \n
    \n {this.props.description && (\n

    {this.props.description}

    \n )}\n
    \n )\n }\n}\n\nexport default cssModules(Checkbox, styles, { allowMultiple: true })\n","const NON_ASCII_TO_ASCII_AMOUNT_CHAR_MAP = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n '.': '.',\n '。': '.',\n '。': '.',\n ',': ',',\n '、': ',',\n '、': ',',\n}\n\n/*\n * Convert any non-ASCII input in amount input string to the\n * ASCII counterpart (e.g. for Japananese fullwidth characters)\n *\n * @param {string} input\n * @returns {string} input with any non-ASCII digits/decimals\n * converted to their ASCII counterparts\n */\nexport function normalizeAmountInput(input) {\n if (typeof input !== 'string') {\n return input\n }\n\n return input.replace(\n new RegExp(\n `[${Object.keys(NON_ASCII_TO_ASCII_AMOUNT_CHAR_MAP).join('')}]`,\n 'g'\n ),\n char => NON_ASCII_TO_ASCII_AMOUNT_CHAR_MAP[char]\n )\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { TextInput } from '@paypalcorp/pp-react'\nimport { formatMoney, validateFormat } from 'client/griffin'\nimport { normalizeAmountInput } from 'client/lib/amount'\n\nconst MAX_SIZE = 8\n\nfunction dupeZeroes(numZeroes) {\n return numZeroes >= 0 ? '0'.repeat(numZeroes) : ''\n}\n\nclass CurrencyTextBoxRegular extends React.Component {\n static propTypes = {\n currencyCode: PropTypes.string,\n onChange: PropTypes.func,\n onBlur: PropTypes.func,\n decimalDigits: PropTypes.number,\n decimalDot: PropTypes.string,\n value: PropTypes.number,\n autoResize: PropTypes.bool,\n showCurrency: PropTypes.bool, // TODO: rename this to showCurrencySymbol.\n removeTrailingZeros: PropTypes.bool,\n focusOnMount: PropTypes.number,\n decimalDotInRegex: PropTypes.string,\n showIntlCurrencyCode: PropTypes.bool,\n minAmount: PropTypes.number,\n }\n\n static defaultProps = {\n value: 0,\n autoResize: false,\n removeTrailingZeros: false,\n showCurrency: true,\n showIntlCurrencyCode: true,\n }\n\n constructor(props) {\n super(props)\n const majorDigits = MAX_SIZE - props.decimalDigits // no. of digits to left of dot (integer part)\n const minorDigits = props.decimalDigits // no. of digits to right of dot (fractional part)\n let minorPart = ''\n const decimalDotInRegex = '[\\\\.,]'\n if (minorDigits > 0) {\n minorPart = `(${decimalDotInRegex}\\\\d{0,${minorDigits}})?`\n }\n this.state = {\n decimalDot: props.decimalDot,\n allowedInputRegex: new RegExp(\n `^(([1-9]\\\\d{0,${majorDigits - 1}})|0)?${minorPart}$`\n ),\n zeroFractionalString: props.decimalDot + dupeZeroes(minorDigits),\n value: props.value || '', // Note: this deliberately includes the case where value === ''.\n unformattedValue: '',\n minAmount: Number.isInteger(props.minAmount) ? props.minAmount : 1,\n }\n }\n\n UNSAFE_componentWillReceiveProps = ({ value }) => {\n const inputElement = this.getInputElement()\n if (value !== this.props.value && document.activeElement !== inputElement) {\n this.setState({ value }, () => {\n this.formatValueWithGriffin()\n })\n }\n }\n\n getInputElement = () => {\n let inputElement = this.inputElement\n if (this.props.autoResize && inputElement.getInput) {\n inputElement = inputElement.getInput()\n }\n return inputElement\n }\n\n getAmountVal = () => {\n let value = normalizeAmountInput(this.getInputElement().value)\n if (value === this.state.decimalDot) {\n value = `0${this.state.decimalDot}`\n }\n return value\n }\n\n isInputEmpty = () => {\n const amountVal = this.getAmountVal()\n return amountVal == null || amountVal === ''\n }\n\n isInputValid = value => {\n return (\n this.isInputEmpty() ||\n (this.state.allowedInputRegex.test(this.getAmountVal()) &&\n parseFloat(this.getAmountVal()) >= this.state.minAmount &&\n validateFormat(value))\n )\n }\n\n handleChange = event => {\n const value = normalizeAmountInput(event.target.value)\n if (!this.isInputValid(value)) {\n // this.showInvalid() - shake it, baby\n return\n }\n this.setState({ value })\n if (value === '') {\n this.props.onChange(undefined)\n } else {\n this.props.onChange(parseFloat(value.replace(this.state.decimalDot, '.')))\n }\n }\n\n handleFocus = () => {\n if (!this.getInputElement()) {\n return\n }\n this.restoreUnformattedValue()\n }\n\n formatValueWithGriffin = () => {\n this.setState(prevState => {\n let newValue = ''\n if (prevState.value) {\n const prevValue = prevState.value.toString()\n newValue = formatMoney(\n this.props.currencyCode,\n prevValue.replace(this.props.decimalDot, '.'),\n {\n showCurrencySymbol: this.props.showCurrency,\n hideCurrencyCode: !this.props.showIntlCurrencyCode,\n }\n )\n }\n return {\n value: newValue,\n unformattedValue: prevState.value,\n }\n })\n }\n\n restoreUnformattedValue = () => {\n this.setState(prevState => {\n if (prevState.unformattedValue) {\n return {\n value: prevState.unformattedValue,\n }\n }\n return undefined\n })\n }\n\n handleBlur = () => {\n this.formatValueWithGriffin(this.props.onBlur())\n }\n\n componentDidMount() {\n if (this.props.focusOnMount != null) {\n const inputElement = this.getInputElement()\n setTimeout(() => {\n this.formatValueWithGriffin()\n inputElement.focus()\n }, this.props.focusOnMount)\n }\n }\n\n render() {\n const { ...inputProps } = this.props\n delete inputProps.currencyCode\n delete inputProps.decimalDigits\n delete inputProps.decimalDot\n delete inputProps.autoResize\n delete inputProps.showCurrency\n delete inputProps.removeTrailingZeros\n delete inputProps.focusOnMount\n delete inputProps.showIntlCurrencyCode\n\n inputProps.onChange = this.handleChange\n inputProps.onKeyDown = this.handleChange\n inputProps.onFocus = this.handleFocus\n inputProps.onBlur = this.handleBlur\n inputProps.ref = inputElement => {\n this.inputElement = inputElement\n }\n inputProps.value = this.state.value\n if (!inputProps.touched) {\n delete inputProps.error\n }\n if (this.props.autoResize) {\n inputProps.inputClassName = inputProps.className\n delete inputProps.className\n return \n }\n inputProps.type = 'text'\n return \n }\n}\n\nexport default CurrencyTextBoxRegular\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport CurrencyTextBoxRegular from './currency_text_box_regular'\nimport { getDecimalPrecision, getDecimalSeparator } from 'client/griffin'\n\nclass CurrencyTextBox extends React.Component {\n static propTypes = {\n currencyCode: PropTypes.string,\n decimalDigits: PropTypes.number,\n decimalDot: PropTypes.string,\n }\n\n render() {\n const { ...propsToPass } = this.props\n\n Object.assign(propsToPass, {\n decimalDigits:\n this.props.decimalDigits != null\n ? this.props.decimalDigits\n : getDecimalPrecision(this.props.currencyCode),\n decimalDot:\n this.props.decimalDot != null\n ? this.props.decimalDot\n : getDecimalSeparator(this.props.currencyCode),\n })\n\n return \n }\n}\n\nexport default CurrencyTextBox\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './money.less'\nimport {\n getCurrencySymbol,\n formatMoney,\n isSymbolBeforeValue,\n shouldUseIntlFormat,\n} from 'client/griffin'\nimport CurrencyTextBox from 'components/common/currency_text_box'\n\nclass Money extends React.Component {\n static propTypes = {\n currency: PropTypes.string,\n value: PropTypes.number,\n size: PropTypes.oneOf(['big', 'small']),\n removeTrailingZeros: PropTypes.bool,\n editable: PropTypes.bool,\n focusOnMount: PropTypes.number,\n onChange: PropTypes.func,\n showIntlCurrencyCode: PropTypes.bool,\n minAmount: PropTypes.number,\n }\n\n static defaultProps = {\n size: 'big',\n removeTrailingZeros: true,\n showIntlCurrencyCode: true,\n }\n\n render() {\n const currencySymbol = getCurrencySymbol(this.props.currency)\n let valueFormatted\n if (currencySymbol !== '') {\n valueFormatted = formatMoney(this.props.currency, this.props.value, {\n removeTrailingZeros: this.props.removeTrailingZeros,\n showCurrencySymbol: false,\n })\n } else {\n valueFormatted = formatMoney(this.props.currency, this.props.value, {\n removeTrailingZeros: this.props.removeTrailingZeros,\n })\n }\n\n const symbolBeforeValue = isSymbolBeforeValue(this.props.currency)\n return (\n
    \n
    \n \n {currencySymbol}\n \n {this.props.editable ? (\n \n ) : (\n {valueFormatted}\n )}\n \n {currencySymbol}\n \n
    \n {this.props.showIntlCurrencyCode &&\n shouldUseIntlFormat(this.props.currency) && (\n
    {this.props.currency}
    \n )}\n
    \n )\n }\n}\n\nexport default cssModules(Money, styles)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport clsx from 'clsx'\nimport styles from './input_error.less'\n\nconst errorsShape = PropTypes.oneOfType([PropTypes.array, PropTypes.string])\n\nclass InputError extends React.Component {\n /*\n\t\tshowAsError determines whether we're displaying the error with a red border\n\t\tand a red background.\n\t\twhen it's true, the errors displayed are the ones in the 'errors' prop (if blank, nothing is rendered).\n\t\twhen it's false, the errors displayed are the ones in the 'nonErrors' props (if blank, nothing is rendered).\n\t*/\n static propTypes = {\n showAsError: PropTypes.bool,\n errors: errorsShape,\n nonErrors: errorsShape,\n align: PropTypes.oneOf(['left', 'center']),\n }\n\n static defaultProps = {\n errors: null,\n align: 'left',\n showAsError: true,\n }\n\n render() {\n let errors\n if (!this.props.showAsError) {\n errors = this.props.nonErrors\n } else {\n errors = this.props.errors\n }\n\n if (!errors) {\n return null\n }\n\n if (!Array.isArray(errors)) {\n errors = [errors]\n }\n\n return (\n \n {errors.length > 1 && (\n
      \n {errors.map((e, i) => (\n
    • \n {e}\n
    • \n ))}\n
    \n )}\n {errors.length === 1 && errors[0]}\n
    \n )\n }\n}\n\nexport default cssModules(InputError, styles, { allowMultiple: true })\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { withRouter } from 'react-router'\nimport { routerShape } from 'react-router/lib/PropTypes'\n\n/*\n This renders a button[type='submit'] element, which submits a redux-form form when clicked, and\n then moves to the location specified in `to`.\n Pass it the form's handleSubmit function and the location as props, and it will take care of the rest.\n*/\nclass SubmitLink extends React.Component {\n static propTypes = {\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n router: routerShape.isRequired,\n handleSubmit: PropTypes.func.isRequired,\n text: PropTypes.string,\n value: PropTypes.string,\n dataNemo: PropTypes.string,\n }\n\n render() {\n const propsToPass = { ...this.props }\n delete propsToPass.handleSubmit\n delete propsToPass.router\n delete propsToPass.text\n delete propsToPass.to\n delete propsToPass.params\n delete propsToPass.location\n delete propsToPass.routes\n\n return (\n {\n // if we got here, validation is ok\n this.props.router.push(this.props.to)\n })}\n >\n {this.props.text || this.props.value}\n \n )\n }\n}\n\nexport default withRouter(SubmitLink)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport styles from './send_amount.less'\n\nimport Avatar from 'components/common/avatar'\nimport Separator from 'components/common/separator'\nimport Checkbox from 'components/common/checkbox'\nimport Money from 'components/common/money'\nimport InputError from 'components/common/input_error'\nimport { POOLS_CAMPAIGN_TYPES, AMOUNT_TYPES } from 'shared/shared_consts'\nimport SubmitLink from 'components/common/submit_link'\nimport { glimpseRoute } from 'lib/route_utils'\nimport { getI18n } from 'client/i18n'\nimport { formatMoney } from 'client/griffin'\nimport clsx from 'clsx'\n\nconst { CROWD_FUNDING } = POOLS_CAMPAIGN_TYPES\n\nconst AUTOFOCUS_TIMEOUT = 250\nconst i18n = getI18n('components/send_glimpse/send_amount')\n\nexport function amountTypeToLabel(amountType) {\n let amountI18nlabel\n switch (amountType) {\n case AMOUNT_TYPES.exactly:\n amountI18nlabel = 'exact_amount'\n break\n case AMOUNT_TYPES.at_least:\n amountI18nlabel = 'min_amount'\n break\n default:\n amountI18nlabel = null\n break\n }\n return amountI18nlabel\n}\n\nclass SendAmount extends React.Component {\n static propTypes = {\n displayName: PropTypes.string,\n currency: PropTypes.string,\n amountType: PropTypes.oneOf(\n Object.keys(AMOUNT_TYPES).map(key => AMOUNT_TYPES[key])\n ),\n title: PropTypes.string,\n campaignType: PropTypes.string,\n fields: PropTypes.object,\n handleSubmit: PropTypes.func,\n location: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n anyInactiveFieldsTouchedWithError: PropTypes.bool.isRequired,\n campaignId: PropTypes.string.isRequired,\n shouldAutoFocus: PropTypes.bool,\n isGuest: PropTypes.bool,\n countryCode: PropTypes.string,\n locale: PropTypes.string,\n contributorCommentDisabled: PropTypes.bool,\n minAmount: PropTypes.number,\n }\n\n guestRoute = () => {\n const {\n campaignId,\n currency,\n fields: { amount, anonymous },\n } = this.props\n const guestP2PPath = '/myaccount/transfer/guestLogin/pools/'\n const guestP2PParams = `?poolId=${campaignId}&amount=${\n amount.value\n }¤cyCode=${currency}&anon=${anonymous.value}¬e=`\n window.location.href = `${guestP2PPath}${guestP2PParams}`\n }\n\n render() {\n const {\n fields: { amount, anonymous },\n handleSubmit,\n anyInactiveFieldsTouchedWithError,\n isGuest,\n countryCode,\n locale,\n campaignType,\n contributorCommentDisabled,\n minAmount,\n } = this.props\n\n let nextRoute\n if (contributorCommentDisabled) {\n nextRoute = isGuest ? '' : glimpseRoute('send', 'review')\n } else {\n nextRoute = isGuest\n ? glimpseRoute('guest', 'note')\n : glimpseRoute('send', 'note')\n }\n const tcLink = `/${countryCode}/webapps/mpp/ua/generositynetwork-tnc?locale.x=${locale}`\n\n const formattedAmount = formatMoney(\n this.props.currency,\n amount.initialValue,\n { removeTrailingZeros: false }\n )\n const infoLabel = i18n(amountTypeToLabel(this.props.amountType), {\n amount: formattedAmount,\n })\n const titleKey = campaignType === CROWD_FUNDING ? 'cf_title' : 'title'\n const anonymousKey =\n campaignType === CROWD_FUNDING\n ? 'cf_show_name_and_amount'\n : 'show_name_and_amount'\n let gdpr\n if (campaignType === CROWD_FUNDING) {\n let gdprContent = i18n('cf_gdpr_disclaimer', { tcLink })\n gdpr = (\n \n )\n } else {\n let gdprContent = isGuest\n ? i18n('guest_gdpr_disclaimer')\n : i18n('gdpr_disclaimer')\n gdpr =

    {gdprContent}

    \n }\n return (\n
    \n
    \n \n
    \n
    \n
    {i18n(titleKey)}
    \n
    {this.props.displayName}
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n \n
    {i18n('for')}
    \n
    {this.props.title}
    \n \n
    \n {/*\n\t\t\t\t\t\t\t\tNOTE: It is counter intuitive that the click name is anonymousOff when\n\t\t\t\t\t\t\t\tanonymous.value === true, but it is correct. This app was setup up to use\n\t\t\t\t\t\t\t\tan event listener outside of react for handling click tracking. The click\n\t\t\t\t\t\t\t\ttrack is fired before that value is updated. We must make sure the attr\n\t\t\t\t\t\t\t\thas the correct value when pa.js grabs it, and not after react rerenders (too late).\n\t\t\t\t\t\t\t\tThis might drive you crazy, but prefer it over convoluted setTimeouts, etc.\n\t\t\t\t\t\t*/}\n \n
    \n {isGuest && contributorCommentDisabled ? (\n this.guestRoute())}\n disabled={anyInactiveFieldsTouchedWithError}\n >\n {i18n('next')}\n \n ) : (\n \n )}\n \n {gdpr}\n
    \n )\n }\n}\n\nexport default cssModules(SendAmount, styles)\n","import SendAmount, { amountTypeToLabel } from './send_amount'\nimport { reduxForm } from 'redux-form'\nimport { getFullName, formatMoney } from 'griffin'\nimport { AMOUNT_TYPES } from 'shared/shared_consts'\nimport formUtils from 'lib/form_utils'\nimport { getCampaignSelector } from 'redux/selectors/campaign'\nimport { getI18n } from 'client/i18n'\n\nconst i18n = getI18n('components/send_glimpse/send_amount')\n\nconst mapStateToProps = (state, props) => {\n const campaign = getCampaignSelector(state, props)\n const { location: { pathname = '' } = {} } = props\n return {\n shouldAutoFocus: props.router.params.action !== 'POP',\n displayName: getFullName({\n givenName: campaign.owner.first_name,\n surname: campaign.owner.last_name,\n }),\n title: campaign.title,\n campaignType: campaign.campaign_type,\n currency: campaign.currency,\n amountType: campaign.amount_type || AMOUNT_TYPES.any,\n amount: campaign.amount,\n maxAmount: campaign.max_amount,\n initialValues: {\n amount: campaign.amount_type !== AMOUNT_TYPES.any ? campaign.amount : 0,\n anonymous: false,\n },\n isGuest: pathname.includes('guest'),\n countryCode: state.country.country_code,\n locale: state.country.locale,\n contributorCommentDisabled:\n state.flags && state.flags.contributor_comment_disabled,\n minamount: state.flags.min_amount_donation,\n }\n}\n\nconst mapDispatchToProps = dispatch => {\n return {}\n}\n\nfunction amountValidator() {\n return (values, props) => {\n const amount = parseFloat(values.amount)\n\n if (props.amountType === AMOUNT_TYPES.at_least) {\n const formattedAmount = formatMoney(\n props.currency,\n props.initialValues.amount,\n { removeTrailingZeros: false }\n )\n const errorLabel = i18n(amountTypeToLabel(props.amountType), {\n amount: formattedAmount,\n })\n\n if (!values.amount) {\n return { amount: errorLabel }\n }\n\n if (amount < props.amount) {\n return { amount: errorLabel }\n }\n } else if (props.amountType === AMOUNT_TYPES.any) {\n const errorLabel = i18n('amount_required')\n if (!values.amount) {\n return { amount: errorLabel }\n }\n if (amount === 0) {\n return { amount: errorLabel }\n }\n }\n\n if (props.maxAmount) {\n if (amount > props.maxAmount) {\n const formattedAmount = formatMoney(props.currency, props.maxAmount, {\n removeTrailingZeros: false,\n })\n const errorLabel = i18n('max_amount', { amount: formattedAmount })\n return { amount: errorLabel }\n }\n }\n\n return {}\n }\n}\n\nexport default reduxForm(\n {\n form: 'send',\n fields: ['amount', 'anonymous'],\n destroyOnUnmount: false,\n touchOnChange: false,\n touchOnBlur: true,\n validate: amountValidator(),\n },\n mapStateToProps,\n mapDispatchToProps\n)(formUtils(SendAmount))\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport cssModules from 'react-css-modules'\nimport MaskedInput from 'react-text-mask'\nimport { getCurrencySymbol } from 'client/griffin'\n\nimport styles from './text_box.less'\nimport AutosizeTextarea from 'react-textarea-autosize'\nimport CurrencyTextBox from 'components/common/currency_text_box'\nimport InputError from 'components/common/input_error'\nimport { getJSONFromScript } from 'lib/server_params'\n\nimport ReactCSSTransitionGroup from 'react-transition-group/CSSTransitionGroup'\n\nimport clsx from 'clsx'\n\n/*\n\tA Note on TextBoxes in Pools\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n\tThere are three kinds of textboxes:\n\t1. Native/low-level TextBoxes, which require a behavior that fundamentally changes the\n\t way that textboxes behave. These include the regular ,